<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>141792</bug_id>
          
          <creation_ts>2015-02-18 22:00:44 -0800</creation_ts>
          <short_desc>Refine the FTL part of ArithPow</short_desc>
          <delta_ts>2015-02-19 13:08:32 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>fpizlo</cc>
    
    <cc>msaboff</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1070343</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-02-18 22:00:44 -0800</bug_when>
    <thetext>Refine the FTL part of ArithPow</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1070349</commentid>
    <comment_count>1</comment_count>
      <attachid>246880</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-02-18 22:20:43 -0800</bug_when>
    <thetext>Created attachment 246880
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1070364</commentid>
    <comment_count>2</comment_count>
      <attachid>246880</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-02-18 23:37:51 -0800</bug_when>
    <thetext>Comment on attachment 246880
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=246880&amp;action=review

&gt; Source/JavaScriptCore/tests/stress/math-pow-with-constants.js:177
&gt; +            throw &quot;Error: exponentIsInfinityConstant(2) should be Infinity, was = &quot; + result;

Note to self: fix the error messages before landing.

&gt; Source/JavaScriptCore/tests/stress/math-pow-with-constants.js:182
&gt; +            throw &quot;Error: exponentIsInfinityConstant(5) should be Infinity+29, was = &quot; + result;

Ditto

&gt; Source/JavaScriptCore/tests/stress/math-pow-with-constants.js:187
&gt; +            throw &quot;Error: exponentIsInfinityConstant(2.1) should be Infinity, was = &quot; + result;

Ditto

&gt; Source/JavaScriptCore/tests/stress/math-pow-with-constants.js:202
&gt; +            throw &quot;Error: exponentIsNegativeInfinityConstant(2) should be Infinity, was = &quot; + result;

Ditto

&gt; Source/JavaScriptCore/tests/stress/math-pow-with-constants.js:207
&gt; +            throw &quot;Error: exponentIsNegativeInfinityConstant(5) should be Infinity+29, was = &quot; + result;

Ditto

&gt; Source/JavaScriptCore/tests/stress/math-pow-with-constants.js:212
&gt; +            throw &quot;Error: exponentIsNegativeInfinityConstant(2.1) should be Infinity, was = &quot; + result;

Ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1070493</commentid>
    <comment_count>3</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-02-19 13:08:32 -0800</bug_when>
    <thetext>Committed r180360: &lt;http://trac.webkit.org/changeset/180360&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>246880</attachid>
            <date>2015-02-18 22:20:43 -0800</date>
            <delta_ts>2015-02-19 08:49:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-141792-20150218222035.patch</filename>
            <type>text/plain</type>
            <size>21248</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgwMjM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
MmY1MDdhODc2ZDNiOWIyOTYzNDEwNTNkODk5YjU0ZDlmNjMzZDk3Li43Njk4N2VlOGI5YWRiNTM2
ZGFmOWEwYTA0N2I5MDVjZmUzZjMwZDVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzOCBAQAorMjAxNS0wMi0xOCAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxl
LmNvbT4KKworICAgICAgICBSZWZpbmUgdGhlIEZUTCBwYXJ0IG9mIEFyaXRoUG93CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDE3OTIKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIHJlZmlu
ZXMgdGhlIEZUTCBsb3dlcmluZyBvZiBBcml0aFBvdy4gVGhpcyB3YXMgbGVmdCBvdXQKKyAgICAg
ICAgb2YgdGhlIG9yaWdpbmFsIHBhdGNoIHRvIGtlZXAgaXQgc2ltcGxlci4KKworICAgICAgICAq
IGZ0bC9GVExMb3dlckRGR1RvTExWTS5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdU
b0xMVk06OmNvbXBpbGVBcml0aFBvdyk6CisgICAgICAgIFR3byBpbXByb3ZlbWVudHMgaGVyZToK
KyAgICAgICAgMSkgRG8gbm90IGdlbmVyYXRlIHRoZSBOYU4gY2hlY2sgdW5sZXNzIHdlIGtub3cg
dGhlIGV4cG9uZW50IG1pZ2h0IGJlIGEgTmFOLgorICAgICAgICAyKSBVc2Ugb25lIEJhc2ljQmxv
Y2sgcGVyIGNoZWNrIHdpdGggdGhlIGFwcHJvcHJpYXRlIHdlaWdodC4gTm93IHRoYXQgd2UgaGF2
ZQorICAgICAgICAgICBvbmUgYnJhbmNoIHBlciB0ZXN0LCBtb3ZlIHRoZSBJbmZpbml0eSBjaGVj
ayBiZWZvcmUgdGhlIGNoZWNrIGZvciAxIHNpbmNlCisgICAgICAgICAgIGl0IGlzIHRoZSBsZXNz
IGNvbW1vbiBjYXNlLgorCisgICAgICAgICogdGVzdHMvc3RyZXNzL21hdGgtcG93LWJlY29tZXMt
Y3VzdG9tLWZ1bmN0aW9uLmpzOiBBZGRlZC4KKyAgICAgICAgVGVzdCBmb3IgY2hhbmdpbmcgdGhl
IE1hdGgucG93KCkgZnVuY3Rpb24gYWZ0ZXIgaXQgaGFzIGJlZW4gb3B0aW1pemVkLgorCisgICAg
ICAgICogdGVzdHMvc3RyZXNzL21hdGgtcG93LW5hbi1iZWhhdmlvcnMuanM6CisgICAgICAgIFRo
ZSBwcmV2aW91cyB0ZXN0cyB3ZXJlIG9ubHkgZ29pbmcgYXMgZmFyIGFzIHRoZSBERkdBYnN0cmFj
dEludGVycHJldGVyCisgICAgICAgIHdlcmUgdGhlIG9wZXJhdGlvbnMgd2VyZSByZXBsYWNlZCBi
eSB0aGUgZXF1aXZhbGVudCBjb25zdGFudC4KKworICAgICAgICBJIGR1cGxpY2F0ZWQgdGhlIHRl
c3QgZnVuY3Rpb25zIHRvIGFsc28gdGVzdCB0aGUgZHluYW1pYyBiZWhhdmlvciBvZiBERkcKKyAg
ICAgICAgYW5kIEZUTC4KKworICAgICAgICAqIHRlc3RzL3N0cmVzcy9tYXRoLXBvdy13aXRoLWNv
bnN0YW50cy5qczoKKyAgICAgICAgQWRkIGNhc2VzIGNvdmVyaW5nIGV4cG9uZW50IGNvbnN0YW50
cy4gTExWTSByZW1vdmVzIG1hbnkgdmFsdWUKKyAgICAgICAgY2hlY2tzIGZvciB0aG9zZS4KKwor
ICAgICAgICAqIHRlc3RzL3N0cmVzcy9tYXRoLXBvdy13aXRoLW5ldmVyLU5hTi1leHBvbmVudC5q
czogQWRkZWQuCisgICAgICAgIFRlc3QgZm9yIHRoZSBuZXcgb3B0aW1pemF0aW9uIHJlbW92aW5n
IHRoZSBOYU4gY2hlY2suCisKIDIwMTUtMDItMTcgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxl
LmNvbT4KIAogICAgICAgICBTdGFja0xheW91dFBoYXNlIHNob3VsZCB1c2UgQ29kZUJsb2NrOjp1
c2VzQXJndW1lbnRzIHJhdGhlciB0aGFuIEZ1bmN0aW9uRXhlY3V0YWJsZTo6dXNlc0FyZ3VtZW50
cwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExW
TS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcApp
bmRleCA4NmI4MzFlMThhODIyOTU2MzQxMjQzNzgyZmNmNGVmNjUwNWJlYjk5Li4yNDdjNWZiNDA2
MTQ1NTJhMmM5N2U1Zjg4YjBjY2YyZDYwOWY0YTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcApAQCAtMTYyNyw0NCArMTYyNyw1MiBAQCBw
cml2YXRlOgogCiAgICAgICAgICAgICBMQmFzaWNCbG9jayBpbnRlZ2VyRXhwb25lbnRJc1NtYWxs
QmxvY2sgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRoUG93IHRlc3QgaW50ZWdlciBleHBv
bmVudCBpcyBzbWFsbC4iKSk7CiAgICAgICAgICAgICBMQmFzaWNCbG9jayBpbnRlZ2VyRXhwb25l
bnRQb3dCbG9jayA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhQb3cgcG93KGRvdWJsZSwg
KGludClkb3VibGUpLiIpKTsKLSAgICAgICAgICAgIExCYXNpY0Jsb2NrIGRvdWJsZUV4cG9uZW50
UG93QmxvY2sgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRoUG93IHBvdyhkb3VibGUsIGRv
dWJsZSkuIikpOworICAgICAgICAgICAgTEJhc2ljQmxvY2sgZG91YmxlRXhwb25lbnRQb3dCbG9j
a0VudHJ5ID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJBcml0aFBvdyBwb3coZG91YmxlLCBkb3Vi
bGUpLiIpKTsKKyAgICAgICAgICAgIExCYXNpY0Jsb2NrIG5hbkV4Y2VwdGlvbkV4cG9uZW50SXNJ
bmZpbml0eSA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhQb3cgTmFOIEV4Y2VwdGlvbiwg
Y2hlY2sgZXhwb25lbnQgaXMgaW5maW5pdHkuIikpOworICAgICAgICAgICAgTEJhc2ljQmxvY2sg
bmFuRXhjZXB0aW9uQmFzZUlzT25lID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJBcml0aFBvdyBO
YU4gRXhjZXB0aW9uLCBjaGVjayBiYXNlIGlzIG9uZS4iKSk7CiAgICAgICAgICAgICBMQmFzaWNC
bG9jayBwb3dCbG9jayA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhQb3cgcmVndWxhciBw
b3ciKSk7Ci0gICAgICAgICAgICBMQmFzaWNCbG9jayBuYW5FeGNlcHRpb24gPSBGVExfTkVXX0JM
T0NLKG1fb3V0LCAoIkFyaXRoUG93IE5hTiBFeGNlcHRpb24iKSk7CisgICAgICAgICAgICBMQmFz
aWNCbG9jayBuYW5FeGNlcHRpb25SZXN1bHRJc05hTiA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgi
QXJpdGhQb3cgTmFOIEV4Y2VwdGlvbiwgcmVzdWx0IGlzIE5hTi4iKSk7CiAgICAgICAgICAgICBM
QmFzaWNCbG9jayBjb250aW51YXRpb24gPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRoUG93
IGNvbnRpbnVhdGlvbiIpKTsKIAogICAgICAgICAgICAgTFZhbHVlIGludGVnZXJFeHBvbmVudCA9
IG1fb3V0LmZwVG9JbnQzMihleHBvbmVudCk7CiAgICAgICAgICAgICBMVmFsdWUgaW50ZWdlckV4
cG9uZW50Q29udmVydGVkVG9Eb3VibGUgPSBtX291dC5pbnRUb0RvdWJsZShpbnRlZ2VyRXhwb25l
bnQpOwogICAgICAgICAgICAgTFZhbHVlIGV4cG9uZW50SXNJbnRlZ2VyID0gbV9vdXQuZG91Ymxl
RXF1YWwoZXhwb25lbnQsIGludGVnZXJFeHBvbmVudENvbnZlcnRlZFRvRG91YmxlKTsKLSAgICAg
ICAgICAgIG1fb3V0LmJyYW5jaChleHBvbmVudElzSW50ZWdlciwgdW5zdXJlKGludGVnZXJFeHBv
bmVudElzU21hbGxCbG9jayksIHVuc3VyZShkb3VibGVFeHBvbmVudFBvd0Jsb2NrKSk7CisgICAg
ICAgICAgICBtX291dC5icmFuY2goZXhwb25lbnRJc0ludGVnZXIsIHVuc3VyZShpbnRlZ2VyRXhw
b25lbnRJc1NtYWxsQmxvY2spLCB1bnN1cmUoZG91YmxlRXhwb25lbnRQb3dCbG9ja0VudHJ5KSk7
CiAKICAgICAgICAgICAgIExCYXNpY0Jsb2NrIGxhc3ROZXh0ID0gbV9vdXQuYXBwZW5kVG8oaW50
ZWdlckV4cG9uZW50SXNTbWFsbEJsb2NrLCBpbnRlZ2VyRXhwb25lbnRQb3dCbG9jayk7CiAgICAg
ICAgICAgICBMVmFsdWUgaW50ZWdlckV4cG9uZW50QmVsb3cxMDAwID0gbV9vdXQuYmVsb3coaW50
ZWdlckV4cG9uZW50LCBtX291dC5jb25zdEludDMyKDEwMDApKTsKLSAgICAgICAgICAgIG1fb3V0
LmJyYW5jaChpbnRlZ2VyRXhwb25lbnRCZWxvdzEwMDAsIHVzdWFsbHkoaW50ZWdlckV4cG9uZW50
UG93QmxvY2spLCByYXJlbHkoZG91YmxlRXhwb25lbnRQb3dCbG9jaykpOworICAgICAgICAgICAg
bV9vdXQuYnJhbmNoKGludGVnZXJFeHBvbmVudEJlbG93MTAwMCwgdXN1YWxseShpbnRlZ2VyRXhw
b25lbnRQb3dCbG9jayksIHJhcmVseShkb3VibGVFeHBvbmVudFBvd0Jsb2NrRW50cnkpKTsKIAot
ICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8oaW50ZWdlckV4cG9uZW50UG93QmxvY2ssIGRvdWJs
ZUV4cG9uZW50UG93QmxvY2spOworICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8oaW50ZWdlckV4
cG9uZW50UG93QmxvY2ssIGRvdWJsZUV4cG9uZW50UG93QmxvY2tFbnRyeSk7CiAgICAgICAgICAg
ICBWYWx1ZUZyb21CbG9jayBwb3dEb3VibGVJbnRSZXN1bHQgPSBtX291dC5hbmNob3IobV9vdXQu
ZG91YmxlUG93aShiYXNlLCBpbnRlZ2VyRXhwb25lbnQpKTsKICAgICAgICAgICAgIG1fb3V0Lmp1
bXAoY29udGludWF0aW9uKTsKIAotICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8oZG91YmxlRXhw
b25lbnRQb3dCbG9jaywgcG93QmxvY2spOwogICAgICAgICAgICAgLy8gSWYgeSBpcyBOYU4sIHRo
ZSByZXN1bHQgaXMgTmFOLgotICAgICAgICAgICAgLy8gRklYTUU6IHNob3VsZG4ndCB3ZSBvbmx5
IGNoZWNrIHRoYXQgaWYgdGhlIHR5cGUgb2YgY2hpbGQyKCkgbWlnaHQgaGF2ZSBOYU4/Ci0gICAg
ICAgICAgICBMVmFsdWUgZXhwb25lbnRJc05hTiA9IG1fb3V0LmRvdWJsZU5vdEVxdWFsT3JVbm9y
ZGVyZWQoZXhwb25lbnQsIGV4cG9uZW50KTsKKyAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGRv
dWJsZUV4cG9uZW50UG93QmxvY2tFbnRyeSwgbmFuRXhjZXB0aW9uRXhwb25lbnRJc0luZmluaXR5
KTsKKyAgICAgICAgICAgIExWYWx1ZSBleHBvbmVudElzTmFOOworICAgICAgICAgICAgaWYgKG1f
c3RhdGUuZm9yTm9kZShtX25vZGUtPmNoaWxkMigpKS5tX3R5cGUgJiBTcGVjRG91YmxlTmFOKQor
ICAgICAgICAgICAgICAgIGV4cG9uZW50SXNOYU4gPSBtX291dC5kb3VibGVOb3RFcXVhbE9yVW5v
cmRlcmVkKGV4cG9uZW50LCBleHBvbmVudCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgZXhwb25lbnRJc05hTiA9IG1fb3V0LmJvb2xlYW5GYWxzZTsKKyAgICAgICAgICAgIG1f
b3V0LmJyYW5jaChleHBvbmVudElzTmFOLCByYXJlbHkobmFuRXhjZXB0aW9uUmVzdWx0SXNOYU4p
LCB1c3VhbGx5KG5hbkV4Y2VwdGlvbkV4cG9uZW50SXNJbmZpbml0eSkpOwogCiAgICAgICAgICAg
ICAvLyBJZiBhYnMoeCkgaXMgMSBhbmQgeSBpcyAraW5maW5pdHksIHRoZSByZXN1bHQgaXMgTmFO
LgogICAgICAgICAgICAgLy8gSWYgYWJzKHgpIGlzIDEgYW5kIHkgaXMgLWluZmluaXR5LCB0aGUg
cmVzdWx0IGlzIE5hTi4KKyAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKG5hbkV4Y2VwdGlvbkV4
cG9uZW50SXNJbmZpbml0eSwgbmFuRXhjZXB0aW9uQmFzZUlzT25lKTsKICAgICAgICAgICAgIExW
YWx1ZSBhYnNvbHV0ZUV4cG9uZW50ID0gbV9vdXQuZG91YmxlQWJzKGV4cG9uZW50KTsKICAgICAg
ICAgICAgIExWYWx1ZSBhYnNvbHV0ZUV4cG9uZW50SXNJbmZpbml0eSA9IG1fb3V0LmRvdWJsZUVx
dWFsKGFic29sdXRlRXhwb25lbnQsIG1fb3V0LmNvbnN0RG91YmxlKHN0ZDo6bnVtZXJpY19saW1p
dHM8ZG91YmxlPjo6aW5maW5pdHkoKSkpOworICAgICAgICAgICAgbV9vdXQuYnJhbmNoKGFic29s
dXRlRXhwb25lbnRJc0luZmluaXR5LCByYXJlbHkobmFuRXhjZXB0aW9uQmFzZUlzT25lKSwgdXN1
YWxseShwb3dCbG9jaykpOworCisgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhuYW5FeGNlcHRp
b25CYXNlSXNPbmUsIHBvd0Jsb2NrKTsKICAgICAgICAgICAgIExWYWx1ZSBhYnNvbHV0ZUJhc2Ug
PSBtX291dC5kb3VibGVBYnMoYmFzZSk7CiAgICAgICAgICAgICBMVmFsdWUgYWJzb2x1dGVCYXNl
SXNPbmUgPSBtX291dC5kb3VibGVFcXVhbChhYnNvbHV0ZUJhc2UsIG1fb3V0LmNvbnN0RG91Ymxl
KDEpKTsKLSAgICAgICAgICAgIExWYWx1ZSBvbmVCYXNlSW5maW5pdGVFeHBvbmVudCA9IG1fb3V0
LmJpdEFuZChhYnNvbHV0ZUV4cG9uZW50SXNJbmZpbml0eSwgYWJzb2x1dGVCYXNlSXNPbmUpOwot
Ci0gICAgICAgICAgICBtX291dC5icmFuY2gobV9vdXQuYml0T3IoZXhwb25lbnRJc05hTiwgb25l
QmFzZUluZmluaXRlRXhwb25lbnQpLCByYXJlbHkobmFuRXhjZXB0aW9uKSwgdXN1YWxseShwb3dC
bG9jaykpOworICAgICAgICAgICAgbV9vdXQuYnJhbmNoKGFic29sdXRlQmFzZUlzT25lLCB1bnN1
cmUobmFuRXhjZXB0aW9uUmVzdWx0SXNOYU4pLCB1bnN1cmUocG93QmxvY2spKTsKIAotICAgICAg
ICAgICAgbV9vdXQuYXBwZW5kVG8ocG93QmxvY2ssIG5hbkV4Y2VwdGlvbik7CisgICAgICAgICAg
ICBtX291dC5hcHBlbmRUbyhwb3dCbG9jaywgbmFuRXhjZXB0aW9uUmVzdWx0SXNOYU4pOwogICAg
ICAgICAgICAgVmFsdWVGcm9tQmxvY2sgcG93UmVzdWx0ID0gbV9vdXQuYW5jaG9yKG1fb3V0LmRv
dWJsZVBvdyhiYXNlLCBleHBvbmVudCkpOwogICAgICAgICAgICAgbV9vdXQuanVtcChjb250aW51
YXRpb24pOwogCi0gICAgICAgICAgICBtX291dC5hcHBlbmRUbyhuYW5FeGNlcHRpb24sIGNvbnRp
bnVhdGlvbik7CisgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhuYW5FeGNlcHRpb25SZXN1bHRJ
c05hTiwgY29udGludWF0aW9uKTsKICAgICAgICAgICAgIFZhbHVlRnJvbUJsb2NrIHB1cmVOYW4g
PSBtX291dC5hbmNob3IobV9vdXQuY29uc3REb3VibGUoUE5hTikpOwogICAgICAgICAgICAgbV9v
dXQuanVtcChjb250aW51YXRpb24pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvc3RyZXNzL21hdGgtcG93LWJlY29tZXMtY3VzdG9tLWZ1bmN0aW9uLmpzIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9tYXRoLXBvdy1iZWNvbWVzLWN1c3RvbS1m
dW5jdGlvbi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ODkzYWNjNTA3NWZmOWVjZjgwM2E2Y2E2MDIyMjU1NmJm
YWQxODAxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0
cmVzcy9tYXRoLXBvdy1iZWNvbWVzLWN1c3RvbS1mdW5jdGlvbi5qcwpAQCAtMCwwICsxLDE4IEBA
CitmdW5jdGlvbiBtYXRoUG93V3JhcHBlcih4LCB5KSB7CisgICAgcmV0dXJuIE1hdGgucG93KHgs
IHkpOworfQorbm9JbmxpbmUobWF0aFBvd1dyYXBwZXIpOworCitmdW5jdGlvbiB0ZXN0Q2hhbmdp
bmdNYXRoUG93KCkgeworICAgIHZhciByZXN1bHQgPSAwOworICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgMTAwMDA7ICsraSkgeworICAgICAgICByZXN1bHQgKz0gbWF0aFBvd1dyYXBwZXIoMywgMik7
CisgICAgfQorICAgIE1hdGgucG93ID0gZnVuY3Rpb24oYSwgYikgeyByZXR1cm4gYSArIGI7IH0K
KyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAgcmVzdWx0ICs9
IG1hdGhQb3dXcmFwcGVyKDMsIDIpOworICAgIH0KKyAgICBpZiAocmVzdWx0ICE9PSAxNDAwMDAp
CisgICAgICAgIHRocm93ICJSZXN1bHQgPSAiICsgcmVzdWx0ICsgIiwgZXhwZWN0ZWQgMTQwMDAw
IjsKK30KK3Rlc3RDaGFuZ2luZ01hdGhQb3coKTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL21hdGgtcG93
LW5hbi1iZWhhdmlvcnMuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL21h
dGgtcG93LW5hbi1iZWhhdmlvcnMuanMKaW5kZXggZGE3ZGQ0NDY3ODA5ZmJjMDZiMmJmMzRlMTk1
ZjBhMzExMjA5OGM0ZS4uMGJkZDY5ODg3NGQzZWY4ZWMzMjIxNGUzMDM0YWM2ZTA0OTkzMzVmZCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9tYXRoLXBvdy1u
YW4tYmVoYXZpb3JzLmpzCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mv
bWF0aC1wb3ctbmFuLWJlaGF2aW9ycy5qcwpAQCAtMSw1ICsxLDUgQEAKIC8vIElmIHkgaXMgTmFO
LCB0aGUgcmVzdWx0IGlzIE5hTi4KLWZ1bmN0aW9uIHRlc3RJbnRlZ2VyQmFzZVdpdGhOYU5FeHBv
bmVudCgpIHsKK2Z1bmN0aW9uIHRlc3RJbnRlZ2VyQmFzZVdpdGhOYU5FeHBvbmVudFN0YXRpYygp
IHsKICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKICAgICAgICAgdmFyIHJl
c3VsdCA9IE1hdGgucG93KDUsIE5hTik7CiAgICAgICAgIGlmICghaXNOYU4ocmVzdWx0KSkKQEAg
LTExLDI4ICsxMSw3MCBAQCBmdW5jdGlvbiB0ZXN0SW50ZWdlckJhc2VXaXRoTmFORXhwb25lbnQo
KSB7CiAgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQsIE1hdGgucG93KGksIE5h
TikgPSAiICsgcmVzdWx0ICsgIiB3aXRoIGkgPSAiICsgaTsKICAgICB9CiB9Ci1ub0lubGluZSh0
ZXN0SW50ZWdlckJhc2VXaXRoTmFORXhwb25lbnQpOwotdGVzdEludGVnZXJCYXNlV2l0aE5hTkV4
cG9uZW50KCk7Citub0lubGluZSh0ZXN0SW50ZWdlckJhc2VXaXRoTmFORXhwb25lbnRTdGF0aWMp
OwordGVzdEludGVnZXJCYXNlV2l0aE5hTkV4cG9uZW50U3RhdGljKCk7CiAKLWZ1bmN0aW9uIHRl
c3RGbG9hdGluZ1BvaW50QmFzZVdpdGhOYU5FeHBvbmVudCgpIHsKK2Z1bmN0aW9uIG1hdGhQb3dJ
bnRlZ2VyQmFzZVdpdGhOYU5FeHBvbmVudER5bmFtaWMoeCwgeSkgeworICAgIHJldHVybiBNYXRo
LnBvdyh4LCB5KTsKK30KK25vSW5saW5lKG1hdGhQb3dJbnRlZ2VyQmFzZVdpdGhOYU5FeHBvbmVu
dER5bmFtaWMpOworZnVuY3Rpb24gdGVzdEludGVnZXJCYXNlV2l0aE5hTkV4cG9uZW50RHluYW1p
YygpIHsKKyAgICAvLyBXYXJtIHVwIHdpdGggMiBpbnRlZ2Vycy4KKyAgICBmb3IgKHZhciBpID0g
MDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IG1hdGhQb3dJbnRlZ2Vy
QmFzZVdpdGhOYU5FeHBvbmVudER5bmFtaWMoMiwgNSk7CisgICAgICAgIGlmIChyZXN1bHQgIT09
IDMyKQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0LCBtYXRoUG93SW50ZWdl
ckJhc2VXaXRoTmFORXhwb25lbnREeW5hbWljKDIsIDUpID0gIiArIHJlc3VsdCArICIsIGV4cGVj
dGVkIDMyLiIKKyAgICB9CisKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsK
KyAgICAgICAgdmFyIHJlc3VsdCA9IG1hdGhQb3dJbnRlZ2VyQmFzZVdpdGhOYU5FeHBvbmVudER5
bmFtaWMoaSwgTmFOKTsKKyAgICAgICAgaWYgKCFpc05hTihyZXN1bHQpKQorICAgICAgICAgICAg
dGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0LCBtYXRoUG93SW50ZWdlckJhc2VXaXRoTmFORXhwb25l
bnREeW5hbWljKGksIE5hTikgPSAiICsgcmVzdWx0ICsgIiB3aXRoIGkgPSAiICsgaSArICIsIGV4
cGVjdGVkIE5hTiI7CisgICAgfQorfQorbm9JbmxpbmUodGVzdEludGVnZXJCYXNlV2l0aE5hTkV4
cG9uZW50RHluYW1pYyk7Cit0ZXN0SW50ZWdlckJhc2VXaXRoTmFORXhwb25lbnREeW5hbWljKCk7
CisKK2Z1bmN0aW9uIHRlc3RGbG9hdGluZ1BvaW50QmFzZVdpdGhOYU5FeHBvbmVudFN0YXRpYygp
IHsKICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKICAgICAgICAgdmFyIHJl
c3VsdCA9IE1hdGgucG93KDUuNSwgTmFOKTsKICAgICAgICAgaWYgKCFpc05hTihyZXN1bHQpKQog
ICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0LCBNYXRoLnBvdyg1LjUsIE5hTikg
PSAiICsgcmVzdWx0OwogICAgIH0KICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kp
IHsKLSAgICAgICAgdmFyIHJlc3VsdCA9IE1hdGgucG93KGkgKyAxLCBOYU4pOworICAgICAgICB2
YXIgcmVzdWx0ID0gTWF0aC5wb3coaSArIDAuNSwgTmFOKTsKICAgICAgICAgaWYgKCFpc05hTihy
ZXN1bHQpKQogICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0LCBNYXRoLnBvdyhp
ICsgMC41LCBOYU4pID0gIiArIHJlc3VsdCArICIgd2l0aCBpID0gIiArIGk7CiAgICAgfQogfQot
bm9JbmxpbmUodGVzdEZsb2F0aW5nUG9pbnRCYXNlV2l0aE5hTkV4cG9uZW50KTsKLXRlc3RGbG9h
dGluZ1BvaW50QmFzZVdpdGhOYU5FeHBvbmVudCgpOworbm9JbmxpbmUodGVzdEZsb2F0aW5nUG9p
bnRCYXNlV2l0aE5hTkV4cG9uZW50U3RhdGljKTsKK3Rlc3RGbG9hdGluZ1BvaW50QmFzZVdpdGhO
YU5FeHBvbmVudFN0YXRpYygpOworCitmdW5jdGlvbiBtYXRoUG93RmxvYXRpbmdQb2ludEJhc2VX
aXRoTmFORXhwb25lbnREeW5hbWljKHgsIHkpIHsKKyAgICByZXR1cm4gTWF0aC5wb3coeCwgeSk7
Cit9Citub0lubGluZShtYXRoUG93RmxvYXRpbmdQb2ludEJhc2VXaXRoTmFORXhwb25lbnREeW5h
bWljKTsKK2Z1bmN0aW9uIHRlc3RGbG9hdGluZ1BvaW50QmFzZVdpdGhOYU5FeHBvbmVudER5bmFt
aWMoKSB7CisgICAgLy8gV2FybSB1cCB3aXRoIDIgZG91YmxlLgorICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgMTAwMDA7ICsraSkgeworICAgICAgICB2YXIgcmVzdWx0ID0gbWF0aFBvd0Zsb2F0aW5n
UG9pbnRCYXNlV2l0aE5hTkV4cG9uZW50RHluYW1pYygyLjUsIDUuMSk7CisgICAgICAgIGlmIChy
ZXN1bHQgIT09IDEwNy4wMjcxNzA1NDU0MzEzNSkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjog
YmFkIHJlc3VsdCwgbWF0aFBvd0Zsb2F0aW5nUG9pbnRCYXNlV2l0aE5hTkV4cG9uZW50RHluYW1p
YygyLjUsIDUuMSkgPSAiICsgcmVzdWx0ICsgIiwgZXhwZWN0ZWQgMTA3LjAyNzE3MDU0NTQzMTM1
LiIKKyAgICB9CisKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAg
ICAgdmFyIHJlc3VsdCA9IG1hdGhQb3dGbG9hdGluZ1BvaW50QmFzZVdpdGhOYU5FeHBvbmVudER5
bmFtaWMoaSArIDAuNSwgTmFOKTsKKyAgICAgICAgaWYgKCFpc05hTihyZXN1bHQpKQorICAgICAg
ICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0LCBtYXRoUG93RmxvYXRpbmdQb2ludEJhc2VX
aXRoTmFORXhwb25lbnREeW5hbWljKGkgKyAwLjUsIE5hTikgPSAiICsgcmVzdWx0ICsgIiB3aXRo
IGkgPSAiICsgaSArICIsIGV4cGVjdGVkIE5hTiI7CisgICAgfQorfQorbm9JbmxpbmUodGVzdEZs
b2F0aW5nUG9pbnRCYXNlV2l0aE5hTkV4cG9uZW50RHluYW1pYyk7Cit0ZXN0RmxvYXRpbmdQb2lu
dEJhc2VXaXRoTmFORXhwb25lbnREeW5hbWljKCk7CiAKIC8vIElmIHkgaXMgKzAsIHRoZSByZXN1
bHQgaXMgMSwgZXZlbiBpZiB4IGlzIE5hTi4KIC8vIElmIHkgaXMg4oiSMCwgdGhlIHJlc3VsdCBp
cyAxLCBldmVuIGlmIHggaXMgTmFOLgogLy8gSWYgeCBpcyBOYU4gYW5kIHkgaXMgbm9uemVybywg
dGhlIHJlc3VsdCBpcyBOYU4uCi1mdW5jdGlvbiB0ZXN0TmFOQmFzZSgpIHsKK2Z1bmN0aW9uIHRl
c3ROYU5CYXNlU3RhdGljKCkgewogICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkg
ewogICAgICAgICB2YXIgcmVzdWx0ID0gTWF0aC5wb3coTmFOLCBpICsgMSk7CiAgICAgICAgIGlm
ICghaXNOYU4ocmVzdWx0KSkKQEAgLTU0LDEyICs5Niw1MyBAQCBmdW5jdGlvbiB0ZXN0TmFOQmFz
ZSgpIHsKICAgICAgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCwgTWF0aC5wb3coTmFO
LCAtMCkgPSAiICsgcmVzdWx0OwogICAgIH0KIH0KLW5vSW5saW5lKHRlc3ROYU5CYXNlKTsKLXRl
c3ROYU5CYXNlKCk7Citub0lubGluZSh0ZXN0TmFOQmFzZVN0YXRpYyk7Cit0ZXN0TmFOQmFzZVN0
YXRpYygpOworCitmdW5jdGlvbiBtYXRoUG93TmFOQmFzZUR5bmFtaWMxKHgsIHkpIHsKKyAgICBy
ZXR1cm4gTWF0aC5wb3coeCwgeSk7Cit9CitmdW5jdGlvbiBtYXRoUG93TmFOQmFzZUR5bmFtaWMy
KHgsIHkpIHsKKyAgICByZXR1cm4gTWF0aC5wb3coeCwgeSk7Cit9CitmdW5jdGlvbiBtYXRoUG93
TmFOQmFzZUR5bmFtaWMzKHgsIHkpIHsKKyAgICByZXR1cm4gTWF0aC5wb3coeCwgeSk7Cit9Citm
dW5jdGlvbiBtYXRoUG93TmFOQmFzZUR5bmFtaWM0KHgsIHkpIHsKKyAgICByZXR1cm4gTWF0aC5w
b3coeCwgeSk7Cit9Citub0lubGluZShtYXRoUG93TmFOQmFzZUR5bmFtaWMxKTsKK25vSW5saW5l
KG1hdGhQb3dOYU5CYXNlRHluYW1pYzIpOworbm9JbmxpbmUobWF0aFBvd05hTkJhc2VEeW5hbWlj
Myk7Citub0lubGluZShtYXRoUG93TmFOQmFzZUR5bmFtaWM0KTsKK2Z1bmN0aW9uIHRlc3ROYU5C
YXNlRHluYW1pYygpIHsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAg
ICAgICAgdmFyIHJlc3VsdCA9IG1hdGhQb3dOYU5CYXNlRHluYW1pYzEoTmFOLCBpICsgMSk7Cisg
ICAgICAgIGlmICghaXNOYU4ocmVzdWx0KSkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogYmFk
IHJlc3VsdCwgbWF0aFBvd05hTkJhc2VEeW5hbWljMShOYU4sIGkgKyAxKSA9ICIgKyByZXN1bHQg
KyAiIHdpdGggaSA9ICIgKyBpOworICAgIH0KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAw
OyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IG1hdGhQb3dOYU5CYXNlRHluYW1pYzIoTmFO
LCBpICsgMS41KTsKKyAgICAgICAgaWYgKCFpc05hTihyZXN1bHQpKQorICAgICAgICAgICAgdGhy
b3cgIkVycm9yOiBiYWQgcmVzdWx0LCBtYXRoUG93TmFOQmFzZUR5bmFtaWMyKE5hTiwgaSArIDEu
NSkgPSAiICsgcmVzdWx0ICsgIiB3aXRoIGkgPSAiICsgaTsKKyAgICB9CisgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZhciByZXN1bHQgPSBtYXRoUG93TmFO
QmFzZUR5bmFtaWMzKE5hTiwgMCk7CisgICAgICAgIGlmIChyZXN1bHQgIT09IDEpCisgICAgICAg
ICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQsIG1hdGhQb3dOYU5CYXNlRHluYW1pYzMoTmFO
LCAwKSA9ICIgKyByZXN1bHQ7CisgICAgfQorICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7
ICsraSkgeworICAgICAgICB2YXIgcmVzdWx0ID0gbWF0aFBvd05hTkJhc2VEeW5hbWljNChOYU4s
IC0wKTsKKyAgICAgICAgaWYgKHJlc3VsdCAhPT0gMSkKKyAgICAgICAgICAgIHRocm93ICJFcnJv
cjogYmFkIHJlc3VsdCwgbWF0aFBvd05hTkJhc2VEeW5hbWljNChOYU4sIC0wKSA9ICIgKyByZXN1
bHQ7CisgICAgfQorfQorbm9JbmxpbmUodGVzdE5hTkJhc2VEeW5hbWljKTsKK3Rlc3ROYU5CYXNl
RHluYW1pYygpOwogCiAvLyBJZiBhYnMoeCkgaXMgMSBhbmQgeSBpcyAr4oieLCB0aGUgcmVzdWx0
IGlzIE5hTi4KIC8vIElmIGFicyh4KSBpcyAxIGFuZCB5IGlzIOKIkuKIniwgdGhlIHJlc3VsdCBp
cyBOYU4uCi1mdW5jdGlvbiBpbmZpbml0ZUV4cG9uZW50cygpIHsKK2Z1bmN0aW9uIGluZmluaXRl
RXhwb25lbnRzU3RhdGljKCkgewogICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkg
ewogICAgICAgICB2YXIgcmVzdWx0ID0gTWF0aC5wb3coMSwgTnVtYmVyLlBPU0lUSVZFX0lORklO
SVRZKTsKICAgICAgICAgaWYgKCFpc05hTihyZXN1bHQpKQpAQCAtODEsNSArMTY0LDQ2IEBAIGZ1
bmN0aW9uIGluZmluaXRlRXhwb25lbnRzKCkgewogICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBi
YWQgcmVzdWx0LCBNYXRoLnBvdygtMSwgTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZKSA9ICIgKyBy
ZXN1bHQ7CiAgICAgfQogfQotbm9JbmxpbmUoaW5maW5pdGVFeHBvbmVudHMpOwotaW5maW5pdGVF
eHBvbmVudHMoKTsKK25vSW5saW5lKGluZmluaXRlRXhwb25lbnRzU3RhdGljKTsKK2luZmluaXRl
RXhwb25lbnRzU3RhdGljKCk7CisKK2Z1bmN0aW9uIG1hdGhQb3dJbmZpbml0ZUV4cG9uZW50c0R5
bmFtaWMxKHgsIHkpIHsKKyAgICByZXR1cm4gTWF0aC5wb3coeCwgeSk7Cit9CitmdW5jdGlvbiBt
YXRoUG93SW5maW5pdGVFeHBvbmVudHNEeW5hbWljMih4LCB5KSB7CisgICAgcmV0dXJuIE1hdGgu
cG93KHgsIHkpOworfQorZnVuY3Rpb24gbWF0aFBvd0luZmluaXRlRXhwb25lbnRzRHluYW1pYzMo
eCwgeSkgeworICAgIHJldHVybiBNYXRoLnBvdyh4LCB5KTsKK30KK2Z1bmN0aW9uIG1hdGhQb3dJ
bmZpbml0ZUV4cG9uZW50c0R5bmFtaWM0KHgsIHkpIHsKKyAgICByZXR1cm4gTWF0aC5wb3coeCwg
eSk7Cit9Citub0lubGluZShtYXRoUG93SW5maW5pdGVFeHBvbmVudHNEeW5hbWljMSk7Citub0lu
bGluZShtYXRoUG93SW5maW5pdGVFeHBvbmVudHNEeW5hbWljMik7Citub0lubGluZShtYXRoUG93
SW5maW5pdGVFeHBvbmVudHNEeW5hbWljMyk7Citub0lubGluZShtYXRoUG93SW5maW5pdGVFeHBv
bmVudHNEeW5hbWljNCk7CitmdW5jdGlvbiBpbmZpbml0ZUV4cG9uZW50c0R5bmFtaWMoKSB7Cisg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZhciByZXN1bHQg
PSBtYXRoUG93SW5maW5pdGVFeHBvbmVudHNEeW5hbWljMSgxLCBOdW1iZXIuUE9TSVRJVkVfSU5G
SU5JVFkpOworICAgICAgICBpZiAoIWlzTmFOKHJlc3VsdCkpCisgICAgICAgICAgICB0aHJvdyAi
RXJyb3I6IGJhZCByZXN1bHQsIG1hdGhQb3dJbmZpbml0ZUV4cG9uZW50c0R5bmFtaWMxKDEsIE51
bWJlci5QT1NJVElWRV9JTkZJTklUWSkgPSAiICsgcmVzdWx0OworICAgIH0KKyAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IG1hdGhQb3dJ
bmZpbml0ZUV4cG9uZW50c0R5bmFtaWMyKC0xLCBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpOwor
ICAgICAgICBpZiAoIWlzTmFOKHJlc3VsdCkpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGJh
ZCByZXN1bHQsIG1hdGhQb3dJbmZpbml0ZUV4cG9uZW50c0R5bmFtaWMyKC0xLCBOdW1iZXIuUE9T
SVRJVkVfSU5GSU5JVFkpID0gIiArIHJlc3VsdDsKKyAgICB9CisgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZhciByZXN1bHQgPSBtYXRoUG93SW5maW5pdGVF
eHBvbmVudHNEeW5hbWljMygxLCBOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFkpOworICAgICAgICBp
ZiAoIWlzTmFOKHJlc3VsdCkpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQs
IG1hdGhQb3dJbmZpbml0ZUV4cG9uZW50c0R5bmFtaWMzKDEsIE51bWJlci5ORUdBVElWRV9JTkZJ
TklUWSkgPSAiICsgcmVzdWx0OworICAgIH0KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAw
OyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IG1hdGhQb3dJbmZpbml0ZUV4cG9uZW50c0R5
bmFtaWM0KC0xLCBOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFkpOworICAgICAgICBpZiAoIWlzTmFO
KHJlc3VsdCkpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQsIG1hdGhQb3dJ
bmZpbml0ZUV4cG9uZW50c0R5bmFtaWM0KC0xLCBOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFkpID0g
IiArIHJlc3VsdDsKKyAgICB9Cit9Citub0lubGluZShpbmZpbml0ZUV4cG9uZW50c0R5bmFtaWMp
OworaW5maW5pdGVFeHBvbmVudHNEeW5hbWljKCk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9tYXRoLXBv
dy13aXRoLWNvbnN0YW50cy5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mv
bWF0aC1wb3ctd2l0aC1jb25zdGFudHMuanMKaW5kZXggYTRjMTA4Y2JkMThjMTY3ZjY5YmJlYTRk
M2U5ZGIyODI2ZDAzMGVjMy4uYjI5MTc5YWFjNWQ5YmM2OTI3OGM2MzI0ZmIwNjBhNDRlYjViMDJj
YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9tYXRoLXBv
dy13aXRoLWNvbnN0YW50cy5qcworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3Ry
ZXNzL21hdGgtcG93LXdpdGgtY29uc3RhbnRzLmpzCkBAIC0xMTMsMyArMTEzLDEwMyBAQCBmdW5j
dGlvbiB0ZXN0QmFzZUFuZEV4cG9uZW50Q29uc3RhbnRMaXRlcmFscygpCiAgICAgfQogfQogdGVz
dEJhc2VBbmRFeHBvbmVudENvbnN0YW50TGl0ZXJhbHMoKTsKKworCitmdW5jdGlvbiBleHBvbmVu
dElzSW50ZWdlckNvbnN0YW50KHgpIHsKKyAgICByZXR1cm4gTWF0aC5wb3coeCwgNDIpOworfQor
bm9JbmxpbmUoZXhwb25lbnRJc0ludGVnZXJDb25zdGFudCk7CisKK2Z1bmN0aW9uIHRlc3RFeHBv
bmVudElzSW50ZWdlckNvbnN0YW50KCkgeworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDsg
KytpKSB7CisgICAgICAgIHZhciByZXN1bHQgPSBleHBvbmVudElzSW50ZWdlckNvbnN0YW50KDIp
OworICAgICAgICBpZiAocmVzdWx0ICE9PSA0Mzk4MDQ2NTExMTA0KQorICAgICAgICAgICAgdGhy
b3cgIkVycm9yOiBleHBvbmVudElzSW50ZWdlckNvbnN0YW50KDIpIHNob3VsZCBiZSA0Mzk4MDQ2
NTExMTA0LCB3YXMgPSAiICsgcmVzdWx0OworICAgIH0KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8
IDEwMDA7ICsraSkgeworICAgICAgICB2YXIgcmVzdWx0ID0gZXhwb25lbnRJc0ludGVnZXJDb25z
dGFudCg1KTsKKyAgICAgICAgaWYgKHJlc3VsdCAhPT0gMi4yNzM3MzY3NTQ0MzIzMjA3ZSsyOSkK
KyAgICAgICAgICAgIHRocm93ICJFcnJvcjogZXhwb25lbnRJc0ludGVnZXJDb25zdGFudCg1KSBz
aG91bGQgYmUgMi4yNzM3MzY3NTQ0MzIzMjA3ZSsyOSwgd2FzID0gIiArIHJlc3VsdDsKKyAgICB9
CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3Vs
dCA9IGV4cG9uZW50SXNJbnRlZ2VyQ29uc3RhbnQoMi4xKTsKKyAgICAgICAgaWYgKHJlc3VsdCAh
PT0gMzQxMzU4MjMwNjc0MTIuNDIpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGV4cG9uZW50
SXNJbnRlZ2VyQ29uc3RhbnQoMi4xKSBzaG91bGQgYmUgMzQxMzU4MjMwNjc0MTIuNDIsIHdhcyA9
ICIgKyByZXN1bHQ7CisgICAgfQorfQordGVzdEV4cG9uZW50SXNJbnRlZ2VyQ29uc3RhbnQoKTsK
KworCitmdW5jdGlvbiBleHBvbmVudElzRG91YmxlQ29uc3RhbnQoeCkgeworICAgIHJldHVybiBN
YXRoLnBvdyh4LCA0Mi41KTsKK30KK25vSW5saW5lKGV4cG9uZW50SXNEb3VibGVDb25zdGFudCk7
CisKK2Z1bmN0aW9uIHRlc3RFeHBvbmVudElzRG91YmxlQ29uc3RhbnQoKSB7CisgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCAxMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IGV4cG9uZW50
SXNEb3VibGVDb25zdGFudCgyKTsKKyAgICAgICAgaWYgKHJlc3VsdCAhPT0gNjIxOTc3NzAyMzk1
MC45NSkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogZXhwb25lbnRJc0RvdWJsZUNvbnN0YW50
KDIpIHNob3VsZCBiZSA2MjE5Nzc3MDIzOTUwLjk1LCB3YXMgPSAiICsgcmVzdWx0OworICAgIH0K
KyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7ICsraSkgeworICAgICAgICB2YXIgcmVzdWx0
ID0gZXhwb25lbnRJc0RvdWJsZUNvbnN0YW50KDUpOworICAgICAgICBpZiAocmVzdWx0ICE9PSA1
LjA4NDIyOTk0NTg1MDQxNWUrMjkpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGV4cG9uZW50
SXNEb3VibGVDb25zdGFudCg1KSBzaG91bGQgYmUgNS4wODQyMjk5NDU4NTA0MTVlKzI5LCB3YXMg
PSAiICsgcmVzdWx0OworICAgIH0KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7ICsraSkg
eworICAgICAgICB2YXIgcmVzdWx0ID0gZXhwb25lbnRJc0RvdWJsZUNvbnN0YW50KDIuMSk7Cisg
ICAgICAgIGlmIChyZXN1bHQgIT09IDQ5NDY3NTA3MjYxMTEzLjgwNSkKKyAgICAgICAgICAgIHRo
cm93ICJFcnJvcjogZXhwb25lbnRJc0RvdWJsZUNvbnN0YW50KDIuMSkgc2hvdWxkIGJlIDQ5NDY3
NTA3MjYxMTEzLjgwNSwgd2FzID0gIiArIHJlc3VsdDsKKyAgICB9Cit9Cit0ZXN0RXhwb25lbnRJ
c0RvdWJsZUNvbnN0YW50KCk7CisKKworZnVuY3Rpb24gZXhwb25lbnRJc0luZmluaXR5Q29uc3Rh
bnQoeCkgeworICAgIHJldHVybiBNYXRoLnBvdyh4LCBJbmZpbml0eSk7Cit9Citub0lubGluZShl
eHBvbmVudElzSW5maW5pdHlDb25zdGFudCk7CisKK2Z1bmN0aW9uIHRlc3RFeHBvbmVudElzSW5m
aW5pdHlDb25zdGFudCgpIHsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7ICsraSkgewor
ICAgICAgICB2YXIgcmVzdWx0ID0gZXhwb25lbnRJc0luZmluaXR5Q29uc3RhbnQoMik7CisgICAg
ICAgIGlmIChyZXN1bHQgIT09IEluZmluaXR5KQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBl
eHBvbmVudElzSW5maW5pdHlDb25zdGFudCgyKSBzaG91bGQgYmUgSW5maW5pdHksIHdhcyA9ICIg
KyByZXN1bHQ7CisgICAgfQorICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDsgKytpKSB7Cisg
ICAgICAgIHZhciByZXN1bHQgPSBleHBvbmVudElzSW5maW5pdHlDb25zdGFudCg1KTsKKyAgICAg
ICAgaWYgKHJlc3VsdCAhPT0gSW5maW5pdHkpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGV4
cG9uZW50SXNJbmZpbml0eUNvbnN0YW50KDUpIHNob3VsZCBiZSBJbmZpbml0eSsyOSwgd2FzID0g
IiArIHJlc3VsdDsKKyAgICB9CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwOyArK2kpIHsK
KyAgICAgICAgdmFyIHJlc3VsdCA9IGV4cG9uZW50SXNJbmZpbml0eUNvbnN0YW50KDIuMSk7Cisg
ICAgICAgIGlmIChyZXN1bHQgIT09IEluZmluaXR5KQorICAgICAgICAgICAgdGhyb3cgIkVycm9y
OiBleHBvbmVudElzSW5maW5pdHlDb25zdGFudCgyLjEpIHNob3VsZCBiZSBJbmZpbml0eSwgd2Fz
ID0gIiArIHJlc3VsdDsKKyAgICB9Cit9Cit0ZXN0RXhwb25lbnRJc0luZmluaXR5Q29uc3RhbnQo
KTsKKworCitmdW5jdGlvbiBleHBvbmVudElzTmVnYXRpdmVJbmZpbml0eUNvbnN0YW50KHgpIHsK
KyAgICByZXR1cm4gTWF0aC5wb3coeCwgLUluZmluaXR5KTsKK30KK25vSW5saW5lKGV4cG9uZW50
SXNOZWdhdGl2ZUluZmluaXR5Q29uc3RhbnQpOworCitmdW5jdGlvbiB0ZXN0RXhwb25lbnRJc05l
Z2F0aXZlSW5maW5pdHlDb25zdGFudCgpIHsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7
ICsraSkgeworICAgICAgICB2YXIgcmVzdWx0ID0gZXhwb25lbnRJc05lZ2F0aXZlSW5maW5pdHlD
b25zdGFudCgyKTsKKyAgICAgICAgaWYgKHJlc3VsdCAhPT0gMCkKKyAgICAgICAgICAgIHRocm93
ICJFcnJvcjogZXhwb25lbnRJc05lZ2F0aXZlSW5maW5pdHlDb25zdGFudCgyKSBzaG91bGQgYmUg
SW5maW5pdHksIHdhcyA9ICIgKyByZXN1bHQ7CisgICAgfQorICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgMTAwMDsgKytpKSB7CisgICAgICAgIHZhciByZXN1bHQgPSBleHBvbmVudElzTmVnYXRpdmVJ
bmZpbml0eUNvbnN0YW50KDUpOworICAgICAgICBpZiAocmVzdWx0ICE9PSAwKQorICAgICAgICAg
ICAgdGhyb3cgIkVycm9yOiBleHBvbmVudElzTmVnYXRpdmVJbmZpbml0eUNvbnN0YW50KDUpIHNo
b3VsZCBiZSBJbmZpbml0eSsyOSwgd2FzID0gIiArIHJlc3VsdDsKKyAgICB9CisgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCAxMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IGV4cG9uZW50
SXNOZWdhdGl2ZUluZmluaXR5Q29uc3RhbnQoMi4xKTsKKyAgICAgICAgaWYgKHJlc3VsdCAhPT0g
MCkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogZXhwb25lbnRJc05lZ2F0aXZlSW5maW5pdHlD
b25zdGFudCgyLjEpIHNob3VsZCBiZSBJbmZpbml0eSwgd2FzID0gIiArIHJlc3VsdDsKKyAgICB9
Cit9Cit0ZXN0RXhwb25lbnRJc05lZ2F0aXZlSW5maW5pdHlDb25zdGFudCgpOwpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9zdHJlc3MvbWF0aC1wb3ctd2l0aC1uZXZlci1OYU4tZXhwb25lbnQuanMgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL21hdGgtcG93LXdpdGgtbmV2ZXItTmFOLWV4cG9uZW50
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmQ1ZDZiYzBkNjM5Y2JhYzliN2E2ODljMTdkZDRmYWZiYmQwMjQ2ZDUK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL21h
dGgtcG93LXdpdGgtbmV2ZXItTmFOLWV4cG9uZW50LmpzCkBAIC0wLDAgKzEsMjQgQEAKK2Z1bmN0
aW9uIGV4cG9uZW50SXNOb25OYW5Eb3VibGUxKHgsIGRvdWJsZUFycmF5SW5kZXgpIHsKKyAgICB2
YXIgZG91YmxlQXJyYXkgPSBbNC40XTsKKyAgICByZXR1cm4gTWF0aC5wb3coeCwgZG91YmxlQXJy
YXlbZG91YmxlQXJyYXlJbmRleF0pOworfQorbm9JbmxpbmUoZXhwb25lbnRJc05vbk5hbkRvdWJs
ZTEpOworCitmdW5jdGlvbiBleHBvbmVudElzTm9uTmFuRG91YmxlMih4LCBkb3VibGVBcnJheSkg
eworICAgIHJldHVybiBNYXRoLnBvdyh4LCBkb3VibGVBcnJheVswXSk7Cit9Citub0lubGluZShl
eHBvbmVudElzTm9uTmFuRG91YmxlMik7CisKK2Z1bmN0aW9uIHRlc3RFeHBvbmVudElzRG91Ymxl
Q29uc3RhbnQoKSB7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAg
ICAgIHZhciByZXN1bHQgPSBleHBvbmVudElzTm9uTmFuRG91YmxlMSgyLCAwKTsKKyAgICAgICAg
aWYgKHJlc3VsdCAhPT0gMjEuMTEyMTI2NTcyMzY2MzE0KQorICAgICAgICAgICAgdGhyb3cgIkVy
cm9yOiBleHBvbmVudElzTm9uTmFuRG91YmxlMSgyLCAwKSBzaG91bGQgYmUgMjEuMTEyMTI2NTcy
MzY2MzE0LCB3YXMgPSAiICsgcmVzdWx0OworICAgIH0KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8
IDEwMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IGV4cG9uZW50SXNOb25OYW5Eb3Vi
bGUyKDMsIFstMS41XSk7CisgICAgICAgIGlmIChyZXN1bHQgIT09IDAuMTkyNDUwMDg5NzI5ODc1
MjYpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGV4cG9uZW50SXNOb25OYW5Eb3VibGUyKDMs
IFstMS41XSkgc2hvdWxkIGJlIDAuMTkyNDUwMDg5NzI5ODc1MjYsIHdhcyA9ICIgKyByZXN1bHQ7
CisgICAgfQorfQordGVzdEV4cG9uZW50SXNEb3VibGVDb25zdGFudCgpOwo=
</data>
<flag name="review"
          id="271825"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
          </attachment>
      

    </bug>

</bugzilla>