<?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>231305</bug_id>
          
          <creation_ts>2021-10-06 10:23:19 -0700</creation_ts>
          <short_desc>Add the ability to dispatch messages to multiple receiver types in IPC::StreamServerConnection</short_desc>
          <delta_ts>2021-10-07 08:17:30 -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>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>230860</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>cdumez</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1801162</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-10-06 10:23:19 -0700</bug_when>
    <thetext>(More WIP towards streaming display lists in the GPU process)

This will allow both RemoteRenderingBackend and RemoteImageBuffer (or an object owned by the RemoteImageBuffer) to simultaneously act as streaming IPC message recipients for a given stream server connection.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801232</commentid>
    <comment_count>1</comment_count>
      <attachid>440403</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-10-06 11:53:45 -0700</bug_when>
    <thetext>Created attachment 440403
For EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801600</commentid>
    <comment_count>2</comment_count>
      <attachid>440403</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-10-07 07:55:29 -0700</bug_when>
    <thetext>Comment on attachment 440403
For EWS

Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801608</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-07 08:16:58 -0700</bug_when>
    <thetext>Committed r283713 (242639@main): &lt;https://commits.webkit.org/242639@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 440403.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801610</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-07 08:17:30 -0700</bug_when>
    <thetext>&lt;rdar://problem/83981702&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440403</attachid>
            <date>2021-10-06 11:53:45 -0700</date>
            <delta_ts>2021-10-07 08:16:59 -0700</delta_ts>
            <desc>For EWS</desc>
            <filename>bug-231305-20211006115344.patch</filename>
            <type>text/plain</type>
            <size>27560</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNTY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGVmODcyOGFiNTJiOTEyYzE2
M2U3YTJlMTQ4ZjRkYWNkYjUwMWM4MzUuLmQxN2RjM2NkNTVhNzZkMDZmMGZjZDFhNjZhOTg2Y2Fh
MTI0YzVkNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDcgQEAKKzIwMjEtMTAtMDYgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHRoZSBhYmlsaXR5
IHRvIGRpc3BhdGNoIG1lc3NhZ2VzIHRvIG11bHRpcGxlIHJlY2VpdmVyIHR5cGVzIGluIElQQzo6
U3RyZWFtU2VydmVyQ29ubmVjdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjMxMzA1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgSW4gcHJlcGFyYXRpb24gZm9yIHVzaW5nIHN0cmVhbWFibGUgSVBDIGZv
ciBkaXNwbGF5IGxpc3QgcmVuZGVyaW5nIGluIHRoZSBHUFUgcHJvY2VzcyAoaS5lLiAyRCBjYW52
YXMgYW5kIERPTQorICAgICAgICByZW5kZXJpbmcpLCByZWZhY3RvciBTdHJlYW1TZXJ2ZXJDb25u
ZWN0aW9uIHN1Y2ggdGhhdCBpdCBpcyBjYXBhYmxlIG9mIGRpc3BhdGNoaW5nIHN0cmVhbSBtZXNz
YWdlcyB0byBnZW5lcmljCisgICAgICAgIFN0cmVhbU1lc3NhZ2VSZWNlaXZlcnMuIFRoaXMgaGFz
IHRoZSBkaXNhZHZhbnRhZ2Ugb2YgcGVyZm9ybWluZyBhIHZ0YWJsZSBsb29rdXAgd2l0aCBlYWNo
IG1lc3NhZ2UgZGlzcGF0Y2gsIGJ1dAorICAgICAgICBJIGRpZCBub3QgbWVhc3VyZSB0aGlzIHRv
IGJlIGEgc2lnbmlmaWNhbnQgcGVyZm9ybWFuY2UgcmVncmVzc2lvbiBvbiBhbnkgb2YgdGhlIGNh
bnZhcyBzdWJ0ZXN0cyBpbiBNb3Rpb25NYXJrLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFw
aGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUdyYXBoaWNzQ29udGV4dEdMOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTCk6CisgICAgICAgICog
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5oOgorCisgICAgICAg
IE1ha2UgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wgc3ViY2xhc3MgU3RyZWFtTWVzc2FnZVJlY2Vp
dmVyLgorCisgICAgICAgICogUGxhdGZvcm0vSVBDL1N0cmVhbU1lc3NhZ2VSZWNlaXZlci5oOiBB
ZGRlZC4KKyAgICAgICAgKElQQzo6U3RyZWFtTWVzc2FnZVJlY2VpdmVyOjp+U3RyZWFtTWVzc2Fn
ZVJlY2VpdmVyKToKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvU3RyZWFtU2VydmVyQ29ubmVjdGlv
bi5jcHA6CisgICAgICAgIChJUEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rpb246OnN0YXJ0UmVjZWl2
aW5nTWVzc2FnZXMpOgorICAgICAgICAoSVBDOjpTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uOjpzdG9w
UmVjZWl2aW5nTWVzc2FnZXMpOgorICAgICAgICAoSVBDOjpTdHJlYW1TZXJ2ZXJDb25uZWN0aW9u
OjpkaXNwYXRjaFN0cmVhbU1lc3NhZ2VzKToKKyAgICAgICAgKElQQzo6U3RyZWFtU2VydmVyQ29u
bmVjdGlvbjo6cHJvY2Vzc1NldFN0cmVhbURlc3RpbmF0aW9uSUQpOgorICAgICAgICAoSVBDOjpT
dHJlYW1TZXJ2ZXJDb25uZWN0aW9uOjpkaXNwYXRjaFN0cmVhbU1lc3NhZ2UpOgorICAgICAgICAo
SVBDOjpTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uOjpkaXNwYXRjaE91dE9mU3RyZWFtTWVzc2FnZSk6
CisKKyAgICAgICAgTm93IHRoYXQgdGhlc2UgbWV0aG9kcyBhcmUgbm8gbG9uZ2VyIHRlbXBsYXRl
ZCwgd2UgY2FuIG1vdmUgdGhlaXIgaW1wbGVtZW50YXRpb25zIGZyb20gdGhlIGhlYWRlciB0byB0
aGUKKyAgICAgICAgaW1wbGVtZW50YXRpb24gZmlsZS4KKworICAgICAgICAqIFBsYXRmb3JtL0lQ
Qy9TdHJlYW1TZXJ2ZXJDb25uZWN0aW9uLmg6CisKKyAgICAgICAgUmVtb3ZlIHRoZSB0ZW1wbGF0
ZSBhcmd1bWVudCBmcm9tIFN0cmVhbVNlcnZlckNvbm5lY3Rpb24sIGFuZCBpbnN0ZWFkIG1ha2Ug
dGhpcyBzdGFydCBhbmQgc3RvcCByZWNlaXZpbmcKKyAgICAgICAgbWVzc2FnZXMgZm9yIGdlbmVy
aWMgU3RyZWFtTWVzc2FnZVJlY2VpdmVyIG9iamVjdHMuCisKKyAgICAgICAgKElQQzo6U3RyZWFt
U2VydmVyQ29ubmVjdGlvbjxSZWNlaXZlcj46OnN0YXJ0UmVjZWl2aW5nTWVzc2FnZXMpOiBEZWxl
dGVkLgorICAgICAgICAoSVBDOjpTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uPFJlY2VpdmVyPjo6c3Rv
cFJlY2VpdmluZ01lc3NhZ2VzKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6U3RyZWFtU2VydmVy
Q29ubmVjdGlvbjxSZWNlaXZlcj46OmRpc3BhdGNoU3RyZWFtTWVzc2FnZXMpOiBEZWxldGVkLgor
ICAgICAgICAoSVBDOjpTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uPFJlY2VpdmVyPjo6cHJvY2Vzc1Nl
dFN0cmVhbURlc3RpbmF0aW9uSUQpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpTdHJlYW1TZXJ2
ZXJDb25uZWN0aW9uPFJlY2VpdmVyPjo6ZGlzcGF0Y2hTdHJlYW1NZXNzYWdlKTogRGVsZXRlZC4K
KyAgICAgICAgKElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlvbjxSZWNlaXZlcj46OmRpc3BhdGNo
T3V0T2ZTdHJlYW1NZXNzYWdlKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKwogMjAyMS0xMC0wNiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hz
aWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYSBjb25maWd1cmFibGUgd2FrZSB1cCBtZXNz
YWdlIGh5c3RlcmVzaXMgdG8gSVBDOjpTdHJlYW1DbGllbnRDb25uZWN0aW9uCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0
R0wuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNz
Q29udGV4dEdMLmNwcAppbmRleCBmMmE1ZTAyZDNjNzcwMGI3OWNmN2QzMWUwMzY5YmVhMzMzNTY3
YjNkLi4xN2Q4ZDNhOTViNTM3YWY5OTE2ZjZjMzZkN2ExMWU1NDYyNDZkNDAzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0
R0wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFw
aGljc0NvbnRleHRHTC5jcHAKQEAgLTY0LDcgKzY0LDcgQEAgUmVmPFJlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMPiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6Y3JlYXRlKEdQVUNvbm5lY3Rpb25Ub1dl
YlAKIAogUmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMKEdQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MsIEdyYXBo
aWNzQ29udGV4dEdMSWRlbnRpZmllciBncmFwaGljc0NvbnRleHRHTElkZW50aWZpZXIsIFJlbW90
ZVJlbmRlcmluZ0JhY2tlbmQmIHJlbmRlcmluZ0JhY2tlbmQsIElQQzo6U3RyZWFtQ29ubmVjdGlv
bkJ1ZmZlciYmIHN0cmVhbSkKICAgICA6IG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcyhtYWtl
V2Vha1B0cihncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKSkKLSAgICAsIG1fc3RyZWFtQ29ubmVj
dGlvbihJUEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rpb248UmVtb3RlR3JhcGhpY3NDb250ZXh0R0w+
OjpjcmVhdGUoZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jb25uZWN0aW9uKCksIFdURk1vdmUo
c3RyZWFtKSwgcmVtb3RlR3JhcGhpY3NDb250ZXh0R0xTdHJlYW1Xb3JrUXVldWUoKSkpCisgICAg
LCBtX3N0cmVhbUNvbm5lY3Rpb24oSVBDOjpTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uOjpjcmVhdGUo
Z3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jb25uZWN0aW9uKCksIFdURk1vdmUoc3RyZWFtKSwg
cmVtb3RlR3JhcGhpY3NDb250ZXh0R0xTdHJlYW1Xb3JrUXVldWUoKSkpCiAgICAgLCBtX2dyYXBo
aWNzQ29udGV4dEdMSWRlbnRpZmllcihncmFwaGljc0NvbnRleHRHTElkZW50aWZpZXIpCiAgICAg
LCBtX3JlbmRlcmluZ0JhY2tlbmQocmVuZGVyaW5nQmFja2VuZCkKICAgICAsIG1fcmVuZGVyaW5n
UmVzb3VyY2VzUmVxdWVzdChTY29wZWRXZWJHTFJlbmRlcmluZ1Jlc291cmNlc1JlcXVlc3Q6OmFj
cXVpcmUoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9S
ZW1vdGVHcmFwaGljc0NvbnRleHRHTC5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmgKaW5kZXggMTNlNDdmYmI5Yzg5NzBmNWQzMDQ1
YTZmZjdlMGM4N2NmMjM3NTBkMS4uZjhlZWExYjRiMzBmZGVmNTg2ZjhhYTYwMGJkYzBhNGJhMWQ5
YzcxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90
ZUdyYXBoaWNzQ29udGV4dEdMLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmgKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRl
ICJHcmFwaGljc0NvbnRleHRHTElkZW50aWZpZXIuaCIKICNpbmNsdWRlICJSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kLmgiCiAjaW5jbHVkZSAiU2NvcGVkV2ViR0xSZW5kZXJpbmdSZXNvdXJjZXNSZXF1
ZXN0LmgiCisjaW5jbHVkZSAiU3RyZWFtTWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiU3Ry
ZWFtU2VydmVyQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRXh0ZW5zaW9uc0dMLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5oPgpAQCAtNTgsMTUg
KzU5LDE0IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogLy8gR1BVIHByb2Nlc3Mgc2lkZSBpbXBsZW1l
bnRhdGlvbiBvZiB0aGF0IHJlY2VpdmVzIG1lc3NhZ2VzIGFib3V0IEdyYXBoaWNzQ29udGV4dEdM
IGNhbGxzCiAvLyBhbmQgaXNzdWVzIHJlYWwgR3JhcGhpY3NDb250ZXh0R0wgY2FsbHMgYmFzZWQg
b24gdGhlIHJlY2VpdmVkIG1lc3NhZ2VzLgogLy8gVGhlIGltcGxlbWVudGF0aW9uIGlzIGxhcmdl
bHkgZ2VuZXJhdGVkIGJ5IHJ1bm5pbmcgVG9vbHMvU2NyaXB0cy9nZW5lcmF0ZS1ncHVwLXdlYmds
LgotY2xhc3MgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNv
dW50ZWQ8UmVtb3RlR3JhcGhpY3NDb250ZXh0R0w+LCBwcml2YXRlIFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dEdMOjpDbGllbnQgeworY2xhc3MgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wgOiBwcml2
YXRlIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMOjpDbGllbnQsIHB1YmxpYyBJUEM6OlN0cmVh
bU1lc3NhZ2VSZWNlaXZlciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6
CiAgICAgc3RhdGljIFJlZjxSZW1vdGVHcmFwaGljc0NvbnRleHRHTD4gY3JlYXRlKEdQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MmLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMm
JiwgR3JhcGhpY3NDb250ZXh0R0xJZGVudGlmaWVyLCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kJiwg
SVBDOjpTdHJlYW1Db25uZWN0aW9uQnVmZmVyJiYpOwogICAgIH5SZW1vdGVHcmFwaGljc0NvbnRl
eHRHTCgpIG92ZXJyaWRlOwogICAgIHZvaWQgc3RvcExpc3RlbmluZ0ZvcklQQyhSZWY8UmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0w+JiYgcmVmRnJvbUNvbm5lY3Rpb24pOwogCi0gICAgLy8gSVBDOjpT
dHJlYW1TZXJ2ZXJDb25uZWN0aW9uPFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMPiB0ZW1wbGF0ZSBj
b250cmFjdCBpbXBsZW1lbnRhdGlvbi4KLSAgICB2b2lkIGRpZFJlY2VpdmVTdHJlYW1NZXNzYWdl
KElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlvbkJhc2UmLCBJUEM6OkRlY29kZXImKTsKKyAgICB2
b2lkIGRpZFJlY2VpdmVTdHJlYW1NZXNzYWdlKElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlvbkJh
c2UmLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKICNpZiBQTEFURk9STShNQUMpCiAgICAgdm9pZCBk
aXNwbGF5V2FzUmVjb25maWd1cmVkKCk7CiAjZW5kaWYKQEAgLTEwOCw3ICsxMDgsNyBAQCBwcm90
ZWN0ZWQ6CiAgICAgdm9pZCBwYWludFBpeGVsQnVmZmVyVG9JbWFnZUJ1ZmZlcihzdGQ6Om9wdGlv
bmFsPFdlYkNvcmU6OlBpeGVsQnVmZmVyPiYmLCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAKICAgICBXZWFrUHRyPEdQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M+IG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzczsKLSAg
ICBSZWZQdHI8SVBDOjpTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uPFJlbW90ZUdyYXBoaWNzQ29udGV4
dEdMPj4gbV9zdHJlYW1Db25uZWN0aW9uOworICAgIFJlZlB0cjxJUEM6OlN0cmVhbVNlcnZlckNv
bm5lY3Rpb24+IG1fc3RyZWFtQ29ubmVjdGlvbjsKICAgICBSZWZQdHI8V2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0w+IG1fY29udGV4dCBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fc3RyZWFt
VGhyZWFkKTsKICAgICBHcmFwaGljc0NvbnRleHRHTElkZW50aWZpZXIgbV9ncmFwaGljc0NvbnRl
eHRHTElkZW50aWZpZXI7CiAgICAgUmVmPFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ+IG1fcmVuZGVy
aW5nQmFja2VuZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL1N0cmVh
bU1lc3NhZ2VSZWNlaXZlci5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU3RyZWFtTWVz
c2FnZVJlY2VpdmVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGU2NDhiZTk4ODUyM2FiNDA1YTEwY2U3NTEzMWNk
ZTg1MGUzNjlhNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBD
L1N0cmVhbU1lc3NhZ2VSZWNlaXZlci5oCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgorCitu
YW1lc3BhY2UgSVBDIHsKKworY2xhc3MgU3RyZWFtU2VydmVyQ29ubmVjdGlvbkJhc2U7CitjbGFz
cyBEZWNvZGVyOworCitjbGFzcyBTdHJlYW1NZXNzYWdlUmVjZWl2ZXIgOiBwdWJsaWMgVGhyZWFk
U2FmZVJlZkNvdW50ZWQ8U3RyZWFtTWVzc2FnZVJlY2VpdmVyPiB7CitwdWJsaWM6CisgICAgdmly
dHVhbCB+U3RyZWFtTWVzc2FnZVJlY2VpdmVyKCkgeyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlk
UmVjZWl2ZVN0cmVhbU1lc3NhZ2UoU3RyZWFtU2VydmVyQ29ubmVjdGlvbkJhc2UmLCBEZWNvZGVy
JikgPSAwOworfTsKKworfSAvLyBuYW1lc3BhY2UgSVBDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtL0lQQy9TdHJlYW1TZXJ2ZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm0vSVBDL1N0cmVhbVNlcnZlckNvbm5lY3Rpb24uY3BwCmluZGV4IDY5NzEyMDk1
ZDk2ZGQ3MzAyNTkyNTQ1ODI4Y2U1YzIyMTVmZTExNzMuLmFmZGZkYjAwZjNkOWE4NTdkZDA5NDU5
ZWFjYjJmMWEzYzFhYjQzYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBD
L1N0cmVhbVNlcnZlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0v
SVBDL1N0cmVhbVNlcnZlckNvbm5lY3Rpb24uY3BwCkBAIC0xNDEsNCArMTQxLDE0MiBAQCBzaXpl
X3QgU3RyZWFtU2VydmVyQ29ubmVjdGlvbkJhc2U6OmNsYW1wZWRMaW1pdChTZXJ2ZXJMaW1pdCBz
ZXJ2ZXJMaW1pdCkgY29uc3QKICAgICByZXR1cm4gc3RkOjptaW4obGltaXQsIGRhdGFTaXplKCkg
LSAxKTsKIH0KIAordm9pZCBTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uOjpzdGFydFJlY2VpdmluZ01l
c3NhZ2VzKFN0cmVhbU1lc3NhZ2VSZWNlaXZlciYgcmVjZWl2ZXIsIFJlY2VpdmVyTmFtZSByZWNl
aXZlck5hbWUsIHVpbnQ2NF90IGRlc3RpbmF0aW9uSUQpCit7CisgICAgeworICAgICAgICBhdXRv
IGtleSA9IHN0ZDo6bWFrZV9wYWlyKHN0YXRpY19jYXN0PHVpbnQ4X3Q+KHJlY2VpdmVyTmFtZSks
IGRlc3RpbmF0aW9uSUQpOworICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV9yZWNlaXZlcnNMb2Nr
IH07CisgICAgICAgIEFTU0VSVCghbV9yZWNlaXZlcnMuY29udGFpbnMoa2V5KSk7CisgICAgICAg
IG1fcmVjZWl2ZXJzLmFkZChrZXksIHJlY2VpdmVyKTsKKyAgICB9CisgICAgU3RyZWFtU2VydmVy
Q29ubmVjdGlvbkJhc2U6OnN0YXJ0UmVjZWl2aW5nTWVzc2FnZXNJbXBsKHJlY2VpdmVyTmFtZSwg
ZGVzdGluYXRpb25JRCk7Cit9CisKK3ZvaWQgU3RyZWFtU2VydmVyQ29ubmVjdGlvbjo6c3RvcFJl
Y2VpdmluZ01lc3NhZ2VzKFJlY2VpdmVyTmFtZSByZWNlaXZlck5hbWUsIHVpbnQ2NF90IGRlc3Rp
bmF0aW9uSUQpCit7CisgICAgU3RyZWFtU2VydmVyQ29ubmVjdGlvbkJhc2U6OnN0b3BSZWNlaXZp
bmdNZXNzYWdlc0ltcGwocmVjZWl2ZXJOYW1lLCBkZXN0aW5hdGlvbklEKTsKKyAgICBhdXRvIGtl
eSA9IHN0ZDo6bWFrZV9wYWlyKHN0YXRpY19jYXN0PHVpbnQ4X3Q+KHJlY2VpdmVyTmFtZSksIGRl
c3RpbmF0aW9uSUQpOworICAgIExvY2tlciBsb2NrZXIgeyBtX3JlY2VpdmVyc0xvY2sgfTsKKyAg
ICBBU1NFUlQobV9yZWNlaXZlcnMuY29udGFpbnMoa2V5KSk7CisgICAgbV9yZWNlaXZlcnMucmVt
b3ZlKGtleSk7Cit9CisKK1N0cmVhbVNlcnZlckNvbm5lY3Rpb25CYXNlOjpEaXNwYXRjaFJlc3Vs
dCBTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uOjpkaXNwYXRjaFN0cmVhbU1lc3NhZ2VzKHNpemVfdCBt
ZXNzYWdlTGltaXQpCit7CisgICAgUmVmUHRyPFN0cmVhbU1lc3NhZ2VSZWNlaXZlcj4gY3VycmVu
dFJlY2VpdmVyOworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgV1RGOjppc1ZhbGlkKFJlY2VpdmVy
TmFtZSkuCisgICAgdWludDhfdCBjdXJyZW50UmVjZWl2ZXJOYW1lID0gc3RhdGljX2Nhc3Q8dWlu
dDhfdD4oUmVjZWl2ZXJOYW1lOjpJbnZhbGlkKTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgbWVzc2FnZUxpbWl0OyArK2kpIHsKKyAgICAgICAgYXV0byBzcGFuID0gdHJ5QWNxdWlyZSgp
OworICAgICAgICBpZiAoIXNwYW4pCisgICAgICAgICAgICByZXR1cm4gRGlzcGF0Y2hSZXN1bHQ6
Okhhc05vTWVzc2FnZXM7CisgICAgICAgIElQQzo6RGVjb2RlciBkZWNvZGVyIHsgc3Bhbi0+ZGF0
YSwgc3Bhbi0+c2l6ZSwgbV9jdXJyZW50RGVzdGluYXRpb25JRCB9OworICAgICAgICBpZiAoIWRl
Y29kZXIuaXNWYWxpZCgpKSB7CisgICAgICAgICAgICBtX2Nvbm5lY3Rpb24tPmRpc3BhdGNoRGlk
UmVjZWl2ZUludmFsaWRNZXNzYWdlKGRlY29kZXIubWVzc2FnZU5hbWUoKSk7CisgICAgICAgICAg
ICByZXR1cm4gRGlzcGF0Y2hSZXN1bHQ6Okhhc05vTWVzc2FnZXM7CisgICAgICAgIH0KKyAgICAg
ICAgaWYgKGRlY29kZXIubWVzc2FnZU5hbWUoKSA9PSBNZXNzYWdlTmFtZTo6U2V0U3RyZWFtRGVz
dGluYXRpb25JRCkgeworICAgICAgICAgICAgaWYgKCFwcm9jZXNzU2V0U3RyZWFtRGVzdGluYXRp
b25JRChXVEZNb3ZlKGRlY29kZXIpLCBjdXJyZW50UmVjZWl2ZXIpKQorICAgICAgICAgICAgICAg
IHJldHVybiBEaXNwYXRjaFJlc3VsdDo6SGFzTm9NZXNzYWdlczsKKyAgICAgICAgICAgIGNvbnRp
bnVlOworICAgICAgICB9CisgICAgICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VOYW1lKCkgPT0gTWVz
c2FnZU5hbWU6OlByb2Nlc3NPdXRPZlN0cmVhbU1lc3NhZ2UpIHsKKyAgICAgICAgICAgIGlmICgh
ZGlzcGF0Y2hPdXRPZlN0cmVhbU1lc3NhZ2UoV1RGTW92ZShkZWNvZGVyKSkpCisgICAgICAgICAg
ICAgICAgcmV0dXJuIERpc3BhdGNoUmVzdWx0OjpIYXNOb01lc3NhZ2VzOworICAgICAgICAgICAg
Y29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGN1cnJlbnRSZWNlaXZlck5hbWUgIT0g
c3RhdGljX2Nhc3Q8dWludDhfdD4oZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkpKSB7Cisg
ICAgICAgICAgICBjdXJyZW50UmVjZWl2ZXJOYW1lID0gc3RhdGljX2Nhc3Q8dWludDhfdD4oZGVj
b2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkpOworICAgICAgICAgICAgY3VycmVudFJlY2VpdmVy
ID0gbnVsbHB0cjsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWN1cnJlbnRSZWNlaXZlcikgewor
ICAgICAgICAgICAgYXV0byBrZXkgPSBzdGQ6Om1ha2VfcGFpcihzdGF0aWNfY2FzdDx1aW50OF90
PihjdXJyZW50UmVjZWl2ZXJOYW1lKSwgbV9jdXJyZW50RGVzdGluYXRpb25JRCk7CisgICAgICAg
ICAgICBpZiAoIVJlY2VpdmVyc01hcDo6aXNWYWxpZEtleShrZXkpKSB7CisgICAgICAgICAgICAg
ICAgbV9jb25uZWN0aW9uLT5kaXNwYXRjaERpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShkZWNvZGVy
Lm1lc3NhZ2VOYW1lKCkpOworICAgICAgICAgICAgICAgIHJldHVybiBEaXNwYXRjaFJlc3VsdDo6
SGFzTm9NZXNzYWdlczsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIExvY2tlciBsb2NrZXIg
eyBtX3JlY2VpdmVyc0xvY2sgfTsKKyAgICAgICAgICAgIGN1cnJlbnRSZWNlaXZlciA9IG1fcmVj
ZWl2ZXJzLmdldChrZXkpOworICAgICAgICB9CisgICAgICAgIGlmICghY3VycmVudFJlY2VpdmVy
KSB7CisgICAgICAgICAgICAvLyBWYWxpZCBzY2VuYXJpbyBpcyB3aGVuIHJlY2VpdmVyIGhhcyBi
ZWVuIHJlbW92ZWQsIGJ1dCB0aGVyZSBhcmUgbWVzc2FnZXMgZm9yIGl0IGluIHRoZSBidWZmZXIu
CisgICAgICAgICAgICAvLyBGSVhNRTogU2luY2Ugd2UgZG8gbm90IGhhdmUgYSByZWNlaXZlciwg
d2UgZG9uJ3Qga25vdyBob3cgdG8gZGVjb2RlIHRoZSBtZXNzYWdlLgorICAgICAgICAgICAgLy8g
VGhpcyBtZWFucyB3ZSBtdXN0IHRpbWVvdXQgZXZlcnkgcmVjZWl2ZXIgaW4gdGhlIHN0cmVhbSBj
b25uZWN0aW9uLgorICAgICAgICAgICAgLy8gQ3VycmVudGx5IHdlIGFzc2VydCB0aGF0IHRoZSBy
ZWNlaXZlcnMgYXJlIGVtcHR5LCBhcyB3ZSBvbmx5IGhhdmUgdXAgdG8gb25lIHJlY2VpdmVyIGlu
CisgICAgICAgICAgICAvLyBhIHN0cmVhbSBjb25uZWN0aW9uIHVudGlsIHBvc3NpYmlsaXR5IG9m
IHNraXBwaW5nIGlzIGltcGxlbWVudGVkIHByb3Blcmx5LgorICAgICAgICAgICAgTG9ja2VyIGxv
Y2tlciB7IG1fcmVjZWl2ZXJzTG9jayB9OworICAgICAgICAgICAgQVNTRVJUKG1fcmVjZWl2ZXJz
LmlzRW1wdHkoKSk7CisgICAgICAgICAgICByZXR1cm4gRGlzcGF0Y2hSZXN1bHQ6Okhhc05vTWVz
c2FnZXM7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFkaXNwYXRjaFN0cmVhbU1lc3NhZ2UoV1RG
TW92ZShkZWNvZGVyKSwgKmN1cnJlbnRSZWNlaXZlcikpCisgICAgICAgICAgICByZXR1cm4gRGlz
cGF0Y2hSZXN1bHQ6Okhhc05vTWVzc2FnZXM7CisgICAgfQorICAgIHJldHVybiBEaXNwYXRjaFJl
c3VsdDo6SGFzTW9yZU1lc3NhZ2VzOworfQorCitib29sIFN0cmVhbVNlcnZlckNvbm5lY3Rpb246
OnByb2Nlc3NTZXRTdHJlYW1EZXN0aW5hdGlvbklEKERlY29kZXImJiBkZWNvZGVyLCBSZWZQdHI8
U3RyZWFtTWVzc2FnZVJlY2VpdmVyPiYgY3VycmVudFJlY2VpdmVyKQoreworICAgIHVpbnQ2NF90
IGRlc3RpbmF0aW9uSUQgPSAwOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoZGVzdGluYXRpb25J
RCkpIHsKKyAgICAgICAgbV9jb25uZWN0aW9uLT5kaXNwYXRjaERpZFJlY2VpdmVJbnZhbGlkTWVz
c2FnZShkZWNvZGVyLm1lc3NhZ2VOYW1lKCkpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
fQorICAgIGlmIChtX2N1cnJlbnREZXN0aW5hdGlvbklEICE9IGRlc3RpbmF0aW9uSUQpIHsKKyAg
ICAgICAgbV9jdXJyZW50RGVzdGluYXRpb25JRCA9IGRlc3RpbmF0aW9uSUQ7CisgICAgICAgIGN1
cnJlbnRSZWNlaXZlciA9IG51bGxwdHI7CisgICAgfQorICAgIHJlbGVhc2UoZGVjb2Rlci5jdXJy
ZW50QnVmZmVyUG9zaXRpb24oKSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgU3RyZWFt
U2VydmVyQ29ubmVjdGlvbjo6ZGlzcGF0Y2hTdHJlYW1NZXNzYWdlKERlY29kZXImJiBkZWNvZGVy
LCBTdHJlYW1NZXNzYWdlUmVjZWl2ZXImIHJlY2VpdmVyKQoreworICAgIEFTU0VSVCghbV9pc0Rp
c3BhdGNoaW5nU3RyZWFtTWVzc2FnZSk7CisgICAgbV9pc0Rpc3BhdGNoaW5nU3RyZWFtTWVzc2Fn
ZSA9IHRydWU7CisgICAgcmVjZWl2ZXIuZGlkUmVjZWl2ZVN0cmVhbU1lc3NhZ2UoKnRoaXMsIGRl
Y29kZXIpOworICAgIG1faXNEaXNwYXRjaGluZ1N0cmVhbU1lc3NhZ2UgPSBmYWxzZTsKKyAgICBp
ZiAoIWRlY29kZXIuaXNWYWxpZCgpKSB7CisgICAgICAgIG1fY29ubmVjdGlvbi0+ZGlzcGF0Y2hE
aWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoZGVjb2Rlci5tZXNzYWdlTmFtZSgpKTsKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIH0KKyAgICBpZiAoZGVjb2Rlci5pc1N5bmNNZXNzYWdlKCkpCisg
ICAgICAgIHJlbGVhc2VBbGwoKTsKKyAgICBlbHNlCisgICAgICAgIHJlbGVhc2UoZGVjb2Rlci5j
dXJyZW50QnVmZmVyUG9zaXRpb24oKSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgU3Ry
ZWFtU2VydmVyQ29ubmVjdGlvbjo6ZGlzcGF0Y2hPdXRPZlN0cmVhbU1lc3NhZ2UoRGVjb2RlciYm
IGRlY29kZXIpCit7CisgICAgc3RkOjp1bmlxdWVfcHRyPERlY29kZXI+IG1lc3NhZ2U7CisgICAg
eworICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV9vdXRPZlN0cmVhbU1lc3NhZ2VzTG9jayB9Owor
ICAgICAgICBpZiAobV9vdXRPZlN0cmVhbU1lc3NhZ2VzLmlzRW1wdHkoKSkKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgbWVzc2FnZSA9IG1fb3V0T2ZTdHJlYW1NZXNzYWdlcy50
YWtlRmlyc3QoKTsKKyAgICB9CisgICAgaWYgKCFtZXNzYWdlKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICBSZWZQdHI8U3RyZWFtTWVzc2FnZVJlY2VpdmVyPiByZWNlaXZlcjsKKyAgICB7
CisgICAgICAgIGF1dG8ga2V5ID0gc3RkOjptYWtlX3BhaXIoc3RhdGljX2Nhc3Q8dWludDhfdD4o
bWVzc2FnZS0+bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSwgbWVzc2FnZS0+ZGVzdGluYXRpb25JRCgp
KTsKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IG1fcmVjZWl2ZXJzTG9jayB9OworICAgICAgICBy
ZWNlaXZlciA9IG1fcmVjZWl2ZXJzLmdldChrZXkpOworICAgIH0KKyAgICBpZiAocmVjZWl2ZXIp
IHsKKyAgICAgICAgcmVjZWl2ZXItPmRpZFJlY2VpdmVTdHJlYW1NZXNzYWdlKCp0aGlzLCAqbWVz
c2FnZSk7CisgICAgICAgIGlmICghbWVzc2FnZS0+aXNWYWxpZCgpKSB7CisgICAgICAgICAgICBt
X2Nvbm5lY3Rpb24tPmRpc3BhdGNoRGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKG1lc3NhZ2UtPm1l
c3NhZ2VOYW1lKCkpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAg
fQorICAgIC8vIElmIHJlY2VpdmVyIGRvZXMgbm90IGV4aXN0IGlmIGl0IGhhcyBiZWVuIHJlbW92
ZWQgYnV0IG1lc3NhZ2VzIGFyZSBzdGlsbCBwZW5kaW5nIHRvIGJlCisgICAgLy8gcHJvY2Vzc2Vk
LiBJdCdzIG9rIHRvIHNraXAgc3VjaCBtZXNzYWdlcy4KKyAgICAvLyBGSVhNRTogTm90ZSwgY29y
cmVzcG9uZGluZyBza2lwIGlzIG5vdCBwb3NzaWJsZSBhdCB0aGUgbW9tZW50IGZvciBzdHJlYW0g
bWVzc2FnZXMuCisgICAgcmVsZWFzZShkZWNvZGVyLmN1cnJlbnRCdWZmZXJQb3NpdGlvbigpKTsK
KyAgICByZXR1cm4gdHJ1ZTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0
Zm9ybS9JUEMvU3RyZWFtU2VydmVyQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9y
bS9JUEMvU3RyZWFtU2VydmVyQ29ubmVjdGlvbi5oCmluZGV4IGM5YzliYjc1OWRhM2M4Yzc4MTc2
N2FiZDNkYTNmNmRlMDhjMjVlZTUuLjNjNGFlMGQ4Yzc3YjI5OWY0N2YwN2E0YTc1YjBhZjVhYzk0
MjI4YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL1N0cmVhbVNlcnZl
ckNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9TdHJlYW1TZXJ2
ZXJDb25uZWN0aW9uLmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJNZXNzYWdlTmFtZXMu
aCIKICNpbmNsdWRlICJTdHJlYW1Db25uZWN0aW9uQnVmZmVyLmgiCiAjaW5jbHVkZSAiU3RyZWFt
Q29ubmVjdGlvbkVuY29kZXIuaCIKKyNpbmNsdWRlICJTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuaCIK
ICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KICNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUg
PHd0Zi9UaHJlYWRpbmcuaD4KQEAgLTEzMSw3ICsxMzIsNiBAQCB2b2lkIFN0cmVhbVNlcnZlckNv
bm5lY3Rpb25CYXNlOjpzZW5kU3luY1JlcGx5KENvbm5lY3Rpb246OlN5bmNSZXF1ZXN0SUQgc3lu
Y1JlcQogLy8gICB2b2lkIGRpZFJlY2VpdmVTdHJlYW1NZXNzYWdlKFN0cmVhbVNlcnZlckNvbm5l
Y3Rpb25CYXNlJiwgRGVjb2RlciYpOwogLy8KIC8vIFRoZSBTdHJlYW1TZXJ2ZXJDb25uZWN0aW9u
IGRvZXMgbm90IHRydXN0IHRoZSBTdHJlYW1DbGllbnRDb25uZWN0aW9uLgotdGVtcGxhdGU8dHlw
ZW5hbWUgUmVjZWl2ZXI+CiBjbGFzcyBTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uIGZpbmFsIDogcHVi
bGljIFN0cmVhbVNlcnZlckNvbm5lY3Rpb25CYXNlIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVm
PFN0cmVhbVNlcnZlckNvbm5lY3Rpb24+IGNyZWF0ZShDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBT
dHJlYW1Db25uZWN0aW9uQnVmZmVyJiYgc3RyZWFtQnVmZmVyLCBTdHJlYW1Db25uZWN0aW9uV29y
a1F1ZXVlJiB3b3JrUXVldWUpCkBAIC0xNDAsNyArMTQwLDcgQEAgcHVibGljOgogICAgIH0KICAg
ICB+U3RyZWFtU2VydmVyQ29ubmVjdGlvbigpIGZpbmFsID0gZGVmYXVsdDsKIAotICAgIHZvaWQg
c3RhcnRSZWNlaXZpbmdNZXNzYWdlcyhSZWNlaXZlciYsIFJlY2VpdmVyTmFtZSwgdWludDY0X3Qg
ZGVzdGluYXRpb25JRCk7CisgICAgdm9pZCBzdGFydFJlY2VpdmluZ01lc3NhZ2VzKFN0cmVhbU1l
c3NhZ2VSZWNlaXZlciYsIFJlY2VpdmVyTmFtZSwgdWludDY0X3QgZGVzdGluYXRpb25JRCk7CiAg
ICAgLy8gU3RvcHMgdGhlIG1lc3NhZ2UgcmVjZWlwdC4gTm90ZTogYWxyZWFkeSByZWNlaXZlZCBt
ZXNzYWdlcyBtaWdodCBzdGlsbCBiZSBkZWxpdmVyZWQuCiAgICAgdm9pZCBzdG9wUmVjZWl2aW5n
TWVzc2FnZXMoUmVjZWl2ZXJOYW1lLCB1aW50NjRfdCBkZXN0aW5hdGlvbklEKTsKIApAQCAtMTUy
LDE1NyArMTUyLDEzIEBAIHByaXZhdGU6CiAgICAgICAgIDogU3RyZWFtU2VydmVyQ29ubmVjdGlv
bkJhc2UoY29ubmVjdGlvbiwgV1RGTW92ZShzdHJlYW1CdWZmZXIpLCB3b3JrUXVldWUpCiAgICAg
ewogICAgIH0KLSAgICBib29sIHByb2Nlc3NTZXRTdHJlYW1EZXN0aW5hdGlvbklEKERlY29kZXIm
JiwgUmVmUHRyPFJlY2VpdmVyPiYgY3VycmVudFJlY2VpdmVyKTsKLSAgICBib29sIGRpc3BhdGNo
U3RyZWFtTWVzc2FnZShEZWNvZGVyJiYsIFJlY2VpdmVyJik7CisgICAgYm9vbCBwcm9jZXNzU2V0
U3RyZWFtRGVzdGluYXRpb25JRChEZWNvZGVyJiYsIFJlZlB0cjxTdHJlYW1NZXNzYWdlUmVjZWl2
ZXI+JiBjdXJyZW50UmVjZWl2ZXIpOworICAgIGJvb2wgZGlzcGF0Y2hTdHJlYW1NZXNzYWdlKERl
Y29kZXImJiwgU3RyZWFtTWVzc2FnZVJlY2VpdmVyJik7CiAgICAgYm9vbCBkaXNwYXRjaE91dE9m
U3RyZWFtTWVzc2FnZShEZWNvZGVyJiYpOwogICAgIExvY2sgbV9yZWNlaXZlcnNMb2NrOwotICAg
IHVzaW5nIFJlY2VpdmVyc01hcCA9IEhhc2hNYXA8c3RkOjpwYWlyPHVpbnQ4X3QsIHVpbnQ2NF90
PiwgUmVmPFJlY2VpdmVyPj47CisgICAgdXNpbmcgUmVjZWl2ZXJzTWFwID0gSGFzaE1hcDxzdGQ6
OnBhaXI8dWludDhfdCwgdWludDY0X3Q+LCBSZWY8U3RyZWFtTWVzc2FnZVJlY2VpdmVyPj47CiAg
ICAgUmVjZWl2ZXJzTWFwIG1fcmVjZWl2ZXJzIFdURl9HVUFSREVEX0JZX0xPQ0sobV9yZWNlaXZl
cnNMb2NrKTsKICAgICB1aW50NjRfdCBtX2N1cnJlbnREZXN0aW5hdGlvbklEIHsgMCB9OwogfTsK
IAotdGVtcGxhdGU8dHlwZW5hbWUgUmVjZWl2ZXI+Ci12b2lkIFN0cmVhbVNlcnZlckNvbm5lY3Rp
b248UmVjZWl2ZXI+OjpzdGFydFJlY2VpdmluZ01lc3NhZ2VzKFJlY2VpdmVyJiByZWNlaXZlciwg
UmVjZWl2ZXJOYW1lIHJlY2VpdmVyTmFtZSwgdWludDY0X3QgZGVzdGluYXRpb25JRCkKLXsKLSAg
ICB7Ci0gICAgICAgIGF1dG8ga2V5ID0gc3RkOjptYWtlX3BhaXIoc3RhdGljX2Nhc3Q8dWludDhf
dD4ocmVjZWl2ZXJOYW1lKSwgZGVzdGluYXRpb25JRCk7Ci0gICAgICAgIExvY2tlciBsb2NrZXIg
eyBtX3JlY2VpdmVyc0xvY2sgfTsKLSAgICAgICAgQVNTRVJUKCFtX3JlY2VpdmVycy5jb250YWlu
cyhrZXkpKTsKLSAgICAgICAgbV9yZWNlaXZlcnMuYWRkKGtleSwgcmVjZWl2ZXIpOwotICAgIH0K
LSAgICBTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uQmFzZTo6c3RhcnRSZWNlaXZpbmdNZXNzYWdlc0lt
cGwocmVjZWl2ZXJOYW1lLCBkZXN0aW5hdGlvbklEKTsKLX0KLQotdGVtcGxhdGU8dHlwZW5hbWUg
UmVjZWl2ZXI+Ci12b2lkIFN0cmVhbVNlcnZlckNvbm5lY3Rpb248UmVjZWl2ZXI+OjpzdG9wUmVj
ZWl2aW5nTWVzc2FnZXMoUmVjZWl2ZXJOYW1lIHJlY2VpdmVyTmFtZSwgdWludDY0X3QgZGVzdGlu
YXRpb25JRCkKLXsKLSAgICBTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uQmFzZTo6c3RvcFJlY2Vpdmlu
Z01lc3NhZ2VzSW1wbChyZWNlaXZlck5hbWUsIGRlc3RpbmF0aW9uSUQpOwotICAgIGF1dG8ga2V5
ID0gc3RkOjptYWtlX3BhaXIoc3RhdGljX2Nhc3Q8dWludDhfdD4ocmVjZWl2ZXJOYW1lKSwgZGVz
dGluYXRpb25JRCk7Ci0gICAgTG9ja2VyIGxvY2tlciB7IG1fcmVjZWl2ZXJzTG9jayB9OwotICAg
IEFTU0VSVChtX3JlY2VpdmVycy5jb250YWlucyhrZXkpKTsKLSAgICBtX3JlY2VpdmVycy5yZW1v
dmUoa2V5KTsKLX0KLQotdGVtcGxhdGU8dHlwZW5hbWUgUmVjZWl2ZXI+Ci1TdHJlYW1TZXJ2ZXJD
b25uZWN0aW9uQmFzZTo6RGlzcGF0Y2hSZXN1bHQgU3RyZWFtU2VydmVyQ29ubmVjdGlvbjxSZWNl
aXZlcj46OmRpc3BhdGNoU3RyZWFtTWVzc2FnZXMoc2l6ZV90IG1lc3NhZ2VMaW1pdCkKLXsKLSAg
ICBSZWZQdHI8UmVjZWl2ZXI+IGN1cnJlbnRSZWNlaXZlcjsKLSAgICAvLyBGSVhNRTogSW1wbGVt
ZW50IFdURjo6aXNWYWxpZChSZWNlaXZlck5hbWUpLgotICAgIHVpbnQ4X3QgY3VycmVudFJlY2Vp
dmVyTmFtZSA9IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KFJlY2VpdmVyTmFtZTo6SW52YWxpZCk7Ci0K
LSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1lc3NhZ2VMaW1pdDsgKytpKSB7Ci0gICAgICAg
IGF1dG8gc3BhbiA9IHRyeUFjcXVpcmUoKTsKLSAgICAgICAgaWYgKCFzcGFuKQotICAgICAgICAg
ICAgcmV0dXJuIERpc3BhdGNoUmVzdWx0OjpIYXNOb01lc3NhZ2VzOwotICAgICAgICBJUEM6OkRl
Y29kZXIgZGVjb2RlciB7IHNwYW4tPmRhdGEsIHNwYW4tPnNpemUsIG1fY3VycmVudERlc3RpbmF0
aW9uSUQgfTsKLSAgICAgICAgaWYgKCFkZWNvZGVyLmlzVmFsaWQoKSkgewotICAgICAgICAgICAg
bV9jb25uZWN0aW9uLT5kaXNwYXRjaERpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShkZWNvZGVyLm1l
c3NhZ2VOYW1lKCkpOwotICAgICAgICAgICAgcmV0dXJuIERpc3BhdGNoUmVzdWx0OjpIYXNOb01l
c3NhZ2VzOwotICAgICAgICB9Ci0gICAgICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VOYW1lKCkgPT0g
TWVzc2FnZU5hbWU6OlNldFN0cmVhbURlc3RpbmF0aW9uSUQpIHsKLSAgICAgICAgICAgIGlmICgh
cHJvY2Vzc1NldFN0cmVhbURlc3RpbmF0aW9uSUQoV1RGTW92ZShkZWNvZGVyKSwgY3VycmVudFJl
Y2VpdmVyKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gRGlzcGF0Y2hSZXN1bHQ6Okhhc05vTWVz
c2FnZXM7Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgfQotICAgICAgICBpZiAoZGVj
b2Rlci5tZXNzYWdlTmFtZSgpID09IE1lc3NhZ2VOYW1lOjpQcm9jZXNzT3V0T2ZTdHJlYW1NZXNz
YWdlKSB7Ci0gICAgICAgICAgICBpZiAoIWRpc3BhdGNoT3V0T2ZTdHJlYW1NZXNzYWdlKFdURk1v
dmUoZGVjb2RlcikpKQotICAgICAgICAgICAgICAgIHJldHVybiBEaXNwYXRjaFJlc3VsdDo6SGFz
Tm9NZXNzYWdlczsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0gICAgICAgIGlm
IChjdXJyZW50UmVjZWl2ZXJOYW1lICE9IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KGRlY29kZXIubWVz
c2FnZVJlY2VpdmVyTmFtZSgpKSkgewotICAgICAgICAgICAgY3VycmVudFJlY2VpdmVyTmFtZSA9
IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKLSAg
ICAgICAgICAgIGN1cnJlbnRSZWNlaXZlciA9IG51bGxwdHI7Ci0gICAgICAgIH0KLSAgICAgICAg
aWYgKCFjdXJyZW50UmVjZWl2ZXIpIHsKLSAgICAgICAgICAgIGF1dG8ga2V5ID0gc3RkOjptYWtl
X3BhaXIoc3RhdGljX2Nhc3Q8dWludDhfdD4oY3VycmVudFJlY2VpdmVyTmFtZSksIG1fY3VycmVu
dERlc3RpbmF0aW9uSUQpOwotICAgICAgICAgICAgaWYgKCFSZWNlaXZlcnNNYXA6OmlzVmFsaWRL
ZXkoa2V5KSkgewotICAgICAgICAgICAgICAgIG1fY29ubmVjdGlvbi0+ZGlzcGF0Y2hEaWRSZWNl
aXZlSW52YWxpZE1lc3NhZ2UoZGVjb2Rlci5tZXNzYWdlTmFtZSgpKTsKLSAgICAgICAgICAgICAg
ICByZXR1cm4gRGlzcGF0Y2hSZXN1bHQ6Okhhc05vTWVzc2FnZXM7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV9yZWNlaXZlcnNMb2NrIH07Ci0gICAgICAgICAg
ICBjdXJyZW50UmVjZWl2ZXIgPSBtX3JlY2VpdmVycy5nZXQoa2V5KTsKLSAgICAgICAgfQotICAg
ICAgICBpZiAoIWN1cnJlbnRSZWNlaXZlcikgewotICAgICAgICAgICAgLy8gVmFsaWQgc2NlbmFy
aW8gaXMgd2hlbiByZWNlaXZlciBoYXMgYmVlbiByZW1vdmVkLCBidXQgdGhlcmUgYXJlIG1lc3Nh
Z2VzIGZvciBpdCBpbiB0aGUgYnVmZmVyLgotICAgICAgICAgICAgLy8gRklYTUU6IFNpbmNlIHdl
IGRvIG5vdCBoYXZlIGEgcmVjZWl2ZXIsIHdlIGRvbid0IGtub3cgaG93IHRvIGRlY29kZSB0aGUg
bWVzc2FnZS4KLSAgICAgICAgICAgIC8vIFRoaXMgbWVhbnMgd2UgbXVzdCB0aW1lb3V0IGV2ZXJ5
IHJlY2VpdmVyIGluIHRoZSBzdHJlYW0gY29ubmVjdGlvbi4KLSAgICAgICAgICAgIC8vIEN1cnJl
bnRseSB3ZSBhc3NlcnQgdGhhdCB0aGUgcmVjZWl2ZXJzIGFyZSBlbXB0eSwgYXMgd2Ugb25seSBo
YXZlIHVwIHRvIG9uZSByZWNlaXZlciBpbgotICAgICAgICAgICAgLy8gYSBzdHJlYW0gY29ubmVj
dGlvbiB1bnRpbCBwb3NzaWJpbGl0eSBvZiBza2lwcGluZyBpcyBpbXBsZW1lbnRlZCBwcm9wZXJs
eS4KLSAgICAgICAgICAgIExvY2tlciBsb2NrZXIgeyBtX3JlY2VpdmVyc0xvY2sgfTsKLSAgICAg
ICAgICAgIEFTU0VSVChtX3JlY2VpdmVycy5pc0VtcHR5KCkpOwotICAgICAgICAgICAgcmV0dXJu
IERpc3BhdGNoUmVzdWx0OjpIYXNOb01lc3NhZ2VzOwotICAgICAgICB9Ci0gICAgICAgIGlmICgh
ZGlzcGF0Y2hTdHJlYW1NZXNzYWdlKFdURk1vdmUoZGVjb2RlciksICpjdXJyZW50UmVjZWl2ZXIp
KQotICAgICAgICAgICAgcmV0dXJuIERpc3BhdGNoUmVzdWx0OjpIYXNOb01lc3NhZ2VzOwotICAg
IH0KLSAgICByZXR1cm4gRGlzcGF0Y2hSZXN1bHQ6Okhhc01vcmVNZXNzYWdlczsKLX0KLQotdGVt
cGxhdGU8dHlwZW5hbWUgUmVjZWl2ZXI+Ci1ib29sIFN0cmVhbVNlcnZlckNvbm5lY3Rpb248UmVj
ZWl2ZXI+Ojpwcm9jZXNzU2V0U3RyZWFtRGVzdGluYXRpb25JRChEZWNvZGVyJiYgZGVjb2Rlciwg
UmVmUHRyPFJlY2VpdmVyPiYgY3VycmVudFJlY2VpdmVyKQotewotICAgIHVpbnQ2NF90IGRlc3Rp
bmF0aW9uSUQgPSAwOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUoZGVzdGluYXRpb25JRCkpIHsK
LSAgICAgICAgbV9jb25uZWN0aW9uLT5kaXNwYXRjaERpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShk
ZWNvZGVyLm1lc3NhZ2VOYW1lKCkpOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAg
IGlmIChtX2N1cnJlbnREZXN0aW5hdGlvbklEICE9IGRlc3RpbmF0aW9uSUQpIHsKLSAgICAgICAg
bV9jdXJyZW50RGVzdGluYXRpb25JRCA9IGRlc3RpbmF0aW9uSUQ7Ci0gICAgICAgIGN1cnJlbnRS
ZWNlaXZlciA9IG51bGxwdHI7Ci0gICAgfQotICAgIHJlbGVhc2UoZGVjb2Rlci5jdXJyZW50QnVm
ZmVyUG9zaXRpb24oKSk7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1l
IFJlY2VpdmVyPgotYm9vbCBTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uPFJlY2VpdmVyPjo6ZGlzcGF0
Y2hTdHJlYW1NZXNzYWdlKERlY29kZXImJiBkZWNvZGVyLCBSZWNlaXZlciYgcmVjZWl2ZXIpCi17
Ci0gICAgQVNTRVJUKCFtX2lzRGlzcGF0Y2hpbmdTdHJlYW1NZXNzYWdlKTsKLSAgICBtX2lzRGlz
cGF0Y2hpbmdTdHJlYW1NZXNzYWdlID0gdHJ1ZTsKLSAgICByZWNlaXZlci5kaWRSZWNlaXZlU3Ry
ZWFtTWVzc2FnZSgqdGhpcywgZGVjb2Rlcik7Ci0gICAgbV9pc0Rpc3BhdGNoaW5nU3RyZWFtTWVz
c2FnZSA9IGZhbHNlOwotICAgIGlmICghZGVjb2Rlci5pc1ZhbGlkKCkpIHsKLSAgICAgICAgbV9j
b25uZWN0aW9uLT5kaXNwYXRjaERpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShkZWNvZGVyLm1lc3Nh
Z2VOYW1lKCkpOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIGlmIChkZWNvZGVy
LmlzU3luY01lc3NhZ2UoKSkKLSAgICAgICAgcmVsZWFzZUFsbCgpOwotICAgIGVsc2UKLSAgICAg
ICAgcmVsZWFzZShkZWNvZGVyLmN1cnJlbnRCdWZmZXJQb3NpdGlvbigpKTsKLSAgICByZXR1cm4g
dHJ1ZTsKLX0KLQotdGVtcGxhdGU8dHlwZW5hbWUgUmVjZWl2ZXI+Ci1ib29sIFN0cmVhbVNlcnZl
ckNvbm5lY3Rpb248UmVjZWl2ZXI+OjpkaXNwYXRjaE91dE9mU3RyZWFtTWVzc2FnZShEZWNvZGVy
JiYgZGVjb2RlcikKLXsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8RGVjb2Rlcj4gbWVzc2FnZTsKLSAg
ICB7Ci0gICAgICAgIExvY2tlciBsb2NrZXIgeyBtX291dE9mU3RyZWFtTWVzc2FnZXNMb2NrIH07
Ci0gICAgICAgIGlmIChtX291dE9mU3RyZWFtTWVzc2FnZXMuaXNFbXB0eSgpKQotICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBtZXNzYWdlID0gbV9vdXRPZlN0cmVhbU1lc3NhZ2Vz
LnRha2VGaXJzdCgpOwotICAgIH0KLSAgICBpZiAoIW1lc3NhZ2UpCi0gICAgICAgIHJldHVybiBm
YWxzZTsKLQotICAgIFJlZlB0cjxSZWNlaXZlcj4gcmVjZWl2ZXI7Ci0gICAgewotICAgICAgICBh
dXRvIGtleSA9IHN0ZDo6bWFrZV9wYWlyKHN0YXRpY19jYXN0PHVpbnQ4X3Q+KG1lc3NhZ2UtPm1l
c3NhZ2VSZWNlaXZlck5hbWUoKSksIG1lc3NhZ2UtPmRlc3RpbmF0aW9uSUQoKSk7Ci0gICAgICAg
IExvY2tlciBsb2NrZXIgeyBtX3JlY2VpdmVyc0xvY2sgfTsKLSAgICAgICAgcmVjZWl2ZXIgPSBt
X3JlY2VpdmVycy5nZXQoa2V5KTsKLSAgICB9Ci0gICAgaWYgKHJlY2VpdmVyKSB7Ci0gICAgICAg
IHJlY2VpdmVyLT5kaWRSZWNlaXZlU3RyZWFtTWVzc2FnZSgqdGhpcywgKm1lc3NhZ2UpOwotICAg
ICAgICBpZiAoIW1lc3NhZ2UtPmlzVmFsaWQoKSkgewotICAgICAgICAgICAgbV9jb25uZWN0aW9u
LT5kaXNwYXRjaERpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShtZXNzYWdlLT5tZXNzYWdlTmFtZSgp
KTsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotICAgIH0KLSAgICAvLyBJ
ZiByZWNlaXZlciBkb2VzIG5vdCBleGlzdCBpZiBpdCBoYXMgYmVlbiByZW1vdmVkIGJ1dCBtZXNz
YWdlcyBhcmUgc3RpbGwgcGVuZGluZyB0byBiZQotICAgIC8vIHByb2Nlc3NlZC4gSXQncyBvayB0
byBza2lwIHN1Y2ggbWVzc2FnZXMuCi0gICAgLy8gRklYTUU6IE5vdGUsIGNvcnJlc3BvbmRpbmcg
c2tpcCBpcyBub3QgcG9zc2libGUgYXQgdGhlIG1vbWVudCBmb3Igc3RyZWFtIG1lc3NhZ2VzLgot
ICAgIHJlbGVhc2UoZGVjb2Rlci5jdXJyZW50QnVmZmVyUG9zaXRpb24oKSk7Ci0gICAgcmV0dXJu
IHRydWU7Ci19Ci0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IGJhMjM3OWVjNGUwOTdhMjM2NGFmZGE0ZmIyNzM0ZjZmZDE3ZDFmOGQu
LjYyYTU1NmRiY2I2ZGFmODg3NGU2NTM5MWYyMWI3NDU2M2E5ZWM2NWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjAzOSw2ICsyMDM5
LDcgQEAKIAkJRjQwOUJBMTgxRTZFNjRCQzAwOURBMjhFIC8qIFdLRHJhZ0Rlc3RpbmF0aW9uQWN0
aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDA5
QkExNzFFNkU2NEIzMDA5REEyOEUgLyogV0tEcmFnRGVzdGluYXRpb25BY3Rpb24uaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGNDBCQkI0MTI1N0ZG
NDZFMDA2NzQ2M0EgLyogR1BVUHJvY2Vzc1dha2V1cE1lc3NhZ2VBcmd1bWVudHMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0MEJCQjQwMjU3RkY0NkUw
MDY3NDYzQSAvKiBHUFVQcm9jZXNzV2FrZXVwTWVzc2FnZUFyZ3VtZW50cy5oICovOyB9OwogCQlG
NDE0Q0UyRDI2OURFNkVBMDBCRDIxNkEgLyogUmVtb3RlUmVuZGVyaW5nQmFja2VuZFN0YXRlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDE0Q0UyQzI2
OURFNkVBMDBCRDIxNkEgLyogUmVtb3RlUmVuZGVyaW5nQmFja2VuZFN0YXRlLmggKi87IH07CisJ
CUY0Mjk5NTA3MjcwRTIzNEQwMDMyMjk4QiAvKiBTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0Mjk5NTA2MjcwRTIz
NEMwMDMyMjk4QiAvKiBTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuaCAqLzsgfTsKIAkJRjQyRDYzNDEy
MkEwRUZERjAwRDJGQjNBIC8qIFdlYkF1dG9jb3JyZWN0aW9uRGF0YS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQyRDYzM0YyMkEwRUZEMzAwRDJGQjNB
IC8qIFdlYkF1dG9jb3JyZWN0aW9uRGF0YS5oICovOyB9OwogCQlGNDMwRTk0MjIyNDczMzVGMDA1
RkUwNTMgLyogV2Vic2l0ZU1ldGFWaWV3cG9ydFBvbGljeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQzMEU5NDEyMjQ3MzJBOTAwNUZFMDUzIC8qIFdl
YnNpdGVNZXRhVmlld3BvcnRQb2xpY3kuaCAqLzsgfTsKIAkJRjQzMEU5NDQyMjQ3M0RGRjAwNUZF
MDUzIC8qIFdlYkNvbnRlbnRNb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNDMwRTk0MzIyNDczREI4MDA1RkUwNTMgLyogV2ViQ29udGVudE1vZGUu
aCAqLzsgfTsKQEAgLTYxMDQsNiArNjEwNSw3IEBACiAJCUY0MEQxQjY4MjIwQkRDMEYwMEI0OUEw
MSAvKiBXZWJBdXRvY29ycmVjdGlvbkNvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViQXV0b2Nv
cnJlY3Rpb25Db250ZXh0Lmg7IHBhdGggPSBpb3MvV2ViQXV0b2NvcnJlY3Rpb25Db250ZXh0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0MTA1NjYxMjEzMDY5OUEwMDkyMjgxRCAv
KiBBUElBdHRhY2htZW50Q29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBUElBdHRhY2ht
ZW50Q29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0MTRDRTJDMjY5REU2
RUEwMEJEMjE2QSAvKiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kU3RhdGUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUmVtb3RlUmVuZGVyaW5nQmFja2VuZFN0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUY0Mjk5NTA2MjcwRTIzNEMwMDMyMjk4QiAvKiBTdHJlYW1NZXNzYWdlUmVjZWl2ZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RyZWFtTWVzc2FnZVJlY2VpdmVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0MkQ2MzNGMjJBMEVGRDMwMEQyRkIz
QSAvKiBXZWJBdXRvY29ycmVjdGlvbkRhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gV2ViQXV0b2NvcnJlY3Rpb25EYXRhLmg7IHBhdGggPSBpb3MvV2ViQXV0b2NvcnJlY3Rp
b25EYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0MkQ2MzQwMjJBMEVGRDMw
MEQyRkIzQSAvKiBXZWJBdXRvY29ycmVjdGlvbkRhdGEubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IG5hbWUgPSBXZWJBdXRvY29ycmVjdGlvbkRhdGEubW07IHBhdGggPSBpb3Mv
V2ViQXV0b2NvcnJlY3Rpb25EYXRhLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlG
NDMwRTk0MTIyNDczMkE5MDA1RkUwNTMgLyogV2Vic2l0ZU1ldGFWaWV3cG9ydFBvbGljeS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXZWJzaXRlTWV0YVZpZXdwb3J0UG9saWN5Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC03MzQ5LDYgKzczNTEsNyBAQAogCQkJCTdCNzMxMjM5MjVDQzg1MjUw
MDNCMjc5NiAvKiBTdHJlYW1Db25uZWN0aW9uRW5jb2Rlci5oICovLAogCQkJCTdCNzMxMjMyMjVD
Qzg1MjMwMDNCMjc5NiAvKiBTdHJlYW1Db25uZWN0aW9uV29ya1F1ZXVlLmNwcCAqLywKIAkJCQk3
QjczMTIzNTI1Q0M4NTI0MDAzQjI3OTYgLyogU3RyZWFtQ29ubmVjdGlvbldvcmtRdWV1ZS5oICov
LAorCQkJCUY0Mjk5NTA2MjcwRTIzNEMwMDMyMjk4QiAvKiBTdHJlYW1NZXNzYWdlUmVjZWl2ZXIu
aCAqLywKIAkJCQk3QjczMTIzNzI1Q0M4NTI0MDAzQjI3OTYgLyogU3RyZWFtU2VydmVyQ29ubmVj
dGlvbi5jcHAgKi8sCiAJCQkJN0I3MzEyMzgyNUNDODUyNDAwM0IyNzk2IC8qIFN0cmVhbVNlcnZl
ckNvbm5lY3Rpb24uaCAqLywKIAkJCQkxQUUwMEQ2OTE4MzI3QzEyMDAwODdERDcgLyogU3RyaW5n
UmVmZXJlbmNlLmNwcCAqLywKQEAgLTEyNjU3LDYgKzEyNjYwLDcgQEAKIAkJCQk3QjczMTIzQTI1
Q0M4NTI1MDAzQjI3OTYgLyogU3RyZWFtQ29ubmVjdGlvbkJ1ZmZlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJN0I3MzEyNDIyNUNDODUyNTAwM0IyNzk2IC8qIFN0cmVhbUNvbm5lY3Rpb25FbmNvZGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQk3QjczMTIzRTI1Q0M4NTI1MDAzQjI3OTYgLyogU3RyZWFt
Q29ubmVjdGlvbldvcmtRdWV1ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjQyOTk1MDcyNzBFMjM0
RDAwMzIyOThCIC8qIFN0cmVhbU1lc3NhZ2VSZWNlaXZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
N0I3MzEyNDEyNUNDODUyNTAwM0IyNzk2IC8qIFN0cmVhbVNlcnZlckNvbm5lY3Rpb24uaCBpbiBI
ZWFkZXJzICovLAogCQkJCTFBRTAwRDZDMTgzMjdDMTIwMDA4N0RENyAvKiBTdHJpbmdSZWZlcmVu
Y2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTI5NkJEODVEMTUwMTlCQzMwMDcxRjQyNCAvKiBTdHJp
bmdVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>