<?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>185367</bug_id>
          
          <creation_ts>2018-05-06 16:20:04 -0700</creation_ts>
          <short_desc>CSP should be passed the referrer</short_desc>
          <delta_ts>2018-05-07 10:53:26 -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>WebCore Misc.</component>
          <version>WebKit Local 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>185380</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Daniel Bates">dbates</reporter>
          <assigned_to name="Daniel Bates">dbates</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>japhet</cc>
    
    <cc>kangil.han</cc>
    
    <cc>mkwst</cc>
    
    <cc>pvollan</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1421167</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-05-06 16:20:04 -0700</bug_when>
    <thetext>A ContentSecurityPolicy object currently depends on either a ScriptExecutionContext or a Frame in order to perform logging, dispatch DOM events, and send CSP reports. Ideally, we want it be dependent on a delegate to perform these operations so that we can implement them appropriate for workers and with respect to the NetworkProcess. Notice that class Document extends ScriptExecutionContext. For documents, one of the reasons the class ContentSecurityPolicy has a dependency on ScriptExecutionContext is because it needs to know the document&apos;s referrer when dispatching DOM events and sending CSP reports for violations. It is sufficient to pass the referrer information to a ContentSecurityPolicy directly instead of having ContentSecurityPolicy indirectly query this information from the specified ScriptExecutionContext or Frame. This will also make it straightforward to correctly compute the referrer for a worker in a subsequent bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1421171</commentid>
    <comment_count>1</comment_count>
      <attachid>339695</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-05-06 16:35:40 -0700</bug_when>
    <thetext>Created attachment 339695
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1421179</commentid>
    <comment_count>2</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-05-06 17:26:55 -0700</bug_when>
    <thetext>(In reply to Daniel Bates from comment #0)
&gt; Ideally, we want it be dependent on a delegate
&gt; to perform these operations so that we can implement them appropriate for
&gt; workers and with respect to the NetworkProcess. Notice that class Document
&gt; extends ScriptExecutionContext.


This should read:

Ideally, we want it to be dependent only on a delegate to perform these operations so that we can implement them appropriately for workers and with respect to the NetworkProcess. 


&gt; This will also make it straightforward to correctly compute the referrer for a worker in a subsequent bug.

Disregard this remark. Only documents have a referrer. That is, workers do not have a referrer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1421334</commentid>
    <comment_count>3</comment_count>
      <attachid>339695</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2018-05-07 10:48:17 -0700</bug_when>
    <thetext>Comment on attachment 339695
Patch

R=me. Do we already have test coverage for this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1421337</commentid>
    <comment_count>4</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-05-07 10:50:58 -0700</bug_when>
    <thetext>(In reply to Per Arne Vollan from comment #3)
&gt; Do we already have test coverage for this?

Yes, we do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1421338</commentid>
    <comment_count>5</comment_count>
      <attachid>339695</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-05-07 10:52:40 -0700</bug_when>
    <thetext>Comment on attachment 339695
Patch

Clearing flags on attachment: 339695

Committed r231445: &lt;https://trac.webkit.org/changeset/231445&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1421339</commentid>
    <comment_count>6</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-05-07 10:52:42 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1421340</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-05-07 10:53:26 -0700</bug_when>
    <thetext>&lt;rdar://problem/40028310&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339695</attachid>
            <date>2018-05-06 16:35:40 -0700</date>
            <delta_ts>2018-05-07 10:52:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185367-20180506163539.patch</filename>
            <type>text/plain</type>
            <size>21118</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxMzk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDBhODIxZDZkNzIxNDMw
MjQ2OWYyYzQ2NjY2NjMwM2IyNjhhZjg5NC4uZjExMjk0MDc3YjA4NWQ4OWUwMDg1MTk1ZmQ2OTk2
Y2U0M2VlNmFiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE4LTA1LTA2ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBDU1Agc2hvdWxkIGJlIHBh
c3NlZCB0aGUgcmVmZXJyZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE4NTM2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFzIGEgc3RlcCB0b3dhcmRzIGZvcm1hbGl6aW5nIGEgQ1NQIGRlbGVnYXRlIG9i
amVjdCBhbmQgcmVtb3ZpbmcgdGhlIGRlcGVuZGVuY2llcworICAgICAgICBvbiBTY3JpcHRFeGVj
dXRpb25Db250ZXh0IGFuZCBGcmFtZSwgd2Ugc2hvdWxkIHBhc3MgdGhlIGRvY3VtZW50J3MgcmVm
ZXJyZXIgZGlyZWN0bHkKKyAgICAgICAgaW5zdGVhZCBvZiBpbmRpcmVjdGx5IG9idGFpbmluZyBp
dCBmcm9tIHRoZSBTY3JpcHRFeGVjdXRpb25Db250ZXh0IG9yIEZyYW1lIHVzZWQKKyAgICAgICAg
dG8gaW5zdGFudGlhdGUgdGhlIENvbnRlbnRTZWN1cml0eVBvbGljeSBvYmplY3QuCisKKyAgICAg
ICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnByb2Nl
c3NIdHRwRXF1aXYpOiBQYXNzIHRoZSBkb2N1bWVudCdzIHJlZmVycmVyLgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OmluaXRTZWN1cml0eUNvbnRleHQpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OkRvY3VtZW50OjphcHBseVF1aWNrTG9va1NhbmRib3gpOiBEaXR0by4KKyAgICAgICAg
KiBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRM
b2FkZXI6OnJlc3BvbnNlUmVjZWl2ZWQpOiBEaXR0by4KKyAgICAgICAgKiBsb2FkZXIvRnJhbWVM
b2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmRpZEJlZ2luRG9jdW1l
bnQpOiBEaXR0by4KKyAgICAgICAgKiBwYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5Ojpjb3B5U3RhdGVGcm9t
KTogV2UgcGFzcyBhIG51bGwgc3RyaW5nIGZvciB0aGUgcmVmZXJyZXIKKyAgICAgICAgdG8gZGlk
UmVjZWl2ZUhlYWRlcigpIGFzIGEgcGxhY2Vob2xkZXIgc2luY2UgaXQgcmVxdWlyZXMgdGhlIHJl
ZmVycmVyIGJlIGdpdmVuIHRvIGl0LiBXZQorICAgICAgICBmaXggdXAgdGhlIHJlZmVycmVyICht
X3JlZmVycmVyKSBhZnRlciBjb3B5aW5nIGFsbCB0aGUgcG9saWN5IGhlYWRlcnMuCisgICAgICAg
IChXZWJDb3JlOjpDb250ZW50U2VjdXJpdHlQb2xpY3k6OmRpZFJlY2VpdmVIZWFkZXJzKTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpDb250ZW50U2VjdXJpdHlQb2xpY3k6OmRpZFJlY2VpdmVI
ZWFkZXIpOiBNb2RpZmllZCB0byB0YWtlIGEgcmVmZXJyZXIgYW5kIFdURk1vdmUoKXMKKyAgICAg
ICAgaXQgaW50byBhbiBpbnN0YW5jZSB2YXJpYWJsZSAobV9yZWZlcnJlcikuCisgICAgICAgIChX
ZWJDb3JlOjpDb250ZW50U2VjdXJpdHlQb2xpY3k6OnJlcG9ydFZpb2xhdGlvbiBjb25zdCk6IE1v
ZGlmaWVkIHRvIHVzZSB0aGUgc3RvcmVkIHJlZmVycmVyLgorICAgICAgICAqIHBhZ2UvY3NwL0Nv
bnRlbnRTZWN1cml0eVBvbGljeS5oOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyR2xvYmFsU2Nv
cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyR2xvYmFsU2NvcGU6OmFwcGx5Q29udGVu
dFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzKTogUGFzcyBhIG51bGwgc3RyaW5nCisgICAg
ICAgIGZvciB0aGUgcmVmZXJyZXIgYXMgYSB3b3JrZXIgZG9lcyBub3QgaGF2ZSBhIHJlZmVycmVy
LgorCiAyMDE4LTA1LTA2ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAogICAg
ICAgICBDU1Agc2hvdWxkIG9ubHkgbm90aWZ5IEluc3BlY3RvciB0byBwYXVzZSB0aGUgZGVidWdn
ZXIgb24gdGhlIGZpcnN0IHBvbGljeSB0byB2aW9sYXRlIGEgZGlyZWN0aXZlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4
IDZiYzYxYjYxYjRmYTAyNDY3MzhkYzFmYTJlYWU5ZjhlMjNkNmY1MzMuLjQ0N2M3NGYyNzNiMTEw
ZTRmMGJiNjg5MGU3MjQzMTJmNDY2MzQ1MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIw
MTgtMDUtMDYgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIENT
UCBzaG91bGQgYmUgcGFzc2VkIHRoZSByZWZlcnJlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg1MzY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUGFzcyB0aGUgcmVmZXJyZXIgdGhyb3VnaCBOZXR3b3Jr
TG9hZENoZWNrZXIgc28gdGhhdCBpdCBjYW4gcGFzcyBpdCB0byB0aGUgQ29udGVudFNlY3VyaXR5
UG9saWN5CisgICAgICAgIG9iamVjdCBpdCBpbnN0YW50aWF0ZXMuCisKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrTG9hZENoZWNrZXI6Ok5ldHdvcmtMb2FkQ2hlY2tlcik6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtMb2FkQ2hlY2tlcjo6Y29udGVudFNlY3VyaXR5UG9saWN5IGNvbnN0KToKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuaDoKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya0xvYWRDaGVja2VyOjpjcmVhdGUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05l
dHdvcmtSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUGluZ0xv
YWQuY3BwOgorICAgICAgICAoV2ViS2l0OjpQaW5nTG9hZDo6UGluZ0xvYWQpOgorCiAyMDE4LTA1
LTA0ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIFNo
aWZ0IHRvIGEgbG93ZXItbGV2ZWwgZnJhbWV3b3JrIGZvciBzaW1wbGlmeWluZyBVUkxzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcAppbmRleCA3ZGM4OTA3Y2YwYzc4ZTczZGMyYTE3YTZlMDFlMTUyOGFm
YjczOWExLi45YzYxYTk1ZGRmYTE2YzY4YzI4OWYxYTdlODZmOTg5NDg4ZmEwOTM1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAKQEAgLTMzODQsMTIgKzMzODQsMTIgQEAgdm9pZCBEb2N1bWVudDo6
cHJvY2Vzc0h0dHBFcXVpdihjb25zdCBTdHJpbmcmIGVxdWl2LCBjb25zdCBTdHJpbmcmIGNvbnRl
bnQsIGJvb2wKIAogICAgIGNhc2UgSFRUUEhlYWRlck5hbWU6OkNvbnRlbnRTZWN1cml0eVBvbGlj
eToKICAgICAgICAgaWYgKGlzSW5Eb2N1bWVudEhlYWQpCi0gICAgICAgICAgICBjb250ZW50U2Vj
dXJpdHlQb2xpY3koKS0+ZGlkUmVjZWl2ZUhlYWRlcihjb250ZW50LCBDb250ZW50U2VjdXJpdHlQ
b2xpY3lIZWFkZXJUeXBlOjpFbmZvcmNlLCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OlBvbGljeUZy
b206OkhUVFBFcXVpdk1ldGEpOworICAgICAgICAgICAgY29udGVudFNlY3VyaXR5UG9saWN5KCkt
PmRpZFJlY2VpdmVIZWFkZXIoY29udGVudCwgQ29udGVudFNlY3VyaXR5UG9saWN5SGVhZGVyVHlw
ZTo6RW5mb3JjZSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpQb2xpY3lGcm9tOjpIVFRQRXF1aXZN
ZXRhLCByZWZlcnJlcigpKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEhUVFBIZWFkZXJO
YW1lOjpYV2ViS2l0Q1NQOgogICAgICAgICBpZiAoaXNJbkRvY3VtZW50SGVhZCkKLSAgICAgICAg
ICAgIGNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5kaWRSZWNlaXZlSGVhZGVyKGNvbnRlbnQsIENv
bnRlbnRTZWN1cml0eVBvbGljeUhlYWRlclR5cGU6OlByZWZpeGVkRW5mb3JjZSwgQ29udGVudFNl
Y3VyaXR5UG9saWN5OjpQb2xpY3lGcm9tOjpIVFRQRXF1aXZNZXRhKTsKKyAgICAgICAgICAgIGNv
bnRlbnRTZWN1cml0eVBvbGljeSgpLT5kaWRSZWNlaXZlSGVhZGVyKGNvbnRlbnQsIENvbnRlbnRT
ZWN1cml0eVBvbGljeUhlYWRlclR5cGU6OlByZWZpeGVkRW5mb3JjZSwgQ29udGVudFNlY3VyaXR5
UG9saWN5OjpQb2xpY3lGcm9tOjpIVFRQRXF1aXZNZXRhLCByZWZlcnJlcigpKTsKICAgICAgICAg
YnJlYWs7CiAKICAgICBkZWZhdWx0OgpAQCAtNTUyMiw3ICs1NTIyLDcgQEAgdm9pZCBEb2N1bWVu
dDo6aW5pdFNlY3VyaXR5Q29udGV4dCgpCiAKICAgICBTdHJpbmcgb3ZlcnJpZGVDb250ZW50U2Vj
dXJpdHlQb2xpY3kgPSBtX2ZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKS5vdmVycmlkZUNvbnRlbnRT
ZWN1cml0eVBvbGljeSgpOwogICAgIGlmICghb3ZlcnJpZGVDb250ZW50U2VjdXJpdHlQb2xpY3ku
aXNOdWxsKCkpCi0gICAgICAgIGNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5kaWRSZWNlaXZlSGVh
ZGVyKG92ZXJyaWRlQ29udGVudFNlY3VyaXR5UG9saWN5LCBDb250ZW50U2VjdXJpdHlQb2xpY3lI
ZWFkZXJUeXBlOjpFbmZvcmNlLCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OlBvbGljeUZyb206OkFQ
SSk7CisgICAgICAgIGNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5kaWRSZWNlaXZlSGVhZGVyKG92
ZXJyaWRlQ29udGVudFNlY3VyaXR5UG9saWN5LCBDb250ZW50U2VjdXJpdHlQb2xpY3lIZWFkZXJU
eXBlOjpFbmZvcmNlLCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OlBvbGljeUZyb206OkFQSSwgcmVm
ZXJyZXIoKSk7CiAKICNpZiBVU0UoUVVJQ0tfTE9PSykKICAgICBpZiAoc2hvdWxkRW5mb3JjZVF1
aWNrTG9va1NhbmRib3goKSkKQEAgLTcyNzcsNyArNzI3Nyw3IEBAIHZvaWQgRG9jdW1lbnQ6OmFw
cGx5UXVpY2tMb29rU2FuZGJveCgpCiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4g
cXVpY2tMb29rQ1NQID0gbWFrZVN0cmluZygiZGVmYXVsdC1zcmMgIiwgUUxQcmV2aWV3UHJvdG9j
b2woKSwgIjogJ3Vuc2FmZS1pbmxpbmUnOyBiYXNlLXVyaSAnbm9uZSc7IHNhbmRib3ggYWxsb3ct
c2FtZS1vcmlnaW4gYWxsb3ctc2NyaXB0cyIpOwogICAgIFJFTEVBU0VfQVNTRVJUKGNvbnRlbnRT
ZWN1cml0eVBvbGljeSgpKTsKICAgICAvLyBUaGUgc2FuZGJveCBkaXJlY3RpdmUgaXMgb25seSBh
bGxvd2VkIGlmIHRoZSBwb2xpY3kgaXMgZnJvbSBhbiBIVFRQIGhlYWRlci4KLSAgICBjb250ZW50
U2VjdXJpdHlQb2xpY3koKS0+ZGlkUmVjZWl2ZUhlYWRlcihxdWlja0xvb2tDU1AsIENvbnRlbnRT
ZWN1cml0eVBvbGljeUhlYWRlclR5cGU6OkVuZm9yY2UsIENvbnRlbnRTZWN1cml0eVBvbGljeTo6
UG9saWN5RnJvbTo6SFRUUEhlYWRlcik7CisgICAgY29udGVudFNlY3VyaXR5UG9saWN5KCktPmRp
ZFJlY2VpdmVIZWFkZXIocXVpY2tMb29rQ1NQLCBDb250ZW50U2VjdXJpdHlQb2xpY3lIZWFkZXJU
eXBlOjpFbmZvcmNlLCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OlBvbGljeUZyb206OkhUVFBIZWFk
ZXIsIHJlZmVycmVyKCkpOwogCiAgICAgZGlzYWJsZVNhbmRib3hGbGFncyhTYW5kYm94TmF2aWdh
dGlvbik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmluZGV4IDRj
YzFiMTg0NDk3MTYwNDliNDEyZjNhYzYyM2FkMTEwYzkxZmEwMWYuLjhmNWVlYzI0YWY3ZGI0ZTUw
YWYwZDYwZTE4ZmY3MTI4NjA4NWIwZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Eb2N1bWVudExvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50
TG9hZGVyLmNwcApAQCAtNzY4LDcgKzc2OCw3IEBAIHZvaWQgRG9jdW1lbnRMb2FkZXI6OnJlc3Bv
bnNlUmVjZWl2ZWQoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIENvbXBsZXRpCiAg
ICAgYXV0byB1cmwgPSByZXNwb25zZS51cmwoKTsKIAogICAgIENvbnRlbnRTZWN1cml0eVBvbGlj
eSBjb250ZW50U2VjdXJpdHlQb2xpY3koU2VjdXJpdHlPcmlnaW46OmNyZWF0ZSh1cmwpLCBtX2Zy
YW1lKTsKLSAgICBjb250ZW50U2VjdXJpdHlQb2xpY3kuZGlkUmVjZWl2ZUhlYWRlcnMoQ29udGVu
dFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzKHJlc3BvbnNlKSk7CisgICAgY29udGVudFNl
Y3VyaXR5UG9saWN5LmRpZFJlY2VpdmVIZWFkZXJzKENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3Bv
bnNlSGVhZGVycyhyZXNwb25zZSksIG1fZnJhbWUtPmxvYWRlcigpLnJlZmVycmVyKCkpOwogICAg
IGlmICghY29udGVudFNlY3VyaXR5UG9saWN5LmFsbG93RnJhbWVBbmNlc3RvcnMoKm1fZnJhbWUs
IHVybCkpIHsKICAgICAgICAgc3RvcExvYWRpbmdBZnRlclhGcmFtZU9wdGlvbnNPckNvbnRlbnRT
ZWN1cml0eVBvbGljeURlbmllZChpZGVudGlmaWVyLCByZXNwb25zZSk7CiAgICAgICAgIHJldHVy
bjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IDYwNmEwZjE5YTg2NjUw
YjAwYzIzYzFjZjJiOWZkYThkODY3MzBlMTMuLjhlZjY4ZjIyMzdhZWU0MWE3MmUyYTc4OTA5Mjhi
YjQ2NzM3NGI5ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtNzMy
LDcgKzczMiw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmRpZEJlZ2luRG9jdW1lbnQoYm9vbCBkaXNw
YXRjaCkKICAgICAgICAgaWYgKCFkbnNQcmVmZXRjaENvbnRyb2wuaXNFbXB0eSgpKQogICAgICAg
ICAgICAgbV9mcmFtZS5kb2N1bWVudCgpLT5wYXJzZUROU1ByZWZldGNoQ29udHJvbEhlYWRlcihk
bnNQcmVmZXRjaENvbnRyb2wpOwogCi0gICAgICAgIG1fZnJhbWUuZG9jdW1lbnQoKS0+Y29udGVu
dFNlY3VyaXR5UG9saWN5KCktPmRpZFJlY2VpdmVIZWFkZXJzKENvbnRlbnRTZWN1cml0eVBvbGlj
eVJlc3BvbnNlSGVhZGVycyhtX2RvY3VtZW50TG9hZGVyLT5yZXNwb25zZSgpKSwgQ29udGVudFNl
Y3VyaXR5UG9saWN5OjpSZXBvcnRQYXJzaW5nRXJyb3JzOjpObyk7CisgICAgICAgIG1fZnJhbWUu
ZG9jdW1lbnQoKS0+Y29udGVudFNlY3VyaXR5UG9saWN5KCktPmRpZFJlY2VpdmVIZWFkZXJzKENv
bnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyhtX2RvY3VtZW50TG9hZGVyLT5yZXNw
b25zZSgpKSwgcmVmZXJyZXIoKSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpSZXBvcnRQYXJzaW5n
RXJyb3JzOjpObyk7CiAKICAgICAgICAgU3RyaW5nIGhlYWRlckNvbnRlbnRMYW5ndWFnZSA9IG1f
ZG9jdW1lbnRMb2FkZXItPnJlc3BvbnNlKCkuaHR0cEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1l
OjpDb250ZW50TGFuZ3VhZ2UpOwogICAgICAgICBpZiAoIWhlYWRlckNvbnRlbnRMYW5ndWFnZS5p
c0VtcHR5KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRT
ZWN1cml0eVBvbGljeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJp
dHlQb2xpY3kuY3BwCmluZGV4IGI1NzllOTZkMjI0NDZmZjgzYzJkNDhlZjM3YjlkNDVmNmNiYzg5
ZjcuLmIwM2MyZWIyMjM3ZjYzYWI2NjlhMDFmZTQ1ZDkyNzczNjkyYzY5MjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcApAQCAtMTEx
LDcgKzExMSw4IEBAIHZvaWQgQ29udGVudFNlY3VyaXR5UG9saWN5Ojpjb3B5U3RhdGVGcm9tKGNv
bnN0IENvbnRlbnRTZWN1cml0eVBvbGljeSogb3RoZXIpCiAgICAgICAgIHJldHVybjsKICAgICBB
U1NFUlQobV9wb2xpY2llcy5pc0VtcHR5KCkpOwogICAgIGZvciAoYXV0byYgcG9saWN5IDogb3Ro
ZXItPm1fcG9saWNpZXMpCi0gICAgICAgIGRpZFJlY2VpdmVIZWFkZXIocG9saWN5LT5oZWFkZXIo
KSwgcG9saWN5LT5oZWFkZXJUeXBlKCksIENvbnRlbnRTZWN1cml0eVBvbGljeTo6UG9saWN5RnJv
bTo6SW5oZXJpdGVkKTsKKyAgICAgICAgZGlkUmVjZWl2ZUhlYWRlcihwb2xpY3ktPmhlYWRlcigp
LCBwb2xpY3ktPmhlYWRlclR5cGUoKSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpQb2xpY3lGcm9t
OjpJbmhlcml0ZWQsIFN0cmluZyB7IH0pOworICAgIG1fcmVmZXJyZXIgPSBvdGhlci0+bV9yZWZl
cnJlcjsKIH0KIAogdm9pZCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmNvcHlVcGdyYWRlSW5zZWN1
cmVSZXF1ZXN0U3RhdGVGcm9tKGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeSYgb3RoZXIpCkBA
IC0xNzEsMTggKzE3MiwyMSBAQCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMg
Q29udGVudFNlY3VyaXR5UG9saWN5OjpyZXNwb25zZUhlYWRlcnMoKSBjbwogICAgIHJldHVybiAq
bV9jYWNoZWRSZXNwb25zZUhlYWRlcnM7CiB9CiAKLXZvaWQgQ29udGVudFNlY3VyaXR5UG9saWN5
OjpkaWRSZWNlaXZlSGVhZGVycyhjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhl
YWRlcnMmIGhlYWRlcnMsIFJlcG9ydFBhcnNpbmdFcnJvcnMgcmVwb3J0UGFyc2luZ0Vycm9ycykK
K3ZvaWQgQ29udGVudFNlY3VyaXR5UG9saWN5OjpkaWRSZWNlaXZlSGVhZGVycyhjb25zdCBDb250
ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmIGhlYWRlcnMsIFN0cmluZyYmIHJlZmVy
cmVyLCBSZXBvcnRQYXJzaW5nRXJyb3JzIHJlcG9ydFBhcnNpbmdFcnJvcnMpCiB7CiAgICAgU2V0
Rm9yU2NvcGU8Ym9vbD4gaXNSZXBvcnRpbmdFbmFibGVkKG1faXNSZXBvcnRpbmdFbmFibGVkLCBy
ZXBvcnRQYXJzaW5nRXJyb3JzID09IFJlcG9ydFBhcnNpbmdFcnJvcnM6Olllcyk7CiAgICAgZm9y
IChhdXRvJiBoZWFkZXIgOiBoZWFkZXJzLm1faGVhZGVycykKLSAgICAgICAgZGlkUmVjZWl2ZUhl
YWRlcihoZWFkZXIuZmlyc3QsIGhlYWRlci5zZWNvbmQsIENvbnRlbnRTZWN1cml0eVBvbGljeTo6
UG9saWN5RnJvbTo6SFRUUEhlYWRlcik7CisgICAgICAgIGRpZFJlY2VpdmVIZWFkZXIoaGVhZGVy
LmZpcnN0LCBoZWFkZXIuc2Vjb25kLCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OlBvbGljeUZyb206
OkhUVFBIZWFkZXIsIFN0cmluZyB7IH0pOworICAgIG1fcmVmZXJyZXIgPSBXVEZNb3ZlKHJlZmVy
cmVyKTsKIH0KIAotdm9pZCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmRpZFJlY2VpdmVIZWFkZXIo
Y29uc3QgU3RyaW5nJiBoZWFkZXIsIENvbnRlbnRTZWN1cml0eVBvbGljeUhlYWRlclR5cGUgdHlw
ZSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpQb2xpY3lGcm9tIHBvbGljeUZyb20pCit2b2lkIENv
bnRlbnRTZWN1cml0eVBvbGljeTo6ZGlkUmVjZWl2ZUhlYWRlcihjb25zdCBTdHJpbmcmIGhlYWRl
ciwgQ29udGVudFNlY3VyaXR5UG9saWN5SGVhZGVyVHlwZSB0eXBlLCBDb250ZW50U2VjdXJpdHlQ
b2xpY3k6OlBvbGljeUZyb20gcG9saWN5RnJvbSwgU3RyaW5nJiYgcmVmZXJyZXIpCiB7CiAgICAg
aWYgKG1faGFzQVBJUG9saWN5KQogICAgICAgICByZXR1cm47CiAKKyAgICBtX3JlZmVycmVyID0g
V1RGTW92ZShyZWZlcnJlcik7CisKICAgICBpZiAocG9saWN5RnJvbSA9PSBQb2xpY3lGcm9tOjpB
UEkpIHsKICAgICAgICAgQVNTRVJUKG1fcG9saWNpZXMuaXNFbXB0eSgpKTsKICAgICAgICAgbV9o
YXNBUElQb2xpY3kgPSB0cnVlOwpAQCAtNjY0LDcgKzY2OCw2IEBAIHZvaWQgQ29udGVudFNlY3Vy
aXR5UG9saWN5OjpyZXBvcnRWaW9sYXRpb24oY29uc3QgU3RyaW5nJiBlZmZlY3RpdmVWaW9sYXRl
ZERpcmVjCiAgICAgfQogICAgIFN0cmluZyB2aW9sYXRlZERpcmVjdGl2ZVRleHQgPSB2aW9sYXRl
ZERpcmVjdGl2ZTsKICAgICBTdHJpbmcgb3JpZ2luYWxQb2xpY3kgPSB2aW9sYXRlZERpcmVjdGl2
ZUxpc3QuaGVhZGVyKCk7Ci0gICAgU3RyaW5nIHJlZmVycmVyID0gZG9jdW1lbnQucmVmZXJyZXIo
KTsKICAgICBBU1NFUlQoZG9jdW1lbnQubG9hZGVyKCkpOwogICAgIC8vIEZJWE1FOiBJcyBpdCBw
b2xpY3kgdG8gbm90IHVzZSB0aGUgc3RhdHVzIGNvZGUgZm9yIEhUVFBTLCBvciBpcyB0aGF0IGEg
YnVnPwogICAgIHVuc2lnbmVkIHNob3J0IHN0YXR1c0NvZGUgPSBkb2N1bWVudC51cmwoKS5wcm90
b2NvbElzKCJodHRwIikgJiYgZG9jdW1lbnQubG9hZGVyKCkgPyBkb2N1bWVudC5sb2FkZXIoKS0+
cmVzcG9uc2UoKS5odHRwU3RhdHVzQ29kZSgpIDogMDsKQEAgLTY4Myw3ICs2ODYsNyBAQCB2b2lk
IENvbnRlbnRTZWN1cml0eVBvbGljeTo6cmVwb3J0VmlvbGF0aW9uKGNvbnN0IFN0cmluZyYgZWZm
ZWN0aXZlVmlvbGF0ZWREaXJlYwogICAgIC8vIDEuIERpc3BhdGNoIHZpb2xhdGlvbiBldmVudC4K
ICAgICBib29sIGNhbkJ1YmJsZSA9IGZhbHNlOwogICAgIGJvb2wgY2FuY2VsYWJsZSA9IGZhbHNl
OwotICAgIGRvY3VtZW50LmVucXVldWVEb2N1bWVudEV2ZW50KFNlY3VyaXR5UG9saWN5VmlvbGF0
aW9uRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc2VjdXJpdHlwb2xpY3l2aW9sYXRpb25FdmVu
dCwgY2FuQnViYmxlLCBjYW5jZWxhYmxlLCBkb2N1bWVudFVSSSwgcmVmZXJyZXIsIGJsb2NrZWRV
UkksIHZpb2xhdGVkRGlyZWN0aXZlVGV4dCwgZWZmZWN0aXZlVmlvbGF0ZWREaXJlY3RpdmUsIG9y
aWdpbmFsUG9saWN5LCBzb3VyY2VGaWxlLCBzdGF0dXNDb2RlLCBsaW5lTnVtYmVyLCBjb2x1bW5O
dW1iZXIpKTsKKyAgICBkb2N1bWVudC5lbnF1ZXVlRG9jdW1lbnRFdmVudChTZWN1cml0eVBvbGlj
eVZpb2xhdGlvbkV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnNlY3VyaXR5cG9saWN5dmlvbGF0
aW9uRXZlbnQsIGNhbkJ1YmJsZSwgY2FuY2VsYWJsZSwgZG9jdW1lbnRVUkksIG1fcmVmZXJyZXIs
IGJsb2NrZWRVUkksIHZpb2xhdGVkRGlyZWN0aXZlVGV4dCwgZWZmZWN0aXZlVmlvbGF0ZWREaXJl
Y3RpdmUsIG9yaWdpbmFsUG9saWN5LCBzb3VyY2VGaWxlLCBzdGF0dXNDb2RlLCBsaW5lTnVtYmVy
LCBjb2x1bW5OdW1iZXIpKTsKIAogICAgIC8vIDIuIFNlbmQgdmlvbGF0aW9uIHJlcG9ydCAoaWYg
YXBwbGljYWJsZSkuCiAgICAgYXV0byYgcmVwb3J0VVJJcyA9IHZpb2xhdGVkRGlyZWN0aXZlTGlz
dC5yZXBvcnRVUklzKCk7CkBAIC03MDIsNyArNzA1LDcgQEAgdm9pZCBDb250ZW50U2VjdXJpdHlQ
b2xpY3k6OnJlcG9ydFZpb2xhdGlvbihjb25zdCBTdHJpbmcmIGVmZmVjdGl2ZVZpb2xhdGVkRGly
ZWMKIAogICAgIGF1dG8gY3NwUmVwb3J0ID0gSlNPTjo6T2JqZWN0OjpjcmVhdGUoKTsKICAgICBj
c3BSZXBvcnQtPnNldFN0cmluZyhBU0NJSUxpdGVyYWwoImRvY3VtZW50LXVyaSIpLCBkb2N1bWVu
dFVSSSk7Ci0gICAgY3NwUmVwb3J0LT5zZXRTdHJpbmcoQVNDSUlMaXRlcmFsKCJyZWZlcnJlciIp
LCByZWZlcnJlcik7CisgICAgY3NwUmVwb3J0LT5zZXRTdHJpbmcoQVNDSUlMaXRlcmFsKCJyZWZl
cnJlciIpLCBtX3JlZmVycmVyKTsKICAgICBjc3BSZXBvcnQtPnNldFN0cmluZyhBU0NJSUxpdGVy
YWwoInZpb2xhdGVkLWRpcmVjdGl2ZSIpLCB2aW9sYXRlZERpcmVjdGl2ZVRleHQpOwogICAgIGNz
cFJlcG9ydC0+c2V0U3RyaW5nKEFTQ0lJTGl0ZXJhbCgiZWZmZWN0aXZlLWRpcmVjdGl2ZSIpLCBl
ZmZlY3RpdmVWaW9sYXRlZERpcmVjdGl2ZSk7CiAgICAgY3NwUmVwb3J0LT5zZXRTdHJpbmcoQVND
SUlMaXRlcmFsKCJvcmlnaW5hbC1wb2xpY3kiKSwgb3JpZ2luYWxQb2xpY3kpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3kuaAppbmRleCAyOTNkNzU2
YjE3YWI2ZjA2MTY5YzRmMzJkMDc4MDMyNWI0N2U4NGNmLi5kY2Y0ODRmYzJmZmVjYWM2ZWQ3YmQw
NmExMjMxMWM4NjhiZmNhMGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9D
b250ZW50U2VjdXJpdHlQb2xpY3kuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250
ZW50U2VjdXJpdHlQb2xpY3kuaApAQCAtODEsOCArODEsOCBAQCBwdWJsaWM6CiAgICAgfTsKICAg
ICBXRUJDT1JFX0VYUE9SVCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMgcmVz
cG9uc2VIZWFkZXJzKCkgY29uc3Q7CiAgICAgZW51bSBSZXBvcnRQYXJzaW5nRXJyb3JzIHsgTm8s
IFllcyB9OwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkUmVjZWl2ZUhlYWRlcnMoY29uc3Qg
Q29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiwgUmVwb3J0UGFyc2luZ0Vycm9y
cyA9IFJlcG9ydFBhcnNpbmdFcnJvcnM6Olllcyk7Ci0gICAgdm9pZCBkaWRSZWNlaXZlSGVhZGVy
KGNvbnN0IFN0cmluZyYsIENvbnRlbnRTZWN1cml0eVBvbGljeUhlYWRlclR5cGUsIENvbnRlbnRT
ZWN1cml0eVBvbGljeTo6UG9saWN5RnJvbSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaWRS
ZWNlaXZlSGVhZGVycyhjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMm
LCBTdHJpbmcmJiByZWZlcnJlciwgUmVwb3J0UGFyc2luZ0Vycm9ycyA9IFJlcG9ydFBhcnNpbmdF
cnJvcnM6Olllcyk7CisgICAgdm9pZCBkaWRSZWNlaXZlSGVhZGVyKGNvbnN0IFN0cmluZyYsIENv
bnRlbnRTZWN1cml0eVBvbGljeUhlYWRlclR5cGUsIENvbnRlbnRTZWN1cml0eVBvbGljeTo6UG9s
aWN5RnJvbSwgU3RyaW5nJiYgcmVmZXJyZXIpOwogCiAgICAgYm9vbCBhbGxvd1NjcmlwdFdpdGhO
b25jZShjb25zdCBTdHJpbmcmIG5vbmNlLCBib29sIG92ZXJyaWRlQ29udGVudFNlY3VyaXR5UG9s
aWN5ID0gZmFsc2UpIGNvbnN0OwogICAgIGJvb2wgYWxsb3dTdHlsZVdpdGhOb25jZShjb25zdCBT
dHJpbmcmIG5vbmNlLCBib29sIG92ZXJyaWRlQ29udGVudFNlY3VyaXR5UG9saWN5ID0gZmFsc2Up
IGNvbnN0OwpAQCAtMjExLDYgKzIxMSw3IEBAIHByaXZhdGU6CiAgICAgQ1NQRGlyZWN0aXZlTGlz
dFZlY3RvciBtX3BvbGljaWVzOwogICAgIFN0cmluZyBtX2xhc3RQb2xpY3lFdmFsRGlzYWJsZWRF
cnJvck1lc3NhZ2U7CiAgICAgU3RyaW5nIG1fbGFzdFBvbGljeVdlYkFzc2VtYmx5RGlzYWJsZWRF
cnJvck1lc3NhZ2U7CisgICAgU3RyaW5nIG1fcmVmZXJyZXI7CiAgICAgU2FuZGJveEZsYWdzIG1f
c2FuZGJveEZsYWdzOwogICAgIGJvb2wgbV9vdmVycmlkZUlubGluZVN0eWxlQWxsb3dlZCB7IGZh
bHNlIH07CiAgICAgYm9vbCBtX2lzUmVwb3J0aW5nRW5hYmxlZCB7IHRydWUgfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAKaW5kZXggY2UxMjViN2JlZmMy
ZjNkMzVjNDY0OGY0NDhjMzhlNDBiMjQyZjc1Ny4uZWIyYTdiNmUyMWRmMmQ4OWQyNDU1MTYwYjEx
OGU2OTA1ZDYyOTM5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJH
bG9iYWxTY29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxT
Y29wZS5jcHAKQEAgLTExOCw3ICsxMTgsNyBAQCBib29sIFdvcmtlckdsb2JhbFNjb3BlOjppc1Nl
Y3VyZUNvbnRleHQoKSBjb25zdAogCiB2b2lkIFdvcmtlckdsb2JhbFNjb3BlOjphcHBseUNvbnRl
bnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyhjb25zdCBDb250ZW50U2VjdXJpdHlQb2xp
Y3lSZXNwb25zZUhlYWRlcnMmIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycykK
IHsKLSAgICBjb250ZW50U2VjdXJpdHlQb2xpY3koKS0+ZGlkUmVjZWl2ZUhlYWRlcnMoY29udGVu
dFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzKTsKKyAgICBjb250ZW50U2VjdXJpdHlQb2xp
Y3koKS0+ZGlkUmVjZWl2ZUhlYWRlcnMoY29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFk
ZXJzLCBTdHJpbmcgeyB9KTsKIH0KIAogVVJMIFdvcmtlckdsb2JhbFNjb3BlOjpjb21wbGV0ZVVS
TChjb25zdCBTdHJpbmcmIHVybCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmNwcAppbmRleCBlOTNlYjdiNGFmOTg0ODhkMDU3
M2JmMWY4OGE0ZGIzNjdjNGNkNzc4Li4wMTkwY2QyODI2ZGI1NzQzMjdlMzYyZjFlNTQzNThhMDJm
NDgyYTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtM
b2FkQ2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
TG9hZENoZWNrZXIuY3BwCkBAIC00OCwxMyArNDgsMTQgQEAgc3RhdGljIGlubGluZSBib29sIGlz
U2FtZU9yaWdpbihjb25zdCBVUkwmIHVybCwgY29uc3QgU2VjdXJpdHlPcmlnaW4qIG9yaWdpbikK
ICAgICByZXR1cm4gdXJsLnByb3RvY29sSXNEYXRhKCkgfHwgdXJsLnByb3RvY29sSXNCbG9iKCkg
fHwgIW9yaWdpbiB8fCBvcmlnaW4tPmNhblJlcXVlc3QodXJsKTsKIH0KIAotTmV0d29ya0xvYWRD
aGVja2VyOjpOZXR3b3JrTG9hZENoZWNrZXIoRmV0Y2hPcHRpb25zJiYgb3B0aW9ucywgUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBIVFRQSGVhZGVyTWFwJiYgb3JpZ2luYWxSZXF1ZXN0SGVhZGVy
cywgVVJMJiYgdXJsLCBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+JiYgc291cmNlT3JpZ2luLCBQcmVm
bGlnaHRQb2xpY3kgcHJlZmxpZ2h0UG9saWN5KQorTmV0d29ya0xvYWRDaGVja2VyOjpOZXR3b3Jr
TG9hZENoZWNrZXIoRmV0Y2hPcHRpb25zJiYgb3B0aW9ucywgUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBIVFRQSGVhZGVyTWFwJiYgb3JpZ2luYWxSZXF1ZXN0SGVhZGVycywgVVJMJiYgdXJsLCBS
ZWZQdHI8U2VjdXJpdHlPcmlnaW4+JiYgc291cmNlT3JpZ2luLCBQcmVmbGlnaHRQb2xpY3kgcHJl
ZmxpZ2h0UG9saWN5LCBTdHJpbmcmJiByZWZlcnJlcikKICAgICA6IG1fb3B0aW9ucyhXVEZNb3Zl
KG9wdGlvbnMpKQogICAgICwgbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQogICAgICwgbV9vcmlnaW5h
bFJlcXVlc3RIZWFkZXJzKFdURk1vdmUob3JpZ2luYWxSZXF1ZXN0SGVhZGVycykpCiAgICAgLCBt
X3VybChXVEZNb3ZlKHVybCkpCiAgICAgLCBtX29yaWdpbihXVEZNb3ZlKHNvdXJjZU9yaWdpbikp
CiAgICAgLCBtX3ByZWZsaWdodFBvbGljeShwcmVmbGlnaHRQb2xpY3kpCisgICAgLCBtX3JlZmVy
cmVyKFdURk1vdmUocmVmZXJyZXIpKQogewogICAgIG1faXNTYW1lT3JpZ2luUmVxdWVzdCA9IGlz
U2FtZU9yaWdpbihtX3VybCwgbV9vcmlnaW4uZ2V0KCkpOwogICAgIHN3aXRjaCAob3B0aW9ucy5j
cmVkZW50aWFscykgewpAQCAtMzE0LDcgKzMxNSw3IEBAIENvbnRlbnRTZWN1cml0eVBvbGljeSog
TmV0d29ya0xvYWRDaGVja2VyOjpjb250ZW50U2VjdXJpdHlQb2xpY3koKSBjb25zdAogewogICAg
IGlmICghbV9jb250ZW50U2VjdXJpdHlQb2xpY3kgJiYgbV9jc3BSZXNwb25zZUhlYWRlcnMpIHsK
ICAgICAgICAgbV9jb250ZW50U2VjdXJpdHlQb2xpY3kgPSBzdGQ6Om1ha2VfdW5pcXVlPENvbnRl
bnRTZWN1cml0eVBvbGljeT4oKm1fb3JpZ2luKTsKLSAgICAgICAgbV9jb250ZW50U2VjdXJpdHlQ
b2xpY3ktPmRpZFJlY2VpdmVIZWFkZXJzKCptX2NzcFJlc3BvbnNlSGVhZGVycywgQ29udGVudFNl
Y3VyaXR5UG9saWN5OjpSZXBvcnRQYXJzaW5nRXJyb3JzOjpObyk7CisgICAgICAgIG1fY29udGVu
dFNlY3VyaXR5UG9saWN5LT5kaWRSZWNlaXZlSGVhZGVycygqbV9jc3BSZXNwb25zZUhlYWRlcnMs
IFN0cmluZyB7IG1fcmVmZXJyZXIgfSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpSZXBvcnRQYXJz
aW5nRXJyb3JzOjpObyk7CiAgICAgfQogICAgIHJldHVybiBtX2NvbnRlbnRTZWN1cml0eVBvbGlj
eS5nZXQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0xvYWRDaGVja2VyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtM
b2FkQ2hlY2tlci5oCmluZGV4IDY1NGEzOGYyYTliZmI0MGY0NTRmNjkxODBiYTkyYjVmNDZmNDQz
YzcuLjkxMGNmOThjMmQ1ODg3Nzk3YjBlMTMyYzJiODlhYzUyMzE3YjkxYmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmgKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuaApAQCAtNDIs
OSArNDIsOSBAQCBjbGFzcyBOZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXI7CiAKIGNsYXNzIE5l
dHdvcmtMb2FkQ2hlY2tlciA6IHB1YmxpYyBSZWZDb3VudGVkPE5ldHdvcmtMb2FkQ2hlY2tlcj4g
ewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8TmV0d29ya0xvYWRDaGVja2VyPiBjcmVhdGUoV2Vi
Q29yZTo6RmV0Y2hPcHRpb25zJiYgb3B0aW9ucywgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBX
ZWJDb3JlOjpIVFRQSGVhZGVyTWFwJiYgb3JpZ2luYWxIZWFkZXJzLCBXZWJDb3JlOjpVUkwmJiB1
cmwsIFJlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiBzb3VyY2VPcmlnaW4sIFdlYkNv
cmU6OlByZWZsaWdodFBvbGljeSBwcmVmbGlnaHRQb2xpY3kpCisgICAgc3RhdGljIFJlZjxOZXR3
b3JrTG9hZENoZWNrZXI+IGNyZWF0ZShXZWJDb3JlOjpGZXRjaE9wdGlvbnMmJiBvcHRpb25zLCBQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OkhUVFBIZWFkZXJNYXAmJiBvcmlnaW5h
bEhlYWRlcnMsIFdlYkNvcmU6OlVSTCYmIHVybCwgUmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luPiYmIHNvdXJjZU9yaWdpbiwgV2ViQ29yZTo6UHJlZmxpZ2h0UG9saWN5IHByZWZsaWdodFBv
bGljeSwgU3RyaW5nJiYgcmVmZXJyZXIpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBOZXR3b3JrTG9hZENoZWNrZXIgeyBXVEZNb3ZlKG9wdGlvbnMpLCBzZXNzaW9uSUQsIFdU
Rk1vdmUob3JpZ2luYWxIZWFkZXJzKSwgV1RGTW92ZSh1cmwpLCBXVEZNb3ZlKHNvdXJjZU9yaWdp
biksIHByZWZsaWdodFBvbGljeSB9KTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTmV0
d29ya0xvYWRDaGVja2VyIHsgV1RGTW92ZShvcHRpb25zKSwgc2Vzc2lvbklELCBXVEZNb3ZlKG9y
aWdpbmFsSGVhZGVycyksIFdURk1vdmUodXJsKSwgV1RGTW92ZShzb3VyY2VPcmlnaW4pLCBwcmVm
bGlnaHRQb2xpY3ksIFdURk1vdmUocmVmZXJyZXIpIH0pOwogICAgIH0KICAgICB+TmV0d29ya0xv
YWRDaGVja2VyKCk7CiAKQEAgLTY5LDcgKzY5LDcgQEAgcHVibGljOgogICAgIFdlYkNvcmU6OlN0
b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5KCkgY29uc3QgeyBy
ZXR1cm4gbV9zdG9yZWRDcmVkZW50aWFsc1BvbGljeTsgfQogCiBwcml2YXRlOgotICAgIE5ldHdv
cmtMb2FkQ2hlY2tlcihXZWJDb3JlOjpGZXRjaE9wdGlvbnMmJiwgUEFMOjpTZXNzaW9uSUQsIFdl
YkNvcmU6OkhUVFBIZWFkZXJNYXAmJiwgV2ViQ29yZTo6VVJMJiYsIFJlZlB0cjxXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbj4mJiwgV2ViQ29yZTo6UHJlZmxpZ2h0UG9saWN5KTsKKyAgICBOZXR3b3Jr
TG9hZENoZWNrZXIoV2ViQ29yZTo6RmV0Y2hPcHRpb25zJiYsIFBBTDo6U2Vzc2lvbklELCBXZWJD
b3JlOjpIVFRQSGVhZGVyTWFwJiYsIFdlYkNvcmU6OlVSTCYmLCBSZWZQdHI8V2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW4+JiYsIFdlYkNvcmU6OlByZWZsaWdodFBvbGljeSwgU3RyaW5nJiYgcmVmZXJy
ZXIpOwogCiAgICAgV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5KiBjb250ZW50U2VjdXJp
dHlQb2xpY3koKSBjb25zdDsKICAgICBib29sIGlzQ2hlY2tpbmcoKSBjb25zdCB7IHJldHVybiAh
IW1fY29yc1ByZWZsaWdodENoZWNrZXI7IH0KQEAgLTExMSw2ICsxMTEsNyBAQCBwcml2YXRlOgog
ICAgIFdlYkNvcmU6OlVSTCBtX3ByZXZpb3VzVVJMOwogICAgIFdlYkNvcmU6OlByZWZsaWdodFBv
bGljeSBtX3ByZWZsaWdodFBvbGljeTsKICAgICBTdHJpbmcgbV9kbnRIZWFkZXJWYWx1ZTsKKyAg
ICBTdHJpbmcgbV9yZWZlcnJlcjsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAppbmRleCA5ZDc4YTQ0ZjU2
MTJlYzZiMzJhYTc0YTgyZWQwMzU2NWQ4MmQwYzZiLi4xZjc4NDAzNzJlOWE2ZTNiMTA2N2JjMDU0
ZDA0OGMxYjZjMjU0YWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0xMTEsNyArMTExLDcgQEAgTmV0d29y
a1Jlc291cmNlTG9hZGVyOjpOZXR3b3JrUmVzb3VyY2VMb2FkZXIoTmV0d29ya1Jlc291cmNlTG9h
ZFBhcmFtZXRlcnMmJiBwYXIKICAgICB9CiAKICAgICBpZiAoc3luY2hyb25vdXNSZXBseSB8fCBw
YXJhbWV0ZXJzLnNob3VsZFJlc3RyaWN0SFRUUFJlc3BvbnNlQWNjZXNzKSB7Ci0gICAgICAgIG1f
bmV0d29ya0xvYWRDaGVja2VyID0gTmV0d29ya0xvYWRDaGVja2VyOjpjcmVhdGUoRmV0Y2hPcHRp
b25zIHsgbV9wYXJhbWV0ZXJzLm9wdGlvbnMgfSwgbV9wYXJhbWV0ZXJzLnNlc3Npb25JRCwgSFRU
UEhlYWRlck1hcCB7IG1fcGFyYW1ldGVycy5vcmlnaW5hbFJlcXVlc3RIZWFkZXJzIH0sIFVSTCB7
IG1fcGFyYW1ldGVycy5yZXF1ZXN0LnVybCgpIH0sIG1fcGFyYW1ldGVycy5zb3VyY2VPcmlnaW4u
Y29weVJlZigpLCBtX3BhcmFtZXRlcnMucHJlZmxpZ2h0UG9saWN5KTsKKyAgICAgICAgbV9uZXR3
b3JrTG9hZENoZWNrZXIgPSBOZXR3b3JrTG9hZENoZWNrZXI6OmNyZWF0ZShGZXRjaE9wdGlvbnMg
eyBtX3BhcmFtZXRlcnMub3B0aW9ucyB9LCBtX3BhcmFtZXRlcnMuc2Vzc2lvbklELCBIVFRQSGVh
ZGVyTWFwIHsgbV9wYXJhbWV0ZXJzLm9yaWdpbmFsUmVxdWVzdEhlYWRlcnMgfSwgVVJMIHsgbV9w
YXJhbWV0ZXJzLnJlcXVlc3QudXJsKCkgfSwgbV9wYXJhbWV0ZXJzLnNvdXJjZU9yaWdpbi5jb3B5
UmVmKCksIG1fcGFyYW1ldGVycy5wcmVmbGlnaHRQb2xpY3ksIG9yaWdpbmFsUmVxdWVzdCgpLmh0
dHBSZWZlcnJlcigpKTsKICAgICAgICAgaWYgKG1fcGFyYW1ldGVycy5jc3BSZXNwb25zZUhlYWRl
cnMpCiAgICAgICAgICAgICBtX25ldHdvcmtMb2FkQ2hlY2tlci0+c2V0Q1NQUmVzcG9uc2VIZWFk
ZXJzKENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyB7IG1fcGFyYW1ldGVycy5j
c3BSZXNwb25zZUhlYWRlcnMudmFsdWUoKSB9KTsKICNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJ
T05TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9QaW5nTG9hZC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1BpbmdMb2FkLmNwcAppbmRleCBjZDg2
NDAxYjI0MDZkMTM0MjYwYWU1MGZjODZmNzAwNTIwZDg0OWY1Li4zNWM3YzAzNThlOGNhZmZjNmU5
YjYyNGNlYjJmYzlkNDMwMDljNTUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1BpbmdMb2FkLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1Bp
bmdMb2FkLmNwcApAQCAtNDIsNyArNDIsNyBAQCBQaW5nTG9hZDo6UGluZ0xvYWQoTmV0d29ya1Jl
c291cmNlTG9hZFBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzLCBXVEY6OkNvbXBsZXRpb25IYQogICAg
IDogbV9wYXJhbWV0ZXJzKFdURk1vdmUocGFyYW1ldGVycykpCiAgICAgLCBtX2NvbXBsZXRpb25I
YW5kbGVyKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKQogICAgICwgbV90aW1lb3V0VGltZXIo
KnRoaXMsICZQaW5nTG9hZDo6dGltZW91dFRpbWVyRmlyZWQpCi0gICAgLCBtX25ldHdvcmtMb2Fk
Q2hlY2tlcihOZXR3b3JrTG9hZENoZWNrZXI6OmNyZWF0ZShGZXRjaE9wdGlvbnMgeyBtX3BhcmFt
ZXRlcnMub3B0aW9uc30sIG1fcGFyYW1ldGVycy5zZXNzaW9uSUQsIFdURk1vdmUobV9wYXJhbWV0
ZXJzLm9yaWdpbmFsUmVxdWVzdEhlYWRlcnMpLCBVUkwgeyBtX3BhcmFtZXRlcnMucmVxdWVzdC51
cmwoKSB9LCBtX3BhcmFtZXRlcnMuc291cmNlT3JpZ2luLmNvcHlSZWYoKSwgbV9wYXJhbWV0ZXJz
LnByZWZsaWdodFBvbGljeSkpCisgICAgLCBtX25ldHdvcmtMb2FkQ2hlY2tlcihOZXR3b3JrTG9h
ZENoZWNrZXI6OmNyZWF0ZShGZXRjaE9wdGlvbnMgeyBtX3BhcmFtZXRlcnMub3B0aW9uc30sIG1f
cGFyYW1ldGVycy5zZXNzaW9uSUQsIFdURk1vdmUobV9wYXJhbWV0ZXJzLm9yaWdpbmFsUmVxdWVz
dEhlYWRlcnMpLCBVUkwgeyBtX3BhcmFtZXRlcnMucmVxdWVzdC51cmwoKSB9LCBtX3BhcmFtZXRl
cnMuc291cmNlT3JpZ2luLmNvcHlSZWYoKSwgbV9wYXJhbWV0ZXJzLnByZWZsaWdodFBvbGljeSwg
bV9wYXJhbWV0ZXJzLnJlcXVlc3QuaHR0cFJlZmVycmVyKCkpKQogewogCiAgICAgaWYgKG1fcGFy
YW1ldGVycy5jc3BSZXNwb25zZUhlYWRlcnMpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>