<?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>200911</bug_id>
          
          <creation_ts>2019-08-19 20:24:00 -0700</creation_ts>
          <short_desc>[JSC] to_primitive should handle Arrays efficiently</short_desc>
          <delta_ts>2019-08-20 02:15:01 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></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="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1562910</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-08-19 20:24:00 -0700</bug_when>
    <thetext>Should handle objects, particularly, arrays for JetStream2/3d-raytrace-SP.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562911</commentid>
    <comment_count>1</comment_count>
      <attachid>376738</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-08-19 20:34:07 -0700</bug_when>
    <thetext>Created attachment 376738
Patch

WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562999</commentid>
    <comment_count>2</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-08-20 02:11:12 -0700</bug_when>
    <thetext>It contributes ~10% improvement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1563001</commentid>
    <comment_count>3</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-08-20 02:15:01 -0700</bug_when>
    <thetext>Putting this to my queue</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376738</attachid>
            <date>2019-08-19 20:34:07 -0700</date>
            <delta_ts>2019-08-20 01:13:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200911-20190819203407.patch</filename>
            <type>text/plain</type>
            <size>27316</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4ODc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
YTQ0ZTZmN2I0NDRiY2ZhYTczNTgwNTU1OWZjM2Q0YTlhOGQzMTljLi44N2E3YmZlYTNjNmEwY2Mx
Yzc0MmFhODAyNDgxZDkxNWFhMDg0NmNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MyBAQAorMjAxOS0wOC0xOSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIHRvX3ByaW1pdGl2ZSBzaG91bGQgaGFuZGxlIEFycmF5cyBlZmZp
Y2llbnRseQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjAwOTExCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
SmV0U3RyZWFtMiAzZC1yYXl0cmFjZS1TUCBzY29yZSBpcyBpbXByb3ZlZCBieSAxLjYlLgorICAg
ICAgICAgICAgVG9UOiAgICAgMzYzLjU2CisgICAgICAgICAgICBQYXRjaGVkOiAzNjkuMjYKKwor
ICAgICAgICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6
Qnl0ZUNvZGVQYXJzZXI6OmhhbmRsZUludHJpbnNpY0NhbGwpOgorICAgICAgICAqIGRmZy9ERkdH
cmFwaC5oOgorICAgICAgICAoSlNDOjpERkc6OkdyYXBoOjppc1dhdGNoaW5nQXJyYXlJdGVyYXRv
clByb3RvY29sV2F0Y2hwb2ludCk6CisgICAgICAgIChKU0M6OkRGRzo6R3JhcGg6OmlzV2F0Y2hp
bmdOdW1iZXJUb1N0cmluZ1dhdGNocG9pbnQpOgorICAgICAgICAqIHJ1bnRpbWUvQXJyYXlQcm90
b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpzcGVjaWVzV2F0Y2hwb2ludElzVmFsaWQpOgorICAg
ICAgICAoSlNDOjppc1RvU3RyaW5nSm9pbkZhc3RBbmROb25PYnNlcnZhYmxlKToKKyAgICAgICAg
KEpTQzo6YXJyYXlQcm90b0Z1bmNUb1N0cmluZyk6CisgICAgICAgICogcnVudGltZS9KU0dsb2Jh
bE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0OjpKU0dsb2JhbE9iamVj
dCk6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0Ojppbml0KToKKyAgICAgICAgKEpTQzo6
SlNHbG9iYWxPYmplY3Q6OnRyeUluc3RhbGxBcnJheVNwZWNpZXNXYXRjaHBvaW50KToKKyAgICAg
ICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2Jq
ZWN0OjphcnJheUl0ZXJhdG9yUHJvdG9jb2xXYXRjaHBvaW50U2V0KToKKyAgICAgICAgKEpTQzo6
SlNHbG9iYWxPYmplY3Q6Om1hcEl0ZXJhdG9yUHJvdG9jb2xXYXRjaHBvaW50U2V0KToKKyAgICAg
ICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OnNldEl0ZXJhdG9yUHJvdG9jb2xXYXRjaHBvaW50U2V0
KToKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OnN0cmluZ0l0ZXJhdG9yUHJvdG9jb2xX
YXRjaHBvaW50U2V0KToKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6Om1hcFNldFdhdGNo
cG9pbnRTZXQpOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6c2V0QWRkV2F0Y2hwb2lu
dFNldCk6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0OjphcnJheVNwZWNpZXNXYXRjaHBv
aW50U2V0KToKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OmFycmF5Sm9pbldhdGNocG9p
bnRTZXQpOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6bnVtYmVyVG9TdHJpbmdXYXRj
aHBvaW50U2V0KToKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OmFycmF5SXRlcmF0b3JQ
cm90b2NvbFdhdGNocG9pbnQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVj
dDo6bWFwSXRlcmF0b3JQcm90b2NvbFdhdGNocG9pbnQpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpKU0dsb2JhbE9iamVjdDo6c2V0SXRlcmF0b3JQcm90b2NvbFdhdGNocG9pbnQpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6c3RyaW5nSXRlcmF0b3JQcm90b2NvbFdh
dGNocG9pbnQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6bWFwU2V0
V2F0Y2hwb2ludCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0OjpzZXRB
ZGRXYXRjaHBvaW50KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OmFy
cmF5U3BlY2llc1dhdGNocG9pbnQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9i
amVjdDo6bnVtYmVyVG9TdHJpbmdXYXRjaHBvaW50KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50
aW1lL0pTR2xvYmFsT2JqZWN0SW5saW5lcy5oOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVj
dDo6aXNBcnJheVByb3RvdHlwZUl0ZXJhdG9yUHJvdG9jb2xGYXN0QW5kTm9uT2JzZXJ2YWJsZSk6
CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0Ojppc01hcFByb3RvdHlwZUl0ZXJhdG9yUHJv
dG9jb2xGYXN0QW5kTm9uT2JzZXJ2YWJsZSk6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0
Ojppc1NldFByb3RvdHlwZUl0ZXJhdG9yUHJvdG9jb2xGYXN0QW5kTm9uT2JzZXJ2YWJsZSk6Cisg
ICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0Ojppc1N0cmluZ1Byb3RvdHlwZUl0ZXJhdG9yUHJv
dG9jb2xGYXN0QW5kTm9uT2JzZXJ2YWJsZSk6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0
Ojppc01hcFByb3RvdHlwZVNldEZhc3RBbmROb25PYnNlcnZhYmxlKToKKyAgICAgICAgKEpTQzo6
SlNHbG9iYWxPYmplY3Q6OmlzU2V0UHJvdG90eXBlQWRkRmFzdEFuZE5vbk9ic2VydmFibGUpOgor
CiAyMDE5LTA4LTE5ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAg
ICAgW0pTQ10gT1NSIGVudHJ5IHRvIFdhc20gT01HCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCmluZGV4IGVjN2YwNWZlN2QwZTI2YzU0MTdlNzY5
YjI5MWNmN2U0ZWE3OThiZTAuLjEzNzQ5MTliZTllMjEzNDU2ZjkyN2Y3YzM2MDJkNTdiYzI2Y2Zk
MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJz
ZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIu
Y3BwCkBAIC0yMzUxLDEzICsyMzUxLDEzIEBAIGJvb2wgQnl0ZUNvZGVQYXJzZXI6OmhhbmRsZUlu
dHJpbnNpY0NhbGwoTm9kZSogY2FsbGVlLCBWaXJ0dWFsUmVnaXN0ZXIgcmVzdWx0LCBJCiAKICAg
ICAgICAgICAgICAgICAvLyBGSVhNRTogV2UgY291bGQgZWFzaWx5IHJlbGF4IHRoZSBBcnJheS9P
YmplY3QucHJvdG90eXBlIHRyYW5zaXRpb24gYXMgbG9uZyBhcyB3ZSBPU1IgZXhpdHRlZCBpZiB3
ZSBzYXcgYSBob2xlLgogICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNzMxNzEKLSAgICAgICAgICAgICAgICBpZiAoZ2xvYmFsT2JqZWN0
LT5hcnJheVNwZWNpZXNXYXRjaHBvaW50KCkuc3RhdGUoKSA9PSBJc1dhdGNoZWQKKyAgICAgICAg
ICAgICAgICBpZiAoZ2xvYmFsT2JqZWN0LT5hcnJheVNwZWNpZXNXYXRjaHBvaW50U2V0KCkuc3Rh
dGUoKSA9PSBJc1dhdGNoZWQKICAgICAgICAgICAgICAgICAgICAgJiYgZ2xvYmFsT2JqZWN0LT5o
YXZpbmdBQmFkVGltZVdhdGNocG9pbnQoKS0+aXNTdGlsbFZhbGlkKCkKICAgICAgICAgICAgICAg
ICAgICAgJiYgYXJyYXlQcm90b3R5cGVTdHJ1Y3R1cmUtPnRyYW5zaXRpb25XYXRjaHBvaW50U2V0
SXNTdGlsbFZhbGlkKCkKICAgICAgICAgICAgICAgICAgICAgJiYgb2JqZWN0UHJvdG90eXBlU3Ry
dWN0dXJlLT50cmFuc2l0aW9uV2F0Y2hwb2ludFNldElzU3RpbGxWYWxpZCgpCiAgICAgICAgICAg
ICAgICAgICAgICYmIGdsb2JhbE9iamVjdC0+YXJyYXlQcm90b3R5cGVDaGFpbklzU2FuZSgpKSB7
CiAKLSAgICAgICAgICAgICAgICAgICAgbV9ncmFwaC53YXRjaHBvaW50cygpLmFkZExhemlseShn
bG9iYWxPYmplY3QtPmFycmF5U3BlY2llc1dhdGNocG9pbnQoKSk7CisgICAgICAgICAgICAgICAg
ICAgIG1fZ3JhcGgud2F0Y2hwb2ludHMoKS5hZGRMYXppbHkoZ2xvYmFsT2JqZWN0LT5hcnJheVNw
ZWNpZXNXYXRjaHBvaW50U2V0KCkpOwogICAgICAgICAgICAgICAgICAgICBtX2dyYXBoLndhdGNo
cG9pbnRzKCkuYWRkTGF6aWx5KGdsb2JhbE9iamVjdC0+aGF2aW5nQUJhZFRpbWVXYXRjaHBvaW50
KCkpOwogICAgICAgICAgICAgICAgICAgICBtX2dyYXBoLnJlZ2lzdGVyQW5kV2F0Y2hTdHJ1Y3R1
cmVUcmFuc2l0aW9uKGFycmF5UHJvdG90eXBlU3RydWN0dXJlKTsKICAgICAgICAgICAgICAgICAg
ICAgbV9ncmFwaC5yZWdpc3RlckFuZFdhdGNoU3RydWN0dXJlVHJhbnNpdGlvbihvYmplY3RQcm90
b3R5cGVTdHJ1Y3R1cmUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdHcmFwaC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oCmluZGV4IDVj
NzA5ZDU0NWFmOTYyMDNhN2YzYzBmYWQ1Y2IyOGIyMDIxOGVlNTguLjI2YmQ3Mjg2ZGZmZmU2MmFm
NjQ0MmZiNzgzMjFiNzU0NTJlZTU0ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHR3JhcGguaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBo
LmgKQEAgLTgwMCwxNCArODAwLDE0IEBAIGNsYXNzIEdyYXBoIDogcHVibGljIHZpcnR1YWwgU2Nh
bm5hYmxlIHsKICAgICBib29sIGlzV2F0Y2hpbmdBcnJheUl0ZXJhdG9yUHJvdG9jb2xXYXRjaHBv
aW50KE5vZGUqIG5vZGUpCiAgICAgewogICAgICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0ID0gZ2xvYmFsT2JqZWN0Rm9yKG5vZGUtPm9yaWdpbi5zZW1hbnRpYyk7Ci0gICAgICAgIElu
bGluZVdhdGNocG9pbnRTZXQmIHNldCA9IGdsb2JhbE9iamVjdC0+YXJyYXlJdGVyYXRvclByb3Rv
Y29sV2F0Y2hwb2ludCgpOworICAgICAgICBJbmxpbmVXYXRjaHBvaW50U2V0JiBzZXQgPSBnbG9i
YWxPYmplY3QtPmFycmF5SXRlcmF0b3JQcm90b2NvbFdhdGNocG9pbnRTZXQoKTsKICAgICAgICAg
cmV0dXJuIGlzV2F0Y2hpbmdHbG9iYWxPYmplY3RXYXRjaHBvaW50KGdsb2JhbE9iamVjdCwgc2V0
KTsKICAgICB9CiAKICAgICBib29sIGlzV2F0Y2hpbmdOdW1iZXJUb1N0cmluZ1dhdGNocG9pbnQo
Tm9kZSogbm9kZSkKICAgICB7CiAgICAgICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qg
PSBnbG9iYWxPYmplY3RGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKTsKLSAgICAgICAgSW5saW5l
V2F0Y2hwb2ludFNldCYgc2V0ID0gZ2xvYmFsT2JqZWN0LT5udW1iZXJUb1N0cmluZ1dhdGNocG9p
bnQoKTsKKyAgICAgICAgSW5saW5lV2F0Y2hwb2ludFNldCYgc2V0ID0gZ2xvYmFsT2JqZWN0LT5u
dW1iZXJUb1N0cmluZ1dhdGNocG9pbnRTZXQoKTsKICAgICAgICAgcmV0dXJuIGlzV2F0Y2hpbmdH
bG9iYWxPYmplY3RXYXRjaHBvaW50KGdsb2JhbE9iamVjdCwgc2V0KTsKICAgICB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcAppbmRleCAw
MTM1MjAyYWYxM2FmYTQ2NWQwY2MxZjIzNWNjMzZjYmU0OTJjZWM5Li5jOWE2NWIwYjJjN2Y3ZmQw
ZDczOGM2MDk2NTYxOThhMGRlYWU4OGFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCkBAIC0xOTYsMTUgKzE5NiwxNSBAQCBBTFdBWVNf
SU5MSU5FIGJvb2wgc3BlY2llc1dhdGNocG9pbnRJc1ZhbGlkKEV4ZWNTdGF0ZSogZXhlYywgSlNP
YmplY3QqIHRoaXNPYmplYwogICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSB0aGlz
T2JqZWN0LT5nbG9iYWxPYmplY3Qodm0pOwogICAgIEFycmF5UHJvdG90eXBlKiBhcnJheVByb3Rv
dHlwZSA9IGdsb2JhbE9iamVjdC0+YXJyYXlQcm90b3R5cGUoKTsKIAotICAgIGlmIChnbG9iYWxP
YmplY3QtPmFycmF5U3BlY2llc1dhdGNocG9pbnQoKS5zdGF0ZU9uSlNUaHJlYWQoKSA9PSBDbGVh
cldhdGNocG9pbnQpIHsKKyAgICBpZiAoZ2xvYmFsT2JqZWN0LT5hcnJheVNwZWNpZXNXYXRjaHBv
aW50U2V0KCkuc3RhdGVPbkpTVGhyZWFkKCkgPT0gQ2xlYXJXYXRjaHBvaW50KSB7CiAgICAgICAg
IGRhdGFMb2dMbklmKEFycmF5UHJvdG90eXBlSW50ZXJuYWw6OnZlcmJvc2UsICJJbml0aWFsaXpp
bmcgQXJyYXkgc3BlY2llcyB3YXRjaHBvaW50cyBmb3IgQXJyYXkucHJvdG90eXBlOiAiLCBwb2lu
dGVyRHVtcChhcnJheVByb3RvdHlwZSksICIgd2l0aCBzdHJ1Y3R1cmU6ICIsIHBvaW50ZXJEdW1w
KGFycmF5UHJvdG90eXBlLT5zdHJ1Y3R1cmUodm0pKSwgIlxuYW5kIEFycmF5OiAiLCBwb2ludGVy
RHVtcChnbG9iYWxPYmplY3QtPmFycmF5Q29uc3RydWN0b3IoKSksICIgd2l0aCBzdHJ1Y3R1cmU6
ICIsIHBvaW50ZXJEdW1wKGdsb2JhbE9iamVjdC0+YXJyYXlDb25zdHJ1Y3RvcigpLT5zdHJ1Y3R1
cmUodm0pKSk7CiAgICAgICAgIGdsb2JhbE9iamVjdC0+dHJ5SW5zdGFsbEFycmF5U3BlY2llc1dh
dGNocG9pbnQoZXhlYyk7Ci0gICAgICAgIEFTU0VSVChnbG9iYWxPYmplY3QtPmFycmF5U3BlY2ll
c1dhdGNocG9pbnQoKS5zdGF0ZU9uSlNUaHJlYWQoKSAhPSBDbGVhcldhdGNocG9pbnQpOworICAg
ICAgICBBU1NFUlQoZ2xvYmFsT2JqZWN0LT5hcnJheVNwZWNpZXNXYXRjaHBvaW50U2V0KCkuc3Rh
dGVPbkpTVGhyZWFkKCkgIT0gQ2xlYXJXYXRjaHBvaW50KTsKICAgICB9CiAKICAgICByZXR1cm4g
IXRoaXNPYmplY3QtPmhhc0N1c3RvbVByb3BlcnRpZXModm0pCiAgICAgICAgICYmIGFycmF5UHJv
dG90eXBlID09IHRoaXNPYmplY3QtPmdldFByb3RvdHlwZURpcmVjdCh2bSkKLSAgICAgICAgJiYg
Z2xvYmFsT2JqZWN0LT5hcnJheVNwZWNpZXNXYXRjaHBvaW50KCkuc3RhdGVPbkpTVGhyZWFkKCkg
PT0gSXNXYXRjaGVkOworICAgICAgICAmJiBnbG9iYWxPYmplY3QtPmFycmF5U3BlY2llc1dhdGNo
cG9pbnRTZXQoKS5zdGF0ZU9uSlNUaHJlYWQoKSA9PSBJc1dhdGNoZWQ7CiB9CiAKIGVudW0gY2xh
c3MgU3BlY2llc0NvbnN0cnVjdFJlc3VsdCB7CkBAIC01NzYsNiArNTc2LDE5IEBAIGlubGluZSBK
U1ZhbHVlIGZhc3RKb2luKEV4ZWNTdGF0ZSYgc3RhdGUsIEpTT2JqZWN0KiB0aGlzT2JqZWN0LCBT
dHJpbmdWaWV3IHNlcGFyCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBqb2luZXIuam9p
bihzdGF0ZSkpOwogfQogCitpbmxpbmUgYm9vbCBpc1RvU3RyaW5nSm9pbkZhc3RBbmROb25PYnNl
cnZhYmxlKFZNJiB2bSwgSlNPYmplY3QqIHRoaXNPYmplY3QpCit7CisgICAgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCA9IHRoaXNPYmplY3QtPmdsb2JhbE9iamVjdCgpOworCisgICAgaWYg
KGdsb2JhbE9iamVjdC0+YXJyYXlKb2luV2F0Y2hwb2ludFNldCgpLnN0YXRlT25KU1RocmVhZCgp
ICE9IElzV2F0Y2hlZCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUgPSB0aGlzT2JqZWN0LT5zdHJ1Y3R1cmUodm0pOworCisgICAgLy8gVGhpcyBpcyB0
aGUgZmFzdCBjYXNlLiBNYW55IGFycmF5cyB3aWxsIGJlIGFuIG9yaWdpbmFsIGFycmF5LgorICAg
IHJldHVybiBnbG9iYWxPYmplY3QtPmlzT3JpZ2luYWxBcnJheVN0cnVjdHVyZShzdHJ1Y3R1cmUp
OworfQorCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jVG9TdHJp
bmcoRXhlY1N0YXRlKiBleGVjKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CkBAIC01ODUs
MjYgKzU5OCwyOCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5j
VG9TdHJpbmcoRXhlY1N0YXRlKiBleGVjKQogICAgIC8vIDEuIExldCBhcnJheSBiZSB0aGUgcmVz
dWx0IG9mIGNhbGxpbmcgVG9PYmplY3Qgb24gdGhlIHRoaXMgdmFsdWUuCiAgICAgSlNPYmplY3Qq
IHRoaXNPYmplY3QgPSB0aGlzVmFsdWUudG9PYmplY3QoZXhlYyk7CiAgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7Ci0gICAgCi0gICAgLy8gMi4gTGV0IGZ1
bmMgYmUgdGhlIHJlc3VsdCBvZiBjYWxsaW5nIHRoZSBbW0dldF1dIGludGVybmFsIG1ldGhvZCBv
ZiBhcnJheSB3aXRoIGFyZ3VtZW50ICJqb2luIi4KLSAgICBKU1ZhbHVlIGZ1bmN0aW9uID0gSlNW
YWx1ZSh0aGlzT2JqZWN0KS5nZXQoZXhlYywgdm0ucHJvcGVydHlOYW1lcy0+am9pbik7Ci0gICAg
UkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAKLSAgICAvLyAz
LiBJZiBJc0NhbGxhYmxlKGZ1bmMpIGlzIGZhbHNlLCB0aGVuIGxldCBmdW5jIGJlIHRoZSBzdGFu
ZGFyZCBidWlsdC1pbiBtZXRob2QgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyAoMTUuMi40LjIp
LgotICAgIGJvb2wgY3VzdG9tSm9pbkNhc2UgPSBmYWxzZTsKLSAgICBpZiAoIWZ1bmN0aW9uLmlz
Q2VsbCgpKQotICAgICAgICBjdXN0b21Kb2luQ2FzZSA9IHRydWU7Ci0gICAgQ2FsbERhdGEgY2Fs
bERhdGE7Ci0gICAgQ2FsbFR5cGUgY2FsbFR5cGUgPSBnZXRDYWxsRGF0YSh2bSwgZnVuY3Rpb24s
IGNhbGxEYXRhKTsKLSAgICBpZiAoY2FsbFR5cGUgPT0gQ2FsbFR5cGU6Ok5vbmUpCi0gICAgICAg
IGN1c3RvbUpvaW5DYXNlID0gdHJ1ZTsKLQotICAgIGlmIChVTkxJS0VMWShjdXN0b21Kb2luQ2Fz
ZSkpCi0gICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGpz
TWFrZU5vbnRyaXZpYWxTdHJpbmcoZXhlYywgIltvYmplY3QgIiwgdGhpc09iamVjdC0+bWV0aG9k
VGFibGUodm0pLT5jbGFzc05hbWUodGhpc09iamVjdCwgdm0pLCAiXSIpKSk7Ci0KLSAgICAvLyA0
LiBSZXR1cm4gdGhlIHJlc3VsdCBvZiBjYWxsaW5nIHRoZSBbW0NhbGxdXSBpbnRlcm5hbCBtZXRo
b2Qgb2YgZnVuYyBwcm92aWRpbmcgYXJyYXkgYXMgdGhlIHRoaXMgdmFsdWUgYW5kIGFuIGVtcHR5
IGFyZ3VtZW50cyBsaXN0LgotICAgIGlmICghaXNKU0FycmF5KHRoaXNPYmplY3QpIHx8IGNhbGxU
eXBlICE9IENhbGxUeXBlOjpIb3N0IHx8IGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiAhPSBhcnJh
eVByb3RvRnVuY0pvaW4pCi0gICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1
ZTo6ZW5jb2RlKGNhbGwoZXhlYywgZnVuY3Rpb24sIGNhbGxUeXBlLCBjYWxsRGF0YSwgdGhpc09i
amVjdCwgKnZtLmVtcHR5TGlzdCkpKTsKKyAgICBpZiAoIWlzVG9TdHJpbmdKb2luRmFzdEFuZE5v
bk9ic2VydmFibGUodm0sIHRoaXNPYmplY3QpKSB7CisgICAgICAgIC8vIDIuIExldCBmdW5jIGJl
IHRoZSByZXN1bHQgb2YgY2FsbGluZyB0aGUgW1tHZXRdXSBpbnRlcm5hbCBtZXRob2Qgb2YgYXJy
YXkgd2l0aCBhcmd1bWVudCAiam9pbiIuCisgICAgICAgIEpTVmFsdWUgZnVuY3Rpb24gPSBKU1Zh
bHVlKHRoaXNPYmplY3QpLmdldChleGVjLCB2bS5wcm9wZXJ0eU5hbWVzLT5qb2luKTsKKyAgICAg
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CisKKyAgICAg
ICAgLy8gMy4gSWYgSXNDYWxsYWJsZShmdW5jKSBpcyBmYWxzZSwgdGhlbiBsZXQgZnVuYyBiZSB0
aGUgc3RhbmRhcmQgYnVpbHQtaW4gbWV0aG9kIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcgKDE1
LjIuNC4yKS4KKyAgICAgICAgYm9vbCBjdXN0b21Kb2luQ2FzZSA9IGZhbHNlOworICAgICAgICBp
ZiAoIWZ1bmN0aW9uLmlzQ2VsbCgpKQorICAgICAgICAgICAgY3VzdG9tSm9pbkNhc2UgPSB0cnVl
OworICAgICAgICBDYWxsRGF0YSBjYWxsRGF0YTsKKyAgICAgICAgQ2FsbFR5cGUgY2FsbFR5cGUg
PSBnZXRDYWxsRGF0YSh2bSwgZnVuY3Rpb24sIGNhbGxEYXRhKTsKKyAgICAgICAgaWYgKGNhbGxU
eXBlID09IENhbGxUeXBlOjpOb25lKQorICAgICAgICAgICAgY3VzdG9tSm9pbkNhc2UgPSB0cnVl
OworCisgICAgICAgIGlmIChVTkxJS0VMWShjdXN0b21Kb2luQ2FzZSkpCisgICAgICAgICAgICBS
RUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShqc01ha2VOb250cml2aWFs
U3RyaW5nKGV4ZWMsICJbb2JqZWN0ICIsIHRoaXNPYmplY3QtPm1ldGhvZFRhYmxlKHZtKS0+Y2xh
c3NOYW1lKHRoaXNPYmplY3QsIHZtKSwgIl0iKSkpOworCisgICAgICAgIC8vIDQuIFJldHVybiB0
aGUgcmVzdWx0IG9mIGNhbGxpbmcgdGhlIFtbQ2FsbF1dIGludGVybmFsIG1ldGhvZCBvZiBmdW5j
IHByb3ZpZGluZyBhcnJheSBhcyB0aGUgdGhpcyB2YWx1ZSBhbmQgYW4gZW1wdHkgYXJndW1lbnRz
IGxpc3QuCisgICAgICAgIGlmICghaXNKU0FycmF5KHRoaXNPYmplY3QpIHx8IGNhbGxUeXBlICE9
IENhbGxUeXBlOjpIb3N0IHx8IGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiAhPSBhcnJheVByb3Rv
RnVuY0pvaW4pCisgICAgICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6
OmVuY29kZShjYWxsKGV4ZWMsIGZ1bmN0aW9uLCBjYWxsVHlwZSwgY2FsbERhdGEsIHRoaXNPYmpl
Y3QsICp2bS5lbXB0eUxpc3QpKSk7CisgICAgfQogCiAgICAgQVNTRVJUKGlzSlNBcnJheSh0aGlz
VmFsdWUpKTsKICAgICBKU0FycmF5KiB0aGlzQXJyYXkgPSBhc0FycmF5KHRoaXNWYWx1ZSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKaW5k
ZXggY2M4Nzc2N2YxMDhiY2M0ODNiMzE1ZjExMmZhOWM1MzQ3ZjUyMDE0NS4uMDg3NTdiZTgyMmQ1
ZWIwZTQxNTQ3NGVhNDRiOTVkMjk4NzE3YjA5ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcApAQCAtNDE3LDE0ICs0MTcsMTUgQEAgSlNH
bG9iYWxPYmplY3Q6OkpTR2xvYmFsT2JqZWN0KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUs
IGNvbnN0IEdsb2JhbE9iamVjdE0KICAgICAsIG1faGF2aW5nQUJhZFRpbWVXYXRjaHBvaW50KGFk
b3B0UmVmKG5ldyBXYXRjaHBvaW50U2V0KElzV2F0Y2hlZCkpKQogICAgICwgbV92YXJJbmplY3Rp
b25XYXRjaHBvaW50KGFkb3B0UmVmKG5ldyBXYXRjaHBvaW50U2V0KElzV2F0Y2hlZCkpKQogICAg
ICwgbV93ZWFrUmFuZG9tKE9wdGlvbnM6OmZvcmNlV2Vha1JhbmRvbVNlZWQoKSA/IE9wdGlvbnM6
OmZvcmNlZFdlYWtSYW5kb21TZWVkKCkgOiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4ocmFuZG9tTnVt
YmVyKCkgKiAoc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpICsgMS4wKSkpCi0g
ICAgLCBtX2FycmF5SXRlcmF0b3JQcm90b2NvbFdhdGNocG9pbnQoSXNXYXRjaGVkKQotICAgICwg
bV9tYXBJdGVyYXRvclByb3RvY29sV2F0Y2hwb2ludChJc1dhdGNoZWQpCi0gICAgLCBtX3NldEl0
ZXJhdG9yUHJvdG9jb2xXYXRjaHBvaW50KElzV2F0Y2hlZCkKLSAgICAsIG1fc3RyaW5nSXRlcmF0
b3JQcm90b2NvbFdhdGNocG9pbnQoSXNXYXRjaGVkKQotICAgICwgbV9tYXBTZXRXYXRjaHBvaW50
KElzV2F0Y2hlZCkKLSAgICAsIG1fc2V0QWRkV2F0Y2hwb2ludChJc1dhdGNoZWQpCi0gICAgLCBt
X2FycmF5U3BlY2llc1dhdGNocG9pbnQoQ2xlYXJXYXRjaHBvaW50KQotICAgICwgbV9udW1iZXJU
b1N0cmluZ1dhdGNocG9pbnQoSXNXYXRjaGVkKQorICAgICwgbV9hcnJheUl0ZXJhdG9yUHJvdG9j
b2xXYXRjaHBvaW50U2V0KElzV2F0Y2hlZCkKKyAgICAsIG1fbWFwSXRlcmF0b3JQcm90b2NvbFdh
dGNocG9pbnRTZXQoSXNXYXRjaGVkKQorICAgICwgbV9zZXRJdGVyYXRvclByb3RvY29sV2F0Y2hw
b2ludFNldChJc1dhdGNoZWQpCisgICAgLCBtX3N0cmluZ0l0ZXJhdG9yUHJvdG9jb2xXYXRjaHBv
aW50U2V0KElzV2F0Y2hlZCkKKyAgICAsIG1fbWFwU2V0V2F0Y2hwb2ludFNldChJc1dhdGNoZWQp
CisgICAgLCBtX3NldEFkZFdhdGNocG9pbnRTZXQoSXNXYXRjaGVkKQorICAgICwgbV9hcnJheVNw
ZWNpZXNXYXRjaHBvaW50U2V0KENsZWFyV2F0Y2hwb2ludCkKKyAgICAsIG1fYXJyYXlKb2luV2F0
Y2hwb2ludFNldChJc1dhdGNoZWQpCisgICAgLCBtX251bWJlclRvU3RyaW5nV2F0Y2hwb2ludFNl
dChJc1dhdGNoZWQpCiAgICAgLCBtX3J1bnRpbWVGbGFncygpCiAgICAgLCBtX3N0YWNrVHJhY2VM
aW1pdChPcHRpb25zOjpkZWZhdWx0RXJyb3JTdGFja1RyYWNlTGltaXQoKSkKICAgICAsIG1fZ2xv
YmFsT2JqZWN0TWV0aG9kVGFibGUoZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgPyBnbG9iYWxPYmpl
Y3RNZXRob2RUYWJsZSA6ICZzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlKQpAQCAtMTE0NSw1NyAr
MTE0Niw2MiBAQCBjYXBpdGFsTmFtZSAjIyBDb25zdHJ1Y3RvciogbG93ZXJOYW1lICMjIENvbnN0
cnVjdG9yID0gZmVhdHVyZUZsYWcgPyBjYXBpdGFsTmFtZQogCiAgICAgewogICAgICAgICBPYmpl
Y3RQcm9wZXJ0eUNvbmRpdGlvbiBjb25kaXRpb24gPSBzZXR1cEFkYXB0aXZlV2F0Y2hwb2ludChh
cnJheUl0ZXJhdG9yUHJvdG90eXBlLCBtX3ZtLnByb3BlcnR5TmFtZXMtPm5leHQpOwotICAgICAg
ICBtX2FycmF5SXRlcmF0b3JQcm90b3R5cGVOZXh0ID0gbWFrZVVuaXF1ZTxPYmplY3RQcm9wZXJ0
eUNoYW5nZUFkYXB0aXZlV2F0Y2hwb2ludDxJbmxpbmVXYXRjaHBvaW50U2V0Pj4odGhpcywgY29u
ZGl0aW9uLCBtX2FycmF5SXRlcmF0b3JQcm90b2NvbFdhdGNocG9pbnQpOworICAgICAgICBtX2Fy
cmF5SXRlcmF0b3JQcm90b3R5cGVOZXh0ID0gbWFrZVVuaXF1ZTxPYmplY3RQcm9wZXJ0eUNoYW5n
ZUFkYXB0aXZlV2F0Y2hwb2ludDxJbmxpbmVXYXRjaHBvaW50U2V0Pj4odGhpcywgY29uZGl0aW9u
LCBtX2FycmF5SXRlcmF0b3JQcm90b2NvbFdhdGNocG9pbnRTZXQpOwogICAgICAgICBtX2FycmF5
SXRlcmF0b3JQcm90b3R5cGVOZXh0LT5pbnN0YWxsKHZtKTsKICAgICB9CiAgICAgewogICAgICAg
ICBPYmplY3RQcm9wZXJ0eUNvbmRpdGlvbiBjb25kaXRpb24gPSBzZXR1cEFkYXB0aXZlV2F0Y2hw
b2ludCh0aGlzLT5hcnJheVByb3RvdHlwZSgpLCBtX3ZtLnByb3BlcnR5TmFtZXMtPml0ZXJhdG9y
U3ltYm9sKTsKLSAgICAgICAgbV9hcnJheVByb3RvdHlwZVN5bWJvbEl0ZXJhdG9yV2F0Y2hwb2lu
dCA9IG1ha2VVbmlxdWU8T2JqZWN0UHJvcGVydHlDaGFuZ2VBZGFwdGl2ZVdhdGNocG9pbnQ8SW5s
aW5lV2F0Y2hwb2ludFNldD4+KHRoaXMsIGNvbmRpdGlvbiwgbV9hcnJheUl0ZXJhdG9yUHJvdG9j
b2xXYXRjaHBvaW50KTsKKyAgICAgICAgbV9hcnJheVByb3RvdHlwZVN5bWJvbEl0ZXJhdG9yV2F0
Y2hwb2ludCA9IG1ha2VVbmlxdWU8T2JqZWN0UHJvcGVydHlDaGFuZ2VBZGFwdGl2ZVdhdGNocG9p
bnQ8SW5saW5lV2F0Y2hwb2ludFNldD4+KHRoaXMsIGNvbmRpdGlvbiwgbV9hcnJheUl0ZXJhdG9y
UHJvdG9jb2xXYXRjaHBvaW50U2V0KTsKICAgICAgICAgbV9hcnJheVByb3RvdHlwZVN5bWJvbEl0
ZXJhdG9yV2F0Y2hwb2ludC0+aW5zdGFsbCh2bSk7CiAgICAgfQorICAgIHsKKyAgICAgICAgT2Jq
ZWN0UHJvcGVydHlDb25kaXRpb24gY29uZGl0aW9uID0gc2V0dXBBZGFwdGl2ZVdhdGNocG9pbnQo
dGhpcy0+YXJyYXlQcm90b3R5cGUoKSwgbV92bS5wcm9wZXJ0eU5hbWVzLT5qb2luKTsKKyAgICAg
ICAgbV9hcnJheVByb3RvdHlwZUpvaW5XYXRjaHBvaW50ID0gbWFrZVVuaXF1ZTxPYmplY3RQcm9w
ZXJ0eUNoYW5nZUFkYXB0aXZlV2F0Y2hwb2ludDxJbmxpbmVXYXRjaHBvaW50U2V0Pj4odGhpcywg
Y29uZGl0aW9uLCBtX2FycmF5Sm9pbldhdGNocG9pbnRTZXQpOworICAgICAgICBtX2FycmF5UHJv
dG90eXBlSm9pbldhdGNocG9pbnQtPmluc3RhbGwodm0pOworICAgIH0KIAogICAgIHsKICAgICAg
ICAgT2JqZWN0UHJvcGVydHlDb25kaXRpb24gY29uZGl0aW9uID0gc2V0dXBBZGFwdGl2ZVdhdGNo
cG9pbnQobWFwSXRlcmF0b3JQcm90b3R5cGUsIG1fdm0ucHJvcGVydHlOYW1lcy0+bmV4dCk7Ci0g
ICAgICAgIG1fbWFwSXRlcmF0b3JQcm90b3R5cGVOZXh0V2F0Y2hwb2ludCA9IG1ha2VVbmlxdWU8
T2JqZWN0UHJvcGVydHlDaGFuZ2VBZGFwdGl2ZVdhdGNocG9pbnQ8SW5saW5lV2F0Y2hwb2ludFNl
dD4+KHRoaXMsIGNvbmRpdGlvbiwgbV9tYXBJdGVyYXRvclByb3RvY29sV2F0Y2hwb2ludCk7Cisg
ICAgICAgIG1fbWFwSXRlcmF0b3JQcm90b3R5cGVOZXh0V2F0Y2hwb2ludCA9IG1ha2VVbmlxdWU8
T2JqZWN0UHJvcGVydHlDaGFuZ2VBZGFwdGl2ZVdhdGNocG9pbnQ8SW5saW5lV2F0Y2hwb2ludFNl
dD4+KHRoaXMsIGNvbmRpdGlvbiwgbV9tYXBJdGVyYXRvclByb3RvY29sV2F0Y2hwb2ludFNldCk7
CiAgICAgICAgIG1fbWFwSXRlcmF0b3JQcm90b3R5cGVOZXh0V2F0Y2hwb2ludC0+aW5zdGFsbCh2
bSk7CiAgICAgfQogICAgIHsKICAgICAgICAgT2JqZWN0UHJvcGVydHlDb25kaXRpb24gY29uZGl0
aW9uID0gc2V0dXBBZGFwdGl2ZVdhdGNocG9pbnQobV9tYXBQcm90b3R5cGUuZ2V0KCksIG1fdm0u
cHJvcGVydHlOYW1lcy0+aXRlcmF0b3JTeW1ib2wpOwotICAgICAgICBtX21hcFByb3RvdHlwZVN5
bWJvbEl0ZXJhdG9yV2F0Y2hwb2ludCA9IG1ha2VVbmlxdWU8T2JqZWN0UHJvcGVydHlDaGFuZ2VB
ZGFwdGl2ZVdhdGNocG9pbnQ8SW5saW5lV2F0Y2hwb2ludFNldD4+KHRoaXMsIGNvbmRpdGlvbiwg
bV9tYXBJdGVyYXRvclByb3RvY29sV2F0Y2hwb2ludCk7CisgICAgICAgIG1fbWFwUHJvdG90eXBl
U3ltYm9sSXRlcmF0b3JXYXRjaHBvaW50ID0gbWFrZVVuaXF1ZTxPYmplY3RQcm9wZXJ0eUNoYW5n
ZUFkYXB0aXZlV2F0Y2hwb2ludDxJbmxpbmVXYXRjaHBvaW50U2V0Pj4odGhpcywgY29uZGl0aW9u
LCBtX21hcEl0ZXJhdG9yUHJvdG9jb2xXYXRjaHBvaW50U2V0KTsKICAgICAgICAgbV9tYXBQcm90
b3R5cGVTeW1ib2xJdGVyYXRvcldhdGNocG9pbnQtPmluc3RhbGwodm0pOwogICAgIH0KIAogICAg
IHsKICAgICAgICAgT2JqZWN0UHJvcGVydHlDb25kaXRpb24gY29uZGl0aW9uID0gc2V0dXBBZGFw
dGl2ZVdhdGNocG9pbnQoc2V0SXRlcmF0b3JQcm90b3R5cGUsIG1fdm0ucHJvcGVydHlOYW1lcy0+
bmV4dCk7Ci0gICAgICAgIG1fc2V0SXRlcmF0b3JQcm90b3R5cGVOZXh0V2F0Y2hwb2ludCA9IG1h
a2VVbmlxdWU8T2JqZWN0UHJvcGVydHlDaGFuZ2VBZGFwdGl2ZVdhdGNocG9pbnQ8SW5saW5lV2F0
Y2hwb2ludFNldD4+KHRoaXMsIGNvbmRpdGlvbiwgbV9zZXRJdGVyYXRvclByb3RvY29sV2F0Y2hw
b2ludCk7CisgICAgICAgIG1fc2V0SXRlcmF0b3JQcm90b3R5cGVOZXh0V2F0Y2hwb2ludCA9IG1h
a2VVbmlxdWU8T2JqZWN0UHJvcGVydHlDaGFuZ2VBZGFwdGl2ZVdhdGNocG9pbnQ8SW5saW5lV2F0
Y2hwb2ludFNldD4+KHRoaXMsIGNvbmRpdGlvbiwgbV9zZXRJdGVyYXRvclByb3RvY29sV2F0Y2hw
b2ludFNldCk7CiAgICAgICAgIG1fc2V0SXRlcmF0b3JQcm90b3R5cGVOZXh0V2F0Y2hwb2ludC0+
aW5zdGFsbCh2bSk7CiAgICAgfQogICAgIHsKICAgICAgICAgT2JqZWN0UHJvcGVydHlDb25kaXRp
b24gY29uZGl0aW9uID0gc2V0dXBBZGFwdGl2ZVdhdGNocG9pbnQobV9zZXRQcm90b3R5cGUuZ2V0
KCksIG1fdm0ucHJvcGVydHlOYW1lcy0+aXRlcmF0b3JTeW1ib2wpOwotICAgICAgICBtX3NldFBy
b3RvdHlwZVN5bWJvbEl0ZXJhdG9yV2F0Y2hwb2ludCA9IG1ha2VVbmlxdWU8T2JqZWN0UHJvcGVy
dHlDaGFuZ2VBZGFwdGl2ZVdhdGNocG9pbnQ8SW5saW5lV2F0Y2hwb2ludFNldD4+KHRoaXMsIGNv
bmRpdGlvbiwgbV9zZXRJdGVyYXRvclByb3RvY29sV2F0Y2hwb2ludCk7CisgICAgICAgIG1fc2V0
UHJvdG90eXBlU3ltYm9sSXRlcmF0b3JXYXRjaHBvaW50ID0gbWFrZVVuaXF1ZTxPYmplY3RQcm9w
ZXJ0eUNoYW5nZUFkYXB0aXZlV2F0Y2hwb2ludDxJbmxpbmVXYXRjaHBvaW50U2V0Pj4odGhpcywg
Y29uZGl0aW9uLCBtX3NldEl0ZXJhdG9yUHJvdG9jb2xXYXRjaHBvaW50U2V0KTsKICAgICAgICAg
bV9zZXRQcm90b3R5cGVTeW1ib2xJdGVyYXRvcldhdGNocG9pbnQtPmluc3RhbGwodm0pOwogICAg
IH0KIAogICAgIHsKICAgICAgICAgT2JqZWN0UHJvcGVydHlDb25kaXRpb24gY29uZGl0aW9uID0g
c2V0dXBBZGFwdGl2ZVdhdGNocG9pbnQobV9zdHJpbmdJdGVyYXRvclByb3RvdHlwZS5nZXQoKSwg
bV92bS5wcm9wZXJ0eU5hbWVzLT5uZXh0KTsKLSAgICAgICAgbV9zdHJpbmdJdGVyYXRvclByb3Rv
dHlwZU5leHRXYXRjaHBvaW50ID0gbWFrZVVuaXF1ZTxPYmplY3RQcm9wZXJ0eUNoYW5nZUFkYXB0
aXZlV2F0Y2hwb2ludDxJbmxpbmVXYXRjaHBvaW50U2V0Pj4odGhpcywgY29uZGl0aW9uLCBtX3N0
cmluZ0l0ZXJhdG9yUHJvdG9jb2xXYXRjaHBvaW50KTsKKyAgICAgICAgbV9zdHJpbmdJdGVyYXRv
clByb3RvdHlwZU5leHRXYXRjaHBvaW50ID0gbWFrZVVuaXF1ZTxPYmplY3RQcm9wZXJ0eUNoYW5n
ZUFkYXB0aXZlV2F0Y2hwb2ludDxJbmxpbmVXYXRjaHBvaW50U2V0Pj4odGhpcywgY29uZGl0aW9u
LCBtX3N0cmluZ0l0ZXJhdG9yUHJvdG9jb2xXYXRjaHBvaW50U2V0KTsKICAgICAgICAgbV9zdHJp
bmdJdGVyYXRvclByb3RvdHlwZU5leHRXYXRjaHBvaW50LT5pbnN0YWxsKHZtKTsKICAgICB9CiAg
ICAgewogICAgICAgICBPYmplY3RQcm9wZXJ0eUNvbmRpdGlvbiBjb25kaXRpb24gPSBzZXR1cEFk
YXB0aXZlV2F0Y2hwb2ludChtX3N0cmluZ1Byb3RvdHlwZS5nZXQoKSwgbV92bS5wcm9wZXJ0eU5h
bWVzLT5pdGVyYXRvclN5bWJvbCk7Ci0gICAgICAgIG1fc3RyaW5nUHJvdG90eXBlU3ltYm9sSXRl
cmF0b3JXYXRjaHBvaW50ID0gbWFrZVVuaXF1ZTxPYmplY3RQcm9wZXJ0eUNoYW5nZUFkYXB0aXZl
V2F0Y2hwb2ludDxJbmxpbmVXYXRjaHBvaW50U2V0Pj4odGhpcywgY29uZGl0aW9uLCBtX3N0cmlu
Z0l0ZXJhdG9yUHJvdG9jb2xXYXRjaHBvaW50KTsKKyAgICAgICAgbV9zdHJpbmdQcm90b3R5cGVT
eW1ib2xJdGVyYXRvcldhdGNocG9pbnQgPSBtYWtlVW5pcXVlPE9iamVjdFByb3BlcnR5Q2hhbmdl
QWRhcHRpdmVXYXRjaHBvaW50PElubGluZVdhdGNocG9pbnRTZXQ+Pih0aGlzLCBjb25kaXRpb24s
IG1fc3RyaW5nSXRlcmF0b3JQcm90b2NvbFdhdGNocG9pbnRTZXQpOwogICAgICAgICBtX3N0cmlu
Z1Byb3RvdHlwZVN5bWJvbEl0ZXJhdG9yV2F0Y2hwb2ludC0+aW5zdGFsbCh2bSk7CiAgICAgfQog
CiAgICAgewogICAgICAgICBPYmplY3RQcm9wZXJ0eUNvbmRpdGlvbiBjb25kaXRpb24gPSBzZXR1
cEFkYXB0aXZlV2F0Y2hwb2ludChtX21hcFByb3RvdHlwZS5nZXQoKSwgbV92bS5wcm9wZXJ0eU5h
bWVzLT5zZXQpOwotICAgICAgICBtX21hcFByb3RvdHlwZVNldFdhdGNocG9pbnQgPSBtYWtlVW5p
cXVlPE9iamVjdFByb3BlcnR5Q2hhbmdlQWRhcHRpdmVXYXRjaHBvaW50PElubGluZVdhdGNocG9p
bnRTZXQ+Pih0aGlzLCBjb25kaXRpb24sIG1fbWFwU2V0V2F0Y2hwb2ludCk7CisgICAgICAgIG1f
bWFwUHJvdG90eXBlU2V0V2F0Y2hwb2ludCA9IG1ha2VVbmlxdWU8T2JqZWN0UHJvcGVydHlDaGFu
Z2VBZGFwdGl2ZVdhdGNocG9pbnQ8SW5saW5lV2F0Y2hwb2ludFNldD4+KHRoaXMsIGNvbmRpdGlv
biwgbV9tYXBTZXRXYXRjaHBvaW50U2V0KTsKICAgICAgICAgbV9tYXBQcm90b3R5cGVTZXRXYXRj
aHBvaW50LT5pbnN0YWxsKHZtKTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIE9iamVjdFByb3Bl
cnR5Q29uZGl0aW9uIGNvbmRpdGlvbiA9IHNldHVwQWRhcHRpdmVXYXRjaHBvaW50KG1fc2V0UHJv
dG90eXBlLmdldCgpLCBtX3ZtLnByb3BlcnR5TmFtZXMtPmFkZCk7Ci0gICAgICAgIG1fc2V0UHJv
dG90eXBlQWRkV2F0Y2hwb2ludCA9IG1ha2VVbmlxdWU8T2JqZWN0UHJvcGVydHlDaGFuZ2VBZGFw
dGl2ZVdhdGNocG9pbnQ8SW5saW5lV2F0Y2hwb2ludFNldD4+KHRoaXMsIGNvbmRpdGlvbiwgbV9z
ZXRBZGRXYXRjaHBvaW50KTsKKyAgICAgICAgbV9zZXRQcm90b3R5cGVBZGRXYXRjaHBvaW50ID0g
bWFrZVVuaXF1ZTxPYmplY3RQcm9wZXJ0eUNoYW5nZUFkYXB0aXZlV2F0Y2hwb2ludDxJbmxpbmVX
YXRjaHBvaW50U2V0Pj4odGhpcywgY29uZGl0aW9uLCBtX3NldEFkZFdhdGNocG9pbnRTZXQpOwog
ICAgICAgICBtX3NldFByb3RvdHlwZUFkZFdhdGNocG9pbnQtPmluc3RhbGwodm0pOwogICAgIH0K
IApAQCAtMTIwNiw3ICsxMjEyLDcgQEAgY2FwaXRhbE5hbWUgIyMgQ29uc3RydWN0b3IqIGxvd2Vy
TmFtZSAjIyBDb25zdHJ1Y3RvciA9IGZlYXR1cmVGbGFnID8gY2FwaXRhbE5hbWUKICAgICAgICAg
dGhpcy0+c3ltYm9sUHJvdG90eXBlKCk7CiAKICAgICAgICAgT2JqZWN0UHJvcGVydHlDb25kaXRp
b24gY29uZGl0aW9uID0gc2V0dXBBZGFwdGl2ZVdhdGNocG9pbnQobnVtYmVyUHJvdG90eXBlLCBt
X3ZtLnByb3BlcnR5TmFtZXMtPnRvU3RyaW5nKTsKLSAgICAgICAgbV9udW1iZXJQcm90b3R5cGVU
b1N0cmluZ1dhdGNocG9pbnQgPSBtYWtlVW5pcXVlPE9iamVjdFByb3BlcnR5Q2hhbmdlQWRhcHRp
dmVXYXRjaHBvaW50PElubGluZVdhdGNocG9pbnRTZXQ+Pih0aGlzLCBjb25kaXRpb24sIG1fbnVt
YmVyVG9TdHJpbmdXYXRjaHBvaW50KTsKKyAgICAgICAgbV9udW1iZXJQcm90b3R5cGVUb1N0cmlu
Z1dhdGNocG9pbnQgPSBtYWtlVW5pcXVlPE9iamVjdFByb3BlcnR5Q2hhbmdlQWRhcHRpdmVXYXRj
aHBvaW50PElubGluZVdhdGNocG9pbnRTZXQ+Pih0aGlzLCBjb25kaXRpb24sIG1fbnVtYmVyVG9T
dHJpbmdXYXRjaHBvaW50U2V0KTsKICAgICAgICAgbV9udW1iZXJQcm90b3R5cGVUb1N0cmluZ1dh
dGNocG9pbnQtPmluc3RhbGwodm0pOwogICAgICAgICBtX251bWJlclByb3RvVG9TdHJpbmdGdW5j
dGlvbi5zZXQodm0sIHRoaXMsIGpzQ2FzdDxKU0Z1bmN0aW9uKj4obnVtYmVyUHJvdG90eXBlLT5n
ZXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPnRvU3RyaW5nKSkpOwogICAgIH0KQEAgLTE4
ODksNyArMTg5NSw3IEBAIHZvaWQgSlNHbG9iYWxPYmplY3Q6OnRyeUluc3RhbGxBcnJheVNwZWNp
ZXNXYXRjaHBvaW50KEV4ZWNTdGF0ZSogZXhlYykKICAgICBBcnJheUNvbnN0cnVjdG9yKiBhcnJh
eUNvbnN0cnVjdG9yID0gdGhpcy0+YXJyYXlDb25zdHJ1Y3RvcigpOwogCiAgICAgYXV0byBpbnZh
bGlkYXRlV2F0Y2hwb2ludCA9IFsmXSB7Ci0gICAgICAgIG1fYXJyYXlTcGVjaWVzV2F0Y2hwb2lu
dC5pbnZhbGlkYXRlKHZtLCBTdHJpbmdGaXJlRGV0YWlsKCJXYXMgbm90IGFibGUgdG8gc2V0IHVw
IGFycmF5IHNwZWNpZXMgd2F0Y2hwb2ludC4iKSk7CisgICAgICAgIG1fYXJyYXlTcGVjaWVzV2F0
Y2hwb2ludFNldC5pbnZhbGlkYXRlKHZtLCBTdHJpbmdGaXJlRGV0YWlsKCJXYXMgbm90IGFibGUg
dG8gc2V0IHVwIGFycmF5IHNwZWNpZXMgd2F0Y2hwb2ludC4iKSk7CiAgICAgfTsKIAogICAgIFBy
b3BlcnR5U2xvdCBjb25zdHJ1Y3RvclNsb3QoYXJyYXlQcm90b3R5cGUsIFByb3BlcnR5U2xvdDo6
SW50ZXJuYWxNZXRob2RUeXBlOjpWTUlucXVpcnkpOwpAQCAtMTkyOSwxMyArMTkzNSwxMyBAQCB2
b2lkIEpTR2xvYmFsT2JqZWN0Ojp0cnlJbnN0YWxsQXJyYXlTcGVjaWVzV2F0Y2hwb2ludChFeGVj
U3RhdGUqIGV4ZWMpCiAgICAgfQogCiAgICAgLy8gV2Ugb25seSB3YXRjaCB0aGlzIGZyb20gdGhl
IERGRywgYW5kIHRoZSBERkcgbWFrZXMgc3VyZSB0byBvbmx5IHN0YXJ0IHdhdGNoaW5nIGlmIHRo
ZSB3YXRjaHBvaW50IGlzIGluIHRoZSBJc1dhdGNoZWQgc3RhdGUuCi0gICAgUkVMRUFTRV9BU1NF
UlQoIW1fYXJyYXlTcGVjaWVzV2F0Y2hwb2ludC5pc0JlaW5nV2F0Y2hlZCgpKTsKLSAgICBtX2Fy
cmF5U3BlY2llc1dhdGNocG9pbnQudG91Y2godm0sICJTZXQgdXAgYXJyYXkgc3BlY2llcyB3YXRj
aHBvaW50LiIpOworICAgIFJFTEVBU0VfQVNTRVJUKCFtX2FycmF5U3BlY2llc1dhdGNocG9pbnRT
ZXQuaXNCZWluZ1dhdGNoZWQoKSk7CisgICAgbV9hcnJheVNwZWNpZXNXYXRjaHBvaW50U2V0LnRv
dWNoKHZtLCAiU2V0IHVwIGFycmF5IHNwZWNpZXMgd2F0Y2hwb2ludC4iKTsKIAotICAgIG1fYXJy
YXlQcm90b3R5cGVDb25zdHJ1Y3RvcldhdGNocG9pbnQgPSBtYWtlVW5pcXVlPE9iamVjdFByb3Bl
cnR5Q2hhbmdlQWRhcHRpdmVXYXRjaHBvaW50PElubGluZVdhdGNocG9pbnRTZXQ+Pih0aGlzLCBj
b25zdHJ1Y3RvckNvbmRpdGlvbiwgbV9hcnJheVNwZWNpZXNXYXRjaHBvaW50KTsKKyAgICBtX2Fy
cmF5UHJvdG90eXBlQ29uc3RydWN0b3JXYXRjaHBvaW50ID0gbWFrZVVuaXF1ZTxPYmplY3RQcm9w
ZXJ0eUNoYW5nZUFkYXB0aXZlV2F0Y2hwb2ludDxJbmxpbmVXYXRjaHBvaW50U2V0Pj4odGhpcywg
Y29uc3RydWN0b3JDb25kaXRpb24sIG1fYXJyYXlTcGVjaWVzV2F0Y2hwb2ludFNldCk7CiAgICAg
bV9hcnJheVByb3RvdHlwZUNvbnN0cnVjdG9yV2F0Y2hwb2ludC0+aW5zdGFsbCh2bSk7CiAKLSAg
ICBtX2FycmF5Q29uc3RydWN0b3JTcGVjaWVzV2F0Y2hwb2ludCA9IG1ha2VVbmlxdWU8T2JqZWN0
UHJvcGVydHlDaGFuZ2VBZGFwdGl2ZVdhdGNocG9pbnQ8SW5saW5lV2F0Y2hwb2ludFNldD4+KHRo
aXMsIHNwZWNpZXNDb25kaXRpb24sIG1fYXJyYXlTcGVjaWVzV2F0Y2hwb2ludCk7CisgICAgbV9h
cnJheUNvbnN0cnVjdG9yU3BlY2llc1dhdGNocG9pbnQgPSBtYWtlVW5pcXVlPE9iamVjdFByb3Bl
cnR5Q2hhbmdlQWRhcHRpdmVXYXRjaHBvaW50PElubGluZVdhdGNocG9pbnRTZXQ+Pih0aGlzLCBz
cGVjaWVzQ29uZGl0aW9uLCBtX2FycmF5U3BlY2llc1dhdGNocG9pbnRTZXQpOwogICAgIG1fYXJy
YXlDb25zdHJ1Y3RvclNwZWNpZXNXYXRjaHBvaW50LT5pbnN0YWxsKHZtKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKaW5kZXggODQ1MzVj
YTVjNjAwY2VjYmQ4YjQ3OGY2NWI1M2NkMDdlMzZhODM5ZC4uZjUwYWZhNmE2N2NiNjZlZWE1Njdl
MjkzZWM0YjZlMjY0MWY5N2E5NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNHbG9iYWxPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0dsb2JhbE9iamVjdC5oCkBAIC00NTIsMzEgKzQ1MiwzNCBAQCBjbGFzcyBKU0dsb2JhbE9i
amVjdCA6IHB1YmxpYyBKU1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0IHsKIAogICAgIEpTQ2FsbGVl
KiBzdGFja092ZXJmbG93RnJhbWVDYWxsZWUoKSBjb25zdCB7IHJldHVybiBtX3N0YWNrT3ZlcmZs
b3dGcmFtZUNhbGxlZS5nZXQoKTsgfQogCi0gICAgSW5saW5lV2F0Y2hwb2ludFNldCYgYXJyYXlJ
dGVyYXRvclByb3RvY29sV2F0Y2hwb2ludCgpIHsgcmV0dXJuIG1fYXJyYXlJdGVyYXRvclByb3Rv
Y29sV2F0Y2hwb2ludDsgfQotICAgIElubGluZVdhdGNocG9pbnRTZXQmIG1hcEl0ZXJhdG9yUHJv
dG9jb2xXYXRjaHBvaW50KCkgeyByZXR1cm4gbV9tYXBJdGVyYXRvclByb3RvY29sV2F0Y2hwb2lu
dDsgfQotICAgIElubGluZVdhdGNocG9pbnRTZXQmIHNldEl0ZXJhdG9yUHJvdG9jb2xXYXRjaHBv
aW50KCkgeyByZXR1cm4gbV9zZXRJdGVyYXRvclByb3RvY29sV2F0Y2hwb2ludDsgfQotICAgIElu
bGluZVdhdGNocG9pbnRTZXQmIHN0cmluZ0l0ZXJhdG9yUHJvdG9jb2xXYXRjaHBvaW50KCkgeyBy
ZXR1cm4gbV9zdHJpbmdJdGVyYXRvclByb3RvY29sV2F0Y2hwb2ludDsgfQotICAgIElubGluZVdh
dGNocG9pbnRTZXQmIG1hcFNldFdhdGNocG9pbnQoKSB7IHJldHVybiBtX21hcFNldFdhdGNocG9p
bnQ7IH0KLSAgICBJbmxpbmVXYXRjaHBvaW50U2V0JiBzZXRBZGRXYXRjaHBvaW50KCkgeyByZXR1
cm4gbV9zZXRBZGRXYXRjaHBvaW50OyB9Ci0gICAgSW5saW5lV2F0Y2hwb2ludFNldCYgYXJyYXlT
cGVjaWVzV2F0Y2hwb2ludCgpIHsgcmV0dXJuIG1fYXJyYXlTcGVjaWVzV2F0Y2hwb2ludDsgfQot
ICAgIElubGluZVdhdGNocG9pbnRTZXQmIG51bWJlclRvU3RyaW5nV2F0Y2hwb2ludCgpCisgICAg
SW5saW5lV2F0Y2hwb2ludFNldCYgYXJyYXlJdGVyYXRvclByb3RvY29sV2F0Y2hwb2ludFNldCgp
IHsgcmV0dXJuIG1fYXJyYXlJdGVyYXRvclByb3RvY29sV2F0Y2hwb2ludFNldDsgfQorICAgIElu
bGluZVdhdGNocG9pbnRTZXQmIG1hcEl0ZXJhdG9yUHJvdG9jb2xXYXRjaHBvaW50U2V0KCkgeyBy
ZXR1cm4gbV9tYXBJdGVyYXRvclByb3RvY29sV2F0Y2hwb2ludFNldDsgfQorICAgIElubGluZVdh
dGNocG9pbnRTZXQmIHNldEl0ZXJhdG9yUHJvdG9jb2xXYXRjaHBvaW50U2V0KCkgeyByZXR1cm4g
bV9zZXRJdGVyYXRvclByb3RvY29sV2F0Y2hwb2ludFNldDsgfQorICAgIElubGluZVdhdGNocG9p
bnRTZXQmIHN0cmluZ0l0ZXJhdG9yUHJvdG9jb2xXYXRjaHBvaW50U2V0KCkgeyByZXR1cm4gbV9z
dHJpbmdJdGVyYXRvclByb3RvY29sV2F0Y2hwb2ludFNldDsgfQorICAgIElubGluZVdhdGNocG9p
bnRTZXQmIG1hcFNldFdhdGNocG9pbnRTZXQoKSB7IHJldHVybiBtX21hcFNldFdhdGNocG9pbnRT
ZXQ7IH0KKyAgICBJbmxpbmVXYXRjaHBvaW50U2V0JiBzZXRBZGRXYXRjaHBvaW50U2V0KCkgeyBy
ZXR1cm4gbV9zZXRBZGRXYXRjaHBvaW50U2V0OyB9CisgICAgSW5saW5lV2F0Y2hwb2ludFNldCYg
YXJyYXlTcGVjaWVzV2F0Y2hwb2ludFNldCgpIHsgcmV0dXJuIG1fYXJyYXlTcGVjaWVzV2F0Y2hw
b2ludFNldDsgfQorICAgIElubGluZVdhdGNocG9pbnRTZXQmIGFycmF5Sm9pbldhdGNocG9pbnRT
ZXQoKSB7IHJldHVybiBtX2FycmF5Sm9pbldhdGNocG9pbnRTZXQ7IH0KKyAgICBJbmxpbmVXYXRj
aHBvaW50U2V0JiBudW1iZXJUb1N0cmluZ1dhdGNocG9pbnRTZXQoKQogICAgIHsKICAgICAgICAg
UkVMRUFTRV9BU1NFUlQoVk06OmNhblVzZUpJVCgpKTsKLSAgICAgICAgcmV0dXJuIG1fbnVtYmVy
VG9TdHJpbmdXYXRjaHBvaW50OworICAgICAgICByZXR1cm4gbV9udW1iZXJUb1N0cmluZ1dhdGNo
cG9pbnRTZXQ7CiAgICAgfQogICAgIC8vIElmIHRoaXMgaGFzbid0IGJlZW4gaW52YWxpZGF0ZWQs
IGl0IG1lYW5zIHRoZSBhcnJheSBpdGVyYXRvciBwcm90b2NvbAogICAgIC8vIGlzIG5vdCBvYnNl
cnZhYmxlIHRvIHVzZXIgY29kZSB5ZXQuCi0gICAgSW5saW5lV2F0Y2hwb2ludFNldCBtX2FycmF5
SXRlcmF0b3JQcm90b2NvbFdhdGNocG9pbnQ7Ci0gICAgSW5saW5lV2F0Y2hwb2ludFNldCBtX21h
cEl0ZXJhdG9yUHJvdG9jb2xXYXRjaHBvaW50OwotICAgIElubGluZVdhdGNocG9pbnRTZXQgbV9z
ZXRJdGVyYXRvclByb3RvY29sV2F0Y2hwb2ludDsKLSAgICBJbmxpbmVXYXRjaHBvaW50U2V0IG1f
c3RyaW5nSXRlcmF0b3JQcm90b2NvbFdhdGNocG9pbnQ7Ci0gICAgSW5saW5lV2F0Y2hwb2ludFNl
dCBtX21hcFNldFdhdGNocG9pbnQ7Ci0gICAgSW5saW5lV2F0Y2hwb2ludFNldCBtX3NldEFkZFdh
dGNocG9pbnQ7Ci0gICAgSW5saW5lV2F0Y2hwb2ludFNldCBtX2FycmF5U3BlY2llc1dhdGNocG9p
bnQ7Ci0gICAgSW5saW5lV2F0Y2hwb2ludFNldCBtX251bWJlclRvU3RyaW5nV2F0Y2hwb2ludDsK
KyAgICBJbmxpbmVXYXRjaHBvaW50U2V0IG1fYXJyYXlJdGVyYXRvclByb3RvY29sV2F0Y2hwb2lu
dFNldDsKKyAgICBJbmxpbmVXYXRjaHBvaW50U2V0IG1fbWFwSXRlcmF0b3JQcm90b2NvbFdhdGNo
cG9pbnRTZXQ7CisgICAgSW5saW5lV2F0Y2hwb2ludFNldCBtX3NldEl0ZXJhdG9yUHJvdG9jb2xX
YXRjaHBvaW50U2V0OworICAgIElubGluZVdhdGNocG9pbnRTZXQgbV9zdHJpbmdJdGVyYXRvclBy
b3RvY29sV2F0Y2hwb2ludFNldDsKKyAgICBJbmxpbmVXYXRjaHBvaW50U2V0IG1fbWFwU2V0V2F0
Y2hwb2ludFNldDsKKyAgICBJbmxpbmVXYXRjaHBvaW50U2V0IG1fc2V0QWRkV2F0Y2hwb2ludFNl
dDsKKyAgICBJbmxpbmVXYXRjaHBvaW50U2V0IG1fYXJyYXlTcGVjaWVzV2F0Y2hwb2ludFNldDsK
KyAgICBJbmxpbmVXYXRjaHBvaW50U2V0IG1fYXJyYXlKb2luV2F0Y2hwb2ludFNldDsKKyAgICBJ
bmxpbmVXYXRjaHBvaW50U2V0IG1fbnVtYmVyVG9TdHJpbmdXYXRjaHBvaW50U2V0OwogICAgIHN0
ZDo6dW5pcXVlX3B0cjxPYmplY3RQcm9wZXJ0eUNoYW5nZUFkYXB0aXZlV2F0Y2hwb2ludDxJbmxp
bmVXYXRjaHBvaW50U2V0Pj4gbV9hcnJheUNvbnN0cnVjdG9yU3BlY2llc1dhdGNocG9pbnQ7CiAg
ICAgc3RkOjp1bmlxdWVfcHRyPE9iamVjdFByb3BlcnR5Q2hhbmdlQWRhcHRpdmVXYXRjaHBvaW50
PElubGluZVdhdGNocG9pbnRTZXQ+PiBtX2FycmF5UHJvdG90eXBlQ29uc3RydWN0b3JXYXRjaHBv
aW50OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxPYmplY3RQcm9wZXJ0eUNoYW5nZUFkYXB0aXZlV2F0
Y2hwb2ludDxJbmxpbmVXYXRjaHBvaW50U2V0Pj4gbV9hcnJheVByb3RvdHlwZVN5bWJvbEl0ZXJh
dG9yV2F0Y2hwb2ludDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8T2JqZWN0UHJvcGVydHlDaGFuZ2VB
ZGFwdGl2ZVdhdGNocG9pbnQ8SW5saW5lV2F0Y2hwb2ludFNldD4+IG1fYXJyYXlQcm90b3R5cGVK
b2luV2F0Y2hwb2ludDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8T2JqZWN0UHJvcGVydHlDaGFuZ2VB
ZGFwdGl2ZVdhdGNocG9pbnQ8SW5saW5lV2F0Y2hwb2ludFNldD4+IG1fYXJyYXlJdGVyYXRvclBy
b3RvdHlwZU5leHQ7CiAgICAgc3RkOjp1bmlxdWVfcHRyPE9iamVjdFByb3BlcnR5Q2hhbmdlQWRh
cHRpdmVXYXRjaHBvaW50PElubGluZVdhdGNocG9pbnRTZXQ+PiBtX21hcFByb3RvdHlwZVN5bWJv
bEl0ZXJhdG9yV2F0Y2hwb2ludDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8T2JqZWN0UHJvcGVydHlD
aGFuZ2VBZGFwdGl2ZVdhdGNocG9pbnQ8SW5saW5lV2F0Y2hwb2ludFNldD4+IG1fbWFwSXRlcmF0
b3JQcm90b3R5cGVOZXh0V2F0Y2hwb2ludDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0SW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RJbmxpbmVzLmgKaW5kZXggOTRhZDZiNmNhMTVkYzdh
ODRhM2I0OGYxMGVlNTY1ODIxZTFhMWU4My4uNTUyMmQ4ZWU0NWIyNGQ4YzRkMjg0NDA4NWEzMTA3
MWMxZWRmMDA4ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNH
bG9iYWxPYmplY3RJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNHbG9iYWxPYmplY3RJbmxpbmVzLmgKQEAgLTYyLDcgKzYyLDcgQEAgQUxXQVlTX0lOTElORSBi
b29sIEpTR2xvYmFsT2JqZWN0Ojppc0FycmF5UHJvdG90eXBlSXRlcmF0b3JQcm90b2NvbEZhc3RB
bmROb25PYnMKICAgICAvLyBjYXJlZnVsbHkgc2V0IHVwIHdhdGNocG9pbnRzIHRvIGhhdmUgY29y
cmVjdCBvcmRlcmluZyB3aGlsZSBKUyBjb2RlIGlzCiAgICAgLy8gZXhlY3V0aW5nIGNvbmN1cnJl
bnRseS4KIAotICAgIHJldHVybiBhcnJheUl0ZXJhdG9yUHJvdG9jb2xXYXRjaHBvaW50KCkuaXNT
dGlsbFZhbGlkKCkgJiYgIWlzSGF2aW5nQUJhZFRpbWUoKSAmJiBhcnJheVByb3RvdHlwZUNoYWlu
SXNTYW5lKCk7CisgICAgcmV0dXJuIGFycmF5SXRlcmF0b3JQcm90b2NvbFdhdGNocG9pbnRTZXQo
KS5pc1N0aWxsVmFsaWQoKSAmJiAhaXNIYXZpbmdBQmFkVGltZSgpICYmIGFycmF5UHJvdG90eXBl
Q2hhaW5Jc1NhbmUoKTsKIH0KIAogLy8gV2UncmUgbm9uLW9ic2VydmFibGUgaWYgdGhlIGl0ZXJh
dGlvbiBwcm90b2NvbCBoYXNuJ3QgY2hhbmdlZC4KQEAgLTczLDI3ICs3MywyNyBAQCBBTFdBWVNf
SU5MSU5FIGJvb2wgSlNHbG9iYWxPYmplY3Q6OmlzQXJyYXlQcm90b3R5cGVJdGVyYXRvclByb3Rv
Y29sRmFzdEFuZE5vbk9icwogLy8gZXhlY3V0aW5nIGNvbmN1cnJlbnRseS4KIEFMV0FZU19JTkxJ
TkUgYm9vbCBKU0dsb2JhbE9iamVjdDo6aXNNYXBQcm90b3R5cGVJdGVyYXRvclByb3RvY29sRmFz
dEFuZE5vbk9ic2VydmFibGUoKQogewotICAgIHJldHVybiBtYXBJdGVyYXRvclByb3RvY29sV2F0
Y2hwb2ludCgpLmlzU3RpbGxWYWxpZCgpOworICAgIHJldHVybiBtYXBJdGVyYXRvclByb3RvY29s
V2F0Y2hwb2ludFNldCgpLmlzU3RpbGxWYWxpZCgpOwogfQogCiBBTFdBWVNfSU5MSU5FIGJvb2wg
SlNHbG9iYWxPYmplY3Q6OmlzU2V0UHJvdG90eXBlSXRlcmF0b3JQcm90b2NvbEZhc3RBbmROb25P
YnNlcnZhYmxlKCkKIHsKLSAgICByZXR1cm4gc2V0SXRlcmF0b3JQcm90b2NvbFdhdGNocG9pbnQo
KS5pc1N0aWxsVmFsaWQoKTsKKyAgICByZXR1cm4gc2V0SXRlcmF0b3JQcm90b2NvbFdhdGNocG9p
bnRTZXQoKS5pc1N0aWxsVmFsaWQoKTsKIH0KIAogQUxXQVlTX0lOTElORSBib29sIEpTR2xvYmFs
T2JqZWN0Ojppc1N0cmluZ1Byb3RvdHlwZUl0ZXJhdG9yUHJvdG9jb2xGYXN0QW5kTm9uT2JzZXJ2
YWJsZSgpCiB7Ci0gICAgcmV0dXJuIHN0cmluZ0l0ZXJhdG9yUHJvdG9jb2xXYXRjaHBvaW50KCku
aXNTdGlsbFZhbGlkKCk7CisgICAgcmV0dXJuIHN0cmluZ0l0ZXJhdG9yUHJvdG9jb2xXYXRjaHBv
aW50U2V0KCkuaXNTdGlsbFZhbGlkKCk7CiB9CiAKIEFMV0FZU19JTkxJTkUgYm9vbCBKU0dsb2Jh
bE9iamVjdDo6aXNNYXBQcm90b3R5cGVTZXRGYXN0QW5kTm9uT2JzZXJ2YWJsZSgpCiB7Ci0gICAg
cmV0dXJuIG1hcFNldFdhdGNocG9pbnQoKS5pc1N0aWxsVmFsaWQoKTsKKyAgICByZXR1cm4gbWFw
U2V0V2F0Y2hwb2ludFNldCgpLmlzU3RpbGxWYWxpZCgpOwogfQogCiBBTFdBWVNfSU5MSU5FIGJv
b2wgSlNHbG9iYWxPYmplY3Q6OmlzU2V0UHJvdG90eXBlQWRkRmFzdEFuZE5vbk9ic2VydmFibGUo
KQogewotICAgIHJldHVybiBzZXRBZGRXYXRjaHBvaW50KCkuaXNTdGlsbFZhbGlkKCk7CisgICAg
cmV0dXJuIHNldEFkZFdhdGNocG9pbnRTZXQoKS5pc1N0aWxsVmFsaWQoKTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgSlNDCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>