<?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>181961</bug_id>
          
          <creation_ts>2018-01-22 16:31:32 -0800</creation_ts>
          <short_desc>Use CompletionHandlers for ResourceHandleClient::didReceiveResponseAsync</short_desc>
          <delta_ts>2018-01-23 15:34:37 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>berto</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>galpeter</cc>
    
    <cc>gustavo</cc>
    
    <cc>japhet</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1391861</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-01-22 16:31:32 -0800</bug_when>
    <thetext>Use CompletionHandlers for ResourceHandleClient::didReceiveResponseAsync</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1391864</commentid>
    <comment_count>1</comment_count>
      <attachid>331976</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-01-22 16:33:11 -0800</bug_when>
    <thetext>Created attachment 331976
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1391887</commentid>
    <comment_count>2</comment_count>
      <attachid>331981</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-01-22 17:05:48 -0800</bug_when>
    <thetext>Created attachment 331981
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1391925</commentid>
    <comment_count>3</comment_count>
      <attachid>331981</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-01-22 17:58:22 -0800</bug_when>
    <thetext>Comment on attachment 331981
Patch

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

This looks easier to read! r=me if you can get it past the Windows EWS.

&gt; Source/WebCore/platform/network/curl/ResourceHandleCurl.cpp:217
&gt; +    didReceiveResponse(ResourceResponse(d-&gt;m_response), [this, protectedThis = makeRef(*this)] {

Failed to run &quot;[&apos;perl&apos;, &apos;Tools\\Scripts\\build-webkit&apos;, &apos;--release&apos;, &apos;--wincairo&apos;, &apos;--64-bit&apos;]&quot; exit_code: 1
oid (void)&gt; &amp;&amp;)&apos;: cannot convert argument 2 from &apos;WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential::&lt;lambda_af02a6328e703639d69ef207f72ddd9e&gt;&apos; to &apos;WTF::CompletionHandler&lt;void (void)&gt; &amp;&amp;&apos;
..\..\Source\WebCore\platform\network\curl\ResourceHandleCurl.cpp(222): note: Reason: cannot convert from &apos;WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential::&lt;lambda_af02a6328e703639d69ef207f72ddd9e&gt;&apos; to &apos;WTF::CompletionHandler&lt;void (void)&gt;&apos;
..\..\Source\WebCore\platform\network\curl\ResourceHandleCurl.cpp(222): note: use of undefined type &apos;WTF::CompletionHandler&lt;void (void)&gt;&apos;
C:\WebKit-EWS\WebKit\Source\WebCore\platform\network\ResourceHandle.h(110): note: see declaration of &apos;WTF::CompletionHandler&lt;void (void)&gt;&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1391929</commentid>
    <comment_count>4</comment_count>
      <attachid>331991</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-01-22 18:00:57 -0800</bug_when>
    <thetext>Created attachment 331991
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1392191</commentid>
    <comment_count>5</comment_count>
      <attachid>332058</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-01-23 12:19:25 -0800</bug_when>
    <thetext>Created attachment 332058
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1392230</commentid>
    <comment_count>6</comment_count>
      <attachid>332068</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-01-23 13:37:24 -0800</bug_when>
    <thetext>Created attachment 332068
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1392263</commentid>
    <comment_count>7</comment_count>
      <attachid>332078</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-01-23 14:33:55 -0800</bug_when>
    <thetext>Created attachment 332078
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1392300</commentid>
    <comment_count>8</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-01-23 15:33:25 -0800</bug_when>
    <thetext>https://trac.webkit.org/changeset/227455/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1392306</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-01-23 15:34:37 -0800</bug_when>
    <thetext>&lt;rdar://problem/36797428&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>331976</attachid>
            <date>2018-01-22 16:33:11 -0800</date>
            <delta_ts>2018-01-22 17:05:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-181961-20180122163310.patch</filename>
            <type>text/plain</type>
            <size>35440</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyNzM1NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ5IEBACisyMDE4LTAxLTIyICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVXNlIENvbXBs
ZXRpb25IYW5kbGVycyBmb3IgUmVzb3VyY2VIYW5kbGVDbGllbnQ6OmRpZFJlY2VpdmVSZXNwb25z
ZUFzeW5jCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
ODE5NjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBO
byBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25z
ZUFzeW5jKToKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKiBs
b2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6ZGlkUmVjZWl2ZVJlc3BvbnNlQXN5bmMpOgorICAg
ICAgICAqIGxvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpCbG9iUmVzb3VyY2VIYW5kbGU6Om5vdGlmeVJlc3BvbnNlT25TdWNjZXNzKToKKyAgICAg
ICAgKFdlYkNvcmU6OkJsb2JSZXNvdXJjZUhhbmRsZTo6bm90aWZ5UmVzcG9uc2VPbkVycm9yKToK
KyAgICAgICAgKFdlYkNvcmU6OkJsb2JSZXNvdXJjZUhhbmRsZTo6Y29udGludWVEaWRSZWNlaXZl
UmVzcG9uc2UpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvQmxvYlJlc291
cmNlSGFuZGxlLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9QaW5nSGFuZGxlLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6ZGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0
d29yay9SZXNvdXJjZUhhbmRsZUNsaWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsv
U3luY2hyb25vdXNMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3luY2hyb25v
dXNMb2FkZXJDbGllbnQ6OmRpZFJlY2VpdmVSZXNwb25zZUFzeW5jKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9uZXR3b3JrL1N5bmNocm9ub3VzTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogcGxhdGZv
cm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0aE9w
ZXJhdGlvblF1ZXVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlQ0ZVUkxD
b25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWU6OmRpZFJlY2VpdmVSZXNwb25zZSk6
CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRl
V2l0aE9wZXJhdGlvblF1ZXVlOjpjb250aW51ZURpZFJlY2VpdmVSZXNwb25zZSk6IERlbGV0ZWQu
CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybERlbGVn
YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlQ3VybERlbGVnYXRlOjpj
dXJsRGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxl
Q3VybERlbGVnYXRlOjpoYW5kbGVEYXRhVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNl
SGFuZGxlQ3VybERlbGVnYXRlOjpjb250aW51ZURpZFJlY2VpdmVSZXNwb25zZSk6IERlbGV0ZWQu
CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW06Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6Y29udGludWVEaWRSZWNlaXZlUmVzcG9u
c2UpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNv
dXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5oOgorICAgICAgICAqIHBsYXRmb3Jt
L25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0
ZS5tbToKKyAgICAgICAgKC1bV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURl
bGVnYXRlIGNvbm5lY3Rpb246ZGlkUmVjZWl2ZVJlc3BvbnNlOl0pOgorICAgICAgICAoLVtXZWJD
b3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUgY29udGludWVEaWRSZWNl
aXZlUmVzcG9uc2VdKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
UmVzb3VyY2VIYW5kbGVTb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om5leHRNdWx0aXBhcnRS
ZXNwb25zZVBhcnRDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpzZW5kUmVxdWVzdENhbGxi
YWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjb250aW51ZURpZFJlY2Vp
dmVSZXNwb25zZSk6IERlbGV0ZWQuCisKIDIwMTgtMDEtMjIgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KIAogICAgICAgICBSRUxFQVNFX0FTU0VSVChyZWdpc3RyYXRpb24pIGhpdCBp
biBTV1NlcnZlcjo6aW5zdGFsbENvbnRleHREYXRhKGNvbnN0IFNlcnZpY2VXb3JrZXJDb250ZXh0
RGF0YSYpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAJKHJl
dmlzaW9uIDIyNzM1NSkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTY1NywxNCArNjU3LDE0IEBAIHZvaWQgUmVzb3VyY2VMb2Fk
ZXI6OmRpZFNlbmREYXRhKFJlc291cmMKICAgICBkaWRTZW5kRGF0YShieXRlc1NlbnQsIHRvdGFs
Qnl0ZXNUb0JlU2VudCk7CiB9CiAKLXZvaWQgUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNw
b25zZUFzeW5jKFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIFJlc291cmNlUmVzcG9uc2UmJiByZXNw
b25zZSkKK3ZvaWQgUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZUFzeW5jKFJlc291
cmNlSGFuZGxlKiwgUmVzb3VyY2VSZXNwb25zZSYmIHJlc3BvbnNlLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKGRvY3VtZW50TG9hZGVy
KCktPmFwcGxpY2F0aW9uQ2FjaGVIb3N0KCkubWF5YmVMb2FkRmFsbGJhY2tGb3JSZXNwb25zZSh0
aGlzLCByZXNwb25zZSkpIHsKLSAgICAgICAgaGFuZGxlLT5jb250aW51ZURpZFJlY2VpdmVSZXNw
b25zZSgpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogICAgIGRpZFJlY2VpdmVSZXNwb25zZShyZXNwb25zZSk7Ci0gICAgaGFuZGxlLT5jb250
aW51ZURpZFJlY2VpdmVSZXNwb25zZSgpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9CiAK
IHZvaWQgUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29u
c3QgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoLCBpbnQgZW5jb2RlZERhdGFMZW5ndGgpCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaAkocmV2aXNpb24gMjI3MzU1
KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTE4Miw3ICsxODIsNyBAQCBwcml2YXRlOgogCiAgICAgLy8gUmVzb3VyY2VIYW5kbGVD
bGllbnQKICAgICB2b2lkIGRpZFNlbmREYXRhKFJlc291cmNlSGFuZGxlKiwgdW5zaWduZWQgbG9u
ZyBsb25nIGJ5dGVzU2VudCwgdW5zaWduZWQgbG9uZyBsb25nIHRvdGFsQnl0ZXNUb0JlU2VudCkg
b3ZlcnJpZGU7Ci0gICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2VBc3luYyhSZXNvdXJjZUhhbmRs
ZSosIFJlc291cmNlUmVzcG9uc2UmJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlUmVz
cG9uc2VBc3luYyhSZXNvdXJjZUhhbmRsZSosIFJlc291cmNlUmVzcG9uc2UmJiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmKSBvdmVycmlkZTsKICAgICB2b2lkIHdpbGxTZW5kUmVxdWVzdEFz
eW5jKFJlc291cmNlSGFuZGxlKiwgUmVzb3VyY2VSZXF1ZXN0JiYsIFJlc291cmNlUmVzcG9uc2Um
JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZXNvdXJjZVJlcXVlc3QmJik+JiYpIG92ZXJyaWRl
OwogICAgIHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwg
dW5zaWduZWQsIGludCBlbmNvZGVkRGF0YUxlbmd0aCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRS
ZWNlaXZlQnVmZmVyKFJlc291cmNlSGFuZGxlKiwgUmVmPFNoYXJlZEJ1ZmZlcj4mJiwgaW50IGVu
Y29kZWREYXRhTGVuZ3RoKSBvdmVycmlkZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9h
cHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwCShyZXZpc2lv
biAyMjczNTUpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25D
YWNoZUdyb3VwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDg5LDE0ICs0ODksMTQgQEAgUmVmUHRy
PFJlc291cmNlSGFuZGxlPiBBcHBsaWNhdGlvbkNhY2hlRwogICAgIHJldHVybiBoYW5kbGU7CiB9
CiAKLXZvaWQgQXBwbGljYXRpb25DYWNoZUdyb3VwOjpkaWRSZWNlaXZlUmVzcG9uc2VBc3luYyhS
ZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBSZXNvdXJjZVJlc3BvbnNlJiYgcmVzcG9uc2UpCit2b2lk
IEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6ZGlkUmVjZWl2ZVJlc3BvbnNlQXN5bmMoUmVzb3VyY2VI
YW5kbGUqIGhhbmRsZSwgUmVzb3VyY2VSZXNwb25zZSYmIHJlc3BvbnNlLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKG1fZnJhbWUp
OwogICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZVJlc291cmNlUmVzcG9u
c2UoKm1fZnJhbWUsIG1fY3VycmVudFJlc291cmNlSWRlbnRpZmllciwgbV9mcmFtZS0+bG9hZGVy
KCkuZG9jdW1lbnRMb2FkZXIoKSwgcmVzcG9uc2UsIG51bGxwdHIpOwogCiAgICAgaWYgKGhhbmRs
ZSA9PSBtX21hbmlmZXN0SGFuZGxlKSB7CiAgICAgICAgIGRpZFJlY2VpdmVNYW5pZmVzdFJlc3Bv
bnNlKHJlc3BvbnNlKTsKLSAgICAgICAgaGFuZGxlLT5jb250aW51ZURpZFJlY2VpdmVSZXNwb25z
ZSgpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCkBAIC01MjMsNyArNTIzLDcgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmRpZFJl
Y2VpdmVSZQogICAgICAgICAgICAgbV9jdXJyZW50SGFuZGxlID0gbnVsbHB0cjsKICAgICAgICAg
ICAgIC8vIExvYWQgdGhlIG5leHQgcmVzb3VyY2UsIGlmIGFueS4KICAgICAgICAgICAgIHN0YXJ0
TG9hZGluZ0VudHJ5KCk7Ci0gICAgICAgICAgICBoYW5kbGUtPmNvbnRpbnVlRGlkUmVjZWl2ZVJl
c3BvbnNlKCk7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIC8vIFRoZSBzZXJ2ZXIgY291bGQgcmV0dXJuIDMw
NCBmb3IgYW4gdW5jb25kaXRpb25hbCByZXF1ZXN0IC0gaW4gdGhpcyBjYXNlLCB3ZSBoYW5kbGUg
dGhlIHJlc3BvbnNlIGFzIGEgbm9ybWFsIGVycm9yLgpAQCAtNTU1LDEyICs1NTUsMTIgQEAgdm9p
ZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmRpZFJlY2VpdmVSZQogICAgICAgICAgICAgLy8gTG9h
ZCB0aGUgbmV4dCByZXNvdXJjZSwgaWYgYW55LgogICAgICAgICAgICAgc3RhcnRMb2FkaW5nRW50
cnkoKTsKICAgICAgICAgfQotICAgICAgICBoYW5kbGUtPmNvbnRpbnVlRGlkUmVjZWl2ZVJlc3Bv
bnNlKCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAgICAgCiAgICAgbV9jdXJyZW50UmVzb3VyY2UgPSBBcHBsaWNhdGlvbkNhY2hlUmVzb3Vy
Y2U6OmNyZWF0ZSh1cmwsIHJlc3BvbnNlLCB0eXBlKTsKLSAgICBoYW5kbGUtPmNvbnRpbnVlRGlk
UmVjZWl2ZVJlc3BvbnNlKCk7CisgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKIH0KIAogdm9pZCBB
cHBsaWNhdGlvbkNhY2hlR3JvdXA6OndpbGxTZW5kUmVxdWVzdEFzeW5jKFJlc291cmNlSGFuZGxl
KiwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgUmVzb3VyY2VSZXNwb25zZSYmLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFJlc291cmNlUmVxdWVzdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3Jv
dXAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGlj
YXRpb25DYWNoZUdyb3VwLmgJKHJldmlzaW9uIDIyNzM1NSkKKysrIFNvdXJjZS9XZWJDb3JlL2xv
YWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuaAkod29ya2luZyBjb3B5KQpAQCAt
MTA5LDcgKzEwOSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3Rv
cmFnZShSZXNvdXJjZUhhbmRsZSopIG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIC8v
IFJlc291cmNlSGFuZGxlQ2xpZW50Ci0gICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2VBc3luYyhS
ZXNvdXJjZUhhbmRsZSosIFJlc291cmNlUmVzcG9uc2UmJikgZmluYWw7CisgICAgdm9pZCBkaWRS
ZWNlaXZlUmVzcG9uc2VBc3luYyhSZXNvdXJjZUhhbmRsZSosIFJlc291cmNlUmVzcG9uc2UmJiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBmaW5hbDsKICAgICB2b2lkIHdpbGxTZW5kUmVx
dWVzdEFzeW5jKFJlc291cmNlSGFuZGxlKiwgUmVzb3VyY2VSZXF1ZXN0JiYsIFJlc291cmNlUmVz
cG9uc2UmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZXNvdXJjZVJlcXVlc3QmJik+JiYpIGZp
bmFsOwogI2lmIFVTRShQUk9URUNUSU9OX1NQQUNFX0FVVEhfQ0FMTEJBQ0spCiAgICAgdm9pZCBj
YW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlQXN5bmMoUmVzb3VyY2VIYW5kbGUq
LCBjb25zdCBQcm90ZWN0aW9uU3BhY2UmKSBmaW5hbDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvQmxvYlJlc291cmNlSGFuZGxlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5jcHAJKHJldmlz
aW9uIDIyNzM1NSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlc291
cmNlSGFuZGxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzUsNyArNzUsNyBAQCBjbGFzcyBCbG9i
UmVzb3VyY2VTeW5jaHJvbm91c0xvYWRlciA6IHB1CiBwdWJsaWM6CiAgICAgQmxvYlJlc291cmNl
U3luY2hyb25vdXNMb2FkZXIoUmVzb3VyY2VFcnJvciYsIFJlc291cmNlUmVzcG9uc2UmLCBWZWN0
b3I8Y2hhcj4mKTsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlQXN5bmMoUmVzb3VyY2VI
YW5kbGUqLCBSZXNvdXJjZVJlc3BvbnNlJiYpIGZpbmFsOworICAgIHZvaWQgZGlkUmVjZWl2ZVJl
c3BvbnNlQXN5bmMoUmVzb3VyY2VIYW5kbGUqLCBSZXNvdXJjZVJlc3BvbnNlJiYsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJikgZmluYWw7CiAgICAgdm9pZCBkaWRGYWlsKFJlc291cmNlSGFu
ZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpIGZpbmFsOwogICAgIHZvaWQgd2lsbFNlbmRSZXF1
ZXN0QXN5bmMoUmVzb3VyY2VIYW5kbGUqLCBSZXNvdXJjZVJlcXVlc3QmJiwgUmVzb3VyY2VSZXNw
b25zZSYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlc291cmNlUmVxdWVzdCYmKT4mJikgZmlu
YWw7CiAjaWYgVVNFKFBST1RFQ1RJT05fU1BBQ0VfQVVUSF9DQUxMQkFDSykKQEAgLTEwOSwxMiAr
MTA5LDEyIEBAIHZvaWQgQmxvYlJlc291cmNlU3luY2hyb25vdXNMb2FkZXI6OmNhbkEKIH0KICNl
bmRpZgogCi12b2lkIEJsb2JSZXNvdXJjZVN5bmNocm9ub3VzTG9hZGVyOjpkaWRSZWNlaXZlUmVz
cG9uc2VBc3luYyhSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBSZXNvdXJjZVJlc3BvbnNlJiYgcmVz
cG9uc2UpCit2b2lkIEJsb2JSZXNvdXJjZVN5bmNocm9ub3VzTG9hZGVyOjpkaWRSZWNlaXZlUmVz
cG9uc2VBc3luYyhSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBSZXNvdXJjZVJlc3BvbnNlJiYgcmVz
cG9uc2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsK
ICAgICAvLyBXZSBjYW5ub3QgaGFuZGxlIHRoZSBzaXplIHRoYXQgaXMgbW9yZSB0aGFuIG1heGlt
dW0gaW50ZWdlci4KICAgICBpZiAocmVzcG9uc2UuZXhwZWN0ZWRDb250ZW50TGVuZ3RoKCkgPiBJ
TlRfTUFYKSB7CiAgICAgICAgIG1fZXJyb3IgPSBSZXNvdXJjZUVycm9yKHdlYktpdEJsb2JSZXNv
dXJjZURvbWFpbiwgc3RhdGljX2Nhc3Q8aW50PihCbG9iUmVzb3VyY2VIYW5kbGU6OkVycm9yOjpO
b3RSZWFkYWJsZUVycm9yKSwgcmVzcG9uc2UudXJsKCksICJGaWxlIGlzIHRvbyBsYXJnZSIpOwot
ICAgICAgICBoYW5kbGUtPmNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlKCk7CisgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTEyMyw3ICsx
MjMsNyBAQCB2b2lkIEJsb2JSZXNvdXJjZVN5bmNocm9ub3VzTG9hZGVyOjpkaWRSCiAgICAgLy8g
UmVhZCBhbGwgdGhlIGRhdGEuCiAgICAgbV9kYXRhLnJlc2l6ZShzdGF0aWNfY2FzdDxzaXplX3Q+
KHJlc3BvbnNlLmV4cGVjdGVkQ29udGVudExlbmd0aCgpKSk7CiAgICAgc3RhdGljX2Nhc3Q8Qmxv
YlJlc291cmNlSGFuZGxlKj4oaGFuZGxlKS0+cmVhZFN5bmMobV9kYXRhLmRhdGEoKSwgc3RhdGlj
X2Nhc3Q8aW50PihtX2RhdGEuc2l6ZSgpKSk7Ci0gICAgaGFuZGxlLT5jb250aW51ZURpZFJlY2Vp
dmVSZXNwb25zZSgpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9CiAKIHZvaWQgQmxvYlJl
c291cmNlU3luY2hyb25vdXNMb2FkZXI6OmRpZEZhaWwoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBS
ZXNvdXJjZUVycm9yJiBlcnJvcikKQEAgLTE3NiwxMiArMTc2LDYgQEAgdm9pZCBCbG9iUmVzb3Vy
Y2VIYW5kbGU6OmNhbmNlbCgpCiAgICAgUmVzb3VyY2VIYW5kbGU6OmNhbmNlbCgpOwogfQogCi12
b2lkIEJsb2JSZXNvdXJjZUhhbmRsZTo6Y29udGludWVEaWRSZWNlaXZlUmVzcG9uc2UoKQotewot
ICAgIG1fYnVmZmVyLnJlc2l6ZShidWZmZXJTaXplKTsKLSAgICByZWFkQXN5bmMoKTsKLX0KLQog
dm9pZCBCbG9iUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KCkKIHsKICAgICBpZiAoIW1fYXN5bmMpIHsK
QEAgLTU4NCw3ICs1NzgsMTAgQEAgdm9pZCBCbG9iUmVzb3VyY2VIYW5kbGU6Om5vdGlmeVJlc3Bv
bnNlTwogICAgIC8vIGFzIGlmIHRoZSByZXNwb25zZSBoYWQgYSBDb250ZW50LURpc3Bvc2l0aW9u
IGhlYWRlciB3aXRoIHRoZSBmaWxlbmFtZSBwYXJhbWV0ZXIgc2V0IHRvIHRoZSBGaWxlJ3MgbmFt
ZSBhdHRyaWJ1dGUuCiAgICAgLy8gTm90YWJseSwgdGhpcyB3aWxsIGFmZmVjdCBhIG5hbWUgc3Vn
Z2VzdGVkIGluICJGaWxlIFNhdmUgQXMiLgogCi0gICAgY2xpZW50KCktPmRpZFJlY2VpdmVSZXNw
b25zZUFzeW5jKHRoaXMsIFdURk1vdmUocmVzcG9uc2UpKTsKKyAgICBjbGllbnQoKS0+ZGlkUmVj
ZWl2ZVJlc3BvbnNlQXN5bmModGhpcywgV1RGTW92ZShyZXNwb25zZSksIFt0aGlzLCBwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldIHsKKyAgICAgICAgbV9idWZmZXIucmVzaXplKGJ1ZmZl
clNpemUpOworICAgICAgICByZWFkQXN5bmMoKTsKKyAgICB9KTsKIH0KIAogdm9pZCBCbG9iUmVz
b3VyY2VIYW5kbGU6Om5vdGlmeVJlc3BvbnNlT25FcnJvcigpCkBAIC02MDcsNyArNjA0LDEwIEBA
IHZvaWQgQmxvYlJlc291cmNlSGFuZGxlOjpub3RpZnlSZXNwb25zZU8KICAgICAgICAgYnJlYWs7
CiAgICAgfQogCi0gICAgY2xpZW50KCktPmRpZFJlY2VpdmVSZXNwb25zZUFzeW5jKHRoaXMsIFdU
Rk1vdmUocmVzcG9uc2UpKTsKKyAgICBjbGllbnQoKS0+ZGlkUmVjZWl2ZVJlc3BvbnNlQXN5bmMo
dGhpcywgV1RGTW92ZShyZXNwb25zZSksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigq
dGhpcyldIHsKKyAgICAgICAgbV9idWZmZXIucmVzaXplKGJ1ZmZlclNpemUpOworICAgICAgICBy
ZWFkQXN5bmMoKTsKKyAgICB9KTsKIH0KIAogdm9pZCBCbG9iUmVzb3VyY2VIYW5kbGU6Om5vdGlm
eVJlY2VpdmVEYXRhKGNvbnN0IGNoYXIqIGRhdGEsIGludCBieXRlc1JlYWQpCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlc291cmNlSGFuZGxl
LmgJKHJldmlzaW9uIDIyNzM1NSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
QmxvYlJlc291cmNlSGFuZGxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTc1LDcgKzc1LDYgQEAgcHJp
dmF0ZToKIAogICAgIC8vIFJlc291cmNlSGFuZGxlIG1ldGhvZHMuCiAgICAgdm9pZCBjYW5jZWwo
KSBvdmVycmlkZTsKLSAgICB2b2lkIGNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlKCkgb3ZlcnJp
ZGU7CiAKICAgICB2b2lkIGRvU3RhcnQoKTsKICAgICB2b2lkIGdldFNpemVGb3JOZXh0KCk7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1BpbmdIYW5kbGUuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1BpbmdIYW5kbGUuaAkocmV2
aXNpb24gMjI3MzU1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9QaW5nSGFu
ZGxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTY3LDkgKzY3LDkgQEAgcHJpdmF0ZToKICAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoeyB9KTsKICAgICAgICAgcGluZ0xvYWRDb21wbGV0ZShSZXNvdXJj
ZUVycm9yIHsgU3RyaW5nKCksIDAsIG1fY3VycmVudFJlcXVlc3QudXJsKCksIEFTQ0lJTGl0ZXJh
bCgiTm90IGFsbG93ZWQgdG8gZm9sbG93IHJlZGlyZWN0cyIpLCBSZXNvdXJjZUVycm9yOjpUeXBl
OjpBY2Nlc3NDb250cm9sIH0pOwogICAgIH0KLSAgICB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZUFz
eW5jKFJlc291cmNlSGFuZGxlKiwgUmVzb3VyY2VSZXNwb25zZSYmIHJlc3BvbnNlKSBmaW5hbAor
ICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlQXN5bmMoUmVzb3VyY2VIYW5kbGUqLCBSZXNvdXJj
ZVJlc3BvbnNlJiYgcmVzcG9uc2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikgZmluYWwKICAgICB7Ci0gICAgICAgIG1faGFuZGxlLT5jb250aW51ZURpZFJl
Y2VpdmVSZXNwb25zZSgpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogICAgICAgICBw
aW5nTG9hZENvbXBsZXRlKHsgfSwgcmVzcG9uc2UpOwogICAgIH0KICAgICB2b2lkIGRpZFJlY2Vp
dmVCdWZmZXIoUmVzb3VyY2VIYW5kbGUqLCBSZWY8U2hhcmVkQnVmZmVyPiYmLCBpbnQpIGZpbmFs
IHsgcGluZ0xvYWRDb21wbGV0ZSgpOyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcAkocmV2aXNpb24gMjI3MzU1KQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZUNsaWVu
dC5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSA8YWxnb3JpdGhtPgorI2luY2x1ZGUg
PHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAj
aW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWlj
U3RyaW5nSGFzaC5oPgpAQCAtMTUwLDcgKzE1MSw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmNs
ZWFyQ2xpZW50KCkKICAgICBkLT5tX2NsaWVudCA9IG51bGxwdHI7CiB9CiAKLXZvaWQgUmVzb3Vy
Y2VIYW5kbGU6OmRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZVJlc3BvbnNlJiYgcmVzcG9uc2Up
Cit2b2lkIFJlc291cmNlSGFuZGxlOjpkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VSZXNwb25z
ZSYmIHJlc3BvbnNlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCiB7CiAgICAgaWYgKHJlc3BvbnNlLmlzSFRUUDA5KCkpIHsKICAgICAgICAgYXV0byB1cmwg
PSByZXNwb25zZS51cmwoKTsKQEAgLTE1OSwxMSArMTYwLDExIEBAIHZvaWQgUmVzb3VyY2VIYW5k
bGU6OmRpZFJlY2VpdmVSZXNwb25zZSgKICAgICAgICAgICAgIGNhbmNlbCgpOwogICAgICAgICAg
ICAgU3RyaW5nIG1lc3NhZ2UgPSAiQ2FuY2VsbGVkIGxvYWQgZnJvbSAnIiArIHVybC5zdHJpbmdD
ZW50ZXJFbGxpcHNpemVkVG9MZW5ndGgoKSArICInIGJlY2F1c2UgaXQgaXMgdXNpbmcgSFRUUC8w
LjkuIjsKICAgICAgICAgICAgIGQtPm1fY2xpZW50LT5kaWRGYWlsKHRoaXMsIHsgU3RyaW5nKCks
IDAsIHVybCwgbWVzc2FnZSB9KTsKLSAgICAgICAgICAgIGNvbnRpbnVlRGlkUmVjZWl2ZVJlc3Bv
bnNlKCk7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9CiAgICAgfQotICAgIGNsaWVudCgpLT5kaWRSZWNlaXZlUmVzcG9uc2VB
c3luYyh0aGlzLCBXVEZNb3ZlKHJlc3BvbnNlKSk7CisgICAgY2xpZW50KCktPmRpZFJlY2VpdmVS
ZXNwb25zZUFzeW5jKHRoaXMsIFdURk1vdmUocmVzcG9uc2UpLCBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSk7CiB9CiAKICNpZiAhVVNFKFNPVVApICYmICFVU0UoQ1VSTCkKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgJKHJldmlz
aW9uIDIyNzM1NSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VI
YW5kbGUuaAkod29ya2luZyBjb3B5KQpAQCAtMTA3LDcgKzEwNyw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIHdpbGxTZW5kUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmJiwgUmVzb3VyY2VSZXNwb25zZSYm
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlc291cmNlUmVxdWVzdCYmKT4mJik7CiAjZW5kaWYK
IAotICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlUmVzcG9uc2UmJik7CisgICAg
dm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VSZXNwb25zZSYmLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYpOwogCiAgICAgYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSgp
OwogICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKGNvbnN0IEF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlJik7CkBAIC0xOTMsOSArMTkzLDYgQEAgcHVibGljOgogICAgIFdF
QkNPUkVfRVhQT1JUIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQoKSBjb25zdDsKICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIGNsZWFyQ2xpZW50KCk7CiAKLSAgICAvLyBDYWxsZWQgaW4gcmVz
cG9uc2UgdG8gUmVzb3VyY2VIYW5kbGVDbGllbnQ6OmRpZFJlY2VpdmVSZXNwb25zZUFzeW5jKCku
Ci0gICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIGNvbnRpbnVlRGlkUmVjZWl2ZVJlc3Bv
bnNlKCk7Ci0KICNpZiBVU0UoUFJPVEVDVElPTl9TUEFDRV9BVVRIX0NBTExCQUNLKQogICAgIC8v
IENhbGxlZCBpbiByZXNwb25zZSB0byBSZXNvdXJjZUhhbmRsZUNsaWVudDo6Y2FuQXV0aGVudGlj
YXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZUFzeW5jKCkuCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBjb250aW51ZUNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2UoYm9vbCk7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlQ2xpZW50
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJj
ZUhhbmRsZUNsaWVudC5oCShyZXZpc2lvbiAyMjczNTUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTc3
LDggKzc3LDcgQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIHdp
bGxTZW5kUmVxdWVzdEFzeW5jKFJlc291cmNlSGFuZGxlKiwgUmVzb3VyY2VSZXF1ZXN0JiYsIFJl
c291cmNlUmVzcG9uc2UmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZXNvdXJjZVJlcXVlc3Qm
Jik+JiYpID0gMDsKIAotICAgIC8vIENsaWVudCB3aWxsIGNhbGwgUmVzb3VyY2VIYW5kbGU6OmNv
bnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlKCkgd2hlbiByZWFkeS4KLSAgICBXRUJDT1JFX0VYUE9S
VCB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlQXN5bmMoUmVzb3VyY2VIYW5kbGUqLCBS
ZXNvdXJjZVJlc3BvbnNlJiYpID0gMDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQg
ZGlkUmVjZWl2ZVJlc3BvbnNlQXN5bmMoUmVzb3VyY2VIYW5kbGUqLCBSZXNvdXJjZVJlc3BvbnNl
JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgPSAwOwogCiAjaWYgVVNFKFBST1RFQ1RJ
T05fU1BBQ0VfQVVUSF9DQUxMQkFDSykKICAgICAvLyBDbGllbnQgd2lsbCBwYXNzIGFuIHVwZGF0
ZWQgcmVxdWVzdCB1c2luZyBSZXNvdXJjZUhhbmRsZTo6Y29udGludWVDYW5BdXRoZW50aWNhdGVB
Z2FpbnN0UHJvdGVjdGlvblNwYWNlKCkgd2hlbiByZWFkeS4KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvU3luY2hyb25vdXNMb2FkZXJDbGllbnQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU3luY2hyb25vdXNMb2FkZXJDbGll
bnQuY3BwCShyZXZpc2lvbiAyMjczNTUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL1N5bmNocm9ub3VzTG9hZGVyQ2xpZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjIsMTAg
KzYyLDEwIEBAIHZvaWQgU3luY2hyb25vdXNMb2FkZXJDbGllbnQ6OmNhbkF1dGhlbnQKIH0KICNl
bmRpZgogCi12b2lkIFN5bmNocm9ub3VzTG9hZGVyQ2xpZW50OjpkaWRSZWNlaXZlUmVzcG9uc2VB
c3luYyhSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBSZXNvdXJjZVJlc3BvbnNlJiYgcmVzcG9uc2Up
Cit2b2lkIFN5bmNocm9ub3VzTG9hZGVyQ2xpZW50OjpkaWRSZWNlaXZlUmVzcG9uc2VBc3luYyhS
ZXNvdXJjZUhhbmRsZSosIFJlc291cmNlUmVzcG9uc2UmJiByZXNwb25zZSwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIG1fcmVzcG9uc2UgPSBX
VEZNb3ZlKHJlc3BvbnNlKTsKLSAgICBoYW5kbGUtPmNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNl
KCk7CisgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKIH0KIAogdm9pZCBTeW5jaHJvbm91c0xvYWRl
ckNsaWVudDo6ZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiBkYXRh
LCB1bnNpZ25lZCBsZW5ndGgsIGludCAvKmVuY29kZWREYXRhTGVuZ3RoKi8pCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1N5bmNocm9ub3VzTG9hZGVyQ2xpZW50LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9TeW5jaHJvbm91c0xv
YWRlckNsaWVudC5oCShyZXZpc2lvbiAyMjczNTUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL1N5bmNocm9ub3VzTG9hZGVyQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ5
LDcgKzQ5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHdpbGxTZW5kUmVxdWVzdEFzeW5jKFJlc291
cmNlSGFuZGxlKiwgUmVzb3VyY2VSZXF1ZXN0JiYsIFJlc291cmNlUmVzcG9uc2UmJiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChSZXNvdXJjZVJlcXVlc3QmJik+JiYpIG92ZXJyaWRlOwogICAgIGJv
b2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UoUmVzb3VyY2VIYW5kbGUqKSBvdmVycmlkZTsK
ICAgICB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShSZXNvdXJjZUhhbmRs
ZSosIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBk
aWRSZWNlaXZlUmVzcG9uc2VBc3luYyhSZXNvdXJjZUhhbmRsZSosIFJlc291cmNlUmVzcG9uc2Um
Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2VBc3luYyhSZXNvdXJjZUhh
bmRsZSosIFJlc291cmNlUmVzcG9uc2UmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBv
dmVycmlkZTsKICAgICB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3Qg
Y2hhciosIHVuc2lnbmVkLCBpbnQgLyplbmNvZGVkRGF0YUxlbmd0aCovKSBvdmVycmlkZTsKICAg
ICB2b2lkIGRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqKSBvdmVycmlkZTsKICAgICB2
b2lkIGRpZEZhaWwoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZUVycm9yJikgb3ZlcnJp
ZGU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFu
ZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWUuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVD
RlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZS5jcHAJKHJldmlzaW9uIDIy
NzM1NSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5k
bGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTE4MCwzMCArMTgwLDMwIEBAIENGVVJMUmVxdWVzdFJlZiBSZXNvdXJjZUhhbmRs
ZUNGVVJMQ29ubmUKIHZvaWQgUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdp
dGhPcGVyYXRpb25RdWV1ZTo6ZGlkUmVjZWl2ZVJlc3BvbnNlKENGVVJMQ29ubmVjdGlvblJlZiBj
b25uZWN0aW9uLCBDRlVSTFJlc3BvbnNlUmVmIGNmUmVzcG9uc2UpCiB7CiAgICAgYXV0byBwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyk7Ci0gICAgYXV0byB3b3JrID0gW3Byb3RlY3RlZFRo
aXMgPSBtYWtlUmVmKCp0aGlzKSwgY2ZSZXNwb25zZSA9IFJldGFpblB0cjxDRlVSTFJlc3BvbnNl
UmVmPihjZlJlc3BvbnNlKSwgY29ubmVjdGlvbiA9IFJldGFpblB0cjxDRlVSTENvbm5lY3Rpb25S
ZWY+KGNvbm5lY3Rpb24pXSAoKSB7Ci0gICAgICAgIGF1dG8mIGhhbmRsZSA9IHByb3RlY3RlZFRo
aXMtPm1faGFuZGxlOwotICAgICAgICAKLSAgICAgICAgaWYgKCFwcm90ZWN0ZWRUaGlzLT5oYXNI
YW5kbGUoKSB8fCAhaGFuZGxlLT5jbGllbnQoKSB8fCAhaGFuZGxlLT5jb25uZWN0aW9uKCkpIHsK
LSAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPmNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlKCk7
CisgICAgYXV0byB3b3JrID0gW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwg
Y2ZSZXNwb25zZSA9IFJldGFpblB0cjxDRlVSTFJlc3BvbnNlUmVmPihjZlJlc3BvbnNlKSwgY29u
bmVjdGlvbiA9IFJldGFpblB0cjxDRlVSTENvbm5lY3Rpb25SZWY+KGNvbm5lY3Rpb24pXSAoKSB7
CisgICAgICAgIGlmICghaGFzSGFuZGxlKCkgfHwgIW1faGFuZGxlLT5jbGllbnQoKSB8fCAhbV9o
YW5kbGUtPmNvbm5lY3Rpb24oKSkgeworICAgICAgICAgICAgbV9zZW1hcGhvcmUuc2lnbmFsKCk7
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBMT0coTmV0d29yaywg
IkNGTmV0IC0gUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRp
b25RdWV1ZTo6ZGlkUmVjZWl2ZVJlc3BvbnNlKGhhbmRsZT0lcCkgKCVzKSIsIGhhbmRsZSwgaGFu
ZGxlLT5maXJzdFJlcXVlc3QoKS51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICAg
ICAgTE9HKE5ldHdvcmssICJDRk5ldCAtIFJlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVs
ZWdhdGVXaXRoT3BlcmF0aW9uUXVldWU6OmRpZFJlY2VpdmVSZXNwb25zZShoYW5kbGU9JXApICgl
cykiLCBtX2hhbmRsZSwgbV9oYW5kbGUtPmZpcnN0UmVxdWVzdCgpLnVybCgpLnN0cmluZygpLnV0
ZjgoKS5kYXRhKCkpOwogCiAgICAgICAgIC8vIEF2b2lkIE1JTUUgdHlwZSBzbmlmZmluZyBpZiB0
aGUgcmVzcG9uc2UgY29tZXMgYmFjayBhcyAzMDQgTm90IE1vZGlmaWVkLgogICAgICAgICBhdXRv
IG1zZyA9IENGVVJMUmVzcG9uc2VHZXRIVFRQUmVzcG9uc2UoY2ZSZXNwb25zZS5nZXQoKSk7CiAg
ICAgICAgIGludCBzdGF0dXNDb2RlID0gbXNnID8gQ0ZIVFRQTWVzc2FnZUdldFJlc3BvbnNlU3Rh
dHVzQ29kZShtc2cpIDogMDsKIAogICAgICAgICBpZiAoc3RhdHVzQ29kZSAhPSAzMDQpIHsKLSAg
ICAgICAgICAgIGJvb2wgaXNNYWluUmVzb3VyY2VMb2FkID0gaGFuZGxlLT5maXJzdFJlcXVlc3Qo
KS5yZXF1ZXN0ZXIoKSA9PSBSZXNvdXJjZVJlcXVlc3Q6OlJlcXVlc3Rlcjo6TWFpbjsKKyAgICAg
ICAgICAgIGJvb2wgaXNNYWluUmVzb3VyY2VMb2FkID0gbV9oYW5kbGUtPmZpcnN0UmVxdWVzdCgp
LnJlcXVlc3RlcigpID09IFJlc291cmNlUmVxdWVzdDo6UmVxdWVzdGVyOjpNYWluOwogICAgICAg
ICB9CiAKLSAgICAgICAgaWYgKF9DRlVSTFJlcXVlc3RDb3B5UHJvdG9jb2xQcm9wZXJ0eUZvcktl
eShoYW5kbGUtPmZpcnN0UmVxdWVzdCgpLmNmVVJMUmVxdWVzdChEb05vdFVwZGF0ZUhUVFBCb2R5
KSwgQ0ZTVFIoIkZvcmNlSFRNTE1JTUVUeXBlIikpKQorICAgICAgICBpZiAoX0NGVVJMUmVxdWVz
dENvcHlQcm90b2NvbFByb3BlcnR5Rm9yS2V5KG1faGFuZGxlLT5maXJzdFJlcXVlc3QoKS5jZlVS
TFJlcXVlc3QoRG9Ob3RVcGRhdGVIVFRQQm9keSksIENGU1RSKCJGb3JjZUhUTUxNSU1FVHlwZSIp
KSkKICAgICAgICAgICAgIENGVVJMUmVzcG9uc2VTZXRNSU1FVHlwZShjZlJlc3BvbnNlLmdldCgp
LCBDRlNUUigidGV4dC9odG1sIikpOwogCiAgICAgICAgIFJlc291cmNlUmVzcG9uc2UgcmVzb3Vy
Y2VSZXNwb25zZShjZlJlc3BvbnNlLmdldCgpKTsKICAgICAgICAgcmVzb3VyY2VSZXNwb25zZS5z
ZXRTb3VyY2UoUmVzb3VyY2VSZXNwb25zZTo6U291cmNlOjpOZXR3b3JrKTsKLSAgICAgICAgaGFu
ZGxlLT5kaWRSZWNlaXZlUmVzcG9uc2UoV1RGTW92ZShyZXNvdXJjZVJlc3BvbnNlKSk7CisgICAg
ICAgIG1faGFuZGxlLT5kaWRSZWNlaXZlUmVzcG9uc2UoV1RGTW92ZShyZXNvdXJjZVJlc3BvbnNl
KSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpXSB7CisgICAg
ICAgICAgICBtX3NlbWFwaG9yZS5zaWduYWwoKTsKKyAgICAgICAgfSk7CiAgICAgfTsKIAogICAg
IGlmIChtX21lc3NhZ2VRdWV1ZSkKQEAgLTM4OSwxMSArMzg5LDYgQEAgdm9pZCBSZXNvdXJjZUhh
bmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYQogfQogI2VuZGlmIC8vIFVTRShQUk9URUNUSU9OX1NQ
QUNFX0FVVEhfQ0FMTEJBQ0spCiAKLXZvaWQgUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25E
ZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZTo6Y29udGludWVEaWRSZWNlaXZlUmVzcG9uc2UoKQot
ewotICAgIG1fc2VtYXBob3JlLnNpZ25hbCgpOwotfQotCiB2b2lkIFJlc291cmNlSGFuZGxlQ0ZV
UkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWU6OmNvbnRpbnVlV2lsbENhY2hl
UmVzcG9uc2UoQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZiByZXNwb25zZSkKIHsKICAgICBtX2NhY2hl
ZFJlc3BvbnNlUmVzdWx0ID0gcmVzcG9uc2U7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsRGVsZWdhdGUuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1
cmxEZWxlZ2F0ZS5jcHAJKHJldmlzaW9uIDIyNzM1NSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmxEZWxlZ2F0ZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTIyMSw3ICsyMjEsOSBAQCB2b2lkIFJlc291cmNlSGFuZGxlQ3VybERlbGVnYXRl
OjpjdXJsRGlkCiAgICAgICAgIEN1cmxDYWNoZU1hbmFnZXI6OnNpbmdsZXRvbigpLmRpZFJlY2Vp
dmVSZXNwb25zZSgqbV9oYW5kbGUsIHJlc3BvbnNlKCkpOwogCiAgICAgICAgIGF1dG8gcHJvdGVj
dGVkVGhpcyA9IG1ha2VSZWYoKm1faGFuZGxlKTsKLSAgICAgICAgbV9oYW5kbGUtPmRpZFJlY2Vp
dmVSZXNwb25zZShSZXNvdXJjZVJlc3BvbnNlKHJlc3BvbnNlKCkpKTsKKyAgICAgICAgbV9oYW5k
bGUtPmRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZVJlc3BvbnNlKHJlc3BvbnNlKCkpLCBbdGhp
cywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSB7CisgICAgICAgICAgICBjb250aW51
ZUFmdGVyRGlkUmVjZWl2ZVJlc3BvbnNlKCk7CisgICAgICAgIH0pOwogICAgIH0KIH0KIApAQCAt
MjYzLDEzICsyNjUsNiBAQCB2b2lkIFJlc291cmNlSGFuZGxlQ3VybERlbGVnYXRlOjpjdXJsRGlk
CiAgICAgbV9oYW5kbGUtPmNsaWVudCgpLT5kaWRGYWlsKG1faGFuZGxlLCByZXNvdXJjZUVycm9y
KTsKIH0KIAotdm9pZCBSZXNvdXJjZUhhbmRsZUN1cmxEZWxlZ2F0ZTo6Y29udGludWVEaWRSZWNl
aXZlUmVzcG9uc2UoKQotewotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0KLSAgICBjb250
aW51ZUFmdGVyRGlkUmVjZWl2ZVJlc3BvbnNlKCk7Ci19Ci0KIHZvaWQgUmVzb3VyY2VIYW5kbGVD
dXJsRGVsZWdhdGU6OnBsYXRmb3JtQ29udGludWVTeW5jaHJvbm91c0RpZFJlY2VpdmVSZXNwb25z
ZSgpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKQEAgLTQyNiw3ICs0MjEsOSBAQCB2
b2lkIFJlc291cmNlSGFuZGxlQ3VybERlbGVnYXRlOjpoYW5kbGVECiAKICAgICBpZiAoYmFzZTY0
KSB7CiAgICAgICAgIGRhdGEgPSBkZWNvZGVVUkxFc2NhcGVTZXF1ZW5jZXMoZGF0YSk7Ci0gICAg
ICAgIG1faGFuZGxlLT5kaWRSZWNlaXZlUmVzcG9uc2UoV1RGTW92ZShyZXNwb25zZSkpOworICAg
ICAgICBtX2hhbmRsZS0+ZGlkUmVjZWl2ZVJlc3BvbnNlKFdURk1vdmUocmVzcG9uc2UpLCBbdGhp
cywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSB7CisgICAgICAgICAgICBjb250aW51
ZUFmdGVyRGlkUmVjZWl2ZVJlc3BvbnNlKCk7CisgICAgICAgIH0pOwogCiAgICAgICAgIC8vIGRp
ZFJlY2VpdmVSZXNwb25zZSBtaWdodCBjYXVzZSB0aGUgY2xpZW50IHRvIGJlIGRlbGV0ZWQuCiAg
ICAgICAgIGlmIChtX2hhbmRsZS0+Y2xpZW50KCkpIHsKQEAgLTQzNyw3ICs0MzQsOSBAQCB2b2lk
IFJlc291cmNlSGFuZGxlQ3VybERlbGVnYXRlOjpoYW5kbGVECiAgICAgfSBlbHNlIHsKICAgICAg
ICAgVGV4dEVuY29kaW5nIGVuY29kaW5nKGNoYXJzZXQpOwogICAgICAgICBkYXRhID0gZGVjb2Rl
VVJMRXNjYXBlU2VxdWVuY2VzKGRhdGEsIGVuY29kaW5nKTsKLSAgICAgICAgbV9oYW5kbGUtPmRp
ZFJlY2VpdmVSZXNwb25zZShXVEZNb3ZlKHJlc3BvbnNlKSk7CisgICAgICAgIG1faGFuZGxlLT5k
aWRSZWNlaXZlUmVzcG9uc2UoV1RGTW92ZShyZXNwb25zZSksIFt0aGlzLCBwcm90ZWN0ZWRUaGlz
ID0gbWFrZVJlZigqdGhpcyldIHsKKyAgICAgICAgICAgIGNvbnRpbnVlQWZ0ZXJEaWRSZWNlaXZl
UmVzcG9uc2UoKTsKKyAgICAgICAgfSk7CiAKICAgICAgICAgLy8gZGlkUmVjZWl2ZVJlc3BvbnNl
IG1pZ2h0IGNhdXNlIHRoZSBjbGllbnQgdG8gYmUgZGVsZXRlZC4KICAgICAgICAgaWYgKG1faGFu
ZGxlLT5jbGllbnQoKSkgewpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9t
YWMvUmVzb3VyY2VIYW5kbGVNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0JKHJldmlzaW9uIDIyNzM1NSkK
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFj
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC00NzEsMTEgKzQ3MSw2IEBAIHZvaWQgUmVzb3VyY2VIYW5k
bGU6OndpbGxTZW5kUmVxdWVzdChSZXMKICAgICB9KTsKIH0KIAotdm9pZCBSZXNvdXJjZUhhbmRs
ZTo6Y29udGludWVEaWRSZWNlaXZlUmVzcG9uc2UoKQotewotICAgIFtkZWxlZ2F0ZSgpIGNvbnRp
bnVlRGlkUmVjZWl2ZVJlc3BvbnNlXTsKLX0KLQogdm9pZCBSZXNvdXJjZUhhbmRsZTo6ZGlkUmVj
ZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
JiBjaGFsbGVuZ2UpCiB7CiAgICAgQVNTRVJUKCFkLT5tX2N1cnJlbnRNYWNDaGFsbGVuZ2UpOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNl
SGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRp
b25RdWV1ZURlbGVnYXRlLmgJKHJldmlzaW9uIDIyNzM1NSkKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVE
ZWxlZ2F0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw3ICs0Nyw2IEBAIEBpbnRlcmZhY2UgV2Vi
Q29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXQKIAogLSAodm9pZClkZXRhY2hIYW5kbGU7CiAtIChp
ZClpbml0V2l0aEhhbmRsZTooV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGUqKWhhbmRsZSBtZXNzYWdl
UXVldWU6KE1lc3NhZ2VRdWV1ZTxGdW5jdGlvbjx2b2lkKCk+PiopbWVzc2FnZVF1ZXVlOwotLSAo
dm9pZCljb250aW51ZURpZFJlY2VpdmVSZXNwb25zZTsKIC0gKHZvaWQpY29udGludWVDYW5BdXRo
ZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlOihCT09MKWNhbkF1dGhlbnRpY2F0ZTsKIC0g
KHZvaWQpY29udGludWVXaWxsQ2FjaGVSZXNwb25zZTooTlNDYWNoZWRVUkxSZXNwb25zZSAqKXJl
c3BvbnNlOwogQGVuZApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMv
V2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJj
ZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5tbQkocmV2aXNpb24gMjI3MzU1KQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxl
QXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMDgsMTEgKzEw
OCw2IEBAIC0gKHZvaWQpZGVhbGxvYwogICAgIFtzdXBlciBkZWFsbG9jXTsKIH0KIAotLSAodm9p
ZCljb250aW51ZURpZFJlY2VpdmVSZXNwb25zZQotewotICAgIGRpc3BhdGNoX3NlbWFwaG9yZV9z
aWduYWwobV9zZW1hcGhvcmUpOwotfQotCiAtICh2b2lkKWNvbnRpbnVlQ2FuQXV0aGVudGljYXRl
QWdhaW5zdFByb3RlY3Rpb25TcGFjZTooQk9PTCljYW5BdXRoZW50aWNhdGUKIHsKICAgICBtX2Jv
b2xSZXN1bHQgPSBjYW5BdXRoZW50aWNhdGU7CkBAIC0yMzAsNyArMjI1LDkgQEAgLSAodm9pZClj
b25uZWN0aW9uOihOU1VSTENvbm5lY3Rpb24gKiljbwogICAgICAgICByZXNvdXJjZVJlc3BvbnNl
LnNldFNvdXJjZShSZXNvdXJjZVJlc3BvbnNlOjpTb3VyY2U6Ok5ldHdvcmspOwogICAgICAgICBS
ZXNvdXJjZUhhbmRsZTo6Z2V0Q29ubmVjdGlvblRpbWluZ0RhdGEoY29ubmVjdGlvbi5nZXQoKSwg
cmVzb3VyY2VSZXNwb25zZS5kZXByZWNhdGVkTmV0d29ya0xvYWRNZXRyaWNzKCkpOwogCi0gICAg
ICAgIG1faGFuZGxlLT5kaWRSZWNlaXZlUmVzcG9uc2UoV1RGTW92ZShyZXNvdXJjZVJlc3BvbnNl
KSk7CisgICAgICAgIG1faGFuZGxlLT5kaWRSZWNlaXZlUmVzcG9uc2UoV1RGTW92ZShyZXNvdXJj
ZVJlc3BvbnNlKSwgW3NlbGYsIHByb3RlY3RlZFNlbGYgPSBXVEZNb3ZlKHByb3RlY3RlZFNlbGYp
XSB7CisgICAgICAgICAgICBkaXNwYXRjaF9zZW1hcGhvcmVfc2lnbmFsKG1fc2VtYXBob3JlKTsK
KyAgICAgICAgfSk7CiAgICAgfTsKIAogICAgIFtzZWxmIGNhbGxGdW5jdGlvbk9uTWFpblRocmVh
ZDpXVEZNb3ZlKHdvcmspXTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
c291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCShyZXZpc2lvbiAy
MjczNTUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VI
YW5kbGVTb3VwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDYzLDcgKzQ2Myw5IEBAIHN0YXRpYyB2
b2lkIG5leHRNdWx0aXBhcnRSZXNwb25zZVBhcnRDYWwKIAogICAgIGQtPm1fcHJldmlvdXNQb3Np
dGlvbiA9IDA7CiAKLSAgICBoYW5kbGUtPmRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZVJlc3Bv
bnNlKGQtPm1fcmVzcG9uc2UpKTsKKyAgICBoYW5kbGUtPmRpZFJlY2VpdmVSZXNwb25zZShSZXNv
dXJjZVJlc3BvbnNlKGQtPm1fcmVzcG9uc2UpLCBbaGFuZGxlID0gbWFrZVJlZigqaGFuZGxlKV0g
eworICAgICAgICBjb250aW51ZUFmdGVyRGlkUmVjZWl2ZVJlc3BvbnNlKGhhbmRsZS5wdHIoKSk7
CisgICAgfV0pOwogfQogCiBzdGF0aWMgdm9pZCBzZW5kUmVxdWVzdENhbGxiYWNrKEdPYmplY3Qq
LCBHQXN5bmNSZXN1bHQqIHJlc3VsdCwgZ3BvaW50ZXIgZGF0YSkKQEAgLTUyMCw3ICs1MjIsOSBA
QCBzdGF0aWMgdm9pZCBzZW5kUmVxdWVzdENhbGxiYWNrKEdPYmplY3QqCiAgICAgZWxzZQogICAg
ICAgICBkLT5tX2lucHV0U3RyZWFtID0gaW5wdXRTdHJlYW07CiAKLSAgICBoYW5kbGUtPmRpZFJl
Y2VpdmVSZXNwb25zZShSZXNvdXJjZVJlc3BvbnNlKGQtPm1fcmVzcG9uc2UpKTsKKyAgICBoYW5k
bGUtPmRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZVJlc3BvbnNlKGQtPm1fcmVzcG9uc2UpLCBb
aGFuZGxlID0gbWFrZVJlZigqaGFuZGxlKV0geworICAgICAgICBjb250aW51ZUFmdGVyRGlkUmVj
ZWl2ZVJlc3BvbnNlKGhhbmRsZS5wdHIoKSk7CisgICAgfSk7CiB9CiAKIHZvaWQgUmVzb3VyY2VI
YW5kbGU6OnBsYXRmb3JtQ29udGludWVTeW5jaHJvbm91c0RpZFJlY2VpdmVSZXNwb25zZSgpCkBA
IC0xMDE5LDExICsxMDIzLDYgQEAgc3RhdGljIHZvaWQgcmVhZENhbGxiYWNrKEdPYmplY3QqLCBH
QXN5bgogICAgICAgICBkLT5tX2NhbmNlbGxhYmxlLmdldCgpLCByZWFkQ2FsbGJhY2ssIGhhbmRs
ZS5nZXQoKSk7CiB9CiAKLXZvaWQgUmVzb3VyY2VIYW5kbGU6OmNvbnRpbnVlRGlkUmVjZWl2ZVJl
c3BvbnNlKCkKLXsKLSAgICBjb250aW51ZUFmdGVyRGlkUmVjZWl2ZVJlc3BvbnNlKHRoaXMpOwot
fQotCiB9CiAKICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyNzM2OCkKKysrIFNvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTgt
MDEtMjIgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAg
ICAgICBVc2UgQ29tcGxldGlvbkhhbmRsZXJzIGZvciBSZXNvdXJjZUhhbmRsZUNsaWVudDo6ZGlk
UmVjZWl2ZVJlc3BvbnNlQXN5bmMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE4MTk2MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmg6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtMb2FkLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jl
c291cmNlTG9hZFBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L21hYy9XZWJEcmFnQ2xpZW50TWFjLm1tOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9tYWMvV2ViUGFnZU1hYy5tbToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3Bw
OgorCiAyMDE4LTAxLTIyICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgUmVtb3ZlIHByZS1OZXR3b3JrU2Vzc2lvbiBsb2FkaW5nIGNvZGUKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwCShyZXZp
c2lvbiAyMjczNjQpCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2Fk
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNiBAQAogI2luY2x1ZGUgIldlYkNvcmVB
cmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYkVycm9ycy5oIgogI2luY2x1ZGUgPFdlYkNv
cmUvTm90SW1wbGVtZW50ZWQuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlSGFuZGxlLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1NoYXJlZEJ1ZmZlci5oPgogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmgJKHJldmlzaW9uIDIyNzM2NCkK
KysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuaAkod29ya2luZyBj
b3B5KQpAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgIk5ldHdvcmtMb2FkUGFyYW1ldGVycy5o
IgogI2luY2x1ZGUgIlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSA8V2ViQ29y
ZS9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VI
YW5kbGVDbGllbnQuaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNs
dWRlIDx3dGYvT3B0aW9uYWwuaD4KIApJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuaAkocmV2
aXNpb24gMjI3MzU1KQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVz
b3VyY2VMb2FkUGFyYW1ldGVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMywxNSArMjMsMTMgQEAK
ICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIE5ldHdv
cmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzX2gKLSNkZWZpbmUgTmV0d29ya1Jlc291cmNlTG9hZFBh
cmFtZXRlcnNfaAorI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJOZXR3b3JrTG9hZFBhcmFtZXRl
cnMuaCIKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSAiV2ViQ29tcGls
ZWRDb250ZW50UnVsZUxpc3REYXRhLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Db250ZW50U2VjdXJp
dHlQb2xpY3lSZXNwb25zZUhlYWRlcnMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZldGNoT3B0aW9u
cy5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VIYW5kbGUuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1Jlc291cmNlTG9hZGVyT3B0aW9ucy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VS
ZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgpAQCAtNjgsNSAr
NjYsMyBAQCBwdWJsaWM6CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8v
IE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzX2gKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuaAkocmV2aXNpb24gMjI3MzY0
KQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuaAko
d29ya2luZyBjb3B5KQpAQCAtMzAsOCArMzAsNiBAQAogI2luY2x1ZGUgIk5ldHdvcmtEYXRhVGFz
ay5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKICNpbmNsdWRlIDxXZWJDb3JlL0F1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUhhbmRs
ZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VIYW5kbGVDbGllbnQuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgogI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRl
IDxwYWwvU2Vzc2lvbklELmg+CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuY3BwCShyZXZpc2lvbiAyMjczNjQpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwOCw3ICsxMDgsNiBAQAogI2luY2x1ZGUg
PFdlYkNvcmUvUGFnZUNhY2hlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlR3JvdXAuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oPgotI2luY2x1ZGUg
PFdlYkNvcmUvUmVzb3VyY2VIYW5kbGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlTG9h
ZE9ic2VydmVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaD4KSW5kZXg6IFNv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlLmNwcAkocmV2aXNpb24gMjI3MzU1KQorKysgU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNjgsNyArNjgsNiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvUGFnZUdyb3VwLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QcmludENvbnRleHQuaD4KLSNp
bmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlSGFuZGxlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SdW50
aW1lRW5hYmxlZEZlYXR1cmVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TV0NvbnRleHRNYW5hZ2Vy
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JpcHRDb250cm9sbGVyLmg+CkluZGV4OiBTb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkRyYWdDbGllbnRNYWMubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21h
Yy9XZWJEcmFnQ2xpZW50TWFjLm1tCShyZXZpc2lvbiAyMjczNTUpCisrKyBTb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkRyYWdDbGllbnRNYWMubW0JKHdvcmtp
bmcgY29weSkKQEAgLTQ4LDcgKzQ4LDYgQEAKICNpbXBvcnQgPFdlYkNvcmUvUGFnZS5oPgogI2lt
cG9ydCA8V2ViQ29yZS9QYXN0ZWJvYXJkLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1JlbmRlckltYWdl
Lmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1Jlc291cmNlSGFuZGxlLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1N0cmluZ1RydW5jYXRvci5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlTlNVUkxFeHRyYXMu
aD4KICNpbXBvcnQgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCShyZXZpc2lvbiAyMjcz
NTUpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5t
bQkod29ya2luZyBjb3B5KQpAQCAtODMsNyArODMsNiBAQAogI2ltcG9ydCA8V2ViQ29yZS9SZW5k
ZXJPYmplY3QuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVuZGVyU3R5bGUuaD4KICNpbXBvcnQgPFdl
YkNvcmUvUmVuZGVyVmlldy5oPgotI2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJjZUhhbmRsZS5oPgog
I2ltcG9ydCA8V2ViQ29yZS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaD4KICNpbXBvcnQgPFdl
YkNvcmUvU2Nyb2xsVmlldy5oPgogI2ltcG9ydCA8V2ViQ29yZS9TdHlsZUluaGVyaXRlZERhdGEu
aD4KSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMjczNTUpCisrKyBTb3VyY2Uv
V2ViS2l0TGVnYWN5L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisy
MDE4LTAxLTIyICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisK
KyAgICAgICAgVXNlIENvbXBsZXRpb25IYW5kbGVycyBmb3IgUmVzb3VyY2VIYW5kbGVDbGllbnQ6
OmRpZFJlY2VpdmVSZXNwb25zZUFzeW5jCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xODE5NjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZFNjaGVkdWxl
ci5jcHA6CisKIDIwMTgtMDEtMTYgIEZ1amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29u
eS5jb20+CiAKICAgICAgICAgW0NNYWtlXSBSZW1vdmUgV2ViQ29yZURlcml2ZWRTb3VyY2VzIGxp
YnJhcnkgdGFyZ2V0CkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dl
YlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExl
Z2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwCShyZXZpc2lv
biAyMjczNTUpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYlJlc291
cmNlTG9hZFNjaGVkdWxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDYgQEAKICNp
bmNsdWRlIDxXZWJDb3JlL05ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9QaW5nSGFuZGxlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybVN0cmF0ZWdp
ZXMuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlSGFuZGxlLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1N1YnJlc291cmNlTG9h
ZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9VUkwuaD4KSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDIyNzM1NSkKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDE4LTAxLTIyICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVXNlIENv
bXBsZXRpb25IYW5kbGVycyBmb3IgUmVzb3VyY2VIYW5kbGVDbGllbnQ6OmRpZFJlY2VpdmVSZXNw
b25zZUFzeW5jCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xODE5NjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW06CisKIDIwMTgtMDEtMjEgIFJ5b3N1a2UgTml3
YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVHVybmluZyBvZmYgY3VzdG9tIHBhc3Rl
Ym9hcmQgZGF0YSBkb2Vzbid0IGFjdHVhbGx5IHR1cm4gaXQgb2ZmIGluIFdLMgpJbmRleDogU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCShy
ZXZpc2lvbiAyMjczNTUpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlBy
ZWZlcmVuY2VzLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00Miw3ICs0Miw2IEBACiAjaW1wb3J0IDxX
ZWJDb3JlL0RlcHJlY2F0ZWRHbG9iYWxTZXR0aW5ncy5oPgogI2ltcG9ydCA8V2ViQ29yZS9OZXR3
b3JrU3RvcmFnZVNlc3Npb24uaD4KICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1Db29raWVKYXIu
aD4KLSNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VIYW5kbGUuaD4KICNpbXBvcnQgPFdlYkNvcmUv
UnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NldHRpbmdzLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL1RleHRFbmNvZGluZ1JlZ2lzdHJ5Lmg+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>331981</attachid>
            <date>2018-01-22 17:05:48 -0800</date>
            <delta_ts>2018-01-22 18:00:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-181961-20180122170547.patch</filename>
            <type>text/plain</type>
            <size>36619</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyNzM1NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ5IEBACisyMDE4LTAxLTIyICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVXNlIENvbXBs
ZXRpb25IYW5kbGVycyBmb3IgUmVzb3VyY2VIYW5kbGVDbGllbnQ6OmRpZFJlY2VpdmVSZXNwb25z
ZUFzeW5jCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
ODE5NjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBO
byBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25z
ZUFzeW5jKToKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKiBs
b2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6ZGlkUmVjZWl2ZVJlc3BvbnNlQXN5bmMpOgorICAg
ICAgICAqIGxvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpCbG9iUmVzb3VyY2VIYW5kbGU6Om5vdGlmeVJlc3BvbnNlT25TdWNjZXNzKToKKyAgICAg
ICAgKFdlYkNvcmU6OkJsb2JSZXNvdXJjZUhhbmRsZTo6bm90aWZ5UmVzcG9uc2VPbkVycm9yKToK
KyAgICAgICAgKFdlYkNvcmU6OkJsb2JSZXNvdXJjZUhhbmRsZTo6Y29udGludWVEaWRSZWNlaXZl
UmVzcG9uc2UpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvQmxvYlJlc291
cmNlSGFuZGxlLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9QaW5nSGFuZGxlLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6ZGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0
d29yay9SZXNvdXJjZUhhbmRsZUNsaWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsv
U3luY2hyb25vdXNMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3luY2hyb25v
dXNMb2FkZXJDbGllbnQ6OmRpZFJlY2VpdmVSZXNwb25zZUFzeW5jKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9uZXR3b3JrL1N5bmNocm9ub3VzTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogcGxhdGZv
cm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0aE9w
ZXJhdGlvblF1ZXVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlQ0ZVUkxD
b25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWU6OmRpZFJlY2VpdmVSZXNwb25zZSk6
CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRl
V2l0aE9wZXJhdGlvblF1ZXVlOjpjb250aW51ZURpZFJlY2VpdmVSZXNwb25zZSk6IERlbGV0ZWQu
CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybERlbGVn
YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlQ3VybERlbGVnYXRlOjpj
dXJsRGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxl
Q3VybERlbGVnYXRlOjpoYW5kbGVEYXRhVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNl
SGFuZGxlQ3VybERlbGVnYXRlOjpjb250aW51ZURpZFJlY2VpdmVSZXNwb25zZSk6IERlbGV0ZWQu
CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW06Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6Y29udGludWVEaWRSZWNlaXZlUmVzcG9u
c2UpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNv
dXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5oOgorICAgICAgICAqIHBsYXRmb3Jt
L25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0
ZS5tbToKKyAgICAgICAgKC1bV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURl
bGVnYXRlIGNvbm5lY3Rpb246ZGlkUmVjZWl2ZVJlc3BvbnNlOl0pOgorICAgICAgICAoLVtXZWJD
b3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUgY29udGludWVEaWRSZWNl
aXZlUmVzcG9uc2VdKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
UmVzb3VyY2VIYW5kbGVTb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om5leHRNdWx0aXBhcnRS
ZXNwb25zZVBhcnRDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpzZW5kUmVxdWVzdENhbGxi
YWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjb250aW51ZURpZFJlY2Vp
dmVSZXNwb25zZSk6IERlbGV0ZWQuCisKIDIwMTgtMDEtMjIgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KIAogICAgICAgICBSRUxFQVNFX0FTU0VSVChyZWdpc3RyYXRpb24pIGhpdCBp
biBTV1NlcnZlcjo6aW5zdGFsbENvbnRleHREYXRhKGNvbnN0IFNlcnZpY2VXb3JrZXJDb250ZXh0
RGF0YSYpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAJKHJl
dmlzaW9uIDIyNzM1NSkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTY1NywxNCArNjU3LDE0IEBAIHZvaWQgUmVzb3VyY2VMb2Fk
ZXI6OmRpZFNlbmREYXRhKFJlc291cmMKICAgICBkaWRTZW5kRGF0YShieXRlc1NlbnQsIHRvdGFs
Qnl0ZXNUb0JlU2VudCk7CiB9CiAKLXZvaWQgUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNw
b25zZUFzeW5jKFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIFJlc291cmNlUmVzcG9uc2UmJiByZXNw
b25zZSkKK3ZvaWQgUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZUFzeW5jKFJlc291
cmNlSGFuZGxlKiwgUmVzb3VyY2VSZXNwb25zZSYmIHJlc3BvbnNlLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKGRvY3VtZW50TG9hZGVy
KCktPmFwcGxpY2F0aW9uQ2FjaGVIb3N0KCkubWF5YmVMb2FkRmFsbGJhY2tGb3JSZXNwb25zZSh0
aGlzLCByZXNwb25zZSkpIHsKLSAgICAgICAgaGFuZGxlLT5jb250aW51ZURpZFJlY2VpdmVSZXNw
b25zZSgpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogICAgIGRpZFJlY2VpdmVSZXNwb25zZShyZXNwb25zZSk7Ci0gICAgaGFuZGxlLT5jb250
aW51ZURpZFJlY2VpdmVSZXNwb25zZSgpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9CiAK
IHZvaWQgUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29u
c3QgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoLCBpbnQgZW5jb2RlZERhdGFMZW5ndGgpCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaAkocmV2aXNpb24gMjI3MzU1
KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTE4Miw3ICsxODIsNyBAQCBwcml2YXRlOgogCiAgICAgLy8gUmVzb3VyY2VIYW5kbGVD
bGllbnQKICAgICB2b2lkIGRpZFNlbmREYXRhKFJlc291cmNlSGFuZGxlKiwgdW5zaWduZWQgbG9u
ZyBsb25nIGJ5dGVzU2VudCwgdW5zaWduZWQgbG9uZyBsb25nIHRvdGFsQnl0ZXNUb0JlU2VudCkg
b3ZlcnJpZGU7Ci0gICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2VBc3luYyhSZXNvdXJjZUhhbmRs
ZSosIFJlc291cmNlUmVzcG9uc2UmJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlUmVz
cG9uc2VBc3luYyhSZXNvdXJjZUhhbmRsZSosIFJlc291cmNlUmVzcG9uc2UmJiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmKSBvdmVycmlkZTsKICAgICB2b2lkIHdpbGxTZW5kUmVxdWVzdEFz
eW5jKFJlc291cmNlSGFuZGxlKiwgUmVzb3VyY2VSZXF1ZXN0JiYsIFJlc291cmNlUmVzcG9uc2Um
JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZXNvdXJjZVJlcXVlc3QmJik+JiYpIG92ZXJyaWRl
OwogICAgIHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwg
dW5zaWduZWQsIGludCBlbmNvZGVkRGF0YUxlbmd0aCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRS
ZWNlaXZlQnVmZmVyKFJlc291cmNlSGFuZGxlKiwgUmVmPFNoYXJlZEJ1ZmZlcj4mJiwgaW50IGVu
Y29kZWREYXRhTGVuZ3RoKSBvdmVycmlkZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9h
cHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwCShyZXZpc2lv
biAyMjczNTUpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25D
YWNoZUdyb3VwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDg5LDE0ICs0ODksMTQgQEAgUmVmUHRy
PFJlc291cmNlSGFuZGxlPiBBcHBsaWNhdGlvbkNhY2hlRwogICAgIHJldHVybiBoYW5kbGU7CiB9
CiAKLXZvaWQgQXBwbGljYXRpb25DYWNoZUdyb3VwOjpkaWRSZWNlaXZlUmVzcG9uc2VBc3luYyhS
ZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBSZXNvdXJjZVJlc3BvbnNlJiYgcmVzcG9uc2UpCit2b2lk
IEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6ZGlkUmVjZWl2ZVJlc3BvbnNlQXN5bmMoUmVzb3VyY2VI
YW5kbGUqIGhhbmRsZSwgUmVzb3VyY2VSZXNwb25zZSYmIHJlc3BvbnNlLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKG1fZnJhbWUp
OwogICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZVJlc291cmNlUmVzcG9u
c2UoKm1fZnJhbWUsIG1fY3VycmVudFJlc291cmNlSWRlbnRpZmllciwgbV9mcmFtZS0+bG9hZGVy
KCkuZG9jdW1lbnRMb2FkZXIoKSwgcmVzcG9uc2UsIG51bGxwdHIpOwogCiAgICAgaWYgKGhhbmRs
ZSA9PSBtX21hbmlmZXN0SGFuZGxlKSB7CiAgICAgICAgIGRpZFJlY2VpdmVNYW5pZmVzdFJlc3Bv
bnNlKHJlc3BvbnNlKTsKLSAgICAgICAgaGFuZGxlLT5jb250aW51ZURpZFJlY2VpdmVSZXNwb25z
ZSgpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCkBAIC01MjMsNyArNTIzLDcgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmRpZFJl
Y2VpdmVSZQogICAgICAgICAgICAgbV9jdXJyZW50SGFuZGxlID0gbnVsbHB0cjsKICAgICAgICAg
ICAgIC8vIExvYWQgdGhlIG5leHQgcmVzb3VyY2UsIGlmIGFueS4KICAgICAgICAgICAgIHN0YXJ0
TG9hZGluZ0VudHJ5KCk7Ci0gICAgICAgICAgICBoYW5kbGUtPmNvbnRpbnVlRGlkUmVjZWl2ZVJl
c3BvbnNlKCk7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIC8vIFRoZSBzZXJ2ZXIgY291bGQgcmV0dXJuIDMw
NCBmb3IgYW4gdW5jb25kaXRpb25hbCByZXF1ZXN0IC0gaW4gdGhpcyBjYXNlLCB3ZSBoYW5kbGUg
dGhlIHJlc3BvbnNlIGFzIGEgbm9ybWFsIGVycm9yLgpAQCAtNTU1LDEyICs1NTUsMTIgQEAgdm9p
ZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmRpZFJlY2VpdmVSZQogICAgICAgICAgICAgLy8gTG9h
ZCB0aGUgbmV4dCByZXNvdXJjZSwgaWYgYW55LgogICAgICAgICAgICAgc3RhcnRMb2FkaW5nRW50
cnkoKTsKICAgICAgICAgfQotICAgICAgICBoYW5kbGUtPmNvbnRpbnVlRGlkUmVjZWl2ZVJlc3Bv
bnNlKCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAgICAgCiAgICAgbV9jdXJyZW50UmVzb3VyY2UgPSBBcHBsaWNhdGlvbkNhY2hlUmVzb3Vy
Y2U6OmNyZWF0ZSh1cmwsIHJlc3BvbnNlLCB0eXBlKTsKLSAgICBoYW5kbGUtPmNvbnRpbnVlRGlk
UmVjZWl2ZVJlc3BvbnNlKCk7CisgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKIH0KIAogdm9pZCBB
cHBsaWNhdGlvbkNhY2hlR3JvdXA6OndpbGxTZW5kUmVxdWVzdEFzeW5jKFJlc291cmNlSGFuZGxl
KiwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgUmVzb3VyY2VSZXNwb25zZSYmLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFJlc291cmNlUmVxdWVzdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3Jv
dXAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGlj
YXRpb25DYWNoZUdyb3VwLmgJKHJldmlzaW9uIDIyNzM1NSkKKysrIFNvdXJjZS9XZWJDb3JlL2xv
YWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuaAkod29ya2luZyBjb3B5KQpAQCAt
MTA5LDcgKzEwOSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3Rv
cmFnZShSZXNvdXJjZUhhbmRsZSopIG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIC8v
IFJlc291cmNlSGFuZGxlQ2xpZW50Ci0gICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2VBc3luYyhS
ZXNvdXJjZUhhbmRsZSosIFJlc291cmNlUmVzcG9uc2UmJikgZmluYWw7CisgICAgdm9pZCBkaWRS
ZWNlaXZlUmVzcG9uc2VBc3luYyhSZXNvdXJjZUhhbmRsZSosIFJlc291cmNlUmVzcG9uc2UmJiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBmaW5hbDsKICAgICB2b2lkIHdpbGxTZW5kUmVx
dWVzdEFzeW5jKFJlc291cmNlSGFuZGxlKiwgUmVzb3VyY2VSZXF1ZXN0JiYsIFJlc291cmNlUmVz
cG9uc2UmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZXNvdXJjZVJlcXVlc3QmJik+JiYpIGZp
bmFsOwogI2lmIFVTRShQUk9URUNUSU9OX1NQQUNFX0FVVEhfQ0FMTEJBQ0spCiAgICAgdm9pZCBj
YW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlQXN5bmMoUmVzb3VyY2VIYW5kbGUq
LCBjb25zdCBQcm90ZWN0aW9uU3BhY2UmKSBmaW5hbDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvQmxvYlJlc291cmNlSGFuZGxlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5jcHAJKHJldmlz
aW9uIDIyNzM1NSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlc291
cmNlSGFuZGxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzUsNyArNzUsNyBAQCBjbGFzcyBCbG9i
UmVzb3VyY2VTeW5jaHJvbm91c0xvYWRlciA6IHB1CiBwdWJsaWM6CiAgICAgQmxvYlJlc291cmNl
U3luY2hyb25vdXNMb2FkZXIoUmVzb3VyY2VFcnJvciYsIFJlc291cmNlUmVzcG9uc2UmLCBWZWN0
b3I8Y2hhcj4mKTsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlQXN5bmMoUmVzb3VyY2VI
YW5kbGUqLCBSZXNvdXJjZVJlc3BvbnNlJiYpIGZpbmFsOworICAgIHZvaWQgZGlkUmVjZWl2ZVJl
c3BvbnNlQXN5bmMoUmVzb3VyY2VIYW5kbGUqLCBSZXNvdXJjZVJlc3BvbnNlJiYsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJikgZmluYWw7CiAgICAgdm9pZCBkaWRGYWlsKFJlc291cmNlSGFu
ZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpIGZpbmFsOwogICAgIHZvaWQgd2lsbFNlbmRSZXF1
ZXN0QXN5bmMoUmVzb3VyY2VIYW5kbGUqLCBSZXNvdXJjZVJlcXVlc3QmJiwgUmVzb3VyY2VSZXNw
b25zZSYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlc291cmNlUmVxdWVzdCYmKT4mJikgZmlu
YWw7CiAjaWYgVVNFKFBST1RFQ1RJT05fU1BBQ0VfQVVUSF9DQUxMQkFDSykKQEAgLTEwOSwxMiAr
MTA5LDEyIEBAIHZvaWQgQmxvYlJlc291cmNlU3luY2hyb25vdXNMb2FkZXI6OmNhbkEKIH0KICNl
bmRpZgogCi12b2lkIEJsb2JSZXNvdXJjZVN5bmNocm9ub3VzTG9hZGVyOjpkaWRSZWNlaXZlUmVz
cG9uc2VBc3luYyhSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBSZXNvdXJjZVJlc3BvbnNlJiYgcmVz
cG9uc2UpCit2b2lkIEJsb2JSZXNvdXJjZVN5bmNocm9ub3VzTG9hZGVyOjpkaWRSZWNlaXZlUmVz
cG9uc2VBc3luYyhSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBSZXNvdXJjZVJlc3BvbnNlJiYgcmVz
cG9uc2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsK
ICAgICAvLyBXZSBjYW5ub3QgaGFuZGxlIHRoZSBzaXplIHRoYXQgaXMgbW9yZSB0aGFuIG1heGlt
dW0gaW50ZWdlci4KICAgICBpZiAocmVzcG9uc2UuZXhwZWN0ZWRDb250ZW50TGVuZ3RoKCkgPiBJ
TlRfTUFYKSB7CiAgICAgICAgIG1fZXJyb3IgPSBSZXNvdXJjZUVycm9yKHdlYktpdEJsb2JSZXNv
dXJjZURvbWFpbiwgc3RhdGljX2Nhc3Q8aW50PihCbG9iUmVzb3VyY2VIYW5kbGU6OkVycm9yOjpO
b3RSZWFkYWJsZUVycm9yKSwgcmVzcG9uc2UudXJsKCksICJGaWxlIGlzIHRvbyBsYXJnZSIpOwot
ICAgICAgICBoYW5kbGUtPmNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlKCk7CisgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTEyMyw3ICsx
MjMsNyBAQCB2b2lkIEJsb2JSZXNvdXJjZVN5bmNocm9ub3VzTG9hZGVyOjpkaWRSCiAgICAgLy8g
UmVhZCBhbGwgdGhlIGRhdGEuCiAgICAgbV9kYXRhLnJlc2l6ZShzdGF0aWNfY2FzdDxzaXplX3Q+
KHJlc3BvbnNlLmV4cGVjdGVkQ29udGVudExlbmd0aCgpKSk7CiAgICAgc3RhdGljX2Nhc3Q8Qmxv
YlJlc291cmNlSGFuZGxlKj4oaGFuZGxlKS0+cmVhZFN5bmMobV9kYXRhLmRhdGEoKSwgc3RhdGlj
X2Nhc3Q8aW50PihtX2RhdGEuc2l6ZSgpKSk7Ci0gICAgaGFuZGxlLT5jb250aW51ZURpZFJlY2Vp
dmVSZXNwb25zZSgpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9CiAKIHZvaWQgQmxvYlJl
c291cmNlU3luY2hyb25vdXNMb2FkZXI6OmRpZEZhaWwoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBS
ZXNvdXJjZUVycm9yJiBlcnJvcikKQEAgLTE3NiwxMiArMTc2LDYgQEAgdm9pZCBCbG9iUmVzb3Vy
Y2VIYW5kbGU6OmNhbmNlbCgpCiAgICAgUmVzb3VyY2VIYW5kbGU6OmNhbmNlbCgpOwogfQogCi12
b2lkIEJsb2JSZXNvdXJjZUhhbmRsZTo6Y29udGludWVEaWRSZWNlaXZlUmVzcG9uc2UoKQotewot
ICAgIG1fYnVmZmVyLnJlc2l6ZShidWZmZXJTaXplKTsKLSAgICByZWFkQXN5bmMoKTsKLX0KLQog
dm9pZCBCbG9iUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KCkKIHsKICAgICBpZiAoIW1fYXN5bmMpIHsK
QEAgLTU4NCw3ICs1NzgsMTAgQEAgdm9pZCBCbG9iUmVzb3VyY2VIYW5kbGU6Om5vdGlmeVJlc3Bv
bnNlTwogICAgIC8vIGFzIGlmIHRoZSByZXNwb25zZSBoYWQgYSBDb250ZW50LURpc3Bvc2l0aW9u
IGhlYWRlciB3aXRoIHRoZSBmaWxlbmFtZSBwYXJhbWV0ZXIgc2V0IHRvIHRoZSBGaWxlJ3MgbmFt
ZSBhdHRyaWJ1dGUuCiAgICAgLy8gTm90YWJseSwgdGhpcyB3aWxsIGFmZmVjdCBhIG5hbWUgc3Vn
Z2VzdGVkIGluICJGaWxlIFNhdmUgQXMiLgogCi0gICAgY2xpZW50KCktPmRpZFJlY2VpdmVSZXNw
b25zZUFzeW5jKHRoaXMsIFdURk1vdmUocmVzcG9uc2UpKTsKKyAgICBjbGllbnQoKS0+ZGlkUmVj
ZWl2ZVJlc3BvbnNlQXN5bmModGhpcywgV1RGTW92ZShyZXNwb25zZSksIFt0aGlzLCBwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldIHsKKyAgICAgICAgbV9idWZmZXIucmVzaXplKGJ1ZmZl
clNpemUpOworICAgICAgICByZWFkQXN5bmMoKTsKKyAgICB9KTsKIH0KIAogdm9pZCBCbG9iUmVz
b3VyY2VIYW5kbGU6Om5vdGlmeVJlc3BvbnNlT25FcnJvcigpCkBAIC02MDcsNyArNjA0LDEwIEBA
IHZvaWQgQmxvYlJlc291cmNlSGFuZGxlOjpub3RpZnlSZXNwb25zZU8KICAgICAgICAgYnJlYWs7
CiAgICAgfQogCi0gICAgY2xpZW50KCktPmRpZFJlY2VpdmVSZXNwb25zZUFzeW5jKHRoaXMsIFdU
Rk1vdmUocmVzcG9uc2UpKTsKKyAgICBjbGllbnQoKS0+ZGlkUmVjZWl2ZVJlc3BvbnNlQXN5bmMo
dGhpcywgV1RGTW92ZShyZXNwb25zZSksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigq
dGhpcyldIHsKKyAgICAgICAgbV9idWZmZXIucmVzaXplKGJ1ZmZlclNpemUpOworICAgICAgICBy
ZWFkQXN5bmMoKTsKKyAgICB9KTsKIH0KIAogdm9pZCBCbG9iUmVzb3VyY2VIYW5kbGU6Om5vdGlm
eVJlY2VpdmVEYXRhKGNvbnN0IGNoYXIqIGRhdGEsIGludCBieXRlc1JlYWQpCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlc291cmNlSGFuZGxl
LmgJKHJldmlzaW9uIDIyNzM1NSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
QmxvYlJlc291cmNlSGFuZGxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTc1LDcgKzc1LDYgQEAgcHJp
dmF0ZToKIAogICAgIC8vIFJlc291cmNlSGFuZGxlIG1ldGhvZHMuCiAgICAgdm9pZCBjYW5jZWwo
KSBvdmVycmlkZTsKLSAgICB2b2lkIGNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlKCkgb3ZlcnJp
ZGU7CiAKICAgICB2b2lkIGRvU3RhcnQoKTsKICAgICB2b2lkIGdldFNpemVGb3JOZXh0KCk7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1BpbmdIYW5kbGUuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1BpbmdIYW5kbGUuaAkocmV2
aXNpb24gMjI3MzU1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9QaW5nSGFu
ZGxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTY3LDkgKzY3LDkgQEAgcHJpdmF0ZToKICAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoeyB9KTsKICAgICAgICAgcGluZ0xvYWRDb21wbGV0ZShSZXNvdXJj
ZUVycm9yIHsgU3RyaW5nKCksIDAsIG1fY3VycmVudFJlcXVlc3QudXJsKCksIEFTQ0lJTGl0ZXJh
bCgiTm90IGFsbG93ZWQgdG8gZm9sbG93IHJlZGlyZWN0cyIpLCBSZXNvdXJjZUVycm9yOjpUeXBl
OjpBY2Nlc3NDb250cm9sIH0pOwogICAgIH0KLSAgICB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZUFz
eW5jKFJlc291cmNlSGFuZGxlKiwgUmVzb3VyY2VSZXNwb25zZSYmIHJlc3BvbnNlKSBmaW5hbAor
ICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlQXN5bmMoUmVzb3VyY2VIYW5kbGUqLCBSZXNvdXJj
ZVJlc3BvbnNlJiYgcmVzcG9uc2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikgZmluYWwKICAgICB7Ci0gICAgICAgIG1faGFuZGxlLT5jb250aW51ZURpZFJl
Y2VpdmVSZXNwb25zZSgpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogICAgICAgICBw
aW5nTG9hZENvbXBsZXRlKHsgfSwgcmVzcG9uc2UpOwogICAgIH0KICAgICB2b2lkIGRpZFJlY2Vp
dmVCdWZmZXIoUmVzb3VyY2VIYW5kbGUqLCBSZWY8U2hhcmVkQnVmZmVyPiYmLCBpbnQpIGZpbmFs
IHsgcGluZ0xvYWRDb21wbGV0ZSgpOyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcAkocmV2aXNpb24gMjI3MzU1KQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZUNsaWVu
dC5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSA8YWxnb3JpdGhtPgorI2luY2x1ZGUg
PHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAj
aW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWlj
U3RyaW5nSGFzaC5oPgpAQCAtMTUwLDcgKzE1MSw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmNs
ZWFyQ2xpZW50KCkKICAgICBkLT5tX2NsaWVudCA9IG51bGxwdHI7CiB9CiAKLXZvaWQgUmVzb3Vy
Y2VIYW5kbGU6OmRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZVJlc3BvbnNlJiYgcmVzcG9uc2Up
Cit2b2lkIFJlc291cmNlSGFuZGxlOjpkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VSZXNwb25z
ZSYmIHJlc3BvbnNlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCiB7CiAgICAgaWYgKHJlc3BvbnNlLmlzSFRUUDA5KCkpIHsKICAgICAgICAgYXV0byB1cmwg
PSByZXNwb25zZS51cmwoKTsKQEAgLTE1OSwxMSArMTYwLDExIEBAIHZvaWQgUmVzb3VyY2VIYW5k
bGU6OmRpZFJlY2VpdmVSZXNwb25zZSgKICAgICAgICAgICAgIGNhbmNlbCgpOwogICAgICAgICAg
ICAgU3RyaW5nIG1lc3NhZ2UgPSAiQ2FuY2VsbGVkIGxvYWQgZnJvbSAnIiArIHVybC5zdHJpbmdD
ZW50ZXJFbGxpcHNpemVkVG9MZW5ndGgoKSArICInIGJlY2F1c2UgaXQgaXMgdXNpbmcgSFRUUC8w
LjkuIjsKICAgICAgICAgICAgIGQtPm1fY2xpZW50LT5kaWRGYWlsKHRoaXMsIHsgU3RyaW5nKCks
IDAsIHVybCwgbWVzc2FnZSB9KTsKLSAgICAgICAgICAgIGNvbnRpbnVlRGlkUmVjZWl2ZVJlc3Bv
bnNlKCk7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9CiAgICAgfQotICAgIGNsaWVudCgpLT5kaWRSZWNlaXZlUmVzcG9uc2VB
c3luYyh0aGlzLCBXVEZNb3ZlKHJlc3BvbnNlKSk7CisgICAgY2xpZW50KCktPmRpZFJlY2VpdmVS
ZXNwb25zZUFzeW5jKHRoaXMsIFdURk1vdmUocmVzcG9uc2UpLCBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSk7CiB9CiAKICNpZiAhVVNFKFNPVVApICYmICFVU0UoQ1VSTCkKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgJKHJldmlz
aW9uIDIyNzM1NSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VI
YW5kbGUuaAkod29ya2luZyBjb3B5KQpAQCAtMTA3LDcgKzEwNyw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIHdpbGxTZW5kUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmJiwgUmVzb3VyY2VSZXNwb25zZSYm
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlc291cmNlUmVxdWVzdCYmKT4mJik7CiAjZW5kaWYK
IAotICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlUmVzcG9uc2UmJik7CisgICAg
dm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VSZXNwb25zZSYmLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYpOwogCiAgICAgYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSgp
OwogICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKGNvbnN0IEF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlJik7CkBAIC0xOTMsOSArMTkzLDYgQEAgcHVibGljOgogICAgIFdF
QkNPUkVfRVhQT1JUIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQoKSBjb25zdDsKICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIGNsZWFyQ2xpZW50KCk7CiAKLSAgICAvLyBDYWxsZWQgaW4gcmVz
cG9uc2UgdG8gUmVzb3VyY2VIYW5kbGVDbGllbnQ6OmRpZFJlY2VpdmVSZXNwb25zZUFzeW5jKCku
Ci0gICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIGNvbnRpbnVlRGlkUmVjZWl2ZVJlc3Bv
bnNlKCk7Ci0KICNpZiBVU0UoUFJPVEVDVElPTl9TUEFDRV9BVVRIX0NBTExCQUNLKQogICAgIC8v
IENhbGxlZCBpbiByZXNwb25zZSB0byBSZXNvdXJjZUhhbmRsZUNsaWVudDo6Y2FuQXV0aGVudGlj
YXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZUFzeW5jKCkuCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBjb250aW51ZUNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2UoYm9vbCk7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlQ2xpZW50
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJj
ZUhhbmRsZUNsaWVudC5oCShyZXZpc2lvbiAyMjczNTUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTc3
LDggKzc3LDcgQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIHdp
bGxTZW5kUmVxdWVzdEFzeW5jKFJlc291cmNlSGFuZGxlKiwgUmVzb3VyY2VSZXF1ZXN0JiYsIFJl
c291cmNlUmVzcG9uc2UmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZXNvdXJjZVJlcXVlc3Qm
Jik+JiYpID0gMDsKIAotICAgIC8vIENsaWVudCB3aWxsIGNhbGwgUmVzb3VyY2VIYW5kbGU6OmNv
bnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlKCkgd2hlbiByZWFkeS4KLSAgICBXRUJDT1JFX0VYUE9S
VCB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlQXN5bmMoUmVzb3VyY2VIYW5kbGUqLCBS
ZXNvdXJjZVJlc3BvbnNlJiYpID0gMDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQg
ZGlkUmVjZWl2ZVJlc3BvbnNlQXN5bmMoUmVzb3VyY2VIYW5kbGUqLCBSZXNvdXJjZVJlc3BvbnNl
JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgPSAwOwogCiAjaWYgVVNFKFBST1RFQ1RJ
T05fU1BBQ0VfQVVUSF9DQUxMQkFDSykKICAgICAvLyBDbGllbnQgd2lsbCBwYXNzIGFuIHVwZGF0
ZWQgcmVxdWVzdCB1c2luZyBSZXNvdXJjZUhhbmRsZTo6Y29udGludWVDYW5BdXRoZW50aWNhdGVB
Z2FpbnN0UHJvdGVjdGlvblNwYWNlKCkgd2hlbiByZWFkeS4KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvU3luY2hyb25vdXNMb2FkZXJDbGllbnQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU3luY2hyb25vdXNMb2FkZXJDbGll
bnQuY3BwCShyZXZpc2lvbiAyMjczNTUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL1N5bmNocm9ub3VzTG9hZGVyQ2xpZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjIsMTAg
KzYyLDEwIEBAIHZvaWQgU3luY2hyb25vdXNMb2FkZXJDbGllbnQ6OmNhbkF1dGhlbnQKIH0KICNl
bmRpZgogCi12b2lkIFN5bmNocm9ub3VzTG9hZGVyQ2xpZW50OjpkaWRSZWNlaXZlUmVzcG9uc2VB
c3luYyhSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBSZXNvdXJjZVJlc3BvbnNlJiYgcmVzcG9uc2Up
Cit2b2lkIFN5bmNocm9ub3VzTG9hZGVyQ2xpZW50OjpkaWRSZWNlaXZlUmVzcG9uc2VBc3luYyhS
ZXNvdXJjZUhhbmRsZSosIFJlc291cmNlUmVzcG9uc2UmJiByZXNwb25zZSwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIG1fcmVzcG9uc2UgPSBX
VEZNb3ZlKHJlc3BvbnNlKTsKLSAgICBoYW5kbGUtPmNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNl
KCk7CisgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKIH0KIAogdm9pZCBTeW5jaHJvbm91c0xvYWRl
ckNsaWVudDo6ZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiBkYXRh
LCB1bnNpZ25lZCBsZW5ndGgsIGludCAvKmVuY29kZWREYXRhTGVuZ3RoKi8pCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1N5bmNocm9ub3VzTG9hZGVyQ2xpZW50LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9TeW5jaHJvbm91c0xv
YWRlckNsaWVudC5oCShyZXZpc2lvbiAyMjczNTUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL1N5bmNocm9ub3VzTG9hZGVyQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ5
LDcgKzQ5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHdpbGxTZW5kUmVxdWVzdEFzeW5jKFJlc291
cmNlSGFuZGxlKiwgUmVzb3VyY2VSZXF1ZXN0JiYsIFJlc291cmNlUmVzcG9uc2UmJiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChSZXNvdXJjZVJlcXVlc3QmJik+JiYpIG92ZXJyaWRlOwogICAgIGJv
b2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UoUmVzb3VyY2VIYW5kbGUqKSBvdmVycmlkZTsK
ICAgICB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShSZXNvdXJjZUhhbmRs
ZSosIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBk
aWRSZWNlaXZlUmVzcG9uc2VBc3luYyhSZXNvdXJjZUhhbmRsZSosIFJlc291cmNlUmVzcG9uc2Um
Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2VBc3luYyhSZXNvdXJjZUhh
bmRsZSosIFJlc291cmNlUmVzcG9uc2UmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBv
dmVycmlkZTsKICAgICB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3Qg
Y2hhciosIHVuc2lnbmVkLCBpbnQgLyplbmNvZGVkRGF0YUxlbmd0aCovKSBvdmVycmlkZTsKICAg
ICB2b2lkIGRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqKSBvdmVycmlkZTsKICAgICB2
b2lkIGRpZEZhaWwoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZUVycm9yJikgb3ZlcnJp
ZGU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFu
ZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWUuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVD
RlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZS5jcHAJKHJldmlzaW9uIDIy
NzM1NSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5k
bGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTE4MCwzMCArMTgwLDMwIEBAIENGVVJMUmVxdWVzdFJlZiBSZXNvdXJjZUhhbmRs
ZUNGVVJMQ29ubmUKIHZvaWQgUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdp
dGhPcGVyYXRpb25RdWV1ZTo6ZGlkUmVjZWl2ZVJlc3BvbnNlKENGVVJMQ29ubmVjdGlvblJlZiBj
b25uZWN0aW9uLCBDRlVSTFJlc3BvbnNlUmVmIGNmUmVzcG9uc2UpCiB7CiAgICAgYXV0byBwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyk7Ci0gICAgYXV0byB3b3JrID0gW3Byb3RlY3RlZFRo
aXMgPSBtYWtlUmVmKCp0aGlzKSwgY2ZSZXNwb25zZSA9IFJldGFpblB0cjxDRlVSTFJlc3BvbnNl
UmVmPihjZlJlc3BvbnNlKSwgY29ubmVjdGlvbiA9IFJldGFpblB0cjxDRlVSTENvbm5lY3Rpb25S
ZWY+KGNvbm5lY3Rpb24pXSAoKSB7Ci0gICAgICAgIGF1dG8mIGhhbmRsZSA9IHByb3RlY3RlZFRo
aXMtPm1faGFuZGxlOwotICAgICAgICAKLSAgICAgICAgaWYgKCFwcm90ZWN0ZWRUaGlzLT5oYXNI
YW5kbGUoKSB8fCAhaGFuZGxlLT5jbGllbnQoKSB8fCAhaGFuZGxlLT5jb25uZWN0aW9uKCkpIHsK
LSAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPmNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlKCk7
CisgICAgYXV0byB3b3JrID0gW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwg
Y2ZSZXNwb25zZSA9IFJldGFpblB0cjxDRlVSTFJlc3BvbnNlUmVmPihjZlJlc3BvbnNlKSwgY29u
bmVjdGlvbiA9IFJldGFpblB0cjxDRlVSTENvbm5lY3Rpb25SZWY+KGNvbm5lY3Rpb24pXSAoKSB7
CisgICAgICAgIGlmICghaGFzSGFuZGxlKCkgfHwgIW1faGFuZGxlLT5jbGllbnQoKSB8fCAhbV9o
YW5kbGUtPmNvbm5lY3Rpb24oKSkgeworICAgICAgICAgICAgbV9zZW1hcGhvcmUuc2lnbmFsKCk7
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBMT0coTmV0d29yaywg
IkNGTmV0IC0gUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRp
b25RdWV1ZTo6ZGlkUmVjZWl2ZVJlc3BvbnNlKGhhbmRsZT0lcCkgKCVzKSIsIGhhbmRsZSwgaGFu
ZGxlLT5maXJzdFJlcXVlc3QoKS51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICAg
ICAgTE9HKE5ldHdvcmssICJDRk5ldCAtIFJlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVs
ZWdhdGVXaXRoT3BlcmF0aW9uUXVldWU6OmRpZFJlY2VpdmVSZXNwb25zZShoYW5kbGU9JXApICgl
cykiLCBtX2hhbmRsZSwgbV9oYW5kbGUtPmZpcnN0UmVxdWVzdCgpLnVybCgpLnN0cmluZygpLnV0
ZjgoKS5kYXRhKCkpOwogCiAgICAgICAgIC8vIEF2b2lkIE1JTUUgdHlwZSBzbmlmZmluZyBpZiB0
aGUgcmVzcG9uc2UgY29tZXMgYmFjayBhcyAzMDQgTm90IE1vZGlmaWVkLgogICAgICAgICBhdXRv
IG1zZyA9IENGVVJMUmVzcG9uc2VHZXRIVFRQUmVzcG9uc2UoY2ZSZXNwb25zZS5nZXQoKSk7CiAg
ICAgICAgIGludCBzdGF0dXNDb2RlID0gbXNnID8gQ0ZIVFRQTWVzc2FnZUdldFJlc3BvbnNlU3Rh
dHVzQ29kZShtc2cpIDogMDsKIAogICAgICAgICBpZiAoc3RhdHVzQ29kZSAhPSAzMDQpIHsKLSAg
ICAgICAgICAgIGJvb2wgaXNNYWluUmVzb3VyY2VMb2FkID0gaGFuZGxlLT5maXJzdFJlcXVlc3Qo
KS5yZXF1ZXN0ZXIoKSA9PSBSZXNvdXJjZVJlcXVlc3Q6OlJlcXVlc3Rlcjo6TWFpbjsKKyAgICAg
ICAgICAgIGJvb2wgaXNNYWluUmVzb3VyY2VMb2FkID0gbV9oYW5kbGUtPmZpcnN0UmVxdWVzdCgp
LnJlcXVlc3RlcigpID09IFJlc291cmNlUmVxdWVzdDo6UmVxdWVzdGVyOjpNYWluOwogICAgICAg
ICB9CiAKLSAgICAgICAgaWYgKF9DRlVSTFJlcXVlc3RDb3B5UHJvdG9jb2xQcm9wZXJ0eUZvcktl
eShoYW5kbGUtPmZpcnN0UmVxdWVzdCgpLmNmVVJMUmVxdWVzdChEb05vdFVwZGF0ZUhUVFBCb2R5
KSwgQ0ZTVFIoIkZvcmNlSFRNTE1JTUVUeXBlIikpKQorICAgICAgICBpZiAoX0NGVVJMUmVxdWVz
dENvcHlQcm90b2NvbFByb3BlcnR5Rm9yS2V5KG1faGFuZGxlLT5maXJzdFJlcXVlc3QoKS5jZlVS
TFJlcXVlc3QoRG9Ob3RVcGRhdGVIVFRQQm9keSksIENGU1RSKCJGb3JjZUhUTUxNSU1FVHlwZSIp
KSkKICAgICAgICAgICAgIENGVVJMUmVzcG9uc2VTZXRNSU1FVHlwZShjZlJlc3BvbnNlLmdldCgp
LCBDRlNUUigidGV4dC9odG1sIikpOwogCiAgICAgICAgIFJlc291cmNlUmVzcG9uc2UgcmVzb3Vy
Y2VSZXNwb25zZShjZlJlc3BvbnNlLmdldCgpKTsKICAgICAgICAgcmVzb3VyY2VSZXNwb25zZS5z
ZXRTb3VyY2UoUmVzb3VyY2VSZXNwb25zZTo6U291cmNlOjpOZXR3b3JrKTsKLSAgICAgICAgaGFu
ZGxlLT5kaWRSZWNlaXZlUmVzcG9uc2UoV1RGTW92ZShyZXNvdXJjZVJlc3BvbnNlKSk7CisgICAg
ICAgIG1faGFuZGxlLT5kaWRSZWNlaXZlUmVzcG9uc2UoV1RGTW92ZShyZXNvdXJjZVJlc3BvbnNl
KSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpXSB7CisgICAg
ICAgICAgICBtX3NlbWFwaG9yZS5zaWduYWwoKTsKKyAgICAgICAgfSk7CiAgICAgfTsKIAogICAg
IGlmIChtX21lc3NhZ2VRdWV1ZSkKQEAgLTM4OSwxMSArMzg5LDYgQEAgdm9pZCBSZXNvdXJjZUhh
bmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYQogfQogI2VuZGlmIC8vIFVTRShQUk9URUNUSU9OX1NQ
QUNFX0FVVEhfQ0FMTEJBQ0spCiAKLXZvaWQgUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25E
ZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZTo6Y29udGludWVEaWRSZWNlaXZlUmVzcG9uc2UoKQot
ewotICAgIG1fc2VtYXBob3JlLnNpZ25hbCgpOwotfQotCiB2b2lkIFJlc291cmNlSGFuZGxlQ0ZV
UkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWU6OmNvbnRpbnVlV2lsbENhY2hl
UmVzcG9uc2UoQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZiByZXNwb25zZSkKIHsKICAgICBtX2NhY2hl
ZFJlc3BvbnNlUmVzdWx0ID0gcmVzcG9uc2U7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcAko
cmV2aXNpb24gMjI3MzU1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJs
L1Jlc291cmNlSGFuZGxlQ3VybC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxNCw4ICsyMTQsMTIg
QEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6cmVjZWl2ZWRSZXF1ZXN0VG9DbwogCiAgICAgY2xlYXJB
dXRoZW50aWNhdGlvbigpOwogCi0gICAgYXV0byBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhp
cyk7Ci0gICAgZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlUmVzcG9uc2UoZC0+bV9yZXNwb25z
ZSkpOworICAgIGRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZVJlc3BvbnNlKGQtPm1fcmVzcG9u
c2UpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSB7CisgICAgICAgIEFT
U0VSVChpc01haW5UaHJlYWQoKSk7CisKKyAgICAgICAgaWYgKGQtPm1fZGVsZWdhdGUpCisgICAg
ICAgICAgICBkLT5tX2RlbGVnYXRlLT5jb250aW51ZURpZFJlY2VpdmVSZXNwb25zZSgpOworICAg
IH0pOwogfQogCiB2b2lkIFJlc291cmNlSGFuZGxlOjpyZWNlaXZlZENhbmNlbGxhdGlvbihjb25z
dCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgY2hhbGxlbmdlKQpAQCAtMjU5LDE0ICsyNjMsNiBA
QCB2b2lkIFJlc291cmNlSGFuZGxlOjpwbGF0Zm9ybUxvYWRSZXNvdXJjCiAgICAgcmVzcG9uc2Ug
PSBjbGllbnQucmVzcG9uc2UoKTsKIH0KIAotdm9pZCBSZXNvdXJjZUhhbmRsZTo6Y29udGludWVE
aWRSZWNlaXZlUmVzcG9uc2UoKQotewotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0KLSAg
ICBpZiAoZC0+bV9kZWxlZ2F0ZSkKLSAgICAgICAgZC0+bV9kZWxlZ2F0ZS0+Y29udGludWVEaWRS
ZWNlaXZlUmVzcG9uc2UoKTsKLX0KLQogdm9pZCBSZXNvdXJjZUhhbmRsZTo6cGxhdGZvcm1Db250
aW51ZVN5bmNocm9ub3VzRGlkUmVjZWl2ZVJlc3BvbnNlKCkKIHsKICAgICBBU1NFUlQoaXNNYWlu
VGhyZWFkKCkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jl
c291cmNlSGFuZGxlQ3VybERlbGVnYXRlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsRGVsZWdhdGUuY3BwCShy
ZXZpc2lvbiAyMjczNTUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwv
UmVzb3VyY2VIYW5kbGVDdXJsRGVsZWdhdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMjEsNyAr
MjIxLDkgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZUN1cmxEZWxlZ2F0ZTo6Y3VybERpZAogICAgICAg
ICBDdXJsQ2FjaGVNYW5hZ2VyOjpzaW5nbGV0b24oKS5kaWRSZWNlaXZlUmVzcG9uc2UoKm1faGFu
ZGxlLCByZXNwb25zZSgpKTsKIAogICAgICAgICBhdXRvIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVm
KCptX2hhbmRsZSk7Ci0gICAgICAgIG1faGFuZGxlLT5kaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3Vy
Y2VSZXNwb25zZShyZXNwb25zZSgpKSk7CisgICAgICAgIG1faGFuZGxlLT5kaWRSZWNlaXZlUmVz
cG9uc2UoUmVzb3VyY2VSZXNwb25zZShyZXNwb25zZSgpKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMg
PSBtYWtlUmVmKCp0aGlzKV0geworICAgICAgICAgICAgY29udGludWVBZnRlckRpZFJlY2VpdmVS
ZXNwb25zZSgpOworICAgICAgICB9KTsKICAgICB9CiB9CiAKQEAgLTI2MywxMyArMjY1LDYgQEAg
dm9pZCBSZXNvdXJjZUhhbmRsZUN1cmxEZWxlZ2F0ZTo6Y3VybERpZAogICAgIG1faGFuZGxlLT5j
bGllbnQoKS0+ZGlkRmFpbChtX2hhbmRsZSwgcmVzb3VyY2VFcnJvcik7CiB9CiAKLXZvaWQgUmVz
b3VyY2VIYW5kbGVDdXJsRGVsZWdhdGU6OmNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlKCkKLXsK
LSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotCi0gICAgY29udGludWVBZnRlckRpZFJlY2Vp
dmVSZXNwb25zZSgpOwotfQotCiB2b2lkIFJlc291cmNlSGFuZGxlQ3VybERlbGVnYXRlOjpwbGF0
Zm9ybUNvbnRpbnVlU3luY2hyb25vdXNEaWRSZWNlaXZlUmVzcG9uc2UoKQogewogICAgIEFTU0VS
VChpc01haW5UaHJlYWQoKSk7CkBAIC00MjYsNyArNDIxLDkgQEAgdm9pZCBSZXNvdXJjZUhhbmRs
ZUN1cmxEZWxlZ2F0ZTo6aGFuZGxlRAogCiAgICAgaWYgKGJhc2U2NCkgewogICAgICAgICBkYXRh
ID0gZGVjb2RlVVJMRXNjYXBlU2VxdWVuY2VzKGRhdGEpOwotICAgICAgICBtX2hhbmRsZS0+ZGlk
UmVjZWl2ZVJlc3BvbnNlKFdURk1vdmUocmVzcG9uc2UpKTsKKyAgICAgICAgbV9oYW5kbGUtPmRp
ZFJlY2VpdmVSZXNwb25zZShXVEZNb3ZlKHJlc3BvbnNlKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMg
PSBtYWtlUmVmKCp0aGlzKV0geworICAgICAgICAgICAgY29udGludWVBZnRlckRpZFJlY2VpdmVS
ZXNwb25zZSgpOworICAgICAgICB9KTsKIAogICAgICAgICAvLyBkaWRSZWNlaXZlUmVzcG9uc2Ug
bWlnaHQgY2F1c2UgdGhlIGNsaWVudCB0byBiZSBkZWxldGVkLgogICAgICAgICBpZiAobV9oYW5k
bGUtPmNsaWVudCgpKSB7CkBAIC00MzcsNyArNDM0LDkgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZUN1
cmxEZWxlZ2F0ZTo6aGFuZGxlRAogICAgIH0gZWxzZSB7CiAgICAgICAgIFRleHRFbmNvZGluZyBl
bmNvZGluZyhjaGFyc2V0KTsKICAgICAgICAgZGF0YSA9IGRlY29kZVVSTEVzY2FwZVNlcXVlbmNl
cyhkYXRhLCBlbmNvZGluZyk7Ci0gICAgICAgIG1faGFuZGxlLT5kaWRSZWNlaXZlUmVzcG9uc2Uo
V1RGTW92ZShyZXNwb25zZSkpOworICAgICAgICBtX2hhbmRsZS0+ZGlkUmVjZWl2ZVJlc3BvbnNl
KFdURk1vdmUocmVzcG9uc2UpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMp
XSB7CisgICAgICAgICAgICBjb250aW51ZUFmdGVyRGlkUmVjZWl2ZVJlc3BvbnNlKCk7CisgICAg
ICAgIH0pOwogCiAgICAgICAgIC8vIGRpZFJlY2VpdmVSZXNwb25zZSBtaWdodCBjYXVzZSB0aGUg
Y2xpZW50IHRvIGJlIGRlbGV0ZWQuCiAgICAgICAgIGlmIChtX2hhbmRsZS0+Y2xpZW50KCkpIHsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxl
TWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFj
L1Jlc291cmNlSGFuZGxlTWFjLm1tCShyZXZpc2lvbiAyMjczNTUpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQkod29ya2luZyBjb3B5
KQpAQCAtNDcxLDExICs0NzEsNiBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjp3aWxsU2VuZFJlcXVl
c3QoUmVzCiAgICAgfSk7CiB9CiAKLXZvaWQgUmVzb3VyY2VIYW5kbGU6OmNvbnRpbnVlRGlkUmVj
ZWl2ZVJlc3BvbnNlKCkKLXsKLSAgICBbZGVsZWdhdGUoKSBjb250aW51ZURpZFJlY2VpdmVSZXNw
b25zZV07Ci19Ci0KIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZShjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgY2hhbGxlbmdlKQogewog
ICAgIEFTU0VSVCghZC0+bV9jdXJyZW50TWFjQ2hhbGxlbmdlKTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9u
UXVldWVEZWxlZ2F0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5o
CShyZXZpc2lvbiAyMjczNTUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21h
Yy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNDcsNyArNDcsNiBAQCBAaW50ZXJmYWNlIFdlYkNvcmVSZXNvdXJjZUhhbmRs
ZUFzT3BlcmF0CiAKIC0gKHZvaWQpZGV0YWNoSGFuZGxlOwogLSAoaWQpaW5pdFdpdGhIYW5kbGU6
KFdlYkNvcmU6OlJlc291cmNlSGFuZGxlKiloYW5kbGUgbWVzc2FnZVF1ZXVlOihNZXNzYWdlUXVl
dWU8RnVuY3Rpb248dm9pZCgpPj4qKW1lc3NhZ2VRdWV1ZTsKLS0gKHZvaWQpY29udGludWVEaWRS
ZWNlaXZlUmVzcG9uc2U7CiAtICh2b2lkKWNvbnRpbnVlQ2FuQXV0aGVudGljYXRlQWdhaW5zdFBy
b3RlY3Rpb25TcGFjZTooQk9PTCljYW5BdXRoZW50aWNhdGU7CiAtICh2b2lkKWNvbnRpbnVlV2ls
bENhY2hlUmVzcG9uc2U6KE5TQ2FjaGVkVVJMUmVzcG9uc2UgKilyZXNwb25zZTsKIEBlbmQKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhh
bmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlv
blF1ZXVlRGVsZWdhdGUubW0JKHJldmlzaW9uIDIyNzM1NSkKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVE
ZWxlZ2F0ZS5tbQkod29ya2luZyBjb3B5KQpAQCAtMTA4LDExICsxMDgsNiBAQCAtICh2b2lkKWRl
YWxsb2MKICAgICBbc3VwZXIgZGVhbGxvY107CiB9CiAKLS0gKHZvaWQpY29udGludWVEaWRSZWNl
aXZlUmVzcG9uc2UKLXsKLSAgICBkaXNwYXRjaF9zZW1hcGhvcmVfc2lnbmFsKG1fc2VtYXBob3Jl
KTsKLX0KLQogLSAodm9pZCljb250aW51ZUNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9u
U3BhY2U6KEJPT0wpY2FuQXV0aGVudGljYXRlCiB7CiAgICAgbV9ib29sUmVzdWx0ID0gY2FuQXV0
aGVudGljYXRlOwpAQCAtMjMwLDcgKzIyNSw5IEBAIC0gKHZvaWQpY29ubmVjdGlvbjooTlNVUkxD
b25uZWN0aW9uICopY28KICAgICAgICAgcmVzb3VyY2VSZXNwb25zZS5zZXRTb3VyY2UoUmVzb3Vy
Y2VSZXNwb25zZTo6U291cmNlOjpOZXR3b3JrKTsKICAgICAgICAgUmVzb3VyY2VIYW5kbGU6Omdl
dENvbm5lY3Rpb25UaW1pbmdEYXRhKGNvbm5lY3Rpb24uZ2V0KCksIHJlc291cmNlUmVzcG9uc2Uu
ZGVwcmVjYXRlZE5ldHdvcmtMb2FkTWV0cmljcygpKTsKIAotICAgICAgICBtX2hhbmRsZS0+ZGlk
UmVjZWl2ZVJlc3BvbnNlKFdURk1vdmUocmVzb3VyY2VSZXNwb25zZSkpOworICAgICAgICBtX2hh
bmRsZS0+ZGlkUmVjZWl2ZVJlc3BvbnNlKFdURk1vdmUocmVzb3VyY2VSZXNwb25zZSksIFtzZWxm
LCBwcm90ZWN0ZWRTZWxmID0gV1RGTW92ZShwcm90ZWN0ZWRTZWxmKV0geworICAgICAgICAgICAg
ZGlzcGF0Y2hfc2VtYXBob3JlX3NpZ25hbChtX3NlbWFwaG9yZSk7CisgICAgICAgIH0pOwogICAg
IH07CiAKICAgICBbc2VsZiBjYWxsRnVuY3Rpb25Pbk1haW5UaHJlYWQ6V1RGTW92ZSh3b3JrKV07
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5k
bGVTb3VwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAkocmV2aXNpb24gMjI3MzU1KQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTQ2Myw3ICs0NjMsOSBAQCBzdGF0aWMgdm9pZCBuZXh0TXVsdGlwYXJ0
UmVzcG9uc2VQYXJ0Q2FsCiAKICAgICBkLT5tX3ByZXZpb3VzUG9zaXRpb24gPSAwOwogCi0gICAg
aGFuZGxlLT5kaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VSZXNwb25zZShkLT5tX3Jlc3BvbnNl
KSk7CisgICAgaGFuZGxlLT5kaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VSZXNwb25zZShkLT5t
X3Jlc3BvbnNlKSwgW2hhbmRsZSA9IG1ha2VSZWYoKmhhbmRsZSldIHsKKyAgICAgICAgY29udGlu
dWVBZnRlckRpZFJlY2VpdmVSZXNwb25zZShoYW5kbGUucHRyKCkpOworICAgIH0pOwogfQogCiBz
dGF0aWMgdm9pZCBzZW5kUmVxdWVzdENhbGxiYWNrKEdPYmplY3QqLCBHQXN5bmNSZXN1bHQqIHJl
c3VsdCwgZ3BvaW50ZXIgZGF0YSkKQEAgLTUyMCw3ICs1MjIsOSBAQCBzdGF0aWMgdm9pZCBzZW5k
UmVxdWVzdENhbGxiYWNrKEdPYmplY3QqCiAgICAgZWxzZQogICAgICAgICBkLT5tX2lucHV0U3Ry
ZWFtID0gaW5wdXRTdHJlYW07CiAKLSAgICBoYW5kbGUtPmRpZFJlY2VpdmVSZXNwb25zZShSZXNv
dXJjZVJlc3BvbnNlKGQtPm1fcmVzcG9uc2UpKTsKKyAgICBoYW5kbGUtPmRpZFJlY2VpdmVSZXNw
b25zZShSZXNvdXJjZVJlc3BvbnNlKGQtPm1fcmVzcG9uc2UpLCBbaGFuZGxlID0gbWFrZVJlZigq
aGFuZGxlKV0geworICAgICAgICBjb250aW51ZUFmdGVyRGlkUmVjZWl2ZVJlc3BvbnNlKGhhbmRs
ZS5wdHIoKSk7CisgICAgfSk7CiB9CiAKIHZvaWQgUmVzb3VyY2VIYW5kbGU6OnBsYXRmb3JtQ29u
dGludWVTeW5jaHJvbm91c0RpZFJlY2VpdmVSZXNwb25zZSgpCkBAIC0xMDE5LDExICsxMDIzLDYg
QEAgc3RhdGljIHZvaWQgcmVhZENhbGxiYWNrKEdPYmplY3QqLCBHQXN5bgogICAgICAgICBkLT5t
X2NhbmNlbGxhYmxlLmdldCgpLCByZWFkQ2FsbGJhY2ssIGhhbmRsZS5nZXQoKSk7CiB9CiAKLXZv
aWQgUmVzb3VyY2VIYW5kbGU6OmNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlKCkKLXsKLSAgICBj
b250aW51ZUFmdGVyRGlkUmVjZWl2ZVJlc3BvbnNlKHRoaXMpOwotfQotCiB9CiAKICNlbmRpZgpJ
bmRleDogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyNzM2OCkKKysrIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTgtMDEtMjIgIEFsZXggQ2hyaXN0
ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBVc2UgQ29tcGxldGlv
bkhhbmRsZXJzIGZvciBSZXNvdXJjZUhhbmRsZUNsaWVudDo6ZGlkUmVjZWl2ZVJlc3BvbnNlQXN5
bmMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MTk2
MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0xvYWQuY3BwOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2Fk
Lmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRl
cnMuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJEcmFnQ2xp
ZW50TWFjLm1tOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5t
bToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorCiAyMDE4LTAxLTIyICBB
bGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVt
b3ZlIHByZS1OZXR3b3JrU2Vzc2lvbiBsb2FkaW5nIGNvZGUKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwCShyZXZpc2lvbiAyMjczNjQpCisrKyBT
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzQsNyArMzQsNiBAQAogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgog
I2luY2x1ZGUgIldlYkVycm9ycy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQu
aD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlSGFuZGxlLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9SZXNvdXJjZVJlcXVlc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgog
I2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0xvYWQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtMb2FkLmgJKHJldmlzaW9uIDIyNzM2NCkKKysrIFNvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEs
NiBAQAogI2luY2x1ZGUgIk5ldHdvcmtMb2FkUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIlJlbW90
ZU5ldHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9BdXRoZW50aWNhdGlvbkNo
YWxsZW5nZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VIYW5kbGVDbGllbnQuaD4KICNp
bmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwu
aD4KIApJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VM
b2FkUGFyYW1ldGVycy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuaAkocmV2aXNpb24gMjI3MzU1KQorKysg
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVy
cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMywxNSArMjMsMTMgQEAKICAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJh
bWV0ZXJzX2gKLSNkZWZpbmUgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnNfaAorI3ByYWdt
YSBvbmNlCiAKICNpbmNsdWRlICJOZXR3b3JrTG9hZFBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJT
YW5kYm94RXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSAiV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3RE
YXRhLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Db250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhl
YWRlcnMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZldGNoT3B0aW9ucy5oPgotI2luY2x1ZGUgPFdl
YkNvcmUvUmVzb3VyY2VIYW5kbGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlTG9hZGVy
T3B0aW9ucy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgpAQCAtNjgsNSArNjYsMyBAQCBwdWJsaWM6CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIE5ldHdvcmtSZXNvdXJjZUxv
YWRQYXJhbWV0ZXJzX2gKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRG93bmxv
YWRzL0Rvd25sb2FkLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9Eb3dubG9hZHMvRG93bmxvYWQuaAkocmV2aXNpb24gMjI3MzY0KQorKysgU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuaAkod29ya2luZyBjb3B5KQpAQCAt
MzAsOCArMzAsNiBAQAogI2luY2x1ZGUgIk5ldHdvcmtEYXRhVGFzay5oIgogI2luY2x1ZGUgIlNh
bmRib3hFeHRlbnNpb24uaCIKICNpbmNsdWRlIDxXZWJDb3JlL0F1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUhhbmRsZS5oPgotI2luY2x1ZGUgPFdl
YkNvcmUvUmVzb3VyY2VIYW5kbGVDbGllbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNl
UmVxdWVzdC5oPgogI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+
CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCShyZXZpc2lvbiAy
MjczNjQpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEwOCw3ICsxMDgsNiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUNhY2hl
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlR3JvdXAuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Bs
YXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VI
YW5kbGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlTG9hZE9ic2VydmVyLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaD4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAko
cmV2aXNpb24gMjI3MzU1KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjgsNyArNjgsNiBAQAog
I2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUdyb3VwLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9QcmludENvbnRleHQuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Jl
c291cmNlSGFuZGxlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVz
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TV0NvbnRleHRNYW5hZ2VyLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9TY3JpcHRDb250cm9sbGVyLmg+CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvbWFjL1dlYkRyYWdDbGllbnRNYWMubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJEcmFnQ2xpZW50TWFj
Lm1tCShyZXZpc2lvbiAyMjczNTUpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvbWFjL1dlYkRyYWdDbGllbnRNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTQ4LDcg
KzQ4LDYgQEAKICNpbXBvcnQgPFdlYkNvcmUvUGFnZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9QYXN0
ZWJvYXJkLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1JlbmRlckltYWdlLmg+Ci0jaW1wb3J0IDxXZWJD
b3JlL1Jlc291cmNlSGFuZGxlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1N0cmluZ1RydW5jYXRvci5o
PgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlTlNVUkxFeHRyYXMuaD4KICNpbXBvcnQgPHd0Zi9T
dGRMaWJFeHRyYXMuaD4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21h
Yy9XZWJQYWdlTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCShyZXZpc2lvbiAyMjczNTUpCisrKyBTb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQkod29ya2luZyBjb3B5KQpA
QCAtODMsNyArODMsNiBAQAogI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJPYmplY3QuaD4KICNpbXBv
cnQgPFdlYkNvcmUvUmVuZGVyU3R5bGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVuZGVyVmlldy5o
PgotI2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJjZUhhbmRsZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9S
dW50aW1lQXBwbGljYXRpb25DaGVja3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvU2Nyb2xsVmlldy5o
PgogI2ltcG9ydCA8V2ViQ29yZS9TdHlsZUluaGVyaXRlZERhdGEuaD4KSW5kZXg6IFNvdXJjZS9X
ZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXRMZWdhY3kv
Q2hhbmdlTG9nCShyZXZpc2lvbiAyMjczNTUpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDE4LTAxLTIyICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVXNlIENvbXBs
ZXRpb25IYW5kbGVycyBmb3IgUmVzb3VyY2VIYW5kbGVDbGllbnQ6OmRpZFJlY2VpdmVSZXNwb25z
ZUFzeW5jCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
ODE5NjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHA6CisKIDIwMTgtMDEt
MTYgIEZ1amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CiAKICAgICAgICAg
W0NNYWtlXSBSZW1vdmUgV2ViQ29yZURlcml2ZWRTb3VyY2VzIGxpYnJhcnkgdGFyZ2V0CkluZGV4
OiBTb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZFNjaGVk
dWxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9y
dC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwCShyZXZpc2lvbiAyMjczNTUpCisrKyBTb3Vy
Y2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDYgQEAKICNpbmNsdWRlIDxXZWJDb3JlL05l
dHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QaW5nSGFuZGxl
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybVN0cmF0ZWdpZXMuaD4KLSNpbmNsdWRlIDxX
ZWJDb3JlL1Jlc291cmNlSGFuZGxlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVl
c3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1N1YnJlc291cmNlTG9hZGVyLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9VUkwuaD4KSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9u
IDIyNzM1NSkKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDE4LTAxLTIyICBBbGV4IENocmlzdGVuc2VuICA8YWNo
cmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVXNlIENvbXBsZXRpb25IYW5kbGVycyBm
b3IgUmVzb3VyY2VIYW5kbGVDbGllbnQ6OmRpZFJlY2VpdmVSZXNwb25zZUFzeW5jCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODE5NjEKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlZpZXcvV2ViUHJl
ZmVyZW5jZXMubW06CisKIDIwMTgtMDEtMjEgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgVHVybmluZyBvZmYgY3VzdG9tIHBhc3RlYm9hcmQgZGF0YSBkb2Vzbid0
IGFjdHVhbGx5IHR1cm4gaXQgb2ZmIGluIFdLMgpJbmRleDogU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCShyZXZpc2lvbiAyMjczNTUpCisr
KyBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCSh3b3Jr
aW5nIGNvcHkpCkBAIC00Miw3ICs0Miw2IEBACiAjaW1wb3J0IDxXZWJDb3JlL0RlcHJlY2F0ZWRH
bG9iYWxTZXR0aW5ncy5oPgogI2ltcG9ydCA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24u
aD4KICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1Db29raWVKYXIuaD4KLSNpbXBvcnQgPFdlYkNv
cmUvUmVzb3VyY2VIYW5kbGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvUnVudGltZUFwcGxpY2F0aW9u
Q2hlY2tzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NldHRpbmdzLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1RleHRFbmNvZGluZ1JlZ2lzdHJ5Lmg+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>331991</attachid>
            <date>2018-01-22 18:00:57 -0800</date>
            <delta_ts>2018-01-23 12:19:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-181961-20180122180056.patch</filename>
            <type>text/plain</type>
            <size>36760</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyNzM3MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ5IEBACisyMDE4LTAxLTIyICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVXNlIENvbXBs
ZXRpb25IYW5kbGVycyBmb3IgUmVzb3VyY2VIYW5kbGVDbGllbnQ6OmRpZFJlY2VpdmVSZXNwb25z
ZUFzeW5jCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
ODE5NjEKKworICAgICAgICBSZXZpZXdlZCBieSBNaWNoYWVsIENhdGFuemFyby4KKworICAgICAg
ICBObyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2Fk
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNw
b25zZUFzeW5jKToKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAg
KiBsb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6ZGlkUmVjZWl2ZVJlc3BvbnNlQXN5bmMpOgor
ICAgICAgICAqIGxvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpCbG9iUmVzb3VyY2VIYW5kbGU6Om5vdGlmeVJlc3BvbnNlT25TdWNjZXNzKToKKyAg
ICAgICAgKFdlYkNvcmU6OkJsb2JSZXNvdXJjZUhhbmRsZTo6bm90aWZ5UmVzcG9uc2VPbkVycm9y
KToKKyAgICAgICAgKFdlYkNvcmU6OkJsb2JSZXNvdXJjZUhhbmRsZTo6Y29udGludWVEaWRSZWNl
aXZlUmVzcG9uc2UpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvQmxvYlJl
c291cmNlSGFuZGxlLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9QaW5nSGFuZGxlLmg6
CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6ZGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmg6CisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9SZXNvdXJjZUhhbmRsZUNsaWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvU3luY2hyb25vdXNMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3luY2hy
b25vdXNMb2FkZXJDbGllbnQ6OmRpZFJlY2VpdmVSZXNwb25zZUFzeW5jKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL1N5bmNocm9ub3VzTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogcGxh
dGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0
aE9wZXJhdGlvblF1ZXVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlQ0ZV
UkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWU6OmRpZFJlY2VpdmVSZXNwb25z
ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVn
YXRlV2l0aE9wZXJhdGlvblF1ZXVlOjpjb250aW51ZURpZFJlY2VpdmVSZXNwb25zZSk6IERlbGV0
ZWQuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybERl
bGVnYXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlQ3VybERlbGVnYXRl
OjpjdXJsRGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFu
ZGxlQ3VybERlbGVnYXRlOjpoYW5kbGVEYXRhVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlSGFuZGxlQ3VybERlbGVnYXRlOjpjb250aW51ZURpZFJlY2VpdmVSZXNwb25zZSk6IERlbGV0
ZWQuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW06
CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6Y29udGludWVEaWRSZWNlaXZlUmVz
cG9uc2UpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVS
ZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5oOgorICAgICAgICAqIHBsYXRm
b3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxl
Z2F0ZS5tbToKKyAgICAgICAgKC1bV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1
ZURlbGVnYXRlIGNvbm5lY3Rpb246ZGlkUmVjZWl2ZVJlc3BvbnNlOl0pOgorICAgICAgICAoLVtX
ZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUgY29udGludWVEaWRS
ZWNlaXZlUmVzcG9uc2VdKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3Nv
dXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om5leHRNdWx0aXBh
cnRSZXNwb25zZVBhcnRDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpzZW5kUmVxdWVzdENh
bGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjb250aW51ZURpZFJl
Y2VpdmVSZXNwb25zZSk6IERlbGV0ZWQuCisKIDIwMTgtMDEtMjIgIEFsZXggQ2hyaXN0ZW5zZW4g
IDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBCZWdpbiByZW1vdmluZyBRVEtp
dCBjb2RlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAJKHJl
dmlzaW9uIDIyNzM1NSkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTY1NywxNCArNjU3LDE0IEBAIHZvaWQgUmVzb3VyY2VMb2Fk
ZXI6OmRpZFNlbmREYXRhKFJlc291cmMKICAgICBkaWRTZW5kRGF0YShieXRlc1NlbnQsIHRvdGFs
Qnl0ZXNUb0JlU2VudCk7CiB9CiAKLXZvaWQgUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNw
b25zZUFzeW5jKFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIFJlc291cmNlUmVzcG9uc2UmJiByZXNw
b25zZSkKK3ZvaWQgUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZUFzeW5jKFJlc291
cmNlSGFuZGxlKiwgUmVzb3VyY2VSZXNwb25zZSYmIHJlc3BvbnNlLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKGRvY3VtZW50TG9hZGVy
KCktPmFwcGxpY2F0aW9uQ2FjaGVIb3N0KCkubWF5YmVMb2FkRmFsbGJhY2tGb3JSZXNwb25zZSh0
aGlzLCByZXNwb25zZSkpIHsKLSAgICAgICAgaGFuZGxlLT5jb250aW51ZURpZFJlY2VpdmVSZXNw
b25zZSgpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogICAgIGRpZFJlY2VpdmVSZXNwb25zZShyZXNwb25zZSk7Ci0gICAgaGFuZGxlLT5jb250
aW51ZURpZFJlY2VpdmVSZXNwb25zZSgpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9CiAK
IHZvaWQgUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29u
c3QgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoLCBpbnQgZW5jb2RlZERhdGFMZW5ndGgpCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaAkocmV2aXNpb24gMjI3MzU1
KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTE4Miw3ICsxODIsNyBAQCBwcml2YXRlOgogCiAgICAgLy8gUmVzb3VyY2VIYW5kbGVD
bGllbnQKICAgICB2b2lkIGRpZFNlbmREYXRhKFJlc291cmNlSGFuZGxlKiwgdW5zaWduZWQgbG9u
ZyBsb25nIGJ5dGVzU2VudCwgdW5zaWduZWQgbG9uZyBsb25nIHRvdGFsQnl0ZXNUb0JlU2VudCkg
b3ZlcnJpZGU7Ci0gICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2VBc3luYyhSZXNvdXJjZUhhbmRs
ZSosIFJlc291cmNlUmVzcG9uc2UmJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlUmVz
cG9uc2VBc3luYyhSZXNvdXJjZUhhbmRsZSosIFJlc291cmNlUmVzcG9uc2UmJiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmKSBvdmVycmlkZTsKICAgICB2b2lkIHdpbGxTZW5kUmVxdWVzdEFz
eW5jKFJlc291cmNlSGFuZGxlKiwgUmVzb3VyY2VSZXF1ZXN0JiYsIFJlc291cmNlUmVzcG9uc2Um
JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZXNvdXJjZVJlcXVlc3QmJik+JiYpIG92ZXJyaWRl
OwogICAgIHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwg
dW5zaWduZWQsIGludCBlbmNvZGVkRGF0YUxlbmd0aCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRS
ZWNlaXZlQnVmZmVyKFJlc291cmNlSGFuZGxlKiwgUmVmPFNoYXJlZEJ1ZmZlcj4mJiwgaW50IGVu
Y29kZWREYXRhTGVuZ3RoKSBvdmVycmlkZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9h
cHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwCShyZXZpc2lv
biAyMjczNTUpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25D
YWNoZUdyb3VwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDg5LDE0ICs0ODksMTQgQEAgUmVmUHRy
PFJlc291cmNlSGFuZGxlPiBBcHBsaWNhdGlvbkNhY2hlRwogICAgIHJldHVybiBoYW5kbGU7CiB9
CiAKLXZvaWQgQXBwbGljYXRpb25DYWNoZUdyb3VwOjpkaWRSZWNlaXZlUmVzcG9uc2VBc3luYyhS
ZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBSZXNvdXJjZVJlc3BvbnNlJiYgcmVzcG9uc2UpCit2b2lk
IEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6ZGlkUmVjZWl2ZVJlc3BvbnNlQXN5bmMoUmVzb3VyY2VI
YW5kbGUqIGhhbmRsZSwgUmVzb3VyY2VSZXNwb25zZSYmIHJlc3BvbnNlLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKG1fZnJhbWUp
OwogICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZVJlc291cmNlUmVzcG9u
c2UoKm1fZnJhbWUsIG1fY3VycmVudFJlc291cmNlSWRlbnRpZmllciwgbV9mcmFtZS0+bG9hZGVy
KCkuZG9jdW1lbnRMb2FkZXIoKSwgcmVzcG9uc2UsIG51bGxwdHIpOwogCiAgICAgaWYgKGhhbmRs
ZSA9PSBtX21hbmlmZXN0SGFuZGxlKSB7CiAgICAgICAgIGRpZFJlY2VpdmVNYW5pZmVzdFJlc3Bv
bnNlKHJlc3BvbnNlKTsKLSAgICAgICAgaGFuZGxlLT5jb250aW51ZURpZFJlY2VpdmVSZXNwb25z
ZSgpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCkBAIC01MjMsNyArNTIzLDcgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmRpZFJl
Y2VpdmVSZQogICAgICAgICAgICAgbV9jdXJyZW50SGFuZGxlID0gbnVsbHB0cjsKICAgICAgICAg
ICAgIC8vIExvYWQgdGhlIG5leHQgcmVzb3VyY2UsIGlmIGFueS4KICAgICAgICAgICAgIHN0YXJ0
TG9hZGluZ0VudHJ5KCk7Ci0gICAgICAgICAgICBoYW5kbGUtPmNvbnRpbnVlRGlkUmVjZWl2ZVJl
c3BvbnNlKCk7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIC8vIFRoZSBzZXJ2ZXIgY291bGQgcmV0dXJuIDMw
NCBmb3IgYW4gdW5jb25kaXRpb25hbCByZXF1ZXN0IC0gaW4gdGhpcyBjYXNlLCB3ZSBoYW5kbGUg
dGhlIHJlc3BvbnNlIGFzIGEgbm9ybWFsIGVycm9yLgpAQCAtNTU1LDEyICs1NTUsMTIgQEAgdm9p
ZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmRpZFJlY2VpdmVSZQogICAgICAgICAgICAgLy8gTG9h
ZCB0aGUgbmV4dCByZXNvdXJjZSwgaWYgYW55LgogICAgICAgICAgICAgc3RhcnRMb2FkaW5nRW50
cnkoKTsKICAgICAgICAgfQotICAgICAgICBoYW5kbGUtPmNvbnRpbnVlRGlkUmVjZWl2ZVJlc3Bv
bnNlKCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAgICAgCiAgICAgbV9jdXJyZW50UmVzb3VyY2UgPSBBcHBsaWNhdGlvbkNhY2hlUmVzb3Vy
Y2U6OmNyZWF0ZSh1cmwsIHJlc3BvbnNlLCB0eXBlKTsKLSAgICBoYW5kbGUtPmNvbnRpbnVlRGlk
UmVjZWl2ZVJlc3BvbnNlKCk7CisgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKIH0KIAogdm9pZCBB
cHBsaWNhdGlvbkNhY2hlR3JvdXA6OndpbGxTZW5kUmVxdWVzdEFzeW5jKFJlc291cmNlSGFuZGxl
KiwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgUmVzb3VyY2VSZXNwb25zZSYmLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFJlc291cmNlUmVxdWVzdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3Jv
dXAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGlj
YXRpb25DYWNoZUdyb3VwLmgJKHJldmlzaW9uIDIyNzM1NSkKKysrIFNvdXJjZS9XZWJDb3JlL2xv
YWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuaAkod29ya2luZyBjb3B5KQpAQCAt
MTA5LDcgKzEwOSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3Rv
cmFnZShSZXNvdXJjZUhhbmRsZSopIG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIC8v
IFJlc291cmNlSGFuZGxlQ2xpZW50Ci0gICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2VBc3luYyhS
ZXNvdXJjZUhhbmRsZSosIFJlc291cmNlUmVzcG9uc2UmJikgZmluYWw7CisgICAgdm9pZCBkaWRS
ZWNlaXZlUmVzcG9uc2VBc3luYyhSZXNvdXJjZUhhbmRsZSosIFJlc291cmNlUmVzcG9uc2UmJiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBmaW5hbDsKICAgICB2b2lkIHdpbGxTZW5kUmVx
dWVzdEFzeW5jKFJlc291cmNlSGFuZGxlKiwgUmVzb3VyY2VSZXF1ZXN0JiYsIFJlc291cmNlUmVz
cG9uc2UmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZXNvdXJjZVJlcXVlc3QmJik+JiYpIGZp
bmFsOwogI2lmIFVTRShQUk9URUNUSU9OX1NQQUNFX0FVVEhfQ0FMTEJBQ0spCiAgICAgdm9pZCBj
YW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlQXN5bmMoUmVzb3VyY2VIYW5kbGUq
LCBjb25zdCBQcm90ZWN0aW9uU3BhY2UmKSBmaW5hbDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvQmxvYlJlc291cmNlSGFuZGxlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5jcHAJKHJldmlz
aW9uIDIyNzM1NSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlc291
cmNlSGFuZGxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzUsNyArNzUsNyBAQCBjbGFzcyBCbG9i
UmVzb3VyY2VTeW5jaHJvbm91c0xvYWRlciA6IHB1CiBwdWJsaWM6CiAgICAgQmxvYlJlc291cmNl
U3luY2hyb25vdXNMb2FkZXIoUmVzb3VyY2VFcnJvciYsIFJlc291cmNlUmVzcG9uc2UmLCBWZWN0
b3I8Y2hhcj4mKTsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlQXN5bmMoUmVzb3VyY2VI
YW5kbGUqLCBSZXNvdXJjZVJlc3BvbnNlJiYpIGZpbmFsOworICAgIHZvaWQgZGlkUmVjZWl2ZVJl
c3BvbnNlQXN5bmMoUmVzb3VyY2VIYW5kbGUqLCBSZXNvdXJjZVJlc3BvbnNlJiYsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJikgZmluYWw7CiAgICAgdm9pZCBkaWRGYWlsKFJlc291cmNlSGFu
ZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpIGZpbmFsOwogICAgIHZvaWQgd2lsbFNlbmRSZXF1
ZXN0QXN5bmMoUmVzb3VyY2VIYW5kbGUqLCBSZXNvdXJjZVJlcXVlc3QmJiwgUmVzb3VyY2VSZXNw
b25zZSYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlc291cmNlUmVxdWVzdCYmKT4mJikgZmlu
YWw7CiAjaWYgVVNFKFBST1RFQ1RJT05fU1BBQ0VfQVVUSF9DQUxMQkFDSykKQEAgLTEwOSwxMiAr
MTA5LDEyIEBAIHZvaWQgQmxvYlJlc291cmNlU3luY2hyb25vdXNMb2FkZXI6OmNhbkEKIH0KICNl
bmRpZgogCi12b2lkIEJsb2JSZXNvdXJjZVN5bmNocm9ub3VzTG9hZGVyOjpkaWRSZWNlaXZlUmVz
cG9uc2VBc3luYyhSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBSZXNvdXJjZVJlc3BvbnNlJiYgcmVz
cG9uc2UpCit2b2lkIEJsb2JSZXNvdXJjZVN5bmNocm9ub3VzTG9hZGVyOjpkaWRSZWNlaXZlUmVz
cG9uc2VBc3luYyhSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBSZXNvdXJjZVJlc3BvbnNlJiYgcmVz
cG9uc2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsK
ICAgICAvLyBXZSBjYW5ub3QgaGFuZGxlIHRoZSBzaXplIHRoYXQgaXMgbW9yZSB0aGFuIG1heGlt
dW0gaW50ZWdlci4KICAgICBpZiAocmVzcG9uc2UuZXhwZWN0ZWRDb250ZW50TGVuZ3RoKCkgPiBJ
TlRfTUFYKSB7CiAgICAgICAgIG1fZXJyb3IgPSBSZXNvdXJjZUVycm9yKHdlYktpdEJsb2JSZXNv
dXJjZURvbWFpbiwgc3RhdGljX2Nhc3Q8aW50PihCbG9iUmVzb3VyY2VIYW5kbGU6OkVycm9yOjpO
b3RSZWFkYWJsZUVycm9yKSwgcmVzcG9uc2UudXJsKCksICJGaWxlIGlzIHRvbyBsYXJnZSIpOwot
ICAgICAgICBoYW5kbGUtPmNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlKCk7CisgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTEyMyw3ICsx
MjMsNyBAQCB2b2lkIEJsb2JSZXNvdXJjZVN5bmNocm9ub3VzTG9hZGVyOjpkaWRSCiAgICAgLy8g
UmVhZCBhbGwgdGhlIGRhdGEuCiAgICAgbV9kYXRhLnJlc2l6ZShzdGF0aWNfY2FzdDxzaXplX3Q+
KHJlc3BvbnNlLmV4cGVjdGVkQ29udGVudExlbmd0aCgpKSk7CiAgICAgc3RhdGljX2Nhc3Q8Qmxv
YlJlc291cmNlSGFuZGxlKj4oaGFuZGxlKS0+cmVhZFN5bmMobV9kYXRhLmRhdGEoKSwgc3RhdGlj
X2Nhc3Q8aW50PihtX2RhdGEuc2l6ZSgpKSk7Ci0gICAgaGFuZGxlLT5jb250aW51ZURpZFJlY2Vp
dmVSZXNwb25zZSgpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9CiAKIHZvaWQgQmxvYlJl
c291cmNlU3luY2hyb25vdXNMb2FkZXI6OmRpZEZhaWwoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBS
ZXNvdXJjZUVycm9yJiBlcnJvcikKQEAgLTE3NiwxMiArMTc2LDYgQEAgdm9pZCBCbG9iUmVzb3Vy
Y2VIYW5kbGU6OmNhbmNlbCgpCiAgICAgUmVzb3VyY2VIYW5kbGU6OmNhbmNlbCgpOwogfQogCi12
b2lkIEJsb2JSZXNvdXJjZUhhbmRsZTo6Y29udGludWVEaWRSZWNlaXZlUmVzcG9uc2UoKQotewot
ICAgIG1fYnVmZmVyLnJlc2l6ZShidWZmZXJTaXplKTsKLSAgICByZWFkQXN5bmMoKTsKLX0KLQog
dm9pZCBCbG9iUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KCkKIHsKICAgICBpZiAoIW1fYXN5bmMpIHsK
QEAgLTU4NCw3ICs1NzgsMTAgQEAgdm9pZCBCbG9iUmVzb3VyY2VIYW5kbGU6Om5vdGlmeVJlc3Bv
bnNlTwogICAgIC8vIGFzIGlmIHRoZSByZXNwb25zZSBoYWQgYSBDb250ZW50LURpc3Bvc2l0aW9u
IGhlYWRlciB3aXRoIHRoZSBmaWxlbmFtZSBwYXJhbWV0ZXIgc2V0IHRvIHRoZSBGaWxlJ3MgbmFt
ZSBhdHRyaWJ1dGUuCiAgICAgLy8gTm90YWJseSwgdGhpcyB3aWxsIGFmZmVjdCBhIG5hbWUgc3Vn
Z2VzdGVkIGluICJGaWxlIFNhdmUgQXMiLgogCi0gICAgY2xpZW50KCktPmRpZFJlY2VpdmVSZXNw
b25zZUFzeW5jKHRoaXMsIFdURk1vdmUocmVzcG9uc2UpKTsKKyAgICBjbGllbnQoKS0+ZGlkUmVj
ZWl2ZVJlc3BvbnNlQXN5bmModGhpcywgV1RGTW92ZShyZXNwb25zZSksIFt0aGlzLCBwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldIHsKKyAgICAgICAgbV9idWZmZXIucmVzaXplKGJ1ZmZl
clNpemUpOworICAgICAgICByZWFkQXN5bmMoKTsKKyAgICB9KTsKIH0KIAogdm9pZCBCbG9iUmVz
b3VyY2VIYW5kbGU6Om5vdGlmeVJlc3BvbnNlT25FcnJvcigpCkBAIC02MDcsNyArNjA0LDEwIEBA
IHZvaWQgQmxvYlJlc291cmNlSGFuZGxlOjpub3RpZnlSZXNwb25zZU8KICAgICAgICAgYnJlYWs7
CiAgICAgfQogCi0gICAgY2xpZW50KCktPmRpZFJlY2VpdmVSZXNwb25zZUFzeW5jKHRoaXMsIFdU
Rk1vdmUocmVzcG9uc2UpKTsKKyAgICBjbGllbnQoKS0+ZGlkUmVjZWl2ZVJlc3BvbnNlQXN5bmMo
dGhpcywgV1RGTW92ZShyZXNwb25zZSksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigq
dGhpcyldIHsKKyAgICAgICAgbV9idWZmZXIucmVzaXplKGJ1ZmZlclNpemUpOworICAgICAgICBy
ZWFkQXN5bmMoKTsKKyAgICB9KTsKIH0KIAogdm9pZCBCbG9iUmVzb3VyY2VIYW5kbGU6Om5vdGlm
eVJlY2VpdmVEYXRhKGNvbnN0IGNoYXIqIGRhdGEsIGludCBieXRlc1JlYWQpCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlc291cmNlSGFuZGxl
LmgJKHJldmlzaW9uIDIyNzM1NSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
QmxvYlJlc291cmNlSGFuZGxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTc1LDcgKzc1LDYgQEAgcHJp
dmF0ZToKIAogICAgIC8vIFJlc291cmNlSGFuZGxlIG1ldGhvZHMuCiAgICAgdm9pZCBjYW5jZWwo
KSBvdmVycmlkZTsKLSAgICB2b2lkIGNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlKCkgb3ZlcnJp
ZGU7CiAKICAgICB2b2lkIGRvU3RhcnQoKTsKICAgICB2b2lkIGdldFNpemVGb3JOZXh0KCk7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1BpbmdIYW5kbGUuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1BpbmdIYW5kbGUuaAkocmV2
aXNpb24gMjI3MzU1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9QaW5nSGFu
ZGxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTY3LDkgKzY3LDkgQEAgcHJpdmF0ZToKICAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoeyB9KTsKICAgICAgICAgcGluZ0xvYWRDb21wbGV0ZShSZXNvdXJj
ZUVycm9yIHsgU3RyaW5nKCksIDAsIG1fY3VycmVudFJlcXVlc3QudXJsKCksIEFTQ0lJTGl0ZXJh
bCgiTm90IGFsbG93ZWQgdG8gZm9sbG93IHJlZGlyZWN0cyIpLCBSZXNvdXJjZUVycm9yOjpUeXBl
OjpBY2Nlc3NDb250cm9sIH0pOwogICAgIH0KLSAgICB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZUFz
eW5jKFJlc291cmNlSGFuZGxlKiwgUmVzb3VyY2VSZXNwb25zZSYmIHJlc3BvbnNlKSBmaW5hbAor
ICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlQXN5bmMoUmVzb3VyY2VIYW5kbGUqLCBSZXNvdXJj
ZVJlc3BvbnNlJiYgcmVzcG9uc2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikgZmluYWwKICAgICB7Ci0gICAgICAgIG1faGFuZGxlLT5jb250aW51ZURpZFJl
Y2VpdmVSZXNwb25zZSgpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogICAgICAgICBw
aW5nTG9hZENvbXBsZXRlKHsgfSwgcmVzcG9uc2UpOwogICAgIH0KICAgICB2b2lkIGRpZFJlY2Vp
dmVCdWZmZXIoUmVzb3VyY2VIYW5kbGUqLCBSZWY8U2hhcmVkQnVmZmVyPiYmLCBpbnQpIGZpbmFs
IHsgcGluZ0xvYWRDb21wbGV0ZSgpOyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcAkocmV2aXNpb24gMjI3MzU1KQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZUNsaWVu
dC5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSA8YWxnb3JpdGhtPgorI2luY2x1ZGUg
PHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAj
aW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWlj
U3RyaW5nSGFzaC5oPgpAQCAtMTUwLDcgKzE1MSw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmNs
ZWFyQ2xpZW50KCkKICAgICBkLT5tX2NsaWVudCA9IG51bGxwdHI7CiB9CiAKLXZvaWQgUmVzb3Vy
Y2VIYW5kbGU6OmRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZVJlc3BvbnNlJiYgcmVzcG9uc2Up
Cit2b2lkIFJlc291cmNlSGFuZGxlOjpkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VSZXNwb25z
ZSYmIHJlc3BvbnNlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCiB7CiAgICAgaWYgKHJlc3BvbnNlLmlzSFRUUDA5KCkpIHsKICAgICAgICAgYXV0byB1cmwg
PSByZXNwb25zZS51cmwoKTsKQEAgLTE1OSwxMSArMTYwLDExIEBAIHZvaWQgUmVzb3VyY2VIYW5k
bGU6OmRpZFJlY2VpdmVSZXNwb25zZSgKICAgICAgICAgICAgIGNhbmNlbCgpOwogICAgICAgICAg
ICAgU3RyaW5nIG1lc3NhZ2UgPSAiQ2FuY2VsbGVkIGxvYWQgZnJvbSAnIiArIHVybC5zdHJpbmdD
ZW50ZXJFbGxpcHNpemVkVG9MZW5ndGgoKSArICInIGJlY2F1c2UgaXQgaXMgdXNpbmcgSFRUUC8w
LjkuIjsKICAgICAgICAgICAgIGQtPm1fY2xpZW50LT5kaWRGYWlsKHRoaXMsIHsgU3RyaW5nKCks
IDAsIHVybCwgbWVzc2FnZSB9KTsKLSAgICAgICAgICAgIGNvbnRpbnVlRGlkUmVjZWl2ZVJlc3Bv
bnNlKCk7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9CiAgICAgfQotICAgIGNsaWVudCgpLT5kaWRSZWNlaXZlUmVzcG9uc2VB
c3luYyh0aGlzLCBXVEZNb3ZlKHJlc3BvbnNlKSk7CisgICAgY2xpZW50KCktPmRpZFJlY2VpdmVS
ZXNwb25zZUFzeW5jKHRoaXMsIFdURk1vdmUocmVzcG9uc2UpLCBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSk7CiB9CiAKICNpZiAhVVNFKFNPVVApICYmICFVU0UoQ1VSTCkKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgJKHJldmlz
aW9uIDIyNzM1NSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VI
YW5kbGUuaAkod29ya2luZyBjb3B5KQpAQCAtMTA3LDcgKzEwNyw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIHdpbGxTZW5kUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmJiwgUmVzb3VyY2VSZXNwb25zZSYm
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlc291cmNlUmVxdWVzdCYmKT4mJik7CiAjZW5kaWYK
IAotICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlUmVzcG9uc2UmJik7CisgICAg
dm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VSZXNwb25zZSYmLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYpOwogCiAgICAgYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSgp
OwogICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKGNvbnN0IEF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlJik7CkBAIC0xOTMsOSArMTkzLDYgQEAgcHVibGljOgogICAgIFdF
QkNPUkVfRVhQT1JUIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQoKSBjb25zdDsKICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIGNsZWFyQ2xpZW50KCk7CiAKLSAgICAvLyBDYWxsZWQgaW4gcmVz
cG9uc2UgdG8gUmVzb3VyY2VIYW5kbGVDbGllbnQ6OmRpZFJlY2VpdmVSZXNwb25zZUFzeW5jKCku
Ci0gICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIGNvbnRpbnVlRGlkUmVjZWl2ZVJlc3Bv
bnNlKCk7Ci0KICNpZiBVU0UoUFJPVEVDVElPTl9TUEFDRV9BVVRIX0NBTExCQUNLKQogICAgIC8v
IENhbGxlZCBpbiByZXNwb25zZSB0byBSZXNvdXJjZUhhbmRsZUNsaWVudDo6Y2FuQXV0aGVudGlj
YXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZUFzeW5jKCkuCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBjb250aW51ZUNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2UoYm9vbCk7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlQ2xpZW50
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJj
ZUhhbmRsZUNsaWVudC5oCShyZXZpc2lvbiAyMjczNTUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTc3
LDggKzc3LDcgQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIHdp
bGxTZW5kUmVxdWVzdEFzeW5jKFJlc291cmNlSGFuZGxlKiwgUmVzb3VyY2VSZXF1ZXN0JiYsIFJl
c291cmNlUmVzcG9uc2UmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZXNvdXJjZVJlcXVlc3Qm
Jik+JiYpID0gMDsKIAotICAgIC8vIENsaWVudCB3aWxsIGNhbGwgUmVzb3VyY2VIYW5kbGU6OmNv
bnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlKCkgd2hlbiByZWFkeS4KLSAgICBXRUJDT1JFX0VYUE9S
VCB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlQXN5bmMoUmVzb3VyY2VIYW5kbGUqLCBS
ZXNvdXJjZVJlc3BvbnNlJiYpID0gMDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQg
ZGlkUmVjZWl2ZVJlc3BvbnNlQXN5bmMoUmVzb3VyY2VIYW5kbGUqLCBSZXNvdXJjZVJlc3BvbnNl
JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgPSAwOwogCiAjaWYgVVNFKFBST1RFQ1RJ
T05fU1BBQ0VfQVVUSF9DQUxMQkFDSykKICAgICAvLyBDbGllbnQgd2lsbCBwYXNzIGFuIHVwZGF0
ZWQgcmVxdWVzdCB1c2luZyBSZXNvdXJjZUhhbmRsZTo6Y29udGludWVDYW5BdXRoZW50aWNhdGVB
Z2FpbnN0UHJvdGVjdGlvblNwYWNlKCkgd2hlbiByZWFkeS4KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvU3luY2hyb25vdXNMb2FkZXJDbGllbnQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU3luY2hyb25vdXNMb2FkZXJDbGll
bnQuY3BwCShyZXZpc2lvbiAyMjczNTUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL1N5bmNocm9ub3VzTG9hZGVyQ2xpZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjIsMTAg
KzYyLDEwIEBAIHZvaWQgU3luY2hyb25vdXNMb2FkZXJDbGllbnQ6OmNhbkF1dGhlbnQKIH0KICNl
bmRpZgogCi12b2lkIFN5bmNocm9ub3VzTG9hZGVyQ2xpZW50OjpkaWRSZWNlaXZlUmVzcG9uc2VB
c3luYyhSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBSZXNvdXJjZVJlc3BvbnNlJiYgcmVzcG9uc2Up
Cit2b2lkIFN5bmNocm9ub3VzTG9hZGVyQ2xpZW50OjpkaWRSZWNlaXZlUmVzcG9uc2VBc3luYyhS
ZXNvdXJjZUhhbmRsZSosIFJlc291cmNlUmVzcG9uc2UmJiByZXNwb25zZSwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIG1fcmVzcG9uc2UgPSBX
VEZNb3ZlKHJlc3BvbnNlKTsKLSAgICBoYW5kbGUtPmNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNl
KCk7CisgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKIH0KIAogdm9pZCBTeW5jaHJvbm91c0xvYWRl
ckNsaWVudDo6ZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiBkYXRh
LCB1bnNpZ25lZCBsZW5ndGgsIGludCAvKmVuY29kZWREYXRhTGVuZ3RoKi8pCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1N5bmNocm9ub3VzTG9hZGVyQ2xpZW50LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9TeW5jaHJvbm91c0xv
YWRlckNsaWVudC5oCShyZXZpc2lvbiAyMjczNTUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL1N5bmNocm9ub3VzTG9hZGVyQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ5
LDcgKzQ5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHdpbGxTZW5kUmVxdWVzdEFzeW5jKFJlc291
cmNlSGFuZGxlKiwgUmVzb3VyY2VSZXF1ZXN0JiYsIFJlc291cmNlUmVzcG9uc2UmJiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChSZXNvdXJjZVJlcXVlc3QmJik+JiYpIG92ZXJyaWRlOwogICAgIGJv
b2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UoUmVzb3VyY2VIYW5kbGUqKSBvdmVycmlkZTsK
ICAgICB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShSZXNvdXJjZUhhbmRs
ZSosIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBk
aWRSZWNlaXZlUmVzcG9uc2VBc3luYyhSZXNvdXJjZUhhbmRsZSosIFJlc291cmNlUmVzcG9uc2Um
Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2VBc3luYyhSZXNvdXJjZUhh
bmRsZSosIFJlc291cmNlUmVzcG9uc2UmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBv
dmVycmlkZTsKICAgICB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3Qg
Y2hhciosIHVuc2lnbmVkLCBpbnQgLyplbmNvZGVkRGF0YUxlbmd0aCovKSBvdmVycmlkZTsKICAg
ICB2b2lkIGRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqKSBvdmVycmlkZTsKICAgICB2
b2lkIGRpZEZhaWwoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZUVycm9yJikgb3ZlcnJp
ZGU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFu
ZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWUuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVD
RlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZS5jcHAJKHJldmlzaW9uIDIy
NzM1NSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5k
bGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTE4MCwzMCArMTgwLDMwIEBAIENGVVJMUmVxdWVzdFJlZiBSZXNvdXJjZUhhbmRs
ZUNGVVJMQ29ubmUKIHZvaWQgUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdp
dGhPcGVyYXRpb25RdWV1ZTo6ZGlkUmVjZWl2ZVJlc3BvbnNlKENGVVJMQ29ubmVjdGlvblJlZiBj
b25uZWN0aW9uLCBDRlVSTFJlc3BvbnNlUmVmIGNmUmVzcG9uc2UpCiB7CiAgICAgYXV0byBwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyk7Ci0gICAgYXV0byB3b3JrID0gW3Byb3RlY3RlZFRo
aXMgPSBtYWtlUmVmKCp0aGlzKSwgY2ZSZXNwb25zZSA9IFJldGFpblB0cjxDRlVSTFJlc3BvbnNl
UmVmPihjZlJlc3BvbnNlKSwgY29ubmVjdGlvbiA9IFJldGFpblB0cjxDRlVSTENvbm5lY3Rpb25S
ZWY+KGNvbm5lY3Rpb24pXSAoKSB7Ci0gICAgICAgIGF1dG8mIGhhbmRsZSA9IHByb3RlY3RlZFRo
aXMtPm1faGFuZGxlOwotICAgICAgICAKLSAgICAgICAgaWYgKCFwcm90ZWN0ZWRUaGlzLT5oYXNI
YW5kbGUoKSB8fCAhaGFuZGxlLT5jbGllbnQoKSB8fCAhaGFuZGxlLT5jb25uZWN0aW9uKCkpIHsK
LSAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPmNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlKCk7
CisgICAgYXV0byB3b3JrID0gW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwg
Y2ZSZXNwb25zZSA9IFJldGFpblB0cjxDRlVSTFJlc3BvbnNlUmVmPihjZlJlc3BvbnNlKSwgY29u
bmVjdGlvbiA9IFJldGFpblB0cjxDRlVSTENvbm5lY3Rpb25SZWY+KGNvbm5lY3Rpb24pXSAoKSB7
CisgICAgICAgIGlmICghaGFzSGFuZGxlKCkgfHwgIW1faGFuZGxlLT5jbGllbnQoKSB8fCAhbV9o
YW5kbGUtPmNvbm5lY3Rpb24oKSkgeworICAgICAgICAgICAgbV9zZW1hcGhvcmUuc2lnbmFsKCk7
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBMT0coTmV0d29yaywg
IkNGTmV0IC0gUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRp
b25RdWV1ZTo6ZGlkUmVjZWl2ZVJlc3BvbnNlKGhhbmRsZT0lcCkgKCVzKSIsIGhhbmRsZSwgaGFu
ZGxlLT5maXJzdFJlcXVlc3QoKS51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICAg
ICAgTE9HKE5ldHdvcmssICJDRk5ldCAtIFJlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVs
ZWdhdGVXaXRoT3BlcmF0aW9uUXVldWU6OmRpZFJlY2VpdmVSZXNwb25zZShoYW5kbGU9JXApICgl
cykiLCBtX2hhbmRsZSwgbV9oYW5kbGUtPmZpcnN0UmVxdWVzdCgpLnVybCgpLnN0cmluZygpLnV0
ZjgoKS5kYXRhKCkpOwogCiAgICAgICAgIC8vIEF2b2lkIE1JTUUgdHlwZSBzbmlmZmluZyBpZiB0
aGUgcmVzcG9uc2UgY29tZXMgYmFjayBhcyAzMDQgTm90IE1vZGlmaWVkLgogICAgICAgICBhdXRv
IG1zZyA9IENGVVJMUmVzcG9uc2VHZXRIVFRQUmVzcG9uc2UoY2ZSZXNwb25zZS5nZXQoKSk7CiAg
ICAgICAgIGludCBzdGF0dXNDb2RlID0gbXNnID8gQ0ZIVFRQTWVzc2FnZUdldFJlc3BvbnNlU3Rh
dHVzQ29kZShtc2cpIDogMDsKIAogICAgICAgICBpZiAoc3RhdHVzQ29kZSAhPSAzMDQpIHsKLSAg
ICAgICAgICAgIGJvb2wgaXNNYWluUmVzb3VyY2VMb2FkID0gaGFuZGxlLT5maXJzdFJlcXVlc3Qo
KS5yZXF1ZXN0ZXIoKSA9PSBSZXNvdXJjZVJlcXVlc3Q6OlJlcXVlc3Rlcjo6TWFpbjsKKyAgICAg
ICAgICAgIGJvb2wgaXNNYWluUmVzb3VyY2VMb2FkID0gbV9oYW5kbGUtPmZpcnN0UmVxdWVzdCgp
LnJlcXVlc3RlcigpID09IFJlc291cmNlUmVxdWVzdDo6UmVxdWVzdGVyOjpNYWluOwogICAgICAg
ICB9CiAKLSAgICAgICAgaWYgKF9DRlVSTFJlcXVlc3RDb3B5UHJvdG9jb2xQcm9wZXJ0eUZvcktl
eShoYW5kbGUtPmZpcnN0UmVxdWVzdCgpLmNmVVJMUmVxdWVzdChEb05vdFVwZGF0ZUhUVFBCb2R5
KSwgQ0ZTVFIoIkZvcmNlSFRNTE1JTUVUeXBlIikpKQorICAgICAgICBpZiAoX0NGVVJMUmVxdWVz
dENvcHlQcm90b2NvbFByb3BlcnR5Rm9yS2V5KG1faGFuZGxlLT5maXJzdFJlcXVlc3QoKS5jZlVS
TFJlcXVlc3QoRG9Ob3RVcGRhdGVIVFRQQm9keSksIENGU1RSKCJGb3JjZUhUTUxNSU1FVHlwZSIp
KSkKICAgICAgICAgICAgIENGVVJMUmVzcG9uc2VTZXRNSU1FVHlwZShjZlJlc3BvbnNlLmdldCgp
LCBDRlNUUigidGV4dC9odG1sIikpOwogCiAgICAgICAgIFJlc291cmNlUmVzcG9uc2UgcmVzb3Vy
Y2VSZXNwb25zZShjZlJlc3BvbnNlLmdldCgpKTsKICAgICAgICAgcmVzb3VyY2VSZXNwb25zZS5z
ZXRTb3VyY2UoUmVzb3VyY2VSZXNwb25zZTo6U291cmNlOjpOZXR3b3JrKTsKLSAgICAgICAgaGFu
ZGxlLT5kaWRSZWNlaXZlUmVzcG9uc2UoV1RGTW92ZShyZXNvdXJjZVJlc3BvbnNlKSk7CisgICAg
ICAgIG1faGFuZGxlLT5kaWRSZWNlaXZlUmVzcG9uc2UoV1RGTW92ZShyZXNvdXJjZVJlc3BvbnNl
KSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpXSB7CisgICAg
ICAgICAgICBtX3NlbWFwaG9yZS5zaWduYWwoKTsKKyAgICAgICAgfSk7CiAgICAgfTsKIAogICAg
IGlmIChtX21lc3NhZ2VRdWV1ZSkKQEAgLTM4OSwxMSArMzg5LDYgQEAgdm9pZCBSZXNvdXJjZUhh
bmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYQogfQogI2VuZGlmIC8vIFVTRShQUk9URUNUSU9OX1NQ
QUNFX0FVVEhfQ0FMTEJBQ0spCiAKLXZvaWQgUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25E
ZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZTo6Y29udGludWVEaWRSZWNlaXZlUmVzcG9uc2UoKQot
ewotICAgIG1fc2VtYXBob3JlLnNpZ25hbCgpOwotfQotCiB2b2lkIFJlc291cmNlSGFuZGxlQ0ZV
UkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWU6OmNvbnRpbnVlV2lsbENhY2hl
UmVzcG9uc2UoQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZiByZXNwb25zZSkKIHsKICAgICBtX2NhY2hl
ZFJlc3BvbnNlUmVzdWx0ID0gcmVzcG9uc2U7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcAko
cmV2aXNpb24gMjI3MzU1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJs
L1Jlc291cmNlSGFuZGxlQ3VybC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4LDYgKzM4LDcgQEAK
ICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5o
IgogI2luY2x1ZGUgIlN5bmNocm9ub3VzTG9hZGVyQ2xpZW50LmgiCisjaW5jbHVkZSA8d3RmL0Nv
bXBsZXRpb25IYW5kbGVyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMjE0LDggKzIx
NSwxMiBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpyZWNlaXZlZFJlcXVlc3RUb0NvCiAKICAgICBj
bGVhckF1dGhlbnRpY2F0aW9uKCk7CiAKLSAgICBhdXRvIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVm
KCp0aGlzKTsKLSAgICBkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VSZXNwb25zZShkLT5tX3Jl
c3BvbnNlKSk7CisgICAgZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlUmVzcG9uc2UoZC0+bV9y
ZXNwb25zZSksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldIHsKKyAgICAg
ICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKworICAgICAgICBpZiAoZC0+bV9kZWxlZ2F0ZSkK
KyAgICAgICAgICAgIGQtPm1fZGVsZWdhdGUtPmNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlKCk7
CisgICAgfSk7CiB9CiAKIHZvaWQgUmVzb3VyY2VIYW5kbGU6OnJlY2VpdmVkQ2FuY2VsbGF0aW9u
KGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBjaGFsbGVuZ2UpCkBAIC0yNTksMTQgKzI2
NCw2IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OnBsYXRmb3JtTG9hZFJlc291cmMKICAgICByZXNw
b25zZSA9IGNsaWVudC5yZXNwb25zZSgpOwogfQogCi12b2lkIFJlc291cmNlSGFuZGxlOjpjb250
aW51ZURpZFJlY2VpdmVSZXNwb25zZSgpCi17Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsK
LQotICAgIGlmIChkLT5tX2RlbGVnYXRlKQotICAgICAgICBkLT5tX2RlbGVnYXRlLT5jb250aW51
ZURpZFJlY2VpdmVSZXNwb25zZSgpOwotfQotCiB2b2lkIFJlc291cmNlSGFuZGxlOjpwbGF0Zm9y
bUNvbnRpbnVlU3luY2hyb25vdXNEaWRSZWNlaXZlUmVzcG9uc2UoKQogewogICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1
cmwvUmVzb3VyY2VIYW5kbGVDdXJsRGVsZWdhdGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmxEZWxlZ2F0ZS5j
cHAJKHJldmlzaW9uIDIyNzM1NSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y3VybC9SZXNvdXJjZUhhbmRsZUN1cmxEZWxlZ2F0ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIy
MSw3ICsyMjEsOSBAQCB2b2lkIFJlc291cmNlSGFuZGxlQ3VybERlbGVnYXRlOjpjdXJsRGlkCiAg
ICAgICAgIEN1cmxDYWNoZU1hbmFnZXI6OnNpbmdsZXRvbigpLmRpZFJlY2VpdmVSZXNwb25zZSgq
bV9oYW5kbGUsIHJlc3BvbnNlKCkpOwogCiAgICAgICAgIGF1dG8gcHJvdGVjdGVkVGhpcyA9IG1h
a2VSZWYoKm1faGFuZGxlKTsKLSAgICAgICAgbV9oYW5kbGUtPmRpZFJlY2VpdmVSZXNwb25zZShS
ZXNvdXJjZVJlc3BvbnNlKHJlc3BvbnNlKCkpKTsKKyAgICAgICAgbV9oYW5kbGUtPmRpZFJlY2Vp
dmVSZXNwb25zZShSZXNvdXJjZVJlc3BvbnNlKHJlc3BvbnNlKCkpLCBbdGhpcywgcHJvdGVjdGVk
VGhpcyA9IG1ha2VSZWYoKnRoaXMpXSB7CisgICAgICAgICAgICBjb250aW51ZUFmdGVyRGlkUmVj
ZWl2ZVJlc3BvbnNlKCk7CisgICAgICAgIH0pOwogICAgIH0KIH0KIApAQCAtMjYzLDEzICsyNjUs
NiBAQCB2b2lkIFJlc291cmNlSGFuZGxlQ3VybERlbGVnYXRlOjpjdXJsRGlkCiAgICAgbV9oYW5k
bGUtPmNsaWVudCgpLT5kaWRGYWlsKG1faGFuZGxlLCByZXNvdXJjZUVycm9yKTsKIH0KIAotdm9p
ZCBSZXNvdXJjZUhhbmRsZUN1cmxEZWxlZ2F0ZTo6Y29udGludWVEaWRSZWNlaXZlUmVzcG9uc2Uo
KQotewotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0KLSAgICBjb250aW51ZUFmdGVyRGlk
UmVjZWl2ZVJlc3BvbnNlKCk7Ci19Ci0KIHZvaWQgUmVzb3VyY2VIYW5kbGVDdXJsRGVsZWdhdGU6
OnBsYXRmb3JtQ29udGludWVTeW5jaHJvbm91c0RpZFJlY2VpdmVSZXNwb25zZSgpCiB7CiAgICAg
QVNTRVJUKGlzTWFpblRocmVhZCgpKTsKQEAgLTQyNiw3ICs0MjEsOSBAQCB2b2lkIFJlc291cmNl
SGFuZGxlQ3VybERlbGVnYXRlOjpoYW5kbGVECiAKICAgICBpZiAoYmFzZTY0KSB7CiAgICAgICAg
IGRhdGEgPSBkZWNvZGVVUkxFc2NhcGVTZXF1ZW5jZXMoZGF0YSk7Ci0gICAgICAgIG1faGFuZGxl
LT5kaWRSZWNlaXZlUmVzcG9uc2UoV1RGTW92ZShyZXNwb25zZSkpOworICAgICAgICBtX2hhbmRs
ZS0+ZGlkUmVjZWl2ZVJlc3BvbnNlKFdURk1vdmUocmVzcG9uc2UpLCBbdGhpcywgcHJvdGVjdGVk
VGhpcyA9IG1ha2VSZWYoKnRoaXMpXSB7CisgICAgICAgICAgICBjb250aW51ZUFmdGVyRGlkUmVj
ZWl2ZVJlc3BvbnNlKCk7CisgICAgICAgIH0pOwogCiAgICAgICAgIC8vIGRpZFJlY2VpdmVSZXNw
b25zZSBtaWdodCBjYXVzZSB0aGUgY2xpZW50IHRvIGJlIGRlbGV0ZWQuCiAgICAgICAgIGlmICht
X2hhbmRsZS0+Y2xpZW50KCkpIHsKQEAgLTQzNyw3ICs0MzQsOSBAQCB2b2lkIFJlc291cmNlSGFu
ZGxlQ3VybERlbGVnYXRlOjpoYW5kbGVECiAgICAgfSBlbHNlIHsKICAgICAgICAgVGV4dEVuY29k
aW5nIGVuY29kaW5nKGNoYXJzZXQpOwogICAgICAgICBkYXRhID0gZGVjb2RlVVJMRXNjYXBlU2Vx
dWVuY2VzKGRhdGEsIGVuY29kaW5nKTsKLSAgICAgICAgbV9oYW5kbGUtPmRpZFJlY2VpdmVSZXNw
b25zZShXVEZNb3ZlKHJlc3BvbnNlKSk7CisgICAgICAgIG1faGFuZGxlLT5kaWRSZWNlaXZlUmVz
cG9uc2UoV1RGTW92ZShyZXNwb25zZSksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigq
dGhpcyldIHsKKyAgICAgICAgICAgIGNvbnRpbnVlQWZ0ZXJEaWRSZWNlaXZlUmVzcG9uc2UoKTsK
KyAgICAgICAgfSk7CiAKICAgICAgICAgLy8gZGlkUmVjZWl2ZVJlc3BvbnNlIG1pZ2h0IGNhdXNl
IHRoZSBjbGllbnQgdG8gYmUgZGVsZXRlZC4KICAgICAgICAgaWYgKG1faGFuZGxlLT5jbGllbnQo
KSkgewpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VI
YW5kbGVNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0JKHJldmlzaW9uIDIyNzM1NSkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCSh3b3JraW5n
IGNvcHkpCkBAIC00NzEsMTEgKzQ3MSw2IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OndpbGxTZW5k
UmVxdWVzdChSZXMKICAgICB9KTsKIH0KIAotdm9pZCBSZXNvdXJjZUhhbmRsZTo6Y29udGludWVE
aWRSZWNlaXZlUmVzcG9uc2UoKQotewotICAgIFtkZWxlZ2F0ZSgpIGNvbnRpbnVlRGlkUmVjZWl2
ZVJlc3BvbnNlXTsKLX0KLQogdm9pZCBSZXNvdXJjZUhhbmRsZTo6ZGlkUmVjZWl2ZUF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBjaGFsbGVuZ2Up
CiB7CiAgICAgQVNTRVJUKCFkLT5tX2N1cnJlbnRNYWNDaGFsbGVuZ2UpOwpJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVy
YXRpb25RdWV1ZURlbGVnYXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVn
YXRlLmgJKHJldmlzaW9uIDIyNzM1NSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC00Nyw3ICs0Nyw2IEBAIEBpbnRlcmZhY2UgV2ViQ29yZVJlc291cmNl
SGFuZGxlQXNPcGVyYXQKIAogLSAodm9pZClkZXRhY2hIYW5kbGU7CiAtIChpZClpbml0V2l0aEhh
bmRsZTooV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGUqKWhhbmRsZSBtZXNzYWdlUXVldWU6KE1lc3Nh
Z2VRdWV1ZTxGdW5jdGlvbjx2b2lkKCk+PiopbWVzc2FnZVF1ZXVlOwotLSAodm9pZCljb250aW51
ZURpZFJlY2VpdmVSZXNwb25zZTsKIC0gKHZvaWQpY29udGludWVDYW5BdXRoZW50aWNhdGVBZ2Fp
bnN0UHJvdGVjdGlvblNwYWNlOihCT09MKWNhbkF1dGhlbnRpY2F0ZTsKIC0gKHZvaWQpY29udGlu
dWVXaWxsQ2FjaGVSZXNwb25zZTooTlNDYWNoZWRVUkxSZXNwb25zZSAqKXJlc3BvbnNlOwogQGVu
ZApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291
cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3Bl
cmF0aW9uUXVldWVEZWxlZ2F0ZS5tbQkocmV2aXNpb24gMjI3MzU1KQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25R
dWV1ZURlbGVnYXRlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMDgsMTEgKzEwOCw2IEBAIC0gKHZv
aWQpZGVhbGxvYwogICAgIFtzdXBlciBkZWFsbG9jXTsKIH0KIAotLSAodm9pZCljb250aW51ZURp
ZFJlY2VpdmVSZXNwb25zZQotewotICAgIGRpc3BhdGNoX3NlbWFwaG9yZV9zaWduYWwobV9zZW1h
cGhvcmUpOwotfQotCiAtICh2b2lkKWNvbnRpbnVlQ2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3Rl
Y3Rpb25TcGFjZTooQk9PTCljYW5BdXRoZW50aWNhdGUKIHsKICAgICBtX2Jvb2xSZXN1bHQgPSBj
YW5BdXRoZW50aWNhdGU7CkBAIC0yMzAsNyArMjI1LDkgQEAgLSAodm9pZCljb25uZWN0aW9uOihO
U1VSTENvbm5lY3Rpb24gKiljbwogICAgICAgICByZXNvdXJjZVJlc3BvbnNlLnNldFNvdXJjZShS
ZXNvdXJjZVJlc3BvbnNlOjpTb3VyY2U6Ok5ldHdvcmspOwogICAgICAgICBSZXNvdXJjZUhhbmRs
ZTo6Z2V0Q29ubmVjdGlvblRpbWluZ0RhdGEoY29ubmVjdGlvbi5nZXQoKSwgcmVzb3VyY2VSZXNw
b25zZS5kZXByZWNhdGVkTmV0d29ya0xvYWRNZXRyaWNzKCkpOwogCi0gICAgICAgIG1faGFuZGxl
LT5kaWRSZWNlaXZlUmVzcG9uc2UoV1RGTW92ZShyZXNvdXJjZVJlc3BvbnNlKSk7CisgICAgICAg
IG1faGFuZGxlLT5kaWRSZWNlaXZlUmVzcG9uc2UoV1RGTW92ZShyZXNvdXJjZVJlc3BvbnNlKSwg
W3NlbGYsIHByb3RlY3RlZFNlbGYgPSBXVEZNb3ZlKHByb3RlY3RlZFNlbGYpXSB7CisgICAgICAg
ICAgICBkaXNwYXRjaF9zZW1hcGhvcmVfc2lnbmFsKG1fc2VtYXBob3JlKTsKKyAgICAgICAgfSk7
CiAgICAgfTsKIAogICAgIFtzZWxmIGNhbGxGdW5jdGlvbk9uTWFpblRocmVhZDpXVEZNb3ZlKHdv
cmspXTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJj
ZUhhbmRsZVNvdXAuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCShyZXZpc2lvbiAyMjczNTUpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNDYzLDcgKzQ2Myw5IEBAIHN0YXRpYyB2b2lkIG5leHRNdWx0
aXBhcnRSZXNwb25zZVBhcnRDYWwKIAogICAgIGQtPm1fcHJldmlvdXNQb3NpdGlvbiA9IDA7CiAK
LSAgICBoYW5kbGUtPmRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZVJlc3BvbnNlKGQtPm1fcmVz
cG9uc2UpKTsKKyAgICBoYW5kbGUtPmRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZVJlc3BvbnNl
KGQtPm1fcmVzcG9uc2UpLCBbaGFuZGxlID0gbWFrZVJlZigqaGFuZGxlKV0geworICAgICAgICBj
b250aW51ZUFmdGVyRGlkUmVjZWl2ZVJlc3BvbnNlKGhhbmRsZS5wdHIoKSk7CisgICAgfSk7CiB9
CiAKIHN0YXRpYyB2b2lkIHNlbmRSZXF1ZXN0Q2FsbGJhY2soR09iamVjdCosIEdBc3luY1Jlc3Vs
dCogcmVzdWx0LCBncG9pbnRlciBkYXRhKQpAQCAtNTIwLDcgKzUyMiw5IEBAIHN0YXRpYyB2b2lk
IHNlbmRSZXF1ZXN0Q2FsbGJhY2soR09iamVjdCoKICAgICBlbHNlCiAgICAgICAgIGQtPm1faW5w
dXRTdHJlYW0gPSBpbnB1dFN0cmVhbTsKIAotICAgIGhhbmRsZS0+ZGlkUmVjZWl2ZVJlc3BvbnNl
KFJlc291cmNlUmVzcG9uc2UoZC0+bV9yZXNwb25zZSkpOworICAgIGhhbmRsZS0+ZGlkUmVjZWl2
ZVJlc3BvbnNlKFJlc291cmNlUmVzcG9uc2UoZC0+bV9yZXNwb25zZSksIFtoYW5kbGUgPSBtYWtl
UmVmKCpoYW5kbGUpXSB7CisgICAgICAgIGNvbnRpbnVlQWZ0ZXJEaWRSZWNlaXZlUmVzcG9uc2Uo
aGFuZGxlLnB0cigpKTsKKyAgICB9KTsKIH0KIAogdm9pZCBSZXNvdXJjZUhhbmRsZTo6cGxhdGZv
cm1Db250aW51ZVN5bmNocm9ub3VzRGlkUmVjZWl2ZVJlc3BvbnNlKCkKQEAgLTEwMTksMTEgKzEw
MjMsNiBAQCBzdGF0aWMgdm9pZCByZWFkQ2FsbGJhY2soR09iamVjdCosIEdBc3luCiAgICAgICAg
IGQtPm1fY2FuY2VsbGFibGUuZ2V0KCksIHJlYWRDYWxsYmFjaywgaGFuZGxlLmdldCgpKTsKIH0K
IAotdm9pZCBSZXNvdXJjZUhhbmRsZTo6Y29udGludWVEaWRSZWNlaXZlUmVzcG9uc2UoKQotewot
ICAgIGNvbnRpbnVlQWZ0ZXJEaWRSZWNlaXZlUmVzcG9uc2UodGhpcyk7Ci19Ci0KIH0KIAogI2Vu
ZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwkocmV2aXNpb24gMjI3Mzc3KQorKysgU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOSBAQAorMjAxOC0wMS0yMiAgQWxleCBD
aHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIFVzZSBDb21w
bGV0aW9uSGFuZGxlcnMgZm9yIFJlc291cmNlSGFuZGxlQ2xpZW50OjpkaWRSZWNlaXZlUmVzcG9u
c2VBc3luYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTgxOTYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTWljaGFlbCBDYXRhbnphcm8uCisKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuaDoKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHA6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0xvYWQuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2Fk
UGFyYW1ldGVycy5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0
ZWRCdW5kbGUuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dl
YkRyYWdDbGllbnRNYWMubW06CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQ
YWdlTWFjLm1tOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisKIDIwMTgt
MDEtMjIgIE1lZ2FuIEdhcmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KIAogICAgICAg
ICBUZW1wb3JhcmlseSByZXN0b3JlIGJsb2NrIHNlbGVjdGlvbiBjb2RlIGNvbmRpdGlvbmFsbHkK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwCShy
ZXZpc2lvbiAyMjczNjQpCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtM
b2FkLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNiBAQAogI2luY2x1ZGUgIldlYkNv
cmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYkVycm9ycy5oIgogI2luY2x1ZGUgPFdl
YkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlSGFuZGxl
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1NoYXJlZEJ1ZmZlci5oPgogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KSW5kZXg6IFNv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmgJKHJldmlzaW9uIDIyNzM2
NCkKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgIk5ldHdvcmtMb2FkUGFyYW1ldGVy
cy5oIgogI2luY2x1ZGUgIlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSA8V2Vi
Q29yZS9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3Vy
Y2VIYW5kbGVDbGllbnQuaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNp
bmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KIApJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuaAko
cmV2aXNpb24gMjI3MzU1KQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UmVzb3VyY2VMb2FkUGFyYW1ldGVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMywxNSArMjMsMTMg
QEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIE5l
dHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzX2gKLSNkZWZpbmUgTmV0d29ya1Jlc291cmNlTG9h
ZFBhcmFtZXRlcnNfaAorI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJOZXR3b3JrTG9hZFBhcmFt
ZXRlcnMuaCIKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSAiV2ViQ29t
cGlsZWRDb250ZW50UnVsZUxpc3REYXRhLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Db250ZW50U2Vj
dXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZldGNoT3B0
aW9ucy5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VIYW5kbGUuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1Jlc291cmNlTG9hZGVyT3B0aW9ucy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3Vy
Y2VSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgpAQCAtNjgs
NSArNjYsMyBAQCBwdWJsaWM6CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlm
IC8vIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzX2gKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuaAkocmV2aXNpb24gMjI3
MzY0KQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQu
aAkod29ya2luZyBjb3B5KQpAQCAtMzAsOCArMzAsNiBAQAogI2luY2x1ZGUgIk5ldHdvcmtEYXRh
VGFzay5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKICNpbmNsdWRlIDxXZWJDb3Jl
L0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUhh
bmRsZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VIYW5kbGVDbGllbnQuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgogI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNs
dWRlIDxwYWwvU2Vzc2lvbklELmg+CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuY3BwCShyZXZpc2lvbiAyMjczNjQpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwOCw3ICsxMDgsNiBAQAogI2luY2x1
ZGUgPFdlYkNvcmUvUGFnZUNhY2hlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlR3JvdXAuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oPgotI2luY2x1
ZGUgPFdlYkNvcmUvUmVzb3VyY2VIYW5kbGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNl
TG9hZE9ic2VydmVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUxvYWRTdGF0aXN0aWNz
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaD4KSW5kZXg6
IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0luamVjdGVkQnVuZGxlLmNwcAkocmV2aXNpb24gMjI3MzU1KQorKysgU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNjgsNyArNjgsNiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvUGFnZUdyb3VwLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QcmludENvbnRleHQuaD4K
LSNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlSGFuZGxlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9S
dW50aW1lRW5hYmxlZEZlYXR1cmVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TV0NvbnRleHRNYW5h
Z2VyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JpcHRDb250cm9sbGVyLmg+CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkRyYWdDbGllbnRNYWMu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L21hYy9XZWJEcmFnQ2xpZW50TWFjLm1tCShyZXZpc2lvbiAyMjczNTUpCisrKyBTb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkRyYWdDbGllbnRNYWMubW0JKHdv
cmtpbmcgY29weSkKQEAgLTQ4LDcgKzQ4LDYgQEAKICNpbXBvcnQgPFdlYkNvcmUvUGFnZS5oPgog
I2ltcG9ydCA8V2ViQ29yZS9QYXN0ZWJvYXJkLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1JlbmRlcklt
YWdlLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1Jlc291cmNlSGFuZGxlLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL1N0cmluZ1RydW5jYXRvci5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlTlNVUkxFeHRy
YXMuaD4KICNpbXBvcnQgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KSW5kZXg6IFNvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCShyZXZpc2lvbiAy
MjczNTUpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1h
Yy5tbQkod29ya2luZyBjb3B5KQpAQCAtODMsNyArODMsNiBAQAogI2ltcG9ydCA8V2ViQ29yZS9S
ZW5kZXJPYmplY3QuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVuZGVyU3R5bGUuaD4KICNpbXBvcnQg
PFdlYkNvcmUvUmVuZGVyVmlldy5oPgotI2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJjZUhhbmRsZS5o
PgogI2ltcG9ydCA8V2ViQ29yZS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaD4KICNpbXBvcnQg
PFdlYkNvcmUvU2Nyb2xsVmlldy5oPgogI2ltcG9ydCA8V2ViQ29yZS9TdHlsZUluaGVyaXRlZERh
dGEuaD4KSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMjczNTUpCisrKyBTb3Vy
Y2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBA
CisyMDE4LTAxLTIyICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+
CisKKyAgICAgICAgVXNlIENvbXBsZXRpb25IYW5kbGVycyBmb3IgUmVzb3VyY2VIYW5kbGVDbGll
bnQ6OmRpZFJlY2VpdmVSZXNwb25zZUFzeW5jCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xODE5NjEKKworICAgICAgICBSZXZpZXdlZCBieSBNaWNoYWVs
IENhdGFuemFyby4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZFNj
aGVkdWxlci5jcHA6CisKIDIwMTgtMDEtMTYgIEZ1amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVq
aWlAc29ueS5jb20+CiAKICAgICAgICAgW0NNYWtlXSBSZW1vdmUgV2ViQ29yZURlcml2ZWRTb3Vy
Y2VzIGxpYnJhcnkgdGFyZ2V0CkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBw
b3J0L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwCShy
ZXZpc2lvbiAyMjczNTUpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dl
YlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDYg
QEAKICNpbmNsdWRlIDxXZWJDb3JlL05ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9QaW5nSGFuZGxlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybVN0
cmF0ZWdpZXMuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlSGFuZGxlLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1N1YnJlc291
cmNlTG9hZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9VUkwuaD4KSW5kZXg6IFNvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyNzM1NSkKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDE4LTAxLTIy
ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAg
VXNlIENvbXBsZXRpb25IYW5kbGVycyBmb3IgUmVzb3VyY2VIYW5kbGVDbGllbnQ6OmRpZFJlY2Vp
dmVSZXNwb25zZUFzeW5jCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xODE5NjEKKworICAgICAgICBSZXZpZXdlZCBieSBNaWNoYWVsIENhdGFuemFyby4K
KworICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW06CisKIDIwMTgtMDEtMjEgIFJ5
b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVHVybmluZyBvZmYgY3Vz
dG9tIHBhc3RlYm9hcmQgZGF0YSBkb2Vzbid0IGFjdHVhbGx5IHR1cm4gaXQgb2ZmIGluIFdLMgpJ
bmRleDogU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVu
Y2VzLm1tCShyZXZpc2lvbiAyMjczNTUpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJW
aWV3L1dlYlByZWZlcmVuY2VzLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00Miw3ICs0Miw2IEBACiAj
aW1wb3J0IDxXZWJDb3JlL0RlcHJlY2F0ZWRHbG9iYWxTZXR0aW5ncy5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4KICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1D
b29raWVKYXIuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VIYW5kbGUuaD4KICNpbXBvcnQg
PFdlYkNvcmUvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Nl
dHRpbmdzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RleHRFbmNvZGluZ1JlZ2lzdHJ5Lmg+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>332058</attachid>
            <date>2018-01-23 12:19:25 -0800</date>
            <delta_ts>2018-01-23 13:37:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-181961-20180123121925.patch</filename>
            <type>text/plain</type>
            <size>37177</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyNzQyOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ5IEBACisyMDE4LTAxLTIzICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVXNlIENvbXBs
ZXRpb25IYW5kbGVycyBmb3IgUmVzb3VyY2VIYW5kbGVDbGllbnQ6OmRpZFJlY2VpdmVSZXNwb25z
ZUFzeW5jCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
ODE5NjEKKworICAgICAgICBSZXZpZXdlZCBieSBNaWNoYWVsIENhdGFuemFyby4KKworICAgICAg
ICBObyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2Fk
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNw
b25zZUFzeW5jKToKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAg
KiBsb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6ZGlkUmVjZWl2ZVJlc3BvbnNlQXN5bmMpOgor
ICAgICAgICAqIGxvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpCbG9iUmVzb3VyY2VIYW5kbGU6Om5vdGlmeVJlc3BvbnNlT25TdWNjZXNzKToKKyAg
ICAgICAgKFdlYkNvcmU6OkJsb2JSZXNvdXJjZUhhbmRsZTo6bm90aWZ5UmVzcG9uc2VPbkVycm9y
KToKKyAgICAgICAgKFdlYkNvcmU6OkJsb2JSZXNvdXJjZUhhbmRsZTo6Y29udGludWVEaWRSZWNl
aXZlUmVzcG9uc2UpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvQmxvYlJl
c291cmNlSGFuZGxlLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9QaW5nSGFuZGxlLmg6
CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6ZGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmg6CisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9SZXNvdXJjZUhhbmRsZUNsaWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvU3luY2hyb25vdXNMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3luY2hy
b25vdXNMb2FkZXJDbGllbnQ6OmRpZFJlY2VpdmVSZXNwb25zZUFzeW5jKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL1N5bmNocm9ub3VzTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogcGxh
dGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0
aE9wZXJhdGlvblF1ZXVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlQ0ZV
UkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWU6OmRpZFJlY2VpdmVSZXNwb25z
ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVn
YXRlV2l0aE9wZXJhdGlvblF1ZXVlOjpjb250aW51ZURpZFJlY2VpdmVSZXNwb25zZSk6IERlbGV0
ZWQuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybERl
bGVnYXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlQ3VybERlbGVnYXRl
OjpjdXJsRGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFu
ZGxlQ3VybERlbGVnYXRlOjpoYW5kbGVEYXRhVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlSGFuZGxlQ3VybERlbGVnYXRlOjpjb250aW51ZURpZFJlY2VpdmVSZXNwb25zZSk6IERlbGV0
ZWQuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW06
CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6Y29udGludWVEaWRSZWNlaXZlUmVz
cG9uc2UpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVS
ZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5oOgorICAgICAgICAqIHBsYXRm
b3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxl
Z2F0ZS5tbToKKyAgICAgICAgKC1bV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1
ZURlbGVnYXRlIGNvbm5lY3Rpb246ZGlkUmVjZWl2ZVJlc3BvbnNlOl0pOgorICAgICAgICAoLVtX
ZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUgY29udGludWVEaWRS
ZWNlaXZlUmVzcG9uc2VdKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3Nv
dXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om5leHRNdWx0aXBh
cnRSZXNwb25zZVBhcnRDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpzZW5kUmVxdWVzdENh
bGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjb250aW51ZURpZFJl
Y2VpdmVSZXNwb25zZSk6IERlbGV0ZWQuCisKIDIwMTgtMDEtMjMgIEFudG9pbmUgUXVpbnQgIDxn
cmFvdXRzQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViIEFuaW1hdGlvbnNdIEV4cG9zZSBnZXRL
ZXlmcmFtZXMoKSBhbmQgcGFyc2luZyBvZiByZW1haW5pbmcga2V5ZnJhbWUgcHJvcGVydGllcwpJ
bmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCShyZXZpc2lvbiAy
Mjc0MjgpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC02NTcsMTQgKzY1NywxNCBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpkaWRT
ZW5kRGF0YShSZXNvdXJjCiAgICAgZGlkU2VuZERhdGEoYnl0ZXNTZW50LCB0b3RhbEJ5dGVzVG9C
ZVNlbnQpOwogfQogCi12b2lkIFJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2VBc3lu
YyhSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBSZXNvdXJjZVJlc3BvbnNlJiYgcmVzcG9uc2UpCit2
b2lkIFJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2VBc3luYyhSZXNvdXJjZUhhbmRs
ZSosIFJlc291cmNlUmVzcG9uc2UmJiByZXNwb25zZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmIChkb2N1bWVudExvYWRlcigpLT5hcHBs
aWNhdGlvbkNhY2hlSG9zdCgpLm1heWJlTG9hZEZhbGxiYWNrRm9yUmVzcG9uc2UodGhpcywgcmVz
cG9uc2UpKSB7Ci0gICAgICAgIGhhbmRsZS0+Y29udGludWVEaWRSZWNlaXZlUmVzcG9uc2UoKTsK
KyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAg
ICBkaWRSZWNlaXZlUmVzcG9uc2UocmVzcG9uc2UpOwotICAgIGhhbmRsZS0+Y29udGludWVEaWRS
ZWNlaXZlUmVzcG9uc2UoKTsKKyAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogfQogCiB2b2lkIFJl
c291cmNlTG9hZGVyOjpkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIq
IGRhdGEsIHVuc2lnbmVkIGxlbmd0aCwgaW50IGVuY29kZWREYXRhTGVuZ3RoKQpJbmRleDogU291
cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmgJKHJldmlzaW9uIDIyNzQyOCkKKysrIFNv
dXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
ODIsNyArMTgyLDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIFJlc291cmNlSGFuZGxlQ2xpZW50CiAg
ICAgdm9pZCBkaWRTZW5kRGF0YShSZXNvdXJjZUhhbmRsZSosIHVuc2lnbmVkIGxvbmcgbG9uZyBi
eXRlc1NlbnQsIHVuc2lnbmVkIGxvbmcgbG9uZyB0b3RhbEJ5dGVzVG9CZVNlbnQpIG92ZXJyaWRl
OwotICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlQXN5bmMoUmVzb3VyY2VIYW5kbGUqLCBSZXNv
dXJjZVJlc3BvbnNlJiYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlQXN5
bmMoUmVzb3VyY2VIYW5kbGUqLCBSZXNvdXJjZVJlc3BvbnNlJiYsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCB3aWxsU2VuZFJlcXVlc3RBc3luYyhSZXNv
dXJjZUhhbmRsZSosIFJlc291cmNlUmVxdWVzdCYmLCBSZXNvdXJjZVJlc3BvbnNlJiYsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoUmVzb3VyY2VSZXF1ZXN0JiYpPiYmKSBvdmVycmlkZTsKICAgICB2
b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciosIHVuc2lnbmVk
LCBpbnQgZW5jb2RlZERhdGFMZW5ndGgpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlkUmVjZWl2ZUJ1
ZmZlcihSZXNvdXJjZUhhbmRsZSosIFJlZjxTaGFyZWRCdWZmZXI+JiYsIGludCBlbmNvZGVkRGF0
YUxlbmd0aCkgb3ZlcnJpZGU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUv
QXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9s
b2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcAkocmV2aXNpb24gMjI3NDI4
KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91
cC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ4OSwxNCArNDg5LDE0IEBAIFJlZlB0cjxSZXNvdXJj
ZUhhbmRsZT4gQXBwbGljYXRpb25DYWNoZUcKICAgICByZXR1cm4gaGFuZGxlOwogfQogCi12b2lk
IEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6ZGlkUmVjZWl2ZVJlc3BvbnNlQXN5bmMoUmVzb3VyY2VI
YW5kbGUqIGhhbmRsZSwgUmVzb3VyY2VSZXNwb25zZSYmIHJlc3BvbnNlKQordm9pZCBBcHBsaWNh
dGlvbkNhY2hlR3JvdXA6OmRpZFJlY2VpdmVSZXNwb25zZUFzeW5jKFJlc291cmNlSGFuZGxlKiBo
YW5kbGUsIFJlc291cmNlUmVzcG9uc2UmJiByZXNwb25zZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVChtX2ZyYW1lKTsKICAgICBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNlKCptX2Zy
YW1lLCBtX2N1cnJlbnRSZXNvdXJjZUlkZW50aWZpZXIsIG1fZnJhbWUtPmxvYWRlcigpLmRvY3Vt
ZW50TG9hZGVyKCksIHJlc3BvbnNlLCBudWxscHRyKTsKIAogICAgIGlmIChoYW5kbGUgPT0gbV9t
YW5pZmVzdEhhbmRsZSkgewogICAgICAgICBkaWRSZWNlaXZlTWFuaWZlc3RSZXNwb25zZShyZXNw
b25zZSk7Ci0gICAgICAgIGhhbmRsZS0+Y29udGludWVEaWRSZWNlaXZlUmVzcG9uc2UoKTsKKyAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAt
NTIzLDcgKzUyMyw3IEBAIHZvaWQgQXBwbGljYXRpb25DYWNoZUdyb3VwOjpkaWRSZWNlaXZlUmUK
ICAgICAgICAgICAgIG1fY3VycmVudEhhbmRsZSA9IG51bGxwdHI7CiAgICAgICAgICAgICAvLyBM
b2FkIHRoZSBuZXh0IHJlc291cmNlLCBpZiBhbnkuCiAgICAgICAgICAgICBzdGFydExvYWRpbmdF
bnRyeSgpOwotICAgICAgICAgICAgaGFuZGxlLT5jb250aW51ZURpZFJlY2VpdmVSZXNwb25zZSgp
OworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQogICAgICAgICAvLyBUaGUgc2VydmVyIGNvdWxkIHJldHVybiAzMDQgZm9yIGFu
IHVuY29uZGl0aW9uYWwgcmVxdWVzdCAtIGluIHRoaXMgY2FzZSwgd2UgaGFuZGxlIHRoZSByZXNw
b25zZSBhcyBhIG5vcm1hbCBlcnJvci4KQEAgLTU1NSwxMiArNTU1LDEyIEBAIHZvaWQgQXBwbGlj
YXRpb25DYWNoZUdyb3VwOjpkaWRSZWNlaXZlUmUKICAgICAgICAgICAgIC8vIExvYWQgdGhlIG5l
eHQgcmVzb3VyY2UsIGlmIGFueS4KICAgICAgICAgICAgIHN0YXJ0TG9hZGluZ0VudHJ5KCk7CiAg
ICAgICAgIH0KLSAgICAgICAgaGFuZGxlLT5jb250aW51ZURpZFJlY2VpdmVSZXNwb25zZSgpOwor
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAg
IAogICAgIG1fY3VycmVudFJlc291cmNlID0gQXBwbGljYXRpb25DYWNoZVJlc291cmNlOjpjcmVh
dGUodXJsLCByZXNwb25zZSwgdHlwZSk7Ci0gICAgaGFuZGxlLT5jb250aW51ZURpZFJlY2VpdmVS
ZXNwb25zZSgpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9CiAKIHZvaWQgQXBwbGljYXRp
b25DYWNoZUdyb3VwOjp3aWxsU2VuZFJlcXVlc3RBc3luYyhSZXNvdXJjZUhhbmRsZSosIFJlc291
cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFJlc291cmNlUmVzcG9uc2UmJiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChSZXNvdXJjZVJlcXVlc3QmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2Fj
aGVHcm91cC5oCShyZXZpc2lvbiAyMjc0MjgpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBw
Y2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwOSw3ICsx
MDksNyBAQCBwcml2YXRlOgogICAgIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UoUmVz
b3VyY2VIYW5kbGUqKSBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKICAgICAvLyBSZXNvdXJj
ZUhhbmRsZUNsaWVudAotICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlQXN5bmMoUmVzb3VyY2VI
YW5kbGUqLCBSZXNvdXJjZVJlc3BvbnNlJiYpIGZpbmFsOworICAgIHZvaWQgZGlkUmVjZWl2ZVJl
c3BvbnNlQXN5bmMoUmVzb3VyY2VIYW5kbGUqLCBSZXNvdXJjZVJlc3BvbnNlJiYsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJikgZmluYWw7CiAgICAgdm9pZCB3aWxsU2VuZFJlcXVlc3RBc3lu
YyhSZXNvdXJjZUhhbmRsZSosIFJlc291cmNlUmVxdWVzdCYmLCBSZXNvdXJjZVJlc3BvbnNlJiYs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVzb3VyY2VSZXF1ZXN0JiYpPiYmKSBmaW5hbDsKICNp
ZiBVU0UoUFJPVEVDVElPTl9TUEFDRV9BVVRIX0NBTExCQUNLKQogICAgIHZvaWQgY2FuQXV0aGVu
dGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZUFzeW5jKFJlc291cmNlSGFuZGxlKiwgY29uc3Qg
UHJvdGVjdGlvblNwYWNlJikgZmluYWw7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVzb3VyY2VIYW5kbGUuY3BwCShyZXZpc2lvbiAyMjc0
MjgpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRs
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc1LDcgKzc1LDcgQEAgY2xhc3MgQmxvYlJlc291cmNl
U3luY2hyb25vdXNMb2FkZXIgOiBwdQogcHVibGljOgogICAgIEJsb2JSZXNvdXJjZVN5bmNocm9u
b3VzTG9hZGVyKFJlc291cmNlRXJyb3ImLCBSZXNvdXJjZVJlc3BvbnNlJiwgVmVjdG9yPGNoYXI+
Jik7CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZUFzeW5jKFJlc291cmNlSGFuZGxlKiwg
UmVzb3VyY2VSZXNwb25zZSYmKSBmaW5hbDsKKyAgICB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZUFz
eW5jKFJlc291cmNlSGFuZGxlKiwgUmVzb3VyY2VSZXNwb25zZSYmLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYpIGZpbmFsOwogICAgIHZvaWQgZGlkRmFpbChSZXNvdXJjZUhhbmRsZSosIGNv
bnN0IFJlc291cmNlRXJyb3ImKSBmaW5hbDsKICAgICB2b2lkIHdpbGxTZW5kUmVxdWVzdEFzeW5j
KFJlc291cmNlSGFuZGxlKiwgUmVzb3VyY2VSZXF1ZXN0JiYsIFJlc291cmNlUmVzcG9uc2UmJiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChSZXNvdXJjZVJlcXVlc3QmJik+JiYpIGZpbmFsOwogI2lm
IFVTRShQUk9URUNUSU9OX1NQQUNFX0FVVEhfQ0FMTEJBQ0spCkBAIC0xMDksMTIgKzEwOSwxMiBA
QCB2b2lkIEJsb2JSZXNvdXJjZVN5bmNocm9ub3VzTG9hZGVyOjpjYW5BCiB9CiAjZW5kaWYKIAot
dm9pZCBCbG9iUmVzb3VyY2VTeW5jaHJvbm91c0xvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlQXN5
bmMoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgUmVzb3VyY2VSZXNwb25zZSYmIHJlc3BvbnNlKQor
dm9pZCBCbG9iUmVzb3VyY2VTeW5jaHJvbm91c0xvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlQXN5
bmMoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgUmVzb3VyY2VSZXNwb25zZSYmIHJlc3BvbnNlLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgLy8g
V2UgY2Fubm90IGhhbmRsZSB0aGUgc2l6ZSB0aGF0IGlzIG1vcmUgdGhhbiBtYXhpbXVtIGludGVn
ZXIuCiAgICAgaWYgKHJlc3BvbnNlLmV4cGVjdGVkQ29udGVudExlbmd0aCgpID4gSU5UX01BWCkg
ewogICAgICAgICBtX2Vycm9yID0gUmVzb3VyY2VFcnJvcih3ZWJLaXRCbG9iUmVzb3VyY2VEb21h
aW4sIHN0YXRpY19jYXN0PGludD4oQmxvYlJlc291cmNlSGFuZGxlOjpFcnJvcjo6Tm90UmVhZGFi
bGVFcnJvciksIHJlc3BvbnNlLnVybCgpLCAiRmlsZSBpcyB0b28gbGFyZ2UiKTsKLSAgICAgICAg
aGFuZGxlLT5jb250aW51ZURpZFJlY2VpdmVSZXNwb25zZSgpOworICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcigpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0xMjMsNyArMTIzLDcgQEAg
dm9pZCBCbG9iUmVzb3VyY2VTeW5jaHJvbm91c0xvYWRlcjo6ZGlkUgogICAgIC8vIFJlYWQgYWxs
IHRoZSBkYXRhLgogICAgIG1fZGF0YS5yZXNpemUoc3RhdGljX2Nhc3Q8c2l6ZV90PihyZXNwb25z
ZS5leHBlY3RlZENvbnRlbnRMZW5ndGgoKSkpOwogICAgIHN0YXRpY19jYXN0PEJsb2JSZXNvdXJj
ZUhhbmRsZSo+KGhhbmRsZSktPnJlYWRTeW5jKG1fZGF0YS5kYXRhKCksIHN0YXRpY19jYXN0PGlu
dD4obV9kYXRhLnNpemUoKSkpOwotICAgIGhhbmRsZS0+Y29udGludWVEaWRSZWNlaXZlUmVzcG9u
c2UoKTsKKyAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogfQogCiB2b2lkIEJsb2JSZXNvdXJjZVN5
bmNocm9ub3VzTG9hZGVyOjpkaWRGYWlsKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VF
cnJvciYgZXJyb3IpCkBAIC0xNzYsMTIgKzE3Niw2IEBAIHZvaWQgQmxvYlJlc291cmNlSGFuZGxl
OjpjYW5jZWwoKQogICAgIFJlc291cmNlSGFuZGxlOjpjYW5jZWwoKTsKIH0KIAotdm9pZCBCbG9i
UmVzb3VyY2VIYW5kbGU6OmNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlKCkKLXsKLSAgICBtX2J1
ZmZlci5yZXNpemUoYnVmZmVyU2l6ZSk7Ci0gICAgcmVhZEFzeW5jKCk7Ci19Ci0KIHZvaWQgQmxv
YlJlc291cmNlSGFuZGxlOjpzdGFydCgpCiB7CiAgICAgaWYgKCFtX2FzeW5jKSB7CkBAIC01ODQs
NyArNTc4LDEwIEBAIHZvaWQgQmxvYlJlc291cmNlSGFuZGxlOjpub3RpZnlSZXNwb25zZU8KICAg
ICAvLyBhcyBpZiB0aGUgcmVzcG9uc2UgaGFkIGEgQ29udGVudC1EaXNwb3NpdGlvbiBoZWFkZXIg
d2l0aCB0aGUgZmlsZW5hbWUgcGFyYW1ldGVyIHNldCB0byB0aGUgRmlsZSdzIG5hbWUgYXR0cmli
dXRlLgogICAgIC8vIE5vdGFibHksIHRoaXMgd2lsbCBhZmZlY3QgYSBuYW1lIHN1Z2dlc3RlZCBp
biAiRmlsZSBTYXZlIEFzIi4KIAotICAgIGNsaWVudCgpLT5kaWRSZWNlaXZlUmVzcG9uc2VBc3lu
Yyh0aGlzLCBXVEZNb3ZlKHJlc3BvbnNlKSk7CisgICAgY2xpZW50KCktPmRpZFJlY2VpdmVSZXNw
b25zZUFzeW5jKHRoaXMsIFdURk1vdmUocmVzcG9uc2UpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9
IG1ha2VSZWYoKnRoaXMpXSB7CisgICAgICAgIG1fYnVmZmVyLnJlc2l6ZShidWZmZXJTaXplKTsK
KyAgICAgICAgcmVhZEFzeW5jKCk7CisgICAgfSk7CiB9CiAKIHZvaWQgQmxvYlJlc291cmNlSGFu
ZGxlOjpub3RpZnlSZXNwb25zZU9uRXJyb3IoKQpAQCAtNjA3LDcgKzYwNCwxMCBAQCB2b2lkIEJs
b2JSZXNvdXJjZUhhbmRsZTo6bm90aWZ5UmVzcG9uc2VPCiAgICAgICAgIGJyZWFrOwogICAgIH0K
IAotICAgIGNsaWVudCgpLT5kaWRSZWNlaXZlUmVzcG9uc2VBc3luYyh0aGlzLCBXVEZNb3ZlKHJl
c3BvbnNlKSk7CisgICAgY2xpZW50KCktPmRpZFJlY2VpdmVSZXNwb25zZUFzeW5jKHRoaXMsIFdU
Rk1vdmUocmVzcG9uc2UpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSB7
CisgICAgICAgIG1fYnVmZmVyLnJlc2l6ZShidWZmZXJTaXplKTsKKyAgICAgICAgcmVhZEFzeW5j
KCk7CisgICAgfSk7CiB9CiAKIHZvaWQgQmxvYlJlc291cmNlSGFuZGxlOjpub3RpZnlSZWNlaXZl
RGF0YShjb25zdCBjaGFyKiBkYXRhLCBpbnQgYnl0ZXNSZWFkKQpJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVzb3VyY2VIYW5kbGUuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5oCShyZXZp
c2lvbiAyMjc0MjgpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZXNv
dXJjZUhhbmRsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC03NSw3ICs3NSw2IEBAIHByaXZhdGU6CiAK
ICAgICAvLyBSZXNvdXJjZUhhbmRsZSBtZXRob2RzLgogICAgIHZvaWQgY2FuY2VsKCkgb3ZlcnJp
ZGU7Ci0gICAgdm9pZCBjb250aW51ZURpZFJlY2VpdmVSZXNwb25zZSgpIG92ZXJyaWRlOwogCiAg
ICAgdm9pZCBkb1N0YXJ0KCk7CiAgICAgdm9pZCBnZXRTaXplRm9yTmV4dCgpOwpJbmRleDogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9QaW5nSGFuZGxlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9QaW5nSGFuZGxlLmgJKHJldmlzaW9uIDIy
NzQyOCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUGluZ0hhbmRsZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC02Nyw5ICs2Nyw5IEBAIHByaXZhdGU6CiAgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKHsgfSk7CiAgICAgICAgIHBpbmdMb2FkQ29tcGxldGUoUmVzb3VyY2VFcnJvciB7
IFN0cmluZygpLCAwLCBtX2N1cnJlbnRSZXF1ZXN0LnVybCgpLCBBU0NJSUxpdGVyYWwoIk5vdCBh
bGxvd2VkIHRvIGZvbGxvdyByZWRpcmVjdHMiKSwgUmVzb3VyY2VFcnJvcjo6VHlwZTo6QWNjZXNz
Q29udHJvbCB9KTsKICAgICB9Ci0gICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2VBc3luYyhSZXNv
dXJjZUhhbmRsZSosIFJlc291cmNlUmVzcG9uc2UmJiByZXNwb25zZSkgZmluYWwKKyAgICB2b2lk
IGRpZFJlY2VpdmVSZXNwb25zZUFzeW5jKFJlc291cmNlSGFuZGxlKiwgUmVzb3VyY2VSZXNwb25z
ZSYmIHJlc3BvbnNlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpIGZpbmFsCiAgICAgewotICAgICAgICBtX2hhbmRsZS0+Y29udGludWVEaWRSZWNlaXZlUmVz
cG9uc2UoKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKICAgICAgICAgcGluZ0xvYWRD
b21wbGV0ZSh7IH0sIHJlc3BvbnNlKTsKICAgICB9CiAgICAgdm9pZCBkaWRSZWNlaXZlQnVmZmVy
KFJlc291cmNlSGFuZGxlKiwgUmVmPFNoYXJlZEJ1ZmZlcj4mJiwgaW50KSBmaW5hbCB7IHBpbmdM
b2FkQ29tcGxldGUoKTsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9S
ZXNvdXJjZUhhbmRsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHAJKHJldmlzaW9uIDIyNzQyOCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGVDbGllbnQuaCIKICNp
bmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPGFsZ29yaXRobT4KKyNpbmNsdWRlIDx3dGYvQ29t
cGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUg
PHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZ0hh
c2guaD4KQEAgLTE1MCw3ICsxNTEsNyBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpjbGVhckNsaWVu
dCgpCiAgICAgZC0+bV9jbGllbnQgPSBudWxscHRyOwogfQogCi12b2lkIFJlc291cmNlSGFuZGxl
OjpkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VSZXNwb25zZSYmIHJlc3BvbnNlKQordm9pZCBS
ZXNvdXJjZUhhbmRsZTo6ZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlUmVzcG9uc2UmJiByZXNw
b25zZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewog
ICAgIGlmIChyZXNwb25zZS5pc0hUVFAwOSgpKSB7CiAgICAgICAgIGF1dG8gdXJsID0gcmVzcG9u
c2UudXJsKCk7CkBAIC0xNTksMTEgKzE2MCwxMSBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpkaWRS
ZWNlaXZlUmVzcG9uc2UoCiAgICAgICAgICAgICBjYW5jZWwoKTsKICAgICAgICAgICAgIFN0cmlu
ZyBtZXNzYWdlID0gIkNhbmNlbGxlZCBsb2FkIGZyb20gJyIgKyB1cmwuc3RyaW5nQ2VudGVyRWxs
aXBzaXplZFRvTGVuZ3RoKCkgKyAiJyBiZWNhdXNlIGl0IGlzIHVzaW5nIEhUVFAvMC45LiI7CiAg
ICAgICAgICAgICBkLT5tX2NsaWVudC0+ZGlkRmFpbCh0aGlzLCB7IFN0cmluZygpLCAwLCB1cmws
IG1lc3NhZ2UgfSk7Ci0gICAgICAgICAgICBjb250aW51ZURpZFJlY2VpdmVSZXNwb25zZSgpOwor
ICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgfQogICAgIH0KLSAgICBjbGllbnQoKS0+ZGlkUmVjZWl2ZVJlc3BvbnNlQXN5bmModGhp
cywgV1RGTW92ZShyZXNwb25zZSkpOworICAgIGNsaWVudCgpLT5kaWRSZWNlaXZlUmVzcG9uc2VB
c3luYyh0aGlzLCBXVEZNb3ZlKHJlc3BvbnNlKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikp
OwogfQogCiAjaWYgIVVTRShTT1VQKSAmJiAhVVNFKENVUkwpCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCShyZXZpc2lvbiAyMjc0
MjgpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEwNyw3ICsxMDcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCB3aWxs
U2VuZFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiYsIFJlc291cmNlUmVzcG9uc2UmJiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChSZXNvdXJjZVJlcXVlc3QmJik+JiYpOwogI2VuZGlmCiAKLSAgICB2
b2lkIGRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZVJlc3BvbnNlJiYpOworICAgIHZvaWQgZGlk
UmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlUmVzcG9uc2UmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKTsKIAogICAgIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UoKTsKICAgICB2
b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShjb25zdCBBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZSYpOwpAQCAtMTkzLDkgKzE5Myw2IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VY
UE9SVCBSZXNvdXJjZUhhbmRsZUNsaWVudCogY2xpZW50KCkgY29uc3Q7CiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBjbGVhckNsaWVudCgpOwogCi0gICAgLy8gQ2FsbGVkIGluIHJlc3BvbnNlIHRv
IFJlc291cmNlSGFuZGxlQ2xpZW50OjpkaWRSZWNlaXZlUmVzcG9uc2VBc3luYygpLgotICAgIFdF
QkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBjb250aW51ZURpZFJlY2VpdmVSZXNwb25zZSgpOwot
CiAjaWYgVVNFKFBST1RFQ1RJT05fU1BBQ0VfQVVUSF9DQUxMQkFDSykKICAgICAvLyBDYWxsZWQg
aW4gcmVzcG9uc2UgdG8gUmVzb3VyY2VIYW5kbGVDbGllbnQ6OmNhbkF1dGhlbnRpY2F0ZUFnYWlu
c3RQcm90ZWN0aW9uU3BhY2VBc3luYygpLgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY29udGlu
dWVDYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlKGJvb2wpOwpJbmRleDogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUNsaWVudC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVD
bGllbnQuaAkocmV2aXNpb24gMjI3NDI4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9SZXNvdXJjZUhhbmRsZUNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC03Nyw4ICs3Nyw3
IEBAIHB1YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCB3aWxsU2VuZFJl
cXVlc3RBc3luYyhSZXNvdXJjZUhhbmRsZSosIFJlc291cmNlUmVxdWVzdCYmLCBSZXNvdXJjZVJl
c3BvbnNlJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVzb3VyY2VSZXF1ZXN0JiYpPiYmKSA9
IDA7CiAKLSAgICAvLyBDbGllbnQgd2lsbCBjYWxsIFJlc291cmNlSGFuZGxlOjpjb250aW51ZURp
ZFJlY2VpdmVSZXNwb25zZSgpIHdoZW4gcmVhZHkuCi0gICAgV0VCQ09SRV9FWFBPUlQgdmlydHVh
bCB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZUFzeW5jKFJlc291cmNlSGFuZGxlKiwgUmVzb3VyY2VS
ZXNwb25zZSYmKSA9IDA7CisgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIGRpZFJlY2Vp
dmVSZXNwb25zZUFzeW5jKFJlc291cmNlSGFuZGxlKiwgUmVzb3VyY2VSZXNwb25zZSYmLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpID0gMDsKIAogI2lmIFVTRShQUk9URUNUSU9OX1NQQUNF
X0FVVEhfQ0FMTEJBQ0spCiAgICAgLy8gQ2xpZW50IHdpbGwgcGFzcyBhbiB1cGRhdGVkIHJlcXVl
c3QgdXNpbmcgUmVzb3VyY2VIYW5kbGU6OmNvbnRpbnVlQ2FuQXV0aGVudGljYXRlQWdhaW5zdFBy
b3RlY3Rpb25TcGFjZSgpIHdoZW4gcmVhZHkuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL1N5bmNocm9ub3VzTG9hZGVyQ2xpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1N5bmNocm9ub3VzTG9hZGVyQ2xpZW50LmNwcAko
cmV2aXNpb24gMjI3NDI4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9TeW5j
aHJvbm91c0xvYWRlckNsaWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYyLDEwICs2MiwxMCBA
QCB2b2lkIFN5bmNocm9ub3VzTG9hZGVyQ2xpZW50OjpjYW5BdXRoZW50CiB9CiAjZW5kaWYKIAot
dm9pZCBTeW5jaHJvbm91c0xvYWRlckNsaWVudDo6ZGlkUmVjZWl2ZVJlc3BvbnNlQXN5bmMoUmVz
b3VyY2VIYW5kbGUqIGhhbmRsZSwgUmVzb3VyY2VSZXNwb25zZSYmIHJlc3BvbnNlKQordm9pZCBT
eW5jaHJvbm91c0xvYWRlckNsaWVudDo6ZGlkUmVjZWl2ZVJlc3BvbnNlQXN5bmMoUmVzb3VyY2VI
YW5kbGUqLCBSZXNvdXJjZVJlc3BvbnNlJiYgcmVzcG9uc2UsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBtX3Jlc3BvbnNlID0gV1RGTW92ZShy
ZXNwb25zZSk7Ci0gICAgaGFuZGxlLT5jb250aW51ZURpZFJlY2VpdmVSZXNwb25zZSgpOworICAg
IGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9CiAKIHZvaWQgU3luY2hyb25vdXNMb2FkZXJDbGllbnQ6
OmRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciogZGF0YSwgdW5zaWdu
ZWQgbGVuZ3RoLCBpbnQgLyplbmNvZGVkRGF0YUxlbmd0aCovKQpJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9TeW5jaHJvbm91c0xvYWRlckNsaWVudC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU3luY2hyb25vdXNMb2FkZXJDbGll
bnQuaAkocmV2aXNpb24gMjI3NDI4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9TeW5jaHJvbm91c0xvYWRlckNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00OSw3ICs0OSw3
IEBAIHByaXZhdGU6CiAgICAgdm9pZCB3aWxsU2VuZFJlcXVlc3RBc3luYyhSZXNvdXJjZUhhbmRs
ZSosIFJlc291cmNlUmVxdWVzdCYmLCBSZXNvdXJjZVJlc3BvbnNlJiYsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoUmVzb3VyY2VSZXF1ZXN0JiYpPiYmKSBvdmVycmlkZTsKICAgICBib29sIHNob3Vs
ZFVzZUNyZWRlbnRpYWxTdG9yYWdlKFJlc291cmNlSGFuZGxlKikgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoUmVzb3VyY2VIYW5kbGUqLCBjb25z
dCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlkUmVjZWl2
ZVJlc3BvbnNlQXN5bmMoUmVzb3VyY2VIYW5kbGUqLCBSZXNvdXJjZVJlc3BvbnNlJiYpIG92ZXJy
aWRlOworICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlQXN5bmMoUmVzb3VyY2VIYW5kbGUqLCBS
ZXNvdXJjZVJlc3BvbnNlJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgb3ZlcnJpZGU7
CiAgICAgdm9pZCBkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqLCB1
bnNpZ25lZCwgaW50IC8qZW5jb2RlZERhdGFMZW5ndGgqLykgb3ZlcnJpZGU7CiAgICAgdm9pZCBk
aWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRG
YWlsKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpIG92ZXJyaWRlOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jl
c291cmNlSGFuZGxlQ0ZOZXQuY3BwCShyZXZpc2lvbiAyMjc0MjgpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC02NTcsMTEgKzY1Nyw2IEBAIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgUmVzb3VyY2VI
YW5kbGU6OmMKICAgICByZXR1cm4gZC0+bV9jdXJyZW50UmVxdWVzdDsKIH0KIAotdm9pZCBSZXNv
dXJjZUhhbmRsZTo6Y29udGludWVEaWRSZWNlaXZlUmVzcG9uc2UoKQotewotICAgIGQtPm1fY29u
bmVjdGlvbkRlbGVnYXRlLT5jb250aW51ZURpZFJlY2VpdmVSZXNwb25zZSgpOwotfQotCiAjaWYg
VVNFKFBST1RFQ1RJT05fU1BBQ0VfQVVUSF9DQUxMQkFDSykKIHZvaWQgUmVzb3VyY2VIYW5kbGU6
OmNvbnRpbnVlQ2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZShib29sIGNhbkF1
dGhlbnRpY2F0ZSkKIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2Yv
UmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNv
dXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVlLmNwcAko
cmV2aXNpb24gMjI3NDI4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9S
ZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTgwLDMwICsxODAsMzEgQEAgQ0ZVUkxSZXF1ZXN0UmVmIFJl
c291cmNlSGFuZGxlQ0ZVUkxDb25uZQogdm9pZCBSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlv
bkRlbGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVlOjpkaWRSZWNlaXZlUmVzcG9uc2UoQ0ZVUkxDb25u
ZWN0aW9uUmVmIGNvbm5lY3Rpb24sIENGVVJMUmVzcG9uc2VSZWYgY2ZSZXNwb25zZSkKIHsKICAg
ICBhdXRvIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKTsKLSAgICBhdXRvIHdvcmsgPSBb
cHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjZlJlc3BvbnNlID0gUmV0YWluUHRyPENG
VVJMUmVzcG9uc2VSZWY+KGNmUmVzcG9uc2UpLCBjb25uZWN0aW9uID0gUmV0YWluUHRyPENGVVJM
Q29ubmVjdGlvblJlZj4oY29ubmVjdGlvbildICgpIHsKLSAgICAgICAgYXV0byYgaGFuZGxlID0g
cHJvdGVjdGVkVGhpcy0+bV9oYW5kbGU7Ci0gICAgICAgIAotICAgICAgICBpZiAoIXByb3RlY3Rl
ZFRoaXMtPmhhc0hhbmRsZSgpIHx8ICFoYW5kbGUtPmNsaWVudCgpIHx8ICFoYW5kbGUtPmNvbm5l
Y3Rpb24oKSkgewotICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+Y29udGludWVEaWRSZWNlaXZl
UmVzcG9uc2UoKTsKKyAgICBhdXRvIHdvcmsgPSBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VS
ZWYoKnRoaXMpLCBjZlJlc3BvbnNlID0gUmV0YWluUHRyPENGVVJMUmVzcG9uc2VSZWY+KGNmUmVz
cG9uc2UpLCBjb25uZWN0aW9uID0gUmV0YWluUHRyPENGVVJMQ29ubmVjdGlvblJlZj4oY29ubmVj
dGlvbildICgpIHsKKyAgICAgICAgaWYgKCFoYXNIYW5kbGUoKSB8fCAhbV9oYW5kbGUtPmNsaWVu
dCgpIHx8ICFtX2hhbmRsZS0+Y29ubmVjdGlvbigpKSB7CisgICAgICAgICAgICBtX3NlbWFwaG9y
ZS5zaWduYWwoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIExP
RyhOZXR3b3JrLCAiQ0ZOZXQgLSBSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRl
V2l0aE9wZXJhdGlvblF1ZXVlOjpkaWRSZWNlaXZlUmVzcG9uc2UoaGFuZGxlPSVwKSAoJXMpIiwg
aGFuZGxlLCBoYW5kbGUtPmZpcnN0UmVxdWVzdCgpLnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRh
KCkpOworICAgICAgICBMT0coTmV0d29yaywgIkNGTmV0IC0gUmVzb3VyY2VIYW5kbGVDRlVSTENv
bm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZTo6ZGlkUmVjZWl2ZVJlc3BvbnNlKGhh
bmRsZT0lcCkgKCVzKSIsIG1faGFuZGxlLCBtX2hhbmRsZS0+Zmlyc3RSZXF1ZXN0KCkudXJsKCku
c3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CiAKICAgICAgICAgLy8gQXZvaWQgTUlNRSB0eXBlIHNu
aWZmaW5nIGlmIHRoZSByZXNwb25zZSBjb21lcyBiYWNrIGFzIDMwNCBOb3QgTW9kaWZpZWQuCiAg
ICAgICAgIGF1dG8gbXNnID0gQ0ZVUkxSZXNwb25zZUdldEhUVFBSZXNwb25zZShjZlJlc3BvbnNl
LmdldCgpKTsKICAgICAgICAgaW50IHN0YXR1c0NvZGUgPSBtc2cgPyBDRkhUVFBNZXNzYWdlR2V0
UmVzcG9uc2VTdGF0dXNDb2RlKG1zZykgOiAwOwogCiAgICAgICAgIGlmIChzdGF0dXNDb2RlICE9
IDMwNCkgewotICAgICAgICAgICAgYm9vbCBpc01haW5SZXNvdXJjZUxvYWQgPSBoYW5kbGUtPmZp
cnN0UmVxdWVzdCgpLnJlcXVlc3RlcigpID09IFJlc291cmNlUmVxdWVzdDo6UmVxdWVzdGVyOjpN
YWluOworICAgICAgICAgICAgYm9vbCBpc01haW5SZXNvdXJjZUxvYWQgPSBtX2hhbmRsZS0+Zmly
c3RSZXF1ZXN0KCkucmVxdWVzdGVyKCkgPT0gUmVzb3VyY2VSZXF1ZXN0OjpSZXF1ZXN0ZXI6Ok1h
aW47CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoX0NGVVJMUmVxdWVzdENvcHlQcm90b2NvbFBy
b3BlcnR5Rm9yS2V5KGhhbmRsZS0+Zmlyc3RSZXF1ZXN0KCkuY2ZVUkxSZXF1ZXN0KERvTm90VXBk
YXRlSFRUUEJvZHkpLCBDRlNUUigiRm9yY2VIVE1MTUlNRVR5cGUiKSkpCisgICAgICAgIGlmIChf
Q0ZVUkxSZXF1ZXN0Q29weVByb3RvY29sUHJvcGVydHlGb3JLZXkobV9oYW5kbGUtPmZpcnN0UmVx
dWVzdCgpLmNmVVJMUmVxdWVzdChEb05vdFVwZGF0ZUhUVFBCb2R5KSwgQ0ZTVFIoIkZvcmNlSFRN
TE1JTUVUeXBlIikpKQogICAgICAgICAgICAgQ0ZVUkxSZXNwb25zZVNldE1JTUVUeXBlKGNmUmVz
cG9uc2UuZ2V0KCksIENGU1RSKCJ0ZXh0L2h0bWwiKSk7CiAKICAgICAgICAgUmVzb3VyY2VSZXNw
b25zZSByZXNvdXJjZVJlc3BvbnNlKGNmUmVzcG9uc2UuZ2V0KCkpOwogICAgICAgICByZXNvdXJj
ZVJlc3BvbnNlLnNldFNvdXJjZShSZXNvdXJjZVJlc3BvbnNlOjpTb3VyY2U6Ok5ldHdvcmspOwot
ICAgICAgICBoYW5kbGUtPmRpZFJlY2VpdmVSZXNwb25zZShXVEZNb3ZlKHJlc291cmNlUmVzcG9u
c2UpKTsKKyAgICAgICAgYXV0byBjb21wbGV0aW9uSGFuZGxlciA9IFt0aGlzLCBwcm90ZWN0ZWRU
aGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKV0geworICAgICAgICAgICAgbV9zZW1hcGhvcmUu
c2lnbmFsKCk7CisgICAgICAgIH07CisgICAgICAgIG1faGFuZGxlLT5kaWRSZWNlaXZlUmVzcG9u
c2UoV1RGTW92ZShyZXNvdXJjZVJlc3BvbnNlKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikp
OwogICAgIH07CiAKICAgICBpZiAobV9tZXNzYWdlUXVldWUpCkBAIC0zODksMTEgKzM5MCw2IEBA
IHZvaWQgUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2EKIH0KICNlbmRpZiAvLyBV
U0UoUFJPVEVDVElPTl9TUEFDRV9BVVRIX0NBTExCQUNLKQogCi12b2lkIFJlc291cmNlSGFuZGxl
Q0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWU6OmNvbnRpbnVlRGlkUmVj
ZWl2ZVJlc3BvbnNlKCkKLXsKLSAgICBtX3NlbWFwaG9yZS5zaWduYWwoKTsKLX0KLQogdm9pZCBS
ZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVlOjpj
b250aW51ZVdpbGxDYWNoZVJlc3BvbnNlKENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYgcmVzcG9uc2Up
CiB7CiAgICAgbV9jYWNoZWRSZXNwb25zZVJlc3VsdCA9IHJlc3BvbnNlOwpJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNl
SGFuZGxlQ3VybC5jcHAJKHJldmlzaW9uIDIyNzQyOCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlJlc291cmNl
SGFuZGxlSW50ZXJuYWwuaCIKICNpbmNsdWRlICJTeW5jaHJvbm91c0xvYWRlckNsaWVudC5oIgor
I2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKQEAgLTIxNCw4ICsyMTUsMTIgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6cmVjZWl2ZWRSZXF1
ZXN0VG9DbwogCiAgICAgY2xlYXJBdXRoZW50aWNhdGlvbigpOwogCi0gICAgYXV0byBwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyk7Ci0gICAgZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNl
UmVzcG9uc2UoZC0+bV9yZXNwb25zZSkpOworICAgIGRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJj
ZVJlc3BvbnNlKGQtPm1fcmVzcG9uc2UpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYo
KnRoaXMpXSB7CisgICAgICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisKKyAgICAgICAgaWYg
KGQtPm1fZGVsZWdhdGUpCisgICAgICAgICAgICBkLT5tX2RlbGVnYXRlLT5jb250aW51ZURpZFJl
Y2VpdmVSZXNwb25zZSgpOworICAgIH0pOwogfQogCiB2b2lkIFJlc291cmNlSGFuZGxlOjpyZWNl
aXZlZENhbmNlbGxhdGlvbihjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgY2hhbGxlbmdl
KQpAQCAtMjU5LDE0ICsyNjQsNiBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpwbGF0Zm9ybUxvYWRS
ZXNvdXJjCiAgICAgcmVzcG9uc2UgPSBjbGllbnQucmVzcG9uc2UoKTsKIH0KIAotdm9pZCBSZXNv
dXJjZUhhbmRsZTo6Y29udGludWVEaWRSZWNlaXZlUmVzcG9uc2UoKQotewotICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7Ci0KLSAgICBpZiAoZC0+bV9kZWxlZ2F0ZSkKLSAgICAgICAgZC0+bV9k
ZWxlZ2F0ZS0+Y29udGludWVEaWRSZWNlaXZlUmVzcG9uc2UoKTsKLX0KLQogdm9pZCBSZXNvdXJj
ZUhhbmRsZTo6cGxhdGZvcm1Db250aW51ZVN5bmNocm9ub3VzRGlkUmVjZWl2ZVJlc3BvbnNlKCkK
IHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybERlbGVnYXRlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5k
bGVDdXJsRGVsZWdhdGUuY3BwCShyZXZpc2lvbiAyMjc0MjgpCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsRGVsZWdhdGUuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMjEsNyArMjIxLDkgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZUN1cmxEZWxl
Z2F0ZTo6Y3VybERpZAogICAgICAgICBDdXJsQ2FjaGVNYW5hZ2VyOjpzaW5nbGV0b24oKS5kaWRS
ZWNlaXZlUmVzcG9uc2UoKm1faGFuZGxlLCByZXNwb25zZSgpKTsKIAogICAgICAgICBhdXRvIHBy
b3RlY3RlZFRoaXMgPSBtYWtlUmVmKCptX2hhbmRsZSk7Ci0gICAgICAgIG1faGFuZGxlLT5kaWRS
ZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VSZXNwb25zZShyZXNwb25zZSgpKSk7CisgICAgICAgIG1f
aGFuZGxlLT5kaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VSZXNwb25zZShyZXNwb25zZSgpKSwg
W3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0geworICAgICAgICAgICAgY29u
dGludWVBZnRlckRpZFJlY2VpdmVSZXNwb25zZSgpOworICAgICAgICB9KTsKICAgICB9CiB9CiAK
QEAgLTQyNiw3ICs0MjgsOSBAQCB2b2lkIFJlc291cmNlSGFuZGxlQ3VybERlbGVnYXRlOjpoYW5k
bGVECiAKICAgICBpZiAoYmFzZTY0KSB7CiAgICAgICAgIGRhdGEgPSBkZWNvZGVVUkxFc2NhcGVT
ZXF1ZW5jZXMoZGF0YSk7Ci0gICAgICAgIG1faGFuZGxlLT5kaWRSZWNlaXZlUmVzcG9uc2UoV1RG
TW92ZShyZXNwb25zZSkpOworICAgICAgICBtX2hhbmRsZS0+ZGlkUmVjZWl2ZVJlc3BvbnNlKFdU
Rk1vdmUocmVzcG9uc2UpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSB7
CisgICAgICAgICAgICBjb250aW51ZUFmdGVyRGlkUmVjZWl2ZVJlc3BvbnNlKCk7CisgICAgICAg
IH0pOwogCiAgICAgICAgIC8vIGRpZFJlY2VpdmVSZXNwb25zZSBtaWdodCBjYXVzZSB0aGUgY2xp
ZW50IHRvIGJlIGRlbGV0ZWQuCiAgICAgICAgIGlmIChtX2hhbmRsZS0+Y2xpZW50KCkpIHsKQEAg
LTQzNyw3ICs0NDEsOSBAQCB2b2lkIFJlc291cmNlSGFuZGxlQ3VybERlbGVnYXRlOjpoYW5kbGVE
CiAgICAgfSBlbHNlIHsKICAgICAgICAgVGV4dEVuY29kaW5nIGVuY29kaW5nKGNoYXJzZXQpOwog
ICAgICAgICBkYXRhID0gZGVjb2RlVVJMRXNjYXBlU2VxdWVuY2VzKGRhdGEsIGVuY29kaW5nKTsK
LSAgICAgICAgbV9oYW5kbGUtPmRpZFJlY2VpdmVSZXNwb25zZShXVEZNb3ZlKHJlc3BvbnNlKSk7
CisgICAgICAgIG1faGFuZGxlLT5kaWRSZWNlaXZlUmVzcG9uc2UoV1RGTW92ZShyZXNwb25zZSks
IFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldIHsKKyAgICAgICAgICAgIGNv
bnRpbnVlQWZ0ZXJEaWRSZWNlaXZlUmVzcG9uc2UoKTsKKyAgICAgICAgfSk7CiAKICAgICAgICAg
Ly8gZGlkUmVjZWl2ZVJlc3BvbnNlIG1pZ2h0IGNhdXNlIHRoZSBjbGllbnQgdG8gYmUgZGVsZXRl
ZC4KICAgICAgICAgaWYgKG1faGFuZGxlLT5jbGllbnQoKSkgewpJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMu
bW0JKHJldmlzaW9uIDIyNzQyOCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
bWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00NzEsMTEgKzQ3MSw2
IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OndpbGxTZW5kUmVxdWVzdChSZXMKICAgICB9KTsKIH0K
IAotdm9pZCBSZXNvdXJjZUhhbmRsZTo6Y29udGludWVEaWRSZWNlaXZlUmVzcG9uc2UoKQotewot
ICAgIFtkZWxlZ2F0ZSgpIGNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlXTsKLX0KLQogdm9pZCBS
ZXNvdXJjZUhhbmRsZTo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKGNvbnN0IEF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBjaGFsbGVuZ2UpCiB7CiAgICAgQVNTRVJUKCFkLT5tX2N1
cnJlbnRNYWNDaGFsbGVuZ2UpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJl
c291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLmgJKHJldmlzaW9uIDIyNzQyOCkK
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhh
bmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw3ICs0
Nyw2IEBAIEBpbnRlcmZhY2UgV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXQKIAogLSAodm9p
ZClkZXRhY2hIYW5kbGU7CiAtIChpZClpbml0V2l0aEhhbmRsZTooV2ViQ29yZTo6UmVzb3VyY2VI
YW5kbGUqKWhhbmRsZSBtZXNzYWdlUXVldWU6KE1lc3NhZ2VRdWV1ZTxGdW5jdGlvbjx2b2lkKCk+
PiopbWVzc2FnZVF1ZXVlOwotLSAodm9pZCljb250aW51ZURpZFJlY2VpdmVSZXNwb25zZTsKIC0g
KHZvaWQpY29udGludWVDYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlOihCT09M
KWNhbkF1dGhlbnRpY2F0ZTsKIC0gKHZvaWQpY29udGludWVXaWxsQ2FjaGVSZXNwb25zZTooTlND
YWNoZWRVUkxSZXNwb25zZSAqKXJlc3BvbnNlOwogQGVuZApJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1
ZURlbGVnYXRlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5tbQko
cmV2aXNpb24gMjI3NDI4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMv
V2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tCSh3b3JraW5n
IGNvcHkpCkBAIC0xMDgsMTEgKzEwOCw2IEBAIC0gKHZvaWQpZGVhbGxvYwogICAgIFtzdXBlciBk
ZWFsbG9jXTsKIH0KIAotLSAodm9pZCljb250aW51ZURpZFJlY2VpdmVSZXNwb25zZQotewotICAg
IGRpc3BhdGNoX3NlbWFwaG9yZV9zaWduYWwobV9zZW1hcGhvcmUpOwotfQotCiAtICh2b2lkKWNv
bnRpbnVlQ2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZTooQk9PTCljYW5BdXRo
ZW50aWNhdGUKIHsKICAgICBtX2Jvb2xSZXN1bHQgPSBjYW5BdXRoZW50aWNhdGU7CkBAIC0yMzAs
NyArMjI1LDkgQEAgLSAodm9pZCljb25uZWN0aW9uOihOU1VSTENvbm5lY3Rpb24gKiljbwogICAg
ICAgICByZXNvdXJjZVJlc3BvbnNlLnNldFNvdXJjZShSZXNvdXJjZVJlc3BvbnNlOjpTb3VyY2U6
Ok5ldHdvcmspOwogICAgICAgICBSZXNvdXJjZUhhbmRsZTo6Z2V0Q29ubmVjdGlvblRpbWluZ0Rh
dGEoY29ubmVjdGlvbi5nZXQoKSwgcmVzb3VyY2VSZXNwb25zZS5kZXByZWNhdGVkTmV0d29ya0xv
YWRNZXRyaWNzKCkpOwogCi0gICAgICAgIG1faGFuZGxlLT5kaWRSZWNlaXZlUmVzcG9uc2UoV1RG
TW92ZShyZXNvdXJjZVJlc3BvbnNlKSk7CisgICAgICAgIG1faGFuZGxlLT5kaWRSZWNlaXZlUmVz
cG9uc2UoV1RGTW92ZShyZXNvdXJjZVJlc3BvbnNlKSwgW3NlbGYsIHByb3RlY3RlZFNlbGYgPSBX
VEZNb3ZlKHByb3RlY3RlZFNlbGYpXSB7CisgICAgICAgICAgICBkaXNwYXRjaF9zZW1hcGhvcmVf
c2lnbmFsKG1fc2VtYXBob3JlKTsKKyAgICAgICAgfSk7CiAgICAgfTsKIAogICAgIFtzZWxmIGNh
bGxGdW5jdGlvbk9uTWFpblRocmVhZDpXVEZNb3ZlKHdvcmspXTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRs
ZVNvdXAuY3BwCShyZXZpc2lvbiAyMjc0MjgpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDYz
LDcgKzQ2Myw5IEBAIHN0YXRpYyB2b2lkIG5leHRNdWx0aXBhcnRSZXNwb25zZVBhcnRDYWwKIAog
ICAgIGQtPm1fcHJldmlvdXNQb3NpdGlvbiA9IDA7CiAKLSAgICBoYW5kbGUtPmRpZFJlY2VpdmVS
ZXNwb25zZShSZXNvdXJjZVJlc3BvbnNlKGQtPm1fcmVzcG9uc2UpKTsKKyAgICBoYW5kbGUtPmRp
ZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZVJlc3BvbnNlKGQtPm1fcmVzcG9uc2UpLCBbaGFuZGxl
ID0gbWFrZVJlZigqaGFuZGxlKV0geworICAgICAgICBjb250aW51ZUFmdGVyRGlkUmVjZWl2ZVJl
c3BvbnNlKGhhbmRsZS5wdHIoKSk7CisgICAgfSk7CiB9CiAKIHN0YXRpYyB2b2lkIHNlbmRSZXF1
ZXN0Q2FsbGJhY2soR09iamVjdCosIEdBc3luY1Jlc3VsdCogcmVzdWx0LCBncG9pbnRlciBkYXRh
KQpAQCAtNTIwLDcgKzUyMiw5IEBAIHN0YXRpYyB2b2lkIHNlbmRSZXF1ZXN0Q2FsbGJhY2soR09i
amVjdCoKICAgICBlbHNlCiAgICAgICAgIGQtPm1faW5wdXRTdHJlYW0gPSBpbnB1dFN0cmVhbTsK
IAotICAgIGhhbmRsZS0+ZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlUmVzcG9uc2UoZC0+bV9y
ZXNwb25zZSkpOworICAgIGhhbmRsZS0+ZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlUmVzcG9u
c2UoZC0+bV9yZXNwb25zZSksIFtoYW5kbGUgPSBtYWtlUmVmKCpoYW5kbGUpXSB7CisgICAgICAg
IGNvbnRpbnVlQWZ0ZXJEaWRSZWNlaXZlUmVzcG9uc2UoaGFuZGxlLnB0cigpKTsKKyAgICB9KTsK
IH0KIAogdm9pZCBSZXNvdXJjZUhhbmRsZTo6cGxhdGZvcm1Db250aW51ZVN5bmNocm9ub3VzRGlk
UmVjZWl2ZVJlc3BvbnNlKCkKQEAgLTEwMTksMTEgKzEwMjMsNiBAQCBzdGF0aWMgdm9pZCByZWFk
Q2FsbGJhY2soR09iamVjdCosIEdBc3luCiAgICAgICAgIGQtPm1fY2FuY2VsbGFibGUuZ2V0KCks
IHJlYWRDYWxsYmFjaywgaGFuZGxlLmdldCgpKTsKIH0KIAotdm9pZCBSZXNvdXJjZUhhbmRsZTo6
Y29udGludWVEaWRSZWNlaXZlUmVzcG9uc2UoKQotewotICAgIGNvbnRpbnVlQWZ0ZXJEaWRSZWNl
aXZlUmVzcG9uc2UodGhpcyk7Ci19Ci0KIH0KIAogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkocmV2aXNp
b24gMjI3NDI4KQorKysgU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSwxOSBAQAorMjAxOC0wMS0yMyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNl
bkB3ZWJraXQub3JnPgorCisgICAgICAgIFVzZSBDb21wbGV0aW9uSGFuZGxlcnMgZm9yIFJlc291
cmNlSGFuZGxlQ2xpZW50OjpkaWRSZWNlaXZlUmVzcG9uc2VBc3luYworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgxOTYxCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTWljaGFlbCBDYXRhbnphcm8uCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Eb3du
bG9hZHMvRG93bmxvYWQuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5j
cHA6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuaDoKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5oOgorICAgICAgICAq
IFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkRyYWdDbGllbnRNYWMubW06CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisKIDIwMTgtMDEtMjMgIEJyYWR5IEVpZHNvbiAgPGJl
aWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIEFsbG93IHBhc3NpbmcgTWVzc2FnZVBvcnRzIGFj
cm9zcyBwcm9jZXNzZXMgKGUuZy4gU2VydmljZVdvcmtlcnMpLgpJbmRleDogU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAJKHJldmlzaW9uIDIyNzQyOCkKKysr
IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zNCw3ICszNCw2IEBACiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgi
CiAjaW5jbHVkZSAiV2ViRXJyb3JzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRl
ZC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VIYW5kbGUuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1Jlc291cmNlUmVxdWVzdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+
CiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgpJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrTG9hZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0xvYWQuaAkocmV2aXNpb24gMjI3NDI4KQorKysgU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICsz
MSw2IEBACiAjaW5jbHVkZSAiTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiUmVt
b3RlTmV0d29ya2luZ0NvbnRleHQuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0F1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUhhbmRsZUNsaWVudC5oPgog
I2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9PcHRpb25h
bC5oPgogCkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJj
ZUxvYWRQYXJhbWV0ZXJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5oCShyZXZpc2lvbiAyMjc0MjgpCisr
KyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0
ZXJzLmgJKHdvcmtpbmcgY29weSkKQEAgLTIzLDE1ICsyMywxMyBAQAogICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgTmV0d29ya1Jlc291cmNlTG9hZFBh
cmFtZXRlcnNfaAotI2RlZmluZSBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVyc19oCisjcHJh
Z21hIG9uY2UKIAogI2luY2x1ZGUgIk5ldHdvcmtMb2FkUGFyYW1ldGVycy5oIgogI2luY2x1ZGUg
IlNhbmRib3hFeHRlbnNpb24uaCIKICNpbmNsdWRlICJXZWJDb21waWxlZENvbnRlbnRSdWxlTGlz
dERhdGEuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNl
SGVhZGVycy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmV0Y2hPcHRpb25zLmg+Ci0jaW5jbHVkZSA8
V2ViQ29yZS9SZXNvdXJjZUhhbmRsZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2Fk
ZXJPcHRpb25zLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CkBAIC02OCw1ICs2NiwzIEBAIHB1YmxpYzoK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gTmV0d29ya1Jlc291cmNl
TG9hZFBhcmFtZXRlcnNfaApJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3du
bG9hZHMvRG93bmxvYWQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5oCShyZXZpc2lvbiAyMjc0MjgpCisrKyBTb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zMCw4ICszMCw2IEBACiAjaW5jbHVkZSAiTmV0d29ya0RhdGFUYXNrLmgiCiAjaW5jbHVkZSAi
U2FuZGJveEV4dGVuc2lvbi5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlSGFuZGxlLmg+Ci0jaW5jbHVkZSA8
V2ViQ29yZS9SZXNvdXJjZUhhbmRsZUNsaWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3Vy
Y2VSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQu
aD4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAJKHJldmlzaW9u
IDIyNzQyOCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTA4LDcgKzEwOCw2IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlQ2Fj
aGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VHcm91cC5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJj
ZUhhbmRsZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oPgpJbmRleDogU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3Bw
CShyZXZpc2lvbiAyMjc0MjgpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02OCw3ICs2OCw2IEBA
CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlR3JvdXAu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1ByaW50Q29udGV4dC5oPgotI2luY2x1ZGUgPFdlYkNvcmUv
UmVzb3VyY2VIYW5kbGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1J1bnRpbWVFbmFibGVkRmVhdHVy
ZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NXQ29udGV4dE1hbmFnZXIuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1NjcmlwdENvbnRyb2xsZXIuaD4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkRyYWdDbGllbnRN
YWMubW0JKHJldmlzaW9uIDIyNzQyOCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtNDgs
NyArNDgsNiBAQAogI2ltcG9ydCA8V2ViQ29yZS9QYWdlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Bh
c3RlYm9hcmQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVuZGVySW1hZ2UuaD4KLSNpbXBvcnQgPFdl
YkNvcmUvUmVzb3VyY2VIYW5kbGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvU3RyaW5nVHJ1bmNhdG9y
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVOU1VSTEV4dHJhcy5oPgogI2ltcG9ydCA8d3Rm
L1N0ZExpYkV4dHJhcy5oPgpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
bWFjL1dlYlBhZ2VNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0JKHJldmlzaW9uIDIyNzQyOCkKKysrIFNvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCSh3b3JraW5nIGNvcHkp
CkBAIC04Myw3ICs4Myw2IEBACiAjaW1wb3J0IDxXZWJDb3JlL1JlbmRlck9iamVjdC5oPgogI2lt
cG9ydCA8V2ViQ29yZS9SZW5kZXJTdHlsZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJWaWV3
Lmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1Jlc291cmNlSGFuZGxlLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9TY3JvbGxWaWV3
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1N0eWxlSW5oZXJpdGVkRGF0YS5oPgpJbmRleDogU291cmNl
L1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2Fj
eS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyNzQyOCkKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTgtMDEtMjMgIEFsZXgg
Q2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBVc2UgQ29t
cGxldGlvbkhhbmRsZXJzIGZvciBSZXNvdXJjZUhhbmRsZUNsaWVudDo6ZGlkUmVjZWl2ZVJlc3Bv
bnNlQXN5bmMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE4MTk2MQorCisgICAgICAgIFJldmlld2VkIGJ5IE1pY2hhZWwgQ2F0YW56YXJvLgorCisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcDoKKwogMjAx
OC0wMS0xNiAgRnVqaWkgSGlyb25vcmkgIDxIaXJvbm9yaS5GdWppaUBzb255LmNvbT4KIAogICAg
ICAgICBbQ01ha2VdIFJlbW92ZSBXZWJDb3JlRGVyaXZlZFNvdXJjZXMgbGlicmFyeSB0YXJnZXQK
SW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2Fk
U2NoZWR1bGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVT
dXBwb3J0L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAJKHJldmlzaW9uIDIyNzQyOCkKKysr
IFNvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1
bGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsNyArMzIsNiBAQAogI2luY2x1ZGUgPFdlYkNv
cmUvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BpbmdI
YW5kbGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtU3RyYXRlZ2llcy5oPgotI2luY2x1
ZGUgPFdlYkNvcmUvUmVzb3VyY2VIYW5kbGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNl
UmVxdWVzdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU3VicmVzb3VyY2VMb2FkZXIuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1VSTC5oPgpJbmRleDogU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwkocmV2
aXNpb24gMjI3NDI4KQorKysgU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTgtMDEtMjMgIEFsZXggQ2hyaXN0ZW5zZW4g
IDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBVc2UgQ29tcGxldGlvbkhhbmRs
ZXJzIGZvciBSZXNvdXJjZUhhbmRsZUNsaWVudDo6ZGlkUmVjZWl2ZVJlc3BvbnNlQXN5bmMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MTk2MQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE1pY2hhZWwgQ2F0YW56YXJvLgorCisgICAgICAgICogV2ViVmll
dy9XZWJQcmVmZXJlbmNlcy5tbToKKwogMjAxOC0wMS0yMiAgV2Vuc29uIEhzaWVoICA8d2Vuc29u
X2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJWaWV3cyBjcmVhdGVkIHZpYSAtaW5pdFNp
bXBsZUhUTUxEb2N1bWVudFdpdGhTdHlsZTogZG9uJ3QgcHJvcGFnYXRlIGF0dGFjaG1lbnRFbGVt
ZW50RW5hYmxlZCBzdGF0ZQpJbmRleDogU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJQcmVmZXJlbmNlcy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCShyZXZpc2lvbiAyMjc0MjgpCisrKyBTb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC00Miw3ICs0Miw2IEBACiAjaW1wb3J0IDxXZWJDb3JlL0RlcHJlY2F0ZWRHbG9iYWxTZXR0aW5n
cy5oPgogI2ltcG9ydCA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4KICNpbXBvcnQg
PFdlYkNvcmUvUGxhdGZvcm1Db29raWVKYXIuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VI
YW5kbGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL1NldHRpbmdzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RleHRFbmNvZGlu
Z1JlZ2lzdHJ5Lmg+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>332068</attachid>
            <date>2018-01-23 13:37:24 -0800</date>
            <delta_ts>2018-01-23 14:33:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-181961-20180123133725.patch</filename>
            <type>text/plain</type>
            <size>37008</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyNzQzOSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ5IEBACisyMDE4LTAxLTIzICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVXNlIENvbXBs
ZXRpb25IYW5kbGVycyBmb3IgUmVzb3VyY2VIYW5kbGVDbGllbnQ6OmRpZFJlY2VpdmVSZXNwb25z
ZUFzeW5jCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
ODE5NjEKKworICAgICAgICBSZXZpZXdlZCBieSBNaWNoYWVsIENhdGFuemFyby4KKworICAgICAg
ICBObyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2Fk
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNw
b25zZUFzeW5jKToKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAg
KiBsb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6ZGlkUmVjZWl2ZVJlc3BvbnNlQXN5bmMpOgor
ICAgICAgICAqIGxvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpCbG9iUmVzb3VyY2VIYW5kbGU6Om5vdGlmeVJlc3BvbnNlT25TdWNjZXNzKToKKyAg
ICAgICAgKFdlYkNvcmU6OkJsb2JSZXNvdXJjZUhhbmRsZTo6bm90aWZ5UmVzcG9uc2VPbkVycm9y
KToKKyAgICAgICAgKFdlYkNvcmU6OkJsb2JSZXNvdXJjZUhhbmRsZTo6Y29udGludWVEaWRSZWNl
aXZlUmVzcG9uc2UpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvQmxvYlJl
c291cmNlSGFuZGxlLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9QaW5nSGFuZGxlLmg6
CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6ZGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmg6CisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9SZXNvdXJjZUhhbmRsZUNsaWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvU3luY2hyb25vdXNMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3luY2hy
b25vdXNMb2FkZXJDbGllbnQ6OmRpZFJlY2VpdmVSZXNwb25zZUFzeW5jKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL1N5bmNocm9ub3VzTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogcGxh
dGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0
aE9wZXJhdGlvblF1ZXVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlQ0ZV
UkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWU6OmRpZFJlY2VpdmVSZXNwb25z
ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVn
YXRlV2l0aE9wZXJhdGlvblF1ZXVlOjpjb250aW51ZURpZFJlY2VpdmVSZXNwb25zZSk6IERlbGV0
ZWQuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybERl
bGVnYXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlQ3VybERlbGVnYXRl
OjpjdXJsRGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFu
ZGxlQ3VybERlbGVnYXRlOjpoYW5kbGVEYXRhVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlSGFuZGxlQ3VybERlbGVnYXRlOjpjb250aW51ZURpZFJlY2VpdmVSZXNwb25zZSk6IERlbGV0
ZWQuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW06
CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6Y29udGludWVEaWRSZWNlaXZlUmVz
cG9uc2UpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVS
ZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5oOgorICAgICAgICAqIHBsYXRm
b3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxl
Z2F0ZS5tbToKKyAgICAgICAgKC1bV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1
ZURlbGVnYXRlIGNvbm5lY3Rpb246ZGlkUmVjZWl2ZVJlc3BvbnNlOl0pOgorICAgICAgICAoLVtX
ZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUgY29udGludWVEaWRS
ZWNlaXZlUmVzcG9uc2VdKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3Nv
dXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om5leHRNdWx0aXBh
cnRSZXNwb25zZVBhcnRDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpzZW5kUmVxdWVzdENh
bGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjb250aW51ZURpZFJl
Y2VpdmVSZXNwb25zZSk6IERlbGV0ZWQuCisKIDIwMTgtMDEtMjMgIEFsZXggQ2hyaXN0ZW5zZW4g
IDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZW1vdmUgdW51c2VkIE1lZGlh
UGxheWVyU3VwcG9ydHNUeXBlQ2xpZW50CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVz
b3VyY2VMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNv
dXJjZUxvYWRlci5jcHAJKHJldmlzaW9uIDIyNzQyOCkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9SZXNvdXJjZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY1NywxNCArNjU3LDE0IEBA
IHZvaWQgUmVzb3VyY2VMb2FkZXI6OmRpZFNlbmREYXRhKFJlc291cmMKICAgICBkaWRTZW5kRGF0
YShieXRlc1NlbnQsIHRvdGFsQnl0ZXNUb0JlU2VudCk7CiB9CiAKLXZvaWQgUmVzb3VyY2VMb2Fk
ZXI6OmRpZFJlY2VpdmVSZXNwb25zZUFzeW5jKFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIFJlc291
cmNlUmVzcG9uc2UmJiByZXNwb25zZSkKK3ZvaWQgUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVS
ZXNwb25zZUFzeW5jKFJlc291cmNlSGFuZGxlKiwgUmVzb3VyY2VSZXNwb25zZSYmIHJlc3BvbnNl
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAg
aWYgKGRvY3VtZW50TG9hZGVyKCktPmFwcGxpY2F0aW9uQ2FjaGVIb3N0KCkubWF5YmVMb2FkRmFs
bGJhY2tGb3JSZXNwb25zZSh0aGlzLCByZXNwb25zZSkpIHsKLSAgICAgICAgaGFuZGxlLT5jb250
aW51ZURpZFJlY2VpdmVSZXNwb25zZSgpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGRpZFJlY2VpdmVSZXNwb25zZShyZXNwb25zZSk7
Ci0gICAgaGFuZGxlLT5jb250aW51ZURpZFJlY2VpdmVSZXNwb25zZSgpOworICAgIGNvbXBsZXRp
b25IYW5kbGVyKCk7CiB9CiAKIHZvaWQgUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKFJl
c291cmNlSGFuZGxlKiwgY29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoLCBpbnQgZW5j
b2RlZERhdGFMZW5ndGgpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2Fk
ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIu
aAkocmV2aXNpb24gMjI3NDI4KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9h
ZGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTE4Miw3ICsxODIsNyBAQCBwcml2YXRlOgogCiAgICAg
Ly8gUmVzb3VyY2VIYW5kbGVDbGllbnQKICAgICB2b2lkIGRpZFNlbmREYXRhKFJlc291cmNlSGFu
ZGxlKiwgdW5zaWduZWQgbG9uZyBsb25nIGJ5dGVzU2VudCwgdW5zaWduZWQgbG9uZyBsb25nIHRv
dGFsQnl0ZXNUb0JlU2VudCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2VB
c3luYyhSZXNvdXJjZUhhbmRsZSosIFJlc291cmNlUmVzcG9uc2UmJikgb3ZlcnJpZGU7CisgICAg
dm9pZCBkaWRSZWNlaXZlUmVzcG9uc2VBc3luYyhSZXNvdXJjZUhhbmRsZSosIFJlc291cmNlUmVz
cG9uc2UmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBvdmVycmlkZTsKICAgICB2b2lk
IHdpbGxTZW5kUmVxdWVzdEFzeW5jKFJlc291cmNlSGFuZGxlKiwgUmVzb3VyY2VSZXF1ZXN0JiYs
IFJlc291cmNlUmVzcG9uc2UmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZXNvdXJjZVJlcXVl
c3QmJik+JiYpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5k
bGUqLCBjb25zdCBjaGFyKiwgdW5zaWduZWQsIGludCBlbmNvZGVkRGF0YUxlbmd0aCkgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBkaWRSZWNlaXZlQnVmZmVyKFJlc291cmNlSGFuZGxlKiwgUmVmPFNoYXJl
ZEJ1ZmZlcj4mJiwgaW50IGVuY29kZWREYXRhTGVuZ3RoKSBvdmVycmlkZTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hl
R3JvdXAuY3BwCShyZXZpc2lvbiAyMjc0MjgpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBw
Y2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDg5LDE0
ICs0ODksMTQgQEAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBBcHBsaWNhdGlvbkNhY2hlRwogICAg
IHJldHVybiBoYW5kbGU7CiB9CiAKLXZvaWQgQXBwbGljYXRpb25DYWNoZUdyb3VwOjpkaWRSZWNl
aXZlUmVzcG9uc2VBc3luYyhSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBSZXNvdXJjZVJlc3BvbnNl
JiYgcmVzcG9uc2UpCit2b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6ZGlkUmVjZWl2ZVJlc3Bv
bnNlQXN5bmMoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgUmVzb3VyY2VSZXNwb25zZSYmIHJlc3Bv
bnNlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAg
ICAgQVNTRVJUKG1fZnJhbWUpOwogICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVj
ZWl2ZVJlc291cmNlUmVzcG9uc2UoKm1fZnJhbWUsIG1fY3VycmVudFJlc291cmNlSWRlbnRpZmll
ciwgbV9mcmFtZS0+bG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIoKSwgcmVzcG9uc2UsIG51bGxwdHIp
OwogCiAgICAgaWYgKGhhbmRsZSA9PSBtX21hbmlmZXN0SGFuZGxlKSB7CiAgICAgICAgIGRpZFJl
Y2VpdmVNYW5pZmVzdFJlc3BvbnNlKHJlc3BvbnNlKTsKLSAgICAgICAgaGFuZGxlLT5jb250aW51
ZURpZFJlY2VpdmVSZXNwb25zZSgpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCkBAIC01MjMsNyArNTIzLDcgQEAgdm9pZCBBcHBsaWNhdGlv
bkNhY2hlR3JvdXA6OmRpZFJlY2VpdmVSZQogICAgICAgICAgICAgbV9jdXJyZW50SGFuZGxlID0g
bnVsbHB0cjsKICAgICAgICAgICAgIC8vIExvYWQgdGhlIG5leHQgcmVzb3VyY2UsIGlmIGFueS4K
ICAgICAgICAgICAgIHN0YXJ0TG9hZGluZ0VudHJ5KCk7Ci0gICAgICAgICAgICBoYW5kbGUtPmNv
bnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlKCk7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cigpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIC8vIFRoZSBzZXJ2
ZXIgY291bGQgcmV0dXJuIDMwNCBmb3IgYW4gdW5jb25kaXRpb25hbCByZXF1ZXN0IC0gaW4gdGhp
cyBjYXNlLCB3ZSBoYW5kbGUgdGhlIHJlc3BvbnNlIGFzIGEgbm9ybWFsIGVycm9yLgpAQCAtNTU1
LDEyICs1NTUsMTIgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmRpZFJlY2VpdmVSZQog
ICAgICAgICAgICAgLy8gTG9hZCB0aGUgbmV4dCByZXNvdXJjZSwgaWYgYW55LgogICAgICAgICAg
ICAgc3RhcnRMb2FkaW5nRW50cnkoKTsKICAgICAgICAgfQotICAgICAgICBoYW5kbGUtPmNvbnRp
bnVlRGlkUmVjZWl2ZVJlc3BvbnNlKCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCiAgICAgbV9jdXJyZW50UmVzb3VyY2UgPSBBcHBs
aWNhdGlvbkNhY2hlUmVzb3VyY2U6OmNyZWF0ZSh1cmwsIHJlc3BvbnNlLCB0eXBlKTsKLSAgICBo
YW5kbGUtPmNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlKCk7CisgICAgY29tcGxldGlvbkhhbmRs
ZXIoKTsKIH0KIAogdm9pZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OndpbGxTZW5kUmVxdWVzdEFz
eW5jKFJlc291cmNlSGFuZGxlKiwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgUmVzb3VyY2VS
ZXNwb25zZSYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlc291cmNlUmVxdWVzdCYmKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9B
cHBsaWNhdGlvbkNhY2hlR3JvdXAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmgJKHJldmlzaW9uIDIyNzQyOCkKKysr
IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuaAko
d29ya2luZyBjb3B5KQpAQCAtMTA5LDcgKzEwOSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBzaG91
bGRVc2VDcmVkZW50aWFsU3RvcmFnZShSZXNvdXJjZUhhbmRsZSopIG92ZXJyaWRlIHsgcmV0dXJu
IHRydWU7IH0KIAogICAgIC8vIFJlc291cmNlSGFuZGxlQ2xpZW50Ci0gICAgdm9pZCBkaWRSZWNl
aXZlUmVzcG9uc2VBc3luYyhSZXNvdXJjZUhhbmRsZSosIFJlc291cmNlUmVzcG9uc2UmJikgZmlu
YWw7CisgICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2VBc3luYyhSZXNvdXJjZUhhbmRsZSosIFJl
c291cmNlUmVzcG9uc2UmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBmaW5hbDsKICAg
ICB2b2lkIHdpbGxTZW5kUmVxdWVzdEFzeW5jKFJlc291cmNlSGFuZGxlKiwgUmVzb3VyY2VSZXF1
ZXN0JiYsIFJlc291cmNlUmVzcG9uc2UmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZXNvdXJj
ZVJlcXVlc3QmJik+JiYpIGZpbmFsOwogI2lmIFVTRShQUk9URUNUSU9OX1NQQUNFX0FVVEhfQ0FM
TEJBQ0spCiAgICAgdm9pZCBjYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlQXN5
bmMoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBQcm90ZWN0aW9uU3BhY2UmKSBmaW5hbDsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlc291cmNlSGFuZGxlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZXNvdXJj
ZUhhbmRsZS5jcHAJKHJldmlzaW9uIDIyNzQyOCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvQmxvYlJlc291cmNlSGFuZGxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzUsNyAr
NzUsNyBAQCBjbGFzcyBCbG9iUmVzb3VyY2VTeW5jaHJvbm91c0xvYWRlciA6IHB1CiBwdWJsaWM6
CiAgICAgQmxvYlJlc291cmNlU3luY2hyb25vdXNMb2FkZXIoUmVzb3VyY2VFcnJvciYsIFJlc291
cmNlUmVzcG9uc2UmLCBWZWN0b3I8Y2hhcj4mKTsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3Bv
bnNlQXN5bmMoUmVzb3VyY2VIYW5kbGUqLCBSZXNvdXJjZVJlc3BvbnNlJiYpIGZpbmFsOworICAg
IHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlQXN5bmMoUmVzb3VyY2VIYW5kbGUqLCBSZXNvdXJjZVJl
c3BvbnNlJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgZmluYWw7CiAgICAgdm9pZCBk
aWRGYWlsKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpIGZpbmFsOwogICAg
IHZvaWQgd2lsbFNlbmRSZXF1ZXN0QXN5bmMoUmVzb3VyY2VIYW5kbGUqLCBSZXNvdXJjZVJlcXVl
c3QmJiwgUmVzb3VyY2VSZXNwb25zZSYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlc291cmNl
UmVxdWVzdCYmKT4mJikgZmluYWw7CiAjaWYgVVNFKFBST1RFQ1RJT05fU1BBQ0VfQVVUSF9DQUxM
QkFDSykKQEAgLTEwOSwxMiArMTA5LDEyIEBAIHZvaWQgQmxvYlJlc291cmNlU3luY2hyb25vdXNM
b2FkZXI6OmNhbkEKIH0KICNlbmRpZgogCi12b2lkIEJsb2JSZXNvdXJjZVN5bmNocm9ub3VzTG9h
ZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2VBc3luYyhSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBSZXNv
dXJjZVJlc3BvbnNlJiYgcmVzcG9uc2UpCit2b2lkIEJsb2JSZXNvdXJjZVN5bmNocm9ub3VzTG9h
ZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2VBc3luYyhSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBSZXNv
dXJjZVJlc3BvbnNlJiYgcmVzcG9uc2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKIHsKICAgICAvLyBXZSBjYW5ub3QgaGFuZGxlIHRoZSBzaXplIHRoYXQg
aXMgbW9yZSB0aGFuIG1heGltdW0gaW50ZWdlci4KICAgICBpZiAocmVzcG9uc2UuZXhwZWN0ZWRD
b250ZW50TGVuZ3RoKCkgPiBJTlRfTUFYKSB7CiAgICAgICAgIG1fZXJyb3IgPSBSZXNvdXJjZUVy
cm9yKHdlYktpdEJsb2JSZXNvdXJjZURvbWFpbiwgc3RhdGljX2Nhc3Q8aW50PihCbG9iUmVzb3Vy
Y2VIYW5kbGU6OkVycm9yOjpOb3RSZWFkYWJsZUVycm9yKSwgcmVzcG9uc2UudXJsKCksICJGaWxl
IGlzIHRvbyBsYXJnZSIpOwotICAgICAgICBoYW5kbGUtPmNvbnRpbnVlRGlkUmVjZWl2ZVJlc3Bv
bnNlKCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKQEAgLTEyMyw3ICsxMjMsNyBAQCB2b2lkIEJsb2JSZXNvdXJjZVN5bmNocm9ub3VzTG9h
ZGVyOjpkaWRSCiAgICAgLy8gUmVhZCBhbGwgdGhlIGRhdGEuCiAgICAgbV9kYXRhLnJlc2l6ZShz
dGF0aWNfY2FzdDxzaXplX3Q+KHJlc3BvbnNlLmV4cGVjdGVkQ29udGVudExlbmd0aCgpKSk7CiAg
ICAgc3RhdGljX2Nhc3Q8QmxvYlJlc291cmNlSGFuZGxlKj4oaGFuZGxlKS0+cmVhZFN5bmMobV9k
YXRhLmRhdGEoKSwgc3RhdGljX2Nhc3Q8aW50PihtX2RhdGEuc2l6ZSgpKSk7Ci0gICAgaGFuZGxl
LT5jb250aW51ZURpZFJlY2VpdmVSZXNwb25zZSgpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7
CiB9CiAKIHZvaWQgQmxvYlJlc291cmNlU3luY2hyb25vdXNMb2FkZXI6OmRpZEZhaWwoUmVzb3Vy
Y2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKQEAgLTE3NiwxMiArMTc2LDYg
QEAgdm9pZCBCbG9iUmVzb3VyY2VIYW5kbGU6OmNhbmNlbCgpCiAgICAgUmVzb3VyY2VIYW5kbGU6
OmNhbmNlbCgpOwogfQogCi12b2lkIEJsb2JSZXNvdXJjZUhhbmRsZTo6Y29udGludWVEaWRSZWNl
aXZlUmVzcG9uc2UoKQotewotICAgIG1fYnVmZmVyLnJlc2l6ZShidWZmZXJTaXplKTsKLSAgICBy
ZWFkQXN5bmMoKTsKLX0KLQogdm9pZCBCbG9iUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KCkKIHsKICAg
ICBpZiAoIW1fYXN5bmMpIHsKQEAgLTU4NCw3ICs1NzgsMTAgQEAgdm9pZCBCbG9iUmVzb3VyY2VI
YW5kbGU6Om5vdGlmeVJlc3BvbnNlTwogICAgIC8vIGFzIGlmIHRoZSByZXNwb25zZSBoYWQgYSBD
b250ZW50LURpc3Bvc2l0aW9uIGhlYWRlciB3aXRoIHRoZSBmaWxlbmFtZSBwYXJhbWV0ZXIgc2V0
IHRvIHRoZSBGaWxlJ3MgbmFtZSBhdHRyaWJ1dGUuCiAgICAgLy8gTm90YWJseSwgdGhpcyB3aWxs
IGFmZmVjdCBhIG5hbWUgc3VnZ2VzdGVkIGluICJGaWxlIFNhdmUgQXMiLgogCi0gICAgY2xpZW50
KCktPmRpZFJlY2VpdmVSZXNwb25zZUFzeW5jKHRoaXMsIFdURk1vdmUocmVzcG9uc2UpKTsKKyAg
ICBjbGllbnQoKS0+ZGlkUmVjZWl2ZVJlc3BvbnNlQXN5bmModGhpcywgV1RGTW92ZShyZXNwb25z
ZSksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldIHsKKyAgICAgICAgbV9i
dWZmZXIucmVzaXplKGJ1ZmZlclNpemUpOworICAgICAgICByZWFkQXN5bmMoKTsKKyAgICB9KTsK
IH0KIAogdm9pZCBCbG9iUmVzb3VyY2VIYW5kbGU6Om5vdGlmeVJlc3BvbnNlT25FcnJvcigpCkBA
IC02MDcsNyArNjA0LDEwIEBAIHZvaWQgQmxvYlJlc291cmNlSGFuZGxlOjpub3RpZnlSZXNwb25z
ZU8KICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgY2xpZW50KCktPmRpZFJlY2VpdmVSZXNw
b25zZUFzeW5jKHRoaXMsIFdURk1vdmUocmVzcG9uc2UpKTsKKyAgICBjbGllbnQoKS0+ZGlkUmVj
ZWl2ZVJlc3BvbnNlQXN5bmModGhpcywgV1RGTW92ZShyZXNwb25zZSksIFt0aGlzLCBwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldIHsKKyAgICAgICAgbV9idWZmZXIucmVzaXplKGJ1ZmZl
clNpemUpOworICAgICAgICByZWFkQXN5bmMoKTsKKyAgICB9KTsKIH0KIAogdm9pZCBCbG9iUmVz
b3VyY2VIYW5kbGU6Om5vdGlmeVJlY2VpdmVEYXRhKGNvbnN0IGNoYXIqIGRhdGEsIGludCBieXRl
c1JlYWQpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZXNvdXJj
ZUhhbmRsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
QmxvYlJlc291cmNlSGFuZGxlLmgJKHJldmlzaW9uIDIyNzQyOCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlc291cmNlSGFuZGxlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTc1LDcgKzc1LDYgQEAgcHJpdmF0ZToKIAogICAgIC8vIFJlc291cmNlSGFuZGxlIG1ldGhvZHMu
CiAgICAgdm9pZCBjYW5jZWwoKSBvdmVycmlkZTsKLSAgICB2b2lkIGNvbnRpbnVlRGlkUmVjZWl2
ZVJlc3BvbnNlKCkgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGRvU3RhcnQoKTsKICAgICB2b2lkIGdl
dFNpemVGb3JOZXh0KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Bp
bmdIYW5kbGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L1BpbmdIYW5kbGUuaAkocmV2aXNpb24gMjI3NDI4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9QaW5nSGFuZGxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTY3LDkgKzY3LDkgQEAg
cHJpdmF0ZToKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9KTsKICAgICAgICAgcGluZ0xv
YWRDb21wbGV0ZShSZXNvdXJjZUVycm9yIHsgU3RyaW5nKCksIDAsIG1fY3VycmVudFJlcXVlc3Qu
dXJsKCksIEFTQ0lJTGl0ZXJhbCgiTm90IGFsbG93ZWQgdG8gZm9sbG93IHJlZGlyZWN0cyIpLCBS
ZXNvdXJjZUVycm9yOjpUeXBlOjpBY2Nlc3NDb250cm9sIH0pOwogICAgIH0KLSAgICB2b2lkIGRp
ZFJlY2VpdmVSZXNwb25zZUFzeW5jKFJlc291cmNlSGFuZGxlKiwgUmVzb3VyY2VSZXNwb25zZSYm
IHJlc3BvbnNlKSBmaW5hbAorICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlQXN5bmMoUmVzb3Vy
Y2VIYW5kbGUqLCBSZXNvdXJjZVJlc3BvbnNlJiYgcmVzcG9uc2UsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgZmluYWwKICAgICB7Ci0gICAgICAgIG1faGFu
ZGxlLT5jb250aW51ZURpZFJlY2VpdmVSZXNwb25zZSgpOworICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcigpOwogICAgICAgICBwaW5nTG9hZENvbXBsZXRlKHsgfSwgcmVzcG9uc2UpOwogICAgIH0K
ICAgICB2b2lkIGRpZFJlY2VpdmVCdWZmZXIoUmVzb3VyY2VIYW5kbGUqLCBSZWY8U2hhcmVkQnVm
ZmVyPiYmLCBpbnQpIGZpbmFsIHsgcGluZ0xvYWRDb21wbGV0ZSgpOyB9CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcAkocmV2
aXNpb24gMjI3NDI4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJj
ZUhhbmRsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJS
ZXNvdXJjZUhhbmRsZUNsaWVudC5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSA8YWxn
b3JpdGhtPgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0
Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nSGFzaC5oPgpAQCAtMTUwLDcgKzE1MSw3IEBAIHZvaWQg
UmVzb3VyY2VIYW5kbGU6OmNsZWFyQ2xpZW50KCkKICAgICBkLT5tX2NsaWVudCA9IG51bGxwdHI7
CiB9CiAKLXZvaWQgUmVzb3VyY2VIYW5kbGU6OmRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZVJl
c3BvbnNlJiYgcmVzcG9uc2UpCit2b2lkIFJlc291cmNlSGFuZGxlOjpkaWRSZWNlaXZlUmVzcG9u
c2UoUmVzb3VyY2VSZXNwb25zZSYmIHJlc3BvbnNlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKHJlc3BvbnNlLmlzSFRUUDA5KCkpIHsK
ICAgICAgICAgYXV0byB1cmwgPSByZXNwb25zZS51cmwoKTsKQEAgLTE1OSwxMSArMTYwLDExIEBA
IHZvaWQgUmVzb3VyY2VIYW5kbGU6OmRpZFJlY2VpdmVSZXNwb25zZSgKICAgICAgICAgICAgIGNh
bmNlbCgpOwogICAgICAgICAgICAgU3RyaW5nIG1lc3NhZ2UgPSAiQ2FuY2VsbGVkIGxvYWQgZnJv
bSAnIiArIHVybC5zdHJpbmdDZW50ZXJFbGxpcHNpemVkVG9MZW5ndGgoKSArICInIGJlY2F1c2Ug
aXQgaXMgdXNpbmcgSFRUUC8wLjkuIjsKICAgICAgICAgICAgIGQtPm1fY2xpZW50LT5kaWRGYWls
KHRoaXMsIHsgU3RyaW5nKCksIDAsIHVybCwgbWVzc2FnZSB9KTsKLSAgICAgICAgICAgIGNvbnRp
bnVlRGlkUmVjZWl2ZVJlc3BvbnNlKCk7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigp
OwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQotICAgIGNsaWVudCgpLT5k
aWRSZWNlaXZlUmVzcG9uc2VBc3luYyh0aGlzLCBXVEZNb3ZlKHJlc3BvbnNlKSk7CisgICAgY2xp
ZW50KCktPmRpZFJlY2VpdmVSZXNwb25zZUFzeW5jKHRoaXMsIFdURk1vdmUocmVzcG9uc2UpLCBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKICNpZiAhVVNFKFNPVVApICYmICFVU0Uo
Q1VSTCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5k
bGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291
cmNlSGFuZGxlLmgJKHJldmlzaW9uIDIyNzQyOCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaAkod29ya2luZyBjb3B5KQpAQCAtMTA3LDcgKzEwNyw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIHdpbGxTZW5kUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmJiwg
UmVzb3VyY2VSZXNwb25zZSYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlc291cmNlUmVxdWVz
dCYmKT4mJik7CiAjZW5kaWYKIAotICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNl
UmVzcG9uc2UmJik7CisgICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VSZXNwb25z
ZSYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogCiAgICAgYm9vbCBzaG91bGRVc2VD
cmVkZW50aWFsU3RvcmFnZSgpOwogICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJik7CkBAIC0xOTMsOSArMTkzLDYg
QEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGll
bnQoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsZWFyQ2xpZW50KCk7CiAKLSAg
ICAvLyBDYWxsZWQgaW4gcmVzcG9uc2UgdG8gUmVzb3VyY2VIYW5kbGVDbGllbnQ6OmRpZFJlY2Vp
dmVSZXNwb25zZUFzeW5jKCkuCi0gICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIGNvbnRp
bnVlRGlkUmVjZWl2ZVJlc3BvbnNlKCk7Ci0KICNpZiBVU0UoUFJPVEVDVElPTl9TUEFDRV9BVVRI
X0NBTExCQUNLKQogICAgIC8vIENhbGxlZCBpbiByZXNwb25zZSB0byBSZXNvdXJjZUhhbmRsZUNs
aWVudDo6Y2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZUFzeW5jKCkuCiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBjb250aW51ZUNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0
aW9uU3BhY2UoYm9vbCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jl
c291cmNlSGFuZGxlQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUNsaWVudC5oCShyZXZpc2lvbiAyMjc0MjgpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlQ2xpZW50LmgJKHdv
cmtpbmcgY29weSkKQEAgLTc3LDggKzc3LDcgQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBP
UlQgdmlydHVhbCB2b2lkIHdpbGxTZW5kUmVxdWVzdEFzeW5jKFJlc291cmNlSGFuZGxlKiwgUmVz
b3VyY2VSZXF1ZXN0JiYsIFJlc291cmNlUmVzcG9uc2UmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChSZXNvdXJjZVJlcXVlc3QmJik+JiYpID0gMDsKIAotICAgIC8vIENsaWVudCB3aWxsIGNhbGwg
UmVzb3VyY2VIYW5kbGU6OmNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlKCkgd2hlbiByZWFkeS4K
LSAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlQXN5bmMo
UmVzb3VyY2VIYW5kbGUqLCBSZXNvdXJjZVJlc3BvbnNlJiYpID0gMDsKKyAgICBXRUJDT1JFX0VY
UE9SVCB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlQXN5bmMoUmVzb3VyY2VIYW5kbGUq
LCBSZXNvdXJjZVJlc3BvbnNlJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgPSAwOwog
CiAjaWYgVVNFKFBST1RFQ1RJT05fU1BBQ0VfQVVUSF9DQUxMQkFDSykKICAgICAvLyBDbGllbnQg
d2lsbCBwYXNzIGFuIHVwZGF0ZWQgcmVxdWVzdCB1c2luZyBSZXNvdXJjZUhhbmRsZTo6Y29udGlu
dWVDYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlKCkgd2hlbiByZWFkeS4KSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU3luY2hyb25vdXNMb2FkZXJDbGll
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU3lu
Y2hyb25vdXNMb2FkZXJDbGllbnQuY3BwCShyZXZpc2lvbiAyMjc0MjgpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL1N5bmNocm9ub3VzTG9hZGVyQ2xpZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNjIsMTAgKzYyLDEwIEBAIHZvaWQgU3luY2hyb25vdXNMb2FkZXJDbGllbnQ6
OmNhbkF1dGhlbnQKIH0KICNlbmRpZgogCi12b2lkIFN5bmNocm9ub3VzTG9hZGVyQ2xpZW50Ojpk
aWRSZWNlaXZlUmVzcG9uc2VBc3luYyhSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBSZXNvdXJjZVJl
c3BvbnNlJiYgcmVzcG9uc2UpCit2b2lkIFN5bmNocm9ub3VzTG9hZGVyQ2xpZW50OjpkaWRSZWNl
aXZlUmVzcG9uc2VBc3luYyhSZXNvdXJjZUhhbmRsZSosIFJlc291cmNlUmVzcG9uc2UmJiByZXNw
b25zZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewog
ICAgIG1fcmVzcG9uc2UgPSBXVEZNb3ZlKHJlc3BvbnNlKTsKLSAgICBoYW5kbGUtPmNvbnRpbnVl
RGlkUmVjZWl2ZVJlc3BvbnNlKCk7CisgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKIH0KIAogdm9p
ZCBTeW5jaHJvbm91c0xvYWRlckNsaWVudDo6ZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUq
LCBjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgsIGludCAvKmVuY29kZWREYXRhTGVu
Z3RoKi8pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1N5bmNocm9ub3Vz
TG9hZGVyQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9TeW5jaHJvbm91c0xvYWRlckNsaWVudC5oCShyZXZpc2lvbiAyMjc0MjgpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1N5bmNocm9ub3VzTG9hZGVyQ2xpZW50LmgJKHdv
cmtpbmcgY29weSkKQEAgLTQ5LDcgKzQ5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHdpbGxTZW5k
UmVxdWVzdEFzeW5jKFJlc291cmNlSGFuZGxlKiwgUmVzb3VyY2VSZXF1ZXN0JiYsIFJlc291cmNl
UmVzcG9uc2UmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZXNvdXJjZVJlcXVlc3QmJik+JiYp
IG92ZXJyaWRlOwogICAgIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UoUmVzb3VyY2VI
YW5kbGUqKSBvdmVycmlkZTsKICAgICB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikgb3Zl
cnJpZGU7Ci0gICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2VBc3luYyhSZXNvdXJjZUhhbmRsZSos
IFJlc291cmNlUmVzcG9uc2UmJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9u
c2VBc3luYyhSZXNvdXJjZUhhbmRsZSosIFJlc291cmNlUmVzcG9uc2UmJiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmKSBvdmVycmlkZTsKICAgICB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291
cmNlSGFuZGxlKiwgY29uc3QgY2hhciosIHVuc2lnbmVkLCBpbnQgLyplbmNvZGVkRGF0YUxlbmd0
aCovKSBvdmVycmlkZTsKICAgICB2b2lkIGRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUq
KSBvdmVycmlkZTsKICAgICB2b2lkIGRpZEZhaWwoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNv
dXJjZUVycm9yJikgb3ZlcnJpZGU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAJKHJldmlzaW9u
IDIyNzQyOCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VI
YW5kbGVDRk5ldC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY1NywxMSArNjU3LDYgQEAgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiBSZXNvdXJjZUhhbmRsZTo6YwogICAgIHJldHVybiBkLT5tX2N1cnJl
bnRSZXF1ZXN0OwogfQogCi12b2lkIFJlc291cmNlSGFuZGxlOjpjb250aW51ZURpZFJlY2VpdmVS
ZXNwb25zZSgpCi17Ci0gICAgZC0+bV9jb25uZWN0aW9uRGVsZWdhdGUtPmNvbnRpbnVlRGlkUmVj
ZWl2ZVJlc3BvbnNlKCk7Ci19Ci0KICNpZiBVU0UoUFJPVEVDVElPTl9TUEFDRV9BVVRIX0NBTExC
QUNLKQogdm9pZCBSZXNvdXJjZUhhbmRsZTo6Y29udGludWVDYW5BdXRoZW50aWNhdGVBZ2FpbnN0
UHJvdGVjdGlvblNwYWNlKGJvb2wgY2FuQXV0aGVudGljYXRlKQogewpJbmRleDogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRl
bGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdh
dGVXaXRoT3BlcmF0aW9uUXVldWUuY3BwCShyZXZpc2lvbiAyMjc0MjgpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVs
ZWdhdGVXaXRoT3BlcmF0aW9uUXVldWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xODAsMzAgKzE4
MCwzMCBAQCBDRlVSTFJlcXVlc3RSZWYgUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lCiB2b2lkIFJl
c291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWU6OmRp
ZFJlY2VpdmVSZXNwb25zZShDRlVSTENvbm5lY3Rpb25SZWYgY29ubmVjdGlvbiwgQ0ZVUkxSZXNw
b25zZVJlZiBjZlJlc3BvbnNlKQogewogICAgIGF1dG8gcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYo
KnRoaXMpOwotICAgIGF1dG8gd29yayA9IFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyks
IGNmUmVzcG9uc2UgPSBSZXRhaW5QdHI8Q0ZVUkxSZXNwb25zZVJlZj4oY2ZSZXNwb25zZSksIGNv
bm5lY3Rpb24gPSBSZXRhaW5QdHI8Q0ZVUkxDb25uZWN0aW9uUmVmPihjb25uZWN0aW9uKV0gKCkg
ewotICAgICAgICBhdXRvJiBoYW5kbGUgPSBwcm90ZWN0ZWRUaGlzLT5tX2hhbmRsZTsKLSAgICAg
ICAgCi0gICAgICAgIGlmICghcHJvdGVjdGVkVGhpcy0+aGFzSGFuZGxlKCkgfHwgIWhhbmRsZS0+
Y2xpZW50KCkgfHwgIWhhbmRsZS0+Y29ubmVjdGlvbigpKSB7Ci0gICAgICAgICAgICBwcm90ZWN0
ZWRUaGlzLT5jb250aW51ZURpZFJlY2VpdmVSZXNwb25zZSgpOworICAgIGF1dG8gd29yayA9IFt0
aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNmUmVzcG9uc2UgPSBSZXRhaW5Q
dHI8Q0ZVUkxSZXNwb25zZVJlZj4oY2ZSZXNwb25zZSksIGNvbm5lY3Rpb24gPSBSZXRhaW5QdHI8
Q0ZVUkxDb25uZWN0aW9uUmVmPihjb25uZWN0aW9uKV0gKCkgbXV0YWJsZSB7CisgICAgICAgIGlm
ICghaGFzSGFuZGxlKCkgfHwgIW1faGFuZGxlLT5jbGllbnQoKSB8fCAhbV9oYW5kbGUtPmNvbm5l
Y3Rpb24oKSkgeworICAgICAgICAgICAgbV9zZW1hcGhvcmUuc2lnbmFsKCk7CiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBMT0coTmV0d29yaywgIkNGTmV0IC0gUmVz
b3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZTo6ZGlk
UmVjZWl2ZVJlc3BvbnNlKGhhbmRsZT0lcCkgKCVzKSIsIGhhbmRsZSwgaGFuZGxlLT5maXJzdFJl
cXVlc3QoKS51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgTE9HKE5ldHdv
cmssICJDRk5ldCAtIFJlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3Bl
cmF0aW9uUXVldWU6OmRpZFJlY2VpdmVSZXNwb25zZShoYW5kbGU9JXApICglcykiLCBtX2hhbmRs
ZSwgbV9oYW5kbGUtPmZpcnN0UmVxdWVzdCgpLnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkp
OwogCiAgICAgICAgIC8vIEF2b2lkIE1JTUUgdHlwZSBzbmlmZmluZyBpZiB0aGUgcmVzcG9uc2Ug
Y29tZXMgYmFjayBhcyAzMDQgTm90IE1vZGlmaWVkLgogICAgICAgICBhdXRvIG1zZyA9IENGVVJM
UmVzcG9uc2VHZXRIVFRQUmVzcG9uc2UoY2ZSZXNwb25zZS5nZXQoKSk7CiAgICAgICAgIGludCBz
dGF0dXNDb2RlID0gbXNnID8gQ0ZIVFRQTWVzc2FnZUdldFJlc3BvbnNlU3RhdHVzQ29kZShtc2cp
IDogMDsKIAogICAgICAgICBpZiAoc3RhdHVzQ29kZSAhPSAzMDQpIHsKLSAgICAgICAgICAgIGJv
b2wgaXNNYWluUmVzb3VyY2VMb2FkID0gaGFuZGxlLT5maXJzdFJlcXVlc3QoKS5yZXF1ZXN0ZXIo
KSA9PSBSZXNvdXJjZVJlcXVlc3Q6OlJlcXVlc3Rlcjo6TWFpbjsKKyAgICAgICAgICAgIGJvb2wg
aXNNYWluUmVzb3VyY2VMb2FkID0gbV9oYW5kbGUtPmZpcnN0UmVxdWVzdCgpLnJlcXVlc3Rlcigp
ID09IFJlc291cmNlUmVxdWVzdDo6UmVxdWVzdGVyOjpNYWluOwogICAgICAgICB9CiAKLSAgICAg
ICAgaWYgKF9DRlVSTFJlcXVlc3RDb3B5UHJvdG9jb2xQcm9wZXJ0eUZvcktleShoYW5kbGUtPmZp
cnN0UmVxdWVzdCgpLmNmVVJMUmVxdWVzdChEb05vdFVwZGF0ZUhUVFBCb2R5KSwgQ0ZTVFIoIkZv
cmNlSFRNTE1JTUVUeXBlIikpKQorICAgICAgICBpZiAoX0NGVVJMUmVxdWVzdENvcHlQcm90b2Nv
bFByb3BlcnR5Rm9yS2V5KG1faGFuZGxlLT5maXJzdFJlcXVlc3QoKS5jZlVSTFJlcXVlc3QoRG9O
b3RVcGRhdGVIVFRQQm9keSksIENGU1RSKCJGb3JjZUhUTUxNSU1FVHlwZSIpKSkKICAgICAgICAg
ICAgIENGVVJMUmVzcG9uc2VTZXRNSU1FVHlwZShjZlJlc3BvbnNlLmdldCgpLCBDRlNUUigidGV4
dC9odG1sIikpOwogCiAgICAgICAgIFJlc291cmNlUmVzcG9uc2UgcmVzb3VyY2VSZXNwb25zZShj
ZlJlc3BvbnNlLmdldCgpKTsKICAgICAgICAgcmVzb3VyY2VSZXNwb25zZS5zZXRTb3VyY2UoUmVz
b3VyY2VSZXNwb25zZTo6U291cmNlOjpOZXR3b3JrKTsKLSAgICAgICAgaGFuZGxlLT5kaWRSZWNl
aXZlUmVzcG9uc2UoV1RGTW92ZShyZXNvdXJjZVJlc3BvbnNlKSk7CisgICAgICAgIG1faGFuZGxl
LT5kaWRSZWNlaXZlUmVzcG9uc2UoV1RGTW92ZShyZXNvdXJjZVJlc3BvbnNlKSwgW3RoaXMsIHBy
b3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpXSB7CisgICAgICAgICAgICBtX3Nl
bWFwaG9yZS5zaWduYWwoKTsKKyAgICAgICAgfSk7CiAgICAgfTsKIAogICAgIGlmIChtX21lc3Nh
Z2VRdWV1ZSkKQEAgLTM4OSwxMSArMzg5LDYgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZUNGVVJMQ29u
bmVjdGlvbkRlbGVnYQogfQogI2VuZGlmIC8vIFVTRShQUk9URUNUSU9OX1NQQUNFX0FVVEhfQ0FM
TEJBQ0spCiAKLXZvaWQgUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhP
cGVyYXRpb25RdWV1ZTo6Y29udGludWVEaWRSZWNlaXZlUmVzcG9uc2UoKQotewotICAgIG1fc2Vt
YXBob3JlLnNpZ25hbCgpOwotfQotCiB2b2lkIFJlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9u
RGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWU6OmNvbnRpbnVlV2lsbENhY2hlUmVzcG9uc2UoQ0ZD
YWNoZWRVUkxSZXNwb25zZVJlZiByZXNwb25zZSkKIHsKICAgICBtX2NhY2hlZFJlc3BvbnNlUmVz
dWx0ID0gcmVzcG9uc2U7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1
cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcAkocmV2aXNpb24gMjI3
NDI4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFu
ZGxlQ3VybC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJM
b2dnaW5nLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oIgogI2luY2x1ZGUg
IlN5bmNocm9ub3VzTG9hZGVyQ2xpZW50LmgiCisjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5k
bGVyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMjE0LDggKzIxNSwxMiBAQCB2b2lk
IFJlc291cmNlSGFuZGxlOjpyZWNlaXZlZFJlcXVlc3RUb0NvCiAKICAgICBjbGVhckF1dGhlbnRp
Y2F0aW9uKCk7CiAKLSAgICBhdXRvIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKTsKLSAg
ICBkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VSZXNwb25zZShkLT5tX3Jlc3BvbnNlKSk7Cisg
ICAgZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlUmVzcG9uc2UoZC0+bV9yZXNwb25zZSksIFt0
aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldIHsKKyAgICAgICAgQVNTRVJUKGlz
TWFpblRocmVhZCgpKTsKKworICAgICAgICBpZiAoZC0+bV9kZWxlZ2F0ZSkKKyAgICAgICAgICAg
IGQtPm1fZGVsZWdhdGUtPmNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlKCk7CisgICAgfSk7CiB9
CiAKIHZvaWQgUmVzb3VyY2VIYW5kbGU6OnJlY2VpdmVkQ2FuY2VsbGF0aW9uKGNvbnN0IEF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlJiBjaGFsbGVuZ2UpCkBAIC0yNTksMTQgKzI2NCw2IEBAIHZvaWQg
UmVzb3VyY2VIYW5kbGU6OnBsYXRmb3JtTG9hZFJlc291cmMKICAgICByZXNwb25zZSA9IGNsaWVu
dC5yZXNwb25zZSgpOwogfQogCi12b2lkIFJlc291cmNlSGFuZGxlOjpjb250aW51ZURpZFJlY2Vp
dmVSZXNwb25zZSgpCi17Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLQotICAgIGlmIChk
LT5tX2RlbGVnYXRlKQotICAgICAgICBkLT5tX2RlbGVnYXRlLT5jb250aW51ZURpZFJlY2VpdmVS
ZXNwb25zZSgpOwotfQotCiB2b2lkIFJlc291cmNlSGFuZGxlOjpwbGF0Zm9ybUNvbnRpbnVlU3lu
Y2hyb25vdXNEaWRSZWNlaXZlUmVzcG9uc2UoKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQo
KSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VI
YW5kbGVDdXJsRGVsZWdhdGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmxEZWxlZ2F0ZS5jcHAJKHJldmlzaW9u
IDIyNzQyOCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJj
ZUhhbmRsZUN1cmxEZWxlZ2F0ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyMSw3ICsyMjEsOSBA
QCB2b2lkIFJlc291cmNlSGFuZGxlQ3VybERlbGVnYXRlOjpjdXJsRGlkCiAgICAgICAgIEN1cmxD
YWNoZU1hbmFnZXI6OnNpbmdsZXRvbigpLmRpZFJlY2VpdmVSZXNwb25zZSgqbV9oYW5kbGUsIHJl
c3BvbnNlKCkpOwogCiAgICAgICAgIGF1dG8gcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKm1faGFu
ZGxlKTsKLSAgICAgICAgbV9oYW5kbGUtPmRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZVJlc3Bv
bnNlKHJlc3BvbnNlKCkpKTsKKyAgICAgICAgbV9oYW5kbGUtPmRpZFJlY2VpdmVSZXNwb25zZShS
ZXNvdXJjZVJlc3BvbnNlKHJlc3BvbnNlKCkpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VS
ZWYoKnRoaXMpXSB7CisgICAgICAgICAgICBjb250aW51ZUFmdGVyRGlkUmVjZWl2ZVJlc3BvbnNl
KCk7CisgICAgICAgIH0pOwogICAgIH0KIH0KIApAQCAtNDI2LDcgKzQyOCw5IEBAIHZvaWQgUmVz
b3VyY2VIYW5kbGVDdXJsRGVsZWdhdGU6OmhhbmRsZUQKIAogICAgIGlmIChiYXNlNjQpIHsKICAg
ICAgICAgZGF0YSA9IGRlY29kZVVSTEVzY2FwZVNlcXVlbmNlcyhkYXRhKTsKLSAgICAgICAgbV9o
YW5kbGUtPmRpZFJlY2VpdmVSZXNwb25zZShXVEZNb3ZlKHJlc3BvbnNlKSk7CisgICAgICAgIG1f
aGFuZGxlLT5kaWRSZWNlaXZlUmVzcG9uc2UoV1RGTW92ZShyZXNwb25zZSksIFt0aGlzLCBwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldIHsKKyAgICAgICAgICAgIGNvbnRpbnVlQWZ0ZXJE
aWRSZWNlaXZlUmVzcG9uc2UoKTsKKyAgICAgICAgfSk7CiAKICAgICAgICAgLy8gZGlkUmVjZWl2
ZVJlc3BvbnNlIG1pZ2h0IGNhdXNlIHRoZSBjbGllbnQgdG8gYmUgZGVsZXRlZC4KICAgICAgICAg
aWYgKG1faGFuZGxlLT5jbGllbnQoKSkgewpAQCAtNDM3LDcgKzQ0MSw5IEBAIHZvaWQgUmVzb3Vy
Y2VIYW5kbGVDdXJsRGVsZWdhdGU6OmhhbmRsZUQKICAgICB9IGVsc2UgewogICAgICAgICBUZXh0
RW5jb2RpbmcgZW5jb2RpbmcoY2hhcnNldCk7CiAgICAgICAgIGRhdGEgPSBkZWNvZGVVUkxFc2Nh
cGVTZXF1ZW5jZXMoZGF0YSwgZW5jb2RpbmcpOwotICAgICAgICBtX2hhbmRsZS0+ZGlkUmVjZWl2
ZVJlc3BvbnNlKFdURk1vdmUocmVzcG9uc2UpKTsKKyAgICAgICAgbV9oYW5kbGUtPmRpZFJlY2Vp
dmVSZXNwb25zZShXVEZNb3ZlKHJlc3BvbnNlKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtl
UmVmKCp0aGlzKV0geworICAgICAgICAgICAgY29udGludWVBZnRlckRpZFJlY2VpdmVSZXNwb25z
ZSgpOworICAgICAgICB9KTsKIAogICAgICAgICAvLyBkaWRSZWNlaXZlUmVzcG9uc2UgbWlnaHQg
Y2F1c2UgdGhlIGNsaWVudCB0byBiZSBkZWxldGVkLgogICAgICAgICBpZiAobV9oYW5kbGUtPmNs
aWVudCgpKSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNv
dXJjZUhhbmRsZU1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQkocmV2aXNpb24gMjI3NDI4KQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0JKHdv
cmtpbmcgY29weSkKQEAgLTQ3MSwxMSArNDcxLDYgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6d2ls
bFNlbmRSZXF1ZXN0KFJlcwogICAgIH0pOwogfQogCi12b2lkIFJlc291cmNlSGFuZGxlOjpjb250
aW51ZURpZFJlY2VpdmVSZXNwb25zZSgpCi17Ci0gICAgW2RlbGVnYXRlKCkgY29udGludWVEaWRS
ZWNlaXZlUmVzcG9uc2VdOwotfQotCiB2b2lkIFJlc291cmNlSGFuZGxlOjpkaWRSZWNlaXZlQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UoY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmIGNoYWxs
ZW5nZSkKIHsKICAgICBBU1NFUlQoIWQtPm1fY3VycmVudE1hY0NoYWxsZW5nZSk7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVB
c09wZXJhdGlvblF1ZXVlRGVsZWdhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVl
RGVsZWdhdGUuaAkocmV2aXNpb24gMjI3NDI4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDcgKzQ3LDYgQEAgQGludGVyZmFjZSBXZWJDb3JlUmVz
b3VyY2VIYW5kbGVBc09wZXJhdAogCiAtICh2b2lkKWRldGFjaEhhbmRsZTsKIC0gKGlkKWluaXRX
aXRoSGFuZGxlOihXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZSopaGFuZGxlIG1lc3NhZ2VRdWV1ZToo
TWVzc2FnZVF1ZXVlPEZ1bmN0aW9uPHZvaWQoKT4+KiltZXNzYWdlUXVldWU7Ci0tICh2b2lkKWNv
bnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlOwogLSAodm9pZCljb250aW51ZUNhbkF1dGhlbnRpY2F0
ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2U6KEJPT0wpY2FuQXV0aGVudGljYXRlOwogLSAodm9pZClj
b250aW51ZVdpbGxDYWNoZVJlc3BvbnNlOihOU0NhY2hlZFVSTFJlc3BvbnNlICopcmVzcG9uc2U7
CiBAZW5kCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3Jl
UmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUubW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxl
QXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tCShyZXZpc2lvbiAyMjc0MjgpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJh
dGlvblF1ZXVlRGVsZWdhdGUubW0JKHdvcmtpbmcgY29weSkKQEAgLTEwOCwxMSArMTA4LDYgQEAg
LSAodm9pZClkZWFsbG9jCiAgICAgW3N1cGVyIGRlYWxsb2NdOwogfQogCi0tICh2b2lkKWNvbnRp
bnVlRGlkUmVjZWl2ZVJlc3BvbnNlCi17Ci0gICAgZGlzcGF0Y2hfc2VtYXBob3JlX3NpZ25hbCht
X3NlbWFwaG9yZSk7Ci19Ci0KIC0gKHZvaWQpY29udGludWVDYW5BdXRoZW50aWNhdGVBZ2FpbnN0
UHJvdGVjdGlvblNwYWNlOihCT09MKWNhbkF1dGhlbnRpY2F0ZQogewogICAgIG1fYm9vbFJlc3Vs
dCA9IGNhbkF1dGhlbnRpY2F0ZTsKQEAgLTIzMCw3ICsyMjUsOSBAQCAtICh2b2lkKWNvbm5lY3Rp
b246KE5TVVJMQ29ubmVjdGlvbiAqKWNvCiAgICAgICAgIHJlc291cmNlUmVzcG9uc2Uuc2V0U291
cmNlKFJlc291cmNlUmVzcG9uc2U6OlNvdXJjZTo6TmV0d29yayk7CiAgICAgICAgIFJlc291cmNl
SGFuZGxlOjpnZXRDb25uZWN0aW9uVGltaW5nRGF0YShjb25uZWN0aW9uLmdldCgpLCByZXNvdXJj
ZVJlc3BvbnNlLmRlcHJlY2F0ZWROZXR3b3JrTG9hZE1ldHJpY3MoKSk7CiAKLSAgICAgICAgbV9o
YW5kbGUtPmRpZFJlY2VpdmVSZXNwb25zZShXVEZNb3ZlKHJlc291cmNlUmVzcG9uc2UpKTsKKyAg
ICAgICAgbV9oYW5kbGUtPmRpZFJlY2VpdmVSZXNwb25zZShXVEZNb3ZlKHJlc291cmNlUmVzcG9u
c2UpLCBbc2VsZiwgcHJvdGVjdGVkU2VsZiA9IFdURk1vdmUocHJvdGVjdGVkU2VsZildIHsKKyAg
ICAgICAgICAgIGRpc3BhdGNoX3NlbWFwaG9yZV9zaWduYWwobV9zZW1hcGhvcmUpOworICAgICAg
ICB9KTsKICAgICB9OwogCiAgICAgW3NlbGYgY2FsbEZ1bmN0aW9uT25NYWluVGhyZWFkOldURk1v
dmUod29yayldOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jl
c291cmNlSGFuZGxlU291cC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAJKHJldmlzaW9uIDIyNzQyOCkK
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNv
dXAuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NjMsNyArNDYzLDkgQEAgc3RhdGljIHZvaWQgbmV4
dE11bHRpcGFydFJlc3BvbnNlUGFydENhbAogCiAgICAgZC0+bV9wcmV2aW91c1Bvc2l0aW9uID0g
MDsKIAotICAgIGhhbmRsZS0+ZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlUmVzcG9uc2UoZC0+
bV9yZXNwb25zZSkpOworICAgIGhhbmRsZS0+ZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlUmVz
cG9uc2UoZC0+bV9yZXNwb25zZSksIFtoYW5kbGUgPSBtYWtlUmVmKCpoYW5kbGUpXSB7CisgICAg
ICAgIGNvbnRpbnVlQWZ0ZXJEaWRSZWNlaXZlUmVzcG9uc2UoaGFuZGxlLnB0cigpKTsKKyAgICB9
KTsKIH0KIAogc3RhdGljIHZvaWQgc2VuZFJlcXVlc3RDYWxsYmFjayhHT2JqZWN0KiwgR0FzeW5j
UmVzdWx0KiByZXN1bHQsIGdwb2ludGVyIGRhdGEpCkBAIC01MjAsNyArNTIyLDkgQEAgc3RhdGlj
IHZvaWQgc2VuZFJlcXVlc3RDYWxsYmFjayhHT2JqZWN0KgogICAgIGVsc2UKICAgICAgICAgZC0+
bV9pbnB1dFN0cmVhbSA9IGlucHV0U3RyZWFtOwogCi0gICAgaGFuZGxlLT5kaWRSZWNlaXZlUmVz
cG9uc2UoUmVzb3VyY2VSZXNwb25zZShkLT5tX3Jlc3BvbnNlKSk7CisgICAgaGFuZGxlLT5kaWRS
ZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VSZXNwb25zZShkLT5tX3Jlc3BvbnNlKSwgW2hhbmRsZSA9
IG1ha2VSZWYoKmhhbmRsZSldIHsKKyAgICAgICAgY29udGludWVBZnRlckRpZFJlY2VpdmVSZXNw
b25zZShoYW5kbGUucHRyKCkpOworICAgIH0pOwogfQogCiB2b2lkIFJlc291cmNlSGFuZGxlOjpw
bGF0Zm9ybUNvbnRpbnVlU3luY2hyb25vdXNEaWRSZWNlaXZlUmVzcG9uc2UoKQpAQCAtMTAxOSwx
MSArMTAyMyw2IEBAIHN0YXRpYyB2b2lkIHJlYWRDYWxsYmFjayhHT2JqZWN0KiwgR0FzeW4KICAg
ICAgICAgZC0+bV9jYW5jZWxsYWJsZS5nZXQoKSwgcmVhZENhbGxiYWNrLCBoYW5kbGUuZ2V0KCkp
OwogfQogCi12b2lkIFJlc291cmNlSGFuZGxlOjpjb250aW51ZURpZFJlY2VpdmVSZXNwb25zZSgp
Ci17Ci0gICAgY29udGludWVBZnRlckRpZFJlY2VpdmVSZXNwb25zZSh0aGlzKTsKLX0KLQogfQog
CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMjc0MzgpCisrKyBTb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDE4LTAxLTIzICBB
bGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVXNl
IENvbXBsZXRpb25IYW5kbGVycyBmb3IgUmVzb3VyY2VIYW5kbGVDbGllbnQ6OmRpZFJlY2VpdmVS
ZXNwb25zZUFzeW5jCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xODE5NjEKKworICAgICAgICBSZXZpZXdlZCBieSBNaWNoYWVsIENhdGFuemFyby4KKwor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5oOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrTG9hZC5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJj
ZUxvYWRQYXJhbWV0ZXJzLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9t
YWMvV2ViRHJhZ0NsaWVudE1hYy5tbToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFj
L1dlYlBhZ2VNYWMubW06CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKwog
MjAxOC0wMS0yMyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgog
CiAgICAgICAgIFJlbW92ZSBjb21waWxlIGd1YXJkIGFyb3VuZCBiZWFjb24gQVBJCkluZGV4OiBT
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcAkocmV2aXNpb24g
MjI3NDI4KQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTM0LDcgKzM0LDYgQEAKICNpbmNsdWRlICJXZWJDb3JlQXJndW1l
bnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJFcnJvcnMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL05v
dEltcGxlbWVudGVkLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUhhbmRsZS5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFy
ZWRCdWZmZXIuaD4KICNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CkluZGV4OiBTb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5oCShyZXZpc2lvbiAyMjc0MjgpCisrKyBT
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmgJKHdvcmtpbmcgY29weSkK
QEAgLTMxLDcgKzMxLDYgQEAKICNpbmNsdWRlICJOZXR3b3JrTG9hZFBhcmFtZXRlcnMuaCIKICNp
bmNsdWRlICJSZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlSGFuZGxl
Q2xpZW50Lmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8
d3RmL09wdGlvbmFsLmg+CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmgJKHJldmlzaW9u
IDIyNzQyOCkKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNl
TG9hZFBhcmFtZXRlcnMuaAkod29ya2luZyBjb3B5KQpAQCAtMjMsMTUgKzIzLDEzIEBACiAgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBOZXR3b3JrUmVz
b3VyY2VMb2FkUGFyYW1ldGVyc19oCi0jZGVmaW5lIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0
ZXJzX2gKKyNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmgi
CiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgogI2luY2x1ZGUgIldlYkNvbXBpbGVkQ29u
dGVudFJ1bGVMaXN0RGF0YS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ29udGVudFNlY3VyaXR5UG9s
aWN5UmVzcG9uc2VIZWFkZXJzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GZXRjaE9wdGlvbnMuaD4K
LSNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlSGFuZGxlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9S
ZXNvdXJjZUxvYWRlck9wdGlvbnMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVz
dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KQEAgLTY4LDUgKzY2LDMg
QEAgcHVibGljOgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBOZXR3
b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVyc19oCkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmgJKHJldmlzaW9uIDIyNzQyOCkKKysr
IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmgJKHdvcmtp
bmcgY29weSkKQEAgLTMwLDggKzMwLDYgQEAKICNpbmNsdWRlICJOZXR3b3JrRGF0YVRhc2suaCIK
ICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9BdXRoZW50
aWNhdGlvbkNoYWxsZW5nZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VIYW5kbGUuaD4K
LSNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlSGFuZGxlQ2xpZW50Lmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVkZSA8cGFs
L1Nlc3Npb25JRC5oPgpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNw
cAkocmV2aXNpb24gMjI3NDI4KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDgsNyArMTA4LDYgQEAKICNpbmNsdWRlIDxXZWJD
b3JlL1BhZ2VDYWNoZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUdyb3VwLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaD4KLSNpbmNsdWRlIDxXZWJD
b3JlL1Jlc291cmNlSGFuZGxlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUxvYWRPYnNl
cnZlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg+CkluZGV4OiBTb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZS5jcHAJKHJldmlzaW9uIDIyNzQyOCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY4
LDcgKzY4LDYgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1BhZ2VHcm91cC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUHJpbnRDb250ZXh0Lmg+Ci0jaW5jbHVk
ZSA8V2ViQ29yZS9SZXNvdXJjZUhhbmRsZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUnVudGltZUVu
YWJsZWRGZWF0dXJlcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU1dDb250ZXh0TWFuYWdlci5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvU2NyaXB0Q29udHJvbGxlci5oPgpJbmRleDogU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJEcmFnQ2xpZW50TWFjLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2Vi
RHJhZ0NsaWVudE1hYy5tbQkocmV2aXNpb24gMjI3NDI4KQorKysgU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJEcmFnQ2xpZW50TWFjLm1tCSh3b3JraW5nIGNv
cHkpCkBAIC00OCw3ICs0OCw2IEBACiAjaW1wb3J0IDxXZWJDb3JlL1BhZ2UuaD4KICNpbXBvcnQg
PFdlYkNvcmUvUGFzdGVib2FyZC5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJJbWFnZS5oPgot
I2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJjZUhhbmRsZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9TdHJp
bmdUcnVuY2F0b3IuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU5TVVJMRXh0cmFzLmg+CiAj
aW1wb3J0IDx3dGYvU3RkTGliRXh0cmFzLmg+CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQkocmV2aXNpb24gMjI3NDI4KQor
KysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0JKHdv
cmtpbmcgY29weSkKQEAgLTgzLDcgKzgzLDYgQEAKICNpbXBvcnQgPFdlYkNvcmUvUmVuZGVyT2Jq
ZWN0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1JlbmRlclN0eWxlLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1JlbmRlclZpZXcuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VIYW5kbGUuaD4KICNpbXBv
cnQgPFdlYkNvcmUvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1Njcm9sbFZpZXcuaD4KICNpbXBvcnQgPFdlYkNvcmUvU3R5bGVJbmhlcml0ZWREYXRhLmg+Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0TGVnYWN5L0NoYW5nZUxvZwkocmV2aXNpb24gMjI3NDM2KQorKysgU291cmNlL1dlYktp
dExlZ2FjeS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMiBAQAorMjAxOC0w
MS0yMyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAg
ICAgIFVzZSBDb21wbGV0aW9uSGFuZGxlcnMgZm9yIFJlc291cmNlSGFuZGxlQ2xpZW50OjpkaWRS
ZWNlaXZlUmVzcG9uc2VBc3luYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTgxOTYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTWljaGFlbCBDYXRhbnph
cm8uCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIu
Y3BwOgorCiAyMDE4LTAxLTE2ICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnku
Y29tPgogCiAgICAgICAgIFtDTWFrZV0gUmVtb3ZlIFdlYkNvcmVEZXJpdmVkU291cmNlcyBsaWJy
YXJ5IHRhcmdldApJbmRleDogU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJS
ZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXRMZWdh
Y3kvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcAkocmV2aXNpb24g
MjI3NDI4KQorKysgU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJj
ZUxvYWRTY2hlZHVsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw3ICszMiw2IEBACiAjaW5j
bHVkZSA8V2ViQ29yZS9OZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvUGluZ0hhbmRsZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1TdHJhdGVnaWVz
Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUhhbmRsZS5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TdWJyZXNvdXJjZUxvYWRl
ci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVVJMLmg+CkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyMjc0MzcpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMiBAQAorMjAxOC0wMS0yMyAgQWxleCBD
aHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIFVzZSBDb21w
bGV0aW9uSGFuZGxlcnMgZm9yIFJlc291cmNlSGFuZGxlQ2xpZW50OjpkaWRSZWNlaXZlUmVzcG9u
c2VBc3luYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTgxOTYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTWljaGFlbCBDYXRhbnphcm8uCisKKyAgICAg
ICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tOgorCiAyMDE4LTAxLTIzICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVtb3ZlIHVudXNl
ZCBRVEtpdCBwcmVmZXJlbmNlCkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYlByZWZlcmVuY2VzLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0JKHJldmlzaW9uIDIyNzQzNykKKysrIFNvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0JKHdvcmtpbmcgY29weSkK
QEAgLTQyLDcgKzQyLDYgQEAKICNpbXBvcnQgPFdlYkNvcmUvRGVwcmVjYXRlZEdsb2JhbFNldHRp
bmdzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oPgogI2ltcG9y
dCA8V2ViQ29yZS9QbGF0Zm9ybUNvb2tpZUphci5oPgotI2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJj
ZUhhbmRsZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvU2V0dGluZ3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGV4dEVuY29k
aW5nUmVnaXN0cnkuaD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>332078</attachid>
            <date>2018-01-23 14:33:55 -0800</date>
            <delta_ts>2018-01-23 15:33:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-181961-20180123143354.patch</filename>
            <type>text/plain</type>
            <size>38532</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyNzQzOSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ5IEBACisyMDE4LTAxLTIzICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVXNlIENvbXBs
ZXRpb25IYW5kbGVycyBmb3IgUmVzb3VyY2VIYW5kbGVDbGllbnQ6OmRpZFJlY2VpdmVSZXNwb25z
ZUFzeW5jCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
ODE5NjEKKworICAgICAgICBSZXZpZXdlZCBieSBNaWNoYWVsIENhdGFuemFyby4KKworICAgICAg
ICBObyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2Fk
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNw
b25zZUFzeW5jKToKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAg
KiBsb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6ZGlkUmVjZWl2ZVJlc3BvbnNlQXN5bmMpOgor
ICAgICAgICAqIGxvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpCbG9iUmVzb3VyY2VIYW5kbGU6Om5vdGlmeVJlc3BvbnNlT25TdWNjZXNzKToKKyAg
ICAgICAgKFdlYkNvcmU6OkJsb2JSZXNvdXJjZUhhbmRsZTo6bm90aWZ5UmVzcG9uc2VPbkVycm9y
KToKKyAgICAgICAgKFdlYkNvcmU6OkJsb2JSZXNvdXJjZUhhbmRsZTo6Y29udGludWVEaWRSZWNl
aXZlUmVzcG9uc2UpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvQmxvYlJl
c291cmNlSGFuZGxlLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9QaW5nSGFuZGxlLmg6
CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6ZGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmg6CisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9SZXNvdXJjZUhhbmRsZUNsaWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvU3luY2hyb25vdXNMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3luY2hy
b25vdXNMb2FkZXJDbGllbnQ6OmRpZFJlY2VpdmVSZXNwb25zZUFzeW5jKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL1N5bmNocm9ub3VzTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogcGxh
dGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0
aE9wZXJhdGlvblF1ZXVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlQ0ZV
UkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWU6OmRpZFJlY2VpdmVSZXNwb25z
ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVn
YXRlV2l0aE9wZXJhdGlvblF1ZXVlOjpjb250aW51ZURpZFJlY2VpdmVSZXNwb25zZSk6IERlbGV0
ZWQuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybERl
bGVnYXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlQ3VybERlbGVnYXRl
OjpjdXJsRGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFu
ZGxlQ3VybERlbGVnYXRlOjpoYW5kbGVEYXRhVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlSGFuZGxlQ3VybERlbGVnYXRlOjpjb250aW51ZURpZFJlY2VpdmVSZXNwb25zZSk6IERlbGV0
ZWQuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW06
CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6Y29udGludWVEaWRSZWNlaXZlUmVz
cG9uc2UpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVS
ZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5oOgorICAgICAgICAqIHBsYXRm
b3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxl
Z2F0ZS5tbToKKyAgICAgICAgKC1bV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1
ZURlbGVnYXRlIGNvbm5lY3Rpb246ZGlkUmVjZWl2ZVJlc3BvbnNlOl0pOgorICAgICAgICAoLVtX
ZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUgY29udGludWVEaWRS
ZWNlaXZlUmVzcG9uc2VdKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3Nv
dXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om5leHRNdWx0aXBh
cnRSZXNwb25zZVBhcnRDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpzZW5kUmVxdWVzdENh
bGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjb250aW51ZURpZFJl
Y2VpdmVSZXNwb25zZSk6IERlbGV0ZWQuCisKIDIwMTgtMDEtMjMgIEFsZXggQ2hyaXN0ZW5zZW4g
IDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZW1vdmUgdW51c2VkIE1lZGlh
UGxheWVyU3VwcG9ydHNUeXBlQ2xpZW50CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVz
b3VyY2VMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNv
dXJjZUxvYWRlci5jcHAJKHJldmlzaW9uIDIyNzQyOCkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9SZXNvdXJjZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY1NywxNCArNjU3LDE0IEBA
IHZvaWQgUmVzb3VyY2VMb2FkZXI6OmRpZFNlbmREYXRhKFJlc291cmMKICAgICBkaWRTZW5kRGF0
YShieXRlc1NlbnQsIHRvdGFsQnl0ZXNUb0JlU2VudCk7CiB9CiAKLXZvaWQgUmVzb3VyY2VMb2Fk
ZXI6OmRpZFJlY2VpdmVSZXNwb25zZUFzeW5jKFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIFJlc291
cmNlUmVzcG9uc2UmJiByZXNwb25zZSkKK3ZvaWQgUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVS
ZXNwb25zZUFzeW5jKFJlc291cmNlSGFuZGxlKiwgUmVzb3VyY2VSZXNwb25zZSYmIHJlc3BvbnNl
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAg
aWYgKGRvY3VtZW50TG9hZGVyKCktPmFwcGxpY2F0aW9uQ2FjaGVIb3N0KCkubWF5YmVMb2FkRmFs
bGJhY2tGb3JSZXNwb25zZSh0aGlzLCByZXNwb25zZSkpIHsKLSAgICAgICAgaGFuZGxlLT5jb250
aW51ZURpZFJlY2VpdmVSZXNwb25zZSgpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGRpZFJlY2VpdmVSZXNwb25zZShyZXNwb25zZSk7
Ci0gICAgaGFuZGxlLT5jb250aW51ZURpZFJlY2VpdmVSZXNwb25zZSgpOworICAgIGNvbXBsZXRp
b25IYW5kbGVyKCk7CiB9CiAKIHZvaWQgUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKFJl
c291cmNlSGFuZGxlKiwgY29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoLCBpbnQgZW5j
b2RlZERhdGFMZW5ndGgpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2Fk
ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIu
aAkocmV2aXNpb24gMjI3NDI4KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9h
ZGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTE4Miw3ICsxODIsNyBAQCBwcml2YXRlOgogCiAgICAg
Ly8gUmVzb3VyY2VIYW5kbGVDbGllbnQKICAgICB2b2lkIGRpZFNlbmREYXRhKFJlc291cmNlSGFu
ZGxlKiwgdW5zaWduZWQgbG9uZyBsb25nIGJ5dGVzU2VudCwgdW5zaWduZWQgbG9uZyBsb25nIHRv
dGFsQnl0ZXNUb0JlU2VudCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2VB
c3luYyhSZXNvdXJjZUhhbmRsZSosIFJlc291cmNlUmVzcG9uc2UmJikgb3ZlcnJpZGU7CisgICAg
dm9pZCBkaWRSZWNlaXZlUmVzcG9uc2VBc3luYyhSZXNvdXJjZUhhbmRsZSosIFJlc291cmNlUmVz
cG9uc2UmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBvdmVycmlkZTsKICAgICB2b2lk
IHdpbGxTZW5kUmVxdWVzdEFzeW5jKFJlc291cmNlSGFuZGxlKiwgUmVzb3VyY2VSZXF1ZXN0JiYs
IFJlc291cmNlUmVzcG9uc2UmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZXNvdXJjZVJlcXVl
c3QmJik+JiYpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5k
bGUqLCBjb25zdCBjaGFyKiwgdW5zaWduZWQsIGludCBlbmNvZGVkRGF0YUxlbmd0aCkgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBkaWRSZWNlaXZlQnVmZmVyKFJlc291cmNlSGFuZGxlKiwgUmVmPFNoYXJl
ZEJ1ZmZlcj4mJiwgaW50IGVuY29kZWREYXRhTGVuZ3RoKSBvdmVycmlkZTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hl
R3JvdXAuY3BwCShyZXZpc2lvbiAyMjc0MjgpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBw
Y2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDg5LDE0
ICs0ODksMTQgQEAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBBcHBsaWNhdGlvbkNhY2hlRwogICAg
IHJldHVybiBoYW5kbGU7CiB9CiAKLXZvaWQgQXBwbGljYXRpb25DYWNoZUdyb3VwOjpkaWRSZWNl
aXZlUmVzcG9uc2VBc3luYyhSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBSZXNvdXJjZVJlc3BvbnNl
JiYgcmVzcG9uc2UpCit2b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6ZGlkUmVjZWl2ZVJlc3Bv
bnNlQXN5bmMoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgUmVzb3VyY2VSZXNwb25zZSYmIHJlc3Bv
bnNlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAg
ICAgQVNTRVJUKG1fZnJhbWUpOwogICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVj
ZWl2ZVJlc291cmNlUmVzcG9uc2UoKm1fZnJhbWUsIG1fY3VycmVudFJlc291cmNlSWRlbnRpZmll
ciwgbV9mcmFtZS0+bG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIoKSwgcmVzcG9uc2UsIG51bGxwdHIp
OwogCiAgICAgaWYgKGhhbmRsZSA9PSBtX21hbmlmZXN0SGFuZGxlKSB7CiAgICAgICAgIGRpZFJl
Y2VpdmVNYW5pZmVzdFJlc3BvbnNlKHJlc3BvbnNlKTsKLSAgICAgICAgaGFuZGxlLT5jb250aW51
ZURpZFJlY2VpdmVSZXNwb25zZSgpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCkBAIC01MjMsNyArNTIzLDcgQEAgdm9pZCBBcHBsaWNhdGlv
bkNhY2hlR3JvdXA6OmRpZFJlY2VpdmVSZQogICAgICAgICAgICAgbV9jdXJyZW50SGFuZGxlID0g
bnVsbHB0cjsKICAgICAgICAgICAgIC8vIExvYWQgdGhlIG5leHQgcmVzb3VyY2UsIGlmIGFueS4K
ICAgICAgICAgICAgIHN0YXJ0TG9hZGluZ0VudHJ5KCk7Ci0gICAgICAgICAgICBoYW5kbGUtPmNv
bnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlKCk7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cigpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIC8vIFRoZSBzZXJ2
ZXIgY291bGQgcmV0dXJuIDMwNCBmb3IgYW4gdW5jb25kaXRpb25hbCByZXF1ZXN0IC0gaW4gdGhp
cyBjYXNlLCB3ZSBoYW5kbGUgdGhlIHJlc3BvbnNlIGFzIGEgbm9ybWFsIGVycm9yLgpAQCAtNTU1
LDEyICs1NTUsMTIgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmRpZFJlY2VpdmVSZQog
ICAgICAgICAgICAgLy8gTG9hZCB0aGUgbmV4dCByZXNvdXJjZSwgaWYgYW55LgogICAgICAgICAg
ICAgc3RhcnRMb2FkaW5nRW50cnkoKTsKICAgICAgICAgfQotICAgICAgICBoYW5kbGUtPmNvbnRp
bnVlRGlkUmVjZWl2ZVJlc3BvbnNlKCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCiAgICAgbV9jdXJyZW50UmVzb3VyY2UgPSBBcHBs
aWNhdGlvbkNhY2hlUmVzb3VyY2U6OmNyZWF0ZSh1cmwsIHJlc3BvbnNlLCB0eXBlKTsKLSAgICBo
YW5kbGUtPmNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlKCk7CisgICAgY29tcGxldGlvbkhhbmRs
ZXIoKTsKIH0KIAogdm9pZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OndpbGxTZW5kUmVxdWVzdEFz
eW5jKFJlc291cmNlSGFuZGxlKiwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgUmVzb3VyY2VS
ZXNwb25zZSYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlc291cmNlUmVxdWVzdCYmKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9B
cHBsaWNhdGlvbkNhY2hlR3JvdXAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmgJKHJldmlzaW9uIDIyNzQyOCkKKysr
IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuaAko
d29ya2luZyBjb3B5KQpAQCAtMTA5LDcgKzEwOSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBzaG91
bGRVc2VDcmVkZW50aWFsU3RvcmFnZShSZXNvdXJjZUhhbmRsZSopIG92ZXJyaWRlIHsgcmV0dXJu
IHRydWU7IH0KIAogICAgIC8vIFJlc291cmNlSGFuZGxlQ2xpZW50Ci0gICAgdm9pZCBkaWRSZWNl
aXZlUmVzcG9uc2VBc3luYyhSZXNvdXJjZUhhbmRsZSosIFJlc291cmNlUmVzcG9uc2UmJikgZmlu
YWw7CisgICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2VBc3luYyhSZXNvdXJjZUhhbmRsZSosIFJl
c291cmNlUmVzcG9uc2UmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBmaW5hbDsKICAg
ICB2b2lkIHdpbGxTZW5kUmVxdWVzdEFzeW5jKFJlc291cmNlSGFuZGxlKiwgUmVzb3VyY2VSZXF1
ZXN0JiYsIFJlc291cmNlUmVzcG9uc2UmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZXNvdXJj
ZVJlcXVlc3QmJik+JiYpIGZpbmFsOwogI2lmIFVTRShQUk9URUNUSU9OX1NQQUNFX0FVVEhfQ0FM
TEJBQ0spCiAgICAgdm9pZCBjYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlQXN5
bmMoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBQcm90ZWN0aW9uU3BhY2UmKSBmaW5hbDsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlc291cmNlSGFuZGxlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZXNvdXJj
ZUhhbmRsZS5jcHAJKHJldmlzaW9uIDIyNzQyOCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvQmxvYlJlc291cmNlSGFuZGxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzUsNyAr
NzUsNyBAQCBjbGFzcyBCbG9iUmVzb3VyY2VTeW5jaHJvbm91c0xvYWRlciA6IHB1CiBwdWJsaWM6
CiAgICAgQmxvYlJlc291cmNlU3luY2hyb25vdXNMb2FkZXIoUmVzb3VyY2VFcnJvciYsIFJlc291
cmNlUmVzcG9uc2UmLCBWZWN0b3I8Y2hhcj4mKTsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3Bv
bnNlQXN5bmMoUmVzb3VyY2VIYW5kbGUqLCBSZXNvdXJjZVJlc3BvbnNlJiYpIGZpbmFsOworICAg
IHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlQXN5bmMoUmVzb3VyY2VIYW5kbGUqLCBSZXNvdXJjZVJl
c3BvbnNlJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgZmluYWw7CiAgICAgdm9pZCBk
aWRGYWlsKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpIGZpbmFsOwogICAg
IHZvaWQgd2lsbFNlbmRSZXF1ZXN0QXN5bmMoUmVzb3VyY2VIYW5kbGUqLCBSZXNvdXJjZVJlcXVl
c3QmJiwgUmVzb3VyY2VSZXNwb25zZSYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlc291cmNl
UmVxdWVzdCYmKT4mJikgZmluYWw7CiAjaWYgVVNFKFBST1RFQ1RJT05fU1BBQ0VfQVVUSF9DQUxM
QkFDSykKQEAgLTEwOSwxMiArMTA5LDEyIEBAIHZvaWQgQmxvYlJlc291cmNlU3luY2hyb25vdXNM
b2FkZXI6OmNhbkEKIH0KICNlbmRpZgogCi12b2lkIEJsb2JSZXNvdXJjZVN5bmNocm9ub3VzTG9h
ZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2VBc3luYyhSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBSZXNv
dXJjZVJlc3BvbnNlJiYgcmVzcG9uc2UpCit2b2lkIEJsb2JSZXNvdXJjZVN5bmNocm9ub3VzTG9h
ZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2VBc3luYyhSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBSZXNv
dXJjZVJlc3BvbnNlJiYgcmVzcG9uc2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKIHsKICAgICAvLyBXZSBjYW5ub3QgaGFuZGxlIHRoZSBzaXplIHRoYXQg
aXMgbW9yZSB0aGFuIG1heGltdW0gaW50ZWdlci4KICAgICBpZiAocmVzcG9uc2UuZXhwZWN0ZWRD
b250ZW50TGVuZ3RoKCkgPiBJTlRfTUFYKSB7CiAgICAgICAgIG1fZXJyb3IgPSBSZXNvdXJjZUVy
cm9yKHdlYktpdEJsb2JSZXNvdXJjZURvbWFpbiwgc3RhdGljX2Nhc3Q8aW50PihCbG9iUmVzb3Vy
Y2VIYW5kbGU6OkVycm9yOjpOb3RSZWFkYWJsZUVycm9yKSwgcmVzcG9uc2UudXJsKCksICJGaWxl
IGlzIHRvbyBsYXJnZSIpOwotICAgICAgICBoYW5kbGUtPmNvbnRpbnVlRGlkUmVjZWl2ZVJlc3Bv
bnNlKCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKQEAgLTEyMyw3ICsxMjMsNyBAQCB2b2lkIEJsb2JSZXNvdXJjZVN5bmNocm9ub3VzTG9h
ZGVyOjpkaWRSCiAgICAgLy8gUmVhZCBhbGwgdGhlIGRhdGEuCiAgICAgbV9kYXRhLnJlc2l6ZShz
dGF0aWNfY2FzdDxzaXplX3Q+KHJlc3BvbnNlLmV4cGVjdGVkQ29udGVudExlbmd0aCgpKSk7CiAg
ICAgc3RhdGljX2Nhc3Q8QmxvYlJlc291cmNlSGFuZGxlKj4oaGFuZGxlKS0+cmVhZFN5bmMobV9k
YXRhLmRhdGEoKSwgc3RhdGljX2Nhc3Q8aW50PihtX2RhdGEuc2l6ZSgpKSk7Ci0gICAgaGFuZGxl
LT5jb250aW51ZURpZFJlY2VpdmVSZXNwb25zZSgpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7
CiB9CiAKIHZvaWQgQmxvYlJlc291cmNlU3luY2hyb25vdXNMb2FkZXI6OmRpZEZhaWwoUmVzb3Vy
Y2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKQEAgLTE3NiwxMiArMTc2LDYg
QEAgdm9pZCBCbG9iUmVzb3VyY2VIYW5kbGU6OmNhbmNlbCgpCiAgICAgUmVzb3VyY2VIYW5kbGU6
OmNhbmNlbCgpOwogfQogCi12b2lkIEJsb2JSZXNvdXJjZUhhbmRsZTo6Y29udGludWVEaWRSZWNl
aXZlUmVzcG9uc2UoKQotewotICAgIG1fYnVmZmVyLnJlc2l6ZShidWZmZXJTaXplKTsKLSAgICBy
ZWFkQXN5bmMoKTsKLX0KLQogdm9pZCBCbG9iUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KCkKIHsKICAg
ICBpZiAoIW1fYXN5bmMpIHsKQEAgLTU4NCw3ICs1NzgsMTAgQEAgdm9pZCBCbG9iUmVzb3VyY2VI
YW5kbGU6Om5vdGlmeVJlc3BvbnNlTwogICAgIC8vIGFzIGlmIHRoZSByZXNwb25zZSBoYWQgYSBD
b250ZW50LURpc3Bvc2l0aW9uIGhlYWRlciB3aXRoIHRoZSBmaWxlbmFtZSBwYXJhbWV0ZXIgc2V0
IHRvIHRoZSBGaWxlJ3MgbmFtZSBhdHRyaWJ1dGUuCiAgICAgLy8gTm90YWJseSwgdGhpcyB3aWxs
IGFmZmVjdCBhIG5hbWUgc3VnZ2VzdGVkIGluICJGaWxlIFNhdmUgQXMiLgogCi0gICAgY2xpZW50
KCktPmRpZFJlY2VpdmVSZXNwb25zZUFzeW5jKHRoaXMsIFdURk1vdmUocmVzcG9uc2UpKTsKKyAg
ICBjbGllbnQoKS0+ZGlkUmVjZWl2ZVJlc3BvbnNlQXN5bmModGhpcywgV1RGTW92ZShyZXNwb25z
ZSksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldIHsKKyAgICAgICAgbV9i
dWZmZXIucmVzaXplKGJ1ZmZlclNpemUpOworICAgICAgICByZWFkQXN5bmMoKTsKKyAgICB9KTsK
IH0KIAogdm9pZCBCbG9iUmVzb3VyY2VIYW5kbGU6Om5vdGlmeVJlc3BvbnNlT25FcnJvcigpCkBA
IC02MDcsNyArNjA0LDEwIEBAIHZvaWQgQmxvYlJlc291cmNlSGFuZGxlOjpub3RpZnlSZXNwb25z
ZU8KICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgY2xpZW50KCktPmRpZFJlY2VpdmVSZXNw
b25zZUFzeW5jKHRoaXMsIFdURk1vdmUocmVzcG9uc2UpKTsKKyAgICBjbGllbnQoKS0+ZGlkUmVj
ZWl2ZVJlc3BvbnNlQXN5bmModGhpcywgV1RGTW92ZShyZXNwb25zZSksIFt0aGlzLCBwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldIHsKKyAgICAgICAgbV9idWZmZXIucmVzaXplKGJ1ZmZl
clNpemUpOworICAgICAgICByZWFkQXN5bmMoKTsKKyAgICB9KTsKIH0KIAogdm9pZCBCbG9iUmVz
b3VyY2VIYW5kbGU6Om5vdGlmeVJlY2VpdmVEYXRhKGNvbnN0IGNoYXIqIGRhdGEsIGludCBieXRl
c1JlYWQpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZXNvdXJj
ZUhhbmRsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
QmxvYlJlc291cmNlSGFuZGxlLmgJKHJldmlzaW9uIDIyNzQyOCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlc291cmNlSGFuZGxlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTc1LDcgKzc1LDYgQEAgcHJpdmF0ZToKIAogICAgIC8vIFJlc291cmNlSGFuZGxlIG1ldGhvZHMu
CiAgICAgdm9pZCBjYW5jZWwoKSBvdmVycmlkZTsKLSAgICB2b2lkIGNvbnRpbnVlRGlkUmVjZWl2
ZVJlc3BvbnNlKCkgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGRvU3RhcnQoKTsKICAgICB2b2lkIGdl
dFNpemVGb3JOZXh0KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Bp
bmdIYW5kbGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L1BpbmdIYW5kbGUuaAkocmV2aXNpb24gMjI3NDI4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9QaW5nSGFuZGxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTY3LDkgKzY3LDkgQEAg
cHJpdmF0ZToKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9KTsKICAgICAgICAgcGluZ0xv
YWRDb21wbGV0ZShSZXNvdXJjZUVycm9yIHsgU3RyaW5nKCksIDAsIG1fY3VycmVudFJlcXVlc3Qu
dXJsKCksIEFTQ0lJTGl0ZXJhbCgiTm90IGFsbG93ZWQgdG8gZm9sbG93IHJlZGlyZWN0cyIpLCBS
ZXNvdXJjZUVycm9yOjpUeXBlOjpBY2Nlc3NDb250cm9sIH0pOwogICAgIH0KLSAgICB2b2lkIGRp
ZFJlY2VpdmVSZXNwb25zZUFzeW5jKFJlc291cmNlSGFuZGxlKiwgUmVzb3VyY2VSZXNwb25zZSYm
IHJlc3BvbnNlKSBmaW5hbAorICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlQXN5bmMoUmVzb3Vy
Y2VIYW5kbGUqLCBSZXNvdXJjZVJlc3BvbnNlJiYgcmVzcG9uc2UsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgZmluYWwKICAgICB7Ci0gICAgICAgIG1faGFu
ZGxlLT5jb250aW51ZURpZFJlY2VpdmVSZXNwb25zZSgpOworICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcigpOwogICAgICAgICBwaW5nTG9hZENvbXBsZXRlKHsgfSwgcmVzcG9uc2UpOwogICAgIH0K
ICAgICB2b2lkIGRpZFJlY2VpdmVCdWZmZXIoUmVzb3VyY2VIYW5kbGUqLCBSZWY8U2hhcmVkQnVm
ZmVyPiYmLCBpbnQpIGZpbmFsIHsgcGluZ0xvYWRDb21wbGV0ZSgpOyB9CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcAkocmV2
aXNpb24gMjI3NDI4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJj
ZUhhbmRsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJS
ZXNvdXJjZUhhbmRsZUNsaWVudC5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSA8YWxn
b3JpdGhtPgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0
Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nSGFzaC5oPgpAQCAtMTUwLDcgKzE1MSw3IEBAIHZvaWQg
UmVzb3VyY2VIYW5kbGU6OmNsZWFyQ2xpZW50KCkKICAgICBkLT5tX2NsaWVudCA9IG51bGxwdHI7
CiB9CiAKLXZvaWQgUmVzb3VyY2VIYW5kbGU6OmRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZVJl
c3BvbnNlJiYgcmVzcG9uc2UpCit2b2lkIFJlc291cmNlSGFuZGxlOjpkaWRSZWNlaXZlUmVzcG9u
c2UoUmVzb3VyY2VSZXNwb25zZSYmIHJlc3BvbnNlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKHJlc3BvbnNlLmlzSFRUUDA5KCkpIHsK
ICAgICAgICAgYXV0byB1cmwgPSByZXNwb25zZS51cmwoKTsKQEAgLTE1OSwxMSArMTYwLDExIEBA
IHZvaWQgUmVzb3VyY2VIYW5kbGU6OmRpZFJlY2VpdmVSZXNwb25zZSgKICAgICAgICAgICAgIGNh
bmNlbCgpOwogICAgICAgICAgICAgU3RyaW5nIG1lc3NhZ2UgPSAiQ2FuY2VsbGVkIGxvYWQgZnJv
bSAnIiArIHVybC5zdHJpbmdDZW50ZXJFbGxpcHNpemVkVG9MZW5ndGgoKSArICInIGJlY2F1c2Ug
aXQgaXMgdXNpbmcgSFRUUC8wLjkuIjsKICAgICAgICAgICAgIGQtPm1fY2xpZW50LT5kaWRGYWls
KHRoaXMsIHsgU3RyaW5nKCksIDAsIHVybCwgbWVzc2FnZSB9KTsKLSAgICAgICAgICAgIGNvbnRp
bnVlRGlkUmVjZWl2ZVJlc3BvbnNlKCk7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigp
OwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQotICAgIGNsaWVudCgpLT5k
aWRSZWNlaXZlUmVzcG9uc2VBc3luYyh0aGlzLCBXVEZNb3ZlKHJlc3BvbnNlKSk7CisgICAgY2xp
ZW50KCktPmRpZFJlY2VpdmVSZXNwb25zZUFzeW5jKHRoaXMsIFdURk1vdmUocmVzcG9uc2UpLCBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKICNpZiAhVVNFKFNPVVApICYmICFVU0Uo
Q1VSTCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5k
bGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291
cmNlSGFuZGxlLmgJKHJldmlzaW9uIDIyNzQyOCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaAkod29ya2luZyBjb3B5KQpAQCAtMTA3LDcgKzEwNyw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIHdpbGxTZW5kUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmJiwg
UmVzb3VyY2VSZXNwb25zZSYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlc291cmNlUmVxdWVz
dCYmKT4mJik7CiAjZW5kaWYKIAotICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNl
UmVzcG9uc2UmJik7CisgICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VSZXNwb25z
ZSYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogCiAgICAgYm9vbCBzaG91bGRVc2VD
cmVkZW50aWFsU3RvcmFnZSgpOwogICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJik7CkBAIC0xOTMsOSArMTkzLDYg
QEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGll
bnQoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsZWFyQ2xpZW50KCk7CiAKLSAg
ICAvLyBDYWxsZWQgaW4gcmVzcG9uc2UgdG8gUmVzb3VyY2VIYW5kbGVDbGllbnQ6OmRpZFJlY2Vp
dmVSZXNwb25zZUFzeW5jKCkuCi0gICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIGNvbnRp
bnVlRGlkUmVjZWl2ZVJlc3BvbnNlKCk7Ci0KICNpZiBVU0UoUFJPVEVDVElPTl9TUEFDRV9BVVRI
X0NBTExCQUNLKQogICAgIC8vIENhbGxlZCBpbiByZXNwb25zZSB0byBSZXNvdXJjZUhhbmRsZUNs
aWVudDo6Y2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZUFzeW5jKCkuCiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBjb250aW51ZUNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0
aW9uU3BhY2UoYm9vbCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jl
c291cmNlSGFuZGxlQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUNsaWVudC5oCShyZXZpc2lvbiAyMjc0MjgpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlQ2xpZW50LmgJKHdv
cmtpbmcgY29weSkKQEAgLTc3LDggKzc3LDcgQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBP
UlQgdmlydHVhbCB2b2lkIHdpbGxTZW5kUmVxdWVzdEFzeW5jKFJlc291cmNlSGFuZGxlKiwgUmVz
b3VyY2VSZXF1ZXN0JiYsIFJlc291cmNlUmVzcG9uc2UmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChSZXNvdXJjZVJlcXVlc3QmJik+JiYpID0gMDsKIAotICAgIC8vIENsaWVudCB3aWxsIGNhbGwg
UmVzb3VyY2VIYW5kbGU6OmNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlKCkgd2hlbiByZWFkeS4K
LSAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlQXN5bmMo
UmVzb3VyY2VIYW5kbGUqLCBSZXNvdXJjZVJlc3BvbnNlJiYpID0gMDsKKyAgICBXRUJDT1JFX0VY
UE9SVCB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlQXN5bmMoUmVzb3VyY2VIYW5kbGUq
LCBSZXNvdXJjZVJlc3BvbnNlJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgPSAwOwog
CiAjaWYgVVNFKFBST1RFQ1RJT05fU1BBQ0VfQVVUSF9DQUxMQkFDSykKICAgICAvLyBDbGllbnQg
d2lsbCBwYXNzIGFuIHVwZGF0ZWQgcmVxdWVzdCB1c2luZyBSZXNvdXJjZUhhbmRsZTo6Y29udGlu
dWVDYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlKCkgd2hlbiByZWFkeS4KSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU3luY2hyb25vdXNMb2FkZXJDbGll
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU3lu
Y2hyb25vdXNMb2FkZXJDbGllbnQuY3BwCShyZXZpc2lvbiAyMjc0MjgpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL1N5bmNocm9ub3VzTG9hZGVyQ2xpZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNjIsMTAgKzYyLDEwIEBAIHZvaWQgU3luY2hyb25vdXNMb2FkZXJDbGllbnQ6
OmNhbkF1dGhlbnQKIH0KICNlbmRpZgogCi12b2lkIFN5bmNocm9ub3VzTG9hZGVyQ2xpZW50Ojpk
aWRSZWNlaXZlUmVzcG9uc2VBc3luYyhSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBSZXNvdXJjZVJl
c3BvbnNlJiYgcmVzcG9uc2UpCit2b2lkIFN5bmNocm9ub3VzTG9hZGVyQ2xpZW50OjpkaWRSZWNl
aXZlUmVzcG9uc2VBc3luYyhSZXNvdXJjZUhhbmRsZSosIFJlc291cmNlUmVzcG9uc2UmJiByZXNw
b25zZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewog
ICAgIG1fcmVzcG9uc2UgPSBXVEZNb3ZlKHJlc3BvbnNlKTsKLSAgICBoYW5kbGUtPmNvbnRpbnVl
RGlkUmVjZWl2ZVJlc3BvbnNlKCk7CisgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKIH0KIAogdm9p
ZCBTeW5jaHJvbm91c0xvYWRlckNsaWVudDo6ZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUq
LCBjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgsIGludCAvKmVuY29kZWREYXRhTGVu
Z3RoKi8pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1N5bmNocm9ub3Vz
TG9hZGVyQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9TeW5jaHJvbm91c0xvYWRlckNsaWVudC5oCShyZXZpc2lvbiAyMjc0MjgpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1N5bmNocm9ub3VzTG9hZGVyQ2xpZW50LmgJKHdv
cmtpbmcgY29weSkKQEAgLTQ5LDcgKzQ5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHdpbGxTZW5k
UmVxdWVzdEFzeW5jKFJlc291cmNlSGFuZGxlKiwgUmVzb3VyY2VSZXF1ZXN0JiYsIFJlc291cmNl
UmVzcG9uc2UmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZXNvdXJjZVJlcXVlc3QmJik+JiYp
IG92ZXJyaWRlOwogICAgIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UoUmVzb3VyY2VI
YW5kbGUqKSBvdmVycmlkZTsKICAgICB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikgb3Zl
cnJpZGU7Ci0gICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2VBc3luYyhSZXNvdXJjZUhhbmRsZSos
IFJlc291cmNlUmVzcG9uc2UmJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9u
c2VBc3luYyhSZXNvdXJjZUhhbmRsZSosIFJlc291cmNlUmVzcG9uc2UmJiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmKSBvdmVycmlkZTsKICAgICB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291
cmNlSGFuZGxlKiwgY29uc3QgY2hhciosIHVuc2lnbmVkLCBpbnQgLyplbmNvZGVkRGF0YUxlbmd0
aCovKSBvdmVycmlkZTsKICAgICB2b2lkIGRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUq
KSBvdmVycmlkZTsKICAgICB2b2lkIGRpZEZhaWwoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNv
dXJjZUVycm9yJikgb3ZlcnJpZGU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAJKHJldmlzaW9u
IDIyNzQyOCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VI
YW5kbGVDRk5ldC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY1NywxMSArNjU3LDYgQEAgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiBSZXNvdXJjZUhhbmRsZTo6YwogICAgIHJldHVybiBkLT5tX2N1cnJl
bnRSZXF1ZXN0OwogfQogCi12b2lkIFJlc291cmNlSGFuZGxlOjpjb250aW51ZURpZFJlY2VpdmVS
ZXNwb25zZSgpCi17Ci0gICAgZC0+bV9jb25uZWN0aW9uRGVsZWdhdGUtPmNvbnRpbnVlRGlkUmVj
ZWl2ZVJlc3BvbnNlKCk7Ci19Ci0KICNpZiBVU0UoUFJPVEVDVElPTl9TUEFDRV9BVVRIX0NBTExC
QUNLKQogdm9pZCBSZXNvdXJjZUhhbmRsZTo6Y29udGludWVDYW5BdXRoZW50aWNhdGVBZ2FpbnN0
UHJvdGVjdGlvblNwYWNlKGJvb2wgY2FuQXV0aGVudGljYXRlKQogewpJbmRleDogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRl
bGVnYXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
Zi9SZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlLmgJKHJldmlzaW9uIDIyNzQy
OCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVD
RlVSTENvbm5lY3Rpb25EZWxlZ2F0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00Niw3ICs0Niw2IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0dXBDb25uZWN0aW9uU2NoZWR1bGluZyhDRlVS
TENvbm5lY3Rpb25SZWYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcmVsZWFzZUhhbmRsZSgpOwog
Ci0gICAgdmlydHVhbCB2b2lkIGNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlKCkgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBjb250aW51ZVdpbGxDYWNoZVJlc3BvbnNlKENGQ2FjaGVkVVJMUmVzcG9u
c2VSZWYpID0gMDsKICNpZiBVU0UoUFJPVEVDVElPTl9TUEFDRV9BVVRIX0NBTExCQUNLKQogICAg
IHZpcnR1YWwgdm9pZCBjb250aW51ZUNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3Bh
Y2UoYm9vbCkgPSAwOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9S
ZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291
cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWUuY3BwCShy
ZXZpc2lvbiAyMjc0MjgpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jl
c291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xODAsMzAgKzE4MCwzMCBAQCBDRlVSTFJlcXVlc3RSZWYgUmVz
b3VyY2VIYW5kbGVDRlVSTENvbm5lCiB2b2lkIFJlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9u
RGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWU6OmRpZFJlY2VpdmVSZXNwb25zZShDRlVSTENvbm5l
Y3Rpb25SZWYgY29ubmVjdGlvbiwgQ0ZVUkxSZXNwb25zZVJlZiBjZlJlc3BvbnNlKQogewogICAg
IGF1dG8gcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpOwotICAgIGF1dG8gd29yayA9IFtw
cm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNmUmVzcG9uc2UgPSBSZXRhaW5QdHI8Q0ZV
UkxSZXNwb25zZVJlZj4oY2ZSZXNwb25zZSksIGNvbm5lY3Rpb24gPSBSZXRhaW5QdHI8Q0ZVUkxD
b25uZWN0aW9uUmVmPihjb25uZWN0aW9uKV0gKCkgewotICAgICAgICBhdXRvJiBoYW5kbGUgPSBw
cm90ZWN0ZWRUaGlzLT5tX2hhbmRsZTsKLSAgICAgICAgCi0gICAgICAgIGlmICghcHJvdGVjdGVk
VGhpcy0+aGFzSGFuZGxlKCkgfHwgIWhhbmRsZS0+Y2xpZW50KCkgfHwgIWhhbmRsZS0+Y29ubmVj
dGlvbigpKSB7Ci0gICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5jb250aW51ZURpZFJlY2VpdmVS
ZXNwb25zZSgpOworICAgIGF1dG8gd29yayA9IFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJl
ZigqdGhpcyksIGNmUmVzcG9uc2UgPSBSZXRhaW5QdHI8Q0ZVUkxSZXNwb25zZVJlZj4oY2ZSZXNw
b25zZSksIGNvbm5lY3Rpb24gPSBSZXRhaW5QdHI8Q0ZVUkxDb25uZWN0aW9uUmVmPihjb25uZWN0
aW9uKV0gKCkgbXV0YWJsZSB7CisgICAgICAgIGlmICghaGFzSGFuZGxlKCkgfHwgIW1faGFuZGxl
LT5jbGllbnQoKSB8fCAhbV9oYW5kbGUtPmNvbm5lY3Rpb24oKSkgeworICAgICAgICAgICAgbV9z
ZW1hcGhvcmUuc2lnbmFsKCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAg
ICAgICBMT0coTmV0d29yaywgIkNGTmV0IC0gUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25E
ZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZTo6ZGlkUmVjZWl2ZVJlc3BvbnNlKGhhbmRsZT0lcCkg
KCVzKSIsIGhhbmRsZSwgaGFuZGxlLT5maXJzdFJlcXVlc3QoKS51cmwoKS5zdHJpbmcoKS51dGY4
KCkuZGF0YSgpKTsKKyAgICAgICAgTE9HKE5ldHdvcmssICJDRk5ldCAtIFJlc291cmNlSGFuZGxl
Q0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWU6OmRpZFJlY2VpdmVSZXNw
b25zZShoYW5kbGU9JXApICglcykiLCBtX2hhbmRsZSwgbV9oYW5kbGUtPmZpcnN0UmVxdWVzdCgp
LnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwogCiAgICAgICAgIC8vIEF2b2lkIE1JTUUg
dHlwZSBzbmlmZmluZyBpZiB0aGUgcmVzcG9uc2UgY29tZXMgYmFjayBhcyAzMDQgTm90IE1vZGlm
aWVkLgogICAgICAgICBhdXRvIG1zZyA9IENGVVJMUmVzcG9uc2VHZXRIVFRQUmVzcG9uc2UoY2ZS
ZXNwb25zZS5nZXQoKSk7CiAgICAgICAgIGludCBzdGF0dXNDb2RlID0gbXNnID8gQ0ZIVFRQTWVz
c2FnZUdldFJlc3BvbnNlU3RhdHVzQ29kZShtc2cpIDogMDsKIAogICAgICAgICBpZiAoc3RhdHVz
Q29kZSAhPSAzMDQpIHsKLSAgICAgICAgICAgIGJvb2wgaXNNYWluUmVzb3VyY2VMb2FkID0gaGFu
ZGxlLT5maXJzdFJlcXVlc3QoKS5yZXF1ZXN0ZXIoKSA9PSBSZXNvdXJjZVJlcXVlc3Q6OlJlcXVl
c3Rlcjo6TWFpbjsKKyAgICAgICAgICAgIGJvb2wgaXNNYWluUmVzb3VyY2VMb2FkID0gbV9oYW5k
bGUtPmZpcnN0UmVxdWVzdCgpLnJlcXVlc3RlcigpID09IFJlc291cmNlUmVxdWVzdDo6UmVxdWVz
dGVyOjpNYWluOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKF9DRlVSTFJlcXVlc3RDb3B5UHJv
dG9jb2xQcm9wZXJ0eUZvcktleShoYW5kbGUtPmZpcnN0UmVxdWVzdCgpLmNmVVJMUmVxdWVzdChE
b05vdFVwZGF0ZUhUVFBCb2R5KSwgQ0ZTVFIoIkZvcmNlSFRNTE1JTUVUeXBlIikpKQorICAgICAg
ICBpZiAoX0NGVVJMUmVxdWVzdENvcHlQcm90b2NvbFByb3BlcnR5Rm9yS2V5KG1faGFuZGxlLT5m
aXJzdFJlcXVlc3QoKS5jZlVSTFJlcXVlc3QoRG9Ob3RVcGRhdGVIVFRQQm9keSksIENGU1RSKCJG
b3JjZUhUTUxNSU1FVHlwZSIpKSkKICAgICAgICAgICAgIENGVVJMUmVzcG9uc2VTZXRNSU1FVHlw
ZShjZlJlc3BvbnNlLmdldCgpLCBDRlNUUigidGV4dC9odG1sIikpOwogCiAgICAgICAgIFJlc291
cmNlUmVzcG9uc2UgcmVzb3VyY2VSZXNwb25zZShjZlJlc3BvbnNlLmdldCgpKTsKICAgICAgICAg
cmVzb3VyY2VSZXNwb25zZS5zZXRTb3VyY2UoUmVzb3VyY2VSZXNwb25zZTo6U291cmNlOjpOZXR3
b3JrKTsKLSAgICAgICAgaGFuZGxlLT5kaWRSZWNlaXZlUmVzcG9uc2UoV1RGTW92ZShyZXNvdXJj
ZVJlc3BvbnNlKSk7CisgICAgICAgIG1faGFuZGxlLT5kaWRSZWNlaXZlUmVzcG9uc2UoV1RGTW92
ZShyZXNvdXJjZVJlc3BvbnNlKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3Rl
Y3RlZFRoaXMpXSB7CisgICAgICAgICAgICBtX3NlbWFwaG9yZS5zaWduYWwoKTsKKyAgICAgICAg
fSk7CiAgICAgfTsKIAogICAgIGlmIChtX21lc3NhZ2VRdWV1ZSkKQEAgLTM4OSwxMSArMzg5LDYg
QEAgdm9pZCBSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYQogfQogI2VuZGlmIC8v
IFVTRShQUk9URUNUSU9OX1NQQUNFX0FVVEhfQ0FMTEJBQ0spCiAKLXZvaWQgUmVzb3VyY2VIYW5k
bGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZTo6Y29udGludWVEaWRS
ZWNlaXZlUmVzcG9uc2UoKQotewotICAgIG1fc2VtYXBob3JlLnNpZ25hbCgpOwotfQotCiB2b2lk
IFJlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWU6
OmNvbnRpbnVlV2lsbENhY2hlUmVzcG9uc2UoQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZiByZXNwb25z
ZSkKIHsKICAgICBtX2NhY2hlZFJlc3BvbnNlUmVzdWx0ID0gcmVzcG9uc2U7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0
aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVs
ZWdhdGVXaXRoT3BlcmF0aW9uUXVldWUuaAkocmV2aXNpb24gMjI3NDI4KQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRl
bGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTU4LDcgKzU4LDYg
QEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFNlbmRCb2R5RGF0YShDRkluZGV4IHRvdGFsQnl0ZXNX
cml0dGVuLCBDRkluZGV4IHRvdGFsQnl0ZXNFeHBlY3RlZFRvV3JpdGUpIG92ZXJyaWRlOwogICAg
IEJvb2xlYW4gc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UoKSBvdmVycmlkZTsKIAotICAgIHZv
aWQgY29udGludWVEaWRSZWNlaXZlUmVzcG9uc2UoKSBvdmVycmlkZTsKICAgICB2b2lkIGNvbnRp
bnVlV2lsbENhY2hlUmVzcG9uc2UoQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZikgb3ZlcnJpZGU7CiAj
aWYgVVNFKFBST1RFQ1RJT05fU1BBQ0VfQVVUSF9DQUxMQkFDSykKICAgICBCb29sZWFuIGNhblJl
c3BvbmRUb1Byb3RlY3Rpb25TcGFjZShDRlVSTFByb3RlY3Rpb25TcGFjZVJlZikgb3ZlcnJpZGU7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5k
bGVDdXJsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcAkocmV2aXNpb24gMjI3NDI4KQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5j
bHVkZSAiUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oIgogI2luY2x1ZGUgIlN5bmNocm9ub3VzTG9h
ZGVyQ2xpZW50LmgiCisjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIApAQCAtMjE0LDggKzIxNSwxMiBAQCB2b2lkIFJlc291cmNlSGFuZGxl
OjpyZWNlaXZlZFJlcXVlc3RUb0NvCiAKICAgICBjbGVhckF1dGhlbnRpY2F0aW9uKCk7CiAKLSAg
ICBhdXRvIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKTsKLSAgICBkaWRSZWNlaXZlUmVz
cG9uc2UoUmVzb3VyY2VSZXNwb25zZShkLT5tX3Jlc3BvbnNlKSk7CisgICAgZGlkUmVjZWl2ZVJl
c3BvbnNlKFJlc291cmNlUmVzcG9uc2UoZC0+bV9yZXNwb25zZSksIFt0aGlzLCBwcm90ZWN0ZWRU
aGlzID0gbWFrZVJlZigqdGhpcyldIHsKKyAgICAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsK
KworICAgICAgICBpZiAoZC0+bV9kZWxlZ2F0ZSkKKyAgICAgICAgICAgIGQtPm1fZGVsZWdhdGUt
PmNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlKCk7CisgICAgfSk7CiB9CiAKIHZvaWQgUmVzb3Vy
Y2VIYW5kbGU6OnJlY2VpdmVkQ2FuY2VsbGF0aW9uKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlJiBjaGFsbGVuZ2UpCkBAIC0yNTksMTQgKzI2NCw2IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6
OnBsYXRmb3JtTG9hZFJlc291cmMKICAgICByZXNwb25zZSA9IGNsaWVudC5yZXNwb25zZSgpOwog
fQogCi12b2lkIFJlc291cmNlSGFuZGxlOjpjb250aW51ZURpZFJlY2VpdmVSZXNwb25zZSgpCi17
Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLQotICAgIGlmIChkLT5tX2RlbGVnYXRlKQot
ICAgICAgICBkLT5tX2RlbGVnYXRlLT5jb250aW51ZURpZFJlY2VpdmVSZXNwb25zZSgpOwotfQot
CiB2b2lkIFJlc291cmNlSGFuZGxlOjpwbGF0Zm9ybUNvbnRpbnVlU3luY2hyb25vdXNEaWRSZWNl
aXZlUmVzcG9uc2UoKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsRGVsZWdh
dGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3Vy
bC9SZXNvdXJjZUhhbmRsZUN1cmxEZWxlZ2F0ZS5jcHAJKHJldmlzaW9uIDIyNzQyOCkKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmxEZWxl
Z2F0ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyMSw3ICsyMjEsOSBAQCB2b2lkIFJlc291cmNl
SGFuZGxlQ3VybERlbGVnYXRlOjpjdXJsRGlkCiAgICAgICAgIEN1cmxDYWNoZU1hbmFnZXI6OnNp
bmdsZXRvbigpLmRpZFJlY2VpdmVSZXNwb25zZSgqbV9oYW5kbGUsIHJlc3BvbnNlKCkpOwogCiAg
ICAgICAgIGF1dG8gcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKm1faGFuZGxlKTsKLSAgICAgICAg
bV9oYW5kbGUtPmRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZVJlc3BvbnNlKHJlc3BvbnNlKCkp
KTsKKyAgICAgICAgbV9oYW5kbGUtPmRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZVJlc3BvbnNl
KHJlc3BvbnNlKCkpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSB7Cisg
ICAgICAgICAgICBjb250aW51ZUFmdGVyRGlkUmVjZWl2ZVJlc3BvbnNlKCk7CisgICAgICAgIH0p
OwogICAgIH0KIH0KIApAQCAtNDI2LDcgKzQyOCw5IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGVDdXJs
RGVsZWdhdGU6OmhhbmRsZUQKIAogICAgIGlmIChiYXNlNjQpIHsKICAgICAgICAgZGF0YSA9IGRl
Y29kZVVSTEVzY2FwZVNlcXVlbmNlcyhkYXRhKTsKLSAgICAgICAgbV9oYW5kbGUtPmRpZFJlY2Vp
dmVSZXNwb25zZShXVEZNb3ZlKHJlc3BvbnNlKSk7CisgICAgICAgIG1faGFuZGxlLT5kaWRSZWNl
aXZlUmVzcG9uc2UoV1RGTW92ZShyZXNwb25zZSksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFr
ZVJlZigqdGhpcyldIHsKKyAgICAgICAgICAgIGNvbnRpbnVlQWZ0ZXJEaWRSZWNlaXZlUmVzcG9u
c2UoKTsKKyAgICAgICAgfSk7CiAKICAgICAgICAgLy8gZGlkUmVjZWl2ZVJlc3BvbnNlIG1pZ2h0
IGNhdXNlIHRoZSBjbGllbnQgdG8gYmUgZGVsZXRlZC4KICAgICAgICAgaWYgKG1faGFuZGxlLT5j
bGllbnQoKSkgewpAQCAtNDM3LDcgKzQ0MSw5IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGVDdXJsRGVs
ZWdhdGU6OmhhbmRsZUQKICAgICB9IGVsc2UgewogICAgICAgICBUZXh0RW5jb2RpbmcgZW5jb2Rp
bmcoY2hhcnNldCk7CiAgICAgICAgIGRhdGEgPSBkZWNvZGVVUkxFc2NhcGVTZXF1ZW5jZXMoZGF0
YSwgZW5jb2RpbmcpOwotICAgICAgICBtX2hhbmRsZS0+ZGlkUmVjZWl2ZVJlc3BvbnNlKFdURk1v
dmUocmVzcG9uc2UpKTsKKyAgICAgICAgbV9oYW5kbGUtPmRpZFJlY2VpdmVSZXNwb25zZShXVEZN
b3ZlKHJlc3BvbnNlKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0gewor
ICAgICAgICAgICAgY29udGludWVBZnRlckRpZFJlY2VpdmVSZXNwb25zZSgpOworICAgICAgICB9
KTsKIAogICAgICAgICAvLyBkaWRSZWNlaXZlUmVzcG9uc2UgbWlnaHQgY2F1c2UgdGhlIGNsaWVu
dCB0byBiZSBkZWxldGVkLgogICAgICAgICBpZiAobV9oYW5kbGUtPmNsaWVudCgpKSB7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNv
dXJjZUhhbmRsZU1hYy5tbQkocmV2aXNpb24gMjI3NDI4KQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0JKHdvcmtpbmcgY29weSkKQEAg
LTQ3MSwxMSArNDcxLDYgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6d2lsbFNlbmRSZXF1ZXN0KFJl
cwogICAgIH0pOwogfQogCi12b2lkIFJlc291cmNlSGFuZGxlOjpjb250aW51ZURpZFJlY2VpdmVS
ZXNwb25zZSgpCi17Ci0gICAgW2RlbGVnYXRlKCkgY29udGludWVEaWRSZWNlaXZlUmVzcG9uc2Vd
OwotfQotCiB2b2lkIFJlc291cmNlSGFuZGxlOjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UoY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmIGNoYWxsZW5nZSkKIHsKICAgICBB
U1NFUlQoIWQtPm1fY3VycmVudE1hY0NoYWxsZW5nZSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVl
RGVsZWdhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUuaAkocmV2
aXNpb24gMjI3NDI4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2Vi
Q29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTQ3LDcgKzQ3LDYgQEAgQGludGVyZmFjZSBXZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09w
ZXJhdAogCiAtICh2b2lkKWRldGFjaEhhbmRsZTsKIC0gKGlkKWluaXRXaXRoSGFuZGxlOihXZWJD
b3JlOjpSZXNvdXJjZUhhbmRsZSopaGFuZGxlIG1lc3NhZ2VRdWV1ZTooTWVzc2FnZVF1ZXVlPEZ1
bmN0aW9uPHZvaWQoKT4+KiltZXNzYWdlUXVldWU7Ci0tICh2b2lkKWNvbnRpbnVlRGlkUmVjZWl2
ZVJlc3BvbnNlOwogLSAodm9pZCljb250aW51ZUNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0
aW9uU3BhY2U6KEJPT0wpY2FuQXV0aGVudGljYXRlOwogLSAodm9pZCljb250aW51ZVdpbGxDYWNo
ZVJlc3BvbnNlOihOU0NhY2hlZFVSTFJlc3BvbnNlICopcmVzcG9uc2U7CiBAZW5kCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVB
c09wZXJhdGlvblF1ZXVlRGVsZWdhdGUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1
ZURlbGVnYXRlLm1tCShyZXZpc2lvbiAyMjc0MjgpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdh
dGUubW0JKHdvcmtpbmcgY29weSkKQEAgLTEwOCwxMSArMTA4LDYgQEAgLSAodm9pZClkZWFsbG9j
CiAgICAgW3N1cGVyIGRlYWxsb2NdOwogfQogCi0tICh2b2lkKWNvbnRpbnVlRGlkUmVjZWl2ZVJl
c3BvbnNlCi17Ci0gICAgZGlzcGF0Y2hfc2VtYXBob3JlX3NpZ25hbChtX3NlbWFwaG9yZSk7Ci19
Ci0KIC0gKHZvaWQpY29udGludWVDYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNl
OihCT09MKWNhbkF1dGhlbnRpY2F0ZQogewogICAgIG1fYm9vbFJlc3VsdCA9IGNhbkF1dGhlbnRp
Y2F0ZTsKQEAgLTIzMCw3ICsyMjUsOSBAQCAtICh2b2lkKWNvbm5lY3Rpb246KE5TVVJMQ29ubmVj
dGlvbiAqKWNvCiAgICAgICAgIHJlc291cmNlUmVzcG9uc2Uuc2V0U291cmNlKFJlc291cmNlUmVz
cG9uc2U6OlNvdXJjZTo6TmV0d29yayk7CiAgICAgICAgIFJlc291cmNlSGFuZGxlOjpnZXRDb25u
ZWN0aW9uVGltaW5nRGF0YShjb25uZWN0aW9uLmdldCgpLCByZXNvdXJjZVJlc3BvbnNlLmRlcHJl
Y2F0ZWROZXR3b3JrTG9hZE1ldHJpY3MoKSk7CiAKLSAgICAgICAgbV9oYW5kbGUtPmRpZFJlY2Vp
dmVSZXNwb25zZShXVEZNb3ZlKHJlc291cmNlUmVzcG9uc2UpKTsKKyAgICAgICAgbV9oYW5kbGUt
PmRpZFJlY2VpdmVSZXNwb25zZShXVEZNb3ZlKHJlc291cmNlUmVzcG9uc2UpLCBbc2VsZiwgcHJv
dGVjdGVkU2VsZiA9IFdURk1vdmUocHJvdGVjdGVkU2VsZildIHsKKyAgICAgICAgICAgIGRpc3Bh
dGNoX3NlbWFwaG9yZV9zaWduYWwobV9zZW1hcGhvcmUpOworICAgICAgICB9KTsKICAgICB9Owog
CiAgICAgW3NlbGYgY2FsbEZ1bmN0aW9uT25NYWluVGhyZWFkOldURk1vdmUod29yayldOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291
cC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3Vw
L1Jlc291cmNlSGFuZGxlU291cC5jcHAJKHJldmlzaW9uIDIyNzQyOCkKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC00NjMsNyArNDYzLDkgQEAgc3RhdGljIHZvaWQgbmV4dE11bHRpcGFydFJlc3Bv
bnNlUGFydENhbAogCiAgICAgZC0+bV9wcmV2aW91c1Bvc2l0aW9uID0gMDsKIAotICAgIGhhbmRs
ZS0+ZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlUmVzcG9uc2UoZC0+bV9yZXNwb25zZSkpOwor
ICAgIGhhbmRsZS0+ZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlUmVzcG9uc2UoZC0+bV9yZXNw
b25zZSksIFtoYW5kbGUgPSBtYWtlUmVmKCpoYW5kbGUpXSB7CisgICAgICAgIGNvbnRpbnVlQWZ0
ZXJEaWRSZWNlaXZlUmVzcG9uc2UoaGFuZGxlLnB0cigpKTsKKyAgICB9KTsKIH0KIAogc3RhdGlj
IHZvaWQgc2VuZFJlcXVlc3RDYWxsYmFjayhHT2JqZWN0KiwgR0FzeW5jUmVzdWx0KiByZXN1bHQs
IGdwb2ludGVyIGRhdGEpCkBAIC01MjAsNyArNTIyLDkgQEAgc3RhdGljIHZvaWQgc2VuZFJlcXVl
c3RDYWxsYmFjayhHT2JqZWN0KgogICAgIGVsc2UKICAgICAgICAgZC0+bV9pbnB1dFN0cmVhbSA9
IGlucHV0U3RyZWFtOwogCi0gICAgaGFuZGxlLT5kaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VS
ZXNwb25zZShkLT5tX3Jlc3BvbnNlKSk7CisgICAgaGFuZGxlLT5kaWRSZWNlaXZlUmVzcG9uc2Uo
UmVzb3VyY2VSZXNwb25zZShkLT5tX3Jlc3BvbnNlKSwgW2hhbmRsZSA9IG1ha2VSZWYoKmhhbmRs
ZSldIHsKKyAgICAgICAgY29udGludWVBZnRlckRpZFJlY2VpdmVSZXNwb25zZShoYW5kbGUucHRy
KCkpOworICAgIH0pOwogfQogCiB2b2lkIFJlc291cmNlSGFuZGxlOjpwbGF0Zm9ybUNvbnRpbnVl
U3luY2hyb25vdXNEaWRSZWNlaXZlUmVzcG9uc2UoKQpAQCAtMTAxOSwxMSArMTAyMyw2IEBAIHN0
YXRpYyB2b2lkIHJlYWRDYWxsYmFjayhHT2JqZWN0KiwgR0FzeW4KICAgICAgICAgZC0+bV9jYW5j
ZWxsYWJsZS5nZXQoKSwgcmVhZENhbGxiYWNrLCBoYW5kbGUuZ2V0KCkpOwogfQogCi12b2lkIFJl
c291cmNlSGFuZGxlOjpjb250aW51ZURpZFJlY2VpdmVSZXNwb25zZSgpCi17Ci0gICAgY29udGlu
dWVBZnRlckRpZFJlY2VpdmVSZXNwb25zZSh0aGlzKTsKLX0KLQogfQogCiAjZW5kaWYKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyMjc0MzgpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDE4LTAxLTIzICBBbGV4IENocmlzdGVuc2Vu
ICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVXNlIENvbXBsZXRpb25IYW5k
bGVycyBmb3IgUmVzb3VyY2VIYW5kbGVDbGllbnQ6OmRpZFJlY2VpdmVSZXNwb25zZUFzeW5jCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODE5NjEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBNaWNoYWVsIENhdGFuemFyby4KKworICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L05ldHdvcmtMb2FkLmNwcDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5o
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJz
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5j
cHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVu
dE1hYy5tbToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW06
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKwogMjAxOC0wMS0yMyAgQWxl
eCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92
ZSBjb21waWxlIGd1YXJkIGFyb3VuZCBiZWFjb24gQVBJCkluZGV4OiBTb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcAkocmV2aXNpb24gMjI3NDI4KQorKysgU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTM0LDcgKzM0LDYgQEAKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNp
bmNsdWRlICJXZWJFcnJvcnMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+
Ci0jaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUhhbmRsZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
UmVzb3VyY2VSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KICNp
bmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtMb2FkLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrTG9hZC5oCShyZXZpc2lvbiAyMjc0MjgpCisrKyBTb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDYg
QEAKICNpbmNsdWRlICJOZXR3b3JrTG9hZFBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJSZW1vdGVO
ZXR3b3JraW5nQ29udGV4dC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlSGFuZGxlQ2xpZW50Lmg+CiAjaW5j
bHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+
CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9h
ZFBhcmFtZXRlcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmgJKHJldmlzaW9uIDIyNzQyOCkKKysrIFNv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMu
aAkod29ya2luZyBjb3B5KQpAQCAtMjMsMTUgKzIzLDEzIEBACiAgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1l
dGVyc19oCi0jZGVmaW5lIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzX2gKKyNwcmFnbWEg
b25jZQogCiAjaW5jbHVkZSAiTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiU2Fu
ZGJveEV4dGVuc2lvbi5oIgogI2luY2x1ZGUgIldlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0
YS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFk
ZXJzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GZXRjaE9wdGlvbnMuaD4KLSNpbmNsdWRlIDxXZWJD
b3JlL1Jlc291cmNlSGFuZGxlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUxvYWRlck9w
dGlvbnMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KQEAgLTY4LDUgKzY2LDMgQEAgcHVibGljOgogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBOZXR3b3JrUmVzb3VyY2VMb2Fk
UGFyYW1ldGVyc19oCkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fk
cy9Eb3dubG9hZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
RG93bmxvYWRzL0Rvd25sb2FkLmgJKHJldmlzaW9uIDIyNzQyOCkKKysrIFNvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmgJKHdvcmtpbmcgY29weSkKQEAgLTMw
LDggKzMwLDYgQEAKICNpbmNsdWRlICJOZXR3b3JrRGF0YVRhc2suaCIKICNpbmNsdWRlICJTYW5k
Ym94RXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9BdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VIYW5kbGUuaD4KLSNpbmNsdWRlIDxXZWJD
b3JlL1Jlc291cmNlSGFuZGxlQ2xpZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJl
cXVlc3QuaD4KICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgpJ
bmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAkocmV2aXNpb24gMjI3
NDI4KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xMDgsNyArMTA4LDYgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VDYWNoZS5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUdyb3VwLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0
Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlSGFu
ZGxlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUxvYWRPYnNlcnZlci5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
UnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg+CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAJKHJl
dmlzaW9uIDIyNzQyOCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY4LDcgKzY4LDYgQEAKICNp
bmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VHcm91cC5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvUHJpbnRDb250ZXh0Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SZXNv
dXJjZUhhbmRsZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvU1dDb250ZXh0TWFuYWdlci5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvU2NyaXB0Q29udHJvbGxlci5oPgpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L21hYy9XZWJEcmFnQ2xpZW50TWFjLm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5t
bQkocmV2aXNpb24gMjI3NDI4KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L21hYy9XZWJEcmFnQ2xpZW50TWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00OCw3ICs0
OCw2IEBACiAjaW1wb3J0IDxXZWJDb3JlL1BhZ2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGFzdGVi
b2FyZC5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJJbWFnZS5oPgotI2ltcG9ydCA8V2ViQ29y
ZS9SZXNvdXJjZUhhbmRsZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9TdHJpbmdUcnVuY2F0b3IuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU5TVVJMRXh0cmFzLmg+CiAjaW1wb3J0IDx3dGYvU3Rk
TGliRXh0cmFzLmg+CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMv
V2ViUGFnZU1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9tYWMvV2ViUGFnZU1hYy5tbQkocmV2aXNpb24gMjI3NDI4KQorKysgU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0JKHdvcmtpbmcgY29weSkKQEAg
LTgzLDcgKzgzLDYgQEAKICNpbXBvcnQgPFdlYkNvcmUvUmVuZGVyT2JqZWN0Lmg+CiAjaW1wb3J0
IDxXZWJDb3JlL1JlbmRlclN0eWxlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1JlbmRlclZpZXcuaD4K
LSNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VIYW5kbGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvUnVu
dGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Njcm9sbFZpZXcuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvU3R5bGVJbmhlcml0ZWREYXRhLmg+CkluZGV4OiBTb3VyY2UvV2Vi
S2l0TGVnYWN5L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L0No
YW5nZUxvZwkocmV2aXNpb24gMjI3NDM2KQorKysgU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMiBAQAorMjAxOC0wMS0yMyAgQWxleCBDaHJp
c3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIFVzZSBDb21wbGV0
aW9uSGFuZGxlcnMgZm9yIFJlc291cmNlSGFuZGxlQ2xpZW50OjpkaWRSZWNlaXZlUmVzcG9uc2VB
c3luYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgx
OTYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTWljaGFlbCBDYXRhbnphcm8uCisKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwOgorCiAyMDE4LTAx
LTE2ICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAg
IFtDTWFrZV0gUmVtb3ZlIFdlYkNvcmVEZXJpdmVkU291cmNlcyBsaWJyYXJ5IHRhcmdldApJbmRl
eDogU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hl
ZHVsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBv
cnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcAkocmV2aXNpb24gMjI3NDI4KQorKysgU291
cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw3ICszMiw2IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9O
ZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGluZ0hhbmRs
ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1TdHJhdGVnaWVzLmg+Ci0jaW5jbHVkZSA8
V2ViQ29yZS9SZXNvdXJjZUhhbmRsZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1
ZXN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TdWJyZXNvdXJjZUxvYWRlci5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvVVJMLmg+CkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCShyZXZpc2lv
biAyMjc0MzcpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwxMiBAQAorMjAxOC0wMS0yMyAgQWxleCBDaHJpc3RlbnNlbiAgPGFj
aHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIFVzZSBDb21wbGV0aW9uSGFuZGxlcnMg
Zm9yIFJlc291cmNlSGFuZGxlQ2xpZW50OjpkaWRSZWNlaXZlUmVzcG9uc2VBc3luYworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgxOTYxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTWljaGFlbCBDYXRhbnphcm8uCisKKyAgICAgICAgKiBXZWJWaWV3L1dl
YlByZWZlcmVuY2VzLm1tOgorCiAyMDE4LTAxLTIzICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlz
dGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVtb3ZlIHVudXNlZCBRVEtpdCBwcmVmZXJl
bmNlCkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2Vz
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJl
ZmVyZW5jZXMubW0JKHJldmlzaW9uIDIyNzQzNykKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0JKHdvcmtpbmcgY29weSkKQEAgLTQyLDcgKzQyLDYg
QEAKICNpbXBvcnQgPFdlYkNvcmUvRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9QbGF0
Zm9ybUNvb2tpZUphci5oPgotI2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJjZUhhbmRsZS5oPgogI2lt
cG9ydCA8V2ViQ29yZS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaD4KICNpbXBvcnQgPFdlYkNv
cmUvU2V0dGluZ3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGV4dEVuY29kaW5nUmVnaXN0cnkuaD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>