<?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>183805</bug_id>
          
          <creation_ts>2018-03-20 21:36:05 -0700</creation_ts>
          <short_desc>[LayoutReloaded] Disconnect Display.Box from Layout.Box</short_desc>
          <delta_ts>2018-03-20 21:43:23 -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>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1407897</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2018-03-20 21:36:05 -0700</bug_when>
    <thetext>ssia.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1407898</commentid>
    <comment_count>1</comment_count>
      <attachid>336176</attachid>
    <who name="alan">zalan</who>
    <bug_when>2018-03-20 21:38:59 -0700</bug_when>
    <thetext>Created attachment 336176
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1407901</commentid>
    <comment_count>2</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2018-03-20 21:42:37 -0700</bug_when>
    <thetext>Committed r229786: &lt;https://trac.webkit.org/changeset/229786&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1407902</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-03-20 21:43:23 -0700</bug_when>
    <thetext>&lt;rdar://problem/38694260&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>336176</attachid>
            <date>2018-03-20 21:38:59 -0700</date>
            <delta_ts>2018-03-20 21:38:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183805-20180320213858.patch</filename>
            <type>text/plain</type>
            <size>34805</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI5NzYzCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZjY1NDk0YTQ4NWExNTcyZmVkZjFiYmI3MmQ5YzBjZDU1
ZTFhMjA5OC4uZDM1ZTFmZGU2YTk2MWU0YjI2YzkzNjViZTE0MDA5ZTQxZTNiNTczNiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcx
IEBACisyMDE4LTAzLTIwICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgW0xheW91dFJlbG9hZGVkXSBEaXNjb25uZWN0IERpc3BsYXkuQm94IGZyb20gTGF5b3V0LkJv
eAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzODA1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRGlzcGxh
eS5Cb3ggaXMgb25seSBhY2Nlc3NlZCB0aHJvdWdoIHRoZSBGb3JtYXR0aW5nU3RhdGUuCisKKyAg
ICAgICAgKiBMYXlvdXRSZWxvYWRlZC9Gb3JtYXR0aW5nQ29udGV4dC9CbG9ja0Zvcm1hdHRpbmcv
QmxvY2tGb3JtYXR0aW5nQ29udGV4dC5qczoKKyAgICAgICAgKEJsb2NrRm9ybWF0dGluZ0NvbnRl
eHQpOgorICAgICAgICAoQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5wcm90b3R5cGUubGF5b3V0KToK
KyAgICAgICAgKEJsb2NrRm9ybWF0dGluZ0NvbnRleHQucHJvdG90eXBlLl9wbGFjZUluRmxvd1Bv
c2l0aW9uZWRDaGlsZHJlbik6CisgICAgICAgIChCbG9ja0Zvcm1hdHRpbmdDb250ZXh0LnByb3Rv
dHlwZS5fbGF5b3V0T3V0T2ZGbG93RGVzY2VuZGFudHMpOgorICAgICAgICAoQmxvY2tGb3JtYXR0
aW5nQ29udGV4dC5wcm90b3R5cGUuX2FkanVzdEJvdHRvbVdpdGhGSVhNRSk6CisgICAgICAgIChC
bG9ja0Zvcm1hdHRpbmdDb250ZXh0LnByb3RvdHlwZS5fY29tcHV0ZU91dE9mRmxvd1Bvc2l0aW9u
KToKKyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC9Gb3JtYXR0aW5nQ29udGV4dC9Gb3JtYXR0aW5n
Q29udGV4dC5qczoKKyAgICAgICAgKEZvcm1hdHRpbmdDb250ZXh0KToKKyAgICAgICAgKEZvcm1h
dHRpbmdDb250ZXh0LnByb3RvdHlwZS5mb3JtYXR0aW5nUm9vdCk6CisgICAgICAgIChGb3JtYXR0
aW5nQ29udGV4dC5wcm90b3R5cGUuZm9ybWF0dGluZ1N0YXRlKToKKyAgICAgICAgKEZvcm1hdHRp
bmdDb250ZXh0LnByb3RvdHlwZS5sYXlvdXRTdGF0ZSk6CisgICAgICAgIChGb3JtYXR0aW5nQ29u
dGV4dC5wcm90b3R5cGUuX3RvQWJzb2x1dGVQb3NpdGlvbik6CisgICAgICAgIChGb3JtYXR0aW5n
Q29udGV4dC5wcm90b3R5cGUuX3RvUm9vdEFic29sdXRlUG9zaXRpb24pOgorICAgICAgICAoRm9y
bWF0dGluZ0NvbnRleHQucHJvdG90eXBlLl9hZGRUb0xheW91dFF1ZXVlKToKKyAgICAgICAgKEZv
cm1hdHRpbmdDb250ZXh0LnByb3RvdHlwZS5kaXNwbGF5Qm94KToKKyAgICAgICAgKEZvcm1hdHRp
bmdDb250ZXh0LnByb3RvdHlwZS5fb3V0T2ZGbG93RGVzY2VuZGFudHMpOgorICAgICAgICAoRm9y
bWF0dGluZ0NvbnRleHQucHJvdG90eXBlLnJvb3RDb250YWluZXIpOiBEZWxldGVkLgorICAgICAg
ICAoRm9ybWF0dGluZ0NvbnRleHQucHJvdG90eXBlLmxheW91dENvbnRleHQpOiBEZWxldGVkLgor
ICAgICAgICAqIExheW91dFJlbG9hZGVkL0Zvcm1hdHRpbmdDb250ZXh0L0lubGluZUZvcm1hdHRp
bmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuanM6CisgICAgICAgIChJbmxpbmVGb3JtYXR0aW5n
Q29udGV4dCk6CisgICAgICAgIChJbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5wcm90b3R5cGUubGF5
b3V0KToKKyAgICAgICAgKElubGluZUZvcm1hdHRpbmdDb250ZXh0LnByb3RvdHlwZS5faW5pdGlh
bGl6ZUxpbmUpOgorICAgICAgICAqIExheW91dFJlbG9hZGVkL0Zvcm1hdHRpbmdTdGF0ZS9CbG9j
a0Zvcm1hdHRpbmdTdGF0ZS5qczoKKyAgICAgICAgKEJsb2NrRm9ybWF0dGluZ1N0YXRlKToKKyAg
ICAgICAgKiBMYXlvdXRSZWxvYWRlZC9Gb3JtYXR0aW5nU3RhdGUvRm9ybWF0dGluZ1N0YXRlLmpz
OgorICAgICAgICAoRm9ybWF0dGluZ1N0YXRlKToKKyAgICAgICAgKEZvcm1hdHRpbmdTdGF0ZS5w
cm90b3R5cGUuZm9ybWF0dGluZ1Jvb3QpOgorICAgICAgICAoRm9ybWF0dGluZ1N0YXRlLnByb3Rv
dHlwZS5sYXlvdXRTdGF0ZSk6CisgICAgICAgIChGb3JtYXR0aW5nU3RhdGUucHJvdG90eXBlLmNy
ZWF0ZURpc3BsYXlCb3gpOgorICAgICAgICAoRm9ybWF0dGluZ1N0YXRlLnByb3RvdHlwZS5kaXNw
bGF5Qm94TWFwKToKKyAgICAgICAgKEZvcm1hdHRpbmdTdGF0ZS5wcm90b3R5cGUuZGlzcGxheUJv
eCk6CisgICAgICAgIChGb3JtYXR0aW5nU3RhdGUucHJvdG90eXBlLmxheW91dENvbnRleHQpOiBE
ZWxldGVkLgorICAgICAgICAqIExheW91dFJlbG9hZGVkL0Zvcm1hdHRpbmdTdGF0ZS9JbmxpbmVG
b3JtYXR0aW5nU3RhdGUuanM6CisgICAgICAgIChJbmxpbmVGb3JtYXR0aW5nU3RhdGUpOgorICAg
ICAgICAqIExheW91dFJlbG9hZGVkL0xheW91dC5qczoKKyAgICAgICAgKGxheW91dCk6CisgICAg
ICAgICogTGF5b3V0UmVsb2FkZWQvTGF5b3V0UmVsb2FkZWQueGN3b3Jrc3BhY2UvY29udGVudHMu
eGN3b3Jrc3BhY2VkYXRhOgorICAgICAgICAqIExheW91dFJlbG9hZGVkL0xheW91dFN0YXRlLmpz
OiBSZW5hbWVkIGZyb20gVG9vbHMvTGF5b3V0UmVsb2FkZWQvTGF5b3V0Q29udGV4dC5qcy4KKyAg
ICAgICAgKExheW91dFN0YXRlKToKKyAgICAgICAgKExheW91dFN0YXRlLnByb3RvdHlwZS5sYXlv
dXQpOgorICAgICAgICAoTGF5b3V0U3RhdGUucHJvdG90eXBlLl9jcmVhdGVGb3JtYXR0aW5nU3Rh
dGUpOgorICAgICAgICAoTGF5b3V0U3RhdGUucHJvdG90eXBlLmZvcm1hdHRpbmdTdGF0ZXMpOgor
ICAgICAgICAoTGF5b3V0U3RhdGUucHJvdG90eXBlLmluaXRpYWxEaXNwbGF5Qm94KToKKyAgICAg
ICAgKiBMYXlvdXRSZWxvYWRlZC9MYXlvdXRUcmVlL0JveC5qczoKKyAgICAgICAgKExheW91dC5C
b3gucHJvdG90eXBlLmlzT3V0T2ZGbG93UG9zaXRpb25lZCk6CisgICAgICAgIChMYXlvdXQuQm94
LnByb3RvdHlwZS5jb250YWluaW5nQmxvY2spOgorICAgICAgICAoTGF5b3V0LkJveC5wcm90b3R5
cGUuc2V0RGlzcGxheUJveCk6IERlbGV0ZWQuCisgICAgICAgIChMYXlvdXQuQm94LnByb3RvdHlw
ZS5kaXNwbGF5Qm94KTogRGVsZXRlZC4KKyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC9VdGlscy5q
czoKKyAgICAgICAgKFV0aWxzLmxheW91dFRyZWVEdW1wKToKKyAgICAgICAgKFV0aWxzLl9maW5k
RGlzcGxheUJveCk6CisgICAgICAgIChVdGlscy5fZHVtcEJveCk6CisgICAgICAgIChVdGlscy5f
ZHVtcFRyZWUpOgorICAgICAgICAqIExheW91dFJlbG9hZGVkL21pc2MvaGVhZGVycy9CbG9ja0Zv
cm1hdHRpbmdDb250ZXh0Lmg6CisgICAgICAgICogTGF5b3V0UmVsb2FkZWQvbWlzYy9oZWFkZXJz
L0Zvcm1hdHRpbmdDb250ZXh0Lmg6CisgICAgICAgICogTGF5b3V0UmVsb2FkZWQvbWlzYy9oZWFk
ZXJzL0xheW91dENvbnRleHQuaDoKKyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC90ZXN0L2luZGV4
Lmh0bWw6CisKIDIwMTgtMDMtMjAgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbTGF5b3V0UmVsb2FkZWRdIE1vdmUgRGlzcGxheS5Cb3ggaGFuZGxpbmcgZnJvbSBG
b3JtYXR0aW5nQ29udGV4dCB0byBGb3JtYXR0aW5nU3RhdGUKZGlmZiAtLWdpdCBhL1Rvb2xzL0xh
eW91dFJlbG9hZGVkL0Zvcm1hdHRpbmdDb250ZXh0L0Jsb2NrRm9ybWF0dGluZy9CbG9ja0Zvcm1h
dHRpbmdDb250ZXh0LmpzIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvRm9ybWF0dGluZ0NvbnRleHQv
QmxvY2tGb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuanMKaW5kZXggZGI3ZDAzYjQw
OTlhMzk4OWVkYjc5MThjMmUzMDM3OGVhMGVkYjc5NS4uNGYzOWEwYTdmZDRmZjYwY2U0YjhlNDYx
OTE1MDA2NzJhMGJiMmE5OSAxMDA2NDQKLS0tIGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvRm9ybWF0
dGluZ0NvbnRleHQvQmxvY2tGb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuanMKKysr
IGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvRm9ybWF0dGluZ0NvbnRleHQvQmxvY2tGb3JtYXR0aW5n
L0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuanMKQEAgLTIzLDggKzIzLDggQEAKICAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCiAgKi8KIGNsYXNzIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQgZXh0ZW5kcyBGb3JtYXR0aW5n
Q29udGV4dCB7Ci0gICAgY29uc3RydWN0b3Iocm9vdCwgbGF5b3V0U3RhdGUpIHsKLSAgICAgICAg
c3VwZXIocm9vdCwgbGF5b3V0U3RhdGUpOworICAgIGNvbnN0cnVjdG9yKGJsb2NrRm9ybWF0dGlu
Z1N0YXRlKSB7CisgICAgICAgIHN1cGVyKGJsb2NrRm9ybWF0dGluZ1N0YXRlKTsKICAgICAgICAg
Ly8gTmV3IGJsb2NrIGZvcm1hdHRpbmcgY29udGV4dCBhbHdheXMgZXN0YWJsaXNoZXMgYSBuZXcg
ZmxvYXRpbmcgY29udGV4dC4KICAgICAgICAgdGhpcy5tX2Zsb2F0aW5nQ29udGV4dCA9IG5ldyBG
bG9hdGluZ0NvbnRleHQodGhpcyk7CiAgICAgfQpAQCAtMzcsOCArMzcsOCBAQCBjbGFzcyBCbG9j
a0Zvcm1hdHRpbmdDb250ZXh0IGV4dGVuZHMgRm9ybWF0dGluZ0NvbnRleHQgewogCiAgICAgICAg
IC8vIFRoaXMgaXMgYSBwb3N0LW9yZGVyIHRyZWUgdHJhdmVyc2FsIGxheW91dC4KICAgICAgICAg
Ly8gVGhlIHJvb3QgY29udGFpbmVyIGxheW91dCBpcyBkb25lIGluIHRoZSBmb3JtYXR0aW5nIGNv
bnRleHQgaXQgbGl2ZXMgaW4sIG5vdCB0aGF0IG9uZSBpdCBjcmVhdGVzLCBzbyBsZXQncyBzdGFy
dCB3aXRoIHRoZSBmaXJzdCBjaGlsZC4KLSAgICAgICAgaWYgKHRoaXMucm9vdENvbnRhaW5lcigp
LmZpcnN0SW5GbG93T3JGbG9hdENoaWxkKCkpCi0gICAgICAgICAgICB0aGlzLl9hZGRUb0xheW91
dFF1ZXVlKHRoaXMucm9vdENvbnRhaW5lcigpLmZpcnN0SW5GbG93T3JGbG9hdENoaWxkKCkpOwor
ICAgICAgICBpZiAodGhpcy5mb3JtYXR0aW5nUm9vdCgpLmZpcnN0SW5GbG93T3JGbG9hdENoaWxk
KCkpCisgICAgICAgICAgICB0aGlzLl9hZGRUb0xheW91dFF1ZXVlKHRoaXMuZm9ybWF0dGluZ1Jv
b3QoKS5maXJzdEluRmxvd09yRmxvYXRDaGlsZCgpKTsKICAgICAgICAgLy8gMS4gR28gYWxsIHRo
ZSB3YXkgZG93biB0byB0aGUgbGVhZiBub2RlCiAgICAgICAgIC8vIDIuIENvbXB1dGUgc3RhdGlj
IHBvc2l0aW9uIGFuZCB3aWR0aCBhcyB3ZSB0cmF2ZXJzIGRvd24KICAgICAgICAgLy8gMy4gQXMg
d2UgY2xpbWIgYmFjayBvbiB0aGUgdHJlZSwgY29tcHV0ZSBoZWlnaHQgYW5kIGZpbmlhbGl6ZSBw
b3NpdGlvbgpAQCAtNTAsNyArNTAsNyBAQCBjbGFzcyBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0IGV4
dGVuZHMgRm9ybWF0dGluZ0NvbnRleHQgewogICAgICAgICAgICAgICAgIHRoaXMuY29tcHV0ZVdp
ZHRoKGxheW91dEJveCk7CiAgICAgICAgICAgICAgICAgdGhpcy5fY29tcHV0ZVN0YXRpY1Bvc2l0
aW9uKGxheW91dEJveCk7CiAgICAgICAgICAgICAgICAgaWYgKGxheW91dEJveC5lc3RhYmxpc2hl
c0Zvcm1hdHRpbmdDb250ZXh0KCkpIHsKLSAgICAgICAgICAgICAgICAgICAgdGhpcy5sYXlvdXRD
b250ZXh0KCkubGF5b3V0KGxheW91dEJveCk7CisgICAgICAgICAgICAgICAgICAgIHRoaXMubGF5
b3V0U3RhdGUoKS5sYXlvdXQobGF5b3V0Qm94KTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGlmICghbGF5b3V0Qm94LmlzQ29u
dGFpbmVyKCkgfHwgIWxheW91dEJveC5oYXNJbkZsb3dPckZsb2F0Q2hpbGQoKSkKQEAgLTc2LDcg
Kzc2LDcgQEAgY2xhc3MgQmxvY2tGb3JtYXR0aW5nQ29udGV4dCBleHRlbmRzIEZvcm1hdHRpbmdD
b250ZXh0IHsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICAvLyBQbGFjZSB0aGUg
aW5mbG93IHBvc2l0aW9uZWQgY2hpbGRyZW4uCi0gICAgICAgIHRoaXMuX3BsYWNlSW5GbG93UG9z
aXRpb25lZENoaWxkcmVuKHRoaXMucm9vdENvbnRhaW5lcigpKTsKKyAgICAgICAgdGhpcy5fcGxh
Y2VJbkZsb3dQb3NpdGlvbmVkQ2hpbGRyZW4odGhpcy5mb3JtYXR0aW5nUm9vdCgpKTsKICAgICAg
ICAgLy8gQW5kIHRha2UgY2FyZSBvZiBvdXQtb2YtZmxvdyBib3hlcyBhcyB0aGUgZmluYWwgc3Rl
cC4KICAgICAgICAgdGhpcy5fbGF5b3V0T3V0T2ZGbG93RGVzY2VuZGFudHMoKTsKICAgIH0KQEAg
LTEyNCw3ICsxMjQsNyBAQCBjbGFzcyBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0IGV4dGVuZHMgRm9y
bWF0dGluZ0NvbnRleHQgewogICAgICAgICBpZiAoIWNvbnRhaW5lci5pc0NvbnRhaW5lcigpKQog
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAvLyBJZiB0aGlzIGxheW91dEJveCBhbHNvIGVz
dGFibGlzaGVzIGEgZm9ybWF0dGluZyBjb250ZXh0LCB0aGVuIHBvc2l0aW9uaW5nIGFscmVhZHkg
aGFzIGhhcHBlbmQgYXQgdGhlIGZvcm1hdHRpbmcgY29udGV4dC4KLSAgICAgICAgaWYgKGNvbnRh
aW5lci5lc3RhYmxpc2hlc0Zvcm1hdHRpbmdDb250ZXh0KCkgJiYgY29udGFpbmVyICE9IHRoaXMu
cm9vdENvbnRhaW5lcigpKQorICAgICAgICBpZiAoY29udGFpbmVyLmVzdGFibGlzaGVzRm9ybWF0
dGluZ0NvbnRleHQoKSAmJiBjb250YWluZXIgIT0gdGhpcy5mb3JtYXR0aW5nUm9vdCgpKQogICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICBBU1NFUlQoY29udGFpbmVyLmlzQ29udGFpbmVyKCkp
OwogICAgICAgICBmb3IgKGxldCBpbkZsb3dDaGlsZCA9IGNvbnRhaW5lci5maXJzdEluRmxvd0No
aWxkKCk7IGluRmxvd0NoaWxkOyBpbkZsb3dDaGlsZCA9IGluRmxvd0NoaWxkLm5leHRJbkZsb3dT
aWJsaW5nKCkpIHsKQEAgLTE0MSw3ICsxNDEsNyBAQCBjbGFzcyBCbG9ja0Zvcm1hdHRpbmdDb250
ZXh0IGV4dGVuZHMgRm9ybWF0dGluZ0NvbnRleHQgewogICAgICAgICBmb3IgKGxldCBvdXRPZkZs
b3dCb3ggb2Ygb3V0T2ZGbG93RGVzY2VuZGFudHMpIHsKICAgICAgICAgICAgIHRoaXMuX2FkZFRv
TGF5b3V0UXVldWUob3V0T2ZGbG93Qm94KTsKICAgICAgICAgICAgIHRoaXMuY29tcHV0ZVdpZHRo
KG91dE9mRmxvd0JveCk7Ci0gICAgICAgICAgICB0aGlzLmxheW91dENvbnRleHQoKS5sYXlvdXQo
b3V0T2ZGbG93Qm94KTsKKyAgICAgICAgICAgIHRoaXMubGF5b3V0U3RhdGUoKS5sYXlvdXQob3V0
T2ZGbG93Qm94KTsKICAgICAgICAgICAgIHRoaXMuY29tcHV0ZUhlaWdodChvdXRPZkZsb3dCb3gp
OwogICAgICAgICAgICAgdGhpcy5fY29tcHV0ZU91dE9mRmxvd1Bvc2l0aW9uKG91dE9mRmxvd0Jv
eCk7CiAgICAgICAgICAgICB0aGlzLl9yZW1vdmVGcm9tTGF5b3V0UXVldWUob3V0T2ZGbG93Qm94
KTsKQEAgLTI3Nyw3ICsyNzcsNyBAQCBjbGFzcyBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0IGV4dGVu
ZHMgRm9ybWF0dGluZ0NvbnRleHQgewogICAgIF9hZGp1c3RCb3R0b21XaXRoRklYTUUobGF5b3V0
Qm94KSB7CiAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGZ1bmN0aW9uIGlzIGEgYmlnIEZJWE1FLgog
ICAgICAgICBsZXQgbGFzdEluRmxvd0NoaWxkID0gbGF5b3V0Qm94Lmxhc3RJbkZsb3dDaGlsZCgp
OwotICAgICAgICBsZXQgbGFzdEluRmxvd0Rpc3BsYXlCb3ggPSBsYXN0SW5GbG93Q2hpbGQuZGlz
cGxheUJveCgpOworICAgICAgICBsZXQgbGFzdEluRmxvd0Rpc3BsYXlCb3ggPSB0aGlzLmRpc3Bs
YXlCb3gobGFzdEluRmxvd0NoaWxkKTsKICAgICAgICAgbGV0IGJvdHRvbSA9IGxhc3RJbkZsb3dE
aXNwbGF5Qm94LmJvdHRvbSgpICsgdGhpcy5tYXJnaW5Cb3R0b20obGFzdEluRmxvd0NoaWxkKTsK
ICAgICAgICAgLy8gRklYTUU6IG1hcmdpbiBmb3IgYm9keQogICAgICAgICBpZiAobGFzdEluRmxv
d0NoaWxkLm5hbWUoKSA9PSAiUmVuZGVyQm9keSIgJiYgVXRpbHMuaXNIZWlnaHRBdXRvKGxhc3RJ
bkZsb3dDaGlsZCkgJiYgIXRoaXMuZGlzcGxheUJveChsYXN0SW5GbG93Q2hpbGQpLmNvbnRlbnRC
b3goKS5oZWlnaHQoKSkKQEAgLTMxOCw5ICszMTgsOSBAQCBjbGFzcyBCbG9ja0Zvcm1hdHRpbmdD
b250ZXh0IGV4dGVuZHMgRm9ybWF0dGluZ0NvbnRleHQgewogICAgICAgICAgICAgLy8gVmVydGlj
YWxseSBzdGF0aWNhbGx5IHBvc2l0aW9uZWQuCiAgICAgICAgICAgICAvLyBGSVhNRTogRmlndXJl
IG91dCBpZiBpdCBpcyBhY3R1YWxseSB2YWxpZCB0aGF0IHdlIHVzZSB0aGUgcGFyZW50IGJveCBh
cyB0aGUgY29udGFpbmVyICh3aGljaCBpcyBub3QgZXZlbiBpbiB0aGlzIGZvcm1hdHRpbmcgY29u
dGV4dCkuCiAgICAgICAgICAgICBsZXQgcGFyZW50ID0gbGF5b3V0Qm94LnBhcmVudCgpOwotICAg
ICAgICAgICAgbGV0IHBhcmVudERpc3BsYXlCb3ggPSBwYXJlbnQuZGlzcGxheUJveCgpOworICAg
ICAgICAgICAgbGV0IHBhcmVudERpc3BsYXlCb3ggPSB0aGlzLmRpc3BsYXlCb3gocGFyZW50KTsK
ICAgICAgICAgICAgIGxldCBwcmV2aW91c0luRmxvd1NpYmxpbmcgPSBsYXlvdXRCb3gucHJldmlv
dXNJbkZsb3dTaWJsaW5nKCk7Ci0gICAgICAgICAgICBsZXQgY29udGVudEJvdHRvbSA9IHByZXZp
b3VzSW5GbG93U2libGluZyA/IHByZXZpb3VzSW5GbG93U2libGluZy5kaXNwbGF5Qm94KCkuYm90
dG9tKCkgOiBwYXJlbnREaXNwbGF5Qm94LmNvbnRlbnRCb3goKS50b3AoKTsKKyAgICAgICAgICAg
IGxldCBjb250ZW50Qm90dG9tID0gcHJldmlvdXNJbkZsb3dTaWJsaW5nID8gdGhpcy5kaXNwbGF5
Qm94KHByZXZpb3VzSW5GbG93U2libGluZykuYm90dG9tKCkgOiBwYXJlbnREaXNwbGF5Qm94LmNv
bnRlbnRCb3goKS50b3AoKTsKICAgICAgICAgICAgIHRvcCA9IGNvbnRlbnRCb3R0b20gKyB0aGlz
Lm1hcmdpblRvcChsYXlvdXRCb3gpOwogICAgICAgICAgICAgLy8gQ29udmVydCBzdGF0aWMgcG9z
aXRpb24gKGluIHBhcmVudCBjb29yZGluYXRlIHN5c3RlbSkgdG8gYWJzb2x1dGUgKGluIGNvbnRh
aW5pbmcgYmxvY2sgY29vcmRpbmRhdGUgc3lzdGVtKS4KICAgICAgICAgICAgIGlmIChwYXJlbnQg
IT0gbGF5b3V0Qm94LmNvbnRhaW5pbmdCbG9jaygpKQpAQCAtMzM4LDcgKzMzOCw3IEBAIGNsYXNz
IEJsb2NrRm9ybWF0dGluZ0NvbnRleHQgZXh0ZW5kcyBGb3JtYXR0aW5nQ29udGV4dCB7CiAgICAg
ICAgICAgICAvLyBIb3Jpem9udGFsbHkgc3RhdGljYWxseSBwb3NpdGlvbmVkLgogICAgICAgICAg
ICAgLy8gRklYTUU6IEZpZ3VyZSBvdXQgaWYgaXQgaXMgYWN0dWFsbHkgdmFsaWQgdGhhdCB3ZSB1
c2UgdGhlIHBhcmVudCBib3ggYXMgdGhlIGNvbnRhaW5lciAod2hpY2ggaXMgbm90IGV2ZW4gaW4g
dGhpcyBmb3JtYXR0aW5nIGNvbnRleHQpLgogICAgICAgICAgICAgbGV0IHBhcmVudCA9IGxheW91
dEJveC5wYXJlbnQoKTsKLSAgICAgICAgICAgIGxldCBwYXJlbnREaXNwbGF5Qm94ID0gcGFyZW50
LmRpc3BsYXlCb3goKTsKKyAgICAgICAgICAgIGxldCBwYXJlbnREaXNwbGF5Qm94ID0gdGhpcy5k
aXNwbGF5Qm94KHBhcmVudCk7CiAgICAgICAgICAgICBsZWZ0ID0gcGFyZW50RGlzcGxheUJveC5j
b250ZW50Qm94KCkubGVmdCgpICsgdGhpcy5tYXJnaW5MZWZ0KGxheW91dEJveCk7CiAgICAgICAg
ICAgICAvLyBDb252ZXJ0IHN0YXRpYyBwb3NpdGlvbiAoaW4gcGFyZW50IGNvb3JkaW5hdGUgc3lz
dGVtKSB0byBhYnNvbHV0ZSAoaW4gY29udGFpbmluZyBibG9jayBjb29yZGluZGF0ZSBzeXN0ZW0p
LgogICAgICAgICAgICAgaWYgKHBhcmVudCAhPSBsYXlvdXRCb3guY29udGFpbmluZ0Jsb2NrKCkp
CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC9Gb3JtYXR0aW5nQ29udGV4dC9Gb3Jt
YXR0aW5nQ29udGV4dC5qcyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL0Zvcm1hdHRpbmdDb250ZXh0
L0Zvcm1hdHRpbmdDb250ZXh0LmpzCmluZGV4IDY2N2IyOTA2OTI5MDZkMjMxNTc0ZTg3NWFiMDQ3
NjUzYWM0NTc5MWEuLjM5OTZjOWQ1MGU0Y2U0OWMyOTk0OWY1YmE2MDU4NDY2MTlkMmIyMGYgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL0Zvcm1hdHRpbmdDb250ZXh0L0Zvcm1hdHRp
bmdDb250ZXh0LmpzCisrKyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL0Zvcm1hdHRpbmdDb250ZXh0
L0Zvcm1hdHRpbmdDb250ZXh0LmpzCkBAIC0yNCwyMyArMjQsMjIgQEAKICAqLwogCiBjbGFzcyBG
b3JtYXR0aW5nQ29udGV4dCB7Ci0gICAgY29uc3RydWN0b3Iocm9vdENvbnRhaW5lciwgbGF5b3V0
U3RhdGUpIHsKLSAgICAgICAgdGhpcy5tX3Jvb3RDb250YWluZXIgPSByb290Q29udGFpbmVyOwot
ICAgICAgICB0aGlzLm1fbGF5b3V0U3RhdGUgPSBsYXlvdXRTdGF0ZTsKKyAgICBjb25zdHJ1Y3Rv
cihmb3JtYXR0aW5nU3RhdGUpIHsKKyAgICAgICAgdGhpcy5tX2Zvcm1hdHRpbmdTdGF0ZSA9IGZv
cm1hdHRpbmdTdGF0ZTsKICAgICAgICAgdGhpcy5tX2Zsb2F0aW5nQ29udGV4dCA9IG51bGw7CiAg
ICAgICAgIHRoaXMubV9sYXlvdXRTdGFjayA9IG5ldyBBcnJheSgpOwogICAgIH0KIAotICAgIHJv
b3RDb250YWluZXIoKSB7Ci0gICAgICAgIHJldHVybiB0aGlzLm1fcm9vdENvbnRhaW5lcjsKKyAg
ICBmb3JtYXR0aW5nUm9vdCgpIHsKKyAgICAgICAgcmV0dXJuIHRoaXMubV9mb3JtYXR0aW5nU3Rh
dGUuZm9ybWF0dGluZ1Jvb3QoKTsKICAgICB9CiAKLSAgICBsYXlvdXRTdGF0ZSgpIHsKLSAgICAg
ICAgcmV0dXJuIHRoaXMubV9sYXlvdXRTdGF0ZTsKKyAgICBmb3JtYXR0aW5nU3RhdGUoKSB7Cisg
ICAgICAgIHJldHVybiB0aGlzLm1fZm9ybWF0dGluZ1N0YXRlOwogICAgIH0KIAotICAgIGxheW91
dENvbnRleHQoKSB7Ci0gICAgICAgIHJldHVybiB0aGlzLmxheW91dFN0YXRlKCkubGF5b3V0Q29u
dGV4dCgpOworICAgIGxheW91dFN0YXRlKCkgeworICAgICAgICByZXR1cm4gdGhpcy5mb3JtYXR0
aW5nU3RhdGUoKS5sYXlvdXRTdGF0ZSgpOwogICAgIH0KIAogICAgIGZsb2F0aW5nQ29udGV4dCgp
IHsKQEAgLTEwNCwxMSArMTAzLDExIEBAIGNsYXNzIEZvcm1hdHRpbmdDb250ZXh0IHsKIAogICAg
IF90b0Fic29sdXRlUG9zaXRpb24ocG9zaXRpb24sIGxheW91dEJveCwgY29udGFpbmVyKSB7CiAg
ICAgICAgIC8vIFdlIHNob3VsZCBuZXZlciBuZWVkIHRvIGdvIGJleW9uZCB0aGUgcm9vdCBjb250
YWluZXIuCi0gICAgICAgIEFTU0VSVChjb250YWluZXIgPT0gdGhpcy5yb290Q29udGFpbmVyKCkg
fHwgY29udGFpbmVyLmlzRGVzY2VuZGFudE9mKHRoaXMucm9vdENvbnRhaW5lcigpKSk7CisgICAg
ICAgIEFTU0VSVChjb250YWluZXIgPT0gdGhpcy5mb3JtYXR0aW5nUm9vdCgpIHx8IGNvbnRhaW5l
ci5pc0Rlc2NlbmRhbnRPZih0aGlzLmZvcm1hdHRpbmdSb290KCkpKTsKICAgICAgICAgbGV0IGFi
c29sdXRlUG9zaXRpb24gPSBwb3NpdGlvbjsKICAgICAgICAgbGV0IGFzY2VuZGFudCA9IGxheW91
dEJveC5jb250YWluaW5nQmxvY2soKTsKICAgICAgICAgd2hpbGUgKGFzY2VuZGFudCAmJiBhc2Nl
bmRhbnQgIT0gY29udGFpbmVyKSB7Ci0gICAgICAgICAgICBBU1NFUlQoYXNjZW5kYW50LmlzRGVz
Y2VuZGFudE9mKHRoaXMucm9vdENvbnRhaW5lcigpKSk7CisgICAgICAgICAgICBBU1NFUlQoYXNj
ZW5kYW50LmlzRGVzY2VuZGFudE9mKHRoaXMuZm9ybWF0dGluZ1Jvb3QoKSkpOwogICAgICAgICAg
ICAgYWJzb2x1dGVQb3NpdGlvbi5tb3ZlQnkodGhpcy5kaXNwbGF5Qm94KGFzY2VuZGFudCkudG9w
TGVmdCgpKTsKICAgICAgICAgICAgIGFzY2VuZGFudCA9IGFzY2VuZGFudC5jb250YWluaW5nQmxv
Y2soKTsKICAgICAgICAgfQpAQCAtMTE2LDcgKzExNSw3IEBAIGNsYXNzIEZvcm1hdHRpbmdDb250
ZXh0IHsKICAgICB9CiAKICAgICBfdG9Sb290QWJzb2x1dGVQb3NpdGlvbihsYXlvdXRCb3gpIHsK
LSAgICAgICAgcmV0dXJuIHRoaXMuX3RvQWJzb2x1dGVQb3NpdGlvbih0aGlzLmRpc3BsYXlCb3go
bGF5b3V0Qm94KS50b3BMZWZ0KCksIGxheW91dEJveCwgdGhpcy5yb290Q29udGFpbmVyKCkpOwor
ICAgICAgICByZXR1cm4gdGhpcy5fdG9BYnNvbHV0ZVBvc2l0aW9uKHRoaXMuZGlzcGxheUJveChs
YXlvdXRCb3gpLnRvcExlZnQoKSwgbGF5b3V0Qm94LCB0aGlzLmZvcm1hdHRpbmdSb290KCkpOwog
ICAgIH0KIAogICAgIF9kZXNjZW5kYW50TmVlZHNMYXlvdXQoKSB7CkBAIC0xMjUsNyArMTI0LDcg
QEAgY2xhc3MgRm9ybWF0dGluZ0NvbnRleHQgewogCiAgICAgX2FkZFRvTGF5b3V0UXVldWUobGF5
b3V0Qm94KSB7CiAgICAgICAgIC8vIEluaXRpYWxpemUgdGhlIGNvcnJlc3BvbmRpbmcgZGlzcGxh
eSBib3guCi0gICAgICAgIHRoaXMubGF5b3V0U3RhdGUoKS5jcmVhdGVEaXNwbGF5Qm94KGxheW91
dEJveCk7CisgICAgICAgIHRoaXMuZm9ybWF0dGluZ1N0YXRlKCkuY3JlYXRlRGlzcGxheUJveChs
YXlvdXRCb3gpOwogICAgICAgICB0aGlzLm1fbGF5b3V0U3RhY2sucHVzaChsYXlvdXRCb3gpOwog
ICAgIH0KIApAQCAtMTQyLDcgKzE0MSw3IEBAIGNsYXNzIEZvcm1hdHRpbmdDb250ZXh0IHsKICAg
ICB9CiAKICAgICBkaXNwbGF5Qm94KGxheW91dEJveCkgewotICAgICAgICByZXR1cm4gdGhpcy5s
YXlvdXRTdGF0ZSgpLmRpc3BsYXlCb3gobGF5b3V0Qm94KTsKKyAgICAgICAgcmV0dXJuIHRoaXMu
Zm9ybWF0dGluZ1N0YXRlKCkuZGlzcGxheUJveChsYXlvdXRCb3gpOwogICAgIH0KIAogICAgIF9v
dXRPZkZsb3dEZXNjZW5kYW50cygpIHsKQEAgLTE1NCw3ICsxNTMsNyBAQCBjbGFzcyBGb3JtYXR0
aW5nQ29udGV4dCB7CiAgICAgICAgIC8vICAgICAgYW5kIHRoZXJlIGlzIG5vdCBvdGhlciBmb3Jt
YXR0aW5nIGNvbnRleHQgaW5iZXR3ZWVuLgogICAgICAgICBsZXQgYWxsT3V0T2ZGbG93Qm94ZXMg
PSBuZXcgQXJyYXkoKTsKICAgICAgICAgbGV0IGRlc2NlbmRhbnRzID0gbmV3IEFycmF5KCk7Ci0g
ICAgICAgIGZvciAobGV0IGNoaWxkID0gdGhpcy5yb290Q29udGFpbmVyKCkuZmlyc3RDaGlsZCgp
OyBjaGlsZDsgY2hpbGQgPSBjaGlsZC5uZXh0U2libGluZygpKQorICAgICAgICBmb3IgKGxldCBj
aGlsZCA9IHRoaXMuZm9ybWF0dGluZ1Jvb3QoKS5maXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9
IGNoaWxkLm5leHRTaWJsaW5nKCkpCiAgICAgICAgICAgICBkZXNjZW5kYW50cy5wdXNoKGNoaWxk
KTsKICAgICAgICAgd2hpbGUgKGRlc2NlbmRhbnRzLmxlbmd0aCkgewogICAgICAgICAgICAgbGV0
IGRlc2NlbmRhbnQgPSBkZXNjZW5kYW50cy5wb3AoKTsKQEAgLTE2OSw5ICsxNjgsOSBAQCBjbGFz
cyBGb3JtYXR0aW5nQ29udGV4dCB7CiAgICAgICAgIGZvciAobGV0IG91dE9mRmxvd0JveCBvZiBh
bGxPdXRPZkZsb3dCb3hlcykgewogICAgICAgICAgICAgbGV0IGNvbnRhaW5pbmdCbG9jayA9IG91
dE9mRmxvd0JveC5jb250YWluaW5nQmxvY2soKTsKICAgICAgICAgICAgIC8vIENvbGxlY3QgdGhl
IG91dC1vZi1mbG93IGRlc2NlbmRhbnQgdGhhdCBiZWxvbmcgdG8gdGhpcyBmb3JtYXR0aW5nIGNv
bnRleHQuCi0gICAgICAgICAgICBpZiAoY29udGFpbmluZ0Jsb2NrID09IHRoaXMucm9vdENvbnRh
aW5lcigpKQorICAgICAgICAgICAgaWYgKGNvbnRhaW5pbmdCbG9jayA9PSB0aGlzLmZvcm1hdHRp
bmdSb290KCkpCiAgICAgICAgICAgICAgICAgb3V0T2ZGbG93Qm94ZXMucHVzaChvdXRPZkZsb3dC
b3gpOwotICAgICAgICAgICAgZWxzZSBpZiAoY29udGFpbmluZ0Jsb2NrLmlzRGVzY2VuZGFudE9m
KHRoaXMucm9vdENvbnRhaW5lcigpKSkgeworICAgICAgICAgICAgZWxzZSBpZiAoY29udGFpbmlu
Z0Jsb2NrLmlzRGVzY2VuZGFudE9mKHRoaXMuZm9ybWF0dGluZ1Jvb3QoKSkpIHsKICAgICAgICAg
ICAgICAgICBpZiAoIWNvbnRhaW5pbmdCbG9jay5lc3RhYmxpc2hlc0Zvcm1hdHRpbmdDb250ZXh0
KCkgfHwgIWNvbnRhaW5pbmdCbG9jay5pc1Bvc2l0aW9uZWQoKSkKICAgICAgICAgICAgICAgICAg
ICAgb3V0T2ZGbG93Qm94ZXMucHVzaChvdXRPZkZsb3dCb3gpOwogICAgICAgICAgICAgfQpkaWZm
IC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvRm9ybWF0dGluZ0NvbnRleHQvSW5saW5lRm9y
bWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5qcyBiL1Rvb2xzL0xheW91dFJlbG9hZGVk
L0Zvcm1hdHRpbmdDb250ZXh0L0lubGluZUZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRl
eHQuanMKaW5kZXggNzE5MWZjMzRjNDBhZmU0NmJmNzIxMjllYTIyNWNlNWI1MzBlZGNjMS4uNWEw
OTAxZjgxYmZhMGIxY2QwNDIwNzMzOTdlYzhhNTc2YTkyMWIzMCAxMDA2NDQKLS0tIGEvVG9vbHMv
TGF5b3V0UmVsb2FkZWQvRm9ybWF0dGluZ0NvbnRleHQvSW5saW5lRm9ybWF0dGluZy9JbmxpbmVG
b3JtYXR0aW5nQ29udGV4dC5qcworKysgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC9Gb3JtYXR0aW5n
Q29udGV4dC9JbmxpbmVGb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmpzCkBAIC0y
NCw4ICsyNCw4IEBACiAgKi8KIAogY2xhc3MgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQgZXh0ZW5k
cyBGb3JtYXR0aW5nQ29udGV4dCB7Ci0gICAgY29uc3RydWN0b3Iocm9vdCwgbGF5b3V0U3RhdGUp
IHsKLSAgICAgICAgc3VwZXIocm9vdCwgbGF5b3V0U3RhdGUpOworICAgIGNvbnN0cnVjdG9yKGlu
bGluZUZvcm1hdHRpbmdTdGF0ZSkgeworICAgICAgICBzdXBlcihpbmxpbmVGb3JtYXR0aW5nU3Rh
dGUpOwogICAgICAgICAvLyBJZiB0aGUgYmxvY2sgY29udGFpbmVyIGJveCB0aGF0IGluaXRpYXRl
cyB0aGlzIGlubGluZSBmb3JtYXR0aW5nIGNvbnRleCBhbHNvIGVzdGFibGlzaGVzIGEgYmxvY2sg
Y29udGV4dCwgY3JlYXRlIGEgbmV3IGZsb2F0IGZvciB1cy4KICAgICAgICAgQVNTRVJUKHJvb3Qu
aXNCbG9ja0NvbnRhaW5lckJveCgpKTsKICAgICAgICAgaWYgKHJvb3QuZXN0YWJsaXNoZXNCbG9j
a0Zvcm1hdHRpbmdDb250ZXh0KCkpCkBAIC00MiwxNyArNDIsMTcgQEAgY2xhc3MgSW5saW5lRm9y
bWF0dGluZ0NvbnRleHQgZXh0ZW5kcyBGb3JtYXR0aW5nQ29udGV4dCB7CiAgICAgbGF5b3V0KCkg
ewogICAgICAgICAvLyA5LjQuMiBJbmxpbmUgZm9ybWF0dGluZyBjb250ZXh0cwogICAgICAgICAv
LyBJbiBhbiBpbmxpbmUgZm9ybWF0dGluZyBjb250ZXh0LCBib3hlcyBhcmUgbGFpZCBvdXQgaG9y
aXpvbnRhbGx5LCBvbmUgYWZ0ZXIgdGhlIG90aGVyLCBiZWdpbm5pbmcgYXQgdGhlIHRvcCBvZiBh
IGNvbnRhaW5pbmcgYmxvY2suCi0gICAgICAgIGlmICghdGhpcy5yb290Q29udGFpbmVyKCkuZmly
c3RDaGlsZCgpKQorICAgICAgICBpZiAoIXRoaXMuZm9ybWF0dGluZ1Jvb3QoKS5maXJzdENoaWxk
KCkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIC8vIFRoaXMgaXMgYSBwb3N0LW9yZGVy
IHRyZWUgdHJhdmVyc2FsIGxheW91dC4KICAgICAgICAgLy8gVGhlIHJvb3QgY29udGFpbmVyIGxh
eW91dCBpcyBkb25lIGluIHRoZSBmb3JtYXR0aW5nIGNvbnRleHQgaXQgbGl2ZXMgaW4sIG5vdCB0
aGF0IG9uZSBpdCBjcmVhdGVzLCBzbyBsZXQncyBzdGFydCB3aXRoIHRoZSBmaXJzdCBjaGlsZC4K
LSAgICAgICAgdGhpcy5fYWRkVG9MYXlvdXRRdWV1ZSh0aGlzLnJvb3RDb250YWluZXIoKS5maXJz
dENoaWxkKCkpOworICAgICAgICB0aGlzLl9hZGRUb0xheW91dFF1ZXVlKHRoaXMuZm9ybWF0dGlu
Z1Jvb3QoKS5maXJzdENoaWxkKCkpOwogICAgICAgICB3aGlsZSAobGF5b3V0U3RhY2subGVuZ3Ro
KSB7CiAgICAgICAgICAgICAvLyBUcmF2ZXJzIGRvd24gb24gdGhlIGRlc2NlbmRhbnRzIHVudGls
IHdlIGZpbmQgYSBsZWFmIG5vZGUuCiAgICAgICAgICAgICB3aGlsZSAodHJ1ZSkgewogICAgICAg
ICAgICAgICAgIGxldCBsYXlvdXRCb3ggPSB0aGlzLl9uZXh0SW5MYXlvdXRRdWV1ZSgpOwogICAg
ICAgICAgICAgICAgIGlmIChsYXlvdXRCb3guZXN0YWJsaXNoZXNGb3JtYXR0aW5nQ29udGV4dCgp
KSB7Ci0gICAgICAgICAgICAgICAgICAgIHRoaXMubGF5b3V0Q29udGV4dCgpLmxheW91dChsYXlv
dXRCb3gpOworICAgICAgICAgICAgICAgICAgICB0aGlzLmxheW91dFN0YXRlKCkubGF5b3V0KGxh
eW91dEJveCk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICBpZiAoIWxheW91dEJveC5pc0NvbnRhaW5lcigpIHx8ICFsYXlvdXRC
b3guaGFzQ2hpbGQoKSkKQEAgLTcwLDcgKzcwLDcgQEAgY2xhc3MgSW5saW5lRm9ybWF0dGluZ0Nv
bnRleHQgZXh0ZW5kcyBGb3JtYXR0aW5nQ29udGV4dCB7CiAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgfQogICAgICAgICB9Ci0gICAgICAgIC8vdGhpcy5fcGxhY2VPdXRPZkZsb3dEZXNj
ZW5kYW50cyh0aGlzLnJvb3RDb250YWluZXIoKSk7CisgICAgICAgIC8vdGhpcy5fcGxhY2VPdXRP
ZkZsb3dEZXNjZW5kYW50cyh0aGlzLmZvcm1hdHRpbmdSb290KCkpOwogICAgICAgICB0aGlzLl9j
b21taXRMaW5lKCk7CiAgICB9CiAKQEAgLTEwNiw4ICsxMDYsOCBAQCBjbGFzcyBJbmxpbmVGb3Jt
YXR0aW5nQ29udGV4dCBleHRlbmRzIEZvcm1hdHRpbmdDb250ZXh0IHsKIAogICAgIF9pbml0aWFs
aXplTGluZSgpIHsKICAgICAgICAgLy8gVE9ETzogRmxvYXRzIG5lZWQgdG8gYmUgdGFrZW4gaW50
byBhY2NvdW50LgotICAgICAgICBsZXQgY29udGVudEJveFJlY3QgPSB0aGlzLnJvb3RDb250YWlu
ZXIoKS5jb250ZW50Qm94KCk7Ci0gICAgICAgIHRoaXMubV9saW5lID0gbmV3IExpbmUoY29udGVu
dEJveFJlY3QudG9wTGVmdCgpLCBVdGlscy5jb21wdXRlZExpbmVIZWlnaHQodGhpcy5yb290Q29u
dGFpbmVyKCkpLCBjb250ZW50Qm94UmVjdC53aWR0aCgpKTsKKyAgICAgICAgbGV0IGNvbnRlbnRC
b3hSZWN0ID0gdGhpcy5mb3JtYXR0aW5nUm9vdCgpLmNvbnRlbnRCb3goKTsKKyAgICAgICAgdGhp
cy5tX2xpbmUgPSBuZXcgTGluZShjb250ZW50Qm94UmVjdC50b3BMZWZ0KCksIFV0aWxzLmNvbXB1
dGVkTGluZUhlaWdodCh0aGlzLmZvcm1hdHRpbmdSb290KCkpLCBjb250ZW50Qm94UmVjdC53aWR0
aCgpKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL0Zvcm1h
dHRpbmdTdGF0ZS9CbG9ja0Zvcm1hdHRpbmdTdGF0ZS5qcyBiL1Rvb2xzL0xheW91dFJlbG9hZGVk
L0Zvcm1hdHRpbmdTdGF0ZS9CbG9ja0Zvcm1hdHRpbmdTdGF0ZS5qcwppbmRleCA1NGU4MTNmNGJk
OGQzYTE3NTVmZjU4Nzc4NjU0MzViZWE2MjE3MDgyLi40NDdmZjVkZDI0N2I4ZDM3NzY0MmRiNTAy
NTg1YTIyYzc4ZWM3OWUwIDEwMDY0NAotLS0gYS9Ub29scy9MYXlvdXRSZWxvYWRlZC9Gb3JtYXR0
aW5nU3RhdGUvQmxvY2tGb3JtYXR0aW5nU3RhdGUuanMKKysrIGIvVG9vbHMvTGF5b3V0UmVsb2Fk
ZWQvRm9ybWF0dGluZ1N0YXRlL0Jsb2NrRm9ybWF0dGluZ1N0YXRlLmpzCkBAIC0yNCw4ICsyNCw4
IEBACiAgKi8KIAogY2xhc3MgQmxvY2tGb3JtYXR0aW5nU3RhdGUgZXh0ZW5kcyBGb3JtYXR0aW5n
U3RhdGUgewotICAgIGNvbnN0cnVjdG9yKGZvcm1hdHRpbmdSb290LCBsYXlvdXRDb250ZXh0KSB7
Ci0gICAgICAgIHN1cGVyKGxheW91dENvbnRleHQpOwotICAgICAgICB0aGlzLl9zZXRGb3JtYXR0
aW5nQ29udGV4dChuZXcgQmxvY2tGb3JtYXR0aW5nQ29udGV4dChmb3JtYXR0aW5nUm9vdCwgdGhp
cykpOworICAgIGNvbnN0cnVjdG9yKGZvcm1hdHRpbmdSb290LCBsYXlvdXRTdGF0ZSkgeworICAg
ICAgICBzdXBlcihsYXlvdXRTdGF0ZSwgZm9ybWF0dGluZ1Jvb3QpOworICAgICAgICB0aGlzLl9z
ZXRGb3JtYXR0aW5nQ29udGV4dChuZXcgQmxvY2tGb3JtYXR0aW5nQ29udGV4dCh0aGlzKSk7CiAg
ICAgfQogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvRm9ybWF0dGluZ1N0YXRl
L0Zvcm1hdHRpbmdTdGF0ZS5qcyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL0Zvcm1hdHRpbmdTdGF0
ZS9Gb3JtYXR0aW5nU3RhdGUuanMKaW5kZXggNjZlNGE4ZDg3YzNjOWZhMTI1Y2RkZWMwMWFiN2Vl
MDcyYTY1ODViNi4uZWYyMTk0ZDcwNGQ0MGRlMjgxN2ZmMjIwYTg1MjQ5NmQ0YWVmN2FjYSAxMDA2
NDQKLS0tIGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvRm9ybWF0dGluZ1N0YXRlL0Zvcm1hdHRpbmdT
dGF0ZS5qcworKysgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC9Gb3JtYXR0aW5nU3RhdGUvRm9ybWF0
dGluZ1N0YXRlLmpzCkBAIC0yNCw5ICsyNCwxMCBAQAogICovCiAKIGNsYXNzIEZvcm1hdHRpbmdT
dGF0ZSB7Ci0gICAgY29uc3RydWN0b3IobGF5b3V0Q29udGV4dCkgewotICAgICAgICB0aGlzLm1f
bGF5b3V0Q29udGV4dCA9IGxheW91dENvbnRleHQ7CisgICAgY29uc3RydWN0b3IobGF5b3V0U3Rh
dGUsIGZvcm1hdHRpbmdSb290KSB7CisgICAgICAgIHRoaXMubV9sYXlvdXRTdGF0ZSA9IGxheW91
dFN0YXRlOwogICAgICAgICB0aGlzLm1fZm9ybWF0dGluZ0NvbnRleHQgPSBudWxsOworICAgICAg
ICB0aGlzLm1fZm9ybWF0dGluZ1Jvb3QgPSBmb3JtYXR0aW5nUm9vdDsKICAgICAgICAgdGhpcy5t
X2Rpc3BsYXlUb0xheW91dCA9IG5ldyBNYXAoKTsKICAgICB9CiAKQEAgLTM0LDIwICszNSw0MyBA
QCBjbGFzcyBGb3JtYXR0aW5nU3RhdGUgewogICAgICAgICByZXR1cm4gdGhpcy5tX2Zvcm1hdHRp
bmdDb250ZXh0OwogICAgIH0KIAotICAgIGxheW91dENvbnRleHQoKSB7Ci0gICAgICAgIHJldHVy
biB0aGlzLm1fbGF5b3V0Q29udGV4dDsKKyAgICBmb3JtYXR0aW5nUm9vdCgpIHsKKyAgICAgICAg
cmV0dXJuIHRoaXMubV9mb3JtYXR0aW5nUm9vdDsKKyAgICB9CisKKyAgICBsYXlvdXRTdGF0ZSgp
IHsKKyAgICAgICAgcmV0dXJuIHRoaXMubV9sYXlvdXRTdGF0ZTsKICAgICB9CiAKICAgICBjcmVh
dGVEaXNwbGF5Qm94KGxheW91dEJveCkgewogICAgICAgICBsZXQgZGlzcGxheUJveCA9IG5ldyBE
aXNwbGF5LkJveChsYXlvdXRCb3gubm9kZSgpKTsKICAgICAgICAgdGhpcy5tX2Rpc3BsYXlUb0xh
eW91dC5zZXQobGF5b3V0Qm94LCBkaXNwbGF5Qm94KTsKLSAgICAgICAgLy8gVGhpcyBpcyB0ZW1w
b3JhcnkuCi0gICAgICAgIGxheW91dEJveC5zZXREaXNwbGF5Qm94KGRpc3BsYXlCb3gpOworICAg
IH0KKworICAgIGRpc3BsYXlCb3hNYXAoKSB7CisgICAgICAgIHJldHVybiB0aGlzLm1fZGlzcGxh
eVRvTGF5b3V0OwogICAgIH0KIAogICAgIGRpc3BsYXlCb3gobGF5b3V0Qm94KSB7CiAgICAgICAg
IEFTU0VSVChsYXlvdXRCb3gpOwotICAgICAgICByZXR1cm4gbGF5b3V0Qm94LmRpc3BsYXlCb3go
KTsKKyAgICAgICAgLy8gMS4gTm9ybWFsbHkgd2Ugb25seSBuZWVkIHRvIGFjY2VzcyBib3hlcyB3
aXRoaW4gdGhlIHNhbWUgZm9ybWF0dGluZyBjb250ZXh0CisgICAgICAgIC8vIDIuIEluIHNvbWUg
Y2FzZXMgd2UgbmVlZCBzaXplIGluZm9ybWF0aW9uIGFib3V0IHRoZSByb290IGNvbnRhaW5lciAt
d2hpY2ggaXMgaW4gdGhlIHBhcmVudCBmb3JtYXR0aW5nIGNvbnRleHQKKyAgICAgICAgLy8gMy4g
SW4gcmFyZSBjYXNlcyAoc3RhdGljYWxseSBwb3NpdGlvbmVkIG91dC1vZi1mbG93IGJveCksIHdl
IG5lZWQgcG9zaXRpb24gaW5mb3JtYXRpb24gb24gc2libGluZyBmb3JtYXR0aW5nIGNvbnRleHQK
KyAgICAgICAgLy8gYnV0IGluIGFsbCBjYXNlcyBpdCBuZWVkcyB0byBiZSBhIGRlc2NlbmRhbnQg
b2YgdGhlIHJvb3QgY29udGFpbmVyIChvciB0aGUgY29udGFpbmVyIGl0c2VsZikKKyAgICAgICAg
QVNTRVJUKGxheW91dEJveCA9PSB0aGlzLmZvcm1hdHRpbmdSb290KCkgfHwgbGF5b3V0Qm94Lmlz
RGVzY2VuZGFudE9mKHRoaXMuZm9ybWF0dGluZ1Jvb3QoKSkpOworICAgICAgICBsZXQgZGlzcGxh
eUJveCA9IHRoaXMubV9kaXNwbGF5VG9MYXlvdXQuZ2V0KGxheW91dEJveCk7CisgICAgICAgIGlm
IChkaXNwbGF5Qm94KQorICAgICAgICAgICAgcmV0dXJuIGRpc3BsYXlCb3g7CisKKyAgICAgICAg
bGV0IGZvcm1hdHRpbmdTdGF0ZXMgPSB0aGlzLmxheW91dFN0YXRlKCkuZm9ybWF0dGluZ1N0YXRl
cygpOworICAgICAgICBmb3IgKGxldCBmb3JtYXR0aW5nU3RhdGUgb2YgZm9ybWF0dGluZ1N0YXRl
cykgeworICAgICAgICAgICAgbGV0IGRpc3BsYXlCb3ggPSBmb3JtYXR0aW5nU3RhdGVbMV0uZGlz
cGxheUJveE1hcCgpLmdldChsYXlvdXRCb3gpOworICAgICAgICAgICAgaWYgKGRpc3BsYXlCb3gp
CisgICAgICAgICAgICAgICAgcmV0dXJuIGRpc3BsYXlCb3g7CisgICAgICAgIH0KKyAgICAgICAg
Ly8gSXQgbXVzdCBiZSB0aGUgSUNCLgorICAgICAgICBBU1NFUlQoIWxheW91dEJveC5wYXJlbnQo
KSk7CisgICAgICAgIHJldHVybiB0aGlzLmxheW91dFN0YXRlKCkuaW5pdGlhbERpc3BsYXlCb3go
KTsKICAgICB9CiAKICAgICBfc2V0Rm9ybWF0dGluZ0NvbnRleHQoZm9ybWF0dGluZ0NvbnRleHQp
IHsKZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL0Zvcm1hdHRpbmdTdGF0ZS9Jbmxp
bmVGb3JtYXR0aW5nU3RhdGUuanMgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC9Gb3JtYXR0aW5nU3Rh
dGUvSW5saW5lRm9ybWF0dGluZ1N0YXRlLmpzCmluZGV4IGU2N2E5Yjk0Y2ExOWI0M2Y2M2FkZDk2
ZjA1ZjZmYzkyNTRmNGI0ODAuLjc4NDAwNWJhNTgyMjZkMGRhYjZkZGQwZGY3YWJmMjcwNmRmNmM1
ZDIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL0Zvcm1hdHRpbmdTdGF0ZS9Jbmxp
bmVGb3JtYXR0aW5nU3RhdGUuanMKKysrIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvRm9ybWF0dGlu
Z1N0YXRlL0lubGluZUZvcm1hdHRpbmdTdGF0ZS5qcwpAQCAtMjQsOCArMjQsOCBAQAogICovCiAK
IGNsYXNzIElubGluZUZvcm1hdHRpbmdTdGF0ZSBleHRlbmRzIEZvcm1hdHRpbmdTdGF0ZSB7Ci0g
ICAgY29uc3RydWN0b3IoZm9ybWF0dGluZ1Jvb3QsIGxheW91dENvbnRleHQpIHsKLSAgICAgICAg
c3VwZXIobGF5b3V0Q29udGV4dCk7Ci0gICAgICAgIHRoaXMuX3NldEZvcm1hdHRpbmdDb250ZXh0
KG5ldyBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dChmb3JtYXR0aW5nUm9vdCwgdGhpcykpOworICAg
IGNvbnN0cnVjdG9yKGZvcm1hdHRpbmdSb290LCBsYXlvdXRTdGF0ZSkgeworICAgICAgICBzdXBl
cihsYXlvdXRTdGF0ZSwgZm9ybWF0dGluZ1Jvb3QpOworICAgICAgICB0aGlzLl9zZXRGb3JtYXR0
aW5nQ29udGV4dChuZXcgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQodGhpcykpOwogICAgIH0KIH0K
ZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL0xheW91dC5qcyBiL1Rvb2xzL0xheW91
dFJlbG9hZGVkL0xheW91dC5qcwppbmRleCBiZGJhNWMyZWMxMzc1ODQ2ZDY4OTAxNjZlMzUxZGVk
NWNkMjgwOTg0Li4zNDNhMDI0NjQ1YmI3Mzg4YjViMmU2Zjg4NmIzZGI2MmRlOWUzOTA5IDEwMDY0
NAotLS0gYS9Ub29scy9MYXlvdXRSZWxvYWRlZC9MYXlvdXQuanMKKysrIGIvVG9vbHMvTGF5b3V0
UmVsb2FkZWQvTGF5b3V0LmpzCkBAIC0yOCw5ICsyOCw3IEBAIGZ1bmN0aW9uIGxheW91dCh3aW5k
b3csIHZpZXdwb3J0U2l6ZSkgewogICAgIGxldCBpbml0aWFsQ29udGFpbmluZ0Jsb2NrID0gdHJl
ZUJ1aWxkZXIuY3JlYXRlVHJlZSh3aW5kb3cuZG9jdW1lbnQsIHdpbmRvdy5yZW5kZXJUcmVlU3Ry
dWN0dXJlKTsKICAgICBsZXQgZGlzcGxheUJveCA9IG5ldyBEaXNwbGF5LkJveCgpOwogICAgIGRp
c3BsYXlCb3guc2V0U2l6ZSh2aWV3cG9ydFNpemUpOwotICAgIGluaXRpYWxDb250YWluaW5nQmxv
Y2suc2V0RGlzcGxheUJveChkaXNwbGF5Qm94KTsKLQotICAgIGxldCBsYXlvdXRDb250ZXh0ID0g
bmV3IExheW91dENvbnRleHQoaW5pdGlhbENvbnRhaW5pbmdCbG9jayk7Ci0gICAgbGF5b3V0Q29u
dGV4dC5sYXlvdXQoaW5pdGlhbENvbnRhaW5pbmdCbG9jayk7Ci0gICAgcmV0dXJuIFV0aWxzLmxh
eW91dFRyZWVEdW1wKGluaXRpYWxDb250YWluaW5nQmxvY2spOworICAgIGxldCBsYXlvdXRTdGF0
ZSA9IG5ldyBMYXlvdXRTdGF0ZShkaXNwbGF5Qm94KTsKKyAgICBsYXlvdXRTdGF0ZS5sYXlvdXQo
aW5pdGlhbENvbnRhaW5pbmdCbG9jayk7CisgICAgcmV0dXJuIFV0aWxzLmxheW91dFRyZWVEdW1w
KGluaXRpYWxDb250YWluaW5nQmxvY2ssIGxheW91dFN0YXRlKTsKIH0KZGlmZiAtLWdpdCBhL1Rv
b2xzL0xheW91dFJlbG9hZGVkL0xheW91dENvbnRleHQuanMgYi9Ub29scy9MYXlvdXRSZWxvYWRl
ZC9MYXlvdXRDb250ZXh0LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiOTg5YThh
ZDNiNzA5YzViY2U2NmVjZTBlZmZmYjEzMzEwMmMyYzY4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL0xheW91dENvbnRl
eHQuanMKKysrIC9kZXYvbnVsbApAQCAtMSw0NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDE4IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
LSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotY2xhc3MgTGF5b3V0Q29udGV4dCB7Ci0gICAgY29u
c3RydWN0b3IoKSB7Ci0gICAgICAgIHRoaXMubV9sYXlvdXRTdGF0ZXMgPSBuZXcgTWFwKCk7Ci0g
ICAgfQotCi0gICAgbGF5b3V0KGZvcm1hdHRpbmdSb290KSB7Ci0gICAgICAgIGxldCBmb3JtYXR0
aW5nU3RhdGUgPSB0aGlzLl9jcmVhdGVGb3JtYXR0aW5nU3RhdGUoZm9ybWF0dGluZ1Jvb3QpOwot
ICAgICAgICB0aGlzLm1fbGF5b3V0U3RhdGVzLnNldChmb3JtYXR0aW5nUm9vdCwgZm9ybWF0dGlu
Z1N0YXRlKTsKLSAgICAgICAgZm9ybWF0dGluZ1N0YXRlLmZvcm1hdHRpbmdDb250ZXh0KCkubGF5
b3V0KCk7Ci0gICAgfQotCi0gICAgX2NyZWF0ZUZvcm1hdHRpbmdTdGF0ZShmb3JtYXR0aW5nUm9v
dCkgewotICAgICAgICBBU1NFUlQoZm9ybWF0dGluZ1Jvb3QuZXN0YWJsaXNoZXNGb3JtYXR0aW5n
Q29udGV4dCgpKTsKLSAgICAgICAgaWYgKGZvcm1hdHRpbmdSb290LmVzdGFibGlzaGVzQmxvY2tG
b3JtYXR0aW5nQ29udGV4dCgpKQotICAgICAgICAgICAgcmV0dXJuIG5ldyBCbG9ja0Zvcm1hdHRp
bmdTdGF0ZShmb3JtYXR0aW5nUm9vdCwgdGhpcyk7Ci0gICAgICAgIGlmIChmb3JtYXR0aW5nUm9v
dC5lc3RhYmxpc2hlc0lubGluZUZvcm1hdHRpbmdDb250ZXh0KCkpCi0gICAgICAgICAgICByZXR1
cm4gbmV3IElubGluZUZvcm1hdHRpbmdTdGF0ZShmb3JtYXR0aW5nUm9vdCwgdGhpcyk7Ci0gICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm4gbnVsbDsKLSAgICB9Ci19
CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC9MYXlvdXRSZWxvYWRlZC54Y3dvcmtz
cGFjZS9jb250ZW50cy54Y3dvcmtzcGFjZWRhdGEgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC9MYXlv
dXRSZWxvYWRlZC54Y3dvcmtzcGFjZS9jb250ZW50cy54Y3dvcmtzcGFjZWRhdGEKaW5kZXggNzhm
YjFmZWYyZmM0ZGU1ZGRjYWE0ZDZkM2FmMDllYmQ3ZTQwMGU5Zi4uZmUxNjRjZGY3ZDFkZTc5NjZl
YTU1NjYxZjhlYzU4NGMwYzNmMGU1ZiAxMDA2NDQKLS0tIGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQv
TGF5b3V0UmVsb2FkZWQueGN3b3Jrc3BhY2UvY29udGVudHMueGN3b3Jrc3BhY2VkYXRhCisrKyBi
L1Rvb2xzL0xheW91dFJlbG9hZGVkL0xheW91dFJlbG9hZGVkLnhjd29ya3NwYWNlL2NvbnRlbnRz
Lnhjd29ya3NwYWNlZGF0YQpAQCAtMjAsNyArMjAsNyBAQAogICAgICAgbG9jYXRpb24gPSAiZ3Jv
dXA6TGF5b3V0LmpzIj4KICAgIDwvRmlsZVJlZj4KICAgIDxGaWxlUmVmCi0gICAgICBsb2NhdGlv
biA9ICJncm91cDpMYXlvdXRDb250ZXh0LmpzIj4KKyAgICAgIGxvY2F0aW9uID0gImdyb3VwOkxh
eW91dFN0YXRlLmpzIj4KICAgIDwvRmlsZVJlZj4KICAgIDxGaWxlUmVmCiAgICAgICBsb2NhdGlv
biA9ICJncm91cDpVdGlscy5qcyI+CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC9M
YXlvdXRTdGF0ZS5qcyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL0xheW91dFN0YXRlLmpzCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmIwYWU2MGVlOWNiMTQ5MjAwM2E5NGQ3YzI5OTQ4ZmI5Nzk2Y2Q4ZDkKLS0tIC9kZXYv
bnVsbAorKysgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC9MYXlvdXRTdGF0ZS5qcwpAQCAtMCwwICsx
LDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBS
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworY2xh
c3MgTGF5b3V0U3RhdGUgeworICAgIGNvbnN0cnVjdG9yKGluaXRpYWxEaXNwbGF5Qm94KSB7Cisg
ICAgICAgIHRoaXMubV9mb3JtYXR0aW5nU3RhdGVzID0gbmV3IE1hcCgpOworICAgICAgICB0aGlz
Lm1faW5pdGlhbERpc3BsYXlCb3ggPSBpbml0aWFsRGlzcGxheUJveDsKKyAgICB9CisKKyAgICBs
YXlvdXQoZm9ybWF0dGluZ1Jvb3QpIHsKKyAgICAgICAgbGV0IGZvcm1hdHRpbmdTdGF0ZSA9IHRo
aXMuX2NyZWF0ZUZvcm1hdHRpbmdTdGF0ZShmb3JtYXR0aW5nUm9vdCk7CisgICAgICAgIHRoaXMu
bV9mb3JtYXR0aW5nU3RhdGVzLnNldChmb3JtYXR0aW5nUm9vdCwgZm9ybWF0dGluZ1N0YXRlKTsK
KyAgICAgICAgZm9ybWF0dGluZ1N0YXRlLmZvcm1hdHRpbmdDb250ZXh0KCkubGF5b3V0KCk7Cisg
ICAgfQorCisgICAgX2NyZWF0ZUZvcm1hdHRpbmdTdGF0ZShmb3JtYXR0aW5nUm9vdCkgeworICAg
ICAgICBBU1NFUlQoZm9ybWF0dGluZ1Jvb3QuZXN0YWJsaXNoZXNGb3JtYXR0aW5nQ29udGV4dCgp
KTsKKyAgICAgICAgaWYgKGZvcm1hdHRpbmdSb290LmVzdGFibGlzaGVzQmxvY2tGb3JtYXR0aW5n
Q29udGV4dCgpKQorICAgICAgICAgICAgcmV0dXJuIG5ldyBCbG9ja0Zvcm1hdHRpbmdTdGF0ZShm
b3JtYXR0aW5nUm9vdCwgdGhpcyk7CisgICAgICAgIGlmIChmb3JtYXR0aW5nUm9vdC5lc3RhYmxp
c2hlc0lubGluZUZvcm1hdHRpbmdDb250ZXh0KCkpCisgICAgICAgICAgICByZXR1cm4gbmV3IElu
bGluZUZvcm1hdHRpbmdTdGF0ZShmb3JtYXR0aW5nUm9vdCwgdGhpcyk7CisgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICBmb3Jt
YXR0aW5nU3RhdGVzKCkgeworICAgICAgICByZXR1cm4gdGhpcy5tX2Zvcm1hdHRpbmdTdGF0ZXM7
CisgICAgfQorCisgICAgaW5pdGlhbERpc3BsYXlCb3goKSB7CisgICAgICAgIHJldHVybiB0aGlz
Lm1faW5pdGlhbERpc3BsYXlCb3g7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0
UmVsb2FkZWQvTGF5b3V0VHJlZS9Cb3guanMgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC9MYXlvdXRU
cmVlL0JveC5qcwppbmRleCA1OWE3NmRlNWEzZDc0M2IyZTg3OTcyODEyYTA3NDJhYjk1MDlkOGQ0
Li45ZDRjYmYwZjkwOTRkZGYzOTQyNThhMzA0YWI0MmQ5ZDdhNWE4MWY0IDEwMDY0NAotLS0gYS9U
b29scy9MYXlvdXRSZWxvYWRlZC9MYXlvdXRUcmVlL0JveC5qcworKysgYi9Ub29scy9MYXlvdXRS
ZWxvYWRlZC9MYXlvdXRUcmVlL0JveC5qcwpAQCAtMTA3LDE2ICsxMDcsNiBAQCBMYXlvdXQuQm94
ID0gY2xhc3MgQm94IHsKICAgICAgICAgdGhpcy5tX3ByZXZpb3VzU2libGluZyA9IHByZXZpb3Vz
U2libGluZzsKICAgICB9CiAKLSAgICBzZXREaXNwbGF5Qm94KGRpc3BsYXlCb3gpIHsKLSAgICAg
ICAgQVNTRVJUKCF0aGlzLm1fZGlzcGxheUJveCk7Ci0gICAgICAgIHRoaXMubV9kaXNwbGF5Qm94
ID0gZGlzcGxheUJveDsKLSAgICB9Ci0KLSAgICBkaXNwbGF5Qm94KCkgewotICAgICAgICBBU1NF
UlQodGhpcy5tX2Rpc3BsYXlCb3gpOwotICAgICAgICByZXR1cm4gdGhpcy5tX2Rpc3BsYXlCb3g7
Ci0gICAgfQotCiAgICAgaXNDb250YWluZXIoKSB7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICB9CkBAIC0xODMsNyArMTczLDcgQEAgTGF5b3V0LkJveCA9IGNsYXNzIEJveCB7CiAgICAgfQog
CiAgICAgaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkgewotICAgICAgICByZXR1cm4gdGhpcy5pc0Fi
c29sdXRlbHlQb3NpdGlvbmVkKCkgfHwgdGhpcy5pc0ZpeGVkUG9zaXRpb25lZCgpOworICAgICAg
ICByZXR1cm4gdGhpcy5pc0Fic29sdXRlbHlQb3NpdGlvbmVkKCk7CiAgICAgfQogCiAgICAgaXNJ
bkZsb3dQb3NpdGlvbmVkKCkgewpAQCAtMjA5LDcgKzE5OSw3IEBAIExheW91dC5Cb3ggPSBjbGFz
cyBCb3ggewogICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgIGlmICghdGhpcy5pc1Bv
c2l0aW9uZWQoKSB8fCB0aGlzLmlzSW5GbG93UG9zaXRpb25lZCgpKQogICAgICAgICAgICAgcmV0
dXJuIHRoaXMucGFyZW50KCk7Ci0gICAgICAgIGlmICh0aGlzLmlzQWJzb2x1dGVseVBvc2l0aW9u
ZWQoKSAmJiAhdGhpcy5pc0ZpeGVkUG9zaXRpb25lZCgpKSB7CisgICAgICAgIGlmICh0aGlzLmlz
T3V0T2ZGbG93UG9zaXRpb25lZCgpICYmICF0aGlzLmlzRml4ZWRQb3NpdGlvbmVkKCkpIHsKICAg
ICAgICAgICAgIGxldCBhc2NlbmRhbnQgPSB0aGlzLnBhcmVudCgpOwogICAgICAgICAgICAgd2hp
bGUgKGFzY2VuZGFudC5wYXJlbnQoKSAmJiAhYXNjZW5kYW50LmlzUG9zaXRpb25lZCgpKQogICAg
ICAgICAgICAgICAgIGFzY2VuZGFudCA9IGFzY2VuZGFudC5wYXJlbnQoKTsKZGlmZiAtLWdpdCBh
L1Rvb2xzL0xheW91dFJlbG9hZGVkL1V0aWxzLmpzIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvVXRp
bHMuanMKaW5kZXggOWU2M2YzODMyMTgwNjkxYWJlNGJkMDM2YWJmMDgyZTE4YzE4ZGQ4ZC4uODFk
OGM0MmZmNjdhNTlkY2MwYTgwODQ1ZWZlMzI0Zjg4ODE0MjQxNyAxMDA2NDQKLS0tIGEvVG9vbHMv
TGF5b3V0UmVsb2FkZWQvVXRpbHMuanMKKysrIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvVXRpbHMu
anMKQEAgLTQ5MSwxMSArNDkxLDIxIEBAIGNsYXNzIFV0aWxzIHsKICAgICB9CiAKICAgICAvLyAi
UmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDEzMTd4MzY2XG4gSFRNTCBSZW5kZXJCbG9jayBhdCAo
MCwwKSBzaXplIDEzMTd4MTE2XG4gIEJPRFkgUmVuZGVyQm9keSBhdCAoOCw4KSBzaXplIDEzMDF4
MTAwXG4gICBESVYgUmVuZGVyQmxvY2sgYXQgKDAsMCkgc2l6ZSAxMDB4MTAwXG4iOwotICAgIHN0
YXRpYyBsYXlvdXRUcmVlRHVtcChpbml0aWFsQ29udGFpbmluZ0Jsb2NrKSB7Ci0gICAgICAgIHJl
dHVybiB0aGlzLl9kdW1wQm94KGluaXRpYWxDb250YWluaW5nQmxvY2ssIDEpICsgdGhpcy5fZHVt
cFRyZWUoaW5pdGlhbENvbnRhaW5pbmdCbG9jaywgMik7CisgICAgc3RhdGljIGxheW91dFRyZWVE
dW1wKGluaXRpYWxDb250YWluaW5nQmxvY2ssIGxheW91dFN0YXRlKSB7CisgICAgICAgIHJldHVy
biB0aGlzLl9kdW1wQm94KGxheW91dFN0YXRlLCBpbml0aWFsQ29udGFpbmluZ0Jsb2NrLCAxKSAr
IHRoaXMuX2R1bXBUcmVlKGxheW91dFN0YXRlLCBpbml0aWFsQ29udGFpbmluZ0Jsb2NrLCAyKTsK
ICAgICB9CiAKLSAgICBzdGF0aWMgX2R1bXBCb3goYm94LCBsZXZlbCkgeworICAgIHN0YXRpYyBf
ZmluZERpc3BsYXlCb3gobGF5b3V0U3RhdGUsIGJveCkgeworICAgICAgICBmb3IgKGxldCBmb3Jt
YXR0aW5nU3RhdGUgb2YgbGF5b3V0U3RhdGUuZm9ybWF0dGluZ1N0YXRlcygpKSB7CisgICAgICAg
ICAgICBsZXQgZGlzcGxheUJveCA9IGZvcm1hdHRpbmdTdGF0ZVsxXS5kaXNwbGF5Qm94TWFwKCku
Z2V0KGJveCk7CisgICAgICAgICAgICBpZiAoZGlzcGxheUJveCkKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gZGlzcGxheUJveDsKKyAgICAgICAgfQorICAgICAgICBBU1NFUlQoIWJveC5wYXJlbnQo
KSk7CisgICAgICAgIHJldHVybiBsYXlvdXRTdGF0ZS5pbml0aWFsRGlzcGxheUJveCgpOworICAg
IH0KKworICAgIHN0YXRpYyBfZHVtcEJveChsYXlvdXRTdGF0ZSwgYm94LCBsZXZlbCkgewogICAg
ICAgICAvLyBTa2lwIGFub255bW91cyBib3hlcyBmb3Igbm93IC1UaGlzIGlzIHRoZSBjYXNlIHdo
ZXJlIFdlYktpdCBkb2VzIG5vdCBnZW5lcmF0ZSBhbiBhbm9uIGlubGluZSBjb250YWluZXIgZm9y
IHRleHQgY29udGVudCB3aGVyZSB0aGUgdGV4dCBpcyBhIGRpcmVjdCBjaGlsZAogICAgICAgICAv
LyBvZiBhIGJsb2NrIGNvbnRhaW5lci4KICAgICAgICAgbGV0IGluZGVudGF0aW9uID0gIiAiLnJl
cGVhdChsZXZlbCk7CkBAIC01MDUsNyArNTE1LDcgQEAgY2xhc3MgVXRpbHMgewogICAgICAgICB9
CiAgICAgICAgIGlmIChib3guaXNBbm9ueW1vdXMoKSkKICAgICAgICAgICAgIHJldHVybiAiIjsK
LSAgICAgICAgbGV0IGRpc3BsYXlCb3ggPSBib3guZGlzcGxheUJveCgpOworICAgICAgICBsZXQg
ZGlzcGxheUJveCA9IFV0aWxzLl9maW5kRGlzcGxheUJveChsYXlvdXRTdGF0ZSwgYm94KTsKICAg
ICAgICAgbGV0IGJveFJlY3QgPSBkaXNwbGF5Qm94LnJlY3QoKTsKICAgICAgICAgcmV0dXJuIGlu
ZGVudGF0aW9uICsgKGJveC5ub2RlKCkudGFnTmFtZSA/IChib3gubm9kZSgpLnRhZ05hbWUgKyAi
ICIpIDogIiIpICArIGJveC5uYW1lKCkgKyAiIGF0ICgiICsgYm94UmVjdC5sZWZ0KCkgKyAiLCIg
KyBib3hSZWN0LnRvcCgpICsgIikgc2l6ZSAiICsgYm94UmVjdC53aWR0aCgpICsgIngiICsgYm94
UmVjdC5oZWlnaHQoKSArICJcbiI7CiAgICAgfQpAQCAtNTI3LDE0ICs1MzcsMTQgQEAgY2xhc3Mg
VXRpbHMgewogICAgICAgICByZXR1cm4gY29udGVudDsKICAgICB9CiAKLSAgICBzdGF0aWMgX2R1
bXBUcmVlKHJvb3QsIGxldmVsKSB7CisgICAgc3RhdGljIF9kdW1wVHJlZShsYXlvdXRTdGF0ZSwg
cm9vdCwgbGV2ZWwpIHsKICAgICAgICAgbGV0IGNvbnRlbnQgPSAiIjsKICAgICAgICAgaWYgKHJv
b3QuaXNCbG9ja0NvbnRhaW5lckJveCgpICYmIHJvb3QuZXN0YWJsaXNoZXNJbmxpbmVGb3JtYXR0
aW5nQ29udGV4dCgpKQogICAgICAgICAgICAgY29udGVudCArPSB0aGlzLl9kdW1wTGluZXMocm9v
dCwgbGV2ZWwpOwogICAgICAgICBmb3IgKGxldCBjaGlsZCA9IHJvb3QuZmlyc3RDaGlsZCgpOyBj
aGlsZDsgY2hpbGQgPSBjaGlsZC5uZXh0U2libGluZygpKSB7Ci0gICAgICAgICAgICBjb250ZW50
ICs9IHRoaXMuX2R1bXBCb3goY2hpbGQsIGxldmVsKTsKKyAgICAgICAgICAgIGNvbnRlbnQgKz0g
dGhpcy5fZHVtcEJveChsYXlvdXRTdGF0ZSwgY2hpbGQsIGxldmVsKTsKICAgICAgICAgICAgIGlm
IChjaGlsZC5pc0NvbnRhaW5lcigpKQotICAgICAgICAgICAgICAgIGNvbnRlbnQgKz0gdGhpcy5f
ZHVtcFRyZWUoY2hpbGQsIGxldmVsICsgMSwgY29udGVudCk7CisgICAgICAgICAgICAgICAgY29u
dGVudCArPSB0aGlzLl9kdW1wVHJlZShsYXlvdXRTdGF0ZSwgY2hpbGQsIGxldmVsICsgMSwgY29u
dGVudCk7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIGNvbnRlbnQ7CiAgICAgfQpkaWZmIC0t
Z2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvbWlzYy9oZWFkZXJzL0Jsb2NrRm9ybWF0dGluZ0Nv
bnRleHQuaCBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL21pc2MvaGVhZGVycy9CbG9ja0Zvcm1hdHRp
bmdDb250ZXh0LmgKaW5kZXggNGU4OWY3NmQxNjFiOTBhMzUzNGY0NmY1OTllNzJiNTRkZjZlMDU3
ZC4uZTMzOTMxMGI0NjdlNzIwYWI3OWFjYjExMzZiOWVlY2UwZjZhNWFiOSAxMDA2NDQKLS0tIGEv
VG9vbHMvTGF5b3V0UmVsb2FkZWQvbWlzYy9oZWFkZXJzL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQu
aAorKysgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC9taXNjL2hlYWRlcnMvQmxvY2tGb3JtYXR0aW5n
Q29udGV4dC5oCkBAIC0zMCwxNCArMzAsMTQgQEAgbmFtZXNwYWNlIExheW91dFJlbG9hZGVkIHsK
IGNsYXNzIEJsb2NrQ29udGFpbmVyOwogY2xhc3MgQm94OwogY2xhc3MgRmxvYXRpbmdDb250ZXh0
OwotY2xhc3MgTGF5b3V0Q29udGV4dDsKK2NsYXNzIExheW91dFN0YXRlOwogCiBjbGFzcyBCbG9j
a0Zvcm1hdHRpbmdDb250ZXh0IDogcHVibGljIEZvcm1hdHRpbmdDb250ZXh0IHsKIHB1YmxpYzoK
ICAgICBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0KEJsb2NrQ29udGFpbmVyJiByb290KTsKICAgICB2
aXJ0dWFsIH5CbG9ja0Zvcm1hdHRpbmdDb250ZXh0KCk7CiAKLSAgICB2b2lkIGxheW91dChMYXlv
dXRDb250ZXh0JikgZmluYWw7CisgICAgdm9pZCBsYXlvdXQoTGF5b3V0U3RhdGUmKSBmaW5hbDsK
IAogcHJpdmF0ZToKICAgICBMYXlvdXRVbml0IGNvbXB1dGVXaWR0aChjb25zdCBCb3gmKSBjb25z
dCBmaW5hbDsKZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL21pc2MvaGVhZGVycy9G
b3JtYXR0aW5nQ29udGV4dC5oIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvbWlzYy9oZWFkZXJzL0Zv
cm1hdHRpbmdDb250ZXh0LmgKaW5kZXggYzhmMDliYTZjZTJlMTRkNjczMjEzN2NlNWQ5ZjI5NTg1
MWQwYjNmNS4uZDQ4NzkzZTQ2N2U2NTAwMDMyMTRhNmIyNTFmMjFiZmJiNTMyYTEzYyAxMDA2NDQK
LS0tIGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvbWlzYy9oZWFkZXJzL0Zvcm1hdHRpbmdDb250ZXh0
LmgKKysrIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvbWlzYy9oZWFkZXJzL0Zvcm1hdHRpbmdDb250
ZXh0LmgKQEAgLTI4LDE2ICsyOCwxNiBAQCBuYW1lc3BhY2UgTGF5b3V0UmVsb2FkZWQgewogY2xh
c3MgQm94OwogY2xhc3MgQ29udGFpbmVyOwogY2xhc3MgRmxvYXRpbmdDb250ZXh0OwotY2xhc3Mg
TGF5b3V0Q29udGV4dDsKK2NsYXNzIExheW91dFN0YXRlOwogCiBjbGFzcyBGb3JtYXR0aW5nQ29u
dGV4dCB7CiBwdWJsaWM6Ci0gICAgRm9ybWF0dGluZ0NvbnRleHQoQ29udGFpbmVyJiByb290Q29u
dGFpbmVyKTsKKyAgICBGb3JtYXR0aW5nQ29udGV4dCgpOwogCi0gICAgQ29udGFpbmVyJiByb290
Q29udGFpbmVyKCkgY29uc3Q7CisgICAgQ29udGFpbmVyJiBmb3JtYXR0aW5nUm9vdCgpIGNvbnN0
OwogICAgIEZsb2F0aW5nQ29udGV4dCYgZmxvYXRpbmdDb250ZXh0KCkgY29uc3Q7CiAKLSAgICB2
aXJ0dWFsIHZvaWQgbGF5b3V0KGNvbnN0IExheW91dENvbnRleHQmKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIGxheW91dChjb25zdCBMYXlvdXRTdGF0ZSYpID0gMDsKIAogcHJvdGVjdGVkOgogICAg
IHZpcnR1YWwgTGF5b3V0VW5pdCBjb21wdXRlV2lkdGgoY29uc3QgQm94JikgY29uc3Q7CmRpZmYg
LS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC9taXNjL2hlYWRlcnMvTGF5b3V0Q29udGV4dC5o
IGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvbWlzYy9oZWFkZXJzL0xheW91dENvbnRleHQuaAppbmRl
eCAxMTc4YjE0MWYzNDk5N2Q1ZjYxZDE1MmJjOTNkZGU1NjY2OGYxNjg2Li5iOTI3NDc4NjM5MGUw
NmZkMzBiZDAxNzJiNDQyMzc0M2M2ZWQ2N2UzIDEwMDY0NAotLS0gYS9Ub29scy9MYXlvdXRSZWxv
YWRlZC9taXNjL2hlYWRlcnMvTGF5b3V0Q29udGV4dC5oCisrKyBiL1Rvb2xzL0xheW91dFJlbG9h
ZGVkL21pc2MvaGVhZGVycy9MYXlvdXRDb250ZXh0LmgKQEAgLTI3LDkgKzI3LDkgQEAgbmFtZXNw
YWNlIExheW91dFJlbG9hZGVkIHsKIAogY2xhc3MgRm9ybWF0dGluZ0NvbnRleHQ7CiAKLWNsYXNz
IExheW91dENvbnRleHQgeworY2xhc3MgTGF5b3V0U3RhdGUgewogcHVibGljOgotICAgIExheW91
dENvbnRleHQoKTsKKyAgICBMYXlvdXRTdGF0ZSgpOwogICAgIAogICAgIHZvaWQgbGF5b3V0Rm9y
bWF0dGluZ0NvbnRleHQoRm9ybWF0dGluZ0NvbnRleHQmKTsKIH07CmRpZmYgLS1naXQgYS9Ub29s
cy9MYXlvdXRSZWxvYWRlZC90ZXN0L2luZGV4Lmh0bWwgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90
ZXN0L2luZGV4Lmh0bWwKaW5kZXggYTFhYzgxNDg3MGNhMGNkMGM3NTNkOTE4OTJlNGIzMDc5YzE5
MDEyMC4uN2Q1ZDYzMjczYTk0ZWVhMGI0YTUyYzk4ZDJhNzdkMzZkOTc5NGNlNiAxMDA2NDQKLS0t
IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9pbmRleC5odG1sCisrKyBiL1Rvb2xzL0xheW91
dFJlbG9hZGVkL3Rlc3QvaW5kZXguaHRtbApAQCAtNzcsNyArNzcsNyBAQCBhZGRKUygiLi9UZXN0
SGFybmVzcy5qcyIpOwogYWRkSlMoIi4uL1V0aWxzLmpzIik7CiBhZGRKUygiLi4vTGF5b3V0Lmpz
Iik7CiBhZGRKUygiLi4vVHJlZUJ1aWxkZXIuanMiKTsKLWFkZEpTKCIuLi9MYXlvdXRDb250ZXh0
LmpzIik7CithZGRKUygiLi4vTGF5b3V0U3RhdGUuanMiKTsKIGFkZEpTKCIuLi9MYXlvdXRUcmVl
L0JveC5qcyIpOwogYWRkSlMoIi4uL0xheW91dFRyZWUvQ29udGFpbmVyLmpzIik7CiBhZGRKUygi
Li4vTGF5b3V0VHJlZS9CbG9ja0NvbnRhaW5lci5qcyIpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>