diff --git a/pages/coverage-reports/pages/1732553023031263517/base.css b/pages/coverage-reports/pages/1732553023031263517/base.css new file mode 100644 index 00000000..f418035b --- /dev/null +++ b/pages/coverage-reports/pages/1732553023031263517/base.css @@ -0,0 +1,224 @@ +body, html { + margin:0; padding: 0; + height: 100%; +} +body { + font-family: Helvetica Neue, Helvetica, Arial; + font-size: 14px; + color:#333; +} +.small { font-size: 12px; } +*, *:after, *:before { + -webkit-box-sizing:border-box; + -moz-box-sizing:border-box; + box-sizing:border-box; + } +h1 { font-size: 20px; margin: 0;} +h2 { font-size: 14px; } +pre { + font: 12px/1.4 Consolas, "Liberation Mono", Menlo, Courier, monospace; + margin: 0; + padding: 0; + -moz-tab-size: 2; + -o-tab-size: 2; + tab-size: 2; +} +a { color:#0074D9; text-decoration:none; } +a:hover { text-decoration:underline; } +.strong { font-weight: bold; } +.space-top1 { padding: 10px 0 0 0; } +.pad2y { padding: 20px 0; } +.pad1y { padding: 10px 0; } +.pad2x { padding: 0 20px; } +.pad2 { padding: 20px; } +.pad1 { padding: 10px; } +.space-left2 { padding-left:55px; } +.space-right2 { padding-right:20px; } +.center { text-align:center; } +.clearfix { display:block; } +.clearfix:after { + content:''; + display:block; + height:0; + clear:both; + visibility:hidden; + } +.fl { float: left; } +@media only screen and (max-width:640px) { + .col3 { width:100%; max-width:100%; } + .hide-mobile { display:none!important; } +} + +.quiet { + color: #7f7f7f; + color: rgba(0,0,0,0.5); +} +.quiet a { opacity: 0.7; } + +.fraction { + font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; + font-size: 10px; + color: #555; + background: #E8E8E8; + padding: 4px 5px; + border-radius: 3px; + vertical-align: middle; +} + +div.path a:link, div.path a:visited { color: #333; } +table.coverage { + border-collapse: collapse; + margin: 10px 0 0 0; + padding: 0; +} + +table.coverage td { + margin: 0; + padding: 0; + vertical-align: top; +} +table.coverage td.line-count { + text-align: right; + padding: 0 5px 0 20px; +} +table.coverage td.line-coverage { + text-align: right; + padding-right: 10px; + min-width:20px; +} + +table.coverage td span.cline-any { + display: inline-block; + padding: 0 5px; + width: 100%; +} +.missing-if-branch { + display: inline-block; + margin-right: 5px; + border-radius: 3px; + position: relative; + padding: 0 4px; + background: #333; + color: yellow; +} + +.skip-if-branch { + display: none; + margin-right: 10px; + position: relative; + padding: 0 4px; + background: #ccc; + color: white; +} +.missing-if-branch .typ, .skip-if-branch .typ { + color: inherit !important; +} +.coverage-summary { + border-collapse: collapse; + width: 100%; +} +.coverage-summary tr { border-bottom: 1px solid #bbb; } +.keyline-all { border: 1px solid #ddd; } +.coverage-summary td, .coverage-summary th { padding: 10px; } +.coverage-summary tbody { border: 1px solid #bbb; } +.coverage-summary td { border-right: 1px solid #bbb; } +.coverage-summary td:last-child { border-right: none; } +.coverage-summary th { + text-align: left; + font-weight: normal; + white-space: nowrap; +} +.coverage-summary th.file { border-right: none !important; } +.coverage-summary th.pct { } +.coverage-summary th.pic, +.coverage-summary th.abs, +.coverage-summary td.pct, +.coverage-summary td.abs { text-align: right; } +.coverage-summary td.file { white-space: nowrap; } +.coverage-summary td.pic { min-width: 120px !important; } +.coverage-summary tfoot td { } + +.coverage-summary .sorter { + height: 10px; + width: 7px; + display: inline-block; + margin-left: 0.5em; + background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent; +} +.coverage-summary .sorted .sorter { + background-position: 0 -20px; +} +.coverage-summary .sorted-desc .sorter { + background-position: 0 -10px; +} +.status-line { height: 10px; } +/* yellow */ +.cbranch-no { background: yellow !important; color: #111; } +/* dark red */ +.red.solid, .status-line.low, .low .cover-fill { background:#C21F39 } +.low .chart { border:1px solid #C21F39 } +.highlighted, +.highlighted .cstat-no, .highlighted .fstat-no, .highlighted .cbranch-no{ + background: #C21F39 !important; +} +/* medium red */ +.cstat-no, .fstat-no, .cbranch-no, .cbranch-no { background:#F6C6CE } +/* light red */ +.low, .cline-no { background:#FCE1E5 } +/* light green */ +.high, .cline-yes { background:rgb(230,245,208) } +/* medium green */ +.cstat-yes { background:rgb(161,215,106) } +/* dark green */ +.status-line.high, .high .cover-fill { background:rgb(77,146,33) } +.high .chart { border:1px solid rgb(77,146,33) } +/* dark yellow (gold) */ +.status-line.medium, .medium .cover-fill { background: #f9cd0b; } +.medium .chart { border:1px solid #f9cd0b; } +/* light yellow */ +.medium { background: #fff4c2; } + +.cstat-skip { background: #ddd; color: #111; } +.fstat-skip { background: #ddd; color: #111 !important; } +.cbranch-skip { background: #ddd !important; color: #111; } + +span.cline-neutral { background: #eaeaea; } + +.coverage-summary td.empty { + opacity: .5; + padding-top: 4px; + padding-bottom: 4px; + line-height: 1; + color: #888; +} + +.cover-fill, .cover-empty { + display:inline-block; + height: 12px; +} +.chart { + line-height: 0; +} +.cover-empty { + background: white; +} +.cover-full { + border-right: none !important; +} +pre.prettyprint { + border: none !important; + padding: 0 !important; + margin: 0 !important; +} +.com { color: #999 !important; } +.ignore-none { color: #999; font-weight: normal; } + +.wrapper { + min-height: 100%; + height: auto !important; + height: 100%; + margin: 0 auto -48px; +} +.footer, .push { + height: 48px; +} diff --git a/pages/coverage-reports/pages/1732553023031263517/block-navigation.js b/pages/coverage-reports/pages/1732553023031263517/block-navigation.js new file mode 100644 index 00000000..cc121302 --- /dev/null +++ b/pages/coverage-reports/pages/1732553023031263517/block-navigation.js @@ -0,0 +1,87 @@ +/* eslint-disable */ +var jumpToCode = (function init() { + // Classes of code we would like to highlight in the file view + var missingCoverageClasses = ['.cbranch-no', '.cstat-no', '.fstat-no']; + + // Elements to highlight in the file listing view + var fileListingElements = ['td.pct.low']; + + // We don't want to select elements that are direct descendants of another match + var notSelector = ':not(' + missingCoverageClasses.join('):not(') + ') > '; // becomes `:not(a):not(b) > ` + + // Selecter that finds elements on the page to which we can jump + var selector = + fileListingElements.join(', ') + + ', ' + + notSelector + + missingCoverageClasses.join(', ' + notSelector); // becomes `:not(a):not(b) > a, :not(a):not(b) > b` + + // The NodeList of matching elements + var missingCoverageElements = document.querySelectorAll(selector); + + var currentIndex; + + function toggleClass(index) { + missingCoverageElements + .item(currentIndex) + .classList.remove('highlighted'); + missingCoverageElements.item(index).classList.add('highlighted'); + } + + function makeCurrent(index) { + toggleClass(index); + currentIndex = index; + missingCoverageElements.item(index).scrollIntoView({ + behavior: 'smooth', + block: 'center', + inline: 'center' + }); + } + + function goToPrevious() { + var nextIndex = 0; + if (typeof currentIndex !== 'number' || currentIndex === 0) { + nextIndex = missingCoverageElements.length - 1; + } else if (missingCoverageElements.length > 1) { + nextIndex = currentIndex - 1; + } + + makeCurrent(nextIndex); + } + + function goToNext() { + var nextIndex = 0; + + if ( + typeof currentIndex === 'number' && + currentIndex < missingCoverageElements.length - 1 + ) { + nextIndex = currentIndex + 1; + } + + makeCurrent(nextIndex); + } + + return function jump(event) { + if ( + document.getElementById('fileSearch') === document.activeElement && + document.activeElement != null + ) { + // if we're currently focused on the search input, we don't want to navigate + return; + } + + switch (event.which) { + case 78: // n + case 74: // j + goToNext(); + break; + case 66: // b + case 75: // k + case 80: // p + goToPrevious(); + break; + } + }; +})(); +window.addEventListener('keydown', jumpToCode); diff --git a/pages/coverage-reports/pages/1732553023031263517/favicon.png b/pages/coverage-reports/pages/1732553023031263517/favicon.png new file mode 100644 index 00000000..66918178 Binary files /dev/null and b/pages/coverage-reports/pages/1732553023031263517/favicon.png differ diff --git a/pages/coverage-reports/pages/1732553023031263517/index.html b/pages/coverage-reports/pages/1732553023031263517/index.html new file mode 100644 index 00000000..a47e8538 --- /dev/null +++ b/pages/coverage-reports/pages/1732553023031263517/index.html @@ -0,0 +1,206 @@ + +<!doctype html> +<html lang="en"> + +<head> + <title>Code coverage report for All files</title> + <meta charset="utf-8" /> + <link rel="stylesheet" href="prettify.css" /> + <link rel="stylesheet" href="base.css" /> + <link rel="shortcut icon" type="image/x-icon" href="favicon.png" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <style type='text/css'> + .coverage-summary .sorter { + background-image: url(sort-arrow-sprite.png); + } + </style> +</head> + +<body> +<div class='wrapper'> + <div class='pad1'> + <h1>All files</h1> + <div class='clearfix'> + + <div class='fl pad1y space-right2'> + <span class="strong">81.33% </span> + <span class="quiet">Statements</span> + <span class='fraction'>854/1050</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">52.32% </span> + <span class="quiet">Branches</span> + <span class='fraction'>214/409</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">74.34% </span> + <span class="quiet">Functions</span> + <span class='fraction'>84/113</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">81.1% </span> + <span class="quiet">Lines</span> + <span class='fraction'>824/1016</span> + </div> + + + </div> + <p class="quiet"> + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + </p> + <template id="filterTemplate"> + <div class="quiet"> + Filter: + <input oninput="onInput()" type="search" id="fileSearch"> + </div> + </template> + </div> + <div class='status-line high'></div> + <div class="pad1"> +<table class="coverage-summary"> +<thead> +<tr> + <th data-col="file" data-fmt="html" data-html="true" class="file">File</th> + <th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th> + <th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th> + <th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th> + <th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th> + <th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th> + <th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th> + <th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th> + <th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th> + <th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th> +</tr> +</thead> +<tbody><tr> + <td class="file high" data-value="near-membrane-base/dist"><a href="near-membrane-base/dist/index.html">near-membrane-base/dist</a></td> + <td data-value="97.95" class="pic high"> + <div class="chart"><div class="cover-fill" style="width: 97%"></div><div class="cover-empty" style="width: 3%"></div></div> + </td> + <td data-value="97.95" class="pct high">97.95%</td> + <td data-value="146" class="abs high">143/146</td> + <td data-value="64.18" class="pct medium">64.18%</td> + <td data-value="67" class="abs medium">43/67</td> + <td data-value="92.31" class="pct high">92.31%</td> + <td data-value="26" class="abs high">24/26</td> + <td data-value="98.47" class="pct high">98.47%</td> + <td data-value="131" class="abs high">129/131</td> + </tr> + +<tr> + <td class="file high" data-value="near-membrane-base/src"><a href="near-membrane-base/src/index.html">near-membrane-base/src</a></td> + <td data-value="88.36" class="pic high"> + <div class="chart"><div class="cover-fill" style="width: 88%"></div><div class="cover-empty" style="width: 12%"></div></div> + </td> + <td data-value="88.36" class="pct high">88.36%</td> + <td data-value="146" class="abs high">129/146</td> + <td data-value="47.69" class="pct low">47.69%</td> + <td data-value="65" class="abs low">31/65</td> + <td data-value="80.77" class="pct high">80.77%</td> + <td data-value="26" class="abs high">21/26</td> + <td data-value="87.22" class="pct high">87.22%</td> + <td data-value="133" class="abs high">116/133</td> + </tr> + +<tr> + <td class="file high" data-value="near-membrane-dom/dist"><a href="near-membrane-dom/dist/index.html">near-membrane-dom/dist</a></td> + <td data-value="97.17" class="pic high"> + <div class="chart"><div class="cover-fill" style="width: 97%"></div><div class="cover-empty" style="width: 3%"></div></div> + </td> + <td data-value="97.17" class="pct high">97.17%</td> + <td data-value="106" class="abs high">103/106</td> + <td data-value="86.49" class="pct high">86.49%</td> + <td data-value="37" class="abs high">32/37</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="7" class="abs high">7/7</td> + <td data-value="97.14" class="pct high">97.14%</td> + <td data-value="105" class="abs high">102/105</td> + </tr> + +<tr> + <td class="file high" data-value="near-membrane-node/src"><a href="near-membrane-node/src/index.html">near-membrane-node/src</a></td> + <td data-value="95.65" class="pic high"> + <div class="chart"><div class="cover-fill" style="width: 95%"></div><div class="cover-empty" style="width: 5%"></div></div> + </td> + <td data-value="95.65" class="pct high">95.65%</td> + <td data-value="23" class="abs high">22/23</td> + <td data-value="94.74" class="pct high">94.74%</td> + <td data-value="19" class="abs high">18/19</td> + <td data-value="50" class="pct medium">50%</td> + <td data-value="2" class="abs medium">1/2</td> + <td data-value="95.65" class="pct high">95.65%</td> + <td data-value="23" class="abs high">22/23</td> + </tr> + +<tr> + <td class="file high" data-value="near-membrane-shared-dom/dist"><a href="near-membrane-shared-dom/dist/index.html">near-membrane-shared-dom/dist</a></td> + <td data-value="100" class="pic high"> + <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div> + </td> + <td data-value="100" class="pct high">100%</td> + <td data-value="21" class="abs high">21/21</td> + <td data-value="77.78" class="pct medium">77.78%</td> + <td data-value="9" class="abs medium">7/9</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="2" class="abs high">2/2</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="21" class="abs high">21/21</td> + </tr> + +<tr> + <td class="file high" data-value="near-membrane-shared/dist"><a href="near-membrane-shared/dist/index.html">near-membrane-shared/dist</a></td> + <td data-value="96.71" class="pic high"> + <div class="chart"><div class="cover-fill" style="width: 96%"></div><div class="cover-empty" style="width: 4%"></div></div> + </td> + <td data-value="96.71" class="pct high">96.71%</td> + <td data-value="304" class="abs high">294/304</td> + <td data-value="72.64" class="pct medium">72.64%</td> + <td data-value="106" class="abs medium">77/106</td> + <td data-value="92" class="pct high">92%</td> + <td data-value="25" class="abs high">23/25</td> + <td data-value="96.69" class="pct high">96.69%</td> + <td data-value="302" class="abs high">292/302</td> + </tr> + +<tr> + <td class="file low" data-value="near-membrane-shared/src"><a href="near-membrane-shared/src/index.html">near-membrane-shared/src</a></td> + <td data-value="46.71" class="pic low"> + <div class="chart"><div class="cover-fill" style="width: 46%"></div><div class="cover-empty" style="width: 54%"></div></div> + </td> + <td data-value="46.71" class="pct low">46.71%</td> + <td data-value="304" class="abs low">142/304</td> + <td data-value="5.66" class="pct low">5.66%</td> + <td data-value="106" class="abs low">6/106</td> + <td data-value="24" class="pct low">24%</td> + <td data-value="25" class="abs low">6/25</td> + <td data-value="47.18" class="pct low">47.18%</td> + <td data-value="301" class="abs low">142/301</td> + </tr> + +</tbody> +</table> +</div> + <div class='push'></div><!-- for sticky footer --> + </div><!-- /wrapper --> + <div class='footer quiet pad2 space-top1 center small'> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> + at Mon Nov 25 2024 16:43:41 GMT+0000 (Coordinated Universal Time) + </div> + <script src="prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="sorter.js"></script> + <script src="block-navigation.js"></script> + </body> +</html> + \ No newline at end of file diff --git a/pages/coverage-reports/pages/1732553023031263517/near-membrane-base/dist/index.html b/pages/coverage-reports/pages/1732553023031263517/near-membrane-base/dist/index.html new file mode 100644 index 00000000..759b27b4 --- /dev/null +++ b/pages/coverage-reports/pages/1732553023031263517/near-membrane-base/dist/index.html @@ -0,0 +1,116 @@ + +<!doctype html> +<html lang="en"> + +<head> + <title>Code coverage report for near-membrane-base/dist</title> + <meta charset="utf-8" /> + <link rel="stylesheet" href="../../prettify.css" /> + <link rel="stylesheet" href="../../base.css" /> + <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <style type='text/css'> + .coverage-summary .sorter { + background-image: url(../../sort-arrow-sprite.png); + } + </style> +</head> + +<body> +<div class='wrapper'> + <div class='pad1'> + <h1><a href="../../index.html">All files</a> near-membrane-base/dist</h1> + <div class='clearfix'> + + <div class='fl pad1y space-right2'> + <span class="strong">97.95% </span> + <span class="quiet">Statements</span> + <span class='fraction'>143/146</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">64.18% </span> + <span class="quiet">Branches</span> + <span class='fraction'>43/67</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">92.31% </span> + <span class="quiet">Functions</span> + <span class='fraction'>24/26</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">98.47% </span> + <span class="quiet">Lines</span> + <span class='fraction'>129/131</span> + </div> + + + </div> + <p class="quiet"> + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + </p> + <template id="filterTemplate"> + <div class="quiet"> + Filter: + <input oninput="onInput()" type="search" id="fileSearch"> + </div> + </template> + </div> + <div class='status-line high'></div> + <div class="pad1"> +<table class="coverage-summary"> +<thead> +<tr> + <th data-col="file" data-fmt="html" data-html="true" class="file">File</th> + <th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th> + <th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th> + <th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th> + <th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th> + <th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th> + <th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th> + <th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th> + <th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th> + <th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th> +</tr> +</thead> +<tbody><tr> + <td class="file high" data-value="index.mjs.js"><a href="index.mjs.js.html">index.mjs.js</a></td> + <td data-value="97.95" class="pic high"> + <div class="chart"><div class="cover-fill" style="width: 97%"></div><div class="cover-empty" style="width: 3%"></div></div> + </td> + <td data-value="97.95" class="pct high">97.95%</td> + <td data-value="146" class="abs high">143/146</td> + <td data-value="64.18" class="pct medium">64.18%</td> + <td data-value="67" class="abs medium">43/67</td> + <td data-value="92.31" class="pct high">92.31%</td> + <td data-value="26" class="abs high">24/26</td> + <td data-value="98.47" class="pct high">98.47%</td> + <td data-value="131" class="abs high">129/131</td> + </tr> + +</tbody> +</table> +</div> + <div class='push'></div><!-- for sticky footer --> + </div><!-- /wrapper --> + <div class='footer quiet pad2 space-top1 center small'> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> + at Mon Nov 25 2024 16:43:41 GMT+0000 (Coordinated Universal Time) + </div> + <script src="../../prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="../../sorter.js"></script> + <script src="../../block-navigation.js"></script> + </body> +</html> + \ No newline at end of file diff --git a/pages/coverage-reports/pages/1732553023031263517/near-membrane-base/dist/index.mjs.js.html b/pages/coverage-reports/pages/1732553023031263517/near-membrane-base/dist/index.mjs.js.html new file mode 100644 index 00000000..b574d942 --- /dev/null +++ b/pages/coverage-reports/pages/1732553023031263517/near-membrane-base/dist/index.mjs.js.html @@ -0,0 +1,11362 @@ + +<!doctype html> +<html lang="en"> + +<head> + <title>Code coverage report for near-membrane-base/dist/index.mjs.js</title> + <meta charset="utf-8" /> + <link rel="stylesheet" href="../../prettify.css" /> + <link rel="stylesheet" href="../../base.css" /> + <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <style type='text/css'> + .coverage-summary .sorter { + background-image: url(../../sort-arrow-sprite.png); + } + </style> +</head> + +<body> +<div class='wrapper'> + <div class='pad1'> + <h1><a href="../../index.html">All files</a> / <a href="index.html">near-membrane-base/dist</a> index.mjs.js</h1> + <div class='clearfix'> + + <div class='fl pad1y space-right2'> + <span class="strong">97.95% </span> + <span class="quiet">Statements</span> + <span class='fraction'>143/146</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">64.18% </span> + <span class="quiet">Branches</span> + <span class='fraction'>43/67</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">92.31% </span> + <span class="quiet">Functions</span> + <span class='fraction'>24/26</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">98.47% </span> + <span class="quiet">Lines</span> + <span class='fraction'>129/131</span> + </div> + + + </div> + <p class="quiet"> + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + </p> + <template id="filterTemplate"> + <div class="quiet"> + Filter: + <input oninput="onInput()" type="search" id="fileSearch"> + </div> + </template> + </div> + <div class='status-line high'></div> + <pre><table class="coverage"> +<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a> +<a name='L2'></a><a href='#L2'>2</a> +<a name='L3'></a><a href='#L3'>3</a> +<a name='L4'></a><a href='#L4'>4</a> +<a name='L5'></a><a href='#L5'>5</a> +<a name='L6'></a><a href='#L6'>6</a> +<a name='L7'></a><a href='#L7'>7</a> +<a name='L8'></a><a href='#L8'>8</a> +<a name='L9'></a><a href='#L9'>9</a> +<a name='L10'></a><a href='#L10'>10</a> +<a name='L11'></a><a href='#L11'>11</a> +<a name='L12'></a><a href='#L12'>12</a> +<a name='L13'></a><a href='#L13'>13</a> +<a name='L14'></a><a href='#L14'>14</a> +<a name='L15'></a><a href='#L15'>15</a> +<a name='L16'></a><a href='#L16'>16</a> +<a name='L17'></a><a href='#L17'>17</a> +<a name='L18'></a><a href='#L18'>18</a> +<a name='L19'></a><a href='#L19'>19</a> +<a name='L20'></a><a href='#L20'>20</a> +<a name='L21'></a><a href='#L21'>21</a> +<a name='L22'></a><a href='#L22'>22</a> +<a name='L23'></a><a href='#L23'>23</a> +<a name='L24'></a><a href='#L24'>24</a> +<a name='L25'></a><a href='#L25'>25</a> +<a name='L26'></a><a href='#L26'>26</a> +<a name='L27'></a><a href='#L27'>27</a> +<a name='L28'></a><a href='#L28'>28</a> +<a name='L29'></a><a href='#L29'>29</a> +<a name='L30'></a><a href='#L30'>30</a> +<a name='L31'></a><a href='#L31'>31</a> +<a name='L32'></a><a href='#L32'>32</a> +<a name='L33'></a><a href='#L33'>33</a> +<a name='L34'></a><a href='#L34'>34</a> +<a name='L35'></a><a href='#L35'>35</a> +<a name='L36'></a><a href='#L36'>36</a> +<a name='L37'></a><a href='#L37'>37</a> +<a name='L38'></a><a href='#L38'>38</a> +<a name='L39'></a><a href='#L39'>39</a> +<a name='L40'></a><a href='#L40'>40</a> +<a name='L41'></a><a href='#L41'>41</a> +<a name='L42'></a><a href='#L42'>42</a> +<a name='L43'></a><a href='#L43'>43</a> +<a name='L44'></a><a href='#L44'>44</a> +<a name='L45'></a><a href='#L45'>45</a> +<a name='L46'></a><a href='#L46'>46</a> +<a name='L47'></a><a href='#L47'>47</a> +<a name='L48'></a><a href='#L48'>48</a> +<a name='L49'></a><a href='#L49'>49</a> +<a name='L50'></a><a href='#L50'>50</a> +<a name='L51'></a><a href='#L51'>51</a> +<a name='L52'></a><a href='#L52'>52</a> +<a name='L53'></a><a href='#L53'>53</a> +<a name='L54'></a><a href='#L54'>54</a> +<a name='L55'></a><a href='#L55'>55</a> +<a name='L56'></a><a href='#L56'>56</a> +<a name='L57'></a><a href='#L57'>57</a> +<a name='L58'></a><a href='#L58'>58</a> +<a name='L59'></a><a href='#L59'>59</a> +<a name='L60'></a><a href='#L60'>60</a> +<a name='L61'></a><a href='#L61'>61</a> +<a name='L62'></a><a href='#L62'>62</a> +<a name='L63'></a><a href='#L63'>63</a> +<a name='L64'></a><a href='#L64'>64</a> +<a name='L65'></a><a href='#L65'>65</a> +<a name='L66'></a><a href='#L66'>66</a> +<a name='L67'></a><a href='#L67'>67</a> +<a name='L68'></a><a href='#L68'>68</a> +<a name='L69'></a><a href='#L69'>69</a> +<a name='L70'></a><a href='#L70'>70</a> +<a name='L71'></a><a href='#L71'>71</a> +<a name='L72'></a><a href='#L72'>72</a> +<a name='L73'></a><a href='#L73'>73</a> +<a name='L74'></a><a href='#L74'>74</a> +<a name='L75'></a><a href='#L75'>75</a> +<a name='L76'></a><a href='#L76'>76</a> +<a name='L77'></a><a href='#L77'>77</a> +<a name='L78'></a><a href='#L78'>78</a> +<a name='L79'></a><a href='#L79'>79</a> +<a name='L80'></a><a href='#L80'>80</a> +<a name='L81'></a><a href='#L81'>81</a> +<a name='L82'></a><a href='#L82'>82</a> +<a name='L83'></a><a href='#L83'>83</a> +<a name='L84'></a><a href='#L84'>84</a> +<a name='L85'></a><a href='#L85'>85</a> +<a name='L86'></a><a href='#L86'>86</a> +<a name='L87'></a><a href='#L87'>87</a> +<a name='L88'></a><a href='#L88'>88</a> +<a name='L89'></a><a href='#L89'>89</a> +<a name='L90'></a><a href='#L90'>90</a> +<a name='L91'></a><a href='#L91'>91</a> +<a name='L92'></a><a href='#L92'>92</a> +<a name='L93'></a><a href='#L93'>93</a> +<a name='L94'></a><a href='#L94'>94</a> +<a name='L95'></a><a href='#L95'>95</a> +<a name='L96'></a><a href='#L96'>96</a> +<a name='L97'></a><a href='#L97'>97</a> +<a name='L98'></a><a href='#L98'>98</a> +<a name='L99'></a><a href='#L99'>99</a> +<a name='L100'></a><a href='#L100'>100</a> +<a name='L101'></a><a href='#L101'>101</a> +<a name='L102'></a><a href='#L102'>102</a> +<a name='L103'></a><a href='#L103'>103</a> +<a name='L104'></a><a href='#L104'>104</a> +<a name='L105'></a><a href='#L105'>105</a> +<a name='L106'></a><a href='#L106'>106</a> +<a name='L107'></a><a href='#L107'>107</a> +<a name='L108'></a><a href='#L108'>108</a> +<a name='L109'></a><a href='#L109'>109</a> +<a name='L110'></a><a href='#L110'>110</a> +<a name='L111'></a><a href='#L111'>111</a> +<a name='L112'></a><a href='#L112'>112</a> +<a name='L113'></a><a href='#L113'>113</a> +<a name='L114'></a><a href='#L114'>114</a> +<a name='L115'></a><a href='#L115'>115</a> +<a name='L116'></a><a href='#L116'>116</a> +<a name='L117'></a><a href='#L117'>117</a> +<a name='L118'></a><a href='#L118'>118</a> +<a name='L119'></a><a href='#L119'>119</a> +<a name='L120'></a><a href='#L120'>120</a> +<a name='L121'></a><a href='#L121'>121</a> +<a name='L122'></a><a href='#L122'>122</a> +<a name='L123'></a><a href='#L123'>123</a> +<a name='L124'></a><a href='#L124'>124</a> +<a name='L125'></a><a href='#L125'>125</a> +<a name='L126'></a><a href='#L126'>126</a> +<a name='L127'></a><a href='#L127'>127</a> +<a name='L128'></a><a href='#L128'>128</a> +<a name='L129'></a><a href='#L129'>129</a> +<a name='L130'></a><a href='#L130'>130</a> +<a name='L131'></a><a href='#L131'>131</a> +<a name='L132'></a><a href='#L132'>132</a> +<a name='L133'></a><a href='#L133'>133</a> +<a name='L134'></a><a href='#L134'>134</a> +<a name='L135'></a><a href='#L135'>135</a> +<a name='L136'></a><a href='#L136'>136</a> +<a name='L137'></a><a href='#L137'>137</a> +<a name='L138'></a><a href='#L138'>138</a> +<a name='L139'></a><a href='#L139'>139</a> +<a name='L140'></a><a href='#L140'>140</a> +<a name='L141'></a><a href='#L141'>141</a> +<a name='L142'></a><a href='#L142'>142</a> +<a name='L143'></a><a href='#L143'>143</a> +<a name='L144'></a><a href='#L144'>144</a> +<a name='L145'></a><a href='#L145'>145</a> +<a name='L146'></a><a href='#L146'>146</a> +<a name='L147'></a><a href='#L147'>147</a> +<a name='L148'></a><a href='#L148'>148</a> +<a name='L149'></a><a href='#L149'>149</a> +<a name='L150'></a><a href='#L150'>150</a> +<a name='L151'></a><a href='#L151'>151</a> +<a name='L152'></a><a href='#L152'>152</a> +<a name='L153'></a><a href='#L153'>153</a> +<a name='L154'></a><a href='#L154'>154</a> +<a name='L155'></a><a href='#L155'>155</a> +<a name='L156'></a><a href='#L156'>156</a> +<a name='L157'></a><a href='#L157'>157</a> +<a name='L158'></a><a href='#L158'>158</a> +<a name='L159'></a><a href='#L159'>159</a> +<a name='L160'></a><a href='#L160'>160</a> +<a name='L161'></a><a href='#L161'>161</a> +<a name='L162'></a><a href='#L162'>162</a> +<a name='L163'></a><a href='#L163'>163</a> +<a name='L164'></a><a href='#L164'>164</a> +<a name='L165'></a><a href='#L165'>165</a> +<a name='L166'></a><a href='#L166'>166</a> +<a name='L167'></a><a href='#L167'>167</a> +<a name='L168'></a><a href='#L168'>168</a> +<a name='L169'></a><a href='#L169'>169</a> +<a name='L170'></a><a href='#L170'>170</a> +<a name='L171'></a><a href='#L171'>171</a> +<a name='L172'></a><a href='#L172'>172</a> +<a name='L173'></a><a href='#L173'>173</a> +<a name='L174'></a><a href='#L174'>174</a> +<a name='L175'></a><a href='#L175'>175</a> +<a name='L176'></a><a href='#L176'>176</a> +<a name='L177'></a><a href='#L177'>177</a> +<a name='L178'></a><a href='#L178'>178</a> +<a name='L179'></a><a href='#L179'>179</a> +<a name='L180'></a><a href='#L180'>180</a> +<a name='L181'></a><a href='#L181'>181</a> +<a name='L182'></a><a href='#L182'>182</a> +<a name='L183'></a><a href='#L183'>183</a> +<a name='L184'></a><a href='#L184'>184</a> +<a name='L185'></a><a href='#L185'>185</a> +<a name='L186'></a><a href='#L186'>186</a> +<a name='L187'></a><a href='#L187'>187</a> +<a name='L188'></a><a href='#L188'>188</a> +<a name='L189'></a><a href='#L189'>189</a> +<a name='L190'></a><a href='#L190'>190</a> +<a name='L191'></a><a href='#L191'>191</a> +<a name='L192'></a><a href='#L192'>192</a> +<a name='L193'></a><a href='#L193'>193</a> +<a name='L194'></a><a href='#L194'>194</a> +<a name='L195'></a><a href='#L195'>195</a> +<a name='L196'></a><a href='#L196'>196</a> +<a name='L197'></a><a href='#L197'>197</a> +<a name='L198'></a><a href='#L198'>198</a> +<a name='L199'></a><a href='#L199'>199</a> +<a name='L200'></a><a href='#L200'>200</a> +<a name='L201'></a><a href='#L201'>201</a> +<a name='L202'></a><a href='#L202'>202</a> +<a name='L203'></a><a href='#L203'>203</a> +<a name='L204'></a><a href='#L204'>204</a> +<a name='L205'></a><a href='#L205'>205</a> +<a name='L206'></a><a href='#L206'>206</a> +<a name='L207'></a><a href='#L207'>207</a> +<a name='L208'></a><a href='#L208'>208</a> +<a name='L209'></a><a href='#L209'>209</a> +<a name='L210'></a><a href='#L210'>210</a> +<a name='L211'></a><a href='#L211'>211</a> +<a name='L212'></a><a href='#L212'>212</a> +<a name='L213'></a><a href='#L213'>213</a> +<a name='L214'></a><a href='#L214'>214</a> +<a name='L215'></a><a href='#L215'>215</a> +<a name='L216'></a><a href='#L216'>216</a> +<a name='L217'></a><a href='#L217'>217</a> +<a name='L218'></a><a href='#L218'>218</a> +<a name='L219'></a><a href='#L219'>219</a> +<a name='L220'></a><a href='#L220'>220</a> +<a name='L221'></a><a href='#L221'>221</a> +<a name='L222'></a><a href='#L222'>222</a> +<a name='L223'></a><a href='#L223'>223</a> +<a name='L224'></a><a href='#L224'>224</a> +<a name='L225'></a><a href='#L225'>225</a> +<a name='L226'></a><a href='#L226'>226</a> +<a name='L227'></a><a href='#L227'>227</a> +<a name='L228'></a><a href='#L228'>228</a> +<a name='L229'></a><a href='#L229'>229</a> +<a name='L230'></a><a href='#L230'>230</a> +<a name='L231'></a><a href='#L231'>231</a> +<a name='L232'></a><a href='#L232'>232</a> +<a name='L233'></a><a href='#L233'>233</a> +<a name='L234'></a><a href='#L234'>234</a> +<a name='L235'></a><a href='#L235'>235</a> +<a name='L236'></a><a href='#L236'>236</a> +<a name='L237'></a><a href='#L237'>237</a> +<a name='L238'></a><a href='#L238'>238</a> +<a name='L239'></a><a href='#L239'>239</a> +<a name='L240'></a><a href='#L240'>240</a> +<a name='L241'></a><a href='#L241'>241</a> +<a name='L242'></a><a href='#L242'>242</a> +<a name='L243'></a><a href='#L243'>243</a> +<a name='L244'></a><a href='#L244'>244</a> +<a name='L245'></a><a href='#L245'>245</a> +<a name='L246'></a><a href='#L246'>246</a> +<a name='L247'></a><a href='#L247'>247</a> +<a name='L248'></a><a href='#L248'>248</a> +<a name='L249'></a><a href='#L249'>249</a> +<a name='L250'></a><a href='#L250'>250</a> +<a name='L251'></a><a href='#L251'>251</a> +<a name='L252'></a><a href='#L252'>252</a> +<a name='L253'></a><a href='#L253'>253</a> +<a name='L254'></a><a href='#L254'>254</a> +<a name='L255'></a><a href='#L255'>255</a> +<a name='L256'></a><a href='#L256'>256</a> +<a name='L257'></a><a href='#L257'>257</a> +<a name='L258'></a><a href='#L258'>258</a> +<a name='L259'></a><a href='#L259'>259</a> +<a name='L260'></a><a href='#L260'>260</a> +<a name='L261'></a><a href='#L261'>261</a> +<a name='L262'></a><a href='#L262'>262</a> +<a name='L263'></a><a href='#L263'>263</a> +<a name='L264'></a><a href='#L264'>264</a> +<a name='L265'></a><a href='#L265'>265</a> +<a name='L266'></a><a href='#L266'>266</a> +<a name='L267'></a><a href='#L267'>267</a> +<a name='L268'></a><a href='#L268'>268</a> +<a name='L269'></a><a href='#L269'>269</a> +<a name='L270'></a><a href='#L270'>270</a> +<a name='L271'></a><a href='#L271'>271</a> +<a name='L272'></a><a href='#L272'>272</a> +<a name='L273'></a><a href='#L273'>273</a> +<a name='L274'></a><a href='#L274'>274</a> +<a name='L275'></a><a href='#L275'>275</a> +<a name='L276'></a><a href='#L276'>276</a> +<a name='L277'></a><a href='#L277'>277</a> +<a name='L278'></a><a href='#L278'>278</a> +<a name='L279'></a><a href='#L279'>279</a> +<a name='L280'></a><a href='#L280'>280</a> +<a name='L281'></a><a href='#L281'>281</a> +<a name='L282'></a><a href='#L282'>282</a> +<a name='L283'></a><a href='#L283'>283</a> +<a name='L284'></a><a href='#L284'>284</a> +<a name='L285'></a><a href='#L285'>285</a> +<a name='L286'></a><a href='#L286'>286</a> +<a name='L287'></a><a href='#L287'>287</a> +<a name='L288'></a><a href='#L288'>288</a> +<a name='L289'></a><a href='#L289'>289</a> +<a name='L290'></a><a href='#L290'>290</a> +<a name='L291'></a><a href='#L291'>291</a> +<a name='L292'></a><a href='#L292'>292</a> +<a name='L293'></a><a href='#L293'>293</a> +<a name='L294'></a><a href='#L294'>294</a> +<a name='L295'></a><a href='#L295'>295</a> +<a name='L296'></a><a href='#L296'>296</a> +<a name='L297'></a><a href='#L297'>297</a> +<a name='L298'></a><a href='#L298'>298</a> +<a name='L299'></a><a href='#L299'>299</a> +<a name='L300'></a><a href='#L300'>300</a> +<a name='L301'></a><a href='#L301'>301</a> +<a name='L302'></a><a href='#L302'>302</a> +<a name='L303'></a><a href='#L303'>303</a> +<a name='L304'></a><a href='#L304'>304</a> +<a name='L305'></a><a href='#L305'>305</a> +<a name='L306'></a><a href='#L306'>306</a> +<a name='L307'></a><a href='#L307'>307</a> +<a name='L308'></a><a href='#L308'>308</a> +<a name='L309'></a><a href='#L309'>309</a> +<a name='L310'></a><a href='#L310'>310</a> +<a name='L311'></a><a href='#L311'>311</a> +<a name='L312'></a><a href='#L312'>312</a> +<a name='L313'></a><a href='#L313'>313</a> +<a name='L314'></a><a href='#L314'>314</a> +<a name='L315'></a><a href='#L315'>315</a> +<a name='L316'></a><a href='#L316'>316</a> +<a name='L317'></a><a href='#L317'>317</a> +<a name='L318'></a><a href='#L318'>318</a> +<a name='L319'></a><a href='#L319'>319</a> +<a name='L320'></a><a href='#L320'>320</a> +<a name='L321'></a><a href='#L321'>321</a> +<a name='L322'></a><a href='#L322'>322</a> +<a name='L323'></a><a href='#L323'>323</a> +<a name='L324'></a><a href='#L324'>324</a> +<a name='L325'></a><a href='#L325'>325</a> +<a name='L326'></a><a href='#L326'>326</a> +<a name='L327'></a><a href='#L327'>327</a> +<a name='L328'></a><a href='#L328'>328</a> +<a name='L329'></a><a href='#L329'>329</a> +<a name='L330'></a><a href='#L330'>330</a> +<a name='L331'></a><a href='#L331'>331</a> +<a name='L332'></a><a href='#L332'>332</a> +<a name='L333'></a><a href='#L333'>333</a> +<a name='L334'></a><a href='#L334'>334</a> +<a name='L335'></a><a href='#L335'>335</a> +<a name='L336'></a><a href='#L336'>336</a> +<a name='L337'></a><a href='#L337'>337</a> +<a name='L338'></a><a href='#L338'>338</a> +<a name='L339'></a><a href='#L339'>339</a> +<a name='L340'></a><a href='#L340'>340</a> +<a name='L341'></a><a href='#L341'>341</a> +<a name='L342'></a><a href='#L342'>342</a> +<a name='L343'></a><a href='#L343'>343</a> +<a name='L344'></a><a href='#L344'>344</a> +<a name='L345'></a><a href='#L345'>345</a> +<a name='L346'></a><a href='#L346'>346</a> +<a name='L347'></a><a href='#L347'>347</a> +<a name='L348'></a><a href='#L348'>348</a> +<a name='L349'></a><a href='#L349'>349</a> +<a name='L350'></a><a href='#L350'>350</a> +<a name='L351'></a><a href='#L351'>351</a> +<a name='L352'></a><a href='#L352'>352</a> +<a name='L353'></a><a href='#L353'>353</a> +<a name='L354'></a><a href='#L354'>354</a> +<a name='L355'></a><a href='#L355'>355</a> +<a name='L356'></a><a href='#L356'>356</a> +<a name='L357'></a><a href='#L357'>357</a> +<a name='L358'></a><a href='#L358'>358</a> +<a name='L359'></a><a href='#L359'>359</a> +<a name='L360'></a><a href='#L360'>360</a> +<a name='L361'></a><a href='#L361'>361</a> +<a name='L362'></a><a href='#L362'>362</a> +<a name='L363'></a><a href='#L363'>363</a> +<a name='L364'></a><a href='#L364'>364</a> +<a name='L365'></a><a href='#L365'>365</a> +<a name='L366'></a><a href='#L366'>366</a> +<a name='L367'></a><a href='#L367'>367</a> +<a name='L368'></a><a href='#L368'>368</a> +<a name='L369'></a><a href='#L369'>369</a> +<a name='L370'></a><a href='#L370'>370</a> +<a name='L371'></a><a href='#L371'>371</a> +<a name='L372'></a><a href='#L372'>372</a> +<a name='L373'></a><a href='#L373'>373</a> +<a name='L374'></a><a href='#L374'>374</a> +<a name='L375'></a><a href='#L375'>375</a> +<a name='L376'></a><a href='#L376'>376</a> +<a name='L377'></a><a href='#L377'>377</a> +<a name='L378'></a><a href='#L378'>378</a> +<a name='L379'></a><a href='#L379'>379</a> +<a name='L380'></a><a href='#L380'>380</a> +<a name='L381'></a><a href='#L381'>381</a> +<a name='L382'></a><a href='#L382'>382</a> +<a name='L383'></a><a href='#L383'>383</a> +<a name='L384'></a><a href='#L384'>384</a> +<a name='L385'></a><a href='#L385'>385</a> +<a name='L386'></a><a href='#L386'>386</a> +<a name='L387'></a><a href='#L387'>387</a> +<a name='L388'></a><a href='#L388'>388</a> +<a name='L389'></a><a href='#L389'>389</a> +<a name='L390'></a><a href='#L390'>390</a> +<a name='L391'></a><a href='#L391'>391</a> +<a name='L392'></a><a href='#L392'>392</a> +<a name='L393'></a><a href='#L393'>393</a> +<a name='L394'></a><a href='#L394'>394</a> +<a name='L395'></a><a href='#L395'>395</a> +<a name='L396'></a><a href='#L396'>396</a> +<a name='L397'></a><a href='#L397'>397</a> +<a name='L398'></a><a href='#L398'>398</a> +<a name='L399'></a><a href='#L399'>399</a> +<a name='L400'></a><a href='#L400'>400</a> +<a name='L401'></a><a href='#L401'>401</a> +<a name='L402'></a><a href='#L402'>402</a> +<a name='L403'></a><a href='#L403'>403</a> +<a name='L404'></a><a href='#L404'>404</a> +<a name='L405'></a><a href='#L405'>405</a> +<a name='L406'></a><a href='#L406'>406</a> +<a name='L407'></a><a href='#L407'>407</a> +<a name='L408'></a><a href='#L408'>408</a> +<a name='L409'></a><a href='#L409'>409</a> +<a name='L410'></a><a href='#L410'>410</a> +<a name='L411'></a><a href='#L411'>411</a> +<a name='L412'></a><a href='#L412'>412</a> +<a name='L413'></a><a href='#L413'>413</a> +<a name='L414'></a><a href='#L414'>414</a> +<a name='L415'></a><a href='#L415'>415</a> +<a name='L416'></a><a href='#L416'>416</a> +<a name='L417'></a><a href='#L417'>417</a> +<a name='L418'></a><a href='#L418'>418</a> +<a name='L419'></a><a href='#L419'>419</a> +<a name='L420'></a><a href='#L420'>420</a> +<a name='L421'></a><a href='#L421'>421</a> +<a name='L422'></a><a href='#L422'>422</a> +<a name='L423'></a><a href='#L423'>423</a> +<a name='L424'></a><a href='#L424'>424</a> +<a name='L425'></a><a href='#L425'>425</a> +<a name='L426'></a><a href='#L426'>426</a> +<a name='L427'></a><a href='#L427'>427</a> +<a name='L428'></a><a href='#L428'>428</a> +<a name='L429'></a><a href='#L429'>429</a> +<a name='L430'></a><a href='#L430'>430</a> +<a name='L431'></a><a href='#L431'>431</a> +<a name='L432'></a><a href='#L432'>432</a> +<a name='L433'></a><a href='#L433'>433</a> +<a name='L434'></a><a href='#L434'>434</a> +<a name='L435'></a><a href='#L435'>435</a> +<a name='L436'></a><a href='#L436'>436</a> +<a name='L437'></a><a href='#L437'>437</a> +<a name='L438'></a><a href='#L438'>438</a> +<a name='L439'></a><a href='#L439'>439</a> +<a name='L440'></a><a href='#L440'>440</a> +<a name='L441'></a><a href='#L441'>441</a> +<a name='L442'></a><a href='#L442'>442</a> +<a name='L443'></a><a href='#L443'>443</a> +<a name='L444'></a><a href='#L444'>444</a> +<a name='L445'></a><a href='#L445'>445</a> +<a name='L446'></a><a href='#L446'>446</a> +<a name='L447'></a><a href='#L447'>447</a> +<a name='L448'></a><a href='#L448'>448</a> +<a name='L449'></a><a href='#L449'>449</a> +<a name='L450'></a><a href='#L450'>450</a> +<a name='L451'></a><a href='#L451'>451</a> +<a name='L452'></a><a href='#L452'>452</a> +<a name='L453'></a><a href='#L453'>453</a> +<a name='L454'></a><a href='#L454'>454</a> +<a name='L455'></a><a href='#L455'>455</a> +<a name='L456'></a><a href='#L456'>456</a> +<a name='L457'></a><a href='#L457'>457</a> +<a name='L458'></a><a href='#L458'>458</a> +<a name='L459'></a><a href='#L459'>459</a> +<a name='L460'></a><a href='#L460'>460</a> +<a name='L461'></a><a href='#L461'>461</a> +<a name='L462'></a><a href='#L462'>462</a> +<a name='L463'></a><a href='#L463'>463</a> +<a name='L464'></a><a href='#L464'>464</a> +<a name='L465'></a><a href='#L465'>465</a> +<a name='L466'></a><a href='#L466'>466</a> +<a name='L467'></a><a href='#L467'>467</a> +<a name='L468'></a><a href='#L468'>468</a> +<a name='L469'></a><a href='#L469'>469</a> +<a name='L470'></a><a href='#L470'>470</a> +<a name='L471'></a><a href='#L471'>471</a> +<a name='L472'></a><a href='#L472'>472</a> +<a name='L473'></a><a href='#L473'>473</a> +<a name='L474'></a><a href='#L474'>474</a> +<a name='L475'></a><a href='#L475'>475</a> +<a name='L476'></a><a href='#L476'>476</a> +<a name='L477'></a><a href='#L477'>477</a> +<a name='L478'></a><a href='#L478'>478</a> +<a name='L479'></a><a href='#L479'>479</a> +<a name='L480'></a><a href='#L480'>480</a> +<a name='L481'></a><a href='#L481'>481</a> +<a name='L482'></a><a href='#L482'>482</a> +<a name='L483'></a><a href='#L483'>483</a> +<a name='L484'></a><a href='#L484'>484</a> +<a name='L485'></a><a href='#L485'>485</a> +<a name='L486'></a><a href='#L486'>486</a> +<a name='L487'></a><a href='#L487'>487</a> +<a name='L488'></a><a href='#L488'>488</a> +<a name='L489'></a><a href='#L489'>489</a> +<a name='L490'></a><a href='#L490'>490</a> +<a name='L491'></a><a href='#L491'>491</a> +<a name='L492'></a><a href='#L492'>492</a> +<a name='L493'></a><a href='#L493'>493</a> +<a name='L494'></a><a href='#L494'>494</a> +<a name='L495'></a><a href='#L495'>495</a> +<a name='L496'></a><a href='#L496'>496</a> +<a name='L497'></a><a href='#L497'>497</a> +<a name='L498'></a><a href='#L498'>498</a> +<a name='L499'></a><a href='#L499'>499</a> +<a name='L500'></a><a href='#L500'>500</a> +<a name='L501'></a><a href='#L501'>501</a> +<a name='L502'></a><a href='#L502'>502</a> +<a name='L503'></a><a href='#L503'>503</a> +<a name='L504'></a><a href='#L504'>504</a> +<a name='L505'></a><a href='#L505'>505</a> +<a name='L506'></a><a href='#L506'>506</a> +<a name='L507'></a><a href='#L507'>507</a> +<a name='L508'></a><a href='#L508'>508</a> +<a name='L509'></a><a href='#L509'>509</a> +<a name='L510'></a><a href='#L510'>510</a> +<a name='L511'></a><a href='#L511'>511</a> +<a name='L512'></a><a href='#L512'>512</a> +<a name='L513'></a><a href='#L513'>513</a> +<a name='L514'></a><a href='#L514'>514</a> +<a name='L515'></a><a href='#L515'>515</a> +<a name='L516'></a><a href='#L516'>516</a> +<a name='L517'></a><a href='#L517'>517</a> +<a name='L518'></a><a href='#L518'>518</a> +<a name='L519'></a><a href='#L519'>519</a> +<a name='L520'></a><a href='#L520'>520</a> +<a name='L521'></a><a href='#L521'>521</a> +<a name='L522'></a><a href='#L522'>522</a> +<a name='L523'></a><a href='#L523'>523</a> +<a name='L524'></a><a href='#L524'>524</a> +<a name='L525'></a><a href='#L525'>525</a> +<a name='L526'></a><a href='#L526'>526</a> +<a name='L527'></a><a href='#L527'>527</a> +<a name='L528'></a><a href='#L528'>528</a> +<a name='L529'></a><a href='#L529'>529</a> +<a name='L530'></a><a href='#L530'>530</a> +<a name='L531'></a><a href='#L531'>531</a> +<a name='L532'></a><a href='#L532'>532</a> +<a name='L533'></a><a href='#L533'>533</a> +<a name='L534'></a><a href='#L534'>534</a> +<a name='L535'></a><a href='#L535'>535</a> +<a name='L536'></a><a href='#L536'>536</a> +<a name='L537'></a><a href='#L537'>537</a> +<a name='L538'></a><a href='#L538'>538</a> +<a name='L539'></a><a href='#L539'>539</a> +<a name='L540'></a><a href='#L540'>540</a> +<a name='L541'></a><a href='#L541'>541</a> +<a name='L542'></a><a href='#L542'>542</a> +<a name='L543'></a><a href='#L543'>543</a> +<a name='L544'></a><a href='#L544'>544</a> +<a name='L545'></a><a href='#L545'>545</a> +<a name='L546'></a><a href='#L546'>546</a> +<a name='L547'></a><a href='#L547'>547</a> +<a name='L548'></a><a href='#L548'>548</a> +<a name='L549'></a><a href='#L549'>549</a> +<a name='L550'></a><a href='#L550'>550</a> +<a name='L551'></a><a href='#L551'>551</a> +<a name='L552'></a><a href='#L552'>552</a> +<a name='L553'></a><a href='#L553'>553</a> +<a name='L554'></a><a href='#L554'>554</a> +<a name='L555'></a><a href='#L555'>555</a> +<a name='L556'></a><a href='#L556'>556</a> +<a name='L557'></a><a href='#L557'>557</a> +<a name='L558'></a><a href='#L558'>558</a> +<a name='L559'></a><a href='#L559'>559</a> +<a name='L560'></a><a href='#L560'>560</a> +<a name='L561'></a><a href='#L561'>561</a> +<a name='L562'></a><a href='#L562'>562</a> +<a name='L563'></a><a href='#L563'>563</a> +<a name='L564'></a><a href='#L564'>564</a> +<a name='L565'></a><a href='#L565'>565</a> +<a name='L566'></a><a href='#L566'>566</a> +<a name='L567'></a><a href='#L567'>567</a> +<a name='L568'></a><a href='#L568'>568</a> +<a name='L569'></a><a href='#L569'>569</a> +<a name='L570'></a><a href='#L570'>570</a> +<a name='L571'></a><a href='#L571'>571</a> +<a name='L572'></a><a href='#L572'>572</a> +<a name='L573'></a><a href='#L573'>573</a> +<a name='L574'></a><a href='#L574'>574</a> +<a name='L575'></a><a href='#L575'>575</a> +<a name='L576'></a><a href='#L576'>576</a> +<a name='L577'></a><a href='#L577'>577</a> +<a name='L578'></a><a href='#L578'>578</a> +<a name='L579'></a><a href='#L579'>579</a> +<a name='L580'></a><a href='#L580'>580</a> +<a name='L581'></a><a href='#L581'>581</a> +<a name='L582'></a><a href='#L582'>582</a> +<a name='L583'></a><a href='#L583'>583</a> +<a name='L584'></a><a href='#L584'>584</a> +<a name='L585'></a><a href='#L585'>585</a> +<a name='L586'></a><a href='#L586'>586</a> +<a name='L587'></a><a href='#L587'>587</a> +<a name='L588'></a><a href='#L588'>588</a> +<a name='L589'></a><a href='#L589'>589</a> +<a name='L590'></a><a href='#L590'>590</a> +<a name='L591'></a><a href='#L591'>591</a> +<a name='L592'></a><a href='#L592'>592</a> +<a name='L593'></a><a href='#L593'>593</a> +<a name='L594'></a><a href='#L594'>594</a> +<a name='L595'></a><a href='#L595'>595</a> +<a name='L596'></a><a href='#L596'>596</a> +<a name='L597'></a><a href='#L597'>597</a> +<a name='L598'></a><a href='#L598'>598</a> +<a name='L599'></a><a href='#L599'>599</a> +<a name='L600'></a><a href='#L600'>600</a> +<a name='L601'></a><a href='#L601'>601</a> +<a name='L602'></a><a href='#L602'>602</a> +<a name='L603'></a><a href='#L603'>603</a> +<a name='L604'></a><a href='#L604'>604</a> +<a name='L605'></a><a href='#L605'>605</a> +<a name='L606'></a><a href='#L606'>606</a> +<a name='L607'></a><a href='#L607'>607</a> +<a name='L608'></a><a href='#L608'>608</a> +<a name='L609'></a><a href='#L609'>609</a> +<a name='L610'></a><a href='#L610'>610</a> +<a name='L611'></a><a href='#L611'>611</a> +<a name='L612'></a><a href='#L612'>612</a> +<a name='L613'></a><a href='#L613'>613</a> +<a name='L614'></a><a href='#L614'>614</a> +<a name='L615'></a><a href='#L615'>615</a> +<a name='L616'></a><a href='#L616'>616</a> +<a name='L617'></a><a href='#L617'>617</a> +<a name='L618'></a><a href='#L618'>618</a> +<a name='L619'></a><a href='#L619'>619</a> +<a name='L620'></a><a href='#L620'>620</a> +<a name='L621'></a><a href='#L621'>621</a> +<a name='L622'></a><a href='#L622'>622</a> +<a name='L623'></a><a href='#L623'>623</a> +<a name='L624'></a><a href='#L624'>624</a> +<a name='L625'></a><a href='#L625'>625</a> +<a name='L626'></a><a href='#L626'>626</a> +<a name='L627'></a><a href='#L627'>627</a> +<a name='L628'></a><a href='#L628'>628</a> +<a name='L629'></a><a href='#L629'>629</a> +<a name='L630'></a><a href='#L630'>630</a> +<a name='L631'></a><a href='#L631'>631</a> +<a name='L632'></a><a href='#L632'>632</a> +<a name='L633'></a><a href='#L633'>633</a> +<a name='L634'></a><a href='#L634'>634</a> +<a name='L635'></a><a href='#L635'>635</a> +<a name='L636'></a><a href='#L636'>636</a> +<a name='L637'></a><a href='#L637'>637</a> +<a name='L638'></a><a href='#L638'>638</a> +<a name='L639'></a><a href='#L639'>639</a> +<a name='L640'></a><a href='#L640'>640</a> +<a name='L641'></a><a href='#L641'>641</a> +<a name='L642'></a><a href='#L642'>642</a> +<a name='L643'></a><a href='#L643'>643</a> +<a name='L644'></a><a href='#L644'>644</a> +<a name='L645'></a><a href='#L645'>645</a> +<a name='L646'></a><a href='#L646'>646</a> +<a name='L647'></a><a href='#L647'>647</a> +<a name='L648'></a><a href='#L648'>648</a> +<a name='L649'></a><a href='#L649'>649</a> +<a name='L650'></a><a href='#L650'>650</a> +<a name='L651'></a><a href='#L651'>651</a> +<a name='L652'></a><a href='#L652'>652</a> +<a name='L653'></a><a href='#L653'>653</a> +<a name='L654'></a><a href='#L654'>654</a> +<a name='L655'></a><a href='#L655'>655</a> +<a name='L656'></a><a href='#L656'>656</a> +<a name='L657'></a><a href='#L657'>657</a> +<a name='L658'></a><a href='#L658'>658</a> +<a name='L659'></a><a href='#L659'>659</a> +<a name='L660'></a><a href='#L660'>660</a> +<a name='L661'></a><a href='#L661'>661</a> +<a name='L662'></a><a href='#L662'>662</a> +<a name='L663'></a><a href='#L663'>663</a> +<a name='L664'></a><a href='#L664'>664</a> +<a name='L665'></a><a href='#L665'>665</a> +<a name='L666'></a><a href='#L666'>666</a> +<a name='L667'></a><a href='#L667'>667</a> +<a name='L668'></a><a href='#L668'>668</a> +<a name='L669'></a><a href='#L669'>669</a> +<a name='L670'></a><a href='#L670'>670</a> +<a name='L671'></a><a href='#L671'>671</a> +<a name='L672'></a><a href='#L672'>672</a> +<a name='L673'></a><a href='#L673'>673</a> +<a name='L674'></a><a href='#L674'>674</a> +<a name='L675'></a><a href='#L675'>675</a> +<a name='L676'></a><a href='#L676'>676</a> +<a name='L677'></a><a href='#L677'>677</a> +<a name='L678'></a><a href='#L678'>678</a> +<a name='L679'></a><a href='#L679'>679</a> +<a name='L680'></a><a href='#L680'>680</a> +<a name='L681'></a><a href='#L681'>681</a> +<a name='L682'></a><a href='#L682'>682</a> +<a name='L683'></a><a href='#L683'>683</a> +<a name='L684'></a><a href='#L684'>684</a> +<a name='L685'></a><a href='#L685'>685</a> +<a name='L686'></a><a href='#L686'>686</a> +<a name='L687'></a><a href='#L687'>687</a> +<a name='L688'></a><a href='#L688'>688</a> +<a name='L689'></a><a href='#L689'>689</a> +<a name='L690'></a><a href='#L690'>690</a> +<a name='L691'></a><a href='#L691'>691</a> +<a name='L692'></a><a href='#L692'>692</a> +<a name='L693'></a><a href='#L693'>693</a> +<a name='L694'></a><a href='#L694'>694</a> +<a name='L695'></a><a href='#L695'>695</a> +<a name='L696'></a><a href='#L696'>696</a> +<a name='L697'></a><a href='#L697'>697</a> +<a name='L698'></a><a href='#L698'>698</a> +<a name='L699'></a><a href='#L699'>699</a> +<a name='L700'></a><a href='#L700'>700</a> +<a name='L701'></a><a href='#L701'>701</a> +<a name='L702'></a><a href='#L702'>702</a> +<a name='L703'></a><a href='#L703'>703</a> +<a name='L704'></a><a href='#L704'>704</a> +<a name='L705'></a><a href='#L705'>705</a> +<a name='L706'></a><a href='#L706'>706</a> +<a name='L707'></a><a href='#L707'>707</a> +<a name='L708'></a><a href='#L708'>708</a> +<a name='L709'></a><a href='#L709'>709</a> +<a name='L710'></a><a href='#L710'>710</a> +<a name='L711'></a><a href='#L711'>711</a> +<a name='L712'></a><a href='#L712'>712</a> +<a name='L713'></a><a href='#L713'>713</a> +<a name='L714'></a><a href='#L714'>714</a> +<a name='L715'></a><a href='#L715'>715</a> +<a name='L716'></a><a href='#L716'>716</a> +<a name='L717'></a><a href='#L717'>717</a> +<a name='L718'></a><a href='#L718'>718</a> +<a name='L719'></a><a href='#L719'>719</a> +<a name='L720'></a><a href='#L720'>720</a> +<a name='L721'></a><a href='#L721'>721</a> +<a name='L722'></a><a href='#L722'>722</a> +<a name='L723'></a><a href='#L723'>723</a> +<a name='L724'></a><a href='#L724'>724</a> +<a name='L725'></a><a href='#L725'>725</a> +<a name='L726'></a><a href='#L726'>726</a> +<a name='L727'></a><a href='#L727'>727</a> +<a name='L728'></a><a href='#L728'>728</a> +<a name='L729'></a><a href='#L729'>729</a> +<a name='L730'></a><a href='#L730'>730</a> +<a name='L731'></a><a href='#L731'>731</a> +<a name='L732'></a><a href='#L732'>732</a> +<a name='L733'></a><a href='#L733'>733</a> +<a name='L734'></a><a href='#L734'>734</a> +<a name='L735'></a><a href='#L735'>735</a> +<a name='L736'></a><a href='#L736'>736</a> +<a name='L737'></a><a href='#L737'>737</a> +<a name='L738'></a><a href='#L738'>738</a> +<a name='L739'></a><a href='#L739'>739</a> +<a name='L740'></a><a href='#L740'>740</a> +<a name='L741'></a><a href='#L741'>741</a> +<a name='L742'></a><a href='#L742'>742</a> +<a name='L743'></a><a href='#L743'>743</a> +<a name='L744'></a><a href='#L744'>744</a> +<a name='L745'></a><a href='#L745'>745</a> +<a name='L746'></a><a href='#L746'>746</a> +<a name='L747'></a><a href='#L747'>747</a> +<a name='L748'></a><a href='#L748'>748</a> +<a name='L749'></a><a href='#L749'>749</a> +<a name='L750'></a><a href='#L750'>750</a> +<a name='L751'></a><a href='#L751'>751</a> +<a name='L752'></a><a href='#L752'>752</a> +<a name='L753'></a><a href='#L753'>753</a> +<a name='L754'></a><a href='#L754'>754</a> +<a name='L755'></a><a href='#L755'>755</a> +<a name='L756'></a><a href='#L756'>756</a> +<a name='L757'></a><a href='#L757'>757</a> +<a name='L758'></a><a href='#L758'>758</a> +<a name='L759'></a><a href='#L759'>759</a> +<a name='L760'></a><a href='#L760'>760</a> +<a name='L761'></a><a href='#L761'>761</a> +<a name='L762'></a><a href='#L762'>762</a> +<a name='L763'></a><a href='#L763'>763</a> +<a name='L764'></a><a href='#L764'>764</a> +<a name='L765'></a><a href='#L765'>765</a> +<a name='L766'></a><a href='#L766'>766</a> +<a name='L767'></a><a href='#L767'>767</a> +<a name='L768'></a><a href='#L768'>768</a> +<a name='L769'></a><a href='#L769'>769</a> +<a name='L770'></a><a href='#L770'>770</a> +<a name='L771'></a><a href='#L771'>771</a> +<a name='L772'></a><a href='#L772'>772</a> +<a name='L773'></a><a href='#L773'>773</a> +<a name='L774'></a><a href='#L774'>774</a> +<a name='L775'></a><a href='#L775'>775</a> +<a name='L776'></a><a href='#L776'>776</a> +<a name='L777'></a><a href='#L777'>777</a> +<a name='L778'></a><a href='#L778'>778</a> +<a name='L779'></a><a href='#L779'>779</a> +<a name='L780'></a><a href='#L780'>780</a> +<a name='L781'></a><a href='#L781'>781</a> +<a name='L782'></a><a href='#L782'>782</a> +<a name='L783'></a><a href='#L783'>783</a> +<a name='L784'></a><a href='#L784'>784</a> +<a name='L785'></a><a href='#L785'>785</a> +<a name='L786'></a><a href='#L786'>786</a> +<a name='L787'></a><a href='#L787'>787</a> +<a name='L788'></a><a href='#L788'>788</a> +<a name='L789'></a><a href='#L789'>789</a> +<a name='L790'></a><a href='#L790'>790</a> +<a name='L791'></a><a href='#L791'>791</a> +<a name='L792'></a><a href='#L792'>792</a> +<a name='L793'></a><a href='#L793'>793</a> +<a name='L794'></a><a href='#L794'>794</a> +<a name='L795'></a><a href='#L795'>795</a> +<a name='L796'></a><a href='#L796'>796</a> +<a name='L797'></a><a href='#L797'>797</a> +<a name='L798'></a><a href='#L798'>798</a> +<a name='L799'></a><a href='#L799'>799</a> +<a name='L800'></a><a href='#L800'>800</a> +<a name='L801'></a><a href='#L801'>801</a> +<a name='L802'></a><a href='#L802'>802</a> +<a name='L803'></a><a href='#L803'>803</a> +<a name='L804'></a><a href='#L804'>804</a> +<a name='L805'></a><a href='#L805'>805</a> +<a name='L806'></a><a href='#L806'>806</a> +<a name='L807'></a><a href='#L807'>807</a> +<a name='L808'></a><a href='#L808'>808</a> +<a name='L809'></a><a href='#L809'>809</a> +<a name='L810'></a><a href='#L810'>810</a> +<a name='L811'></a><a href='#L811'>811</a> +<a name='L812'></a><a href='#L812'>812</a> +<a name='L813'></a><a href='#L813'>813</a> +<a name='L814'></a><a href='#L814'>814</a> +<a name='L815'></a><a href='#L815'>815</a> +<a name='L816'></a><a href='#L816'>816</a> +<a name='L817'></a><a href='#L817'>817</a> +<a name='L818'></a><a href='#L818'>818</a> +<a name='L819'></a><a href='#L819'>819</a> +<a name='L820'></a><a href='#L820'>820</a> +<a name='L821'></a><a href='#L821'>821</a> +<a name='L822'></a><a href='#L822'>822</a> +<a name='L823'></a><a href='#L823'>823</a> +<a name='L824'></a><a href='#L824'>824</a> +<a name='L825'></a><a href='#L825'>825</a> +<a name='L826'></a><a href='#L826'>826</a> +<a name='L827'></a><a href='#L827'>827</a> +<a name='L828'></a><a href='#L828'>828</a> +<a name='L829'></a><a href='#L829'>829</a> +<a name='L830'></a><a href='#L830'>830</a> +<a name='L831'></a><a href='#L831'>831</a> +<a name='L832'></a><a href='#L832'>832</a> +<a name='L833'></a><a href='#L833'>833</a> +<a name='L834'></a><a href='#L834'>834</a> +<a name='L835'></a><a href='#L835'>835</a> +<a name='L836'></a><a href='#L836'>836</a> +<a name='L837'></a><a href='#L837'>837</a> +<a name='L838'></a><a href='#L838'>838</a> +<a name='L839'></a><a href='#L839'>839</a> +<a name='L840'></a><a href='#L840'>840</a> +<a name='L841'></a><a href='#L841'>841</a> +<a name='L842'></a><a href='#L842'>842</a> +<a name='L843'></a><a href='#L843'>843</a> +<a name='L844'></a><a href='#L844'>844</a> +<a name='L845'></a><a href='#L845'>845</a> +<a name='L846'></a><a href='#L846'>846</a> +<a name='L847'></a><a href='#L847'>847</a> +<a name='L848'></a><a href='#L848'>848</a> +<a name='L849'></a><a href='#L849'>849</a> +<a name='L850'></a><a href='#L850'>850</a> +<a name='L851'></a><a href='#L851'>851</a> +<a name='L852'></a><a href='#L852'>852</a> +<a name='L853'></a><a href='#L853'>853</a> +<a name='L854'></a><a href='#L854'>854</a> +<a name='L855'></a><a href='#L855'>855</a> +<a name='L856'></a><a href='#L856'>856</a> +<a name='L857'></a><a href='#L857'>857</a> +<a name='L858'></a><a href='#L858'>858</a> +<a name='L859'></a><a href='#L859'>859</a> +<a name='L860'></a><a href='#L860'>860</a> +<a name='L861'></a><a href='#L861'>861</a> +<a name='L862'></a><a href='#L862'>862</a> +<a name='L863'></a><a href='#L863'>863</a> +<a name='L864'></a><a href='#L864'>864</a> +<a name='L865'></a><a href='#L865'>865</a> +<a name='L866'></a><a href='#L866'>866</a> +<a name='L867'></a><a href='#L867'>867</a> +<a name='L868'></a><a href='#L868'>868</a> +<a name='L869'></a><a href='#L869'>869</a> +<a name='L870'></a><a href='#L870'>870</a> +<a name='L871'></a><a href='#L871'>871</a> +<a name='L872'></a><a href='#L872'>872</a> +<a name='L873'></a><a href='#L873'>873</a> +<a name='L874'></a><a href='#L874'>874</a> +<a name='L875'></a><a href='#L875'>875</a> +<a name='L876'></a><a href='#L876'>876</a> +<a name='L877'></a><a href='#L877'>877</a> +<a name='L878'></a><a href='#L878'>878</a> +<a name='L879'></a><a href='#L879'>879</a> +<a name='L880'></a><a href='#L880'>880</a> +<a name='L881'></a><a href='#L881'>881</a> +<a name='L882'></a><a href='#L882'>882</a> +<a name='L883'></a><a href='#L883'>883</a> +<a name='L884'></a><a href='#L884'>884</a> +<a name='L885'></a><a href='#L885'>885</a> +<a name='L886'></a><a href='#L886'>886</a> +<a name='L887'></a><a href='#L887'>887</a> +<a name='L888'></a><a href='#L888'>888</a> +<a name='L889'></a><a href='#L889'>889</a> +<a name='L890'></a><a href='#L890'>890</a> +<a name='L891'></a><a href='#L891'>891</a> +<a name='L892'></a><a href='#L892'>892</a> +<a name='L893'></a><a href='#L893'>893</a> +<a name='L894'></a><a href='#L894'>894</a> +<a name='L895'></a><a href='#L895'>895</a> +<a name='L896'></a><a href='#L896'>896</a> +<a name='L897'></a><a href='#L897'>897</a> +<a name='L898'></a><a href='#L898'>898</a> +<a name='L899'></a><a href='#L899'>899</a> +<a name='L900'></a><a href='#L900'>900</a> +<a name='L901'></a><a href='#L901'>901</a> +<a name='L902'></a><a href='#L902'>902</a> +<a name='L903'></a><a href='#L903'>903</a> +<a name='L904'></a><a href='#L904'>904</a> +<a name='L905'></a><a href='#L905'>905</a> +<a name='L906'></a><a href='#L906'>906</a> +<a name='L907'></a><a href='#L907'>907</a> +<a name='L908'></a><a href='#L908'>908</a> +<a name='L909'></a><a href='#L909'>909</a> +<a name='L910'></a><a href='#L910'>910</a> +<a name='L911'></a><a href='#L911'>911</a> +<a name='L912'></a><a href='#L912'>912</a> +<a name='L913'></a><a href='#L913'>913</a> +<a name='L914'></a><a href='#L914'>914</a> +<a name='L915'></a><a href='#L915'>915</a> +<a name='L916'></a><a href='#L916'>916</a> +<a name='L917'></a><a href='#L917'>917</a> +<a name='L918'></a><a href='#L918'>918</a> +<a name='L919'></a><a href='#L919'>919</a> +<a name='L920'></a><a href='#L920'>920</a> +<a name='L921'></a><a href='#L921'>921</a> +<a name='L922'></a><a href='#L922'>922</a> +<a name='L923'></a><a href='#L923'>923</a> +<a name='L924'></a><a href='#L924'>924</a> +<a name='L925'></a><a href='#L925'>925</a> +<a name='L926'></a><a href='#L926'>926</a> +<a name='L927'></a><a href='#L927'>927</a> +<a name='L928'></a><a href='#L928'>928</a> +<a name='L929'></a><a href='#L929'>929</a> +<a name='L930'></a><a href='#L930'>930</a> +<a name='L931'></a><a href='#L931'>931</a> +<a name='L932'></a><a href='#L932'>932</a> +<a name='L933'></a><a href='#L933'>933</a> +<a name='L934'></a><a href='#L934'>934</a> +<a name='L935'></a><a href='#L935'>935</a> +<a name='L936'></a><a href='#L936'>936</a> +<a name='L937'></a><a href='#L937'>937</a> +<a name='L938'></a><a href='#L938'>938</a> +<a name='L939'></a><a href='#L939'>939</a> +<a name='L940'></a><a href='#L940'>940</a> +<a name='L941'></a><a href='#L941'>941</a> +<a name='L942'></a><a href='#L942'>942</a> +<a name='L943'></a><a href='#L943'>943</a> +<a name='L944'></a><a href='#L944'>944</a> +<a name='L945'></a><a href='#L945'>945</a> +<a name='L946'></a><a href='#L946'>946</a> +<a name='L947'></a><a href='#L947'>947</a> +<a name='L948'></a><a href='#L948'>948</a> +<a name='L949'></a><a href='#L949'>949</a> +<a name='L950'></a><a href='#L950'>950</a> +<a name='L951'></a><a href='#L951'>951</a> +<a name='L952'></a><a href='#L952'>952</a> +<a name='L953'></a><a href='#L953'>953</a> +<a name='L954'></a><a href='#L954'>954</a> +<a name='L955'></a><a href='#L955'>955</a> +<a name='L956'></a><a href='#L956'>956</a> +<a name='L957'></a><a href='#L957'>957</a> +<a name='L958'></a><a href='#L958'>958</a> +<a name='L959'></a><a href='#L959'>959</a> +<a name='L960'></a><a href='#L960'>960</a> +<a name='L961'></a><a href='#L961'>961</a> +<a name='L962'></a><a href='#L962'>962</a> +<a name='L963'></a><a href='#L963'>963</a> +<a name='L964'></a><a href='#L964'>964</a> +<a name='L965'></a><a href='#L965'>965</a> +<a name='L966'></a><a href='#L966'>966</a> +<a name='L967'></a><a href='#L967'>967</a> +<a name='L968'></a><a href='#L968'>968</a> +<a name='L969'></a><a href='#L969'>969</a> +<a name='L970'></a><a href='#L970'>970</a> +<a name='L971'></a><a href='#L971'>971</a> +<a name='L972'></a><a href='#L972'>972</a> +<a name='L973'></a><a href='#L973'>973</a> +<a name='L974'></a><a href='#L974'>974</a> +<a name='L975'></a><a href='#L975'>975</a> +<a name='L976'></a><a href='#L976'>976</a> +<a name='L977'></a><a href='#L977'>977</a> +<a name='L978'></a><a href='#L978'>978</a> +<a name='L979'></a><a href='#L979'>979</a> +<a name='L980'></a><a href='#L980'>980</a> +<a name='L981'></a><a href='#L981'>981</a> +<a name='L982'></a><a href='#L982'>982</a> +<a name='L983'></a><a href='#L983'>983</a> +<a name='L984'></a><a href='#L984'>984</a> +<a name='L985'></a><a href='#L985'>985</a> +<a name='L986'></a><a href='#L986'>986</a> +<a name='L987'></a><a href='#L987'>987</a> +<a name='L988'></a><a href='#L988'>988</a> +<a name='L989'></a><a href='#L989'>989</a> +<a name='L990'></a><a href='#L990'>990</a> +<a name='L991'></a><a href='#L991'>991</a> +<a name='L992'></a><a href='#L992'>992</a> +<a name='L993'></a><a href='#L993'>993</a> +<a name='L994'></a><a href='#L994'>994</a> +<a name='L995'></a><a href='#L995'>995</a> +<a name='L996'></a><a href='#L996'>996</a> +<a name='L997'></a><a href='#L997'>997</a> +<a name='L998'></a><a href='#L998'>998</a> +<a name='L999'></a><a href='#L999'>999</a> +<a name='L1000'></a><a href='#L1000'>1000</a> +<a name='L1001'></a><a href='#L1001'>1001</a> +<a name='L1002'></a><a href='#L1002'>1002</a> +<a name='L1003'></a><a href='#L1003'>1003</a> +<a name='L1004'></a><a href='#L1004'>1004</a> +<a name='L1005'></a><a href='#L1005'>1005</a> +<a name='L1006'></a><a href='#L1006'>1006</a> +<a name='L1007'></a><a href='#L1007'>1007</a> +<a name='L1008'></a><a href='#L1008'>1008</a> +<a name='L1009'></a><a href='#L1009'>1009</a> +<a name='L1010'></a><a href='#L1010'>1010</a> +<a name='L1011'></a><a href='#L1011'>1011</a> +<a name='L1012'></a><a href='#L1012'>1012</a> +<a name='L1013'></a><a href='#L1013'>1013</a> +<a name='L1014'></a><a href='#L1014'>1014</a> +<a name='L1015'></a><a href='#L1015'>1015</a> +<a name='L1016'></a><a href='#L1016'>1016</a> +<a name='L1017'></a><a href='#L1017'>1017</a> +<a name='L1018'></a><a href='#L1018'>1018</a> +<a name='L1019'></a><a href='#L1019'>1019</a> +<a name='L1020'></a><a href='#L1020'>1020</a> +<a name='L1021'></a><a href='#L1021'>1021</a> +<a name='L1022'></a><a href='#L1022'>1022</a> +<a name='L1023'></a><a href='#L1023'>1023</a> +<a name='L1024'></a><a href='#L1024'>1024</a> +<a name='L1025'></a><a href='#L1025'>1025</a> +<a name='L1026'></a><a href='#L1026'>1026</a> +<a name='L1027'></a><a href='#L1027'>1027</a> +<a name='L1028'></a><a href='#L1028'>1028</a> +<a name='L1029'></a><a href='#L1029'>1029</a> +<a name='L1030'></a><a href='#L1030'>1030</a> +<a name='L1031'></a><a href='#L1031'>1031</a> +<a name='L1032'></a><a href='#L1032'>1032</a> +<a name='L1033'></a><a href='#L1033'>1033</a> +<a name='L1034'></a><a href='#L1034'>1034</a> +<a name='L1035'></a><a href='#L1035'>1035</a> +<a name='L1036'></a><a href='#L1036'>1036</a> +<a name='L1037'></a><a href='#L1037'>1037</a> +<a name='L1038'></a><a href='#L1038'>1038</a> +<a name='L1039'></a><a href='#L1039'>1039</a> +<a name='L1040'></a><a href='#L1040'>1040</a> +<a name='L1041'></a><a href='#L1041'>1041</a> +<a name='L1042'></a><a href='#L1042'>1042</a> +<a name='L1043'></a><a href='#L1043'>1043</a> +<a name='L1044'></a><a href='#L1044'>1044</a> +<a name='L1045'></a><a href='#L1045'>1045</a> +<a name='L1046'></a><a href='#L1046'>1046</a> +<a name='L1047'></a><a href='#L1047'>1047</a> +<a name='L1048'></a><a href='#L1048'>1048</a> +<a name='L1049'></a><a href='#L1049'>1049</a> +<a name='L1050'></a><a href='#L1050'>1050</a> +<a name='L1051'></a><a href='#L1051'>1051</a> +<a name='L1052'></a><a href='#L1052'>1052</a> +<a name='L1053'></a><a href='#L1053'>1053</a> +<a name='L1054'></a><a href='#L1054'>1054</a> +<a name='L1055'></a><a href='#L1055'>1055</a> +<a name='L1056'></a><a href='#L1056'>1056</a> +<a name='L1057'></a><a href='#L1057'>1057</a> +<a name='L1058'></a><a href='#L1058'>1058</a> +<a name='L1059'></a><a href='#L1059'>1059</a> +<a name='L1060'></a><a href='#L1060'>1060</a> +<a name='L1061'></a><a href='#L1061'>1061</a> +<a name='L1062'></a><a href='#L1062'>1062</a> +<a name='L1063'></a><a href='#L1063'>1063</a> +<a name='L1064'></a><a href='#L1064'>1064</a> +<a name='L1065'></a><a href='#L1065'>1065</a> +<a name='L1066'></a><a href='#L1066'>1066</a> +<a name='L1067'></a><a href='#L1067'>1067</a> +<a name='L1068'></a><a href='#L1068'>1068</a> +<a name='L1069'></a><a href='#L1069'>1069</a> +<a name='L1070'></a><a href='#L1070'>1070</a> +<a name='L1071'></a><a href='#L1071'>1071</a> +<a name='L1072'></a><a href='#L1072'>1072</a> +<a name='L1073'></a><a href='#L1073'>1073</a> +<a name='L1074'></a><a href='#L1074'>1074</a> +<a name='L1075'></a><a href='#L1075'>1075</a> +<a name='L1076'></a><a href='#L1076'>1076</a> +<a name='L1077'></a><a href='#L1077'>1077</a> +<a name='L1078'></a><a href='#L1078'>1078</a> +<a name='L1079'></a><a href='#L1079'>1079</a> +<a name='L1080'></a><a href='#L1080'>1080</a> +<a name='L1081'></a><a href='#L1081'>1081</a> +<a name='L1082'></a><a href='#L1082'>1082</a> +<a name='L1083'></a><a href='#L1083'>1083</a> +<a name='L1084'></a><a href='#L1084'>1084</a> +<a name='L1085'></a><a href='#L1085'>1085</a> +<a name='L1086'></a><a href='#L1086'>1086</a> +<a name='L1087'></a><a href='#L1087'>1087</a> +<a name='L1088'></a><a href='#L1088'>1088</a> +<a name='L1089'></a><a href='#L1089'>1089</a> +<a name='L1090'></a><a href='#L1090'>1090</a> +<a name='L1091'></a><a href='#L1091'>1091</a> +<a name='L1092'></a><a href='#L1092'>1092</a> +<a name='L1093'></a><a href='#L1093'>1093</a> +<a name='L1094'></a><a href='#L1094'>1094</a> +<a name='L1095'></a><a href='#L1095'>1095</a> +<a name='L1096'></a><a href='#L1096'>1096</a> +<a name='L1097'></a><a href='#L1097'>1097</a> +<a name='L1098'></a><a href='#L1098'>1098</a> +<a name='L1099'></a><a href='#L1099'>1099</a> +<a name='L1100'></a><a href='#L1100'>1100</a> +<a name='L1101'></a><a href='#L1101'>1101</a> +<a name='L1102'></a><a href='#L1102'>1102</a> +<a name='L1103'></a><a href='#L1103'>1103</a> +<a name='L1104'></a><a href='#L1104'>1104</a> +<a name='L1105'></a><a href='#L1105'>1105</a> +<a name='L1106'></a><a href='#L1106'>1106</a> +<a name='L1107'></a><a href='#L1107'>1107</a> +<a name='L1108'></a><a href='#L1108'>1108</a> +<a name='L1109'></a><a href='#L1109'>1109</a> +<a name='L1110'></a><a href='#L1110'>1110</a> +<a name='L1111'></a><a href='#L1111'>1111</a> +<a name='L1112'></a><a href='#L1112'>1112</a> +<a name='L1113'></a><a href='#L1113'>1113</a> +<a name='L1114'></a><a href='#L1114'>1114</a> +<a name='L1115'></a><a href='#L1115'>1115</a> +<a name='L1116'></a><a href='#L1116'>1116</a> +<a name='L1117'></a><a href='#L1117'>1117</a> +<a name='L1118'></a><a href='#L1118'>1118</a> +<a name='L1119'></a><a href='#L1119'>1119</a> +<a name='L1120'></a><a href='#L1120'>1120</a> +<a name='L1121'></a><a href='#L1121'>1121</a> +<a name='L1122'></a><a href='#L1122'>1122</a> +<a name='L1123'></a><a href='#L1123'>1123</a> +<a name='L1124'></a><a href='#L1124'>1124</a> +<a name='L1125'></a><a href='#L1125'>1125</a> +<a name='L1126'></a><a href='#L1126'>1126</a> +<a name='L1127'></a><a href='#L1127'>1127</a> +<a name='L1128'></a><a href='#L1128'>1128</a> +<a name='L1129'></a><a href='#L1129'>1129</a> +<a name='L1130'></a><a href='#L1130'>1130</a> +<a name='L1131'></a><a href='#L1131'>1131</a> +<a name='L1132'></a><a href='#L1132'>1132</a> +<a name='L1133'></a><a href='#L1133'>1133</a> +<a name='L1134'></a><a href='#L1134'>1134</a> +<a name='L1135'></a><a href='#L1135'>1135</a> +<a name='L1136'></a><a href='#L1136'>1136</a> +<a name='L1137'></a><a href='#L1137'>1137</a> +<a name='L1138'></a><a href='#L1138'>1138</a> +<a name='L1139'></a><a href='#L1139'>1139</a> +<a name='L1140'></a><a href='#L1140'>1140</a> +<a name='L1141'></a><a href='#L1141'>1141</a> +<a name='L1142'></a><a href='#L1142'>1142</a> +<a name='L1143'></a><a href='#L1143'>1143</a> +<a name='L1144'></a><a href='#L1144'>1144</a> +<a name='L1145'></a><a href='#L1145'>1145</a> +<a name='L1146'></a><a href='#L1146'>1146</a> +<a name='L1147'></a><a href='#L1147'>1147</a> +<a name='L1148'></a><a href='#L1148'>1148</a> +<a name='L1149'></a><a href='#L1149'>1149</a> +<a name='L1150'></a><a href='#L1150'>1150</a> +<a name='L1151'></a><a href='#L1151'>1151</a> +<a name='L1152'></a><a href='#L1152'>1152</a> +<a name='L1153'></a><a href='#L1153'>1153</a> +<a name='L1154'></a><a href='#L1154'>1154</a> +<a name='L1155'></a><a href='#L1155'>1155</a> +<a name='L1156'></a><a href='#L1156'>1156</a> +<a name='L1157'></a><a href='#L1157'>1157</a> +<a name='L1158'></a><a href='#L1158'>1158</a> +<a name='L1159'></a><a href='#L1159'>1159</a> +<a name='L1160'></a><a href='#L1160'>1160</a> +<a name='L1161'></a><a href='#L1161'>1161</a> +<a name='L1162'></a><a href='#L1162'>1162</a> +<a name='L1163'></a><a href='#L1163'>1163</a> +<a name='L1164'></a><a href='#L1164'>1164</a> +<a name='L1165'></a><a href='#L1165'>1165</a> +<a name='L1166'></a><a href='#L1166'>1166</a> +<a name='L1167'></a><a href='#L1167'>1167</a> +<a name='L1168'></a><a href='#L1168'>1168</a> +<a name='L1169'></a><a href='#L1169'>1169</a> +<a name='L1170'></a><a href='#L1170'>1170</a> +<a name='L1171'></a><a href='#L1171'>1171</a> +<a name='L1172'></a><a href='#L1172'>1172</a> +<a name='L1173'></a><a href='#L1173'>1173</a> +<a name='L1174'></a><a href='#L1174'>1174</a> +<a name='L1175'></a><a href='#L1175'>1175</a> +<a name='L1176'></a><a href='#L1176'>1176</a> +<a name='L1177'></a><a href='#L1177'>1177</a> +<a name='L1178'></a><a href='#L1178'>1178</a> +<a name='L1179'></a><a href='#L1179'>1179</a> +<a name='L1180'></a><a href='#L1180'>1180</a> +<a name='L1181'></a><a href='#L1181'>1181</a> +<a name='L1182'></a><a href='#L1182'>1182</a> +<a name='L1183'></a><a href='#L1183'>1183</a> +<a name='L1184'></a><a href='#L1184'>1184</a> +<a name='L1185'></a><a href='#L1185'>1185</a> +<a name='L1186'></a><a href='#L1186'>1186</a> +<a name='L1187'></a><a href='#L1187'>1187</a> +<a name='L1188'></a><a href='#L1188'>1188</a> +<a name='L1189'></a><a href='#L1189'>1189</a> +<a name='L1190'></a><a href='#L1190'>1190</a> +<a name='L1191'></a><a href='#L1191'>1191</a> +<a name='L1192'></a><a href='#L1192'>1192</a> +<a name='L1193'></a><a href='#L1193'>1193</a> +<a name='L1194'></a><a href='#L1194'>1194</a> +<a name='L1195'></a><a href='#L1195'>1195</a> +<a name='L1196'></a><a href='#L1196'>1196</a> +<a name='L1197'></a><a href='#L1197'>1197</a> +<a name='L1198'></a><a href='#L1198'>1198</a> +<a name='L1199'></a><a href='#L1199'>1199</a> +<a name='L1200'></a><a href='#L1200'>1200</a> +<a name='L1201'></a><a href='#L1201'>1201</a> +<a name='L1202'></a><a href='#L1202'>1202</a> +<a name='L1203'></a><a href='#L1203'>1203</a> +<a name='L1204'></a><a href='#L1204'>1204</a> +<a name='L1205'></a><a href='#L1205'>1205</a> +<a name='L1206'></a><a href='#L1206'>1206</a> +<a name='L1207'></a><a href='#L1207'>1207</a> +<a name='L1208'></a><a href='#L1208'>1208</a> +<a name='L1209'></a><a href='#L1209'>1209</a> +<a name='L1210'></a><a href='#L1210'>1210</a> +<a name='L1211'></a><a href='#L1211'>1211</a> +<a name='L1212'></a><a href='#L1212'>1212</a> +<a name='L1213'></a><a href='#L1213'>1213</a> +<a name='L1214'></a><a href='#L1214'>1214</a> +<a name='L1215'></a><a href='#L1215'>1215</a> +<a name='L1216'></a><a href='#L1216'>1216</a> +<a name='L1217'></a><a href='#L1217'>1217</a> +<a name='L1218'></a><a href='#L1218'>1218</a> +<a name='L1219'></a><a href='#L1219'>1219</a> +<a name='L1220'></a><a href='#L1220'>1220</a> +<a name='L1221'></a><a href='#L1221'>1221</a> +<a name='L1222'></a><a href='#L1222'>1222</a> +<a name='L1223'></a><a href='#L1223'>1223</a> +<a name='L1224'></a><a href='#L1224'>1224</a> +<a name='L1225'></a><a href='#L1225'>1225</a> +<a name='L1226'></a><a href='#L1226'>1226</a> +<a name='L1227'></a><a href='#L1227'>1227</a> +<a name='L1228'></a><a href='#L1228'>1228</a> +<a name='L1229'></a><a href='#L1229'>1229</a> +<a name='L1230'></a><a href='#L1230'>1230</a> +<a name='L1231'></a><a href='#L1231'>1231</a> +<a name='L1232'></a><a href='#L1232'>1232</a> +<a name='L1233'></a><a href='#L1233'>1233</a> +<a name='L1234'></a><a href='#L1234'>1234</a> +<a name='L1235'></a><a href='#L1235'>1235</a> +<a name='L1236'></a><a href='#L1236'>1236</a> +<a name='L1237'></a><a href='#L1237'>1237</a> +<a name='L1238'></a><a href='#L1238'>1238</a> +<a name='L1239'></a><a href='#L1239'>1239</a> +<a name='L1240'></a><a href='#L1240'>1240</a> +<a name='L1241'></a><a href='#L1241'>1241</a> +<a name='L1242'></a><a href='#L1242'>1242</a> +<a name='L1243'></a><a href='#L1243'>1243</a> +<a name='L1244'></a><a href='#L1244'>1244</a> +<a name='L1245'></a><a href='#L1245'>1245</a> +<a name='L1246'></a><a href='#L1246'>1246</a> +<a name='L1247'></a><a href='#L1247'>1247</a> +<a name='L1248'></a><a href='#L1248'>1248</a> +<a name='L1249'></a><a href='#L1249'>1249</a> +<a name='L1250'></a><a href='#L1250'>1250</a> +<a name='L1251'></a><a href='#L1251'>1251</a> +<a name='L1252'></a><a href='#L1252'>1252</a> +<a name='L1253'></a><a href='#L1253'>1253</a> +<a name='L1254'></a><a href='#L1254'>1254</a> +<a name='L1255'></a><a href='#L1255'>1255</a> +<a name='L1256'></a><a href='#L1256'>1256</a> +<a name='L1257'></a><a href='#L1257'>1257</a> +<a name='L1258'></a><a href='#L1258'>1258</a> +<a name='L1259'></a><a href='#L1259'>1259</a> +<a name='L1260'></a><a href='#L1260'>1260</a> +<a name='L1261'></a><a href='#L1261'>1261</a> +<a name='L1262'></a><a href='#L1262'>1262</a> +<a name='L1263'></a><a href='#L1263'>1263</a> +<a name='L1264'></a><a href='#L1264'>1264</a> +<a name='L1265'></a><a href='#L1265'>1265</a> +<a name='L1266'></a><a href='#L1266'>1266</a> +<a name='L1267'></a><a href='#L1267'>1267</a> +<a name='L1268'></a><a href='#L1268'>1268</a> +<a name='L1269'></a><a href='#L1269'>1269</a> +<a name='L1270'></a><a href='#L1270'>1270</a> +<a name='L1271'></a><a href='#L1271'>1271</a> +<a name='L1272'></a><a href='#L1272'>1272</a> +<a name='L1273'></a><a href='#L1273'>1273</a> +<a name='L1274'></a><a href='#L1274'>1274</a> +<a name='L1275'></a><a href='#L1275'>1275</a> +<a name='L1276'></a><a href='#L1276'>1276</a> +<a name='L1277'></a><a href='#L1277'>1277</a> +<a name='L1278'></a><a href='#L1278'>1278</a> +<a name='L1279'></a><a href='#L1279'>1279</a> +<a name='L1280'></a><a href='#L1280'>1280</a> +<a name='L1281'></a><a href='#L1281'>1281</a> +<a name='L1282'></a><a href='#L1282'>1282</a> +<a name='L1283'></a><a href='#L1283'>1283</a> +<a name='L1284'></a><a href='#L1284'>1284</a> +<a name='L1285'></a><a href='#L1285'>1285</a> +<a name='L1286'></a><a href='#L1286'>1286</a> +<a name='L1287'></a><a href='#L1287'>1287</a> +<a name='L1288'></a><a href='#L1288'>1288</a> +<a name='L1289'></a><a href='#L1289'>1289</a> +<a name='L1290'></a><a href='#L1290'>1290</a> +<a name='L1291'></a><a href='#L1291'>1291</a> +<a name='L1292'></a><a href='#L1292'>1292</a> +<a name='L1293'></a><a href='#L1293'>1293</a> +<a name='L1294'></a><a href='#L1294'>1294</a> +<a name='L1295'></a><a href='#L1295'>1295</a> +<a name='L1296'></a><a href='#L1296'>1296</a> +<a name='L1297'></a><a href='#L1297'>1297</a> +<a name='L1298'></a><a href='#L1298'>1298</a> +<a name='L1299'></a><a href='#L1299'>1299</a> +<a name='L1300'></a><a href='#L1300'>1300</a> +<a name='L1301'></a><a href='#L1301'>1301</a> +<a name='L1302'></a><a href='#L1302'>1302</a> +<a name='L1303'></a><a href='#L1303'>1303</a> +<a name='L1304'></a><a href='#L1304'>1304</a> +<a name='L1305'></a><a href='#L1305'>1305</a> +<a name='L1306'></a><a href='#L1306'>1306</a> +<a name='L1307'></a><a href='#L1307'>1307</a> +<a name='L1308'></a><a href='#L1308'>1308</a> +<a name='L1309'></a><a href='#L1309'>1309</a> +<a name='L1310'></a><a href='#L1310'>1310</a> +<a name='L1311'></a><a href='#L1311'>1311</a> +<a name='L1312'></a><a href='#L1312'>1312</a> +<a name='L1313'></a><a href='#L1313'>1313</a> +<a name='L1314'></a><a href='#L1314'>1314</a> +<a name='L1315'></a><a href='#L1315'>1315</a> +<a name='L1316'></a><a href='#L1316'>1316</a> +<a name='L1317'></a><a href='#L1317'>1317</a> +<a name='L1318'></a><a href='#L1318'>1318</a> +<a name='L1319'></a><a href='#L1319'>1319</a> +<a name='L1320'></a><a href='#L1320'>1320</a> +<a name='L1321'></a><a href='#L1321'>1321</a> +<a name='L1322'></a><a href='#L1322'>1322</a> +<a name='L1323'></a><a href='#L1323'>1323</a> +<a name='L1324'></a><a href='#L1324'>1324</a> +<a name='L1325'></a><a href='#L1325'>1325</a> +<a name='L1326'></a><a href='#L1326'>1326</a> +<a name='L1327'></a><a href='#L1327'>1327</a> +<a name='L1328'></a><a href='#L1328'>1328</a> +<a name='L1329'></a><a href='#L1329'>1329</a> +<a name='L1330'></a><a href='#L1330'>1330</a> +<a name='L1331'></a><a href='#L1331'>1331</a> +<a name='L1332'></a><a href='#L1332'>1332</a> +<a name='L1333'></a><a href='#L1333'>1333</a> +<a name='L1334'></a><a href='#L1334'>1334</a> +<a name='L1335'></a><a href='#L1335'>1335</a> +<a name='L1336'></a><a href='#L1336'>1336</a> +<a name='L1337'></a><a href='#L1337'>1337</a> +<a name='L1338'></a><a href='#L1338'>1338</a> +<a name='L1339'></a><a href='#L1339'>1339</a> +<a name='L1340'></a><a href='#L1340'>1340</a> +<a name='L1341'></a><a href='#L1341'>1341</a> +<a name='L1342'></a><a href='#L1342'>1342</a> +<a name='L1343'></a><a href='#L1343'>1343</a> +<a name='L1344'></a><a href='#L1344'>1344</a> +<a name='L1345'></a><a href='#L1345'>1345</a> +<a name='L1346'></a><a href='#L1346'>1346</a> +<a name='L1347'></a><a href='#L1347'>1347</a> +<a name='L1348'></a><a href='#L1348'>1348</a> +<a name='L1349'></a><a href='#L1349'>1349</a> +<a name='L1350'></a><a href='#L1350'>1350</a> +<a name='L1351'></a><a href='#L1351'>1351</a> +<a name='L1352'></a><a href='#L1352'>1352</a> +<a name='L1353'></a><a href='#L1353'>1353</a> +<a name='L1354'></a><a href='#L1354'>1354</a> +<a name='L1355'></a><a href='#L1355'>1355</a> +<a name='L1356'></a><a href='#L1356'>1356</a> +<a name='L1357'></a><a href='#L1357'>1357</a> +<a name='L1358'></a><a href='#L1358'>1358</a> +<a name='L1359'></a><a href='#L1359'>1359</a> +<a name='L1360'></a><a href='#L1360'>1360</a> +<a name='L1361'></a><a href='#L1361'>1361</a> +<a name='L1362'></a><a href='#L1362'>1362</a> +<a name='L1363'></a><a href='#L1363'>1363</a> +<a name='L1364'></a><a href='#L1364'>1364</a> +<a name='L1365'></a><a href='#L1365'>1365</a> +<a name='L1366'></a><a href='#L1366'>1366</a> +<a name='L1367'></a><a href='#L1367'>1367</a> +<a name='L1368'></a><a href='#L1368'>1368</a> +<a name='L1369'></a><a href='#L1369'>1369</a> +<a name='L1370'></a><a href='#L1370'>1370</a> +<a name='L1371'></a><a href='#L1371'>1371</a> +<a name='L1372'></a><a href='#L1372'>1372</a> +<a name='L1373'></a><a href='#L1373'>1373</a> +<a name='L1374'></a><a href='#L1374'>1374</a> +<a name='L1375'></a><a href='#L1375'>1375</a> +<a name='L1376'></a><a href='#L1376'>1376</a> +<a name='L1377'></a><a href='#L1377'>1377</a> +<a name='L1378'></a><a href='#L1378'>1378</a> +<a name='L1379'></a><a href='#L1379'>1379</a> +<a name='L1380'></a><a href='#L1380'>1380</a> +<a name='L1381'></a><a href='#L1381'>1381</a> +<a name='L1382'></a><a href='#L1382'>1382</a> +<a name='L1383'></a><a href='#L1383'>1383</a> +<a name='L1384'></a><a href='#L1384'>1384</a> +<a name='L1385'></a><a href='#L1385'>1385</a> +<a name='L1386'></a><a href='#L1386'>1386</a> +<a name='L1387'></a><a href='#L1387'>1387</a> +<a name='L1388'></a><a href='#L1388'>1388</a> +<a name='L1389'></a><a href='#L1389'>1389</a> +<a name='L1390'></a><a href='#L1390'>1390</a> +<a name='L1391'></a><a href='#L1391'>1391</a> +<a name='L1392'></a><a href='#L1392'>1392</a> +<a name='L1393'></a><a href='#L1393'>1393</a> +<a name='L1394'></a><a href='#L1394'>1394</a> +<a name='L1395'></a><a href='#L1395'>1395</a> +<a name='L1396'></a><a href='#L1396'>1396</a> +<a name='L1397'></a><a href='#L1397'>1397</a> +<a name='L1398'></a><a href='#L1398'>1398</a> +<a name='L1399'></a><a href='#L1399'>1399</a> +<a name='L1400'></a><a href='#L1400'>1400</a> +<a name='L1401'></a><a href='#L1401'>1401</a> +<a name='L1402'></a><a href='#L1402'>1402</a> +<a name='L1403'></a><a href='#L1403'>1403</a> +<a name='L1404'></a><a href='#L1404'>1404</a> +<a name='L1405'></a><a href='#L1405'>1405</a> +<a name='L1406'></a><a href='#L1406'>1406</a> +<a name='L1407'></a><a href='#L1407'>1407</a> +<a name='L1408'></a><a href='#L1408'>1408</a> +<a name='L1409'></a><a href='#L1409'>1409</a> +<a name='L1410'></a><a href='#L1410'>1410</a> +<a name='L1411'></a><a href='#L1411'>1411</a> +<a name='L1412'></a><a href='#L1412'>1412</a> +<a name='L1413'></a><a href='#L1413'>1413</a> +<a name='L1414'></a><a href='#L1414'>1414</a> +<a name='L1415'></a><a href='#L1415'>1415</a> +<a name='L1416'></a><a href='#L1416'>1416</a> +<a name='L1417'></a><a href='#L1417'>1417</a> +<a name='L1418'></a><a href='#L1418'>1418</a> +<a name='L1419'></a><a href='#L1419'>1419</a> +<a name='L1420'></a><a href='#L1420'>1420</a> +<a name='L1421'></a><a href='#L1421'>1421</a> +<a name='L1422'></a><a href='#L1422'>1422</a> +<a name='L1423'></a><a href='#L1423'>1423</a> +<a name='L1424'></a><a href='#L1424'>1424</a> +<a name='L1425'></a><a href='#L1425'>1425</a> +<a name='L1426'></a><a href='#L1426'>1426</a> +<a name='L1427'></a><a href='#L1427'>1427</a> +<a name='L1428'></a><a href='#L1428'>1428</a> +<a name='L1429'></a><a href='#L1429'>1429</a> +<a name='L1430'></a><a href='#L1430'>1430</a> +<a name='L1431'></a><a href='#L1431'>1431</a> +<a name='L1432'></a><a href='#L1432'>1432</a> +<a name='L1433'></a><a href='#L1433'>1433</a> +<a name='L1434'></a><a href='#L1434'>1434</a> +<a name='L1435'></a><a href='#L1435'>1435</a> +<a name='L1436'></a><a href='#L1436'>1436</a> +<a name='L1437'></a><a href='#L1437'>1437</a> +<a name='L1438'></a><a href='#L1438'>1438</a> +<a name='L1439'></a><a href='#L1439'>1439</a> +<a name='L1440'></a><a href='#L1440'>1440</a> +<a name='L1441'></a><a href='#L1441'>1441</a> +<a name='L1442'></a><a href='#L1442'>1442</a> +<a name='L1443'></a><a href='#L1443'>1443</a> +<a name='L1444'></a><a href='#L1444'>1444</a> +<a name='L1445'></a><a href='#L1445'>1445</a> +<a name='L1446'></a><a href='#L1446'>1446</a> +<a name='L1447'></a><a href='#L1447'>1447</a> +<a name='L1448'></a><a href='#L1448'>1448</a> +<a name='L1449'></a><a href='#L1449'>1449</a> +<a name='L1450'></a><a href='#L1450'>1450</a> +<a name='L1451'></a><a href='#L1451'>1451</a> +<a name='L1452'></a><a href='#L1452'>1452</a> +<a name='L1453'></a><a href='#L1453'>1453</a> +<a name='L1454'></a><a href='#L1454'>1454</a> +<a name='L1455'></a><a href='#L1455'>1455</a> +<a name='L1456'></a><a href='#L1456'>1456</a> +<a name='L1457'></a><a href='#L1457'>1457</a> +<a name='L1458'></a><a href='#L1458'>1458</a> +<a name='L1459'></a><a href='#L1459'>1459</a> +<a name='L1460'></a><a href='#L1460'>1460</a> +<a name='L1461'></a><a href='#L1461'>1461</a> +<a name='L1462'></a><a href='#L1462'>1462</a> +<a name='L1463'></a><a href='#L1463'>1463</a> +<a name='L1464'></a><a href='#L1464'>1464</a> +<a name='L1465'></a><a href='#L1465'>1465</a> +<a name='L1466'></a><a href='#L1466'>1466</a> +<a name='L1467'></a><a href='#L1467'>1467</a> +<a name='L1468'></a><a href='#L1468'>1468</a> +<a name='L1469'></a><a href='#L1469'>1469</a> +<a name='L1470'></a><a href='#L1470'>1470</a> +<a name='L1471'></a><a href='#L1471'>1471</a> +<a name='L1472'></a><a href='#L1472'>1472</a> +<a name='L1473'></a><a href='#L1473'>1473</a> +<a name='L1474'></a><a href='#L1474'>1474</a> +<a name='L1475'></a><a href='#L1475'>1475</a> +<a name='L1476'></a><a href='#L1476'>1476</a> +<a name='L1477'></a><a href='#L1477'>1477</a> +<a name='L1478'></a><a href='#L1478'>1478</a> +<a name='L1479'></a><a href='#L1479'>1479</a> +<a name='L1480'></a><a href='#L1480'>1480</a> +<a name='L1481'></a><a href='#L1481'>1481</a> +<a name='L1482'></a><a href='#L1482'>1482</a> +<a name='L1483'></a><a href='#L1483'>1483</a> +<a name='L1484'></a><a href='#L1484'>1484</a> +<a name='L1485'></a><a href='#L1485'>1485</a> +<a name='L1486'></a><a href='#L1486'>1486</a> +<a name='L1487'></a><a href='#L1487'>1487</a> +<a name='L1488'></a><a href='#L1488'>1488</a> +<a name='L1489'></a><a href='#L1489'>1489</a> +<a name='L1490'></a><a href='#L1490'>1490</a> +<a name='L1491'></a><a href='#L1491'>1491</a> +<a name='L1492'></a><a href='#L1492'>1492</a> +<a name='L1493'></a><a href='#L1493'>1493</a> +<a name='L1494'></a><a href='#L1494'>1494</a> +<a name='L1495'></a><a href='#L1495'>1495</a> +<a name='L1496'></a><a href='#L1496'>1496</a> +<a name='L1497'></a><a href='#L1497'>1497</a> +<a name='L1498'></a><a href='#L1498'>1498</a> +<a name='L1499'></a><a href='#L1499'>1499</a> +<a name='L1500'></a><a href='#L1500'>1500</a> +<a name='L1501'></a><a href='#L1501'>1501</a> +<a name='L1502'></a><a href='#L1502'>1502</a> +<a name='L1503'></a><a href='#L1503'>1503</a> +<a name='L1504'></a><a href='#L1504'>1504</a> +<a name='L1505'></a><a href='#L1505'>1505</a> +<a name='L1506'></a><a href='#L1506'>1506</a> +<a name='L1507'></a><a href='#L1507'>1507</a> +<a name='L1508'></a><a href='#L1508'>1508</a> +<a name='L1509'></a><a href='#L1509'>1509</a> +<a name='L1510'></a><a href='#L1510'>1510</a> +<a name='L1511'></a><a href='#L1511'>1511</a> +<a name='L1512'></a><a href='#L1512'>1512</a> +<a name='L1513'></a><a href='#L1513'>1513</a> +<a name='L1514'></a><a href='#L1514'>1514</a> +<a name='L1515'></a><a href='#L1515'>1515</a> +<a name='L1516'></a><a href='#L1516'>1516</a> +<a name='L1517'></a><a href='#L1517'>1517</a> +<a name='L1518'></a><a href='#L1518'>1518</a> +<a name='L1519'></a><a href='#L1519'>1519</a> +<a name='L1520'></a><a href='#L1520'>1520</a> +<a name='L1521'></a><a href='#L1521'>1521</a> +<a name='L1522'></a><a href='#L1522'>1522</a> +<a name='L1523'></a><a href='#L1523'>1523</a> +<a name='L1524'></a><a href='#L1524'>1524</a> +<a name='L1525'></a><a href='#L1525'>1525</a> +<a name='L1526'></a><a href='#L1526'>1526</a> +<a name='L1527'></a><a href='#L1527'>1527</a> +<a name='L1528'></a><a href='#L1528'>1528</a> +<a name='L1529'></a><a href='#L1529'>1529</a> +<a name='L1530'></a><a href='#L1530'>1530</a> +<a name='L1531'></a><a href='#L1531'>1531</a> +<a name='L1532'></a><a href='#L1532'>1532</a> +<a name='L1533'></a><a href='#L1533'>1533</a> +<a name='L1534'></a><a href='#L1534'>1534</a> +<a name='L1535'></a><a href='#L1535'>1535</a> +<a name='L1536'></a><a href='#L1536'>1536</a> +<a name='L1537'></a><a href='#L1537'>1537</a> +<a name='L1538'></a><a href='#L1538'>1538</a> +<a name='L1539'></a><a href='#L1539'>1539</a> +<a name='L1540'></a><a href='#L1540'>1540</a> +<a name='L1541'></a><a href='#L1541'>1541</a> +<a name='L1542'></a><a href='#L1542'>1542</a> +<a name='L1543'></a><a href='#L1543'>1543</a> +<a name='L1544'></a><a href='#L1544'>1544</a> +<a name='L1545'></a><a href='#L1545'>1545</a> +<a name='L1546'></a><a href='#L1546'>1546</a> +<a name='L1547'></a><a href='#L1547'>1547</a> +<a name='L1548'></a><a href='#L1548'>1548</a> +<a name='L1549'></a><a href='#L1549'>1549</a> +<a name='L1550'></a><a href='#L1550'>1550</a> +<a name='L1551'></a><a href='#L1551'>1551</a> +<a name='L1552'></a><a href='#L1552'>1552</a> +<a name='L1553'></a><a href='#L1553'>1553</a> +<a name='L1554'></a><a href='#L1554'>1554</a> +<a name='L1555'></a><a href='#L1555'>1555</a> +<a name='L1556'></a><a href='#L1556'>1556</a> +<a name='L1557'></a><a href='#L1557'>1557</a> +<a name='L1558'></a><a href='#L1558'>1558</a> +<a name='L1559'></a><a href='#L1559'>1559</a> +<a name='L1560'></a><a href='#L1560'>1560</a> +<a name='L1561'></a><a href='#L1561'>1561</a> +<a name='L1562'></a><a href='#L1562'>1562</a> +<a name='L1563'></a><a href='#L1563'>1563</a> +<a name='L1564'></a><a href='#L1564'>1564</a> +<a name='L1565'></a><a href='#L1565'>1565</a> +<a name='L1566'></a><a href='#L1566'>1566</a> +<a name='L1567'></a><a href='#L1567'>1567</a> +<a name='L1568'></a><a href='#L1568'>1568</a> +<a name='L1569'></a><a href='#L1569'>1569</a> +<a name='L1570'></a><a href='#L1570'>1570</a> +<a name='L1571'></a><a href='#L1571'>1571</a> +<a name='L1572'></a><a href='#L1572'>1572</a> +<a name='L1573'></a><a href='#L1573'>1573</a> +<a name='L1574'></a><a href='#L1574'>1574</a> +<a name='L1575'></a><a href='#L1575'>1575</a> +<a name='L1576'></a><a href='#L1576'>1576</a> +<a name='L1577'></a><a href='#L1577'>1577</a> +<a name='L1578'></a><a href='#L1578'>1578</a> +<a name='L1579'></a><a href='#L1579'>1579</a> +<a name='L1580'></a><a href='#L1580'>1580</a> +<a name='L1581'></a><a href='#L1581'>1581</a> +<a name='L1582'></a><a href='#L1582'>1582</a> +<a name='L1583'></a><a href='#L1583'>1583</a> +<a name='L1584'></a><a href='#L1584'>1584</a> +<a name='L1585'></a><a href='#L1585'>1585</a> +<a name='L1586'></a><a href='#L1586'>1586</a> +<a name='L1587'></a><a href='#L1587'>1587</a> +<a name='L1588'></a><a href='#L1588'>1588</a> +<a name='L1589'></a><a href='#L1589'>1589</a> +<a name='L1590'></a><a href='#L1590'>1590</a> +<a name='L1591'></a><a href='#L1591'>1591</a> +<a name='L1592'></a><a href='#L1592'>1592</a> +<a name='L1593'></a><a href='#L1593'>1593</a> +<a name='L1594'></a><a href='#L1594'>1594</a> +<a name='L1595'></a><a href='#L1595'>1595</a> +<a name='L1596'></a><a href='#L1596'>1596</a> +<a name='L1597'></a><a href='#L1597'>1597</a> +<a name='L1598'></a><a href='#L1598'>1598</a> +<a name='L1599'></a><a href='#L1599'>1599</a> +<a name='L1600'></a><a href='#L1600'>1600</a> +<a name='L1601'></a><a href='#L1601'>1601</a> +<a name='L1602'></a><a href='#L1602'>1602</a> +<a name='L1603'></a><a href='#L1603'>1603</a> +<a name='L1604'></a><a href='#L1604'>1604</a> +<a name='L1605'></a><a href='#L1605'>1605</a> +<a name='L1606'></a><a href='#L1606'>1606</a> +<a name='L1607'></a><a href='#L1607'>1607</a> +<a name='L1608'></a><a href='#L1608'>1608</a> +<a name='L1609'></a><a href='#L1609'>1609</a> +<a name='L1610'></a><a href='#L1610'>1610</a> +<a name='L1611'></a><a href='#L1611'>1611</a> +<a name='L1612'></a><a href='#L1612'>1612</a> +<a name='L1613'></a><a href='#L1613'>1613</a> +<a name='L1614'></a><a href='#L1614'>1614</a> +<a name='L1615'></a><a href='#L1615'>1615</a> +<a name='L1616'></a><a href='#L1616'>1616</a> +<a name='L1617'></a><a href='#L1617'>1617</a> +<a name='L1618'></a><a href='#L1618'>1618</a> +<a name='L1619'></a><a href='#L1619'>1619</a> +<a name='L1620'></a><a href='#L1620'>1620</a> +<a name='L1621'></a><a href='#L1621'>1621</a> +<a name='L1622'></a><a href='#L1622'>1622</a> +<a name='L1623'></a><a href='#L1623'>1623</a> +<a name='L1624'></a><a href='#L1624'>1624</a> +<a name='L1625'></a><a href='#L1625'>1625</a> +<a name='L1626'></a><a href='#L1626'>1626</a> +<a name='L1627'></a><a href='#L1627'>1627</a> +<a name='L1628'></a><a href='#L1628'>1628</a> +<a name='L1629'></a><a href='#L1629'>1629</a> +<a name='L1630'></a><a href='#L1630'>1630</a> +<a name='L1631'></a><a href='#L1631'>1631</a> +<a name='L1632'></a><a href='#L1632'>1632</a> +<a name='L1633'></a><a href='#L1633'>1633</a> +<a name='L1634'></a><a href='#L1634'>1634</a> +<a name='L1635'></a><a href='#L1635'>1635</a> +<a name='L1636'></a><a href='#L1636'>1636</a> +<a name='L1637'></a><a href='#L1637'>1637</a> +<a name='L1638'></a><a href='#L1638'>1638</a> +<a name='L1639'></a><a href='#L1639'>1639</a> +<a name='L1640'></a><a href='#L1640'>1640</a> +<a name='L1641'></a><a href='#L1641'>1641</a> +<a name='L1642'></a><a href='#L1642'>1642</a> +<a name='L1643'></a><a href='#L1643'>1643</a> +<a name='L1644'></a><a href='#L1644'>1644</a> +<a name='L1645'></a><a href='#L1645'>1645</a> +<a name='L1646'></a><a href='#L1646'>1646</a> +<a name='L1647'></a><a href='#L1647'>1647</a> +<a name='L1648'></a><a href='#L1648'>1648</a> +<a name='L1649'></a><a href='#L1649'>1649</a> +<a name='L1650'></a><a href='#L1650'>1650</a> +<a name='L1651'></a><a href='#L1651'>1651</a> +<a name='L1652'></a><a href='#L1652'>1652</a> +<a name='L1653'></a><a href='#L1653'>1653</a> +<a name='L1654'></a><a href='#L1654'>1654</a> +<a name='L1655'></a><a href='#L1655'>1655</a> +<a name='L1656'></a><a href='#L1656'>1656</a> +<a name='L1657'></a><a href='#L1657'>1657</a> +<a name='L1658'></a><a href='#L1658'>1658</a> +<a name='L1659'></a><a href='#L1659'>1659</a> +<a name='L1660'></a><a href='#L1660'>1660</a> +<a name='L1661'></a><a href='#L1661'>1661</a> +<a name='L1662'></a><a href='#L1662'>1662</a> +<a name='L1663'></a><a href='#L1663'>1663</a> +<a name='L1664'></a><a href='#L1664'>1664</a> +<a name='L1665'></a><a href='#L1665'>1665</a> +<a name='L1666'></a><a href='#L1666'>1666</a> +<a name='L1667'></a><a href='#L1667'>1667</a> +<a name='L1668'></a><a href='#L1668'>1668</a> +<a name='L1669'></a><a href='#L1669'>1669</a> +<a name='L1670'></a><a href='#L1670'>1670</a> +<a name='L1671'></a><a href='#L1671'>1671</a> +<a name='L1672'></a><a href='#L1672'>1672</a> +<a name='L1673'></a><a href='#L1673'>1673</a> +<a name='L1674'></a><a href='#L1674'>1674</a> +<a name='L1675'></a><a href='#L1675'>1675</a> +<a name='L1676'></a><a href='#L1676'>1676</a> +<a name='L1677'></a><a href='#L1677'>1677</a> +<a name='L1678'></a><a href='#L1678'>1678</a> +<a name='L1679'></a><a href='#L1679'>1679</a> +<a name='L1680'></a><a href='#L1680'>1680</a> +<a name='L1681'></a><a href='#L1681'>1681</a> +<a name='L1682'></a><a href='#L1682'>1682</a> +<a name='L1683'></a><a href='#L1683'>1683</a> +<a name='L1684'></a><a href='#L1684'>1684</a> +<a name='L1685'></a><a href='#L1685'>1685</a> +<a name='L1686'></a><a href='#L1686'>1686</a> +<a name='L1687'></a><a href='#L1687'>1687</a> +<a name='L1688'></a><a href='#L1688'>1688</a> +<a name='L1689'></a><a href='#L1689'>1689</a> +<a name='L1690'></a><a href='#L1690'>1690</a> +<a name='L1691'></a><a href='#L1691'>1691</a> +<a name='L1692'></a><a href='#L1692'>1692</a> +<a name='L1693'></a><a href='#L1693'>1693</a> +<a name='L1694'></a><a href='#L1694'>1694</a> +<a name='L1695'></a><a href='#L1695'>1695</a> +<a name='L1696'></a><a href='#L1696'>1696</a> +<a name='L1697'></a><a href='#L1697'>1697</a> +<a name='L1698'></a><a href='#L1698'>1698</a> +<a name='L1699'></a><a href='#L1699'>1699</a> +<a name='L1700'></a><a href='#L1700'>1700</a> +<a name='L1701'></a><a href='#L1701'>1701</a> +<a name='L1702'></a><a href='#L1702'>1702</a> +<a name='L1703'></a><a href='#L1703'>1703</a> +<a name='L1704'></a><a href='#L1704'>1704</a> +<a name='L1705'></a><a href='#L1705'>1705</a> +<a name='L1706'></a><a href='#L1706'>1706</a> +<a name='L1707'></a><a href='#L1707'>1707</a> +<a name='L1708'></a><a href='#L1708'>1708</a> +<a name='L1709'></a><a href='#L1709'>1709</a> +<a name='L1710'></a><a href='#L1710'>1710</a> +<a name='L1711'></a><a href='#L1711'>1711</a> +<a name='L1712'></a><a href='#L1712'>1712</a> +<a name='L1713'></a><a href='#L1713'>1713</a> +<a name='L1714'></a><a href='#L1714'>1714</a> +<a name='L1715'></a><a href='#L1715'>1715</a> +<a name='L1716'></a><a href='#L1716'>1716</a> +<a name='L1717'></a><a href='#L1717'>1717</a> +<a name='L1718'></a><a href='#L1718'>1718</a> +<a name='L1719'></a><a href='#L1719'>1719</a> +<a name='L1720'></a><a href='#L1720'>1720</a> +<a name='L1721'></a><a href='#L1721'>1721</a> +<a name='L1722'></a><a href='#L1722'>1722</a> +<a name='L1723'></a><a href='#L1723'>1723</a> +<a name='L1724'></a><a href='#L1724'>1724</a> +<a name='L1725'></a><a href='#L1725'>1725</a> +<a name='L1726'></a><a href='#L1726'>1726</a> +<a name='L1727'></a><a href='#L1727'>1727</a> +<a name='L1728'></a><a href='#L1728'>1728</a> +<a name='L1729'></a><a href='#L1729'>1729</a> +<a name='L1730'></a><a href='#L1730'>1730</a> +<a name='L1731'></a><a href='#L1731'>1731</a> +<a name='L1732'></a><a href='#L1732'>1732</a> +<a name='L1733'></a><a href='#L1733'>1733</a> +<a name='L1734'></a><a href='#L1734'>1734</a> +<a name='L1735'></a><a href='#L1735'>1735</a> +<a name='L1736'></a><a href='#L1736'>1736</a> +<a name='L1737'></a><a href='#L1737'>1737</a> +<a name='L1738'></a><a href='#L1738'>1738</a> +<a name='L1739'></a><a href='#L1739'>1739</a> +<a name='L1740'></a><a href='#L1740'>1740</a> +<a name='L1741'></a><a href='#L1741'>1741</a> +<a name='L1742'></a><a href='#L1742'>1742</a> +<a name='L1743'></a><a href='#L1743'>1743</a> +<a name='L1744'></a><a href='#L1744'>1744</a> +<a name='L1745'></a><a href='#L1745'>1745</a> +<a name='L1746'></a><a href='#L1746'>1746</a> +<a name='L1747'></a><a href='#L1747'>1747</a> +<a name='L1748'></a><a href='#L1748'>1748</a> +<a name='L1749'></a><a href='#L1749'>1749</a> +<a name='L1750'></a><a href='#L1750'>1750</a> +<a name='L1751'></a><a href='#L1751'>1751</a> +<a name='L1752'></a><a href='#L1752'>1752</a> +<a name='L1753'></a><a href='#L1753'>1753</a> +<a name='L1754'></a><a href='#L1754'>1754</a> +<a name='L1755'></a><a href='#L1755'>1755</a> +<a name='L1756'></a><a href='#L1756'>1756</a> +<a name='L1757'></a><a href='#L1757'>1757</a> +<a name='L1758'></a><a href='#L1758'>1758</a> +<a name='L1759'></a><a href='#L1759'>1759</a> +<a name='L1760'></a><a href='#L1760'>1760</a> +<a name='L1761'></a><a href='#L1761'>1761</a> +<a name='L1762'></a><a href='#L1762'>1762</a> +<a name='L1763'></a><a href='#L1763'>1763</a> +<a name='L1764'></a><a href='#L1764'>1764</a> +<a name='L1765'></a><a href='#L1765'>1765</a> +<a name='L1766'></a><a href='#L1766'>1766</a> +<a name='L1767'></a><a href='#L1767'>1767</a> +<a name='L1768'></a><a href='#L1768'>1768</a> +<a name='L1769'></a><a href='#L1769'>1769</a> +<a name='L1770'></a><a href='#L1770'>1770</a> +<a name='L1771'></a><a href='#L1771'>1771</a> +<a name='L1772'></a><a href='#L1772'>1772</a> +<a name='L1773'></a><a href='#L1773'>1773</a> +<a name='L1774'></a><a href='#L1774'>1774</a> +<a name='L1775'></a><a href='#L1775'>1775</a> +<a name='L1776'></a><a href='#L1776'>1776</a> +<a name='L1777'></a><a href='#L1777'>1777</a> +<a name='L1778'></a><a href='#L1778'>1778</a> +<a name='L1779'></a><a href='#L1779'>1779</a> +<a name='L1780'></a><a href='#L1780'>1780</a> +<a name='L1781'></a><a href='#L1781'>1781</a> +<a name='L1782'></a><a href='#L1782'>1782</a> +<a name='L1783'></a><a href='#L1783'>1783</a> +<a name='L1784'></a><a href='#L1784'>1784</a> +<a name='L1785'></a><a href='#L1785'>1785</a> +<a name='L1786'></a><a href='#L1786'>1786</a> +<a name='L1787'></a><a href='#L1787'>1787</a> +<a name='L1788'></a><a href='#L1788'>1788</a> +<a name='L1789'></a><a href='#L1789'>1789</a> +<a name='L1790'></a><a href='#L1790'>1790</a> +<a name='L1791'></a><a href='#L1791'>1791</a> +<a name='L1792'></a><a href='#L1792'>1792</a> +<a name='L1793'></a><a href='#L1793'>1793</a> +<a name='L1794'></a><a href='#L1794'>1794</a> +<a name='L1795'></a><a href='#L1795'>1795</a> +<a name='L1796'></a><a href='#L1796'>1796</a> +<a name='L1797'></a><a href='#L1797'>1797</a> +<a name='L1798'></a><a href='#L1798'>1798</a> +<a name='L1799'></a><a href='#L1799'>1799</a> +<a name='L1800'></a><a href='#L1800'>1800</a> +<a name='L1801'></a><a href='#L1801'>1801</a> +<a name='L1802'></a><a href='#L1802'>1802</a> +<a name='L1803'></a><a href='#L1803'>1803</a> +<a name='L1804'></a><a href='#L1804'>1804</a> +<a name='L1805'></a><a href='#L1805'>1805</a> +<a name='L1806'></a><a href='#L1806'>1806</a> +<a name='L1807'></a><a href='#L1807'>1807</a> +<a name='L1808'></a><a href='#L1808'>1808</a> +<a name='L1809'></a><a href='#L1809'>1809</a> +<a name='L1810'></a><a href='#L1810'>1810</a> +<a name='L1811'></a><a href='#L1811'>1811</a> +<a name='L1812'></a><a href='#L1812'>1812</a> +<a name='L1813'></a><a href='#L1813'>1813</a> +<a name='L1814'></a><a href='#L1814'>1814</a> +<a name='L1815'></a><a href='#L1815'>1815</a> +<a name='L1816'></a><a href='#L1816'>1816</a> +<a name='L1817'></a><a href='#L1817'>1817</a> +<a name='L1818'></a><a href='#L1818'>1818</a> +<a name='L1819'></a><a href='#L1819'>1819</a> +<a name='L1820'></a><a href='#L1820'>1820</a> +<a name='L1821'></a><a href='#L1821'>1821</a> +<a name='L1822'></a><a href='#L1822'>1822</a> +<a name='L1823'></a><a href='#L1823'>1823</a> +<a name='L1824'></a><a href='#L1824'>1824</a> +<a name='L1825'></a><a href='#L1825'>1825</a> +<a name='L1826'></a><a href='#L1826'>1826</a> +<a name='L1827'></a><a href='#L1827'>1827</a> +<a name='L1828'></a><a href='#L1828'>1828</a> +<a name='L1829'></a><a href='#L1829'>1829</a> +<a name='L1830'></a><a href='#L1830'>1830</a> +<a name='L1831'></a><a href='#L1831'>1831</a> +<a name='L1832'></a><a href='#L1832'>1832</a> +<a name='L1833'></a><a href='#L1833'>1833</a> +<a name='L1834'></a><a href='#L1834'>1834</a> +<a name='L1835'></a><a href='#L1835'>1835</a> +<a name='L1836'></a><a href='#L1836'>1836</a> +<a name='L1837'></a><a href='#L1837'>1837</a> +<a name='L1838'></a><a href='#L1838'>1838</a> +<a name='L1839'></a><a href='#L1839'>1839</a> +<a name='L1840'></a><a href='#L1840'>1840</a> +<a name='L1841'></a><a href='#L1841'>1841</a> +<a name='L1842'></a><a href='#L1842'>1842</a> +<a name='L1843'></a><a href='#L1843'>1843</a> +<a name='L1844'></a><a href='#L1844'>1844</a> +<a name='L1845'></a><a href='#L1845'>1845</a> +<a name='L1846'></a><a href='#L1846'>1846</a> +<a name='L1847'></a><a href='#L1847'>1847</a> +<a name='L1848'></a><a href='#L1848'>1848</a> +<a name='L1849'></a><a href='#L1849'>1849</a> +<a name='L1850'></a><a href='#L1850'>1850</a> +<a name='L1851'></a><a href='#L1851'>1851</a> +<a name='L1852'></a><a href='#L1852'>1852</a> +<a name='L1853'></a><a href='#L1853'>1853</a> +<a name='L1854'></a><a href='#L1854'>1854</a> +<a name='L1855'></a><a href='#L1855'>1855</a> +<a name='L1856'></a><a href='#L1856'>1856</a> +<a name='L1857'></a><a href='#L1857'>1857</a> +<a name='L1858'></a><a href='#L1858'>1858</a> +<a name='L1859'></a><a href='#L1859'>1859</a> +<a name='L1860'></a><a href='#L1860'>1860</a> +<a name='L1861'></a><a href='#L1861'>1861</a> +<a name='L1862'></a><a href='#L1862'>1862</a> +<a name='L1863'></a><a href='#L1863'>1863</a> +<a name='L1864'></a><a href='#L1864'>1864</a> +<a name='L1865'></a><a href='#L1865'>1865</a> +<a name='L1866'></a><a href='#L1866'>1866</a> +<a name='L1867'></a><a href='#L1867'>1867</a> +<a name='L1868'></a><a href='#L1868'>1868</a> +<a name='L1869'></a><a href='#L1869'>1869</a> +<a name='L1870'></a><a href='#L1870'>1870</a> +<a name='L1871'></a><a href='#L1871'>1871</a> +<a name='L1872'></a><a href='#L1872'>1872</a> +<a name='L1873'></a><a href='#L1873'>1873</a> +<a name='L1874'></a><a href='#L1874'>1874</a> +<a name='L1875'></a><a href='#L1875'>1875</a> +<a name='L1876'></a><a href='#L1876'>1876</a> +<a name='L1877'></a><a href='#L1877'>1877</a> +<a name='L1878'></a><a href='#L1878'>1878</a> +<a name='L1879'></a><a href='#L1879'>1879</a> +<a name='L1880'></a><a href='#L1880'>1880</a> +<a name='L1881'></a><a href='#L1881'>1881</a> +<a name='L1882'></a><a href='#L1882'>1882</a> +<a name='L1883'></a><a href='#L1883'>1883</a> +<a name='L1884'></a><a href='#L1884'>1884</a> +<a name='L1885'></a><a href='#L1885'>1885</a> +<a name='L1886'></a><a href='#L1886'>1886</a> +<a name='L1887'></a><a href='#L1887'>1887</a> +<a name='L1888'></a><a href='#L1888'>1888</a> +<a name='L1889'></a><a href='#L1889'>1889</a> +<a name='L1890'></a><a href='#L1890'>1890</a> +<a name='L1891'></a><a href='#L1891'>1891</a> +<a name='L1892'></a><a href='#L1892'>1892</a> +<a name='L1893'></a><a href='#L1893'>1893</a> +<a name='L1894'></a><a href='#L1894'>1894</a> +<a name='L1895'></a><a href='#L1895'>1895</a> +<a name='L1896'></a><a href='#L1896'>1896</a> +<a name='L1897'></a><a href='#L1897'>1897</a> +<a name='L1898'></a><a href='#L1898'>1898</a> +<a name='L1899'></a><a href='#L1899'>1899</a> +<a name='L1900'></a><a href='#L1900'>1900</a> +<a name='L1901'></a><a href='#L1901'>1901</a> +<a name='L1902'></a><a href='#L1902'>1902</a> +<a name='L1903'></a><a href='#L1903'>1903</a> +<a name='L1904'></a><a href='#L1904'>1904</a> +<a name='L1905'></a><a href='#L1905'>1905</a> +<a name='L1906'></a><a href='#L1906'>1906</a> +<a name='L1907'></a><a href='#L1907'>1907</a> +<a name='L1908'></a><a href='#L1908'>1908</a> +<a name='L1909'></a><a href='#L1909'>1909</a> +<a name='L1910'></a><a href='#L1910'>1910</a> +<a name='L1911'></a><a href='#L1911'>1911</a> +<a name='L1912'></a><a href='#L1912'>1912</a> +<a name='L1913'></a><a href='#L1913'>1913</a> +<a name='L1914'></a><a href='#L1914'>1914</a> +<a name='L1915'></a><a href='#L1915'>1915</a> +<a name='L1916'></a><a href='#L1916'>1916</a> +<a name='L1917'></a><a href='#L1917'>1917</a> +<a name='L1918'></a><a href='#L1918'>1918</a> +<a name='L1919'></a><a href='#L1919'>1919</a> +<a name='L1920'></a><a href='#L1920'>1920</a> +<a name='L1921'></a><a href='#L1921'>1921</a> +<a name='L1922'></a><a href='#L1922'>1922</a> +<a name='L1923'></a><a href='#L1923'>1923</a> +<a name='L1924'></a><a href='#L1924'>1924</a> +<a name='L1925'></a><a href='#L1925'>1925</a> +<a name='L1926'></a><a href='#L1926'>1926</a> +<a name='L1927'></a><a href='#L1927'>1927</a> +<a name='L1928'></a><a href='#L1928'>1928</a> +<a name='L1929'></a><a href='#L1929'>1929</a> +<a name='L1930'></a><a href='#L1930'>1930</a> +<a name='L1931'></a><a href='#L1931'>1931</a> +<a name='L1932'></a><a href='#L1932'>1932</a> +<a name='L1933'></a><a href='#L1933'>1933</a> +<a name='L1934'></a><a href='#L1934'>1934</a> +<a name='L1935'></a><a href='#L1935'>1935</a> +<a name='L1936'></a><a href='#L1936'>1936</a> +<a name='L1937'></a><a href='#L1937'>1937</a> +<a name='L1938'></a><a href='#L1938'>1938</a> +<a name='L1939'></a><a href='#L1939'>1939</a> +<a name='L1940'></a><a href='#L1940'>1940</a> +<a name='L1941'></a><a href='#L1941'>1941</a> +<a name='L1942'></a><a href='#L1942'>1942</a> +<a name='L1943'></a><a href='#L1943'>1943</a> +<a name='L1944'></a><a href='#L1944'>1944</a> +<a name='L1945'></a><a href='#L1945'>1945</a> +<a name='L1946'></a><a href='#L1946'>1946</a> +<a name='L1947'></a><a href='#L1947'>1947</a> +<a name='L1948'></a><a href='#L1948'>1948</a> +<a name='L1949'></a><a href='#L1949'>1949</a> +<a name='L1950'></a><a href='#L1950'>1950</a> +<a name='L1951'></a><a href='#L1951'>1951</a> +<a name='L1952'></a><a href='#L1952'>1952</a> +<a name='L1953'></a><a href='#L1953'>1953</a> +<a name='L1954'></a><a href='#L1954'>1954</a> +<a name='L1955'></a><a href='#L1955'>1955</a> +<a name='L1956'></a><a href='#L1956'>1956</a> +<a name='L1957'></a><a href='#L1957'>1957</a> +<a name='L1958'></a><a href='#L1958'>1958</a> +<a name='L1959'></a><a href='#L1959'>1959</a> +<a name='L1960'></a><a href='#L1960'>1960</a> +<a name='L1961'></a><a href='#L1961'>1961</a> +<a name='L1962'></a><a href='#L1962'>1962</a> +<a name='L1963'></a><a href='#L1963'>1963</a> +<a name='L1964'></a><a href='#L1964'>1964</a> +<a name='L1965'></a><a href='#L1965'>1965</a> +<a name='L1966'></a><a href='#L1966'>1966</a> +<a name='L1967'></a><a href='#L1967'>1967</a> +<a name='L1968'></a><a href='#L1968'>1968</a> +<a name='L1969'></a><a href='#L1969'>1969</a> +<a name='L1970'></a><a href='#L1970'>1970</a> +<a name='L1971'></a><a href='#L1971'>1971</a> +<a name='L1972'></a><a href='#L1972'>1972</a> +<a name='L1973'></a><a href='#L1973'>1973</a> +<a name='L1974'></a><a href='#L1974'>1974</a> +<a name='L1975'></a><a href='#L1975'>1975</a> +<a name='L1976'></a><a href='#L1976'>1976</a> +<a name='L1977'></a><a href='#L1977'>1977</a> +<a name='L1978'></a><a href='#L1978'>1978</a> +<a name='L1979'></a><a href='#L1979'>1979</a> +<a name='L1980'></a><a href='#L1980'>1980</a> +<a name='L1981'></a><a href='#L1981'>1981</a> +<a name='L1982'></a><a href='#L1982'>1982</a> +<a name='L1983'></a><a href='#L1983'>1983</a> +<a name='L1984'></a><a href='#L1984'>1984</a> +<a name='L1985'></a><a href='#L1985'>1985</a> +<a name='L1986'></a><a href='#L1986'>1986</a> +<a name='L1987'></a><a href='#L1987'>1987</a> +<a name='L1988'></a><a href='#L1988'>1988</a> +<a name='L1989'></a><a href='#L1989'>1989</a> +<a name='L1990'></a><a href='#L1990'>1990</a> +<a name='L1991'></a><a href='#L1991'>1991</a> +<a name='L1992'></a><a href='#L1992'>1992</a> +<a name='L1993'></a><a href='#L1993'>1993</a> +<a name='L1994'></a><a href='#L1994'>1994</a> +<a name='L1995'></a><a href='#L1995'>1995</a> +<a name='L1996'></a><a href='#L1996'>1996</a> +<a name='L1997'></a><a href='#L1997'>1997</a> +<a name='L1998'></a><a href='#L1998'>1998</a> +<a name='L1999'></a><a href='#L1999'>1999</a> +<a name='L2000'></a><a href='#L2000'>2000</a> +<a name='L2001'></a><a href='#L2001'>2001</a> +<a name='L2002'></a><a href='#L2002'>2002</a> +<a name='L2003'></a><a href='#L2003'>2003</a> +<a name='L2004'></a><a href='#L2004'>2004</a> +<a name='L2005'></a><a href='#L2005'>2005</a> +<a name='L2006'></a><a href='#L2006'>2006</a> +<a name='L2007'></a><a href='#L2007'>2007</a> +<a name='L2008'></a><a href='#L2008'>2008</a> +<a name='L2009'></a><a href='#L2009'>2009</a> +<a name='L2010'></a><a href='#L2010'>2010</a> +<a name='L2011'></a><a href='#L2011'>2011</a> +<a name='L2012'></a><a href='#L2012'>2012</a> +<a name='L2013'></a><a href='#L2013'>2013</a> +<a name='L2014'></a><a href='#L2014'>2014</a> +<a name='L2015'></a><a href='#L2015'>2015</a> +<a name='L2016'></a><a href='#L2016'>2016</a> +<a name='L2017'></a><a href='#L2017'>2017</a> +<a name='L2018'></a><a href='#L2018'>2018</a> +<a name='L2019'></a><a href='#L2019'>2019</a> +<a name='L2020'></a><a href='#L2020'>2020</a> +<a name='L2021'></a><a href='#L2021'>2021</a> +<a name='L2022'></a><a href='#L2022'>2022</a> +<a name='L2023'></a><a href='#L2023'>2023</a> +<a name='L2024'></a><a href='#L2024'>2024</a> +<a name='L2025'></a><a href='#L2025'>2025</a> +<a name='L2026'></a><a href='#L2026'>2026</a> +<a name='L2027'></a><a href='#L2027'>2027</a> +<a name='L2028'></a><a href='#L2028'>2028</a> +<a name='L2029'></a><a href='#L2029'>2029</a> +<a name='L2030'></a><a href='#L2030'>2030</a> +<a name='L2031'></a><a href='#L2031'>2031</a> +<a name='L2032'></a><a href='#L2032'>2032</a> +<a name='L2033'></a><a href='#L2033'>2033</a> +<a name='L2034'></a><a href='#L2034'>2034</a> +<a name='L2035'></a><a href='#L2035'>2035</a> +<a name='L2036'></a><a href='#L2036'>2036</a> +<a name='L2037'></a><a href='#L2037'>2037</a> +<a name='L2038'></a><a href='#L2038'>2038</a> +<a name='L2039'></a><a href='#L2039'>2039</a> +<a name='L2040'></a><a href='#L2040'>2040</a> +<a name='L2041'></a><a href='#L2041'>2041</a> +<a name='L2042'></a><a href='#L2042'>2042</a> +<a name='L2043'></a><a href='#L2043'>2043</a> +<a name='L2044'></a><a href='#L2044'>2044</a> +<a name='L2045'></a><a href='#L2045'>2045</a> +<a name='L2046'></a><a href='#L2046'>2046</a> +<a name='L2047'></a><a href='#L2047'>2047</a> +<a name='L2048'></a><a href='#L2048'>2048</a> +<a name='L2049'></a><a href='#L2049'>2049</a> +<a name='L2050'></a><a href='#L2050'>2050</a> +<a name='L2051'></a><a href='#L2051'>2051</a> +<a name='L2052'></a><a href='#L2052'>2052</a> +<a name='L2053'></a><a href='#L2053'>2053</a> +<a name='L2054'></a><a href='#L2054'>2054</a> +<a name='L2055'></a><a href='#L2055'>2055</a> +<a name='L2056'></a><a href='#L2056'>2056</a> +<a name='L2057'></a><a href='#L2057'>2057</a> +<a name='L2058'></a><a href='#L2058'>2058</a> +<a name='L2059'></a><a href='#L2059'>2059</a> +<a name='L2060'></a><a href='#L2060'>2060</a> +<a name='L2061'></a><a href='#L2061'>2061</a> +<a name='L2062'></a><a href='#L2062'>2062</a> +<a name='L2063'></a><a href='#L2063'>2063</a> +<a name='L2064'></a><a href='#L2064'>2064</a> +<a name='L2065'></a><a href='#L2065'>2065</a> +<a name='L2066'></a><a href='#L2066'>2066</a> +<a name='L2067'></a><a href='#L2067'>2067</a> +<a name='L2068'></a><a href='#L2068'>2068</a> +<a name='L2069'></a><a href='#L2069'>2069</a> +<a name='L2070'></a><a href='#L2070'>2070</a> +<a name='L2071'></a><a href='#L2071'>2071</a> +<a name='L2072'></a><a href='#L2072'>2072</a> +<a name='L2073'></a><a href='#L2073'>2073</a> +<a name='L2074'></a><a href='#L2074'>2074</a> +<a name='L2075'></a><a href='#L2075'>2075</a> +<a name='L2076'></a><a href='#L2076'>2076</a> +<a name='L2077'></a><a href='#L2077'>2077</a> +<a name='L2078'></a><a href='#L2078'>2078</a> +<a name='L2079'></a><a href='#L2079'>2079</a> +<a name='L2080'></a><a href='#L2080'>2080</a> +<a name='L2081'></a><a href='#L2081'>2081</a> +<a name='L2082'></a><a href='#L2082'>2082</a> +<a name='L2083'></a><a href='#L2083'>2083</a> +<a name='L2084'></a><a href='#L2084'>2084</a> +<a name='L2085'></a><a href='#L2085'>2085</a> +<a name='L2086'></a><a href='#L2086'>2086</a> +<a name='L2087'></a><a href='#L2087'>2087</a> +<a name='L2088'></a><a href='#L2088'>2088</a> +<a name='L2089'></a><a href='#L2089'>2089</a> +<a name='L2090'></a><a href='#L2090'>2090</a> +<a name='L2091'></a><a href='#L2091'>2091</a> +<a name='L2092'></a><a href='#L2092'>2092</a> +<a name='L2093'></a><a href='#L2093'>2093</a> +<a name='L2094'></a><a href='#L2094'>2094</a> +<a name='L2095'></a><a href='#L2095'>2095</a> +<a name='L2096'></a><a href='#L2096'>2096</a> +<a name='L2097'></a><a href='#L2097'>2097</a> +<a name='L2098'></a><a href='#L2098'>2098</a> +<a name='L2099'></a><a href='#L2099'>2099</a> +<a name='L2100'></a><a href='#L2100'>2100</a> +<a name='L2101'></a><a href='#L2101'>2101</a> +<a name='L2102'></a><a href='#L2102'>2102</a> +<a name='L2103'></a><a href='#L2103'>2103</a> +<a name='L2104'></a><a href='#L2104'>2104</a> +<a name='L2105'></a><a href='#L2105'>2105</a> +<a name='L2106'></a><a href='#L2106'>2106</a> +<a name='L2107'></a><a href='#L2107'>2107</a> +<a name='L2108'></a><a href='#L2108'>2108</a> +<a name='L2109'></a><a href='#L2109'>2109</a> +<a name='L2110'></a><a href='#L2110'>2110</a> +<a name='L2111'></a><a href='#L2111'>2111</a> +<a name='L2112'></a><a href='#L2112'>2112</a> +<a name='L2113'></a><a href='#L2113'>2113</a> +<a name='L2114'></a><a href='#L2114'>2114</a> +<a name='L2115'></a><a href='#L2115'>2115</a> +<a name='L2116'></a><a href='#L2116'>2116</a> +<a name='L2117'></a><a href='#L2117'>2117</a> +<a name='L2118'></a><a href='#L2118'>2118</a> +<a name='L2119'></a><a href='#L2119'>2119</a> +<a name='L2120'></a><a href='#L2120'>2120</a> +<a name='L2121'></a><a href='#L2121'>2121</a> +<a name='L2122'></a><a href='#L2122'>2122</a> +<a name='L2123'></a><a href='#L2123'>2123</a> +<a name='L2124'></a><a href='#L2124'>2124</a> +<a name='L2125'></a><a href='#L2125'>2125</a> +<a name='L2126'></a><a href='#L2126'>2126</a> +<a name='L2127'></a><a href='#L2127'>2127</a> +<a name='L2128'></a><a href='#L2128'>2128</a> +<a name='L2129'></a><a href='#L2129'>2129</a> +<a name='L2130'></a><a href='#L2130'>2130</a> +<a name='L2131'></a><a href='#L2131'>2131</a> +<a name='L2132'></a><a href='#L2132'>2132</a> +<a name='L2133'></a><a href='#L2133'>2133</a> +<a name='L2134'></a><a href='#L2134'>2134</a> +<a name='L2135'></a><a href='#L2135'>2135</a> +<a name='L2136'></a><a href='#L2136'>2136</a> +<a name='L2137'></a><a href='#L2137'>2137</a> +<a name='L2138'></a><a href='#L2138'>2138</a> +<a name='L2139'></a><a href='#L2139'>2139</a> +<a name='L2140'></a><a href='#L2140'>2140</a> +<a name='L2141'></a><a href='#L2141'>2141</a> +<a name='L2142'></a><a href='#L2142'>2142</a> +<a name='L2143'></a><a href='#L2143'>2143</a> +<a name='L2144'></a><a href='#L2144'>2144</a> +<a name='L2145'></a><a href='#L2145'>2145</a> +<a name='L2146'></a><a href='#L2146'>2146</a> +<a name='L2147'></a><a href='#L2147'>2147</a> +<a name='L2148'></a><a href='#L2148'>2148</a> +<a name='L2149'></a><a href='#L2149'>2149</a> +<a name='L2150'></a><a href='#L2150'>2150</a> +<a name='L2151'></a><a href='#L2151'>2151</a> +<a name='L2152'></a><a href='#L2152'>2152</a> +<a name='L2153'></a><a href='#L2153'>2153</a> +<a name='L2154'></a><a href='#L2154'>2154</a> +<a name='L2155'></a><a href='#L2155'>2155</a> +<a name='L2156'></a><a href='#L2156'>2156</a> +<a name='L2157'></a><a href='#L2157'>2157</a> +<a name='L2158'></a><a href='#L2158'>2158</a> +<a name='L2159'></a><a href='#L2159'>2159</a> +<a name='L2160'></a><a href='#L2160'>2160</a> +<a name='L2161'></a><a href='#L2161'>2161</a> +<a name='L2162'></a><a href='#L2162'>2162</a> +<a name='L2163'></a><a href='#L2163'>2163</a> +<a name='L2164'></a><a href='#L2164'>2164</a> +<a name='L2165'></a><a href='#L2165'>2165</a> +<a name='L2166'></a><a href='#L2166'>2166</a> +<a name='L2167'></a><a href='#L2167'>2167</a> +<a name='L2168'></a><a href='#L2168'>2168</a> +<a name='L2169'></a><a href='#L2169'>2169</a> +<a name='L2170'></a><a href='#L2170'>2170</a> +<a name='L2171'></a><a href='#L2171'>2171</a> +<a name='L2172'></a><a href='#L2172'>2172</a> +<a name='L2173'></a><a href='#L2173'>2173</a> +<a name='L2174'></a><a href='#L2174'>2174</a> +<a name='L2175'></a><a href='#L2175'>2175</a> +<a name='L2176'></a><a href='#L2176'>2176</a> +<a name='L2177'></a><a href='#L2177'>2177</a> +<a name='L2178'></a><a href='#L2178'>2178</a> +<a name='L2179'></a><a href='#L2179'>2179</a> +<a name='L2180'></a><a href='#L2180'>2180</a> +<a name='L2181'></a><a href='#L2181'>2181</a> +<a name='L2182'></a><a href='#L2182'>2182</a> +<a name='L2183'></a><a href='#L2183'>2183</a> +<a name='L2184'></a><a href='#L2184'>2184</a> +<a name='L2185'></a><a href='#L2185'>2185</a> +<a name='L2186'></a><a href='#L2186'>2186</a> +<a name='L2187'></a><a href='#L2187'>2187</a> +<a name='L2188'></a><a href='#L2188'>2188</a> +<a name='L2189'></a><a href='#L2189'>2189</a> +<a name='L2190'></a><a href='#L2190'>2190</a> +<a name='L2191'></a><a href='#L2191'>2191</a> +<a name='L2192'></a><a href='#L2192'>2192</a> +<a name='L2193'></a><a href='#L2193'>2193</a> +<a name='L2194'></a><a href='#L2194'>2194</a> +<a name='L2195'></a><a href='#L2195'>2195</a> +<a name='L2196'></a><a href='#L2196'>2196</a> +<a name='L2197'></a><a href='#L2197'>2197</a> +<a name='L2198'></a><a href='#L2198'>2198</a> +<a name='L2199'></a><a href='#L2199'>2199</a> +<a name='L2200'></a><a href='#L2200'>2200</a> +<a name='L2201'></a><a href='#L2201'>2201</a> +<a name='L2202'></a><a href='#L2202'>2202</a> +<a name='L2203'></a><a href='#L2203'>2203</a> +<a name='L2204'></a><a href='#L2204'>2204</a> +<a name='L2205'></a><a href='#L2205'>2205</a> +<a name='L2206'></a><a href='#L2206'>2206</a> +<a name='L2207'></a><a href='#L2207'>2207</a> +<a name='L2208'></a><a href='#L2208'>2208</a> +<a name='L2209'></a><a href='#L2209'>2209</a> +<a name='L2210'></a><a href='#L2210'>2210</a> +<a name='L2211'></a><a href='#L2211'>2211</a> +<a name='L2212'></a><a href='#L2212'>2212</a> +<a name='L2213'></a><a href='#L2213'>2213</a> +<a name='L2214'></a><a href='#L2214'>2214</a> +<a name='L2215'></a><a href='#L2215'>2215</a> +<a name='L2216'></a><a href='#L2216'>2216</a> +<a name='L2217'></a><a href='#L2217'>2217</a> +<a name='L2218'></a><a href='#L2218'>2218</a> +<a name='L2219'></a><a href='#L2219'>2219</a> +<a name='L2220'></a><a href='#L2220'>2220</a> +<a name='L2221'></a><a href='#L2221'>2221</a> +<a name='L2222'></a><a href='#L2222'>2222</a> +<a name='L2223'></a><a href='#L2223'>2223</a> +<a name='L2224'></a><a href='#L2224'>2224</a> +<a name='L2225'></a><a href='#L2225'>2225</a> +<a name='L2226'></a><a href='#L2226'>2226</a> +<a name='L2227'></a><a href='#L2227'>2227</a> +<a name='L2228'></a><a href='#L2228'>2228</a> +<a name='L2229'></a><a href='#L2229'>2229</a> +<a name='L2230'></a><a href='#L2230'>2230</a> +<a name='L2231'></a><a href='#L2231'>2231</a> +<a name='L2232'></a><a href='#L2232'>2232</a> +<a name='L2233'></a><a href='#L2233'>2233</a> +<a name='L2234'></a><a href='#L2234'>2234</a> +<a name='L2235'></a><a href='#L2235'>2235</a> +<a name='L2236'></a><a href='#L2236'>2236</a> +<a name='L2237'></a><a href='#L2237'>2237</a> +<a name='L2238'></a><a href='#L2238'>2238</a> +<a name='L2239'></a><a href='#L2239'>2239</a> +<a name='L2240'></a><a href='#L2240'>2240</a> +<a name='L2241'></a><a href='#L2241'>2241</a> +<a name='L2242'></a><a href='#L2242'>2242</a> +<a name='L2243'></a><a href='#L2243'>2243</a> +<a name='L2244'></a><a href='#L2244'>2244</a> +<a name='L2245'></a><a href='#L2245'>2245</a> +<a name='L2246'></a><a href='#L2246'>2246</a> +<a name='L2247'></a><a href='#L2247'>2247</a> +<a name='L2248'></a><a href='#L2248'>2248</a> +<a name='L2249'></a><a href='#L2249'>2249</a> +<a name='L2250'></a><a href='#L2250'>2250</a> +<a name='L2251'></a><a href='#L2251'>2251</a> +<a name='L2252'></a><a href='#L2252'>2252</a> +<a name='L2253'></a><a href='#L2253'>2253</a> +<a name='L2254'></a><a href='#L2254'>2254</a> +<a name='L2255'></a><a href='#L2255'>2255</a> +<a name='L2256'></a><a href='#L2256'>2256</a> +<a name='L2257'></a><a href='#L2257'>2257</a> +<a name='L2258'></a><a href='#L2258'>2258</a> +<a name='L2259'></a><a href='#L2259'>2259</a> +<a name='L2260'></a><a href='#L2260'>2260</a> +<a name='L2261'></a><a href='#L2261'>2261</a> +<a name='L2262'></a><a href='#L2262'>2262</a> +<a name='L2263'></a><a href='#L2263'>2263</a> +<a name='L2264'></a><a href='#L2264'>2264</a> +<a name='L2265'></a><a href='#L2265'>2265</a> +<a name='L2266'></a><a href='#L2266'>2266</a> +<a name='L2267'></a><a href='#L2267'>2267</a> +<a name='L2268'></a><a href='#L2268'>2268</a> +<a name='L2269'></a><a href='#L2269'>2269</a> +<a name='L2270'></a><a href='#L2270'>2270</a> +<a name='L2271'></a><a href='#L2271'>2271</a> +<a name='L2272'></a><a href='#L2272'>2272</a> +<a name='L2273'></a><a href='#L2273'>2273</a> +<a name='L2274'></a><a href='#L2274'>2274</a> +<a name='L2275'></a><a href='#L2275'>2275</a> +<a name='L2276'></a><a href='#L2276'>2276</a> +<a name='L2277'></a><a href='#L2277'>2277</a> +<a name='L2278'></a><a href='#L2278'>2278</a> +<a name='L2279'></a><a href='#L2279'>2279</a> +<a name='L2280'></a><a href='#L2280'>2280</a> +<a name='L2281'></a><a href='#L2281'>2281</a> +<a name='L2282'></a><a href='#L2282'>2282</a> +<a name='L2283'></a><a href='#L2283'>2283</a> +<a name='L2284'></a><a href='#L2284'>2284</a> +<a name='L2285'></a><a href='#L2285'>2285</a> +<a name='L2286'></a><a href='#L2286'>2286</a> +<a name='L2287'></a><a href='#L2287'>2287</a> +<a name='L2288'></a><a href='#L2288'>2288</a> +<a name='L2289'></a><a href='#L2289'>2289</a> +<a name='L2290'></a><a href='#L2290'>2290</a> +<a name='L2291'></a><a href='#L2291'>2291</a> +<a name='L2292'></a><a href='#L2292'>2292</a> +<a name='L2293'></a><a href='#L2293'>2293</a> +<a name='L2294'></a><a href='#L2294'>2294</a> +<a name='L2295'></a><a href='#L2295'>2295</a> +<a name='L2296'></a><a href='#L2296'>2296</a> +<a name='L2297'></a><a href='#L2297'>2297</a> +<a name='L2298'></a><a href='#L2298'>2298</a> +<a name='L2299'></a><a href='#L2299'>2299</a> +<a name='L2300'></a><a href='#L2300'>2300</a> +<a name='L2301'></a><a href='#L2301'>2301</a> +<a name='L2302'></a><a href='#L2302'>2302</a> +<a name='L2303'></a><a href='#L2303'>2303</a> +<a name='L2304'></a><a href='#L2304'>2304</a> +<a name='L2305'></a><a href='#L2305'>2305</a> +<a name='L2306'></a><a href='#L2306'>2306</a> +<a name='L2307'></a><a href='#L2307'>2307</a> +<a name='L2308'></a><a href='#L2308'>2308</a> +<a name='L2309'></a><a href='#L2309'>2309</a> +<a name='L2310'></a><a href='#L2310'>2310</a> +<a name='L2311'></a><a href='#L2311'>2311</a> +<a name='L2312'></a><a href='#L2312'>2312</a> +<a name='L2313'></a><a href='#L2313'>2313</a> +<a name='L2314'></a><a href='#L2314'>2314</a> +<a name='L2315'></a><a href='#L2315'>2315</a> +<a name='L2316'></a><a href='#L2316'>2316</a> +<a name='L2317'></a><a href='#L2317'>2317</a> +<a name='L2318'></a><a href='#L2318'>2318</a> +<a name='L2319'></a><a href='#L2319'>2319</a> +<a name='L2320'></a><a href='#L2320'>2320</a> +<a name='L2321'></a><a href='#L2321'>2321</a> +<a name='L2322'></a><a href='#L2322'>2322</a> +<a name='L2323'></a><a href='#L2323'>2323</a> +<a name='L2324'></a><a href='#L2324'>2324</a> +<a name='L2325'></a><a href='#L2325'>2325</a> +<a name='L2326'></a><a href='#L2326'>2326</a> +<a name='L2327'></a><a href='#L2327'>2327</a> +<a name='L2328'></a><a href='#L2328'>2328</a> +<a name='L2329'></a><a href='#L2329'>2329</a> +<a name='L2330'></a><a href='#L2330'>2330</a> +<a name='L2331'></a><a href='#L2331'>2331</a> +<a name='L2332'></a><a href='#L2332'>2332</a> +<a name='L2333'></a><a href='#L2333'>2333</a> +<a name='L2334'></a><a href='#L2334'>2334</a> +<a name='L2335'></a><a href='#L2335'>2335</a> +<a name='L2336'></a><a href='#L2336'>2336</a> +<a name='L2337'></a><a href='#L2337'>2337</a> +<a name='L2338'></a><a href='#L2338'>2338</a> +<a name='L2339'></a><a href='#L2339'>2339</a> +<a name='L2340'></a><a href='#L2340'>2340</a> +<a name='L2341'></a><a href='#L2341'>2341</a> +<a name='L2342'></a><a href='#L2342'>2342</a> +<a name='L2343'></a><a href='#L2343'>2343</a> +<a name='L2344'></a><a href='#L2344'>2344</a> +<a name='L2345'></a><a href='#L2345'>2345</a> +<a name='L2346'></a><a href='#L2346'>2346</a> +<a name='L2347'></a><a href='#L2347'>2347</a> +<a name='L2348'></a><a href='#L2348'>2348</a> +<a name='L2349'></a><a href='#L2349'>2349</a> +<a name='L2350'></a><a href='#L2350'>2350</a> +<a name='L2351'></a><a href='#L2351'>2351</a> +<a name='L2352'></a><a href='#L2352'>2352</a> +<a name='L2353'></a><a href='#L2353'>2353</a> +<a name='L2354'></a><a href='#L2354'>2354</a> +<a name='L2355'></a><a href='#L2355'>2355</a> +<a name='L2356'></a><a href='#L2356'>2356</a> +<a name='L2357'></a><a href='#L2357'>2357</a> +<a name='L2358'></a><a href='#L2358'>2358</a> +<a name='L2359'></a><a href='#L2359'>2359</a> +<a name='L2360'></a><a href='#L2360'>2360</a> +<a name='L2361'></a><a href='#L2361'>2361</a> +<a name='L2362'></a><a href='#L2362'>2362</a> +<a name='L2363'></a><a href='#L2363'>2363</a> +<a name='L2364'></a><a href='#L2364'>2364</a> +<a name='L2365'></a><a href='#L2365'>2365</a> +<a name='L2366'></a><a href='#L2366'>2366</a> +<a name='L2367'></a><a href='#L2367'>2367</a> +<a name='L2368'></a><a href='#L2368'>2368</a> +<a name='L2369'></a><a href='#L2369'>2369</a> +<a name='L2370'></a><a href='#L2370'>2370</a> +<a name='L2371'></a><a href='#L2371'>2371</a> +<a name='L2372'></a><a href='#L2372'>2372</a> +<a name='L2373'></a><a href='#L2373'>2373</a> +<a name='L2374'></a><a href='#L2374'>2374</a> +<a name='L2375'></a><a href='#L2375'>2375</a> +<a name='L2376'></a><a href='#L2376'>2376</a> +<a name='L2377'></a><a href='#L2377'>2377</a> +<a name='L2378'></a><a href='#L2378'>2378</a> +<a name='L2379'></a><a href='#L2379'>2379</a> +<a name='L2380'></a><a href='#L2380'>2380</a> +<a name='L2381'></a><a href='#L2381'>2381</a> +<a name='L2382'></a><a href='#L2382'>2382</a> +<a name='L2383'></a><a href='#L2383'>2383</a> +<a name='L2384'></a><a href='#L2384'>2384</a> +<a name='L2385'></a><a href='#L2385'>2385</a> +<a name='L2386'></a><a href='#L2386'>2386</a> +<a name='L2387'></a><a href='#L2387'>2387</a> +<a name='L2388'></a><a href='#L2388'>2388</a> +<a name='L2389'></a><a href='#L2389'>2389</a> +<a name='L2390'></a><a href='#L2390'>2390</a> +<a name='L2391'></a><a href='#L2391'>2391</a> +<a name='L2392'></a><a href='#L2392'>2392</a> +<a name='L2393'></a><a href='#L2393'>2393</a> +<a name='L2394'></a><a href='#L2394'>2394</a> +<a name='L2395'></a><a href='#L2395'>2395</a> +<a name='L2396'></a><a href='#L2396'>2396</a> +<a name='L2397'></a><a href='#L2397'>2397</a> +<a name='L2398'></a><a href='#L2398'>2398</a> +<a name='L2399'></a><a href='#L2399'>2399</a> +<a name='L2400'></a><a href='#L2400'>2400</a> +<a name='L2401'></a><a href='#L2401'>2401</a> +<a name='L2402'></a><a href='#L2402'>2402</a> +<a name='L2403'></a><a href='#L2403'>2403</a> +<a name='L2404'></a><a href='#L2404'>2404</a> +<a name='L2405'></a><a href='#L2405'>2405</a> +<a name='L2406'></a><a href='#L2406'>2406</a> +<a name='L2407'></a><a href='#L2407'>2407</a> +<a name='L2408'></a><a href='#L2408'>2408</a> +<a name='L2409'></a><a href='#L2409'>2409</a> +<a name='L2410'></a><a href='#L2410'>2410</a> +<a name='L2411'></a><a href='#L2411'>2411</a> +<a name='L2412'></a><a href='#L2412'>2412</a> +<a name='L2413'></a><a href='#L2413'>2413</a> +<a name='L2414'></a><a href='#L2414'>2414</a> +<a name='L2415'></a><a href='#L2415'>2415</a> +<a name='L2416'></a><a href='#L2416'>2416</a> +<a name='L2417'></a><a href='#L2417'>2417</a> +<a name='L2418'></a><a href='#L2418'>2418</a> +<a name='L2419'></a><a href='#L2419'>2419</a> +<a name='L2420'></a><a href='#L2420'>2420</a> +<a name='L2421'></a><a href='#L2421'>2421</a> +<a name='L2422'></a><a href='#L2422'>2422</a> +<a name='L2423'></a><a href='#L2423'>2423</a> +<a name='L2424'></a><a href='#L2424'>2424</a> +<a name='L2425'></a><a href='#L2425'>2425</a> +<a name='L2426'></a><a href='#L2426'>2426</a> +<a name='L2427'></a><a href='#L2427'>2427</a> +<a name='L2428'></a><a href='#L2428'>2428</a> +<a name='L2429'></a><a href='#L2429'>2429</a> +<a name='L2430'></a><a href='#L2430'>2430</a> +<a name='L2431'></a><a href='#L2431'>2431</a> +<a name='L2432'></a><a href='#L2432'>2432</a> +<a name='L2433'></a><a href='#L2433'>2433</a> +<a name='L2434'></a><a href='#L2434'>2434</a> +<a name='L2435'></a><a href='#L2435'>2435</a> +<a name='L2436'></a><a href='#L2436'>2436</a> +<a name='L2437'></a><a href='#L2437'>2437</a> +<a name='L2438'></a><a href='#L2438'>2438</a> +<a name='L2439'></a><a href='#L2439'>2439</a> +<a name='L2440'></a><a href='#L2440'>2440</a> +<a name='L2441'></a><a href='#L2441'>2441</a> +<a name='L2442'></a><a href='#L2442'>2442</a> +<a name='L2443'></a><a href='#L2443'>2443</a> +<a name='L2444'></a><a href='#L2444'>2444</a> +<a name='L2445'></a><a href='#L2445'>2445</a> +<a name='L2446'></a><a href='#L2446'>2446</a> +<a name='L2447'></a><a href='#L2447'>2447</a> +<a name='L2448'></a><a href='#L2448'>2448</a> +<a name='L2449'></a><a href='#L2449'>2449</a> +<a name='L2450'></a><a href='#L2450'>2450</a> +<a name='L2451'></a><a href='#L2451'>2451</a> +<a name='L2452'></a><a href='#L2452'>2452</a> +<a name='L2453'></a><a href='#L2453'>2453</a> +<a name='L2454'></a><a href='#L2454'>2454</a> +<a name='L2455'></a><a href='#L2455'>2455</a> +<a name='L2456'></a><a href='#L2456'>2456</a> +<a name='L2457'></a><a href='#L2457'>2457</a> +<a name='L2458'></a><a href='#L2458'>2458</a> +<a name='L2459'></a><a href='#L2459'>2459</a> +<a name='L2460'></a><a href='#L2460'>2460</a> +<a name='L2461'></a><a href='#L2461'>2461</a> +<a name='L2462'></a><a href='#L2462'>2462</a> +<a name='L2463'></a><a href='#L2463'>2463</a> +<a name='L2464'></a><a href='#L2464'>2464</a> +<a name='L2465'></a><a href='#L2465'>2465</a> +<a name='L2466'></a><a href='#L2466'>2466</a> +<a name='L2467'></a><a href='#L2467'>2467</a> +<a name='L2468'></a><a href='#L2468'>2468</a> +<a name='L2469'></a><a href='#L2469'>2469</a> +<a name='L2470'></a><a href='#L2470'>2470</a> +<a name='L2471'></a><a href='#L2471'>2471</a> +<a name='L2472'></a><a href='#L2472'>2472</a> +<a name='L2473'></a><a href='#L2473'>2473</a> +<a name='L2474'></a><a href='#L2474'>2474</a> +<a name='L2475'></a><a href='#L2475'>2475</a> +<a name='L2476'></a><a href='#L2476'>2476</a> +<a name='L2477'></a><a href='#L2477'>2477</a> +<a name='L2478'></a><a href='#L2478'>2478</a> +<a name='L2479'></a><a href='#L2479'>2479</a> +<a name='L2480'></a><a href='#L2480'>2480</a> +<a name='L2481'></a><a href='#L2481'>2481</a> +<a name='L2482'></a><a href='#L2482'>2482</a> +<a name='L2483'></a><a href='#L2483'>2483</a> +<a name='L2484'></a><a href='#L2484'>2484</a> +<a name='L2485'></a><a href='#L2485'>2485</a> +<a name='L2486'></a><a href='#L2486'>2486</a> +<a name='L2487'></a><a href='#L2487'>2487</a> +<a name='L2488'></a><a href='#L2488'>2488</a> +<a name='L2489'></a><a href='#L2489'>2489</a> +<a name='L2490'></a><a href='#L2490'>2490</a> +<a name='L2491'></a><a href='#L2491'>2491</a> +<a name='L2492'></a><a href='#L2492'>2492</a> +<a name='L2493'></a><a href='#L2493'>2493</a> +<a name='L2494'></a><a href='#L2494'>2494</a> +<a name='L2495'></a><a href='#L2495'>2495</a> +<a name='L2496'></a><a href='#L2496'>2496</a> +<a name='L2497'></a><a href='#L2497'>2497</a> +<a name='L2498'></a><a href='#L2498'>2498</a> +<a name='L2499'></a><a href='#L2499'>2499</a> +<a name='L2500'></a><a href='#L2500'>2500</a> +<a name='L2501'></a><a href='#L2501'>2501</a> +<a name='L2502'></a><a href='#L2502'>2502</a> +<a name='L2503'></a><a href='#L2503'>2503</a> +<a name='L2504'></a><a href='#L2504'>2504</a> +<a name='L2505'></a><a href='#L2505'>2505</a> +<a name='L2506'></a><a href='#L2506'>2506</a> +<a name='L2507'></a><a href='#L2507'>2507</a> +<a name='L2508'></a><a href='#L2508'>2508</a> +<a name='L2509'></a><a href='#L2509'>2509</a> +<a name='L2510'></a><a href='#L2510'>2510</a> +<a name='L2511'></a><a href='#L2511'>2511</a> +<a name='L2512'></a><a href='#L2512'>2512</a> +<a name='L2513'></a><a href='#L2513'>2513</a> +<a name='L2514'></a><a href='#L2514'>2514</a> +<a name='L2515'></a><a href='#L2515'>2515</a> +<a name='L2516'></a><a href='#L2516'>2516</a> +<a name='L2517'></a><a href='#L2517'>2517</a> +<a name='L2518'></a><a href='#L2518'>2518</a> +<a name='L2519'></a><a href='#L2519'>2519</a> +<a name='L2520'></a><a href='#L2520'>2520</a> +<a name='L2521'></a><a href='#L2521'>2521</a> +<a name='L2522'></a><a href='#L2522'>2522</a> +<a name='L2523'></a><a href='#L2523'>2523</a> +<a name='L2524'></a><a href='#L2524'>2524</a> +<a name='L2525'></a><a href='#L2525'>2525</a> +<a name='L2526'></a><a href='#L2526'>2526</a> +<a name='L2527'></a><a href='#L2527'>2527</a> +<a name='L2528'></a><a href='#L2528'>2528</a> +<a name='L2529'></a><a href='#L2529'>2529</a> +<a name='L2530'></a><a href='#L2530'>2530</a> +<a name='L2531'></a><a href='#L2531'>2531</a> +<a name='L2532'></a><a href='#L2532'>2532</a> +<a name='L2533'></a><a href='#L2533'>2533</a> +<a name='L2534'></a><a href='#L2534'>2534</a> +<a name='L2535'></a><a href='#L2535'>2535</a> +<a name='L2536'></a><a href='#L2536'>2536</a> +<a name='L2537'></a><a href='#L2537'>2537</a> +<a name='L2538'></a><a href='#L2538'>2538</a> +<a name='L2539'></a><a href='#L2539'>2539</a> +<a name='L2540'></a><a href='#L2540'>2540</a> +<a name='L2541'></a><a href='#L2541'>2541</a> +<a name='L2542'></a><a href='#L2542'>2542</a> +<a name='L2543'></a><a href='#L2543'>2543</a> +<a name='L2544'></a><a href='#L2544'>2544</a> +<a name='L2545'></a><a href='#L2545'>2545</a> +<a name='L2546'></a><a href='#L2546'>2546</a> +<a name='L2547'></a><a href='#L2547'>2547</a> +<a name='L2548'></a><a href='#L2548'>2548</a> +<a name='L2549'></a><a href='#L2549'>2549</a> +<a name='L2550'></a><a href='#L2550'>2550</a> +<a name='L2551'></a><a href='#L2551'>2551</a> +<a name='L2552'></a><a href='#L2552'>2552</a> +<a name='L2553'></a><a href='#L2553'>2553</a> +<a name='L2554'></a><a href='#L2554'>2554</a> +<a name='L2555'></a><a href='#L2555'>2555</a> +<a name='L2556'></a><a href='#L2556'>2556</a> +<a name='L2557'></a><a href='#L2557'>2557</a> +<a name='L2558'></a><a href='#L2558'>2558</a> +<a name='L2559'></a><a href='#L2559'>2559</a> +<a name='L2560'></a><a href='#L2560'>2560</a> +<a name='L2561'></a><a href='#L2561'>2561</a> +<a name='L2562'></a><a href='#L2562'>2562</a> +<a name='L2563'></a><a href='#L2563'>2563</a> +<a name='L2564'></a><a href='#L2564'>2564</a> +<a name='L2565'></a><a href='#L2565'>2565</a> +<a name='L2566'></a><a href='#L2566'>2566</a> +<a name='L2567'></a><a href='#L2567'>2567</a> +<a name='L2568'></a><a href='#L2568'>2568</a> +<a name='L2569'></a><a href='#L2569'>2569</a> +<a name='L2570'></a><a href='#L2570'>2570</a> +<a name='L2571'></a><a href='#L2571'>2571</a> +<a name='L2572'></a><a href='#L2572'>2572</a> +<a name='L2573'></a><a href='#L2573'>2573</a> +<a name='L2574'></a><a href='#L2574'>2574</a> +<a name='L2575'></a><a href='#L2575'>2575</a> +<a name='L2576'></a><a href='#L2576'>2576</a> +<a name='L2577'></a><a href='#L2577'>2577</a> +<a name='L2578'></a><a href='#L2578'>2578</a> +<a name='L2579'></a><a href='#L2579'>2579</a> +<a name='L2580'></a><a href='#L2580'>2580</a> +<a name='L2581'></a><a href='#L2581'>2581</a> +<a name='L2582'></a><a href='#L2582'>2582</a> +<a name='L2583'></a><a href='#L2583'>2583</a> +<a name='L2584'></a><a href='#L2584'>2584</a> +<a name='L2585'></a><a href='#L2585'>2585</a> +<a name='L2586'></a><a href='#L2586'>2586</a> +<a name='L2587'></a><a href='#L2587'>2587</a> +<a name='L2588'></a><a href='#L2588'>2588</a> +<a name='L2589'></a><a href='#L2589'>2589</a> +<a name='L2590'></a><a href='#L2590'>2590</a> +<a name='L2591'></a><a href='#L2591'>2591</a> +<a name='L2592'></a><a href='#L2592'>2592</a> +<a name='L2593'></a><a href='#L2593'>2593</a> +<a name='L2594'></a><a href='#L2594'>2594</a> +<a name='L2595'></a><a href='#L2595'>2595</a> +<a name='L2596'></a><a href='#L2596'>2596</a> +<a name='L2597'></a><a href='#L2597'>2597</a> +<a name='L2598'></a><a href='#L2598'>2598</a> +<a name='L2599'></a><a href='#L2599'>2599</a> +<a name='L2600'></a><a href='#L2600'>2600</a> +<a name='L2601'></a><a href='#L2601'>2601</a> +<a name='L2602'></a><a href='#L2602'>2602</a> +<a name='L2603'></a><a href='#L2603'>2603</a> +<a name='L2604'></a><a href='#L2604'>2604</a> +<a name='L2605'></a><a href='#L2605'>2605</a> +<a name='L2606'></a><a href='#L2606'>2606</a> +<a name='L2607'></a><a href='#L2607'>2607</a> +<a name='L2608'></a><a href='#L2608'>2608</a> +<a name='L2609'></a><a href='#L2609'>2609</a> +<a name='L2610'></a><a href='#L2610'>2610</a> +<a name='L2611'></a><a href='#L2611'>2611</a> +<a name='L2612'></a><a href='#L2612'>2612</a> +<a name='L2613'></a><a href='#L2613'>2613</a> +<a name='L2614'></a><a href='#L2614'>2614</a> +<a name='L2615'></a><a href='#L2615'>2615</a> +<a name='L2616'></a><a href='#L2616'>2616</a> +<a name='L2617'></a><a href='#L2617'>2617</a> +<a name='L2618'></a><a href='#L2618'>2618</a> +<a name='L2619'></a><a href='#L2619'>2619</a> +<a name='L2620'></a><a href='#L2620'>2620</a> +<a name='L2621'></a><a href='#L2621'>2621</a> +<a name='L2622'></a><a href='#L2622'>2622</a> +<a name='L2623'></a><a href='#L2623'>2623</a> +<a name='L2624'></a><a href='#L2624'>2624</a> +<a name='L2625'></a><a href='#L2625'>2625</a> +<a name='L2626'></a><a href='#L2626'>2626</a> +<a name='L2627'></a><a href='#L2627'>2627</a> +<a name='L2628'></a><a href='#L2628'>2628</a> +<a name='L2629'></a><a href='#L2629'>2629</a> +<a name='L2630'></a><a href='#L2630'>2630</a> +<a name='L2631'></a><a href='#L2631'>2631</a> +<a name='L2632'></a><a href='#L2632'>2632</a> +<a name='L2633'></a><a href='#L2633'>2633</a> +<a name='L2634'></a><a href='#L2634'>2634</a> +<a name='L2635'></a><a href='#L2635'>2635</a> +<a name='L2636'></a><a href='#L2636'>2636</a> +<a name='L2637'></a><a href='#L2637'>2637</a> +<a name='L2638'></a><a href='#L2638'>2638</a> +<a name='L2639'></a><a href='#L2639'>2639</a> +<a name='L2640'></a><a href='#L2640'>2640</a> +<a name='L2641'></a><a href='#L2641'>2641</a> +<a name='L2642'></a><a href='#L2642'>2642</a> +<a name='L2643'></a><a href='#L2643'>2643</a> +<a name='L2644'></a><a href='#L2644'>2644</a> +<a name='L2645'></a><a href='#L2645'>2645</a> +<a name='L2646'></a><a href='#L2646'>2646</a> +<a name='L2647'></a><a href='#L2647'>2647</a> +<a name='L2648'></a><a href='#L2648'>2648</a> +<a name='L2649'></a><a href='#L2649'>2649</a> +<a name='L2650'></a><a href='#L2650'>2650</a> +<a name='L2651'></a><a href='#L2651'>2651</a> +<a name='L2652'></a><a href='#L2652'>2652</a> +<a name='L2653'></a><a href='#L2653'>2653</a> +<a name='L2654'></a><a href='#L2654'>2654</a> +<a name='L2655'></a><a href='#L2655'>2655</a> +<a name='L2656'></a><a href='#L2656'>2656</a> +<a name='L2657'></a><a href='#L2657'>2657</a> +<a name='L2658'></a><a href='#L2658'>2658</a> +<a name='L2659'></a><a href='#L2659'>2659</a> +<a name='L2660'></a><a href='#L2660'>2660</a> +<a name='L2661'></a><a href='#L2661'>2661</a> +<a name='L2662'></a><a href='#L2662'>2662</a> +<a name='L2663'></a><a href='#L2663'>2663</a> +<a name='L2664'></a><a href='#L2664'>2664</a> +<a name='L2665'></a><a href='#L2665'>2665</a> +<a name='L2666'></a><a href='#L2666'>2666</a> +<a name='L2667'></a><a href='#L2667'>2667</a> +<a name='L2668'></a><a href='#L2668'>2668</a> +<a name='L2669'></a><a href='#L2669'>2669</a> +<a name='L2670'></a><a href='#L2670'>2670</a> +<a name='L2671'></a><a href='#L2671'>2671</a> +<a name='L2672'></a><a href='#L2672'>2672</a> +<a name='L2673'></a><a href='#L2673'>2673</a> +<a name='L2674'></a><a href='#L2674'>2674</a> +<a name='L2675'></a><a href='#L2675'>2675</a> +<a name='L2676'></a><a href='#L2676'>2676</a> +<a name='L2677'></a><a href='#L2677'>2677</a> +<a name='L2678'></a><a href='#L2678'>2678</a> +<a name='L2679'></a><a href='#L2679'>2679</a> +<a name='L2680'></a><a href='#L2680'>2680</a> +<a name='L2681'></a><a href='#L2681'>2681</a> +<a name='L2682'></a><a href='#L2682'>2682</a> +<a name='L2683'></a><a href='#L2683'>2683</a> +<a name='L2684'></a><a href='#L2684'>2684</a> +<a name='L2685'></a><a href='#L2685'>2685</a> +<a name='L2686'></a><a href='#L2686'>2686</a> +<a name='L2687'></a><a href='#L2687'>2687</a> +<a name='L2688'></a><a href='#L2688'>2688</a> +<a name='L2689'></a><a href='#L2689'>2689</a> +<a name='L2690'></a><a href='#L2690'>2690</a> +<a name='L2691'></a><a href='#L2691'>2691</a> +<a name='L2692'></a><a href='#L2692'>2692</a> +<a name='L2693'></a><a href='#L2693'>2693</a> +<a name='L2694'></a><a href='#L2694'>2694</a> +<a name='L2695'></a><a href='#L2695'>2695</a> +<a name='L2696'></a><a href='#L2696'>2696</a> +<a name='L2697'></a><a href='#L2697'>2697</a> +<a name='L2698'></a><a href='#L2698'>2698</a> +<a name='L2699'></a><a href='#L2699'>2699</a> +<a name='L2700'></a><a href='#L2700'>2700</a> +<a name='L2701'></a><a href='#L2701'>2701</a> +<a name='L2702'></a><a href='#L2702'>2702</a> +<a name='L2703'></a><a href='#L2703'>2703</a> +<a name='L2704'></a><a href='#L2704'>2704</a> +<a name='L2705'></a><a href='#L2705'>2705</a> +<a name='L2706'></a><a href='#L2706'>2706</a> +<a name='L2707'></a><a href='#L2707'>2707</a> +<a name='L2708'></a><a href='#L2708'>2708</a> +<a name='L2709'></a><a href='#L2709'>2709</a> +<a name='L2710'></a><a href='#L2710'>2710</a> +<a name='L2711'></a><a href='#L2711'>2711</a> +<a name='L2712'></a><a href='#L2712'>2712</a> +<a name='L2713'></a><a href='#L2713'>2713</a> +<a name='L2714'></a><a href='#L2714'>2714</a> +<a name='L2715'></a><a href='#L2715'>2715</a> +<a name='L2716'></a><a href='#L2716'>2716</a> +<a name='L2717'></a><a href='#L2717'>2717</a> +<a name='L2718'></a><a href='#L2718'>2718</a> +<a name='L2719'></a><a href='#L2719'>2719</a> +<a name='L2720'></a><a href='#L2720'>2720</a> +<a name='L2721'></a><a href='#L2721'>2721</a> +<a name='L2722'></a><a href='#L2722'>2722</a> +<a name='L2723'></a><a href='#L2723'>2723</a> +<a name='L2724'></a><a href='#L2724'>2724</a> +<a name='L2725'></a><a href='#L2725'>2725</a> +<a name='L2726'></a><a href='#L2726'>2726</a> +<a name='L2727'></a><a href='#L2727'>2727</a> +<a name='L2728'></a><a href='#L2728'>2728</a> +<a name='L2729'></a><a href='#L2729'>2729</a> +<a name='L2730'></a><a href='#L2730'>2730</a> +<a name='L2731'></a><a href='#L2731'>2731</a> +<a name='L2732'></a><a href='#L2732'>2732</a> +<a name='L2733'></a><a href='#L2733'>2733</a> +<a name='L2734'></a><a href='#L2734'>2734</a> +<a name='L2735'></a><a href='#L2735'>2735</a> +<a name='L2736'></a><a href='#L2736'>2736</a> +<a name='L2737'></a><a href='#L2737'>2737</a> +<a name='L2738'></a><a href='#L2738'>2738</a> +<a name='L2739'></a><a href='#L2739'>2739</a> +<a name='L2740'></a><a href='#L2740'>2740</a> +<a name='L2741'></a><a href='#L2741'>2741</a> +<a name='L2742'></a><a href='#L2742'>2742</a> +<a name='L2743'></a><a href='#L2743'>2743</a> +<a name='L2744'></a><a href='#L2744'>2744</a> +<a name='L2745'></a><a href='#L2745'>2745</a> +<a name='L2746'></a><a href='#L2746'>2746</a> +<a name='L2747'></a><a href='#L2747'>2747</a> +<a name='L2748'></a><a href='#L2748'>2748</a> +<a name='L2749'></a><a href='#L2749'>2749</a> +<a name='L2750'></a><a href='#L2750'>2750</a> +<a name='L2751'></a><a href='#L2751'>2751</a> +<a name='L2752'></a><a href='#L2752'>2752</a> +<a name='L2753'></a><a href='#L2753'>2753</a> +<a name='L2754'></a><a href='#L2754'>2754</a> +<a name='L2755'></a><a href='#L2755'>2755</a> +<a name='L2756'></a><a href='#L2756'>2756</a> +<a name='L2757'></a><a href='#L2757'>2757</a> +<a name='L2758'></a><a href='#L2758'>2758</a> +<a name='L2759'></a><a href='#L2759'>2759</a> +<a name='L2760'></a><a href='#L2760'>2760</a> +<a name='L2761'></a><a href='#L2761'>2761</a> +<a name='L2762'></a><a href='#L2762'>2762</a> +<a name='L2763'></a><a href='#L2763'>2763</a> +<a name='L2764'></a><a href='#L2764'>2764</a> +<a name='L2765'></a><a href='#L2765'>2765</a> +<a name='L2766'></a><a href='#L2766'>2766</a> +<a name='L2767'></a><a href='#L2767'>2767</a> +<a name='L2768'></a><a href='#L2768'>2768</a> +<a name='L2769'></a><a href='#L2769'>2769</a> +<a name='L2770'></a><a href='#L2770'>2770</a> +<a name='L2771'></a><a href='#L2771'>2771</a> +<a name='L2772'></a><a href='#L2772'>2772</a> +<a name='L2773'></a><a href='#L2773'>2773</a> +<a name='L2774'></a><a href='#L2774'>2774</a> +<a name='L2775'></a><a href='#L2775'>2775</a> +<a name='L2776'></a><a href='#L2776'>2776</a> +<a name='L2777'></a><a href='#L2777'>2777</a> +<a name='L2778'></a><a href='#L2778'>2778</a> +<a name='L2779'></a><a href='#L2779'>2779</a> +<a name='L2780'></a><a href='#L2780'>2780</a> +<a name='L2781'></a><a href='#L2781'>2781</a> +<a name='L2782'></a><a href='#L2782'>2782</a> +<a name='L2783'></a><a href='#L2783'>2783</a> +<a name='L2784'></a><a href='#L2784'>2784</a> +<a name='L2785'></a><a href='#L2785'>2785</a> +<a name='L2786'></a><a href='#L2786'>2786</a> +<a name='L2787'></a><a href='#L2787'>2787</a> +<a name='L2788'></a><a href='#L2788'>2788</a> +<a name='L2789'></a><a href='#L2789'>2789</a> +<a name='L2790'></a><a href='#L2790'>2790</a> +<a name='L2791'></a><a href='#L2791'>2791</a> +<a name='L2792'></a><a href='#L2792'>2792</a> +<a name='L2793'></a><a href='#L2793'>2793</a> +<a name='L2794'></a><a href='#L2794'>2794</a> +<a name='L2795'></a><a href='#L2795'>2795</a> +<a name='L2796'></a><a href='#L2796'>2796</a> +<a name='L2797'></a><a href='#L2797'>2797</a> +<a name='L2798'></a><a href='#L2798'>2798</a> +<a name='L2799'></a><a href='#L2799'>2799</a> +<a name='L2800'></a><a href='#L2800'>2800</a> +<a name='L2801'></a><a href='#L2801'>2801</a> +<a name='L2802'></a><a href='#L2802'>2802</a> +<a name='L2803'></a><a href='#L2803'>2803</a> +<a name='L2804'></a><a href='#L2804'>2804</a> +<a name='L2805'></a><a href='#L2805'>2805</a> +<a name='L2806'></a><a href='#L2806'>2806</a> +<a name='L2807'></a><a href='#L2807'>2807</a> +<a name='L2808'></a><a href='#L2808'>2808</a> +<a name='L2809'></a><a href='#L2809'>2809</a> +<a name='L2810'></a><a href='#L2810'>2810</a> +<a name='L2811'></a><a href='#L2811'>2811</a> +<a name='L2812'></a><a href='#L2812'>2812</a> +<a name='L2813'></a><a href='#L2813'>2813</a> +<a name='L2814'></a><a href='#L2814'>2814</a> +<a name='L2815'></a><a href='#L2815'>2815</a> +<a name='L2816'></a><a href='#L2816'>2816</a> +<a name='L2817'></a><a href='#L2817'>2817</a> +<a name='L2818'></a><a href='#L2818'>2818</a> +<a name='L2819'></a><a href='#L2819'>2819</a> +<a name='L2820'></a><a href='#L2820'>2820</a> +<a name='L2821'></a><a href='#L2821'>2821</a> +<a name='L2822'></a><a href='#L2822'>2822</a> +<a name='L2823'></a><a href='#L2823'>2823</a> +<a name='L2824'></a><a href='#L2824'>2824</a> +<a name='L2825'></a><a href='#L2825'>2825</a> +<a name='L2826'></a><a href='#L2826'>2826</a> +<a name='L2827'></a><a href='#L2827'>2827</a> +<a name='L2828'></a><a href='#L2828'>2828</a> +<a name='L2829'></a><a href='#L2829'>2829</a> +<a name='L2830'></a><a href='#L2830'>2830</a> +<a name='L2831'></a><a href='#L2831'>2831</a> +<a name='L2832'></a><a href='#L2832'>2832</a> +<a name='L2833'></a><a href='#L2833'>2833</a> +<a name='L2834'></a><a href='#L2834'>2834</a> +<a name='L2835'></a><a href='#L2835'>2835</a> +<a name='L2836'></a><a href='#L2836'>2836</a> +<a name='L2837'></a><a href='#L2837'>2837</a> +<a name='L2838'></a><a href='#L2838'>2838</a> +<a name='L2839'></a><a href='#L2839'>2839</a> +<a name='L2840'></a><a href='#L2840'>2840</a> +<a name='L2841'></a><a href='#L2841'>2841</a> +<a name='L2842'></a><a href='#L2842'>2842</a> +<a name='L2843'></a><a href='#L2843'>2843</a> +<a name='L2844'></a><a href='#L2844'>2844</a> +<a name='L2845'></a><a href='#L2845'>2845</a> +<a name='L2846'></a><a href='#L2846'>2846</a> +<a name='L2847'></a><a href='#L2847'>2847</a> +<a name='L2848'></a><a href='#L2848'>2848</a> +<a name='L2849'></a><a href='#L2849'>2849</a> +<a name='L2850'></a><a href='#L2850'>2850</a> +<a name='L2851'></a><a href='#L2851'>2851</a> +<a name='L2852'></a><a href='#L2852'>2852</a> +<a name='L2853'></a><a href='#L2853'>2853</a> +<a name='L2854'></a><a href='#L2854'>2854</a> +<a name='L2855'></a><a href='#L2855'>2855</a> +<a name='L2856'></a><a href='#L2856'>2856</a> +<a name='L2857'></a><a href='#L2857'>2857</a> +<a name='L2858'></a><a href='#L2858'>2858</a> +<a name='L2859'></a><a href='#L2859'>2859</a> +<a name='L2860'></a><a href='#L2860'>2860</a> +<a name='L2861'></a><a href='#L2861'>2861</a> +<a name='L2862'></a><a href='#L2862'>2862</a> +<a name='L2863'></a><a href='#L2863'>2863</a> +<a name='L2864'></a><a href='#L2864'>2864</a> +<a name='L2865'></a><a href='#L2865'>2865</a> +<a name='L2866'></a><a href='#L2866'>2866</a> +<a name='L2867'></a><a href='#L2867'>2867</a> +<a name='L2868'></a><a href='#L2868'>2868</a> +<a name='L2869'></a><a href='#L2869'>2869</a> +<a name='L2870'></a><a href='#L2870'>2870</a> +<a name='L2871'></a><a href='#L2871'>2871</a> +<a name='L2872'></a><a href='#L2872'>2872</a> +<a name='L2873'></a><a href='#L2873'>2873</a> +<a name='L2874'></a><a href='#L2874'>2874</a> +<a name='L2875'></a><a href='#L2875'>2875</a> +<a name='L2876'></a><a href='#L2876'>2876</a> +<a name='L2877'></a><a href='#L2877'>2877</a> +<a name='L2878'></a><a href='#L2878'>2878</a> +<a name='L2879'></a><a href='#L2879'>2879</a> +<a name='L2880'></a><a href='#L2880'>2880</a> +<a name='L2881'></a><a href='#L2881'>2881</a> +<a name='L2882'></a><a href='#L2882'>2882</a> +<a name='L2883'></a><a href='#L2883'>2883</a> +<a name='L2884'></a><a href='#L2884'>2884</a> +<a name='L2885'></a><a href='#L2885'>2885</a> +<a name='L2886'></a><a href='#L2886'>2886</a> +<a name='L2887'></a><a href='#L2887'>2887</a> +<a name='L2888'></a><a href='#L2888'>2888</a> +<a name='L2889'></a><a href='#L2889'>2889</a> +<a name='L2890'></a><a href='#L2890'>2890</a> +<a name='L2891'></a><a href='#L2891'>2891</a> +<a name='L2892'></a><a href='#L2892'>2892</a> +<a name='L2893'></a><a href='#L2893'>2893</a> +<a name='L2894'></a><a href='#L2894'>2894</a> +<a name='L2895'></a><a href='#L2895'>2895</a> +<a name='L2896'></a><a href='#L2896'>2896</a> +<a name='L2897'></a><a href='#L2897'>2897</a> +<a name='L2898'></a><a href='#L2898'>2898</a> +<a name='L2899'></a><a href='#L2899'>2899</a> +<a name='L2900'></a><a href='#L2900'>2900</a> +<a name='L2901'></a><a href='#L2901'>2901</a> +<a name='L2902'></a><a href='#L2902'>2902</a> +<a name='L2903'></a><a href='#L2903'>2903</a> +<a name='L2904'></a><a href='#L2904'>2904</a> +<a name='L2905'></a><a href='#L2905'>2905</a> +<a name='L2906'></a><a href='#L2906'>2906</a> +<a name='L2907'></a><a href='#L2907'>2907</a> +<a name='L2908'></a><a href='#L2908'>2908</a> +<a name='L2909'></a><a href='#L2909'>2909</a> +<a name='L2910'></a><a href='#L2910'>2910</a> +<a name='L2911'></a><a href='#L2911'>2911</a> +<a name='L2912'></a><a href='#L2912'>2912</a> +<a name='L2913'></a><a href='#L2913'>2913</a> +<a name='L2914'></a><a href='#L2914'>2914</a> +<a name='L2915'></a><a href='#L2915'>2915</a> +<a name='L2916'></a><a href='#L2916'>2916</a> +<a name='L2917'></a><a href='#L2917'>2917</a> +<a name='L2918'></a><a href='#L2918'>2918</a> +<a name='L2919'></a><a href='#L2919'>2919</a> +<a name='L2920'></a><a href='#L2920'>2920</a> +<a name='L2921'></a><a href='#L2921'>2921</a> +<a name='L2922'></a><a href='#L2922'>2922</a> +<a name='L2923'></a><a href='#L2923'>2923</a> +<a name='L2924'></a><a href='#L2924'>2924</a> +<a name='L2925'></a><a href='#L2925'>2925</a> +<a name='L2926'></a><a href='#L2926'>2926</a> +<a name='L2927'></a><a href='#L2927'>2927</a> +<a name='L2928'></a><a href='#L2928'>2928</a> +<a name='L2929'></a><a href='#L2929'>2929</a> +<a name='L2930'></a><a href='#L2930'>2930</a> +<a name='L2931'></a><a href='#L2931'>2931</a> +<a name='L2932'></a><a href='#L2932'>2932</a> +<a name='L2933'></a><a href='#L2933'>2933</a> +<a name='L2934'></a><a href='#L2934'>2934</a> +<a name='L2935'></a><a href='#L2935'>2935</a> +<a name='L2936'></a><a href='#L2936'>2936</a> +<a name='L2937'></a><a href='#L2937'>2937</a> +<a name='L2938'></a><a href='#L2938'>2938</a> +<a name='L2939'></a><a href='#L2939'>2939</a> +<a name='L2940'></a><a href='#L2940'>2940</a> +<a name='L2941'></a><a href='#L2941'>2941</a> +<a name='L2942'></a><a href='#L2942'>2942</a> +<a name='L2943'></a><a href='#L2943'>2943</a> +<a name='L2944'></a><a href='#L2944'>2944</a> +<a name='L2945'></a><a href='#L2945'>2945</a> +<a name='L2946'></a><a href='#L2946'>2946</a> +<a name='L2947'></a><a href='#L2947'>2947</a> +<a name='L2948'></a><a href='#L2948'>2948</a> +<a name='L2949'></a><a href='#L2949'>2949</a> +<a name='L2950'></a><a href='#L2950'>2950</a> +<a name='L2951'></a><a href='#L2951'>2951</a> +<a name='L2952'></a><a href='#L2952'>2952</a> +<a name='L2953'></a><a href='#L2953'>2953</a> +<a name='L2954'></a><a href='#L2954'>2954</a> +<a name='L2955'></a><a href='#L2955'>2955</a> +<a name='L2956'></a><a href='#L2956'>2956</a> +<a name='L2957'></a><a href='#L2957'>2957</a> +<a name='L2958'></a><a href='#L2958'>2958</a> +<a name='L2959'></a><a href='#L2959'>2959</a> +<a name='L2960'></a><a href='#L2960'>2960</a> +<a name='L2961'></a><a href='#L2961'>2961</a> +<a name='L2962'></a><a href='#L2962'>2962</a> +<a name='L2963'></a><a href='#L2963'>2963</a> +<a name='L2964'></a><a href='#L2964'>2964</a> +<a name='L2965'></a><a href='#L2965'>2965</a> +<a name='L2966'></a><a href='#L2966'>2966</a> +<a name='L2967'></a><a href='#L2967'>2967</a> +<a name='L2968'></a><a href='#L2968'>2968</a> +<a name='L2969'></a><a href='#L2969'>2969</a> +<a name='L2970'></a><a href='#L2970'>2970</a> +<a name='L2971'></a><a href='#L2971'>2971</a> +<a name='L2972'></a><a href='#L2972'>2972</a> +<a name='L2973'></a><a href='#L2973'>2973</a> +<a name='L2974'></a><a href='#L2974'>2974</a> +<a name='L2975'></a><a href='#L2975'>2975</a> +<a name='L2976'></a><a href='#L2976'>2976</a> +<a name='L2977'></a><a href='#L2977'>2977</a> +<a name='L2978'></a><a href='#L2978'>2978</a> +<a name='L2979'></a><a href='#L2979'>2979</a> +<a name='L2980'></a><a href='#L2980'>2980</a> +<a name='L2981'></a><a href='#L2981'>2981</a> +<a name='L2982'></a><a href='#L2982'>2982</a> +<a name='L2983'></a><a href='#L2983'>2983</a> +<a name='L2984'></a><a href='#L2984'>2984</a> +<a name='L2985'></a><a href='#L2985'>2985</a> +<a name='L2986'></a><a href='#L2986'>2986</a> +<a name='L2987'></a><a href='#L2987'>2987</a> +<a name='L2988'></a><a href='#L2988'>2988</a> +<a name='L2989'></a><a href='#L2989'>2989</a> +<a name='L2990'></a><a href='#L2990'>2990</a> +<a name='L2991'></a><a href='#L2991'>2991</a> +<a name='L2992'></a><a href='#L2992'>2992</a> +<a name='L2993'></a><a href='#L2993'>2993</a> +<a name='L2994'></a><a href='#L2994'>2994</a> +<a name='L2995'></a><a href='#L2995'>2995</a> +<a name='L2996'></a><a href='#L2996'>2996</a> +<a name='L2997'></a><a href='#L2997'>2997</a> +<a name='L2998'></a><a href='#L2998'>2998</a> +<a name='L2999'></a><a href='#L2999'>2999</a> +<a name='L3000'></a><a href='#L3000'>3000</a> +<a name='L3001'></a><a href='#L3001'>3001</a> +<a name='L3002'></a><a href='#L3002'>3002</a> +<a name='L3003'></a><a href='#L3003'>3003</a> +<a name='L3004'></a><a href='#L3004'>3004</a> +<a name='L3005'></a><a href='#L3005'>3005</a> +<a name='L3006'></a><a href='#L3006'>3006</a> +<a name='L3007'></a><a href='#L3007'>3007</a> +<a name='L3008'></a><a href='#L3008'>3008</a> +<a name='L3009'></a><a href='#L3009'>3009</a> +<a name='L3010'></a><a href='#L3010'>3010</a> +<a name='L3011'></a><a href='#L3011'>3011</a> +<a name='L3012'></a><a href='#L3012'>3012</a> +<a name='L3013'></a><a href='#L3013'>3013</a> +<a name='L3014'></a><a href='#L3014'>3014</a> +<a name='L3015'></a><a href='#L3015'>3015</a> +<a name='L3016'></a><a href='#L3016'>3016</a> +<a name='L3017'></a><a href='#L3017'>3017</a> +<a name='L3018'></a><a href='#L3018'>3018</a> +<a name='L3019'></a><a href='#L3019'>3019</a> +<a name='L3020'></a><a href='#L3020'>3020</a> +<a name='L3021'></a><a href='#L3021'>3021</a> +<a name='L3022'></a><a href='#L3022'>3022</a> +<a name='L3023'></a><a href='#L3023'>3023</a> +<a name='L3024'></a><a href='#L3024'>3024</a> +<a name='L3025'></a><a href='#L3025'>3025</a> +<a name='L3026'></a><a href='#L3026'>3026</a> +<a name='L3027'></a><a href='#L3027'>3027</a> +<a name='L3028'></a><a href='#L3028'>3028</a> +<a name='L3029'></a><a href='#L3029'>3029</a> +<a name='L3030'></a><a href='#L3030'>3030</a> +<a name='L3031'></a><a href='#L3031'>3031</a> +<a name='L3032'></a><a href='#L3032'>3032</a> +<a name='L3033'></a><a href='#L3033'>3033</a> +<a name='L3034'></a><a href='#L3034'>3034</a> +<a name='L3035'></a><a href='#L3035'>3035</a> +<a name='L3036'></a><a href='#L3036'>3036</a> +<a name='L3037'></a><a href='#L3037'>3037</a> +<a name='L3038'></a><a href='#L3038'>3038</a> +<a name='L3039'></a><a href='#L3039'>3039</a> +<a name='L3040'></a><a href='#L3040'>3040</a> +<a name='L3041'></a><a href='#L3041'>3041</a> +<a name='L3042'></a><a href='#L3042'>3042</a> +<a name='L3043'></a><a href='#L3043'>3043</a> +<a name='L3044'></a><a href='#L3044'>3044</a> +<a name='L3045'></a><a href='#L3045'>3045</a> +<a name='L3046'></a><a href='#L3046'>3046</a> +<a name='L3047'></a><a href='#L3047'>3047</a> +<a name='L3048'></a><a href='#L3048'>3048</a> +<a name='L3049'></a><a href='#L3049'>3049</a> +<a name='L3050'></a><a href='#L3050'>3050</a> +<a name='L3051'></a><a href='#L3051'>3051</a> +<a name='L3052'></a><a href='#L3052'>3052</a> +<a name='L3053'></a><a href='#L3053'>3053</a> +<a name='L3054'></a><a href='#L3054'>3054</a> +<a name='L3055'></a><a href='#L3055'>3055</a> +<a name='L3056'></a><a href='#L3056'>3056</a> +<a name='L3057'></a><a href='#L3057'>3057</a> +<a name='L3058'></a><a href='#L3058'>3058</a> +<a name='L3059'></a><a href='#L3059'>3059</a> +<a name='L3060'></a><a href='#L3060'>3060</a> +<a name='L3061'></a><a href='#L3061'>3061</a> +<a name='L3062'></a><a href='#L3062'>3062</a> +<a name='L3063'></a><a href='#L3063'>3063</a> +<a name='L3064'></a><a href='#L3064'>3064</a> +<a name='L3065'></a><a href='#L3065'>3065</a> +<a name='L3066'></a><a href='#L3066'>3066</a> +<a name='L3067'></a><a href='#L3067'>3067</a> +<a name='L3068'></a><a href='#L3068'>3068</a> +<a name='L3069'></a><a href='#L3069'>3069</a> +<a name='L3070'></a><a href='#L3070'>3070</a> +<a name='L3071'></a><a href='#L3071'>3071</a> +<a name='L3072'></a><a href='#L3072'>3072</a> +<a name='L3073'></a><a href='#L3073'>3073</a> +<a name='L3074'></a><a href='#L3074'>3074</a> +<a name='L3075'></a><a href='#L3075'>3075</a> +<a name='L3076'></a><a href='#L3076'>3076</a> +<a name='L3077'></a><a href='#L3077'>3077</a> +<a name='L3078'></a><a href='#L3078'>3078</a> +<a name='L3079'></a><a href='#L3079'>3079</a> +<a name='L3080'></a><a href='#L3080'>3080</a> +<a name='L3081'></a><a href='#L3081'>3081</a> +<a name='L3082'></a><a href='#L3082'>3082</a> +<a name='L3083'></a><a href='#L3083'>3083</a> +<a name='L3084'></a><a href='#L3084'>3084</a> +<a name='L3085'></a><a href='#L3085'>3085</a> +<a name='L3086'></a><a href='#L3086'>3086</a> +<a name='L3087'></a><a href='#L3087'>3087</a> +<a name='L3088'></a><a href='#L3088'>3088</a> +<a name='L3089'></a><a href='#L3089'>3089</a> +<a name='L3090'></a><a href='#L3090'>3090</a> +<a name='L3091'></a><a href='#L3091'>3091</a> +<a name='L3092'></a><a href='#L3092'>3092</a> +<a name='L3093'></a><a href='#L3093'>3093</a> +<a name='L3094'></a><a href='#L3094'>3094</a> +<a name='L3095'></a><a href='#L3095'>3095</a> +<a name='L3096'></a><a href='#L3096'>3096</a> +<a name='L3097'></a><a href='#L3097'>3097</a> +<a name='L3098'></a><a href='#L3098'>3098</a> +<a name='L3099'></a><a href='#L3099'>3099</a> +<a name='L3100'></a><a href='#L3100'>3100</a> +<a name='L3101'></a><a href='#L3101'>3101</a> +<a name='L3102'></a><a href='#L3102'>3102</a> +<a name='L3103'></a><a href='#L3103'>3103</a> +<a name='L3104'></a><a href='#L3104'>3104</a> +<a name='L3105'></a><a href='#L3105'>3105</a> +<a name='L3106'></a><a href='#L3106'>3106</a> +<a name='L3107'></a><a href='#L3107'>3107</a> +<a name='L3108'></a><a href='#L3108'>3108</a> +<a name='L3109'></a><a href='#L3109'>3109</a> +<a name='L3110'></a><a href='#L3110'>3110</a> +<a name='L3111'></a><a href='#L3111'>3111</a> +<a name='L3112'></a><a href='#L3112'>3112</a> +<a name='L3113'></a><a href='#L3113'>3113</a> +<a name='L3114'></a><a href='#L3114'>3114</a> +<a name='L3115'></a><a href='#L3115'>3115</a> +<a name='L3116'></a><a href='#L3116'>3116</a> +<a name='L3117'></a><a href='#L3117'>3117</a> +<a name='L3118'></a><a href='#L3118'>3118</a> +<a name='L3119'></a><a href='#L3119'>3119</a> +<a name='L3120'></a><a href='#L3120'>3120</a> +<a name='L3121'></a><a href='#L3121'>3121</a> +<a name='L3122'></a><a href='#L3122'>3122</a> +<a name='L3123'></a><a href='#L3123'>3123</a> +<a name='L3124'></a><a href='#L3124'>3124</a> +<a name='L3125'></a><a href='#L3125'>3125</a> +<a name='L3126'></a><a href='#L3126'>3126</a> +<a name='L3127'></a><a href='#L3127'>3127</a> +<a name='L3128'></a><a href='#L3128'>3128</a> +<a name='L3129'></a><a href='#L3129'>3129</a> +<a name='L3130'></a><a href='#L3130'>3130</a> +<a name='L3131'></a><a href='#L3131'>3131</a> +<a name='L3132'></a><a href='#L3132'>3132</a> +<a name='L3133'></a><a href='#L3133'>3133</a> +<a name='L3134'></a><a href='#L3134'>3134</a> +<a name='L3135'></a><a href='#L3135'>3135</a> +<a name='L3136'></a><a href='#L3136'>3136</a> +<a name='L3137'></a><a href='#L3137'>3137</a> +<a name='L3138'></a><a href='#L3138'>3138</a> +<a name='L3139'></a><a href='#L3139'>3139</a> +<a name='L3140'></a><a href='#L3140'>3140</a> +<a name='L3141'></a><a href='#L3141'>3141</a> +<a name='L3142'></a><a href='#L3142'>3142</a> +<a name='L3143'></a><a href='#L3143'>3143</a> +<a name='L3144'></a><a href='#L3144'>3144</a> +<a name='L3145'></a><a href='#L3145'>3145</a> +<a name='L3146'></a><a href='#L3146'>3146</a> +<a name='L3147'></a><a href='#L3147'>3147</a> +<a name='L3148'></a><a href='#L3148'>3148</a> +<a name='L3149'></a><a href='#L3149'>3149</a> +<a name='L3150'></a><a href='#L3150'>3150</a> +<a name='L3151'></a><a href='#L3151'>3151</a> +<a name='L3152'></a><a href='#L3152'>3152</a> +<a name='L3153'></a><a href='#L3153'>3153</a> +<a name='L3154'></a><a href='#L3154'>3154</a> +<a name='L3155'></a><a href='#L3155'>3155</a> +<a name='L3156'></a><a href='#L3156'>3156</a> +<a name='L3157'></a><a href='#L3157'>3157</a> +<a name='L3158'></a><a href='#L3158'>3158</a> +<a name='L3159'></a><a href='#L3159'>3159</a> +<a name='L3160'></a><a href='#L3160'>3160</a> +<a name='L3161'></a><a href='#L3161'>3161</a> +<a name='L3162'></a><a href='#L3162'>3162</a> +<a name='L3163'></a><a href='#L3163'>3163</a> +<a name='L3164'></a><a href='#L3164'>3164</a> +<a name='L3165'></a><a href='#L3165'>3165</a> +<a name='L3166'></a><a href='#L3166'>3166</a> +<a name='L3167'></a><a href='#L3167'>3167</a> +<a name='L3168'></a><a href='#L3168'>3168</a> +<a name='L3169'></a><a href='#L3169'>3169</a> +<a name='L3170'></a><a href='#L3170'>3170</a> +<a name='L3171'></a><a href='#L3171'>3171</a> +<a name='L3172'></a><a href='#L3172'>3172</a> +<a name='L3173'></a><a href='#L3173'>3173</a> +<a name='L3174'></a><a href='#L3174'>3174</a> +<a name='L3175'></a><a href='#L3175'>3175</a> +<a name='L3176'></a><a href='#L3176'>3176</a> +<a name='L3177'></a><a href='#L3177'>3177</a> +<a name='L3178'></a><a href='#L3178'>3178</a> +<a name='L3179'></a><a href='#L3179'>3179</a> +<a name='L3180'></a><a href='#L3180'>3180</a> +<a name='L3181'></a><a href='#L3181'>3181</a> +<a name='L3182'></a><a href='#L3182'>3182</a> +<a name='L3183'></a><a href='#L3183'>3183</a> +<a name='L3184'></a><a href='#L3184'>3184</a> +<a name='L3185'></a><a href='#L3185'>3185</a> +<a name='L3186'></a><a href='#L3186'>3186</a> +<a name='L3187'></a><a href='#L3187'>3187</a> +<a name='L3188'></a><a href='#L3188'>3188</a> +<a name='L3189'></a><a href='#L3189'>3189</a> +<a name='L3190'></a><a href='#L3190'>3190</a> +<a name='L3191'></a><a href='#L3191'>3191</a> +<a name='L3192'></a><a href='#L3192'>3192</a> +<a name='L3193'></a><a href='#L3193'>3193</a> +<a name='L3194'></a><a href='#L3194'>3194</a> +<a name='L3195'></a><a href='#L3195'>3195</a> +<a name='L3196'></a><a href='#L3196'>3196</a> +<a name='L3197'></a><a href='#L3197'>3197</a> +<a name='L3198'></a><a href='#L3198'>3198</a> +<a name='L3199'></a><a href='#L3199'>3199</a> +<a name='L3200'></a><a href='#L3200'>3200</a> +<a name='L3201'></a><a href='#L3201'>3201</a> +<a name='L3202'></a><a href='#L3202'>3202</a> +<a name='L3203'></a><a href='#L3203'>3203</a> +<a name='L3204'></a><a href='#L3204'>3204</a> +<a name='L3205'></a><a href='#L3205'>3205</a> +<a name='L3206'></a><a href='#L3206'>3206</a> +<a name='L3207'></a><a href='#L3207'>3207</a> +<a name='L3208'></a><a href='#L3208'>3208</a> +<a name='L3209'></a><a href='#L3209'>3209</a> +<a name='L3210'></a><a href='#L3210'>3210</a> +<a name='L3211'></a><a href='#L3211'>3211</a> +<a name='L3212'></a><a href='#L3212'>3212</a> +<a name='L3213'></a><a href='#L3213'>3213</a> +<a name='L3214'></a><a href='#L3214'>3214</a> +<a name='L3215'></a><a href='#L3215'>3215</a> +<a name='L3216'></a><a href='#L3216'>3216</a> +<a name='L3217'></a><a href='#L3217'>3217</a> +<a name='L3218'></a><a href='#L3218'>3218</a> +<a name='L3219'></a><a href='#L3219'>3219</a> +<a name='L3220'></a><a href='#L3220'>3220</a> +<a name='L3221'></a><a href='#L3221'>3221</a> +<a name='L3222'></a><a href='#L3222'>3222</a> +<a name='L3223'></a><a href='#L3223'>3223</a> +<a name='L3224'></a><a href='#L3224'>3224</a> +<a name='L3225'></a><a href='#L3225'>3225</a> +<a name='L3226'></a><a href='#L3226'>3226</a> +<a name='L3227'></a><a href='#L3227'>3227</a> +<a name='L3228'></a><a href='#L3228'>3228</a> +<a name='L3229'></a><a href='#L3229'>3229</a> +<a name='L3230'></a><a href='#L3230'>3230</a> +<a name='L3231'></a><a href='#L3231'>3231</a> +<a name='L3232'></a><a href='#L3232'>3232</a> +<a name='L3233'></a><a href='#L3233'>3233</a> +<a name='L3234'></a><a href='#L3234'>3234</a> +<a name='L3235'></a><a href='#L3235'>3235</a> +<a name='L3236'></a><a href='#L3236'>3236</a> +<a name='L3237'></a><a href='#L3237'>3237</a> +<a name='L3238'></a><a href='#L3238'>3238</a> +<a name='L3239'></a><a href='#L3239'>3239</a> +<a name='L3240'></a><a href='#L3240'>3240</a> +<a name='L3241'></a><a href='#L3241'>3241</a> +<a name='L3242'></a><a href='#L3242'>3242</a> +<a name='L3243'></a><a href='#L3243'>3243</a> +<a name='L3244'></a><a href='#L3244'>3244</a> +<a name='L3245'></a><a href='#L3245'>3245</a> +<a name='L3246'></a><a href='#L3246'>3246</a> +<a name='L3247'></a><a href='#L3247'>3247</a> +<a name='L3248'></a><a href='#L3248'>3248</a> +<a name='L3249'></a><a href='#L3249'>3249</a> +<a name='L3250'></a><a href='#L3250'>3250</a> +<a name='L3251'></a><a href='#L3251'>3251</a> +<a name='L3252'></a><a href='#L3252'>3252</a> +<a name='L3253'></a><a href='#L3253'>3253</a> +<a name='L3254'></a><a href='#L3254'>3254</a> +<a name='L3255'></a><a href='#L3255'>3255</a> +<a name='L3256'></a><a href='#L3256'>3256</a> +<a name='L3257'></a><a href='#L3257'>3257</a> +<a name='L3258'></a><a href='#L3258'>3258</a> +<a name='L3259'></a><a href='#L3259'>3259</a> +<a name='L3260'></a><a href='#L3260'>3260</a> +<a name='L3261'></a><a href='#L3261'>3261</a> +<a name='L3262'></a><a href='#L3262'>3262</a> +<a name='L3263'></a><a href='#L3263'>3263</a> +<a name='L3264'></a><a href='#L3264'>3264</a> +<a name='L3265'></a><a href='#L3265'>3265</a> +<a name='L3266'></a><a href='#L3266'>3266</a> +<a name='L3267'></a><a href='#L3267'>3267</a> +<a name='L3268'></a><a href='#L3268'>3268</a> +<a name='L3269'></a><a href='#L3269'>3269</a> +<a name='L3270'></a><a href='#L3270'>3270</a> +<a name='L3271'></a><a href='#L3271'>3271</a> +<a name='L3272'></a><a href='#L3272'>3272</a> +<a name='L3273'></a><a href='#L3273'>3273</a> +<a name='L3274'></a><a href='#L3274'>3274</a> +<a name='L3275'></a><a href='#L3275'>3275</a> +<a name='L3276'></a><a href='#L3276'>3276</a> +<a name='L3277'></a><a href='#L3277'>3277</a> +<a name='L3278'></a><a href='#L3278'>3278</a> +<a name='L3279'></a><a href='#L3279'>3279</a> +<a name='L3280'></a><a href='#L3280'>3280</a> +<a name='L3281'></a><a href='#L3281'>3281</a> +<a name='L3282'></a><a href='#L3282'>3282</a> +<a name='L3283'></a><a href='#L3283'>3283</a> +<a name='L3284'></a><a href='#L3284'>3284</a> +<a name='L3285'></a><a href='#L3285'>3285</a> +<a name='L3286'></a><a href='#L3286'>3286</a> +<a name='L3287'></a><a href='#L3287'>3287</a> +<a name='L3288'></a><a href='#L3288'>3288</a> +<a name='L3289'></a><a href='#L3289'>3289</a> +<a name='L3290'></a><a href='#L3290'>3290</a> +<a name='L3291'></a><a href='#L3291'>3291</a> +<a name='L3292'></a><a href='#L3292'>3292</a> +<a name='L3293'></a><a href='#L3293'>3293</a> +<a name='L3294'></a><a href='#L3294'>3294</a> +<a name='L3295'></a><a href='#L3295'>3295</a> +<a name='L3296'></a><a href='#L3296'>3296</a> +<a name='L3297'></a><a href='#L3297'>3297</a> +<a name='L3298'></a><a href='#L3298'>3298</a> +<a name='L3299'></a><a href='#L3299'>3299</a> +<a name='L3300'></a><a href='#L3300'>3300</a> +<a name='L3301'></a><a href='#L3301'>3301</a> +<a name='L3302'></a><a href='#L3302'>3302</a> +<a name='L3303'></a><a href='#L3303'>3303</a> +<a name='L3304'></a><a href='#L3304'>3304</a> +<a name='L3305'></a><a href='#L3305'>3305</a> +<a name='L3306'></a><a href='#L3306'>3306</a> +<a name='L3307'></a><a href='#L3307'>3307</a> +<a name='L3308'></a><a href='#L3308'>3308</a> +<a name='L3309'></a><a href='#L3309'>3309</a> +<a name='L3310'></a><a href='#L3310'>3310</a> +<a name='L3311'></a><a href='#L3311'>3311</a> +<a name='L3312'></a><a href='#L3312'>3312</a> +<a name='L3313'></a><a href='#L3313'>3313</a> +<a name='L3314'></a><a href='#L3314'>3314</a> +<a name='L3315'></a><a href='#L3315'>3315</a> +<a name='L3316'></a><a href='#L3316'>3316</a> +<a name='L3317'></a><a href='#L3317'>3317</a> +<a name='L3318'></a><a href='#L3318'>3318</a> +<a name='L3319'></a><a href='#L3319'>3319</a> +<a name='L3320'></a><a href='#L3320'>3320</a> +<a name='L3321'></a><a href='#L3321'>3321</a> +<a name='L3322'></a><a href='#L3322'>3322</a> +<a name='L3323'></a><a href='#L3323'>3323</a> +<a name='L3324'></a><a href='#L3324'>3324</a> +<a name='L3325'></a><a href='#L3325'>3325</a> +<a name='L3326'></a><a href='#L3326'>3326</a> +<a name='L3327'></a><a href='#L3327'>3327</a> +<a name='L3328'></a><a href='#L3328'>3328</a> +<a name='L3329'></a><a href='#L3329'>3329</a> +<a name='L3330'></a><a href='#L3330'>3330</a> +<a name='L3331'></a><a href='#L3331'>3331</a> +<a name='L3332'></a><a href='#L3332'>3332</a> +<a name='L3333'></a><a href='#L3333'>3333</a> +<a name='L3334'></a><a href='#L3334'>3334</a> +<a name='L3335'></a><a href='#L3335'>3335</a> +<a name='L3336'></a><a href='#L3336'>3336</a> +<a name='L3337'></a><a href='#L3337'>3337</a> +<a name='L3338'></a><a href='#L3338'>3338</a> +<a name='L3339'></a><a href='#L3339'>3339</a> +<a name='L3340'></a><a href='#L3340'>3340</a> +<a name='L3341'></a><a href='#L3341'>3341</a> +<a name='L3342'></a><a href='#L3342'>3342</a> +<a name='L3343'></a><a href='#L3343'>3343</a> +<a name='L3344'></a><a href='#L3344'>3344</a> +<a name='L3345'></a><a href='#L3345'>3345</a> +<a name='L3346'></a><a href='#L3346'>3346</a> +<a name='L3347'></a><a href='#L3347'>3347</a> +<a name='L3348'></a><a href='#L3348'>3348</a> +<a name='L3349'></a><a href='#L3349'>3349</a> +<a name='L3350'></a><a href='#L3350'>3350</a> +<a name='L3351'></a><a href='#L3351'>3351</a> +<a name='L3352'></a><a href='#L3352'>3352</a> +<a name='L3353'></a><a href='#L3353'>3353</a> +<a name='L3354'></a><a href='#L3354'>3354</a> +<a name='L3355'></a><a href='#L3355'>3355</a> +<a name='L3356'></a><a href='#L3356'>3356</a> +<a name='L3357'></a><a href='#L3357'>3357</a> +<a name='L3358'></a><a href='#L3358'>3358</a> +<a name='L3359'></a><a href='#L3359'>3359</a> +<a name='L3360'></a><a href='#L3360'>3360</a> +<a name='L3361'></a><a href='#L3361'>3361</a> +<a name='L3362'></a><a href='#L3362'>3362</a> +<a name='L3363'></a><a href='#L3363'>3363</a> +<a name='L3364'></a><a href='#L3364'>3364</a> +<a name='L3365'></a><a href='#L3365'>3365</a> +<a name='L3366'></a><a href='#L3366'>3366</a> +<a name='L3367'></a><a href='#L3367'>3367</a> +<a name='L3368'></a><a href='#L3368'>3368</a> +<a name='L3369'></a><a href='#L3369'>3369</a> +<a name='L3370'></a><a href='#L3370'>3370</a> +<a name='L3371'></a><a href='#L3371'>3371</a> +<a name='L3372'></a><a href='#L3372'>3372</a> +<a name='L3373'></a><a href='#L3373'>3373</a> +<a name='L3374'></a><a href='#L3374'>3374</a> +<a name='L3375'></a><a href='#L3375'>3375</a> +<a name='L3376'></a><a href='#L3376'>3376</a> +<a name='L3377'></a><a href='#L3377'>3377</a> +<a name='L3378'></a><a href='#L3378'>3378</a> +<a name='L3379'></a><a href='#L3379'>3379</a> +<a name='L3380'></a><a href='#L3380'>3380</a> +<a name='L3381'></a><a href='#L3381'>3381</a> +<a name='L3382'></a><a href='#L3382'>3382</a> +<a name='L3383'></a><a href='#L3383'>3383</a> +<a name='L3384'></a><a href='#L3384'>3384</a> +<a name='L3385'></a><a href='#L3385'>3385</a> +<a name='L3386'></a><a href='#L3386'>3386</a> +<a name='L3387'></a><a href='#L3387'>3387</a> +<a name='L3388'></a><a href='#L3388'>3388</a> +<a name='L3389'></a><a href='#L3389'>3389</a> +<a name='L3390'></a><a href='#L3390'>3390</a> +<a name='L3391'></a><a href='#L3391'>3391</a> +<a name='L3392'></a><a href='#L3392'>3392</a> +<a name='L3393'></a><a href='#L3393'>3393</a> +<a name='L3394'></a><a href='#L3394'>3394</a> +<a name='L3395'></a><a href='#L3395'>3395</a> +<a name='L3396'></a><a href='#L3396'>3396</a> +<a name='L3397'></a><a href='#L3397'>3397</a> +<a name='L3398'></a><a href='#L3398'>3398</a> +<a name='L3399'></a><a href='#L3399'>3399</a> +<a name='L3400'></a><a href='#L3400'>3400</a> +<a name='L3401'></a><a href='#L3401'>3401</a> +<a name='L3402'></a><a href='#L3402'>3402</a> +<a name='L3403'></a><a href='#L3403'>3403</a> +<a name='L3404'></a><a href='#L3404'>3404</a> +<a name='L3405'></a><a href='#L3405'>3405</a> +<a name='L3406'></a><a href='#L3406'>3406</a> +<a name='L3407'></a><a href='#L3407'>3407</a> +<a name='L3408'></a><a href='#L3408'>3408</a> +<a name='L3409'></a><a href='#L3409'>3409</a> +<a name='L3410'></a><a href='#L3410'>3410</a> +<a name='L3411'></a><a href='#L3411'>3411</a> +<a name='L3412'></a><a href='#L3412'>3412</a> +<a name='L3413'></a><a href='#L3413'>3413</a> +<a name='L3414'></a><a href='#L3414'>3414</a> +<a name='L3415'></a><a href='#L3415'>3415</a> +<a name='L3416'></a><a href='#L3416'>3416</a> +<a name='L3417'></a><a href='#L3417'>3417</a> +<a name='L3418'></a><a href='#L3418'>3418</a> +<a name='L3419'></a><a href='#L3419'>3419</a> +<a name='L3420'></a><a href='#L3420'>3420</a> +<a name='L3421'></a><a href='#L3421'>3421</a> +<a name='L3422'></a><a href='#L3422'>3422</a> +<a name='L3423'></a><a href='#L3423'>3423</a> +<a name='L3424'></a><a href='#L3424'>3424</a> +<a name='L3425'></a><a href='#L3425'>3425</a> +<a name='L3426'></a><a href='#L3426'>3426</a> +<a name='L3427'></a><a href='#L3427'>3427</a> +<a name='L3428'></a><a href='#L3428'>3428</a> +<a name='L3429'></a><a href='#L3429'>3429</a> +<a name='L3430'></a><a href='#L3430'>3430</a> +<a name='L3431'></a><a href='#L3431'>3431</a> +<a name='L3432'></a><a href='#L3432'>3432</a> +<a name='L3433'></a><a href='#L3433'>3433</a> +<a name='L3434'></a><a href='#L3434'>3434</a> +<a name='L3435'></a><a href='#L3435'>3435</a> +<a name='L3436'></a><a href='#L3436'>3436</a> +<a name='L3437'></a><a href='#L3437'>3437</a> +<a name='L3438'></a><a href='#L3438'>3438</a> +<a name='L3439'></a><a href='#L3439'>3439</a> +<a name='L3440'></a><a href='#L3440'>3440</a> +<a name='L3441'></a><a href='#L3441'>3441</a> +<a name='L3442'></a><a href='#L3442'>3442</a> +<a name='L3443'></a><a href='#L3443'>3443</a> +<a name='L3444'></a><a href='#L3444'>3444</a> +<a name='L3445'></a><a href='#L3445'>3445</a> +<a name='L3446'></a><a href='#L3446'>3446</a> +<a name='L3447'></a><a href='#L3447'>3447</a> +<a name='L3448'></a><a href='#L3448'>3448</a> +<a name='L3449'></a><a href='#L3449'>3449</a> +<a name='L3450'></a><a href='#L3450'>3450</a> +<a name='L3451'></a><a href='#L3451'>3451</a> +<a name='L3452'></a><a href='#L3452'>3452</a> +<a name='L3453'></a><a href='#L3453'>3453</a> +<a name='L3454'></a><a href='#L3454'>3454</a> +<a name='L3455'></a><a href='#L3455'>3455</a> +<a name='L3456'></a><a href='#L3456'>3456</a> +<a name='L3457'></a><a href='#L3457'>3457</a> +<a name='L3458'></a><a href='#L3458'>3458</a> +<a name='L3459'></a><a href='#L3459'>3459</a> +<a name='L3460'></a><a href='#L3460'>3460</a> +<a name='L3461'></a><a href='#L3461'>3461</a> +<a name='L3462'></a><a href='#L3462'>3462</a> +<a name='L3463'></a><a href='#L3463'>3463</a> +<a name='L3464'></a><a href='#L3464'>3464</a> +<a name='L3465'></a><a href='#L3465'>3465</a> +<a name='L3466'></a><a href='#L3466'>3466</a> +<a name='L3467'></a><a href='#L3467'>3467</a> +<a name='L3468'></a><a href='#L3468'>3468</a> +<a name='L3469'></a><a href='#L3469'>3469</a> +<a name='L3470'></a><a href='#L3470'>3470</a> +<a name='L3471'></a><a href='#L3471'>3471</a> +<a name='L3472'></a><a href='#L3472'>3472</a> +<a name='L3473'></a><a href='#L3473'>3473</a> +<a name='L3474'></a><a href='#L3474'>3474</a> +<a name='L3475'></a><a href='#L3475'>3475</a> +<a name='L3476'></a><a href='#L3476'>3476</a> +<a name='L3477'></a><a href='#L3477'>3477</a> +<a name='L3478'></a><a href='#L3478'>3478</a> +<a name='L3479'></a><a href='#L3479'>3479</a> +<a name='L3480'></a><a href='#L3480'>3480</a> +<a name='L3481'></a><a href='#L3481'>3481</a> +<a name='L3482'></a><a href='#L3482'>3482</a> +<a name='L3483'></a><a href='#L3483'>3483</a> +<a name='L3484'></a><a href='#L3484'>3484</a> +<a name='L3485'></a><a href='#L3485'>3485</a> +<a name='L3486'></a><a href='#L3486'>3486</a> +<a name='L3487'></a><a href='#L3487'>3487</a> +<a name='L3488'></a><a href='#L3488'>3488</a> +<a name='L3489'></a><a href='#L3489'>3489</a> +<a name='L3490'></a><a href='#L3490'>3490</a> +<a name='L3491'></a><a href='#L3491'>3491</a> +<a name='L3492'></a><a href='#L3492'>3492</a> +<a name='L3493'></a><a href='#L3493'>3493</a> +<a name='L3494'></a><a href='#L3494'>3494</a> +<a name='L3495'></a><a href='#L3495'>3495</a> +<a name='L3496'></a><a href='#L3496'>3496</a> +<a name='L3497'></a><a href='#L3497'>3497</a> +<a name='L3498'></a><a href='#L3498'>3498</a> +<a name='L3499'></a><a href='#L3499'>3499</a> +<a name='L3500'></a><a href='#L3500'>3500</a> +<a name='L3501'></a><a href='#L3501'>3501</a> +<a name='L3502'></a><a href='#L3502'>3502</a> +<a name='L3503'></a><a href='#L3503'>3503</a> +<a name='L3504'></a><a href='#L3504'>3504</a> +<a name='L3505'></a><a href='#L3505'>3505</a> +<a name='L3506'></a><a href='#L3506'>3506</a> +<a name='L3507'></a><a href='#L3507'>3507</a> +<a name='L3508'></a><a href='#L3508'>3508</a> +<a name='L3509'></a><a href='#L3509'>3509</a> +<a name='L3510'></a><a href='#L3510'>3510</a> +<a name='L3511'></a><a href='#L3511'>3511</a> +<a name='L3512'></a><a href='#L3512'>3512</a> +<a name='L3513'></a><a href='#L3513'>3513</a> +<a name='L3514'></a><a href='#L3514'>3514</a> +<a name='L3515'></a><a href='#L3515'>3515</a> +<a name='L3516'></a><a href='#L3516'>3516</a> +<a name='L3517'></a><a href='#L3517'>3517</a> +<a name='L3518'></a><a href='#L3518'>3518</a> +<a name='L3519'></a><a href='#L3519'>3519</a> +<a name='L3520'></a><a href='#L3520'>3520</a> +<a name='L3521'></a><a href='#L3521'>3521</a> +<a name='L3522'></a><a href='#L3522'>3522</a> +<a name='L3523'></a><a href='#L3523'>3523</a> +<a name='L3524'></a><a href='#L3524'>3524</a> +<a name='L3525'></a><a href='#L3525'>3525</a> +<a name='L3526'></a><a href='#L3526'>3526</a> +<a name='L3527'></a><a href='#L3527'>3527</a> +<a name='L3528'></a><a href='#L3528'>3528</a> +<a name='L3529'></a><a href='#L3529'>3529</a> +<a name='L3530'></a><a href='#L3530'>3530</a> +<a name='L3531'></a><a href='#L3531'>3531</a> +<a name='L3532'></a><a href='#L3532'>3532</a> +<a name='L3533'></a><a href='#L3533'>3533</a> +<a name='L3534'></a><a href='#L3534'>3534</a> +<a name='L3535'></a><a href='#L3535'>3535</a> +<a name='L3536'></a><a href='#L3536'>3536</a> +<a name='L3537'></a><a href='#L3537'>3537</a> +<a name='L3538'></a><a href='#L3538'>3538</a> +<a name='L3539'></a><a href='#L3539'>3539</a> +<a name='L3540'></a><a href='#L3540'>3540</a> +<a name='L3541'></a><a href='#L3541'>3541</a> +<a name='L3542'></a><a href='#L3542'>3542</a> +<a name='L3543'></a><a href='#L3543'>3543</a> +<a name='L3544'></a><a href='#L3544'>3544</a> +<a name='L3545'></a><a href='#L3545'>3545</a> +<a name='L3546'></a><a href='#L3546'>3546</a> +<a name='L3547'></a><a href='#L3547'>3547</a> +<a name='L3548'></a><a href='#L3548'>3548</a> +<a name='L3549'></a><a href='#L3549'>3549</a> +<a name='L3550'></a><a href='#L3550'>3550</a> +<a name='L3551'></a><a href='#L3551'>3551</a> +<a name='L3552'></a><a href='#L3552'>3552</a> +<a name='L3553'></a><a href='#L3553'>3553</a> +<a name='L3554'></a><a href='#L3554'>3554</a> +<a name='L3555'></a><a href='#L3555'>3555</a> +<a name='L3556'></a><a href='#L3556'>3556</a> +<a name='L3557'></a><a href='#L3557'>3557</a> +<a name='L3558'></a><a href='#L3558'>3558</a> +<a name='L3559'></a><a href='#L3559'>3559</a> +<a name='L3560'></a><a href='#L3560'>3560</a> +<a name='L3561'></a><a href='#L3561'>3561</a> +<a name='L3562'></a><a href='#L3562'>3562</a> +<a name='L3563'></a><a href='#L3563'>3563</a> +<a name='L3564'></a><a href='#L3564'>3564</a> +<a name='L3565'></a><a href='#L3565'>3565</a> +<a name='L3566'></a><a href='#L3566'>3566</a> +<a name='L3567'></a><a href='#L3567'>3567</a> +<a name='L3568'></a><a href='#L3568'>3568</a> +<a name='L3569'></a><a href='#L3569'>3569</a> +<a name='L3570'></a><a href='#L3570'>3570</a> +<a name='L3571'></a><a href='#L3571'>3571</a> +<a name='L3572'></a><a href='#L3572'>3572</a> +<a name='L3573'></a><a href='#L3573'>3573</a> +<a name='L3574'></a><a href='#L3574'>3574</a> +<a name='L3575'></a><a href='#L3575'>3575</a> +<a name='L3576'></a><a href='#L3576'>3576</a> +<a name='L3577'></a><a href='#L3577'>3577</a> +<a name='L3578'></a><a href='#L3578'>3578</a> +<a name='L3579'></a><a href='#L3579'>3579</a> +<a name='L3580'></a><a href='#L3580'>3580</a> +<a name='L3581'></a><a href='#L3581'>3581</a> +<a name='L3582'></a><a href='#L3582'>3582</a> +<a name='L3583'></a><a href='#L3583'>3583</a> +<a name='L3584'></a><a href='#L3584'>3584</a> +<a name='L3585'></a><a href='#L3585'>3585</a> +<a name='L3586'></a><a href='#L3586'>3586</a> +<a name='L3587'></a><a href='#L3587'>3587</a> +<a name='L3588'></a><a href='#L3588'>3588</a> +<a name='L3589'></a><a href='#L3589'>3589</a> +<a name='L3590'></a><a href='#L3590'>3590</a> +<a name='L3591'></a><a href='#L3591'>3591</a> +<a name='L3592'></a><a href='#L3592'>3592</a> +<a name='L3593'></a><a href='#L3593'>3593</a> +<a name='L3594'></a><a href='#L3594'>3594</a> +<a name='L3595'></a><a href='#L3595'>3595</a> +<a name='L3596'></a><a href='#L3596'>3596</a> +<a name='L3597'></a><a href='#L3597'>3597</a> +<a name='L3598'></a><a href='#L3598'>3598</a> +<a name='L3599'></a><a href='#L3599'>3599</a> +<a name='L3600'></a><a href='#L3600'>3600</a> +<a name='L3601'></a><a href='#L3601'>3601</a> +<a name='L3602'></a><a href='#L3602'>3602</a> +<a name='L3603'></a><a href='#L3603'>3603</a> +<a name='L3604'></a><a href='#L3604'>3604</a> +<a name='L3605'></a><a href='#L3605'>3605</a> +<a name='L3606'></a><a href='#L3606'>3606</a> +<a name='L3607'></a><a href='#L3607'>3607</a> +<a name='L3608'></a><a href='#L3608'>3608</a> +<a name='L3609'></a><a href='#L3609'>3609</a> +<a name='L3610'></a><a href='#L3610'>3610</a> +<a name='L3611'></a><a href='#L3611'>3611</a> +<a name='L3612'></a><a href='#L3612'>3612</a> +<a name='L3613'></a><a href='#L3613'>3613</a> +<a name='L3614'></a><a href='#L3614'>3614</a> +<a name='L3615'></a><a href='#L3615'>3615</a> +<a name='L3616'></a><a href='#L3616'>3616</a> +<a name='L3617'></a><a href='#L3617'>3617</a> +<a name='L3618'></a><a href='#L3618'>3618</a> +<a name='L3619'></a><a href='#L3619'>3619</a> +<a name='L3620'></a><a href='#L3620'>3620</a> +<a name='L3621'></a><a href='#L3621'>3621</a> +<a name='L3622'></a><a href='#L3622'>3622</a> +<a name='L3623'></a><a href='#L3623'>3623</a> +<a name='L3624'></a><a href='#L3624'>3624</a> +<a name='L3625'></a><a href='#L3625'>3625</a> +<a name='L3626'></a><a href='#L3626'>3626</a> +<a name='L3627'></a><a href='#L3627'>3627</a> +<a name='L3628'></a><a href='#L3628'>3628</a> +<a name='L3629'></a><a href='#L3629'>3629</a> +<a name='L3630'></a><a href='#L3630'>3630</a> +<a name='L3631'></a><a href='#L3631'>3631</a> +<a name='L3632'></a><a href='#L3632'>3632</a> +<a name='L3633'></a><a href='#L3633'>3633</a> +<a name='L3634'></a><a href='#L3634'>3634</a> +<a name='L3635'></a><a href='#L3635'>3635</a> +<a name='L3636'></a><a href='#L3636'>3636</a> +<a name='L3637'></a><a href='#L3637'>3637</a> +<a name='L3638'></a><a href='#L3638'>3638</a> +<a name='L3639'></a><a href='#L3639'>3639</a> +<a name='L3640'></a><a href='#L3640'>3640</a> +<a name='L3641'></a><a href='#L3641'>3641</a> +<a name='L3642'></a><a href='#L3642'>3642</a> +<a name='L3643'></a><a href='#L3643'>3643</a> +<a name='L3644'></a><a href='#L3644'>3644</a> +<a name='L3645'></a><a href='#L3645'>3645</a> +<a name='L3646'></a><a href='#L3646'>3646</a> +<a name='L3647'></a><a href='#L3647'>3647</a> +<a name='L3648'></a><a href='#L3648'>3648</a> +<a name='L3649'></a><a href='#L3649'>3649</a> +<a name='L3650'></a><a href='#L3650'>3650</a> +<a name='L3651'></a><a href='#L3651'>3651</a> +<a name='L3652'></a><a href='#L3652'>3652</a> +<a name='L3653'></a><a href='#L3653'>3653</a> +<a name='L3654'></a><a href='#L3654'>3654</a> +<a name='L3655'></a><a href='#L3655'>3655</a> +<a name='L3656'></a><a href='#L3656'>3656</a> +<a name='L3657'></a><a href='#L3657'>3657</a> +<a name='L3658'></a><a href='#L3658'>3658</a> +<a name='L3659'></a><a href='#L3659'>3659</a> +<a name='L3660'></a><a href='#L3660'>3660</a> +<a name='L3661'></a><a href='#L3661'>3661</a> +<a name='L3662'></a><a href='#L3662'>3662</a> +<a name='L3663'></a><a href='#L3663'>3663</a> +<a name='L3664'></a><a href='#L3664'>3664</a> +<a name='L3665'></a><a href='#L3665'>3665</a> +<a name='L3666'></a><a href='#L3666'>3666</a> +<a name='L3667'></a><a href='#L3667'>3667</a> +<a name='L3668'></a><a href='#L3668'>3668</a> +<a name='L3669'></a><a href='#L3669'>3669</a> +<a name='L3670'></a><a href='#L3670'>3670</a> +<a name='L3671'></a><a href='#L3671'>3671</a> +<a name='L3672'></a><a href='#L3672'>3672</a> +<a name='L3673'></a><a href='#L3673'>3673</a> +<a name='L3674'></a><a href='#L3674'>3674</a> +<a name='L3675'></a><a href='#L3675'>3675</a> +<a name='L3676'></a><a href='#L3676'>3676</a> +<a name='L3677'></a><a href='#L3677'>3677</a> +<a name='L3678'></a><a href='#L3678'>3678</a> +<a name='L3679'></a><a href='#L3679'>3679</a> +<a name='L3680'></a><a href='#L3680'>3680</a> +<a name='L3681'></a><a href='#L3681'>3681</a> +<a name='L3682'></a><a href='#L3682'>3682</a> +<a name='L3683'></a><a href='#L3683'>3683</a> +<a name='L3684'></a><a href='#L3684'>3684</a> +<a name='L3685'></a><a href='#L3685'>3685</a> +<a name='L3686'></a><a href='#L3686'>3686</a> +<a name='L3687'></a><a href='#L3687'>3687</a> +<a name='L3688'></a><a href='#L3688'>3688</a> +<a name='L3689'></a><a href='#L3689'>3689</a> +<a name='L3690'></a><a href='#L3690'>3690</a> +<a name='L3691'></a><a href='#L3691'>3691</a> +<a name='L3692'></a><a href='#L3692'>3692</a> +<a name='L3693'></a><a href='#L3693'>3693</a> +<a name='L3694'></a><a href='#L3694'>3694</a> +<a name='L3695'></a><a href='#L3695'>3695</a> +<a name='L3696'></a><a href='#L3696'>3696</a> +<a name='L3697'></a><a href='#L3697'>3697</a> +<a name='L3698'></a><a href='#L3698'>3698</a> +<a name='L3699'></a><a href='#L3699'>3699</a> +<a name='L3700'></a><a href='#L3700'>3700</a> +<a name='L3701'></a><a href='#L3701'>3701</a> +<a name='L3702'></a><a href='#L3702'>3702</a> +<a name='L3703'></a><a href='#L3703'>3703</a> +<a name='L3704'></a><a href='#L3704'>3704</a> +<a name='L3705'></a><a href='#L3705'>3705</a> +<a name='L3706'></a><a href='#L3706'>3706</a> +<a name='L3707'></a><a href='#L3707'>3707</a> +<a name='L3708'></a><a href='#L3708'>3708</a> +<a name='L3709'></a><a href='#L3709'>3709</a> +<a name='L3710'></a><a href='#L3710'>3710</a> +<a name='L3711'></a><a href='#L3711'>3711</a> +<a name='L3712'></a><a href='#L3712'>3712</a> +<a name='L3713'></a><a href='#L3713'>3713</a> +<a name='L3714'></a><a href='#L3714'>3714</a> +<a name='L3715'></a><a href='#L3715'>3715</a> +<a name='L3716'></a><a href='#L3716'>3716</a> +<a name='L3717'></a><a href='#L3717'>3717</a> +<a name='L3718'></a><a href='#L3718'>3718</a> +<a name='L3719'></a><a href='#L3719'>3719</a> +<a name='L3720'></a><a href='#L3720'>3720</a> +<a name='L3721'></a><a href='#L3721'>3721</a> +<a name='L3722'></a><a href='#L3722'>3722</a> +<a name='L3723'></a><a href='#L3723'>3723</a> +<a name='L3724'></a><a href='#L3724'>3724</a> +<a name='L3725'></a><a href='#L3725'>3725</a> +<a name='L3726'></a><a href='#L3726'>3726</a> +<a name='L3727'></a><a href='#L3727'>3727</a> +<a name='L3728'></a><a href='#L3728'>3728</a> +<a name='L3729'></a><a href='#L3729'>3729</a> +<a name='L3730'></a><a href='#L3730'>3730</a> +<a name='L3731'></a><a href='#L3731'>3731</a> +<a name='L3732'></a><a href='#L3732'>3732</a> +<a name='L3733'></a><a href='#L3733'>3733</a> +<a name='L3734'></a><a href='#L3734'>3734</a> +<a name='L3735'></a><a href='#L3735'>3735</a> +<a name='L3736'></a><a href='#L3736'>3736</a> +<a name='L3737'></a><a href='#L3737'>3737</a> +<a name='L3738'></a><a href='#L3738'>3738</a> +<a name='L3739'></a><a href='#L3739'>3739</a> +<a name='L3740'></a><a href='#L3740'>3740</a> +<a name='L3741'></a><a href='#L3741'>3741</a> +<a name='L3742'></a><a href='#L3742'>3742</a> +<a name='L3743'></a><a href='#L3743'>3743</a> +<a name='L3744'></a><a href='#L3744'>3744</a> +<a name='L3745'></a><a href='#L3745'>3745</a> +<a name='L3746'></a><a href='#L3746'>3746</a> +<a name='L3747'></a><a href='#L3747'>3747</a> +<a name='L3748'></a><a href='#L3748'>3748</a> +<a name='L3749'></a><a href='#L3749'>3749</a> +<a name='L3750'></a><a href='#L3750'>3750</a> +<a name='L3751'></a><a href='#L3751'>3751</a> +<a name='L3752'></a><a href='#L3752'>3752</a> +<a name='L3753'></a><a href='#L3753'>3753</a> +<a name='L3754'></a><a href='#L3754'>3754</a> +<a name='L3755'></a><a href='#L3755'>3755</a> +<a name='L3756'></a><a href='#L3756'>3756</a> +<a name='L3757'></a><a href='#L3757'>3757</a> +<a name='L3758'></a><a href='#L3758'>3758</a> +<a name='L3759'></a><a href='#L3759'>3759</a> +<a name='L3760'></a><a href='#L3760'>3760</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">42x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">42x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">61x</span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">60x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">263x</span> +<span class="cline-any cline-yes">5x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">258x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">42x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">252x</span> +<span class="cline-any cline-yes">2x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">250x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">250x</span> +<span class="cline-any cline-yes">250x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">250x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">250x</span> +<span class="cline-any cline-yes">250x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">250x</span> +<span class="cline-any cline-yes">250x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">250x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">250x</span> +<span class="cline-any cline-yes">250x</span> +<span class="cline-any cline-yes">250x</span> +<span class="cline-any cline-yes">250x</span> +<span class="cline-any cline-yes">250x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">3640x</span> +<span class="cline-any cline-yes">6591x</span> +<span class="cline-any cline-yes">302x</span> +<span class="cline-any cline-yes">6591x</span> +<span class="cline-any cline-yes">250x</span> +<span class="cline-any cline-yes">250x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">206x</span> +<span class="cline-any cline-yes">206x</span> +<span class="cline-any cline-yes">206x</span> +<span class="cline-any cline-yes">206x</span> +<span class="cline-any cline-yes">52549x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">206x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">250x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">454x</span> +<span class="cline-any cline-yes">454x</span> +<span class="cline-any cline-yes">454x</span> +<span class="cline-any cline-yes">454x</span> +<span class="cline-any cline-yes">240698x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">454x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">250x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">309x</span> +<span class="cline-any cline-yes">309x</span> +<span class="cline-any cline-yes">293x</span> +<span class="cline-any cline-yes">52x</span> +<span class="cline-any cline-yes">52x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">241x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">16x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">454x</span> +<span class="cline-any cline-yes">454x</span> +<span class="cline-any cline-yes">454x</span> +<span class="cline-any cline-yes">454x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">454x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">3640x</span> +<span class="cline-any cline-yes">3640x</span> +<span class="cline-any cline-yes">3640x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">3640x</span> +<span class="cline-any cline-yes">6591x</span> +<span class="cline-any cline-yes">6591x</span> +<span class="cline-any cline-yes">6591x</span> +<span class="cline-any cline-yes">6591x</span> +<span class="cline-any cline-yes">6591x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">206x</span> +<span class="cline-any cline-yes">206x</span> +<span class="cline-any cline-yes">206x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">206x</span> +<span class="cline-any cline-yes">206x</span> +<span class="cline-any cline-yes">206x</span> +<span class="cline-any cline-yes">206x</span> +<span class="cline-any cline-yes">7507x</span> +<span class="cline-any cline-yes">7507x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">7507x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">7507x</span> +<span class="cline-any cline-yes">7507x</span> +<span class="cline-any cline-yes">7507x</span> +<span class="cline-any cline-yes">7507x</span> +<span class="cline-any cline-yes">7507x</span> +<span class="cline-any cline-yes">7507x</span> +<span class="cline-any cline-yes">7507x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">206x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">229x</span> +<span class="cline-any cline-yes">229x</span> +<span class="cline-any cline-yes">229x</span> +<span class="cline-any cline-yes">229x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">458x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">458x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">458x</span> +<span class="cline-any cline-yes">56x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">458x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">42x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">458x</span> +<span class="cline-any cline-yes">458x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">458x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">458x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">458x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">196x</span> +<span class="cline-any cline-yes">196x</span> +<span class="cline-any cline-yes">196x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">196x</span> +<span class="cline-any cline-yes">7734x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">7734x</span> +<span class="cline-any cline-yes">7568x</span> +<span class="cline-any cline-yes">7568x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">7568x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">196x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">262x</span> +<span class="cline-any cline-yes">262x</span> +<span class="cline-any cline-yes">262x</span> +<span class="cline-any cline-yes">262x</span> +<span class="cline-any cline-yes">262x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">262x</span> +<span class="cline-any cline-yes">283669x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">283669x</span> +<span class="cline-any cline-yes">272081x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">262x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">228x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">228x</span> +<span class="cline-any cline-yes">3192x</span> +<span class="cline-any cline-yes">3192x</span> +<span class="cline-any cline-yes">3192x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">3178x</span> +<span class="cline-any cline-yes">2497x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">681x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { toSafeWeakMap, WeakMapCtor, TypeErrorCtor, SymbolFor, ErrorCtor, ObjectAssign, noop, ArrayCtor, ReflectApply, ArrayProtoPush, ReflectOwnKeys, toSafeArray, ObjectHasOwn, ArrayProtoIncludes } from '@locker/near-membrane-shared'; + +/** + * This file contains an exportable (portable) function `init()` used to initialize + * one side of a membrane on any realm. The only prerequisite is the ability to + * evaluate the sourceText of the `init()` function there. Once evaluated, the + * function will return a set of values that can be used to wire up the side of + * the membrane with another existing `init()` function from another realm, in + * which case they will exchange callable functions that are required to connect + * the two realms via the membrane. + * + * About the mechanics of the membrane, there are few important considerations: + * + * 1. Pointers are the way to pass reference to object and functions. + * 2. A dedicated symbol (LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL) is needed + * to represent the absence of a value. + * 3. The realm that owns the object or function is responsible for projecting + * the proxy onto the other side (via callablePushTarget), which returns a + * Pointer that can be used by the realm to pass the reference to the same + * proxy over and over again. + * 4. The realm that owns the proxy (after the other side projects it into it) + * will hold a Pointer alongside the proxy to signal what original object or + * function should the foreign operation operates, it is always the first + * argument of the foreign callable for proxies, and the other side can use + * it via `selectedTarget!`. + */ +const proxyTargetToLazyPropertyDescriptorStateMap = toSafeWeakMap(new WeakMapCtor()); +// istanbul ignore next +function createMembraneMarshall(globalObject) { + var _ref, _ref2, _ReflectApply, _globalThisRef$BigInt, _globalThisRef$BigUin; + /* eslint-disable prefer-object-spread */ + const ArrayCtor = Array; + const ArrayBufferCtor = ArrayBuffer; + const ErrorCtor = Error; + const NumberCtor = Number; + const ObjectCtor = Object; + const ProxyCtor = Proxy; + const ReflectRef = Reflect; + const RegExpCtor = RegExp; + const StringCtor = String; + const SymbolCtor = Symbol; + const TypeErrorCtor = TypeError; + // eslint-disable-next-line @typescript-eslint/no-shadow, no-shadow + const WeakMapCtor = WeakMap; + const WeakSetCtor = WeakSet; + const { + for: SymbolFor, + toStringTag: SymbolToStringTag + } = SymbolCtor; + const { + // eslint-disable-next-line @typescript-eslint/no-shadow, no-shadow + apply: ReflectApply, + construct: ReflectConstruct, + defineProperty: ReflectDefineProperty, + deleteProperty: ReflectDeleteProperty, + get: ReflectGet, + getOwnPropertyDescriptor: ReflectGetOwnPropertyDescriptor, + getPrototypeOf: ReflectGetPrototypeOf, + has: ReflectHas, + isExtensible: ReflectIsExtensible, + ownKeys: ReflectOwnKeys, + preventExtensions: ReflectPreventExtensions, + set: ReflectSet, + // eslint-disable-next-line @typescript-eslint/no-shadow, no-shadow + setPrototypeOf: ReflectSetPrototypeOf + } = ReflectRef; + const { + assign: ObjectAssign, + defineProperties: ObjectDefineProperties, + freeze: ObjectFreeze, + getOwnPropertyDescriptor: ObjectGetOwnPropertyDescriptor, + getOwnPropertyDescriptors: ObjectGetOwnPropertyDescriptors, + isFrozen: ObjectIsFrozen, + isSealed: ObjectIsSealed, + keys: ObjectKeys, + prototype: ObjectProto, + seal: ObjectSeal + } = ObjectCtor; + const { + hasOwnProperty: ObjectProtoHasOwnProperty, + propertyIsEnumerable: ObjectProtoPropertyIsEnumerable, + toString: ObjectProtoToString + } = ObjectProto; + const { + hasOwn: OriginalObjectHasOwn + } = ObjectCtor; + const { + __defineGetter__: ObjectProtoDefineGetter, + __defineSetter__: ObjectProtoDefineSetter, + __lookupGetter__: ObjectProtoLookupGetter, + __lookupSetter__: ObjectProtoLookupSetter + } = ObjectProto; + const ObjectHasOwn = typeof OriginalObjectHasOwn === 'function' ? OriginalObjectHasOwn : (object, key) => ReflectApply(ObjectProtoHasOwnProperty, object, [key]); + const globalThisRef = (_ref = (_ref2 = globalObject != null ? globalObject : + // Support for globalThis was added in Chrome 71. + // https://caniuse.com/mdn-javascript_builtins_globalthisfor + typeof globalThis !== 'undefined' ? globalThis : undefined) != null ? _ref2 : + // However, environments like Android emulators are running Chrome 69. + // eslint-disable-next-line no-restricted-globals + typeof self !== 'undefined' ? self : undefined) != null ? _ref : ( + // See https://mathiasbynens.be/notes/globalthis for more details. + ReflectDefineProperty(ObjectProto, 'globalThis', { + __proto__: null, + configurable: true, + get() { + ReflectDeleteProperty(ObjectProto, 'globalThis'); + // Safari 12 on iOS 12.1 has a `this` of `undefined` so we + // fallback to `self`. + // eslint-disable-next-line no-restricted-globals + return this != null ? this : self; + } + }), globalThis); + const IS_IN_SHADOW_REALM = typeof globalObject !== 'object' || globalObject === null; + const IS_NOT_IN_SHADOW_REALM = !IS_IN_SHADOW_REALM; + const LOCKER_DEBUG_MODE_SYMBOL = IS_NOT_IN_SHADOW_REALM ? SymbolFor('@@lockerDebugMode') : undefined; + const LOCKER_IDENTIFIER_MARKER = '$LWS'; + const LOCKER_NEAR_MEMBRANE_SERIALIZED_VALUE_SYMBOL = IS_NOT_IN_SHADOW_REALM ? SymbolFor('@@lockerNearMembraneSerializedValue') : undefined; + const LOCKER_NEAR_MEMBRANE_SYMBOL = IS_NOT_IN_SHADOW_REALM ? SymbolFor('@@lockerNearMembrane') : undefined; + const LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL = SymbolFor('@@lockerNearMembraneUndefinedValue'); + // The default stack trace limit in Chrome is 10. + // Set to 20 to account for stack trace filtering. + const LOCKER_STACK_TRACE_LIMIT = 20; + // This package is bundled by third-parties that have their own build time + // replacement logic. Instead of customizing each build system to be aware + // of this package we implement a two phase debug mode by performing small + // runtime checks to determine phase one, our code is unminified, and + // phase two, the user opted-in to custom devtools formatters. Phase one + // is used for light weight initialization time debug while phase two is + // reserved for post initialization runtime. + // eslint-disable-next-line @typescript-eslint/naming-convention + const LOCKER_UNMINIFIED_FLAG = `${function LOCKER_UNMINIFIED_FLAG() { + return LOCKER_UNMINIFIED_FLAG.name; + }()}`.includes('LOCKER_UNMINIFIED_FLAG'); + // Indicate whether debug support is available. + const LOCKER_DEBUGGABLE_FLAG = LOCKER_UNMINIFIED_FLAG && IS_NOT_IN_SHADOW_REALM; + const ERR_ILLEGAL_PROPERTY_ACCESS = 'Illegal property access.'; + // BigInt is not supported in Safari 13.1. + // https://caniuse.com/bigint + const FLAGS_REG_EXP = IS_IN_SHADOW_REALM ? /\w*$/ : undefined; + // Minification safe references to the private `BoundaryProxyHandler` + // 'apply' and 'construct' trap variant's property names. + let MINIFICATION_SAFE_TRAP_PROPERTY_NAMES; + const SUPPORTS_BIG_INT = typeof BigInt === 'function'; + const { + isArray: isArrayOrThrowForRevoked + } = ArrayCtor; + const { + includes: ArrayProtoIncludes, + indexOf: ArrayProtoIndexOf, + slice: ArrayProtoSlice + } = ArrayCtor.prototype; + const { + isView: ArrayBufferIsView + } = ArrayBufferCtor; + const BigIntProtoValueOf = SUPPORTS_BIG_INT ? BigInt.prototype.valueOf : undefined; + const { + valueOf: BooleanProtoValueOf + } = Boolean.prototype; + const { + toString: ErrorProtoToString + } = ErrorCtor.prototype; + const { + bind: FunctionProtoBind, + toString: FunctionProtoToString + } = Function.prototype; + const { + stringify: JSONStringify + } = JSON; + const { + isInteger: NumberIsInteger + } = NumberCtor; + const { + valueOf: NumberProtoValueOf + } = NumberCtor.prototype; + const { + revocable: ProxyRevocable + } = ProxyCtor; + const { + prototype: RegExpProto + } = RegExpCtor; + const { + exec: RegExpProtoExec, + test: RegExpProtoTest, + toString: RegExProtoToString + } = RegExpProto; + // Edge 15 does not support RegExp.prototype.flags. + // https://caniuse.com/mdn-javascript_builtins_regexp_flags + const RegExpProtoFlagsGetter = IS_IN_SHADOW_REALM ? (_ReflectApply = ReflectApply(ObjectProtoLookupGetter, RegExpProto, ['flags'])) != null ? _ReflectApply : function flags() { + const string = ReflectApply(RegExProtoToString, this, []); + return ReflectApply(RegExpProtoExec, FLAGS_REG_EXP, [string])[0]; + } : undefined; + const RegExpProtoSourceGetter = ReflectApply(ObjectProtoLookupGetter, RegExpProto, ['source']); + const { + replace: StringProtoReplace, + slice: StringProtoSlice, + valueOf: StringProtoValueOf + } = StringCtor.prototype; + const { + toString: SymbolProtoToString, + valueOf: SymbolProtoValueOf + } = SymbolCtor.prototype; + const BigInt64ArrayProto = (_globalThisRef$BigInt = globalThisRef.BigInt64Array) == null ? void 0 : _globalThisRef$BigInt.prototype; + const BigUint64ArrayProto = (_globalThisRef$BigUin = globalThisRef.BigUint64Array) == null ? void 0 : _globalThisRef$BigUin.prototype; + const { + prototype: Float32ArrayProto + } = Float32Array; + const { + prototype: Float64ArrayProto + } = Float64Array; + const { + prototype: Int8ArrayProto + } = Int8Array; + const { + prototype: Int16ArrayProto + } = Int16Array; + const { + prototype: Int32ArrayProto + } = Int32Array; + const { + prototype: Uint8ArrayProto + } = Uint8Array; + const { + prototype: Uint16ArrayProto + } = Uint16Array; + const { + prototype: Uint32ArrayProto + } = Uint32Array; + // eslint-disable-next-line no-proto + const TypedArrayProto = Uint8ArrayProto.__proto__; + const TypedArrayProtoLengthGetter = ReflectApply(ObjectProtoLookupGetter, TypedArrayProto, ['length']); + const { + prototype: WeakMapProto + } = WeakMapCtor; + const { + delete: WeakMapProtoDelete, + has: WeakMapProtoHas, + set: WeakMapProtoSet, + [SymbolToStringTag]: WeakMapProtoSymbolToStringTag + } = WeakMapProto; + const { + prototype: WeakSetProto + } = WeakSetCtor; + const { + add: WeakSetProtoAdd, + has: WeakSetProtoHas, + delete: WeakSetProtoDelete, + [SymbolToStringTag]: WeakSetProtoSymbolToStringTag + } = WeakSetProto; + const consoleObject = IS_NOT_IN_SHADOW_REALM && typeof console === 'object' && console !== null ? console : undefined; + const consoleInfo = consoleObject == null ? void 0 : consoleObject.info; + const localEval = IS_IN_SHADOW_REALM ? eval : undefined; + // Install flags to ensure things are installed once per realm. + let installedErrorPrepareStackTraceFlag = false; + let installedPropertyDescriptorMethodWrappersFlag = false; + function alwaysFalse() { + return false; + } + const installErrorPrepareStackTrace = LOCKER_UNMINIFIED_FLAG ? () => { + if (installedErrorPrepareStackTraceFlag) { + return; + } + installedErrorPrepareStackTraceFlag = true; + // Feature detect the V8 stack trace API. + // https://v8.dev/docs/stack-trace-api + const CallSite = (() => { + try { + var _callSites$; + ErrorCtor.prepareStackTrace = (_error, callSites) => callSites; + const callSites = new ErrorCtor().stack; + ReflectDeleteProperty(ErrorCtor, 'prepareStackTrace'); + return isArrayOrThrowForRevoked(callSites) && callSites.length > 0 ? (_callSites$ = callSites[0]) == null ? void 0 : _callSites$.constructor : undefined; + // eslint-disable-next-line no-empty + } catch (_unused) {} + return undefined; + })(); + if (typeof CallSite !== 'function') { + return; + } + const { + getEvalOrigin: CallSiteProtoGetEvalOrigin, + getFunctionName: CallSiteProtoGetFunctionName, + toString: CallSiteProtoToString + } = CallSite.prototype; + // A regexp to detect call sites containing LOCKER_IDENTIFIER_MARKER. + const lockerFunctionNameMarkerRegExp = new RegExpCtor(`${ + // Escape regexp special characters in LOCKER_IDENTIFIER_MARKER. + ReflectApply(StringProtoReplace, LOCKER_IDENTIFIER_MARKER, [/[\\^$.*+?()[\]{}|]/g, '\\$&']) + // Function name references in call sites also contain + // the name of the class they belong to, + // e.g. myClassName.myFunctionName. + }(?=\\.|$)`); + const formatStackTrace = function formatStackTrace(error, callSites) { + // Based on V8's default stack trace formatting: + // https://chromium.googlesource.com/v8/v8.git/+/refs/heads/main/src/execution/messages.cc#371 + let stackTrace = ''; + try { + stackTrace = ReflectApply(ErrorProtoToString, error, []); + } catch (_unused2) { + stackTrace = '<error>'; + } + let consecutive = false; + for (let i = 0, { + length + } = callSites; i < length; i += 1) { + const callSite = callSites[i]; + const funcName = ReflectApply(CallSiteProtoGetFunctionName, callSite, []); + let isMarked = false; + if (typeof funcName === 'string' && funcName !== 'eval' && ReflectApply(RegExpProtoTest, lockerFunctionNameMarkerRegExp, [funcName])) { + isMarked = true; + } + if (!isMarked) { + const evalOrigin = ReflectApply(CallSiteProtoGetEvalOrigin, callSite, []); + if (typeof evalOrigin === 'string' && ReflectApply(RegExpProtoTest, lockerFunctionNameMarkerRegExp, [evalOrigin])) { + isMarked = true; + } + } + // Only write a single LWS entry per consecutive LWS stacks. + if (isMarked) { + if (!consecutive) { + consecutive = true; + stackTrace += '\n at LWS'; + } + continue; + } else { + consecutive = false; + } + try { + stackTrace += `\n at ${ReflectApply(CallSiteProtoToString, callSite, [])}`; + // eslint-disable-next-line no-empty + } catch (_unused3) {} + } + return stackTrace; + }; + try { + // Error.prepareStackTrace cannot be a bound or proxy wrapped + // function, so to obscure its source we wrap the call to + // formatStackTrace(). + ErrorCtor.prepareStackTrace = function prepareStackTrace(error, callSites) { + return formatStackTrace(error, callSites); + }; + // eslint-disable-next-line no-empty + } catch (_unused4) {} + try { + const { + stackTraceLimit + } = ErrorCtor; + if (typeof stackTraceLimit !== 'number' || stackTraceLimit < LOCKER_STACK_TRACE_LIMIT) { + ErrorCtor.stackTraceLimit = LOCKER_STACK_TRACE_LIMIT; + } + // eslint-disable-next-line no-empty + } catch (_unused5) {} + } : noop; + function noop() { + // No-operation. + } + const serializeBigIntObject = IS_IN_SHADOW_REALM ? bigIntObject => + // Section 21.2.3 Properties of the BigInt Prototype Object + // https://tc39.es/ecma262/#thisbigintvalue + // Step 2: If Type(value) is Object and value has a [[BigIntData]] internal slot, then + // a. Assert: Type(value.[[BigIntData]]) is BigInt. + ReflectApply(BigIntProtoValueOf, bigIntObject, []) : noop; + const serializeBooleanObject = IS_IN_SHADOW_REALM ? booleanObject => + // Section 20.3.3 Properties of the Boolean Prototype Object + // https://tc39.es/ecma262/#thisbooleanvalue + // Step 2: If Type(value) is Object and value has a [[BooleanData]] internal slot, then + // a. Let b be value.[[BooleanData]]. + // b. Assert: Type(b) is Boolean. + ReflectApply(BooleanProtoValueOf, booleanObject, []) : noop; + const serializeNumberObject = IS_IN_SHADOW_REALM ? numberObject => + // 21.1.3 Properties of the Number Prototype Object + // https://tc39.es/ecma262/#thisnumbervalue + // Step 2: If Type(value) is Object and value has a [[NumberData]] internal slot, then + // a. Let n be value.[[NumberData]]. + // b. Assert: Type(n) is Number. + ReflectApply(NumberProtoValueOf, numberObject, []) : noop; + const serializeRegExp = IS_IN_SHADOW_REALM ? value => { + // 22.2.5.12 get RegExp.prototype.source + // https://tc39.es/ecma262/#sec-get-regexp.prototype.source + // Step 3: If R does not have an [[OriginalSource]] internal slot, then + // a. If SameValue(R, %RegExp.prototype%) is true, return "(?:)". + // b. Otherwise, throw a TypeError exception. + if (value !== RegExpProto) { + const source = ReflectApply(RegExpProtoSourceGetter, value, []); + return JSONStringify({ + __proto__: null, + flags: ReflectApply(RegExpProtoFlagsGetter, value, []), + source + }); + } + return undefined; + } : noop; + const serializeStringObject = IS_IN_SHADOW_REALM ? stringObject => + // 22.1.3 Properties of the String Prototype Object + // https://tc39.es/ecma262/#thisstringvalue + // Step 2: If Type(value) is Object and value has a [[StringData]] internal slot, then + // a. Let s be value.[[StringData]]. + // b. Assert: Type(s) is String. + ReflectApply(StringProtoValueOf, stringObject, []) : noop; + const serializeSymbolObject = IS_IN_SHADOW_REALM ? symbolObject => + // 20.4.3 Properties of the Symbol Prototype Object + // https://tc39.es/ecma262/#thissymbolvalue + // Step 2: If Type(value) is Object and value has a [[SymbolData]] internal slot, then + // a. Let s be value.[[SymbolData]]. + // b. Assert: Type(s) is Symbol. + ReflectApply(SymbolProtoValueOf, symbolObject, []) : noop; + const serializeTargetByBrand = IS_IN_SHADOW_REALM ? target => { + const brand = ReflectApply(ObjectProtoToString, target, []); + switch (brand) { + // The brand checks below represent boxed primitives of + // `ESGlobalKeys` in packages/near-membrane-base/src/intrinsics.ts + // which are not remapped or reflective. + case '[object Boolean]': + return serializeBooleanObject(target); + case '[object Number]': + return serializeNumberObject(target); + case '[object RegExp]': + return serializeRegExp(target); + case '[object String]': + return serializeStringObject(target); + case '[object Object]': + try { + // Symbol.prototype[@@toStringTag] is defined by default so + // must have been removed. + // https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag + return serializeSymbolObject(target); + // eslint-disable-next-line no-empty + } catch (_unused6) {} + if (SUPPORTS_BIG_INT) { + // BigInt.prototype[@@toStringTag] is defined by default so + // must have been removed. + // https://tc39.es/ecma262/#sec-bigint.prototype-@@tostringtag + try { + return serializeBigIntObject(target); + // eslint-disable-next-line no-empty + } catch (_unused7) {} + } + // eslint-disable-next-line no-fallthrough + default: + return undefined; + } + } : noop; + const serializeTargetByTrialAndError = IS_IN_SHADOW_REALM ? target => { + // The serialization attempts below represent boxed primitives of + // `ESGlobalKeys` in packages/near-membrane-base/src/intrinsics.ts + // which are not remapped or reflective. + try { + // Symbol.prototype[@@toStringTag] is defined by default so + // attempted before others. + // https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag + return serializeSymbolObject(target); + // eslint-disable-next-line no-empty + } catch (_unused8) {} + if (SUPPORTS_BIG_INT) { + // BigInt.prototype[@@toStringTag] is defined by default so + // attempted before others. + // https://tc39.es/ecma262/#sec-bigint.prototype-@@tostringtag + try { + return serializeBigIntObject(target); + // eslint-disable-next-line no-empty + } catch (_unused9) {} + } + try { + return serializeBooleanObject(target); + // eslint-disable-next-line no-empty + } catch (_unused10) {} + try { + return serializeNumberObject(target); + // eslint-disable-next-line no-empty + } catch (_unused11) {} + try { + return serializeRegExp(target); + // eslint-disable-next-line no-empty + } catch (_unused12) {} + try { + return serializeStringObject(target); + // eslint-disable-next-line no-empty + } catch (_unused13) {} + return undefined; + } : noop; + function toSafeTemplateStringValue(value) { + if (typeof value === 'string') { + return value; + } + try { + if (typeof value === 'object' && value !== null) { + const result = ReflectApply(ObjectProtoToString, value, []); + return result === '[object Symbol]' ? ReflectApply(SymbolProtoToString, value, []) : result; + } + if (typeof value === 'function') { + return ReflectApply(FunctionProtoToString, value, []); + } + // Attempt to coerce `value` to a string with the String() constructor. + // Section 22.1.1.1 String ( value ) + // https://tc39.es/ecma262/#sec-string-constructor-string-value + return StringCtor(value); + // eslint-disable-next-line no-empty + } catch (_unused14) {} + return '[Object Unknown]'; + } + // eslint-disable-next-line @typescript-eslint/no-shadow, no-shadow + function toSafeWeakMap(weakMap) { + ReflectSetPrototypeOf(weakMap, null); + weakMap.delete = WeakMapProtoDelete; + weakMap.has = WeakMapProtoHas; + weakMap.set = WeakMapProtoSet; + weakMap[SymbolToStringTag] = WeakMapProtoSymbolToStringTag; + ReflectSetPrototypeOf(weakMap, WeakMapProto); + return weakMap; + } + function toSafeWeakSet(weakSet) { + ReflectSetPrototypeOf(weakSet, null); + weakSet.add = WeakSetProtoAdd; + weakSet.delete = WeakSetProtoDelete; + weakSet.has = WeakSetProtoHas; + weakSet[SymbolToStringTag] = WeakSetProtoSymbolToStringTag; + ReflectSetPrototypeOf(weakSet, WeakSetProto); + return weakSet; + } + return function createHooksCallback(color, foreignCallableHooksCallback, options) { + if (IS_IN_SHADOW_REALM) { + options = undefined; + } + const { + distortionCallback, + liveTargetCallback, + revokedProxyCallback + // eslint-disable-next-line prefer-object-spread + } = ObjectAssign({ + __proto__: null + }, options); + const applyTrapNameRegistry = { + // Populated in the returned connector function below. + __proto__: null, + 0: undefined, + 1: undefined, + 2: undefined, + 3: undefined, + 4: undefined, + n: undefined + }; + const constructTrapNameRegistry = { + // Populated in the returned connector function below. + __proto__: null, + 0: undefined, + 1: undefined, + 2: undefined, + 3: undefined, + 4: undefined, + n: undefined + }; + const lazyPropertyDescriptorStateCache = toSafeWeakMap(new WeakMapCtor()); + const proxyPointerCache = toSafeWeakMap(new WeakMapCtor()); + let foreignCallablePushErrorTarget; + let foreignCallablePushTarget; + let foreignCallableApply; + let foreignCallableConstruct; + let foreignCallableDefineProperty; + let foreignCallableDeleteProperty; + let foreignCallableGet; + let foreignCallableGetOwnPropertyDescriptor; + let foreignCallableGetPrototypeOf; + let foreignCallableHas; + let foreignCallableIsExtensible; + let foreignCallableOwnKeys; + let foreignCallablePreventExtensions; + let foreignCallableSet; + let foreignCallableSetPrototypeOf; + let foreignCallableDebugInfo; + let foreignCallableGetPropertyValue; + let foreignCallableGetLazyPropertyDescriptorStateByTarget; + let foreignCallableGetTargetIntegrityTraits; + let foreignCallableGetToStringTagOfTarget; + let foreignCallableInstallErrorPrepareStackTrace; + let foreignCallableIsTargetLive; + let foreignCallableIsTargetRevoked; + let foreignCallableSerializeTarget; + let foreignCallableSetLazyPropertyDescriptorStateByTarget; + let foreignCallableBatchGetPrototypeOfAndGetOwnPropertyDescriptors; + let foreignCallableBatchGetPrototypeOfWhenHasNoOwnProperty; + let foreignCallableBatchGetPrototypeOfWhenHasNoOwnPropertyDescriptor; + let fastForeignTargetPointers; + let foreignPointerBigInt64ArrayProto; + let foreignPointerBigUint64ArrayProto; + let foreignPointerFloat32ArrayProto; + let foreignPointerFloat64ArrayProto; + let foreignPointerInt8ArrayProto; + let foreignPointerInt16ArrayProto; + let foreignPointerInt32ArrayProto; + let foreignPointerObjectProto; + let foreignPointerTypedArrayProto; + let foreignPointerUint8ArrayProto; + let foreignPointerUint16ArrayProto; + let foreignPointerUint32ArrayProto; + let selectedTarget; + let lastProxyTrapCalled = 0 /* ProxyHandlerTraps.None */; + let handshakePropertyFlag = false; + let useFastForeignTargetPath = IS_IN_SHADOW_REALM; + let useFastForeignTargetPathForTypedArrays = IS_IN_SHADOW_REALM; + const activateLazyOwnPropertyDefinition = IS_IN_SHADOW_REALM ? (target, key, state) => { + state[key] = false; + const foreignTargetPointer = getTransferablePointer(target); + let safeDesc; + try { + foreignCallableGetOwnPropertyDescriptor(foreignTargetPointer, key, (_key, configurable, enumerable, writable, valuePointer, getterPointer, setterPointer) => { + safeDesc = createDescriptorFromMeta(configurable, enumerable, writable, valuePointer, getterPointer, setterPointer); + }); + } catch (error) { + var _selectedTarget; + const errorToThrow = (_selectedTarget = selectedTarget) != null ? _selectedTarget : error; + selectedTarget = undefined; + throw errorToThrow; + } + if (safeDesc) { + ReflectDefineProperty(target, key, safeDesc); + } else { + ReflectDeleteProperty(target, key); + } + } : noop; + let checkDebugMode = LOCKER_DEBUGGABLE_FLAG ? () => { + try { + if (ObjectHasOwn(globalThisRef, LOCKER_DEBUG_MODE_SYMBOL)) { + checkDebugMode = () => true; + installErrorPrepareStackTrace(); + foreignCallableInstallErrorPrepareStackTrace(); + } + } catch (_unused15) { + checkDebugMode = alwaysFalse; + } + return false; + } : alwaysFalse; + const clearFastForeignTargetPointers = IS_IN_SHADOW_REALM ? () => { + fastForeignTargetPointers = toSafeWeakSet(new WeakSetCtor()); + } : noop; + function copyForeignOwnPropertyDescriptorsAndPrototypeToShadowTarget(foreignTargetPointer, shadowTarget) { + let protoPointerOrNull; + try { + protoPointerOrNull = foreignCallableBatchGetPrototypeOfAndGetOwnPropertyDescriptors(foreignTargetPointer, (...descriptorTuples) => { + const descriptors = {}; + for (let i = 0, { + length + } = descriptorTuples; i < length; i += 7) { + const key = descriptorTuples[i]; + descriptors[key] = createDescriptorFromMeta(descriptorTuples[i + 1], + // configurable + descriptorTuples[i + 2], + // enumerable + descriptorTuples[i + 3], + // writable + descriptorTuples[i + 4], + // valuePointer + descriptorTuples[i + 5], + // getterPointer + descriptorTuples[i + 6] // setterPointer + ); + } + // Use `ObjectDefineProperties()` instead of individual + // `ReflectDefineProperty()` calls for better performance. + ObjectDefineProperties(shadowTarget, descriptors); + }); + } catch (error) { + var _selectedTarget2; + const errorToThrow = (_selectedTarget2 = selectedTarget) != null ? _selectedTarget2 : error; + selectedTarget = undefined; + throw errorToThrow; + } + let proto; + if (typeof protoPointerOrNull === 'function') { + protoPointerOrNull(); + proto = selectedTarget; + selectedTarget = undefined; + } else { + proto = null; + } + ReflectSetPrototypeOf(shadowTarget, proto); + } + function createApplyOrConstructTrapForZeroOrMoreArgs(proxyTrapEnum) { + const isApplyTrap = proxyTrapEnum & 1 /* ProxyHandlerTraps.Apply */; + const arityToApplyOrConstructTrapNameRegistry = isApplyTrap ? applyTrapNameRegistry : constructTrapNameRegistry; + const foreignCallableApplyOrConstruct = isApplyTrap ? foreignCallableApply : foreignCallableConstruct; + return function applyOrConstructTrap(_shadowTarget, thisArgOrArgs, argsOrNewTarget) { + lastProxyTrapCalled = proxyTrapEnum; + const args = isApplyTrap ? argsOrNewTarget : thisArgOrArgs; + const { + length + } = args; + if (length !== 0) { + var _arityToApplyOrConstr; + return this[(_arityToApplyOrConstr = arityToApplyOrConstructTrapNameRegistry[length]) != null ? _arityToApplyOrConstr : arityToApplyOrConstructTrapNameRegistry.n](_shadowTarget, thisArgOrArgs, argsOrNewTarget); + } + // @ts-ignore: Prevent private property access error. + const { + foreignTargetPointer + } = this; + const thisArgOrNewTarget = isApplyTrap ? thisArgOrArgs : argsOrNewTarget; + let pointerOrPrimitive; + try { + pointerOrPrimitive = foreignCallableApplyOrConstruct(foreignTargetPointer, + // Inline getTransferableValue(). + typeof thisArgOrNewTarget === 'object' && thisArgOrNewTarget !== null || typeof thisArgOrNewTarget === 'function' ? getTransferablePointer(thisArgOrNewTarget) : + // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + typeof thisArgOrNewTarget === 'undefined' ? undefined : thisArgOrNewTarget); + } catch (error) { + var _selectedTarget3; + const errorToThrow = (_selectedTarget3 = selectedTarget) != null ? _selectedTarget3 : error; + selectedTarget = undefined; + throw errorToThrow; + } + let result; + if (typeof pointerOrPrimitive === 'function') { + pointerOrPrimitive(); + result = selectedTarget; + selectedTarget = undefined; + } else { + result = pointerOrPrimitive; + } + return result; + }; + } + function createApplyOrConstructTrapForOneOrMoreArgs(proxyTrapEnum) { + const isApplyTrap = proxyTrapEnum & 1 /* ProxyHandlerTraps.Apply */; + const arityToApplyOrConstructTrapNameRegistry = isApplyTrap ? applyTrapNameRegistry : constructTrapNameRegistry; + const foreignCallableApplyOrConstruct = isApplyTrap ? foreignCallableApply : foreignCallableConstruct; + return function applyOrConstructTrapForOneOrMoreArgs(_shadowTarget, thisArgOrArgs, argsOrNewTarget) { + lastProxyTrapCalled = proxyTrapEnum; + const args = isApplyTrap ? argsOrNewTarget : thisArgOrArgs; + const { + length + } = args; + if (length !== 1) { + var _arityToApplyOrConstr2; + return this[(_arityToApplyOrConstr2 = arityToApplyOrConstructTrapNameRegistry[length]) != null ? _arityToApplyOrConstr2 : arityToApplyOrConstructTrapNameRegistry.n](_shadowTarget, thisArgOrArgs, argsOrNewTarget); + } + // @ts-ignore: Prevent private property access error. + const { + foreignTargetPointer + } = this; + const thisArgOrNewTarget = isApplyTrap ? thisArgOrArgs : argsOrNewTarget; + let pointerOrPrimitive; + try { + const { + 0: arg0 + } = args; + pointerOrPrimitive = foreignCallableApplyOrConstruct(foreignTargetPointer, + // Inline getTransferableValue(). + typeof thisArgOrNewTarget === 'object' && thisArgOrNewTarget !== null || typeof thisArgOrNewTarget === 'function' ? getTransferablePointer(thisArgOrNewTarget) : + // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + typeof thisArgOrNewTarget === 'undefined' ? undefined : thisArgOrNewTarget, + // Inline getTransferableValue(). + typeof arg0 === 'object' && arg0 !== null || typeof arg0 === 'function' ? getTransferablePointer(arg0) : + // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + typeof arg0 === 'undefined' ? undefined : arg0); + } catch (error) { + var _selectedTarget4; + const errorToThrow = (_selectedTarget4 = selectedTarget) != null ? _selectedTarget4 : error; + selectedTarget = undefined; + throw errorToThrow; + } + let result; + if (typeof pointerOrPrimitive === 'function') { + pointerOrPrimitive(); + result = selectedTarget; + selectedTarget = undefined; + } else { + result = pointerOrPrimitive; + } + return result; + }; + } + function createApplyOrConstructTrapForTwoOrMoreArgs(proxyTrapEnum) { + const isApplyTrap = proxyTrapEnum & 1 /* ProxyHandlerTraps.Apply */; + const arityToApplyOrConstructTrapNameRegistry = isApplyTrap ? applyTrapNameRegistry : constructTrapNameRegistry; + const foreignCallableApplyOrConstruct = isApplyTrap ? foreignCallableApply : foreignCallableConstruct; + return function applyOrConstructTrapForTwoOrMoreArgs(_shadowTarget, thisArgOrArgs, argsOrNewTarget) { + lastProxyTrapCalled = proxyTrapEnum; + const args = isApplyTrap ? argsOrNewTarget : thisArgOrArgs; + const { + length + } = args; + if (length !== 2) { + var _arityToApplyOrConstr3; + return this[(_arityToApplyOrConstr3 = arityToApplyOrConstructTrapNameRegistry[length]) != null ? _arityToApplyOrConstr3 : arityToApplyOrConstructTrapNameRegistry.n](_shadowTarget, thisArgOrArgs, argsOrNewTarget); + } + // @ts-ignore: Prevent private property access error. + const { + foreignTargetPointer + } = this; + const thisArgOrNewTarget = isApplyTrap ? thisArgOrArgs : argsOrNewTarget; + let pointerOrPrimitive; + try { + const { + 0: arg0, + 1: arg1 + } = args; + pointerOrPrimitive = foreignCallableApplyOrConstruct(foreignTargetPointer, + // Inline getTransferableValue(). + typeof thisArgOrNewTarget === 'object' && thisArgOrNewTarget !== null || typeof thisArgOrNewTarget === 'function' ? getTransferablePointer(thisArgOrNewTarget) : + // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + typeof thisArgOrNewTarget === 'undefined' ? undefined : thisArgOrNewTarget, + // Inline getTransferableValue(). + typeof arg0 === 'object' && arg0 !== null || typeof arg0 === 'function' ? getTransferablePointer(arg0) : + // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + typeof arg0 === 'undefined' ? undefined : arg0, + // Inline getTransferableValue(). + typeof arg1 === 'object' && arg1 !== null || typeof arg1 === 'function' ? getTransferablePointer(arg1) : + // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + typeof arg1 === 'undefined' ? undefined : arg1); + } catch (error) { + var _selectedTarget5; + const errorToThrow = (_selectedTarget5 = selectedTarget) != null ? _selectedTarget5 : error; + selectedTarget = undefined; + throw errorToThrow; + } + let result; + if (typeof pointerOrPrimitive === 'function') { + pointerOrPrimitive(); + result = selectedTarget; + selectedTarget = undefined; + } else { + result = pointerOrPrimitive; + } + return result; + }; + } + function createApplyOrConstructTrapForThreeOrMoreArgs(proxyTrapEnum) { + const isApplyTrap = proxyTrapEnum & 1 /* ProxyHandlerTraps.Apply */; + const arityToApplyOrConstructTrapNameRegistry = isApplyTrap ? applyTrapNameRegistry : constructTrapNameRegistry; + const foreignCallableApplyOrConstruct = isApplyTrap ? foreignCallableApply : foreignCallableConstruct; + return function applyOrConstructTrapForTwoOrMoreArgs(_shadowTarget, thisArgOrArgs, argsOrNewTarget) { + lastProxyTrapCalled = proxyTrapEnum; + const args = isApplyTrap ? argsOrNewTarget : thisArgOrArgs; + const { + length + } = args; + if (length !== 3) { + var _arityToApplyOrConstr4; + return this[(_arityToApplyOrConstr4 = arityToApplyOrConstructTrapNameRegistry[length]) != null ? _arityToApplyOrConstr4 : arityToApplyOrConstructTrapNameRegistry.n](_shadowTarget, thisArgOrArgs, argsOrNewTarget); + } + // @ts-ignore: Prevent private property access error. + const { + foreignTargetPointer + } = this; + const thisArgOrNewTarget = isApplyTrap ? thisArgOrArgs : argsOrNewTarget; + let pointerOrPrimitive; + try { + const { + 0: arg0, + 1: arg1, + 2: arg2 + } = args; + pointerOrPrimitive = foreignCallableApplyOrConstruct(foreignTargetPointer, + // Inline getTransferableValue(). + typeof thisArgOrNewTarget === 'object' && thisArgOrNewTarget !== null || typeof thisArgOrNewTarget === 'function' ? getTransferablePointer(thisArgOrNewTarget) : + // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + typeof thisArgOrNewTarget === 'undefined' ? undefined : thisArgOrNewTarget, + // Inline getTransferableValue(). + typeof arg0 === 'object' && arg0 !== null || typeof arg0 === 'function' ? getTransferablePointer(arg0) : + // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + typeof arg0 === 'undefined' ? undefined : arg0, + // Inline getTransferableValue(). + typeof arg1 === 'object' && arg1 !== null || typeof arg1 === 'function' ? getTransferablePointer(arg1) : + // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + typeof arg1 === 'undefined' ? undefined : arg1, + // Inline getTransferableValue(). + typeof arg2 === 'object' && arg2 !== null || typeof arg2 === 'function' ? getTransferablePointer(arg2) : + // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + typeof arg2 === 'undefined' ? undefined : arg2); + } catch (error) { + var _selectedTarget6; + const errorToThrow = (_selectedTarget6 = selectedTarget) != null ? _selectedTarget6 : error; + selectedTarget = undefined; + throw errorToThrow; + } + let result; + if (typeof pointerOrPrimitive === 'function') { + pointerOrPrimitive(); + result = selectedTarget; + selectedTarget = undefined; + } else { + result = pointerOrPrimitive; + } + return result; + }; + } + function createApplyOrConstructTrapForFourOrMoreArgs(proxyTrapEnum) { + const isApplyTrap = proxyTrapEnum & 1 /* ProxyHandlerTraps.Apply */; + const arityToApplyOrConstructTrapNameRegistry = isApplyTrap ? applyTrapNameRegistry : constructTrapNameRegistry; + const foreignCallableApplyOrConstruct = isApplyTrap ? foreignCallableApply : foreignCallableConstruct; + return function applyOrConstructTrapForTwoOrMoreArgs(_shadowTarget, thisArgOrArgs, argsOrNewTarget) { + lastProxyTrapCalled = proxyTrapEnum; + const args = isApplyTrap ? argsOrNewTarget : thisArgOrArgs; + const { + length + } = args; + if (length !== 4) { + var _arityToApplyOrConstr5; + return this[(_arityToApplyOrConstr5 = arityToApplyOrConstructTrapNameRegistry[length]) != null ? _arityToApplyOrConstr5 : arityToApplyOrConstructTrapNameRegistry.n](_shadowTarget, thisArgOrArgs, argsOrNewTarget); + } + // @ts-ignore: Prevent private property access error. + const { + foreignTargetPointer + } = this; + const thisArgOrNewTarget = isApplyTrap ? thisArgOrArgs : argsOrNewTarget; + let pointerOrPrimitive; + try { + const { + 0: arg0, + 1: arg1, + 2: arg2, + 3: arg3 + } = args; + pointerOrPrimitive = foreignCallableApplyOrConstruct(foreignTargetPointer, + // Inline getTransferableValue(). + typeof thisArgOrNewTarget === 'object' && thisArgOrNewTarget !== null || typeof thisArgOrNewTarget === 'function' ? getTransferablePointer(thisArgOrNewTarget) : + // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + typeof thisArgOrNewTarget === 'undefined' ? undefined : thisArgOrNewTarget, + // Inline getTransferableValue(). + typeof arg0 === 'object' && arg0 !== null || typeof arg0 === 'function' ? getTransferablePointer(arg0) : + // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + typeof arg0 === 'undefined' ? undefined : arg0, + // Inline getTransferableValue(). + typeof arg1 === 'object' && arg1 !== null || typeof arg1 === 'function' ? getTransferablePointer(arg1) : + // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + typeof arg1 === 'undefined' ? undefined : arg1, + // Inline getTransferableValue(). + typeof arg2 === 'object' && arg2 !== null || typeof arg2 === 'function' ? getTransferablePointer(arg2) : + // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + typeof arg2 === 'undefined' ? undefined : arg2, + // Inline getTransferableValue(). + typeof arg3 === 'object' && arg3 !== null || typeof arg3 === 'function' ? getTransferablePointer(arg3) : + // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + typeof arg3 === 'undefined' ? undefined : arg3); + } catch (error) { + var _selectedTarget7; + const errorToThrow = (_selectedTarget7 = selectedTarget) != null ? _selectedTarget7 : error; + selectedTarget = undefined; + throw errorToThrow; + } + let result; + if (typeof pointerOrPrimitive === 'function') { + pointerOrPrimitive(); + result = selectedTarget; + selectedTarget = undefined; + } else { + result = pointerOrPrimitive; + } + return result; + }; + } + function createApplyOrConstructTrapForFiveOrMoreArgs(proxyTrapEnum) { + const isApplyTrap = proxyTrapEnum & 1 /* ProxyHandlerTraps.Apply */; + const arityToApplyOrConstructTrapNameRegistry = isApplyTrap ? applyTrapNameRegistry : constructTrapNameRegistry; + const foreignCallableApplyOrConstruct = isApplyTrap ? foreignCallableApply : foreignCallableConstruct; + return function applyOrConstructTrapForTwoOrMoreArgs(_shadowTarget, thisArgOrArgs, argsOrNewTarget) { + lastProxyTrapCalled = proxyTrapEnum; + const args = isApplyTrap ? argsOrNewTarget : thisArgOrArgs; + const { + length + } = args; + if (length !== 5) { + var _arityToApplyOrConstr6; + return this[(_arityToApplyOrConstr6 = arityToApplyOrConstructTrapNameRegistry[length]) != null ? _arityToApplyOrConstr6 : arityToApplyOrConstructTrapNameRegistry.n](_shadowTarget, thisArgOrArgs, argsOrNewTarget); + } + // @ts-ignore: Prevent private property access error. + const { + foreignTargetPointer + } = this; + const thisArgOrNewTarget = isApplyTrap ? thisArgOrArgs : argsOrNewTarget; + let pointerOrPrimitive; + try { + const { + 0: arg0, + 1: arg1, + 2: arg2, + 3: arg3, + 4: arg4 + } = args; + pointerOrPrimitive = foreignCallableApplyOrConstruct(foreignTargetPointer, + // Inline getTransferableValue(). + typeof thisArgOrNewTarget === 'object' && thisArgOrNewTarget !== null || typeof thisArgOrNewTarget === 'function' ? getTransferablePointer(thisArgOrNewTarget) : + // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + typeof thisArgOrNewTarget === 'undefined' ? undefined : thisArgOrNewTarget, + // Inline getTransferableValue(). + typeof arg0 === 'object' && arg0 !== null || typeof arg0 === 'function' ? getTransferablePointer(arg0) : + // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + typeof arg0 === 'undefined' ? undefined : arg0, + // Inline getTransferableValue(). + typeof arg1 === 'object' && arg1 !== null || typeof arg1 === 'function' ? getTransferablePointer(arg1) : + // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + typeof arg1 === 'undefined' ? undefined : arg1, + // Inline getTransferableValue(). + typeof arg2 === 'object' && arg2 !== null || typeof arg2 === 'function' ? getTransferablePointer(arg2) : + // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + typeof arg2 === 'undefined' ? undefined : arg2, + // Inline getTransferableValue(). + typeof arg3 === 'object' && arg3 !== null || typeof arg3 === 'function' ? getTransferablePointer(arg3) : + // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + typeof arg3 === 'undefined' ? undefined : arg3, + // Inline getTransferableValue(). + typeof arg4 === 'object' && arg4 !== null || typeof arg4 === 'function' ? getTransferablePointer(arg4) : + // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + typeof arg4 === 'undefined' ? undefined : arg4); + } catch (error) { + var _selectedTarget8; + const errorToThrow = (_selectedTarget8 = selectedTarget) != null ? _selectedTarget8 : error; + selectedTarget = undefined; + throw errorToThrow; + } + let result; + if (typeof pointerOrPrimitive === 'function') { + pointerOrPrimitive(); + result = selectedTarget; + selectedTarget = undefined; + } else { + result = pointerOrPrimitive; + } + return result; + }; + } + function createApplyOrConstructTrapForAnyNumberOfArgs(proxyTrapEnum) { + const isApplyTrap = proxyTrapEnum & 1 /* ProxyHandlerTraps.Apply */; + const foreignCallableApplyOrConstruct = isApplyTrap ? foreignCallableApply : foreignCallableConstruct; + return function applyOrConstructTrapForAnyNumberOfArgs(_shadowTarget, thisArgOrArgs, argsOrNewTarget) { + lastProxyTrapCalled = proxyTrapEnum; + // @ts-ignore: Prevent private property access error. + const { + foreignTargetPointer + } = this; + const args = isApplyTrap ? argsOrNewTarget : thisArgOrArgs; + const { + length + } = args; + const thisArgOrNewTarget = isApplyTrap ? thisArgOrArgs : argsOrNewTarget; + let combinedOffset = 2; + const combinedArgs = new ArrayCtor(length + combinedOffset); + combinedArgs[0] = foreignTargetPointer; + let pointerOrPrimitive; + try { + combinedArgs[1] = typeof thisArgOrNewTarget === 'object' && thisArgOrNewTarget !== null || typeof thisArgOrNewTarget === 'function' ? getTransferablePointer(thisArgOrNewTarget) : + // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + typeof thisArgOrNewTarget === 'undefined' ? undefined : thisArgOrNewTarget; + for (let i = 0; i < length; i += 1) { + const arg = args[i]; + // Inlining `getTransferableValue()`. + combinedArgs[combinedOffset++] = typeof arg === 'object' && arg !== null || typeof arg === 'function' ? getTransferablePointer(arg) : + // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + typeof arg === 'undefined' ? undefined : arg; + } + pointerOrPrimitive = ReflectApply(foreignCallableApplyOrConstruct, undefined, combinedArgs); + } catch (error) { + var _selectedTarget9; + const errorToThrow = (_selectedTarget9 = selectedTarget) != null ? _selectedTarget9 : error; + selectedTarget = undefined; + throw errorToThrow; + } + let result; + if (typeof pointerOrPrimitive === 'function') { + pointerOrPrimitive(); + result = selectedTarget; + selectedTarget = undefined; + } else { + result = pointerOrPrimitive; + } + return result; + }; + } + function createDescriptorFromMeta(configurable, enumerable, writable, valuePointerOrPrimitive, getterPointerOrPrimitive, setterPointerOrPrimitive) { + const safeDesc = { + __proto__: null + }; + if (configurable !== LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL) { + safeDesc.configurable = configurable; + } + if (enumerable !== LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL) { + safeDesc.enumerable = enumerable; + } + if (writable !== LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL) { + safeDesc.writable = writable; + } + if (getterPointerOrPrimitive !== LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL) { + if (typeof getterPointerOrPrimitive === 'function') { + getterPointerOrPrimitive(); + safeDesc.get = selectedTarget; + selectedTarget = undefined; + } else { + safeDesc.get = undefined; + } + } + if (setterPointerOrPrimitive !== LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL) { + if (typeof setterPointerOrPrimitive === 'function') { + setterPointerOrPrimitive(); + safeDesc.set = selectedTarget; + selectedTarget = undefined; + } else { + safeDesc.set = undefined; + } + } + if (valuePointerOrPrimitive !== LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL) { + if (typeof valuePointerOrPrimitive === 'function') { + valuePointerOrPrimitive(); + safeDesc.value = selectedTarget; + selectedTarget = undefined; + } else { + safeDesc.value = valuePointerOrPrimitive; + } + } + return safeDesc; + } + function createPointer(originalTarget) { + const pointer = () => { + // assert: selectedTarget is undefined + selectedTarget = originalTarget; + }; + return pointer; + } + const disableFastForeignTargetPointers = IS_IN_SHADOW_REALM ? () => { + useFastForeignTargetPath = false; + useFastForeignTargetPathForTypedArrays = false; + clearFastForeignTargetPointers(); + } : noop; + const getLazyPropertyDescriptorStateByTarget = IS_IN_SHADOW_REALM ? target => { + let state = lazyPropertyDescriptorStateCache.get(target); + if (state === undefined) { + const statePointerOrUndefined = foreignCallableGetLazyPropertyDescriptorStateByTarget(getTransferablePointer(target)); + if (typeof statePointerOrUndefined === 'function') { + statePointerOrUndefined(); + state = selectedTarget; + selectedTarget = undefined; + if (state) { + lazyPropertyDescriptorStateCache.set(target, state); + } + } + } + return state; + } : noop; + const isForeignPointerOfObjectProto = IS_IN_SHADOW_REALM ? + // eslint-disable-next-line no-return-assign + foreignTargetPointer => foreignTargetPointer === (foreignPointerObjectProto === undefined ? foreignPointerObjectProto = getTransferablePointer(ObjectProto) : foreignPointerObjectProto) : alwaysFalse; + const isForeignPointerOfTypedArrayProto = IS_IN_SHADOW_REALM ? + // eslint-disable-next-line no-return-assign + foreignTargetPointer => foreignTargetPointer === (foreignPointerFloat32ArrayProto === undefined ? foreignPointerFloat32ArrayProto = getTransferablePointer(Float32ArrayProto) : foreignPointerFloat32ArrayProto) || foreignTargetPointer === (foreignPointerFloat64ArrayProto === undefined ? foreignPointerFloat64ArrayProto = getTransferablePointer(Float64ArrayProto) : foreignPointerFloat64ArrayProto) || foreignTargetPointer === (foreignPointerInt8ArrayProto === undefined ? foreignPointerInt8ArrayProto = getTransferablePointer(Int8ArrayProto) : foreignPointerInt8ArrayProto) || foreignTargetPointer === (foreignPointerInt16ArrayProto === undefined ? foreignPointerInt16ArrayProto = getTransferablePointer(Int16ArrayProto) : foreignPointerInt16ArrayProto) || foreignTargetPointer === (foreignPointerInt32ArrayProto === undefined ? foreignPointerInt32ArrayProto = getTransferablePointer(Int32ArrayProto) : foreignPointerInt32ArrayProto) || foreignTargetPointer === (foreignPointerUint8ArrayProto === undefined ? foreignPointerUint8ArrayProto = getTransferablePointer(Uint8ArrayProto) : foreignPointerUint8ArrayProto) || foreignTargetPointer === (foreignPointerUint16ArrayProto === undefined ? foreignPointerUint16ArrayProto = getTransferablePointer(Uint16ArrayProto) : foreignPointerUint16ArrayProto) || foreignTargetPointer === (foreignPointerUint32ArrayProto === undefined ? foreignPointerUint32ArrayProto = getTransferablePointer(Uint32ArrayProto) : foreignPointerUint32ArrayProto) || foreignTargetPointer === (foreignPointerTypedArrayProto === undefined ? foreignPointerTypedArrayProto = getTransferablePointer(TypedArrayProto) : foreignPointerTypedArrayProto) || foreignTargetPointer === (foreignPointerBigInt64ArrayProto === undefined ? foreignPointerBigInt64ArrayProto = BigInt64ArrayProto ? getTransferablePointer(BigInt64ArrayProto) : noop : foreignPointerBigInt64ArrayProto) || foreignTargetPointer === (foreignPointerBigUint64ArrayProto === undefined ? foreignPointerBigUint64ArrayProto = BigUint64ArrayProto ? getTransferablePointer(BigUint64ArrayProto) : noop : foreignPointerBigUint64ArrayProto) : alwaysFalse; + function getTransferablePointer(originalTarget, foreignCallablePusher = foreignCallablePushTarget) { + let proxyPointer = proxyPointerCache.get(originalTarget); + if (proxyPointer) { + return proxyPointer; + } + let targetFunctionArity = 0; + let targetFunctionName = ''; + let targetTypedArrayLength = 0; + if (revokedProxyCallback && revokedProxyCallback(originalTarget)) { + proxyPointer = foreignCallablePusher(createPointer(originalTarget), 64 /* TargetTraits.Revoked */, targetFunctionArity, targetFunctionName, targetTypedArrayLength); + proxyPointerCache.set(originalTarget, proxyPointer); + return proxyPointer; + } + let distortionTarget; + let targetTraits = 16 /* TargetTraits.IsObject */; + if (distortionCallback) { + distortionTarget = distortionCallback(originalTarget); + // If a distortion entry is found, it must be a valid proxy target. + if (distortionTarget !== originalTarget && typeof distortionTarget !== typeof originalTarget) { + throw new TypeErrorCtor(`Invalid distortion ${toSafeTemplateStringValue(originalTarget)}.`); + } + } else { + distortionTarget = originalTarget; + } + let isPossiblyRevoked = true; + if (typeof distortionTarget === 'function') { + isPossiblyRevoked = false; + targetFunctionArity = 0; + targetTraits = 4 /* TargetTraits.IsFunction */; + try { + // Detect arrow functions. + if (!('prototype' in distortionTarget)) { + targetTraits |= 8 /* TargetTraits.IsArrowFunction */; + } + + const safeLengthDesc = ReflectGetOwnPropertyDescriptor(originalTarget, 'length'); + if (safeLengthDesc) { + ReflectSetPrototypeOf(safeLengthDesc, null); + const { + value: safeLengthDescValue + } = safeLengthDesc; + if (typeof safeLengthDescValue === 'number') { + targetFunctionArity = safeLengthDescValue; + } + } + const safeNameDesc = false ? ReflectGetOwnPropertyDescriptor(originalTarget, 'name') : undefined; + if (safeNameDesc) ; + } catch (_unused16) { + isPossiblyRevoked = true; + } + } else if (ArrayBufferIsView(distortionTarget)) { + isPossiblyRevoked = false; + targetTraits = 2 /* TargetTraits.IsArrayBufferView */; + try { + targetTypedArrayLength = ReflectApply(TypedArrayProtoLengthGetter, distortionTarget, []); + targetTraits |= 32 /* TargetTraits.IsTypedArray */; + // eslint-disable-next-line no-empty + } catch (_unused17) { + // Could be a DataView object or a revoked proxy. + isPossiblyRevoked = true; + } + } + if (isPossiblyRevoked) { + try { + if (isArrayOrThrowForRevoked(distortionTarget)) { + targetTraits = 1 /* TargetTraits.IsArray */; + } + } catch (_unused18) { + targetTraits = 64 /* TargetTraits.Revoked */; + } + } + + proxyPointer = foreignCallablePusher(createPointer(distortionTarget), targetTraits, targetFunctionArity, targetFunctionName, targetTypedArrayLength); + proxyPointerCache.set(originalTarget, proxyPointer); + return proxyPointer; + } + const installPropertyDescriptorMethodWrappers = IS_IN_SHADOW_REALM ? unforgeableGlobalThisKeys => { + if (installedPropertyDescriptorMethodWrappersFlag) { + return; + } + installedPropertyDescriptorMethodWrappersFlag = true; + // We wrap property descriptor methods to activate lazy + // descriptors and/or workaround browser bugs. The following + // methods are wrapped: + // Object.getOwnPropertyDescriptors() + // Object.getOwnPropertyDescriptor() + // Reflect.defineProperty() + // Reflect.getOwnPropertyDescriptor() + // Object.prototype.__defineGetter__() + // Object.prototype.__defineSetter__() + // Object.prototype.__lookupGetter__() + // Object.prototype.__lookupSetter__() + // + // Chromium based browsers have a bug that nulls the result + // of `window` getters in detached iframes when the property + // descriptor of `window.window` is retrieved. + // https://bugs.chromium.org/p/chromium/issues/detail?id=1305302 + // + // Methods may be poisoned when they interact with the `window` + // object and retrieve property descriptors, like 'window', + // that contain the `window` object itself. The following + // built-in methods are susceptible to this issue: + // console.log(window); + // Object.getOwnPropertyDescriptors(window); + // Object.getOwnPropertyDescriptor(window, 'window'); + // Reflect.getOwnPropertyDescriptor(window, 'window'); + // window.__lookupGetter__('window'); + // window.__lookupSetter__('window'); + // + // We side step issues with `console` by mapping it to the + // primary realm's `console`. Since we're already wrapping + // property descriptor methods to activate lazy descriptors + // we use the wrapper to workaround the `window` getter + // nulling bug. + const shouldFixChromeBug = isArrayOrThrowForRevoked(unforgeableGlobalThisKeys) && unforgeableGlobalThisKeys.length > 0; + // Lazily populated by `getUnforgeableGlobalThisGetter()`; + const keyToGlobalThisGetterRegistry = shouldFixChromeBug ? { + __proto__: null + } : undefined; + const getFixedDescriptor = shouldFixChromeBug ? (target, key) => ReflectApply(ArrayProtoIncludes, unforgeableGlobalThisKeys, [key]) ? { + configurable: false, + enumerable: ReflectApply(ObjectProtoPropertyIsEnumerable, target, [key]), + // eslint-disable-next-line @typescript-eslint/no-use-before-define + get: getUnforgeableGlobalThisGetter(key), + set: undefined + } : ReflectGetOwnPropertyDescriptor(target, key) : undefined; + const getUnforgeableGlobalThisGetter = shouldFixChromeBug ? key => { + let globalThisGetter = keyToGlobalThisGetterRegistry[key]; + if (globalThisGetter === undefined) { + // We can't access the original getter to mask + // with `proxyMaskFunction()`, so instead we wrap + // `unboundGlobalThisGetter` in bound function + // to obscure the getter source as "[native code]". + globalThisGetter = ReflectApply(FunctionProtoBind, + // eslint-disable-next-line @typescript-eslint/no-use-before-define + unboundGlobalThisGetter, []); + // Preserve identity continuity of getters. + keyToGlobalThisGetterRegistry[key] = globalThisGetter; + } + return globalThisGetter; + } : undefined; + const lookupFixedGetter = shouldFixChromeBug ? (target, key) => ReflectApply(ArrayProtoIncludes, unforgeableGlobalThisKeys, [key]) ? getUnforgeableGlobalThisGetter(key) : ReflectApply(ObjectProtoLookupGetter, target, [key]) : undefined; + const lookupFixedSetter = shouldFixChromeBug ? (target, key) => ReflectApply(ArrayProtoIncludes, unforgeableGlobalThisKeys, [key]) ? undefined : ReflectApply(ObjectProtoLookupSetter, target, [key]) : undefined; + const unboundGlobalThisGetter = shouldFixChromeBug ? () => globalThisRef : undefined; + const wrapDefineAccessOrProperty = originalFunc => { + const { + length: originalFuncLength + } = originalFunc; + // `__defineGetter__()` and `__defineSetter__()` have + // function lengths of 2 while `Reflect.defineProperty()` + // has a function length of 3. + const useThisArgAsTarget = originalFuncLength === 2; + return new ProxyCtor(originalFunc, { + apply(_originalFunc, thisArg, args) { + if (args.length >= originalFuncLength) { + const target = useThisArgAsTarget ? thisArg : args[0]; + if (typeof target === 'object' && target !== null || typeof target === 'function') { + const key = useThisArgAsTarget ? args[0] : args[1]; + const state = getLazyPropertyDescriptorStateByTarget(target); + if (state != null && state[key]) { + // Activate the descriptor by triggering + // its getter. + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + target[key]; + } + } + } + return ReflectApply(originalFunc, thisArg, args); + } + }); + }; + const wrapLookupAccessor = (originalFunc, lookupFixedAccessor) => new ProxyCtor(originalFunc, { + apply(_originalFunc, thisArg, args) { + if (args.length && (typeof thisArg === 'object' && thisArg !== null || typeof thisArg === 'function')) { + const { + 0: key + } = args; + const state = getLazyPropertyDescriptorStateByTarget(thisArg); + if (state != null && state[key]) { + // Activate the descriptor by triggering + // its getter. + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + thisArg[key]; + } + if (shouldFixChromeBug && thisArg === globalThisRef) { + return lookupFixedAccessor(thisArg, key); + } + } + return ReflectApply(originalFunc, thisArg, args); + } + }); + const wrapGetOwnPropertyDescriptor = originalFunc => new ProxyCtor(originalFunc, { + apply(_originalFunc, thisArg, args) { + if (args.length > 1) { + const { + 0: target, + 1: key + } = args; + if (typeof target === 'object' && target !== null || typeof target === 'function') { + const state = getLazyPropertyDescriptorStateByTarget(target); + if (state != null && state[key]) { + // Activate the descriptor by triggering + // its getter. + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + target[key]; + } + if (shouldFixChromeBug && target === globalThisRef) { + return getFixedDescriptor(target, key); + } + } + } + return ReflectApply(originalFunc, thisArg, args); + } + }); + const wrapGetOwnPropertyDescriptors = originalFunc => new ProxyCtor(originalFunc, { + apply(_originalFunc, thisArg, args) { + const target = args.length ? args[0] : undefined; + if (!(typeof target === 'object' && target !== null || typeof target === 'function')) { + // Defer to native method to throw exception. + return ReflectApply(originalFunc, thisArg, args); + } + const state = getLazyPropertyDescriptorStateByTarget(target); + const isFixingChromeBug = target === globalThisRef && shouldFixChromeBug; + const unsafeDescs = isFixingChromeBug ? + // Create an empty property descriptor map + // to populate with curated descriptors. + {} : + // Since this is not a global object it is + // safe to use the native method. + ReflectApply(originalFunc, thisArg, args); + if (!isFixingChromeBug && state === undefined) { + // Exit early if the target is not a global + // object and there are no lazy descriptors. + return unsafeDescs; + } + const ownKeys = ReflectOwnKeys(isFixingChromeBug ? target : unsafeDescs); + for (let i = 0, { + length + } = ownKeys; i < length; i += 1) { + const ownKey = ownKeys[i]; + const isLazyProp = !!(state != null && state[ownKey]); + if (isLazyProp) { + // Activate the descriptor by triggering + // its getter. + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + target[ownKey]; + } + if (isLazyProp || isFixingChromeBug) { + const unsafeDesc = isFixingChromeBug ? getFixedDescriptor(target, ownKey) : ReflectGetOwnPropertyDescriptor(target, ownKey); + // Update the descriptor map entry. + if (unsafeDesc) { + unsafeDescs[ownKey] = unsafeDesc; + } else if (!isFixingChromeBug) { + ReflectDeleteProperty(unsafeDescs, ownKey); + } + } + } + return unsafeDescs; + } + }); + try { + ReflectRef.defineProperty = wrapDefineAccessOrProperty(ReflectDefineProperty); + // eslint-disable-next-line no-empty + } catch (_unused19) {} + try { + ReflectRef.getOwnPropertyDescriptor = wrapGetOwnPropertyDescriptor(ReflectGetOwnPropertyDescriptor); + // eslint-disable-next-line no-empty + } catch (_unused20) {} + try { + ObjectCtor.getOwnPropertyDescriptor = wrapGetOwnPropertyDescriptor(ObjectGetOwnPropertyDescriptor); + // eslint-disable-next-line no-empty + } catch (_unused21) {} + try { + ObjectCtor.getOwnPropertyDescriptors = wrapGetOwnPropertyDescriptors(ObjectGetOwnPropertyDescriptors); + // eslint-disable-next-line no-empty + } catch (_unused22) {} + try { + // eslint-disable-next-line @typescript-eslint/naming-convention, no-restricted-properties, no-underscore-dangle + ObjectProto.__defineGetter__ = wrapDefineAccessOrProperty(ObjectProtoDefineGetter); + // eslint-disable-next-line no-empty + } catch (_unused23) {} + try { + // eslint-disable-next-line @typescript-eslint/naming-convention, no-restricted-properties, no-underscore-dangle + ObjectProto.__defineSetter__ = wrapDefineAccessOrProperty(ObjectProtoDefineSetter); + // eslint-disable-next-line no-empty + } catch (_unused24) {} + try { + // eslint-disable-next-line @typescript-eslint/naming-convention, no-underscore-dangle + ObjectProto.__lookupGetter__ = wrapLookupAccessor(ObjectProtoLookupGetter, lookupFixedGetter); + // eslint-disable-next-line no-empty + } catch (_unused25) {} + try { + // eslint-disable-next-line @typescript-eslint/naming-convention, no-underscore-dangle + ObjectProto.__lookupSetter__ = wrapLookupAccessor(ObjectProtoLookupSetter, lookupFixedSetter); + // eslint-disable-next-line no-empty + } catch (_unused26) {} + } : noop; + function lookupForeignDescriptor(foreignTargetPointer, shadowTarget, key) { + let protoPointerOrNull; + let safeDesc; + try { + protoPointerOrNull = foreignCallableBatchGetPrototypeOfWhenHasNoOwnPropertyDescriptor(foreignTargetPointer, key, (_key, configurable, enumerable, writable, valuePointerOrPrimitive, getterPointerOrPrimitive, setterPointerOrPrimitive) => { + safeDesc = { + __proto__: null, + foreign: true + }; + if (configurable !== LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL) { + safeDesc.configurable = configurable; + } + if (enumerable !== LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL) { + safeDesc.enumerable = enumerable; + } + if (writable !== LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL) { + safeDesc.writable = writable; + } + if (getterPointerOrPrimitive !== LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL) { + if (typeof getterPointerOrPrimitive === 'function') { + getterPointerOrPrimitive(); + safeDesc.get = selectedTarget; + selectedTarget = undefined; + } else { + safeDesc.get = undefined; + } + } + if (setterPointerOrPrimitive !== LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL) { + if (typeof setterPointerOrPrimitive === 'function') { + setterPointerOrPrimitive(); + safeDesc.set = selectedTarget; + selectedTarget = undefined; + } else { + safeDesc.set = undefined; + } + } + if (valuePointerOrPrimitive !== LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL) { + if (typeof valuePointerOrPrimitive === 'function') { + valuePointerOrPrimitive(); + safeDesc.value = selectedTarget; + selectedTarget = undefined; + } else { + safeDesc.value = valuePointerOrPrimitive; + } + } + if (configurable === false) { + // Update the descriptor to non-configurable on + // the shadow target. + ReflectDefineProperty(shadowTarget, key, safeDesc); + } + }); + } catch (error) { + var _selectedTarget10; + const errorToThrow = (_selectedTarget10 = selectedTarget) != null ? _selectedTarget10 : error; + selectedTarget = undefined; + throw errorToThrow; + } + if (safeDesc === undefined) { + // Avoiding calling the has trap for any proto chain operation, + // instead we implement the regular logic here in this trap. + let currentObject; + if (typeof protoPointerOrNull === 'function') { + protoPointerOrNull(); + currentObject = selectedTarget; + selectedTarget = undefined; + } else { + currentObject = null; + } + while (currentObject) { + safeDesc = ReflectGetOwnPropertyDescriptor(currentObject, key); + if (safeDesc) { + ReflectSetPrototypeOf(safeDesc, null); + break; + } + currentObject = ReflectGetPrototypeOf(currentObject); + } + if (safeDesc) { + var _ref3; + const { + get: getter, + set: setter, + value: localValue + } = safeDesc; + const possibleProxy = (_ref3 = getter != null ? getter : setter) != null ? _ref3 : localValue; + safeDesc.foreign = (typeof possibleProxy === 'object' && possibleProxy !== null || typeof possibleProxy === 'function') && proxyPointerCache.get(possibleProxy) !== undefined; + } + } + return safeDesc; + } + function passthruForeignTraversedSet(foreignTargetPointer, shadowTarget, key, value, receiver) { + const safeDesc = lookupForeignDescriptor(foreignTargetPointer, shadowTarget, key); + // Following the specification steps for + // OrdinarySetWithOwnDescriptor ( O, P, V, Receiver, ownDesc ). + // https://tc39.es/ecma262/#sec-ordinarysetwithowndescriptor + if (safeDesc) { + if ('get' in safeDesc || 'set' in safeDesc) { + const { + set: setter + } = safeDesc; + if (setter) { + if (safeDesc.foreign) { + foreignCallableApply(getTransferablePointer(setter), + // Inline getTransferableValue(). + typeof receiver === 'object' && receiver !== null || typeof receiver === 'function' ? getTransferablePointer(receiver) : + // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + typeof receiver === 'undefined' ? undefined : receiver, + // Inline getTransferableValue(). + typeof value === 'object' && value !== null || typeof value === 'function' ? getTransferablePointer(value) : + // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + typeof value === 'undefined' ? undefined : value); + } else { + // Even though the setter function exists, we can't + // use `ReflectSet()` because there might be a + // distortion for that setter function, in which + // case we must resolve the local setter and call + // it instead. + ReflectApply(setter, receiver, [value]); + } + // If there is a setter, it either throw or we can assume + // the value was set. + return true; + } + return false; + } + if (safeDesc.writable === false) { + return false; + } + } + // Exit early if receiver is not object like. + if (!(typeof receiver === 'object' && receiver !== null || typeof receiver === 'function')) { + return false; + } + const safeReceiverDesc = ReflectGetOwnPropertyDescriptor(receiver, key); + if (safeReceiverDesc) { + ReflectSetPrototypeOf(safeReceiverDesc, null); + // Exit early for accessor descriptors or non-writable data + // descriptors. + if ('get' in safeReceiverDesc || 'set' in safeReceiverDesc || safeReceiverDesc.writable === false) { + return false; + } + // Setting the descriptor with only a value entry should not + // affect existing descriptor traits. + ReflectDefineProperty(receiver, key, { + __proto__: null, + value + }); + return true; + } + // `ReflectDefineProperty()` and `ReflectSet()` both are expected + // to return `false` when attempting to add a new property if the + // receiver is not extensible. + return ReflectDefineProperty(receiver, key, { + __proto__: null, + configurable: true, + enumerable: true, + value, + writable: true + }); + } + function pushErrorAcrossBoundary(error) { + if (LOCKER_DEBUGGABLE_FLAG) { + checkDebugMode(); + } + // Inline getTransferableValue(). + if (typeof error === 'object' && error !== null || typeof error === 'function') { + const foreignErrorPointer = getTransferablePointer(error, foreignCallablePushErrorTarget); + foreignErrorPointer(); + } + return error; + } + function pushTarget(foreignTargetPointer, foreignTargetTraits, foreignTargetFunctionArity, foreignTargetFunctionName, foreignTargetTypedArrayLength) { + // eslint-disable-next-line @typescript-eslint/no-use-before-define + const { + proxy + } = new BoundaryProxyHandler(foreignTargetPointer, foreignTargetTraits, foreignTargetFunctionArity, foreignTargetFunctionName, foreignTargetTypedArrayLength); + proxyPointerCache.set(proxy, foreignTargetPointer); + return createPointer(proxy); + } + const setLazyPropertyDescriptorStateByTarget = IS_IN_SHADOW_REALM ? (target, state) => { + lazyPropertyDescriptorStateCache.set(target, state); + foreignCallableSetLazyPropertyDescriptorStateByTarget(getTransferablePointer(target), getTransferablePointer(state)); + } : noop; + class BoundaryProxyHandler { + constructor(foreignTargetPointer, foreignTargetTraits, foreignTargetFunctionArity, foreignTargetFunctionName, foreignTargetTypedArrayLength) { + // Internal red/shadow realm side utilities: + this.makeProxyLive = IS_IN_SHADOW_REALM ? function () { + // Replace pending traps with live traps that can work with the + // target without taking snapshots. + this.deleteProperty = BoundaryProxyHandler.passthruDeletePropertyTrap; + this.defineProperty = BoundaryProxyHandler.passthruDefinePropertyTrap; + this.preventExtensions = BoundaryProxyHandler.passthruPreventExtensionsTrap; + this.set = BoundaryProxyHandler.passthruSetTrap; + this.setPrototypeOf = BoundaryProxyHandler.passthruSetPrototypeOfTrap; + } : noop; + this.makeProxyStatic = IS_IN_SHADOW_REALM ? function () { + // Reset all traps except apply and construct for static proxies + // since the proxy target is the shadow target and all operations + // are going to be applied to it rather than the real target. + this.defineProperty = BoundaryProxyHandler.staticDefinePropertyTrap; + this.deleteProperty = BoundaryProxyHandler.staticDeletePropertyTrap; + this.get = BoundaryProxyHandler.staticGetTrap; + this.getOwnPropertyDescriptor = BoundaryProxyHandler.staticGetOwnPropertyDescriptorTrap; + this.getPrototypeOf = BoundaryProxyHandler.staticGetPrototypeOfTrap; + this.has = BoundaryProxyHandler.staticHasTrap; + this.isExtensible = BoundaryProxyHandler.staticIsExtensibleTrap; + this.ownKeys = BoundaryProxyHandler.staticOwnKeysTrap; + this.preventExtensions = BoundaryProxyHandler.staticPreventExtensionsTrap; + this.set = BoundaryProxyHandler.staticSetTrap; + this.setPrototypeOf = BoundaryProxyHandler.staticSetPrototypeOfTrap; + const { + foreignTargetPointer, + foreignTargetTraits, + shadowTarget + } = this; + if (useFastForeignTargetPath) { + fastForeignTargetPointers.delete(foreignTargetPointer); + } + // We don't wrap `foreignCallableGetTargetIntegrityTraits()` + // in a try-catch because it cannot throw. + const targetIntegrityTraits = foreignCallableGetTargetIntegrityTraits(foreignTargetPointer); + if (targetIntegrityTraits & 8 /* TargetIntegrityTraits.Revoked */) { + // the target is a revoked proxy, in which case we revoke + // this proxy as well. + this.revoke(); + return; + } + // A proxy can revoke itself when traps are triggered and break + // the membrane, therefore we need protection. + try { + copyForeignOwnPropertyDescriptorsAndPrototypeToShadowTarget(foreignTargetPointer, shadowTarget); + } catch (_unused27) { + // We don't wrap `foreignCallableIsTargetRevoked()` in a + // try-catch because it cannot throw. + if (foreignCallableIsTargetRevoked(foreignTargetPointer)) { + this.revoke(); + return; + } + } + if (foreignTargetTraits & 16 /* TargetTraits.IsObject */ && !(SymbolToStringTag in shadowTarget)) { + let toStringTag = 'Object'; + try { + toStringTag = foreignCallableGetToStringTagOfTarget(foreignTargetPointer); + // eslint-disable-next-line no-empty + } catch (_unused28) {} + this.staticToStringTag = toStringTag; + } + // Preserve the semantics of the target. + if (targetIntegrityTraits & 4 /* TargetIntegrityTraits.IsFrozen */) { + ObjectFreeze(shadowTarget); + } else { + if (targetIntegrityTraits & 2 /* TargetIntegrityTraits.IsSealed */) { + ObjectSeal(shadowTarget); + } else if (targetIntegrityTraits & 1 /* TargetIntegrityTraits.IsNotExtensible */) { + ReflectPreventExtensions(shadowTarget); + } + if (LOCKER_UNMINIFIED_FLAG) { + // We don't wrap `foreignCallableDebugInfo()` in a try-catch + // because it cannot throw. + foreignCallableDebugInfo('Mutations on the membrane of an object originating ' + 'outside of the sandbox will not be reflected on ' + 'the object itself:', foreignTargetPointer); + } + } + } : noop; + let shadowTarget; + const isForeignTargetArray = foreignTargetTraits & 1 /* TargetTraits.IsArray */; + const isForeignTargetFunction = foreignTargetTraits & 4 /* TargetTraits.IsFunction */; + if (isForeignTargetFunction) { + // This shadow target is never invoked. It's needed to avoid + // proxy trap invariants. Because it's not invoked the code + // does not need to be instrumented for code coverage. + // + // istanbul ignore next + shadowTarget = foreignTargetTraits & 8 /* TargetTraits.IsArrowFunction */ ? () => {} : function () {}; + } else if (isForeignTargetArray) { + shadowTarget = []; + } else { + shadowTarget = {}; + } + const { + proxy, + revoke + } = ProxyRevocable(shadowTarget, this); + this.foreignTargetPointer = foreignTargetPointer; + this.foreignTargetTraits = foreignTargetTraits; + this.foreignTargetTypedArrayLength = foreignTargetTypedArrayLength; + // Define in the BoundaryProxyHandler constructor so it is bound + // to the BoundaryProxyHandler instance. + this.nonConfigurableDescriptorCallback = (key, configurable, enumerable, writable, valuePointer, getterPointer, setterPointer) => { + // Update the descriptor to non-configurable on the shadow + // target. + ReflectDefineProperty(this.shadowTarget, key, createDescriptorFromMeta(configurable, enumerable, writable, valuePointer, getterPointer, setterPointer)); + }; + this.proxy = proxy; + this.revoke = revoke; + this.serialize = noop; + this.shadowTarget = shadowTarget; + this.staticToStringTag = 'Object'; + // Define traps. + if (isForeignTargetFunction) { + var _applyTrapNameRegistr, _constructTrapNameReg; + this.apply = this[(_applyTrapNameRegistr = applyTrapNameRegistry[foreignTargetFunctionArity]) != null ? _applyTrapNameRegistr : applyTrapNameRegistry.n]; + this.construct = this[(_constructTrapNameReg = constructTrapNameRegistry[foreignTargetFunctionArity]) != null ? _constructTrapNameReg : constructTrapNameRegistry.n]; + } + this.defineProperty = BoundaryProxyHandler.defaultDefinePropertyTrap; + this.deleteProperty = BoundaryProxyHandler.defaultDeletePropertyTrap; + this.isExtensible = BoundaryProxyHandler.defaultIsExtensibleTrap; + this.getOwnPropertyDescriptor = BoundaryProxyHandler.defaultGetOwnPropertyDescriptorTrap; + this.getPrototypeOf = BoundaryProxyHandler.defaultGetPrototypeOfTrap; + this.get = foreignTargetTraits & 32 /* TargetTraits.IsTypedArray */ ? BoundaryProxyHandler.hybridGetTrapForTypedArray : BoundaryProxyHandler.defaultGetTrap; + this.has = BoundaryProxyHandler.defaultHasTrap; + this.ownKeys = BoundaryProxyHandler.defaultOwnKeysTrap; + this.preventExtensions = BoundaryProxyHandler.defaultPreventExtensionsTrap; + this.setPrototypeOf = BoundaryProxyHandler.defaultSetPrototypeOfTrap; + this.set = BoundaryProxyHandler.defaultSetTrap; + if (foreignTargetTraits & 64 /* TargetTraits.Revoked */) { + this.revoke(); + } else if (IS_IN_SHADOW_REALM) { + if (isForeignTargetArray || foreignTargetTraits & 2 /* TargetTraits.IsArrayBufferView */) { + this.makeProxyLive(); + } + } else { + if (foreignTargetTraits & 16 /* TargetTraits.IsObject */) { + // Lazily define serialize method. + let cachedSerializedValue = LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL; + this.serialize = () => { + if (cachedSerializedValue === LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL) { + cachedSerializedValue = foreignCallableSerializeTarget(this.foreignTargetPointer); + } + return cachedSerializedValue; + }; + } + } + } + // Passthru traps: + static passthruDefinePropertyTrap(_shadowTarget, key, unsafePartialDesc) { + lastProxyTrapCalled = 4 /* ProxyHandlerTraps.DefineProperty */; + const { + foreignTargetPointer, + nonConfigurableDescriptorCallback + } = this; + const safePartialDesc = unsafePartialDesc; + ReflectSetPrototypeOf(safePartialDesc, null); + const { + get: getter, + set: setter, + value + } = safePartialDesc; + const valuePointerOrPrimitive = 'value' in safePartialDesc ? + // Inline getTransferableValue(). + typeof value === 'object' && value !== null || typeof value === 'function' ? getTransferablePointer(value) : + // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + typeof value === 'undefined' ? undefined : value : LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL; + const getterPointerOrUndefinedSymbol = 'get' in safePartialDesc ? + // Inline getTransferableValue(). + typeof getter === 'function' ? getTransferablePointer(getter) : getter : LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL; + const setterPointerOrUndefinedSymbol = 'set' in safePartialDesc ? + // Inline getTransferableValue(). + typeof setter === 'function' ? getTransferablePointer(setter) : setter : LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL; + let result = false; + try { + result = foreignCallableDefineProperty(foreignTargetPointer, key, 'configurable' in safePartialDesc ? !!safePartialDesc.configurable : LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL, 'enumerable' in safePartialDesc ? !!safePartialDesc.enumerable : LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL, 'writable' in safePartialDesc ? !!safePartialDesc.writable : LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL, valuePointerOrPrimitive, getterPointerOrUndefinedSymbol, setterPointerOrUndefinedSymbol, nonConfigurableDescriptorCallback); + } catch (error) { + var _selectedTarget11; + const errorToThrow = (_selectedTarget11 = selectedTarget) != null ? _selectedTarget11 : error; + selectedTarget = undefined; + throw errorToThrow; + } + if (useFastForeignTargetPath && result && (typeof getterPointerOrUndefinedSymbol === 'function' || typeof setterPointerOrUndefinedSymbol === 'function')) { + fastForeignTargetPointers.delete(foreignTargetPointer); + } + return result; + } + static passthruDeletePropertyTrap(_shadowTarget, key) { + lastProxyTrapCalled = 8 /* ProxyHandlerTraps.DeleteProperty */; + let result = false; + try { + result = foreignCallableDeleteProperty(this.foreignTargetPointer, key); + } catch (error) { + var _selectedTarget12; + const errorToThrow = (_selectedTarget12 = selectedTarget) != null ? _selectedTarget12 : error; + selectedTarget = undefined; + throw errorToThrow; + } + return result; + } + static passthruGetPrototypeOfTrap(_shadowTarget) { + lastProxyTrapCalled = 64 /* ProxyHandlerTraps.GetPrototypeOf */; + let protoPointerOrNull; + try { + protoPointerOrNull = foreignCallableGetPrototypeOf(this.foreignTargetPointer); + } catch (error) { + var _selectedTarget13; + const errorToThrow = (_selectedTarget13 = selectedTarget) != null ? _selectedTarget13 : error; + selectedTarget = undefined; + throw errorToThrow; + } + let proto; + if (typeof protoPointerOrNull === 'function') { + protoPointerOrNull(); + proto = selectedTarget; + selectedTarget = undefined; + } else { + proto = null; + } + return proto; + } + static passthruIsExtensibleTrap(_shadowTarget) { + lastProxyTrapCalled = 256 /* ProxyHandlerTraps.IsExtensible */; + const { + shadowTarget + } = this; + let result = false; + // Check if already locked. + if (ReflectIsExtensible(shadowTarget)) { + const { + foreignTargetPointer + } = this; + try { + result = foreignCallableIsExtensible(foreignTargetPointer); + } catch (error) { + var _selectedTarget14; + const errorToThrow = (_selectedTarget14 = selectedTarget) != null ? _selectedTarget14 : error; + selectedTarget = undefined; + throw errorToThrow; + } + if (!result) { + copyForeignOwnPropertyDescriptorsAndPrototypeToShadowTarget(foreignTargetPointer, shadowTarget); + ReflectPreventExtensions(shadowTarget); + } + } + return result; + } + static passthruOwnKeysTrap(_shadowTarget) { + lastProxyTrapCalled = 512 /* ProxyHandlerTraps.OwnKeys */; + let ownKeys; + try { + foreignCallableOwnKeys(this.foreignTargetPointer, (...args) => { + ownKeys = args; + }); + } catch (error) { + var _selectedTarget15; + const errorToThrow = (_selectedTarget15 = selectedTarget) != null ? _selectedTarget15 : error; + selectedTarget = undefined; + throw errorToThrow; + } + return ownKeys || []; + } + static passthruGetOwnPropertyDescriptorTrap(_shadowTarget, key) { + lastProxyTrapCalled = 32 /* ProxyHandlerTraps.GetOwnPropertyDescriptor */; + const { + foreignTargetPointer, + shadowTarget + } = this; + let safeDesc; + try { + foreignCallableGetOwnPropertyDescriptor(foreignTargetPointer, key, (_key, configurable, enumerable, writable, valuePointer, getterPointer, setterPointer) => { + safeDesc = createDescriptorFromMeta(configurable, enumerable, writable, valuePointer, getterPointer, setterPointer); + if (safeDesc.configurable === false) { + // Update the descriptor to non-configurable on + // the shadow target. + ReflectDefineProperty(shadowTarget, key, safeDesc); + } + }); + } catch (error) { + var _selectedTarget16; + const errorToThrow = (_selectedTarget16 = selectedTarget) != null ? _selectedTarget16 : error; + selectedTarget = undefined; + throw errorToThrow; + } + // Getting forged descriptors of handshake properties is not allowed. + if (IS_NOT_IN_SHADOW_REALM && safeDesc && (key === LOCKER_NEAR_MEMBRANE_SYMBOL || key === LOCKER_NEAR_MEMBRANE_SERIALIZED_VALUE_SYMBOL)) { + throw new TypeErrorCtor(ERR_ILLEGAL_PROPERTY_ACCESS); + } + return safeDesc; + } + static passthruPreventExtensionsTrap(_shadowTarget) { + lastProxyTrapCalled = 1024 /* ProxyHandlerTraps.PreventExtensions */; + const { + foreignTargetPointer, + shadowTarget + } = this; + let result = true; + if (ReflectIsExtensible(shadowTarget)) { + let resultEnum = 0 /* PreventExtensionsResult.None */; + try { + resultEnum = foreignCallablePreventExtensions(foreignTargetPointer); + } catch (error) { + var _selectedTarget17; + const errorToThrow = (_selectedTarget17 = selectedTarget) != null ? _selectedTarget17 : error; + selectedTarget = undefined; + throw errorToThrow; + } + // If the target is a proxy it might reject the + // preventExtension call, in which case we should not + // attempt to lock down the shadow target. + if (!(resultEnum & 1 /* PreventExtensionsResult.Extensible */)) { + copyForeignOwnPropertyDescriptorsAndPrototypeToShadowTarget(foreignTargetPointer, shadowTarget); + ReflectPreventExtensions(shadowTarget); + } + result = !(resultEnum & 2 /* PreventExtensionsResult.False */); + } + + return result; + } + static passthruSetPrototypeOfTrap(_shadowTarget, proto) { + lastProxyTrapCalled = 4096 /* ProxyHandlerTraps.SetPrototypeOf */; + const { + foreignTargetPointer + } = this; + const transferableProto = proto ? getTransferablePointer(proto) : proto; + let result = false; + try { + result = foreignCallableSetPrototypeOf(foreignTargetPointer, transferableProto); + } catch (error) { + var _selectedTarget18; + const errorToThrow = (_selectedTarget18 = selectedTarget) != null ? _selectedTarget18 : error; + selectedTarget = undefined; + throw errorToThrow; + } + if (useFastForeignTargetPath && result) { + fastForeignTargetPointers.delete(foreignTargetPointer); + } + return result; + } + static passthruSetTrap(_shadowTarget, key, value, receiver) { + lastProxyTrapCalled = 2048 /* ProxyHandlerTraps.Set */; + const { + foreignTargetPointer, + proxy, + shadowTarget + } = this; + // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + if (typeof value === 'undefined') { + value = undefined; + } + if (typeof receiver === 'undefined') { + receiver = proxy; + } + // Setting forged values of handshake properties is not allowed. + if (IS_NOT_IN_SHADOW_REALM && (key === LOCKER_NEAR_MEMBRANE_SYMBOL || key === LOCKER_NEAR_MEMBRANE_SERIALIZED_VALUE_SYMBOL)) { + throw new TypeErrorCtor(ERR_ILLEGAL_PROPERTY_ACCESS); + } + const isFastPath = proxy === receiver; + let result = false; + try { + result = isFastPath ? foreignCallableSet(foreignTargetPointer, key, + // Inline getTransferableValue(). + typeof value === 'object' && value !== null || typeof value === 'function' ? getTransferablePointer(value) : value) : passthruForeignTraversedSet(foreignTargetPointer, shadowTarget, key, value, receiver); + } catch (error) { + var _selectedTarget19; + const errorToThrow = (_selectedTarget19 = selectedTarget) != null ? _selectedTarget19 : error; + selectedTarget = undefined; + throw errorToThrow; + } + return result; + } + } + // Logic implementation of all traps. + // Hybrid traps: + // (traps that operate on their shadowTarget, proxy, and foreignTargetPointer): + BoundaryProxyHandler.hybridGetTrap = IS_IN_SHADOW_REALM ? function (_shadowTarget, key, receiver) { + const { + foreignTargetPointer, + foreignTargetTraits, + proxy, + shadowTarget + } = this; + let safeDesc; + let result; + if (useFastForeignTargetPath && fastForeignTargetPointers.has(foreignTargetPointer)) { + let pointerOrPrimitive; + try { + pointerOrPrimitive = foreignCallableGetPropertyValue(foreignTargetPointer, key); + } catch (error) { + var _selectedTarget20; + const errorToThrow = (_selectedTarget20 = selectedTarget) != null ? _selectedTarget20 : error; + selectedTarget = undefined; + throw errorToThrow; + } + if (typeof pointerOrPrimitive === 'function') { + pointerOrPrimitive(); + result = selectedTarget; + selectedTarget = undefined; + } else { + result = pointerOrPrimitive; + } + } else { + safeDesc = lookupForeignDescriptor(foreignTargetPointer, shadowTarget, key); + if (safeDesc) { + const { + get: getter, + value: localValue + } = safeDesc; + if (getter) { + if (safeDesc.foreign) { + const foreignGetterPointer = getTransferablePointer(getter); + const transferableReceiver = proxy === receiver ? foreignTargetPointer : + // Inline getTransferableValue(). + typeof receiver === 'object' && receiver !== null || typeof receiver === 'function' ? getTransferablePointer(receiver) : receiver; + let pointerOrPrimitive; + try { + pointerOrPrimitive = foreignCallableApply(foreignGetterPointer, transferableReceiver); + } catch (error) { + var _selectedTarget21; + const errorToThrow = (_selectedTarget21 = selectedTarget) != null ? _selectedTarget21 : error; + selectedTarget = undefined; + throw errorToThrow; + } + if (typeof pointerOrPrimitive === 'function') { + pointerOrPrimitive(); + result = selectedTarget; + selectedTarget = undefined; + } else { + result = pointerOrPrimitive; + } + } else { + // Even though the getter function exists, + // we can't use `ReflectGet()` because there + // might be a distortion for that getter function, + // in which case we must resolve the local getter + // and call it instead. + result = ReflectApply(getter, receiver, []); + } + } else { + result = localValue; + } + } else { + const transferableReceiver = proxy === receiver ? foreignTargetPointer : + // Inline getTransferableValue(). + typeof receiver === 'object' && receiver !== null || typeof receiver === 'function' ? getTransferablePointer(receiver) : receiver; + let pointerOrPrimitive; + try { + pointerOrPrimitive = foreignCallableGet(foreignTargetPointer, foreignTargetTraits, key, transferableReceiver); + } catch (error) { + var _selectedTarget22; + const errorToThrow = (_selectedTarget22 = selectedTarget) != null ? _selectedTarget22 : error; + selectedTarget = undefined; + throw errorToThrow; + } + if (typeof pointerOrPrimitive === 'function') { + pointerOrPrimitive(); + result = selectedTarget; + selectedTarget = undefined; + } else { + result = pointerOrPrimitive; + } + } + } + if (safeDesc === undefined && result === undefined && key === SymbolToStringTag && foreignTargetTraits & 16 /* TargetTraits.IsObject */) { + let toStringTag; + try { + toStringTag = foreignCallableGetToStringTagOfTarget(foreignTargetPointer); + } catch (error) { + var _selectedTarget23; + const errorToThrow = (_selectedTarget23 = selectedTarget) != null ? _selectedTarget23 : error; + selectedTarget = undefined; + throw errorToThrow; + } + // The default language toStringTag is "Object". If we + // receive "Object" we return `undefined` to let the + // language resolve it naturally without projecting a + // value. + if (toStringTag !== 'Object') { + result = toStringTag; + } + } + return result; + } : noop; + BoundaryProxyHandler.hybridGetTrapForTypedArray = IS_IN_SHADOW_REALM ? function (_shadowTarget, key, receiver) { + const { + foreignTargetPointer, + foreignTargetTypedArrayLength, + proxy, + shadowTarget + } = this; + let useFastPath = useFastForeignTargetPathForTypedArrays; + if (!useFastPath && typeof key === 'string') { + const possibleIndex = +key; + useFastPath = possibleIndex > -1 && possibleIndex < foreignTargetTypedArrayLength && NumberIsInteger(possibleIndex); + } + let result; + if (useFastPath) { + let pointerOrPrimitive; + try { + pointerOrPrimitive = foreignCallableGetPropertyValue(foreignTargetPointer, key); + } catch (error) { + var _selectedTarget24; + const errorToThrow = (_selectedTarget24 = selectedTarget) != null ? _selectedTarget24 : error; + selectedTarget = undefined; + throw errorToThrow; + } + if (typeof pointerOrPrimitive === 'function') { + pointerOrPrimitive(); + result = selectedTarget; + selectedTarget = undefined; + } else { + result = pointerOrPrimitive; + } + } else { + const safeDesc = lookupForeignDescriptor(foreignTargetPointer, shadowTarget, key); + if (safeDesc) { + const { + get: getter, + value: localValue + } = safeDesc; + if (getter) { + if (safeDesc.foreign) { + const foreignGetterPointer = getTransferablePointer(getter); + const transferableReceiver = proxy === receiver ? foreignTargetPointer : + // Inline getTransferableValue(). + typeof receiver === 'object' && receiver !== null || typeof receiver === 'function' ? getTransferablePointer(receiver) : receiver; + let pointerOrPrimitive; + try { + pointerOrPrimitive = foreignCallableApply(foreignGetterPointer, transferableReceiver); + } catch (error) { + var _selectedTarget25; + const errorToThrow = (_selectedTarget25 = selectedTarget) != null ? _selectedTarget25 : error; + selectedTarget = undefined; + throw errorToThrow; + } + if (typeof pointerOrPrimitive === 'function') { + pointerOrPrimitive(); + result = selectedTarget; + selectedTarget = undefined; + } else { + result = pointerOrPrimitive; + } + } else { + // Even though the getter function exists, + // we can't use `ReflectGet()` because there + // might be a distortion for that getter function, + // in which case we must resolve the local getter + // and call it instead. + result = ReflectApply(getter, receiver, []); + } + } else { + result = localValue; + } + } + } + return result; + } : noop; + BoundaryProxyHandler.hybridHasTrap = IS_IN_SHADOW_REALM ? function (_shadowTarget, key) { + let trueOrProtoPointerOrNull; + try { + trueOrProtoPointerOrNull = foreignCallableBatchGetPrototypeOfWhenHasNoOwnProperty(this.foreignTargetPointer, key); + } catch (error) { + var _selectedTarget26; + const errorToThrow = (_selectedTarget26 = selectedTarget) != null ? _selectedTarget26 : error; + selectedTarget = undefined; + throw errorToThrow; + } + let result = false; + if (trueOrProtoPointerOrNull === true) { + result = true; + } else { + // Avoiding calling the has trap for any proto chain operation, + // instead we implement the regular logic here in this trap. + let currentObject; + if (typeof trueOrProtoPointerOrNull === 'function') { + trueOrProtoPointerOrNull(); + currentObject = selectedTarget; + selectedTarget = undefined; + } else { + currentObject = null; + } + while (currentObject) { + if (ObjectHasOwn(currentObject, key)) { + result = true; + break; + } + currentObject = ReflectGetPrototypeOf(currentObject); + } + } + return result; + } : alwaysFalse; + BoundaryProxyHandler.passthruGetTrap = IS_NOT_IN_SHADOW_REALM ? function (_shadowTarget, key, receiver) { + // Only allow accessing handshake property values if the + // "has" trap has been triggered immediately BEFORE and + // the property does NOT exist. + handshakePropertyFlag && (handshakePropertyFlag = lastProxyTrapCalled === 128 /* ProxyHandlerTraps.Has */); + lastProxyTrapCalled = 16 /* ProxyHandlerTraps.Get */; + const isNearMembraneSymbol = key === LOCKER_NEAR_MEMBRANE_SYMBOL; + const isNearMembraneSerializedValueSymbol = key === LOCKER_NEAR_MEMBRANE_SERIALIZED_VALUE_SYMBOL; + if (handshakePropertyFlag) { + // Exit without performing a [[Get]] for handshake + // properties because we know that when the + // `handshakePropertyFlag` is ON that there are NO + // shadowed values. + if (isNearMembraneSymbol) { + return true; + } + if (isNearMembraneSerializedValueSymbol) { + return this.serialize(); + } + } + const { + foreignTargetPointer, + foreignTargetTraits, + proxy + } = this; + if (typeof receiver === 'undefined') { + receiver = proxy; + } + const transferableReceiver = proxy === receiver ? LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL : + // Inline getTransferableValue(). + typeof receiver === 'object' && receiver !== null || typeof receiver === 'function' ? getTransferablePointer(receiver) : receiver; + let pointerOrPrimitive; + try { + pointerOrPrimitive = foreignCallableGet(foreignTargetPointer, foreignTargetTraits, key, transferableReceiver); + } catch (error) { + var _selectedTarget27; + const errorToThrow = (_selectedTarget27 = selectedTarget) != null ? _selectedTarget27 : error; + selectedTarget = undefined; + throw errorToThrow; + } + let result; + if (typeof pointerOrPrimitive === 'function') { + pointerOrPrimitive(); + result = selectedTarget; + selectedTarget = undefined; + } else { + result = pointerOrPrimitive; + } + // Getting forged values of handshake properties is not allowed. + if (result !== undefined && (isNearMembraneSymbol || isNearMembraneSerializedValueSymbol)) { + throw new TypeErrorCtor(ERR_ILLEGAL_PROPERTY_ACCESS); + } + return result; + } : noop; + BoundaryProxyHandler.passthruHasTrap = IS_NOT_IN_SHADOW_REALM ? function (_shadowTarget, key) { + lastProxyTrapCalled = 128 /* ProxyHandlerTraps.Has */; + let result; + try { + result = foreignCallableHas(this.foreignTargetPointer, key); + } catch (error) { + var _selectedTarget28; + const errorToThrow = (_selectedTarget28 = selectedTarget) != null ? _selectedTarget28 : error; + selectedTarget = undefined; + throw errorToThrow; + } + const isNearMembraneSymbol = key === LOCKER_NEAR_MEMBRANE_SYMBOL; + const isNearMembraneSerializedValueSymbol = key === LOCKER_NEAR_MEMBRANE_SERIALIZED_VALUE_SYMBOL; + if (result) { + handshakePropertyFlag = false; + // Checking the existence of forged handshake properties + // is not allowed. + if (isNearMembraneSymbol || isNearMembraneSerializedValueSymbol) { + throw new TypeErrorCtor(ERR_ILLEGAL_PROPERTY_ACCESS); + } + } else { + // The `handshakePropertyFlag` is ON if the handshake + // property does NOT exist on the object or its [[Prototype]]. + handshakePropertyFlag = isNearMembraneSymbol || isNearMembraneSerializedValueSymbol; + } + return result; + } : alwaysFalse; + // Pending traps: + BoundaryProxyHandler.pendingDefinePropertyTrap = IS_IN_SHADOW_REALM ? function (shadowTarget, key, unsafePartialDesc) { + const { + foreignTargetPointer, + foreignTargetTraits + } = this; + // We don't wrap `foreignCallableIsTargetLive()` in a + // try-catch because it cannot throw. + if (foreignCallableIsTargetLive(foreignTargetPointer, foreignTargetTraits)) { + this.makeProxyLive(); + } else { + if (useFastForeignTargetPath) { + if (isForeignPointerOfObjectProto(foreignTargetPointer)) { + disableFastForeignTargetPointers(); + } else if (isForeignPointerOfTypedArrayProto(foreignTargetPointer)) { + useFastForeignTargetPathForTypedArrays = false; + } + } + this.makeProxyStatic(); + } + return this.defineProperty(shadowTarget, key, unsafePartialDesc); + } : alwaysFalse; + BoundaryProxyHandler.pendingDeletePropertyTrap = IS_IN_SHADOW_REALM ? function (shadowTarget, key) { + // We don't wrap `foreignCallableIsTargetLive()` in a + // try-catch because it cannot throw. + if (foreignCallableIsTargetLive(this.foreignTargetPointer, this.foreignTargetTraits)) { + this.makeProxyLive(); + } else { + this.makeProxyStatic(); + } + return this.deleteProperty(shadowTarget, key); + } : alwaysFalse; + BoundaryProxyHandler.pendingPreventExtensionsTrap = IS_IN_SHADOW_REALM ? function (shadowTarget) { + // We don't wrap `foreignCallableIsTargetLive()` in a + // try-catch because it cannot throw. + if (foreignCallableIsTargetLive(this.foreignTargetPointer, this.foreignTargetTraits)) { + this.makeProxyLive(); + } else { + this.makeProxyStatic(); + } + return this.preventExtensions(shadowTarget); + } : alwaysFalse; + BoundaryProxyHandler.pendingSetPrototypeOfTrap = IS_IN_SHADOW_REALM ? function (shadowTarget, proto) { + const { + foreignTargetPointer, + foreignTargetTraits + } = this; + // We don't wrap `foreignCallableIsTargetLive()` in a + // try-catch because it cannot throw. + if (foreignCallableIsTargetLive(foreignTargetPointer, foreignTargetTraits)) { + this.makeProxyLive(); + } else { + if (useFastForeignTargetPath) { + if (isForeignPointerOfObjectProto(foreignTargetPointer)) { + disableFastForeignTargetPointers(); + } else if (isForeignPointerOfTypedArrayProto(foreignTargetPointer)) { + useFastForeignTargetPathForTypedArrays = false; + } + } + this.makeProxyStatic(); + } + return this.setPrototypeOf(shadowTarget, proto); + } : alwaysFalse; + BoundaryProxyHandler.pendingSetTrap = IS_IN_SHADOW_REALM ? function (shadowTarget, key, value, receiver) { + const { + foreignTargetPointer, + foreignTargetTraits + } = this; + // We don't wrap `foreignCallableIsTargetLive()` in a + // try-catch because it cannot throw. + if (foreignCallableIsTargetLive(foreignTargetPointer, foreignTargetTraits)) { + this.makeProxyLive(); + } else { + if (useFastForeignTargetPath) { + if (isForeignPointerOfObjectProto(foreignTargetPointer)) { + disableFastForeignTargetPointers(); + } else if (isForeignPointerOfTypedArrayProto(foreignTargetPointer)) { + useFastForeignTargetPathForTypedArrays = false; + } + } + this.makeProxyStatic(); + } + return this.set(shadowTarget, key, value, receiver); + } : alwaysFalse; + // Static traps: + BoundaryProxyHandler.staticDefinePropertyTrap = IS_IN_SHADOW_REALM ? ReflectDefineProperty : alwaysFalse; + BoundaryProxyHandler.staticDeletePropertyTrap = IS_IN_SHADOW_REALM ? ReflectDeleteProperty : alwaysFalse; + BoundaryProxyHandler.staticGetOwnPropertyDescriptorTrap = IS_IN_SHADOW_REALM ? ReflectGetOwnPropertyDescriptor : noop; + BoundaryProxyHandler.staticGetPrototypeOfTrap = IS_IN_SHADOW_REALM ? ReflectGetPrototypeOf : () => null; + BoundaryProxyHandler.staticGetTrap = IS_IN_SHADOW_REALM ? function (shadowTarget, key, receiver) { + const { + foreignTargetTraits, + staticToStringTag + } = this; + const result = ReflectGet(shadowTarget, key, receiver); + if (result === undefined && key === SymbolToStringTag && foreignTargetTraits & 16 /* TargetTraits.IsObject */ && + // The default language toStringTag is "Object". If we + // receive "Object" we return `undefined` to let the + // language resolve it naturally without projecting a + // value. + staticToStringTag !== 'Object' && !(key in shadowTarget)) { + return staticToStringTag; + } + return result; + } : noop; + BoundaryProxyHandler.staticHasTrap = IS_IN_SHADOW_REALM ? ReflectHas : alwaysFalse; + BoundaryProxyHandler.staticIsExtensibleTrap = IS_IN_SHADOW_REALM ? ReflectIsExtensible : alwaysFalse; + BoundaryProxyHandler.staticOwnKeysTrap = IS_IN_SHADOW_REALM ? ReflectOwnKeys : () => []; + BoundaryProxyHandler.staticPreventExtensionsTrap = IS_IN_SHADOW_REALM ? ReflectPreventExtensions : alwaysFalse; + BoundaryProxyHandler.staticSetPrototypeOfTrap = IS_IN_SHADOW_REALM ? ReflectSetPrototypeOf : alwaysFalse; + BoundaryProxyHandler.staticSetTrap = IS_IN_SHADOW_REALM ? ReflectSet : alwaysFalse; + // Default traps: + // Pending traps are needed for the shadow realm side of the membrane + // to avoid leaking mutation operations on the primary realm side. + BoundaryProxyHandler.defaultDefinePropertyTrap = IS_IN_SHADOW_REALM ? BoundaryProxyHandler.pendingDefinePropertyTrap : BoundaryProxyHandler.passthruDefinePropertyTrap; + BoundaryProxyHandler.defaultDeletePropertyTrap = IS_IN_SHADOW_REALM ? BoundaryProxyHandler.pendingDeletePropertyTrap : BoundaryProxyHandler.passthruDeletePropertyTrap; + BoundaryProxyHandler.defaultGetOwnPropertyDescriptorTrap = BoundaryProxyHandler.passthruGetOwnPropertyDescriptorTrap; + BoundaryProxyHandler.defaultGetPrototypeOfTrap = BoundaryProxyHandler.passthruGetPrototypeOfTrap; + BoundaryProxyHandler.defaultGetTrap = IS_IN_SHADOW_REALM ? BoundaryProxyHandler.hybridGetTrap : BoundaryProxyHandler.passthruGetTrap; + BoundaryProxyHandler.defaultHasTrap = IS_IN_SHADOW_REALM ? BoundaryProxyHandler.hybridHasTrap : BoundaryProxyHandler.passthruHasTrap; + BoundaryProxyHandler.defaultIsExtensibleTrap = BoundaryProxyHandler.passthruIsExtensibleTrap; + BoundaryProxyHandler.defaultOwnKeysTrap = BoundaryProxyHandler.passthruOwnKeysTrap; + BoundaryProxyHandler.defaultPreventExtensionsTrap = IS_IN_SHADOW_REALM ? BoundaryProxyHandler.pendingPreventExtensionsTrap : BoundaryProxyHandler.passthruPreventExtensionsTrap; + BoundaryProxyHandler.defaultSetTrap = IS_IN_SHADOW_REALM ? BoundaryProxyHandler.pendingSetTrap : BoundaryProxyHandler.passthruSetTrap; + BoundaryProxyHandler.defaultSetPrototypeOfTrap = IS_IN_SHADOW_REALM ? BoundaryProxyHandler.pendingSetPrototypeOfTrap : BoundaryProxyHandler.passthruSetPrototypeOfTrap; + if (IS_IN_SHADOW_REALM) { + // Initialize `fastForeignTargetPointers` weak map. + clearFastForeignTargetPointers(); + } + // Export callable hooks to a foreign realm. + foreignCallableHooksCallback( + // globalThisPointer + // When crossing, should be mapped to the foreign globalThis + createPointer(globalThisRef), + // getSelectedTarget + IS_NOT_IN_SHADOW_REALM ? () => { + const result = selectedTarget; + selectedTarget = undefined; + return result; + } : noop, + // getTransferableValue + value => { + if (typeof value === 'object' && value !== null || typeof value === 'function') { + return getTransferablePointer(value); + } + // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + return typeof value === 'undefined' ? undefined : value; + }, + // callableGetPropertyValuePointer: this callable function allows + // the foreign realm to access a linkable pointer for a property value. + // In order to do that, the foreign side must provide a pointer and + // a key access the value in order to produce a pointer + (targetPointer, key) => { + targetPointer(); + const target = selectedTarget; + selectedTarget = undefined; + const value = target == null ? void 0 : target[key]; + // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + return createPointer(typeof value === 'undefined' ? undefined : value); + }, + // callableEvaluate + IS_IN_SHADOW_REALM ? sourceText => { + let result; + try { + result = localEval(sourceText); + } catch (error) { + throw pushErrorAcrossBoundary(error); + } + // Inline getTransferableValue(). + return typeof result === 'object' && result !== null || typeof result === 'function' ? getTransferablePointer(result) : result; + } : noop, + // callableLinkPointers: this callable function allows the foreign + // realm to define a linkage between two values across the membrane. + (targetPointer, newPointer) => { + targetPointer(); + const target = selectedTarget; + selectedTarget = undefined; + if (typeof target === 'object' && target !== null || typeof target === 'function') { + proxyPointerCache.set(target, newPointer); + } + }, + // callablePushErrorTarget + LOCKER_DEBUGGABLE_FLAG ? (foreignTargetPointer, foreignTargetTraits, foreignTargetFunctionArity, foreignTargetFunctionName, foreignTargetTypedArrayLength) => { + const pointer = pushTarget(foreignTargetPointer, foreignTargetTraits, foreignTargetFunctionArity, foreignTargetFunctionName, foreignTargetTypedArrayLength); + const pointerWrapper = () => { + checkDebugMode(); + return pointer(); + }; + return pointerWrapper; + } : pushTarget, + // callablePushTarget: This function can be used by a foreign realm + // to install a proxy into this realm that correspond to an object + // from the foreign realm. It returns a Pointer that can be used by + // the foreign realm to pass back a reference to this realm when + // passing arguments or returning from a foreign callable invocation. + // This function is extremely important to understand the mechanics + // of this membrane. + pushTarget, + // callableApply + (targetPointer, thisArgPointerOrUndefined, ...args) => { + targetPointer(); + const func = selectedTarget; + selectedTarget = undefined; + let thisArg; + if (typeof thisArgPointerOrUndefined === 'function') { + thisArgPointerOrUndefined(); + thisArg = selectedTarget; + selectedTarget = undefined; + } + for (let i = 0, { + length + } = args; i < length; i += 1) { + const pointerOrPrimitive = args[i]; + if (typeof pointerOrPrimitive === 'function') { + pointerOrPrimitive(); + args[i] = selectedTarget; + selectedTarget = undefined; + } + } + let result; + try { + result = ReflectApply(func, thisArg, args); + } catch (error) { + throw pushErrorAcrossBoundary(error); + } + // Inline getTransferableValue(). + return typeof result === 'object' && result !== null || typeof result === 'function' ? getTransferablePointer(result) : + // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + typeof result === 'undefined' ? undefined : result; + }, + // callableConstruct + (targetPointer, newTargetPointerOrUndefined, ...args) => { + targetPointer(); + const constructor = selectedTarget; + selectedTarget = undefined; + let newTarget; + if (typeof newTargetPointerOrUndefined === 'function') { + newTargetPointerOrUndefined(); + newTarget = selectedTarget; + selectedTarget = undefined; + } + for (let i = 0, { + length + } = args; i < length; i += 1) { + const pointerOrPrimitive = args[i]; + if (typeof pointerOrPrimitive === 'function') { + pointerOrPrimitive(); + args[i] = selectedTarget; + selectedTarget = undefined; + } + } + let result; + try { + result = ReflectConstruct(constructor, args, newTarget); + } catch (error) { + throw pushErrorAcrossBoundary(error); + } + // Inline getTransferableValue(). + return typeof result === 'object' && result !== null || typeof result === 'function' ? getTransferablePointer(result) : + // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + typeof result === 'undefined' ? undefined : result; + }, + // callableDefineProperty + (targetPointer, key, configurable, enumerable, writable, valuePointer, getterPointer, setterPointer, foreignCallableNonConfigurableDescriptorCallback) => { + targetPointer(); + const target = selectedTarget; + selectedTarget = undefined; + const safePartialDesc = createDescriptorFromMeta(configurable, enumerable, writable, valuePointer, getterPointer, setterPointer); + let result = false; + try { + result = ReflectDefineProperty(target, key, safePartialDesc); + } catch (error) { + throw pushErrorAcrossBoundary(error); + } + if (result && configurable === false) { + let safeDesc; + try { + safeDesc = ReflectGetOwnPropertyDescriptor(target, key); + } catch (error) { + throw pushErrorAcrossBoundary(error); + } + if (safeDesc) { + ReflectSetPrototypeOf(safeDesc, null); + if (safeDesc.configurable === false) { + const { + get: getter, + set: setter, + value + } = safeDesc; + foreignCallableNonConfigurableDescriptorCallback(key, false, + // configurable + 'enumerable' in safeDesc ? safeDesc.enumerable : LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL, 'writable' in safeDesc ? safeDesc.writable : LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL, 'value' in safeDesc ? + // Inline getTransferableValue(). + typeof value === 'object' && value !== null || typeof value === 'function' ? getTransferablePointer(value) : value : LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL, 'get' in safeDesc ? + // Inline getTransferableValue(). + typeof getter === 'function' ? getTransferablePointer(getter) : getter : LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL, 'set' in safeDesc ? + // Inline getTransferableValue(). + typeof setter === 'function' ? getTransferablePointer(setter) : setter : LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL); + } + } + } + return result; + }, + // callableDeleteProperty + (targetPointer, key) => { + targetPointer(); + const target = selectedTarget; + selectedTarget = undefined; + try { + return ReflectDeleteProperty(target, key); + } catch (error) { + throw pushErrorAcrossBoundary(error); + } + }, + // callableGet + (targetPointer, targetTraits, key, receiverPointerOrPrimitive) => { + targetPointer(); + const target = selectedTarget; + selectedTarget = undefined; + let receiver; + if (typeof receiverPointerOrPrimitive === 'function') { + receiverPointerOrPrimitive(); + receiver = selectedTarget; + selectedTarget = undefined; + } else { + receiver = receiverPointerOrPrimitive === LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL ? target : receiverPointerOrPrimitive; + } + let result; + try { + result = ReflectGet(target, key, receiver); + } catch (error) { + throw pushErrorAcrossBoundary(error); + } + // Inline getTransferableValue(). + if (typeof result === 'object' && result !== null || typeof result === 'function') { + return getTransferablePointer(result); + } + if (result === undefined && key === SymbolToStringTag && targetTraits & 16 /* TargetTraits.IsObject */) { + try { + if (!(key in target)) { + // Section 19.1.3.6 Object.prototype.toString() + // https://tc39.github.io/ecma262/#sec-object.prototype.tostring + const brand = ReflectApply(ObjectProtoToString, target, []); + // The default language toStringTag is "Object". If + // we receive "[object Object]" we return `undefined` + // to let the language resolve it naturally without + // projecting a value. + if (brand !== '[object Object]') { + result = ReflectApply(StringProtoSlice, brand, [8, -1]); + } + } + } catch (error) { + throw pushErrorAcrossBoundary(error); + } + } + // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + return typeof result === 'undefined' ? undefined : result; + }, + // callableGetOwnPropertyDescriptor + (targetPointer, key, foreignCallableDescriptorCallback) => { + targetPointer(); + const target = selectedTarget; + selectedTarget = undefined; + let safeDesc; + try { + safeDesc = ReflectGetOwnPropertyDescriptor(target, key); + } catch (error) { + throw pushErrorAcrossBoundary(error); + } + if (safeDesc) { + ReflectSetPrototypeOf(safeDesc, null); + const { + get: getter, + set: setter, + value + } = safeDesc; + foreignCallableDescriptorCallback(key, 'configurable' in safeDesc ? safeDesc.configurable : LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL, 'enumerable' in safeDesc ? safeDesc.enumerable : LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL, 'writable' in safeDesc ? safeDesc.writable : LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL, 'value' in safeDesc ? + // Inline getTransferableValue(). + typeof value === 'object' && value !== null || typeof value === 'function' ? getTransferablePointer(value) : + // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + typeof value === 'undefined' ? undefined : value : LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL, 'get' in safeDesc ? + // Inline getTransferableValue(). + typeof getter === 'function' ? getTransferablePointer(getter) : getter : LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL, 'set' in safeDesc ? + // Inline getTransferableValue(). + typeof setter === 'function' ? getTransferablePointer(setter) : setter : LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL); + } + }, + // callableGetPrototypeOf + targetPointer => { + targetPointer(); + const target = selectedTarget; + selectedTarget = undefined; + let proto; + try { + proto = ReflectGetPrototypeOf(target); + } catch (error) { + throw pushErrorAcrossBoundary(error); + } + // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + if (typeof proto === 'undefined') { + return null; + } + return proto ? getTransferablePointer(proto) : proto; + }, + // callableHas + (targetPointer, key) => { + targetPointer(); + const target = selectedTarget; + selectedTarget = undefined; + try { + return key in target; + } catch (error) { + throw pushErrorAcrossBoundary(error); + } + }, + // callableIsExtensible + targetPointer => { + targetPointer(); + const target = selectedTarget; + selectedTarget = undefined; + try { + return ReflectIsExtensible(target); + } catch (error) { + throw pushErrorAcrossBoundary(error); + } + }, + // callableOwnKeys + (targetPointer, foreignCallableKeysCallback) => { + targetPointer(); + const target = selectedTarget; + selectedTarget = undefined; + let ownKeys; + try { + ownKeys = ReflectOwnKeys(target); + } catch (error) { + throw pushErrorAcrossBoundary(error); + } + ReflectApply(foreignCallableKeysCallback, undefined, ownKeys); + }, + // callablePreventExtensions + targetPointer => { + targetPointer(); + const target = selectedTarget; + selectedTarget = undefined; + let result = 2 /* PreventExtensionsResult.False */; + try { + if (ReflectPreventExtensions(target)) { + result = 4 /* PreventExtensionsResult.True */; + } else if (ReflectIsExtensible(target)) { + result |= 1 /* PreventExtensionsResult.Extensible */; + } + } catch (error) { + throw pushErrorAcrossBoundary(error); + } + return result; + }, + // callableSet + (targetPointer, key, valuePointerOrPrimitive) => { + targetPointer(); + const target = selectedTarget; + selectedTarget = undefined; + let value; + if (typeof valuePointerOrPrimitive === 'function') { + valuePointerOrPrimitive(); + value = selectedTarget; + selectedTarget = undefined; + } else { + value = valuePointerOrPrimitive; + } + try { + return ReflectSet(target, key, value, target); + } catch (error) { + throw pushErrorAcrossBoundary(error); + } + }, + // callableSetPrototypeOf + (targetPointer, protoPointerOrNull = null) => { + targetPointer(); + const target = selectedTarget; + selectedTarget = undefined; + let proto; + if (typeof protoPointerOrNull === 'function') { + // Instead of calling `protoPointerOrNull()` directly we use + // `ReflectApply` to avoid a Maglev (https://v8.dev/blog/maglev) + // optimizing JIT bug in Chrome >= 117: + // https://bugs.chromium.org/p/chromium/issues/detail?id=1494060 + ReflectApply(protoPointerOrNull, undefined, []); + proto = selectedTarget; + selectedTarget = undefined; + } else { + proto = null; + } + try { + return ReflectSetPrototypeOf(target, proto); + } catch (error) { + throw pushErrorAcrossBoundary(error); + } + }, + // callableDebugInfo + LOCKER_DEBUGGABLE_FLAG ? (...args) => { + if (checkDebugMode()) { + for (let i = 0, { + length + } = args; i < length; i += 1) { + const pointerOrPrimitive = args[i]; + if (typeof pointerOrPrimitive === 'function') { + pointerOrPrimitive(); + args[i] = selectedTarget; + selectedTarget = undefined; + } + } + try { + ReflectApply(consoleInfo, consoleObject, args); + // eslint-disable-next-line no-empty + } catch (_unused29) {} + } + } : noop, + // callableDefineProperties + IS_IN_SHADOW_REALM ? (targetPointer, ...descriptorTuples) => { + targetPointer(); + const target = selectedTarget; + selectedTarget = undefined; + for (let i = 0, { + length + } = descriptorTuples; i < length; i += 7) { + // We don't use `ObjectDefineProperties()` here because it + // will throw an exception if it fails to define one of its + // properties. + ReflectDefineProperty(target, descriptorTuples[i], createDescriptorFromMeta(descriptorTuples[i + 1], + // configurable + descriptorTuples[i + 2], + // enumerable + descriptorTuples[i + 3], + // writable + descriptorTuples[i + 4], + // valuePointer + descriptorTuples[i + 5], + // getterPointer + descriptorTuples[i + 6] // setterPointer + )); + } + } : noop, + // callableGetLazyPropertyDescriptorStateByTarget + IS_NOT_IN_SHADOW_REALM ? targetPointer => { + targetPointer(); + const target = selectedTarget; + selectedTarget = undefined; + // We don't wrap the weak map `get()` call in a try-catch + // because we know `target` is an object. + const state = proxyTargetToLazyPropertyDescriptorStateMap.get(target); + return state ? getTransferablePointer(state) : state; + } : noop, + // callableGetPropertyValue + IS_NOT_IN_SHADOW_REALM ? (targetPointer, key) => { + targetPointer(); + const target = selectedTarget; + selectedTarget = undefined; + let value; + try { + value = target[key]; + } catch (error) { + throw pushErrorAcrossBoundary(error); + } + return typeof value === 'object' && value !== null || typeof value === 'function' ? getTransferablePointer(value) : value; + } : noop, + // callableGetTargetIntegrityTraits + IS_NOT_IN_SHADOW_REALM ? targetPointer => { + targetPointer(); + const target = selectedTarget; + selectedTarget = undefined; + // A target may be a proxy that is revoked or throws in its + // "isExtensible" trap. + try { + if (!ReflectIsExtensible(target)) { + if (ObjectIsFrozen(target)) { + return 4 /* TargetIntegrityTraits.IsFrozen */ & 2 /* TargetIntegrityTraits.IsSealed */ & 1 /* TargetIntegrityTraits.IsNotExtensible */; + } + + if (ObjectIsSealed(target)) { + return 2 /* TargetIntegrityTraits.IsSealed */ & 1 /* TargetIntegrityTraits.IsNotExtensible */; + } + + return 1 /* TargetIntegrityTraits.IsNotExtensible */; + } + } catch (_unused30) { + try { + isArrayOrThrowForRevoked(target); + } catch (_unused31) { + return 8 /* TargetIntegrityTraits.Revoked */; + } + } + + return 0 /* TargetIntegrityTraits.None */; + } : () => 0 /* TargetIntegrityTraits.None */, + // callableGetToStringTagOfTarget + targetPointer => { + targetPointer(); + const target = selectedTarget; + selectedTarget = undefined; + try { + // Section 19.1.3.6 Object.prototype.toString() + // https://tc39.github.io/ecma262/#sec-object.prototype.tostring + const brand = ReflectApply(ObjectProtoToString, target, []); + return brand === '[object Object]' ? 'Object' : ReflectApply(StringProtoSlice, brand, [8, -1]); + } catch (error) { + throw pushErrorAcrossBoundary(error); + } + }, + // callableInstallErrorPrepareStackTrace + installErrorPrepareStackTrace, + // callableInstallLazyPropertyDescriptors + IS_IN_SHADOW_REALM ? (targetPointer, ...ownKeysAndUnforgeableGlobalThisKeys) => { + const sliceIndex = ReflectApply(ArrayProtoIndexOf, ownKeysAndUnforgeableGlobalThisKeys, [LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL]); + let ownKeys; + let unforgeableGlobalThisKeys; + if (sliceIndex === -1) { + ownKeys = ownKeysAndUnforgeableGlobalThisKeys; + } else { + ownKeys = ReflectApply(ArrayProtoSlice, ownKeysAndUnforgeableGlobalThisKeys, [0, sliceIndex]); + unforgeableGlobalThisKeys = ReflectApply(ArrayProtoSlice, ownKeysAndUnforgeableGlobalThisKeys, [sliceIndex + 1]); + } + targetPointer(); + const target = selectedTarget; + selectedTarget = undefined; + let state = getLazyPropertyDescriptorStateByTarget(target); + if (state === undefined) { + state = { + __proto__: null + }; + setLazyPropertyDescriptorStateByTarget(target, state); + } + for (let i = 0, { + length + } = ownKeys; i < length; i += 1) { + const ownKey = ownKeys[i]; + state[ownKey] = true; + ReflectDefineProperty(target, ownKey, + // The role of this descriptor is to serve as a + // bouncer. When either a getter or a setter is + // invoked the descriptor will be replaced with + // the descriptor from the foreign side and the + // get/set operation will carry on from there. + { + __proto__: null, + // We DO explicitly set configurability in the + // off chance that the property doesn't exist. + configurable: true, + // We DON'T explicitly set enumerability to + // defer to the enumerability of the existing + // property. In the off chance the property + // doesn't exist the property will be defined + // as non-enumerable. + get() { + activateLazyOwnPropertyDefinition(target, ownKey, state); + return target[ownKey]; + }, + set(value) { + activateLazyOwnPropertyDefinition(target, ownKey, state); + ReflectSet(target, ownKey, value); + } + }); + } + installPropertyDescriptorMethodWrappers(unforgeableGlobalThisKeys); + } : noop, + // callableIsTargetLive + IS_NOT_IN_SHADOW_REALM && liveTargetCallback ? (targetPointer, targetTraits) => { + targetPointer(); + const target = selectedTarget; + selectedTarget = undefined; + if (target !== ObjectProto && target !== RegExpProto) { + try { + return liveTargetCallback(target, targetTraits); + // eslint-disable-next-line no-empty + } catch (_unused32) {} + } + return false; + } : alwaysFalse, + // callableIsTargetRevoked + IS_NOT_IN_SHADOW_REALM ? targetPointer => { + targetPointer(); + const target = selectedTarget; + selectedTarget = undefined; + try { + isArrayOrThrowForRevoked(target); + return false; + // eslint-disable-next-line no-empty + } catch (_unused33) {} + return true; + } : alwaysFalse, + // callableSerializeTarget + IS_IN_SHADOW_REALM ? targetPointer => { + targetPointer(); + const target = selectedTarget; + selectedTarget = undefined; + try { + return SymbolToStringTag in target ? serializeTargetByTrialAndError(target) : + // Fast path. + serializeTargetByBrand(target); + // eslint-disable-next-line no-empty + } catch (_unused34) {} + return undefined; + } : noop, + // callableSetLazyPropertyDescriptorStateByTarget + IS_NOT_IN_SHADOW_REALM ? (targetPointer, statePointer) => { + targetPointer(); + const target = selectedTarget; + selectedTarget = undefined; + statePointer(); + const state = selectedTarget; + selectedTarget = undefined; + // We don't wrap the weak map `set()` call in a try-catch + // because we know `target` is an object. + proxyTargetToLazyPropertyDescriptorStateMap.set(target, state); + } : noop, + // callableTrackAsFastTarget + IS_IN_SHADOW_REALM ? targetPointer => { + targetPointer(); + const target = selectedTarget; + selectedTarget = undefined; + if (useFastForeignTargetPath) { + fastForeignTargetPointers.add(getTransferablePointer(target)); + } + } : noop, + // callableBatchGetPrototypeOfAndGetOwnPropertyDescriptors + (targetPointer, foreignCallableDescriptorsCallback) => { + targetPointer(); + const target = selectedTarget; + selectedTarget = undefined; + let unsafeDescs; + try { + unsafeDescs = ObjectGetOwnPropertyDescriptors(target); + } catch (error) { + throw pushErrorAcrossBoundary(error); + } + const ownKeys = ReflectOwnKeys(unsafeDescs); + const { + length + } = ownKeys; + const descriptorTuples = new ArrayCtor(length * 7); + for (let i = 0, j = 0; i < length; i += 1, j += 7) { + const ownKey = ownKeys[i]; + const safeDesc = unsafeDescs[ownKey]; + ReflectSetPrototypeOf(safeDesc, null); + const { + get: getter, + set: setter, + value + } = safeDesc; + descriptorTuples[j] = ownKey; + descriptorTuples[j + 1] = 'configurable' in safeDesc ? safeDesc.configurable : LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL; + descriptorTuples[j + 2] = 'enumerable' in safeDesc ? safeDesc.enumerable : LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL; + descriptorTuples[j + 3] = 'writable' in safeDesc ? safeDesc.writable : LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL; + descriptorTuples[j + 4] = 'value' in safeDesc ? + // Inline getTransferableValue(). + typeof value === 'object' && value !== null || typeof value === 'function' ? getTransferablePointer(value) : value : LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL; + descriptorTuples[j + 5] = 'get' in safeDesc ? + // Inline getTransferableValue(). + typeof getter === 'function' ? getTransferablePointer(getter) : getter : LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL; + descriptorTuples[j + 6] = 'set' in safeDesc ? + // Inline getTransferableValue(). + typeof setter === 'function' ? getTransferablePointer(setter) : setter : LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL; + } + ReflectApply(foreignCallableDescriptorsCallback, undefined, descriptorTuples); + let proto; + try { + proto = ReflectGetPrototypeOf(target); + } catch (error) { + throw pushErrorAcrossBoundary(error); + } + // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + if (typeof proto === 'undefined') { + return null; + } + return proto ? getTransferablePointer(proto) : proto; + }, + // callableBatchGetPrototypeOfWhenHasNoOwnProperty + (targetPointer, key) => { + targetPointer(); + const target = selectedTarget; + selectedTarget = undefined; + let proto; + try { + if (ObjectHasOwn(target, key)) { + return true; + } + proto = ReflectGetPrototypeOf(target); + } catch (error) { + throw pushErrorAcrossBoundary(error); + } + // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + if (typeof proto === 'undefined') { + return null; + } + return proto ? getTransferablePointer(proto) : proto; + }, + // callableBatchGetPrototypeOfWhenHasNoOwnPropertyDescriptor + (targetPointer, key, foreignCallableDescriptorCallback) => { + targetPointer(); + const target = selectedTarget; + selectedTarget = undefined; + let safeDesc; + try { + safeDesc = ReflectGetOwnPropertyDescriptor(target, key); + } catch (error) { + throw pushErrorAcrossBoundary(error); + } + if (safeDesc) { + ReflectSetPrototypeOf(safeDesc, null); + const { + get: getter, + set: setter, + value + } = safeDesc; + foreignCallableDescriptorCallback(key, 'configurable' in safeDesc ? safeDesc.configurable : LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL, 'enumerable' in safeDesc ? safeDesc.enumerable : LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL, 'writable' in safeDesc ? safeDesc.writable : LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL, 'value' in safeDesc ? + // Inline getTransferableValue(). + typeof value === 'object' && value !== null || typeof value === 'function' ? getTransferablePointer(value) : + // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + typeof value === 'undefined' ? undefined : value : LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL, 'get' in safeDesc ? + // Inline getTransferableValue(). + typeof getter === 'function' ? getTransferablePointer(getter) : getter : LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL, 'set' in safeDesc ? + // Inline getTransferableValue(). + typeof setter === 'function' ? getTransferablePointer(setter) : setter : LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL); + return undefined; + } + let proto; + try { + proto = ReflectGetPrototypeOf(target); + } catch (error) { + throw pushErrorAcrossBoundary(error); + } + // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + if (typeof proto === 'undefined') { + return null; + } + return proto ? getTransferablePointer(proto) : proto; + }); + let foreignCallablesHooked = false; + return (...hooks) => { + if (foreignCallablesHooked) { + return; + } + foreignCallablesHooked = true; + ({ + // 0: globalThisPointer, + // 1: getSelectedTarget, + // 2: getTransferableValue, + // 3: callableGetPropertyValuePointer, + // 4: callableEvaluate, + // 5: callableLinkPointers, + 6: foreignCallablePushErrorTarget, + 7: foreignCallablePushTarget, + 8: foreignCallableApply, + 9: foreignCallableConstruct, + 10: foreignCallableDefineProperty, + 11: foreignCallableDeleteProperty, + 12: foreignCallableGet, + 13: foreignCallableGetOwnPropertyDescriptor, + 14: foreignCallableGetPrototypeOf, + 15: foreignCallableHas, + 16: foreignCallableIsExtensible, + 17: foreignCallableOwnKeys, + 18: foreignCallablePreventExtensions, + 19: foreignCallableSet, + 20: foreignCallableSetPrototypeOf, + 21: foreignCallableDebugInfo, + // 22: callableDefineProperties, + 23: foreignCallableGetLazyPropertyDescriptorStateByTarget, + 24: foreignCallableGetPropertyValue, + 25: foreignCallableGetTargetIntegrityTraits, + 26: foreignCallableGetToStringTagOfTarget, + 27: foreignCallableInstallErrorPrepareStackTrace, + // 28: callableInstallLazyPropertyDescriptors, + 29: foreignCallableIsTargetLive, + 30: foreignCallableIsTargetRevoked, + 31: foreignCallableSerializeTarget, + 32: foreignCallableSetLazyPropertyDescriptorStateByTarget, + // 33: callableTrackAsFastTarget, + 34: foreignCallableBatchGetPrototypeOfAndGetOwnPropertyDescriptors, + 35: foreignCallableBatchGetPrototypeOfWhenHasNoOwnProperty, + 36: foreignCallableBatchGetPrototypeOfWhenHasNoOwnPropertyDescriptor + } = hooks); + const applyTrapForZeroOrMoreArgs = createApplyOrConstructTrapForZeroOrMoreArgs(1 /* ProxyHandlerTraps.Apply */); + const applyTrapForOneOrMoreArgs = createApplyOrConstructTrapForOneOrMoreArgs(1 /* ProxyHandlerTraps.Apply */); + const applyTrapForTwoOrMoreArgs = createApplyOrConstructTrapForTwoOrMoreArgs(1 /* ProxyHandlerTraps.Apply */); + const applyTrapForThreeOrMoreArgs = createApplyOrConstructTrapForThreeOrMoreArgs(1 /* ProxyHandlerTraps.Apply */); + const applyTrapForFourOrMoreArgs = createApplyOrConstructTrapForFourOrMoreArgs(1 /* ProxyHandlerTraps.Apply */); + const applyTrapForFiveOrMoreArgs = createApplyOrConstructTrapForFiveOrMoreArgs(1 /* ProxyHandlerTraps.Apply */); + const applyTrapForAnyNumberOfArgs = createApplyOrConstructTrapForAnyNumberOfArgs(1 /* ProxyHandlerTraps.Apply */); + const constructTrapForZeroOrMoreArgs = createApplyOrConstructTrapForZeroOrMoreArgs(2 /* ProxyHandlerTraps.Construct */); + const constructTrapForOneOrMoreArgs = createApplyOrConstructTrapForOneOrMoreArgs(2 /* ProxyHandlerTraps.Construct */); + const constructTrapForTwoOrMoreArgs = createApplyOrConstructTrapForTwoOrMoreArgs(2 /* ProxyHandlerTraps.Construct */); + const constructTrapForThreeOrMoreArgs = createApplyOrConstructTrapForThreeOrMoreArgs(2 /* ProxyHandlerTraps.Construct */); + const constructTrapForFourOrMoreArgs = createApplyOrConstructTrapForFourOrMoreArgs(2 /* ProxyHandlerTraps.Construct */); + const constructTrapForFiveOrMoreArgs = createApplyOrConstructTrapForFiveOrMoreArgs(2 /* ProxyHandlerTraps.Construct */); + const constructTrapForAnyNumberOfArgs = createApplyOrConstructTrapForAnyNumberOfArgs(2 /* ProxyHandlerTraps.Construct */); + if (MINIFICATION_SAFE_TRAP_PROPERTY_NAMES === undefined) { + // A minification safe way to get the 'apply' and 'construct' + // trap property names. + MINIFICATION_SAFE_TRAP_PROPERTY_NAMES = ObjectKeys({ + applyTrapForZeroOrMoreArgs, + applyTrapForOneOrMoreArgs, + applyTrapForTwoOrMoreArgs, + applyTrapForThreeOrMoreArgs, + applyTrapForFourOrMoreArgs, + applyTrapForFiveOrMoreArgs, + applyTrapForAnyNumberOfArgs, + constructTrapForZeroOrMoreArgs, + constructTrapForOneOrMoreArgs, + constructTrapForTwoOrMoreArgs, + constructTrapForThreeOrMoreArgs, + constructTrapForFourOrMoreArgs, + constructTrapForFiveOrMoreArgs, + constructTrapForAnyNumberOfArgs + }); + } + applyTrapNameRegistry[0] = MINIFICATION_SAFE_TRAP_PROPERTY_NAMES[0]; + applyTrapNameRegistry[1] = MINIFICATION_SAFE_TRAP_PROPERTY_NAMES[1]; + applyTrapNameRegistry[2] = MINIFICATION_SAFE_TRAP_PROPERTY_NAMES[2]; + applyTrapNameRegistry[3] = MINIFICATION_SAFE_TRAP_PROPERTY_NAMES[3]; + applyTrapNameRegistry[4] = MINIFICATION_SAFE_TRAP_PROPERTY_NAMES[4]; + applyTrapNameRegistry[5] = MINIFICATION_SAFE_TRAP_PROPERTY_NAMES[5]; + applyTrapNameRegistry.n = MINIFICATION_SAFE_TRAP_PROPERTY_NAMES[6]; + constructTrapNameRegistry[0] = MINIFICATION_SAFE_TRAP_PROPERTY_NAMES[7]; + constructTrapNameRegistry[1] = MINIFICATION_SAFE_TRAP_PROPERTY_NAMES[8]; + constructTrapNameRegistry[2] = MINIFICATION_SAFE_TRAP_PROPERTY_NAMES[9]; + constructTrapNameRegistry[3] = MINIFICATION_SAFE_TRAP_PROPERTY_NAMES[10]; + constructTrapNameRegistry[4] = MINIFICATION_SAFE_TRAP_PROPERTY_NAMES[11]; + constructTrapNameRegistry[5] = MINIFICATION_SAFE_TRAP_PROPERTY_NAMES[12]; + constructTrapNameRegistry.n = MINIFICATION_SAFE_TRAP_PROPERTY_NAMES[13]; + const { + prototype: BoundaryProxyHandlerProto + } = BoundaryProxyHandler; + BoundaryProxyHandlerProto[applyTrapNameRegistry[0]] = applyTrapForZeroOrMoreArgs; + BoundaryProxyHandlerProto[applyTrapNameRegistry[1]] = applyTrapForOneOrMoreArgs; + BoundaryProxyHandlerProto[applyTrapNameRegistry[2]] = applyTrapForTwoOrMoreArgs; + BoundaryProxyHandlerProto[applyTrapNameRegistry[3]] = applyTrapForThreeOrMoreArgs; + BoundaryProxyHandlerProto[applyTrapNameRegistry[4]] = applyTrapForFourOrMoreArgs; + BoundaryProxyHandlerProto[applyTrapNameRegistry[5]] = applyTrapForFiveOrMoreArgs; + BoundaryProxyHandlerProto[applyTrapNameRegistry.n] = applyTrapForAnyNumberOfArgs; + BoundaryProxyHandlerProto[constructTrapNameRegistry[0]] = constructTrapForZeroOrMoreArgs; + BoundaryProxyHandlerProto[constructTrapNameRegistry[1]] = constructTrapForOneOrMoreArgs; + BoundaryProxyHandlerProto[constructTrapNameRegistry[2]] = constructTrapForTwoOrMoreArgs; + BoundaryProxyHandlerProto[constructTrapNameRegistry[3]] = constructTrapForThreeOrMoreArgs; + BoundaryProxyHandlerProto[constructTrapNameRegistry[4]] = constructTrapForFourOrMoreArgs; + BoundaryProxyHandlerProto[constructTrapNameRegistry[5]] = constructTrapForFiveOrMoreArgs; + BoundaryProxyHandlerProto[constructTrapNameRegistry.n] = constructTrapForAnyNumberOfArgs; + ReflectSetPrototypeOf(BoundaryProxyHandlerProto, null); + }; + }; + /* eslint-enable prefer-object-spread */ +} + +const createMembraneMarshallSourceInStrictMode = ` +'use strict'; +(${createMembraneMarshall})`; +function createBlueConnector(globalObject) { + if (typeof globalObject !== 'object' || globalObject === null) { + throw new TypeErrorCtor('Missing globalObject.'); + } + return createMembraneMarshall(globalObject); +} +function createRedConnector(evaluator) { + if (typeof evaluator !== 'function') { + throw new TypeErrorCtor('Missing evaluator function.'); + } + return evaluator(createMembraneMarshallSourceInStrictMode)(); +} +const LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL = SymbolFor('@@lockerNearMembraneUndefinedValue'); +class VirtualEnvironment { + constructor(options) { + if (options === undefined) { + throw new ErrorCtor('Missing required VirtualEnvironment options.'); + } + // prettier-ignore + const { + blueConnector, + redConnector, + distortionCallback, + instrumentation, + liveTargetCallback, + revokedProxyCallback, + signSourceCallback + // eslint-disable-next-line prefer-object-spread + } = ObjectAssign({ + __proto__: null + }, options); + let blueHooks; + const blueConnect = blueConnector('blue', (...hooks) => { + blueHooks = hooks; + }, { + distortionCallback, + instrumentation, + liveTargetCallback, + revokedProxyCallback + }); + const { + 0: blueGlobalThisPointer, + 1: blueGetSelectedTarget, + 2: blueGetTransferableValue, + 3: blueCallableGetPropertyValuePointer, + // 4: blueCallableEvaluate, + 5: blueCallableLinkPointers, + 6: blueCallablePushErrorTarget, + 7: blueCallablePushTarget, + 8: blueCallableApply, + 9: blueCallableConstruct, + 10: blueCallableDefineProperty, + 11: blueCallableDeleteProperty, + 12: blueCallableGet, + 13: blueCallableGetOwnPropertyDescriptor, + 14: blueCallableGetPrototypeOf, + 15: blueCallableHas, + 16: blueCallableIsExtensible, + 17: blueCallableOwnKeys, + 18: blueCallablePreventExtensions, + 19: blueCallableSet, + 20: blueCallableSetPrototypeOf, + // 21: blueCallableDebugInfo, + // 22: blueCallableDefineProperties, + 23: blueCallableGetLazyPropertyDescriptorStateByTarget, + 24: blueCallableGetPropertyValue, + 25: blueCallableGetTargetIntegrityTraits, + 26: blueCallableGetToStringTagOfTarget, + 27: blueCallableInstallErrorPrepareStackTrace, + // 28: blueCallableInstallLazyPropertyDescriptors, + 29: blueCallableIsTargetLive, + // 30: blueCallableIsTargetRevoked, + // 31: blueCallableSerializeTarget, + 32: blueCallableSetLazyPropertyDescriptorStateByTarget, + // 33: blueTrackAsFastTarget, + 34: blueCallableBatchGetPrototypeOfAndGetOwnPropertyDescriptors, + 35: blueCallableBatchGetPrototypeOfWhenHasNoOwnProperty, + 36: blueCallableBatchGetPrototypeOfWhenHasNoOwnPropertyDescriptor + } = blueHooks; + let redHooks; + const redConnect = redConnector('red', (...hooks) => { + redHooks = hooks; + }); + const { + 0: redGlobalThisPointer, + // 1: redGetSelectedTarget, + // 2: redGetTransferableValue, + 3: redCallableGetPropertyValuePointer, + 4: redCallableEvaluate, + 5: redCallableLinkPointers, + 6: redCallablePushErrorTarget, + 7: redCallablePushTarget, + 8: redCallableApply, + 9: redCallableConstruct, + 10: redCallableDefineProperty, + 11: redCallableDeleteProperty, + 12: redCallableGet, + 13: redCallableGetOwnPropertyDescriptor, + 14: redCallableGetPrototypeOf, + 15: redCallableHas, + 16: redCallableIsExtensible, + 17: redCallableOwnKeys, + 18: redCallablePreventExtensions, + 19: redCallableSet, + 20: redCallableSetPrototypeOf, + 21: redCallableDebugInfo, + 22: redCallableDefineProperties, + 23: redCallableGetLazyPropertyDescriptorStateByTarget, + // 24: redCallableGetPropertyValue, + 25: redCallableGetTargetIntegrityTraits, + 26: redCallableGetToStringTagOfTarget, + 27: redCallableInstallErrorPrepareStackTrace, + 28: redCallableInstallLazyPropertyDescriptors, + // 29: redCallableIsTargetLive, + 30: redCallableIsTargetRevoked, + 31: redCallableSerializeTarget, + 32: redCallableSetLazyPropertyDescriptorStateByTarget, + 33: redCallableTrackAsFastTarget, + 34: redCallableBatchGetPrototypeOfAndGetOwnPropertyDescriptors, + 35: redCallableBatchGetPrototypeOfWhenHasNoOwnProperty, + 36: redCallableBatchGetPrototypeOfWhenHasNoOwnPropertyDescriptor + } = redHooks; + blueConnect(noop, + // redGlobalThisPointer, + noop, + // redGetSelectedTarget, + noop, + // redGetTransferableValue, + noop, + // redCallableGetPropertyValuePointer, + noop, + // redCallableEvaluate, + noop, + // redCallableLinkPointers, + redCallablePushErrorTarget, redCallablePushTarget, redCallableApply, redCallableConstruct, redCallableDefineProperty, redCallableDeleteProperty, redCallableGet, redCallableGetOwnPropertyDescriptor, redCallableGetPrototypeOf, redCallableHas, redCallableIsExtensible, redCallableOwnKeys, redCallablePreventExtensions, redCallableSet, redCallableSetPrototypeOf, redCallableDebugInfo, noop, + // redCallableDefineProperties, + redCallableGetLazyPropertyDescriptorStateByTarget, noop, + // redCallableGetPropertyValue, + redCallableGetTargetIntegrityTraits, redCallableGetToStringTagOfTarget, redCallableInstallErrorPrepareStackTrace, noop, + // redCallableInstallLazyPropertyDescriptors, + noop, + // redCallableIsTargetLive, + redCallableIsTargetRevoked, redCallableSerializeTarget, redCallableSetLazyPropertyDescriptorStateByTarget, redCallableTrackAsFastTarget, redCallableBatchGetPrototypeOfAndGetOwnPropertyDescriptors, redCallableBatchGetPrototypeOfWhenHasNoOwnProperty, redCallableBatchGetPrototypeOfWhenHasNoOwnPropertyDescriptor); + redConnect(noop, + // blueGlobalThisPointer, + noop, + // blueGetSelectedTarget, + noop, + // blueGetTransferableValue, + noop, + // blueCallableGetPropertyValuePointer, + noop, + // blueCallableEvaluate, + noop, + // blueCallableLinkPointers, + blueCallablePushErrorTarget, blueCallablePushTarget, blueCallableApply, blueCallableConstruct, blueCallableDefineProperty, blueCallableDeleteProperty, blueCallableGet, blueCallableGetOwnPropertyDescriptor, blueCallableGetPrototypeOf, blueCallableHas, blueCallableIsExtensible, blueCallableOwnKeys, blueCallablePreventExtensions, blueCallableSet, blueCallableSetPrototypeOf, noop, + // blueCallableDebugInfo + noop, + // blueCallableDefineProperties, + blueCallableGetLazyPropertyDescriptorStateByTarget, blueCallableGetPropertyValue, blueCallableGetTargetIntegrityTraits, blueCallableGetToStringTagOfTarget, blueCallableInstallErrorPrepareStackTrace, noop, + // blueCallableInstallLazyPropertyDescriptors, + blueCallableIsTargetLive, noop, + // blueCallableIsTargetRevoked, + noop, + // blueCallableSerializeTarget,, + blueCallableSetLazyPropertyDescriptorStateByTarget, noop, + // blueCallableTrackAsFastTarget, + blueCallableBatchGetPrototypeOfAndGetOwnPropertyDescriptors, blueCallableBatchGetPrototypeOfWhenHasNoOwnProperty, blueCallableBatchGetPrototypeOfWhenHasNoOwnPropertyDescriptor); + this.blueGlobalThisPointer = blueGlobalThisPointer; + this.blueGetSelectedTarget = blueGetSelectedTarget; + this.blueGetTransferableValue = blueGetTransferableValue; + this.blueCallableGetPropertyValuePointer = blueCallableGetPropertyValuePointer; + this.blueCallableLinkPointers = blueCallableLinkPointers; + // Ensure the `this` context of red callable functions is `undefined`. + this.redGlobalThisPointer = () => redGlobalThisPointer(); + this.redCallableGetPropertyValuePointer = (targetPointer, key) => redCallableGetPropertyValuePointer(targetPointer, key); + this.redCallableEvaluate = signSourceCallback ? sourceText => redCallableEvaluate(signSourceCallback(sourceText)) : sourceText => redCallableEvaluate(sourceText); + this.redCallableLinkPointers = (targetPointer, foreignTargetPointer) => redCallableLinkPointers(targetPointer, foreignTargetPointer); + this.redCallableSetPrototypeOf = (targetPointer, protoPointerOrNull) => redCallableSetPrototypeOf(targetPointer, protoPointerOrNull); + this.redCallableDefineProperties = (targetPointer, ...descriptorTuples) => { + const { + length + } = descriptorTuples; + const args = new ArrayCtor(length + 1); + args[0] = targetPointer; + for (let i = 0; i < length; i += 1) { + args[i + 1] = descriptorTuples[i]; + } + ReflectApply(redCallableDefineProperties, undefined, args); + }; + this.redCallableInstallLazyPropertyDescriptors = (targetPointer, ...ownKeysAndUnforgeableGlobalThisKeys) => { + const { + length + } = ownKeysAndUnforgeableGlobalThisKeys; + const args = new ArrayCtor(length + 1); + args[0] = targetPointer; + for (let i = 0; i < length; i += 1) { + args[i + 1] = ownKeysAndUnforgeableGlobalThisKeys[i]; + } + ReflectApply(redCallableInstallLazyPropertyDescriptors, undefined, args); + }; + this.redCallableTrackAsFastTarget = <span class="fstat-no" title="function not covered" >ta</span>rgetPointer => <span class="cstat-no" title="statement not covered" >redCallableTrackAsFastTarget(targetPointer);</span> + } + evaluate(sourceText) { + try { + const bluePointerOrPrimitiveValue = this.redCallableEvaluate(sourceText); + if (typeof bluePointerOrPrimitiveValue === 'function') { + bluePointerOrPrimitiveValue(); + return this.blueGetSelectedTarget(); + } + return bluePointerOrPrimitiveValue; + } catch (error) { + var _this$blueGetSelected; + throw (_this$blueGetSelected = this.blueGetSelectedTarget()) != null ? _this$blueGetSelected : error; + } + } + lazyRemapProperties(target, ownKeys, unforgeableGlobalThisKeys) { + if (typeof target === 'object' && target !== null || <span class="branch-2 cbranch-no" title="branch not covered" >typeof target === 'function')</span> { + const args = [this.blueGetTransferableValue(target)]; + ReflectApply(ArrayProtoPush, args, ownKeys); + if (unforgeableGlobalThisKeys != null && unforgeableGlobalThisKeys.length) { + // Use `LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL` to delimit + // `ownKeys` and `unforgeableGlobalThisKeys`. + args[args.length] = LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL; + ReflectApply(ArrayProtoPush, args, unforgeableGlobalThisKeys); + } + ReflectApply(this.redCallableInstallLazyPropertyDescriptors, undefined, args); + } + } + link(...keys) { + let bluePointer = this.blueGlobalThisPointer; + let redPointer = this.redGlobalThisPointer; + for (let i = 0, { + length + } = keys; i < length; i += 1) { + const key = keys[i]; + bluePointer = this.blueCallableGetPropertyValuePointer(bluePointer, key); + redPointer = this.redCallableGetPropertyValuePointer(redPointer, key); + this.redCallableLinkPointers(redPointer, bluePointer); + this.blueCallableLinkPointers(bluePointer, redPointer); + } + } + remapProperties(target, unsafeBlueDescs) { + if (typeof target === 'object' && target !== null || <span class="branch-2 cbranch-no" title="branch not covered" >typeof target === 'function')</span> { + const targetPointer = this.blueGetTransferableValue(target); + const ownKeys = ReflectOwnKeys(unsafeBlueDescs); + const { + length + } = ownKeys; + const args = new ArrayCtor(1 + length * 7); + args[0] = targetPointer; + for (let i = 0, j = 1; i < length; i += 1, j += 7) { + const ownKey = ownKeys[i]; + const unsafeBlueDesc = unsafeBlueDescs[ownKey]; + // Avoid poisoning by only installing own properties from unsafeBlueDescs. + // We don't use a toSafeDescriptor() style helper since that mutates + // the unsafeBlueDesc. + // eslint-disable-next-line prefer-object-spread + const safeBlueDesc = ObjectAssign({ + __proto__: null + }, unsafeBlueDesc); + args[j] = ownKey; + args[j + 1] = 'configurable' in safeBlueDesc ? !!safeBlueDesc.configurable : LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL; + args[j + 2] = 'enumerable' in safeBlueDesc ? !!safeBlueDesc.enumerable : LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL; + args[j + 3] = 'writable' in safeBlueDesc ? !!safeBlueDesc.writable : LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL; + args[j + 4] = 'value' in safeBlueDesc ? this.blueGetTransferableValue(safeBlueDesc.value) : LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL; + args[j + 5] = 'get' in safeBlueDesc ? this.blueGetTransferableValue(safeBlueDesc.get) : LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL; + args[j + 6] = 'set' in safeBlueDesc ? this.blueGetTransferableValue(safeBlueDesc.set) : LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL; + } + ReflectApply(this.redCallableDefineProperties, this, args); + } + } + remapProto(target, proto) { + if (typeof target === 'object' && target !== null || <span class="branch-2 cbranch-no" title="branch not covered" >typeof target === 'function')</span> { + const foreignTargetPointer = this.blueGetTransferableValue(target); + const transferableProto = proto ? this.blueGetTransferableValue(proto) : <span class="branch-1 cbranch-no" title="branch not covered" >proto;</span> + this.redCallableSetPrototypeOf(foreignTargetPointer, transferableProto); + } + } +<span class="fstat-no" title="function not covered" > tr</span>ackAsFastTarget(target) { +<span class="cstat-no" title="statement not covered" > if (typeof target === 'object' && target !== null || typeof target === 'function') {</span> +<span class="cstat-no" title="statement not covered" > this.redCallableTrackAsFastTarget(this.blueGetTransferableValue(target));</span> + } + } +} + +/** + * This list must be in sync with ecma-262, anything new added to the global object + * should be considered, to decide whether or not they need remapping. The default + * behavior, if missing form the following list, is to be remapped, which is safer. + * + * Note: remapped means the functionality is provided by the blue realm, rather than + * the red one. This helps with the identity discontinuity issue, e.g.: all Set objects + * have the same identity because it is always derived from the outer realm's Set. + * + * Note 1: We have identified 3 types of intrinsics + * A: primitives driven intrinsics + * B: syntax driven intrinsics (they usually have a imperative form as well) + * C: imperative only intrinsics + * + * While A is not remapped, it is safe, and works fast that way, and C is remapped to + * preserve the identity of all produced objects from the same realm, B is really + * problematic, and requires a lot more work to guarantee that objects from both sides + * can be considered equivalents (without identity discontinuity). + */ +function getESGlobalKeys(maxPerfMode) { + const ESGlobalKeys = [ + // *** 19.1 Value Properties of the Global Object + 'globalThis', 'Infinity', 'NaN', 'undefined', + // *** 19.2 Function Properties of the Global Object + // 'eval', // dangerous & Reflective + 'isFinite', 'isNaN', 'parseFloat', 'parseInt', 'decodeURI', 'decodeURIComponent', 'encodeURI', 'encodeURIComponent', + // *** 19.3 Constructor Properties of the Global Object + // 'AggregateError', // Reflective + // 'Array', // Reflective + 'BigInt', 'Boolean', + // 'Date', // Remapped + // 'Error', // Reflective + // 'EvalError', // Reflective + 'FinalizationRegistry', + // 'Function', // dangerous & Reflective + 'Map', 'Number', + // 'Object', // Reflective + // Allow blue `Promise` constructor to overwrite the Red one so that promises + // created by the `Promise` constructor or APIs like `fetch` will work. + // 'Promise', // Remapped + // 'Proxy', // Reflective + // 'RangeError', // Reflective + // 'ReferenceError', // Reflective + 'RegExp', 'Set', 'String', 'Symbol', + // 'SyntaxError', // Reflective + // 'TypeError', // Reflective + // 'URIError', // Reflective + 'WeakMap', 'WeakSet', 'WeakRef', + // *** 18.4 Other Properties of the Global Object + // 'Atomics', // Remapped + 'JSON', 'Math', 'Reflect', + // *** Annex B + 'escape', 'unescape' + // *** ECMA-402 + // 'Intl', // Remapped + ]; + // This set is for maxPerfMode, all of these must be from the same global object + const maxPerfModeKeys = { + intrinsics: ['ArrayBuffer', 'Atomics', 'BigInt64Array', 'BigUint64Array', 'DataView', 'Float32Array', 'Float64Array', 'Int16Array', 'Int32Array', 'Int8Array', 'SharedArrayBuffer', 'Uint16Array', 'Uint32Array', 'Uint8Array', 'Uint8ClampedArray'], + // Ideally these should come from browser-realm, that's a code reorg improvement for later + browser: ['Blob', + // 'createImageBitmap', + 'crypto', 'Crypto', 'fetch', 'File', 'FileReader', 'FileReaderSync', + // 'ImageData', + 'Request', 'Response', 'SubtleCrypto', 'TextDecoder', 'TextEncoder', 'URL', 'XMLHttpRequest'] + }; + if (maxPerfMode) { + ESGlobalKeys.push(...maxPerfModeKeys.intrinsics, ...maxPerfModeKeys.browser); + } + return ESGlobalKeys; +} +// These are foundational things that should never be wrapped but are equivalent +// @TODO: Revisit this list. +const ReflectiveIntrinsicObjectNames = ['AggregateError', 'Array', 'Error', 'EvalError', 'Function', 'Object', 'Proxy', 'RangeError', 'ReferenceError', 'SyntaxError', 'TypeError', 'URIError', 'eval', 'globalThis']; +function getESGlobalsAndReflectiveIntrinsicObjectNames(maxPerfMode) { + const ESGlobalKeys = getESGlobalKeys(maxPerfMode); + return toSafeArray([...ESGlobalKeys, ...ReflectiveIntrinsicObjectNames]); +} +function getGlobalObjectOwnKeys(source) { + const ownKeys = ReflectOwnKeys(source); + // WKWebView incorrectly excludes the 'webkit' own property of the global + // object from `Object.keys()` and `Reflect.ownKeys()` results, so add it. + // istanbul ignore if: currently unreachable via tests + if (ObjectHasOwn(source, 'webkit') && !ReflectApply(ArrayProtoIncludes, ownKeys, ['webkit'])) { + ownKeys[ownKeys.length] = 'webkit'; + } + return ownKeys; +} +function assignFilteredGlobalDescriptorsFromPropertyDescriptorMap(descs, source, maxPerfMode) { + const ownKeys = getGlobalObjectOwnKeys(source); + const ESGlobalsAndReflectiveIntrinsicObjectNames = getESGlobalsAndReflectiveIntrinsicObjectNames(maxPerfMode); + for (let i = 0, { + length + } = ownKeys; i < length; i += 1) { + const ownKey = ownKeys[i]; + // Avoid overriding ECMAScript global names that correspond to + // global intrinsics. This guarantee that those entries will be + // ignored if present in the source property descriptor map. + if (!ESGlobalsAndReflectiveIntrinsicObjectNames.includes(ownKey)) { + const unsafeDesc = source[ownKey]; + if (unsafeDesc) { + // Avoid poisoning by only installing own properties from + // unsafeDesc. We don't use a toSafeDescriptor() style helper + // since that mutates the unsafeBlueDesc. + // eslint-disable-next-line prefer-object-spread + descs[ownKey] = ObjectAssign({ + __proto__: null + }, unsafeDesc); + } + } + } + return descs; +} +function getFilteredGlobalOwnKeys(source, maxPerfMode) { + const result = []; + let resultOffset = 0; + const ownKeys = getGlobalObjectOwnKeys(source); + const ESGlobalsAndReflectiveIntrinsicObjectNames = getESGlobalsAndReflectiveIntrinsicObjectNames(maxPerfMode); + for (let i = 0, { + length + } = ownKeys; i < length; i += 1) { + const ownKey = ownKeys[i]; + // Avoid overriding ECMAScript global names that correspond to global + // intrinsics. This guarantees that those entries will be ignored if + // present in the source object. + if (!ESGlobalsAndReflectiveIntrinsicObjectNames.includes(ownKey)) { + result[resultOffset++] = ownKey; + } + } + return result; +} +function linkIntrinsics(env, globalObject) { + // Remap intrinsics that are realm agnostic. + for (let i = 0, { + length + } = ReflectiveIntrinsicObjectNames; i < length; i += 1) { + const globalName = ReflectiveIntrinsicObjectNames[i]; + const reflectiveValue = globalObject[globalName]; + if (reflectiveValue) { + // Proxy.prototype is undefined. + if (reflectiveValue.prototype) { + env.link(globalName, 'prototype'); + } else { + env.link(globalName); + } + } + } +} +export { VirtualEnvironment, assignFilteredGlobalDescriptorsFromPropertyDescriptorMap, createBlueConnector, createMembraneMarshall, createRedConnector, getFilteredGlobalOwnKeys, linkIntrinsics }; + </pre></td></tr></table></pre> + + <div class='push'></div><!-- for sticky footer --> + </div><!-- /wrapper --> + <div class='footer quiet pad2 space-top1 center small'> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> + at Mon Nov 25 2024 16:43:41 GMT+0000 (Coordinated Universal Time) + </div> + <script src="../../prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="../../sorter.js"></script> + <script src="../../block-navigation.js"></script> + </body> +</html> + \ No newline at end of file diff --git a/pages/coverage-reports/pages/1732553023031263517/near-membrane-base/src/connector.ts.html b/pages/coverage-reports/pages/1732553023031263517/near-membrane-base/src/connector.ts.html new file mode 100644 index 00000000..e88fd0a4 --- /dev/null +++ b/pages/coverage-reports/pages/1732553023031263517/near-membrane-base/src/connector.ts.html @@ -0,0 +1,148 @@ + +<!doctype html> +<html lang="en"> + +<head> + <title>Code coverage report for near-membrane-base/src/connector.ts</title> + <meta charset="utf-8" /> + <link rel="stylesheet" href="../../prettify.css" /> + <link rel="stylesheet" href="../../base.css" /> + <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <style type='text/css'> + .coverage-summary .sorter { + background-image: url(../../sort-arrow-sprite.png); + } + </style> +</head> + +<body> +<div class='wrapper'> + <div class='pad1'> + <h1><a href="../../index.html">All files</a> / <a href="index.html">near-membrane-base/src</a> connector.ts</h1> + <div class='clearfix'> + + <div class='fl pad1y space-right2'> + <span class="strong">71.43% </span> + <span class="quiet">Statements</span> + <span class='fraction'>5/7</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">66.67% </span> + <span class="quiet">Branches</span> + <span class='fraction'>4/6</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Functions</span> + <span class='fraction'>2/2</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">71.43% </span> + <span class="quiet">Lines</span> + <span class='fraction'>5/7</span> + </div> + + + </div> + <p class="quiet"> + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + </p> + <template id="filterTemplate"> + <div class="quiet"> + Filter: + <input oninput="onInput()" type="search" id="fileSearch"> + </div> + </template> + </div> + <div class='status-line medium'></div> + <pre><table class="coverage"> +<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a> +<a name='L2'></a><a href='#L2'>2</a> +<a name='L3'></a><a href='#L3'>3</a> +<a name='L4'></a><a href='#L4'>4</a> +<a name='L5'></a><a href='#L5'>5</a> +<a name='L6'></a><a href='#L6'>6</a> +<a name='L7'></a><a href='#L7'>7</a> +<a name='L8'></a><a href='#L8'>8</a> +<a name='L9'></a><a href='#L9'>9</a> +<a name='L10'></a><a href='#L10'>10</a> +<a name='L11'></a><a href='#L11'>11</a> +<a name='L12'></a><a href='#L12'>12</a> +<a name='L13'></a><a href='#L13'>13</a> +<a name='L14'></a><a href='#L14'>14</a> +<a name='L15'></a><a href='#L15'>15</a> +<a name='L16'></a><a href='#L16'>16</a> +<a name='L17'></a><a href='#L17'>17</a> +<a name='L18'></a><a href='#L18'>18</a> +<a name='L19'></a><a href='#L19'>19</a> +<a name='L20'></a><a href='#L20'>20</a> +<a name='L21'></a><a href='#L21'>21</a> +<a name='L22'></a><a href='#L22'>22</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">4x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">4x</span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">4x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">23x</span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">23x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { TypeErrorCtor } from '@locker/near-membrane-shared'; +import { createMembraneMarshall } from './membrane'; +import type { Connector } from './types'; + +const createMembraneMarshallSourceInStrictMode = ` +'use strict'; +(${createMembraneMarshall})`; + +export function createBlueConnector(globalObject: typeof globalThis): Connector { + <span class="missing-if-branch" title="if path not taken" >I</span>if (typeof globalObject !== 'object' || globalObject === null) { +<span class="cstat-no" title="statement not covered" > throw new TypeErrorCtor('Missing globalObject.');</span> + } + return createMembraneMarshall(globalObject); +} + +export function createRedConnector(evaluator: typeof eval): Connector { + <span class="missing-if-branch" title="if path not taken" >I</span>if (typeof evaluator !== 'function') { +<span class="cstat-no" title="statement not covered" > throw new TypeErrorCtor('Missing evaluator function.');</span> + } + return evaluator(createMembraneMarshallSourceInStrictMode)() as Connector; +} + </pre></td></tr></table></pre> + + <div class='push'></div><!-- for sticky footer --> + </div><!-- /wrapper --> + <div class='footer quiet pad2 space-top1 center small'> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> + at Mon Nov 25 2024 16:43:41 GMT+0000 (Coordinated Universal Time) + </div> + <script src="../../prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="../../sorter.js"></script> + <script src="../../block-navigation.js"></script> + </body> +</html> + \ No newline at end of file diff --git a/pages/coverage-reports/pages/1732553023031263517/near-membrane-base/src/environment.ts.html b/pages/coverage-reports/pages/1732553023031263517/near-membrane-base/src/environment.ts.html new file mode 100644 index 00000000..937cc4ce --- /dev/null +++ b/pages/coverage-reports/pages/1732553023031263517/near-membrane-base/src/environment.ts.html @@ -0,0 +1,1285 @@ + +<!doctype html> +<html lang="en"> + +<head> + <title>Code coverage report for near-membrane-base/src/environment.ts</title> + <meta charset="utf-8" /> + <link rel="stylesheet" href="../../prettify.css" /> + <link rel="stylesheet" href="../../base.css" /> + <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <style type='text/css'> + .coverage-summary .sorter { + background-image: url(../../sort-arrow-sprite.png); + } + </style> +</head> + +<body> +<div class='wrapper'> + <div class='pad1'> + <h1><a href="../../index.html">All files</a> / <a href="index.html">near-membrane-base/src</a> environment.ts</h1> + <div class='clearfix'> + + <div class='fl pad1y space-right2'> + <span class="strong">85.42% </span> + <span class="quiet">Statements</span> + <span class='fraction'>82/96</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">38.64% </span> + <span class="quiet">Branches</span> + <span class='fraction'>17/44</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">72.22% </span> + <span class="quiet">Functions</span> + <span class='fraction'>13/18</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">84.27% </span> + <span class="quiet">Lines</span> + <span class='fraction'>75/89</span> + </div> + + + </div> + <p class="quiet"> + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + </p> + <template id="filterTemplate"> + <div class="quiet"> + Filter: + <input oninput="onInput()" type="search" id="fileSearch"> + </div> + </template> + </div> + <div class='status-line high'></div> + <pre><table class="coverage"> +<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a> +<a name='L2'></a><a href='#L2'>2</a> +<a name='L3'></a><a href='#L3'>3</a> +<a name='L4'></a><a href='#L4'>4</a> +<a name='L5'></a><a href='#L5'>5</a> +<a name='L6'></a><a href='#L6'>6</a> +<a name='L7'></a><a href='#L7'>7</a> +<a name='L8'></a><a href='#L8'>8</a> +<a name='L9'></a><a href='#L9'>9</a> +<a name='L10'></a><a href='#L10'>10</a> +<a name='L11'></a><a href='#L11'>11</a> +<a name='L12'></a><a href='#L12'>12</a> +<a name='L13'></a><a href='#L13'>13</a> +<a name='L14'></a><a href='#L14'>14</a> +<a name='L15'></a><a href='#L15'>15</a> +<a name='L16'></a><a href='#L16'>16</a> +<a name='L17'></a><a href='#L17'>17</a> +<a name='L18'></a><a href='#L18'>18</a> +<a name='L19'></a><a href='#L19'>19</a> +<a name='L20'></a><a href='#L20'>20</a> +<a name='L21'></a><a href='#L21'>21</a> +<a name='L22'></a><a href='#L22'>22</a> +<a name='L23'></a><a href='#L23'>23</a> +<a name='L24'></a><a href='#L24'>24</a> +<a name='L25'></a><a href='#L25'>25</a> +<a name='L26'></a><a href='#L26'>26</a> +<a name='L27'></a><a href='#L27'>27</a> +<a name='L28'></a><a href='#L28'>28</a> +<a name='L29'></a><a href='#L29'>29</a> +<a name='L30'></a><a href='#L30'>30</a> +<a name='L31'></a><a href='#L31'>31</a> +<a name='L32'></a><a href='#L32'>32</a> +<a name='L33'></a><a href='#L33'>33</a> +<a name='L34'></a><a href='#L34'>34</a> +<a name='L35'></a><a href='#L35'>35</a> +<a name='L36'></a><a href='#L36'>36</a> +<a name='L37'></a><a href='#L37'>37</a> +<a name='L38'></a><a href='#L38'>38</a> +<a name='L39'></a><a href='#L39'>39</a> +<a name='L40'></a><a href='#L40'>40</a> +<a name='L41'></a><a href='#L41'>41</a> +<a name='L42'></a><a href='#L42'>42</a> +<a name='L43'></a><a href='#L43'>43</a> +<a name='L44'></a><a href='#L44'>44</a> +<a name='L45'></a><a href='#L45'>45</a> +<a name='L46'></a><a href='#L46'>46</a> +<a name='L47'></a><a href='#L47'>47</a> +<a name='L48'></a><a href='#L48'>48</a> +<a name='L49'></a><a href='#L49'>49</a> +<a name='L50'></a><a href='#L50'>50</a> +<a name='L51'></a><a href='#L51'>51</a> +<a name='L52'></a><a href='#L52'>52</a> +<a name='L53'></a><a href='#L53'>53</a> +<a name='L54'></a><a href='#L54'>54</a> +<a name='L55'></a><a href='#L55'>55</a> +<a name='L56'></a><a href='#L56'>56</a> +<a name='L57'></a><a href='#L57'>57</a> +<a name='L58'></a><a href='#L58'>58</a> +<a name='L59'></a><a href='#L59'>59</a> +<a name='L60'></a><a href='#L60'>60</a> +<a name='L61'></a><a href='#L61'>61</a> +<a name='L62'></a><a href='#L62'>62</a> +<a name='L63'></a><a href='#L63'>63</a> +<a name='L64'></a><a href='#L64'>64</a> +<a name='L65'></a><a href='#L65'>65</a> +<a name='L66'></a><a href='#L66'>66</a> +<a name='L67'></a><a href='#L67'>67</a> +<a name='L68'></a><a href='#L68'>68</a> +<a name='L69'></a><a href='#L69'>69</a> +<a name='L70'></a><a href='#L70'>70</a> +<a name='L71'></a><a href='#L71'>71</a> +<a name='L72'></a><a href='#L72'>72</a> +<a name='L73'></a><a href='#L73'>73</a> +<a name='L74'></a><a href='#L74'>74</a> +<a name='L75'></a><a href='#L75'>75</a> +<a name='L76'></a><a href='#L76'>76</a> +<a name='L77'></a><a href='#L77'>77</a> +<a name='L78'></a><a href='#L78'>78</a> +<a name='L79'></a><a href='#L79'>79</a> +<a name='L80'></a><a href='#L80'>80</a> +<a name='L81'></a><a href='#L81'>81</a> +<a name='L82'></a><a href='#L82'>82</a> +<a name='L83'></a><a href='#L83'>83</a> +<a name='L84'></a><a href='#L84'>84</a> +<a name='L85'></a><a href='#L85'>85</a> +<a name='L86'></a><a href='#L86'>86</a> +<a name='L87'></a><a href='#L87'>87</a> +<a name='L88'></a><a href='#L88'>88</a> +<a name='L89'></a><a href='#L89'>89</a> +<a name='L90'></a><a href='#L90'>90</a> +<a name='L91'></a><a href='#L91'>91</a> +<a name='L92'></a><a href='#L92'>92</a> +<a name='L93'></a><a href='#L93'>93</a> +<a name='L94'></a><a href='#L94'>94</a> +<a name='L95'></a><a href='#L95'>95</a> +<a name='L96'></a><a href='#L96'>96</a> +<a name='L97'></a><a href='#L97'>97</a> +<a name='L98'></a><a href='#L98'>98</a> +<a name='L99'></a><a href='#L99'>99</a> +<a name='L100'></a><a href='#L100'>100</a> +<a name='L101'></a><a href='#L101'>101</a> +<a name='L102'></a><a href='#L102'>102</a> +<a name='L103'></a><a href='#L103'>103</a> +<a name='L104'></a><a href='#L104'>104</a> +<a name='L105'></a><a href='#L105'>105</a> +<a name='L106'></a><a href='#L106'>106</a> +<a name='L107'></a><a href='#L107'>107</a> +<a name='L108'></a><a href='#L108'>108</a> +<a name='L109'></a><a href='#L109'>109</a> +<a name='L110'></a><a href='#L110'>110</a> +<a name='L111'></a><a href='#L111'>111</a> +<a name='L112'></a><a href='#L112'>112</a> +<a name='L113'></a><a href='#L113'>113</a> +<a name='L114'></a><a href='#L114'>114</a> +<a name='L115'></a><a href='#L115'>115</a> +<a name='L116'></a><a href='#L116'>116</a> +<a name='L117'></a><a href='#L117'>117</a> +<a name='L118'></a><a href='#L118'>118</a> +<a name='L119'></a><a href='#L119'>119</a> +<a name='L120'></a><a href='#L120'>120</a> +<a name='L121'></a><a href='#L121'>121</a> +<a name='L122'></a><a href='#L122'>122</a> +<a name='L123'></a><a href='#L123'>123</a> +<a name='L124'></a><a href='#L124'>124</a> +<a name='L125'></a><a href='#L125'>125</a> +<a name='L126'></a><a href='#L126'>126</a> +<a name='L127'></a><a href='#L127'>127</a> +<a name='L128'></a><a href='#L128'>128</a> +<a name='L129'></a><a href='#L129'>129</a> +<a name='L130'></a><a href='#L130'>130</a> +<a name='L131'></a><a href='#L131'>131</a> +<a name='L132'></a><a href='#L132'>132</a> +<a name='L133'></a><a href='#L133'>133</a> +<a name='L134'></a><a href='#L134'>134</a> +<a name='L135'></a><a href='#L135'>135</a> +<a name='L136'></a><a href='#L136'>136</a> +<a name='L137'></a><a href='#L137'>137</a> +<a name='L138'></a><a href='#L138'>138</a> +<a name='L139'></a><a href='#L139'>139</a> +<a name='L140'></a><a href='#L140'>140</a> +<a name='L141'></a><a href='#L141'>141</a> +<a name='L142'></a><a href='#L142'>142</a> +<a name='L143'></a><a href='#L143'>143</a> +<a name='L144'></a><a href='#L144'>144</a> +<a name='L145'></a><a href='#L145'>145</a> +<a name='L146'></a><a href='#L146'>146</a> +<a name='L147'></a><a href='#L147'>147</a> +<a name='L148'></a><a href='#L148'>148</a> +<a name='L149'></a><a href='#L149'>149</a> +<a name='L150'></a><a href='#L150'>150</a> +<a name='L151'></a><a href='#L151'>151</a> +<a name='L152'></a><a href='#L152'>152</a> +<a name='L153'></a><a href='#L153'>153</a> +<a name='L154'></a><a href='#L154'>154</a> +<a name='L155'></a><a href='#L155'>155</a> +<a name='L156'></a><a href='#L156'>156</a> +<a name='L157'></a><a href='#L157'>157</a> +<a name='L158'></a><a href='#L158'>158</a> +<a name='L159'></a><a href='#L159'>159</a> +<a name='L160'></a><a href='#L160'>160</a> +<a name='L161'></a><a href='#L161'>161</a> +<a name='L162'></a><a href='#L162'>162</a> +<a name='L163'></a><a href='#L163'>163</a> +<a name='L164'></a><a href='#L164'>164</a> +<a name='L165'></a><a href='#L165'>165</a> +<a name='L166'></a><a href='#L166'>166</a> +<a name='L167'></a><a href='#L167'>167</a> +<a name='L168'></a><a href='#L168'>168</a> +<a name='L169'></a><a href='#L169'>169</a> +<a name='L170'></a><a href='#L170'>170</a> +<a name='L171'></a><a href='#L171'>171</a> +<a name='L172'></a><a href='#L172'>172</a> +<a name='L173'></a><a href='#L173'>173</a> +<a name='L174'></a><a href='#L174'>174</a> +<a name='L175'></a><a href='#L175'>175</a> +<a name='L176'></a><a href='#L176'>176</a> +<a name='L177'></a><a href='#L177'>177</a> +<a name='L178'></a><a href='#L178'>178</a> +<a name='L179'></a><a href='#L179'>179</a> +<a name='L180'></a><a href='#L180'>180</a> +<a name='L181'></a><a href='#L181'>181</a> +<a name='L182'></a><a href='#L182'>182</a> +<a name='L183'></a><a href='#L183'>183</a> +<a name='L184'></a><a href='#L184'>184</a> +<a name='L185'></a><a href='#L185'>185</a> +<a name='L186'></a><a href='#L186'>186</a> +<a name='L187'></a><a href='#L187'>187</a> +<a name='L188'></a><a href='#L188'>188</a> +<a name='L189'></a><a href='#L189'>189</a> +<a name='L190'></a><a href='#L190'>190</a> +<a name='L191'></a><a href='#L191'>191</a> +<a name='L192'></a><a href='#L192'>192</a> +<a name='L193'></a><a href='#L193'>193</a> +<a name='L194'></a><a href='#L194'>194</a> +<a name='L195'></a><a href='#L195'>195</a> +<a name='L196'></a><a href='#L196'>196</a> +<a name='L197'></a><a href='#L197'>197</a> +<a name='L198'></a><a href='#L198'>198</a> +<a name='L199'></a><a href='#L199'>199</a> +<a name='L200'></a><a href='#L200'>200</a> +<a name='L201'></a><a href='#L201'>201</a> +<a name='L202'></a><a href='#L202'>202</a> +<a name='L203'></a><a href='#L203'>203</a> +<a name='L204'></a><a href='#L204'>204</a> +<a name='L205'></a><a href='#L205'>205</a> +<a name='L206'></a><a href='#L206'>206</a> +<a name='L207'></a><a href='#L207'>207</a> +<a name='L208'></a><a href='#L208'>208</a> +<a name='L209'></a><a href='#L209'>209</a> +<a name='L210'></a><a href='#L210'>210</a> +<a name='L211'></a><a href='#L211'>211</a> +<a name='L212'></a><a href='#L212'>212</a> +<a name='L213'></a><a href='#L213'>213</a> +<a name='L214'></a><a href='#L214'>214</a> +<a name='L215'></a><a href='#L215'>215</a> +<a name='L216'></a><a href='#L216'>216</a> +<a name='L217'></a><a href='#L217'>217</a> +<a name='L218'></a><a href='#L218'>218</a> +<a name='L219'></a><a href='#L219'>219</a> +<a name='L220'></a><a href='#L220'>220</a> +<a name='L221'></a><a href='#L221'>221</a> +<a name='L222'></a><a href='#L222'>222</a> +<a name='L223'></a><a href='#L223'>223</a> +<a name='L224'></a><a href='#L224'>224</a> +<a name='L225'></a><a href='#L225'>225</a> +<a name='L226'></a><a href='#L226'>226</a> +<a name='L227'></a><a href='#L227'>227</a> +<a name='L228'></a><a href='#L228'>228</a> +<a name='L229'></a><a href='#L229'>229</a> +<a name='L230'></a><a href='#L230'>230</a> +<a name='L231'></a><a href='#L231'>231</a> +<a name='L232'></a><a href='#L232'>232</a> +<a name='L233'></a><a href='#L233'>233</a> +<a name='L234'></a><a href='#L234'>234</a> +<a name='L235'></a><a href='#L235'>235</a> +<a name='L236'></a><a href='#L236'>236</a> +<a name='L237'></a><a href='#L237'>237</a> +<a name='L238'></a><a href='#L238'>238</a> +<a name='L239'></a><a href='#L239'>239</a> +<a name='L240'></a><a href='#L240'>240</a> +<a name='L241'></a><a href='#L241'>241</a> +<a name='L242'></a><a href='#L242'>242</a> +<a name='L243'></a><a href='#L243'>243</a> +<a name='L244'></a><a href='#L244'>244</a> +<a name='L245'></a><a href='#L245'>245</a> +<a name='L246'></a><a href='#L246'>246</a> +<a name='L247'></a><a href='#L247'>247</a> +<a name='L248'></a><a href='#L248'>248</a> +<a name='L249'></a><a href='#L249'>249</a> +<a name='L250'></a><a href='#L250'>250</a> +<a name='L251'></a><a href='#L251'>251</a> +<a name='L252'></a><a href='#L252'>252</a> +<a name='L253'></a><a href='#L253'>253</a> +<a name='L254'></a><a href='#L254'>254</a> +<a name='L255'></a><a href='#L255'>255</a> +<a name='L256'></a><a href='#L256'>256</a> +<a name='L257'></a><a href='#L257'>257</a> +<a name='L258'></a><a href='#L258'>258</a> +<a name='L259'></a><a href='#L259'>259</a> +<a name='L260'></a><a href='#L260'>260</a> +<a name='L261'></a><a href='#L261'>261</a> +<a name='L262'></a><a href='#L262'>262</a> +<a name='L263'></a><a href='#L263'>263</a> +<a name='L264'></a><a href='#L264'>264</a> +<a name='L265'></a><a href='#L265'>265</a> +<a name='L266'></a><a href='#L266'>266</a> +<a name='L267'></a><a href='#L267'>267</a> +<a name='L268'></a><a href='#L268'>268</a> +<a name='L269'></a><a href='#L269'>269</a> +<a name='L270'></a><a href='#L270'>270</a> +<a name='L271'></a><a href='#L271'>271</a> +<a name='L272'></a><a href='#L272'>272</a> +<a name='L273'></a><a href='#L273'>273</a> +<a name='L274'></a><a href='#L274'>274</a> +<a name='L275'></a><a href='#L275'>275</a> +<a name='L276'></a><a href='#L276'>276</a> +<a name='L277'></a><a href='#L277'>277</a> +<a name='L278'></a><a href='#L278'>278</a> +<a name='L279'></a><a href='#L279'>279</a> +<a name='L280'></a><a href='#L280'>280</a> +<a name='L281'></a><a href='#L281'>281</a> +<a name='L282'></a><a href='#L282'>282</a> +<a name='L283'></a><a href='#L283'>283</a> +<a name='L284'></a><a href='#L284'>284</a> +<a name='L285'></a><a href='#L285'>285</a> +<a name='L286'></a><a href='#L286'>286</a> +<a name='L287'></a><a href='#L287'>287</a> +<a name='L288'></a><a href='#L288'>288</a> +<a name='L289'></a><a href='#L289'>289</a> +<a name='L290'></a><a href='#L290'>290</a> +<a name='L291'></a><a href='#L291'>291</a> +<a name='L292'></a><a href='#L292'>292</a> +<a name='L293'></a><a href='#L293'>293</a> +<a name='L294'></a><a href='#L294'>294</a> +<a name='L295'></a><a href='#L295'>295</a> +<a name='L296'></a><a href='#L296'>296</a> +<a name='L297'></a><a href='#L297'>297</a> +<a name='L298'></a><a href='#L298'>298</a> +<a name='L299'></a><a href='#L299'>299</a> +<a name='L300'></a><a href='#L300'>300</a> +<a name='L301'></a><a href='#L301'>301</a> +<a name='L302'></a><a href='#L302'>302</a> +<a name='L303'></a><a href='#L303'>303</a> +<a name='L304'></a><a href='#L304'>304</a> +<a name='L305'></a><a href='#L305'>305</a> +<a name='L306'></a><a href='#L306'>306</a> +<a name='L307'></a><a href='#L307'>307</a> +<a name='L308'></a><a href='#L308'>308</a> +<a name='L309'></a><a href='#L309'>309</a> +<a name='L310'></a><a href='#L310'>310</a> +<a name='L311'></a><a href='#L311'>311</a> +<a name='L312'></a><a href='#L312'>312</a> +<a name='L313'></a><a href='#L313'>313</a> +<a name='L314'></a><a href='#L314'>314</a> +<a name='L315'></a><a href='#L315'>315</a> +<a name='L316'></a><a href='#L316'>316</a> +<a name='L317'></a><a href='#L317'>317</a> +<a name='L318'></a><a href='#L318'>318</a> +<a name='L319'></a><a href='#L319'>319</a> +<a name='L320'></a><a href='#L320'>320</a> +<a name='L321'></a><a href='#L321'>321</a> +<a name='L322'></a><a href='#L322'>322</a> +<a name='L323'></a><a href='#L323'>323</a> +<a name='L324'></a><a href='#L324'>324</a> +<a name='L325'></a><a href='#L325'>325</a> +<a name='L326'></a><a href='#L326'>326</a> +<a name='L327'></a><a href='#L327'>327</a> +<a name='L328'></a><a href='#L328'>328</a> +<a name='L329'></a><a href='#L329'>329</a> +<a name='L330'></a><a href='#L330'>330</a> +<a name='L331'></a><a href='#L331'>331</a> +<a name='L332'></a><a href='#L332'>332</a> +<a name='L333'></a><a href='#L333'>333</a> +<a name='L334'></a><a href='#L334'>334</a> +<a name='L335'></a><a href='#L335'>335</a> +<a name='L336'></a><a href='#L336'>336</a> +<a name='L337'></a><a href='#L337'>337</a> +<a name='L338'></a><a href='#L338'>338</a> +<a name='L339'></a><a href='#L339'>339</a> +<a name='L340'></a><a href='#L340'>340</a> +<a name='L341'></a><a href='#L341'>341</a> +<a name='L342'></a><a href='#L342'>342</a> +<a name='L343'></a><a href='#L343'>343</a> +<a name='L344'></a><a href='#L344'>344</a> +<a name='L345'></a><a href='#L345'>345</a> +<a name='L346'></a><a href='#L346'>346</a> +<a name='L347'></a><a href='#L347'>347</a> +<a name='L348'></a><a href='#L348'>348</a> +<a name='L349'></a><a href='#L349'>349</a> +<a name='L350'></a><a href='#L350'>350</a> +<a name='L351'></a><a href='#L351'>351</a> +<a name='L352'></a><a href='#L352'>352</a> +<a name='L353'></a><a href='#L353'>353</a> +<a name='L354'></a><a href='#L354'>354</a> +<a name='L355'></a><a href='#L355'>355</a> +<a name='L356'></a><a href='#L356'>356</a> +<a name='L357'></a><a href='#L357'>357</a> +<a name='L358'></a><a href='#L358'>358</a> +<a name='L359'></a><a href='#L359'>359</a> +<a name='L360'></a><a href='#L360'>360</a> +<a name='L361'></a><a href='#L361'>361</a> +<a name='L362'></a><a href='#L362'>362</a> +<a name='L363'></a><a href='#L363'>363</a> +<a name='L364'></a><a href='#L364'>364</a> +<a name='L365'></a><a href='#L365'>365</a> +<a name='L366'></a><a href='#L366'>366</a> +<a name='L367'></a><a href='#L367'>367</a> +<a name='L368'></a><a href='#L368'>368</a> +<a name='L369'></a><a href='#L369'>369</a> +<a name='L370'></a><a href='#L370'>370</a> +<a name='L371'></a><a href='#L371'>371</a> +<a name='L372'></a><a href='#L372'>372</a> +<a name='L373'></a><a href='#L373'>373</a> +<a name='L374'></a><a href='#L374'>374</a> +<a name='L375'></a><a href='#L375'>375</a> +<a name='L376'></a><a href='#L376'>376</a> +<a name='L377'></a><a href='#L377'>377</a> +<a name='L378'></a><a href='#L378'>378</a> +<a name='L379'></a><a href='#L379'>379</a> +<a name='L380'></a><a href='#L380'>380</a> +<a name='L381'></a><a href='#L381'>381</a> +<a name='L382'></a><a href='#L382'>382</a> +<a name='L383'></a><a href='#L383'>383</a> +<a name='L384'></a><a href='#L384'>384</a> +<a name='L385'></a><a href='#L385'>385</a> +<a name='L386'></a><a href='#L386'>386</a> +<a name='L387'></a><a href='#L387'>387</a> +<a name='L388'></a><a href='#L388'>388</a> +<a name='L389'></a><a href='#L389'>389</a> +<a name='L390'></a><a href='#L390'>390</a> +<a name='L391'></a><a href='#L391'>391</a> +<a name='L392'></a><a href='#L392'>392</a> +<a name='L393'></a><a href='#L393'>393</a> +<a name='L394'></a><a href='#L394'>394</a> +<a name='L395'></a><a href='#L395'>395</a> +<a name='L396'></a><a href='#L396'>396</a> +<a name='L397'></a><a href='#L397'>397</a> +<a name='L398'></a><a href='#L398'>398</a> +<a name='L399'></a><a href='#L399'>399</a> +<a name='L400'></a><a href='#L400'>400</a> +<a name='L401'></a><a href='#L401'>401</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">4x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">23x</span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">23x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">23x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">23x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">23x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">23x</span> +<span class="cline-any cline-yes">23x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">23x</span> +<span class="cline-any cline-yes">23x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">23x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">23x</span> +<span class="cline-any cline-yes">23x</span> +<span class="cline-any cline-yes">23x</span> +<span class="cline-any cline-yes">23x</span> +<span class="cline-any cline-yes">23x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">322x</span> +<span class="cline-any cline-yes">23x</span> +<span class="cline-any cline-yes">575x</span> +<span class="cline-any cline-yes">23x</span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-yes">30x</span> +<span class="cline-any cline-yes">23x</span> +<span class="cline-any cline-yes">575x</span> +<span class="cline-any cline-yes">23x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-yes">23x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">15x</span> +<span class="cline-any cline-yes">15x</span> +<span class="cline-any cline-yes">15x</span> +<span class="cline-any cline-yes">15x</span> +<span class="cline-any cline-yes">154x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">15x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">23x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">23x</span> +<span class="cline-any cline-yes">23x</span> +<span class="cline-any cline-yes">23x</span> +<span class="cline-any cline-yes">23x</span> +<span class="cline-any cline-yes">3024x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">23x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">23x</span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">30x</span> +<span class="cline-any cline-yes">30x</span> +<span class="cline-any cline-yes">28x</span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">28x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">2x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">23x</span> +<span class="cline-any cline-yes">23x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">23x</span> +<span class="cline-any cline-yes">23x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">23x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">322x</span> +<span class="cline-any cline-yes">322x</span> +<span class="cline-any cline-yes">322x</span> +<span class="cline-any cline-yes">575x</span> +<span class="cline-any cline-yes">575x</span> +<span class="cline-any cline-yes">575x</span> +<span class="cline-any cline-yes">575x</span> +<span class="cline-any cline-yes">575x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">15x</span> +<span class="cline-any cline-yes">15x</span> +<span class="cline-any cline-yes">15x</span> +<span class="cline-any cline-yes">15x</span> +<span class="cline-any cline-yes">15x</span> +<span class="cline-any cline-yes">15x</span> +<span class="cline-any cline-yes">15x</span> +<span class="cline-any cline-yes">22x</span> +<span class="cline-any cline-yes">22x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">22x</span> +<span class="cline-any cline-yes">22x</span> +<span class="cline-any cline-yes">22x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">22x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">22x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">22x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">22x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">22x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">15x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { + ArrayCtor, + ArrayProtoPush, + ErrorCtor, + noop, + ObjectAssign, + ReflectApply, + ReflectOwnKeys, + SymbolFor, +} from '@locker/near-membrane-shared'; +import type { ProxyTarget } from '@locker/near-membrane-shared'; +import type { + CallableDefineProperties, + CallableDescriptorCallback, + CallableEvaluate, + CallableGetPropertyValuePointer, + CallableInstallLazyPropertyDescriptors, + CallableIsTargetLive, + CallableIsTargetRevoked, + CallableLinkPointers, + CallableSerializeTarget, + CallableSetPrototypeOf, + CallableTrackAsFastTarget, + GetSelectedTarget, + GetTransferableValue, + HooksCallback, + Pointer, + VirtualEnvironmentOptions, +} from './types'; + +const LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL = SymbolFor('@@lockerNearMembraneUndefinedValue'); + +export class VirtualEnvironment { + private readonly blueCallableGetPropertyValuePointer: CallableGetPropertyValuePointer; + + private readonly blueCallableLinkPointers: CallableLinkPointers; + + private readonly blueGetSelectedTarget: GetSelectedTarget; + + private readonly blueGetTransferableValue: GetTransferableValue; + + private readonly blueGlobalThisPointer: Pointer; + + private readonly redCallableDefineProperties: CallableDefineProperties; + + private readonly redCallableEvaluate: CallableEvaluate; + + private readonly redCallableGetPropertyValuePointer: CallableGetPropertyValuePointer; + + private readonly redCallableInstallLazyPropertyDescriptors: CallableInstallLazyPropertyDescriptors; + + private readonly redCallableLinkPointers: CallableLinkPointers; + + private readonly redCallableSetPrototypeOf: CallableSetPrototypeOf; + + private readonly redCallableTrackAsFastTarget: CallableTrackAsFastTarget; + + private readonly redGlobalThisPointer: Pointer; + + constructor(options: VirtualEnvironmentOptions) { + <span class="missing-if-branch" title="if path not taken" >I</span>if (options === undefined) { +<span class="cstat-no" title="statement not covered" > throw new ErrorCtor('Missing required VirtualEnvironment options.');</span> + } + // prettier-ignore + const { + blueConnector, + redConnector, + distortionCallback, + instrumentation, + liveTargetCallback, + revokedProxyCallback, + signSourceCallback, + // eslint-disable-next-line prefer-object-spread + } = ObjectAssign({ __proto__: null }, options); + let blueHooks: Parameters<HooksCallback>; + const blueConnect = blueConnector( + 'blue', + (...hooks: Parameters<HooksCallback>) => { + blueHooks = hooks; + }, + { + distortionCallback, + instrumentation, + liveTargetCallback, + revokedProxyCallback, + } + ); + const { + 0: blueGlobalThisPointer, + 1: blueGetSelectedTarget, + 2: blueGetTransferableValue, + 3: blueCallableGetPropertyValuePointer, + // 4: blueCallableEvaluate, + 5: blueCallableLinkPointers, + 6: blueCallablePushErrorTarget, + 7: blueCallablePushTarget, + 8: blueCallableApply, + 9: blueCallableConstruct, + 10: blueCallableDefineProperty, + 11: blueCallableDeleteProperty, + 12: blueCallableGet, + 13: blueCallableGetOwnPropertyDescriptor, + 14: blueCallableGetPrototypeOf, + 15: blueCallableHas, + 16: blueCallableIsExtensible, + 17: blueCallableOwnKeys, + 18: blueCallablePreventExtensions, + 19: blueCallableSet, + 20: blueCallableSetPrototypeOf, + // 21: blueCallableDebugInfo, + // 22: blueCallableDefineProperties, + 23: blueCallableGetLazyPropertyDescriptorStateByTarget, + 24: blueCallableGetPropertyValue, + 25: blueCallableGetTargetIntegrityTraits, + 26: blueCallableGetToStringTagOfTarget, + 27: blueCallableInstallErrorPrepareStackTrace, + // 28: blueCallableInstallLazyPropertyDescriptors, + 29: blueCallableIsTargetLive, + // 30: blueCallableIsTargetRevoked, + // 31: blueCallableSerializeTarget, + 32: blueCallableSetLazyPropertyDescriptorStateByTarget, + // 33: blueTrackAsFastTarget, + 34: blueCallableBatchGetPrototypeOfAndGetOwnPropertyDescriptors, + 35: blueCallableBatchGetPrototypeOfWhenHasNoOwnProperty, + 36: blueCallableBatchGetPrototypeOfWhenHasNoOwnPropertyDescriptor, + } = blueHooks!; + let redHooks: Parameters<HooksCallback>; + const redConnect = redConnector('red', (...hooks: Parameters<HooksCallback>) => { + redHooks = hooks; + }); + const { + 0: redGlobalThisPointer, + // 1: redGetSelectedTarget, + // 2: redGetTransferableValue, + 3: redCallableGetPropertyValuePointer, + 4: redCallableEvaluate, + 5: redCallableLinkPointers, + 6: redCallablePushErrorTarget, + 7: redCallablePushTarget, + 8: redCallableApply, + 9: redCallableConstruct, + 10: redCallableDefineProperty, + 11: redCallableDeleteProperty, + 12: redCallableGet, + 13: redCallableGetOwnPropertyDescriptor, + 14: redCallableGetPrototypeOf, + 15: redCallableHas, + 16: redCallableIsExtensible, + 17: redCallableOwnKeys, + 18: redCallablePreventExtensions, + 19: redCallableSet, + 20: redCallableSetPrototypeOf, + 21: redCallableDebugInfo, + 22: redCallableDefineProperties, + 23: redCallableGetLazyPropertyDescriptorStateByTarget, + // 24: redCallableGetPropertyValue, + 25: redCallableGetTargetIntegrityTraits, + 26: redCallableGetToStringTagOfTarget, + 27: redCallableInstallErrorPrepareStackTrace, + 28: redCallableInstallLazyPropertyDescriptors, + // 29: redCallableIsTargetLive, + 30: redCallableIsTargetRevoked, + 31: redCallableSerializeTarget, + 32: redCallableSetLazyPropertyDescriptorStateByTarget, + 33: redCallableTrackAsFastTarget, + 34: redCallableBatchGetPrototypeOfAndGetOwnPropertyDescriptors, + 35: redCallableBatchGetPrototypeOfWhenHasNoOwnProperty, + 36: redCallableBatchGetPrototypeOfWhenHasNoOwnPropertyDescriptor, + } = redHooks!; + blueConnect( + noop, // redGlobalThisPointer, + noop, // redGetSelectedTarget, + noop as GetTransferableValue, // redGetTransferableValue, + noop as unknown as CallableGetPropertyValuePointer, // redCallableGetPropertyValuePointer, + noop as CallableEvaluate, // redCallableEvaluate, + noop, // redCallableLinkPointers, + redCallablePushErrorTarget, + redCallablePushTarget, + redCallableApply, + redCallableConstruct, + redCallableDefineProperty, + redCallableDeleteProperty, + redCallableGet, + redCallableGetOwnPropertyDescriptor, + redCallableGetPrototypeOf, + redCallableHas, + redCallableIsExtensible, + redCallableOwnKeys, + redCallablePreventExtensions, + redCallableSet, + redCallableSetPrototypeOf, + redCallableDebugInfo, + noop, // redCallableDefineProperties, + redCallableGetLazyPropertyDescriptorStateByTarget, + noop, // redCallableGetPropertyValue, + redCallableGetTargetIntegrityTraits, + redCallableGetToStringTagOfTarget, + redCallableInstallErrorPrepareStackTrace, + noop, // redCallableInstallLazyPropertyDescriptors, + noop as unknown as CallableIsTargetLive, // redCallableIsTargetLive, + redCallableIsTargetRevoked, + redCallableSerializeTarget, + redCallableSetLazyPropertyDescriptorStateByTarget, + redCallableTrackAsFastTarget, + redCallableBatchGetPrototypeOfAndGetOwnPropertyDescriptors, + redCallableBatchGetPrototypeOfWhenHasNoOwnProperty, + redCallableBatchGetPrototypeOfWhenHasNoOwnPropertyDescriptor + ); + redConnect( + noop, // blueGlobalThisPointer, + noop, // blueGetSelectedTarget, + noop as GetTransferableValue, // blueGetTransferableValue, + noop as unknown as CallableGetPropertyValuePointer, // blueCallableGetPropertyValuePointer, + noop as CallableEvaluate, // blueCallableEvaluate, + noop, // blueCallableLinkPointers, + blueCallablePushErrorTarget, + blueCallablePushTarget, + blueCallableApply, + blueCallableConstruct, + blueCallableDefineProperty, + blueCallableDeleteProperty, + blueCallableGet, + blueCallableGetOwnPropertyDescriptor, + blueCallableGetPrototypeOf, + blueCallableHas, + blueCallableIsExtensible, + blueCallableOwnKeys, + blueCallablePreventExtensions, + blueCallableSet, + blueCallableSetPrototypeOf, + noop, // blueCallableDebugInfo + noop, // blueCallableDefineProperties, + blueCallableGetLazyPropertyDescriptorStateByTarget, + blueCallableGetPropertyValue, + blueCallableGetTargetIntegrityTraits, + blueCallableGetToStringTagOfTarget, + blueCallableInstallErrorPrepareStackTrace, + noop, // blueCallableInstallLazyPropertyDescriptors, + blueCallableIsTargetLive, + noop as unknown as CallableIsTargetRevoked, // blueCallableIsTargetRevoked, + noop as CallableSerializeTarget, // blueCallableSerializeTarget,, + blueCallableSetLazyPropertyDescriptorStateByTarget, + noop, // blueCallableTrackAsFastTarget, + blueCallableBatchGetPrototypeOfAndGetOwnPropertyDescriptors, + blueCallableBatchGetPrototypeOfWhenHasNoOwnProperty, + blueCallableBatchGetPrototypeOfWhenHasNoOwnPropertyDescriptor + ); + this.blueGlobalThisPointer = blueGlobalThisPointer; + this.blueGetSelectedTarget = blueGetSelectedTarget; + this.blueGetTransferableValue = blueGetTransferableValue; + this.blueCallableGetPropertyValuePointer = blueCallableGetPropertyValuePointer; + this.blueCallableLinkPointers = blueCallableLinkPointers; + + // Ensure the `this` context of red callable functions is `undefined`. + this.redGlobalThisPointer = () => redGlobalThisPointer(); + this.redCallableGetPropertyValuePointer = (targetPointer: Pointer, key: PropertyKey) => + redCallableGetPropertyValuePointer(targetPointer, key); + this.redCallableEvaluate = signSourceCallback + ? <span class="fstat-no" title="function not covered" ><span class="branch-0 cbranch-no" title="branch not covered" >(s</span>ourceText: string) => <span class="cstat-no" title="statement not covered" >redCallableEvaluate(signSourceCallback(sourceText))</span></span> + : (sourceText: string) => redCallableEvaluate(sourceText); + this.redCallableLinkPointers = (targetPointer: Pointer, foreignTargetPointer: Pointer) => + redCallableLinkPointers(targetPointer, foreignTargetPointer); + this.redCallableSetPrototypeOf = <span class="fstat-no" title="function not covered" >(</span> + targetPointer: Pointer, + protoPointerOrNull: Pointer | null + ) => <span class="cstat-no" title="statement not covered" >redCallableSetPrototypeOf(targetPointer, protoPointerOrNull);</span> + this.redCallableDefineProperties = ( + targetPointer: Pointer, + ...descriptorTuples: [...Parameters<CallableDescriptorCallback>] + ) => { + const { length } = descriptorTuples; + const args = new ArrayCtor(length + 1); + args[0] = targetPointer; + for (let i = 0; i < length; i += 1) { + args[i + 1] = descriptorTuples[i]; + } + ReflectApply(redCallableDefineProperties, undefined, args); + }; + this.redCallableInstallLazyPropertyDescriptors = ( + targetPointer: Pointer, + ...ownKeysAndUnforgeableGlobalThisKeys: PropertyKey[] + ) => { + const { length } = ownKeysAndUnforgeableGlobalThisKeys; + const args = new ArrayCtor(length + 1); + args[0] = targetPointer; + for (let i = 0; i < length; i += 1) { + args[i + 1] = ownKeysAndUnforgeableGlobalThisKeys[i]; + } + ReflectApply(redCallableInstallLazyPropertyDescriptors, undefined, args); + }; + this.redCallableTrackAsFastTarget = <span class="fstat-no" title="function not covered" >(t</span>argetPointer: Pointer) => +<span class="cstat-no" title="statement not covered" > redCallableTrackAsFastTarget(targetPointer);</span> + } + + evaluate(sourceText: string): any { + try { + const bluePointerOrPrimitiveValue = this.redCallableEvaluate(sourceText); + <span class="missing-if-branch" title="if path not taken" >I</span>if (typeof bluePointerOrPrimitiveValue === 'function') { +<span class="cstat-no" title="statement not covered" > bluePointerOrPrimitiveValue();</span> +<span class="cstat-no" title="statement not covered" > return this.blueGetSelectedTarget();</span> + } + return bluePointerOrPrimitiveValue; + } catch (error: any) { + throw this.blueGetSelectedTarget() ?? <span class="branch-1 cbranch-no" title="branch not covered" >error;</span> + } + } + + lazyRemapProperties( + target: ProxyTarget, + ownKeys: PropertyKey[], + unforgeableGlobalThisKeys?: PropertyKey[] + ) { + <span class="missing-if-branch" title="else path not taken" >E</span>if ((typeof target === 'object' && target !== null) || <span class="branch-2 cbranch-no" title="branch not covered" >typeof target === 'function')</span> { + const args: Parameters<CallableInstallLazyPropertyDescriptors> = [ + this.blueGetTransferableValue(target) as Pointer, + ]; + ReflectApply(ArrayProtoPush, args, ownKeys); + <span class="missing-if-branch" title="if path not taken" >I</span>if (unforgeableGlobalThisKeys?.length) { + // Use `LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL` to delimit + // `ownKeys` and `unforgeableGlobalThisKeys`. +<span class="cstat-no" title="statement not covered" > args[args.length] = LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL;</span> +<span class="cstat-no" title="statement not covered" > ReflectApply(ArrayProtoPush, args, unforgeableGlobalThisKeys);</span> + } + ReflectApply(this.redCallableInstallLazyPropertyDescriptors, undefined, args); + } + } + + link(...keys: PropertyKey[]) { + let bluePointer = this.blueGlobalThisPointer; + let redPointer = this.redGlobalThisPointer; + for (let i = 0, { length } = keys; i < length; i += 1) { + const key = keys[i]; + bluePointer = this.blueCallableGetPropertyValuePointer(bluePointer, key); + redPointer = this.redCallableGetPropertyValuePointer(redPointer, key); + this.redCallableLinkPointers(redPointer, bluePointer); + this.blueCallableLinkPointers(bluePointer, redPointer); + } + } + + remapProperties(target: ProxyTarget, unsafeBlueDescs: PropertyDescriptorMap) { + <span class="missing-if-branch" title="else path not taken" >E</span>if ((typeof target === 'object' && target !== null) || <span class="branch-2 cbranch-no" title="branch not covered" >typeof target === 'function')</span> { + const targetPointer = this.blueGetTransferableValue(target) as Pointer; + const ownKeys = ReflectOwnKeys(unsafeBlueDescs); + const { length } = ownKeys; + const args = new ArrayCtor(1 + length * 7) as Parameters<CallableDefineProperties>; + args[0] = targetPointer; + for (let i = 0, j = 1; i < length; i += 1, j += 7) { + const ownKey = ownKeys[i]; + const unsafeBlueDesc = (unsafeBlueDescs as any)[ownKey]; + // Avoid poisoning by only installing own properties from unsafeBlueDescs. + // We don't use a toSafeDescriptor() style helper since that mutates + // the unsafeBlueDesc. + // eslint-disable-next-line prefer-object-spread + const safeBlueDesc = ObjectAssign({ __proto__: null }, unsafeBlueDesc); + args[j] = ownKey; + args[j + 1] = + 'configurable' in safeBlueDesc + ? !!safeBlueDesc.configurable + : <span class="branch-1 cbranch-no" title="branch not covered" >LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL;</span> + args[j + 2] = + 'enumerable' in safeBlueDesc + ? !!safeBlueDesc.enumerable + : <span class="branch-1 cbranch-no" title="branch not covered" >LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL;</span> + args[j + 3] = + 'writable' in safeBlueDesc + ? !!safeBlueDesc.writable + : <span class="branch-1 cbranch-no" title="branch not covered" >LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL;</span> + args[j + 4] = + 'value' in safeBlueDesc + ? this.blueGetTransferableValue(safeBlueDesc.value) + : <span class="branch-1 cbranch-no" title="branch not covered" >LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL;</span> + args[j + 5] = + 'get' in safeBlueDesc + ? (<span class="branch-0 cbranch-no" title="branch not covered" >this.blueGetTransferableValue(safeBlueDesc.get) as Pointer)</span> + : LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL; + args[j + 6] = + 'set' in safeBlueDesc + ? (<span class="branch-0 cbranch-no" title="branch not covered" >this.blueGetTransferableValue(safeBlueDesc.set) as Pointer)</span> + : LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL; + } + ReflectApply(this.redCallableDefineProperties, this, args); + } + } + +<span class="fstat-no" title="function not covered" > re</span>mapProto(target: ProxyTarget, proto: object | null) { +<span class="cstat-no" title="statement not covered" > if ((typeof target === 'object' && target !== null) || typeof target === 'function') {</span> + const foreignTargetPointer = <span class="cstat-no" title="statement not covered" >this.blueGetTransferableValue(target) as Pointer;</span> + const transferableProto = <span class="cstat-no" title="statement not covered" >proto</span> + ? (this.blueGetTransferableValue(proto) as Pointer) + : proto; +<span class="cstat-no" title="statement not covered" > this.redCallableSetPrototypeOf(foreignTargetPointer, transferableProto);</span> + } + } + +<span class="fstat-no" title="function not covered" > tr</span>ackAsFastTarget(target: ProxyTarget) { +<span class="cstat-no" title="statement not covered" > if ((typeof target === 'object' && target !== null) || typeof target === 'function') {</span> +<span class="cstat-no" title="statement not covered" > this.redCallableTrackAsFastTarget(this.blueGetTransferableValue(target) as Pointer);</span> + } + } +} + </pre></td></tr></table></pre> + + <div class='push'></div><!-- for sticky footer --> + </div><!-- /wrapper --> + <div class='footer quiet pad2 space-top1 center small'> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> + at Mon Nov 25 2024 16:43:41 GMT+0000 (Coordinated Universal Time) + </div> + <script src="../../prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="../../sorter.js"></script> + <script src="../../block-navigation.js"></script> + </body> +</html> + \ No newline at end of file diff --git a/pages/coverage-reports/pages/1732553023031263517/near-membrane-base/src/index.html b/pages/coverage-reports/pages/1732553023031263517/near-membrane-base/src/index.html new file mode 100644 index 00000000..5d65ead4 --- /dev/null +++ b/pages/coverage-reports/pages/1732553023031263517/near-membrane-base/src/index.html @@ -0,0 +1,191 @@ + +<!doctype html> +<html lang="en"> + +<head> + <title>Code coverage report for near-membrane-base/src</title> + <meta charset="utf-8" /> + <link rel="stylesheet" href="../../prettify.css" /> + <link rel="stylesheet" href="../../base.css" /> + <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <style type='text/css'> + .coverage-summary .sorter { + background-image: url(../../sort-arrow-sprite.png); + } + </style> +</head> + +<body> +<div class='wrapper'> + <div class='pad1'> + <h1><a href="../../index.html">All files</a> near-membrane-base/src</h1> + <div class='clearfix'> + + <div class='fl pad1y space-right2'> + <span class="strong">88.36% </span> + <span class="quiet">Statements</span> + <span class='fraction'>129/146</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">47.69% </span> + <span class="quiet">Branches</span> + <span class='fraction'>31/65</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">80.77% </span> + <span class="quiet">Functions</span> + <span class='fraction'>21/26</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">87.22% </span> + <span class="quiet">Lines</span> + <span class='fraction'>116/133</span> + </div> + + + </div> + <p class="quiet"> + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + </p> + <template id="filterTemplate"> + <div class="quiet"> + Filter: + <input oninput="onInput()" type="search" id="fileSearch"> + </div> + </template> + </div> + <div class='status-line high'></div> + <div class="pad1"> +<table class="coverage-summary"> +<thead> +<tr> + <th data-col="file" data-fmt="html" data-html="true" class="file">File</th> + <th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th> + <th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th> + <th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th> + <th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th> + <th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th> + <th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th> + <th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th> + <th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th> + <th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th> +</tr> +</thead> +<tbody><tr> + <td class="file medium" data-value="connector.ts"><a href="connector.ts.html">connector.ts</a></td> + <td data-value="71.43" class="pic medium"> + <div class="chart"><div class="cover-fill" style="width: 71%"></div><div class="cover-empty" style="width: 29%"></div></div> + </td> + <td data-value="71.43" class="pct medium">71.43%</td> + <td data-value="7" class="abs medium">5/7</td> + <td data-value="66.67" class="pct medium">66.67%</td> + <td data-value="6" class="abs medium">4/6</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="2" class="abs high">2/2</td> + <td data-value="71.43" class="pct medium">71.43%</td> + <td data-value="7" class="abs medium">5/7</td> + </tr> + +<tr> + <td class="file high" data-value="environment.ts"><a href="environment.ts.html">environment.ts</a></td> + <td data-value="85.42" class="pic high"> + <div class="chart"><div class="cover-fill" style="width: 85%"></div><div class="cover-empty" style="width: 15%"></div></div> + </td> + <td data-value="85.42" class="pct high">85.42%</td> + <td data-value="96" class="abs high">82/96</td> + <td data-value="38.64" class="pct low">38.64%</td> + <td data-value="44" class="abs low">17/44</td> + <td data-value="72.22" class="pct medium">72.22%</td> + <td data-value="18" class="abs medium">13/18</td> + <td data-value="84.27" class="pct high">84.27%</td> + <td data-value="89" class="abs high">75/89</td> + </tr> + +<tr> + <td class="file empty" data-value="index.ts"><a href="index.ts.html">index.ts</a></td> + <td data-value="0" class="pic empty"> + <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div> + </td> + <td data-value="0" class="pct empty">0%</td> + <td data-value="0" class="abs empty">0/0</td> + <td data-value="0" class="pct empty">0%</td> + <td data-value="0" class="abs empty">0/0</td> + <td data-value="0" class="pct empty">0%</td> + <td data-value="0" class="abs empty">0/0</td> + <td data-value="0" class="pct empty">0%</td> + <td data-value="0" class="abs empty">0/0</td> + </tr> + +<tr> + <td class="file high" data-value="intrinsics.ts"><a href="intrinsics.ts.html">intrinsics.ts</a></td> + <td data-value="97.62" class="pic high"> + <div class="chart"><div class="cover-fill" style="width: 97%"></div><div class="cover-empty" style="width: 3%"></div></div> + </td> + <td data-value="97.62" class="pct high">97.62%</td> + <td data-value="42" class="abs high">41/42</td> + <td data-value="66.67" class="pct medium">66.67%</td> + <td data-value="15" class="abs medium">10/15</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="6" class="abs high">6/6</td> + <td data-value="97.22" class="pct high">97.22%</td> + <td data-value="36" class="abs high">35/36</td> + </tr> + +<tr> + <td class="file high" data-value="membrane.ts"><a href="membrane.ts.html">membrane.ts</a></td> + <td data-value="100" class="pic high"> + <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div> + </td> + <td data-value="100" class="pct high">100%</td> + <td data-value="1" class="abs high">1/1</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="0" class="abs high">0/0</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="0" class="abs high">0/0</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="1" class="abs high">1/1</td> + </tr> + +<tr> + <td class="file empty" data-value="types.ts"><a href="types.ts.html">types.ts</a></td> + <td data-value="0" class="pic empty"> + <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div> + </td> + <td data-value="0" class="pct empty">0%</td> + <td data-value="0" class="abs empty">0/0</td> + <td data-value="0" class="pct empty">0%</td> + <td data-value="0" class="abs empty">0/0</td> + <td data-value="0" class="pct empty">0%</td> + <td data-value="0" class="abs empty">0/0</td> + <td data-value="0" class="pct empty">0%</td> + <td data-value="0" class="abs empty">0/0</td> + </tr> + +</tbody> +</table> +</div> + <div class='push'></div><!-- for sticky footer --> + </div><!-- /wrapper --> + <div class='footer quiet pad2 space-top1 center small'> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> + at Mon Nov 25 2024 16:43:41 GMT+0000 (Coordinated Universal Time) + </div> + <script src="../../prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="../../sorter.js"></script> + <script src="../../block-navigation.js"></script> + </body> +</html> + \ No newline at end of file diff --git a/pages/coverage-reports/pages/1732553023031263517/near-membrane-base/src/index.ts.html b/pages/coverage-reports/pages/1732553023031263517/near-membrane-base/src/index.ts.html new file mode 100644 index 00000000..a9d40c69 --- /dev/null +++ b/pages/coverage-reports/pages/1732553023031263517/near-membrane-base/src/index.ts.html @@ -0,0 +1,100 @@ + +<!doctype html> +<html lang="en"> + +<head> + <title>Code coverage report for near-membrane-base/src/index.ts</title> + <meta charset="utf-8" /> + <link rel="stylesheet" href="../../prettify.css" /> + <link rel="stylesheet" href="../../base.css" /> + <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <style type='text/css'> + .coverage-summary .sorter { + background-image: url(../../sort-arrow-sprite.png); + } + </style> +</head> + +<body> +<div class='wrapper'> + <div class='pad1'> + <h1><a href="../../index.html">All files</a> / <a href="index.html">near-membrane-base/src</a> index.ts</h1> + <div class='clearfix'> + + <div class='fl pad1y space-right2'> + <span class="strong">0% </span> + <span class="quiet">Statements</span> + <span class='fraction'>0/0</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">0% </span> + <span class="quiet">Branches</span> + <span class='fraction'>0/0</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">0% </span> + <span class="quiet">Functions</span> + <span class='fraction'>0/0</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">0% </span> + <span class="quiet">Lines</span> + <span class='fraction'>0/0</span> + </div> + + + </div> + <p class="quiet"> + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + </p> + <template id="filterTemplate"> + <div class="quiet"> + Filter: + <input oninput="onInput()" type="search" id="fileSearch"> + </div> + </template> + </div> + <div class='status-line low'></div> + <pre><table class="coverage"> +<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a> +<a name='L2'></a><a href='#L2'>2</a> +<a name='L3'></a><a href='#L3'>3</a> +<a name='L4'></a><a href='#L4'>4</a> +<a name='L5'></a><a href='#L5'>5</a> +<a name='L6'></a><a href='#L6'>6</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">export * from './connector'; +export * from './environment'; +export * from './intrinsics'; +export * from './membrane'; +export * from './types'; + </pre></td></tr></table></pre> + + <div class='push'></div><!-- for sticky footer --> + </div><!-- /wrapper --> + <div class='footer quiet pad2 space-top1 center small'> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> + at Mon Nov 25 2024 16:43:41 GMT+0000 (Coordinated Universal Time) + </div> + <script src="../../prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="../../sorter.js"></script> + <script src="../../block-navigation.js"></script> + </body> +</html> + \ No newline at end of file diff --git a/pages/coverage-reports/pages/1732553023031263517/near-membrane-base/src/intrinsics.ts.html b/pages/coverage-reports/pages/1732553023031263517/near-membrane-base/src/intrinsics.ts.html new file mode 100644 index 00000000..1b98b34d --- /dev/null +++ b/pages/coverage-reports/pages/1732553023031263517/near-membrane-base/src/intrinsics.ts.html @@ -0,0 +1,781 @@ + +<!doctype html> +<html lang="en"> + +<head> + <title>Code coverage report for near-membrane-base/src/intrinsics.ts</title> + <meta charset="utf-8" /> + <link rel="stylesheet" href="../../prettify.css" /> + <link rel="stylesheet" href="../../base.css" /> + <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <style type='text/css'> + .coverage-summary .sorter { + background-image: url(../../sort-arrow-sprite.png); + } + </style> +</head> + +<body> +<div class='wrapper'> + <div class='pad1'> + <h1><a href="../../index.html">All files</a> / <a href="index.html">near-membrane-base/src</a> intrinsics.ts</h1> + <div class='clearfix'> + + <div class='fl pad1y space-right2'> + <span class="strong">97.62% </span> + <span class="quiet">Statements</span> + <span class='fraction'>41/42</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">66.67% </span> + <span class="quiet">Branches</span> + <span class='fraction'>10/15</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Functions</span> + <span class='fraction'>6/6</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">97.22% </span> + <span class="quiet">Lines</span> + <span class='fraction'>35/36</span> + </div> + + + </div> + <p class="quiet"> + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + </p> + <template id="filterTemplate"> + <div class="quiet"> + Filter: + <input oninput="onInput()" type="search" id="fileSearch"> + </div> + </template> + </div> + <div class='status-line high'></div> + <pre><table class="coverage"> +<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a> +<a name='L2'></a><a href='#L2'>2</a> +<a name='L3'></a><a href='#L3'>3</a> +<a name='L4'></a><a href='#L4'>4</a> +<a name='L5'></a><a href='#L5'>5</a> +<a name='L6'></a><a href='#L6'>6</a> +<a name='L7'></a><a href='#L7'>7</a> +<a name='L8'></a><a href='#L8'>8</a> +<a name='L9'></a><a href='#L9'>9</a> +<a name='L10'></a><a href='#L10'>10</a> +<a name='L11'></a><a href='#L11'>11</a> +<a name='L12'></a><a href='#L12'>12</a> +<a name='L13'></a><a href='#L13'>13</a> +<a name='L14'></a><a href='#L14'>14</a> +<a name='L15'></a><a href='#L15'>15</a> +<a name='L16'></a><a href='#L16'>16</a> +<a name='L17'></a><a href='#L17'>17</a> +<a name='L18'></a><a href='#L18'>18</a> +<a name='L19'></a><a href='#L19'>19</a> +<a name='L20'></a><a href='#L20'>20</a> +<a name='L21'></a><a href='#L21'>21</a> +<a name='L22'></a><a href='#L22'>22</a> +<a name='L23'></a><a href='#L23'>23</a> +<a name='L24'></a><a href='#L24'>24</a> +<a name='L25'></a><a href='#L25'>25</a> +<a name='L26'></a><a href='#L26'>26</a> +<a name='L27'></a><a href='#L27'>27</a> +<a name='L28'></a><a href='#L28'>28</a> +<a name='L29'></a><a href='#L29'>29</a> +<a name='L30'></a><a href='#L30'>30</a> +<a name='L31'></a><a href='#L31'>31</a> +<a name='L32'></a><a href='#L32'>32</a> +<a name='L33'></a><a href='#L33'>33</a> +<a name='L34'></a><a href='#L34'>34</a> +<a name='L35'></a><a href='#L35'>35</a> +<a name='L36'></a><a href='#L36'>36</a> +<a name='L37'></a><a href='#L37'>37</a> +<a name='L38'></a><a href='#L38'>38</a> +<a name='L39'></a><a href='#L39'>39</a> +<a name='L40'></a><a href='#L40'>40</a> +<a name='L41'></a><a href='#L41'>41</a> +<a name='L42'></a><a href='#L42'>42</a> +<a name='L43'></a><a href='#L43'>43</a> +<a name='L44'></a><a href='#L44'>44</a> +<a name='L45'></a><a href='#L45'>45</a> +<a name='L46'></a><a href='#L46'>46</a> +<a name='L47'></a><a href='#L47'>47</a> +<a name='L48'></a><a href='#L48'>48</a> +<a name='L49'></a><a href='#L49'>49</a> +<a name='L50'></a><a href='#L50'>50</a> +<a name='L51'></a><a href='#L51'>51</a> +<a name='L52'></a><a href='#L52'>52</a> +<a name='L53'></a><a href='#L53'>53</a> +<a name='L54'></a><a href='#L54'>54</a> +<a name='L55'></a><a href='#L55'>55</a> +<a name='L56'></a><a href='#L56'>56</a> +<a name='L57'></a><a href='#L57'>57</a> +<a name='L58'></a><a href='#L58'>58</a> +<a name='L59'></a><a href='#L59'>59</a> +<a name='L60'></a><a href='#L60'>60</a> +<a name='L61'></a><a href='#L61'>61</a> +<a name='L62'></a><a href='#L62'>62</a> +<a name='L63'></a><a href='#L63'>63</a> +<a name='L64'></a><a href='#L64'>64</a> +<a name='L65'></a><a href='#L65'>65</a> +<a name='L66'></a><a href='#L66'>66</a> +<a name='L67'></a><a href='#L67'>67</a> +<a name='L68'></a><a href='#L68'>68</a> +<a name='L69'></a><a href='#L69'>69</a> +<a name='L70'></a><a href='#L70'>70</a> +<a name='L71'></a><a href='#L71'>71</a> +<a name='L72'></a><a href='#L72'>72</a> +<a name='L73'></a><a href='#L73'>73</a> +<a name='L74'></a><a href='#L74'>74</a> +<a name='L75'></a><a href='#L75'>75</a> +<a name='L76'></a><a href='#L76'>76</a> +<a name='L77'></a><a href='#L77'>77</a> +<a name='L78'></a><a href='#L78'>78</a> +<a name='L79'></a><a href='#L79'>79</a> +<a name='L80'></a><a href='#L80'>80</a> +<a name='L81'></a><a href='#L81'>81</a> +<a name='L82'></a><a href='#L82'>82</a> +<a name='L83'></a><a href='#L83'>83</a> +<a name='L84'></a><a href='#L84'>84</a> +<a name='L85'></a><a href='#L85'>85</a> +<a name='L86'></a><a href='#L86'>86</a> +<a name='L87'></a><a href='#L87'>87</a> +<a name='L88'></a><a href='#L88'>88</a> +<a name='L89'></a><a href='#L89'>89</a> +<a name='L90'></a><a href='#L90'>90</a> +<a name='L91'></a><a href='#L91'>91</a> +<a name='L92'></a><a href='#L92'>92</a> +<a name='L93'></a><a href='#L93'>93</a> +<a name='L94'></a><a href='#L94'>94</a> +<a name='L95'></a><a href='#L95'>95</a> +<a name='L96'></a><a href='#L96'>96</a> +<a name='L97'></a><a href='#L97'>97</a> +<a name='L98'></a><a href='#L98'>98</a> +<a name='L99'></a><a href='#L99'>99</a> +<a name='L100'></a><a href='#L100'>100</a> +<a name='L101'></a><a href='#L101'>101</a> +<a name='L102'></a><a href='#L102'>102</a> +<a name='L103'></a><a href='#L103'>103</a> +<a name='L104'></a><a href='#L104'>104</a> +<a name='L105'></a><a href='#L105'>105</a> +<a name='L106'></a><a href='#L106'>106</a> +<a name='L107'></a><a href='#L107'>107</a> +<a name='L108'></a><a href='#L108'>108</a> +<a name='L109'></a><a href='#L109'>109</a> +<a name='L110'></a><a href='#L110'>110</a> +<a name='L111'></a><a href='#L111'>111</a> +<a name='L112'></a><a href='#L112'>112</a> +<a name='L113'></a><a href='#L113'>113</a> +<a name='L114'></a><a href='#L114'>114</a> +<a name='L115'></a><a href='#L115'>115</a> +<a name='L116'></a><a href='#L116'>116</a> +<a name='L117'></a><a href='#L117'>117</a> +<a name='L118'></a><a href='#L118'>118</a> +<a name='L119'></a><a href='#L119'>119</a> +<a name='L120'></a><a href='#L120'>120</a> +<a name='L121'></a><a href='#L121'>121</a> +<a name='L122'></a><a href='#L122'>122</a> +<a name='L123'></a><a href='#L123'>123</a> +<a name='L124'></a><a href='#L124'>124</a> +<a name='L125'></a><a href='#L125'>125</a> +<a name='L126'></a><a href='#L126'>126</a> +<a name='L127'></a><a href='#L127'>127</a> +<a name='L128'></a><a href='#L128'>128</a> +<a name='L129'></a><a href='#L129'>129</a> +<a name='L130'></a><a href='#L130'>130</a> +<a name='L131'></a><a href='#L131'>131</a> +<a name='L132'></a><a href='#L132'>132</a> +<a name='L133'></a><a href='#L133'>133</a> +<a name='L134'></a><a href='#L134'>134</a> +<a name='L135'></a><a href='#L135'>135</a> +<a name='L136'></a><a href='#L136'>136</a> +<a name='L137'></a><a href='#L137'>137</a> +<a name='L138'></a><a href='#L138'>138</a> +<a name='L139'></a><a href='#L139'>139</a> +<a name='L140'></a><a href='#L140'>140</a> +<a name='L141'></a><a href='#L141'>141</a> +<a name='L142'></a><a href='#L142'>142</a> +<a name='L143'></a><a href='#L143'>143</a> +<a name='L144'></a><a href='#L144'>144</a> +<a name='L145'></a><a href='#L145'>145</a> +<a name='L146'></a><a href='#L146'>146</a> +<a name='L147'></a><a href='#L147'>147</a> +<a name='L148'></a><a href='#L148'>148</a> +<a name='L149'></a><a href='#L149'>149</a> +<a name='L150'></a><a href='#L150'>150</a> +<a name='L151'></a><a href='#L151'>151</a> +<a name='L152'></a><a href='#L152'>152</a> +<a name='L153'></a><a href='#L153'>153</a> +<a name='L154'></a><a href='#L154'>154</a> +<a name='L155'></a><a href='#L155'>155</a> +<a name='L156'></a><a href='#L156'>156</a> +<a name='L157'></a><a href='#L157'>157</a> +<a name='L158'></a><a href='#L158'>158</a> +<a name='L159'></a><a href='#L159'>159</a> +<a name='L160'></a><a href='#L160'>160</a> +<a name='L161'></a><a href='#L161'>161</a> +<a name='L162'></a><a href='#L162'>162</a> +<a name='L163'></a><a href='#L163'>163</a> +<a name='L164'></a><a href='#L164'>164</a> +<a name='L165'></a><a href='#L165'>165</a> +<a name='L166'></a><a href='#L166'>166</a> +<a name='L167'></a><a href='#L167'>167</a> +<a name='L168'></a><a href='#L168'>168</a> +<a name='L169'></a><a href='#L169'>169</a> +<a name='L170'></a><a href='#L170'>170</a> +<a name='L171'></a><a href='#L171'>171</a> +<a name='L172'></a><a href='#L172'>172</a> +<a name='L173'></a><a href='#L173'>173</a> +<a name='L174'></a><a href='#L174'>174</a> +<a name='L175'></a><a href='#L175'>175</a> +<a name='L176'></a><a href='#L176'>176</a> +<a name='L177'></a><a href='#L177'>177</a> +<a name='L178'></a><a href='#L178'>178</a> +<a name='L179'></a><a href='#L179'>179</a> +<a name='L180'></a><a href='#L180'>180</a> +<a name='L181'></a><a href='#L181'>181</a> +<a name='L182'></a><a href='#L182'>182</a> +<a name='L183'></a><a href='#L183'>183</a> +<a name='L184'></a><a href='#L184'>184</a> +<a name='L185'></a><a href='#L185'>185</a> +<a name='L186'></a><a href='#L186'>186</a> +<a name='L187'></a><a href='#L187'>187</a> +<a name='L188'></a><a href='#L188'>188</a> +<a name='L189'></a><a href='#L189'>189</a> +<a name='L190'></a><a href='#L190'>190</a> +<a name='L191'></a><a href='#L191'>191</a> +<a name='L192'></a><a href='#L192'>192</a> +<a name='L193'></a><a href='#L193'>193</a> +<a name='L194'></a><a href='#L194'>194</a> +<a name='L195'></a><a href='#L195'>195</a> +<a name='L196'></a><a href='#L196'>196</a> +<a name='L197'></a><a href='#L197'>197</a> +<a name='L198'></a><a href='#L198'>198</a> +<a name='L199'></a><a href='#L199'>199</a> +<a name='L200'></a><a href='#L200'>200</a> +<a name='L201'></a><a href='#L201'>201</a> +<a name='L202'></a><a href='#L202'>202</a> +<a name='L203'></a><a href='#L203'>203</a> +<a name='L204'></a><a href='#L204'>204</a> +<a name='L205'></a><a href='#L205'>205</a> +<a name='L206'></a><a href='#L206'>206</a> +<a name='L207'></a><a href='#L207'>207</a> +<a name='L208'></a><a href='#L208'>208</a> +<a name='L209'></a><a href='#L209'>209</a> +<a name='L210'></a><a href='#L210'>210</a> +<a name='L211'></a><a href='#L211'>211</a> +<a name='L212'></a><a href='#L212'>212</a> +<a name='L213'></a><a href='#L213'>213</a> +<a name='L214'></a><a href='#L214'>214</a> +<a name='L215'></a><a href='#L215'>215</a> +<a name='L216'></a><a href='#L216'>216</a> +<a name='L217'></a><a href='#L217'>217</a> +<a name='L218'></a><a href='#L218'>218</a> +<a name='L219'></a><a href='#L219'>219</a> +<a name='L220'></a><a href='#L220'>220</a> +<a name='L221'></a><a href='#L221'>221</a> +<a name='L222'></a><a href='#L222'>222</a> +<a name='L223'></a><a href='#L223'>223</a> +<a name='L224'></a><a href='#L224'>224</a> +<a name='L225'></a><a href='#L225'>225</a> +<a name='L226'></a><a href='#L226'>226</a> +<a name='L227'></a><a href='#L227'>227</a> +<a name='L228'></a><a href='#L228'>228</a> +<a name='L229'></a><a href='#L229'>229</a> +<a name='L230'></a><a href='#L230'>230</a> +<a name='L231'></a><a href='#L231'>231</a> +<a name='L232'></a><a href='#L232'>232</a> +<a name='L233'></a><a href='#L233'>233</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">29x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">29x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">29x</span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">29x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">4x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">29x</span> +<span class="cline-any cline-yes">29x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">29x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">29x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">29x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">15x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">15x</span> +<span class="cline-any cline-yes">15x</span> +<span class="cline-any cline-yes">22x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">22x</span> +<span class="cline-any cline-yes">22x</span> +<span class="cline-any cline-yes">22x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">22x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">15x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-yes">3432x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">3432x</span> +<span class="cline-any cline-yes">2844x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">23x</span> +<span class="cline-any cline-yes">322x</span> +<span class="cline-any cline-yes">322x</span> +<span class="cline-any cline-yes">322x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">322x</span> +<span class="cline-any cline-yes">253x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">69x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { + ArrayProtoIncludes, + ObjectAssign, + ObjectHasOwn, + ReflectApply, + ReflectOwnKeys, + toSafeArray, +} from '@locker/near-membrane-shared'; +import { VirtualEnvironment } from './environment'; + +/** + * This list must be in sync with ecma-262, anything new added to the global object + * should be considered, to decide whether or not they need remapping. The default + * behavior, if missing form the following list, is to be remapped, which is safer. + * + * Note: remapped means the functionality is provided by the blue realm, rather than + * the red one. This helps with the identity discontinuity issue, e.g.: all Set objects + * have the same identity because it is always derived from the outer realm's Set. + * + * Note 1: We have identified 3 types of intrinsics + * A: primitives driven intrinsics + * B: syntax driven intrinsics (they usually have a imperative form as well) + * C: imperative only intrinsics + * + * While A is not remapped, it is safe, and works fast that way, and C is remapped to + * preserve the identity of all produced objects from the same realm, B is really + * problematic, and requires a lot more work to guarantee that objects from both sides + * can be considered equivalents (without identity discontinuity). + */ +function getESGlobalKeys(maxPerfMode: boolean) { + const ESGlobalKeys = [ + // *** 19.1 Value Properties of the Global Object + 'globalThis', + 'Infinity', + 'NaN', + 'undefined', + + // *** 19.2 Function Properties of the Global Object + // 'eval', // dangerous & Reflective + 'isFinite', + 'isNaN', + 'parseFloat', + 'parseInt', + 'decodeURI', + 'decodeURIComponent', + 'encodeURI', + 'encodeURIComponent', + + // *** 19.3 Constructor Properties of the Global Object + // 'AggregateError', // Reflective + // 'Array', // Reflective + 'BigInt', + 'Boolean', + // 'Date', // Remapped + // 'Error', // Reflective + // 'EvalError', // Reflective + 'FinalizationRegistry', + // 'Function', // dangerous & Reflective + 'Map', + 'Number', + // 'Object', // Reflective + // Allow blue `Promise` constructor to overwrite the Red one so that promises + // created by the `Promise` constructor or APIs like `fetch` will work. + // 'Promise', // Remapped + // 'Proxy', // Reflective + // 'RangeError', // Reflective + // 'ReferenceError', // Reflective + 'RegExp', + 'Set', + + 'String', + 'Symbol', + // 'SyntaxError', // Reflective + // 'TypeError', // Reflective + // 'URIError', // Reflective + 'WeakMap', + 'WeakSet', + 'WeakRef', + + // *** 18.4 Other Properties of the Global Object + // 'Atomics', // Remapped + 'JSON', + 'Math', + 'Reflect', + + // *** Annex B + 'escape', + 'unescape', + + // *** ECMA-402 + // 'Intl', // Remapped + ]; + + // This set is for maxPerfMode, all of these must be from the same global object + const maxPerfModeKeys = { + intrinsics: [ + 'ArrayBuffer', + 'Atomics', + 'BigInt64Array', + 'BigUint64Array', + 'DataView', + 'Float32Array', + 'Float64Array', + 'Int16Array', + 'Int32Array', + 'Int8Array', + 'SharedArrayBuffer', + 'Uint16Array', + 'Uint32Array', + 'Uint8Array', + 'Uint8ClampedArray', + ], + // Ideally these should come from browser-realm, that's a code reorg improvement for later + browser: [ + 'Blob', + // 'createImageBitmap', + 'crypto', + 'Crypto', + 'fetch', + 'File', + 'FileReader', + 'FileReaderSync', + // 'ImageData', + 'Request', + 'Response', + 'SubtleCrypto', + 'TextDecoder', + 'TextEncoder', + 'URL', + 'XMLHttpRequest', + ], + }; + + <span class="missing-if-branch" title="if path not taken" >I</span>if (maxPerfMode) { +<span class="cstat-no" title="statement not covered" > ESGlobalKeys.push(...maxPerfModeKeys.intrinsics, ...maxPerfModeKeys.browser);</span> + } + return ESGlobalKeys; +} + +// These are foundational things that should never be wrapped but are equivalent +// @TODO: Revisit this list. +const ReflectiveIntrinsicObjectNames = [ + 'AggregateError', + 'Array', + 'Error', + 'EvalError', + 'Function', + 'Object', + 'Proxy', + 'RangeError', + 'ReferenceError', + 'SyntaxError', + 'TypeError', + 'URIError', + 'eval', + 'globalThis', +]; + +function getESGlobalsAndReflectiveIntrinsicObjectNames(maxPerfMode: boolean) { + const ESGlobalKeys = getESGlobalKeys(maxPerfMode); + return toSafeArray([...ESGlobalKeys, ...ReflectiveIntrinsicObjectNames]); +} + +function getGlobalObjectOwnKeys(source: object): PropertyKey[] { + const ownKeys = ReflectOwnKeys(source); + // WKWebView incorrectly excludes the 'webkit' own property of the global + // object from `Object.keys()` and `Reflect.ownKeys()` results, so add it. + // istanbul ignore if: currently unreachable via tests + if (ObjectHasOwn(source, 'webkit') && <span class="branch-1 cbranch-no" title="branch not covered" >!ReflectApply(ArrayProtoIncludes, ownKeys, ['webkit']))</span> { + ownKeys[ownKeys.length] = 'webkit'; + } + return ownKeys; +} + +export function assignFilteredGlobalDescriptorsFromPropertyDescriptorMap< + T extends PropertyDescriptorMap +>(descs: T, source: PropertyDescriptorMap, maxPerfMode: boolean): T { + const ownKeys = getGlobalObjectOwnKeys(source); + const ESGlobalsAndReflectiveIntrinsicObjectNames = + getESGlobalsAndReflectiveIntrinsicObjectNames(maxPerfMode); + for (let i = 0, { length } = ownKeys; i < length; i += 1) { + const ownKey = ownKeys[i]; + // Avoid overriding ECMAScript global names that correspond to + // global intrinsics. This guarantee that those entries will be + // ignored if present in the source property descriptor map. + <span class="missing-if-branch" title="else path not taken" >E</span>if (!ESGlobalsAndReflectiveIntrinsicObjectNames.includes(ownKey as any)) { + const unsafeDesc = (source as any)[ownKey]; + <span class="missing-if-branch" title="else path not taken" >E</span>if (unsafeDesc) { + // Avoid poisoning by only installing own properties from + // unsafeDesc. We don't use a toSafeDescriptor() style helper + // since that mutates the unsafeBlueDesc. + // eslint-disable-next-line prefer-object-spread + (descs as any)[ownKey] = ObjectAssign({ __proto__: null }, unsafeDesc); + } + } + } + return descs; +} + +export function getFilteredGlobalOwnKeys(source: object, maxPerfMode: boolean): PropertyKey[] { + const result: PropertyKey[] = []; + let resultOffset = 0; + const ownKeys = getGlobalObjectOwnKeys(source); + const ESGlobalsAndReflectiveIntrinsicObjectNames = + getESGlobalsAndReflectiveIntrinsicObjectNames(maxPerfMode); + for (let i = 0, { length } = ownKeys; i < length; i += 1) { + const ownKey = ownKeys[i]; + // Avoid overriding ECMAScript global names that correspond to global + // intrinsics. This guarantees that those entries will be ignored if + // present in the source object. + if (!ESGlobalsAndReflectiveIntrinsicObjectNames.includes(ownKey as any)) { + result[resultOffset++] = ownKey; + } + } + return result; +} + +export function linkIntrinsics(env: VirtualEnvironment, globalObject: typeof globalThis) { + // Remap intrinsics that are realm agnostic. + for (let i = 0, { length } = ReflectiveIntrinsicObjectNames; i < length; i += 1) { + const globalName = ReflectiveIntrinsicObjectNames[i]; + const reflectiveValue = (globalObject as any)[globalName]; + <span class="missing-if-branch" title="else path not taken" >E</span>if (reflectiveValue) { + // Proxy.prototype is undefined. + if (reflectiveValue.prototype) { + env.link(globalName, 'prototype'); + } else { + env.link(globalName); + } + } + } +} + </pre></td></tr></table></pre> + + <div class='push'></div><!-- for sticky footer --> + </div><!-- /wrapper --> + <div class='footer quiet pad2 space-top1 center small'> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> + at Mon Nov 25 2024 16:43:41 GMT+0000 (Coordinated Universal Time) + </div> + <script src="../../prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="../../sorter.js"></script> + <script src="../../block-navigation.js"></script> + </body> +</html> + \ No newline at end of file diff --git a/pages/coverage-reports/pages/1732553023031263517/near-membrane-base/src/membrane.ts.html b/pages/coverage-reports/pages/1732553023031263517/near-membrane-base/src/membrane.ts.html new file mode 100644 index 00000000..fcde5f9e --- /dev/null +++ b/pages/coverage-reports/pages/1732553023031263517/near-membrane-base/src/membrane.ts.html @@ -0,0 +1,13954 @@ + +<!doctype html> +<html lang="en"> + +<head> + <title>Code coverage report for near-membrane-base/src/membrane.ts</title> + <meta charset="utf-8" /> + <link rel="stylesheet" href="../../prettify.css" /> + <link rel="stylesheet" href="../../base.css" /> + <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <style type='text/css'> + .coverage-summary .sorter { + background-image: url(../../sort-arrow-sprite.png); + } + </style> +</head> + +<body> +<div class='wrapper'> + <div class='pad1'> + <h1><a href="../../index.html">All files</a> / <a href="index.html">near-membrane-base/src</a> membrane.ts</h1> + <div class='clearfix'> + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Statements</span> + <span class='fraction'>1/1</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Branches</span> + <span class='fraction'>0/0</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Functions</span> + <span class='fraction'>0/0</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Lines</span> + <span class='fraction'>1/1</span> + </div> + + + </div> + <p class="quiet"> + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + </p> + <template id="filterTemplate"> + <div class="quiet"> + Filter: + <input oninput="onInput()" type="search" id="fileSearch"> + </div> + </template> + </div> + <div class='status-line high'></div> + <pre><table class="coverage"> +<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a> +<a name='L2'></a><a href='#L2'>2</a> +<a name='L3'></a><a href='#L3'>3</a> +<a name='L4'></a><a href='#L4'>4</a> +<a name='L5'></a><a href='#L5'>5</a> +<a name='L6'></a><a href='#L6'>6</a> +<a name='L7'></a><a href='#L7'>7</a> +<a name='L8'></a><a href='#L8'>8</a> +<a name='L9'></a><a href='#L9'>9</a> +<a name='L10'></a><a href='#L10'>10</a> +<a name='L11'></a><a href='#L11'>11</a> +<a name='L12'></a><a href='#L12'>12</a> +<a name='L13'></a><a href='#L13'>13</a> +<a name='L14'></a><a href='#L14'>14</a> +<a name='L15'></a><a href='#L15'>15</a> +<a name='L16'></a><a href='#L16'>16</a> +<a name='L17'></a><a href='#L17'>17</a> +<a name='L18'></a><a href='#L18'>18</a> +<a name='L19'></a><a href='#L19'>19</a> +<a name='L20'></a><a href='#L20'>20</a> +<a name='L21'></a><a href='#L21'>21</a> +<a name='L22'></a><a href='#L22'>22</a> +<a name='L23'></a><a href='#L23'>23</a> +<a name='L24'></a><a href='#L24'>24</a> +<a name='L25'></a><a href='#L25'>25</a> +<a name='L26'></a><a href='#L26'>26</a> +<a name='L27'></a><a href='#L27'>27</a> +<a name='L28'></a><a href='#L28'>28</a> +<a name='L29'></a><a href='#L29'>29</a> +<a name='L30'></a><a href='#L30'>30</a> +<a name='L31'></a><a href='#L31'>31</a> +<a name='L32'></a><a href='#L32'>32</a> +<a name='L33'></a><a href='#L33'>33</a> +<a name='L34'></a><a href='#L34'>34</a> +<a name='L35'></a><a href='#L35'>35</a> +<a name='L36'></a><a href='#L36'>36</a> +<a name='L37'></a><a href='#L37'>37</a> +<a name='L38'></a><a href='#L38'>38</a> +<a name='L39'></a><a href='#L39'>39</a> +<a name='L40'></a><a href='#L40'>40</a> +<a name='L41'></a><a href='#L41'>41</a> +<a name='L42'></a><a href='#L42'>42</a> +<a name='L43'></a><a href='#L43'>43</a> +<a name='L44'></a><a href='#L44'>44</a> +<a name='L45'></a><a href='#L45'>45</a> +<a name='L46'></a><a href='#L46'>46</a> +<a name='L47'></a><a href='#L47'>47</a> +<a name='L48'></a><a href='#L48'>48</a> +<a name='L49'></a><a href='#L49'>49</a> +<a name='L50'></a><a href='#L50'>50</a> +<a name='L51'></a><a href='#L51'>51</a> +<a name='L52'></a><a href='#L52'>52</a> +<a name='L53'></a><a href='#L53'>53</a> +<a name='L54'></a><a href='#L54'>54</a> +<a name='L55'></a><a href='#L55'>55</a> +<a name='L56'></a><a href='#L56'>56</a> +<a name='L57'></a><a href='#L57'>57</a> +<a name='L58'></a><a href='#L58'>58</a> +<a name='L59'></a><a href='#L59'>59</a> +<a name='L60'></a><a href='#L60'>60</a> +<a name='L61'></a><a href='#L61'>61</a> +<a name='L62'></a><a href='#L62'>62</a> +<a name='L63'></a><a href='#L63'>63</a> +<a name='L64'></a><a href='#L64'>64</a> +<a name='L65'></a><a href='#L65'>65</a> +<a name='L66'></a><a href='#L66'>66</a> +<a name='L67'></a><a href='#L67'>67</a> +<a name='L68'></a><a href='#L68'>68</a> +<a name='L69'></a><a href='#L69'>69</a> +<a name='L70'></a><a href='#L70'>70</a> +<a name='L71'></a><a href='#L71'>71</a> +<a name='L72'></a><a href='#L72'>72</a> +<a name='L73'></a><a href='#L73'>73</a> +<a name='L74'></a><a href='#L74'>74</a> +<a name='L75'></a><a href='#L75'>75</a> +<a name='L76'></a><a href='#L76'>76</a> +<a name='L77'></a><a href='#L77'>77</a> +<a name='L78'></a><a href='#L78'>78</a> +<a name='L79'></a><a href='#L79'>79</a> +<a name='L80'></a><a href='#L80'>80</a> +<a name='L81'></a><a href='#L81'>81</a> +<a name='L82'></a><a href='#L82'>82</a> +<a name='L83'></a><a href='#L83'>83</a> +<a name='L84'></a><a href='#L84'>84</a> +<a name='L85'></a><a href='#L85'>85</a> +<a name='L86'></a><a href='#L86'>86</a> +<a name='L87'></a><a href='#L87'>87</a> +<a name='L88'></a><a href='#L88'>88</a> +<a name='L89'></a><a href='#L89'>89</a> +<a name='L90'></a><a href='#L90'>90</a> +<a name='L91'></a><a href='#L91'>91</a> +<a name='L92'></a><a href='#L92'>92</a> +<a name='L93'></a><a href='#L93'>93</a> +<a name='L94'></a><a href='#L94'>94</a> +<a name='L95'></a><a href='#L95'>95</a> +<a name='L96'></a><a href='#L96'>96</a> +<a name='L97'></a><a href='#L97'>97</a> +<a name='L98'></a><a href='#L98'>98</a> +<a name='L99'></a><a href='#L99'>99</a> +<a name='L100'></a><a href='#L100'>100</a> +<a name='L101'></a><a href='#L101'>101</a> +<a name='L102'></a><a href='#L102'>102</a> +<a name='L103'></a><a href='#L103'>103</a> +<a name='L104'></a><a href='#L104'>104</a> +<a name='L105'></a><a href='#L105'>105</a> +<a name='L106'></a><a href='#L106'>106</a> +<a name='L107'></a><a href='#L107'>107</a> +<a name='L108'></a><a href='#L108'>108</a> +<a name='L109'></a><a href='#L109'>109</a> +<a name='L110'></a><a href='#L110'>110</a> +<a name='L111'></a><a href='#L111'>111</a> +<a name='L112'></a><a href='#L112'>112</a> +<a name='L113'></a><a href='#L113'>113</a> +<a name='L114'></a><a href='#L114'>114</a> +<a name='L115'></a><a href='#L115'>115</a> +<a name='L116'></a><a href='#L116'>116</a> +<a name='L117'></a><a href='#L117'>117</a> +<a name='L118'></a><a href='#L118'>118</a> +<a name='L119'></a><a href='#L119'>119</a> +<a name='L120'></a><a href='#L120'>120</a> +<a name='L121'></a><a href='#L121'>121</a> +<a name='L122'></a><a href='#L122'>122</a> +<a name='L123'></a><a href='#L123'>123</a> +<a name='L124'></a><a href='#L124'>124</a> +<a name='L125'></a><a href='#L125'>125</a> +<a name='L126'></a><a href='#L126'>126</a> +<a name='L127'></a><a href='#L127'>127</a> +<a name='L128'></a><a href='#L128'>128</a> +<a name='L129'></a><a href='#L129'>129</a> +<a name='L130'></a><a href='#L130'>130</a> +<a name='L131'></a><a href='#L131'>131</a> +<a name='L132'></a><a href='#L132'>132</a> +<a name='L133'></a><a href='#L133'>133</a> +<a name='L134'></a><a href='#L134'>134</a> +<a name='L135'></a><a href='#L135'>135</a> +<a name='L136'></a><a href='#L136'>136</a> +<a name='L137'></a><a href='#L137'>137</a> +<a name='L138'></a><a href='#L138'>138</a> +<a name='L139'></a><a href='#L139'>139</a> +<a name='L140'></a><a href='#L140'>140</a> +<a name='L141'></a><a href='#L141'>141</a> +<a name='L142'></a><a href='#L142'>142</a> +<a name='L143'></a><a href='#L143'>143</a> +<a name='L144'></a><a href='#L144'>144</a> +<a name='L145'></a><a href='#L145'>145</a> +<a name='L146'></a><a href='#L146'>146</a> +<a name='L147'></a><a href='#L147'>147</a> +<a name='L148'></a><a href='#L148'>148</a> +<a name='L149'></a><a href='#L149'>149</a> +<a name='L150'></a><a href='#L150'>150</a> +<a name='L151'></a><a href='#L151'>151</a> +<a name='L152'></a><a href='#L152'>152</a> +<a name='L153'></a><a href='#L153'>153</a> +<a name='L154'></a><a href='#L154'>154</a> +<a name='L155'></a><a href='#L155'>155</a> +<a name='L156'></a><a href='#L156'>156</a> +<a name='L157'></a><a href='#L157'>157</a> +<a name='L158'></a><a href='#L158'>158</a> +<a name='L159'></a><a href='#L159'>159</a> +<a name='L160'></a><a href='#L160'>160</a> +<a name='L161'></a><a href='#L161'>161</a> +<a name='L162'></a><a href='#L162'>162</a> +<a name='L163'></a><a href='#L163'>163</a> +<a name='L164'></a><a href='#L164'>164</a> +<a name='L165'></a><a href='#L165'>165</a> +<a name='L166'></a><a href='#L166'>166</a> +<a name='L167'></a><a href='#L167'>167</a> +<a name='L168'></a><a href='#L168'>168</a> +<a name='L169'></a><a href='#L169'>169</a> +<a name='L170'></a><a href='#L170'>170</a> +<a name='L171'></a><a href='#L171'>171</a> +<a name='L172'></a><a href='#L172'>172</a> +<a name='L173'></a><a href='#L173'>173</a> +<a name='L174'></a><a href='#L174'>174</a> +<a name='L175'></a><a href='#L175'>175</a> +<a name='L176'></a><a href='#L176'>176</a> +<a name='L177'></a><a href='#L177'>177</a> +<a name='L178'></a><a href='#L178'>178</a> +<a name='L179'></a><a href='#L179'>179</a> +<a name='L180'></a><a href='#L180'>180</a> +<a name='L181'></a><a href='#L181'>181</a> +<a name='L182'></a><a href='#L182'>182</a> +<a name='L183'></a><a href='#L183'>183</a> +<a name='L184'></a><a href='#L184'>184</a> +<a name='L185'></a><a href='#L185'>185</a> +<a name='L186'></a><a href='#L186'>186</a> +<a name='L187'></a><a href='#L187'>187</a> +<a name='L188'></a><a href='#L188'>188</a> +<a name='L189'></a><a href='#L189'>189</a> +<a name='L190'></a><a href='#L190'>190</a> +<a name='L191'></a><a href='#L191'>191</a> +<a name='L192'></a><a href='#L192'>192</a> +<a name='L193'></a><a href='#L193'>193</a> +<a name='L194'></a><a href='#L194'>194</a> +<a name='L195'></a><a href='#L195'>195</a> +<a name='L196'></a><a href='#L196'>196</a> +<a name='L197'></a><a href='#L197'>197</a> +<a name='L198'></a><a href='#L198'>198</a> +<a name='L199'></a><a href='#L199'>199</a> +<a name='L200'></a><a href='#L200'>200</a> +<a name='L201'></a><a href='#L201'>201</a> +<a name='L202'></a><a href='#L202'>202</a> +<a name='L203'></a><a href='#L203'>203</a> +<a name='L204'></a><a href='#L204'>204</a> +<a name='L205'></a><a href='#L205'>205</a> +<a name='L206'></a><a href='#L206'>206</a> +<a name='L207'></a><a href='#L207'>207</a> +<a name='L208'></a><a href='#L208'>208</a> +<a name='L209'></a><a href='#L209'>209</a> +<a name='L210'></a><a href='#L210'>210</a> +<a name='L211'></a><a href='#L211'>211</a> +<a name='L212'></a><a href='#L212'>212</a> +<a name='L213'></a><a href='#L213'>213</a> +<a name='L214'></a><a href='#L214'>214</a> +<a name='L215'></a><a href='#L215'>215</a> +<a name='L216'></a><a href='#L216'>216</a> +<a name='L217'></a><a href='#L217'>217</a> +<a name='L218'></a><a href='#L218'>218</a> +<a name='L219'></a><a href='#L219'>219</a> +<a name='L220'></a><a href='#L220'>220</a> +<a name='L221'></a><a href='#L221'>221</a> +<a name='L222'></a><a href='#L222'>222</a> +<a name='L223'></a><a href='#L223'>223</a> +<a name='L224'></a><a href='#L224'>224</a> +<a name='L225'></a><a href='#L225'>225</a> +<a name='L226'></a><a href='#L226'>226</a> +<a name='L227'></a><a href='#L227'>227</a> +<a name='L228'></a><a href='#L228'>228</a> +<a name='L229'></a><a href='#L229'>229</a> +<a name='L230'></a><a href='#L230'>230</a> +<a name='L231'></a><a href='#L231'>231</a> +<a name='L232'></a><a href='#L232'>232</a> +<a name='L233'></a><a href='#L233'>233</a> +<a name='L234'></a><a href='#L234'>234</a> +<a name='L235'></a><a href='#L235'>235</a> +<a name='L236'></a><a href='#L236'>236</a> +<a name='L237'></a><a href='#L237'>237</a> +<a name='L238'></a><a href='#L238'>238</a> +<a name='L239'></a><a href='#L239'>239</a> +<a name='L240'></a><a href='#L240'>240</a> +<a name='L241'></a><a href='#L241'>241</a> +<a name='L242'></a><a href='#L242'>242</a> +<a name='L243'></a><a href='#L243'>243</a> +<a name='L244'></a><a href='#L244'>244</a> +<a name='L245'></a><a href='#L245'>245</a> +<a name='L246'></a><a href='#L246'>246</a> +<a name='L247'></a><a href='#L247'>247</a> +<a name='L248'></a><a href='#L248'>248</a> +<a name='L249'></a><a href='#L249'>249</a> +<a name='L250'></a><a href='#L250'>250</a> +<a name='L251'></a><a href='#L251'>251</a> +<a name='L252'></a><a href='#L252'>252</a> +<a name='L253'></a><a href='#L253'>253</a> +<a name='L254'></a><a href='#L254'>254</a> +<a name='L255'></a><a href='#L255'>255</a> +<a name='L256'></a><a href='#L256'>256</a> +<a name='L257'></a><a href='#L257'>257</a> +<a name='L258'></a><a href='#L258'>258</a> +<a name='L259'></a><a href='#L259'>259</a> +<a name='L260'></a><a href='#L260'>260</a> +<a name='L261'></a><a href='#L261'>261</a> +<a name='L262'></a><a href='#L262'>262</a> +<a name='L263'></a><a href='#L263'>263</a> +<a name='L264'></a><a href='#L264'>264</a> +<a name='L265'></a><a href='#L265'>265</a> +<a name='L266'></a><a href='#L266'>266</a> +<a name='L267'></a><a href='#L267'>267</a> +<a name='L268'></a><a href='#L268'>268</a> +<a name='L269'></a><a href='#L269'>269</a> +<a name='L270'></a><a href='#L270'>270</a> +<a name='L271'></a><a href='#L271'>271</a> +<a name='L272'></a><a href='#L272'>272</a> +<a name='L273'></a><a href='#L273'>273</a> +<a name='L274'></a><a href='#L274'>274</a> +<a name='L275'></a><a href='#L275'>275</a> +<a name='L276'></a><a href='#L276'>276</a> +<a name='L277'></a><a href='#L277'>277</a> +<a name='L278'></a><a href='#L278'>278</a> +<a name='L279'></a><a href='#L279'>279</a> +<a name='L280'></a><a href='#L280'>280</a> +<a name='L281'></a><a href='#L281'>281</a> +<a name='L282'></a><a href='#L282'>282</a> +<a name='L283'></a><a href='#L283'>283</a> +<a name='L284'></a><a href='#L284'>284</a> +<a name='L285'></a><a href='#L285'>285</a> +<a name='L286'></a><a href='#L286'>286</a> +<a name='L287'></a><a href='#L287'>287</a> +<a name='L288'></a><a href='#L288'>288</a> +<a name='L289'></a><a href='#L289'>289</a> +<a name='L290'></a><a href='#L290'>290</a> +<a name='L291'></a><a href='#L291'>291</a> +<a name='L292'></a><a href='#L292'>292</a> +<a name='L293'></a><a href='#L293'>293</a> +<a name='L294'></a><a href='#L294'>294</a> +<a name='L295'></a><a href='#L295'>295</a> +<a name='L296'></a><a href='#L296'>296</a> +<a name='L297'></a><a href='#L297'>297</a> +<a name='L298'></a><a href='#L298'>298</a> +<a name='L299'></a><a href='#L299'>299</a> +<a name='L300'></a><a href='#L300'>300</a> +<a name='L301'></a><a href='#L301'>301</a> +<a name='L302'></a><a href='#L302'>302</a> +<a name='L303'></a><a href='#L303'>303</a> +<a name='L304'></a><a href='#L304'>304</a> +<a name='L305'></a><a href='#L305'>305</a> +<a name='L306'></a><a href='#L306'>306</a> +<a name='L307'></a><a href='#L307'>307</a> +<a name='L308'></a><a href='#L308'>308</a> +<a name='L309'></a><a href='#L309'>309</a> +<a name='L310'></a><a href='#L310'>310</a> +<a name='L311'></a><a href='#L311'>311</a> +<a name='L312'></a><a href='#L312'>312</a> +<a name='L313'></a><a href='#L313'>313</a> +<a name='L314'></a><a href='#L314'>314</a> +<a name='L315'></a><a href='#L315'>315</a> +<a name='L316'></a><a href='#L316'>316</a> +<a name='L317'></a><a href='#L317'>317</a> +<a name='L318'></a><a href='#L318'>318</a> +<a name='L319'></a><a href='#L319'>319</a> +<a name='L320'></a><a href='#L320'>320</a> +<a name='L321'></a><a href='#L321'>321</a> +<a name='L322'></a><a href='#L322'>322</a> +<a name='L323'></a><a href='#L323'>323</a> +<a name='L324'></a><a href='#L324'>324</a> +<a name='L325'></a><a href='#L325'>325</a> +<a name='L326'></a><a href='#L326'>326</a> +<a name='L327'></a><a href='#L327'>327</a> +<a name='L328'></a><a href='#L328'>328</a> +<a name='L329'></a><a href='#L329'>329</a> +<a name='L330'></a><a href='#L330'>330</a> +<a name='L331'></a><a href='#L331'>331</a> +<a name='L332'></a><a href='#L332'>332</a> +<a name='L333'></a><a href='#L333'>333</a> +<a name='L334'></a><a href='#L334'>334</a> +<a name='L335'></a><a href='#L335'>335</a> +<a name='L336'></a><a href='#L336'>336</a> +<a name='L337'></a><a href='#L337'>337</a> +<a name='L338'></a><a href='#L338'>338</a> +<a name='L339'></a><a href='#L339'>339</a> +<a name='L340'></a><a href='#L340'>340</a> +<a name='L341'></a><a href='#L341'>341</a> +<a name='L342'></a><a href='#L342'>342</a> +<a name='L343'></a><a href='#L343'>343</a> +<a name='L344'></a><a href='#L344'>344</a> +<a name='L345'></a><a href='#L345'>345</a> +<a name='L346'></a><a href='#L346'>346</a> +<a name='L347'></a><a href='#L347'>347</a> +<a name='L348'></a><a href='#L348'>348</a> +<a name='L349'></a><a href='#L349'>349</a> +<a name='L350'></a><a href='#L350'>350</a> +<a name='L351'></a><a href='#L351'>351</a> +<a name='L352'></a><a href='#L352'>352</a> +<a name='L353'></a><a href='#L353'>353</a> +<a name='L354'></a><a href='#L354'>354</a> +<a name='L355'></a><a href='#L355'>355</a> +<a name='L356'></a><a href='#L356'>356</a> +<a name='L357'></a><a href='#L357'>357</a> +<a name='L358'></a><a href='#L358'>358</a> +<a name='L359'></a><a href='#L359'>359</a> +<a name='L360'></a><a href='#L360'>360</a> +<a name='L361'></a><a href='#L361'>361</a> +<a name='L362'></a><a href='#L362'>362</a> +<a name='L363'></a><a href='#L363'>363</a> +<a name='L364'></a><a href='#L364'>364</a> +<a name='L365'></a><a href='#L365'>365</a> +<a name='L366'></a><a href='#L366'>366</a> +<a name='L367'></a><a href='#L367'>367</a> +<a name='L368'></a><a href='#L368'>368</a> +<a name='L369'></a><a href='#L369'>369</a> +<a name='L370'></a><a href='#L370'>370</a> +<a name='L371'></a><a href='#L371'>371</a> +<a name='L372'></a><a href='#L372'>372</a> +<a name='L373'></a><a href='#L373'>373</a> +<a name='L374'></a><a href='#L374'>374</a> +<a name='L375'></a><a href='#L375'>375</a> +<a name='L376'></a><a href='#L376'>376</a> +<a name='L377'></a><a href='#L377'>377</a> +<a name='L378'></a><a href='#L378'>378</a> +<a name='L379'></a><a href='#L379'>379</a> +<a name='L380'></a><a href='#L380'>380</a> +<a name='L381'></a><a href='#L381'>381</a> +<a name='L382'></a><a href='#L382'>382</a> +<a name='L383'></a><a href='#L383'>383</a> +<a name='L384'></a><a href='#L384'>384</a> +<a name='L385'></a><a href='#L385'>385</a> +<a name='L386'></a><a href='#L386'>386</a> +<a name='L387'></a><a href='#L387'>387</a> +<a name='L388'></a><a href='#L388'>388</a> +<a name='L389'></a><a href='#L389'>389</a> +<a name='L390'></a><a href='#L390'>390</a> +<a name='L391'></a><a href='#L391'>391</a> +<a name='L392'></a><a href='#L392'>392</a> +<a name='L393'></a><a href='#L393'>393</a> +<a name='L394'></a><a href='#L394'>394</a> +<a name='L395'></a><a href='#L395'>395</a> +<a name='L396'></a><a href='#L396'>396</a> +<a name='L397'></a><a href='#L397'>397</a> +<a name='L398'></a><a href='#L398'>398</a> +<a name='L399'></a><a href='#L399'>399</a> +<a name='L400'></a><a href='#L400'>400</a> +<a name='L401'></a><a href='#L401'>401</a> +<a name='L402'></a><a href='#L402'>402</a> +<a name='L403'></a><a href='#L403'>403</a> +<a name='L404'></a><a href='#L404'>404</a> +<a name='L405'></a><a href='#L405'>405</a> +<a name='L406'></a><a href='#L406'>406</a> +<a name='L407'></a><a href='#L407'>407</a> +<a name='L408'></a><a href='#L408'>408</a> +<a name='L409'></a><a href='#L409'>409</a> +<a name='L410'></a><a href='#L410'>410</a> +<a name='L411'></a><a href='#L411'>411</a> +<a name='L412'></a><a href='#L412'>412</a> +<a name='L413'></a><a href='#L413'>413</a> +<a name='L414'></a><a href='#L414'>414</a> +<a name='L415'></a><a href='#L415'>415</a> +<a name='L416'></a><a href='#L416'>416</a> +<a name='L417'></a><a href='#L417'>417</a> +<a name='L418'></a><a href='#L418'>418</a> +<a name='L419'></a><a href='#L419'>419</a> +<a name='L420'></a><a href='#L420'>420</a> +<a name='L421'></a><a href='#L421'>421</a> +<a name='L422'></a><a href='#L422'>422</a> +<a name='L423'></a><a href='#L423'>423</a> +<a name='L424'></a><a href='#L424'>424</a> +<a name='L425'></a><a href='#L425'>425</a> +<a name='L426'></a><a href='#L426'>426</a> +<a name='L427'></a><a href='#L427'>427</a> +<a name='L428'></a><a href='#L428'>428</a> +<a name='L429'></a><a href='#L429'>429</a> +<a name='L430'></a><a href='#L430'>430</a> +<a name='L431'></a><a href='#L431'>431</a> +<a name='L432'></a><a href='#L432'>432</a> +<a name='L433'></a><a href='#L433'>433</a> +<a name='L434'></a><a href='#L434'>434</a> +<a name='L435'></a><a href='#L435'>435</a> +<a name='L436'></a><a href='#L436'>436</a> +<a name='L437'></a><a href='#L437'>437</a> +<a name='L438'></a><a href='#L438'>438</a> +<a name='L439'></a><a href='#L439'>439</a> +<a name='L440'></a><a href='#L440'>440</a> +<a name='L441'></a><a href='#L441'>441</a> +<a name='L442'></a><a href='#L442'>442</a> +<a name='L443'></a><a href='#L443'>443</a> +<a name='L444'></a><a href='#L444'>444</a> +<a name='L445'></a><a href='#L445'>445</a> +<a name='L446'></a><a href='#L446'>446</a> +<a name='L447'></a><a href='#L447'>447</a> +<a name='L448'></a><a href='#L448'>448</a> +<a name='L449'></a><a href='#L449'>449</a> +<a name='L450'></a><a href='#L450'>450</a> +<a name='L451'></a><a href='#L451'>451</a> +<a name='L452'></a><a href='#L452'>452</a> +<a name='L453'></a><a href='#L453'>453</a> +<a name='L454'></a><a href='#L454'>454</a> +<a name='L455'></a><a href='#L455'>455</a> +<a name='L456'></a><a href='#L456'>456</a> +<a name='L457'></a><a href='#L457'>457</a> +<a name='L458'></a><a href='#L458'>458</a> +<a name='L459'></a><a href='#L459'>459</a> +<a name='L460'></a><a href='#L460'>460</a> +<a name='L461'></a><a href='#L461'>461</a> +<a name='L462'></a><a href='#L462'>462</a> +<a name='L463'></a><a href='#L463'>463</a> +<a name='L464'></a><a href='#L464'>464</a> +<a name='L465'></a><a href='#L465'>465</a> +<a name='L466'></a><a href='#L466'>466</a> +<a name='L467'></a><a href='#L467'>467</a> +<a name='L468'></a><a href='#L468'>468</a> +<a name='L469'></a><a href='#L469'>469</a> +<a name='L470'></a><a href='#L470'>470</a> +<a name='L471'></a><a href='#L471'>471</a> +<a name='L472'></a><a href='#L472'>472</a> +<a name='L473'></a><a href='#L473'>473</a> +<a name='L474'></a><a href='#L474'>474</a> +<a name='L475'></a><a href='#L475'>475</a> +<a name='L476'></a><a href='#L476'>476</a> +<a name='L477'></a><a href='#L477'>477</a> +<a name='L478'></a><a href='#L478'>478</a> +<a name='L479'></a><a href='#L479'>479</a> +<a name='L480'></a><a href='#L480'>480</a> +<a name='L481'></a><a href='#L481'>481</a> +<a name='L482'></a><a href='#L482'>482</a> +<a name='L483'></a><a href='#L483'>483</a> +<a name='L484'></a><a href='#L484'>484</a> +<a name='L485'></a><a href='#L485'>485</a> +<a name='L486'></a><a href='#L486'>486</a> +<a name='L487'></a><a href='#L487'>487</a> +<a name='L488'></a><a href='#L488'>488</a> +<a name='L489'></a><a href='#L489'>489</a> +<a name='L490'></a><a href='#L490'>490</a> +<a name='L491'></a><a href='#L491'>491</a> +<a name='L492'></a><a href='#L492'>492</a> +<a name='L493'></a><a href='#L493'>493</a> +<a name='L494'></a><a href='#L494'>494</a> +<a name='L495'></a><a href='#L495'>495</a> +<a name='L496'></a><a href='#L496'>496</a> +<a name='L497'></a><a href='#L497'>497</a> +<a name='L498'></a><a href='#L498'>498</a> +<a name='L499'></a><a href='#L499'>499</a> +<a name='L500'></a><a href='#L500'>500</a> +<a name='L501'></a><a href='#L501'>501</a> +<a name='L502'></a><a href='#L502'>502</a> +<a name='L503'></a><a href='#L503'>503</a> +<a name='L504'></a><a href='#L504'>504</a> +<a name='L505'></a><a href='#L505'>505</a> +<a name='L506'></a><a href='#L506'>506</a> +<a name='L507'></a><a href='#L507'>507</a> +<a name='L508'></a><a href='#L508'>508</a> +<a name='L509'></a><a href='#L509'>509</a> +<a name='L510'></a><a href='#L510'>510</a> +<a name='L511'></a><a href='#L511'>511</a> +<a name='L512'></a><a href='#L512'>512</a> +<a name='L513'></a><a href='#L513'>513</a> +<a name='L514'></a><a href='#L514'>514</a> +<a name='L515'></a><a href='#L515'>515</a> +<a name='L516'></a><a href='#L516'>516</a> +<a name='L517'></a><a href='#L517'>517</a> +<a name='L518'></a><a href='#L518'>518</a> +<a name='L519'></a><a href='#L519'>519</a> +<a name='L520'></a><a href='#L520'>520</a> +<a name='L521'></a><a href='#L521'>521</a> +<a name='L522'></a><a href='#L522'>522</a> +<a name='L523'></a><a href='#L523'>523</a> +<a name='L524'></a><a href='#L524'>524</a> +<a name='L525'></a><a href='#L525'>525</a> +<a name='L526'></a><a href='#L526'>526</a> +<a name='L527'></a><a href='#L527'>527</a> +<a name='L528'></a><a href='#L528'>528</a> +<a name='L529'></a><a href='#L529'>529</a> +<a name='L530'></a><a href='#L530'>530</a> +<a name='L531'></a><a href='#L531'>531</a> +<a name='L532'></a><a href='#L532'>532</a> +<a name='L533'></a><a href='#L533'>533</a> +<a name='L534'></a><a href='#L534'>534</a> +<a name='L535'></a><a href='#L535'>535</a> +<a name='L536'></a><a href='#L536'>536</a> +<a name='L537'></a><a href='#L537'>537</a> +<a name='L538'></a><a href='#L538'>538</a> +<a name='L539'></a><a href='#L539'>539</a> +<a name='L540'></a><a href='#L540'>540</a> +<a name='L541'></a><a href='#L541'>541</a> +<a name='L542'></a><a href='#L542'>542</a> +<a name='L543'></a><a href='#L543'>543</a> +<a name='L544'></a><a href='#L544'>544</a> +<a name='L545'></a><a href='#L545'>545</a> +<a name='L546'></a><a href='#L546'>546</a> +<a name='L547'></a><a href='#L547'>547</a> +<a name='L548'></a><a href='#L548'>548</a> +<a name='L549'></a><a href='#L549'>549</a> +<a name='L550'></a><a href='#L550'>550</a> +<a name='L551'></a><a href='#L551'>551</a> +<a name='L552'></a><a href='#L552'>552</a> +<a name='L553'></a><a href='#L553'>553</a> +<a name='L554'></a><a href='#L554'>554</a> +<a name='L555'></a><a href='#L555'>555</a> +<a name='L556'></a><a href='#L556'>556</a> +<a name='L557'></a><a href='#L557'>557</a> +<a name='L558'></a><a href='#L558'>558</a> +<a name='L559'></a><a href='#L559'>559</a> +<a name='L560'></a><a href='#L560'>560</a> +<a name='L561'></a><a href='#L561'>561</a> +<a name='L562'></a><a href='#L562'>562</a> +<a name='L563'></a><a href='#L563'>563</a> +<a name='L564'></a><a href='#L564'>564</a> +<a name='L565'></a><a href='#L565'>565</a> +<a name='L566'></a><a href='#L566'>566</a> +<a name='L567'></a><a href='#L567'>567</a> +<a name='L568'></a><a href='#L568'>568</a> +<a name='L569'></a><a href='#L569'>569</a> +<a name='L570'></a><a href='#L570'>570</a> +<a name='L571'></a><a href='#L571'>571</a> +<a name='L572'></a><a href='#L572'>572</a> +<a name='L573'></a><a href='#L573'>573</a> +<a name='L574'></a><a href='#L574'>574</a> +<a name='L575'></a><a href='#L575'>575</a> +<a name='L576'></a><a href='#L576'>576</a> +<a name='L577'></a><a href='#L577'>577</a> +<a name='L578'></a><a href='#L578'>578</a> +<a name='L579'></a><a href='#L579'>579</a> +<a name='L580'></a><a href='#L580'>580</a> +<a name='L581'></a><a href='#L581'>581</a> +<a name='L582'></a><a href='#L582'>582</a> +<a name='L583'></a><a href='#L583'>583</a> +<a name='L584'></a><a href='#L584'>584</a> +<a name='L585'></a><a href='#L585'>585</a> +<a name='L586'></a><a href='#L586'>586</a> +<a name='L587'></a><a href='#L587'>587</a> +<a name='L588'></a><a href='#L588'>588</a> +<a name='L589'></a><a href='#L589'>589</a> +<a name='L590'></a><a href='#L590'>590</a> +<a name='L591'></a><a href='#L591'>591</a> +<a name='L592'></a><a href='#L592'>592</a> +<a name='L593'></a><a href='#L593'>593</a> +<a name='L594'></a><a href='#L594'>594</a> +<a name='L595'></a><a href='#L595'>595</a> +<a name='L596'></a><a href='#L596'>596</a> +<a name='L597'></a><a href='#L597'>597</a> +<a name='L598'></a><a href='#L598'>598</a> +<a name='L599'></a><a href='#L599'>599</a> +<a name='L600'></a><a href='#L600'>600</a> +<a name='L601'></a><a href='#L601'>601</a> +<a name='L602'></a><a href='#L602'>602</a> +<a name='L603'></a><a href='#L603'>603</a> +<a name='L604'></a><a href='#L604'>604</a> +<a name='L605'></a><a href='#L605'>605</a> +<a name='L606'></a><a href='#L606'>606</a> +<a name='L607'></a><a href='#L607'>607</a> +<a name='L608'></a><a href='#L608'>608</a> +<a name='L609'></a><a href='#L609'>609</a> +<a name='L610'></a><a href='#L610'>610</a> +<a name='L611'></a><a href='#L611'>611</a> +<a name='L612'></a><a href='#L612'>612</a> +<a name='L613'></a><a href='#L613'>613</a> +<a name='L614'></a><a href='#L614'>614</a> +<a name='L615'></a><a href='#L615'>615</a> +<a name='L616'></a><a href='#L616'>616</a> +<a name='L617'></a><a href='#L617'>617</a> +<a name='L618'></a><a href='#L618'>618</a> +<a name='L619'></a><a href='#L619'>619</a> +<a name='L620'></a><a href='#L620'>620</a> +<a name='L621'></a><a href='#L621'>621</a> +<a name='L622'></a><a href='#L622'>622</a> +<a name='L623'></a><a href='#L623'>623</a> +<a name='L624'></a><a href='#L624'>624</a> +<a name='L625'></a><a href='#L625'>625</a> +<a name='L626'></a><a href='#L626'>626</a> +<a name='L627'></a><a href='#L627'>627</a> +<a name='L628'></a><a href='#L628'>628</a> +<a name='L629'></a><a href='#L629'>629</a> +<a name='L630'></a><a href='#L630'>630</a> +<a name='L631'></a><a href='#L631'>631</a> +<a name='L632'></a><a href='#L632'>632</a> +<a name='L633'></a><a href='#L633'>633</a> +<a name='L634'></a><a href='#L634'>634</a> +<a name='L635'></a><a href='#L635'>635</a> +<a name='L636'></a><a href='#L636'>636</a> +<a name='L637'></a><a href='#L637'>637</a> +<a name='L638'></a><a href='#L638'>638</a> +<a name='L639'></a><a href='#L639'>639</a> +<a name='L640'></a><a href='#L640'>640</a> +<a name='L641'></a><a href='#L641'>641</a> +<a name='L642'></a><a href='#L642'>642</a> +<a name='L643'></a><a href='#L643'>643</a> +<a name='L644'></a><a href='#L644'>644</a> +<a name='L645'></a><a href='#L645'>645</a> +<a name='L646'></a><a href='#L646'>646</a> +<a name='L647'></a><a href='#L647'>647</a> +<a name='L648'></a><a href='#L648'>648</a> +<a name='L649'></a><a href='#L649'>649</a> +<a name='L650'></a><a href='#L650'>650</a> +<a name='L651'></a><a href='#L651'>651</a> +<a name='L652'></a><a href='#L652'>652</a> +<a name='L653'></a><a href='#L653'>653</a> +<a name='L654'></a><a href='#L654'>654</a> +<a name='L655'></a><a href='#L655'>655</a> +<a name='L656'></a><a href='#L656'>656</a> +<a name='L657'></a><a href='#L657'>657</a> +<a name='L658'></a><a href='#L658'>658</a> +<a name='L659'></a><a href='#L659'>659</a> +<a name='L660'></a><a href='#L660'>660</a> +<a name='L661'></a><a href='#L661'>661</a> +<a name='L662'></a><a href='#L662'>662</a> +<a name='L663'></a><a href='#L663'>663</a> +<a name='L664'></a><a href='#L664'>664</a> +<a name='L665'></a><a href='#L665'>665</a> +<a name='L666'></a><a href='#L666'>666</a> +<a name='L667'></a><a href='#L667'>667</a> +<a name='L668'></a><a href='#L668'>668</a> +<a name='L669'></a><a href='#L669'>669</a> +<a name='L670'></a><a href='#L670'>670</a> +<a name='L671'></a><a href='#L671'>671</a> +<a name='L672'></a><a href='#L672'>672</a> +<a name='L673'></a><a href='#L673'>673</a> +<a name='L674'></a><a href='#L674'>674</a> +<a name='L675'></a><a href='#L675'>675</a> +<a name='L676'></a><a href='#L676'>676</a> +<a name='L677'></a><a href='#L677'>677</a> +<a name='L678'></a><a href='#L678'>678</a> +<a name='L679'></a><a href='#L679'>679</a> +<a name='L680'></a><a href='#L680'>680</a> +<a name='L681'></a><a href='#L681'>681</a> +<a name='L682'></a><a href='#L682'>682</a> +<a name='L683'></a><a href='#L683'>683</a> +<a name='L684'></a><a href='#L684'>684</a> +<a name='L685'></a><a href='#L685'>685</a> +<a name='L686'></a><a href='#L686'>686</a> +<a name='L687'></a><a href='#L687'>687</a> +<a name='L688'></a><a href='#L688'>688</a> +<a name='L689'></a><a href='#L689'>689</a> +<a name='L690'></a><a href='#L690'>690</a> +<a name='L691'></a><a href='#L691'>691</a> +<a name='L692'></a><a href='#L692'>692</a> +<a name='L693'></a><a href='#L693'>693</a> +<a name='L694'></a><a href='#L694'>694</a> +<a name='L695'></a><a href='#L695'>695</a> +<a name='L696'></a><a href='#L696'>696</a> +<a name='L697'></a><a href='#L697'>697</a> +<a name='L698'></a><a href='#L698'>698</a> +<a name='L699'></a><a href='#L699'>699</a> +<a name='L700'></a><a href='#L700'>700</a> +<a name='L701'></a><a href='#L701'>701</a> +<a name='L702'></a><a href='#L702'>702</a> +<a name='L703'></a><a href='#L703'>703</a> +<a name='L704'></a><a href='#L704'>704</a> +<a name='L705'></a><a href='#L705'>705</a> +<a name='L706'></a><a href='#L706'>706</a> +<a name='L707'></a><a href='#L707'>707</a> +<a name='L708'></a><a href='#L708'>708</a> +<a name='L709'></a><a href='#L709'>709</a> +<a name='L710'></a><a href='#L710'>710</a> +<a name='L711'></a><a href='#L711'>711</a> +<a name='L712'></a><a href='#L712'>712</a> +<a name='L713'></a><a href='#L713'>713</a> +<a name='L714'></a><a href='#L714'>714</a> +<a name='L715'></a><a href='#L715'>715</a> +<a name='L716'></a><a href='#L716'>716</a> +<a name='L717'></a><a href='#L717'>717</a> +<a name='L718'></a><a href='#L718'>718</a> +<a name='L719'></a><a href='#L719'>719</a> +<a name='L720'></a><a href='#L720'>720</a> +<a name='L721'></a><a href='#L721'>721</a> +<a name='L722'></a><a href='#L722'>722</a> +<a name='L723'></a><a href='#L723'>723</a> +<a name='L724'></a><a href='#L724'>724</a> +<a name='L725'></a><a href='#L725'>725</a> +<a name='L726'></a><a href='#L726'>726</a> +<a name='L727'></a><a href='#L727'>727</a> +<a name='L728'></a><a href='#L728'>728</a> +<a name='L729'></a><a href='#L729'>729</a> +<a name='L730'></a><a href='#L730'>730</a> +<a name='L731'></a><a href='#L731'>731</a> +<a name='L732'></a><a href='#L732'>732</a> +<a name='L733'></a><a href='#L733'>733</a> +<a name='L734'></a><a href='#L734'>734</a> +<a name='L735'></a><a href='#L735'>735</a> +<a name='L736'></a><a href='#L736'>736</a> +<a name='L737'></a><a href='#L737'>737</a> +<a name='L738'></a><a href='#L738'>738</a> +<a name='L739'></a><a href='#L739'>739</a> +<a name='L740'></a><a href='#L740'>740</a> +<a name='L741'></a><a href='#L741'>741</a> +<a name='L742'></a><a href='#L742'>742</a> +<a name='L743'></a><a href='#L743'>743</a> +<a name='L744'></a><a href='#L744'>744</a> +<a name='L745'></a><a href='#L745'>745</a> +<a name='L746'></a><a href='#L746'>746</a> +<a name='L747'></a><a href='#L747'>747</a> +<a name='L748'></a><a href='#L748'>748</a> +<a name='L749'></a><a href='#L749'>749</a> +<a name='L750'></a><a href='#L750'>750</a> +<a name='L751'></a><a href='#L751'>751</a> +<a name='L752'></a><a href='#L752'>752</a> +<a name='L753'></a><a href='#L753'>753</a> +<a name='L754'></a><a href='#L754'>754</a> +<a name='L755'></a><a href='#L755'>755</a> +<a name='L756'></a><a href='#L756'>756</a> +<a name='L757'></a><a href='#L757'>757</a> +<a name='L758'></a><a href='#L758'>758</a> +<a name='L759'></a><a href='#L759'>759</a> +<a name='L760'></a><a href='#L760'>760</a> +<a name='L761'></a><a href='#L761'>761</a> +<a name='L762'></a><a href='#L762'>762</a> +<a name='L763'></a><a href='#L763'>763</a> +<a name='L764'></a><a href='#L764'>764</a> +<a name='L765'></a><a href='#L765'>765</a> +<a name='L766'></a><a href='#L766'>766</a> +<a name='L767'></a><a href='#L767'>767</a> +<a name='L768'></a><a href='#L768'>768</a> +<a name='L769'></a><a href='#L769'>769</a> +<a name='L770'></a><a href='#L770'>770</a> +<a name='L771'></a><a href='#L771'>771</a> +<a name='L772'></a><a href='#L772'>772</a> +<a name='L773'></a><a href='#L773'>773</a> +<a name='L774'></a><a href='#L774'>774</a> +<a name='L775'></a><a href='#L775'>775</a> +<a name='L776'></a><a href='#L776'>776</a> +<a name='L777'></a><a href='#L777'>777</a> +<a name='L778'></a><a href='#L778'>778</a> +<a name='L779'></a><a href='#L779'>779</a> +<a name='L780'></a><a href='#L780'>780</a> +<a name='L781'></a><a href='#L781'>781</a> +<a name='L782'></a><a href='#L782'>782</a> +<a name='L783'></a><a href='#L783'>783</a> +<a name='L784'></a><a href='#L784'>784</a> +<a name='L785'></a><a href='#L785'>785</a> +<a name='L786'></a><a href='#L786'>786</a> +<a name='L787'></a><a href='#L787'>787</a> +<a name='L788'></a><a href='#L788'>788</a> +<a name='L789'></a><a href='#L789'>789</a> +<a name='L790'></a><a href='#L790'>790</a> +<a name='L791'></a><a href='#L791'>791</a> +<a name='L792'></a><a href='#L792'>792</a> +<a name='L793'></a><a href='#L793'>793</a> +<a name='L794'></a><a href='#L794'>794</a> +<a name='L795'></a><a href='#L795'>795</a> +<a name='L796'></a><a href='#L796'>796</a> +<a name='L797'></a><a href='#L797'>797</a> +<a name='L798'></a><a href='#L798'>798</a> +<a name='L799'></a><a href='#L799'>799</a> +<a name='L800'></a><a href='#L800'>800</a> +<a name='L801'></a><a href='#L801'>801</a> +<a name='L802'></a><a href='#L802'>802</a> +<a name='L803'></a><a href='#L803'>803</a> +<a name='L804'></a><a href='#L804'>804</a> +<a name='L805'></a><a href='#L805'>805</a> +<a name='L806'></a><a href='#L806'>806</a> +<a name='L807'></a><a href='#L807'>807</a> +<a name='L808'></a><a href='#L808'>808</a> +<a name='L809'></a><a href='#L809'>809</a> +<a name='L810'></a><a href='#L810'>810</a> +<a name='L811'></a><a href='#L811'>811</a> +<a name='L812'></a><a href='#L812'>812</a> +<a name='L813'></a><a href='#L813'>813</a> +<a name='L814'></a><a href='#L814'>814</a> +<a name='L815'></a><a href='#L815'>815</a> +<a name='L816'></a><a href='#L816'>816</a> +<a name='L817'></a><a href='#L817'>817</a> +<a name='L818'></a><a href='#L818'>818</a> +<a name='L819'></a><a href='#L819'>819</a> +<a name='L820'></a><a href='#L820'>820</a> +<a name='L821'></a><a href='#L821'>821</a> +<a name='L822'></a><a href='#L822'>822</a> +<a name='L823'></a><a href='#L823'>823</a> +<a name='L824'></a><a href='#L824'>824</a> +<a name='L825'></a><a href='#L825'>825</a> +<a name='L826'></a><a href='#L826'>826</a> +<a name='L827'></a><a href='#L827'>827</a> +<a name='L828'></a><a href='#L828'>828</a> +<a name='L829'></a><a href='#L829'>829</a> +<a name='L830'></a><a href='#L830'>830</a> +<a name='L831'></a><a href='#L831'>831</a> +<a name='L832'></a><a href='#L832'>832</a> +<a name='L833'></a><a href='#L833'>833</a> +<a name='L834'></a><a href='#L834'>834</a> +<a name='L835'></a><a href='#L835'>835</a> +<a name='L836'></a><a href='#L836'>836</a> +<a name='L837'></a><a href='#L837'>837</a> +<a name='L838'></a><a href='#L838'>838</a> +<a name='L839'></a><a href='#L839'>839</a> +<a name='L840'></a><a href='#L840'>840</a> +<a name='L841'></a><a href='#L841'>841</a> +<a name='L842'></a><a href='#L842'>842</a> +<a name='L843'></a><a href='#L843'>843</a> +<a name='L844'></a><a href='#L844'>844</a> +<a name='L845'></a><a href='#L845'>845</a> +<a name='L846'></a><a href='#L846'>846</a> +<a name='L847'></a><a href='#L847'>847</a> +<a name='L848'></a><a href='#L848'>848</a> +<a name='L849'></a><a href='#L849'>849</a> +<a name='L850'></a><a href='#L850'>850</a> +<a name='L851'></a><a href='#L851'>851</a> +<a name='L852'></a><a href='#L852'>852</a> +<a name='L853'></a><a href='#L853'>853</a> +<a name='L854'></a><a href='#L854'>854</a> +<a name='L855'></a><a href='#L855'>855</a> +<a name='L856'></a><a href='#L856'>856</a> +<a name='L857'></a><a href='#L857'>857</a> +<a name='L858'></a><a href='#L858'>858</a> +<a name='L859'></a><a href='#L859'>859</a> +<a name='L860'></a><a href='#L860'>860</a> +<a name='L861'></a><a href='#L861'>861</a> +<a name='L862'></a><a href='#L862'>862</a> +<a name='L863'></a><a href='#L863'>863</a> +<a name='L864'></a><a href='#L864'>864</a> +<a name='L865'></a><a href='#L865'>865</a> +<a name='L866'></a><a href='#L866'>866</a> +<a name='L867'></a><a href='#L867'>867</a> +<a name='L868'></a><a href='#L868'>868</a> +<a name='L869'></a><a href='#L869'>869</a> +<a name='L870'></a><a href='#L870'>870</a> +<a name='L871'></a><a href='#L871'>871</a> +<a name='L872'></a><a href='#L872'>872</a> +<a name='L873'></a><a href='#L873'>873</a> +<a name='L874'></a><a href='#L874'>874</a> +<a name='L875'></a><a href='#L875'>875</a> +<a name='L876'></a><a href='#L876'>876</a> +<a name='L877'></a><a href='#L877'>877</a> +<a name='L878'></a><a href='#L878'>878</a> +<a name='L879'></a><a href='#L879'>879</a> +<a name='L880'></a><a href='#L880'>880</a> +<a name='L881'></a><a href='#L881'>881</a> +<a name='L882'></a><a href='#L882'>882</a> +<a name='L883'></a><a href='#L883'>883</a> +<a name='L884'></a><a href='#L884'>884</a> +<a name='L885'></a><a href='#L885'>885</a> +<a name='L886'></a><a href='#L886'>886</a> +<a name='L887'></a><a href='#L887'>887</a> +<a name='L888'></a><a href='#L888'>888</a> +<a name='L889'></a><a href='#L889'>889</a> +<a name='L890'></a><a href='#L890'>890</a> +<a name='L891'></a><a href='#L891'>891</a> +<a name='L892'></a><a href='#L892'>892</a> +<a name='L893'></a><a href='#L893'>893</a> +<a name='L894'></a><a href='#L894'>894</a> +<a name='L895'></a><a href='#L895'>895</a> +<a name='L896'></a><a href='#L896'>896</a> +<a name='L897'></a><a href='#L897'>897</a> +<a name='L898'></a><a href='#L898'>898</a> +<a name='L899'></a><a href='#L899'>899</a> +<a name='L900'></a><a href='#L900'>900</a> +<a name='L901'></a><a href='#L901'>901</a> +<a name='L902'></a><a href='#L902'>902</a> +<a name='L903'></a><a href='#L903'>903</a> +<a name='L904'></a><a href='#L904'>904</a> +<a name='L905'></a><a href='#L905'>905</a> +<a name='L906'></a><a href='#L906'>906</a> +<a name='L907'></a><a href='#L907'>907</a> +<a name='L908'></a><a href='#L908'>908</a> +<a name='L909'></a><a href='#L909'>909</a> +<a name='L910'></a><a href='#L910'>910</a> +<a name='L911'></a><a href='#L911'>911</a> +<a name='L912'></a><a href='#L912'>912</a> +<a name='L913'></a><a href='#L913'>913</a> +<a name='L914'></a><a href='#L914'>914</a> +<a name='L915'></a><a href='#L915'>915</a> +<a name='L916'></a><a href='#L916'>916</a> +<a name='L917'></a><a href='#L917'>917</a> +<a name='L918'></a><a href='#L918'>918</a> +<a name='L919'></a><a href='#L919'>919</a> +<a name='L920'></a><a href='#L920'>920</a> +<a name='L921'></a><a href='#L921'>921</a> +<a name='L922'></a><a href='#L922'>922</a> +<a name='L923'></a><a href='#L923'>923</a> +<a name='L924'></a><a href='#L924'>924</a> +<a name='L925'></a><a href='#L925'>925</a> +<a name='L926'></a><a href='#L926'>926</a> +<a name='L927'></a><a href='#L927'>927</a> +<a name='L928'></a><a href='#L928'>928</a> +<a name='L929'></a><a href='#L929'>929</a> +<a name='L930'></a><a href='#L930'>930</a> +<a name='L931'></a><a href='#L931'>931</a> +<a name='L932'></a><a href='#L932'>932</a> +<a name='L933'></a><a href='#L933'>933</a> +<a name='L934'></a><a href='#L934'>934</a> +<a name='L935'></a><a href='#L935'>935</a> +<a name='L936'></a><a href='#L936'>936</a> +<a name='L937'></a><a href='#L937'>937</a> +<a name='L938'></a><a href='#L938'>938</a> +<a name='L939'></a><a href='#L939'>939</a> +<a name='L940'></a><a href='#L940'>940</a> +<a name='L941'></a><a href='#L941'>941</a> +<a name='L942'></a><a href='#L942'>942</a> +<a name='L943'></a><a href='#L943'>943</a> +<a name='L944'></a><a href='#L944'>944</a> +<a name='L945'></a><a href='#L945'>945</a> +<a name='L946'></a><a href='#L946'>946</a> +<a name='L947'></a><a href='#L947'>947</a> +<a name='L948'></a><a href='#L948'>948</a> +<a name='L949'></a><a href='#L949'>949</a> +<a name='L950'></a><a href='#L950'>950</a> +<a name='L951'></a><a href='#L951'>951</a> +<a name='L952'></a><a href='#L952'>952</a> +<a name='L953'></a><a href='#L953'>953</a> +<a name='L954'></a><a href='#L954'>954</a> +<a name='L955'></a><a href='#L955'>955</a> +<a name='L956'></a><a href='#L956'>956</a> +<a name='L957'></a><a href='#L957'>957</a> +<a name='L958'></a><a href='#L958'>958</a> +<a name='L959'></a><a href='#L959'>959</a> +<a name='L960'></a><a href='#L960'>960</a> +<a name='L961'></a><a href='#L961'>961</a> +<a name='L962'></a><a href='#L962'>962</a> +<a name='L963'></a><a href='#L963'>963</a> +<a name='L964'></a><a href='#L964'>964</a> +<a name='L965'></a><a href='#L965'>965</a> +<a name='L966'></a><a href='#L966'>966</a> +<a name='L967'></a><a href='#L967'>967</a> +<a name='L968'></a><a href='#L968'>968</a> +<a name='L969'></a><a href='#L969'>969</a> +<a name='L970'></a><a href='#L970'>970</a> +<a name='L971'></a><a href='#L971'>971</a> +<a name='L972'></a><a href='#L972'>972</a> +<a name='L973'></a><a href='#L973'>973</a> +<a name='L974'></a><a href='#L974'>974</a> +<a name='L975'></a><a href='#L975'>975</a> +<a name='L976'></a><a href='#L976'>976</a> +<a name='L977'></a><a href='#L977'>977</a> +<a name='L978'></a><a href='#L978'>978</a> +<a name='L979'></a><a href='#L979'>979</a> +<a name='L980'></a><a href='#L980'>980</a> +<a name='L981'></a><a href='#L981'>981</a> +<a name='L982'></a><a href='#L982'>982</a> +<a name='L983'></a><a href='#L983'>983</a> +<a name='L984'></a><a href='#L984'>984</a> +<a name='L985'></a><a href='#L985'>985</a> +<a name='L986'></a><a href='#L986'>986</a> +<a name='L987'></a><a href='#L987'>987</a> +<a name='L988'></a><a href='#L988'>988</a> +<a name='L989'></a><a href='#L989'>989</a> +<a name='L990'></a><a href='#L990'>990</a> +<a name='L991'></a><a href='#L991'>991</a> +<a name='L992'></a><a href='#L992'>992</a> +<a name='L993'></a><a href='#L993'>993</a> +<a name='L994'></a><a href='#L994'>994</a> +<a name='L995'></a><a href='#L995'>995</a> +<a name='L996'></a><a href='#L996'>996</a> +<a name='L997'></a><a href='#L997'>997</a> +<a name='L998'></a><a href='#L998'>998</a> +<a name='L999'></a><a href='#L999'>999</a> +<a name='L1000'></a><a href='#L1000'>1000</a> +<a name='L1001'></a><a href='#L1001'>1001</a> +<a name='L1002'></a><a href='#L1002'>1002</a> +<a name='L1003'></a><a href='#L1003'>1003</a> +<a name='L1004'></a><a href='#L1004'>1004</a> +<a name='L1005'></a><a href='#L1005'>1005</a> +<a name='L1006'></a><a href='#L1006'>1006</a> +<a name='L1007'></a><a href='#L1007'>1007</a> +<a name='L1008'></a><a href='#L1008'>1008</a> +<a name='L1009'></a><a href='#L1009'>1009</a> +<a name='L1010'></a><a href='#L1010'>1010</a> +<a name='L1011'></a><a href='#L1011'>1011</a> +<a name='L1012'></a><a href='#L1012'>1012</a> +<a name='L1013'></a><a href='#L1013'>1013</a> +<a name='L1014'></a><a href='#L1014'>1014</a> +<a name='L1015'></a><a href='#L1015'>1015</a> +<a name='L1016'></a><a href='#L1016'>1016</a> +<a name='L1017'></a><a href='#L1017'>1017</a> +<a name='L1018'></a><a href='#L1018'>1018</a> +<a name='L1019'></a><a href='#L1019'>1019</a> +<a name='L1020'></a><a href='#L1020'>1020</a> +<a name='L1021'></a><a href='#L1021'>1021</a> +<a name='L1022'></a><a href='#L1022'>1022</a> +<a name='L1023'></a><a href='#L1023'>1023</a> +<a name='L1024'></a><a href='#L1024'>1024</a> +<a name='L1025'></a><a href='#L1025'>1025</a> +<a name='L1026'></a><a href='#L1026'>1026</a> +<a name='L1027'></a><a href='#L1027'>1027</a> +<a name='L1028'></a><a href='#L1028'>1028</a> +<a name='L1029'></a><a href='#L1029'>1029</a> +<a name='L1030'></a><a href='#L1030'>1030</a> +<a name='L1031'></a><a href='#L1031'>1031</a> +<a name='L1032'></a><a href='#L1032'>1032</a> +<a name='L1033'></a><a href='#L1033'>1033</a> +<a name='L1034'></a><a href='#L1034'>1034</a> +<a name='L1035'></a><a href='#L1035'>1035</a> +<a name='L1036'></a><a href='#L1036'>1036</a> +<a name='L1037'></a><a href='#L1037'>1037</a> +<a name='L1038'></a><a href='#L1038'>1038</a> +<a name='L1039'></a><a href='#L1039'>1039</a> +<a name='L1040'></a><a href='#L1040'>1040</a> +<a name='L1041'></a><a href='#L1041'>1041</a> +<a name='L1042'></a><a href='#L1042'>1042</a> +<a name='L1043'></a><a href='#L1043'>1043</a> +<a name='L1044'></a><a href='#L1044'>1044</a> +<a name='L1045'></a><a href='#L1045'>1045</a> +<a name='L1046'></a><a href='#L1046'>1046</a> +<a name='L1047'></a><a href='#L1047'>1047</a> +<a name='L1048'></a><a href='#L1048'>1048</a> +<a name='L1049'></a><a href='#L1049'>1049</a> +<a name='L1050'></a><a href='#L1050'>1050</a> +<a name='L1051'></a><a href='#L1051'>1051</a> +<a name='L1052'></a><a href='#L1052'>1052</a> +<a name='L1053'></a><a href='#L1053'>1053</a> +<a name='L1054'></a><a href='#L1054'>1054</a> +<a name='L1055'></a><a href='#L1055'>1055</a> +<a name='L1056'></a><a href='#L1056'>1056</a> +<a name='L1057'></a><a href='#L1057'>1057</a> +<a name='L1058'></a><a href='#L1058'>1058</a> +<a name='L1059'></a><a href='#L1059'>1059</a> +<a name='L1060'></a><a href='#L1060'>1060</a> +<a name='L1061'></a><a href='#L1061'>1061</a> +<a name='L1062'></a><a href='#L1062'>1062</a> +<a name='L1063'></a><a href='#L1063'>1063</a> +<a name='L1064'></a><a href='#L1064'>1064</a> +<a name='L1065'></a><a href='#L1065'>1065</a> +<a name='L1066'></a><a href='#L1066'>1066</a> +<a name='L1067'></a><a href='#L1067'>1067</a> +<a name='L1068'></a><a href='#L1068'>1068</a> +<a name='L1069'></a><a href='#L1069'>1069</a> +<a name='L1070'></a><a href='#L1070'>1070</a> +<a name='L1071'></a><a href='#L1071'>1071</a> +<a name='L1072'></a><a href='#L1072'>1072</a> +<a name='L1073'></a><a href='#L1073'>1073</a> +<a name='L1074'></a><a href='#L1074'>1074</a> +<a name='L1075'></a><a href='#L1075'>1075</a> +<a name='L1076'></a><a href='#L1076'>1076</a> +<a name='L1077'></a><a href='#L1077'>1077</a> +<a name='L1078'></a><a href='#L1078'>1078</a> +<a name='L1079'></a><a href='#L1079'>1079</a> +<a name='L1080'></a><a href='#L1080'>1080</a> +<a name='L1081'></a><a href='#L1081'>1081</a> +<a name='L1082'></a><a href='#L1082'>1082</a> +<a name='L1083'></a><a href='#L1083'>1083</a> +<a name='L1084'></a><a href='#L1084'>1084</a> +<a name='L1085'></a><a href='#L1085'>1085</a> +<a name='L1086'></a><a href='#L1086'>1086</a> +<a name='L1087'></a><a href='#L1087'>1087</a> +<a name='L1088'></a><a href='#L1088'>1088</a> +<a name='L1089'></a><a href='#L1089'>1089</a> +<a name='L1090'></a><a href='#L1090'>1090</a> +<a name='L1091'></a><a href='#L1091'>1091</a> +<a name='L1092'></a><a href='#L1092'>1092</a> +<a name='L1093'></a><a href='#L1093'>1093</a> +<a name='L1094'></a><a href='#L1094'>1094</a> +<a name='L1095'></a><a href='#L1095'>1095</a> +<a name='L1096'></a><a href='#L1096'>1096</a> +<a name='L1097'></a><a href='#L1097'>1097</a> +<a name='L1098'></a><a href='#L1098'>1098</a> +<a name='L1099'></a><a href='#L1099'>1099</a> +<a name='L1100'></a><a href='#L1100'>1100</a> +<a name='L1101'></a><a href='#L1101'>1101</a> +<a name='L1102'></a><a href='#L1102'>1102</a> +<a name='L1103'></a><a href='#L1103'>1103</a> +<a name='L1104'></a><a href='#L1104'>1104</a> +<a name='L1105'></a><a href='#L1105'>1105</a> +<a name='L1106'></a><a href='#L1106'>1106</a> +<a name='L1107'></a><a href='#L1107'>1107</a> +<a name='L1108'></a><a href='#L1108'>1108</a> +<a name='L1109'></a><a href='#L1109'>1109</a> +<a name='L1110'></a><a href='#L1110'>1110</a> +<a name='L1111'></a><a href='#L1111'>1111</a> +<a name='L1112'></a><a href='#L1112'>1112</a> +<a name='L1113'></a><a href='#L1113'>1113</a> +<a name='L1114'></a><a href='#L1114'>1114</a> +<a name='L1115'></a><a href='#L1115'>1115</a> +<a name='L1116'></a><a href='#L1116'>1116</a> +<a name='L1117'></a><a href='#L1117'>1117</a> +<a name='L1118'></a><a href='#L1118'>1118</a> +<a name='L1119'></a><a href='#L1119'>1119</a> +<a name='L1120'></a><a href='#L1120'>1120</a> +<a name='L1121'></a><a href='#L1121'>1121</a> +<a name='L1122'></a><a href='#L1122'>1122</a> +<a name='L1123'></a><a href='#L1123'>1123</a> +<a name='L1124'></a><a href='#L1124'>1124</a> +<a name='L1125'></a><a href='#L1125'>1125</a> +<a name='L1126'></a><a href='#L1126'>1126</a> +<a name='L1127'></a><a href='#L1127'>1127</a> +<a name='L1128'></a><a href='#L1128'>1128</a> +<a name='L1129'></a><a href='#L1129'>1129</a> +<a name='L1130'></a><a href='#L1130'>1130</a> +<a name='L1131'></a><a href='#L1131'>1131</a> +<a name='L1132'></a><a href='#L1132'>1132</a> +<a name='L1133'></a><a href='#L1133'>1133</a> +<a name='L1134'></a><a href='#L1134'>1134</a> +<a name='L1135'></a><a href='#L1135'>1135</a> +<a name='L1136'></a><a href='#L1136'>1136</a> +<a name='L1137'></a><a href='#L1137'>1137</a> +<a name='L1138'></a><a href='#L1138'>1138</a> +<a name='L1139'></a><a href='#L1139'>1139</a> +<a name='L1140'></a><a href='#L1140'>1140</a> +<a name='L1141'></a><a href='#L1141'>1141</a> +<a name='L1142'></a><a href='#L1142'>1142</a> +<a name='L1143'></a><a href='#L1143'>1143</a> +<a name='L1144'></a><a href='#L1144'>1144</a> +<a name='L1145'></a><a href='#L1145'>1145</a> +<a name='L1146'></a><a href='#L1146'>1146</a> +<a name='L1147'></a><a href='#L1147'>1147</a> +<a name='L1148'></a><a href='#L1148'>1148</a> +<a name='L1149'></a><a href='#L1149'>1149</a> +<a name='L1150'></a><a href='#L1150'>1150</a> +<a name='L1151'></a><a href='#L1151'>1151</a> +<a name='L1152'></a><a href='#L1152'>1152</a> +<a name='L1153'></a><a href='#L1153'>1153</a> +<a name='L1154'></a><a href='#L1154'>1154</a> +<a name='L1155'></a><a href='#L1155'>1155</a> +<a name='L1156'></a><a href='#L1156'>1156</a> +<a name='L1157'></a><a href='#L1157'>1157</a> +<a name='L1158'></a><a href='#L1158'>1158</a> +<a name='L1159'></a><a href='#L1159'>1159</a> +<a name='L1160'></a><a href='#L1160'>1160</a> +<a name='L1161'></a><a href='#L1161'>1161</a> +<a name='L1162'></a><a href='#L1162'>1162</a> +<a name='L1163'></a><a href='#L1163'>1163</a> +<a name='L1164'></a><a href='#L1164'>1164</a> +<a name='L1165'></a><a href='#L1165'>1165</a> +<a name='L1166'></a><a href='#L1166'>1166</a> +<a name='L1167'></a><a href='#L1167'>1167</a> +<a name='L1168'></a><a href='#L1168'>1168</a> +<a name='L1169'></a><a href='#L1169'>1169</a> +<a name='L1170'></a><a href='#L1170'>1170</a> +<a name='L1171'></a><a href='#L1171'>1171</a> +<a name='L1172'></a><a href='#L1172'>1172</a> +<a name='L1173'></a><a href='#L1173'>1173</a> +<a name='L1174'></a><a href='#L1174'>1174</a> +<a name='L1175'></a><a href='#L1175'>1175</a> +<a name='L1176'></a><a href='#L1176'>1176</a> +<a name='L1177'></a><a href='#L1177'>1177</a> +<a name='L1178'></a><a href='#L1178'>1178</a> +<a name='L1179'></a><a href='#L1179'>1179</a> +<a name='L1180'></a><a href='#L1180'>1180</a> +<a name='L1181'></a><a href='#L1181'>1181</a> +<a name='L1182'></a><a href='#L1182'>1182</a> +<a name='L1183'></a><a href='#L1183'>1183</a> +<a name='L1184'></a><a href='#L1184'>1184</a> +<a name='L1185'></a><a href='#L1185'>1185</a> +<a name='L1186'></a><a href='#L1186'>1186</a> +<a name='L1187'></a><a href='#L1187'>1187</a> +<a name='L1188'></a><a href='#L1188'>1188</a> +<a name='L1189'></a><a href='#L1189'>1189</a> +<a name='L1190'></a><a href='#L1190'>1190</a> +<a name='L1191'></a><a href='#L1191'>1191</a> +<a name='L1192'></a><a href='#L1192'>1192</a> +<a name='L1193'></a><a href='#L1193'>1193</a> +<a name='L1194'></a><a href='#L1194'>1194</a> +<a name='L1195'></a><a href='#L1195'>1195</a> +<a name='L1196'></a><a href='#L1196'>1196</a> +<a name='L1197'></a><a href='#L1197'>1197</a> +<a name='L1198'></a><a href='#L1198'>1198</a> +<a name='L1199'></a><a href='#L1199'>1199</a> +<a name='L1200'></a><a href='#L1200'>1200</a> +<a name='L1201'></a><a href='#L1201'>1201</a> +<a name='L1202'></a><a href='#L1202'>1202</a> +<a name='L1203'></a><a href='#L1203'>1203</a> +<a name='L1204'></a><a href='#L1204'>1204</a> +<a name='L1205'></a><a href='#L1205'>1205</a> +<a name='L1206'></a><a href='#L1206'>1206</a> +<a name='L1207'></a><a href='#L1207'>1207</a> +<a name='L1208'></a><a href='#L1208'>1208</a> +<a name='L1209'></a><a href='#L1209'>1209</a> +<a name='L1210'></a><a href='#L1210'>1210</a> +<a name='L1211'></a><a href='#L1211'>1211</a> +<a name='L1212'></a><a href='#L1212'>1212</a> +<a name='L1213'></a><a href='#L1213'>1213</a> +<a name='L1214'></a><a href='#L1214'>1214</a> +<a name='L1215'></a><a href='#L1215'>1215</a> +<a name='L1216'></a><a href='#L1216'>1216</a> +<a name='L1217'></a><a href='#L1217'>1217</a> +<a name='L1218'></a><a href='#L1218'>1218</a> +<a name='L1219'></a><a href='#L1219'>1219</a> +<a name='L1220'></a><a href='#L1220'>1220</a> +<a name='L1221'></a><a href='#L1221'>1221</a> +<a name='L1222'></a><a href='#L1222'>1222</a> +<a name='L1223'></a><a href='#L1223'>1223</a> +<a name='L1224'></a><a href='#L1224'>1224</a> +<a name='L1225'></a><a href='#L1225'>1225</a> +<a name='L1226'></a><a href='#L1226'>1226</a> +<a name='L1227'></a><a href='#L1227'>1227</a> +<a name='L1228'></a><a href='#L1228'>1228</a> +<a name='L1229'></a><a href='#L1229'>1229</a> +<a name='L1230'></a><a href='#L1230'>1230</a> +<a name='L1231'></a><a href='#L1231'>1231</a> +<a name='L1232'></a><a href='#L1232'>1232</a> +<a name='L1233'></a><a href='#L1233'>1233</a> +<a name='L1234'></a><a href='#L1234'>1234</a> +<a name='L1235'></a><a href='#L1235'>1235</a> +<a name='L1236'></a><a href='#L1236'>1236</a> +<a name='L1237'></a><a href='#L1237'>1237</a> +<a name='L1238'></a><a href='#L1238'>1238</a> +<a name='L1239'></a><a href='#L1239'>1239</a> +<a name='L1240'></a><a href='#L1240'>1240</a> +<a name='L1241'></a><a href='#L1241'>1241</a> +<a name='L1242'></a><a href='#L1242'>1242</a> +<a name='L1243'></a><a href='#L1243'>1243</a> +<a name='L1244'></a><a href='#L1244'>1244</a> +<a name='L1245'></a><a href='#L1245'>1245</a> +<a name='L1246'></a><a href='#L1246'>1246</a> +<a name='L1247'></a><a href='#L1247'>1247</a> +<a name='L1248'></a><a href='#L1248'>1248</a> +<a name='L1249'></a><a href='#L1249'>1249</a> +<a name='L1250'></a><a href='#L1250'>1250</a> +<a name='L1251'></a><a href='#L1251'>1251</a> +<a name='L1252'></a><a href='#L1252'>1252</a> +<a name='L1253'></a><a href='#L1253'>1253</a> +<a name='L1254'></a><a href='#L1254'>1254</a> +<a name='L1255'></a><a href='#L1255'>1255</a> +<a name='L1256'></a><a href='#L1256'>1256</a> +<a name='L1257'></a><a href='#L1257'>1257</a> +<a name='L1258'></a><a href='#L1258'>1258</a> +<a name='L1259'></a><a href='#L1259'>1259</a> +<a name='L1260'></a><a href='#L1260'>1260</a> +<a name='L1261'></a><a href='#L1261'>1261</a> +<a name='L1262'></a><a href='#L1262'>1262</a> +<a name='L1263'></a><a href='#L1263'>1263</a> +<a name='L1264'></a><a href='#L1264'>1264</a> +<a name='L1265'></a><a href='#L1265'>1265</a> +<a name='L1266'></a><a href='#L1266'>1266</a> +<a name='L1267'></a><a href='#L1267'>1267</a> +<a name='L1268'></a><a href='#L1268'>1268</a> +<a name='L1269'></a><a href='#L1269'>1269</a> +<a name='L1270'></a><a href='#L1270'>1270</a> +<a name='L1271'></a><a href='#L1271'>1271</a> +<a name='L1272'></a><a href='#L1272'>1272</a> +<a name='L1273'></a><a href='#L1273'>1273</a> +<a name='L1274'></a><a href='#L1274'>1274</a> +<a name='L1275'></a><a href='#L1275'>1275</a> +<a name='L1276'></a><a href='#L1276'>1276</a> +<a name='L1277'></a><a href='#L1277'>1277</a> +<a name='L1278'></a><a href='#L1278'>1278</a> +<a name='L1279'></a><a href='#L1279'>1279</a> +<a name='L1280'></a><a href='#L1280'>1280</a> +<a name='L1281'></a><a href='#L1281'>1281</a> +<a name='L1282'></a><a href='#L1282'>1282</a> +<a name='L1283'></a><a href='#L1283'>1283</a> +<a name='L1284'></a><a href='#L1284'>1284</a> +<a name='L1285'></a><a href='#L1285'>1285</a> +<a name='L1286'></a><a href='#L1286'>1286</a> +<a name='L1287'></a><a href='#L1287'>1287</a> +<a name='L1288'></a><a href='#L1288'>1288</a> +<a name='L1289'></a><a href='#L1289'>1289</a> +<a name='L1290'></a><a href='#L1290'>1290</a> +<a name='L1291'></a><a href='#L1291'>1291</a> +<a name='L1292'></a><a href='#L1292'>1292</a> +<a name='L1293'></a><a href='#L1293'>1293</a> +<a name='L1294'></a><a href='#L1294'>1294</a> +<a name='L1295'></a><a href='#L1295'>1295</a> +<a name='L1296'></a><a href='#L1296'>1296</a> +<a name='L1297'></a><a href='#L1297'>1297</a> +<a name='L1298'></a><a href='#L1298'>1298</a> +<a name='L1299'></a><a href='#L1299'>1299</a> +<a name='L1300'></a><a href='#L1300'>1300</a> +<a name='L1301'></a><a href='#L1301'>1301</a> +<a name='L1302'></a><a href='#L1302'>1302</a> +<a name='L1303'></a><a href='#L1303'>1303</a> +<a name='L1304'></a><a href='#L1304'>1304</a> +<a name='L1305'></a><a href='#L1305'>1305</a> +<a name='L1306'></a><a href='#L1306'>1306</a> +<a name='L1307'></a><a href='#L1307'>1307</a> +<a name='L1308'></a><a href='#L1308'>1308</a> +<a name='L1309'></a><a href='#L1309'>1309</a> +<a name='L1310'></a><a href='#L1310'>1310</a> +<a name='L1311'></a><a href='#L1311'>1311</a> +<a name='L1312'></a><a href='#L1312'>1312</a> +<a name='L1313'></a><a href='#L1313'>1313</a> +<a name='L1314'></a><a href='#L1314'>1314</a> +<a name='L1315'></a><a href='#L1315'>1315</a> +<a name='L1316'></a><a href='#L1316'>1316</a> +<a name='L1317'></a><a href='#L1317'>1317</a> +<a name='L1318'></a><a href='#L1318'>1318</a> +<a name='L1319'></a><a href='#L1319'>1319</a> +<a name='L1320'></a><a href='#L1320'>1320</a> +<a name='L1321'></a><a href='#L1321'>1321</a> +<a name='L1322'></a><a href='#L1322'>1322</a> +<a name='L1323'></a><a href='#L1323'>1323</a> +<a name='L1324'></a><a href='#L1324'>1324</a> +<a name='L1325'></a><a href='#L1325'>1325</a> +<a name='L1326'></a><a href='#L1326'>1326</a> +<a name='L1327'></a><a href='#L1327'>1327</a> +<a name='L1328'></a><a href='#L1328'>1328</a> +<a name='L1329'></a><a href='#L1329'>1329</a> +<a name='L1330'></a><a href='#L1330'>1330</a> +<a name='L1331'></a><a href='#L1331'>1331</a> +<a name='L1332'></a><a href='#L1332'>1332</a> +<a name='L1333'></a><a href='#L1333'>1333</a> +<a name='L1334'></a><a href='#L1334'>1334</a> +<a name='L1335'></a><a href='#L1335'>1335</a> +<a name='L1336'></a><a href='#L1336'>1336</a> +<a name='L1337'></a><a href='#L1337'>1337</a> +<a name='L1338'></a><a href='#L1338'>1338</a> +<a name='L1339'></a><a href='#L1339'>1339</a> +<a name='L1340'></a><a href='#L1340'>1340</a> +<a name='L1341'></a><a href='#L1341'>1341</a> +<a name='L1342'></a><a href='#L1342'>1342</a> +<a name='L1343'></a><a href='#L1343'>1343</a> +<a name='L1344'></a><a href='#L1344'>1344</a> +<a name='L1345'></a><a href='#L1345'>1345</a> +<a name='L1346'></a><a href='#L1346'>1346</a> +<a name='L1347'></a><a href='#L1347'>1347</a> +<a name='L1348'></a><a href='#L1348'>1348</a> +<a name='L1349'></a><a href='#L1349'>1349</a> +<a name='L1350'></a><a href='#L1350'>1350</a> +<a name='L1351'></a><a href='#L1351'>1351</a> +<a name='L1352'></a><a href='#L1352'>1352</a> +<a name='L1353'></a><a href='#L1353'>1353</a> +<a name='L1354'></a><a href='#L1354'>1354</a> +<a name='L1355'></a><a href='#L1355'>1355</a> +<a name='L1356'></a><a href='#L1356'>1356</a> +<a name='L1357'></a><a href='#L1357'>1357</a> +<a name='L1358'></a><a href='#L1358'>1358</a> +<a name='L1359'></a><a href='#L1359'>1359</a> +<a name='L1360'></a><a href='#L1360'>1360</a> +<a name='L1361'></a><a href='#L1361'>1361</a> +<a name='L1362'></a><a href='#L1362'>1362</a> +<a name='L1363'></a><a href='#L1363'>1363</a> +<a name='L1364'></a><a href='#L1364'>1364</a> +<a name='L1365'></a><a href='#L1365'>1365</a> +<a name='L1366'></a><a href='#L1366'>1366</a> +<a name='L1367'></a><a href='#L1367'>1367</a> +<a name='L1368'></a><a href='#L1368'>1368</a> +<a name='L1369'></a><a href='#L1369'>1369</a> +<a name='L1370'></a><a href='#L1370'>1370</a> +<a name='L1371'></a><a href='#L1371'>1371</a> +<a name='L1372'></a><a href='#L1372'>1372</a> +<a name='L1373'></a><a href='#L1373'>1373</a> +<a name='L1374'></a><a href='#L1374'>1374</a> +<a name='L1375'></a><a href='#L1375'>1375</a> +<a name='L1376'></a><a href='#L1376'>1376</a> +<a name='L1377'></a><a href='#L1377'>1377</a> +<a name='L1378'></a><a href='#L1378'>1378</a> +<a name='L1379'></a><a href='#L1379'>1379</a> +<a name='L1380'></a><a href='#L1380'>1380</a> +<a name='L1381'></a><a href='#L1381'>1381</a> +<a name='L1382'></a><a href='#L1382'>1382</a> +<a name='L1383'></a><a href='#L1383'>1383</a> +<a name='L1384'></a><a href='#L1384'>1384</a> +<a name='L1385'></a><a href='#L1385'>1385</a> +<a name='L1386'></a><a href='#L1386'>1386</a> +<a name='L1387'></a><a href='#L1387'>1387</a> +<a name='L1388'></a><a href='#L1388'>1388</a> +<a name='L1389'></a><a href='#L1389'>1389</a> +<a name='L1390'></a><a href='#L1390'>1390</a> +<a name='L1391'></a><a href='#L1391'>1391</a> +<a name='L1392'></a><a href='#L1392'>1392</a> +<a name='L1393'></a><a href='#L1393'>1393</a> +<a name='L1394'></a><a href='#L1394'>1394</a> +<a name='L1395'></a><a href='#L1395'>1395</a> +<a name='L1396'></a><a href='#L1396'>1396</a> +<a name='L1397'></a><a href='#L1397'>1397</a> +<a name='L1398'></a><a href='#L1398'>1398</a> +<a name='L1399'></a><a href='#L1399'>1399</a> +<a name='L1400'></a><a href='#L1400'>1400</a> +<a name='L1401'></a><a href='#L1401'>1401</a> +<a name='L1402'></a><a href='#L1402'>1402</a> +<a name='L1403'></a><a href='#L1403'>1403</a> +<a name='L1404'></a><a href='#L1404'>1404</a> +<a name='L1405'></a><a href='#L1405'>1405</a> +<a name='L1406'></a><a href='#L1406'>1406</a> +<a name='L1407'></a><a href='#L1407'>1407</a> +<a name='L1408'></a><a href='#L1408'>1408</a> +<a name='L1409'></a><a href='#L1409'>1409</a> +<a name='L1410'></a><a href='#L1410'>1410</a> +<a name='L1411'></a><a href='#L1411'>1411</a> +<a name='L1412'></a><a href='#L1412'>1412</a> +<a name='L1413'></a><a href='#L1413'>1413</a> +<a name='L1414'></a><a href='#L1414'>1414</a> +<a name='L1415'></a><a href='#L1415'>1415</a> +<a name='L1416'></a><a href='#L1416'>1416</a> +<a name='L1417'></a><a href='#L1417'>1417</a> +<a name='L1418'></a><a href='#L1418'>1418</a> +<a name='L1419'></a><a href='#L1419'>1419</a> +<a name='L1420'></a><a href='#L1420'>1420</a> +<a name='L1421'></a><a href='#L1421'>1421</a> +<a name='L1422'></a><a href='#L1422'>1422</a> +<a name='L1423'></a><a href='#L1423'>1423</a> +<a name='L1424'></a><a href='#L1424'>1424</a> +<a name='L1425'></a><a href='#L1425'>1425</a> +<a name='L1426'></a><a href='#L1426'>1426</a> +<a name='L1427'></a><a href='#L1427'>1427</a> +<a name='L1428'></a><a href='#L1428'>1428</a> +<a name='L1429'></a><a href='#L1429'>1429</a> +<a name='L1430'></a><a href='#L1430'>1430</a> +<a name='L1431'></a><a href='#L1431'>1431</a> +<a name='L1432'></a><a href='#L1432'>1432</a> +<a name='L1433'></a><a href='#L1433'>1433</a> +<a name='L1434'></a><a href='#L1434'>1434</a> +<a name='L1435'></a><a href='#L1435'>1435</a> +<a name='L1436'></a><a href='#L1436'>1436</a> +<a name='L1437'></a><a href='#L1437'>1437</a> +<a name='L1438'></a><a href='#L1438'>1438</a> +<a name='L1439'></a><a href='#L1439'>1439</a> +<a name='L1440'></a><a href='#L1440'>1440</a> +<a name='L1441'></a><a href='#L1441'>1441</a> +<a name='L1442'></a><a href='#L1442'>1442</a> +<a name='L1443'></a><a href='#L1443'>1443</a> +<a name='L1444'></a><a href='#L1444'>1444</a> +<a name='L1445'></a><a href='#L1445'>1445</a> +<a name='L1446'></a><a href='#L1446'>1446</a> +<a name='L1447'></a><a href='#L1447'>1447</a> +<a name='L1448'></a><a href='#L1448'>1448</a> +<a name='L1449'></a><a href='#L1449'>1449</a> +<a name='L1450'></a><a href='#L1450'>1450</a> +<a name='L1451'></a><a href='#L1451'>1451</a> +<a name='L1452'></a><a href='#L1452'>1452</a> +<a name='L1453'></a><a href='#L1453'>1453</a> +<a name='L1454'></a><a href='#L1454'>1454</a> +<a name='L1455'></a><a href='#L1455'>1455</a> +<a name='L1456'></a><a href='#L1456'>1456</a> +<a name='L1457'></a><a href='#L1457'>1457</a> +<a name='L1458'></a><a href='#L1458'>1458</a> +<a name='L1459'></a><a href='#L1459'>1459</a> +<a name='L1460'></a><a href='#L1460'>1460</a> +<a name='L1461'></a><a href='#L1461'>1461</a> +<a name='L1462'></a><a href='#L1462'>1462</a> +<a name='L1463'></a><a href='#L1463'>1463</a> +<a name='L1464'></a><a href='#L1464'>1464</a> +<a name='L1465'></a><a href='#L1465'>1465</a> +<a name='L1466'></a><a href='#L1466'>1466</a> +<a name='L1467'></a><a href='#L1467'>1467</a> +<a name='L1468'></a><a href='#L1468'>1468</a> +<a name='L1469'></a><a href='#L1469'>1469</a> +<a name='L1470'></a><a href='#L1470'>1470</a> +<a name='L1471'></a><a href='#L1471'>1471</a> +<a name='L1472'></a><a href='#L1472'>1472</a> +<a name='L1473'></a><a href='#L1473'>1473</a> +<a name='L1474'></a><a href='#L1474'>1474</a> +<a name='L1475'></a><a href='#L1475'>1475</a> +<a name='L1476'></a><a href='#L1476'>1476</a> +<a name='L1477'></a><a href='#L1477'>1477</a> +<a name='L1478'></a><a href='#L1478'>1478</a> +<a name='L1479'></a><a href='#L1479'>1479</a> +<a name='L1480'></a><a href='#L1480'>1480</a> +<a name='L1481'></a><a href='#L1481'>1481</a> +<a name='L1482'></a><a href='#L1482'>1482</a> +<a name='L1483'></a><a href='#L1483'>1483</a> +<a name='L1484'></a><a href='#L1484'>1484</a> +<a name='L1485'></a><a href='#L1485'>1485</a> +<a name='L1486'></a><a href='#L1486'>1486</a> +<a name='L1487'></a><a href='#L1487'>1487</a> +<a name='L1488'></a><a href='#L1488'>1488</a> +<a name='L1489'></a><a href='#L1489'>1489</a> +<a name='L1490'></a><a href='#L1490'>1490</a> +<a name='L1491'></a><a href='#L1491'>1491</a> +<a name='L1492'></a><a href='#L1492'>1492</a> +<a name='L1493'></a><a href='#L1493'>1493</a> +<a name='L1494'></a><a href='#L1494'>1494</a> +<a name='L1495'></a><a href='#L1495'>1495</a> +<a name='L1496'></a><a href='#L1496'>1496</a> +<a name='L1497'></a><a href='#L1497'>1497</a> +<a name='L1498'></a><a href='#L1498'>1498</a> +<a name='L1499'></a><a href='#L1499'>1499</a> +<a name='L1500'></a><a href='#L1500'>1500</a> +<a name='L1501'></a><a href='#L1501'>1501</a> +<a name='L1502'></a><a href='#L1502'>1502</a> +<a name='L1503'></a><a href='#L1503'>1503</a> +<a name='L1504'></a><a href='#L1504'>1504</a> +<a name='L1505'></a><a href='#L1505'>1505</a> +<a name='L1506'></a><a href='#L1506'>1506</a> +<a name='L1507'></a><a href='#L1507'>1507</a> +<a name='L1508'></a><a href='#L1508'>1508</a> +<a name='L1509'></a><a href='#L1509'>1509</a> +<a name='L1510'></a><a href='#L1510'>1510</a> +<a name='L1511'></a><a href='#L1511'>1511</a> +<a name='L1512'></a><a href='#L1512'>1512</a> +<a name='L1513'></a><a href='#L1513'>1513</a> +<a name='L1514'></a><a href='#L1514'>1514</a> +<a name='L1515'></a><a href='#L1515'>1515</a> +<a name='L1516'></a><a href='#L1516'>1516</a> +<a name='L1517'></a><a href='#L1517'>1517</a> +<a name='L1518'></a><a href='#L1518'>1518</a> +<a name='L1519'></a><a href='#L1519'>1519</a> +<a name='L1520'></a><a href='#L1520'>1520</a> +<a name='L1521'></a><a href='#L1521'>1521</a> +<a name='L1522'></a><a href='#L1522'>1522</a> +<a name='L1523'></a><a href='#L1523'>1523</a> +<a name='L1524'></a><a href='#L1524'>1524</a> +<a name='L1525'></a><a href='#L1525'>1525</a> +<a name='L1526'></a><a href='#L1526'>1526</a> +<a name='L1527'></a><a href='#L1527'>1527</a> +<a name='L1528'></a><a href='#L1528'>1528</a> +<a name='L1529'></a><a href='#L1529'>1529</a> +<a name='L1530'></a><a href='#L1530'>1530</a> +<a name='L1531'></a><a href='#L1531'>1531</a> +<a name='L1532'></a><a href='#L1532'>1532</a> +<a name='L1533'></a><a href='#L1533'>1533</a> +<a name='L1534'></a><a href='#L1534'>1534</a> +<a name='L1535'></a><a href='#L1535'>1535</a> +<a name='L1536'></a><a href='#L1536'>1536</a> +<a name='L1537'></a><a href='#L1537'>1537</a> +<a name='L1538'></a><a href='#L1538'>1538</a> +<a name='L1539'></a><a href='#L1539'>1539</a> +<a name='L1540'></a><a href='#L1540'>1540</a> +<a name='L1541'></a><a href='#L1541'>1541</a> +<a name='L1542'></a><a href='#L1542'>1542</a> +<a name='L1543'></a><a href='#L1543'>1543</a> +<a name='L1544'></a><a href='#L1544'>1544</a> +<a name='L1545'></a><a href='#L1545'>1545</a> +<a name='L1546'></a><a href='#L1546'>1546</a> +<a name='L1547'></a><a href='#L1547'>1547</a> +<a name='L1548'></a><a href='#L1548'>1548</a> +<a name='L1549'></a><a href='#L1549'>1549</a> +<a name='L1550'></a><a href='#L1550'>1550</a> +<a name='L1551'></a><a href='#L1551'>1551</a> +<a name='L1552'></a><a href='#L1552'>1552</a> +<a name='L1553'></a><a href='#L1553'>1553</a> +<a name='L1554'></a><a href='#L1554'>1554</a> +<a name='L1555'></a><a href='#L1555'>1555</a> +<a name='L1556'></a><a href='#L1556'>1556</a> +<a name='L1557'></a><a href='#L1557'>1557</a> +<a name='L1558'></a><a href='#L1558'>1558</a> +<a name='L1559'></a><a href='#L1559'>1559</a> +<a name='L1560'></a><a href='#L1560'>1560</a> +<a name='L1561'></a><a href='#L1561'>1561</a> +<a name='L1562'></a><a href='#L1562'>1562</a> +<a name='L1563'></a><a href='#L1563'>1563</a> +<a name='L1564'></a><a href='#L1564'>1564</a> +<a name='L1565'></a><a href='#L1565'>1565</a> +<a name='L1566'></a><a href='#L1566'>1566</a> +<a name='L1567'></a><a href='#L1567'>1567</a> +<a name='L1568'></a><a href='#L1568'>1568</a> +<a name='L1569'></a><a href='#L1569'>1569</a> +<a name='L1570'></a><a href='#L1570'>1570</a> +<a name='L1571'></a><a href='#L1571'>1571</a> +<a name='L1572'></a><a href='#L1572'>1572</a> +<a name='L1573'></a><a href='#L1573'>1573</a> +<a name='L1574'></a><a href='#L1574'>1574</a> +<a name='L1575'></a><a href='#L1575'>1575</a> +<a name='L1576'></a><a href='#L1576'>1576</a> +<a name='L1577'></a><a href='#L1577'>1577</a> +<a name='L1578'></a><a href='#L1578'>1578</a> +<a name='L1579'></a><a href='#L1579'>1579</a> +<a name='L1580'></a><a href='#L1580'>1580</a> +<a name='L1581'></a><a href='#L1581'>1581</a> +<a name='L1582'></a><a href='#L1582'>1582</a> +<a name='L1583'></a><a href='#L1583'>1583</a> +<a name='L1584'></a><a href='#L1584'>1584</a> +<a name='L1585'></a><a href='#L1585'>1585</a> +<a name='L1586'></a><a href='#L1586'>1586</a> +<a name='L1587'></a><a href='#L1587'>1587</a> +<a name='L1588'></a><a href='#L1588'>1588</a> +<a name='L1589'></a><a href='#L1589'>1589</a> +<a name='L1590'></a><a href='#L1590'>1590</a> +<a name='L1591'></a><a href='#L1591'>1591</a> +<a name='L1592'></a><a href='#L1592'>1592</a> +<a name='L1593'></a><a href='#L1593'>1593</a> +<a name='L1594'></a><a href='#L1594'>1594</a> +<a name='L1595'></a><a href='#L1595'>1595</a> +<a name='L1596'></a><a href='#L1596'>1596</a> +<a name='L1597'></a><a href='#L1597'>1597</a> +<a name='L1598'></a><a href='#L1598'>1598</a> +<a name='L1599'></a><a href='#L1599'>1599</a> +<a name='L1600'></a><a href='#L1600'>1600</a> +<a name='L1601'></a><a href='#L1601'>1601</a> +<a name='L1602'></a><a href='#L1602'>1602</a> +<a name='L1603'></a><a href='#L1603'>1603</a> +<a name='L1604'></a><a href='#L1604'>1604</a> +<a name='L1605'></a><a href='#L1605'>1605</a> +<a name='L1606'></a><a href='#L1606'>1606</a> +<a name='L1607'></a><a href='#L1607'>1607</a> +<a name='L1608'></a><a href='#L1608'>1608</a> +<a name='L1609'></a><a href='#L1609'>1609</a> +<a name='L1610'></a><a href='#L1610'>1610</a> +<a name='L1611'></a><a href='#L1611'>1611</a> +<a name='L1612'></a><a href='#L1612'>1612</a> +<a name='L1613'></a><a href='#L1613'>1613</a> +<a name='L1614'></a><a href='#L1614'>1614</a> +<a name='L1615'></a><a href='#L1615'>1615</a> +<a name='L1616'></a><a href='#L1616'>1616</a> +<a name='L1617'></a><a href='#L1617'>1617</a> +<a name='L1618'></a><a href='#L1618'>1618</a> +<a name='L1619'></a><a href='#L1619'>1619</a> +<a name='L1620'></a><a href='#L1620'>1620</a> +<a name='L1621'></a><a href='#L1621'>1621</a> +<a name='L1622'></a><a href='#L1622'>1622</a> +<a name='L1623'></a><a href='#L1623'>1623</a> +<a name='L1624'></a><a href='#L1624'>1624</a> +<a name='L1625'></a><a href='#L1625'>1625</a> +<a name='L1626'></a><a href='#L1626'>1626</a> +<a name='L1627'></a><a href='#L1627'>1627</a> +<a name='L1628'></a><a href='#L1628'>1628</a> +<a name='L1629'></a><a href='#L1629'>1629</a> +<a name='L1630'></a><a href='#L1630'>1630</a> +<a name='L1631'></a><a href='#L1631'>1631</a> +<a name='L1632'></a><a href='#L1632'>1632</a> +<a name='L1633'></a><a href='#L1633'>1633</a> +<a name='L1634'></a><a href='#L1634'>1634</a> +<a name='L1635'></a><a href='#L1635'>1635</a> +<a name='L1636'></a><a href='#L1636'>1636</a> +<a name='L1637'></a><a href='#L1637'>1637</a> +<a name='L1638'></a><a href='#L1638'>1638</a> +<a name='L1639'></a><a href='#L1639'>1639</a> +<a name='L1640'></a><a href='#L1640'>1640</a> +<a name='L1641'></a><a href='#L1641'>1641</a> +<a name='L1642'></a><a href='#L1642'>1642</a> +<a name='L1643'></a><a href='#L1643'>1643</a> +<a name='L1644'></a><a href='#L1644'>1644</a> +<a name='L1645'></a><a href='#L1645'>1645</a> +<a name='L1646'></a><a href='#L1646'>1646</a> +<a name='L1647'></a><a href='#L1647'>1647</a> +<a name='L1648'></a><a href='#L1648'>1648</a> +<a name='L1649'></a><a href='#L1649'>1649</a> +<a name='L1650'></a><a href='#L1650'>1650</a> +<a name='L1651'></a><a href='#L1651'>1651</a> +<a name='L1652'></a><a href='#L1652'>1652</a> +<a name='L1653'></a><a href='#L1653'>1653</a> +<a name='L1654'></a><a href='#L1654'>1654</a> +<a name='L1655'></a><a href='#L1655'>1655</a> +<a name='L1656'></a><a href='#L1656'>1656</a> +<a name='L1657'></a><a href='#L1657'>1657</a> +<a name='L1658'></a><a href='#L1658'>1658</a> +<a name='L1659'></a><a href='#L1659'>1659</a> +<a name='L1660'></a><a href='#L1660'>1660</a> +<a name='L1661'></a><a href='#L1661'>1661</a> +<a name='L1662'></a><a href='#L1662'>1662</a> +<a name='L1663'></a><a href='#L1663'>1663</a> +<a name='L1664'></a><a href='#L1664'>1664</a> +<a name='L1665'></a><a href='#L1665'>1665</a> +<a name='L1666'></a><a href='#L1666'>1666</a> +<a name='L1667'></a><a href='#L1667'>1667</a> +<a name='L1668'></a><a href='#L1668'>1668</a> +<a name='L1669'></a><a href='#L1669'>1669</a> +<a name='L1670'></a><a href='#L1670'>1670</a> +<a name='L1671'></a><a href='#L1671'>1671</a> +<a name='L1672'></a><a href='#L1672'>1672</a> +<a name='L1673'></a><a href='#L1673'>1673</a> +<a name='L1674'></a><a href='#L1674'>1674</a> +<a name='L1675'></a><a href='#L1675'>1675</a> +<a name='L1676'></a><a href='#L1676'>1676</a> +<a name='L1677'></a><a href='#L1677'>1677</a> +<a name='L1678'></a><a href='#L1678'>1678</a> +<a name='L1679'></a><a href='#L1679'>1679</a> +<a name='L1680'></a><a href='#L1680'>1680</a> +<a name='L1681'></a><a href='#L1681'>1681</a> +<a name='L1682'></a><a href='#L1682'>1682</a> +<a name='L1683'></a><a href='#L1683'>1683</a> +<a name='L1684'></a><a href='#L1684'>1684</a> +<a name='L1685'></a><a href='#L1685'>1685</a> +<a name='L1686'></a><a href='#L1686'>1686</a> +<a name='L1687'></a><a href='#L1687'>1687</a> +<a name='L1688'></a><a href='#L1688'>1688</a> +<a name='L1689'></a><a href='#L1689'>1689</a> +<a name='L1690'></a><a href='#L1690'>1690</a> +<a name='L1691'></a><a href='#L1691'>1691</a> +<a name='L1692'></a><a href='#L1692'>1692</a> +<a name='L1693'></a><a href='#L1693'>1693</a> +<a name='L1694'></a><a href='#L1694'>1694</a> +<a name='L1695'></a><a href='#L1695'>1695</a> +<a name='L1696'></a><a href='#L1696'>1696</a> +<a name='L1697'></a><a href='#L1697'>1697</a> +<a name='L1698'></a><a href='#L1698'>1698</a> +<a name='L1699'></a><a href='#L1699'>1699</a> +<a name='L1700'></a><a href='#L1700'>1700</a> +<a name='L1701'></a><a href='#L1701'>1701</a> +<a name='L1702'></a><a href='#L1702'>1702</a> +<a name='L1703'></a><a href='#L1703'>1703</a> +<a name='L1704'></a><a href='#L1704'>1704</a> +<a name='L1705'></a><a href='#L1705'>1705</a> +<a name='L1706'></a><a href='#L1706'>1706</a> +<a name='L1707'></a><a href='#L1707'>1707</a> +<a name='L1708'></a><a href='#L1708'>1708</a> +<a name='L1709'></a><a href='#L1709'>1709</a> +<a name='L1710'></a><a href='#L1710'>1710</a> +<a name='L1711'></a><a href='#L1711'>1711</a> +<a name='L1712'></a><a href='#L1712'>1712</a> +<a name='L1713'></a><a href='#L1713'>1713</a> +<a name='L1714'></a><a href='#L1714'>1714</a> +<a name='L1715'></a><a href='#L1715'>1715</a> +<a name='L1716'></a><a href='#L1716'>1716</a> +<a name='L1717'></a><a href='#L1717'>1717</a> +<a name='L1718'></a><a href='#L1718'>1718</a> +<a name='L1719'></a><a href='#L1719'>1719</a> +<a name='L1720'></a><a href='#L1720'>1720</a> +<a name='L1721'></a><a href='#L1721'>1721</a> +<a name='L1722'></a><a href='#L1722'>1722</a> +<a name='L1723'></a><a href='#L1723'>1723</a> +<a name='L1724'></a><a href='#L1724'>1724</a> +<a name='L1725'></a><a href='#L1725'>1725</a> +<a name='L1726'></a><a href='#L1726'>1726</a> +<a name='L1727'></a><a href='#L1727'>1727</a> +<a name='L1728'></a><a href='#L1728'>1728</a> +<a name='L1729'></a><a href='#L1729'>1729</a> +<a name='L1730'></a><a href='#L1730'>1730</a> +<a name='L1731'></a><a href='#L1731'>1731</a> +<a name='L1732'></a><a href='#L1732'>1732</a> +<a name='L1733'></a><a href='#L1733'>1733</a> +<a name='L1734'></a><a href='#L1734'>1734</a> +<a name='L1735'></a><a href='#L1735'>1735</a> +<a name='L1736'></a><a href='#L1736'>1736</a> +<a name='L1737'></a><a href='#L1737'>1737</a> +<a name='L1738'></a><a href='#L1738'>1738</a> +<a name='L1739'></a><a href='#L1739'>1739</a> +<a name='L1740'></a><a href='#L1740'>1740</a> +<a name='L1741'></a><a href='#L1741'>1741</a> +<a name='L1742'></a><a href='#L1742'>1742</a> +<a name='L1743'></a><a href='#L1743'>1743</a> +<a name='L1744'></a><a href='#L1744'>1744</a> +<a name='L1745'></a><a href='#L1745'>1745</a> +<a name='L1746'></a><a href='#L1746'>1746</a> +<a name='L1747'></a><a href='#L1747'>1747</a> +<a name='L1748'></a><a href='#L1748'>1748</a> +<a name='L1749'></a><a href='#L1749'>1749</a> +<a name='L1750'></a><a href='#L1750'>1750</a> +<a name='L1751'></a><a href='#L1751'>1751</a> +<a name='L1752'></a><a href='#L1752'>1752</a> +<a name='L1753'></a><a href='#L1753'>1753</a> +<a name='L1754'></a><a href='#L1754'>1754</a> +<a name='L1755'></a><a href='#L1755'>1755</a> +<a name='L1756'></a><a href='#L1756'>1756</a> +<a name='L1757'></a><a href='#L1757'>1757</a> +<a name='L1758'></a><a href='#L1758'>1758</a> +<a name='L1759'></a><a href='#L1759'>1759</a> +<a name='L1760'></a><a href='#L1760'>1760</a> +<a name='L1761'></a><a href='#L1761'>1761</a> +<a name='L1762'></a><a href='#L1762'>1762</a> +<a name='L1763'></a><a href='#L1763'>1763</a> +<a name='L1764'></a><a href='#L1764'>1764</a> +<a name='L1765'></a><a href='#L1765'>1765</a> +<a name='L1766'></a><a href='#L1766'>1766</a> +<a name='L1767'></a><a href='#L1767'>1767</a> +<a name='L1768'></a><a href='#L1768'>1768</a> +<a name='L1769'></a><a href='#L1769'>1769</a> +<a name='L1770'></a><a href='#L1770'>1770</a> +<a name='L1771'></a><a href='#L1771'>1771</a> +<a name='L1772'></a><a href='#L1772'>1772</a> +<a name='L1773'></a><a href='#L1773'>1773</a> +<a name='L1774'></a><a href='#L1774'>1774</a> +<a name='L1775'></a><a href='#L1775'>1775</a> +<a name='L1776'></a><a href='#L1776'>1776</a> +<a name='L1777'></a><a href='#L1777'>1777</a> +<a name='L1778'></a><a href='#L1778'>1778</a> +<a name='L1779'></a><a href='#L1779'>1779</a> +<a name='L1780'></a><a href='#L1780'>1780</a> +<a name='L1781'></a><a href='#L1781'>1781</a> +<a name='L1782'></a><a href='#L1782'>1782</a> +<a name='L1783'></a><a href='#L1783'>1783</a> +<a name='L1784'></a><a href='#L1784'>1784</a> +<a name='L1785'></a><a href='#L1785'>1785</a> +<a name='L1786'></a><a href='#L1786'>1786</a> +<a name='L1787'></a><a href='#L1787'>1787</a> +<a name='L1788'></a><a href='#L1788'>1788</a> +<a name='L1789'></a><a href='#L1789'>1789</a> +<a name='L1790'></a><a href='#L1790'>1790</a> +<a name='L1791'></a><a href='#L1791'>1791</a> +<a name='L1792'></a><a href='#L1792'>1792</a> +<a name='L1793'></a><a href='#L1793'>1793</a> +<a name='L1794'></a><a href='#L1794'>1794</a> +<a name='L1795'></a><a href='#L1795'>1795</a> +<a name='L1796'></a><a href='#L1796'>1796</a> +<a name='L1797'></a><a href='#L1797'>1797</a> +<a name='L1798'></a><a href='#L1798'>1798</a> +<a name='L1799'></a><a href='#L1799'>1799</a> +<a name='L1800'></a><a href='#L1800'>1800</a> +<a name='L1801'></a><a href='#L1801'>1801</a> +<a name='L1802'></a><a href='#L1802'>1802</a> +<a name='L1803'></a><a href='#L1803'>1803</a> +<a name='L1804'></a><a href='#L1804'>1804</a> +<a name='L1805'></a><a href='#L1805'>1805</a> +<a name='L1806'></a><a href='#L1806'>1806</a> +<a name='L1807'></a><a href='#L1807'>1807</a> +<a name='L1808'></a><a href='#L1808'>1808</a> +<a name='L1809'></a><a href='#L1809'>1809</a> +<a name='L1810'></a><a href='#L1810'>1810</a> +<a name='L1811'></a><a href='#L1811'>1811</a> +<a name='L1812'></a><a href='#L1812'>1812</a> +<a name='L1813'></a><a href='#L1813'>1813</a> +<a name='L1814'></a><a href='#L1814'>1814</a> +<a name='L1815'></a><a href='#L1815'>1815</a> +<a name='L1816'></a><a href='#L1816'>1816</a> +<a name='L1817'></a><a href='#L1817'>1817</a> +<a name='L1818'></a><a href='#L1818'>1818</a> +<a name='L1819'></a><a href='#L1819'>1819</a> +<a name='L1820'></a><a href='#L1820'>1820</a> +<a name='L1821'></a><a href='#L1821'>1821</a> +<a name='L1822'></a><a href='#L1822'>1822</a> +<a name='L1823'></a><a href='#L1823'>1823</a> +<a name='L1824'></a><a href='#L1824'>1824</a> +<a name='L1825'></a><a href='#L1825'>1825</a> +<a name='L1826'></a><a href='#L1826'>1826</a> +<a name='L1827'></a><a href='#L1827'>1827</a> +<a name='L1828'></a><a href='#L1828'>1828</a> +<a name='L1829'></a><a href='#L1829'>1829</a> +<a name='L1830'></a><a href='#L1830'>1830</a> +<a name='L1831'></a><a href='#L1831'>1831</a> +<a name='L1832'></a><a href='#L1832'>1832</a> +<a name='L1833'></a><a href='#L1833'>1833</a> +<a name='L1834'></a><a href='#L1834'>1834</a> +<a name='L1835'></a><a href='#L1835'>1835</a> +<a name='L1836'></a><a href='#L1836'>1836</a> +<a name='L1837'></a><a href='#L1837'>1837</a> +<a name='L1838'></a><a href='#L1838'>1838</a> +<a name='L1839'></a><a href='#L1839'>1839</a> +<a name='L1840'></a><a href='#L1840'>1840</a> +<a name='L1841'></a><a href='#L1841'>1841</a> +<a name='L1842'></a><a href='#L1842'>1842</a> +<a name='L1843'></a><a href='#L1843'>1843</a> +<a name='L1844'></a><a href='#L1844'>1844</a> +<a name='L1845'></a><a href='#L1845'>1845</a> +<a name='L1846'></a><a href='#L1846'>1846</a> +<a name='L1847'></a><a href='#L1847'>1847</a> +<a name='L1848'></a><a href='#L1848'>1848</a> +<a name='L1849'></a><a href='#L1849'>1849</a> +<a name='L1850'></a><a href='#L1850'>1850</a> +<a name='L1851'></a><a href='#L1851'>1851</a> +<a name='L1852'></a><a href='#L1852'>1852</a> +<a name='L1853'></a><a href='#L1853'>1853</a> +<a name='L1854'></a><a href='#L1854'>1854</a> +<a name='L1855'></a><a href='#L1855'>1855</a> +<a name='L1856'></a><a href='#L1856'>1856</a> +<a name='L1857'></a><a href='#L1857'>1857</a> +<a name='L1858'></a><a href='#L1858'>1858</a> +<a name='L1859'></a><a href='#L1859'>1859</a> +<a name='L1860'></a><a href='#L1860'>1860</a> +<a name='L1861'></a><a href='#L1861'>1861</a> +<a name='L1862'></a><a href='#L1862'>1862</a> +<a name='L1863'></a><a href='#L1863'>1863</a> +<a name='L1864'></a><a href='#L1864'>1864</a> +<a name='L1865'></a><a href='#L1865'>1865</a> +<a name='L1866'></a><a href='#L1866'>1866</a> +<a name='L1867'></a><a href='#L1867'>1867</a> +<a name='L1868'></a><a href='#L1868'>1868</a> +<a name='L1869'></a><a href='#L1869'>1869</a> +<a name='L1870'></a><a href='#L1870'>1870</a> +<a name='L1871'></a><a href='#L1871'>1871</a> +<a name='L1872'></a><a href='#L1872'>1872</a> +<a name='L1873'></a><a href='#L1873'>1873</a> +<a name='L1874'></a><a href='#L1874'>1874</a> +<a name='L1875'></a><a href='#L1875'>1875</a> +<a name='L1876'></a><a href='#L1876'>1876</a> +<a name='L1877'></a><a href='#L1877'>1877</a> +<a name='L1878'></a><a href='#L1878'>1878</a> +<a name='L1879'></a><a href='#L1879'>1879</a> +<a name='L1880'></a><a href='#L1880'>1880</a> +<a name='L1881'></a><a href='#L1881'>1881</a> +<a name='L1882'></a><a href='#L1882'>1882</a> +<a name='L1883'></a><a href='#L1883'>1883</a> +<a name='L1884'></a><a href='#L1884'>1884</a> +<a name='L1885'></a><a href='#L1885'>1885</a> +<a name='L1886'></a><a href='#L1886'>1886</a> +<a name='L1887'></a><a href='#L1887'>1887</a> +<a name='L1888'></a><a href='#L1888'>1888</a> +<a name='L1889'></a><a href='#L1889'>1889</a> +<a name='L1890'></a><a href='#L1890'>1890</a> +<a name='L1891'></a><a href='#L1891'>1891</a> +<a name='L1892'></a><a href='#L1892'>1892</a> +<a name='L1893'></a><a href='#L1893'>1893</a> +<a name='L1894'></a><a href='#L1894'>1894</a> +<a name='L1895'></a><a href='#L1895'>1895</a> +<a name='L1896'></a><a href='#L1896'>1896</a> +<a name='L1897'></a><a href='#L1897'>1897</a> +<a name='L1898'></a><a href='#L1898'>1898</a> +<a name='L1899'></a><a href='#L1899'>1899</a> +<a name='L1900'></a><a href='#L1900'>1900</a> +<a name='L1901'></a><a href='#L1901'>1901</a> +<a name='L1902'></a><a href='#L1902'>1902</a> +<a name='L1903'></a><a href='#L1903'>1903</a> +<a name='L1904'></a><a href='#L1904'>1904</a> +<a name='L1905'></a><a href='#L1905'>1905</a> +<a name='L1906'></a><a href='#L1906'>1906</a> +<a name='L1907'></a><a href='#L1907'>1907</a> +<a name='L1908'></a><a href='#L1908'>1908</a> +<a name='L1909'></a><a href='#L1909'>1909</a> +<a name='L1910'></a><a href='#L1910'>1910</a> +<a name='L1911'></a><a href='#L1911'>1911</a> +<a name='L1912'></a><a href='#L1912'>1912</a> +<a name='L1913'></a><a href='#L1913'>1913</a> +<a name='L1914'></a><a href='#L1914'>1914</a> +<a name='L1915'></a><a href='#L1915'>1915</a> +<a name='L1916'></a><a href='#L1916'>1916</a> +<a name='L1917'></a><a href='#L1917'>1917</a> +<a name='L1918'></a><a href='#L1918'>1918</a> +<a name='L1919'></a><a href='#L1919'>1919</a> +<a name='L1920'></a><a href='#L1920'>1920</a> +<a name='L1921'></a><a href='#L1921'>1921</a> +<a name='L1922'></a><a href='#L1922'>1922</a> +<a name='L1923'></a><a href='#L1923'>1923</a> +<a name='L1924'></a><a href='#L1924'>1924</a> +<a name='L1925'></a><a href='#L1925'>1925</a> +<a name='L1926'></a><a href='#L1926'>1926</a> +<a name='L1927'></a><a href='#L1927'>1927</a> +<a name='L1928'></a><a href='#L1928'>1928</a> +<a name='L1929'></a><a href='#L1929'>1929</a> +<a name='L1930'></a><a href='#L1930'>1930</a> +<a name='L1931'></a><a href='#L1931'>1931</a> +<a name='L1932'></a><a href='#L1932'>1932</a> +<a name='L1933'></a><a href='#L1933'>1933</a> +<a name='L1934'></a><a href='#L1934'>1934</a> +<a name='L1935'></a><a href='#L1935'>1935</a> +<a name='L1936'></a><a href='#L1936'>1936</a> +<a name='L1937'></a><a href='#L1937'>1937</a> +<a name='L1938'></a><a href='#L1938'>1938</a> +<a name='L1939'></a><a href='#L1939'>1939</a> +<a name='L1940'></a><a href='#L1940'>1940</a> +<a name='L1941'></a><a href='#L1941'>1941</a> +<a name='L1942'></a><a href='#L1942'>1942</a> +<a name='L1943'></a><a href='#L1943'>1943</a> +<a name='L1944'></a><a href='#L1944'>1944</a> +<a name='L1945'></a><a href='#L1945'>1945</a> +<a name='L1946'></a><a href='#L1946'>1946</a> +<a name='L1947'></a><a href='#L1947'>1947</a> +<a name='L1948'></a><a href='#L1948'>1948</a> +<a name='L1949'></a><a href='#L1949'>1949</a> +<a name='L1950'></a><a href='#L1950'>1950</a> +<a name='L1951'></a><a href='#L1951'>1951</a> +<a name='L1952'></a><a href='#L1952'>1952</a> +<a name='L1953'></a><a href='#L1953'>1953</a> +<a name='L1954'></a><a href='#L1954'>1954</a> +<a name='L1955'></a><a href='#L1955'>1955</a> +<a name='L1956'></a><a href='#L1956'>1956</a> +<a name='L1957'></a><a href='#L1957'>1957</a> +<a name='L1958'></a><a href='#L1958'>1958</a> +<a name='L1959'></a><a href='#L1959'>1959</a> +<a name='L1960'></a><a href='#L1960'>1960</a> +<a name='L1961'></a><a href='#L1961'>1961</a> +<a name='L1962'></a><a href='#L1962'>1962</a> +<a name='L1963'></a><a href='#L1963'>1963</a> +<a name='L1964'></a><a href='#L1964'>1964</a> +<a name='L1965'></a><a href='#L1965'>1965</a> +<a name='L1966'></a><a href='#L1966'>1966</a> +<a name='L1967'></a><a href='#L1967'>1967</a> +<a name='L1968'></a><a href='#L1968'>1968</a> +<a name='L1969'></a><a href='#L1969'>1969</a> +<a name='L1970'></a><a href='#L1970'>1970</a> +<a name='L1971'></a><a href='#L1971'>1971</a> +<a name='L1972'></a><a href='#L1972'>1972</a> +<a name='L1973'></a><a href='#L1973'>1973</a> +<a name='L1974'></a><a href='#L1974'>1974</a> +<a name='L1975'></a><a href='#L1975'>1975</a> +<a name='L1976'></a><a href='#L1976'>1976</a> +<a name='L1977'></a><a href='#L1977'>1977</a> +<a name='L1978'></a><a href='#L1978'>1978</a> +<a name='L1979'></a><a href='#L1979'>1979</a> +<a name='L1980'></a><a href='#L1980'>1980</a> +<a name='L1981'></a><a href='#L1981'>1981</a> +<a name='L1982'></a><a href='#L1982'>1982</a> +<a name='L1983'></a><a href='#L1983'>1983</a> +<a name='L1984'></a><a href='#L1984'>1984</a> +<a name='L1985'></a><a href='#L1985'>1985</a> +<a name='L1986'></a><a href='#L1986'>1986</a> +<a name='L1987'></a><a href='#L1987'>1987</a> +<a name='L1988'></a><a href='#L1988'>1988</a> +<a name='L1989'></a><a href='#L1989'>1989</a> +<a name='L1990'></a><a href='#L1990'>1990</a> +<a name='L1991'></a><a href='#L1991'>1991</a> +<a name='L1992'></a><a href='#L1992'>1992</a> +<a name='L1993'></a><a href='#L1993'>1993</a> +<a name='L1994'></a><a href='#L1994'>1994</a> +<a name='L1995'></a><a href='#L1995'>1995</a> +<a name='L1996'></a><a href='#L1996'>1996</a> +<a name='L1997'></a><a href='#L1997'>1997</a> +<a name='L1998'></a><a href='#L1998'>1998</a> +<a name='L1999'></a><a href='#L1999'>1999</a> +<a name='L2000'></a><a href='#L2000'>2000</a> +<a name='L2001'></a><a href='#L2001'>2001</a> +<a name='L2002'></a><a href='#L2002'>2002</a> +<a name='L2003'></a><a href='#L2003'>2003</a> +<a name='L2004'></a><a href='#L2004'>2004</a> +<a name='L2005'></a><a href='#L2005'>2005</a> +<a name='L2006'></a><a href='#L2006'>2006</a> +<a name='L2007'></a><a href='#L2007'>2007</a> +<a name='L2008'></a><a href='#L2008'>2008</a> +<a name='L2009'></a><a href='#L2009'>2009</a> +<a name='L2010'></a><a href='#L2010'>2010</a> +<a name='L2011'></a><a href='#L2011'>2011</a> +<a name='L2012'></a><a href='#L2012'>2012</a> +<a name='L2013'></a><a href='#L2013'>2013</a> +<a name='L2014'></a><a href='#L2014'>2014</a> +<a name='L2015'></a><a href='#L2015'>2015</a> +<a name='L2016'></a><a href='#L2016'>2016</a> +<a name='L2017'></a><a href='#L2017'>2017</a> +<a name='L2018'></a><a href='#L2018'>2018</a> +<a name='L2019'></a><a href='#L2019'>2019</a> +<a name='L2020'></a><a href='#L2020'>2020</a> +<a name='L2021'></a><a href='#L2021'>2021</a> +<a name='L2022'></a><a href='#L2022'>2022</a> +<a name='L2023'></a><a href='#L2023'>2023</a> +<a name='L2024'></a><a href='#L2024'>2024</a> +<a name='L2025'></a><a href='#L2025'>2025</a> +<a name='L2026'></a><a href='#L2026'>2026</a> +<a name='L2027'></a><a href='#L2027'>2027</a> +<a name='L2028'></a><a href='#L2028'>2028</a> +<a name='L2029'></a><a href='#L2029'>2029</a> +<a name='L2030'></a><a href='#L2030'>2030</a> +<a name='L2031'></a><a href='#L2031'>2031</a> +<a name='L2032'></a><a href='#L2032'>2032</a> +<a name='L2033'></a><a href='#L2033'>2033</a> +<a name='L2034'></a><a href='#L2034'>2034</a> +<a name='L2035'></a><a href='#L2035'>2035</a> +<a name='L2036'></a><a href='#L2036'>2036</a> +<a name='L2037'></a><a href='#L2037'>2037</a> +<a name='L2038'></a><a href='#L2038'>2038</a> +<a name='L2039'></a><a href='#L2039'>2039</a> +<a name='L2040'></a><a href='#L2040'>2040</a> +<a name='L2041'></a><a href='#L2041'>2041</a> +<a name='L2042'></a><a href='#L2042'>2042</a> +<a name='L2043'></a><a href='#L2043'>2043</a> +<a name='L2044'></a><a href='#L2044'>2044</a> +<a name='L2045'></a><a href='#L2045'>2045</a> +<a name='L2046'></a><a href='#L2046'>2046</a> +<a name='L2047'></a><a href='#L2047'>2047</a> +<a name='L2048'></a><a href='#L2048'>2048</a> +<a name='L2049'></a><a href='#L2049'>2049</a> +<a name='L2050'></a><a href='#L2050'>2050</a> +<a name='L2051'></a><a href='#L2051'>2051</a> +<a name='L2052'></a><a href='#L2052'>2052</a> +<a name='L2053'></a><a href='#L2053'>2053</a> +<a name='L2054'></a><a href='#L2054'>2054</a> +<a name='L2055'></a><a href='#L2055'>2055</a> +<a name='L2056'></a><a href='#L2056'>2056</a> +<a name='L2057'></a><a href='#L2057'>2057</a> +<a name='L2058'></a><a href='#L2058'>2058</a> +<a name='L2059'></a><a href='#L2059'>2059</a> +<a name='L2060'></a><a href='#L2060'>2060</a> +<a name='L2061'></a><a href='#L2061'>2061</a> +<a name='L2062'></a><a href='#L2062'>2062</a> +<a name='L2063'></a><a href='#L2063'>2063</a> +<a name='L2064'></a><a href='#L2064'>2064</a> +<a name='L2065'></a><a href='#L2065'>2065</a> +<a name='L2066'></a><a href='#L2066'>2066</a> +<a name='L2067'></a><a href='#L2067'>2067</a> +<a name='L2068'></a><a href='#L2068'>2068</a> +<a name='L2069'></a><a href='#L2069'>2069</a> +<a name='L2070'></a><a href='#L2070'>2070</a> +<a name='L2071'></a><a href='#L2071'>2071</a> +<a name='L2072'></a><a href='#L2072'>2072</a> +<a name='L2073'></a><a href='#L2073'>2073</a> +<a name='L2074'></a><a href='#L2074'>2074</a> +<a name='L2075'></a><a href='#L2075'>2075</a> +<a name='L2076'></a><a href='#L2076'>2076</a> +<a name='L2077'></a><a href='#L2077'>2077</a> +<a name='L2078'></a><a href='#L2078'>2078</a> +<a name='L2079'></a><a href='#L2079'>2079</a> +<a name='L2080'></a><a href='#L2080'>2080</a> +<a name='L2081'></a><a href='#L2081'>2081</a> +<a name='L2082'></a><a href='#L2082'>2082</a> +<a name='L2083'></a><a href='#L2083'>2083</a> +<a name='L2084'></a><a href='#L2084'>2084</a> +<a name='L2085'></a><a href='#L2085'>2085</a> +<a name='L2086'></a><a href='#L2086'>2086</a> +<a name='L2087'></a><a href='#L2087'>2087</a> +<a name='L2088'></a><a href='#L2088'>2088</a> +<a name='L2089'></a><a href='#L2089'>2089</a> +<a name='L2090'></a><a href='#L2090'>2090</a> +<a name='L2091'></a><a href='#L2091'>2091</a> +<a name='L2092'></a><a href='#L2092'>2092</a> +<a name='L2093'></a><a href='#L2093'>2093</a> +<a name='L2094'></a><a href='#L2094'>2094</a> +<a name='L2095'></a><a href='#L2095'>2095</a> +<a name='L2096'></a><a href='#L2096'>2096</a> +<a name='L2097'></a><a href='#L2097'>2097</a> +<a name='L2098'></a><a href='#L2098'>2098</a> +<a name='L2099'></a><a href='#L2099'>2099</a> +<a name='L2100'></a><a href='#L2100'>2100</a> +<a name='L2101'></a><a href='#L2101'>2101</a> +<a name='L2102'></a><a href='#L2102'>2102</a> +<a name='L2103'></a><a href='#L2103'>2103</a> +<a name='L2104'></a><a href='#L2104'>2104</a> +<a name='L2105'></a><a href='#L2105'>2105</a> +<a name='L2106'></a><a href='#L2106'>2106</a> +<a name='L2107'></a><a href='#L2107'>2107</a> +<a name='L2108'></a><a href='#L2108'>2108</a> +<a name='L2109'></a><a href='#L2109'>2109</a> +<a name='L2110'></a><a href='#L2110'>2110</a> +<a name='L2111'></a><a href='#L2111'>2111</a> +<a name='L2112'></a><a href='#L2112'>2112</a> +<a name='L2113'></a><a href='#L2113'>2113</a> +<a name='L2114'></a><a href='#L2114'>2114</a> +<a name='L2115'></a><a href='#L2115'>2115</a> +<a name='L2116'></a><a href='#L2116'>2116</a> +<a name='L2117'></a><a href='#L2117'>2117</a> +<a name='L2118'></a><a href='#L2118'>2118</a> +<a name='L2119'></a><a href='#L2119'>2119</a> +<a name='L2120'></a><a href='#L2120'>2120</a> +<a name='L2121'></a><a href='#L2121'>2121</a> +<a name='L2122'></a><a href='#L2122'>2122</a> +<a name='L2123'></a><a href='#L2123'>2123</a> +<a name='L2124'></a><a href='#L2124'>2124</a> +<a name='L2125'></a><a href='#L2125'>2125</a> +<a name='L2126'></a><a href='#L2126'>2126</a> +<a name='L2127'></a><a href='#L2127'>2127</a> +<a name='L2128'></a><a href='#L2128'>2128</a> +<a name='L2129'></a><a href='#L2129'>2129</a> +<a name='L2130'></a><a href='#L2130'>2130</a> +<a name='L2131'></a><a href='#L2131'>2131</a> +<a name='L2132'></a><a href='#L2132'>2132</a> +<a name='L2133'></a><a href='#L2133'>2133</a> +<a name='L2134'></a><a href='#L2134'>2134</a> +<a name='L2135'></a><a href='#L2135'>2135</a> +<a name='L2136'></a><a href='#L2136'>2136</a> +<a name='L2137'></a><a href='#L2137'>2137</a> +<a name='L2138'></a><a href='#L2138'>2138</a> +<a name='L2139'></a><a href='#L2139'>2139</a> +<a name='L2140'></a><a href='#L2140'>2140</a> +<a name='L2141'></a><a href='#L2141'>2141</a> +<a name='L2142'></a><a href='#L2142'>2142</a> +<a name='L2143'></a><a href='#L2143'>2143</a> +<a name='L2144'></a><a href='#L2144'>2144</a> +<a name='L2145'></a><a href='#L2145'>2145</a> +<a name='L2146'></a><a href='#L2146'>2146</a> +<a name='L2147'></a><a href='#L2147'>2147</a> +<a name='L2148'></a><a href='#L2148'>2148</a> +<a name='L2149'></a><a href='#L2149'>2149</a> +<a name='L2150'></a><a href='#L2150'>2150</a> +<a name='L2151'></a><a href='#L2151'>2151</a> +<a name='L2152'></a><a href='#L2152'>2152</a> +<a name='L2153'></a><a href='#L2153'>2153</a> +<a name='L2154'></a><a href='#L2154'>2154</a> +<a name='L2155'></a><a href='#L2155'>2155</a> +<a name='L2156'></a><a href='#L2156'>2156</a> +<a name='L2157'></a><a href='#L2157'>2157</a> +<a name='L2158'></a><a href='#L2158'>2158</a> +<a name='L2159'></a><a href='#L2159'>2159</a> +<a name='L2160'></a><a href='#L2160'>2160</a> +<a name='L2161'></a><a href='#L2161'>2161</a> +<a name='L2162'></a><a href='#L2162'>2162</a> +<a name='L2163'></a><a href='#L2163'>2163</a> +<a name='L2164'></a><a href='#L2164'>2164</a> +<a name='L2165'></a><a href='#L2165'>2165</a> +<a name='L2166'></a><a href='#L2166'>2166</a> +<a name='L2167'></a><a href='#L2167'>2167</a> +<a name='L2168'></a><a href='#L2168'>2168</a> +<a name='L2169'></a><a href='#L2169'>2169</a> +<a name='L2170'></a><a href='#L2170'>2170</a> +<a name='L2171'></a><a href='#L2171'>2171</a> +<a name='L2172'></a><a href='#L2172'>2172</a> +<a name='L2173'></a><a href='#L2173'>2173</a> +<a name='L2174'></a><a href='#L2174'>2174</a> +<a name='L2175'></a><a href='#L2175'>2175</a> +<a name='L2176'></a><a href='#L2176'>2176</a> +<a name='L2177'></a><a href='#L2177'>2177</a> +<a name='L2178'></a><a href='#L2178'>2178</a> +<a name='L2179'></a><a href='#L2179'>2179</a> +<a name='L2180'></a><a href='#L2180'>2180</a> +<a name='L2181'></a><a href='#L2181'>2181</a> +<a name='L2182'></a><a href='#L2182'>2182</a> +<a name='L2183'></a><a href='#L2183'>2183</a> +<a name='L2184'></a><a href='#L2184'>2184</a> +<a name='L2185'></a><a href='#L2185'>2185</a> +<a name='L2186'></a><a href='#L2186'>2186</a> +<a name='L2187'></a><a href='#L2187'>2187</a> +<a name='L2188'></a><a href='#L2188'>2188</a> +<a name='L2189'></a><a href='#L2189'>2189</a> +<a name='L2190'></a><a href='#L2190'>2190</a> +<a name='L2191'></a><a href='#L2191'>2191</a> +<a name='L2192'></a><a href='#L2192'>2192</a> +<a name='L2193'></a><a href='#L2193'>2193</a> +<a name='L2194'></a><a href='#L2194'>2194</a> +<a name='L2195'></a><a href='#L2195'>2195</a> +<a name='L2196'></a><a href='#L2196'>2196</a> +<a name='L2197'></a><a href='#L2197'>2197</a> +<a name='L2198'></a><a href='#L2198'>2198</a> +<a name='L2199'></a><a href='#L2199'>2199</a> +<a name='L2200'></a><a href='#L2200'>2200</a> +<a name='L2201'></a><a href='#L2201'>2201</a> +<a name='L2202'></a><a href='#L2202'>2202</a> +<a name='L2203'></a><a href='#L2203'>2203</a> +<a name='L2204'></a><a href='#L2204'>2204</a> +<a name='L2205'></a><a href='#L2205'>2205</a> +<a name='L2206'></a><a href='#L2206'>2206</a> +<a name='L2207'></a><a href='#L2207'>2207</a> +<a name='L2208'></a><a href='#L2208'>2208</a> +<a name='L2209'></a><a href='#L2209'>2209</a> +<a name='L2210'></a><a href='#L2210'>2210</a> +<a name='L2211'></a><a href='#L2211'>2211</a> +<a name='L2212'></a><a href='#L2212'>2212</a> +<a name='L2213'></a><a href='#L2213'>2213</a> +<a name='L2214'></a><a href='#L2214'>2214</a> +<a name='L2215'></a><a href='#L2215'>2215</a> +<a name='L2216'></a><a href='#L2216'>2216</a> +<a name='L2217'></a><a href='#L2217'>2217</a> +<a name='L2218'></a><a href='#L2218'>2218</a> +<a name='L2219'></a><a href='#L2219'>2219</a> +<a name='L2220'></a><a href='#L2220'>2220</a> +<a name='L2221'></a><a href='#L2221'>2221</a> +<a name='L2222'></a><a href='#L2222'>2222</a> +<a name='L2223'></a><a href='#L2223'>2223</a> +<a name='L2224'></a><a href='#L2224'>2224</a> +<a name='L2225'></a><a href='#L2225'>2225</a> +<a name='L2226'></a><a href='#L2226'>2226</a> +<a name='L2227'></a><a href='#L2227'>2227</a> +<a name='L2228'></a><a href='#L2228'>2228</a> +<a name='L2229'></a><a href='#L2229'>2229</a> +<a name='L2230'></a><a href='#L2230'>2230</a> +<a name='L2231'></a><a href='#L2231'>2231</a> +<a name='L2232'></a><a href='#L2232'>2232</a> +<a name='L2233'></a><a href='#L2233'>2233</a> +<a name='L2234'></a><a href='#L2234'>2234</a> +<a name='L2235'></a><a href='#L2235'>2235</a> +<a name='L2236'></a><a href='#L2236'>2236</a> +<a name='L2237'></a><a href='#L2237'>2237</a> +<a name='L2238'></a><a href='#L2238'>2238</a> +<a name='L2239'></a><a href='#L2239'>2239</a> +<a name='L2240'></a><a href='#L2240'>2240</a> +<a name='L2241'></a><a href='#L2241'>2241</a> +<a name='L2242'></a><a href='#L2242'>2242</a> +<a name='L2243'></a><a href='#L2243'>2243</a> +<a name='L2244'></a><a href='#L2244'>2244</a> +<a name='L2245'></a><a href='#L2245'>2245</a> +<a name='L2246'></a><a href='#L2246'>2246</a> +<a name='L2247'></a><a href='#L2247'>2247</a> +<a name='L2248'></a><a href='#L2248'>2248</a> +<a name='L2249'></a><a href='#L2249'>2249</a> +<a name='L2250'></a><a href='#L2250'>2250</a> +<a name='L2251'></a><a href='#L2251'>2251</a> +<a name='L2252'></a><a href='#L2252'>2252</a> +<a name='L2253'></a><a href='#L2253'>2253</a> +<a name='L2254'></a><a href='#L2254'>2254</a> +<a name='L2255'></a><a href='#L2255'>2255</a> +<a name='L2256'></a><a href='#L2256'>2256</a> +<a name='L2257'></a><a href='#L2257'>2257</a> +<a name='L2258'></a><a href='#L2258'>2258</a> +<a name='L2259'></a><a href='#L2259'>2259</a> +<a name='L2260'></a><a href='#L2260'>2260</a> +<a name='L2261'></a><a href='#L2261'>2261</a> +<a name='L2262'></a><a href='#L2262'>2262</a> +<a name='L2263'></a><a href='#L2263'>2263</a> +<a name='L2264'></a><a href='#L2264'>2264</a> +<a name='L2265'></a><a href='#L2265'>2265</a> +<a name='L2266'></a><a href='#L2266'>2266</a> +<a name='L2267'></a><a href='#L2267'>2267</a> +<a name='L2268'></a><a href='#L2268'>2268</a> +<a name='L2269'></a><a href='#L2269'>2269</a> +<a name='L2270'></a><a href='#L2270'>2270</a> +<a name='L2271'></a><a href='#L2271'>2271</a> +<a name='L2272'></a><a href='#L2272'>2272</a> +<a name='L2273'></a><a href='#L2273'>2273</a> +<a name='L2274'></a><a href='#L2274'>2274</a> +<a name='L2275'></a><a href='#L2275'>2275</a> +<a name='L2276'></a><a href='#L2276'>2276</a> +<a name='L2277'></a><a href='#L2277'>2277</a> +<a name='L2278'></a><a href='#L2278'>2278</a> +<a name='L2279'></a><a href='#L2279'>2279</a> +<a name='L2280'></a><a href='#L2280'>2280</a> +<a name='L2281'></a><a href='#L2281'>2281</a> +<a name='L2282'></a><a href='#L2282'>2282</a> +<a name='L2283'></a><a href='#L2283'>2283</a> +<a name='L2284'></a><a href='#L2284'>2284</a> +<a name='L2285'></a><a href='#L2285'>2285</a> +<a name='L2286'></a><a href='#L2286'>2286</a> +<a name='L2287'></a><a href='#L2287'>2287</a> +<a name='L2288'></a><a href='#L2288'>2288</a> +<a name='L2289'></a><a href='#L2289'>2289</a> +<a name='L2290'></a><a href='#L2290'>2290</a> +<a name='L2291'></a><a href='#L2291'>2291</a> +<a name='L2292'></a><a href='#L2292'>2292</a> +<a name='L2293'></a><a href='#L2293'>2293</a> +<a name='L2294'></a><a href='#L2294'>2294</a> +<a name='L2295'></a><a href='#L2295'>2295</a> +<a name='L2296'></a><a href='#L2296'>2296</a> +<a name='L2297'></a><a href='#L2297'>2297</a> +<a name='L2298'></a><a href='#L2298'>2298</a> +<a name='L2299'></a><a href='#L2299'>2299</a> +<a name='L2300'></a><a href='#L2300'>2300</a> +<a name='L2301'></a><a href='#L2301'>2301</a> +<a name='L2302'></a><a href='#L2302'>2302</a> +<a name='L2303'></a><a href='#L2303'>2303</a> +<a name='L2304'></a><a href='#L2304'>2304</a> +<a name='L2305'></a><a href='#L2305'>2305</a> +<a name='L2306'></a><a href='#L2306'>2306</a> +<a name='L2307'></a><a href='#L2307'>2307</a> +<a name='L2308'></a><a href='#L2308'>2308</a> +<a name='L2309'></a><a href='#L2309'>2309</a> +<a name='L2310'></a><a href='#L2310'>2310</a> +<a name='L2311'></a><a href='#L2311'>2311</a> +<a name='L2312'></a><a href='#L2312'>2312</a> +<a name='L2313'></a><a href='#L2313'>2313</a> +<a name='L2314'></a><a href='#L2314'>2314</a> +<a name='L2315'></a><a href='#L2315'>2315</a> +<a name='L2316'></a><a href='#L2316'>2316</a> +<a name='L2317'></a><a href='#L2317'>2317</a> +<a name='L2318'></a><a href='#L2318'>2318</a> +<a name='L2319'></a><a href='#L2319'>2319</a> +<a name='L2320'></a><a href='#L2320'>2320</a> +<a name='L2321'></a><a href='#L2321'>2321</a> +<a name='L2322'></a><a href='#L2322'>2322</a> +<a name='L2323'></a><a href='#L2323'>2323</a> +<a name='L2324'></a><a href='#L2324'>2324</a> +<a name='L2325'></a><a href='#L2325'>2325</a> +<a name='L2326'></a><a href='#L2326'>2326</a> +<a name='L2327'></a><a href='#L2327'>2327</a> +<a name='L2328'></a><a href='#L2328'>2328</a> +<a name='L2329'></a><a href='#L2329'>2329</a> +<a name='L2330'></a><a href='#L2330'>2330</a> +<a name='L2331'></a><a href='#L2331'>2331</a> +<a name='L2332'></a><a href='#L2332'>2332</a> +<a name='L2333'></a><a href='#L2333'>2333</a> +<a name='L2334'></a><a href='#L2334'>2334</a> +<a name='L2335'></a><a href='#L2335'>2335</a> +<a name='L2336'></a><a href='#L2336'>2336</a> +<a name='L2337'></a><a href='#L2337'>2337</a> +<a name='L2338'></a><a href='#L2338'>2338</a> +<a name='L2339'></a><a href='#L2339'>2339</a> +<a name='L2340'></a><a href='#L2340'>2340</a> +<a name='L2341'></a><a href='#L2341'>2341</a> +<a name='L2342'></a><a href='#L2342'>2342</a> +<a name='L2343'></a><a href='#L2343'>2343</a> +<a name='L2344'></a><a href='#L2344'>2344</a> +<a name='L2345'></a><a href='#L2345'>2345</a> +<a name='L2346'></a><a href='#L2346'>2346</a> +<a name='L2347'></a><a href='#L2347'>2347</a> +<a name='L2348'></a><a href='#L2348'>2348</a> +<a name='L2349'></a><a href='#L2349'>2349</a> +<a name='L2350'></a><a href='#L2350'>2350</a> +<a name='L2351'></a><a href='#L2351'>2351</a> +<a name='L2352'></a><a href='#L2352'>2352</a> +<a name='L2353'></a><a href='#L2353'>2353</a> +<a name='L2354'></a><a href='#L2354'>2354</a> +<a name='L2355'></a><a href='#L2355'>2355</a> +<a name='L2356'></a><a href='#L2356'>2356</a> +<a name='L2357'></a><a href='#L2357'>2357</a> +<a name='L2358'></a><a href='#L2358'>2358</a> +<a name='L2359'></a><a href='#L2359'>2359</a> +<a name='L2360'></a><a href='#L2360'>2360</a> +<a name='L2361'></a><a href='#L2361'>2361</a> +<a name='L2362'></a><a href='#L2362'>2362</a> +<a name='L2363'></a><a href='#L2363'>2363</a> +<a name='L2364'></a><a href='#L2364'>2364</a> +<a name='L2365'></a><a href='#L2365'>2365</a> +<a name='L2366'></a><a href='#L2366'>2366</a> +<a name='L2367'></a><a href='#L2367'>2367</a> +<a name='L2368'></a><a href='#L2368'>2368</a> +<a name='L2369'></a><a href='#L2369'>2369</a> +<a name='L2370'></a><a href='#L2370'>2370</a> +<a name='L2371'></a><a href='#L2371'>2371</a> +<a name='L2372'></a><a href='#L2372'>2372</a> +<a name='L2373'></a><a href='#L2373'>2373</a> +<a name='L2374'></a><a href='#L2374'>2374</a> +<a name='L2375'></a><a href='#L2375'>2375</a> +<a name='L2376'></a><a href='#L2376'>2376</a> +<a name='L2377'></a><a href='#L2377'>2377</a> +<a name='L2378'></a><a href='#L2378'>2378</a> +<a name='L2379'></a><a href='#L2379'>2379</a> +<a name='L2380'></a><a href='#L2380'>2380</a> +<a name='L2381'></a><a href='#L2381'>2381</a> +<a name='L2382'></a><a href='#L2382'>2382</a> +<a name='L2383'></a><a href='#L2383'>2383</a> +<a name='L2384'></a><a href='#L2384'>2384</a> +<a name='L2385'></a><a href='#L2385'>2385</a> +<a name='L2386'></a><a href='#L2386'>2386</a> +<a name='L2387'></a><a href='#L2387'>2387</a> +<a name='L2388'></a><a href='#L2388'>2388</a> +<a name='L2389'></a><a href='#L2389'>2389</a> +<a name='L2390'></a><a href='#L2390'>2390</a> +<a name='L2391'></a><a href='#L2391'>2391</a> +<a name='L2392'></a><a href='#L2392'>2392</a> +<a name='L2393'></a><a href='#L2393'>2393</a> +<a name='L2394'></a><a href='#L2394'>2394</a> +<a name='L2395'></a><a href='#L2395'>2395</a> +<a name='L2396'></a><a href='#L2396'>2396</a> +<a name='L2397'></a><a href='#L2397'>2397</a> +<a name='L2398'></a><a href='#L2398'>2398</a> +<a name='L2399'></a><a href='#L2399'>2399</a> +<a name='L2400'></a><a href='#L2400'>2400</a> +<a name='L2401'></a><a href='#L2401'>2401</a> +<a name='L2402'></a><a href='#L2402'>2402</a> +<a name='L2403'></a><a href='#L2403'>2403</a> +<a name='L2404'></a><a href='#L2404'>2404</a> +<a name='L2405'></a><a href='#L2405'>2405</a> +<a name='L2406'></a><a href='#L2406'>2406</a> +<a name='L2407'></a><a href='#L2407'>2407</a> +<a name='L2408'></a><a href='#L2408'>2408</a> +<a name='L2409'></a><a href='#L2409'>2409</a> +<a name='L2410'></a><a href='#L2410'>2410</a> +<a name='L2411'></a><a href='#L2411'>2411</a> +<a name='L2412'></a><a href='#L2412'>2412</a> +<a name='L2413'></a><a href='#L2413'>2413</a> +<a name='L2414'></a><a href='#L2414'>2414</a> +<a name='L2415'></a><a href='#L2415'>2415</a> +<a name='L2416'></a><a href='#L2416'>2416</a> +<a name='L2417'></a><a href='#L2417'>2417</a> +<a name='L2418'></a><a href='#L2418'>2418</a> +<a name='L2419'></a><a href='#L2419'>2419</a> +<a name='L2420'></a><a href='#L2420'>2420</a> +<a name='L2421'></a><a href='#L2421'>2421</a> +<a name='L2422'></a><a href='#L2422'>2422</a> +<a name='L2423'></a><a href='#L2423'>2423</a> +<a name='L2424'></a><a href='#L2424'>2424</a> +<a name='L2425'></a><a href='#L2425'>2425</a> +<a name='L2426'></a><a href='#L2426'>2426</a> +<a name='L2427'></a><a href='#L2427'>2427</a> +<a name='L2428'></a><a href='#L2428'>2428</a> +<a name='L2429'></a><a href='#L2429'>2429</a> +<a name='L2430'></a><a href='#L2430'>2430</a> +<a name='L2431'></a><a href='#L2431'>2431</a> +<a name='L2432'></a><a href='#L2432'>2432</a> +<a name='L2433'></a><a href='#L2433'>2433</a> +<a name='L2434'></a><a href='#L2434'>2434</a> +<a name='L2435'></a><a href='#L2435'>2435</a> +<a name='L2436'></a><a href='#L2436'>2436</a> +<a name='L2437'></a><a href='#L2437'>2437</a> +<a name='L2438'></a><a href='#L2438'>2438</a> +<a name='L2439'></a><a href='#L2439'>2439</a> +<a name='L2440'></a><a href='#L2440'>2440</a> +<a name='L2441'></a><a href='#L2441'>2441</a> +<a name='L2442'></a><a href='#L2442'>2442</a> +<a name='L2443'></a><a href='#L2443'>2443</a> +<a name='L2444'></a><a href='#L2444'>2444</a> +<a name='L2445'></a><a href='#L2445'>2445</a> +<a name='L2446'></a><a href='#L2446'>2446</a> +<a name='L2447'></a><a href='#L2447'>2447</a> +<a name='L2448'></a><a href='#L2448'>2448</a> +<a name='L2449'></a><a href='#L2449'>2449</a> +<a name='L2450'></a><a href='#L2450'>2450</a> +<a name='L2451'></a><a href='#L2451'>2451</a> +<a name='L2452'></a><a href='#L2452'>2452</a> +<a name='L2453'></a><a href='#L2453'>2453</a> +<a name='L2454'></a><a href='#L2454'>2454</a> +<a name='L2455'></a><a href='#L2455'>2455</a> +<a name='L2456'></a><a href='#L2456'>2456</a> +<a name='L2457'></a><a href='#L2457'>2457</a> +<a name='L2458'></a><a href='#L2458'>2458</a> +<a name='L2459'></a><a href='#L2459'>2459</a> +<a name='L2460'></a><a href='#L2460'>2460</a> +<a name='L2461'></a><a href='#L2461'>2461</a> +<a name='L2462'></a><a href='#L2462'>2462</a> +<a name='L2463'></a><a href='#L2463'>2463</a> +<a name='L2464'></a><a href='#L2464'>2464</a> +<a name='L2465'></a><a href='#L2465'>2465</a> +<a name='L2466'></a><a href='#L2466'>2466</a> +<a name='L2467'></a><a href='#L2467'>2467</a> +<a name='L2468'></a><a href='#L2468'>2468</a> +<a name='L2469'></a><a href='#L2469'>2469</a> +<a name='L2470'></a><a href='#L2470'>2470</a> +<a name='L2471'></a><a href='#L2471'>2471</a> +<a name='L2472'></a><a href='#L2472'>2472</a> +<a name='L2473'></a><a href='#L2473'>2473</a> +<a name='L2474'></a><a href='#L2474'>2474</a> +<a name='L2475'></a><a href='#L2475'>2475</a> +<a name='L2476'></a><a href='#L2476'>2476</a> +<a name='L2477'></a><a href='#L2477'>2477</a> +<a name='L2478'></a><a href='#L2478'>2478</a> +<a name='L2479'></a><a href='#L2479'>2479</a> +<a name='L2480'></a><a href='#L2480'>2480</a> +<a name='L2481'></a><a href='#L2481'>2481</a> +<a name='L2482'></a><a href='#L2482'>2482</a> +<a name='L2483'></a><a href='#L2483'>2483</a> +<a name='L2484'></a><a href='#L2484'>2484</a> +<a name='L2485'></a><a href='#L2485'>2485</a> +<a name='L2486'></a><a href='#L2486'>2486</a> +<a name='L2487'></a><a href='#L2487'>2487</a> +<a name='L2488'></a><a href='#L2488'>2488</a> +<a name='L2489'></a><a href='#L2489'>2489</a> +<a name='L2490'></a><a href='#L2490'>2490</a> +<a name='L2491'></a><a href='#L2491'>2491</a> +<a name='L2492'></a><a href='#L2492'>2492</a> +<a name='L2493'></a><a href='#L2493'>2493</a> +<a name='L2494'></a><a href='#L2494'>2494</a> +<a name='L2495'></a><a href='#L2495'>2495</a> +<a name='L2496'></a><a href='#L2496'>2496</a> +<a name='L2497'></a><a href='#L2497'>2497</a> +<a name='L2498'></a><a href='#L2498'>2498</a> +<a name='L2499'></a><a href='#L2499'>2499</a> +<a name='L2500'></a><a href='#L2500'>2500</a> +<a name='L2501'></a><a href='#L2501'>2501</a> +<a name='L2502'></a><a href='#L2502'>2502</a> +<a name='L2503'></a><a href='#L2503'>2503</a> +<a name='L2504'></a><a href='#L2504'>2504</a> +<a name='L2505'></a><a href='#L2505'>2505</a> +<a name='L2506'></a><a href='#L2506'>2506</a> +<a name='L2507'></a><a href='#L2507'>2507</a> +<a name='L2508'></a><a href='#L2508'>2508</a> +<a name='L2509'></a><a href='#L2509'>2509</a> +<a name='L2510'></a><a href='#L2510'>2510</a> +<a name='L2511'></a><a href='#L2511'>2511</a> +<a name='L2512'></a><a href='#L2512'>2512</a> +<a name='L2513'></a><a href='#L2513'>2513</a> +<a name='L2514'></a><a href='#L2514'>2514</a> +<a name='L2515'></a><a href='#L2515'>2515</a> +<a name='L2516'></a><a href='#L2516'>2516</a> +<a name='L2517'></a><a href='#L2517'>2517</a> +<a name='L2518'></a><a href='#L2518'>2518</a> +<a name='L2519'></a><a href='#L2519'>2519</a> +<a name='L2520'></a><a href='#L2520'>2520</a> +<a name='L2521'></a><a href='#L2521'>2521</a> +<a name='L2522'></a><a href='#L2522'>2522</a> +<a name='L2523'></a><a href='#L2523'>2523</a> +<a name='L2524'></a><a href='#L2524'>2524</a> +<a name='L2525'></a><a href='#L2525'>2525</a> +<a name='L2526'></a><a href='#L2526'>2526</a> +<a name='L2527'></a><a href='#L2527'>2527</a> +<a name='L2528'></a><a href='#L2528'>2528</a> +<a name='L2529'></a><a href='#L2529'>2529</a> +<a name='L2530'></a><a href='#L2530'>2530</a> +<a name='L2531'></a><a href='#L2531'>2531</a> +<a name='L2532'></a><a href='#L2532'>2532</a> +<a name='L2533'></a><a href='#L2533'>2533</a> +<a name='L2534'></a><a href='#L2534'>2534</a> +<a name='L2535'></a><a href='#L2535'>2535</a> +<a name='L2536'></a><a href='#L2536'>2536</a> +<a name='L2537'></a><a href='#L2537'>2537</a> +<a name='L2538'></a><a href='#L2538'>2538</a> +<a name='L2539'></a><a href='#L2539'>2539</a> +<a name='L2540'></a><a href='#L2540'>2540</a> +<a name='L2541'></a><a href='#L2541'>2541</a> +<a name='L2542'></a><a href='#L2542'>2542</a> +<a name='L2543'></a><a href='#L2543'>2543</a> +<a name='L2544'></a><a href='#L2544'>2544</a> +<a name='L2545'></a><a href='#L2545'>2545</a> +<a name='L2546'></a><a href='#L2546'>2546</a> +<a name='L2547'></a><a href='#L2547'>2547</a> +<a name='L2548'></a><a href='#L2548'>2548</a> +<a name='L2549'></a><a href='#L2549'>2549</a> +<a name='L2550'></a><a href='#L2550'>2550</a> +<a name='L2551'></a><a href='#L2551'>2551</a> +<a name='L2552'></a><a href='#L2552'>2552</a> +<a name='L2553'></a><a href='#L2553'>2553</a> +<a name='L2554'></a><a href='#L2554'>2554</a> +<a name='L2555'></a><a href='#L2555'>2555</a> +<a name='L2556'></a><a href='#L2556'>2556</a> +<a name='L2557'></a><a href='#L2557'>2557</a> +<a name='L2558'></a><a href='#L2558'>2558</a> +<a name='L2559'></a><a href='#L2559'>2559</a> +<a name='L2560'></a><a href='#L2560'>2560</a> +<a name='L2561'></a><a href='#L2561'>2561</a> +<a name='L2562'></a><a href='#L2562'>2562</a> +<a name='L2563'></a><a href='#L2563'>2563</a> +<a name='L2564'></a><a href='#L2564'>2564</a> +<a name='L2565'></a><a href='#L2565'>2565</a> +<a name='L2566'></a><a href='#L2566'>2566</a> +<a name='L2567'></a><a href='#L2567'>2567</a> +<a name='L2568'></a><a href='#L2568'>2568</a> +<a name='L2569'></a><a href='#L2569'>2569</a> +<a name='L2570'></a><a href='#L2570'>2570</a> +<a name='L2571'></a><a href='#L2571'>2571</a> +<a name='L2572'></a><a href='#L2572'>2572</a> +<a name='L2573'></a><a href='#L2573'>2573</a> +<a name='L2574'></a><a href='#L2574'>2574</a> +<a name='L2575'></a><a href='#L2575'>2575</a> +<a name='L2576'></a><a href='#L2576'>2576</a> +<a name='L2577'></a><a href='#L2577'>2577</a> +<a name='L2578'></a><a href='#L2578'>2578</a> +<a name='L2579'></a><a href='#L2579'>2579</a> +<a name='L2580'></a><a href='#L2580'>2580</a> +<a name='L2581'></a><a href='#L2581'>2581</a> +<a name='L2582'></a><a href='#L2582'>2582</a> +<a name='L2583'></a><a href='#L2583'>2583</a> +<a name='L2584'></a><a href='#L2584'>2584</a> +<a name='L2585'></a><a href='#L2585'>2585</a> +<a name='L2586'></a><a href='#L2586'>2586</a> +<a name='L2587'></a><a href='#L2587'>2587</a> +<a name='L2588'></a><a href='#L2588'>2588</a> +<a name='L2589'></a><a href='#L2589'>2589</a> +<a name='L2590'></a><a href='#L2590'>2590</a> +<a name='L2591'></a><a href='#L2591'>2591</a> +<a name='L2592'></a><a href='#L2592'>2592</a> +<a name='L2593'></a><a href='#L2593'>2593</a> +<a name='L2594'></a><a href='#L2594'>2594</a> +<a name='L2595'></a><a href='#L2595'>2595</a> +<a name='L2596'></a><a href='#L2596'>2596</a> +<a name='L2597'></a><a href='#L2597'>2597</a> +<a name='L2598'></a><a href='#L2598'>2598</a> +<a name='L2599'></a><a href='#L2599'>2599</a> +<a name='L2600'></a><a href='#L2600'>2600</a> +<a name='L2601'></a><a href='#L2601'>2601</a> +<a name='L2602'></a><a href='#L2602'>2602</a> +<a name='L2603'></a><a href='#L2603'>2603</a> +<a name='L2604'></a><a href='#L2604'>2604</a> +<a name='L2605'></a><a href='#L2605'>2605</a> +<a name='L2606'></a><a href='#L2606'>2606</a> +<a name='L2607'></a><a href='#L2607'>2607</a> +<a name='L2608'></a><a href='#L2608'>2608</a> +<a name='L2609'></a><a href='#L2609'>2609</a> +<a name='L2610'></a><a href='#L2610'>2610</a> +<a name='L2611'></a><a href='#L2611'>2611</a> +<a name='L2612'></a><a href='#L2612'>2612</a> +<a name='L2613'></a><a href='#L2613'>2613</a> +<a name='L2614'></a><a href='#L2614'>2614</a> +<a name='L2615'></a><a href='#L2615'>2615</a> +<a name='L2616'></a><a href='#L2616'>2616</a> +<a name='L2617'></a><a href='#L2617'>2617</a> +<a name='L2618'></a><a href='#L2618'>2618</a> +<a name='L2619'></a><a href='#L2619'>2619</a> +<a name='L2620'></a><a href='#L2620'>2620</a> +<a name='L2621'></a><a href='#L2621'>2621</a> +<a name='L2622'></a><a href='#L2622'>2622</a> +<a name='L2623'></a><a href='#L2623'>2623</a> +<a name='L2624'></a><a href='#L2624'>2624</a> +<a name='L2625'></a><a href='#L2625'>2625</a> +<a name='L2626'></a><a href='#L2626'>2626</a> +<a name='L2627'></a><a href='#L2627'>2627</a> +<a name='L2628'></a><a href='#L2628'>2628</a> +<a name='L2629'></a><a href='#L2629'>2629</a> +<a name='L2630'></a><a href='#L2630'>2630</a> +<a name='L2631'></a><a href='#L2631'>2631</a> +<a name='L2632'></a><a href='#L2632'>2632</a> +<a name='L2633'></a><a href='#L2633'>2633</a> +<a name='L2634'></a><a href='#L2634'>2634</a> +<a name='L2635'></a><a href='#L2635'>2635</a> +<a name='L2636'></a><a href='#L2636'>2636</a> +<a name='L2637'></a><a href='#L2637'>2637</a> +<a name='L2638'></a><a href='#L2638'>2638</a> +<a name='L2639'></a><a href='#L2639'>2639</a> +<a name='L2640'></a><a href='#L2640'>2640</a> +<a name='L2641'></a><a href='#L2641'>2641</a> +<a name='L2642'></a><a href='#L2642'>2642</a> +<a name='L2643'></a><a href='#L2643'>2643</a> +<a name='L2644'></a><a href='#L2644'>2644</a> +<a name='L2645'></a><a href='#L2645'>2645</a> +<a name='L2646'></a><a href='#L2646'>2646</a> +<a name='L2647'></a><a href='#L2647'>2647</a> +<a name='L2648'></a><a href='#L2648'>2648</a> +<a name='L2649'></a><a href='#L2649'>2649</a> +<a name='L2650'></a><a href='#L2650'>2650</a> +<a name='L2651'></a><a href='#L2651'>2651</a> +<a name='L2652'></a><a href='#L2652'>2652</a> +<a name='L2653'></a><a href='#L2653'>2653</a> +<a name='L2654'></a><a href='#L2654'>2654</a> +<a name='L2655'></a><a href='#L2655'>2655</a> +<a name='L2656'></a><a href='#L2656'>2656</a> +<a name='L2657'></a><a href='#L2657'>2657</a> +<a name='L2658'></a><a href='#L2658'>2658</a> +<a name='L2659'></a><a href='#L2659'>2659</a> +<a name='L2660'></a><a href='#L2660'>2660</a> +<a name='L2661'></a><a href='#L2661'>2661</a> +<a name='L2662'></a><a href='#L2662'>2662</a> +<a name='L2663'></a><a href='#L2663'>2663</a> +<a name='L2664'></a><a href='#L2664'>2664</a> +<a name='L2665'></a><a href='#L2665'>2665</a> +<a name='L2666'></a><a href='#L2666'>2666</a> +<a name='L2667'></a><a href='#L2667'>2667</a> +<a name='L2668'></a><a href='#L2668'>2668</a> +<a name='L2669'></a><a href='#L2669'>2669</a> +<a name='L2670'></a><a href='#L2670'>2670</a> +<a name='L2671'></a><a href='#L2671'>2671</a> +<a name='L2672'></a><a href='#L2672'>2672</a> +<a name='L2673'></a><a href='#L2673'>2673</a> +<a name='L2674'></a><a href='#L2674'>2674</a> +<a name='L2675'></a><a href='#L2675'>2675</a> +<a name='L2676'></a><a href='#L2676'>2676</a> +<a name='L2677'></a><a href='#L2677'>2677</a> +<a name='L2678'></a><a href='#L2678'>2678</a> +<a name='L2679'></a><a href='#L2679'>2679</a> +<a name='L2680'></a><a href='#L2680'>2680</a> +<a name='L2681'></a><a href='#L2681'>2681</a> +<a name='L2682'></a><a href='#L2682'>2682</a> +<a name='L2683'></a><a href='#L2683'>2683</a> +<a name='L2684'></a><a href='#L2684'>2684</a> +<a name='L2685'></a><a href='#L2685'>2685</a> +<a name='L2686'></a><a href='#L2686'>2686</a> +<a name='L2687'></a><a href='#L2687'>2687</a> +<a name='L2688'></a><a href='#L2688'>2688</a> +<a name='L2689'></a><a href='#L2689'>2689</a> +<a name='L2690'></a><a href='#L2690'>2690</a> +<a name='L2691'></a><a href='#L2691'>2691</a> +<a name='L2692'></a><a href='#L2692'>2692</a> +<a name='L2693'></a><a href='#L2693'>2693</a> +<a name='L2694'></a><a href='#L2694'>2694</a> +<a name='L2695'></a><a href='#L2695'>2695</a> +<a name='L2696'></a><a href='#L2696'>2696</a> +<a name='L2697'></a><a href='#L2697'>2697</a> +<a name='L2698'></a><a href='#L2698'>2698</a> +<a name='L2699'></a><a href='#L2699'>2699</a> +<a name='L2700'></a><a href='#L2700'>2700</a> +<a name='L2701'></a><a href='#L2701'>2701</a> +<a name='L2702'></a><a href='#L2702'>2702</a> +<a name='L2703'></a><a href='#L2703'>2703</a> +<a name='L2704'></a><a href='#L2704'>2704</a> +<a name='L2705'></a><a href='#L2705'>2705</a> +<a name='L2706'></a><a href='#L2706'>2706</a> +<a name='L2707'></a><a href='#L2707'>2707</a> +<a name='L2708'></a><a href='#L2708'>2708</a> +<a name='L2709'></a><a href='#L2709'>2709</a> +<a name='L2710'></a><a href='#L2710'>2710</a> +<a name='L2711'></a><a href='#L2711'>2711</a> +<a name='L2712'></a><a href='#L2712'>2712</a> +<a name='L2713'></a><a href='#L2713'>2713</a> +<a name='L2714'></a><a href='#L2714'>2714</a> +<a name='L2715'></a><a href='#L2715'>2715</a> +<a name='L2716'></a><a href='#L2716'>2716</a> +<a name='L2717'></a><a href='#L2717'>2717</a> +<a name='L2718'></a><a href='#L2718'>2718</a> +<a name='L2719'></a><a href='#L2719'>2719</a> +<a name='L2720'></a><a href='#L2720'>2720</a> +<a name='L2721'></a><a href='#L2721'>2721</a> +<a name='L2722'></a><a href='#L2722'>2722</a> +<a name='L2723'></a><a href='#L2723'>2723</a> +<a name='L2724'></a><a href='#L2724'>2724</a> +<a name='L2725'></a><a href='#L2725'>2725</a> +<a name='L2726'></a><a href='#L2726'>2726</a> +<a name='L2727'></a><a href='#L2727'>2727</a> +<a name='L2728'></a><a href='#L2728'>2728</a> +<a name='L2729'></a><a href='#L2729'>2729</a> +<a name='L2730'></a><a href='#L2730'>2730</a> +<a name='L2731'></a><a href='#L2731'>2731</a> +<a name='L2732'></a><a href='#L2732'>2732</a> +<a name='L2733'></a><a href='#L2733'>2733</a> +<a name='L2734'></a><a href='#L2734'>2734</a> +<a name='L2735'></a><a href='#L2735'>2735</a> +<a name='L2736'></a><a href='#L2736'>2736</a> +<a name='L2737'></a><a href='#L2737'>2737</a> +<a name='L2738'></a><a href='#L2738'>2738</a> +<a name='L2739'></a><a href='#L2739'>2739</a> +<a name='L2740'></a><a href='#L2740'>2740</a> +<a name='L2741'></a><a href='#L2741'>2741</a> +<a name='L2742'></a><a href='#L2742'>2742</a> +<a name='L2743'></a><a href='#L2743'>2743</a> +<a name='L2744'></a><a href='#L2744'>2744</a> +<a name='L2745'></a><a href='#L2745'>2745</a> +<a name='L2746'></a><a href='#L2746'>2746</a> +<a name='L2747'></a><a href='#L2747'>2747</a> +<a name='L2748'></a><a href='#L2748'>2748</a> +<a name='L2749'></a><a href='#L2749'>2749</a> +<a name='L2750'></a><a href='#L2750'>2750</a> +<a name='L2751'></a><a href='#L2751'>2751</a> +<a name='L2752'></a><a href='#L2752'>2752</a> +<a name='L2753'></a><a href='#L2753'>2753</a> +<a name='L2754'></a><a href='#L2754'>2754</a> +<a name='L2755'></a><a href='#L2755'>2755</a> +<a name='L2756'></a><a href='#L2756'>2756</a> +<a name='L2757'></a><a href='#L2757'>2757</a> +<a name='L2758'></a><a href='#L2758'>2758</a> +<a name='L2759'></a><a href='#L2759'>2759</a> +<a name='L2760'></a><a href='#L2760'>2760</a> +<a name='L2761'></a><a href='#L2761'>2761</a> +<a name='L2762'></a><a href='#L2762'>2762</a> +<a name='L2763'></a><a href='#L2763'>2763</a> +<a name='L2764'></a><a href='#L2764'>2764</a> +<a name='L2765'></a><a href='#L2765'>2765</a> +<a name='L2766'></a><a href='#L2766'>2766</a> +<a name='L2767'></a><a href='#L2767'>2767</a> +<a name='L2768'></a><a href='#L2768'>2768</a> +<a name='L2769'></a><a href='#L2769'>2769</a> +<a name='L2770'></a><a href='#L2770'>2770</a> +<a name='L2771'></a><a href='#L2771'>2771</a> +<a name='L2772'></a><a href='#L2772'>2772</a> +<a name='L2773'></a><a href='#L2773'>2773</a> +<a name='L2774'></a><a href='#L2774'>2774</a> +<a name='L2775'></a><a href='#L2775'>2775</a> +<a name='L2776'></a><a href='#L2776'>2776</a> +<a name='L2777'></a><a href='#L2777'>2777</a> +<a name='L2778'></a><a href='#L2778'>2778</a> +<a name='L2779'></a><a href='#L2779'>2779</a> +<a name='L2780'></a><a href='#L2780'>2780</a> +<a name='L2781'></a><a href='#L2781'>2781</a> +<a name='L2782'></a><a href='#L2782'>2782</a> +<a name='L2783'></a><a href='#L2783'>2783</a> +<a name='L2784'></a><a href='#L2784'>2784</a> +<a name='L2785'></a><a href='#L2785'>2785</a> +<a name='L2786'></a><a href='#L2786'>2786</a> +<a name='L2787'></a><a href='#L2787'>2787</a> +<a name='L2788'></a><a href='#L2788'>2788</a> +<a name='L2789'></a><a href='#L2789'>2789</a> +<a name='L2790'></a><a href='#L2790'>2790</a> +<a name='L2791'></a><a href='#L2791'>2791</a> +<a name='L2792'></a><a href='#L2792'>2792</a> +<a name='L2793'></a><a href='#L2793'>2793</a> +<a name='L2794'></a><a href='#L2794'>2794</a> +<a name='L2795'></a><a href='#L2795'>2795</a> +<a name='L2796'></a><a href='#L2796'>2796</a> +<a name='L2797'></a><a href='#L2797'>2797</a> +<a name='L2798'></a><a href='#L2798'>2798</a> +<a name='L2799'></a><a href='#L2799'>2799</a> +<a name='L2800'></a><a href='#L2800'>2800</a> +<a name='L2801'></a><a href='#L2801'>2801</a> +<a name='L2802'></a><a href='#L2802'>2802</a> +<a name='L2803'></a><a href='#L2803'>2803</a> +<a name='L2804'></a><a href='#L2804'>2804</a> +<a name='L2805'></a><a href='#L2805'>2805</a> +<a name='L2806'></a><a href='#L2806'>2806</a> +<a name='L2807'></a><a href='#L2807'>2807</a> +<a name='L2808'></a><a href='#L2808'>2808</a> +<a name='L2809'></a><a href='#L2809'>2809</a> +<a name='L2810'></a><a href='#L2810'>2810</a> +<a name='L2811'></a><a href='#L2811'>2811</a> +<a name='L2812'></a><a href='#L2812'>2812</a> +<a name='L2813'></a><a href='#L2813'>2813</a> +<a name='L2814'></a><a href='#L2814'>2814</a> +<a name='L2815'></a><a href='#L2815'>2815</a> +<a name='L2816'></a><a href='#L2816'>2816</a> +<a name='L2817'></a><a href='#L2817'>2817</a> +<a name='L2818'></a><a href='#L2818'>2818</a> +<a name='L2819'></a><a href='#L2819'>2819</a> +<a name='L2820'></a><a href='#L2820'>2820</a> +<a name='L2821'></a><a href='#L2821'>2821</a> +<a name='L2822'></a><a href='#L2822'>2822</a> +<a name='L2823'></a><a href='#L2823'>2823</a> +<a name='L2824'></a><a href='#L2824'>2824</a> +<a name='L2825'></a><a href='#L2825'>2825</a> +<a name='L2826'></a><a href='#L2826'>2826</a> +<a name='L2827'></a><a href='#L2827'>2827</a> +<a name='L2828'></a><a href='#L2828'>2828</a> +<a name='L2829'></a><a href='#L2829'>2829</a> +<a name='L2830'></a><a href='#L2830'>2830</a> +<a name='L2831'></a><a href='#L2831'>2831</a> +<a name='L2832'></a><a href='#L2832'>2832</a> +<a name='L2833'></a><a href='#L2833'>2833</a> +<a name='L2834'></a><a href='#L2834'>2834</a> +<a name='L2835'></a><a href='#L2835'>2835</a> +<a name='L2836'></a><a href='#L2836'>2836</a> +<a name='L2837'></a><a href='#L2837'>2837</a> +<a name='L2838'></a><a href='#L2838'>2838</a> +<a name='L2839'></a><a href='#L2839'>2839</a> +<a name='L2840'></a><a href='#L2840'>2840</a> +<a name='L2841'></a><a href='#L2841'>2841</a> +<a name='L2842'></a><a href='#L2842'>2842</a> +<a name='L2843'></a><a href='#L2843'>2843</a> +<a name='L2844'></a><a href='#L2844'>2844</a> +<a name='L2845'></a><a href='#L2845'>2845</a> +<a name='L2846'></a><a href='#L2846'>2846</a> +<a name='L2847'></a><a href='#L2847'>2847</a> +<a name='L2848'></a><a href='#L2848'>2848</a> +<a name='L2849'></a><a href='#L2849'>2849</a> +<a name='L2850'></a><a href='#L2850'>2850</a> +<a name='L2851'></a><a href='#L2851'>2851</a> +<a name='L2852'></a><a href='#L2852'>2852</a> +<a name='L2853'></a><a href='#L2853'>2853</a> +<a name='L2854'></a><a href='#L2854'>2854</a> +<a name='L2855'></a><a href='#L2855'>2855</a> +<a name='L2856'></a><a href='#L2856'>2856</a> +<a name='L2857'></a><a href='#L2857'>2857</a> +<a name='L2858'></a><a href='#L2858'>2858</a> +<a name='L2859'></a><a href='#L2859'>2859</a> +<a name='L2860'></a><a href='#L2860'>2860</a> +<a name='L2861'></a><a href='#L2861'>2861</a> +<a name='L2862'></a><a href='#L2862'>2862</a> +<a name='L2863'></a><a href='#L2863'>2863</a> +<a name='L2864'></a><a href='#L2864'>2864</a> +<a name='L2865'></a><a href='#L2865'>2865</a> +<a name='L2866'></a><a href='#L2866'>2866</a> +<a name='L2867'></a><a href='#L2867'>2867</a> +<a name='L2868'></a><a href='#L2868'>2868</a> +<a name='L2869'></a><a href='#L2869'>2869</a> +<a name='L2870'></a><a href='#L2870'>2870</a> +<a name='L2871'></a><a href='#L2871'>2871</a> +<a name='L2872'></a><a href='#L2872'>2872</a> +<a name='L2873'></a><a href='#L2873'>2873</a> +<a name='L2874'></a><a href='#L2874'>2874</a> +<a name='L2875'></a><a href='#L2875'>2875</a> +<a name='L2876'></a><a href='#L2876'>2876</a> +<a name='L2877'></a><a href='#L2877'>2877</a> +<a name='L2878'></a><a href='#L2878'>2878</a> +<a name='L2879'></a><a href='#L2879'>2879</a> +<a name='L2880'></a><a href='#L2880'>2880</a> +<a name='L2881'></a><a href='#L2881'>2881</a> +<a name='L2882'></a><a href='#L2882'>2882</a> +<a name='L2883'></a><a href='#L2883'>2883</a> +<a name='L2884'></a><a href='#L2884'>2884</a> +<a name='L2885'></a><a href='#L2885'>2885</a> +<a name='L2886'></a><a href='#L2886'>2886</a> +<a name='L2887'></a><a href='#L2887'>2887</a> +<a name='L2888'></a><a href='#L2888'>2888</a> +<a name='L2889'></a><a href='#L2889'>2889</a> +<a name='L2890'></a><a href='#L2890'>2890</a> +<a name='L2891'></a><a href='#L2891'>2891</a> +<a name='L2892'></a><a href='#L2892'>2892</a> +<a name='L2893'></a><a href='#L2893'>2893</a> +<a name='L2894'></a><a href='#L2894'>2894</a> +<a name='L2895'></a><a href='#L2895'>2895</a> +<a name='L2896'></a><a href='#L2896'>2896</a> +<a name='L2897'></a><a href='#L2897'>2897</a> +<a name='L2898'></a><a href='#L2898'>2898</a> +<a name='L2899'></a><a href='#L2899'>2899</a> +<a name='L2900'></a><a href='#L2900'>2900</a> +<a name='L2901'></a><a href='#L2901'>2901</a> +<a name='L2902'></a><a href='#L2902'>2902</a> +<a name='L2903'></a><a href='#L2903'>2903</a> +<a name='L2904'></a><a href='#L2904'>2904</a> +<a name='L2905'></a><a href='#L2905'>2905</a> +<a name='L2906'></a><a href='#L2906'>2906</a> +<a name='L2907'></a><a href='#L2907'>2907</a> +<a name='L2908'></a><a href='#L2908'>2908</a> +<a name='L2909'></a><a href='#L2909'>2909</a> +<a name='L2910'></a><a href='#L2910'>2910</a> +<a name='L2911'></a><a href='#L2911'>2911</a> +<a name='L2912'></a><a href='#L2912'>2912</a> +<a name='L2913'></a><a href='#L2913'>2913</a> +<a name='L2914'></a><a href='#L2914'>2914</a> +<a name='L2915'></a><a href='#L2915'>2915</a> +<a name='L2916'></a><a href='#L2916'>2916</a> +<a name='L2917'></a><a href='#L2917'>2917</a> +<a name='L2918'></a><a href='#L2918'>2918</a> +<a name='L2919'></a><a href='#L2919'>2919</a> +<a name='L2920'></a><a href='#L2920'>2920</a> +<a name='L2921'></a><a href='#L2921'>2921</a> +<a name='L2922'></a><a href='#L2922'>2922</a> +<a name='L2923'></a><a href='#L2923'>2923</a> +<a name='L2924'></a><a href='#L2924'>2924</a> +<a name='L2925'></a><a href='#L2925'>2925</a> +<a name='L2926'></a><a href='#L2926'>2926</a> +<a name='L2927'></a><a href='#L2927'>2927</a> +<a name='L2928'></a><a href='#L2928'>2928</a> +<a name='L2929'></a><a href='#L2929'>2929</a> +<a name='L2930'></a><a href='#L2930'>2930</a> +<a name='L2931'></a><a href='#L2931'>2931</a> +<a name='L2932'></a><a href='#L2932'>2932</a> +<a name='L2933'></a><a href='#L2933'>2933</a> +<a name='L2934'></a><a href='#L2934'>2934</a> +<a name='L2935'></a><a href='#L2935'>2935</a> +<a name='L2936'></a><a href='#L2936'>2936</a> +<a name='L2937'></a><a href='#L2937'>2937</a> +<a name='L2938'></a><a href='#L2938'>2938</a> +<a name='L2939'></a><a href='#L2939'>2939</a> +<a name='L2940'></a><a href='#L2940'>2940</a> +<a name='L2941'></a><a href='#L2941'>2941</a> +<a name='L2942'></a><a href='#L2942'>2942</a> +<a name='L2943'></a><a href='#L2943'>2943</a> +<a name='L2944'></a><a href='#L2944'>2944</a> +<a name='L2945'></a><a href='#L2945'>2945</a> +<a name='L2946'></a><a href='#L2946'>2946</a> +<a name='L2947'></a><a href='#L2947'>2947</a> +<a name='L2948'></a><a href='#L2948'>2948</a> +<a name='L2949'></a><a href='#L2949'>2949</a> +<a name='L2950'></a><a href='#L2950'>2950</a> +<a name='L2951'></a><a href='#L2951'>2951</a> +<a name='L2952'></a><a href='#L2952'>2952</a> +<a name='L2953'></a><a href='#L2953'>2953</a> +<a name='L2954'></a><a href='#L2954'>2954</a> +<a name='L2955'></a><a href='#L2955'>2955</a> +<a name='L2956'></a><a href='#L2956'>2956</a> +<a name='L2957'></a><a href='#L2957'>2957</a> +<a name='L2958'></a><a href='#L2958'>2958</a> +<a name='L2959'></a><a href='#L2959'>2959</a> +<a name='L2960'></a><a href='#L2960'>2960</a> +<a name='L2961'></a><a href='#L2961'>2961</a> +<a name='L2962'></a><a href='#L2962'>2962</a> +<a name='L2963'></a><a href='#L2963'>2963</a> +<a name='L2964'></a><a href='#L2964'>2964</a> +<a name='L2965'></a><a href='#L2965'>2965</a> +<a name='L2966'></a><a href='#L2966'>2966</a> +<a name='L2967'></a><a href='#L2967'>2967</a> +<a name='L2968'></a><a href='#L2968'>2968</a> +<a name='L2969'></a><a href='#L2969'>2969</a> +<a name='L2970'></a><a href='#L2970'>2970</a> +<a name='L2971'></a><a href='#L2971'>2971</a> +<a name='L2972'></a><a href='#L2972'>2972</a> +<a name='L2973'></a><a href='#L2973'>2973</a> +<a name='L2974'></a><a href='#L2974'>2974</a> +<a name='L2975'></a><a href='#L2975'>2975</a> +<a name='L2976'></a><a href='#L2976'>2976</a> +<a name='L2977'></a><a href='#L2977'>2977</a> +<a name='L2978'></a><a href='#L2978'>2978</a> +<a name='L2979'></a><a href='#L2979'>2979</a> +<a name='L2980'></a><a href='#L2980'>2980</a> +<a name='L2981'></a><a href='#L2981'>2981</a> +<a name='L2982'></a><a href='#L2982'>2982</a> +<a name='L2983'></a><a href='#L2983'>2983</a> +<a name='L2984'></a><a href='#L2984'>2984</a> +<a name='L2985'></a><a href='#L2985'>2985</a> +<a name='L2986'></a><a href='#L2986'>2986</a> +<a name='L2987'></a><a href='#L2987'>2987</a> +<a name='L2988'></a><a href='#L2988'>2988</a> +<a name='L2989'></a><a href='#L2989'>2989</a> +<a name='L2990'></a><a href='#L2990'>2990</a> +<a name='L2991'></a><a href='#L2991'>2991</a> +<a name='L2992'></a><a href='#L2992'>2992</a> +<a name='L2993'></a><a href='#L2993'>2993</a> +<a name='L2994'></a><a href='#L2994'>2994</a> +<a name='L2995'></a><a href='#L2995'>2995</a> +<a name='L2996'></a><a href='#L2996'>2996</a> +<a name='L2997'></a><a href='#L2997'>2997</a> +<a name='L2998'></a><a href='#L2998'>2998</a> +<a name='L2999'></a><a href='#L2999'>2999</a> +<a name='L3000'></a><a href='#L3000'>3000</a> +<a name='L3001'></a><a href='#L3001'>3001</a> +<a name='L3002'></a><a href='#L3002'>3002</a> +<a name='L3003'></a><a href='#L3003'>3003</a> +<a name='L3004'></a><a href='#L3004'>3004</a> +<a name='L3005'></a><a href='#L3005'>3005</a> +<a name='L3006'></a><a href='#L3006'>3006</a> +<a name='L3007'></a><a href='#L3007'>3007</a> +<a name='L3008'></a><a href='#L3008'>3008</a> +<a name='L3009'></a><a href='#L3009'>3009</a> +<a name='L3010'></a><a href='#L3010'>3010</a> +<a name='L3011'></a><a href='#L3011'>3011</a> +<a name='L3012'></a><a href='#L3012'>3012</a> +<a name='L3013'></a><a href='#L3013'>3013</a> +<a name='L3014'></a><a href='#L3014'>3014</a> +<a name='L3015'></a><a href='#L3015'>3015</a> +<a name='L3016'></a><a href='#L3016'>3016</a> +<a name='L3017'></a><a href='#L3017'>3017</a> +<a name='L3018'></a><a href='#L3018'>3018</a> +<a name='L3019'></a><a href='#L3019'>3019</a> +<a name='L3020'></a><a href='#L3020'>3020</a> +<a name='L3021'></a><a href='#L3021'>3021</a> +<a name='L3022'></a><a href='#L3022'>3022</a> +<a name='L3023'></a><a href='#L3023'>3023</a> +<a name='L3024'></a><a href='#L3024'>3024</a> +<a name='L3025'></a><a href='#L3025'>3025</a> +<a name='L3026'></a><a href='#L3026'>3026</a> +<a name='L3027'></a><a href='#L3027'>3027</a> +<a name='L3028'></a><a href='#L3028'>3028</a> +<a name='L3029'></a><a href='#L3029'>3029</a> +<a name='L3030'></a><a href='#L3030'>3030</a> +<a name='L3031'></a><a href='#L3031'>3031</a> +<a name='L3032'></a><a href='#L3032'>3032</a> +<a name='L3033'></a><a href='#L3033'>3033</a> +<a name='L3034'></a><a href='#L3034'>3034</a> +<a name='L3035'></a><a href='#L3035'>3035</a> +<a name='L3036'></a><a href='#L3036'>3036</a> +<a name='L3037'></a><a href='#L3037'>3037</a> +<a name='L3038'></a><a href='#L3038'>3038</a> +<a name='L3039'></a><a href='#L3039'>3039</a> +<a name='L3040'></a><a href='#L3040'>3040</a> +<a name='L3041'></a><a href='#L3041'>3041</a> +<a name='L3042'></a><a href='#L3042'>3042</a> +<a name='L3043'></a><a href='#L3043'>3043</a> +<a name='L3044'></a><a href='#L3044'>3044</a> +<a name='L3045'></a><a href='#L3045'>3045</a> +<a name='L3046'></a><a href='#L3046'>3046</a> +<a name='L3047'></a><a href='#L3047'>3047</a> +<a name='L3048'></a><a href='#L3048'>3048</a> +<a name='L3049'></a><a href='#L3049'>3049</a> +<a name='L3050'></a><a href='#L3050'>3050</a> +<a name='L3051'></a><a href='#L3051'>3051</a> +<a name='L3052'></a><a href='#L3052'>3052</a> +<a name='L3053'></a><a href='#L3053'>3053</a> +<a name='L3054'></a><a href='#L3054'>3054</a> +<a name='L3055'></a><a href='#L3055'>3055</a> +<a name='L3056'></a><a href='#L3056'>3056</a> +<a name='L3057'></a><a href='#L3057'>3057</a> +<a name='L3058'></a><a href='#L3058'>3058</a> +<a name='L3059'></a><a href='#L3059'>3059</a> +<a name='L3060'></a><a href='#L3060'>3060</a> +<a name='L3061'></a><a href='#L3061'>3061</a> +<a name='L3062'></a><a href='#L3062'>3062</a> +<a name='L3063'></a><a href='#L3063'>3063</a> +<a name='L3064'></a><a href='#L3064'>3064</a> +<a name='L3065'></a><a href='#L3065'>3065</a> +<a name='L3066'></a><a href='#L3066'>3066</a> +<a name='L3067'></a><a href='#L3067'>3067</a> +<a name='L3068'></a><a href='#L3068'>3068</a> +<a name='L3069'></a><a href='#L3069'>3069</a> +<a name='L3070'></a><a href='#L3070'>3070</a> +<a name='L3071'></a><a href='#L3071'>3071</a> +<a name='L3072'></a><a href='#L3072'>3072</a> +<a name='L3073'></a><a href='#L3073'>3073</a> +<a name='L3074'></a><a href='#L3074'>3074</a> +<a name='L3075'></a><a href='#L3075'>3075</a> +<a name='L3076'></a><a href='#L3076'>3076</a> +<a name='L3077'></a><a href='#L3077'>3077</a> +<a name='L3078'></a><a href='#L3078'>3078</a> +<a name='L3079'></a><a href='#L3079'>3079</a> +<a name='L3080'></a><a href='#L3080'>3080</a> +<a name='L3081'></a><a href='#L3081'>3081</a> +<a name='L3082'></a><a href='#L3082'>3082</a> +<a name='L3083'></a><a href='#L3083'>3083</a> +<a name='L3084'></a><a href='#L3084'>3084</a> +<a name='L3085'></a><a href='#L3085'>3085</a> +<a name='L3086'></a><a href='#L3086'>3086</a> +<a name='L3087'></a><a href='#L3087'>3087</a> +<a name='L3088'></a><a href='#L3088'>3088</a> +<a name='L3089'></a><a href='#L3089'>3089</a> +<a name='L3090'></a><a href='#L3090'>3090</a> +<a name='L3091'></a><a href='#L3091'>3091</a> +<a name='L3092'></a><a href='#L3092'>3092</a> +<a name='L3093'></a><a href='#L3093'>3093</a> +<a name='L3094'></a><a href='#L3094'>3094</a> +<a name='L3095'></a><a href='#L3095'>3095</a> +<a name='L3096'></a><a href='#L3096'>3096</a> +<a name='L3097'></a><a href='#L3097'>3097</a> +<a name='L3098'></a><a href='#L3098'>3098</a> +<a name='L3099'></a><a href='#L3099'>3099</a> +<a name='L3100'></a><a href='#L3100'>3100</a> +<a name='L3101'></a><a href='#L3101'>3101</a> +<a name='L3102'></a><a href='#L3102'>3102</a> +<a name='L3103'></a><a href='#L3103'>3103</a> +<a name='L3104'></a><a href='#L3104'>3104</a> +<a name='L3105'></a><a href='#L3105'>3105</a> +<a name='L3106'></a><a href='#L3106'>3106</a> +<a name='L3107'></a><a href='#L3107'>3107</a> +<a name='L3108'></a><a href='#L3108'>3108</a> +<a name='L3109'></a><a href='#L3109'>3109</a> +<a name='L3110'></a><a href='#L3110'>3110</a> +<a name='L3111'></a><a href='#L3111'>3111</a> +<a name='L3112'></a><a href='#L3112'>3112</a> +<a name='L3113'></a><a href='#L3113'>3113</a> +<a name='L3114'></a><a href='#L3114'>3114</a> +<a name='L3115'></a><a href='#L3115'>3115</a> +<a name='L3116'></a><a href='#L3116'>3116</a> +<a name='L3117'></a><a href='#L3117'>3117</a> +<a name='L3118'></a><a href='#L3118'>3118</a> +<a name='L3119'></a><a href='#L3119'>3119</a> +<a name='L3120'></a><a href='#L3120'>3120</a> +<a name='L3121'></a><a href='#L3121'>3121</a> +<a name='L3122'></a><a href='#L3122'>3122</a> +<a name='L3123'></a><a href='#L3123'>3123</a> +<a name='L3124'></a><a href='#L3124'>3124</a> +<a name='L3125'></a><a href='#L3125'>3125</a> +<a name='L3126'></a><a href='#L3126'>3126</a> +<a name='L3127'></a><a href='#L3127'>3127</a> +<a name='L3128'></a><a href='#L3128'>3128</a> +<a name='L3129'></a><a href='#L3129'>3129</a> +<a name='L3130'></a><a href='#L3130'>3130</a> +<a name='L3131'></a><a href='#L3131'>3131</a> +<a name='L3132'></a><a href='#L3132'>3132</a> +<a name='L3133'></a><a href='#L3133'>3133</a> +<a name='L3134'></a><a href='#L3134'>3134</a> +<a name='L3135'></a><a href='#L3135'>3135</a> +<a name='L3136'></a><a href='#L3136'>3136</a> +<a name='L3137'></a><a href='#L3137'>3137</a> +<a name='L3138'></a><a href='#L3138'>3138</a> +<a name='L3139'></a><a href='#L3139'>3139</a> +<a name='L3140'></a><a href='#L3140'>3140</a> +<a name='L3141'></a><a href='#L3141'>3141</a> +<a name='L3142'></a><a href='#L3142'>3142</a> +<a name='L3143'></a><a href='#L3143'>3143</a> +<a name='L3144'></a><a href='#L3144'>3144</a> +<a name='L3145'></a><a href='#L3145'>3145</a> +<a name='L3146'></a><a href='#L3146'>3146</a> +<a name='L3147'></a><a href='#L3147'>3147</a> +<a name='L3148'></a><a href='#L3148'>3148</a> +<a name='L3149'></a><a href='#L3149'>3149</a> +<a name='L3150'></a><a href='#L3150'>3150</a> +<a name='L3151'></a><a href='#L3151'>3151</a> +<a name='L3152'></a><a href='#L3152'>3152</a> +<a name='L3153'></a><a href='#L3153'>3153</a> +<a name='L3154'></a><a href='#L3154'>3154</a> +<a name='L3155'></a><a href='#L3155'>3155</a> +<a name='L3156'></a><a href='#L3156'>3156</a> +<a name='L3157'></a><a href='#L3157'>3157</a> +<a name='L3158'></a><a href='#L3158'>3158</a> +<a name='L3159'></a><a href='#L3159'>3159</a> +<a name='L3160'></a><a href='#L3160'>3160</a> +<a name='L3161'></a><a href='#L3161'>3161</a> +<a name='L3162'></a><a href='#L3162'>3162</a> +<a name='L3163'></a><a href='#L3163'>3163</a> +<a name='L3164'></a><a href='#L3164'>3164</a> +<a name='L3165'></a><a href='#L3165'>3165</a> +<a name='L3166'></a><a href='#L3166'>3166</a> +<a name='L3167'></a><a href='#L3167'>3167</a> +<a name='L3168'></a><a href='#L3168'>3168</a> +<a name='L3169'></a><a href='#L3169'>3169</a> +<a name='L3170'></a><a href='#L3170'>3170</a> +<a name='L3171'></a><a href='#L3171'>3171</a> +<a name='L3172'></a><a href='#L3172'>3172</a> +<a name='L3173'></a><a href='#L3173'>3173</a> +<a name='L3174'></a><a href='#L3174'>3174</a> +<a name='L3175'></a><a href='#L3175'>3175</a> +<a name='L3176'></a><a href='#L3176'>3176</a> +<a name='L3177'></a><a href='#L3177'>3177</a> +<a name='L3178'></a><a href='#L3178'>3178</a> +<a name='L3179'></a><a href='#L3179'>3179</a> +<a name='L3180'></a><a href='#L3180'>3180</a> +<a name='L3181'></a><a href='#L3181'>3181</a> +<a name='L3182'></a><a href='#L3182'>3182</a> +<a name='L3183'></a><a href='#L3183'>3183</a> +<a name='L3184'></a><a href='#L3184'>3184</a> +<a name='L3185'></a><a href='#L3185'>3185</a> +<a name='L3186'></a><a href='#L3186'>3186</a> +<a name='L3187'></a><a href='#L3187'>3187</a> +<a name='L3188'></a><a href='#L3188'>3188</a> +<a name='L3189'></a><a href='#L3189'>3189</a> +<a name='L3190'></a><a href='#L3190'>3190</a> +<a name='L3191'></a><a href='#L3191'>3191</a> +<a name='L3192'></a><a href='#L3192'>3192</a> +<a name='L3193'></a><a href='#L3193'>3193</a> +<a name='L3194'></a><a href='#L3194'>3194</a> +<a name='L3195'></a><a href='#L3195'>3195</a> +<a name='L3196'></a><a href='#L3196'>3196</a> +<a name='L3197'></a><a href='#L3197'>3197</a> +<a name='L3198'></a><a href='#L3198'>3198</a> +<a name='L3199'></a><a href='#L3199'>3199</a> +<a name='L3200'></a><a href='#L3200'>3200</a> +<a name='L3201'></a><a href='#L3201'>3201</a> +<a name='L3202'></a><a href='#L3202'>3202</a> +<a name='L3203'></a><a href='#L3203'>3203</a> +<a name='L3204'></a><a href='#L3204'>3204</a> +<a name='L3205'></a><a href='#L3205'>3205</a> +<a name='L3206'></a><a href='#L3206'>3206</a> +<a name='L3207'></a><a href='#L3207'>3207</a> +<a name='L3208'></a><a href='#L3208'>3208</a> +<a name='L3209'></a><a href='#L3209'>3209</a> +<a name='L3210'></a><a href='#L3210'>3210</a> +<a name='L3211'></a><a href='#L3211'>3211</a> +<a name='L3212'></a><a href='#L3212'>3212</a> +<a name='L3213'></a><a href='#L3213'>3213</a> +<a name='L3214'></a><a href='#L3214'>3214</a> +<a name='L3215'></a><a href='#L3215'>3215</a> +<a name='L3216'></a><a href='#L3216'>3216</a> +<a name='L3217'></a><a href='#L3217'>3217</a> +<a name='L3218'></a><a href='#L3218'>3218</a> +<a name='L3219'></a><a href='#L3219'>3219</a> +<a name='L3220'></a><a href='#L3220'>3220</a> +<a name='L3221'></a><a href='#L3221'>3221</a> +<a name='L3222'></a><a href='#L3222'>3222</a> +<a name='L3223'></a><a href='#L3223'>3223</a> +<a name='L3224'></a><a href='#L3224'>3224</a> +<a name='L3225'></a><a href='#L3225'>3225</a> +<a name='L3226'></a><a href='#L3226'>3226</a> +<a name='L3227'></a><a href='#L3227'>3227</a> +<a name='L3228'></a><a href='#L3228'>3228</a> +<a name='L3229'></a><a href='#L3229'>3229</a> +<a name='L3230'></a><a href='#L3230'>3230</a> +<a name='L3231'></a><a href='#L3231'>3231</a> +<a name='L3232'></a><a href='#L3232'>3232</a> +<a name='L3233'></a><a href='#L3233'>3233</a> +<a name='L3234'></a><a href='#L3234'>3234</a> +<a name='L3235'></a><a href='#L3235'>3235</a> +<a name='L3236'></a><a href='#L3236'>3236</a> +<a name='L3237'></a><a href='#L3237'>3237</a> +<a name='L3238'></a><a href='#L3238'>3238</a> +<a name='L3239'></a><a href='#L3239'>3239</a> +<a name='L3240'></a><a href='#L3240'>3240</a> +<a name='L3241'></a><a href='#L3241'>3241</a> +<a name='L3242'></a><a href='#L3242'>3242</a> +<a name='L3243'></a><a href='#L3243'>3243</a> +<a name='L3244'></a><a href='#L3244'>3244</a> +<a name='L3245'></a><a href='#L3245'>3245</a> +<a name='L3246'></a><a href='#L3246'>3246</a> +<a name='L3247'></a><a href='#L3247'>3247</a> +<a name='L3248'></a><a href='#L3248'>3248</a> +<a name='L3249'></a><a href='#L3249'>3249</a> +<a name='L3250'></a><a href='#L3250'>3250</a> +<a name='L3251'></a><a href='#L3251'>3251</a> +<a name='L3252'></a><a href='#L3252'>3252</a> +<a name='L3253'></a><a href='#L3253'>3253</a> +<a name='L3254'></a><a href='#L3254'>3254</a> +<a name='L3255'></a><a href='#L3255'>3255</a> +<a name='L3256'></a><a href='#L3256'>3256</a> +<a name='L3257'></a><a href='#L3257'>3257</a> +<a name='L3258'></a><a href='#L3258'>3258</a> +<a name='L3259'></a><a href='#L3259'>3259</a> +<a name='L3260'></a><a href='#L3260'>3260</a> +<a name='L3261'></a><a href='#L3261'>3261</a> +<a name='L3262'></a><a href='#L3262'>3262</a> +<a name='L3263'></a><a href='#L3263'>3263</a> +<a name='L3264'></a><a href='#L3264'>3264</a> +<a name='L3265'></a><a href='#L3265'>3265</a> +<a name='L3266'></a><a href='#L3266'>3266</a> +<a name='L3267'></a><a href='#L3267'>3267</a> +<a name='L3268'></a><a href='#L3268'>3268</a> +<a name='L3269'></a><a href='#L3269'>3269</a> +<a name='L3270'></a><a href='#L3270'>3270</a> +<a name='L3271'></a><a href='#L3271'>3271</a> +<a name='L3272'></a><a href='#L3272'>3272</a> +<a name='L3273'></a><a href='#L3273'>3273</a> +<a name='L3274'></a><a href='#L3274'>3274</a> +<a name='L3275'></a><a href='#L3275'>3275</a> +<a name='L3276'></a><a href='#L3276'>3276</a> +<a name='L3277'></a><a href='#L3277'>3277</a> +<a name='L3278'></a><a href='#L3278'>3278</a> +<a name='L3279'></a><a href='#L3279'>3279</a> +<a name='L3280'></a><a href='#L3280'>3280</a> +<a name='L3281'></a><a href='#L3281'>3281</a> +<a name='L3282'></a><a href='#L3282'>3282</a> +<a name='L3283'></a><a href='#L3283'>3283</a> +<a name='L3284'></a><a href='#L3284'>3284</a> +<a name='L3285'></a><a href='#L3285'>3285</a> +<a name='L3286'></a><a href='#L3286'>3286</a> +<a name='L3287'></a><a href='#L3287'>3287</a> +<a name='L3288'></a><a href='#L3288'>3288</a> +<a name='L3289'></a><a href='#L3289'>3289</a> +<a name='L3290'></a><a href='#L3290'>3290</a> +<a name='L3291'></a><a href='#L3291'>3291</a> +<a name='L3292'></a><a href='#L3292'>3292</a> +<a name='L3293'></a><a href='#L3293'>3293</a> +<a name='L3294'></a><a href='#L3294'>3294</a> +<a name='L3295'></a><a href='#L3295'>3295</a> +<a name='L3296'></a><a href='#L3296'>3296</a> +<a name='L3297'></a><a href='#L3297'>3297</a> +<a name='L3298'></a><a href='#L3298'>3298</a> +<a name='L3299'></a><a href='#L3299'>3299</a> +<a name='L3300'></a><a href='#L3300'>3300</a> +<a name='L3301'></a><a href='#L3301'>3301</a> +<a name='L3302'></a><a href='#L3302'>3302</a> +<a name='L3303'></a><a href='#L3303'>3303</a> +<a name='L3304'></a><a href='#L3304'>3304</a> +<a name='L3305'></a><a href='#L3305'>3305</a> +<a name='L3306'></a><a href='#L3306'>3306</a> +<a name='L3307'></a><a href='#L3307'>3307</a> +<a name='L3308'></a><a href='#L3308'>3308</a> +<a name='L3309'></a><a href='#L3309'>3309</a> +<a name='L3310'></a><a href='#L3310'>3310</a> +<a name='L3311'></a><a href='#L3311'>3311</a> +<a name='L3312'></a><a href='#L3312'>3312</a> +<a name='L3313'></a><a href='#L3313'>3313</a> +<a name='L3314'></a><a href='#L3314'>3314</a> +<a name='L3315'></a><a href='#L3315'>3315</a> +<a name='L3316'></a><a href='#L3316'>3316</a> +<a name='L3317'></a><a href='#L3317'>3317</a> +<a name='L3318'></a><a href='#L3318'>3318</a> +<a name='L3319'></a><a href='#L3319'>3319</a> +<a name='L3320'></a><a href='#L3320'>3320</a> +<a name='L3321'></a><a href='#L3321'>3321</a> +<a name='L3322'></a><a href='#L3322'>3322</a> +<a name='L3323'></a><a href='#L3323'>3323</a> +<a name='L3324'></a><a href='#L3324'>3324</a> +<a name='L3325'></a><a href='#L3325'>3325</a> +<a name='L3326'></a><a href='#L3326'>3326</a> +<a name='L3327'></a><a href='#L3327'>3327</a> +<a name='L3328'></a><a href='#L3328'>3328</a> +<a name='L3329'></a><a href='#L3329'>3329</a> +<a name='L3330'></a><a href='#L3330'>3330</a> +<a name='L3331'></a><a href='#L3331'>3331</a> +<a name='L3332'></a><a href='#L3332'>3332</a> +<a name='L3333'></a><a href='#L3333'>3333</a> +<a name='L3334'></a><a href='#L3334'>3334</a> +<a name='L3335'></a><a href='#L3335'>3335</a> +<a name='L3336'></a><a href='#L3336'>3336</a> +<a name='L3337'></a><a href='#L3337'>3337</a> +<a name='L3338'></a><a href='#L3338'>3338</a> +<a name='L3339'></a><a href='#L3339'>3339</a> +<a name='L3340'></a><a href='#L3340'>3340</a> +<a name='L3341'></a><a href='#L3341'>3341</a> +<a name='L3342'></a><a href='#L3342'>3342</a> +<a name='L3343'></a><a href='#L3343'>3343</a> +<a name='L3344'></a><a href='#L3344'>3344</a> +<a name='L3345'></a><a href='#L3345'>3345</a> +<a name='L3346'></a><a href='#L3346'>3346</a> +<a name='L3347'></a><a href='#L3347'>3347</a> +<a name='L3348'></a><a href='#L3348'>3348</a> +<a name='L3349'></a><a href='#L3349'>3349</a> +<a name='L3350'></a><a href='#L3350'>3350</a> +<a name='L3351'></a><a href='#L3351'>3351</a> +<a name='L3352'></a><a href='#L3352'>3352</a> +<a name='L3353'></a><a href='#L3353'>3353</a> +<a name='L3354'></a><a href='#L3354'>3354</a> +<a name='L3355'></a><a href='#L3355'>3355</a> +<a name='L3356'></a><a href='#L3356'>3356</a> +<a name='L3357'></a><a href='#L3357'>3357</a> +<a name='L3358'></a><a href='#L3358'>3358</a> +<a name='L3359'></a><a href='#L3359'>3359</a> +<a name='L3360'></a><a href='#L3360'>3360</a> +<a name='L3361'></a><a href='#L3361'>3361</a> +<a name='L3362'></a><a href='#L3362'>3362</a> +<a name='L3363'></a><a href='#L3363'>3363</a> +<a name='L3364'></a><a href='#L3364'>3364</a> +<a name='L3365'></a><a href='#L3365'>3365</a> +<a name='L3366'></a><a href='#L3366'>3366</a> +<a name='L3367'></a><a href='#L3367'>3367</a> +<a name='L3368'></a><a href='#L3368'>3368</a> +<a name='L3369'></a><a href='#L3369'>3369</a> +<a name='L3370'></a><a href='#L3370'>3370</a> +<a name='L3371'></a><a href='#L3371'>3371</a> +<a name='L3372'></a><a href='#L3372'>3372</a> +<a name='L3373'></a><a href='#L3373'>3373</a> +<a name='L3374'></a><a href='#L3374'>3374</a> +<a name='L3375'></a><a href='#L3375'>3375</a> +<a name='L3376'></a><a href='#L3376'>3376</a> +<a name='L3377'></a><a href='#L3377'>3377</a> +<a name='L3378'></a><a href='#L3378'>3378</a> +<a name='L3379'></a><a href='#L3379'>3379</a> +<a name='L3380'></a><a href='#L3380'>3380</a> +<a name='L3381'></a><a href='#L3381'>3381</a> +<a name='L3382'></a><a href='#L3382'>3382</a> +<a name='L3383'></a><a href='#L3383'>3383</a> +<a name='L3384'></a><a href='#L3384'>3384</a> +<a name='L3385'></a><a href='#L3385'>3385</a> +<a name='L3386'></a><a href='#L3386'>3386</a> +<a name='L3387'></a><a href='#L3387'>3387</a> +<a name='L3388'></a><a href='#L3388'>3388</a> +<a name='L3389'></a><a href='#L3389'>3389</a> +<a name='L3390'></a><a href='#L3390'>3390</a> +<a name='L3391'></a><a href='#L3391'>3391</a> +<a name='L3392'></a><a href='#L3392'>3392</a> +<a name='L3393'></a><a href='#L3393'>3393</a> +<a name='L3394'></a><a href='#L3394'>3394</a> +<a name='L3395'></a><a href='#L3395'>3395</a> +<a name='L3396'></a><a href='#L3396'>3396</a> +<a name='L3397'></a><a href='#L3397'>3397</a> +<a name='L3398'></a><a href='#L3398'>3398</a> +<a name='L3399'></a><a href='#L3399'>3399</a> +<a name='L3400'></a><a href='#L3400'>3400</a> +<a name='L3401'></a><a href='#L3401'>3401</a> +<a name='L3402'></a><a href='#L3402'>3402</a> +<a name='L3403'></a><a href='#L3403'>3403</a> +<a name='L3404'></a><a href='#L3404'>3404</a> +<a name='L3405'></a><a href='#L3405'>3405</a> +<a name='L3406'></a><a href='#L3406'>3406</a> +<a name='L3407'></a><a href='#L3407'>3407</a> +<a name='L3408'></a><a href='#L3408'>3408</a> +<a name='L3409'></a><a href='#L3409'>3409</a> +<a name='L3410'></a><a href='#L3410'>3410</a> +<a name='L3411'></a><a href='#L3411'>3411</a> +<a name='L3412'></a><a href='#L3412'>3412</a> +<a name='L3413'></a><a href='#L3413'>3413</a> +<a name='L3414'></a><a href='#L3414'>3414</a> +<a name='L3415'></a><a href='#L3415'>3415</a> +<a name='L3416'></a><a href='#L3416'>3416</a> +<a name='L3417'></a><a href='#L3417'>3417</a> +<a name='L3418'></a><a href='#L3418'>3418</a> +<a name='L3419'></a><a href='#L3419'>3419</a> +<a name='L3420'></a><a href='#L3420'>3420</a> +<a name='L3421'></a><a href='#L3421'>3421</a> +<a name='L3422'></a><a href='#L3422'>3422</a> +<a name='L3423'></a><a href='#L3423'>3423</a> +<a name='L3424'></a><a href='#L3424'>3424</a> +<a name='L3425'></a><a href='#L3425'>3425</a> +<a name='L3426'></a><a href='#L3426'>3426</a> +<a name='L3427'></a><a href='#L3427'>3427</a> +<a name='L3428'></a><a href='#L3428'>3428</a> +<a name='L3429'></a><a href='#L3429'>3429</a> +<a name='L3430'></a><a href='#L3430'>3430</a> +<a name='L3431'></a><a href='#L3431'>3431</a> +<a name='L3432'></a><a href='#L3432'>3432</a> +<a name='L3433'></a><a href='#L3433'>3433</a> +<a name='L3434'></a><a href='#L3434'>3434</a> +<a name='L3435'></a><a href='#L3435'>3435</a> +<a name='L3436'></a><a href='#L3436'>3436</a> +<a name='L3437'></a><a href='#L3437'>3437</a> +<a name='L3438'></a><a href='#L3438'>3438</a> +<a name='L3439'></a><a href='#L3439'>3439</a> +<a name='L3440'></a><a href='#L3440'>3440</a> +<a name='L3441'></a><a href='#L3441'>3441</a> +<a name='L3442'></a><a href='#L3442'>3442</a> +<a name='L3443'></a><a href='#L3443'>3443</a> +<a name='L3444'></a><a href='#L3444'>3444</a> +<a name='L3445'></a><a href='#L3445'>3445</a> +<a name='L3446'></a><a href='#L3446'>3446</a> +<a name='L3447'></a><a href='#L3447'>3447</a> +<a name='L3448'></a><a href='#L3448'>3448</a> +<a name='L3449'></a><a href='#L3449'>3449</a> +<a name='L3450'></a><a href='#L3450'>3450</a> +<a name='L3451'></a><a href='#L3451'>3451</a> +<a name='L3452'></a><a href='#L3452'>3452</a> +<a name='L3453'></a><a href='#L3453'>3453</a> +<a name='L3454'></a><a href='#L3454'>3454</a> +<a name='L3455'></a><a href='#L3455'>3455</a> +<a name='L3456'></a><a href='#L3456'>3456</a> +<a name='L3457'></a><a href='#L3457'>3457</a> +<a name='L3458'></a><a href='#L3458'>3458</a> +<a name='L3459'></a><a href='#L3459'>3459</a> +<a name='L3460'></a><a href='#L3460'>3460</a> +<a name='L3461'></a><a href='#L3461'>3461</a> +<a name='L3462'></a><a href='#L3462'>3462</a> +<a name='L3463'></a><a href='#L3463'>3463</a> +<a name='L3464'></a><a href='#L3464'>3464</a> +<a name='L3465'></a><a href='#L3465'>3465</a> +<a name='L3466'></a><a href='#L3466'>3466</a> +<a name='L3467'></a><a href='#L3467'>3467</a> +<a name='L3468'></a><a href='#L3468'>3468</a> +<a name='L3469'></a><a href='#L3469'>3469</a> +<a name='L3470'></a><a href='#L3470'>3470</a> +<a name='L3471'></a><a href='#L3471'>3471</a> +<a name='L3472'></a><a href='#L3472'>3472</a> +<a name='L3473'></a><a href='#L3473'>3473</a> +<a name='L3474'></a><a href='#L3474'>3474</a> +<a name='L3475'></a><a href='#L3475'>3475</a> +<a name='L3476'></a><a href='#L3476'>3476</a> +<a name='L3477'></a><a href='#L3477'>3477</a> +<a name='L3478'></a><a href='#L3478'>3478</a> +<a name='L3479'></a><a href='#L3479'>3479</a> +<a name='L3480'></a><a href='#L3480'>3480</a> +<a name='L3481'></a><a href='#L3481'>3481</a> +<a name='L3482'></a><a href='#L3482'>3482</a> +<a name='L3483'></a><a href='#L3483'>3483</a> +<a name='L3484'></a><a href='#L3484'>3484</a> +<a name='L3485'></a><a href='#L3485'>3485</a> +<a name='L3486'></a><a href='#L3486'>3486</a> +<a name='L3487'></a><a href='#L3487'>3487</a> +<a name='L3488'></a><a href='#L3488'>3488</a> +<a name='L3489'></a><a href='#L3489'>3489</a> +<a name='L3490'></a><a href='#L3490'>3490</a> +<a name='L3491'></a><a href='#L3491'>3491</a> +<a name='L3492'></a><a href='#L3492'>3492</a> +<a name='L3493'></a><a href='#L3493'>3493</a> +<a name='L3494'></a><a href='#L3494'>3494</a> +<a name='L3495'></a><a href='#L3495'>3495</a> +<a name='L3496'></a><a href='#L3496'>3496</a> +<a name='L3497'></a><a href='#L3497'>3497</a> +<a name='L3498'></a><a href='#L3498'>3498</a> +<a name='L3499'></a><a href='#L3499'>3499</a> +<a name='L3500'></a><a href='#L3500'>3500</a> +<a name='L3501'></a><a href='#L3501'>3501</a> +<a name='L3502'></a><a href='#L3502'>3502</a> +<a name='L3503'></a><a href='#L3503'>3503</a> +<a name='L3504'></a><a href='#L3504'>3504</a> +<a name='L3505'></a><a href='#L3505'>3505</a> +<a name='L3506'></a><a href='#L3506'>3506</a> +<a name='L3507'></a><a href='#L3507'>3507</a> +<a name='L3508'></a><a href='#L3508'>3508</a> +<a name='L3509'></a><a href='#L3509'>3509</a> +<a name='L3510'></a><a href='#L3510'>3510</a> +<a name='L3511'></a><a href='#L3511'>3511</a> +<a name='L3512'></a><a href='#L3512'>3512</a> +<a name='L3513'></a><a href='#L3513'>3513</a> +<a name='L3514'></a><a href='#L3514'>3514</a> +<a name='L3515'></a><a href='#L3515'>3515</a> +<a name='L3516'></a><a href='#L3516'>3516</a> +<a name='L3517'></a><a href='#L3517'>3517</a> +<a name='L3518'></a><a href='#L3518'>3518</a> +<a name='L3519'></a><a href='#L3519'>3519</a> +<a name='L3520'></a><a href='#L3520'>3520</a> +<a name='L3521'></a><a href='#L3521'>3521</a> +<a name='L3522'></a><a href='#L3522'>3522</a> +<a name='L3523'></a><a href='#L3523'>3523</a> +<a name='L3524'></a><a href='#L3524'>3524</a> +<a name='L3525'></a><a href='#L3525'>3525</a> +<a name='L3526'></a><a href='#L3526'>3526</a> +<a name='L3527'></a><a href='#L3527'>3527</a> +<a name='L3528'></a><a href='#L3528'>3528</a> +<a name='L3529'></a><a href='#L3529'>3529</a> +<a name='L3530'></a><a href='#L3530'>3530</a> +<a name='L3531'></a><a href='#L3531'>3531</a> +<a name='L3532'></a><a href='#L3532'>3532</a> +<a name='L3533'></a><a href='#L3533'>3533</a> +<a name='L3534'></a><a href='#L3534'>3534</a> +<a name='L3535'></a><a href='#L3535'>3535</a> +<a name='L3536'></a><a href='#L3536'>3536</a> +<a name='L3537'></a><a href='#L3537'>3537</a> +<a name='L3538'></a><a href='#L3538'>3538</a> +<a name='L3539'></a><a href='#L3539'>3539</a> +<a name='L3540'></a><a href='#L3540'>3540</a> +<a name='L3541'></a><a href='#L3541'>3541</a> +<a name='L3542'></a><a href='#L3542'>3542</a> +<a name='L3543'></a><a href='#L3543'>3543</a> +<a name='L3544'></a><a href='#L3544'>3544</a> +<a name='L3545'></a><a href='#L3545'>3545</a> +<a name='L3546'></a><a href='#L3546'>3546</a> +<a name='L3547'></a><a href='#L3547'>3547</a> +<a name='L3548'></a><a href='#L3548'>3548</a> +<a name='L3549'></a><a href='#L3549'>3549</a> +<a name='L3550'></a><a href='#L3550'>3550</a> +<a name='L3551'></a><a href='#L3551'>3551</a> +<a name='L3552'></a><a href='#L3552'>3552</a> +<a name='L3553'></a><a href='#L3553'>3553</a> +<a name='L3554'></a><a href='#L3554'>3554</a> +<a name='L3555'></a><a href='#L3555'>3555</a> +<a name='L3556'></a><a href='#L3556'>3556</a> +<a name='L3557'></a><a href='#L3557'>3557</a> +<a name='L3558'></a><a href='#L3558'>3558</a> +<a name='L3559'></a><a href='#L3559'>3559</a> +<a name='L3560'></a><a href='#L3560'>3560</a> +<a name='L3561'></a><a href='#L3561'>3561</a> +<a name='L3562'></a><a href='#L3562'>3562</a> +<a name='L3563'></a><a href='#L3563'>3563</a> +<a name='L3564'></a><a href='#L3564'>3564</a> +<a name='L3565'></a><a href='#L3565'>3565</a> +<a name='L3566'></a><a href='#L3566'>3566</a> +<a name='L3567'></a><a href='#L3567'>3567</a> +<a name='L3568'></a><a href='#L3568'>3568</a> +<a name='L3569'></a><a href='#L3569'>3569</a> +<a name='L3570'></a><a href='#L3570'>3570</a> +<a name='L3571'></a><a href='#L3571'>3571</a> +<a name='L3572'></a><a href='#L3572'>3572</a> +<a name='L3573'></a><a href='#L3573'>3573</a> +<a name='L3574'></a><a href='#L3574'>3574</a> +<a name='L3575'></a><a href='#L3575'>3575</a> +<a name='L3576'></a><a href='#L3576'>3576</a> +<a name='L3577'></a><a href='#L3577'>3577</a> +<a name='L3578'></a><a href='#L3578'>3578</a> +<a name='L3579'></a><a href='#L3579'>3579</a> +<a name='L3580'></a><a href='#L3580'>3580</a> +<a name='L3581'></a><a href='#L3581'>3581</a> +<a name='L3582'></a><a href='#L3582'>3582</a> +<a name='L3583'></a><a href='#L3583'>3583</a> +<a name='L3584'></a><a href='#L3584'>3584</a> +<a name='L3585'></a><a href='#L3585'>3585</a> +<a name='L3586'></a><a href='#L3586'>3586</a> +<a name='L3587'></a><a href='#L3587'>3587</a> +<a name='L3588'></a><a href='#L3588'>3588</a> +<a name='L3589'></a><a href='#L3589'>3589</a> +<a name='L3590'></a><a href='#L3590'>3590</a> +<a name='L3591'></a><a href='#L3591'>3591</a> +<a name='L3592'></a><a href='#L3592'>3592</a> +<a name='L3593'></a><a href='#L3593'>3593</a> +<a name='L3594'></a><a href='#L3594'>3594</a> +<a name='L3595'></a><a href='#L3595'>3595</a> +<a name='L3596'></a><a href='#L3596'>3596</a> +<a name='L3597'></a><a href='#L3597'>3597</a> +<a name='L3598'></a><a href='#L3598'>3598</a> +<a name='L3599'></a><a href='#L3599'>3599</a> +<a name='L3600'></a><a href='#L3600'>3600</a> +<a name='L3601'></a><a href='#L3601'>3601</a> +<a name='L3602'></a><a href='#L3602'>3602</a> +<a name='L3603'></a><a href='#L3603'>3603</a> +<a name='L3604'></a><a href='#L3604'>3604</a> +<a name='L3605'></a><a href='#L3605'>3605</a> +<a name='L3606'></a><a href='#L3606'>3606</a> +<a name='L3607'></a><a href='#L3607'>3607</a> +<a name='L3608'></a><a href='#L3608'>3608</a> +<a name='L3609'></a><a href='#L3609'>3609</a> +<a name='L3610'></a><a href='#L3610'>3610</a> +<a name='L3611'></a><a href='#L3611'>3611</a> +<a name='L3612'></a><a href='#L3612'>3612</a> +<a name='L3613'></a><a href='#L3613'>3613</a> +<a name='L3614'></a><a href='#L3614'>3614</a> +<a name='L3615'></a><a href='#L3615'>3615</a> +<a name='L3616'></a><a href='#L3616'>3616</a> +<a name='L3617'></a><a href='#L3617'>3617</a> +<a name='L3618'></a><a href='#L3618'>3618</a> +<a name='L3619'></a><a href='#L3619'>3619</a> +<a name='L3620'></a><a href='#L3620'>3620</a> +<a name='L3621'></a><a href='#L3621'>3621</a> +<a name='L3622'></a><a href='#L3622'>3622</a> +<a name='L3623'></a><a href='#L3623'>3623</a> +<a name='L3624'></a><a href='#L3624'>3624</a> +<a name='L3625'></a><a href='#L3625'>3625</a> +<a name='L3626'></a><a href='#L3626'>3626</a> +<a name='L3627'></a><a href='#L3627'>3627</a> +<a name='L3628'></a><a href='#L3628'>3628</a> +<a name='L3629'></a><a href='#L3629'>3629</a> +<a name='L3630'></a><a href='#L3630'>3630</a> +<a name='L3631'></a><a href='#L3631'>3631</a> +<a name='L3632'></a><a href='#L3632'>3632</a> +<a name='L3633'></a><a href='#L3633'>3633</a> +<a name='L3634'></a><a href='#L3634'>3634</a> +<a name='L3635'></a><a href='#L3635'>3635</a> +<a name='L3636'></a><a href='#L3636'>3636</a> +<a name='L3637'></a><a href='#L3637'>3637</a> +<a name='L3638'></a><a href='#L3638'>3638</a> +<a name='L3639'></a><a href='#L3639'>3639</a> +<a name='L3640'></a><a href='#L3640'>3640</a> +<a name='L3641'></a><a href='#L3641'>3641</a> +<a name='L3642'></a><a href='#L3642'>3642</a> +<a name='L3643'></a><a href='#L3643'>3643</a> +<a name='L3644'></a><a href='#L3644'>3644</a> +<a name='L3645'></a><a href='#L3645'>3645</a> +<a name='L3646'></a><a href='#L3646'>3646</a> +<a name='L3647'></a><a href='#L3647'>3647</a> +<a name='L3648'></a><a href='#L3648'>3648</a> +<a name='L3649'></a><a href='#L3649'>3649</a> +<a name='L3650'></a><a href='#L3650'>3650</a> +<a name='L3651'></a><a href='#L3651'>3651</a> +<a name='L3652'></a><a href='#L3652'>3652</a> +<a name='L3653'></a><a href='#L3653'>3653</a> +<a name='L3654'></a><a href='#L3654'>3654</a> +<a name='L3655'></a><a href='#L3655'>3655</a> +<a name='L3656'></a><a href='#L3656'>3656</a> +<a name='L3657'></a><a href='#L3657'>3657</a> +<a name='L3658'></a><a href='#L3658'>3658</a> +<a name='L3659'></a><a href='#L3659'>3659</a> +<a name='L3660'></a><a href='#L3660'>3660</a> +<a name='L3661'></a><a href='#L3661'>3661</a> +<a name='L3662'></a><a href='#L3662'>3662</a> +<a name='L3663'></a><a href='#L3663'>3663</a> +<a name='L3664'></a><a href='#L3664'>3664</a> +<a name='L3665'></a><a href='#L3665'>3665</a> +<a name='L3666'></a><a href='#L3666'>3666</a> +<a name='L3667'></a><a href='#L3667'>3667</a> +<a name='L3668'></a><a href='#L3668'>3668</a> +<a name='L3669'></a><a href='#L3669'>3669</a> +<a name='L3670'></a><a href='#L3670'>3670</a> +<a name='L3671'></a><a href='#L3671'>3671</a> +<a name='L3672'></a><a href='#L3672'>3672</a> +<a name='L3673'></a><a href='#L3673'>3673</a> +<a name='L3674'></a><a href='#L3674'>3674</a> +<a name='L3675'></a><a href='#L3675'>3675</a> +<a name='L3676'></a><a href='#L3676'>3676</a> +<a name='L3677'></a><a href='#L3677'>3677</a> +<a name='L3678'></a><a href='#L3678'>3678</a> +<a name='L3679'></a><a href='#L3679'>3679</a> +<a name='L3680'></a><a href='#L3680'>3680</a> +<a name='L3681'></a><a href='#L3681'>3681</a> +<a name='L3682'></a><a href='#L3682'>3682</a> +<a name='L3683'></a><a href='#L3683'>3683</a> +<a name='L3684'></a><a href='#L3684'>3684</a> +<a name='L3685'></a><a href='#L3685'>3685</a> +<a name='L3686'></a><a href='#L3686'>3686</a> +<a name='L3687'></a><a href='#L3687'>3687</a> +<a name='L3688'></a><a href='#L3688'>3688</a> +<a name='L3689'></a><a href='#L3689'>3689</a> +<a name='L3690'></a><a href='#L3690'>3690</a> +<a name='L3691'></a><a href='#L3691'>3691</a> +<a name='L3692'></a><a href='#L3692'>3692</a> +<a name='L3693'></a><a href='#L3693'>3693</a> +<a name='L3694'></a><a href='#L3694'>3694</a> +<a name='L3695'></a><a href='#L3695'>3695</a> +<a name='L3696'></a><a href='#L3696'>3696</a> +<a name='L3697'></a><a href='#L3697'>3697</a> +<a name='L3698'></a><a href='#L3698'>3698</a> +<a name='L3699'></a><a href='#L3699'>3699</a> +<a name='L3700'></a><a href='#L3700'>3700</a> +<a name='L3701'></a><a href='#L3701'>3701</a> +<a name='L3702'></a><a href='#L3702'>3702</a> +<a name='L3703'></a><a href='#L3703'>3703</a> +<a name='L3704'></a><a href='#L3704'>3704</a> +<a name='L3705'></a><a href='#L3705'>3705</a> +<a name='L3706'></a><a href='#L3706'>3706</a> +<a name='L3707'></a><a href='#L3707'>3707</a> +<a name='L3708'></a><a href='#L3708'>3708</a> +<a name='L3709'></a><a href='#L3709'>3709</a> +<a name='L3710'></a><a href='#L3710'>3710</a> +<a name='L3711'></a><a href='#L3711'>3711</a> +<a name='L3712'></a><a href='#L3712'>3712</a> +<a name='L3713'></a><a href='#L3713'>3713</a> +<a name='L3714'></a><a href='#L3714'>3714</a> +<a name='L3715'></a><a href='#L3715'>3715</a> +<a name='L3716'></a><a href='#L3716'>3716</a> +<a name='L3717'></a><a href='#L3717'>3717</a> +<a name='L3718'></a><a href='#L3718'>3718</a> +<a name='L3719'></a><a href='#L3719'>3719</a> +<a name='L3720'></a><a href='#L3720'>3720</a> +<a name='L3721'></a><a href='#L3721'>3721</a> +<a name='L3722'></a><a href='#L3722'>3722</a> +<a name='L3723'></a><a href='#L3723'>3723</a> +<a name='L3724'></a><a href='#L3724'>3724</a> +<a name='L3725'></a><a href='#L3725'>3725</a> +<a name='L3726'></a><a href='#L3726'>3726</a> +<a name='L3727'></a><a href='#L3727'>3727</a> +<a name='L3728'></a><a href='#L3728'>3728</a> +<a name='L3729'></a><a href='#L3729'>3729</a> +<a name='L3730'></a><a href='#L3730'>3730</a> +<a name='L3731'></a><a href='#L3731'>3731</a> +<a name='L3732'></a><a href='#L3732'>3732</a> +<a name='L3733'></a><a href='#L3733'>3733</a> +<a name='L3734'></a><a href='#L3734'>3734</a> +<a name='L3735'></a><a href='#L3735'>3735</a> +<a name='L3736'></a><a href='#L3736'>3736</a> +<a name='L3737'></a><a href='#L3737'>3737</a> +<a name='L3738'></a><a href='#L3738'>3738</a> +<a name='L3739'></a><a href='#L3739'>3739</a> +<a name='L3740'></a><a href='#L3740'>3740</a> +<a name='L3741'></a><a href='#L3741'>3741</a> +<a name='L3742'></a><a href='#L3742'>3742</a> +<a name='L3743'></a><a href='#L3743'>3743</a> +<a name='L3744'></a><a href='#L3744'>3744</a> +<a name='L3745'></a><a href='#L3745'>3745</a> +<a name='L3746'></a><a href='#L3746'>3746</a> +<a name='L3747'></a><a href='#L3747'>3747</a> +<a name='L3748'></a><a href='#L3748'>3748</a> +<a name='L3749'></a><a href='#L3749'>3749</a> +<a name='L3750'></a><a href='#L3750'>3750</a> +<a name='L3751'></a><a href='#L3751'>3751</a> +<a name='L3752'></a><a href='#L3752'>3752</a> +<a name='L3753'></a><a href='#L3753'>3753</a> +<a name='L3754'></a><a href='#L3754'>3754</a> +<a name='L3755'></a><a href='#L3755'>3755</a> +<a name='L3756'></a><a href='#L3756'>3756</a> +<a name='L3757'></a><a href='#L3757'>3757</a> +<a name='L3758'></a><a href='#L3758'>3758</a> +<a name='L3759'></a><a href='#L3759'>3759</a> +<a name='L3760'></a><a href='#L3760'>3760</a> +<a name='L3761'></a><a href='#L3761'>3761</a> +<a name='L3762'></a><a href='#L3762'>3762</a> +<a name='L3763'></a><a href='#L3763'>3763</a> +<a name='L3764'></a><a href='#L3764'>3764</a> +<a name='L3765'></a><a href='#L3765'>3765</a> +<a name='L3766'></a><a href='#L3766'>3766</a> +<a name='L3767'></a><a href='#L3767'>3767</a> +<a name='L3768'></a><a href='#L3768'>3768</a> +<a name='L3769'></a><a href='#L3769'>3769</a> +<a name='L3770'></a><a href='#L3770'>3770</a> +<a name='L3771'></a><a href='#L3771'>3771</a> +<a name='L3772'></a><a href='#L3772'>3772</a> +<a name='L3773'></a><a href='#L3773'>3773</a> +<a name='L3774'></a><a href='#L3774'>3774</a> +<a name='L3775'></a><a href='#L3775'>3775</a> +<a name='L3776'></a><a href='#L3776'>3776</a> +<a name='L3777'></a><a href='#L3777'>3777</a> +<a name='L3778'></a><a href='#L3778'>3778</a> +<a name='L3779'></a><a href='#L3779'>3779</a> +<a name='L3780'></a><a href='#L3780'>3780</a> +<a name='L3781'></a><a href='#L3781'>3781</a> +<a name='L3782'></a><a href='#L3782'>3782</a> +<a name='L3783'></a><a href='#L3783'>3783</a> +<a name='L3784'></a><a href='#L3784'>3784</a> +<a name='L3785'></a><a href='#L3785'>3785</a> +<a name='L3786'></a><a href='#L3786'>3786</a> +<a name='L3787'></a><a href='#L3787'>3787</a> +<a name='L3788'></a><a href='#L3788'>3788</a> +<a name='L3789'></a><a href='#L3789'>3789</a> +<a name='L3790'></a><a href='#L3790'>3790</a> +<a name='L3791'></a><a href='#L3791'>3791</a> +<a name='L3792'></a><a href='#L3792'>3792</a> +<a name='L3793'></a><a href='#L3793'>3793</a> +<a name='L3794'></a><a href='#L3794'>3794</a> +<a name='L3795'></a><a href='#L3795'>3795</a> +<a name='L3796'></a><a href='#L3796'>3796</a> +<a name='L3797'></a><a href='#L3797'>3797</a> +<a name='L3798'></a><a href='#L3798'>3798</a> +<a name='L3799'></a><a href='#L3799'>3799</a> +<a name='L3800'></a><a href='#L3800'>3800</a> +<a name='L3801'></a><a href='#L3801'>3801</a> +<a name='L3802'></a><a href='#L3802'>3802</a> +<a name='L3803'></a><a href='#L3803'>3803</a> +<a name='L3804'></a><a href='#L3804'>3804</a> +<a name='L3805'></a><a href='#L3805'>3805</a> +<a name='L3806'></a><a href='#L3806'>3806</a> +<a name='L3807'></a><a href='#L3807'>3807</a> +<a name='L3808'></a><a href='#L3808'>3808</a> +<a name='L3809'></a><a href='#L3809'>3809</a> +<a name='L3810'></a><a href='#L3810'>3810</a> +<a name='L3811'></a><a href='#L3811'>3811</a> +<a name='L3812'></a><a href='#L3812'>3812</a> +<a name='L3813'></a><a href='#L3813'>3813</a> +<a name='L3814'></a><a href='#L3814'>3814</a> +<a name='L3815'></a><a href='#L3815'>3815</a> +<a name='L3816'></a><a href='#L3816'>3816</a> +<a name='L3817'></a><a href='#L3817'>3817</a> +<a name='L3818'></a><a href='#L3818'>3818</a> +<a name='L3819'></a><a href='#L3819'>3819</a> +<a name='L3820'></a><a href='#L3820'>3820</a> +<a name='L3821'></a><a href='#L3821'>3821</a> +<a name='L3822'></a><a href='#L3822'>3822</a> +<a name='L3823'></a><a href='#L3823'>3823</a> +<a name='L3824'></a><a href='#L3824'>3824</a> +<a name='L3825'></a><a href='#L3825'>3825</a> +<a name='L3826'></a><a href='#L3826'>3826</a> +<a name='L3827'></a><a href='#L3827'>3827</a> +<a name='L3828'></a><a href='#L3828'>3828</a> +<a name='L3829'></a><a href='#L3829'>3829</a> +<a name='L3830'></a><a href='#L3830'>3830</a> +<a name='L3831'></a><a href='#L3831'>3831</a> +<a name='L3832'></a><a href='#L3832'>3832</a> +<a name='L3833'></a><a href='#L3833'>3833</a> +<a name='L3834'></a><a href='#L3834'>3834</a> +<a name='L3835'></a><a href='#L3835'>3835</a> +<a name='L3836'></a><a href='#L3836'>3836</a> +<a name='L3837'></a><a href='#L3837'>3837</a> +<a name='L3838'></a><a href='#L3838'>3838</a> +<a name='L3839'></a><a href='#L3839'>3839</a> +<a name='L3840'></a><a href='#L3840'>3840</a> +<a name='L3841'></a><a href='#L3841'>3841</a> +<a name='L3842'></a><a href='#L3842'>3842</a> +<a name='L3843'></a><a href='#L3843'>3843</a> +<a name='L3844'></a><a href='#L3844'>3844</a> +<a name='L3845'></a><a href='#L3845'>3845</a> +<a name='L3846'></a><a href='#L3846'>3846</a> +<a name='L3847'></a><a href='#L3847'>3847</a> +<a name='L3848'></a><a href='#L3848'>3848</a> +<a name='L3849'></a><a href='#L3849'>3849</a> +<a name='L3850'></a><a href='#L3850'>3850</a> +<a name='L3851'></a><a href='#L3851'>3851</a> +<a name='L3852'></a><a href='#L3852'>3852</a> +<a name='L3853'></a><a href='#L3853'>3853</a> +<a name='L3854'></a><a href='#L3854'>3854</a> +<a name='L3855'></a><a href='#L3855'>3855</a> +<a name='L3856'></a><a href='#L3856'>3856</a> +<a name='L3857'></a><a href='#L3857'>3857</a> +<a name='L3858'></a><a href='#L3858'>3858</a> +<a name='L3859'></a><a href='#L3859'>3859</a> +<a name='L3860'></a><a href='#L3860'>3860</a> +<a name='L3861'></a><a href='#L3861'>3861</a> +<a name='L3862'></a><a href='#L3862'>3862</a> +<a name='L3863'></a><a href='#L3863'>3863</a> +<a name='L3864'></a><a href='#L3864'>3864</a> +<a name='L3865'></a><a href='#L3865'>3865</a> +<a name='L3866'></a><a href='#L3866'>3866</a> +<a name='L3867'></a><a href='#L3867'>3867</a> +<a name='L3868'></a><a href='#L3868'>3868</a> +<a name='L3869'></a><a href='#L3869'>3869</a> +<a name='L3870'></a><a href='#L3870'>3870</a> +<a name='L3871'></a><a href='#L3871'>3871</a> +<a name='L3872'></a><a href='#L3872'>3872</a> +<a name='L3873'></a><a href='#L3873'>3873</a> +<a name='L3874'></a><a href='#L3874'>3874</a> +<a name='L3875'></a><a href='#L3875'>3875</a> +<a name='L3876'></a><a href='#L3876'>3876</a> +<a name='L3877'></a><a href='#L3877'>3877</a> +<a name='L3878'></a><a href='#L3878'>3878</a> +<a name='L3879'></a><a href='#L3879'>3879</a> +<a name='L3880'></a><a href='#L3880'>3880</a> +<a name='L3881'></a><a href='#L3881'>3881</a> +<a name='L3882'></a><a href='#L3882'>3882</a> +<a name='L3883'></a><a href='#L3883'>3883</a> +<a name='L3884'></a><a href='#L3884'>3884</a> +<a name='L3885'></a><a href='#L3885'>3885</a> +<a name='L3886'></a><a href='#L3886'>3886</a> +<a name='L3887'></a><a href='#L3887'>3887</a> +<a name='L3888'></a><a href='#L3888'>3888</a> +<a name='L3889'></a><a href='#L3889'>3889</a> +<a name='L3890'></a><a href='#L3890'>3890</a> +<a name='L3891'></a><a href='#L3891'>3891</a> +<a name='L3892'></a><a href='#L3892'>3892</a> +<a name='L3893'></a><a href='#L3893'>3893</a> +<a name='L3894'></a><a href='#L3894'>3894</a> +<a name='L3895'></a><a href='#L3895'>3895</a> +<a name='L3896'></a><a href='#L3896'>3896</a> +<a name='L3897'></a><a href='#L3897'>3897</a> +<a name='L3898'></a><a href='#L3898'>3898</a> +<a name='L3899'></a><a href='#L3899'>3899</a> +<a name='L3900'></a><a href='#L3900'>3900</a> +<a name='L3901'></a><a href='#L3901'>3901</a> +<a name='L3902'></a><a href='#L3902'>3902</a> +<a name='L3903'></a><a href='#L3903'>3903</a> +<a name='L3904'></a><a href='#L3904'>3904</a> +<a name='L3905'></a><a href='#L3905'>3905</a> +<a name='L3906'></a><a href='#L3906'>3906</a> +<a name='L3907'></a><a href='#L3907'>3907</a> +<a name='L3908'></a><a href='#L3908'>3908</a> +<a name='L3909'></a><a href='#L3909'>3909</a> +<a name='L3910'></a><a href='#L3910'>3910</a> +<a name='L3911'></a><a href='#L3911'>3911</a> +<a name='L3912'></a><a href='#L3912'>3912</a> +<a name='L3913'></a><a href='#L3913'>3913</a> +<a name='L3914'></a><a href='#L3914'>3914</a> +<a name='L3915'></a><a href='#L3915'>3915</a> +<a name='L3916'></a><a href='#L3916'>3916</a> +<a name='L3917'></a><a href='#L3917'>3917</a> +<a name='L3918'></a><a href='#L3918'>3918</a> +<a name='L3919'></a><a href='#L3919'>3919</a> +<a name='L3920'></a><a href='#L3920'>3920</a> +<a name='L3921'></a><a href='#L3921'>3921</a> +<a name='L3922'></a><a href='#L3922'>3922</a> +<a name='L3923'></a><a href='#L3923'>3923</a> +<a name='L3924'></a><a href='#L3924'>3924</a> +<a name='L3925'></a><a href='#L3925'>3925</a> +<a name='L3926'></a><a href='#L3926'>3926</a> +<a name='L3927'></a><a href='#L3927'>3927</a> +<a name='L3928'></a><a href='#L3928'>3928</a> +<a name='L3929'></a><a href='#L3929'>3929</a> +<a name='L3930'></a><a href='#L3930'>3930</a> +<a name='L3931'></a><a href='#L3931'>3931</a> +<a name='L3932'></a><a href='#L3932'>3932</a> +<a name='L3933'></a><a href='#L3933'>3933</a> +<a name='L3934'></a><a href='#L3934'>3934</a> +<a name='L3935'></a><a href='#L3935'>3935</a> +<a name='L3936'></a><a href='#L3936'>3936</a> +<a name='L3937'></a><a href='#L3937'>3937</a> +<a name='L3938'></a><a href='#L3938'>3938</a> +<a name='L3939'></a><a href='#L3939'>3939</a> +<a name='L3940'></a><a href='#L3940'>3940</a> +<a name='L3941'></a><a href='#L3941'>3941</a> +<a name='L3942'></a><a href='#L3942'>3942</a> +<a name='L3943'></a><a href='#L3943'>3943</a> +<a name='L3944'></a><a href='#L3944'>3944</a> +<a name='L3945'></a><a href='#L3945'>3945</a> +<a name='L3946'></a><a href='#L3946'>3946</a> +<a name='L3947'></a><a href='#L3947'>3947</a> +<a name='L3948'></a><a href='#L3948'>3948</a> +<a name='L3949'></a><a href='#L3949'>3949</a> +<a name='L3950'></a><a href='#L3950'>3950</a> +<a name='L3951'></a><a href='#L3951'>3951</a> +<a name='L3952'></a><a href='#L3952'>3952</a> +<a name='L3953'></a><a href='#L3953'>3953</a> +<a name='L3954'></a><a href='#L3954'>3954</a> +<a name='L3955'></a><a href='#L3955'>3955</a> +<a name='L3956'></a><a href='#L3956'>3956</a> +<a name='L3957'></a><a href='#L3957'>3957</a> +<a name='L3958'></a><a href='#L3958'>3958</a> +<a name='L3959'></a><a href='#L3959'>3959</a> +<a name='L3960'></a><a href='#L3960'>3960</a> +<a name='L3961'></a><a href='#L3961'>3961</a> +<a name='L3962'></a><a href='#L3962'>3962</a> +<a name='L3963'></a><a href='#L3963'>3963</a> +<a name='L3964'></a><a href='#L3964'>3964</a> +<a name='L3965'></a><a href='#L3965'>3965</a> +<a name='L3966'></a><a href='#L3966'>3966</a> +<a name='L3967'></a><a href='#L3967'>3967</a> +<a name='L3968'></a><a href='#L3968'>3968</a> +<a name='L3969'></a><a href='#L3969'>3969</a> +<a name='L3970'></a><a href='#L3970'>3970</a> +<a name='L3971'></a><a href='#L3971'>3971</a> +<a name='L3972'></a><a href='#L3972'>3972</a> +<a name='L3973'></a><a href='#L3973'>3973</a> +<a name='L3974'></a><a href='#L3974'>3974</a> +<a name='L3975'></a><a href='#L3975'>3975</a> +<a name='L3976'></a><a href='#L3976'>3976</a> +<a name='L3977'></a><a href='#L3977'>3977</a> +<a name='L3978'></a><a href='#L3978'>3978</a> +<a name='L3979'></a><a href='#L3979'>3979</a> +<a name='L3980'></a><a href='#L3980'>3980</a> +<a name='L3981'></a><a href='#L3981'>3981</a> +<a name='L3982'></a><a href='#L3982'>3982</a> +<a name='L3983'></a><a href='#L3983'>3983</a> +<a name='L3984'></a><a href='#L3984'>3984</a> +<a name='L3985'></a><a href='#L3985'>3985</a> +<a name='L3986'></a><a href='#L3986'>3986</a> +<a name='L3987'></a><a href='#L3987'>3987</a> +<a name='L3988'></a><a href='#L3988'>3988</a> +<a name='L3989'></a><a href='#L3989'>3989</a> +<a name='L3990'></a><a href='#L3990'>3990</a> +<a name='L3991'></a><a href='#L3991'>3991</a> +<a name='L3992'></a><a href='#L3992'>3992</a> +<a name='L3993'></a><a href='#L3993'>3993</a> +<a name='L3994'></a><a href='#L3994'>3994</a> +<a name='L3995'></a><a href='#L3995'>3995</a> +<a name='L3996'></a><a href='#L3996'>3996</a> +<a name='L3997'></a><a href='#L3997'>3997</a> +<a name='L3998'></a><a href='#L3998'>3998</a> +<a name='L3999'></a><a href='#L3999'>3999</a> +<a name='L4000'></a><a href='#L4000'>4000</a> +<a name='L4001'></a><a href='#L4001'>4001</a> +<a name='L4002'></a><a href='#L4002'>4002</a> +<a name='L4003'></a><a href='#L4003'>4003</a> +<a name='L4004'></a><a href='#L4004'>4004</a> +<a name='L4005'></a><a href='#L4005'>4005</a> +<a name='L4006'></a><a href='#L4006'>4006</a> +<a name='L4007'></a><a href='#L4007'>4007</a> +<a name='L4008'></a><a href='#L4008'>4008</a> +<a name='L4009'></a><a href='#L4009'>4009</a> +<a name='L4010'></a><a href='#L4010'>4010</a> +<a name='L4011'></a><a href='#L4011'>4011</a> +<a name='L4012'></a><a href='#L4012'>4012</a> +<a name='L4013'></a><a href='#L4013'>4013</a> +<a name='L4014'></a><a href='#L4014'>4014</a> +<a name='L4015'></a><a href='#L4015'>4015</a> +<a name='L4016'></a><a href='#L4016'>4016</a> +<a name='L4017'></a><a href='#L4017'>4017</a> +<a name='L4018'></a><a href='#L4018'>4018</a> +<a name='L4019'></a><a href='#L4019'>4019</a> +<a name='L4020'></a><a href='#L4020'>4020</a> +<a name='L4021'></a><a href='#L4021'>4021</a> +<a name='L4022'></a><a href='#L4022'>4022</a> +<a name='L4023'></a><a href='#L4023'>4023</a> +<a name='L4024'></a><a href='#L4024'>4024</a> +<a name='L4025'></a><a href='#L4025'>4025</a> +<a name='L4026'></a><a href='#L4026'>4026</a> +<a name='L4027'></a><a href='#L4027'>4027</a> +<a name='L4028'></a><a href='#L4028'>4028</a> +<a name='L4029'></a><a href='#L4029'>4029</a> +<a name='L4030'></a><a href='#L4030'>4030</a> +<a name='L4031'></a><a href='#L4031'>4031</a> +<a name='L4032'></a><a href='#L4032'>4032</a> +<a name='L4033'></a><a href='#L4033'>4033</a> +<a name='L4034'></a><a href='#L4034'>4034</a> +<a name='L4035'></a><a href='#L4035'>4035</a> +<a name='L4036'></a><a href='#L4036'>4036</a> +<a name='L4037'></a><a href='#L4037'>4037</a> +<a name='L4038'></a><a href='#L4038'>4038</a> +<a name='L4039'></a><a href='#L4039'>4039</a> +<a name='L4040'></a><a href='#L4040'>4040</a> +<a name='L4041'></a><a href='#L4041'>4041</a> +<a name='L4042'></a><a href='#L4042'>4042</a> +<a name='L4043'></a><a href='#L4043'>4043</a> +<a name='L4044'></a><a href='#L4044'>4044</a> +<a name='L4045'></a><a href='#L4045'>4045</a> +<a name='L4046'></a><a href='#L4046'>4046</a> +<a name='L4047'></a><a href='#L4047'>4047</a> +<a name='L4048'></a><a href='#L4048'>4048</a> +<a name='L4049'></a><a href='#L4049'>4049</a> +<a name='L4050'></a><a href='#L4050'>4050</a> +<a name='L4051'></a><a href='#L4051'>4051</a> +<a name='L4052'></a><a href='#L4052'>4052</a> +<a name='L4053'></a><a href='#L4053'>4053</a> +<a name='L4054'></a><a href='#L4054'>4054</a> +<a name='L4055'></a><a href='#L4055'>4055</a> +<a name='L4056'></a><a href='#L4056'>4056</a> +<a name='L4057'></a><a href='#L4057'>4057</a> +<a name='L4058'></a><a href='#L4058'>4058</a> +<a name='L4059'></a><a href='#L4059'>4059</a> +<a name='L4060'></a><a href='#L4060'>4060</a> +<a name='L4061'></a><a href='#L4061'>4061</a> +<a name='L4062'></a><a href='#L4062'>4062</a> +<a name='L4063'></a><a href='#L4063'>4063</a> +<a name='L4064'></a><a href='#L4064'>4064</a> +<a name='L4065'></a><a href='#L4065'>4065</a> +<a name='L4066'></a><a href='#L4066'>4066</a> +<a name='L4067'></a><a href='#L4067'>4067</a> +<a name='L4068'></a><a href='#L4068'>4068</a> +<a name='L4069'></a><a href='#L4069'>4069</a> +<a name='L4070'></a><a href='#L4070'>4070</a> +<a name='L4071'></a><a href='#L4071'>4071</a> +<a name='L4072'></a><a href='#L4072'>4072</a> +<a name='L4073'></a><a href='#L4073'>4073</a> +<a name='L4074'></a><a href='#L4074'>4074</a> +<a name='L4075'></a><a href='#L4075'>4075</a> +<a name='L4076'></a><a href='#L4076'>4076</a> +<a name='L4077'></a><a href='#L4077'>4077</a> +<a name='L4078'></a><a href='#L4078'>4078</a> +<a name='L4079'></a><a href='#L4079'>4079</a> +<a name='L4080'></a><a href='#L4080'>4080</a> +<a name='L4081'></a><a href='#L4081'>4081</a> +<a name='L4082'></a><a href='#L4082'>4082</a> +<a name='L4083'></a><a href='#L4083'>4083</a> +<a name='L4084'></a><a href='#L4084'>4084</a> +<a name='L4085'></a><a href='#L4085'>4085</a> +<a name='L4086'></a><a href='#L4086'>4086</a> +<a name='L4087'></a><a href='#L4087'>4087</a> +<a name='L4088'></a><a href='#L4088'>4088</a> +<a name='L4089'></a><a href='#L4089'>4089</a> +<a name='L4090'></a><a href='#L4090'>4090</a> +<a name='L4091'></a><a href='#L4091'>4091</a> +<a name='L4092'></a><a href='#L4092'>4092</a> +<a name='L4093'></a><a href='#L4093'>4093</a> +<a name='L4094'></a><a href='#L4094'>4094</a> +<a name='L4095'></a><a href='#L4095'>4095</a> +<a name='L4096'></a><a href='#L4096'>4096</a> +<a name='L4097'></a><a href='#L4097'>4097</a> +<a name='L4098'></a><a href='#L4098'>4098</a> +<a name='L4099'></a><a href='#L4099'>4099</a> +<a name='L4100'></a><a href='#L4100'>4100</a> +<a name='L4101'></a><a href='#L4101'>4101</a> +<a name='L4102'></a><a href='#L4102'>4102</a> +<a name='L4103'></a><a href='#L4103'>4103</a> +<a name='L4104'></a><a href='#L4104'>4104</a> +<a name='L4105'></a><a href='#L4105'>4105</a> +<a name='L4106'></a><a href='#L4106'>4106</a> +<a name='L4107'></a><a href='#L4107'>4107</a> +<a name='L4108'></a><a href='#L4108'>4108</a> +<a name='L4109'></a><a href='#L4109'>4109</a> +<a name='L4110'></a><a href='#L4110'>4110</a> +<a name='L4111'></a><a href='#L4111'>4111</a> +<a name='L4112'></a><a href='#L4112'>4112</a> +<a name='L4113'></a><a href='#L4113'>4113</a> +<a name='L4114'></a><a href='#L4114'>4114</a> +<a name='L4115'></a><a href='#L4115'>4115</a> +<a name='L4116'></a><a href='#L4116'>4116</a> +<a name='L4117'></a><a href='#L4117'>4117</a> +<a name='L4118'></a><a href='#L4118'>4118</a> +<a name='L4119'></a><a href='#L4119'>4119</a> +<a name='L4120'></a><a href='#L4120'>4120</a> +<a name='L4121'></a><a href='#L4121'>4121</a> +<a name='L4122'></a><a href='#L4122'>4122</a> +<a name='L4123'></a><a href='#L4123'>4123</a> +<a name='L4124'></a><a href='#L4124'>4124</a> +<a name='L4125'></a><a href='#L4125'>4125</a> +<a name='L4126'></a><a href='#L4126'>4126</a> +<a name='L4127'></a><a href='#L4127'>4127</a> +<a name='L4128'></a><a href='#L4128'>4128</a> +<a name='L4129'></a><a href='#L4129'>4129</a> +<a name='L4130'></a><a href='#L4130'>4130</a> +<a name='L4131'></a><a href='#L4131'>4131</a> +<a name='L4132'></a><a href='#L4132'>4132</a> +<a name='L4133'></a><a href='#L4133'>4133</a> +<a name='L4134'></a><a href='#L4134'>4134</a> +<a name='L4135'></a><a href='#L4135'>4135</a> +<a name='L4136'></a><a href='#L4136'>4136</a> +<a name='L4137'></a><a href='#L4137'>4137</a> +<a name='L4138'></a><a href='#L4138'>4138</a> +<a name='L4139'></a><a href='#L4139'>4139</a> +<a name='L4140'></a><a href='#L4140'>4140</a> +<a name='L4141'></a><a href='#L4141'>4141</a> +<a name='L4142'></a><a href='#L4142'>4142</a> +<a name='L4143'></a><a href='#L4143'>4143</a> +<a name='L4144'></a><a href='#L4144'>4144</a> +<a name='L4145'></a><a href='#L4145'>4145</a> +<a name='L4146'></a><a href='#L4146'>4146</a> +<a name='L4147'></a><a href='#L4147'>4147</a> +<a name='L4148'></a><a href='#L4148'>4148</a> +<a name='L4149'></a><a href='#L4149'>4149</a> +<a name='L4150'></a><a href='#L4150'>4150</a> +<a name='L4151'></a><a href='#L4151'>4151</a> +<a name='L4152'></a><a href='#L4152'>4152</a> +<a name='L4153'></a><a href='#L4153'>4153</a> +<a name='L4154'></a><a href='#L4154'>4154</a> +<a name='L4155'></a><a href='#L4155'>4155</a> +<a name='L4156'></a><a href='#L4156'>4156</a> +<a name='L4157'></a><a href='#L4157'>4157</a> +<a name='L4158'></a><a href='#L4158'>4158</a> +<a name='L4159'></a><a href='#L4159'>4159</a> +<a name='L4160'></a><a href='#L4160'>4160</a> +<a name='L4161'></a><a href='#L4161'>4161</a> +<a name='L4162'></a><a href='#L4162'>4162</a> +<a name='L4163'></a><a href='#L4163'>4163</a> +<a name='L4164'></a><a href='#L4164'>4164</a> +<a name='L4165'></a><a href='#L4165'>4165</a> +<a name='L4166'></a><a href='#L4166'>4166</a> +<a name='L4167'></a><a href='#L4167'>4167</a> +<a name='L4168'></a><a href='#L4168'>4168</a> +<a name='L4169'></a><a href='#L4169'>4169</a> +<a name='L4170'></a><a href='#L4170'>4170</a> +<a name='L4171'></a><a href='#L4171'>4171</a> +<a name='L4172'></a><a href='#L4172'>4172</a> +<a name='L4173'></a><a href='#L4173'>4173</a> +<a name='L4174'></a><a href='#L4174'>4174</a> +<a name='L4175'></a><a href='#L4175'>4175</a> +<a name='L4176'></a><a href='#L4176'>4176</a> +<a name='L4177'></a><a href='#L4177'>4177</a> +<a name='L4178'></a><a href='#L4178'>4178</a> +<a name='L4179'></a><a href='#L4179'>4179</a> +<a name='L4180'></a><a href='#L4180'>4180</a> +<a name='L4181'></a><a href='#L4181'>4181</a> +<a name='L4182'></a><a href='#L4182'>4182</a> +<a name='L4183'></a><a href='#L4183'>4183</a> +<a name='L4184'></a><a href='#L4184'>4184</a> +<a name='L4185'></a><a href='#L4185'>4185</a> +<a name='L4186'></a><a href='#L4186'>4186</a> +<a name='L4187'></a><a href='#L4187'>4187</a> +<a name='L4188'></a><a href='#L4188'>4188</a> +<a name='L4189'></a><a href='#L4189'>4189</a> +<a name='L4190'></a><a href='#L4190'>4190</a> +<a name='L4191'></a><a href='#L4191'>4191</a> +<a name='L4192'></a><a href='#L4192'>4192</a> +<a name='L4193'></a><a href='#L4193'>4193</a> +<a name='L4194'></a><a href='#L4194'>4194</a> +<a name='L4195'></a><a href='#L4195'>4195</a> +<a name='L4196'></a><a href='#L4196'>4196</a> +<a name='L4197'></a><a href='#L4197'>4197</a> +<a name='L4198'></a><a href='#L4198'>4198</a> +<a name='L4199'></a><a href='#L4199'>4199</a> +<a name='L4200'></a><a href='#L4200'>4200</a> +<a name='L4201'></a><a href='#L4201'>4201</a> +<a name='L4202'></a><a href='#L4202'>4202</a> +<a name='L4203'></a><a href='#L4203'>4203</a> +<a name='L4204'></a><a href='#L4204'>4204</a> +<a name='L4205'></a><a href='#L4205'>4205</a> +<a name='L4206'></a><a href='#L4206'>4206</a> +<a name='L4207'></a><a href='#L4207'>4207</a> +<a name='L4208'></a><a href='#L4208'>4208</a> +<a name='L4209'></a><a href='#L4209'>4209</a> +<a name='L4210'></a><a href='#L4210'>4210</a> +<a name='L4211'></a><a href='#L4211'>4211</a> +<a name='L4212'></a><a href='#L4212'>4212</a> +<a name='L4213'></a><a href='#L4213'>4213</a> +<a name='L4214'></a><a href='#L4214'>4214</a> +<a name='L4215'></a><a href='#L4215'>4215</a> +<a name='L4216'></a><a href='#L4216'>4216</a> +<a name='L4217'></a><a href='#L4217'>4217</a> +<a name='L4218'></a><a href='#L4218'>4218</a> +<a name='L4219'></a><a href='#L4219'>4219</a> +<a name='L4220'></a><a href='#L4220'>4220</a> +<a name='L4221'></a><a href='#L4221'>4221</a> +<a name='L4222'></a><a href='#L4222'>4222</a> +<a name='L4223'></a><a href='#L4223'>4223</a> +<a name='L4224'></a><a href='#L4224'>4224</a> +<a name='L4225'></a><a href='#L4225'>4225</a> +<a name='L4226'></a><a href='#L4226'>4226</a> +<a name='L4227'></a><a href='#L4227'>4227</a> +<a name='L4228'></a><a href='#L4228'>4228</a> +<a name='L4229'></a><a href='#L4229'>4229</a> +<a name='L4230'></a><a href='#L4230'>4230</a> +<a name='L4231'></a><a href='#L4231'>4231</a> +<a name='L4232'></a><a href='#L4232'>4232</a> +<a name='L4233'></a><a href='#L4233'>4233</a> +<a name='L4234'></a><a href='#L4234'>4234</a> +<a name='L4235'></a><a href='#L4235'>4235</a> +<a name='L4236'></a><a href='#L4236'>4236</a> +<a name='L4237'></a><a href='#L4237'>4237</a> +<a name='L4238'></a><a href='#L4238'>4238</a> +<a name='L4239'></a><a href='#L4239'>4239</a> +<a name='L4240'></a><a href='#L4240'>4240</a> +<a name='L4241'></a><a href='#L4241'>4241</a> +<a name='L4242'></a><a href='#L4242'>4242</a> +<a name='L4243'></a><a href='#L4243'>4243</a> +<a name='L4244'></a><a href='#L4244'>4244</a> +<a name='L4245'></a><a href='#L4245'>4245</a> +<a name='L4246'></a><a href='#L4246'>4246</a> +<a name='L4247'></a><a href='#L4247'>4247</a> +<a name='L4248'></a><a href='#L4248'>4248</a> +<a name='L4249'></a><a href='#L4249'>4249</a> +<a name='L4250'></a><a href='#L4250'>4250</a> +<a name='L4251'></a><a href='#L4251'>4251</a> +<a name='L4252'></a><a href='#L4252'>4252</a> +<a name='L4253'></a><a href='#L4253'>4253</a> +<a name='L4254'></a><a href='#L4254'>4254</a> +<a name='L4255'></a><a href='#L4255'>4255</a> +<a name='L4256'></a><a href='#L4256'>4256</a> +<a name='L4257'></a><a href='#L4257'>4257</a> +<a name='L4258'></a><a href='#L4258'>4258</a> +<a name='L4259'></a><a href='#L4259'>4259</a> +<a name='L4260'></a><a href='#L4260'>4260</a> +<a name='L4261'></a><a href='#L4261'>4261</a> +<a name='L4262'></a><a href='#L4262'>4262</a> +<a name='L4263'></a><a href='#L4263'>4263</a> +<a name='L4264'></a><a href='#L4264'>4264</a> +<a name='L4265'></a><a href='#L4265'>4265</a> +<a name='L4266'></a><a href='#L4266'>4266</a> +<a name='L4267'></a><a href='#L4267'>4267</a> +<a name='L4268'></a><a href='#L4268'>4268</a> +<a name='L4269'></a><a href='#L4269'>4269</a> +<a name='L4270'></a><a href='#L4270'>4270</a> +<a name='L4271'></a><a href='#L4271'>4271</a> +<a name='L4272'></a><a href='#L4272'>4272</a> +<a name='L4273'></a><a href='#L4273'>4273</a> +<a name='L4274'></a><a href='#L4274'>4274</a> +<a name='L4275'></a><a href='#L4275'>4275</a> +<a name='L4276'></a><a href='#L4276'>4276</a> +<a name='L4277'></a><a href='#L4277'>4277</a> +<a name='L4278'></a><a href='#L4278'>4278</a> +<a name='L4279'></a><a href='#L4279'>4279</a> +<a name='L4280'></a><a href='#L4280'>4280</a> +<a name='L4281'></a><a href='#L4281'>4281</a> +<a name='L4282'></a><a href='#L4282'>4282</a> +<a name='L4283'></a><a href='#L4283'>4283</a> +<a name='L4284'></a><a href='#L4284'>4284</a> +<a name='L4285'></a><a href='#L4285'>4285</a> +<a name='L4286'></a><a href='#L4286'>4286</a> +<a name='L4287'></a><a href='#L4287'>4287</a> +<a name='L4288'></a><a href='#L4288'>4288</a> +<a name='L4289'></a><a href='#L4289'>4289</a> +<a name='L4290'></a><a href='#L4290'>4290</a> +<a name='L4291'></a><a href='#L4291'>4291</a> +<a name='L4292'></a><a href='#L4292'>4292</a> +<a name='L4293'></a><a href='#L4293'>4293</a> +<a name='L4294'></a><a href='#L4294'>4294</a> +<a name='L4295'></a><a href='#L4295'>4295</a> +<a name='L4296'></a><a href='#L4296'>4296</a> +<a name='L4297'></a><a href='#L4297'>4297</a> +<a name='L4298'></a><a href='#L4298'>4298</a> +<a name='L4299'></a><a href='#L4299'>4299</a> +<a name='L4300'></a><a href='#L4300'>4300</a> +<a name='L4301'></a><a href='#L4301'>4301</a> +<a name='L4302'></a><a href='#L4302'>4302</a> +<a name='L4303'></a><a href='#L4303'>4303</a> +<a name='L4304'></a><a href='#L4304'>4304</a> +<a name='L4305'></a><a href='#L4305'>4305</a> +<a name='L4306'></a><a href='#L4306'>4306</a> +<a name='L4307'></a><a href='#L4307'>4307</a> +<a name='L4308'></a><a href='#L4308'>4308</a> +<a name='L4309'></a><a href='#L4309'>4309</a> +<a name='L4310'></a><a href='#L4310'>4310</a> +<a name='L4311'></a><a href='#L4311'>4311</a> +<a name='L4312'></a><a href='#L4312'>4312</a> +<a name='L4313'></a><a href='#L4313'>4313</a> +<a name='L4314'></a><a href='#L4314'>4314</a> +<a name='L4315'></a><a href='#L4315'>4315</a> +<a name='L4316'></a><a href='#L4316'>4316</a> +<a name='L4317'></a><a href='#L4317'>4317</a> +<a name='L4318'></a><a href='#L4318'>4318</a> +<a name='L4319'></a><a href='#L4319'>4319</a> +<a name='L4320'></a><a href='#L4320'>4320</a> +<a name='L4321'></a><a href='#L4321'>4321</a> +<a name='L4322'></a><a href='#L4322'>4322</a> +<a name='L4323'></a><a href='#L4323'>4323</a> +<a name='L4324'></a><a href='#L4324'>4324</a> +<a name='L4325'></a><a href='#L4325'>4325</a> +<a name='L4326'></a><a href='#L4326'>4326</a> +<a name='L4327'></a><a href='#L4327'>4327</a> +<a name='L4328'></a><a href='#L4328'>4328</a> +<a name='L4329'></a><a href='#L4329'>4329</a> +<a name='L4330'></a><a href='#L4330'>4330</a> +<a name='L4331'></a><a href='#L4331'>4331</a> +<a name='L4332'></a><a href='#L4332'>4332</a> +<a name='L4333'></a><a href='#L4333'>4333</a> +<a name='L4334'></a><a href='#L4334'>4334</a> +<a name='L4335'></a><a href='#L4335'>4335</a> +<a name='L4336'></a><a href='#L4336'>4336</a> +<a name='L4337'></a><a href='#L4337'>4337</a> +<a name='L4338'></a><a href='#L4338'>4338</a> +<a name='L4339'></a><a href='#L4339'>4339</a> +<a name='L4340'></a><a href='#L4340'>4340</a> +<a name='L4341'></a><a href='#L4341'>4341</a> +<a name='L4342'></a><a href='#L4342'>4342</a> +<a name='L4343'></a><a href='#L4343'>4343</a> +<a name='L4344'></a><a href='#L4344'>4344</a> +<a name='L4345'></a><a href='#L4345'>4345</a> +<a name='L4346'></a><a href='#L4346'>4346</a> +<a name='L4347'></a><a href='#L4347'>4347</a> +<a name='L4348'></a><a href='#L4348'>4348</a> +<a name='L4349'></a><a href='#L4349'>4349</a> +<a name='L4350'></a><a href='#L4350'>4350</a> +<a name='L4351'></a><a href='#L4351'>4351</a> +<a name='L4352'></a><a href='#L4352'>4352</a> +<a name='L4353'></a><a href='#L4353'>4353</a> +<a name='L4354'></a><a href='#L4354'>4354</a> +<a name='L4355'></a><a href='#L4355'>4355</a> +<a name='L4356'></a><a href='#L4356'>4356</a> +<a name='L4357'></a><a href='#L4357'>4357</a> +<a name='L4358'></a><a href='#L4358'>4358</a> +<a name='L4359'></a><a href='#L4359'>4359</a> +<a name='L4360'></a><a href='#L4360'>4360</a> +<a name='L4361'></a><a href='#L4361'>4361</a> +<a name='L4362'></a><a href='#L4362'>4362</a> +<a name='L4363'></a><a href='#L4363'>4363</a> +<a name='L4364'></a><a href='#L4364'>4364</a> +<a name='L4365'></a><a href='#L4365'>4365</a> +<a name='L4366'></a><a href='#L4366'>4366</a> +<a name='L4367'></a><a href='#L4367'>4367</a> +<a name='L4368'></a><a href='#L4368'>4368</a> +<a name='L4369'></a><a href='#L4369'>4369</a> +<a name='L4370'></a><a href='#L4370'>4370</a> +<a name='L4371'></a><a href='#L4371'>4371</a> +<a name='L4372'></a><a href='#L4372'>4372</a> +<a name='L4373'></a><a href='#L4373'>4373</a> +<a name='L4374'></a><a href='#L4374'>4374</a> +<a name='L4375'></a><a href='#L4375'>4375</a> +<a name='L4376'></a><a href='#L4376'>4376</a> +<a name='L4377'></a><a href='#L4377'>4377</a> +<a name='L4378'></a><a href='#L4378'>4378</a> +<a name='L4379'></a><a href='#L4379'>4379</a> +<a name='L4380'></a><a href='#L4380'>4380</a> +<a name='L4381'></a><a href='#L4381'>4381</a> +<a name='L4382'></a><a href='#L4382'>4382</a> +<a name='L4383'></a><a href='#L4383'>4383</a> +<a name='L4384'></a><a href='#L4384'>4384</a> +<a name='L4385'></a><a href='#L4385'>4385</a> +<a name='L4386'></a><a href='#L4386'>4386</a> +<a name='L4387'></a><a href='#L4387'>4387</a> +<a name='L4388'></a><a href='#L4388'>4388</a> +<a name='L4389'></a><a href='#L4389'>4389</a> +<a name='L4390'></a><a href='#L4390'>4390</a> +<a name='L4391'></a><a href='#L4391'>4391</a> +<a name='L4392'></a><a href='#L4392'>4392</a> +<a name='L4393'></a><a href='#L4393'>4393</a> +<a name='L4394'></a><a href='#L4394'>4394</a> +<a name='L4395'></a><a href='#L4395'>4395</a> +<a name='L4396'></a><a href='#L4396'>4396</a> +<a name='L4397'></a><a href='#L4397'>4397</a> +<a name='L4398'></a><a href='#L4398'>4398</a> +<a name='L4399'></a><a href='#L4399'>4399</a> +<a name='L4400'></a><a href='#L4400'>4400</a> +<a name='L4401'></a><a href='#L4401'>4401</a> +<a name='L4402'></a><a href='#L4402'>4402</a> +<a name='L4403'></a><a href='#L4403'>4403</a> +<a name='L4404'></a><a href='#L4404'>4404</a> +<a name='L4405'></a><a href='#L4405'>4405</a> +<a name='L4406'></a><a href='#L4406'>4406</a> +<a name='L4407'></a><a href='#L4407'>4407</a> +<a name='L4408'></a><a href='#L4408'>4408</a> +<a name='L4409'></a><a href='#L4409'>4409</a> +<a name='L4410'></a><a href='#L4410'>4410</a> +<a name='L4411'></a><a href='#L4411'>4411</a> +<a name='L4412'></a><a href='#L4412'>4412</a> +<a name='L4413'></a><a href='#L4413'>4413</a> +<a name='L4414'></a><a href='#L4414'>4414</a> +<a name='L4415'></a><a href='#L4415'>4415</a> +<a name='L4416'></a><a href='#L4416'>4416</a> +<a name='L4417'></a><a href='#L4417'>4417</a> +<a name='L4418'></a><a href='#L4418'>4418</a> +<a name='L4419'></a><a href='#L4419'>4419</a> +<a name='L4420'></a><a href='#L4420'>4420</a> +<a name='L4421'></a><a href='#L4421'>4421</a> +<a name='L4422'></a><a href='#L4422'>4422</a> +<a name='L4423'></a><a href='#L4423'>4423</a> +<a name='L4424'></a><a href='#L4424'>4424</a> +<a name='L4425'></a><a href='#L4425'>4425</a> +<a name='L4426'></a><a href='#L4426'>4426</a> +<a name='L4427'></a><a href='#L4427'>4427</a> +<a name='L4428'></a><a href='#L4428'>4428</a> +<a name='L4429'></a><a href='#L4429'>4429</a> +<a name='L4430'></a><a href='#L4430'>4430</a> +<a name='L4431'></a><a href='#L4431'>4431</a> +<a name='L4432'></a><a href='#L4432'>4432</a> +<a name='L4433'></a><a href='#L4433'>4433</a> +<a name='L4434'></a><a href='#L4434'>4434</a> +<a name='L4435'></a><a href='#L4435'>4435</a> +<a name='L4436'></a><a href='#L4436'>4436</a> +<a name='L4437'></a><a href='#L4437'>4437</a> +<a name='L4438'></a><a href='#L4438'>4438</a> +<a name='L4439'></a><a href='#L4439'>4439</a> +<a name='L4440'></a><a href='#L4440'>4440</a> +<a name='L4441'></a><a href='#L4441'>4441</a> +<a name='L4442'></a><a href='#L4442'>4442</a> +<a name='L4443'></a><a href='#L4443'>4443</a> +<a name='L4444'></a><a href='#L4444'>4444</a> +<a name='L4445'></a><a href='#L4445'>4445</a> +<a name='L4446'></a><a href='#L4446'>4446</a> +<a name='L4447'></a><a href='#L4447'>4447</a> +<a name='L4448'></a><a href='#L4448'>4448</a> +<a name='L4449'></a><a href='#L4449'>4449</a> +<a name='L4450'></a><a href='#L4450'>4450</a> +<a name='L4451'></a><a href='#L4451'>4451</a> +<a name='L4452'></a><a href='#L4452'>4452</a> +<a name='L4453'></a><a href='#L4453'>4453</a> +<a name='L4454'></a><a href='#L4454'>4454</a> +<a name='L4455'></a><a href='#L4455'>4455</a> +<a name='L4456'></a><a href='#L4456'>4456</a> +<a name='L4457'></a><a href='#L4457'>4457</a> +<a name='L4458'></a><a href='#L4458'>4458</a> +<a name='L4459'></a><a href='#L4459'>4459</a> +<a name='L4460'></a><a href='#L4460'>4460</a> +<a name='L4461'></a><a href='#L4461'>4461</a> +<a name='L4462'></a><a href='#L4462'>4462</a> +<a name='L4463'></a><a href='#L4463'>4463</a> +<a name='L4464'></a><a href='#L4464'>4464</a> +<a name='L4465'></a><a href='#L4465'>4465</a> +<a name='L4466'></a><a href='#L4466'>4466</a> +<a name='L4467'></a><a href='#L4467'>4467</a> +<a name='L4468'></a><a href='#L4468'>4468</a> +<a name='L4469'></a><a href='#L4469'>4469</a> +<a name='L4470'></a><a href='#L4470'>4470</a> +<a name='L4471'></a><a href='#L4471'>4471</a> +<a name='L4472'></a><a href='#L4472'>4472</a> +<a name='L4473'></a><a href='#L4473'>4473</a> +<a name='L4474'></a><a href='#L4474'>4474</a> +<a name='L4475'></a><a href='#L4475'>4475</a> +<a name='L4476'></a><a href='#L4476'>4476</a> +<a name='L4477'></a><a href='#L4477'>4477</a> +<a name='L4478'></a><a href='#L4478'>4478</a> +<a name='L4479'></a><a href='#L4479'>4479</a> +<a name='L4480'></a><a href='#L4480'>4480</a> +<a name='L4481'></a><a href='#L4481'>4481</a> +<a name='L4482'></a><a href='#L4482'>4482</a> +<a name='L4483'></a><a href='#L4483'>4483</a> +<a name='L4484'></a><a href='#L4484'>4484</a> +<a name='L4485'></a><a href='#L4485'>4485</a> +<a name='L4486'></a><a href='#L4486'>4486</a> +<a name='L4487'></a><a href='#L4487'>4487</a> +<a name='L4488'></a><a href='#L4488'>4488</a> +<a name='L4489'></a><a href='#L4489'>4489</a> +<a name='L4490'></a><a href='#L4490'>4490</a> +<a name='L4491'></a><a href='#L4491'>4491</a> +<a name='L4492'></a><a href='#L4492'>4492</a> +<a name='L4493'></a><a href='#L4493'>4493</a> +<a name='L4494'></a><a href='#L4494'>4494</a> +<a name='L4495'></a><a href='#L4495'>4495</a> +<a name='L4496'></a><a href='#L4496'>4496</a> +<a name='L4497'></a><a href='#L4497'>4497</a> +<a name='L4498'></a><a href='#L4498'>4498</a> +<a name='L4499'></a><a href='#L4499'>4499</a> +<a name='L4500'></a><a href='#L4500'>4500</a> +<a name='L4501'></a><a href='#L4501'>4501</a> +<a name='L4502'></a><a href='#L4502'>4502</a> +<a name='L4503'></a><a href='#L4503'>4503</a> +<a name='L4504'></a><a href='#L4504'>4504</a> +<a name='L4505'></a><a href='#L4505'>4505</a> +<a name='L4506'></a><a href='#L4506'>4506</a> +<a name='L4507'></a><a href='#L4507'>4507</a> +<a name='L4508'></a><a href='#L4508'>4508</a> +<a name='L4509'></a><a href='#L4509'>4509</a> +<a name='L4510'></a><a href='#L4510'>4510</a> +<a name='L4511'></a><a href='#L4511'>4511</a> +<a name='L4512'></a><a href='#L4512'>4512</a> +<a name='L4513'></a><a href='#L4513'>4513</a> +<a name='L4514'></a><a href='#L4514'>4514</a> +<a name='L4515'></a><a href='#L4515'>4515</a> +<a name='L4516'></a><a href='#L4516'>4516</a> +<a name='L4517'></a><a href='#L4517'>4517</a> +<a name='L4518'></a><a href='#L4518'>4518</a> +<a name='L4519'></a><a href='#L4519'>4519</a> +<a name='L4520'></a><a href='#L4520'>4520</a> +<a name='L4521'></a><a href='#L4521'>4521</a> +<a name='L4522'></a><a href='#L4522'>4522</a> +<a name='L4523'></a><a href='#L4523'>4523</a> +<a name='L4524'></a><a href='#L4524'>4524</a> +<a name='L4525'></a><a href='#L4525'>4525</a> +<a name='L4526'></a><a href='#L4526'>4526</a> +<a name='L4527'></a><a href='#L4527'>4527</a> +<a name='L4528'></a><a href='#L4528'>4528</a> +<a name='L4529'></a><a href='#L4529'>4529</a> +<a name='L4530'></a><a href='#L4530'>4530</a> +<a name='L4531'></a><a href='#L4531'>4531</a> +<a name='L4532'></a><a href='#L4532'>4532</a> +<a name='L4533'></a><a href='#L4533'>4533</a> +<a name='L4534'></a><a href='#L4534'>4534</a> +<a name='L4535'></a><a href='#L4535'>4535</a> +<a name='L4536'></a><a href='#L4536'>4536</a> +<a name='L4537'></a><a href='#L4537'>4537</a> +<a name='L4538'></a><a href='#L4538'>4538</a> +<a name='L4539'></a><a href='#L4539'>4539</a> +<a name='L4540'></a><a href='#L4540'>4540</a> +<a name='L4541'></a><a href='#L4541'>4541</a> +<a name='L4542'></a><a href='#L4542'>4542</a> +<a name='L4543'></a><a href='#L4543'>4543</a> +<a name='L4544'></a><a href='#L4544'>4544</a> +<a name='L4545'></a><a href='#L4545'>4545</a> +<a name='L4546'></a><a href='#L4546'>4546</a> +<a name='L4547'></a><a href='#L4547'>4547</a> +<a name='L4548'></a><a href='#L4548'>4548</a> +<a name='L4549'></a><a href='#L4549'>4549</a> +<a name='L4550'></a><a href='#L4550'>4550</a> +<a name='L4551'></a><a href='#L4551'>4551</a> +<a name='L4552'></a><a href='#L4552'>4552</a> +<a name='L4553'></a><a href='#L4553'>4553</a> +<a name='L4554'></a><a href='#L4554'>4554</a> +<a name='L4555'></a><a href='#L4555'>4555</a> +<a name='L4556'></a><a href='#L4556'>4556</a> +<a name='L4557'></a><a href='#L4557'>4557</a> +<a name='L4558'></a><a href='#L4558'>4558</a> +<a name='L4559'></a><a href='#L4559'>4559</a> +<a name='L4560'></a><a href='#L4560'>4560</a> +<a name='L4561'></a><a href='#L4561'>4561</a> +<a name='L4562'></a><a href='#L4562'>4562</a> +<a name='L4563'></a><a href='#L4563'>4563</a> +<a name='L4564'></a><a href='#L4564'>4564</a> +<a name='L4565'></a><a href='#L4565'>4565</a> +<a name='L4566'></a><a href='#L4566'>4566</a> +<a name='L4567'></a><a href='#L4567'>4567</a> +<a name='L4568'></a><a href='#L4568'>4568</a> +<a name='L4569'></a><a href='#L4569'>4569</a> +<a name='L4570'></a><a href='#L4570'>4570</a> +<a name='L4571'></a><a href='#L4571'>4571</a> +<a name='L4572'></a><a href='#L4572'>4572</a> +<a name='L4573'></a><a href='#L4573'>4573</a> +<a name='L4574'></a><a href='#L4574'>4574</a> +<a name='L4575'></a><a href='#L4575'>4575</a> +<a name='L4576'></a><a href='#L4576'>4576</a> +<a name='L4577'></a><a href='#L4577'>4577</a> +<a name='L4578'></a><a href='#L4578'>4578</a> +<a name='L4579'></a><a href='#L4579'>4579</a> +<a name='L4580'></a><a href='#L4580'>4580</a> +<a name='L4581'></a><a href='#L4581'>4581</a> +<a name='L4582'></a><a href='#L4582'>4582</a> +<a name='L4583'></a><a href='#L4583'>4583</a> +<a name='L4584'></a><a href='#L4584'>4584</a> +<a name='L4585'></a><a href='#L4585'>4585</a> +<a name='L4586'></a><a href='#L4586'>4586</a> +<a name='L4587'></a><a href='#L4587'>4587</a> +<a name='L4588'></a><a href='#L4588'>4588</a> +<a name='L4589'></a><a href='#L4589'>4589</a> +<a name='L4590'></a><a href='#L4590'>4590</a> +<a name='L4591'></a><a href='#L4591'>4591</a> +<a name='L4592'></a><a href='#L4592'>4592</a> +<a name='L4593'></a><a href='#L4593'>4593</a> +<a name='L4594'></a><a href='#L4594'>4594</a> +<a name='L4595'></a><a href='#L4595'>4595</a> +<a name='L4596'></a><a href='#L4596'>4596</a> +<a name='L4597'></a><a href='#L4597'>4597</a> +<a name='L4598'></a><a href='#L4598'>4598</a> +<a name='L4599'></a><a href='#L4599'>4599</a> +<a name='L4600'></a><a href='#L4600'>4600</a> +<a name='L4601'></a><a href='#L4601'>4601</a> +<a name='L4602'></a><a href='#L4602'>4602</a> +<a name='L4603'></a><a href='#L4603'>4603</a> +<a name='L4604'></a><a href='#L4604'>4604</a> +<a name='L4605'></a><a href='#L4605'>4605</a> +<a name='L4606'></a><a href='#L4606'>4606</a> +<a name='L4607'></a><a href='#L4607'>4607</a> +<a name='L4608'></a><a href='#L4608'>4608</a> +<a name='L4609'></a><a href='#L4609'>4609</a> +<a name='L4610'></a><a href='#L4610'>4610</a> +<a name='L4611'></a><a href='#L4611'>4611</a> +<a name='L4612'></a><a href='#L4612'>4612</a> +<a name='L4613'></a><a href='#L4613'>4613</a> +<a name='L4614'></a><a href='#L4614'>4614</a> +<a name='L4615'></a><a href='#L4615'>4615</a> +<a name='L4616'></a><a href='#L4616'>4616</a> +<a name='L4617'></a><a href='#L4617'>4617</a> +<a name='L4618'></a><a href='#L4618'>4618</a> +<a name='L4619'></a><a href='#L4619'>4619</a> +<a name='L4620'></a><a href='#L4620'>4620</a> +<a name='L4621'></a><a href='#L4621'>4621</a> +<a name='L4622'></a><a href='#L4622'>4622</a> +<a name='L4623'></a><a href='#L4623'>4623</a> +<a name='L4624'></a><a href='#L4624'>4624</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">4x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">/** + * This file contains an exportable (portable) function `init()` used to initialize + * one side of a membrane on any realm. The only prerequisite is the ability to + * evaluate the sourceText of the `init()` function there. Once evaluated, the + * function will return a set of values that can be used to wire up the side of + * the membrane with another existing `init()` function from another realm, in + * which case they will exchange callable functions that are required to connect + * the two realms via the membrane. + * + * About the mechanics of the membrane, there are few important considerations: + * + * 1. Pointers are the way to pass reference to object and functions. + * 2. A dedicated symbol (LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL) is needed + * to represent the absence of a value. + * 3. The realm that owns the object or function is responsible for projecting + * the proxy onto the other side (via callablePushTarget), which returns a + * Pointer that can be used by the realm to pass the reference to the same + * proxy over and over again. + * 4. The realm that owns the proxy (after the other side projects it into it) + * will hold a Pointer alongside the proxy to signal what original object or + * function should the foreign operation operates, it is always the first + * argument of the foreign callable for proxies, and the other side can use + * it via `selectedTarget!`. + */ +import { toSafeWeakMap, WeakMapCtor } from '@locker/near-membrane-shared'; +import type { Getter, ProxyTarget, Setter } from '@locker/near-membrane-shared'; +import type { + CallableApply, + CallableBatchGetPrototypeOfAndGetOwnPropertyDescriptors, + CallableBatchGetPrototypeOfWhenHasNoOwnProperty, + CallableBatchGetPrototypeOfWhenHasNoOwnPropertyDescriptor, + CallableConstruct, + CallableDebugInfo, + CallableDefineProperties, + CallableDefineProperty, + CallableDeleteProperty, + CallableDescriptorCallback, + CallableDescriptorsCallback, + CallableEvaluate, + CallableGet, + CallableGetLazyPropertyDescriptorStateByTarget, + CallableGetOwnPropertyDescriptor, + CallableGetPropertyValue, + CallableGetPrototypeOf, + CallableGetTargetIntegrityTraits, + CallableGetToStringTagOfTarget, + CallableHas, + CallableInstallErrorPrepareStackTrace, + CallableInstallLazyPropertyDescriptors, + CallableIsExtensible, + CallableIsTargetLive, + CallableIsTargetRevoked, + CallableNonConfigurableDescriptorCallback, + CallableOwnKeys, + CallablePreventExtensions, + CallablePushErrorTarget, + CallablePushTarget, + CallableSerializeTarget, + CallableSet, + CallableSetLazyPropertyDescriptorStateByTarget, + CallableSetPrototypeOf, + CallableTrackAsFastTarget, + ForeignPropertyDescriptor, + GetSelectedTarget, + GlobalThisGetter, + HooksCallback, + HooksOptions, + Pointer, + PointerOrPrimitive, + Primitive, + SerializedValue, + ShadowTarget, +} from './types'; + +const proxyTargetToLazyPropertyDescriptorStateMap: WeakMap<ProxyTarget, object> = toSafeWeakMap( + new WeakMapCtor() +); + +// istanbul ignore next +export function createMembraneMarshall( + globalObject?: typeof globalThis | (WindowProxy & typeof globalThis) +) { + /* eslint-disable prefer-object-spread */ + const ArrayCtor = Array; + const ArrayBufferCtor = ArrayBuffer; + const ErrorCtor = Error; + const NumberCtor = Number; + const ObjectCtor = Object; + const ProxyCtor = Proxy; + const ReflectRef = Reflect; + const RegExpCtor = RegExp; + const StringCtor = String; + const SymbolCtor = Symbol; + const TypeErrorCtor = TypeError; + // eslint-disable-next-line @typescript-eslint/no-shadow, no-shadow + const WeakMapCtor = WeakMap; + const WeakSetCtor = WeakSet; + const { for: SymbolFor, toStringTag: SymbolToStringTag } = SymbolCtor; + const { + // eslint-disable-next-line @typescript-eslint/no-shadow, no-shadow + apply: ReflectApply, + construct: ReflectConstruct, + defineProperty: ReflectDefineProperty, + deleteProperty: ReflectDeleteProperty, + get: ReflectGet, + getOwnPropertyDescriptor: ReflectGetOwnPropertyDescriptor, + getPrototypeOf: ReflectGetPrototypeOf, + has: ReflectHas, + isExtensible: ReflectIsExtensible, + ownKeys: ReflectOwnKeys, + preventExtensions: ReflectPreventExtensions, + set: ReflectSet, + // eslint-disable-next-line @typescript-eslint/no-shadow, no-shadow + setPrototypeOf: ReflectSetPrototypeOf, + } = ReflectRef; + const { + assign: ObjectAssign, + defineProperties: ObjectDefineProperties, + freeze: ObjectFreeze, + getOwnPropertyDescriptor: ObjectGetOwnPropertyDescriptor, + getOwnPropertyDescriptors: ObjectGetOwnPropertyDescriptors, + isFrozen: ObjectIsFrozen, + isSealed: ObjectIsSealed, + keys: ObjectKeys, + prototype: ObjectProto, + seal: ObjectSeal, + } = ObjectCtor; + const { + hasOwnProperty: ObjectProtoHasOwnProperty, + propertyIsEnumerable: ObjectProtoPropertyIsEnumerable, + toString: ObjectProtoToString, + } = ObjectProto; + const { hasOwn: OriginalObjectHasOwn } = ObjectCtor as any; + const { + __defineGetter__: ObjectProtoDefineGetter, + __defineSetter__: ObjectProtoDefineSetter, + __lookupGetter__: ObjectProtoLookupGetter, + __lookupSetter__: ObjectProtoLookupSetter, + } = ObjectProto as any; + const ObjectHasOwn = + typeof OriginalObjectHasOwn === 'function' + ? (OriginalObjectHasOwn as (object: any, key: PropertyKey) => boolean) + : (object: any, key: PropertyKey): boolean => + ReflectApply(ObjectProtoHasOwnProperty, object, [key]); + const globalThisRef = + globalObject ?? + // Support for globalThis was added in Chrome 71. + // https://caniuse.com/mdn-javascript_builtins_globalthisfor + (typeof globalThis !== 'undefined' ? globalThis : undefined) ?? + // However, environments like Android emulators are running Chrome 69. + // eslint-disable-next-line no-restricted-globals + (typeof self !== 'undefined' ? self : undefined) ?? + // See https://mathiasbynens.be/notes/globalthis for more details. + (ReflectDefineProperty(ObjectProto, 'globalThis', { + __proto__: null, + configurable: true, + get() { + ReflectDeleteProperty(ObjectProto, 'globalThis'); + // Safari 12 on iOS 12.1 has a `this` of `undefined` so we + // fallback to `self`. + // eslint-disable-next-line no-restricted-globals + return this ?? self; + }, + } as PropertyDescriptor), + globalThis); + // @rollup/plugin-replace replaces `DEV_MODE` references. + const DEV_MODE = true; + const IS_IN_SHADOW_REALM = typeof globalObject !== 'object' || globalObject === null; + const IS_NOT_IN_SHADOW_REALM = !IS_IN_SHADOW_REALM; + const LOCKER_DEBUG_MODE_SYMBOL = IS_NOT_IN_SHADOW_REALM + ? SymbolFor('@@lockerDebugMode') + : undefined; + const LOCKER_IDENTIFIER_MARKER = '$LWS'; + const LOCKER_NEAR_MEMBRANE_SERIALIZED_VALUE_SYMBOL = IS_NOT_IN_SHADOW_REALM + ? SymbolFor('@@lockerNearMembraneSerializedValue') + : undefined; + const LOCKER_NEAR_MEMBRANE_SYMBOL = IS_NOT_IN_SHADOW_REALM + ? SymbolFor('@@lockerNearMembrane') + : undefined; + const LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL = SymbolFor( + '@@lockerNearMembraneUndefinedValue' + ); + // The default stack trace limit in Chrome is 10. + // Set to 20 to account for stack trace filtering. + const LOCKER_STACK_TRACE_LIMIT = 20; + // This package is bundled by third-parties that have their own build time + // replacement logic. Instead of customizing each build system to be aware + // of this package we implement a two phase debug mode by performing small + // runtime checks to determine phase one, our code is unminified, and + // phase two, the user opted-in to custom devtools formatters. Phase one + // is used for light weight initialization time debug while phase two is + // reserved for post initialization runtime. + + // eslint-disable-next-line @typescript-eslint/naming-convention + const LOCKER_UNMINIFIED_FLAG = `${(function LOCKER_UNMINIFIED_FLAG() { + return LOCKER_UNMINIFIED_FLAG.name; + })()}`.includes('LOCKER_UNMINIFIED_FLAG'); + // Indicate whether debug support is available. + const LOCKER_DEBUGGABLE_FLAG = LOCKER_UNMINIFIED_FLAG && IS_NOT_IN_SHADOW_REALM; + const ERR_ILLEGAL_PROPERTY_ACCESS = 'Illegal property access.'; + // BigInt is not supported in Safari 13.1. + // https://caniuse.com/bigint + const FLAGS_REG_EXP = IS_IN_SHADOW_REALM ? /\w*$/ : undefined; + // Minification safe references to the private `BoundaryProxyHandler` + // 'apply' and 'construct' trap variant's property names. + let MINIFICATION_SAFE_TRAP_PROPERTY_NAMES: string[] | undefined; + const SUPPORTS_BIG_INT = typeof BigInt === 'function'; + const { isArray: isArrayOrThrowForRevoked } = ArrayCtor; + const { + includes: ArrayProtoIncludes, + indexOf: ArrayProtoIndexOf, + slice: ArrayProtoSlice, + } = ArrayCtor.prototype; + const { isView: ArrayBufferIsView } = ArrayBufferCtor; + const BigIntProtoValueOf = SUPPORTS_BIG_INT ? BigInt.prototype.valueOf : undefined; + const { valueOf: BooleanProtoValueOf } = Boolean.prototype; + const { toString: ErrorProtoToString } = ErrorCtor.prototype; + const { bind: FunctionProtoBind, toString: FunctionProtoToString } = Function.prototype; + const { stringify: JSONStringify } = JSON; + const { isInteger: NumberIsInteger } = NumberCtor; + const { valueOf: NumberProtoValueOf } = NumberCtor.prototype; + const { revocable: ProxyRevocable } = ProxyCtor; + const { prototype: RegExpProto } = RegExpCtor; + const { + exec: RegExpProtoExec, + test: RegExpProtoTest, + toString: RegExProtoToString, + } = RegExpProto; + // Edge 15 does not support RegExp.prototype.flags. + // https://caniuse.com/mdn-javascript_builtins_regexp_flags + const RegExpProtoFlagsGetter: (() => string) | undefined = IS_IN_SHADOW_REALM + ? ReflectApply(ObjectProtoLookupGetter, RegExpProto, ['flags']) ?? + function flags(this: RegExp) { + const string = ReflectApply(RegExProtoToString, this, []); + return ReflectApply(RegExpProtoExec, FLAGS_REG_EXP!, [string])![0] as string; + } + : undefined; + const RegExpProtoSourceGetter: () => string = ReflectApply( + ObjectProtoLookupGetter, + RegExpProto, + ['source'] + ); + const { + replace: StringProtoReplace, + slice: StringProtoSlice, + valueOf: StringProtoValueOf, + } = StringCtor.prototype; + const { toString: SymbolProtoToString, valueOf: SymbolProtoValueOf } = SymbolCtor.prototype; + const BigInt64ArrayProto = globalThisRef.BigInt64Array?.prototype; + const BigUint64ArrayProto = globalThisRef.BigUint64Array?.prototype; + const { prototype: Float32ArrayProto } = Float32Array; + const { prototype: Float64ArrayProto } = Float64Array; + const { prototype: Int8ArrayProto } = Int8Array; + const { prototype: Int16ArrayProto } = Int16Array; + const { prototype: Int32ArrayProto } = Int32Array; + const { prototype: Uint8ArrayProto } = Uint8Array; + const { prototype: Uint16ArrayProto } = Uint16Array; + const { prototype: Uint32ArrayProto } = Uint32Array; + // eslint-disable-next-line no-proto + const TypedArrayProto = (Uint8ArrayProto as any).__proto__; + const TypedArrayProtoLengthGetter: () => number = ReflectApply( + ObjectProtoLookupGetter, + TypedArrayProto, + ['length'] + ); + const { prototype: WeakMapProto } = WeakMapCtor; + const { + delete: WeakMapProtoDelete, + has: WeakMapProtoHas, + set: WeakMapProtoSet, + [SymbolToStringTag]: WeakMapProtoSymbolToStringTag, + } = WeakMapProto as any; + const { prototype: WeakSetProto } = WeakSetCtor; + const { + add: WeakSetProtoAdd, + has: WeakSetProtoHas, + delete: WeakSetProtoDelete, + [SymbolToStringTag]: WeakSetProtoSymbolToStringTag, + } = WeakSetProto as any; + const consoleObject = + IS_NOT_IN_SHADOW_REALM && typeof console === 'object' && console !== null + ? console + : undefined; + const consoleInfo = consoleObject?.info; + const localEval = IS_IN_SHADOW_REALM ? eval : undefined; + + // Install flags to ensure things are installed once per realm. + let installedErrorPrepareStackTraceFlag = false; + let installedPropertyDescriptorMethodWrappersFlag = false; + + // eslint-disable-next-line no-shadow + const enum PreventExtensionsResult { + None, + Extensible = 1 << 0, + False = 1 << 1, + True = 1 << 2, + } + // eslint-disable-next-line no-shadow + const enum ProxyHandlerTraps { + None, + Apply = 1 << 0, + Construct = 1 << 1, + DefineProperty = 1 << 2, + DeleteProperty = 1 << 3, + Get = 1 << 4, + GetOwnPropertyDescriptor = 1 << 5, + GetPrototypeOf = 1 << 6, + Has = 1 << 7, + IsExtensible = 1 << 8, + OwnKeys = 1 << 9, + PreventExtensions = 1 << 10, + Set = 1 << 11, + SetPrototypeOf = 1 << 12, + } + // eslint-disable-next-line no-shadow + const enum TargetIntegrityTraits { + None, + IsNotExtensible = 1 << 0, + IsSealed = 1 << 1, + IsFrozen = 1 << 2, + Revoked = 1 << 3, + } + // eslint-disable-next-line no-shadow + const enum TargetTraits { + None, + IsArray = 1 << 0, + IsArrayBufferView = 1 << 1, + IsFunction = 1 << 2, + IsArrowFunction = 1 << 3, + IsObject = 1 << 4, + IsTypedArray = 1 << 5, + Revoked = 1 << 6, + } + + function alwaysFalse() { + return false; + } + + const installErrorPrepareStackTrace = LOCKER_UNMINIFIED_FLAG + ? () => { + if (installedErrorPrepareStackTraceFlag) { + return; + } + installedErrorPrepareStackTraceFlag = true; + // Feature detect the V8 stack trace API. + // https://v8.dev/docs/stack-trace-api + const CallSite = ((): Function | undefined => { + try { + ErrorCtor.prepareStackTrace = (_error: Error, callSites: NodeJS.CallSite[]) => + callSites; + const callSites = new ErrorCtor().stack as string | NodeJS.CallSite[]; + ReflectDeleteProperty(ErrorCtor, 'prepareStackTrace'); + return isArrayOrThrowForRevoked(callSites) && callSites.length > 0 + ? callSites[0]?.constructor + : undefined; + // eslint-disable-next-line no-empty + } catch {} + return undefined; + })(); + if (typeof CallSite !== 'function') { + return; + } + const { + getEvalOrigin: CallSiteProtoGetEvalOrigin, + getFunctionName: CallSiteProtoGetFunctionName, + toString: CallSiteProtoToString, + } = CallSite.prototype; + // A regexp to detect call sites containing LOCKER_IDENTIFIER_MARKER. + const lockerFunctionNameMarkerRegExp = new RegExpCtor( + `${ + // Escape regexp special characters in LOCKER_IDENTIFIER_MARKER. + ReflectApply(StringProtoReplace, LOCKER_IDENTIFIER_MARKER, [ + /[\\^$.*+?()[\]{}|]/g, + '\\$&', + ]) as string + // Function name references in call sites also contain + // the name of the class they belong to, + // e.g. myClassName.myFunctionName. + }(?=\\.|$)` + ); + const formatStackTrace = function formatStackTrace( + error: Error, + callSites: NodeJS.CallSite[] + ): string { + // Based on V8's default stack trace formatting: + // https://chromium.googlesource.com/v8/v8.git/+/refs/heads/main/src/execution/messages.cc#371 + let stackTrace = ''; + try { + stackTrace = ReflectApply(ErrorProtoToString, error, []) as string; + } catch { + stackTrace = '<error>'; + } + let consecutive = false; + for (let i = 0, { length } = callSites; i < length; i += 1) { + const callSite = callSites[i]; + const funcName: string | undefined = ReflectApply( + CallSiteProtoGetFunctionName, + callSite, + [] + ); + let isMarked = false; + if ( + typeof funcName === 'string' && + funcName !== 'eval' && + (ReflectApply(RegExpProtoTest, lockerFunctionNameMarkerRegExp, [ + funcName, + ]) as boolean) + ) { + isMarked = true; + } + if (!isMarked) { + const evalOrigin: string | undefined = ReflectApply( + CallSiteProtoGetEvalOrigin, + callSite, + [] + ); + if ( + typeof evalOrigin === 'string' && + (ReflectApply(RegExpProtoTest, lockerFunctionNameMarkerRegExp, [ + evalOrigin, + ]) as boolean) + ) { + isMarked = true; + } + } + // Only write a single LWS entry per consecutive LWS stacks. + if (isMarked) { + if (!consecutive) { + consecutive = true; + stackTrace += '\n at LWS'; + } + continue; + } else { + consecutive = false; + } + try { + stackTrace += `\n at ${ + ReflectApply(CallSiteProtoToString, callSite, []) as string + }`; + // eslint-disable-next-line no-empty + } catch {} + } + return stackTrace; + }; + try { + // Error.prepareStackTrace cannot be a bound or proxy wrapped + // function, so to obscure its source we wrap the call to + // formatStackTrace(). + ErrorCtor.prepareStackTrace = function prepareStackTrace( + error: Error, + callSites: NodeJS.CallSite[] + ) { + return formatStackTrace(error, callSites); + }; + // eslint-disable-next-line no-empty + } catch {} + try { + const { stackTraceLimit } = ErrorCtor; + if ( + typeof stackTraceLimit !== 'number' || + stackTraceLimit < LOCKER_STACK_TRACE_LIMIT + ) { + ErrorCtor.stackTraceLimit = LOCKER_STACK_TRACE_LIMIT; + } + // eslint-disable-next-line no-empty + } catch {} + } + : (noop as CallableInstallErrorPrepareStackTrace); + + function noop() { + // No-operation. + } + + const serializeBigIntObject = IS_IN_SHADOW_REALM + ? (bigIntObject: BigInt): bigint => + // Section 21.2.3 Properties of the BigInt Prototype Object + // https://tc39.es/ecma262/#thisbigintvalue + // Step 2: If Type(value) is Object and value has a [[BigIntData]] internal slot, then + // a. Assert: Type(value.[[BigIntData]]) is BigInt. + ReflectApply(BigIntProtoValueOf!, bigIntObject, []) + : (noop as () => undefined); + + const serializeBooleanObject = IS_IN_SHADOW_REALM + ? (booleanObject: Boolean): boolean => + // Section 20.3.3 Properties of the Boolean Prototype Object + // https://tc39.es/ecma262/#thisbooleanvalue + // Step 2: If Type(value) is Object and value has a [[BooleanData]] internal slot, then + // a. Let b be value.[[BooleanData]]. + // b. Assert: Type(b) is Boolean. + ReflectApply(BooleanProtoValueOf, booleanObject, []) + : (noop as () => undefined); + + const serializeNumberObject = IS_IN_SHADOW_REALM + ? (numberObject: Number): number => + // 21.1.3 Properties of the Number Prototype Object + // https://tc39.es/ecma262/#thisnumbervalue + // Step 2: If Type(value) is Object and value has a [[NumberData]] internal slot, then + // a. Let n be value.[[NumberData]]. + // b. Assert: Type(n) is Number. + ReflectApply(NumberProtoValueOf, numberObject, []) + : (noop as () => undefined); + + const serializeRegExp = IS_IN_SHADOW_REALM + ? (value: any): string | undefined => { + // 22.2.5.12 get RegExp.prototype.source + // https://tc39.es/ecma262/#sec-get-regexp.prototype.source + // Step 3: If R does not have an [[OriginalSource]] internal slot, then + // a. If SameValue(R, %RegExp.prototype%) is true, return "(?:)". + // b. Otherwise, throw a TypeError exception. + if (value !== RegExpProto) { + const source: string = ReflectApply(RegExpProtoSourceGetter, value, []); + return JSONStringify({ + __proto__: null, + flags: ReflectApply(RegExpProtoFlagsGetter!, value, []) as string, + source, + }); + } + return undefined; + } + : (noop as () => undefined); + + const serializeStringObject = IS_IN_SHADOW_REALM + ? (stringObject: String): string => + // 22.1.3 Properties of the String Prototype Object + // https://tc39.es/ecma262/#thisstringvalue + // Step 2: If Type(value) is Object and value has a [[StringData]] internal slot, then + // a. Let s be value.[[StringData]]. + // b. Assert: Type(s) is String. + ReflectApply(StringProtoValueOf, stringObject, []) + : (noop as () => undefined); + + const serializeSymbolObject = IS_IN_SHADOW_REALM + ? (symbolObject: Symbol): symbol => + // 20.4.3 Properties of the Symbol Prototype Object + // https://tc39.es/ecma262/#thissymbolvalue + // Step 2: If Type(value) is Object and value has a [[SymbolData]] internal slot, then + // a. Let s be value.[[SymbolData]]. + // b. Assert: Type(s) is Symbol. + ReflectApply(SymbolProtoValueOf, symbolObject, []) + : (noop as () => undefined); + + const serializeTargetByBrand = IS_IN_SHADOW_REALM + ? (target: ProxyTarget): SerializedValue | undefined => { + const brand: string = ReflectApply(ObjectProtoToString, target, []); + switch (brand) { + // The brand checks below represent boxed primitives of + // `ESGlobalKeys` in packages/near-membrane-base/src/intrinsics.ts + // which are not remapped or reflective. + case '[object Boolean]': + return serializeBooleanObject(target as any); + case '[object Number]': + return serializeNumberObject(target as any); + case '[object RegExp]': + return serializeRegExp(target as any); + case '[object String]': + return serializeStringObject(target as any); + case '[object Object]': + try { + // Symbol.prototype[@@toStringTag] is defined by default so + // must have been removed. + // https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag + return serializeSymbolObject(target as any); + // eslint-disable-next-line no-empty + } catch {} + if (SUPPORTS_BIG_INT) { + // BigInt.prototype[@@toStringTag] is defined by default so + // must have been removed. + // https://tc39.es/ecma262/#sec-bigint.prototype-@@tostringtag + try { + return serializeBigIntObject(target as any); + // eslint-disable-next-line no-empty + } catch {} + } + // eslint-disable-next-line no-fallthrough + default: + return undefined; + } + } + : (noop as () => undefined); + + const serializeTargetByTrialAndError = IS_IN_SHADOW_REALM + ? (target: ProxyTarget): SerializedValue | undefined => { + // The serialization attempts below represent boxed primitives of + // `ESGlobalKeys` in packages/near-membrane-base/src/intrinsics.ts + // which are not remapped or reflective. + try { + // Symbol.prototype[@@toStringTag] is defined by default so + // attempted before others. + // https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag + return serializeSymbolObject(target as any); + // eslint-disable-next-line no-empty + } catch {} + if (SUPPORTS_BIG_INT) { + // BigInt.prototype[@@toStringTag] is defined by default so + // attempted before others. + // https://tc39.es/ecma262/#sec-bigint.prototype-@@tostringtag + try { + return serializeBigIntObject(target as any); + // eslint-disable-next-line no-empty + } catch {} + } + try { + return serializeBooleanObject(target as any); + // eslint-disable-next-line no-empty + } catch {} + try { + return serializeNumberObject(target as any); + // eslint-disable-next-line no-empty + } catch {} + try { + return serializeRegExp(target as any); + // eslint-disable-next-line no-empty + } catch {} + try { + return serializeStringObject(target as any); + // eslint-disable-next-line no-empty + } catch {} + return undefined; + } + : (noop as () => undefined); + + function toSafeTemplateStringValue(value: any): string { + if (typeof value === 'string') { + return value; + } + try { + if (typeof value === 'object' && value !== null) { + const result: string = ReflectApply(ObjectProtoToString, value, []); + return result === '[object Symbol]' + ? ReflectApply(SymbolProtoToString, value, []) + : result; + } + if (typeof value === 'function') { + return ReflectApply(FunctionProtoToString, value, []); + } + // Attempt to coerce `value` to a string with the String() constructor. + // Section 22.1.1.1 String ( value ) + // https://tc39.es/ecma262/#sec-string-constructor-string-value + return StringCtor(value); + // eslint-disable-next-line no-empty + } catch {} + return '[Object Unknown]'; + } + + // eslint-disable-next-line @typescript-eslint/no-shadow, no-shadow + function toSafeWeakMap<T extends WeakMap<any, any>>(weakMap: T): T { + ReflectSetPrototypeOf(weakMap, null); + weakMap.delete = WeakMapProtoDelete; + weakMap.has = WeakMapProtoHas; + weakMap.set = WeakMapProtoSet; + (weakMap as any)[SymbolToStringTag] = WeakMapProtoSymbolToStringTag; + ReflectSetPrototypeOf(weakMap, WeakMapProto); + return weakMap; + } + + function toSafeWeakSet<T extends WeakSet<any>>(weakSet: T): T { + ReflectSetPrototypeOf(weakSet, null); + weakSet.add = WeakSetProtoAdd; + weakSet.delete = WeakSetProtoDelete; + weakSet.has = WeakSetProtoHas; + (weakSet as any)[SymbolToStringTag] = WeakSetProtoSymbolToStringTag; + ReflectSetPrototypeOf(weakSet, WeakSetProto); + return weakSet; + } + + return function createHooksCallback( + color: string, + foreignCallableHooksCallback: HooksCallback, + options?: HooksOptions + ): HooksCallback { + if (IS_IN_SHADOW_REALM) { + options = undefined; + } + const { + distortionCallback, + liveTargetCallback, + revokedProxyCallback, + // eslint-disable-next-line prefer-object-spread + } = ObjectAssign({ __proto__: null }, options); + + const applyTrapNameRegistry = { + // Populated in the returned connector function below. + __proto__: null, + 0: undefined, + 1: undefined, + 2: undefined, + 3: undefined, + 4: undefined, + n: undefined, + } as unknown as Record<number | string, string>; + + const constructTrapNameRegistry = { + // Populated in the returned connector function below. + __proto__: null, + 0: undefined, + 1: undefined, + 2: undefined, + 3: undefined, + 4: undefined, + n: undefined, + } as unknown as Record<number | string, string>; + + const lazyPropertyDescriptorStateCache = toSafeWeakMap( + new WeakMapCtor<ProxyTarget, object>() + ); + + const proxyPointerCache = toSafeWeakMap(new WeakMapCtor<ProxyTarget, Pointer>()); + + let foreignCallablePushErrorTarget: CallablePushErrorTarget; + let foreignCallablePushTarget: CallablePushTarget; + let foreignCallableApply: CallableApply; + let foreignCallableConstruct: CallableConstruct; + let foreignCallableDefineProperty: CallableDefineProperty; + let foreignCallableDeleteProperty: CallableDeleteProperty; + let foreignCallableGet: CallableGet; + let foreignCallableGetOwnPropertyDescriptor: CallableGetOwnPropertyDescriptor; + let foreignCallableGetPrototypeOf: CallableGetPrototypeOf; + let foreignCallableHas: CallableHas; + let foreignCallableIsExtensible: CallableIsExtensible; + let foreignCallableOwnKeys: CallableOwnKeys; + let foreignCallablePreventExtensions: CallablePreventExtensions; + let foreignCallableSet: CallableSet; + let foreignCallableSetPrototypeOf: CallableSetPrototypeOf; + let foreignCallableDebugInfo: CallableDebugInfo; + let foreignCallableGetPropertyValue: CallableGetPropertyValue; + let foreignCallableGetLazyPropertyDescriptorStateByTarget: CallableGetLazyPropertyDescriptorStateByTarget; + let foreignCallableGetTargetIntegrityTraits: CallableGetTargetIntegrityTraits; + let foreignCallableGetToStringTagOfTarget: CallableGetToStringTagOfTarget; + let foreignCallableInstallErrorPrepareStackTrace: CallableInstallErrorPrepareStackTrace; + let foreignCallableIsTargetLive: CallableIsTargetLive; + let foreignCallableIsTargetRevoked: CallableIsTargetRevoked; + let foreignCallableSerializeTarget: CallableSerializeTarget; + let foreignCallableSetLazyPropertyDescriptorStateByTarget: CallableSetLazyPropertyDescriptorStateByTarget; + let foreignCallableBatchGetPrototypeOfAndGetOwnPropertyDescriptors: CallableBatchGetPrototypeOfAndGetOwnPropertyDescriptors; + let foreignCallableBatchGetPrototypeOfWhenHasNoOwnProperty: CallableBatchGetPrototypeOfWhenHasNoOwnProperty; + let foreignCallableBatchGetPrototypeOfWhenHasNoOwnPropertyDescriptor: CallableBatchGetPrototypeOfWhenHasNoOwnPropertyDescriptor; + + let fastForeignTargetPointers: WeakSet<Pointer>; + let foreignPointerBigInt64ArrayProto: Pointer; + let foreignPointerBigUint64ArrayProto: Pointer; + let foreignPointerFloat32ArrayProto: Pointer; + let foreignPointerFloat64ArrayProto: Pointer; + let foreignPointerInt8ArrayProto: Pointer; + let foreignPointerInt16ArrayProto: Pointer; + let foreignPointerInt32ArrayProto: Pointer; + let foreignPointerObjectProto: Pointer; + let foreignPointerTypedArrayProto: Pointer; + let foreignPointerUint8ArrayProto: Pointer; + let foreignPointerUint16ArrayProto: Pointer; + let foreignPointerUint32ArrayProto: Pointer; + let selectedTarget: undefined | ProxyTarget; + + let lastProxyTrapCalled = ProxyHandlerTraps.None; + let handshakePropertyFlag = false; + let useFastForeignTargetPath = IS_IN_SHADOW_REALM; + let useFastForeignTargetPathForTypedArrays = IS_IN_SHADOW_REALM; + + const activateLazyOwnPropertyDefinition = IS_IN_SHADOW_REALM + ? (target: object, key: PropertyKey, state: object) => { + (state as any)[key] = false; + const foreignTargetPointer = getTransferablePointer(target); + let safeDesc; + try { + foreignCallableGetOwnPropertyDescriptor( + foreignTargetPointer, + key, + ( + _key, + configurable, + enumerable, + writable, + valuePointer, + getterPointer, + setterPointer + ) => { + safeDesc = createDescriptorFromMeta( + configurable, + enumerable, + writable, + valuePointer, + getterPointer, + setterPointer + ); + } + ); + } catch (error: any) { + const errorToThrow = selectedTarget ?? error; + selectedTarget = undefined; + throw errorToThrow; + } + if (safeDesc) { + ReflectDefineProperty(target, key, safeDesc); + } else { + ReflectDeleteProperty(target, key); + } + } + : noop; + + let checkDebugMode = LOCKER_DEBUGGABLE_FLAG + ? () => { + try { + if (ObjectHasOwn(globalThisRef, LOCKER_DEBUG_MODE_SYMBOL!)) { + checkDebugMode = () => true; + installErrorPrepareStackTrace(); + foreignCallableInstallErrorPrepareStackTrace(); + } + } catch { + checkDebugMode = alwaysFalse; + } + return false; + } + : alwaysFalse; + + const clearFastForeignTargetPointers = IS_IN_SHADOW_REALM + ? () => { + fastForeignTargetPointers = toSafeWeakSet(new WeakSetCtor<Pointer>()); + } + : noop; + + function copyForeignOwnPropertyDescriptorsAndPrototypeToShadowTarget( + foreignTargetPointer: Pointer, + shadowTarget: ShadowTarget + ): void { + let protoPointerOrNull; + try { + protoPointerOrNull = foreignCallableBatchGetPrototypeOfAndGetOwnPropertyDescriptors( + foreignTargetPointer, + (...descriptorTuples) => { + const descriptors: PropertyDescriptorMap = {}; + for (let i = 0, { length } = descriptorTuples; i < length; i += 7) { + const key = descriptorTuples[i] as PropertyKey; + (descriptors as any)[key] = createDescriptorFromMeta( + descriptorTuples[i + 1] as boolean | symbol, // configurable + descriptorTuples[i + 2] as boolean | symbol, // enumerable + descriptorTuples[i + 3] as boolean | symbol, // writable + descriptorTuples[i + 4] as PointerOrPrimitive, // valuePointer + descriptorTuples[i + 5] as PointerOrPrimitive, // getterPointer + descriptorTuples[i + 6] as PointerOrPrimitive // setterPointer + ); + } + // Use `ObjectDefineProperties()` instead of individual + // `ReflectDefineProperty()` calls for better performance. + ObjectDefineProperties(shadowTarget, descriptors); + } + ); + } catch (error: any) { + const errorToThrow = selectedTarget ?? error; + selectedTarget = undefined; + throw errorToThrow; + } + let proto: any; + if (typeof protoPointerOrNull === 'function') { + protoPointerOrNull(); + proto = selectedTarget; + selectedTarget = undefined; + } else { + proto = null; + } + ReflectSetPrototypeOf(shadowTarget, proto); + } + + function createApplyOrConstructTrapForZeroOrMoreArgs(proxyTrapEnum: ProxyHandlerTraps) { + const isApplyTrap = proxyTrapEnum & ProxyHandlerTraps.Apply; + const arityToApplyOrConstructTrapNameRegistry = isApplyTrap + ? applyTrapNameRegistry + : constructTrapNameRegistry; + const foreignCallableApplyOrConstruct = isApplyTrap + ? foreignCallableApply + : foreignCallableConstruct; + return function applyOrConstructTrap( + this: BoundaryProxyHandler, + _shadowTarget: ShadowTarget, + thisArgOrArgs: any, + argsOrNewTarget: any + ) { + lastProxyTrapCalled = proxyTrapEnum; + const args = isApplyTrap ? argsOrNewTarget : thisArgOrArgs; + const { length } = args; + if (length !== 0) { + return (this as any)[ + arityToApplyOrConstructTrapNameRegistry[length] ?? + arityToApplyOrConstructTrapNameRegistry.n + ](_shadowTarget, thisArgOrArgs, argsOrNewTarget); + } + // @ts-ignore: Prevent private property access error. + const { foreignTargetPointer } = this; + const thisArgOrNewTarget = isApplyTrap ? thisArgOrArgs : argsOrNewTarget; + let pointerOrPrimitive: PointerOrPrimitive; + try { + pointerOrPrimitive = foreignCallableApplyOrConstruct( + foreignTargetPointer, + // Inline getTransferableValue(). + (typeof thisArgOrNewTarget === 'object' && thisArgOrNewTarget !== null) || + typeof thisArgOrNewTarget === 'function' + ? getTransferablePointer(thisArgOrNewTarget) + : // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + typeof thisArgOrNewTarget === 'undefined' + ? undefined + : thisArgOrNewTarget + ); + } catch (error: any) { + const errorToThrow = selectedTarget ?? error; + selectedTarget = undefined; + throw errorToThrow; + } + let result: any; + if (typeof pointerOrPrimitive === 'function') { + pointerOrPrimitive(); + result = selectedTarget; + selectedTarget = undefined; + } else { + result = pointerOrPrimitive; + } + return result; + }; + } + + function createApplyOrConstructTrapForOneOrMoreArgs(proxyTrapEnum: ProxyHandlerTraps) { + const isApplyTrap = proxyTrapEnum & ProxyHandlerTraps.Apply; + const arityToApplyOrConstructTrapNameRegistry = isApplyTrap + ? applyTrapNameRegistry + : constructTrapNameRegistry; + const foreignCallableApplyOrConstruct = isApplyTrap + ? foreignCallableApply + : foreignCallableConstruct; + return function applyOrConstructTrapForOneOrMoreArgs( + this: BoundaryProxyHandler, + _shadowTarget: ShadowTarget, + thisArgOrArgs: any, + argsOrNewTarget: any + ) { + lastProxyTrapCalled = proxyTrapEnum; + const args = isApplyTrap ? argsOrNewTarget : thisArgOrArgs; + const { length } = args; + if (length !== 1) { + return (this as any)[ + arityToApplyOrConstructTrapNameRegistry[length] ?? + arityToApplyOrConstructTrapNameRegistry.n + ](_shadowTarget, thisArgOrArgs, argsOrNewTarget); + } + // @ts-ignore: Prevent private property access error. + const { foreignTargetPointer } = this; + const thisArgOrNewTarget = isApplyTrap ? thisArgOrArgs : argsOrNewTarget; + let pointerOrPrimitive: PointerOrPrimitive; + try { + const { 0: arg0 } = args; + pointerOrPrimitive = foreignCallableApplyOrConstruct( + foreignTargetPointer, + // Inline getTransferableValue(). + (typeof thisArgOrNewTarget === 'object' && thisArgOrNewTarget !== null) || + typeof thisArgOrNewTarget === 'function' + ? getTransferablePointer(thisArgOrNewTarget) + : // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + typeof thisArgOrNewTarget === 'undefined' + ? undefined + : thisArgOrNewTarget, + // Inline getTransferableValue(). + (typeof arg0 === 'object' && arg0 !== null) || typeof arg0 === 'function' + ? getTransferablePointer(arg0) + : // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + typeof arg0 === 'undefined' + ? undefined + : arg0 + ); + } catch (error: any) { + const errorToThrow = selectedTarget ?? error; + selectedTarget = undefined; + throw errorToThrow; + } + let result: any; + if (typeof pointerOrPrimitive === 'function') { + pointerOrPrimitive(); + result = selectedTarget; + selectedTarget = undefined; + } else { + result = pointerOrPrimitive; + } + return result; + }; + } + + function createApplyOrConstructTrapForTwoOrMoreArgs(proxyTrapEnum: ProxyHandlerTraps) { + const isApplyTrap = proxyTrapEnum & ProxyHandlerTraps.Apply; + const arityToApplyOrConstructTrapNameRegistry = isApplyTrap + ? applyTrapNameRegistry + : constructTrapNameRegistry; + const foreignCallableApplyOrConstruct = isApplyTrap + ? foreignCallableApply + : foreignCallableConstruct; + return function applyOrConstructTrapForTwoOrMoreArgs( + this: BoundaryProxyHandler, + _shadowTarget: ShadowTarget, + thisArgOrArgs: any, + argsOrNewTarget: any + ) { + lastProxyTrapCalled = proxyTrapEnum; + const args = isApplyTrap ? argsOrNewTarget : thisArgOrArgs; + const { length } = args; + if (length !== 2) { + return (this as any)[ + arityToApplyOrConstructTrapNameRegistry[length] ?? + arityToApplyOrConstructTrapNameRegistry.n + ](_shadowTarget, thisArgOrArgs, argsOrNewTarget); + } + // @ts-ignore: Prevent private property access error. + const { foreignTargetPointer } = this; + const thisArgOrNewTarget = isApplyTrap ? thisArgOrArgs : argsOrNewTarget; + let pointerOrPrimitive: PointerOrPrimitive; + try { + const { 0: arg0, 1: arg1 } = args; + pointerOrPrimitive = foreignCallableApplyOrConstruct( + foreignTargetPointer, + // Inline getTransferableValue(). + (typeof thisArgOrNewTarget === 'object' && thisArgOrNewTarget !== null) || + typeof thisArgOrNewTarget === 'function' + ? getTransferablePointer(thisArgOrNewTarget) + : // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + typeof thisArgOrNewTarget === 'undefined' + ? undefined + : thisArgOrNewTarget, + // Inline getTransferableValue(). + (typeof arg0 === 'object' && arg0 !== null) || typeof arg0 === 'function' + ? getTransferablePointer(arg0) + : // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + typeof arg0 === 'undefined' + ? undefined + : arg0, + // Inline getTransferableValue(). + (typeof arg1 === 'object' && arg1 !== null) || typeof arg1 === 'function' + ? getTransferablePointer(arg1) + : // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + typeof arg1 === 'undefined' + ? undefined + : arg1 + ); + } catch (error: any) { + const errorToThrow = selectedTarget ?? error; + selectedTarget = undefined; + throw errorToThrow; + } + let result: any; + if (typeof pointerOrPrimitive === 'function') { + pointerOrPrimitive(); + result = selectedTarget; + selectedTarget = undefined; + } else { + result = pointerOrPrimitive; + } + return result; + }; + } + + function createApplyOrConstructTrapForThreeOrMoreArgs(proxyTrapEnum: ProxyHandlerTraps) { + const isApplyTrap = proxyTrapEnum & ProxyHandlerTraps.Apply; + const arityToApplyOrConstructTrapNameRegistry = isApplyTrap + ? applyTrapNameRegistry + : constructTrapNameRegistry; + const foreignCallableApplyOrConstruct = isApplyTrap + ? foreignCallableApply + : foreignCallableConstruct; + return function applyOrConstructTrapForTwoOrMoreArgs( + this: BoundaryProxyHandler, + _shadowTarget: ShadowTarget, + thisArgOrArgs: any, + argsOrNewTarget: any + ) { + lastProxyTrapCalled = proxyTrapEnum; + const args = isApplyTrap ? argsOrNewTarget : thisArgOrArgs; + const { length } = args; + if (length !== 3) { + return (this as any)[ + arityToApplyOrConstructTrapNameRegistry[length] ?? + arityToApplyOrConstructTrapNameRegistry.n + ](_shadowTarget, thisArgOrArgs, argsOrNewTarget); + } + // @ts-ignore: Prevent private property access error. + const { foreignTargetPointer } = this; + const thisArgOrNewTarget = isApplyTrap ? thisArgOrArgs : argsOrNewTarget; + let pointerOrPrimitive: PointerOrPrimitive; + try { + const { 0: arg0, 1: arg1, 2: arg2 } = args; + pointerOrPrimitive = foreignCallableApplyOrConstruct( + foreignTargetPointer, + // Inline getTransferableValue(). + (typeof thisArgOrNewTarget === 'object' && thisArgOrNewTarget !== null) || + typeof thisArgOrNewTarget === 'function' + ? getTransferablePointer(thisArgOrNewTarget) + : // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + typeof thisArgOrNewTarget === 'undefined' + ? undefined + : thisArgOrNewTarget, + // Inline getTransferableValue(). + (typeof arg0 === 'object' && arg0 !== null) || typeof arg0 === 'function' + ? getTransferablePointer(arg0) + : // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + typeof arg0 === 'undefined' + ? undefined + : arg0, + // Inline getTransferableValue(). + (typeof arg1 === 'object' && arg1 !== null) || typeof arg1 === 'function' + ? getTransferablePointer(arg1) + : // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + typeof arg1 === 'undefined' + ? undefined + : arg1, + // Inline getTransferableValue(). + (typeof arg2 === 'object' && arg2 !== null) || typeof arg2 === 'function' + ? getTransferablePointer(arg2) + : // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + typeof arg2 === 'undefined' + ? undefined + : arg2 + ); + } catch (error: any) { + const errorToThrow = selectedTarget ?? error; + selectedTarget = undefined; + throw errorToThrow; + } + let result: any; + if (typeof pointerOrPrimitive === 'function') { + pointerOrPrimitive(); + result = selectedTarget; + selectedTarget = undefined; + } else { + result = pointerOrPrimitive; + } + return result; + }; + } + + function createApplyOrConstructTrapForFourOrMoreArgs(proxyTrapEnum: ProxyHandlerTraps) { + const isApplyTrap = proxyTrapEnum & ProxyHandlerTraps.Apply; + const arityToApplyOrConstructTrapNameRegistry = isApplyTrap + ? applyTrapNameRegistry + : constructTrapNameRegistry; + const foreignCallableApplyOrConstruct = isApplyTrap + ? foreignCallableApply + : foreignCallableConstruct; + return function applyOrConstructTrapForTwoOrMoreArgs( + this: BoundaryProxyHandler, + _shadowTarget: ShadowTarget, + thisArgOrArgs: any, + argsOrNewTarget: any + ) { + lastProxyTrapCalled = proxyTrapEnum; + const args = isApplyTrap ? argsOrNewTarget : thisArgOrArgs; + const { length } = args; + if (length !== 4) { + return (this as any)[ + arityToApplyOrConstructTrapNameRegistry[length] ?? + arityToApplyOrConstructTrapNameRegistry.n + ](_shadowTarget, thisArgOrArgs, argsOrNewTarget); + } + // @ts-ignore: Prevent private property access error. + const { foreignTargetPointer } = this; + const thisArgOrNewTarget = isApplyTrap ? thisArgOrArgs : argsOrNewTarget; + let pointerOrPrimitive: PointerOrPrimitive; + try { + const { 0: arg0, 1: arg1, 2: arg2, 3: arg3 } = args; + pointerOrPrimitive = foreignCallableApplyOrConstruct( + foreignTargetPointer, + // Inline getTransferableValue(). + (typeof thisArgOrNewTarget === 'object' && thisArgOrNewTarget !== null) || + typeof thisArgOrNewTarget === 'function' + ? getTransferablePointer(thisArgOrNewTarget) + : // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + typeof thisArgOrNewTarget === 'undefined' + ? undefined + : thisArgOrNewTarget, + // Inline getTransferableValue(). + (typeof arg0 === 'object' && arg0 !== null) || typeof arg0 === 'function' + ? getTransferablePointer(arg0) + : // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + typeof arg0 === 'undefined' + ? undefined + : arg0, + // Inline getTransferableValue(). + (typeof arg1 === 'object' && arg1 !== null) || typeof arg1 === 'function' + ? getTransferablePointer(arg1) + : // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + typeof arg1 === 'undefined' + ? undefined + : arg1, + // Inline getTransferableValue(). + (typeof arg2 === 'object' && arg2 !== null) || typeof arg2 === 'function' + ? getTransferablePointer(arg2) + : // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + typeof arg2 === 'undefined' + ? undefined + : arg2, + // Inline getTransferableValue(). + (typeof arg3 === 'object' && arg3 !== null) || typeof arg3 === 'function' + ? getTransferablePointer(arg3) + : // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + typeof arg3 === 'undefined' + ? undefined + : arg3 + ); + } catch (error: any) { + const errorToThrow = selectedTarget ?? error; + selectedTarget = undefined; + throw errorToThrow; + } + let result: any; + if (typeof pointerOrPrimitive === 'function') { + pointerOrPrimitive(); + result = selectedTarget; + selectedTarget = undefined; + } else { + result = pointerOrPrimitive; + } + return result; + }; + } + + function createApplyOrConstructTrapForFiveOrMoreArgs(proxyTrapEnum: ProxyHandlerTraps) { + const isApplyTrap = proxyTrapEnum & ProxyHandlerTraps.Apply; + const arityToApplyOrConstructTrapNameRegistry = isApplyTrap + ? applyTrapNameRegistry + : constructTrapNameRegistry; + const foreignCallableApplyOrConstruct = isApplyTrap + ? foreignCallableApply + : foreignCallableConstruct; + return function applyOrConstructTrapForTwoOrMoreArgs( + this: BoundaryProxyHandler, + _shadowTarget: ShadowTarget, + thisArgOrArgs: any, + argsOrNewTarget: any + ) { + lastProxyTrapCalled = proxyTrapEnum; + const args = isApplyTrap ? argsOrNewTarget : thisArgOrArgs; + const { length } = args; + if (length !== 5) { + return (this as any)[ + arityToApplyOrConstructTrapNameRegistry[length] ?? + arityToApplyOrConstructTrapNameRegistry.n + ](_shadowTarget, thisArgOrArgs, argsOrNewTarget); + } + // @ts-ignore: Prevent private property access error. + const { foreignTargetPointer } = this; + const thisArgOrNewTarget = isApplyTrap ? thisArgOrArgs : argsOrNewTarget; + let pointerOrPrimitive: PointerOrPrimitive; + try { + const { 0: arg0, 1: arg1, 2: arg2, 3: arg3, 4: arg4 } = args; + pointerOrPrimitive = foreignCallableApplyOrConstruct( + foreignTargetPointer, + // Inline getTransferableValue(). + (typeof thisArgOrNewTarget === 'object' && thisArgOrNewTarget !== null) || + typeof thisArgOrNewTarget === 'function' + ? getTransferablePointer(thisArgOrNewTarget) + : // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + typeof thisArgOrNewTarget === 'undefined' + ? undefined + : thisArgOrNewTarget, + // Inline getTransferableValue(). + (typeof arg0 === 'object' && arg0 !== null) || typeof arg0 === 'function' + ? getTransferablePointer(arg0) + : // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + typeof arg0 === 'undefined' + ? undefined + : arg0, + // Inline getTransferableValue(). + (typeof arg1 === 'object' && arg1 !== null) || typeof arg1 === 'function' + ? getTransferablePointer(arg1) + : // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + typeof arg1 === 'undefined' + ? undefined + : arg1, + // Inline getTransferableValue(). + (typeof arg2 === 'object' && arg2 !== null) || typeof arg2 === 'function' + ? getTransferablePointer(arg2) + : // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + typeof arg2 === 'undefined' + ? undefined + : arg2, + // Inline getTransferableValue(). + (typeof arg3 === 'object' && arg3 !== null) || typeof arg3 === 'function' + ? getTransferablePointer(arg3) + : // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + typeof arg3 === 'undefined' + ? undefined + : arg3, + // Inline getTransferableValue(). + (typeof arg4 === 'object' && arg4 !== null) || typeof arg4 === 'function' + ? getTransferablePointer(arg4) + : // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + typeof arg4 === 'undefined' + ? undefined + : arg4 + ); + } catch (error: any) { + const errorToThrow = selectedTarget ?? error; + selectedTarget = undefined; + throw errorToThrow; + } + let result: any; + if (typeof pointerOrPrimitive === 'function') { + pointerOrPrimitive(); + result = selectedTarget; + selectedTarget = undefined; + } else { + result = pointerOrPrimitive; + } + return result; + }; + } + + function createApplyOrConstructTrapForAnyNumberOfArgs(proxyTrapEnum: ProxyHandlerTraps) { + const isApplyTrap = proxyTrapEnum & ProxyHandlerTraps.Apply; + const foreignCallableApplyOrConstruct = isApplyTrap + ? foreignCallableApply + : foreignCallableConstruct; + return function applyOrConstructTrapForAnyNumberOfArgs( + this: BoundaryProxyHandler, + _shadowTarget: ShadowTarget, + thisArgOrArgs: any, + argsOrNewTarget: any + ) { + lastProxyTrapCalled = proxyTrapEnum; + + // @ts-ignore: Prevent private property access error. + const { foreignTargetPointer } = this; + const args = isApplyTrap ? argsOrNewTarget : thisArgOrArgs; + const { length } = args; + const thisArgOrNewTarget = isApplyTrap ? thisArgOrArgs : argsOrNewTarget; + let combinedOffset = 2; + const combinedArgs = new ArrayCtor(length + combinedOffset); + combinedArgs[0] = foreignTargetPointer; + let pointerOrPrimitive: PointerOrPrimitive; + try { + combinedArgs[1] = + (typeof thisArgOrNewTarget === 'object' && thisArgOrNewTarget !== null) || + typeof thisArgOrNewTarget === 'function' + ? getTransferablePointer(thisArgOrNewTarget) + : // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + typeof thisArgOrNewTarget === 'undefined' + ? undefined + : thisArgOrNewTarget; + for (let i = 0; i < length; i += 1) { + const arg = args[i]; + // Inlining `getTransferableValue()`. + combinedArgs[combinedOffset++] = + (typeof arg === 'object' && arg !== null) || typeof arg === 'function' + ? getTransferablePointer(arg) + : // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + typeof arg === 'undefined' + ? undefined + : arg; + } + pointerOrPrimitive = ReflectApply( + foreignCallableApplyOrConstruct, + undefined, + combinedArgs + ) as PointerOrPrimitive; + } catch (error: any) { + const errorToThrow = selectedTarget ?? error; + selectedTarget = undefined; + throw errorToThrow; + } + let result: any; + if (typeof pointerOrPrimitive === 'function') { + pointerOrPrimitive(); + result = selectedTarget; + selectedTarget = undefined; + } else { + result = pointerOrPrimitive; + } + return result; + }; + } + + function createDescriptorFromMeta( + configurable: boolean | symbol, + enumerable: boolean | symbol, + writable: boolean | symbol, + valuePointerOrPrimitive: PointerOrPrimitive, + getterPointerOrPrimitive: PointerOrPrimitive, + setterPointerOrPrimitive: PointerOrPrimitive + ): PropertyDescriptor { + const safeDesc = { __proto__: null } as PropertyDescriptor; + if (configurable !== LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL) { + safeDesc.configurable = configurable as boolean; + } + if (enumerable !== LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL) { + safeDesc.enumerable = enumerable as boolean; + } + if (writable !== LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL) { + safeDesc.writable = writable as boolean; + } + if (getterPointerOrPrimitive !== LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL) { + if (typeof getterPointerOrPrimitive === 'function') { + getterPointerOrPrimitive(); + safeDesc.get = selectedTarget as Getter; + selectedTarget = undefined; + } else { + safeDesc.get = undefined; + } + } + if (setterPointerOrPrimitive !== LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL) { + if (typeof setterPointerOrPrimitive === 'function') { + setterPointerOrPrimitive(); + safeDesc.set = selectedTarget as Setter; + selectedTarget = undefined; + } else { + safeDesc.set = undefined; + } + } + if (valuePointerOrPrimitive !== LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL) { + if (typeof valuePointerOrPrimitive === 'function') { + valuePointerOrPrimitive(); + safeDesc.value = selectedTarget; + selectedTarget = undefined; + } else { + safeDesc.value = valuePointerOrPrimitive; + } + } + return safeDesc; + } + + function createPointer(originalTarget: ProxyTarget | undefined): () => void { + const pointer = (): void => { + // assert: selectedTarget is undefined + selectedTarget = originalTarget; + }; + if (DEV_MODE) { + // In case debugging is needed, the following lines can help: + pointer['[[OriginalTarget]]'] = originalTarget; + pointer['[[Color]]'] = color; + } + return pointer; + } + + const disableFastForeignTargetPointers = IS_IN_SHADOW_REALM + ? () => { + useFastForeignTargetPath = false; + useFastForeignTargetPathForTypedArrays = false; + clearFastForeignTargetPointers(); + } + : noop; + + const getLazyPropertyDescriptorStateByTarget = IS_IN_SHADOW_REALM + ? (target: ProxyTarget): object | undefined => { + let state: any = lazyPropertyDescriptorStateCache.get(target); + if (state === undefined) { + const statePointerOrUndefined = + foreignCallableGetLazyPropertyDescriptorStateByTarget( + getTransferablePointer(target) + ); + if (typeof statePointerOrUndefined === 'function') { + statePointerOrUndefined(); + state = selectedTarget; + selectedTarget = undefined; + if (state) { + lazyPropertyDescriptorStateCache.set(target, state); + } + } + } + return state; + } + : noop; + + const isForeignPointerOfObjectProto = IS_IN_SHADOW_REALM + ? // eslint-disable-next-line no-return-assign + (foreignTargetPointer: Pointer): boolean => + foreignTargetPointer === + (foreignPointerObjectProto === undefined + ? (foreignPointerObjectProto = getTransferablePointer(ObjectProto)) + : foreignPointerObjectProto) + : alwaysFalse; + + const isForeignPointerOfTypedArrayProto = IS_IN_SHADOW_REALM + ? // eslint-disable-next-line no-return-assign + (foreignTargetPointer: Pointer): boolean => + foreignTargetPointer === + (foreignPointerFloat32ArrayProto === undefined + ? (foreignPointerFloat32ArrayProto = + getTransferablePointer(Float32ArrayProto)) + : foreignPointerFloat32ArrayProto) || + foreignTargetPointer === + (foreignPointerFloat64ArrayProto === undefined + ? (foreignPointerFloat64ArrayProto = + getTransferablePointer(Float64ArrayProto)) + : foreignPointerFloat64ArrayProto) || + foreignTargetPointer === + (foreignPointerInt8ArrayProto === undefined + ? (foreignPointerInt8ArrayProto = getTransferablePointer(Int8ArrayProto)) + : foreignPointerInt8ArrayProto) || + foreignTargetPointer === + (foreignPointerInt16ArrayProto === undefined + ? (foreignPointerInt16ArrayProto = + getTransferablePointer(Int16ArrayProto)) + : foreignPointerInt16ArrayProto) || + foreignTargetPointer === + (foreignPointerInt32ArrayProto === undefined + ? (foreignPointerInt32ArrayProto = + getTransferablePointer(Int32ArrayProto)) + : foreignPointerInt32ArrayProto) || + foreignTargetPointer === + (foreignPointerUint8ArrayProto === undefined + ? (foreignPointerUint8ArrayProto = + getTransferablePointer(Uint8ArrayProto)) + : foreignPointerUint8ArrayProto) || + foreignTargetPointer === + (foreignPointerUint16ArrayProto === undefined + ? (foreignPointerUint16ArrayProto = + getTransferablePointer(Uint16ArrayProto)) + : foreignPointerUint16ArrayProto) || + foreignTargetPointer === + (foreignPointerUint32ArrayProto === undefined + ? (foreignPointerUint32ArrayProto = + getTransferablePointer(Uint32ArrayProto)) + : foreignPointerUint32ArrayProto) || + foreignTargetPointer === + (foreignPointerTypedArrayProto === undefined + ? (foreignPointerTypedArrayProto = + getTransferablePointer(TypedArrayProto)) + : foreignPointerTypedArrayProto) || + foreignTargetPointer === + (foreignPointerBigInt64ArrayProto === undefined + ? (foreignPointerBigInt64ArrayProto = BigInt64ArrayProto + ? getTransferablePointer(BigInt64ArrayProto) + : noop) + : foreignPointerBigInt64ArrayProto) || + foreignTargetPointer === + (foreignPointerBigUint64ArrayProto === undefined + ? (foreignPointerBigUint64ArrayProto = BigUint64ArrayProto + ? getTransferablePointer(BigUint64ArrayProto) + : noop) + : foreignPointerBigUint64ArrayProto) + : alwaysFalse; + + function getTransferablePointer( + originalTarget: ProxyTarget, + foreignCallablePusher = foreignCallablePushTarget + ): Pointer { + let proxyPointer = proxyPointerCache.get(originalTarget); + if (proxyPointer) { + return proxyPointer; + } + let targetFunctionArity = 0; + let targetFunctionName = ''; + let targetTypedArrayLength = 0; + if (revokedProxyCallback && revokedProxyCallback(originalTarget)) { + proxyPointer = foreignCallablePusher( + createPointer(originalTarget), + TargetTraits.Revoked, + targetFunctionArity, + targetFunctionName, + targetTypedArrayLength + ); + proxyPointerCache.set(originalTarget, proxyPointer); + return proxyPointer; + } + let distortionTarget: ProxyTarget; + let targetTraits = TargetTraits.IsObject; + if (distortionCallback) { + distortionTarget = distortionCallback(originalTarget); + // If a distortion entry is found, it must be a valid proxy target. + if ( + distortionTarget !== originalTarget && + typeof distortionTarget !== typeof originalTarget + ) { + throw new TypeErrorCtor( + `Invalid distortion ${toSafeTemplateStringValue(originalTarget)}.` + ); + } + } else { + distortionTarget = originalTarget; + } + let isPossiblyRevoked = true; + if (typeof distortionTarget === 'function') { + isPossiblyRevoked = false; + targetFunctionArity = 0; + targetTraits = TargetTraits.IsFunction; + try { + // Detect arrow functions. + if (!('prototype' in distortionTarget)) { + targetTraits |= TargetTraits.IsArrowFunction; + } + const safeLengthDesc = ReflectGetOwnPropertyDescriptor( + originalTarget, + 'length' + ); + if (safeLengthDesc) { + ReflectSetPrototypeOf(safeLengthDesc, null); + const { value: safeLengthDescValue } = safeLengthDesc; + if (typeof safeLengthDescValue === 'number') { + targetFunctionArity = safeLengthDescValue; + } + } + const safeNameDesc = DEV_MODE + ? ReflectGetOwnPropertyDescriptor(originalTarget, 'name') + : undefined; + if (safeNameDesc) { + ReflectSetPrototypeOf(safeNameDesc, null); + const { value: safeNameDescValue } = safeNameDesc; + if (typeof safeNameDescValue === 'string') { + targetFunctionName = safeNameDescValue; + } + } + } catch { + isPossiblyRevoked = true; + } + } else if (ArrayBufferIsView(distortionTarget)) { + isPossiblyRevoked = false; + targetTraits = TargetTraits.IsArrayBufferView; + try { + targetTypedArrayLength = ReflectApply( + TypedArrayProtoLengthGetter, + distortionTarget, + [] + ) as number; + targetTraits |= TargetTraits.IsTypedArray; + // eslint-disable-next-line no-empty + } catch { + // Could be a DataView object or a revoked proxy. + isPossiblyRevoked = true; + } + } + if (isPossiblyRevoked) { + try { + if (isArrayOrThrowForRevoked(distortionTarget)) { + targetTraits = TargetTraits.IsArray; + } + } catch { + targetTraits = TargetTraits.Revoked; + } + } + proxyPointer = foreignCallablePusher( + createPointer(distortionTarget), + targetTraits, + targetFunctionArity, + targetFunctionName, + targetTypedArrayLength + ); + proxyPointerCache.set(originalTarget, proxyPointer); + return proxyPointer; + } + + const installPropertyDescriptorMethodWrappers = IS_IN_SHADOW_REALM + ? (unforgeableGlobalThisKeys?: PropertyKey[]) => { + if (installedPropertyDescriptorMethodWrappersFlag) { + return; + } + installedPropertyDescriptorMethodWrappersFlag = true; + // We wrap property descriptor methods to activate lazy + // descriptors and/or workaround browser bugs. The following + // methods are wrapped: + // Object.getOwnPropertyDescriptors() + // Object.getOwnPropertyDescriptor() + // Reflect.defineProperty() + // Reflect.getOwnPropertyDescriptor() + // Object.prototype.__defineGetter__() + // Object.prototype.__defineSetter__() + // Object.prototype.__lookupGetter__() + // Object.prototype.__lookupSetter__() + // + // Chromium based browsers have a bug that nulls the result + // of `window` getters in detached iframes when the property + // descriptor of `window.window` is retrieved. + // https://bugs.chromium.org/p/chromium/issues/detail?id=1305302 + // + // Methods may be poisoned when they interact with the `window` + // object and retrieve property descriptors, like 'window', + // that contain the `window` object itself. The following + // built-in methods are susceptible to this issue: + // console.log(window); + // Object.getOwnPropertyDescriptors(window); + // Object.getOwnPropertyDescriptor(window, 'window'); + // Reflect.getOwnPropertyDescriptor(window, 'window'); + // window.__lookupGetter__('window'); + // window.__lookupSetter__('window'); + // + // We side step issues with `console` by mapping it to the + // primary realm's `console`. Since we're already wrapping + // property descriptor methods to activate lazy descriptors + // we use the wrapper to workaround the `window` getter + // nulling bug. + const shouldFixChromeBug = + isArrayOrThrowForRevoked(unforgeableGlobalThisKeys) && + unforgeableGlobalThisKeys.length > 0; + + // Lazily populated by `getUnforgeableGlobalThisGetter()`; + const keyToGlobalThisGetterRegistry = shouldFixChromeBug + ? ({ __proto__: null } as unknown as Record<PropertyKey, GlobalThisGetter>) + : undefined; + + const getFixedDescriptor = shouldFixChromeBug + ? (target: any, key: PropertyKey): PropertyDescriptor | undefined => + ReflectApply(ArrayProtoIncludes, unforgeableGlobalThisKeys, [key]) + ? { + configurable: false, + enumerable: ReflectApply( + ObjectProtoPropertyIsEnumerable, + target, + [key] + ), + // eslint-disable-next-line @typescript-eslint/no-use-before-define + get: getUnforgeableGlobalThisGetter!(key), + set: undefined, + } + : ReflectGetOwnPropertyDescriptor(target, key) + : undefined; + + const getUnforgeableGlobalThisGetter = shouldFixChromeBug + ? (key: PropertyKey): GlobalThisGetter => { + let globalThisGetter: GlobalThisGetter | undefined = + keyToGlobalThisGetterRegistry![key]; + if (globalThisGetter === undefined) { + // We can't access the original getter to mask + // with `proxyMaskFunction()`, so instead we wrap + // `unboundGlobalThisGetter` in bound function + // to obscure the getter source as "[native code]". + globalThisGetter = ReflectApply( + FunctionProtoBind, + // eslint-disable-next-line @typescript-eslint/no-use-before-define + unboundGlobalThisGetter, + [] + ) as GlobalThisGetter; + // Preserve identity continuity of getters. + keyToGlobalThisGetterRegistry![key] = globalThisGetter; + } + return globalThisGetter; + } + : undefined; + + const lookupFixedGetter = shouldFixChromeBug + ? (target: any, key: PropertyKey): Getter | undefined => + ReflectApply(ArrayProtoIncludes, unforgeableGlobalThisKeys, [key]) + ? getUnforgeableGlobalThisGetter!(key) + : ReflectApply(ObjectProtoLookupGetter, target, [key]) + : undefined; + + const lookupFixedSetter = shouldFixChromeBug + ? (target: any, key: PropertyKey): Setter | undefined => + ReflectApply(ArrayProtoIncludes, unforgeableGlobalThisKeys, [key]) + ? undefined + : ReflectApply(ObjectProtoLookupSetter, target, [key]) + : undefined; + + const unboundGlobalThisGetter = shouldFixChromeBug + ? ((() => globalThisRef) as GlobalThisGetter) + : undefined; + + const wrapDefineAccessOrProperty = (originalFunc: Function) => { + const { length: originalFuncLength } = originalFunc; + // `__defineGetter__()` and `__defineSetter__()` have + // function lengths of 2 while `Reflect.defineProperty()` + // has a function length of 3. + const useThisArgAsTarget = originalFuncLength === 2; + return new ProxyCtor(originalFunc, { + apply(_originalFunc: Function, thisArg: any, args: any[]) { + if (args.length >= originalFuncLength) { + const target = useThisArgAsTarget ? thisArg : args[0]; + if ( + (typeof target === 'object' && target !== null) || + typeof target === 'function' + ) { + const key = useThisArgAsTarget ? args[0] : args[1]; + const state = getLazyPropertyDescriptorStateByTarget(target); + if ((state as any)?.[key]) { + // Activate the descriptor by triggering + // its getter. + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + target[key]; + } + } + } + return ReflectApply(originalFunc, thisArg, args); + }, + }); + }; + + const wrapLookupAccessor = ( + originalFunc: typeof ObjectProtoLookupGetter, + lookupFixedAccessor?: typeof lookupFixedGetter | typeof lookupFixedSetter + ) => + new ProxyCtor(originalFunc, { + apply(_originalFunc: Function, thisArg: any, args: [key: PropertyKey]) { + if ( + args.length && + ((typeof thisArg === 'object' && thisArg !== null) || + typeof thisArg === 'function') + ) { + const { 0: key } = args; + const state = getLazyPropertyDescriptorStateByTarget(thisArg); + if ((state as any)?.[key]) { + // Activate the descriptor by triggering + // its getter. + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + thisArg[key]; + } + if (shouldFixChromeBug && thisArg === globalThisRef) { + return lookupFixedAccessor!(thisArg, key); + } + } + return ReflectApply(originalFunc, thisArg, args); + }, + }) as typeof Reflect.getOwnPropertyDescriptor; + + const wrapGetOwnPropertyDescriptor = ( + originalFunc: typeof Reflect.getOwnPropertyDescriptor + ) => + new ProxyCtor(originalFunc, { + apply( + _originalFunc: Function, + thisArg: any, + args: [target: object, key: PropertyKey] + ) { + if (args.length > 1) { + const { 0: target, 1: key } = args; + if ( + (typeof target === 'object' && target !== null) || + typeof target === 'function' + ) { + const state = getLazyPropertyDescriptorStateByTarget(target); + if ((state as any)?.[key]) { + // Activate the descriptor by triggering + // its getter. + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + (target as any)[key]; + } + if (shouldFixChromeBug && target === globalThisRef) { + return getFixedDescriptor!(target, key); + } + } + } + return ReflectApply(originalFunc, thisArg, args); + }, + }) as typeof Reflect.getOwnPropertyDescriptor; + + const wrapGetOwnPropertyDescriptors = ( + originalFunc: typeof Object.getOwnPropertyDescriptors + ) => + new ProxyCtor(originalFunc, { + apply( + _originalFunc: Function, + thisArg: any, + args: Parameters<typeof Object.getOwnPropertyDescriptors> + ) { + const target: ProxyTarget = args.length + ? (args[0] as any) + : undefined; + if ( + !( + (typeof target === 'object' && target !== null) || + typeof target === 'function' + ) + ) { + // Defer to native method to throw exception. + return ReflectApply(originalFunc, thisArg, args); + } + const state = getLazyPropertyDescriptorStateByTarget(target); + const isFixingChromeBug = + target === globalThisRef && shouldFixChromeBug; + const unsafeDescs: PropertyDescriptorMap = isFixingChromeBug + ? // Create an empty property descriptor map + // to populate with curated descriptors. + {} + : // Since this is not a global object it is + // safe to use the native method. + ReflectApply(originalFunc, thisArg, args); + if (!isFixingChromeBug && state === undefined) { + // Exit early if the target is not a global + // object and there are no lazy descriptors. + return unsafeDescs; + } + const ownKeys = ReflectOwnKeys( + isFixingChromeBug ? target : unsafeDescs + ); + for (let i = 0, { length } = ownKeys; i < length; i += 1) { + const ownKey = ownKeys[i]; + const isLazyProp = !!(state as any)?.[ownKey]; + if (isLazyProp) { + // Activate the descriptor by triggering + // its getter. + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + (target as any)[ownKey]; + } + if (isLazyProp || isFixingChromeBug) { + const unsafeDesc = isFixingChromeBug + ? getFixedDescriptor!(target, ownKey) + : ReflectGetOwnPropertyDescriptor(target, ownKey); + // Update the descriptor map entry. + if (unsafeDesc) { + unsafeDescs[ownKey] = unsafeDesc; + } else if (!isFixingChromeBug) { + ReflectDeleteProperty(unsafeDescs, ownKey); + } + } + } + return unsafeDescs; + }, + }) as typeof Object.getOwnPropertyDescriptors; + try { + ReflectRef.defineProperty = wrapDefineAccessOrProperty( + ReflectDefineProperty + ) as typeof Reflect.defineProperty; + // eslint-disable-next-line no-empty + } catch {} + try { + ReflectRef.getOwnPropertyDescriptor = wrapGetOwnPropertyDescriptor( + ReflectGetOwnPropertyDescriptor + ); + // eslint-disable-next-line no-empty + } catch {} + try { + ObjectCtor.getOwnPropertyDescriptor = wrapGetOwnPropertyDescriptor( + ObjectGetOwnPropertyDescriptor + ); + // eslint-disable-next-line no-empty + } catch {} + try { + ObjectCtor.getOwnPropertyDescriptors = wrapGetOwnPropertyDescriptors( + ObjectGetOwnPropertyDescriptors + ); + // eslint-disable-next-line no-empty + } catch {} + try { + // eslint-disable-next-line @typescript-eslint/naming-convention, no-restricted-properties, no-underscore-dangle + (ObjectProto as any).__defineGetter__ = + wrapDefineAccessOrProperty(ObjectProtoDefineGetter); + // eslint-disable-next-line no-empty + } catch {} + try { + // eslint-disable-next-line @typescript-eslint/naming-convention, no-restricted-properties, no-underscore-dangle + (ObjectProto as any).__defineSetter__ = + wrapDefineAccessOrProperty(ObjectProtoDefineSetter); + // eslint-disable-next-line no-empty + } catch {} + try { + // eslint-disable-next-line @typescript-eslint/naming-convention, no-underscore-dangle + (ObjectProto as any).__lookupGetter__ = wrapLookupAccessor( + ObjectProtoLookupGetter, + lookupFixedGetter + ); + // eslint-disable-next-line no-empty + } catch {} + try { + // eslint-disable-next-line @typescript-eslint/naming-convention, no-underscore-dangle + (ObjectProto as any).__lookupSetter__ = wrapLookupAccessor( + ObjectProtoLookupSetter, + lookupFixedSetter + ); + // eslint-disable-next-line no-empty + } catch {} + } + : noop; + + function lookupForeignDescriptor( + foreignTargetPointer: Pointer, + shadowTarget: ShadowTarget, + key: PropertyKey + ): ForeignPropertyDescriptor | undefined { + let protoPointerOrNull; + let safeDesc: ForeignPropertyDescriptor | undefined; + try { + protoPointerOrNull = + foreignCallableBatchGetPrototypeOfWhenHasNoOwnPropertyDescriptor( + foreignTargetPointer, + key, + ( + _key, + configurable, + enumerable, + writable, + valuePointerOrPrimitive, + getterPointerOrPrimitive, + setterPointerOrPrimitive + ) => { + safeDesc = { + __proto__: null, + foreign: true, + } as PropertyDescriptor; + if (configurable !== LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL) { + safeDesc.configurable = configurable as boolean; + } + if (enumerable !== LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL) { + safeDesc.enumerable = enumerable as boolean; + } + if (writable !== LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL) { + safeDesc.writable = writable as boolean; + } + if ( + getterPointerOrPrimitive !== + LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL + ) { + if (typeof getterPointerOrPrimitive === 'function') { + getterPointerOrPrimitive(); + safeDesc.get = selectedTarget as Getter; + selectedTarget = undefined; + } else { + safeDesc.get = undefined; + } + } + if ( + setterPointerOrPrimitive !== + LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL + ) { + if (typeof setterPointerOrPrimitive === 'function') { + setterPointerOrPrimitive(); + safeDesc.set = selectedTarget as Setter; + selectedTarget = undefined; + } else { + safeDesc.set = undefined; + } + } + if ( + valuePointerOrPrimitive !== + LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL + ) { + if (typeof valuePointerOrPrimitive === 'function') { + valuePointerOrPrimitive(); + safeDesc.value = selectedTarget; + selectedTarget = undefined; + } else { + safeDesc.value = valuePointerOrPrimitive; + } + } + if (configurable === false) { + // Update the descriptor to non-configurable on + // the shadow target. + ReflectDefineProperty(shadowTarget, key, safeDesc); + } + } + ); + } catch (error: any) { + const errorToThrow = selectedTarget ?? error; + selectedTarget = undefined; + throw errorToThrow; + } + if (safeDesc === undefined) { + // Avoiding calling the has trap for any proto chain operation, + // instead we implement the regular logic here in this trap. + let currentObject: any; + if (typeof protoPointerOrNull === 'function') { + protoPointerOrNull(); + currentObject = selectedTarget; + selectedTarget = undefined; + } else { + currentObject = null; + } + while (currentObject) { + safeDesc = ReflectGetOwnPropertyDescriptor(currentObject, key); + if (safeDesc) { + ReflectSetPrototypeOf(safeDesc, null); + break; + } + currentObject = ReflectGetPrototypeOf(currentObject); + } + if (safeDesc) { + const { get: getter, set: setter, value: localValue } = safeDesc; + const possibleProxy = getter ?? setter ?? localValue; + safeDesc.foreign = + ((typeof possibleProxy === 'object' && possibleProxy !== null) || + typeof possibleProxy === 'function') && + proxyPointerCache.get(possibleProxy) !== undefined; + } + } + return safeDesc; + } + + function passthruForeignTraversedSet( + foreignTargetPointer: Pointer, + shadowTarget: ShadowTarget, + key: PropertyKey, + value: any, + receiver: any + ): boolean { + const safeDesc = lookupForeignDescriptor(foreignTargetPointer, shadowTarget, key); + // Following the specification steps for + // OrdinarySetWithOwnDescriptor ( O, P, V, Receiver, ownDesc ). + // https://tc39.es/ecma262/#sec-ordinarysetwithowndescriptor + if (safeDesc) { + if ('get' in safeDesc || 'set' in safeDesc) { + const { set: setter } = safeDesc; + if (setter) { + if (safeDesc.foreign) { + foreignCallableApply( + getTransferablePointer(setter), + // Inline getTransferableValue(). + (typeof receiver === 'object' && receiver !== null) || + typeof receiver === 'function' + ? getTransferablePointer(receiver) + : // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + typeof receiver === 'undefined' + ? undefined + : receiver, + // Inline getTransferableValue(). + (typeof value === 'object' && value !== null) || + typeof value === 'function' + ? getTransferablePointer(value) + : // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + typeof value === 'undefined' + ? undefined + : value + ); + } else { + // Even though the setter function exists, we can't + // use `ReflectSet()` because there might be a + // distortion for that setter function, in which + // case we must resolve the local setter and call + // it instead. + ReflectApply(setter, receiver, [value]); + } + // If there is a setter, it either throw or we can assume + // the value was set. + return true; + } + return false; + } + if (safeDesc.writable === false) { + return false; + } + } + // Exit early if receiver is not object like. + if ( + !( + (typeof receiver === 'object' && receiver !== null) || + typeof receiver === 'function' + ) + ) { + return false; + } + const safeReceiverDesc = ReflectGetOwnPropertyDescriptor(receiver, key); + if (safeReceiverDesc) { + ReflectSetPrototypeOf(safeReceiverDesc, null); + // Exit early for accessor descriptors or non-writable data + // descriptors. + if ( + 'get' in safeReceiverDesc || + 'set' in safeReceiverDesc || + safeReceiverDesc.writable === false + ) { + return false; + } + // Setting the descriptor with only a value entry should not + // affect existing descriptor traits. + ReflectDefineProperty(receiver, key, { + __proto__: null, + value, + } as PropertyDescriptor); + return true; + } + // `ReflectDefineProperty()` and `ReflectSet()` both are expected + // to return `false` when attempting to add a new property if the + // receiver is not extensible. + return ReflectDefineProperty(receiver, key, { + __proto__: null, + configurable: true, + enumerable: true, + value, + writable: true, + } as PropertyDescriptor); + } + + function pushErrorAcrossBoundary(error: any): any { + if (LOCKER_DEBUGGABLE_FLAG) { + checkDebugMode(); + } + // Inline getTransferableValue(). + if ((typeof error === 'object' && error !== null) || typeof error === 'function') { + const foreignErrorPointer = getTransferablePointer( + error, + foreignCallablePushErrorTarget + ); + foreignErrorPointer(); + } + return error; + } + + function pushTarget( + foreignTargetPointer: () => void, + foreignTargetTraits: TargetTraits, + foreignTargetFunctionArity: number, + foreignTargetFunctionName: string, + foreignTargetTypedArrayLength: number + ): Pointer { + // eslint-disable-next-line @typescript-eslint/no-use-before-define + const { proxy } = new BoundaryProxyHandler( + foreignTargetPointer, + foreignTargetTraits, + foreignTargetFunctionArity, + foreignTargetFunctionName, + foreignTargetTypedArrayLength + ); + proxyPointerCache.set(proxy, foreignTargetPointer); + return createPointer(proxy); + } + + const setLazyPropertyDescriptorStateByTarget = IS_IN_SHADOW_REALM + ? (target: ProxyTarget, state: object) => { + lazyPropertyDescriptorStateCache.set(target, state); + foreignCallableSetLazyPropertyDescriptorStateByTarget( + getTransferablePointer(target), + getTransferablePointer(state) + ); + } + : noop; + + class BoundaryProxyHandler implements ProxyHandler<ShadowTarget> { + // public fields + apply: ProxyHandler<ShadowTarget>['apply'] | undefined; + + construct: ProxyHandler<ShadowTarget>['construct'] | undefined; + + defineProperty: ProxyHandler<ShadowTarget>['defineProperty']; + + deleteProperty: ProxyHandler<ShadowTarget>['deleteProperty']; + + get: ProxyHandler<ShadowTarget>['get']; + + getOwnPropertyDescriptor: ProxyHandler<ShadowTarget>['getOwnPropertyDescriptor']; + + getPrototypeOf: ProxyHandler<ShadowTarget>['getPrototypeOf']; + + has: ProxyHandler<ShadowTarget>['has']; + + isExtensible: ProxyHandler<ShadowTarget>['isExtensible']; + + ownKeys: ProxyHandler<ShadowTarget>['ownKeys']; + + preventExtensions: ProxyHandler<ShadowTarget>['preventExtensions']; + + revoke: () => void; + + set: ProxyHandler<ShadowTarget>['set']; + + setPrototypeOf: ProxyHandler<ShadowTarget>['setPrototypeOf']; + + private serialize: () => Primitive; + + private staticToStringTag: string; + + // The membrane color help developers identify which side of the + // membrane they are debugging. + // @ts-ignore: Prevent 'has no initializer and is not definitely assigned in the constructor' error. + private readonly color: string; + + private readonly foreignTargetPointer: Pointer; + + private readonly foreignTargetTraits: TargetTraits; + + private readonly foreignTargetTypedArrayLength: number; + + private readonly nonConfigurableDescriptorCallback: CallableNonConfigurableDescriptorCallback; + + readonly proxy: ShadowTarget; + + private readonly shadowTarget: ProxyTarget; + + // @ts-ignore: Prevent 'is declared but its value is never read' error. + private readonly applyTrapForZeroOrMoreArgs: ProxyHandler<ShadowTarget>['apply']; + + // @ts-ignore: Prevent 'is declared but its value is never read' error. + private readonly applyTrapForOneOrMoreArgs: ProxyHandler<ShadowTarget>['apply']; + + // @ts-ignore: Prevent 'is declared but its value is never read' error. + private readonly applyTrapForTwoOrMoreArgs: ProxyHandler<ShadowTarget>['apply']; + + // @ts-ignore: Prevent 'is declared but its value is never read' error. + private readonly applyTrapForThreeOrMoreArgs: ProxyHandler<ShadowTarget>['apply']; + + // @ts-ignore: Prevent 'is declared but its value is never read' error. + private readonly applyTrapForFourOrMoreArgs: ProxyHandler<ShadowTarget>['apply']; + + // @ts-ignore: Prevent 'is declared but its value is never read' error. + private readonly applyTrapForFiveOrMoreArgs: ProxyHandler<ShadowTarget>['apply']; + + // @ts-ignore: Prevent 'is declared but its value is never read' error. + private readonly applyTrapForAnyNumberOfArgs: ProxyHandler<ShadowTarget>['apply']; + + // @ts-ignore: Prevent 'is declared but its value is never read' error. + private readonly constructTrapForZeroOrMoreArgs: ProxyHandler<ShadowTarget>['construct']; + + // @ts-ignore: Prevent 'is declared but its value is never read' error. + private readonly constructTrapForOneOrMoreArgs: ProxyHandler<ShadowTarget>['construct']; + + // @ts-ignore: Prevent 'is declared but its value is never read' error. + private readonly constructTrapForTwoOrMoreArgs: ProxyHandler<ShadowTarget>['construct']; + + // @ts-ignore: Prevent 'is declared but its value is never read' error. + private readonly constructTrapForThreeOrMoreArgs: ProxyHandler<ShadowTarget>['construct']; + + // @ts-ignore: Prevent 'is declared but its value is never read' error. + private readonly constructTrapForFourOrMoreArgs: ProxyHandler<ShadowTarget>['construct']; + + // @ts-ignore: Prevent 'is declared but its value is never read' error. + private readonly constructTrapForFiveOrMoreArgs: ProxyHandler<ShadowTarget>['construct']; + + // @ts-ignore: Prevent 'is declared but its value is never read' error. + private readonly constructTrapForAnyNumberOfArgs: ProxyHandler<ShadowTarget>['construct']; + + constructor( + foreignTargetPointer: Pointer, + foreignTargetTraits: TargetTraits, + foreignTargetFunctionArity: number, + foreignTargetFunctionName: string, + foreignTargetTypedArrayLength: number + ) { + let shadowTarget: ShadowTarget; + const isForeignTargetArray = foreignTargetTraits & TargetTraits.IsArray; + const isForeignTargetFunction = foreignTargetTraits & TargetTraits.IsFunction; + if (isForeignTargetFunction) { + // This shadow target is never invoked. It's needed to avoid + // proxy trap invariants. Because it's not invoked the code + // does not need to be instrumented for code coverage. + // + // istanbul ignore next + shadowTarget = + foreignTargetTraits & TargetTraits.IsArrowFunction + ? () => {} + : function () {}; + if (DEV_MODE && foreignTargetFunctionName.length) { + // This is only really needed for debugging, + // it helps to identify the proxy by name + ReflectDefineProperty(shadowTarget, 'name', { + __proto__: null, + value: foreignTargetFunctionName, + } as PropertyDescriptor); + } + } else if (isForeignTargetArray) { + shadowTarget = []; + } else { + shadowTarget = {}; + } + const { proxy, revoke } = ProxyRevocable(shadowTarget, this); + this.foreignTargetPointer = foreignTargetPointer; + this.foreignTargetTraits = foreignTargetTraits; + this.foreignTargetTypedArrayLength = foreignTargetTypedArrayLength; + // Define in the BoundaryProxyHandler constructor so it is bound + // to the BoundaryProxyHandler instance. + this.nonConfigurableDescriptorCallback = ( + key, + configurable, + enumerable, + writable, + valuePointer, + getterPointer, + setterPointer + ) => { + // Update the descriptor to non-configurable on the shadow + // target. + ReflectDefineProperty( + this.shadowTarget, + key, + createDescriptorFromMeta( + configurable, + enumerable, + writable, + valuePointer, + getterPointer, + setterPointer + ) + ); + }; + this.proxy = proxy; + this.revoke = revoke; + this.serialize = noop; + this.shadowTarget = shadowTarget; + this.staticToStringTag = 'Object'; + // Define traps. + if (isForeignTargetFunction) { + this.apply = (this as any)[ + applyTrapNameRegistry[foreignTargetFunctionArity] ?? applyTrapNameRegistry.n + ]; + this.construct = (this as any)[ + constructTrapNameRegistry[foreignTargetFunctionArity] ?? + constructTrapNameRegistry.n + ]; + } + this.defineProperty = BoundaryProxyHandler.defaultDefinePropertyTrap; + this.deleteProperty = BoundaryProxyHandler.defaultDeletePropertyTrap; + this.isExtensible = BoundaryProxyHandler.defaultIsExtensibleTrap; + this.getOwnPropertyDescriptor = + BoundaryProxyHandler.defaultGetOwnPropertyDescriptorTrap; + this.getPrototypeOf = BoundaryProxyHandler.defaultGetPrototypeOfTrap; + this.get = + foreignTargetTraits & TargetTraits.IsTypedArray + ? BoundaryProxyHandler.hybridGetTrapForTypedArray + : BoundaryProxyHandler.defaultGetTrap; + this.has = BoundaryProxyHandler.defaultHasTrap; + this.ownKeys = BoundaryProxyHandler.defaultOwnKeysTrap; + this.preventExtensions = BoundaryProxyHandler.defaultPreventExtensionsTrap; + this.setPrototypeOf = BoundaryProxyHandler.defaultSetPrototypeOfTrap; + this.set = BoundaryProxyHandler.defaultSetTrap; + if (foreignTargetTraits & TargetTraits.Revoked) { + this.revoke(); + } else if (IS_IN_SHADOW_REALM) { + if ( + isForeignTargetArray || + foreignTargetTraits & TargetTraits.IsArrayBufferView + ) { + this.makeProxyLive(); + } + } else { + if (foreignTargetTraits & TargetTraits.IsObject) { + // Lazily define serialize method. + let cachedSerializedValue: SerializedValue | undefined | symbol = + LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL; + this.serialize = () => { + if ( + cachedSerializedValue === + LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL + ) { + cachedSerializedValue = foreignCallableSerializeTarget( + this.foreignTargetPointer + ); + } + return cachedSerializedValue; + }; + } + } + } + + // Internal red/shadow realm side utilities: + + private makeProxyLive = IS_IN_SHADOW_REALM + ? function (this: BoundaryProxyHandler): void { + // Replace pending traps with live traps that can work with the + // target without taking snapshots. + this.deleteProperty = BoundaryProxyHandler.passthruDeletePropertyTrap; + this.defineProperty = BoundaryProxyHandler.passthruDefinePropertyTrap; + this.preventExtensions = BoundaryProxyHandler.passthruPreventExtensionsTrap; + this.set = BoundaryProxyHandler.passthruSetTrap; + this.setPrototypeOf = BoundaryProxyHandler.passthruSetPrototypeOfTrap; + } + : noop; + + private makeProxyStatic = IS_IN_SHADOW_REALM + ? function (this: BoundaryProxyHandler): void { + // Reset all traps except apply and construct for static proxies + // since the proxy target is the shadow target and all operations + // are going to be applied to it rather than the real target. + this.defineProperty = BoundaryProxyHandler.staticDefinePropertyTrap; + this.deleteProperty = BoundaryProxyHandler.staticDeletePropertyTrap; + this.get = BoundaryProxyHandler.staticGetTrap; + this.getOwnPropertyDescriptor = + BoundaryProxyHandler.staticGetOwnPropertyDescriptorTrap; + this.getPrototypeOf = BoundaryProxyHandler.staticGetPrototypeOfTrap; + this.has = BoundaryProxyHandler.staticHasTrap; + this.isExtensible = BoundaryProxyHandler.staticIsExtensibleTrap; + this.ownKeys = BoundaryProxyHandler.staticOwnKeysTrap; + this.preventExtensions = BoundaryProxyHandler.staticPreventExtensionsTrap; + this.set = BoundaryProxyHandler.staticSetTrap; + this.setPrototypeOf = BoundaryProxyHandler.staticSetPrototypeOfTrap; + + const { foreignTargetPointer, foreignTargetTraits, shadowTarget } = this; + if (useFastForeignTargetPath) { + fastForeignTargetPointers!.delete(foreignTargetPointer); + } + // We don't wrap `foreignCallableGetTargetIntegrityTraits()` + // in a try-catch because it cannot throw. + const targetIntegrityTraits = + foreignCallableGetTargetIntegrityTraits(foreignTargetPointer); + if (targetIntegrityTraits & TargetIntegrityTraits.Revoked) { + // the target is a revoked proxy, in which case we revoke + // this proxy as well. + this.revoke(); + return; + } + // A proxy can revoke itself when traps are triggered and break + // the membrane, therefore we need protection. + try { + copyForeignOwnPropertyDescriptorsAndPrototypeToShadowTarget( + foreignTargetPointer, + shadowTarget + ); + } catch { + // We don't wrap `foreignCallableIsTargetRevoked()` in a + // try-catch because it cannot throw. + if (foreignCallableIsTargetRevoked(foreignTargetPointer)) { + this.revoke(); + return; + } + } + if ( + foreignTargetTraits & TargetTraits.IsObject && + !(SymbolToStringTag in shadowTarget) + ) { + let toStringTag = 'Object'; + try { + toStringTag = + foreignCallableGetToStringTagOfTarget(foreignTargetPointer); + // eslint-disable-next-line no-empty + } catch {} + this.staticToStringTag = toStringTag; + } + // Preserve the semantics of the target. + if (targetIntegrityTraits & TargetIntegrityTraits.IsFrozen) { + ObjectFreeze(shadowTarget); + } else { + if (targetIntegrityTraits & TargetIntegrityTraits.IsSealed) { + ObjectSeal(shadowTarget); + } else if ( + targetIntegrityTraits & TargetIntegrityTraits.IsNotExtensible + ) { + ReflectPreventExtensions(shadowTarget); + } + if (LOCKER_UNMINIFIED_FLAG) { + // We don't wrap `foreignCallableDebugInfo()` in a try-catch + // because it cannot throw. + foreignCallableDebugInfo( + 'Mutations on the membrane of an object originating ' + + 'outside of the sandbox will not be reflected on ' + + 'the object itself:', + foreignTargetPointer + ); + } + } + } + : noop; + + // Logic implementation of all traps. + + // Hybrid traps: + // (traps that operate on their shadowTarget, proxy, and foreignTargetPointer): + + private static hybridGetTrap = IS_IN_SHADOW_REALM + ? function ( + this: BoundaryProxyHandler, + _shadowTarget: ShadowTarget, + key: PropertyKey, + receiver: any + ): ReturnType<typeof Reflect.get> { + const { foreignTargetPointer, foreignTargetTraits, proxy, shadowTarget } = + this; + let safeDesc: ForeignPropertyDescriptor | undefined; + let result: any; + if ( + useFastForeignTargetPath && + fastForeignTargetPointers!.has(foreignTargetPointer) + ) { + let pointerOrPrimitive: PointerOrPrimitive; + try { + pointerOrPrimitive = foreignCallableGetPropertyValue( + foreignTargetPointer, + key + ); + } catch (error: any) { + const errorToThrow = selectedTarget ?? error; + selectedTarget = undefined; + throw errorToThrow; + } + if (typeof pointerOrPrimitive === 'function') { + pointerOrPrimitive(); + result = selectedTarget; + selectedTarget = undefined; + } else { + result = pointerOrPrimitive; + } + } else { + safeDesc = lookupForeignDescriptor( + foreignTargetPointer, + shadowTarget, + key + ); + if (safeDesc) { + const { get: getter, value: localValue } = safeDesc; + if (getter) { + if (safeDesc.foreign) { + const foreignGetterPointer = getTransferablePointer(getter); + const transferableReceiver = + proxy === receiver + ? foreignTargetPointer + : // Inline getTransferableValue(). + (typeof receiver === 'object' && receiver !== null) || + typeof receiver === 'function' + ? getTransferablePointer(receiver) + : receiver; + let pointerOrPrimitive: PointerOrPrimitive; + try { + pointerOrPrimitive = foreignCallableApply( + foreignGetterPointer, + transferableReceiver + ); + } catch (error: any) { + const errorToThrow = selectedTarget ?? error; + selectedTarget = undefined; + throw errorToThrow; + } + if (typeof pointerOrPrimitive === 'function') { + pointerOrPrimitive(); + result = selectedTarget; + selectedTarget = undefined; + } else { + result = pointerOrPrimitive; + } + } else { + // Even though the getter function exists, + // we can't use `ReflectGet()` because there + // might be a distortion for that getter function, + // in which case we must resolve the local getter + // and call it instead. + result = ReflectApply(getter, receiver, []); + } + } else { + result = localValue; + } + } else { + const transferableReceiver = + proxy === receiver + ? foreignTargetPointer + : // Inline getTransferableValue(). + (typeof receiver === 'object' && receiver !== null) || + typeof receiver === 'function' + ? getTransferablePointer(receiver) + : receiver; + let pointerOrPrimitive: PointerOrPrimitive; + try { + pointerOrPrimitive = foreignCallableGet( + foreignTargetPointer, + foreignTargetTraits, + key, + transferableReceiver + ); + } catch (error: any) { + const errorToThrow = selectedTarget ?? error; + selectedTarget = undefined; + throw errorToThrow; + } + if (typeof pointerOrPrimitive === 'function') { + pointerOrPrimitive(); + result = selectedTarget; + selectedTarget = undefined; + } else { + result = pointerOrPrimitive; + } + } + } + if ( + safeDesc === undefined && + result === undefined && + key === SymbolToStringTag && + foreignTargetTraits & TargetTraits.IsObject + ) { + let toStringTag; + try { + toStringTag = + foreignCallableGetToStringTagOfTarget(foreignTargetPointer); + } catch (error: any) { + const errorToThrow = selectedTarget ?? error; + selectedTarget = undefined; + throw errorToThrow; + } + // The default language toStringTag is "Object". If we + // receive "Object" we return `undefined` to let the + // language resolve it naturally without projecting a + // value. + if (toStringTag !== 'Object') { + result = toStringTag; + } + } + return result; + } + : (noop as typeof Reflect.get); + + private static hybridGetTrapForTypedArray = IS_IN_SHADOW_REALM + ? function ( + this: BoundaryProxyHandler, + _shadowTarget: ShadowTarget, + key: PropertyKey, + receiver: any + ): ReturnType<typeof Reflect.get> { + const { + foreignTargetPointer, + foreignTargetTypedArrayLength, + proxy, + shadowTarget, + } = this; + let useFastPath = useFastForeignTargetPathForTypedArrays; + if (!useFastPath && typeof key === 'string') { + const possibleIndex = +key; + useFastPath = + possibleIndex > -1 && + possibleIndex < foreignTargetTypedArrayLength && + NumberIsInteger(possibleIndex); + } + let result: any; + if (useFastPath) { + let pointerOrPrimitive: PointerOrPrimitive; + try { + pointerOrPrimitive = foreignCallableGetPropertyValue( + foreignTargetPointer, + key + ); + } catch (error: any) { + const errorToThrow = selectedTarget ?? error; + selectedTarget = undefined; + throw errorToThrow; + } + if (typeof pointerOrPrimitive === 'function') { + pointerOrPrimitive(); + result = selectedTarget; + selectedTarget = undefined; + } else { + result = pointerOrPrimitive; + } + } else { + const safeDesc = lookupForeignDescriptor( + foreignTargetPointer, + shadowTarget, + key + ); + if (safeDesc) { + const { get: getter, value: localValue } = safeDesc; + if (getter) { + if (safeDesc.foreign) { + const foreignGetterPointer = getTransferablePointer(getter); + const transferableReceiver = + proxy === receiver + ? foreignTargetPointer + : // Inline getTransferableValue(). + (typeof receiver === 'object' && receiver !== null) || + typeof receiver === 'function' + ? getTransferablePointer(receiver) + : receiver; + let pointerOrPrimitive: PointerOrPrimitive; + try { + pointerOrPrimitive = foreignCallableApply( + foreignGetterPointer, + transferableReceiver + ); + } catch (error: any) { + const errorToThrow = selectedTarget ?? error; + selectedTarget = undefined; + throw errorToThrow; + } + if (typeof pointerOrPrimitive === 'function') { + pointerOrPrimitive(); + result = selectedTarget; + selectedTarget = undefined; + } else { + result = pointerOrPrimitive; + } + } else { + // Even though the getter function exists, + // we can't use `ReflectGet()` because there + // might be a distortion for that getter function, + // in which case we must resolve the local getter + // and call it instead. + result = ReflectApply(getter, receiver, []); + } + } else { + result = localValue; + } + } + } + return result; + } + : (noop as typeof Reflect.get); + + private static hybridHasTrap = IS_IN_SHADOW_REALM + ? function ( + this: BoundaryProxyHandler, + _shadowTarget: ShadowTarget, + key: PropertyKey + ): ReturnType<typeof Reflect.has> { + let trueOrProtoPointerOrNull; + try { + trueOrProtoPointerOrNull = + foreignCallableBatchGetPrototypeOfWhenHasNoOwnProperty( + this.foreignTargetPointer, + key + ); + } catch (error: any) { + const errorToThrow = selectedTarget ?? error; + selectedTarget = undefined; + throw errorToThrow; + } + let result = false; + if (trueOrProtoPointerOrNull === true) { + result = true; + } else { + // Avoiding calling the has trap for any proto chain operation, + // instead we implement the regular logic here in this trap. + let currentObject: any; + if (typeof trueOrProtoPointerOrNull === 'function') { + trueOrProtoPointerOrNull(); + currentObject = selectedTarget; + selectedTarget = undefined; + } else { + currentObject = null; + } + while (currentObject) { + if (ObjectHasOwn(currentObject, key)) { + result = true; + break; + } + currentObject = ReflectGetPrototypeOf(currentObject); + } + } + return result; + } + : (alwaysFalse as typeof Reflect.has); + + // Passthru traps: + + private static passthruDefinePropertyTrap( + this: BoundaryProxyHandler, + _shadowTarget: ShadowTarget, + key: PropertyKey, + unsafePartialDesc: PropertyDescriptor + ): ReturnType<typeof Reflect.defineProperty> { + lastProxyTrapCalled = ProxyHandlerTraps.DefineProperty; + const { foreignTargetPointer, nonConfigurableDescriptorCallback } = this; + const safePartialDesc = unsafePartialDesc; + ReflectSetPrototypeOf(safePartialDesc, null); + const { get: getter, set: setter, value } = safePartialDesc; + const valuePointerOrPrimitive = + 'value' in safePartialDesc + ? // Inline getTransferableValue(). + (typeof value === 'object' && value !== null) || + typeof value === 'function' + ? getTransferablePointer(value) + : // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + typeof value === 'undefined' + ? undefined + : value + : LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL; + const getterPointerOrUndefinedSymbol = + 'get' in safePartialDesc + ? // Inline getTransferableValue(). + typeof getter === 'function' + ? getTransferablePointer(getter) + : getter + : LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL; + const setterPointerOrUndefinedSymbol = + 'set' in safePartialDesc + ? // Inline getTransferableValue(). + typeof setter === 'function' + ? getTransferablePointer(setter) + : setter + : LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL; + let result = false; + try { + result = foreignCallableDefineProperty( + foreignTargetPointer, + key, + 'configurable' in safePartialDesc + ? !!safePartialDesc.configurable + : LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL, + 'enumerable' in safePartialDesc + ? !!safePartialDesc.enumerable + : LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL, + 'writable' in safePartialDesc + ? !!safePartialDesc.writable + : LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL, + valuePointerOrPrimitive, + getterPointerOrUndefinedSymbol, + setterPointerOrUndefinedSymbol, + nonConfigurableDescriptorCallback + ); + } catch (error: any) { + const errorToThrow = selectedTarget ?? error; + selectedTarget = undefined; + throw errorToThrow; + } + if ( + useFastForeignTargetPath && + result && + (typeof getterPointerOrUndefinedSymbol === 'function' || + typeof setterPointerOrUndefinedSymbol === 'function') + ) { + fastForeignTargetPointers!.delete(foreignTargetPointer); + } + return result; + } + + private static passthruDeletePropertyTrap( + this: BoundaryProxyHandler, + _shadowTarget: ShadowTarget, + key: PropertyKey + ): ReturnType<typeof Reflect.deleteProperty> { + lastProxyTrapCalled = ProxyHandlerTraps.DeleteProperty; + let result = false; + try { + result = foreignCallableDeleteProperty(this.foreignTargetPointer, key); + } catch (error: any) { + const errorToThrow = selectedTarget ?? error; + selectedTarget = undefined; + throw errorToThrow; + } + return result; + } + + private static passthruGetTrap = IS_NOT_IN_SHADOW_REALM + ? function ( + this: BoundaryProxyHandler, + _shadowTarget: ShadowTarget, + key: PropertyKey, + receiver: any + ): ReturnType<typeof Reflect.get> { + // Only allow accessing handshake property values if the + // "has" trap has been triggered immediately BEFORE and + // the property does NOT exist. + handshakePropertyFlag &&= lastProxyTrapCalled === ProxyHandlerTraps.Has; + lastProxyTrapCalled = ProxyHandlerTraps.Get; + const isNearMembraneSymbol = key === LOCKER_NEAR_MEMBRANE_SYMBOL; + const isNearMembraneSerializedValueSymbol = + key === LOCKER_NEAR_MEMBRANE_SERIALIZED_VALUE_SYMBOL; + if (handshakePropertyFlag) { + // Exit without performing a [[Get]] for handshake + // properties because we know that when the + // `handshakePropertyFlag` is ON that there are NO + // shadowed values. + if (isNearMembraneSymbol) { + return true; + } + if (isNearMembraneSerializedValueSymbol) { + return this.serialize(); + } + } + const { foreignTargetPointer, foreignTargetTraits, proxy } = this; + if (typeof receiver === 'undefined') { + receiver = proxy; + } + const transferableReceiver = + proxy === receiver + ? LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL + : // Inline getTransferableValue(). + (typeof receiver === 'object' && receiver !== null) || + typeof receiver === 'function' + ? getTransferablePointer(receiver) + : receiver; + let pointerOrPrimitive: PointerOrPrimitive; + try { + pointerOrPrimitive = foreignCallableGet( + foreignTargetPointer, + foreignTargetTraits, + key, + transferableReceiver + ); + } catch (error: any) { + const errorToThrow = selectedTarget ?? error; + selectedTarget = undefined; + throw errorToThrow; + } + let result: any; + if (typeof pointerOrPrimitive === 'function') { + pointerOrPrimitive(); + result = selectedTarget; + selectedTarget = undefined; + } else { + result = pointerOrPrimitive; + } + // Getting forged values of handshake properties is not allowed. + if ( + result !== undefined && + (isNearMembraneSymbol || isNearMembraneSerializedValueSymbol) + ) { + throw new TypeErrorCtor(ERR_ILLEGAL_PROPERTY_ACCESS); + } + return result; + } + : (noop as typeof Reflect.get); + + private static passthruGetPrototypeOfTrap( + this: BoundaryProxyHandler, + _shadowTarget: ShadowTarget + ): ReturnType<typeof Reflect.getPrototypeOf> { + lastProxyTrapCalled = ProxyHandlerTraps.GetPrototypeOf; + let protoPointerOrNull; + try { + protoPointerOrNull = foreignCallableGetPrototypeOf(this.foreignTargetPointer); + } catch (error: any) { + const errorToThrow = selectedTarget ?? error; + selectedTarget = undefined; + throw errorToThrow; + } + let proto: any; + if (typeof protoPointerOrNull === 'function') { + protoPointerOrNull(); + proto = selectedTarget; + selectedTarget = undefined; + } else { + proto = null; + } + return proto as object | null; + } + + private static passthruHasTrap = IS_NOT_IN_SHADOW_REALM + ? function ( + this: BoundaryProxyHandler, + _shadowTarget: ShadowTarget, + key: PropertyKey + ): ReturnType<typeof Reflect.has> { + lastProxyTrapCalled = ProxyHandlerTraps.Has; + let result; + try { + result = foreignCallableHas(this.foreignTargetPointer, key); + } catch (error: any) { + const errorToThrow = selectedTarget ?? error; + selectedTarget = undefined; + throw errorToThrow; + } + const isNearMembraneSymbol = key === LOCKER_NEAR_MEMBRANE_SYMBOL; + const isNearMembraneSerializedValueSymbol = + key === LOCKER_NEAR_MEMBRANE_SERIALIZED_VALUE_SYMBOL; + if (result) { + handshakePropertyFlag = false; + // Checking the existence of forged handshake properties + // is not allowed. + if (isNearMembraneSymbol || isNearMembraneSerializedValueSymbol) { + throw new TypeErrorCtor(ERR_ILLEGAL_PROPERTY_ACCESS); + } + } else { + // The `handshakePropertyFlag` is ON if the handshake + // property does NOT exist on the object or its [[Prototype]]. + handshakePropertyFlag = + isNearMembraneSymbol || isNearMembraneSerializedValueSymbol; + } + return result; + } + : (alwaysFalse as typeof Reflect.has); + + private static passthruIsExtensibleTrap( + this: BoundaryProxyHandler, + _shadowTarget: ShadowTarget + ): ReturnType<typeof Reflect.isExtensible> { + lastProxyTrapCalled = ProxyHandlerTraps.IsExtensible; + const { shadowTarget } = this; + let result = false; + // Check if already locked. + if (ReflectIsExtensible(shadowTarget)) { + const { foreignTargetPointer } = this; + try { + result = foreignCallableIsExtensible(foreignTargetPointer); + } catch (error: any) { + const errorToThrow = selectedTarget ?? error; + selectedTarget = undefined; + throw errorToThrow; + } + if (!result) { + copyForeignOwnPropertyDescriptorsAndPrototypeToShadowTarget( + foreignTargetPointer, + shadowTarget + ); + ReflectPreventExtensions(shadowTarget); + } + } + return result; + } + + private static passthruOwnKeysTrap( + this: BoundaryProxyHandler, + _shadowTarget: ShadowTarget + ): ReturnType<typeof Reflect.ownKeys> { + lastProxyTrapCalled = ProxyHandlerTraps.OwnKeys; + let ownKeys: ReturnType<typeof Reflect.ownKeys> | undefined; + try { + foreignCallableOwnKeys(this.foreignTargetPointer, (...args) => { + ownKeys = args; + }); + } catch (error: any) { + const errorToThrow = selectedTarget ?? error; + selectedTarget = undefined; + throw errorToThrow; + } + return ownKeys || []; + } + + private static passthruGetOwnPropertyDescriptorTrap( + this: BoundaryProxyHandler, + _shadowTarget: ShadowTarget, + key: PropertyKey + ): ReturnType<typeof Reflect.getOwnPropertyDescriptor> { + lastProxyTrapCalled = ProxyHandlerTraps.GetOwnPropertyDescriptor; + const { foreignTargetPointer, shadowTarget } = this; + let safeDesc: PropertyDescriptor | undefined; + try { + foreignCallableGetOwnPropertyDescriptor( + foreignTargetPointer, + key, + ( + _key, + configurable, + enumerable, + writable, + valuePointer, + getterPointer, + setterPointer + ) => { + safeDesc = createDescriptorFromMeta( + configurable, + enumerable, + writable, + valuePointer, + getterPointer, + setterPointer + ); + if (safeDesc.configurable === false) { + // Update the descriptor to non-configurable on + // the shadow target. + ReflectDefineProperty(shadowTarget, key, safeDesc); + } + } + ); + } catch (error: any) { + const errorToThrow = selectedTarget ?? error; + selectedTarget = undefined; + throw errorToThrow; + } + // Getting forged descriptors of handshake properties is not allowed. + if ( + IS_NOT_IN_SHADOW_REALM && + safeDesc && + (key === LOCKER_NEAR_MEMBRANE_SYMBOL || + key === LOCKER_NEAR_MEMBRANE_SERIALIZED_VALUE_SYMBOL) + ) { + throw new TypeErrorCtor(ERR_ILLEGAL_PROPERTY_ACCESS); + } + return safeDesc; + } + + private static passthruPreventExtensionsTrap( + this: BoundaryProxyHandler, + _shadowTarget: ShadowTarget + ): ReturnType<typeof Reflect.preventExtensions> { + lastProxyTrapCalled = ProxyHandlerTraps.PreventExtensions; + const { foreignTargetPointer, shadowTarget } = this; + let result = true; + if (ReflectIsExtensible(shadowTarget)) { + let resultEnum = PreventExtensionsResult.None; + try { + resultEnum = foreignCallablePreventExtensions(foreignTargetPointer); + } catch (error: any) { + const errorToThrow = selectedTarget ?? error; + selectedTarget = undefined; + throw errorToThrow; + } + // If the target is a proxy it might reject the + // preventExtension call, in which case we should not + // attempt to lock down the shadow target. + if (!(resultEnum & PreventExtensionsResult.Extensible)) { + copyForeignOwnPropertyDescriptorsAndPrototypeToShadowTarget( + foreignTargetPointer, + shadowTarget + ); + ReflectPreventExtensions(shadowTarget); + } + result = !(resultEnum & PreventExtensionsResult.False); + } + return result; + } + + private static passthruSetPrototypeOfTrap( + this: BoundaryProxyHandler, + _shadowTarget: ShadowTarget, + proto: object | null + ): ReturnType<typeof Reflect.setPrototypeOf> { + lastProxyTrapCalled = ProxyHandlerTraps.SetPrototypeOf; + const { foreignTargetPointer } = this; + const transferableProto = proto ? getTransferablePointer(proto) : proto; + let result = false; + try { + result = foreignCallableSetPrototypeOf(foreignTargetPointer, transferableProto); + } catch (error: any) { + const errorToThrow = selectedTarget ?? error; + selectedTarget = undefined; + throw errorToThrow; + } + if (useFastForeignTargetPath && result) { + fastForeignTargetPointers!.delete(foreignTargetPointer); + } + return result; + } + + private static passthruSetTrap( + this: BoundaryProxyHandler, + _shadowTarget: ShadowTarget, + key: PropertyKey, + value: any, + receiver: any + ): boolean { + lastProxyTrapCalled = ProxyHandlerTraps.Set; + const { foreignTargetPointer, proxy, shadowTarget } = this; + // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + if (typeof value === 'undefined') { + value = undefined; + } + if (typeof receiver === 'undefined') { + receiver = proxy; + } + // Setting forged values of handshake properties is not allowed. + if ( + IS_NOT_IN_SHADOW_REALM && + (key === LOCKER_NEAR_MEMBRANE_SYMBOL || + key === LOCKER_NEAR_MEMBRANE_SERIALIZED_VALUE_SYMBOL) + ) { + throw new TypeErrorCtor(ERR_ILLEGAL_PROPERTY_ACCESS); + } + const isFastPath = proxy === receiver; + let result = false; + try { + result = isFastPath + ? foreignCallableSet( + foreignTargetPointer, + key, + // Inline getTransferableValue(). + (typeof value === 'object' && value !== null) || + typeof value === 'function' + ? getTransferablePointer(value) + : value + ) + : passthruForeignTraversedSet( + foreignTargetPointer, + shadowTarget, + key, + value, + receiver + ); + } catch (error: any) { + const errorToThrow = selectedTarget ?? error; + selectedTarget = undefined; + throw errorToThrow; + } + return result; + } + + // Pending traps: + + private static pendingDefinePropertyTrap = IS_IN_SHADOW_REALM + ? function ( + this: BoundaryProxyHandler, + shadowTarget: ShadowTarget, + key: PropertyKey, + unsafePartialDesc: PropertyDescriptor + ): ReturnType<typeof Reflect.defineProperty> { + const { foreignTargetPointer, foreignTargetTraits } = this; + // We don't wrap `foreignCallableIsTargetLive()` in a + // try-catch because it cannot throw. + if (foreignCallableIsTargetLive(foreignTargetPointer, foreignTargetTraits)) { + this.makeProxyLive(); + } else { + if (useFastForeignTargetPath) { + if (isForeignPointerOfObjectProto(foreignTargetPointer)) { + disableFastForeignTargetPointers(); + } else if (isForeignPointerOfTypedArrayProto(foreignTargetPointer)) { + useFastForeignTargetPathForTypedArrays = false; + } + } + this.makeProxyStatic(); + } + return this.defineProperty!( + shadowTarget, + key as string | symbol, + unsafePartialDesc + ); + } + : (alwaysFalse as typeof Reflect.defineProperty); + + private static pendingDeletePropertyTrap = IS_IN_SHADOW_REALM + ? function ( + this: BoundaryProxyHandler, + shadowTarget: ShadowTarget, + key: PropertyKey + ): ReturnType<typeof Reflect.deleteProperty> { + // We don't wrap `foreignCallableIsTargetLive()` in a + // try-catch because it cannot throw. + if ( + foreignCallableIsTargetLive( + this.foreignTargetPointer, + this.foreignTargetTraits + ) + ) { + this.makeProxyLive(); + } else { + this.makeProxyStatic(); + } + return this.deleteProperty!(shadowTarget, key as string | symbol); + } + : (alwaysFalse as typeof Reflect.deleteProperty); + + private static pendingPreventExtensionsTrap = IS_IN_SHADOW_REALM + ? function ( + this: BoundaryProxyHandler, + shadowTarget: ShadowTarget + ): ReturnType<typeof Reflect.preventExtensions> { + // We don't wrap `foreignCallableIsTargetLive()` in a + // try-catch because it cannot throw. + if ( + foreignCallableIsTargetLive( + this.foreignTargetPointer, + this.foreignTargetTraits + ) + ) { + this.makeProxyLive(); + } else { + this.makeProxyStatic(); + } + return this.preventExtensions!(shadowTarget); + } + : (alwaysFalse as typeof Reflect.preventExtensions); + + private static pendingSetPrototypeOfTrap = IS_IN_SHADOW_REALM + ? function ( + this: BoundaryProxyHandler, + shadowTarget: ShadowTarget, + proto: object | null + ): ReturnType<typeof Reflect.setPrototypeOf> { + const { foreignTargetPointer, foreignTargetTraits } = this; + // We don't wrap `foreignCallableIsTargetLive()` in a + // try-catch because it cannot throw. + if (foreignCallableIsTargetLive(foreignTargetPointer, foreignTargetTraits)) { + this.makeProxyLive(); + } else { + if (useFastForeignTargetPath) { + if (isForeignPointerOfObjectProto(foreignTargetPointer)) { + disableFastForeignTargetPointers(); + } else if (isForeignPointerOfTypedArrayProto(foreignTargetPointer)) { + useFastForeignTargetPathForTypedArrays = false; + } + } + this.makeProxyStatic(); + } + return this.setPrototypeOf!(shadowTarget, proto); + } + : (alwaysFalse as typeof Reflect.setPrototypeOf); + + private static pendingSetTrap = IS_IN_SHADOW_REALM + ? function ( + this: BoundaryProxyHandler, + shadowTarget: ShadowTarget, + key: PropertyKey, + value: any, + receiver: any + ): ReturnType<typeof Reflect.set> { + const { foreignTargetPointer, foreignTargetTraits } = this; + // We don't wrap `foreignCallableIsTargetLive()` in a + // try-catch because it cannot throw. + if (foreignCallableIsTargetLive(foreignTargetPointer, foreignTargetTraits)) { + this.makeProxyLive(); + } else { + if (useFastForeignTargetPath) { + if (isForeignPointerOfObjectProto(foreignTargetPointer)) { + disableFastForeignTargetPointers(); + } else if (isForeignPointerOfTypedArrayProto(foreignTargetPointer)) { + useFastForeignTargetPathForTypedArrays = false; + } + } + this.makeProxyStatic(); + } + return this.set!(shadowTarget, key as string | symbol, value, receiver); + } + : (alwaysFalse as typeof Reflect.set); + + // Static traps: + + private static staticDefinePropertyTrap = IS_IN_SHADOW_REALM + ? ReflectDefineProperty + : (alwaysFalse as typeof Reflect.defineProperty); + + private static staticDeletePropertyTrap = IS_IN_SHADOW_REALM + ? ReflectDeleteProperty + : (alwaysFalse as typeof Reflect.deleteProperty); + + private static staticGetOwnPropertyDescriptorTrap = IS_IN_SHADOW_REALM + ? ReflectGetOwnPropertyDescriptor + : (noop as typeof Reflect.getOwnPropertyDescriptor); + + private static staticGetPrototypeOfTrap = IS_IN_SHADOW_REALM + ? ReflectGetPrototypeOf + : ((() => null) as typeof Reflect.getPrototypeOf); + + private static staticGetTrap = IS_IN_SHADOW_REALM + ? function ( + this: BoundaryProxyHandler, + shadowTarget: ShadowTarget, + key: PropertyKey, + receiver: any + ): ReturnType<typeof Reflect.get> { + const { foreignTargetTraits, staticToStringTag } = this; + const result = ReflectGet(shadowTarget, key, receiver); + if ( + result === undefined && + key === SymbolToStringTag && + foreignTargetTraits & TargetTraits.IsObject && + // The default language toStringTag is "Object". If we + // receive "Object" we return `undefined` to let the + // language resolve it naturally without projecting a + // value. + staticToStringTag !== 'Object' && + !(key in shadowTarget) + ) { + return staticToStringTag; + } + return result; + } + : (noop as typeof Reflect.get); + + private static staticHasTrap = IS_IN_SHADOW_REALM + ? ReflectHas + : (alwaysFalse as typeof Reflect.has); + + private static staticIsExtensibleTrap = IS_IN_SHADOW_REALM + ? ReflectIsExtensible + : (alwaysFalse as typeof Reflect.isExtensible); + + private static staticOwnKeysTrap = IS_IN_SHADOW_REALM + ? ReflectOwnKeys + : ((() => []) as typeof Reflect.ownKeys); + + private static staticPreventExtensionsTrap = IS_IN_SHADOW_REALM + ? ReflectPreventExtensions + : (alwaysFalse as typeof Reflect.preventExtensions); + + private static staticSetPrototypeOfTrap = IS_IN_SHADOW_REALM + ? ReflectSetPrototypeOf + : (alwaysFalse as typeof Reflect.setPrototypeOf); + + private static staticSetTrap = IS_IN_SHADOW_REALM + ? ReflectSet + : (alwaysFalse as typeof Reflect.set); + + // Default traps: + + // Pending traps are needed for the shadow realm side of the membrane + // to avoid leaking mutation operations on the primary realm side. + private static defaultDefinePropertyTrap = IS_IN_SHADOW_REALM + ? BoundaryProxyHandler.pendingDefinePropertyTrap + : BoundaryProxyHandler.passthruDefinePropertyTrap; + + private static defaultDeletePropertyTrap = IS_IN_SHADOW_REALM + ? BoundaryProxyHandler.pendingDeletePropertyTrap + : BoundaryProxyHandler.passthruDeletePropertyTrap; + + private static defaultGetOwnPropertyDescriptorTrap = + BoundaryProxyHandler.passthruGetOwnPropertyDescriptorTrap; + + private static defaultGetPrototypeOfTrap = + BoundaryProxyHandler.passthruGetPrototypeOfTrap; + + private static defaultGetTrap = IS_IN_SHADOW_REALM + ? BoundaryProxyHandler.hybridGetTrap + : BoundaryProxyHandler.passthruGetTrap; + + private static defaultHasTrap = IS_IN_SHADOW_REALM + ? BoundaryProxyHandler.hybridHasTrap + : BoundaryProxyHandler.passthruHasTrap; + + private static defaultIsExtensibleTrap = BoundaryProxyHandler.passthruIsExtensibleTrap; + + private static defaultOwnKeysTrap = BoundaryProxyHandler.passthruOwnKeysTrap; + + private static defaultPreventExtensionsTrap = IS_IN_SHADOW_REALM + ? BoundaryProxyHandler.pendingPreventExtensionsTrap + : BoundaryProxyHandler.passthruPreventExtensionsTrap; + + private static defaultSetTrap = IS_IN_SHADOW_REALM + ? BoundaryProxyHandler.pendingSetTrap + : BoundaryProxyHandler.passthruSetTrap; + + private static defaultSetPrototypeOfTrap = IS_IN_SHADOW_REALM + ? BoundaryProxyHandler.pendingSetPrototypeOfTrap + : BoundaryProxyHandler.passthruSetPrototypeOfTrap; + } + + if (IS_IN_SHADOW_REALM) { + // Initialize `fastForeignTargetPointers` weak map. + clearFastForeignTargetPointers(); + } + // Export callable hooks to a foreign realm. + foreignCallableHooksCallback( + // globalThisPointer + // When crossing, should be mapped to the foreign globalThis + createPointer(globalThisRef), + // getSelectedTarget + IS_NOT_IN_SHADOW_REALM + ? (): any => { + const result = selectedTarget; + selectedTarget = undefined; + return result; + } + : (noop as GetSelectedTarget), + // getTransferableValue + (value: any): PointerOrPrimitive => { + if ((typeof value === 'object' && value !== null) || typeof value === 'function') { + return getTransferablePointer(value); + } + // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + return typeof value === 'undefined' ? undefined : value; + }, + // callableGetPropertyValuePointer: this callable function allows + // the foreign realm to access a linkable pointer for a property value. + // In order to do that, the foreign side must provide a pointer and + // a key access the value in order to produce a pointer + (targetPointer: Pointer, key: PropertyKey) => { + targetPointer(); + const target = selectedTarget!; + selectedTarget = undefined; + const value = (target as any)?.[key]; + // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + return createPointer(typeof value === 'undefined' ? undefined : value); + }, + // callableEvaluate + IS_IN_SHADOW_REALM + ? (sourceText: string): PointerOrPrimitive => { + let result: PointerOrPrimitive; + try { + result = localEval!(sourceText); + } catch (error: any) { + throw pushErrorAcrossBoundary(error); + } + // Inline getTransferableValue(). + return (typeof result === 'object' && result !== null) || + typeof result === 'function' + ? getTransferablePointer(result) + : result; + } + : (noop as CallableEvaluate), + // callableLinkPointers: this callable function allows the foreign + // realm to define a linkage between two values across the membrane. + (targetPointer: Pointer, newPointer: Pointer) => { + targetPointer(); + const target = selectedTarget; + selectedTarget = undefined; + if ( + (typeof target === 'object' && target !== null) || + typeof target === 'function' + ) { + proxyPointerCache.set(target, newPointer); + } + }, + // callablePushErrorTarget + LOCKER_DEBUGGABLE_FLAG + ? ( + foreignTargetPointer: () => void, + foreignTargetTraits: TargetTraits, + foreignTargetFunctionArity: number, + foreignTargetFunctionName: string, + foreignTargetTypedArrayLength: number + ): Pointer => { + const pointer = pushTarget( + foreignTargetPointer, + foreignTargetTraits, + foreignTargetFunctionArity, + foreignTargetFunctionName, + foreignTargetTypedArrayLength + ); + const pointerWrapper = () => { + checkDebugMode(); + return pointer(); + }; + if (DEV_MODE) { + pointerWrapper['[[OriginalTarget]]'] = (pointer as any)[ + '[[OriginalTarget]]' + ]; + pointerWrapper['[[Color]]'] = (pointer as any)['[[Color]]']; + } + return pointerWrapper; + } + : pushTarget, + // callablePushTarget: This function can be used by a foreign realm + // to install a proxy into this realm that correspond to an object + // from the foreign realm. It returns a Pointer that can be used by + // the foreign realm to pass back a reference to this realm when + // passing arguments or returning from a foreign callable invocation. + // This function is extremely important to understand the mechanics + // of this membrane. + pushTarget, + // callableApply + ( + targetPointer: Pointer, + thisArgPointerOrUndefined: PointerOrPrimitive, + ...args: PointerOrPrimitive[] + ): PointerOrPrimitive => { + targetPointer(); + const func = selectedTarget as Function; + selectedTarget = undefined; + let thisArg: ProxyTarget | undefined; + if (typeof thisArgPointerOrUndefined === 'function') { + thisArgPointerOrUndefined(); + thisArg = selectedTarget; + selectedTarget = undefined; + } + for (let i = 0, { length } = args; i < length; i += 1) { + const pointerOrPrimitive = args[i]; + if (typeof pointerOrPrimitive === 'function') { + pointerOrPrimitive(); + args[i] = selectedTarget; + selectedTarget = undefined; + } + } + let result: any; + try { + result = ReflectApply(func, thisArg, args); + } catch (error: any) { + throw pushErrorAcrossBoundary(error); + } + // Inline getTransferableValue(). + return (typeof result === 'object' && result !== null) || + typeof result === 'function' + ? getTransferablePointer(result) + : // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + typeof result === 'undefined' + ? undefined + : result; + }, + // callableConstruct + ( + targetPointer: Pointer, + newTargetPointerOrUndefined: PointerOrPrimitive, + ...args: PointerOrPrimitive[] + ): PointerOrPrimitive => { + targetPointer(); + const constructor = selectedTarget as Function; + selectedTarget = undefined; + let newTarget: Function | undefined; + if (typeof newTargetPointerOrUndefined === 'function') { + newTargetPointerOrUndefined(); + newTarget = selectedTarget as Function | undefined; + selectedTarget = undefined; + } + for (let i = 0, { length } = args; i < length; i += 1) { + const pointerOrPrimitive = args[i]; + if (typeof pointerOrPrimitive === 'function') { + pointerOrPrimitive(); + args[i] = selectedTarget; + selectedTarget = undefined; + } + } + let result; + try { + result = ReflectConstruct(constructor, args, newTarget); + } catch (error: any) { + throw pushErrorAcrossBoundary(error); + } + // Inline getTransferableValue(). + return (typeof result === 'object' && result !== null) || + typeof result === 'function' + ? getTransferablePointer(result) + : // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + typeof result === 'undefined' + ? undefined + : result; + }, + // callableDefineProperty + ( + targetPointer: Pointer, + key: PropertyKey, + configurable: boolean | symbol, + enumerable: boolean | symbol, + writable: boolean | symbol, + valuePointer: PointerOrPrimitive, + getterPointer: PointerOrPrimitive, + setterPointer: PointerOrPrimitive, + foreignCallableNonConfigurableDescriptorCallback: CallableDescriptorCallback + ): boolean => { + targetPointer(); + const target = selectedTarget!; + selectedTarget = undefined; + const safePartialDesc = createDescriptorFromMeta( + configurable, + enumerable, + writable, + valuePointer, + getterPointer, + setterPointer + ); + let result = false; + try { + result = ReflectDefineProperty(target, key, safePartialDesc); + } catch (error: any) { + throw pushErrorAcrossBoundary(error); + } + if (result && configurable === false) { + let safeDesc; + try { + safeDesc = ReflectGetOwnPropertyDescriptor(target, key); + } catch (error: any) { + throw pushErrorAcrossBoundary(error); + } + if (safeDesc) { + ReflectSetPrototypeOf(safeDesc, null); + if (safeDesc.configurable === false) { + const { get: getter, set: setter, value } = safeDesc; + foreignCallableNonConfigurableDescriptorCallback( + key, + false, // configurable + 'enumerable' in safeDesc + ? (safeDesc.enumerable as boolean) + : LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL, + 'writable' in safeDesc + ? (safeDesc.writable as boolean) + : LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL, + 'value' in safeDesc + ? // Inline getTransferableValue(). + (typeof value === 'object' && value !== null) || + typeof value === 'function' + ? getTransferablePointer(value) + : value + : LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL, + 'get' in safeDesc + ? // Inline getTransferableValue(). + typeof getter === 'function' + ? getTransferablePointer(getter) + : getter + : LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL, + 'set' in safeDesc + ? // Inline getTransferableValue(). + typeof setter === 'function' + ? getTransferablePointer(setter) + : setter + : LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL + ); + } + } + } + return result; + }, + // callableDeleteProperty + (targetPointer: Pointer, key: PropertyKey): boolean => { + targetPointer(); + const target = selectedTarget!; + selectedTarget = undefined; + try { + return ReflectDeleteProperty(target, key); + } catch (error: any) { + throw pushErrorAcrossBoundary(error); + } + }, + // callableGet + ( + targetPointer: Pointer, + targetTraits: TargetTraits, + key: PropertyKey, + receiverPointerOrPrimitive: PointerOrPrimitive + ): PointerOrPrimitive => { + targetPointer(); + const target = selectedTarget!; + selectedTarget = undefined; + let receiver: any; + if (typeof receiverPointerOrPrimitive === 'function') { + receiverPointerOrPrimitive(); + receiver = selectedTarget; + selectedTarget = undefined; + } else { + receiver = + receiverPointerOrPrimitive === LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL + ? target + : receiverPointerOrPrimitive; + } + let result; + try { + result = ReflectGet(target, key, receiver); + } catch (error: any) { + throw pushErrorAcrossBoundary(error); + } + // Inline getTransferableValue(). + if ( + (typeof result === 'object' && result !== null) || + typeof result === 'function' + ) { + return getTransferablePointer(result); + } + if ( + result === undefined && + key === SymbolToStringTag && + targetTraits & TargetTraits.IsObject + ) { + try { + if (!(key in target)) { + // Section 19.1.3.6 Object.prototype.toString() + // https://tc39.github.io/ecma262/#sec-object.prototype.tostring + const brand: string = ReflectApply(ObjectProtoToString, target, []); + // The default language toStringTag is "Object". If + // we receive "[object Object]" we return `undefined` + // to let the language resolve it naturally without + // projecting a value. + if (brand !== '[object Object]') { + result = ReflectApply(StringProtoSlice, brand, [8, -1]) as string; + } + } + } catch (error: any) { + throw pushErrorAcrossBoundary(error); + } + } + // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + return typeof result === 'undefined' ? undefined : result; + }, + // callableGetOwnPropertyDescriptor + ( + targetPointer: Pointer, + key: PropertyKey, + foreignCallableDescriptorCallback: CallableDescriptorCallback + ): void => { + targetPointer(); + const target = selectedTarget!; + selectedTarget = undefined; + let safeDesc; + try { + safeDesc = ReflectGetOwnPropertyDescriptor(target, key); + } catch (error: any) { + throw pushErrorAcrossBoundary(error); + } + if (safeDesc) { + ReflectSetPrototypeOf(safeDesc, null); + const { get: getter, set: setter, value } = safeDesc; + foreignCallableDescriptorCallback( + key, + 'configurable' in safeDesc + ? (safeDesc.configurable as boolean) + : LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL, + 'enumerable' in safeDesc + ? (safeDesc.enumerable as boolean) + : LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL, + 'writable' in safeDesc + ? (safeDesc.writable as boolean) + : LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL, + 'value' in safeDesc + ? // Inline getTransferableValue(). + (typeof value === 'object' && value !== null) || + typeof value === 'function' + ? getTransferablePointer(value) + : // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + typeof value === 'undefined' + ? undefined + : value + : LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL, + 'get' in safeDesc + ? // Inline getTransferableValue(). + typeof getter === 'function' + ? getTransferablePointer(getter) + : getter + : LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL, + 'set' in safeDesc + ? // Inline getTransferableValue(). + typeof setter === 'function' + ? getTransferablePointer(setter) + : setter + : LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL + ); + } + }, + // callableGetPrototypeOf + (targetPointer: Pointer): PointerOrPrimitive => { + targetPointer(); + const target = selectedTarget!; + selectedTarget = undefined; + let proto: object | null; + try { + proto = ReflectGetPrototypeOf(target); + } catch (error: any) { + throw pushErrorAcrossBoundary(error); + } + // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + if (typeof proto === 'undefined') { + return null; + } + return proto ? getTransferablePointer(proto) : proto; + }, + // callableHas + (targetPointer: Pointer, key: PropertyKey): boolean => { + targetPointer(); + const target = selectedTarget!; + selectedTarget = undefined; + try { + return key in target; + } catch (error: any) { + throw pushErrorAcrossBoundary(error); + } + }, + // callableIsExtensible + (targetPointer: Pointer): boolean => { + targetPointer(); + const target = selectedTarget!; + selectedTarget = undefined; + try { + return ReflectIsExtensible(target); + } catch (error: any) { + throw pushErrorAcrossBoundary(error); + } + }, + // callableOwnKeys + ( + targetPointer: Pointer, + foreignCallableKeysCallback: (...args: ReturnType<typeof Reflect.ownKeys>) => void + ): void => { + targetPointer(); + const target = selectedTarget!; + selectedTarget = undefined; + let ownKeys; + try { + ownKeys = ReflectOwnKeys(target); + } catch (error: any) { + throw pushErrorAcrossBoundary(error); + } + ReflectApply(foreignCallableKeysCallback, undefined, ownKeys); + }, + // callablePreventExtensions + (targetPointer: Pointer): PreventExtensionsResult => { + targetPointer(); + const target = selectedTarget!; + selectedTarget = undefined; + let result = PreventExtensionsResult.False; + try { + if (ReflectPreventExtensions(target)) { + result = PreventExtensionsResult.True; + } else if (ReflectIsExtensible(target)) { + result |= PreventExtensionsResult.Extensible; + } + } catch (error: any) { + throw pushErrorAcrossBoundary(error); + } + return result; + }, + // callableSet + ( + targetPointer: Pointer, + key: PropertyKey, + valuePointerOrPrimitive: PointerOrPrimitive + ): boolean => { + targetPointer(); + const target = selectedTarget!; + selectedTarget = undefined; + let value: any; + if (typeof valuePointerOrPrimitive === 'function') { + valuePointerOrPrimitive(); + value = selectedTarget; + selectedTarget = undefined; + } else { + value = valuePointerOrPrimitive; + } + try { + return ReflectSet(target, key, value, target); + } catch (error: any) { + throw pushErrorAcrossBoundary(error); + } + }, + // callableSetPrototypeOf + (targetPointer: Pointer, protoPointerOrNull: Pointer | null = null): boolean => { + targetPointer(); + const target = selectedTarget!; + selectedTarget = undefined; + let proto: object | null; + if (typeof protoPointerOrNull === 'function') { + // Instead of calling `protoPointerOrNull()` directly we use + // `ReflectApply` to avoid a Maglev (https://v8.dev/blog/maglev) + // optimizing JIT bug in Chrome >= 117: + // https://bugs.chromium.org/p/chromium/issues/detail?id=1494060 + ReflectApply(protoPointerOrNull, undefined, []); + proto = selectedTarget!; + selectedTarget = undefined; + } else { + proto = null; + } + try { + return ReflectSetPrototypeOf(target, proto); + } catch (error: any) { + throw pushErrorAcrossBoundary(error); + } + }, + // callableDebugInfo + LOCKER_DEBUGGABLE_FLAG + ? (...args: Parameters<typeof console.info>) => { + if (checkDebugMode()) { + for (let i = 0, { length } = args; i < length; i += 1) { + const pointerOrPrimitive: PointerOrPrimitive = args[i]; + if (typeof pointerOrPrimitive === 'function') { + pointerOrPrimitive(); + args[i] = selectedTarget; + selectedTarget = undefined; + } + } + try { + ReflectApply(consoleInfo!, consoleObject, args); + // eslint-disable-next-line no-empty + } catch {} + } + } + : (noop as CallableDebugInfo), + // callableDefineProperties + IS_IN_SHADOW_REALM + ? ( + targetPointer: Pointer, + ...descriptorTuples: [...Parameters<CallableDescriptorCallback>] + ): void => { + targetPointer(); + const target = selectedTarget!; + selectedTarget = undefined; + for (let i = 0, { length } = descriptorTuples; i < length; i += 7) { + // We don't use `ObjectDefineProperties()` here because it + // will throw an exception if it fails to define one of its + // properties. + ReflectDefineProperty( + target, + descriptorTuples[i] as PropertyKey, + createDescriptorFromMeta( + descriptorTuples[i + 1] as boolean | symbol, // configurable + descriptorTuples[i + 2] as boolean | symbol, // enumerable + descriptorTuples[i + 3] as boolean | symbol, // writable + descriptorTuples[i + 4] as PointerOrPrimitive, // valuePointer + descriptorTuples[i + 5] as PointerOrPrimitive, // getterPointer + descriptorTuples[i + 6] as PointerOrPrimitive // setterPointer + ) + ); + } + } + : (noop as CallableDefineProperties), + // callableGetLazyPropertyDescriptorStateByTarget + IS_NOT_IN_SHADOW_REALM + ? (targetPointer: Pointer) => { + targetPointer(); + const target = selectedTarget!; + selectedTarget = undefined; + // We don't wrap the weak map `get()` call in a try-catch + // because we know `target` is an object. + const state = proxyTargetToLazyPropertyDescriptorStateMap.get(target); + return state ? getTransferablePointer(state) : state; + } + : (noop as CallableGetLazyPropertyDescriptorStateByTarget), + // callableGetPropertyValue + IS_NOT_IN_SHADOW_REALM + ? (targetPointer: Pointer, key: PropertyKey): PointerOrPrimitive => { + targetPointer(); + const target = selectedTarget!; + selectedTarget = undefined; + let value: any; + try { + value = (target as any)[key]; + } catch (error: any) { + throw pushErrorAcrossBoundary(error); + } + return (typeof value === 'object' && value !== null) || + typeof value === 'function' + ? getTransferablePointer(value) + : value; + } + : (noop as unknown as CallableGetPropertyValue), + // callableGetTargetIntegrityTraits + IS_NOT_IN_SHADOW_REALM + ? (targetPointer: Pointer): TargetIntegrityTraits => { + targetPointer(); + const target = selectedTarget!; + selectedTarget = undefined; + // A target may be a proxy that is revoked or throws in its + // "isExtensible" trap. + try { + if (!ReflectIsExtensible(target)) { + if (ObjectIsFrozen(target)) { + return ( + TargetIntegrityTraits.IsFrozen & + TargetIntegrityTraits.IsSealed & + TargetIntegrityTraits.IsNotExtensible + ); + } + if (ObjectIsSealed(target)) { + return ( + TargetIntegrityTraits.IsSealed & + TargetIntegrityTraits.IsNotExtensible + ); + } + return TargetIntegrityTraits.IsNotExtensible; + } + } catch { + try { + isArrayOrThrowForRevoked(target); + } catch { + return TargetIntegrityTraits.Revoked; + } + } + return TargetIntegrityTraits.None; + } + : ((() => TargetIntegrityTraits.None) as CallableGetTargetIntegrityTraits), + // callableGetToStringTagOfTarget + (targetPointer: Pointer): string => { + targetPointer(); + const target = selectedTarget!; + selectedTarget = undefined; + try { + // Section 19.1.3.6 Object.prototype.toString() + // https://tc39.github.io/ecma262/#sec-object.prototype.tostring + const brand = ReflectApply(ObjectProtoToString, target, []); + return brand === '[object Object]' + ? 'Object' + : ReflectApply(StringProtoSlice, brand, [8, -1]); + } catch (error: any) { + throw pushErrorAcrossBoundary(error); + } + }, + // callableInstallErrorPrepareStackTrace + installErrorPrepareStackTrace, + // callableInstallLazyPropertyDescriptors + IS_IN_SHADOW_REALM + ? ( + targetPointer: Pointer, + ...ownKeysAndUnforgeableGlobalThisKeys: PropertyKey[] + ) => { + const sliceIndex: number = ReflectApply( + ArrayProtoIndexOf, + ownKeysAndUnforgeableGlobalThisKeys, + [LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL] + ); + let ownKeys: PropertyKey[]; + let unforgeableGlobalThisKeys: PropertyKey[] | undefined; + if (sliceIndex === -1) { + ownKeys = ownKeysAndUnforgeableGlobalThisKeys; + } else { + ownKeys = ReflectApply( + ArrayProtoSlice, + ownKeysAndUnforgeableGlobalThisKeys, + [0, sliceIndex] + ) as PropertyKey[]; + unforgeableGlobalThisKeys = ReflectApply( + ArrayProtoSlice, + ownKeysAndUnforgeableGlobalThisKeys, + [sliceIndex + 1] + ) as PropertyKey[]; + } + targetPointer(); + const target = selectedTarget!; + selectedTarget = undefined; + let state = getLazyPropertyDescriptorStateByTarget(target); + if (state === undefined) { + state = { __proto__: null }; + setLazyPropertyDescriptorStateByTarget(target, state); + } + for (let i = 0, { length } = ownKeys; i < length; i += 1) { + const ownKey = ownKeys[i]; + (state as any)[ownKey] = true; + ReflectDefineProperty( + target, + ownKey, + // The role of this descriptor is to serve as a + // bouncer. When either a getter or a setter is + // invoked the descriptor will be replaced with + // the descriptor from the foreign side and the + // get/set operation will carry on from there. + { + __proto__: null, + // We DO explicitly set configurability in the + // off chance that the property doesn't exist. + configurable: true, + // We DON'T explicitly set enumerability to + // defer to the enumerability of the existing + // property. In the off chance the property + // doesn't exist the property will be defined + // as non-enumerable. + get(): any { + activateLazyOwnPropertyDefinition(target, ownKey, state!); + return (target as any)[ownKey]; + }, + set(value: any) { + activateLazyOwnPropertyDefinition(target, ownKey, state!); + ReflectSet(target, ownKey, value); + }, + } as PropertyDescriptor + ); + } + installPropertyDescriptorMethodWrappers(unforgeableGlobalThisKeys); + } + : (noop as CallableInstallLazyPropertyDescriptors), + // callableIsTargetLive + IS_NOT_IN_SHADOW_REALM && liveTargetCallback + ? (targetPointer: Pointer, targetTraits: TargetTraits): boolean => { + targetPointer(); + const target = selectedTarget!; + selectedTarget = undefined; + if (target !== ObjectProto && target !== RegExpProto) { + try { + return liveTargetCallback(target, targetTraits); + // eslint-disable-next-line no-empty + } catch {} + } + return false; + } + : (alwaysFalse as CallableIsTargetLive), + // callableIsTargetRevoked + IS_NOT_IN_SHADOW_REALM + ? (targetPointer: Pointer): boolean => { + targetPointer(); + const target = selectedTarget!; + selectedTarget = undefined; + try { + isArrayOrThrowForRevoked(target); + return false; + // eslint-disable-next-line no-empty + } catch {} + return true; + } + : (alwaysFalse as CallableIsTargetRevoked), + // callableSerializeTarget + IS_IN_SHADOW_REALM + ? (targetPointer: Pointer): SerializedValue | undefined => { + targetPointer(); + const target = selectedTarget!; + selectedTarget = undefined; + try { + return SymbolToStringTag in target + ? serializeTargetByTrialAndError(target) + : // Fast path. + serializeTargetByBrand(target); + // eslint-disable-next-line no-empty + } catch {} + return undefined; + } + : (noop as CallableSerializeTarget), + // callableSetLazyPropertyDescriptorStateByTarget + IS_NOT_IN_SHADOW_REALM + ? (targetPointer: Pointer, statePointer: Pointer) => { + targetPointer(); + const target = selectedTarget!; + selectedTarget = undefined; + statePointer(); + const state = selectedTarget!; + selectedTarget = undefined; + // We don't wrap the weak map `set()` call in a try-catch + // because we know `target` is an object. + proxyTargetToLazyPropertyDescriptorStateMap.set(target, state); + } + : (noop as CallableSetLazyPropertyDescriptorStateByTarget), + // callableTrackAsFastTarget + IS_IN_SHADOW_REALM + ? (targetPointer: Pointer) => { + targetPointer(); + const target = selectedTarget!; + selectedTarget = undefined; + if (useFastForeignTargetPath) { + fastForeignTargetPointers.add(getTransferablePointer(target)); + } + } + : (noop as CallableTrackAsFastTarget), + // callableBatchGetPrototypeOfAndGetOwnPropertyDescriptors + ( + targetPointer: Pointer, + foreignCallableDescriptorsCallback: CallableDescriptorsCallback + ): PointerOrPrimitive => { + targetPointer(); + const target = selectedTarget!; + selectedTarget = undefined; + let unsafeDescs; + try { + unsafeDescs = ObjectGetOwnPropertyDescriptors(target); + } catch (error: any) { + throw pushErrorAcrossBoundary(error); + } + const ownKeys = ReflectOwnKeys(unsafeDescs); + const { length } = ownKeys; + const descriptorTuples = new ArrayCtor( + length * 7 + ) as Parameters<CallableDescriptorCallback>; + for (let i = 0, j = 0; i < length; i += 1, j += 7) { + const ownKey = ownKeys[i]; + const safeDesc = (unsafeDescs as any)[ownKey]; + ReflectSetPrototypeOf(safeDesc, null); + const { get: getter, set: setter, value } = safeDesc; + descriptorTuples[j] = ownKey; + descriptorTuples[j + 1] = + 'configurable' in safeDesc + ? (safeDesc.configurable as boolean) + : LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL; + descriptorTuples[j + 2] = + 'enumerable' in safeDesc + ? (safeDesc.enumerable as boolean) + : LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL; + descriptorTuples[j + 3] = + 'writable' in safeDesc + ? (safeDesc.writable as boolean) + : LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL; + descriptorTuples[j + 4] = + 'value' in safeDesc + ? // Inline getTransferableValue(). + (typeof value === 'object' && value !== null) || + typeof value === 'function' + ? getTransferablePointer(value) + : value + : LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL; + descriptorTuples[j + 5] = + 'get' in safeDesc + ? // Inline getTransferableValue(). + typeof getter === 'function' + ? getTransferablePointer(getter) + : getter + : LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL; + descriptorTuples[j + 6] = + 'set' in safeDesc + ? // Inline getTransferableValue(). + typeof setter === 'function' + ? getTransferablePointer(setter) + : setter + : LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL; + } + ReflectApply( + foreignCallableDescriptorsCallback, + undefined, + descriptorTuples as Parameters<CallableDescriptorsCallback> + ); + let proto; + try { + proto = ReflectGetPrototypeOf(target); + } catch (error: any) { + throw pushErrorAcrossBoundary(error); + } + // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + if (typeof proto === 'undefined') { + return null; + } + return proto ? getTransferablePointer(proto) : proto; + }, + // callableBatchGetPrototypeOfWhenHasNoOwnProperty + (targetPointer: Pointer, key: PropertyKey): PointerOrPrimitive => { + targetPointer(); + const target = selectedTarget!; + selectedTarget = undefined; + let proto; + try { + if (ObjectHasOwn(target, key)) { + return true; + } + proto = ReflectGetPrototypeOf(target); + } catch (error: any) { + throw pushErrorAcrossBoundary(error); + } + // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + if (typeof proto === 'undefined') { + return null; + } + return proto ? getTransferablePointer(proto) : proto; + }, + // callableBatchGetPrototypeOfWhenHasNoOwnPropertyDescriptor + ( + targetPointer: Pointer, + key: PropertyKey, + foreignCallableDescriptorCallback: CallableDescriptorCallback + ): PointerOrPrimitive => { + targetPointer(); + const target = selectedTarget!; + selectedTarget = undefined; + let safeDesc; + try { + safeDesc = ReflectGetOwnPropertyDescriptor(target, key); + } catch (error: any) { + throw pushErrorAcrossBoundary(error); + } + if (safeDesc) { + ReflectSetPrototypeOf(safeDesc, null); + const { get: getter, set: setter, value } = safeDesc; + foreignCallableDescriptorCallback( + key, + 'configurable' in safeDesc + ? (safeDesc.configurable as boolean) + : LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL, + 'enumerable' in safeDesc + ? (safeDesc.enumerable as boolean) + : LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL, + 'writable' in safeDesc + ? (safeDesc.writable as boolean) + : LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL, + 'value' in safeDesc + ? // Inline getTransferableValue(). + (typeof value === 'object' && value !== null) || + typeof value === 'function' + ? getTransferablePointer(value) + : // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + typeof value === 'undefined' + ? undefined + : value + : LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL, + 'get' in safeDesc + ? // Inline getTransferableValue(). + typeof getter === 'function' + ? getTransferablePointer(getter) + : getter + : LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL, + 'set' in safeDesc + ? // Inline getTransferableValue(). + typeof setter === 'function' + ? getTransferablePointer(setter) + : setter + : LOCKER_NEAR_MEMBRANE_UNDEFINED_VALUE_SYMBOL + ); + return undefined; + } + let proto; + try { + proto = ReflectGetPrototypeOf(target); + } catch (error: any) { + throw pushErrorAcrossBoundary(error); + } + // Intentionally ignoring `document.all`. + // https://developer.mozilla.org/en-US/docs/Web/API/Document/all + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + if (typeof proto === 'undefined') { + return null; + } + return proto ? getTransferablePointer(proto) : proto; + } + ); + let foreignCallablesHooked = false; + return (...hooks: Parameters<HooksCallback>) => { + if (foreignCallablesHooked) { + return; + } + foreignCallablesHooked = true; + ({ + // 0: globalThisPointer, + // 1: getSelectedTarget, + // 2: getTransferableValue, + // 3: callableGetPropertyValuePointer, + // 4: callableEvaluate, + // 5: callableLinkPointers, + 6: foreignCallablePushErrorTarget, + 7: foreignCallablePushTarget, + 8: foreignCallableApply, + 9: foreignCallableConstruct, + 10: foreignCallableDefineProperty, + 11: foreignCallableDeleteProperty, + 12: foreignCallableGet, + 13: foreignCallableGetOwnPropertyDescriptor, + 14: foreignCallableGetPrototypeOf, + 15: foreignCallableHas, + 16: foreignCallableIsExtensible, + 17: foreignCallableOwnKeys, + 18: foreignCallablePreventExtensions, + 19: foreignCallableSet, + 20: foreignCallableSetPrototypeOf, + 21: foreignCallableDebugInfo, + // 22: callableDefineProperties, + 23: foreignCallableGetLazyPropertyDescriptorStateByTarget, + 24: foreignCallableGetPropertyValue, + 25: foreignCallableGetTargetIntegrityTraits, + 26: foreignCallableGetToStringTagOfTarget, + 27: foreignCallableInstallErrorPrepareStackTrace, + // 28: callableInstallLazyPropertyDescriptors, + 29: foreignCallableIsTargetLive, + 30: foreignCallableIsTargetRevoked, + 31: foreignCallableSerializeTarget, + 32: foreignCallableSetLazyPropertyDescriptorStateByTarget, + // 33: callableTrackAsFastTarget, + 34: foreignCallableBatchGetPrototypeOfAndGetOwnPropertyDescriptors, + 35: foreignCallableBatchGetPrototypeOfWhenHasNoOwnProperty, + 36: foreignCallableBatchGetPrototypeOfWhenHasNoOwnPropertyDescriptor, + } = hooks); + const applyTrapForZeroOrMoreArgs = createApplyOrConstructTrapForZeroOrMoreArgs( + ProxyHandlerTraps.Apply + ); + const applyTrapForOneOrMoreArgs = createApplyOrConstructTrapForOneOrMoreArgs( + ProxyHandlerTraps.Apply + ); + const applyTrapForTwoOrMoreArgs = createApplyOrConstructTrapForTwoOrMoreArgs( + ProxyHandlerTraps.Apply + ); + const applyTrapForThreeOrMoreArgs = createApplyOrConstructTrapForThreeOrMoreArgs( + ProxyHandlerTraps.Apply + ); + const applyTrapForFourOrMoreArgs = createApplyOrConstructTrapForFourOrMoreArgs( + ProxyHandlerTraps.Apply + ); + const applyTrapForFiveOrMoreArgs = createApplyOrConstructTrapForFiveOrMoreArgs( + ProxyHandlerTraps.Apply + ); + const applyTrapForAnyNumberOfArgs = createApplyOrConstructTrapForAnyNumberOfArgs( + ProxyHandlerTraps.Apply + ); + const constructTrapForZeroOrMoreArgs = createApplyOrConstructTrapForZeroOrMoreArgs( + ProxyHandlerTraps.Construct + ); + const constructTrapForOneOrMoreArgs = createApplyOrConstructTrapForOneOrMoreArgs( + ProxyHandlerTraps.Construct + ); + const constructTrapForTwoOrMoreArgs = createApplyOrConstructTrapForTwoOrMoreArgs( + ProxyHandlerTraps.Construct + ); + const constructTrapForThreeOrMoreArgs = createApplyOrConstructTrapForThreeOrMoreArgs( + ProxyHandlerTraps.Construct + ); + const constructTrapForFourOrMoreArgs = createApplyOrConstructTrapForFourOrMoreArgs( + ProxyHandlerTraps.Construct + ); + const constructTrapForFiveOrMoreArgs = createApplyOrConstructTrapForFiveOrMoreArgs( + ProxyHandlerTraps.Construct + ); + const constructTrapForAnyNumberOfArgs = createApplyOrConstructTrapForAnyNumberOfArgs( + ProxyHandlerTraps.Construct + ); + if (MINIFICATION_SAFE_TRAP_PROPERTY_NAMES === undefined) { + // A minification safe way to get the 'apply' and 'construct' + // trap property names. + MINIFICATION_SAFE_TRAP_PROPERTY_NAMES = ObjectKeys({ + applyTrapForZeroOrMoreArgs, + applyTrapForOneOrMoreArgs, + applyTrapForTwoOrMoreArgs, + applyTrapForThreeOrMoreArgs, + applyTrapForFourOrMoreArgs, + applyTrapForFiveOrMoreArgs, + applyTrapForAnyNumberOfArgs, + constructTrapForZeroOrMoreArgs, + constructTrapForOneOrMoreArgs, + constructTrapForTwoOrMoreArgs, + constructTrapForThreeOrMoreArgs, + constructTrapForFourOrMoreArgs, + constructTrapForFiveOrMoreArgs, + constructTrapForAnyNumberOfArgs, + }); + } + applyTrapNameRegistry[0] = MINIFICATION_SAFE_TRAP_PROPERTY_NAMES[0]; + applyTrapNameRegistry[1] = MINIFICATION_SAFE_TRAP_PROPERTY_NAMES[1]; + applyTrapNameRegistry[2] = MINIFICATION_SAFE_TRAP_PROPERTY_NAMES[2]; + applyTrapNameRegistry[3] = MINIFICATION_SAFE_TRAP_PROPERTY_NAMES[3]; + applyTrapNameRegistry[4] = MINIFICATION_SAFE_TRAP_PROPERTY_NAMES[4]; + applyTrapNameRegistry[5] = MINIFICATION_SAFE_TRAP_PROPERTY_NAMES[5]; + applyTrapNameRegistry.n = MINIFICATION_SAFE_TRAP_PROPERTY_NAMES[6]; + constructTrapNameRegistry[0] = MINIFICATION_SAFE_TRAP_PROPERTY_NAMES[7]; + constructTrapNameRegistry[1] = MINIFICATION_SAFE_TRAP_PROPERTY_NAMES[8]; + constructTrapNameRegistry[2] = MINIFICATION_SAFE_TRAP_PROPERTY_NAMES[9]; + constructTrapNameRegistry[3] = MINIFICATION_SAFE_TRAP_PROPERTY_NAMES[10]; + constructTrapNameRegistry[4] = MINIFICATION_SAFE_TRAP_PROPERTY_NAMES[11]; + constructTrapNameRegistry[5] = MINIFICATION_SAFE_TRAP_PROPERTY_NAMES[12]; + constructTrapNameRegistry.n = MINIFICATION_SAFE_TRAP_PROPERTY_NAMES[13]; + + const { prototype: BoundaryProxyHandlerProto } = BoundaryProxyHandler; + (BoundaryProxyHandlerProto as any)[applyTrapNameRegistry[0]] = + applyTrapForZeroOrMoreArgs; + (BoundaryProxyHandlerProto as any)[applyTrapNameRegistry[1]] = + applyTrapForOneOrMoreArgs; + (BoundaryProxyHandlerProto as any)[applyTrapNameRegistry[2]] = + applyTrapForTwoOrMoreArgs; + (BoundaryProxyHandlerProto as any)[applyTrapNameRegistry[3]] = + applyTrapForThreeOrMoreArgs; + (BoundaryProxyHandlerProto as any)[applyTrapNameRegistry[4]] = + applyTrapForFourOrMoreArgs; + (BoundaryProxyHandlerProto as any)[applyTrapNameRegistry[5]] = + applyTrapForFiveOrMoreArgs; + (BoundaryProxyHandlerProto as any)[applyTrapNameRegistry.n] = + applyTrapForAnyNumberOfArgs; + (BoundaryProxyHandlerProto as any)[constructTrapNameRegistry[0]] = + constructTrapForZeroOrMoreArgs; + (BoundaryProxyHandlerProto as any)[constructTrapNameRegistry[1]] = + constructTrapForOneOrMoreArgs; + (BoundaryProxyHandlerProto as any)[constructTrapNameRegistry[2]] = + constructTrapForTwoOrMoreArgs; + (BoundaryProxyHandlerProto as any)[constructTrapNameRegistry[3]] = + constructTrapForThreeOrMoreArgs; + (BoundaryProxyHandlerProto as any)[constructTrapNameRegistry[4]] = + constructTrapForFourOrMoreArgs; + (BoundaryProxyHandlerProto as any)[constructTrapNameRegistry[5]] = + constructTrapForFiveOrMoreArgs; + (BoundaryProxyHandlerProto as any)[constructTrapNameRegistry.n] = + constructTrapForAnyNumberOfArgs; + if (DEV_MODE) { + // @ts-ignore: Prevent read-only property error. + BoundaryProxyHandlerProto.color = color; + } + ReflectSetPrototypeOf(BoundaryProxyHandlerProto, null); + }; + }; + /* eslint-enable prefer-object-spread */ +} + </pre></td></tr></table></pre> + + <div class='push'></div><!-- for sticky footer --> + </div><!-- /wrapper --> + <div class='footer quiet pad2 space-top1 center small'> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> + at Mon Nov 25 2024 16:43:41 GMT+0000 (Coordinated Universal Time) + </div> + <script src="../../prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="../../sorter.js"></script> + <script src="../../block-navigation.js"></script> + </body> +</html> + \ No newline at end of file diff --git a/pages/coverage-reports/pages/1732553023031263517/near-membrane-base/src/types.ts.html b/pages/coverage-reports/pages/1732553023031263517/near-membrane-base/src/types.ts.html new file mode 100644 index 00000000..8f0bcc53 --- /dev/null +++ b/pages/coverage-reports/pages/1732553023031263517/near-membrane-base/src/types.ts.html @@ -0,0 +1,700 @@ + +<!doctype html> +<html lang="en"> + +<head> + <title>Code coverage report for near-membrane-base/src/types.ts</title> + <meta charset="utf-8" /> + <link rel="stylesheet" href="../../prettify.css" /> + <link rel="stylesheet" href="../../base.css" /> + <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <style type='text/css'> + .coverage-summary .sorter { + background-image: url(../../sort-arrow-sprite.png); + } + </style> +</head> + +<body> +<div class='wrapper'> + <div class='pad1'> + <h1><a href="../../index.html">All files</a> / <a href="index.html">near-membrane-base/src</a> types.ts</h1> + <div class='clearfix'> + + <div class='fl pad1y space-right2'> + <span class="strong">0% </span> + <span class="quiet">Statements</span> + <span class='fraction'>0/0</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">0% </span> + <span class="quiet">Branches</span> + <span class='fraction'>0/0</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">0% </span> + <span class="quiet">Functions</span> + <span class='fraction'>0/0</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">0% </span> + <span class="quiet">Lines</span> + <span class='fraction'>0/0</span> + </div> + + + </div> + <p class="quiet"> + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + </p> + <template id="filterTemplate"> + <div class="quiet"> + Filter: + <input oninput="onInput()" type="search" id="fileSearch"> + </div> + </template> + </div> + <div class='status-line low'></div> + <pre><table class="coverage"> +<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a> +<a name='L2'></a><a href='#L2'>2</a> +<a name='L3'></a><a href='#L3'>3</a> +<a name='L4'></a><a href='#L4'>4</a> +<a name='L5'></a><a href='#L5'>5</a> +<a name='L6'></a><a href='#L6'>6</a> +<a name='L7'></a><a href='#L7'>7</a> +<a name='L8'></a><a href='#L8'>8</a> +<a name='L9'></a><a href='#L9'>9</a> +<a name='L10'></a><a href='#L10'>10</a> +<a name='L11'></a><a href='#L11'>11</a> +<a name='L12'></a><a href='#L12'>12</a> +<a name='L13'></a><a href='#L13'>13</a> +<a name='L14'></a><a href='#L14'>14</a> +<a name='L15'></a><a href='#L15'>15</a> +<a name='L16'></a><a href='#L16'>16</a> +<a name='L17'></a><a href='#L17'>17</a> +<a name='L18'></a><a href='#L18'>18</a> +<a name='L19'></a><a href='#L19'>19</a> +<a name='L20'></a><a href='#L20'>20</a> +<a name='L21'></a><a href='#L21'>21</a> +<a name='L22'></a><a href='#L22'>22</a> +<a name='L23'></a><a href='#L23'>23</a> +<a name='L24'></a><a href='#L24'>24</a> +<a name='L25'></a><a href='#L25'>25</a> +<a name='L26'></a><a href='#L26'>26</a> +<a name='L27'></a><a href='#L27'>27</a> +<a name='L28'></a><a href='#L28'>28</a> +<a name='L29'></a><a href='#L29'>29</a> +<a name='L30'></a><a href='#L30'>30</a> +<a name='L31'></a><a href='#L31'>31</a> +<a name='L32'></a><a href='#L32'>32</a> +<a name='L33'></a><a href='#L33'>33</a> +<a name='L34'></a><a href='#L34'>34</a> +<a name='L35'></a><a href='#L35'>35</a> +<a name='L36'></a><a href='#L36'>36</a> +<a name='L37'></a><a href='#L37'>37</a> +<a name='L38'></a><a href='#L38'>38</a> +<a name='L39'></a><a href='#L39'>39</a> +<a name='L40'></a><a href='#L40'>40</a> +<a name='L41'></a><a href='#L41'>41</a> +<a name='L42'></a><a href='#L42'>42</a> +<a name='L43'></a><a href='#L43'>43</a> +<a name='L44'></a><a href='#L44'>44</a> +<a name='L45'></a><a href='#L45'>45</a> +<a name='L46'></a><a href='#L46'>46</a> +<a name='L47'></a><a href='#L47'>47</a> +<a name='L48'></a><a href='#L48'>48</a> +<a name='L49'></a><a href='#L49'>49</a> +<a name='L50'></a><a href='#L50'>50</a> +<a name='L51'></a><a href='#L51'>51</a> +<a name='L52'></a><a href='#L52'>52</a> +<a name='L53'></a><a href='#L53'>53</a> +<a name='L54'></a><a href='#L54'>54</a> +<a name='L55'></a><a href='#L55'>55</a> +<a name='L56'></a><a href='#L56'>56</a> +<a name='L57'></a><a href='#L57'>57</a> +<a name='L58'></a><a href='#L58'>58</a> +<a name='L59'></a><a href='#L59'>59</a> +<a name='L60'></a><a href='#L60'>60</a> +<a name='L61'></a><a href='#L61'>61</a> +<a name='L62'></a><a href='#L62'>62</a> +<a name='L63'></a><a href='#L63'>63</a> +<a name='L64'></a><a href='#L64'>64</a> +<a name='L65'></a><a href='#L65'>65</a> +<a name='L66'></a><a href='#L66'>66</a> +<a name='L67'></a><a href='#L67'>67</a> +<a name='L68'></a><a href='#L68'>68</a> +<a name='L69'></a><a href='#L69'>69</a> +<a name='L70'></a><a href='#L70'>70</a> +<a name='L71'></a><a href='#L71'>71</a> +<a name='L72'></a><a href='#L72'>72</a> +<a name='L73'></a><a href='#L73'>73</a> +<a name='L74'></a><a href='#L74'>74</a> +<a name='L75'></a><a href='#L75'>75</a> +<a name='L76'></a><a href='#L76'>76</a> +<a name='L77'></a><a href='#L77'>77</a> +<a name='L78'></a><a href='#L78'>78</a> +<a name='L79'></a><a href='#L79'>79</a> +<a name='L80'></a><a href='#L80'>80</a> +<a name='L81'></a><a href='#L81'>81</a> +<a name='L82'></a><a href='#L82'>82</a> +<a name='L83'></a><a href='#L83'>83</a> +<a name='L84'></a><a href='#L84'>84</a> +<a name='L85'></a><a href='#L85'>85</a> +<a name='L86'></a><a href='#L86'>86</a> +<a name='L87'></a><a href='#L87'>87</a> +<a name='L88'></a><a href='#L88'>88</a> +<a name='L89'></a><a href='#L89'>89</a> +<a name='L90'></a><a href='#L90'>90</a> +<a name='L91'></a><a href='#L91'>91</a> +<a name='L92'></a><a href='#L92'>92</a> +<a name='L93'></a><a href='#L93'>93</a> +<a name='L94'></a><a href='#L94'>94</a> +<a name='L95'></a><a href='#L95'>95</a> +<a name='L96'></a><a href='#L96'>96</a> +<a name='L97'></a><a href='#L97'>97</a> +<a name='L98'></a><a href='#L98'>98</a> +<a name='L99'></a><a href='#L99'>99</a> +<a name='L100'></a><a href='#L100'>100</a> +<a name='L101'></a><a href='#L101'>101</a> +<a name='L102'></a><a href='#L102'>102</a> +<a name='L103'></a><a href='#L103'>103</a> +<a name='L104'></a><a href='#L104'>104</a> +<a name='L105'></a><a href='#L105'>105</a> +<a name='L106'></a><a href='#L106'>106</a> +<a name='L107'></a><a href='#L107'>107</a> +<a name='L108'></a><a href='#L108'>108</a> +<a name='L109'></a><a href='#L109'>109</a> +<a name='L110'></a><a href='#L110'>110</a> +<a name='L111'></a><a href='#L111'>111</a> +<a name='L112'></a><a href='#L112'>112</a> +<a name='L113'></a><a href='#L113'>113</a> +<a name='L114'></a><a href='#L114'>114</a> +<a name='L115'></a><a href='#L115'>115</a> +<a name='L116'></a><a href='#L116'>116</a> +<a name='L117'></a><a href='#L117'>117</a> +<a name='L118'></a><a href='#L118'>118</a> +<a name='L119'></a><a href='#L119'>119</a> +<a name='L120'></a><a href='#L120'>120</a> +<a name='L121'></a><a href='#L121'>121</a> +<a name='L122'></a><a href='#L122'>122</a> +<a name='L123'></a><a href='#L123'>123</a> +<a name='L124'></a><a href='#L124'>124</a> +<a name='L125'></a><a href='#L125'>125</a> +<a name='L126'></a><a href='#L126'>126</a> +<a name='L127'></a><a href='#L127'>127</a> +<a name='L128'></a><a href='#L128'>128</a> +<a name='L129'></a><a href='#L129'>129</a> +<a name='L130'></a><a href='#L130'>130</a> +<a name='L131'></a><a href='#L131'>131</a> +<a name='L132'></a><a href='#L132'>132</a> +<a name='L133'></a><a href='#L133'>133</a> +<a name='L134'></a><a href='#L134'>134</a> +<a name='L135'></a><a href='#L135'>135</a> +<a name='L136'></a><a href='#L136'>136</a> +<a name='L137'></a><a href='#L137'>137</a> +<a name='L138'></a><a href='#L138'>138</a> +<a name='L139'></a><a href='#L139'>139</a> +<a name='L140'></a><a href='#L140'>140</a> +<a name='L141'></a><a href='#L141'>141</a> +<a name='L142'></a><a href='#L142'>142</a> +<a name='L143'></a><a href='#L143'>143</a> +<a name='L144'></a><a href='#L144'>144</a> +<a name='L145'></a><a href='#L145'>145</a> +<a name='L146'></a><a href='#L146'>146</a> +<a name='L147'></a><a href='#L147'>147</a> +<a name='L148'></a><a href='#L148'>148</a> +<a name='L149'></a><a href='#L149'>149</a> +<a name='L150'></a><a href='#L150'>150</a> +<a name='L151'></a><a href='#L151'>151</a> +<a name='L152'></a><a href='#L152'>152</a> +<a name='L153'></a><a href='#L153'>153</a> +<a name='L154'></a><a href='#L154'>154</a> +<a name='L155'></a><a href='#L155'>155</a> +<a name='L156'></a><a href='#L156'>156</a> +<a name='L157'></a><a href='#L157'>157</a> +<a name='L158'></a><a href='#L158'>158</a> +<a name='L159'></a><a href='#L159'>159</a> +<a name='L160'></a><a href='#L160'>160</a> +<a name='L161'></a><a href='#L161'>161</a> +<a name='L162'></a><a href='#L162'>162</a> +<a name='L163'></a><a href='#L163'>163</a> +<a name='L164'></a><a href='#L164'>164</a> +<a name='L165'></a><a href='#L165'>165</a> +<a name='L166'></a><a href='#L166'>166</a> +<a name='L167'></a><a href='#L167'>167</a> +<a name='L168'></a><a href='#L168'>168</a> +<a name='L169'></a><a href='#L169'>169</a> +<a name='L170'></a><a href='#L170'>170</a> +<a name='L171'></a><a href='#L171'>171</a> +<a name='L172'></a><a href='#L172'>172</a> +<a name='L173'></a><a href='#L173'>173</a> +<a name='L174'></a><a href='#L174'>174</a> +<a name='L175'></a><a href='#L175'>175</a> +<a name='L176'></a><a href='#L176'>176</a> +<a name='L177'></a><a href='#L177'>177</a> +<a name='L178'></a><a href='#L178'>178</a> +<a name='L179'></a><a href='#L179'>179</a> +<a name='L180'></a><a href='#L180'>180</a> +<a name='L181'></a><a href='#L181'>181</a> +<a name='L182'></a><a href='#L182'>182</a> +<a name='L183'></a><a href='#L183'>183</a> +<a name='L184'></a><a href='#L184'>184</a> +<a name='L185'></a><a href='#L185'>185</a> +<a name='L186'></a><a href='#L186'>186</a> +<a name='L187'></a><a href='#L187'>187</a> +<a name='L188'></a><a href='#L188'>188</a> +<a name='L189'></a><a href='#L189'>189</a> +<a name='L190'></a><a href='#L190'>190</a> +<a name='L191'></a><a href='#L191'>191</a> +<a name='L192'></a><a href='#L192'>192</a> +<a name='L193'></a><a href='#L193'>193</a> +<a name='L194'></a><a href='#L194'>194</a> +<a name='L195'></a><a href='#L195'>195</a> +<a name='L196'></a><a href='#L196'>196</a> +<a name='L197'></a><a href='#L197'>197</a> +<a name='L198'></a><a href='#L198'>198</a> +<a name='L199'></a><a href='#L199'>199</a> +<a name='L200'></a><a href='#L200'>200</a> +<a name='L201'></a><a href='#L201'>201</a> +<a name='L202'></a><a href='#L202'>202</a> +<a name='L203'></a><a href='#L203'>203</a> +<a name='L204'></a><a href='#L204'>204</a> +<a name='L205'></a><a href='#L205'>205</a> +<a name='L206'></a><a href='#L206'>206</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import type { + Getter, + NearMembraneSerializedValue as SerializedValue, + ProxyTarget, +} from '@locker/near-membrane-shared'; + +export interface Activity { + stop(data?: DataType): void; + error(data?: DataType): void; +} +export type CallableApply = ( + targetPointer: Pointer, + thisArgPointerOrUndefined: PointerOrPrimitive, + ...args: PointerOrPrimitive[] +) => PointerOrPrimitive; +export type CallableBatchGetPrototypeOfAndGetOwnPropertyDescriptors = ( + targetPointer: Pointer, + foreignCallableDescriptorsCallback: CallableDescriptorsCallback +) => PointerOrPrimitive; +export type CallableBatchGetPrototypeOfWhenHasNoOwnProperty = ( + targetPointer: Pointer, + key: PropertyKey +) => PointerOrPrimitive; +export type CallableBatchGetPrototypeOfWhenHasNoOwnPropertyDescriptor = ( + targetPointer: Pointer, + key: PropertyKey, + foreignCallableDescriptorCallback: CallableDescriptorCallback +) => PointerOrPrimitive; +export type CallableConstruct = ( + targetPointer: Pointer, + newTargetPointer: PointerOrPrimitive, + ...args: PointerOrPrimitive[] +) => PointerOrPrimitive; +export type CallableDebugInfo = (...args: Parameters<typeof console.info>) => void; +export type CallableDefineProperties = ( + targetPointer: Pointer, + ...descriptorTuples: [...Parameters<CallableDescriptorCallback>] +) => void; +export type CallableDefineProperty = ( + targetPointer: Pointer, + key: PropertyKey, + configurable: boolean | symbol, + enumerable: boolean | symbol, + writable: boolean | symbol, + valuePointer: PointerOrPrimitive, + getterPointer: PointerOrPrimitive, + setterPointer: PointerOrPrimitive, + foreignCallableNonConfigurableDescriptorCallback: CallableNonConfigurableDescriptorCallback +) => boolean; +export type CallableDeleteProperty = (targetPointer: Pointer, key: PropertyKey) => boolean; +export type CallableDescriptorCallback = ( + key: PropertyKey, + configurable: boolean | symbol, + enumerable: boolean | symbol, + writable: boolean | symbol, + valuePointer: PointerOrPrimitive, + getterPointer: PointerOrPrimitive, + setterPointer: PointerOrPrimitive +) => void; +export type CallableDescriptorsCallback = ( + ...descriptorTuples: [...Parameters<CallableDescriptorCallback>] +) => void; +export type CallableEvaluate = (sourceText: string) => PointerOrPrimitive; +export type CallableGet = ( + targetPointer: Pointer, + targetTraits: number, + key: PropertyKey, + receiverPointerOrPrimitive: PointerOrPrimitive +) => PointerOrPrimitive; +export type CallableGetPropertyValue = ( + targetPointer: Pointer, + key: PropertyKey +) => PointerOrPrimitive; +export type CallableGetLazyPropertyDescriptorStateByTarget = ( + targetPointer: Pointer +) => PointerOrPrimitive; +export type CallableGetOwnPropertyDescriptor = ( + targetPointer: Pointer, + key: PropertyKey, + foreignCallableDescriptorCallback: CallableDescriptorCallback +) => void; +export type CallableGetPropertyValuePointer = (targetPointer: Pointer, key: PropertyKey) => Pointer; +export type CallableGetPrototypeOf = (targetPointer: Pointer) => PointerOrPrimitive; +export type CallableGetTargetIntegrityTraits = (targetPointer: Pointer) => number; +export type CallableGetToStringTagOfTarget = (targetPointer: Pointer) => string; +export type CallableHas = (targetPointer: Pointer, key: PropertyKey) => boolean; +export type CallableInstallErrorPrepareStackTrace = () => void; +export type CallableInstallLazyPropertyDescriptors = ( + targetPointer: Pointer, + ...ownKeysAndUnforgeableGlobalThisKeys: PropertyKey[] +) => void; +export type CallableIsExtensible = (targetPointer: Pointer) => boolean; +export type CallableIsTargetLive = (targetPointer: Pointer, targetTraits: number) => boolean; +export type CallableIsTargetRevoked = (targetPointer: Pointer) => boolean; +export type CallableLinkPointers = (targetPointer: Pointer, foreignTargetPointer: Pointer) => void; +export type CallableNonConfigurableDescriptorCallback = CallableDescriptorCallback; +export type CallableOwnKeys = ( + targetPointer: Pointer, + foreignCallableKeysCallback: (...args: ReturnType<typeof Reflect.ownKeys>) => void +) => void; +export type CallablePreventExtensions = (targetPointer: Pointer) => number; +export type CallablePushErrorTarget = CallablePushTarget; +export type CallablePushTarget = ( + foreignTargetPointer: () => void, + foreignTargetTraits: number, + foreignTargetFunctionArity: number, + foreignTargetFunctionName: string, + foreignTargetTypedArrayLength: number +) => Pointer; +export type CallableSerializeTarget = (targetPointer: Pointer) => SerializedValue | undefined; +export type CallableSetLazyPropertyDescriptorStateByTarget = ( + targetPointer: Pointer, + statePointer: Pointer +) => void; +export type CallableSet = ( + targetPointer: Pointer, + key: PropertyKey, + valuePointerOrPrimitive: PointerOrPrimitive, + receiverPointerOrPrimitive: PointerOrPrimitive +) => boolean; +export type CallableSetPrototypeOf = ( + targetPointer: Pointer, + protoPointerOrNull: Pointer | null +) => boolean; +export type CallableTrackAsFastTarget = (targetPointer: Pointer) => void; +export type Connector = ( + color: string, + foreignCallableHooksCallback: HooksCallback, + options?: HooksOptions | undefined +) => HooksCallback; +export type DataType = boolean | object | number | string; +export type DistortionCallback = (target: ProxyTarget) => ProxyTarget; +export interface ForeignPropertyDescriptor extends PropertyDescriptor { + foreign?: boolean; +} +export type GetSelectedTarget = Getter; +export type GetTransferableValue = (value: any) => PointerOrPrimitive; +export type GlobalThisGetter = () => typeof globalThis; +export type HooksCallback = ( + globalThisPointer: Pointer, + getSelectedTarget: GetSelectedTarget, + getTransferableValue: GetTransferableValue, + callableGetPropertyValuePointer: CallableGetPropertyValuePointer, + callableEvaluate: CallableEvaluate, + callableLinkPointers: CallableLinkPointers, + callablePushErrorTarget: CallablePushErrorTarget, + callablePushTarget: CallablePushTarget, + callableApply: CallableApply, + callableConstruct: CallableConstruct, + callableDefineProperty: CallableDefineProperty, + callableDeleteProperty: CallableDeleteProperty, + callableGet: CallableGet, + callableGetOwnPropertyDescriptor: CallableGetOwnPropertyDescriptor, + callableGetPrototypeOf: CallableGetPrototypeOf, + callableHas: CallableHas, + callableIsExtensible: CallableIsExtensible, + callableOwnKeys: CallableOwnKeys, + callablePreventExtensions: CallablePreventExtensions, + callableSet: CallableSet, + callableSetPrototypeOf: CallableSetPrototypeOf, + callableDebugInfo: CallableDebugInfo, + callableDefineProperties: CallableDefineProperties, + callableGetLazyPropertyDescriptorStateByTarget: CallableGetLazyPropertyDescriptorStateByTarget, + callableGetPropertyValue: CallableGetPropertyValue, + callableGetTargetIntegrityTraits: CallableGetTargetIntegrityTraits, + callableGetToStringTagOfTarget: CallableGetToStringTagOfTarget, + callableInstallErrorPrepareStackTrace: CallableInstallErrorPrepareStackTrace, + callableInstallLazyPropertyDescriptors: CallableInstallLazyPropertyDescriptors, + callableIsTargetLive: CallableIsTargetLive, + callableIsTargetRevoked: CallableIsTargetRevoked, + callableSerializeTarget: CallableSerializeTarget, + callableSetLazyPropertyDescriptorStateByTarget: CallableSetLazyPropertyDescriptorStateByTarget, + callableTrackAsFastTarget: CallableTrackAsFastTarget, + callableBatchGetPrototypeOfAndGetOwnPropertyDescriptors: CallableBatchGetPrototypeOfAndGetOwnPropertyDescriptors, + callableBatchGetPrototypeOfWhenHasNoOwnProperty: CallableBatchGetPrototypeOfWhenHasNoOwnProperty, + callableBatchGetPrototypeOfWhenHasNoOwnPropertyDescriptor: CallableBatchGetPrototypeOfWhenHasNoOwnPropertyDescriptor +) => void; +export interface HooksOptions { + distortionCallback?: DistortionCallback; + instrumentation?: Instrumentation; + liveTargetCallback?: LiveTargetCallback; + revokedProxyCallback?: RevokedProxyCallback; +} +export interface Instrumentation { + startActivity(activityName: string, data?: DataType): Activity; + log(data?: DataType): void; + error(data?: DataType): void; +} +export type LiveTargetCallback = (target: ProxyTarget, targetTraits: number) => boolean; +export type Pointer = CallableFunction; +export type PointerOrPrimitive = Pointer | Primitive; +export type Primitive = bigint | boolean | null | number | string | symbol | undefined | void; +export type RevokedProxyCallback = (target: ProxyTarget) => boolean; +export type SignSourceCallback = (sourceText: string) => string; +export type { SerializedValue }; +export type ShadowTarget = ProxyTarget; +export interface VirtualEnvironmentOptions { + blueConnector: Connector; + redConnector: Connector; + distortionCallback?: DistortionCallback; + instrumentation?: Instrumentation; + liveTargetCallback?: LiveTargetCallback; + revokedProxyCallback?: RevokedProxyCallback; + signSourceCallback?: SignSourceCallback; +} + </pre></td></tr></table></pre> + + <div class='push'></div><!-- for sticky footer --> + </div><!-- /wrapper --> + <div class='footer quiet pad2 space-top1 center small'> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> + at Mon Nov 25 2024 16:43:41 GMT+0000 (Coordinated Universal Time) + </div> + <script src="../../prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="../../sorter.js"></script> + <script src="../../block-navigation.js"></script> + </body> +</html> + \ No newline at end of file diff --git a/pages/coverage-reports/pages/1732553023031263517/near-membrane-dom/dist/custom-devtools-formatter.mjs.js.html b/pages/coverage-reports/pages/1732553023031263517/near-membrane-dom/dist/custom-devtools-formatter.mjs.js.html new file mode 100644 index 00000000..ba468e6c --- /dev/null +++ b/pages/coverage-reports/pages/1732553023031263517/near-membrane-dom/dist/custom-devtools-formatter.mjs.js.html @@ -0,0 +1,889 @@ + +<!doctype html> +<html lang="en"> + +<head> + <title>Code coverage report for near-membrane-dom/dist/custom-devtools-formatter.mjs.js</title> + <meta charset="utf-8" /> + <link rel="stylesheet" href="../../prettify.css" /> + <link rel="stylesheet" href="../../base.css" /> + <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <style type='text/css'> + .coverage-summary .sorter { + background-image: url(../../sort-arrow-sprite.png); + } + </style> +</head> + +<body> +<div class='wrapper'> + <div class='pad1'> + <h1><a href="../../index.html">All files</a> / <a href="index.html">near-membrane-dom/dist</a> custom-devtools-formatter.mjs.js</h1> + <div class='clearfix'> + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Statements</span> + <span class='fraction'>20/20</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Branches</span> + <span class='fraction'>2/2</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Functions</span> + <span class='fraction'>0/0</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Lines</span> + <span class='fraction'>20/20</span> + </div> + + + </div> + <p class="quiet"> + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + </p> + <template id="filterTemplate"> + <div class="quiet"> + Filter: + <input oninput="onInput()" type="search" id="fileSearch"> + </div> + </template> + </div> + <div class='status-line high'></div> + <pre><table class="coverage"> +<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a> +<a name='L2'></a><a href='#L2'>2</a> +<a name='L3'></a><a href='#L3'>3</a> +<a name='L4'></a><a href='#L4'>4</a> +<a name='L5'></a><a href='#L5'>5</a> +<a name='L6'></a><a href='#L6'>6</a> +<a name='L7'></a><a href='#L7'>7</a> +<a name='L8'></a><a href='#L8'>8</a> +<a name='L9'></a><a href='#L9'>9</a> +<a name='L10'></a><a href='#L10'>10</a> +<a name='L11'></a><a href='#L11'>11</a> +<a name='L12'></a><a href='#L12'>12</a> +<a name='L13'></a><a href='#L13'>13</a> +<a name='L14'></a><a href='#L14'>14</a> +<a name='L15'></a><a href='#L15'>15</a> +<a name='L16'></a><a href='#L16'>16</a> +<a name='L17'></a><a href='#L17'>17</a> +<a name='L18'></a><a href='#L18'>18</a> +<a name='L19'></a><a href='#L19'>19</a> +<a name='L20'></a><a href='#L20'>20</a> +<a name='L21'></a><a href='#L21'>21</a> +<a name='L22'></a><a href='#L22'>22</a> +<a name='L23'></a><a href='#L23'>23</a> +<a name='L24'></a><a href='#L24'>24</a> +<a name='L25'></a><a href='#L25'>25</a> +<a name='L26'></a><a href='#L26'>26</a> +<a name='L27'></a><a href='#L27'>27</a> +<a name='L28'></a><a href='#L28'>28</a> +<a name='L29'></a><a href='#L29'>29</a> +<a name='L30'></a><a href='#L30'>30</a> +<a name='L31'></a><a href='#L31'>31</a> +<a name='L32'></a><a href='#L32'>32</a> +<a name='L33'></a><a href='#L33'>33</a> +<a name='L34'></a><a href='#L34'>34</a> +<a name='L35'></a><a href='#L35'>35</a> +<a name='L36'></a><a href='#L36'>36</a> +<a name='L37'></a><a href='#L37'>37</a> +<a name='L38'></a><a href='#L38'>38</a> +<a name='L39'></a><a href='#L39'>39</a> +<a name='L40'></a><a href='#L40'>40</a> +<a name='L41'></a><a href='#L41'>41</a> +<a name='L42'></a><a href='#L42'>42</a> +<a name='L43'></a><a href='#L43'>43</a> +<a name='L44'></a><a href='#L44'>44</a> +<a name='L45'></a><a href='#L45'>45</a> +<a name='L46'></a><a href='#L46'>46</a> +<a name='L47'></a><a href='#L47'>47</a> +<a name='L48'></a><a href='#L48'>48</a> +<a name='L49'></a><a href='#L49'>49</a> +<a name='L50'></a><a href='#L50'>50</a> +<a name='L51'></a><a href='#L51'>51</a> +<a name='L52'></a><a href='#L52'>52</a> +<a name='L53'></a><a href='#L53'>53</a> +<a name='L54'></a><a href='#L54'>54</a> +<a name='L55'></a><a href='#L55'>55</a> +<a name='L56'></a><a href='#L56'>56</a> +<a name='L57'></a><a href='#L57'>57</a> +<a name='L58'></a><a href='#L58'>58</a> +<a name='L59'></a><a href='#L59'>59</a> +<a name='L60'></a><a href='#L60'>60</a> +<a name='L61'></a><a href='#L61'>61</a> +<a name='L62'></a><a href='#L62'>62</a> +<a name='L63'></a><a href='#L63'>63</a> +<a name='L64'></a><a href='#L64'>64</a> +<a name='L65'></a><a href='#L65'>65</a> +<a name='L66'></a><a href='#L66'>66</a> +<a name='L67'></a><a href='#L67'>67</a> +<a name='L68'></a><a href='#L68'>68</a> +<a name='L69'></a><a href='#L69'>69</a> +<a name='L70'></a><a href='#L70'>70</a> +<a name='L71'></a><a href='#L71'>71</a> +<a name='L72'></a><a href='#L72'>72</a> +<a name='L73'></a><a href='#L73'>73</a> +<a name='L74'></a><a href='#L74'>74</a> +<a name='L75'></a><a href='#L75'>75</a> +<a name='L76'></a><a href='#L76'>76</a> +<a name='L77'></a><a href='#L77'>77</a> +<a name='L78'></a><a href='#L78'>78</a> +<a name='L79'></a><a href='#L79'>79</a> +<a name='L80'></a><a href='#L80'>80</a> +<a name='L81'></a><a href='#L81'>81</a> +<a name='L82'></a><a href='#L82'>82</a> +<a name='L83'></a><a href='#L83'>83</a> +<a name='L84'></a><a href='#L84'>84</a> +<a name='L85'></a><a href='#L85'>85</a> +<a name='L86'></a><a href='#L86'>86</a> +<a name='L87'></a><a href='#L87'>87</a> +<a name='L88'></a><a href='#L88'>88</a> +<a name='L89'></a><a href='#L89'>89</a> +<a name='L90'></a><a href='#L90'>90</a> +<a name='L91'></a><a href='#L91'>91</a> +<a name='L92'></a><a href='#L92'>92</a> +<a name='L93'></a><a href='#L93'>93</a> +<a name='L94'></a><a href='#L94'>94</a> +<a name='L95'></a><a href='#L95'>95</a> +<a name='L96'></a><a href='#L96'>96</a> +<a name='L97'></a><a href='#L97'>97</a> +<a name='L98'></a><a href='#L98'>98</a> +<a name='L99'></a><a href='#L99'>99</a> +<a name='L100'></a><a href='#L100'>100</a> +<a name='L101'></a><a href='#L101'>101</a> +<a name='L102'></a><a href='#L102'>102</a> +<a name='L103'></a><a href='#L103'>103</a> +<a name='L104'></a><a href='#L104'>104</a> +<a name='L105'></a><a href='#L105'>105</a> +<a name='L106'></a><a href='#L106'>106</a> +<a name='L107'></a><a href='#L107'>107</a> +<a name='L108'></a><a href='#L108'>108</a> +<a name='L109'></a><a href='#L109'>109</a> +<a name='L110'></a><a href='#L110'>110</a> +<a name='L111'></a><a href='#L111'>111</a> +<a name='L112'></a><a href='#L112'>112</a> +<a name='L113'></a><a href='#L113'>113</a> +<a name='L114'></a><a href='#L114'>114</a> +<a name='L115'></a><a href='#L115'>115</a> +<a name='L116'></a><a href='#L116'>116</a> +<a name='L117'></a><a href='#L117'>117</a> +<a name='L118'></a><a href='#L118'>118</a> +<a name='L119'></a><a href='#L119'>119</a> +<a name='L120'></a><a href='#L120'>120</a> +<a name='L121'></a><a href='#L121'>121</a> +<a name='L122'></a><a href='#L122'>122</a> +<a name='L123'></a><a href='#L123'>123</a> +<a name='L124'></a><a href='#L124'>124</a> +<a name='L125'></a><a href='#L125'>125</a> +<a name='L126'></a><a href='#L126'>126</a> +<a name='L127'></a><a href='#L127'>127</a> +<a name='L128'></a><a href='#L128'>128</a> +<a name='L129'></a><a href='#L129'>129</a> +<a name='L130'></a><a href='#L130'>130</a> +<a name='L131'></a><a href='#L131'>131</a> +<a name='L132'></a><a href='#L132'>132</a> +<a name='L133'></a><a href='#L133'>133</a> +<a name='L134'></a><a href='#L134'>134</a> +<a name='L135'></a><a href='#L135'>135</a> +<a name='L136'></a><a href='#L136'>136</a> +<a name='L137'></a><a href='#L137'>137</a> +<a name='L138'></a><a href='#L138'>138</a> +<a name='L139'></a><a href='#L139'>139</a> +<a name='L140'></a><a href='#L140'>140</a> +<a name='L141'></a><a href='#L141'>141</a> +<a name='L142'></a><a href='#L142'>142</a> +<a name='L143'></a><a href='#L143'>143</a> +<a name='L144'></a><a href='#L144'>144</a> +<a name='L145'></a><a href='#L145'>145</a> +<a name='L146'></a><a href='#L146'>146</a> +<a name='L147'></a><a href='#L147'>147</a> +<a name='L148'></a><a href='#L148'>148</a> +<a name='L149'></a><a href='#L149'>149</a> +<a name='L150'></a><a href='#L150'>150</a> +<a name='L151'></a><a href='#L151'>151</a> +<a name='L152'></a><a href='#L152'>152</a> +<a name='L153'></a><a href='#L153'>153</a> +<a name='L154'></a><a href='#L154'>154</a> +<a name='L155'></a><a href='#L155'>155</a> +<a name='L156'></a><a href='#L156'>156</a> +<a name='L157'></a><a href='#L157'>157</a> +<a name='L158'></a><a href='#L158'>158</a> +<a name='L159'></a><a href='#L159'>159</a> +<a name='L160'></a><a href='#L160'>160</a> +<a name='L161'></a><a href='#L161'>161</a> +<a name='L162'></a><a href='#L162'>162</a> +<a name='L163'></a><a href='#L163'>163</a> +<a name='L164'></a><a href='#L164'>164</a> +<a name='L165'></a><a href='#L165'>165</a> +<a name='L166'></a><a href='#L166'>166</a> +<a name='L167'></a><a href='#L167'>167</a> +<a name='L168'></a><a href='#L168'>168</a> +<a name='L169'></a><a href='#L169'>169</a> +<a name='L170'></a><a href='#L170'>170</a> +<a name='L171'></a><a href='#L171'>171</a> +<a name='L172'></a><a href='#L172'>172</a> +<a name='L173'></a><a href='#L173'>173</a> +<a name='L174'></a><a href='#L174'>174</a> +<a name='L175'></a><a href='#L175'>175</a> +<a name='L176'></a><a href='#L176'>176</a> +<a name='L177'></a><a href='#L177'>177</a> +<a name='L178'></a><a href='#L178'>178</a> +<a name='L179'></a><a href='#L179'>179</a> +<a name='L180'></a><a href='#L180'>180</a> +<a name='L181'></a><a href='#L181'>181</a> +<a name='L182'></a><a href='#L182'>182</a> +<a name='L183'></a><a href='#L183'>183</a> +<a name='L184'></a><a href='#L184'>184</a> +<a name='L185'></a><a href='#L185'>185</a> +<a name='L186'></a><a href='#L186'>186</a> +<a name='L187'></a><a href='#L187'>187</a> +<a name='L188'></a><a href='#L188'>188</a> +<a name='L189'></a><a href='#L189'>189</a> +<a name='L190'></a><a href='#L190'>190</a> +<a name='L191'></a><a href='#L191'>191</a> +<a name='L192'></a><a href='#L192'>192</a> +<a name='L193'></a><a href='#L193'>193</a> +<a name='L194'></a><a href='#L194'>194</a> +<a name='L195'></a><a href='#L195'>195</a> +<a name='L196'></a><a href='#L196'>196</a> +<a name='L197'></a><a href='#L197'>197</a> +<a name='L198'></a><a href='#L198'>198</a> +<a name='L199'></a><a href='#L199'>199</a> +<a name='L200'></a><a href='#L200'>200</a> +<a name='L201'></a><a href='#L201'>201</a> +<a name='L202'></a><a href='#L202'>202</a> +<a name='L203'></a><a href='#L203'>203</a> +<a name='L204'></a><a href='#L204'>204</a> +<a name='L205'></a><a href='#L205'>205</a> +<a name='L206'></a><a href='#L206'>206</a> +<a name='L207'></a><a href='#L207'>207</a> +<a name='L208'></a><a href='#L208'>208</a> +<a name='L209'></a><a href='#L209'>209</a> +<a name='L210'></a><a href='#L210'>210</a> +<a name='L211'></a><a href='#L211'>211</a> +<a name='L212'></a><a href='#L212'>212</a> +<a name='L213'></a><a href='#L213'>213</a> +<a name='L214'></a><a href='#L214'>214</a> +<a name='L215'></a><a href='#L215'>215</a> +<a name='L216'></a><a href='#L216'>216</a> +<a name='L217'></a><a href='#L217'>217</a> +<a name='L218'></a><a href='#L218'>218</a> +<a name='L219'></a><a href='#L219'>219</a> +<a name='L220'></a><a href='#L220'>220</a> +<a name='L221'></a><a href='#L221'>221</a> +<a name='L222'></a><a href='#L222'>222</a> +<a name='L223'></a><a href='#L223'>223</a> +<a name='L224'></a><a href='#L224'>224</a> +<a name='L225'></a><a href='#L225'>225</a> +<a name='L226'></a><a href='#L226'>226</a> +<a name='L227'></a><a href='#L227'>227</a> +<a name='L228'></a><a href='#L228'>228</a> +<a name='L229'></a><a href='#L229'>229</a> +<a name='L230'></a><a href='#L230'>230</a> +<a name='L231'></a><a href='#L231'>231</a> +<a name='L232'></a><a href='#L232'>232</a> +<a name='L233'></a><a href='#L233'>233</a> +<a name='L234'></a><a href='#L234'>234</a> +<a name='L235'></a><a href='#L235'>235</a> +<a name='L236'></a><a href='#L236'>236</a> +<a name='L237'></a><a href='#L237'>237</a> +<a name='L238'></a><a href='#L238'>238</a> +<a name='L239'></a><a href='#L239'>239</a> +<a name='L240'></a><a href='#L240'>240</a> +<a name='L241'></a><a href='#L241'>241</a> +<a name='L242'></a><a href='#L242'>242</a> +<a name='L243'></a><a href='#L243'>243</a> +<a name='L244'></a><a href='#L244'>244</a> +<a name='L245'></a><a href='#L245'>245</a> +<a name='L246'></a><a href='#L246'>246</a> +<a name='L247'></a><a href='#L247'>247</a> +<a name='L248'></a><a href='#L248'>248</a> +<a name='L249'></a><a href='#L249'>249</a> +<a name='L250'></a><a href='#L250'>250</a> +<a name='L251'></a><a href='#L251'>251</a> +<a name='L252'></a><a href='#L252'>252</a> +<a name='L253'></a><a href='#L253'>253</a> +<a name='L254'></a><a href='#L254'>254</a> +<a name='L255'></a><a href='#L255'>255</a> +<a name='L256'></a><a href='#L256'>256</a> +<a name='L257'></a><a href='#L257'>257</a> +<a name='L258'></a><a href='#L258'>258</a> +<a name='L259'></a><a href='#L259'>259</a> +<a name='L260'></a><a href='#L260'>260</a> +<a name='L261'></a><a href='#L261'>261</a> +<a name='L262'></a><a href='#L262'>262</a> +<a name='L263'></a><a href='#L263'>263</a> +<a name='L264'></a><a href='#L264'>264</a> +<a name='L265'></a><a href='#L265'>265</a> +<a name='L266'></a><a href='#L266'>266</a> +<a name='L267'></a><a href='#L267'>267</a> +<a name='L268'></a><a href='#L268'>268</a> +<a name='L269'></a><a href='#L269'>269</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">37x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">37x</span> +<span class="cline-any cline-yes">37x</span> +<span class="cline-any cline-yes">37x</span> +<span class="cline-any cline-yes">37x</span> +<span class="cline-any cline-yes">37x</span> +<span class="cline-any cline-yes">37x</span> +<span class="cline-any cline-yes">37x</span> +<span class="cline-any cline-yes">37x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">37x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">37x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">37x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">37x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">37x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">37x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">37x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">37x</span> +<span class="cline-any cline-yes">37x</span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { LOCKER_UNMINIFIED_FLAG, SymbolFor, ArrayIsArray, ReflectDefineProperty, isNearMembraneProxy, ReflectApply, ArrayProtoPush, ObjectProtoToString, ObjectKeys, TO_STRING_BRAND_SYMBOL, ArrayProtoIncludes, ArrayProtoUnshift, TO_STRING_BRAND_STRING, ArrayProtoFilter, NumberIsInteger, ReflectOwnKeys, ArrayProtoMap, StringCtor, MathMin, NumberIsNaN, NumberCtor, CHAR_ELLIPSIS, StringProtoSlice, getNearMembraneProxySerializedValue, TO_STRING_BRAND_NUMBER, TO_STRING_BRAND_BOOLEAN, TO_STRING_BRAND_BIG_INT, ArrayProtoIndexOf, ArrayProtoSplice, isObject, NumberIsFinite, JSONStringify } from '@locker/near-membrane-shared'; +import { rootWindow } from '@locker/near-membrane-shared-dom'; + +// This package is bundled by third-parties that have their own build time +// replacement logic. Instead of customizing each build system to be aware +// of this package we implement a two phase debug mode by performing small +// runtime checks to determine phase one, our code is unminified, and +// phase two, the user opted-in to custom devtools formatters. Phase one +// is used for light weight initialization time debug while phase two is +// reserved for post initialization runtime. +// istanbul ignore else: not avoidable via tests +if (LOCKER_UNMINIFIED_FLAG) { + // We passed the phase one gate so we know our code is unminified and we can + // install Locker's custom devtools formatter. + let lockerDebugModeSymbolFlag = true; + const LOCKER_DEBUG_MODE_SYMBOL = SymbolFor('@@lockerDebugMode'); + const MAX_ARRAY_DISPLAY = 100; + const MAX_OBJECT_DISPLAY = 5; + const MAX_STRING_DISPLAY = 100; + const MID_STRING_DISPLAY = MAX_STRING_DISPLAY / 2; + const headerCSSText = 'display: inline-block; margin-bottom: 3px; margin-left: -3px; word-break: break-all; word-wrap: wrap;'; + const bodyItemStyleObject = { + style: 'margin-left:15px; margin-bottom: 3px;' + }; + const bodyStyleObject = { + style: 'display: inline-block; margin-left:12px; word-break: break-all; word-wrap: wrap;' + }; + const keyEnumerableStringStyleObject = { + style: 'color: #9d288c; font-weight: bold' + }; + const keyNonEnumerableOrSymbolStyleObject = { + style: 'color: #b17ab0' + }; + const primitiveBlueColorStyleObject = { + style: 'color: #16239f' + }; + const primitiveGreenColorStyleObject = { + style: 'color: #236d25' + }; + const primitiveGreyColorStyleObject = { + style: 'color: #606367' + }; + const primitiveOrangeColorStyleObject = { + style: 'color: #b82619' + }; + // istanbul ignore next: currently unreachable via tests + const formatValue = function formatValue(value) { + if (value === null || value === undefined) { + return ['span', primitiveGreyColorStyleObject, `${value}`]; + } + if (typeof value === 'boolean') { + return ['span', primitiveBlueColorStyleObject, value]; + } + if (typeof value === 'number') { + return NumberIsFinite(value) ? ['span', primitiveBlueColorStyleObject, value] : ['span', primitiveBlueColorStyleObject, `${value >= 0 ? '' : '-'}Infinity`]; + } + if (typeof value === 'bigint') { + return ['span', primitiveGreenColorStyleObject, `${value}n`]; + } + if (typeof value === 'string') { + let string = value; + const { + length + } = string; + if (length > MAX_STRING_DISPLAY) { + const firstChunk = ReflectApply(StringProtoSlice, string, [0, MID_STRING_DISPLAY]); + const lastChunk = ReflectApply(StringProtoSlice, string, [length - MID_STRING_DISPLAY - 1, length]); + string = firstChunk + CHAR_ELLIPSIS + lastChunk; + } + // @TODO: Default to using single quotes on main header and double + // quotes on body. + return ['span', primitiveOrangeColorStyleObject, JSONStringify(string)]; + } + if (ArrayIsArray(value)) { + return ['span', {}, `Array(${value.length})`]; + } + if (isObject(value)) { + return ['span', {}, `{${CHAR_ELLIPSIS}}`]; + } + // Symbol will be coerced to a string. + return ['span', primitiveOrangeColorStyleObject, StringCtor(value)]; + }; + // istanbul ignore next: currently unreachable via tests + const formatHeader = function formatHeader(object, config) { + const isChildElement = config == null ? void 0 : config.isChildElement; + const formattedHeader = []; + let formattedHeaderOffset = 0; + if (isChildElement) { + formattedHeader[formattedHeaderOffset++] = ['span', keyEnumerableStringStyleObject, config.childKey]; + formattedHeader[formattedHeaderOffset++] = ['span', {}, ': ']; + } + const brand = ReflectApply(ObjectProtoToString, object, []); + let keys = ObjectKeys(object); + if (brand === TO_STRING_BRAND_SYMBOL) { + if (!ReflectApply(ArrayProtoIncludes, keys, ['description'])) { + ReflectApply(ArrayProtoUnshift, keys, ['description']); + } + } else if (brand === TO_STRING_BRAND_STRING) { + const { + length + } = object; + keys = ReflectApply(ArrayProtoFilter, keys, [key => { + const possibleIndex = typeof key === 'string' ? +key : -1; + return possibleIndex < 0 || possibleIndex >= length || !NumberIsInteger(possibleIndex); + }]); + } + const ownKeysRaw = ReflectOwnKeys(object); + const ownKeys = ReflectApply(ArrayProtoMap, ownKeysRaw, [StringCtor]); + const { + length: ownKeysLength + } = ownKeys; + if (ArrayIsArray(object)) { + formattedHeader[formattedHeaderOffset++] = ['span', {}, `(${object.length}) [`]; + for (let i = 0, length = MathMin(ownKeysLength, MAX_ARRAY_DISPLAY); i < length; i += 1) { + const ownKeyRaw = ownKeysRaw[i]; + const ownKey = ownKeys[i]; + const value = object[ownKeyRaw]; + if (ownKey !== 'length') { + if (!NumberIsNaN(NumberCtor(ownKey))) { + formattedHeader[formattedHeaderOffset++] = ['span', {}, i ? ', ' : '']; + formattedHeader[formattedHeaderOffset++] = formatValue(value); + } else { + formattedHeader[formattedHeaderOffset++] = ['span', {}, i ? ', ' : '']; + formattedHeader[formattedHeaderOffset++] = ['span', primitiveGreyColorStyleObject, StringCtor(ownKey)]; + formattedHeader[formattedHeaderOffset++] = ['span', {}, ': ']; + formattedHeader[formattedHeaderOffset++] = formatValue(value); + } + } + } + if (ownKeysLength > MAX_ARRAY_DISPLAY) { + formattedHeader[formattedHeaderOffset++] = ['span', null, ['span', {}, `, ${CHAR_ELLIPSIS}`]]; + } + formattedHeader[formattedHeaderOffset++] = ['span', {}, ']']; + return formattedHeader; + } + let boxedHeaderEntry; + let headerOpening = '{'; + // eslint-disable-next-line default-case + switch (brand) { + case TO_STRING_BRAND_BIG_INT: + case TO_STRING_BRAND_BOOLEAN: + case TO_STRING_BRAND_NUMBER: + case TO_STRING_BRAND_STRING: + case TO_STRING_BRAND_SYMBOL: + { + let colorStyleObject = primitiveBlueColorStyleObject; + if (brand === TO_STRING_BRAND_BIG_INT) { + colorStyleObject = primitiveGreenColorStyleObject; + } else if (brand === TO_STRING_BRAND_SYMBOL) { + colorStyleObject = primitiveOrangeColorStyleObject; + } + headerOpening = `${ReflectApply(StringProtoSlice, brand, [8, -1])} {`; + boxedHeaderEntry = ['span', colorStyleObject, `${StringCtor(getNearMembraneProxySerializedValue(object))}`]; + break; + } + } + formattedHeader[formattedHeaderOffset++] = ['span', {}, headerOpening]; + if (boxedHeaderEntry) { + formattedHeader[formattedHeaderOffset++] = boxedHeaderEntry; + if (ownKeysLength) { + formattedHeader[formattedHeaderOffset++] = ['span', {}, ', ']; + } + } + for (let i = 0, length = MathMin(ownKeysLength, MAX_OBJECT_DISPLAY); i < length; i += 1) { + const ownKeyRaw = ownKeysRaw[i]; + const ownKey = ownKeys[i]; + const value = object[ownKeyRaw]; + formattedHeader[formattedHeaderOffset++] = ['span', {}, i ? ', ' : '']; + formattedHeader[formattedHeaderOffset++] = ['span', primitiveGreyColorStyleObject, ownKey]; + formattedHeader[formattedHeaderOffset++] = ['span', {}, ': ']; + formattedHeader[formattedHeaderOffset++] = formatValue(value); + } + if (ownKeysLength > MAX_OBJECT_DISPLAY) { + formattedHeader[formattedHeaderOffset++] = ['span', null, ['span', {}, `, ${CHAR_ELLIPSIS}`]]; + } + formattedHeader[formattedHeaderOffset++] = ['span', {}, '}']; + return formattedHeader; + }; + // istanbul ignore next: currently unreachable via tests + const formatBody = function formatBody(object) { + // @TODO: Arrays are broken into groups of 100. + const ownKeysRaw = ReflectOwnKeys(object); + const ownKeys = ReflectApply(ArrayProtoMap, ownKeysRaw, [StringCtor]); + // Put 'length' at the end of array. + const isArray = ArrayIsArray(object); + if (isArray) { + const lengthIndex = ReflectApply(ArrayProtoIndexOf, ownKeys, ['length']); + const lengthKeyRaw = ReflectApply(ArrayProtoSplice, ownKeysRaw, [lengthIndex, 1])[0]; + ReflectApply(ArrayProtoPush, ownKeysRaw, [lengthKeyRaw]); + const lengthKey = ReflectApply(ArrayProtoSplice, ownKeys, [lengthIndex, 1])[0]; + ReflectApply(ArrayProtoPush, ownKeys, [lengthKey]); + } + const formattedBody = []; + let formattedBodyOffset = 0; + for (let i = 0, { + length + } = ownKeys; i < length; i += 1) { + const ownKeyRaw = ownKeysRaw[i]; + const ownKey = ownKeys[i]; + const value = object[ownKeyRaw]; + if (isObject(value)) { + formattedBody[formattedBodyOffset++] = ['div', {}, ['object', { + object: value, + config: { + childKey: StringCtor(ownKey), + isChildElement: true + } + }]]; + } else { + let currentKeyStyle = keyEnumerableStringStyleObject; + if (isArray && ownKey === 'length') { + currentKeyStyle = keyNonEnumerableOrSymbolStyleObject; + } + formattedBody[formattedBodyOffset++] = ['div', bodyItemStyleObject, ['span', currentKeyStyle, ownKey], ['span', {}, ': '], formatValue(value)]; + } + } + return formattedBody; + }; + let { + devtoolsFormatters + } = rootWindow; + if (!ArrayIsArray(devtoolsFormatters)) { + devtoolsFormatters = []; + ReflectDefineProperty(rootWindow, 'devtoolsFormatters', { + __proto__: null, + configurable: true, + value: devtoolsFormatters, + writable: true + }); + } + // Append our custom formatter to the array of devtools formatters. + // istanbul ignore next: currently unreachable via tests + devtoolsFormatters[devtoolsFormatters.length] = { + // istanbul ignore next: currently unreachable via tests + header(object, config) { + if (lockerDebugModeSymbolFlag) { + // We passed the second phase gate so we know that the user has + // opted-in to custom devtools formatters. Close the gate and + // define the @@lockerDebugMode symbol on window. + lockerDebugModeSymbolFlag = false; + ReflectDefineProperty(rootWindow, LOCKER_DEBUG_MODE_SYMBOL, { + __proto__: null, + configurable: true, + value: true, + writable: true + }); + } + if (!isNearMembraneProxy(object)) { + return null; + } + const headerDiv = ['div', { + style: `${headerCSSText}${config != null && config.isChildElement ? '' : 'font-style: italic;'}` + }]; + ReflectApply(ArrayProtoPush, headerDiv, formatHeader(object, config)); + return ['div', {}, headerDiv]; + }, + // istanbul ignore next: currently unreachable via tests + hasBody() { + return true; + }, + // istanbul ignore next: currently unreachable via tests + body(object) { + const bodyDiv = ['div', bodyStyleObject]; + ReflectApply(ArrayProtoPush, bodyDiv, formatBody(object)); + return bodyDiv; + } + }; +} + </pre></td></tr></table></pre> + + <div class='push'></div><!-- for sticky footer --> + </div><!-- /wrapper --> + <div class='footer quiet pad2 space-top1 center small'> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> + at Mon Nov 25 2024 16:43:41 GMT+0000 (Coordinated Universal Time) + </div> + <script src="../../prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="../../sorter.js"></script> + <script src="../../block-navigation.js"></script> + </body> +</html> + \ No newline at end of file diff --git a/pages/coverage-reports/pages/1732553023031263517/near-membrane-dom/dist/index.html b/pages/coverage-reports/pages/1732553023031263517/near-membrane-dom/dist/index.html new file mode 100644 index 00000000..c069f73b --- /dev/null +++ b/pages/coverage-reports/pages/1732553023031263517/near-membrane-dom/dist/index.html @@ -0,0 +1,131 @@ + +<!doctype html> +<html lang="en"> + +<head> + <title>Code coverage report for near-membrane-dom/dist</title> + <meta charset="utf-8" /> + <link rel="stylesheet" href="../../prettify.css" /> + <link rel="stylesheet" href="../../base.css" /> + <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <style type='text/css'> + .coverage-summary .sorter { + background-image: url(../../sort-arrow-sprite.png); + } + </style> +</head> + +<body> +<div class='wrapper'> + <div class='pad1'> + <h1><a href="../../index.html">All files</a> near-membrane-dom/dist</h1> + <div class='clearfix'> + + <div class='fl pad1y space-right2'> + <span class="strong">97.17% </span> + <span class="quiet">Statements</span> + <span class='fraction'>103/106</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">86.49% </span> + <span class="quiet">Branches</span> + <span class='fraction'>32/37</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Functions</span> + <span class='fraction'>7/7</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">97.14% </span> + <span class="quiet">Lines</span> + <span class='fraction'>102/105</span> + </div> + + + </div> + <p class="quiet"> + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + </p> + <template id="filterTemplate"> + <div class="quiet"> + Filter: + <input oninput="onInput()" type="search" id="fileSearch"> + </div> + </template> + </div> + <div class='status-line high'></div> + <div class="pad1"> +<table class="coverage-summary"> +<thead> +<tr> + <th data-col="file" data-fmt="html" data-html="true" class="file">File</th> + <th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th> + <th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th> + <th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th> + <th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th> + <th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th> + <th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th> + <th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th> + <th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th> + <th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th> +</tr> +</thead> +<tbody><tr> + <td class="file high" data-value="custom-devtools-formatter.mjs.js"><a href="custom-devtools-formatter.mjs.js.html">custom-devtools-formatter.mjs.js</a></td> + <td data-value="100" class="pic high"> + <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div> + </td> + <td data-value="100" class="pct high">100%</td> + <td data-value="20" class="abs high">20/20</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="2" class="abs high">2/2</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="0" class="abs high">0/0</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="20" class="abs high">20/20</td> + </tr> + +<tr> + <td class="file high" data-value="index.mjs.js"><a href="index.mjs.js.html">index.mjs.js</a></td> + <td data-value="96.51" class="pic high"> + <div class="chart"><div class="cover-fill" style="width: 96%"></div><div class="cover-empty" style="width: 4%"></div></div> + </td> + <td data-value="96.51" class="pct high">96.51%</td> + <td data-value="86" class="abs high">83/86</td> + <td data-value="85.71" class="pct high">85.71%</td> + <td data-value="35" class="abs high">30/35</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="7" class="abs high">7/7</td> + <td data-value="96.47" class="pct high">96.47%</td> + <td data-value="85" class="abs high">82/85</td> + </tr> + +</tbody> +</table> +</div> + <div class='push'></div><!-- for sticky footer --> + </div><!-- /wrapper --> + <div class='footer quiet pad2 space-top1 center small'> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> + at Mon Nov 25 2024 16:43:41 GMT+0000 (Coordinated Universal Time) + </div> + <script src="../../prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="../../sorter.js"></script> + <script src="../../block-navigation.js"></script> + </body> +</html> + \ No newline at end of file diff --git a/pages/coverage-reports/pages/1732553023031263517/near-membrane-dom/dist/index.mjs.js.html b/pages/coverage-reports/pages/1732553023031263517/near-membrane-dom/dist/index.mjs.js.html new file mode 100644 index 00000000..ac4d8d88 --- /dev/null +++ b/pages/coverage-reports/pages/1732553023031263517/near-membrane-dom/dist/index.mjs.js.html @@ -0,0 +1,784 @@ + +<!doctype html> +<html lang="en"> + +<head> + <title>Code coverage report for near-membrane-dom/dist/index.mjs.js</title> + <meta charset="utf-8" /> + <link rel="stylesheet" href="../../prettify.css" /> + <link rel="stylesheet" href="../../base.css" /> + <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <style type='text/css'> + .coverage-summary .sorter { + background-image: url(../../sort-arrow-sprite.png); + } + </style> +</head> + +<body> +<div class='wrapper'> + <div class='pad1'> + <h1><a href="../../index.html">All files</a> / <a href="index.html">near-membrane-dom/dist</a> index.mjs.js</h1> + <div class='clearfix'> + + <div class='fl pad1y space-right2'> + <span class="strong">96.51% </span> + <span class="quiet">Statements</span> + <span class='fraction'>83/86</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">85.71% </span> + <span class="quiet">Branches</span> + <span class='fraction'>30/35</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Functions</span> + <span class='fraction'>7/7</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">96.47% </span> + <span class="quiet">Lines</span> + <span class='fraction'>82/85</span> + </div> + + + </div> + <p class="quiet"> + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + </p> + <template id="filterTemplate"> + <div class="quiet"> + Filter: + <input oninput="onInput()" type="search" id="fileSearch"> + </div> + </template> + </div> + <div class='status-line high'></div> + <pre><table class="coverage"> +<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a> +<a name='L2'></a><a href='#L2'>2</a> +<a name='L3'></a><a href='#L3'>3</a> +<a name='L4'></a><a href='#L4'>4</a> +<a name='L5'></a><a href='#L5'>5</a> +<a name='L6'></a><a href='#L6'>6</a> +<a name='L7'></a><a href='#L7'>7</a> +<a name='L8'></a><a href='#L8'>8</a> +<a name='L9'></a><a href='#L9'>9</a> +<a name='L10'></a><a href='#L10'>10</a> +<a name='L11'></a><a href='#L11'>11</a> +<a name='L12'></a><a href='#L12'>12</a> +<a name='L13'></a><a href='#L13'>13</a> +<a name='L14'></a><a href='#L14'>14</a> +<a name='L15'></a><a href='#L15'>15</a> +<a name='L16'></a><a href='#L16'>16</a> +<a name='L17'></a><a href='#L17'>17</a> +<a name='L18'></a><a href='#L18'>18</a> +<a name='L19'></a><a href='#L19'>19</a> +<a name='L20'></a><a href='#L20'>20</a> +<a name='L21'></a><a href='#L21'>21</a> +<a name='L22'></a><a href='#L22'>22</a> +<a name='L23'></a><a href='#L23'>23</a> +<a name='L24'></a><a href='#L24'>24</a> +<a name='L25'></a><a href='#L25'>25</a> +<a name='L26'></a><a href='#L26'>26</a> +<a name='L27'></a><a href='#L27'>27</a> +<a name='L28'></a><a href='#L28'>28</a> +<a name='L29'></a><a href='#L29'>29</a> +<a name='L30'></a><a href='#L30'>30</a> +<a name='L31'></a><a href='#L31'>31</a> +<a name='L32'></a><a href='#L32'>32</a> +<a name='L33'></a><a href='#L33'>33</a> +<a name='L34'></a><a href='#L34'>34</a> +<a name='L35'></a><a href='#L35'>35</a> +<a name='L36'></a><a href='#L36'>36</a> +<a name='L37'></a><a href='#L37'>37</a> +<a name='L38'></a><a href='#L38'>38</a> +<a name='L39'></a><a href='#L39'>39</a> +<a name='L40'></a><a href='#L40'>40</a> +<a name='L41'></a><a href='#L41'>41</a> +<a name='L42'></a><a href='#L42'>42</a> +<a name='L43'></a><a href='#L43'>43</a> +<a name='L44'></a><a href='#L44'>44</a> +<a name='L45'></a><a href='#L45'>45</a> +<a name='L46'></a><a href='#L46'>46</a> +<a name='L47'></a><a href='#L47'>47</a> +<a name='L48'></a><a href='#L48'>48</a> +<a name='L49'></a><a href='#L49'>49</a> +<a name='L50'></a><a href='#L50'>50</a> +<a name='L51'></a><a href='#L51'>51</a> +<a name='L52'></a><a href='#L52'>52</a> +<a name='L53'></a><a href='#L53'>53</a> +<a name='L54'></a><a href='#L54'>54</a> +<a name='L55'></a><a href='#L55'>55</a> +<a name='L56'></a><a href='#L56'>56</a> +<a name='L57'></a><a href='#L57'>57</a> +<a name='L58'></a><a href='#L58'>58</a> +<a name='L59'></a><a href='#L59'>59</a> +<a name='L60'></a><a href='#L60'>60</a> +<a name='L61'></a><a href='#L61'>61</a> +<a name='L62'></a><a href='#L62'>62</a> +<a name='L63'></a><a href='#L63'>63</a> +<a name='L64'></a><a href='#L64'>64</a> +<a name='L65'></a><a href='#L65'>65</a> +<a name='L66'></a><a href='#L66'>66</a> +<a name='L67'></a><a href='#L67'>67</a> +<a name='L68'></a><a href='#L68'>68</a> +<a name='L69'></a><a href='#L69'>69</a> +<a name='L70'></a><a href='#L70'>70</a> +<a name='L71'></a><a href='#L71'>71</a> +<a name='L72'></a><a href='#L72'>72</a> +<a name='L73'></a><a href='#L73'>73</a> +<a name='L74'></a><a href='#L74'>74</a> +<a name='L75'></a><a href='#L75'>75</a> +<a name='L76'></a><a href='#L76'>76</a> +<a name='L77'></a><a href='#L77'>77</a> +<a name='L78'></a><a href='#L78'>78</a> +<a name='L79'></a><a href='#L79'>79</a> +<a name='L80'></a><a href='#L80'>80</a> +<a name='L81'></a><a href='#L81'>81</a> +<a name='L82'></a><a href='#L82'>82</a> +<a name='L83'></a><a href='#L83'>83</a> +<a name='L84'></a><a href='#L84'>84</a> +<a name='L85'></a><a href='#L85'>85</a> +<a name='L86'></a><a href='#L86'>86</a> +<a name='L87'></a><a href='#L87'>87</a> +<a name='L88'></a><a href='#L88'>88</a> +<a name='L89'></a><a href='#L89'>89</a> +<a name='L90'></a><a href='#L90'>90</a> +<a name='L91'></a><a href='#L91'>91</a> +<a name='L92'></a><a href='#L92'>92</a> +<a name='L93'></a><a href='#L93'>93</a> +<a name='L94'></a><a href='#L94'>94</a> +<a name='L95'></a><a href='#L95'>95</a> +<a name='L96'></a><a href='#L96'>96</a> +<a name='L97'></a><a href='#L97'>97</a> +<a name='L98'></a><a href='#L98'>98</a> +<a name='L99'></a><a href='#L99'>99</a> +<a name='L100'></a><a href='#L100'>100</a> +<a name='L101'></a><a href='#L101'>101</a> +<a name='L102'></a><a href='#L102'>102</a> +<a name='L103'></a><a href='#L103'>103</a> +<a name='L104'></a><a href='#L104'>104</a> +<a name='L105'></a><a href='#L105'>105</a> +<a name='L106'></a><a href='#L106'>106</a> +<a name='L107'></a><a href='#L107'>107</a> +<a name='L108'></a><a href='#L108'>108</a> +<a name='L109'></a><a href='#L109'>109</a> +<a name='L110'></a><a href='#L110'>110</a> +<a name='L111'></a><a href='#L111'>111</a> +<a name='L112'></a><a href='#L112'>112</a> +<a name='L113'></a><a href='#L113'>113</a> +<a name='L114'></a><a href='#L114'>114</a> +<a name='L115'></a><a href='#L115'>115</a> +<a name='L116'></a><a href='#L116'>116</a> +<a name='L117'></a><a href='#L117'>117</a> +<a name='L118'></a><a href='#L118'>118</a> +<a name='L119'></a><a href='#L119'>119</a> +<a name='L120'></a><a href='#L120'>120</a> +<a name='L121'></a><a href='#L121'>121</a> +<a name='L122'></a><a href='#L122'>122</a> +<a name='L123'></a><a href='#L123'>123</a> +<a name='L124'></a><a href='#L124'>124</a> +<a name='L125'></a><a href='#L125'>125</a> +<a name='L126'></a><a href='#L126'>126</a> +<a name='L127'></a><a href='#L127'>127</a> +<a name='L128'></a><a href='#L128'>128</a> +<a name='L129'></a><a href='#L129'>129</a> +<a name='L130'></a><a href='#L130'>130</a> +<a name='L131'></a><a href='#L131'>131</a> +<a name='L132'></a><a href='#L132'>132</a> +<a name='L133'></a><a href='#L133'>133</a> +<a name='L134'></a><a href='#L134'>134</a> +<a name='L135'></a><a href='#L135'>135</a> +<a name='L136'></a><a href='#L136'>136</a> +<a name='L137'></a><a href='#L137'>137</a> +<a name='L138'></a><a href='#L138'>138</a> +<a name='L139'></a><a href='#L139'>139</a> +<a name='L140'></a><a href='#L140'>140</a> +<a name='L141'></a><a href='#L141'>141</a> +<a name='L142'></a><a href='#L142'>142</a> +<a name='L143'></a><a href='#L143'>143</a> +<a name='L144'></a><a href='#L144'>144</a> +<a name='L145'></a><a href='#L145'>145</a> +<a name='L146'></a><a href='#L146'>146</a> +<a name='L147'></a><a href='#L147'>147</a> +<a name='L148'></a><a href='#L148'>148</a> +<a name='L149'></a><a href='#L149'>149</a> +<a name='L150'></a><a href='#L150'>150</a> +<a name='L151'></a><a href='#L151'>151</a> +<a name='L152'></a><a href='#L152'>152</a> +<a name='L153'></a><a href='#L153'>153</a> +<a name='L154'></a><a href='#L154'>154</a> +<a name='L155'></a><a href='#L155'>155</a> +<a name='L156'></a><a href='#L156'>156</a> +<a name='L157'></a><a href='#L157'>157</a> +<a name='L158'></a><a href='#L158'>158</a> +<a name='L159'></a><a href='#L159'>159</a> +<a name='L160'></a><a href='#L160'>160</a> +<a name='L161'></a><a href='#L161'>161</a> +<a name='L162'></a><a href='#L162'>162</a> +<a name='L163'></a><a href='#L163'>163</a> +<a name='L164'></a><a href='#L164'>164</a> +<a name='L165'></a><a href='#L165'>165</a> +<a name='L166'></a><a href='#L166'>166</a> +<a name='L167'></a><a href='#L167'>167</a> +<a name='L168'></a><a href='#L168'>168</a> +<a name='L169'></a><a href='#L169'>169</a> +<a name='L170'></a><a href='#L170'>170</a> +<a name='L171'></a><a href='#L171'>171</a> +<a name='L172'></a><a href='#L172'>172</a> +<a name='L173'></a><a href='#L173'>173</a> +<a name='L174'></a><a href='#L174'>174</a> +<a name='L175'></a><a href='#L175'>175</a> +<a name='L176'></a><a href='#L176'>176</a> +<a name='L177'></a><a href='#L177'>177</a> +<a name='L178'></a><a href='#L178'>178</a> +<a name='L179'></a><a href='#L179'>179</a> +<a name='L180'></a><a href='#L180'>180</a> +<a name='L181'></a><a href='#L181'>181</a> +<a name='L182'></a><a href='#L182'>182</a> +<a name='L183'></a><a href='#L183'>183</a> +<a name='L184'></a><a href='#L184'>184</a> +<a name='L185'></a><a href='#L185'>185</a> +<a name='L186'></a><a href='#L186'>186</a> +<a name='L187'></a><a href='#L187'>187</a> +<a name='L188'></a><a href='#L188'>188</a> +<a name='L189'></a><a href='#L189'>189</a> +<a name='L190'></a><a href='#L190'>190</a> +<a name='L191'></a><a href='#L191'>191</a> +<a name='L192'></a><a href='#L192'>192</a> +<a name='L193'></a><a href='#L193'>193</a> +<a name='L194'></a><a href='#L194'>194</a> +<a name='L195'></a><a href='#L195'>195</a> +<a name='L196'></a><a href='#L196'>196</a> +<a name='L197'></a><a href='#L197'>197</a> +<a name='L198'></a><a href='#L198'>198</a> +<a name='L199'></a><a href='#L199'>199</a> +<a name='L200'></a><a href='#L200'>200</a> +<a name='L201'></a><a href='#L201'>201</a> +<a name='L202'></a><a href='#L202'>202</a> +<a name='L203'></a><a href='#L203'>203</a> +<a name='L204'></a><a href='#L204'>204</a> +<a name='L205'></a><a href='#L205'>205</a> +<a name='L206'></a><a href='#L206'>206</a> +<a name='L207'></a><a href='#L207'>207</a> +<a name='L208'></a><a href='#L208'>208</a> +<a name='L209'></a><a href='#L209'>209</a> +<a name='L210'></a><a href='#L210'>210</a> +<a name='L211'></a><a href='#L211'>211</a> +<a name='L212'></a><a href='#L212'>212</a> +<a name='L213'></a><a href='#L213'>213</a> +<a name='L214'></a><a href='#L214'>214</a> +<a name='L215'></a><a href='#L215'>215</a> +<a name='L216'></a><a href='#L216'>216</a> +<a name='L217'></a><a href='#L217'>217</a> +<a name='L218'></a><a href='#L218'>218</a> +<a name='L219'></a><a href='#L219'>219</a> +<a name='L220'></a><a href='#L220'>220</a> +<a name='L221'></a><a href='#L221'>221</a> +<a name='L222'></a><a href='#L222'>222</a> +<a name='L223'></a><a href='#L223'>223</a> +<a name='L224'></a><a href='#L224'>224</a> +<a name='L225'></a><a href='#L225'>225</a> +<a name='L226'></a><a href='#L226'>226</a> +<a name='L227'></a><a href='#L227'>227</a> +<a name='L228'></a><a href='#L228'>228</a> +<a name='L229'></a><a href='#L229'>229</a> +<a name='L230'></a><a href='#L230'>230</a> +<a name='L231'></a><a href='#L231'>231</a> +<a name='L232'></a><a href='#L232'>232</a> +<a name='L233'></a><a href='#L233'>233</a> +<a name='L234'></a><a href='#L234'>234</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">37x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">37x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">265x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">265x</span> +<span class="cline-any cline-yes">265x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">264x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">264x</span> +<span class="cline-any cline-yes">226x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">38x</span> +<span class="cline-any cline-yes">38x</span> +<span class="cline-any cline-yes">38x</span> +<span class="cline-any cline-yes">38x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">38x</span> +<span class="cline-any cline-yes">38x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">257x</span> +<span class="cline-any cline-yes">257x</span> +<span class="cline-any cline-yes">257x</span> +<span class="cline-any cline-yes">257x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">257x</span> +<span class="cline-any cline-yes">272059x</span> +<span class="cline-any cline-yes">272059x</span> +<span class="cline-any cline-yes">1028x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">271031x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">257x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">191x</span> +<span class="cline-any cline-yes">191x</span> +<span class="cline-any cline-yes">191x</span> +<span class="cline-any cline-yes">191x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">191x</span> +<span class="cline-any cline-yes">191x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">37x</span> +<span class="cline-any cline-yes">37x</span> +<span class="cline-any cline-yes">37x</span> +<span class="cline-any cline-yes">37x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">227x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">227x</span> +<span class="cline-any cline-yes">227x</span> +<span class="cline-any cline-yes">227x</span> +<span class="cline-any cline-yes">227x</span> +<span class="cline-any cline-yes">227x</span> +<span class="cline-any cline-yes">227x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">229x</span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">228x</span> +<span class="cline-any cline-yes">228x</span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">227x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">227x</span> +<span class="cline-any cline-yes">227x</span> +<span class="cline-any cline-yes">227x</span> +<span class="cline-any cline-yes">227x</span> +<span class="cline-any cline-yes">227x</span> +<span class="cline-any cline-yes">227x</span> +<span class="cline-any cline-yes">36x</span> +<span class="cline-any cline-yes">36x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">227x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">227x</span> +<span class="cline-any cline-yes">227x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">227x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">227x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">227x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">227x</span> +<span class="cline-any cline-yes">227x</span> +<span class="cline-any cline-yes">227x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">227x</span> +<span class="cline-any cline-yes">191x</span> +<span class="cline-any cline-yes">191x</span> +<span class="cline-any cline-yes">191x</span> +<span class="cline-any cline-yes">191x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">227x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">227x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">226x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">226x</span> +<span class="cline-any cline-yes">226x</span> +<span class="cline-any cline-yes">226x</span> +<span class="cline-any cline-yes">226x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">227x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">12651x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import './custom-devtools-formatter.mjs.js'; +import { getFilteredGlobalOwnKeys, createBlueConnector, VirtualEnvironment, createRedConnector, linkIntrinsics, assignFilteredGlobalDescriptorsFromPropertyDescriptorMap } from '@locker/near-membrane-base'; +import { toSafeWeakMap, ReflectGetPrototypeOf, ReflectOwnKeys, SetCtor, ReflectApply, SetProtoHas, ReflectDeleteProperty, toSafeWeakSet, WeakSetCtor, WeakMapCtor, TypeErrorCtor, ObjectAssign, isObject } from '@locker/near-membrane-shared'; +import { rootWindow, IS_CHROMIUM_BROWSER, HTMLIFrameElementProtoContentWindowGetter, DocumentProtoOpen, DocumentProtoClose, IS_OLD_CHROMIUM_BROWSER, ElementProtoRemove, DocumentProtoCreateElement, DocumentProtoBodyGetter, NodeProtoLastChildGetter, HTMLElementProtoStyleGetter, ElementProtoSetAttribute, NodeProtoAppendChild } from '@locker/near-membrane-shared-dom'; +const blueDocumentToRecordMap = toSafeWeakMap(new WeakMap()); +// Chromium based browsers have a bug that nulls the result of `window` +// getters in detached iframes when the property descriptor of `window.window` +// is retrieved. +// https://bugs.chromium.org/p/chromium/issues/detail?id=1305302 +const unforgeablePoisonedWindowKeys = IS_CHROMIUM_BROWSER ? ['window'] : <span class="branch-1 cbranch-no" title="branch not covered" >undefined;</span> +function getCachedGlobalObjectReferences(globalObject) { + const { + window + } = globalObject; + let record; + let document; + // Suppress errors thrown on cross-origin opaque windows. + try { + ({ + document + } = globalObject); + record = blueDocumentToRecordMap.get(document); + // eslint-disable-next-line no-empty + } catch (_unused) { + return undefined; + } + if (record) { + return record; + } + // Cache references to object values that can't be replaced + // window -> Window -> WindowProperties -> EventTarget + const WindowProto = ReflectGetPrototypeOf(window); + const WindowPropertiesProto = ReflectGetPrototypeOf(WindowProto); + const EventTargetProto = ReflectGetPrototypeOf(WindowPropertiesProto); + record = { + document, + DocumentProto: ReflectGetPrototypeOf(document), + window, + WindowProto: ReflectGetPrototypeOf(window), + WindowPropertiesProto: ReflectGetPrototypeOf(WindowProto), + EventTargetProto, + // Some simulated browser environments, e.g. those using JSDOM, may lack an EventTargetProto. + EventTargetProtoOwnKeys: EventTargetProto ? ReflectOwnKeys(EventTargetProto) : <span class="branch-1 cbranch-no" title="branch not covered" >[]</span> + }; + blueDocumentToRecordMap.set(document, record); + return record; +} +function filterWindowKeys(keys) { + const excludedKeys = new SetCtor(['document', 'location', 'top', 'window']); + const result = []; + let resultOffset = 0; + for (let i = 0, { + length + } = keys; i < length; i += 1) { + const key = keys[i]; + if (ReflectApply(SetProtoHas, excludedKeys, [key])) { + continue; + } + result[resultOffset++] = key; + } + return result; +} +/** + * global descriptors are a combination of 3 set of descriptors: + * - first, the key of the red descriptors define the descriptors + * provided by the browser when creating a brand new window. + * - second, once we know the base keys, we get the actual descriptors + * from the blueDescriptors, since those are the one we want to provide + * access to via the membrane. + * - third, the user of this library can provide endowments, which define + * global descriptors that should be installed into the sandbox on top + * of the base descriptors. + * + * Note: The main reason for using redDescriptors as the base keys instead + * of blueDescriptor is because there is no guarantee that this library is + * the first one to be evaluated in the host app, which means it has no ways + * to determine what is a real DOM API vs app specific globals. + * + * Quirk: The only quirk here is for the case in which this library runs + * after some other code that patches some of the DOM APIs. This means + * the installed proxy in the sandbox will point to the patched global + * API in the blue realm, rather than the original, because we don't have + * a way to access the original anymore. This should not be a deal-breaker + * if the patched API behaves according to the spec. + * + * The result of this method is a descriptor map that contains everything + * that will be installed (via the membrane) as global descriptors in + * the red realm. + */ +function removeWindowDescriptors(unsafeDescs) { + // Remove unforgeable descriptors that cannot be installed. + ReflectDeleteProperty(unsafeDescs, 'document'); + ReflectDeleteProperty(unsafeDescs, 'location'); + ReflectDeleteProperty(unsafeDescs, 'top'); + ReflectDeleteProperty(unsafeDescs, 'window'); + // Remove other browser specific unforgeables. + ReflectDeleteProperty(unsafeDescs, 'chrome'); + return unsafeDescs; +} +/** + * Initialization operation to capture and cache all unforgeable references + * and their respective descriptor maps before any other code runs, this + * usually help because this library runs before anything else that can poison + * the environment. + */ +getCachedGlobalObjectReferences(rootWindow); +const IFRAME_SANDBOX_ATTRIBUTE_VALUE = 'allow-same-origin allow-scripts'; +const revoked = toSafeWeakSet(new WeakSetCtor()); +const blueCreateHooksCallbackCache = toSafeWeakMap(new WeakMapCtor()); +function createDetachableIframe(doc) { + var _ReflectApply; + const iframe = ReflectApply(DocumentProtoCreateElement, doc, ['iframe']); + // It is impossible to test whether the NodeProtoLastChildGetter branch is + // reached in a normal Karma test environment. + const parent = (_ReflectApply = ReflectApply(DocumentProtoBodyGetter, doc, [])) != null ? _ReflectApply : /* istanbul ignore next */ReflectApply(NodeProtoLastChildGetter, doc, []); + const style = ReflectApply(HTMLElementProtoStyleGetter, iframe, []); + style.display = 'none'; + ReflectApply(ElementProtoSetAttribute, iframe, ['sandbox', IFRAME_SANDBOX_ATTRIBUTE_VALUE]); + ReflectApply(NodeProtoAppendChild, parent, [iframe]); + return iframe; +} +function createIframeVirtualEnvironment(globalObject, providedOptions) { + if (typeof globalObject !== 'object' || globalObject === null) { + throw new TypeErrorCtor('Missing global object virtualization target.'); + } + const blueRefs = getCachedGlobalObjectReferences(globalObject); + if (typeof blueRefs !== 'object' || blueRefs === null) { + throw new TypeErrorCtor('Invalid virtualization target.'); + } + const { + distortionCallback, + defaultPolicy, + endowments, + globalObjectShape, + instrumentation, + keepAlive = true, + liveTargetCallback, + maxPerfMode = false, + signSourceCallback + // eslint-disable-next-line prefer-object-spread + } = ObjectAssign({ + __proto__: null + }, providedOptions); + const iframe = createDetachableIframe(blueRefs.document); + const redWindow = ReflectApply(HTMLIFrameElementProtoContentWindowGetter, iframe, []); + const shouldUseDefaultGlobalOwnKeys = typeof globalObjectShape !== 'object' || globalObjectShape === null; + const defaultGlobalOwnKeys = filterWindowKeys(getFilteredGlobalOwnKeys(redWindow, maxPerfMode)); + let blueConnector = blueCreateHooksCallbackCache.get(blueRefs.document); + if (blueConnector === undefined) { + blueConnector = createBlueConnector(globalObject); + blueCreateHooksCallbackCache.set(blueRefs.document, blueConnector); + } + // Install default TrustedTypes policy in the virtual environment. + // @ts-ignore trustedTypes does not exist on GlobalObject + <span class="missing-if-branch" title="if path not taken" >I</span>if (typeof redWindow.trustedTypes !== 'undefined' && isObject(defaultPolicy)) { + // @ts-ignore trustedTypes does not exist on GlobalObject +<span class="cstat-no" title="statement not covered" > redWindow.trustedTypes.createPolicy('default', defaultPolicy);</span> + } + const { + eval: redIndirectEval + } = redWindow; + const env = new VirtualEnvironment({ + blueConnector, + redConnector: createRedConnector(signSourceCallback ? sourceText => redIndirectEval(signSourceCallback(sourceText)) : redIndirectEval), + distortionCallback, + instrumentation, + liveTargetCallback, + revokedProxyCallback: keepAlive ? revokedProxyCallback : undefined, + signSourceCallback + }); + linkIntrinsics(env, globalObject); + // window + // window.document + // In browsers globalThis is === window. + <span class="missing-if-branch" title="if path not taken" >I</span>if (typeof globalThis === 'undefined') { + // Support for globalThis was added in Chrome 71. + // However, environments like Android emulators are running Chrome 69. +<span class="cstat-no" title="statement not covered" > env.link('window', 'document');</span> + } else { + // document is === window.document. + env.link('document'); + } + // window.__proto__ (aka Window.prototype) + // window.__proto__.__proto__ (aka WindowProperties.prototype) + // window.__proto__.__proto__.__proto__ (aka EventTarget.prototype) + env.link('__proto__', '__proto__', '__proto__'); + env.remapProto(blueRefs.document, blueRefs.DocumentProto); + env.lazyRemapProperties(blueRefs.window, shouldUseDefaultGlobalOwnKeys ? defaultGlobalOwnKeys : filterWindowKeys(getFilteredGlobalOwnKeys(globalObjectShape, maxPerfMode)), + // Chromium based browsers have a bug that nulls the result of `window` + // getters in detached iframes when the property descriptor of `window.window` + // is retrieved. + // https://bugs.chromium.org/p/chromium/issues/detail?id=1305302 + keepAlive ? undefined : unforgeablePoisonedWindowKeys); + if (endowments) { + const filteredEndowments = {}; + assignFilteredGlobalDescriptorsFromPropertyDescriptorMap(filteredEndowments, endowments, maxPerfMode); + removeWindowDescriptors(filteredEndowments); + env.remapProperties(blueRefs.window, filteredEndowments); + } + // We intentionally skip remapping Window.prototype because there is nothing + // in it that needs to be remapped. + env.lazyRemapProperties(blueRefs.EventTargetProto, blueRefs.EventTargetProtoOwnKeys); + // We don't remap `blueRefs.WindowPropertiesProto` because it is "magical" + // in that it provides access to elements by id. + // + // Once we get the iframe info ready, and all mapped, we can proceed to + // detach the iframe only if `options.keepAlive` isn't true. + if (keepAlive) { + // @TODO: Temporary hack to preserve the document reference in Firefox. + // https://bugzilla.mozilla.org/show_bug.cgi?id=543435 + const { + document: redDocument + } = redWindow; + // Revoke the proxies of the redDocument and redWindow to prevent access. + revoked.add(redDocument); + revoked.add(redWindow); + ReflectApply(DocumentProtoOpen, redDocument, []); + ReflectApply(DocumentProtoClose, redDocument, []); + } else { + <span class="missing-if-branch" title="if path not taken" >I</span>if (IS_OLD_CHROMIUM_BROWSER) { + // For Chromium < v86 browsers we evaluate the `window` object to + // kickstart the realm so that `window` persists when the iframe is + // removed from the document. +<span class="cstat-no" title="statement not covered" > redIndirectEval('window');</span> + } + ReflectApply(ElementProtoRemove, iframe, []); + } + return env; +} +function revokedProxyCallback(value) { + return revoked.has(value); +} +export { createIframeVirtualEnvironment as default }; + </pre></td></tr></table></pre> + + <div class='push'></div><!-- for sticky footer --> + </div><!-- /wrapper --> + <div class='footer quiet pad2 space-top1 center small'> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> + at Mon Nov 25 2024 16:43:41 GMT+0000 (Coordinated Universal Time) + </div> + <script src="../../prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="../../sorter.js"></script> + <script src="../../block-navigation.js"></script> + </body> +</html> + \ No newline at end of file diff --git a/pages/coverage-reports/pages/1732553023031263517/near-membrane-node/src/index.html b/pages/coverage-reports/pages/1732553023031263517/near-membrane-node/src/index.html new file mode 100644 index 00000000..d7221b78 --- /dev/null +++ b/pages/coverage-reports/pages/1732553023031263517/near-membrane-node/src/index.html @@ -0,0 +1,146 @@ + +<!doctype html> +<html lang="en"> + +<head> + <title>Code coverage report for near-membrane-node/src</title> + <meta charset="utf-8" /> + <link rel="stylesheet" href="../../prettify.css" /> + <link rel="stylesheet" href="../../base.css" /> + <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <style type='text/css'> + .coverage-summary .sorter { + background-image: url(../../sort-arrow-sprite.png); + } + </style> +</head> + +<body> +<div class='wrapper'> + <div class='pad1'> + <h1><a href="../../index.html">All files</a> near-membrane-node/src</h1> + <div class='clearfix'> + + <div class='fl pad1y space-right2'> + <span class="strong">95.65% </span> + <span class="quiet">Statements</span> + <span class='fraction'>22/23</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">94.74% </span> + <span class="quiet">Branches</span> + <span class='fraction'>18/19</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">50% </span> + <span class="quiet">Functions</span> + <span class='fraction'>1/2</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">95.65% </span> + <span class="quiet">Lines</span> + <span class='fraction'>22/23</span> + </div> + + + </div> + <p class="quiet"> + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + </p> + <template id="filterTemplate"> + <div class="quiet"> + Filter: + <input oninput="onInput()" type="search" id="fileSearch"> + </div> + </template> + </div> + <div class='status-line high'></div> + <div class="pad1"> +<table class="coverage-summary"> +<thead> +<tr> + <th data-col="file" data-fmt="html" data-html="true" class="file">File</th> + <th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th> + <th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th> + <th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th> + <th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th> + <th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th> + <th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th> + <th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th> + <th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th> + <th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th> +</tr> +</thead> +<tbody><tr> + <td class="file empty" data-value="index.ts"><a href="index.ts.html">index.ts</a></td> + <td data-value="0" class="pic empty"> + <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div> + </td> + <td data-value="0" class="pct empty">0%</td> + <td data-value="0" class="abs empty">0/0</td> + <td data-value="0" class="pct empty">0%</td> + <td data-value="0" class="abs empty">0/0</td> + <td data-value="0" class="pct empty">0%</td> + <td data-value="0" class="abs empty">0/0</td> + <td data-value="0" class="pct empty">0%</td> + <td data-value="0" class="abs empty">0/0</td> + </tr> + +<tr> + <td class="file high" data-value="node-realm.ts"><a href="node-realm.ts.html">node-realm.ts</a></td> + <td data-value="95.65" class="pic high"> + <div class="chart"><div class="cover-fill" style="width: 95%"></div><div class="cover-empty" style="width: 5%"></div></div> + </td> + <td data-value="95.65" class="pct high">95.65%</td> + <td data-value="23" class="abs high">22/23</td> + <td data-value="94.74" class="pct high">94.74%</td> + <td data-value="19" class="abs high">18/19</td> + <td data-value="50" class="pct medium">50%</td> + <td data-value="2" class="abs medium">1/2</td> + <td data-value="95.65" class="pct high">95.65%</td> + <td data-value="23" class="abs high">22/23</td> + </tr> + +<tr> + <td class="file empty" data-value="types.ts"><a href="types.ts.html">types.ts</a></td> + <td data-value="0" class="pic empty"> + <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div> + </td> + <td data-value="0" class="pct empty">0%</td> + <td data-value="0" class="abs empty">0/0</td> + <td data-value="0" class="pct empty">0%</td> + <td data-value="0" class="abs empty">0/0</td> + <td data-value="0" class="pct empty">0%</td> + <td data-value="0" class="abs empty">0/0</td> + <td data-value="0" class="pct empty">0%</td> + <td data-value="0" class="abs empty">0/0</td> + </tr> + +</tbody> +</table> +</div> + <div class='push'></div><!-- for sticky footer --> + </div><!-- /wrapper --> + <div class='footer quiet pad2 space-top1 center small'> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> + at Mon Nov 25 2024 16:43:41 GMT+0000 (Coordinated Universal Time) + </div> + <script src="../../prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="../../sorter.js"></script> + <script src="../../block-navigation.js"></script> + </body> +</html> + \ No newline at end of file diff --git a/pages/coverage-reports/pages/1732553023031263517/near-membrane-node/src/index.ts.html b/pages/coverage-reports/pages/1732553023031263517/near-membrane-node/src/index.ts.html new file mode 100644 index 00000000..ee49eba5 --- /dev/null +++ b/pages/coverage-reports/pages/1732553023031263517/near-membrane-node/src/index.ts.html @@ -0,0 +1,112 @@ + +<!doctype html> +<html lang="en"> + +<head> + <title>Code coverage report for near-membrane-node/src/index.ts</title> + <meta charset="utf-8" /> + <link rel="stylesheet" href="../../prettify.css" /> + <link rel="stylesheet" href="../../base.css" /> + <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <style type='text/css'> + .coverage-summary .sorter { + background-image: url(../../sort-arrow-sprite.png); + } + </style> +</head> + +<body> +<div class='wrapper'> + <div class='pad1'> + <h1><a href="../../index.html">All files</a> / <a href="index.html">near-membrane-node/src</a> index.ts</h1> + <div class='clearfix'> + + <div class='fl pad1y space-right2'> + <span class="strong">0% </span> + <span class="quiet">Statements</span> + <span class='fraction'>0/0</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">0% </span> + <span class="quiet">Branches</span> + <span class='fraction'>0/0</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">0% </span> + <span class="quiet">Functions</span> + <span class='fraction'>0/0</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">0% </span> + <span class="quiet">Lines</span> + <span class='fraction'>0/0</span> + </div> + + + </div> + <p class="quiet"> + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + </p> + <template id="filterTemplate"> + <div class="quiet"> + Filter: + <input oninput="onInput()" type="search" id="fileSearch"> + </div> + </template> + </div> + <div class='status-line low'></div> + <pre><table class="coverage"> +<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a> +<a name='L2'></a><a href='#L2'>2</a> +<a name='L3'></a><a href='#L3'>3</a> +<a name='L4'></a><a href='#L4'>4</a> +<a name='L5'></a><a href='#L5'>5</a> +<a name='L6'></a><a href='#L6'>6</a> +<a name='L7'></a><a href='#L7'>7</a> +<a name='L8'></a><a href='#L8'>8</a> +<a name='L9'></a><a href='#L9'>9</a> +<a name='L10'></a><a href='#L10'>10</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">// eslint-disable-next-line no-restricted-exports +export { default } from './node-realm'; +export * from './types'; +export type { + Connector, + DistortionCallback, + Instrumentation, + LiveTargetCallback, +} from '@locker/near-membrane-base'; + </pre></td></tr></table></pre> + + <div class='push'></div><!-- for sticky footer --> + </div><!-- /wrapper --> + <div class='footer quiet pad2 space-top1 center small'> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> + at Mon Nov 25 2024 16:43:41 GMT+0000 (Coordinated Universal Time) + </div> + <script src="../../prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="../../sorter.js"></script> + <script src="../../block-navigation.js"></script> + </body> +</html> + \ No newline at end of file diff --git a/pages/coverage-reports/pages/1732553023031263517/near-membrane-node/src/node-realm.ts.html b/pages/coverage-reports/pages/1732553023031263517/near-membrane-node/src/node-realm.ts.html new file mode 100644 index 00000000..3f201ccf --- /dev/null +++ b/pages/coverage-reports/pages/1732553023031263517/near-membrane-node/src/node-realm.ts.html @@ -0,0 +1,334 @@ + +<!doctype html> +<html lang="en"> + +<head> + <title>Code coverage report for near-membrane-node/src/node-realm.ts</title> + <meta charset="utf-8" /> + <link rel="stylesheet" href="../../prettify.css" /> + <link rel="stylesheet" href="../../base.css" /> + <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <style type='text/css'> + .coverage-summary .sorter { + background-image: url(../../sort-arrow-sprite.png); + } + </style> +</head> + +<body> +<div class='wrapper'> + <div class='pad1'> + <h1><a href="../../index.html">All files</a> / <a href="index.html">near-membrane-node/src</a> node-realm.ts</h1> + <div class='clearfix'> + + <div class='fl pad1y space-right2'> + <span class="strong">95.65% </span> + <span class="quiet">Statements</span> + <span class='fraction'>22/23</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">94.74% </span> + <span class="quiet">Branches</span> + <span class='fraction'>18/19</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">50% </span> + <span class="quiet">Functions</span> + <span class='fraction'>1/2</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">95.65% </span> + <span class="quiet">Lines</span> + <span class='fraction'>22/23</span> + </div> + + + </div> + <p class="quiet"> + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + </p> + <template id="filterTemplate"> + <div class="quiet"> + Filter: + <input oninput="onInput()" type="search" id="fileSearch"> + </div> + </template> + </div> + <div class='status-line high'></div> + <pre><table class="coverage"> +<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a> +<a name='L2'></a><a href='#L2'>2</a> +<a name='L3'></a><a href='#L3'>3</a> +<a name='L4'></a><a href='#L4'>4</a> +<a name='L5'></a><a href='#L5'>5</a> +<a name='L6'></a><a href='#L6'>6</a> +<a name='L7'></a><a href='#L7'>7</a> +<a name='L8'></a><a href='#L8'>8</a> +<a name='L9'></a><a href='#L9'>9</a> +<a name='L10'></a><a href='#L10'>10</a> +<a name='L11'></a><a href='#L11'>11</a> +<a name='L12'></a><a href='#L12'>12</a> +<a name='L13'></a><a href='#L13'>13</a> +<a name='L14'></a><a href='#L14'>14</a> +<a name='L15'></a><a href='#L15'>15</a> +<a name='L16'></a><a href='#L16'>16</a> +<a name='L17'></a><a href='#L17'>17</a> +<a name='L18'></a><a href='#L18'>18</a> +<a name='L19'></a><a href='#L19'>19</a> +<a name='L20'></a><a href='#L20'>20</a> +<a name='L21'></a><a href='#L21'>21</a> +<a name='L22'></a><a href='#L22'>22</a> +<a name='L23'></a><a href='#L23'>23</a> +<a name='L24'></a><a href='#L24'>24</a> +<a name='L25'></a><a href='#L25'>25</a> +<a name='L26'></a><a href='#L26'>26</a> +<a name='L27'></a><a href='#L27'>27</a> +<a name='L28'></a><a href='#L28'>28</a> +<a name='L29'></a><a href='#L29'>29</a> +<a name='L30'></a><a href='#L30'>30</a> +<a name='L31'></a><a href='#L31'>31</a> +<a name='L32'></a><a href='#L32'>32</a> +<a name='L33'></a><a href='#L33'>33</a> +<a name='L34'></a><a href='#L34'>34</a> +<a name='L35'></a><a href='#L35'>35</a> +<a name='L36'></a><a href='#L36'>36</a> +<a name='L37'></a><a href='#L37'>37</a> +<a name='L38'></a><a href='#L38'>38</a> +<a name='L39'></a><a href='#L39'>39</a> +<a name='L40'></a><a href='#L40'>40</a> +<a name='L41'></a><a href='#L41'>41</a> +<a name='L42'></a><a href='#L42'>42</a> +<a name='L43'></a><a href='#L43'>43</a> +<a name='L44'></a><a href='#L44'>44</a> +<a name='L45'></a><a href='#L45'>45</a> +<a name='L46'></a><a href='#L46'>46</a> +<a name='L47'></a><a href='#L47'>47</a> +<a name='L48'></a><a href='#L48'>48</a> +<a name='L49'></a><a href='#L49'>49</a> +<a name='L50'></a><a href='#L50'>50</a> +<a name='L51'></a><a href='#L51'>51</a> +<a name='L52'></a><a href='#L52'>52</a> +<a name='L53'></a><a href='#L53'>53</a> +<a name='L54'></a><a href='#L54'>54</a> +<a name='L55'></a><a href='#L55'>55</a> +<a name='L56'></a><a href='#L56'>56</a> +<a name='L57'></a><a href='#L57'>57</a> +<a name='L58'></a><a href='#L58'>58</a> +<a name='L59'></a><a href='#L59'>59</a> +<a name='L60'></a><a href='#L60'>60</a> +<a name='L61'></a><a href='#L61'>61</a> +<a name='L62'></a><a href='#L62'>62</a> +<a name='L63'></a><a href='#L63'>63</a> +<a name='L64'></a><a href='#L64'>64</a> +<a name='L65'></a><a href='#L65'>65</a> +<a name='L66'></a><a href='#L66'>66</a> +<a name='L67'></a><a href='#L67'>67</a> +<a name='L68'></a><a href='#L68'>68</a> +<a name='L69'></a><a href='#L69'>69</a> +<a name='L70'></a><a href='#L70'>70</a> +<a name='L71'></a><a href='#L71'>71</a> +<a name='L72'></a><a href='#L72'>72</a> +<a name='L73'></a><a href='#L73'>73</a> +<a name='L74'></a><a href='#L74'>74</a> +<a name='L75'></a><a href='#L75'>75</a> +<a name='L76'></a><a href='#L76'>76</a> +<a name='L77'></a><a href='#L77'>77</a> +<a name='L78'></a><a href='#L78'>78</a> +<a name='L79'></a><a href='#L79'>79</a> +<a name='L80'></a><a href='#L80'>80</a> +<a name='L81'></a><a href='#L81'>81</a> +<a name='L82'></a><a href='#L82'>82</a> +<a name='L83'></a><a href='#L83'>83</a> +<a name='L84'></a><a href='#L84'>84</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">4x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">4x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">24x</span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">23x</span> +<span class="cline-any cline-yes">23x</span> +<span class="cline-any cline-yes">23x</span> +<span class="cline-any cline-yes">4x</span> +<span class="cline-any cline-yes">4x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">23x</span> +<span class="cline-any cline-yes">23x</span> +<span class="cline-any cline-yes">23x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">23x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">23x</span> +<span class="cline-any cline-yes">23x</span> +<span class="cline-any cline-yes">2x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">23x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">23x</span> +<span class="cline-any cline-yes">15x</span> +<span class="cline-any cline-yes">15x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">15x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">23x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { runInNewContext } from 'node:vm'; +import { + assignFilteredGlobalDescriptorsFromPropertyDescriptorMap, + createBlueConnector, + createRedConnector, + getFilteredGlobalOwnKeys, + linkIntrinsics, + VirtualEnvironment, +} from '@locker/near-membrane-base'; +import { + ObjectAssign, + toSafeWeakMap, + TypeErrorCtor, + WeakMapCtor, +} from '@locker/near-membrane-shared'; +import type { Connector } from '@locker/near-membrane-base'; +import type { NodeEnvironmentOptions } from './types'; + +const blueCreateHooksCallbackCache = toSafeWeakMap(new WeakMapCtor<typeof globalThis, Connector>()); + +let defaultGlobalOwnKeys: PropertyKey[] | null = null; + +export default function createVirtualEnvironment( + globalObject: typeof globalThis, + providedOptions?: NodeEnvironmentOptions +): VirtualEnvironment { + if (typeof globalObject !== 'object' || globalObject === null) { + throw new TypeErrorCtor('Missing global object virtualization target.'); + } + const { + distortionCallback, + endowments, + globalObjectShape, + instrumentation, + liveTargetCallback, + maxPerfMode = false, + signSourceCallback, + } = ObjectAssign({ __proto__: null }, providedOptions) as NodeEnvironmentOptions; + let blueConnector = blueCreateHooksCallbackCache.get(globalObject) as Connector | undefined; + if (blueConnector === undefined) { + blueConnector = createBlueConnector(globalObject); + blueCreateHooksCallbackCache.set(globalObject, blueConnector); + } + const redGlobalObject = runInNewContext('globalThis'); + const { eval: redIndirectEval } = redGlobalObject; + const env = new VirtualEnvironment({ + blueConnector, + redConnector: createRedConnector( + signSourceCallback + ? <span class="fstat-no" title="function not covered" ><span class="branch-0 cbranch-no" title="branch not covered" >(s</span>ourceText: string) => <span class="cstat-no" title="statement not covered" >redIndirectEval(signSourceCallback(sourceText))</span></span> + : redIndirectEval + ), + distortionCallback, + instrumentation, + liveTargetCallback, + signSourceCallback, + }); + linkIntrinsics(env, globalObject); + + const shouldUseDefaultGlobalOwnKeys = + typeof globalObjectShape !== 'object' || globalObjectShape === null; + if (shouldUseDefaultGlobalOwnKeys && defaultGlobalOwnKeys === null) { + defaultGlobalOwnKeys = getFilteredGlobalOwnKeys(redGlobalObject, maxPerfMode); + } + + env.lazyRemapProperties( + globalObject, + shouldUseDefaultGlobalOwnKeys + ? (defaultGlobalOwnKeys as PropertyKey[]) + : getFilteredGlobalOwnKeys(globalObjectShape, maxPerfMode) + ); + + if (endowments) { + const filteredEndowments = {}; + assignFilteredGlobalDescriptorsFromPropertyDescriptorMap( + filteredEndowments, + endowments, + maxPerfMode + ); + env.remapProperties(globalObject, filteredEndowments); + } + return env; +} + </pre></td></tr></table></pre> + + <div class='push'></div><!-- for sticky footer --> + </div><!-- /wrapper --> + <div class='footer quiet pad2 space-top1 center small'> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> + at Mon Nov 25 2024 16:43:41 GMT+0000 (Coordinated Universal Time) + </div> + <script src="../../prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="../../sorter.js"></script> + <script src="../../block-navigation.js"></script> + </body> +</html> + \ No newline at end of file diff --git a/pages/coverage-reports/pages/1732553023031263517/near-membrane-node/src/types.ts.html b/pages/coverage-reports/pages/1732553023031263517/near-membrane-node/src/types.ts.html new file mode 100644 index 00000000..03e99aa4 --- /dev/null +++ b/pages/coverage-reports/pages/1732553023031263517/near-membrane-node/src/types.ts.html @@ -0,0 +1,133 @@ + +<!doctype html> +<html lang="en"> + +<head> + <title>Code coverage report for near-membrane-node/src/types.ts</title> + <meta charset="utf-8" /> + <link rel="stylesheet" href="../../prettify.css" /> + <link rel="stylesheet" href="../../base.css" /> + <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <style type='text/css'> + .coverage-summary .sorter { + background-image: url(../../sort-arrow-sprite.png); + } + </style> +</head> + +<body> +<div class='wrapper'> + <div class='pad1'> + <h1><a href="../../index.html">All files</a> / <a href="index.html">near-membrane-node/src</a> types.ts</h1> + <div class='clearfix'> + + <div class='fl pad1y space-right2'> + <span class="strong">0% </span> + <span class="quiet">Statements</span> + <span class='fraction'>0/0</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">0% </span> + <span class="quiet">Branches</span> + <span class='fraction'>0/0</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">0% </span> + <span class="quiet">Functions</span> + <span class='fraction'>0/0</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">0% </span> + <span class="quiet">Lines</span> + <span class='fraction'>0/0</span> + </div> + + + </div> + <p class="quiet"> + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + </p> + <template id="filterTemplate"> + <div class="quiet"> + Filter: + <input oninput="onInput()" type="search" id="fileSearch"> + </div> + </template> + </div> + <div class='status-line low'></div> + <pre><table class="coverage"> +<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a> +<a name='L2'></a><a href='#L2'>2</a> +<a name='L3'></a><a href='#L3'>3</a> +<a name='L4'></a><a href='#L4'>4</a> +<a name='L5'></a><a href='#L5'>5</a> +<a name='L6'></a><a href='#L6'>6</a> +<a name='L7'></a><a href='#L7'>7</a> +<a name='L8'></a><a href='#L8'>8</a> +<a name='L9'></a><a href='#L9'>9</a> +<a name='L10'></a><a href='#L10'>10</a> +<a name='L11'></a><a href='#L11'>11</a> +<a name='L12'></a><a href='#L12'>12</a> +<a name='L13'></a><a href='#L13'>13</a> +<a name='L14'></a><a href='#L14'>14</a> +<a name='L15'></a><a href='#L15'>15</a> +<a name='L16'></a><a href='#L16'>16</a> +<a name='L17'></a><a href='#L17'>17</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import type { + DistortionCallback, + Instrumentation, + LiveTargetCallback, + SignSourceCallback, +} from '@locker/near-membrane-base'; + +export interface NodeEnvironmentOptions { + distortionCallback?: DistortionCallback; + endowments?: PropertyDescriptorMap; + globalObjectShape?: object; + instrumentation?: Instrumentation; + liveTargetCallback?: LiveTargetCallback; + maxPerfMode?: boolean; + signSourceCallback?: SignSourceCallback; +} + </pre></td></tr></table></pre> + + <div class='push'></div><!-- for sticky footer --> + </div><!-- /wrapper --> + <div class='footer quiet pad2 space-top1 center small'> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> + at Mon Nov 25 2024 16:43:41 GMT+0000 (Coordinated Universal Time) + </div> + <script src="../../prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="../../sorter.js"></script> + <script src="../../block-navigation.js"></script> + </body> +</html> + \ No newline at end of file diff --git a/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared-dom/dist/index.html b/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared-dom/dist/index.html new file mode 100644 index 00000000..6b53405d --- /dev/null +++ b/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared-dom/dist/index.html @@ -0,0 +1,116 @@ + +<!doctype html> +<html lang="en"> + +<head> + <title>Code coverage report for near-membrane-shared-dom/dist</title> + <meta charset="utf-8" /> + <link rel="stylesheet" href="../../prettify.css" /> + <link rel="stylesheet" href="../../base.css" /> + <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <style type='text/css'> + .coverage-summary .sorter { + background-image: url(../../sort-arrow-sprite.png); + } + </style> +</head> + +<body> +<div class='wrapper'> + <div class='pad1'> + <h1><a href="../../index.html">All files</a> near-membrane-shared-dom/dist</h1> + <div class='clearfix'> + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Statements</span> + <span class='fraction'>21/21</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">77.78% </span> + <span class="quiet">Branches</span> + <span class='fraction'>7/9</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Functions</span> + <span class='fraction'>2/2</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Lines</span> + <span class='fraction'>21/21</span> + </div> + + + </div> + <p class="quiet"> + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + </p> + <template id="filterTemplate"> + <div class="quiet"> + Filter: + <input oninput="onInput()" type="search" id="fileSearch"> + </div> + </template> + </div> + <div class='status-line high'></div> + <div class="pad1"> +<table class="coverage-summary"> +<thead> +<tr> + <th data-col="file" data-fmt="html" data-html="true" class="file">File</th> + <th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th> + <th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th> + <th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th> + <th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th> + <th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th> + <th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th> + <th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th> + <th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th> + <th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th> +</tr> +</thead> +<tbody><tr> + <td class="file high" data-value="index.mjs.js"><a href="index.mjs.js.html">index.mjs.js</a></td> + <td data-value="100" class="pic high"> + <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div> + </td> + <td data-value="100" class="pct high">100%</td> + <td data-value="21" class="abs high">21/21</td> + <td data-value="77.78" class="pct medium">77.78%</td> + <td data-value="9" class="abs medium">7/9</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="2" class="abs high">2/2</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="21" class="abs high">21/21</td> + </tr> + +</tbody> +</table> +</div> + <div class='push'></div><!-- for sticky footer --> + </div><!-- /wrapper --> + <div class='footer quiet pad2 space-top1 center small'> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> + at Mon Nov 25 2024 16:43:41 GMT+0000 (Coordinated Universal Time) + </div> + <script src="../../prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="../../sorter.js"></script> + <script src="../../block-navigation.js"></script> + </body> +</html> + \ No newline at end of file diff --git a/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared-dom/dist/index.mjs.js.html b/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared-dom/dist/index.mjs.js.html new file mode 100644 index 00000000..ae006c0b --- /dev/null +++ b/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared-dom/dist/index.mjs.js.html @@ -0,0 +1,304 @@ + +<!doctype html> +<html lang="en"> + +<head> + <title>Code coverage report for near-membrane-shared-dom/dist/index.mjs.js</title> + <meta charset="utf-8" /> + <link rel="stylesheet" href="../../prettify.css" /> + <link rel="stylesheet" href="../../base.css" /> + <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <style type='text/css'> + .coverage-summary .sorter { + background-image: url(../../sort-arrow-sprite.png); + } + </style> +</head> + +<body> +<div class='wrapper'> + <div class='pad1'> + <h1><a href="../../index.html">All files</a> / <a href="index.html">near-membrane-shared-dom/dist</a> index.mjs.js</h1> + <div class='clearfix'> + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Statements</span> + <span class='fraction'>21/21</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">77.78% </span> + <span class="quiet">Branches</span> + <span class='fraction'>7/9</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Functions</span> + <span class='fraction'>2/2</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Lines</span> + <span class='fraction'>21/21</span> + </div> + + + </div> + <p class="quiet"> + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + </p> + <template id="filterTemplate"> + <div class="quiet"> + Filter: + <input oninput="onInput()" type="search" id="fileSearch"> + </div> + </template> + </div> + <div class='status-line high'></div> + <pre><table class="coverage"> +<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a> +<a name='L2'></a><a href='#L2'>2</a> +<a name='L3'></a><a href='#L3'>3</a> +<a name='L4'></a><a href='#L4'>4</a> +<a name='L5'></a><a href='#L5'>5</a> +<a name='L6'></a><a href='#L6'>6</a> +<a name='L7'></a><a href='#L7'>7</a> +<a name='L8'></a><a href='#L8'>8</a> +<a name='L9'></a><a href='#L9'>9</a> +<a name='L10'></a><a href='#L10'>10</a> +<a name='L11'></a><a href='#L11'>11</a> +<a name='L12'></a><a href='#L12'>12</a> +<a name='L13'></a><a href='#L13'>13</a> +<a name='L14'></a><a href='#L14'>14</a> +<a name='L15'></a><a href='#L15'>15</a> +<a name='L16'></a><a href='#L16'>16</a> +<a name='L17'></a><a href='#L17'>17</a> +<a name='L18'></a><a href='#L18'>18</a> +<a name='L19'></a><a href='#L19'>19</a> +<a name='L20'></a><a href='#L20'>20</a> +<a name='L21'></a><a href='#L21'>21</a> +<a name='L22'></a><a href='#L22'>22</a> +<a name='L23'></a><a href='#L23'>23</a> +<a name='L24'></a><a href='#L24'>24</a> +<a name='L25'></a><a href='#L25'>25</a> +<a name='L26'></a><a href='#L26'>26</a> +<a name='L27'></a><a href='#L27'>27</a> +<a name='L28'></a><a href='#L28'>28</a> +<a name='L29'></a><a href='#L29'>29</a> +<a name='L30'></a><a href='#L30'>30</a> +<a name='L31'></a><a href='#L31'>31</a> +<a name='L32'></a><a href='#L32'>32</a> +<a name='L33'></a><a href='#L33'>33</a> +<a name='L34'></a><a href='#L34'>34</a> +<a name='L35'></a><a href='#L35'>35</a> +<a name='L36'></a><a href='#L36'>36</a> +<a name='L37'></a><a href='#L37'>37</a> +<a name='L38'></a><a href='#L38'>38</a> +<a name='L39'></a><a href='#L39'>39</a> +<a name='L40'></a><a href='#L40'>40</a> +<a name='L41'></a><a href='#L41'>41</a> +<a name='L42'></a><a href='#L42'>42</a> +<a name='L43'></a><a href='#L43'>43</a> +<a name='L44'></a><a href='#L44'>44</a> +<a name='L45'></a><a href='#L45'>45</a> +<a name='L46'></a><a href='#L46'>46</a> +<a name='L47'></a><a href='#L47'>47</a> +<a name='L48'></a><a href='#L48'>48</a> +<a name='L49'></a><a href='#L49'>49</a> +<a name='L50'></a><a href='#L50'>50</a> +<a name='L51'></a><a href='#L51'>51</a> +<a name='L52'></a><a href='#L52'>52</a> +<a name='L53'></a><a href='#L53'>53</a> +<a name='L54'></a><a href='#L54'>54</a> +<a name='L55'></a><a href='#L55'>55</a> +<a name='L56'></a><a href='#L56'>56</a> +<a name='L57'></a><a href='#L57'>57</a> +<a name='L58'></a><a href='#L58'>58</a> +<a name='L59'></a><a href='#L59'>59</a> +<a name='L60'></a><a href='#L60'>60</a> +<a name='L61'></a><a href='#L61'>61</a> +<a name='L62'></a><a href='#L62'>62</a> +<a name='L63'></a><a href='#L63'>63</a> +<a name='L64'></a><a href='#L64'>64</a> +<a name='L65'></a><a href='#L65'>65</a> +<a name='L66'></a><a href='#L66'>66</a> +<a name='L67'></a><a href='#L67'>67</a> +<a name='L68'></a><a href='#L68'>68</a> +<a name='L69'></a><a href='#L69'>69</a> +<a name='L70'></a><a href='#L70'>70</a> +<a name='L71'></a><a href='#L71'>71</a> +<a name='L72'></a><a href='#L72'>72</a> +<a name='L73'></a><a href='#L73'>73</a> +<a name='L74'></a><a href='#L74'>74</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">44x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">44x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">44x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">7x</span> +<span class="cline-any cline-yes">7x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">7x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">44x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">111x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">44x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">44x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">44x</span> +<span class="cline-any cline-yes">44x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">44x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">44x</span> +<span class="cline-any cline-yes">44x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">44x</span> +<span class="cline-any cline-yes">44x</span> +<span class="cline-any cline-yes">44x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">44x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">44x</span> +<span class="cline-any cline-yes">44x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { ArrayIsArray, ReflectApply, ArrayProtoFind, RegExpProtoTest, ObjectLookupOwnGetter } from '@locker/near-membrane-shared'; +const rootWindow = window; +const { + // We don't cherry-pick the 'userAgent' property from `navigator` here + // to avoid triggering its getter. + navigator, + navigator: { + userAgentData + } +} = rootWindow; +// The user-agent client hints API is experimental and subject to change. +// https://caniuse.com/mdn-api_navigator_useragentdata +// istanbul ignore next: optional chaining and nullish coalescing results in an expansion that contains an unreachable "void 0" branch for every occurrence of the operator +const brands = userAgentData == null ? void 0 : userAgentData.brands; +// Note: Chromium identifies itself as Chrome in its user-agent string. +// https://developer.mozilla.org/en-US/docs/Web/HTTP/Browser_detection_using_the_user_agent +const chromiumUserAgentRegExp = / (?:Headless)?Chrome\/\d+/; +let userAgent; +function getUserAgent() { + if (userAgent === undefined) { + userAgent = navigator.userAgent; + } + return userAgent; +} +const IS_CHROMIUM_BROWSER = +// While experimental, `navigator.userAgentData.brands` may be defined as an +// empty array in headless Chromium based browsers. +ArrayIsArray(brands) && brands.length ? +// Use user-agent client hints API if available to avoid deprecation +// warnings. +// https://developer.mozilla.org/en-US/docs/Web/API/User-Agent_Client_Hints_API +// istanbul ignore next: this code is not reachable in the coverage run. +ReflectApply(ArrayProtoFind, brands, [ +// prettier-ignore +item => (item == null ? <span class="branch-0 cbranch-no" title="branch not covered" >void 0 </span>: item.brand) === 'Chromium']) !== undefined : +// Fallback to a standard user-agent string sniff. +ReflectApply(RegExpProtoTest, chromiumUserAgentRegExp, [getUserAgent()]); +const IS_OLD_CHROMIUM_BROWSER = IS_CHROMIUM_BROWSER && +// Chromium added support for `navigator.userAgentData` in v90. +// https://caniuse.com/mdn-api_navigator_useragentdata +userAgentData === undefined; +const { + prototype: DocumentProto +} = Document; +const { + close: DocumentProtoClose, + createElement: DocumentProtoCreateElement, + open: DocumentProtoOpen +} = DocumentProto; +const DocumentProtoBodyGetter = ObjectLookupOwnGetter(DocumentProto, 'body'); + +// The DOMException constructor was exposed in Edge 12 but wasn't invocable +// until Edge 79. As long as this is used for instanceof checks it should be fine. +// https://developer.mozilla.org/en-US/docs/Web/API/DOMException#browser_compatibility +const DOMExceptionCtor = DOMException; +const { + DATA_CLONE_ERR: DATA_CLONE_ERROR_CODE +} = DOMExceptionCtor; +const DOMExceptionProtoCodeGetter = ObjectLookupOwnGetter(DOMExceptionCtor.prototype, 'code'); +const { + remove: ElementProtoRemove, + setAttribute: ElementProtoSetAttribute +} = Element.prototype; +const HTMLElementProtoStyleGetter = ObjectLookupOwnGetter(HTMLElement.prototype, 'style'); +const HTMLIFrameElementProtoContentWindowGetter = ObjectLookupOwnGetter(HTMLIFrameElement.prototype, 'contentWindow'); +const { + prototype: NodeProto +} = Node; +const { + appendChild: NodeProtoAppendChild +} = NodeProto; +const NodeProtoLastChildGetter = ObjectLookupOwnGetter(NodeProto, 'lastChild'); +export { DATA_CLONE_ERROR_CODE, DOMExceptionCtor, DOMExceptionProtoCodeGetter, DocumentProtoBodyGetter, DocumentProtoClose, DocumentProtoCreateElement, DocumentProtoOpen, ElementProtoRemove, ElementProtoSetAttribute, HTMLElementProtoStyleGetter, HTMLIFrameElementProtoContentWindowGetter, IS_CHROMIUM_BROWSER, IS_OLD_CHROMIUM_BROWSER, NodeProtoAppendChild, NodeProtoLastChildGetter, rootWindow }; + </pre></td></tr></table></pre> + + <div class='push'></div><!-- for sticky footer --> + </div><!-- /wrapper --> + <div class='footer quiet pad2 space-top1 center small'> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> + at Mon Nov 25 2024 16:43:41 GMT+0000 (Coordinated Universal Time) + </div> + <script src="../../prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="../../sorter.js"></script> + <script src="../../block-navigation.js"></script> + </body> +</html> + \ No newline at end of file diff --git a/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/dist/index.html b/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/dist/index.html new file mode 100644 index 00000000..e7808c11 --- /dev/null +++ b/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/dist/index.html @@ -0,0 +1,116 @@ + +<!doctype html> +<html lang="en"> + +<head> + <title>Code coverage report for near-membrane-shared/dist</title> + <meta charset="utf-8" /> + <link rel="stylesheet" href="../../prettify.css" /> + <link rel="stylesheet" href="../../base.css" /> + <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <style type='text/css'> + .coverage-summary .sorter { + background-image: url(../../sort-arrow-sprite.png); + } + </style> +</head> + +<body> +<div class='wrapper'> + <div class='pad1'> + <h1><a href="../../index.html">All files</a> near-membrane-shared/dist</h1> + <div class='clearfix'> + + <div class='fl pad1y space-right2'> + <span class="strong">96.71% </span> + <span class="quiet">Statements</span> + <span class='fraction'>294/304</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">72.64% </span> + <span class="quiet">Branches</span> + <span class='fraction'>77/106</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">92% </span> + <span class="quiet">Functions</span> + <span class='fraction'>23/25</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">96.69% </span> + <span class="quiet">Lines</span> + <span class='fraction'>292/302</span> + </div> + + + </div> + <p class="quiet"> + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + </p> + <template id="filterTemplate"> + <div class="quiet"> + Filter: + <input oninput="onInput()" type="search" id="fileSearch"> + </div> + </template> + </div> + <div class='status-line high'></div> + <div class="pad1"> +<table class="coverage-summary"> +<thead> +<tr> + <th data-col="file" data-fmt="html" data-html="true" class="file">File</th> + <th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th> + <th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th> + <th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th> + <th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th> + <th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th> + <th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th> + <th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th> + <th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th> + <th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th> +</tr> +</thead> +<tbody><tr> + <td class="file high" data-value="index.mjs.js"><a href="index.mjs.js.html">index.mjs.js</a></td> + <td data-value="96.71" class="pic high"> + <div class="chart"><div class="cover-fill" style="width: 96%"></div><div class="cover-empty" style="width: 4%"></div></div> + </td> + <td data-value="96.71" class="pct high">96.71%</td> + <td data-value="304" class="abs high">294/304</td> + <td data-value="72.64" class="pct medium">72.64%</td> + <td data-value="106" class="abs medium">77/106</td> + <td data-value="92" class="pct high">92%</td> + <td data-value="25" class="abs high">23/25</td> + <td data-value="96.69" class="pct high">96.69%</td> + <td data-value="302" class="abs high">292/302</td> + </tr> + +</tbody> +</table> +</div> + <div class='push'></div><!-- for sticky footer --> + </div><!-- /wrapper --> + <div class='footer quiet pad2 space-top1 center small'> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> + at Mon Nov 25 2024 16:43:41 GMT+0000 (Coordinated Universal Time) + </div> + <script src="../../prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="../../sorter.js"></script> + <script src="../../block-navigation.js"></script> + </body> +</html> + \ No newline at end of file diff --git a/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/dist/index.mjs.js.html b/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/dist/index.mjs.js.html new file mode 100644 index 00000000..28bec7ad --- /dev/null +++ b/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/dist/index.mjs.js.html @@ -0,0 +1,2548 @@ + +<!doctype html> +<html lang="en"> + +<head> + <title>Code coverage report for near-membrane-shared/dist/index.mjs.js</title> + <meta charset="utf-8" /> + <link rel="stylesheet" href="../../prettify.css" /> + <link rel="stylesheet" href="../../base.css" /> + <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <style type='text/css'> + .coverage-summary .sorter { + background-image: url(../../sort-arrow-sprite.png); + } + </style> +</head> + +<body> +<div class='wrapper'> + <div class='pad1'> + <h1><a href="../../index.html">All files</a> / <a href="index.html">near-membrane-shared/dist</a> index.mjs.js</h1> + <div class='clearfix'> + + <div class='fl pad1y space-right2'> + <span class="strong">96.71% </span> + <span class="quiet">Statements</span> + <span class='fraction'>294/304</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">72.64% </span> + <span class="quiet">Branches</span> + <span class='fraction'>77/106</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">92% </span> + <span class="quiet">Functions</span> + <span class='fraction'>23/25</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">96.69% </span> + <span class="quiet">Lines</span> + <span class='fraction'>292/302</span> + </div> + + + </div> + <p class="quiet"> + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + </p> + <template id="filterTemplate"> + <div class="quiet"> + Filter: + <input oninput="onInput()" type="search" id="fileSearch"> + </div> + </template> + </div> + <div class='status-line high'></div> + <pre><table class="coverage"> +<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a> +<a name='L2'></a><a href='#L2'>2</a> +<a name='L3'></a><a href='#L3'>3</a> +<a name='L4'></a><a href='#L4'>4</a> +<a name='L5'></a><a href='#L5'>5</a> +<a name='L6'></a><a href='#L6'>6</a> +<a name='L7'></a><a href='#L7'>7</a> +<a name='L8'></a><a href='#L8'>8</a> +<a name='L9'></a><a href='#L9'>9</a> +<a name='L10'></a><a href='#L10'>10</a> +<a name='L11'></a><a href='#L11'>11</a> +<a name='L12'></a><a href='#L12'>12</a> +<a name='L13'></a><a href='#L13'>13</a> +<a name='L14'></a><a href='#L14'>14</a> +<a name='L15'></a><a href='#L15'>15</a> +<a name='L16'></a><a href='#L16'>16</a> +<a name='L17'></a><a href='#L17'>17</a> +<a name='L18'></a><a href='#L18'>18</a> +<a name='L19'></a><a href='#L19'>19</a> +<a name='L20'></a><a href='#L20'>20</a> +<a name='L21'></a><a href='#L21'>21</a> +<a name='L22'></a><a href='#L22'>22</a> +<a name='L23'></a><a href='#L23'>23</a> +<a name='L24'></a><a href='#L24'>24</a> +<a name='L25'></a><a href='#L25'>25</a> +<a name='L26'></a><a href='#L26'>26</a> +<a name='L27'></a><a href='#L27'>27</a> +<a name='L28'></a><a href='#L28'>28</a> +<a name='L29'></a><a href='#L29'>29</a> +<a name='L30'></a><a href='#L30'>30</a> +<a name='L31'></a><a href='#L31'>31</a> +<a name='L32'></a><a href='#L32'>32</a> +<a name='L33'></a><a href='#L33'>33</a> +<a name='L34'></a><a href='#L34'>34</a> +<a name='L35'></a><a href='#L35'>35</a> +<a name='L36'></a><a href='#L36'>36</a> +<a name='L37'></a><a href='#L37'>37</a> +<a name='L38'></a><a href='#L38'>38</a> +<a name='L39'></a><a href='#L39'>39</a> +<a name='L40'></a><a href='#L40'>40</a> +<a name='L41'></a><a href='#L41'>41</a> +<a name='L42'></a><a href='#L42'>42</a> +<a name='L43'></a><a href='#L43'>43</a> +<a name='L44'></a><a href='#L44'>44</a> +<a name='L45'></a><a href='#L45'>45</a> +<a name='L46'></a><a href='#L46'>46</a> +<a name='L47'></a><a href='#L47'>47</a> +<a name='L48'></a><a href='#L48'>48</a> +<a name='L49'></a><a href='#L49'>49</a> +<a name='L50'></a><a href='#L50'>50</a> +<a name='L51'></a><a href='#L51'>51</a> +<a name='L52'></a><a href='#L52'>52</a> +<a name='L53'></a><a href='#L53'>53</a> +<a name='L54'></a><a href='#L54'>54</a> +<a name='L55'></a><a href='#L55'>55</a> +<a name='L56'></a><a href='#L56'>56</a> +<a name='L57'></a><a href='#L57'>57</a> +<a name='L58'></a><a href='#L58'>58</a> +<a name='L59'></a><a href='#L59'>59</a> +<a name='L60'></a><a href='#L60'>60</a> +<a name='L61'></a><a href='#L61'>61</a> +<a name='L62'></a><a href='#L62'>62</a> +<a name='L63'></a><a href='#L63'>63</a> +<a name='L64'></a><a href='#L64'>64</a> +<a name='L65'></a><a href='#L65'>65</a> +<a name='L66'></a><a href='#L66'>66</a> +<a name='L67'></a><a href='#L67'>67</a> +<a name='L68'></a><a href='#L68'>68</a> +<a name='L69'></a><a href='#L69'>69</a> +<a name='L70'></a><a href='#L70'>70</a> +<a name='L71'></a><a href='#L71'>71</a> +<a name='L72'></a><a href='#L72'>72</a> +<a name='L73'></a><a href='#L73'>73</a> +<a name='L74'></a><a href='#L74'>74</a> +<a name='L75'></a><a href='#L75'>75</a> +<a name='L76'></a><a href='#L76'>76</a> +<a name='L77'></a><a href='#L77'>77</a> +<a name='L78'></a><a href='#L78'>78</a> +<a name='L79'></a><a href='#L79'>79</a> +<a name='L80'></a><a href='#L80'>80</a> +<a name='L81'></a><a href='#L81'>81</a> +<a name='L82'></a><a href='#L82'>82</a> +<a name='L83'></a><a href='#L83'>83</a> +<a name='L84'></a><a href='#L84'>84</a> +<a name='L85'></a><a href='#L85'>85</a> +<a name='L86'></a><a href='#L86'>86</a> +<a name='L87'></a><a href='#L87'>87</a> +<a name='L88'></a><a href='#L88'>88</a> +<a name='L89'></a><a href='#L89'>89</a> +<a name='L90'></a><a href='#L90'>90</a> +<a name='L91'></a><a href='#L91'>91</a> +<a name='L92'></a><a href='#L92'>92</a> +<a name='L93'></a><a href='#L93'>93</a> +<a name='L94'></a><a href='#L94'>94</a> +<a name='L95'></a><a href='#L95'>95</a> +<a name='L96'></a><a href='#L96'>96</a> +<a name='L97'></a><a href='#L97'>97</a> +<a name='L98'></a><a href='#L98'>98</a> +<a name='L99'></a><a href='#L99'>99</a> +<a name='L100'></a><a href='#L100'>100</a> +<a name='L101'></a><a href='#L101'>101</a> +<a name='L102'></a><a href='#L102'>102</a> +<a name='L103'></a><a href='#L103'>103</a> +<a name='L104'></a><a href='#L104'>104</a> +<a name='L105'></a><a href='#L105'>105</a> +<a name='L106'></a><a href='#L106'>106</a> +<a name='L107'></a><a href='#L107'>107</a> +<a name='L108'></a><a href='#L108'>108</a> +<a name='L109'></a><a href='#L109'>109</a> +<a name='L110'></a><a href='#L110'>110</a> +<a name='L111'></a><a href='#L111'>111</a> +<a name='L112'></a><a href='#L112'>112</a> +<a name='L113'></a><a href='#L113'>113</a> +<a name='L114'></a><a href='#L114'>114</a> +<a name='L115'></a><a href='#L115'>115</a> +<a name='L116'></a><a href='#L116'>116</a> +<a name='L117'></a><a href='#L117'>117</a> +<a name='L118'></a><a href='#L118'>118</a> +<a name='L119'></a><a href='#L119'>119</a> +<a name='L120'></a><a href='#L120'>120</a> +<a name='L121'></a><a href='#L121'>121</a> +<a name='L122'></a><a href='#L122'>122</a> +<a name='L123'></a><a href='#L123'>123</a> +<a name='L124'></a><a href='#L124'>124</a> +<a name='L125'></a><a href='#L125'>125</a> +<a name='L126'></a><a href='#L126'>126</a> +<a name='L127'></a><a href='#L127'>127</a> +<a name='L128'></a><a href='#L128'>128</a> +<a name='L129'></a><a href='#L129'>129</a> +<a name='L130'></a><a href='#L130'>130</a> +<a name='L131'></a><a href='#L131'>131</a> +<a name='L132'></a><a href='#L132'>132</a> +<a name='L133'></a><a href='#L133'>133</a> +<a name='L134'></a><a href='#L134'>134</a> +<a name='L135'></a><a href='#L135'>135</a> +<a name='L136'></a><a href='#L136'>136</a> +<a name='L137'></a><a href='#L137'>137</a> +<a name='L138'></a><a href='#L138'>138</a> +<a name='L139'></a><a href='#L139'>139</a> +<a name='L140'></a><a href='#L140'>140</a> +<a name='L141'></a><a href='#L141'>141</a> +<a name='L142'></a><a href='#L142'>142</a> +<a name='L143'></a><a href='#L143'>143</a> +<a name='L144'></a><a href='#L144'>144</a> +<a name='L145'></a><a href='#L145'>145</a> +<a name='L146'></a><a href='#L146'>146</a> +<a name='L147'></a><a href='#L147'>147</a> +<a name='L148'></a><a href='#L148'>148</a> +<a name='L149'></a><a href='#L149'>149</a> +<a name='L150'></a><a href='#L150'>150</a> +<a name='L151'></a><a href='#L151'>151</a> +<a name='L152'></a><a href='#L152'>152</a> +<a name='L153'></a><a href='#L153'>153</a> +<a name='L154'></a><a href='#L154'>154</a> +<a name='L155'></a><a href='#L155'>155</a> +<a name='L156'></a><a href='#L156'>156</a> +<a name='L157'></a><a href='#L157'>157</a> +<a name='L158'></a><a href='#L158'>158</a> +<a name='L159'></a><a href='#L159'>159</a> +<a name='L160'></a><a href='#L160'>160</a> +<a name='L161'></a><a href='#L161'>161</a> +<a name='L162'></a><a href='#L162'>162</a> +<a name='L163'></a><a href='#L163'>163</a> +<a name='L164'></a><a href='#L164'>164</a> +<a name='L165'></a><a href='#L165'>165</a> +<a name='L166'></a><a href='#L166'>166</a> +<a name='L167'></a><a href='#L167'>167</a> +<a name='L168'></a><a href='#L168'>168</a> +<a name='L169'></a><a href='#L169'>169</a> +<a name='L170'></a><a href='#L170'>170</a> +<a name='L171'></a><a href='#L171'>171</a> +<a name='L172'></a><a href='#L172'>172</a> +<a name='L173'></a><a href='#L173'>173</a> +<a name='L174'></a><a href='#L174'>174</a> +<a name='L175'></a><a href='#L175'>175</a> +<a name='L176'></a><a href='#L176'>176</a> +<a name='L177'></a><a href='#L177'>177</a> +<a name='L178'></a><a href='#L178'>178</a> +<a name='L179'></a><a href='#L179'>179</a> +<a name='L180'></a><a href='#L180'>180</a> +<a name='L181'></a><a href='#L181'>181</a> +<a name='L182'></a><a href='#L182'>182</a> +<a name='L183'></a><a href='#L183'>183</a> +<a name='L184'></a><a href='#L184'>184</a> +<a name='L185'></a><a href='#L185'>185</a> +<a name='L186'></a><a href='#L186'>186</a> +<a name='L187'></a><a href='#L187'>187</a> +<a name='L188'></a><a href='#L188'>188</a> +<a name='L189'></a><a href='#L189'>189</a> +<a name='L190'></a><a href='#L190'>190</a> +<a name='L191'></a><a href='#L191'>191</a> +<a name='L192'></a><a href='#L192'>192</a> +<a name='L193'></a><a href='#L193'>193</a> +<a name='L194'></a><a href='#L194'>194</a> +<a name='L195'></a><a href='#L195'>195</a> +<a name='L196'></a><a href='#L196'>196</a> +<a name='L197'></a><a href='#L197'>197</a> +<a name='L198'></a><a href='#L198'>198</a> +<a name='L199'></a><a href='#L199'>199</a> +<a name='L200'></a><a href='#L200'>200</a> +<a name='L201'></a><a href='#L201'>201</a> +<a name='L202'></a><a href='#L202'>202</a> +<a name='L203'></a><a href='#L203'>203</a> +<a name='L204'></a><a href='#L204'>204</a> +<a name='L205'></a><a href='#L205'>205</a> +<a name='L206'></a><a href='#L206'>206</a> +<a name='L207'></a><a href='#L207'>207</a> +<a name='L208'></a><a href='#L208'>208</a> +<a name='L209'></a><a href='#L209'>209</a> +<a name='L210'></a><a href='#L210'>210</a> +<a name='L211'></a><a href='#L211'>211</a> +<a name='L212'></a><a href='#L212'>212</a> +<a name='L213'></a><a href='#L213'>213</a> +<a name='L214'></a><a href='#L214'>214</a> +<a name='L215'></a><a href='#L215'>215</a> +<a name='L216'></a><a href='#L216'>216</a> +<a name='L217'></a><a href='#L217'>217</a> +<a name='L218'></a><a href='#L218'>218</a> +<a name='L219'></a><a href='#L219'>219</a> +<a name='L220'></a><a href='#L220'>220</a> +<a name='L221'></a><a href='#L221'>221</a> +<a name='L222'></a><a href='#L222'>222</a> +<a name='L223'></a><a href='#L223'>223</a> +<a name='L224'></a><a href='#L224'>224</a> +<a name='L225'></a><a href='#L225'>225</a> +<a name='L226'></a><a href='#L226'>226</a> +<a name='L227'></a><a href='#L227'>227</a> +<a name='L228'></a><a href='#L228'>228</a> +<a name='L229'></a><a href='#L229'>229</a> +<a name='L230'></a><a href='#L230'>230</a> +<a name='L231'></a><a href='#L231'>231</a> +<a name='L232'></a><a href='#L232'>232</a> +<a name='L233'></a><a href='#L233'>233</a> +<a name='L234'></a><a href='#L234'>234</a> +<a name='L235'></a><a href='#L235'>235</a> +<a name='L236'></a><a href='#L236'>236</a> +<a name='L237'></a><a href='#L237'>237</a> +<a name='L238'></a><a href='#L238'>238</a> +<a name='L239'></a><a href='#L239'>239</a> +<a name='L240'></a><a href='#L240'>240</a> +<a name='L241'></a><a href='#L241'>241</a> +<a name='L242'></a><a href='#L242'>242</a> +<a name='L243'></a><a href='#L243'>243</a> +<a name='L244'></a><a href='#L244'>244</a> +<a name='L245'></a><a href='#L245'>245</a> +<a name='L246'></a><a href='#L246'>246</a> +<a name='L247'></a><a href='#L247'>247</a> +<a name='L248'></a><a href='#L248'>248</a> +<a name='L249'></a><a href='#L249'>249</a> +<a name='L250'></a><a href='#L250'>250</a> +<a name='L251'></a><a href='#L251'>251</a> +<a name='L252'></a><a href='#L252'>252</a> +<a name='L253'></a><a href='#L253'>253</a> +<a name='L254'></a><a href='#L254'>254</a> +<a name='L255'></a><a href='#L255'>255</a> +<a name='L256'></a><a href='#L256'>256</a> +<a name='L257'></a><a href='#L257'>257</a> +<a name='L258'></a><a href='#L258'>258</a> +<a name='L259'></a><a href='#L259'>259</a> +<a name='L260'></a><a href='#L260'>260</a> +<a name='L261'></a><a href='#L261'>261</a> +<a name='L262'></a><a href='#L262'>262</a> +<a name='L263'></a><a href='#L263'>263</a> +<a name='L264'></a><a href='#L264'>264</a> +<a name='L265'></a><a href='#L265'>265</a> +<a name='L266'></a><a href='#L266'>266</a> +<a name='L267'></a><a href='#L267'>267</a> +<a name='L268'></a><a href='#L268'>268</a> +<a name='L269'></a><a href='#L269'>269</a> +<a name='L270'></a><a href='#L270'>270</a> +<a name='L271'></a><a href='#L271'>271</a> +<a name='L272'></a><a href='#L272'>272</a> +<a name='L273'></a><a href='#L273'>273</a> +<a name='L274'></a><a href='#L274'>274</a> +<a name='L275'></a><a href='#L275'>275</a> +<a name='L276'></a><a href='#L276'>276</a> +<a name='L277'></a><a href='#L277'>277</a> +<a name='L278'></a><a href='#L278'>278</a> +<a name='L279'></a><a href='#L279'>279</a> +<a name='L280'></a><a href='#L280'>280</a> +<a name='L281'></a><a href='#L281'>281</a> +<a name='L282'></a><a href='#L282'>282</a> +<a name='L283'></a><a href='#L283'>283</a> +<a name='L284'></a><a href='#L284'>284</a> +<a name='L285'></a><a href='#L285'>285</a> +<a name='L286'></a><a href='#L286'>286</a> +<a name='L287'></a><a href='#L287'>287</a> +<a name='L288'></a><a href='#L288'>288</a> +<a name='L289'></a><a href='#L289'>289</a> +<a name='L290'></a><a href='#L290'>290</a> +<a name='L291'></a><a href='#L291'>291</a> +<a name='L292'></a><a href='#L292'>292</a> +<a name='L293'></a><a href='#L293'>293</a> +<a name='L294'></a><a href='#L294'>294</a> +<a name='L295'></a><a href='#L295'>295</a> +<a name='L296'></a><a href='#L296'>296</a> +<a name='L297'></a><a href='#L297'>297</a> +<a name='L298'></a><a href='#L298'>298</a> +<a name='L299'></a><a href='#L299'>299</a> +<a name='L300'></a><a href='#L300'>300</a> +<a name='L301'></a><a href='#L301'>301</a> +<a name='L302'></a><a href='#L302'>302</a> +<a name='L303'></a><a href='#L303'>303</a> +<a name='L304'></a><a href='#L304'>304</a> +<a name='L305'></a><a href='#L305'>305</a> +<a name='L306'></a><a href='#L306'>306</a> +<a name='L307'></a><a href='#L307'>307</a> +<a name='L308'></a><a href='#L308'>308</a> +<a name='L309'></a><a href='#L309'>309</a> +<a name='L310'></a><a href='#L310'>310</a> +<a name='L311'></a><a href='#L311'>311</a> +<a name='L312'></a><a href='#L312'>312</a> +<a name='L313'></a><a href='#L313'>313</a> +<a name='L314'></a><a href='#L314'>314</a> +<a name='L315'></a><a href='#L315'>315</a> +<a name='L316'></a><a href='#L316'>316</a> +<a name='L317'></a><a href='#L317'>317</a> +<a name='L318'></a><a href='#L318'>318</a> +<a name='L319'></a><a href='#L319'>319</a> +<a name='L320'></a><a href='#L320'>320</a> +<a name='L321'></a><a href='#L321'>321</a> +<a name='L322'></a><a href='#L322'>322</a> +<a name='L323'></a><a href='#L323'>323</a> +<a name='L324'></a><a href='#L324'>324</a> +<a name='L325'></a><a href='#L325'>325</a> +<a name='L326'></a><a href='#L326'>326</a> +<a name='L327'></a><a href='#L327'>327</a> +<a name='L328'></a><a href='#L328'>328</a> +<a name='L329'></a><a href='#L329'>329</a> +<a name='L330'></a><a href='#L330'>330</a> +<a name='L331'></a><a href='#L331'>331</a> +<a name='L332'></a><a href='#L332'>332</a> +<a name='L333'></a><a href='#L333'>333</a> +<a name='L334'></a><a href='#L334'>334</a> +<a name='L335'></a><a href='#L335'>335</a> +<a name='L336'></a><a href='#L336'>336</a> +<a name='L337'></a><a href='#L337'>337</a> +<a name='L338'></a><a href='#L338'>338</a> +<a name='L339'></a><a href='#L339'>339</a> +<a name='L340'></a><a href='#L340'>340</a> +<a name='L341'></a><a href='#L341'>341</a> +<a name='L342'></a><a href='#L342'>342</a> +<a name='L343'></a><a href='#L343'>343</a> +<a name='L344'></a><a href='#L344'>344</a> +<a name='L345'></a><a href='#L345'>345</a> +<a name='L346'></a><a href='#L346'>346</a> +<a name='L347'></a><a href='#L347'>347</a> +<a name='L348'></a><a href='#L348'>348</a> +<a name='L349'></a><a href='#L349'>349</a> +<a name='L350'></a><a href='#L350'>350</a> +<a name='L351'></a><a href='#L351'>351</a> +<a name='L352'></a><a href='#L352'>352</a> +<a name='L353'></a><a href='#L353'>353</a> +<a name='L354'></a><a href='#L354'>354</a> +<a name='L355'></a><a href='#L355'>355</a> +<a name='L356'></a><a href='#L356'>356</a> +<a name='L357'></a><a href='#L357'>357</a> +<a name='L358'></a><a href='#L358'>358</a> +<a name='L359'></a><a href='#L359'>359</a> +<a name='L360'></a><a href='#L360'>360</a> +<a name='L361'></a><a href='#L361'>361</a> +<a name='L362'></a><a href='#L362'>362</a> +<a name='L363'></a><a href='#L363'>363</a> +<a name='L364'></a><a href='#L364'>364</a> +<a name='L365'></a><a href='#L365'>365</a> +<a name='L366'></a><a href='#L366'>366</a> +<a name='L367'></a><a href='#L367'>367</a> +<a name='L368'></a><a href='#L368'>368</a> +<a name='L369'></a><a href='#L369'>369</a> +<a name='L370'></a><a href='#L370'>370</a> +<a name='L371'></a><a href='#L371'>371</a> +<a name='L372'></a><a href='#L372'>372</a> +<a name='L373'></a><a href='#L373'>373</a> +<a name='L374'></a><a href='#L374'>374</a> +<a name='L375'></a><a href='#L375'>375</a> +<a name='L376'></a><a href='#L376'>376</a> +<a name='L377'></a><a href='#L377'>377</a> +<a name='L378'></a><a href='#L378'>378</a> +<a name='L379'></a><a href='#L379'>379</a> +<a name='L380'></a><a href='#L380'>380</a> +<a name='L381'></a><a href='#L381'>381</a> +<a name='L382'></a><a href='#L382'>382</a> +<a name='L383'></a><a href='#L383'>383</a> +<a name='L384'></a><a href='#L384'>384</a> +<a name='L385'></a><a href='#L385'>385</a> +<a name='L386'></a><a href='#L386'>386</a> +<a name='L387'></a><a href='#L387'>387</a> +<a name='L388'></a><a href='#L388'>388</a> +<a name='L389'></a><a href='#L389'>389</a> +<a name='L390'></a><a href='#L390'>390</a> +<a name='L391'></a><a href='#L391'>391</a> +<a name='L392'></a><a href='#L392'>392</a> +<a name='L393'></a><a href='#L393'>393</a> +<a name='L394'></a><a href='#L394'>394</a> +<a name='L395'></a><a href='#L395'>395</a> +<a name='L396'></a><a href='#L396'>396</a> +<a name='L397'></a><a href='#L397'>397</a> +<a name='L398'></a><a href='#L398'>398</a> +<a name='L399'></a><a href='#L399'>399</a> +<a name='L400'></a><a href='#L400'>400</a> +<a name='L401'></a><a href='#L401'>401</a> +<a name='L402'></a><a href='#L402'>402</a> +<a name='L403'></a><a href='#L403'>403</a> +<a name='L404'></a><a href='#L404'>404</a> +<a name='L405'></a><a href='#L405'>405</a> +<a name='L406'></a><a href='#L406'>406</a> +<a name='L407'></a><a href='#L407'>407</a> +<a name='L408'></a><a href='#L408'>408</a> +<a name='L409'></a><a href='#L409'>409</a> +<a name='L410'></a><a href='#L410'>410</a> +<a name='L411'></a><a href='#L411'>411</a> +<a name='L412'></a><a href='#L412'>412</a> +<a name='L413'></a><a href='#L413'>413</a> +<a name='L414'></a><a href='#L414'>414</a> +<a name='L415'></a><a href='#L415'>415</a> +<a name='L416'></a><a href='#L416'>416</a> +<a name='L417'></a><a href='#L417'>417</a> +<a name='L418'></a><a href='#L418'>418</a> +<a name='L419'></a><a href='#L419'>419</a> +<a name='L420'></a><a href='#L420'>420</a> +<a name='L421'></a><a href='#L421'>421</a> +<a name='L422'></a><a href='#L422'>422</a> +<a name='L423'></a><a href='#L423'>423</a> +<a name='L424'></a><a href='#L424'>424</a> +<a name='L425'></a><a href='#L425'>425</a> +<a name='L426'></a><a href='#L426'>426</a> +<a name='L427'></a><a href='#L427'>427</a> +<a name='L428'></a><a href='#L428'>428</a> +<a name='L429'></a><a href='#L429'>429</a> +<a name='L430'></a><a href='#L430'>430</a> +<a name='L431'></a><a href='#L431'>431</a> +<a name='L432'></a><a href='#L432'>432</a> +<a name='L433'></a><a href='#L433'>433</a> +<a name='L434'></a><a href='#L434'>434</a> +<a name='L435'></a><a href='#L435'>435</a> +<a name='L436'></a><a href='#L436'>436</a> +<a name='L437'></a><a href='#L437'>437</a> +<a name='L438'></a><a href='#L438'>438</a> +<a name='L439'></a><a href='#L439'>439</a> +<a name='L440'></a><a href='#L440'>440</a> +<a name='L441'></a><a href='#L441'>441</a> +<a name='L442'></a><a href='#L442'>442</a> +<a name='L443'></a><a href='#L443'>443</a> +<a name='L444'></a><a href='#L444'>444</a> +<a name='L445'></a><a href='#L445'>445</a> +<a name='L446'></a><a href='#L446'>446</a> +<a name='L447'></a><a href='#L447'>447</a> +<a name='L448'></a><a href='#L448'>448</a> +<a name='L449'></a><a href='#L449'>449</a> +<a name='L450'></a><a href='#L450'>450</a> +<a name='L451'></a><a href='#L451'>451</a> +<a name='L452'></a><a href='#L452'>452</a> +<a name='L453'></a><a href='#L453'>453</a> +<a name='L454'></a><a href='#L454'>454</a> +<a name='L455'></a><a href='#L455'>455</a> +<a name='L456'></a><a href='#L456'>456</a> +<a name='L457'></a><a href='#L457'>457</a> +<a name='L458'></a><a href='#L458'>458</a> +<a name='L459'></a><a href='#L459'>459</a> +<a name='L460'></a><a href='#L460'>460</a> +<a name='L461'></a><a href='#L461'>461</a> +<a name='L462'></a><a href='#L462'>462</a> +<a name='L463'></a><a href='#L463'>463</a> +<a name='L464'></a><a href='#L464'>464</a> +<a name='L465'></a><a href='#L465'>465</a> +<a name='L466'></a><a href='#L466'>466</a> +<a name='L467'></a><a href='#L467'>467</a> +<a name='L468'></a><a href='#L468'>468</a> +<a name='L469'></a><a href='#L469'>469</a> +<a name='L470'></a><a href='#L470'>470</a> +<a name='L471'></a><a href='#L471'>471</a> +<a name='L472'></a><a href='#L472'>472</a> +<a name='L473'></a><a href='#L473'>473</a> +<a name='L474'></a><a href='#L474'>474</a> +<a name='L475'></a><a href='#L475'>475</a> +<a name='L476'></a><a href='#L476'>476</a> +<a name='L477'></a><a href='#L477'>477</a> +<a name='L478'></a><a href='#L478'>478</a> +<a name='L479'></a><a href='#L479'>479</a> +<a name='L480'></a><a href='#L480'>480</a> +<a name='L481'></a><a href='#L481'>481</a> +<a name='L482'></a><a href='#L482'>482</a> +<a name='L483'></a><a href='#L483'>483</a> +<a name='L484'></a><a href='#L484'>484</a> +<a name='L485'></a><a href='#L485'>485</a> +<a name='L486'></a><a href='#L486'>486</a> +<a name='L487'></a><a href='#L487'>487</a> +<a name='L488'></a><a href='#L488'>488</a> +<a name='L489'></a><a href='#L489'>489</a> +<a name='L490'></a><a href='#L490'>490</a> +<a name='L491'></a><a href='#L491'>491</a> +<a name='L492'></a><a href='#L492'>492</a> +<a name='L493'></a><a href='#L493'>493</a> +<a name='L494'></a><a href='#L494'>494</a> +<a name='L495'></a><a href='#L495'>495</a> +<a name='L496'></a><a href='#L496'>496</a> +<a name='L497'></a><a href='#L497'>497</a> +<a name='L498'></a><a href='#L498'>498</a> +<a name='L499'></a><a href='#L499'>499</a> +<a name='L500'></a><a href='#L500'>500</a> +<a name='L501'></a><a href='#L501'>501</a> +<a name='L502'></a><a href='#L502'>502</a> +<a name='L503'></a><a href='#L503'>503</a> +<a name='L504'></a><a href='#L504'>504</a> +<a name='L505'></a><a href='#L505'>505</a> +<a name='L506'></a><a href='#L506'>506</a> +<a name='L507'></a><a href='#L507'>507</a> +<a name='L508'></a><a href='#L508'>508</a> +<a name='L509'></a><a href='#L509'>509</a> +<a name='L510'></a><a href='#L510'>510</a> +<a name='L511'></a><a href='#L511'>511</a> +<a name='L512'></a><a href='#L512'>512</a> +<a name='L513'></a><a href='#L513'>513</a> +<a name='L514'></a><a href='#L514'>514</a> +<a name='L515'></a><a href='#L515'>515</a> +<a name='L516'></a><a href='#L516'>516</a> +<a name='L517'></a><a href='#L517'>517</a> +<a name='L518'></a><a href='#L518'>518</a> +<a name='L519'></a><a href='#L519'>519</a> +<a name='L520'></a><a href='#L520'>520</a> +<a name='L521'></a><a href='#L521'>521</a> +<a name='L522'></a><a href='#L522'>522</a> +<a name='L523'></a><a href='#L523'>523</a> +<a name='L524'></a><a href='#L524'>524</a> +<a name='L525'></a><a href='#L525'>525</a> +<a name='L526'></a><a href='#L526'>526</a> +<a name='L527'></a><a href='#L527'>527</a> +<a name='L528'></a><a href='#L528'>528</a> +<a name='L529'></a><a href='#L529'>529</a> +<a name='L530'></a><a href='#L530'>530</a> +<a name='L531'></a><a href='#L531'>531</a> +<a name='L532'></a><a href='#L532'>532</a> +<a name='L533'></a><a href='#L533'>533</a> +<a name='L534'></a><a href='#L534'>534</a> +<a name='L535'></a><a href='#L535'>535</a> +<a name='L536'></a><a href='#L536'>536</a> +<a name='L537'></a><a href='#L537'>537</a> +<a name='L538'></a><a href='#L538'>538</a> +<a name='L539'></a><a href='#L539'>539</a> +<a name='L540'></a><a href='#L540'>540</a> +<a name='L541'></a><a href='#L541'>541</a> +<a name='L542'></a><a href='#L542'>542</a> +<a name='L543'></a><a href='#L543'>543</a> +<a name='L544'></a><a href='#L544'>544</a> +<a name='L545'></a><a href='#L545'>545</a> +<a name='L546'></a><a href='#L546'>546</a> +<a name='L547'></a><a href='#L547'>547</a> +<a name='L548'></a><a href='#L548'>548</a> +<a name='L549'></a><a href='#L549'>549</a> +<a name='L550'></a><a href='#L550'>550</a> +<a name='L551'></a><a href='#L551'>551</a> +<a name='L552'></a><a href='#L552'>552</a> +<a name='L553'></a><a href='#L553'>553</a> +<a name='L554'></a><a href='#L554'>554</a> +<a name='L555'></a><a href='#L555'>555</a> +<a name='L556'></a><a href='#L556'>556</a> +<a name='L557'></a><a href='#L557'>557</a> +<a name='L558'></a><a href='#L558'>558</a> +<a name='L559'></a><a href='#L559'>559</a> +<a name='L560'></a><a href='#L560'>560</a> +<a name='L561'></a><a href='#L561'>561</a> +<a name='L562'></a><a href='#L562'>562</a> +<a name='L563'></a><a href='#L563'>563</a> +<a name='L564'></a><a href='#L564'>564</a> +<a name='L565'></a><a href='#L565'>565</a> +<a name='L566'></a><a href='#L566'>566</a> +<a name='L567'></a><a href='#L567'>567</a> +<a name='L568'></a><a href='#L568'>568</a> +<a name='L569'></a><a href='#L569'>569</a> +<a name='L570'></a><a href='#L570'>570</a> +<a name='L571'></a><a href='#L571'>571</a> +<a name='L572'></a><a href='#L572'>572</a> +<a name='L573'></a><a href='#L573'>573</a> +<a name='L574'></a><a href='#L574'>574</a> +<a name='L575'></a><a href='#L575'>575</a> +<a name='L576'></a><a href='#L576'>576</a> +<a name='L577'></a><a href='#L577'>577</a> +<a name='L578'></a><a href='#L578'>578</a> +<a name='L579'></a><a href='#L579'>579</a> +<a name='L580'></a><a href='#L580'>580</a> +<a name='L581'></a><a href='#L581'>581</a> +<a name='L582'></a><a href='#L582'>582</a> +<a name='L583'></a><a href='#L583'>583</a> +<a name='L584'></a><a href='#L584'>584</a> +<a name='L585'></a><a href='#L585'>585</a> +<a name='L586'></a><a href='#L586'>586</a> +<a name='L587'></a><a href='#L587'>587</a> +<a name='L588'></a><a href='#L588'>588</a> +<a name='L589'></a><a href='#L589'>589</a> +<a name='L590'></a><a href='#L590'>590</a> +<a name='L591'></a><a href='#L591'>591</a> +<a name='L592'></a><a href='#L592'>592</a> +<a name='L593'></a><a href='#L593'>593</a> +<a name='L594'></a><a href='#L594'>594</a> +<a name='L595'></a><a href='#L595'>595</a> +<a name='L596'></a><a href='#L596'>596</a> +<a name='L597'></a><a href='#L597'>597</a> +<a name='L598'></a><a href='#L598'>598</a> +<a name='L599'></a><a href='#L599'>599</a> +<a name='L600'></a><a href='#L600'>600</a> +<a name='L601'></a><a href='#L601'>601</a> +<a name='L602'></a><a href='#L602'>602</a> +<a name='L603'></a><a href='#L603'>603</a> +<a name='L604'></a><a href='#L604'>604</a> +<a name='L605'></a><a href='#L605'>605</a> +<a name='L606'></a><a href='#L606'>606</a> +<a name='L607'></a><a href='#L607'>607</a> +<a name='L608'></a><a href='#L608'>608</a> +<a name='L609'></a><a href='#L609'>609</a> +<a name='L610'></a><a href='#L610'>610</a> +<a name='L611'></a><a href='#L611'>611</a> +<a name='L612'></a><a href='#L612'>612</a> +<a name='L613'></a><a href='#L613'>613</a> +<a name='L614'></a><a href='#L614'>614</a> +<a name='L615'></a><a href='#L615'>615</a> +<a name='L616'></a><a href='#L616'>616</a> +<a name='L617'></a><a href='#L617'>617</a> +<a name='L618'></a><a href='#L618'>618</a> +<a name='L619'></a><a href='#L619'>619</a> +<a name='L620'></a><a href='#L620'>620</a> +<a name='L621'></a><a href='#L621'>621</a> +<a name='L622'></a><a href='#L622'>622</a> +<a name='L623'></a><a href='#L623'>623</a> +<a name='L624'></a><a href='#L624'>624</a> +<a name='L625'></a><a href='#L625'>625</a> +<a name='L626'></a><a href='#L626'>626</a> +<a name='L627'></a><a href='#L627'>627</a> +<a name='L628'></a><a href='#L628'>628</a> +<a name='L629'></a><a href='#L629'>629</a> +<a name='L630'></a><a href='#L630'>630</a> +<a name='L631'></a><a href='#L631'>631</a> +<a name='L632'></a><a href='#L632'>632</a> +<a name='L633'></a><a href='#L633'>633</a> +<a name='L634'></a><a href='#L634'>634</a> +<a name='L635'></a><a href='#L635'>635</a> +<a name='L636'></a><a href='#L636'>636</a> +<a name='L637'></a><a href='#L637'>637</a> +<a name='L638'></a><a href='#L638'>638</a> +<a name='L639'></a><a href='#L639'>639</a> +<a name='L640'></a><a href='#L640'>640</a> +<a name='L641'></a><a href='#L641'>641</a> +<a name='L642'></a><a href='#L642'>642</a> +<a name='L643'></a><a href='#L643'>643</a> +<a name='L644'></a><a href='#L644'>644</a> +<a name='L645'></a><a href='#L645'>645</a> +<a name='L646'></a><a href='#L646'>646</a> +<a name='L647'></a><a href='#L647'>647</a> +<a name='L648'></a><a href='#L648'>648</a> +<a name='L649'></a><a href='#L649'>649</a> +<a name='L650'></a><a href='#L650'>650</a> +<a name='L651'></a><a href='#L651'>651</a> +<a name='L652'></a><a href='#L652'>652</a> +<a name='L653'></a><a href='#L653'>653</a> +<a name='L654'></a><a href='#L654'>654</a> +<a name='L655'></a><a href='#L655'>655</a> +<a name='L656'></a><a href='#L656'>656</a> +<a name='L657'></a><a href='#L657'>657</a> +<a name='L658'></a><a href='#L658'>658</a> +<a name='L659'></a><a href='#L659'>659</a> +<a name='L660'></a><a href='#L660'>660</a> +<a name='L661'></a><a href='#L661'>661</a> +<a name='L662'></a><a href='#L662'>662</a> +<a name='L663'></a><a href='#L663'>663</a> +<a name='L664'></a><a href='#L664'>664</a> +<a name='L665'></a><a href='#L665'>665</a> +<a name='L666'></a><a href='#L666'>666</a> +<a name='L667'></a><a href='#L667'>667</a> +<a name='L668'></a><a href='#L668'>668</a> +<a name='L669'></a><a href='#L669'>669</a> +<a name='L670'></a><a href='#L670'>670</a> +<a name='L671'></a><a href='#L671'>671</a> +<a name='L672'></a><a href='#L672'>672</a> +<a name='L673'></a><a href='#L673'>673</a> +<a name='L674'></a><a href='#L674'>674</a> +<a name='L675'></a><a href='#L675'>675</a> +<a name='L676'></a><a href='#L676'>676</a> +<a name='L677'></a><a href='#L677'>677</a> +<a name='L678'></a><a href='#L678'>678</a> +<a name='L679'></a><a href='#L679'>679</a> +<a name='L680'></a><a href='#L680'>680</a> +<a name='L681'></a><a href='#L681'>681</a> +<a name='L682'></a><a href='#L682'>682</a> +<a name='L683'></a><a href='#L683'>683</a> +<a name='L684'></a><a href='#L684'>684</a> +<a name='L685'></a><a href='#L685'>685</a> +<a name='L686'></a><a href='#L686'>686</a> +<a name='L687'></a><a href='#L687'>687</a> +<a name='L688'></a><a href='#L688'>688</a> +<a name='L689'></a><a href='#L689'>689</a> +<a name='L690'></a><a href='#L690'>690</a> +<a name='L691'></a><a href='#L691'>691</a> +<a name='L692'></a><a href='#L692'>692</a> +<a name='L693'></a><a href='#L693'>693</a> +<a name='L694'></a><a href='#L694'>694</a> +<a name='L695'></a><a href='#L695'>695</a> +<a name='L696'></a><a href='#L696'>696</a> +<a name='L697'></a><a href='#L697'>697</a> +<a name='L698'></a><a href='#L698'>698</a> +<a name='L699'></a><a href='#L699'>699</a> +<a name='L700'></a><a href='#L700'>700</a> +<a name='L701'></a><a href='#L701'>701</a> +<a name='L702'></a><a href='#L702'>702</a> +<a name='L703'></a><a href='#L703'>703</a> +<a name='L704'></a><a href='#L704'>704</a> +<a name='L705'></a><a href='#L705'>705</a> +<a name='L706'></a><a href='#L706'>706</a> +<a name='L707'></a><a href='#L707'>707</a> +<a name='L708'></a><a href='#L708'>708</a> +<a name='L709'></a><a href='#L709'>709</a> +<a name='L710'></a><a href='#L710'>710</a> +<a name='L711'></a><a href='#L711'>711</a> +<a name='L712'></a><a href='#L712'>712</a> +<a name='L713'></a><a href='#L713'>713</a> +<a name='L714'></a><a href='#L714'>714</a> +<a name='L715'></a><a href='#L715'>715</a> +<a name='L716'></a><a href='#L716'>716</a> +<a name='L717'></a><a href='#L717'>717</a> +<a name='L718'></a><a href='#L718'>718</a> +<a name='L719'></a><a href='#L719'>719</a> +<a name='L720'></a><a href='#L720'>720</a> +<a name='L721'></a><a href='#L721'>721</a> +<a name='L722'></a><a href='#L722'>722</a> +<a name='L723'></a><a href='#L723'>723</a> +<a name='L724'></a><a href='#L724'>724</a> +<a name='L725'></a><a href='#L725'>725</a> +<a name='L726'></a><a href='#L726'>726</a> +<a name='L727'></a><a href='#L727'>727</a> +<a name='L728'></a><a href='#L728'>728</a> +<a name='L729'></a><a href='#L729'>729</a> +<a name='L730'></a><a href='#L730'>730</a> +<a name='L731'></a><a href='#L731'>731</a> +<a name='L732'></a><a href='#L732'>732</a> +<a name='L733'></a><a href='#L733'>733</a> +<a name='L734'></a><a href='#L734'>734</a> +<a name='L735'></a><a href='#L735'>735</a> +<a name='L736'></a><a href='#L736'>736</a> +<a name='L737'></a><a href='#L737'>737</a> +<a name='L738'></a><a href='#L738'>738</a> +<a name='L739'></a><a href='#L739'>739</a> +<a name='L740'></a><a href='#L740'>740</a> +<a name='L741'></a><a href='#L741'>741</a> +<a name='L742'></a><a href='#L742'>742</a> +<a name='L743'></a><a href='#L743'>743</a> +<a name='L744'></a><a href='#L744'>744</a> +<a name='L745'></a><a href='#L745'>745</a> +<a name='L746'></a><a href='#L746'>746</a> +<a name='L747'></a><a href='#L747'>747</a> +<a name='L748'></a><a href='#L748'>748</a> +<a name='L749'></a><a href='#L749'>749</a> +<a name='L750'></a><a href='#L750'>750</a> +<a name='L751'></a><a href='#L751'>751</a> +<a name='L752'></a><a href='#L752'>752</a> +<a name='L753'></a><a href='#L753'>753</a> +<a name='L754'></a><a href='#L754'>754</a> +<a name='L755'></a><a href='#L755'>755</a> +<a name='L756'></a><a href='#L756'>756</a> +<a name='L757'></a><a href='#L757'>757</a> +<a name='L758'></a><a href='#L758'>758</a> +<a name='L759'></a><a href='#L759'>759</a> +<a name='L760'></a><a href='#L760'>760</a> +<a name='L761'></a><a href='#L761'>761</a> +<a name='L762'></a><a href='#L762'>762</a> +<a name='L763'></a><a href='#L763'>763</a> +<a name='L764'></a><a href='#L764'>764</a> +<a name='L765'></a><a href='#L765'>765</a> +<a name='L766'></a><a href='#L766'>766</a> +<a name='L767'></a><a href='#L767'>767</a> +<a name='L768'></a><a href='#L768'>768</a> +<a name='L769'></a><a href='#L769'>769</a> +<a name='L770'></a><a href='#L770'>770</a> +<a name='L771'></a><a href='#L771'>771</a> +<a name='L772'></a><a href='#L772'>772</a> +<a name='L773'></a><a href='#L773'>773</a> +<a name='L774'></a><a href='#L774'>774</a> +<a name='L775'></a><a href='#L775'>775</a> +<a name='L776'></a><a href='#L776'>776</a> +<a name='L777'></a><a href='#L777'>777</a> +<a name='L778'></a><a href='#L778'>778</a> +<a name='L779'></a><a href='#L779'>779</a> +<a name='L780'></a><a href='#L780'>780</a> +<a name='L781'></a><a href='#L781'>781</a> +<a name='L782'></a><a href='#L782'>782</a> +<a name='L783'></a><a href='#L783'>783</a> +<a name='L784'></a><a href='#L784'>784</a> +<a name='L785'></a><a href='#L785'>785</a> +<a name='L786'></a><a href='#L786'>786</a> +<a name='L787'></a><a href='#L787'>787</a> +<a name='L788'></a><a href='#L788'>788</a> +<a name='L789'></a><a href='#L789'>789</a> +<a name='L790'></a><a href='#L790'>790</a> +<a name='L791'></a><a href='#L791'>791</a> +<a name='L792'></a><a href='#L792'>792</a> +<a name='L793'></a><a href='#L793'>793</a> +<a name='L794'></a><a href='#L794'>794</a> +<a name='L795'></a><a href='#L795'>795</a> +<a name='L796'></a><a href='#L796'>796</a> +<a name='L797'></a><a href='#L797'>797</a> +<a name='L798'></a><a href='#L798'>798</a> +<a name='L799'></a><a href='#L799'>799</a> +<a name='L800'></a><a href='#L800'>800</a> +<a name='L801'></a><a href='#L801'>801</a> +<a name='L802'></a><a href='#L802'>802</a> +<a name='L803'></a><a href='#L803'>803</a> +<a name='L804'></a><a href='#L804'>804</a> +<a name='L805'></a><a href='#L805'>805</a> +<a name='L806'></a><a href='#L806'>806</a> +<a name='L807'></a><a href='#L807'>807</a> +<a name='L808'></a><a href='#L808'>808</a> +<a name='L809'></a><a href='#L809'>809</a> +<a name='L810'></a><a href='#L810'>810</a> +<a name='L811'></a><a href='#L811'>811</a> +<a name='L812'></a><a href='#L812'>812</a> +<a name='L813'></a><a href='#L813'>813</a> +<a name='L814'></a><a href='#L814'>814</a> +<a name='L815'></a><a href='#L815'>815</a> +<a name='L816'></a><a href='#L816'>816</a> +<a name='L817'></a><a href='#L817'>817</a> +<a name='L818'></a><a href='#L818'>818</a> +<a name='L819'></a><a href='#L819'>819</a> +<a name='L820'></a><a href='#L820'>820</a> +<a name='L821'></a><a href='#L821'>821</a> +<a name='L822'></a><a href='#L822'>822</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">238x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">442x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">7x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">449x</span> +<span class="cline-any cline-yes">449x</span> +<span class="cline-any cline-yes">449x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">449x</span> +<span class="cline-any cline-yes">449x</span> +<span class="cline-any cline-yes">449x</span> +<span class="cline-any cline-yes">449x</span> +<span class="cline-any cline-yes">449x</span> +<span class="cline-any cline-yes">449x</span> +<span class="cline-any cline-yes">449x</span> +<span class="cline-any cline-yes">449x</span> +<span class="cline-any cline-yes">449x</span> +<span class="cline-any cline-yes">449x</span> +<span class="cline-any cline-yes">449x</span> +<span class="cline-any cline-yes">449x</span> +<span class="cline-any cline-yes">449x</span> +<span class="cline-any cline-yes">449x</span> +<span class="cline-any cline-yes">449x</span> +<span class="cline-any cline-yes">449x</span> +<span class="cline-any cline-yes">449x</span> +<span class="cline-any cline-yes">449x</span> +<span class="cline-any cline-yes">449x</span> +<span class="cline-any cline-yes">449x</span> +<span class="cline-any cline-yes">449x</span> +<span class="cline-any cline-yes">449x</span> +<span class="cline-any cline-yes">449x</span> +<span class="cline-any cline-yes">449x</span> +<span class="cline-any cline-yes">449x</span> +<span class="cline-any cline-yes">449x</span> +<span class="cline-any cline-yes">449x</span> +<span class="cline-any cline-yes">449x</span> +<span class="cline-any cline-yes">449x</span> +<span class="cline-any cline-yes">449x</span> +<span class="cline-any cline-yes">449x</span> +<span class="cline-any cline-yes">449x</span> +<span class="cline-any cline-yes">449x</span> +<span class="cline-any cline-yes">449x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">63x</span> +<span class="cline-any cline-yes">63x</span> +<span class="cline-any cline-yes">63x</span> +<span class="cline-any cline-yes">63x</span> +<span class="cline-any cline-yes">63x</span> +<span class="cline-any cline-yes">63x</span> +<span class="cline-any cline-yes">63x</span> +<span class="cline-any cline-yes">63x</span> +<span class="cline-any cline-yes">63x</span> +<span class="cline-any cline-yes">63x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">63x</span> +<span class="cline-any cline-yes">63x</span> +<span class="cline-any cline-yes">63x</span> +<span class="cline-any cline-yes">63x</span> +<span class="cline-any cline-yes">63x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">114x</span> +<span class="cline-any cline-yes">114x</span> +<span class="cline-any cline-yes">114x</span> +<span class="cline-any cline-yes">114x</span> +<span class="cline-any cline-yes">114x</span> +<span class="cline-any cline-yes">114x</span> +<span class="cline-any cline-yes">114x</span> +<span class="cline-any cline-yes">114x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">38x</span> +<span class="cline-any cline-yes">38x</span> +<span class="cline-any cline-yes">38x</span> +<span class="cline-any cline-yes">38x</span> +<span class="cline-any cline-yes">38x</span> +<span class="cline-any cline-yes">38x</span> +<span class="cline-any cline-yes">38x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">18x</span> +<span class="cline-any cline-yes">18x</span> +<span class="cline-any cline-yes">4x</span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">17x</span> +<span class="cline-any cline-yes">17x</span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">16x</span> +<span class="cline-any cline-yes">16x</span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">15x</span> +<span class="cline-any cline-yes">15x</span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">13x</span> +<span class="cline-any cline-yes">13x</span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">12x</span> +<span class="cline-any cline-yes">12x</span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">11x</span> +<span class="cline-any cline-yes">11x</span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">10x</span> +<span class="cline-any cline-yes">10x</span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">9x</span> +<span class="cline-any cline-yes">9x</span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">8x</span> +<span class="cline-any cline-yes">8x</span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">7x</span> +<span class="cline-any cline-yes">7x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">7x</span> +<span class="cline-any cline-yes">2x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">5x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">55x</span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">54x</span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">53x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">4x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">44x</span> +<span class="cline-any cline-yes">4x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">40x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">4x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">2x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">2x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">15x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">13x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">2x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">2x</span> +<span class="cline-any cline-yes">2x</span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">2x</span> +<span class="cline-any cline-yes">2x</span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">10x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">10x</span> +<span class="cline-any cline-yes">10x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">10x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">19x</span> +<span class="cline-any cline-yes">19x</span> +<span class="cline-any cline-yes">19x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">19x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">8x</span> +<span class="cline-any cline-yes">8x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">8x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">30x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">30x</span> +<span class="cline-any cline-yes">5x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">5x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">25x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">24x</span> +<span class="cline-any cline-yes">24x</span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">23x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">23x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">11x</span> +<span class="cline-any cline-yes">11x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">7x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">7x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">11x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">3x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">3x</span> +<span class="cline-any cline-yes">3x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-yes">1x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">23x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">11x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">11x</span> +<span class="cline-any cline-yes">11x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">11x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">12x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">12x</span> +<span class="cline-any cline-yes">12x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">8x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">8x</span> +<span class="cline-any cline-yes">8x</span> +<span class="cline-any cline-yes">8x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">8x</span> +<span class="cline-any cline-yes">8x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-yes">62x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const { + apply: ReflectApply, + defineProperty: ReflectDefineProperty, + deleteProperty: ReflectDeleteProperty, + getPrototypeOf: ReflectGetPrototypeOf, + ownKeys: ReflectOwnKeys, + setPrototypeOf: ReflectSetPrototypeOf +} = Reflect; +const ObjectCtor = Object; +const { + assign: ObjectAssign, + freeze: ObjectFreeze, + keys: ObjectKeys, + prototype: ObjectProto +} = ObjectCtor; +const { + hasOwn: OriginalObjectHasOwn +} = ObjectCtor; +const { + __lookupGetter__: ObjectProtoLookupGetter, + __lookupSetter__: ObjectProtoLookupSetter, + hasOwnProperty: ObjectProtoHasOwnProperty +} = ObjectProto; +const ObjectHasOwn = typeof OriginalObjectHasOwn === 'function' ? OriginalObjectHasOwn : /* istanbul ignore next: currently unreachable via tests */function ObjectHasOwn(object, key) { + return ReflectApply(ObjectProtoHasOwnProperty, object, [key]); +}; +const { + toString: ObjectProtoToString +} = ObjectProto; +function isObject(value) { + return typeof value === 'object' && value !== null; +} +function ObjectLookupOwnGetter(object, key) { + return object === null || object === undefined || !ObjectHasOwn(object, key) ? undefined : ReflectApply(ObjectProtoLookupGetter, object, [key]); +} +function ObjectLookupOwnSetter(object, key) { + return object === null || object === undefined || !ObjectHasOwn(object, key) ? undefined : ReflectApply(ObjectProtoLookupSetter, object, [key]); +} +const SymbolCtor = Symbol; +const { + for: SymbolFor, + iterator: SymbolIterator, + toStringTag: SymbolToStringTag, + unscopables: SymbolUnscopables +} = SymbolCtor; +const { + valueOf: SymbolProtoValueOf +} = SymbolCtor.prototype; +const ArrayCtor = Array; +const { + prototype: ArrayProto +} = ArrayCtor; +const { + at: ArrayProtoAt, + concat: ArrayProtoConcat, + copyWithin: ArrayProtoCopyWithin, + entries: ArrayProtoEntries, + every: ArrayProtoEvery, + fill: ArrayProtoFill, + findIndex: ArrayProtoFindIndex, + flat: ArrayProtoFlat, + flatMap: ArrayProtoFlatMap, + forEach: ArrayProtoForEach, + join: ArrayProtoJoin, + keys: ArrayProtoKeys, + lastIndexOf: ArrayProtoLastIndexOf, + pop: ArrayProtoPop, + reduce: ArrayProtoReduce, + reduceRight: ArrayProtoReduceRight, + reverse: ArrayProtoReverse, + slice: ArrayProtoSlice, + some: ArrayProtoSome, + toLocaleString: ArrayProtoToLocaleString, + toString: ArrayProtoToString, + values: ArrayProtoValues, + [SymbolIterator]: ArrayProtoSymbolIterator +} = ArrayProto; +const ArrayUnscopables = ObjectFreeze(ObjectAssign({ + __proto__: null +}, ArrayProto[SymbolUnscopables])); +const { + filter: ArrayProtoFilter, + find: ArrayProtoFind, + includes: ArrayProtoIncludes, + indexOf: ArrayProtoIndexOf, + map: ArrayProtoMap, + push: ArrayProtoPush, + shift: ArrayProtoShift, + splice: ArrayProtoSplice, + sort: ArrayProtoSort, + unshift: ArrayProtoUnshift +} = ArrayProto; +const { + isArray: ArrayIsArray +} = ArrayCtor; +function toSafeArray(array) { + ReflectSetPrototypeOf(array, null); + array.at = ArrayProtoAt; + array.concat = ArrayProtoConcat; + // *** DO NOT SET THE ARRAY CONSTRUCTOR PROPERTY *** + // https://bugs.chromium.org/p/v8/issues/detail?id=13202 + // https://source.chromium.org/chromium/chromium/src/+/main:v8/src/objects/lookup.cc;l=196-215?q=IsArraySpeciesLookupChainIntact + // + // In V8 setting the constructor property of an array, promise, regexp, or + // typed array triggers a de-opt because it could change an instance's + // @@species. This de-opt affects at least `Array#splice` and occurs even + // if the prototype of the array is change or nulled beforehand. Further, + // the de-opt persists after a page refresh. It is not until navigating to + // a different page that the performance of `Array#splice` is restored. + array.copyWithin = ArrayProtoCopyWithin; + array.entries = ArrayProtoEntries; + array.every = ArrayProtoEvery; + array.fill = ArrayProtoFill; + array.filter = ArrayProtoFilter; + array.find = ArrayProtoFind; + array.findIndex = ArrayProtoFindIndex; + array.flat = ArrayProtoFlat; + array.flatMap = ArrayProtoFlatMap; + array.forEach = ArrayProtoForEach; + array.includes = ArrayProtoIncludes; + array.indexOf = ArrayProtoIndexOf; + array.join = ArrayProtoJoin; + array.keys = ArrayProtoKeys; + array.lastIndexOf = ArrayProtoLastIndexOf; + array.map = ArrayProtoMap; + array.pop = ArrayProtoPop; + array.push = ArrayProtoPush; + array.reduce = ArrayProtoReduce; + array.reduceRight = ArrayProtoReduceRight; + array.reverse = ArrayProtoReverse; + array.shift = ArrayProtoShift; + array.slice = ArrayProtoSlice; + array.some = ArrayProtoSome; + array.sort = ArrayProtoSort; + array.splice = ArrayProtoSplice; + array.toLocaleString = ArrayProtoToLocaleString; + array.toString = ArrayProtoToString; + array.unshift = ArrayProtoUnshift; + array.values = ArrayProtoValues; + array[SymbolIterator] = ArrayProtoSymbolIterator; + array[SymbolUnscopables] = ArrayUnscopables; + ReflectSetPrototypeOf(array, ArrayProto); + return array; +} +const ArrayBufferProtoByteLengthGetter = ObjectLookupOwnGetter(ArrayBuffer.prototype, 'byteLength'); + +// https://caniuse.com/bigint +const SUPPORTS_BIG_INT = typeof BigInt === 'function'; +const BigIntProtoValueOf = SUPPORTS_BIG_INT ? BigInt.prototype.valueOf : /* istanbul ignore next: currently unreachable via tests */undefined; +const { + valueOf: BooleanProtoValueOf +} = Boolean.prototype; + +// Locker build constants. +const LOCKER_IDENTIFIER_MARKER = '$LWS'; +// This package is bundled by third-parties that have their own build time +// replacement logic. Instead of customizing each build system to be aware +// of this package we implement a two phase debug mode by performing small +// runtime checks to determine phase one, our code is unminified, and +// phase two, the user opted-in to custom devtools formatters. Phase one +// is used for light weight initialization time debug while phase two is +// reserved for post initialization runtime +const LOCKER_UNMINIFIED_FLAG = +// eslint-disable-next-line @typescript-eslint/naming-convention +/* istanbul ignore next */ +`${function LOCKER_UNMINIFIED_FLAG() { + return LOCKER_UNMINIFIED_FLAG.name; +}()}`.includes('LOCKER_UNMINIFIED_FLAG'); +// Character constants. +const CHAR_ELLIPSIS = '\u2026'; +// Error message constants. +const ERR_ILLEGAL_PROPERTY_ACCESS = 'Illegal property access.'; +// Near-membrane constants. +const LOCKER_NEAR_MEMBRANE_SERIALIZED_VALUE_SYMBOL = SymbolFor('@@lockerNearMembraneSerializedValue'); +const LOCKER_NEAR_MEMBRANE_SYMBOL = SymbolFor('@@lockerNearMembrane'); +const SYMBOL_LIVE_OBJECT = SymbolFor('@@lockerLiveValue'); +// Object brand constants. +const TO_STRING_BRAND_ARRAY = '[object Array]'; +const TO_STRING_BRAND_ARRAY_BUFFER = '[object ArrayBuffer]'; +const TO_STRING_BRAND_BIG_INT = '[object BigInt]'; +const TO_STRING_BRAND_BOOLEAN = '[object Boolean]'; +const TO_STRING_BRAND_DATE = '[object Date]'; +const TO_STRING_BRAND_FUNCTION = '[object Function]'; +const TO_STRING_BRAND_MAP = '[object Map]'; +const TO_STRING_BRAND_NULL = '[object Null]'; +const TO_STRING_BRAND_NUMBER = '[object Number]'; +const TO_STRING_BRAND_OBJECT = '[object Object]'; +const TO_STRING_BRAND_REG_EXP = '[object RegExp]'; +const TO_STRING_BRAND_SET = '[object Set]'; +const TO_STRING_BRAND_STRING = '[object String]'; +const TO_STRING_BRAND_SYMBOL = '[object Symbol]'; +const TO_STRING_BRAND_UNDEFINED = '[object Undefined]'; +const TO_STRING_BRAND_WEAK_MAP = '[object WeakMap]'; +const TO_STRING_BRAND_WEAK_SET = '[object WeakSet]'; +const { + valueOf: DateProtoValueOf +} = Date.prototype; +const MapCtor = Map; +const { + prototype: MapProto +} = MapCtor; +const { + clear: MapProtoClear, + delete: MapProtoDelete, + forEach: MapProtoForEach, + get: MapProtoGet, + has: MapProtoHas, + keys: MapProtoKeys, + values: MapProtoValues, + [SymbolIterator]: MapProtoSymbolIterator, + [SymbolToStringTag]: MapProtoSymbolToStringTag +} = MapProto; +const { + entries: MapProtoEntries, + set: MapProtoSet +} = MapProto; +const MapProtoSizeGetter = ObjectLookupOwnGetter(MapProto, 'size'); +function toSafeMap(map) { + ReflectSetPrototypeOf(map, null); + map.clear = MapProtoClear; + map.delete = MapProtoDelete; + map.entries = MapProtoEntries; + map.forEach = MapProtoForEach; + map.get = MapProtoGet; + map.has = MapProtoHas; + map.keys = MapProtoKeys; + map.set = MapProtoSet; + ReflectDefineProperty(map, 'size', { + __proto__: null, + configurable: true, + enumerable: true, + get: MapProtoSizeGetter, + set: undefined + }); + map.values = MapProtoValues; + map[SymbolIterator] = MapProtoSymbolIterator; + map[SymbolToStringTag] = MapProtoSymbolToStringTag; + ReflectSetPrototypeOf(map, MapProto); + return map; +} +const NumberCtor = Number; +const { + isFinite: NumberIsFinite, + isInteger: NumberIsInteger, + isNaN: NumberIsNaN +} = NumberCtor; +const { + valueOf: NumberProtoValueOf +} = NumberCtor.prototype; +const RegExpCtor = RegExp; +const { + prototype: RegExpProto +} = RegExpCtor; +const { + test: RegExpProtoTest +} = RegExpProto; +const RegExpProtoSourceGetter = ObjectLookupOwnGetter(RegExpProto, 'source'); +const SetCtor = Set; +const { + prototype: SetProto +} = SetCtor; +const { + add: SetProtoAdd, + has: SetProtoHas, + values: SetProtoValues +} = SetProto; +const SetProtoSizeGetter = ObjectLookupOwnGetter(SetProto, 'size'); +const StringCtor = String; +const { + prototype: StringProto +} = StringCtor; +const { + slice: StringProtoSlice, + valueOf: StringProtoValueOf +} = StringProto; +const WeakMapCtor = WeakMap; +const { + prototype: WeakMapProto +} = WeakMapCtor; +const { + has: WeakMapProtoHas +} = WeakMapProto; +const { + delete: WeakMapProtoDelete, + get: WeakMapProtoGet, + set: WeakMapProtoSet, + [SymbolToStringTag]: WeakMapProtoSymbolToStringTag +} = WeakMapProto; +function toSafeWeakMap(weakMap) { + ReflectSetPrototypeOf(weakMap, null); + weakMap.delete = WeakMapProtoDelete; + weakMap.get = WeakMapProtoGet; + weakMap.has = WeakMapProtoHas; + weakMap.set = WeakMapProtoSet; + weakMap[SymbolToStringTag] = WeakMapProtoSymbolToStringTag; + ReflectSetPrototypeOf(weakMap, WeakMapProto); + return weakMap; +} +const WeakSetCtor = WeakSet; +const { + prototype: WeakSetProto +} = WeakSetCtor; +const { + has: WeakSetProtoHas +} = WeakSetProto; +const { + add: WeakSetProtoAdd, + delete: WeakSetProtoDelete, + [SymbolToStringTag]: WeakSetProtoSymbolToStringTag +} = WeakSetProto; +function toSafeWeakSet(weakSet) { + ReflectSetPrototypeOf(weakSet, null); + weakSet.add = WeakSetProtoAdd; + weakSet.delete = WeakSetProtoDelete; + weakSet.has = WeakSetProtoHas; + weakSet[SymbolToStringTag] = WeakSetProtoSymbolToStringTag; + ReflectSetPrototypeOf(weakSet, WeakSetProto); + return weakSet; +} +const { + toStringTag: TO_STRING_TAG_SYMBOL +} = Symbol; +function getBrandByTrialAndError(value) { + // Trail and error attempts are performed in order of most likely, + // e.g. those values that have a @@toStringTag defined by default, + // to least likely. + // + // Internally these brand checks rely on native methods that throw and catch + // an exception when they operate on values with unexpected internal slot + // entries. + // Section 25.1.5.1 get ArrayBuffer.prototype.byteLength + // https://tc39.es/ecma262/#sec-get-arraybuffer.prototype.bytelength + // Step 2: Perform RequireInternalSlot(O, [[ArrayBufferData]]). + try { + if ('byteLength' in value) { + ReflectApply(ArrayBufferProtoByteLengthGetter, value, []); + return TO_STRING_BRAND_ARRAY_BUFFER; + } + // eslint-disable-next-line no-empty + } catch (_unused) {} + // Section 21.4.4 Properties of the Date Prototype Object + // https://tc39.es/ecma262/#thistimevalue + // Step 1: If Type(value) is Object and value has a [[DateValue]] internal slot, then + // a. Return value.[[DateValue]]. + // Step 2: Throw a TypeError exception. + try { + if ('toLocaleDateString' in value) { + ReflectApply(DateProtoValueOf, value, []); + return TO_STRING_BRAND_DATE; + } + // eslint-disable-next-line no-empty + } catch (_unused2) {} + // Section 24.1.3.10 get Map.prototype.size + // https://tc39.es/ecma262/#sec-get-map.prototype.size + // Step 2: Perform ? RequireInternalSlot(M, [[MapData]]). + try { + if ('get' in value && 'size' in value) { + ReflectApply(MapProtoSizeGetter, value, []); + return TO_STRING_BRAND_MAP; + } + // eslint-disable-next-line no-empty + } catch (_unused3) {} + // Section 24.2.3.9 get Set.prototype.size + // https://tc39.es/ecma262/#sec-get-set.prototype.size + // Step 2: Perform ? RequireInternalSlot(S, [[SetData]]). + try { + if ('add' in value && 'size' in value) { + ReflectApply(SetProtoSizeGetter, value, []); + return TO_STRING_BRAND_SET; + } + // eslint-disable-next-line no-empty + } catch (_unused4) {} + // Section 24.3.3.4 WeakMap.prototype.has ( key ) + // https://tc39.es/ecma262/#sec-weakmap.prototype.has + // Step 2: Perform RequireInternalSlot(M, [[WeakMapData]]). + try { + if ('get' in value && !('size' in value)) { + ReflectApply(WeakMapProtoHas, value, []); + return TO_STRING_BRAND_WEAK_MAP; + } + // eslint-disable-next-line no-empty + } catch (_unused5) {} + // Section 24.4.3.4 WeakSet.prototype.has ( value ) + // https://tc39.es/ecma262/#sec-weakset.prototype.has + // Step 2: 2. Perform RequireInternalSlot(S, [[WeakSetData]]). + try { + if ('add' in value && !('size' in value)) { + ReflectApply(WeakSetProtoHas, value, []); + return TO_STRING_BRAND_WEAK_SET; + } + // eslint-disable-next-line no-empty + } catch (_unused6) {} + // The following checks are for the rare occurrence of object, i.e. boxed, + // primitive values or those objects without a default @@toStringTag. + // Section 21.1.3 Properties of the Number Prototype Object + // https://tc39.es/ecma262/#thisnumbervalue + // Step 2: If Type(value) is Object and value has a [[NumberData]] internal slot, then + // a. Let n be value.[[NumberData]]. + // b. Assert: Type(n) is Number. + try { + if ('toPrecision' in value) { + ReflectApply(NumberProtoValueOf, value, []); + return TO_STRING_BRAND_NUMBER; + } + // eslint-disable-next-line no-empty + } catch (_unused7) {} + // Section 20.4.3 Properties of the Symbol Prototype Object + // https://tc39.es/ecma262/#thissymbolvalue + // Step 2: If Type(value) is Object and value has a [[SymbolData]] internal slot, then + // a. Let s be value.[[SymbolData]]. + // b. Assert: Type(s) is Symbol. + try { + if ('description' in value) { + ReflectApply(SymbolProtoValueOf, value, []); + return TO_STRING_BRAND_SYMBOL; + } + // eslint-disable-next-line no-empty + } catch (_unused8) {} + // Perform heavier checks last. + // Section 22.2.6.13 get RegExp.prototype.source + // https://tc39.es/ecma262/#sec-get-regexp.prototype.source + // Step 3: If R does not have an [[OriginalSource]] internal slot, then + // a. If SameValue(R, %RegExp.prototype%) is true, return "(?:)". + // b. Otherwise, throw a TypeError exception. + try { + if (ObjectHasOwn(value, 'lastIndex')) { + ReflectApply(RegExpProtoSourceGetter, value, []); + return TO_STRING_BRAND_REG_EXP; + } + // eslint-disable-next-line no-empty + } catch (_unused9) {} + // Section 22.1.3 Properties of the String Prototype Object + // https://tc39.es/ecma262/#thisstringvalue + // Step 2: If Type(value) is Object and value has a [[StringData]] internal slot, then + // a. Let s be value.[[StringData]]. + // b. Assert: Type(s) is String. + try { + if (ObjectHasOwn(value, 'length')) { + ReflectApply(StringProtoValueOf, value, []); + return TO_STRING_BRAND_STRING; + } + // eslint-disable-next-line no-empty + } catch (_unused10) {} + // Section 20.3.3 Properties of the Boolean Prototype Object + // https://tc39.es/ecma262/#thisbooleanvalue + // Step 2: If Type(value) is Object and value has a [[BooleanData]] internal slot, then + // a. Let b be value.[[BooleanData]]. + // b. Assert: Type(b) is Boolean. + try { + ReflectApply(BooleanProtoValueOf, value, []); + return TO_STRING_BRAND_BOOLEAN; + // eslint-disable-next-line no-empty + } catch (_unused11) {} + // istanbul ignore else: all platforms that LWS runs tests in support BigInt + if (SUPPORTS_BIG_INT) { + try { + // Section 21.2.3 Properties of the BigInt Prototype Object + // https://tc39.es/ecma262/#thisbigintvalue + // Step 2: If Type(value) is Object and value has a [[BigIntData]] internal slot, then + // a. Assert: Type(value.[[BigIntData]]) is BigInt. + ReflectApply(BigIntProtoValueOf, value, []); + return TO_STRING_BRAND_BIG_INT; + // eslint-disable-next-line no-empty + } catch (_unused12) {} + } + // Cannot detect brands for Arguments and Error objects. + return TO_STRING_BRAND_OBJECT; +} +function getBrand(value) { + // Section 20.1.3.6 Object.prototype.toString ( ) + // https://tc39.es/ecma262/#sec-object.prototype.tostring + if (value === null) { + return TO_STRING_BRAND_NULL; + } + if (value === undefined) { + return TO_STRING_BRAND_UNDEFINED; + } + // eslint-disable-next-line default-case + switch (typeof value) { + case 'bigint': + return TO_STRING_BRAND_BIG_INT; + case 'boolean': + return TO_STRING_BRAND_BOOLEAN; + case 'function': + return TO_STRING_BRAND_FUNCTION; + case 'number': + return TO_STRING_BRAND_NUMBER; + case 'string': + return TO_STRING_BRAND_STRING; + case 'symbol': + return TO_STRING_BRAND_SYMBOL; + } + if (ArrayIsArray(value)) { + return TO_STRING_BRAND_ARRAY; + } + return TO_STRING_TAG_SYMBOL in value ? getBrandByTrialAndError(value) : ReflectApply(ObjectProtoToString, value, []); +} +const { + parse: JSONParse +} = JSON; +// Used by '@locker/near-membrane-dom'. +const { + stringify: JSONStringify +} = JSON; +function getNearMembraneProxySerializedValue(object) { + if (typeof object === 'object' && object !== null || typeof object === 'function') { + // To extract the serialized value of a blue near-membrane proxy we must + // perform a two step handshake. First, we trigger the "has" trap for + // the `LOCKER_NEAR_MEMBRANE_SERIALIZED_VALUE_SYMBOL` property which + // must report `false`. Second, we trigger the "get" trap to return the + // serialized value. + return LOCKER_NEAR_MEMBRANE_SERIALIZED_VALUE_SYMBOL in object ? undefined : object[LOCKER_NEAR_MEMBRANE_SERIALIZED_VALUE_SYMBOL]; + } + return undefined; +} +function isNearMembraneProxy(value) { + if (typeof value === 'object' && value !== null || typeof value === 'function') { + // To extract the flag value of a blue near-membrane proxy we must + // perform a two step handshake. First, we trigger the "has" trap for + // the `LOCKER_NEAR_MEMBRANE_SYMBOL` property which must report `false`. + // Second, we trigger the "get" trap to return the flag value. + return !(LOCKER_NEAR_MEMBRANE_SYMBOL in value) && value[LOCKER_NEAR_MEMBRANE_SYMBOL] === true; + } + return false; +} +const SEEN_OBJECTS = toSafeMap(new MapCtor()); +function <span class="fstat-no" title="function not covered" >cloneBoxedPrimitive(</span>object) { +<span class="cstat-no" title="statement not covered" > return ObjectCtor(getNearMembraneProxySerializedValue(object));</span> +} +function cloneMap(map, queue) { + // Section 2.7.3 StructuredSerializeInternal: + // https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal + // Step 26.1.1: Let copiedList be a new empty List. + const clone = new MapCtor(); + // Step 26.1.2: For each Record { [[Key]], [[Value]] } entry of value.[[MapData]]... + const entriesIterable = ReflectApply(MapProtoEntries, map, []); + // Step 26.1.3 For each Record { [[Key]], [[Value]] } entry of copiedList: + let { + length: queueOffset + } = queue; + // eslint-disable-next-line no-constant-condition + while (true) { + const { + done, + value: subKeyValuePair + } = entriesIterable.next(); + if (done) { + break; + } + const { + 0: subKey, + 1: subValue + } = subKeyValuePair; + let subCloneKey; + // Step 26.1.3.1: Let serializedKey be ? StructuredSerializeInternal(entry.[[Key]], forStorage, memory). + queue[queueOffset++] = [subClone => { + subCloneKey = subClone; + }, subKey]; + // Step 26.1.3.2: Let serializedValue be ? StructuredSerializeInternal(entry.[[Value]], forStorage, memory). + queue[queueOffset++] = [subCloneValue => { + ReflectApply(MapProtoSet, clone, [subCloneKey, subCloneValue]); + }, subValue]; + } + return clone; +} +function <span class="fstat-no" title="function not covered" >cloneRegExp(</span>regexp) { + const { + flags, + source + } = <span class="cstat-no" title="statement not covered" >JSONParse(getNearMembraneProxySerializedValue(regexp));</span> +<span class="cstat-no" title="statement not covered" > return new RegExpCtor(source, flags);</span> +} +function cloneSet(set, queue) { + // Section 2.7.3 StructuredSerializeInternal: + // https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal + // Step 26.2.1: Let copiedList be a new empty List. + const clone = new SetCtor(); + // Step 26.2.2: For each entry of value.[[SetData]]... + const valuesIterable = ReflectApply(SetProtoValues, set, []); + // Step 26.2.3: For each entry of copiedList: + let { + length: queueOffset + } = queue; + // eslint-disable-next-line no-constant-condition + while (true) { + const { + done, + value: subValue + } = valuesIterable.next(); + if (done) { + break; + } + // Step 26.2.3.1: Let serializedEntry be ? StructuredSerializeInternal(entry, forStorage, memory). + queue[queueOffset++] = [subCloneValue => { + ReflectApply(SetProtoAdd, clone, [subCloneValue]); + }, subValue]; + } + return clone; +} +function enqueue(queue, originalValue, cloneValue) { + // Section 2.7.3 StructuredSerializeInternal: + // https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal + // Step 26.4: Otherwise, for each key in ! EnumerableOwnPropertyNames(value, key)... + // Note: Object.keys() performs EnumerableOwnPropertyNames() internally as + // defined in ECMA262: + // https://tc39.es/ecma262/#sec-object.keys + const keys = ObjectKeys(originalValue); + let { + length: queueOffset + } = queue; + for (let i = 0, { + length + } = keys; i < length; i += 1) { + // Step 26.4.1.1: Let inputValue be ? value.[[Get]](key, value). + // The [[Get]] operation is defined in ECMA262 for ordinary objects, + // argument objects, integer-indexed exotic objects, module namespace + // objects, and proxy objects. + // https://tc39.es/ecma262/#sec-ordinary-object-internal-methods-and-internal-slots-get-p-receiver + const key = keys[i]; + const subValue = originalValue[key]; + queue[queueOffset++] = [subCloneValue => { + // Step 26.4.1.3: Property descriptor attributes are not + // preserved during deserialization because only keys and + // values are captured in serialized.[[Properties]]. + cloneValue[key] = subCloneValue; + }, subValue]; + } +} +// This function is the unguarded internal variant of `partialStructuredClone()`. +// Any error thrown that is captured by `partialStructuredClone()` is treated as +// a `DataCloneError`. This function clones blue membrane proxied arrays, plain +// objects, maps, regexps, sets, and boxed primitives. The following non-membrane +// proxied objects are set by reference instead of cloning: +// ArrayBuffer +// BigInt64Array +// BigUint64Array +// Blob +// DataView +// Date +// DOMException +// DOMMatrix +// DOMMatrixReadOnly +// DOMPoint +// DOMPointReadOnly +// DOMQuad +// DOMRect +// DOMRectReadOnly +// Error +// EvalError +// File +// FileList +// Float32Array +// Float64Array +// ImageBitMap +// ImageData +// Int8Array +// Int16Array +// Int32Array +// RangeError +// ReferenceError +// SyntaxError +// TypeError +// Uint8Array +// Uint8ClampedArray +// Uint16Array +// Uint32Array +// URIError +// +// Note: +// This function performs brand checks using `Object.prototype.toString`. The +// results can be faked with `Symbol.toStringTag` property values and are a poor +// substitute for native internal slot checks. However, for our purposes they +// are perfectly fine and avoid having to repeatedly walk the prototype of proxied +// values. Cloned values should be passed to native methods, like `postMessage()`, +// which perform their own validation with internal slot checks. +function partialStructuredCloneInternal(value) { + // Using a queue instead of recursive function calls avoids call stack limits + // and enables cloning more complex and deeply nested objects. + // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Too_much_recursion + let result; + const queue = [[subClone => { + result = subClone; + }, value]]; + // eslint-disable-next-line no-labels + queueLoop: while (queue.length) { + // Section 2.7.3 StructuredSerializeInternal: + // https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal + // prettier-ignore + const { + 0: setter, + 1: originalValue + } = ReflectApply(ArrayProtoShift, queue, []); + // Step 4: If Type(value) is Undefined, Null, Boolean, Number, BigInt, or String + if (originalValue === null || originalValue === undefined || typeof originalValue === 'boolean' || typeof originalValue === 'number' || typeof originalValue === 'string' || typeof originalValue === 'bigint') { + setter(originalValue); + // eslint-disable-next-line no-continue, no-extra-label, no-labels + continue queueLoop; + } + // Step 5: If Type(value) is Symbol, then throw a 'DataCloneError' DOMException. + if (typeof originalValue === 'symbol') { + // Stop cloning and set the original value and defer throwing to + // native methods. + setter(originalValue); + // eslint-disable-next-line no-extra-label, no-labels + break queueLoop; + } + // To support circular references check if the original value has been + // seen. If it has then use the clone associated with its record instead + // of creating a new clone. + let cloneValue = SEEN_OBJECTS.get(originalValue); + if (cloneValue) { + setter(cloneValue); + // eslint-disable-next-line no-continue, no-extra-label, no-labels + continue queueLoop; + } + // Perform a brand check on originalValue. + const brand = getBrand(originalValue); + // eslint-disable-next-line default-case + switch (brand) { + // Step 19: Otherwise, if value is a platform object... + case TO_STRING_BRAND_OBJECT: + { + const proto = ReflectGetPrototypeOf(originalValue); + if (proto === ObjectProto || proto === null || + // Possible `Object.prototype` from another document. + ReflectGetPrototypeOf(proto) === null) { + cloneValue = {}; + // Step 19.4: Set deep to true. + enqueue(queue, originalValue, cloneValue); + } + break; + } + // Step 18: Otherwise, if value is an Array exotic object... + case TO_STRING_BRAND_ARRAY: + // Step 18.1 Let valueLenDescriptor be ? OrdinaryGetOwnProperty(value, 'length'). + // Note: Rather than perform the more complex OrdinaryGetOwnProperty() + // operation for 'length' because it is a non-configurable property + // we can access it with the simpler [[Get]]() operation defined + // in ECMA262. + // https://tc39.es/ecma262/#sec-integer-indexed-exotic-objects-get-p-receiver + cloneValue = ArrayCtor(originalValue.length); + // Step 18.4: Set deep to true. + enqueue(queue, originalValue, cloneValue); + break; + // Step 15: Otherwise, if value has [[MapData]] internal slot... + // Step 15.2: Set deep to true. + case TO_STRING_BRAND_MAP: + cloneValue = cloneMap(originalValue, queue); + break; + // Step 16: Otherwise, if value has [[SetData]] internal slot... + // Step 16.2: Set deep to true. + case TO_STRING_BRAND_SET: + cloneValue = cloneSet(originalValue, queue); + break; + } + if (cloneValue === undefined) { + // istanbul ignore else + if (!isNearMembraneProxy(originalValue)) { + // Skip cloning non-membrane proxied objects. + SEEN_OBJECTS.set(originalValue, originalValue); + setter(originalValue); + // eslint-disable-next-line no-extra-label, no-labels + continue queueLoop; + } + // Cases ordered by a guestimate on frequency of encounter. + // eslint-disable-next-line default-case +<span class="cstat-no" title="statement not covered" > switch (brand) {</span> + // Step 12: Otherwise, if value has a [[RegExpMatcher]] internal slot... + case TO_STRING_BRAND_REG_EXP: +<span class="cstat-no" title="statement not covered" > cloneValue = cloneRegExp(originalValue);</span> +<span class="cstat-no" title="statement not covered" > break;</span> + // Step 7: If value has a [[BooleanData]] internal slot... + case TO_STRING_BRAND_BOOLEAN: + // Step 8: Otherwise, if value has a [[NumberData]] internal slot... + // eslint-disable-next-line no-fallthrough + case TO_STRING_BRAND_NUMBER: + // Step 9: Otherwise, if value has a [[BigIntData]] internal slot... + // eslint-disable-next-line no-fallthrough + case TO_STRING_BRAND_BIG_INT: + // Step 10: Otherwise, if value has a [[StringData]] internal slot... + // eslint-disable-next-line no-fallthrough + case TO_STRING_BRAND_STRING: +<span class="cstat-no" title="statement not covered" > cloneValue = cloneBoxedPrimitive(originalValue);</span> +<span class="cstat-no" title="statement not covered" > break;</span> + } + } + // Step 21: Otherwise, if IsCallable(value) is true, then throw a 'DataCloneError' + // Step 20: Otherwise, if value is a platform object, then throw a 'DataCloneError' + if (cloneValue === undefined) { + // Stop cloning and set the original value and defer throwing to + // native methods. +<span class="cstat-no" title="statement not covered" > setter(originalValue);</span> + // eslint-disable-next-line no-extra-label, no-labels +<span class="cstat-no" title="statement not covered" > break queueLoop;</span> + } + SEEN_OBJECTS.set(originalValue, cloneValue); + setter(cloneValue); + } + return result; +} +function partialStructuredClone(value) { + let result = value; + try { + result = partialStructuredCloneInternal(value); + // eslint-disable-next-line no-empty + } catch (_unused13) {} + SEEN_OBJECTS.clear(); + return result; +} +const ErrorCtor = Error; +const TypeErrorCtor = TypeError; +function noop() { + // No operation performed. +} + +// Used by '@locker/near-membrane-dom'. +const { + min: MathMin +} = Math; +const ProxyCtor = Proxy; +export { ArrayBufferProtoByteLengthGetter, ArrayCtor, ArrayIsArray, ArrayProtoFilter, ArrayProtoFind, ArrayProtoIncludes, ArrayProtoIndexOf, ArrayProtoMap, ArrayProtoPush, ArrayProtoShift, ArrayProtoSort, ArrayProtoSplice, ArrayProtoUnshift, BigIntProtoValueOf, BooleanProtoValueOf, CHAR_ELLIPSIS, DateProtoValueOf, ERR_ILLEGAL_PROPERTY_ACCESS, ErrorCtor, JSONParse, JSONStringify, LOCKER_IDENTIFIER_MARKER, LOCKER_NEAR_MEMBRANE_SERIALIZED_VALUE_SYMBOL, LOCKER_NEAR_MEMBRANE_SYMBOL, LOCKER_UNMINIFIED_FLAG, MapCtor, MapProtoEntries, MapProtoSet, MapProtoSizeGetter, MathMin, NumberCtor, NumberIsFinite, NumberIsInteger, NumberIsNaN, NumberProtoValueOf, ObjectAssign, ObjectCtor, ObjectFreeze, ObjectHasOwn, ObjectKeys, ObjectLookupOwnGetter, ObjectLookupOwnSetter, ObjectProto, ObjectProtoToString, ProxyCtor, ReflectApply, ReflectDefineProperty, ReflectDeleteProperty, ReflectGetPrototypeOf, ReflectOwnKeys, ReflectSetPrototypeOf, RegExpCtor, RegExpProtoSourceGetter, RegExpProtoTest, SUPPORTS_BIG_INT, SYMBOL_LIVE_OBJECT, SetCtor, SetProtoAdd, SetProtoHas, SetProtoSizeGetter, SetProtoValues, StringCtor, StringProtoSlice, StringProtoValueOf, SymbolFor, SymbolIterator, SymbolProtoValueOf, SymbolToStringTag, SymbolUnscopables, TO_STRING_BRAND_ARRAY, TO_STRING_BRAND_ARRAY_BUFFER, TO_STRING_BRAND_BIG_INT, TO_STRING_BRAND_BOOLEAN, TO_STRING_BRAND_DATE, TO_STRING_BRAND_FUNCTION, TO_STRING_BRAND_MAP, TO_STRING_BRAND_NULL, TO_STRING_BRAND_NUMBER, TO_STRING_BRAND_OBJECT, TO_STRING_BRAND_REG_EXP, TO_STRING_BRAND_SET, TO_STRING_BRAND_STRING, TO_STRING_BRAND_SYMBOL, TO_STRING_BRAND_UNDEFINED, TO_STRING_BRAND_WEAK_MAP, TO_STRING_BRAND_WEAK_SET, TypeErrorCtor, WeakMapCtor, WeakMapProtoHas, WeakSetCtor, WeakSetProtoHas, getBrand, getNearMembraneProxySerializedValue, isNearMembraneProxy, isObject, noop, partialStructuredClone, toSafeArray, toSafeMap, toSafeWeakMap, toSafeWeakSet }; + </pre></td></tr></table></pre> + + <div class='push'></div><!-- for sticky footer --> + </div><!-- /wrapper --> + <div class='footer quiet pad2 space-top1 center small'> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> + at Mon Nov 25 2024 16:43:41 GMT+0000 (Coordinated Universal Time) + </div> + <script src="../../prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="../../sorter.js"></script> + <script src="../../block-navigation.js"></script> + </body> +</html> + \ No newline at end of file diff --git a/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/Array.ts.html b/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/Array.ts.html new file mode 100644 index 00000000..43c9ccf0 --- /dev/null +++ b/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/Array.ts.html @@ -0,0 +1,391 @@ + +<!doctype html> +<html lang="en"> + +<head> + <title>Code coverage report for near-membrane-shared/src/Array.ts</title> + <meta charset="utf-8" /> + <link rel="stylesheet" href="../../prettify.css" /> + <link rel="stylesheet" href="../../base.css" /> + <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <style type='text/css'> + .coverage-summary .sorter { + background-image: url(../../sort-arrow-sprite.png); + } + </style> +</head> + +<body> +<div class='wrapper'> + <div class='pad1'> + <h1><a href="../../index.html">All files</a> / <a href="index.html">near-membrane-shared/src</a> Array.ts</h1> + <div class='clearfix'> + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Statements</span> + <span class='fraction'>43/43</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Branches</span> + <span class='fraction'>0/0</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Functions</span> + <span class='fraction'>1/1</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Lines</span> + <span class='fraction'>43/43</span> + </div> + + + </div> + <p class="quiet"> + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + </p> + <template id="filterTemplate"> + <div class="quiet"> + Filter: + <input oninput="onInput()" type="search" id="fileSearch"> + </div> + </template> + </div> + <div class='status-line high'></div> + <pre><table class="coverage"> +<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a> +<a name='L2'></a><a href='#L2'>2</a> +<a name='L3'></a><a href='#L3'>3</a> +<a name='L4'></a><a href='#L4'>4</a> +<a name='L5'></a><a href='#L5'>5</a> +<a name='L6'></a><a href='#L6'>6</a> +<a name='L7'></a><a href='#L7'>7</a> +<a name='L8'></a><a href='#L8'>8</a> +<a name='L9'></a><a href='#L9'>9</a> +<a name='L10'></a><a href='#L10'>10</a> +<a name='L11'></a><a href='#L11'>11</a> +<a name='L12'></a><a href='#L12'>12</a> +<a name='L13'></a><a href='#L13'>13</a> +<a name='L14'></a><a href='#L14'>14</a> +<a name='L15'></a><a href='#L15'>15</a> +<a name='L16'></a><a href='#L16'>16</a> +<a name='L17'></a><a href='#L17'>17</a> +<a name='L18'></a><a href='#L18'>18</a> +<a name='L19'></a><a href='#L19'>19</a> +<a name='L20'></a><a href='#L20'>20</a> +<a name='L21'></a><a href='#L21'>21</a> +<a name='L22'></a><a href='#L22'>22</a> +<a name='L23'></a><a href='#L23'>23</a> +<a name='L24'></a><a href='#L24'>24</a> +<a name='L25'></a><a href='#L25'>25</a> +<a name='L26'></a><a href='#L26'>26</a> +<a name='L27'></a><a href='#L27'>27</a> +<a name='L28'></a><a href='#L28'>28</a> +<a name='L29'></a><a href='#L29'>29</a> +<a name='L30'></a><a href='#L30'>30</a> +<a name='L31'></a><a href='#L31'>31</a> +<a name='L32'></a><a href='#L32'>32</a> +<a name='L33'></a><a href='#L33'>33</a> +<a name='L34'></a><a href='#L34'>34</a> +<a name='L35'></a><a href='#L35'>35</a> +<a name='L36'></a><a href='#L36'>36</a> +<a name='L37'></a><a href='#L37'>37</a> +<a name='L38'></a><a href='#L38'>38</a> +<a name='L39'></a><a href='#L39'>39</a> +<a name='L40'></a><a href='#L40'>40</a> +<a name='L41'></a><a href='#L41'>41</a> +<a name='L42'></a><a href='#L42'>42</a> +<a name='L43'></a><a href='#L43'>43</a> +<a name='L44'></a><a href='#L44'>44</a> +<a name='L45'></a><a href='#L45'>45</a> +<a name='L46'></a><a href='#L46'>46</a> +<a name='L47'></a><a href='#L47'>47</a> +<a name='L48'></a><a href='#L48'>48</a> +<a name='L49'></a><a href='#L49'>49</a> +<a name='L50'></a><a href='#L50'>50</a> +<a name='L51'></a><a href='#L51'>51</a> +<a name='L52'></a><a href='#L52'>52</a> +<a name='L53'></a><a href='#L53'>53</a> +<a name='L54'></a><a href='#L54'>54</a> +<a name='L55'></a><a href='#L55'>55</a> +<a name='L56'></a><a href='#L56'>56</a> +<a name='L57'></a><a href='#L57'>57</a> +<a name='L58'></a><a href='#L58'>58</a> +<a name='L59'></a><a href='#L59'>59</a> +<a name='L60'></a><a href='#L60'>60</a> +<a name='L61'></a><a href='#L61'>61</a> +<a name='L62'></a><a href='#L62'>62</a> +<a name='L63'></a><a href='#L63'>63</a> +<a name='L64'></a><a href='#L64'>64</a> +<a name='L65'></a><a href='#L65'>65</a> +<a name='L66'></a><a href='#L66'>66</a> +<a name='L67'></a><a href='#L67'>67</a> +<a name='L68'></a><a href='#L68'>68</a> +<a name='L69'></a><a href='#L69'>69</a> +<a name='L70'></a><a href='#L70'>70</a> +<a name='L71'></a><a href='#L71'>71</a> +<a name='L72'></a><a href='#L72'>72</a> +<a name='L73'></a><a href='#L73'>73</a> +<a name='L74'></a><a href='#L74'>74</a> +<a name='L75'></a><a href='#L75'>75</a> +<a name='L76'></a><a href='#L76'>76</a> +<a name='L77'></a><a href='#L77'>77</a> +<a name='L78'></a><a href='#L78'>78</a> +<a name='L79'></a><a href='#L79'>79</a> +<a name='L80'></a><a href='#L80'>80</a> +<a name='L81'></a><a href='#L81'>81</a> +<a name='L82'></a><a href='#L82'>82</a> +<a name='L83'></a><a href='#L83'>83</a> +<a name='L84'></a><a href='#L84'>84</a> +<a name='L85'></a><a href='#L85'>85</a> +<a name='L86'></a><a href='#L86'>86</a> +<a name='L87'></a><a href='#L87'>87</a> +<a name='L88'></a><a href='#L88'>88</a> +<a name='L89'></a><a href='#L89'>89</a> +<a name='L90'></a><a href='#L90'>90</a> +<a name='L91'></a><a href='#L91'>91</a> +<a name='L92'></a><a href='#L92'>92</a> +<a name='L93'></a><a href='#L93'>93</a> +<a name='L94'></a><a href='#L94'>94</a> +<a name='L95'></a><a href='#L95'>95</a> +<a name='L96'></a><a href='#L96'>96</a> +<a name='L97'></a><a href='#L97'>97</a> +<a name='L98'></a><a href='#L98'>98</a> +<a name='L99'></a><a href='#L99'>99</a> +<a name='L100'></a><a href='#L100'>100</a> +<a name='L101'></a><a href='#L101'>101</a> +<a name='L102'></a><a href='#L102'>102</a> +<a name='L103'></a><a href='#L103'>103</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">39x</span> +<span class="cline-any cline-yes">39x</span> +<span class="cline-any cline-yes">39x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">39x</span> +<span class="cline-any cline-yes">39x</span> +<span class="cline-any cline-yes">39x</span> +<span class="cline-any cline-yes">39x</span> +<span class="cline-any cline-yes">39x</span> +<span class="cline-any cline-yes">39x</span> +<span class="cline-any cline-yes">39x</span> +<span class="cline-any cline-yes">39x</span> +<span class="cline-any cline-yes">39x</span> +<span class="cline-any cline-yes">39x</span> +<span class="cline-any cline-yes">39x</span> +<span class="cline-any cline-yes">39x</span> +<span class="cline-any cline-yes">39x</span> +<span class="cline-any cline-yes">39x</span> +<span class="cline-any cline-yes">39x</span> +<span class="cline-any cline-yes">39x</span> +<span class="cline-any cline-yes">39x</span> +<span class="cline-any cline-yes">39x</span> +<span class="cline-any cline-yes">39x</span> +<span class="cline-any cline-yes">39x</span> +<span class="cline-any cline-yes">39x</span> +<span class="cline-any cline-yes">39x</span> +<span class="cline-any cline-yes">39x</span> +<span class="cline-any cline-yes">39x</span> +<span class="cline-any cline-yes">39x</span> +<span class="cline-any cline-yes">39x</span> +<span class="cline-any cline-yes">39x</span> +<span class="cline-any cline-yes">39x</span> +<span class="cline-any cline-yes">39x</span> +<span class="cline-any cline-yes">39x</span> +<span class="cline-any cline-yes">39x</span> +<span class="cline-any cline-yes">39x</span> +<span class="cline-any cline-yes">39x</span> +<span class="cline-any cline-yes">39x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { ObjectAssign, ObjectFreeze } from './Object'; +import { ReflectSetPrototypeOf } from './Reflect'; +import { SymbolIterator, SymbolUnscopables } from './Symbol'; + +export const ArrayCtor = Array; + +const { prototype: ArrayProto } = ArrayCtor; + +const { + at: ArrayProtoAt, + concat: ArrayProtoConcat, + copyWithin: ArrayProtoCopyWithin, + entries: ArrayProtoEntries, + every: ArrayProtoEvery, + fill: ArrayProtoFill, + findIndex: ArrayProtoFindIndex, + flat: ArrayProtoFlat, + flatMap: ArrayProtoFlatMap, + forEach: ArrayProtoForEach, + join: ArrayProtoJoin, + keys: ArrayProtoKeys, + lastIndexOf: ArrayProtoLastIndexOf, + pop: ArrayProtoPop, + reduce: ArrayProtoReduce, + reduceRight: ArrayProtoReduceRight, + reverse: ArrayProtoReverse, + slice: ArrayProtoSlice, + some: ArrayProtoSome, + toLocaleString: ArrayProtoToLocaleString, + toString: ArrayProtoToString, + values: ArrayProtoValues, + [SymbolIterator as any]: ArrayProtoSymbolIterator, +} = ArrayProto; + +const ArrayUnscopables = ObjectFreeze( + ObjectAssign({ __proto__: null }, ArrayProto[SymbolUnscopables as any]) +); + +export const { + filter: ArrayProtoFilter, + find: ArrayProtoFind, + includes: ArrayProtoIncludes, + indexOf: ArrayProtoIndexOf, + map: ArrayProtoMap, + push: ArrayProtoPush, + shift: ArrayProtoShift, + splice: ArrayProtoSplice, + sort: ArrayProtoSort, + unshift: ArrayProtoUnshift, +} = ArrayProto; + +export const { isArray: ArrayIsArray } = ArrayCtor; + +export function toSafeArray<T extends any[]>(array: T): T { + ReflectSetPrototypeOf(array, null); + array.at = ArrayProtoAt; + array.concat = ArrayProtoConcat; + // *** DO NOT SET THE ARRAY CONSTRUCTOR PROPERTY *** + // https://bugs.chromium.org/p/v8/issues/detail?id=13202 + // https://source.chromium.org/chromium/chromium/src/+/main:v8/src/objects/lookup.cc;l=196-215?q=IsArraySpeciesLookupChainIntact + // + // In V8 setting the constructor property of an array, promise, regexp, or + // typed array triggers a de-opt because it could change an instance's + // @@species. This de-opt affects at least `Array#splice` and occurs even + // if the prototype of the array is change or nulled beforehand. Further, + // the de-opt persists after a page refresh. It is not until navigating to + // a different page that the performance of `Array#splice` is restored. + array.copyWithin = ArrayProtoCopyWithin as any; + array.entries = ArrayProtoEntries; + array.every = ArrayProtoEvery; + array.fill = ArrayProtoFill as any; + array.filter = ArrayProtoFilter; + array.find = ArrayProtoFind; + array.findIndex = ArrayProtoFindIndex; + array.flat = ArrayProtoFlat; + array.flatMap = ArrayProtoFlatMap; + array.forEach = ArrayProtoForEach; + array.includes = ArrayProtoIncludes; + array.indexOf = ArrayProtoIndexOf; + array.join = ArrayProtoJoin; + array.keys = ArrayProtoKeys; + array.lastIndexOf = ArrayProtoLastIndexOf; + array.map = ArrayProtoMap; + array.pop = ArrayProtoPop; + array.push = ArrayProtoPush; + array.reduce = ArrayProtoReduce; + array.reduceRight = ArrayProtoReduceRight; + array.reverse = ArrayProtoReverse; + array.shift = ArrayProtoShift; + array.slice = ArrayProtoSlice; + array.some = ArrayProtoSome; + array.sort = ArrayProtoSort as any; + array.splice = ArrayProtoSplice; + array.toLocaleString = ArrayProtoToLocaleString; + array.toString = ArrayProtoToString; + array.unshift = ArrayProtoUnshift; + array.values = ArrayProtoValues; + array[SymbolIterator as any] = ArrayProtoSymbolIterator; + array[SymbolUnscopables as any] = ArrayUnscopables; + ReflectSetPrototypeOf(array, ArrayProto); + return array; +} + </pre></td></tr></table></pre> + + <div class='push'></div><!-- for sticky footer --> + </div><!-- /wrapper --> + <div class='footer quiet pad2 space-top1 center small'> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> + at Mon Nov 25 2024 16:43:41 GMT+0000 (Coordinated Universal Time) + </div> + <script src="../../prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="../../sorter.js"></script> + <script src="../../block-navigation.js"></script> + </body> +</html> + \ No newline at end of file diff --git a/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/ArrayBuffer.ts.html b/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/ArrayBuffer.ts.html new file mode 100644 index 00000000..06304317 --- /dev/null +++ b/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/ArrayBuffer.ts.html @@ -0,0 +1,103 @@ + +<!doctype html> +<html lang="en"> + +<head> + <title>Code coverage report for near-membrane-shared/src/ArrayBuffer.ts</title> + <meta charset="utf-8" /> + <link rel="stylesheet" href="../../prettify.css" /> + <link rel="stylesheet" href="../../base.css" /> + <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <style type='text/css'> + .coverage-summary .sorter { + background-image: url(../../sort-arrow-sprite.png); + } + </style> +</head> + +<body> +<div class='wrapper'> + <div class='pad1'> + <h1><a href="../../index.html">All files</a> / <a href="index.html">near-membrane-shared/src</a> ArrayBuffer.ts</h1> + <div class='clearfix'> + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Statements</span> + <span class='fraction'>1/1</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Branches</span> + <span class='fraction'>0/0</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Functions</span> + <span class='fraction'>0/0</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Lines</span> + <span class='fraction'>1/1</span> + </div> + + + </div> + <p class="quiet"> + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + </p> + <template id="filterTemplate"> + <div class="quiet"> + Filter: + <input oninput="onInput()" type="search" id="fileSearch"> + </div> + </template> + </div> + <div class='status-line high'></div> + <pre><table class="coverage"> +<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a> +<a name='L2'></a><a href='#L2'>2</a> +<a name='L3'></a><a href='#L3'>3</a> +<a name='L4'></a><a href='#L4'>4</a> +<a name='L5'></a><a href='#L5'>5</a> +<a name='L6'></a><a href='#L6'>6</a> +<a name='L7'></a><a href='#L7'>7</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { ObjectLookupOwnGetter } from './Object'; + +export const ArrayBufferProtoByteLengthGetter = ObjectLookupOwnGetter( + ArrayBuffer.prototype, + 'byteLength' +)!; + </pre></td></tr></table></pre> + + <div class='push'></div><!-- for sticky footer --> + </div><!-- /wrapper --> + <div class='footer quiet pad2 space-top1 center small'> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> + at Mon Nov 25 2024 16:43:41 GMT+0000 (Coordinated Universal Time) + </div> + <script src="../../prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="../../sorter.js"></script> + <script src="../../block-navigation.js"></script> + </body> +</html> + \ No newline at end of file diff --git a/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/BigInt.ts.html b/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/BigInt.ts.html new file mode 100644 index 00000000..48bef76d --- /dev/null +++ b/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/BigInt.ts.html @@ -0,0 +1,103 @@ + +<!doctype html> +<html lang="en"> + +<head> + <title>Code coverage report for near-membrane-shared/src/BigInt.ts</title> + <meta charset="utf-8" /> + <link rel="stylesheet" href="../../prettify.css" /> + <link rel="stylesheet" href="../../base.css" /> + <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <style type='text/css'> + .coverage-summary .sorter { + background-image: url(../../sort-arrow-sprite.png); + } + </style> +</head> + +<body> +<div class='wrapper'> + <div class='pad1'> + <h1><a href="../../index.html">All files</a> / <a href="index.html">near-membrane-shared/src</a> BigInt.ts</h1> + <div class='clearfix'> + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Statements</span> + <span class='fraction'>2/2</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Branches</span> + <span class='fraction'>1/1</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Functions</span> + <span class='fraction'>0/0</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Lines</span> + <span class='fraction'>2/2</span> + </div> + + + </div> + <p class="quiet"> + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + </p> + <template id="filterTemplate"> + <div class="quiet"> + Filter: + <input oninput="onInput()" type="search" id="fileSearch"> + </div> + </template> + </div> + <div class='status-line high'></div> + <pre><table class="coverage"> +<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a> +<a name='L2'></a><a href='#L2'>2</a> +<a name='L3'></a><a href='#L3'>3</a> +<a name='L4'></a><a href='#L4'>4</a> +<a name='L5'></a><a href='#L5'>5</a> +<a name='L6'></a><a href='#L6'>6</a> +<a name='L7'></a><a href='#L7'>7</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">// https://caniuse.com/bigint +export const SUPPORTS_BIG_INT = typeof BigInt === 'function'; + +export const BigIntProtoValueOf = SUPPORTS_BIG_INT + ? BigInt.prototype.valueOf + : /* istanbul ignore next: currently unreachable via tests */ undefined; + </pre></td></tr></table></pre> + + <div class='push'></div><!-- for sticky footer --> + </div><!-- /wrapper --> + <div class='footer quiet pad2 space-top1 center small'> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> + at Mon Nov 25 2024 16:43:41 GMT+0000 (Coordinated Universal Time) + </div> + <script src="../../prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="../../sorter.js"></script> + <script src="../../block-navigation.js"></script> + </body> +</html> + \ No newline at end of file diff --git a/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/Boolean.ts.html b/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/Boolean.ts.html new file mode 100644 index 00000000..cee8ed0b --- /dev/null +++ b/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/Boolean.ts.html @@ -0,0 +1,88 @@ + +<!doctype html> +<html lang="en"> + +<head> + <title>Code coverage report for near-membrane-shared/src/Boolean.ts</title> + <meta charset="utf-8" /> + <link rel="stylesheet" href="../../prettify.css" /> + <link rel="stylesheet" href="../../base.css" /> + <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <style type='text/css'> + .coverage-summary .sorter { + background-image: url(../../sort-arrow-sprite.png); + } + </style> +</head> + +<body> +<div class='wrapper'> + <div class='pad1'> + <h1><a href="../../index.html">All files</a> / <a href="index.html">near-membrane-shared/src</a> Boolean.ts</h1> + <div class='clearfix'> + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Statements</span> + <span class='fraction'>1/1</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Branches</span> + <span class='fraction'>0/0</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Functions</span> + <span class='fraction'>0/0</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Lines</span> + <span class='fraction'>1/1</span> + </div> + + + </div> + <p class="quiet"> + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + </p> + <template id="filterTemplate"> + <div class="quiet"> + Filter: + <input oninput="onInput()" type="search" id="fileSearch"> + </div> + </template> + </div> + <div class='status-line high'></div> + <pre><table class="coverage"> +<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a> +<a name='L2'></a><a href='#L2'>2</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">export const { valueOf: BooleanProtoValueOf } = Boolean.prototype; + </pre></td></tr></table></pre> + + <div class='push'></div><!-- for sticky footer --> + </div><!-- /wrapper --> + <div class='footer quiet pad2 space-top1 center small'> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> + at Mon Nov 25 2024 16:43:41 GMT+0000 (Coordinated Universal Time) + </div> + <script src="../../prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="../../sorter.js"></script> + <script src="../../block-navigation.js"></script> + </body> +</html> + \ No newline at end of file diff --git a/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/Date.ts.html b/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/Date.ts.html new file mode 100644 index 00000000..64222a98 --- /dev/null +++ b/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/Date.ts.html @@ -0,0 +1,88 @@ + +<!doctype html> +<html lang="en"> + +<head> + <title>Code coverage report for near-membrane-shared/src/Date.ts</title> + <meta charset="utf-8" /> + <link rel="stylesheet" href="../../prettify.css" /> + <link rel="stylesheet" href="../../base.css" /> + <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <style type='text/css'> + .coverage-summary .sorter { + background-image: url(../../sort-arrow-sprite.png); + } + </style> +</head> + +<body> +<div class='wrapper'> + <div class='pad1'> + <h1><a href="../../index.html">All files</a> / <a href="index.html">near-membrane-shared/src</a> Date.ts</h1> + <div class='clearfix'> + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Statements</span> + <span class='fraction'>1/1</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Branches</span> + <span class='fraction'>0/0</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Functions</span> + <span class='fraction'>0/0</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Lines</span> + <span class='fraction'>1/1</span> + </div> + + + </div> + <p class="quiet"> + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + </p> + <template id="filterTemplate"> + <div class="quiet"> + Filter: + <input oninput="onInput()" type="search" id="fileSearch"> + </div> + </template> + </div> + <div class='status-line high'></div> + <pre><table class="coverage"> +<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a> +<a name='L2'></a><a href='#L2'>2</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">export const { valueOf: DateProtoValueOf } = Date.prototype; + </pre></td></tr></table></pre> + + <div class='push'></div><!-- for sticky footer --> + </div><!-- /wrapper --> + <div class='footer quiet pad2 space-top1 center small'> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> + at Mon Nov 25 2024 16:43:41 GMT+0000 (Coordinated Universal Time) + </div> + <script src="../../prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="../../sorter.js"></script> + <script src="../../block-navigation.js"></script> + </body> +</html> + \ No newline at end of file diff --git a/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/Error.ts.html b/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/Error.ts.html new file mode 100644 index 00000000..fbf72011 --- /dev/null +++ b/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/Error.ts.html @@ -0,0 +1,91 @@ + +<!doctype html> +<html lang="en"> + +<head> + <title>Code coverage report for near-membrane-shared/src/Error.ts</title> + <meta charset="utf-8" /> + <link rel="stylesheet" href="../../prettify.css" /> + <link rel="stylesheet" href="../../base.css" /> + <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <style type='text/css'> + .coverage-summary .sorter { + background-image: url(../../sort-arrow-sprite.png); + } + </style> +</head> + +<body> +<div class='wrapper'> + <div class='pad1'> + <h1><a href="../../index.html">All files</a> / <a href="index.html">near-membrane-shared/src</a> Error.ts</h1> + <div class='clearfix'> + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Statements</span> + <span class='fraction'>2/2</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Branches</span> + <span class='fraction'>0/0</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Functions</span> + <span class='fraction'>0/0</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Lines</span> + <span class='fraction'>2/2</span> + </div> + + + </div> + <p class="quiet"> + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + </p> + <template id="filterTemplate"> + <div class="quiet"> + Filter: + <input oninput="onInput()" type="search" id="fileSearch"> + </div> + </template> + </div> + <div class='status-line high'></div> + <pre><table class="coverage"> +<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a> +<a name='L2'></a><a href='#L2'>2</a> +<a name='L3'></a><a href='#L3'>3</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">export const ErrorCtor = Error; +export const TypeErrorCtor = TypeError; + </pre></td></tr></table></pre> + + <div class='push'></div><!-- for sticky footer --> + </div><!-- /wrapper --> + <div class='footer quiet pad2 space-top1 center small'> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> + at Mon Nov 25 2024 16:43:41 GMT+0000 (Coordinated Universal Time) + </div> + <script src="../../prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="../../sorter.js"></script> + <script src="../../block-navigation.js"></script> + </body> +</html> + \ No newline at end of file diff --git a/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/Function.ts.html b/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/Function.ts.html new file mode 100644 index 00000000..a3f2d834 --- /dev/null +++ b/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/Function.ts.html @@ -0,0 +1,94 @@ + +<!doctype html> +<html lang="en"> + +<head> + <title>Code coverage report for near-membrane-shared/src/Function.ts</title> + <meta charset="utf-8" /> + <link rel="stylesheet" href="../../prettify.css" /> + <link rel="stylesheet" href="../../base.css" /> + <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <style type='text/css'> + .coverage-summary .sorter { + background-image: url(../../sort-arrow-sprite.png); + } + </style> +</head> + +<body> +<div class='wrapper'> + <div class='pad1'> + <h1><a href="../../index.html">All files</a> / <a href="index.html">near-membrane-shared/src</a> Function.ts</h1> + <div class='clearfix'> + + <div class='fl pad1y space-right2'> + <span class="strong">0% </span> + <span class="quiet">Statements</span> + <span class='fraction'>0/0</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">0% </span> + <span class="quiet">Branches</span> + <span class='fraction'>0/0</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">0% </span> + <span class="quiet">Functions</span> + <span class='fraction'>1/1</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">0% </span> + <span class="quiet">Lines</span> + <span class='fraction'>0/0</span> + </div> + + + </div> + <p class="quiet"> + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + </p> + <template id="filterTemplate"> + <div class="quiet"> + Filter: + <input oninput="onInput()" type="search" id="fileSearch"> + </div> + </template> + </div> + <div class='status-line low'></div> + <pre><table class="coverage"> +<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a> +<a name='L2'></a><a href='#L2'>2</a> +<a name='L3'></a><a href='#L3'>3</a> +<a name='L4'></a><a href='#L4'>4</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">export function noop() { + // No operation performed. +} + </pre></td></tr></table></pre> + + <div class='push'></div><!-- for sticky footer --> + </div><!-- /wrapper --> + <div class='footer quiet pad2 space-top1 center small'> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> + at Mon Nov 25 2024 16:43:41 GMT+0000 (Coordinated Universal Time) + </div> + <script src="../../prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="../../sorter.js"></script> + <script src="../../block-navigation.js"></script> + </body> +</html> + \ No newline at end of file diff --git a/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/JSON.ts.html b/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/JSON.ts.html new file mode 100644 index 00000000..ae008f3c --- /dev/null +++ b/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/JSON.ts.html @@ -0,0 +1,97 @@ + +<!doctype html> +<html lang="en"> + +<head> + <title>Code coverage report for near-membrane-shared/src/JSON.ts</title> + <meta charset="utf-8" /> + <link rel="stylesheet" href="../../prettify.css" /> + <link rel="stylesheet" href="../../base.css" /> + <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <style type='text/css'> + .coverage-summary .sorter { + background-image: url(../../sort-arrow-sprite.png); + } + </style> +</head> + +<body> +<div class='wrapper'> + <div class='pad1'> + <h1><a href="../../index.html">All files</a> / <a href="index.html">near-membrane-shared/src</a> JSON.ts</h1> + <div class='clearfix'> + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Statements</span> + <span class='fraction'>2/2</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Branches</span> + <span class='fraction'>0/0</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Functions</span> + <span class='fraction'>0/0</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Lines</span> + <span class='fraction'>2/2</span> + </div> + + + </div> + <p class="quiet"> + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + </p> + <template id="filterTemplate"> + <div class="quiet"> + Filter: + <input oninput="onInput()" type="search" id="fileSearch"> + </div> + </template> + </div> + <div class='status-line high'></div> + <pre><table class="coverage"> +<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a> +<a name='L2'></a><a href='#L2'>2</a> +<a name='L3'></a><a href='#L3'>3</a> +<a name='L4'></a><a href='#L4'>4</a> +<a name='L5'></a><a href='#L5'>5</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">export const { parse: JSONParse } = JSON; + +// Used by '@locker/near-membrane-dom'. +export const { stringify: JSONStringify } = JSON; + </pre></td></tr></table></pre> + + <div class='push'></div><!-- for sticky footer --> + </div><!-- /wrapper --> + <div class='footer quiet pad2 space-top1 center small'> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> + at Mon Nov 25 2024 16:43:41 GMT+0000 (Coordinated Universal Time) + </div> + <script src="../../prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="../../sorter.js"></script> + <script src="../../block-navigation.js"></script> + </body> +</html> + \ No newline at end of file diff --git a/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/Map.ts.html b/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/Map.ts.html new file mode 100644 index 00000000..22407fa6 --- /dev/null +++ b/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/Map.ts.html @@ -0,0 +1,226 @@ + +<!doctype html> +<html lang="en"> + +<head> + <title>Code coverage report for near-membrane-shared/src/Map.ts</title> + <meta charset="utf-8" /> + <link rel="stylesheet" href="../../prettify.css" /> + <link rel="stylesheet" href="../../base.css" /> + <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <style type='text/css'> + .coverage-summary .sorter { + background-image: url(../../sort-arrow-sprite.png); + } + </style> +</head> + +<body> +<div class='wrapper'> + <div class='pad1'> + <h1><a href="../../index.html">All files</a> / <a href="index.html">near-membrane-shared/src</a> Map.ts</h1> + <div class='clearfix'> + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Statements</span> + <span class='fraction'>20/20</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Branches</span> + <span class='fraction'>0/0</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Functions</span> + <span class='fraction'>1/1</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Lines</span> + <span class='fraction'>20/20</span> + </div> + + + </div> + <p class="quiet"> + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + </p> + <template id="filterTemplate"> + <div class="quiet"> + Filter: + <input oninput="onInput()" type="search" id="fileSearch"> + </div> + </template> + </div> + <div class='status-line high'></div> + <pre><table class="coverage"> +<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a> +<a name='L2'></a><a href='#L2'>2</a> +<a name='L3'></a><a href='#L3'>3</a> +<a name='L4'></a><a href='#L4'>4</a> +<a name='L5'></a><a href='#L5'>5</a> +<a name='L6'></a><a href='#L6'>6</a> +<a name='L7'></a><a href='#L7'>7</a> +<a name='L8'></a><a href='#L8'>8</a> +<a name='L9'></a><a href='#L9'>9</a> +<a name='L10'></a><a href='#L10'>10</a> +<a name='L11'></a><a href='#L11'>11</a> +<a name='L12'></a><a href='#L12'>12</a> +<a name='L13'></a><a href='#L13'>13</a> +<a name='L14'></a><a href='#L14'>14</a> +<a name='L15'></a><a href='#L15'>15</a> +<a name='L16'></a><a href='#L16'>16</a> +<a name='L17'></a><a href='#L17'>17</a> +<a name='L18'></a><a href='#L18'>18</a> +<a name='L19'></a><a href='#L19'>19</a> +<a name='L20'></a><a href='#L20'>20</a> +<a name='L21'></a><a href='#L21'>21</a> +<a name='L22'></a><a href='#L22'>22</a> +<a name='L23'></a><a href='#L23'>23</a> +<a name='L24'></a><a href='#L24'>24</a> +<a name='L25'></a><a href='#L25'>25</a> +<a name='L26'></a><a href='#L26'>26</a> +<a name='L27'></a><a href='#L27'>27</a> +<a name='L28'></a><a href='#L28'>28</a> +<a name='L29'></a><a href='#L29'>29</a> +<a name='L30'></a><a href='#L30'>30</a> +<a name='L31'></a><a href='#L31'>31</a> +<a name='L32'></a><a href='#L32'>32</a> +<a name='L33'></a><a href='#L33'>33</a> +<a name='L34'></a><a href='#L34'>34</a> +<a name='L35'></a><a href='#L35'>35</a> +<a name='L36'></a><a href='#L36'>36</a> +<a name='L37'></a><a href='#L37'>37</a> +<a name='L38'></a><a href='#L38'>38</a> +<a name='L39'></a><a href='#L39'>39</a> +<a name='L40'></a><a href='#L40'>40</a> +<a name='L41'></a><a href='#L41'>41</a> +<a name='L42'></a><a href='#L42'>42</a> +<a name='L43'></a><a href='#L43'>43</a> +<a name='L44'></a><a href='#L44'>44</a> +<a name='L45'></a><a href='#L45'>45</a> +<a name='L46'></a><a href='#L46'>46</a> +<a name='L47'></a><a href='#L47'>47</a> +<a name='L48'></a><a href='#L48'>48</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { ObjectLookupOwnGetter } from './Object'; +import { ReflectDefineProperty, ReflectSetPrototypeOf } from './Reflect'; +import { SymbolIterator, SymbolToStringTag } from './Symbol'; + +export const MapCtor = Map; + +const { prototype: MapProto } = MapCtor; + +const { + clear: MapProtoClear, + delete: MapProtoDelete, + forEach: MapProtoForEach, + get: MapProtoGet, + has: MapProtoHas, + keys: MapProtoKeys, + values: MapProtoValues, + [SymbolIterator]: MapProtoSymbolIterator, + [SymbolToStringTag]: MapProtoSymbolToStringTag, +} = MapProto as any; + +export const { entries: MapProtoEntries, set: MapProtoSet } = MapProto; + +export const MapProtoSizeGetter = ObjectLookupOwnGetter(MapProto, 'size')!; + +export function toSafeMap<T extends Map<any, any>>(map: T): T { + ReflectSetPrototypeOf(map, null); + map.clear = MapProtoClear; + map.delete = MapProtoDelete; + map.entries = MapProtoEntries; + map.forEach = MapProtoForEach; + map.get = MapProtoGet; + map.has = MapProtoHas; + map.keys = MapProtoKeys; + map.set = MapProtoSet as any; + ReflectDefineProperty(map, 'size', { + __proto__: null, + configurable: true, + enumerable: true, + get: MapProtoSizeGetter, + set: undefined, + } as PropertyDescriptor); + map.values = MapProtoValues; + (map as any)[SymbolIterator] = MapProtoSymbolIterator; + (map as any)[SymbolToStringTag] = MapProtoSymbolToStringTag; + ReflectSetPrototypeOf(map, MapProto); + return map; +} + </pre></td></tr></table></pre> + + <div class='push'></div><!-- for sticky footer --> + </div><!-- /wrapper --> + <div class='footer quiet pad2 space-top1 center small'> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> + at Mon Nov 25 2024 16:43:41 GMT+0000 (Coordinated Universal Time) + </div> + <script src="../../prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="../../sorter.js"></script> + <script src="../../block-navigation.js"></script> + </body> +</html> + \ No newline at end of file diff --git a/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/Math.ts.html b/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/Math.ts.html new file mode 100644 index 00000000..75a9175c --- /dev/null +++ b/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/Math.ts.html @@ -0,0 +1,91 @@ + +<!doctype html> +<html lang="en"> + +<head> + <title>Code coverage report for near-membrane-shared/src/Math.ts</title> + <meta charset="utf-8" /> + <link rel="stylesheet" href="../../prettify.css" /> + <link rel="stylesheet" href="../../base.css" /> + <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <style type='text/css'> + .coverage-summary .sorter { + background-image: url(../../sort-arrow-sprite.png); + } + </style> +</head> + +<body> +<div class='wrapper'> + <div class='pad1'> + <h1><a href="../../index.html">All files</a> / <a href="index.html">near-membrane-shared/src</a> Math.ts</h1> + <div class='clearfix'> + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Statements</span> + <span class='fraction'>1/1</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Branches</span> + <span class='fraction'>0/0</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Functions</span> + <span class='fraction'>0/0</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Lines</span> + <span class='fraction'>1/1</span> + </div> + + + </div> + <p class="quiet"> + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + </p> + <template id="filterTemplate"> + <div class="quiet"> + Filter: + <input oninput="onInput()" type="search" id="fileSearch"> + </div> + </template> + </div> + <div class='status-line high'></div> + <pre><table class="coverage"> +<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a> +<a name='L2'></a><a href='#L2'>2</a> +<a name='L3'></a><a href='#L3'>3</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">// Used by '@locker/near-membrane-dom'. +export const { min: MathMin } = Math; + </pre></td></tr></table></pre> + + <div class='push'></div><!-- for sticky footer --> + </div><!-- /wrapper --> + <div class='footer quiet pad2 space-top1 center small'> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> + at Mon Nov 25 2024 16:43:41 GMT+0000 (Coordinated Universal Time) + </div> + <script src="../../prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="../../sorter.js"></script> + <script src="../../block-navigation.js"></script> + </body> +</html> + \ No newline at end of file diff --git a/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/NearMembrane.ts.html b/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/NearMembrane.ts.html new file mode 100644 index 00000000..3461c23a --- /dev/null +++ b/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/NearMembrane.ts.html @@ -0,0 +1,184 @@ + +<!doctype html> +<html lang="en"> + +<head> + <title>Code coverage report for near-membrane-shared/src/NearMembrane.ts</title> + <meta charset="utf-8" /> + <link rel="stylesheet" href="../../prettify.css" /> + <link rel="stylesheet" href="../../base.css" /> + <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <style type='text/css'> + .coverage-summary .sorter { + background-image: url(../../sort-arrow-sprite.png); + } + </style> +</head> + +<body> +<div class='wrapper'> + <div class='pad1'> + <h1><a href="../../index.html">All files</a> / <a href="index.html">near-membrane-shared/src</a> NearMembrane.ts</h1> + <div class='clearfix'> + + <div class='fl pad1y space-right2'> + <span class="strong">0% </span> + <span class="quiet">Statements</span> + <span class='fraction'>0/6</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">0% </span> + <span class="quiet">Branches</span> + <span class='fraction'>0/14</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">0% </span> + <span class="quiet">Functions</span> + <span class='fraction'>0/2</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">0% </span> + <span class="quiet">Lines</span> + <span class='fraction'>0/6</span> + </div> + + + </div> + <p class="quiet"> + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + </p> + <template id="filterTemplate"> + <div class="quiet"> + Filter: + <input oninput="onInput()" type="search" id="fileSearch"> + </div> + </template> + </div> + <div class='status-line low'></div> + <pre><table class="coverage"> +<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a> +<a name='L2'></a><a href='#L2'>2</a> +<a name='L3'></a><a href='#L3'>3</a> +<a name='L4'></a><a href='#L4'>4</a> +<a name='L5'></a><a href='#L5'>5</a> +<a name='L6'></a><a href='#L6'>6</a> +<a name='L7'></a><a href='#L7'>7</a> +<a name='L8'></a><a href='#L8'>8</a> +<a name='L9'></a><a href='#L9'>9</a> +<a name='L10'></a><a href='#L10'>10</a> +<a name='L11'></a><a href='#L11'>11</a> +<a name='L12'></a><a href='#L12'>12</a> +<a name='L13'></a><a href='#L13'>13</a> +<a name='L14'></a><a href='#L14'>14</a> +<a name='L15'></a><a href='#L15'>15</a> +<a name='L16'></a><a href='#L16'>16</a> +<a name='L17'></a><a href='#L17'>17</a> +<a name='L18'></a><a href='#L18'>18</a> +<a name='L19'></a><a href='#L19'>19</a> +<a name='L20'></a><a href='#L20'>20</a> +<a name='L21'></a><a href='#L21'>21</a> +<a name='L22'></a><a href='#L22'>22</a> +<a name='L23'></a><a href='#L23'>23</a> +<a name='L24'></a><a href='#L24'>24</a> +<a name='L25'></a><a href='#L25'>25</a> +<a name='L26'></a><a href='#L26'>26</a> +<a name='L27'></a><a href='#L27'>27</a> +<a name='L28'></a><a href='#L28'>28</a> +<a name='L29'></a><a href='#L29'>29</a> +<a name='L30'></a><a href='#L30'>30</a> +<a name='L31'></a><a href='#L31'>31</a> +<a name='L32'></a><a href='#L32'>32</a> +<a name='L33'></a><a href='#L33'>33</a> +<a name='L34'></a><a href='#L34'>34</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { + LOCKER_NEAR_MEMBRANE_SERIALIZED_VALUE_SYMBOL, + LOCKER_NEAR_MEMBRANE_SYMBOL, +} from './constants'; +import type { NearMembraneSerializedValue } from './types'; + +export function <span class="fstat-no" title="function not covered" >getNearMembraneProxySerializedValue(</span>object: object): NearMembraneSerializedValue { +<span class="cstat-no" title="statement not covered" > if ((typeof object === 'object' && object !== null) || typeof object === 'function') {</span> + // To extract the serialized value of a blue near-membrane proxy we must + // perform a two step handshake. First, we trigger the "has" trap for + // the `LOCKER_NEAR_MEMBRANE_SERIALIZED_VALUE_SYMBOL` property which + // must report `false`. Second, we trigger the "get" trap to return the + // serialized value. +<span class="cstat-no" title="statement not covered" > return LOCKER_NEAR_MEMBRANE_SERIALIZED_VALUE_SYMBOL in object</span> + ? undefined + : (object as any)[LOCKER_NEAR_MEMBRANE_SERIALIZED_VALUE_SYMBOL]; + } +<span class="cstat-no" title="statement not covered" > return undefined;</span> +} + +export function <span class="fstat-no" title="function not covered" >isNearMembraneProxy(</span>value: any): boolean { +<span class="cstat-no" title="statement not covered" > if ((typeof value === 'object' && value !== null) || typeof value === 'function') {</span> + // To extract the flag value of a blue near-membrane proxy we must + // perform a two step handshake. First, we trigger the "has" trap for + // the `LOCKER_NEAR_MEMBRANE_SYMBOL` property which must report `false`. + // Second, we trigger the "get" trap to return the flag value. +<span class="cstat-no" title="statement not covered" > return (</span> + !(LOCKER_NEAR_MEMBRANE_SYMBOL in value) && + (value as any)[LOCKER_NEAR_MEMBRANE_SYMBOL] === true + ); + } +<span class="cstat-no" title="statement not covered" > return false;</span> +} + </pre></td></tr></table></pre> + + <div class='push'></div><!-- for sticky footer --> + </div><!-- /wrapper --> + <div class='footer quiet pad2 space-top1 center small'> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> + at Mon Nov 25 2024 16:43:41 GMT+0000 (Coordinated Universal Time) + </div> + <script src="../../prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="../../sorter.js"></script> + <script src="../../block-navigation.js"></script> + </body> +</html> + \ No newline at end of file diff --git a/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/Number.ts.html b/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/Number.ts.html new file mode 100644 index 00000000..97b2f27d --- /dev/null +++ b/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/Number.ts.html @@ -0,0 +1,112 @@ + +<!doctype html> +<html lang="en"> + +<head> + <title>Code coverage report for near-membrane-shared/src/Number.ts</title> + <meta charset="utf-8" /> + <link rel="stylesheet" href="../../prettify.css" /> + <link rel="stylesheet" href="../../base.css" /> + <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <style type='text/css'> + .coverage-summary .sorter { + background-image: url(../../sort-arrow-sprite.png); + } + </style> +</head> + +<body> +<div class='wrapper'> + <div class='pad1'> + <h1><a href="../../index.html">All files</a> / <a href="index.html">near-membrane-shared/src</a> Number.ts</h1> + <div class='clearfix'> + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Statements</span> + <span class='fraction'>3/3</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Branches</span> + <span class='fraction'>0/0</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Functions</span> + <span class='fraction'>0/0</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Lines</span> + <span class='fraction'>3/3</span> + </div> + + + </div> + <p class="quiet"> + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + </p> + <template id="filterTemplate"> + <div class="quiet"> + Filter: + <input oninput="onInput()" type="search" id="fileSearch"> + </div> + </template> + </div> + <div class='status-line high'></div> + <pre><table class="coverage"> +<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a> +<a name='L2'></a><a href='#L2'>2</a> +<a name='L3'></a><a href='#L3'>3</a> +<a name='L4'></a><a href='#L4'>4</a> +<a name='L5'></a><a href='#L5'>5</a> +<a name='L6'></a><a href='#L6'>6</a> +<a name='L7'></a><a href='#L7'>7</a> +<a name='L8'></a><a href='#L8'>8</a> +<a name='L9'></a><a href='#L9'>9</a> +<a name='L10'></a><a href='#L10'>10</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">export const NumberCtor = Number; + +export const { + isFinite: NumberIsFinite, + isInteger: NumberIsInteger, + isNaN: NumberIsNaN, +} = NumberCtor; + +export const { valueOf: NumberProtoValueOf } = NumberCtor.prototype; + </pre></td></tr></table></pre> + + <div class='push'></div><!-- for sticky footer --> + </div><!-- /wrapper --> + <div class='footer quiet pad2 space-top1 center small'> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> + at Mon Nov 25 2024 16:43:41 GMT+0000 (Coordinated Universal Time) + </div> + <script src="../../prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="../../sorter.js"></script> + <script src="../../block-navigation.js"></script> + </body> +</html> + \ No newline at end of file diff --git a/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/Object.ts.html b/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/Object.ts.html new file mode 100644 index 00000000..53a9129b --- /dev/null +++ b/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/Object.ts.html @@ -0,0 +1,226 @@ + +<!doctype html> +<html lang="en"> + +<head> + <title>Code coverage report for near-membrane-shared/src/Object.ts</title> + <meta charset="utf-8" /> + <link rel="stylesheet" href="../../prettify.css" /> + <link rel="stylesheet" href="../../base.css" /> + <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <style type='text/css'> + .coverage-summary .sorter { + background-image: url(../../sort-arrow-sprite.png); + } + </style> +</head> + +<body> +<div class='wrapper'> + <div class='pad1'> + <h1><a href="../../index.html">All files</a> / <a href="index.html">near-membrane-shared/src</a> Object.ts</h1> + <div class='clearfix'> + + <div class='fl pad1y space-right2'> + <span class="strong">77.78% </span> + <span class="quiet">Statements</span> + <span class='fraction'>7/9</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">38.46% </span> + <span class="quiet">Branches</span> + <span class='fraction'>5/13</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">33.33% </span> + <span class="quiet">Functions</span> + <span class='fraction'>1/3</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">77.78% </span> + <span class="quiet">Lines</span> + <span class='fraction'>7/9</span> + </div> + + + </div> + <p class="quiet"> + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + </p> + <template id="filterTemplate"> + <div class="quiet"> + Filter: + <input oninput="onInput()" type="search" id="fileSearch"> + </div> + </template> + </div> + <div class='status-line medium'></div> + <pre><table class="coverage"> +<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a> +<a name='L2'></a><a href='#L2'>2</a> +<a name='L3'></a><a href='#L3'>3</a> +<a name='L4'></a><a href='#L4'>4</a> +<a name='L5'></a><a href='#L5'>5</a> +<a name='L6'></a><a href='#L6'>6</a> +<a name='L7'></a><a href='#L7'>7</a> +<a name='L8'></a><a href='#L8'>8</a> +<a name='L9'></a><a href='#L9'>9</a> +<a name='L10'></a><a href='#L10'>10</a> +<a name='L11'></a><a href='#L11'>11</a> +<a name='L12'></a><a href='#L12'>12</a> +<a name='L13'></a><a href='#L13'>13</a> +<a name='L14'></a><a href='#L14'>14</a> +<a name='L15'></a><a href='#L15'>15</a> +<a name='L16'></a><a href='#L16'>16</a> +<a name='L17'></a><a href='#L17'>17</a> +<a name='L18'></a><a href='#L18'>18</a> +<a name='L19'></a><a href='#L19'>19</a> +<a name='L20'></a><a href='#L20'>20</a> +<a name='L21'></a><a href='#L21'>21</a> +<a name='L22'></a><a href='#L22'>22</a> +<a name='L23'></a><a href='#L23'>23</a> +<a name='L24'></a><a href='#L24'>24</a> +<a name='L25'></a><a href='#L25'>25</a> +<a name='L26'></a><a href='#L26'>26</a> +<a name='L27'></a><a href='#L27'>27</a> +<a name='L28'></a><a href='#L28'>28</a> +<a name='L29'></a><a href='#L29'>29</a> +<a name='L30'></a><a href='#L30'>30</a> +<a name='L31'></a><a href='#L31'>31</a> +<a name='L32'></a><a href='#L32'>32</a> +<a name='L33'></a><a href='#L33'>33</a> +<a name='L34'></a><a href='#L34'>34</a> +<a name='L35'></a><a href='#L35'>35</a> +<a name='L36'></a><a href='#L36'>36</a> +<a name='L37'></a><a href='#L37'>37</a> +<a name='L38'></a><a href='#L38'>38</a> +<a name='L39'></a><a href='#L39'>39</a> +<a name='L40'></a><a href='#L40'>40</a> +<a name='L41'></a><a href='#L41'>41</a> +<a name='L42'></a><a href='#L42'>42</a> +<a name='L43'></a><a href='#L43'>43</a> +<a name='L44'></a><a href='#L44'>44</a> +<a name='L45'></a><a href='#L45'>45</a> +<a name='L46'></a><a href='#L46'>46</a> +<a name='L47'></a><a href='#L47'>47</a> +<a name='L48'></a><a href='#L48'>48</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">91x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { ReflectApply } from './Reflect'; +import type { Getter, Setter } from './types'; + +export const ObjectCtor = Object; + +export const { + assign: ObjectAssign, + freeze: ObjectFreeze, + keys: ObjectKeys, + prototype: ObjectProto, +} = ObjectCtor; + +const { hasOwn: OriginalObjectHasOwn } = ObjectCtor as any; + +const { + __lookupGetter__: ObjectProtoLookupGetter, + __lookupSetter__: ObjectProtoLookupSetter, + hasOwnProperty: ObjectProtoHasOwnProperty, +} = ObjectProto as any; + +export const ObjectHasOwn: (object: any, key: PropertyKey) => boolean = + typeof OriginalObjectHasOwn === 'function' + ? OriginalObjectHasOwn + : /* istanbul ignore next: currently unreachable via tests */ function ObjectHasOwn( + object: any, + key: PropertyKey + ): boolean { + return ReflectApply(ObjectProtoHasOwnProperty, object, [key]); + }; + +export const { toString: ObjectProtoToString } = ObjectProto; + +export function <span class="fstat-no" title="function not covered" >isObject(</span>value: any): boolean { +<span class="cstat-no" title="statement not covered" > return typeof value === 'object' && value !== null;</span> +} + +export function ObjectLookupOwnGetter(object: any, key: PropertyKey): Getter | undefined { + return object === null || object === undefined || !ObjectHasOwn(object, key) + ? <span class="branch-0 cbranch-no" title="branch not covered" >undefined</span> + : ReflectApply(ObjectProtoLookupGetter, object, [key]); +} + +export function <span class="fstat-no" title="function not covered" >ObjectLookupOwnSetter(</span>object: any, key: PropertyKey): Setter | undefined { +<span class="cstat-no" title="statement not covered" > return object === null || object === undefined || !ObjectHasOwn(object, key)</span> + ? undefined + : ReflectApply(ObjectProtoLookupSetter, object, [key]); +} + </pre></td></tr></table></pre> + + <div class='push'></div><!-- for sticky footer --> + </div><!-- /wrapper --> + <div class='footer quiet pad2 space-top1 center small'> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> + at Mon Nov 25 2024 16:43:41 GMT+0000 (Coordinated Universal Time) + </div> + <script src="../../prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="../../sorter.js"></script> + <script src="../../block-navigation.js"></script> + </body> +</html> + \ No newline at end of file diff --git a/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/Proxy.ts.html b/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/Proxy.ts.html new file mode 100644 index 00000000..8fb8e010 --- /dev/null +++ b/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/Proxy.ts.html @@ -0,0 +1,88 @@ + +<!doctype html> +<html lang="en"> + +<head> + <title>Code coverage report for near-membrane-shared/src/Proxy.ts</title> + <meta charset="utf-8" /> + <link rel="stylesheet" href="../../prettify.css" /> + <link rel="stylesheet" href="../../base.css" /> + <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <style type='text/css'> + .coverage-summary .sorter { + background-image: url(../../sort-arrow-sprite.png); + } + </style> +</head> + +<body> +<div class='wrapper'> + <div class='pad1'> + <h1><a href="../../index.html">All files</a> / <a href="index.html">near-membrane-shared/src</a> Proxy.ts</h1> + <div class='clearfix'> + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Statements</span> + <span class='fraction'>1/1</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Branches</span> + <span class='fraction'>0/0</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Functions</span> + <span class='fraction'>0/0</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Lines</span> + <span class='fraction'>1/1</span> + </div> + + + </div> + <p class="quiet"> + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + </p> + <template id="filterTemplate"> + <div class="quiet"> + Filter: + <input oninput="onInput()" type="search" id="fileSearch"> + </div> + </template> + </div> + <div class='status-line high'></div> + <pre><table class="coverage"> +<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a> +<a name='L2'></a><a href='#L2'>2</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">export const ProxyCtor = Proxy; + </pre></td></tr></table></pre> + + <div class='push'></div><!-- for sticky footer --> + </div><!-- /wrapper --> + <div class='footer quiet pad2 space-top1 center small'> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> + at Mon Nov 25 2024 16:43:41 GMT+0000 (Coordinated Universal Time) + </div> + <script src="../../prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="../../sorter.js"></script> + <script src="../../block-navigation.js"></script> + </body> +</html> + \ No newline at end of file diff --git a/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/Reflect.ts.html b/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/Reflect.ts.html new file mode 100644 index 00000000..ab60ef35 --- /dev/null +++ b/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/Reflect.ts.html @@ -0,0 +1,109 @@ + +<!doctype html> +<html lang="en"> + +<head> + <title>Code coverage report for near-membrane-shared/src/Reflect.ts</title> + <meta charset="utf-8" /> + <link rel="stylesheet" href="../../prettify.css" /> + <link rel="stylesheet" href="../../base.css" /> + <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <style type='text/css'> + .coverage-summary .sorter { + background-image: url(../../sort-arrow-sprite.png); + } + </style> +</head> + +<body> +<div class='wrapper'> + <div class='pad1'> + <h1><a href="../../index.html">All files</a> / <a href="index.html">near-membrane-shared/src</a> Reflect.ts</h1> + <div class='clearfix'> + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Statements</span> + <span class='fraction'>1/1</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Branches</span> + <span class='fraction'>0/0</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Functions</span> + <span class='fraction'>0/0</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Lines</span> + <span class='fraction'>1/1</span> + </div> + + + </div> + <p class="quiet"> + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + </p> + <template id="filterTemplate"> + <div class="quiet"> + Filter: + <input oninput="onInput()" type="search" id="fileSearch"> + </div> + </template> + </div> + <div class='status-line high'></div> + <pre><table class="coverage"> +<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a> +<a name='L2'></a><a href='#L2'>2</a> +<a name='L3'></a><a href='#L3'>3</a> +<a name='L4'></a><a href='#L4'>4</a> +<a name='L5'></a><a href='#L5'>5</a> +<a name='L6'></a><a href='#L6'>6</a> +<a name='L7'></a><a href='#L7'>7</a> +<a name='L8'></a><a href='#L8'>8</a> +<a name='L9'></a><a href='#L9'>9</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">export const { + apply: ReflectApply, + defineProperty: ReflectDefineProperty, + deleteProperty: ReflectDeleteProperty, + getPrototypeOf: ReflectGetPrototypeOf, + ownKeys: ReflectOwnKeys, + setPrototypeOf: ReflectSetPrototypeOf, +} = Reflect; + </pre></td></tr></table></pre> + + <div class='push'></div><!-- for sticky footer --> + </div><!-- /wrapper --> + <div class='footer quiet pad2 space-top1 center small'> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> + at Mon Nov 25 2024 16:43:41 GMT+0000 (Coordinated Universal Time) + </div> + <script src="../../prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="../../sorter.js"></script> + <script src="../../block-navigation.js"></script> + </body> +</html> + \ No newline at end of file diff --git a/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/RegExp.ts.html b/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/RegExp.ts.html new file mode 100644 index 00000000..1d23e9d5 --- /dev/null +++ b/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/RegExp.ts.html @@ -0,0 +1,112 @@ + +<!doctype html> +<html lang="en"> + +<head> + <title>Code coverage report for near-membrane-shared/src/RegExp.ts</title> + <meta charset="utf-8" /> + <link rel="stylesheet" href="../../prettify.css" /> + <link rel="stylesheet" href="../../base.css" /> + <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <style type='text/css'> + .coverage-summary .sorter { + background-image: url(../../sort-arrow-sprite.png); + } + </style> +</head> + +<body> +<div class='wrapper'> + <div class='pad1'> + <h1><a href="../../index.html">All files</a> / <a href="index.html">near-membrane-shared/src</a> RegExp.ts</h1> + <div class='clearfix'> + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Statements</span> + <span class='fraction'>4/4</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Branches</span> + <span class='fraction'>0/0</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Functions</span> + <span class='fraction'>0/0</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Lines</span> + <span class='fraction'>4/4</span> + </div> + + + </div> + <p class="quiet"> + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + </p> + <template id="filterTemplate"> + <div class="quiet"> + Filter: + <input oninput="onInput()" type="search" id="fileSearch"> + </div> + </template> + </div> + <div class='status-line high'></div> + <pre><table class="coverage"> +<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a> +<a name='L2'></a><a href='#L2'>2</a> +<a name='L3'></a><a href='#L3'>3</a> +<a name='L4'></a><a href='#L4'>4</a> +<a name='L5'></a><a href='#L5'>5</a> +<a name='L6'></a><a href='#L6'>6</a> +<a name='L7'></a><a href='#L7'>7</a> +<a name='L8'></a><a href='#L8'>8</a> +<a name='L9'></a><a href='#L9'>9</a> +<a name='L10'></a><a href='#L10'>10</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { ObjectLookupOwnGetter } from './Object'; + +export const RegExpCtor = RegExp; + +const { prototype: RegExpProto } = RegExpCtor; + +export const { test: RegExpProtoTest } = RegExpProto; + +export const RegExpProtoSourceGetter = ObjectLookupOwnGetter(RegExpProto, 'source')!; + </pre></td></tr></table></pre> + + <div class='push'></div><!-- for sticky footer --> + </div><!-- /wrapper --> + <div class='footer quiet pad2 space-top1 center small'> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> + at Mon Nov 25 2024 16:43:41 GMT+0000 (Coordinated Universal Time) + </div> + <script src="../../prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="../../sorter.js"></script> + <script src="../../block-navigation.js"></script> + </body> +</html> + \ No newline at end of file diff --git a/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/Set.ts.html b/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/Set.ts.html new file mode 100644 index 00000000..5d074281 --- /dev/null +++ b/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/Set.ts.html @@ -0,0 +1,112 @@ + +<!doctype html> +<html lang="en"> + +<head> + <title>Code coverage report for near-membrane-shared/src/Set.ts</title> + <meta charset="utf-8" /> + <link rel="stylesheet" href="../../prettify.css" /> + <link rel="stylesheet" href="../../base.css" /> + <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <style type='text/css'> + .coverage-summary .sorter { + background-image: url(../../sort-arrow-sprite.png); + } + </style> +</head> + +<body> +<div class='wrapper'> + <div class='pad1'> + <h1><a href="../../index.html">All files</a> / <a href="index.html">near-membrane-shared/src</a> Set.ts</h1> + <div class='clearfix'> + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Statements</span> + <span class='fraction'>4/4</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Branches</span> + <span class='fraction'>0/0</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Functions</span> + <span class='fraction'>0/0</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Lines</span> + <span class='fraction'>4/4</span> + </div> + + + </div> + <p class="quiet"> + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + </p> + <template id="filterTemplate"> + <div class="quiet"> + Filter: + <input oninput="onInput()" type="search" id="fileSearch"> + </div> + </template> + </div> + <div class='status-line high'></div> + <pre><table class="coverage"> +<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a> +<a name='L2'></a><a href='#L2'>2</a> +<a name='L3'></a><a href='#L3'>3</a> +<a name='L4'></a><a href='#L4'>4</a> +<a name='L5'></a><a href='#L5'>5</a> +<a name='L6'></a><a href='#L6'>6</a> +<a name='L7'></a><a href='#L7'>7</a> +<a name='L8'></a><a href='#L8'>8</a> +<a name='L9'></a><a href='#L9'>9</a> +<a name='L10'></a><a href='#L10'>10</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { ObjectLookupOwnGetter } from './Object'; + +export const SetCtor = Set; + +const { prototype: SetProto } = SetCtor; + +export const { add: SetProtoAdd, has: SetProtoHas, values: SetProtoValues } = SetProto; + +export const SetProtoSizeGetter = ObjectLookupOwnGetter(SetProto, 'size')!; + </pre></td></tr></table></pre> + + <div class='push'></div><!-- for sticky footer --> + </div><!-- /wrapper --> + <div class='footer quiet pad2 space-top1 center small'> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> + at Mon Nov 25 2024 16:43:41 GMT+0000 (Coordinated Universal Time) + </div> + <script src="../../prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="../../sorter.js"></script> + <script src="../../block-navigation.js"></script> + </body> +</html> + \ No newline at end of file diff --git a/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/String.ts.html b/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/String.ts.html new file mode 100644 index 00000000..f3a40317 --- /dev/null +++ b/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/String.ts.html @@ -0,0 +1,100 @@ + +<!doctype html> +<html lang="en"> + +<head> + <title>Code coverage report for near-membrane-shared/src/String.ts</title> + <meta charset="utf-8" /> + <link rel="stylesheet" href="../../prettify.css" /> + <link rel="stylesheet" href="../../base.css" /> + <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <style type='text/css'> + .coverage-summary .sorter { + background-image: url(../../sort-arrow-sprite.png); + } + </style> +</head> + +<body> +<div class='wrapper'> + <div class='pad1'> + <h1><a href="../../index.html">All files</a> / <a href="index.html">near-membrane-shared/src</a> String.ts</h1> + <div class='clearfix'> + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Statements</span> + <span class='fraction'>3/3</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Branches</span> + <span class='fraction'>0/0</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Functions</span> + <span class='fraction'>0/0</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Lines</span> + <span class='fraction'>3/3</span> + </div> + + + </div> + <p class="quiet"> + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + </p> + <template id="filterTemplate"> + <div class="quiet"> + Filter: + <input oninput="onInput()" type="search" id="fileSearch"> + </div> + </template> + </div> + <div class='status-line high'></div> + <pre><table class="coverage"> +<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a> +<a name='L2'></a><a href='#L2'>2</a> +<a name='L3'></a><a href='#L3'>3</a> +<a name='L4'></a><a href='#L4'>4</a> +<a name='L5'></a><a href='#L5'>5</a> +<a name='L6'></a><a href='#L6'>6</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">export const StringCtor = String; + +const { prototype: StringProto } = StringCtor; + +export const { slice: StringProtoSlice, valueOf: StringProtoValueOf } = StringProto; + </pre></td></tr></table></pre> + + <div class='push'></div><!-- for sticky footer --> + </div><!-- /wrapper --> + <div class='footer quiet pad2 space-top1 center small'> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> + at Mon Nov 25 2024 16:43:41 GMT+0000 (Coordinated Universal Time) + </div> + <script src="../../prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="../../sorter.js"></script> + <script src="../../block-navigation.js"></script> + </body> +</html> + \ No newline at end of file diff --git a/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/Symbol.ts.html b/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/Symbol.ts.html new file mode 100644 index 00000000..cf4c5b32 --- /dev/null +++ b/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/Symbol.ts.html @@ -0,0 +1,115 @@ + +<!doctype html> +<html lang="en"> + +<head> + <title>Code coverage report for near-membrane-shared/src/Symbol.ts</title> + <meta charset="utf-8" /> + <link rel="stylesheet" href="../../prettify.css" /> + <link rel="stylesheet" href="../../base.css" /> + <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <style type='text/css'> + .coverage-summary .sorter { + background-image: url(../../sort-arrow-sprite.png); + } + </style> +</head> + +<body> +<div class='wrapper'> + <div class='pad1'> + <h1><a href="../../index.html">All files</a> / <a href="index.html">near-membrane-shared/src</a> Symbol.ts</h1> + <div class='clearfix'> + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Statements</span> + <span class='fraction'>3/3</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Branches</span> + <span class='fraction'>0/0</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Functions</span> + <span class='fraction'>0/0</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Lines</span> + <span class='fraction'>3/3</span> + </div> + + + </div> + <p class="quiet"> + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + </p> + <template id="filterTemplate"> + <div class="quiet"> + Filter: + <input oninput="onInput()" type="search" id="fileSearch"> + </div> + </template> + </div> + <div class='status-line high'></div> + <pre><table class="coverage"> +<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a> +<a name='L2'></a><a href='#L2'>2</a> +<a name='L3'></a><a href='#L3'>3</a> +<a name='L4'></a><a href='#L4'>4</a> +<a name='L5'></a><a href='#L5'>5</a> +<a name='L6'></a><a href='#L6'>6</a> +<a name='L7'></a><a href='#L7'>7</a> +<a name='L8'></a><a href='#L8'>8</a> +<a name='L9'></a><a href='#L9'>9</a> +<a name='L10'></a><a href='#L10'>10</a> +<a name='L11'></a><a href='#L11'>11</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const SymbolCtor = Symbol; + +export const { + for: SymbolFor, + iterator: SymbolIterator, + toStringTag: SymbolToStringTag, + unscopables: SymbolUnscopables, +} = SymbolCtor; + +export const { valueOf: SymbolProtoValueOf } = SymbolCtor.prototype; + </pre></td></tr></table></pre> + + <div class='push'></div><!-- for sticky footer --> + </div><!-- /wrapper --> + <div class='footer quiet pad2 space-top1 center small'> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> + at Mon Nov 25 2024 16:43:41 GMT+0000 (Coordinated Universal Time) + </div> + <script src="../../prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="../../sorter.js"></script> + <script src="../../block-navigation.js"></script> + </body> +</html> + \ No newline at end of file diff --git a/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/WeakMap.ts.html b/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/WeakMap.ts.html new file mode 100644 index 00000000..65e751db --- /dev/null +++ b/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/WeakMap.ts.html @@ -0,0 +1,163 @@ + +<!doctype html> +<html lang="en"> + +<head> + <title>Code coverage report for near-membrane-shared/src/WeakMap.ts</title> + <meta charset="utf-8" /> + <link rel="stylesheet" href="../../prettify.css" /> + <link rel="stylesheet" href="../../base.css" /> + <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <style type='text/css'> + .coverage-summary .sorter { + background-image: url(../../sort-arrow-sprite.png); + } + </style> +</head> + +<body> +<div class='wrapper'> + <div class='pad1'> + <h1><a href="../../index.html">All files</a> / <a href="index.html">near-membrane-shared/src</a> WeakMap.ts</h1> + <div class='clearfix'> + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Statements</span> + <span class='fraction'>12/12</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Branches</span> + <span class='fraction'>0/0</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Functions</span> + <span class='fraction'>1/1</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Lines</span> + <span class='fraction'>12/12</span> + </div> + + + </div> + <p class="quiet"> + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + </p> + <template id="filterTemplate"> + <div class="quiet"> + Filter: + <input oninput="onInput()" type="search" id="fileSearch"> + </div> + </template> + </div> + <div class='status-line high'></div> + <pre><table class="coverage"> +<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a> +<a name='L2'></a><a href='#L2'>2</a> +<a name='L3'></a><a href='#L3'>3</a> +<a name='L4'></a><a href='#L4'>4</a> +<a name='L5'></a><a href='#L5'>5</a> +<a name='L6'></a><a href='#L6'>6</a> +<a name='L7'></a><a href='#L7'>7</a> +<a name='L8'></a><a href='#L8'>8</a> +<a name='L9'></a><a href='#L9'>9</a> +<a name='L10'></a><a href='#L10'>10</a> +<a name='L11'></a><a href='#L11'>11</a> +<a name='L12'></a><a href='#L12'>12</a> +<a name='L13'></a><a href='#L13'>13</a> +<a name='L14'></a><a href='#L14'>14</a> +<a name='L15'></a><a href='#L15'>15</a> +<a name='L16'></a><a href='#L16'>16</a> +<a name='L17'></a><a href='#L17'>17</a> +<a name='L18'></a><a href='#L18'>18</a> +<a name='L19'></a><a href='#L19'>19</a> +<a name='L20'></a><a href='#L20'>20</a> +<a name='L21'></a><a href='#L21'>21</a> +<a name='L22'></a><a href='#L22'>22</a> +<a name='L23'></a><a href='#L23'>23</a> +<a name='L24'></a><a href='#L24'>24</a> +<a name='L25'></a><a href='#L25'>25</a> +<a name='L26'></a><a href='#L26'>26</a> +<a name='L27'></a><a href='#L27'>27</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">11x</span> +<span class="cline-any cline-yes">11x</span> +<span class="cline-any cline-yes">11x</span> +<span class="cline-any cline-yes">11x</span> +<span class="cline-any cline-yes">11x</span> +<span class="cline-any cline-yes">11x</span> +<span class="cline-any cline-yes">11x</span> +<span class="cline-any cline-yes">11x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { ReflectSetPrototypeOf } from './Reflect'; +import { SymbolToStringTag } from './Symbol'; + +export const WeakMapCtor = WeakMap; + +const { prototype: WeakMapProto } = WeakMapCtor; + +export const { has: WeakMapProtoHas } = WeakMapProto; + +const { + delete: WeakMapProtoDelete, + get: WeakMapProtoGet, + set: WeakMapProtoSet, + [SymbolToStringTag]: WeakMapProtoSymbolToStringTag, +} = WeakMapProto as any; + +export function toSafeWeakMap<T extends WeakMap<any, any>>(weakMap: T): T { + ReflectSetPrototypeOf(weakMap, null); + weakMap.delete = WeakMapProtoDelete; + weakMap.get = WeakMapProtoGet; + weakMap.has = WeakMapProtoHas; + weakMap.set = WeakMapProtoSet; + (weakMap as any)[SymbolToStringTag] = WeakMapProtoSymbolToStringTag; + ReflectSetPrototypeOf(weakMap, WeakMapProto); + return weakMap; +} + </pre></td></tr></table></pre> + + <div class='push'></div><!-- for sticky footer --> + </div><!-- /wrapper --> + <div class='footer quiet pad2 space-top1 center small'> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> + at Mon Nov 25 2024 16:43:41 GMT+0000 (Coordinated Universal Time) + </div> + <script src="../../prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="../../sorter.js"></script> + <script src="../../block-navigation.js"></script> + </body> +</html> + \ No newline at end of file diff --git a/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/WeakSet.ts.html b/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/WeakSet.ts.html new file mode 100644 index 00000000..14b6c053 --- /dev/null +++ b/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/WeakSet.ts.html @@ -0,0 +1,157 @@ + +<!doctype html> +<html lang="en"> + +<head> + <title>Code coverage report for near-membrane-shared/src/WeakSet.ts</title> + <meta charset="utf-8" /> + <link rel="stylesheet" href="../../prettify.css" /> + <link rel="stylesheet" href="../../base.css" /> + <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <style type='text/css'> + .coverage-summary .sorter { + background-image: url(../../sort-arrow-sprite.png); + } + </style> +</head> + +<body> +<div class='wrapper'> + <div class='pad1'> + <h1><a href="../../index.html">All files</a> / <a href="index.html">near-membrane-shared/src</a> WeakSet.ts</h1> + <div class='clearfix'> + + <div class='fl pad1y space-right2'> + <span class="strong">36.36% </span> + <span class="quiet">Statements</span> + <span class='fraction'>4/11</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Branches</span> + <span class='fraction'>0/0</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">0% </span> + <span class="quiet">Functions</span> + <span class='fraction'>0/1</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">36.36% </span> + <span class="quiet">Lines</span> + <span class='fraction'>4/11</span> + </div> + + + </div> + <p class="quiet"> + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + </p> + <template id="filterTemplate"> + <div class="quiet"> + Filter: + <input oninput="onInput()" type="search" id="fileSearch"> + </div> + </template> + </div> + <div class='status-line low'></div> + <pre><table class="coverage"> +<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a> +<a name='L2'></a><a href='#L2'>2</a> +<a name='L3'></a><a href='#L3'>3</a> +<a name='L4'></a><a href='#L4'>4</a> +<a name='L5'></a><a href='#L5'>5</a> +<a name='L6'></a><a href='#L6'>6</a> +<a name='L7'></a><a href='#L7'>7</a> +<a name='L8'></a><a href='#L8'>8</a> +<a name='L9'></a><a href='#L9'>9</a> +<a name='L10'></a><a href='#L10'>10</a> +<a name='L11'></a><a href='#L11'>11</a> +<a name='L12'></a><a href='#L12'>12</a> +<a name='L13'></a><a href='#L13'>13</a> +<a name='L14'></a><a href='#L14'>14</a> +<a name='L15'></a><a href='#L15'>15</a> +<a name='L16'></a><a href='#L16'>16</a> +<a name='L17'></a><a href='#L17'>17</a> +<a name='L18'></a><a href='#L18'>18</a> +<a name='L19'></a><a href='#L19'>19</a> +<a name='L20'></a><a href='#L20'>20</a> +<a name='L21'></a><a href='#L21'>21</a> +<a name='L22'></a><a href='#L22'>22</a> +<a name='L23'></a><a href='#L23'>23</a> +<a name='L24'></a><a href='#L24'>24</a> +<a name='L25'></a><a href='#L25'>25</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { ReflectSetPrototypeOf } from './Reflect'; +import { SymbolToStringTag } from './Symbol'; + +export const WeakSetCtor = WeakSet; + +const { prototype: WeakSetProto } = WeakSetCtor; + +export const { has: WeakSetProtoHas } = WeakSetProto; + +const { + add: WeakSetProtoAdd, + delete: WeakSetProtoDelete, + [SymbolToStringTag]: WeakSetProtoSymbolToStringTag, +} = WeakSetProto as any; + +export function <span class="fstat-no" title="function not covered" >toSafeWeakSet<</span>T extends WeakSet<any>>(weakSet: T): T { +<span class="cstat-no" title="statement not covered" > ReflectSetPrototypeOf(weakSet, null);</span> +<span class="cstat-no" title="statement not covered" > weakSet.add = WeakSetProtoAdd;</span> +<span class="cstat-no" title="statement not covered" > weakSet.delete = WeakSetProtoDelete;</span> +<span class="cstat-no" title="statement not covered" > weakSet.has = WeakSetProtoHas;</span> +<span class="cstat-no" title="statement not covered" > (weakSet as any)[SymbolToStringTag] = WeakSetProtoSymbolToStringTag;</span> +<span class="cstat-no" title="statement not covered" > ReflectSetPrototypeOf(weakSet, WeakSetProto);</span> +<span class="cstat-no" title="statement not covered" > return weakSet;</span> +} + </pre></td></tr></table></pre> + + <div class='push'></div><!-- for sticky footer --> + </div><!-- /wrapper --> + <div class='footer quiet pad2 space-top1 center small'> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> + at Mon Nov 25 2024 16:43:41 GMT+0000 (Coordinated Universal Time) + </div> + <script src="../../prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="../../sorter.js"></script> + <script src="../../block-navigation.js"></script> + </body> +</html> + \ No newline at end of file diff --git a/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/basic.ts.html b/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/basic.ts.html new file mode 100644 index 00000000..c3143d2a --- /dev/null +++ b/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/basic.ts.html @@ -0,0 +1,745 @@ + +<!doctype html> +<html lang="en"> + +<head> + <title>Code coverage report for near-membrane-shared/src/basic.ts</title> + <meta charset="utf-8" /> + <link rel="stylesheet" href="../../prettify.css" /> + <link rel="stylesheet" href="../../base.css" /> + <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <style type='text/css'> + .coverage-summary .sorter { + background-image: url(../../sort-arrow-sprite.png); + } + </style> +</head> + +<body> +<div class='wrapper'> + <div class='pad1'> + <h1><a href="../../index.html">All files</a> / <a href="index.html">near-membrane-shared/src</a> basic.ts</h1> + <div class='clearfix'> + + <div class='fl pad1y space-right2'> + <span class="strong">1.59% </span> + <span class="quiet">Statements</span> + <span class='fraction'>1/63</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">0% </span> + <span class="quiet">Branches</span> + <span class='fraction'>0/43</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">0% </span> + <span class="quiet">Functions</span> + <span class='fraction'>0/2</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">1.59% </span> + <span class="quiet">Lines</span> + <span class='fraction'>1/63</span> + </div> + + + </div> + <p class="quiet"> + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + </p> + <template id="filterTemplate"> + <div class="quiet"> + Filter: + <input oninput="onInput()" type="search" id="fileSearch"> + </div> + </template> + </div> + <div class='status-line low'></div> + <pre><table class="coverage"> +<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a> +<a name='L2'></a><a href='#L2'>2</a> +<a name='L3'></a><a href='#L3'>3</a> +<a name='L4'></a><a href='#L4'>4</a> +<a name='L5'></a><a href='#L5'>5</a> +<a name='L6'></a><a href='#L6'>6</a> +<a name='L7'></a><a href='#L7'>7</a> +<a name='L8'></a><a href='#L8'>8</a> +<a name='L9'></a><a href='#L9'>9</a> +<a name='L10'></a><a href='#L10'>10</a> +<a name='L11'></a><a href='#L11'>11</a> +<a name='L12'></a><a href='#L12'>12</a> +<a name='L13'></a><a href='#L13'>13</a> +<a name='L14'></a><a href='#L14'>14</a> +<a name='L15'></a><a href='#L15'>15</a> +<a name='L16'></a><a href='#L16'>16</a> +<a name='L17'></a><a href='#L17'>17</a> +<a name='L18'></a><a href='#L18'>18</a> +<a name='L19'></a><a href='#L19'>19</a> +<a name='L20'></a><a href='#L20'>20</a> +<a name='L21'></a><a href='#L21'>21</a> +<a name='L22'></a><a href='#L22'>22</a> +<a name='L23'></a><a href='#L23'>23</a> +<a name='L24'></a><a href='#L24'>24</a> +<a name='L25'></a><a href='#L25'>25</a> +<a name='L26'></a><a href='#L26'>26</a> +<a name='L27'></a><a href='#L27'>27</a> +<a name='L28'></a><a href='#L28'>28</a> +<a name='L29'></a><a href='#L29'>29</a> +<a name='L30'></a><a href='#L30'>30</a> +<a name='L31'></a><a href='#L31'>31</a> +<a name='L32'></a><a href='#L32'>32</a> +<a name='L33'></a><a href='#L33'>33</a> +<a name='L34'></a><a href='#L34'>34</a> +<a name='L35'></a><a href='#L35'>35</a> +<a name='L36'></a><a href='#L36'>36</a> +<a name='L37'></a><a href='#L37'>37</a> +<a name='L38'></a><a href='#L38'>38</a> +<a name='L39'></a><a href='#L39'>39</a> +<a name='L40'></a><a href='#L40'>40</a> +<a name='L41'></a><a href='#L41'>41</a> +<a name='L42'></a><a href='#L42'>42</a> +<a name='L43'></a><a href='#L43'>43</a> +<a name='L44'></a><a href='#L44'>44</a> +<a name='L45'></a><a href='#L45'>45</a> +<a name='L46'></a><a href='#L46'>46</a> +<a name='L47'></a><a href='#L47'>47</a> +<a name='L48'></a><a href='#L48'>48</a> +<a name='L49'></a><a href='#L49'>49</a> +<a name='L50'></a><a href='#L50'>50</a> +<a name='L51'></a><a href='#L51'>51</a> +<a name='L52'></a><a href='#L52'>52</a> +<a name='L53'></a><a href='#L53'>53</a> +<a name='L54'></a><a href='#L54'>54</a> +<a name='L55'></a><a href='#L55'>55</a> +<a name='L56'></a><a href='#L56'>56</a> +<a name='L57'></a><a href='#L57'>57</a> +<a name='L58'></a><a href='#L58'>58</a> +<a name='L59'></a><a href='#L59'>59</a> +<a name='L60'></a><a href='#L60'>60</a> +<a name='L61'></a><a href='#L61'>61</a> +<a name='L62'></a><a href='#L62'>62</a> +<a name='L63'></a><a href='#L63'>63</a> +<a name='L64'></a><a href='#L64'>64</a> +<a name='L65'></a><a href='#L65'>65</a> +<a name='L66'></a><a href='#L66'>66</a> +<a name='L67'></a><a href='#L67'>67</a> +<a name='L68'></a><a href='#L68'>68</a> +<a name='L69'></a><a href='#L69'>69</a> +<a name='L70'></a><a href='#L70'>70</a> +<a name='L71'></a><a href='#L71'>71</a> +<a name='L72'></a><a href='#L72'>72</a> +<a name='L73'></a><a href='#L73'>73</a> +<a name='L74'></a><a href='#L74'>74</a> +<a name='L75'></a><a href='#L75'>75</a> +<a name='L76'></a><a href='#L76'>76</a> +<a name='L77'></a><a href='#L77'>77</a> +<a name='L78'></a><a href='#L78'>78</a> +<a name='L79'></a><a href='#L79'>79</a> +<a name='L80'></a><a href='#L80'>80</a> +<a name='L81'></a><a href='#L81'>81</a> +<a name='L82'></a><a href='#L82'>82</a> +<a name='L83'></a><a href='#L83'>83</a> +<a name='L84'></a><a href='#L84'>84</a> +<a name='L85'></a><a href='#L85'>85</a> +<a name='L86'></a><a href='#L86'>86</a> +<a name='L87'></a><a href='#L87'>87</a> +<a name='L88'></a><a href='#L88'>88</a> +<a name='L89'></a><a href='#L89'>89</a> +<a name='L90'></a><a href='#L90'>90</a> +<a name='L91'></a><a href='#L91'>91</a> +<a name='L92'></a><a href='#L92'>92</a> +<a name='L93'></a><a href='#L93'>93</a> +<a name='L94'></a><a href='#L94'>94</a> +<a name='L95'></a><a href='#L95'>95</a> +<a name='L96'></a><a href='#L96'>96</a> +<a name='L97'></a><a href='#L97'>97</a> +<a name='L98'></a><a href='#L98'>98</a> +<a name='L99'></a><a href='#L99'>99</a> +<a name='L100'></a><a href='#L100'>100</a> +<a name='L101'></a><a href='#L101'>101</a> +<a name='L102'></a><a href='#L102'>102</a> +<a name='L103'></a><a href='#L103'>103</a> +<a name='L104'></a><a href='#L104'>104</a> +<a name='L105'></a><a href='#L105'>105</a> +<a name='L106'></a><a href='#L106'>106</a> +<a name='L107'></a><a href='#L107'>107</a> +<a name='L108'></a><a href='#L108'>108</a> +<a name='L109'></a><a href='#L109'>109</a> +<a name='L110'></a><a href='#L110'>110</a> +<a name='L111'></a><a href='#L111'>111</a> +<a name='L112'></a><a href='#L112'>112</a> +<a name='L113'></a><a href='#L113'>113</a> +<a name='L114'></a><a href='#L114'>114</a> +<a name='L115'></a><a href='#L115'>115</a> +<a name='L116'></a><a href='#L116'>116</a> +<a name='L117'></a><a href='#L117'>117</a> +<a name='L118'></a><a href='#L118'>118</a> +<a name='L119'></a><a href='#L119'>119</a> +<a name='L120'></a><a href='#L120'>120</a> +<a name='L121'></a><a href='#L121'>121</a> +<a name='L122'></a><a href='#L122'>122</a> +<a name='L123'></a><a href='#L123'>123</a> +<a name='L124'></a><a href='#L124'>124</a> +<a name='L125'></a><a href='#L125'>125</a> +<a name='L126'></a><a href='#L126'>126</a> +<a name='L127'></a><a href='#L127'>127</a> +<a name='L128'></a><a href='#L128'>128</a> +<a name='L129'></a><a href='#L129'>129</a> +<a name='L130'></a><a href='#L130'>130</a> +<a name='L131'></a><a href='#L131'>131</a> +<a name='L132'></a><a href='#L132'>132</a> +<a name='L133'></a><a href='#L133'>133</a> +<a name='L134'></a><a href='#L134'>134</a> +<a name='L135'></a><a href='#L135'>135</a> +<a name='L136'></a><a href='#L136'>136</a> +<a name='L137'></a><a href='#L137'>137</a> +<a name='L138'></a><a href='#L138'>138</a> +<a name='L139'></a><a href='#L139'>139</a> +<a name='L140'></a><a href='#L140'>140</a> +<a name='L141'></a><a href='#L141'>141</a> +<a name='L142'></a><a href='#L142'>142</a> +<a name='L143'></a><a href='#L143'>143</a> +<a name='L144'></a><a href='#L144'>144</a> +<a name='L145'></a><a href='#L145'>145</a> +<a name='L146'></a><a href='#L146'>146</a> +<a name='L147'></a><a href='#L147'>147</a> +<a name='L148'></a><a href='#L148'>148</a> +<a name='L149'></a><a href='#L149'>149</a> +<a name='L150'></a><a href='#L150'>150</a> +<a name='L151'></a><a href='#L151'>151</a> +<a name='L152'></a><a href='#L152'>152</a> +<a name='L153'></a><a href='#L153'>153</a> +<a name='L154'></a><a href='#L154'>154</a> +<a name='L155'></a><a href='#L155'>155</a> +<a name='L156'></a><a href='#L156'>156</a> +<a name='L157'></a><a href='#L157'>157</a> +<a name='L158'></a><a href='#L158'>158</a> +<a name='L159'></a><a href='#L159'>159</a> +<a name='L160'></a><a href='#L160'>160</a> +<a name='L161'></a><a href='#L161'>161</a> +<a name='L162'></a><a href='#L162'>162</a> +<a name='L163'></a><a href='#L163'>163</a> +<a name='L164'></a><a href='#L164'>164</a> +<a name='L165'></a><a href='#L165'>165</a> +<a name='L166'></a><a href='#L166'>166</a> +<a name='L167'></a><a href='#L167'>167</a> +<a name='L168'></a><a href='#L168'>168</a> +<a name='L169'></a><a href='#L169'>169</a> +<a name='L170'></a><a href='#L170'>170</a> +<a name='L171'></a><a href='#L171'>171</a> +<a name='L172'></a><a href='#L172'>172</a> +<a name='L173'></a><a href='#L173'>173</a> +<a name='L174'></a><a href='#L174'>174</a> +<a name='L175'></a><a href='#L175'>175</a> +<a name='L176'></a><a href='#L176'>176</a> +<a name='L177'></a><a href='#L177'>177</a> +<a name='L178'></a><a href='#L178'>178</a> +<a name='L179'></a><a href='#L179'>179</a> +<a name='L180'></a><a href='#L180'>180</a> +<a name='L181'></a><a href='#L181'>181</a> +<a name='L182'></a><a href='#L182'>182</a> +<a name='L183'></a><a href='#L183'>183</a> +<a name='L184'></a><a href='#L184'>184</a> +<a name='L185'></a><a href='#L185'>185</a> +<a name='L186'></a><a href='#L186'>186</a> +<a name='L187'></a><a href='#L187'>187</a> +<a name='L188'></a><a href='#L188'>188</a> +<a name='L189'></a><a href='#L189'>189</a> +<a name='L190'></a><a href='#L190'>190</a> +<a name='L191'></a><a href='#L191'>191</a> +<a name='L192'></a><a href='#L192'>192</a> +<a name='L193'></a><a href='#L193'>193</a> +<a name='L194'></a><a href='#L194'>194</a> +<a name='L195'></a><a href='#L195'>195</a> +<a name='L196'></a><a href='#L196'>196</a> +<a name='L197'></a><a href='#L197'>197</a> +<a name='L198'></a><a href='#L198'>198</a> +<a name='L199'></a><a href='#L199'>199</a> +<a name='L200'></a><a href='#L200'>200</a> +<a name='L201'></a><a href='#L201'>201</a> +<a name='L202'></a><a href='#L202'>202</a> +<a name='L203'></a><a href='#L203'>203</a> +<a name='L204'></a><a href='#L204'>204</a> +<a name='L205'></a><a href='#L205'>205</a> +<a name='L206'></a><a href='#L206'>206</a> +<a name='L207'></a><a href='#L207'>207</a> +<a name='L208'></a><a href='#L208'>208</a> +<a name='L209'></a><a href='#L209'>209</a> +<a name='L210'></a><a href='#L210'>210</a> +<a name='L211'></a><a href='#L211'>211</a> +<a name='L212'></a><a href='#L212'>212</a> +<a name='L213'></a><a href='#L213'>213</a> +<a name='L214'></a><a href='#L214'>214</a> +<a name='L215'></a><a href='#L215'>215</a> +<a name='L216'></a><a href='#L216'>216</a> +<a name='L217'></a><a href='#L217'>217</a> +<a name='L218'></a><a href='#L218'>218</a> +<a name='L219'></a><a href='#L219'>219</a> +<a name='L220'></a><a href='#L220'>220</a> +<a name='L221'></a><a href='#L221'>221</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { ArrayIsArray } from './Array'; +import { ArrayBufferProtoByteLengthGetter } from './ArrayBuffer'; +import { BigIntProtoValueOf, SUPPORTS_BIG_INT } from './BigInt'; +import { BooleanProtoValueOf } from './Boolean'; +import { + TO_STRING_BRAND_ARRAY, + TO_STRING_BRAND_ARRAY_BUFFER, + TO_STRING_BRAND_BIG_INT, + TO_STRING_BRAND_BOOLEAN, + TO_STRING_BRAND_DATE, + TO_STRING_BRAND_FUNCTION, + TO_STRING_BRAND_MAP, + TO_STRING_BRAND_NULL, + TO_STRING_BRAND_NUMBER, + TO_STRING_BRAND_OBJECT, + TO_STRING_BRAND_REG_EXP, + TO_STRING_BRAND_SET, + TO_STRING_BRAND_STRING, + TO_STRING_BRAND_SYMBOL, + TO_STRING_BRAND_UNDEFINED, + TO_STRING_BRAND_WEAK_MAP, + TO_STRING_BRAND_WEAK_SET, +} from './constants'; +import { DateProtoValueOf } from './Date'; +import { MapProtoSizeGetter } from './Map'; +import { NumberProtoValueOf } from './Number'; +import { ObjectHasOwn, ObjectProtoToString } from './Object'; +import { ReflectApply } from './Reflect'; +import { RegExpProtoSourceGetter } from './RegExp'; +import { SetProtoSizeGetter } from './Set'; +import { StringProtoValueOf } from './String'; +import { SymbolProtoValueOf } from './Symbol'; +import { WeakMapProtoHas } from './WeakMap'; +import { WeakSetProtoHas } from './WeakSet'; + +const { toStringTag: TO_STRING_TAG_SYMBOL } = Symbol; + +function <span class="fstat-no" title="function not covered" >getBrandByTrialAndError(</span>value: any): string { + // Trail and error attempts are performed in order of most likely, + // e.g. those values that have a @@toStringTag defined by default, + // to least likely. + // + // Internally these brand checks rely on native methods that throw and catch + // an exception when they operate on values with unexpected internal slot + // entries. + + // Section 25.1.5.1 get ArrayBuffer.prototype.byteLength + // https://tc39.es/ecma262/#sec-get-arraybuffer.prototype.bytelength + // Step 2: Perform RequireInternalSlot(O, [[ArrayBufferData]]). +<span class="cstat-no" title="statement not covered" > try {</span> +<span class="cstat-no" title="statement not covered" > if ('byteLength' in value) {</span> +<span class="cstat-no" title="statement not covered" > ReflectApply(ArrayBufferProtoByteLengthGetter, value, []);</span> +<span class="cstat-no" title="statement not covered" > return TO_STRING_BRAND_ARRAY_BUFFER;</span> + } + // eslint-disable-next-line no-empty + } catch {} + // Section 21.4.4 Properties of the Date Prototype Object + // https://tc39.es/ecma262/#thistimevalue + // Step 1: If Type(value) is Object and value has a [[DateValue]] internal slot, then + // a. Return value.[[DateValue]]. + // Step 2: Throw a TypeError exception. +<span class="cstat-no" title="statement not covered" > try {</span> +<span class="cstat-no" title="statement not covered" > if ('toLocaleDateString' in value) {</span> +<span class="cstat-no" title="statement not covered" > ReflectApply(DateProtoValueOf, value, []);</span> +<span class="cstat-no" title="statement not covered" > return TO_STRING_BRAND_DATE;</span> + } + // eslint-disable-next-line no-empty + } catch {} + // Section 24.1.3.10 get Map.prototype.size + // https://tc39.es/ecma262/#sec-get-map.prototype.size + // Step 2: Perform ? RequireInternalSlot(M, [[MapData]]). +<span class="cstat-no" title="statement not covered" > try {</span> +<span class="cstat-no" title="statement not covered" > if ('get' in value && 'size' in value) {</span> +<span class="cstat-no" title="statement not covered" > ReflectApply(MapProtoSizeGetter, value, []);</span> +<span class="cstat-no" title="statement not covered" > return TO_STRING_BRAND_MAP;</span> + } + // eslint-disable-next-line no-empty + } catch {} + // Section 24.2.3.9 get Set.prototype.size + // https://tc39.es/ecma262/#sec-get-set.prototype.size + // Step 2: Perform ? RequireInternalSlot(S, [[SetData]]). +<span class="cstat-no" title="statement not covered" > try {</span> +<span class="cstat-no" title="statement not covered" > if ('add' in value && 'size' in value) {</span> +<span class="cstat-no" title="statement not covered" > ReflectApply(SetProtoSizeGetter, value, []);</span> +<span class="cstat-no" title="statement not covered" > return TO_STRING_BRAND_SET;</span> + } + // eslint-disable-next-line no-empty + } catch {} + // Section 24.3.3.4 WeakMap.prototype.has ( key ) + // https://tc39.es/ecma262/#sec-weakmap.prototype.has + // Step 2: Perform RequireInternalSlot(M, [[WeakMapData]]). +<span class="cstat-no" title="statement not covered" > try {</span> +<span class="cstat-no" title="statement not covered" > if ('get' in value && !('size' in value)) {</span> +<span class="cstat-no" title="statement not covered" > ReflectApply(WeakMapProtoHas, value, []);</span> +<span class="cstat-no" title="statement not covered" > return TO_STRING_BRAND_WEAK_MAP;</span> + } + // eslint-disable-next-line no-empty + } catch {} + // Section 24.4.3.4 WeakSet.prototype.has ( value ) + // https://tc39.es/ecma262/#sec-weakset.prototype.has + // Step 2: 2. Perform RequireInternalSlot(S, [[WeakSetData]]). +<span class="cstat-no" title="statement not covered" > try {</span> +<span class="cstat-no" title="statement not covered" > if ('add' in value && !('size' in value)) {</span> +<span class="cstat-no" title="statement not covered" > ReflectApply(WeakSetProtoHas, value, []);</span> +<span class="cstat-no" title="statement not covered" > return TO_STRING_BRAND_WEAK_SET;</span> + } + // eslint-disable-next-line no-empty + } catch {} + + // The following checks are for the rare occurrence of object, i.e. boxed, + // primitive values or those objects without a default @@toStringTag. + + // Section 21.1.3 Properties of the Number Prototype Object + // https://tc39.es/ecma262/#thisnumbervalue + // Step 2: If Type(value) is Object and value has a [[NumberData]] internal slot, then + // a. Let n be value.[[NumberData]]. + // b. Assert: Type(n) is Number. +<span class="cstat-no" title="statement not covered" > try {</span> +<span class="cstat-no" title="statement not covered" > if ('toPrecision' in value) {</span> +<span class="cstat-no" title="statement not covered" > ReflectApply(NumberProtoValueOf, value, []);</span> +<span class="cstat-no" title="statement not covered" > return TO_STRING_BRAND_NUMBER;</span> + } + // eslint-disable-next-line no-empty + } catch {} + // Section 20.4.3 Properties of the Symbol Prototype Object + // https://tc39.es/ecma262/#thissymbolvalue + // Step 2: If Type(value) is Object and value has a [[SymbolData]] internal slot, then + // a. Let s be value.[[SymbolData]]. + // b. Assert: Type(s) is Symbol. +<span class="cstat-no" title="statement not covered" > try {</span> +<span class="cstat-no" title="statement not covered" > if ('description' in value) {</span> +<span class="cstat-no" title="statement not covered" > ReflectApply(SymbolProtoValueOf, value, []);</span> +<span class="cstat-no" title="statement not covered" > return TO_STRING_BRAND_SYMBOL;</span> + } + // eslint-disable-next-line no-empty + } catch {} + + // Perform heavier checks last. + + // Section 22.2.6.13 get RegExp.prototype.source + // https://tc39.es/ecma262/#sec-get-regexp.prototype.source + // Step 3: If R does not have an [[OriginalSource]] internal slot, then + // a. If SameValue(R, %RegExp.prototype%) is true, return "(?:)". + // b. Otherwise, throw a TypeError exception. +<span class="cstat-no" title="statement not covered" > try {</span> +<span class="cstat-no" title="statement not covered" > if (ObjectHasOwn(value, 'lastIndex')) {</span> +<span class="cstat-no" title="statement not covered" > ReflectApply(RegExpProtoSourceGetter, value, []);</span> +<span class="cstat-no" title="statement not covered" > return TO_STRING_BRAND_REG_EXP;</span> + } + // eslint-disable-next-line no-empty + } catch {} + // Section 22.1.3 Properties of the String Prototype Object + // https://tc39.es/ecma262/#thisstringvalue + // Step 2: If Type(value) is Object and value has a [[StringData]] internal slot, then + // a. Let s be value.[[StringData]]. + // b. Assert: Type(s) is String. +<span class="cstat-no" title="statement not covered" > try {</span> +<span class="cstat-no" title="statement not covered" > if (ObjectHasOwn(value, 'length')) {</span> +<span class="cstat-no" title="statement not covered" > ReflectApply(StringProtoValueOf, value, []);</span> +<span class="cstat-no" title="statement not covered" > return TO_STRING_BRAND_STRING;</span> + } + // eslint-disable-next-line no-empty + } catch {} + // Section 20.3.3 Properties of the Boolean Prototype Object + // https://tc39.es/ecma262/#thisbooleanvalue + // Step 2: If Type(value) is Object and value has a [[BooleanData]] internal slot, then + // a. Let b be value.[[BooleanData]]. + // b. Assert: Type(b) is Boolean. +<span class="cstat-no" title="statement not covered" > try {</span> +<span class="cstat-no" title="statement not covered" > ReflectApply(BooleanProtoValueOf, value, []);</span> +<span class="cstat-no" title="statement not covered" > return TO_STRING_BRAND_BOOLEAN;</span> + // eslint-disable-next-line no-empty + } catch {} + // istanbul ignore else: all platforms that LWS runs tests in support BigInt +<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (SUPPORTS_BIG_INT) {</span> +<span class="cstat-no" title="statement not covered" > try {</span> + // Section 21.2.3 Properties of the BigInt Prototype Object + // https://tc39.es/ecma262/#thisbigintvalue + // Step 2: If Type(value) is Object and value has a [[BigIntData]] internal slot, then + // a. Assert: Type(value.[[BigIntData]]) is BigInt. +<span class="cstat-no" title="statement not covered" > ReflectApply(BigIntProtoValueOf!, value, []);</span> +<span class="cstat-no" title="statement not covered" > return TO_STRING_BRAND_BIG_INT;</span> + // eslint-disable-next-line no-empty + } catch {} + } + // Cannot detect brands for Arguments and Error objects. +<span class="cstat-no" title="statement not covered" > return TO_STRING_BRAND_OBJECT;</span> +} + +export function <span class="fstat-no" title="function not covered" >getBrand(</span>value: any): string { + // Section 20.1.3.6 Object.prototype.toString ( ) + // https://tc39.es/ecma262/#sec-object.prototype.tostring +<span class="cstat-no" title="statement not covered" > if (value === null) {</span> +<span class="cstat-no" title="statement not covered" > return TO_STRING_BRAND_NULL;</span> + } +<span class="cstat-no" title="statement not covered" > if (value === undefined) {</span> +<span class="cstat-no" title="statement not covered" > return TO_STRING_BRAND_UNDEFINED;</span> + } + // eslint-disable-next-line default-case +<span class="cstat-no" title="statement not covered" > switch (typeof value) {</span> + case 'bigint': +<span class="cstat-no" title="statement not covered" > return TO_STRING_BRAND_BIG_INT;</span> + case 'boolean': +<span class="cstat-no" title="statement not covered" > return TO_STRING_BRAND_BOOLEAN;</span> + case 'function': +<span class="cstat-no" title="statement not covered" > return TO_STRING_BRAND_FUNCTION;</span> + case 'number': +<span class="cstat-no" title="statement not covered" > return TO_STRING_BRAND_NUMBER;</span> + case 'string': +<span class="cstat-no" title="statement not covered" > return TO_STRING_BRAND_STRING;</span> + case 'symbol': +<span class="cstat-no" title="statement not covered" > return TO_STRING_BRAND_SYMBOL;</span> + } +<span class="cstat-no" title="statement not covered" > if (ArrayIsArray(value)) {</span> +<span class="cstat-no" title="statement not covered" > return TO_STRING_BRAND_ARRAY;</span> + } +<span class="cstat-no" title="statement not covered" > return TO_STRING_TAG_SYMBOL in value</span> + ? getBrandByTrialAndError(value) + : ReflectApply(ObjectProtoToString, value, []); +} + </pre></td></tr></table></pre> + + <div class='push'></div><!-- for sticky footer --> + </div><!-- /wrapper --> + <div class='footer quiet pad2 space-top1 center small'> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> + at Mon Nov 25 2024 16:43:41 GMT+0000 (Coordinated Universal Time) + </div> + <script src="../../prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="../../sorter.js"></script> + <script src="../../block-navigation.js"></script> + </body> +</html> + \ No newline at end of file diff --git a/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/clone.ts.html b/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/clone.ts.html new file mode 100644 index 00000000..dbf75b80 --- /dev/null +++ b/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/clone.ts.html @@ -0,0 +1,1039 @@ + +<!doctype html> +<html lang="en"> + +<head> + <title>Code coverage report for near-membrane-shared/src/clone.ts</title> + <meta charset="utf-8" /> + <link rel="stylesheet" href="../../prettify.css" /> + <link rel="stylesheet" href="../../base.css" /> + <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <style type='text/css'> + .coverage-summary .sorter { + background-image: url(../../sort-arrow-sprite.png); + } + </style> +</head> + +<body> +<div class='wrapper'> + <div class='pad1'> + <h1><a href="../../index.html">All files</a> / <a href="index.html">near-membrane-shared/src</a> clone.ts</h1> + <div class='clearfix'> + + <div class='fl pad1y space-right2'> + <span class="strong">1.16% </span> + <span class="quiet">Statements</span> + <span class='fraction'>1/86</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">0% </span> + <span class="quiet">Branches</span> + <span class='fraction'>0/35</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">0% </span> + <span class="quiet">Functions</span> + <span class='fraction'>0/12</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">1.2% </span> + <span class="quiet">Lines</span> + <span class='fraction'>1/83</span> + </div> + + + </div> + <p class="quiet"> + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + </p> + <template id="filterTemplate"> + <div class="quiet"> + Filter: + <input oninput="onInput()" type="search" id="fileSearch"> + </div> + </template> + </div> + <div class='status-line low'></div> + <pre><table class="coverage"> +<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a> +<a name='L2'></a><a href='#L2'>2</a> +<a name='L3'></a><a href='#L3'>3</a> +<a name='L4'></a><a href='#L4'>4</a> +<a name='L5'></a><a href='#L5'>5</a> +<a name='L6'></a><a href='#L6'>6</a> +<a name='L7'></a><a href='#L7'>7</a> +<a name='L8'></a><a href='#L8'>8</a> +<a name='L9'></a><a href='#L9'>9</a> +<a name='L10'></a><a href='#L10'>10</a> +<a name='L11'></a><a href='#L11'>11</a> +<a name='L12'></a><a href='#L12'>12</a> +<a name='L13'></a><a href='#L13'>13</a> +<a name='L14'></a><a href='#L14'>14</a> +<a name='L15'></a><a href='#L15'>15</a> +<a name='L16'></a><a href='#L16'>16</a> +<a name='L17'></a><a href='#L17'>17</a> +<a name='L18'></a><a href='#L18'>18</a> +<a name='L19'></a><a href='#L19'>19</a> +<a name='L20'></a><a href='#L20'>20</a> +<a name='L21'></a><a href='#L21'>21</a> +<a name='L22'></a><a href='#L22'>22</a> +<a name='L23'></a><a href='#L23'>23</a> +<a name='L24'></a><a href='#L24'>24</a> +<a name='L25'></a><a href='#L25'>25</a> +<a name='L26'></a><a href='#L26'>26</a> +<a name='L27'></a><a href='#L27'>27</a> +<a name='L28'></a><a href='#L28'>28</a> +<a name='L29'></a><a href='#L29'>29</a> +<a name='L30'></a><a href='#L30'>30</a> +<a name='L31'></a><a href='#L31'>31</a> +<a name='L32'></a><a href='#L32'>32</a> +<a name='L33'></a><a href='#L33'>33</a> +<a name='L34'></a><a href='#L34'>34</a> +<a name='L35'></a><a href='#L35'>35</a> +<a name='L36'></a><a href='#L36'>36</a> +<a name='L37'></a><a href='#L37'>37</a> +<a name='L38'></a><a href='#L38'>38</a> +<a name='L39'></a><a href='#L39'>39</a> +<a name='L40'></a><a href='#L40'>40</a> +<a name='L41'></a><a href='#L41'>41</a> +<a name='L42'></a><a href='#L42'>42</a> +<a name='L43'></a><a href='#L43'>43</a> +<a name='L44'></a><a href='#L44'>44</a> +<a name='L45'></a><a href='#L45'>45</a> +<a name='L46'></a><a href='#L46'>46</a> +<a name='L47'></a><a href='#L47'>47</a> +<a name='L48'></a><a href='#L48'>48</a> +<a name='L49'></a><a href='#L49'>49</a> +<a name='L50'></a><a href='#L50'>50</a> +<a name='L51'></a><a href='#L51'>51</a> +<a name='L52'></a><a href='#L52'>52</a> +<a name='L53'></a><a href='#L53'>53</a> +<a name='L54'></a><a href='#L54'>54</a> +<a name='L55'></a><a href='#L55'>55</a> +<a name='L56'></a><a href='#L56'>56</a> +<a name='L57'></a><a href='#L57'>57</a> +<a name='L58'></a><a href='#L58'>58</a> +<a name='L59'></a><a href='#L59'>59</a> +<a name='L60'></a><a href='#L60'>60</a> +<a name='L61'></a><a href='#L61'>61</a> +<a name='L62'></a><a href='#L62'>62</a> +<a name='L63'></a><a href='#L63'>63</a> +<a name='L64'></a><a href='#L64'>64</a> +<a name='L65'></a><a href='#L65'>65</a> +<a name='L66'></a><a href='#L66'>66</a> +<a name='L67'></a><a href='#L67'>67</a> +<a name='L68'></a><a href='#L68'>68</a> +<a name='L69'></a><a href='#L69'>69</a> +<a name='L70'></a><a href='#L70'>70</a> +<a name='L71'></a><a href='#L71'>71</a> +<a name='L72'></a><a href='#L72'>72</a> +<a name='L73'></a><a href='#L73'>73</a> +<a name='L74'></a><a href='#L74'>74</a> +<a name='L75'></a><a href='#L75'>75</a> +<a name='L76'></a><a href='#L76'>76</a> +<a name='L77'></a><a href='#L77'>77</a> +<a name='L78'></a><a href='#L78'>78</a> +<a name='L79'></a><a href='#L79'>79</a> +<a name='L80'></a><a href='#L80'>80</a> +<a name='L81'></a><a href='#L81'>81</a> +<a name='L82'></a><a href='#L82'>82</a> +<a name='L83'></a><a href='#L83'>83</a> +<a name='L84'></a><a href='#L84'>84</a> +<a name='L85'></a><a href='#L85'>85</a> +<a name='L86'></a><a href='#L86'>86</a> +<a name='L87'></a><a href='#L87'>87</a> +<a name='L88'></a><a href='#L88'>88</a> +<a name='L89'></a><a href='#L89'>89</a> +<a name='L90'></a><a href='#L90'>90</a> +<a name='L91'></a><a href='#L91'>91</a> +<a name='L92'></a><a href='#L92'>92</a> +<a name='L93'></a><a href='#L93'>93</a> +<a name='L94'></a><a href='#L94'>94</a> +<a name='L95'></a><a href='#L95'>95</a> +<a name='L96'></a><a href='#L96'>96</a> +<a name='L97'></a><a href='#L97'>97</a> +<a name='L98'></a><a href='#L98'>98</a> +<a name='L99'></a><a href='#L99'>99</a> +<a name='L100'></a><a href='#L100'>100</a> +<a name='L101'></a><a href='#L101'>101</a> +<a name='L102'></a><a href='#L102'>102</a> +<a name='L103'></a><a href='#L103'>103</a> +<a name='L104'></a><a href='#L104'>104</a> +<a name='L105'></a><a href='#L105'>105</a> +<a name='L106'></a><a href='#L106'>106</a> +<a name='L107'></a><a href='#L107'>107</a> +<a name='L108'></a><a href='#L108'>108</a> +<a name='L109'></a><a href='#L109'>109</a> +<a name='L110'></a><a href='#L110'>110</a> +<a name='L111'></a><a href='#L111'>111</a> +<a name='L112'></a><a href='#L112'>112</a> +<a name='L113'></a><a href='#L113'>113</a> +<a name='L114'></a><a href='#L114'>114</a> +<a name='L115'></a><a href='#L115'>115</a> +<a name='L116'></a><a href='#L116'>116</a> +<a name='L117'></a><a href='#L117'>117</a> +<a name='L118'></a><a href='#L118'>118</a> +<a name='L119'></a><a href='#L119'>119</a> +<a name='L120'></a><a href='#L120'>120</a> +<a name='L121'></a><a href='#L121'>121</a> +<a name='L122'></a><a href='#L122'>122</a> +<a name='L123'></a><a href='#L123'>123</a> +<a name='L124'></a><a href='#L124'>124</a> +<a name='L125'></a><a href='#L125'>125</a> +<a name='L126'></a><a href='#L126'>126</a> +<a name='L127'></a><a href='#L127'>127</a> +<a name='L128'></a><a href='#L128'>128</a> +<a name='L129'></a><a href='#L129'>129</a> +<a name='L130'></a><a href='#L130'>130</a> +<a name='L131'></a><a href='#L131'>131</a> +<a name='L132'></a><a href='#L132'>132</a> +<a name='L133'></a><a href='#L133'>133</a> +<a name='L134'></a><a href='#L134'>134</a> +<a name='L135'></a><a href='#L135'>135</a> +<a name='L136'></a><a href='#L136'>136</a> +<a name='L137'></a><a href='#L137'>137</a> +<a name='L138'></a><a href='#L138'>138</a> +<a name='L139'></a><a href='#L139'>139</a> +<a name='L140'></a><a href='#L140'>140</a> +<a name='L141'></a><a href='#L141'>141</a> +<a name='L142'></a><a href='#L142'>142</a> +<a name='L143'></a><a href='#L143'>143</a> +<a name='L144'></a><a href='#L144'>144</a> +<a name='L145'></a><a href='#L145'>145</a> +<a name='L146'></a><a href='#L146'>146</a> +<a name='L147'></a><a href='#L147'>147</a> +<a name='L148'></a><a href='#L148'>148</a> +<a name='L149'></a><a href='#L149'>149</a> +<a name='L150'></a><a href='#L150'>150</a> +<a name='L151'></a><a href='#L151'>151</a> +<a name='L152'></a><a href='#L152'>152</a> +<a name='L153'></a><a href='#L153'>153</a> +<a name='L154'></a><a href='#L154'>154</a> +<a name='L155'></a><a href='#L155'>155</a> +<a name='L156'></a><a href='#L156'>156</a> +<a name='L157'></a><a href='#L157'>157</a> +<a name='L158'></a><a href='#L158'>158</a> +<a name='L159'></a><a href='#L159'>159</a> +<a name='L160'></a><a href='#L160'>160</a> +<a name='L161'></a><a href='#L161'>161</a> +<a name='L162'></a><a href='#L162'>162</a> +<a name='L163'></a><a href='#L163'>163</a> +<a name='L164'></a><a href='#L164'>164</a> +<a name='L165'></a><a href='#L165'>165</a> +<a name='L166'></a><a href='#L166'>166</a> +<a name='L167'></a><a href='#L167'>167</a> +<a name='L168'></a><a href='#L168'>168</a> +<a name='L169'></a><a href='#L169'>169</a> +<a name='L170'></a><a href='#L170'>170</a> +<a name='L171'></a><a href='#L171'>171</a> +<a name='L172'></a><a href='#L172'>172</a> +<a name='L173'></a><a href='#L173'>173</a> +<a name='L174'></a><a href='#L174'>174</a> +<a name='L175'></a><a href='#L175'>175</a> +<a name='L176'></a><a href='#L176'>176</a> +<a name='L177'></a><a href='#L177'>177</a> +<a name='L178'></a><a href='#L178'>178</a> +<a name='L179'></a><a href='#L179'>179</a> +<a name='L180'></a><a href='#L180'>180</a> +<a name='L181'></a><a href='#L181'>181</a> +<a name='L182'></a><a href='#L182'>182</a> +<a name='L183'></a><a href='#L183'>183</a> +<a name='L184'></a><a href='#L184'>184</a> +<a name='L185'></a><a href='#L185'>185</a> +<a name='L186'></a><a href='#L186'>186</a> +<a name='L187'></a><a href='#L187'>187</a> +<a name='L188'></a><a href='#L188'>188</a> +<a name='L189'></a><a href='#L189'>189</a> +<a name='L190'></a><a href='#L190'>190</a> +<a name='L191'></a><a href='#L191'>191</a> +<a name='L192'></a><a href='#L192'>192</a> +<a name='L193'></a><a href='#L193'>193</a> +<a name='L194'></a><a href='#L194'>194</a> +<a name='L195'></a><a href='#L195'>195</a> +<a name='L196'></a><a href='#L196'>196</a> +<a name='L197'></a><a href='#L197'>197</a> +<a name='L198'></a><a href='#L198'>198</a> +<a name='L199'></a><a href='#L199'>199</a> +<a name='L200'></a><a href='#L200'>200</a> +<a name='L201'></a><a href='#L201'>201</a> +<a name='L202'></a><a href='#L202'>202</a> +<a name='L203'></a><a href='#L203'>203</a> +<a name='L204'></a><a href='#L204'>204</a> +<a name='L205'></a><a href='#L205'>205</a> +<a name='L206'></a><a href='#L206'>206</a> +<a name='L207'></a><a href='#L207'>207</a> +<a name='L208'></a><a href='#L208'>208</a> +<a name='L209'></a><a href='#L209'>209</a> +<a name='L210'></a><a href='#L210'>210</a> +<a name='L211'></a><a href='#L211'>211</a> +<a name='L212'></a><a href='#L212'>212</a> +<a name='L213'></a><a href='#L213'>213</a> +<a name='L214'></a><a href='#L214'>214</a> +<a name='L215'></a><a href='#L215'>215</a> +<a name='L216'></a><a href='#L216'>216</a> +<a name='L217'></a><a href='#L217'>217</a> +<a name='L218'></a><a href='#L218'>218</a> +<a name='L219'></a><a href='#L219'>219</a> +<a name='L220'></a><a href='#L220'>220</a> +<a name='L221'></a><a href='#L221'>221</a> +<a name='L222'></a><a href='#L222'>222</a> +<a name='L223'></a><a href='#L223'>223</a> +<a name='L224'></a><a href='#L224'>224</a> +<a name='L225'></a><a href='#L225'>225</a> +<a name='L226'></a><a href='#L226'>226</a> +<a name='L227'></a><a href='#L227'>227</a> +<a name='L228'></a><a href='#L228'>228</a> +<a name='L229'></a><a href='#L229'>229</a> +<a name='L230'></a><a href='#L230'>230</a> +<a name='L231'></a><a href='#L231'>231</a> +<a name='L232'></a><a href='#L232'>232</a> +<a name='L233'></a><a href='#L233'>233</a> +<a name='L234'></a><a href='#L234'>234</a> +<a name='L235'></a><a href='#L235'>235</a> +<a name='L236'></a><a href='#L236'>236</a> +<a name='L237'></a><a href='#L237'>237</a> +<a name='L238'></a><a href='#L238'>238</a> +<a name='L239'></a><a href='#L239'>239</a> +<a name='L240'></a><a href='#L240'>240</a> +<a name='L241'></a><a href='#L241'>241</a> +<a name='L242'></a><a href='#L242'>242</a> +<a name='L243'></a><a href='#L243'>243</a> +<a name='L244'></a><a href='#L244'>244</a> +<a name='L245'></a><a href='#L245'>245</a> +<a name='L246'></a><a href='#L246'>246</a> +<a name='L247'></a><a href='#L247'>247</a> +<a name='L248'></a><a href='#L248'>248</a> +<a name='L249'></a><a href='#L249'>249</a> +<a name='L250'></a><a href='#L250'>250</a> +<a name='L251'></a><a href='#L251'>251</a> +<a name='L252'></a><a href='#L252'>252</a> +<a name='L253'></a><a href='#L253'>253</a> +<a name='L254'></a><a href='#L254'>254</a> +<a name='L255'></a><a href='#L255'>255</a> +<a name='L256'></a><a href='#L256'>256</a> +<a name='L257'></a><a href='#L257'>257</a> +<a name='L258'></a><a href='#L258'>258</a> +<a name='L259'></a><a href='#L259'>259</a> +<a name='L260'></a><a href='#L260'>260</a> +<a name='L261'></a><a href='#L261'>261</a> +<a name='L262'></a><a href='#L262'>262</a> +<a name='L263'></a><a href='#L263'>263</a> +<a name='L264'></a><a href='#L264'>264</a> +<a name='L265'></a><a href='#L265'>265</a> +<a name='L266'></a><a href='#L266'>266</a> +<a name='L267'></a><a href='#L267'>267</a> +<a name='L268'></a><a href='#L268'>268</a> +<a name='L269'></a><a href='#L269'>269</a> +<a name='L270'></a><a href='#L270'>270</a> +<a name='L271'></a><a href='#L271'>271</a> +<a name='L272'></a><a href='#L272'>272</a> +<a name='L273'></a><a href='#L273'>273</a> +<a name='L274'></a><a href='#L274'>274</a> +<a name='L275'></a><a href='#L275'>275</a> +<a name='L276'></a><a href='#L276'>276</a> +<a name='L277'></a><a href='#L277'>277</a> +<a name='L278'></a><a href='#L278'>278</a> +<a name='L279'></a><a href='#L279'>279</a> +<a name='L280'></a><a href='#L280'>280</a> +<a name='L281'></a><a href='#L281'>281</a> +<a name='L282'></a><a href='#L282'>282</a> +<a name='L283'></a><a href='#L283'>283</a> +<a name='L284'></a><a href='#L284'>284</a> +<a name='L285'></a><a href='#L285'>285</a> +<a name='L286'></a><a href='#L286'>286</a> +<a name='L287'></a><a href='#L287'>287</a> +<a name='L288'></a><a href='#L288'>288</a> +<a name='L289'></a><a href='#L289'>289</a> +<a name='L290'></a><a href='#L290'>290</a> +<a name='L291'></a><a href='#L291'>291</a> +<a name='L292'></a><a href='#L292'>292</a> +<a name='L293'></a><a href='#L293'>293</a> +<a name='L294'></a><a href='#L294'>294</a> +<a name='L295'></a><a href='#L295'>295</a> +<a name='L296'></a><a href='#L296'>296</a> +<a name='L297'></a><a href='#L297'>297</a> +<a name='L298'></a><a href='#L298'>298</a> +<a name='L299'></a><a href='#L299'>299</a> +<a name='L300'></a><a href='#L300'>300</a> +<a name='L301'></a><a href='#L301'>301</a> +<a name='L302'></a><a href='#L302'>302</a> +<a name='L303'></a><a href='#L303'>303</a> +<a name='L304'></a><a href='#L304'>304</a> +<a name='L305'></a><a href='#L305'>305</a> +<a name='L306'></a><a href='#L306'>306</a> +<a name='L307'></a><a href='#L307'>307</a> +<a name='L308'></a><a href='#L308'>308</a> +<a name='L309'></a><a href='#L309'>309</a> +<a name='L310'></a><a href='#L310'>310</a> +<a name='L311'></a><a href='#L311'>311</a> +<a name='L312'></a><a href='#L312'>312</a> +<a name='L313'></a><a href='#L313'>313</a> +<a name='L314'></a><a href='#L314'>314</a> +<a name='L315'></a><a href='#L315'>315</a> +<a name='L316'></a><a href='#L316'>316</a> +<a name='L317'></a><a href='#L317'>317</a> +<a name='L318'></a><a href='#L318'>318</a> +<a name='L319'></a><a href='#L319'>319</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { ArrayCtor, ArrayProtoShift } from './Array'; +import { getBrand } from './basic'; +import { + TO_STRING_BRAND_ARRAY, + TO_STRING_BRAND_BIG_INT, + TO_STRING_BRAND_BOOLEAN, + TO_STRING_BRAND_MAP, + TO_STRING_BRAND_NUMBER, + TO_STRING_BRAND_OBJECT, + TO_STRING_BRAND_REG_EXP, + TO_STRING_BRAND_SET, + TO_STRING_BRAND_STRING, +} from './constants'; +import { JSONParse } from './JSON'; +import { MapCtor, MapProtoEntries, MapProtoSet, toSafeMap } from './Map'; +import { getNearMembraneProxySerializedValue, isNearMembraneProxy } from './NearMembrane'; +import { ObjectCtor, ObjectKeys, ObjectProto } from './Object'; +import { ReflectApply, ReflectGetPrototypeOf } from './Reflect'; +import { RegExpCtor } from './RegExp'; +import { SetCtor, SetProtoAdd, SetProtoValues } from './Set'; + +const SEEN_OBJECTS = toSafeMap(new MapCtor<object, object>()); + +function <span class="fstat-no" title="function not covered" >cloneBoxedPrimitive(</span>object: object): object { +<span class="cstat-no" title="statement not covered" > return ObjectCtor(getNearMembraneProxySerializedValue(object));</span> +} + +function <span class="fstat-no" title="function not covered" >cloneMap(</span>map: Map<any, any>, queue: any[]): Map<any, any> { + // Section 2.7.3 StructuredSerializeInternal: + // https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal + // Step 26.1.1: Let copiedList be a new empty List. + const clone = <span class="cstat-no" title="statement not covered" >new MapCtor();</span> + // Step 26.1.2: For each Record { [[Key]], [[Value]] } entry of value.[[MapData]]... + const entriesIterable = <span class="cstat-no" title="statement not covered" >ReflectApply(MapProtoEntries, map, []);</span> + // Step 26.1.3 For each Record { [[Key]], [[Value]] } entry of copiedList: + let { length: queueOffset } = <span class="cstat-no" title="statement not covered" >queue;</span> + // eslint-disable-next-line no-constant-condition +<span class="cstat-no" title="statement not covered" > while (true) {</span> + const { done, value: subKeyValuePair } = <span class="cstat-no" title="statement not covered" >entriesIterable.next();</span> +<span class="cstat-no" title="statement not covered" > if (done) {</span> +<span class="cstat-no" title="statement not covered" > break;</span> + } + const { 0: subKey, 1: subValue } = <span class="cstat-no" title="statement not covered" >subKeyValuePair;</span> + let subCloneKey: any; + // Step 26.1.3.1: Let serializedKey be ? StructuredSerializeInternal(entry.[[Key]], forStorage, memory). +<span class="cstat-no" title="statement not covered" > queue[queueOffset++] = [</span> +<span class="fstat-no" title="function not covered" > (s</span>ubClone: any) => { +<span class="cstat-no" title="statement not covered" > subCloneKey = subClone;</span> + }, + subKey, + ]; + // Step 26.1.3.2: Let serializedValue be ? StructuredSerializeInternal(entry.[[Value]], forStorage, memory). +<span class="cstat-no" title="statement not covered" > queue[queueOffset++] = [</span> +<span class="fstat-no" title="function not covered" > (s</span>ubCloneValue: any) => { +<span class="cstat-no" title="statement not covered" > ReflectApply(MapProtoSet, clone, [subCloneKey, subCloneValue]);</span> + }, + subValue, + ]; + } +<span class="cstat-no" title="statement not covered" > return clone;</span> +} + +function <span class="fstat-no" title="function not covered" >cloneRegExp(</span>regexp: RegExp): RegExp { + const { flags, source } = <span class="cstat-no" title="statement not covered" >JSONParse(getNearMembraneProxySerializedValue(regexp) as string);</span> +<span class="cstat-no" title="statement not covered" > return new RegExpCtor(source, flags);</span> +} + +function <span class="fstat-no" title="function not covered" >cloneSet(</span>set: Set<any>, queue: any[]): Set<any> { + // Section 2.7.3 StructuredSerializeInternal: + // https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal + // Step 26.2.1: Let copiedList be a new empty List. + const clone = <span class="cstat-no" title="statement not covered" >new SetCtor();</span> + // Step 26.2.2: For each entry of value.[[SetData]]... + const valuesIterable = <span class="cstat-no" title="statement not covered" >ReflectApply(SetProtoValues, set, []);</span> + // Step 26.2.3: For each entry of copiedList: + let { length: queueOffset } = <span class="cstat-no" title="statement not covered" >queue;</span> + // eslint-disable-next-line no-constant-condition +<span class="cstat-no" title="statement not covered" > while (true) {</span> + const { done, value: subValue } = <span class="cstat-no" title="statement not covered" >valuesIterable.next();</span> +<span class="cstat-no" title="statement not covered" > if (done) {</span> +<span class="cstat-no" title="statement not covered" > break;</span> + } + // Step 26.2.3.1: Let serializedEntry be ? StructuredSerializeInternal(entry, forStorage, memory). +<span class="cstat-no" title="statement not covered" > queue[queueOffset++] = [</span> +<span class="fstat-no" title="function not covered" > (s</span>ubCloneValue: any) => { +<span class="cstat-no" title="statement not covered" > ReflectApply(SetProtoAdd, clone, [subCloneValue]);</span> + }, + subValue, + ]; + } +<span class="cstat-no" title="statement not covered" > return clone;</span> +} + +function <span class="fstat-no" title="function not covered" >enqueue(</span>queue: any[], originalValue: object, cloneValue: object) { + // Section 2.7.3 StructuredSerializeInternal: + // https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal + // Step 26.4: Otherwise, for each key in ! EnumerableOwnPropertyNames(value, key)... + // Note: Object.keys() performs EnumerableOwnPropertyNames() internally as + // defined in ECMA262: + // https://tc39.es/ecma262/#sec-object.keys + const keys = <span class="cstat-no" title="statement not covered" >ObjectKeys(originalValue);</span> + let { length: queueOffset } = <span class="cstat-no" title="statement not covered" >queue;</span> +<span class="cstat-no" title="statement not covered" > for (let i = <span class="cstat-no" title="statement not covered" >0,</span> { length } = <span class="cstat-no" title="statement not covered" >keys;</span> i < length; i += 1) {</span> + // Step 26.4.1.1: Let inputValue be ? value.[[Get]](key, value). + // The [[Get]] operation is defined in ECMA262 for ordinary objects, + // argument objects, integer-indexed exotic objects, module namespace + // objects, and proxy objects. + // https://tc39.es/ecma262/#sec-ordinary-object-internal-methods-and-internal-slots-get-p-receiver + const key = <span class="cstat-no" title="statement not covered" >keys[i];</span> + const subValue = <span class="cstat-no" title="statement not covered" >(originalValue as any)[key];</span> +<span class="cstat-no" title="statement not covered" > queue[queueOffset++] = [</span> +<span class="fstat-no" title="function not covered" > (s</span>ubCloneValue: object) => { + // Step 26.4.1.3: Property descriptor attributes are not + // preserved during deserialization because only keys and + // values are captured in serialized.[[Properties]]. +<span class="cstat-no" title="statement not covered" > (cloneValue as any)[key] = subCloneValue;</span> + }, + subValue, + ]; + } +} + +// This function is the unguarded internal variant of `partialStructuredClone()`. +// Any error thrown that is captured by `partialStructuredClone()` is treated as +// a `DataCloneError`. This function clones blue membrane proxied arrays, plain +// objects, maps, regexps, sets, and boxed primitives. The following non-membrane +// proxied objects are set by reference instead of cloning: +// ArrayBuffer +// BigInt64Array +// BigUint64Array +// Blob +// DataView +// Date +// DOMException +// DOMMatrix +// DOMMatrixReadOnly +// DOMPoint +// DOMPointReadOnly +// DOMQuad +// DOMRect +// DOMRectReadOnly +// Error +// EvalError +// File +// FileList +// Float32Array +// Float64Array +// ImageBitMap +// ImageData +// Int8Array +// Int16Array +// Int32Array +// RangeError +// ReferenceError +// SyntaxError +// TypeError +// Uint8Array +// Uint8ClampedArray +// Uint16Array +// Uint32Array +// URIError +// +// Note: +// This function performs brand checks using `Object.prototype.toString`. The +// results can be faked with `Symbol.toStringTag` property values and are a poor +// substitute for native internal slot checks. However, for our purposes they +// are perfectly fine and avoid having to repeatedly walk the prototype of proxied +// values. Cloned values should be passed to native methods, like `postMessage()`, +// which perform their own validation with internal slot checks. +function <span class="fstat-no" title="function not covered" >partialStructuredCloneInternal(</span>value: any): any { + // Using a queue instead of recursive function calls avoids call stack limits + // and enables cloning more complex and deeply nested objects. + // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Too_much_recursion + let result: any; + const queue = <span class="cstat-no" title="statement not covered" >[</span> + [ +<span class="fstat-no" title="function not covered" > (s</span>ubClone: any) => { +<span class="cstat-no" title="statement not covered" > result = subClone;</span> + }, + value, + ], + ]; + // eslint-disable-next-line no-labels +<span class="cstat-no" title="statement not covered" > queueLoop: <span class="cstat-no" title="statement not covered" >while (queue.length) {</span></span> + // Section 2.7.3 StructuredSerializeInternal: + // https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal + // prettier-ignore + const { + 0: setter, + 1: originalValue, + } = <span class="cstat-no" title="statement not covered" >ReflectApply(ArrayProtoShift, queue, []);</span> + // Step 4: If Type(value) is Undefined, Null, Boolean, Number, BigInt, or String +<span class="cstat-no" title="statement not covered" > if (</span> + originalValue === null || + originalValue === undefined || + typeof originalValue === 'boolean' || + typeof originalValue === 'number' || + typeof originalValue === 'string' || + typeof originalValue === 'bigint' + ) { +<span class="cstat-no" title="statement not covered" > setter(originalValue);</span> + // eslint-disable-next-line no-continue, no-extra-label, no-labels +<span class="cstat-no" title="statement not covered" > continue queueLoop;</span> + } + // Step 5: If Type(value) is Symbol, then throw a 'DataCloneError' DOMException. +<span class="cstat-no" title="statement not covered" > if (typeof originalValue === 'symbol') {</span> + // Stop cloning and set the original value and defer throwing to + // native methods. +<span class="cstat-no" title="statement not covered" > setter(originalValue);</span> + // eslint-disable-next-line no-extra-label, no-labels +<span class="cstat-no" title="statement not covered" > break queueLoop;</span> + } + // To support circular references check if the original value has been + // seen. If it has then use the clone associated with its record instead + // of creating a new clone. + let cloneValue = <span class="cstat-no" title="statement not covered" >SEEN_OBJECTS.get(originalValue);</span> +<span class="cstat-no" title="statement not covered" > if (cloneValue) {</span> +<span class="cstat-no" title="statement not covered" > setter(cloneValue);</span> + // eslint-disable-next-line no-continue, no-extra-label, no-labels +<span class="cstat-no" title="statement not covered" > continue queueLoop;</span> + } + // Perform a brand check on originalValue. + const brand = <span class="cstat-no" title="statement not covered" >getBrand(originalValue);</span> + // eslint-disable-next-line default-case +<span class="cstat-no" title="statement not covered" > switch (brand) {</span> + // Step 19: Otherwise, if value is a platform object... + case TO_STRING_BRAND_OBJECT: { + const proto = <span class="cstat-no" title="statement not covered" >ReflectGetPrototypeOf(originalValue);</span> +<span class="cstat-no" title="statement not covered" > if (</span> + proto === ObjectProto || + proto === null || + // Possible `Object.prototype` from another document. + ReflectGetPrototypeOf(proto) === null + ) { +<span class="cstat-no" title="statement not covered" > cloneValue = {};</span> + // Step 19.4: Set deep to true. +<span class="cstat-no" title="statement not covered" > enqueue(queue, originalValue, cloneValue);</span> + } +<span class="cstat-no" title="statement not covered" > break;</span> + } + // Step 18: Otherwise, if value is an Array exotic object... + case TO_STRING_BRAND_ARRAY: + // Step 18.1 Let valueLenDescriptor be ? OrdinaryGetOwnProperty(value, 'length'). + // Note: Rather than perform the more complex OrdinaryGetOwnProperty() + // operation for 'length' because it is a non-configurable property + // we can access it with the simpler [[Get]]() operation defined + // in ECMA262. + // https://tc39.es/ecma262/#sec-integer-indexed-exotic-objects-get-p-receiver +<span class="cstat-no" title="statement not covered" > cloneValue = ArrayCtor(originalValue.length);</span> + // Step 18.4: Set deep to true. +<span class="cstat-no" title="statement not covered" > enqueue(queue, originalValue, cloneValue);</span> +<span class="cstat-no" title="statement not covered" > break;</span> + // Step 15: Otherwise, if value has [[MapData]] internal slot... + // Step 15.2: Set deep to true. + case TO_STRING_BRAND_MAP: +<span class="cstat-no" title="statement not covered" > cloneValue = cloneMap(originalValue, queue);</span> +<span class="cstat-no" title="statement not covered" > break;</span> + // Step 16: Otherwise, if value has [[SetData]] internal slot... + // Step 16.2: Set deep to true. + case TO_STRING_BRAND_SET: +<span class="cstat-no" title="statement not covered" > cloneValue = cloneSet(originalValue, queue);</span> +<span class="cstat-no" title="statement not covered" > break;</span> + } +<span class="cstat-no" title="statement not covered" > if (cloneValue === undefined) {</span> + // istanbul ignore else +<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!isNearMembraneProxy(originalValue)) {</span> + // Skip cloning non-membrane proxied objects. +<span class="cstat-no" title="statement not covered" > SEEN_OBJECTS.set(originalValue, originalValue);</span> +<span class="cstat-no" title="statement not covered" > setter(originalValue);</span> + // eslint-disable-next-line no-extra-label, no-labels +<span class="cstat-no" title="statement not covered" > continue queueLoop;</span> + } + // Cases ordered by a guestimate on frequency of encounter. + // eslint-disable-next-line default-case +<span class="cstat-no" title="statement not covered" > switch (brand) {</span> + // Step 12: Otherwise, if value has a [[RegExpMatcher]] internal slot... + case TO_STRING_BRAND_REG_EXP: +<span class="cstat-no" title="statement not covered" > cloneValue = cloneRegExp(originalValue);</span> +<span class="cstat-no" title="statement not covered" > break;</span> + // Step 7: If value has a [[BooleanData]] internal slot... + case TO_STRING_BRAND_BOOLEAN: + // Step 8: Otherwise, if value has a [[NumberData]] internal slot... + // eslint-disable-next-line no-fallthrough + case TO_STRING_BRAND_NUMBER: + // Step 9: Otherwise, if value has a [[BigIntData]] internal slot... + // eslint-disable-next-line no-fallthrough + case TO_STRING_BRAND_BIG_INT: + // Step 10: Otherwise, if value has a [[StringData]] internal slot... + // eslint-disable-next-line no-fallthrough + case TO_STRING_BRAND_STRING: +<span class="cstat-no" title="statement not covered" > cloneValue = cloneBoxedPrimitive(originalValue);</span> +<span class="cstat-no" title="statement not covered" > break;</span> + } + } + // Step 21: Otherwise, if IsCallable(value) is true, then throw a 'DataCloneError' + // Step 20: Otherwise, if value is a platform object, then throw a 'DataCloneError' +<span class="cstat-no" title="statement not covered" > if (cloneValue === undefined) {</span> + // Stop cloning and set the original value and defer throwing to + // native methods. +<span class="cstat-no" title="statement not covered" > setter(originalValue);</span> + // eslint-disable-next-line no-extra-label, no-labels +<span class="cstat-no" title="statement not covered" > break queueLoop;</span> + } +<span class="cstat-no" title="statement not covered" > SEEN_OBJECTS.set(originalValue, cloneValue);</span> +<span class="cstat-no" title="statement not covered" > setter(cloneValue);</span> + } +<span class="cstat-no" title="statement not covered" > return result;</span> +} + +export function <span class="fstat-no" title="function not covered" >partialStructuredClone(</span>value: any): any { + let result = <span class="cstat-no" title="statement not covered" >value;</span> +<span class="cstat-no" title="statement not covered" > try {</span> +<span class="cstat-no" title="statement not covered" > result = partialStructuredCloneInternal(value);</span> + // eslint-disable-next-line no-empty + } catch {} +<span class="cstat-no" title="statement not covered" > SEEN_OBJECTS.clear();</span> +<span class="cstat-no" title="statement not covered" > return result;</span> +} + </pre></td></tr></table></pre> + + <div class='push'></div><!-- for sticky footer --> + </div><!-- /wrapper --> + <div class='footer quiet pad2 space-top1 center small'> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> + at Mon Nov 25 2024 16:43:41 GMT+0000 (Coordinated Universal Time) + </div> + <script src="../../prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="../../sorter.js"></script> + <script src="../../block-navigation.js"></script> + </body> +</html> + \ No newline at end of file diff --git a/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/constants.ts.html b/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/constants.ts.html new file mode 100644 index 00000000..612dd0cd --- /dev/null +++ b/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/constants.ts.html @@ -0,0 +1,229 @@ + +<!doctype html> +<html lang="en"> + +<head> + <title>Code coverage report for near-membrane-shared/src/constants.ts</title> + <meta charset="utf-8" /> + <link rel="stylesheet" href="../../prettify.css" /> + <link rel="stylesheet" href="../../base.css" /> + <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <style type='text/css'> + .coverage-summary .sorter { + background-image: url(../../sort-arrow-sprite.png); + } + </style> +</head> + +<body> +<div class='wrapper'> + <div class='pad1'> + <h1><a href="../../index.html">All files</a> / <a href="index.html">near-membrane-shared/src</a> constants.ts</h1> + <div class='clearfix'> + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Statements</span> + <span class='fraction'>25/25</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Branches</span> + <span class='fraction'>0/0</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Functions</span> + <span class='fraction'>1/1</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">100% </span> + <span class="quiet">Lines</span> + <span class='fraction'>25/25</span> + </div> + + + </div> + <p class="quiet"> + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + </p> + <template id="filterTemplate"> + <div class="quiet"> + Filter: + <input oninput="onInput()" type="search" id="fileSearch"> + </div> + </template> + </div> + <div class='status-line high'></div> + <pre><table class="coverage"> +<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a> +<a name='L2'></a><a href='#L2'>2</a> +<a name='L3'></a><a href='#L3'>3</a> +<a name='L4'></a><a href='#L4'>4</a> +<a name='L5'></a><a href='#L5'>5</a> +<a name='L6'></a><a href='#L6'>6</a> +<a name='L7'></a><a href='#L7'>7</a> +<a name='L8'></a><a href='#L8'>8</a> +<a name='L9'></a><a href='#L9'>9</a> +<a name='L10'></a><a href='#L10'>10</a> +<a name='L11'></a><a href='#L11'>11</a> +<a name='L12'></a><a href='#L12'>12</a> +<a name='L13'></a><a href='#L13'>13</a> +<a name='L14'></a><a href='#L14'>14</a> +<a name='L15'></a><a href='#L15'>15</a> +<a name='L16'></a><a href='#L16'>16</a> +<a name='L17'></a><a href='#L17'>17</a> +<a name='L18'></a><a href='#L18'>18</a> +<a name='L19'></a><a href='#L19'>19</a> +<a name='L20'></a><a href='#L20'>20</a> +<a name='L21'></a><a href='#L21'>21</a> +<a name='L22'></a><a href='#L22'>22</a> +<a name='L23'></a><a href='#L23'>23</a> +<a name='L24'></a><a href='#L24'>24</a> +<a name='L25'></a><a href='#L25'>25</a> +<a name='L26'></a><a href='#L26'>26</a> +<a name='L27'></a><a href='#L27'>27</a> +<a name='L28'></a><a href='#L28'>28</a> +<a name='L29'></a><a href='#L29'>29</a> +<a name='L30'></a><a href='#L30'>30</a> +<a name='L31'></a><a href='#L31'>31</a> +<a name='L32'></a><a href='#L32'>32</a> +<a name='L33'></a><a href='#L33'>33</a> +<a name='L34'></a><a href='#L34'>34</a> +<a name='L35'></a><a href='#L35'>35</a> +<a name='L36'></a><a href='#L36'>36</a> +<a name='L37'></a><a href='#L37'>37</a> +<a name='L38'></a><a href='#L38'>38</a> +<a name='L39'></a><a href='#L39'>39</a> +<a name='L40'></a><a href='#L40'>40</a> +<a name='L41'></a><a href='#L41'>41</a> +<a name='L42'></a><a href='#L42'>42</a> +<a name='L43'></a><a href='#L43'>43</a> +<a name='L44'></a><a href='#L44'>44</a> +<a name='L45'></a><a href='#L45'>45</a> +<a name='L46'></a><a href='#L46'>46</a> +<a name='L47'></a><a href='#L47'>47</a> +<a name='L48'></a><a href='#L48'>48</a> +<a name='L49'></a><a href='#L49'>49</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-yes">14x</span> +<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { SymbolFor } from './Symbol'; + +// Locker build constants. +export const LOCKER_IDENTIFIER_MARKER = '$LWS'; +// This package is bundled by third-parties that have their own build time +// replacement logic. Instead of customizing each build system to be aware +// of this package we implement a two phase debug mode by performing small +// runtime checks to determine phase one, our code is unminified, and +// phase two, the user opted-in to custom devtools formatters. Phase one +// is used for light weight initialization time debug while phase two is +// reserved for post initialization runtime +export const LOCKER_UNMINIFIED_FLAG = + // eslint-disable-next-line @typescript-eslint/naming-convention + /* istanbul ignore next */ `${(function LOCKER_UNMINIFIED_FLAG() { + return LOCKER_UNMINIFIED_FLAG.name; + })()}`.includes('LOCKER_UNMINIFIED_FLAG'); + +// Character constants. +export const CHAR_ELLIPSIS = '\u2026'; + +// Error message constants. +export const ERR_ILLEGAL_PROPERTY_ACCESS = 'Illegal property access.'; + +// Near-membrane constants. +export const LOCKER_NEAR_MEMBRANE_SERIALIZED_VALUE_SYMBOL = SymbolFor( + '@@lockerNearMembraneSerializedValue' +); +export const LOCKER_NEAR_MEMBRANE_SYMBOL = SymbolFor('@@lockerNearMembrane'); +export const SYMBOL_LIVE_OBJECT = SymbolFor('@@lockerLiveValue'); + +// Object brand constants. +export const TO_STRING_BRAND_ARRAY = '[object Array]'; +export const TO_STRING_BRAND_ARRAY_BUFFER = '[object ArrayBuffer]'; +export const TO_STRING_BRAND_BIG_INT = '[object BigInt]'; +export const TO_STRING_BRAND_BOOLEAN = '[object Boolean]'; +export const TO_STRING_BRAND_DATE = '[object Date]'; +export const TO_STRING_BRAND_FUNCTION = '[object Function]'; +export const TO_STRING_BRAND_MAP = '[object Map]'; +export const TO_STRING_BRAND_NULL = '[object Null]'; +export const TO_STRING_BRAND_NUMBER = '[object Number]'; +export const TO_STRING_BRAND_OBJECT = '[object Object]'; +export const TO_STRING_BRAND_REG_EXP = '[object RegExp]'; +export const TO_STRING_BRAND_SET = '[object Set]'; +export const TO_STRING_BRAND_STRING = '[object String]'; +export const TO_STRING_BRAND_SYMBOL = '[object Symbol]'; +export const TO_STRING_BRAND_UNDEFINED = '[object Undefined]'; +export const TO_STRING_BRAND_WEAK_MAP = '[object WeakMap]'; +export const TO_STRING_BRAND_WEAK_SET = '[object WeakSet]'; + </pre></td></tr></table></pre> + + <div class='push'></div><!-- for sticky footer --> + </div><!-- /wrapper --> + <div class='footer quiet pad2 space-top1 center small'> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> + at Mon Nov 25 2024 16:43:41 GMT+0000 (Coordinated Universal Time) + </div> + <script src="../../prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="../../sorter.js"></script> + <script src="../../block-navigation.js"></script> + </body> +</html> + \ No newline at end of file diff --git a/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/index.html b/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/index.html new file mode 100644 index 00000000..26998cda --- /dev/null +++ b/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/index.html @@ -0,0 +1,491 @@ + +<!doctype html> +<html lang="en"> + +<head> + <title>Code coverage report for near-membrane-shared/src</title> + <meta charset="utf-8" /> + <link rel="stylesheet" href="../../prettify.css" /> + <link rel="stylesheet" href="../../base.css" /> + <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <style type='text/css'> + .coverage-summary .sorter { + background-image: url(../../sort-arrow-sprite.png); + } + </style> +</head> + +<body> +<div class='wrapper'> + <div class='pad1'> + <h1><a href="../../index.html">All files</a> near-membrane-shared/src</h1> + <div class='clearfix'> + + <div class='fl pad1y space-right2'> + <span class="strong">46.71% </span> + <span class="quiet">Statements</span> + <span class='fraction'>142/304</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">5.66% </span> + <span class="quiet">Branches</span> + <span class='fraction'>6/106</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">24% </span> + <span class="quiet">Functions</span> + <span class='fraction'>6/25</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">47.18% </span> + <span class="quiet">Lines</span> + <span class='fraction'>142/301</span> + </div> + + + </div> + <p class="quiet"> + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + </p> + <template id="filterTemplate"> + <div class="quiet"> + Filter: + <input oninput="onInput()" type="search" id="fileSearch"> + </div> + </template> + </div> + <div class='status-line low'></div> + <div class="pad1"> +<table class="coverage-summary"> +<thead> +<tr> + <th data-col="file" data-fmt="html" data-html="true" class="file">File</th> + <th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th> + <th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th> + <th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th> + <th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th> + <th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th> + <th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th> + <th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th> + <th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th> + <th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th> +</tr> +</thead> +<tbody><tr> + <td class="file high" data-value="Array.ts"><a href="Array.ts.html">Array.ts</a></td> + <td data-value="100" class="pic high"> + <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div> + </td> + <td data-value="100" class="pct high">100%</td> + <td data-value="43" class="abs high">43/43</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="0" class="abs high">0/0</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="1" class="abs high">1/1</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="43" class="abs high">43/43</td> + </tr> + +<tr> + <td class="file high" data-value="ArrayBuffer.ts"><a href="ArrayBuffer.ts.html">ArrayBuffer.ts</a></td> + <td data-value="100" class="pic high"> + <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div> + </td> + <td data-value="100" class="pct high">100%</td> + <td data-value="1" class="abs high">1/1</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="0" class="abs high">0/0</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="0" class="abs high">0/0</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="1" class="abs high">1/1</td> + </tr> + +<tr> + <td class="file high" data-value="BigInt.ts"><a href="BigInt.ts.html">BigInt.ts</a></td> + <td data-value="100" class="pic high"> + <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div> + </td> + <td data-value="100" class="pct high">100%</td> + <td data-value="2" class="abs high">2/2</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="1" class="abs high">1/1</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="0" class="abs high">0/0</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="2" class="abs high">2/2</td> + </tr> + +<tr> + <td class="file high" data-value="Boolean.ts"><a href="Boolean.ts.html">Boolean.ts</a></td> + <td data-value="100" class="pic high"> + <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div> + </td> + <td data-value="100" class="pct high">100%</td> + <td data-value="1" class="abs high">1/1</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="0" class="abs high">0/0</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="0" class="abs high">0/0</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="1" class="abs high">1/1</td> + </tr> + +<tr> + <td class="file high" data-value="Date.ts"><a href="Date.ts.html">Date.ts</a></td> + <td data-value="100" class="pic high"> + <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div> + </td> + <td data-value="100" class="pct high">100%</td> + <td data-value="1" class="abs high">1/1</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="0" class="abs high">0/0</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="0" class="abs high">0/0</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="1" class="abs high">1/1</td> + </tr> + +<tr> + <td class="file high" data-value="Error.ts"><a href="Error.ts.html">Error.ts</a></td> + <td data-value="100" class="pic high"> + <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div> + </td> + <td data-value="100" class="pct high">100%</td> + <td data-value="2" class="abs high">2/2</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="0" class="abs high">0/0</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="0" class="abs high">0/0</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="2" class="abs high">2/2</td> + </tr> + +<tr> + <td class="file empty" data-value="Function.ts"><a href="Function.ts.html">Function.ts</a></td> + <td data-value="0" class="pic empty"> + <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div> + </td> + <td data-value="0" class="pct empty">0%</td> + <td data-value="0" class="abs empty">0/0</td> + <td data-value="0" class="pct empty">0%</td> + <td data-value="0" class="abs empty">0/0</td> + <td data-value="0" class="pct empty">0%</td> + <td data-value="1" class="abs empty">1/1</td> + <td data-value="0" class="pct empty">0%</td> + <td data-value="0" class="abs empty">0/0</td> + </tr> + +<tr> + <td class="file high" data-value="JSON.ts"><a href="JSON.ts.html">JSON.ts</a></td> + <td data-value="100" class="pic high"> + <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div> + </td> + <td data-value="100" class="pct high">100%</td> + <td data-value="2" class="abs high">2/2</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="0" class="abs high">0/0</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="0" class="abs high">0/0</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="2" class="abs high">2/2</td> + </tr> + +<tr> + <td class="file high" data-value="Map.ts"><a href="Map.ts.html">Map.ts</a></td> + <td data-value="100" class="pic high"> + <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div> + </td> + <td data-value="100" class="pct high">100%</td> + <td data-value="20" class="abs high">20/20</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="0" class="abs high">0/0</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="1" class="abs high">1/1</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="20" class="abs high">20/20</td> + </tr> + +<tr> + <td class="file high" data-value="Math.ts"><a href="Math.ts.html">Math.ts</a></td> + <td data-value="100" class="pic high"> + <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div> + </td> + <td data-value="100" class="pct high">100%</td> + <td data-value="1" class="abs high">1/1</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="0" class="abs high">0/0</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="0" class="abs high">0/0</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="1" class="abs high">1/1</td> + </tr> + +<tr> + <td class="file low" data-value="NearMembrane.ts"><a href="NearMembrane.ts.html">NearMembrane.ts</a></td> + <td data-value="0" class="pic low"> + <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div> + </td> + <td data-value="0" class="pct low">0%</td> + <td data-value="6" class="abs low">0/6</td> + <td data-value="0" class="pct low">0%</td> + <td data-value="14" class="abs low">0/14</td> + <td data-value="0" class="pct low">0%</td> + <td data-value="2" class="abs low">0/2</td> + <td data-value="0" class="pct low">0%</td> + <td data-value="6" class="abs low">0/6</td> + </tr> + +<tr> + <td class="file high" data-value="Number.ts"><a href="Number.ts.html">Number.ts</a></td> + <td data-value="100" class="pic high"> + <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div> + </td> + <td data-value="100" class="pct high">100%</td> + <td data-value="3" class="abs high">3/3</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="0" class="abs high">0/0</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="0" class="abs high">0/0</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="3" class="abs high">3/3</td> + </tr> + +<tr> + <td class="file medium" data-value="Object.ts"><a href="Object.ts.html">Object.ts</a></td> + <td data-value="77.78" class="pic medium"> + <div class="chart"><div class="cover-fill" style="width: 77%"></div><div class="cover-empty" style="width: 23%"></div></div> + </td> + <td data-value="77.78" class="pct medium">77.78%</td> + <td data-value="9" class="abs medium">7/9</td> + <td data-value="38.46" class="pct low">38.46%</td> + <td data-value="13" class="abs low">5/13</td> + <td data-value="33.33" class="pct low">33.33%</td> + <td data-value="3" class="abs low">1/3</td> + <td data-value="77.78" class="pct medium">77.78%</td> + <td data-value="9" class="abs medium">7/9</td> + </tr> + +<tr> + <td class="file high" data-value="Proxy.ts"><a href="Proxy.ts.html">Proxy.ts</a></td> + <td data-value="100" class="pic high"> + <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div> + </td> + <td data-value="100" class="pct high">100%</td> + <td data-value="1" class="abs high">1/1</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="0" class="abs high">0/0</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="0" class="abs high">0/0</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="1" class="abs high">1/1</td> + </tr> + +<tr> + <td class="file high" data-value="Reflect.ts"><a href="Reflect.ts.html">Reflect.ts</a></td> + <td data-value="100" class="pic high"> + <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div> + </td> + <td data-value="100" class="pct high">100%</td> + <td data-value="1" class="abs high">1/1</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="0" class="abs high">0/0</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="0" class="abs high">0/0</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="1" class="abs high">1/1</td> + </tr> + +<tr> + <td class="file high" data-value="RegExp.ts"><a href="RegExp.ts.html">RegExp.ts</a></td> + <td data-value="100" class="pic high"> + <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div> + </td> + <td data-value="100" class="pct high">100%</td> + <td data-value="4" class="abs high">4/4</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="0" class="abs high">0/0</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="0" class="abs high">0/0</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="4" class="abs high">4/4</td> + </tr> + +<tr> + <td class="file high" data-value="Set.ts"><a href="Set.ts.html">Set.ts</a></td> + <td data-value="100" class="pic high"> + <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div> + </td> + <td data-value="100" class="pct high">100%</td> + <td data-value="4" class="abs high">4/4</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="0" class="abs high">0/0</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="0" class="abs high">0/0</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="4" class="abs high">4/4</td> + </tr> + +<tr> + <td class="file high" data-value="String.ts"><a href="String.ts.html">String.ts</a></td> + <td data-value="100" class="pic high"> + <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div> + </td> + <td data-value="100" class="pct high">100%</td> + <td data-value="3" class="abs high">3/3</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="0" class="abs high">0/0</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="0" class="abs high">0/0</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="3" class="abs high">3/3</td> + </tr> + +<tr> + <td class="file high" data-value="Symbol.ts"><a href="Symbol.ts.html">Symbol.ts</a></td> + <td data-value="100" class="pic high"> + <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div> + </td> + <td data-value="100" class="pct high">100%</td> + <td data-value="3" class="abs high">3/3</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="0" class="abs high">0/0</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="0" class="abs high">0/0</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="3" class="abs high">3/3</td> + </tr> + +<tr> + <td class="file high" data-value="WeakMap.ts"><a href="WeakMap.ts.html">WeakMap.ts</a></td> + <td data-value="100" class="pic high"> + <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div> + </td> + <td data-value="100" class="pct high">100%</td> + <td data-value="12" class="abs high">12/12</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="0" class="abs high">0/0</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="1" class="abs high">1/1</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="12" class="abs high">12/12</td> + </tr> + +<tr> + <td class="file low" data-value="WeakSet.ts"><a href="WeakSet.ts.html">WeakSet.ts</a></td> + <td data-value="36.36" class="pic low"> + <div class="chart"><div class="cover-fill" style="width: 36%"></div><div class="cover-empty" style="width: 64%"></div></div> + </td> + <td data-value="36.36" class="pct low">36.36%</td> + <td data-value="11" class="abs low">4/11</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="0" class="abs high">0/0</td> + <td data-value="0" class="pct low">0%</td> + <td data-value="1" class="abs low">0/1</td> + <td data-value="36.36" class="pct low">36.36%</td> + <td data-value="11" class="abs low">4/11</td> + </tr> + +<tr> + <td class="file low" data-value="basic.ts"><a href="basic.ts.html">basic.ts</a></td> + <td data-value="1.59" class="pic low"> + <div class="chart"><div class="cover-fill" style="width: 1%"></div><div class="cover-empty" style="width: 99%"></div></div> + </td> + <td data-value="1.59" class="pct low">1.59%</td> + <td data-value="63" class="abs low">1/63</td> + <td data-value="0" class="pct low">0%</td> + <td data-value="43" class="abs low">0/43</td> + <td data-value="0" class="pct low">0%</td> + <td data-value="2" class="abs low">0/2</td> + <td data-value="1.59" class="pct low">1.59%</td> + <td data-value="63" class="abs low">1/63</td> + </tr> + +<tr> + <td class="file low" data-value="clone.ts"><a href="clone.ts.html">clone.ts</a></td> + <td data-value="1.16" class="pic low"> + <div class="chart"><div class="cover-fill" style="width: 1%"></div><div class="cover-empty" style="width: 99%"></div></div> + </td> + <td data-value="1.16" class="pct low">1.16%</td> + <td data-value="86" class="abs low">1/86</td> + <td data-value="0" class="pct low">0%</td> + <td data-value="35" class="abs low">0/35</td> + <td data-value="0" class="pct low">0%</td> + <td data-value="12" class="abs low">0/12</td> + <td data-value="1.2" class="pct low">1.2%</td> + <td data-value="83" class="abs low">1/83</td> + </tr> + +<tr> + <td class="file high" data-value="constants.ts"><a href="constants.ts.html">constants.ts</a></td> + <td data-value="100" class="pic high"> + <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div> + </td> + <td data-value="100" class="pct high">100%</td> + <td data-value="25" class="abs high">25/25</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="0" class="abs high">0/0</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="1" class="abs high">1/1</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="25" class="abs high">25/25</td> + </tr> + +<tr> + <td class="file empty" data-value="index.ts"><a href="index.ts.html">index.ts</a></td> + <td data-value="0" class="pic empty"> + <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div> + </td> + <td data-value="0" class="pct empty">0%</td> + <td data-value="0" class="abs empty">0/0</td> + <td data-value="0" class="pct empty">0%</td> + <td data-value="0" class="abs empty">0/0</td> + <td data-value="0" class="pct empty">0%</td> + <td data-value="0" class="abs empty">0/0</td> + <td data-value="0" class="pct empty">0%</td> + <td data-value="0" class="abs empty">0/0</td> + </tr> + +<tr> + <td class="file empty" data-value="types.ts"><a href="types.ts.html">types.ts</a></td> + <td data-value="0" class="pic empty"> + <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div> + </td> + <td data-value="0" class="pct empty">0%</td> + <td data-value="0" class="abs empty">0/0</td> + <td data-value="0" class="pct empty">0%</td> + <td data-value="0" class="abs empty">0/0</td> + <td data-value="0" class="pct empty">0%</td> + <td data-value="0" class="abs empty">0/0</td> + <td data-value="0" class="pct empty">0%</td> + <td data-value="0" class="abs empty">0/0</td> + </tr> + +</tbody> +</table> +</div> + <div class='push'></div><!-- for sticky footer --> + </div><!-- /wrapper --> + <div class='footer quiet pad2 space-top1 center small'> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> + at Mon Nov 25 2024 16:43:41 GMT+0000 (Coordinated Universal Time) + </div> + <script src="../../prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="../../sorter.js"></script> + <script src="../../block-navigation.js"></script> + </body> +</html> + \ No newline at end of file diff --git a/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/index.ts.html b/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/index.ts.html new file mode 100644 index 00000000..9b7fad46 --- /dev/null +++ b/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/index.ts.html @@ -0,0 +1,160 @@ + +<!doctype html> +<html lang="en"> + +<head> + <title>Code coverage report for near-membrane-shared/src/index.ts</title> + <meta charset="utf-8" /> + <link rel="stylesheet" href="../../prettify.css" /> + <link rel="stylesheet" href="../../base.css" /> + <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <style type='text/css'> + .coverage-summary .sorter { + background-image: url(../../sort-arrow-sprite.png); + } + </style> +</head> + +<body> +<div class='wrapper'> + <div class='pad1'> + <h1><a href="../../index.html">All files</a> / <a href="index.html">near-membrane-shared/src</a> index.ts</h1> + <div class='clearfix'> + + <div class='fl pad1y space-right2'> + <span class="strong">0% </span> + <span class="quiet">Statements</span> + <span class='fraction'>0/0</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">0% </span> + <span class="quiet">Branches</span> + <span class='fraction'>0/0</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">0% </span> + <span class="quiet">Functions</span> + <span class='fraction'>0/0</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">0% </span> + <span class="quiet">Lines</span> + <span class='fraction'>0/0</span> + </div> + + + </div> + <p class="quiet"> + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + </p> + <template id="filterTemplate"> + <div class="quiet"> + Filter: + <input oninput="onInput()" type="search" id="fileSearch"> + </div> + </template> + </div> + <div class='status-line low'></div> + <pre><table class="coverage"> +<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a> +<a name='L2'></a><a href='#L2'>2</a> +<a name='L3'></a><a href='#L3'>3</a> +<a name='L4'></a><a href='#L4'>4</a> +<a name='L5'></a><a href='#L5'>5</a> +<a name='L6'></a><a href='#L6'>6</a> +<a name='L7'></a><a href='#L7'>7</a> +<a name='L8'></a><a href='#L8'>8</a> +<a name='L9'></a><a href='#L9'>9</a> +<a name='L10'></a><a href='#L10'>10</a> +<a name='L11'></a><a href='#L11'>11</a> +<a name='L12'></a><a href='#L12'>12</a> +<a name='L13'></a><a href='#L13'>13</a> +<a name='L14'></a><a href='#L14'>14</a> +<a name='L15'></a><a href='#L15'>15</a> +<a name='L16'></a><a href='#L16'>16</a> +<a name='L17'></a><a href='#L17'>17</a> +<a name='L18'></a><a href='#L18'>18</a> +<a name='L19'></a><a href='#L19'>19</a> +<a name='L20'></a><a href='#L20'>20</a> +<a name='L21'></a><a href='#L21'>21</a> +<a name='L22'></a><a href='#L22'>22</a> +<a name='L23'></a><a href='#L23'>23</a> +<a name='L24'></a><a href='#L24'>24</a> +<a name='L25'></a><a href='#L25'>25</a> +<a name='L26'></a><a href='#L26'>26</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">export * from './Array'; +export * from './ArrayBuffer'; +export * from './basic'; +export * from './BigInt'; +export * from './Boolean'; +export * from './clone'; +export * from './constants'; +export * from './Date'; +export * from './Error'; +export * from './Function'; +export * from './JSON'; +export * from './Map'; +export * from './Math'; +export * from './NearMembrane'; +export * from './Number'; +export * from './Object'; +export * from './Proxy'; +export * from './Reflect'; +export * from './RegExp'; +export * from './Set'; +export * from './String'; +export * from './Symbol'; +export * from './types'; +export * from './WeakMap'; +export * from './WeakSet'; + </pre></td></tr></table></pre> + + <div class='push'></div><!-- for sticky footer --> + </div><!-- /wrapper --> + <div class='footer quiet pad2 space-top1 center small'> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> + at Mon Nov 25 2024 16:43:41 GMT+0000 (Coordinated Universal Time) + </div> + <script src="../../prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="../../sorter.js"></script> + <script src="../../block-navigation.js"></script> + </body> +</html> + \ No newline at end of file diff --git a/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/types.ts.html b/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/types.ts.html new file mode 100644 index 00000000..a463b66b --- /dev/null +++ b/pages/coverage-reports/pages/1732553023031263517/near-membrane-shared/src/types.ts.html @@ -0,0 +1,130 @@ + +<!doctype html> +<html lang="en"> + +<head> + <title>Code coverage report for near-membrane-shared/src/types.ts</title> + <meta charset="utf-8" /> + <link rel="stylesheet" href="../../prettify.css" /> + <link rel="stylesheet" href="../../base.css" /> + <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <style type='text/css'> + .coverage-summary .sorter { + background-image: url(../../sort-arrow-sprite.png); + } + </style> +</head> + +<body> +<div class='wrapper'> + <div class='pad1'> + <h1><a href="../../index.html">All files</a> / <a href="index.html">near-membrane-shared/src</a> types.ts</h1> + <div class='clearfix'> + + <div class='fl pad1y space-right2'> + <span class="strong">0% </span> + <span class="quiet">Statements</span> + <span class='fraction'>0/0</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">0% </span> + <span class="quiet">Branches</span> + <span class='fraction'>0/0</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">0% </span> + <span class="quiet">Functions</span> + <span class='fraction'>0/0</span> + </div> + + + <div class='fl pad1y space-right2'> + <span class="strong">0% </span> + <span class="quiet">Lines</span> + <span class='fraction'>0/0</span> + </div> + + + </div> + <p class="quiet"> + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + </p> + <template id="filterTemplate"> + <div class="quiet"> + Filter: + <input oninput="onInput()" type="search" id="fileSearch"> + </div> + </template> + </div> + <div class='status-line low'></div> + <pre><table class="coverage"> +<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a> +<a name='L2'></a><a href='#L2'>2</a> +<a name='L3'></a><a href='#L3'>3</a> +<a name='L4'></a><a href='#L4'>4</a> +<a name='L5'></a><a href='#L5'>5</a> +<a name='L6'></a><a href='#L6'>6</a> +<a name='L7'></a><a href='#L7'>7</a> +<a name='L8'></a><a href='#L8'>8</a> +<a name='L9'></a><a href='#L9'>9</a> +<a name='L10'></a><a href='#L10'>10</a> +<a name='L11'></a><a href='#L11'>11</a> +<a name='L12'></a><a href='#L12'>12</a> +<a name='L13'></a><a href='#L13'>13</a> +<a name='L14'></a><a href='#L14'>14</a> +<a name='L15'></a><a href='#L15'>15</a> +<a name='L16'></a><a href='#L16'>16</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">export type Getter = () => any; +export type NearMembraneSerializedValue = bigint | boolean | number | string | symbol | undefined; +export type ProxyTarget = CallableFunction | NewableFunction | any[] | object; +export type Setter = (value: any) => void; +// eslint-disable-next-line no-shadow +export const enum TargetTraits { + None, + IsArray = 1 << 0, + IsArrayBufferView = 1 << 1, + IsFunction = 1 << 2, + IsArrowFunction = 1 << 3, + IsObject = 1 << 4, + IsTypedArray = 1 << 5, + Revoked = 1 << 6, +} + </pre></td></tr></table></pre> + + <div class='push'></div><!-- for sticky footer --> + </div><!-- /wrapper --> + <div class='footer quiet pad2 space-top1 center small'> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> + at Mon Nov 25 2024 16:43:41 GMT+0000 (Coordinated Universal Time) + </div> + <script src="../../prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="../../sorter.js"></script> + <script src="../../block-navigation.js"></script> + </body> +</html> + \ No newline at end of file diff --git a/pages/coverage-reports/pages/1732553023031263517/prettify.css b/pages/coverage-reports/pages/1732553023031263517/prettify.css new file mode 100644 index 00000000..b317a7cd --- /dev/null +++ b/pages/coverage-reports/pages/1732553023031263517/prettify.css @@ -0,0 +1 @@ +.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} diff --git a/pages/coverage-reports/pages/1732553023031263517/prettify.js b/pages/coverage-reports/pages/1732553023031263517/prettify.js new file mode 100644 index 00000000..b3225238 --- /dev/null +++ b/pages/coverage-reports/pages/1732553023031263517/prettify.js @@ -0,0 +1,2 @@ +/* eslint-disable */ +window.PR_SHOULD_USE_CONTINUATION=true;(function(){var h=["break,continue,do,else,for,if,return,while"];var u=[h,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];var p=[u,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"];var l=[p,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"];var x=[p,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"];var R=[x,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"];var r="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes";var w=[p,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"];var s="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END";var I=[h,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"];var f=[h,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"];var H=[h,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"];var A=[l,R,w,s+I,f,H];var e=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/;var C="str";var z="kwd";var j="com";var O="typ";var G="lit";var L="pun";var F="pln";var m="tag";var E="dec";var J="src";var P="atn";var n="atv";var N="nocode";var M="(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*";function k(Z){var ad=0;var S=false;var ac=false;for(var V=0,U=Z.length;V<U;++V){var ae=Z[V];if(ae.ignoreCase){ac=true}else{if(/[a-z]/i.test(ae.source.replace(/\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi,""))){S=true;ac=false;break}}}var Y={b:8,t:9,n:10,v:11,f:12,r:13};function ab(ah){var ag=ah.charCodeAt(0);if(ag!==92){return ag}var af=ah.charAt(1);ag=Y[af];if(ag){return ag}else{if("0"<=af&&af<="7"){return parseInt(ah.substring(1),8)}else{if(af==="u"||af==="x"){return parseInt(ah.substring(2),16)}else{return ah.charCodeAt(1)}}}}function T(af){if(af<32){return(af<16?"\\x0":"\\x")+af.toString(16)}var ag=String.fromCharCode(af);if(ag==="\\"||ag==="-"||ag==="["||ag==="]"){ag="\\"+ag}return ag}function X(am){var aq=am.substring(1,am.length-1).match(new RegExp("\\\\u[0-9A-Fa-f]{4}|\\\\x[0-9A-Fa-f]{2}|\\\\[0-3][0-7]{0,2}|\\\\[0-7]{1,2}|\\\\[\\s\\S]|-|[^-\\\\]","g"));var ak=[];var af=[];var ao=aq[0]==="^";for(var ar=ao?1:0,aj=aq.length;ar<aj;++ar){var ah=aq[ar];if(/\\[bdsw]/i.test(ah)){ak.push(ah)}else{var ag=ab(ah);var al;if(ar+2<aj&&"-"===aq[ar+1]){al=ab(aq[ar+2]);ar+=2}else{al=ag}af.push([ag,al]);if(!(al<65||ag>122)){if(!(al<65||ag>90)){af.push([Math.max(65,ag)|32,Math.min(al,90)|32])}if(!(al<97||ag>122)){af.push([Math.max(97,ag)&~32,Math.min(al,122)&~32])}}}}af.sort(function(av,au){return(av[0]-au[0])||(au[1]-av[1])});var ai=[];var ap=[NaN,NaN];for(var ar=0;ar<af.length;++ar){var at=af[ar];if(at[0]<=ap[1]+1){ap[1]=Math.max(ap[1],at[1])}else{ai.push(ap=at)}}var an=["["];if(ao){an.push("^")}an.push.apply(an,ak);for(var ar=0;ar<ai.length;++ar){var at=ai[ar];an.push(T(at[0]));if(at[1]>at[0]){if(at[1]+1>at[0]){an.push("-")}an.push(T(at[1]))}}an.push("]");return an.join("")}function W(al){var aj=al.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g"));var ah=aj.length;var an=[];for(var ak=0,am=0;ak<ah;++ak){var ag=aj[ak];if(ag==="("){++am}else{if("\\"===ag.charAt(0)){var af=+ag.substring(1);if(af&&af<=am){an[af]=-1}}}}for(var ak=1;ak<an.length;++ak){if(-1===an[ak]){an[ak]=++ad}}for(var ak=0,am=0;ak<ah;++ak){var ag=aj[ak];if(ag==="("){++am;if(an[am]===undefined){aj[ak]="(?:"}}else{if("\\"===ag.charAt(0)){var af=+ag.substring(1);if(af&&af<=am){aj[ak]="\\"+an[am]}}}}for(var ak=0,am=0;ak<ah;++ak){if("^"===aj[ak]&&"^"!==aj[ak+1]){aj[ak]=""}}if(al.ignoreCase&&S){for(var ak=0;ak<ah;++ak){var ag=aj[ak];var ai=ag.charAt(0);if(ag.length>=2&&ai==="["){aj[ak]=X(ag)}else{if(ai!=="\\"){aj[ak]=ag.replace(/[a-zA-Z]/g,function(ao){var ap=ao.charCodeAt(0);return"["+String.fromCharCode(ap&~32,ap|32)+"]"})}}}}return aj.join("")}var aa=[];for(var V=0,U=Z.length;V<U;++V){var ae=Z[V];if(ae.global||ae.multiline){throw new Error(""+ae)}aa.push("(?:"+W(ae)+")")}return new RegExp(aa.join("|"),ac?"gi":"g")}function a(V){var U=/(?:^|\s)nocode(?:\s|$)/;var X=[];var T=0;var Z=[];var W=0;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=document.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Y=S&&"pre"===S.substring(0,3);function aa(ab){switch(ab.nodeType){case 1:if(U.test(ab.className)){return}for(var ae=ab.firstChild;ae;ae=ae.nextSibling){aa(ae)}var ad=ab.nodeName;if("BR"===ad||"LI"===ad){X[W]="\n";Z[W<<1]=T++;Z[(W++<<1)|1]=ab}break;case 3:case 4:var ac=ab.nodeValue;if(ac.length){if(!Y){ac=ac.replace(/[ \t\r\n]+/g," ")}else{ac=ac.replace(/\r\n?/g,"\n")}X[W]=ac;Z[W<<1]=T;T+=ac.length;Z[(W++<<1)|1]=ab}break}}aa(V);return{sourceCode:X.join("").replace(/\n$/,""),spans:Z}}function B(S,U,W,T){if(!U){return}var V={sourceCode:U,basePos:S};W(V);T.push.apply(T,V.decorations)}var v=/\S/;function o(S){var V=undefined;for(var U=S.firstChild;U;U=U.nextSibling){var T=U.nodeType;V=(T===1)?(V?S:U):(T===3)?(v.test(U.nodeValue)?S:V):V}return V===S?undefined:V}function g(U,T){var S={};var V;(function(){var ad=U.concat(T);var ah=[];var ag={};for(var ab=0,Z=ad.length;ab<Z;++ab){var Y=ad[ab];var ac=Y[3];if(ac){for(var ae=ac.length;--ae>=0;){S[ac.charAt(ae)]=Y}}var af=Y[1];var aa=""+af;if(!ag.hasOwnProperty(aa)){ah.push(af);ag[aa]=null}}ah.push(/[\0-\uffff]/);V=k(ah)})();var X=T.length;var W=function(ah){var Z=ah.sourceCode,Y=ah.basePos;var ad=[Y,F];var af=0;var an=Z.match(V)||[];var aj={};for(var ae=0,aq=an.length;ae<aq;++ae){var ag=an[ae];var ap=aj[ag];var ai=void 0;var am;if(typeof ap==="string"){am=false}else{var aa=S[ag.charAt(0)];if(aa){ai=ag.match(aa[1]);ap=aa[0]}else{for(var ao=0;ao<X;++ao){aa=T[ao];ai=ag.match(aa[1]);if(ai){ap=aa[0];break}}if(!ai){ap=F}}am=ap.length>=5&&"lang-"===ap.substring(0,5);if(am&&!(ai&&typeof ai[1]==="string")){am=false;ap=J}if(!am){aj[ag]=ap}}var ab=af;af+=ag.length;if(!am){ad.push(Y+ab,ap)}else{var al=ai[1];var ak=ag.indexOf(al);var ac=ak+al.length;if(ai[2]){ac=ag.length-ai[2].length;ak=ac-al.length}var ar=ap.substring(5);B(Y+ab,ag.substring(0,ak),W,ad);B(Y+ab+ak,al,q(ar,al),ad);B(Y+ab+ac,ag.substring(ac),W,ad)}}ah.decorations=ad};return W}function i(T){var W=[],S=[];if(T.tripleQuotedStrings){W.push([C,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(T.multiLineStrings){W.push([C,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{W.push([C,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}if(T.verbatimStrings){S.push([C,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var Y=T.hashComments;if(Y){if(T.cStyleComments){if(Y>1){W.push([j,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{W.push([j,/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}S.push([C,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,null])}else{W.push([j,/^#[^\r\n]*/,null,"#"])}}if(T.cStyleComments){S.push([j,/^\/\/[^\r\n]*/,null]);S.push([j,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}if(T.regexLiterals){var X=("/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/");S.push(["lang-regex",new RegExp("^"+M+"("+X+")")])}var V=T.types;if(V){S.push([O,V])}var U=(""+T.keywords).replace(/^ | $/g,"");if(U.length){S.push([z,new RegExp("^(?:"+U.replace(/[\s,]+/g,"|")+")\\b"),null])}W.push([F,/^\s+/,null," \r\n\t\xA0"]);S.push([G,/^@[a-z_$][a-z_$@0-9]*/i,null],[O,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[F,/^[a-z_$][a-z_$@0-9]*/i,null],[G,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[F,/^\\[\s\S]?/,null],[L,/^.[^\s\w\.$@\'\"\`\/\#\\]*/,null]);return g(W,S)}var K=i({keywords:A,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function Q(V,ag){var U=/(?:^|\s)nocode(?:\s|$)/;var ab=/\r\n?|\n/;var ac=V.ownerDocument;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=ac.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Z=S&&"pre"===S.substring(0,3);var af=ac.createElement("LI");while(V.firstChild){af.appendChild(V.firstChild)}var W=[af];function ae(al){switch(al.nodeType){case 1:if(U.test(al.className)){break}if("BR"===al.nodeName){ad(al);if(al.parentNode){al.parentNode.removeChild(al)}}else{for(var an=al.firstChild;an;an=an.nextSibling){ae(an)}}break;case 3:case 4:if(Z){var am=al.nodeValue;var aj=am.match(ab);if(aj){var ai=am.substring(0,aj.index);al.nodeValue=ai;var ah=am.substring(aj.index+aj[0].length);if(ah){var ak=al.parentNode;ak.insertBefore(ac.createTextNode(ah),al.nextSibling)}ad(al);if(!ai){al.parentNode.removeChild(al)}}}break}}function ad(ak){while(!ak.nextSibling){ak=ak.parentNode;if(!ak){return}}function ai(al,ar){var aq=ar?al.cloneNode(false):al;var ao=al.parentNode;if(ao){var ap=ai(ao,1);var an=al.nextSibling;ap.appendChild(aq);for(var am=an;am;am=an){an=am.nextSibling;ap.appendChild(am)}}return aq}var ah=ai(ak.nextSibling,0);for(var aj;(aj=ah.parentNode)&&aj.nodeType===1;){ah=aj}W.push(ah)}for(var Y=0;Y<W.length;++Y){ae(W[Y])}if(ag===(ag|0)){W[0].setAttribute("value",ag)}var aa=ac.createElement("OL");aa.className="linenums";var X=Math.max(0,((ag-1))|0)||0;for(var Y=0,T=W.length;Y<T;++Y){af=W[Y];af.className="L"+((Y+X)%10);if(!af.firstChild){af.appendChild(ac.createTextNode("\xA0"))}aa.appendChild(af)}V.appendChild(aa)}function D(ac){var aj=/\bMSIE\b/.test(navigator.userAgent);var am=/\n/g;var al=ac.sourceCode;var an=al.length;var V=0;var aa=ac.spans;var T=aa.length;var ah=0;var X=ac.decorations;var Y=X.length;var Z=0;X[Y]=an;var ar,aq;for(aq=ar=0;aq<Y;){if(X[aq]!==X[aq+2]){X[ar++]=X[aq++];X[ar++]=X[aq++]}else{aq+=2}}Y=ar;for(aq=ar=0;aq<Y;){var at=X[aq];var ab=X[aq+1];var W=aq+2;while(W+2<=Y&&X[W+1]===ab){W+=2}X[ar++]=at;X[ar++]=ab;aq=W}Y=X.length=ar;var ae=null;while(ah<T){var af=aa[ah];var S=aa[ah+2]||an;var ag=X[Z];var ap=X[Z+2]||an;var W=Math.min(S,ap);var ak=aa[ah+1];var U;if(ak.nodeType!==1&&(U=al.substring(V,W))){if(aj){U=U.replace(am,"\r")}ak.nodeValue=U;var ai=ak.ownerDocument;var ao=ai.createElement("SPAN");ao.className=X[Z+1];var ad=ak.parentNode;ad.replaceChild(ao,ak);ao.appendChild(ak);if(V<S){aa[ah+1]=ak=ai.createTextNode(al.substring(W,S));ad.insertBefore(ak,ao.nextSibling)}}V=W;if(V>=S){ah+=2}if(V>=ap){Z+=2}}}var t={};function c(U,V){for(var S=V.length;--S>=0;){var T=V[S];if(!t.hasOwnProperty(T)){t[T]=U}else{if(window.console){console.warn("cannot override language handler %s",T)}}}}function q(T,S){if(!(T&&t.hasOwnProperty(T))){T=/^\s*</.test(S)?"default-markup":"default-code"}return t[T]}c(K,["default-code"]);c(g([],[[F,/^[^<?]+/],[E,/^<!\w[^>]*(?:>|$)/],[j,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[L,/^(?:<[%?]|[%?]>)/],["lang-",/^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);c(g([[F,/^[\s]+/,null," \t\r\n"],[n,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[m,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[P,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[L,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);c(g([],[[n,/^[\s\S]+/]]),["uq.val"]);c(i({keywords:l,hashComments:true,cStyleComments:true,types:e}),["c","cc","cpp","cxx","cyc","m"]);c(i({keywords:"null,true,false"}),["json"]);c(i({keywords:R,hashComments:true,cStyleComments:true,verbatimStrings:true,types:e}),["cs"]);c(i({keywords:x,cStyleComments:true}),["java"]);c(i({keywords:H,hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);c(i({keywords:I,hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);c(i({keywords:s,hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);c(i({keywords:f,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb"]);c(i({keywords:w,cStyleComments:true,regexLiterals:true}),["js"]);c(i({keywords:r,hashComments:3,cStyleComments:true,multilineStrings:true,tripleQuotedStrings:true,regexLiterals:true}),["coffee"]);c(g([],[[C,/^[\s\S]+/]]),["regex"]);function d(V){var U=V.langExtension;try{var S=a(V.sourceNode);var T=S.sourceCode;V.sourceCode=T;V.spans=S.spans;V.basePos=0;q(U,T)(V);D(V)}catch(W){if("console" in window){console.log(W&&W.stack?W.stack:W)}}}function y(W,V,U){var S=document.createElement("PRE");S.innerHTML=W;if(U){Q(S,U)}var T={langExtension:V,numberLines:U,sourceNode:S};d(T);return S.innerHTML}function b(ad){function Y(af){return document.getElementsByTagName(af)}var ac=[Y("pre"),Y("code"),Y("xmp")];var T=[];for(var aa=0;aa<ac.length;++aa){for(var Z=0,V=ac[aa].length;Z<V;++Z){T.push(ac[aa][Z])}}ac=null;var W=Date;if(!W.now){W={now:function(){return +(new Date)}}}var X=0;var S;var ab=/\blang(?:uage)?-([\w.]+)(?!\S)/;var ae=/\bprettyprint\b/;function U(){var ag=(window.PR_SHOULD_USE_CONTINUATION?W.now()+250:Infinity);for(;X<T.length&&W.now()<ag;X++){var aj=T[X];var ai=aj.className;if(ai.indexOf("prettyprint")>=0){var ah=ai.match(ab);var am;if(!ah&&(am=o(aj))&&"CODE"===am.tagName){ah=am.className.match(ab)}if(ah){ah=ah[1]}var al=false;for(var ak=aj.parentNode;ak;ak=ak.parentNode){if((ak.tagName==="pre"||ak.tagName==="code"||ak.tagName==="xmp")&&ak.className&&ak.className.indexOf("prettyprint")>=0){al=true;break}}if(!al){var af=aj.className.match(/\blinenums\b(?::(\d+))?/);af=af?af[1]&&af[1].length?+af[1]:true:false;if(af){Q(aj,af)}S={langExtension:ah,sourceNode:aj,numberLines:af};d(S)}}}if(X<T.length){setTimeout(U,250)}else{if(ad){ad()}}}U()}window.prettyPrintOne=y;window.prettyPrint=b;window.PR={createSimpleLexer:g,registerLangHandler:c,sourceDecorator:i,PR_ATTRIB_NAME:P,PR_ATTRIB_VALUE:n,PR_COMMENT:j,PR_DECLARATION:E,PR_KEYWORD:z,PR_LITERAL:G,PR_NOCODE:N,PR_PLAIN:F,PR_PUNCTUATION:L,PR_SOURCE:J,PR_STRING:C,PR_TAG:m,PR_TYPE:O}})();PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_DECLARATION,/^<!\w[^>]*(?:>|$)/],[PR.PR_COMMENT,/^<\!--[\s\S]*?(?:-\->|$)/],[PR.PR_PUNCTUATION,/^(?:<[%?]|[%?]>)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["lang-",/^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-handlebars",/^<script\b[^>]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-js",/^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i],[PR.PR_DECLARATION,/^{{[#^>/]?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{&?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{{>?\s*[\w.][^}]*}}}/],[PR.PR_COMMENT,/^{{![^}]*}}/]]),["handlebars","hbs"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[ \t\r\n\f]+/,null," \t\r\n\f"]],[[PR.PR_STRING,/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],[PR.PR_STRING,/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']*)\)/i],[PR.PR_KEYWORD,/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],[PR.PR_COMMENT,/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],[PR.PR_COMMENT,/^(?:<!--|-->)/],[PR.PR_LITERAL,/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],[PR.PR_LITERAL,/^#(?:[0-9a-f]{3}){1,2}/i],[PR.PR_PLAIN,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],[PR.PR_PUNCTUATION,/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_KEYWORD,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_STRING,/^[^\)\"\']+/]]),["css-str"]); diff --git a/pages/coverage-reports/pages/1732553023031263517/sort-arrow-sprite.png b/pages/coverage-reports/pages/1732553023031263517/sort-arrow-sprite.png new file mode 100644 index 00000000..03f704a6 Binary files /dev/null and b/pages/coverage-reports/pages/1732553023031263517/sort-arrow-sprite.png differ diff --git a/pages/coverage-reports/pages/1732553023031263517/sorter.js b/pages/coverage-reports/pages/1732553023031263517/sorter.js new file mode 100644 index 00000000..2bb296a8 --- /dev/null +++ b/pages/coverage-reports/pages/1732553023031263517/sorter.js @@ -0,0 +1,196 @@ +/* eslint-disable */ +var addSorting = (function() { + 'use strict'; + var cols, + currentSort = { + index: 0, + desc: false + }; + + // returns the summary table element + function getTable() { + return document.querySelector('.coverage-summary'); + } + // returns the thead element of the summary table + function getTableHeader() { + return getTable().querySelector('thead tr'); + } + // returns the tbody element of the summary table + function getTableBody() { + return getTable().querySelector('tbody'); + } + // returns the th element for nth column + function getNthColumn(n) { + return getTableHeader().querySelectorAll('th')[n]; + } + + function onFilterInput() { + const searchValue = document.getElementById('fileSearch').value; + const rows = document.getElementsByTagName('tbody')[0].children; + for (let i = 0; i < rows.length; i++) { + const row = rows[i]; + if ( + row.textContent + .toLowerCase() + .includes(searchValue.toLowerCase()) + ) { + row.style.display = ''; + } else { + row.style.display = 'none'; + } + } + } + + // loads the search box + function addSearchBox() { + var template = document.getElementById('filterTemplate'); + var templateClone = template.content.cloneNode(true); + templateClone.getElementById('fileSearch').oninput = onFilterInput; + template.parentElement.appendChild(templateClone); + } + + // loads all columns + function loadColumns() { + var colNodes = getTableHeader().querySelectorAll('th'), + colNode, + cols = [], + col, + i; + + for (i = 0; i < colNodes.length; i += 1) { + colNode = colNodes[i]; + col = { + key: colNode.getAttribute('data-col'), + sortable: !colNode.getAttribute('data-nosort'), + type: colNode.getAttribute('data-type') || 'string' + }; + cols.push(col); + if (col.sortable) { + col.defaultDescSort = col.type === 'number'; + colNode.innerHTML = + colNode.innerHTML + '<span class="sorter"></span>'; + } + } + return cols; + } + // attaches a data attribute to every tr element with an object + // of data values keyed by column name + function loadRowData(tableRow) { + var tableCols = tableRow.querySelectorAll('td'), + colNode, + col, + data = {}, + i, + val; + for (i = 0; i < tableCols.length; i += 1) { + colNode = tableCols[i]; + col = cols[i]; + val = colNode.getAttribute('data-value'); + if (col.type === 'number') { + val = Number(val); + } + data[col.key] = val; + } + return data; + } + // loads all row data + function loadData() { + var rows = getTableBody().querySelectorAll('tr'), + i; + + for (i = 0; i < rows.length; i += 1) { + rows[i].data = loadRowData(rows[i]); + } + } + // sorts the table using the data for the ith column + function sortByIndex(index, desc) { + var key = cols[index].key, + sorter = function(a, b) { + a = a.data[key]; + b = b.data[key]; + return a < b ? -1 : a > b ? 1 : 0; + }, + finalSorter = sorter, + tableBody = document.querySelector('.coverage-summary tbody'), + rowNodes = tableBody.querySelectorAll('tr'), + rows = [], + i; + + if (desc) { + finalSorter = function(a, b) { + return -1 * sorter(a, b); + }; + } + + for (i = 0; i < rowNodes.length; i += 1) { + rows.push(rowNodes[i]); + tableBody.removeChild(rowNodes[i]); + } + + rows.sort(finalSorter); + + for (i = 0; i < rows.length; i += 1) { + tableBody.appendChild(rows[i]); + } + } + // removes sort indicators for current column being sorted + function removeSortIndicators() { + var col = getNthColumn(currentSort.index), + cls = col.className; + + cls = cls.replace(/ sorted$/, '').replace(/ sorted-desc$/, ''); + col.className = cls; + } + // adds sort indicators for current column being sorted + function addSortIndicators() { + getNthColumn(currentSort.index).className += currentSort.desc + ? ' sorted-desc' + : ' sorted'; + } + // adds event listeners for all sorter widgets + function enableUI() { + var i, + el, + ithSorter = function ithSorter(i) { + var col = cols[i]; + + return function() { + var desc = col.defaultDescSort; + + if (currentSort.index === i) { + desc = !currentSort.desc; + } + sortByIndex(i, desc); + removeSortIndicators(); + currentSort.index = i; + currentSort.desc = desc; + addSortIndicators(); + }; + }; + for (i = 0; i < cols.length; i += 1) { + if (cols[i].sortable) { + // add the click event handler on the th so users + // dont have to click on those tiny arrows + el = getNthColumn(i).querySelector('.sorter').parentElement; + if (el.addEventListener) { + el.addEventListener('click', ithSorter(i)); + } else { + el.attachEvent('onclick', ithSorter(i)); + } + } + } + } + // adds sorting functionality to the UI + return function() { + if (!getTable()) { + return; + } + cols = loadColumns(); + loadData(); + addSearchBox(); + addSortIndicators(); + enableUI(); + }; +})(); + +window.addEventListener('load', addSorting);