<?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>190224</bug_id>
          
          <creation_ts>2018-10-02 16:22:00 -0700</creation_ts>
          <short_desc>Web Inspector: merge SourceMapManager into NetworkManager</short_desc>
          <delta_ts>2018-10-03 22:53:28 -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>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>
          
          <blocked>190276</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>joepeck</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1465811</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2018-10-02 16:22:00 -0700</bug_when>
    <thetext>There&apos;s no reason to have them separate, especially since NetworkManager controls most of SourceMapManager&apos;s functionality.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1465813</commentid>
    <comment_count>1</comment_count>
      <attachid>351451</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2018-10-02 16:28:27 -0700</bug_when>
    <thetext>Created attachment 351451
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1465824</commentid>
    <comment_count>2</comment_count>
      <attachid>351451</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2018-10-02 16:46:55 -0700</bug_when>
    <thetext>Comment on attachment 351451
Patch

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

r=me

&gt; Source/WebInspectorUI/UserInterface/Controllers/NetworkManager.js:41
&gt; +        this._sourceMapURLMap = {};
&gt; +        this._downloadingSourceMaps = {};

We could modernize this to be a Map and Set. That can be another time.

&gt; Source/WebInspectorUI/UserInterface/Controllers/NetworkManager.js:389
&gt; -            WI.sourceMapManager.downloadSourceMap(cachedResourcePayload.sourceMapURL, resource.url, resource);
&gt; +            WI.networkManager.downloadSourceMap(cachedResourcePayload.sourceMapURL, resource.url, resource);

Shouldn&apos;t these just be `this.` instead of `WI.networkManager.`?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1465855</commentid>
    <comment_count>3</comment_count>
      <attachid>351461</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2018-10-02 17:40:54 -0700</bug_when>
    <thetext>Created attachment 351461
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1465868</commentid>
    <comment_count>4</comment_count>
      <attachid>351461</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-10-02 18:49:13 -0700</bug_when>
    <thetext>Comment on attachment 351461
Patch

Clearing flags on attachment: 351461

Committed r236783: &lt;https://trac.webkit.org/changeset/236783&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1465869</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-10-02 18:49:14 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1465870</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-10-02 18:50:28 -0700</bug_when>
    <thetext>&lt;rdar://problem/44961679&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>351451</attachid>
            <date>2018-10-02 16:28:27 -0700</date>
            <delta_ts>2018-10-02 17:40:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190224-20181002162826.patch</filename>
            <type>text/plain</type>
            <size>22613</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDBlNDYwNjc4YjUzYmExNmY5OWE0MmY2MTFhYTI0
NmVhNDA4ZjUwOGYuLjBkYjBhNmJhODdmMWM4YjhlNDNlOTlhZDAxMTc1OGVlMDI3ZmVlMzMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDE4LTEwLTAyICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBt
ZXJnZSBTb3VyY2VNYXBNYW5hZ2VyIGludG8gTmV0d29ya01hbmFnZXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MDIyNAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9NYWluLmh0
bWw6CisgICAgICAgICogVXNlckludGVyZmFjZS9CYXNlL01haW4uanM6CisgICAgICAgIChXSS5s
b2FkZWQpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVGVzdC5odG1sOgorICAgICAgICAqIFVz
ZXJJbnRlcmZhY2UvVGVzdC9UZXN0LmpzOgorICAgICAgICAoV0kubG9hZGVkKToKKworICAgICAg
ICAqIFVzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvTmV0d29ya01hbmFnZXIuanM6CisgICAgICAg
IChXSS5OZXR3b3JrTWFuYWdlcik6CisgICAgICAgIChXSS5OZXR3b3JrTWFuYWdlci5wcm90b3R5
cGUuZG93bmxvYWRTb3VyY2VNYXApOiBBZGRlZC4KKyAgICAgICAgKFdJLk5ldHdvcmtNYW5hZ2Vy
LnByb3RvdHlwZS5yZXNvdXJjZVJlcXVlc3RXYXNTZXJ2ZWRGcm9tTWVtb3J5Q2FjaGUpOgorICAg
ICAgICAoV0kuTmV0d29ya01hbmFnZXIucHJvdG90eXBlLnJlc291cmNlUmVxdWVzdERpZEZpbmlz
aExvYWRpbmcpOgorICAgICAgICAoV0kuTmV0d29ya01hbmFnZXIucHJvdG90eXBlLl9jcmVhdGVS
ZXNvdXJjZSk6CisgICAgICAgIChXSS5OZXR3b3JrTWFuYWdlci5wcm90b3R5cGUuX2xvYWRBbmRQ
YXJzZVNvdXJjZU1hcCk6IEFkZGVkLgorICAgICAgICAoV0kuTmV0d29ya01hbmFnZXIucHJvdG90
eXBlLl9zb3VyY2VNYXBMb2FkQW5kUGFyc2VGYWlsZWQpOiBBZGRlZC4KKyAgICAgICAgKFdJLk5l
dHdvcmtNYW5hZ2VyLnByb3RvdHlwZS5fc291cmNlTWFwTG9hZEFuZFBhcnNlU3VjY2VlZGVkKTog
QWRkZWQuCisgICAgICAgIChXSS5OZXR3b3JrTWFuYWdlci5wcm90b3R5cGUuX2hhbmRsZUZyYW1l
TWFpblJlc291cmNlRGlkQ2hhbmdlKTogQWRkZWQuCisgICAgICAgICogVXNlckludGVyZmFjZS9D
b250cm9sbGVycy9Tb3VyY2VNYXBNYW5hZ2VyLmpzOiBSZW1vdmVkLgorCisgICAgICAgICogVXNl
ckludGVyZmFjZS9Nb2RlbHMvU2NyaXB0LmpzOgorICAgICAgICAoV0kuU2NyaXB0KToKKworICAg
ICAgICAqIFdlYkluc3BlY3RvclVJLnZjeHByb2ovV2ViSW5zcGVjdG9yVUkudmN4cHJvajoKKyAg
ICAgICAgKiBXZWJJbnNwZWN0b3JVSS52Y3hwcm9qL1dlYkluc3BlY3RvclVJLnZjeHByb2ouZmls
dGVyczoKKwogMjAxOC0xMC0wMiAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAK
ICAgICAgICAgV2ViIEluc3BlY3RvcjogcmVuYW1lIGZyb250ZW5kIG1hbmFnZXJzIHRvIGJlIG1v
cmUgY29uc2lzdGVudCB3aXRoIGJhY2tlbmQgYWdlbnRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL01haW4uanMgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9CYXNlL01haW4uanMKaW5kZXggM2ZmMzRkNjg5MGFlN2E1YzM2
ZDJmNWI5MGViNWRkNDNlMjExMTE1MS4uYzhmMGNlYjk1ZTQ3ZWE1MWI1NWIwNjMxYWMwYjA4NDAz
MjM2Y2M1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
QmFzZS9NYWluLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jh
c2UvTWFpbi5qcwpAQCAtMTIzLDcgKzEyMyw2IEBAIFdJLmxvYWRlZCA9IGZ1bmN0aW9uKCkKICAg
ICB0aGlzLmFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyID0gbmV3IFdJLkFwcGxpY2F0aW9uQ2FjaGVN
YW5hZ2VyOwogICAgIHRoaXMudGltZWxpbmVNYW5hZ2VyID0gbmV3IFdJLlRpbWVsaW5lTWFuYWdl
cjsKICAgICB0aGlzLmRlYnVnZ2VyTWFuYWdlciA9IG5ldyBXSS5EZWJ1Z2dlck1hbmFnZXI7Ci0g
ICAgdGhpcy5zb3VyY2VNYXBNYW5hZ2VyID0gbmV3IFdJLlNvdXJjZU1hcE1hbmFnZXI7CiAgICAg
dGhpcy5sYXllclRyZWVNYW5hZ2VyID0gbmV3IFdJLkxheWVyVHJlZU1hbmFnZXI7CiAgICAgdGhp
cy5wcm9iZU1hbmFnZXIgPSBuZXcgV0kuUHJvYmVNYW5hZ2VyOwogICAgIHRoaXMud29ya2VyTWFu
YWdlciA9IG5ldyBXSS5Xb3JrZXJNYW5hZ2VyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvTmV0d29ya01hbmFnZXIuanMgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9OZXR3b3JrTWFuYWdl
ci5qcwppbmRleCAwNTQxYmZiNTUzY2ZkNmJjNmI2ODRlOTc0NGQ5YTA3ZGFlOGY4N2UxLi5hMTY3
NjA1YWZhYzBjMGE5NjQ4NjJkMzdkZDk1ZjNjZGY1MTE1YzZjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9OZXR3b3JrTWFuYWdlci5q
cworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9O
ZXR3b3JrTWFuYWdlci5qcwpAQCAtMzcsNiArMzcsOSBAQCBXSS5OZXR3b3JrTWFuYWdlciA9IGNs
YXNzIE5ldHdvcmtNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAKICAgICAgICAgdGhpcy5fd2Fp
dGluZ0Zvck1haW5GcmFtZVJlc291cmNlVHJlZVBheWxvYWQgPSB0cnVlOwogCisgICAgICAgIHRo
aXMuX3NvdXJjZU1hcFVSTE1hcCA9IHt9OworICAgICAgICB0aGlzLl9kb3dubG9hZGluZ1NvdXJj
ZU1hcHMgPSB7fTsKKwogICAgICAgICBpZiAod2luZG93LlBhZ2VBZ2VudCkgewogICAgICAgICAg
ICAgUGFnZUFnZW50LmVuYWJsZSgpOwogICAgICAgICAgICAgUGFnZUFnZW50LmdldFJlc291cmNl
VHJlZSh0aGlzLl9wcm9jZXNzTWFpbkZyYW1lUmVzb3VyY2VUcmVlUGF5bG9hZC5iaW5kKHRoaXMp
KTsKQEAgLTQ5LDYgKzUyLDcgQEAgV0kuTmV0d29ya01hbmFnZXIgPSBjbGFzcyBOZXR3b3JrTWFu
YWdlciBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICAgICAgTmV0d29ya0FnZW50LmVuYWJsZSgp
OwogCiAgICAgICAgIFdJLm5vdGlmaWNhdGlvbnMuYWRkRXZlbnRMaXN0ZW5lcihXSS5Ob3RpZmlj
YXRpb24uRXh0cmFEb21haW5zQWN0aXZhdGVkLCB0aGlzLl9leHRyYURvbWFpbnNBY3RpdmF0ZWQs
IHRoaXMpOworICAgICAgICBXSS5GcmFtZS5hZGRFdmVudExpc3RlbmVyKFdJLkZyYW1lLkV2ZW50
Lk1haW5SZXNvdXJjZURpZENoYW5nZSwgdGhpcy5faGFuZGxlRnJhbWVNYWluUmVzb3VyY2VEaWRD
aGFuZ2UsIHRoaXMpOwogICAgIH0KIAogICAgIC8vIFB1YmxpYwpAQCAtNzMsNiArNzcsNDggQEAg
V0kuTmV0d29ya01hbmFnZXIgPSBjbGFzcyBOZXR3b3JrTWFuYWdlciBleHRlbmRzIFdJLk9iamVj
dAogICAgICAgICByZXR1cm4gdGhpcy5fcmVzb3VyY2VSZXF1ZXN0SWRlbnRpZmllck1hcC5nZXQo
cmVxdWVzdElkZW50aWZpZXIpIHx8IG51bGw7CiAgICAgfQogCisgICAgZG93bmxvYWRTb3VyY2VN
YXAoc291cmNlTWFwVVJMLCBiYXNlVVJMLCBvcmlnaW5hbFNvdXJjZUNvZGUpCisgICAgeworICAg
ICAgICAvLyBUaGUgYmFzZVVSTCBjb3VsZCBoYXZlIGNvbWUgZnJvbSBhICIvLyMgc291cmNlVVJM
Ii4gQXR0ZW1wdCB0byBnZXQgYQorICAgICAgICAvLyByZWFzb25hYmxlIGFic29sdXRlIFVSTCBm
b3IgdGhlIGJhc2UgYnkgdXNpbmcgdGhlIG1haW4gcmVzb3VyY2UncyBVUkwuCisgICAgICAgIGlm
IChXSS5uZXR3b3JrTWFuYWdlci5tYWluRnJhbWUpCisgICAgICAgICAgICBiYXNlVVJMID0gYWJz
b2x1dGVVUkwoYmFzZVVSTCwgV0kubmV0d29ya01hbmFnZXIubWFpbkZyYW1lLnVybCk7CisKKyAg
ICAgICAgaWYgKHNvdXJjZU1hcFVSTC5zdGFydHNXaXRoKCJkYXRhOiIpKSB7CisgICAgICAgICAg
ICB0aGlzLl9sb2FkQW5kUGFyc2VTb3VyY2VNYXAoc291cmNlTWFwVVJMLCBiYXNlVVJMLCBvcmln
aW5hbFNvdXJjZUNvZGUpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAg
ICAgc291cmNlTWFwVVJMID0gYWJzb2x1dGVVUkwoc291cmNlTWFwVVJMLCBiYXNlVVJMKTsKKyAg
ICAgICAgaWYgKCFzb3VyY2VNYXBVUkwpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAg
Y29uc29sZS5hc3NlcnQob3JpZ2luYWxTb3VyY2VDb2RlLnVybCk7CisgICAgICAgIGlmICghb3Jp
Z2luYWxTb3VyY2VDb2RlLnVybCkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAvLyBG
SVhNRTogPHJkYXI6Ly9wcm9ibGVtLzEzMjY1Njk0PiBTb3VyY2UgTWFwczogQmV0dGVyIGhhbmRs
ZSB3aGVuIG11bHRpcGxlIHJlc291cmNlcyByZWZlcmVuY2UgdGhlIHNhbWUgU291cmNlTWFwCisK
KyAgICAgICAgaWYgKHNvdXJjZU1hcFVSTCBpbiB0aGlzLl9zb3VyY2VNYXBVUkxNYXApCisgICAg
ICAgICAgICByZXR1cm47CisKKyAgICAgICAgaWYgKHNvdXJjZU1hcFVSTCBpbiB0aGlzLl9kb3du
bG9hZGluZ1NvdXJjZU1hcHMpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgbGV0IGxv
YWRBbmRQYXJzZVNvdXJjZU1hcCA9ICgpID0+IHsKKyAgICAgICAgICAgIHRoaXMuX2xvYWRBbmRQ
YXJzZVNvdXJjZU1hcChzb3VyY2VNYXBVUkwsIGJhc2VVUkwsIG9yaWdpbmFsU291cmNlQ29kZSk7
CisgICAgICAgIH07CisKKyAgICAgICAgaWYgKCFXSS5uZXR3b3JrTWFuYWdlci5tYWluRnJhbWUp
IHsKKyAgICAgICAgICAgIC8vIElmIHdlIGRvbid0IGhhdmUgYSBtYWluIGZyYW1lLCB0aGVuIHdl
IGFyZSBsaWtlbHkgaW4gdGhlIG1pZGRsZSBvZiBidWlsZGluZyB0aGUgcmVzb3VyY2UgdHJlZS4K
KyAgICAgICAgICAgIC8vIERlbGF5aW5nIHVudGlsIHRoZSBuZXh0IHJ1bmxvb3AgaXMgZW5vdWdo
IGluIHRoaXMgY2FzZSB0byB0aGVuIHN0YXJ0IGxvYWRpbmcgdGhlIHNvdXJjZSBtYXAuCisgICAg
ICAgICAgICBzZXRUaW1lb3V0KGxvYWRBbmRQYXJzZVNvdXJjZU1hcCwgMCk7CisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBsb2FkQW5kUGFyc2VTb3VyY2VNYXAoKTsK
KyAgICB9CisKICAgICBmcmFtZURpZE5hdmlnYXRlKGZyYW1lUGF5bG9hZCkKICAgICB7CiAgICAg
ICAgIC8vIENhbGxlZCBmcm9tIFdJLlBhZ2VPYnNlcnZlci4KQEAgLTM0MCw3ICszODYsNyBAQCBX
SS5OZXR3b3JrTWFuYWdlciA9IGNsYXNzIE5ldHdvcmtNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0
CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHJlc291cmNlLmNhY2hlZCwgIlRoaXMgcmVzb3VyY2Ug
c2hvdWxkIGJlIGNsYXNzaWZpZWQgYXMgY2FjaGVkIHNpbmNlIGl0IHdhcyBzZXJ2ZWQgZnJvbSB0
aGUgTWVtb3J5Q2FjaGUiLCByZXNvdXJjZSk7CiAKICAgICAgICAgaWYgKGNhY2hlZFJlc291cmNl
UGF5bG9hZC5zb3VyY2VNYXBVUkwpCi0gICAgICAgICAgICBXSS5zb3VyY2VNYXBNYW5hZ2VyLmRv
d25sb2FkU291cmNlTWFwKGNhY2hlZFJlc291cmNlUGF5bG9hZC5zb3VyY2VNYXBVUkwsIHJlc291
cmNlLnVybCwgcmVzb3VyY2UpOworICAgICAgICAgICAgV0kubmV0d29ya01hbmFnZXIuZG93bmxv
YWRTb3VyY2VNYXAoY2FjaGVkUmVzb3VyY2VQYXlsb2FkLnNvdXJjZU1hcFVSTCwgcmVzb3VyY2Uu
dXJsLCByZXNvdXJjZSk7CiAKICAgICAgICAgLy8gTm8gbmVlZCB0byBhc3NvY2lhdGUgdGhlIHJl
c291cmNlIHdpdGggdGhlIHJlcXVlc3RJZGVudGlmaWVyLCBzaW5jZSB0aGlzIGlzIHRoZSBvbmx5
IGV2ZW50CiAgICAgICAgIC8vIHNlbnQgZm9yIG1lbW9yeSBjYWNoZSByZXNvdXJjZSBsb2Fkcy4K
QEAgLTQzNSw3ICs0ODEsNyBAQCBXSS5OZXR3b3JrTWFuYWdlciA9IGNsYXNzIE5ldHdvcmtNYW5h
Z2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIHJlc291cmNlLm1hcmtBc0ZpbmlzaGVkKGVs
YXBzZWRUaW1lKTsKIAogICAgICAgICBpZiAoc291cmNlTWFwVVJMKQotICAgICAgICAgICAgV0ku
c291cmNlTWFwTWFuYWdlci5kb3dubG9hZFNvdXJjZU1hcChzb3VyY2VNYXBVUkwsIHJlc291cmNl
LnVybCwgcmVzb3VyY2UpOworICAgICAgICAgICAgV0kubmV0d29ya01hbmFnZXIuZG93bmxvYWRT
b3VyY2VNYXAoc291cmNlTWFwVVJMLCByZXNvdXJjZS51cmwsIHJlc291cmNlKTsKIAogICAgICAg
ICB0aGlzLl9yZXNvdXJjZVJlcXVlc3RJZGVudGlmaWVyTWFwLmRlbGV0ZShyZXF1ZXN0SWRlbnRp
Zmllcik7CiAgICAgfQpAQCAtNzAxLDcgKzc0Nyw3IEBAIFdJLk5ldHdvcmtNYW5hZ2VyID0gY2xh
c3MgTmV0d29ya01hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgdmFyIHJlc291cmNl
ID0gbmV3IFdJLlJlc291cmNlKHBheWxvYWQudXJsLCBwYXlsb2FkLm1pbWVUeXBlLCBwYXlsb2Fk
LnR5cGUsIGZyYW1lUGF5bG9hZC5sb2FkZXJJZCwgcGF5bG9hZC50YXJnZXRJZCk7CiAKICAgICAg
ICAgaWYgKHBheWxvYWQuc291cmNlTWFwVVJMKQotICAgICAgICAgICAgV0kuc291cmNlTWFwTWFu
YWdlci5kb3dubG9hZFNvdXJjZU1hcChwYXlsb2FkLnNvdXJjZU1hcFVSTCwgcmVzb3VyY2UudXJs
LCByZXNvdXJjZSk7CisgICAgICAgICAgICBXSS5uZXR3b3JrTWFuYWdlci5kb3dubG9hZFNvdXJj
ZU1hcChwYXlsb2FkLnNvdXJjZU1hcFVSTCwgcmVzb3VyY2UudXJsLCByZXNvdXJjZSk7CiAKICAg
ICAgICAgcmV0dXJuIHJlc291cmNlOwogICAgIH0KQEAgLTc2OSwxMSArODE1LDEwMiBAQCBXSS5O
ZXR3b3JrTWFuYWdlciA9IGNsYXNzIE5ldHdvcmtNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAg
ICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdJLk5ldHdvcmtNYW5hZ2VyLkV2
ZW50Lk1haW5GcmFtZURpZENoYW5nZSwge29sZE1haW5GcmFtZX0pOwogICAgIH0KIAorICAgIF9s
b2FkQW5kUGFyc2VTb3VyY2VNYXAoc291cmNlTWFwVVJMLCBiYXNlVVJMLCBvcmlnaW5hbFNvdXJj
ZUNvZGUpCisgICAgeworICAgICAgICB0aGlzLl9kb3dubG9hZGluZ1NvdXJjZU1hcHNbc291cmNl
TWFwVVJMXSA9IHRydWU7CisKKyAgICAgICAgbGV0IHNvdXJjZU1hcExvYWRlZCA9IChlcnJvciwg
Y29udGVudCwgbWltZVR5cGUsIHN0YXR1c0NvZGUpID0+IHsKKyAgICAgICAgICAgIGlmIChlcnJv
ciB8fCBzdGF0dXNDb2RlID49IDQwMCkgeworICAgICAgICAgICAgICAgIHRoaXMuX3NvdXJjZU1h
cExvYWRBbmRQYXJzZUZhaWxlZChzb3VyY2VNYXBVUkwpOworICAgICAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGNvbnRlbnQuc2xpY2UoMCwgMykg
PT09ICIpXX0iKSB7CisgICAgICAgICAgICAgICAgbGV0IGZpcnN0TmV3bGluZUluZGV4ID0gY29u
dGVudC5pbmRleE9mKCJcbiIpOworICAgICAgICAgICAgICAgIGlmIChmaXJzdE5ld2xpbmVJbmRl
eCA9PT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5fc291cmNlTWFwTG9hZEFuZFBh
cnNlRmFpbGVkKHNvdXJjZU1hcFVSTCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBjb250ZW50ID0gY29udGVudC5zdWJz
dHJpbmcoZmlyc3ROZXdsaW5lSW5kZXgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0
cnkgeworICAgICAgICAgICAgICAgIGxldCBwYXlsb2FkID0gSlNPTi5wYXJzZShjb250ZW50KTsK
KyAgICAgICAgICAgICAgICBsZXQgYmFzZVVSTCA9IHNvdXJjZU1hcFVSTC5zdGFydHNXaXRoKCJk
YXRhOiIpID8gb3JpZ2luYWxTb3VyY2VDb2RlLnVybCA6IHNvdXJjZU1hcFVSTDsKKyAgICAgICAg
ICAgICAgICBsZXQgc291cmNlTWFwID0gbmV3IFdJLlNvdXJjZU1hcChiYXNlVVJMLCBwYXlsb2Fk
LCBvcmlnaW5hbFNvdXJjZUNvZGUpOworICAgICAgICAgICAgICAgIHRoaXMuX3NvdXJjZU1hcExv
YWRBbmRQYXJzZVN1Y2NlZWRlZChzb3VyY2VNYXBVUkwsIHNvdXJjZU1hcCk7CisgICAgICAgICAg
ICB9IGNhdGNoIHsKKyAgICAgICAgICAgICAgICB0aGlzLl9zb3VyY2VNYXBMb2FkQW5kUGFyc2VG
YWlsZWQoc291cmNlTWFwVVJMKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKworICAgICAg
ICBpZiAoc291cmNlTWFwVVJMLnN0YXJ0c1dpdGgoImRhdGE6IikpIHsKKyAgICAgICAgICAgIGxl
dCB7bWltZVR5cGUsIGJhc2U2NCwgZGF0YX0gPSBwYXJzZURhdGFVUkwoc291cmNlTWFwVVJMKTsK
KyAgICAgICAgICAgIGxldCBjb250ZW50ID0gYmFzZTY0ID8gYXRvYihkYXRhKSA6IGRhdGE7Cisg
ICAgICAgICAgICBzb3VyY2VNYXBMb2FkZWQobnVsbCwgY29udGVudCwgbWltZVR5cGUsIDApOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCF3aW5kb3cuTmV0
d29ya0FnZW50KSB7CisgICAgICAgICAgICB0aGlzLl9zb3VyY2VNYXBMb2FkQW5kUGFyc2VGYWls
ZWQoc291cmNlTWFwVVJMKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAg
ICAgIGxldCBmcmFtZUlkZW50aWZpZXIgPSBudWxsOworICAgICAgICBpZiAob3JpZ2luYWxTb3Vy
Y2VDb2RlIGluc3RhbmNlb2YgV0kuUmVzb3VyY2UgJiYgb3JpZ2luYWxTb3VyY2VDb2RlLnBhcmVu
dEZyYW1lKQorICAgICAgICAgICAgZnJhbWVJZGVudGlmaWVyID0gb3JpZ2luYWxTb3VyY2VDb2Rl
LnBhcmVudEZyYW1lLmlkOworCisgICAgICAgIGlmICghZnJhbWVJZGVudGlmaWVyKQorICAgICAg
ICAgICAgZnJhbWVJZGVudGlmaWVyID0gV0kubmV0d29ya01hbmFnZXIubWFpbkZyYW1lID8gV0ku
bmV0d29ya01hbmFnZXIubWFpbkZyYW1lLmlkIDogIiI7CisKKyAgICAgICAgTmV0d29ya0FnZW50
LmxvYWRSZXNvdXJjZShmcmFtZUlkZW50aWZpZXIsIHNvdXJjZU1hcFVSTCwgc291cmNlTWFwTG9h
ZGVkKTsKKyAgICB9CisKKyAgICBfc291cmNlTWFwTG9hZEFuZFBhcnNlRmFpbGVkKHNzb3VyY2VN
YXBMdXJjZU1hcFVSTCkKKyAgICB7CisgICAgICAgIGRlbGV0ZSB0aGlzLl9kb3dubG9hZGluZ1Nv
dXJjZU1hcHNbc291cmNlTWFwVVJMXTsKKyAgICB9CisKKyAgICBfc291cmNlTWFwTG9hZEFuZFBh
cnNlU3VjY2VlZGVkKHNvdXJjZU1hcFVSTCwgc291cmNlTWFwKQorICAgIHsKKyAgICAgICAgaWYg
KCEoc291cmNlTWFwVVJMIGluIHRoaXMuX2Rvd25sb2FkaW5nU291cmNlTWFwcykpCisgICAgICAg
ICAgICByZXR1cm47CisKKyAgICAgICAgZGVsZXRlIHRoaXMuX2Rvd25sb2FkaW5nU291cmNlTWFw
c1tzb3VyY2VNYXBVUkxdOworCisgICAgICAgIHRoaXMuX3NvdXJjZU1hcFVSTE1hcFtzb3VyY2VN
YXBVUkxdID0gc291cmNlTWFwOworCisgICAgICAgIGZvciAobGV0IHNvdXJjZSBvZiBzb3VyY2VN
YXAuc291cmNlcygpKQorICAgICAgICAgICAgc291cmNlTWFwLmFkZFJlc291cmNlKG5ldyBXSS5T
b3VyY2VNYXBSZXNvdXJjZShzb3VyY2UsIHNvdXJjZU1hcCkpOworCisgICAgICAgIC8vIEFzc29j
aWF0ZSB0aGUgU291cmNlTWFwIHdpdGggdGhlIG9yaWdpbmFsU291cmNlQ29kZS4KKyAgICAgICAg
c291cmNlTWFwLm9yaWdpbmFsU291cmNlQ29kZS5hZGRTb3VyY2VNYXAoc291cmNlTWFwKTsKKwor
ICAgICAgICAvLyBJZiB0aGUgb3JpZ2luYWxTb3VyY2VDb2RlIHdhcyBub3QgYSBSZXNvdXJjZSwg
YmUgc3VyZSB0byBhbHNvIGFzc29jaWF0ZSB3aXRoIHRoZSBSZXNvdXJjZSBpZiBvbmUgZXhpc3Rz
LgorICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHRyeSB0byB1c2UgdGhlIHJpZ2h0IGZyYW1l
IGluc3RlYWQgb2YgYSBnbG9iYWwgbG9va3VwIGJ5IFVSTC4KKyAgICAgICAgaWYgKCEoc291cmNl
TWFwLm9yaWdpbmFsU291cmNlQ29kZSBpbnN0YW5jZW9mIFdJLlJlc291cmNlKSkgeworICAgICAg
ICAgICAgY29uc29sZS5hc3NlcnQoc291cmNlTWFwLm9yaWdpbmFsU291cmNlQ29kZSBpbnN0YW5j
ZW9mIFdJLlNjcmlwdCk7CisgICAgICAgICAgICBsZXQgcmVzb3VyY2UgPSBzb3VyY2VNYXAub3Jp
Z2luYWxTb3VyY2VDb2RlLnJlc291cmNlOworICAgICAgICAgICAgaWYgKHJlc291cmNlKQorICAg
ICAgICAgICAgICAgIHJlc291cmNlLmFkZFNvdXJjZU1hcChzb3VyY2VNYXApOworICAgICAgICB9
CisgICAgfQorCiAgICAgX2V4dHJhRG9tYWluc0FjdGl2YXRlZChldmVudCkKICAgICB7CiAgICAg
ICAgIGlmIChldmVudC5kYXRhLmRvbWFpbnMuaW5jbHVkZXMoIlBhZ2UiKSAmJiB3aW5kb3cuUGFn
ZUFnZW50KQogICAgICAgICAgICAgUGFnZUFnZW50LmdldFJlc291cmNlVHJlZSh0aGlzLl9wcm9j
ZXNzTWFpbkZyYW1lUmVzb3VyY2VUcmVlUGF5bG9hZC5iaW5kKHRoaXMpKTsKICAgICB9CisKKyAg
ICBfaGFuZGxlRnJhbWVNYWluUmVzb3VyY2VEaWRDaGFuZ2UoZXZlbnQpCisgICAgeworICAgICAg
ICBpZiAoIWV2ZW50LnRhcmdldC5pc01haW5GcmFtZSgpKQorICAgICAgICAgICAgcmV0dXJuOwor
CisgICAgICAgIHRoaXMuX3NvdXJjZU1hcFVSTE1hcCA9IHt9OworICAgICAgICB0aGlzLl9kb3du
bG9hZGluZ1NvdXJjZU1hcHMgPSB7fTsKKyAgICB9CiB9OwogCiBXSS5OZXR3b3JrTWFuYWdlci5F
dmVudCA9IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L0NvbnRyb2xsZXJzL1NvdXJjZU1hcE1hbmFnZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9Db250cm9sbGVycy9Tb3VyY2VNYXBNYW5hZ2VyLmpzCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBmNTk0ZmZlODJhZTAxYzFlMDEzNDU2NzdiMmYzZDc5NmMyMzUz
OWE1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL1NvdXJjZU1hcE1hbmFn
ZXIuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxODQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLVdJLlNv
dXJjZU1hcE1hbmFnZXIgPSBjbGFzcyBTb3VyY2VNYXBNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0
Ci17Ci0gICAgY29uc3RydWN0b3IoKQotICAgIHsKLSAgICAgICAgc3VwZXIoKTsKLQotICAgICAg
ICB0aGlzLl9zb3VyY2VNYXBVUkxNYXAgPSB7fTsKLSAgICAgICAgdGhpcy5fZG93bmxvYWRpbmdT
b3VyY2VNYXBzID0ge307Ci0KLSAgICAgICAgV0kuRnJhbWUuYWRkRXZlbnRMaXN0ZW5lcihXSS5G
cmFtZS5FdmVudC5NYWluUmVzb3VyY2VEaWRDaGFuZ2UsIHRoaXMuX21haW5SZXNvdXJjZURpZENo
YW5nZSwgdGhpcyk7Ci0gICAgfQotCi0gICAgLy8gUHVibGljCi0KLSAgICBzb3VyY2VNYXBGb3JV
Ukwoc291cmNlTWFwVVJMKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3NvdXJjZU1hcFVS
TE1hcFtzb3VyY2VNYXBVUkxdOwotICAgIH0KLQotICAgIGRvd25sb2FkU291cmNlTWFwKHNvdXJj
ZU1hcFVSTCwgYmFzZVVSTCwgb3JpZ2luYWxTb3VyY2VDb2RlKQotICAgIHsKLSAgICAgICAgLy8g
VGhlIGJhc2VVUkwgY291bGQgaGF2ZSBjb21lIGZyb20gYSAiLy8jIHNvdXJjZVVSTCIuIEF0dGVt
cHQgdG8gZ2V0IGEKLSAgICAgICAgLy8gcmVhc29uYWJsZSBhYnNvbHV0ZSBVUkwgZm9yIHRoZSBi
YXNlIGJ5IHVzaW5nIHRoZSBtYWluIHJlc291cmNlJ3MgVVJMLgotICAgICAgICBpZiAoV0kubmV0
d29ya01hbmFnZXIubWFpbkZyYW1lKQotICAgICAgICAgICAgYmFzZVVSTCA9IGFic29sdXRlVVJM
KGJhc2VVUkwsIFdJLm5ldHdvcmtNYW5hZ2VyLm1haW5GcmFtZS51cmwpOwotCi0gICAgICAgIGlm
IChzb3VyY2VNYXBVUkwuc3RhcnRzV2l0aCgiZGF0YToiKSkgewotICAgICAgICAgICAgdGhpcy5f
bG9hZEFuZFBhcnNlU291cmNlTWFwKHNvdXJjZU1hcFVSTCwgYmFzZVVSTCwgb3JpZ2luYWxTb3Vy
Y2VDb2RlKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIHNvdXJj
ZU1hcFVSTCA9IGFic29sdXRlVVJMKHNvdXJjZU1hcFVSTCwgYmFzZVVSTCk7Ci0gICAgICAgIGlm
ICghc291cmNlTWFwVVJMKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGNvbnNvbGUu
YXNzZXJ0KG9yaWdpbmFsU291cmNlQ29kZS51cmwpOwotICAgICAgICBpZiAoIW9yaWdpbmFsU291
cmNlQ29kZS51cmwpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgLy8gRklYTUU6IDxy
ZGFyOi8vcHJvYmxlbS8xMzI2NTY5ND4gU291cmNlIE1hcHM6IEJldHRlciBoYW5kbGUgd2hlbiBt
dWx0aXBsZSByZXNvdXJjZXMgcmVmZXJlbmNlIHRoZSBzYW1lIFNvdXJjZU1hcAotCi0gICAgICAg
IGlmIChzb3VyY2VNYXBVUkwgaW4gdGhpcy5fc291cmNlTWFwVVJMTWFwKQotICAgICAgICAgICAg
cmV0dXJuOwotCi0gICAgICAgIGlmIChzb3VyY2VNYXBVUkwgaW4gdGhpcy5fZG93bmxvYWRpbmdT
b3VyY2VNYXBzKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGZ1bmN0aW9uIGxvYWRB
bmRQYXJzZVNvdXJjZU1hcCgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHRoaXMuX2xvYWRBbmRQ
YXJzZVNvdXJjZU1hcChzb3VyY2VNYXBVUkwsIGJhc2VVUkwsIG9yaWdpbmFsU291cmNlQ29kZSk7
Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoIVdJLm5ldHdvcmtNYW5hZ2VyLm1haW5GcmFtZSkg
ewotICAgICAgICAgICAgLy8gSWYgd2UgZG9uJ3QgaGF2ZSBhIG1haW4gZnJhbWUsIHRoZW4gd2Ug
YXJlIGxpa2VseSBpbiB0aGUgbWlkZGxlIG9mIGJ1aWxkaW5nIHRoZSByZXNvdXJjZSB0cmVlLgot
ICAgICAgICAgICAgLy8gRGVsYXlpbmcgdW50aWwgdGhlIG5leHQgcnVubG9vcCBpcyBlbm91Z2gg
aW4gdGhpcyBjYXNlIHRvIHRoZW4gc3RhcnQgbG9hZGluZyB0aGUgc291cmNlIG1hcC4KLSAgICAg
ICAgICAgIHNldFRpbWVvdXQobG9hZEFuZFBhcnNlU291cmNlTWFwLmJpbmQodGhpcyksIDApOwot
ICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgbG9hZEFuZFBhcnNlU291
cmNlTWFwLmNhbGwodGhpcyk7Ci0gICAgfQotCi0gICAgLy8gUHJpdmF0ZQotCi0gICAgX2xvYWRB
bmRQYXJzZVNvdXJjZU1hcChzb3VyY2VNYXBVUkwsIGJhc2VVUkwsIG9yaWdpbmFsU291cmNlQ29k
ZSkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2Rvd25sb2FkaW5nU291cmNlTWFwc1tzb3VyY2VNYXBV
UkxdID0gdHJ1ZTsKLQotICAgICAgICBmdW5jdGlvbiBzb3VyY2VNYXBMb2FkZWQoZXJyb3IsIGNv
bnRlbnQsIG1pbWVUeXBlLCBzdGF0dXNDb2RlKQotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAo
ZXJyb3IgfHwgc3RhdHVzQ29kZSA+PSA0MDApIHsKLSAgICAgICAgICAgICAgICB0aGlzLl9sb2Fk
QW5kUGFyc2VGYWlsZWQoc291cmNlTWFwVVJMKTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0g
ICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmIChjb250ZW50LnNsaWNlKDAsIDMpID09PSAi
KV19IikgewotICAgICAgICAgICAgICAgIHZhciBmaXJzdE5ld2xpbmVJbmRleCA9IGNvbnRlbnQu
aW5kZXhPZigiXG4iKTsKLSAgICAgICAgICAgICAgICBpZiAoZmlyc3ROZXdsaW5lSW5kZXggPT09
IC0xKSB7Ci0gICAgICAgICAgICAgICAgICAgIHRoaXMuX2xvYWRBbmRQYXJzZUZhaWxlZChzb3Vy
Y2VNYXBVUkwpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAg
fQotCi0gICAgICAgICAgICAgICAgY29udGVudCA9IGNvbnRlbnQuc3Vic3RyaW5nKGZpcnN0TmV3
bGluZUluZGV4KTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAg
ICAgICAgICB2YXIgcGF5bG9hZCA9IEpTT04ucGFyc2UoY29udGVudCk7Ci0gICAgICAgICAgICAg
ICAgdmFyIGJhc2VVUkwgPSBzb3VyY2VNYXBVUkwuc3RhcnRzV2l0aCgiZGF0YToiKSA/IG9yaWdp
bmFsU291cmNlQ29kZS51cmwgOiBzb3VyY2VNYXBVUkw7Ci0gICAgICAgICAgICAgICAgdmFyIHNv
dXJjZU1hcCA9IG5ldyBXSS5Tb3VyY2VNYXAoYmFzZVVSTCwgcGF5bG9hZCwgb3JpZ2luYWxTb3Vy
Y2VDb2RlKTsKLSAgICAgICAgICAgICAgICB0aGlzLl9sb2FkQW5kUGFyc2VTdWNjZWVkZWQoc291
cmNlTWFwVVJMLCBzb3VyY2VNYXApOwotICAgICAgICAgICAgfSBjYXRjaCB7Ci0gICAgICAgICAg
ICAgICAgdGhpcy5fbG9hZEFuZFBhcnNlRmFpbGVkKHNvdXJjZU1hcFVSTCk7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoc291cmNlTWFwVVJMLnN0YXJ0c1dpdGgoImRh
dGE6IikpIHsKLSAgICAgICAgICAgIGxldCB7bWltZVR5cGUsIGJhc2U2NCwgZGF0YX0gPSBwYXJz
ZURhdGFVUkwoc291cmNlTWFwVVJMKTsKLSAgICAgICAgICAgIGxldCBjb250ZW50ID0gYmFzZTY0
ID8gYXRvYihkYXRhKSA6IGRhdGE7Ci0gICAgICAgICAgICBzb3VyY2VNYXBMb2FkZWQuY2FsbCh0
aGlzLCBudWxsLCBjb250ZW50LCBtaW1lVHlwZSwgMCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0g
ICAgICAgIH0KLQotICAgICAgICBpZiAoIXdpbmRvdy5OZXR3b3JrQWdlbnQpIHsKLSAgICAgICAg
ICAgIHRoaXMuX2xvYWRBbmRQYXJzZUZhaWxlZChzb3VyY2VNYXBVUkwpOwotICAgICAgICAgICAg
cmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgdmFyIGZyYW1lSWRlbnRpZmllciA9IG51bGw7
Ci0gICAgICAgIGlmIChvcmlnaW5hbFNvdXJjZUNvZGUgaW5zdGFuY2VvZiBXSS5SZXNvdXJjZSAm
JiBvcmlnaW5hbFNvdXJjZUNvZGUucGFyZW50RnJhbWUpCi0gICAgICAgICAgICBmcmFtZUlkZW50
aWZpZXIgPSBvcmlnaW5hbFNvdXJjZUNvZGUucGFyZW50RnJhbWUuaWQ7Ci0KLSAgICAgICAgaWYg
KCFmcmFtZUlkZW50aWZpZXIpCi0gICAgICAgICAgICBmcmFtZUlkZW50aWZpZXIgPSBXSS5uZXR3
b3JrTWFuYWdlci5tYWluRnJhbWUgPyBXSS5uZXR3b3JrTWFuYWdlci5tYWluRnJhbWUuaWQgOiAi
IjsKLQotICAgICAgICBOZXR3b3JrQWdlbnQubG9hZFJlc291cmNlKGZyYW1lSWRlbnRpZmllciwg
c291cmNlTWFwVVJMLCBzb3VyY2VNYXBMb2FkZWQuYmluZCh0aGlzKSk7Ci0gICAgfQotCi0gICAg
X2xvYWRBbmRQYXJzZUZhaWxlZChzb3VyY2VNYXBVUkwpCi0gICAgewotICAgICAgICBkZWxldGUg
dGhpcy5fZG93bmxvYWRpbmdTb3VyY2VNYXBzW3NvdXJjZU1hcFVSTF07Ci0gICAgfQotCi0gICAg
X2xvYWRBbmRQYXJzZVN1Y2NlZWRlZChzb3VyY2VNYXBVUkwsIHNvdXJjZU1hcCkKLSAgICB7Ci0g
ICAgICAgIGlmICghKHNvdXJjZU1hcFVSTCBpbiB0aGlzLl9kb3dubG9hZGluZ1NvdXJjZU1hcHMp
KQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGRlbGV0ZSB0aGlzLl9kb3dubG9hZGlu
Z1NvdXJjZU1hcHNbc291cmNlTWFwVVJMXTsKLQotICAgICAgICB0aGlzLl9zb3VyY2VNYXBVUkxN
YXBbc291cmNlTWFwVVJMXSA9IHNvdXJjZU1hcDsKLQotICAgICAgICB2YXIgc291cmNlcyA9IHNv
dXJjZU1hcC5zb3VyY2VzKCk7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc291cmNlcy5s
ZW5ndGg7ICsraSkgewotICAgICAgICAgICAgdmFyIHNvdXJjZU1hcFJlc291cmNlID0gbmV3IFdJ
LlNvdXJjZU1hcFJlc291cmNlKHNvdXJjZXNbaV0sIHNvdXJjZU1hcCk7Ci0gICAgICAgICAgICBz
b3VyY2VNYXAuYWRkUmVzb3VyY2Uoc291cmNlTWFwUmVzb3VyY2UpOwotICAgICAgICB9Ci0KLSAg
ICAgICAgLy8gQXNzb2NpYXRlIHRoZSBTb3VyY2VNYXAgd2l0aCB0aGUgb3JpZ2luYWxTb3VyY2VD
b2RlLgotICAgICAgICBzb3VyY2VNYXAub3JpZ2luYWxTb3VyY2VDb2RlLmFkZFNvdXJjZU1hcChz
b3VyY2VNYXApOwotCi0gICAgICAgIC8vIElmIHRoZSBvcmlnaW5hbFNvdXJjZUNvZGUgd2FzIG5v
dCBhIFJlc291cmNlLCBiZSBzdXJlIHRvIGFsc28gYXNzb2NpYXRlIHdpdGggdGhlIFJlc291cmNl
IGlmIG9uZSBleGlzdHMuCi0gICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgdHJ5IHRvIHVzZSB0
aGUgcmlnaHQgZnJhbWUgaW5zdGVhZCBvZiBhIGdsb2JhbCBsb29rdXAgYnkgVVJMLgotICAgICAg
ICBpZiAoIShzb3VyY2VNYXAub3JpZ2luYWxTb3VyY2VDb2RlIGluc3RhbmNlb2YgV0kuUmVzb3Vy
Y2UpKSB7Ci0gICAgICAgICAgICBjb25zb2xlLmFzc2VydChzb3VyY2VNYXAub3JpZ2luYWxTb3Vy
Y2VDb2RlIGluc3RhbmNlb2YgV0kuU2NyaXB0KTsKLSAgICAgICAgICAgIHZhciByZXNvdXJjZSA9
IHNvdXJjZU1hcC5vcmlnaW5hbFNvdXJjZUNvZGUucmVzb3VyY2U7Ci0gICAgICAgICAgICBpZiAo
cmVzb3VyY2UpCi0gICAgICAgICAgICAgICAgcmVzb3VyY2UuYWRkU291cmNlTWFwKHNvdXJjZU1h
cCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBfbWFpblJlc291cmNlRGlkQ2hhbmdlKGV2ZW50
KQotICAgIHsKLSAgICAgICAgaWYgKCFldmVudC50YXJnZXQuaXNNYWluRnJhbWUoKSkKLSAgICAg
ICAgICAgIHJldHVybjsKLQotICAgICAgICB0aGlzLl9zb3VyY2VNYXBVUkxNYXAgPSB7fTsKLSAg
ICAgICAgdGhpcy5fZG93bmxvYWRpbmdTb3VyY2VNYXBzID0ge307Ci0gICAgfQotfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01haW4uaHRtbCBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01haW4uaHRtbAppbmRleCBhMTIyYzY4
ODRmNWY3N2NiNDMwNmQ4OWFiMDAzNWEzYWQwYzMyNjJjLi42MDlhZDcxZTdlNTc3NmVhNTMwYzIy
ZmNhNDA5ODBmMWZjMTU1MDI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9NYWluLmh0bWwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvTWFpbi5odG1sCkBAIC04MTAsNyArODEwLDYgQEAKICAgICA8c2NyaXB0IHNyYz0iQ29u
dHJvbGxlcnMvUHJvYmVNYW5hZ2VyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQ29u
dHJvbGxlcnMvUmVzb3VyY2VRdWVyeUNvbnRyb2xsZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3Jp
cHQgc3JjPSJDb250cm9sbGVycy9SdW50aW1lTWFuYWdlci5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNj
cmlwdCBzcmM9IkNvbnRyb2xsZXJzL1NvdXJjZU1hcE1hbmFnZXIuanMiPjwvc2NyaXB0PgogICAg
IDxzY3JpcHQgc3JjPSJDb250cm9sbGVycy9UYXJnZXRNYW5hZ2VyLmpzIj48L3NjcmlwdD4KICAg
ICA8c2NyaXB0IHNyYz0iQ29udHJvbGxlcnMvVGltZWxpbmVNYW5hZ2VyLmpzIj48L3NjcmlwdD4K
ICAgICA8c2NyaXB0IHNyYz0iQ29udHJvbGxlcnMvVHlwZVRva2VuQW5ub3RhdG9yLmpzIj48L3Nj
cmlwdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01v
ZGVscy9TY3JpcHQuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2Rl
bHMvU2NyaXB0LmpzCmluZGV4IDMxODk3ZWQzZWViMmM5ZTI5OTMyM2U3OTc4ZGYxMDIwOTA4ZjJj
ZWUuLmZiNDI3Njk4YmEzY2QyNzg1YTkyNGM4MDdmODcyYzQ4OWY0ODFhYzUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9TY3JpcHQuanMKKysr
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1NjcmlwdC5qcwpA
QCAtNjUsNyArNjUsNyBAQCBXSS5TY3JpcHQgPSBjbGFzcyBTY3JpcHQgZXh0ZW5kcyBXSS5Tb3Vy
Y2VDb2RlCiAgICAgICAgIH0KIAogICAgICAgICBpZiAodGhpcy5fc291cmNlTWFwcGluZ1VSTCkK
LSAgICAgICAgICAgIFdJLnNvdXJjZU1hcE1hbmFnZXIuZG93bmxvYWRTb3VyY2VNYXAodGhpcy5f
c291cmNlTWFwcGluZ1VSTCwgdGhpcy5fdXJsLCB0aGlzKTsKKyAgICAgICAgICAgIFdJLm5ldHdv
cmtNYW5hZ2VyLmRvd25sb2FkU291cmNlTWFwKHRoaXMuX3NvdXJjZU1hcHBpbmdVUkwsIHRoaXMu
X3VybCwgdGhpcyk7CiAgICAgfQogCiAgICAgLy8gU3RhdGljCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXN0Lmh0bWwgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9UZXN0Lmh0bWwKaW5kZXggYzU3MWM3YTExYWVkOGU2YjAyOWYy
MWE4YjAzMWM3NjM3YjAyOGIwNy4uNDJmZGQ1ODEwZjVhYWIxZjcxZGFiZmY3NGFiZmM5M2ZmNDhh
MTQ0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVz
dC5odG1sCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QuaHRt
bApAQCAtMjI0LDcgKzIyNCw2IEBACiAgICAgPHNjcmlwdCBzcmM9IkNvbnRyb2xsZXJzL05ldHdv
cmtNYW5hZ2VyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQ29udHJvbGxlcnMvUHJv
YmVNYW5hZ2VyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQ29udHJvbGxlcnMvUnVu
dGltZU1hbmFnZXIuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJDb250cm9sbGVycy9T
b3VyY2VNYXBNYW5hZ2VyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQ29udHJvbGxl
cnMvVGFyZ2V0TWFuYWdlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkNvbnRyb2xs
ZXJzL1RpbWVsaW5lTWFuYWdlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkNvbnRy
b2xsZXJzL1dvcmtlck1hbmFnZXIuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC9UZXN0LmpzIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC9UZXN0LmpzCmluZGV4IDllNzY2NzFhMTQwNWNmZmJk
YjBiOWZmODlmY2U4YTU1YzlkNTIyMWYuLmIwNGM3N2U0NTM5ZDJkZWU4NDdhMzIzZDMyMjMyZTZj
YjJiOWY5NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1Rlc3QvVGVzdC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9U
ZXN0L1Rlc3QuanMKQEAgLTU5LDcgKzU5LDYgQEAgV0kubG9hZGVkID0gZnVuY3Rpb24oKQogICAg
IHRoaXMubWVtb3J5TWFuYWdlciA9IG5ldyBXSS5NZW1vcnlNYW5hZ2VyOwogICAgIHRoaXMudGlt
ZWxpbmVNYW5hZ2VyID0gbmV3IFdJLlRpbWVsaW5lTWFuYWdlcjsKICAgICB0aGlzLmRlYnVnZ2Vy
TWFuYWdlciA9IG5ldyBXSS5EZWJ1Z2dlck1hbmFnZXI7Ci0gICAgdGhpcy5zb3VyY2VNYXBNYW5h
Z2VyID0gbmV3IFdJLlNvdXJjZU1hcE1hbmFnZXI7CiAgICAgdGhpcy5sYXllclRyZWVNYW5hZ2Vy
ID0gbmV3IFdJLkxheWVyVHJlZU1hbmFnZXI7CiAgICAgdGhpcy5wcm9iZU1hbmFnZXIgPSBuZXcg
V0kuUHJvYmVNYW5hZ2VyOwogICAgIHRoaXMud29ya2VyTWFuYWdlciA9IG5ldyBXSS5Xb3JrZXJN
YW5hZ2VyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1dlYkluc3BlY3RvclVJ
LnZjeHByb2ovV2ViSW5zcGVjdG9yVUkudmN4cHJvaiBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9X
ZWJJbnNwZWN0b3JVSS52Y3hwcm9qL1dlYkluc3BlY3RvclVJLnZjeHByb2oKaW5kZXggMzkzMGIz
MTlhM2MyZDE4YjkxYjM0MTQxNjQ2YTJmMjc0MGYzMTExNS4uODkzYjM1NDhlYTE1NTZiNzMzZjU2
MGVjZmU0YmQwMThjZTE2YjNjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1dl
Ykluc3BlY3RvclVJLnZjeHByb2ovV2ViSW5zcGVjdG9yVUkudmN4cHJvagorKysgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvV2ViSW5zcGVjdG9yVUkudmN4cHJvai9XZWJJbnNwZWN0b3JVSS52Y3hw
cm9qCkBAIC03NzUsNyArNzc1LDYgQEAKICAgICA8Tm9uZSBJbmNsdWRlPSIuLlxVc2VySW50ZXJm
YWNlXFNvdXJjZUNvZGVUZXh0UmFuZ2UuanMiIC8+CiAgICAgPE5vbmUgSW5jbHVkZT0iLi5cVXNl
ckludGVyZmFjZVxTb3VyY2VDb2RlVHJlZUVsZW1lbnQuanMiIC8+CiAgICAgPE5vbmUgSW5jbHVk
ZT0iLi5cVXNlckludGVyZmFjZVxTb3VyY2VNYXAuanMiIC8+Ci0gICAgPE5vbmUgSW5jbHVkZT0i
Li5cVXNlckludGVyZmFjZVxTb3VyY2VNYXBNYW5hZ2VyLmpzIiAvPgogICAgIDxOb25lIEluY2x1
ZGU9Ii4uXFVzZXJJbnRlcmZhY2VcU291cmNlTWFwUmVzb3VyY2UuanMiIC8+CiAgICAgPE5vbmUg
SW5jbHVkZT0iLi5cVXNlckludGVyZmFjZVxTb3VyY2VNYXBSZXNvdXJjZVRyZWVFbGVtZW50Lmpz
IiAvPgogICAgIDxOb25lIEluY2x1ZGU9Ii4uXFVzZXJJbnRlcmZhY2VcU3RvcmFnZVRyZWVFbGVt
ZW50LmpzIiAvPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1dlYkluc3BlY3Rv
clVJLnZjeHByb2ovV2ViSW5zcGVjdG9yVUkudmN4cHJvai5maWx0ZXJzIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1dlYkluc3BlY3RvclVJLnZjeHByb2ovV2ViSW5zcGVjdG9yVUkudmN4cHJvai5m
aWx0ZXJzCmluZGV4IDZiNGQxMDg4OTFlNDRmZjA0ODJiMzkzNWJmN2JlYTUyYThlNmViYjQuLjBl
NTE1MmZkMjgwZjVjYjhhZDEyOTFkOTI3OTYwNjI4N2NjNzM4YTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9XZWJJbnNwZWN0b3JVSS52Y3hwcm9qL1dlYkluc3BlY3RvclVJLnZj
eHByb2ouZmlsdGVycworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvV2ViSW5zcGVjdG9yVUku
dmN4cHJvai9XZWJJbnNwZWN0b3JVSS52Y3hwcm9qLmZpbHRlcnMKQEAgLTkyMSw5ICs5MjEsNiBA
QAogICAgIDxOb25lIEluY2x1ZGU9Ii4uXFVzZXJJbnRlcmZhY2VcU291cmNlTWFwLmpzIj4KICAg
ICAgIDxGaWx0ZXI+VXNlckludGVyZmFjZTwvRmlsdGVyPgogICAgIDwvTm9uZT4KLSAgICA8Tm9u
ZSBJbmNsdWRlPSIuLlxVc2VySW50ZXJmYWNlXFNvdXJjZU1hcE1hbmFnZXIuanMiPgotICAgICAg
PEZpbHRlcj5Vc2VySW50ZXJmYWNlPC9GaWx0ZXI+Ci0gICAgPC9Ob25lPgogICAgIDxOb25lIElu
Y2x1ZGU9Ii4uXFVzZXJJbnRlcmZhY2VcU291cmNlTWFwUmVzb3VyY2UuanMiPgogICAgICAgPEZp
bHRlcj5Vc2VySW50ZXJmYWNlPC9GaWx0ZXI+CiAgICAgPC9Ob25lPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>351461</attachid>
            <date>2018-10-02 17:40:54 -0700</date>
            <delta_ts>2018-10-02 18:49:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190224-20181002174053.patch</filename>
            <type>text/plain</type>
            <size>22561</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDBlNDYwNjc4YjUzYmExNmY5OWE0MmY2MTFhYTI0
NmVhNDA4ZjUwOGYuLjk2OGNjOWM4Y2JlNjE3MjVlNDE4NzJmYjQzNGU2N2YzMTI1YzY2ZDQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDE4LTEwLTAyICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBt
ZXJnZSBTb3VyY2VNYXBNYW5hZ2VyIGludG8gTmV0d29ya01hbmFnZXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MDIyNAorCisgICAgICAgIFJldmll
d2VkIGJ5IEpvc2VwaCBQZWNvcmFyby4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTWFpbi5o
dG1sOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzOgorICAgICAgICAoV0ku
bG9hZGVkKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1Rlc3QuaHRtbDoKKyAgICAgICAgKiBV
c2VySW50ZXJmYWNlL1Rlc3QvVGVzdC5qczoKKyAgICAgICAgKFdJLmxvYWRlZCk6CisKKyAgICAg
ICAgKiBVc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL05ldHdvcmtNYW5hZ2VyLmpzOgorICAgICAg
ICAoV0kuTmV0d29ya01hbmFnZXIpOgorICAgICAgICAoV0kuTmV0d29ya01hbmFnZXIucHJvdG90
eXBlLmRvd25sb2FkU291cmNlTWFwKTogQWRkZWQuCisgICAgICAgIChXSS5OZXR3b3JrTWFuYWdl
ci5wcm90b3R5cGUucmVzb3VyY2VSZXF1ZXN0V2FzU2VydmVkRnJvbU1lbW9yeUNhY2hlKToKKyAg
ICAgICAgKFdJLk5ldHdvcmtNYW5hZ2VyLnByb3RvdHlwZS5yZXNvdXJjZVJlcXVlc3REaWRGaW5p
c2hMb2FkaW5nKToKKyAgICAgICAgKFdJLk5ldHdvcmtNYW5hZ2VyLnByb3RvdHlwZS5fY3JlYXRl
UmVzb3VyY2UpOgorICAgICAgICAoV0kuTmV0d29ya01hbmFnZXIucHJvdG90eXBlLl9sb2FkQW5k
UGFyc2VTb3VyY2VNYXApOiBBZGRlZC4KKyAgICAgICAgKFdJLk5ldHdvcmtNYW5hZ2VyLnByb3Rv
dHlwZS5fc291cmNlTWFwTG9hZEFuZFBhcnNlRmFpbGVkKTogQWRkZWQuCisgICAgICAgIChXSS5O
ZXR3b3JrTWFuYWdlci5wcm90b3R5cGUuX3NvdXJjZU1hcExvYWRBbmRQYXJzZVN1Y2NlZWRlZCk6
IEFkZGVkLgorICAgICAgICAoV0kuTmV0d29ya01hbmFnZXIucHJvdG90eXBlLl9oYW5kbGVGcmFt
ZU1haW5SZXNvdXJjZURpZENoYW5nZSk6IEFkZGVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2Uv
Q29udHJvbGxlcnMvU291cmNlTWFwTWFuYWdlci5qczogUmVtb3ZlZC4KKworICAgICAgICAqIFVz
ZXJJbnRlcmZhY2UvTW9kZWxzL1NjcmlwdC5qczoKKyAgICAgICAgKFdJLlNjcmlwdCk6CisKKyAg
ICAgICAgKiBXZWJJbnNwZWN0b3JVSS52Y3hwcm9qL1dlYkluc3BlY3RvclVJLnZjeHByb2o6Cisg
ICAgICAgICogV2ViSW5zcGVjdG9yVUkudmN4cHJvai9XZWJJbnNwZWN0b3JVSS52Y3hwcm9qLmZp
bHRlcnM6CisKIDIwMTgtMTAtMDIgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgog
CiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IHJlbmFtZSBmcm9udGVuZCBtYW5hZ2VycyB0byBiZSBt
b3JlIGNvbnNpc3RlbnQgd2l0aCBiYWNrZW5kIGFnZW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzCmluZGV4IDNmZjM0ZDY4OTBhZTdhNWMz
NmQyZjViOTBlYjVkZDQzZTIxMTExNTEuLmM4ZjBjZWI5NWU0N2VhNTFiNTViMDYzMWFjMGIwODQw
MzIzNmNjNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L0Jhc2UvTWFpbi5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9C
YXNlL01haW4uanMKQEAgLTEyMyw3ICsxMjMsNiBAQCBXSS5sb2FkZWQgPSBmdW5jdGlvbigpCiAg
ICAgdGhpcy5hcHBsaWNhdGlvbkNhY2hlTWFuYWdlciA9IG5ldyBXSS5BcHBsaWNhdGlvbkNhY2hl
TWFuYWdlcjsKICAgICB0aGlzLnRpbWVsaW5lTWFuYWdlciA9IG5ldyBXSS5UaW1lbGluZU1hbmFn
ZXI7CiAgICAgdGhpcy5kZWJ1Z2dlck1hbmFnZXIgPSBuZXcgV0kuRGVidWdnZXJNYW5hZ2VyOwot
ICAgIHRoaXMuc291cmNlTWFwTWFuYWdlciA9IG5ldyBXSS5Tb3VyY2VNYXBNYW5hZ2VyOwogICAg
IHRoaXMubGF5ZXJUcmVlTWFuYWdlciA9IG5ldyBXSS5MYXllclRyZWVNYW5hZ2VyOwogICAgIHRo
aXMucHJvYmVNYW5hZ2VyID0gbmV3IFdJLlByb2JlTWFuYWdlcjsKICAgICB0aGlzLndvcmtlck1h
bmFnZXIgPSBuZXcgV0kuV29ya2VyTWFuYWdlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL05ldHdvcmtNYW5hZ2VyLmpzIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvTmV0d29ya01hbmFn
ZXIuanMKaW5kZXggMDU0MWJmYjU1M2NmZDZiYzZiNjg0ZTk3NDRkOWEwN2RhZThmODdlMS4uNjc0
ZjVkMjM2NmMzZDQ3Njk3NmFmZWY4MTgwMmQ0MTE5NDZhOGMxOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvTmV0d29ya01hbmFnZXIu
anMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMv
TmV0d29ya01hbmFnZXIuanMKQEAgLTM3LDYgKzM3LDkgQEAgV0kuTmV0d29ya01hbmFnZXIgPSBj
bGFzcyBOZXR3b3JrTWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogCiAgICAgICAgIHRoaXMuX3dh
aXRpbmdGb3JNYWluRnJhbWVSZXNvdXJjZVRyZWVQYXlsb2FkID0gdHJ1ZTsKIAorICAgICAgICB0
aGlzLl9zb3VyY2VNYXBVUkxNYXAgPSBuZXcgTWFwOworICAgICAgICB0aGlzLl9kb3dubG9hZGlu
Z1NvdXJjZU1hcHMgPSBuZXcgU2V0OworCiAgICAgICAgIGlmICh3aW5kb3cuUGFnZUFnZW50KSB7
CiAgICAgICAgICAgICBQYWdlQWdlbnQuZW5hYmxlKCk7CiAgICAgICAgICAgICBQYWdlQWdlbnQu
Z2V0UmVzb3VyY2VUcmVlKHRoaXMuX3Byb2Nlc3NNYWluRnJhbWVSZXNvdXJjZVRyZWVQYXlsb2Fk
LmJpbmQodGhpcykpOwpAQCAtNDksNiArNTIsNyBAQCBXSS5OZXR3b3JrTWFuYWdlciA9IGNsYXNz
IE5ldHdvcmtNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgICAgICBOZXR3b3JrQWdl
bnQuZW5hYmxlKCk7CiAKICAgICAgICAgV0kubm90aWZpY2F0aW9ucy5hZGRFdmVudExpc3RlbmVy
KFdJLk5vdGlmaWNhdGlvbi5FeHRyYURvbWFpbnNBY3RpdmF0ZWQsIHRoaXMuX2V4dHJhRG9tYWlu
c0FjdGl2YXRlZCwgdGhpcyk7CisgICAgICAgIFdJLkZyYW1lLmFkZEV2ZW50TGlzdGVuZXIoV0ku
RnJhbWUuRXZlbnQuTWFpblJlc291cmNlRGlkQ2hhbmdlLCB0aGlzLl9oYW5kbGVGcmFtZU1haW5S
ZXNvdXJjZURpZENoYW5nZSwgdGhpcyk7CiAgICAgfQogCiAgICAgLy8gUHVibGljCkBAIC03Myw2
ICs3Nyw0NSBAQCBXSS5OZXR3b3JrTWFuYWdlciA9IGNsYXNzIE5ldHdvcmtNYW5hZ2VyIGV4dGVu
ZHMgV0kuT2JqZWN0CiAgICAgICAgIHJldHVybiB0aGlzLl9yZXNvdXJjZVJlcXVlc3RJZGVudGlm
aWVyTWFwLmdldChyZXF1ZXN0SWRlbnRpZmllcikgfHwgbnVsbDsKICAgICB9CiAKKyAgICBkb3du
bG9hZFNvdXJjZU1hcChzb3VyY2VNYXBVUkwsIGJhc2VVUkwsIG9yaWdpbmFsU291cmNlQ29kZSkK
KyAgICB7CisgICAgICAgIC8vIFRoZSBiYXNlVVJMIGNvdWxkIGhhdmUgY29tZSBmcm9tIGEgIi8v
IyBzb3VyY2VVUkwiLiBBdHRlbXB0IHRvIGdldCBhCisgICAgICAgIC8vIHJlYXNvbmFibGUgYWJz
b2x1dGUgVVJMIGZvciB0aGUgYmFzZSBieSB1c2luZyB0aGUgbWFpbiByZXNvdXJjZSdzIFVSTC4K
KyAgICAgICAgaWYgKFdJLm5ldHdvcmtNYW5hZ2VyLm1haW5GcmFtZSkKKyAgICAgICAgICAgIGJh
c2VVUkwgPSBhYnNvbHV0ZVVSTChiYXNlVVJMLCBXSS5uZXR3b3JrTWFuYWdlci5tYWluRnJhbWUu
dXJsKTsKKworICAgICAgICBpZiAoc291cmNlTWFwVVJMLnN0YXJ0c1dpdGgoImRhdGE6IikpIHsK
KyAgICAgICAgICAgIHRoaXMuX2xvYWRBbmRQYXJzZVNvdXJjZU1hcChzb3VyY2VNYXBVUkwsIGJh
c2VVUkwsIG9yaWdpbmFsU291cmNlQ29kZSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IH0KKworICAgICAgICBzb3VyY2VNYXBVUkwgPSBhYnNvbHV0ZVVSTChzb3VyY2VNYXBVUkwsIGJh
c2VVUkwpOworICAgICAgICBpZiAoIXNvdXJjZU1hcFVSTCkKKyAgICAgICAgICAgIHJldHVybjsK
KworICAgICAgICBjb25zb2xlLmFzc2VydChvcmlnaW5hbFNvdXJjZUNvZGUudXJsKTsKKyAgICAg
ICAgaWYgKCFvcmlnaW5hbFNvdXJjZUNvZGUudXJsKQorICAgICAgICAgICAgcmV0dXJuOworCisg
ICAgICAgIC8vIEZJWE1FOiA8cmRhcjovL3Byb2JsZW0vMTMyNjU2OTQ+IFNvdXJjZSBNYXBzOiBC
ZXR0ZXIgaGFuZGxlIHdoZW4gbXVsdGlwbGUgcmVzb3VyY2VzIHJlZmVyZW5jZSB0aGUgc2FtZSBT
b3VyY2VNYXAKKworICAgICAgICBpZiAodGhpcy5fc291cmNlTWFwVVJMTWFwLmhhcyhzb3VyY2VN
YXBVUkwpIHx8IHRoaXMuX2Rvd25sb2FkaW5nU291cmNlTWFwcy5oYXMoc291cmNlTWFwVVJMKSkK
KyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBsZXQgbG9hZEFuZFBhcnNlU291cmNlTWFw
ID0gKCkgPT4geworICAgICAgICAgICAgdGhpcy5fbG9hZEFuZFBhcnNlU291cmNlTWFwKHNvdXJj
ZU1hcFVSTCwgYmFzZVVSTCwgb3JpZ2luYWxTb3VyY2VDb2RlKTsKKyAgICAgICAgfTsKKworICAg
ICAgICBpZiAoIVdJLm5ldHdvcmtNYW5hZ2VyLm1haW5GcmFtZSkgeworICAgICAgICAgICAgLy8g
SWYgd2UgZG9uJ3QgaGF2ZSBhIG1haW4gZnJhbWUsIHRoZW4gd2UgYXJlIGxpa2VseSBpbiB0aGUg
bWlkZGxlIG9mIGJ1aWxkaW5nIHRoZSByZXNvdXJjZSB0cmVlLgorICAgICAgICAgICAgLy8gRGVs
YXlpbmcgdW50aWwgdGhlIG5leHQgcnVubG9vcCBpcyBlbm91Z2ggaW4gdGhpcyBjYXNlIHRvIHRo
ZW4gc3RhcnQgbG9hZGluZyB0aGUgc291cmNlIG1hcC4KKyAgICAgICAgICAgIHNldFRpbWVvdXQo
bG9hZEFuZFBhcnNlU291cmNlTWFwLCAwKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorCisgICAgICAgIGxvYWRBbmRQYXJzZVNvdXJjZU1hcCgpOworICAgIH0KKwogICAgIGZyYW1l
RGlkTmF2aWdhdGUoZnJhbWVQYXlsb2FkKQogICAgIHsKICAgICAgICAgLy8gQ2FsbGVkIGZyb20g
V0kuUGFnZU9ic2VydmVyLgpAQCAtMzQwLDcgKzM4Myw3IEBAIFdJLk5ldHdvcmtNYW5hZ2VyID0g
Y2xhc3MgTmV0d29ya01hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgY29uc29sZS5h
c3NlcnQocmVzb3VyY2UuY2FjaGVkLCAiVGhpcyByZXNvdXJjZSBzaG91bGQgYmUgY2xhc3NpZmll
ZCBhcyBjYWNoZWQgc2luY2UgaXQgd2FzIHNlcnZlZCBmcm9tIHRoZSBNZW1vcnlDYWNoZSIsIHJl
c291cmNlKTsKIAogICAgICAgICBpZiAoY2FjaGVkUmVzb3VyY2VQYXlsb2FkLnNvdXJjZU1hcFVS
TCkKLSAgICAgICAgICAgIFdJLnNvdXJjZU1hcE1hbmFnZXIuZG93bmxvYWRTb3VyY2VNYXAoY2Fj
aGVkUmVzb3VyY2VQYXlsb2FkLnNvdXJjZU1hcFVSTCwgcmVzb3VyY2UudXJsLCByZXNvdXJjZSk7
CisgICAgICAgICAgICB0aGlzLmRvd25sb2FkU291cmNlTWFwKGNhY2hlZFJlc291cmNlUGF5bG9h
ZC5zb3VyY2VNYXBVUkwsIHJlc291cmNlLnVybCwgcmVzb3VyY2UpOwogCiAgICAgICAgIC8vIE5v
IG5lZWQgdG8gYXNzb2NpYXRlIHRoZSByZXNvdXJjZSB3aXRoIHRoZSByZXF1ZXN0SWRlbnRpZmll
ciwgc2luY2UgdGhpcyBpcyB0aGUgb25seSBldmVudAogICAgICAgICAvLyBzZW50IGZvciBtZW1v
cnkgY2FjaGUgcmVzb3VyY2UgbG9hZHMuCkBAIC00MzUsNyArNDc4LDcgQEAgV0kuTmV0d29ya01h
bmFnZXIgPSBjbGFzcyBOZXR3b3JrTWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICBy
ZXNvdXJjZS5tYXJrQXNGaW5pc2hlZChlbGFwc2VkVGltZSk7CiAKICAgICAgICAgaWYgKHNvdXJj
ZU1hcFVSTCkKLSAgICAgICAgICAgIFdJLnNvdXJjZU1hcE1hbmFnZXIuZG93bmxvYWRTb3VyY2VN
YXAoc291cmNlTWFwVVJMLCByZXNvdXJjZS51cmwsIHJlc291cmNlKTsKKyAgICAgICAgICAgIHRo
aXMuZG93bmxvYWRTb3VyY2VNYXAoc291cmNlTWFwVVJMLCByZXNvdXJjZS51cmwsIHJlc291cmNl
KTsKIAogICAgICAgICB0aGlzLl9yZXNvdXJjZVJlcXVlc3RJZGVudGlmaWVyTWFwLmRlbGV0ZShy
ZXF1ZXN0SWRlbnRpZmllcik7CiAgICAgfQpAQCAtNzAxLDcgKzc0NCw3IEBAIFdJLk5ldHdvcmtN
YW5hZ2VyID0gY2xhc3MgTmV0d29ya01hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAg
dmFyIHJlc291cmNlID0gbmV3IFdJLlJlc291cmNlKHBheWxvYWQudXJsLCBwYXlsb2FkLm1pbWVU
eXBlLCBwYXlsb2FkLnR5cGUsIGZyYW1lUGF5bG9hZC5sb2FkZXJJZCwgcGF5bG9hZC50YXJnZXRJ
ZCk7CiAKICAgICAgICAgaWYgKHBheWxvYWQuc291cmNlTWFwVVJMKQotICAgICAgICAgICAgV0ku
c291cmNlTWFwTWFuYWdlci5kb3dubG9hZFNvdXJjZU1hcChwYXlsb2FkLnNvdXJjZU1hcFVSTCwg
cmVzb3VyY2UudXJsLCByZXNvdXJjZSk7CisgICAgICAgICAgICB0aGlzLmRvd25sb2FkU291cmNl
TWFwKHBheWxvYWQuc291cmNlTWFwVVJMLCByZXNvdXJjZS51cmwsIHJlc291cmNlKTsKIAogICAg
ICAgICByZXR1cm4gcmVzb3VyY2U7CiAgICAgfQpAQCAtNzY5LDExICs4MTIsMTAyIEBAIFdJLk5l
dHdvcmtNYW5hZ2VyID0gY2xhc3MgTmV0d29ya01hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKICAg
ICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV0kuTmV0d29ya01hbmFnZXIuRXZl
bnQuTWFpbkZyYW1lRGlkQ2hhbmdlLCB7b2xkTWFpbkZyYW1lfSk7CiAgICAgfQogCisgICAgX2xv
YWRBbmRQYXJzZVNvdXJjZU1hcChzb3VyY2VNYXBVUkwsIGJhc2VVUkwsIG9yaWdpbmFsU291cmNl
Q29kZSkKKyAgICB7CisgICAgICAgIHRoaXMuX2Rvd25sb2FkaW5nU291cmNlTWFwcy5hZGQoc291
cmNlTWFwVVJMKTsKKworICAgICAgICBsZXQgc291cmNlTWFwTG9hZGVkID0gKGVycm9yLCBjb250
ZW50LCBtaW1lVHlwZSwgc3RhdHVzQ29kZSkgPT4geworICAgICAgICAgICAgaWYgKGVycm9yIHx8
IHN0YXR1c0NvZGUgPj0gNDAwKSB7CisgICAgICAgICAgICAgICAgdGhpcy5fc291cmNlTWFwTG9h
ZEFuZFBhcnNlRmFpbGVkKHNvdXJjZU1hcFVSTCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoY29udGVudC5zbGljZSgwLCAzKSA9PT0g
IildfSIpIHsKKyAgICAgICAgICAgICAgICBsZXQgZmlyc3ROZXdsaW5lSW5kZXggPSBjb250ZW50
LmluZGV4T2YoIlxuIik7CisgICAgICAgICAgICAgICAgaWYgKGZpcnN0TmV3bGluZUluZGV4ID09
PSAtMSkgeworICAgICAgICAgICAgICAgICAgICB0aGlzLl9zb3VyY2VNYXBMb2FkQW5kUGFyc2VG
YWlsZWQoc291cmNlTWFwVVJMKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGNvbnRlbnQgPSBjb250ZW50LnN1YnN0cmlu
ZyhmaXJzdE5ld2xpbmVJbmRleCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHRyeSB7
CisgICAgICAgICAgICAgICAgbGV0IHBheWxvYWQgPSBKU09OLnBhcnNlKGNvbnRlbnQpOworICAg
ICAgICAgICAgICAgIGxldCBiYXNlVVJMID0gc291cmNlTWFwVVJMLnN0YXJ0c1dpdGgoImRhdGE6
IikgPyBvcmlnaW5hbFNvdXJjZUNvZGUudXJsIDogc291cmNlTWFwVVJMOworICAgICAgICAgICAg
ICAgIGxldCBzb3VyY2VNYXAgPSBuZXcgV0kuU291cmNlTWFwKGJhc2VVUkwsIHBheWxvYWQsIG9y
aWdpbmFsU291cmNlQ29kZSk7CisgICAgICAgICAgICAgICAgdGhpcy5fc291cmNlTWFwTG9hZEFu
ZFBhcnNlU3VjY2VlZGVkKHNvdXJjZU1hcFVSTCwgc291cmNlTWFwKTsKKyAgICAgICAgICAgIH0g
Y2F0Y2ggeworICAgICAgICAgICAgICAgIHRoaXMuX3NvdXJjZU1hcExvYWRBbmRQYXJzZUZhaWxl
ZChzb3VyY2VNYXBVUkwpOworICAgICAgICAgICAgfQorICAgICAgICB9OworCisgICAgICAgIGlm
IChzb3VyY2VNYXBVUkwuc3RhcnRzV2l0aCgiZGF0YToiKSkgeworICAgICAgICAgICAgbGV0IHtt
aW1lVHlwZSwgYmFzZTY0LCBkYXRhfSA9IHBhcnNlRGF0YVVSTChzb3VyY2VNYXBVUkwpOworICAg
ICAgICAgICAgbGV0IGNvbnRlbnQgPSBiYXNlNjQgPyBhdG9iKGRhdGEpIDogZGF0YTsKKyAgICAg
ICAgICAgIHNvdXJjZU1hcExvYWRlZChudWxsLCBjb250ZW50LCBtaW1lVHlwZSwgMCk7CisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAoIXdpbmRvdy5OZXR3b3Jr
QWdlbnQpIHsKKyAgICAgICAgICAgIHRoaXMuX3NvdXJjZU1hcExvYWRBbmRQYXJzZUZhaWxlZChz
b3VyY2VNYXBVUkwpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAg
bGV0IGZyYW1lSWRlbnRpZmllciA9IG51bGw7CisgICAgICAgIGlmIChvcmlnaW5hbFNvdXJjZUNv
ZGUgaW5zdGFuY2VvZiBXSS5SZXNvdXJjZSAmJiBvcmlnaW5hbFNvdXJjZUNvZGUucGFyZW50RnJh
bWUpCisgICAgICAgICAgICBmcmFtZUlkZW50aWZpZXIgPSBvcmlnaW5hbFNvdXJjZUNvZGUucGFy
ZW50RnJhbWUuaWQ7CisKKyAgICAgICAgaWYgKCFmcmFtZUlkZW50aWZpZXIpCisgICAgICAgICAg
ICBmcmFtZUlkZW50aWZpZXIgPSBXSS5uZXR3b3JrTWFuYWdlci5tYWluRnJhbWUgPyBXSS5uZXR3
b3JrTWFuYWdlci5tYWluRnJhbWUuaWQgOiAiIjsKKworICAgICAgICBOZXR3b3JrQWdlbnQubG9h
ZFJlc291cmNlKGZyYW1lSWRlbnRpZmllciwgc291cmNlTWFwVVJMLCBzb3VyY2VNYXBMb2FkZWQp
OworICAgIH0KKworICAgIF9zb3VyY2VNYXBMb2FkQW5kUGFyc2VGYWlsZWQoc3NvdXJjZU1hcEx1
cmNlTWFwVVJMKQorICAgIHsKKyAgICAgICAgdGhpcy5fZG93bmxvYWRpbmdTb3VyY2VNYXBzLmRl
bGV0ZShzb3VyY2VNYXBVUkwpOworICAgIH0KKworICAgIF9zb3VyY2VNYXBMb2FkQW5kUGFyc2VT
dWNjZWVkZWQoc291cmNlTWFwVVJMLCBzb3VyY2VNYXApCisgICAgeworICAgICAgICBpZiAoIXRo
aXMuX2Rvd25sb2FkaW5nU291cmNlTWFwcy5oYXMoc291cmNlTWFwVVJMKSkKKyAgICAgICAgICAg
IHJldHVybjsKKworICAgICAgICB0aGlzLl9kb3dubG9hZGluZ1NvdXJjZU1hcHMuZGVsZXRlKHNv
dXJjZU1hcFVSTCk7CisKKyAgICAgICAgdGhpcy5fc291cmNlTWFwVVJMTWFwLnNldChzb3VyY2VN
YXBVUkwsIHNvdXJjZU1hcCk7CisKKyAgICAgICAgZm9yIChsZXQgc291cmNlIG9mIHNvdXJjZU1h
cC5zb3VyY2VzKCkpCisgICAgICAgICAgICBzb3VyY2VNYXAuYWRkUmVzb3VyY2UobmV3IFdJLlNv
dXJjZU1hcFJlc291cmNlKHNvdXJjZSwgc291cmNlTWFwKSk7CisKKyAgICAgICAgLy8gQXNzb2Np
YXRlIHRoZSBTb3VyY2VNYXAgd2l0aCB0aGUgb3JpZ2luYWxTb3VyY2VDb2RlLgorICAgICAgICBz
b3VyY2VNYXAub3JpZ2luYWxTb3VyY2VDb2RlLmFkZFNvdXJjZU1hcChzb3VyY2VNYXApOworCisg
ICAgICAgIC8vIElmIHRoZSBvcmlnaW5hbFNvdXJjZUNvZGUgd2FzIG5vdCBhIFJlc291cmNlLCBi
ZSBzdXJlIHRvIGFsc28gYXNzb2NpYXRlIHdpdGggdGhlIFJlc291cmNlIGlmIG9uZSBleGlzdHMu
CisgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgdHJ5IHRvIHVzZSB0aGUgcmlnaHQgZnJhbWUg
aW5zdGVhZCBvZiBhIGdsb2JhbCBsb29rdXAgYnkgVVJMLgorICAgICAgICBpZiAoIShzb3VyY2VN
YXAub3JpZ2luYWxTb3VyY2VDb2RlIGluc3RhbmNlb2YgV0kuUmVzb3VyY2UpKSB7CisgICAgICAg
ICAgICBjb25zb2xlLmFzc2VydChzb3VyY2VNYXAub3JpZ2luYWxTb3VyY2VDb2RlIGluc3RhbmNl
b2YgV0kuU2NyaXB0KTsKKyAgICAgICAgICAgIGxldCByZXNvdXJjZSA9IHNvdXJjZU1hcC5vcmln
aW5hbFNvdXJjZUNvZGUucmVzb3VyY2U7CisgICAgICAgICAgICBpZiAocmVzb3VyY2UpCisgICAg
ICAgICAgICAgICAgcmVzb3VyY2UuYWRkU291cmNlTWFwKHNvdXJjZU1hcCk7CisgICAgICAgIH0K
KyAgICB9CisKICAgICBfZXh0cmFEb21haW5zQWN0aXZhdGVkKGV2ZW50KQogICAgIHsKICAgICAg
ICAgaWYgKGV2ZW50LmRhdGEuZG9tYWlucy5pbmNsdWRlcygiUGFnZSIpICYmIHdpbmRvdy5QYWdl
QWdlbnQpCiAgICAgICAgICAgICBQYWdlQWdlbnQuZ2V0UmVzb3VyY2VUcmVlKHRoaXMuX3Byb2Nl
c3NNYWluRnJhbWVSZXNvdXJjZVRyZWVQYXlsb2FkLmJpbmQodGhpcykpOwogICAgIH0KKworICAg
IF9oYW5kbGVGcmFtZU1haW5SZXNvdXJjZURpZENoYW5nZShldmVudCkKKyAgICB7CisgICAgICAg
IGlmICghZXZlbnQudGFyZ2V0LmlzTWFpbkZyYW1lKCkpCisgICAgICAgICAgICByZXR1cm47CisK
KyAgICAgICAgdGhpcy5fc291cmNlTWFwVVJMTWFwLmNsZWFyKCk7CisgICAgICAgIHRoaXMuX2Rv
d25sb2FkaW5nU291cmNlTWFwcy5jbGVhcigpOworICAgIH0KIH07CiAKIFdJLk5ldHdvcmtNYW5h
Z2VyLkV2ZW50ID0gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvQ29udHJvbGxlcnMvU291cmNlTWFwTWFuYWdlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL1NvdXJjZU1hcE1hbmFnZXIuanMKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY1OTRmZmU4MmFlMDFjMWUwMTM0NTY3N2IyZjNkNzk2
YzIzNTM5YTUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvU291cmNlTWFw
TWFuYWdlci5qcworKysgL2Rldi9udWxsCkBAIC0xLDE4NCArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQot
V0kuU291cmNlTWFwTWFuYWdlciA9IGNsYXNzIFNvdXJjZU1hcE1hbmFnZXIgZXh0ZW5kcyBXSS5P
YmplY3QKLXsKLSAgICBjb25zdHJ1Y3RvcigpCi0gICAgewotICAgICAgICBzdXBlcigpOwotCi0g
ICAgICAgIHRoaXMuX3NvdXJjZU1hcFVSTE1hcCA9IHt9OwotICAgICAgICB0aGlzLl9kb3dubG9h
ZGluZ1NvdXJjZU1hcHMgPSB7fTsKLQotICAgICAgICBXSS5GcmFtZS5hZGRFdmVudExpc3RlbmVy
KFdJLkZyYW1lLkV2ZW50Lk1haW5SZXNvdXJjZURpZENoYW5nZSwgdGhpcy5fbWFpblJlc291cmNl
RGlkQ2hhbmdlLCB0aGlzKTsKLSAgICB9Ci0KLSAgICAvLyBQdWJsaWMKLQotICAgIHNvdXJjZU1h
cEZvclVSTChzb3VyY2VNYXBVUkwpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5fc291cmNl
TWFwVVJMTWFwW3NvdXJjZU1hcFVSTF07Ci0gICAgfQotCi0gICAgZG93bmxvYWRTb3VyY2VNYXAo
c291cmNlTWFwVVJMLCBiYXNlVVJMLCBvcmlnaW5hbFNvdXJjZUNvZGUpCi0gICAgewotICAgICAg
ICAvLyBUaGUgYmFzZVVSTCBjb3VsZCBoYXZlIGNvbWUgZnJvbSBhICIvLyMgc291cmNlVVJMIi4g
QXR0ZW1wdCB0byBnZXQgYQotICAgICAgICAvLyByZWFzb25hYmxlIGFic29sdXRlIFVSTCBmb3Ig
dGhlIGJhc2UgYnkgdXNpbmcgdGhlIG1haW4gcmVzb3VyY2UncyBVUkwuCi0gICAgICAgIGlmIChX
SS5uZXR3b3JrTWFuYWdlci5tYWluRnJhbWUpCi0gICAgICAgICAgICBiYXNlVVJMID0gYWJzb2x1
dGVVUkwoYmFzZVVSTCwgV0kubmV0d29ya01hbmFnZXIubWFpbkZyYW1lLnVybCk7Ci0KLSAgICAg
ICAgaWYgKHNvdXJjZU1hcFVSTC5zdGFydHNXaXRoKCJkYXRhOiIpKSB7Ci0gICAgICAgICAgICB0
aGlzLl9sb2FkQW5kUGFyc2VTb3VyY2VNYXAoc291cmNlTWFwVVJMLCBiYXNlVVJMLCBvcmlnaW5h
bFNvdXJjZUNvZGUpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAg
c291cmNlTWFwVVJMID0gYWJzb2x1dGVVUkwoc291cmNlTWFwVVJMLCBiYXNlVVJMKTsKLSAgICAg
ICAgaWYgKCFzb3VyY2VNYXBVUkwpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgY29u
c29sZS5hc3NlcnQob3JpZ2luYWxTb3VyY2VDb2RlLnVybCk7Ci0gICAgICAgIGlmICghb3JpZ2lu
YWxTb3VyY2VDb2RlLnVybCkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICAvLyBGSVhN
RTogPHJkYXI6Ly9wcm9ibGVtLzEzMjY1Njk0PiBTb3VyY2UgTWFwczogQmV0dGVyIGhhbmRsZSB3
aGVuIG11bHRpcGxlIHJlc291cmNlcyByZWZlcmVuY2UgdGhlIHNhbWUgU291cmNlTWFwCi0KLSAg
ICAgICAgaWYgKHNvdXJjZU1hcFVSTCBpbiB0aGlzLl9zb3VyY2VNYXBVUkxNYXApCi0gICAgICAg
ICAgICByZXR1cm47Ci0KLSAgICAgICAgaWYgKHNvdXJjZU1hcFVSTCBpbiB0aGlzLl9kb3dubG9h
ZGluZ1NvdXJjZU1hcHMpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgZnVuY3Rpb24g
bG9hZEFuZFBhcnNlU291cmNlTWFwKCkKLSAgICAgICAgewotICAgICAgICAgICAgdGhpcy5fbG9h
ZEFuZFBhcnNlU291cmNlTWFwKHNvdXJjZU1hcFVSTCwgYmFzZVVSTCwgb3JpZ2luYWxTb3VyY2VD
b2RlKTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmICghV0kubmV0d29ya01hbmFnZXIubWFpbkZy
YW1lKSB7Ci0gICAgICAgICAgICAvLyBJZiB3ZSBkb24ndCBoYXZlIGEgbWFpbiBmcmFtZSwgdGhl
biB3ZSBhcmUgbGlrZWx5IGluIHRoZSBtaWRkbGUgb2YgYnVpbGRpbmcgdGhlIHJlc291cmNlIHRy
ZWUuCi0gICAgICAgICAgICAvLyBEZWxheWluZyB1bnRpbCB0aGUgbmV4dCBydW5sb29wIGlzIGVu
b3VnaCBpbiB0aGlzIGNhc2UgdG8gdGhlbiBzdGFydCBsb2FkaW5nIHRoZSBzb3VyY2UgbWFwLgot
ICAgICAgICAgICAgc2V0VGltZW91dChsb2FkQW5kUGFyc2VTb3VyY2VNYXAuYmluZCh0aGlzKSwg
MCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBsb2FkQW5kUGFy
c2VTb3VyY2VNYXAuY2FsbCh0aGlzKTsKLSAgICB9Ci0KLSAgICAvLyBQcml2YXRlCi0KLSAgICBf
bG9hZEFuZFBhcnNlU291cmNlTWFwKHNvdXJjZU1hcFVSTCwgYmFzZVVSTCwgb3JpZ2luYWxTb3Vy
Y2VDb2RlKQotICAgIHsKLSAgICAgICAgdGhpcy5fZG93bmxvYWRpbmdTb3VyY2VNYXBzW3NvdXJj
ZU1hcFVSTF0gPSB0cnVlOwotCi0gICAgICAgIGZ1bmN0aW9uIHNvdXJjZU1hcExvYWRlZChlcnJv
ciwgY29udGVudCwgbWltZVR5cGUsIHN0YXR1c0NvZGUpCi0gICAgICAgIHsKLSAgICAgICAgICAg
IGlmIChlcnJvciB8fCBzdGF0dXNDb2RlID49IDQwMCkgewotICAgICAgICAgICAgICAgIHRoaXMu
X2xvYWRBbmRQYXJzZUZhaWxlZChzb3VyY2VNYXBVUkwpOwotICAgICAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKGNvbnRlbnQuc2xpY2UoMCwgMykg
PT09ICIpXX0iKSB7Ci0gICAgICAgICAgICAgICAgdmFyIGZpcnN0TmV3bGluZUluZGV4ID0gY29u
dGVudC5pbmRleE9mKCJcbiIpOwotICAgICAgICAgICAgICAgIGlmIChmaXJzdE5ld2xpbmVJbmRl
eCA9PT0gLTEpIHsKLSAgICAgICAgICAgICAgICAgICAgdGhpcy5fbG9hZEFuZFBhcnNlRmFpbGVk
KHNvdXJjZU1hcFVSTCk7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAg
ICAgICB9Ci0KLSAgICAgICAgICAgICAgICBjb250ZW50ID0gY29udGVudC5zdWJzdHJpbmcoZmly
c3ROZXdsaW5lSW5kZXgpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICB0cnkgewotICAg
ICAgICAgICAgICAgIHZhciBwYXlsb2FkID0gSlNPTi5wYXJzZShjb250ZW50KTsKLSAgICAgICAg
ICAgICAgICB2YXIgYmFzZVVSTCA9IHNvdXJjZU1hcFVSTC5zdGFydHNXaXRoKCJkYXRhOiIpID8g
b3JpZ2luYWxTb3VyY2VDb2RlLnVybCA6IHNvdXJjZU1hcFVSTDsKLSAgICAgICAgICAgICAgICB2
YXIgc291cmNlTWFwID0gbmV3IFdJLlNvdXJjZU1hcChiYXNlVVJMLCBwYXlsb2FkLCBvcmlnaW5h
bFNvdXJjZUNvZGUpOwotICAgICAgICAgICAgICAgIHRoaXMuX2xvYWRBbmRQYXJzZVN1Y2NlZWRl
ZChzb3VyY2VNYXBVUkwsIHNvdXJjZU1hcCk7Ci0gICAgICAgICAgICB9IGNhdGNoIHsKLSAgICAg
ICAgICAgICAgICB0aGlzLl9sb2FkQW5kUGFyc2VGYWlsZWQoc291cmNlTWFwVVJMKTsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIGlmIChzb3VyY2VNYXBVUkwuc3RhcnRzV2l0
aCgiZGF0YToiKSkgewotICAgICAgICAgICAgbGV0IHttaW1lVHlwZSwgYmFzZTY0LCBkYXRhfSA9
IHBhcnNlRGF0YVVSTChzb3VyY2VNYXBVUkwpOwotICAgICAgICAgICAgbGV0IGNvbnRlbnQgPSBi
YXNlNjQgPyBhdG9iKGRhdGEpIDogZGF0YTsKLSAgICAgICAgICAgIHNvdXJjZU1hcExvYWRlZC5j
YWxsKHRoaXMsIG51bGwsIGNvbnRlbnQsIG1pbWVUeXBlLCAwKTsKLSAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgfQotCi0gICAgICAgIGlmICghd2luZG93Lk5ldHdvcmtBZ2VudCkgewotICAg
ICAgICAgICAgdGhpcy5fbG9hZEFuZFBhcnNlRmFpbGVkKHNvdXJjZU1hcFVSTCk7Ci0gICAgICAg
ICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICB2YXIgZnJhbWVJZGVudGlmaWVyID0g
bnVsbDsKLSAgICAgICAgaWYgKG9yaWdpbmFsU291cmNlQ29kZSBpbnN0YW5jZW9mIFdJLlJlc291
cmNlICYmIG9yaWdpbmFsU291cmNlQ29kZS5wYXJlbnRGcmFtZSkKLSAgICAgICAgICAgIGZyYW1l
SWRlbnRpZmllciA9IG9yaWdpbmFsU291cmNlQ29kZS5wYXJlbnRGcmFtZS5pZDsKLQotICAgICAg
ICBpZiAoIWZyYW1lSWRlbnRpZmllcikKLSAgICAgICAgICAgIGZyYW1lSWRlbnRpZmllciA9IFdJ
Lm5ldHdvcmtNYW5hZ2VyLm1haW5GcmFtZSA/IFdJLm5ldHdvcmtNYW5hZ2VyLm1haW5GcmFtZS5p
ZCA6ICIiOwotCi0gICAgICAgIE5ldHdvcmtBZ2VudC5sb2FkUmVzb3VyY2UoZnJhbWVJZGVudGlm
aWVyLCBzb3VyY2VNYXBVUkwsIHNvdXJjZU1hcExvYWRlZC5iaW5kKHRoaXMpKTsKLSAgICB9Ci0K
LSAgICBfbG9hZEFuZFBhcnNlRmFpbGVkKHNvdXJjZU1hcFVSTCkKLSAgICB7Ci0gICAgICAgIGRl
bGV0ZSB0aGlzLl9kb3dubG9hZGluZ1NvdXJjZU1hcHNbc291cmNlTWFwVVJMXTsKLSAgICB9Ci0K
LSAgICBfbG9hZEFuZFBhcnNlU3VjY2VlZGVkKHNvdXJjZU1hcFVSTCwgc291cmNlTWFwKQotICAg
IHsKLSAgICAgICAgaWYgKCEoc291cmNlTWFwVVJMIGluIHRoaXMuX2Rvd25sb2FkaW5nU291cmNl
TWFwcykpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgZGVsZXRlIHRoaXMuX2Rvd25s
b2FkaW5nU291cmNlTWFwc1tzb3VyY2VNYXBVUkxdOwotCi0gICAgICAgIHRoaXMuX3NvdXJjZU1h
cFVSTE1hcFtzb3VyY2VNYXBVUkxdID0gc291cmNlTWFwOwotCi0gICAgICAgIHZhciBzb3VyY2Vz
ID0gc291cmNlTWFwLnNvdXJjZXMoKTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzb3Vy
Y2VzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICB2YXIgc291cmNlTWFwUmVzb3VyY2UgPSBu
ZXcgV0kuU291cmNlTWFwUmVzb3VyY2Uoc291cmNlc1tpXSwgc291cmNlTWFwKTsKLSAgICAgICAg
ICAgIHNvdXJjZU1hcC5hZGRSZXNvdXJjZShzb3VyY2VNYXBSZXNvdXJjZSk7Ci0gICAgICAgIH0K
LQotICAgICAgICAvLyBBc3NvY2lhdGUgdGhlIFNvdXJjZU1hcCB3aXRoIHRoZSBvcmlnaW5hbFNv
dXJjZUNvZGUuCi0gICAgICAgIHNvdXJjZU1hcC5vcmlnaW5hbFNvdXJjZUNvZGUuYWRkU291cmNl
TWFwKHNvdXJjZU1hcCk7Ci0KLSAgICAgICAgLy8gSWYgdGhlIG9yaWdpbmFsU291cmNlQ29kZSB3
YXMgbm90IGEgUmVzb3VyY2UsIGJlIHN1cmUgdG8gYWxzbyBhc3NvY2lhdGUgd2l0aCB0aGUgUmVz
b3VyY2UgaWYgb25lIGV4aXN0cy4KLSAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCB0cnkgdG8g
dXNlIHRoZSByaWdodCBmcmFtZSBpbnN0ZWFkIG9mIGEgZ2xvYmFsIGxvb2t1cCBieSBVUkwuCi0g
ICAgICAgIGlmICghKHNvdXJjZU1hcC5vcmlnaW5hbFNvdXJjZUNvZGUgaW5zdGFuY2VvZiBXSS5S
ZXNvdXJjZSkpIHsKLSAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHNvdXJjZU1hcC5vcmlnaW5h
bFNvdXJjZUNvZGUgaW5zdGFuY2VvZiBXSS5TY3JpcHQpOwotICAgICAgICAgICAgdmFyIHJlc291
cmNlID0gc291cmNlTWFwLm9yaWdpbmFsU291cmNlQ29kZS5yZXNvdXJjZTsKLSAgICAgICAgICAg
IGlmIChyZXNvdXJjZSkKLSAgICAgICAgICAgICAgICByZXNvdXJjZS5hZGRTb3VyY2VNYXAoc291
cmNlTWFwKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIF9tYWluUmVzb3VyY2VEaWRDaGFuZ2Uo
ZXZlbnQpCi0gICAgewotICAgICAgICBpZiAoIWV2ZW50LnRhcmdldC5pc01haW5GcmFtZSgpKQot
ICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIHRoaXMuX3NvdXJjZU1hcFVSTE1hcCA9IHt9
OwotICAgICAgICB0aGlzLl9kb3dubG9hZGluZ1NvdXJjZU1hcHMgPSB7fTsKLSAgICB9Ci19Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTWFpbi5odG1s
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTWFpbi5odG1sCmluZGV4IGEx
MjJjNjg4NGY1Zjc3Y2I0MzA2ZDg5YWIwMDM1YTNhZDBjMzI2MmMuLjYwOWFkNzFlN2U1Nzc2ZWE1
MzBjMjJmY2E0MDk4MGYxZmMxNTUwMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL01haW4uaHRtbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9NYWluLmh0bWwKQEAgLTgxMCw3ICs4MTAsNiBAQAogICAgIDxzY3JpcHQgc3Jj
PSJDb250cm9sbGVycy9Qcm9iZU1hbmFnZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3Jj
PSJDb250cm9sbGVycy9SZXNvdXJjZVF1ZXJ5Q29udHJvbGxlci5qcyI+PC9zY3JpcHQ+CiAgICAg
PHNjcmlwdCBzcmM9IkNvbnRyb2xsZXJzL1J1bnRpbWVNYW5hZ2VyLmpzIj48L3NjcmlwdD4KLSAg
ICA8c2NyaXB0IHNyYz0iQ29udHJvbGxlcnMvU291cmNlTWFwTWFuYWdlci5qcyI+PC9zY3JpcHQ+
CiAgICAgPHNjcmlwdCBzcmM9IkNvbnRyb2xsZXJzL1RhcmdldE1hbmFnZXIuanMiPjwvc2NyaXB0
PgogICAgIDxzY3JpcHQgc3JjPSJDb250cm9sbGVycy9UaW1lbGluZU1hbmFnZXIuanMiPjwvc2Ny
aXB0PgogICAgIDxzY3JpcHQgc3JjPSJDb250cm9sbGVycy9UeXBlVG9rZW5Bbm5vdGF0b3IuanMi
Pjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvTW9kZWxzL1NjcmlwdC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L01vZGVscy9TY3JpcHQuanMKaW5kZXggMzE4OTdlZDNlZWIyYzllMjk5MzIzZTc5NzhkZjEwMjA5
MDhmMmNlZS4uZmI0Mjc2OThiYTNjZDI3ODVhOTI0YzgwN2Y4NzJjNDg5ZjQ4MWFjNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1NjcmlwdC5q
cworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvU2NyaXB0
LmpzCkBAIC02NSw3ICs2NSw3IEBAIFdJLlNjcmlwdCA9IGNsYXNzIFNjcmlwdCBleHRlbmRzIFdJ
LlNvdXJjZUNvZGUKICAgICAgICAgfQogCiAgICAgICAgIGlmICh0aGlzLl9zb3VyY2VNYXBwaW5n
VVJMKQotICAgICAgICAgICAgV0kuc291cmNlTWFwTWFuYWdlci5kb3dubG9hZFNvdXJjZU1hcCh0
aGlzLl9zb3VyY2VNYXBwaW5nVVJMLCB0aGlzLl91cmwsIHRoaXMpOworICAgICAgICAgICAgV0ku
bmV0d29ya01hbmFnZXIuZG93bmxvYWRTb3VyY2VNYXAodGhpcy5fc291cmNlTWFwcGluZ1VSTCwg
dGhpcy5fdXJsLCB0aGlzKTsKICAgICB9CiAKICAgICAvLyBTdGF0aWMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QuaHRtbCBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QuaHRtbAppbmRleCBjNTcxYzdhMTFhZWQ4ZTZi
MDI5ZjIxYThiMDMxYzc2MzdiMDI4YjA3Li40MmZkZDU4MTBmNWFhYjFmNzFkYWJmZjc0YWJmYzkz
ZmY0OGExNDRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9UZXN0Lmh0bWwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVz
dC5odG1sCkBAIC0yMjQsNyArMjI0LDYgQEAKICAgICA8c2NyaXB0IHNyYz0iQ29udHJvbGxlcnMv
TmV0d29ya01hbmFnZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJDb250cm9sbGVy
cy9Qcm9iZU1hbmFnZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJDb250cm9sbGVy
cy9SdW50aW1lTWFuYWdlci5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IkNvbnRyb2xs
ZXJzL1NvdXJjZU1hcE1hbmFnZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJDb250
cm9sbGVycy9UYXJnZXRNYW5hZ2VyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQ29u
dHJvbGxlcnMvVGltZWxpbmVNYW5hZ2VyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0i
Q29udHJvbGxlcnMvV29ya2VyTWFuYWdlci5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXN0L1Rlc3QuanMgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXN0L1Rlc3QuanMKaW5kZXggOWU3NjY3MWExNDA1
Y2ZmYmRiMGI5ZmY4OWZjZThhNTVjOWQ1MjIxZi4uYjA0Yzc3ZTQ1MzlkMmRlZTg0N2EzMjNkMzIy
MzJlNmNiMmI5Zjk2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVGVzdC9UZXN0LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1Rlc3QvVGVzdC5qcwpAQCAtNTksNyArNTksNiBAQCBXSS5sb2FkZWQgPSBmdW5jdGlvbigp
CiAgICAgdGhpcy5tZW1vcnlNYW5hZ2VyID0gbmV3IFdJLk1lbW9yeU1hbmFnZXI7CiAgICAgdGhp
cy50aW1lbGluZU1hbmFnZXIgPSBuZXcgV0kuVGltZWxpbmVNYW5hZ2VyOwogICAgIHRoaXMuZGVi
dWdnZXJNYW5hZ2VyID0gbmV3IFdJLkRlYnVnZ2VyTWFuYWdlcjsKLSAgICB0aGlzLnNvdXJjZU1h
cE1hbmFnZXIgPSBuZXcgV0kuU291cmNlTWFwTWFuYWdlcjsKICAgICB0aGlzLmxheWVyVHJlZU1h
bmFnZXIgPSBuZXcgV0kuTGF5ZXJUcmVlTWFuYWdlcjsKICAgICB0aGlzLnByb2JlTWFuYWdlciA9
IG5ldyBXSS5Qcm9iZU1hbmFnZXI7CiAgICAgdGhpcy53b3JrZXJNYW5hZ2VyID0gbmV3IFdJLldv
cmtlck1hbmFnZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvV2ViSW5zcGVj
dG9yVUkudmN4cHJvai9XZWJJbnNwZWN0b3JVSS52Y3hwcm9qIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1dlYkluc3BlY3RvclVJLnZjeHByb2ovV2ViSW5zcGVjdG9yVUkudmN4cHJvagppbmRleCAz
OTMwYjMxOWEzYzJkMThiOTFiMzQxNDE2NDZhMmYyNzQwZjMxMTE1Li44OTNiMzU0OGVhMTU1NmI3
MzNmNTYwZWNmZTRiZDAxOGNlMTZiM2M3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvV2ViSW5zcGVjdG9yVUkudmN4cHJvai9XZWJJbnNwZWN0b3JVSS52Y3hwcm9qCisrKyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9XZWJJbnNwZWN0b3JVSS52Y3hwcm9qL1dlYkluc3BlY3RvclVJ
LnZjeHByb2oKQEAgLTc3NSw3ICs3NzUsNiBAQAogICAgIDxOb25lIEluY2x1ZGU9Ii4uXFVzZXJJ
bnRlcmZhY2VcU291cmNlQ29kZVRleHRSYW5nZS5qcyIgLz4KICAgICA8Tm9uZSBJbmNsdWRlPSIu
LlxVc2VySW50ZXJmYWNlXFNvdXJjZUNvZGVUcmVlRWxlbWVudC5qcyIgLz4KICAgICA8Tm9uZSBJ
bmNsdWRlPSIuLlxVc2VySW50ZXJmYWNlXFNvdXJjZU1hcC5qcyIgLz4KLSAgICA8Tm9uZSBJbmNs
dWRlPSIuLlxVc2VySW50ZXJmYWNlXFNvdXJjZU1hcE1hbmFnZXIuanMiIC8+CiAgICAgPE5vbmUg
SW5jbHVkZT0iLi5cVXNlckludGVyZmFjZVxTb3VyY2VNYXBSZXNvdXJjZS5qcyIgLz4KICAgICA8
Tm9uZSBJbmNsdWRlPSIuLlxVc2VySW50ZXJmYWNlXFNvdXJjZU1hcFJlc291cmNlVHJlZUVsZW1l
bnQuanMiIC8+CiAgICAgPE5vbmUgSW5jbHVkZT0iLi5cVXNlckludGVyZmFjZVxTdG9yYWdlVHJl
ZUVsZW1lbnQuanMiIC8+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvV2ViSW5z
cGVjdG9yVUkudmN4cHJvai9XZWJJbnNwZWN0b3JVSS52Y3hwcm9qLmZpbHRlcnMgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvV2ViSW5zcGVjdG9yVUkudmN4cHJvai9XZWJJbnNwZWN0b3JVSS52Y3hw
cm9qLmZpbHRlcnMKaW5kZXggNmI0ZDEwODg5MWU0NGZmMDQ4MmIzOTM1YmY3YmVhNTJhOGU2ZWJi
NC4uMGU1MTUyZmQyODBmNWNiOGFkMTI5MWQ5Mjc5NjA2Mjg3Y2M3MzhhMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1dlYkluc3BlY3RvclVJLnZjeHByb2ovV2ViSW5zcGVjdG9y
VUkudmN4cHJvai5maWx0ZXJzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9XZWJJbnNwZWN0
b3JVSS52Y3hwcm9qL1dlYkluc3BlY3RvclVJLnZjeHByb2ouZmlsdGVycwpAQCAtOTIxLDkgKzky
MSw2IEBACiAgICAgPE5vbmUgSW5jbHVkZT0iLi5cVXNlckludGVyZmFjZVxTb3VyY2VNYXAuanMi
PgogICAgICAgPEZpbHRlcj5Vc2VySW50ZXJmYWNlPC9GaWx0ZXI+CiAgICAgPC9Ob25lPgotICAg
IDxOb25lIEluY2x1ZGU9Ii4uXFVzZXJJbnRlcmZhY2VcU291cmNlTWFwTWFuYWdlci5qcyI+Ci0g
ICAgICA8RmlsdGVyPlVzZXJJbnRlcmZhY2U8L0ZpbHRlcj4KLSAgICA8L05vbmU+CiAgICAgPE5v
bmUgSW5jbHVkZT0iLi5cVXNlckludGVyZmFjZVxTb3VyY2VNYXBSZXNvdXJjZS5qcyI+CiAgICAg
ICA8RmlsdGVyPlVzZXJJbnRlcmZhY2U8L0ZpbHRlcj4KICAgICA8L05vbmU+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>