<?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>193924</bug_id>
          
          <creation_ts>2019-01-28 14:29:14 -0800</creation_ts>
          <short_desc>StorageAccess API calls should be direct to the Network Process</short_desc>
          <delta_ts>2019-01-31 03:10:30 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>193705</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brent Fulgham">bfulgham</reporter>
          <assigned_to name="Brent Fulgham">bfulgham</assigned_to>
          <cc>achristensen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>machucovjorge</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wilander</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1499186</commentid>
    <comment_count>0</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-01-28 14:29:14 -0800</bug_when>
    <thetext>The current implementation of the Storage Access API messages the UI Process, which in turn messages the Network Process for answers. We should avoid this extra hop through the UIProcess, since the state is held entirely in the Network Process.

The one exception is when a user prompt is needed, but that should be triggered by the Network Process requesting the UI Process perform that interaction.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1499188</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-01-28 14:30:57 -0800</bug_when>
    <thetext>&lt;rdar://problem/47611249&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1499574</commentid>
    <comment_count>2</comment_count>
      <attachid>360468</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-01-29 10:05:39 -0800</bug_when>
    <thetext>Created attachment 360468
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1499580</commentid>
    <comment_count>3</comment_count>
      <attachid>360469</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-01-29 10:16:03 -0800</bug_when>
    <thetext>Created attachment 360469
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1499583</commentid>
    <comment_count>4</comment_count>
      <attachid>360470</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-01-29 10:26:28 -0800</bug_when>
    <thetext>Created attachment 360470
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1499585</commentid>
    <comment_count>5</comment_count>
      <attachid>360471</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-01-29 10:32:24 -0800</bug_when>
    <thetext>Created attachment 360471
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1499624</commentid>
    <comment_count>6</comment_count>
      <attachid>360471</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-01-29 11:43:39 -0800</bug_when>
    <thetext>Comment on attachment 360471
Patch

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

r=me with one minor change.

&gt; Source/WebKit/UIProcess/WebPageProxy.h:1383
&gt; +    static void requestStorageAccessConfirm(uint64_t pageID, uint64_t frameID, const String&amp; subFrameHost, const String&amp; topFrameHost, CompletionHandler&lt;void(bool)&gt;&amp;&amp;);

This should not be static.  The NetworkProcessProxy should find the correct WebPageProxy and call a member function on it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1499683</commentid>
    <comment_count>7</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-01-29 13:27:38 -0800</bug_when>
    <thetext>Committed r240676: &lt;https://trac.webkit.org/changeset/240676&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>360468</attachid>
            <date>2019-01-29 10:05:39 -0800</date>
            <delta_ts>2019-01-29 10:16:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193924-20190129100538.patch</filename>
            <type>text/plain</type>
            <size>35554</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwNjIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDQ3NDYyYjRmZGNiNWMwZjJi
MjQxOTExNjliNWI0MzgxNjQ5NzcxODQuLmNiYjk5M2JkNmQxZDg3ZjE3ZmI1ZTYxN2Q4MzZkNGNm
OTc1ZWJkMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTEgQEAKKzIwMTktMDEtMjkgIEJyZW50IEZ1
bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CisKKyAgICAgICAgU3RvcmFnZUFjY2VzcyBBUEkg
Y2FsbHMgc2hvdWxkIGJlIGRpcmVjdCB0byB0aGUgTmV0d29yayBQcm9jZXNzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTM5MjQKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzQ3NjExMjQ5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIE5vdyB0aGF0IHRoZSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzIGRhdGEg
bGl2ZXMgaW4gdGhlIE5ldHdvcmsgUHJvY2VzcywgY2FsbHMgdG8gU3RvcmFnZSBBY2Nlc3MKKyAg
ICAgICAgQVBJIHNob3VsZCBoYXBwZW4gZGlyZWN0bHkgYmV0d2VlbiB0aGUgV2ViQ29udGVudCBh
bmQgTmV0d29yayBwcm9jZXNzZXMuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lm
aWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3NHcmFu
dGVkKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OnJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFtZSk6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZW1vdmVTdG9yYWdlQWNjZXNz
Rm9yQWxsRnJhbWVzT25QYWdlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3M6OmxvZ1VzZXJJbnRlcmFjdGlvbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpsb2dXZWJTb2NrZXRMb2FkaW5nKToKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmxvZ1N1YnJlc291cmNlTG9h
ZGluZyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjps
b2dTdWJyZXNvdXJjZVJlZGlyZWN0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OnJlcXVlc3RSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVXBkYXRlKToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6Omhhc1N0b3JhZ2VB
Y2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
cmVxdWVzdFN0b3JhZ2VBY2Nlc3MpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vz
czo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vz
czo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3NHcmFudGVkKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpy
ZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlcXVlc3RTdG9yYWdl
QWNjZXNzQ29uZmlybSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6aGFzU3RvcmFn
ZUFjY2Vzcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVz
dFN0b3JhZ2VBY2Nlc3MpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6aGFzU3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnJl
cXVlc3RTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdlYktpdDo6bmV4dFJlcXVlc3RTdG9yYWdl
QWNjZXNzQ29udGV4dElkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c3Rv
cmFnZUFjY2Vzc1Jlc3BvbnNlKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3Nh
Z2VzLmluOgorCiAyMDE5LTAxLTI4ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+
CiAKICAgICAgICAgTW92ZSBzb2Z0LWxpbmtpbmcgb2YgTWFuYWdlZENvbmZpZ3VyYXRpb24uZnJh
bWV3b3JrIG91dCBvZiBNYW5hZ2VkQ29uZmlndXJhdGlvblNQSS5oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9X
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCmluZGV4IDVjZGY4MzAyNjUyNzEwMTRh
OTVjMDQ1NGI4N2M0Y2YxODU1OGY1MjcuLjZmOWVmN2RiNmViM2Q3NjMxOGI3YzVhNTJjMDdlMWEy
OGFlNDgyZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3Np
Zmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmUuY3BwCkBAIC0yOTMsMTQgKzI5MywzNCBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZTo6Y2FsbEhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZUhhbmRsZXIoY29uc3QgUwogICAg
IGNhbGxiYWNrKGZhbHNlKTsKIH0KIAotdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmU6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKFN0cmluZyYmIHN1YkZyYW1lSG9zdCwgU3RyaW5nJiYg
dG9wRnJhbWVIb3N0LCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIGJvb2wgcHJv
bXB0RW5hYmxlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzU3RhdHVzKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
OjpyZXF1ZXN0U3RvcmFnZUFjY2Vzc0dyYW50ZWQoY29uc3QgU3RyaW5nJiBzdWJGcmFtZUhvc3Qs
IGNvbnN0IFN0cmluZyYgdG9wRnJhbWVIb3N0LCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBw
YWdlSUQsIGJvb2wgcHJvbXB0RW5hYmxlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBBU1NFUlQoc3ViRnJhbWVIb3N0ICE9IHRvcEZy
YW1lSG9zdCk7Ci0gICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKKyAgICBhdXRvIHN0YXR1
c0hhbmRsZXIgPSBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBzdWJGcmFt
ZUhvc3QgPSBzdWJGcmFtZUhvc3QuaXNvbGF0ZWRDb3B5KCksIHRvcEZyYW1lSG9zdCA9IHRvcEZy
YW1lSG9zdC5pc29sYXRlZENvcHkoKSwgcHJvbXB0RW5hYmxlZCwgZnJhbWVJRCwgcGFnZUlELCBj
b21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShTdG9yYWdlQWNj
ZXNzU3RhdHVzIHN0YXR1cykgbXV0YWJsZSB7CisgICAgICAgIHN3aXRjaCAoc3RhdHVzKSB7Cisg
ICAgICAgIGNhc2UgU3RvcmFnZUFjY2Vzc1N0YXR1czo6Q2Fubm90UmVxdWVzdEFjY2VzczoKKyAg
ICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgY2FzZSBTdG9yYWdlQWNjZXNzU3RhdHVzOjpSZXF1aXJlc1VzZXJQcm9tcHQ6Cisg
ICAgICAgICAgICB7CisgICAgICAgICAgICBBU1NFUlRfVU5VU0VEKHByb21wdEVuYWJsZWQsIHBy
b21wdEVuYWJsZWQpOworICAgICAgICAgICAgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4g
cmVxdWVzdENvbmZpcm1hdGlvbkNvbXBsZXRpb25IYW5kbGVyID0gW3RoaXMsIHByb3RlY3RlZFRo
aXMgPSBtYWtlUmVmKCp0aGlzKSwgc3ViRnJhbWVIb3N0ID0gV1RGTW92ZShzdWJGcmFtZUhvc3Qp
LCB0b3BGcmFtZUhvc3QgPSBXVEZNb3ZlKHRvcEZyYW1lSG9zdCksIGZyYW1lSUQsIHBhZ2VJRCwg
Y29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKGJvb2wgdXNl
ckRpZEdyYW50QWNjZXNzKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBpZiAodXNlckRpZEdy
YW50QWNjZXNzKQorICAgICAgICAgICAgICAgICAgICBncmFudFN0b3JhZ2VBY2Nlc3MoV1RGTW92
ZShzdWJGcmFtZUhvc3QpLCBXVEZNb3ZlKHRvcEZyYW1lSG9zdCksIGZyYW1lSUQsIHBhZ2VJRCwg
dXNlckRpZEdyYW50QWNjZXNzLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxz
ZSk7CisgICAgICAgICAgICB9OworICAgICAgICAgICAgbV9uZXR3b3JrU2Vzc2lvbi0+bmV0d29y
a1Byb2Nlc3MoKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kV2l0aEFzeW5jUmVwbHko
TWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OlJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmly
bShwYWdlSUQsIGZyYW1lSUQsIFJlc291cmNlTG9hZFN0YXRpc3RpY3M6OnByaW1hcnlEb21haW4o
c3ViRnJhbWVIb3N0KSwgUmVzb3VyY2VMb2FkU3RhdGlzdGljczo6cHJpbWFyeURvbWFpbih0b3BG
cmFtZUhvc3QpKSwgV1RGTW92ZShyZXF1ZXN0Q29uZmlybWF0aW9uQ29tcGxldGlvbkhhbmRsZXIp
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgY2FzZSBTdG9y
YWdlQWNjZXNzU3RhdHVzOjpIYXNBY2Nlc3M6CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cih0cnVlKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH07CiAKLSAgICBy
ZXF1ZXN0U3RvcmFnZUFjY2VzcyhzdWJGcmFtZUhvc3QsIHRvcEZyYW1lSG9zdCwgZnJhbWVJRCwg
cGFnZUlELCBwcm9tcHRFbmFibGVkLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAg
cmVxdWVzdFN0b3JhZ2VBY2Nlc3Moc3ViRnJhbWVIb3N0LCB0b3BGcmFtZUhvc3QsIGZyYW1lSUQs
IHBhZ2VJRCwgcHJvbXB0RW5hYmxlZCwgV1RGTW92ZShzdGF0dXNIYW5kbGVyKSk7CiB9Ci0gICAg
CisKIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpyZXF1ZXN0U3RvcmFnZUFj
Y2Vzcyhjb25zdCBTdHJpbmcmIHN1YkZyYW1lSG9zdCwgY29uc3QgU3RyaW5nJiB0b3BGcmFtZUhv
c3QsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIGJvb2wgcHJv
bXB0RW5hYmxlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzU3RhdHVzKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBhdXRvIHN1YkZyYW1lUHJpbWFyeURvbWFpbiA9
IGlzb2xhdGVkUHJpbWFyeURvbWFpbihzdWJGcmFtZUhvc3QpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCmluZGV4IGQyODg5MGViZTBiNGU2MzdmMDMxMzBk
YWZhMGU3MGY0MjM2MzVjMjEuLjExYzAwY2E4NWQxNjk3MTBiNjk5MGI0MTliNDQzOGE5MmFlODkx
ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9X
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKQEAg
LTc1LDkgKzc1LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U2hvdWxkQ2xhc3NpZnlSZXNvdXJj
ZXNCZWZvcmVEYXRhUmVjb3Jkc1JlbW92YWwoYm9vbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKTsKICAgICB2b2lkIHNldFNob3VsZFN1Ym1pdFRlbGVtZXRyeShib29sKTsKIAotICAgIHZv
aWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoU3RyaW5nJiYgc3ViRnJhbWVIb3N0LCBTdHJpbmcmJiB0
b3BGcmFtZUhvc3QsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJRCwgYm9vbCBwcm9t
cHRFbmFibGVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NTdGF0dXMpPiYm
KTsKICAgICB2b2lkIGdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdCBTdHJpbmcmIHN1YkZyYW1lSG9z
dCwgY29uc3QgU3RyaW5nJiB0b3BGcmFtZUhvc3QsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90
IHBhZ2VJRCwgYm9vbCB1c2VyV2FzUHJvbXB0ZWROb3csIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Ym9vbCk+JiYpOwotICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3NDYWxsYmFjayhib29sIHdh
c0dyYW50ZWQsIHVpbnQ2NF90IGNvbnRleHRJZCk7CiAKICAgICB2b2lkIGFwcGxpY2F0aW9uV2ls
bFRlcm1pbmF0ZSgpOwogCkBAIC05NSw2ICs5Myw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGhhc1N0
b3JhZ2VBY2Nlc3MoY29uc3QgU3RyaW5nJiBzdWJGcmFtZUhvc3QsIGNvbnN0IFN0cmluZyYgdG9w
RnJhbWVIb3N0LCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgdWludDY0X3QgcGFnZUlELCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNrKTsKICAgICBib29sIGhhc1N0
b3JhZ2VBY2Nlc3NGb3JGcmFtZShjb25zdCBTdHJpbmcmIHJlc291cmNlRG9tYWluLCBjb25zdCBT
dHJpbmcmIGZpcnN0UGFydHlEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJ
RCk7CiAgICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vzcyhjb25zdCBTdHJpbmcmIHJlc291cmNl
RG9tYWluLCBjb25zdCBTdHJpbmcmIGZpcnN0UGFydHlEb21haW4sIE9wdGlvbmFsPHVpbnQ2NF90
PiBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIGJvb2wgcHJvbXB0RW5hYmxlZCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzU3RhdHVzKT4mJik7CisgICAgdm9pZCByZXF1ZXN0
U3RvcmFnZUFjY2Vzc0dyYW50ZWQoY29uc3QgU3RyaW5nJiBzdWJGcmFtZUhvc3QsIGNvbnN0IFN0
cmluZyYgdG9wRnJhbWVIb3N0LCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIGJv
b2wgcHJvbXB0RW5hYmxlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAgICAg
dm9pZCByZXF1ZXN0VXBkYXRlKCk7CiAgICAgdm9pZCBzZXRMYXN0U2Vlbihjb25zdCBTdHJpbmcm
IHJlc291cmNlRG9tYWluLCBTZWNvbmRzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwog
ICAgIHZvaWQgc2V0UHJldmFsZW50UmVzb3VyY2UoY29uc3QgU3RyaW5nJiByZXNvdXJjZURvbWFp
biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5j
cHAKaW5kZXggNzUzOGUxZDMyNTFjNzNiNThmYmQ5NjEzODQwMDA3YWNmNGI5YmFiZi4uMmZkN2Fm
ZGQ5OWFiNzlhZGE3ZmU3NzkxZDFiN2YxZmM3YzBkMGMzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5jcHAKQEAgLTU2LDYgKzU2LDcgQEAKICNpbmNsdWRlICJXZWJTV1NlcnZlclRvQ29udGV4
dENvbm5lY3Rpb25NZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYnNpdGVEYXRhU3RvcmVQYXJhbWV0
ZXJzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1Jlc291cmNlUmVxdWVzdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2FtZVNpdGVJbmZvLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eVBvbGljeS5oPgpAQCAtNTU5LDg5ICs1NjAsNTMgQEAg
dm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZW5zdXJlTGVnYWN5UHJpdmF0ZUJy
b3dzaW5nU2Vzc2lvbigpCiAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+YWRkV2Vic2l0ZURhdGFTdG9y
ZShXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVyczo6bGVnYWN5UHJpdmF0ZVNlc3Npb25QYXJhbWV0
ZXJzKCkpOwogfQogCisjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKIHZvaWQg
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFt
ZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBh
Z2VJRCkKIHsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIGlmIChh
dXRvKiBzdG9yYWdlU2Vzc2lvbiA9IG5ldHdvcmtQcm9jZXNzKCkuc3RvcmFnZVNlc3Npb24oc2Vz
c2lvbklEKSkKICAgICAgICAgc3RvcmFnZVNlc3Npb24tPnJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JG
cmFtZShmcmFtZUlELCBwYWdlSUQpOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oc2Vzc2lvbklE
KTsKLSAgICBVTlVTRURfUEFSQU0oZnJhbWVJRCk7Ci0gICAgVU5VU0VEX1BBUkFNKHBhZ2VJRCk7
Ci0jZW5kaWYKIH0KIAogdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVtb3Zl
U3RvcmFnZUFjY2Vzc0ZvckFsbEZyYW1lc09uUGFnZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IHVpbnQ2NF90IHBhZ2VJRCkKIHsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNT
KQogICAgIGlmIChhdXRvKiBzdG9yYWdlU2Vzc2lvbiA9IG5ldHdvcmtQcm9jZXNzKCkuc3RvcmFn
ZVNlc3Npb24oc2Vzc2lvbklEKSkKICAgICAgICAgc3RvcmFnZVNlc3Npb24tPnJlbW92ZVN0b3Jh
Z2VBY2Nlc3NGb3JBbGxGcmFtZXNPblBhZ2UocGFnZUlEKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BB
UkFNKHNlc3Npb25JRCk7Ci0gICAgVU5VU0VEX1BBUkFNKHBhZ2VJRCk7Ci0jZW5kaWYKIH0KIAog
dm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6bG9nVXNlckludGVyYWN0aW9uKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiB0b3BMZXZlbE9yaWdpbikKIHsK
LSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIGlmIChhdXRvIG5ldHdv
cmtTZXNzaW9uID0gbmV0d29ya1Byb2Nlc3MoKS5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7
CiAgICAgICAgIGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gbmV0d29ya1Nlc3Np
b24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkKICAgICAgICAgICAgIHJlc291cmNlTG9hZFN0
YXRpc3RpY3MtPmxvZ1VzZXJJbnRlcmFjdGlvbih0b3BMZXZlbE9yaWdpbiwgW10geyB9KTsKICAg
ICB9Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShzZXNzaW9uSUQpOwotICAgIFVOVVNFRF9QQVJB
TSh0b3BMZXZlbE9yaWdpbik7Ci0jZW5kaWYKIH0KIAogdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6bG9nV2ViU29ja2V0TG9hZGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IGNvbnN0IFN0cmluZyYgdGFyZ2V0UHJpbWFyeURvbWFpbiwgY29uc3QgU3RyaW5nJiBtYWluRnJh
bWVQcmltYXJ5RG9tYWluLCBXYWxsVGltZSBsYXN0U2VlbikKIHsKLSNpZiBFTkFCTEUoUkVTT1VS
Q0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIGlmIChhdXRvIG5ldHdvcmtTZXNzaW9uID0gbmV0d29y
a1Byb2Nlc3MoKS5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7CiAgICAgICAgIGlmIChhdXRv
KiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gbmV0d29ya1Nlc3Npb24tPnJlc291cmNlTG9hZFN0
YXRpc3RpY3MoKSkKICAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPmxvZ1dlYlNv
Y2tldExvYWRpbmcodGFyZ2V0UHJpbWFyeURvbWFpbiwgbWFpbkZyYW1lUHJpbWFyeURvbWFpbiwg
bGFzdFNlZW4sIFtdIHsgfSk7CiAgICAgfQotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oc2Vzc2lv
bklEKTsKLSAgICBVTlVTRURfUEFSQU0odGFyZ2V0UHJpbWFyeURvbWFpbik7Ci0gICAgVU5VU0VE
X1BBUkFNKG1haW5GcmFtZVByaW1hcnlEb21haW4pOwotICAgIFVOVVNFRF9QQVJBTShsYXN0U2Vl
bik7Ci0jZW5kaWYKIH0KIAogdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6bG9n
U3VicmVzb3VyY2VMb2FkaW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5n
JiB0YXJnZXRQcmltYXJ5RG9tYWluLCBjb25zdCBTdHJpbmcmIG1haW5GcmFtZVByaW1hcnlEb21h
aW4sIFdhbGxUaW1lIGxhc3RTZWVuKQogewotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJ
U1RJQ1MpCiAgICAgaWYgKGF1dG8gbmV0d29ya1Nlc3Npb24gPSBuZXR3b3JrUHJvY2VzcygpLm5l
dHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKICAgICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9h
ZFN0YXRpc3RpY3MgPSBuZXR3b3JrU2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpKQog
ICAgICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+bG9nU3VicmVzb3VyY2VMb2FkaW5n
KHRhcmdldFByaW1hcnlEb21haW4sIG1haW5GcmFtZVByaW1hcnlEb21haW4sIGxhc3RTZWVuLCBb
XSB7IH0pOwogICAgIH0KLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKHNlc3Npb25JRCk7Ci0gICAg
VU5VU0VEX1BBUkFNKHRhcmdldFByaW1hcnlEb21haW4pOwotICAgIFVOVVNFRF9QQVJBTShtYWlu
RnJhbWVQcmltYXJ5RG9tYWluKTsKLSAgICBVTlVTRURfUEFSQU0obGFzdFNlZW4pOwotI2VuZGlm
CiB9CiAKIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmxvZ1N1YnJlc291cmNl
UmVkaXJlY3QoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIHNvdXJjZVBy
aW1hcnlEb21haW4sIGNvbnN0IFN0cmluZyYgdGFyZ2V0UHJpbWFyeURvbWFpbikKIHsKLSNpZiBF
TkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIGlmIChhdXRvIG5ldHdvcmtTZXNz
aW9uID0gbmV0d29ya1Byb2Nlc3MoKS5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7CiAgICAg
ICAgIGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gbmV0d29ya1Nlc3Npb24tPnJl
c291cmNlTG9hZFN0YXRpc3RpY3MoKSkKICAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3Rp
Y3MtPmxvZ1N1YnJlc291cmNlUmVkaXJlY3Qoc291cmNlUHJpbWFyeURvbWFpbiwgdGFyZ2V0UHJp
bWFyeURvbWFpbiwgW10geyB9KTsKICAgICB9Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShzZXNz
aW9uSUQpOwotICAgIFVOVVNFRF9QQVJBTShzb3VyY2VQcmltYXJ5RG9tYWluKTsKLSAgICBVTlVT
RURfUEFSQU0odGFyZ2V0UHJpbWFyeURvbWFpbik7Ci0jZW5kaWYKIH0KIAogdm9pZCBOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVxdWVzdFJlc291cmNlTG9hZFN0YXRpc3RpY3NVcGRh
dGUoKQogewotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAgICAgZm9yIChh
dXRvJiBuZXR3b3JrU2Vzc2lvbiA6IG5ldHdvcmtQcm9jZXNzKCkubmV0d29ya1Nlc3Npb25zKCku
dmFsdWVzKCkpIHsKICAgICAgICAgaWYgKG5ldHdvcmtTZXNzaW9uLT5zZXNzaW9uSUQoKS5pc0Vw
aGVtZXJhbCgpKQogICAgICAgICAgICAgY29udGludWU7CkBAIC02NDksOSArNjE0LDE5IEBAIHZv
aWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlcXVlc3RSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzVXBkYXRlKCkKICAgICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3Mg
PSBuZXR3b3JrU2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpKQogICAgICAgICAgICAg
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+cmVxdWVzdFVwZGF0ZSgpOwogICAgIH0KLSNlbmRpZgog
fQogCit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpoYXNTdG9yYWdlQWNjZXNz
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBzdWJGcmFtZUhvc3QsIGNv
bnN0IFN0cmluZyYgdG9wRnJhbWVIb3N0LCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBwYWdl
SUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7
CisgICAgbmV0d29ya1Byb2Nlc3MoKS5oYXNTdG9yYWdlQWNjZXNzKHNlc3Npb25JRCwgc3ViRnJh
bWVIb3N0LCB0b3BGcmFtZUhvc3QsIGZyYW1lSUQsIHBhZ2VJRCwgV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikpOworfQorCit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZXF1
ZXN0U3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYg
c3ViRnJhbWVIb3N0LCBjb25zdCBTdHJpbmcmIHRvcEZyYW1lSG9zdCwgdWludDY0X3QgZnJhbWVJ
RCwgdWludDY0X3QgcGFnZUlELCBib29sIHByb21wdEVuYWJsZWQsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgbmV0d29ya1Byb2Nlc3Mo
KS5yZXF1ZXN0U3RvcmFnZUFjY2Vzc0dyYW50ZWQoc2Vzc2lvbklELCBzdWJGcmFtZUhvc3QsIHRv
cEZyYW1lSG9zdCwgZnJhbWVJRCwgcGFnZUlELCBwcm9tcHRFbmFibGVkLCBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSk7Cit9CisjZW5kaWYKKwogdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6YWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoY29uc3QgU3RyaW5nJiBzb3Vy
Y2VPcmlnaW4sIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25Qcm90b2NvbCwgY29uc3QgU3RyaW5n
JiBkZXN0aW5hdGlvbkhvc3QsIGJvb2wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpCiB7CiAg
ICAgU2VjdXJpdHlQb2xpY3k6OmFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KFNlY3VyaXR5
T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKHNvdXJjZU9yaWdpbikuZ2V0KCksIGRlc3RpbmF0aW9u
UHJvdG9jb2wsIGRlc3RpbmF0aW9uSG9zdCwgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5oCmluZGV4IDQ0YzBhNWY3MTQzNmJkYTNjMjk0MzA5NzE2NDBi
ZjlmMjIzZWQ0YjguLjBjNzkzNjczYmVjMmVhMmFkMmU3ZDYzMTA3OTgxMzZkMTYxYzY2NjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKQEAgLTE5NCwxMSArMTk0LDE2IEBAIHByaXZhdGU6CiAK
ICAgICB2b2lkIHJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFtZShQQUw6OlNlc3Npb25JRCwgdWlu
dDY0X3QgZnJhbWVJRCwgdWludDY0X3QgcGFnZUlEKTsKICAgICB2b2lkIHJlbW92ZVN0b3JhZ2VB
Y2Nlc3NGb3JBbGxGcmFtZXNPblBhZ2UoUEFMOjpTZXNzaW9uSUQsIHVpbnQ2NF90IHBhZ2VJRCk7
CisKKyNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIHZvaWQgbG9nVXNl
ckludGVyYWN0aW9uKFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIHRvcExldmVsT3JpZ2lu
KTsKICAgICB2b2lkIGxvZ1dlYlNvY2tldExvYWRpbmcoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0
cmluZyYgdGFyZ2V0UHJpbWFyeURvbWFpbiwgY29uc3QgU3RyaW5nJiBtYWluRnJhbWVQcmltYXJ5
RG9tYWluLCBXYWxsVGltZSBsYXN0U2Vlbik7CiAgICAgdm9pZCBsb2dTdWJyZXNvdXJjZUxvYWRp
bmcoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgdGFyZ2V0UHJpbWFyeURvbWFpbiwgY29u
c3QgU3RyaW5nJiBtYWluRnJhbWVQcmltYXJ5RG9tYWluLCBXYWxsVGltZSBsYXN0U2Vlbik7CiAg
ICAgdm9pZCBsb2dTdWJyZXNvdXJjZVJlZGlyZWN0KFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdHJp
bmcmIHNvdXJjZVByaW1hcnlEb21haW4sIGNvbnN0IFN0cmluZyYgdGFyZ2V0UHJpbWFyeURvbWFp
bik7CiAgICAgdm9pZCByZXF1ZXN0UmVzb3VyY2VMb2FkU3RhdGlzdGljc1VwZGF0ZSgpOworICAg
IHZvaWQgaGFzU3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBzdWJG
cmFtZUhvc3QsIGNvbnN0IFN0cmluZyYgdG9wRnJhbWVIb3N0LCB1aW50NjRfdCBmcmFtZUlELCB1
aW50NjRfdCBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOworICAgIHZv
aWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgc3Vi
RnJhbWVIb3N0LCBjb25zdCBTdHJpbmcmIHRvcEZyYW1lSG9zdCwgdWludDY0X3QgZnJhbWVJRCwg
dWludDY0X3QgcGFnZUlELCBib29sIHByb21wdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29s
KT4mJik7CisjZW5kaWYKIAogICAgIHZvaWQgYWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnko
Y29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4sIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25Qcm90
b2NvbCwgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvbkhvc3QsIGJvb2wgYWxsb3dEZXN0aW5hdGlv
blN1YmRvbWFpbnMpOwogICAgIHZvaWQgcmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnko
Y29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4sIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25Qcm90
b2NvbCwgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvbkhvc3QsIGJvb2wgYWxsb3dEZXN0aW5hdGlv
blN1YmRvbWFpbnMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4K
aW5kZXggODQyMjg2YjE4MmY1OWEwNzZhMDk3Njk2MGVmNTA1NGVlMmM5NGFjYi4uNzNhNTE4NTM3
NDBlMjZlNWFjN2E2ODJkYTk1M2U5MTU1M2E1YWJmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5p
bgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0xLDQgKzEsNCBAQAotIyBDb3B5cmlnaHQgKEMpIDIw
MTItMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykg
MjAxMi0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtNjQsNiArNjQsOCBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAgICAgTG9nU3VicmVzb3VyY2VMb2Fk
aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgU3RyaW5nIHRhcmdldFByaW1hcnlEb21haW4s
IFN0cmluZyBtYWluRnJhbWVQcmltYXJ5RG9tYWluLCBXYWxsVGltZSBsYXN0U2VlbikKICAgICBM
b2dTdWJyZXNvdXJjZVJlZGlyZWN0KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgU3RyaW5nIHNv
dXJjZVByaW1hcnlEb21haW4sIFN0cmluZyB0YXJnZXRQcmltYXJ5RG9tYWluKQogICAgIFJlcXVl
c3RSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVXBkYXRlKCk7CisgICAgSGFzU3RvcmFnZUFjY2VzcyhQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFN0cmluZyBzdWJGcmFtZUhvc3QsIFN0cmluZyB0b3BG
cmFtZUhvc3QsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJRCkgLT4gKGJvb2wgaGFz
U3RvcmFnZUFjY2VzcykgQXN5bmMKKyAgICBSZXF1ZXN0U3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIFN0cmluZyBzdWJGcmFtZUhvc3QsIFN0cmluZyB0b3BGcmFtZUhvc3Qs
IHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJRCwgYm9vbCBwcm9tcHQpIC0+IChib29s
IGFjY2Vzc0dyYW50ZWQpIEFzeW5jCiAjZW5kaWYKIAogICAgIEFkZE9yaWdpbkFjY2Vzc1doaXRl
bGlzdEVudHJ5KFN0cmluZyBzb3VyY2VPcmlnaW4sIFN0cmluZyBkZXN0aW5hdGlvblByb3RvY29s
LCBTdHJpbmcgZGVzdGluYXRpb25Ib3N0LCBib29sIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5z
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAK
aW5kZXggOTU0Mjg3OWNkNzBhM2RmZTAwYzY1ZjBiZDlhMzhiYTc2MjQ4NTkxOC4uYzVjYTU4ZjMy
YzQ5OGZkZjY4MTdkZmM0OTNmYTNkMTBjNzFmMWIyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTk2OSw3ICs5NjksNyBAQCB2b2lk
IE5ldHdvcmtQcm9jZXNzOjpyZXF1ZXN0U3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIGNvbnN0IFN0cmluZwogewogICAgIGlmIChhdXRvKiBuZXR3b3JrU2Vzc2lvbiA9IHRo
aXMtPm5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKICAgICAgICAgaWYgKGF1dG8qIHJlc291
cmNlTG9hZFN0YXRpc3RpY3MgPSBuZXR3b3JrU2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGlj
cygpKQotICAgICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+cmVxdWVzdFN0b3JhZ2VB
Y2Nlc3MocmVzb3VyY2VEb21haW4sIGZpcnN0UGFydHlEb21haW4sIGZyYW1lSUQsIHBhZ2VJRCwg
cHJvbXB0RW5hYmxlZCwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgICAgICAgICAg
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+cmVxdWVzdFN0b3JhZ2VBY2Nlc3MocmVzb3VyY2VEb21h
aW4sIGZpcnN0UGFydHlEb21haW4sIGZyYW1lSUQudmFsdWUoKSwgcGFnZUlELCBwcm9tcHRFbmFi
bGVkLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiAgICAgICAgIGVsc2UKICAgICAgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKFN0b3JhZ2VBY2Nlc3NTdGF0dXM6OkNhbm5vdFJlcXVlc3RB
Y2Nlc3MpOwogICAgIH0gZWxzZSB7CkBAIC05NzgsNiArOTc4LDE5IEBAIHZvaWQgTmV0d29ya1By
b2Nlc3M6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29u
c3QgU3RyaW5nCiAgICAgfQogfQogCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpyZXF1ZXN0U3RvcmFn
ZUFjY2Vzc0dyYW50ZWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIHN1
YkZyYW1lSG9zdCwgY29uc3QgU3RyaW5nJiB0b3BGcmFtZUhvc3QsIHVpbnQ2NF90IGZyYW1lSUQs
IHVpbnQ2NF90IHBhZ2VJRCwgYm9vbCBwcm9tcHRFbmFibGVkLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGlmIChhdXRvKiBuZXR3b3Jr
U2Vzc2lvbiA9IHRoaXMtPm5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKKyAgICAgICAgaWYg
KGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBuZXR3b3JrU2Vzc2lvbi0+cmVzb3VyY2VM
b2FkU3RhdGlzdGljcygpKQorICAgICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+cmVx
dWVzdFN0b3JhZ2VBY2Nlc3NHcmFudGVkKHN1YkZyYW1lSG9zdCwgdG9wRnJhbWVIb3N0LCBmcmFt
ZUlELCBwYWdlSUQsIHByb21wdEVuYWJsZWQsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOworICAg
IH0gZWxzZSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihmYWxzZSk7CisgICAgfQorfQorCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpncmFu
dFN0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIHJl
c291cmNlRG9tYWluLCBjb25zdCBTdHJpbmcmIGZpcnN0UGFydHlEb21haW4sIE9wdGlvbmFsPHVp
bnQ2NF90PiBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIGJvb2wgdXNlcldhc1Byb21wdGVkLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAg
IGlmIChhdXRvKiBuZXR3b3JrU2Vzc2lvbiA9IHRoaXMtPm5ldHdvcmtTZXNzaW9uKHNlc3Npb25J
RCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApp
bmRleCBlNDUzMTQyOTZjZDlmMTdhNzM0ZDUzZDFmN2Q0MmViMGE0MGE1YmQxLi4zZDAwZTdiZTg3
Y2M4NzBiZGFmOWUzZDcyODE4NDA3ZmJlMGMwNDA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBAIC0yMDYsNiArMjA2LDcgQEAgcHVibGljOgog
ICAgIHZvaWQgcmVtb3ZlQWxsU3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHJlbW92ZVByZXZhbGVudERvbWFpbnMoUEFM
OjpTZXNzaW9uSUQsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkb21haW5zKTsKICAgICB2b2lkIHJl
cXVlc3RTdG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIHJlc291cmNl
RG9tYWluLCBjb25zdCBTdHJpbmcmIGZpcnN0UGFydHlEb21haW4sIE9wdGlvbmFsPHVpbnQ2NF90
PiBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIGJvb2wgcHJvbXB0RW5hYmxlZCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzU3RhdHVzKT4mJik7CisgICAgdm9pZCByZXF1ZXN0
U3RvcmFnZUFjY2Vzc0dyYW50ZWQoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgc3ViRnJh
bWVIb3N0LCBjb25zdCBTdHJpbmcmIHRvcEZyYW1lSG9zdCwgdWludDY0X3QgZnJhbWVJRCwgdWlu
dDY0X3QgcGFnZUlELCBib29sIHByb21wdEVuYWJsZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Ym9vbCk+JiYpOwogICAgIHZvaWQgcmVzZXRDYWNoZU1heEFnZUNhcEZvclByZXZhbGVudFJlc291
cmNlcyhQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2
b2lkIHJlc2V0UGFyYW1ldGVyc1RvRGVmYXVsdFZhbHVlcyhQQUw6OlNlc3Npb25JRCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNjaGVkdWxlQ2xlYXJJbk1lbW9yeUFu
ZFBlcnNpc3RlbnQoUEFMOjpTZXNzaW9uSUQsIE9wdGlvbmFsPFdhbGxUaW1lPiBtb2RpZmllZFNp
bmNlLCBTaG91bGRHcmFuZGZhdGhlclN0YXRpc3RpY3MsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc1Byb3h5LmNwcAppbmRleCA1ZjU4YWVlNzUyYWM5OTc5NWQ2ODcyNjUzMzY0MTM5
ZTI3MTdmZGY1Li4xZDBlZGFlM2U3NmQwMjg1MWZjMjdiYzI3ZWYxYzQxMDEwY2E1OWU4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NQcm94eS5jcHAKQEAgLTcyNyw2ICs3MjcsMTEgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5
OjpyZXF1ZXN0U3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFMK
ICAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpSZXF1ZXN0
U3RvcmFnZUFjY2VzcyhzZXNzaW9uSUQsIHJlc291cmNlRG9tYWluLCBmaXJzdFBhcnR5RG9tYWlu
LCBmcmFtZUlELCBwYWdlSUQsIHByb21wdEVuYWJsZWQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSk7CiB9CiAKK3ZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6cmVxdWVzdFN0b3JhZ2VBY2Nl
c3NDb25maXJtKHVpbnQ2NF90IHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5n
JiBzdWJGcmFtZUhvc3QsIGNvbnN0IFN0cmluZyYgdG9wRnJhbWVIb3N0LCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIFdlYlBhZ2VQcm94
eTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtKHBhZ2VJRCwgZnJhbWVJRCwgc3ViRnJhbWVI
b3N0LCB0b3BGcmFtZUhvc3QsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKK30KKwogdm9p
ZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpncmFudFN0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIHJlc291cmNlRG9tYWluLCBjb25zdCBTdHJpbmcmIGZp
cnN0UGFydHlEb21haW4sIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCB1aW50NjRfdCBwYWdl
SUQsIGJvb2wgdXNlcldhc1Byb21wdGVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmICghY2FuU2VuZE1lc3NhZ2UoKSkgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJv
eHkuaAppbmRleCBkYzUyNzJjOGI5NjNkMDkwZjIwMjI4YzU1Y2JiODVlMDA3MDI3ODRiLi4zYzdi
MGJhNGQxN2ZiMDU4MDk0ZmFlMzQ3MGE2N2E3YTU5NDE2YzU5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaApAQCAtMTEz
LDYgKzExMyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGdyYW50U3RvcmFnZUFjY2VzcyhQQUw6OlNl
c3Npb25JRCwgY29uc3QgU3RyaW5nJiByZXNvdXJjZURvbWFpbiwgY29uc3QgU3RyaW5nJiBmaXJz
dFBhcnR5RG9tYWluLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgdWludDY0X3QgcGFnZUlE
LCBib29sIHVzZXJXYXNQcm9tcHRlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7
CiAgICAgdm9pZCBoYXNTdG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdHJpbmcm
IHN1YkZyYW1lSG9zdCwgY29uc3QgU3RyaW5nJiB0b3BGcmFtZUhvc3QsIE9wdGlvbmFsPHVpbnQ2
NF90PiBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9v
bCk+JiYpOwogICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQsIGNv
bnN0IFN0cmluZyYgcmVzb3VyY2VEb21haW4sIGNvbnN0IFN0cmluZyYgZmlyc3RQYXJ0eURvbWFp
biwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJRCwgYm9vbCBwcm9t
cHRFbmFibGVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NTdGF0dXMpPiYm
KTsKKyAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybSh1aW50NjRfdCBwYWdlSUQs
IHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgc3ViRnJhbWVIb3N0LCBjb25zdCBTdHJp
bmcmIHRvcEZyYW1lSG9zdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAgICAg
dm9pZCByZXNldFBhcmFtZXRlcnNUb0RlZmF1bHRWYWx1ZXMoUEFMOjpTZXNzaW9uSUQsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCByZW1vdmVBbGxTdG9yYWdlQWNjZXNz
KFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQg
c2NoZWR1bGVDbGVhckluTWVtb3J5QW5kUGVyc2lzdGVudChQQUw6OlNlc3Npb25JRCwgU2hvdWxk
R3JhbmRmYXRoZXJTdGF0aXN0aWNzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDExYjQwOTJhODAyODc4OWVmNDgxZmU0NjM2
ZDM1NWI1YzQxZWRkNGUuLmYzZWQzNmRhYjkyMmMxM2NhYjU3ZjdiMjRiN2FhNjNlOTgxNzg5MDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KQEAgLTEsNCArMSw0IEBACi0jIENvcHly
aWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdo
dCAoQykgMjAxMi0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDYsNiArNDYsNyBAQCBtZXNzYWdlcyAtPiBOZXR3b3Jr
UHJvY2Vzc1Byb3h5IExlZ2FjeVJlY2VpdmVyIHsKICAgICBOb3RpZnlXZWJzaXRlRGF0YURlbGV0
aW9uRm9yVG9wUHJpdmF0ZWx5T3duZWREb21haW5zRmluaXNoZWQoKQogICAgIE5vdGlmeVdlYnNp
dGVEYXRhU2NhbkZvclRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW5zRmluaXNoZWQoKQogICAg
IE5vdGlmeVJlc291cmNlTG9hZFN0YXRpc3RpY3NUZWxlbWV0cnlGaW5pc2hlZCh1bnNpZ25lZCB0
b3RhbFByZXZhbGVudFJlc291cmNlcywgdW5zaWduZWQgdG90YWxQcmV2YWxlbnRSZXNvdXJjZXNX
aXRoVXNlckludGVyYWN0aW9uLCB1bnNpZ25lZCB0b3AzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3Jp
Z2lucykKKyAgICBSZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0odWludDY0X3QgcGFnZUlELCB1
aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgc3ViRnJhbWVIb3N0LCBTdHJpbmcgdG9wRnJhbWVIb3N0
KSAtPiAoYm9vbCB1c2VyRGlkR3JhbnRBY2Nlc3MpIEFzeW5jCiAjZW5kaWYKICNpZiBFTkFCTEUo
Q09OVEVOVF9FWFRFTlNJT05TKQogICAgIENvbnRlbnRFeHRlbnNpb25SdWxlcyhXZWJLaXQ6OlVz
ZXJDb250ZW50Q29udHJvbGxlcklkZW50aWZpZXIgaWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDc1NmY2ODY3OGEwZTgxZjlhN2NlYmFjODZh
MTgwZWRkMzcyYmE0YWQuLjVkMDMwYmI3Nzg1NjE3NTcxNzIxNGQ1NjY4ODVhY2FjYTNkOWE3NTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtODIzOSwzOCAr
ODIzOSwxNSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bG9hZFN5bmNocm9ub3VzVVJMU2NoZW1lVGFz
ayhVUkxTY2hlbWVUYXNrUGFyYW1ldGVycyYmIHBhcmFtZQogfQogCiAjaWYgRU5BQkxFKFJFU09V
UkNFX0xPQURfU1RBVElTVElDUykKLXZvaWQgV2ViUGFnZVByb3h5OjpoYXNTdG9yYWdlQWNjZXNz
KFN0cmluZyYmIHN1YkZyYW1lSG9zdCwgU3RyaW5nJiYgdG9wRnJhbWVIb3N0LCB1aW50NjRfdCBm
cmFtZUlELCB1aW50NjRfdCB3ZWJQcm9jZXNzQ29udGV4dElkKQordm9pZCBXZWJQYWdlUHJveHk6
OnJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybSh1aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90IGZy
YW1lSUQsIGNvbnN0IFN0cmluZyYgc3ViRnJhbWVIb3N0LCBjb25zdCBTdHJpbmcmIHRvcEZyYW1l
SG9zdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
IHsKLSAgICBtX3dlYnNpdGVEYXRhU3RvcmUtPmhhc1N0b3JhZ2VBY2Nlc3MoV1RGTW92ZShzdWJG
cmFtZUhvc3QpLCBXVEZNb3ZlKHRvcEZyYW1lSG9zdCksIGZyYW1lSUQsIG1fcGFnZUlELCBbdGhp
cywgd2ViUHJvY2Vzc0NvbnRleHRJZF0gKGJvb2wgaGFzQWNjZXNzKSB7Ci0gICAgICAgIG1fcHJv
Y2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U3RvcmFnZUFjY2Vzc1Jlc3BvbnNlKGhhc0Fj
Y2Vzcywgd2ViUHJvY2Vzc0NvbnRleHRJZCksIG1fcGFnZUlEKTsKLSAgICB9KTsKLX0KLQotdm9p
ZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKFN0cmluZyYmIHN1YkZyYW1lSG9z
dCwgU3RyaW5nJiYgdG9wRnJhbWVIb3N0LCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCB3ZWJQ
cm9jZXNzQ29udGV4dElkLCBib29sIHByb21wdEVuYWJsZWQpCi17Ci0gICAgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChib29sKT4gY29tcGxldGlvbkhhbmRsZXIgPSBbdGhpcywgcHJvdGVjdGVkVGhp
cyA9IG1ha2VSZWYoKnRoaXMpLCB3ZWJQcm9jZXNzQ29udGV4dElkXSAoYm9vbCBhY2Nlc3MpIHsK
LSAgICAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTdG9yYWdlQWNjZXNz
UmVzcG9uc2UoYWNjZXNzLCB3ZWJQcm9jZXNzQ29udGV4dElkKSwgbV9wYWdlSUQpOwotICAgIH07
Ci0KLSAgICBtX3dlYnNpdGVEYXRhU3RvcmUtPnJlcXVlc3RTdG9yYWdlQWNjZXNzKFN0cmluZyhz
dWJGcmFtZUhvc3QpLCBTdHJpbmcodG9wRnJhbWVIb3N0KSwgZnJhbWVJRCwgbV9wYWdlSUQsIHBy
b21wdEVuYWJsZWQsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHN1YkZy
YW1lSG9zdCwgdG9wRnJhbWVIb3N0LCBwcm9tcHRFbmFibGVkLCBmcmFtZUlELCBjb21wbGV0aW9u
SGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoU3RvcmFnZUFjY2Vzc1N0YXR1
cyBzdGF0dXMpIG11dGFibGUgewotICAgICAgICBzd2l0Y2ggKHN0YXR1cykgewotICAgICAgICBj
YXNlIFN0b3JhZ2VBY2Nlc3NTdGF0dXM6OkNhbm5vdFJlcXVlc3RBY2Nlc3M6Ci0gICAgICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAg
IGNhc2UgU3RvcmFnZUFjY2Vzc1N0YXR1czo6UmVxdWlyZXNVc2VyUHJvbXB0OgotICAgICAgICAg
ICAgQVNTRVJUX1VOVVNFRChwcm9tcHRFbmFibGVkLCBwcm9tcHRFbmFibGVkKTsKLSAgICAgICAg
ICAgIG1fdWlDbGllbnQtPnJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybSgqdGhpcywgbV9wcm9j
ZXNzLT53ZWJGcmFtZShmcmFtZUlEKSwgUmVzb3VyY2VMb2FkU3RhdGlzdGljczo6cHJpbWFyeURv
bWFpbihzdWJGcmFtZUhvc3QpLCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOjpwcmltYXJ5RG9tYWlu
KHRvcEZyYW1lSG9zdCksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHN1
YkZyYW1lSG9zdCwgdG9wRnJhbWVIb3N0LCBmcmFtZUlELCBjb21wbGV0aW9uSGFuZGxlciA9IFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoYm9vbCB1c2VyRGlkR3JhbnRBY2Nlc3MpIG11dGFi
bGUgewotICAgICAgICAgICAgICAgIGlmICh1c2VyRGlkR3JhbnRBY2Nlc3MpCi0gICAgICAgICAg
ICAgICAgICAgIG1fd2Vic2l0ZURhdGFTdG9yZS0+Z3JhbnRTdG9yYWdlQWNjZXNzKFdURk1vdmUo
c3ViRnJhbWVIb3N0KSwgV1RGTW92ZSh0b3BGcmFtZUhvc3QpLCBmcmFtZUlELCBtX3BhZ2VJRCwg
dXNlckRpZEdyYW50QWNjZXNzLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgICAg
ICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxz
ZSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgY2FzZSBT
dG9yYWdlQWNjZXNzU3RhdHVzOjpIYXNBY2Nlc3M6Ci0gICAgICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcih0cnVlKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgIH0pOworICAg
IFdlYlBhZ2VQcm94eSogcGFnZSA9IFdlYlByb2Nlc3NQcm94eTo6d2ViUGFnZShwYWdlSUQpOwor
ICAgIGlmICghcGFnZSkgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisgICAgCisgICAgcGFnZS0+bV91aUNsaWVudC0+cmVxdWVzdFN0
b3JhZ2VBY2Nlc3NDb25maXJtKCpwYWdlLCBwYWdlLT5tX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1l
SUQpLCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOjpwcmltYXJ5RG9tYWluKHN1YkZyYW1lSG9zdCks
IFJlc291cmNlTG9hZFN0YXRpc3RpY3M6OnByaW1hcnlEb21haW4odG9wRnJhbWVIb3N0KSwgV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKaW5kZXggMTliMTJmNDJkMzljNTU2ZDZkZGM2NDdiNjlkNDI1N2E4
ZTc1ZDM2My4uNGIxNzFlNjMzOWMzZDU3NmUzZWYxNGEyNjU3NzI5NjY3ZDRkYjJhOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTEzODAsOCArMTM4MCw3IEBAIHB1
YmxpYzoKICNlbmRpZgogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKLSAg
ICB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoU3RyaW5nJiYgc3ViRnJhbWVIb3N0LCBTdHJpbmcmJiB0
b3BGcmFtZUhvc3QsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHdlYlByb2Nlc3NDb250ZXh0
SWQpOwotICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoU3RyaW5nJiYgc3ViRnJhbWVIb3N0
LCBTdHJpbmcmJiB0b3BGcmFtZUhvc3QsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHdlYlBy
b2Nlc3NDb250ZXh0SWQsIGJvb2wgcHJvbXB0KTsKKyAgICBzdGF0aWMgdm9pZCByZXF1ZXN0U3Rv
cmFnZUFjY2Vzc0NvbmZpcm0odWludDY0X3QgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBjb25z
dCBTdHJpbmcmIHN1YkZyYW1lSG9zdCwgY29uc3QgU3RyaW5nJiB0b3BGcmFtZUhvc3QsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogI2VuZGlmCiAKICAgICBzdGF0aWMgV2ViUGFn
ZVByb3h5KiBub25FcGhlbWVyYWxXZWJQYWdlUHJveHkoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCA5OTYxMzY2MDU4ZDhjNzI2
ZDQwNmVmNWU3OWFjMDNmY2JlZmJiNDJmLi45MjkzODk2YmVlOThiNDlkMWExMmI0MjY2ODdhMDJh
MWZiNWUxNDMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lm1lc3NhZ2VzLmluCkBAIC0xLDQgKzEsNCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxMC0yMDE5
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtNTM0LDExICs1MzQsNiBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAg
IFN0b3BVUkxTY2hlbWVUYXNrKHVpbnQ2NF90IGhhbmRsZXJJZGVudGlmaWVyLCB1aW50NjRfdCB0
YXNrSWRlbnRpZmllcikKICAgICBMb2FkU3luY2hyb25vdXNVUkxTY2hlbWVUYXNrKHN0cnVjdCBX
ZWJLaXQ6OlVSTFNjaGVtZVRhc2tQYXJhbWV0ZXJzIHBhcmFtZXRlcnMpIC0+IChXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9yLCBJ
UEM6OkRhdGFSZWZlcmVuY2UgZGF0YSkgRGVsYXllZAogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xP
QURfU1RBVElTVElDUykKLSAgICBIYXNTdG9yYWdlQWNjZXNzKFN0cmluZyBzdWJGcmFtZUhvc3Qs
IFN0cmluZyB0b3BGcmFtZUhvc3QsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IGNvbnRleHRJ
RCkKLSAgICBSZXF1ZXN0U3RvcmFnZUFjY2VzcyhTdHJpbmcgc3ViRnJhbWVIb3N0LCBTdHJpbmcg
dG9wRnJhbWVIb3N0LCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBjb250ZXh0SUQsIGJvb2wg
cHJvbXB0KQotI2VuZGlmCi0KICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQogICAgIFJl
Z2lzdGVyQXR0YWNobWVudElkZW50aWZpZXJGcm9tRGF0YShTdHJpbmcgaWRlbnRpZmllciwgU3Ry
aW5nIGNvbnRlbnRUeXBlLCBTdHJpbmcgcHJlZmVycmVkRmlsZU5hbWUsIElQQzo6U2hhcmVkQnVm
ZmVyRGF0YVJlZmVyZW5jZSBkYXRhKQogICAgIFJlZ2lzdGVyQXR0YWNobWVudElkZW50aWZpZXJG
cm9tRmlsZVBhdGgoU3RyaW5nIGlkZW50aWZpZXIsIFN0cmluZyBjb250ZW50VHlwZSwgU3RyaW5n
IGZpbGVQYXRoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cAppbmRleCBkMGI5NzUzMDgwYzM2MTM4YWZiMzQ1MzU1MWM1YWVlNzE4MDgyN2I4Li4yM2ViZTYx
YjVlZWJlZDZkMDU3OTc2ZWFhNzk0MGI5ZTJiMjcwNzNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNjM2Nyw0MCArNjM2NywxNSBAQCB2b2lk
IFdlYlBhZ2U6OmZyYW1lQmVjYW1lUmVtb3RlKHVpbnQ2NF90IGZyYW1lSUQsIEdsb2JhbEZyYW1l
SWRlbnRpZmllciYmIHJlbW90ZQogfQogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElT
VElDUykKLXN0YXRpYyB1aW50NjRfdCBuZXh0UmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb250ZXh0SWQo
KQordm9pZCBXZWJQYWdlOjpoYXNTdG9yYWdlQWNjZXNzKFN0cmluZyYmIHN1YkZyYW1lSG9zdCwg
U3RyaW5nJiYgdG9wRnJhbWVIb3N0LCB1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIHN0YXRpYyB1aW50NjRf
dCBuZXh0Q29udGV4dElkID0gMDsKLSAgICByZXR1cm4gKytuZXh0Q29udGV4dElkOwotfQotCi12
b2lkIFdlYlBhZ2U6Omhhc1N0b3JhZ2VBY2Nlc3MoU3RyaW5nJiYgc3ViRnJhbWVIb3N0LCBTdHJp
bmcmJiB0b3BGcmFtZUhvc3QsIHVpbnQ2NF90IGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoYm9vbCk+JiYgY2FsbGJhY2spCi17Ci0gICAgYXV0byBjb250ZXh0SWQgPSBuZXh0UmVxdWVz
dFN0b3JhZ2VBY2Nlc3NDb250ZXh0SWQoKTsKLSAgICBhdXRvIGFkZFJlc3VsdCA9IG1fc3RvcmFn
ZUFjY2Vzc1Jlc3BvbnNlQ2FsbGJhY2tNYXAuYWRkKGNvbnRleHRJZCwgV1RGTW92ZShjYWxsYmFj
aykpOwotICAgIEFTU0VSVChhZGRSZXN1bHQuaXNOZXdFbnRyeSk7Ci0gICAgaWYgKGFkZFJlc3Vs
dC5pdGVyYXRvci0+dmFsdWUpCi0gICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
SGFzU3RvcmFnZUFjY2VzcyhXVEZNb3ZlKHN1YkZyYW1lSG9zdCksIFdURk1vdmUodG9wRnJhbWVI
b3N0KSwgZnJhbWVJRCwgY29udGV4dElkKSk7Ci0gICAgZWxzZQotICAgICAgICBjYWxsYmFjayhm
YWxzZSk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6Okhhc1N0b3JhZ2VBY2Nlc3Moc2Vzc2lvbklEKCks
IFdURk1vdmUoc3ViRnJhbWVIb3N0KSwgV1RGTW92ZSh0b3BGcmFtZUhvc3QpLCBmcmFtZUlELCBt
X3BhZ2VJRCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KICAgICAKLXZvaWQgV2Vi
UGFnZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoU3RyaW5nJiYgc3ViRnJhbWVIb3N0LCBTdHJpbmcm
JiB0b3BGcmFtZUhvc3QsIHVpbnQ2NF90IGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Ym9vbCk+JiYgY2FsbGJhY2spCit2b2lkIFdlYlBhZ2U6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKFN0
cmluZyYmIHN1YkZyYW1lSG9zdCwgU3RyaW5nJiYgdG9wRnJhbWVIb3N0LCB1aW50NjRfdCBmcmFt
ZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQog
ewotICAgIGF1dG8gY29udGV4dElkID0gbmV4dFJlcXVlc3RTdG9yYWdlQWNjZXNzQ29udGV4dElk
KCk7Ci0gICAgYXV0byBhZGRSZXN1bHQgPSBtX3N0b3JhZ2VBY2Nlc3NSZXNwb25zZUNhbGxiYWNr
TWFwLmFkZChjb250ZXh0SWQsIFdURk1vdmUoY2FsbGJhY2spKTsKLSAgICBBU1NFUlQoYWRkUmVz
dWx0LmlzTmV3RW50cnkpOwotICAgIGlmIChhZGRSZXN1bHQuaXRlcmF0b3ItPnZhbHVlKSB7Ci0g
ICAgICAgIGJvb2wgcHJvbXB0RW5hYmxlZCA9IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJl
ZEZlYXR1cmVzKCkuc3RvcmFnZUFjY2Vzc1Byb21wdHNFbmFibGVkKCk7Ci0gICAgICAgIHNlbmQo
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UmVxdWVzdFN0b3JhZ2VBY2Nlc3MoV1RGTW92ZShzdWJG
cmFtZUhvc3QpLCBXVEZNb3ZlKHRvcEZyYW1lSG9zdCksIGZyYW1lSUQsIGNvbnRleHRJZCwgcHJv
bXB0RW5hYmxlZCkpOwotICAgIH0gZWxzZQotICAgICAgICBjYWxsYmFjayhmYWxzZSk7Ci19Ci0K
LXZvaWQgV2ViUGFnZTo6c3RvcmFnZUFjY2Vzc1Jlc3BvbnNlKGJvb2wgd2FzR3JhbnRlZCwgdWlu
dDY0X3QgY29udGV4dElkKQotewotICAgIGF1dG8gY2FsbGJhY2sgPSBtX3N0b3JhZ2VBY2Nlc3NS
ZXNwb25zZUNhbGxiYWNrTWFwLnRha2UoY29udGV4dElkKTsKLSAgICBBU1NFUlQoY2FsbGJhY2sp
OwotICAgIGNhbGxiYWNrKHdhc0dyYW50ZWQpOworICAgIGJvb2wgcHJvbXB0RW5hYmxlZCA9IFJ1
bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc3RvcmFnZUFjY2Vzc1Byb21w
dHNFbmFibGVkKCk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdl
czo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlJlcXVlc3RTdG9yYWdlQWNjZXNzKHNl
c3Npb25JRCgpLCBXVEZNb3ZlKHN1YkZyYW1lSG9zdCksIFdURk1vdmUodG9wRnJhbWVIb3N0KSwg
ZnJhbWVJRCwgbV9wYWdlSUQsIHByb21wdEVuYWJsZWQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSk7CiB9CiAjZW5kaWYKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaAppbmRleCBlNzY0Zjk5MmUyNTE3OWYzZWIxOTA5ODFjNjk1MDQ0MzE5MGYyMDMx
Li4xOTBkNjJlYWYzNWNmZWRjODE3NjE5NTJkOTYzZDA3MWZkYzM1YmVhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMC0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTExMSw3ICsxMTExLDYgQEAg
cHVibGljOgogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAgICAgdm9pZCBo
YXNTdG9yYWdlQWNjZXNzKFN0cmluZyYmIHN1YkZyYW1lSG9zdCwgU3RyaW5nJiYgdG9wRnJhbWVI
b3N0LCB1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNh
bGxiYWNrKTsKICAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKFN0cmluZyYmIHN1YkZyYW1l
SG9zdCwgU3RyaW5nJiYgdG9wRnJhbWVIb3N0LCB1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNrKTsKLSAgICB2b2lkIHN0b3JhZ2VBY2Nlc3NS
ZXNwb25zZShib29sIHdhc0dyYW50ZWQsIHVpbnQ2NF90IGNvbnRleHRJZCk7CiAjZW5kaWYKIAog
ICAgIHZvaWQgc2hvd1NoYXJlU2hlZXQoV2ViQ29yZTo6U2hhcmVEYXRhV2l0aFBhcnNlZFVSTCYs
IFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjYWxsYmFjayk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmlu
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpp
bmRleCA0ZGJlMGEzNGE5OTM4Y2M1YzMyZWM1N2IyNDMxM2VhZGQyMmJiNGZiLi5lNjlhYzZmZGRi
Y2RmZWU2NDA3MWNlOWExMTk2MWJkNmQ4MDI5ODgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTEsNCArMSw0IEBA
Ci0jIENvcHlyaWdodCAoQykgMjAxMC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyMgQ29weXJpZ2h0IChDKSAyMDEwLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01MzEsMTAgKzUzMSw2IEBAIG1l
c3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogCiAgICAgU2V0SXNTdXNwZW5kZWQo
Ym9vbCBzdXNwZW5kZWQpCiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQot
ICAgIFN0b3JhZ2VBY2Nlc3NSZXNwb25zZShib29sIHdhc0dyYW50ZWQsIHVpbnQ2NF90IGNvbnRl
eHRJZCkKLSNlbmRpZgotCiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKICAgICBJbnNl
cnRBdHRhY2htZW50KFN0cmluZyBpZGVudGlmaWVyLCBPcHRpb25hbDx1aW50NjRfdD4gZmlsZVNp
emUsIFN0cmluZyBmaWxlTmFtZSwgU3RyaW5nIGNvbnRlbnRUeXBlLCBXZWJLaXQ6OkNhbGxiYWNr
SUQgY2FsbGJhY2tJRCkKICAgICBVcGRhdGVBdHRhY2htZW50QXR0cmlidXRlcyhTdHJpbmcgaWRl
bnRpZmllciwgT3B0aW9uYWw8dWludDY0X3Q+IGZpbGVTaXplLCBTdHJpbmcgY29udGVudFR5cGUs
IFN0cmluZyBmaWxlTmFtZSwgSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlIGVuY2xvc2lu
Z0ltYWdlRGF0YSwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>360469</attachid>
            <date>2019-01-29 10:16:03 -0800</date>
            <delta_ts>2019-01-29 10:26:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193924-20190129101602.patch</filename>
            <type>text/plain</type>
            <size>35617</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwNjIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDQ3NDYyYjRmZGNiNWMwZjJi
MjQxOTExNjliNWI0MzgxNjQ5NzcxODQuLmNiYjk5M2JkNmQxZDg3ZjE3ZmI1ZTYxN2Q4MzZkNGNm
OTc1ZWJkMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTEgQEAKKzIwMTktMDEtMjkgIEJyZW50IEZ1
bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CisKKyAgICAgICAgU3RvcmFnZUFjY2VzcyBBUEkg
Y2FsbHMgc2hvdWxkIGJlIGRpcmVjdCB0byB0aGUgTmV0d29yayBQcm9jZXNzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTM5MjQKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzQ3NjExMjQ5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIE5vdyB0aGF0IHRoZSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzIGRhdGEg
bGl2ZXMgaW4gdGhlIE5ldHdvcmsgUHJvY2VzcywgY2FsbHMgdG8gU3RvcmFnZSBBY2Nlc3MKKyAg
ICAgICAgQVBJIHNob3VsZCBoYXBwZW4gZGlyZWN0bHkgYmV0d2VlbiB0aGUgV2ViQ29udGVudCBh
bmQgTmV0d29yayBwcm9jZXNzZXMuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lm
aWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3NHcmFu
dGVkKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OnJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFtZSk6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZW1vdmVTdG9yYWdlQWNjZXNz
Rm9yQWxsRnJhbWVzT25QYWdlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3M6OmxvZ1VzZXJJbnRlcmFjdGlvbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpsb2dXZWJTb2NrZXRMb2FkaW5nKToKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmxvZ1N1YnJlc291cmNlTG9h
ZGluZyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjps
b2dTdWJyZXNvdXJjZVJlZGlyZWN0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OnJlcXVlc3RSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVXBkYXRlKToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6Omhhc1N0b3JhZ2VB
Y2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
cmVxdWVzdFN0b3JhZ2VBY2Nlc3MpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vz
czo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vz
czo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3NHcmFudGVkKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpy
ZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlcXVlc3RTdG9yYWdl
QWNjZXNzQ29uZmlybSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6aGFzU3RvcmFn
ZUFjY2Vzcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVz
dFN0b3JhZ2VBY2Nlc3MpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6aGFzU3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnJl
cXVlc3RTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdlYktpdDo6bmV4dFJlcXVlc3RTdG9yYWdl
QWNjZXNzQ29udGV4dElkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c3Rv
cmFnZUFjY2Vzc1Jlc3BvbnNlKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3Nh
Z2VzLmluOgorCiAyMDE5LTAxLTI4ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+
CiAKICAgICAgICAgTW92ZSBzb2Z0LWxpbmtpbmcgb2YgTWFuYWdlZENvbmZpZ3VyYXRpb24uZnJh
bWV3b3JrIG91dCBvZiBNYW5hZ2VkQ29uZmlndXJhdGlvblNQSS5oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9X
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCmluZGV4IDVjZGY4MzAyNjUyNzEwMTRh
OTVjMDQ1NGI4N2M0Y2YxODU1OGY1MjcuLjZmOWVmN2RiNmViM2Q3NjMxOGI3YzVhNTJjMDdlMWEy
OGFlNDgyZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3Np
Zmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmUuY3BwCkBAIC0yOTMsMTQgKzI5MywzNCBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZTo6Y2FsbEhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZUhhbmRsZXIoY29uc3QgUwogICAg
IGNhbGxiYWNrKGZhbHNlKTsKIH0KIAotdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmU6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKFN0cmluZyYmIHN1YkZyYW1lSG9zdCwgU3RyaW5nJiYg
dG9wRnJhbWVIb3N0LCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIGJvb2wgcHJv
bXB0RW5hYmxlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzU3RhdHVzKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
OjpyZXF1ZXN0U3RvcmFnZUFjY2Vzc0dyYW50ZWQoY29uc3QgU3RyaW5nJiBzdWJGcmFtZUhvc3Qs
IGNvbnN0IFN0cmluZyYgdG9wRnJhbWVIb3N0LCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBw
YWdlSUQsIGJvb2wgcHJvbXB0RW5hYmxlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBBU1NFUlQoc3ViRnJhbWVIb3N0ICE9IHRvcEZy
YW1lSG9zdCk7Ci0gICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKKyAgICBhdXRvIHN0YXR1
c0hhbmRsZXIgPSBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBzdWJGcmFt
ZUhvc3QgPSBzdWJGcmFtZUhvc3QuaXNvbGF0ZWRDb3B5KCksIHRvcEZyYW1lSG9zdCA9IHRvcEZy
YW1lSG9zdC5pc29sYXRlZENvcHkoKSwgcHJvbXB0RW5hYmxlZCwgZnJhbWVJRCwgcGFnZUlELCBj
b21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShTdG9yYWdlQWNj
ZXNzU3RhdHVzIHN0YXR1cykgbXV0YWJsZSB7CisgICAgICAgIHN3aXRjaCAoc3RhdHVzKSB7Cisg
ICAgICAgIGNhc2UgU3RvcmFnZUFjY2Vzc1N0YXR1czo6Q2Fubm90UmVxdWVzdEFjY2VzczoKKyAg
ICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgY2FzZSBTdG9yYWdlQWNjZXNzU3RhdHVzOjpSZXF1aXJlc1VzZXJQcm9tcHQ6Cisg
ICAgICAgICAgICB7CisgICAgICAgICAgICBBU1NFUlRfVU5VU0VEKHByb21wdEVuYWJsZWQsIHBy
b21wdEVuYWJsZWQpOworICAgICAgICAgICAgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4g
cmVxdWVzdENvbmZpcm1hdGlvbkNvbXBsZXRpb25IYW5kbGVyID0gW3RoaXMsIHByb3RlY3RlZFRo
aXMgPSBtYWtlUmVmKCp0aGlzKSwgc3ViRnJhbWVIb3N0ID0gV1RGTW92ZShzdWJGcmFtZUhvc3Qp
LCB0b3BGcmFtZUhvc3QgPSBXVEZNb3ZlKHRvcEZyYW1lSG9zdCksIGZyYW1lSUQsIHBhZ2VJRCwg
Y29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKGJvb2wgdXNl
ckRpZEdyYW50QWNjZXNzKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBpZiAodXNlckRpZEdy
YW50QWNjZXNzKQorICAgICAgICAgICAgICAgICAgICBncmFudFN0b3JhZ2VBY2Nlc3MoV1RGTW92
ZShzdWJGcmFtZUhvc3QpLCBXVEZNb3ZlKHRvcEZyYW1lSG9zdCksIGZyYW1lSUQsIHBhZ2VJRCwg
dXNlckRpZEdyYW50QWNjZXNzLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxz
ZSk7CisgICAgICAgICAgICB9OworICAgICAgICAgICAgbV9uZXR3b3JrU2Vzc2lvbi0+bmV0d29y
a1Byb2Nlc3MoKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kV2l0aEFzeW5jUmVwbHko
TWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OlJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmly
bShwYWdlSUQsIGZyYW1lSUQsIFJlc291cmNlTG9hZFN0YXRpc3RpY3M6OnByaW1hcnlEb21haW4o
c3ViRnJhbWVIb3N0KSwgUmVzb3VyY2VMb2FkU3RhdGlzdGljczo6cHJpbWFyeURvbWFpbih0b3BG
cmFtZUhvc3QpKSwgV1RGTW92ZShyZXF1ZXN0Q29uZmlybWF0aW9uQ29tcGxldGlvbkhhbmRsZXIp
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgY2FzZSBTdG9y
YWdlQWNjZXNzU3RhdHVzOjpIYXNBY2Nlc3M6CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cih0cnVlKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH07CiAKLSAgICBy
ZXF1ZXN0U3RvcmFnZUFjY2VzcyhzdWJGcmFtZUhvc3QsIHRvcEZyYW1lSG9zdCwgZnJhbWVJRCwg
cGFnZUlELCBwcm9tcHRFbmFibGVkLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAg
cmVxdWVzdFN0b3JhZ2VBY2Nlc3Moc3ViRnJhbWVIb3N0LCB0b3BGcmFtZUhvc3QsIGZyYW1lSUQs
IHBhZ2VJRCwgcHJvbXB0RW5hYmxlZCwgV1RGTW92ZShzdGF0dXNIYW5kbGVyKSk7CiB9Ci0gICAg
CisKIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpyZXF1ZXN0U3RvcmFnZUFj
Y2Vzcyhjb25zdCBTdHJpbmcmIHN1YkZyYW1lSG9zdCwgY29uc3QgU3RyaW5nJiB0b3BGcmFtZUhv
c3QsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIGJvb2wgcHJv
bXB0RW5hYmxlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzU3RhdHVzKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBhdXRvIHN1YkZyYW1lUHJpbWFyeURvbWFpbiA9
IGlzb2xhdGVkUHJpbWFyeURvbWFpbihzdWJGcmFtZUhvc3QpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCmluZGV4IGQyODg5MGViZTBiNGU2MzdmMDMxMzBk
YWZhMGU3MGY0MjM2MzVjMjEuLjExYzAwY2E4NWQxNjk3MTBiNjk5MGI0MTliNDQzOGE5MmFlODkx
ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9X
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKQEAg
LTc1LDkgKzc1LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U2hvdWxkQ2xhc3NpZnlSZXNvdXJj
ZXNCZWZvcmVEYXRhUmVjb3Jkc1JlbW92YWwoYm9vbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKTsKICAgICB2b2lkIHNldFNob3VsZFN1Ym1pdFRlbGVtZXRyeShib29sKTsKIAotICAgIHZv
aWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoU3RyaW5nJiYgc3ViRnJhbWVIb3N0LCBTdHJpbmcmJiB0
b3BGcmFtZUhvc3QsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJRCwgYm9vbCBwcm9t
cHRFbmFibGVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NTdGF0dXMpPiYm
KTsKICAgICB2b2lkIGdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdCBTdHJpbmcmIHN1YkZyYW1lSG9z
dCwgY29uc3QgU3RyaW5nJiB0b3BGcmFtZUhvc3QsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90
IHBhZ2VJRCwgYm9vbCB1c2VyV2FzUHJvbXB0ZWROb3csIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Ym9vbCk+JiYpOwotICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3NDYWxsYmFjayhib29sIHdh
c0dyYW50ZWQsIHVpbnQ2NF90IGNvbnRleHRJZCk7CiAKICAgICB2b2lkIGFwcGxpY2F0aW9uV2ls
bFRlcm1pbmF0ZSgpOwogCkBAIC05NSw2ICs5Myw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGhhc1N0
b3JhZ2VBY2Nlc3MoY29uc3QgU3RyaW5nJiBzdWJGcmFtZUhvc3QsIGNvbnN0IFN0cmluZyYgdG9w
RnJhbWVIb3N0LCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgdWludDY0X3QgcGFnZUlELCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNrKTsKICAgICBib29sIGhhc1N0
b3JhZ2VBY2Nlc3NGb3JGcmFtZShjb25zdCBTdHJpbmcmIHJlc291cmNlRG9tYWluLCBjb25zdCBT
dHJpbmcmIGZpcnN0UGFydHlEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJ
RCk7CiAgICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vzcyhjb25zdCBTdHJpbmcmIHJlc291cmNl
RG9tYWluLCBjb25zdCBTdHJpbmcmIGZpcnN0UGFydHlEb21haW4sIE9wdGlvbmFsPHVpbnQ2NF90
PiBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIGJvb2wgcHJvbXB0RW5hYmxlZCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzU3RhdHVzKT4mJik7CisgICAgdm9pZCByZXF1ZXN0
U3RvcmFnZUFjY2Vzc0dyYW50ZWQoY29uc3QgU3RyaW5nJiBzdWJGcmFtZUhvc3QsIGNvbnN0IFN0
cmluZyYgdG9wRnJhbWVIb3N0LCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIGJv
b2wgcHJvbXB0RW5hYmxlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAgICAg
dm9pZCByZXF1ZXN0VXBkYXRlKCk7CiAgICAgdm9pZCBzZXRMYXN0U2Vlbihjb25zdCBTdHJpbmcm
IHJlc291cmNlRG9tYWluLCBTZWNvbmRzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwog
ICAgIHZvaWQgc2V0UHJldmFsZW50UmVzb3VyY2UoY29uc3QgU3RyaW5nJiByZXNvdXJjZURvbWFp
biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5j
cHAKaW5kZXggNzUzOGUxZDMyNTFjNzNiNThmYmQ5NjEzODQwMDA3YWNmNGI5YmFiZi4uMmZkN2Fm
ZGQ5OWFiNzlhZGE3ZmU3NzkxZDFiN2YxZmM3YzBkMGMzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5jcHAKQEAgLTU2LDYgKzU2LDcgQEAKICNpbmNsdWRlICJXZWJTV1NlcnZlclRvQ29udGV4
dENvbm5lY3Rpb25NZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYnNpdGVEYXRhU3RvcmVQYXJhbWV0
ZXJzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1Jlc291cmNlUmVxdWVzdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2FtZVNpdGVJbmZvLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eVBvbGljeS5oPgpAQCAtNTU5LDg5ICs1NjAsNTMgQEAg
dm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZW5zdXJlTGVnYWN5UHJpdmF0ZUJy
b3dzaW5nU2Vzc2lvbigpCiAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+YWRkV2Vic2l0ZURhdGFTdG9y
ZShXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVyczo6bGVnYWN5UHJpdmF0ZVNlc3Npb25QYXJhbWV0
ZXJzKCkpOwogfQogCisjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKIHZvaWQg
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFt
ZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBh
Z2VJRCkKIHsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIGlmIChh
dXRvKiBzdG9yYWdlU2Vzc2lvbiA9IG5ldHdvcmtQcm9jZXNzKCkuc3RvcmFnZVNlc3Npb24oc2Vz
c2lvbklEKSkKICAgICAgICAgc3RvcmFnZVNlc3Npb24tPnJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JG
cmFtZShmcmFtZUlELCBwYWdlSUQpOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oc2Vzc2lvbklE
KTsKLSAgICBVTlVTRURfUEFSQU0oZnJhbWVJRCk7Ci0gICAgVU5VU0VEX1BBUkFNKHBhZ2VJRCk7
Ci0jZW5kaWYKIH0KIAogdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVtb3Zl
U3RvcmFnZUFjY2Vzc0ZvckFsbEZyYW1lc09uUGFnZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IHVpbnQ2NF90IHBhZ2VJRCkKIHsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNT
KQogICAgIGlmIChhdXRvKiBzdG9yYWdlU2Vzc2lvbiA9IG5ldHdvcmtQcm9jZXNzKCkuc3RvcmFn
ZVNlc3Npb24oc2Vzc2lvbklEKSkKICAgICAgICAgc3RvcmFnZVNlc3Npb24tPnJlbW92ZVN0b3Jh
Z2VBY2Nlc3NGb3JBbGxGcmFtZXNPblBhZ2UocGFnZUlEKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BB
UkFNKHNlc3Npb25JRCk7Ci0gICAgVU5VU0VEX1BBUkFNKHBhZ2VJRCk7Ci0jZW5kaWYKIH0KIAog
dm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6bG9nVXNlckludGVyYWN0aW9uKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiB0b3BMZXZlbE9yaWdpbikKIHsK
LSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIGlmIChhdXRvIG5ldHdv
cmtTZXNzaW9uID0gbmV0d29ya1Byb2Nlc3MoKS5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7
CiAgICAgICAgIGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gbmV0d29ya1Nlc3Np
b24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkKICAgICAgICAgICAgIHJlc291cmNlTG9hZFN0
YXRpc3RpY3MtPmxvZ1VzZXJJbnRlcmFjdGlvbih0b3BMZXZlbE9yaWdpbiwgW10geyB9KTsKICAg
ICB9Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShzZXNzaW9uSUQpOwotICAgIFVOVVNFRF9QQVJB
TSh0b3BMZXZlbE9yaWdpbik7Ci0jZW5kaWYKIH0KIAogdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6bG9nV2ViU29ja2V0TG9hZGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IGNvbnN0IFN0cmluZyYgdGFyZ2V0UHJpbWFyeURvbWFpbiwgY29uc3QgU3RyaW5nJiBtYWluRnJh
bWVQcmltYXJ5RG9tYWluLCBXYWxsVGltZSBsYXN0U2VlbikKIHsKLSNpZiBFTkFCTEUoUkVTT1VS
Q0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIGlmIChhdXRvIG5ldHdvcmtTZXNzaW9uID0gbmV0d29y
a1Byb2Nlc3MoKS5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7CiAgICAgICAgIGlmIChhdXRv
KiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gbmV0d29ya1Nlc3Npb24tPnJlc291cmNlTG9hZFN0
YXRpc3RpY3MoKSkKICAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPmxvZ1dlYlNv
Y2tldExvYWRpbmcodGFyZ2V0UHJpbWFyeURvbWFpbiwgbWFpbkZyYW1lUHJpbWFyeURvbWFpbiwg
bGFzdFNlZW4sIFtdIHsgfSk7CiAgICAgfQotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oc2Vzc2lv
bklEKTsKLSAgICBVTlVTRURfUEFSQU0odGFyZ2V0UHJpbWFyeURvbWFpbik7Ci0gICAgVU5VU0VE
X1BBUkFNKG1haW5GcmFtZVByaW1hcnlEb21haW4pOwotICAgIFVOVVNFRF9QQVJBTShsYXN0U2Vl
bik7Ci0jZW5kaWYKIH0KIAogdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6bG9n
U3VicmVzb3VyY2VMb2FkaW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5n
JiB0YXJnZXRQcmltYXJ5RG9tYWluLCBjb25zdCBTdHJpbmcmIG1haW5GcmFtZVByaW1hcnlEb21h
aW4sIFdhbGxUaW1lIGxhc3RTZWVuKQogewotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJ
U1RJQ1MpCiAgICAgaWYgKGF1dG8gbmV0d29ya1Nlc3Npb24gPSBuZXR3b3JrUHJvY2VzcygpLm5l
dHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKICAgICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9h
ZFN0YXRpc3RpY3MgPSBuZXR3b3JrU2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpKQog
ICAgICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+bG9nU3VicmVzb3VyY2VMb2FkaW5n
KHRhcmdldFByaW1hcnlEb21haW4sIG1haW5GcmFtZVByaW1hcnlEb21haW4sIGxhc3RTZWVuLCBb
XSB7IH0pOwogICAgIH0KLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKHNlc3Npb25JRCk7Ci0gICAg
VU5VU0VEX1BBUkFNKHRhcmdldFByaW1hcnlEb21haW4pOwotICAgIFVOVVNFRF9QQVJBTShtYWlu
RnJhbWVQcmltYXJ5RG9tYWluKTsKLSAgICBVTlVTRURfUEFSQU0obGFzdFNlZW4pOwotI2VuZGlm
CiB9CiAKIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmxvZ1N1YnJlc291cmNl
UmVkaXJlY3QoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIHNvdXJjZVBy
aW1hcnlEb21haW4sIGNvbnN0IFN0cmluZyYgdGFyZ2V0UHJpbWFyeURvbWFpbikKIHsKLSNpZiBF
TkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIGlmIChhdXRvIG5ldHdvcmtTZXNz
aW9uID0gbmV0d29ya1Byb2Nlc3MoKS5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7CiAgICAg
ICAgIGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gbmV0d29ya1Nlc3Npb24tPnJl
c291cmNlTG9hZFN0YXRpc3RpY3MoKSkKICAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3Rp
Y3MtPmxvZ1N1YnJlc291cmNlUmVkaXJlY3Qoc291cmNlUHJpbWFyeURvbWFpbiwgdGFyZ2V0UHJp
bWFyeURvbWFpbiwgW10geyB9KTsKICAgICB9Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShzZXNz
aW9uSUQpOwotICAgIFVOVVNFRF9QQVJBTShzb3VyY2VQcmltYXJ5RG9tYWluKTsKLSAgICBVTlVT
RURfUEFSQU0odGFyZ2V0UHJpbWFyeURvbWFpbik7Ci0jZW5kaWYKIH0KIAogdm9pZCBOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVxdWVzdFJlc291cmNlTG9hZFN0YXRpc3RpY3NVcGRh
dGUoKQogewotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAgICAgZm9yIChh
dXRvJiBuZXR3b3JrU2Vzc2lvbiA6IG5ldHdvcmtQcm9jZXNzKCkubmV0d29ya1Nlc3Npb25zKCku
dmFsdWVzKCkpIHsKICAgICAgICAgaWYgKG5ldHdvcmtTZXNzaW9uLT5zZXNzaW9uSUQoKS5pc0Vw
aGVtZXJhbCgpKQogICAgICAgICAgICAgY29udGludWU7CkBAIC02NDksOSArNjE0LDE5IEBAIHZv
aWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlcXVlc3RSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzVXBkYXRlKCkKICAgICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3Mg
PSBuZXR3b3JrU2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpKQogICAgICAgICAgICAg
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+cmVxdWVzdFVwZGF0ZSgpOwogICAgIH0KLSNlbmRpZgog
fQogCit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpoYXNTdG9yYWdlQWNjZXNz
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBzdWJGcmFtZUhvc3QsIGNv
bnN0IFN0cmluZyYgdG9wRnJhbWVIb3N0LCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBwYWdl
SUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7
CisgICAgbmV0d29ya1Byb2Nlc3MoKS5oYXNTdG9yYWdlQWNjZXNzKHNlc3Npb25JRCwgc3ViRnJh
bWVIb3N0LCB0b3BGcmFtZUhvc3QsIGZyYW1lSUQsIHBhZ2VJRCwgV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikpOworfQorCit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZXF1
ZXN0U3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYg
c3ViRnJhbWVIb3N0LCBjb25zdCBTdHJpbmcmIHRvcEZyYW1lSG9zdCwgdWludDY0X3QgZnJhbWVJ
RCwgdWludDY0X3QgcGFnZUlELCBib29sIHByb21wdEVuYWJsZWQsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgbmV0d29ya1Byb2Nlc3Mo
KS5yZXF1ZXN0U3RvcmFnZUFjY2Vzc0dyYW50ZWQoc2Vzc2lvbklELCBzdWJGcmFtZUhvc3QsIHRv
cEZyYW1lSG9zdCwgZnJhbWVJRCwgcGFnZUlELCBwcm9tcHRFbmFibGVkLCBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSk7Cit9CisjZW5kaWYKKwogdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6YWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoY29uc3QgU3RyaW5nJiBzb3Vy
Y2VPcmlnaW4sIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25Qcm90b2NvbCwgY29uc3QgU3RyaW5n
JiBkZXN0aW5hdGlvbkhvc3QsIGJvb2wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpCiB7CiAg
ICAgU2VjdXJpdHlQb2xpY3k6OmFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KFNlY3VyaXR5
T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKHNvdXJjZU9yaWdpbikuZ2V0KCksIGRlc3RpbmF0aW9u
UHJvdG9jb2wsIGRlc3RpbmF0aW9uSG9zdCwgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5oCmluZGV4IDQ0YzBhNWY3MTQzNmJkYTNjMjk0MzA5NzE2NDBi
ZjlmMjIzZWQ0YjguLjkxNGQ3YmQ2ODVhMDU0YWU1M2RhNDU2NTA3YmQzMWIyOGQxYmE3ZjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKQEAgLTE5MiwxMyArMTkyLDE4IEBAIHByaXZhdGU6CiAK
ICAgICBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uJiBjYWNoZVN0b3JhZ2VDb25uZWN0aW9u
KCk7CiAKKyNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIHZvaWQgcmVt
b3ZlU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKFBBTDo6U2Vzc2lvbklELCB1aW50NjRfdCBmcmFtZUlE
LCB1aW50NjRfdCBwYWdlSUQpOwogICAgIHZvaWQgcmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckFsbEZy
YW1lc09uUGFnZShQQUw6OlNlc3Npb25JRCwgdWludDY0X3QgcGFnZUlEKTsKKwogICAgIHZvaWQg
bG9nVXNlckludGVyYWN0aW9uKFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIHRvcExldmVs
T3JpZ2luKTsKICAgICB2b2lkIGxvZ1dlYlNvY2tldExvYWRpbmcoUEFMOjpTZXNzaW9uSUQsIGNv
bnN0IFN0cmluZyYgdGFyZ2V0UHJpbWFyeURvbWFpbiwgY29uc3QgU3RyaW5nJiBtYWluRnJhbWVQ
cmltYXJ5RG9tYWluLCBXYWxsVGltZSBsYXN0U2Vlbik7CiAgICAgdm9pZCBsb2dTdWJyZXNvdXJj
ZUxvYWRpbmcoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgdGFyZ2V0UHJpbWFyeURvbWFp
biwgY29uc3QgU3RyaW5nJiBtYWluRnJhbWVQcmltYXJ5RG9tYWluLCBXYWxsVGltZSBsYXN0U2Vl
bik7CiAgICAgdm9pZCBsb2dTdWJyZXNvdXJjZVJlZGlyZWN0KFBBTDo6U2Vzc2lvbklELCBjb25z
dCBTdHJpbmcmIHNvdXJjZVByaW1hcnlEb21haW4sIGNvbnN0IFN0cmluZyYgdGFyZ2V0UHJpbWFy
eURvbWFpbik7CiAgICAgdm9pZCByZXF1ZXN0UmVzb3VyY2VMb2FkU3RhdGlzdGljc1VwZGF0ZSgp
OworICAgIHZvaWQgaGFzU3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5n
JiBzdWJGcmFtZUhvc3QsIGNvbnN0IFN0cmluZyYgdG9wRnJhbWVIb3N0LCB1aW50NjRfdCBmcmFt
ZUlELCB1aW50NjRfdCBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwor
ICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmlu
ZyYgc3ViRnJhbWVIb3N0LCBjb25zdCBTdHJpbmcmIHRvcEZyYW1lSG9zdCwgdWludDY0X3QgZnJh
bWVJRCwgdWludDY0X3QgcGFnZUlELCBib29sIHByb21wdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sKT4mJik7CisjZW5kaWYKIAogICAgIHZvaWQgYWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0
RW50cnkoY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4sIGNvbnN0IFN0cmluZyYgZGVzdGluYXRp
b25Qcm90b2NvbCwgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvbkhvc3QsIGJvb2wgYWxsb3dEZXN0
aW5hdGlvblN1YmRvbWFpbnMpOwogICAgIHZvaWQgcmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0
RW50cnkoY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4sIGNvbnN0IFN0cmluZyYgZGVzdGluYXRp
b25Qcm90b2NvbCwgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvbkhvc3QsIGJvb2wgYWxsb3dEZXN0
aW5hdGlvblN1YmRvbWFpbnMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2Fn
ZXMuaW4KaW5kZXggODQyMjg2YjE4MmY1OWEwNzZhMDk3Njk2MGVmNTA1NGVlMmM5NGFjYi4uNzNh
NTE4NTM3NDBlMjZlNWFjN2E2ODJkYTk1M2U5MTU1M2E1YWJmZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNz
YWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0xLDQgKzEsNCBAQAotIyBDb3B5cmlnaHQg
KEMpIDIwMTItMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdo
dCAoQykgMjAxMi0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNjQsNiArNjQsOCBAQCBtZXNzYWdlcyAtPiBOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAgICAgTG9nU3VicmVzb3Vy
Y2VMb2FkaW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgU3RyaW5nIHRhcmdldFByaW1hcnlE
b21haW4sIFN0cmluZyBtYWluRnJhbWVQcmltYXJ5RG9tYWluLCBXYWxsVGltZSBsYXN0U2VlbikK
ICAgICBMb2dTdWJyZXNvdXJjZVJlZGlyZWN0KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgU3Ry
aW5nIHNvdXJjZVByaW1hcnlEb21haW4sIFN0cmluZyB0YXJnZXRQcmltYXJ5RG9tYWluKQogICAg
IFJlcXVlc3RSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVXBkYXRlKCk7CisgICAgSGFzU3RvcmFnZUFj
Y2VzcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFN0cmluZyBzdWJGcmFtZUhvc3QsIFN0cmlu
ZyB0b3BGcmFtZUhvc3QsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJRCkgLT4gKGJv
b2wgaGFzU3RvcmFnZUFjY2VzcykgQXN5bmMKKyAgICBSZXF1ZXN0U3RvcmFnZUFjY2VzcyhQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIFN0cmluZyBzdWJGcmFtZUhvc3QsIFN0cmluZyB0b3BGcmFt
ZUhvc3QsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJRCwgYm9vbCBwcm9tcHQpIC0+
IChib29sIGFjY2Vzc0dyYW50ZWQpIEFzeW5jCiAjZW5kaWYKIAogICAgIEFkZE9yaWdpbkFjY2Vz
c1doaXRlbGlzdEVudHJ5KFN0cmluZyBzb3VyY2VPcmlnaW4sIFN0cmluZyBkZXN0aW5hdGlvblBy
b3RvY29sLCBTdHJpbmcgZGVzdGluYXRpb25Ib3N0LCBib29sIGFsbG93RGVzdGluYXRpb25TdWJk
b21haW5zKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5jcHAKaW5kZXggOTU0Mjg3OWNkNzBhM2RmZTAwYzY1ZjBiZDlhMzhiYTc2MjQ4NTkxOC4uYzVj
YTU4ZjMyYzQ5OGZkZjY4MTdkZmM0OTNmYTNkMTBjNzFmMWIyYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTk2OSw3ICs5NjksNyBA
QCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpyZXF1ZXN0U3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIGNvbnN0IFN0cmluZwogewogICAgIGlmIChhdXRvKiBuZXR3b3JrU2Vzc2lv
biA9IHRoaXMtPm5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKICAgICAgICAgaWYgKGF1dG8q
IHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBuZXR3b3JrU2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3Rh
dGlzdGljcygpKQotICAgICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+cmVxdWVzdFN0
b3JhZ2VBY2Nlc3MocmVzb3VyY2VEb21haW4sIGZpcnN0UGFydHlEb21haW4sIGZyYW1lSUQsIHBh
Z2VJRCwgcHJvbXB0RW5hYmxlZCwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgICAg
ICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+cmVxdWVzdFN0b3JhZ2VBY2Nlc3MocmVzb3Vy
Y2VEb21haW4sIGZpcnN0UGFydHlEb21haW4sIGZyYW1lSUQudmFsdWUoKSwgcGFnZUlELCBwcm9t
cHRFbmFibGVkLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiAgICAgICAgIGVsc2UKICAg
ICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFN0b3JhZ2VBY2Nlc3NTdGF0dXM6OkNhbm5vdFJl
cXVlc3RBY2Nlc3MpOwogICAgIH0gZWxzZSB7CkBAIC05NzgsNiArOTc4LDE5IEBAIHZvaWQgTmV0
d29ya1Byb2Nlc3M6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgY29uc3QgU3RyaW5nCiAgICAgfQogfQogCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpyZXF1ZXN0
U3RvcmFnZUFjY2Vzc0dyYW50ZWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJp
bmcmIHN1YkZyYW1lSG9zdCwgY29uc3QgU3RyaW5nJiB0b3BGcmFtZUhvc3QsIHVpbnQ2NF90IGZy
YW1lSUQsIHVpbnQ2NF90IHBhZ2VJRCwgYm9vbCBwcm9tcHRFbmFibGVkLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGlmIChhdXRvKiBu
ZXR3b3JrU2Vzc2lvbiA9IHRoaXMtPm5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKKyAgICAg
ICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBuZXR3b3JrU2Vzc2lvbi0+cmVz
b3VyY2VMb2FkU3RhdGlzdGljcygpKQorICAgICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy0+cmVxdWVzdFN0b3JhZ2VBY2Nlc3NHcmFudGVkKHN1YkZyYW1lSG9zdCwgdG9wRnJhbWVIb3N0
LCBmcmFtZUlELCBwYWdlSUQsIHByb21wdEVuYWJsZWQsIFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2Up
OworICAgIH0gZWxzZSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihmYWxzZSk7CisgICAgfQorfQorCiB2b2lkIE5ldHdvcmtQcm9jZXNz
OjpncmFudFN0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJp
bmcmIHJlc291cmNlRG9tYWluLCBjb25zdCBTdHJpbmcmIGZpcnN0UGFydHlEb21haW4sIE9wdGlv
bmFsPHVpbnQ2NF90PiBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIGJvb2wgdXNlcldhc1Byb21w
dGVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQog
ewogICAgIGlmIChhdXRvKiBuZXR3b3JrU2Vzc2lvbiA9IHRoaXMtPm5ldHdvcmtTZXNzaW9uKHNl
c3Npb25JRCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuaAppbmRleCBlNDUzMTQyOTZjZDlmMTdhNzM0ZDUzZDFmN2Q0MmViMGE0MGE1YmQxLi4zZDAw
ZTdiZTg3Y2M4NzBiZGFmOWUzZDcyODE4NDA3ZmJlMGMwNDA5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBAIC0yMDYsNiArMjA2LDcgQEAgcHVi
bGljOgogICAgIHZvaWQgcmVtb3ZlQWxsU3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Npb25JRCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHJlbW92ZVByZXZhbGVudERvbWFp
bnMoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkb21haW5zKTsKICAgICB2
b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIHJl
c291cmNlRG9tYWluLCBjb25zdCBTdHJpbmcmIGZpcnN0UGFydHlEb21haW4sIE9wdGlvbmFsPHVp
bnQ2NF90PiBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIGJvb2wgcHJvbXB0RW5hYmxlZCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzU3RhdHVzKT4mJik7CisgICAgdm9pZCBy
ZXF1ZXN0U3RvcmFnZUFjY2Vzc0dyYW50ZWQoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYg
c3ViRnJhbWVIb3N0LCBjb25zdCBTdHJpbmcmIHRvcEZyYW1lSG9zdCwgdWludDY0X3QgZnJhbWVJ
RCwgdWludDY0X3QgcGFnZUlELCBib29sIHByb21wdEVuYWJsZWQsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQgcmVzZXRDYWNoZU1heEFnZUNhcEZvclByZXZhbGVu
dFJlc291cmNlcyhQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsK
ICAgICB2b2lkIHJlc2V0UGFyYW1ldGVyc1RvRGVmYXVsdFZhbHVlcyhQQUw6OlNlc3Npb25JRCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNjaGVkdWxlQ2xlYXJJbk1l
bW9yeUFuZFBlcnNpc3RlbnQoUEFMOjpTZXNzaW9uSUQsIE9wdGlvbmFsPFdhbGxUaW1lPiBtb2Rp
ZmllZFNpbmNlLCBTaG91bGRHcmFuZGZhdGhlclN0YXRpc3RpY3MsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAppbmRleCA1ZjU4YWVlNzUyYWM5OTc5NWQ2ODcyNjUz
MzY0MTM5ZTI3MTdmZGY1Li4xZDBlZGFlM2U3NmQwMjg1MWZjMjdiYzI3ZWYxYzQxMDEwY2E1OWU4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5jcHAKQEAgLTcyNyw2ICs3MjcsMTEgQEAgdm9pZCBOZXR3b3JrUHJvY2Vz
c1Byb3h5OjpyZXF1ZXN0U3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNv
bnN0IFMKICAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpS
ZXF1ZXN0U3RvcmFnZUFjY2VzcyhzZXNzaW9uSUQsIHJlc291cmNlRG9tYWluLCBmaXJzdFBhcnR5
RG9tYWluLCBmcmFtZUlELCBwYWdlSUQsIHByb21wdEVuYWJsZWQpLCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSk7CiB9CiAKK3ZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6cmVxdWVzdFN0b3Jh
Z2VBY2Nlc3NDb25maXJtKHVpbnQ2NF90IHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgY29uc3Qg
U3RyaW5nJiBzdWJGcmFtZUhvc3QsIGNvbnN0IFN0cmluZyYgdG9wRnJhbWVIb3N0LCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIFdlYlBh
Z2VQcm94eTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtKHBhZ2VJRCwgZnJhbWVJRCwgc3Vi
RnJhbWVIb3N0LCB0b3BGcmFtZUhvc3QsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKK30K
Kwogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpncmFudFN0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIHJlc291cmNlRG9tYWluLCBjb25zdCBTdHJp
bmcmIGZpcnN0UGFydHlEb21haW4sIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCB1aW50NjRf
dCBwYWdlSUQsIGJvb2wgdXNlcldhc1Byb21wdGVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJv
b2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmICghY2FuU2VuZE1lc3NhZ2UoKSkg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzUHJveHkuaAppbmRleCBkYzUyNzJjOGI5NjNkMDkwZjIwMjI4YzU1Y2JiODVlMDA3MDI3ODRi
Li4zYzdiMGJhNGQxN2ZiMDU4MDk0ZmFlMzQ3MGE2N2E3YTU5NDE2YzU5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaApA
QCAtMTEzLDYgKzExMyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGdyYW50U3RvcmFnZUFjY2VzcyhQ
QUw6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiByZXNvdXJjZURvbWFpbiwgY29uc3QgU3RyaW5n
JiBmaXJzdFBhcnR5RG9tYWluLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgdWludDY0X3Qg
cGFnZUlELCBib29sIHVzZXJXYXNQcm9tcHRlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29s
KT4mJik7CiAgICAgdm9pZCBoYXNTdG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklELCBjb25zdCBT
dHJpbmcmIHN1YkZyYW1lSG9zdCwgY29uc3QgU3RyaW5nJiB0b3BGcmFtZUhvc3QsIE9wdGlvbmFs
PHVpbnQ2NF90PiBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoYm9vbCk+JiYpOwogICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9u
SUQsIGNvbnN0IFN0cmluZyYgcmVzb3VyY2VEb21haW4sIGNvbnN0IFN0cmluZyYgZmlyc3RQYXJ0
eURvbWFpbiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJRCwgYm9v
bCBwcm9tcHRFbmFibGVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NTdGF0
dXMpPiYmKTsKKyAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybSh1aW50NjRfdCBw
YWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgc3ViRnJhbWVIb3N0LCBjb25z
dCBTdHJpbmcmIHRvcEZyYW1lSG9zdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7
CiAgICAgdm9pZCByZXNldFBhcmFtZXRlcnNUb0RlZmF1bHRWYWx1ZXMoUEFMOjpTZXNzaW9uSUQs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCByZW1vdmVBbGxTdG9yYWdl
QWNjZXNzKFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAg
IHZvaWQgc2NoZWR1bGVDbGVhckluTWVtb3J5QW5kUGVyc2lzdGVudChQQUw6OlNlc3Npb25JRCwg
U2hvdWxkR3JhbmRmYXRoZXJTdGF0aXN0aWNzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc1Byb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDExYjQwOTJhODAyODc4OWVmNDgx
ZmU0NjM2ZDM1NWI1YzQxZWRkNGUuLmYzZWQzNmRhYjkyMmMxM2NhYjU3ZjdiMjRiN2FhNjNlOTgx
Nzg5MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KQEAgLTEsNCArMSw0IEBACi0j
IENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENv
cHlyaWdodCAoQykgMjAxMi0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMK
ICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDYsNiArNDYsNyBAQCBtZXNzYWdlcyAtPiBO
ZXR3b3JrUHJvY2Vzc1Byb3h5IExlZ2FjeVJlY2VpdmVyIHsKICAgICBOb3RpZnlXZWJzaXRlRGF0
YURlbGV0aW9uRm9yVG9wUHJpdmF0ZWx5T3duZWREb21haW5zRmluaXNoZWQoKQogICAgIE5vdGlm
eVdlYnNpdGVEYXRhU2NhbkZvclRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW5zRmluaXNoZWQo
KQogICAgIE5vdGlmeVJlc291cmNlTG9hZFN0YXRpc3RpY3NUZWxlbWV0cnlGaW5pc2hlZCh1bnNp
Z25lZCB0b3RhbFByZXZhbGVudFJlc291cmNlcywgdW5zaWduZWQgdG90YWxQcmV2YWxlbnRSZXNv
dXJjZXNXaXRoVXNlckludGVyYWN0aW9uLCB1bnNpZ25lZCB0b3AzU3ViZnJhbWVVbmRlclRvcEZy
YW1lT3JpZ2lucykKKyAgICBSZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0odWludDY0X3QgcGFn
ZUlELCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgc3ViRnJhbWVIb3N0LCBTdHJpbmcgdG9wRnJh
bWVIb3N0KSAtPiAoYm9vbCB1c2VyRGlkR3JhbnRBY2Nlc3MpIEFzeW5jCiAjZW5kaWYKICNpZiBF
TkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQogICAgIENvbnRlbnRFeHRlbnNpb25SdWxlcyhXZWJL
aXQ6OlVzZXJDb250ZW50Q29udHJvbGxlcklkZW50aWZpZXIgaWRlbnRpZmllcikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDc1NmY2ODY3OGEwZTgxZjlhN2Nl
YmFjODZhMTgwZWRkMzcyYmE0YWQuLjVkMDMwYmI3Nzg1NjE3NTcxNzIxNGQ1NjY4ODVhY2FjYTNk
OWE3NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtODIz
OSwzOCArODIzOSwxNSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bG9hZFN5bmNocm9ub3VzVVJMU2No
ZW1lVGFzayhVUkxTY2hlbWVUYXNrUGFyYW1ldGVycyYmIHBhcmFtZQogfQogCiAjaWYgRU5BQkxF
KFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKLXZvaWQgV2ViUGFnZVByb3h5OjpoYXNTdG9yYWdl
QWNjZXNzKFN0cmluZyYmIHN1YkZyYW1lSG9zdCwgU3RyaW5nJiYgdG9wRnJhbWVIb3N0LCB1aW50
NjRfdCBmcmFtZUlELCB1aW50NjRfdCB3ZWJQcm9jZXNzQ29udGV4dElkKQordm9pZCBXZWJQYWdl
UHJveHk6OnJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybSh1aW50NjRfdCBwYWdlSUQsIHVpbnQ2
NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgc3ViRnJhbWVIb3N0LCBjb25zdCBTdHJpbmcmIHRv
cEZyYW1lSG9zdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKIHsKLSAgICBtX3dlYnNpdGVEYXRhU3RvcmUtPmhhc1N0b3JhZ2VBY2Nlc3MoV1RGTW92
ZShzdWJGcmFtZUhvc3QpLCBXVEZNb3ZlKHRvcEZyYW1lSG9zdCksIGZyYW1lSUQsIG1fcGFnZUlE
LCBbdGhpcywgd2ViUHJvY2Vzc0NvbnRleHRJZF0gKGJvb2wgaGFzQWNjZXNzKSB7Ci0gICAgICAg
IG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U3RvcmFnZUFjY2Vzc1Jlc3BvbnNl
KGhhc0FjY2Vzcywgd2ViUHJvY2Vzc0NvbnRleHRJZCksIG1fcGFnZUlEKTsKLSAgICB9KTsKLX0K
LQotdm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKFN0cmluZyYmIHN1YkZy
YW1lSG9zdCwgU3RyaW5nJiYgdG9wRnJhbWVIb3N0LCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRf
dCB3ZWJQcm9jZXNzQ29udGV4dElkLCBib29sIHByb21wdEVuYWJsZWQpCi17Ci0gICAgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sKT4gY29tcGxldGlvbkhhbmRsZXIgPSBbdGhpcywgcHJvdGVj
dGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCB3ZWJQcm9jZXNzQ29udGV4dElkXSAoYm9vbCBhY2Nl
c3MpIHsKLSAgICAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTdG9yYWdl
QWNjZXNzUmVzcG9uc2UoYWNjZXNzLCB3ZWJQcm9jZXNzQ29udGV4dElkKSwgbV9wYWdlSUQpOwot
ICAgIH07Ci0KLSAgICBtX3dlYnNpdGVEYXRhU3RvcmUtPnJlcXVlc3RTdG9yYWdlQWNjZXNzKFN0
cmluZyhzdWJGcmFtZUhvc3QpLCBTdHJpbmcodG9wRnJhbWVIb3N0KSwgZnJhbWVJRCwgbV9wYWdl
SUQsIHByb21wdEVuYWJsZWQsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyks
IHN1YkZyYW1lSG9zdCwgdG9wRnJhbWVIb3N0LCBwcm9tcHRFbmFibGVkLCBmcmFtZUlELCBjb21w
bGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoU3RvcmFnZUFjY2Vz
c1N0YXR1cyBzdGF0dXMpIG11dGFibGUgewotICAgICAgICBzd2l0Y2ggKHN0YXR1cykgewotICAg
ICAgICBjYXNlIFN0b3JhZ2VBY2Nlc3NTdGF0dXM6OkNhbm5vdFJlcXVlc3RBY2Nlc3M6Ci0gICAg
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0g
ICAgICAgIGNhc2UgU3RvcmFnZUFjY2Vzc1N0YXR1czo6UmVxdWlyZXNVc2VyUHJvbXB0OgotICAg
ICAgICAgICAgQVNTRVJUX1VOVVNFRChwcm9tcHRFbmFibGVkLCBwcm9tcHRFbmFibGVkKTsKLSAg
ICAgICAgICAgIG1fdWlDbGllbnQtPnJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybSgqdGhpcywg
bV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKSwgUmVzb3VyY2VMb2FkU3RhdGlzdGljczo6cHJp
bWFyeURvbWFpbihzdWJGcmFtZUhvc3QpLCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOjpwcmltYXJ5
RG9tYWluKHRvcEZyYW1lSG9zdCksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhp
cyksIHN1YkZyYW1lSG9zdCwgdG9wRnJhbWVIb3N0LCBmcmFtZUlELCBjb21wbGV0aW9uSGFuZGxl
ciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoYm9vbCB1c2VyRGlkR3JhbnRBY2Nlc3Mp
IG11dGFibGUgewotICAgICAgICAgICAgICAgIGlmICh1c2VyRGlkR3JhbnRBY2Nlc3MpCi0gICAg
ICAgICAgICAgICAgICAgIG1fd2Vic2l0ZURhdGFTdG9yZS0+Z3JhbnRTdG9yYWdlQWNjZXNzKFdU
Rk1vdmUoc3ViRnJhbWVIb3N0KSwgV1RGTW92ZSh0b3BGcmFtZUhvc3QpLCBmcmFtZUlELCBtX3Bh
Z2VJRCwgdXNlckRpZEdyYW50QWNjZXNzLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0g
ICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihmYWxzZSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
Y2FzZSBTdG9yYWdlQWNjZXNzU3RhdHVzOjpIYXNBY2Nlc3M6Ci0gICAgICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcih0cnVlKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgIH0p
OworICAgIFdlYlBhZ2VQcm94eSogcGFnZSA9IFdlYlByb2Nlc3NQcm94eTo6d2ViUGFnZShwYWdl
SUQpOworICAgIGlmICghcGFnZSkgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgCisgICAgcGFnZS0+bV91aUNsaWVudC0+cmVx
dWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtKCpwYWdlLCBwYWdlLT5tX3Byb2Nlc3MtPndlYkZyYW1l
KGZyYW1lSUQpLCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOjpwcmltYXJ5RG9tYWluKHN1YkZyYW1l
SG9zdCksIFJlc291cmNlTG9hZFN0YXRpc3RpY3M6OnByaW1hcnlEb21haW4odG9wRnJhbWVIb3N0
KSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggMTliMTJmNDJkMzljNTU2ZDZkZGM2NDdiNjlk
NDI1N2E4ZTc1ZDM2My4uNGIxNzFlNjMzOWMzZDU3NmUzZWYxNGEyNjU3NzI5NjY3ZDRkYjJhOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTEzODAsOCArMTM4MCw3
IEBAIHB1YmxpYzoKICNlbmRpZgogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElD
UykKLSAgICB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoU3RyaW5nJiYgc3ViRnJhbWVIb3N0LCBTdHJp
bmcmJiB0b3BGcmFtZUhvc3QsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHdlYlByb2Nlc3ND
b250ZXh0SWQpOwotICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoU3RyaW5nJiYgc3ViRnJh
bWVIb3N0LCBTdHJpbmcmJiB0b3BGcmFtZUhvc3QsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90
IHdlYlByb2Nlc3NDb250ZXh0SWQsIGJvb2wgcHJvbXB0KTsKKyAgICBzdGF0aWMgdm9pZCByZXF1
ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0odWludDY0X3QgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlE
LCBjb25zdCBTdHJpbmcmIHN1YkZyYW1lSG9zdCwgY29uc3QgU3RyaW5nJiB0b3BGcmFtZUhvc3Qs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogI2VuZGlmCiAKICAgICBzdGF0aWMg
V2ViUGFnZVByb3h5KiBub25FcGhlbWVyYWxXZWJQYWdlUHJveHkoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCA5OTYxMzY2MDU4
ZDhjNzI2ZDQwNmVmNWU3OWFjMDNmY2JlZmJiNDJmLi45MjkzODk2YmVlOThiNDlkMWExMmI0MjY2
ODdhMDJhMWZiNWUxNDMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0xLDQgKzEsNCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTAt
MjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAx
MC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAj
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtNTM0LDExICs1MzQsNiBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkg
ewogICAgIFN0b3BVUkxTY2hlbWVUYXNrKHVpbnQ2NF90IGhhbmRsZXJJZGVudGlmaWVyLCB1aW50
NjRfdCB0YXNrSWRlbnRpZmllcikKICAgICBMb2FkU3luY2hyb25vdXNVUkxTY2hlbWVUYXNrKHN0
cnVjdCBXZWJLaXQ6OlVSTFNjaGVtZVRhc2tQYXJhbWV0ZXJzIHBhcmFtZXRlcnMpIC0+IChXZWJD
b3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVy
cm9yLCBJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YSkgRGVsYXllZAogCi0jaWYgRU5BQkxFKFJFU09V
UkNFX0xPQURfU1RBVElTVElDUykKLSAgICBIYXNTdG9yYWdlQWNjZXNzKFN0cmluZyBzdWJGcmFt
ZUhvc3QsIFN0cmluZyB0b3BGcmFtZUhvc3QsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IGNv
bnRleHRJRCkKLSAgICBSZXF1ZXN0U3RvcmFnZUFjY2VzcyhTdHJpbmcgc3ViRnJhbWVIb3N0LCBT
dHJpbmcgdG9wRnJhbWVIb3N0LCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBjb250ZXh0SUQs
IGJvb2wgcHJvbXB0KQotI2VuZGlmCi0KICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQog
ICAgIFJlZ2lzdGVyQXR0YWNobWVudElkZW50aWZpZXJGcm9tRGF0YShTdHJpbmcgaWRlbnRpZmll
ciwgU3RyaW5nIGNvbnRlbnRUeXBlLCBTdHJpbmcgcHJlZmVycmVkRmlsZU5hbWUsIElQQzo6U2hh
cmVkQnVmZmVyRGF0YVJlZmVyZW5jZSBkYXRhKQogICAgIFJlZ2lzdGVyQXR0YWNobWVudElkZW50
aWZpZXJGcm9tRmlsZVBhdGgoU3RyaW5nIGlkZW50aWZpZXIsIFN0cmluZyBjb250ZW50VHlwZSwg
U3RyaW5nIGZpbGVQYXRoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcAppbmRleCBkMGI5NzUzMDgwYzM2MTM4YWZiMzQ1MzU1MWM1YWVlNzE4MDgyN2I4Li4y
M2ViZTYxYjVlZWJlZDZkMDU3OTc2ZWFhNzk0MGI5ZTJiMjcwNzNlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNjM2Nyw0MCArNjM2NywxNSBA
QCB2b2lkIFdlYlBhZ2U6OmZyYW1lQmVjYW1lUmVtb3RlKHVpbnQ2NF90IGZyYW1lSUQsIEdsb2Jh
bEZyYW1lSWRlbnRpZmllciYmIHJlbW90ZQogfQogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURf
U1RBVElTVElDUykKLXN0YXRpYyB1aW50NjRfdCBuZXh0UmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb250
ZXh0SWQoKQordm9pZCBXZWJQYWdlOjpoYXNTdG9yYWdlQWNjZXNzKFN0cmluZyYmIHN1YkZyYW1l
SG9zdCwgU3RyaW5nJiYgdG9wRnJhbWVIb3N0LCB1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIHN0YXRpYyB1
aW50NjRfdCBuZXh0Q29udGV4dElkID0gMDsKLSAgICByZXR1cm4gKytuZXh0Q29udGV4dElkOwot
fQotCi12b2lkIFdlYlBhZ2U6Omhhc1N0b3JhZ2VBY2Nlc3MoU3RyaW5nJiYgc3ViRnJhbWVIb3N0
LCBTdHJpbmcmJiB0b3BGcmFtZUhvc3QsIHVpbnQ2NF90IGZyYW1lSUQsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCk+JiYgY2FsbGJhY2spCi17Ci0gICAgYXV0byBjb250ZXh0SWQgPSBuZXh0
UmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb250ZXh0SWQoKTsKLSAgICBhdXRvIGFkZFJlc3VsdCA9IG1f
c3RvcmFnZUFjY2Vzc1Jlc3BvbnNlQ2FsbGJhY2tNYXAuYWRkKGNvbnRleHRJZCwgV1RGTW92ZShj
YWxsYmFjaykpOwotICAgIEFTU0VSVChhZGRSZXN1bHQuaXNOZXdFbnRyeSk7Ci0gICAgaWYgKGFk
ZFJlc3VsdC5pdGVyYXRvci0+dmFsdWUpCi0gICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6SGFzU3RvcmFnZUFjY2VzcyhXVEZNb3ZlKHN1YkZyYW1lSG9zdCksIFdURk1vdmUodG9w
RnJhbWVIb3N0KSwgZnJhbWVJRCwgY29udGV4dElkKSk7Ci0gICAgZWxzZQotICAgICAgICBjYWxs
YmFjayhmYWxzZSk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdl
czo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6Okhhc1N0b3JhZ2VBY2Nlc3Moc2Vzc2lv
bklEKCksIFdURk1vdmUoc3ViRnJhbWVIb3N0KSwgV1RGTW92ZSh0b3BGcmFtZUhvc3QpLCBmcmFt
ZUlELCBtX3BhZ2VJRCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KICAgICAKLXZv
aWQgV2ViUGFnZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoU3RyaW5nJiYgc3ViRnJhbWVIb3N0LCBT
dHJpbmcmJiB0b3BGcmFtZUhvc3QsIHVpbnQ2NF90IGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYgY2FsbGJhY2spCit2b2lkIFdlYlBhZ2U6OnJlcXVlc3RTdG9yYWdlQWNj
ZXNzKFN0cmluZyYmIHN1YkZyYW1lSG9zdCwgU3RyaW5nJiYgdG9wRnJhbWVIb3N0LCB1aW50NjRf
dCBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQogewotICAgIGF1dG8gY29udGV4dElkID0gbmV4dFJlcXVlc3RTdG9yYWdlQWNjZXNzQ29u
dGV4dElkKCk7Ci0gICAgYXV0byBhZGRSZXN1bHQgPSBtX3N0b3JhZ2VBY2Nlc3NSZXNwb25zZUNh
bGxiYWNrTWFwLmFkZChjb250ZXh0SWQsIFdURk1vdmUoY2FsbGJhY2spKTsKLSAgICBBU1NFUlQo
YWRkUmVzdWx0LmlzTmV3RW50cnkpOwotICAgIGlmIChhZGRSZXN1bHQuaXRlcmF0b3ItPnZhbHVl
KSB7Ci0gICAgICAgIGJvb2wgcHJvbXB0RW5hYmxlZCA9IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6
OnNoYXJlZEZlYXR1cmVzKCkuc3RvcmFnZUFjY2Vzc1Byb21wdHNFbmFibGVkKCk7Ci0gICAgICAg
IHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UmVxdWVzdFN0b3JhZ2VBY2Nlc3MoV1RGTW92
ZShzdWJGcmFtZUhvc3QpLCBXVEZNb3ZlKHRvcEZyYW1lSG9zdCksIGZyYW1lSUQsIGNvbnRleHRJ
ZCwgcHJvbXB0RW5hYmxlZCkpOwotICAgIH0gZWxzZQotICAgICAgICBjYWxsYmFjayhmYWxzZSk7
Ci19Ci0KLXZvaWQgV2ViUGFnZTo6c3RvcmFnZUFjY2Vzc1Jlc3BvbnNlKGJvb2wgd2FzR3JhbnRl
ZCwgdWludDY0X3QgY29udGV4dElkKQotewotICAgIGF1dG8gY2FsbGJhY2sgPSBtX3N0b3JhZ2VB
Y2Nlc3NSZXNwb25zZUNhbGxiYWNrTWFwLnRha2UoY29udGV4dElkKTsKLSAgICBBU1NFUlQoY2Fs
bGJhY2spOwotICAgIGNhbGxiYWNrKHdhc0dyYW50ZWQpOworICAgIGJvb2wgcHJvbXB0RW5hYmxl
ZCA9IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc3RvcmFnZUFjY2Vz
c1Byb21wdHNFbmFibGVkKCk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShN
ZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlJlcXVlc3RTdG9yYWdlQWNj
ZXNzKHNlc3Npb25JRCgpLCBXVEZNb3ZlKHN1YkZyYW1lSG9zdCksIFdURk1vdmUodG9wRnJhbWVI
b3N0KSwgZnJhbWVJRCwgbV9wYWdlSUQsIHByb21wdEVuYWJsZWQpLCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSk7CiB9CiAjZW5kaWYKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBlNzY0Zjk5MmUyNTE3OWYzZWIxOTA5ODFjNjk1MDQ0MzE5
MGYyMDMxLi4xOTBkNjJlYWYzNWNmZWRjODE3NjE5NTJkOTYzZDA3MWZkYzM1YmVhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMC0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTExMSw3ICsxMTEx
LDYgQEAgcHVibGljOgogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAgICAg
dm9pZCBoYXNTdG9yYWdlQWNjZXNzKFN0cmluZyYmIHN1YkZyYW1lSG9zdCwgU3RyaW5nJiYgdG9w
RnJhbWVIb3N0LCB1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wp
PiYmIGNhbGxiYWNrKTsKICAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKFN0cmluZyYmIHN1
YkZyYW1lSG9zdCwgU3RyaW5nJiYgdG9wRnJhbWVIb3N0LCB1aW50NjRfdCBmcmFtZUlELCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNrKTsKLSAgICB2b2lkIHN0b3JhZ2VB
Y2Nlc3NSZXNwb25zZShib29sIHdhc0dyYW50ZWQsIHVpbnQ2NF90IGNvbnRleHRJZCk7CiAjZW5k
aWYKIAogICAgIHZvaWQgc2hvd1NoYXJlU2hlZXQoV2ViQ29yZTo6U2hhcmVEYXRhV2l0aFBhcnNl
ZFVSTCYsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjYWxsYmFjayk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdl
cy5pbgppbmRleCA0ZGJlMGEzNGE5OTM4Y2M1YzMyZWM1N2IyNDMxM2VhZGQyMmJiNGZiLi5lNjlh
YzZmZGRiY2RmZWU2NDA3MWNlOWExMTk2MWJkNmQ4MDI5ODgwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTEsNCAr
MSw0IEBACi0jIENvcHlyaWdodCAoQykgMjAxMC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDEwLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01MzEsMTAgKzUzMSw2
IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogCiAgICAgU2V0SXNTdXNw
ZW5kZWQoYm9vbCBzdXNwZW5kZWQpCiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNU
SUNTKQotICAgIFN0b3JhZ2VBY2Nlc3NSZXNwb25zZShib29sIHdhc0dyYW50ZWQsIHVpbnQ2NF90
IGNvbnRleHRJZCkKLSNlbmRpZgotCiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKICAg
ICBJbnNlcnRBdHRhY2htZW50KFN0cmluZyBpZGVudGlmaWVyLCBPcHRpb25hbDx1aW50NjRfdD4g
ZmlsZVNpemUsIFN0cmluZyBmaWxlTmFtZSwgU3RyaW5nIGNvbnRlbnRUeXBlLCBXZWJLaXQ6OkNh
bGxiYWNrSUQgY2FsbGJhY2tJRCkKICAgICBVcGRhdGVBdHRhY2htZW50QXR0cmlidXRlcyhTdHJp
bmcgaWRlbnRpZmllciwgT3B0aW9uYWw8dWludDY0X3Q+IGZpbGVTaXplLCBTdHJpbmcgY29udGVu
dFR5cGUsIFN0cmluZyBmaWxlTmFtZSwgSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlIGVu
Y2xvc2luZ0ltYWdlRGF0YSwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>360470</attachid>
            <date>2019-01-29 10:26:28 -0800</date>
            <delta_ts>2019-01-29 10:32:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193924-20190129102628.patch</filename>
            <type>text/plain</type>
            <size>36125</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwNjIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDQ3NDYyYjRmZGNiNWMwZjJi
MjQxOTExNjliNWI0MzgxNjQ5NzcxODQuLmNiYjk5M2JkNmQxZDg3ZjE3ZmI1ZTYxN2Q4MzZkNGNm
OTc1ZWJkMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTEgQEAKKzIwMTktMDEtMjkgIEJyZW50IEZ1
bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CisKKyAgICAgICAgU3RvcmFnZUFjY2VzcyBBUEkg
Y2FsbHMgc2hvdWxkIGJlIGRpcmVjdCB0byB0aGUgTmV0d29yayBQcm9jZXNzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTM5MjQKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzQ3NjExMjQ5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIE5vdyB0aGF0IHRoZSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzIGRhdGEg
bGl2ZXMgaW4gdGhlIE5ldHdvcmsgUHJvY2VzcywgY2FsbHMgdG8gU3RvcmFnZSBBY2Nlc3MKKyAg
ICAgICAgQVBJIHNob3VsZCBoYXBwZW4gZGlyZWN0bHkgYmV0d2VlbiB0aGUgV2ViQ29udGVudCBh
bmQgTmV0d29yayBwcm9jZXNzZXMuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lm
aWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3NHcmFu
dGVkKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OnJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFtZSk6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZW1vdmVTdG9yYWdlQWNjZXNz
Rm9yQWxsRnJhbWVzT25QYWdlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3M6OmxvZ1VzZXJJbnRlcmFjdGlvbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpsb2dXZWJTb2NrZXRMb2FkaW5nKToKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmxvZ1N1YnJlc291cmNlTG9h
ZGluZyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjps
b2dTdWJyZXNvdXJjZVJlZGlyZWN0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OnJlcXVlc3RSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVXBkYXRlKToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6Omhhc1N0b3JhZ2VB
Y2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
cmVxdWVzdFN0b3JhZ2VBY2Nlc3MpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vz
czo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vz
czo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3NHcmFudGVkKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpy
ZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlcXVlc3RTdG9yYWdl
QWNjZXNzQ29uZmlybSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6aGFzU3RvcmFn
ZUFjY2Vzcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVz
dFN0b3JhZ2VBY2Nlc3MpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6aGFzU3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnJl
cXVlc3RTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdlYktpdDo6bmV4dFJlcXVlc3RTdG9yYWdl
QWNjZXNzQ29udGV4dElkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c3Rv
cmFnZUFjY2Vzc1Jlc3BvbnNlKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3Nh
Z2VzLmluOgorCiAyMDE5LTAxLTI4ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+
CiAKICAgICAgICAgTW92ZSBzb2Z0LWxpbmtpbmcgb2YgTWFuYWdlZENvbmZpZ3VyYXRpb24uZnJh
bWV3b3JrIG91dCBvZiBNYW5hZ2VkQ29uZmlndXJhdGlvblNQSS5oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9X
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCmluZGV4IDVjZGY4MzAyNjUyNzEwMTRh
OTVjMDQ1NGI4N2M0Y2YxODU1OGY1MjcuLjZmOWVmN2RiNmViM2Q3NjMxOGI3YzVhNTJjMDdlMWEy
OGFlNDgyZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3Np
Zmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmUuY3BwCkBAIC0yOTMsMTQgKzI5MywzNCBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZTo6Y2FsbEhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZUhhbmRsZXIoY29uc3QgUwogICAg
IGNhbGxiYWNrKGZhbHNlKTsKIH0KIAotdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmU6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKFN0cmluZyYmIHN1YkZyYW1lSG9zdCwgU3RyaW5nJiYg
dG9wRnJhbWVIb3N0LCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIGJvb2wgcHJv
bXB0RW5hYmxlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzU3RhdHVzKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
OjpyZXF1ZXN0U3RvcmFnZUFjY2Vzc0dyYW50ZWQoY29uc3QgU3RyaW5nJiBzdWJGcmFtZUhvc3Qs
IGNvbnN0IFN0cmluZyYgdG9wRnJhbWVIb3N0LCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBw
YWdlSUQsIGJvb2wgcHJvbXB0RW5hYmxlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBBU1NFUlQoc3ViRnJhbWVIb3N0ICE9IHRvcEZy
YW1lSG9zdCk7Ci0gICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKKyAgICBhdXRvIHN0YXR1
c0hhbmRsZXIgPSBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBzdWJGcmFt
ZUhvc3QgPSBzdWJGcmFtZUhvc3QuaXNvbGF0ZWRDb3B5KCksIHRvcEZyYW1lSG9zdCA9IHRvcEZy
YW1lSG9zdC5pc29sYXRlZENvcHkoKSwgcHJvbXB0RW5hYmxlZCwgZnJhbWVJRCwgcGFnZUlELCBj
b21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShTdG9yYWdlQWNj
ZXNzU3RhdHVzIHN0YXR1cykgbXV0YWJsZSB7CisgICAgICAgIHN3aXRjaCAoc3RhdHVzKSB7Cisg
ICAgICAgIGNhc2UgU3RvcmFnZUFjY2Vzc1N0YXR1czo6Q2Fubm90UmVxdWVzdEFjY2VzczoKKyAg
ICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgY2FzZSBTdG9yYWdlQWNjZXNzU3RhdHVzOjpSZXF1aXJlc1VzZXJQcm9tcHQ6Cisg
ICAgICAgICAgICB7CisgICAgICAgICAgICBBU1NFUlRfVU5VU0VEKHByb21wdEVuYWJsZWQsIHBy
b21wdEVuYWJsZWQpOworICAgICAgICAgICAgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4g
cmVxdWVzdENvbmZpcm1hdGlvbkNvbXBsZXRpb25IYW5kbGVyID0gW3RoaXMsIHByb3RlY3RlZFRo
aXMgPSBtYWtlUmVmKCp0aGlzKSwgc3ViRnJhbWVIb3N0ID0gV1RGTW92ZShzdWJGcmFtZUhvc3Qp
LCB0b3BGcmFtZUhvc3QgPSBXVEZNb3ZlKHRvcEZyYW1lSG9zdCksIGZyYW1lSUQsIHBhZ2VJRCwg
Y29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKGJvb2wgdXNl
ckRpZEdyYW50QWNjZXNzKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBpZiAodXNlckRpZEdy
YW50QWNjZXNzKQorICAgICAgICAgICAgICAgICAgICBncmFudFN0b3JhZ2VBY2Nlc3MoV1RGTW92
ZShzdWJGcmFtZUhvc3QpLCBXVEZNb3ZlKHRvcEZyYW1lSG9zdCksIGZyYW1lSUQsIHBhZ2VJRCwg
dXNlckRpZEdyYW50QWNjZXNzLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxz
ZSk7CisgICAgICAgICAgICB9OworICAgICAgICAgICAgbV9uZXR3b3JrU2Vzc2lvbi0+bmV0d29y
a1Byb2Nlc3MoKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kV2l0aEFzeW5jUmVwbHko
TWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OlJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmly
bShwYWdlSUQsIGZyYW1lSUQsIFJlc291cmNlTG9hZFN0YXRpc3RpY3M6OnByaW1hcnlEb21haW4o
c3ViRnJhbWVIb3N0KSwgUmVzb3VyY2VMb2FkU3RhdGlzdGljczo6cHJpbWFyeURvbWFpbih0b3BG
cmFtZUhvc3QpKSwgV1RGTW92ZShyZXF1ZXN0Q29uZmlybWF0aW9uQ29tcGxldGlvbkhhbmRsZXIp
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgY2FzZSBTdG9y
YWdlQWNjZXNzU3RhdHVzOjpIYXNBY2Nlc3M6CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cih0cnVlKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH07CiAKLSAgICBy
ZXF1ZXN0U3RvcmFnZUFjY2VzcyhzdWJGcmFtZUhvc3QsIHRvcEZyYW1lSG9zdCwgZnJhbWVJRCwg
cGFnZUlELCBwcm9tcHRFbmFibGVkLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAg
cmVxdWVzdFN0b3JhZ2VBY2Nlc3Moc3ViRnJhbWVIb3N0LCB0b3BGcmFtZUhvc3QsIGZyYW1lSUQs
IHBhZ2VJRCwgcHJvbXB0RW5hYmxlZCwgV1RGTW92ZShzdGF0dXNIYW5kbGVyKSk7CiB9Ci0gICAg
CisKIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpyZXF1ZXN0U3RvcmFnZUFj
Y2Vzcyhjb25zdCBTdHJpbmcmIHN1YkZyYW1lSG9zdCwgY29uc3QgU3RyaW5nJiB0b3BGcmFtZUhv
c3QsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIGJvb2wgcHJv
bXB0RW5hYmxlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzU3RhdHVzKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBhdXRvIHN1YkZyYW1lUHJpbWFyeURvbWFpbiA9
IGlzb2xhdGVkUHJpbWFyeURvbWFpbihzdWJGcmFtZUhvc3QpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCmluZGV4IGQyODg5MGViZTBiNGU2MzdmMDMxMzBk
YWZhMGU3MGY0MjM2MzVjMjEuLjExYzAwY2E4NWQxNjk3MTBiNjk5MGI0MTliNDQzOGE5MmFlODkx
ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9X
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKQEAg
LTc1LDkgKzc1LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U2hvdWxkQ2xhc3NpZnlSZXNvdXJj
ZXNCZWZvcmVEYXRhUmVjb3Jkc1JlbW92YWwoYm9vbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKTsKICAgICB2b2lkIHNldFNob3VsZFN1Ym1pdFRlbGVtZXRyeShib29sKTsKIAotICAgIHZv
aWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoU3RyaW5nJiYgc3ViRnJhbWVIb3N0LCBTdHJpbmcmJiB0
b3BGcmFtZUhvc3QsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJRCwgYm9vbCBwcm9t
cHRFbmFibGVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NTdGF0dXMpPiYm
KTsKICAgICB2b2lkIGdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdCBTdHJpbmcmIHN1YkZyYW1lSG9z
dCwgY29uc3QgU3RyaW5nJiB0b3BGcmFtZUhvc3QsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90
IHBhZ2VJRCwgYm9vbCB1c2VyV2FzUHJvbXB0ZWROb3csIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Ym9vbCk+JiYpOwotICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3NDYWxsYmFjayhib29sIHdh
c0dyYW50ZWQsIHVpbnQ2NF90IGNvbnRleHRJZCk7CiAKICAgICB2b2lkIGFwcGxpY2F0aW9uV2ls
bFRlcm1pbmF0ZSgpOwogCkBAIC05NSw2ICs5Myw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGhhc1N0
b3JhZ2VBY2Nlc3MoY29uc3QgU3RyaW5nJiBzdWJGcmFtZUhvc3QsIGNvbnN0IFN0cmluZyYgdG9w
RnJhbWVIb3N0LCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgdWludDY0X3QgcGFnZUlELCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNrKTsKICAgICBib29sIGhhc1N0
b3JhZ2VBY2Nlc3NGb3JGcmFtZShjb25zdCBTdHJpbmcmIHJlc291cmNlRG9tYWluLCBjb25zdCBT
dHJpbmcmIGZpcnN0UGFydHlEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJ
RCk7CiAgICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vzcyhjb25zdCBTdHJpbmcmIHJlc291cmNl
RG9tYWluLCBjb25zdCBTdHJpbmcmIGZpcnN0UGFydHlEb21haW4sIE9wdGlvbmFsPHVpbnQ2NF90
PiBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIGJvb2wgcHJvbXB0RW5hYmxlZCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzU3RhdHVzKT4mJik7CisgICAgdm9pZCByZXF1ZXN0
U3RvcmFnZUFjY2Vzc0dyYW50ZWQoY29uc3QgU3RyaW5nJiBzdWJGcmFtZUhvc3QsIGNvbnN0IFN0
cmluZyYgdG9wRnJhbWVIb3N0LCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIGJv
b2wgcHJvbXB0RW5hYmxlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAgICAg
dm9pZCByZXF1ZXN0VXBkYXRlKCk7CiAgICAgdm9pZCBzZXRMYXN0U2Vlbihjb25zdCBTdHJpbmcm
IHJlc291cmNlRG9tYWluLCBTZWNvbmRzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwog
ICAgIHZvaWQgc2V0UHJldmFsZW50UmVzb3VyY2UoY29uc3QgU3RyaW5nJiByZXNvdXJjZURvbWFp
biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5j
cHAKaW5kZXggNzUzOGUxZDMyNTFjNzNiNThmYmQ5NjEzODQwMDA3YWNmNGI5YmFiZi4uMmZkN2Fm
ZGQ5OWFiNzlhZGE3ZmU3NzkxZDFiN2YxZmM3YzBkMGMzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5jcHAKQEAgLTU2LDYgKzU2LDcgQEAKICNpbmNsdWRlICJXZWJTV1NlcnZlclRvQ29udGV4
dENvbm5lY3Rpb25NZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYnNpdGVEYXRhU3RvcmVQYXJhbWV0
ZXJzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1Jlc291cmNlUmVxdWVzdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2FtZVNpdGVJbmZvLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eVBvbGljeS5oPgpAQCAtNTU5LDg5ICs1NjAsNTMgQEAg
dm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZW5zdXJlTGVnYWN5UHJpdmF0ZUJy
b3dzaW5nU2Vzc2lvbigpCiAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+YWRkV2Vic2l0ZURhdGFTdG9y
ZShXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVyczo6bGVnYWN5UHJpdmF0ZVNlc3Npb25QYXJhbWV0
ZXJzKCkpOwogfQogCisjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKIHZvaWQg
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFt
ZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBh
Z2VJRCkKIHsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIGlmIChh
dXRvKiBzdG9yYWdlU2Vzc2lvbiA9IG5ldHdvcmtQcm9jZXNzKCkuc3RvcmFnZVNlc3Npb24oc2Vz
c2lvbklEKSkKICAgICAgICAgc3RvcmFnZVNlc3Npb24tPnJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JG
cmFtZShmcmFtZUlELCBwYWdlSUQpOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oc2Vzc2lvbklE
KTsKLSAgICBVTlVTRURfUEFSQU0oZnJhbWVJRCk7Ci0gICAgVU5VU0VEX1BBUkFNKHBhZ2VJRCk7
Ci0jZW5kaWYKIH0KIAogdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVtb3Zl
U3RvcmFnZUFjY2Vzc0ZvckFsbEZyYW1lc09uUGFnZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IHVpbnQ2NF90IHBhZ2VJRCkKIHsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNT
KQogICAgIGlmIChhdXRvKiBzdG9yYWdlU2Vzc2lvbiA9IG5ldHdvcmtQcm9jZXNzKCkuc3RvcmFn
ZVNlc3Npb24oc2Vzc2lvbklEKSkKICAgICAgICAgc3RvcmFnZVNlc3Npb24tPnJlbW92ZVN0b3Jh
Z2VBY2Nlc3NGb3JBbGxGcmFtZXNPblBhZ2UocGFnZUlEKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BB
UkFNKHNlc3Npb25JRCk7Ci0gICAgVU5VU0VEX1BBUkFNKHBhZ2VJRCk7Ci0jZW5kaWYKIH0KIAog
dm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6bG9nVXNlckludGVyYWN0aW9uKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiB0b3BMZXZlbE9yaWdpbikKIHsK
LSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIGlmIChhdXRvIG5ldHdv
cmtTZXNzaW9uID0gbmV0d29ya1Byb2Nlc3MoKS5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7
CiAgICAgICAgIGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gbmV0d29ya1Nlc3Np
b24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkKICAgICAgICAgICAgIHJlc291cmNlTG9hZFN0
YXRpc3RpY3MtPmxvZ1VzZXJJbnRlcmFjdGlvbih0b3BMZXZlbE9yaWdpbiwgW10geyB9KTsKICAg
ICB9Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShzZXNzaW9uSUQpOwotICAgIFVOVVNFRF9QQVJB
TSh0b3BMZXZlbE9yaWdpbik7Ci0jZW5kaWYKIH0KIAogdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6bG9nV2ViU29ja2V0TG9hZGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IGNvbnN0IFN0cmluZyYgdGFyZ2V0UHJpbWFyeURvbWFpbiwgY29uc3QgU3RyaW5nJiBtYWluRnJh
bWVQcmltYXJ5RG9tYWluLCBXYWxsVGltZSBsYXN0U2VlbikKIHsKLSNpZiBFTkFCTEUoUkVTT1VS
Q0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIGlmIChhdXRvIG5ldHdvcmtTZXNzaW9uID0gbmV0d29y
a1Byb2Nlc3MoKS5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7CiAgICAgICAgIGlmIChhdXRv
KiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gbmV0d29ya1Nlc3Npb24tPnJlc291cmNlTG9hZFN0
YXRpc3RpY3MoKSkKICAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPmxvZ1dlYlNv
Y2tldExvYWRpbmcodGFyZ2V0UHJpbWFyeURvbWFpbiwgbWFpbkZyYW1lUHJpbWFyeURvbWFpbiwg
bGFzdFNlZW4sIFtdIHsgfSk7CiAgICAgfQotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oc2Vzc2lv
bklEKTsKLSAgICBVTlVTRURfUEFSQU0odGFyZ2V0UHJpbWFyeURvbWFpbik7Ci0gICAgVU5VU0VE
X1BBUkFNKG1haW5GcmFtZVByaW1hcnlEb21haW4pOwotICAgIFVOVVNFRF9QQVJBTShsYXN0U2Vl
bik7Ci0jZW5kaWYKIH0KIAogdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6bG9n
U3VicmVzb3VyY2VMb2FkaW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5n
JiB0YXJnZXRQcmltYXJ5RG9tYWluLCBjb25zdCBTdHJpbmcmIG1haW5GcmFtZVByaW1hcnlEb21h
aW4sIFdhbGxUaW1lIGxhc3RTZWVuKQogewotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJ
U1RJQ1MpCiAgICAgaWYgKGF1dG8gbmV0d29ya1Nlc3Npb24gPSBuZXR3b3JrUHJvY2VzcygpLm5l
dHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKICAgICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9h
ZFN0YXRpc3RpY3MgPSBuZXR3b3JrU2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpKQog
ICAgICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+bG9nU3VicmVzb3VyY2VMb2FkaW5n
KHRhcmdldFByaW1hcnlEb21haW4sIG1haW5GcmFtZVByaW1hcnlEb21haW4sIGxhc3RTZWVuLCBb
XSB7IH0pOwogICAgIH0KLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKHNlc3Npb25JRCk7Ci0gICAg
VU5VU0VEX1BBUkFNKHRhcmdldFByaW1hcnlEb21haW4pOwotICAgIFVOVVNFRF9QQVJBTShtYWlu
RnJhbWVQcmltYXJ5RG9tYWluKTsKLSAgICBVTlVTRURfUEFSQU0obGFzdFNlZW4pOwotI2VuZGlm
CiB9CiAKIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmxvZ1N1YnJlc291cmNl
UmVkaXJlY3QoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIHNvdXJjZVBy
aW1hcnlEb21haW4sIGNvbnN0IFN0cmluZyYgdGFyZ2V0UHJpbWFyeURvbWFpbikKIHsKLSNpZiBF
TkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIGlmIChhdXRvIG5ldHdvcmtTZXNz
aW9uID0gbmV0d29ya1Byb2Nlc3MoKS5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7CiAgICAg
ICAgIGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gbmV0d29ya1Nlc3Npb24tPnJl
c291cmNlTG9hZFN0YXRpc3RpY3MoKSkKICAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3Rp
Y3MtPmxvZ1N1YnJlc291cmNlUmVkaXJlY3Qoc291cmNlUHJpbWFyeURvbWFpbiwgdGFyZ2V0UHJp
bWFyeURvbWFpbiwgW10geyB9KTsKICAgICB9Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShzZXNz
aW9uSUQpOwotICAgIFVOVVNFRF9QQVJBTShzb3VyY2VQcmltYXJ5RG9tYWluKTsKLSAgICBVTlVT
RURfUEFSQU0odGFyZ2V0UHJpbWFyeURvbWFpbik7Ci0jZW5kaWYKIH0KIAogdm9pZCBOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVxdWVzdFJlc291cmNlTG9hZFN0YXRpc3RpY3NVcGRh
dGUoKQogewotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAgICAgZm9yIChh
dXRvJiBuZXR3b3JrU2Vzc2lvbiA6IG5ldHdvcmtQcm9jZXNzKCkubmV0d29ya1Nlc3Npb25zKCku
dmFsdWVzKCkpIHsKICAgICAgICAgaWYgKG5ldHdvcmtTZXNzaW9uLT5zZXNzaW9uSUQoKS5pc0Vw
aGVtZXJhbCgpKQogICAgICAgICAgICAgY29udGludWU7CkBAIC02NDksOSArNjE0LDE5IEBAIHZv
aWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlcXVlc3RSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzVXBkYXRlKCkKICAgICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3Mg
PSBuZXR3b3JrU2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpKQogICAgICAgICAgICAg
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+cmVxdWVzdFVwZGF0ZSgpOwogICAgIH0KLSNlbmRpZgog
fQogCit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpoYXNTdG9yYWdlQWNjZXNz
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBzdWJGcmFtZUhvc3QsIGNv
bnN0IFN0cmluZyYgdG9wRnJhbWVIb3N0LCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBwYWdl
SUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7
CisgICAgbmV0d29ya1Byb2Nlc3MoKS5oYXNTdG9yYWdlQWNjZXNzKHNlc3Npb25JRCwgc3ViRnJh
bWVIb3N0LCB0b3BGcmFtZUhvc3QsIGZyYW1lSUQsIHBhZ2VJRCwgV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikpOworfQorCit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZXF1
ZXN0U3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYg
c3ViRnJhbWVIb3N0LCBjb25zdCBTdHJpbmcmIHRvcEZyYW1lSG9zdCwgdWludDY0X3QgZnJhbWVJ
RCwgdWludDY0X3QgcGFnZUlELCBib29sIHByb21wdEVuYWJsZWQsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgbmV0d29ya1Byb2Nlc3Mo
KS5yZXF1ZXN0U3RvcmFnZUFjY2Vzc0dyYW50ZWQoc2Vzc2lvbklELCBzdWJGcmFtZUhvc3QsIHRv
cEZyYW1lSG9zdCwgZnJhbWVJRCwgcGFnZUlELCBwcm9tcHRFbmFibGVkLCBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSk7Cit9CisjZW5kaWYKKwogdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6YWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoY29uc3QgU3RyaW5nJiBzb3Vy
Y2VPcmlnaW4sIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25Qcm90b2NvbCwgY29uc3QgU3RyaW5n
JiBkZXN0aW5hdGlvbkhvc3QsIGJvb2wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpCiB7CiAg
ICAgU2VjdXJpdHlQb2xpY3k6OmFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KFNlY3VyaXR5
T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKHNvdXJjZU9yaWdpbikuZ2V0KCksIGRlc3RpbmF0aW9u
UHJvdG9jb2wsIGRlc3RpbmF0aW9uSG9zdCwgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5oCmluZGV4IDQ0YzBhNWY3MTQzNmJkYTNjMjk0MzA5NzE2NDBi
ZjlmMjIzZWQ0YjguLjkxNGQ3YmQ2ODVhMDU0YWU1M2RhNDU2NTA3YmQzMWIyOGQxYmE3ZjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKQEAgLTE5MiwxMyArMTkyLDE4IEBAIHByaXZhdGU6CiAK
ICAgICBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uJiBjYWNoZVN0b3JhZ2VDb25uZWN0aW9u
KCk7CiAKKyNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIHZvaWQgcmVt
b3ZlU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKFBBTDo6U2Vzc2lvbklELCB1aW50NjRfdCBmcmFtZUlE
LCB1aW50NjRfdCBwYWdlSUQpOwogICAgIHZvaWQgcmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckFsbEZy
YW1lc09uUGFnZShQQUw6OlNlc3Npb25JRCwgdWludDY0X3QgcGFnZUlEKTsKKwogICAgIHZvaWQg
bG9nVXNlckludGVyYWN0aW9uKFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIHRvcExldmVs
T3JpZ2luKTsKICAgICB2b2lkIGxvZ1dlYlNvY2tldExvYWRpbmcoUEFMOjpTZXNzaW9uSUQsIGNv
bnN0IFN0cmluZyYgdGFyZ2V0UHJpbWFyeURvbWFpbiwgY29uc3QgU3RyaW5nJiBtYWluRnJhbWVQ
cmltYXJ5RG9tYWluLCBXYWxsVGltZSBsYXN0U2Vlbik7CiAgICAgdm9pZCBsb2dTdWJyZXNvdXJj
ZUxvYWRpbmcoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgdGFyZ2V0UHJpbWFyeURvbWFp
biwgY29uc3QgU3RyaW5nJiBtYWluRnJhbWVQcmltYXJ5RG9tYWluLCBXYWxsVGltZSBsYXN0U2Vl
bik7CiAgICAgdm9pZCBsb2dTdWJyZXNvdXJjZVJlZGlyZWN0KFBBTDo6U2Vzc2lvbklELCBjb25z
dCBTdHJpbmcmIHNvdXJjZVByaW1hcnlEb21haW4sIGNvbnN0IFN0cmluZyYgdGFyZ2V0UHJpbWFy
eURvbWFpbik7CiAgICAgdm9pZCByZXF1ZXN0UmVzb3VyY2VMb2FkU3RhdGlzdGljc1VwZGF0ZSgp
OworICAgIHZvaWQgaGFzU3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5n
JiBzdWJGcmFtZUhvc3QsIGNvbnN0IFN0cmluZyYgdG9wRnJhbWVIb3N0LCB1aW50NjRfdCBmcmFt
ZUlELCB1aW50NjRfdCBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwor
ICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmlu
ZyYgc3ViRnJhbWVIb3N0LCBjb25zdCBTdHJpbmcmIHRvcEZyYW1lSG9zdCwgdWludDY0X3QgZnJh
bWVJRCwgdWludDY0X3QgcGFnZUlELCBib29sIHByb21wdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sKT4mJik7CisjZW5kaWYKIAogICAgIHZvaWQgYWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0
RW50cnkoY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4sIGNvbnN0IFN0cmluZyYgZGVzdGluYXRp
b25Qcm90b2NvbCwgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvbkhvc3QsIGJvb2wgYWxsb3dEZXN0
aW5hdGlvblN1YmRvbWFpbnMpOwogICAgIHZvaWQgcmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0
RW50cnkoY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4sIGNvbnN0IFN0cmluZyYgZGVzdGluYXRp
b25Qcm90b2NvbCwgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvbkhvc3QsIGJvb2wgYWxsb3dEZXN0
aW5hdGlvblN1YmRvbWFpbnMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2Fn
ZXMuaW4KaW5kZXggODQyMjg2YjE4MmY1OWEwNzZhMDk3Njk2MGVmNTA1NGVlMmM5NGFjYi4uMDQ5
NjA5NjM5NWFhYTkxMTU1OGIyNjgxMDk5ZjY1ZjcyYmFmNWYyNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNz
YWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0xLDQgKzEsNCBAQAotIyBDb3B5cmlnaHQg
KEMpIDIwMTItMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdo
dCAoQykgMjAxMi0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTYsMTQgKzU2LDE2IEBAIG1lc3NhZ2VzIC0+IE5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKIAogICAgIEVuc3VyZUxl
Z2FjeVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKQogCisjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURf
U1RBVElTVElDUykKICAgICBSZW1vdmVTdG9yYWdlQWNjZXNzRm9yRnJhbWUoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQpOwogICAgIFJl
bW92ZVN0b3JhZ2VBY2Nlc3NGb3JBbGxGcmFtZXNPblBhZ2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCB1aW50NjRfdCBwYWdlSUQpOwotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJ
Q1MpCiAgICAgTG9nVXNlckludGVyYWN0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgU3Ry
aW5nIHRvcExldmVsT3JpZ2luKQogICAgIExvZ1dlYlNvY2tldExvYWRpbmcoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBTdHJpbmcgdGFyZ2V0UHJpbWFyeURvbWFpbiwgU3RyaW5nIG1haW5GcmFt
ZVByaW1hcnlEb21haW4sIFdhbGxUaW1lIGxhc3RTZWVuKQogICAgIExvZ1N1YnJlc291cmNlTG9h
ZGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFN0cmluZyB0YXJnZXRQcmltYXJ5RG9tYWlu
LCBTdHJpbmcgbWFpbkZyYW1lUHJpbWFyeURvbWFpbiwgV2FsbFRpbWUgbGFzdFNlZW4pCiAgICAg
TG9nU3VicmVzb3VyY2VSZWRpcmVjdChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFN0cmluZyBz
b3VyY2VQcmltYXJ5RG9tYWluLCBTdHJpbmcgdGFyZ2V0UHJpbWFyeURvbWFpbikKICAgICBSZXF1
ZXN0UmVzb3VyY2VMb2FkU3RhdGlzdGljc1VwZGF0ZSgpOworICAgIEhhc1N0b3JhZ2VBY2Nlc3Mo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTdHJpbmcgc3ViRnJhbWVIb3N0LCBTdHJpbmcgdG9w
RnJhbWVIb3N0LCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQpIC0+IChib29sIGhh
c1N0b3JhZ2VBY2Nlc3MpIEFzeW5jCisgICAgUmVxdWVzdFN0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBTdHJpbmcgc3ViRnJhbWVIb3N0LCBTdHJpbmcgdG9wRnJhbWVIb3N0
LCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIGJvb2wgcHJvbXB0KSAtPiAoYm9v
bCBhY2Nlc3NHcmFudGVkKSBBc3luYwogI2VuZGlmCiAKICAgICBBZGRPcmlnaW5BY2Nlc3NXaGl0
ZWxpc3RFbnRyeShTdHJpbmcgc291cmNlT3JpZ2luLCBTdHJpbmcgZGVzdGluYXRpb25Qcm90b2Nv
bCwgU3RyaW5nIGRlc3RpbmF0aW9uSG9zdCwgYm9vbCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlu
cyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3Bw
CmluZGV4IDk1NDI4NzljZDcwYTNkZmUwMGM2NWYwYmQ5YTM4YmE3NjI0ODU5MTguLmM1Y2E1OGYz
MmM0OThmZGY2ODE3ZGZjNDkzZmEzZDEwYzcxZjFiMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBAIC05NjksNyArOTY5LDcgQEAgdm9p
ZCBOZXR3b3JrUHJvY2Vzczo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBjb25zdCBTdHJpbmcKIHsKICAgICBpZiAoYXV0byogbmV0d29ya1Nlc3Npb24gPSB0
aGlzLT5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7CiAgICAgICAgIGlmIChhdXRvKiByZXNv
dXJjZUxvYWRTdGF0aXN0aWNzID0gbmV0d29ya1Nlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3Rp
Y3MoKSkKLSAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPnJlcXVlc3RTdG9yYWdl
QWNjZXNzKHJlc291cmNlRG9tYWluLCBmaXJzdFBhcnR5RG9tYWluLCBmcmFtZUlELCBwYWdlSUQs
IHByb21wdEVuYWJsZWQsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICAgICAgICAg
IHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPnJlcXVlc3RTdG9yYWdlQWNjZXNzKHJlc291cmNlRG9t
YWluLCBmaXJzdFBhcnR5RG9tYWluLCBmcmFtZUlELnZhbHVlKCksIHBhZ2VJRCwgcHJvbXB0RW5h
YmxlZCwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogICAgICAgICBlbHNlCiAgICAgICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihTdG9yYWdlQWNjZXNzU3RhdHVzOjpDYW5ub3RSZXF1ZXN0
QWNjZXNzKTsKICAgICB9IGVsc2UgewpAQCAtOTc4LDYgKzk3OCwxOSBAQCB2b2lkIE5ldHdvcmtQ
cm9jZXNzOjpyZXF1ZXN0U3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNv
bnN0IFN0cmluZwogICAgIH0KIH0KIAordm9pZCBOZXR3b3JrUHJvY2Vzczo6cmVxdWVzdFN0b3Jh
Z2VBY2Nlc3NHcmFudGVkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBz
dWJGcmFtZUhvc3QsIGNvbnN0IFN0cmluZyYgdG9wRnJhbWVIb3N0LCB1aW50NjRfdCBmcmFtZUlE
LCB1aW50NjRfdCBwYWdlSUQsIGJvb2wgcHJvbXB0RW5hYmxlZCwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBpZiAoYXV0byogbmV0d29y
a1Nlc3Npb24gPSB0aGlzLT5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7CisgICAgICAgIGlm
IChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gbmV0d29ya1Nlc3Npb24tPnJlc291cmNl
TG9hZFN0YXRpc3RpY3MoKSkKKyAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPnJl
cXVlc3RTdG9yYWdlQWNjZXNzR3JhbnRlZChzdWJGcmFtZUhvc3QsIHRvcEZyYW1lSG9zdCwgZnJh
bWVJRCwgcGFnZUlELCBwcm9tcHRFbmFibGVkLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKKyAg
ICB9IGVsc2UgeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoZmFsc2UpOworICAgIH0KK30KKwogdm9pZCBOZXR3b3JrUHJvY2Vzczo6Z3Jh
bnRTdG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBy
ZXNvdXJjZURvbWFpbiwgY29uc3QgU3RyaW5nJiBmaXJzdFBhcnR5RG9tYWluLCBPcHRpb25hbDx1
aW50NjRfdD4gZnJhbWVJRCwgdWludDY0X3QgcGFnZUlELCBib29sIHVzZXJXYXNQcm9tcHRlZCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAg
ICBpZiAoYXV0byogbmV0d29ya1Nlc3Npb24gPSB0aGlzLT5uZXR3b3JrU2Vzc2lvbihzZXNzaW9u
SUQpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgK
aW5kZXggZTQ1MzE0Mjk2Y2Q5ZjE3YTczNGQ1M2QxZjdkNDJlYjBhNDBhNWJkMS4uM2QwMGU3YmU4
N2NjODcwYmRhZjllM2Q3MjgxODQwN2ZiZTBjMDQwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAtMjA2LDYgKzIwNiw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHJlbW92ZUFsbFN0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCByZW1vdmVQcmV2YWxlbnREb21haW5zKFBB
TDo6U2Vzc2lvbklELCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZG9tYWlucyk7CiAgICAgdm9pZCBy
ZXF1ZXN0U3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiByZXNvdXJj
ZURvbWFpbiwgY29uc3QgU3RyaW5nJiBmaXJzdFBhcnR5RG9tYWluLCBPcHRpb25hbDx1aW50NjRf
dD4gZnJhbWVJRCwgdWludDY0X3QgcGFnZUlELCBib29sIHByb21wdEVuYWJsZWQsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1N0YXR1cyk+JiYpOworICAgIHZvaWQgcmVxdWVz
dFN0b3JhZ2VBY2Nlc3NHcmFudGVkKFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIHN1YkZy
YW1lSG9zdCwgY29uc3QgU3RyaW5nJiB0b3BGcmFtZUhvc3QsIHVpbnQ2NF90IGZyYW1lSUQsIHVp
bnQ2NF90IHBhZ2VJRCwgYm9vbCBwcm9tcHRFbmFibGVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wpPiYmKTsKICAgICB2b2lkIHJlc2V0Q2FjaGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRSZXNv
dXJjZXMoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAg
dm9pZCByZXNldFBhcmFtZXRlcnNUb0RlZmF1bHRWYWx1ZXMoUEFMOjpTZXNzaW9uSUQsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzY2hlZHVsZUNsZWFySW5NZW1vcnlB
bmRQZXJzaXN0ZW50KFBBTDo6U2Vzc2lvbklELCBPcHRpb25hbDxXYWxsVGltZT4gbW9kaWZpZWRT
aW5jZSwgU2hvdWxkR3JhbmRmYXRoZXJTdGF0aXN0aWNzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggNWY1OGFlZTc1MmFjOTk3OTVkNjg3MjY1MzM2NDEz
OWUyNzE3ZmRmNS4uMWQwZWRhZTNlNzZkMDI4NTFmYzI3YmMyN2VmMWM0MTAxMGNhNTllOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzUHJveHkuY3BwCkBAIC03MjcsNiArNzI3LDExIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94
eTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBT
CiAgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6UmVxdWVz
dFN0b3JhZ2VBY2Nlc3Moc2Vzc2lvbklELCByZXNvdXJjZURvbWFpbiwgZmlyc3RQYXJ0eURvbWFp
biwgZnJhbWVJRCwgcGFnZUlELCBwcm9tcHRFbmFibGVkKSwgV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikpOwogfQogCit2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnJlcXVlc3RTdG9yYWdlQWNj
ZXNzQ29uZmlybSh1aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmlu
ZyYgc3ViRnJhbWVIb3N0LCBjb25zdCBTdHJpbmcmIHRvcEZyYW1lSG9zdCwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBXZWJQYWdlUHJv
eHk6OnJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybShwYWdlSUQsIGZyYW1lSUQsIHN1YkZyYW1l
SG9zdCwgdG9wRnJhbWVIb3N0LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cit9CisKIHZv
aWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6Z3JhbnRTdG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiByZXNvdXJjZURvbWFpbiwgY29uc3QgU3RyaW5nJiBm
aXJzdFBhcnR5RG9tYWluLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgdWludDY0X3QgcGFn
ZUlELCBib29sIHVzZXJXYXNQcm9tcHRlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAoIWNhblNlbmRNZXNzYWdlKCkpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQ
cm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5LmgKaW5kZXggZGM1MjcyYzhiOTYzZDA5MGYyMDIyOGM1NWNiYjg1ZTAwNzAyNzg0Yi4uM2M3
YjBiYTRkMTdmYjA1ODA5NGZhZTM0NzBhNjdhN2E1OTQxNmM1OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKQEAgLTEx
Myw2ICsxMTMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBncmFudFN0b3JhZ2VBY2Nlc3MoUEFMOjpT
ZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgcmVzb3VyY2VEb21haW4sIGNvbnN0IFN0cmluZyYgZmly
c3RQYXJ0eURvbWFpbiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJ
RCwgYm9vbCB1c2VyV2FzUHJvbXB0ZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYp
OwogICAgIHZvaWQgaGFzU3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5n
JiBzdWJGcmFtZUhvc3QsIGNvbnN0IFN0cmluZyYgdG9wRnJhbWVIb3N0LCBPcHRpb25hbDx1aW50
NjRfdD4gZnJhbWVJRCwgdWludDY0X3QgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJv
b2wpPiYmKTsKICAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklELCBj
b25zdCBTdHJpbmcmIHJlc291cmNlRG9tYWluLCBjb25zdCBTdHJpbmcmIGZpcnN0UGFydHlEb21h
aW4sIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIGJvb2wgcHJv
bXB0RW5hYmxlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzU3RhdHVzKT4m
Jik7CisgICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0odWludDY0X3QgcGFnZUlE
LCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHN1YkZyYW1lSG9zdCwgY29uc3QgU3Ry
aW5nJiB0b3BGcmFtZUhvc3QsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAg
IHZvaWQgcmVzZXRQYXJhbWV0ZXJzVG9EZWZhdWx0VmFsdWVzKFBBTDo6U2Vzc2lvbklELCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgcmVtb3ZlQWxsU3RvcmFnZUFjY2Vz
cyhQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lk
IHNjaGVkdWxlQ2xlYXJJbk1lbW9yeUFuZFBlcnNpc3RlbnQoUEFMOjpTZXNzaW9uSUQsIFNob3Vs
ZEdyYW5kZmF0aGVyU3RhdGlzdGljcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQ
cm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgppbmRleCAxMWI0MDkyYTgwMjg3ODllZjQ4MWZlNDYz
NmQzNTViNWM0MWVkZDRlLi5mM2VkMzZkYWI5MjJjMTNjYWI1N2Y3YjI0YjdhYTYzZTk4MTc4OTA0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC0xLDQgKzEsNCBAQAotIyBDb3B5
cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmln
aHQgKEMpIDIwMTItMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQ2LDYgKzQ2LDcgQEAgbWVzc2FnZXMgLT4gTmV0d29y
a1Byb2Nlc3NQcm94eSBMZWdhY3lSZWNlaXZlciB7CiAgICAgTm90aWZ5V2Vic2l0ZURhdGFEZWxl
dGlvbkZvclRvcFByaXZhdGVseU93bmVkRG9tYWluc0ZpbmlzaGVkKCkKICAgICBOb3RpZnlXZWJz
aXRlRGF0YVNjYW5Gb3JUb3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluc0ZpbmlzaGVkKCkKICAg
ICBOb3RpZnlSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVsZW1ldHJ5RmluaXNoZWQodW5zaWduZWQg
dG90YWxQcmV2YWxlbnRSZXNvdXJjZXMsIHVuc2lnbmVkIHRvdGFsUHJldmFsZW50UmVzb3VyY2Vz
V2l0aFVzZXJJbnRlcmFjdGlvbiwgdW5zaWduZWQgdG9wM1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9y
aWdpbnMpCisgICAgUmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtKHVpbnQ2NF90IHBhZ2VJRCwg
dWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIHN1YkZyYW1lSG9zdCwgU3RyaW5nIHRvcEZyYW1lSG9z
dCkgLT4gKGJvb2wgdXNlckRpZEdyYW50QWNjZXNzKSBBc3luYwogI2VuZGlmCiAjaWYgRU5BQkxF
KENPTlRFTlRfRVhURU5TSU9OUykKICAgICBDb250ZW50RXh0ZW5zaW9uUnVsZXMoV2ViS2l0OjpV
c2VyQ29udGVudENvbnRyb2xsZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA3NTZmNjg2NzhhMGU4MWY5YTdjZWJhYzg2
YTE4MGVkZDM3MmJhNGFkLi41ZDAzMGJiNzc4NTYxNzU3MTcyMTRkNTY2ODg1YWNhY2EzZDlhNzUz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTgyMzksMzgg
KzgyMzksMTUgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmxvYWRTeW5jaHJvbm91c1VSTFNjaGVtZVRh
c2soVVJMU2NoZW1lVGFza1BhcmFtZXRlcnMmJiBwYXJhbWUKIH0KIAogI2lmIEVOQUJMRShSRVNP
VVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi12b2lkIFdlYlBhZ2VQcm94eTo6aGFzU3RvcmFnZUFjY2Vz
cyhTdHJpbmcmJiBzdWJGcmFtZUhvc3QsIFN0cmluZyYmIHRvcEZyYW1lSG9zdCwgdWludDY0X3Qg
ZnJhbWVJRCwgdWludDY0X3Qgd2ViUHJvY2Vzc0NvbnRleHRJZCkKK3ZvaWQgV2ViUGFnZVByb3h5
OjpyZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0odWludDY0X3QgcGFnZUlELCB1aW50NjRfdCBm
cmFtZUlELCBjb25zdCBTdHJpbmcmIHN1YkZyYW1lSG9zdCwgY29uc3QgU3RyaW5nJiB0b3BGcmFt
ZUhvc3QsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7Ci0gICAgbV93ZWJzaXRlRGF0YVN0b3JlLT5oYXNTdG9yYWdlQWNjZXNzKFdURk1vdmUoc3Vi
RnJhbWVIb3N0KSwgV1RGTW92ZSh0b3BGcmFtZUhvc3QpLCBmcmFtZUlELCBtX3BhZ2VJRCwgW3Ro
aXMsIHdlYlByb2Nlc3NDb250ZXh0SWRdIChib29sIGhhc0FjY2VzcykgewotICAgICAgICBtX3By
b2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlN0b3JhZ2VBY2Nlc3NSZXNwb25zZShoYXNB
Y2Nlc3MsIHdlYlByb2Nlc3NDb250ZXh0SWQpLCBtX3BhZ2VJRCk7Ci0gICAgfSk7Ci19Ci0KLXZv
aWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0U3RvcmFnZUFjY2VzcyhTdHJpbmcmJiBzdWJGcmFtZUhv
c3QsIFN0cmluZyYmIHRvcEZyYW1lSG9zdCwgdWludDY0X3QgZnJhbWVJRCwgdWludDY0X3Qgd2Vi
UHJvY2Vzc0NvbnRleHRJZCwgYm9vbCBwcm9tcHRFbmFibGVkKQotewotICAgIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoYm9vbCk+IGNvbXBsZXRpb25IYW5kbGVyID0gW3RoaXMsIHByb3RlY3RlZFRo
aXMgPSBtYWtlUmVmKCp0aGlzKSwgd2ViUHJvY2Vzc0NvbnRleHRJZF0gKGJvb2wgYWNjZXNzKSB7
Ci0gICAgICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U3RvcmFnZUFjY2Vz
c1Jlc3BvbnNlKGFjY2Vzcywgd2ViUHJvY2Vzc0NvbnRleHRJZCksIG1fcGFnZUlEKTsKLSAgICB9
OwotCi0gICAgbV93ZWJzaXRlRGF0YVN0b3JlLT5yZXF1ZXN0U3RvcmFnZUFjY2VzcyhTdHJpbmco
c3ViRnJhbWVIb3N0KSwgU3RyaW5nKHRvcEZyYW1lSG9zdCksIGZyYW1lSUQsIG1fcGFnZUlELCBw
cm9tcHRFbmFibGVkLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBzdWJG
cmFtZUhvc3QsIHRvcEZyYW1lSG9zdCwgcHJvbXB0RW5hYmxlZCwgZnJhbWVJRCwgY29tcGxldGlv
bkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKFN0b3JhZ2VBY2Nlc3NTdGF0
dXMgc3RhdHVzKSBtdXRhYmxlIHsKLSAgICAgICAgc3dpdGNoIChzdGF0dXMpIHsKLSAgICAgICAg
Y2FzZSBTdG9yYWdlQWNjZXNzU3RhdHVzOjpDYW5ub3RSZXF1ZXN0QWNjZXNzOgotICAgICAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAg
ICBjYXNlIFN0b3JhZ2VBY2Nlc3NTdGF0dXM6OlJlcXVpcmVzVXNlclByb21wdDoKLSAgICAgICAg
ICAgIEFTU0VSVF9VTlVTRUQocHJvbXB0RW5hYmxlZCwgcHJvbXB0RW5hYmxlZCk7Ci0gICAgICAg
ICAgICBtX3VpQ2xpZW50LT5yZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0oKnRoaXMsIG1fcHJv
Y2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCksIFJlc291cmNlTG9hZFN0YXRpc3RpY3M6OnByaW1hcnlE
b21haW4oc3ViRnJhbWVIb3N0KSwgUmVzb3VyY2VMb2FkU3RhdGlzdGljczo6cHJpbWFyeURvbWFp
bih0b3BGcmFtZUhvc3QpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBz
dWJGcmFtZUhvc3QsIHRvcEZyYW1lSG9zdCwgZnJhbWVJRCwgY29tcGxldGlvbkhhbmRsZXIgPSBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKGJvb2wgdXNlckRpZEdyYW50QWNjZXNzKSBtdXRh
YmxlIHsKLSAgICAgICAgICAgICAgICBpZiAodXNlckRpZEdyYW50QWNjZXNzKQotICAgICAgICAg
ICAgICAgICAgICBtX3dlYnNpdGVEYXRhU3RvcmUtPmdyYW50U3RvcmFnZUFjY2VzcyhXVEZNb3Zl
KHN1YkZyYW1lSG9zdCksIFdURk1vdmUodG9wRnJhbWVIb3N0KSwgZnJhbWVJRCwgbV9wYWdlSUQs
IHVzZXJEaWRHcmFudEFjY2VzcywgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwotICAgICAg
ICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFs
c2UpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGNhc2Ug
U3RvcmFnZUFjY2Vzc1N0YXR1czo6SGFzQWNjZXNzOgotICAgICAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIodHJ1ZSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICB9KTsKKyAg
ICBXZWJQYWdlUHJveHkqIHBhZ2UgPSBXZWJQcm9jZXNzUHJveHk6OndlYlBhZ2UocGFnZUlEKTsK
KyAgICBpZiAoIXBhZ2UpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOworICAg
ICAgICByZXR1cm47CisgICAgfQorICAgIAorICAgIHBhZ2UtPm1fdWlDbGllbnQtPnJlcXVlc3RT
dG9yYWdlQWNjZXNzQ29uZmlybSgqcGFnZSwgcGFnZS0+bV9wcm9jZXNzLT53ZWJGcmFtZShmcmFt
ZUlEKSwgUmVzb3VyY2VMb2FkU3RhdGlzdGljczo6cHJpbWFyeURvbWFpbihzdWJGcmFtZUhvc3Qp
LCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOjpwcmltYXJ5RG9tYWluKHRvcEZyYW1lSG9zdCksIFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDE5YjEyZjQyZDM5YzU1NmQ2ZGRjNjQ3YjY5ZDQyNTdh
OGU3NWQzNjMuLjRiMTcxZTYzMzljM2Q1NzZlM2VmMTRhMjY1NzcyOTY2N2Q0ZGIyYTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xMzgwLDggKzEzODAsNyBAQCBw
dWJsaWM6CiAjZW5kaWYKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi0g
ICAgdm9pZCBoYXNTdG9yYWdlQWNjZXNzKFN0cmluZyYmIHN1YkZyYW1lSG9zdCwgU3RyaW5nJiYg
dG9wRnJhbWVIb3N0LCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCB3ZWJQcm9jZXNzQ29udGV4
dElkKTsKLSAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKFN0cmluZyYmIHN1YkZyYW1lSG9z
dCwgU3RyaW5nJiYgdG9wRnJhbWVIb3N0LCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCB3ZWJQ
cm9jZXNzQ29udGV4dElkLCBib29sIHByb21wdCk7CisgICAgc3RhdGljIHZvaWQgcmVxdWVzdFN0
b3JhZ2VBY2Nlc3NDb25maXJtKHVpbnQ2NF90IHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgY29u
c3QgU3RyaW5nJiBzdWJGcmFtZUhvc3QsIGNvbnN0IFN0cmluZyYgdG9wRnJhbWVIb3N0LCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKICNlbmRpZgogCiAgICAgc3RhdGljIFdlYlBh
Z2VQcm94eSogbm9uRXBoZW1lcmFsV2ViUGFnZVByb3h5KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggOTk2MTM2NjA1OGQ4Yzcy
NmQ0MDZlZjVlNzlhYzAzZmNiZWZiYjQyZi4uOTI5Mzg5NmJlZTk4YjQ5ZDFhMTJiNDI2Njg3YTAy
YTFmYjVlMTQzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5tZXNzYWdlcy5pbgpAQCAtMSw0ICsxLDQgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDEwLTIwMTgg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTAtMjAx
OSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTUzNCwxMSArNTM0LDYgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAg
ICBTdG9wVVJMU2NoZW1lVGFzayh1aW50NjRfdCBoYW5kbGVySWRlbnRpZmllciwgdWludDY0X3Qg
dGFza0lkZW50aWZpZXIpCiAgICAgTG9hZFN5bmNocm9ub3VzVVJMU2NoZW1lVGFzayhzdHJ1Y3Qg
V2ViS2l0OjpVUkxTY2hlbWVUYXNrUGFyYW1ldGVycyBwYXJhbWV0ZXJzKSAtPiAoV2ViQ29yZTo6
UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvciwg
SVBDOjpEYXRhUmVmZXJlbmNlIGRhdGEpIERlbGF5ZWQKIAotI2lmIEVOQUJMRShSRVNPVVJDRV9M
T0FEX1NUQVRJU1RJQ1MpCi0gICAgSGFzU3RvcmFnZUFjY2VzcyhTdHJpbmcgc3ViRnJhbWVIb3N0
LCBTdHJpbmcgdG9wRnJhbWVIb3N0LCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBjb250ZXh0
SUQpCi0gICAgUmVxdWVzdFN0b3JhZ2VBY2Nlc3MoU3RyaW5nIHN1YkZyYW1lSG9zdCwgU3RyaW5n
IHRvcEZyYW1lSG9zdCwgdWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgY29udGV4dElELCBib29s
IHByb21wdCkKLSNlbmRpZgotCiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKICAgICBS
ZWdpc3RlckF0dGFjaG1lbnRJZGVudGlmaWVyRnJvbURhdGEoU3RyaW5nIGlkZW50aWZpZXIsIFN0
cmluZyBjb250ZW50VHlwZSwgU3RyaW5nIHByZWZlcnJlZEZpbGVOYW1lLCBJUEM6OlNoYXJlZEJ1
ZmZlckRhdGFSZWZlcmVuY2UgZGF0YSkKICAgICBSZWdpc3RlckF0dGFjaG1lbnRJZGVudGlmaWVy
RnJvbUZpbGVQYXRoKFN0cmluZyBpZGVudGlmaWVyLCBTdHJpbmcgY29udGVudFR5cGUsIFN0cmlu
ZyBmaWxlUGF0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKaW5kZXggZDBiOTc1MzA4MGMzNjEzOGFmYjM0NTM1NTFjNWFlZTcxODA4MjdiOC4uMjNlYmU2
MWI1ZWViZWQ2ZDA1Nzk3NmVhYTc5NDBiOWUyYjI3MDczZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTYzNjcsNDAgKzYzNjcsMTUgQEAgdm9p
ZCBXZWJQYWdlOjpmcmFtZUJlY2FtZVJlbW90ZSh1aW50NjRfdCBmcmFtZUlELCBHbG9iYWxGcmFt
ZUlkZW50aWZpZXImJiByZW1vdGUKIH0KIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJ
U1RJQ1MpCi1zdGF0aWMgdWludDY0X3QgbmV4dFJlcXVlc3RTdG9yYWdlQWNjZXNzQ29udGV4dElk
KCkKK3ZvaWQgV2ViUGFnZTo6aGFzU3RvcmFnZUFjY2VzcyhTdHJpbmcmJiBzdWJGcmFtZUhvc3Qs
IFN0cmluZyYmIHRvcEZyYW1lSG9zdCwgdWludDY0X3QgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBzdGF0aWMgdWludDY0
X3QgbmV4dENvbnRleHRJZCA9IDA7Ci0gICAgcmV0dXJuICsrbmV4dENvbnRleHRJZDsKLX0KLQot
dm9pZCBXZWJQYWdlOjpoYXNTdG9yYWdlQWNjZXNzKFN0cmluZyYmIHN1YkZyYW1lSG9zdCwgU3Ry
aW5nJiYgdG9wRnJhbWVIb3N0LCB1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGJvb2wpPiYmIGNhbGxiYWNrKQotewotICAgIGF1dG8gY29udGV4dElkID0gbmV4dFJlcXVl
c3RTdG9yYWdlQWNjZXNzQ29udGV4dElkKCk7Ci0gICAgYXV0byBhZGRSZXN1bHQgPSBtX3N0b3Jh
Z2VBY2Nlc3NSZXNwb25zZUNhbGxiYWNrTWFwLmFkZChjb250ZXh0SWQsIFdURk1vdmUoY2FsbGJh
Y2spKTsKLSAgICBBU1NFUlQoYWRkUmVzdWx0LmlzTmV3RW50cnkpOwotICAgIGlmIChhZGRSZXN1
bHQuaXRlcmF0b3ItPnZhbHVlKQotICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
Okhhc1N0b3JhZ2VBY2Nlc3MoV1RGTW92ZShzdWJGcmFtZUhvc3QpLCBXVEZNb3ZlKHRvcEZyYW1l
SG9zdCksIGZyYW1lSUQsIGNvbnRleHRJZCkpOwotICAgIGVsc2UKLSAgICAgICAgY2FsbGJhY2so
ZmFsc2UpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpIYXNTdG9yYWdlQWNjZXNzKHNlc3Npb25JRCgp
LCBXVEZNb3ZlKHN1YkZyYW1lSG9zdCksIFdURk1vdmUodG9wRnJhbWVIb3N0KSwgZnJhbWVJRCwg
bV9wYWdlSUQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAgICAgCi12b2lkIFdl
YlBhZ2U6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKFN0cmluZyYmIHN1YkZyYW1lSG9zdCwgU3RyaW5n
JiYgdG9wRnJhbWVIb3N0LCB1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wpPiYmIGNhbGxiYWNrKQordm9pZCBXZWJQYWdlOjpyZXF1ZXN0U3RvcmFnZUFjY2VzcyhT
dHJpbmcmJiBzdWJGcmFtZUhvc3QsIFN0cmluZyYmIHRvcEZyYW1lSG9zdCwgdWludDY0X3QgZnJh
bWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
IHsKLSAgICBhdXRvIGNvbnRleHRJZCA9IG5leHRSZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbnRleHRJ
ZCgpOwotICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9zdG9yYWdlQWNjZXNzUmVzcG9uc2VDYWxsYmFj
a01hcC5hZGQoY29udGV4dElkLCBXVEZNb3ZlKGNhbGxiYWNrKSk7Ci0gICAgQVNTRVJUKGFkZFJl
c3VsdC5pc05ld0VudHJ5KTsKLSAgICBpZiAoYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSkgewot
ICAgICAgICBib29sIHByb21wdEVuYWJsZWQgPSBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFy
ZWRGZWF0dXJlcygpLnN0b3JhZ2VBY2Nlc3NQcm9tcHRzRW5hYmxlZCgpOwotICAgICAgICBzZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJlcXVlc3RTdG9yYWdlQWNjZXNzKFdURk1vdmUoc3Vi
RnJhbWVIb3N0KSwgV1RGTW92ZSh0b3BGcmFtZUhvc3QpLCBmcmFtZUlELCBjb250ZXh0SWQsIHBy
b21wdEVuYWJsZWQpKTsKLSAgICB9IGVsc2UKLSAgICAgICAgY2FsbGJhY2soZmFsc2UpOwotfQot
Ci12b2lkIFdlYlBhZ2U6OnN0b3JhZ2VBY2Nlc3NSZXNwb25zZShib29sIHdhc0dyYW50ZWQsIHVp
bnQ2NF90IGNvbnRleHRJZCkKLXsKLSAgICBhdXRvIGNhbGxiYWNrID0gbV9zdG9yYWdlQWNjZXNz
UmVzcG9uc2VDYWxsYmFja01hcC50YWtlKGNvbnRleHRJZCk7Ci0gICAgQVNTRVJUKGNhbGxiYWNr
KTsKLSAgICBjYWxsYmFjayh3YXNHcmFudGVkKTsKKyAgICBib29sIHByb21wdEVuYWJsZWQgPSBS
dW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnN0b3JhZ2VBY2Nlc3NQcm9t
cHRzRW5hYmxlZCgpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2Fn
ZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpSZXF1ZXN0U3RvcmFnZUFjY2Vzcyhz
ZXNzaW9uSUQoKSwgV1RGTW92ZShzdWJGcmFtZUhvc3QpLCBXVEZNb3ZlKHRvcEZyYW1lSG9zdCks
IGZyYW1lSUQsIG1fcGFnZUlELCBwcm9tcHRFbmFibGVkKSwgV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikpOwogfQogI2VuZGlmCiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmgKaW5kZXggZTc2NGY5OTJlMjUxNzlmM2ViMTkwOTgxYzY5NTA0NDMxOTBmMjAz
MS4uMTkwZDYyZWFmMzVjZmVkYzgxNzYxOTUyZDk2M2QwNzFmZGMzNWJlYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTExMTEsNyArMTExMSw2IEBA
IHB1YmxpYzoKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIHZvaWQg
aGFzU3RvcmFnZUFjY2VzcyhTdHJpbmcmJiBzdWJGcmFtZUhvc3QsIFN0cmluZyYmIHRvcEZyYW1l
SG9zdCwgdWludDY0X3QgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBj
YWxsYmFjayk7CiAgICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2VzcyhTdHJpbmcmJiBzdWJGcmFt
ZUhvc3QsIFN0cmluZyYmIHRvcEZyYW1lSG9zdCwgdWludDY0X3QgZnJhbWVJRCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sKT4mJiBjYWxsYmFjayk7Ci0gICAgdm9pZCBzdG9yYWdlQWNjZXNz
UmVzcG9uc2UoYm9vbCB3YXNHcmFudGVkLCB1aW50NjRfdCBjb250ZXh0SWQpOwogI2VuZGlmCiAK
ICAgICB2b2lkIHNob3dTaGFyZVNoZWV0KFdlYkNvcmU6OlNoYXJlRGF0YVdpdGhQYXJzZWRVUkwm
LCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY2FsbGJhY2spOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4K
aW5kZXggNGRiZTBhMzRhOTkzOGNjNWMzMmVjNTdiMjQzMTNlYWRkMjJiYjRmYi4uZTY5YWM2ZmRk
YmNkZmVlNjQwNzFjZTlhMTE5NjFiZDZkODAyOTg4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC0xLDQgKzEsNCBA
QAotIyBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisjIENvcHlyaWdodCAoQykgMjAxMC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTMxLDEwICs1MzEsNiBAQCBt
ZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsKIAogICAgIFNldElzU3VzcGVuZGVk
KGJvb2wgc3VzcGVuZGVkKQogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykK
LSAgICBTdG9yYWdlQWNjZXNzUmVzcG9uc2UoYm9vbCB3YXNHcmFudGVkLCB1aW50NjRfdCBjb250
ZXh0SWQpCi0jZW5kaWYKLQogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCiAgICAgSW5z
ZXJ0QXR0YWNobWVudChTdHJpbmcgaWRlbnRpZmllciwgT3B0aW9uYWw8dWludDY0X3Q+IGZpbGVT
aXplLCBTdHJpbmcgZmlsZU5hbWUsIFN0cmluZyBjb250ZW50VHlwZSwgV2ViS2l0OjpDYWxsYmFj
a0lEIGNhbGxiYWNrSUQpCiAgICAgVXBkYXRlQXR0YWNobWVudEF0dHJpYnV0ZXMoU3RyaW5nIGlk
ZW50aWZpZXIsIE9wdGlvbmFsPHVpbnQ2NF90PiBmaWxlU2l6ZSwgU3RyaW5nIGNvbnRlbnRUeXBl
LCBTdHJpbmcgZmlsZU5hbWUsIElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSBlbmNsb3Np
bmdJbWFnZURhdGEsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>360471</attachid>
            <date>2019-01-29 10:32:24 -0800</date>
            <delta_ts>2019-01-29 11:43:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193924-20190129103224.patch</filename>
            <type>text/plain</type>
            <size>36577</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwNjIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDQ3NDYyYjRmZGNiNWMwZjJi
MjQxOTExNjliNWI0MzgxNjQ5NzcxODQuLmNiYjk5M2JkNmQxZDg3ZjE3ZmI1ZTYxN2Q4MzZkNGNm
OTc1ZWJkMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTEgQEAKKzIwMTktMDEtMjkgIEJyZW50IEZ1
bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CisKKyAgICAgICAgU3RvcmFnZUFjY2VzcyBBUEkg
Y2FsbHMgc2hvdWxkIGJlIGRpcmVjdCB0byB0aGUgTmV0d29yayBQcm9jZXNzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTM5MjQKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzQ3NjExMjQ5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIE5vdyB0aGF0IHRoZSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzIGRhdGEg
bGl2ZXMgaW4gdGhlIE5ldHdvcmsgUHJvY2VzcywgY2FsbHMgdG8gU3RvcmFnZSBBY2Nlc3MKKyAg
ICAgICAgQVBJIHNob3VsZCBoYXBwZW4gZGlyZWN0bHkgYmV0d2VlbiB0aGUgV2ViQ29udGVudCBh
bmQgTmV0d29yayBwcm9jZXNzZXMuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lm
aWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3NHcmFu
dGVkKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OnJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFtZSk6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZW1vdmVTdG9yYWdlQWNjZXNz
Rm9yQWxsRnJhbWVzT25QYWdlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3M6OmxvZ1VzZXJJbnRlcmFjdGlvbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpsb2dXZWJTb2NrZXRMb2FkaW5nKToKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmxvZ1N1YnJlc291cmNlTG9h
ZGluZyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjps
b2dTdWJyZXNvdXJjZVJlZGlyZWN0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OnJlcXVlc3RSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVXBkYXRlKToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6Omhhc1N0b3JhZ2VB
Y2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
cmVxdWVzdFN0b3JhZ2VBY2Nlc3MpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vz
czo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vz
czo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3NHcmFudGVkKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpy
ZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlcXVlc3RTdG9yYWdl
QWNjZXNzQ29uZmlybSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6aGFzU3RvcmFn
ZUFjY2Vzcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVz
dFN0b3JhZ2VBY2Nlc3MpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6aGFzU3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnJl
cXVlc3RTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdlYktpdDo6bmV4dFJlcXVlc3RTdG9yYWdl
QWNjZXNzQ29udGV4dElkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c3Rv
cmFnZUFjY2Vzc1Jlc3BvbnNlKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3Nh
Z2VzLmluOgorCiAyMDE5LTAxLTI4ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+
CiAKICAgICAgICAgTW92ZSBzb2Z0LWxpbmtpbmcgb2YgTWFuYWdlZENvbmZpZ3VyYXRpb24uZnJh
bWV3b3JrIG91dCBvZiBNYW5hZ2VkQ29uZmlndXJhdGlvblNQSS5oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9X
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCmluZGV4IDVjZGY4MzAyNjUyNzEwMTRh
OTVjMDQ1NGI4N2M0Y2YxODU1OGY1MjcuLjZmOWVmN2RiNmViM2Q3NjMxOGI3YzVhNTJjMDdlMWEy
OGFlNDgyZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3Np
Zmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmUuY3BwCkBAIC0yOTMsMTQgKzI5MywzNCBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZTo6Y2FsbEhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZUhhbmRsZXIoY29uc3QgUwogICAg
IGNhbGxiYWNrKGZhbHNlKTsKIH0KIAotdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmU6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKFN0cmluZyYmIHN1YkZyYW1lSG9zdCwgU3RyaW5nJiYg
dG9wRnJhbWVIb3N0LCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIGJvb2wgcHJv
bXB0RW5hYmxlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzU3RhdHVzKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
OjpyZXF1ZXN0U3RvcmFnZUFjY2Vzc0dyYW50ZWQoY29uc3QgU3RyaW5nJiBzdWJGcmFtZUhvc3Qs
IGNvbnN0IFN0cmluZyYgdG9wRnJhbWVIb3N0LCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBw
YWdlSUQsIGJvb2wgcHJvbXB0RW5hYmxlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBBU1NFUlQoc3ViRnJhbWVIb3N0ICE9IHRvcEZy
YW1lSG9zdCk7Ci0gICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKKyAgICBhdXRvIHN0YXR1
c0hhbmRsZXIgPSBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBzdWJGcmFt
ZUhvc3QgPSBzdWJGcmFtZUhvc3QuaXNvbGF0ZWRDb3B5KCksIHRvcEZyYW1lSG9zdCA9IHRvcEZy
YW1lSG9zdC5pc29sYXRlZENvcHkoKSwgcHJvbXB0RW5hYmxlZCwgZnJhbWVJRCwgcGFnZUlELCBj
b21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShTdG9yYWdlQWNj
ZXNzU3RhdHVzIHN0YXR1cykgbXV0YWJsZSB7CisgICAgICAgIHN3aXRjaCAoc3RhdHVzKSB7Cisg
ICAgICAgIGNhc2UgU3RvcmFnZUFjY2Vzc1N0YXR1czo6Q2Fubm90UmVxdWVzdEFjY2VzczoKKyAg
ICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgY2FzZSBTdG9yYWdlQWNjZXNzU3RhdHVzOjpSZXF1aXJlc1VzZXJQcm9tcHQ6Cisg
ICAgICAgICAgICB7CisgICAgICAgICAgICBBU1NFUlRfVU5VU0VEKHByb21wdEVuYWJsZWQsIHBy
b21wdEVuYWJsZWQpOworICAgICAgICAgICAgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4g
cmVxdWVzdENvbmZpcm1hdGlvbkNvbXBsZXRpb25IYW5kbGVyID0gW3RoaXMsIHByb3RlY3RlZFRo
aXMgPSBtYWtlUmVmKCp0aGlzKSwgc3ViRnJhbWVIb3N0ID0gV1RGTW92ZShzdWJGcmFtZUhvc3Qp
LCB0b3BGcmFtZUhvc3QgPSBXVEZNb3ZlKHRvcEZyYW1lSG9zdCksIGZyYW1lSUQsIHBhZ2VJRCwg
Y29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKGJvb2wgdXNl
ckRpZEdyYW50QWNjZXNzKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBpZiAodXNlckRpZEdy
YW50QWNjZXNzKQorICAgICAgICAgICAgICAgICAgICBncmFudFN0b3JhZ2VBY2Nlc3MoV1RGTW92
ZShzdWJGcmFtZUhvc3QpLCBXVEZNb3ZlKHRvcEZyYW1lSG9zdCksIGZyYW1lSUQsIHBhZ2VJRCwg
dXNlckRpZEdyYW50QWNjZXNzLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxz
ZSk7CisgICAgICAgICAgICB9OworICAgICAgICAgICAgbV9uZXR3b3JrU2Vzc2lvbi0+bmV0d29y
a1Byb2Nlc3MoKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kV2l0aEFzeW5jUmVwbHko
TWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OlJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmly
bShwYWdlSUQsIGZyYW1lSUQsIFJlc291cmNlTG9hZFN0YXRpc3RpY3M6OnByaW1hcnlEb21haW4o
c3ViRnJhbWVIb3N0KSwgUmVzb3VyY2VMb2FkU3RhdGlzdGljczo6cHJpbWFyeURvbWFpbih0b3BG
cmFtZUhvc3QpKSwgV1RGTW92ZShyZXF1ZXN0Q29uZmlybWF0aW9uQ29tcGxldGlvbkhhbmRsZXIp
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgY2FzZSBTdG9y
YWdlQWNjZXNzU3RhdHVzOjpIYXNBY2Nlc3M6CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cih0cnVlKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH07CiAKLSAgICBy
ZXF1ZXN0U3RvcmFnZUFjY2VzcyhzdWJGcmFtZUhvc3QsIHRvcEZyYW1lSG9zdCwgZnJhbWVJRCwg
cGFnZUlELCBwcm9tcHRFbmFibGVkLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAg
cmVxdWVzdFN0b3JhZ2VBY2Nlc3Moc3ViRnJhbWVIb3N0LCB0b3BGcmFtZUhvc3QsIGZyYW1lSUQs
IHBhZ2VJRCwgcHJvbXB0RW5hYmxlZCwgV1RGTW92ZShzdGF0dXNIYW5kbGVyKSk7CiB9Ci0gICAg
CisKIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpyZXF1ZXN0U3RvcmFnZUFj
Y2Vzcyhjb25zdCBTdHJpbmcmIHN1YkZyYW1lSG9zdCwgY29uc3QgU3RyaW5nJiB0b3BGcmFtZUhv
c3QsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIGJvb2wgcHJv
bXB0RW5hYmxlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzU3RhdHVzKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBhdXRvIHN1YkZyYW1lUHJpbWFyeURvbWFpbiA9
IGlzb2xhdGVkUHJpbWFyeURvbWFpbihzdWJGcmFtZUhvc3QpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCmluZGV4IGQyODg5MGViZTBiNGU2MzdmMDMxMzBk
YWZhMGU3MGY0MjM2MzVjMjEuLjExYzAwY2E4NWQxNjk3MTBiNjk5MGI0MTliNDQzOGE5MmFlODkx
ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9X
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKQEAg
LTc1LDkgKzc1LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U2hvdWxkQ2xhc3NpZnlSZXNvdXJj
ZXNCZWZvcmVEYXRhUmVjb3Jkc1JlbW92YWwoYm9vbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKTsKICAgICB2b2lkIHNldFNob3VsZFN1Ym1pdFRlbGVtZXRyeShib29sKTsKIAotICAgIHZv
aWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoU3RyaW5nJiYgc3ViRnJhbWVIb3N0LCBTdHJpbmcmJiB0
b3BGcmFtZUhvc3QsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJRCwgYm9vbCBwcm9t
cHRFbmFibGVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NTdGF0dXMpPiYm
KTsKICAgICB2b2lkIGdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdCBTdHJpbmcmIHN1YkZyYW1lSG9z
dCwgY29uc3QgU3RyaW5nJiB0b3BGcmFtZUhvc3QsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90
IHBhZ2VJRCwgYm9vbCB1c2VyV2FzUHJvbXB0ZWROb3csIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Ym9vbCk+JiYpOwotICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3NDYWxsYmFjayhib29sIHdh
c0dyYW50ZWQsIHVpbnQ2NF90IGNvbnRleHRJZCk7CiAKICAgICB2b2lkIGFwcGxpY2F0aW9uV2ls
bFRlcm1pbmF0ZSgpOwogCkBAIC05NSw2ICs5Myw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGhhc1N0
b3JhZ2VBY2Nlc3MoY29uc3QgU3RyaW5nJiBzdWJGcmFtZUhvc3QsIGNvbnN0IFN0cmluZyYgdG9w
RnJhbWVIb3N0LCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgdWludDY0X3QgcGFnZUlELCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNrKTsKICAgICBib29sIGhhc1N0
b3JhZ2VBY2Nlc3NGb3JGcmFtZShjb25zdCBTdHJpbmcmIHJlc291cmNlRG9tYWluLCBjb25zdCBT
dHJpbmcmIGZpcnN0UGFydHlEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJ
RCk7CiAgICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vzcyhjb25zdCBTdHJpbmcmIHJlc291cmNl
RG9tYWluLCBjb25zdCBTdHJpbmcmIGZpcnN0UGFydHlEb21haW4sIE9wdGlvbmFsPHVpbnQ2NF90
PiBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIGJvb2wgcHJvbXB0RW5hYmxlZCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzU3RhdHVzKT4mJik7CisgICAgdm9pZCByZXF1ZXN0
U3RvcmFnZUFjY2Vzc0dyYW50ZWQoY29uc3QgU3RyaW5nJiBzdWJGcmFtZUhvc3QsIGNvbnN0IFN0
cmluZyYgdG9wRnJhbWVIb3N0LCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIGJv
b2wgcHJvbXB0RW5hYmxlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAgICAg
dm9pZCByZXF1ZXN0VXBkYXRlKCk7CiAgICAgdm9pZCBzZXRMYXN0U2Vlbihjb25zdCBTdHJpbmcm
IHJlc291cmNlRG9tYWluLCBTZWNvbmRzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwog
ICAgIHZvaWQgc2V0UHJldmFsZW50UmVzb3VyY2UoY29uc3QgU3RyaW5nJiByZXNvdXJjZURvbWFp
biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5j
cHAKaW5kZXggNzUzOGUxZDMyNTFjNzNiNThmYmQ5NjEzODQwMDA3YWNmNGI5YmFiZi4uMmZkN2Fm
ZGQ5OWFiNzlhZGE3ZmU3NzkxZDFiN2YxZmM3YzBkMGMzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5jcHAKQEAgLTU2LDYgKzU2LDcgQEAKICNpbmNsdWRlICJXZWJTV1NlcnZlclRvQ29udGV4
dENvbm5lY3Rpb25NZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYnNpdGVEYXRhU3RvcmVQYXJhbWV0
ZXJzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1Jlc291cmNlUmVxdWVzdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2FtZVNpdGVJbmZvLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eVBvbGljeS5oPgpAQCAtNTU5LDg5ICs1NjAsNTMgQEAg
dm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZW5zdXJlTGVnYWN5UHJpdmF0ZUJy
b3dzaW5nU2Vzc2lvbigpCiAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+YWRkV2Vic2l0ZURhdGFTdG9y
ZShXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVyczo6bGVnYWN5UHJpdmF0ZVNlc3Npb25QYXJhbWV0
ZXJzKCkpOwogfQogCisjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKIHZvaWQg
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFt
ZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBh
Z2VJRCkKIHsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIGlmIChh
dXRvKiBzdG9yYWdlU2Vzc2lvbiA9IG5ldHdvcmtQcm9jZXNzKCkuc3RvcmFnZVNlc3Npb24oc2Vz
c2lvbklEKSkKICAgICAgICAgc3RvcmFnZVNlc3Npb24tPnJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JG
cmFtZShmcmFtZUlELCBwYWdlSUQpOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oc2Vzc2lvbklE
KTsKLSAgICBVTlVTRURfUEFSQU0oZnJhbWVJRCk7Ci0gICAgVU5VU0VEX1BBUkFNKHBhZ2VJRCk7
Ci0jZW5kaWYKIH0KIAogdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVtb3Zl
U3RvcmFnZUFjY2Vzc0ZvckFsbEZyYW1lc09uUGFnZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IHVpbnQ2NF90IHBhZ2VJRCkKIHsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNT
KQogICAgIGlmIChhdXRvKiBzdG9yYWdlU2Vzc2lvbiA9IG5ldHdvcmtQcm9jZXNzKCkuc3RvcmFn
ZVNlc3Npb24oc2Vzc2lvbklEKSkKICAgICAgICAgc3RvcmFnZVNlc3Npb24tPnJlbW92ZVN0b3Jh
Z2VBY2Nlc3NGb3JBbGxGcmFtZXNPblBhZ2UocGFnZUlEKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BB
UkFNKHNlc3Npb25JRCk7Ci0gICAgVU5VU0VEX1BBUkFNKHBhZ2VJRCk7Ci0jZW5kaWYKIH0KIAog
dm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6bG9nVXNlckludGVyYWN0aW9uKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiB0b3BMZXZlbE9yaWdpbikKIHsK
LSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIGlmIChhdXRvIG5ldHdv
cmtTZXNzaW9uID0gbmV0d29ya1Byb2Nlc3MoKS5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7
CiAgICAgICAgIGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gbmV0d29ya1Nlc3Np
b24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkKICAgICAgICAgICAgIHJlc291cmNlTG9hZFN0
YXRpc3RpY3MtPmxvZ1VzZXJJbnRlcmFjdGlvbih0b3BMZXZlbE9yaWdpbiwgW10geyB9KTsKICAg
ICB9Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShzZXNzaW9uSUQpOwotICAgIFVOVVNFRF9QQVJB
TSh0b3BMZXZlbE9yaWdpbik7Ci0jZW5kaWYKIH0KIAogdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6bG9nV2ViU29ja2V0TG9hZGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IGNvbnN0IFN0cmluZyYgdGFyZ2V0UHJpbWFyeURvbWFpbiwgY29uc3QgU3RyaW5nJiBtYWluRnJh
bWVQcmltYXJ5RG9tYWluLCBXYWxsVGltZSBsYXN0U2VlbikKIHsKLSNpZiBFTkFCTEUoUkVTT1VS
Q0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIGlmIChhdXRvIG5ldHdvcmtTZXNzaW9uID0gbmV0d29y
a1Byb2Nlc3MoKS5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7CiAgICAgICAgIGlmIChhdXRv
KiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gbmV0d29ya1Nlc3Npb24tPnJlc291cmNlTG9hZFN0
YXRpc3RpY3MoKSkKICAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPmxvZ1dlYlNv
Y2tldExvYWRpbmcodGFyZ2V0UHJpbWFyeURvbWFpbiwgbWFpbkZyYW1lUHJpbWFyeURvbWFpbiwg
bGFzdFNlZW4sIFtdIHsgfSk7CiAgICAgfQotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oc2Vzc2lv
bklEKTsKLSAgICBVTlVTRURfUEFSQU0odGFyZ2V0UHJpbWFyeURvbWFpbik7Ci0gICAgVU5VU0VE
X1BBUkFNKG1haW5GcmFtZVByaW1hcnlEb21haW4pOwotICAgIFVOVVNFRF9QQVJBTShsYXN0U2Vl
bik7Ci0jZW5kaWYKIH0KIAogdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6bG9n
U3VicmVzb3VyY2VMb2FkaW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5n
JiB0YXJnZXRQcmltYXJ5RG9tYWluLCBjb25zdCBTdHJpbmcmIG1haW5GcmFtZVByaW1hcnlEb21h
aW4sIFdhbGxUaW1lIGxhc3RTZWVuKQogewotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJ
U1RJQ1MpCiAgICAgaWYgKGF1dG8gbmV0d29ya1Nlc3Npb24gPSBuZXR3b3JrUHJvY2VzcygpLm5l
dHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKICAgICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9h
ZFN0YXRpc3RpY3MgPSBuZXR3b3JrU2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpKQog
ICAgICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+bG9nU3VicmVzb3VyY2VMb2FkaW5n
KHRhcmdldFByaW1hcnlEb21haW4sIG1haW5GcmFtZVByaW1hcnlEb21haW4sIGxhc3RTZWVuLCBb
XSB7IH0pOwogICAgIH0KLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKHNlc3Npb25JRCk7Ci0gICAg
VU5VU0VEX1BBUkFNKHRhcmdldFByaW1hcnlEb21haW4pOwotICAgIFVOVVNFRF9QQVJBTShtYWlu
RnJhbWVQcmltYXJ5RG9tYWluKTsKLSAgICBVTlVTRURfUEFSQU0obGFzdFNlZW4pOwotI2VuZGlm
CiB9CiAKIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmxvZ1N1YnJlc291cmNl
UmVkaXJlY3QoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIHNvdXJjZVBy
aW1hcnlEb21haW4sIGNvbnN0IFN0cmluZyYgdGFyZ2V0UHJpbWFyeURvbWFpbikKIHsKLSNpZiBF
TkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIGlmIChhdXRvIG5ldHdvcmtTZXNz
aW9uID0gbmV0d29ya1Byb2Nlc3MoKS5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7CiAgICAg
ICAgIGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gbmV0d29ya1Nlc3Npb24tPnJl
c291cmNlTG9hZFN0YXRpc3RpY3MoKSkKICAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3Rp
Y3MtPmxvZ1N1YnJlc291cmNlUmVkaXJlY3Qoc291cmNlUHJpbWFyeURvbWFpbiwgdGFyZ2V0UHJp
bWFyeURvbWFpbiwgW10geyB9KTsKICAgICB9Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShzZXNz
aW9uSUQpOwotICAgIFVOVVNFRF9QQVJBTShzb3VyY2VQcmltYXJ5RG9tYWluKTsKLSAgICBVTlVT
RURfUEFSQU0odGFyZ2V0UHJpbWFyeURvbWFpbik7Ci0jZW5kaWYKIH0KIAogdm9pZCBOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVxdWVzdFJlc291cmNlTG9hZFN0YXRpc3RpY3NVcGRh
dGUoKQogewotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAgICAgZm9yIChh
dXRvJiBuZXR3b3JrU2Vzc2lvbiA6IG5ldHdvcmtQcm9jZXNzKCkubmV0d29ya1Nlc3Npb25zKCku
dmFsdWVzKCkpIHsKICAgICAgICAgaWYgKG5ldHdvcmtTZXNzaW9uLT5zZXNzaW9uSUQoKS5pc0Vw
aGVtZXJhbCgpKQogICAgICAgICAgICAgY29udGludWU7CkBAIC02NDksOSArNjE0LDE5IEBAIHZv
aWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlcXVlc3RSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzVXBkYXRlKCkKICAgICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3Mg
PSBuZXR3b3JrU2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpKQogICAgICAgICAgICAg
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+cmVxdWVzdFVwZGF0ZSgpOwogICAgIH0KLSNlbmRpZgog
fQogCit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpoYXNTdG9yYWdlQWNjZXNz
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBzdWJGcmFtZUhvc3QsIGNv
bnN0IFN0cmluZyYgdG9wRnJhbWVIb3N0LCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBwYWdl
SUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7
CisgICAgbmV0d29ya1Byb2Nlc3MoKS5oYXNTdG9yYWdlQWNjZXNzKHNlc3Npb25JRCwgc3ViRnJh
bWVIb3N0LCB0b3BGcmFtZUhvc3QsIGZyYW1lSUQsIHBhZ2VJRCwgV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikpOworfQorCit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZXF1
ZXN0U3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYg
c3ViRnJhbWVIb3N0LCBjb25zdCBTdHJpbmcmIHRvcEZyYW1lSG9zdCwgdWludDY0X3QgZnJhbWVJ
RCwgdWludDY0X3QgcGFnZUlELCBib29sIHByb21wdEVuYWJsZWQsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgbmV0d29ya1Byb2Nlc3Mo
KS5yZXF1ZXN0U3RvcmFnZUFjY2Vzc0dyYW50ZWQoc2Vzc2lvbklELCBzdWJGcmFtZUhvc3QsIHRv
cEZyYW1lSG9zdCwgZnJhbWVJRCwgcGFnZUlELCBwcm9tcHRFbmFibGVkLCBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSk7Cit9CisjZW5kaWYKKwogdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6YWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoY29uc3QgU3RyaW5nJiBzb3Vy
Y2VPcmlnaW4sIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25Qcm90b2NvbCwgY29uc3QgU3RyaW5n
JiBkZXN0aW5hdGlvbkhvc3QsIGJvb2wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpCiB7CiAg
ICAgU2VjdXJpdHlQb2xpY3k6OmFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KFNlY3VyaXR5
T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKHNvdXJjZU9yaWdpbikuZ2V0KCksIGRlc3RpbmF0aW9u
UHJvdG9jb2wsIGRlc3RpbmF0aW9uSG9zdCwgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5oCmluZGV4IDQ0YzBhNWY3MTQzNmJkYTNjMjk0MzA5NzE2NDBi
ZjlmMjIzZWQ0YjguLjkxNGQ3YmQ2ODVhMDU0YWU1M2RhNDU2NTA3YmQzMWIyOGQxYmE3ZjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKQEAgLTE5MiwxMyArMTkyLDE4IEBAIHByaXZhdGU6CiAK
ICAgICBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uJiBjYWNoZVN0b3JhZ2VDb25uZWN0aW9u
KCk7CiAKKyNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIHZvaWQgcmVt
b3ZlU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKFBBTDo6U2Vzc2lvbklELCB1aW50NjRfdCBmcmFtZUlE
LCB1aW50NjRfdCBwYWdlSUQpOwogICAgIHZvaWQgcmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckFsbEZy
YW1lc09uUGFnZShQQUw6OlNlc3Npb25JRCwgdWludDY0X3QgcGFnZUlEKTsKKwogICAgIHZvaWQg
bG9nVXNlckludGVyYWN0aW9uKFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIHRvcExldmVs
T3JpZ2luKTsKICAgICB2b2lkIGxvZ1dlYlNvY2tldExvYWRpbmcoUEFMOjpTZXNzaW9uSUQsIGNv
bnN0IFN0cmluZyYgdGFyZ2V0UHJpbWFyeURvbWFpbiwgY29uc3QgU3RyaW5nJiBtYWluRnJhbWVQ
cmltYXJ5RG9tYWluLCBXYWxsVGltZSBsYXN0U2Vlbik7CiAgICAgdm9pZCBsb2dTdWJyZXNvdXJj
ZUxvYWRpbmcoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgdGFyZ2V0UHJpbWFyeURvbWFp
biwgY29uc3QgU3RyaW5nJiBtYWluRnJhbWVQcmltYXJ5RG9tYWluLCBXYWxsVGltZSBsYXN0U2Vl
bik7CiAgICAgdm9pZCBsb2dTdWJyZXNvdXJjZVJlZGlyZWN0KFBBTDo6U2Vzc2lvbklELCBjb25z
dCBTdHJpbmcmIHNvdXJjZVByaW1hcnlEb21haW4sIGNvbnN0IFN0cmluZyYgdGFyZ2V0UHJpbWFy
eURvbWFpbik7CiAgICAgdm9pZCByZXF1ZXN0UmVzb3VyY2VMb2FkU3RhdGlzdGljc1VwZGF0ZSgp
OworICAgIHZvaWQgaGFzU3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5n
JiBzdWJGcmFtZUhvc3QsIGNvbnN0IFN0cmluZyYgdG9wRnJhbWVIb3N0LCB1aW50NjRfdCBmcmFt
ZUlELCB1aW50NjRfdCBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwor
ICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmlu
ZyYgc3ViRnJhbWVIb3N0LCBjb25zdCBTdHJpbmcmIHRvcEZyYW1lSG9zdCwgdWludDY0X3QgZnJh
bWVJRCwgdWludDY0X3QgcGFnZUlELCBib29sIHByb21wdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sKT4mJik7CisjZW5kaWYKIAogICAgIHZvaWQgYWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0
RW50cnkoY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4sIGNvbnN0IFN0cmluZyYgZGVzdGluYXRp
b25Qcm90b2NvbCwgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvbkhvc3QsIGJvb2wgYWxsb3dEZXN0
aW5hdGlvblN1YmRvbWFpbnMpOwogICAgIHZvaWQgcmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0
RW50cnkoY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4sIGNvbnN0IFN0cmluZyYgZGVzdGluYXRp
b25Qcm90b2NvbCwgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvbkhvc3QsIGJvb2wgYWxsb3dEZXN0
aW5hdGlvblN1YmRvbWFpbnMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2Fn
ZXMuaW4KaW5kZXggODQyMjg2YjE4MmY1OWEwNzZhMDk3Njk2MGVmNTA1NGVlMmM5NGFjYi4uMDQ5
NjA5NjM5NWFhYTkxMTU1OGIyNjgxMDk5ZjY1ZjcyYmFmNWYyNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNz
YWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0xLDQgKzEsNCBAQAotIyBDb3B5cmlnaHQg
KEMpIDIwMTItMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdo
dCAoQykgMjAxMi0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTYsMTQgKzU2LDE2IEBAIG1lc3NhZ2VzIC0+IE5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKIAogICAgIEVuc3VyZUxl
Z2FjeVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKQogCisjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURf
U1RBVElTVElDUykKICAgICBSZW1vdmVTdG9yYWdlQWNjZXNzRm9yRnJhbWUoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQpOwogICAgIFJl
bW92ZVN0b3JhZ2VBY2Nlc3NGb3JBbGxGcmFtZXNPblBhZ2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCB1aW50NjRfdCBwYWdlSUQpOwotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJ
Q1MpCiAgICAgTG9nVXNlckludGVyYWN0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgU3Ry
aW5nIHRvcExldmVsT3JpZ2luKQogICAgIExvZ1dlYlNvY2tldExvYWRpbmcoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBTdHJpbmcgdGFyZ2V0UHJpbWFyeURvbWFpbiwgU3RyaW5nIG1haW5GcmFt
ZVByaW1hcnlEb21haW4sIFdhbGxUaW1lIGxhc3RTZWVuKQogICAgIExvZ1N1YnJlc291cmNlTG9h
ZGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFN0cmluZyB0YXJnZXRQcmltYXJ5RG9tYWlu
LCBTdHJpbmcgbWFpbkZyYW1lUHJpbWFyeURvbWFpbiwgV2FsbFRpbWUgbGFzdFNlZW4pCiAgICAg
TG9nU3VicmVzb3VyY2VSZWRpcmVjdChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFN0cmluZyBz
b3VyY2VQcmltYXJ5RG9tYWluLCBTdHJpbmcgdGFyZ2V0UHJpbWFyeURvbWFpbikKICAgICBSZXF1
ZXN0UmVzb3VyY2VMb2FkU3RhdGlzdGljc1VwZGF0ZSgpOworICAgIEhhc1N0b3JhZ2VBY2Nlc3Mo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTdHJpbmcgc3ViRnJhbWVIb3N0LCBTdHJpbmcgdG9w
RnJhbWVIb3N0LCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQpIC0+IChib29sIGhh
c1N0b3JhZ2VBY2Nlc3MpIEFzeW5jCisgICAgUmVxdWVzdFN0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBTdHJpbmcgc3ViRnJhbWVIb3N0LCBTdHJpbmcgdG9wRnJhbWVIb3N0
LCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIGJvb2wgcHJvbXB0KSAtPiAoYm9v
bCBhY2Nlc3NHcmFudGVkKSBBc3luYwogI2VuZGlmCiAKICAgICBBZGRPcmlnaW5BY2Nlc3NXaGl0
ZWxpc3RFbnRyeShTdHJpbmcgc291cmNlT3JpZ2luLCBTdHJpbmcgZGVzdGluYXRpb25Qcm90b2Nv
bCwgU3RyaW5nIGRlc3RpbmF0aW9uSG9zdCwgYm9vbCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlu
cyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3Bw
CmluZGV4IDk1NDI4NzljZDcwYTNkZmUwMGM2NWYwYmQ5YTM4YmE3NjI0ODU5MTguLmM1Y2E1OGYz
MmM0OThmZGY2ODE3ZGZjNDkzZmEzZDEwYzcxZjFiMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBAIC05NjksNyArOTY5LDcgQEAgdm9p
ZCBOZXR3b3JrUHJvY2Vzczo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBjb25zdCBTdHJpbmcKIHsKICAgICBpZiAoYXV0byogbmV0d29ya1Nlc3Npb24gPSB0
aGlzLT5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7CiAgICAgICAgIGlmIChhdXRvKiByZXNv
dXJjZUxvYWRTdGF0aXN0aWNzID0gbmV0d29ya1Nlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3Rp
Y3MoKSkKLSAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPnJlcXVlc3RTdG9yYWdl
QWNjZXNzKHJlc291cmNlRG9tYWluLCBmaXJzdFBhcnR5RG9tYWluLCBmcmFtZUlELCBwYWdlSUQs
IHByb21wdEVuYWJsZWQsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICAgICAgICAg
IHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPnJlcXVlc3RTdG9yYWdlQWNjZXNzKHJlc291cmNlRG9t
YWluLCBmaXJzdFBhcnR5RG9tYWluLCBmcmFtZUlELnZhbHVlKCksIHBhZ2VJRCwgcHJvbXB0RW5h
YmxlZCwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogICAgICAgICBlbHNlCiAgICAgICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihTdG9yYWdlQWNjZXNzU3RhdHVzOjpDYW5ub3RSZXF1ZXN0
QWNjZXNzKTsKICAgICB9IGVsc2UgewpAQCAtOTc4LDYgKzk3OCwxOSBAQCB2b2lkIE5ldHdvcmtQ
cm9jZXNzOjpyZXF1ZXN0U3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNv
bnN0IFN0cmluZwogICAgIH0KIH0KIAordm9pZCBOZXR3b3JrUHJvY2Vzczo6cmVxdWVzdFN0b3Jh
Z2VBY2Nlc3NHcmFudGVkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBz
dWJGcmFtZUhvc3QsIGNvbnN0IFN0cmluZyYgdG9wRnJhbWVIb3N0LCB1aW50NjRfdCBmcmFtZUlE
LCB1aW50NjRfdCBwYWdlSUQsIGJvb2wgcHJvbXB0RW5hYmxlZCwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBpZiAoYXV0byogbmV0d29y
a1Nlc3Npb24gPSB0aGlzLT5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7CisgICAgICAgIGlm
IChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gbmV0d29ya1Nlc3Npb24tPnJlc291cmNl
TG9hZFN0YXRpc3RpY3MoKSkKKyAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPnJl
cXVlc3RTdG9yYWdlQWNjZXNzR3JhbnRlZChzdWJGcmFtZUhvc3QsIHRvcEZyYW1lSG9zdCwgZnJh
bWVJRCwgcGFnZUlELCBwcm9tcHRFbmFibGVkLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKKyAg
ICB9IGVsc2UgeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoZmFsc2UpOworICAgIH0KK30KKwogdm9pZCBOZXR3b3JrUHJvY2Vzczo6Z3Jh
bnRTdG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBy
ZXNvdXJjZURvbWFpbiwgY29uc3QgU3RyaW5nJiBmaXJzdFBhcnR5RG9tYWluLCBPcHRpb25hbDx1
aW50NjRfdD4gZnJhbWVJRCwgdWludDY0X3QgcGFnZUlELCBib29sIHVzZXJXYXNQcm9tcHRlZCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAg
ICBpZiAoYXV0byogbmV0d29ya1Nlc3Npb24gPSB0aGlzLT5uZXR3b3JrU2Vzc2lvbihzZXNzaW9u
SUQpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgK
aW5kZXggZTQ1MzE0Mjk2Y2Q5ZjE3YTczNGQ1M2QxZjdkNDJlYjBhNDBhNWJkMS4uM2QwMGU3YmU4
N2NjODcwYmRhZjllM2Q3MjgxODQwN2ZiZTBjMDQwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAtMjA2LDYgKzIwNiw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHJlbW92ZUFsbFN0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCByZW1vdmVQcmV2YWxlbnREb21haW5zKFBB
TDo6U2Vzc2lvbklELCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZG9tYWlucyk7CiAgICAgdm9pZCBy
ZXF1ZXN0U3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiByZXNvdXJj
ZURvbWFpbiwgY29uc3QgU3RyaW5nJiBmaXJzdFBhcnR5RG9tYWluLCBPcHRpb25hbDx1aW50NjRf
dD4gZnJhbWVJRCwgdWludDY0X3QgcGFnZUlELCBib29sIHByb21wdEVuYWJsZWQsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1N0YXR1cyk+JiYpOworICAgIHZvaWQgcmVxdWVz
dFN0b3JhZ2VBY2Nlc3NHcmFudGVkKFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIHN1YkZy
YW1lSG9zdCwgY29uc3QgU3RyaW5nJiB0b3BGcmFtZUhvc3QsIHVpbnQ2NF90IGZyYW1lSUQsIHVp
bnQ2NF90IHBhZ2VJRCwgYm9vbCBwcm9tcHRFbmFibGVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wpPiYmKTsKICAgICB2b2lkIHJlc2V0Q2FjaGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRSZXNv
dXJjZXMoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAg
dm9pZCByZXNldFBhcmFtZXRlcnNUb0RlZmF1bHRWYWx1ZXMoUEFMOjpTZXNzaW9uSUQsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzY2hlZHVsZUNsZWFySW5NZW1vcnlB
bmRQZXJzaXN0ZW50KFBBTDo6U2Vzc2lvbklELCBPcHRpb25hbDxXYWxsVGltZT4gbW9kaWZpZWRT
aW5jZSwgU2hvdWxkR3JhbmRmYXRoZXJTdGF0aXN0aWNzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggNWY1OGFlZTc1MmFjOTk3OTVkNjg3MjY1MzM2NDEz
OWUyNzE3ZmRmNS4uMWQwZWRhZTNlNzZkMDI4NTFmYzI3YmMyN2VmMWM0MTAxMGNhNTllOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzUHJveHkuY3BwCkBAIC03MjcsNiArNzI3LDExIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94
eTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBT
CiAgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6UmVxdWVz
dFN0b3JhZ2VBY2Nlc3Moc2Vzc2lvbklELCByZXNvdXJjZURvbWFpbiwgZmlyc3RQYXJ0eURvbWFp
biwgZnJhbWVJRCwgcGFnZUlELCBwcm9tcHRFbmFibGVkKSwgV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikpOwogfQogCit2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnJlcXVlc3RTdG9yYWdlQWNj
ZXNzQ29uZmlybSh1aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmlu
ZyYgc3ViRnJhbWVIb3N0LCBjb25zdCBTdHJpbmcmIHRvcEZyYW1lSG9zdCwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBXZWJQYWdlUHJv
eHk6OnJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybShwYWdlSUQsIGZyYW1lSUQsIHN1YkZyYW1l
SG9zdCwgdG9wRnJhbWVIb3N0LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cit9CisKIHZv
aWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6Z3JhbnRTdG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiByZXNvdXJjZURvbWFpbiwgY29uc3QgU3RyaW5nJiBm
aXJzdFBhcnR5RG9tYWluLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgdWludDY0X3QgcGFn
ZUlELCBib29sIHVzZXJXYXNQcm9tcHRlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAoIWNhblNlbmRNZXNzYWdlKCkpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQ
cm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5LmgKaW5kZXggZGM1MjcyYzhiOTYzZDA5MGYyMDIyOGM1NWNiYjg1ZTAwNzAyNzg0Yi4uM2M3
YjBiYTRkMTdmYjA1ODA5NGZhZTM0NzBhNjdhN2E1OTQxNmM1OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKQEAgLTEx
Myw2ICsxMTMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBncmFudFN0b3JhZ2VBY2Nlc3MoUEFMOjpT
ZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgcmVzb3VyY2VEb21haW4sIGNvbnN0IFN0cmluZyYgZmly
c3RQYXJ0eURvbWFpbiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJ
RCwgYm9vbCB1c2VyV2FzUHJvbXB0ZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYp
OwogICAgIHZvaWQgaGFzU3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5n
JiBzdWJGcmFtZUhvc3QsIGNvbnN0IFN0cmluZyYgdG9wRnJhbWVIb3N0LCBPcHRpb25hbDx1aW50
NjRfdD4gZnJhbWVJRCwgdWludDY0X3QgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJv
b2wpPiYmKTsKICAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklELCBj
b25zdCBTdHJpbmcmIHJlc291cmNlRG9tYWluLCBjb25zdCBTdHJpbmcmIGZpcnN0UGFydHlEb21h
aW4sIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIGJvb2wgcHJv
bXB0RW5hYmxlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzU3RhdHVzKT4m
Jik7CisgICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0odWludDY0X3QgcGFnZUlE
LCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHN1YkZyYW1lSG9zdCwgY29uc3QgU3Ry
aW5nJiB0b3BGcmFtZUhvc3QsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAg
IHZvaWQgcmVzZXRQYXJhbWV0ZXJzVG9EZWZhdWx0VmFsdWVzKFBBTDo6U2Vzc2lvbklELCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgcmVtb3ZlQWxsU3RvcmFnZUFjY2Vz
cyhQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lk
IHNjaGVkdWxlQ2xlYXJJbk1lbW9yeUFuZFBlcnNpc3RlbnQoUEFMOjpTZXNzaW9uSUQsIFNob3Vs
ZEdyYW5kZmF0aGVyU3RhdGlzdGljcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQ
cm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgppbmRleCAxMWI0MDkyYTgwMjg3ODllZjQ4MWZlNDYz
NmQzNTViNWM0MWVkZDRlLi5mM2VkMzZkYWI5MjJjMTNjYWI1N2Y3YjI0YjdhYTYzZTk4MTc4OTA0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC0xLDQgKzEsNCBAQAotIyBDb3B5
cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmln
aHQgKEMpIDIwMTItMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQ2LDYgKzQ2LDcgQEAgbWVzc2FnZXMgLT4gTmV0d29y
a1Byb2Nlc3NQcm94eSBMZWdhY3lSZWNlaXZlciB7CiAgICAgTm90aWZ5V2Vic2l0ZURhdGFEZWxl
dGlvbkZvclRvcFByaXZhdGVseU93bmVkRG9tYWluc0ZpbmlzaGVkKCkKICAgICBOb3RpZnlXZWJz
aXRlRGF0YVNjYW5Gb3JUb3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluc0ZpbmlzaGVkKCkKICAg
ICBOb3RpZnlSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVsZW1ldHJ5RmluaXNoZWQodW5zaWduZWQg
dG90YWxQcmV2YWxlbnRSZXNvdXJjZXMsIHVuc2lnbmVkIHRvdGFsUHJldmFsZW50UmVzb3VyY2Vz
V2l0aFVzZXJJbnRlcmFjdGlvbiwgdW5zaWduZWQgdG9wM1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9y
aWdpbnMpCisgICAgUmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtKHVpbnQ2NF90IHBhZ2VJRCwg
dWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIHN1YkZyYW1lSG9zdCwgU3RyaW5nIHRvcEZyYW1lSG9z
dCkgLT4gKGJvb2wgdXNlckRpZEdyYW50QWNjZXNzKSBBc3luYwogI2VuZGlmCiAjaWYgRU5BQkxF
KENPTlRFTlRfRVhURU5TSU9OUykKICAgICBDb250ZW50RXh0ZW5zaW9uUnVsZXMoV2ViS2l0OjpV
c2VyQ29udGVudENvbnRyb2xsZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA3NTZmNjg2NzhhMGU4MWY5YTdjZWJhYzg2
YTE4MGVkZDM3MmJhNGFkLi41ZDAzMGJiNzc4NTYxNzU3MTcyMTRkNTY2ODg1YWNhY2EzZDlhNzUz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTgyMzksMzgg
KzgyMzksMTUgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmxvYWRTeW5jaHJvbm91c1VSTFNjaGVtZVRh
c2soVVJMU2NoZW1lVGFza1BhcmFtZXRlcnMmJiBwYXJhbWUKIH0KIAogI2lmIEVOQUJMRShSRVNP
VVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi12b2lkIFdlYlBhZ2VQcm94eTo6aGFzU3RvcmFnZUFjY2Vz
cyhTdHJpbmcmJiBzdWJGcmFtZUhvc3QsIFN0cmluZyYmIHRvcEZyYW1lSG9zdCwgdWludDY0X3Qg
ZnJhbWVJRCwgdWludDY0X3Qgd2ViUHJvY2Vzc0NvbnRleHRJZCkKK3ZvaWQgV2ViUGFnZVByb3h5
OjpyZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0odWludDY0X3QgcGFnZUlELCB1aW50NjRfdCBm
cmFtZUlELCBjb25zdCBTdHJpbmcmIHN1YkZyYW1lSG9zdCwgY29uc3QgU3RyaW5nJiB0b3BGcmFt
ZUhvc3QsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7Ci0gICAgbV93ZWJzaXRlRGF0YVN0b3JlLT5oYXNTdG9yYWdlQWNjZXNzKFdURk1vdmUoc3Vi
RnJhbWVIb3N0KSwgV1RGTW92ZSh0b3BGcmFtZUhvc3QpLCBmcmFtZUlELCBtX3BhZ2VJRCwgW3Ro
aXMsIHdlYlByb2Nlc3NDb250ZXh0SWRdIChib29sIGhhc0FjY2VzcykgewotICAgICAgICBtX3By
b2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlN0b3JhZ2VBY2Nlc3NSZXNwb25zZShoYXNB
Y2Nlc3MsIHdlYlByb2Nlc3NDb250ZXh0SWQpLCBtX3BhZ2VJRCk7Ci0gICAgfSk7Ci19Ci0KLXZv
aWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0U3RvcmFnZUFjY2VzcyhTdHJpbmcmJiBzdWJGcmFtZUhv
c3QsIFN0cmluZyYmIHRvcEZyYW1lSG9zdCwgdWludDY0X3QgZnJhbWVJRCwgdWludDY0X3Qgd2Vi
UHJvY2Vzc0NvbnRleHRJZCwgYm9vbCBwcm9tcHRFbmFibGVkKQotewotICAgIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoYm9vbCk+IGNvbXBsZXRpb25IYW5kbGVyID0gW3RoaXMsIHByb3RlY3RlZFRo
aXMgPSBtYWtlUmVmKCp0aGlzKSwgd2ViUHJvY2Vzc0NvbnRleHRJZF0gKGJvb2wgYWNjZXNzKSB7
Ci0gICAgICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U3RvcmFnZUFjY2Vz
c1Jlc3BvbnNlKGFjY2Vzcywgd2ViUHJvY2Vzc0NvbnRleHRJZCksIG1fcGFnZUlEKTsKLSAgICB9
OwotCi0gICAgbV93ZWJzaXRlRGF0YVN0b3JlLT5yZXF1ZXN0U3RvcmFnZUFjY2VzcyhTdHJpbmco
c3ViRnJhbWVIb3N0KSwgU3RyaW5nKHRvcEZyYW1lSG9zdCksIGZyYW1lSUQsIG1fcGFnZUlELCBw
cm9tcHRFbmFibGVkLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBzdWJG
cmFtZUhvc3QsIHRvcEZyYW1lSG9zdCwgcHJvbXB0RW5hYmxlZCwgZnJhbWVJRCwgY29tcGxldGlv
bkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKFN0b3JhZ2VBY2Nlc3NTdGF0
dXMgc3RhdHVzKSBtdXRhYmxlIHsKLSAgICAgICAgc3dpdGNoIChzdGF0dXMpIHsKLSAgICAgICAg
Y2FzZSBTdG9yYWdlQWNjZXNzU3RhdHVzOjpDYW5ub3RSZXF1ZXN0QWNjZXNzOgotICAgICAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAg
ICBjYXNlIFN0b3JhZ2VBY2Nlc3NTdGF0dXM6OlJlcXVpcmVzVXNlclByb21wdDoKLSAgICAgICAg
ICAgIEFTU0VSVF9VTlVTRUQocHJvbXB0RW5hYmxlZCwgcHJvbXB0RW5hYmxlZCk7Ci0gICAgICAg
ICAgICBtX3VpQ2xpZW50LT5yZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0oKnRoaXMsIG1fcHJv
Y2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCksIFJlc291cmNlTG9hZFN0YXRpc3RpY3M6OnByaW1hcnlE
b21haW4oc3ViRnJhbWVIb3N0KSwgUmVzb3VyY2VMb2FkU3RhdGlzdGljczo6cHJpbWFyeURvbWFp
bih0b3BGcmFtZUhvc3QpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBz
dWJGcmFtZUhvc3QsIHRvcEZyYW1lSG9zdCwgZnJhbWVJRCwgY29tcGxldGlvbkhhbmRsZXIgPSBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKGJvb2wgdXNlckRpZEdyYW50QWNjZXNzKSBtdXRh
YmxlIHsKLSAgICAgICAgICAgICAgICBpZiAodXNlckRpZEdyYW50QWNjZXNzKQotICAgICAgICAg
ICAgICAgICAgICBtX3dlYnNpdGVEYXRhU3RvcmUtPmdyYW50U3RvcmFnZUFjY2VzcyhXVEZNb3Zl
KHN1YkZyYW1lSG9zdCksIFdURk1vdmUodG9wRnJhbWVIb3N0KSwgZnJhbWVJRCwgbV9wYWdlSUQs
IHVzZXJEaWRHcmFudEFjY2VzcywgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwotICAgICAg
ICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFs
c2UpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGNhc2Ug
U3RvcmFnZUFjY2Vzc1N0YXR1czo6SGFzQWNjZXNzOgotICAgICAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIodHJ1ZSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICB9KTsKKyAg
ICBXZWJQYWdlUHJveHkqIHBhZ2UgPSBXZWJQcm9jZXNzUHJveHk6OndlYlBhZ2UocGFnZUlEKTsK
KyAgICBpZiAoIXBhZ2UpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOworICAg
ICAgICByZXR1cm47CisgICAgfQorICAgIAorICAgIHBhZ2UtPm1fdWlDbGllbnQtPnJlcXVlc3RT
dG9yYWdlQWNjZXNzQ29uZmlybSgqcGFnZSwgcGFnZS0+bV9wcm9jZXNzLT53ZWJGcmFtZShmcmFt
ZUlEKSwgUmVzb3VyY2VMb2FkU3RhdGlzdGljczo6cHJpbWFyeURvbWFpbihzdWJGcmFtZUhvc3Qp
LCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOjpwcmltYXJ5RG9tYWluKHRvcEZyYW1lSG9zdCksIFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDE5YjEyZjQyZDM5YzU1NmQ2ZGRjNjQ3YjY5ZDQyNTdh
OGU3NWQzNjMuLjRiMTcxZTYzMzljM2Q1NzZlM2VmMTRhMjY1NzcyOTY2N2Q0ZGIyYTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xMzgwLDggKzEzODAsNyBAQCBw
dWJsaWM6CiAjZW5kaWYKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi0g
ICAgdm9pZCBoYXNTdG9yYWdlQWNjZXNzKFN0cmluZyYmIHN1YkZyYW1lSG9zdCwgU3RyaW5nJiYg
dG9wRnJhbWVIb3N0LCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCB3ZWJQcm9jZXNzQ29udGV4
dElkKTsKLSAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKFN0cmluZyYmIHN1YkZyYW1lSG9z
dCwgU3RyaW5nJiYgdG9wRnJhbWVIb3N0LCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCB3ZWJQ
cm9jZXNzQ29udGV4dElkLCBib29sIHByb21wdCk7CisgICAgc3RhdGljIHZvaWQgcmVxdWVzdFN0
b3JhZ2VBY2Nlc3NDb25maXJtKHVpbnQ2NF90IHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgY29u
c3QgU3RyaW5nJiBzdWJGcmFtZUhvc3QsIGNvbnN0IFN0cmluZyYgdG9wRnJhbWVIb3N0LCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKICNlbmRpZgogCiAgICAgc3RhdGljIFdlYlBh
Z2VQcm94eSogbm9uRXBoZW1lcmFsV2ViUGFnZVByb3h5KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggOTk2MTM2NjA1OGQ4Yzcy
NmQ0MDZlZjVlNzlhYzAzZmNiZWZiYjQyZi4uOTI5Mzg5NmJlZTk4YjQ5ZDFhMTJiNDI2Njg3YTAy
YTFmYjVlMTQzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5tZXNzYWdlcy5pbgpAQCAtMSw0ICsxLDQgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDEwLTIwMTgg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTAtMjAx
OSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTUzNCwxMSArNTM0LDYgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAg
ICBTdG9wVVJMU2NoZW1lVGFzayh1aW50NjRfdCBoYW5kbGVySWRlbnRpZmllciwgdWludDY0X3Qg
dGFza0lkZW50aWZpZXIpCiAgICAgTG9hZFN5bmNocm9ub3VzVVJMU2NoZW1lVGFzayhzdHJ1Y3Qg
V2ViS2l0OjpVUkxTY2hlbWVUYXNrUGFyYW1ldGVycyBwYXJhbWV0ZXJzKSAtPiAoV2ViQ29yZTo6
UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvciwg
SVBDOjpEYXRhUmVmZXJlbmNlIGRhdGEpIERlbGF5ZWQKIAotI2lmIEVOQUJMRShSRVNPVVJDRV9M
T0FEX1NUQVRJU1RJQ1MpCi0gICAgSGFzU3RvcmFnZUFjY2VzcyhTdHJpbmcgc3ViRnJhbWVIb3N0
LCBTdHJpbmcgdG9wRnJhbWVIb3N0LCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBjb250ZXh0
SUQpCi0gICAgUmVxdWVzdFN0b3JhZ2VBY2Nlc3MoU3RyaW5nIHN1YkZyYW1lSG9zdCwgU3RyaW5n
IHRvcEZyYW1lSG9zdCwgdWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgY29udGV4dElELCBib29s
IHByb21wdCkKLSNlbmRpZgotCiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKICAgICBS
ZWdpc3RlckF0dGFjaG1lbnRJZGVudGlmaWVyRnJvbURhdGEoU3RyaW5nIGlkZW50aWZpZXIsIFN0
cmluZyBjb250ZW50VHlwZSwgU3RyaW5nIHByZWZlcnJlZEZpbGVOYW1lLCBJUEM6OlNoYXJlZEJ1
ZmZlckRhdGFSZWZlcmVuY2UgZGF0YSkKICAgICBSZWdpc3RlckF0dGFjaG1lbnRJZGVudGlmaWVy
RnJvbUZpbGVQYXRoKFN0cmluZyBpZGVudGlmaWVyLCBTdHJpbmcgY29udGVudFR5cGUsIFN0cmlu
ZyBmaWxlUGF0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKaW5kZXggZDBiOTc1MzA4MGMzNjEzOGFmYjM0NTM1NTFjNWFlZTcxODA4MjdiOC4uNjgzZTlk
OTZiZGE4ZDI2YjIwMjAzZTY1MTc5MmI2ZWMxMDlhNjc5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTEyMjcsOCArMTIyNywxMCBAQCB2b2lk
IFdlYlBhZ2U6OmNsb3NlKCkKICAgICBpZiAobV9pc0Nsb3NlZCkKICAgICAgICAgcmV0dXJuOwog
CisjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKICAgICBXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCku
c2VuZChNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlJlbW92ZVN0b3Jh
Z2VBY2Nlc3NGb3JBbGxGcmFtZXNPblBhZ2Uoc2Vzc2lvbklEKCksIG1fcGFnZUlEKSwgMCk7Ci0g
ICAgCisjZW5kaWYKKwogICAgIG1faXNDbG9zZWQgPSB0cnVlOwogCiAgICAgLy8gSWYgdGhlcmUg
aXMgc3RpbGwgbm8gVVJMLCB0aGVuIHdlIG5ldmVyIGxvYWRlZCBhbnl0aGluZyBpbiB0aGlzIHBh
Z2UsIHNvIG5vdGhpbmcgdG8gcmVwb3J0LgpAQCAtNjM2Nyw0MCArNjM2OSwxNSBAQCB2b2lkIFdl
YlBhZ2U6OmZyYW1lQmVjYW1lUmVtb3RlKHVpbnQ2NF90IGZyYW1lSUQsIEdsb2JhbEZyYW1lSWRl
bnRpZmllciYmIHJlbW90ZQogfQogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElD
UykKLXN0YXRpYyB1aW50NjRfdCBuZXh0UmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb250ZXh0SWQoKQor
dm9pZCBXZWJQYWdlOjpoYXNTdG9yYWdlQWNjZXNzKFN0cmluZyYmIHN1YkZyYW1lSG9zdCwgU3Ry
aW5nJiYgdG9wRnJhbWVIb3N0LCB1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIHN0YXRpYyB1aW50NjRfdCBu
ZXh0Q29udGV4dElkID0gMDsKLSAgICByZXR1cm4gKytuZXh0Q29udGV4dElkOwotfQotCi12b2lk
IFdlYlBhZ2U6Omhhc1N0b3JhZ2VBY2Nlc3MoU3RyaW5nJiYgc3ViRnJhbWVIb3N0LCBTdHJpbmcm
JiB0b3BGcmFtZUhvc3QsIHVpbnQ2NF90IGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Ym9vbCk+JiYgY2FsbGJhY2spCi17Ci0gICAgYXV0byBjb250ZXh0SWQgPSBuZXh0UmVxdWVzdFN0
b3JhZ2VBY2Nlc3NDb250ZXh0SWQoKTsKLSAgICBhdXRvIGFkZFJlc3VsdCA9IG1fc3RvcmFnZUFj
Y2Vzc1Jlc3BvbnNlQ2FsbGJhY2tNYXAuYWRkKGNvbnRleHRJZCwgV1RGTW92ZShjYWxsYmFjaykp
OwotICAgIEFTU0VSVChhZGRSZXN1bHQuaXNOZXdFbnRyeSk7Ci0gICAgaWYgKGFkZFJlc3VsdC5p
dGVyYXRvci0+dmFsdWUpCi0gICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6SGFz
U3RvcmFnZUFjY2VzcyhXVEZNb3ZlKHN1YkZyYW1lSG9zdCksIFdURk1vdmUodG9wRnJhbWVIb3N0
KSwgZnJhbWVJRCwgY29udGV4dElkKSk7Ci0gICAgZWxzZQotICAgICAgICBjYWxsYmFjayhmYWxz
ZSk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6Okhhc1N0b3JhZ2VBY2Nlc3Moc2Vzc2lvbklEKCksIFdU
Rk1vdmUoc3ViRnJhbWVIb3N0KSwgV1RGTW92ZSh0b3BGcmFtZUhvc3QpLCBmcmFtZUlELCBtX3Bh
Z2VJRCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KICAgICAKLXZvaWQgV2ViUGFn
ZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoU3RyaW5nJiYgc3ViRnJhbWVIb3N0LCBTdHJpbmcmJiB0
b3BGcmFtZUhvc3QsIHVpbnQ2NF90IGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9v
bCk+JiYgY2FsbGJhY2spCit2b2lkIFdlYlBhZ2U6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKFN0cmlu
ZyYmIHN1YkZyYW1lSG9zdCwgU3RyaW5nJiYgdG9wRnJhbWVIb3N0LCB1aW50NjRfdCBmcmFtZUlE
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewot
ICAgIGF1dG8gY29udGV4dElkID0gbmV4dFJlcXVlc3RTdG9yYWdlQWNjZXNzQ29udGV4dElkKCk7
Ci0gICAgYXV0byBhZGRSZXN1bHQgPSBtX3N0b3JhZ2VBY2Nlc3NSZXNwb25zZUNhbGxiYWNrTWFw
LmFkZChjb250ZXh0SWQsIFdURk1vdmUoY2FsbGJhY2spKTsKLSAgICBBU1NFUlQoYWRkUmVzdWx0
LmlzTmV3RW50cnkpOwotICAgIGlmIChhZGRSZXN1bHQuaXRlcmF0b3ItPnZhbHVlKSB7Ci0gICAg
ICAgIGJvb2wgcHJvbXB0RW5hYmxlZCA9IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZl
YXR1cmVzKCkuc3RvcmFnZUFjY2Vzc1Byb21wdHNFbmFibGVkKCk7Ci0gICAgICAgIHNlbmQoTWVz
c2FnZXM6OldlYlBhZ2VQcm94eTo6UmVxdWVzdFN0b3JhZ2VBY2Nlc3MoV1RGTW92ZShzdWJGcmFt
ZUhvc3QpLCBXVEZNb3ZlKHRvcEZyYW1lSG9zdCksIGZyYW1lSUQsIGNvbnRleHRJZCwgcHJvbXB0
RW5hYmxlZCkpOwotICAgIH0gZWxzZQotICAgICAgICBjYWxsYmFjayhmYWxzZSk7Ci19Ci0KLXZv
aWQgV2ViUGFnZTo6c3RvcmFnZUFjY2Vzc1Jlc3BvbnNlKGJvb2wgd2FzR3JhbnRlZCwgdWludDY0
X3QgY29udGV4dElkKQotewotICAgIGF1dG8gY2FsbGJhY2sgPSBtX3N0b3JhZ2VBY2Nlc3NSZXNw
b25zZUNhbGxiYWNrTWFwLnRha2UoY29udGV4dElkKTsKLSAgICBBU1NFUlQoY2FsbGJhY2spOwot
ICAgIGNhbGxiYWNrKHdhc0dyYW50ZWQpOworICAgIGJvb2wgcHJvbXB0RW5hYmxlZCA9IFJ1bnRp
bWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc3RvcmFnZUFjY2Vzc1Byb21wdHNF
bmFibGVkKCk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlJlcXVlc3RTdG9yYWdlQWNjZXNzKHNlc3Np
b25JRCgpLCBXVEZNb3ZlKHN1YkZyYW1lSG9zdCksIFdURk1vdmUodG9wRnJhbWVIb3N0KSwgZnJh
bWVJRCwgbV9wYWdlSUQsIHByb21wdEVuYWJsZWQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSk7CiB9CiAjZW5kaWYKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaAppbmRleCBlNzY0Zjk5MmUyNTE3OWYzZWIxOTA5ODFjNjk1MDQ0MzE5MGYyMDMxLi4x
OTBkNjJlYWYzNWNmZWRjODE3NjE5NTJkOTYzZDA3MWZkYzM1YmVhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxMC0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxMC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTExMSw3ICsxMTExLDYgQEAgcHVi
bGljOgogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAgICAgdm9pZCBoYXNT
dG9yYWdlQWNjZXNzKFN0cmluZyYmIHN1YkZyYW1lSG9zdCwgU3RyaW5nJiYgdG9wRnJhbWVIb3N0
LCB1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNhbGxi
YWNrKTsKICAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKFN0cmluZyYmIHN1YkZyYW1lSG9z
dCwgU3RyaW5nJiYgdG9wRnJhbWVIb3N0LCB1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNrKTsKLSAgICB2b2lkIHN0b3JhZ2VBY2Nlc3NSZXNw
b25zZShib29sIHdhc0dyYW50ZWQsIHVpbnQ2NF90IGNvbnRleHRJZCk7CiAjZW5kaWYKIAogICAg
IHZvaWQgc2hvd1NoYXJlU2hlZXQoV2ViQ29yZTo6U2hhcmVEYXRhV2l0aFBhcnNlZFVSTCYsIFdU
Rjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjYWxsYmFjayk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRl
eCA0ZGJlMGEzNGE5OTM4Y2M1YzMyZWM1N2IyNDMxM2VhZGQyMmJiNGZiLi5lNjlhYzZmZGRiY2Rm
ZWU2NDA3MWNlOWExMTk2MWJkNmQ4MDI5ODgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTEsNCArMSw0IEBACi0j
IENvcHlyaWdodCAoQykgMjAxMC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyMgQ29weXJpZ2h0IChDKSAyMDEwLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01MzEsMTAgKzUzMSw2IEBAIG1lc3Nh
Z2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogCiAgICAgU2V0SXNTdXNwZW5kZWQoYm9v
bCBzdXNwZW5kZWQpCiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQotICAg
IFN0b3JhZ2VBY2Nlc3NSZXNwb25zZShib29sIHdhc0dyYW50ZWQsIHVpbnQ2NF90IGNvbnRleHRJ
ZCkKLSNlbmRpZgotCiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKICAgICBJbnNlcnRB
dHRhY2htZW50KFN0cmluZyBpZGVudGlmaWVyLCBPcHRpb25hbDx1aW50NjRfdD4gZmlsZVNpemUs
IFN0cmluZyBmaWxlTmFtZSwgU3RyaW5nIGNvbnRlbnRUeXBlLCBXZWJLaXQ6OkNhbGxiYWNrSUQg
Y2FsbGJhY2tJRCkKICAgICBVcGRhdGVBdHRhY2htZW50QXR0cmlidXRlcyhTdHJpbmcgaWRlbnRp
ZmllciwgT3B0aW9uYWw8dWludDY0X3Q+IGZpbGVTaXplLCBTdHJpbmcgY29udGVudFR5cGUsIFN0
cmluZyBmaWxlTmFtZSwgSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlIGVuY2xvc2luZ0lt
YWdlRGF0YSwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCg==
</data>
<flag name="review"
          id="377183"
          type_id="1"
          status="+"
          setter="achristensen"
    />
          </attachment>
      

    </bug>

</bugzilla>