<?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>115615</bug_id>
          
          <creation_ts>2013-05-05 15:23:24 -0700</creation_ts>
          <short_desc>[Texmap] Support border-radius clipping</short_desc>
          <delta_ts>2020-11-08 18:21:28 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>174457</dup_id>
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=174457</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>115613</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Noam Rosenthal">noam</reporter>
          <assigned_to name="Noam Rosenthal">noam</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eflews.bot</cc>
    
    <cc>fujii</cc>
    
    <cc>gtk-ews</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>luiz</cc>
    
    <cc>mrobinson</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>zeno</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>884741</commentid>
    <comment_count>0</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2013-05-05 15:23:24 -0700</bug_when>
    <thetext>When the change to support border-radius clipping in GraphicsLayer lands, we need to add support for it in TextureMapper</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>884745</commentid>
    <comment_count>1</comment_count>
      <attachid>200598</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2013-05-05 15:55:46 -0700</bug_when>
    <thetext>Created attachment 200598
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>884746</commentid>
    <comment_count>2</comment_count>
      <attachid>200598</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-05-05 16:01:03 -0700</bug_when>
    <thetext>Comment on attachment 200598
Patch

Attachment 200598 did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/401779</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>884747</commentid>
    <comment_count>3</comment_count>
      <attachid>200598</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-05-05 16:02:04 -0700</bug_when>
    <thetext>Comment on attachment 200598
Patch

Attachment 200598 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/417140</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>884748</commentid>
    <comment_count>4</comment_count>
      <attachid>200598</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-05-05 16:02:29 -0700</bug_when>
    <thetext>Comment on attachment 200598
Patch

Attachment 200598 did not pass qt-ews (qt):
Output: http://webkit-queues.appspot.com/results/410155</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>884749</commentid>
    <comment_count>5</comment_count>
      <attachid>200598</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-05-05 16:03:20 -0700</bug_when>
    <thetext>Comment on attachment 200598
Patch

Attachment 200598 did not pass qt-wk2-ews (qt-wk2):
Output: http://webkit-queues.appspot.com/results/410154</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>884755</commentid>
    <comment_count>6</comment_count>
      <attachid>200598</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2013-05-05 16:30:05 -0700</bug_when>
    <thetext>Comment on attachment 200598
Patch

Attachment 200598 did not pass gtk-ews (gtk):
Output: http://webkit-queues.appspot.com/results/418135</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>977720</commentid>
    <comment_count>7</comment_count>
      <attachid>200598</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-02-06 21:39:29 -0800</bug_when>
    <thetext>Comment on attachment 200598
Patch

This patch hasn&apos;t seen any activity or any review comments in over 9 months and Noam isn&apos;t working on this according to the blocking bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705628</commentid>
    <comment_count>8</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2020-11-08 18:21:28 -0800</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of bug 174457 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>200598</attachid>
            <date>2013-05-05 15:55:46 -0700</date>
            <delta_ts>2014-02-06 21:39:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-115615-20130506005447.patch</filename>
            <type>text/plain</type>
            <size>45941</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ5MTg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGZiOTQ0NmEzZDdkM2Zl
MWRlOWM4NjExY2E5MjE2NGE5OTM4YzQzMC4uZTZjYWY5MzAwNDY1MjljMzc5MTFhYzhkZDkzNDI3
MDgzMWZjNDU1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDk1IEBACiAyMDEzLTA1LTA1ICBOb2Ft
IFJvc2VudGhhbCAgPG5vYW1Ad2Via2l0Lm9yZz4KIAorICAgICAgICBbVGV4bWFwXSBTdXBwb3J0
IGJvcmRlci1yYWRpdXMgY2xpcHBpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTExNTYxNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCB0aGUgbG9naWMgaW4gVGV4dHVyZU1hcHBlckdMIGFuZCBDb29y
ZGluYXRlZEdyYXBoaWNzIHRvIGNsaXAgdG8gYSByb3VuZGVkIHJlY3RhbmdsZSB1c2luZyB0aGUK
KyAgICAgICAgR1BVLiBOb3RlIHRoYXQgdGhpcyBpcyBjdXJyZW50bHkgbGltaXRlZCBmb3Igcm91
bmRlZCByZWN0YW5nbGVzIHdoZXJlIHRoZSBjb3JuZXJzIGRvbid0IGFmZmVjdAorICAgICAgICBl
YWNoIG90aGVyLgorCisgICAgICAgIFRoaXMgaXMgZG9uZSBpbiBUZXh0dXJlTWFwcGVyR0wgYnkg
ZGl2aWRpbmcgdGhlIHJvdW5kZWQgcmVjdGFuZ2xlIGludG8gOSBxdWFkcyBvciAxOCB0cmlhbmds
ZXM6CisgICAgICAgIHwvfCB8XHwKKyAgICAgICAgfCB8IHwgfAorICAgICAgICB8XHwgfC98CisK
KyAgICAgICAgVGhlIGZyYWdtZW50IHNoYWRlciBwYWludHMgYW4gZWxsaXBzZSBmb3IgZWFjaCBv
ZiB0aGUgdHJpYW5nbGVzLCBidXQgd2hpbGUgZm9yIHRoZSBjb3JuZXIgdHJpYW5nbGVzIHRoaXMK
KyAgICAgICAgZWxsaXBzZSBpcyBlcXVpdmFsZW50IHRvIHRoZSByb3VuZGVkIHJlY3QncyByYWRp
aSwgaW4gYWxsIG9mIHRoZSBvdGhlciB0cmlhbmdsZXMgdGhlIGVsbGlwc2UgY292ZXJzIHRoZQor
ICAgICAgICB3aG9sZSB0cmlhbmdsZSwgY3JlYXRpbmcgdGhlIGVmZmVjdCB3aGVyZSBvbmx5IHRo
ZSA0IGNvcm5lciB0cmlhbmdsZXMgYXJlIHJvdW5kZWQuCisKKyAgICAgICAgVGVzdHMgaW4gY29t
cG9zaXRpbmcvYm9yZGVyLXJhZGl1cyBub3cgd29yayBmb3IgVGV4dHVyZU1hcHBlciwgd2lsbCBi
ZSByZWJhc2VsaW5lZCBvbmNlIHRoaXMgaXMKKyAgICAgICAgc3VwcG9ydGVkIGluIENBIGFzIHdl
bGwuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRl
eHR1cmVNYXBwZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllclRleHR1cmVN
YXBwZXI6OnNldFJvdW5kZWRSZWN0TWFzayk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpjb21taXRMYXllckNoYW5nZXMp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVy
ZU1hcHBlci5oOgorICAgICAgICAoR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIpOgorICAgICAg
ICAgICAgQWRkZWQgdGhlIGdsdWUgY29kZSBiZXR3ZWVuIEdyYXBoaWNzTGF5ZXIgYW5kIFRleHR1
cmVNYXBwZXIgZm9yIGJvcmRlci1yYWRpdXMgaW4gV2ViS2l0MSAmIEdUSy4KKworICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyLmg6CisgICAgICAgIChXZWJD
b3JlOjpUZXh0dXJlTWFwcGVyOjpzZXRSb3VuZGVkUmVjdE1hc2spOgorICAgICAgICAoV2ViQ29y
ZTo6VGV4dHVyZU1hcHBlcjo6cm91bmRlZFJlY3RNYXNrKToKKyAgICAgICAgKFRleHR1cmVNYXBw
ZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6bm9ybWFsaXplZElubmVyUXVhZCk6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJHTDo6ZHJhd1RleHR1cmUp
OgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlckdMOjpkcmF3U29saWRDb2xvcik6Cisg
ICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyR0w6OmRyYXdSb3VuZGVkQ29ybmVycyk6Cisg
ICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyR0w6OmRyYXcpOgorICAgICAgICAoV2ViQ29y
ZTo6VGV4dHVyZU1hcHBlckdMOjpkcmF3VGV4dHVyZWRRdWFkV2l0aFByb2dyYW0pOgorICAgICAg
ICAoV2ViQ29yZTo6Qml0bWFwVGV4dHVyZUdMOjp1cGRhdGVDb250ZW50cyk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5oOgorICAgICAgICAoVGV4
dHVyZU1hcHBlckdMKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVy
ZU1hcHBlclNoYWRlclByb2dyYW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBl
clNoYWRlclByb2dyYW06OlRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtKToKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OmNy
ZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJT
aGFkZXJQcm9ncmFtLmg6CisgICAgICAgIChUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbSk6Cisg
ICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6b3B0aW9ucyk6Cisg
ICAgICAgICAgICBBZGRlZCBhIHNoYWRlciBjb2RlIHBhdGggZm9yIHJvdW5kZWQgcmVjdGFuZ2xl
IGNsaXBwaW5nLiBTZWUgYWJvdmUgZm9yIGRlc2NyaXB0aW9uLgorCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5jcHA6CisgICAgICAgIChUZXh0
dXJlTWFwcGVyUGFpbnRPcHRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJM
YXllcjo6cGFpbnRTZWxmV2l0aFJhZGlpKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBw
ZXJMYXllcjo6cGFpbnRTZWxmKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJMYXll
cjo6cGFpbnRTZWxmQW5kQ2hpbGRyZW4pOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpUZXh0dXJlTWFwcGVyTGF5ZXI6OnNob3VsZFVzZVN1cmZhY2VGb3JSb3VuZGVkUmVj
dE1hc2spOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlckxheWVyOjpzaG91bGRCbGVu
ZCk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTGF5ZXI6OmNvbXB1dGVPdmVybGFw
UmVnaW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTGF5ZXI6OmFwcGx5U2Vs
ZlRyYW5zZm9ybSk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTGF5ZXI6OmFwcGx5
TWFzayk6CisgICAgICAgIChXZWJDb3JlOjpjb21taXRTdXJmYWNlKToKKyAgICAgICAgKFdlYkNv
cmU6OlRleHR1cmVNYXBwZXJMYXllcjo6cGFpbnRXaXRoSW50ZXJtZWRpYXRlU3VyZmFjZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTGF5ZXI6OnBhaW50UmVjdXJzaXZlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTGF5ZXI6OnNldFJvdW5kZWRSZWN0TWFzayk6
CisgICAgICAgIChUZXh0dXJlTWFwcGVyTGF5ZXIpOgorICAgICAgICAoU3RhdGUpOgorICAgICAg
ICAgICAgQWRkZWQgdGhlIGxvZ2ljIHRvIGNvbXBvc2l0ZSB0aGUgcm91bmRlZFJlY3RNYXNrLiBG
b3Igbm93LCB3ZSBhcHBseSB0aGUgbWFzayBvbmx5IHdoZW4KKyAgICAgICAgICAgIHRoZSByZWN0
YW5nbGUgdG8gYmUgcGFpbnRlZCBpcyBlcXVhbCB0byB0aGUgbWFzaydzIHJlY3RhbmdsZSwgb3Ro
ZXJ3aXNlIHdlIGNyZWF0ZSBhbgorICAgICAgICAgICAgaW50ZXJtZWRpYXRlIHN1cmZhY2UgYW5k
IGdyb3VwIGFsbCB0aGUgZGVzY2VuZGFudHMgdG8gdGhlIHNhbWUgcm91bmRlZCByZWN0YW5nbGVz
LgorICAgICAgICAgICAgTm90ZSB0aGF0IHRoaXMgZG9lcyBub3QgeWV0IHdvcmsgZm9yIGh1Z2Ug
cmVjdGFuZ2xlcyB3aXRoIGJvcmRlci1yYWRpdXMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0Um91bmRlZFJlY3RN
YXNrKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaDoKKyAgICAgICAgKENv
b3JkaW5hdGVkR3JhcGhpY3NMYXllcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OnNldExheWVyU3RhdGUpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBo
aWNzU3RhdGUuaDoKKyAgICAgICAgKENvb3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRlKToKKyAg
ICAgICAgICAgIEFkZGVkIHRoZSBnbHVlIGNvZGUgZm9yIENvb3JkaW5hdGVkR3JhcGhpY3MgdG8g
cGFzcyB0aGUgcm91bmRlZFJlY3RNYXNrIGluZm9ybWF0aW9uIHRvCisgICAgICAgICAgICB0aGUg
VGV4dHVyZU1hcHBlckxheWVyCisKKzIwMTMtMDUtMDUgIE5vYW0gUm9zZW50aGFsICA8bm9hbUB3
ZWJraXQub3JnPgorCiAgICAgICAgIEdyYXBoaWNzTGF5ZXJzIHNob3VsZCBiZSBhd2FyZSBvZiBy
b3VuZGVkIHJlY3QgY2xpcHBpbmcKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTExNTYxMwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYjRlMDg4MTJhMGEyMWEyNDFlY2Nh
Yzc5YzEwMzAwYTFmZTU0ZTRjYS4uMzI0ZDU5ZjZhMDM1MzUzZWVlOTAwM2RmN2MzNmQ3ZWFhMzg0
ZjcxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEzLTA1LTA1ICBOb2FtIFJvc2Vu
dGhhbCAgPG5vYW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBbVGV4bWFwXSBTdXBwb3J0IGJvcmRl
ci1yYWRpdXMgY2xpcHBpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTExNTYxNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEVuY29kZS9kZWNvZGUgV2ViQ29yZTo6Um91bmRlZFJlY3Qgc28gdGhhdCBpdCdz
IGF2YWlsYWJsZSBpbiB0aGUgVUkgcHJvY2VzcworICAgICAgICBmb3IgY29vcmRpbmF0ZWQgZ3Jh
cGhpY3MuCisKKyAgICAgICAgKiBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRl
ZEdyYXBoaWNzQXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAgICAoQ29yZUlQQzo6OjplbmNvZGUp
OgorICAgICAgICAoQ29yZUlQQyk6CisgICAgICAgIChDb3JlSVBDOjo6OmRlY29kZSk6CisgICAg
ICAgICogU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0FyZ3Vt
ZW50Q29kZXJzLmg6CisgICAgICAgIChXZWJDb3JlKToKKwogMjAxMy0wNC0yNiAgTm9hbSBSb3Nl
bnRoYWwgIDxub2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgR2V0IHJpZCBvZiAibm9uLWNvbXBv
c2l0ZWQgY29udGVudHMiIGluIENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0
dXJlTWFwcGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9H
cmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5jcHAKaW5kZXggOGEwNDYxNzJjZGNlYWI3OTI1NDk4
NTI3MGE5MzJiNjg2ZjRiNGE1NC4uNjRiYjBiMWYyMWJiZDY0ZGI1MTU2NzA0ZGIzYzFkMDg0MTRl
ZjNkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuY3BwCkBAIC0y
NjEsNiArMjYxLDE1IEBAIHZvaWQgR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXI6OnNldFByZXNl
cnZlczNEKGJvb2wgdmFsdWUpCiAgICAgbm90aWZ5Q2hhbmdlKFByZXNlcnZlczNEQ2hhbmdlKTsK
IH0KIAordm9pZCBHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcjo6c2V0Um91bmRlZFJlY3RNYXNr
KGNvbnN0IFJvdW5kZWRSZWN0JiByKQoreworICAgIGlmIChyID09IHJvdW5kZWRSZWN0TWFzaygp
KQorICAgICAgICByZXR1cm47CisKKyAgICBHcmFwaGljc0xheWVyOjpzZXRSb3VuZGVkUmVjdE1h
c2socik7CisgICAgbm90aWZ5Q2hhbmdlKFJvdW5kZWRSZWN0TWFza0NoYW5nZSk7Cit9CisKIC8q
IFxyZWltcCAoR3JhcGhpY3NMYXllci5oKQogKi8KIHZvaWQgR3JhcGhpY3NMYXllclRleHR1cmVN
YXBwZXI6OnNldE1hc2tzVG9Cb3VuZHMoYm9vbCB2YWx1ZSkKQEAgLTUyOSw2ICs1MzgsOSBAQCB2
b2lkIEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpjb21taXRMYXllckNoYW5nZXMoKQogICAg
IGlmIChtX2NoYW5nZU1hc2sgJiBPcGFjaXR5Q2hhbmdlKQogICAgICAgICBtX2xheWVyLT5zZXRP
cGFjaXR5KG9wYWNpdHkoKSk7CiAKKyAgICBpZiAobV9jaGFuZ2VNYXNrICYgUm91bmRlZFJlY3RN
YXNrQ2hhbmdlKQorICAgICAgICBtX2xheWVyLT5zZXRSb3VuZGVkUmVjdE1hc2socm91bmRlZFJl
Y3RNYXNrKCkpOworCiAgICAgaWYgKG1fY2hhbmdlTWFzayAmIEJhY2tncm91bmRDb2xvckNoYW5n
ZSkKICAgICAgICAgbV9sYXllci0+c2V0U29saWRDb2xvcihzb2xpZENvbG9yKCkpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NM
YXllclRleHR1cmVNYXBwZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5oCmluZGV4IDJkOWQzNzgzNzUwYTBlNzY5
YzZiY2M0OWRiMWY1MDMyZTJkMzg0ZDMuLjU0ZjFhNTc3NTNmMDI3MjZlNzg0YmMzYmNjYjZlMzVk
MmMyZTczMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5oCkBAIC01
NSw2ICs1NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q2hpbGRyZW5UcmFuc2Zv
cm0oY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHQpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRQ
cmVzZXJ2ZXMzRChib29sIGIpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRNYXNrc1RvQm91bmRzKGJv
b2wgYik7CisgICAgdmlydHVhbCB2b2lkIHNldFJvdW5kZWRSZWN0TWFzayhjb25zdCBSb3VuZGVk
UmVjdCYpOwogICAgIHZpcnR1YWwgdm9pZCBzZXREcmF3c0NvbnRlbnQoYm9vbCBiKTsKICAgICB2
aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNWaXNpYmxlKGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBz
ZXRDb250ZW50c09wYXF1ZShib29sIGIpOwpAQCAtMTQ5LDcgKzE1MCw4IEBAIHByaXZhdGU6CiAg
ICAgICAgIEFuaW1hdGlvblN0YXJ0ZWQgPSAgICAgICAgICAoMUwgPDwgMjcpLAogCiAgICAgICAg
IENvbW1pdHRlZFNjcm9sbE9mZnNldENoYW5nZSA9ICAgICAoMUwgPDwgMjgpLAotICAgICAgICBJ
c1Njcm9sbGFibGVDaGFuZ2UgPSAgICAgICAgICAgICAgKDFMIDw8IDI5KQorICAgICAgICBJc1Nj
cm9sbGFibGVDaGFuZ2UgPSAgICAgICAgICAgICAgKDFMIDw8IDI5KSwKKyAgICAgICAgUm91bmRl
ZFJlY3RNYXNrQ2hhbmdlID0gICAgICAgICAgICgxTCA8PCAzMCkKICAgICB9OwogICAgIHZvaWQg
bm90aWZ5Q2hhbmdlKENoYW5nZU1hc2spOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuaAppbmRleCAxYmUwYjFjM2Y3
YWUxZWFmN2Y5ODAyZjBiMDlhNzIxZTc3MDcyNWU4Li45NTNjOTBjNzU1OTAxOTI2MGNhYmMxYTEw
NzFhNzczODg5NDRiY2JkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyLmgKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNs
dWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAi
SW50U2l6ZS5oIgorI2luY2x1ZGUgIlJvdW5kZWRSZWN0LmgiCiAjaW5jbHVkZSAiVHJhbnNmb3Jt
YXRpb25NYXRyaXguaCIKICNpbmNsdWRlIDx3dGYvVW51c2VkUGFyYW0uaD4KIApAQCAtNjAsNyAr
NjEsOCBAQCBwdWJsaWM6CiAKICAgICBlbnVtIFVwZGF0ZUNvbnRlbnRzRmxhZyB7CiAgICAgICAg
IFVwZGF0ZUNhbk1vZGlmeU9yaWdpbmFsSW1hZ2VEYXRhLAotICAgICAgICBVcGRhdGVDYW5ub3RN
b2RpZnlPcmlnaW5hbEltYWdlRGF0YQorICAgICAgICBVcGRhdGVDYW5ub3RNb2RpZnlPcmlnaW5h
bEltYWdlRGF0YSwKKyAgICAgICAgVXBkYXRlU2hvdWxkTm90U3dpenpsZQogICAgIH07CiAKICAg
ICB0eXBlZGVmIHVuc2lnbmVkIEZsYWdzOwpAQCAtMTM4LDcgKzE0MCw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgZHJhd0JvcmRlcihjb25zdCBDb2xvciYsIGZsb2F0IGJvcmRlcldpZHRo
LCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYpID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgZHJhd051bWJlcihpbnQgbnVtYmVyLCBjb25zdCBDb2xvciYsIGNvbnN0
IEZsb2F0UG9pbnQmLCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYpID0gMDsKIAotICAgIHZp
cnR1YWwgdm9pZCBkcmF3VGV4dHVyZShjb25zdCBCaXRtYXBUZXh0dXJlJiwgY29uc3QgRmxvYXRS
ZWN0JiB0YXJnZXQsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBtb2RlbFZpZXdNYXRyaXgg
PSBUcmFuc2Zvcm1hdGlvbk1hdHJpeCgpLCBmbG9hdCBvcGFjaXR5ID0gMS4wZiwgdW5zaWduZWQg
ZXhwb3NlZEVkZ2VzID0gQWxsRWRnZXMpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZHJhd1RleHR1
cmUoY29uc3QgQml0bWFwVGV4dHVyZSYsIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0LCBjb25zdCBU
cmFuc2Zvcm1hdGlvbk1hdHJpeCYgbW9kZWxWaWV3TWF0cml4ID0gVHJhbnNmb3JtYXRpb25NYXRy
aXgoKSwgZmxvYXQgb3BhY2l0eSA9IDEuLCB1bnNpZ25lZCBleHBvc2VkRWRnZXMgPSBBbGxFZGdl
cykgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkcmF3U29saWRDb2xvcihjb25zdCBGbG9hdFJlY3Qm
LCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGNvbnN0IENvbG9yJikgPSAwOwogCiAgICAg
Ly8gbWFrZXMgYSBzdXJmYWNlIHRoZSB0YXJnZXQgZm9yIHRoZSBmb2xsb3dpbmcgZHJhd1RleHR1
cmUgY2FsbHMuCkBAIC0xNzIsNiArMTc0LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRQYXR0
ZXJuVHJhbnNmb3JtKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBwKSB7IG1fcGF0dGVyblRy
YW5zZm9ybSA9IHA7IH0KICAgICB2b2lkIHNldFdyYXBNb2RlKFdyYXBNb2RlIG0pIHsgbV93cmFw
TW9kZSA9IG07IH0KKyAgICB2b2lkIHNldFJvdW5kZWRSZWN0TWFzayhjb25zdCBSb3VuZGVkUmVj
dCYgcikgeyBtX3JvdW5kZWRSZWN0TWFzayA9IHI7IH0KIAogcHJvdGVjdGVkOgogICAgIGV4cGxp
Y2l0IFRleHR1cmVNYXBwZXIoQWNjZWxlcmF0aW9uTW9kZSk7CkBAIC0xODAsNiArMTgzLDcgQEAg
cHJvdGVjdGVkOgogCiAgICAgYm9vbCBpc0luTWFza01vZGUoKSBjb25zdCB7IHJldHVybiBtX2lz
TWFza01vZGU7IH0KICAgICBXcmFwTW9kZSB3cmFwTW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fd3Jh
cE1vZGU7IH0KKyAgICBjb25zdCBSb3VuZGVkUmVjdCYgcm91bmRlZFJlY3RNYXNrKCkgY29uc3Qg
eyByZXR1cm4gbV9yb3VuZGVkUmVjdE1hc2s7IH0KICAgICBjb25zdCBUcmFuc2Zvcm1hdGlvbk1h
dHJpeCYgcGF0dGVyblRyYW5zZm9ybSgpIGNvbnN0IHsgcmV0dXJuIG1fcGF0dGVyblRyYW5zZm9y
bTsgfQogCiBwcml2YXRlOgpAQCAtMTkxLDEyICsxOTUsMTQgQEAgcHJpdmF0ZToKICAgICAgICAg
cmV0dXJuIFBhc3NPd25QdHI8VGV4dHVyZU1hcHBlcj4oKTsKICAgICB9CiAjZW5kaWYKKwogICAg
IEludGVycG9sYXRpb25RdWFsaXR5IG1faW50ZXJwb2xhdGlvblF1YWxpdHk7CiAgICAgVGV4dERy
YXdpbmdNb2RlRmxhZ3MgbV90ZXh0RHJhd2luZ01vZGU7CiAgICAgT3duUHRyPEJpdG1hcFRleHR1
cmVQb29sPiBtX3RleHR1cmVQb29sOwogICAgIEFjY2VsZXJhdGlvbk1vZGUgbV9hY2NlbGVyYXRp
b25Nb2RlOwogICAgIGJvb2wgbV9pc01hc2tNb2RlOwogICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4
IG1fcGF0dGVyblRyYW5zZm9ybTsKKyAgICBSb3VuZGVkUmVjdCBtX3JvdW5kZWRSZWN0TWFzazsK
ICAgICBXcmFwTW9kZSBtX3dyYXBNb2RlOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcAppbmRl
eCA2ZmRjNDlkNzE2Nzk1OTNmNDgxMjk3ZGJlMDU2OTE2OTJjYzg3ZjQ5Li44Mjc3ZmE1MTFhNWYx
ZjFjYjI2MDkyYWIwNTU1Yjc2NjM5YjdhOTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcApAQCAt
MjYsNiArMjYsNyBAQAogI2luY2x1ZGUgIkZpbHRlck9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJH
cmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJJbWFnZS5oIgorI2luY2x1ZGUgIkltYWdlQnVm
ZmVyLmgiCiAjaW5jbHVkZSAiTGVuZ3RoRnVuY3Rpb25zLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVt
ZW50ZWQuaCIKICNpbmNsdWRlICJUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5oIgpAQCAtNjUs
NiArNjYsNyBAQAogI2RlZmluZSBHTF9VTlBBQ0tfU0tJUF9ST1dTIDB4MENGMwogI2VuZGlmCiAK
KwogbmFtZXNwYWNlIFdlYkNvcmUgewogc3RydWN0IFRleHR1cmVNYXBwZXJHTERhdGEgewogICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwpAQCAtNTg3LDE0ICs1ODksMzkgQEAgdm9pZCBUZXh0
dXJlTWFwcGVyR0w6OmRyYXdUZXh0dXJlKGNvbnN0IEJpdG1hcFRleHR1cmUmIHRleHR1cmUsIGNv
bnN0IEZsb2F0UmVjdCYKICAgICBkcmF3VGV4dHVyZSh0ZXh0dXJlR0wuaWQoKSwgdGV4dHVyZUdM
LmlzT3BhcXVlKCkgPyAwIDogU2hvdWxkQmxlbmQsIHRleHR1cmVHTC5zaXplKCksIHRhcmdldFJl
Y3QsIG1hdHJpeCwgb3BhY2l0eSwgZXhwb3NlZEVkZ2VzKTsKIH0KIAorc3RhdGljIEZsb2F0UXVh
ZCBub3JtYWxpemVkSW5uZXJRdWFkKGNvbnN0IFJvdW5kZWRSZWN0JiByb3VuZGVkUmVjdCkKK3sK
KyAgICBjb25zdCBSb3VuZGVkUmVjdDo6UmFkaWkmIHJhZGlpID0gcm91bmRlZFJlY3QucmFkaWko
KTsKKyAgICBjb25zdCBJbnRSZWN0JiByZWN0ID0gcm91bmRlZFJlY3QucmVjdCgpOworICAgIEZs
b2F0UXVhZCBxdWFkKAorICAgICAgICBGbG9hdFBvaW50KEZsb2F0U2l6ZShyYWRpaS50b3BMZWZ0
KCkpKSwKKyAgICAgICAgRmxvYXRQb2ludChyZWN0LndpZHRoKCkgLSByYWRpaS50b3BSaWdodCgp
LndpZHRoKCksIHJhZGlpLnRvcFJpZ2h0KCkuaGVpZ2h0KCkpLAorICAgICAgICBGbG9hdFBvaW50
KHJlY3Qud2lkdGgoKSAtIHJhZGlpLmJvdHRvbVJpZ2h0KCkud2lkdGgoKSwgcmVjdC5oZWlnaHQo
KSAtIHJhZGlpLmJvdHRvbVJpZ2h0KCkuaGVpZ2h0KCkpLAorICAgICAgICBGbG9hdFBvaW50KHJh
ZGlpLmJvdHRvbUxlZnQoKS53aWR0aCgpLCByZWN0LmhlaWdodCgpIC0gcmFkaWkuYm90dG9tTGVm
dCgpLmhlaWdodCgpKSk7CisKKyAgICBxdWFkLnNjYWxlKDEuIC8gZmxvYXQocmVjdC53aWR0aCgp
KSwgMS4gLyBmbG9hdChyZWN0LmhlaWdodCgpKSk7CisgICAgcmV0dXJuIHF1YWQ7Cit9CisKIHZv
aWQgVGV4dHVyZU1hcHBlckdMOjpkcmF3VGV4dHVyZShQbGF0Zm9ybTNET2JqZWN0IHRleHR1cmUs
IEZsYWdzIGZsYWdzLCBjb25zdCBJbnRTaXplJiB0ZXh0dXJlU2l6ZSwgY29uc3QgRmxvYXRSZWN0
JiB0YXJnZXRSZWN0LCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgbW9kZWxWaWV3TWF0cml4
LCBmbG9hdCBvcGFjaXR5LCB1bnNpZ25lZCBleHBvc2VkRWRnZXMpCiB7CiAgICAgYm9vbCB1c2VS
ZWN0ID0gZmxhZ3MgJiBTaG91bGRVc2VBUkJUZXh0dXJlUmVjdDsKLSAgICBib29sIHVzZUFudGlh
bGlhc2luZyA9IG1fZW5hYmxlRWRnZURpc3RhbmNlQW50aWFsaWFzaW5nCisgICAgYm9vbCB1c2VS
b3VuZGVkUmVjdCA9IHJvdW5kZWRSZWN0TWFzaygpLmlzUm91bmRlZCgpOworCisKKyAgICBib29s
IHVzZUFudGlhbGlhc2luZyA9ICF1c2VSb3VuZGVkUmVjdAorICAgICAgICAmJiBtX2VuYWJsZUVk
Z2VEaXN0YW5jZUFudGlhbGlhc2luZwogICAgICAgICAmJiBleHBvc2VkRWRnZXMgPT0gQWxsRWRn
ZXMKICAgICAgICAgJiYgIW1vZGVsVmlld01hdHJpeC5tYXBRdWFkKHRhcmdldFJlY3QpLmlzUmVj
dGlsaW5lYXIoKTsKIAogICAgIFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpPcHRpb25zIG9w
dGlvbnMgPSBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6VGV4dHVyZTsKKyAgICBGbG9hdFF1
YWQgaW5uZXJRdWFkOworICAgIGlmICh1c2VSb3VuZGVkUmVjdCkgeworICAgICAgICBvcHRpb25z
IHw9IFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpSb3VuZGVkQ29ybmVyczsKKyAgICAgICAg
ZmxhZ3MgfD0gU2hvdWxkRHJhd1JvdW5kZWRDb3JuZXJzIHwgU2hvdWxkQmxlbmQ7CisgICAgICAg
IGlubmVyUXVhZCA9IG5vcm1hbGl6ZWRJbm5lclF1YWQocm91bmRlZFJlY3RNYXNrKCkpOworICAg
IH0KKwogICAgIGlmICh1c2VSZWN0KQogICAgICAgICBvcHRpb25zIHw9IFRleHR1cmVNYXBwZXJT
aGFkZXJQcm9ncmFtOjpSZWN0OwogICAgIGlmIChvcGFjaXR5IDwgMSkKQEAgLTYyMCwyMiArNjQ3
LDI2IEBAIHZvaWQgVGV4dHVyZU1hcHBlckdMOjpkcmF3VGV4dHVyZShQbGF0Zm9ybTNET2JqZWN0
IHRleHR1cmUsIEZsYWdzIGZsYWdzLCBjb25zdCBJCiAgICAgaWYgKHVzZUFudGlhbGlhc2luZyB8
fCBvcGFjaXR5IDwgMSkKICAgICAgICAgZmxhZ3MgfD0gU2hvdWxkQmxlbmQ7CiAKLSAgICBSZWZQ
dHI8VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0+IHByb2dyYW07Ci0gICAgcHJvZ3JhbSA9IGRh
dGEoKS5zaGFyZWRHTERhdGEoKS5nZXRTaGFkZXJQcm9ncmFtKG9wdGlvbnMpOworICAgIFJlZlB0
cjxUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbT4gcHJvZ3JhbSA9IGRhdGEoKS5zaGFyZWRHTERh
dGEoKS5nZXRTaGFkZXJQcm9ncmFtKG9wdGlvbnMpOwogCiAjaWYgRU5BQkxFKENTU19GSUxURVJT
KQogICAgIGlmIChmaWx0ZXIpCiAgICAgICAgIHByZXBhcmVGaWx0ZXJQcm9ncmFtKHByb2dyYW0u
Z2V0KCksICpmaWx0ZXIuZ2V0KCksIGRhdGEoKS5maWx0ZXJJbmZvLT5wYXNzLCB0ZXh0dXJlU2l6
ZSwgZmlsdGVyQ29udGVudFRleHR1cmVJRCk7CiAjZW5kaWYKIAotICAgIGRyYXdUZXh0dXJlZFF1
YWRXaXRoUHJvZ3JhbShwcm9ncmFtLmdldCgpLCB0ZXh0dXJlLCBmbGFncywgdGV4dHVyZVNpemUs
IHRhcmdldFJlY3QsIG1vZGVsVmlld01hdHJpeCwgb3BhY2l0eSk7CisgICAgZHJhd1RleHR1cmVk
UXVhZFdpdGhQcm9ncmFtKHByb2dyYW0uZ2V0KCksIHRleHR1cmUsIGZsYWdzLCB0ZXh0dXJlU2l6
ZSwgdGFyZ2V0UmVjdCwgbW9kZWxWaWV3TWF0cml4LCBvcGFjaXR5LCBpbm5lclF1YWQpOwogfQog
CiB2b2lkIFRleHR1cmVNYXBwZXJHTDo6ZHJhd1NvbGlkQ29sb3IoY29uc3QgRmxvYXRSZWN0JiBy
ZWN0LCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgbWF0cml4LCBjb25zdCBDb2xvciYgY29s
b3IpCiB7CiAgICAgRmxhZ3MgZmxhZ3MgPSAwOwogICAgIFRleHR1cmVNYXBwZXJTaGFkZXJQcm9n
cmFtOjpPcHRpb25zIG9wdGlvbnMgPSBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6U29saWRD
b2xvcjsKLSAgICBpZiAoIW1hdHJpeC5tYXBRdWFkKHJlY3QpLmlzUmVjdGlsaW5lYXIoKSkgewor
ICAgIEZsb2F0UXVhZCBpbm5lclF1YWQ7CisgICAgaWYgKHJvdW5kZWRSZWN0TWFzaygpLmlzUm91
bmRlZCgpKSB7CisgICAgICAgIG9wdGlvbnMgfD0gVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06
OlJvdW5kZWRDb3JuZXJzOworICAgICAgICBmbGFncyB8PSBTaG91bGRCbGVuZCB8IFNob3VsZERy
YXdSb3VuZGVkQ29ybmVyczsKKyAgICAgICAgaW5uZXJRdWFkID0gbm9ybWFsaXplZElubmVyUXVh
ZChyb3VuZGVkUmVjdE1hc2soKSk7CisgICAgfSBlbHNlIGlmICghbWF0cml4Lm1hcFF1YWQocmVj
dCkuaXNSZWN0aWxpbmVhcigpKSB7CiAgICAgICAgIG9wdGlvbnMgfD0gVGV4dHVyZU1hcHBlclNo
YWRlclByb2dyYW06OkFudGlhbGlhc2luZzsKICAgICAgICAgZmxhZ3MgfD0gU2hvdWxkQmxlbmQg
fCBTaG91bGRBbnRpYWxpYXM7CiAgICAgfQpAQCAtNjQ5LDkgKzY4MCw1NyBAQCB2b2lkIFRleHR1
cmVNYXBwZXJHTDo6ZHJhd1NvbGlkQ29sb3IoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBjb25zdCBU
cmFuc2Zvcm1hdGlvbgogICAgIGlmIChhIDwgMSkKICAgICAgICAgZmxhZ3MgfD0gU2hvdWxkQmxl
bmQ7CiAKLSAgICBkcmF3KHJlY3QsIG1hdHJpeCwgcHJvZ3JhbS5nZXQoKSwgR3JhcGhpY3NDb250
ZXh0M0Q6OlRSSUFOR0xFX0ZBTiwgZmxhZ3MpOworICAgIGRyYXcocmVjdCwgbWF0cml4LCBwcm9n
cmFtLmdldCgpLCBHcmFwaGljc0NvbnRleHQzRDo6VFJJQU5HTEVfRkFOLCBmbGFncywgaW5uZXJR
dWFkKTsKIH0KIAordm9pZCBUZXh0dXJlTWFwcGVyR0w6OmRyYXdSb3VuZGVkQ29ybmVycyhUZXh0
dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbSogcHJvZ3JhbSwgY29uc3QgRmxvYXRRdWFkJiBpbm5lclF1
YWQpCit7CisgICAgLy8gcDEsIHAyLCBwMywgY29udHJvbFBvaW50LCBkaXN0YW5jZQorICAgIEZs
b2F0UG9pbnQgcDEgPSBpbm5lclF1YWQucDEoKTsKKyAgICBGbG9hdFBvaW50IHAyID0gaW5uZXJR
dWFkLnAyKCk7CisgICAgRmxvYXRQb2ludCBwMyA9IGlubmVyUXVhZC5wMygpOworICAgIEZsb2F0
UG9pbnQgcDQgPSBpbm5lclF1YWQucDQoKTsKKyNpZmRlZiBUUklBTkdMRQorI3VuZGVmIFRSSUFO
R0xFCisjZW5kaWYKKyNpZmRlZiBDT1JORVIKKyN1bmRlZiBDT1JORVIKKyNlbmRpZgorI2lmZGVm
IFFVQUQKKyN1bmRlZiBRVUFECisjZW5kaWYKKworI2RlZmluZSBUUklBTkdMRSh4MSwgeTEsIHgy
LCB5MiwgeDMsIHkzKSB4MSwgeTEsIDAsIDAsIHgyLCB5MiwgMCwgMCwgeDMsIHkzLCAwLCAwCisj
ZGVmaW5lIENPUk5FUih4MSwgeTEsIHgyLCB5MiwgeDMsIHkzKSB4MSwgeTEsIDEsIDEsIHgyLCB5
MiwgMCwgMSwgeDMsIHkzLCAxLCAwCisjZGVmaW5lIFFVQUQoeDEsIHkxLCB4MiwgeTIsIHgzLCB5
MywgeDQsIHk0KSBcCisgICAgVFJJQU5HTEUoeDEsIHkxLCB4MiwgeTIsIHgzLCB5MyksIFwKKyAg
ICBUUklBTkdMRSh4MSwgeTEsIHgzLCB5MywgeDQsIHk0KQorCisKKyAgICBHQzNEZmxvYXQgdmVy
dGljZXNbXSA9IHsKKyAgICAgICAgQ09STkVSKDAsIDAsIHAxLngoKSwgMCwgMCwgcDEueSgpKSwK
KyAgICAgICAgVFJJQU5HTEUocDEueCgpLCAwLCBwMS54KCksIHAxLnkoKSwgMCwgcDEueSgpKSwK
KyAgICAgICAgUVVBRChwMS54KCksIDAsIHAyLngoKSwgMCwgcDIueCgpLCBwMi55KCksIHAxLngo
KSwgcDEueSgpKSwKKyAgICAgICAgVFJJQU5HTEUocDIueCgpLCAwLCBwMi54KCksIHAyLnkoKSwg
MSwgcDIueSgpKSwKKyAgICAgICAgQ09STkVSKDEsIDAsIHAyLngoKSwgMCwgMSwgcDIueSgpKSwK
KworICAgICAgICBRVUFEKDAsIHAxLnkoKSwgcDEueCgpLCBwMS55KCksIHA0LngoKSwgcDQueSgp
LCAwLCBwNC55KCkpLAorICAgICAgICBRVUFEKHAxLngoKSwgcDEueSgpLCBwMi54KCksIHAyLnko
KSwgcDMueCgpLCBwMy55KCksIHA0LngoKSwgcDQueSgpKSwKKyAgICAgICAgUVVBRChwMi54KCks
IHAyLnkoKSwgMSwgcDIueSgpLCAxLCBwMy55KCksIHAzLngoKSwgcDMueSgpKSwKKworICAgICAg
ICBDT1JORVIoMCwgMSwgcDQueCgpLCAxLCAwLCBwNC55KCkpLAorICAgICAgICBUUklBTkdMRSgw
LCBwNC55KCksIHA0LngoKSwgcDQueSgpLCBwNC54KCksIDEpLAorICAgICAgICBRVUFEKHA0Lngo
KSwgcDQueSgpLCBwMy54KCksIHAzLnkoKSwgcDMueCgpLCAxLCBwNC54KCksIDEpLAorICAgICAg
ICBUUklBTkdMRShwMy54KCksIHAzLnkoKSwgMSwgcDMueSgpLCBwMy54KCksIDEpLAorICAgICAg
ICBDT1JORVIoMSwgMSwgcDMueCgpLCAxLCAxLCBwMy55KCkpCisgICAgfTsKKworI3VuZGVmIENP
Uk5FUgorI3VuZGVmIFRSSUFOR0xFCisjdW5kZWYgUVVBRAorICAgIG1fY29udGV4dDNELT52ZXJ0
ZXhBdHRyaWJQb2ludGVyKHByb2dyYW0tPnZlcnRleExvY2F0aW9uKCksIDQsIEdyYXBoaWNzQ29u
dGV4dDNEOjpGTE9BVCwgZmFsc2UsIDAsIEdDM0RpbnRwdHIodmVydGljZXMpKTsKKyAgICBtX2Nv
bnRleHQzRC0+ZHJhd0FycmF5cyhHcmFwaGljc0NvbnRleHQzRDo6VFJJQU5HTEVTLCAwLCA1NCk7
Cit9CiB2b2lkIFRleHR1cmVNYXBwZXJHTDo6ZHJhd0VkZ2VUcmlhbmdsZXMoVGV4dHVyZU1hcHBl
clNoYWRlclByb2dyYW0qIHByb2dyYW0pCiB7CiAgICAgY29uc3QgR0MzRGZsb2F0IGxlZnQgPSAw
OwpAQCAtNjkyLDcgKzc3MSw3IEBAIHZvaWQgVGV4dHVyZU1hcHBlckdMOjpkcmF3VW5pdFJlY3Qo
VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0qIHByb2dyYW0sIEdDM0RlbnVtCiAgICAgbV9jb250
ZXh0M0QtPmJpbmRCdWZmZXIoR3JhcGhpY3NDb250ZXh0M0Q6OkFSUkFZX0JVRkZFUiwgMCk7CiB9
CiAKLXZvaWQgVGV4dHVyZU1hcHBlckdMOjpkcmF3KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgY29u
c3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIG1vZGVsVmlld01hdHJpeCwgVGV4dHVyZU1hcHBlclNo
YWRlclByb2dyYW0qIHNoYWRlclByb2dyYW0sIEdDM0RlbnVtIGRyYXdpbmdNb2RlLCBGbGFncyBm
bGFncykKK3ZvaWQgVGV4dHVyZU1hcHBlckdMOjpkcmF3KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwg
Y29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIG1vZGVsVmlld01hdHJpeCwgVGV4dHVyZU1hcHBl
clNoYWRlclByb2dyYW0qIHNoYWRlclByb2dyYW0sIEdDM0RlbnVtIGRyYXdpbmdNb2RlLCBGbGFn
cyBmbGFncywgY29uc3QgRmxvYXRRdWFkJiBpbm5lclF1YWQpCiB7CiAgICAgVHJhbnNmb3JtYXRp
b25NYXRyaXggbWF0cml4ID0KICAgICAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXgobW9kZWxWaWV3
TWF0cml4KS5tdWx0aXBseShUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6cmVjdFRvUmVjdChGbG9hdFJl
Y3QoMCwgMCwgMSwgMSksIHJlY3QpKTsKQEAgLTcxMiw3ICs3OTEsOSBAQCB2b2lkIFRleHR1cmVN
YXBwZXJHTDo6ZHJhdyhjb25zdCBGbG9hdFJlY3QmIHJlY3QsIGNvbnN0IFRyYW5zZm9ybWF0aW9u
TWF0cml4JiBtbwogICAgICAgICAgICAgbV9jb250ZXh0M0QtPmRpc2FibGUoR3JhcGhpY3NDb250
ZXh0M0Q6OkJMRU5EKTsKICAgICB9CiAKLSAgICBpZiAoZmxhZ3MgJiBTaG91bGRBbnRpYWxpYXMp
CisgICAgaWYgKGZsYWdzICYgU2hvdWxkRHJhd1JvdW5kZWRDb3JuZXJzKQorICAgICAgICBkcmF3
Um91bmRlZENvcm5lcnMoc2hhZGVyUHJvZ3JhbSwgaW5uZXJRdWFkKTsKKyAgICBlbHNlIGlmIChm
bGFncyAmIFNob3VsZEFudGlhbGlhcykKICAgICAgICAgZHJhd0VkZ2VUcmlhbmdsZXMoc2hhZGVy
UHJvZ3JhbSk7CiAgICAgZWxzZQogICAgICAgICBkcmF3VW5pdFJlY3Qoc2hhZGVyUHJvZ3JhbSwg
ZHJhd2luZ01vZGUpOwpAQCAtNzIyLDcgKzgwMyw4IEBAIHZvaWQgVGV4dHVyZU1hcHBlckdMOjpk
cmF3KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIG1v
CiAgICAgbV9jb250ZXh0M0QtPmVuYWJsZShHcmFwaGljc0NvbnRleHQzRDo6QkxFTkQpOwogfQog
Ci12b2lkIFRleHR1cmVNYXBwZXJHTDo6ZHJhd1RleHR1cmVkUXVhZFdpdGhQcm9ncmFtKFRleHR1
cmVNYXBwZXJTaGFkZXJQcm9ncmFtKiBwcm9ncmFtLCB1aW50MzJfdCB0ZXh0dXJlLCBGbGFncyBm
bGFncywgY29uc3QgSW50U2l6ZSYgc2l6ZSwgY29uc3QgRmxvYXRSZWN0JiByZWN0LCBjb25zdCBU
cmFuc2Zvcm1hdGlvbk1hdHJpeCYgbW9kZWxWaWV3TWF0cml4LCBmbG9hdCBvcGFjaXR5KQorCit2
b2lkIFRleHR1cmVNYXBwZXJHTDo6ZHJhd1RleHR1cmVkUXVhZFdpdGhQcm9ncmFtKFRleHR1cmVN
YXBwZXJTaGFkZXJQcm9ncmFtKiBwcm9ncmFtLCB1aW50MzJfdCB0ZXh0dXJlLCBGbGFncyBmbGFn
cywgY29uc3QgSW50U2l6ZSYgc2l6ZSwgY29uc3QgRmxvYXRSZWN0JiByZWN0LCBjb25zdCBUcmFu
c2Zvcm1hdGlvbk1hdHJpeCYgbW9kZWxWaWV3TWF0cml4LCBmbG9hdCBvcGFjaXR5LCBjb25zdCBG
bG9hdFF1YWQmIGlubmVyUXVhZCkKIHsKICAgICBtX2NvbnRleHQzRC0+dXNlUHJvZ3JhbShwcm9n
cmFtLT5wcm9ncmFtSUQoKSk7CiAgICAgbV9jb250ZXh0M0QtPmFjdGl2ZVRleHR1cmUoR3JhcGhp
Y3NDb250ZXh0M0Q6OlRFWFRVUkUwKTsKQEAgLTc0OCw3ICs4MzAsNyBAQCB2b2lkIFRleHR1cmVN
YXBwZXJHTDo6ZHJhd1RleHR1cmVkUXVhZFdpdGhQcm9ncmFtKFRleHR1cmVNYXBwZXJTaGFkZXJQ
cm9ncmFtKiBwcgogICAgIGlmIChvcGFjaXR5IDwgMSkKICAgICAgICAgZmxhZ3MgfD0gU2hvdWxk
QmxlbmQ7CiAKLSAgICBkcmF3KHJlY3QsIG1vZGVsVmlld01hdHJpeCwgcHJvZ3JhbSwgR3JhcGhp
Y3NDb250ZXh0M0Q6OlRSSUFOR0xFX0ZBTiwgZmxhZ3MpOworICAgIGRyYXcocmVjdCwgbW9kZWxW
aWV3TWF0cml4LCBwcm9ncmFtLCBHcmFwaGljc0NvbnRleHQzRDo6VFJJQU5HTEVfRkFOLCBmbGFn
cywgaW5uZXJRdWFkKTsKICAgICBtX2NvbnRleHQzRC0+dGV4UGFyYW1ldGVyaShHcmFwaGljc0Nv
bnRleHQzRDo6VEVYVFVSRV8yRCwgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfV1JBUF9TLCBH
cmFwaGljc0NvbnRleHQzRDo6Q0xBTVBfVE9fRURHRSk7CiAgICAgbV9jb250ZXh0M0QtPnRleFBh
cmFtZXRlcmkoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIEdyYXBoaWNzQ29udGV4dDNE
OjpURVhUVVJFX1dSQVBfVCwgR3JhcGhpY3NDb250ZXh0M0Q6OkNMQU1QX1RPX0VER0UpOwogfQpA
QCAtODYxLDYgKzk0MywxMSBAQCB2b2lkIEJpdG1hcFRleHR1cmVHTDo6dXBkYXRlQ29udGVudHMo
Y29uc3Qgdm9pZCogc3JjRGF0YSwgY29uc3QgSW50UmVjdCYgdGFyZ2V0UgogCiAgICAgY29uc3Qg
dW5zaWduZWQgYnl0ZXNQZXJQaXhlbCA9IDQ7CiAgICAgY2hhciogZGF0YSA9IHJlaW50ZXJwcmV0
X2Nhc3Q8Y2hhcio+KGNvbnN0X2Nhc3Q8dm9pZCo+KHNyY0RhdGEpKTsKKyAgICBpZiAodXBkYXRl
Q29udGVudHNGbGFnICYgVXBkYXRlU2hvdWxkTm90U3dpenpsZSkgeworICAgICAgICB1cGRhdGVD
b250ZW50c05vU3dpenpsZShkYXRhLCB0YXJnZXRSZWN0LCBzb3VyY2VPZmZzZXQsIGJ5dGVzUGVy
TGluZSwgYnl0ZXNQZXJQaXhlbCwgZ2xGb3JtYXQpOworICAgICAgICByZXR1cm47CisgICAgfQor
CiAgICAgVmVjdG9yPGNoYXI+IHRlbXBvcmFyeURhdGE7CiAgICAgSW50UG9pbnQgYWRqdXN0ZWRT
b3VyY2VPZmZzZXQgPSBzb3VyY2VPZmZzZXQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuaAppbmRleCBlOGUw
YjQ0NTc1ZTliNzYyZTY1MjhlYzg3YzExNWQ2MGY5YTAwYmQ1Li44ZTMzOWM4ZGYzNDcxOGU4NmRi
YWU2Yzk5ZTAyYzAzNzZkODE2MGQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5oCkBAIC00OCw3ICs0OCw4
IEBAIHB1YmxpYzoKICAgICAgICAgU2hvdWxkQmxlbmQgPSAweDAxLAogICAgICAgICBTaG91bGRG
bGlwVGV4dHVyZSA9IDB4MDIsCiAgICAgICAgIFNob3VsZFVzZUFSQlRleHR1cmVSZWN0ID0gMHgw
NCwKLSAgICAgICAgU2hvdWxkQW50aWFsaWFzID0gMHgwOAorICAgICAgICBTaG91bGRBbnRpYWxp
YXMgPSAweDA4LAorICAgICAgICBTaG91bGREcmF3Um91bmRlZENvcm5lcnMgPSAweDEwCiAgICAg
fTsKIAogICAgIHR5cGVkZWYgaW50IEZsYWdzOwpAQCAtNjEsOSArNjIsOSBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIGRyYXdTb2xpZENvbG9yKGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IFRy
YW5zZm9ybWF0aW9uTWF0cml4JiwgY29uc3QgQ29sb3ImKSBPVkVSUklERTsKIAogICAgIHZpcnR1
YWwgdm9pZCBiaW5kU3VyZmFjZShCaXRtYXBUZXh0dXJlKiBzdXJmYWNlKSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIHZvaWQgYmVnaW5DbGlwKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgY29u
c3QgRmxvYXRSZWN0JikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGJlZ2luUGFpbnRpbmco
UGFpbnRGbGFncyA9IDApIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBlbmRQYWludGluZygp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBiZWdpbkNsaXAoY29uc3QgVHJhbnNmb3JtYXRp
b25NYXRyaXgmLCBjb25zdCBGbG9hdFJlY3QmKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQg
ZW5kQ2xpcCgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgSW50UmVjdCBjbGlwQm91bmRzKCkgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCBJbnRTaXplIG1heFRleHR1cmVTaXplKCkgY29uc3QgT1ZFUlJJ
REUgeyByZXR1cm4gSW50U2l6ZSgyMDAwLCAyMDAwKTsgfQpAQCAtMTI5LDExICsxMzAsMTIgQEAg
cHJpdmF0ZToKIAogICAgIFRleHR1cmVNYXBwZXJHTCgpOwogCi0gICAgdm9pZCBkcmF3VGV4dHVy
ZWRRdWFkV2l0aFByb2dyYW0oVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0qLCB1aW50MzJfdCB0
ZXh0dXJlLCBGbGFncywgY29uc3QgSW50U2l6ZSYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IFRy
YW5zZm9ybWF0aW9uTWF0cml4JiBtb2RlbFZpZXdNYXRyaXgsIGZsb2F0IG9wYWNpdHkpOwotICAg
IHZvaWQgZHJhdyhjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYg
bW9kZWxWaWV3TWF0cml4LCBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbSosIEdDM0RlbnVtIGRy
YXdpbmdNb2RlLCBGbGFncyk7CisgICAgdm9pZCBkcmF3VGV4dHVyZWRRdWFkV2l0aFByb2dyYW0o
VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0qLCB1aW50MzJfdCB0ZXh0dXJlLCBGbGFncywgY29u
c3QgSW50U2l6ZSYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4
JiBtb2RlbFZpZXdNYXRyaXgsIGZsb2F0IG9wYWNpdHksIGNvbnN0IEZsb2F0UXVhZCYgaW5uZXJR
dWFkID0gRmxvYXRRdWFkKCkpOworICAgIHZvaWQgZHJhdyhjb25zdCBGbG9hdFJlY3QmLCBjb25z
dCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgbW9kZWxWaWV3TWF0cml4LCBUZXh0dXJlTWFwcGVyU2hh
ZGVyUHJvZ3JhbSosIEdDM0RlbnVtIGRyYXdpbmdNb2RlLCBGbGFncywgY29uc3QgRmxvYXRRdWFk
JiBpbm5lclF1YWQgPSBGbG9hdFF1YWQoKSk7CiAKICAgICB2b2lkIGRyYXdVbml0UmVjdChUZXh0
dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbSosIEdDM0RlbnVtIGRyYXdpbmdNb2RlKTsKICAgICB2b2lk
IGRyYXdFZGdlVHJpYW5nbGVzKFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtKik7CisgICAgdm9p
ZCBkcmF3Um91bmRlZENvcm5lcnMoVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0qLCBjb25zdCBG
bG9hdFF1YWQmKTsKIAogICAgIGJvb2wgYmVnaW5TY2lzc29yQ2xpcChjb25zdCBUcmFuc2Zvcm1h
dGlvbk1hdHJpeCYsIGNvbnN0IEZsb2F0UmVjdCYpOwogICAgIHZvaWQgYmluZERlZmF1bHRTdXJm
YWNlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuY3BwCmluZGV4IGU2M2MzOGU4ZmYzMWY1NTAy
ZDljNzUyNzJiZTE4ODYzM2IyOWEyZDIuLjY3MGE2Y2JhZTI1ZjcyN2U1NTEwZTVhMmFkZWUyNTVj
N2M0ZmNjNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuY3BwCkBAIC0zNSw2ICszNSw3IEBA
IHB1YmxpYzoKICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCB0cmFuc2Zvcm07CiAgICAgSW50U2l6
ZSBvZmZzZXQ7CiAgICAgVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlcjsKKyAgICBSb3VuZGVk
UmVjdCByb3VuZGVkUmVjdE1hc2s7CiAgICAgVGV4dHVyZU1hcHBlclBhaW50T3B0aW9ucygpCiAg
ICAgICAgIDogb3BhY2l0eSgxKQogICAgICAgICAsIHRleHR1cmVNYXBwZXIoMCkKQEAgLTExMCwy
MSArMTExLDIyIEBAIHZvaWQgVGV4dHVyZU1hcHBlckxheWVyOjpjb21wdXRlUGF0dGVyblRyYW5z
Zm9ybUlmTmVlZGVkKCkKICAgICAgICAgLm11bHRpcGx5KFRyYW5zZm9ybWF0aW9uTWF0cml4KCku
dHJhbnNsYXRlKG1fc3RhdGUuY29udGVudHNUaWxlUGhhc2UueCgpIC8gbV9zdGF0ZS5jb250ZW50
c1JlY3Qud2lkdGgoKSwgbV9zdGF0ZS5jb250ZW50c1RpbGVQaGFzZS55KCkgLyBtX3N0YXRlLmNv
bnRlbnRzUmVjdC5oZWlnaHQoKSkpOwogfQogCi12b2lkIFRleHR1cmVNYXBwZXJMYXllcjo6cGFp
bnRTZWxmKGNvbnN0IFRleHR1cmVNYXBwZXJQYWludE9wdGlvbnMmIG9wdGlvbnMpCit2b2lkIFRl
eHR1cmVNYXBwZXJMYXllcjo6cGFpbnRTZWxmV2l0aFJhZGlpKGNvbnN0IFRleHR1cmVNYXBwZXJQ
YWludE9wdGlvbnMmIG9wdGlvbnMpCiB7CiAgICAgaWYgKCFtX3N0YXRlLnZpc2libGUgfHwgIW1f
c3RhdGUuY29udGVudHNWaXNpYmxlKQogICAgICAgICByZXR1cm47CiAKLSAgICAvLyBXZSBhcHBs
eSB0aGUgZm9sbG93aW5nIHRyYW5zZm9ybSB0byBjb21wZW5zYXRlIGZvciBwYWludGluZyBpbnRv
IGEgc3VyZmFjZSwgYW5kIHRoZW4gYXBwbHkgdGhlIG9mZnNldCBzbyB0aGF0IHRoZSBwYWludGlu
ZyBmaXRzIGluIHRoZSB0YXJnZXQgcmVjdC4KLSAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCB0cmFu
c2Zvcm07Ci0gICAgdHJhbnNmb3JtLnRyYW5zbGF0ZShvcHRpb25zLm9mZnNldC53aWR0aCgpLCBv
cHRpb25zLm9mZnNldC5oZWlnaHQoKSk7Ci0gICAgdHJhbnNmb3JtLm11bHRpcGx5KG9wdGlvbnMu
dHJhbnNmb3JtKTsKLSAgICB0cmFuc2Zvcm0ubXVsdGlwbHkobV9jdXJyZW50VHJhbnNmb3JtLmNv
bWJpbmVkKCkpOworICAgIG9wdGlvbnMudGV4dHVyZU1hcHBlci0+c2V0Um91bmRlZFJlY3RNYXNr
KG9wdGlvbnMucm91bmRlZFJlY3RNYXNrKTsKKyAgICBwYWludFNlbGYob3B0aW9ucyk7CisgICAg
b3B0aW9ucy50ZXh0dXJlTWFwcGVyLT5zZXRSb3VuZGVkUmVjdE1hc2soUm91bmRlZFJlY3QoKSk7
Cit9CiAKK3ZvaWQgVGV4dHVyZU1hcHBlckxheWVyOjpwYWludFNlbGYoY29uc3QgVGV4dHVyZU1h
cHBlclBhaW50T3B0aW9ucyYgb3B0aW9ucykKK3sKICAgICBpZiAobV9zdGF0ZS5zb2xpZENvbG9y
LmlzVmFsaWQoKSAmJiAhbV9zdGF0ZS5jb250ZW50c1JlY3QuaXNFbXB0eSgpICYmIG1fc3RhdGUu
c29saWRDb2xvci5hbHBoYSgpKSB7Ci0gICAgICAgIG9wdGlvbnMudGV4dHVyZU1hcHBlci0+ZHJh
d1NvbGlkQ29sb3IobV9zdGF0ZS5jb250ZW50c1JlY3QsIHRyYW5zZm9ybSwgYmxlbmRXaXRoT3Bh
Y2l0eShtX3N0YXRlLnNvbGlkQ29sb3IsIG9wdGlvbnMub3BhY2l0eSkpOworICAgICAgICBvcHRp
b25zLnRleHR1cmVNYXBwZXItPmRyYXdTb2xpZENvbG9yKG1fc3RhdGUuY29udGVudHNSZWN0LCBv
cHRpb25zLnRyYW5zZm9ybSwgYmxlbmRXaXRoT3BhY2l0eShtX3N0YXRlLnNvbGlkQ29sb3IsIG9w
dGlvbnMub3BhY2l0eSkpOwogICAgICAgICBpZiAobV9zdGF0ZS5zaG93RGVidWdCb3JkZXJzKQot
ICAgICAgICAgICAgb3B0aW9ucy50ZXh0dXJlTWFwcGVyLT5kcmF3Qm9yZGVyKG1fc3RhdGUuZGVi
dWdCb3JkZXJDb2xvciwgbV9zdGF0ZS5kZWJ1Z0JvcmRlcldpZHRoLCBsYXllclJlY3QoKSwgdHJh
bnNmb3JtKTsKKyAgICAgICAgICAgIG9wdGlvbnMudGV4dHVyZU1hcHBlci0+ZHJhd0JvcmRlciht
X3N0YXRlLmRlYnVnQm9yZGVyQ29sb3IsIG1fc3RhdGUuZGVidWdCb3JkZXJXaWR0aCwgbGF5ZXJS
ZWN0KCksIG9wdGlvbnMudHJhbnNmb3JtKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAt
MTM0LDEyICsxMzYsMTIgQEAgdm9pZCBUZXh0dXJlTWFwcGVyTGF5ZXI6OnBhaW50U2VsZihjb25z
dCBUZXh0dXJlTWFwcGVyUGFpbnRPcHRpb25zJiBvcHRpb25zKQogICAgIGlmIChtX2JhY2tpbmdT
dG9yZSkgewogICAgICAgICBGbG9hdFJlY3QgdGFyZ2V0UmVjdCA9IGxheWVyUmVjdCgpOwogICAg
ICAgICBBU1NFUlQoIXRhcmdldFJlY3QuaXNFbXB0eSgpKTsKLSAgICAgICAgbV9iYWNraW5nU3Rv
cmUtPnBhaW50VG9UZXh0dXJlTWFwcGVyKG9wdGlvbnMudGV4dHVyZU1hcHBlciwgdGFyZ2V0UmVj
dCwgdHJhbnNmb3JtLCBvcHRpb25zLm9wYWNpdHkpOworICAgICAgICBtX2JhY2tpbmdTdG9yZS0+
cGFpbnRUb1RleHR1cmVNYXBwZXIob3B0aW9ucy50ZXh0dXJlTWFwcGVyLCB0YXJnZXRSZWN0LCBv
cHRpb25zLnRyYW5zZm9ybSwgb3B0aW9ucy5vcGFjaXR5KTsKICAgICAgICAgaWYgKG1fc3RhdGUu
c2hvd0RlYnVnQm9yZGVycykKLSAgICAgICAgICAgIG1fYmFja2luZ1N0b3JlLT5kcmF3Qm9yZGVy
KG9wdGlvbnMudGV4dHVyZU1hcHBlciwgbV9zdGF0ZS5kZWJ1Z0JvcmRlckNvbG9yLCBtX3N0YXRl
LmRlYnVnQm9yZGVyV2lkdGgsIHRhcmdldFJlY3QsIHRyYW5zZm9ybSk7CisgICAgICAgICAgICBt
X2JhY2tpbmdTdG9yZS0+ZHJhd0JvcmRlcihvcHRpb25zLnRleHR1cmVNYXBwZXIsIG1fc3RhdGUu
ZGVidWdCb3JkZXJDb2xvciwgbV9zdGF0ZS5kZWJ1Z0JvcmRlcldpZHRoLCB0YXJnZXRSZWN0LCBv
cHRpb25zLnRyYW5zZm9ybSk7CiAgICAgICAgIC8vIE9ubHkgZHJhdyByZXBhaW50IGNvdW50IGZv
ciB0aGUgbWFpbiBiYWNraW5nIHN0b3JlLgogICAgICAgICBpZiAobV9zdGF0ZS5zaG93UmVwYWlu
dENvdW50ZXIpCi0gICAgICAgICAgICBtX2JhY2tpbmdTdG9yZS0+ZHJhd1JlcGFpbnRDb3VudGVy
KG9wdGlvbnMudGV4dHVyZU1hcHBlciwgbV9zdGF0ZS5yZXBhaW50Q291bnQsIG1fc3RhdGUuZGVi
dWdCb3JkZXJDb2xvciwgdGFyZ2V0UmVjdCwgdHJhbnNmb3JtKTsKKyAgICAgICAgICAgIG1fYmFj
a2luZ1N0b3JlLT5kcmF3UmVwYWludENvdW50ZXIob3B0aW9ucy50ZXh0dXJlTWFwcGVyLCBtX3N0
YXRlLnJlcGFpbnRDb3VudCwgbV9zdGF0ZS5kZWJ1Z0JvcmRlckNvbG9yLCB0YXJnZXRSZWN0LCBv
cHRpb25zLnRyYW5zZm9ybSk7CiAgICAgfQogCiAgICAgaWYgKCFtX2NvbnRlbnRzTGF5ZXIpCkBA
IC0xNTIsOSArMTU0LDkgQEAgdm9pZCBUZXh0dXJlTWFwcGVyTGF5ZXI6OnBhaW50U2VsZihjb25z
dCBUZXh0dXJlTWFwcGVyUGFpbnRPcHRpb25zJiBvcHRpb25zKQogICAgIH0KIAogICAgIEFTU0VS
VCghbGF5ZXJSZWN0KCkuaXNFbXB0eSgpKTsKLSAgICBtX2NvbnRlbnRzTGF5ZXItPnBhaW50VG9U
ZXh0dXJlTWFwcGVyKG9wdGlvbnMudGV4dHVyZU1hcHBlciwgbV9zdGF0ZS5jb250ZW50c1JlY3Qs
IHRyYW5zZm9ybSwgb3B0aW9ucy5vcGFjaXR5KTsKKyAgICBtX2NvbnRlbnRzTGF5ZXItPnBhaW50
VG9UZXh0dXJlTWFwcGVyKG9wdGlvbnMudGV4dHVyZU1hcHBlciwgbV9zdGF0ZS5jb250ZW50c1Jl
Y3QsIG9wdGlvbnMudHJhbnNmb3JtLCBvcHRpb25zLm9wYWNpdHkpOwogICAgIGlmIChtX3N0YXRl
LnNob3dEZWJ1Z0JvcmRlcnMpCi0gICAgICAgIG1fY29udGVudHNMYXllci0+ZHJhd0JvcmRlcihv
cHRpb25zLnRleHR1cmVNYXBwZXIsIG1fc3RhdGUuZGVidWdCb3JkZXJDb2xvciwgbV9zdGF0ZS5k
ZWJ1Z0JvcmRlcldpZHRoLCBtX3N0YXRlLmNvbnRlbnRzUmVjdCwgdHJhbnNmb3JtKTsKKyAgICAg
ICAgbV9jb250ZW50c0xheWVyLT5kcmF3Qm9yZGVyKG9wdGlvbnMudGV4dHVyZU1hcHBlciwgbV9z
dGF0ZS5kZWJ1Z0JvcmRlckNvbG9yLCBtX3N0YXRlLmRlYnVnQm9yZGVyV2lkdGgsIG1fc3RhdGUu
Y29udGVudHNSZWN0LCBvcHRpb25zLnRyYW5zZm9ybSk7CiB9CiAKIGludCBUZXh0dXJlTWFwcGVy
TGF5ZXI6OmNvbXBhcmVHcmFwaGljc0xheWVyc1pWYWx1ZShjb25zdCB2b2lkKiBhLCBjb25zdCB2
b2lkKiBiKQpAQCAtMTcxLDI1ICsxNzMsMzQgQEAgdm9pZCBUZXh0dXJlTWFwcGVyTGF5ZXI6OnNv
cnRCeVpPcmRlcihWZWN0b3I8VGV4dHVyZU1hcHBlckxheWVyKiA+JiBhcnJheSkKIAogdm9pZCBU
ZXh0dXJlTWFwcGVyTGF5ZXI6OnBhaW50U2VsZkFuZENoaWxkcmVuKGNvbnN0IFRleHR1cmVNYXBw
ZXJQYWludE9wdGlvbnMmIG9wdGlvbnMpCiB7Ci0gICAgcGFpbnRTZWxmKG9wdGlvbnMpOwotCi0g
ICAgaWYgKG1fY2hpbGRyZW4uaXNFbXB0eSgpKQotICAgICAgICByZXR1cm47CisgICAgVGV4dHVy
ZU1hcHBlclBhaW50T3B0aW9ucyBzZWxmT3B0aW9ucyA9IGFwcGx5U2VsZlRyYW5zZm9ybShvcHRp
b25zKTsKKyAgICBwYWludFNlbGZXaXRoUmFkaWkoc2VsZk9wdGlvbnMpOwogCi0gICAgYm9vbCBz
aG91bGRDbGlwID0gbV9zdGF0ZS5tYXNrc1RvQm91bmRzICYmICFtX3N0YXRlLnByZXNlcnZlczNE
OwotICAgIGlmIChzaG91bGRDbGlwKSB7Ci0gICAgICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IGNs
aXBUcmFuc2Zvcm07Ci0gICAgICAgIGNsaXBUcmFuc2Zvcm0udHJhbnNsYXRlKG9wdGlvbnMub2Zm
c2V0LndpZHRoKCksIG9wdGlvbnMub2Zmc2V0LmhlaWdodCgpKTsKLSAgICAgICAgY2xpcFRyYW5z
Zm9ybS5tdWx0aXBseShvcHRpb25zLnRyYW5zZm9ybSk7Ci0gICAgICAgIGNsaXBUcmFuc2Zvcm0u
bXVsdGlwbHkobV9jdXJyZW50VHJhbnNmb3JtLmNvbWJpbmVkKCkpOwotICAgICAgICBvcHRpb25z
LnRleHR1cmVNYXBwZXItPmJlZ2luQ2xpcChjbGlwVHJhbnNmb3JtLCBsYXllclJlY3QoKSk7Ci0g
ICAgfQorICAgIGJvb2wgc2hvdWxkQ2xpcCA9IG1fc3RhdGUubWFza3NUb0JvdW5kcyAmJiAhbV9z
dGF0ZS5wcmVzZXJ2ZXMzRCAmJiAhbV9jaGlsZHJlbi5pc0VtcHR5KCk7CisgICAgaWYgKHNob3Vs
ZENsaXApCisgICAgICAgIG9wdGlvbnMudGV4dHVyZU1hcHBlci0+YmVnaW5DbGlwKHNlbGZPcHRp
b25zLnRyYW5zZm9ybSwgbGF5ZXJSZWN0KCkpOwogCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBtX2NoaWxkcmVuLnNpemUoKTsgKytpKQogICAgICAgICBtX2NoaWxkcmVuW2ldLT5wYWludFJl
Y3Vyc2l2ZShvcHRpb25zKTsKIAotICAgIGlmIChzaG91bGRDbGlwKQotICAgICAgICBvcHRpb25z
LnRleHR1cmVNYXBwZXItPmVuZENsaXAoKTsKKyAgICBpZiAoIXNob3VsZENsaXApCisgICAgICAg
IHJldHVybjsKKworICAgIG9wdGlvbnMudGV4dHVyZU1hcHBlci0+ZW5kQ2xpcCgpOworfQorCiti
b29sIFRleHR1cmVNYXBwZXJMYXllcjo6c2hvdWxkVXNlU3VyZmFjZUZvclJvdW5kZWRSZWN0TWFz
aygpIGNvbnN0Cit7CisgICAgaWYgKCFtX3N0YXRlLnJvdW5kZWRSZWN0TWFzay5pc1JvdW5kZWQo
KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFtX2NoaWxkcmVuLmlzRW1wdHko
KSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBpZiAobV9jb250ZW50c0xheWVyICYmIG1f
c3RhdGUuY29udGVudHNSZWN0ID09IGxheWVyUmVjdCgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsK
KworICAgIHJldHVybiBmYWxzZTsKIH0KIAogYm9vbCBUZXh0dXJlTWFwcGVyTGF5ZXI6OnNob3Vs
ZEJsZW5kKCkgY29uc3QKQEAgLTIwMCw2ICsyMTEsNyBAQCBib29sIFRleHR1cmVNYXBwZXJMYXll
cjo6c2hvdWxkQmxlbmQoKSBjb25zdAogICAgIHJldHVybiBtX2N1cnJlbnRPcGFjaXR5IDwgMQog
ICAgICAgICB8fCBoYXNGaWx0ZXJzKCkKICAgICAgICAgfHwgbV9zdGF0ZS5tYXNrTGF5ZXIKKyAg
ICAgICAgfHwgc2hvdWxkVXNlU3VyZmFjZUZvclJvdW5kZWRSZWN0TWFzaygpCiAgICAgICAgIHx8
IChtX3N0YXRlLnJlcGxpY2FMYXllciAmJiBtX3N0YXRlLnJlcGxpY2FMYXllci0+bV9zdGF0ZS5t
YXNrTGF5ZXIpOwogfQogCkBAIC0yOTAsMTggKzMwMiwyMCBAQCB2b2lkIFRleHR1cmVNYXBwZXJM
YXllcjo6Y29tcHV0ZU92ZXJsYXBSZWdpb25zKFJlZ2lvbiYgb3ZlcmxhcFJlZ2lvbiwgUmVnaW9u
JiBubwogCiAgICAgYm91bmRpbmdSZWN0ID0gbV9jdXJyZW50VHJhbnNmb3JtLmNvbWJpbmVkKCku
bWFwUmVjdChib3VuZGluZ1JlY3QpOwogCi0gICAgLy8gQ291bnQgYWxsIG1hc2tzIGFuZCBmaWx0
ZXJzIGFzIG92ZXJsYXAgbGF5ZXJzLgotICAgIGlmIChoYXNGaWx0ZXJzKCkgfHwgbV9zdGF0ZS5t
YXNrTGF5ZXIgfHwgKG1fc3RhdGUucmVwbGljYUxheWVyICYmIG1fc3RhdGUucmVwbGljYUxheWVy
LT5tX3N0YXRlLm1hc2tMYXllcikpIHsKKyAgICBib29sIGhhc0VmZmVjdCA9IHRoaXMtPmhhc0Zp
bHRlcnMoKSB8fCBtX3N0YXRlLm1hc2tMYXllciB8fCAobV9zdGF0ZS5yZXBsaWNhTGF5ZXIgJiYg
bV9zdGF0ZS5yZXBsaWNhTGF5ZXItPm1fc3RhdGUubWFza0xheWVyKTsKKyAgICBib29sIGhhc1Jv
dW5kZWRSZWN0TWFzayA9IG1fc3RhdGUucm91bmRlZFJlY3RNYXNrLmlzUm91bmRlZCgpOworICAg
IGJvb2wgbWFza3NUb0JvdW5kcyA9IG1fc3RhdGUubWFza3NUb0JvdW5kcyB8fCBoYXNFZmZlY3Qg
fHwgaGFzUm91bmRlZFJlY3RNYXNrOworCisgICAgaWYgKGhhc0VmZmVjdCB8fCBoYXNSb3VuZGVk
UmVjdE1hc2spIHsKICAgICAgICAgUmVnaW9uIG5ld092ZXJsYXBSZWdpb24oZW5jbG9zaW5nSW50
UmVjdChib3VuZGluZ1JlY3QpKTsKICAgICAgICAgbm9uT3ZlcmxhcFJlZ2lvbi5zdWJ0cmFjdChu
ZXdPdmVybGFwUmVnaW9uKTsKICAgICAgICAgb3ZlcmxhcFJlZ2lvbi51bml0ZShuZXdPdmVybGFw
UmVnaW9uKTsKLSAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIFJlZ2lvbiBuZXdPdmVybGFw
UmVnaW9uOwogICAgIFJlZ2lvbiBuZXdOb25PdmVybGFwUmVnaW9uKGVuY2xvc2luZ0ludFJlY3Qo
Ym91bmRpbmdSZWN0KSk7CiAKLSAgICBpZiAoIW1fc3RhdGUubWFza3NUb0JvdW5kcykgeworICAg
IGlmICghbWFza3NUb0JvdW5kcykgewogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1f
Y2hpbGRyZW4uc2l6ZSgpOyArK2kpIHsKICAgICAgICAgICAgIFRleHR1cmVNYXBwZXJMYXllciog
Y2hpbGQgPSBtX2NoaWxkcmVuW2ldOwogICAgICAgICAgICAgY2hpbGQtPmNvbXB1dGVPdmVybGFw
UmVnaW9ucyhuZXdPdmVybGFwUmVnaW9uLCBuZXdOb25PdmVybGFwUmVnaW9uLCBSZXNvbHZlU2Vs
Zk92ZXJsYXBJZk5lZWRlZCk7CkBAIC0zNzgsMTAgKzM5MiwyMiBAQCB2b2lkIFRleHR1cmVNYXBw
ZXJMYXllcjo6cGFpbnRVc2luZ092ZXJsYXBSZWdpb25zKGNvbnN0IFRleHR1cmVNYXBwZXJQYWlu
dE9wdGlvbgogICAgIH0KIH0KIAorVGV4dHVyZU1hcHBlclBhaW50T3B0aW9ucyBUZXh0dXJlTWFw
cGVyTGF5ZXI6OmFwcGx5U2VsZlRyYW5zZm9ybShjb25zdCBUZXh0dXJlTWFwcGVyUGFpbnRPcHRp
b25zJiBvcHRpb25zKQoreworICAgIFRleHR1cmVNYXBwZXJQYWludE9wdGlvbnMgbmV3T3B0aW9u
cyhvcHRpb25zKTsKKyAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBuZXdUcmFuc2Zvcm07CisgICAg
bmV3VHJhbnNmb3JtLnRyYW5zbGF0ZShvcHRpb25zLm9mZnNldC53aWR0aCgpLCBvcHRpb25zLm9m
ZnNldC5oZWlnaHQoKSk7CisgICAgbmV3VHJhbnNmb3JtLm11bHRpcGx5KG9wdGlvbnMudHJhbnNm
b3JtKTsKKyAgICBuZXdUcmFuc2Zvcm0ubXVsdGlwbHkobV9jdXJyZW50VHJhbnNmb3JtLmNvbWJp
bmVkKCkpOworICAgIG5ld09wdGlvbnMudHJhbnNmb3JtID0gbmV3VHJhbnNmb3JtOworICAgIHJl
dHVybiBuZXdPcHRpb25zOworfQorCiB2b2lkIFRleHR1cmVNYXBwZXJMYXllcjo6YXBwbHlNYXNr
KGNvbnN0IFRleHR1cmVNYXBwZXJQYWludE9wdGlvbnMmIG9wdGlvbnMpCiB7CiAgICAgb3B0aW9u
cy50ZXh0dXJlTWFwcGVyLT5zZXRNYXNrTW9kZSh0cnVlKTsKLSAgICBwYWludFNlbGYob3B0aW9u
cyk7CisKKyAgICBwYWludFNlbGZXaXRoUmFkaWkoYXBwbHlTZWxmVHJhbnNmb3JtKG9wdGlvbnMp
KTsKICAgICBvcHRpb25zLnRleHR1cmVNYXBwZXItPnNldE1hc2tNb2RlKGZhbHNlKTsKIH0KIApA
QCAtNDA3LDcgKzQzMyw5IEBAIHN0YXRpYyB2b2lkIGNvbW1pdFN1cmZhY2UoY29uc3QgVGV4dHVy
ZU1hcHBlclBhaW50T3B0aW9ucyYgb3B0aW9ucywgUGFzc1JlZlB0cjxCCiAgICAgVHJhbnNmb3Jt
YXRpb25NYXRyaXggdGFyZ2V0VHJhbnNmb3JtOwogICAgIHRhcmdldFRyYW5zZm9ybS50cmFuc2xh
dGUob3B0aW9ucy5vZmZzZXQud2lkdGgoKSwgb3B0aW9ucy5vZmZzZXQuaGVpZ2h0KCkpOwogICAg
IHRhcmdldFRyYW5zZm9ybS5tdWx0aXBseShvcHRpb25zLnRyYW5zZm9ybSk7CisgICAgb3B0aW9u
cy50ZXh0dXJlTWFwcGVyLT5zZXRSb3VuZGVkUmVjdE1hc2sob3B0aW9ucy5yb3VuZGVkUmVjdE1h
c2spOwogICAgIG9wdGlvbnMudGV4dHVyZU1hcHBlci0+ZHJhd1RleHR1cmUoKnN1cmZhY2UuZ2V0
KCksIHJlY3QsIHRhcmdldFRyYW5zZm9ybSwgb3BhY2l0eSk7CisgICAgb3B0aW9ucy50ZXh0dXJl
TWFwcGVyLT5zZXRSb3VuZGVkUmVjdE1hc2soUm91bmRlZFJlY3QoKSk7CiB9CiAKIHZvaWQgVGV4
dHVyZU1hcHBlckxheWVyOjpwYWludFdpdGhJbnRlcm1lZGlhdGVTdXJmYWNlKGNvbnN0IFRleHR1
cmVNYXBwZXJQYWludE9wdGlvbnMmIG9wdGlvbnMsIGNvbnN0IEludFJlY3QmIHJlY3QpCkBAIC00
MTcsNiArNDQ1LDcgQEAgdm9pZCBUZXh0dXJlTWFwcGVyTGF5ZXI6OnBhaW50V2l0aEludGVybWVk
aWF0ZVN1cmZhY2UoY29uc3QgVGV4dHVyZU1hcHBlclBhaW50T3AKICAgICBUZXh0dXJlTWFwcGVy
UGFpbnRPcHRpb25zIHBhaW50T3B0aW9ucyhvcHRpb25zKTsKICAgICBwYWludE9wdGlvbnMub2Zm
c2V0ID0gLUludFNpemUocmVjdC54KCksIHJlY3QueSgpKTsKICAgICBwYWludE9wdGlvbnMub3Bh
Y2l0eSA9IDE7CisgICAgcGFpbnRPcHRpb25zLnJvdW5kZWRSZWN0TWFzayA9IFJvdW5kZWRSZWN0
KCk7CiAgICAgcGFpbnRPcHRpb25zLnRyYW5zZm9ybSA9IFRyYW5zZm9ybWF0aW9uTWF0cml4KCk7
CiAgICAgaWYgKG1fc3RhdGUucmVwbGljYUxheWVyKSB7CiAgICAgICAgIHBhaW50T3B0aW9ucy50
cmFuc2Zvcm0gPSByZXBsaWNhVHJhbnNmb3JtKCk7CkBAIC00NDgsNiArNDc3LDcgQEAgdm9pZCBU
ZXh0dXJlTWFwcGVyTGF5ZXI6OnBhaW50UmVjdXJzaXZlKGNvbnN0IFRleHR1cmVNYXBwZXJQYWlu
dE9wdGlvbnMmIG9wdGlvbnMKIAogICAgIFRleHR1cmVNYXBwZXJQYWludE9wdGlvbnMgcGFpbnRP
cHRpb25zKG9wdGlvbnMpOwogICAgIHBhaW50T3B0aW9ucy5vcGFjaXR5ICo9IG1fY3VycmVudE9w
YWNpdHk7CisgICAgcGFpbnRPcHRpb25zLnJvdW5kZWRSZWN0TWFzayA9IG1fc3RhdGUucm91bmRl
ZFJlY3RNYXNrOwogCiAgICAgaWYgKCFzaG91bGRCbGVuZCgpKSB7CiAgICAgICAgIHBhaW50U2Vs
ZkFuZENoaWxkcmVuV2l0aFJlcGxpY2EocGFpbnRPcHRpb25zKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5
ZXIuaAppbmRleCBhODVjNGVhOGU5YTY5YmQwMTZhYTNlYjM2NTliYzM2MjgyNWFiNDQyLi4xNWE4
OTg0MzJiY2JmZDQ0N2I0YTg1OTNiZDZjZGRjYWJjYmY1MjQxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJM
YXllci5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVk
ZSAiR3JhcGhpY3NMYXllckFuaW1hdGlvbi5oIgogI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXJUcmFu
c2Zvcm0uaCIKKyNpbmNsdWRlICJSb3VuZGVkUmVjdC5oIgogI2luY2x1ZGUgIlRleHR1cmVNYXBw
ZXIuaCIKICNpbmNsdWRlICJUZXh0dXJlTWFwcGVyQmFja2luZ1N0b3JlLmgiCiAKQEAgLTEwMSw2
ICsxMDIsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRTb2xpZENvbG9yKGNvbnN0IENvbG9yJik7
CiAgICAgdm9pZCBzZXRDb250ZW50c1RpbGVTaXplKGNvbnN0IEludFNpemUmKTsKICAgICB2b2lk
IHNldENvbnRlbnRzVGlsZVBoYXNlKGNvbnN0IEludFBvaW50Jik7CisgICAgdm9pZCBzZXRSb3Vu
ZGVkUmVjdE1hc2soY29uc3QgUm91bmRlZFJlY3QmIHIpIHsgbV9zdGF0ZS5yb3VuZGVkUmVjdE1h
c2sgPSByOyB9CisKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgdm9pZCBzZXRGaWx0ZXJz
KGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmKTsKICNlbmRpZgpAQCAtMTU4LDYgKzE2MSw3IEBAIHBy
aXZhdGU6CiAgICAgUGFzc1JlZlB0cjxCaXRtYXBUZXh0dXJlPiBwYWludEludG9TdXJmYWNlKGNv
bnN0IFRleHR1cmVNYXBwZXJQYWludE9wdGlvbnMmLCBjb25zdCBJbnRTaXplJik7CiAgICAgdm9p
ZCBwYWludFdpdGhJbnRlcm1lZGlhdGVTdXJmYWNlKGNvbnN0IFRleHR1cmVNYXBwZXJQYWludE9w
dGlvbnMmLCBjb25zdCBJbnRSZWN0Jik7CiAgICAgdm9pZCBwYWludFNlbGYoY29uc3QgVGV4dHVy
ZU1hcHBlclBhaW50T3B0aW9ucyYpOworICAgIHZvaWQgcGFpbnRTZWxmV2l0aFJhZGlpKGNvbnN0
IFRleHR1cmVNYXBwZXJQYWludE9wdGlvbnMmKTsKICAgICB2b2lkIHBhaW50U2VsZkFuZENoaWxk
cmVuKGNvbnN0IFRleHR1cmVNYXBwZXJQYWludE9wdGlvbnMmKTsKICAgICB2b2lkIHBhaW50U2Vs
ZkFuZENoaWxkcmVuV2l0aFJlcGxpY2EoY29uc3QgVGV4dHVyZU1hcHBlclBhaW50T3B0aW9ucyYp
OwogICAgIHZvaWQgYXBwbHlNYXNrKGNvbnN0IFRleHR1cmVNYXBwZXJQYWludE9wdGlvbnMmKTsK
QEAgLTE3OCw2ICsxODIsNyBAQCBwcml2YXRlOgogICAgIH07CiAKICAgICBib29sIHNob3VsZEJs
ZW5kKCkgY29uc3Q7CisgICAgYm9vbCBzaG91bGRVc2VTdXJmYWNlRm9yUm91bmRlZFJlY3RNYXNr
KCkgY29uc3Q7CiAKICAgICBpbmxpbmUgRmxvYXRSZWN0IGxheWVyUmVjdCgpIGNvbnN0CiAgICAg
ewpAQCAtMjAyLDYgKzIwNyw4IEBAIHByaXZhdGU6CiAgICAgRmxvYXRTaXplIG1hcFNjcm9sbE9m
ZnNldChjb25zdCBGbG9hdFNpemUmKTsKICAgICB2b2lkIGNvbW1pdFNjcm9sbE9mZnNldChjb25z
dCBGbG9hdFNpemUmKTsKIAorICAgIFRleHR1cmVNYXBwZXJQYWludE9wdGlvbnMgYXBwbHlTZWxm
VHJhbnNmb3JtKGNvbnN0IFRleHR1cmVNYXBwZXJQYWludE9wdGlvbnMmKTsKKwogICAgIHN0cnVj
dCBTdGF0ZSB7CiAgICAgICAgIEZsb2F0UG9pbnQgcG9zOwogICAgICAgICBGbG9hdFBvaW50M0Qg
YW5jaG9yUG9pbnQ7CkBAIC0yMDksNiArMjE2LDcgQEAgcHJpdmF0ZToKICAgICAgICAgVHJhbnNm
b3JtYXRpb25NYXRyaXggdHJhbnNmb3JtOwogICAgICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBj
aGlsZHJlblRyYW5zZm9ybTsKICAgICAgICAgZmxvYXQgb3BhY2l0eTsKKyAgICAgICAgUm91bmRl
ZFJlY3Qgcm91bmRlZFJlY3RNYXNrOwogICAgICAgICBGbG9hdFJlY3QgY29udGVudHNSZWN0Owog
ICAgICAgICBJbnRTaXplIGNvbnRlbnRzVGlsZVNpemU7CiAgICAgICAgIEludFBvaW50IGNvbnRl
bnRzVGlsZVBoYXNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5jcHAK
aW5kZXggM2Y2NGM0YjhhMzljMWI1YWRiNjg5OWYzMDIwZTdjOGFjNDU0MmYwMi4uYzVjZDIxNzM3
YjBhNWIxZGI5ZTlhNWQ2MWVjYjI0NjkxMWViZGI5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1h
cHBlclNoYWRlclByb2dyYW0uY3BwCkBAIC0xMjcsNiArMTI3LDcgQEAgc3RhdGljIGNvbnN0IGNo
YXIqIHZlcnRleFRlbXBsYXRlID0KICAgICAgICAgdW5pZm9ybSBtYXQ0IHVfdGV4dHVyZVNwYWNl
TWF0cml4OwogCiAgICAgICAgIHZhcnlpbmcgdmVjMiB2X3RleENvb3JkOworICAgICAgICB2YXJ5
aW5nIHZlYzIgdl9yb3VuZGVkVGV4Q29vcmQ7CiAgICAgICAgIHZhcnlpbmcgZmxvYXQgdl9hbnRp
YWxpYXM7CiAKICAgICAgICAgdm9pZCBub29wKGlub3V0IHZlYzIgZHVtbXlQYXJhbWV0ZXIpIHsg
fQpAQCAtMTY3LDEwICsxNjgsMTYgQEAgc3RhdGljIGNvbnN0IGNoYXIqIHZlcnRleFRlbXBsYXRl
ID0KICAgICAgICAgICAgIHBvc2l0aW9uID0gY2VudGVyICsgKHBvc2l0aW9uIC0gY2VudGVyKSAq
IGluZmxhdGlvblJhdGlvOwogICAgICAgICB9CiAKKyAgICAgICAgdm9pZCBhcHBseVJvdW5kZWRD
b3JuZXJzKGlub3V0IHZlYzIgcG9zaXRpb24pCisgICAgICAgIHsKKyAgICAgICAgICAgIHZfcm91
bmRlZFRleENvb3JkID0gYV92ZXJ0ZXguenc7CisgICAgICAgIH0KKwogICAgICAgICB2b2lkIG1h
aW4odm9pZCkKICAgICAgICAgewogICAgICAgICAgICAgdmVjMiBwb3NpdGlvbiA9IGFfdmVydGV4
Lnh5OwogICAgICAgICAgICAgYXBwbHlBbnRpYWxpYXNpbmdJZk5lZWRlZChwb3NpdGlvbik7Cisg
ICAgICAgICAgICBhcHBseVJvdW5kZWRDb3JuZXJzSWZOZWVkZWQocG9zaXRpb24pOwogCiAgICAg
ICAgICAgICAvLyBUaGUgdGV4dHVyZSBwb3NpdGlvbiBuZWVkcyB0byBiZSBjbGFtcGVkIHRvIDAu
LjEgYmVmb3JlIHRoZSB0ZXh0dXJlIG1hdHJpeCBpcyBhcHBsaWVkLgogICAgICAgICAgICAgdmVj
NCBjbGFtcGVkUG9zaXRpb24gPSBjbGFtcCh2ZWM0KHBvc2l0aW9uLCAwLiwgMS4pLCAwLiwgMS4p
OwpAQCAtMjA1LDE5ICsyMTIsMjEgQEAgc3RhdGljIGNvbnN0IGNoYXIqIGZyYWdtZW50VGVtcGxh
dGUgPQogICAgICAgICB1bmlmb3JtIGZsb2F0IHVfb3BhY2l0eTsKICAgICAgICAgdmFyeWluZyBm
bG9hdCB2X2FudGlhbGlhczsKICAgICAgICAgdmFyeWluZyB2ZWMyIHZfdGV4Q29vcmQ7CisgICAg
ICAgIHZhcnlpbmcgdmVjMiB2X3JvdW5kZWRUZXhDb29yZDsKICAgICAgICAgdW5pZm9ybSBmbG9h
dCB1X2ZpbHRlckFtb3VudDsKICAgICAgICAgdW5pZm9ybSB2ZWMyIHVfYmx1clJhZGl1czsKICAg
ICAgICAgdW5pZm9ybSB2ZWMyIHVfc2hhZG93T2Zmc2V0OwogICAgICAgICB1bmlmb3JtIHZlYzQg
dV9jb2xvcjsKICAgICAgICAgdW5pZm9ybSBmbG9hdCB1X2dhdXNzaWFuS2VybmVsW0dBVVNTSUFO
X0tFUk5FTF9IQUxGX1dJRFRIXTsKIAotICAgICAgICB2b2lkIG5vb3AoaW5vdXQgdmVjNCBkdW1t
eVBhcmFtZXRlcikgeyB9CisgICAgICAgIHZvaWQgbm9vcCh2ZWM0IGR1bW15UGFyYW1ldGVyKSB7
IH0KIAogICAgICAgICBmbG9hdCBhbnRpYWxpYXMoKSB7IHJldHVybiBzbW9vdGhzdGVwKHZfYW50
aWFsaWFzLCAwLiwgMS4pOyB9Ci0KKyAgICAgICAgZmxvYXQgcm91bmRlZENvcm5lcigpIHsgcmV0
dXJuIHN0ZXAoZGlzdGFuY2Uodl9yb3VuZGVkVGV4Q29vcmQsIHZlYzIoMC4sIDAuKSksIDEuKTsg
fQogICAgICAgICB2b2lkIGFwcGx5VGV4dHVyZShpbm91dCB2ZWM0IGNvbG9yKSB7IGNvbG9yID0g
U2FtcGxlckZ1bmN0aW9uKHNfc2FtcGxlciwgdl90ZXhDb29yZCk7IH0KICAgICAgICAgdm9pZCBh
cHBseU9wYWNpdHkoaW5vdXQgdmVjNCBjb2xvcikgeyBjb2xvciAqPSB1X29wYWNpdHk7IH0KICAg
ICAgICAgdm9pZCBhcHBseUFudGlhbGlhc2luZyhpbm91dCB2ZWM0IGNvbG9yKSB7IGNvbG9yICo9
IGFudGlhbGlhcygpOyB9CisgICAgICAgIHZvaWQgYXBwbHlSb3VuZGVkQ29ybmVycyhpbm91dCB2
ZWM0IGNvbG9yKSB7IGNvbG9yICo9IHJvdW5kZWRDb3JuZXIoKTsgfQogCiAgICAgICAgIHZvaWQg
YXBwbHlHcmF5c2NhbGVGaWx0ZXIoaW5vdXQgdmVjNCBjb2xvcikKICAgICAgICAgewpAQCAtMzI4
LDYgKzMzNyw3IEBAIHN0YXRpYyBjb25zdCBjaGFyKiBmcmFnbWVudFRlbXBsYXRlID0KICAgICAg
ICAgICAgIGFwcGx5VGV4dHVyZUlmTmVlZGVkKGNvbG9yKTsKICAgICAgICAgICAgIGFwcGx5U29s
aWRDb2xvcklmTmVlZGVkKGNvbG9yKTsKICAgICAgICAgICAgIGFwcGx5QW50aWFsaWFzaW5nSWZO
ZWVkZWQoY29sb3IpOworICAgICAgICAgICAgYXBwbHlSb3VuZGVkQ29ybmVyc0lmTmVlZGVkKGNv
bG9yKTsKICAgICAgICAgICAgIGFwcGx5T3BhY2l0eUlmTmVlZGVkKGNvbG9yKTsKICAgICAgICAg
ICAgIGFwcGx5R3JheXNjYWxlRmlsdGVySWZOZWVkZWQoY29sb3IpOwogICAgICAgICAgICAgYXBw
bHlTZXBpYUZpbHRlcklmTmVlZGVkKGNvbG9yKTsKQEAgLTM2Nyw2ICszNzcsNyBAQCBQYXNzUmVm
UHRyPFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtPiBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3Jh
bTo6Y3JlYXRlKFBhc3NSZQogICAgIFNFVF9BUFBMSUVSX0ZST01fT1BUSU9OUyhCbHVyRmlsdGVy
KTsKICAgICBTRVRfQVBQTElFUl9GUk9NX09QVElPTlMoQWxwaGFCbHVyKTsKICAgICBTRVRfQVBQ
TElFUl9GUk9NX09QVElPTlMoQ29udGVudFRleHR1cmUpOworICAgIFNFVF9BUFBMSUVSX0ZST01f
T1BUSU9OUyhSb3VuZGVkQ29ybmVycyk7CiAgICAgU3RyaW5nQnVpbGRlciB2ZXJ0ZXhCdWlsZGVy
OwogICAgIHZlcnRleEJ1aWxkZXIuYXBwZW5kKHNoYWRlckJ1aWxkZXIudG9TdHJpbmcoKSk7CiAg
ICAgdmVydGV4QnVpbGRlci5hcHBlbmQodmVydGV4VGVtcGxhdGUpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJQ
cm9ncmFtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVy
ZU1hcHBlclNoYWRlclByb2dyYW0uaAppbmRleCAzMzQ1ZmM5ZmUyZWFkM2ZiOGUxNzExOGJkNTBm
MzZkMTY4MTFjM2JlLi5kYjIzZDgzNzcxZjlkMDIyYzM3ZGNiZDBiMTkyMDZiZGE2ZmMxNWQwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVy
ZU1hcHBlclNoYWRlclByb2dyYW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uaApAQCAtNTMsNyArNTMsOCBA
QCBwdWJsaWM6CiAgICAgICAgIE9wYWNpdHlGaWx0ZXIgICAgPSAxTCA8PCAxMywKICAgICAgICAg
Qmx1ckZpbHRlciAgICAgICA9IDFMIDw8IDE0LAogICAgICAgICBBbHBoYUJsdXIgICAgICAgID0g
MUwgPDwgMTUsCi0gICAgICAgIENvbnRlbnRUZXh0dXJlICAgPSAxTCA8PCAxNgorICAgICAgICBD
b250ZW50VGV4dHVyZSAgID0gMUwgPDwgMTYsCisgICAgICAgIFJvdW5kZWRDb3JuZXJzICAgPSAx
TCA8PCAxNwogICAgIH07CiAKICAgICB0eXBlZGVmIHVuc2lnbmVkIE9wdGlvbnM7CkBAIC03Miw3
ICs3Myw2IEBAIHB1YmxpYzoKICAgICBURVhNQVBfREVDTEFSRV9VTklGT1JNKGNvbG9yKQogICAg
IFRFWE1BUF9ERUNMQVJFX1VOSUZPUk0oZXhwYW5kZWRRdWFkRWRnZXNJblNjcmVlblNwYWNlKQog
ICAgIFRFWE1BUF9ERUNMQVJFX1NBTVBMRVIoc2FtcGxlcikKLSAgICBURVhNQVBfREVDTEFSRV9T
QU1QTEVSKG1hc2spCiAKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgVEVYTUFQX0RFQ0xB
UkVfVU5JRk9STShmaWx0ZXJBbW91bnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRl
ZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCmluZGV4IGEwZTkxNmYyOWZkYmRjMTc0M2Q1
MTA0Y2UzMTEwNWEyOThhMGNmNDUuLjViNWJhNzQ1MTk1ZTYzZWU1MTQwYjMxMzc2OTNhMjAwNWVi
ZGE0YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdy
YXBoaWNzTGF5ZXIuY3BwCkBAIC0yNTUsNiArMjU1LDE3IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyOjpzZXRQcmVzZXJ2ZXMzRChib29sIGIpCiAgICAgZGlkQ2hhbmdlR2VvbWV0cnko
KTsKIH0KIAordm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldFJvdW5kZWRSZWN0TWFz
ayhjb25zdCBSb3VuZGVkUmVjdCYgcikKK3sKKyAgICBpZiAociA9PSByb3VuZGVkUmVjdE1hc2so
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgR3JhcGhpY3NMYXllcjo6c2V0Um91bmRlZFJlY3RN
YXNrKHIpOworICAgIG1fbGF5ZXJTdGF0ZS5yb3VuZGVkUmVjdE1hc2sgPSByOworICAgIG1fbGF5
ZXJTdGF0ZS5yb3VuZGVkUmVjdE1hc2tDaGFuZ2VkID0gdHJ1ZTsKKyAgICBkaWRDaGFuZ2VMYXll
clN0YXRlKCk7Cit9CisKIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRNYXNrc1Rv
Qm91bmRzKGJvb2wgYikKIHsKICAgICBpZiAobWFza3NUb0JvdW5kcygpID09IGIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQv
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmgKaW5kZXgg
NGQ3MGNkMjZhNDdkMzFjMThjNzJiMzNhNjA4OTA0MGU4MmI5N2Q1Yi4uMDc2YWI4NjAzMTFlMGJm
NGRlZjMzZDEyODZkNDRlNzMzNWE5ZTAyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXll
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGlu
YXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaApAQCAtODAsNiArODAsNyBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIHNldENoaWxkcmVuVHJhbnNmb3JtKGNvbnN0IFRyYW5zZm9ybWF0
aW9uTWF0cml4JikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHNldFByZXNlcnZlczNEKGJv
b2wpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXRNYXNrc1RvQm91bmRzKGJvb2wpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRSb3VuZGVkUmVjdE1hc2soY29uc3QgUm91bmRl
ZFJlY3QmKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RHJhd3NDb250ZW50KGJvb2wp
IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c1Zpc2libGUoYm9vbCkgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzT3BhcXVlKGJvb2wpIE9WRVJSSURF
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nv
b3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1Nj
ZW5lLmNwcAppbmRleCBiN2E1NDdkMjAwOGE0ZjRhOWJhMWQ1MDc0NzlkOTA5NzFiNjFlMDJjLi5i
MDU1ODU3N2E1YjNmNjE1NTNmMDFmODZlZDQ2MmE3NGY3M2FhMWNjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0
ZWRHcmFwaGljc1NjZW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmNwcApAQCAtMzQx
LDYgKzM0MSw5IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpzZXRMYXllclN0YXRl
KENvb3JkaW5hdGVkTGF5ZXJJRCBpZCwgY29uc3QgQ29vcmRpCiAgICAgaWYgKGxheWVyU3RhdGUu
bWFza0NoYW5nZWQpCiAgICAgICAgIGxheWVyLT5zZXRNYXNrTGF5ZXIoZ2V0TGF5ZXJCeUlESWZF
eGlzdHMobGF5ZXJTdGF0ZS5tYXNrKSk7CiAKKyAgICBpZiAobGF5ZXJTdGF0ZS5yb3VuZGVkUmVj
dE1hc2tDaGFuZ2VkKQorICAgICAgICBsYXllci0+c2V0Um91bmRlZFJlY3RNYXNrKGxheWVyU3Rh
dGUucm91bmRlZFJlY3RNYXNrKTsKKwogICAgIGlmIChsYXllclN0YXRlLmltYWdlQ2hhbmdlZCkK
ICAgICAgICAgYXNzaWduSW1hZ2VCYWNraW5nVG9MYXllcihsYXllciwgbGF5ZXJTdGF0ZS5pbWFn
ZUlEKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTdGF0ZS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhp
Y3NTdGF0ZS5oCmluZGV4IDkzZTI1Y2JhMTk3OTMxMjIzZWY0YTMxYTBmN2QzMDRmYjI5YTNmMDku
LjY4ZjM1OWU2MzhhNTNiNzYyNzRiMmY4OTljOGM5OTI0MjFmMWU0YjQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGlu
YXRlZEdyYXBoaWNzU3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1N0YXRlLmgKQEAgLTk0LDYg
Kzk0LDcgQEAgc3RydWN0IENvb3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRlIHsKICAgICAgICAg
ICAgIGJvb2wgaXNTY3JvbGxhYmxlQ2hhbmdlZDogMTsKICAgICAgICAgICAgIGJvb2wgY29tbWl0
dGVkU2Nyb2xsT2Zmc2V0Q2hhbmdlZDogMTsKICAgICAgICAgICAgIGJvb2wgY29udGVudHNUaWxp
bmdDaGFuZ2VkOiAxOworICAgICAgICAgICAgYm9vbCByb3VuZGVkUmVjdE1hc2tDaGFuZ2VkOiAx
OwogICAgICAgICB9OwogICAgICAgICB1bnNpZ25lZCBjaGFuZ2VNYXNrOwogICAgIH07CkBAIC0x
NDQsNiArMTQ1LDcgQEAgc3RydWN0IENvb3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRlIHsKICAg
ICBJbnRSZWN0IGNvbnRlbnRzUmVjdDsKICAgICBJbnRQb2ludCBjb250ZW50c1RpbGVQaGFzZTsK
ICAgICBJbnRTaXplIGNvbnRlbnRzVGlsZVNpemU7CisgICAgUm91bmRlZFJlY3Qgcm91bmRlZFJl
Y3RNYXNrOwogICAgIGZsb2F0IG9wYWNpdHk7CiAgICAgQ29sb3Igc29saWRDb2xvcjsKICAgICBD
b2xvciBkZWJ1Z0JvcmRlckNvbG9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29kZXJzLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVk
R3JhcGhpY3NBcmd1bWVudENvZGVycy5jcHAKaW5kZXggYzAyNzM0YTc3YWU0NmRlMmFkZTMyY2Ey
ZWIzNGUyN2VkZmNjZDAzZC4uYWExYTYxYTQ0YTY4NTc1YjgwYmFjODMxMjJiYzUzNzhlMjUyNGQx
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
Q29vcmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzQXJndW1lbnRD
b2RlcnMuY3BwCkBAIC00Myw2ICs0Myw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9NYXRyaXhUcmFu
c2Zvcm1PcGVyYXRpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BlcnNwZWN0aXZlVHJhbnNmb3Jt
T3BlcmF0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Sb3RhdGVUcmFuc2Zvcm1PcGVyYXRpb24u
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JvdW5kZWRSZWN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9T
Y2FsZVRyYW5zZm9ybU9wZXJhdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2tld1RyYW5zZm9y
bU9wZXJhdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU3VyZmFjZVVwZGF0ZUluZm8uaD4KQEAg
LTk4LDYgKzk5LDE2IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxMZW5ndGg+OjpkZWNvZGUoQXJndW1l
bnREZWNvZGVyJiBkZWNvZGVyLCBMZW5ndGgmIGxlbmd0aCkKICAgICByZXR1cm4gU2ltcGxlQXJn
dW1lbnRDb2RlcjxMZW5ndGg+OjpkZWNvZGUoZGVjb2RlciwgbGVuZ3RoKTsKIH0KIAordm9pZCBB
cmd1bWVudENvZGVyPFJvdW5kZWRSZWN0Pjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2Rl
ciwgY29uc3QgUm91bmRlZFJlY3QmIHJlY3QpCit7CisgICAgU2ltcGxlQXJndW1lbnRDb2RlcjxS
b3VuZGVkUmVjdD46OmVuY29kZShlbmNvZGVyLCByZWN0KTsKK30KKworYm9vbCBBcmd1bWVudENv
ZGVyPFJvdW5kZWRSZWN0Pjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUm91bmRl
ZFJlY3QmIHJlY3QpCit7CisgICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8Um91bmRlZFJl
Y3Q+OjpkZWNvZGUoZGVjb2RlciwgcmVjdCk7Cit9CisKIHZvaWQgQXJndW1lbnRDb2RlcjxUcmFu
c2Zvcm1hdGlvbk1hdHJpeD46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0
IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm1hdGlvbk1hdHJpeCkKIHsKICAgICBTaW1w
bGVBcmd1bWVudENvZGVyPFRyYW5zZm9ybWF0aW9uTWF0cml4Pjo6ZW5jb2RlKGVuY29kZXIsIHRy
YW5zZm9ybWF0aW9uTWF0cml4KTsKQEAgLTg1Nyw2ICs4NjgsOSBAQCB2b2lkIEFyZ3VtZW50Q29k
ZXI8Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyU3RhdGU+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVy
JiBlbmNvZAogICAgIGlmIChzdGF0ZS5vcGFjaXR5Q2hhbmdlZCkKICAgICAgICAgZW5jb2RlciA8
PCBzdGF0ZS5vcGFjaXR5OwogCisgICAgaWYgKHN0YXRlLnJvdW5kZWRSZWN0TWFza0NoYW5nZWQp
CisgICAgICAgIGVuY29kZXIgPDwgc3RhdGUucm91bmRlZFJlY3RNYXNrOworCiAgICAgaWYgKHN0
YXRlLnNvbGlkQ29sb3JDaGFuZ2VkKQogICAgICAgICBlbmNvZGVyIDw8IHN0YXRlLnNvbGlkQ29s
b3I7CiAKQEAgLTk0Myw2ICs5NTcsOSBAQCBib29sIEFyZ3VtZW50Q29kZXI8Q29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyU3RhdGU+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZAogICAgIGlm
IChzdGF0ZS5vcGFjaXR5Q2hhbmdlZCAmJiAhZGVjb2Rlci5kZWNvZGUoc3RhdGUub3BhY2l0eSkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIGlmIChzdGF0ZS5yb3VuZGVkUmVjdE1hc2tD
aGFuZ2VkICYmICFkZWNvZGVyLmRlY29kZShzdGF0ZS5yb3VuZGVkUmVjdE1hc2spKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisKICAgICBpZiAoc3RhdGUuc29saWRDb2xvckNoYW5nZWQgJiYgIWRl
Y29kZXIuZGVjb2RlKHN0YXRlLnNvbGlkQ29sb3IpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nv
b3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29kZXJzLmgK
aW5kZXggZDQyYWU3OWRmMjRhMTAxZTM0NTBhMzU2NzE4MzIxMDIzYzk1MmJjNC4uODhjODczMWFi
NTc5NGEwYjgyYjBkMzIxN2QyYTkyZjY0YWNmNWMzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50
Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
Q29vcmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29kZXJzLmgKQEAgLTM3LDYgKzM3LDcgQEAgc3Ry
dWN0IENvb3JkaW5hdGVkR3JhcGhpY3NTdGF0ZTsKIGNsYXNzIEZsb2F0UG9pbnQzRDsKIGNsYXNz
IEdyYXBoaWNzTGF5ZXJBbmltYXRpb247CiBjbGFzcyBHcmFwaGljc0xheWVyQW5pbWF0aW9uczsK
K2NsYXNzIFJvdW5kZWRSZWN0OwogY2xhc3MgU3VyZmFjZVVwZGF0ZUluZm87CiBzdHJ1Y3QgVGls
ZUNyZWF0aW9uSW5mbzsKIHN0cnVjdCBUaWxlVXBkYXRlSW5mbzsKQEAgLTc0LDYgKzc1LDExIEBA
IHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6VHJhbnNmb3JtYXRpb25N
YXRyaXg+IHsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29y
ZTo6VHJhbnNmb3JtYXRpb25NYXRyaXgmKTsKIH07CiAKK3RlbXBsYXRlPD4gc3RydWN0IEFyZ3Vt
ZW50Q29kZXI8V2ViQ29yZTo6Um91bmRlZFJlY3Q+IHsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUo
QXJndW1lbnRFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6Um91bmRlZFJlY3QmKTsKKyAgICBzdGF0
aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6Um91bmRlZFJlY3QmKTsK
K307CisKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVu
dENvZGVyPFdlYkNvcmU6OkZpbHRlck9wZXJhdGlvbnM+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNv
ZGUoQXJndW1lbnRFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6RmlsdGVyT3BlcmF0aW9ucyYpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>