<?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>230279</bug_id>
          
          <creation_ts>2021-09-14 15:08:24 -0700</creation_ts>
          <short_desc>Rename RESOURCE_LOAD_STATISTICS to INTELLIGENT_TRACKING_PREVENTION</short_desc>
          <delta_ts>2021-09-14 20:40:03 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="John Wilander">wilander</reporter>
          <assigned_to name="John Wilander">wilander</assigned_to>
          <cc>annulen</cc>
    
    <cc>benjamin</cc>
    
    <cc>berto</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>don.olmstead</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>galpeter</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>jbedard</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>toyoshim</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>yutak</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1793454</commentid>
    <comment_count>0</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2021-09-14 15:08:24 -0700</bug_when>
    <thetext>We&apos;re long overdue to rename RESOURCE_LOAD_STATISTICS to INTELLIGENT_TRACKING_PREVENTION which is the name most people know.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793455</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-14 15:08:54 -0700</bug_when>
    <thetext>&lt;rdar://problem/83118683&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793467</commentid>
    <comment_count>2</comment_count>
      <attachid>438180</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2021-09-14 15:25:15 -0700</bug_when>
    <thetext>Created attachment 438180
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793471</commentid>
    <comment_count>3</comment_count>
      <attachid>438181</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2021-09-14 15:33:01 -0700</bug_when>
    <thetext>Created attachment 438181
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793498</commentid>
    <comment_count>4</comment_count>
      <attachid>438181</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-09-14 16:27:16 -0700</bug_when>
    <thetext>Comment on attachment 438181
Patch

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

&gt; Source/cmake/OptionsFTW.cmake:151
&gt;  WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_POINTER_LOCK PRIVATE OFF)
&gt; -WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_RESOURCE_LOAD_STATISTICS PRIVATE OFF)
&gt; +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INTELLIGENT_TRACKING_PREVENTION PRIVATE OFF)
&gt;  WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_RESOURCE_USAGE PRIVATE OFF)

Looks like this was sorted alphabetically before. Should move it.

&gt; Source/cmake/OptionsGTK.cmake:170
&gt;  WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_POINTER_LOCK PRIVATE ON)
&gt; -WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_RESOURCE_LOAD_STATISTICS PRIVATE ON)
&gt; +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INTELLIGENT_TRACKING_PREVENTION PRIVATE ON)
&gt;  WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SERVICE_WORKER PRIVATE ON)

Looks like this was sorted alphabetically before. Should move it.

&gt; Source/cmake/OptionsMac.cmake:76
&gt;  WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_RESIZE_OBSERVER PRIVATE ON)
&gt; -WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_RESOURCE_LOAD_STATISTICS PRIVATE ON)
&gt; +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INTELLIGENT_TRACKING_PREVENTION PRIVATE ON)
&gt;  WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_RESOURCE_USAGE PRIVATE ON)

Looks like this was sorted alphabetically before. Should move it.

&gt; Source/cmake/OptionsWPE.cmake:65
&gt;  WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_PERIODIC_MEMORY_MONITOR PRIVATE ON)
&gt; -WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_RESOURCE_LOAD_STATISTICS PRIVATE ON)
&gt; +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INTELLIGENT_TRACKING_PREVENTION PRIVATE ON)
&gt;  WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SERVICE_WORKER PRIVATE ON)

Looks like this was sorted alphabetically before. Should move it.

&gt; Source/cmake/OptionsWin.cmake:83
&gt;      WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_REMOTE_INSPECTOR PRIVATE ${ENABLE_EXPERIMENTAL_FEATURES})
&gt; -    WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_RESOURCE_LOAD_STATISTICS PRIVATE ${ENABLE_EXPERIMENTAL_FEATURES})
&gt; +    WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INTELLIGENT_TRACKING_PREVENTION PRIVATE ${ENABLE_EXPERIMENTAL_FEATURES})
&gt;      WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_RESOURCE_USAGE PRIVATE ${ENABLE_EXPERIMENTAL_FEATURES})

Looks like this was sorted alphabetically before. Should move it.

&gt; Source/cmake/WebKitFeatures.cmake:201
&gt;      WEBKIT_OPTION_DEFINE(ENABLE_RESIZE_OBSERVER &quot;Toggle Resize Observer support&quot; PRIVATE ON)
&gt; -    WEBKIT_OPTION_DEFINE(ENABLE_RESOURCE_LOAD_STATISTICS &quot;Toggle resource load statistics support&quot; PRIVATE OFF)
&gt; +    WEBKIT_OPTION_DEFINE(ENABLE_INTELLIGENT_TRACKING_PREVENTION &quot;Toggle resource load statistics support&quot; PRIVATE OFF)
&gt;      WEBKIT_OPTION_DEFINE(ENABLE_RESOURCE_USAGE &quot;Toggle resource usage support&quot; PRIVATE OFF)

Looks like this was sorted alphabetically before. Should move it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793513</commentid>
    <comment_count>5</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2021-09-14 16:48:21 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #4)
&gt; Comment on attachment 438181 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=438181&amp;action=review
&gt; 
&gt; &gt; Source/cmake/OptionsFTW.cmake:151
&gt; &gt;  WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_POINTER_LOCK PRIVATE OFF)
&gt; &gt; -WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_RESOURCE_LOAD_STATISTICS PRIVATE OFF)
&gt; &gt; +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INTELLIGENT_TRACKING_PREVENTION PRIVATE OFF)
&gt; &gt;  WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_RESOURCE_USAGE PRIVATE OFF)
&gt; 
&gt; Looks like this was sorted alphabetically before. Should move it.
&gt; 
&gt; &gt; Source/cmake/OptionsGTK.cmake:170
&gt; &gt;  WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_POINTER_LOCK PRIVATE ON)
&gt; &gt; -WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_RESOURCE_LOAD_STATISTICS PRIVATE ON)
&gt; &gt; +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INTELLIGENT_TRACKING_PREVENTION PRIVATE ON)
&gt; &gt;  WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SERVICE_WORKER PRIVATE ON)
&gt; 
&gt; Looks like this was sorted alphabetically before. Should move it.
&gt; 
&gt; &gt; Source/cmake/OptionsMac.cmake:76
&gt; &gt;  WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_RESIZE_OBSERVER PRIVATE ON)
&gt; &gt; -WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_RESOURCE_LOAD_STATISTICS PRIVATE ON)
&gt; &gt; +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INTELLIGENT_TRACKING_PREVENTION PRIVATE ON)
&gt; &gt;  WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_RESOURCE_USAGE PRIVATE ON)
&gt; 
&gt; Looks like this was sorted alphabetically before. Should move it.
&gt; 
&gt; &gt; Source/cmake/OptionsWPE.cmake:65
&gt; &gt;  WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_PERIODIC_MEMORY_MONITOR PRIVATE ON)
&gt; &gt; -WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_RESOURCE_LOAD_STATISTICS PRIVATE ON)
&gt; &gt; +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INTELLIGENT_TRACKING_PREVENTION PRIVATE ON)
&gt; &gt;  WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SERVICE_WORKER PRIVATE ON)
&gt; 
&gt; Looks like this was sorted alphabetically before. Should move it.
&gt; 
&gt; &gt; Source/cmake/OptionsWin.cmake:83
&gt; &gt;      WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_REMOTE_INSPECTOR PRIVATE ${ENABLE_EXPERIMENTAL_FEATURES})
&gt; &gt; -    WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_RESOURCE_LOAD_STATISTICS PRIVATE ${ENABLE_EXPERIMENTAL_FEATURES})
&gt; &gt; +    WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INTELLIGENT_TRACKING_PREVENTION PRIVATE ${ENABLE_EXPERIMENTAL_FEATURES})
&gt; &gt;      WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_RESOURCE_USAGE PRIVATE ${ENABLE_EXPERIMENTAL_FEATURES})
&gt; 
&gt; Looks like this was sorted alphabetically before. Should move it.
&gt; 
&gt; &gt; Source/cmake/WebKitFeatures.cmake:201
&gt; &gt;      WEBKIT_OPTION_DEFINE(ENABLE_RESIZE_OBSERVER &quot;Toggle Resize Observer support&quot; PRIVATE ON)
&gt; &gt; -    WEBKIT_OPTION_DEFINE(ENABLE_RESOURCE_LOAD_STATISTICS &quot;Toggle resource load statistics support&quot; PRIVATE OFF)
&gt; &gt; +    WEBKIT_OPTION_DEFINE(ENABLE_INTELLIGENT_TRACKING_PREVENTION &quot;Toggle resource load statistics support&quot; PRIVATE OFF)
&gt; &gt;      WEBKIT_OPTION_DEFINE(ENABLE_RESOURCE_USAGE &quot;Toggle resource usage support&quot; PRIVATE OFF)
&gt; 
&gt; Looks like this was sorted alphabetically before. Should move it.

Thanks, Darin! I&apos;ll fix the ordering before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793527</commentid>
    <comment_count>6</comment_count>
      <attachid>438192</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2021-09-14 17:15:35 -0700</bug_when>
    <thetext>Created attachment 438192
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793549</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-09-14 18:13:53 -0700</bug_when>
    <thetext>Committed r282429 (241688@main): &lt;https://commits.webkit.org/241688@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 438192.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793565</commentid>
    <comment_count>8</comment_count>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2021-09-14 18:47:15 -0700</bug_when>
    <thetext>Reopening for follow-up fix for the perl script.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793567</commentid>
    <comment_count>9</comment_count>
      <attachid>438204</attachid>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2021-09-14 18:50:06 -0700</bug_when>
    <thetext>Created attachment 438204
Patch for FeatureList</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793581</commentid>
    <comment_count>10</comment_count>
      <attachid>438204</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2021-09-14 19:41:21 -0700</bug_when>
    <thetext>Comment on attachment 438204
Patch for FeatureList

Thanks, Don!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793586</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-09-14 20:39:59 -0700</bug_when>
    <thetext>Committed r282431 (241690@main): &lt;https://commits.webkit.org/241690@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 438204.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438180</attachid>
            <date>2021-09-14 15:25:15 -0700</date>
            <delta_ts>2021-09-14 15:36:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230279-20210914152514.patch</filename>
            <type>text/plain</type>
            <size>188089</size>
            <attacher name="John Wilander">wilander</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyNDA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGY0YjQ0Y2ZjZDc4ZmMwMDIzOWRmODk4
ODE3OWFjZmI0Nzg3NzAzMmMuLjU4ZGQ5NjQzNmMwMWZmODgxMWMyYjUyNmE2NjkxYTQ5NWQxMjJi
NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMDktMTQgIEpvaG4gV2lsYW5kZXIgIDx3aWxh
bmRlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIFJFU09VUkNFX0xPQURfU1RBVElTVElD
UyB0byBJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzAyNzkKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzgzMTE4NjgzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaDoKKwogMjAyMS0wOS0xNCAgRnVqaWkg
SGlyb25vcmkgIDxIaXJvbm9yaS5GdWppaUBzb255LmNvbT4KIAogICAgICAgICBTdGFja1RyYWNl
IG91dHB1dHMgYSBnYXJiYWdlIHByZWZpeCBiZWNhdXNlIFdURjo6U3RhY2tUcmFjZTo6bV9wcmVm
aXggaXMgZmlsbGVkIHdpdGggdGhlIHN0YWNrIGNvbnRlbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxZTQ0MjM3
ZWJkYWUxZThjOWFkYzgwYjY1NWEwNDg1ZTVjNzE2NDA1Li5jNzQ3Y2ZmYTZlNzViMmYwZDJhMzFj
OGE2YjQ0MTM5M2NjMmNhMWZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTQgQEAKKzIwMjEtMDkt
MTQgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1l
IFJFU09VUkNFX0xPQURfU1RBVElTVElDUyB0byBJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5U
SU9OCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzAy
NzkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzMTE4NjgzPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNv
Y2tldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXQ6OmNvbm5lY3QpOgorICAgICAg
ICAqIGRvbS9Ccm9hZGNhc3RDaGFubmVsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNob3VsZFBh
cnRpdGlvbk9yaWdpbik6CisgICAgICAgICogZG9tL0RvY3VtZW50K1N0b3JhZ2VBY2Nlc3MuaWRs
OgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dDo6cmVmZXJyZXIpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIGRvbS9E
b2N1bWVudFN0b3JhZ2VBY2Nlc3MuY3BwOgorICAgICAgICAqIGRvbS9Eb2N1bWVudFN0b3JhZ2VB
Y2Nlc3MuaDoKKyAgICAgICAgKiBoaXN0b3J5L0NhY2hlZFBhZ2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FjaGVkUGFnZTo6Q2FjaGVkUGFnZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRQ
YWdlOjpyZXN0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFBhZ2U6OmNsZWFyKToKKyAg
ICAgICAgKiBoaXN0b3J5L0NhY2hlZFBhZ2UuaDoKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRM
b2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6OnJlc3BvbnNlUmVj
ZWl2ZWQpOgorICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuY3BwOgorICAgICAgICAqIGxv
YWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9h
ZGVyQ2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVlc3RJbnRlcm5hbCk6Cisg
ICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UpOgorICAgICAg
ICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogcGFnZS9Dcm9zc1NpdGVOYXZpZ2F0
aW9uRGF0YVRyYW5zZmVyLmg6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RE9NV2luZG93OjpvcGVuKToKKyAgICAgICAgKiBwYWdlL1F1aXJrcy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpRdWlya3M6OnRyaWdnZXJPcHRpb25hbFN0b3JhZ2VBY2Nlc3NR
dWlyayBjb25zdCk6CisgICAgICAgICogcGFnZS9RdWlya3MuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5jcHA6CisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3
b3JrL2NvY29hL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVzRm9yVVJMIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2V0Q29va2llc0Zyb21ET00gY29uc3Qp
OgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9OZXR3b3JrU3RvcmFnZVNlc3Npb25D
dXJsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2V0Q29v
a2llc0Zyb21ET00gY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3
b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9y
YWdlU2Vzc2lvbjo6c2V0Q29va2llc0Zyb21ET00gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpnZXRSYXdDb29raWVzIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OmNvb2tpZXNGb3JTZXNzaW9uKToKKwogMjAyMS0wOS0xNCAgRGFyaW4gQWRsZXIgIDxk
YXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgVVJMcyBpbiBDU1MgdmFyaWFibGVzIG11c3QgYmUg
cmVzb2x2ZWQgYWdhaW5zdCB0aGUgYmFzZSBVUkwgb2YgdGhlIHN0eWxlc2hlZXQsIG5vdCB0aGUg
ZG9jdW1lbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKaW5kZXggZGM4M2ViMTRkMzlkY2UyNGNkMzc5Y2UyZTgyZTBmOGUwMDhm
YTQzMi4uNWFkNjgwYTBjNzVjZTMxNTMyYWE5MTBlOWQ1YjQ2YmNkMGUzNGM0NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyMjQgQEAKKzIwMjEtMDktMTQgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBh
cHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIFJFU09VUkNFX0xPQURfU1RBVElTVElDUyB0byBJ
TlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzAyNzkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgz
MTE4NjgzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZS5jcHA6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmNwcDoKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1v
cnlTdG9yZS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlOjp1cGRhdGVDbGllbnRTaWRlQ29va2llc0FnZUNhcCk6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaDoK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZS5jcHA6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb29raWVzRm9yRE9NKToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnNldENvb2tpZXNGcm9tRE9NKToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNsZWFyUGFnZVNw
ZWNpZmljRGF0YSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrRGF0YVRhc2suY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2s6OnJlc3Ry
aWN0UmVxdWVzdFJlZmVycmVyVG9PcmlnaW5JZk5lZWRlZCk6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vz
czo6ZmV0Y2hXZWJzaXRlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpk
ZWxldGVXZWJzaXRlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpkZWxl
dGVXZWJzaXRlRGF0YUZvck9yaWdpbnMpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vz
czo6cHJlcGFyZVRvU3VzcGVuZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpy
ZXN1bWUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpyZXRyaWV2ZUNhY2hlRW50cnlJbnRlcm5hbCk6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoTG9hZGlu
Zyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6dmFsaWRhdGVDYWNo
ZUVudHJ5Rm9yTWF4QWdlQ2FwVmFsaWRhdGlvbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtS
ZXNvdXJjZUxvYWRlcjo6c2VuZFJlc3VsdEZvckNhY2hlRW50cnkpOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL05ldHdvcmtTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb246
Ok5ldHdvcmtTZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb246On5OZXR3
b3JrU2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uOjppbnZhbGlkYXRl
QW5kQ2FuY2VsKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHA6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6Q2FjaGU6OnN0b3JlUmVkaXJlY3QpOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUVudHJ5LmNwcDoKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVFbnRyeS5oOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVNwZWN1bGF0aXZlTG9hZC5jcHA6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6U3BlY3VsYXRpdmVMb2FkOjp3aWxsU2VuZFJlZGlyZWN0
ZWRSZXF1ZXN0KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRh
c2tDb2NvYS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFz
a0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2tDb2NvYTo6TmV0d29y
a0RhdGFUYXNrQ29jb2EpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2tDb2NvYTo6
d2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb24pOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2Nv
Y29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW06CisgICAgICAgICgtW1dLTmV0d29ya1Nlc3Npb25E
ZWxlZ2F0ZSBVUkxTZXNzaW9uOnRhc2s6d2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb246bmV3UmVx
dWVzdDpjb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKC1bV0tOZXR3b3JrU2Vzc2lvbkRl
bGVnYXRlIFVSTFNlc3Npb246dGFzazpfc2NoZW1lVXBncmFkZWQ6Y29tcGxldGlvbkhhbmRsZXI6
XSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ29jb2E6OnNlc3Npb25XcmFwcGVy
Rm9yVGFzayk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY3VybC9OZXR3b3JrRGF0YVRhc2tD
dXJsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrQ3VybDo6TmV0d29ya0Rh
dGFUYXNrQ3VybCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza0N1cmw6OndpbGxQ
ZXJmb3JtSFRUUFJlZGlyZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNr
Q3VybDo6YmxvY2tDb29raWVzKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrQ3Vy
bDo6dW5ibG9ja0Nvb2tpZXMpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2tDdXJs
OjpzaG91bGRCbG9ja0Nvb2tpZXMpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2N1cmwvTmV0
d29ya1Nlc3Npb25DdXJsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25DdXJs
OjpOZXR3b3JrU2Vzc2lvbkN1cmwpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3NvdXAvTmV0
d29ya0RhdGFUYXNrU291cC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza1Nv
dXA6OmNyZWF0ZVJlcXVlc3QpOgorICAgICAgICAqIFNoYXJlZC9SZXNvdXJjZUxvYWRTdGF0aXN0
aWNzUGFyYW1ldGVycy5oOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
UGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1BhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYlByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NEYXRh
U3RvcmVQYXJhbWV0ZXJzLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NEYXRhU3RvcmVQ
YXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzRGF0
YVN0b3JlUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2Vic2l0ZURhdGEv
V2Vic2l0ZURhdGEuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YTo6ZW5jb2RlIGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGE6OmRlY29kZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYnNpdGVEYXRhOjppc29sYXRlZENvcHkgY29uc3QpOgorICAgICAgICAqIFNoYXJl
ZC9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9X
S1BhZ2UuY3BwOgorICAgICAgICAoV0tQYWdlTG9hZGVkU3VicmVzb3VyY2VEb21haW5zKToKKyAg
ICAgICAgKFdLUGFnZUNsZWFyTG9hZGVkU3VicmVzb3VyY2VEb21haW5zKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcDoKKyAgICAgICAgKFdLV2Vi
c2l0ZURhdGFTdG9yZVJlbW92ZUlUUERhdGFGb3JEb21haW4pOgorICAgICAgICAoV0tXZWJzaXRl
RGF0YVN0b3JlRG9lc1N0YXRpc3RpY3NEb21haW5JREV4aXN0SW5EYXRhYmFzZSk6CisgICAgICAg
IChXS1dlYnNpdGVEYXRhU3RvcmVTZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCk6Cisg
ICAgICAgIChXS1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NFcGhlbWVyYWwpOgorICAgICAg
ICAoV0tXZWJzaXRlRGF0YVN0b3JlU2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZVdp
dGhDb21wbGV0aW9uSGFuZGxlcik6CisgICAgICAgIChXS1dlYnNpdGVEYXRhU3RvcmVTZXRSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2VGb3JEZWJ1Z01vZGUpOgorICAgICAg
ICAoV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc0xhc3RTZWVuKToKKyAgICAgICAgKFdL
V2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NNZXJnZVN0YXRpc3RpYyk6CisgICAgICAgIChX
S1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzRXhwaXJlZFN0YXRpc3RpYyk6CisgICAgICAg
IChXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UpOgorICAg
ICAgICAoV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJj
ZSk6CisgICAgICAgIChXS1dlYnNpdGVEYXRhU3RvcmVEdW1wUmVzb3VyY2VMb2FkU3RhdGlzdGlj
cyk6CisgICAgICAgIChXS1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNv
dXJjZSk6CisgICAgICAgIChXS1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NWZXJ5UHJldmFs
ZW50UmVzb3VyY2UpOgorICAgICAgICAoV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzUmVn
aXN0ZXJlZEFzU3VicmVzb3VyY2VVbmRlcik6CisgICAgICAgIChXS1dlYnNpdGVEYXRhU3RvcmVJ
c1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKToKKyAgICAgICAgKFdLV2Vic2l0
ZURhdGFTdG9yZUlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8pOgorICAgICAg
ICAoV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbik6
CisgICAgICAgIChXS1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJh
Y3Rpb24pOgorICAgICAgICAoV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzT25seUluRGF0
YWJhc2VPbmNlKToKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NHcmFu
ZGZhdGhlcmVkKToKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlzdGljc0dyYW5k
ZmF0aGVyZWQpOgorICAgICAgICAoV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc1N1YmZy
YW1lVW5kZXJUb3BGcmFtZU9yaWdpbik6CisgICAgICAgIChXS1dlYnNpdGVEYXRhU3RvcmVTZXRT
dGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKToKKyAgICAgICAgKFdLV2Vi
c2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8pOgor
ICAgICAgICAoV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVl
UmVkaXJlY3RGcm9tKToKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NU
b3BGcmFtZVVuaXF1ZVJlZGlyZWN0VG8pOgorICAgICAgICAoV0tXZWJzaXRlRGF0YVN0b3JlU2V0
U3RhdGlzdGljc1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RGcm9tKToKKyAgICAgICAgKFdLV2Vic2l0
ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NDcm9zc1NpdGVMb2FkV2l0aExpbmtEZWNvcmF0aW9uKToK
KyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NUaW1lVG9MaXZlVXNlcklu
dGVyYWN0aW9uKToKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NQcm9jZXNz
U3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKToKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZVN0
YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyk6CisgICAgICAgIChXS1dlYnNpdGVEYXRhU3Rv
cmVTZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCk6Cisg
ICAgICAgIChXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzSXNSdW5uaW5nVGVzdCk6Cisg
ICAgICAgIChXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzU2hvdWxkQ2xhc3NpZnlSZXNv
dXJjZXNCZWZvcmVEYXRhUmVjb3Jkc1JlbW92YWwpOgorICAgICAgICAoV0tXZWJzaXRlRGF0YVN0
b3JlU2V0U3RhdGlzdGljc01pbmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbCk6Cisg
ICAgICAgIChXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzR3JhbmRmYXRoZXJpbmdUaW1l
KToKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NNYXhTdGF0aXN0aWNz
RW50cmllcyk6CisgICAgICAgIChXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzUHJ1bmVF
bnRyaWVzRG93blRvKToKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NDbGVh
ckluTWVtb3J5QW5kUGVyc2lzdGVudFN0b3JlKToKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9y
ZVN0YXRpc3RpY3NDbGVhckluTWVtb3J5QW5kUGVyc2lzdGVudFN0b3JlTW9kaWZpZWRTaW5jZUhv
dXJzKToKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NEZWxldGVDb29raWVz
Rm9yVGVzdGluZyk6CisgICAgICAgIChXS1dlYnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzSGFzTG9j
YWxTdG9yYWdlKToKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NDYWNo
ZU1heEFnZUNhcCk6CisgICAgICAgIChXS1dlYnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzSGFzSXNv
bGF0ZWRTZXNzaW9uKToKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZVNldFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTaG91bGREb3duZ3JhZGVSZWZlcnJlckZvclRlc3RpbmcpOgorICAgICAgICAo
V0tXZWJzaXRlRGF0YVN0b3JlU2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nob3VsZEJsb2NrVGhp
cmRQYXJ0eUNvb2tpZXNGb3JUZXN0aW5nKToKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZVNl
dFJlc291cmNlTG9hZFN0YXRpc3RpY3NGaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZUZv
clRlc3RpbmcpOgorICAgICAgICAoV0tXZWJzaXRlRGF0YVN0b3JlU2V0UmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1RvU2FtZVNpdGVTdHJpY3RDb29raWVzRm9yVGVzdGluZyk6CisgICAgICAgIChXS1dl
YnNpdGVEYXRhU3RvcmVTZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRmlyc3RQYXJ0eUhvc3RDTkFN
RURvbWFpbkZvclRlc3RpbmcpOgorICAgICAgICAoV0tXZWJzaXRlRGF0YVN0b3JlU2V0UmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1RoaXJkUGFydHlDTkFNRURvbWFpbkZvclRlc3RpbmcpOgorICAgICAg
ICAoV0tXZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGljc1Jlc2V0VG9Db25zaXN0ZW50U3RhdGUpOgor
ICAgICAgICAoV0tXZWJzaXRlRGF0YVN0b3JlR2V0QWxsU3RvcmFnZUFjY2Vzc0VudHJpZXMpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbToKKyAgICAgICAg
KC1bV0tQcm9jZXNzUG9vbCBfc2VlZFJlc291cmNlTG9hZFN0YXRpc3RpY3NGb3JUZXN0aW5nV2l0
aEZpcnN0UGFydHk6dGhpcmRQYXJ0eTpzaG91bGRTY2hlZHVsZU5vdGlmaWNhdGlvbjpjb21wbGV0
aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURh
dGFTdG9yZS5tbToKKyAgICAgICAgKC1bV0tXZWJzaXRlRGF0YVN0b3JlIF9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGVidWdNb2RlXSk6CisgICAgICAgICgtW1dLV2Vic2l0ZURhdGFTdG9yZSBfc2V0
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZTpdKToKKyAgICAgICAgKC1bV0tXZWJzaXRl
RGF0YVN0b3JlIF9zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVzdGluZ0NhbGxiYWNrOl0pOgor
ICAgICAgICAoLVtXS1dlYnNpdGVEYXRhU3RvcmUgX2xvYWRlZFN1YnJlc291cmNlRG9tYWluc0Zv
cjpjb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKC1bV0tXZWJzaXRlRGF0YVN0b3JlIF9j
bGVhckxvYWRlZFN1YnJlc291cmNlRG9tYWluc0ZvcjpdKToKKyAgICAgICAgKC1bV0tXZWJzaXRl
RGF0YVN0b3JlIF9nZXRBbGxTdG9yYWdlQWNjZXNzRW50cmllc0Zvcjpjb21wbGV0aW9uSGFuZGxl
cjpdKToKKyAgICAgICAgKC1bV0tXZWJzaXRlRGF0YVN0b3JlIF9zY2hlZHVsZUNvb2tpZUJsb2Nr
aW5nVXBkYXRlOl0pOgorICAgICAgICAoLVtXS1dlYnNpdGVEYXRhU3RvcmUgX2xvZ1VzZXJJbnRl
cmFjdGlvbjpjb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKC1bV0tXZWJzaXRlRGF0YVN0
b3JlIF9zZXRQcmV2YWxlbnREb21haW46Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICgt
W1dLV2Vic2l0ZURhdGFTdG9yZSBfZ2V0SXNQcmV2YWxlbnREb21haW46Y29tcGxldGlvbkhhbmRs
ZXI6XSk6CisgICAgICAgICgtW1dLV2Vic2l0ZURhdGFTdG9yZSBfY2xlYXJQcmV2YWxlbnREb21h
aW46Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW1dLV2Vic2l0ZURhdGFTdG9yZSBf
Y2xlYXJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOl0pOgorICAgICAgICAoLVtXS1dlYnNpdGVEYXRh
U3RvcmUgX2dldFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhU3VtbWFyeTpdKToKKyAgICAgICAg
KC1bV0tXZWJzaXRlRGF0YVN0b3JlIF9pc1JlbGF0aW9uc2hpcE9ubHlJbkRhdGFiYXNlT25jZTp0
aGlyZFBhcnR5OmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAoLVtXS1dlYnNpdGVEYXRh
U3RvcmUgX2lzUmVnaXN0ZXJlZEFzU3VicmVzb3VyY2VVbmRlckZpcnN0UGFydHk6dGhpcmRQYXJ0
eTpjb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKC1bV0tXZWJzaXRlRGF0YVN0b3JlIF9z
dGF0aXN0aWNzRGF0YWJhc2VIYXNBbGxUYWJsZXM6XSk6CisgICAgICAgICgtW1dLV2Vic2l0ZURh
dGFTdG9yZSBfcHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkczpdKToKKyAgICAgICAgKC1b
V0tXZWJzaXRlRGF0YVN0b3JlIF9zZXRUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlOm9ubHlP
blNpdGVzV2l0aG91dFVzZXJJbnRlcmFjdGlvbjpjb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbToKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OmRpZENvbW1pdExvYWRGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6ZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24pOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vz
c1Bvb2wuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6d2ViUHJvY2Vzc0Rh
dGFTdG9yZVBhcmFtZXRlcnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURh
dGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJz
aXRlRGF0YVN0b3JlOjpwbGF0Zm9ybVNldE5ldHdvcmtQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFSZWNvcmQuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJzaXRlRGF0YVJlY29yZDo6aXNvbGF0ZWRDb3B5IGNvbnN0KToKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFSZWNvcmQuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYnNpdGVEYXRhU3RvcmU6OmZldGNoRGF0YUFuZEFwcGx5KToKKyAgICAgICAgKFdlYktpdDo6
V2Vic2l0ZURhdGFTdG9yZTo6cmVtb3ZlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVE
YXRhU3RvcmU6OnNldENhY2hlTWF4QWdlQ2FwRm9yUHJldmFsZW50UmVzb3VyY2VzKToKKyAgICAg
ICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6cmVzZXRDYWNoZU1heEFnZUNhcEZvclByZXZh
bGVudFJlc291cmNlcyk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnJlc291
cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0
ZURhdGFTdG9yZTo6cmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZSBjb25zdCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NF
bmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6c2V0UmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RlYnVnTW9kZSk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3Rv
cmU6OmlzUmVzb3VyY2VMb2FkU3RhdGlzdGljc0VwaGVtZXJhbCBjb25zdCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnBhcmFtZXRlcnMpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpkZXRhY2hlZEZyb21QYXJlbnQyKToKKyAgICAgICAgKFdl
YktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoV2lsbENoYW5nZURvY3VtZW50KToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRP
YnNlcnZlci5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJSZXNv
dXJjZUxvYWRPYnNlcnZlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb29r
aWVKYXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVKYXI6OmNvb2tpZXMgY29uc3Qp
OgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVKYXI6OnNldENvb2tpZXMpOgorICAgICAgICAo
V2ViS2l0OjpXZWJDb29raWVKYXI6OmNvb2tpZXNFbmFibGVkIGNvbnN0KToKKyAgICAgICAgKFdl
YktpdDo6V2ViQ29va2llSmFyOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZSBjb25zdCk6
CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZUphcjo6Z2V0UmF3Q29va2llcyBjb25zdCk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlOjpkaWRDb21taXRMb2FkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2Vz
LmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3M6OmluaXRpYWxpemVXZWJQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzczo6c2V0V2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzOjpzZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmNsZWFyUmVzb3VyY2VMb2FkU3RhdGlzdGljcyk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmZsdXNoUmVzb3VyY2VMb2FkU3RhdGlzdGljcyk6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnNlZWRSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
Rm9yVGVzdGluZyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluOgorCiAyMDIxLTA5LTE0ICBGdWpp
aSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAgIEVuYWJsZSBJ
UENNZXNzYWdlcyBkZWJ1ZyBsb2dnaW5nIGZvciBub24tQ29jb2EgcG9ydHMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaCBiL1NvdXJjZS9XVEYvd3RmL1Bs
YXRmb3JtRW5hYmxlQ29jb2EuaAppbmRleCBiODBjODQyOTZmNDRmMDMwNzVlOTA1NmM0MDlkODBi
NzUyODFmMzdmLi5jZGY0MjY5MThmYWVmZjE2NGUwNmVjYTFmZTRkMDZkOWFhYzQ5Y2NkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmgKKysrIGIvU291cmNl
L1dURi93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oCkBAIC00ODYsOCArNDg2LDggQEAKICNkZWZp
bmUgRU5BQkxFX1JFU0laRV9PQlNFUlZFUiAxCiAjZW5kaWYKIAotI2lmICFkZWZpbmVkKEVOQUJM
RV9SRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi0jZGVmaW5lIEVOQUJMRV9SRVNPVVJDRV9MT0FE
X1NUQVRJU1RJQ1MgMQorI2lmICFkZWZpbmVkKEVOQUJMRV9JTlRFTExJR0VOVF9UUkFDS0lOR19Q
UkVWRU5USU9OKQorI2RlZmluZSBFTkFCTEVfSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElP
TiAxCiAjZW5kaWYKIAogI2lmICFkZWZpbmVkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAmJiAh
UExBVEZPUk0oTUFDQ0FUQUxZU1QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29j
a2V0cy9XZWJTb2NrZXQuY3BwCmluZGV4IDRjYTA4MDA3ZGZhZjM1ZmJiNWZhM2E4ZDQ1NTg5YTUw
ZDg0NjA2OTAuLjg4YmQzZmEzMjcyYWY0NTYwOWYxNmUwMjcxYmVhODJmNmM5ZGI5ODQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCkBAIC0z
MjQsNyArMzI0LDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gV2ViU29ja2V0Ojpjb25uZWN0KGNvbnN0
IFN0cmluZyYgdXJsLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcHIKICAgICAgICAgcmV0dXJuIHsg
fTsKICAgICB9CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVO
QUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIGF1dG8gcmVwb3J0UmVn
aXN0cmFibGVEb21haW4gPSBbZG9tYWluID0gUmVnaXN0cmFibGVEb21haW4obV91cmwpLmlzb2xh
dGVkQ29weSgpXShhdXRvJiBjb250ZXh0KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKGF1dG8qIGZy
YW1lID0gZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpLmZyYW1lKCkpCiAgICAgICAgICAgICBm
cmFtZS0+bG9hZGVyKCkuY2xpZW50KCkuZGlkTG9hZEZyb21SZWdpc3RyYWJsZURvbWFpbihXVEZN
b3ZlKGRvbWFpbikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Jyb2FkY2FzdENo
YW5uZWwuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0Jyb2FkY2FzdENoYW5uZWwuY3BwCmluZGV4
IGE1OWQxZGY4MTkxYTNkZGRhZGNlYTdmOTQ5YmMxYWE3ZThmMzgyYTMuLjBmMDcxZjEzZjI5YWRl
YTE4MDk2Njc4NzA2YmUwMmFiNDkzMTdhNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ccm9hZGNhc3RDaGFubmVsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQnJvYWRjYXN0
Q2hhbm5lbC5jcHAKQEAgLTY0LDcgKzY0LDcgQEAgc3RhdGljIGJvb2wgc2hvdWxkUGFydGl0aW9u
T3JpZ2luKERvY3VtZW50JiBkb2N1bWVudCkKICAgICBpZiAoIWRvY3VtZW50LnNldHRpbmdzKCku
YnJvYWRjYXN0Q2hhbm5lbE9yaWdpblBhcnRpdGlvbmluZ0VuYWJsZWQoKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBF
TkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBpZiAoIWRvY3VtZW50
LnNldHRpbmdzKCkuc3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudCtTdG9yYWdlQWNj
ZXNzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudCtTdG9yYWdlQWNjZXNzLmlkbApp
bmRleCBlYTRjMTE5NWVkNzY4YTQ5YWQ4OWRjMjVjOGI3YmQ1YjRlN2RlMmNjLi5hODA5NDkzYjcz
MzYwZjFjYTk0Nzk3NGFiYWEwNGYwZTE5ZWY3OTE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQrU3RvcmFnZUFjY2Vzcy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50K1N0b3JhZ2VBY2Nlc3MuaWRsCkBAIC0yNSw3ICsyNSw3IEBACiAKIC8vIGh0dHBz
Oi8vcHJpdmFjeWNnLmdpdGh1Yi5pby9zdG9yYWdlLWFjY2Vzcy8jdGhlLWRvY3VtZW50LW9iamVj
dAogWwotICAgIENvbmRpdGlvbmFsPVJFU09VUkNFX0xPQURfU1RBVElTVElDUywKKyAgICBDb25k
aXRpb25hbD1JTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OLAogICAgIEVuYWJsZWRCeVNl
dHRpbmc9c3RvcmFnZUFjY2Vzc0FQSSwKICAgICBJbXBsZW1lbnRlZEJ5PURvY3VtZW50U3RvcmFn
ZUFjY2VzcwogXSBwYXJ0aWFsIGludGVyZmFjZSBEb2N1bWVudCB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcAppbmRleCAzMzliZDhjYjc1ZGQ4Nzk2MzNmNGE0M2Q0MDk0ZmVjY2M4NjUxOGZmLi4xODgw
NjIwZWRmMGM2MWQ1NTM5ZjFlYWQ2NDUwZmQ3OThhNmIzMDA4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKQEAgLTUzMTMsNyArNTMxMyw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IERvY3VtZW50Ojpz
ZXRDb29raWUoY29uc3QgU3RyaW5nJiB2YWx1ZSkKIAogU3RyaW5nIERvY3VtZW50OjpyZWZlcnJl
cigpCiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUo
SU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBpZiAoIW1fcmVmZXJyZXJPdmVy
cmlkZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBtX3JlZmVycmVyT3ZlcnJpZGU7CiAgICAg
aWYgKERlcHJlY2F0ZWRHbG9iYWxTZXR0aW5nczo6cmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJs
ZWQoKSAmJiBmcmFtZSgpKSB7CkBAIC04MzgxLDcgKzgzODEsNyBAQCB2b2lkIERvY3VtZW50Ojp1
cGRhdGVNYWluQXJ0aWNsZUVsZW1lbnRBZnRlckxheW91dCgpCiAgICAgbV9tYWluQXJ0aWNsZUVs
ZW1lbnQgPSBtYWtlV2Vha1B0cih0YWxsZXN0QXJ0aWNsZS5nZXQoKSk7CiB9CiAKLSNpZiBFTkFC
TEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFD
S0lOR19QUkVWRU5USU9OKQogCiBib29sIERvY3VtZW50OjpoYXNSZXF1ZXN0ZWRQYWdlU3BlY2lm
aWNTdG9yYWdlQWNjZXNzV2l0aFVzZXJJbnRlcmFjdGlvbihjb25zdCBSZWdpc3RyYWJsZURvbWFp
biYgZG9tYWluKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCBmNjhlZjBkY2EwZGMzNjk2Njdh
ZjZmOWI5YmE4ODc3YzRjMjY1MDhhLi41NGQxZjEyMGY2MWFkMTFmZDZiMmRlOWIwOWVmZWM1MWIz
YmQ4ZWI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTU1Miw3ICsxNTUyLDcgQEAgcHVibGlj
OgogICAgIGJvb2wgaGFuZGxpbmdUb3VjaEV2ZW50KCkgY29uc3QgeyByZXR1cm4gbV9oYW5kbGlu
Z1RvdWNoRXZlbnQ7IH0KICNlbmRpZgogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElT
VElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBX
RUJDT1JFX0VYUE9SVCBib29sIGhhc1JlcXVlc3RlZFBhZ2VTcGVjaWZpY1N0b3JhZ2VBY2Nlc3NX
aXRoVXNlckludGVyYWN0aW9uKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJik7CiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBzZXRIYXNSZXF1ZXN0ZWRQYWdlU3BlY2lmaWNTdG9yYWdlQWNjZXNzV2l0
aFVzZXJJbnRlcmFjdGlvbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYpOwogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgd2FzTG9hZGVkV2l0aERhdGFUcmFuc2ZlckZyb21QcmV2YWxlbnRSZXNvdXJj
ZSgpOwpAQCAtMjE4NCw3ICsyMTg0LDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8U1dDbGllbnRD
b25uZWN0aW9uPiBtX3NlcnZpY2VXb3JrZXJDb25uZWN0aW9uOwogI2VuZGlmCiAKLSNpZiBFTkFC
TEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFD
S0lOR19QUkVWRU5USU9OKQogICAgIFJlZ2lzdHJhYmxlRG9tYWluIG1fcmVnaXN0cmFibGVEb21h
aW5SZXF1ZXN0ZWRQYWdlU3BlY2lmaWNTdG9yYWdlQWNjZXNzV2l0aFVzZXJJbnRlcmFjdGlvbiB7
IH07CiAgICAgU3RyaW5nIG1fcmVmZXJyZXJPdmVycmlkZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50U3RvcmFnZUFjY2Vzcy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnRTdG9yYWdlQWNjZXNzLmNwcAppbmRleCAxODA0MDVhOWYwNGIxNzAy
NTkyMWZlYTVkZjFiZTIyNTY5NmVjMDMyLi41NjhlNTA3ZWMzNzg5MTFjZDVmOTVmYWNmOGY2ZjQ3
NDgwNzkwYjA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRTdG9yYWdl
QWNjZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRTdG9yYWdlQWNjZXNz
LmNwcApAQCAtMjYsNyArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkRv
Y3VtZW50U3RvcmFnZUFjY2Vzcy5oIgogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElT
VElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKIAogI2lu
Y2x1ZGUgIkNocm9tZS5oIgogI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgpAQCAtMzE4LDQgKzMx
OCw0IEBAIGJvb2wgRG9jdW1lbnRTdG9yYWdlQWNjZXNzOjpoYXNGcmFtZVNwZWNpZmljU3RvcmFn
ZUFjY2VzcygpIGNvbnN0CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vIEVO
QUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjZW5kaWYgLy8gRU5BQkxFKElOVEVMTElH
RU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnRTdG9yYWdlQWNjZXNzLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRTdG9y
YWdlQWNjZXNzLmgKaW5kZXggZWRhMjZmZWI3MmQzMWM4NGUyZDc2Njc1M2NlNzM0NzRlNzZmNDcx
ZS4uM2UyMTNkNTg0MDg0MTBkM2FjMTljMDA1NDk4MmUwMzgwNDYxZDM4OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50U3RvcmFnZUFjY2Vzcy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudFN0b3JhZ2VBY2Nlc3MuaApAQCAtMjUsNyArMjUsNyBAQAogCiAj
cHJhZ21hIG9uY2UKIAotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYg
RU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAKICNpbmNsdWRlICJSZWdp
c3RyYWJsZURvbWFpbi5oIgogI2luY2x1ZGUgIlN1cHBsZW1lbnRhYmxlLmgiCkBAIC0xNTAsNCAr
MTUwLDQgQEAgc3RkOjpvcHRpb25hbDxSZXF1ZXN0U3RvcmFnZUFjY2Vzc1Jlc3VsdD4gUmVxdWVz
dFN0b3JhZ2VBY2Nlc3NSZXN1bHQ6OmRlY29kZShEZWMKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCi0jZW5kaWYgLy8gRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNlbmRpZiAv
LyBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2hpc3RvcnkvQ2FjaGVkUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9oaXN0
b3J5L0NhY2hlZFBhZ2UuY3BwCmluZGV4IGIzMGZlNWI1MDdmMDFjMDhkN2ExODY5N2ZkY2YwYmY1
MWE0MzIyZjEuLmY3YmM1Mjk3MzUyZDg3NmEzNmIyMzEyNzM2ZDUyNGYzODJhNzU1NzEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQ2FjaGVkUGFnZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRQYWdlLmNwcApAQCAtNTksNyArNTksNyBAQCBDYWNoZWRQ
YWdlOjpDYWNoZWRQYWdlKFBhZ2UmIHBhZ2UpCiAgICAgOiBtX3BhZ2UocGFnZSkKICAgICAsIG1f
ZXhwaXJhdGlvblRpbWUoTW9ub3RvbmljVGltZTo6bm93KCkgKyBwYWdlLnNldHRpbmdzKCkuYmFj
a0ZvcndhcmRDYWNoZUV4cGlyYXRpb25JbnRlcnZhbCgpKQogICAgICwgbV9jYWNoZWRNYWluRnJh
bWUobWFrZVVuaXF1ZTxDYWNoZWRGcmFtZT4ocGFnZS5tYWluRnJhbWUoKSkpCi0jaWYgRU5BQkxF
KFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJ
TkdfUFJFVkVOVElPTikKICAgICAsIG1fbG9hZGVkU3VicmVzb3VyY2VEb21haW5zKHBhZ2UubWFp
bkZyYW1lKCkubG9hZGVyKCkuY2xpZW50KCkubG9hZGVkU3VicmVzb3VyY2VEb21haW5zKCkpCiAj
ZW5kaWYKIHsKQEAgLTE3MSw3ICsxNzEsNyBAQCB2b2lkIENhY2hlZFBhZ2U6OnJlc3RvcmUoUGFn
ZSYgcGFnZSkKIAogICAgIGZpcmVQYWdlU2hvd0FuZFBvcFN0YXRlRXZlbnRzKHBhZ2UpOwogCi0j
aWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdF
TlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBmb3IgKGF1dG8mIGRvbWFpbiA6IG1fbG9hZGVk
U3VicmVzb3VyY2VEb21haW5zKQogICAgICAgICBwYWdlLm1haW5GcmFtZSgpLmxvYWRlcigpLmNs
aWVudCgpLmRpZExvYWRGcm9tUmVnaXN0cmFibGVEb21haW4oV1RGTW92ZShkb21haW4pKTsKICNl
bmRpZgpAQCAtMTg5LDcgKzE4OSw3IEBAIHZvaWQgQ2FjaGVkUGFnZTo6Y2xlYXIoKQogI2VuZGlm
CiAgICAgbV9uZWVkc0RldmljZU9yUGFnZVNjYWxlQ2hhbmdlZCA9IGZhbHNlOwogICAgIG1fbmVl
ZHNVcGRhdGVDb250ZW50c1NpemUgPSBmYWxzZTsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9T
VEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQog
ICAgIG1fbG9hZGVkU3VicmVzb3VyY2VEb21haW5zLmNsZWFyKCk7CiAjZW5kaWYKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQ2FjaGVkUGFnZS5oIGIvU291cmNlL1dlYkNv
cmUvaGlzdG9yeS9DYWNoZWRQYWdlLmgKaW5kZXggMGY3M2NmNzhhYzNiNzNmZGM2NTVmMTQzNjQx
MWMxN2FjNTUyMTdkYi4uMzFiMmVmOWExYWVlMDBhMWU5N2Y3MTdmYTU0YzJhMTNlNzI3NGQ1MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRQYWdlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRQYWdlLmgKQEAgLTY4LDcgKzY4LDcgQEAgcHJpdmF0
ZToKICNlbmRpZgogICAgIGJvb2wgbV9uZWVkc0RldmljZU9yUGFnZVNjYWxlQ2hhbmdlZCB7IGZh
bHNlIH07CiAgICAgYm9vbCBtX25lZWRzVXBkYXRlQ29udGVudHNTaXplIHsgZmFsc2UgfTsKLSNp
ZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VO
VF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIFZlY3RvcjxSZWdpc3RyYWJsZURvbWFpbj4gbV9s
b2FkZWRTdWJyZXNvdXJjZURvbWFpbnM7CiAjZW5kaWYKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0RvY3VtZW50TG9hZGVyLmNwcAppbmRleCBkNmI5Yjg5MmRmZGU1MjJhMzA1MWQ5YTYzZDA5MDU0
YmM3MWViZjU4Li4wZDJkMTQxMjIyZGU3NmZkYWJhZDZlMDRkZjcyNDY2NzRmNzBhNjRkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKQEAgLTEyMiw3ICsxMjIsNyBA
QAogI2luY2x1ZGUgIlF1aWNrTG9vay5oIgogI2VuZGlmCiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0Vf
TE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5U
SU9OKQogI2luY2x1ZGUgIk5ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oIgogI2VuZGlmCiAKQEAgLTk1
Miw3ICs5NTIsNyBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjpzdG9wTG9hZGluZ0FmdGVyWEZyYW1l
T3B0aW9uc09yQ29udGVudFNlY3VyaXR5UG9saWN5RGVuaWVkKAogICAgICAgICBjYW5jZWxNYWlu
UmVzb3VyY2VMb2FkKGZyYW1lTG9hZGVyLT5jYW5jZWxsZWRFcnJvcihtX3JlcXVlc3QpKTsKIH0K
IAotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVM
TElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiBzdGF0aWMgVVJMIG1pY3Jvc29mdFRlYW1zUmVk
aXJlY3RVUkwoKQogewogICAgIHJldHVybiBVUkwoVVJMKCksICJodHRwczovL3d3dy5taWNyb3Nv
ZnQuY29tL2VuLXVzL21pY3Jvc29mdC0zNjUvbWljcm9zb2Z0LXRlYW1zLyIpOwpAQCAtOTY5LDcg
Kzk2OSw3IEBAIHZvaWQgRG9jdW1lbnRMb2FkZXI6OnJlc3BvbnNlUmVjZWl2ZWQoQ2FjaGVkUmVz
b3VyY2UmIHJlc291cmNlLCBjb25zdCBSZXNvdXJjZVJlCiAgICAgfSBlbHNlCiAgICAgICAgIG1f
Y29udGVudFNlY3VyaXR5UG9saWN5ID0gbnVsbHB0cjsKIAotI2lmIEVOQUJMRShSRVNPVVJDRV9M
T0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJ
T04pCiAgICAgLy8gRklYTUUoMjE4Nzc5KTogUmVtb3ZlIHRoaXMgcXVpcmsgb25jZSBtaWNyb3Nv
ZnQuY29tIGNvbXBsZXRlcyB0aGVpciBsb2dpbiBmbG93IHJlZGVzaWduLgogICAgIGlmIChtX2Zy
YW1lICYmIG1fZnJhbWUtPmRvY3VtZW50KCkpIHsKICAgICAgICAgYXV0byYgZG9jdW1lbnQgPSAq
bV9mcmFtZS0+ZG9jdW1lbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9F
bXB0eUNsaWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAK
aW5kZXggNzljMjExYzA4MDI0ZGFhNTY3YzMxNzI0ZTIxNDY3YjBmNTg3NGE5NC4uYzE4MjdmZWNk
ZjllNThlNzQxNTBjZDg4MmE3NGQwYmNmZDQ1OGE4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Vt
cHR5Q2xpZW50cy5jcHAKQEAgLTExMDEsNyArMTEwMSw3IEBAIFJlZlB0cjxMZWdhY3lQcmV2aWV3
TG9hZGVyQ2xpZW50PiBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVQcmV2aWV3TG9hZGVy
Q2xpCiAKICNlbmRpZgogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNp
ZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKIAogYm9vbCBFbXB0eUZy
YW1lTG9hZGVyQ2xpZW50OjpoYXNGcmFtZVNwZWNpZmljU3RvcmFnZUFjY2VzcygpCiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCBkYzUx
ZDVlMzU5MmY5NmMwZTMwZDNkNmJhZWNhMjQ0YzA2ZjE5MjU0Li4wMTdlMzdlMTU0Y2UyZmZhNjRj
MTgyZjFlNWJlYmUzN2MwNGFjZTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0
eUZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTE5OSw3ICsxOTksNyBAQCBwcml2YXRlOgogICAgIFJl
ZlB0cjxMZWdhY3lQcmV2aWV3TG9hZGVyQ2xpZW50PiBjcmVhdGVQcmV2aWV3TG9hZGVyQ2xpZW50
KGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpIGZpbmFsOwogI2VuZGlmCiAKLSNpZiBFTkFC
TEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFD
S0lOR19QUkVWRU5USU9OKQogICAgIGJvb2wgaGFzRnJhbWVTcGVjaWZpY1N0b3JhZ2VBY2Nlc3Mo
KSBmaW5hbDsKICNlbmRpZgogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xp
ZW50LmgKaW5kZXggNzdiY2MzZGM1Mzg5MDk1NmJhMDFlNzMxNWQ3NGZkNjhjMjMwYTI0Yi4uMDRh
MTJmN2E5MzAxNWNjZjRlZTA3M2FlZTA0MDgyY2E4MTI2MDdkMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTM2OCw3ICszNjgsNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIGZpbmlzaGVkTG9hZGluZ0FwcGxpY2F0aW9uTWFuaWZlc3QodWludDY0
X3QsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8QXBwbGljYXRpb25NYW5pZmVzdD4mKSB7IH0KICNlbmRp
ZgogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5U
RUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICB2aXJ0dWFsIGJvb2wgaGFzRnJhbWVT
cGVjaWZpY1N0b3JhZ2VBY2Nlc3MoKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9p
ZCBkaWRMb2FkRnJvbVJlZ2lzdHJhYmxlRG9tYWluKFJlZ2lzdHJhYmxlRG9tYWluJiYpIHsgfQog
ICAgIHZpcnR1YWwgVmVjdG9yPFJlZ2lzdHJhYmxlRG9tYWluPiBsb2FkZWRTdWJyZXNvdXJjZURv
bWFpbnMoKSBjb25zdCB7IHJldHVybiB7IH07IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3Vy
Y2VMb2FkZXIuY3BwCmluZGV4IDc0YmYyMThkMzQ4OGE4Njg2ZjNhOGE1NGM1NGUxMjEzNDY3MWQz
N2IuLjMwYzY1NDg2NWVlZmY4OTAyMmI4MDU5ZWE2ZjYwN2QzYjkwNjA1ZTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcApAQCAtNDMwLDcgKzQzMCw3IEBAIHZvaWQg
UmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdEludGVybmFsKFJlc291cmNlUmVxdWVzdCYm
IHJlcXVlc3QsIGNvbnN0IFJlCiAgICAgaWYgKGlzUmVkaXJlY3QpIHsKICAgICAgICAgUkVTT1VS
Q0VMT0FERVJfUkVMRUFTRV9MT0coIndpbGxTZW5kUmVxdWVzdEludGVybmFsOiBQcm9jZXNzaW5n
IGNyb3NzLW9yaWdpbiByZWRpcmVjdCIpOwogICAgICAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+
bG9hZGVyU3RyYXRlZ3koKS0+Y3Jvc3NPcmlnaW5SZWRpcmVjdFJlY2VpdmVkKHRoaXMsIHJlcXVl
c3QudXJsKCkpOwotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5B
QkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgICAgIGZyYW1lTG9hZGVy
KCktPmNsaWVudCgpLmRpZExvYWRGcm9tUmVnaXN0cmFibGVEb21haW4oUmVnaXN0cmFibGVEb21h
aW4ocmVxdWVzdC51cmwoKSkpOwogI2VuZGlmCiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggYzJiZDA3ZTE4
MjI4ODExNDFkMTVhMjNjNDNhYTA2ZGZkMTZiMGMxYS4uOTFkZGNkZGY1NTU4MGNjOTBiNTUwOTUx
NGVlMDc3YzFlODNmNzAyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0xMDg1LDcgKzEwODUsNyBAQCBSZXNvdXJj
ZUVycm9yT3I8Q2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+PiBDYWNoZWRSZXNv
dXJjZUxvYWRlcjo6cmVxdQogCiAgICAgQVNTRVJUKHJlc291cmNlLT51cmwoKSA9PSB1cmwuc3Ry
aW5nKCkpOwogICAgIG1fZG9jdW1lbnRSZXNvdXJjZXMuc2V0KHJlc291cmNlLT51cmwoKS5zdHJp
bmcoKSwgcmVzb3VyY2UpOwotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisj
aWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgZnJhbWUubG9h
ZGVyKCkuY2xpZW50KCkuZGlkTG9hZEZyb21SZWdpc3RyYWJsZURvbWFpbihSZWdpc3RyYWJsZURv
bWFpbihyZXNvdXJjZS0+cmVzb3VyY2VSZXF1ZXN0KCkudXJsKCkpKTsKICNlbmRpZgogICAgIHJl
dHVybiByZXNvdXJjZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IGQyYTI0Zjk1
MTU2MmE3N2VkNWE5NmJlMTRkMmJiNzVkYjIyMjFlMDUuLjA2YzRlMWVhOTI2NDZlM2NlNmFjOWNm
YTc2NzU3NzIxNzg5YjNhNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21l
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtNTUx
LDcgKzU1MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0UHJvY2Vzc0NQVVRp
bWUoU2Vjb25kcywgQWN0aXZpdHlTdGF0ZUZvckNQVVNhbXBsaW5nKSB7IH0KICAgICB2aXJ0dWFs
IFJlZlB0cjxJY29uPiBjcmVhdGVJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIC8q
IGZpbGVuYW1lcyAqLykgPSAwOwogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElD
UykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICB2aXJ0
dWFsIHZvaWQgaGFzU3RvcmFnZUFjY2VzcyhSZWdpc3RyYWJsZURvbWFpbiYmIC8qc3ViRnJhbWVE
b21haW4qLywgUmVnaXN0cmFibGVEb21haW4mJiAvKnRvcEZyYW1lRG9tYWluKi8sIEZyYW1lJiwg
V1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7
IGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsgfQogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0U3Rv
cmFnZUFjY2VzcyhSZWdpc3RyYWJsZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBSZWdpc3RyYWJs
ZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCBGcmFtZSYsIFN0b3JhZ2VBY2Nlc3NTY29wZSBzY29w
ZSwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlcXVlc3RTdG9yYWdlQWNjZXNzUmVzdWx0
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcih7IFN0b3JhZ2VBY2Nl
c3NXYXNHcmFudGVkOjpObywgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duOjpObywgc2NvcGUs
IFdURk1vdmUodG9wRnJhbWVEb21haW4pLCBXVEZNb3ZlKHN1YkZyYW1lRG9tYWluKSB9KTsgfQog
ICAgIHZpcnR1YWwgYm9vbCBoYXNQYWdlTGV2ZWxTdG9yYWdlQWNjZXNzKGNvbnN0IFJlZ2lzdHJh
YmxlRG9tYWluJiAvKnRvcExldmVsRG9tYWluKi8sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiAv
KnJlc291cmNlRG9tYWluKi8pIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0Nyb3NzU2l0ZU5hdmlnYXRpb25EYXRhVHJhbnNmZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ3Jvc3NTaXRlTmF2aWdhdGlvbkRhdGFUcmFuc2Zlci5oCmluZGV4
IGMyOTlkN2VkMWI0MjI4M2JkYzM5YmM0OTY1NzNiMmY4MTRmZDk1ZmUuLmNlOTFlOWQwNWFmMWZj
ZDdiODM4NTQ0Y2ZkNjczYjI1ODA3OTdmYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ3Jvc3NTaXRlTmF2aWdhdGlvbkRhdGFUcmFuc2Zlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ3Jvc3NTaXRlTmF2aWdhdGlvbkRhdGFUcmFuc2Zlci5oCkBAIC0yNSw3ICsyNSw3IEBA
CiAKICNwcmFnbWEgb25jZQogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykK
KyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICNpbmNsdWRlIDx3
dGYvT3B0aW9uU2V0Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTUwLDQgKzUwLDQgQEAg
dGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpDcm9zc1NpdGVOYXZpZ2F0aW9u
RGF0YVRyYW5zZmVyOjpGbGFnPiB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXVEYKLSNlbmRpZiAv
LyBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2VuZGlmIC8vIEVOQUJMRShJTlRF
TExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmlu
ZGV4IDNmNTg5MGFhMjc0OTllYTc5NjJlODQyNjRkZjM1MTI1ZDhkZTFkMjAuLmUyOTAxNTU1YzNh
MDM1OGUyM2MxMzE5NDRmZDA1OWQ2MmIyYzUyODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRE9NV2luZG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5j
cHAKQEAgLTI1NTAsNyArMjU1MCw3IEBAIEV4Y2VwdGlvbk9yPFJlZlB0cjxGcmFtZT4+IERPTVdp
bmRvdzo6Y3JlYXRlV2luZG93KGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBjb25zCiAKIEV4Y2Vw
dGlvbk9yPFJlZlB0cjxXaW5kb3dQcm94eT4+IERPTVdpbmRvdzo6b3BlbihET01XaW5kb3cmIGFj
dGl2ZVdpbmRvdywgRE9NV2luZG93JiBmaXJzdFdpbmRvdywgY29uc3QgU3RyaW5nJiB1cmxTdHJp
bmdUb09wZW4sIGNvbnN0IEF0b21TdHJpbmcmIGZyYW1lTmFtZSwgY29uc3QgU3RyaW5nJiB3aW5k
b3dGZWF0dXJlc1N0cmluZykKIHsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNT
KQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIGlmIChS
ZWZQdHIgZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpKSB7CiAgICAgICAgIGlmIChkb2N1bWVu
dC0+c2V0dGluZ3MoKS5uZWVkc1NpdGVTcGVjaWZpY1F1aXJrcygpICYmIHVybFN0cmluZ1RvT3Bl
biA9PSBRdWlya3M6OkJCQ1JhZGlvUGxheWVyVVJMU3RyaW5nKCkpIHsKICAgICAgICAgICAgIGF1
dG8gcmFkaW9QbGF5ZXJEb21haW4gPSBSZWdpc3RyYWJsZURvbWFpbihVUkwoVVJMKCksIFF1aXJr
czo6c3RhdGljUmFkaW9QbGF5ZXJVUkxTdHJpbmcoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9RdWlya3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9RdWlya3MuY3BwCmlu
ZGV4IDNlNzFjMDFhYzJkYjEwZDgyYTg5ZGZkNDg2MWJhODc3MTVhMzZkMWYuLjc4MWRhYzUxZTU0
YjZjZjMyMzU1ZjlmZTRkNGY1NjZjYThmMTI2MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUXVpcmtzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1F1aXJrcy5jcHAKQEAg
LTEwMTIsNyArMTAxMiw3IEBAIGJvb2wgUXVpcmtzOjpzaG91bGRBdm9pZFBhc3RpbmdJbWFnZXNB
c1dlYkNvbnRlbnQoKSBjb25zdAogI2VuZGlmCiB9CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9B
RF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9O
KQogc3RhdGljIGJvb2wgaXNLaW5qYUxvZ2luQXZhdGFyRWxlbWVudChjb25zdCBFbGVtZW50JiBl
bGVtZW50KQogewogICAgIC8vIFRoZSBjbGljayBldmVudCBoYW5kbGVyIGhhcyBiZWVuIGZvdW5k
IHRvIHRyaWdnZXIgb24gYSBkaXYgb3IKQEAgLTExNTEsNyArMTE1MSw3IEBAIFF1aXJrczo6U3Rv
cmFnZUFjY2Vzc1Jlc3VsdCBRdWlya3M6OnRyaWdnZXJPcHRpb25hbFN0b3JhZ2VBY2Nlc3NRdWly
ayhFbGVtZW50JiBlCiAgICAgaWYgKCFEZXByZWNhdGVkR2xvYmFsU2V0dGluZ3M6OnJlc291cmNl
TG9hZFN0YXRpc3RpY3NFbmFibGVkKCkgfHwgIWlzUGFyZW50UHJvY2Vzc0FGdWxsV2ViQnJvd3Nl
cikKICAgICAgICAgcmV0dXJuIFF1aXJrczo6U3RvcmFnZUFjY2Vzc1Jlc3VsdDo6U2hvdWxkTm90
Q2FuY2VsRXZlbnQ7CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lm
IEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIGlmICghbmVlZHNR
dWlya3MoKSkKICAgICAgICAgcmV0dXJuIFF1aXJrczo6U3RvcmFnZUFjY2Vzc1Jlc3VsdDo6U2hv
dWxkTm90Q2FuY2VsRXZlbnQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUXVp
cmtzLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1F1aXJrcy5oCmluZGV4IDk5ODdiNmJiZjBmMWY2
MWRiNmY4OTliOWFhNzQ4YTJlYWE2MzUyMjAuLmQwOWI2MTVhMzAzYzkyMzEyNTI5MjU0NGRlN2E0
NzEwODIzZjg4NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUXVpcmtzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9RdWlya3MuaApAQCAtMzksNyArMzksNyBAQCBjbGFzcyBI
VE1MVmlkZW9FbGVtZW50OwogY2xhc3MgTGF5b3V0VW5pdDsKIGNsYXNzIFBsYXRmb3JtTW91c2VF
dmVudDsKIAotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxF
KElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiBjbGFzcyBSZWdpc3RyYWJsZURvbWFp
bjsKIGVudW0gY2xhc3MgU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQgOiBib29sOwogI2VuZGlmCkBA
IC0xMzksNyArMTM5LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgYmxvY2tz
UmV0dXJuVG9GdWxsc2NyZWVuRnJvbVBpY3R1cmVJblBpY3R1cmVRdWlyaygpIGNvbnN0OwogICAg
IGJvb2wgc2hvdWxkRGlzYWJsZUVuZEZ1bGxzY3JlZW5FdmVudFdoZW5FbnRlcmluZ1BpY3R1cmVJ
blBpY3R1cmVGcm9tRnVsbHNjcmVlblF1aXJrKCkgY29uc3Q7CiAKLSNpZiBFTkFCTEUoUkVTT1VS
Q0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVW
RU5USU9OKQogICAgIHN0YXRpYyBib29sIGlzTWljcm9zb2Z0VGVhbXNSZWRpcmVjdFVSTChjb25z
dCBVUkwmKTsKICAgICBzdGF0aWMgYm9vbCBoYXNTdG9yYWdlQWNjZXNzRm9yQWxsTG9naW5Eb21h
aW5zKGNvbnN0IEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+JiwgY29uc3QgUmVnaXN0cmFibGVE
b21haW4mKTsKICAgICBzdGF0aWMgY29uc3QgU3RyaW5nJiBCQkNSYWRpb1BsYXllclVSTFN0cmlu
ZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3Jr
U3RvcmFnZVNlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3
b3JrU3RvcmFnZVNlc3Npb24uY3BwCmluZGV4IDAzMjQwODhiMDQ1ZmY4MTYzZmYzYzNmNDYyZGZm
NzUzNjRlNzY1MGEuLmIyMTc3OWY3MDk0MDhkMzI4NTZmMDFkZGQ1NDc5ODhhYTY0MWJjM2MgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtT
dG9yYWdlU2Vzc2lvbi5jcHAKQEAgLTMyLDcgKzMyLDcgQEAKICNpbmNsdWRlIDx3dGYvTmV2ZXJE
ZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvUHJvY2Vzc1ByaXZpbGVnZS5oPgogCi0jaWYgRU5B
QkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJB
Q0tJTkdfUFJFVkVOVElPTikKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKICNpZiBFTkFC
TEUoUFVCTElDX1NVRkZJWF9MSVNUKQogI2luY2x1ZGUgIlB1YmxpY1N1ZmZpeC5oIgpAQCAtNjUs
NyArNjUsNyBAQCBWZWN0b3I8Q29va2llPiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmRvbUNvb2tp
ZXNGb3JIb3N0KGNvbnN0IFN0cmluZyYpCiB9CiAjZW5kaWYgLy8gIVBMQVRGT1JNKENPQ09BKQog
Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxM
SUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKIAogI2lmICFVU0UoU09VUCkKIHZvaWQgTmV0d29y
a1N0b3JhZ2VTZXNzaW9uOjpzZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChib29sIGVu
YWJsZWQpCkBAIC00MjksNiArNDI5LDYgQEAgc3RkOjpvcHRpb25hbDxSZWdpc3RyYWJsZURvbWFp
bj4gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpmaW5kQWRkaXRpb25hbExvZ2luRG9tYWkKICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OwogfQogCi0jZW5kaWYgLy8gRU5BQkxFKFJFU09VUkNFX0xPQURf
U1RBVElTVElDUykKKyNlbmRpZiAvLyBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVO
VElPTikKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9O
ZXR3b3JrU3RvcmFnZVNlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
TmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgKaW5kZXggYjc2ZDMxYWI1Y2ExZTJhM2NkNTAyY2JjNWQ4
ZDlkZWM4NmIyNzc0Zi4uM2NiZTNmOTQ3M2Q0ZWYzNWIwNTc3ODQ3YmNiOWYwYzcwMzU1ZmMyNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFn
ZVNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtT
dG9yYWdlU2Vzc2lvbi5oCkBAIC0xODIsNyArMTgyLDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVf
RVhQT1JUIGJvb2wgc3VwcG9ydHNDb29raWVDaGFuZ2VMaXN0ZW5lckFQSSgpIGNvbnN0OwogI2Vu
ZGlmCiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJ
TlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoYm9vbCk7CiAgICAgV0VCQ09SRV9FWFBP
UlQgYm9vbCByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCgpIGNvbnN0OwogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTG9nZ2luZ0VuYWJs
ZWQoYm9vbCk7CkBAIC0yNzAsNyArMjcwLDcgQEAgcHJpdmF0ZToKIAogICAgIENyZWRlbnRpYWxT
dG9yYWdlIG1fY3JlZGVudGlhbFN0b3JhZ2U7CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9T
VEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQog
ICAgIGJvb2wgbV9pc1Jlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkID0gZmFsc2U7CiAgICAg
Ym9vbCBtX2lzUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTG9nZ2luZ0VuYWJsZWQgPSBmYWxz
ZTsKICAgICBzdGQ6Om9wdGlvbmFsPFNlY29uZHM+IGNsaWVudFNpZGVDb29raWVDYXAoY29uc3Qg
VG9wRnJhbWVEb21haW4mLCBzdGQ6Om9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPikgY29uc3Q7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL05ldHdvcmtT
dG9yYWdlU2Vzc2lvbkNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
b2NvYS9OZXR3b3JrU3RvcmFnZVNlc3Npb25Db2NvYS5tbQppbmRleCA5YWIzZDRiMjg2ZmRkZjQy
ODRkZGEzNDRjYjNjYTMwMGIzYWU3NGRiLi41MGM1MDA2ZjcyMjYzOGY1ZTUzZjdhYjhkNjBkZjUy
Y2E3NTI0MmJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nv
Y29hL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvY29jb2EvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ29jb2EubW0KQEAgLTMz
Miw3ICszMzIsNyBAQCBOU0hUVFBDb29raWUgKk5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y2FwRXhw
aXJ5T2ZQZXJzaXN0ZW50Q29va2llKE5TSFRUUENvb2tpZSAqYwogCiBSZXRhaW5QdHI8TlNBcnJh
eT4gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVzRm9yVVJMKGNvbnN0IFVSTCYgZmlyc3RQ
YXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBz
dGQ6Om9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgc3RkOjpvcHRpb25hbDxQYWdl
SWRlbnRpZmllcj4gcGFnZUlELCBTaG91bGRBc2tJVFAgc2hvdWxkQXNrSVRQLCBTaG91bGRSZWxh
eFRoaXJkUGFydHlDb29raWVCbG9ja2luZyBzaG91bGRSZWxheFRoaXJkUGFydHlDb29raWVCbG9j
a2luZykgY29uc3QKIHsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lm
IEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIGlmIChzaG91bGRB
c2tJVFAgPT0gU2hvdWxkQXNrSVRQOjpZZXMgJiYgc2hvdWxkQmxvY2tDb29raWVzKGZpcnN0UGFy
dHksIHVybCwgZnJhbWVJRCwgcGFnZUlELCBzaG91bGRSZWxheFRoaXJkUGFydHlDb29raWVCbG9j
a2luZykpCiAgICAgICAgIHJldHVybiBuaWw7CiAjZWxzZQpAQCAtNDQ0LDcgKzQ0NCw3IEBAIHZv
aWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzZXRDb29raWVzRnJvbURPTShjb25zdCBVUkwmIGZp
cnN0UGFydHksIGNvbnN0IFNhbWVTCiAKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMK
IAotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVM
TElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgaWYgKHNob3VsZEFza0lUUCA9PSBTaG91
bGRBc2tJVFA6OlllcyAmJiBzaG91bGRCbG9ja0Nvb2tpZXMoZmlyc3RQYXJ0eSwgdXJsLCBmcmFt
ZUlELCBwYWdlSUQsIHNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nKSkKICAgICAg
ICAgcmV0dXJuOwogI2Vsc2UKQEAgLTQ1Niw3ICs0NTYsNyBAQCB2b2lkIE5ldHdvcmtTdG9yYWdl
U2Vzc2lvbjo6c2V0Q29va2llc0Zyb21ET00oY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBT
YW1lUwogICAgIE5TVVJMICpjb29raWVVUkwgPSB1cmw7CiAKICAgICBzdGQ6Om9wdGlvbmFsPFNl
Y29uZHM+IGNvb2tpZUNhcDsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQor
I2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIGNvb2tpZUNh
cCA9IGNsaWVudFNpZGVDb29raWVDYXAoUmVnaXN0cmFibGVEb21haW4geyBmaXJzdFBhcnR5IH0s
IHBhZ2VJRCk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jdXJsL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkN1cmwuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkN1cmwuY3BwCmlu
ZGV4IDc2MThkY2E0NGQwMDQxZDNmMzc2NDU4N2UxNWY0MGM1Y2UzYzhlYzcuLjUyNDliZmI0YTVi
YTUyOTgxZTFmNGNiZTQzMDQ4ZTI3NTA3YjAzM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY3VybC9OZXR3b3JrU3RvcmFnZVNlc3Npb25DdXJsLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvTmV0d29ya1N0b3JhZ2VTZXNz
aW9uQ3VybC5jcHAKQEAgLTk3LDcgKzk3LDcgQEAgQ29va2llSmFyREImIE5ldHdvcmtTdG9yYWdl
U2Vzc2lvbjo6Y29va2llRGF0YWJhc2UoKSBjb25zdAogCiB2b2lkIE5ldHdvcmtTdG9yYWdlU2Vz
c2lvbjo6c2V0Q29va2llc0Zyb21ET00oY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1l
U2l0ZUluZm8mLCBjb25zdCBVUkwmIHVybCwgc3RkOjpvcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+
LCBzdGQ6Om9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIFNob3VsZEFza0lUUCwgY29u
c3QgU3RyaW5nJiB2YWx1ZSwgU2hvdWxkUmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmcpIGNv
bnN0CiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUo
SU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBzdGQ6Om9wdGlvbmFsPFNlY29u
ZHM+IGNhcHBlZExpZmV0aW1lID0gY2xpZW50U2lkZUNvb2tpZUNhcChSZWdpc3RyYWJsZURvbWFp
biB7IGZpcnN0UGFydHkgfSwgcGFnZUlEKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHBhZ2VJ
RCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0
d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAKaW5kZXggMzM2MGE3ZWIxOTQx
MzE5MzcxYmYzMTY5MDY3MmJkZDVmMWM0YThkNC4uNWIzMjUzNGUyYmNhZjE3MDEzMzFlOTU0MTAx
M2I4YTVjMzhjNGQzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcApAQCAt
MjkyLDcgKzI5Miw3IEBAIEhUVFBDb29raWVBY2NlcHRQb2xpY3kgTmV0d29ya1N0b3JhZ2VTZXNz
aW9uOjpjb29raWVBY2NlcHRQb2xpY3koKSBjb25zdAogICAgIFJFTEVBU0VfQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiB9CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lm
IEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogdm9pZCBOZXR3b3JrU3Rv
cmFnZVNlc3Npb246OnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGJvb2wgZW5hYmxl
ZCkKIHsKICAgICBpZiAoZW5hYmxlZCkgewpAQCAtMzIzLDcgKzMyMyw3IEBAIHN0YXRpYyBpbmxp
bmUgYm9vbCBodHRwT25seUNvb2tpZUV4aXN0cyhjb25zdCBHU0xpc3QqIGNvb2tpZXMsIGNvbnN0
IGdjaGFyKiBuYW1lCiAKIHZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzZXRDb29raWVzRnJv
bURPTShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVS
TCYgdXJsLCBzdGQ6Om9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgc3RkOjpvcHRp
b25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBTaG91bGRBc2tJVFAgc2hvdWxkQXNrSVRQLCBj
b25zdCBTdHJpbmcmIHZhbHVlLCBTaG91bGRSZWxheFRoaXJkUGFydHlDb29raWVCbG9ja2luZyBy
ZWxheFRoaXJkUGFydHlDb29raWVCbG9ja2luZykgY29uc3QKIHsKLSNpZiBFTkFCTEUoUkVTT1VS
Q0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVW
RU5USU9OKQogICAgIGlmIChzaG91bGRBc2tJVFAgPT0gU2hvdWxkQXNrSVRQOjpZZXMgJiYgc2hv
dWxkQmxvY2tDb29raWVzKGZpcnN0UGFydHksIHVybCwgZnJhbWVJRCwgcGFnZUlELCByZWxheFRo
aXJkUGFydHlDb29raWVCbG9ja2luZykpCiAgICAgICAgIHJldHVybjsKICNlbHNlCkBAIC0zNDAs
NyArMzQwLDcgQEAgdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNldENvb2tpZXNGcm9tRE9N
KGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVMKICAgICBpZiAoIWZpcnN0UGFydHlV
UkkpCiAgICAgICAgIHJldHVybjsKIAotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJ
Q1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgYXV0
byBjYXBwZWRMaWZldGltZSA9IGNsaWVudFNpZGVDb29raWVDYXAoUmVnaXN0cmFibGVEb21haW4g
eyBmaXJzdFBhcnR5IH0sIHBhZ2VJRCk7CiAjZW5kaWYKIApAQCAtMzYyLDcgKzM2Miw3IEBAIHZv
aWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzZXRDb29raWVzRnJvbURPTShjb25zdCBVUkwmIGZp
cnN0UGFydHksIGNvbnN0IFNhbWVTCiAgICAgICAgIGlmIChodHRwT25seUNvb2tpZUV4aXN0cyhl
eGlzdGluZ0Nvb2tpZXMsIHNvdXBfY29va2llX2dldF9uYW1lKGNvb2tpZS5nZXQoKSksIHNvdXBf
Y29va2llX2dldF9wYXRoKGNvb2tpZS5nZXQoKSkpKQogICAgICAgICAgICAgY29udGludWU7CiAK
LSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJ
R0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgICAgICAvLyBDYXAgbGlmZXRpbWUgb2YgcGVy
c2lzdGVudCwgY2xpZW50LXNpZGUgY29va2llcyB0byBhIHdlZWsuCiAgICAgICAgIGlmIChjYXBw
ZWRMaWZldGltZSkgewogICAgICAgICAgICAgaWYgKGF1dG8qIGV4cGlyZXNEYXRlID0gc291cF9j
b29raWVfZ2V0X2V4cGlyZXMoY29va2llLmdldCgpKSkgewpAQCAtNTM1LDcgKzUzNSw3IEBAIGJv
b2wgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpnZXRSYXdDb29raWVzKGNvbnN0IFVSTCYgZmlyc3RQ
YXJ0eSwgY29uc3QgU2FtZVNpdGVJCiB7CiAgICAgcmF3Q29va2llcy5jbGVhcigpOwogCi0jaWYg
RU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRf
VFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBpZiAoc2hvdWxkQXNrSVRQID09IFNob3VsZEFza0lU
UDo6WWVzICYmIHNob3VsZEJsb2NrQ29va2llcyhmaXJzdFBhcnR5LCB1cmwsIGZyYW1lSUQsIHBh
Z2VJRCwgcmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmcpKQogICAgICAgICByZXR1cm4gdHJ1
ZTsKICNlbHNlCkBAIC01NzUsNyArNTc1LDcgQEAgYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246
OmdldFJhd0Nvb2tpZXMoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUkKIAog
c3RhdGljIHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IGNvb2tpZXNGb3JTZXNzaW9uKGNvbnN0IE5l
dHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25z
dCBVUkwmIHVybCwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIHN0ZDo6b3B0aW9u
YWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBzdGQ6Om9wdGlvbmFsPFBhZ2VJZGVudGlmaWVy
PiBwYWdlSUQsIGJvb2wgZm9ySFRUUEhlYWRlciwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVk
ZVNlY3VyZUNvb2tpZXMsIFNob3VsZEFza0lUUCBzaG91bGRBc2tJVFAsIFNob3VsZFJlbGF4VGhp
cmRQYXJ0eUNvb2tpZUJsb2NraW5nIHJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nKQogewot
I2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElH
RU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgaWYgKHNob3VsZEFza0lUUCA9PSBTaG91bGRB
c2tJVFA6OlllcyAmJiBzZXNzaW9uLnNob3VsZEJsb2NrQ29va2llcyhmaXJzdFBhcnR5LCB1cmws
IGZyYW1lSUQsIHBhZ2VJRCwgcmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmcpKQogICAgICAg
ICByZXR1cm4geyB7IH0sIGZhbHNlIH07CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFz
ZVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHAKaW5kZXggMjliYWI5YTI5Mzk5ZDE2
MjQ5YzEyOTZlNjhhYWY3NzhmMzMwYTE2MC4uZjFmMzAxZDJjNjQwMzExOThiNzUwODI2ZGUyMjE5
ZjAyYzU2MWExZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFz
c2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RhdGFiYXNlU3RvcmUuY3BwCkBAIC0yNiw3ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaCIKIAotI2lm
IEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5U
X1RSQUNLSU5HX1BSRVZFTlRJT04pCiAKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAi
TmV0d29ya1Nlc3Npb24uaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5oIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlLmgKaW5kZXggOWJlODE3NjQ1ZjhmM2YyNzY5YjhiOWZmMWUwYzQ0MDE2
M2I0MmU3MC4uMWU1NGFjMGQzOGRhM2QyYjQyZGI3YzQ0MTI2ZDYzZjlkYmM4MDZiYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmgKQEAg
LTI1LDcgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9B
RF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9O
KQogCiAjaW5jbHVkZSAiRGF0YWJhc2VVdGlsaXRpZXMuaCIKICNpbmNsdWRlICJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmUuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuY3BwIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRp
c3RpY3NNZW1vcnlTdG9yZS5jcHAKaW5kZXggZjM2MmY3YmIzZmJhYjY2MDRlYzljMzc4YTEzZWQ1
N2FkY2FjZDhkYi4uOGFkMTE1MzgzYzVlYmNkZDY1YWI4NjJmNzU1Y2U4ZGUwYTkzZmRhNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNl
TG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5jcHAK
QEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuaCIKIAotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FE
X1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04p
CiAKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Nlc3Npb24uaCIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuaAppbmRleCAz
ZDdmNzVhMDE2MDRmZTZlMTg0YmRlZTBhODNhMjk2YTI4YjgwYzQxLi41NmY2N2JmMDg4ZGM2MDAy
MjNmOGJmYTMwZmRmNzg0OGUwYmVlZDI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmgK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9h
ZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5oCkBAIC0yNSw3ICsyNSw3IEBACiAKICNwcmFnbWEgb25j
ZQogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5U
RUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKIAogI2luY2x1ZGUgIlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZS5oIgogI2luY2x1ZGUgIldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVy
L1Jlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcAppbmRleCBl
YmUyMzUzNjU0ZTA5YTIyMTU4N2IyNTdhZWU2ODc2ZWNmNTMxNmUyLi45ZTE3NDI0MTY4MmYzNTU4
ODBhZDdhYWNlNzQ2YTM0NjNhZDAyZTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlLmNwcApAQCAtMjYsNyArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oIgogCi0jaWYgRU5BQkxFKFJF
U09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdf
UFJFVkVOVElPTikKIAogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJv
Y2Vzcy5oIgpAQCAtMzc1LDcgKzM3NSw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlOjp1cGRhdGVDbGllbnRTaWRlQ29va2llc0FnZUNhcCgpCiB7CiAgICAgQVNTRVJUKCFSdW5M
b29wOjppc01haW4oKSk7CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQor
I2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIFJ1bkxvb3A6
Om1haW4oKS5kaXNwYXRjaChbc3RvcmUgPSBtYWtlUmVmKG1fc3RvcmUpLCBzZWNvbmRzID0gbV9w
YXJhbWV0ZXJzLmNsaWVudFNpZGVDb29raWVzQWdlQ2FwVGltZV0gKCkgewogICAgICAgICBpZiAo
YXV0byogbmV0d29ya1Nlc3Npb24gPSBzdG9yZS0+bmV0d29ya1Nlc3Npb24oKSkgewogICAgICAg
ICAgICAgaWYgKGF1dG8qIHN0b3JhZ2VTZXNzaW9uID0gbmV0d29ya1Nlc3Npb24tPm5ldHdvcmtT
dG9yYWdlU2Vzc2lvbigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5o
CmluZGV4IGMxZWRmNTZkMzViYmI2NzM4OGI3NzMzNTQ0ZDRlMTFmZWI2NzcyMTEuLjlhOTgzYWRj
NzcyMTg5OWNhMjdkNjJiOTY2YTE0ZWEyYzNhZjkxNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlLmgKQEAgLTI1LDcgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAK
LSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJ
R0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogCiAjaW5jbHVkZSAiUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0NsYXNzaWZpZXIuaCIKICNpbmNsdWRlICJXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmUuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmll
ci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAK
aW5kZXggYTVlOWFlZjYyZTljNDgxMWNlNGNmNjU4ZmU2NmVhZGNhNjNjYjY4NS4uZmM3NGJjYzBl
YzFhMmNjYzI5ZjVkMmQzZDI0ODhjY2JlNTdmYzAyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKQEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaCIK
IAotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVM
TElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAKICNpbmNsdWRlICJBUElEaWN0aW9uYXJ5Lmgi
CiAjaW5jbHVkZSAiTG9nZ2luZy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZS5oCmluZGV4IDA2NzljOTg2NWNkMGJhYjAxZjkyMDlkNzNmNTU5NzU5MjBlYmE2
ZmIuLjY2MWIxNTYzZWM2NGI2NmU3OGYxZjhkNTU0YzZkOWRmMzczMWFlNmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNz
aWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKQEAgLTI1LDcgKzI1LDcgQEAK
IAogI3ByYWdtYSBvbmNlCiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQor
I2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogCiAjaW5jbHVkZSAi
QXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJEZWNvZGVyLmgiCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNw
cCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY3BwCmluZGV4IGExN2E1NjM5YjRkOTAwZmE2MDA2NmI3NjgyNDhhOGU4ZmE4NjllNjUu
LjVkZDhiMzU2ODNkNTg4ZjFlN2Q3MmNiMTgxMjNjMjY2NzY1ZGU2MjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuY3BwCkBAIC03MTQsNyArNzE0LDcgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6Y29va2llc0ZvckRPTShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0
IFMKICAgICBpZiAoIW5ldHdvcmtTdG9yYWdlU2Vzc2lvbikKICAgICAgICAgcmV0dXJuIGNvbXBs
ZXRpb25IYW5kbGVyKHsgfSwgZmFsc2UpOwogICAgIGF1dG8gcmVzdWx0ID0gbmV0d29ya1N0b3Jh
Z2VTZXNzaW9uLT5jb29raWVzRm9yRE9NKGZpcnN0UGFydHksIHNhbWVTaXRlSW5mbywgdXJsLCBm
cmFtZUlELCBwYWdlSUQsIGluY2x1ZGVTZWN1cmVDb29raWVzLCBzaG91bGRBc2tJVFAsIHNob3Vs
ZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nKTsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9B
RF9TVEFUSVNUSUNTKSAmJiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKyNpZiBFTkFCTEUoSU5URUxM
SUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikgJiYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAg
aWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbigpKSB7CiAgICAgICAgIGlmIChzZXNz
aW9uLT5zaG91bGRMb2dDb29raWVJbmZvcm1hdGlvbigpKQogICAgICAgICAgICAgTmV0d29ya1Jl
c291cmNlTG9hZGVyOjpsb2dDb29raWVJbmZvcm1hdGlvbigqdGhpcywgIk5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpjb29raWVzRm9yRE9NIiwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCB2
b2lkKj4odGhpcyksICpuZXR3b3JrU3RvcmFnZVNlc3Npb24sIGZpcnN0UGFydHksIHNhbWVTaXRl
SW5mbywgdXJsLCBlbXB0eVN0cmluZygpLCBmcmFtZUlELCBwYWdlSUQsIHN0ZDo6bnVsbG9wdCk7
CkBAIC03MjksNyArNzI5LDcgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
c2V0Q29va2llc0Zyb21ET00oY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb24KICAgICBpZiAoIW5l
dHdvcmtTdG9yYWdlU2Vzc2lvbikKICAgICAgICAgcmV0dXJuOwogICAgIG5ldHdvcmtTdG9yYWdl
U2Vzc2lvbi0+c2V0Q29va2llc0Zyb21ET00oZmlyc3RQYXJ0eSwgc2FtZVNpdGVJbmZvLCB1cmws
IGZyYW1lSUQsIHBhZ2VJRCwgc2hvdWxkQXNrSVRQLCBjb29raWVTdHJpbmcsIHNob3VsZFJlbGF4
VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nKTsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFU
SVNUSUNTKSAmJiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRf
VFJBQ0tJTkdfUFJFVkVOVElPTikgJiYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgaWYgKGF1
dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbigpKSB7CiAgICAgICAgIGlmIChzZXNzaW9uLT5z
aG91bGRMb2dDb29raWVJbmZvcm1hdGlvbigpKQogICAgICAgICAgICAgTmV0d29ya1Jlc291cmNl
TG9hZGVyOjpsb2dDb29raWVJbmZvcm1hdGlvbigqdGhpcywgIk5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpzZXRDb29raWVzRnJvbURPTSIsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qgdm9p
ZCo+KHRoaXMpLCAqbmV0d29ya1N0b3JhZ2VTZXNzaW9uLCBmaXJzdFBhcnR5LCBzYW1lU2l0ZUlu
Zm8sIHVybCwgZW1wdHlTdHJpbmcoKSwgZnJhbWVJRCwgcGFnZUlELCBzdGQ6Om51bGxvcHQpOwpA
QCAtOTQyLDEzICs5NDIsMTMgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
Y2xlYXJQYWdlU3BlY2lmaWNEYXRhKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCkKICAgICBpZiAoYXV0
byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKCkpCiAgICAgICAgIHNlc3Npb24tPm5ldHdvcmtM
b2FkU2NoZWR1bGVyKCkuY2xlYXJQYWdlRGF0YShwYWdlSUQpOwogCi0jaWYgRU5BQkxFKFJFU09V
UkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJF
VkVOVElPTikKICAgICBpZiAoYXV0byogc3RvcmFnZVNlc3Npb24gPSBuZXR3b3JrUHJvY2Vzcygp
LnN0b3JhZ2VTZXNzaW9uKG1fc2Vzc2lvbklEKSkKICAgICAgICAgc3RvcmFnZVNlc3Npb24tPmNs
ZWFyUGFnZVNwZWNpZmljRGF0YUZvclJlc291cmNlTG9hZFN0YXRpc3RpY3MocGFnZUlEKTsKICNl
bmRpZgogfQogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFC
TEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKIHZvaWQgTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OnJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFtZShGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlEKQogewogICAgIGlmIChhdXRvKiBzdG9y
YWdlU2Vzc2lvbiA9IG5ldHdvcmtQcm9jZXNzKCkuc3RvcmFnZVNlc3Npb24obV9zZXNzaW9uSUQp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCmluZGV4IDk4YzRmM2RkYjY2OGRhZDZmZWI2MzlmNGUy
Nzc1ZTZlNmNmYzQ2MzguLmU5OGEyZTVkYTE1ZjZiMDhkZDI1MGJlOThiNmY4ZmFiNTMzNDFhNGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKQEAgLTI4OSw3ICsyODksNyBAQCBwcml2YXRlOgog
CiAgICAgdm9pZCBjbGVhclBhZ2VTcGVjaWZpY0RhdGEoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIp
OwogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5U
RUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICB2b2lkIHJlbW92ZVN0b3JhZ2VBY2Nl
c3NGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyKTsKIAogICAgIHZvaWQgbG9nVXNlckludGVyYWN0aW9uKGNvbnN0IFJlZ2lzdHJhYmxlRG9t
YWluJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCAx
ZDVjODEwMjA0YjZhNjlhNmQ4ZTkxZTg0ODJjNTkyNDkxNjFkMzRkLi4xNWRhNmFiZmM1Mzg2OWZk
NDM4NjI0NzY5NmZlYTUxMWI2YTlkYjkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MubWVzc2FnZXMuaW4KQEAgLTY2LDcgKzY2LDcgQEAgbWVzc2FnZXMgLT4gTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogCiAgICAgQ2xlYXJQYWdlU3BlY2lm
aWNEYXRhKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCk7CiAKLSNpZiBFTkFCTEUoUkVT
T1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19Q
UkVWRU5USU9OKQogICAgIFJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFtZShXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlEKTsKICAg
ICBMb2dVc2VySW50ZXJhY3Rpb24oV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gZG9tYWluKQog
ICAgIFJlc291cmNlTG9hZFN0YXRpc3RpY3NVcGRhdGVkKFZlY3RvcjxXZWJDb3JlOjpSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzPiBzdGF0aXN0aWNzKSAtPiAoKSBBc3luYwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwCmluZGV4IDUyNjI3Njc2NzAy
YmMxNGRkYmNkYzZmNThjYzE4M2RjNDc1ODQzMjAuLmVkMTQ1NDZjMDdhMTkzYTljYzJhN2ZiOWM4
OTdhNGVmZWYwYzgzOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0RhdGFUYXNrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtEYXRhVGFzay5jcHAKQEAgLTE2OSw3ICsxNjksNyBAQCBib29sIE5ldHdvcmtEYXRhVGFz
azo6aXNUaGlyZFBhcnR5UmVxdWVzdChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlcwogCiB2b2lkIE5ldHdvcmtEYXRhVGFzazo6cmVzdHJpY3RSZXF1ZXN0UmVmZXJyZXJUb09y
aWdpbklmTmVlZGVkKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKLSNpZiBF
TkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9U
UkFDS0lOR19QUkVWRU5USU9OKQogICAgIGlmICgobV9zZXNzaW9uLT5zZXNzaW9uSUQoKS5pc0Vw
aGVtZXJhbCgpIHx8IG1fc2Vzc2lvbi0+aXNSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCgp
KSAmJiBtX3Nlc3Npb24tPnNob3VsZERvd25ncmFkZVJlZmVycmVyKCkgJiYgaXNUaGlyZFBhcnR5
UmVxdWVzdChyZXF1ZXN0KSkKICAgICAgICAgcmVxdWVzdC5zZXRFeGlzdGluZ0hUVFBSZWZlcnJl
clRvT3JpZ2luU3RyaW5nKCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggYTM1Y2VhNjM1NWY1ZTk2MWQ4ZTI4MzdhM2Fi
Y2MyZDBlMzJmZTA0ZS4uNGRjYjMyY2RiNzU3NTY0YmZiMDIzNDU1ZjlmZmNiYWFiM2RmNjFmYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAK
QEAgLTU3Nyw3ICs1NzcsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpkZXN0cm95U2Vzc2lvbihQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgcmVtb3ZlU3RvcmFnZU1hbmFnZXJGb3JTZXNz
aW9uKHNlc3Npb25JRCk7CiB9CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNT
KQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogdm9pZCBOZXR3
b3JrUHJvY2Vzczo6ZHVtcFJlc291cmNlTG9hZFN0YXRpc3RpY3MoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCiB7CiAgICAgaWYgKGF1dG8qIG5ldHdvcmtTZXNzaW9uID0gdGhpcy0+bmV0d29ya1Nlc3Np
b24oc2Vzc2lvbklEKSkgewpAQCAtMTMzNyw3ICsxMzM3LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vz
czo6c2V0VGhpcmRQYXJ0eUNOQU1FRG9tYWluRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQKICAgICAgICAgbmV0d29ya1Nlc3Npb24tPnNldFRoaXJkUGFydHlDTkFNRURvbWFpbkZv
clRlc3RpbmcoV1RGTW92ZShkb21haW4pKTsKICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogfQot
I2VuZGlmIC8vIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjZW5kaWYgLy8gRU5B
QkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAKIHZvaWQgTmV0d29ya1Byb2Nl
c3M6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50RW5hYmxlZChib29sIGVuYWJsZWQpCiB7CkBA
IC0xNTUzLDcgKzE1NTMsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpmZXRjaFdlYnNpdGVEYXRh
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdAogICAgIH0KICNlbmRp
ZgogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5U
RUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBpZiAod2Vic2l0ZURhdGFUeXBlcy5j
b250YWlucyhXZWJzaXRlRGF0YVR5cGU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3MpKSB7CiAgICAg
ICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewogICAg
ICAgICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBzZXNzaW9uLT5yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzKCkpIHsKQEAgLTE2MDUsNyArMTYwNSw3IEBAIHZvaWQgTmV0d29y
a1Byb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0
aW9uU2V0PFdlYnNpCiAgICAgICAgIHN3U2VydmVyRm9yU2Vzc2lvbihzZXNzaW9uSUQpLmNsZWFy
QWxsKFtjbGVhclRhc2tzSGFuZGxlcl0geyB9KTsKICNlbmRpZgogCi0jaWYgRU5BQkxFKFJFU09V
UkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJF
VkVOVElPTikKICAgICBpZiAod2Vic2l0ZURhdGFUeXBlcy5jb250YWlucyhXZWJzaXRlRGF0YVR5
cGU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3MpKSB7CiAgICAgICAgIGlmIChhdXRvKiBuZXR3b3Jr
U2Vzc2lvbiA9IHRoaXMtPm5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKICAgICAgICAgICAg
IGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gbmV0d29ya1Nlc3Npb24tPnJlc291
cmNlTG9hZFN0YXRpc3RpY3MoKSkgewpAQCAtMTczNSw3ICsxNzM1LDcgQEAgdm9pZCBOZXR3b3Jr
UHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgT3B0aW8KICAgICAgICAgV2ViQ29yZTo6Q3JlZGVudGlhbFN0b3JhZ2U6OnJlbW92ZVNl
c3Npb25DcmVkZW50aWFsc1dpdGhPcmlnaW5zKG9yaWdpbkRhdGFzKTsKICAgICB9CiAKLSNpZiBF
TkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9U
UkFDS0lOR19QUkVWRU5USU9OKQogICAgIGlmICh3ZWJzaXRlRGF0YVR5cGVzLmNvbnRhaW5zKFdl
YnNpdGVEYXRhVHlwZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljcykpIHsKICAgICAgICAgaWYgKGF1
dG8qIG5ldHdvcmtTZXNzaW9uID0gdGhpcy0+bmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewog
ICAgICAgICAgICAgZm9yIChhdXRvJiBkb21haW4gOiByZWdpc3RyYWJsZURvbWFpbnMpIHsKQEAg
LTE3NjEsNyArMTc2MSw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRh
Rm9yT3JpZ2lucyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvCiAgICAgfQogfQogCi0j
aWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdF
TlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKIHN0YXRpYyBWZWN0b3I8U3RyaW5nPiBmaWx0ZXJGb3JS
ZWdpc3RyYWJsZURvbWFpbnMoY29uc3QgVmVjdG9yPFJlZ2lzdHJhYmxlRG9tYWluPiYgcmVnaXN0
cmFibGVEb21haW5zLCBjb25zdCBIYXNoU2V0PFN0cmluZz4mIGZvdW5kVmFsdWVzKQogewogICAg
IFZlY3RvcjxTdHJpbmc+IHJlc3VsdDsKQEAgLTIwODQsNyArMjA4NCw3IEBAIHZvaWQgTmV0d29y
a1Byb2Nlc3M6OnJlZ2lzdHJhYmxlRG9tYWluc1dpdGhXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsCiAgICAgICAgIH0pOwogICAgIH0KIH0KLSNlbmRpZiAvLyBFTkFCTEUoUkVT
T1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2VuZGlmIC8vIEVOQUJMRShJTlRFTExJR0VOVF9UUkFD
S0lOR19QUkVWRU5USU9OKQogCiBDYWNoZVN0b3JhZ2U6OkVuZ2luZSogTmV0d29ya1Byb2Nlc3M6
OmZpbmRDYWNoZUVuZ2luZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CkBAIC0yMjYxLDcg
KzIyNjEsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpwcmVwYXJlVG9TdXNwZW5kKGJvb2wgaXNT
dXNwZW5zaW9uSW1taW5lbnQsIENvbXBsZXRpb25IYW5kbAogICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcigpOwogICAgIH0pOwogICAgIAotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJ
Q1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgV2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpzdXNwZW5kKFtjYWxsYmFja0FnZ3JlZ2F0b3Jd
IHsgfSk7CiAjZW5kaWYKICAgICBQQ006OlN0b3JlOjpwcmVwYXJlRm9yUHJvY2Vzc1RvU3VzcGVu
ZChbY2FsbGJhY2tBZ2dyZWdhdG9yXSB7IH0pOwpAQCAtMjMwNCw3ICsyMzA0LDcgQEAgdm9pZCBO
ZXR3b3JrUHJvY2Vzczo6cmVzdW1lKCkKICAgICBmb3IgKGF1dG8mIGNvbm5lY3Rpb24gOiBtX3dl
YlByb2Nlc3NDb25uZWN0aW9ucy52YWx1ZXMoKSkKICAgICAgICAgY29ubmVjdGlvbi0+ZW5kU3Vz
cGVuc2lvbigpOwogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBF
TkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBXZWJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmU6OnJlc3VtZSgpOwogI2VuZGlmCiAgICAgUENNOjpTdG9yZTo6cHJv
Y2Vzc0RpZFJlc3VtZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5oCmluZGV4IDI4Y2JmZjVkNDEwMzhlYTdmZGZiODBkNDdiNjRjNjJjYzAxZGU0ZWMu
LjEwNjAyMmNlNjg1MTk3ODMwZjI2NWFhYjY1M2Q4NGUwMGY4NTFjZDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKQEAgLTIxMiw3ICsyMTIsNyBA
QCBwdWJsaWM6CiAKICAgICB2b2lkIGFkZFdlYnNpdGVEYXRhU3RvcmUoV2Vic2l0ZURhdGFTdG9y
ZVBhcmFtZXRlcnMmJik7CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQor
I2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIHZvaWQgY2xl
YXJQcmV2YWxlbnRSZXNvdXJjZShQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21h
aW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgY2xlYXJVc2VySW50
ZXJhY3Rpb24oUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIGRlbGV0ZUFuZFJlc3RyaWN0V2Vic2l0
ZURhdGFGb3JSZWdpc3RyYWJsZURvbWFpbnMoUEFMOjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJz
aXRlRGF0YVR5cGU+LCBSZWdpc3RyYWJsZURvbWFpbnNUb0RlbGV0ZU9yUmVzdHJpY3RXZWJzaXRl
RGF0YUZvciYmLCBib29sIHNob3VsZE5vdGlmeVBhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Y29uc3QgSGFzaFNldDxSZWdpc3RyYWJsZURvbWFpbj4mKT4mJik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRl
eCA1MTgwYzgyOTY1MGFkNTZlMGIxZWZkM2JjNDUyMGNiZjMxYTI5NzMxLi5kNTk1ODkzNmZhZTEx
ZWQ4YmIyYTM3M2E3ZDRmZjBiZDdmYjM0ZjUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTc3LDcgKzc3
LDcgQEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogCiAgICAg
UHJlY29ubmVjdFRvKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViS2l0OjpXZWJQYWdlUHJv
eHlJZGVudGlmaWVyIHdlYlBhZ2VQcm94eUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQ
YWdlSUQsIFVSTCB1cmwsIFN0cmluZyB1c2VyQWdlbnQsIGVudW06dWludDhfdCBXZWJDb3JlOjpT
dG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgZW51bTpib29s
IHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4gaXNOYXZp
Z2F0aW5nVG9BcHBCb3VuZERvbWFpbiwgZW51bTpib29sIFdlYktpdDo6TGFzdE5hdmlnYXRpb25X
YXNBcHBJbml0aWF0ZWQgbGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQpOwogCi0jaWYgRU5B
QkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJB
Q0tJTkdfUFJFVkVOVElPTikKICAgICBDbGVhclByZXZhbGVudFJlc291cmNlKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVzb3VyY2VEb21haW4p
IC0+ICgpIEFzeW5jCiAgICAgQ2xlYXJVc2VySW50ZXJhY3Rpb24oUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZXNvdXJjZURvbWFpbikgLT4gKCkg
QXN5bmMKICAgICBEdW1wUmVzb3VyY2VMb2FkU3RhdGlzdGljcyhQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQpIC0+IChTdHJpbmcgZHVtcGVkU3RhdGlzdGljcykgQXN5bmMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAppbmRl
eCAyM2Q5NDg3NWUyYzE1ODgyYWYyMThjOGRmZWFmNjEwMDAyYjkxNmFjLi5kYzRkNTAyNzk3NDlh
NTJmYTc5OTY3NjE4OGY5NThhYzdmMjM1MDM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0yNzAsNyArMjcw
LDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnJldHJpZXZlQ2FjaGVFbnRyeShjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6
cmV0cmlldmVDYWNoZUVudHJ5SW50ZXJuYWwoc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtDYWNoZTo6
RW50cnk+JiYgZW50cnksIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QpCiB7CiAg
ICAgTE9BREVSX1JFTEVBU0VfTE9HKCJyZXRyaWV2ZUNhY2hlRW50cnlJbnRlcm5hbDoiKTsKLSNp
ZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VO
VF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIGlmIChlbnRyeS0+aGFzUmVhY2hlZFByZXZhbGVu
dFJlc291cmNlQWdlQ2FwKCkpIHsKICAgICAgICAgTE9BREVSX1JFTEVBU0VfTE9HKCJyZXRyaWV2
ZUNhY2hlRW50cnlJbnRlcm5hbDogUmV2YWxpZGF0aW5nIGNhY2hlZCBlbnRyeSBiZWNhdXNlIGl0
IHJlYWNoZWQgdGhlIHByZXZhbGVudCByZXNvdXJjZSBhZ2UgY2FwIik7CiAgICAgICAgIG1fY2Fj
aGVFbnRyeUZvck1heEFnZUNhcFZhbGlkYXRpb24gPSBXVEZNb3ZlKGVudHJ5KTsKQEAgLTgwNCw3
ICs4MDQsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoTG9hZGluZyhj
b25zdCBOZXR3b3JrTG9hZE1ldHJpY3MmIG5ldHdvcmtMbwogICAgICAgICByZXR1cm47CiAgICAg
fQogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykgJiYgIVJFTEVBU0VfTE9H
X0RJU0FCTEVECisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pICYm
ICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIGlmIChzaG91bGRMb2dDb29raWVJbmZvcm1hdGlv
bihtX2Nvbm5lY3Rpb24sIHNlc3Npb25JRCgpKSkKICAgICAgICAgbG9nQ29va2llSW5mb3JtYXRp
b24oKTsKICNlbmRpZgpAQCAtODc3LDcgKzg3Nyw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9h
ZGVyOjpkaWRSZWNlaXZlQ2hhbGxlbmdlKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBj
CiAKIHN0ZDo6b3B0aW9uYWw8U2Vjb25kcz4gTmV0d29ya1Jlc291cmNlTG9hZGVyOjp2YWxpZGF0
ZUNhY2hlRW50cnlGb3JNYXhBZ2VDYXBWYWxpZGF0aW9uKGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZWRpcmVjdFJlcXVlc3QsIGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpCiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNF
X0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVO
VElPTikKICAgICBib29sIGV4aXN0aW5nQ2FjaGVFbnRyeU1hdGNoZXNOZXdSZXNwb25zZSA9IGZh
bHNlOwogICAgIGlmIChtX2NhY2hlRW50cnlGb3JNYXhBZ2VDYXBWYWxpZGF0aW9uKSB7CiAgICAg
ICAgIEFTU0VSVChyZWRpcmVjdFJlc3BvbnNlLnNvdXJjZSgpID09IFJlc291cmNlUmVzcG9uc2U6
OlNvdXJjZTo6TmV0d29yayk7CkBAIC0xMjU3LDcgKzEyNTcsNyBAQCB2b2lkIE5ldHdvcmtSZXNv
dXJjZUxvYWRlcjo6c2VuZFJlc3VsdEZvckNhY2hlRW50cnkoc3RkOjp1bmlxdWVfcHRyPE5ldHdv
cmtDYWNoZQogICAgIH0KICNlbmRpZgogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElT
VElDUykgJiYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RS
QUNLSU5HX1BSRVZFTlRJT04pICYmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIGlmIChzaG91
bGRMb2dDb29raWVJbmZvcm1hdGlvbihtX2Nvbm5lY3Rpb24sIHNlc3Npb25JRCgpKSkKICAgICAg
ICAgbG9nQ29va2llSW5mb3JtYXRpb24oKTsKICNlbmRpZgpAQCAtMTM2MSw3ICsxMzYxLDcgQEAg
Ym9vbCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmNyb3NzT3JpZ2luQWNjZXNzQ29udHJvbENoZWNr
RW5hYmxlZCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fcGFyYW1ldGVycy5jcm9zc09yaWdpbkFjY2Vz
c0NvbnRyb2xDaGVja0VuYWJsZWQ7CiB9CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFU
SVNUSUNTKSAmJiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRf
VFJBQ0tJTkdfUFJFVkVOVElPTikgJiYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiBib29sIE5ldHdv
cmtSZXNvdXJjZUxvYWRlcjo6c2hvdWxkTG9nQ29va2llSW5mb3JtYXRpb24oTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24sIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkK
IHsKICAgICBpZiAoYXV0byogc2Vzc2lvbiA9IGNvbm5lY3Rpb24ubmV0d29ya1Byb2Nlc3MoKS5u
ZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmgKaW5kZXggN2ZmNjFlYjFiZTgyNjczNTI4
MWNkM2JjODFiMDU4YzBlMDZiMTYwNC4uNTZmOTJlNmQ3YTNjNzkzMWEwOGYyOWVlZjA1OTg1Y2Qz
NWViNDFkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UmVzb3VyY2VMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtSZXNvdXJjZUxvYWRlci5oCkBAIC0xMjksNyArMTI5LDcgQEAgcHVibGljOgogICAgIGJvb2wg
aXNNYWluRnJhbWVMb2FkKCkgY29uc3QgeyByZXR1cm4gaXNNYWluUmVzb3VyY2UoKSAmJiBtX3Bh
cmFtZXRlcnMuZnJhbWVBbmNlc3Rvck9yaWdpbnMuaXNFbXB0eSgpOyB9CiAgICAgYm9vbCBpc0Ny
b3NzT3JpZ2luUHJlZmV0Y2goKSBjb25zdDsKIAotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NU
QVRJU1RJQ1MpICYmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorI2lmIEVOQUJMRShJTlRFTExJR0VO
VF9UUkFDS0lOR19QUkVWRU5USU9OKSAmJiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBzdGF0
aWMgYm9vbCBzaG91bGRMb2dDb29raWVJbmZvcm1hdGlvbihOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2VzcyYsIFBBTDo6U2Vzc2lvbklEKTsKICAgICBzdGF0aWMgdm9pZCBsb2dDb29raWVJbmZv
cm1hdGlvbihOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYsIGNvbnN0IFN0cmluZyYgbGFi
ZWwsIGNvbnN0IHZvaWQqIGxvZ2dlZE9iamVjdCwgY29uc3QgV2ViQ29yZTo6TmV0d29ya1N0b3Jh
Z2VTZXNzaW9uJiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0
ZUluZm8mLCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBzdGQ6Om9wdGlvbmFs
PFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4sIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXI+LCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBpZGVudGlmaWVyKTsKICNlbmRpZgpA
QCAtMTkzLDcgKzE5Myw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjb25zdW1lU2FuZGJveEV4dGVu
c2lvbnMoKTsKICAgICB2b2lkIGludmFsaWRhdGVTYW5kYm94RXh0ZW5zaW9ucygpOwogCi0jaWYg
RU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykgJiYgIVJFTEVBU0VfTE9HX0RJU0FCTEVE
CisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pICYmICFSRUxFQVNF
X0xPR19ESVNBQkxFRAogICAgIHZvaWQgbG9nQ29va2llSW5mb3JtYXRpb24oKSBjb25zdDsKICNl
bmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtT
ZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24u
Y3BwCmluZGV4IDAzNTc1OTgwZjU1Y2U2NmExZmUwMDY2MjNmYmUyNjJiMDBjYWFlNmQuLmYzODYw
YjIwNGYwNjMwYTlkNmVlNTk2YzNlZjljYmRjMTI1MmQyYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCkBAIC0xMDMsNyArMTAzLDcgQEAg
c3RhdGljIFVuaXF1ZVJlZjxQQ006Ok1hbmFnZXJJbnRlcmZhY2U+IG1hbmFnZXJPclByb3h5KE5l
dHdvcmtTZXNzaW9uJiBuZXR3b3JrU2UKIE5ldHdvcmtTZXNzaW9uOjpOZXR3b3JrU2Vzc2lvbihO
ZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MsIGNvbnN0IE5ldHdvcmtTZXNzaW9uQ3JlYXRp
b25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogICAgIDogbV9zZXNzaW9uSUQocGFyYW1ldGVycy5z
ZXNzaW9uSUQpCiAgICAgLCBtX25ldHdvcmtQcm9jZXNzKG5ldHdvcmtQcm9jZXNzKQotI2lmIEVO
QUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RS
QUNLSU5HX1BSRVZFTlRJT04pCiAgICAgLCBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3Rv
cnkocGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycy5kaXJlY3Rvcnkp
CiAgICAgLCBtX3Nob3VsZEluY2x1ZGVMb2NhbGhvc3RJblJlc291cmNlTG9hZFN0YXRpc3RpY3Mo
cGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycy5zaG91bGRJbmNsdWRl
TG9jYWxob3N0ID8gU2hvdWxkSW5jbHVkZUxvY2FsaG9zdDo6WWVzIDogU2hvdWxkSW5jbHVkZUxv
Y2FsaG9zdDo6Tm8pCiAgICAgLCBtX2VuYWJsZVJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01v
ZGUocGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycy5lbmFibGVEZWJ1
Z01vZGUgPyBFbmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlOjpZZXMgOiBFbmFi
bGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlOjpObykKQEAgLTE0NiwyMSArMTQ2LDIx
IEBAIE5ldHdvcmtTZXNzaW9uOjpOZXR3b3JrU2Vzc2lvbihOZXR3b3JrUHJvY2VzcyYgbmV0d29y
a1Byb2Nlc3MsIGNvbnN0IE5ldHdvcmtTZXNzCiAKICAgICBtX2lzU3RhbGVXaGlsZVJldmFsaWRh
dGVFbmFibGVkID0gcGFyYW1ldGVycy5zdGFsZVdoaWxlUmV2YWxpZGF0ZUVuYWJsZWQ7CiAKLSNp
ZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VO
VF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIHNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFi
bGVkKHBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnMuZW5hYmxlZCk7
CiAjZW5kaWYKIH0KIAogTmV0d29ya1Nlc3Npb246On5OZXR3b3JrU2Vzc2lvbigpCiB7Ci0jaWYg
RU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRf
VFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBkZXN0cm95UmVzb3VyY2VMb2FkU3RhdGlzdGljcyhb
XSB7IH0pOwogI2VuZGlmCiAgICAgZm9yIChhdXRvJiBsb2FkZXIgOiBzdGQ6OmV4Y2hhbmdlKG1f
a2VwdEFsaXZlTG9hZHMsIHsgfSkpCiAgICAgICAgIGxvYWRlci0+YWJvcnQoKTsKIH0KIAotI2lm
IEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5U
X1RSQUNLSU5HX1BSRVZFTlRJT04pCiB2b2lkIE5ldHdvcmtTZXNzaW9uOjpkZXN0cm95UmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCiB7CiAgICAgaWYgKCFtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3MpCkBAIC0xNzUsNyAr
MTc1LDcgQEAgdm9pZCBOZXR3b3JrU2Vzc2lvbjo6aW52YWxpZGF0ZUFuZENhbmNlbCgpCiB7CiAg
ICAgZm9yIChhdXRvJiB0YXNrIDogbV9kYXRhVGFza1NldCkKICAgICAgICAgdGFzay5pbnZhbGlk
YXRlQW5kQ2FuY2VsKCk7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNp
ZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBpZiAobV9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzKQogICAgICAgICBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3MtPmlu
dmFsaWRhdGVBbmRDYW5jZWwoKTsKICNlbmRpZgpAQCAtMTg5LDcgKzE4OSw3IEBAIHZvaWQgTmV0
d29ya1Nlc3Npb246OnJlY3JlYXRlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRTdG9yZShDb21wbGV0
aW9uSGFuZGxlcjx2b2lkCiAgICAgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKS5kZXN0cm95U3Rv
cmVGb3JUZXN0aW5nKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAotI2lmIEVOQUJM
RShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNL
SU5HX1BSRVZFTlRJT04pCiB2b2lkIE5ldHdvcmtTZXNzaW9uOjpzZXRSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRW5hYmxlZChib29sIGVuYWJsZSkKIHsKICAgICBBU1NFUlQoIW1faXNJbnZhbGlkYXRl
ZCk7CkBAIC0zMTQsNyArMzE0LDcgQEAgdm9pZCBOZXR3b3JrU2Vzc2lvbjo6cmVzZXRDTkFNRURv
bWFpbkRhdGEoKQogICAgIG1fZmlyc3RQYXJ0eUhvc3RDTkFNRURvbWFpbnMuY2xlYXIoKTsKICAg
ICBtX3RoaXJkUGFydHlDTkFNRURvbWFpbkZvclRlc3RpbmcgPSBzdGQ6Om51bGxvcHQ7CiB9Ci0j
ZW5kaWYgLy8gRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNlbmRpZiAvLyBFTkFC
TEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKIAogdm9pZCBOZXR3b3JrU2Vzc2lv
bjo6c3RvcmVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCYmIHVuYXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50KQogewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCmluZGV4IDgyMjE1YzY5
MzBjYzZmNDNhYTRlY2I2MzBjNDk4YTM5YjUxMWJhYjQuLmZmYmY5MzIyY2Q5MjNiMTNmZWJiYWE3
ZDBlOGY4YWU4OTg4ZWYzMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Nlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtTZXNzaW9uLmgKQEAgLTk2LDcgKzk2LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCByZWNy
ZWF0ZVByaXZhdGVDbGlja01lYXN1cmVtZW50U3RvcmUoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKTsKIAotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxF
KElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgV2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkgY29uc3QgeyByZXR1cm4gbV9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmdldCgpOyB9CiAgICAgdm9pZCBzZXRSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRW5hYmxlZChib29sKTsKICAgICBib29sIGlzUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0VuYWJsZWQoKSBjb25zdDsKQEAgLTE4NiwxNCArMTg2LDE0IEBAIHB1YmxpYzoKIHByb3RlY3Rl
ZDoKICAgICBOZXR3b3JrU2Vzc2lvbihOZXR3b3JrUHJvY2VzcyYsIGNvbnN0IE5ldHdvcmtTZXNz
aW9uQ3JlYXRpb25QYXJhbWV0ZXJzJik7CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFU
SVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAg
IHZvaWQgZm9yd2FyZFJlc291cmNlTG9hZFN0YXRpc3RpY3NTZXR0aW5ncygpOwogI2VuZGlmCiAK
ICAgICBQQUw6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKICAgICBSZWY8TmV0d29ya1Byb2Nlc3M+
IG1fbmV0d29ya1Byb2Nlc3M7CiAgICAgV2Vha0hhc2hTZXQ8TmV0d29ya0RhdGFUYXNrPiBtX2Rh
dGFUYXNrU2V0OwotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5B
QkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgU3RyaW5nIG1fcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeTsKICAgICBSZWZQdHI8V2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlPiBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3M7CiAgICAgU2hvdWxkSW5jbHVk
ZUxvY2FsaG9zdCBtX3Nob3VsZEluY2x1ZGVMb2NhbGhvc3RJblJlc291cmNlTG9hZFN0YXRpc3Rp
Y3MgeyBTaG91bGRJbmNsdWRlTG9jYWxob3N0OjpZZXMgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcAppbmRleCBkOTA2MDVmMTgx
M2U5MGJmMzVhYTAxYjcwMTEyN2Q1YTlkYTQ5ZGJkLi4xNmNjNTBmNzI3ZTNiNmM0OWYyMWJlMTg5
NDliNWIwMDBjMWFmMTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2NhY2hlL05ldHdvcmtDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jYWNoZS9OZXR3b3JrQ2FjaGUuY3BwCkBAIC01MjAsNyArNTIwLDcgQEAgc3RkOjp1bmlxdWVf
cHRyPEVudHJ5PiBDYWNoZTo6c3RvcmVSZWRpcmVjdChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmIHJlcXUKIAogICAgIGF1dG8gY2FjaGVFbnRyeSA9IG1ha2VSZWRpcmVjdEVudHJ5KHJl
cXVlc3QsIHJlc3BvbnNlLCByZWRpcmVjdFJlcXVlc3QpOwogCi0jaWYgRU5BQkxFKFJFU09VUkNF
X0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVO
VElPTikKICAgICBpZiAobWF4QWdlQ2FwKSB7CiAgICAgICAgIExPRyhOZXR3b3JrQ2FjaGUsICIo
TmV0d29ya1Byb2Nlc3MpIGNhcHBpbmcgbWF4IGFnZSBmb3IgcmVkaXJlY3QgJXMgLT4gJXMiLCBy
ZXF1ZXN0LnVybCgpLnN0cmluZygpLmxhdGluMSgpLmRhdGEoKSwgcmVkaXJlY3RSZXF1ZXN0LnVy
bCgpLnN0cmluZygpLmxhdGluMSgpLmRhdGEoKSk7CiAgICAgICAgIGNhY2hlRW50cnktPmNhcE1h
eEFnZShtYXhBZ2VDYXAudmFsdWUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUVudHJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlRW50cnkuY3BwCmluZGV4IDJjZGE0ZmY2OGIx
OTNlNGQ5Y2VkNjNkMmZjYzEyOWRhMjcwYWQ5ZDUuLmJhMzlkOWUyYzI2YTAxYTkyNmIxMWFhNzk5
ZTM2NjJmYzZhZTA1NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Y2FjaGUvTmV0d29ya0NhY2hlRW50cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlRW50cnkuY3BwCkBAIC0xNTYsNyArMTU2LDcgQEAgc3Rk
Ojp1bmlxdWVfcHRyPEVudHJ5PiBFbnRyeTo6ZGVjb2RlU3RvcmFnZVJlY29yZChjb25zdCBTdG9y
YWdlOjpSZWNvcmQmIHN0b3JhZ2UKICAgICByZXR1cm4gZW50cnk7CiB9CiAKLSNpZiBFTkFCTEUo
UkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lO
R19QUkVWRU5USU9OKQogYm9vbCBFbnRyeTo6aGFzUmVhY2hlZFByZXZhbGVudFJlc291cmNlQWdl
Q2FwKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9tYXhBZ2VDYXAgJiYgV2ViQ29yZTo6Y29tcHV0
ZUN1cnJlbnRBZ2UocmVzcG9uc2UoKSwgdGltZVN0YW1wKCkpID4gbV9tYXhBZ2VDYXA7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUVu
dHJ5LmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUVu
dHJ5LmgKaW5kZXggZGVkYTg2YTQ0YjYxODQ5ZDZkYmIzZDAxZDM0MjAxOTJlNzcyOTk2NS4uOTY5
MTVjMzgwMWMzN2RkYWMzZThlNjAzMjFmODhjMjIyOWNkNTlhMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVFbnRyeS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlRW50cnkuaApAQCAt
NzEsNyArNzEsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGFzSlNPTihTdHJpbmdCdWlsZGVyJiwg
Y29uc3QgU3RvcmFnZTo6UmVjb3JkSW5mbyYpIGNvbnN0OwogCi0jaWYgRU5BQkxFKFJFU09VUkNF
X0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVO
VElPTikKICAgICBib29sIGhhc1JlYWNoZWRQcmV2YWxlbnRSZXNvdXJjZUFnZUNhcCgpIGNvbnN0
OwogICAgIHZvaWQgY2FwTWF4QWdlKGNvbnN0IFNlY29uZHMpOwogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVNwZWN1bGF0
aXZlTG9hZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtD
YWNoZVNwZWN1bGF0aXZlTG9hZC5jcHAKaW5kZXggNDAzNzRiYTA4ZmU1MWRiNGU0NmQzZGQ0YTg5
Mzk5ODk1MzBkNzYyNC4uYWQwOWRmNDRkOWFmMTJmZDQwODAzMTA1NDY4MzUzNmVhMGRjODE5MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2Fj
aGVTcGVjdWxhdGl2ZUxvYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Y2FjaGUvTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVMb2FkLmNwcApAQCAtOTEsNyArOTEsNyBAQCB2
b2lkIFNwZWN1bGF0aXZlTG9hZDo6d2lsbFNlbmRSZWRpcmVjdGVkUmVxdWVzdChSZXNvdXJjZVJl
cXVlc3QmJiByZXF1ZXN0LCBSZXNvdQogICAgIExPRyhOZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZVBy
ZWxvYWRpbmcsICJTcGVjdWxhdGl2ZSByZWRpcmVjdCAlcyAtPiAlcyIsIHJlcXVlc3QudXJsKCku
c3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgcmVkaXJlY3RSZXF1ZXN0LnVybCgpLnN0cmluZygpLnV0
ZjgoKS5kYXRhKCkpOwogCiAgICAgc3RkOjpvcHRpb25hbDxTZWNvbmRzPiBtYXhBZ2VDYXA7Ci0j
aWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdF
TlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBpZiAoYXV0byogbmV0d29ya1N0b3JhZ2VTZXNz
aW9uID0gbV9jYWNoZS0+bmV0d29ya1Byb2Nlc3MoKS5zdG9yYWdlU2Vzc2lvbihtX2NhY2hlLT5z
ZXNzaW9uSUQoKSkpCiAgICAgICAgIG1heEFnZUNhcCA9IG5ldHdvcmtTdG9yYWdlU2Vzc2lvbi0+
bWF4QWdlQ2FjaGVDYXAocmVxdWVzdCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaAppbmRleCA5
MzhiZjhmOGZlNGNlZDFlYzgwMjMzYmM5YjlhZGM5ZDJhM2MyMjQzLi5iOWFiMGRlZWJiOWY5Mjdj
NzM3NDJlODZhMGJlN2Y5NzE2MGJkNmZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLmgKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oCkBAIC05NCw3ICs5
NCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCB0cnlQYXNzd29yZEJhc2VkQXV0aGVudGljYXRpb24o
Y29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmLCBDaGFsbGVuZ2VDb21wbGV0
aW9uSGFuZGxlciYpOwogICAgIHZvaWQgYXBwbHlTbmlmZmluZ1BvbGljaWVzQW5kQmluZFJlcXVl
c3RUb0luZmVyZmFjZUlmTmVlZGVkKFJldGFpblB0cjxOU1VSTFJlcXVlc3Q+JiwgYm9vbCBzaG91
bGRDb250ZW50U25pZmYsIGJvb2wgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYpOwogCi0jaWYg
RU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRf
VFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBzdGF0aWMgTlNIVFRQQ29va2llU3RvcmFnZSAqc3Rh
dGVsZXNzQ29va2llU3RvcmFnZSgpOwogI2lmIEhBVkUoQ0ZORVRXT1JLX0NOQU1FX0FORF9DT09L
SUVfVFJBTlNGT1JNX1NQSSkKICAgICB2b2lkIHVwZGF0ZUZpcnN0UGFydHlJbmZvRm9yU2Vzc2lv
bihjb25zdCBVUkwmKTsKQEAgLTExNCw3ICsxMTQsNyBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyIG1fcGFnZUlEOwogICAgIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgbV93
ZWJQYWdlUHJveHlJRDsKIAotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisj
aWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgYm9vbCBtX2hh
c0JlZW5TZXRUb1VzZVN0YXRlbGVzc0Nvb2tpZVN0b3JhZ2UgeyBmYWxzZSB9OwogI2lmIEhBVkUo
Q0ZORVRXT1JLX0NOQU1FX0FORF9DT09LSUVfVFJBTlNGT1JNX1NQSSkKICAgICBTZWNvbmRzIG1f
YWdlQ2FwRm9yQ05BTUVDbG9ha2VkQ29va2llcyB7IDI0X2ggKiA3IH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1t
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2Nv
YS5tbQppbmRleCA0ZTM0ZjVlZWNjODgzNzg1MzI2OTAxNGNjNGE2ZjllMmVhMmJlYzUxLi5lNmY0
YzE0YTFhZDI0NTlmOWMyYWEwNjc3MTE1ZGQ5ZjQ4YzhhYjQ2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2Eu
bW0KQEAgLTEyNSw3ICsxMjUsNyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza0NvY29hOjphcHBseVNu
aWZmaW5nUG9saWNpZXNBbmRCaW5kUmVxdWVzdFRvSW5mZXJmYWNlSWZOZWVkZQogICAgIG5zUmVx
dWVzdCA9IG11dGFibGVSZXF1ZXN0LmF1dG9yZWxlYXNlKCk7CiB9CiAKLSNpZiBFTkFCTEUoUkVT
T1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19Q
UkVWRU5USU9OKQogTlNIVFRQQ29va2llU3RvcmFnZSAqTmV0d29ya0RhdGFUYXNrQ29jb2E6OnN0
YXRlbGVzc0Nvb2tpZVN0b3JhZ2UoKQogewogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSZXRh
aW5QdHI8TlNIVFRQQ29va2llU3RvcmFnZT4+IHN0YXRlbGVzc0Nvb2tpZVN0b3JhZ2U7CkBAIC0z
MzQsNyArMzM0LDcgQEAgTmV0d29ya0RhdGFUYXNrQ29jb2E6Ok5ldHdvcmtEYXRhVGFza0NvY29h
KE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVQKICNlbmRpZgogCiAgICAgYm9v
bCBzaG91bGRCbG9ja0Nvb2tpZXMgPSBmYWxzZTsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9T
VEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQog
ICAgIHNob3VsZEJsb2NrQ29va2llcyA9IG1fc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgPT0gV2Vi
Q29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OkVwaGVtZXJhbFN0YXRlbGVzczsKICAgICBp
ZiAoYXV0byogbmV0d29ya1N0b3JhZ2VTZXNzaW9uID0gc2Vzc2lvbi5uZXR3b3JrU3RvcmFnZVNl
c3Npb24oKSkgewogICAgICAgICBpZiAoIXNob3VsZEJsb2NrQ29va2llcykKQEAgLTM3Niw3ICsz
NzYsNyBAQCBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6TmV0d29ya0RhdGFUYXNrQ29jb2EoTmV0d29y
a1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXRhVAogI2VuZGlmCiAgICAgfQogCi0jaWYgRU5B
QkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJB
Q0tJTkdfUFJFVkVOVElPTikKICNpZiBIQVZFKENGTkVUV09SS19DTkFNRV9BTkRfQ09PS0lFX1RS
QU5TRk9STV9TUEkpCiAgICAgYXBwbHlDb29raWVQb2xpY3lGb3JUaGlyZFBhcnR5Q05BTUVDbG9h
a2luZyhyZXF1ZXN0KTsKICNlbmRpZgpAQCAtNTIxLDcgKzUyMSw3IEBAIHZvaWQgTmV0d29ya0Rh
dGFUYXNrQ29jb2E6OndpbGxQZXJmb3JtSFRUUFJlZGlyZWN0aW9uKFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UmCiAgICAgaWYgKGlzVG9wTGV2ZWxOYXZpZ2F0aW9uKCkpCiAgICAgICAgIHJlcXVl
c3Quc2V0Rmlyc3RQYXJ0eUZvckNvb2tpZXMocmVxdWVzdC51cmwoKSk7CiAKLSNpZiBFTkFCTEUo
UkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lO
R19QUkVWRU5USU9OKQogI2lmIEhBVkUoQ0ZORVRXT1JLX0NOQU1FX0FORF9DT09LSUVfVFJBTlNG
T1JNX1NQSSkKICAgICBhcHBseUNvb2tpZVBvbGljeUZvclRoaXJkUGFydHlDTkFNRUNsb2FraW5n
KHJlcXVlc3QpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0KaW5kZXggZjNjNjZmOWNmOTc0ZjVl
ODJiYWE2MjVhMjc4NDYyNTM3ZWJkYmMzNC4uYjJiZGY1OWEwNTc4NGQxNTgzZmI3MDI3NjVlY2I0
MzhlZmMwN2VhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2Nv
YS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQpAQCAtNTE1LDcgKzUxNSw3IEBAIC0gKHZv
aWQpVVJMU2Vzc2lvbjooTlNVUkxTZXNzaW9uICopc2Vzc2lvbiB0YXNrOihOU1VSTFNlc3Npb25U
YXNrICopdGFzayBuZWVkTmV3CiAgICAgY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6Y3JlYXRl
SFRUUEJvZHlOU0lucHV0U3RyZWFtKCpib2R5KS5nZXQoKSk7CiB9CiAKLSNpZiBFTkFCTEUoUkVT
T1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19Q
UkVWRU5USU9OKQogc3RhdGljIE5TVVJMUmVxdWVzdCogZG93bmdyYWRlUmVxdWVzdChOU1VSTFJl
cXVlc3QgKnJlcXVlc3QpCiB7CiAgICAgYXV0byBuc011dGFibGVSZXF1ZXN0ID0gYWRvcHROUyhb
cmVxdWVzdCBtdXRhYmxlQ29weV0pOwpAQCAtNTc5LDcgKzU3OSw3IEBAIC0gKHZvaWQpVVJMU2Vz
c2lvbjooTlNVUkxTZXNzaW9uICopc2Vzc2lvbiB0YXNrOihOU1VSTFNlc3Npb25UYXNrICopdGFz
ayB3aWxsUGVyCiAKICAgICBpZiAoYXV0byogbmV0d29ya0RhdGFUYXNrID0gW3NlbGYgZXhpc3Rp
bmdUYXNrOnRhc2tdKSB7CiAgICAgICAgIGJvb2wgc2hvdWxkSWdub3JlSFNUUyA9IGZhbHNlOwot
I2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElH
RU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgICAgIGlmIChhdXRvKiBzZXNzaW9uQ29jb2Eg
PSBuZXR3b3JrRGF0YVRhc2stPm5ldHdvcmtTZXNzaW9uKCkpIHsKICAgICAgICAgICAgIGF1dG8q
IHN0b3JhZ2VTZXNzaW9uID0gc2Vzc2lvbkNvY29hLT5uZXR3b3JrUHJvY2VzcygpLnN0b3JhZ2VT
ZXNzaW9uKHNlc3Npb25Db2NvYS0+c2Vzc2lvbklEKCkpOwogICAgICAgICAgICAgTlNVUkwgKmZp
cnN0UGFydHlGb3JDb29raWVzID0gbmV0d29ya0RhdGFUYXNrLT5pc1RvcExldmVsTmF2aWdhdGlv
bigpID8gcmVxdWVzdC5VUkwgOiByZXF1ZXN0Lm1haW5Eb2N1bWVudFVSTDsKQEAgLTYzOCw3ICs2
MzgsNyBAQCAtICh2b2lkKVVSTFNlc3Npb246KE5TVVJMU2Vzc2lvbiAqKXNlc3Npb24gdGFzazoo
TlNVUkxTZXNzaW9uVGFzayopdGFzayBfc2NoZW1lVQogCiAgICAgaWYgKGF1dG8qIG5ldHdvcmtE
YXRhVGFzayA9IFtzZWxmIGV4aXN0aW5nVGFzazp0YXNrXSkgewogICAgICAgICBib29sIHNob3Vs
ZElnbm9yZUhTVFMgPSBmYWxzZTsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNT
KQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgICAgICBp
ZiAoYXV0byogc2Vzc2lvbkNvY29hID0gbmV0d29ya0RhdGFUYXNrLT5uZXR3b3JrU2Vzc2lvbigp
KSB7CiAgICAgICAgICAgICBhdXRvKiBzdG9yYWdlU2Vzc2lvbiA9IHNlc3Npb25Db2NvYS0+bmV0
d29ya1Byb2Nlc3MoKS5zdG9yYWdlU2Vzc2lvbihzZXNzaW9uQ29jb2EtPnNlc3Npb25JRCgpKTsK
ICAgICAgICAgICAgIHNob3VsZElnbm9yZUhTVFMgPSBzY2hlbWVXYXNVcGdyYWRlZER1ZVRvRHlu
YW1pY0hTVFMocmVxdWVzdCkKQEAgLTE0MzgsNyArMTQzOCw3IEBAIFNlc3Npb25XcmFwcGVyJiBO
ZXR3b3JrU2Vzc2lvbkNvY29hOjpzZXNzaW9uV3JhcHBlckZvclRhc2soV2ViUGFnZVByb3h5SWRl
bnRpZmllCiAgICAgYXV0byBzaG91bGRCZUNvbnNpZGVyZWRBcHBCb3VuZCA9IGlzTmF2aWdhdGlu
Z1RvQXBwQm91bmREb21haW4gPyAqaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbiA6IE5hdmln
YXRpbmdUb0FwcEJvdW5kRG9tYWluOjpZZXM7CiAgICAgaWYgKGlzUGFyZW50UHJvY2Vzc0FGdWxs
V2ViQnJvd3NlcihuZXR3b3JrUHJvY2VzcygpKSkKICAgICAgICAgc2hvdWxkQmVDb25zaWRlcmVk
QXBwQm91bmQgPSBOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbjo6Tm87Ci0jaWYgRU5BQkxFKFJF
U09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdf
UFJFVkVOVElPTikKICAgICBpZiAoYXV0byogc3RvcmFnZVNlc3Npb24gPSBuZXR3b3JrU3RvcmFn
ZVNlc3Npb24oKSkgewogICAgICAgICBhdXRvIGZpcnN0UGFydHkgPSBXZWJDb3JlOjpSZWdpc3Ry
YWJsZURvbWFpbihyZXF1ZXN0LmZpcnN0UGFydHlGb3JDb29raWVzKCkpOwogICAgICAgICBpZiAo
c3RvcmFnZVNlc3Npb24tPnNob3VsZEJsb2NrVGhpcmRQYXJ0eUNvb2tpZXNCdXRLZWVwRmlyc3RQ
YXJ0eUNvb2tpZXNGb3IoZmlyc3RQYXJ0eSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2N1cmwvTmV0d29ya0RhdGFUYXNrQ3VybC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL2N1cmwvTmV0d29ya0RhdGFUYXNrQ3VybC5jcHAKaW5kZXggZTlmOWIy
YzI1Nzg2NmQ5MzAwZTc5NzgxY2JlZjNhZGRjNTljZDlkZS4uNzE1NzAxYWE1YTUzZjVhN2VhODMz
NzcyMTcwZDU2ZmFhNWEwMTIxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jdXJsL05ldHdvcmtEYXRhVGFza0N1cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY3VybC9OZXR3b3JrRGF0YVRhc2tDdXJsLmNwcApAQCAtNjYsNyArNjYsNyBA
QCBOZXR3b3JrRGF0YVRhc2tDdXJsOjpOZXR3b3JrRGF0YVRhc2tDdXJsKE5ldHdvcmtTZXNzaW9u
JiBzZXNzaW9uLCBOZXR3b3JrRGF0YVRhcwogICAgICAgICB9CiAgICAgfQogCi0jaWYgRU5BQkxF
KFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJ
TkdfUFJFVkVOVElPTikKICAgICBpZiAoc2hvdWxkQmxvY2tDb29raWVzKHJlcXVlc3QpKQogICAg
ICAgICBibG9ja0Nvb2tpZXMoKTsKICNlbmRpZgpAQCAtMjk2LDcgKzI5Niw3IEBAIHZvaWQgTmV0
d29ya0RhdGFUYXNrQ3VybDo6d2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb24oKQogICAgICAgICB9
CiAgICAgfQogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVENTKQorI2lmIEVOQUJM
RShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIGlmICghbV9ibG9ja2luZ0Nv
b2tpZXMgJiYgc2hvdWxkQmxvY2tDb29raWVzKHJlcXVlc3QpKQogICAgICAgICBibG9ja0Nvb2tp
ZXMoKTsKICNlbmRpZgpAQCAtNDc3LDIxICs0NzcsMjEgQEAgU3RyaW5nIE5ldHdvcmtEYXRhVGFz
a0N1cmw6OnN1Z2dlc3RlZEZpbGVuYW1lKCkgY29uc3QKIAogdm9pZCBOZXR3b3JrRGF0YVRhc2tD
dXJsOjpibG9ja0Nvb2tpZXMoKQogewotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJ
Q1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgbV9i
bG9ja2luZ0Nvb2tpZXMgPSB0cnVlOwogI2VuZGlmCiB9CiAKIHZvaWQgTmV0d29ya0RhdGFUYXNr
Q3VybDo6dW5ibG9ja0Nvb2tpZXMoKQogewotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJ
U1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAg
bV9ibG9ja2luZ0Nvb2tpZXMgPSBmYWxzZTsKICNlbmRpZgogfQogCiBib29sIE5ldHdvcmtEYXRh
VGFza0N1cmw6OnNob3VsZEJsb2NrQ29va2llcyhjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QpCiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNp
ZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBib29sIHNob3Vs
ZEJsb2NrQ29va2llcyA9IG1fc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgPT0gV2ViQ29yZTo6U3Rv
cmVkQ3JlZGVudGlhbHNQb2xpY3k6OkVwaGVtZXJhbFN0YXRlbGVzczsKIAogICAgIGlmICghc2hv
dWxkQmxvY2tDb29raWVzICYmIG1fc2Vzc2lvbi0+bmV0d29ya1N0b3JhZ2VTZXNzaW9uKCkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2N1cmwvTmV0d29ya1Nlc3Np
b25DdXJsLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY3VybC9OZXR3b3JrU2Vz
c2lvbkN1cmwuY3BwCmluZGV4IGNmNmViNGQ3MjQwMTA5YzVmNTg5ZTBkM2U1ZDAyMjVlYjFjMzQ5
MDguLjU2ZDU1ZDY2ZTZiNmEwNmRlODZlODAyZjk1ZDg4ODNhMmRjNmViZWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY3VybC9OZXR3b3JrU2Vzc2lvbkN1cmwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY3VybC9OZXR3b3JrU2Vzc2lvbkN1
cmwuY3BwCkBAIC00NCw3ICs0NCw3IEBAIE5ldHdvcmtTZXNzaW9uQ3VybDo6TmV0d29ya1Nlc3Np
b25DdXJsKE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcywgTmV0d29ya1NlCiAgICAgICAg
IG5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpLT5zZXRDb29raWVEYXRhYmFzZShtYWtlVW5pcXVlUmVm
PENvb2tpZUphckRCPihwYXJhbWV0ZXJzLmNvb2tpZVBlcnNpc3RlbnRTdG9yYWdlRmlsZSkpOwog
ICAgIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpLT5zZXRQcm94eVNldHRpbmdzKFdURk1vdmUocGFy
YW1ldGVycy5wcm94eVNldHRpbmdzKSk7CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFU
SVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAg
IG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSA9IHBhcmFtZXRlcnMucmVzb3VyY2VM
b2FkU3RhdGlzdGljc1BhcmFtZXRlcnMuZGlyZWN0b3J5OwogICAgIG1fc2hvdWxkSW5jbHVkZUxv
Y2FsaG9zdEluUmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IHBhcmFtZXRlcnMucmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1BhcmFtZXRlcnMuc2hvdWxkSW5jbHVkZUxvY2FsaG9zdCA/IFNob3VsZEluY2x1
ZGVMb2NhbGhvc3Q6OlllcyA6IFNob3VsZEluY2x1ZGVMb2NhbGhvc3Q6Ok5vOwogICAgIG1fZW5h
YmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZSA9IHBhcmFtZXRlcnMucmVzb3VyY2VM
b2FkU3RhdGlzdGljc1BhcmFtZXRlcnMuZW5hYmxlRGVidWdNb2RlID8gRW5hYmxlUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RlYnVnTW9kZTo6WWVzIDogRW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RlYnVnTW9kZTo6Tm87CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHAKaW5kZXggMWEyOGNkYjc5MzdmMmM3YmVh
NDI3OWJmMjAwMWQzMmVhNmQ2N2M0NC4uMTc1MjgzMTMyYzBjYTkzZWI0ZTZjNGY3YTljNDY2ZTdi
NmIyMjc2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05l
dHdvcmtEYXRhVGFza1NvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
c291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcApAQCAtMTg5LDcgKzE4OSw3IEBAIHZvaWQgTmV0
d29ya0RhdGFUYXNrU291cDo6Y3JlYXRlUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0
LCBXYXNCbG9ja2luZ0NvCiAgICAgfQogICAgIHNvdXBfbWVzc2FnZV9zZXRfZmxhZ3MobV9zb3Vw
TWVzc2FnZS5nZXQoKSwgc3RhdGljX2Nhc3Q8U291cE1lc3NhZ2VGbGFncz4oc291cF9tZXNzYWdl
X2dldF9mbGFncyhtX3NvdXBNZXNzYWdlLmdldCgpKSB8IG1lc3NhZ2VGbGFncykpOwogCi0jaWYg
RU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRf
VFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBib29sIHNob3VsZEJsb2NrQ29va2llcyA9IHdhc0Js
b2NraW5nQ29va2llcyA9PSBXYXNCbG9ja2luZ0Nvb2tpZXM6OlllcyA/IHRydWUgOiBtX3N0b3Jl
ZENyZWRlbnRpYWxzUG9saWN5ID09IFN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpFcGhlbWVyYWxT
dGF0ZWxlc3M7CiAgICAgaWYgKCFzaG91bGRCbG9ja0Nvb2tpZXMpIHsKICAgICAgICAgaWYgKGF1
dG8qIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbiA9IG1fc2Vzc2lvbi0+bmV0d29ya1N0b3JhZ2VTZXNz
aW9uKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZXNvdXJjZUxvYWRTdGF0
aXN0aWNzUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1BhcmFtZXRlcnMuaAppbmRleCAyODhhYzdkNTFjNTY2MDMxNjgwMGY2NmExMTExYzgx
MjE0NmUwZDI1Li4wNjBmYjRkYWY5YTg2NDljYzk4ZDk5NzE0ZDE1MjJiNDk1MmRhZWFkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1l
dGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NQ
YXJhbWV0ZXJzLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgc3RydWN0IFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NQYXJhbWV0ZXJzIHsKICAgICBib29sIGVuYWJsZUxvZ1Rlc3RpbmdFdmVudCB7IGZhbHNlIH07
CiAgICAgYm9vbCBzaG91bGRJbmNsdWRlTG9jYWxob3N0IHsgdHJ1ZSB9OwogICAgIGJvb2wgZW5h
YmxlRGVidWdNb2RlIHsgZmFsc2UgfTsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNU
SUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIFdl
YkNvcmU6OlRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGUgdGhpcmRQYXJ0eUNvb2tpZUJsb2Nr
aW5nTW9kZSB7IFdlYkNvcmU6OlRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGU6OkFsbCB9Owog
ICAgIFdlYkNvcmU6OlNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRFbmFibGVkIHNhbWVTaXRlU3Ry
aWN0RW5mb3JjZW1lbnRFbmFibGVkIHsgV2ViQ29yZTo6U2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVu
dEVuYWJsZWQ6Ok5vIH07CiAjZW5kaWYKQEAgLTY0LDcgKzY0LDcgQEAgc3RydWN0IFJlc291cmNl
TG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzIHsKICAgICAgICAgZW5jb2RlciA8PCBlbmFibGVMb2dU
ZXN0aW5nRXZlbnQ7CiAgICAgICAgIGVuY29kZXIgPDwgc2hvdWxkSW5jbHVkZUxvY2FsaG9zdDsK
ICAgICAgICAgZW5jb2RlciA8PCBlbmFibGVEZWJ1Z01vZGU7Ci0jaWYgRU5BQkxFKFJFU09VUkNF
X0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVO
VElPTikKICAgICAgICAgZW5jb2RlciA8PCB0aGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlOwog
ICAgICAgICBlbmNvZGVyIDw8IHNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRFbmFibGVkOwogI2Vu
ZGlmCkBAIC0xMjEsNyArMTIxLDcgQEAgc3RydWN0IFJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJh
bWV0ZXJzIHsKICAgICAgICAgaWYgKCFlbmFibGVEZWJ1Z01vZGUpCiAgICAgICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OwogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykK
KyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICAgICAgc3Rk
OjpvcHRpb25hbDxXZWJDb3JlOjpUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlPiB0aGlyZFBh
cnR5Q29va2llQmxvY2tpbmdNb2RlOwogICAgICAgICBkZWNvZGVyID4+IHRoaXJkUGFydHlDb29r
aWVCbG9ja2luZ01vZGU7CiAgICAgICAgIGlmICghdGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9k
ZSkKQEAgLTE2Myw3ICsxNjMsNyBAQCBzdHJ1Y3QgUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFt
ZXRlcnMgewogICAgICAgICAgICAgV1RGTW92ZSgqZW5hYmxlTG9nVGVzdGluZ0V2ZW50KSwKICAg
ICAgICAgICAgIFdURk1vdmUoKnNob3VsZEluY2x1ZGVMb2NhbGhvc3QpLAogICAgICAgICAgICAg
V1RGTW92ZSgqZW5hYmxlRGVidWdNb2RlKSwKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFU
SVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAg
ICAgICAgICAgV1RGTW92ZSgqdGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZSksCiAgICAgICAg
ICAgICBXVEZNb3ZlKCpzYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZCksCiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5jcHAKaW5kZXggYjBkNGJlZTNmMTI1ZTUxODEyNjI2NzRiMTUwMjI5YjhjMTU2YTY1Yi4u
MTZlNGIzOWRkMDM0MjI1NjA4MDE5MjEyNDkzNmE0NDk3YzdiNjQxNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAg
LTEzOCw3ICsxMzgsNyBAQCB2b2lkIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29k
ZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCB3YXlsYW5kQ29t
cG9zaXRvckRpc3BsYXlOYW1lOwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9T
VEFUSVNUSUNTKSAmJiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKyNpZiBFTkFCTEUoSU5URUxMSUdF
TlRfVFJBQ0tJTkdfUFJFVkVOVElPTikgJiYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgZW5j
b2RlciA8PCBzaG91bGRMb2dVc2VySW50ZXJhY3Rpb247CiAjZW5kaWYKIApAQCAtNDE2LDcgKzQx
Niw3IEBAIGJvb2wgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVj
b2RlciYgZGVjb2RlciwgV2ViUHJvY2Vzc0NyZWF0CiAgICAgICAgIHJldHVybiBmYWxzZTsKICNl
bmRpZgogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykgJiYgIVJFTEVBU0Vf
TE9HX0RJU0FCTEVECisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04p
ICYmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1l
dGVycy5zaG91bGRMb2dVc2VySW50ZXJhY3Rpb24pKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuaAppbmRleCBmNTEzMTYzODY4ZTY5NTVkZjcyMDg0NmYxNDZmYjUzN2QwNjdiODYy
Li5iY2NjZjFlZjE5NDQ0Zjc0YzFlYmMyMWM1NWEzOWYxZjhmNzMyNWM0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC0x
OTAsNyArMTkwLDcgQEAgc3RydWN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgewogICAg
IFdlYkNvcmU6OlNjcmVlblByb3BlcnRpZXMgc2NyZWVuUHJvcGVydGllczsKICNlbmRpZgogCi0j
aWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykgJiYgIVJFTEVBU0VfTE9HX0RJU0FC
TEVECisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pICYmICFSRUxF
QVNFX0xPR19ESVNBQkxFRAogICAgIGJvb2wgc2hvdWxkTG9nVXNlckludGVyYWN0aW9uIHsgZmFs
c2UgfTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9j
ZXNzRGF0YVN0b3JlUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vz
c0RhdGFTdG9yZVBhcmFtZXRlcnMuaAppbmRleCAxMjliZjg2NjNiYjdkMTdmZGE4ZmJiODAwY2Jm
YTBhY2M2NTQ5NTc5Li5lMmQ2N2IyYzRkMjNlOTRjMDZhZGYyYTFmY2MyMTk5ZGM4NjdiMTExIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzRGF0YVN0b3JlUGFyYW1l
dGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NEYXRhU3RvcmVQYXJh
bWV0ZXJzLmgKQEAgLTQ2LDcgKzQ2LDcgQEAgc3RydWN0IFdlYlByb2Nlc3NEYXRhU3RvcmVQYXJh
bWV0ZXJzIHsKICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgbWVkaWFLZXlTdG9yYWdlRGly
ZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOwogICAgIFN0cmluZyBqYXZhU2NyaXB0Q29uZmlndXJhdGlv
bkRpcmVjdG9yeTsKICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgamF2YVNjcmlwdENvbmZp
Z3VyYXRpb25EaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xP
QURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElP
TikKICAgICBXZWJDb3JlOjpUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlIHRoaXJkUGFydHlD
b29raWVCbG9ja2luZ01vZGUgeyBXZWJDb3JlOjpUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2Rl
OjpBbGwgfTsKICAgICBIYXNoU2V0PFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluPiBkb21haW5z
V2l0aFVzZXJJbnRlcmFjdGlvbjsKICAgICBIYXNoTWFwPFRvcEZyYW1lRG9tYWluLCBTdWJSZXNv
dXJjZURvbWFpbj4gZG9tYWluc1dpdGhTdG9yYWdlQWNjZXNzUXVpcms7CkBAIC03NCw3ICs3NCw3
IEBAIHZvaWQgV2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnM6OmVuY29kZShFbmNvZGVyJiBl
bmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgbWVkaWFLZXlTdG9yYWdlRGlyZWN0b3J5RXh0
ZW5zaW9uSGFuZGxlOwogICAgIGVuY29kZXIgPDwgamF2YVNjcmlwdENvbmZpZ3VyYXRpb25EaXJl
Y3Rvcnk7CiAgICAgZW5jb2RlciA8PCBqYXZhU2NyaXB0Q29uZmlndXJhdGlvbkRpcmVjdG9yeUV4
dGVuc2lvbkhhbmRsZTsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lm
IEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIGVuY29kZXIgPDwg
dGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZTsKICAgICBlbmNvZGVyIDw8IGRvbWFpbnNXaXRo
VXNlckludGVyYWN0aW9uOwogICAgIGVuY29kZXIgPDwgZG9tYWluc1dpdGhTdG9yYWdlQWNjZXNz
UXVpcms7CkBAIC0xMzQsNyArMTM0LDcgQEAgc3RkOjpvcHRpb25hbDxXZWJQcm9jZXNzRGF0YVN0
b3JlUGFyYW1ldGVycz4gV2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnM6OmRlY28KICAgICBp
ZiAoIWphdmFTY3JpcHRDb25maWd1cmF0aW9uRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKQogICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICAKLSNpZiBFTkFCTEUoUkVTT1VSQ0Vf
TE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5U
SU9OKQogICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5n
TW9kZT4gdGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZTsKICAgICBkZWNvZGVyID4+IHRoaXJk
UGFydHlDb29raWVCbG9ja2luZ01vZGU7CiAgICAgaWYgKCF0aGlyZFBhcnR5Q29va2llQmxvY2tp
bmdNb2RlKQpAQCAtMTc2LDcgKzE3Niw3IEBAIHN0ZDo6b3B0aW9uYWw8V2ViUHJvY2Vzc0RhdGFT
dG9yZVBhcmFtZXRlcnM+IFdlYlByb2Nlc3NEYXRhU3RvcmVQYXJhbWV0ZXJzOjpkZWNvCiAgICAg
ICAgIFdURk1vdmUoKm1lZGlhS2V5U3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSksCiAg
ICAgICAgIFdURk1vdmUoamF2YVNjcmlwdENvbmZpZ3VyYXRpb25EaXJlY3RvcnkpLAogICAgICAg
ICBXVEZNb3ZlKCpqYXZhU2NyaXB0Q29uZmlndXJhdGlvbkRpcmVjdG9yeUV4dGVuc2lvbkhhbmRs
ZSksCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5U
RUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICAgICAgKnRoaXJkUGFydHlDb29raWVC
bG9ja2luZ01vZGUsCiAgICAgICAgIFdURk1vdmUoKmRvbWFpbnNXaXRoVXNlckludGVyYWN0aW9u
KSwKICAgICAgICAgV1RGTW92ZSgqZG9tYWluc1dpdGhTdG9yYWdlQWNjZXNzUXVpcmspLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGEuY3Bw
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGEuY3BwCmluZGV4
IGQ4YTQ1ODQzOTM4ZDc4MzBiZDcwM2RmY2U4NWY1NGNjODFmODc4ZDguLmFhNzM5MGQ2YTRjM2Uy
ODNhNmMxYzg2ZjkxYjFmNzYxYjAwNGQ0YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YS5jcHAKQEAgLTY5LDcgKzY5LDcgQEAgdm9pZCBXZWJz
aXRlRGF0YTo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVy
IDw8IGhvc3ROYW1lc1dpdGhQbHVnaW5EYXRhOwogI2VuZGlmCiAgICAgZW5jb2RlciA8PCBob3N0
TmFtZXNXaXRoSFNUU0NhY2hlOwotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1Mp
CisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgZW5jb2Rl
ciA8PCByZWdpc3RyYWJsZURvbWFpbnNXaXRoUmVzb3VyY2VMb2FkU3RhdGlzdGljczsKICNlbmRp
ZgogfQpAQCAtODYsNyArODYsNyBAQCBib29sIFdlYnNpdGVEYXRhOjpkZWNvZGUoSVBDOjpEZWNv
ZGVyJiBkZWNvZGVyLCBXZWJzaXRlRGF0YSYgcmVzdWx0KQogI2VuZGlmCiAgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShyZXN1bHQuaG9zdE5hbWVzV2l0aEhTVFNDYWNoZSkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJM
RShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUocmVzdWx0LnJlZ2lzdHJhYmxlRG9tYWluc1dpdGhSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCkBAIC0xNjUsNyArMTY1LDcgQEAgV2Vic2l0
ZURhdGEgV2Vic2l0ZURhdGE6Omlzb2xhdGVkQ29weSgpIGNvbnN0CiAgICAgICAgIGNyb3NzVGhy
ZWFkQ29weShob3N0TmFtZXNXaXRoUGx1Z2luRGF0YSksCiAjZW5kaWYKICAgICAgICAgY3Jvc3NU
aHJlYWRDb3B5KGhvc3ROYW1lc1dpdGhIU1RTQ2FjaGUpLAotI2lmIEVOQUJMRShSRVNPVVJDRV9M
T0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJ
T04pCiAgICAgICAgIGNyb3NzVGhyZWFkQ29weShyZWdpc3RyYWJsZURvbWFpbnNXaXRoUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcyksCiAjZW5kaWYKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGEuaCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhLmgKaW5kZXggNjQ5MTQyNjZlNGFmNjg3NmRiMGNl
NTRlZGVlMmUwMzFhOTVlMmE4OS4uNDQ0YjFhZTEzMTkzOTBhNzEwZjdjNzQ0YzY0OTA2OWNkMGU5
MzQwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vic2l0ZURhdGEvV2Vic2l0
ZURhdGEuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0
YS5oCkBAIC02Myw3ICs2Myw3IEBAIHN0cnVjdCBXZWJzaXRlRGF0YSB7CiAgICAgSGFzaFNldDxT
dHJpbmc+IGhvc3ROYW1lc1dpdGhQbHVnaW5EYXRhOwogI2VuZGlmCiAgICAgSGFzaFNldDxTdHJp
bmc+IGhvc3ROYW1lc1dpdGhIU1RTQ2FjaGU7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RB
VElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAg
ICBIYXNoU2V0PFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluPiByZWdpc3RyYWJsZURvbWFpbnNX
aXRoUmVzb3VyY2VMb2FkU3RhdGlzdGljczsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0MvV0tQYWdlLmNwcAppbmRleCA4NTE2M2Y0NDUwYWNlM2QzNmQ1OTcxNjk2ZDQ4MWVi
NzgwYWVkMDFjLi4zNDlmOTAwZTBjNzQzMmEyMWFjMDZiYzRkMmViMzg5OWI1Y2JlNDZmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKQEAgLTMxNTgsNyArMzE1OCw3
IEBAIFdLX0VYUE9SVCBib29sIFdLUGFnZUlzTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJF
bmFibGVkKFdLUGFnZVJlZikKIHZvaWQgV0tQYWdlTG9hZGVkU3VicmVzb3VyY2VEb21haW5zKFdL
UGFnZVJlZiBwYWdlUmVmLCBXS1BhZ2VMb2FkZWRTdWJyZXNvdXJjZURvbWFpbnNGdW5jdGlvbiBj
YWxsYmFjaywgdm9pZCogY2FsbGJhY2tDb250ZXh0KQogewogICAgIENSQVNIX0lGX1NVU1BFTkRF
RDsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRF
TExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIHRvSW1wbChwYWdlUmVmKS0+Z2V0TG9h
ZGVkU3VicmVzb3VyY2VEb21haW5zKFtjYWxsYmFja0NvbnRleHQsIGNhbGxiYWNrXShWZWN0b3I8
UmVnaXN0cmFibGVEb21haW4+JiYgZG9tYWlucykgewogICAgICAgICBWZWN0b3I8UmVmUHRyPEFQ
STo6T2JqZWN0Pj4gYXBpRG9tYWlucyA9IFdURjo6bWFwKGRvbWFpbnMsIFtdKGF1dG8mIGRvbWFp
bikgewogICAgICAgICAgICAgcmV0dXJuIFJlZlB0cjxBUEk6Ok9iamVjdD4oQVBJOjpTdHJpbmc6
OmNyZWF0ZShXVEZNb3ZlKGRvbWFpbi5zdHJpbmcoKSkpKTsKQEAgLTMxNzQsNyArMzE3NCw3IEBA
IHZvaWQgV0tQYWdlTG9hZGVkU3VicmVzb3VyY2VEb21haW5zKFdLUGFnZVJlZiBwYWdlUmVmLCBX
S1BhZ2VMb2FkZWRTdWJyZXNvdXJjZURvCiB2b2lkIFdLUGFnZUNsZWFyTG9hZGVkU3VicmVzb3Vy
Y2VEb21haW5zKFdLUGFnZVJlZiBwYWdlUmVmKQogewogICAgIENSQVNIX0lGX1NVU1BFTkRFRDsK
LSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJ
R0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIHRvSW1wbChwYWdlUmVmKS0+Y2xlYXJMb2Fk
ZWRTdWJyZXNvdXJjZURvbWFpbnMoKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHBhZ2VSZWYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0
YVN0b3JlUmVmLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURh
dGFTdG9yZVJlZi5jcHAKaW5kZXggOGYxYmZhYTMwN2ExYzAxYjAwYzhkMDkxYWU2Mjc1OTg1Y2Iy
ZmY0Ni4uOGRmYTg4YzY2MzRlZTAwZjAyMzlkODVlOGI1MDVkOWQ5NWExM2Q5OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVS
ZWYuY3BwCkBAIC04Miw3ICs4Miw3IEBAIFdLUHJvY2Vzc0lEIFdLV2Vic2l0ZURhdGFTdG9yZUdl
dE5ldHdvcmtQcm9jZXNzSWRlbnRpZmllcihXS1dlYnNpdGVEYXRhU3RvcmVSZWYKIAogdm9pZCBX
S1dlYnNpdGVEYXRhU3RvcmVSZW1vdmVJVFBEYXRhRm9yRG9tYWluKFdLV2Vic2l0ZURhdGFTdG9y
ZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhvc3QsIHZvaWQqIGNvbnRleHQsIFdLV2Vi
c2l0ZURhdGFTdG9yZVJlbW92ZUlUUERhdGFGb3JEb21haW5GdW5jdGlvbiBjYWxsYmFjaykKIHsK
LSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJ
R0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIFdlYktpdDo6V2Vic2l0ZURhdGFSZWNvcmQg
ZGF0YVJlY29yZDsKICAgICBkYXRhUmVjb3JkLnR5cGVzLmFkZChXZWJLaXQ6OldlYnNpdGVEYXRh
VHlwZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljcyk7CiAgICAgZGF0YVJlY29yZC5hZGRSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzUmVnaXN0cmFibGVEb21haW4oV2ViQ29yZTo6UmVnaXN0cmFibGVEb21h
aW46OnVuY2hlY2tlZENyZWF0ZUZyb21Ib3N0KFdlYktpdDo6dG9JbXBsKGhvc3QpLT5zdHJpbmco
KSkpOwpAQCAtOTksNyArOTksNyBAQCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVJlbW92ZUlUUERh
dGFGb3JEb21haW4oV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZgogCiB2b2lkIFdL
V2Vic2l0ZURhdGFTdG9yZURvZXNTdGF0aXN0aWNzRG9tYWluSURFeGlzdEluRGF0YWJhc2UoV0tX
ZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgaW50IGRvbWFpbklELCB2b2lkKiBjb250
ZXh0LCBXS1dlYnNpdGVEYXRhU3RvcmVEb2VzU3RhdGlzdGljc0RvbWFpbklERXhpc3RJbkRhdGFi
YXNlRnVuY3Rpb24gY2FsbGJhY2spCiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElT
VElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBX
ZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5kb21haW5JREV4aXN0c0luRGF0YWJhc2UoZG9t
YWluSUQsIFtjb250ZXh0LCBjYWxsYmFja10oYm9vbCBleGlzdHMpIHsKICAgICAgICAgY2FsbGJh
Y2soZXhpc3RzLCBjb250ZXh0KTsKICAgICB9KTsKQEAgLTEyMSw3ICsxMjEsNyBAQCB2b2lkIFdL
V2Vic2l0ZURhdGFTdG9yZVJlc2V0U2VydmljZVdvcmtlckZldGNoVGltZW91dEZvclRlc3Rpbmco
V0tXZWJzaXRlRGF0YVN0bwogdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRW5hYmxlZChXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBib29s
IGVuYWJsZSkKIHsKICAgICBhdXRvKiB3ZWJzaXRlRGF0YVN0b3JlID0gV2ViS2l0Ojp0b0ltcGwo
ZGF0YVN0b3JlUmVmKTsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lm
IEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIHdlYnNpdGVEYXRh
U3RvcmUtPnVzZUV4cGxpY2l0SVRQU3RhdGUoKTsKICNlbmRpZgogICAgIHdlYnNpdGVEYXRhU3Rv
cmUtPnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGVuYWJsZSk7CkBAIC0xMjksNyAr
MTI5LDcgQEAgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RW5hYmxlZChXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGEKIAogdm9pZCBXS1dlYnNpdGVEYXRhU3Rv
cmVJc1N0YXRpc3RpY3NFcGhlbWVyYWwoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJl
Ziwgdm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGljc0VwaGVtZXJhbEZ1
bmN0aW9uIGNvbXBsZXRpb25IYW5kbGVyKQogewotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NU
QVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAg
ICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+aXNSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RXBoZW1lcmFsKFtjb250ZXh0LCBjb21wbGV0aW9uSGFuZGxlcl0oYm9vbCBpc0VwaGVtZXJhbCkg
ewogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihpc0VwaGVtZXJhbCwgY29udGV4dCk7CiAgICAg
fSk7CkBAIC0xNzMsNyArMTczLDcgQEAgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVDbGVhckNhY2hl
ZENyZWRlbnRpYWxzKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYKIAogdm9pZCBX
S1dlYnNpdGVEYXRhU3RvcmVTZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlV2l0aENv
bXBsZXRpb25IYW5kbGVyKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIGJvb2wg
ZW5hYmxlLCB2b2lkKiBjb250ZXh0LCBXS1dlYnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzRGVidWdN
b2RlRnVuY3Rpb24gY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xP
QURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElP
TikKICAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5zZXRSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGVidWdNb2RlKGVuYWJsZSwgW2NvbnRleHQsIGNvbXBsZXRpb25IYW5kbGVyXSB7CiAg
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGNvbnRleHQpOwogICAgIH0pOwpAQCAtMTg0LDcgKzE4
NCw3IEBAIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rl
YnVnTW9kZVdpdGhDb21wbGV0aW9uSGFuZGxlcihXCiAKIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3Jl
U2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlRm9yRGVidWdNb2RlKFdL
V2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhvc3QsIHZvaWQq
IGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NEZWJ1Z01vZGVGdW5jdGlvbiBj
b21wbGV0aW9uSGFuZGxlcikKIHsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNT
KQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIFdlYktp
dDo6dG9JbXBsKGRhdGFTdG9yZVJlZiktPnNldFByZXZhbGVudFJlc291cmNlRm9yRGVidWdNb2Rl
KFVSTChVUkwoKSwgV2ViS2l0Ojp0b0ltcGwoaG9zdCktPnN0cmluZygpKSwgW2NvbnRleHQsIGNv
bXBsZXRpb25IYW5kbGVyXSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGNvbnRleHQpOwog
ICAgIH0pOwpAQCAtMTk0LDcgKzE5NCw3IEBAIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0UmVz
b3VyY2VMb2FkU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlRm9yRGVidWdNb2RlKFdLCiB9CiB2
b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NMYXN0U2VlbihXS1dlYnNpdGVEYXRh
U3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBob3N0LCBkb3VibGUgc2Vjb25kcywg
dm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGljc0xhc3RTZWVuRnVuY3Rp
b24gY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElT
VElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBX
ZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5zZXRMYXN0U2VlbihVUkwoVVJMKCksIFdlYktp
dDo6dG9JbXBsKGhvc3QpLT5zdHJpbmcoKSksIFNlY29uZHMgeyBzZWNvbmRzIH0sIFtjb250ZXh0
LCBjb21wbGV0aW9uSGFuZGxlcl0gewogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihjb250ZXh0
KTsKICAgICB9KTsKQEAgLTIwNSw3ICsyMDUsNyBAQCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNl
dFN0YXRpc3RpY3NMYXN0U2VlbihXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLAog
CiB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NNZXJnZVN0YXRpc3RpYyhXS1dl
YnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBob3N0LCBXS1N0cmlu
Z1JlZiB0b3BGcmFtZURvbWFpbjEsIFdLU3RyaW5nUmVmIHRvcEZyYW1lRG9tYWluMiwgZG91Ymxl
IGxhc3RTZWVuLCBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiwgZG91YmxlIG1vc3RSZWNlbnRVc2Vy
SW50ZXJhY3Rpb24sIGJvb2wgaXNHcmFuZGZhdGhlcmVkLCBib29sIGlzUHJldmFsZW50LCBib29s
IGlzVmVyeVByZXZhbGVudCwgdW5zaWduZWQgZGF0YVJlY29yZHNSZW1vdmVkLCB2b2lkKiBjb250
ZXh0LCBXS1dlYnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzTWVyZ2VTdGF0aXN0aWNGdW5jdGlvbiBj
b21wbGV0aW9uSGFuZGxlcikKIHsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNT
KQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIFdlYktp
dDo6dG9JbXBsKGRhdGFTdG9yZVJlZiktPm1lcmdlU3RhdGlzdGljRm9yVGVzdGluZyhVUkwoVVJM
KCksIFdlYktpdDo6dG9JbXBsKGhvc3QpLT5zdHJpbmcoKSksIFVSTChVUkwoKSwgV2ViS2l0Ojp0
b0ltcGwodG9wRnJhbWVEb21haW4xKS0+c3RyaW5nKCkpLCBVUkwoVVJMKCksIFdlYktpdDo6dG9J
bXBsKHRvcEZyYW1lRG9tYWluMiktPnN0cmluZygpKSwgU2Vjb25kcyB7IGxhc3RTZWVuIH0sIGhh
ZFVzZXJJbnRlcmFjdGlvbiwgU2Vjb25kcyB7IG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24gfSwg
aXNHcmFuZGZhdGhlcmVkLCBpc1ByZXZhbGVudCwgaXNWZXJ5UHJldmFsZW50LCBkYXRhUmVjb3Jk
c1JlbW92ZWQsIFtjb250ZXh0LCBjb21wbGV0aW9uSGFuZGxlcl0gewogICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihjb250ZXh0KTsKICAgICB9KTsKQEAgLTIxNiw3ICsyMTYsNyBAQCB2b2lkIFdL
V2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NNZXJnZVN0YXRpc3RpYyhXS1dlYnNpdGVEYXRh
U3RvcmVSZWYgZGF0YVN0bwogCiB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NF
eHBpcmVkU3RhdGlzdGljKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3Ry
aW5nUmVmIGhvc3QsIHVuc2lnbmVkIG51bWJlck9mT3BlcmF0aW5nRGF5c1Bhc3NlZCwgYm9vbCBo
YWRVc2VySW50ZXJhY3Rpb24sIGJvb2wgaXNTY2hlZHVsZWRGb3JBbGxCdXRDb29raWVEYXRhUmVt
b3ZhbCwgYm9vbCBpc1ByZXZhbGVudCwgdm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3Jl
U3RhdGlzdGljc01lcmdlU3RhdGlzdGljRnVuY3Rpb24gY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0j
aWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdF
TlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYp
LT5pbnNlcnRFeHBpcmVkU3RhdGlzdGljRm9yVGVzdGluZyhVUkwoVVJMKCksIFdlYktpdDo6dG9J
bXBsKGhvc3QpLT5zdHJpbmcoKSksIG51bWJlck9mT3BlcmF0aW5nRGF5c1Bhc3NlZCwgaGFkVXNl
ckludGVyYWN0aW9uLCBpc1NjaGVkdWxlZEZvckFsbEJ1dENvb2tpZURhdGFSZW1vdmFsLCBpc1By
ZXZhbGVudCwgW2NvbnRleHQsIGNvbXBsZXRpb25IYW5kbGVyXSB7CiAgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKGNvbnRleHQpOwogICAgIH0pOwpAQCAtMjI3LDcgKzIyNyw3IEBAIHZvaWQgV0tX
ZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc0V4cGlyZWRTdGF0aXN0aWMoV0tXZWJzaXRlRGF0
YVN0b3JlUmVmIGRhdGFTCiAKIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc1By
ZXZhbGVudFJlc291cmNlKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3Ry
aW5nUmVmIGhvc3QsIGJvb2wgdmFsdWUsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9y
ZVN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZUZ1bmN0aW9uIGNvbXBsZXRpb25IYW5kbGVyKQog
ewotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVM
TElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgYXV0byYgd2Vic2l0ZURhdGFTdG9yZSA9
ICpXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpOwogCiAgICAgaWYgKHZhbHVlKQpAQCAtMjQ1
LDcgKzI0NSw3IEBAIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc1ByZXZhbGVu
dFJlc291cmNlKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhCiAKIHZvaWQgV0tXZWJzaXRlRGF0
YVN0b3JlU2V0U3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShXS1dlYnNpdGVEYXRhU3Rv
cmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBob3N0LCBib29sIHZhbHVlLCB2b2lkKiBj
b250ZXh0LCBXS1dlYnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNl
RnVuY3Rpb24gY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURf
U1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikK
ICAgICBhdXRvJiB3ZWJzaXRlRGF0YVN0b3JlID0gKldlYktpdDo6dG9JbXBsKGRhdGFTdG9yZVJl
Zik7CiAKICAgICBpZiAodmFsdWUpCkBAIC0yNjMsNyArMjYzLDcgQEAgdm9pZCBXS1dlYnNpdGVE
YXRhU3RvcmVTZXRTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKFdLV2Vic2l0ZURhdGFT
dG9yZVJlZgogCiB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZUR1bXBSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIHZvaWQqIGNvbnRleHQsIFdL
V2Vic2l0ZURhdGFTdG9yZUR1bXBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRnVuY3Rpb24gY2FsbGJh
Y2spCiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUo
SU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBXZWJLaXQ6OnRvSW1wbChkYXRh
U3RvcmVSZWYpLT5kdW1wUmVzb3VyY2VMb2FkU3RhdGlzdGljcyhbY29udGV4dCwgY2FsbGJhY2td
IChjb25zdCBTdHJpbmcmIHJlc291cmNlTG9hZFN0YXRpc3RpY3MpIHsKICAgICAgICAgY2FsbGJh
Y2soV2ViS2l0Ojp0b0FQSShyZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmltcGwoKSksIGNvbnRleHQp
OwogICAgIH0pOwpAQCAtMjc0LDcgKzI3NCw3IEBAIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlRHVt
cFJlc291cmNlTG9hZFN0YXRpc3RpY3MoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yCiAK
IHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoV0tX
ZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgV0tTdHJpbmdSZWYgaG9zdCwgdm9pZCog
Y29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2VG
dW5jdGlvbiBjYWxsYmFjaykKIHsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNT
KQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIFdlYktp
dDo6dG9JbXBsKGRhdGFTdG9yZVJlZiktPmlzUHJldmFsZW50UmVzb3VyY2UoVVJMKFVSTCgpLCBX
ZWJLaXQ6OnRvSW1wbChob3N0KS0+c3RyaW5nKCkpLCBbY29udGV4dCwgY2FsbGJhY2tdKGJvb2wg
aXNQcmV2YWxlbnRSZXNvdXJjZSkgewogICAgICAgICBjYWxsYmFjayhpc1ByZXZhbGVudFJlc291
cmNlLCBjb250ZXh0KTsKICAgICB9KTsKQEAgLTI4NSw3ICsyODUsNyBAQCB2b2lkIFdLV2Vic2l0
ZURhdGFTdG9yZUlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKFdLV2Vic2l0ZURhdGFTdG9y
ZVJlZiBkYXRhUwogCiB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlzdGljc1ZlcnlQcmV2
YWxlbnRSZXNvdXJjZShXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmlu
Z1JlZiBob3N0LCB2b2lkKiBjb250ZXh0LCBXS1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NQ
cmV2YWxlbnRSZXNvdXJjZUZ1bmN0aW9uIGNhbGxiYWNrKQogewotI2lmIEVOQUJMRShSRVNPVVJD
RV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZF
TlRJT04pCiAgICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+aXNWZXJ5UHJldmFsZW50
UmVzb3VyY2UoVVJMKFVSTCgpLCBXZWJLaXQ6OnRvSW1wbChob3N0KS0+c3RyaW5nKCkpLCBbY29u
dGV4dCwgY2FsbGJhY2tdKGJvb2wgaXNWZXJ5UHJldmFsZW50UmVzb3VyY2UpIHsKICAgICAgICAg
Y2FsbGJhY2soaXNWZXJ5UHJldmFsZW50UmVzb3VyY2UsIGNvbnRleHQpOwogICAgIH0pOwpAQCAt
Mjk2LDcgKzI5Niw3IEBAIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzVmVyeVBy
ZXZhbGVudFJlc291cmNlKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkCiAKIHZvaWQgV0tXZWJzaXRl
RGF0YVN0b3JlSXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3VicmVzb3VyY2VVbmRlcihXS1dlYnNp
dGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBzdWJyZXNvdXJjZUhvc3Qs
IFdLU3RyaW5nUmVmIHRvcEZyYW1lSG9zdCwgdm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0YVN0
b3JlSXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3VicmVzb3VyY2VVbmRlckZ1bmN0aW9uIGNhbGxi
YWNrKQogewotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxF
KElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgV2ViS2l0Ojp0b0ltcGwoZGF0
YVN0b3JlUmVmKS0+aXNSZWdpc3RlcmVkQXNTdWJyZXNvdXJjZVVuZGVyKFVSTChVUkwoKSwgV2Vi
S2l0Ojp0b0ltcGwoc3VicmVzb3VyY2VIb3N0KS0+c3RyaW5nKCkpLCBVUkwoVVJMKCksIFdlYktp
dDo6dG9JbXBsKHRvcEZyYW1lSG9zdCktPnN0cmluZygpKSwgW2NvbnRleHQsIGNhbGxiYWNrXShi
b29sIGlzUmVnaXN0ZXJlZEFzU3VicmVzb3VyY2VVbmRlcikgewogICAgICAgICBjYWxsYmFjayhp
c1JlZ2lzdGVyZWRBc1N1YnJlc291cmNlVW5kZXIsIGNvbnRleHQpOwogICAgIH0pOwpAQCAtMzA3
LDcgKzMwNyw3IEBAIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzUmVnaXN0ZXJl
ZEFzU3VicmVzb3VyY2VVbmRlcihXS1dlYnNpdGVEYXRhU3RvCiAKIHZvaWQgV0tXZWJzaXRlRGF0
YVN0b3JlSXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcihXS1dlYnNpdGVEYXRh
U3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBzdWJGcmFtZUhvc3QsIFdLU3RyaW5n
UmVmIHRvcEZyYW1lSG9zdCwgdm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0
aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlckZ1bmN0aW9uIGNhbGxiYWNrKQogewotI2lm
IEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5U
X1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+
aXNSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKFVSTChVUkwoKSwgV2ViS2l0Ojp0b0ltcGwoc3Vi
RnJhbWVIb3N0KS0+c3RyaW5nKCkpLCBVUkwoVVJMKCksIFdlYktpdDo6dG9JbXBsKHRvcEZyYW1l
SG9zdCktPnN0cmluZygpKSwgW2NvbnRleHQsIGNhbGxiYWNrXShib29sIGlzUmVnaXN0ZXJlZEFz
U3ViRnJhbWVVbmRlcikgewogICAgICAgICBjYWxsYmFjayhpc1JlZ2lzdGVyZWRBc1N1YkZyYW1l
VW5kZXIsIGNvbnRleHQpOwogICAgIH0pOwpAQCAtMzE4LDcgKzMxOCw3IEBAIHZvaWQgV0tXZWJz
aXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcihXS1dlYnNp
dGVEYXRhU3RvcmVSCiAKIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzUmVnaXN0
ZXJlZEFzUmVkaXJlY3RpbmdUbyhXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBX
S1N0cmluZ1JlZiBob3N0UmVkaXJlY3RlZEZyb20sIFdLU3RyaW5nUmVmIGhvc3RSZWRpcmVjdGVk
VG8sIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlzdGljc1JlZ2lzdGVy
ZWRBc1JlZGlyZWN0aW5nVG9GdW5jdGlvbiBjYWxsYmFjaykKIHsKLSNpZiBFTkFCTEUoUkVTT1VS
Q0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVW
RU5USU9OKQogICAgIFdlYktpdDo6dG9JbXBsKGRhdGFTdG9yZVJlZiktPmlzUmVnaXN0ZXJlZEFz
UmVkaXJlY3RpbmdUbyhVUkwoVVJMKCksIFdlYktpdDo6dG9JbXBsKGhvc3RSZWRpcmVjdGVkRnJv
bSktPnN0cmluZygpKSwgVVJMKFVSTCgpLCBXZWJLaXQ6OnRvSW1wbChob3N0UmVkaXJlY3RlZFRv
KS0+c3RyaW5nKCkpLCBbY29udGV4dCwgY2FsbGJhY2tdKGJvb2wgaXNSZWdpc3RlcmVkQXNSZWRp
cmVjdGluZ1RvKSB7CiAgICAgICAgIGNhbGxiYWNrKGlzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdU
bywgY29udGV4dCk7CiAgICAgfSk7CkBAIC0zMjksNyArMzI5LDcgQEAgdm9pZCBXS1dlYnNpdGVE
YXRhU3RvcmVJc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKFdLV2Vic2l0ZURh
dGFTdG9yZVIKIAogdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzSGFzSGFkVXNl
ckludGVyYWN0aW9uKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5n
UmVmIGhvc3QsIGJvb2wgdmFsdWUsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9yZVN0
YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb25GdW5jdGlvbiBjb21wbGV0aW9uSGFuZGxlcikK
IHsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRF
TExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIGF1dG8mIGRhdGFTdG9yZSA9ICpXZWJL
aXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpOwogCiAgICAgaWYgKHZhbHVlKQpAQCAtMzQ3LDcgKzM0
Nyw3IEBAIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRl
cmFjdGlvbihXS1dlYnNpdGVEYXRhU3RvcmVSZWYKIAogdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVJ
c1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRh
dGFTdG9yZVJlZiwgV0tTdHJpbmdSZWYgaG9zdCwgdm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0
YVN0b3JlSXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uRnVuY3Rpb24gY2FsbGJhY2sp
CiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5U
RUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3Rv
cmVSZWYpLT5oYXNIYWRVc2VySW50ZXJhY3Rpb24oVVJMKFVSTCgpLCBXZWJLaXQ6OnRvSW1wbCho
b3N0KS0+c3RyaW5nKCkpLCBbY29udGV4dCwgY2FsbGJhY2tdKGJvb2wgaGFzSGFkVXNlckludGVy
YWN0aW9uKSB7CiAgICAgICAgIGNhbGxiYWNrKGhhc0hhZFVzZXJJbnRlcmFjdGlvbiwgY29udGV4
dCk7CiAgICAgfSk7CkBAIC0zNTgsNyArMzU4LDcgQEAgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVJ
c1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGQK
IAogdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NPbmx5SW5EYXRhYmFzZU9uY2Uo
V0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgV0tTdHJpbmdSZWYgc3ViSG9zdCwg
V0tTdHJpbmdSZWYgdG9wSG9zdCwgdm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlSXNT
dGF0aXN0aWNzT25seUluRGF0YWJhc2VPbmNlRnVuY3Rpb24gY2FsbGJhY2spCiB7Ci0jaWYgRU5B
QkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJB
Q0tJTkdfUFJFVkVOVElPTikKICAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5pc1Jl
bGF0aW9uc2hpcE9ubHlJbkRhdGFiYXNlT25jZShVUkwoVVJMKCksIFdlYktpdDo6dG9JbXBsKHN1
Ykhvc3QpLT5zdHJpbmcoKSksIFVSTChVUkwoKSwgV2ViS2l0Ojp0b0ltcGwodG9wSG9zdCktPnN0
cmluZygpKSwgW2NvbnRleHQsIGNhbGxiYWNrXShib29sIG9ubHlJbkRhdGFiYXNlT25jZSkgewog
ICAgICAgICBjYWxsYmFjayhvbmx5SW5EYXRhYmFzZU9uY2UsIGNvbnRleHQpOwogICAgIH0pOwpA
QCAtMzY5LDE0ICszNjksMTQgQEAgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NP
bmx5SW5EYXRhYmFzZU9uY2UoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGEKIAogdm9pZCBXS1dl
YnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzR3JhbmRmYXRoZXJlZChXS1dlYnNpdGVEYXRhU3Rv
cmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBob3N0LCBib29sIHZhbHVlKQogewotI2lm
IEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5U
X1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+
c2V0R3JhbmRmYXRoZXJlZChVUkwoVVJMKCksIFdlYktpdDo6dG9JbXBsKGhvc3QpLT5zdHJpbmco
KSksIHZhbHVlLCBbXSB7IH0pOwogI2VuZGlmCiB9CiAKIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3Jl
SXNTdGF0aXN0aWNzR3JhbmRmYXRoZXJlZChXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3Jl
UmVmLCBXS1N0cmluZ1JlZiBob3N0LCB2b2lkKiBjb250ZXh0LCBXS1dlYnNpdGVEYXRhU3RvcmVJ
c1N0YXRpc3RpY3NHcmFuZGZhdGhlcmVkRnVuY3Rpb24gY2FsbGJhY2spCiB7Ci0jaWYgRU5BQkxF
KFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJ
TkdfUFJFVkVOVElPTikKICAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5pc0dyYW5k
ZmF0aGVyZWQoVVJMKFVSTCgpLCBXZWJLaXQ6OnRvSW1wbChob3N0KS0+c3RyaW5nKCkpLCBbY29u
dGV4dCwgY2FsbGJhY2tdKGJvb2wgaXNHcmFuZGZhdGhlcmVkKSB7CiAgICAgICAgIGNhbGxiYWNr
KGlzR3JhbmRmYXRoZXJlZCwgY29udGV4dCk7CiAgICAgfSk7CkBAIC0zODcsNDkgKzM4Nyw0OSBA
QCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlzdGljc0dyYW5kZmF0aGVyZWQoV0tXZWJz
aXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZQogCiB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0
YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oV0tXZWJzaXRlRGF0YVN0b3JlUmVm
IGRhdGFTdG9yZVJlZiwgV0tTdHJpbmdSZWYgaG9zdCwgV0tTdHJpbmdSZWYgdG9wRnJhbWVIb3N0
KQogewotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElO
VEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0
b3JlUmVmKS0+c2V0U3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWluKFVSTChVUkwoKSwgV2ViS2l0
Ojp0b0ltcGwoaG9zdCktPnN0cmluZygpKSwgVVJMKFVSTCgpLCBXZWJLaXQ6OnRvSW1wbCh0b3BG
cmFtZUhvc3QpLT5zdHJpbmcoKSksIFtdIHsgfSk7CiAjZW5kaWYKIH0KIAogdm9pZCBXS1dlYnNp
dGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKFdL
V2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhvc3QsIFdLU3Ry
aW5nUmVmIHRvcEZyYW1lSG9zdCkKIHsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNU
SUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIFdl
YktpdDo6dG9JbXBsKGRhdGFTdG9yZVJlZiktPnNldFN1YnJlc291cmNlVW5kZXJUb3BGcmFtZURv
bWFpbihVUkwoVVJMKCksIFdlYktpdDo6dG9JbXBsKGhvc3QpLT5zdHJpbmcoKSksIFVSTChVUkwo
KSwgV2ViS2l0Ojp0b0ltcGwodG9wRnJhbWVIb3N0KS0+c3RyaW5nKCkpLCBbXSB7IH0pOwogI2Vu
ZGlmCiB9CiAKIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc1N1YnJlc291cmNl
VW5pcXVlUmVkaXJlY3RUbyhXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0
cmluZ1JlZiBob3N0LCBXS1N0cmluZ1JlZiBob3N0UmVkaXJlY3RlZFRvKQogewotI2lmIEVOQUJM
RShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNL
SU5HX1BSRVZFTlRJT04pCiAgICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+c2V0U3Vi
cmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKFVSTChVUkwoKSwgV2ViS2l0Ojp0b0ltcGwoaG9zdCkt
PnN0cmluZygpKSwgVVJMKFVSTCgpLCBXZWJLaXQ6OnRvSW1wbChob3N0UmVkaXJlY3RlZFRvKS0+
c3RyaW5nKCkpLCBbXSB7IH0pOwogI2VuZGlmCiB9CiAKIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3Jl
U2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RGcm9tKFdLV2Vic2l0ZURhdGFT
dG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhvc3QsIFdLU3RyaW5nUmVmIGhvc3RS
ZWRpcmVjdGVkRnJvbSkKIHsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQor
I2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIFdlYktpdDo6
dG9JbXBsKGRhdGFTdG9yZVJlZiktPnNldFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RGcm9tKFVS
TChVUkwoKSwgV2ViS2l0Ojp0b0ltcGwoaG9zdCktPnN0cmluZygpKSwgVVJMKFVSTCgpLCBXZWJL
aXQ6OnRvSW1wbChob3N0UmVkaXJlY3RlZEZyb20pLT5zdHJpbmcoKSksIFtdIHsgfSk7CiAjZW5k
aWYKIH0KIAogdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzVG9wRnJhbWVVbmlx
dWVSZWRpcmVjdFRvKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5n
UmVmIGhvc3QsIFdLU3RyaW5nUmVmIGhvc3RSZWRpcmVjdGVkVG8pCiB7Ci0jaWYgRU5BQkxFKFJF
U09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdf
UFJFVkVOVElPTikKICAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5zZXRUb3BGcmFt
ZVVuaXF1ZVJlZGlyZWN0VG8oVVJMKFVSTCgpLCBXZWJLaXQ6OnRvSW1wbChob3N0KS0+c3RyaW5n
KCkpLCBVUkwoVVJMKCksIFdlYktpdDo6dG9JbXBsKGhvc3RSZWRpcmVjdGVkVG8pLT5zdHJpbmco
KSksIFtdIHsgfSk7CiAjZW5kaWYKIH0KIAogdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0
aXN0aWNzVG9wRnJhbWVVbmlxdWVSZWRpcmVjdEZyb20oV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRh
dGFTdG9yZVJlZiwgV0tTdHJpbmdSZWYgaG9zdCwgV0tTdHJpbmdSZWYgaG9zdFJlZGlyZWN0ZWRG
cm9tKQogewotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxF
KElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgV2ViS2l0Ojp0b0ltcGwoZGF0
YVN0b3JlUmVmKS0+c2V0VG9wRnJhbWVVbmlxdWVSZWRpcmVjdEZyb20oVVJMKFVSTCgpLCBXZWJL
aXQ6OnRvSW1wbChob3N0KS0+c3RyaW5nKCkpLCBVUkwoVVJMKCksIFdlYktpdDo6dG9JbXBsKGhv
c3RSZWRpcmVjdGVkRnJvbSktPnN0cmluZygpKSwgW10geyB9KTsKICNlbmRpZgogfQogCiB2b2lk
IFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NDcm9zc1NpdGVMb2FkV2l0aExpbmtEZWNv
cmF0aW9uKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGZy
b21Ib3N0LCBXS1N0cmluZ1JlZiB0b0hvc3QsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFT
dG9yZVNldFN0YXRpc3RpY3NDcm9zc1NpdGVMb2FkV2l0aExpbmtEZWNvcmF0aW9uRnVuY3Rpb24g
Y2FsbGJhY2spCiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBF
TkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBXZWJLaXQ6OnRvSW1w
bChkYXRhU3RvcmVSZWYpLT5zZXRDcm9zc1NpdGVMb2FkV2l0aExpbmtEZWNvcmF0aW9uRm9yVGVz
dGluZyhVUkwoVVJMKCksIFdlYktpdDo6dG9JbXBsKGZyb21Ib3N0KS0+c3RyaW5nKCkpLCBVUkwo
VVJMKCksIFdlYktpdDo6dG9JbXBsKHRvSG9zdCktPnN0cmluZygpKSwgW2NvbnRleHQsIGNhbGxi
YWNrXSB7CiAgICAgICAgIGNhbGxiYWNrKGNvbnRleHQpOwogICAgIH0pOwpAQCAtNDQwLDcgKzQ0
MCw3IEBAIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc0Nyb3NzU2l0ZUxvYWRX
aXRoTGlua0RlY29yYXRpb24oV0tXZWJzaXRlRGF0CiAKIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3Jl
U2V0U3RhdGlzdGljc1RpbWVUb0xpdmVVc2VySW50ZXJhY3Rpb24oV0tXZWJzaXRlRGF0YVN0b3Jl
UmVmIGRhdGFTdG9yZVJlZiwgZG91YmxlIHNlY29uZHMsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0
ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NUaW1lVG9MaXZlVXNlckludGVyYWN0aW9uRnVuY3Rpb24g
Y2FsbGJhY2spCiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBF
TkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBXZWJLaXQ6OnRvSW1w
bChkYXRhU3RvcmVSZWYpLT5zZXRUaW1lVG9MaXZlVXNlckludGVyYWN0aW9uKFNlY29uZHMgeyBz
ZWNvbmRzIH0sIFtjb250ZXh0LCBjYWxsYmFja10gewogICAgICAgICBjYWxsYmFjayhjb250ZXh0
KTsKICAgICB9KTsKQEAgLTQ1MSw3ICs0NTEsNyBAQCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNl
dFN0YXRpc3RpY3NUaW1lVG9MaXZlVXNlckludGVyYWN0aW9uKFdLV2Vic2l0ZURhdGFTdG9yZQog
CiB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERh
dGFSZWNvcmRzKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIHZvaWQqIGNvbnRl
eHQsIFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFS
ZWNvcmRzRnVuY3Rpb24gY2FsbGJhY2spCiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RB
VElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAg
ICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5zY2hlZHVsZVN0YXRpc3RpY3NBbmREYXRh
UmVjb3Jkc1Byb2Nlc3NpbmcoW2NvbnRleHQsIGNhbGxiYWNrXSB7CiAgICAgICAgIGNhbGxiYWNr
KGNvbnRleHQpOwogICAgIH0pOwpAQCAtNDYyLDcgKzQ2Miw3IEBAIHZvaWQgV0tXZWJzaXRlRGF0
YVN0b3JlU3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoV0tXZWJzaXRl
RGF0YVN0CiAKIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJs
b2NraW5nKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIHZvaWQqIGNvbnRleHQs
IFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZ0Z1bmN0aW9u
IGNvbXBsZXRpb25IYW5kbGVyKQogewotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJ
Q1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgV2Vi
S2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+c2NoZWR1bGVDb29raWVCbG9ja2luZ1VwZGF0ZShb
Y29udGV4dCwgY29tcGxldGlvbkhhbmRsZXJdKCkgewogICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihjb250ZXh0KTsKICAgICB9KTsKQEAgLTQ3MywxNCArNDczLDE0IEBAIHZvaWQgV0tXZWJzaXRl
RGF0YVN0b3JlU3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKFdLV2Vic2l0ZURhdGFTdG9y
ZVJlZiBkYXRhCiAKIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc05vdGlmeVBh
Z2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFT
dG9yZVJlZiwgYm9vbCB2YWx1ZSkKIHsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNU
SUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIFdl
YktpdDo6dG9JbXBsKGRhdGFTdG9yZVJlZiktPnNldE5vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRz
V2VyZVNjYW5uZWQodmFsdWUsIFtdIHsgfSk7CiAjZW5kaWYKIH0KIAogdm9pZCBXS1dlYnNpdGVE
YXRhU3RvcmVTZXRTdGF0aXN0aWNzSXNSdW5uaW5nVGVzdChXS1dlYnNpdGVEYXRhU3RvcmVSZWYg
ZGF0YVN0b3JlUmVmLCBib29sIHZhbHVlLCB2b2lkKiBjb250ZXh0LCBXS1dlYnNpdGVEYXRhU3Rv
cmVTZXRTdGF0aXN0aWNzSXNSdW5uaW5nVGVzdEZ1bmN0aW9uIGNhbGxiYWNrKQogewotI2lmIEVO
QUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RS
QUNLSU5HX1BSRVZFTlRJT04pCiAgICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+c2V0
SXNSdW5uaW5nUmVzb3VyY2VMb2FkU3RhdGlzdGljc1Rlc3QodmFsdWUsIFtjb250ZXh0LCBjYWxs
YmFja10gewogICAgICAgICBjYWxsYmFjayhjb250ZXh0KTsKICAgICB9KTsKQEAgLTQ5MSw0MiAr
NDkxLDQyIEBAIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc0lzUnVubmluZ1Rl
c3QoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yCiAKIHZvaWQgV0tXZWJzaXRlRGF0YVN0
b3JlU2V0U3RhdGlzdGljc1Nob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNS
ZW1vdmFsKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIGJvb2wgdmFsdWUpCiB7
Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxM
SUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVS
ZWYpLT5zZXRTaG91bGRDbGFzc2lmeVJlc291cmNlc0JlZm9yZURhdGFSZWNvcmRzUmVtb3ZhbCh2
YWx1ZSwgW10oKSB7IH0pOwogI2VuZGlmCiB9CiAKIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0
U3RhdGlzdGljc01pbmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbChXS1dlYnNpdGVE
YXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBkb3VibGUgc2Vjb25kcykKIHsKLSNpZiBFTkFCTEUo
UkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lO
R19QUkVWRU5USU9OKQogICAgIFdlYktpdDo6dG9JbXBsKGRhdGFTdG9yZVJlZiktPnNldE1pbmlt
dW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbChTZWNvbmRzIHsgc2Vjb25kcyB9LCBbXSgp
IHsgfSk7CiAjZW5kaWYKIH0KIAogdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNz
R3JhbmRmYXRoZXJpbmdUaW1lKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIGRv
dWJsZSBzZWNvbmRzKQogewotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisj
aWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgV2ViS2l0Ojp0
b0ltcGwoZGF0YVN0b3JlUmVmKS0+c2V0R3JhbmRmYXRoZXJpbmdUaW1lKFNlY29uZHMgeyBzZWNv
bmRzIH0sIFtdKCkgeyB9KTsKICNlbmRpZgogfQogCiB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNl
dFN0YXRpc3RpY3NNYXhTdGF0aXN0aWNzRW50cmllcyhXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0
YVN0b3JlUmVmLCB1bnNpZ25lZCBlbnRyaWVzKQogewotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FE
X1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04p
CiAgICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+c2V0TWF4U3RhdGlzdGljc0VudHJp
ZXMoZW50cmllcywgW10oKSB7IH0pOwogI2VuZGlmCiB9CiAKIHZvaWQgV0tXZWJzaXRlRGF0YVN0
b3JlU2V0U3RhdGlzdGljc1BydW5lRW50cmllc0Rvd25UbyhXS1dlYnNpdGVEYXRhU3RvcmVSZWYg
ZGF0YVN0b3JlUmVmLCB1bnNpZ25lZCBlbnRyaWVzKQogewotI2lmIEVOQUJMRShSRVNPVVJDRV9M
T0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJ
T04pCiAgICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+c2V0UHJ1bmVFbnRyaWVzRG93
blRvKGVudHJpZXMsIFtdKCkgeyB9KTsKICNlbmRpZgogfQogCiB2b2lkIFdLV2Vic2l0ZURhdGFT
dG9yZVN0YXRpc3RpY3NDbGVhckluTWVtb3J5QW5kUGVyc2lzdGVudFN0b3JlKFdLV2Vic2l0ZURh
dGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9y
ZVN0YXRpc3RpY3NDbGVhckluTWVtb3J5QW5kUGVyc2lzdGVudFN0b3JlRnVuY3Rpb24gY2FsbGJh
Y2spCiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUo
SU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBXZWJLaXQ6OnRvSW1wbChkYXRh
U3RvcmVSZWYpLT5zY2hlZHVsZUNsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50KFdlYktpdDo6U2hv
dWxkR3JhbmRmYXRoZXJTdGF0aXN0aWNzOjpZZXMsIFtjb250ZXh0LCBjYWxsYmFja10oKSB7CiAg
ICAgICAgIGNhbGxiYWNrKGNvbnRleHQpOwogICAgIH0pOwpAQCAtNTM3LDcgKzUzNyw3IEBAIHZv
aWQgV0tXZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGljc0NsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50
U3RvcmUoV0tXZWJzaXRlRGF0YVN0CiAKIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGlj
c0NsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50U3RvcmVNb2RpZmllZFNpbmNlSG91cnMoV0tXZWJz
aXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgdW5zaWduZWQgaG91cnMsIHZvaWQqIGNvbnRl
eHQsIFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NDbGVhckluTWVtb3J5QW5kUGVyc2lzdGVu
dFN0b3JlTW9kaWZpZWRTaW5jZUhvdXJzRnVuY3Rpb24gY2FsbGJhY2spCiB7Ci0jaWYgRU5BQkxF
KFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJ
TkdfUFJFVkVOVElPTikKICAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5zY2hlZHVs
ZUNsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50KFdhbGxUaW1lOjpub3coKSAtIFNlY29uZHM6OmZy
b21Ib3Vycyhob3VycyksIFdlYktpdDo6U2hvdWxkR3JhbmRmYXRoZXJTdGF0aXN0aWNzOjpZZXMs
IFtjb250ZXh0LCBjYWxsYmFja10oKSB7CiAgICAgICAgIGNhbGxiYWNrKGNvbnRleHQpOwogICAg
IH0pOwpAQCAtNTU2LDcgKzU1Niw3IEBAIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGlj
c0NsZWFyVGhyb3VnaFdlYnNpdGVEYXRhUmVtb3ZhbChXS1dlYnNpdGVEYXRhU3RvCiAKIHZvaWQg
V0tXZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGljc0RlbGV0ZUNvb2tpZXNGb3JUZXN0aW5nKFdLV2Vi
c2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhvc3QsIGJvb2wgaW5j
bHVkZUh0dHBPbmx5Q29va2llcywgdm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlU3Rh
dGlzdGljc0RlbGV0ZUNvb2tpZXNGb3JUZXN0aW5nRnVuY3Rpb24gY2FsbGJhY2spCiB7Ci0jaWYg
RU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRf
VFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5k
ZWxldGVDb29raWVzRm9yVGVzdGluZyhVUkwoVVJMKCksIFdlYktpdDo6dG9JbXBsKGhvc3QpLT5z
dHJpbmcoKSksIGluY2x1ZGVIdHRwT25seUNvb2tpZXMsIFtjb250ZXh0LCBjYWxsYmFja10gewog
ICAgICAgICBjYWxsYmFjayhjb250ZXh0KTsKICAgICB9KTsKQEAgLTU2Nyw3ICs1NjcsNyBAQCB2
b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NEZWxldGVDb29raWVzRm9yVGVzdGluZyhX
S1dlYnNpdGVEYXRhU3RvcmVSZWYgZAogCiB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3Rp
Y3NIYXNMb2NhbFN0b3JhZ2UoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgV0tT
dHJpbmdSZWYgaG9zdCwgdm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGlj
c0hhc0xvY2FsU3RvcmFnZUZ1bmN0aW9uIGNhbGxiYWNrKQogewotI2lmIEVOQUJMRShSRVNPVVJD
RV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZF
TlRJT04pCiAgICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+aGFzTG9jYWxTdG9yYWdl
Rm9yVGVzdGluZyhVUkwoVVJMKCksIFdlYktpdDo6dG9JbXBsKGhvc3QpLT5zdHJpbmcoKSksIFtj
b250ZXh0LCBjYWxsYmFja10oYm9vbCBoYXNMb2NhbFN0b3JhZ2UpIHsKICAgICAgICAgY2FsbGJh
Y2soaGFzTG9jYWxTdG9yYWdlLCBjb250ZXh0KTsKICAgICB9KTsKQEAgLTU3OCw3ICs1NzgsNyBA
QCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NIYXNMb2NhbFN0b3JhZ2UoV0tXZWJz
aXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZQogCiB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0
YXRpc3RpY3NDYWNoZU1heEFnZUNhcChXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVm
LCBkb3VibGUgc2Vjb25kcywgdm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3Rh
dGlzdGljc0NhY2hlTWF4QWdlQ2FwRnVuY3Rpb24gY2FsbGJhY2spCiB7Ci0jaWYgRU5BQkxFKFJF
U09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdf
UFJFVkVOVElPTikKICAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5zZXRDYWNoZU1h
eEFnZUNhcEZvclByZXZhbGVudFJlc291cmNlcyhTZWNvbmRzIHsgc2Vjb25kcyB9LCBbY29udGV4
dCwgY2FsbGJhY2tdIHsKICAgICAgICAgY2FsbGJhY2soY29udGV4dCk7CiAgICAgfSk7CkBAIC01
ODksNyArNTg5LDcgQEAgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzQ2FjaGVN
YXhBZ2VDYXAoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG8KIAogdm9pZCBXS1dlYnNpdGVE
YXRhU3RvcmVTdGF0aXN0aWNzSGFzSXNvbGF0ZWRTZXNzaW9uKFdLV2Vic2l0ZURhdGFTdG9yZVJl
ZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhvc3QsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0
ZURhdGFTdG9yZVN0YXRpc3RpY3NIYXNJc29sYXRlZFNlc3Npb25GdW5jdGlvbiBjYWxsYmFjaykK
IHsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRF
TExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIFdlYktpdDo6dG9JbXBsKGRhdGFTdG9y
ZVJlZiktPmhhc0lzb2xhdGVkU2Vzc2lvbkZvclRlc3RpbmcoVVJMKFVSTCgpLCBXZWJLaXQ6OnRv
SW1wbChob3N0KS0+c3RyaW5nKCkpLCBbY29udGV4dCwgY2FsbGJhY2tdKGJvb2wgaGFzSXNvbGF0
ZWRTZXNzaW9uKSB7CiAgICAgICAgIGNhbGxiYWNrKGhhc0lzb2xhdGVkU2Vzc2lvbiwgY29udGV4
dCk7CiAgICAgfSk7CkBAIC02MTIsNyArNjEyLDcgQEAgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVI
YXNBcHBCb3VuZFNlc3Npb24oV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgdm8K
IAogdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU2hvdWxk
RG93bmdyYWRlUmVmZXJyZXJGb3JUZXN0aW5nKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3Rv
cmVSZWYsIGJvb2wgZW5hYmxlZCwgdm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlU2V0
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nob3VsZERvd25ncmFkZVJlZmVycmVyRm9yVGVzdGluZ0Z1
bmN0aW9uIGNvbXBsZXRpb25IYW5kbGVyKQogewotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NU
QVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAg
ICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1Nob3VsZERvd25ncmFkZVJlZmVycmVyRm9yVGVzdGluZyhlbmFibGVkLCBbY29udGV4dCwgY29t
cGxldGlvbkhhbmRsZXJdIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoY29udGV4dCk7CiAg
ICAgfSk7CkBAIC02MjMsNyArNjIzLDcgQEAgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU2hvdWxkRG93bmdyYWRlUmVmZXJyZXJGb3JUZXN0aW4KIAogdm9p
ZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU2hvdWxkQmxvY2tU
aGlyZFBhcnR5Q29va2llc0ZvclRlc3RpbmcoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9y
ZVJlZiwgYm9vbCBlbmFibGVkLCBib29sIG9ubHlPblNpdGVzV2l0aG91dFVzZXJJbnRlcmFjdGlv
biwgdm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlU2V0UmVzb3VyY2VMb2FkU3RhdGlz
dGljc1Nob3VsZEJsb2NrVGhpcmRQYXJ0eUNvb2tpZXNGb3JUZXN0aW5nRnVuY3Rpb24gY29tcGxl
dGlvbkhhbmRsZXIpCiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNp
ZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBXZWJLaXQ6OnRv
SW1wbChkYXRhU3RvcmVSZWYpLT5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU2hvdWxkQmxvY2tU
aGlyZFBhcnR5Q29va2llc0ZvclRlc3RpbmcoZW5hYmxlZCwgb25seU9uU2l0ZXNXaXRob3V0VXNl
ckludGVyYWN0aW9uLCBbY29udGV4dCwgY29tcGxldGlvbkhhbmRsZXJdIHsKICAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoY29udGV4dCk7CiAgICAgfSk7CkBAIC02MzQsNyArNjM0LDcgQEAgdm9p
ZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU2hvdWxkQmxvY2tU
aGlyZFBhcnR5Q29va2llc0ZvclQKIAogdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGVGb3JUZXN0aW5n
KFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIGJvb2wgZW5hYmxlZCwgdm9pZCog
Y29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlU2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0ZpcnN0
UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlRm9yVGVzdGluZ0Z1bmN0aW9uIGNvbXBsZXRpb25I
YW5kbGVyKQogewotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5B
QkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgV2ViS2l0Ojp0b0ltcGwo
ZGF0YVN0b3JlUmVmKS0+c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0ZpcnN0UGFydHlXZWJzaXRl
RGF0YVJlbW92YWxNb2RlRm9yVGVzdGluZyhlbmFibGVkLCBbY29udGV4dCwgY29tcGxldGlvbkhh
bmRsZXJdIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoY29udGV4dCk7CiAgICAgfSk7CkBA
IC02NDUsNyArNjQ1LDcgQEAgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGUKIAogdm9pZCBXS1dlYnNp
dGVEYXRhU3RvcmVTZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVG9TYW1lU2l0ZVN0cmljdENvb2tp
ZXNGb3JUZXN0aW5nKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5n
UmVmIGhvc3ROYW1lLCB2b2lkKiBjb250ZXh0LCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzVG9TYW1lU2l0ZVN0cmljdENvb2tpZXNGb3JUZXN0aW5nRnVuY3Rpb24g
Y29tcGxldGlvbkhhbmRsZXIpCiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElD
UykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBXZWJL
aXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVG9TYW1l
U2l0ZVN0cmljdENvb2tpZXNGb3JUZXN0aW5nKFVSTChVUkwoKSwgV2ViS2l0Ojp0b0ltcGwoaG9z
dE5hbWUpLT5zdHJpbmcoKSksIFtjb250ZXh0LCBjb21wbGV0aW9uSGFuZGxlcl0gewogICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcihjb250ZXh0KTsKICAgICB9KTsKQEAgLTY1Niw3ICs2NTYsNyBA
QCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NUb1NhbWVT
aXRlU3RyaWN0Q29va2llc0ZvclRlc3RpbgogCiB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFJl
c291cmNlTG9hZFN0YXRpc3RpY3NGaXJzdFBhcnR5SG9zdENOQU1FRG9tYWluRm9yVGVzdGluZyhX
S1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBmaXJzdFBhcnR5
VVJMU3RyaW5nLCBXS1N0cmluZ1JlZiBjbmFtZVVSTFN0cmluZywgdm9pZCogY29udGV4dCwgV0tX
ZWJzaXRlRGF0YVN0b3JlU2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0ZpcnN0UGFydHlIb3N0Q05B
TUVEb21haW5Gb3JUZXN0aW5nRnVuY3Rpb24gY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0jaWYgRU5B
QkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJB
Q0tJTkdfUFJFVkVOVElPTikKICAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5zZXRS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRmlyc3RQYXJ0eUhvc3RDTkFNRURvbWFpbkZvclRlc3Rpbmco
VVJMKFVSTCgpLCBXZWJLaXQ6OnRvSW1wbChmaXJzdFBhcnR5VVJMU3RyaW5nKS0+c3RyaW5nKCkp
LCBVUkwoVVJMKCksIFdlYktpdDo6dG9JbXBsKGNuYW1lVVJMU3RyaW5nKS0+c3RyaW5nKCkpLCBb
Y29udGV4dCwgY29tcGxldGlvbkhhbmRsZXJdIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
Y29udGV4dCk7CiAgICAgfSk7CkBAIC02NjcsNyArNjY3LDcgQEAgdm9pZCBXS1dlYnNpdGVEYXRh
U3RvcmVTZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRmlyc3RQYXJ0eUhvc3RDTkFNRURvbWFpbkZv
clRlc3QKIAogdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
VGhpcmRQYXJ0eUNOQU1FRG9tYWluRm9yVGVzdGluZyhXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0
YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBjbmFtZVVSTFN0cmluZywgdm9pZCogY29udGV4dCwgV0tX
ZWJzaXRlRGF0YVN0b3JlU2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc1RoaXJkUGFydHlDTkFNRURv
bWFpbkZvclRlc3RpbmdGdW5jdGlvbiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSNpZiBFTkFCTEUo
UkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lO
R19QUkVWRU5USU9OKQogICAgIFdlYktpdDo6dG9JbXBsKGRhdGFTdG9yZVJlZiktPnNldFJlc291
cmNlTG9hZFN0YXRpc3RpY3NUaGlyZFBhcnR5Q05BTUVEb21haW5Gb3JUZXN0aW5nKFVSTChVUkwo
KSwgV2ViS2l0Ojp0b0ltcGwoY25hbWVVUkxTdHJpbmcpLT5zdHJpbmcoKSksIFtjb250ZXh0LCBj
b21wbGV0aW9uSGFuZGxlcl0gewogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihjb250ZXh0KTsK
ICAgICB9KTsKQEAgLTcwMyw3ICs3MDMsNyBAQCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldEFw
cEJvdW5kRG9tYWluc0ZvclRlc3RpbmcoV0tBcnJheVJlZiBvcmlnaW5VUkxzUmVmLCB2bwogCiB2
b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKFdL
V2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0
ZURhdGFTdG9yZVN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlRnVuY3Rpb24gY29tcGxl
dGlvbkhhbmRsZXIpCiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNp
ZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBhdXRvIGNhbGxi
YWNrQWdncmVnYXRvciA9IENhbGxiYWNrQWdncmVnYXRvcjo6Y3JlYXRlKFtjb250ZXh0LCBjb21w
bGV0aW9uSGFuZGxlcl0oKSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGNvbnRleHQpOwog
ICAgIH0pOwpAQCAtODgzLDcgKzg4Myw3IEBAIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlQ2xlYXJC
dW5kbGVJZGVudGlmaWVySW5OZXR3b3JrUHJvY2VzcyhXS1dlYnNpdGVEYXRhU3RvcmVSCiAKIHZv
aWQgV0tXZWJzaXRlRGF0YVN0b3JlR2V0QWxsU3RvcmFnZUFjY2Vzc0VudHJpZXMoV0tXZWJzaXRl
RGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgV0tQYWdlUmVmIHBhZ2VSZWYsIHZvaWQqIGNvbnRl
eHQsIFdLV2Vic2l0ZURhdGFTdG9yZUdldEFsbFN0b3JhZ2VBY2Nlc3NFbnRyaWVzRnVuY3Rpb24g
Y2FsbGJhY2spCiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBF
TkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBXZWJLaXQ6OnRvSW1w
bChkYXRhU3RvcmVSZWYpLT5nZXRBbGxTdG9yYWdlQWNjZXNzRW50cmllcyhXZWJLaXQ6OnRvSW1w
bChwYWdlUmVmKS0+aWRlbnRpZmllcigpLCBbY29udGV4dCwgY2FsbGJhY2tdIChWZWN0b3I8U3Ry
aW5nPiYmIGRvbWFpbnMpIHsKICAgICAgICAgYXV0byBkb21haW5BcnJheVJlZiA9IFdLTXV0YWJs
ZUFycmF5Q3JlYXRlKCk7CiAgICAgICAgIGZvciAoYXV0byBkb21haW4gOiBkb21haW5zKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wu
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQpp
bmRleCBjMWJmOTRjZjM2Nzg2Njk2Zjc5ODM5Mzg0NGM5NjcwMDJjYWNkZjgyLi40OWZmYWNkZjA4
YTlmMjcyNzc3OGMwMzExOWJlMzQxMDZhNzA3ZDM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQpAQCAtNTUzLDcgKzU1Myw3IEBA
IC0gKHZvaWQpX2NsZWFyUGVybWFuZW50Q3JlZGVudGlhbHNGb3JQcm90ZWN0aW9uU3BhY2U6KE5T
VVJMUHJvdGVjdGlvblNwYWNlICopcHJvCiAKIC0gKHZvaWQpX3NlZWRSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRm9yVGVzdGluZ1dpdGhGaXJzdFBhcnR5OihOU1VSTCAqKWZpcnN0UGFydHlVUkwgdGhp
cmRQYXJ0eTooTlNVUkwgKil0aGlyZFBhcnR5VVJMIHNob3VsZFNjaGVkdWxlTm90aWZpY2F0aW9u
OihCT09MKXNob3VsZFNjaGVkdWxlTm90aWZpY2F0aW9uIGNvbXBsZXRpb25IYW5kbGVyOih2b2lk
KF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyCiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURf
U1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikK
ICAgICBfcHJvY2Vzc1Bvb2wtPnNlZWRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRm9yVGVzdGluZyhX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB7IGZpcnN0UGFydHlVUkwgfSwgV2ViQ29yZTo6UmVn
aXN0cmFibGVEb21haW4geyB0aGlyZFBhcnR5VVJMIH0sIHNob3VsZFNjaGVkdWxlTm90aWZpY2F0
aW9uLCBbY29tcGxldGlvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIp
XSAoKSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiAgICAgfSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5t
bQppbmRleCA0ZGMxNWJhZDg0ZTg5ODg0YmJkMWNlNmZhZmNlMmM3MzA1ZTBjMTAwLi43YjA5ZTVh
NTUxNzM5MzNkYmNlNjJjNDZlNzk1NTE2ZDE3ZjFiNWRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KQEAgLTMx
MSw3ICszMTEsNyBAQCAtICh2b2lkKV9zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZDoo
Qk9PTCllbmFibGVkCiAKIC0gKEJPT0wpX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUK
IHsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRF
TExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIHJldHVybiBfd2Vic2l0ZURhdGFTdG9y
ZS0+cmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZSgpOwogI2Vsc2UKICAgICByZXR1cm4g
Tk87CkBAIC0zMjAsNyArMzIwLDcgQEAgLSAoQk9PTClfcmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rl
YnVnTW9kZQogCiAtICh2b2lkKV9zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlOihC
T09MKWVuYWJsZWQKIHsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lm
IEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIF93ZWJzaXRlRGF0
YVN0b3JlLT5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlKGVuYWJsZWQpOwogI2Vs
c2UKICAgICBVTlVTRURfUEFSQU0oZW5hYmxlZCk7CkBAIC0zNzksNyArMzc5LDcgQEAgLSAoTlNV
UkwgKilfaW5kZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkKIAogLSAodm9pZClfc2V0UmVzb3VyY2VM
b2FkU3RhdGlzdGljc1Rlc3RpbmdDYWxsYmFjazoodm9pZCAoXikoV0tXZWJzaXRlRGF0YVN0b3Jl
ICosIE5TU3RyaW5nICopKWNhbGxiYWNrCiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RB
VElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAg
ICBpZiAoIV93ZWJzaXRlRGF0YVN0b3JlLT5pc1BlcnNpc3RlbnQoKSkKICAgICAgICAgcmV0dXJu
OwogCkBAIC00MDEsNyArNDAxLDcgQEAgKyAodm9pZClfYWxsb3dXZWJzaXRlRGF0YVJlY29yZHNG
b3JBbGxPcmlnaW5zCiAKIC0gKHZvaWQpX2xvYWRlZFN1YnJlc291cmNlRG9tYWluc0ZvcjooV0tX
ZWJWaWV3ICopd2ViVmlldyBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNBcnJheTxOU1N0
cmluZyAqPiAqZG9tYWlucykpY29tcGxldGlvbkhhbmRsZXIKIHsKLSNpZiBFTkFCTEUoUkVTT1VS
Q0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVW
RU5USU9OKQogICAgIGlmICghd2ViVmlldykgewogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihu
aWwpOwogICAgICAgICByZXR1cm47CkBAIC00MjYsNyArNDI2LDcgQEAgLSAodm9pZClfbG9hZGVk
U3VicmVzb3VyY2VEb21haW5zRm9yOihXS1dlYlZpZXcgKil3ZWJWaWV3IGNvbXBsZXRpb25IYW5k
bGVyOih2b2kKIAogLSAodm9pZClfY2xlYXJMb2FkZWRTdWJyZXNvdXJjZURvbWFpbnNGb3I6KFdL
V2ViVmlldyAqKXdlYlZpZXcKIHsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNT
KQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIGlmICgh
d2ViVmlldykKICAgICAgICAgcmV0dXJuOwogCkBAIC00NTIsNyArNDUyLDcgQEAgLSAodm9pZClf
Z2V0QWxsU3RvcmFnZUFjY2Vzc0VudHJpZXNGb3I6KFdLV2ViVmlldyAqKXdlYlZpZXcgY29tcGxl
dGlvbkhhbmRsZXI6KHYKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotI2lmIEVOQUJMRShSRVNP
VVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BS
RVZFTlRJT04pCiAgICAgX3dlYnNpdGVEYXRhU3RvcmUtPmdldEFsbFN0b3JhZ2VBY2Nlc3NFbnRy
aWVzKHdlYlBhZ2VQcm94eS0+aWRlbnRpZmllcigpLCBbY29tcGxldGlvbkhhbmRsZXIgPSBtYWtl
QmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvIGRvbWFpbnMpIHsKICAgICAgICAgVmVj
dG9yPFJlZlB0cjxBUEk6Ok9iamVjdD4+IGFwaURvbWFpbnM7CiAgICAgICAgIGFwaURvbWFpbnMu
cmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShkb21haW5zLnNpemUoKSk7CkBAIC00NjcsNyArNDY3LDcg
QEAgLSAodm9pZClfZ2V0QWxsU3RvcmFnZUFjY2Vzc0VudHJpZXNGb3I6KFdLV2ViVmlldyAqKXdl
YlZpZXcgY29tcGxldGlvbkhhbmRsZXI6KHYKIAogLSAodm9pZClfc2NoZWR1bGVDb29raWVCbG9j
a2luZ1VwZGF0ZToodm9pZCAoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIKIHsKLSNpZiBFTkFC
TEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFD
S0lOR19QUkVWRU5USU9OKQogICAgIF93ZWJzaXRlRGF0YVN0b3JlLT5zY2hlZHVsZUNvb2tpZUJs
b2NraW5nVXBkYXRlKFtjb21wbGV0aW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9u
SGFuZGxlcildKCkgewogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogICAgIH0pOwpAQCAt
NDc4LDcgKzQ3OCw3IEBAIC0gKHZvaWQpX3NjaGVkdWxlQ29va2llQmxvY2tpbmdVcGRhdGU6KHZv
aWQgKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyCiAKIC0gKHZvaWQpX2xvZ1VzZXJJbnRlcmFj
dGlvbjooTlNVUkwgKilkb21haW4gY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKHZvaWQpKWNv
bXBsZXRpb25IYW5kbGVyCiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykK
KyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBfd2Vic2l0
ZURhdGFTdG9yZS0+bG9nVXNlckludGVyYWN0aW9uKGRvbWFpbiwgW2NvbXBsZXRpb25IYW5kbGVy
ID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKV0gewogICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcigpOwogICAgIH0pOwpAQCAtNDg5LDcgKzQ4OSw3IEBAIC0gKHZvaWQpX2xvZ1VzZXJJ
bnRlcmFjdGlvbjooTlNVUkwgKilkb21haW4gY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKHZv
aWQpKWNvCiAKIC0gKHZvaWQpX3NldFByZXZhbGVudERvbWFpbjooTlNVUkwgKilkb21haW4gY29t
cGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyCiB7Ci0jaWYg
RU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRf
VFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBfd2Vic2l0ZURhdGFTdG9yZS0+c2V0UHJldmFsZW50
UmVzb3VyY2UoVVJMKGRvbWFpbiksIFtjb21wbGV0aW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihj
b21wbGV0aW9uSGFuZGxlcildKCkgewogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogICAg
IH0pOwpAQCAtNTAwLDcgKzUwMCw3IEBAIC0gKHZvaWQpX3NldFByZXZhbGVudERvbWFpbjooTlNV
UkwgKilkb21haW4gY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKHZvaWQpKWNvCiAKIC0gKHZv
aWQpX2dldElzUHJldmFsZW50RG9tYWluOihOU1VSTCAqKWRvbWFpbiBjb21wbGV0aW9uSGFuZGxl
cjoodm9pZCAoXikoQk9PTCkpY29tcGxldGlvbkhhbmRsZXIKIHsKLSNpZiBFTkFCTEUoUkVTT1VS
Q0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVW
RU5USU9OKQogICAgIF93ZWJzaXRlRGF0YVN0b3JlLT5pc1ByZXZhbGVudFJlc291cmNlKFVSTChk
b21haW4pLCBbY29tcGxldGlvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRs
ZXIpXShib29sIGVuYWJsZWQpIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZW5hYmxlZCk7
CiAgICAgfSk7CkBAIC01MTEsNyArNTExLDcgQEAgLSAodm9pZClfZ2V0SXNQcmV2YWxlbnREb21h
aW46KE5TVVJMICopZG9tYWluIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShCT09MKSkKIAog
LSAodm9pZClfY2xlYXJQcmV2YWxlbnREb21haW46KE5TVVJMICopZG9tYWluIGNvbXBsZXRpb25I
YW5kbGVyOih2b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlcgogewotI2lmIEVOQUJMRShS
RVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5H
X1BSRVZFTlRJT04pCiAgICAgX3dlYnNpdGVEYXRhU3RvcmUtPmNsZWFyUHJldmFsZW50UmVzb3Vy
Y2UoVVJMKGRvbWFpbiksIFtjb21wbGV0aW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21wbGV0
aW9uSGFuZGxlcildKCkgewogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogICAgIH0pOwpA
QCAtNTIyLDcgKzUyMiw3IEBAIC0gKHZvaWQpX2NsZWFyUHJldmFsZW50RG9tYWluOihOU1VSTCAq
KWRvbWFpbiBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikodm9pZCkpCiAKIC0gKHZvaWQpX2Ns
ZWFyUmVzb3VyY2VMb2FkU3RhdGlzdGljczoodm9pZCAoXikodm9pZCkpY29tcGxldGlvbkhhbmRs
ZXIKIHsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJ
TlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIF93ZWJzaXRlRGF0YVN0b3JlLT5z
Y2hlZHVsZUNsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50KFdlYktpdDo6U2hvdWxkR3JhbmRmYXRo
ZXJTdGF0aXN0aWNzOjpObywgW2NvbXBsZXRpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBs
ZXRpb25IYW5kbGVyKV0oKSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiAgICAgfSk7
CkBAIC01MzMsNyArNTMzLDcgQEAgLSAodm9pZClfY2xlYXJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
Oih2b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlcgogCiAtICh2b2lkKV9nZXRSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YVN1bW1hcnk6KHZvaWQgKF4pKE5TQXJyYXk8X1dLUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1RoaXJkUGFydHkgKj4gKikpY29tcGxldGlvbkhhbmRsZXIKIHsKLSNpZiBF
TkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9U
UkFDS0lOR19QUkVWRU5USU9OKQogICAgIF93ZWJzaXRlRGF0YVN0b3JlLT5nZXRSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YVN1bW1hcnkoW2NvbXBsZXRpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRy
KGNvbXBsZXRpb25IYW5kbGVyKV0gKGF1dG8mJiB0aGlyZFBhcnR5RG9tYWlucykgewogICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcihjcmVhdGVOU0FycmF5KHRoaXJkUGFydHlEb21haW5zLCBbXSAo
YXV0byYmIGRvbWFpbikgewogICAgICAgICAgICAgcmV0dXJuIHdyYXBwZXIoQVBJOjpSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzVGhpcmRQYXJ0eTo6Y3JlYXRlKFdURk1vdmUoZG9tYWluKSkpOwpAQCAt
NTUxLDcgKzU1MSw3IEBAICsgKHZvaWQpX3NldENhY2hlZFByb2Nlc3NTdXNwZW5zaW9uRGVsYXlG
b3JUZXN0aW5nOihkb3VibGUpZGVsYXlJblNlY29uZHMKIAogLSAodm9pZClfaXNSZWxhdGlvbnNo
aXBPbmx5SW5EYXRhYmFzZU9uY2U6KE5TVVJMICopZmlyc3RQYXJ0eVVSTCB0aGlyZFBhcnR5OihO
U1VSTCAqKXRoaXJkUGFydHlVUkwgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wpKWNv
bXBsZXRpb25IYW5kbGVyCiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykK
KyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBfd2Vic2l0
ZURhdGFTdG9yZS0+aXNSZWxhdGlvbnNoaXBPbmx5SW5EYXRhYmFzZU9uY2UodGhpcmRQYXJ0eVVS
TCwgZmlyc3RQYXJ0eVVSTCwgW2NvbXBsZXRpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBs
ZXRpb25IYW5kbGVyKV0gKGJvb2wgcmVzdWx0KSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KHJlc3VsdCk7CiAgICAgfSk7CkBAIC01NjIsNyArNTYyLDcgQEAgLSAodm9pZClfaXNSZWxhdGlv
bnNoaXBPbmx5SW5EYXRhYmFzZU9uY2U6KE5TVVJMICopZmlyc3RQYXJ0eVVSTCB0aGlyZFBhcnR5
OihOU1UKIAogLSAodm9pZClfaXNSZWdpc3RlcmVkQXNTdWJyZXNvdXJjZVVuZGVyRmlyc3RQYXJ0
eTooTlNVUkwgKilmaXJzdFBhcnR5VVJMIHRoaXJkUGFydHk6KE5TVVJMICopdGhpcmRQYXJ0eVVS
TCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCkpY29tcGxldGlvbkhhbmRsZXIKIHsK
LSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJ
R0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIF93ZWJzaXRlRGF0YVN0b3JlLT5pc1JlZ2lz
dGVyZWRBc1N1YnJlc291cmNlVW5kZXIodGhpcmRQYXJ0eVVSTCwgZmlyc3RQYXJ0eVVSTCwgW2Nv
bXBsZXRpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKV0oYm9vbCBl
bmFibGVkKSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGVuYWJsZWQpOwogICAgIH0pOwpA
QCAtNTczLDcgKzU3Myw3IEBAIC0gKHZvaWQpX2lzUmVnaXN0ZXJlZEFzU3VicmVzb3VyY2VVbmRl
ckZpcnN0UGFydHk6KE5TVVJMICopZmlyc3RQYXJ0eVVSTCB0aGlyZFBhCiAKIC0gKHZvaWQpX3N0
YXRpc3RpY3NEYXRhYmFzZUhhc0FsbFRhYmxlczoodm9pZCAoXikoQk9PTCkpY29tcGxldGlvbkhh
bmRsZXIKIHsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJM
RShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIF93ZWJzaXRlRGF0YVN0b3Jl
LT5zdGF0aXN0aWNzRGF0YWJhc2VIYXNBbGxUYWJsZXMoW2NvbXBsZXRpb25IYW5kbGVyID0gbWFr
ZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKV0oYm9vbCBoYXNBbGxUYWJsZXMpIHsKICAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoaGFzQWxsVGFibGVzKTsKICAgICB9KTsKQEAgLTU4NCw3ICs1
ODQsNyBAQCAtICh2b2lkKV9zdGF0aXN0aWNzRGF0YWJhc2VIYXNBbGxUYWJsZXM6KHZvaWQgKF4p
KEJPT0wpKWNvbXBsZXRpb25IYW5kbGVyCiAKIC0gKHZvaWQpX3Byb2Nlc3NTdGF0aXN0aWNzQW5k
RGF0YVJlY29yZHM6KHZvaWQgKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyCiB7Ci0jaWYgRU5B
QkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJB
Q0tJTkdfUFJFVkVOVElPTikKICAgICBfd2Vic2l0ZURhdGFTdG9yZS0+c2NoZWR1bGVTdGF0aXN0
aWNzQW5kRGF0YVJlY29yZHNQcm9jZXNzaW5nKFtjb21wbGV0aW9uSGFuZGxlciA9IG1ha2VCbG9j
a1B0cihjb21wbGV0aW9uSGFuZGxlcildKCkgewogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigp
OwogICAgIH0pOwpAQCAtNTk1LDcgKzU5NSw3IEBAIC0gKHZvaWQpX3Byb2Nlc3NTdGF0aXN0aWNz
QW5kRGF0YVJlY29yZHM6KHZvaWQgKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyCiAKIC0gKHZv
aWQpX3NldFRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGU6KEJPT0wpZW5hYmxlZCBvbmx5T25T
aXRlc1dpdGhvdXRVc2VySW50ZXJhY3Rpb246KEJPT0wpb25seU9uU2l0ZXNXaXRob3V0VXNlcklu
dGVyYWN0aW9uIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFu
ZGxlcgogewotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxF
KElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgX3dlYnNpdGVEYXRhU3RvcmUt
PnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NTaG91bGRCbG9ja1RoaXJkUGFydHlDb29raWVzRm9y
VGVzdGluZyhlbmFibGVkLCBvbmx5T25TaXRlc1dpdGhvdXRVc2VySW50ZXJhY3Rpb24sIFtjb21w
bGV0aW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcildKCkgewogICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KaW5kZXggYmMxMjNjOWI1
OWE2YjhjN2ViYTFjZTZiNDEwYzhlMGMwNmNjZGM5NC4uZWI4NTYxMTc2NTk2ZGI5YTQyNDljYjEw
NzcxZWNlMWUzNTlmZTZkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCkBAIC0xMjAsNyArMTIwLDcgQEAgc3RhdGljIENG
U3RyaW5nUmVmIEFwcGxlQ29sb3JQcmVmZXJlbmNlc0NoYW5nZWROb3RpZmljYXRpb24gPSBDRlNU
UigiQXBwbGVDb2xvclAKIAogc3RhdGljIE5TU3RyaW5nICogY29uc3QgV2ViS2l0U3VwcHJlc3NN
ZW1vcnlQcmVzc3VyZUhhbmRsZXJEZWZhdWx0c0tleSA9IEAiV2ViS2l0U3VwcHJlc3NNZW1vcnlQ
cmVzc3VyZUhhbmRsZXIiOwogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykg
JiYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5H
X1BSRVZFTlRJT04pICYmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogc3RhdGljIE5TU3RyaW5nICog
Y29uc3QgV2ViS2l0TG9nQ29va2llSW5mb3JtYXRpb25EZWZhdWx0c0tleSA9IEAiV2ViS2l0TG9n
Q29va2llSW5mb3JtYXRpb24iOwogI2VuZGlmCiAKQEAgLTQxNCw3ICs0MTQsNyBAQCB2b2lkIFdl
YlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKGNvbnN0IFdlYlByb2Nl
c3NQcm94eSYgcHJvY2VzcwogI2VuZGlmCiAjZW5kaWYKIAotI2lmIEVOQUJMRShSRVNPVVJDRV9M
T0FEX1NUQVRJU1RJQ1MpICYmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorI2lmIEVOQUJMRShJTlRF
TExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKSAmJiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAg
ICBwYXJhbWV0ZXJzLnNob3VsZExvZ1VzZXJJbnRlcmFjdGlvbiA9IFtkZWZhdWx0cyBib29sRm9y
S2V5OldlYktpdExvZ0Nvb2tpZUluZm9ybWF0aW9uRGVmYXVsdHNLZXldOwogI2VuZGlmCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
UHJveHkuY3BwCmluZGV4IDBhNDUyZWVkNDViNTMzZGQyZTBjZDBjZGNhOTdiY2E3ZDE1MzQzZTYu
LjFjZGNmY2UwNmY5NWU2YjUzMTI3NWE4M2UzZWY3ZjA5NjhmZThhNzcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNw
cApAQCAtNTU5LDcgKzU1OSw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6cmVzb3VyY2VM
b2FkRGlkQ29tcGxldGVXaXRoRXJyb3IoV2ViUGFnZVByb3h5SWRlbnRpZmllCiAgICAgcGFnZS0+
cmVzb3VyY2VMb2FkRGlkQ29tcGxldGVXaXRoRXJyb3IoV1RGTW92ZShsb2FkSW5mbyksIFdURk1v
dmUocmVzcG9uc2UpLCBXVEZNb3ZlKGVycm9yKSk7CiB9CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0Vf
TE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5U
SU9OKQogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkdW1wUmVzb3VyY2VMb2FkU3RhdGlzdGlj
cyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5n
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAoIWNhblNlbmRNZXNzYWdlKCkpIHsK
QEAgLTEyNDIsNyArMTI0Miw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0RG9tYWlu
c1dpdGhDcm9zc1BhZ2VTdG9yYWdlQWNjZXNzKEhhc2hNYXA8VG9wRnJhbWVECiAgICAgICAgIHBy
b2Nlc3NQb29sLT5zZXREb21haW5zV2l0aENyb3NzUGFnZVN0b3JhZ2VBY2Nlc3MoSGFzaE1hcDxU
b3BGcmFtZURvbWFpbiwgU3ViUmVzb3VyY2VEb21haW4+IHsgZG9tYWlucyB9LCBbY2FsbGJhY2tB
Z2dyZWdhdG9yXSB7IH0pOwogfQogCi0jZW5kaWYgLy8gRU5BQkxFKFJFU09VUkNFX0xPQURfU1RB
VElTVElDUykKKyNlbmRpZiAvLyBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElP
TikKIAogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dERlYnVnTW9kZShib29sIGRlYnVnTW9kZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKaW5kZXggZWIxMmM0NGUxZWM3
MGY1N2EzYjE2MmYyODllOWEzYjU3ZDMyMDMwOS4uNjk5YTgyNTllZmFkYTEyYmFlZmYxY2RlOGJl
MTBkMTM2ODQ1ZWQ2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKQEAgLTEzMiw3ICsxMzIsNyBAQCBwdWJsaWM6CiAK
ICAgICB2b2lkIHByZWNvbm5lY3RUbyhQQUw6OlNlc3Npb25JRCwgV2ViUGFnZVByb3h5SWRlbnRp
ZmllciwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYs
IFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBzdGQ6Om9wdGlvbmFsPE5hdmlnYXRp
bmdUb0FwcEJvdW5kRG9tYWluPiwgTGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQpOwogCi0j
aWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdF
TlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICB2b2lkIGNsZWFyUHJldmFsZW50UmVzb3VyY2Uo
UEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIGNsZWFyVXNlckludGVyYWN0aW9uKFBBTDo6U2Vzc2lv
bklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
Jik7CiAgICAgdm9pZCBkdW1wUmVzb3VyY2VMb2FkU3RhdGlzdGljcyhQQUw6OlNlc3Npb25JRCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiYmKTsKQEAgLTMwMSw3ICszMDEsNyBAQCBw
cml2YXRlOgogICAgIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2UoV2ViUGFnZVByb3h5SWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBX
ZWJDb3JlOjpTaG91bGRTYW1wbGUpOwogICAgIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRo
UmVzdWx0KFdlYlBhZ2VQcm94eUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29u
c3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgdWludDMyX3QgcmVzdWx0LCBXZWJDb3JlOjpTaG91bGRT
YW1wbGUpOwogICAgIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoV2ViUGFnZVBy
b3h5SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2Ny
aXB0aW9uLCBkb3VibGUgdmFsdWUsIHVuc2lnbmVkIHNpZ25pZmljYW50RmlndXJlcywgV2ViQ29y
ZTo6U2hvdWxkU2FtcGxlKTsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQor
I2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIHZvaWQgbG9n
VGVzdGluZ0V2ZW50KFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGV2ZW50KTsKICAgICB2
b2lkIG5vdGlmeVJlc291cmNlTG9hZFN0YXRpc3RpY3NQcm9jZXNzZWQoKTsKICAgICB2b2lkIG5v
dGlmeVdlYnNpdGVEYXRhRGVsZXRpb25Gb3JSZWdpc3RyYWJsZURvbWFpbnNGaW5pc2hlZCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c1Byb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGVlZDY1YWFlMjA0YTBiYTJiYjA2YWQ1
YTg3N2NhNjAwNWNmNDVkMGUuLmQ2NzQ5MjVjNTgxZGJkOWYwYTc2OWE2NzAwMzZkOWM2ZGVmMzQw
NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KQEAgLTMzLDcgKzMzLDcgQEAgbWVz
c2FnZXMgLT4gTmV0d29ya1Byb2Nlc3NQcm94eSBMZWdhY3lSZWNlaXZlciB7CiAgICAgTG9nRGlh
Z25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllciBw
YWdlSUQsIFN0cmluZyBtZXNzYWdlLCBTdHJpbmcgZGVzY3JpcHRpb24sIHVpbnQzMl90IHJlc3Vs
dCwgZW51bTpib29sIFdlYkNvcmU6OlNob3VsZFNhbXBsZSBzaG91bGRTYW1wbGUpCiAgICAgTG9n
RGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoV2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVy
IHBhZ2VJRCwgU3RyaW5nIG1lc3NhZ2UsIFN0cmluZyBkZXNjcmlwdGlvbiwgZG91YmxlIHZhbHVl
LCB1bnNpZ25lZCBzaWduaWZpY2FudEZpZ3VyZXMsIGVudW06Ym9vbCBXZWJDb3JlOjpTaG91bGRT
YW1wbGUgc2hvdWxkU2FtcGxlKQogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElD
UykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBMb2dU
ZXN0aW5nRXZlbnQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTdHJpbmcgZXZlbnQpCiAgICAg
Tm90aWZ5UmVzb3VyY2VMb2FkU3RhdGlzdGljc1Byb2Nlc3NlZCgpCiAgICAgTm90aWZ5V2Vic2l0
ZURhdGFEZWxldGlvbkZvclJlZ2lzdHJhYmxlRG9tYWluc0ZpbmlzaGVkKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDVjMzc1NDE3OTRiNzk3ZDdmNTMxMGNj
Mzc0ZGYwNWYwZTk2YzAwOWMuLmRjZGY2OGQwOGVkODQyNDIxODczYmNjMjAyMjllYTg4MGQzYTc4
NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNDg0OSw3
ICs0ODQ5LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JG
cmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHAKICAgICAgICAgbV9wcm92aXNpb25h
bFBhZ2UgPSBudWxscHRyOwogfQogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElD
UykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKIHN0YXRpYyBP
cHRpb25TZXQ8Q3Jvc3NTaXRlTmF2aWdhdGlvbkRhdGFUcmFuc2Zlcjo6RmxhZz4gY2hlY2tJZk5h
dmlnYXRpb25Db250YWluc0RhdGFUcmFuc2Zlcihjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEgcmVx
dWVzdGVyT3JpZ2luLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIGN1cnJlbnRSZXF1ZXN0KQogewog
ICAgIE9wdGlvblNldDxDcm9zc1NpdGVOYXZpZ2F0aW9uRGF0YVRyYW5zZmVyOjpGbGFnPiBuYXZp
Z2F0aW9uRGF0YVRyYW5zZmVyOwpAQCAtNDg4Miw3ICs0ODgyLDcgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OmRpZENvbW1pdExvYWRGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgRnJhbWVJ
bmZvRGF0YSYKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIG1lc3NhZ2UgY2hlY2sgdGhhdCBuYXZp
Z2F0aW9uSUQgaXMgbm90IHplcm8gaGVyZSwgYnV0IGl0J3MgY3VycmVudGx5IHplcm8gZm9yIHNv
bWUgbmF2aWdhdGlvbnMgdGhyb3VnaCB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLgogICAgIFJlZlB0
cjxBUEk6Ok5hdmlnYXRpb24+IG5hdmlnYXRpb247CiAgICAgaWYgKGZyYW1lLT5pc01haW5GcmFt
ZSgpICYmIG5hdmlnYXRpb25JRCAmJiAobmF2aWdhdGlvbiA9IG5hdmlnYXRpb25TdGF0ZSgpLm5h
dmlnYXRpb24obmF2aWdhdGlvbklEKSkpIHsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFU
SVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAg
ICAgICBhdXRvIHJlcXVlc3Rlck9yaWdpbiA9IG5hdmlnYXRpb24tPmxhc3ROYXZpZ2F0aW9uQWN0
aW9uKCkucmVxdWVzdGVyT3JpZ2luOwogICAgICAgICBhdXRvIGN1cnJlbnRSZXF1ZXN0ID0gbmF2
aWdhdGlvbi0+Y3VycmVudFJlcXVlc3QoKTsKICAgICAgICAgYXV0byBuYXZpZ2F0aW9uRGF0YVRy
YW5zZmVyID0gY2hlY2tJZk5hdmlnYXRpb25Db250YWluc0RhdGFUcmFuc2ZlcihyZXF1ZXN0ZXJP
cmlnaW4sIGN1cnJlbnRSZXF1ZXN0KTsKQEAgLTUwMTgsNyArNTAxOCw3IEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjpkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgdWludDY0CiAKICAgICBpZiAoZnJhbWUtPmlzTWFpbkZyYW1lKCkpIHsKICAgICAgICAg
bV9uYXZpZ2F0aW9uQ2xpZW50LT5kaWRGaW5pc2hEb2N1bWVudExvYWQoKnRoaXMsIG5hdmlnYXRp
b24uZ2V0KCksIG1fcHJvY2Vzcy0+dHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyh1c2VyRGF0YS5v
YmplY3QoKSkuZ2V0KCkpOwotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisj
aWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgICAgIG1fZGlk
RmluaXNoRG9jdW1lbnRMb2FkRm9yTWFpbkZyYW1lVGltZXN0YW1wID0gTW9ub3RvbmljVGltZTo6
bm93KCk7CiAjZW5kaWYKICAgICB9CkBAIC01NDk2LDcgKzU0OTYsNyBAQCB2b2lkIFdlYlBhZ2VQ
cm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihSZWY8V2ViUHJvY2Vzc1Byb3h5
PiYmIHByb2NlcwogICAgIG1fd2Vic2l0ZURhdGFTdG9yZS0+YmVnaW5BcHBCb3VuZERvbWFpbkNo
ZWNrKGhvc3QudG9TdHJpbmcoKSwgcHJvdG9jb2wudG9TdHJpbmcoKSwgbGlzdGVuZXIpOwogI2Vu
ZGlmCiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJ
TlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIGF1dG8gd2FzUG90ZW50aWFsbHlJ
bml0aWF0ZWRCeVVzZXIgPSBuYXZpZ2F0aW9uLT5pc0xvYWRlZFdpdGhOYXZpZ2F0aW9uU2hhcmVk
KCkgfHwgdXNlckluaXRpYXRlZEFjdGl2aXR5OwogICAgIGlmICghc2Vzc2lvbklEKCkuaXNFcGhl
bWVyYWwoKSkKICAgICAgICAgbG9nRnJhbWVOYXZpZ2F0aW9uKGZyYW1lLCBVUkwoVVJMKCksIG1f
cGFnZUxvYWRTdGF0ZS51cmwoKSksIHJlcXVlc3QsIHJlZGlyZWN0UmVzcG9uc2UudXJsKCksIHdh
c1BvdGVudGlhbGx5SW5pdGlhdGVkQnlVc2VyKTsKQEAgLTU1MzYsNyArNTUzNiw3IEBAIFdlYlBh
Z2VQcm94eSogV2ViUGFnZVByb3h5Ojpub25FcGhlbWVyYWxXZWJQYWdlUHJveHkoKQogICAgIHJl
dHVybiBudWxscHRyOwogfQogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykK
KyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKIHZvaWQgV2ViUGFn
ZVByb3h5Ojpsb2dGcmFtZU5hdmlnYXRpb24oY29uc3QgV2ViRnJhbWVQcm94eSYgZnJhbWUsIGNv
bnN0IFVSTCYgcGFnZVVSTCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
LCBjb25zdCBVUkwmIHJlZGlyZWN0VVJMLCBib29sIHdhc1BvdGVudGlhbGx5SW5pdGlhdGVkQnlV
c2VyKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CkBAIC05OTkzLDcgKzk5OTMs
NyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bG9hZFN5bmNocm9ub3VzVVJMU2NoZW1lVGFzayhVUkxT
Y2hlbWVUYXNrUGFyYW1ldGVycyYmIHBhcmFtZQogICAgIGl0ZXJhdG9yLT52YWx1ZS0+c3RhcnRU
YXNrKCp0aGlzLCBtX3Byb2Nlc3MsIG1fd2ViUGFnZUlELCBXVEZNb3ZlKHBhcmFtZXRlcnMpLCBX
VEZNb3ZlKHJlcGx5KSk7CiB9CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNT
KQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogdm9pZCBXZWJQ
YWdlUHJveHk6OnJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybShjb25zdCBSZWdpc3RyYWJsZURv
bWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURv
bWFpbiwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9v
bCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgbV91aUNsaWVudC0+cmVxdWVzdFN0b3Jh
Z2VBY2Nlc3NDb25maXJtKCp0aGlzLCBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpLCBzdWJG
cmFtZURvbWFpbiwgdG9wRnJhbWVEb21haW4sIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsK
QEAgLTEwNzE1LDcgKzEwNzE1LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldE9yaWVudGF0aW9u
Rm9yTWVkaWFDYXB0dXJlKHVpbnQ2NF90IG9yaWVudGF0aW9uKQogI2VuZGlmCiB9CiAKLSNpZiBF
TkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9U
UkFDS0lOR19QUkVWRU5USU9OKQogdm9pZCBXZWJQYWdlUHJveHk6OmdldExvYWRlZFN1YnJlc291
cmNlRG9tYWlucyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxSZWdpc3RyYWJsZURvbWFp
bj4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1l
c3NhZ2VzOjpXZWJQYWdlOjpHZXRMb2FkZWRTdWJyZXNvdXJjZURvbWFpbnMoKSwgV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApp
bmRleCA5MzA0Y2ZlMjA2OWVkNmY5MTg1NTA2OWMyZWQxMmU1ZmRjMDk0M2RhLi5mNDQxNzE0NDMx
YTQxNGZiNTM5NWY2NDFiYmY4ZWRlOGQzNTQ2YTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaApAQCAtMTY2OSw3ICsxNjY5LDcgQEAgcHVibGljOgogICAgIHZvaWQgdG91
Y2hCYXJNZW51SXRlbURhdGFSZW1vdmVkKGNvbnN0IFRvdWNoQmFyTWVudUl0ZW1EYXRhJik7CiAj
ZW5kaWYKIAotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxF
KElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgdm9pZCByZXF1ZXN0U3RvcmFn
ZUFjY2Vzc0NvbmZpcm0oY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1l
RG9tYWluLCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4s
IFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
Jik7CiAgICAgdm9pZCBkaWRDb21taXRDcm9zc1NpdGVMb2FkV2l0aERhdGFUcmFuc2ZlckZyb21Q
cmV2YWxlbnRSZXNvdXJjZSgpOwogICAgIHZvaWQgZ2V0TG9hZGVkU3VicmVzb3VyY2VEb21haW5z
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWlu
PiYmKT4mJik7CkBAIC0yNDczLDcgKzI0NzMsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBkaWRB
dHRhY2hUb1J1bm5pbmdQcm9jZXNzKCk7CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFU
SVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAg
IHZvaWQgbG9nRnJhbWVOYXZpZ2F0aW9uKGNvbnN0IFdlYkZyYW1lUHJveHkmLCBjb25zdCBVUkwm
IHBhZ2VVUkwsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFVSTCYgcmVk
aXJlY3RVUkwsIGJvb2wgd2FzUG90ZW50aWFsbHlJbml0aWF0ZWRCeVVzZXIpOwogI2VuZGlmCiAK
QEAgLTMwNjIsNyArMzA2Miw3IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkRl
dmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94eT4gbV93ZWJEZXZpY2VPcmllbnRhdGlv
blVwZGF0ZVByb3ZpZGVyUHJveHk7CiAjZW5kaWYKIAotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FE
X1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04p
CiAgICAgTW9ub3RvbmljVGltZSBtX2RpZEZpbmlzaERvY3VtZW50TG9hZEZvck1haW5GcmFtZVRp
bWVzdGFtcDsKICNlbmRpZgogICAgICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQb29sLmNwcAppbmRleCBmY2VmNDMwNWM4ODIyMjcxYzkxOGVjYTA4MTk2NGNlNDJhNzlh
OTkyLi5kYzc2NGY4ZDRmZTdjZjRlODc4MTMzNDU5ZWY1OTY2YzFkMjQ2MDRhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC03MjYsNyArNzI2LDcgQEAg
V2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnMgV2ViUHJvY2Vzc1Bvb2w6OndlYlByb2Nlc3NE
YXRhU3RvcmVQYXJhbWV0ZXJzKFdlYlAKICAgICAgICAgV1RGTW92ZShtZWRpYUtleVN0b3JhZ2VE
aXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpLAogICAgICAgICBXVEZNb3ZlKGphdmFTY3JpcHRDb25m
aWd1cmF0aW9uRGlyZWN0b3J5KSwKICAgICAgICAgV1RGTW92ZShqYXZhU2NyaXB0Q29uZmlndXJh
dGlvbkRpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSksCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURf
U1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikK
ICAgICAgICAgd2Vic2l0ZURhdGFTdG9yZS50aGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlKCks
CiAgICAgICAgIG1fZG9tYWluc1dpdGhVc2VySW50ZXJhY3Rpb24sCiAgICAgICAgIG1fZG9tYWlu
c1dpdGhDcm9zc1BhZ2VTdG9yYWdlQWNjZXNzUXVpcmssCkBAIC0yMDA4LDcgKzIwMDgsNyBAQCB2
b2lkIFdlYlByb2Nlc3NQb29sOjpjbGVhckN1cnJlbnRNb2RpZmllclN0YXRlRm9yVGVzdGluZygp
CiAgICAgc2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpDbGVhckN1cnJl
bnRNb2RpZmllclN0YXRlRm9yVGVzdGluZygpKTsKIH0KIAotI2lmIEVOQUJMRShSRVNPVVJDRV9M
T0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJ
T04pCiB2b2lkIFdlYlByb2Nlc3NQb29sOjpzZXREb21haW5zV2l0aFVzZXJJbnRlcmFjdGlvbihI
YXNoU2V0PFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluPiYmIGRvbWFpbnMpCiB7CiAgICAgc2Vu
ZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpTZXREb21haW5zV2l0aFVzZXJJ
bnRlcmFjdGlvbihkb21haW5zKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUG9vbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuaAppbmRleCAwNWNmNTM0Njg5ZTVhYjM5YWQ5NmNiYTI1ZmQzMzZiNWYyNDEyNWQyLi5iM2Ix
OTEzMzJlMzViMGIzN2EwZGFmYTJlZTM0MTM1NTg0MzVhZjUzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKQEAgLTQ2MSw3ICs0NjEsNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCBzZW5kRGlzcGxheUNvbmZpZ3VyYXRpb25DaGFuZ2VkTWVzc2FnZUZvclRlc3RpbmcoKTsK
ICAgICB2b2lkIGNsZWFyQ3VycmVudE1vZGlmaWVyU3RhdGVGb3JUZXN0aW5nKCk7CiAKLSNpZiBF
TkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9U
UkFDS0lOR19QUkVWRU5USU9OKQogICAgIHZvaWQgc2V0RG9tYWluc1dpdGhVc2VySW50ZXJhY3Rp
b24oSGFzaFNldDxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4mJik7CiAgICAgdm9pZCBzZXRE
b21haW5zV2l0aENyb3NzUGFnZVN0b3JhZ2VBY2Nlc3MoSGFzaE1hcDxUb3BGcmFtZURvbWFpbiwg
U3ViUmVzb3VyY2VEb21haW4+JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAg
dm9pZCBzZWVkUmVzb3VyY2VMb2FkU3RhdGlzdGljc0ZvclRlc3RpbmcoY29uc3QgV2ViQ29yZTo6
UmVnaXN0cmFibGVEb21haW4mIGZpcnN0UGFydHlEb21haW4sIGNvbnN0IFdlYkNvcmU6OlJlZ2lz
dHJhYmxlRG9tYWluJiB0aGlyZFBhcnR5RG9tYWluLCBib29sIHNob3VsZFNjaGVkdWxlTm90aWZp
Y2F0aW9uLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwpAQCAtNzkzLDcgKzc5Myw3IEBA
IHByaXZhdGU6CiAjZW5kaWYKICAgICBzdGF0aWMgYm9vbCBzX3VzZVNlcGFyYXRlU2VydmljZVdv
cmtlclByb2Nlc3M7CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lm
IEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIEhhc2hTZXQ8V2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4+IG1fZG9tYWluc1dpdGhVc2VySW50ZXJhY3Rpb247CiAg
ICAgSGFzaE1hcDxUb3BGcmFtZURvbWFpbiwgU3ViUmVzb3VyY2VEb21haW4+IG1fZG9tYWluc1dp
dGhDcm9zc1BhZ2VTdG9yYWdlQWNjZXNzUXVpcms7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IGQ5YmE2NDgwZjhkNmViZmI4ZGU4NmRi
ZmJhNmRjNzAxNTE1OWE2MDguLjJjYmUxMjg4NGI1YzA3NmU5ZDA0ZGYyOGZjOTk0NDViMmYzOGU4
YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAt
NTQxLDcgKzU0MSw3IEBAIFdlYlBhZ2VQcm94eSogV2ViUHJvY2Vzc1Byb3h5Ojp3ZWJQYWdlKFdl
YlBhZ2VQcm94eUlkZW50aWZpZXIgcGFnZUlEKQogICAgIHJldHVybiBnbG9iYWxQYWdlTWFwKCku
Z2V0KHBhZ2VJRCk7CiB9CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQor
I2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogdm9pZCBXZWJQcm9j
ZXNzUHJveHk6Om5vdGlmeVBhZ2VTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHNQcm9jZXNzZWQoKQog
ewogICAgIGZvciAoYXV0byYgcGFnZSA6IGdsb2JhbFBhZ2VNYXAoKSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXggMGVhMjU5NGJlYmFhZmY3NjZkYjk0ZGNi
MzY3MmE5NjJjMWI4NDIzOS4uNmRjZTQyZTgyYWQyMzgxMzIwNmRjN2ZlMjUwOTg1YWZlODE4YTQ1
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTIzNyw3
ICsyMzcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkZWxldGVXZWJzaXRlRGF0YShQQUw6OlNlc3Np
b25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4sIFdhbGxUaW1lIG1vZGlmaWVkU2luY2Us
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBkZWxldGVXZWJzaXRlRGF0
YUZvck9yaWdpbnMoUEFMOjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBj
b25zdCBWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiYsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQor
I2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIHN0YXRpYyB2
b2lkIG5vdGlmeVBhZ2VTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHNQcm9jZXNzZWQoKTsKIAogICAg
IHN0YXRpYyB2b2lkIG5vdGlmeVdlYnNpdGVEYXRhRGVsZXRpb25Gb3JSZWdpc3RyYWJsZURvbWFp
bnNGaW5pc2hlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0
ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tCmluZGV4IGNi
ZGQwNjExNWJlNjNiMjQ2ZjU4MGZmOTQ0NzFmMGIwOGVjYjBmYjIuLjNlYmUyZGVjMmY1OGU5MzRk
ODIwMTQ5NzI4NWM1ZjRjZWRjZDM5NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYnNpdGVEYXRhL0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29j
b2EubW0KQEAgLTc0LDcgKzc0LDcgQEAgc3RhdGljIHN0ZDo6YXRvbWljPGJvb2w+IGhhc0luaXRp
YWxpemVkQXBwQm91bmREb21haW5zID0gZmFsc2U7CiBzdGF0aWMgc3RkOjphdG9taWM8Ym9vbD4g
a2V5RXhpc3RzID0gZmFsc2U7CiAjZW5kaWYKIAotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NU
QVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiBX
ZWJDb3JlOjpUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlIFdlYnNpdGVEYXRhU3RvcmU6OnRo
aXJkUGFydHlDb29raWVCbG9ja2luZ01vZGUoKSBjb25zdAogewogICAgIGlmICghbV90aGlyZFBh
cnR5Q29va2llQmxvY2tpbmdNb2RlKSB7CkBAIC05OCw3ICs5OCw3IEBAIHZvaWQgV2Vic2l0ZURh
dGFTdG9yZTo6cGxhdGZvcm1TZXROZXR3b3JrUGFyYW1ldGVycyhXZWJzaXRlRGF0YVN0b3JlUGFy
YW1ldGVycyYKICAgICBhdXRvIHNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRFbmFibGVkID0gV2Vi
Q29yZTo6U2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQ6Ok5vOwogICAgIGF1dG8gZmly
c3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGUgPSBXZWJDb3JlOjpGaXJzdFBhcnR5V2Vic2l0
ZURhdGFSZW1vdmFsTW9kZTo6QWxsQnV0Q29va2llczsKICAgICBXZWJDb3JlOjpSZWdpc3RyYWJs
ZURvbWFpbiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWFudWFsUHJldmFsZW50UmVzb3VyY2UgeyB9
OwotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVM
TElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgZW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RlYnVnTW9kZSA9IFtkZWZhdWx0cyBib29sRm9yS2V5OkAiSVRQRGVidWdNb2RlIl07CiAK
ICAgICBpZiAoW2RlZmF1bHRzIGJvb2xGb3JLZXk6W05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6
QCJFeHBlcmltZW50YWwlQCIsIFdlYlByZWZlcmVuY2VzS2V5Ojppc1NhbWVTaXRlU3RyaWN0RW5m
b3JjZW1lbnRFbmFibGVkS2V5KCkuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKV1dKQpAQCAtMTI2LDcg
KzEyNiw3IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6cGxhdGZvcm1TZXROZXR3b3JrUGFyYW1l
dGVycyhXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyYKICAgICBzdGF0aWMgTlNTdHJpbmcgKiBj
b25zdCBXZWJLaXRMb2dDb29raWVJbmZvcm1hdGlvbkRlZmF1bHRzS2V5ID0gQCJXZWJLaXRMb2dD
b29raWVJbmZvcm1hdGlvbiI7CiAgICAgc2hvdWxkTG9nQ29va2llSW5mb3JtYXRpb24gPSBbZGVm
YXVsdHMgYm9vbEZvcktleTpXZWJLaXRMb2dDb29raWVJbmZvcm1hdGlvbkRlZmF1bHRzS2V5XTsK
ICNlbmRpZgotI2VuZGlmIC8vIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjZW5k
aWYgLy8gRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAKICAgICBVUkwg
aHR0cFByb3h5ID0gbV9jb25maWd1cmF0aW9uLT5odHRwUHJveHkoKTsKICAgICBVUkwgaHR0cHNQ
cm94eSA9IG1fY29uZmlndXJhdGlvbi0+aHR0cHNQcm94eSgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFSZWNvcmQuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFSZWNvcmQuY3BwCmlu
ZGV4IGU5MTllMTE4ZGZmYjMwYjEwOTBjN2ZiY2Y1NjU2MDI3ZGM4YjlmZGQuLmU5M2M4ZmEyODI3
ZTVhYzY4NWYxZWE1NWM5N2NhODEwN2IzZjc5ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhUmVjb3JkLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVJlY29yZC5jcHAKQEAgLTEx
NCw3ICsxMTQsNyBAQCB2b2lkIFdlYnNpdGVEYXRhUmVjb3JkOjphZGRBbHRlcm5hdGl2ZVNlcnZp
Y2VzSG9zdG5hbWUoY29uc3QgU3RyaW5nJiBob3N0TmFtZSkKICNlbmRpZgogfQogCi0jaWYgRU5B
QkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJB
Q0tJTkdfUFJFVkVOVElPTikKIHZvaWQgV2Vic2l0ZURhdGFSZWNvcmQ6OmFkZFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NSZWdpc3RyYWJsZURvbWFpbihjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURv
bWFpbiYgZG9tYWluKQogewogICAgIHR5cGVzLmFkZChXZWJzaXRlRGF0YVR5cGU6OlJlc291cmNl
TG9hZFN0YXRpc3RpY3MpOwpAQCAtMTg0LDcgKzE4NCw3IEBAIFdlYnNpdGVEYXRhUmVjb3JkIFdl
YnNpdGVEYXRhUmVjb3JkOjppc29sYXRlZENvcHkoKSBjb25zdAogI2VuZGlmCiAgICAgICAgIGNy
b3NzVGhyZWFkQ29weShIU1RTQ2FjaGVIb3N0TmFtZXMpLAogICAgICAgICBjcm9zc1RocmVhZENv
cHkoYWx0ZXJuYXRpdmVTZXJ2aWNlc0hvc3ROYW1lcyksCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xP
QURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElP
TikKICAgICAgICAgY3Jvc3NUaHJlYWRDb3B5KHJlc291cmNlTG9hZFN0YXRpc3RpY3NSZWdpc3Ry
YWJsZURvbWFpbnMpLAogI2VuZGlmCiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhUmVjb3JkLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVJlY29yZC5oCmluZGV4IGE0MDgzZTQ0
ODI3ZGVjNWY1NzhmMjkzN2Y2ZjFhYTVmMGJjZjUxOGYuLjlkODZlYTA1YTljODBlMzA1MWJhMmUy
NDliZDgzYmYzNmYxYzY1ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YnNpdGVEYXRhL1dlYnNpdGVEYXRhUmVjb3JkLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFSZWNvcmQuaApAQCAtNTQsNyArNTQsNyBAQCBzdHJ1
Y3QgV2Vic2l0ZURhdGFSZWNvcmQgewogI2VuZGlmCiAgICAgdm9pZCBhZGRIU1RTQ2FjaGVIb3N0
bmFtZShjb25zdCBTdHJpbmcmIGhvc3ROYW1lKTsKICAgICB2b2lkIGFkZEFsdGVybmF0aXZlU2Vy
dmljZXNIb3N0bmFtZShjb25zdCBTdHJpbmcmIGhvc3ROYW1lKTsKLSNpZiBFTkFCTEUoUkVTT1VS
Q0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVW
RU5USU9OKQogICAgIHZvaWQgYWRkUmVzb3VyY2VMb2FkU3RhdGlzdGljc1JlZ2lzdHJhYmxlRG9t
YWluKGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJik7CiAjZW5kaWYKIApAQCAtNzks
NyArNzksNyBAQCBzdHJ1Y3QgV2Vic2l0ZURhdGFSZWNvcmQgewogI2VuZGlmCiAgICAgSGFzaFNl
dDxTdHJpbmc+IEhTVFNDYWNoZUhvc3ROYW1lczsKICAgICBIYXNoU2V0PFN0cmluZz4gYWx0ZXJu
YXRpdmVTZXJ2aWNlc0hvc3ROYW1lczsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNU
SUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIEhh
c2hTZXQ8V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4+IHJlc291cmNlTG9hZFN0YXRpc3RpY3NS
ZWdpc3RyYWJsZURvbWFpbnM7CiAjZW5kaWYKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IDUxMTM0
OGYyMGZhYjlmNDY1ZjhmZGU5MDFmZTYwN2Y3ZTczNzdmMDcuLjc3ODk2MGFjMzM4ZjIyZmZhZDVh
NmIyNTA1Mjc1OWU4NTVhNTkzZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCkBAIC00MTcsNyArNDE3LDcg
QEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpmZXRjaERhdGFBbmRBcHBseShPcHRpb25TZXQ8V2Vi
c2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMsIE8KICAgICAgICAgICAgICAgICByZWNvcmQuYWRkSFNU
U0NhY2hlSG9zdG5hbWUoaG9zdE5hbWUpOwogICAgICAgICAgICAgfQogCi0jaWYgRU5BQkxFKFJF
U09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdf
UFJFVkVOVElPTikKICAgICAgICAgICAgIGZvciAoY29uc3QgYXV0byYgZG9tYWluIDogd2Vic2l0
ZURhdGEucmVnaXN0cmFibGVEb21haW5zV2l0aFJlc291cmNlTG9hZFN0YXRpc3RpY3MpIHsKICAg
ICAgICAgICAgICAgICBhdXRvIGRpc3BsYXlOYW1lID0gV2Vic2l0ZURhdGFSZWNvcmQ6OmRpc3Bs
YXlOYW1lRm9ySG9zdE5hbWUoZG9tYWluLnN0cmluZygpKTsKICAgICAgICAgICAgICAgICBpZiAo
IWRpc3BsYXlOYW1lKQpAQCAtNTk1LDcgKzU5NSw3IEBAIHByaXZhdGU6CiAjZW5kaWYKIH0KIAot
I2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElH
RU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OmZldGNoRGF0
YUZvclJlZ2lzdHJhYmxlRG9tYWlucyhPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlw
ZXMsIE9wdGlvblNldDxXZWJzaXRlRGF0YUZldGNoT3B0aW9uPiBmZXRjaE9wdGlvbnMsIFZlY3Rv
cjxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4mJiBkb21haW5zLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFZlY3RvcjxXZWJzaXRlRGF0YVJlY29yZD4mJiwgSGFzaFNldDxXZWJDb3JlOjpSZWdp
c3RyYWJsZURvbWFpbj4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgZmV0Y2hEYXRh
QW5kQXBwbHkoZGF0YVR5cGVzLCBmZXRjaE9wdGlvbnMsIG1fcXVldWUuY29weVJlZigpLCBbZG9t
YWlucyA9IGNyb3NzVGhyZWFkQ29weShkb21haW5zKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKGF1dG8mJiBleGlzdGluZ0RhdGFSZWNvcmRzKSBtdXRh
YmxlIHsKQEAgLTY4NSw3ICs2ODUsNyBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnJlbW92ZURh
dGEoT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gZGF0YVR5cGVzLCBXYWxsVGltZQogICAgIH0K
ICNlbmRpZgogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFC
TEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBib29sIGRpZE5vdGlmeU5l
dHdvcmtQcm9jZXNzVG9EZWxldGVXZWJzaXRlRGF0YSA9IGZhbHNlOwogI2VuZGlmCiAgICAgYXV0
byBuZXR3b3JrUHJvY2Vzc0FjY2Vzc1R5cGUgPSBjb21wdXRlTmV0d29ya1Byb2Nlc3NBY2Nlc3NU
eXBlRm9yRGF0YVJlbW92YWwoZGF0YVR5cGVzLCAhaXNQZXJzaXN0ZW50KCkpOwpAQCAtNjk3LDcg
KzY5Nyw3IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6cmVtb3ZlRGF0YShPcHRpb25TZXQ8V2Vi
c2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMsIFdhbGxUaW1lCiAgICAgY2FzZSBQcm9jZXNzQWNjZXNz
VHlwZTo6T25seUlmTGF1bmNoZWQ6CiAgICAgICAgIGlmIChtX25ldHdvcmtQcm9jZXNzKSB7CiAg
ICAgICAgICAgICBtX25ldHdvcmtQcm9jZXNzLT5kZWxldGVXZWJzaXRlRGF0YShtX3Nlc3Npb25J
RCwgZGF0YVR5cGVzLCBtb2RpZmllZFNpbmNlLCBbY2FsbGJhY2tBZ2dyZWdhdG9yXSB7IH0pOwot
I2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElH
RU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgICAgICAgICBkaWROb3RpZnlOZXR3b3JrUHJv
Y2Vzc1RvRGVsZXRlV2Vic2l0ZURhdGEgPSB0cnVlOwogI2VuZGlmCiAgICAgICAgIH0KQEAgLTgw
OCw3ICs4MDgsNyBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnJlbW92ZURhdGEoT3B0aW9uU2V0
PFdlYnNpdGVEYXRhVHlwZT4gZGF0YVR5cGVzLCBXYWxsVGltZQogICAgIH0KICNlbmRpZgogCi0j
aWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdF
TlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBpZiAoZGF0YVR5cGVzLmNvbnRhaW5zKFdlYnNp
dGVEYXRhVHlwZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljcykpIHsKICAgICAgICAgaWYgKCFkaWRO
b3RpZnlOZXR3b3JrUHJvY2Vzc1RvRGVsZXRlV2Vic2l0ZURhdGEpCiAgICAgICAgICAgICBuZXR3
b3JrUHJvY2VzcygpLmRlbGV0ZVdlYnNpdGVEYXRhKG1fc2Vzc2lvbklELCBkYXRhVHlwZXMsIG1v
ZGlmaWVkU2luY2UsIFtjYWxsYmFja0FnZ3JlZ2F0b3JdIHsgfSk7CkBAIC04NjcsNyArODY3LDcg
QEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpyZW1vdmVEYXRhKE9wdGlvblNldDxXZWJzaXRlRGF0
YVR5cGU+IGRhdGFUeXBlcywgY29uc3QgVmUKICAgICAgICAgICAgICAgICAgICAgY29va2llSG9z
dE5hbWVzLmFwcGVuZChob3N0TmFtZSk7CiAgICAgICAgICAgICAgICAgZm9yIChhdXRvJiBob3N0
TmFtZSA6IGRhdGFSZWNvcmQuSFNUU0NhY2hlSG9zdE5hbWVzKQogICAgICAgICAgICAgICAgICAg
ICBIU1RTQ2FjaGVIb3N0TmFtZXMuYXBwZW5kKGhvc3ROYW1lKTsKLSNpZiBFTkFCTEUoUkVTT1VS
Q0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVW
RU5USU9OKQogICAgICAgICAgICAgICAgIGZvciAoYXV0byYgcmVnaXN0cmFibGVEb21haW4gOiBk
YXRhUmVjb3JkLnJlc291cmNlTG9hZFN0YXRpc3RpY3NSZWdpc3RyYWJsZURvbWFpbnMpCiAgICAg
ICAgICAgICAgICAgICAgIHJlZ2lzdHJhYmxlRG9tYWlucy5hcHBlbmQocmVnaXN0cmFibGVEb21h
aW4pOwogI2VuZGlmCkBAIC0xMDA3LDcgKzEwMDcsNyBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6
OnJlc2V0U2VydmljZVdvcmtlclRpbWVvdXRGb3JUZXN0aW5nKCkKICAgICBuZXR3b3JrUHJvY2Vz
cygpLnNlbmRTeW5jKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6UmVzZXRTZXJ2aWNlV29ya2Vy
RmV0Y2hUaW1lb3V0Rm9yVGVzdGluZygpLCBNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlJlc2V0
U2VydmljZVdvcmtlckZldGNoVGltZW91dEZvclRlc3Rpbmc6OlJlcGx5KCksIDApOwogfQogCi0j
aWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdF
TlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6c2V0TWF4U3Rh
dGlzdGljc0VudHJpZXMoc2l6ZV90IG1heGltdW1FbnRyeUNvdW50LCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6Omlz
TWFpbigpKTsKQEAgLTE1ODksNyArMTU4OSw3IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6c2V0
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1RoaXJkUGFydHlDTkFNRURvbWFpbkZvclRlc3RpbmcoCiAK
ICAgICBuZXR3b3JrUHJvY2VzcygpLnNldFRoaXJkUGFydHlDTkFNRURvbWFpbkZvclRlc3Rpbmco
bV9zZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHsgY25hbWVVUkwgfSwgW2Nh
bGxiYWNrQWdncmVnYXRvcl0geyB9KTsKIH0KLSNlbmRpZiAvLyBFTkFCTEUoUkVTT1VSQ0VfTE9B
RF9TVEFUSVNUSUNTKQorI2VuZGlmIC8vIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVW
RU5USU9OKQogCiB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnNldENhY2hlZFByb2Nlc3NTdXNwZW5z
aW9uRGVsYXlGb3JUZXN0aW5nKFNlY29uZHMgZGVsYXkpCiB7CkBAIC0xNjAzLDcgKzE2MDMsNyBA
QCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnN5bmNMb2NhbFN0b3JhZ2UoQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYQogCiB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnNldENh
Y2hlTWF4QWdlQ2FwRm9yUHJldmFsZW50UmVzb3VyY2VzKFNlY29uZHMgc2Vjb25kcywgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotI2lmIEVOQUJMRShS
RVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5H
X1BSRVZFTlRJT04pCiAgICAgYXV0byBjYWxsYmFja0FnZ3JlZ2F0b3IgPSBDYWxsYmFja0FnZ3Jl
Z2F0b3I6OmNyZWF0ZShXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiAgICAgCiAgICAgbmV0
d29ya1Byb2Nlc3MoKS5zZXRDYWNoZU1heEFnZUNhcEZvclByZXZhbGVudFJlc291cmNlcyhtX3Nl
c3Npb25JRCwgc2Vjb25kcywgW2NhbGxiYWNrQWdncmVnYXRvcl0geyB9KTsKQEAgLTE2MTUsNyAr
MTYxNSw3IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6c2V0Q2FjaGVNYXhBZ2VDYXBGb3JQcmV2
YWxlbnRSZXNvdXJjZXMoU2Vjb25kcyBzZWNvbmRzLCBDCiAKIHZvaWQgV2Vic2l0ZURhdGFTdG9y
ZTo6cmVzZXRDYWNoZU1heEFnZUNhcEZvclByZXZhbGVudFJlc291cmNlcyhDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNF
X0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVO
VElPTikKICAgICBuZXR3b3JrUHJvY2VzcygpLnJlc2V0Q2FjaGVNYXhBZ2VDYXBGb3JQcmV2YWxl
bnRSZXNvdXJjZXMobV9zZXNzaW9uSUQsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKICNl
bHNlCiAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKQEAgLTE4MTMsNyArMTgxMyw3IEBAIHZvaWQg
V2Vic2l0ZURhdGFTdG9yZTo6c2VuZE5ldHdvcmtQcm9jZXNzRGlkUmVzdW1lKCkKIAogYm9vbCBX
ZWJzaXRlRGF0YVN0b3JlOjpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCgpIGNvbnN0CiB7
Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxM
SUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICByZXR1cm4gbV9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRW5hYmxlZDsKICNlbHNlCiAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTgyMiw3ICsxODIy
LDcgQEAgYm9vbCBXZWJzaXRlRGF0YVN0b3JlOjpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxl
ZCgpIGNvbnN0CiAKIGJvb2wgV2Vic2l0ZURhdGFTdG9yZTo6cmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RlYnVnTW9kZSgpIGNvbnN0CiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElD
UykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICByZXR1
cm4gbV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlOwogI2Vsc2UKICAgICByZXR1cm4g
ZmFsc2U7CkBAIC0xODMxLDcgKzE4MzEsNyBAQCBib29sIFdlYnNpdGVEYXRhU3RvcmU6OnJlc291
cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUoKSBjb25zdAogCiB2b2lkIFdlYnNpdGVEYXRhU3Rv
cmU6OnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGJvb2wgZW5hYmxlZCkKIHsKLSNp
ZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VO
VF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIGlmIChlbmFibGVkID09IHJlc291cmNlTG9hZFN0
YXRpc3RpY3NFbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKIApAQCAtMTg1OCw3ICsxODU4LDcg
QEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpzZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxl
ZChib29sIGVuYWJsZWQpCiAjZW5kaWYKIH0KIAotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NU
QVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiB2
b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnNldFN0YXRpc3RpY3NUZXN0aW5nQ2FsbGJhY2soRnVuY3Rp
b248dm9pZChjb25zdCBTdHJpbmcmKT4mJiBjYWxsYmFjaykKIHsKICAgICBpZiAoY2FsbGJhY2sp
IHsKQEAgLTE4NzYsNyArMTg3Niw3IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6c2V0UmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZShib29sIGVuYWJsZWQpCiAKIHZvaWQgV2Vic2l0ZURh
dGFTdG9yZTo6c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZShib29sIGVuYWJsZWQs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSNpZiBF
TkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9U
UkFDS0lOR19QUkVWRU5USU9OKQogICAgIG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9k
ZSA9IGVuYWJsZWQ7CiAKICAgICBhdXRvIGNhbGxiYWNrQWdncmVnYXRvciA9IENhbGxiYWNrQWdn
cmVnYXRvcjo6Y3JlYXRlKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKQEAgLTE4OTAsNyAr
MTg5MCw3IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RlYnVnTW9kZShib29sIGVuYWJsZWQsIENvbXBsZXRpCiAKIHZvaWQgV2Vic2l0ZURhdGFTdG9y
ZTo6aXNSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRXBoZW1lcmFsKENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIGNvbnN0CiB7Ci0jaWYgRU5BQkxFKFJFU09V
UkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJF
VkVOVElPTikKICAgICBpZiAoIXJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKCkgfHwgIW1f
c2Vzc2lvbklELmlzRXBoZW1lcmFsKCkpIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFs
c2UpOwogICAgICAgICByZXR1cm47CkBAIC0xOTA3LDcgKzE5MDcsNyBAQCB2b2lkIFdlYnNpdGVE
YXRhU3RvcmU6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlKGJvb2wgZW5hYmxl
ZCkKICAgICBuZXR3b3JrUHJvY2VzcygpLnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdN
b2RlKGVuYWJsZWQpOwogfQogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykK
KyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKIHZvaWQgV2Vic2l0
ZURhdGFTdG9yZTo6bG9nVGVzdGluZ0V2ZW50KGNvbnN0IFN0cmluZyYgZXZlbnQpCiB7CiAgICAg
QVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKQEAgLTIwMTksNyArMjAxOSw3IEBAIFdlYnNpdGVE
YXRhU3RvcmVQYXJhbWV0ZXJzIFdlYnNpdGVEYXRhU3RvcmU6OnBhcmFtZXRlcnMoKQogICAgICAg
ICBXVEZNb3ZlKHByaXZhdGVDbGlja01lYXN1cmVtZW50U3RvcmFnZURpcmVjdG9yeSksCiAgICAg
ICAgIFdURk1vdmUocHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRTdG9yYWdlRGlyZWN0b3J5SGFuZGxl
KSwKICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoKSwKLSNpZiBFTkFCTEUo
UkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lO
R19QUkVWRU5USU9OKQogICAgICAgICBpc0l0cFN0YXRlRXhwbGljaXRseVNldCgpLAogICAgICAg
ICBoYXNTdGF0aXN0aWNzVGVzdGluZ0NhbGxiYWNrKCksCiAjZWxzZQpAQCAtMjAyOCw3ICsyMDI4
LDcgQEAgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMgV2Vic2l0ZURhdGFTdG9yZTo6cGFyYW1l
dGVycygpCiAjZW5kaWYKICAgICAgICAgc2hvdWxkSW5jbHVkZUxvY2FsaG9zdEluUmVzb3VyY2VM
b2FkU3RhdGlzdGljcywKICAgICAgICAgZW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVn
TW9kZSwKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJ
TlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgICAgICB0aGlyZFBhcnR5Q29va2ll
QmxvY2tpbmdNb2RlKCksCiAgICAgICAgIFdlYkNvcmU6OlNhbWVTaXRlU3RyaWN0RW5mb3JjZW1l
bnRFbmFibGVkOjpObywKICNlbmRpZgpAQCAtMjEwNSw3ICsyMTA1LDcgQEAgV2Vic2l0ZURhdGFT
dG9yZVBhcmFtZXRlcnMgV2Vic2l0ZURhdGFTdG9yZTo6cGFyYW1ldGVycygpCiAgICAgcGFyYW1l
dGVycy5wZXJPcmlnaW5TdG9yYWdlUXVvdGEgPSBwZXJPcmlnaW5TdG9yYWdlUXVvdGEoKTsKICAg
ICBwYXJhbWV0ZXJzLnBlclRoaXJkUGFydHlPcmlnaW5TdG9yYWdlUXVvdGEgPSBwZXJUaGlyZFBh
cnR5T3JpZ2luU3RvcmFnZVF1b3RhKCk7CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFU
SVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAg
IHBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NQYXJhbWV0ZXJzLmVuYWJsZWQgPSBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkOwog
I2VuZGlmCiAgICAgcGxhdGZvcm1TZXROZXR3b3JrUGFyYW1ldGVycyhwYXJhbWV0ZXJzKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmUuaAppbmRleCAxNjFjZGU2YTE3MWJjYjMwMWVkZDhiOWUzY2Q0YWUyNmJhZDUxZmI2Li5m
M2Q1YTI0ZTU5Y2ViNTE1YTJmNzc3YjBlZTBlZTA1MzY3NjAwN2VhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCkBA
IC05OCw3ICs5OCw3IEBAIHN0cnVjdCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvOwogc3Ry
dWN0IFdlYnNpdGVEYXRhUmVjb3JkOwogc3RydWN0IFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJz
OwogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5U
RUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKIGVudW0gY2xhc3MgU2hvdWxkR3JhbmRmYXRo
ZXJTdGF0aXN0aWNzIDogYm9vbDsKIGVudW0gY2xhc3MgU3RvcmFnZUFjY2Vzc1N0YXR1cyA6IHVp
bnQ4X3Q7CiBlbnVtIGNsYXNzIFN0b3JhZ2VBY2Nlc3NQcm9tcHRTdGF0dXM7CkBAIC0xNjAsNyAr
MTYwLDcgQEAgcHVibGljOgogICAgIGNvbnN0IFN0cmluZyYgY2FjaGVTdG9yYWdlRGlyZWN0b3J5
KCkgY29uc3QgeyByZXR1cm4gbV9yZXNvbHZlZENvbmZpZ3VyYXRpb24tPmNhY2hlU3RvcmFnZURp
cmVjdG9yeSgpOyB9CiAgICAgY29uc3QgU3RyaW5nJiBnZW5lcmFsU3RvcmFnZURpcmVjdG9yeSgp
IGNvbnN0IHsgcmV0dXJuIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLT5nZW5lcmFsU3RvcmFnZURp
cmVjdG9yeSgpOyB9CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lm
IEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIHZvaWQgY2xlYXJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzSW5XZWJQcm9jZXNzZXMoQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKTsKICNlbmRpZgogCkBAIC0xNzMsNyArMTczLDcgQEAgcHVibGljOgogICAgIHZvaWQg
c2V0U2VydmljZVdvcmtlclRpbWVvdXRGb3JUZXN0aW5nKFNlY29uZHMpOwogICAgIHZvaWQgcmVz
ZXRTZXJ2aWNlV29ya2VyVGltZW91dEZvclRlc3RpbmcoKTsKIAotI2lmIEVOQUJMRShSRVNPVVJD
RV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZF
TlRJT04pCiAgICAgdm9pZCBmZXRjaERhdGFGb3JSZWdpc3RyYWJsZURvbWFpbnMoT3B0aW9uU2V0
PFdlYnNpdGVEYXRhVHlwZT4sIE9wdGlvblNldDxXZWJzaXRlRGF0YUZldGNoT3B0aW9uPiwgVmVj
dG9yPFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluPiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFZlY3RvcjxXZWJzaXRlRGF0YVJlY29yZD4mJiwgSGFzaFNldDxXZWJDb3JlOjpSZWdpc3RyYWJs
ZURvbWFpbj4mJik+JiYpOwogICAgIHZvaWQgY2xlYXJQcmV2YWxlbnRSZXNvdXJjZShjb25zdCBV
UkwmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgY2xlYXJVc2VySW50
ZXJhY3Rpb24oY29uc3QgVVJMJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKQEAgLTQy
Miw3ICs0MjIsNyBAQCBwcml2YXRlOgogCiAgICAgY29uc3QgUmVmPERldmljZUlkSGFzaFNhbHRT
dG9yYWdlPiBtX2RldmljZUlkSGFzaFNhbHRTdG9yYWdlOwogCi0jaWYgRU5BQkxFKFJFU09VUkNF
X0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVO
VElPTikKICAgICBib29sIG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZSB7IGZhbHNl
IH07CiAgICAgYm9vbCBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkIHsgZmFsc2UgfTsK
ICAgICBGdW5jdGlvbjx2b2lkKGNvbnN0IFN0cmluZyYpPiBtX3N0YXRpc3RpY3NUZXN0aW5nQ2Fs
bGJhY2s7CkBAIC00NzIsNyArNDcyLDcgQEAgcHJpdmF0ZToKICNpZiBIQVZFKEFQUF9TU08pCiAg
ICAgVW5pcXVlUmVmPFNPQXV0aG9yaXphdGlvbkNvb3JkaW5hdG9yPiBtX3NvQXV0aG9yaXphdGlv
bkNvb3JkaW5hdG9yOwogI2VuZGlmCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElD
UykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBtdXRh
YmxlIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZT4g
bV90aGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlOyAvLyBMYXppbHkgY29tcHV0ZWQuCiAjZW5k
aWYKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDQ2YWRmY2I2YmI4YWQ3ODMzNzNhM2Rl
N2Y0MDBlMmE1NmIwMjg1NDEuLjhjZDE5MWMwMzY3NGM0MTVlOWJjZTlhOGNjNTg2Y2FkZTBkOTBh
NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC0xNDIzLDcgKzE0MjMsNyBAQCB2b2lkIFdl
YkNocm9tZUNsaWVudDo6ZGlkSW52YWxpZGF0ZURvY3VtZW50TWFya2VyUmVjdHMoKQogICAgIG1f
cGFnZS5maW5kQ29udHJvbGxlcigpLmRpZEludmFsaWRhdGVEb2N1bWVudE1hcmtlclJlY3RzKCk7
CiB9CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJ
TlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogdm9pZCBXZWJDaHJvbWVDbGllbnQ6Omhh
c1N0b3JhZ2VBY2Nlc3MoUmVnaXN0cmFibGVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgUmVnaXN0
cmFibGVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgRnJhbWUmIGZyYW1lLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGF1dG8qIHdlYkZy
YW1lID0gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoZnJhbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmlu
ZGV4IGE4NGQyYjgyNWYyNzE1OWM3MmQ1MjJlZTNkOTY5OTJmM2ZjM2VlMjIuLjNhMjE2MDVmNDNm
MDNmNTI2OTQyNDM3MDBjMzJiYjUwMmM2MWQ3ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTQw
Nyw3ICs0MDcsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBkaWRJbnZhbGlkYXRlRG9jdW1lbnRN
YXJrZXJSZWN0cygpIGZpbmFsOwogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElD
UykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICB2b2lk
IGhhc1N0b3JhZ2VBY2Nlc3MoV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiBzdWJGcmFtZURv
bWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgV2ViQ29y
ZTo6RnJhbWUmLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFsOwog
ICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4m
JiBzdWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiB0b3BGcmFtZURv
bWFpbiwgV2ViQ29yZTo6RnJhbWUmLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzU2NvcGUsIFdURjo6
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpSZXF1ZXN0U3RvcmFnZUFjY2Vzc1Jlc3Vs
dCk+JiYpIGZpbmFsOwogICAgIGJvb2wgaGFzUGFnZUxldmVsU3RvcmFnZUFjY2Vzcyhjb25zdCBX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYgdG9wTGV2ZWxEb21haW4sIGNvbnN0IFdlYkNvcmU6
OlJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJjZURvbWFpbikgY29uc3QgZmluYWw7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCBjZDNlNzFhMjY0MjdjYjUyNDNiMDY3OGVkZTQz
MDZmOGNiYzdiMTU5Li4wMDg4OWIwMGM4NTc5MzU5OGI3ZmUxMzMwZWYyOWQ4NmE3N2VlNDhmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTE0Myw3ICsxNDMsNyBAQCBzdGQ6
Om9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmZyYW1lSUQo
KSBjb25zdAogICAgIHJldHVybiBtX2ZyYW1lLT5mcmFtZUlEKCk7CiB9CiAKLSNpZiBFTkFCTEUo
UkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lO
R19QUkVWRU5USU9OKQogdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6c2V0SGFzRnJhbWVTcGVj
aWZpY1N0b3JhZ2VBY2Nlc3MoRnJhbWVTcGVjaWZpY1N0b3JhZ2VBY2Nlc3NJZGVudGlmaWVyJiYg
ZnJhbWVTcGVjaWZpY1N0b3JhZ2VBY2Nlc3NJZGVudGlmaWVyICkKIHsKICAgICBBU1NFUlQoIW1f
ZnJhbWVTcGVjaWZpY1N0b3JhZ2VBY2Nlc3NJZGVudGlmaWVyKTsKQEAgLTIwMiw3ICsyMDIsNyBA
QCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkZXRhY2hlZEZyb21QYXJlbnQyKCkKICAgICBp
ZiAoIXdlYlBhZ2UpCiAgICAgICAgIHJldHVybjsKIAotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FE
X1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04p
CiAgICAgaWYgKG1fZnJhbWVTcGVjaWZpY1N0b3JhZ2VBY2Nlc3NJZGVudGlmaWVyKSB7CiAgICAg
ICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
bigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6UmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKAogICAgICAgICAgICAgbV9mcmFtZVNw
ZWNpZmljU3RvcmFnZUFjY2Vzc0lkZW50aWZpZXItPmZyYW1lSUQsIG1fZnJhbWVTcGVjaWZpY1N0
b3JhZ2VBY2Nlc3NJZGVudGlmaWVyLT5wYWdlSUQpLCAwKTsKQEAgLTQyNiw3ICs0MjYsNyBAQCB2
b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZENoYW5nZU1haW5Eb2N1bWVudCgp
CiAKIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoV2lsbENoYW5nZURvY3VtZW50
KGNvbnN0IFVSTCYgY3VycmVudFVybCwgY29uc3QgVVJMJiBuZXdVcmwpCiB7Ci0jaWYgRU5BQkxF
KFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJ
TkdfUFJFVkVOVElPTikKICAgICBpZiAobV9mcmFtZS0+aXNNYWluRnJhbWUoKSkKICAgICAgICAg
cmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDMwNzYyMDAwZmNmMzMw
YjZiMmJkZjgwMjI1NjU3NzA2OTcwYjRhNDUuLjc3ZGE0MTE4ODIyNDhlMmMwZWJlZGMxN2Y3OGI0
M2NiODkwZDVhODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC01Miw3ICs1Miw3
IEBAIHB1YmxpYzoKICAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBw
YWdlSUQoKSBjb25zdCBmaW5hbDsKICAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllcj4gZnJhbWVJRCgpIGNvbnN0IGZpbmFsOwogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xP
QURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElP
TikKICAgICBib29sIGhhc0ZyYW1lU3BlY2lmaWNTdG9yYWdlQWNjZXNzKCkgZmluYWwgeyByZXR1
cm4gISFtX2ZyYW1lU3BlY2lmaWNTdG9yYWdlQWNjZXNzSWRlbnRpZmllcjsgfQogICAgIAogICAg
IHN0cnVjdCBGcmFtZVNwZWNpZmljU3RvcmFnZUFjY2Vzc0lkZW50aWZpZXIgewpAQCAtMjc3LDcg
KzI3Nyw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2ZyYW1lSGFzQ3VzdG9tQ29udGVudFByb3Zp
ZGVyIHsgZmFsc2UgfTsKICAgICBib29sIG1fZnJhbWVDYW1lRnJvbUJhY2tGb3J3YXJkQ2FjaGUg
eyBmYWxzZSB9OwogICAgIGJvb2wgbV91c2VJY29uTG9hZGluZ0NsaWVudCB7IGZhbHNlIH07Ci0j
aWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdF
TlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBzdGQ6Om9wdGlvbmFsPEZyYW1lU3BlY2lmaWNT
dG9yYWdlQWNjZXNzSWRlbnRpZmllcj4gbV9mcmFtZVNwZWNpZmljU3RvcmFnZUFjY2Vzc0lkZW50
aWZpZXI7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZE9ic2VydmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRPYnNlcnZlci5jcHAKaW5k
ZXggZjliNWMyYzI4MmU4NzljYzAxODUxOGNiYmNiMmY0MWRjN2RmYWE4My4uM2VmMTRkZDIzYjlj
N2FlYWI1YjA2OWRiYTE1ZTdiNTdhMTAyMTNiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZE9ic2VydmVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2Fk
T2JzZXJ2ZXIuY3BwCkBAIC0yNiw3ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiV2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaCIKIAotI2lmIEVOQUJMRShSRVNPVVJDRV9M
T0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJ
T04pCiAKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3NNZXNzYWdlcy5oIgpAQCAtNDQ1LDQgKzQ0NSw0IEBAIHZvaWQgV2ViUmVzb3Vy
Y2VMb2FkT2JzZXJ2ZXI6OnNldERvbWFpbnNXaXRoQ3Jvc3NQYWdlU3RvcmFnZUFjY2VzcyhIYXNo
TWFwPFRvcEZyCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCi0jZW5kaWYgLy8gRU5BQkxFKFJF
U09VUkNFX0xPQURfU1RBVElTVElDUykKKyNlbmRpZiAvLyBFTkFCTEUoSU5URUxMSUdFTlRfVFJB
Q0tJTkdfUFJFVkVOVElPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRPYnNlcnZlci5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZE9ic2VydmVyLmgKaW5kZXgg
NjhjOTYzNTQxM2VmMmI4ZWFkODk3YzNjZjE1ZGZiMWE0NjkzNWY4MC4uMzE4NGQ2ZWFkM2YxNDAw
ZDI5ZmUzMDU0ZWJmMTdiOTE1M2JlMzg1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZE9ic2VydmVyLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZE9ic2Vy
dmVyLmgKQEAgLTI1LDcgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpZiBFTkFCTEUoUkVT
T1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19Q
UkVWRU5USU9OKQogCiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlSWRlbnRpZmllci5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaD4KQEAgLTk2LDQgKzk2LDQgQEAgcHJp
dmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKLSNlbmRpZiAvLyBFTkFCTEUoUkVTT1VS
Q0VfTE9BRF9TVEFUSVNUSUNTKQorI2VuZGlmIC8vIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lO
R19QUkVWRU5USU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViQ29va2llSmFyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YkNvb2tpZUphci5jcHAKaW5kZXggNjMzODI4OTgzZWY3NzYzMjM5MmQwZGJjMmU0YTkwNDg5ZTM0
MGI5ZS4uOWFhYjA4MDAxNDBkZjI2MjBiMzYwZTBiYjhjOGM5MDRkODY5NzdlZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQ29va2llSmFyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb29raWVKYXIuY3BwCkBAIC01
Miw3ICs1Miw3IEBAIGNsYXNzIFdlYlN0b3JhZ2VTZXNzaW9uUHJvdmlkZXIgOiBwdWJsaWMgV2Vi
Q29yZTo6U3RvcmFnZVNlc3Npb25Qcm92aWRlciB7CiBXZWJDb29raWVKYXI6OldlYkNvb2tpZUph
cigpCiAgICAgOiBXZWJDb3JlOjpDb29raWVKYXIoYWRvcHRSZWYoKm5ldyBXZWJTdG9yYWdlU2Vz
c2lvblByb3ZpZGVyKSkgeyB9CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNT
KQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogc3RhdGljIGJv
b2wgc2hvdWxkQmxvY2tDb29raWVzKFdlYkZyYW1lKiBmcmFtZSwgY29uc3QgVVJMJiBmaXJzdFBh
cnR5Rm9yQ29va2llcywgY29uc3QgVVJMJiByZXNvdXJjZVVSTCwgU2hvdWxkQXNrSVRQJiBzaG91
bGRBc2tJVFBJbk5ldHdvcmtQcm9jZXNzKQogewogICAgIGlmICghV2ViQ29yZTo6RGVwcmVjYXRl
ZEdsb2JhbFNldHRpbmdzOjpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCgpKQpAQCAtMTMw
LDcgKzEzMCw3IEBAIFN0cmluZyBXZWJDb29raWVKYXI6OmNvb2tpZXMoV2ViQ29yZTo6RG9jdW1l
bnQmIGRvY3VtZW50LCBjb25zdCBVUkwmIHVybCkgY29uc3QKICAgICAgICAgcmV0dXJuIHsgfTsK
IAogICAgIFNob3VsZEFza0lUUCBzaG91bGRBc2tJVFBJbk5ldHdvcmtQcm9jZXNzID0gU2hvdWxk
QXNrSVRQOjpObzsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVO
QUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIGlmIChzaG91bGRCbG9j
a0Nvb2tpZXMod2ViRnJhbWUsIGRvY3VtZW50LmZpcnN0UGFydHlGb3JDb29raWVzKCksIHVybCwg
c2hvdWxkQXNrSVRQSW5OZXR3b3JrUHJvY2VzcykpCiAgICAgICAgIHJldHVybiB7IH07CiAjZW5k
aWYKQEAgLTE1OCw3ICsxNTgsNyBAQCB2b2lkIFdlYkNvb2tpZUphcjo6c2V0Q29va2llcyhXZWJD
b3JlOjpEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYgdXJsLCBjb25zdAogICAgICAgICBy
ZXR1cm47CiAKICAgICBTaG91bGRBc2tJVFAgc2hvdWxkQXNrSVRQSW5OZXR3b3JrUHJvY2VzcyA9
IFNob3VsZEFza0lUUDo6Tm87Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykK
KyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBpZiAoc2hv
dWxkQmxvY2tDb29raWVzKHdlYkZyYW1lLCBkb2N1bWVudC5maXJzdFBhcnR5Rm9yQ29va2llcygp
LCB1cmwsIHNob3VsZEFza0lUUEluTmV0d29ya1Byb2Nlc3MpKQogICAgICAgICByZXR1cm47CiAj
ZW5kaWYKQEAgLTIwNCw3ICsyMDQsNyBAQCBib29sIFdlYkNvb2tpZUphcjo6Y29va2llc0VuYWJs
ZWQoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50KSBjb25zdAogICAgIGlmICghd2ViRnJhbWUgfHwg
IXdlYkZyYW1lLT5wYWdlKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotI2lmIEVOQUJMRShS
RVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5H
X1BSRVZFTlRJT04pCiAgICAgU2hvdWxkQXNrSVRQIGR1bW15OwogICAgIGlmIChzaG91bGRCbG9j
a0Nvb2tpZXMod2ViRnJhbWUsIGRvY3VtZW50LmZpcnN0UGFydHlGb3JDb29raWVzKCksIGRvY3Vt
ZW50LmNvb2tpZVVSTCgpLCBkdW1teSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTIxNyw3
ICsyMTcsNyBAQCBzdGQ6OnBhaXI8U3RyaW5nLCBXZWJDb3JlOjpTZWN1cmVDb29raWVzQWNjZXNz
ZWQ+IFdlYkNvb2tpZUphcjo6Y29va2llUmVxdWVzdEhlYQogewogICAgIFNob3VsZEFza0lUUCBz
aG91bGRBc2tJVFBJbk5ldHdvcmtQcm9jZXNzID0gU2hvdWxkQXNrSVRQOjpObzsKICAgICBhdXRv
KiB3ZWJGcmFtZSA9IGZyYW1lSUQgPyBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZSgq
ZnJhbWVJRCkgOiBudWxscHRyOwotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1Mp
CisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgaWYgKHNo
b3VsZEJsb2NrQ29va2llcyh3ZWJGcmFtZSwgZmlyc3RQYXJ0eSwgdXJsLCBzaG91bGRBc2tJVFBJ
bk5ldHdvcmtQcm9jZXNzKSkKICAgICAgICAgcmV0dXJuIHsgfTsKICNlbmRpZgpAQCAtMjMzLDcg
KzIzMyw3IEBAIGJvb2wgV2ViQ29va2llSmFyOjpnZXRSYXdDb29raWVzKGNvbnN0IFdlYkNvcmU6
OkRvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgVVJMJiB1CiB7CiAgICAgYXV0byogd2ViRnJhbWUg
PSBkb2N1bWVudC5mcmFtZSgpID8gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoKmRvY3VtZW50LmZy
YW1lKCkpIDogbnVsbHB0cjsKICAgICBTaG91bGRBc2tJVFAgc2hvdWxkQXNrSVRQSW5OZXR3b3Jr
UHJvY2VzcyA9IFNob3VsZEFza0lUUDo6Tm87Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RB
VElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAg
ICBpZiAoc2hvdWxkQmxvY2tDb29raWVzKHdlYkZyYW1lLCBkb2N1bWVudC5maXJzdFBhcnR5Rm9y
Q29va2llcygpLCB1cmwsIHNob3VsZEFza0lUUEluTmV0d29ya1Byb2Nlc3MpKQogICAgICAgICBy
ZXR1cm4geyB9OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCmluZGV4IGU0NTRmOTYzNzZjZGRhOTJiZGIzM2ZmZGVkN2NlMGFmY2RjNDRiYmIu
LmYzZWE2ODJkOWMxZTEwYjU1NzVjOTEzMmJiZjA1YjhlMmYxMWQwMWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC02MzM1LDcgKzYzMzUsNyBA
QCB2b2lkIFdlYlBhZ2U6OmRpZENvbW1pdExvYWQoV2ViRnJhbWUqIGZyYW1lKQogICAgIG1fZWxl
bWVudHNQZW5kaW5nVGV4dFJlY29nbml0aW9uLmNsZWFyKCk7CiAjZW5kaWYKIAotI2lmIEVOQUJM
RShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNL
SU5HX1BSRVZFTlRJT04pCiAgICAgY2xlYXJMb2FkZWRTdWJyZXNvdXJjZURvbWFpbnMoKTsKICNl
bmRpZgogICAgIApAQCAtNzAxMiw3ICs3MDEyLDcgQEAgdm9pZCBXZWJQYWdlOjpmcmFtZUJlY2Ft
ZVJlbW90ZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgR2xvYmFsRnJhbWVJZGVudGlmaWVyJiYK
ICAgICAgICAgY2xvc2UoKTsKIH0KIAotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJ
Q1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiB2b2lkIFdl
YlBhZ2U6Omhhc1N0b3JhZ2VBY2Nlc3MoUmVnaXN0cmFibGVEb21haW4mJiBzdWJGcmFtZURvbWFp
biwgUmVnaXN0cmFibGVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgV2ViRnJhbWUmIGZyYW1lLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAg
IGlmIChoYXNQYWdlTGV2ZWxTdG9yYWdlQWNjZXNzKHRvcEZyYW1lRG9tYWluLCBzdWJGcmFtZURv
bWFpbikpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRl
eCAxZWMyODE3ZDM2OTdjMzZhM2EyMWFjNjE2MmU4N2YwOWMxYjg2YjgyLi5kNGY1NWE1YWU4YTlk
YzBmYTFiNWU0MGRmMDVhNzVhM2M3ZWE3MDU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xMjY4LDcgKzEyNjgsNyBAQCBwdWJsaWM6CiAKICAgICB2
b2lkIGZsdXNoUGVuZGluZ0VkaXRvclN0YXRlVXBkYXRlKCk7CiAKLSNpZiBFTkFCTEUoUkVTT1VS
Q0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVW
RU5USU9OKQogICAgIHZvaWQgaGFzU3RvcmFnZUFjY2VzcyhXZWJDb3JlOjpSZWdpc3RyYWJsZURv
bWFpbiYmIHN1YkZyYW1lRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIHRvcEZy
YW1lRG9tYWluLCBXZWJGcmFtZSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwog
ICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4m
JiBzdWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiB0b3BGcmFtZURv
bWFpbiwgV2ViRnJhbWUmLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzU2NvcGUsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoV2ViQ29yZTo6UmVxdWVzdFN0b3JhZ2VBY2Nlc3NSZXN1bHQpPiYmKTsKICAg
ICBib29sIGhhc1BhZ2VMZXZlbFN0b3JhZ2VBY2Nlc3MoY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFi
bGVEb21haW4mIHRvcExldmVsRG9tYWluLCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFp
biYgcmVzb3VyY2VEb21haW4pIGNvbnN0OwpAQCAtMjMyNyw3ICsyMzI3LDcgQEAgcHJpdmF0ZToK
ICAgICBXZWJDb3JlOjpUaW1lciBtX3RleHRBdXRvU2l6aW5nQWRqdXN0bWVudFRpbWVyOwogI2Vu
ZGlmCiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJ
TlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIEhhc2hNYXA8V2ViQ29yZTo6UmVn
aXN0cmFibGVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluPiBtX2RvbWFpbnNXaXRo
UGFnZUxldmVsU3RvcmFnZUFjY2VzczsKICAgICBIYXNoU2V0PFdlYkNvcmU6OlJlZ2lzdHJhYmxl
RG9tYWluPiBtX2xvYWRlZFN1YnJlc291cmNlRG9tYWluczsKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXgg
NTk2YjRmN2Y2MDIyZjVhYWUzNDNhNmUzZjAwOWY5Zjk2YmJlODk4NS4uMGM1OWM5MTMwZWEyNWI3
YmQ2MGI1ZTg0NWZkNWUzZTU1ZDBjZmE5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC01ODksNyArNTg5LDcgQEAg
R2VuZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50
aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUKIAogICAgIFNldENhblNob3dQbGFjZWhvbGRlcihzdHJ1
Y3QgV2ViQ29yZTo6RWxlbWVudENvbnRleHQgY29udGV4dCwgYm9vbCBjYW5TaG93UGxhY2Vob2xk
ZXIpCiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJ
TlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIFdhc0xvYWRlZFdpdGhEYXRhVHJh
bnNmZXJGcm9tUHJldmFsZW50UmVzb3VyY2UoKQogICAgIENsZWFyTG9hZGVkU3VicmVzb3VyY2VE
b21haW5zKCkKICAgICBHZXRMb2FkZWRTdWJyZXNvdXJjZURvbWFpbnMoKSAtPiAoVmVjdG9yPFdl
YkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluPiBkb21haW5zKSBBc3luYwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IDM4YjQ0NDU0MmEyM2I1NzY0OTM0YmE5OGUyZTRk
ZWIzNjA1NTM1ODEuLjZiM2I1NGIzODc2MTllOTFlM2ZlMjU0ZmI2YjI5MWRhY2YxYTZlZTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTU1MSw3ICs1NTEsNyBA
QCB2b2lkIFdlYlByb2Nlc3M6OmluaXRpYWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogICAgIEpTQzo6V2FzbTo6ZW5hYmxlRmFzdE1lbW9y
eSgpOwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKSAmJiAh
UkVMRUFTRV9MT0dfRElTQUJMRUQKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJF
VkVOVElPTikgJiYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgV2ViUmVzb3VyY2VMb2FkT2Jz
ZXJ2ZXI6OnNldFNob3VsZExvZ1VzZXJJbnRlcmFjdGlvbihwYXJhbWV0ZXJzLnNob3VsZExvZ1Vz
ZXJJbnRlcmFjdGlvbik7CiAjZW5kaWYKIApAQCAtNTg2LDcgKzU4Niw3IEBAIHZvaWQgV2ViUHJv
Y2Vzczo6c2V0V2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMoV2ViUHJvY2Vzc0RhdGFTdG9yZVBh
cmFtZXRlcnMmJiBwCiAKICAgICBzZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChwYXJh
bWV0ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKTsKIAotI2lmIEVOQUJMRShSRVNP
VVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BS
RVZFTlRJT04pCiAgICAgbV90aGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlID0gcGFyYW1ldGVy
cy50aGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlOwogICAgIGlmIChwYXJhbWV0ZXJzLnJlc291
cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKSB7CiAgICAgICAgIGlmICghUmVzb3VyY2VMb2FkT2Jz
ZXJ2ZXI6OnNoYXJlZElmRXhpc3RzKCkpCkBAIC0xNjg1LDcgKzE2ODUsNyBAQCB2b2lkIFdlYlBy
b2Nlc3M6OnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGJvb2wgZW5hYmxlZCkKICAg
ICBpZiAoV2ViQ29yZTo6RGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzOjpyZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRW5hYmxlZCgpID09IGVuYWJsZWQpCiAgICAgICAgIHJldHVybjsKICAgICBXZWJDb3Jl
OjpEZXByZWNhdGVkR2xvYmFsU2V0dGluZ3M6OnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFi
bGVkKGVuYWJsZWQpOwotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYg
RU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgaWYgKGVuYWJsZWQg
JiYgIVJlc291cmNlTG9hZE9ic2VydmVyOjpzaGFyZWRJZkV4aXN0cygpKQogICAgICAgICBXZWJD
b3JlOjpSZXNvdXJjZUxvYWRPYnNlcnZlcjo6c2V0U2hhcmVkKCpuZXcgV2ViUmVzb3VyY2VMb2Fk
T2JzZXJ2ZXIobV9zZXNzaW9uSUQgJiYgbV9zZXNzaW9uSUQtPmlzRXBoZW1lcmFsKCkgPyBXZWJD
b3JlOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOjpJc0VwaGVtZXJhbDo6WWVzIDogV2ViQ29yZTo6
UmVzb3VyY2VMb2FkU3RhdGlzdGljczo6SXNFcGhlbWVyYWw6Ok5vKSk7CiAjZW5kaWYKQEAgLTE2
OTMsNyArMTY5Myw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0VuYWJsZWQoYm9vbCBlbmFibGVkKQogCiB2b2lkIFdlYlByb2Nlc3M6OmNsZWFyUmVzb3VyY2VM
b2FkU3RhdGlzdGljcygpCiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykK
KyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBpZiAoYXV0
byogb2JzZXJ2ZXIgPSBSZXNvdXJjZUxvYWRPYnNlcnZlcjo6c2hhcmVkSWZFeGlzdHMoKSkKICAg
ICAgICAgb2JzZXJ2ZXItPmNsZWFyU3RhdGUoKTsKICAgICBmb3IgKGF1dG8mIHBhZ2UgOiBtX3Bh
Z2VNYXAudmFsdWVzKCkpCkBAIC0xNzAzLDcgKzE3MDMsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OmNs
ZWFyUmVzb3VyY2VMb2FkU3RhdGlzdGljcygpCiAKIHZvaWQgV2ViUHJvY2Vzczo6Zmx1c2hSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzKCkKIHsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNU
SUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIGlm
IChhdXRvKiBvYnNlcnZlciA9IFJlc291cmNlTG9hZE9ic2VydmVyOjpzaGFyZWRJZkV4aXN0cygp
KQogICAgICAgICBvYnNlcnZlci0+dXBkYXRlQ2VudHJhbFN0YXRpc3RpY3NTdG9yZShbXSB7IH0p
OwogI2VuZGlmCkBAIC0xNzExLDcgKzE3MTEsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OmZsdXNoUmVz
b3VyY2VMb2FkU3RhdGlzdGljcygpCiAKIHZvaWQgV2ViUHJvY2Vzczo6c2VlZFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NGb3JUZXN0aW5nKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmaXJzdFBhcnR5
RG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdGhpcmRQYXJ0eURvbWFpbiwgYm9vbCBz
aG91bGRTY2hlZHVsZU5vdGlmaWNhdGlvbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQogewotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1Mp
CisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgaWYgKGF1
dG8qIG9ic2VydmVyID0gUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OnNoYXJlZElmRXhpc3RzKCkpCiAg
ICAgICAgIG9ic2VydmVyLT5sb2dTdWJyZXNvdXJjZUxvYWRpbmdGb3JUZXN0aW5nKGZpcnN0UGFy
dHlEb21haW4sIHRoaXJkUGFydHlEb21haW4sIHNob3VsZFNjaGVkdWxlTm90aWZpY2F0aW9uKTsK
ICNlbmRpZgpAQCAtMjAxNSw3ICsyMDE1LDcgQEAgdm9pZCBXZWJQcm9jZXNzOjpkaXNwbGF5V2Fz
UmVmcmVzaGVkKHVpbnQzMl90IGRpc3BsYXlJRCwgY29uc3QgRGlzcGxheVVwZGF0ZSYgZGkKIH0K
ICNlbmRpZgogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFC
TEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKIHZvaWQgV2ViUHJvY2Vzczo6c2V0
VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZShUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2Rl
IHRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBtX3RoaXJkUGFydHlDb29raWVCbG9ja2luZ01v
ZGUgPSB0aGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLmgKaW5kZXggMjBkMzlmYzU3MTQxYjk4MGQ5YWUxYTk5MjU3MTNlY2QyOWM3NGQx
OC4uMGQ5NjE4MWY0NDhjNGQyOTYwZjVjMDUyY2M3YmMwY2NkMGVlZjhhZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC0xOTgsNyArMTk4LDcgQEAgcHVibGljOgogICAg
IAogICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IHsgQVNTRVJUKG1fc2Vzc2lv
bklEKTsgcmV0dXJuICptX3Nlc3Npb25JRDsgfQogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURf
U1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikK
ICAgICBXZWJDb3JlOjpUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlIHRoaXJkUGFydHlDb29r
aWVCbG9ja2luZ01vZGUoKSBjb25zdCB7IHJldHVybiBtX3RoaXJkUGFydHlDb29raWVCbG9ja2lu
Z01vZGU7IH0KICNlbmRpZgogCkBAIC01MjQsNyArNTI0LDcgQEAgcHJpdmF0ZToKIAogI2VuZGlm
CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRF
TExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIHZvaWQgc2V0VGhpcmRQYXJ0eUNvb2tp
ZUJsb2NraW5nTW9kZShXZWJDb3JlOjpUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0RG9tYWluc1dpdGhVc2VySW50
ZXJhY3Rpb24oSGFzaFNldDxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4mJik7CiAgICAgdm9p
ZCBzZXREb21haW5zV2l0aENyb3NzUGFnZVN0b3JhZ2VBY2Nlc3MoSGFzaE1hcDxUb3BGcmFtZURv
bWFpbiwgU3ViUmVzb3VyY2VEb21haW4+JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7
CkBAIC03NDQsNyArNzQ0LDcgQEAgcHJpdmF0ZToKICAgICAvLyBCeSB0aGUgdGltZSB0aGUgV2Vi
UHJvY2VzcyBnZXRzIGEgV2ViUGFnZSwgaXQgaXMgZ3VhcmFudGVlZCB0byBoYXZlIGEgc2Vzc2lv
bklELgogICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpTZXNzaW9uSUQ+IG1fc2Vzc2lvbklEOwogCi0j
aWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdF
TlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBXZWJDb3JlOjpUaGlyZFBhcnR5Q29va2llQmxv
Y2tpbmdNb2RlIG1fdGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZSB7IFdlYkNvcmU6OlRoaXJk
UGFydHlDb29raWVCbG9ja2luZ01vZGU6OkFsbCB9OwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggZmM1MTg5OTMyMDU2
YjMzMWJjNGU0ZDY2MGE5NjliMDUxZWIyMTkxMS4uZjU3NmYwNzZmNDIxMjIzOGFlNTgwZTk4OGU0
ZmIwNDdhOGEyZDhjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MubWVzc2FnZXMuaW4KQEAgLTE1OSw3ICsxNTksNyBAQCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNz
IExlZ2FjeVJlY2VpdmVyIE5vdFJlZkNvdW50ZWQgewogICAgIFNlbmRNZXNzYWdlVG9XZWJFeHRl
bnNpb24oc3RydWN0IFdlYktpdDo6VXNlck1lc3NhZ2UgdXNlck1lc3NhZ2UpCiAjZW5kaWYKIAot
I2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElH
RU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgU2VlZFJlc291cmNlTG9hZFN0YXRpc3RpY3NG
b3JUZXN0aW5nKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIGZpcnN0UGFydHlEb21haW4sIFdl
YkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRoaXJkUGFydHlEb21haW4sIGJvb2wgc2hvdWxkU2No
ZWR1bGVOb3RpZmljYXRpb24pIC0+ICgpIEFzeW5jCiAgICAgU2V0VGhpcmRQYXJ0eUNvb2tpZUJs
b2NraW5nTW9kZShlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5n
TW9kZSBibG9ja2luZ01vZGUpIC0+ICgpIEFzeW5jCiAgICAgU2V0RG9tYWluc1dpdGhVc2VySW50
ZXJhY3Rpb24oSGFzaFNldDxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4gZG9tYWlucykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9PcHRpb25zRlRXLmNtYWtlIGIvU291cmNlL2NtYWtlL09w
dGlvbnNGVFcuY21ha2UKaW5kZXggNTM5YmRlMWI5ZDIxYzEzMzUwNGY3YTY3MTg5OTAzOTM1OGIx
MjZhNC4uMDdjOGI4OGQ3YWYyNjlhMzAxZTVlODFlYWNlNWQ5ZDY2NDFkNzM2ZSAxMDA2NDQKLS0t
IGEvU291cmNlL2NtYWtlL09wdGlvbnNGVFcuY21ha2UKKysrIGIvU291cmNlL2NtYWtlL09wdGlv
bnNGVFcuY21ha2UKQEAgLTE0Nyw3ICsxNDcsNyBAQCBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9S
VF9WQUxVRShFTkFCTEVfTk9USUZJQ0FUSU9OUyBQUklWQVRFIE9GRikKIFdFQktJVF9PUFRJT05f
REVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9PVkVSRkxPV19TQ1JPTExJTkdfVE9VQ0ggUFJJVkFU
RSBPRkYpCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfUERGS0lUX1BM
VUdJTiBQUklWQVRFIE9GRikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJM
RV9QT0lOVEVSX0xPQ0sgUFJJVkFURSBPRkYpCi1XRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9W
QUxVRShFTkFCTEVfUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTIFBSSVZBVEUgT0ZGKQorV0VCS0lU
X09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0lOVEVMTElHRU5UX1RSQUNLSU5HX1BS
RVZFTlRJT04gUFJJVkFURSBPRkYpCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShF
TkFCTEVfUkVTT1VSQ0VfVVNBR0UgUFJJVkFURSBPRkYpCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRf
UE9SVF9WQUxVRShFTkFCTEVfUlVCQkVSX0JBTkRJTkcgUFJJVkFURSBPRkYpCiBXRUJLSVRfT1BU
SU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfU0FOREJPWF9FWFRFTlNJT05TIFBSSVZBVEUg
T0ZGKQpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL09wdGlvbnNHVEsuY21ha2UgYi9Tb3VyY2Uv
Y21ha2UvT3B0aW9uc0dUSy5jbWFrZQppbmRleCAwNTI4YTQ5YTNjZmRkZjEyYjcyZGM5MzA5NzAy
NDNhMDRkMzczNDdhLi4xODFhOTNhZDhlNTRjMTVhNzM2NjMwZmQzYzQ3YzQzOGM1YTk5NTg1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvT3B0aW9uc0dUSy5jbWFrZQorKysgYi9Tb3VyY2UvY21h
a2UvT3B0aW9uc0dUSy5jbWFrZQpAQCAtMTY2LDcgKzE2Niw3IEBAIFdFQktJVF9PUFRJT05fREVG
QVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9PRkZTQ1JFRU5fQ0FOVkFTX0lOX1dPUktFUlMgUFJJVkFU
RSAke0VOCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfVEhVTkRFUiBQ
UklWQVRFIE9GRikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9QRVJJ
T0RJQ19NRU1PUllfTU9OSVRPUiBQUklWQVRFIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BP
UlRfVkFMVUUoRU5BQkxFX1BPSU5URVJfTE9DSyBQUklWQVRFIE9OKQotV0VCS0lUX09QVElPTl9E
RUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1JFU09VUkNFX0xPQURfU1RBVElTVElDUyBQUklWQVRF
IE9OKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0lOVEVMTElHRU5U
X1RSQUNLSU5HX1BSRVZFTlRJT04gUFJJVkFURSBPTikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9Q
T1JUX1ZBTFVFKEVOQUJMRV9TRVJWSUNFX1dPUktFUiBQUklWQVRFIE9OKQogV0VCS0lUX09QVElP
Tl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1NIQVJFQUJMRV9SRVNPVVJDRSBQUklWQVRFIE9O
KQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1dFQl9BUElfU1RBVElT
VElDUyBQUklWQVRFIE9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL09wdGlvbnNNYWMuY21h
a2UgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc01hYy5jbWFrZQppbmRleCAzZmJhNmQzYTAxYTk3ZWVl
NmExYzNjNTRhNTJiODBmMmY4ZjlmNTI3Li42YjMwNmQxNjRmYmRmMjJkYzk2NWY5ZjE3NTAyZDFj
YTUwMGRiNzY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvT3B0aW9uc01hYy5jbWFrZQorKysg
Yi9Tb3VyY2UvY21ha2UvT3B0aW9uc01hYy5jbWFrZQpAQCAtNzIsNyArNzIsNyBAQCBXRUJLSVRf
T1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfUE9JTlRFUl9MT0NLIFBSSVZBVEUgT04p
CiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfUFVCTElDX1NVRkZJWF9M
SVNUIFBSSVZBVEUgT04pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVf
UkVNT1RFX0lOU1BFQ1RPUiBQUklWQVRFIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRf
VkFMVUUoRU5BQkxFX1JFU0laRV9PQlNFUlZFUiBQUklWQVRFIE9OKQotV0VCS0lUX09QVElPTl9E
RUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1JFU09VUkNFX0xPQURfU1RBVElTVElDUyBQUklWQVRF
IE9OKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0lOVEVMTElHRU5U
X1RSQUNLSU5HX1BSRVZFTlRJT04gUFJJVkFURSBPTikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9Q
T1JUX1ZBTFVFKEVOQUJMRV9SRVNPVVJDRV9VU0FHRSBQUklWQVRFIE9OKQogV0VCS0lUX09QVElP
Tl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1JVQkJFUl9CQU5ESU5HIFBSSVZBVEUgT04pCiBX
RUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfU0FOREJPWF9FWFRFTlNJT05T
IFBSSVZBVEUgT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvT3B0aW9uc1BsYXlTdGF0aW9u
LmNtYWtlIGIvU291cmNlL2NtYWtlL09wdGlvbnNQbGF5U3RhdGlvbi5jbWFrZQppbmRleCAwNzRk
NjNhNTVlZTE2N2M1ZWU1YTJjNGM5ZWRhYzYxOWUwYjNhZDIxLi5hNzIyNjA5MmRiMDkxMThiNjkw
ZjdkNjc0NjNhOWI0MTFlZWY2ODJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvT3B0aW9uc1Bs
YXlTdGF0aW9uLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zUGxheVN0YXRpb24uY21h
a2UKQEAgLTQyLDcgKzQyLDcgQEAgV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5B
QkxFX0FTWU5DX1NDUk9MTElORyBQUklWQVRFIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BP
UlRfVkFMVUUoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJIFBSSVZBVEUgT04pCiBXRUJLSVRfT1BUSU9O
X0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfUEVSSU9ESUNfTUVNT1JZX01PTklUT1IgUFJJVkFU
RSBPTikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9TTU9PVEhfU0NS
T0xMSU5HIFBSSVZBVEUgT04pCi1XRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFC
TEVfUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTIFBSSVZBVEUgT04pCitXRUJLSVRfT1BUSU9OX0RF
RkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTiBQ
UklWQVRFIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1JFU09V
UkNFX1VTQUdFIFBSSVZBVEUgT04pCiAKICMgRXhwZXJpbWVudGFsIGZlYXR1cmVzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvY21ha2UvT3B0aW9uc1dQRS5jbWFrZSBiL1NvdXJjZS9jbWFrZS9PcHRpb25z
V1BFLmNtYWtlCmluZGV4IDBkNGI4ZjlhZDY2ODA1YTQ2YjAzYWQzMmFjNmFhMjlmNWZkZGJiM2Iu
LjdhNTVlMTU3ZWNmZjdjNWQyYzE1MGYwOWEyYzM5NjU1MDA3ZDY4YTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9jbWFrZS9PcHRpb25zV1BFLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zV1BF
LmNtYWtlCkBAIC02MSw3ICs2MSw3IEBAIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVF
KEVOQUJMRV9ORVRXT1JLX0NBQ0hFX1NUQUxFX1dISUxFX1JFVkFMSURBVEUgUFJJCiBXRUJLSVRf
T1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfT0ZGU0NSRUVOX0NBTlZBUyBQUklWQVRF
ICR7RU5BQkxFX0VYUEVSSU1FTlRBTF9GRUFUVVJFU30pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRf
UE9SVF9WQUxVRShFTkFCTEVfT0ZGU0NSRUVOX0NBTlZBU19JTl9XT1JLRVJTIFBSSVZBVEUgJHtF
TkFCTEVfRVhQRVJJTUVOVEFMX0ZFQVRVUkVTfSkKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JU
X1ZBTFVFKEVOQUJMRV9QRVJJT0RJQ19NRU1PUllfTU9OSVRPUiBQUklWQVRFIE9OKQotV0VCS0lU
X09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1JFU09VUkNFX0xPQURfU1RBVElTVElD
UyBQUklWQVRFIE9OKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0lO
VEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04gUFJJVkFURSBPTikKIFdFQktJVF9PUFRJT05f
REVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9TRVJWSUNFX1dPUktFUiBQUklWQVRFIE9OKQogV0VC
S0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1NIQVJFQUJMRV9SRVNPVVJDRSBQ
UklWQVRFIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1NNT09U
SF9TQ1JPTExJTkcgUFJJVkFURSBPRkYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvT3B0aW9u
c1dpbi5jbWFrZSBiL1NvdXJjZS9jbWFrZS9PcHRpb25zV2luLmNtYWtlCmluZGV4IDY3YjQyNmU1
OGM3NDA5ZjY2ODg5ZWQxZDgzNWFmNjYzNmFkMjc2NDIuLjg3MjJjYTg0MjU0NjA1MjA0NTVmM2Zj
MjdmMWFiNGMzODQ4ZjRkZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9PcHRpb25zV2luLmNt
YWtlCisrKyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zV2luLmNtYWtlCkBAIC01LDcgKzUsNyBAQAog
YWRkX2RlZmluaXRpb25zKC1EX1dJTkRPV1MgLURXSU5WRVI9MHg2MDEgLURfV0lOMzJfV0lOTlQ9
MHg2MDEpCiAKIGFkZF9kZWZpbml0aW9ucygtRE5PTUlOTUFYKQotYWRkX2RlZmluaXRpb25zKC1E
VU5JQ09ERSAtRF9VTklDT0RFKQorYWRkX2RlZmluaXRpb25zKC1EVU5JQ09ERSAtRF9VTklDT0RF
KUlOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04KIAogaWYgKChOT1QgREVGSU5FRCBFTkFC
TEVfV0VCS0lUX0xFR0FDWSkgT1IgRU5BQkxFX1dFQktJVF9MRUdBQ1kpCiAgICAgc2V0KEVOQUJM
RV9XRUJLSVRfTEVHQUNZIE9OKQpAQCAtNzksNyArNzksNyBAQCBpZiAoJHtXVEZfUExBVEZPUk1f
V0lOX0NBSVJPfSkKICAgICBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVf
R1BVX1BST0NFU1MgUFJJVkFURSAke0VOQUJMRV9FWFBFUklNRU5UQUxfRkVBVFVSRVN9KQogICAg
IFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9MQVlPVVRfRk9STUFUVElO
R19DT05URVhUIFBSSVZBVEUgJHtFTkFCTEVfRVhQRVJJTUVOVEFMX0ZFQVRVUkVTfSkKICAgICBX
RUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUiBQ
UklWQVRFICR7RU5BQkxFX0VYUEVSSU1FTlRBTF9GRUFUVVJFU30pCi0gICAgV0VCS0lUX09QVElP
Tl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1JFU09VUkNFX0xPQURfU1RBVElTVElDUyBQUklW
QVRFICR7RU5BQkxFX0VYUEVSSU1FTlRBTF9GRUFUVVJFU30pCisgICAgV0VCS0lUX09QVElPTl9E
RUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0lOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04g
UFJJVkFURSAke0VOQUJMRV9FWFBFUklNRU5UQUxfRkVBVFVSRVN9KQogICAgIFdFQktJVF9PUFRJ
T05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9SRVNPVVJDRV9VU0FHRSBQUklWQVRFICR7RU5B
QkxFX0VYUEVSSU1FTlRBTF9GRUFUVVJFU30pCiAgICAgV0VCS0lUX09QVElPTl9ERUZBVUxUX1BP
UlRfVkFMVUUoRU5BQkxFX1NFUlZJQ0VfV09SS0VSIFBSSVZBVEUgJHtFTkFCTEVfRVhQRVJJTUVO
VEFMX0ZFQVRVUkVTfSkKICAgICBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFC
TEVfVkFSSUFUSU9OX0ZPTlRTIFBSSVZBVEUgJHtFTkFCTEVfRVhQRVJJTUVOVEFMX0ZFQVRVUkVT
fSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9XZWJLaXRGZWF0dXJlcy5jbWFrZSBiL1NvdXJj
ZS9jbWFrZS9XZWJLaXRGZWF0dXJlcy5jbWFrZQppbmRleCAyOTFlMzk1YzljMTZlYTA3YzcxMDVh
YWQ1YzAyN2NkM2I2Y2U4MmIxLi5kMjgxZDEwNmUyNTQ3YWJhZDhhNzk5M2VkZTZhZjQxYjkwMTNj
ZTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvV2ViS2l0RmVhdHVyZXMuY21ha2UKKysrIGIv
U291cmNlL2NtYWtlL1dlYktpdEZlYXR1cmVzLmNtYWtlCkBAIC0xLDQgKzEsNCBAQAotIyBUaGUg
c2V0dGluZ3MgaW4gdGhpcyBmaWxlIGFyZSB0aGUgV2ViS2l0IHByb2plY3QgZGVmYXVsdCB2YWx1
ZXMsIGFuZAorSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTiMgVGhlIHNldHRpbmdzIGlu
IHRoaXMgZmlsZSBhcmUgdGhlIFdlYktpdCBwcm9qZWN0IGRlZmF1bHQgdmFsdWVzLCBhbmQKICMg
YXJlIHJlY29tbWVuZGVkIGZvciBtb3N0IHBvcnRzLiBQb3J0cyBjYW4gb3ZlcnJpZGUgdGhlc2Ug
c2V0dGluZ3MgaW4KICMgT3B0aW9ucyouY21ha2UsIGJ1dCBzaG91bGQgZG8gc28gb25seSBpZiB0
aGVyZSBpcyBzdHJvbmcgcmVhc29uIHRvCiAjIGRldmlhdGUgZnJvbSB0aGUgZGVmYXVsdHMgb2Yg
dGhlIFdlYktpdCBwcm9qZWN0IChlLmcuIGlmIHRoZSBmZWF0dXJlCkBAIC0xOTcsNyArMTk3LDcg
QEAgbWFjcm8oV0VCS0lUX09QVElPTl9CRUdJTikKICAgICBXRUJLSVRfT1BUSU9OX0RFRklORShF
TkFCTEVfUFVCTElDX1NVRkZJWF9MSVNUICJUb2dnbGUgcHVibGljIHN1ZmZpeCBsaXN0IHN1cHBv
cnQiIFBSSVZBVEUgT04pCiAgICAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxFX1JFTU9URV9J
TlNQRUNUT1IgIlRvZ2dsZSByZW1vdGUgaW5zcGVjdG9yIHN1cHBvcnQiIFBSSVZBVEUgT04pCiAg
ICAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxFX1JFU0laRV9PQlNFUlZFUiAiVG9nZ2xlIFJl
c2l6ZSBPYnNlcnZlciBzdXBwb3J0IiBQUklWQVRFIE9OKQotICAgIFdFQktJVF9PUFRJT05fREVG
SU5FKEVOQUJMRV9SRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MgIlRvZ2dsZSByZXNvdXJjZSBsb2Fk
IHN0YXRpc3RpY3Mgc3VwcG9ydCIgUFJJVkFURSBPRkYpCisgICAgV0VCS0lUX09QVElPTl9ERUZJ
TkUoRU5BQkxFX0lOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04gIlRvZ2dsZSByZXNvdXJj
ZSBsb2FkIHN0YXRpc3RpY3Mgc3VwcG9ydCIgUFJJVkFURSBPRkYpCiAgICAgV0VCS0lUX09QVElP
Tl9ERUZJTkUoRU5BQkxFX1JFU09VUkNFX1VTQUdFICJUb2dnbGUgcmVzb3VyY2UgdXNhZ2Ugc3Vw
cG9ydCIgUFJJVkFURSBPRkYpCiAgICAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxFX1JVQkJF
Ul9CQU5ESU5HICJUb2dnbGUgcnViYmVyIGJhbmRpbmcgc3VwcG9ydCIgUFJJVkFURSBPRkYpCiAg
ICAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxFX1NBTVBMSU5HX1BST0ZJTEVSICJUb2dnbGUg
c2FtcGxpbmcgcHJvZmlsZXIgc3VwcG9ydCIgUFJJVkFURSAke0VOQUJMRV9TQU1QTElOR19QUk9G
SUxFUl9ERUZBVUxUfSkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5n
ZUxvZwppbmRleCA1ZmExMDc3NDg5MTRlZDk0MWFhYmQxNjczYWQ5OTFiNDk4NTE0YWQzLi44MTUz
OTgwM2U0YWJhNzBkNzBkMTE5ZmE4ODVjZDQ1NGQ2YmEwMGI5IDEwMDY0NAotLS0gYS9Ub29scy9D
aGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMDkt
MTQgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1l
IFJFU09VUkNFX0xPQURfU1RBVElTVElDUyB0byBJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5U
SU9OCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzAy
NzkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzMTE4NjgzPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9JUENUZXN0aW5nQVBJLm1tOgorCiAyMDIxLTA5LTE0ICBKb25hdGhhbiBCZWRhcmQg
IDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAgICBbZ2l0LXdlYmtpdF0gUmVzZXQgYXV0aG9y
IHRpbWUgd2hlbiBlZGl0aW5nIGNvbW1pdHMgKFBhcnQgMSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSVBDVGVzdGluZ0FQSS5tbSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSVBDVGVzdGluZ0FQSS5tbQppbmRleCA1ZjRj
ODNhYmM5NDUwMmIxOTY1ZGE3OGZlYWEwYjBmY2ZjMTQ2ZDc3Li41YWE5YmI3YjMwYTE3Y2E2MzIz
ZWRiNmJkZGVmY2UyYWExODVkODliIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0lQQ1Rlc3RpbmdBUEkubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9JUENUZXN0aW5nQVBJLm1tCkBAIC00MzksNyArNDM5LDcgQEAg
VEVTVChJUENUZXN0aW5nQVBJLCBEZWNvZGVzUmVwbHlBcmd1bWVudHNGb3JQcm9tcHQpCiAgICAg
RVhQRUNUX1NUUkVRKFtbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiSlNP
Ti5zdHJpbmdpZnkocmVzdWx0LmFyZ3VtZW50cykiXSBVVEY4U3RyaW5nXSwgIlt7XCJ0eXBlXCI6
XCJTdHJpbmdcIixcInZhbHVlXCI6XCJmb29cIn1dIik7CiB9CiAKLSNpZiBFTkFCTEUoUkVTT1VS
Q0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVW
RU5USU9OKQogVEVTVChJUENUZXN0aW5nQVBJLCBEZWNvZGVzUmVwbHlBcmd1bWVudHNGb3JBc3lu
Y01lc3NhZ2UpCiB7CiAgICAgYXV0byB3ZWJWaWV3ID0gY3JlYXRlV2ViVmlld1dpdGhJUENUZXN0
aW5nQVBJKCk7CkBAIC01MDEsNyArNTAxLDcgQEAgVEVTVChJUENUZXN0aW5nQVBJLCBDYW5JbnRl
cmNlcHRBbGVydCkKICAgICAgICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlw
dDpAIklQQy53ZWJQYWdlUHJveHlJRC50b1N0cmluZygpIl0uaW50VmFsdWUpOwogfQogCi0jaWYg
RU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRf
VFJBQ0tJTkdfUFJFVkVOVElPTikKIFRFU1QoSVBDVGVzdGluZ0FQSSwgQ2FuSW50ZXJjZXB0SGFz
U3RvcmFnZUFjY2VzcykKIHsKICAgICBhdXRvIHdlYlZpZXcgPSBjcmVhdGVXZWJWaWV3V2l0aElQ
Q1Rlc3RpbmdBUEkoKTsKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA4
YTBhNmEwNDExMWZhMzY1MDlhNzAxNWQ3MDZiNTRkNDI0NzA1NzM0Li4wZWJjZjRkNTgwY2I5OTM1
YTMwZGVjZmE3OWYzOTUwOWRlYzM2MzcxIDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMjEtMDktMTQgIEpvaG4gV2lsYW5kZXIgIDx3aWxh
bmRlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIFJFU09VUkNFX0xPQURfU1RBVElTVElD
UyB0byBJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzAyNzkKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzgzMTE4NjgzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogU291cmNlL2NtYWtlL09wdGlvbnNGVFcuY21ha2U6CisgICAgICAgICogU291cmNl
L2NtYWtlL09wdGlvbnNHVEsuY21ha2U6CisgICAgICAgICogU291cmNlL2NtYWtlL09wdGlvbnNN
YWMuY21ha2U6CisgICAgICAgICogU291cmNlL2NtYWtlL09wdGlvbnNQbGF5U3RhdGlvbi5jbWFr
ZToKKyAgICAgICAgKiBTb3VyY2UvY21ha2UvT3B0aW9uc1dQRS5jbWFrZToKKyAgICAgICAgKiBT
b3VyY2UvY21ha2UvT3B0aW9uc1dpbi5jbWFrZToKKyAgICAgICAgKiBTb3VyY2UvY21ha2UvV2Vi
S2l0RmVhdHVyZXMuY21ha2U6CisKIDIwMjEtMDktMTMgIFNhbSBTbmVkZG9uICA8Z3NuZWRkZXJz
QGFwcGxlLmNvbT4KIAogICAgICAgICBNb3ZlIEVOQUJMRV9SRVNPTFVUSU9OX01FRElBX1FVRVJZ
IHRvIGEgcnVudGltZSBmbGFnLCBzdGFydCBydW5uaW5nIHRlc3RzIGFnYWluCg==
</data>
<flag name="commit-queue"
          id="461498"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438181</attachid>
            <date>2021-09-14 15:33:01 -0700</date>
            <delta_ts>2021-09-14 17:15:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230279-20210914153300.patch</filename>
            <type>text/plain</type>
            <size>187362</size>
            <attacher name="John Wilander">wilander</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyNDA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGY0YjQ0Y2ZjZDc4ZmMwMDIzOWRmODk4
ODE3OWFjZmI0Nzg3NzAzMmMuLjU4ZGQ5NjQzNmMwMWZmODgxMWMyYjUyNmE2NjkxYTQ5NWQxMjJi
NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMDktMTQgIEpvaG4gV2lsYW5kZXIgIDx3aWxh
bmRlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIFJFU09VUkNFX0xPQURfU1RBVElTVElD
UyB0byBJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzAyNzkKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzgzMTE4NjgzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaDoKKwogMjAyMS0wOS0xNCAgRnVqaWkg
SGlyb25vcmkgIDxIaXJvbm9yaS5GdWppaUBzb255LmNvbT4KIAogICAgICAgICBTdGFja1RyYWNl
IG91dHB1dHMgYSBnYXJiYWdlIHByZWZpeCBiZWNhdXNlIFdURjo6U3RhY2tUcmFjZTo6bV9wcmVm
aXggaXMgZmlsbGVkIHdpdGggdGhlIHN0YWNrIGNvbnRlbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxZTQ0MjM3
ZWJkYWUxZThjOWFkYzgwYjY1NWEwNDg1ZTVjNzE2NDA1Li5jNzQ3Y2ZmYTZlNzViMmYwZDJhMzFj
OGE2YjQ0MTM5M2NjMmNhMWZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTQgQEAKKzIwMjEtMDkt
MTQgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1l
IFJFU09VUkNFX0xPQURfU1RBVElTVElDUyB0byBJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5U
SU9OCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzAy
NzkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzMTE4NjgzPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNv
Y2tldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXQ6OmNvbm5lY3QpOgorICAgICAg
ICAqIGRvbS9Ccm9hZGNhc3RDaGFubmVsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNob3VsZFBh
cnRpdGlvbk9yaWdpbik6CisgICAgICAgICogZG9tL0RvY3VtZW50K1N0b3JhZ2VBY2Nlc3MuaWRs
OgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dDo6cmVmZXJyZXIpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIGRvbS9E
b2N1bWVudFN0b3JhZ2VBY2Nlc3MuY3BwOgorICAgICAgICAqIGRvbS9Eb2N1bWVudFN0b3JhZ2VB
Y2Nlc3MuaDoKKyAgICAgICAgKiBoaXN0b3J5L0NhY2hlZFBhZ2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FjaGVkUGFnZTo6Q2FjaGVkUGFnZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRQ
YWdlOjpyZXN0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFBhZ2U6OmNsZWFyKToKKyAg
ICAgICAgKiBoaXN0b3J5L0NhY2hlZFBhZ2UuaDoKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRM
b2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6OnJlc3BvbnNlUmVj
ZWl2ZWQpOgorICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuY3BwOgorICAgICAgICAqIGxv
YWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9h
ZGVyQ2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVlc3RJbnRlcm5hbCk6Cisg
ICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UpOgorICAgICAg
ICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogcGFnZS9Dcm9zc1NpdGVOYXZpZ2F0
aW9uRGF0YVRyYW5zZmVyLmg6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RE9NV2luZG93OjpvcGVuKToKKyAgICAgICAgKiBwYWdlL1F1aXJrcy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpRdWlya3M6OnRyaWdnZXJPcHRpb25hbFN0b3JhZ2VBY2Nlc3NR
dWlyayBjb25zdCk6CisgICAgICAgICogcGFnZS9RdWlya3MuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5jcHA6CisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3
b3JrL2NvY29hL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVzRm9yVVJMIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2V0Q29va2llc0Zyb21ET00gY29uc3Qp
OgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9OZXR3b3JrU3RvcmFnZVNlc3Npb25D
dXJsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2V0Q29v
a2llc0Zyb21ET00gY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3
b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9y
YWdlU2Vzc2lvbjo6c2V0Q29va2llc0Zyb21ET00gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpnZXRSYXdDb29raWVzIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OmNvb2tpZXNGb3JTZXNzaW9uKToKKwogMjAyMS0wOS0xNCAgRGFyaW4gQWRsZXIgIDxk
YXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgVVJMcyBpbiBDU1MgdmFyaWFibGVzIG11c3QgYmUg
cmVzb2x2ZWQgYWdhaW5zdCB0aGUgYmFzZSBVUkwgb2YgdGhlIHN0eWxlc2hlZXQsIG5vdCB0aGUg
ZG9jdW1lbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKaW5kZXggZGM4M2ViMTRkMzlkY2UyNGNkMzc5Y2UyZTgyZTBmOGUwMDhm
YTQzMi4uNWFkNjgwYTBjNzVjZTMxNTMyYWE5MTBlOWQ1YjQ2YmNkMGUzNGM0NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyMjQgQEAKKzIwMjEtMDktMTQgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBh
cHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIFJFU09VUkNFX0xPQURfU1RBVElTVElDUyB0byBJ
TlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzAyNzkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgz
MTE4NjgzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZS5jcHA6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmNwcDoKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1v
cnlTdG9yZS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlOjp1cGRhdGVDbGllbnRTaWRlQ29va2llc0FnZUNhcCk6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaDoK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZS5jcHA6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb29raWVzRm9yRE9NKToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnNldENvb2tpZXNGcm9tRE9NKToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNsZWFyUGFnZVNw
ZWNpZmljRGF0YSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrRGF0YVRhc2suY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2s6OnJlc3Ry
aWN0UmVxdWVzdFJlZmVycmVyVG9PcmlnaW5JZk5lZWRlZCk6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vz
czo6ZmV0Y2hXZWJzaXRlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpk
ZWxldGVXZWJzaXRlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpkZWxl
dGVXZWJzaXRlRGF0YUZvck9yaWdpbnMpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vz
czo6cHJlcGFyZVRvU3VzcGVuZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpy
ZXN1bWUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpyZXRyaWV2ZUNhY2hlRW50cnlJbnRlcm5hbCk6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoTG9hZGlu
Zyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6dmFsaWRhdGVDYWNo
ZUVudHJ5Rm9yTWF4QWdlQ2FwVmFsaWRhdGlvbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtS
ZXNvdXJjZUxvYWRlcjo6c2VuZFJlc3VsdEZvckNhY2hlRW50cnkpOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL05ldHdvcmtTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb246
Ok5ldHdvcmtTZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb246On5OZXR3
b3JrU2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uOjppbnZhbGlkYXRl
QW5kQ2FuY2VsKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHA6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6Q2FjaGU6OnN0b3JlUmVkaXJlY3QpOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUVudHJ5LmNwcDoKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVFbnRyeS5oOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVNwZWN1bGF0aXZlTG9hZC5jcHA6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6U3BlY3VsYXRpdmVMb2FkOjp3aWxsU2VuZFJlZGlyZWN0
ZWRSZXF1ZXN0KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRh
c2tDb2NvYS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFz
a0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2tDb2NvYTo6TmV0d29y
a0RhdGFUYXNrQ29jb2EpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2tDb2NvYTo6
d2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb24pOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2Nv
Y29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW06CisgICAgICAgICgtW1dLTmV0d29ya1Nlc3Npb25E
ZWxlZ2F0ZSBVUkxTZXNzaW9uOnRhc2s6d2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb246bmV3UmVx
dWVzdDpjb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKC1bV0tOZXR3b3JrU2Vzc2lvbkRl
bGVnYXRlIFVSTFNlc3Npb246dGFzazpfc2NoZW1lVXBncmFkZWQ6Y29tcGxldGlvbkhhbmRsZXI6
XSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ29jb2E6OnNlc3Npb25XcmFwcGVy
Rm9yVGFzayk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY3VybC9OZXR3b3JrRGF0YVRhc2tD
dXJsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrQ3VybDo6TmV0d29ya0Rh
dGFUYXNrQ3VybCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza0N1cmw6OndpbGxQ
ZXJmb3JtSFRUUFJlZGlyZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNr
Q3VybDo6YmxvY2tDb29raWVzKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrQ3Vy
bDo6dW5ibG9ja0Nvb2tpZXMpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2tDdXJs
OjpzaG91bGRCbG9ja0Nvb2tpZXMpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2N1cmwvTmV0
d29ya1Nlc3Npb25DdXJsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25DdXJs
OjpOZXR3b3JrU2Vzc2lvbkN1cmwpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3NvdXAvTmV0
d29ya0RhdGFUYXNrU291cC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza1Nv
dXA6OmNyZWF0ZVJlcXVlc3QpOgorICAgICAgICAqIFNoYXJlZC9SZXNvdXJjZUxvYWRTdGF0aXN0
aWNzUGFyYW1ldGVycy5oOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
UGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1BhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYlByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NEYXRh
U3RvcmVQYXJhbWV0ZXJzLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NEYXRhU3RvcmVQ
YXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzRGF0
YVN0b3JlUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2Vic2l0ZURhdGEv
V2Vic2l0ZURhdGEuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YTo6ZW5jb2RlIGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGE6OmRlY29kZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYnNpdGVEYXRhOjppc29sYXRlZENvcHkgY29uc3QpOgorICAgICAgICAqIFNoYXJl
ZC9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9X
S1BhZ2UuY3BwOgorICAgICAgICAoV0tQYWdlTG9hZGVkU3VicmVzb3VyY2VEb21haW5zKToKKyAg
ICAgICAgKFdLUGFnZUNsZWFyTG9hZGVkU3VicmVzb3VyY2VEb21haW5zKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcDoKKyAgICAgICAgKFdLV2Vi
c2l0ZURhdGFTdG9yZVJlbW92ZUlUUERhdGFGb3JEb21haW4pOgorICAgICAgICAoV0tXZWJzaXRl
RGF0YVN0b3JlRG9lc1N0YXRpc3RpY3NEb21haW5JREV4aXN0SW5EYXRhYmFzZSk6CisgICAgICAg
IChXS1dlYnNpdGVEYXRhU3RvcmVTZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCk6Cisg
ICAgICAgIChXS1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NFcGhlbWVyYWwpOgorICAgICAg
ICAoV0tXZWJzaXRlRGF0YVN0b3JlU2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZVdp
dGhDb21wbGV0aW9uSGFuZGxlcik6CisgICAgICAgIChXS1dlYnNpdGVEYXRhU3RvcmVTZXRSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2VGb3JEZWJ1Z01vZGUpOgorICAgICAg
ICAoV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc0xhc3RTZWVuKToKKyAgICAgICAgKFdL
V2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NNZXJnZVN0YXRpc3RpYyk6CisgICAgICAgIChX
S1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzRXhwaXJlZFN0YXRpc3RpYyk6CisgICAgICAg
IChXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UpOgorICAg
ICAgICAoV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJj
ZSk6CisgICAgICAgIChXS1dlYnNpdGVEYXRhU3RvcmVEdW1wUmVzb3VyY2VMb2FkU3RhdGlzdGlj
cyk6CisgICAgICAgIChXS1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNv
dXJjZSk6CisgICAgICAgIChXS1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NWZXJ5UHJldmFs
ZW50UmVzb3VyY2UpOgorICAgICAgICAoV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzUmVn
aXN0ZXJlZEFzU3VicmVzb3VyY2VVbmRlcik6CisgICAgICAgIChXS1dlYnNpdGVEYXRhU3RvcmVJ
c1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKToKKyAgICAgICAgKFdLV2Vic2l0
ZURhdGFTdG9yZUlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8pOgorICAgICAg
ICAoV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbik6
CisgICAgICAgIChXS1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJh
Y3Rpb24pOgorICAgICAgICAoV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzT25seUluRGF0
YWJhc2VPbmNlKToKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NHcmFu
ZGZhdGhlcmVkKToKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlzdGljc0dyYW5k
ZmF0aGVyZWQpOgorICAgICAgICAoV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc1N1YmZy
YW1lVW5kZXJUb3BGcmFtZU9yaWdpbik6CisgICAgICAgIChXS1dlYnNpdGVEYXRhU3RvcmVTZXRT
dGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKToKKyAgICAgICAgKFdLV2Vi
c2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8pOgor
ICAgICAgICAoV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVl
UmVkaXJlY3RGcm9tKToKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NU
b3BGcmFtZVVuaXF1ZVJlZGlyZWN0VG8pOgorICAgICAgICAoV0tXZWJzaXRlRGF0YVN0b3JlU2V0
U3RhdGlzdGljc1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RGcm9tKToKKyAgICAgICAgKFdLV2Vic2l0
ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NDcm9zc1NpdGVMb2FkV2l0aExpbmtEZWNvcmF0aW9uKToK
KyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NUaW1lVG9MaXZlVXNlcklu
dGVyYWN0aW9uKToKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NQcm9jZXNz
U3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKToKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZVN0
YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyk6CisgICAgICAgIChXS1dlYnNpdGVEYXRhU3Rv
cmVTZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCk6Cisg
ICAgICAgIChXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzSXNSdW5uaW5nVGVzdCk6Cisg
ICAgICAgIChXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzU2hvdWxkQ2xhc3NpZnlSZXNv
dXJjZXNCZWZvcmVEYXRhUmVjb3Jkc1JlbW92YWwpOgorICAgICAgICAoV0tXZWJzaXRlRGF0YVN0
b3JlU2V0U3RhdGlzdGljc01pbmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbCk6Cisg
ICAgICAgIChXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzR3JhbmRmYXRoZXJpbmdUaW1l
KToKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NNYXhTdGF0aXN0aWNz
RW50cmllcyk6CisgICAgICAgIChXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzUHJ1bmVF
bnRyaWVzRG93blRvKToKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NDbGVh
ckluTWVtb3J5QW5kUGVyc2lzdGVudFN0b3JlKToKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9y
ZVN0YXRpc3RpY3NDbGVhckluTWVtb3J5QW5kUGVyc2lzdGVudFN0b3JlTW9kaWZpZWRTaW5jZUhv
dXJzKToKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NEZWxldGVDb29raWVz
Rm9yVGVzdGluZyk6CisgICAgICAgIChXS1dlYnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzSGFzTG9j
YWxTdG9yYWdlKToKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NDYWNo
ZU1heEFnZUNhcCk6CisgICAgICAgIChXS1dlYnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzSGFzSXNv
bGF0ZWRTZXNzaW9uKToKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZVNldFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTaG91bGREb3duZ3JhZGVSZWZlcnJlckZvclRlc3RpbmcpOgorICAgICAgICAo
V0tXZWJzaXRlRGF0YVN0b3JlU2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nob3VsZEJsb2NrVGhp
cmRQYXJ0eUNvb2tpZXNGb3JUZXN0aW5nKToKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZVNl
dFJlc291cmNlTG9hZFN0YXRpc3RpY3NGaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZUZv
clRlc3RpbmcpOgorICAgICAgICAoV0tXZWJzaXRlRGF0YVN0b3JlU2V0UmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1RvU2FtZVNpdGVTdHJpY3RDb29raWVzRm9yVGVzdGluZyk6CisgICAgICAgIChXS1dl
YnNpdGVEYXRhU3RvcmVTZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRmlyc3RQYXJ0eUhvc3RDTkFN
RURvbWFpbkZvclRlc3RpbmcpOgorICAgICAgICAoV0tXZWJzaXRlRGF0YVN0b3JlU2V0UmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1RoaXJkUGFydHlDTkFNRURvbWFpbkZvclRlc3RpbmcpOgorICAgICAg
ICAoV0tXZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGljc1Jlc2V0VG9Db25zaXN0ZW50U3RhdGUpOgor
ICAgICAgICAoV0tXZWJzaXRlRGF0YVN0b3JlR2V0QWxsU3RvcmFnZUFjY2Vzc0VudHJpZXMpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbToKKyAgICAgICAg
KC1bV0tQcm9jZXNzUG9vbCBfc2VlZFJlc291cmNlTG9hZFN0YXRpc3RpY3NGb3JUZXN0aW5nV2l0
aEZpcnN0UGFydHk6dGhpcmRQYXJ0eTpzaG91bGRTY2hlZHVsZU5vdGlmaWNhdGlvbjpjb21wbGV0
aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURh
dGFTdG9yZS5tbToKKyAgICAgICAgKC1bV0tXZWJzaXRlRGF0YVN0b3JlIF9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGVidWdNb2RlXSk6CisgICAgICAgICgtW1dLV2Vic2l0ZURhdGFTdG9yZSBfc2V0
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZTpdKToKKyAgICAgICAgKC1bV0tXZWJzaXRl
RGF0YVN0b3JlIF9zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVzdGluZ0NhbGxiYWNrOl0pOgor
ICAgICAgICAoLVtXS1dlYnNpdGVEYXRhU3RvcmUgX2xvYWRlZFN1YnJlc291cmNlRG9tYWluc0Zv
cjpjb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKC1bV0tXZWJzaXRlRGF0YVN0b3JlIF9j
bGVhckxvYWRlZFN1YnJlc291cmNlRG9tYWluc0ZvcjpdKToKKyAgICAgICAgKC1bV0tXZWJzaXRl
RGF0YVN0b3JlIF9nZXRBbGxTdG9yYWdlQWNjZXNzRW50cmllc0Zvcjpjb21wbGV0aW9uSGFuZGxl
cjpdKToKKyAgICAgICAgKC1bV0tXZWJzaXRlRGF0YVN0b3JlIF9zY2hlZHVsZUNvb2tpZUJsb2Nr
aW5nVXBkYXRlOl0pOgorICAgICAgICAoLVtXS1dlYnNpdGVEYXRhU3RvcmUgX2xvZ1VzZXJJbnRl
cmFjdGlvbjpjb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKC1bV0tXZWJzaXRlRGF0YVN0
b3JlIF9zZXRQcmV2YWxlbnREb21haW46Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICgt
W1dLV2Vic2l0ZURhdGFTdG9yZSBfZ2V0SXNQcmV2YWxlbnREb21haW46Y29tcGxldGlvbkhhbmRs
ZXI6XSk6CisgICAgICAgICgtW1dLV2Vic2l0ZURhdGFTdG9yZSBfY2xlYXJQcmV2YWxlbnREb21h
aW46Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW1dLV2Vic2l0ZURhdGFTdG9yZSBf
Y2xlYXJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOl0pOgorICAgICAgICAoLVtXS1dlYnNpdGVEYXRh
U3RvcmUgX2dldFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhU3VtbWFyeTpdKToKKyAgICAgICAg
KC1bV0tXZWJzaXRlRGF0YVN0b3JlIF9pc1JlbGF0aW9uc2hpcE9ubHlJbkRhdGFiYXNlT25jZTp0
aGlyZFBhcnR5OmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAoLVtXS1dlYnNpdGVEYXRh
U3RvcmUgX2lzUmVnaXN0ZXJlZEFzU3VicmVzb3VyY2VVbmRlckZpcnN0UGFydHk6dGhpcmRQYXJ0
eTpjb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKC1bV0tXZWJzaXRlRGF0YVN0b3JlIF9z
dGF0aXN0aWNzRGF0YWJhc2VIYXNBbGxUYWJsZXM6XSk6CisgICAgICAgICgtW1dLV2Vic2l0ZURh
dGFTdG9yZSBfcHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkczpdKToKKyAgICAgICAgKC1b
V0tXZWJzaXRlRGF0YVN0b3JlIF9zZXRUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlOm9ubHlP
blNpdGVzV2l0aG91dFVzZXJJbnRlcmFjdGlvbjpjb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbToKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OmRpZENvbW1pdExvYWRGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6ZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24pOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vz
c1Bvb2wuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6d2ViUHJvY2Vzc0Rh
dGFTdG9yZVBhcmFtZXRlcnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURh
dGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJz
aXRlRGF0YVN0b3JlOjpwbGF0Zm9ybVNldE5ldHdvcmtQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFSZWNvcmQuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJzaXRlRGF0YVJlY29yZDo6aXNvbGF0ZWRDb3B5IGNvbnN0KToKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFSZWNvcmQuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYnNpdGVEYXRhU3RvcmU6OmZldGNoRGF0YUFuZEFwcGx5KToKKyAgICAgICAgKFdlYktpdDo6
V2Vic2l0ZURhdGFTdG9yZTo6cmVtb3ZlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVE
YXRhU3RvcmU6OnNldENhY2hlTWF4QWdlQ2FwRm9yUHJldmFsZW50UmVzb3VyY2VzKToKKyAgICAg
ICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6cmVzZXRDYWNoZU1heEFnZUNhcEZvclByZXZh
bGVudFJlc291cmNlcyk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnJlc291
cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0
ZURhdGFTdG9yZTo6cmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZSBjb25zdCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NF
bmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6c2V0UmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RlYnVnTW9kZSk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3Rv
cmU6OmlzUmVzb3VyY2VMb2FkU3RhdGlzdGljc0VwaGVtZXJhbCBjb25zdCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnBhcmFtZXRlcnMpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpkZXRhY2hlZEZyb21QYXJlbnQyKToKKyAgICAgICAgKFdl
YktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoV2lsbENoYW5nZURvY3VtZW50KToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRP
YnNlcnZlci5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJSZXNv
dXJjZUxvYWRPYnNlcnZlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb29r
aWVKYXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVKYXI6OmNvb2tpZXMgY29uc3Qp
OgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVKYXI6OnNldENvb2tpZXMpOgorICAgICAgICAo
V2ViS2l0OjpXZWJDb29raWVKYXI6OmNvb2tpZXNFbmFibGVkIGNvbnN0KToKKyAgICAgICAgKFdl
YktpdDo6V2ViQ29va2llSmFyOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZSBjb25zdCk6
CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZUphcjo6Z2V0UmF3Q29va2llcyBjb25zdCk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlOjpkaWRDb21taXRMb2FkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2Vz
LmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3M6OmluaXRpYWxpemVXZWJQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzczo6c2V0V2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzOjpzZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmNsZWFyUmVzb3VyY2VMb2FkU3RhdGlzdGljcyk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmZsdXNoUmVzb3VyY2VMb2FkU3RhdGlzdGljcyk6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnNlZWRSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
Rm9yVGVzdGluZyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluOgorCiAyMDIxLTA5LTE0ICBGdWpp
aSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAgIEVuYWJsZSBJ
UENNZXNzYWdlcyBkZWJ1ZyBsb2dnaW5nIGZvciBub24tQ29jb2EgcG9ydHMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaCBiL1NvdXJjZS9XVEYvd3RmL1Bs
YXRmb3JtRW5hYmxlQ29jb2EuaAppbmRleCBiODBjODQyOTZmNDRmMDMwNzVlOTA1NmM0MDlkODBi
NzUyODFmMzdmLi5jZGY0MjY5MThmYWVmZjE2NGUwNmVjYTFmZTRkMDZkOWFhYzQ5Y2NkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmgKKysrIGIvU291cmNl
L1dURi93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oCkBAIC00ODYsOCArNDg2LDggQEAKICNkZWZp
bmUgRU5BQkxFX1JFU0laRV9PQlNFUlZFUiAxCiAjZW5kaWYKIAotI2lmICFkZWZpbmVkKEVOQUJM
RV9SRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi0jZGVmaW5lIEVOQUJMRV9SRVNPVVJDRV9MT0FE
X1NUQVRJU1RJQ1MgMQorI2lmICFkZWZpbmVkKEVOQUJMRV9JTlRFTExJR0VOVF9UUkFDS0lOR19Q
UkVWRU5USU9OKQorI2RlZmluZSBFTkFCTEVfSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElP
TiAxCiAjZW5kaWYKIAogI2lmICFkZWZpbmVkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAmJiAh
UExBVEZPUk0oTUFDQ0FUQUxZU1QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29j
a2V0cy9XZWJTb2NrZXQuY3BwCmluZGV4IDRjYTA4MDA3ZGZhZjM1ZmJiNWZhM2E4ZDQ1NTg5YTUw
ZDg0NjA2OTAuLjg4YmQzZmEzMjcyYWY0NTYwOWYxNmUwMjcxYmVhODJmNmM5ZGI5ODQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCkBAIC0z
MjQsNyArMzI0LDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gV2ViU29ja2V0Ojpjb25uZWN0KGNvbnN0
IFN0cmluZyYgdXJsLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcHIKICAgICAgICAgcmV0dXJuIHsg
fTsKICAgICB9CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVO
QUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIGF1dG8gcmVwb3J0UmVn
aXN0cmFibGVEb21haW4gPSBbZG9tYWluID0gUmVnaXN0cmFibGVEb21haW4obV91cmwpLmlzb2xh
dGVkQ29weSgpXShhdXRvJiBjb250ZXh0KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKGF1dG8qIGZy
YW1lID0gZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpLmZyYW1lKCkpCiAgICAgICAgICAgICBm
cmFtZS0+bG9hZGVyKCkuY2xpZW50KCkuZGlkTG9hZEZyb21SZWdpc3RyYWJsZURvbWFpbihXVEZN
b3ZlKGRvbWFpbikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Jyb2FkY2FzdENo
YW5uZWwuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0Jyb2FkY2FzdENoYW5uZWwuY3BwCmluZGV4
IGE1OWQxZGY4MTkxYTNkZGRhZGNlYTdmOTQ5YmMxYWE3ZThmMzgyYTMuLjBmMDcxZjEzZjI5YWRl
YTE4MDk2Njc4NzA2YmUwMmFiNDkzMTdhNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ccm9hZGNhc3RDaGFubmVsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQnJvYWRjYXN0
Q2hhbm5lbC5jcHAKQEAgLTY0LDcgKzY0LDcgQEAgc3RhdGljIGJvb2wgc2hvdWxkUGFydGl0aW9u
T3JpZ2luKERvY3VtZW50JiBkb2N1bWVudCkKICAgICBpZiAoIWRvY3VtZW50LnNldHRpbmdzKCku
YnJvYWRjYXN0Q2hhbm5lbE9yaWdpblBhcnRpdGlvbmluZ0VuYWJsZWQoKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBF
TkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBpZiAoIWRvY3VtZW50
LnNldHRpbmdzKCkuc3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudCtTdG9yYWdlQWNj
ZXNzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudCtTdG9yYWdlQWNjZXNzLmlkbApp
bmRleCBlYTRjMTE5NWVkNzY4YTQ5YWQ4OWRjMjVjOGI3YmQ1YjRlN2RlMmNjLi5hODA5NDkzYjcz
MzYwZjFjYTk0Nzk3NGFiYWEwNGYwZTE5ZWY3OTE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQrU3RvcmFnZUFjY2Vzcy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50K1N0b3JhZ2VBY2Nlc3MuaWRsCkBAIC0yNSw3ICsyNSw3IEBACiAKIC8vIGh0dHBz
Oi8vcHJpdmFjeWNnLmdpdGh1Yi5pby9zdG9yYWdlLWFjY2Vzcy8jdGhlLWRvY3VtZW50LW9iamVj
dAogWwotICAgIENvbmRpdGlvbmFsPVJFU09VUkNFX0xPQURfU1RBVElTVElDUywKKyAgICBDb25k
aXRpb25hbD1JTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OLAogICAgIEVuYWJsZWRCeVNl
dHRpbmc9c3RvcmFnZUFjY2Vzc0FQSSwKICAgICBJbXBsZW1lbnRlZEJ5PURvY3VtZW50U3RvcmFn
ZUFjY2VzcwogXSBwYXJ0aWFsIGludGVyZmFjZSBEb2N1bWVudCB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcAppbmRleCAzMzliZDhjYjc1ZGQ4Nzk2MzNmNGE0M2Q0MDk0ZmVjY2M4NjUxOGZmLi4xODgw
NjIwZWRmMGM2MWQ1NTM5ZjFlYWQ2NDUwZmQ3OThhNmIzMDA4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKQEAgLTUzMTMsNyArNTMxMyw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IERvY3VtZW50Ojpz
ZXRDb29raWUoY29uc3QgU3RyaW5nJiB2YWx1ZSkKIAogU3RyaW5nIERvY3VtZW50OjpyZWZlcnJl
cigpCiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUo
SU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBpZiAoIW1fcmVmZXJyZXJPdmVy
cmlkZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBtX3JlZmVycmVyT3ZlcnJpZGU7CiAgICAg
aWYgKERlcHJlY2F0ZWRHbG9iYWxTZXR0aW5nczo6cmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJs
ZWQoKSAmJiBmcmFtZSgpKSB7CkBAIC04MzgxLDcgKzgzODEsNyBAQCB2b2lkIERvY3VtZW50Ojp1
cGRhdGVNYWluQXJ0aWNsZUVsZW1lbnRBZnRlckxheW91dCgpCiAgICAgbV9tYWluQXJ0aWNsZUVs
ZW1lbnQgPSBtYWtlV2Vha1B0cih0YWxsZXN0QXJ0aWNsZS5nZXQoKSk7CiB9CiAKLSNpZiBFTkFC
TEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFD
S0lOR19QUkVWRU5USU9OKQogCiBib29sIERvY3VtZW50OjpoYXNSZXF1ZXN0ZWRQYWdlU3BlY2lm
aWNTdG9yYWdlQWNjZXNzV2l0aFVzZXJJbnRlcmFjdGlvbihjb25zdCBSZWdpc3RyYWJsZURvbWFp
biYgZG9tYWluKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCBmNjhlZjBkY2EwZGMzNjk2Njdh
ZjZmOWI5YmE4ODc3YzRjMjY1MDhhLi41NGQxZjEyMGY2MWFkMTFmZDZiMmRlOWIwOWVmZWM1MWIz
YmQ4ZWI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTU1Miw3ICsxNTUyLDcgQEAgcHVibGlj
OgogICAgIGJvb2wgaGFuZGxpbmdUb3VjaEV2ZW50KCkgY29uc3QgeyByZXR1cm4gbV9oYW5kbGlu
Z1RvdWNoRXZlbnQ7IH0KICNlbmRpZgogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElT
VElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBX
RUJDT1JFX0VYUE9SVCBib29sIGhhc1JlcXVlc3RlZFBhZ2VTcGVjaWZpY1N0b3JhZ2VBY2Nlc3NX
aXRoVXNlckludGVyYWN0aW9uKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJik7CiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBzZXRIYXNSZXF1ZXN0ZWRQYWdlU3BlY2lmaWNTdG9yYWdlQWNjZXNzV2l0
aFVzZXJJbnRlcmFjdGlvbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYpOwogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgd2FzTG9hZGVkV2l0aERhdGFUcmFuc2ZlckZyb21QcmV2YWxlbnRSZXNvdXJj
ZSgpOwpAQCAtMjE4NCw3ICsyMTg0LDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8U1dDbGllbnRD
b25uZWN0aW9uPiBtX3NlcnZpY2VXb3JrZXJDb25uZWN0aW9uOwogI2VuZGlmCiAKLSNpZiBFTkFC
TEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFD
S0lOR19QUkVWRU5USU9OKQogICAgIFJlZ2lzdHJhYmxlRG9tYWluIG1fcmVnaXN0cmFibGVEb21h
aW5SZXF1ZXN0ZWRQYWdlU3BlY2lmaWNTdG9yYWdlQWNjZXNzV2l0aFVzZXJJbnRlcmFjdGlvbiB7
IH07CiAgICAgU3RyaW5nIG1fcmVmZXJyZXJPdmVycmlkZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50U3RvcmFnZUFjY2Vzcy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnRTdG9yYWdlQWNjZXNzLmNwcAppbmRleCAxODA0MDVhOWYwNGIxNzAy
NTkyMWZlYTVkZjFiZTIyNTY5NmVjMDMyLi41NjhlNTA3ZWMzNzg5MTFjZDVmOTVmYWNmOGY2ZjQ3
NDgwNzkwYjA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRTdG9yYWdl
QWNjZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRTdG9yYWdlQWNjZXNz
LmNwcApAQCAtMjYsNyArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkRv
Y3VtZW50U3RvcmFnZUFjY2Vzcy5oIgogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElT
VElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKIAogI2lu
Y2x1ZGUgIkNocm9tZS5oIgogI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgpAQCAtMzE4LDQgKzMx
OCw0IEBAIGJvb2wgRG9jdW1lbnRTdG9yYWdlQWNjZXNzOjpoYXNGcmFtZVNwZWNpZmljU3RvcmFn
ZUFjY2VzcygpIGNvbnN0CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vIEVO
QUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjZW5kaWYgLy8gRU5BQkxFKElOVEVMTElH
RU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnRTdG9yYWdlQWNjZXNzLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRTdG9y
YWdlQWNjZXNzLmgKaW5kZXggZWRhMjZmZWI3MmQzMWM4NGUyZDc2Njc1M2NlNzM0NzRlNzZmNDcx
ZS4uM2UyMTNkNTg0MDg0MTBkM2FjMTljMDA1NDk4MmUwMzgwNDYxZDM4OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50U3RvcmFnZUFjY2Vzcy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudFN0b3JhZ2VBY2Nlc3MuaApAQCAtMjUsNyArMjUsNyBAQAogCiAj
cHJhZ21hIG9uY2UKIAotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYg
RU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAKICNpbmNsdWRlICJSZWdp
c3RyYWJsZURvbWFpbi5oIgogI2luY2x1ZGUgIlN1cHBsZW1lbnRhYmxlLmgiCkBAIC0xNTAsNCAr
MTUwLDQgQEAgc3RkOjpvcHRpb25hbDxSZXF1ZXN0U3RvcmFnZUFjY2Vzc1Jlc3VsdD4gUmVxdWVz
dFN0b3JhZ2VBY2Nlc3NSZXN1bHQ6OmRlY29kZShEZWMKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCi0jZW5kaWYgLy8gRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNlbmRpZiAv
LyBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2hpc3RvcnkvQ2FjaGVkUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9oaXN0
b3J5L0NhY2hlZFBhZ2UuY3BwCmluZGV4IGIzMGZlNWI1MDdmMDFjMDhkN2ExODY5N2ZkY2YwYmY1
MWE0MzIyZjEuLmY3YmM1Mjk3MzUyZDg3NmEzNmIyMzEyNzM2ZDUyNGYzODJhNzU1NzEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQ2FjaGVkUGFnZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRQYWdlLmNwcApAQCAtNTksNyArNTksNyBAQCBDYWNoZWRQ
YWdlOjpDYWNoZWRQYWdlKFBhZ2UmIHBhZ2UpCiAgICAgOiBtX3BhZ2UocGFnZSkKICAgICAsIG1f
ZXhwaXJhdGlvblRpbWUoTW9ub3RvbmljVGltZTo6bm93KCkgKyBwYWdlLnNldHRpbmdzKCkuYmFj
a0ZvcndhcmRDYWNoZUV4cGlyYXRpb25JbnRlcnZhbCgpKQogICAgICwgbV9jYWNoZWRNYWluRnJh
bWUobWFrZVVuaXF1ZTxDYWNoZWRGcmFtZT4ocGFnZS5tYWluRnJhbWUoKSkpCi0jaWYgRU5BQkxF
KFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJ
TkdfUFJFVkVOVElPTikKICAgICAsIG1fbG9hZGVkU3VicmVzb3VyY2VEb21haW5zKHBhZ2UubWFp
bkZyYW1lKCkubG9hZGVyKCkuY2xpZW50KCkubG9hZGVkU3VicmVzb3VyY2VEb21haW5zKCkpCiAj
ZW5kaWYKIHsKQEAgLTE3MSw3ICsxNzEsNyBAQCB2b2lkIENhY2hlZFBhZ2U6OnJlc3RvcmUoUGFn
ZSYgcGFnZSkKIAogICAgIGZpcmVQYWdlU2hvd0FuZFBvcFN0YXRlRXZlbnRzKHBhZ2UpOwogCi0j
aWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdF
TlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBmb3IgKGF1dG8mIGRvbWFpbiA6IG1fbG9hZGVk
U3VicmVzb3VyY2VEb21haW5zKQogICAgICAgICBwYWdlLm1haW5GcmFtZSgpLmxvYWRlcigpLmNs
aWVudCgpLmRpZExvYWRGcm9tUmVnaXN0cmFibGVEb21haW4oV1RGTW92ZShkb21haW4pKTsKICNl
bmRpZgpAQCAtMTg5LDcgKzE4OSw3IEBAIHZvaWQgQ2FjaGVkUGFnZTo6Y2xlYXIoKQogI2VuZGlm
CiAgICAgbV9uZWVkc0RldmljZU9yUGFnZVNjYWxlQ2hhbmdlZCA9IGZhbHNlOwogICAgIG1fbmVl
ZHNVcGRhdGVDb250ZW50c1NpemUgPSBmYWxzZTsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9T
VEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQog
ICAgIG1fbG9hZGVkU3VicmVzb3VyY2VEb21haW5zLmNsZWFyKCk7CiAjZW5kaWYKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQ2FjaGVkUGFnZS5oIGIvU291cmNlL1dlYkNv
cmUvaGlzdG9yeS9DYWNoZWRQYWdlLmgKaW5kZXggMGY3M2NmNzhhYzNiNzNmZGM2NTVmMTQzNjQx
MWMxN2FjNTUyMTdkYi4uMzFiMmVmOWExYWVlMDBhMWU5N2Y3MTdmYTU0YzJhMTNlNzI3NGQ1MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRQYWdlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRQYWdlLmgKQEAgLTY4LDcgKzY4LDcgQEAgcHJpdmF0
ZToKICNlbmRpZgogICAgIGJvb2wgbV9uZWVkc0RldmljZU9yUGFnZVNjYWxlQ2hhbmdlZCB7IGZh
bHNlIH07CiAgICAgYm9vbCBtX25lZWRzVXBkYXRlQ29udGVudHNTaXplIHsgZmFsc2UgfTsKLSNp
ZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VO
VF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIFZlY3RvcjxSZWdpc3RyYWJsZURvbWFpbj4gbV9s
b2FkZWRTdWJyZXNvdXJjZURvbWFpbnM7CiAjZW5kaWYKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0RvY3VtZW50TG9hZGVyLmNwcAppbmRleCBkNmI5Yjg5MmRmZGU1MjJhMzA1MWQ5YTYzZDA5MDU0
YmM3MWViZjU4Li4wZDJkMTQxMjIyZGU3NmZkYWJhZDZlMDRkZjcyNDY2NzRmNzBhNjRkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKQEAgLTEyMiw3ICsxMjIsNyBA
QAogI2luY2x1ZGUgIlF1aWNrTG9vay5oIgogI2VuZGlmCiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0Vf
TE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5U
SU9OKQogI2luY2x1ZGUgIk5ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oIgogI2VuZGlmCiAKQEAgLTk1
Miw3ICs5NTIsNyBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjpzdG9wTG9hZGluZ0FmdGVyWEZyYW1l
T3B0aW9uc09yQ29udGVudFNlY3VyaXR5UG9saWN5RGVuaWVkKAogICAgICAgICBjYW5jZWxNYWlu
UmVzb3VyY2VMb2FkKGZyYW1lTG9hZGVyLT5jYW5jZWxsZWRFcnJvcihtX3JlcXVlc3QpKTsKIH0K
IAotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVM
TElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiBzdGF0aWMgVVJMIG1pY3Jvc29mdFRlYW1zUmVk
aXJlY3RVUkwoKQogewogICAgIHJldHVybiBVUkwoVVJMKCksICJodHRwczovL3d3dy5taWNyb3Nv
ZnQuY29tL2VuLXVzL21pY3Jvc29mdC0zNjUvbWljcm9zb2Z0LXRlYW1zLyIpOwpAQCAtOTY5LDcg
Kzk2OSw3IEBAIHZvaWQgRG9jdW1lbnRMb2FkZXI6OnJlc3BvbnNlUmVjZWl2ZWQoQ2FjaGVkUmVz
b3VyY2UmIHJlc291cmNlLCBjb25zdCBSZXNvdXJjZVJlCiAgICAgfSBlbHNlCiAgICAgICAgIG1f
Y29udGVudFNlY3VyaXR5UG9saWN5ID0gbnVsbHB0cjsKIAotI2lmIEVOQUJMRShSRVNPVVJDRV9M
T0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJ
T04pCiAgICAgLy8gRklYTUUoMjE4Nzc5KTogUmVtb3ZlIHRoaXMgcXVpcmsgb25jZSBtaWNyb3Nv
ZnQuY29tIGNvbXBsZXRlcyB0aGVpciBsb2dpbiBmbG93IHJlZGVzaWduLgogICAgIGlmIChtX2Zy
YW1lICYmIG1fZnJhbWUtPmRvY3VtZW50KCkpIHsKICAgICAgICAgYXV0byYgZG9jdW1lbnQgPSAq
bV9mcmFtZS0+ZG9jdW1lbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9F
bXB0eUNsaWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAK
aW5kZXggNzljMjExYzA4MDI0ZGFhNTY3YzMxNzI0ZTIxNDY3YjBmNTg3NGE5NC4uYzE4MjdmZWNk
ZjllNThlNzQxNTBjZDg4MmE3NGQwYmNmZDQ1OGE4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Vt
cHR5Q2xpZW50cy5jcHAKQEAgLTExMDEsNyArMTEwMSw3IEBAIFJlZlB0cjxMZWdhY3lQcmV2aWV3
TG9hZGVyQ2xpZW50PiBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVQcmV2aWV3TG9hZGVy
Q2xpCiAKICNlbmRpZgogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNp
ZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKIAogYm9vbCBFbXB0eUZy
YW1lTG9hZGVyQ2xpZW50OjpoYXNGcmFtZVNwZWNpZmljU3RvcmFnZUFjY2VzcygpCiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCBkYzUx
ZDVlMzU5MmY5NmMwZTMwZDNkNmJhZWNhMjQ0YzA2ZjE5MjU0Li4wMTdlMzdlMTU0Y2UyZmZhNjRj
MTgyZjFlNWJlYmUzN2MwNGFjZTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0
eUZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTE5OSw3ICsxOTksNyBAQCBwcml2YXRlOgogICAgIFJl
ZlB0cjxMZWdhY3lQcmV2aWV3TG9hZGVyQ2xpZW50PiBjcmVhdGVQcmV2aWV3TG9hZGVyQ2xpZW50
KGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpIGZpbmFsOwogI2VuZGlmCiAKLSNpZiBFTkFC
TEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFD
S0lOR19QUkVWRU5USU9OKQogICAgIGJvb2wgaGFzRnJhbWVTcGVjaWZpY1N0b3JhZ2VBY2Nlc3Mo
KSBmaW5hbDsKICNlbmRpZgogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xp
ZW50LmgKaW5kZXggNzdiY2MzZGM1Mzg5MDk1NmJhMDFlNzMxNWQ3NGZkNjhjMjMwYTI0Yi4uMDRh
MTJmN2E5MzAxNWNjZjRlZTA3M2FlZTA0MDgyY2E4MTI2MDdkMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTM2OCw3ICszNjgsNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIGZpbmlzaGVkTG9hZGluZ0FwcGxpY2F0aW9uTWFuaWZlc3QodWludDY0
X3QsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8QXBwbGljYXRpb25NYW5pZmVzdD4mKSB7IH0KICNlbmRp
ZgogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5U
RUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICB2aXJ0dWFsIGJvb2wgaGFzRnJhbWVT
cGVjaWZpY1N0b3JhZ2VBY2Nlc3MoKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9p
ZCBkaWRMb2FkRnJvbVJlZ2lzdHJhYmxlRG9tYWluKFJlZ2lzdHJhYmxlRG9tYWluJiYpIHsgfQog
ICAgIHZpcnR1YWwgVmVjdG9yPFJlZ2lzdHJhYmxlRG9tYWluPiBsb2FkZWRTdWJyZXNvdXJjZURv
bWFpbnMoKSBjb25zdCB7IHJldHVybiB7IH07IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3Vy
Y2VMb2FkZXIuY3BwCmluZGV4IDc0YmYyMThkMzQ4OGE4Njg2ZjNhOGE1NGM1NGUxMjEzNDY3MWQz
N2IuLjMwYzY1NDg2NWVlZmY4OTAyMmI4MDU5ZWE2ZjYwN2QzYjkwNjA1ZTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcApAQCAtNDMwLDcgKzQzMCw3IEBAIHZvaWQg
UmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdEludGVybmFsKFJlc291cmNlUmVxdWVzdCYm
IHJlcXVlc3QsIGNvbnN0IFJlCiAgICAgaWYgKGlzUmVkaXJlY3QpIHsKICAgICAgICAgUkVTT1VS
Q0VMT0FERVJfUkVMRUFTRV9MT0coIndpbGxTZW5kUmVxdWVzdEludGVybmFsOiBQcm9jZXNzaW5n
IGNyb3NzLW9yaWdpbiByZWRpcmVjdCIpOwogICAgICAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+
bG9hZGVyU3RyYXRlZ3koKS0+Y3Jvc3NPcmlnaW5SZWRpcmVjdFJlY2VpdmVkKHRoaXMsIHJlcXVl
c3QudXJsKCkpOwotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5B
QkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgICAgIGZyYW1lTG9hZGVy
KCktPmNsaWVudCgpLmRpZExvYWRGcm9tUmVnaXN0cmFibGVEb21haW4oUmVnaXN0cmFibGVEb21h
aW4ocmVxdWVzdC51cmwoKSkpOwogI2VuZGlmCiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggYzJiZDA3ZTE4
MjI4ODExNDFkMTVhMjNjNDNhYTA2ZGZkMTZiMGMxYS4uOTFkZGNkZGY1NTU4MGNjOTBiNTUwOTUx
NGVlMDc3YzFlODNmNzAyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0xMDg1LDcgKzEwODUsNyBAQCBSZXNvdXJj
ZUVycm9yT3I8Q2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+PiBDYWNoZWRSZXNv
dXJjZUxvYWRlcjo6cmVxdQogCiAgICAgQVNTRVJUKHJlc291cmNlLT51cmwoKSA9PSB1cmwuc3Ry
aW5nKCkpOwogICAgIG1fZG9jdW1lbnRSZXNvdXJjZXMuc2V0KHJlc291cmNlLT51cmwoKS5zdHJp
bmcoKSwgcmVzb3VyY2UpOwotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisj
aWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgZnJhbWUubG9h
ZGVyKCkuY2xpZW50KCkuZGlkTG9hZEZyb21SZWdpc3RyYWJsZURvbWFpbihSZWdpc3RyYWJsZURv
bWFpbihyZXNvdXJjZS0+cmVzb3VyY2VSZXF1ZXN0KCkudXJsKCkpKTsKICNlbmRpZgogICAgIHJl
dHVybiByZXNvdXJjZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IGQyYTI0Zjk1
MTU2MmE3N2VkNWE5NmJlMTRkMmJiNzVkYjIyMjFlMDUuLjA2YzRlMWVhOTI2NDZlM2NlNmFjOWNm
YTc2NzU3NzIxNzg5YjNhNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21l
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtNTUx
LDcgKzU1MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0UHJvY2Vzc0NQVVRp
bWUoU2Vjb25kcywgQWN0aXZpdHlTdGF0ZUZvckNQVVNhbXBsaW5nKSB7IH0KICAgICB2aXJ0dWFs
IFJlZlB0cjxJY29uPiBjcmVhdGVJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIC8q
IGZpbGVuYW1lcyAqLykgPSAwOwogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElD
UykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICB2aXJ0
dWFsIHZvaWQgaGFzU3RvcmFnZUFjY2VzcyhSZWdpc3RyYWJsZURvbWFpbiYmIC8qc3ViRnJhbWVE
b21haW4qLywgUmVnaXN0cmFibGVEb21haW4mJiAvKnRvcEZyYW1lRG9tYWluKi8sIEZyYW1lJiwg
V1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7
IGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsgfQogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0U3Rv
cmFnZUFjY2VzcyhSZWdpc3RyYWJsZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBSZWdpc3RyYWJs
ZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCBGcmFtZSYsIFN0b3JhZ2VBY2Nlc3NTY29wZSBzY29w
ZSwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlcXVlc3RTdG9yYWdlQWNjZXNzUmVzdWx0
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcih7IFN0b3JhZ2VBY2Nl
c3NXYXNHcmFudGVkOjpObywgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duOjpObywgc2NvcGUs
IFdURk1vdmUodG9wRnJhbWVEb21haW4pLCBXVEZNb3ZlKHN1YkZyYW1lRG9tYWluKSB9KTsgfQog
ICAgIHZpcnR1YWwgYm9vbCBoYXNQYWdlTGV2ZWxTdG9yYWdlQWNjZXNzKGNvbnN0IFJlZ2lzdHJh
YmxlRG9tYWluJiAvKnRvcExldmVsRG9tYWluKi8sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiAv
KnJlc291cmNlRG9tYWluKi8pIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0Nyb3NzU2l0ZU5hdmlnYXRpb25EYXRhVHJhbnNmZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ3Jvc3NTaXRlTmF2aWdhdGlvbkRhdGFUcmFuc2Zlci5oCmluZGV4
IGMyOTlkN2VkMWI0MjI4M2JkYzM5YmM0OTY1NzNiMmY4MTRmZDk1ZmUuLmNlOTFlOWQwNWFmMWZj
ZDdiODM4NTQ0Y2ZkNjczYjI1ODA3OTdmYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ3Jvc3NTaXRlTmF2aWdhdGlvbkRhdGFUcmFuc2Zlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ3Jvc3NTaXRlTmF2aWdhdGlvbkRhdGFUcmFuc2Zlci5oCkBAIC0yNSw3ICsyNSw3IEBA
CiAKICNwcmFnbWEgb25jZQogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykK
KyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICNpbmNsdWRlIDx3
dGYvT3B0aW9uU2V0Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTUwLDQgKzUwLDQgQEAg
dGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpDcm9zc1NpdGVOYXZpZ2F0aW9u
RGF0YVRyYW5zZmVyOjpGbGFnPiB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXVEYKLSNlbmRpZiAv
LyBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2VuZGlmIC8vIEVOQUJMRShJTlRF
TExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmlu
ZGV4IDNmNTg5MGFhMjc0OTllYTc5NjJlODQyNjRkZjM1MTI1ZDhkZTFkMjAuLmUyOTAxNTU1YzNh
MDM1OGUyM2MxMzE5NDRmZDA1OWQ2MmIyYzUyODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRE9NV2luZG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5j
cHAKQEAgLTI1NTAsNyArMjU1MCw3IEBAIEV4Y2VwdGlvbk9yPFJlZlB0cjxGcmFtZT4+IERPTVdp
bmRvdzo6Y3JlYXRlV2luZG93KGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBjb25zCiAKIEV4Y2Vw
dGlvbk9yPFJlZlB0cjxXaW5kb3dQcm94eT4+IERPTVdpbmRvdzo6b3BlbihET01XaW5kb3cmIGFj
dGl2ZVdpbmRvdywgRE9NV2luZG93JiBmaXJzdFdpbmRvdywgY29uc3QgU3RyaW5nJiB1cmxTdHJp
bmdUb09wZW4sIGNvbnN0IEF0b21TdHJpbmcmIGZyYW1lTmFtZSwgY29uc3QgU3RyaW5nJiB3aW5k
b3dGZWF0dXJlc1N0cmluZykKIHsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNT
KQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIGlmIChS
ZWZQdHIgZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpKSB7CiAgICAgICAgIGlmIChkb2N1bWVu
dC0+c2V0dGluZ3MoKS5uZWVkc1NpdGVTcGVjaWZpY1F1aXJrcygpICYmIHVybFN0cmluZ1RvT3Bl
biA9PSBRdWlya3M6OkJCQ1JhZGlvUGxheWVyVVJMU3RyaW5nKCkpIHsKICAgICAgICAgICAgIGF1
dG8gcmFkaW9QbGF5ZXJEb21haW4gPSBSZWdpc3RyYWJsZURvbWFpbihVUkwoVVJMKCksIFF1aXJr
czo6c3RhdGljUmFkaW9QbGF5ZXJVUkxTdHJpbmcoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9RdWlya3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9RdWlya3MuY3BwCmlu
ZGV4IDNlNzFjMDFhYzJkYjEwZDgyYTg5ZGZkNDg2MWJhODc3MTVhMzZkMWYuLjc4MWRhYzUxZTU0
YjZjZjMyMzU1ZjlmZTRkNGY1NjZjYThmMTI2MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUXVpcmtzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1F1aXJrcy5jcHAKQEAg
LTEwMTIsNyArMTAxMiw3IEBAIGJvb2wgUXVpcmtzOjpzaG91bGRBdm9pZFBhc3RpbmdJbWFnZXNB
c1dlYkNvbnRlbnQoKSBjb25zdAogI2VuZGlmCiB9CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9B
RF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9O
KQogc3RhdGljIGJvb2wgaXNLaW5qYUxvZ2luQXZhdGFyRWxlbWVudChjb25zdCBFbGVtZW50JiBl
bGVtZW50KQogewogICAgIC8vIFRoZSBjbGljayBldmVudCBoYW5kbGVyIGhhcyBiZWVuIGZvdW5k
IHRvIHRyaWdnZXIgb24gYSBkaXYgb3IKQEAgLTExNTEsNyArMTE1MSw3IEBAIFF1aXJrczo6U3Rv
cmFnZUFjY2Vzc1Jlc3VsdCBRdWlya3M6OnRyaWdnZXJPcHRpb25hbFN0b3JhZ2VBY2Nlc3NRdWly
ayhFbGVtZW50JiBlCiAgICAgaWYgKCFEZXByZWNhdGVkR2xvYmFsU2V0dGluZ3M6OnJlc291cmNl
TG9hZFN0YXRpc3RpY3NFbmFibGVkKCkgfHwgIWlzUGFyZW50UHJvY2Vzc0FGdWxsV2ViQnJvd3Nl
cikKICAgICAgICAgcmV0dXJuIFF1aXJrczo6U3RvcmFnZUFjY2Vzc1Jlc3VsdDo6U2hvdWxkTm90
Q2FuY2VsRXZlbnQ7CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lm
IEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIGlmICghbmVlZHNR
dWlya3MoKSkKICAgICAgICAgcmV0dXJuIFF1aXJrczo6U3RvcmFnZUFjY2Vzc1Jlc3VsdDo6U2hv
dWxkTm90Q2FuY2VsRXZlbnQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUXVp
cmtzLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1F1aXJrcy5oCmluZGV4IDk5ODdiNmJiZjBmMWY2
MWRiNmY4OTliOWFhNzQ4YTJlYWE2MzUyMjAuLmQwOWI2MTVhMzAzYzkyMzEyNTI5MjU0NGRlN2E0
NzEwODIzZjg4NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUXVpcmtzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9RdWlya3MuaApAQCAtMzksNyArMzksNyBAQCBjbGFzcyBI
VE1MVmlkZW9FbGVtZW50OwogY2xhc3MgTGF5b3V0VW5pdDsKIGNsYXNzIFBsYXRmb3JtTW91c2VF
dmVudDsKIAotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxF
KElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiBjbGFzcyBSZWdpc3RyYWJsZURvbWFp
bjsKIGVudW0gY2xhc3MgU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQgOiBib29sOwogI2VuZGlmCkBA
IC0xMzksNyArMTM5LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgYmxvY2tz
UmV0dXJuVG9GdWxsc2NyZWVuRnJvbVBpY3R1cmVJblBpY3R1cmVRdWlyaygpIGNvbnN0OwogICAg
IGJvb2wgc2hvdWxkRGlzYWJsZUVuZEZ1bGxzY3JlZW5FdmVudFdoZW5FbnRlcmluZ1BpY3R1cmVJ
blBpY3R1cmVGcm9tRnVsbHNjcmVlblF1aXJrKCkgY29uc3Q7CiAKLSNpZiBFTkFCTEUoUkVTT1VS
Q0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVW
RU5USU9OKQogICAgIHN0YXRpYyBib29sIGlzTWljcm9zb2Z0VGVhbXNSZWRpcmVjdFVSTChjb25z
dCBVUkwmKTsKICAgICBzdGF0aWMgYm9vbCBoYXNTdG9yYWdlQWNjZXNzRm9yQWxsTG9naW5Eb21h
aW5zKGNvbnN0IEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+JiwgY29uc3QgUmVnaXN0cmFibGVE
b21haW4mKTsKICAgICBzdGF0aWMgY29uc3QgU3RyaW5nJiBCQkNSYWRpb1BsYXllclVSTFN0cmlu
ZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3Jr
U3RvcmFnZVNlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3
b3JrU3RvcmFnZVNlc3Npb24uY3BwCmluZGV4IDAzMjQwODhiMDQ1ZmY4MTYzZmYzYzNmNDYyZGZm
NzUzNjRlNzY1MGEuLmIyMTc3OWY3MDk0MDhkMzI4NTZmMDFkZGQ1NDc5ODhhYTY0MWJjM2MgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtT
dG9yYWdlU2Vzc2lvbi5jcHAKQEAgLTMyLDcgKzMyLDcgQEAKICNpbmNsdWRlIDx3dGYvTmV2ZXJE
ZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvUHJvY2Vzc1ByaXZpbGVnZS5oPgogCi0jaWYgRU5B
QkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJB
Q0tJTkdfUFJFVkVOVElPTikKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKICNpZiBFTkFC
TEUoUFVCTElDX1NVRkZJWF9MSVNUKQogI2luY2x1ZGUgIlB1YmxpY1N1ZmZpeC5oIgpAQCAtNjUs
NyArNjUsNyBAQCBWZWN0b3I8Q29va2llPiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmRvbUNvb2tp
ZXNGb3JIb3N0KGNvbnN0IFN0cmluZyYpCiB9CiAjZW5kaWYgLy8gIVBMQVRGT1JNKENPQ09BKQog
Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxM
SUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKIAogI2lmICFVU0UoU09VUCkKIHZvaWQgTmV0d29y
a1N0b3JhZ2VTZXNzaW9uOjpzZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChib29sIGVu
YWJsZWQpCkBAIC00MjksNiArNDI5LDYgQEAgc3RkOjpvcHRpb25hbDxSZWdpc3RyYWJsZURvbWFp
bj4gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpmaW5kQWRkaXRpb25hbExvZ2luRG9tYWkKICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OwogfQogCi0jZW5kaWYgLy8gRU5BQkxFKFJFU09VUkNFX0xPQURf
U1RBVElTVElDUykKKyNlbmRpZiAvLyBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVO
VElPTikKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9O
ZXR3b3JrU3RvcmFnZVNlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
TmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgKaW5kZXggYjc2ZDMxYWI1Y2ExZTJhM2NkNTAyY2JjNWQ4
ZDlkZWM4NmIyNzc0Zi4uM2NiZTNmOTQ3M2Q0ZWYzNWIwNTc3ODQ3YmNiOWYwYzcwMzU1ZmMyNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFn
ZVNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtT
dG9yYWdlU2Vzc2lvbi5oCkBAIC0xODIsNyArMTgyLDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVf
RVhQT1JUIGJvb2wgc3VwcG9ydHNDb29raWVDaGFuZ2VMaXN0ZW5lckFQSSgpIGNvbnN0OwogI2Vu
ZGlmCiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJ
TlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoYm9vbCk7CiAgICAgV0VCQ09SRV9FWFBP
UlQgYm9vbCByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCgpIGNvbnN0OwogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTG9nZ2luZ0VuYWJs
ZWQoYm9vbCk7CkBAIC0yNzAsNyArMjcwLDcgQEAgcHJpdmF0ZToKIAogICAgIENyZWRlbnRpYWxT
dG9yYWdlIG1fY3JlZGVudGlhbFN0b3JhZ2U7CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9T
VEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQog
ICAgIGJvb2wgbV9pc1Jlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkID0gZmFsc2U7CiAgICAg
Ym9vbCBtX2lzUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTG9nZ2luZ0VuYWJsZWQgPSBmYWxz
ZTsKICAgICBzdGQ6Om9wdGlvbmFsPFNlY29uZHM+IGNsaWVudFNpZGVDb29raWVDYXAoY29uc3Qg
VG9wRnJhbWVEb21haW4mLCBzdGQ6Om9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPikgY29uc3Q7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL05ldHdvcmtT
dG9yYWdlU2Vzc2lvbkNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
b2NvYS9OZXR3b3JrU3RvcmFnZVNlc3Npb25Db2NvYS5tbQppbmRleCA5YWIzZDRiMjg2ZmRkZjQy
ODRkZGEzNDRjYjNjYTMwMGIzYWU3NGRiLi41MGM1MDA2ZjcyMjYzOGY1ZTUzZjdhYjhkNjBkZjUy
Y2E3NTI0MmJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nv
Y29hL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvY29jb2EvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ29jb2EubW0KQEAgLTMz
Miw3ICszMzIsNyBAQCBOU0hUVFBDb29raWUgKk5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y2FwRXhw
aXJ5T2ZQZXJzaXN0ZW50Q29va2llKE5TSFRUUENvb2tpZSAqYwogCiBSZXRhaW5QdHI8TlNBcnJh
eT4gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVzRm9yVVJMKGNvbnN0IFVSTCYgZmlyc3RQ
YXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBz
dGQ6Om9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgc3RkOjpvcHRpb25hbDxQYWdl
SWRlbnRpZmllcj4gcGFnZUlELCBTaG91bGRBc2tJVFAgc2hvdWxkQXNrSVRQLCBTaG91bGRSZWxh
eFRoaXJkUGFydHlDb29raWVCbG9ja2luZyBzaG91bGRSZWxheFRoaXJkUGFydHlDb29raWVCbG9j
a2luZykgY29uc3QKIHsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lm
IEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIGlmIChzaG91bGRB
c2tJVFAgPT0gU2hvdWxkQXNrSVRQOjpZZXMgJiYgc2hvdWxkQmxvY2tDb29raWVzKGZpcnN0UGFy
dHksIHVybCwgZnJhbWVJRCwgcGFnZUlELCBzaG91bGRSZWxheFRoaXJkUGFydHlDb29raWVCbG9j
a2luZykpCiAgICAgICAgIHJldHVybiBuaWw7CiAjZWxzZQpAQCAtNDQ0LDcgKzQ0NCw3IEBAIHZv
aWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzZXRDb29raWVzRnJvbURPTShjb25zdCBVUkwmIGZp
cnN0UGFydHksIGNvbnN0IFNhbWVTCiAKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMK
IAotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVM
TElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgaWYgKHNob3VsZEFza0lUUCA9PSBTaG91
bGRBc2tJVFA6OlllcyAmJiBzaG91bGRCbG9ja0Nvb2tpZXMoZmlyc3RQYXJ0eSwgdXJsLCBmcmFt
ZUlELCBwYWdlSUQsIHNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nKSkKICAgICAg
ICAgcmV0dXJuOwogI2Vsc2UKQEAgLTQ1Niw3ICs0NTYsNyBAQCB2b2lkIE5ldHdvcmtTdG9yYWdl
U2Vzc2lvbjo6c2V0Q29va2llc0Zyb21ET00oY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBT
YW1lUwogICAgIE5TVVJMICpjb29raWVVUkwgPSB1cmw7CiAKICAgICBzdGQ6Om9wdGlvbmFsPFNl
Y29uZHM+IGNvb2tpZUNhcDsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQor
I2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIGNvb2tpZUNh
cCA9IGNsaWVudFNpZGVDb29raWVDYXAoUmVnaXN0cmFibGVEb21haW4geyBmaXJzdFBhcnR5IH0s
IHBhZ2VJRCk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jdXJsL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkN1cmwuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkN1cmwuY3BwCmlu
ZGV4IDc2MThkY2E0NGQwMDQxZDNmMzc2NDU4N2UxNWY0MGM1Y2UzYzhlYzcuLjUyNDliZmI0YTVi
YTUyOTgxZTFmNGNiZTQzMDQ4ZTI3NTA3YjAzM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY3VybC9OZXR3b3JrU3RvcmFnZVNlc3Npb25DdXJsLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvTmV0d29ya1N0b3JhZ2VTZXNz
aW9uQ3VybC5jcHAKQEAgLTk3LDcgKzk3LDcgQEAgQ29va2llSmFyREImIE5ldHdvcmtTdG9yYWdl
U2Vzc2lvbjo6Y29va2llRGF0YWJhc2UoKSBjb25zdAogCiB2b2lkIE5ldHdvcmtTdG9yYWdlU2Vz
c2lvbjo6c2V0Q29va2llc0Zyb21ET00oY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1l
U2l0ZUluZm8mLCBjb25zdCBVUkwmIHVybCwgc3RkOjpvcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+
LCBzdGQ6Om9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIFNob3VsZEFza0lUUCwgY29u
c3QgU3RyaW5nJiB2YWx1ZSwgU2hvdWxkUmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmcpIGNv
bnN0CiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUo
SU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBzdGQ6Om9wdGlvbmFsPFNlY29u
ZHM+IGNhcHBlZExpZmV0aW1lID0gY2xpZW50U2lkZUNvb2tpZUNhcChSZWdpc3RyYWJsZURvbWFp
biB7IGZpcnN0UGFydHkgfSwgcGFnZUlEKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHBhZ2VJ
RCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0
d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAKaW5kZXggMzM2MGE3ZWIxOTQx
MzE5MzcxYmYzMTY5MDY3MmJkZDVmMWM0YThkNC4uNWIzMjUzNGUyYmNhZjE3MDEzMzFlOTU0MTAx
M2I4YTVjMzhjNGQzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcApAQCAt
MjkyLDcgKzI5Miw3IEBAIEhUVFBDb29raWVBY2NlcHRQb2xpY3kgTmV0d29ya1N0b3JhZ2VTZXNz
aW9uOjpjb29raWVBY2NlcHRQb2xpY3koKSBjb25zdAogICAgIFJFTEVBU0VfQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiB9CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lm
IEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogdm9pZCBOZXR3b3JrU3Rv
cmFnZVNlc3Npb246OnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGJvb2wgZW5hYmxl
ZCkKIHsKICAgICBpZiAoZW5hYmxlZCkgewpAQCAtMzIzLDcgKzMyMyw3IEBAIHN0YXRpYyBpbmxp
bmUgYm9vbCBodHRwT25seUNvb2tpZUV4aXN0cyhjb25zdCBHU0xpc3QqIGNvb2tpZXMsIGNvbnN0
IGdjaGFyKiBuYW1lCiAKIHZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzZXRDb29raWVzRnJv
bURPTShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVS
TCYgdXJsLCBzdGQ6Om9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgc3RkOjpvcHRp
b25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBTaG91bGRBc2tJVFAgc2hvdWxkQXNrSVRQLCBj
b25zdCBTdHJpbmcmIHZhbHVlLCBTaG91bGRSZWxheFRoaXJkUGFydHlDb29raWVCbG9ja2luZyBy
ZWxheFRoaXJkUGFydHlDb29raWVCbG9ja2luZykgY29uc3QKIHsKLSNpZiBFTkFCTEUoUkVTT1VS
Q0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVW
RU5USU9OKQogICAgIGlmIChzaG91bGRBc2tJVFAgPT0gU2hvdWxkQXNrSVRQOjpZZXMgJiYgc2hv
dWxkQmxvY2tDb29raWVzKGZpcnN0UGFydHksIHVybCwgZnJhbWVJRCwgcGFnZUlELCByZWxheFRo
aXJkUGFydHlDb29raWVCbG9ja2luZykpCiAgICAgICAgIHJldHVybjsKICNlbHNlCkBAIC0zNDAs
NyArMzQwLDcgQEAgdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNldENvb2tpZXNGcm9tRE9N
KGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVMKICAgICBpZiAoIWZpcnN0UGFydHlV
UkkpCiAgICAgICAgIHJldHVybjsKIAotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJ
Q1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgYXV0
byBjYXBwZWRMaWZldGltZSA9IGNsaWVudFNpZGVDb29raWVDYXAoUmVnaXN0cmFibGVEb21haW4g
eyBmaXJzdFBhcnR5IH0sIHBhZ2VJRCk7CiAjZW5kaWYKIApAQCAtMzYyLDcgKzM2Miw3IEBAIHZv
aWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzZXRDb29raWVzRnJvbURPTShjb25zdCBVUkwmIGZp
cnN0UGFydHksIGNvbnN0IFNhbWVTCiAgICAgICAgIGlmIChodHRwT25seUNvb2tpZUV4aXN0cyhl
eGlzdGluZ0Nvb2tpZXMsIHNvdXBfY29va2llX2dldF9uYW1lKGNvb2tpZS5nZXQoKSksIHNvdXBf
Y29va2llX2dldF9wYXRoKGNvb2tpZS5nZXQoKSkpKQogICAgICAgICAgICAgY29udGludWU7CiAK
LSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJ
R0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgICAgICAvLyBDYXAgbGlmZXRpbWUgb2YgcGVy
c2lzdGVudCwgY2xpZW50LXNpZGUgY29va2llcyB0byBhIHdlZWsuCiAgICAgICAgIGlmIChjYXBw
ZWRMaWZldGltZSkgewogICAgICAgICAgICAgaWYgKGF1dG8qIGV4cGlyZXNEYXRlID0gc291cF9j
b29raWVfZ2V0X2V4cGlyZXMoY29va2llLmdldCgpKSkgewpAQCAtNTM1LDcgKzUzNSw3IEBAIGJv
b2wgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpnZXRSYXdDb29raWVzKGNvbnN0IFVSTCYgZmlyc3RQ
YXJ0eSwgY29uc3QgU2FtZVNpdGVJCiB7CiAgICAgcmF3Q29va2llcy5jbGVhcigpOwogCi0jaWYg
RU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRf
VFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBpZiAoc2hvdWxkQXNrSVRQID09IFNob3VsZEFza0lU
UDo6WWVzICYmIHNob3VsZEJsb2NrQ29va2llcyhmaXJzdFBhcnR5LCB1cmwsIGZyYW1lSUQsIHBh
Z2VJRCwgcmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmcpKQogICAgICAgICByZXR1cm4gdHJ1
ZTsKICNlbHNlCkBAIC01NzUsNyArNTc1LDcgQEAgYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246
OmdldFJhd0Nvb2tpZXMoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUkKIAog
c3RhdGljIHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IGNvb2tpZXNGb3JTZXNzaW9uKGNvbnN0IE5l
dHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25z
dCBVUkwmIHVybCwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIHN0ZDo6b3B0aW9u
YWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBzdGQ6Om9wdGlvbmFsPFBhZ2VJZGVudGlmaWVy
PiBwYWdlSUQsIGJvb2wgZm9ySFRUUEhlYWRlciwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVk
ZVNlY3VyZUNvb2tpZXMsIFNob3VsZEFza0lUUCBzaG91bGRBc2tJVFAsIFNob3VsZFJlbGF4VGhp
cmRQYXJ0eUNvb2tpZUJsb2NraW5nIHJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nKQogewot
I2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElH
RU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgaWYgKHNob3VsZEFza0lUUCA9PSBTaG91bGRB
c2tJVFA6OlllcyAmJiBzZXNzaW9uLnNob3VsZEJsb2NrQ29va2llcyhmaXJzdFBhcnR5LCB1cmws
IGZyYW1lSUQsIHBhZ2VJRCwgcmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmcpKQogICAgICAg
ICByZXR1cm4geyB7IH0sIGZhbHNlIH07CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFz
ZVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHAKaW5kZXggMjliYWI5YTI5Mzk5ZDE2
MjQ5YzEyOTZlNjhhYWY3NzhmMzMwYTE2MC4uZjFmMzAxZDJjNjQwMzExOThiNzUwODI2ZGUyMjE5
ZjAyYzU2MWExZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFz
c2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RhdGFiYXNlU3RvcmUuY3BwCkBAIC0yNiw3ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaCIKIAotI2lm
IEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5U
X1RSQUNLSU5HX1BSRVZFTlRJT04pCiAKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAi
TmV0d29ya1Nlc3Npb24uaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5oIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlLmgKaW5kZXggOWJlODE3NjQ1ZjhmM2YyNzY5YjhiOWZmMWUwYzQ0MDE2
M2I0MmU3MC4uMWU1NGFjMGQzOGRhM2QyYjQyZGI3YzQ0MTI2ZDYzZjlkYmM4MDZiYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmgKQEAg
LTI1LDcgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9B
RF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9O
KQogCiAjaW5jbHVkZSAiRGF0YWJhc2VVdGlsaXRpZXMuaCIKICNpbmNsdWRlICJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmUuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuY3BwIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRp
c3RpY3NNZW1vcnlTdG9yZS5jcHAKaW5kZXggZjM2MmY3YmIzZmJhYjY2MDRlYzljMzc4YTEzZWQ1
N2FkY2FjZDhkYi4uOGFkMTE1MzgzYzVlYmNkZDY1YWI4NjJmNzU1Y2U4ZGUwYTkzZmRhNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNl
TG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5jcHAK
QEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuaCIKIAotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FE
X1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04p
CiAKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Nlc3Npb24uaCIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuaAppbmRleCAz
ZDdmNzVhMDE2MDRmZTZlMTg0YmRlZTBhODNhMjk2YTI4YjgwYzQxLi41NmY2N2JmMDg4ZGM2MDAy
MjNmOGJmYTMwZmRmNzg0OGUwYmVlZDI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmgK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9h
ZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5oCkBAIC0yNSw3ICsyNSw3IEBACiAKICNwcmFnbWEgb25j
ZQogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5U
RUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKIAogI2luY2x1ZGUgIlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZS5oIgogI2luY2x1ZGUgIldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVy
L1Jlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcAppbmRleCBl
YmUyMzUzNjU0ZTA5YTIyMTU4N2IyNTdhZWU2ODc2ZWNmNTMxNmUyLi45ZTE3NDI0MTY4MmYzNTU4
ODBhZDdhYWNlNzQ2YTM0NjNhZDAyZTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlLmNwcApAQCAtMjYsNyArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oIgogCi0jaWYgRU5BQkxFKFJF
U09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdf
UFJFVkVOVElPTikKIAogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJv
Y2Vzcy5oIgpAQCAtMzc1LDcgKzM3NSw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlOjp1cGRhdGVDbGllbnRTaWRlQ29va2llc0FnZUNhcCgpCiB7CiAgICAgQVNTRVJUKCFSdW5M
b29wOjppc01haW4oKSk7CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQor
I2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIFJ1bkxvb3A6
Om1haW4oKS5kaXNwYXRjaChbc3RvcmUgPSBtYWtlUmVmKG1fc3RvcmUpLCBzZWNvbmRzID0gbV9w
YXJhbWV0ZXJzLmNsaWVudFNpZGVDb29raWVzQWdlQ2FwVGltZV0gKCkgewogICAgICAgICBpZiAo
YXV0byogbmV0d29ya1Nlc3Npb24gPSBzdG9yZS0+bmV0d29ya1Nlc3Npb24oKSkgewogICAgICAg
ICAgICAgaWYgKGF1dG8qIHN0b3JhZ2VTZXNzaW9uID0gbmV0d29ya1Nlc3Npb24tPm5ldHdvcmtT
dG9yYWdlU2Vzc2lvbigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5o
CmluZGV4IGMxZWRmNTZkMzViYmI2NzM4OGI3NzMzNTQ0ZDRlMTFmZWI2NzcyMTEuLjlhOTgzYWRj
NzcyMTg5OWNhMjdkNjJiOTY2YTE0ZWEyYzNhZjkxNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlLmgKQEAgLTI1LDcgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAK
LSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJ
R0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogCiAjaW5jbHVkZSAiUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0NsYXNzaWZpZXIuaCIKICNpbmNsdWRlICJXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmUuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmll
ci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAK
aW5kZXggYTVlOWFlZjYyZTljNDgxMWNlNGNmNjU4ZmU2NmVhZGNhNjNjYjY4NS4uZmM3NGJjYzBl
YzFhMmNjYzI5ZjVkMmQzZDI0ODhjY2JlNTdmYzAyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKQEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaCIK
IAotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVM
TElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAKICNpbmNsdWRlICJBUElEaWN0aW9uYXJ5Lmgi
CiAjaW5jbHVkZSAiTG9nZ2luZy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZS5oCmluZGV4IDA2NzljOTg2NWNkMGJhYjAxZjkyMDlkNzNmNTU5NzU5MjBlYmE2
ZmIuLjY2MWIxNTYzZWM2NGI2NmU3OGYxZjhkNTU0YzZkOWRmMzczMWFlNmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNz
aWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKQEAgLTI1LDcgKzI1LDcgQEAK
IAogI3ByYWdtYSBvbmNlCiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQor
I2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogCiAjaW5jbHVkZSAi
QXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJEZWNvZGVyLmgiCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNw
cCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY3BwCmluZGV4IGExN2E1NjM5YjRkOTAwZmE2MDA2NmI3NjgyNDhhOGU4ZmE4NjllNjUu
LjVkZDhiMzU2ODNkNTg4ZjFlN2Q3MmNiMTgxMjNjMjY2NzY1ZGU2MjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuY3BwCkBAIC03MTQsNyArNzE0LDcgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6Y29va2llc0ZvckRPTShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0
IFMKICAgICBpZiAoIW5ldHdvcmtTdG9yYWdlU2Vzc2lvbikKICAgICAgICAgcmV0dXJuIGNvbXBs
ZXRpb25IYW5kbGVyKHsgfSwgZmFsc2UpOwogICAgIGF1dG8gcmVzdWx0ID0gbmV0d29ya1N0b3Jh
Z2VTZXNzaW9uLT5jb29raWVzRm9yRE9NKGZpcnN0UGFydHksIHNhbWVTaXRlSW5mbywgdXJsLCBm
cmFtZUlELCBwYWdlSUQsIGluY2x1ZGVTZWN1cmVDb29raWVzLCBzaG91bGRBc2tJVFAsIHNob3Vs
ZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nKTsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9B
RF9TVEFUSVNUSUNTKSAmJiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKyNpZiBFTkFCTEUoSU5URUxM
SUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikgJiYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAg
aWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbigpKSB7CiAgICAgICAgIGlmIChzZXNz
aW9uLT5zaG91bGRMb2dDb29raWVJbmZvcm1hdGlvbigpKQogICAgICAgICAgICAgTmV0d29ya1Jl
c291cmNlTG9hZGVyOjpsb2dDb29raWVJbmZvcm1hdGlvbigqdGhpcywgIk5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpjb29raWVzRm9yRE9NIiwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCB2
b2lkKj4odGhpcyksICpuZXR3b3JrU3RvcmFnZVNlc3Npb24sIGZpcnN0UGFydHksIHNhbWVTaXRl
SW5mbywgdXJsLCBlbXB0eVN0cmluZygpLCBmcmFtZUlELCBwYWdlSUQsIHN0ZDo6bnVsbG9wdCk7
CkBAIC03MjksNyArNzI5LDcgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
c2V0Q29va2llc0Zyb21ET00oY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb24KICAgICBpZiAoIW5l
dHdvcmtTdG9yYWdlU2Vzc2lvbikKICAgICAgICAgcmV0dXJuOwogICAgIG5ldHdvcmtTdG9yYWdl
U2Vzc2lvbi0+c2V0Q29va2llc0Zyb21ET00oZmlyc3RQYXJ0eSwgc2FtZVNpdGVJbmZvLCB1cmws
IGZyYW1lSUQsIHBhZ2VJRCwgc2hvdWxkQXNrSVRQLCBjb29raWVTdHJpbmcsIHNob3VsZFJlbGF4
VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nKTsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFU
SVNUSUNTKSAmJiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRf
VFJBQ0tJTkdfUFJFVkVOVElPTikgJiYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgaWYgKGF1
dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbigpKSB7CiAgICAgICAgIGlmIChzZXNzaW9uLT5z
aG91bGRMb2dDb29raWVJbmZvcm1hdGlvbigpKQogICAgICAgICAgICAgTmV0d29ya1Jlc291cmNl
TG9hZGVyOjpsb2dDb29raWVJbmZvcm1hdGlvbigqdGhpcywgIk5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpzZXRDb29raWVzRnJvbURPTSIsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qgdm9p
ZCo+KHRoaXMpLCAqbmV0d29ya1N0b3JhZ2VTZXNzaW9uLCBmaXJzdFBhcnR5LCBzYW1lU2l0ZUlu
Zm8sIHVybCwgZW1wdHlTdHJpbmcoKSwgZnJhbWVJRCwgcGFnZUlELCBzdGQ6Om51bGxvcHQpOwpA
QCAtOTQyLDEzICs5NDIsMTMgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
Y2xlYXJQYWdlU3BlY2lmaWNEYXRhKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCkKICAgICBpZiAoYXV0
byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKCkpCiAgICAgICAgIHNlc3Npb24tPm5ldHdvcmtM
b2FkU2NoZWR1bGVyKCkuY2xlYXJQYWdlRGF0YShwYWdlSUQpOwogCi0jaWYgRU5BQkxFKFJFU09V
UkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJF
VkVOVElPTikKICAgICBpZiAoYXV0byogc3RvcmFnZVNlc3Npb24gPSBuZXR3b3JrUHJvY2Vzcygp
LnN0b3JhZ2VTZXNzaW9uKG1fc2Vzc2lvbklEKSkKICAgICAgICAgc3RvcmFnZVNlc3Npb24tPmNs
ZWFyUGFnZVNwZWNpZmljRGF0YUZvclJlc291cmNlTG9hZFN0YXRpc3RpY3MocGFnZUlEKTsKICNl
bmRpZgogfQogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFC
TEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKIHZvaWQgTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OnJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFtZShGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlEKQogewogICAgIGlmIChhdXRvKiBzdG9y
YWdlU2Vzc2lvbiA9IG5ldHdvcmtQcm9jZXNzKCkuc3RvcmFnZVNlc3Npb24obV9zZXNzaW9uSUQp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCmluZGV4IDk4YzRmM2RkYjY2OGRhZDZmZWI2MzlmNGUy
Nzc1ZTZlNmNmYzQ2MzguLmU5OGEyZTVkYTE1ZjZiMDhkZDI1MGJlOThiNmY4ZmFiNTMzNDFhNGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKQEAgLTI4OSw3ICsyODksNyBAQCBwcml2YXRlOgog
CiAgICAgdm9pZCBjbGVhclBhZ2VTcGVjaWZpY0RhdGEoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIp
OwogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5U
RUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICB2b2lkIHJlbW92ZVN0b3JhZ2VBY2Nl
c3NGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyKTsKIAogICAgIHZvaWQgbG9nVXNlckludGVyYWN0aW9uKGNvbnN0IFJlZ2lzdHJhYmxlRG9t
YWluJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCAx
ZDVjODEwMjA0YjZhNjlhNmQ4ZTkxZTg0ODJjNTkyNDkxNjFkMzRkLi4xNWRhNmFiZmM1Mzg2OWZk
NDM4NjI0NzY5NmZlYTUxMWI2YTlkYjkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MubWVzc2FnZXMuaW4KQEAgLTY2LDcgKzY2LDcgQEAgbWVzc2FnZXMgLT4gTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogCiAgICAgQ2xlYXJQYWdlU3BlY2lm
aWNEYXRhKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCk7CiAKLSNpZiBFTkFCTEUoUkVT
T1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19Q
UkVWRU5USU9OKQogICAgIFJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFtZShXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlEKTsKICAg
ICBMb2dVc2VySW50ZXJhY3Rpb24oV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gZG9tYWluKQog
ICAgIFJlc291cmNlTG9hZFN0YXRpc3RpY3NVcGRhdGVkKFZlY3RvcjxXZWJDb3JlOjpSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzPiBzdGF0aXN0aWNzKSAtPiAoKSBBc3luYwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwCmluZGV4IDUyNjI3Njc2NzAy
YmMxNGRkYmNkYzZmNThjYzE4M2RjNDc1ODQzMjAuLmVkMTQ1NDZjMDdhMTkzYTljYzJhN2ZiOWM4
OTdhNGVmZWYwYzgzOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0RhdGFUYXNrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtEYXRhVGFzay5jcHAKQEAgLTE2OSw3ICsxNjksNyBAQCBib29sIE5ldHdvcmtEYXRhVGFz
azo6aXNUaGlyZFBhcnR5UmVxdWVzdChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlcwogCiB2b2lkIE5ldHdvcmtEYXRhVGFzazo6cmVzdHJpY3RSZXF1ZXN0UmVmZXJyZXJUb09y
aWdpbklmTmVlZGVkKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKLSNpZiBF
TkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9U
UkFDS0lOR19QUkVWRU5USU9OKQogICAgIGlmICgobV9zZXNzaW9uLT5zZXNzaW9uSUQoKS5pc0Vw
aGVtZXJhbCgpIHx8IG1fc2Vzc2lvbi0+aXNSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCgp
KSAmJiBtX3Nlc3Npb24tPnNob3VsZERvd25ncmFkZVJlZmVycmVyKCkgJiYgaXNUaGlyZFBhcnR5
UmVxdWVzdChyZXF1ZXN0KSkKICAgICAgICAgcmVxdWVzdC5zZXRFeGlzdGluZ0hUVFBSZWZlcnJl
clRvT3JpZ2luU3RyaW5nKCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggYTM1Y2VhNjM1NWY1ZTk2MWQ4ZTI4MzdhM2Fi
Y2MyZDBlMzJmZTA0ZS4uNGRjYjMyY2RiNzU3NTY0YmZiMDIzNDU1ZjlmZmNiYWFiM2RmNjFmYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAK
QEAgLTU3Nyw3ICs1NzcsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpkZXN0cm95U2Vzc2lvbihQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgcmVtb3ZlU3RvcmFnZU1hbmFnZXJGb3JTZXNz
aW9uKHNlc3Npb25JRCk7CiB9CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNT
KQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogdm9pZCBOZXR3
b3JrUHJvY2Vzczo6ZHVtcFJlc291cmNlTG9hZFN0YXRpc3RpY3MoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCiB7CiAgICAgaWYgKGF1dG8qIG5ldHdvcmtTZXNzaW9uID0gdGhpcy0+bmV0d29ya1Nlc3Np
b24oc2Vzc2lvbklEKSkgewpAQCAtMTMzNyw3ICsxMzM3LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vz
czo6c2V0VGhpcmRQYXJ0eUNOQU1FRG9tYWluRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQKICAgICAgICAgbmV0d29ya1Nlc3Npb24tPnNldFRoaXJkUGFydHlDTkFNRURvbWFpbkZv
clRlc3RpbmcoV1RGTW92ZShkb21haW4pKTsKICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogfQot
I2VuZGlmIC8vIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjZW5kaWYgLy8gRU5B
QkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAKIHZvaWQgTmV0d29ya1Byb2Nl
c3M6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50RW5hYmxlZChib29sIGVuYWJsZWQpCiB7CkBA
IC0xNTUzLDcgKzE1NTMsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpmZXRjaFdlYnNpdGVEYXRh
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdAogICAgIH0KICNlbmRp
ZgogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5U
RUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBpZiAod2Vic2l0ZURhdGFUeXBlcy5j
b250YWlucyhXZWJzaXRlRGF0YVR5cGU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3MpKSB7CiAgICAg
ICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewogICAg
ICAgICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBzZXNzaW9uLT5yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzKCkpIHsKQEAgLTE2MDUsNyArMTYwNSw3IEBAIHZvaWQgTmV0d29y
a1Byb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0
aW9uU2V0PFdlYnNpCiAgICAgICAgIHN3U2VydmVyRm9yU2Vzc2lvbihzZXNzaW9uSUQpLmNsZWFy
QWxsKFtjbGVhclRhc2tzSGFuZGxlcl0geyB9KTsKICNlbmRpZgogCi0jaWYgRU5BQkxFKFJFU09V
UkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJF
VkVOVElPTikKICAgICBpZiAod2Vic2l0ZURhdGFUeXBlcy5jb250YWlucyhXZWJzaXRlRGF0YVR5
cGU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3MpKSB7CiAgICAgICAgIGlmIChhdXRvKiBuZXR3b3Jr
U2Vzc2lvbiA9IHRoaXMtPm5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKICAgICAgICAgICAg
IGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gbmV0d29ya1Nlc3Npb24tPnJlc291
cmNlTG9hZFN0YXRpc3RpY3MoKSkgewpAQCAtMTczNSw3ICsxNzM1LDcgQEAgdm9pZCBOZXR3b3Jr
UHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgT3B0aW8KICAgICAgICAgV2ViQ29yZTo6Q3JlZGVudGlhbFN0b3JhZ2U6OnJlbW92ZVNl
c3Npb25DcmVkZW50aWFsc1dpdGhPcmlnaW5zKG9yaWdpbkRhdGFzKTsKICAgICB9CiAKLSNpZiBF
TkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9U
UkFDS0lOR19QUkVWRU5USU9OKQogICAgIGlmICh3ZWJzaXRlRGF0YVR5cGVzLmNvbnRhaW5zKFdl
YnNpdGVEYXRhVHlwZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljcykpIHsKICAgICAgICAgaWYgKGF1
dG8qIG5ldHdvcmtTZXNzaW9uID0gdGhpcy0+bmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewog
ICAgICAgICAgICAgZm9yIChhdXRvJiBkb21haW4gOiByZWdpc3RyYWJsZURvbWFpbnMpIHsKQEAg
LTE3NjEsNyArMTc2MSw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRh
Rm9yT3JpZ2lucyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvCiAgICAgfQogfQogCi0j
aWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdF
TlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKIHN0YXRpYyBWZWN0b3I8U3RyaW5nPiBmaWx0ZXJGb3JS
ZWdpc3RyYWJsZURvbWFpbnMoY29uc3QgVmVjdG9yPFJlZ2lzdHJhYmxlRG9tYWluPiYgcmVnaXN0
cmFibGVEb21haW5zLCBjb25zdCBIYXNoU2V0PFN0cmluZz4mIGZvdW5kVmFsdWVzKQogewogICAg
IFZlY3RvcjxTdHJpbmc+IHJlc3VsdDsKQEAgLTIwODQsNyArMjA4NCw3IEBAIHZvaWQgTmV0d29y
a1Byb2Nlc3M6OnJlZ2lzdHJhYmxlRG9tYWluc1dpdGhXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsCiAgICAgICAgIH0pOwogICAgIH0KIH0KLSNlbmRpZiAvLyBFTkFCTEUoUkVT
T1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2VuZGlmIC8vIEVOQUJMRShJTlRFTExJR0VOVF9UUkFD
S0lOR19QUkVWRU5USU9OKQogCiBDYWNoZVN0b3JhZ2U6OkVuZ2luZSogTmV0d29ya1Byb2Nlc3M6
OmZpbmRDYWNoZUVuZ2luZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CkBAIC0yMjYxLDcg
KzIyNjEsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpwcmVwYXJlVG9TdXNwZW5kKGJvb2wgaXNT
dXNwZW5zaW9uSW1taW5lbnQsIENvbXBsZXRpb25IYW5kbAogICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcigpOwogICAgIH0pOwogICAgIAotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJ
Q1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgV2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpzdXNwZW5kKFtjYWxsYmFja0FnZ3JlZ2F0b3Jd
IHsgfSk7CiAjZW5kaWYKICAgICBQQ006OlN0b3JlOjpwcmVwYXJlRm9yUHJvY2Vzc1RvU3VzcGVu
ZChbY2FsbGJhY2tBZ2dyZWdhdG9yXSB7IH0pOwpAQCAtMjMwNCw3ICsyMzA0LDcgQEAgdm9pZCBO
ZXR3b3JrUHJvY2Vzczo6cmVzdW1lKCkKICAgICBmb3IgKGF1dG8mIGNvbm5lY3Rpb24gOiBtX3dl
YlByb2Nlc3NDb25uZWN0aW9ucy52YWx1ZXMoKSkKICAgICAgICAgY29ubmVjdGlvbi0+ZW5kU3Vz
cGVuc2lvbigpOwogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBF
TkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBXZWJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmU6OnJlc3VtZSgpOwogI2VuZGlmCiAgICAgUENNOjpTdG9yZTo6cHJv
Y2Vzc0RpZFJlc3VtZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5oCmluZGV4IDI4Y2JmZjVkNDEwMzhlYTdmZGZiODBkNDdiNjRjNjJjYzAxZGU0ZWMu
LjEwNjAyMmNlNjg1MTk3ODMwZjI2NWFhYjY1M2Q4NGUwMGY4NTFjZDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKQEAgLTIxMiw3ICsyMTIsNyBA
QCBwdWJsaWM6CiAKICAgICB2b2lkIGFkZFdlYnNpdGVEYXRhU3RvcmUoV2Vic2l0ZURhdGFTdG9y
ZVBhcmFtZXRlcnMmJik7CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQor
I2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIHZvaWQgY2xl
YXJQcmV2YWxlbnRSZXNvdXJjZShQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21h
aW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgY2xlYXJVc2VySW50
ZXJhY3Rpb24oUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIGRlbGV0ZUFuZFJlc3RyaWN0V2Vic2l0
ZURhdGFGb3JSZWdpc3RyYWJsZURvbWFpbnMoUEFMOjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJz
aXRlRGF0YVR5cGU+LCBSZWdpc3RyYWJsZURvbWFpbnNUb0RlbGV0ZU9yUmVzdHJpY3RXZWJzaXRl
RGF0YUZvciYmLCBib29sIHNob3VsZE5vdGlmeVBhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Y29uc3QgSGFzaFNldDxSZWdpc3RyYWJsZURvbWFpbj4mKT4mJik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRl
eCA1MTgwYzgyOTY1MGFkNTZlMGIxZWZkM2JjNDUyMGNiZjMxYTI5NzMxLi5kNTk1ODkzNmZhZTEx
ZWQ4YmIyYTM3M2E3ZDRmZjBiZDdmYjM0ZjUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTc3LDcgKzc3
LDcgQEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogCiAgICAg
UHJlY29ubmVjdFRvKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViS2l0OjpXZWJQYWdlUHJv
eHlJZGVudGlmaWVyIHdlYlBhZ2VQcm94eUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQ
YWdlSUQsIFVSTCB1cmwsIFN0cmluZyB1c2VyQWdlbnQsIGVudW06dWludDhfdCBXZWJDb3JlOjpT
dG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgZW51bTpib29s
IHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4gaXNOYXZp
Z2F0aW5nVG9BcHBCb3VuZERvbWFpbiwgZW51bTpib29sIFdlYktpdDo6TGFzdE5hdmlnYXRpb25X
YXNBcHBJbml0aWF0ZWQgbGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQpOwogCi0jaWYgRU5B
QkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJB
Q0tJTkdfUFJFVkVOVElPTikKICAgICBDbGVhclByZXZhbGVudFJlc291cmNlKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVzb3VyY2VEb21haW4p
IC0+ICgpIEFzeW5jCiAgICAgQ2xlYXJVc2VySW50ZXJhY3Rpb24oUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZXNvdXJjZURvbWFpbikgLT4gKCkg
QXN5bmMKICAgICBEdW1wUmVzb3VyY2VMb2FkU3RhdGlzdGljcyhQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQpIC0+IChTdHJpbmcgZHVtcGVkU3RhdGlzdGljcykgQXN5bmMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAppbmRl
eCAyM2Q5NDg3NWUyYzE1ODgyYWYyMThjOGRmZWFmNjEwMDAyYjkxNmFjLi5kYzRkNTAyNzk3NDlh
NTJmYTc5OTY3NjE4OGY5NThhYzdmMjM1MDM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0yNzAsNyArMjcw
LDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnJldHJpZXZlQ2FjaGVFbnRyeShjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6
cmV0cmlldmVDYWNoZUVudHJ5SW50ZXJuYWwoc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtDYWNoZTo6
RW50cnk+JiYgZW50cnksIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QpCiB7CiAg
ICAgTE9BREVSX1JFTEVBU0VfTE9HKCJyZXRyaWV2ZUNhY2hlRW50cnlJbnRlcm5hbDoiKTsKLSNp
ZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VO
VF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIGlmIChlbnRyeS0+aGFzUmVhY2hlZFByZXZhbGVu
dFJlc291cmNlQWdlQ2FwKCkpIHsKICAgICAgICAgTE9BREVSX1JFTEVBU0VfTE9HKCJyZXRyaWV2
ZUNhY2hlRW50cnlJbnRlcm5hbDogUmV2YWxpZGF0aW5nIGNhY2hlZCBlbnRyeSBiZWNhdXNlIGl0
IHJlYWNoZWQgdGhlIHByZXZhbGVudCByZXNvdXJjZSBhZ2UgY2FwIik7CiAgICAgICAgIG1fY2Fj
aGVFbnRyeUZvck1heEFnZUNhcFZhbGlkYXRpb24gPSBXVEZNb3ZlKGVudHJ5KTsKQEAgLTgwNCw3
ICs4MDQsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoTG9hZGluZyhj
b25zdCBOZXR3b3JrTG9hZE1ldHJpY3MmIG5ldHdvcmtMbwogICAgICAgICByZXR1cm47CiAgICAg
fQogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykgJiYgIVJFTEVBU0VfTE9H
X0RJU0FCTEVECisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pICYm
ICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIGlmIChzaG91bGRMb2dDb29raWVJbmZvcm1hdGlv
bihtX2Nvbm5lY3Rpb24sIHNlc3Npb25JRCgpKSkKICAgICAgICAgbG9nQ29va2llSW5mb3JtYXRp
b24oKTsKICNlbmRpZgpAQCAtODc3LDcgKzg3Nyw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9h
ZGVyOjpkaWRSZWNlaXZlQ2hhbGxlbmdlKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBj
CiAKIHN0ZDo6b3B0aW9uYWw8U2Vjb25kcz4gTmV0d29ya1Jlc291cmNlTG9hZGVyOjp2YWxpZGF0
ZUNhY2hlRW50cnlGb3JNYXhBZ2VDYXBWYWxpZGF0aW9uKGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZWRpcmVjdFJlcXVlc3QsIGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpCiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNF
X0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVO
VElPTikKICAgICBib29sIGV4aXN0aW5nQ2FjaGVFbnRyeU1hdGNoZXNOZXdSZXNwb25zZSA9IGZh
bHNlOwogICAgIGlmIChtX2NhY2hlRW50cnlGb3JNYXhBZ2VDYXBWYWxpZGF0aW9uKSB7CiAgICAg
ICAgIEFTU0VSVChyZWRpcmVjdFJlc3BvbnNlLnNvdXJjZSgpID09IFJlc291cmNlUmVzcG9uc2U6
OlNvdXJjZTo6TmV0d29yayk7CkBAIC0xMjU3LDcgKzEyNTcsNyBAQCB2b2lkIE5ldHdvcmtSZXNv
dXJjZUxvYWRlcjo6c2VuZFJlc3VsdEZvckNhY2hlRW50cnkoc3RkOjp1bmlxdWVfcHRyPE5ldHdv
cmtDYWNoZQogICAgIH0KICNlbmRpZgogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElT
VElDUykgJiYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RS
QUNLSU5HX1BSRVZFTlRJT04pICYmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIGlmIChzaG91
bGRMb2dDb29raWVJbmZvcm1hdGlvbihtX2Nvbm5lY3Rpb24sIHNlc3Npb25JRCgpKSkKICAgICAg
ICAgbG9nQ29va2llSW5mb3JtYXRpb24oKTsKICNlbmRpZgpAQCAtMTM2MSw3ICsxMzYxLDcgQEAg
Ym9vbCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmNyb3NzT3JpZ2luQWNjZXNzQ29udHJvbENoZWNr
RW5hYmxlZCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fcGFyYW1ldGVycy5jcm9zc09yaWdpbkFjY2Vz
c0NvbnRyb2xDaGVja0VuYWJsZWQ7CiB9CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFU
SVNUSUNTKSAmJiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRf
VFJBQ0tJTkdfUFJFVkVOVElPTikgJiYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiBib29sIE5ldHdv
cmtSZXNvdXJjZUxvYWRlcjo6c2hvdWxkTG9nQ29va2llSW5mb3JtYXRpb24oTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24sIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkK
IHsKICAgICBpZiAoYXV0byogc2Vzc2lvbiA9IGNvbm5lY3Rpb24ubmV0d29ya1Byb2Nlc3MoKS5u
ZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmgKaW5kZXggN2ZmNjFlYjFiZTgyNjczNTI4
MWNkM2JjODFiMDU4YzBlMDZiMTYwNC4uNTZmOTJlNmQ3YTNjNzkzMWEwOGYyOWVlZjA1OTg1Y2Qz
NWViNDFkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UmVzb3VyY2VMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtSZXNvdXJjZUxvYWRlci5oCkBAIC0xMjksNyArMTI5LDcgQEAgcHVibGljOgogICAgIGJvb2wg
aXNNYWluRnJhbWVMb2FkKCkgY29uc3QgeyByZXR1cm4gaXNNYWluUmVzb3VyY2UoKSAmJiBtX3Bh
cmFtZXRlcnMuZnJhbWVBbmNlc3Rvck9yaWdpbnMuaXNFbXB0eSgpOyB9CiAgICAgYm9vbCBpc0Ny
b3NzT3JpZ2luUHJlZmV0Y2goKSBjb25zdDsKIAotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NU
QVRJU1RJQ1MpICYmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorI2lmIEVOQUJMRShJTlRFTExJR0VO
VF9UUkFDS0lOR19QUkVWRU5USU9OKSAmJiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBzdGF0
aWMgYm9vbCBzaG91bGRMb2dDb29raWVJbmZvcm1hdGlvbihOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2VzcyYsIFBBTDo6U2Vzc2lvbklEKTsKICAgICBzdGF0aWMgdm9pZCBsb2dDb29raWVJbmZv
cm1hdGlvbihOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYsIGNvbnN0IFN0cmluZyYgbGFi
ZWwsIGNvbnN0IHZvaWQqIGxvZ2dlZE9iamVjdCwgY29uc3QgV2ViQ29yZTo6TmV0d29ya1N0b3Jh
Z2VTZXNzaW9uJiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0
ZUluZm8mLCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBzdGQ6Om9wdGlvbmFs
PFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4sIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXI+LCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBpZGVudGlmaWVyKTsKICNlbmRpZgpA
QCAtMTkzLDcgKzE5Myw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjb25zdW1lU2FuZGJveEV4dGVu
c2lvbnMoKTsKICAgICB2b2lkIGludmFsaWRhdGVTYW5kYm94RXh0ZW5zaW9ucygpOwogCi0jaWYg
RU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykgJiYgIVJFTEVBU0VfTE9HX0RJU0FCTEVE
CisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pICYmICFSRUxFQVNF
X0xPR19ESVNBQkxFRAogICAgIHZvaWQgbG9nQ29va2llSW5mb3JtYXRpb24oKSBjb25zdDsKICNl
bmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtT
ZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24u
Y3BwCmluZGV4IDAzNTc1OTgwZjU1Y2U2NmExZmUwMDY2MjNmYmUyNjJiMDBjYWFlNmQuLmYzODYw
YjIwNGYwNjMwYTlkNmVlNTk2YzNlZjljYmRjMTI1MmQyYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCkBAIC0xMDMsNyArMTAzLDcgQEAg
c3RhdGljIFVuaXF1ZVJlZjxQQ006Ok1hbmFnZXJJbnRlcmZhY2U+IG1hbmFnZXJPclByb3h5KE5l
dHdvcmtTZXNzaW9uJiBuZXR3b3JrU2UKIE5ldHdvcmtTZXNzaW9uOjpOZXR3b3JrU2Vzc2lvbihO
ZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MsIGNvbnN0IE5ldHdvcmtTZXNzaW9uQ3JlYXRp
b25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogICAgIDogbV9zZXNzaW9uSUQocGFyYW1ldGVycy5z
ZXNzaW9uSUQpCiAgICAgLCBtX25ldHdvcmtQcm9jZXNzKG5ldHdvcmtQcm9jZXNzKQotI2lmIEVO
QUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RS
QUNLSU5HX1BSRVZFTlRJT04pCiAgICAgLCBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3Rv
cnkocGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycy5kaXJlY3Rvcnkp
CiAgICAgLCBtX3Nob3VsZEluY2x1ZGVMb2NhbGhvc3RJblJlc291cmNlTG9hZFN0YXRpc3RpY3Mo
cGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycy5zaG91bGRJbmNsdWRl
TG9jYWxob3N0ID8gU2hvdWxkSW5jbHVkZUxvY2FsaG9zdDo6WWVzIDogU2hvdWxkSW5jbHVkZUxv
Y2FsaG9zdDo6Tm8pCiAgICAgLCBtX2VuYWJsZVJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01v
ZGUocGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycy5lbmFibGVEZWJ1
Z01vZGUgPyBFbmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlOjpZZXMgOiBFbmFi
bGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlOjpObykKQEAgLTE0NiwyMSArMTQ2LDIx
IEBAIE5ldHdvcmtTZXNzaW9uOjpOZXR3b3JrU2Vzc2lvbihOZXR3b3JrUHJvY2VzcyYgbmV0d29y
a1Byb2Nlc3MsIGNvbnN0IE5ldHdvcmtTZXNzCiAKICAgICBtX2lzU3RhbGVXaGlsZVJldmFsaWRh
dGVFbmFibGVkID0gcGFyYW1ldGVycy5zdGFsZVdoaWxlUmV2YWxpZGF0ZUVuYWJsZWQ7CiAKLSNp
ZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VO
VF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIHNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFi
bGVkKHBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnMuZW5hYmxlZCk7
CiAjZW5kaWYKIH0KIAogTmV0d29ya1Nlc3Npb246On5OZXR3b3JrU2Vzc2lvbigpCiB7Ci0jaWYg
RU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRf
VFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBkZXN0cm95UmVzb3VyY2VMb2FkU3RhdGlzdGljcyhb
XSB7IH0pOwogI2VuZGlmCiAgICAgZm9yIChhdXRvJiBsb2FkZXIgOiBzdGQ6OmV4Y2hhbmdlKG1f
a2VwdEFsaXZlTG9hZHMsIHsgfSkpCiAgICAgICAgIGxvYWRlci0+YWJvcnQoKTsKIH0KIAotI2lm
IEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5U
X1RSQUNLSU5HX1BSRVZFTlRJT04pCiB2b2lkIE5ldHdvcmtTZXNzaW9uOjpkZXN0cm95UmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCiB7CiAgICAgaWYgKCFtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3MpCkBAIC0xNzUsNyAr
MTc1LDcgQEAgdm9pZCBOZXR3b3JrU2Vzc2lvbjo6aW52YWxpZGF0ZUFuZENhbmNlbCgpCiB7CiAg
ICAgZm9yIChhdXRvJiB0YXNrIDogbV9kYXRhVGFza1NldCkKICAgICAgICAgdGFzay5pbnZhbGlk
YXRlQW5kQ2FuY2VsKCk7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNp
ZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBpZiAobV9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzKQogICAgICAgICBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3MtPmlu
dmFsaWRhdGVBbmRDYW5jZWwoKTsKICNlbmRpZgpAQCAtMTg5LDcgKzE4OSw3IEBAIHZvaWQgTmV0
d29ya1Nlc3Npb246OnJlY3JlYXRlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRTdG9yZShDb21wbGV0
aW9uSGFuZGxlcjx2b2lkCiAgICAgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKS5kZXN0cm95U3Rv
cmVGb3JUZXN0aW5nKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAotI2lmIEVOQUJM
RShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNL
SU5HX1BSRVZFTlRJT04pCiB2b2lkIE5ldHdvcmtTZXNzaW9uOjpzZXRSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRW5hYmxlZChib29sIGVuYWJsZSkKIHsKICAgICBBU1NFUlQoIW1faXNJbnZhbGlkYXRl
ZCk7CkBAIC0zMTQsNyArMzE0LDcgQEAgdm9pZCBOZXR3b3JrU2Vzc2lvbjo6cmVzZXRDTkFNRURv
bWFpbkRhdGEoKQogICAgIG1fZmlyc3RQYXJ0eUhvc3RDTkFNRURvbWFpbnMuY2xlYXIoKTsKICAg
ICBtX3RoaXJkUGFydHlDTkFNRURvbWFpbkZvclRlc3RpbmcgPSBzdGQ6Om51bGxvcHQ7CiB9Ci0j
ZW5kaWYgLy8gRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNlbmRpZiAvLyBFTkFC
TEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKIAogdm9pZCBOZXR3b3JrU2Vzc2lv
bjo6c3RvcmVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCYmIHVuYXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50KQogewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCmluZGV4IDgyMjE1YzY5
MzBjYzZmNDNhYTRlY2I2MzBjNDk4YTM5YjUxMWJhYjQuLmZmYmY5MzIyY2Q5MjNiMTNmZWJiYWE3
ZDBlOGY4YWU4OTg4ZWYzMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Nlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtTZXNzaW9uLmgKQEAgLTk2LDcgKzk2LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCByZWNy
ZWF0ZVByaXZhdGVDbGlja01lYXN1cmVtZW50U3RvcmUoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKTsKIAotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxF
KElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgV2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkgY29uc3QgeyByZXR1cm4gbV9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmdldCgpOyB9CiAgICAgdm9pZCBzZXRSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRW5hYmxlZChib29sKTsKICAgICBib29sIGlzUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0VuYWJsZWQoKSBjb25zdDsKQEAgLTE4NiwxNCArMTg2LDE0IEBAIHB1YmxpYzoKIHByb3RlY3Rl
ZDoKICAgICBOZXR3b3JrU2Vzc2lvbihOZXR3b3JrUHJvY2VzcyYsIGNvbnN0IE5ldHdvcmtTZXNz
aW9uQ3JlYXRpb25QYXJhbWV0ZXJzJik7CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFU
SVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAg
IHZvaWQgZm9yd2FyZFJlc291cmNlTG9hZFN0YXRpc3RpY3NTZXR0aW5ncygpOwogI2VuZGlmCiAK
ICAgICBQQUw6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKICAgICBSZWY8TmV0d29ya1Byb2Nlc3M+
IG1fbmV0d29ya1Byb2Nlc3M7CiAgICAgV2Vha0hhc2hTZXQ8TmV0d29ya0RhdGFUYXNrPiBtX2Rh
dGFUYXNrU2V0OwotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5B
QkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgU3RyaW5nIG1fcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeTsKICAgICBSZWZQdHI8V2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlPiBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3M7CiAgICAgU2hvdWxkSW5jbHVk
ZUxvY2FsaG9zdCBtX3Nob3VsZEluY2x1ZGVMb2NhbGhvc3RJblJlc291cmNlTG9hZFN0YXRpc3Rp
Y3MgeyBTaG91bGRJbmNsdWRlTG9jYWxob3N0OjpZZXMgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcAppbmRleCBkOTA2MDVmMTgx
M2U5MGJmMzVhYTAxYjcwMTEyN2Q1YTlkYTQ5ZGJkLi4xNmNjNTBmNzI3ZTNiNmM0OWYyMWJlMTg5
NDliNWIwMDBjMWFmMTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2NhY2hlL05ldHdvcmtDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jYWNoZS9OZXR3b3JrQ2FjaGUuY3BwCkBAIC01MjAsNyArNTIwLDcgQEAgc3RkOjp1bmlxdWVf
cHRyPEVudHJ5PiBDYWNoZTo6c3RvcmVSZWRpcmVjdChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmIHJlcXUKIAogICAgIGF1dG8gY2FjaGVFbnRyeSA9IG1ha2VSZWRpcmVjdEVudHJ5KHJl
cXVlc3QsIHJlc3BvbnNlLCByZWRpcmVjdFJlcXVlc3QpOwogCi0jaWYgRU5BQkxFKFJFU09VUkNF
X0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVO
VElPTikKICAgICBpZiAobWF4QWdlQ2FwKSB7CiAgICAgICAgIExPRyhOZXR3b3JrQ2FjaGUsICIo
TmV0d29ya1Byb2Nlc3MpIGNhcHBpbmcgbWF4IGFnZSBmb3IgcmVkaXJlY3QgJXMgLT4gJXMiLCBy
ZXF1ZXN0LnVybCgpLnN0cmluZygpLmxhdGluMSgpLmRhdGEoKSwgcmVkaXJlY3RSZXF1ZXN0LnVy
bCgpLnN0cmluZygpLmxhdGluMSgpLmRhdGEoKSk7CiAgICAgICAgIGNhY2hlRW50cnktPmNhcE1h
eEFnZShtYXhBZ2VDYXAudmFsdWUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUVudHJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlRW50cnkuY3BwCmluZGV4IDJjZGE0ZmY2OGIx
OTNlNGQ5Y2VkNjNkMmZjYzEyOWRhMjcwYWQ5ZDUuLmJhMzlkOWUyYzI2YTAxYTkyNmIxMWFhNzk5
ZTM2NjJmYzZhZTA1NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Y2FjaGUvTmV0d29ya0NhY2hlRW50cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlRW50cnkuY3BwCkBAIC0xNTYsNyArMTU2LDcgQEAgc3Rk
Ojp1bmlxdWVfcHRyPEVudHJ5PiBFbnRyeTo6ZGVjb2RlU3RvcmFnZVJlY29yZChjb25zdCBTdG9y
YWdlOjpSZWNvcmQmIHN0b3JhZ2UKICAgICByZXR1cm4gZW50cnk7CiB9CiAKLSNpZiBFTkFCTEUo
UkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lO
R19QUkVWRU5USU9OKQogYm9vbCBFbnRyeTo6aGFzUmVhY2hlZFByZXZhbGVudFJlc291cmNlQWdl
Q2FwKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9tYXhBZ2VDYXAgJiYgV2ViQ29yZTo6Y29tcHV0
ZUN1cnJlbnRBZ2UocmVzcG9uc2UoKSwgdGltZVN0YW1wKCkpID4gbV9tYXhBZ2VDYXA7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUVu
dHJ5LmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUVu
dHJ5LmgKaW5kZXggZGVkYTg2YTQ0YjYxODQ5ZDZkYmIzZDAxZDM0MjAxOTJlNzcyOTk2NS4uOTY5
MTVjMzgwMWMzN2RkYWMzZThlNjAzMjFmODhjMjIyOWNkNTlhMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVFbnRyeS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlRW50cnkuaApAQCAt
NzEsNyArNzEsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGFzSlNPTihTdHJpbmdCdWlsZGVyJiwg
Y29uc3QgU3RvcmFnZTo6UmVjb3JkSW5mbyYpIGNvbnN0OwogCi0jaWYgRU5BQkxFKFJFU09VUkNF
X0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVO
VElPTikKICAgICBib29sIGhhc1JlYWNoZWRQcmV2YWxlbnRSZXNvdXJjZUFnZUNhcCgpIGNvbnN0
OwogICAgIHZvaWQgY2FwTWF4QWdlKGNvbnN0IFNlY29uZHMpOwogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVNwZWN1bGF0
aXZlTG9hZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtD
YWNoZVNwZWN1bGF0aXZlTG9hZC5jcHAKaW5kZXggNDAzNzRiYTA4ZmU1MWRiNGU0NmQzZGQ0YTg5
Mzk5ODk1MzBkNzYyNC4uYWQwOWRmNDRkOWFmMTJmZDQwODAzMTA1NDY4MzUzNmVhMGRjODE5MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2Fj
aGVTcGVjdWxhdGl2ZUxvYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Y2FjaGUvTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVMb2FkLmNwcApAQCAtOTEsNyArOTEsNyBAQCB2
b2lkIFNwZWN1bGF0aXZlTG9hZDo6d2lsbFNlbmRSZWRpcmVjdGVkUmVxdWVzdChSZXNvdXJjZVJl
cXVlc3QmJiByZXF1ZXN0LCBSZXNvdQogICAgIExPRyhOZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZVBy
ZWxvYWRpbmcsICJTcGVjdWxhdGl2ZSByZWRpcmVjdCAlcyAtPiAlcyIsIHJlcXVlc3QudXJsKCku
c3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgcmVkaXJlY3RSZXF1ZXN0LnVybCgpLnN0cmluZygpLnV0
ZjgoKS5kYXRhKCkpOwogCiAgICAgc3RkOjpvcHRpb25hbDxTZWNvbmRzPiBtYXhBZ2VDYXA7Ci0j
aWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdF
TlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBpZiAoYXV0byogbmV0d29ya1N0b3JhZ2VTZXNz
aW9uID0gbV9jYWNoZS0+bmV0d29ya1Byb2Nlc3MoKS5zdG9yYWdlU2Vzc2lvbihtX2NhY2hlLT5z
ZXNzaW9uSUQoKSkpCiAgICAgICAgIG1heEFnZUNhcCA9IG5ldHdvcmtTdG9yYWdlU2Vzc2lvbi0+
bWF4QWdlQ2FjaGVDYXAocmVxdWVzdCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaAppbmRleCA5
MzhiZjhmOGZlNGNlZDFlYzgwMjMzYmM5YjlhZGM5ZDJhM2MyMjQzLi5iOWFiMGRlZWJiOWY5Mjdj
NzM3NDJlODZhMGJlN2Y5NzE2MGJkNmZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLmgKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oCkBAIC05NCw3ICs5
NCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCB0cnlQYXNzd29yZEJhc2VkQXV0aGVudGljYXRpb24o
Y29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmLCBDaGFsbGVuZ2VDb21wbGV0
aW9uSGFuZGxlciYpOwogICAgIHZvaWQgYXBwbHlTbmlmZmluZ1BvbGljaWVzQW5kQmluZFJlcXVl
c3RUb0luZmVyZmFjZUlmTmVlZGVkKFJldGFpblB0cjxOU1VSTFJlcXVlc3Q+JiwgYm9vbCBzaG91
bGRDb250ZW50U25pZmYsIGJvb2wgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYpOwogCi0jaWYg
RU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRf
VFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBzdGF0aWMgTlNIVFRQQ29va2llU3RvcmFnZSAqc3Rh
dGVsZXNzQ29va2llU3RvcmFnZSgpOwogI2lmIEhBVkUoQ0ZORVRXT1JLX0NOQU1FX0FORF9DT09L
SUVfVFJBTlNGT1JNX1NQSSkKICAgICB2b2lkIHVwZGF0ZUZpcnN0UGFydHlJbmZvRm9yU2Vzc2lv
bihjb25zdCBVUkwmKTsKQEAgLTExNCw3ICsxMTQsNyBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyIG1fcGFnZUlEOwogICAgIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgbV93
ZWJQYWdlUHJveHlJRDsKIAotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisj
aWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgYm9vbCBtX2hh
c0JlZW5TZXRUb1VzZVN0YXRlbGVzc0Nvb2tpZVN0b3JhZ2UgeyBmYWxzZSB9OwogI2lmIEhBVkUo
Q0ZORVRXT1JLX0NOQU1FX0FORF9DT09LSUVfVFJBTlNGT1JNX1NQSSkKICAgICBTZWNvbmRzIG1f
YWdlQ2FwRm9yQ05BTUVDbG9ha2VkQ29va2llcyB7IDI0X2ggKiA3IH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1t
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2Nv
YS5tbQppbmRleCA0ZTM0ZjVlZWNjODgzNzg1MzI2OTAxNGNjNGE2ZjllMmVhMmJlYzUxLi5lNmY0
YzE0YTFhZDI0NTlmOWMyYWEwNjc3MTE1ZGQ5ZjQ4YzhhYjQ2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2Eu
bW0KQEAgLTEyNSw3ICsxMjUsNyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza0NvY29hOjphcHBseVNu
aWZmaW5nUG9saWNpZXNBbmRCaW5kUmVxdWVzdFRvSW5mZXJmYWNlSWZOZWVkZQogICAgIG5zUmVx
dWVzdCA9IG11dGFibGVSZXF1ZXN0LmF1dG9yZWxlYXNlKCk7CiB9CiAKLSNpZiBFTkFCTEUoUkVT
T1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19Q
UkVWRU5USU9OKQogTlNIVFRQQ29va2llU3RvcmFnZSAqTmV0d29ya0RhdGFUYXNrQ29jb2E6OnN0
YXRlbGVzc0Nvb2tpZVN0b3JhZ2UoKQogewogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSZXRh
aW5QdHI8TlNIVFRQQ29va2llU3RvcmFnZT4+IHN0YXRlbGVzc0Nvb2tpZVN0b3JhZ2U7CkBAIC0z
MzQsNyArMzM0LDcgQEAgTmV0d29ya0RhdGFUYXNrQ29jb2E6Ok5ldHdvcmtEYXRhVGFza0NvY29h
KE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVQKICNlbmRpZgogCiAgICAgYm9v
bCBzaG91bGRCbG9ja0Nvb2tpZXMgPSBmYWxzZTsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9T
VEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQog
ICAgIHNob3VsZEJsb2NrQ29va2llcyA9IG1fc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgPT0gV2Vi
Q29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OkVwaGVtZXJhbFN0YXRlbGVzczsKICAgICBp
ZiAoYXV0byogbmV0d29ya1N0b3JhZ2VTZXNzaW9uID0gc2Vzc2lvbi5uZXR3b3JrU3RvcmFnZVNl
c3Npb24oKSkgewogICAgICAgICBpZiAoIXNob3VsZEJsb2NrQ29va2llcykKQEAgLTM3Niw3ICsz
NzYsNyBAQCBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6TmV0d29ya0RhdGFUYXNrQ29jb2EoTmV0d29y
a1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXRhVAogI2VuZGlmCiAgICAgfQogCi0jaWYgRU5B
QkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJB
Q0tJTkdfUFJFVkVOVElPTikKICNpZiBIQVZFKENGTkVUV09SS19DTkFNRV9BTkRfQ09PS0lFX1RS
QU5TRk9STV9TUEkpCiAgICAgYXBwbHlDb29raWVQb2xpY3lGb3JUaGlyZFBhcnR5Q05BTUVDbG9h
a2luZyhyZXF1ZXN0KTsKICNlbmRpZgpAQCAtNTIxLDcgKzUyMSw3IEBAIHZvaWQgTmV0d29ya0Rh
dGFUYXNrQ29jb2E6OndpbGxQZXJmb3JtSFRUUFJlZGlyZWN0aW9uKFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UmCiAgICAgaWYgKGlzVG9wTGV2ZWxOYXZpZ2F0aW9uKCkpCiAgICAgICAgIHJlcXVl
c3Quc2V0Rmlyc3RQYXJ0eUZvckNvb2tpZXMocmVxdWVzdC51cmwoKSk7CiAKLSNpZiBFTkFCTEUo
UkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lO
R19QUkVWRU5USU9OKQogI2lmIEhBVkUoQ0ZORVRXT1JLX0NOQU1FX0FORF9DT09LSUVfVFJBTlNG
T1JNX1NQSSkKICAgICBhcHBseUNvb2tpZVBvbGljeUZvclRoaXJkUGFydHlDTkFNRUNsb2FraW5n
KHJlcXVlc3QpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0KaW5kZXggZjNjNjZmOWNmOTc0ZjVl
ODJiYWE2MjVhMjc4NDYyNTM3ZWJkYmMzNC4uYjJiZGY1OWEwNTc4NGQxNTgzZmI3MDI3NjVlY2I0
MzhlZmMwN2VhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2Nv
YS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQpAQCAtNTE1LDcgKzUxNSw3IEBAIC0gKHZv
aWQpVVJMU2Vzc2lvbjooTlNVUkxTZXNzaW9uICopc2Vzc2lvbiB0YXNrOihOU1VSTFNlc3Npb25U
YXNrICopdGFzayBuZWVkTmV3CiAgICAgY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6Y3JlYXRl
SFRUUEJvZHlOU0lucHV0U3RyZWFtKCpib2R5KS5nZXQoKSk7CiB9CiAKLSNpZiBFTkFCTEUoUkVT
T1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19Q
UkVWRU5USU9OKQogc3RhdGljIE5TVVJMUmVxdWVzdCogZG93bmdyYWRlUmVxdWVzdChOU1VSTFJl
cXVlc3QgKnJlcXVlc3QpCiB7CiAgICAgYXV0byBuc011dGFibGVSZXF1ZXN0ID0gYWRvcHROUyhb
cmVxdWVzdCBtdXRhYmxlQ29weV0pOwpAQCAtNTc5LDcgKzU3OSw3IEBAIC0gKHZvaWQpVVJMU2Vz
c2lvbjooTlNVUkxTZXNzaW9uICopc2Vzc2lvbiB0YXNrOihOU1VSTFNlc3Npb25UYXNrICopdGFz
ayB3aWxsUGVyCiAKICAgICBpZiAoYXV0byogbmV0d29ya0RhdGFUYXNrID0gW3NlbGYgZXhpc3Rp
bmdUYXNrOnRhc2tdKSB7CiAgICAgICAgIGJvb2wgc2hvdWxkSWdub3JlSFNUUyA9IGZhbHNlOwot
I2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElH
RU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgICAgIGlmIChhdXRvKiBzZXNzaW9uQ29jb2Eg
PSBuZXR3b3JrRGF0YVRhc2stPm5ldHdvcmtTZXNzaW9uKCkpIHsKICAgICAgICAgICAgIGF1dG8q
IHN0b3JhZ2VTZXNzaW9uID0gc2Vzc2lvbkNvY29hLT5uZXR3b3JrUHJvY2VzcygpLnN0b3JhZ2VT
ZXNzaW9uKHNlc3Npb25Db2NvYS0+c2Vzc2lvbklEKCkpOwogICAgICAgICAgICAgTlNVUkwgKmZp
cnN0UGFydHlGb3JDb29raWVzID0gbmV0d29ya0RhdGFUYXNrLT5pc1RvcExldmVsTmF2aWdhdGlv
bigpID8gcmVxdWVzdC5VUkwgOiByZXF1ZXN0Lm1haW5Eb2N1bWVudFVSTDsKQEAgLTYzOCw3ICs2
MzgsNyBAQCAtICh2b2lkKVVSTFNlc3Npb246KE5TVVJMU2Vzc2lvbiAqKXNlc3Npb24gdGFzazoo
TlNVUkxTZXNzaW9uVGFzayopdGFzayBfc2NoZW1lVQogCiAgICAgaWYgKGF1dG8qIG5ldHdvcmtE
YXRhVGFzayA9IFtzZWxmIGV4aXN0aW5nVGFzazp0YXNrXSkgewogICAgICAgICBib29sIHNob3Vs
ZElnbm9yZUhTVFMgPSBmYWxzZTsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNT
KQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgICAgICBp
ZiAoYXV0byogc2Vzc2lvbkNvY29hID0gbmV0d29ya0RhdGFUYXNrLT5uZXR3b3JrU2Vzc2lvbigp
KSB7CiAgICAgICAgICAgICBhdXRvKiBzdG9yYWdlU2Vzc2lvbiA9IHNlc3Npb25Db2NvYS0+bmV0
d29ya1Byb2Nlc3MoKS5zdG9yYWdlU2Vzc2lvbihzZXNzaW9uQ29jb2EtPnNlc3Npb25JRCgpKTsK
ICAgICAgICAgICAgIHNob3VsZElnbm9yZUhTVFMgPSBzY2hlbWVXYXNVcGdyYWRlZER1ZVRvRHlu
YW1pY0hTVFMocmVxdWVzdCkKQEAgLTE0MzgsNyArMTQzOCw3IEBAIFNlc3Npb25XcmFwcGVyJiBO
ZXR3b3JrU2Vzc2lvbkNvY29hOjpzZXNzaW9uV3JhcHBlckZvclRhc2soV2ViUGFnZVByb3h5SWRl
bnRpZmllCiAgICAgYXV0byBzaG91bGRCZUNvbnNpZGVyZWRBcHBCb3VuZCA9IGlzTmF2aWdhdGlu
Z1RvQXBwQm91bmREb21haW4gPyAqaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbiA6IE5hdmln
YXRpbmdUb0FwcEJvdW5kRG9tYWluOjpZZXM7CiAgICAgaWYgKGlzUGFyZW50UHJvY2Vzc0FGdWxs
V2ViQnJvd3NlcihuZXR3b3JrUHJvY2VzcygpKSkKICAgICAgICAgc2hvdWxkQmVDb25zaWRlcmVk
QXBwQm91bmQgPSBOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbjo6Tm87Ci0jaWYgRU5BQkxFKFJF
U09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdf
UFJFVkVOVElPTikKICAgICBpZiAoYXV0byogc3RvcmFnZVNlc3Npb24gPSBuZXR3b3JrU3RvcmFn
ZVNlc3Npb24oKSkgewogICAgICAgICBhdXRvIGZpcnN0UGFydHkgPSBXZWJDb3JlOjpSZWdpc3Ry
YWJsZURvbWFpbihyZXF1ZXN0LmZpcnN0UGFydHlGb3JDb29raWVzKCkpOwogICAgICAgICBpZiAo
c3RvcmFnZVNlc3Npb24tPnNob3VsZEJsb2NrVGhpcmRQYXJ0eUNvb2tpZXNCdXRLZWVwRmlyc3RQ
YXJ0eUNvb2tpZXNGb3IoZmlyc3RQYXJ0eSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2N1cmwvTmV0d29ya0RhdGFUYXNrQ3VybC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL2N1cmwvTmV0d29ya0RhdGFUYXNrQ3VybC5jcHAKaW5kZXggZTlmOWIy
YzI1Nzg2NmQ5MzAwZTc5NzgxY2JlZjNhZGRjNTljZDlkZS4uNzE1NzAxYWE1YTUzZjVhN2VhODMz
NzcyMTcwZDU2ZmFhNWEwMTIxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jdXJsL05ldHdvcmtEYXRhVGFza0N1cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY3VybC9OZXR3b3JrRGF0YVRhc2tDdXJsLmNwcApAQCAtNjYsNyArNjYsNyBA
QCBOZXR3b3JrRGF0YVRhc2tDdXJsOjpOZXR3b3JrRGF0YVRhc2tDdXJsKE5ldHdvcmtTZXNzaW9u
JiBzZXNzaW9uLCBOZXR3b3JrRGF0YVRhcwogICAgICAgICB9CiAgICAgfQogCi0jaWYgRU5BQkxF
KFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJ
TkdfUFJFVkVOVElPTikKICAgICBpZiAoc2hvdWxkQmxvY2tDb29raWVzKHJlcXVlc3QpKQogICAg
ICAgICBibG9ja0Nvb2tpZXMoKTsKICNlbmRpZgpAQCAtMjk2LDcgKzI5Niw3IEBAIHZvaWQgTmV0
d29ya0RhdGFUYXNrQ3VybDo6d2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb24oKQogICAgICAgICB9
CiAgICAgfQogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVENTKQorI2lmIEVOQUJM
RShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIGlmICghbV9ibG9ja2luZ0Nv
b2tpZXMgJiYgc2hvdWxkQmxvY2tDb29raWVzKHJlcXVlc3QpKQogICAgICAgICBibG9ja0Nvb2tp
ZXMoKTsKICNlbmRpZgpAQCAtNDc3LDIxICs0NzcsMjEgQEAgU3RyaW5nIE5ldHdvcmtEYXRhVGFz
a0N1cmw6OnN1Z2dlc3RlZEZpbGVuYW1lKCkgY29uc3QKIAogdm9pZCBOZXR3b3JrRGF0YVRhc2tD
dXJsOjpibG9ja0Nvb2tpZXMoKQogewotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJ
Q1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgbV9i
bG9ja2luZ0Nvb2tpZXMgPSB0cnVlOwogI2VuZGlmCiB9CiAKIHZvaWQgTmV0d29ya0RhdGFUYXNr
Q3VybDo6dW5ibG9ja0Nvb2tpZXMoKQogewotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJ
U1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAg
bV9ibG9ja2luZ0Nvb2tpZXMgPSBmYWxzZTsKICNlbmRpZgogfQogCiBib29sIE5ldHdvcmtEYXRh
VGFza0N1cmw6OnNob3VsZEJsb2NrQ29va2llcyhjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QpCiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNp
ZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBib29sIHNob3Vs
ZEJsb2NrQ29va2llcyA9IG1fc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgPT0gV2ViQ29yZTo6U3Rv
cmVkQ3JlZGVudGlhbHNQb2xpY3k6OkVwaGVtZXJhbFN0YXRlbGVzczsKIAogICAgIGlmICghc2hv
dWxkQmxvY2tDb29raWVzICYmIG1fc2Vzc2lvbi0+bmV0d29ya1N0b3JhZ2VTZXNzaW9uKCkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2N1cmwvTmV0d29ya1Nlc3Np
b25DdXJsLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY3VybC9OZXR3b3JrU2Vz
c2lvbkN1cmwuY3BwCmluZGV4IGNmNmViNGQ3MjQwMTA5YzVmNTg5ZTBkM2U1ZDAyMjVlYjFjMzQ5
MDguLjU2ZDU1ZDY2ZTZiNmEwNmRlODZlODAyZjk1ZDg4ODNhMmRjNmViZWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY3VybC9OZXR3b3JrU2Vzc2lvbkN1cmwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY3VybC9OZXR3b3JrU2Vzc2lvbkN1
cmwuY3BwCkBAIC00NCw3ICs0NCw3IEBAIE5ldHdvcmtTZXNzaW9uQ3VybDo6TmV0d29ya1Nlc3Np
b25DdXJsKE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcywgTmV0d29ya1NlCiAgICAgICAg
IG5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpLT5zZXRDb29raWVEYXRhYmFzZShtYWtlVW5pcXVlUmVm
PENvb2tpZUphckRCPihwYXJhbWV0ZXJzLmNvb2tpZVBlcnNpc3RlbnRTdG9yYWdlRmlsZSkpOwog
ICAgIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpLT5zZXRQcm94eVNldHRpbmdzKFdURk1vdmUocGFy
YW1ldGVycy5wcm94eVNldHRpbmdzKSk7CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFU
SVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAg
IG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSA9IHBhcmFtZXRlcnMucmVzb3VyY2VM
b2FkU3RhdGlzdGljc1BhcmFtZXRlcnMuZGlyZWN0b3J5OwogICAgIG1fc2hvdWxkSW5jbHVkZUxv
Y2FsaG9zdEluUmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IHBhcmFtZXRlcnMucmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1BhcmFtZXRlcnMuc2hvdWxkSW5jbHVkZUxvY2FsaG9zdCA/IFNob3VsZEluY2x1
ZGVMb2NhbGhvc3Q6OlllcyA6IFNob3VsZEluY2x1ZGVMb2NhbGhvc3Q6Ok5vOwogICAgIG1fZW5h
YmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZSA9IHBhcmFtZXRlcnMucmVzb3VyY2VM
b2FkU3RhdGlzdGljc1BhcmFtZXRlcnMuZW5hYmxlRGVidWdNb2RlID8gRW5hYmxlUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RlYnVnTW9kZTo6WWVzIDogRW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RlYnVnTW9kZTo6Tm87CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHAKaW5kZXggMWEyOGNkYjc5MzdmMmM3YmVh
NDI3OWJmMjAwMWQzMmVhNmQ2N2M0NC4uMTc1MjgzMTMyYzBjYTkzZWI0ZTZjNGY3YTljNDY2ZTdi
NmIyMjc2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05l
dHdvcmtEYXRhVGFza1NvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
c291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcApAQCAtMTg5LDcgKzE4OSw3IEBAIHZvaWQgTmV0
d29ya0RhdGFUYXNrU291cDo6Y3JlYXRlUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0
LCBXYXNCbG9ja2luZ0NvCiAgICAgfQogICAgIHNvdXBfbWVzc2FnZV9zZXRfZmxhZ3MobV9zb3Vw
TWVzc2FnZS5nZXQoKSwgc3RhdGljX2Nhc3Q8U291cE1lc3NhZ2VGbGFncz4oc291cF9tZXNzYWdl
X2dldF9mbGFncyhtX3NvdXBNZXNzYWdlLmdldCgpKSB8IG1lc3NhZ2VGbGFncykpOwogCi0jaWYg
RU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRf
VFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBib29sIHNob3VsZEJsb2NrQ29va2llcyA9IHdhc0Js
b2NraW5nQ29va2llcyA9PSBXYXNCbG9ja2luZ0Nvb2tpZXM6OlllcyA/IHRydWUgOiBtX3N0b3Jl
ZENyZWRlbnRpYWxzUG9saWN5ID09IFN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpFcGhlbWVyYWxT
dGF0ZWxlc3M7CiAgICAgaWYgKCFzaG91bGRCbG9ja0Nvb2tpZXMpIHsKICAgICAgICAgaWYgKGF1
dG8qIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbiA9IG1fc2Vzc2lvbi0+bmV0d29ya1N0b3JhZ2VTZXNz
aW9uKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZXNvdXJjZUxvYWRTdGF0
aXN0aWNzUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1BhcmFtZXRlcnMuaAppbmRleCAyODhhYzdkNTFjNTY2MDMxNjgwMGY2NmExMTExYzgx
MjE0NmUwZDI1Li4wNjBmYjRkYWY5YTg2NDljYzk4ZDk5NzE0ZDE1MjJiNDk1MmRhZWFkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1l
dGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NQ
YXJhbWV0ZXJzLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgc3RydWN0IFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NQYXJhbWV0ZXJzIHsKICAgICBib29sIGVuYWJsZUxvZ1Rlc3RpbmdFdmVudCB7IGZhbHNlIH07
CiAgICAgYm9vbCBzaG91bGRJbmNsdWRlTG9jYWxob3N0IHsgdHJ1ZSB9OwogICAgIGJvb2wgZW5h
YmxlRGVidWdNb2RlIHsgZmFsc2UgfTsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNU
SUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIFdl
YkNvcmU6OlRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGUgdGhpcmRQYXJ0eUNvb2tpZUJsb2Nr
aW5nTW9kZSB7IFdlYkNvcmU6OlRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGU6OkFsbCB9Owog
ICAgIFdlYkNvcmU6OlNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRFbmFibGVkIHNhbWVTaXRlU3Ry
aWN0RW5mb3JjZW1lbnRFbmFibGVkIHsgV2ViQ29yZTo6U2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVu
dEVuYWJsZWQ6Ok5vIH07CiAjZW5kaWYKQEAgLTY0LDcgKzY0LDcgQEAgc3RydWN0IFJlc291cmNl
TG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzIHsKICAgICAgICAgZW5jb2RlciA8PCBlbmFibGVMb2dU
ZXN0aW5nRXZlbnQ7CiAgICAgICAgIGVuY29kZXIgPDwgc2hvdWxkSW5jbHVkZUxvY2FsaG9zdDsK
ICAgICAgICAgZW5jb2RlciA8PCBlbmFibGVEZWJ1Z01vZGU7Ci0jaWYgRU5BQkxFKFJFU09VUkNF
X0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVO
VElPTikKICAgICAgICAgZW5jb2RlciA8PCB0aGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlOwog
ICAgICAgICBlbmNvZGVyIDw8IHNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRFbmFibGVkOwogI2Vu
ZGlmCkBAIC0xMjEsNyArMTIxLDcgQEAgc3RydWN0IFJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJh
bWV0ZXJzIHsKICAgICAgICAgaWYgKCFlbmFibGVEZWJ1Z01vZGUpCiAgICAgICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OwogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykK
KyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICAgICAgc3Rk
OjpvcHRpb25hbDxXZWJDb3JlOjpUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlPiB0aGlyZFBh
cnR5Q29va2llQmxvY2tpbmdNb2RlOwogICAgICAgICBkZWNvZGVyID4+IHRoaXJkUGFydHlDb29r
aWVCbG9ja2luZ01vZGU7CiAgICAgICAgIGlmICghdGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9k
ZSkKQEAgLTE2Myw3ICsxNjMsNyBAQCBzdHJ1Y3QgUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFt
ZXRlcnMgewogICAgICAgICAgICAgV1RGTW92ZSgqZW5hYmxlTG9nVGVzdGluZ0V2ZW50KSwKICAg
ICAgICAgICAgIFdURk1vdmUoKnNob3VsZEluY2x1ZGVMb2NhbGhvc3QpLAogICAgICAgICAgICAg
V1RGTW92ZSgqZW5hYmxlRGVidWdNb2RlKSwKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFU
SVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAg
ICAgICAgICAgV1RGTW92ZSgqdGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZSksCiAgICAgICAg
ICAgICBXVEZNb3ZlKCpzYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZCksCiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5jcHAKaW5kZXggYjBkNGJlZTNmMTI1ZTUxODEyNjI2NzRiMTUwMjI5YjhjMTU2YTY1Yi4u
MTZlNGIzOWRkMDM0MjI1NjA4MDE5MjEyNDkzNmE0NDk3YzdiNjQxNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAg
LTEzOCw3ICsxMzgsNyBAQCB2b2lkIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29k
ZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCB3YXlsYW5kQ29t
cG9zaXRvckRpc3BsYXlOYW1lOwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9T
VEFUSVNUSUNTKSAmJiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKyNpZiBFTkFCTEUoSU5URUxMSUdF
TlRfVFJBQ0tJTkdfUFJFVkVOVElPTikgJiYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgZW5j
b2RlciA8PCBzaG91bGRMb2dVc2VySW50ZXJhY3Rpb247CiAjZW5kaWYKIApAQCAtNDE2LDcgKzQx
Niw3IEBAIGJvb2wgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVj
b2RlciYgZGVjb2RlciwgV2ViUHJvY2Vzc0NyZWF0CiAgICAgICAgIHJldHVybiBmYWxzZTsKICNl
bmRpZgogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykgJiYgIVJFTEVBU0Vf
TE9HX0RJU0FCTEVECisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04p
ICYmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1l
dGVycy5zaG91bGRMb2dVc2VySW50ZXJhY3Rpb24pKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuaAppbmRleCBmNTEzMTYzODY4ZTY5NTVkZjcyMDg0NmYxNDZmYjUzN2QwNjdiODYy
Li5iY2NjZjFlZjE5NDQ0Zjc0YzFlYmMyMWM1NWEzOWYxZjhmNzMyNWM0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC0x
OTAsNyArMTkwLDcgQEAgc3RydWN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgewogICAg
IFdlYkNvcmU6OlNjcmVlblByb3BlcnRpZXMgc2NyZWVuUHJvcGVydGllczsKICNlbmRpZgogCi0j
aWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykgJiYgIVJFTEVBU0VfTE9HX0RJU0FC
TEVECisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pICYmICFSRUxF
QVNFX0xPR19ESVNBQkxFRAogICAgIGJvb2wgc2hvdWxkTG9nVXNlckludGVyYWN0aW9uIHsgZmFs
c2UgfTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9j
ZXNzRGF0YVN0b3JlUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vz
c0RhdGFTdG9yZVBhcmFtZXRlcnMuaAppbmRleCAxMjliZjg2NjNiYjdkMTdmZGE4ZmJiODAwY2Jm
YTBhY2M2NTQ5NTc5Li5lMmQ2N2IyYzRkMjNlOTRjMDZhZGYyYTFmY2MyMTk5ZGM4NjdiMTExIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzRGF0YVN0b3JlUGFyYW1l
dGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NEYXRhU3RvcmVQYXJh
bWV0ZXJzLmgKQEAgLTQ2LDcgKzQ2LDcgQEAgc3RydWN0IFdlYlByb2Nlc3NEYXRhU3RvcmVQYXJh
bWV0ZXJzIHsKICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgbWVkaWFLZXlTdG9yYWdlRGly
ZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOwogICAgIFN0cmluZyBqYXZhU2NyaXB0Q29uZmlndXJhdGlv
bkRpcmVjdG9yeTsKICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgamF2YVNjcmlwdENvbmZp
Z3VyYXRpb25EaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xP
QURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElP
TikKICAgICBXZWJDb3JlOjpUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlIHRoaXJkUGFydHlD
b29raWVCbG9ja2luZ01vZGUgeyBXZWJDb3JlOjpUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2Rl
OjpBbGwgfTsKICAgICBIYXNoU2V0PFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluPiBkb21haW5z
V2l0aFVzZXJJbnRlcmFjdGlvbjsKICAgICBIYXNoTWFwPFRvcEZyYW1lRG9tYWluLCBTdWJSZXNv
dXJjZURvbWFpbj4gZG9tYWluc1dpdGhTdG9yYWdlQWNjZXNzUXVpcms7CkBAIC03NCw3ICs3NCw3
IEBAIHZvaWQgV2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnM6OmVuY29kZShFbmNvZGVyJiBl
bmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgbWVkaWFLZXlTdG9yYWdlRGlyZWN0b3J5RXh0
ZW5zaW9uSGFuZGxlOwogICAgIGVuY29kZXIgPDwgamF2YVNjcmlwdENvbmZpZ3VyYXRpb25EaXJl
Y3Rvcnk7CiAgICAgZW5jb2RlciA8PCBqYXZhU2NyaXB0Q29uZmlndXJhdGlvbkRpcmVjdG9yeUV4
dGVuc2lvbkhhbmRsZTsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lm
IEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIGVuY29kZXIgPDwg
dGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZTsKICAgICBlbmNvZGVyIDw8IGRvbWFpbnNXaXRo
VXNlckludGVyYWN0aW9uOwogICAgIGVuY29kZXIgPDwgZG9tYWluc1dpdGhTdG9yYWdlQWNjZXNz
UXVpcms7CkBAIC0xMzQsNyArMTM0LDcgQEAgc3RkOjpvcHRpb25hbDxXZWJQcm9jZXNzRGF0YVN0
b3JlUGFyYW1ldGVycz4gV2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnM6OmRlY28KICAgICBp
ZiAoIWphdmFTY3JpcHRDb25maWd1cmF0aW9uRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKQogICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICAKLSNpZiBFTkFCTEUoUkVTT1VSQ0Vf
TE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5U
SU9OKQogICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5n
TW9kZT4gdGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZTsKICAgICBkZWNvZGVyID4+IHRoaXJk
UGFydHlDb29raWVCbG9ja2luZ01vZGU7CiAgICAgaWYgKCF0aGlyZFBhcnR5Q29va2llQmxvY2tp
bmdNb2RlKQpAQCAtMTc2LDcgKzE3Niw3IEBAIHN0ZDo6b3B0aW9uYWw8V2ViUHJvY2Vzc0RhdGFT
dG9yZVBhcmFtZXRlcnM+IFdlYlByb2Nlc3NEYXRhU3RvcmVQYXJhbWV0ZXJzOjpkZWNvCiAgICAg
ICAgIFdURk1vdmUoKm1lZGlhS2V5U3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSksCiAg
ICAgICAgIFdURk1vdmUoamF2YVNjcmlwdENvbmZpZ3VyYXRpb25EaXJlY3RvcnkpLAogICAgICAg
ICBXVEZNb3ZlKCpqYXZhU2NyaXB0Q29uZmlndXJhdGlvbkRpcmVjdG9yeUV4dGVuc2lvbkhhbmRs
ZSksCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5U
RUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICAgICAgKnRoaXJkUGFydHlDb29raWVC
bG9ja2luZ01vZGUsCiAgICAgICAgIFdURk1vdmUoKmRvbWFpbnNXaXRoVXNlckludGVyYWN0aW9u
KSwKICAgICAgICAgV1RGTW92ZSgqZG9tYWluc1dpdGhTdG9yYWdlQWNjZXNzUXVpcmspLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGEuY3Bw
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGEuY3BwCmluZGV4
IGQ4YTQ1ODQzOTM4ZDc4MzBiZDcwM2RmY2U4NWY1NGNjODFmODc4ZDguLmFhNzM5MGQ2YTRjM2Uy
ODNhNmMxYzg2ZjkxYjFmNzYxYjAwNGQ0YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YS5jcHAKQEAgLTY5LDcgKzY5LDcgQEAgdm9pZCBXZWJz
aXRlRGF0YTo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVy
IDw8IGhvc3ROYW1lc1dpdGhQbHVnaW5EYXRhOwogI2VuZGlmCiAgICAgZW5jb2RlciA8PCBob3N0
TmFtZXNXaXRoSFNUU0NhY2hlOwotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1Mp
CisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgZW5jb2Rl
ciA8PCByZWdpc3RyYWJsZURvbWFpbnNXaXRoUmVzb3VyY2VMb2FkU3RhdGlzdGljczsKICNlbmRp
ZgogfQpAQCAtODYsNyArODYsNyBAQCBib29sIFdlYnNpdGVEYXRhOjpkZWNvZGUoSVBDOjpEZWNv
ZGVyJiBkZWNvZGVyLCBXZWJzaXRlRGF0YSYgcmVzdWx0KQogI2VuZGlmCiAgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShyZXN1bHQuaG9zdE5hbWVzV2l0aEhTVFNDYWNoZSkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJM
RShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUocmVzdWx0LnJlZ2lzdHJhYmxlRG9tYWluc1dpdGhSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCkBAIC0xNjUsNyArMTY1LDcgQEAgV2Vic2l0
ZURhdGEgV2Vic2l0ZURhdGE6Omlzb2xhdGVkQ29weSgpIGNvbnN0CiAgICAgICAgIGNyb3NzVGhy
ZWFkQ29weShob3N0TmFtZXNXaXRoUGx1Z2luRGF0YSksCiAjZW5kaWYKICAgICAgICAgY3Jvc3NU
aHJlYWRDb3B5KGhvc3ROYW1lc1dpdGhIU1RTQ2FjaGUpLAotI2lmIEVOQUJMRShSRVNPVVJDRV9M
T0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJ
T04pCiAgICAgICAgIGNyb3NzVGhyZWFkQ29weShyZWdpc3RyYWJsZURvbWFpbnNXaXRoUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcyksCiAjZW5kaWYKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGEuaCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhLmgKaW5kZXggNjQ5MTQyNjZlNGFmNjg3NmRiMGNl
NTRlZGVlMmUwMzFhOTVlMmE4OS4uNDQ0YjFhZTEzMTkzOTBhNzEwZjdjNzQ0YzY0OTA2OWNkMGU5
MzQwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vic2l0ZURhdGEvV2Vic2l0
ZURhdGEuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0
YS5oCkBAIC02Myw3ICs2Myw3IEBAIHN0cnVjdCBXZWJzaXRlRGF0YSB7CiAgICAgSGFzaFNldDxT
dHJpbmc+IGhvc3ROYW1lc1dpdGhQbHVnaW5EYXRhOwogI2VuZGlmCiAgICAgSGFzaFNldDxTdHJp
bmc+IGhvc3ROYW1lc1dpdGhIU1RTQ2FjaGU7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RB
VElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAg
ICBIYXNoU2V0PFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluPiByZWdpc3RyYWJsZURvbWFpbnNX
aXRoUmVzb3VyY2VMb2FkU3RhdGlzdGljczsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0MvV0tQYWdlLmNwcAppbmRleCA4NTE2M2Y0NDUwYWNlM2QzNmQ1OTcxNjk2ZDQ4MWVi
NzgwYWVkMDFjLi4zNDlmOTAwZTBjNzQzMmEyMWFjMDZiYzRkMmViMzg5OWI1Y2JlNDZmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKQEAgLTMxNTgsNyArMzE1OCw3
IEBAIFdLX0VYUE9SVCBib29sIFdLUGFnZUlzTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJF
bmFibGVkKFdLUGFnZVJlZikKIHZvaWQgV0tQYWdlTG9hZGVkU3VicmVzb3VyY2VEb21haW5zKFdL
UGFnZVJlZiBwYWdlUmVmLCBXS1BhZ2VMb2FkZWRTdWJyZXNvdXJjZURvbWFpbnNGdW5jdGlvbiBj
YWxsYmFjaywgdm9pZCogY2FsbGJhY2tDb250ZXh0KQogewogICAgIENSQVNIX0lGX1NVU1BFTkRF
RDsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRF
TExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIHRvSW1wbChwYWdlUmVmKS0+Z2V0TG9h
ZGVkU3VicmVzb3VyY2VEb21haW5zKFtjYWxsYmFja0NvbnRleHQsIGNhbGxiYWNrXShWZWN0b3I8
UmVnaXN0cmFibGVEb21haW4+JiYgZG9tYWlucykgewogICAgICAgICBWZWN0b3I8UmVmUHRyPEFQ
STo6T2JqZWN0Pj4gYXBpRG9tYWlucyA9IFdURjo6bWFwKGRvbWFpbnMsIFtdKGF1dG8mIGRvbWFp
bikgewogICAgICAgICAgICAgcmV0dXJuIFJlZlB0cjxBUEk6Ok9iamVjdD4oQVBJOjpTdHJpbmc6
OmNyZWF0ZShXVEZNb3ZlKGRvbWFpbi5zdHJpbmcoKSkpKTsKQEAgLTMxNzQsNyArMzE3NCw3IEBA
IHZvaWQgV0tQYWdlTG9hZGVkU3VicmVzb3VyY2VEb21haW5zKFdLUGFnZVJlZiBwYWdlUmVmLCBX
S1BhZ2VMb2FkZWRTdWJyZXNvdXJjZURvCiB2b2lkIFdLUGFnZUNsZWFyTG9hZGVkU3VicmVzb3Vy
Y2VEb21haW5zKFdLUGFnZVJlZiBwYWdlUmVmKQogewogICAgIENSQVNIX0lGX1NVU1BFTkRFRDsK
LSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJ
R0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIHRvSW1wbChwYWdlUmVmKS0+Y2xlYXJMb2Fk
ZWRTdWJyZXNvdXJjZURvbWFpbnMoKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHBhZ2VSZWYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0
YVN0b3JlUmVmLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURh
dGFTdG9yZVJlZi5jcHAKaW5kZXggOGYxYmZhYTMwN2ExYzAxYjAwYzhkMDkxYWU2Mjc1OTg1Y2Iy
ZmY0Ni4uOGRmYTg4YzY2MzRlZTAwZjAyMzlkODVlOGI1MDVkOWQ5NWExM2Q5OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVS
ZWYuY3BwCkBAIC04Miw3ICs4Miw3IEBAIFdLUHJvY2Vzc0lEIFdLV2Vic2l0ZURhdGFTdG9yZUdl
dE5ldHdvcmtQcm9jZXNzSWRlbnRpZmllcihXS1dlYnNpdGVEYXRhU3RvcmVSZWYKIAogdm9pZCBX
S1dlYnNpdGVEYXRhU3RvcmVSZW1vdmVJVFBEYXRhRm9yRG9tYWluKFdLV2Vic2l0ZURhdGFTdG9y
ZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhvc3QsIHZvaWQqIGNvbnRleHQsIFdLV2Vi
c2l0ZURhdGFTdG9yZVJlbW92ZUlUUERhdGFGb3JEb21haW5GdW5jdGlvbiBjYWxsYmFjaykKIHsK
LSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJ
R0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIFdlYktpdDo6V2Vic2l0ZURhdGFSZWNvcmQg
ZGF0YVJlY29yZDsKICAgICBkYXRhUmVjb3JkLnR5cGVzLmFkZChXZWJLaXQ6OldlYnNpdGVEYXRh
VHlwZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljcyk7CiAgICAgZGF0YVJlY29yZC5hZGRSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzUmVnaXN0cmFibGVEb21haW4oV2ViQ29yZTo6UmVnaXN0cmFibGVEb21h
aW46OnVuY2hlY2tlZENyZWF0ZUZyb21Ib3N0KFdlYktpdDo6dG9JbXBsKGhvc3QpLT5zdHJpbmco
KSkpOwpAQCAtOTksNyArOTksNyBAQCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVJlbW92ZUlUUERh
dGFGb3JEb21haW4oV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZgogCiB2b2lkIFdL
V2Vic2l0ZURhdGFTdG9yZURvZXNTdGF0aXN0aWNzRG9tYWluSURFeGlzdEluRGF0YWJhc2UoV0tX
ZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgaW50IGRvbWFpbklELCB2b2lkKiBjb250
ZXh0LCBXS1dlYnNpdGVEYXRhU3RvcmVEb2VzU3RhdGlzdGljc0RvbWFpbklERXhpc3RJbkRhdGFi
YXNlRnVuY3Rpb24gY2FsbGJhY2spCiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElT
VElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBX
ZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5kb21haW5JREV4aXN0c0luRGF0YWJhc2UoZG9t
YWluSUQsIFtjb250ZXh0LCBjYWxsYmFja10oYm9vbCBleGlzdHMpIHsKICAgICAgICAgY2FsbGJh
Y2soZXhpc3RzLCBjb250ZXh0KTsKICAgICB9KTsKQEAgLTEyMSw3ICsxMjEsNyBAQCB2b2lkIFdL
V2Vic2l0ZURhdGFTdG9yZVJlc2V0U2VydmljZVdvcmtlckZldGNoVGltZW91dEZvclRlc3Rpbmco
V0tXZWJzaXRlRGF0YVN0bwogdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRW5hYmxlZChXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBib29s
IGVuYWJsZSkKIHsKICAgICBhdXRvKiB3ZWJzaXRlRGF0YVN0b3JlID0gV2ViS2l0Ojp0b0ltcGwo
ZGF0YVN0b3JlUmVmKTsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lm
IEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIHdlYnNpdGVEYXRh
U3RvcmUtPnVzZUV4cGxpY2l0SVRQU3RhdGUoKTsKICNlbmRpZgogICAgIHdlYnNpdGVEYXRhU3Rv
cmUtPnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGVuYWJsZSk7CkBAIC0xMjksNyAr
MTI5LDcgQEAgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RW5hYmxlZChXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGEKIAogdm9pZCBXS1dlYnNpdGVEYXRhU3Rv
cmVJc1N0YXRpc3RpY3NFcGhlbWVyYWwoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJl
Ziwgdm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGljc0VwaGVtZXJhbEZ1
bmN0aW9uIGNvbXBsZXRpb25IYW5kbGVyKQogewotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NU
QVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAg
ICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+aXNSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RXBoZW1lcmFsKFtjb250ZXh0LCBjb21wbGV0aW9uSGFuZGxlcl0oYm9vbCBpc0VwaGVtZXJhbCkg
ewogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihpc0VwaGVtZXJhbCwgY29udGV4dCk7CiAgICAg
fSk7CkBAIC0xNzMsNyArMTczLDcgQEAgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVDbGVhckNhY2hl
ZENyZWRlbnRpYWxzKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYKIAogdm9pZCBX
S1dlYnNpdGVEYXRhU3RvcmVTZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlV2l0aENv
bXBsZXRpb25IYW5kbGVyKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIGJvb2wg
ZW5hYmxlLCB2b2lkKiBjb250ZXh0LCBXS1dlYnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzRGVidWdN
b2RlRnVuY3Rpb24gY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xP
QURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElP
TikKICAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5zZXRSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGVidWdNb2RlKGVuYWJsZSwgW2NvbnRleHQsIGNvbXBsZXRpb25IYW5kbGVyXSB7CiAg
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGNvbnRleHQpOwogICAgIH0pOwpAQCAtMTg0LDcgKzE4
NCw3IEBAIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rl
YnVnTW9kZVdpdGhDb21wbGV0aW9uSGFuZGxlcihXCiAKIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3Jl
U2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlRm9yRGVidWdNb2RlKFdL
V2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhvc3QsIHZvaWQq
IGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NEZWJ1Z01vZGVGdW5jdGlvbiBj
b21wbGV0aW9uSGFuZGxlcikKIHsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNT
KQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIFdlYktp
dDo6dG9JbXBsKGRhdGFTdG9yZVJlZiktPnNldFByZXZhbGVudFJlc291cmNlRm9yRGVidWdNb2Rl
KFVSTChVUkwoKSwgV2ViS2l0Ojp0b0ltcGwoaG9zdCktPnN0cmluZygpKSwgW2NvbnRleHQsIGNv
bXBsZXRpb25IYW5kbGVyXSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGNvbnRleHQpOwog
ICAgIH0pOwpAQCAtMTk0LDcgKzE5NCw3IEBAIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0UmVz
b3VyY2VMb2FkU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlRm9yRGVidWdNb2RlKFdLCiB9CiB2
b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NMYXN0U2VlbihXS1dlYnNpdGVEYXRh
U3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBob3N0LCBkb3VibGUgc2Vjb25kcywg
dm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGljc0xhc3RTZWVuRnVuY3Rp
b24gY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElT
VElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBX
ZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5zZXRMYXN0U2VlbihVUkwoVVJMKCksIFdlYktp
dDo6dG9JbXBsKGhvc3QpLT5zdHJpbmcoKSksIFNlY29uZHMgeyBzZWNvbmRzIH0sIFtjb250ZXh0
LCBjb21wbGV0aW9uSGFuZGxlcl0gewogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihjb250ZXh0
KTsKICAgICB9KTsKQEAgLTIwNSw3ICsyMDUsNyBAQCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNl
dFN0YXRpc3RpY3NMYXN0U2VlbihXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLAog
CiB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NNZXJnZVN0YXRpc3RpYyhXS1dl
YnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBob3N0LCBXS1N0cmlu
Z1JlZiB0b3BGcmFtZURvbWFpbjEsIFdLU3RyaW5nUmVmIHRvcEZyYW1lRG9tYWluMiwgZG91Ymxl
IGxhc3RTZWVuLCBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiwgZG91YmxlIG1vc3RSZWNlbnRVc2Vy
SW50ZXJhY3Rpb24sIGJvb2wgaXNHcmFuZGZhdGhlcmVkLCBib29sIGlzUHJldmFsZW50LCBib29s
IGlzVmVyeVByZXZhbGVudCwgdW5zaWduZWQgZGF0YVJlY29yZHNSZW1vdmVkLCB2b2lkKiBjb250
ZXh0LCBXS1dlYnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzTWVyZ2VTdGF0aXN0aWNGdW5jdGlvbiBj
b21wbGV0aW9uSGFuZGxlcikKIHsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNT
KQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIFdlYktp
dDo6dG9JbXBsKGRhdGFTdG9yZVJlZiktPm1lcmdlU3RhdGlzdGljRm9yVGVzdGluZyhVUkwoVVJM
KCksIFdlYktpdDo6dG9JbXBsKGhvc3QpLT5zdHJpbmcoKSksIFVSTChVUkwoKSwgV2ViS2l0Ojp0
b0ltcGwodG9wRnJhbWVEb21haW4xKS0+c3RyaW5nKCkpLCBVUkwoVVJMKCksIFdlYktpdDo6dG9J
bXBsKHRvcEZyYW1lRG9tYWluMiktPnN0cmluZygpKSwgU2Vjb25kcyB7IGxhc3RTZWVuIH0sIGhh
ZFVzZXJJbnRlcmFjdGlvbiwgU2Vjb25kcyB7IG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24gfSwg
aXNHcmFuZGZhdGhlcmVkLCBpc1ByZXZhbGVudCwgaXNWZXJ5UHJldmFsZW50LCBkYXRhUmVjb3Jk
c1JlbW92ZWQsIFtjb250ZXh0LCBjb21wbGV0aW9uSGFuZGxlcl0gewogICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihjb250ZXh0KTsKICAgICB9KTsKQEAgLTIxNiw3ICsyMTYsNyBAQCB2b2lkIFdL
V2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NNZXJnZVN0YXRpc3RpYyhXS1dlYnNpdGVEYXRh
U3RvcmVSZWYgZGF0YVN0bwogCiB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NF
eHBpcmVkU3RhdGlzdGljKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3Ry
aW5nUmVmIGhvc3QsIHVuc2lnbmVkIG51bWJlck9mT3BlcmF0aW5nRGF5c1Bhc3NlZCwgYm9vbCBo
YWRVc2VySW50ZXJhY3Rpb24sIGJvb2wgaXNTY2hlZHVsZWRGb3JBbGxCdXRDb29raWVEYXRhUmVt
b3ZhbCwgYm9vbCBpc1ByZXZhbGVudCwgdm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3Jl
U3RhdGlzdGljc01lcmdlU3RhdGlzdGljRnVuY3Rpb24gY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0j
aWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdF
TlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYp
LT5pbnNlcnRFeHBpcmVkU3RhdGlzdGljRm9yVGVzdGluZyhVUkwoVVJMKCksIFdlYktpdDo6dG9J
bXBsKGhvc3QpLT5zdHJpbmcoKSksIG51bWJlck9mT3BlcmF0aW5nRGF5c1Bhc3NlZCwgaGFkVXNl
ckludGVyYWN0aW9uLCBpc1NjaGVkdWxlZEZvckFsbEJ1dENvb2tpZURhdGFSZW1vdmFsLCBpc1By
ZXZhbGVudCwgW2NvbnRleHQsIGNvbXBsZXRpb25IYW5kbGVyXSB7CiAgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKGNvbnRleHQpOwogICAgIH0pOwpAQCAtMjI3LDcgKzIyNyw3IEBAIHZvaWQgV0tX
ZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc0V4cGlyZWRTdGF0aXN0aWMoV0tXZWJzaXRlRGF0
YVN0b3JlUmVmIGRhdGFTCiAKIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc1By
ZXZhbGVudFJlc291cmNlKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3Ry
aW5nUmVmIGhvc3QsIGJvb2wgdmFsdWUsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9y
ZVN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZUZ1bmN0aW9uIGNvbXBsZXRpb25IYW5kbGVyKQog
ewotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVM
TElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgYXV0byYgd2Vic2l0ZURhdGFTdG9yZSA9
ICpXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpOwogCiAgICAgaWYgKHZhbHVlKQpAQCAtMjQ1
LDcgKzI0NSw3IEBAIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc1ByZXZhbGVu
dFJlc291cmNlKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhCiAKIHZvaWQgV0tXZWJzaXRlRGF0
YVN0b3JlU2V0U3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShXS1dlYnNpdGVEYXRhU3Rv
cmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBob3N0LCBib29sIHZhbHVlLCB2b2lkKiBj
b250ZXh0LCBXS1dlYnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNl
RnVuY3Rpb24gY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURf
U1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikK
ICAgICBhdXRvJiB3ZWJzaXRlRGF0YVN0b3JlID0gKldlYktpdDo6dG9JbXBsKGRhdGFTdG9yZVJl
Zik7CiAKICAgICBpZiAodmFsdWUpCkBAIC0yNjMsNyArMjYzLDcgQEAgdm9pZCBXS1dlYnNpdGVE
YXRhU3RvcmVTZXRTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKFdLV2Vic2l0ZURhdGFT
dG9yZVJlZgogCiB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZUR1bXBSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIHZvaWQqIGNvbnRleHQsIFdL
V2Vic2l0ZURhdGFTdG9yZUR1bXBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRnVuY3Rpb24gY2FsbGJh
Y2spCiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUo
SU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBXZWJLaXQ6OnRvSW1wbChkYXRh
U3RvcmVSZWYpLT5kdW1wUmVzb3VyY2VMb2FkU3RhdGlzdGljcyhbY29udGV4dCwgY2FsbGJhY2td
IChjb25zdCBTdHJpbmcmIHJlc291cmNlTG9hZFN0YXRpc3RpY3MpIHsKICAgICAgICAgY2FsbGJh
Y2soV2ViS2l0Ojp0b0FQSShyZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmltcGwoKSksIGNvbnRleHQp
OwogICAgIH0pOwpAQCAtMjc0LDcgKzI3NCw3IEBAIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlRHVt
cFJlc291cmNlTG9hZFN0YXRpc3RpY3MoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yCiAK
IHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoV0tX
ZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgV0tTdHJpbmdSZWYgaG9zdCwgdm9pZCog
Y29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2VG
dW5jdGlvbiBjYWxsYmFjaykKIHsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNT
KQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIFdlYktp
dDo6dG9JbXBsKGRhdGFTdG9yZVJlZiktPmlzUHJldmFsZW50UmVzb3VyY2UoVVJMKFVSTCgpLCBX
ZWJLaXQ6OnRvSW1wbChob3N0KS0+c3RyaW5nKCkpLCBbY29udGV4dCwgY2FsbGJhY2tdKGJvb2wg
aXNQcmV2YWxlbnRSZXNvdXJjZSkgewogICAgICAgICBjYWxsYmFjayhpc1ByZXZhbGVudFJlc291
cmNlLCBjb250ZXh0KTsKICAgICB9KTsKQEAgLTI4NSw3ICsyODUsNyBAQCB2b2lkIFdLV2Vic2l0
ZURhdGFTdG9yZUlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKFdLV2Vic2l0ZURhdGFTdG9y
ZVJlZiBkYXRhUwogCiB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlzdGljc1ZlcnlQcmV2
YWxlbnRSZXNvdXJjZShXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmlu
Z1JlZiBob3N0LCB2b2lkKiBjb250ZXh0LCBXS1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NQ
cmV2YWxlbnRSZXNvdXJjZUZ1bmN0aW9uIGNhbGxiYWNrKQogewotI2lmIEVOQUJMRShSRVNPVVJD
RV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZF
TlRJT04pCiAgICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+aXNWZXJ5UHJldmFsZW50
UmVzb3VyY2UoVVJMKFVSTCgpLCBXZWJLaXQ6OnRvSW1wbChob3N0KS0+c3RyaW5nKCkpLCBbY29u
dGV4dCwgY2FsbGJhY2tdKGJvb2wgaXNWZXJ5UHJldmFsZW50UmVzb3VyY2UpIHsKICAgICAgICAg
Y2FsbGJhY2soaXNWZXJ5UHJldmFsZW50UmVzb3VyY2UsIGNvbnRleHQpOwogICAgIH0pOwpAQCAt
Mjk2LDcgKzI5Niw3IEBAIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzVmVyeVBy
ZXZhbGVudFJlc291cmNlKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkCiAKIHZvaWQgV0tXZWJzaXRl
RGF0YVN0b3JlSXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3VicmVzb3VyY2VVbmRlcihXS1dlYnNp
dGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBzdWJyZXNvdXJjZUhvc3Qs
IFdLU3RyaW5nUmVmIHRvcEZyYW1lSG9zdCwgdm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0YVN0
b3JlSXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3VicmVzb3VyY2VVbmRlckZ1bmN0aW9uIGNhbGxi
YWNrKQogewotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxF
KElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgV2ViS2l0Ojp0b0ltcGwoZGF0
YVN0b3JlUmVmKS0+aXNSZWdpc3RlcmVkQXNTdWJyZXNvdXJjZVVuZGVyKFVSTChVUkwoKSwgV2Vi
S2l0Ojp0b0ltcGwoc3VicmVzb3VyY2VIb3N0KS0+c3RyaW5nKCkpLCBVUkwoVVJMKCksIFdlYktp
dDo6dG9JbXBsKHRvcEZyYW1lSG9zdCktPnN0cmluZygpKSwgW2NvbnRleHQsIGNhbGxiYWNrXShi
b29sIGlzUmVnaXN0ZXJlZEFzU3VicmVzb3VyY2VVbmRlcikgewogICAgICAgICBjYWxsYmFjayhp
c1JlZ2lzdGVyZWRBc1N1YnJlc291cmNlVW5kZXIsIGNvbnRleHQpOwogICAgIH0pOwpAQCAtMzA3
LDcgKzMwNyw3IEBAIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzUmVnaXN0ZXJl
ZEFzU3VicmVzb3VyY2VVbmRlcihXS1dlYnNpdGVEYXRhU3RvCiAKIHZvaWQgV0tXZWJzaXRlRGF0
YVN0b3JlSXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcihXS1dlYnNpdGVEYXRh
U3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBzdWJGcmFtZUhvc3QsIFdLU3RyaW5n
UmVmIHRvcEZyYW1lSG9zdCwgdm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0
aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlckZ1bmN0aW9uIGNhbGxiYWNrKQogewotI2lm
IEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5U
X1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+
aXNSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKFVSTChVUkwoKSwgV2ViS2l0Ojp0b0ltcGwoc3Vi
RnJhbWVIb3N0KS0+c3RyaW5nKCkpLCBVUkwoVVJMKCksIFdlYktpdDo6dG9JbXBsKHRvcEZyYW1l
SG9zdCktPnN0cmluZygpKSwgW2NvbnRleHQsIGNhbGxiYWNrXShib29sIGlzUmVnaXN0ZXJlZEFz
U3ViRnJhbWVVbmRlcikgewogICAgICAgICBjYWxsYmFjayhpc1JlZ2lzdGVyZWRBc1N1YkZyYW1l
VW5kZXIsIGNvbnRleHQpOwogICAgIH0pOwpAQCAtMzE4LDcgKzMxOCw3IEBAIHZvaWQgV0tXZWJz
aXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcihXS1dlYnNp
dGVEYXRhU3RvcmVSCiAKIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzUmVnaXN0
ZXJlZEFzUmVkaXJlY3RpbmdUbyhXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBX
S1N0cmluZ1JlZiBob3N0UmVkaXJlY3RlZEZyb20sIFdLU3RyaW5nUmVmIGhvc3RSZWRpcmVjdGVk
VG8sIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlzdGljc1JlZ2lzdGVy
ZWRBc1JlZGlyZWN0aW5nVG9GdW5jdGlvbiBjYWxsYmFjaykKIHsKLSNpZiBFTkFCTEUoUkVTT1VS
Q0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVW
RU5USU9OKQogICAgIFdlYktpdDo6dG9JbXBsKGRhdGFTdG9yZVJlZiktPmlzUmVnaXN0ZXJlZEFz
UmVkaXJlY3RpbmdUbyhVUkwoVVJMKCksIFdlYktpdDo6dG9JbXBsKGhvc3RSZWRpcmVjdGVkRnJv
bSktPnN0cmluZygpKSwgVVJMKFVSTCgpLCBXZWJLaXQ6OnRvSW1wbChob3N0UmVkaXJlY3RlZFRv
KS0+c3RyaW5nKCkpLCBbY29udGV4dCwgY2FsbGJhY2tdKGJvb2wgaXNSZWdpc3RlcmVkQXNSZWRp
cmVjdGluZ1RvKSB7CiAgICAgICAgIGNhbGxiYWNrKGlzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdU
bywgY29udGV4dCk7CiAgICAgfSk7CkBAIC0zMjksNyArMzI5LDcgQEAgdm9pZCBXS1dlYnNpdGVE
YXRhU3RvcmVJc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKFdLV2Vic2l0ZURh
dGFTdG9yZVIKIAogdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzSGFzSGFkVXNl
ckludGVyYWN0aW9uKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5n
UmVmIGhvc3QsIGJvb2wgdmFsdWUsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9yZVN0
YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb25GdW5jdGlvbiBjb21wbGV0aW9uSGFuZGxlcikK
IHsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRF
TExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIGF1dG8mIGRhdGFTdG9yZSA9ICpXZWJL
aXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpOwogCiAgICAgaWYgKHZhbHVlKQpAQCAtMzQ3LDcgKzM0
Nyw3IEBAIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRl
cmFjdGlvbihXS1dlYnNpdGVEYXRhU3RvcmVSZWYKIAogdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVJ
c1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRh
dGFTdG9yZVJlZiwgV0tTdHJpbmdSZWYgaG9zdCwgdm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0
YVN0b3JlSXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uRnVuY3Rpb24gY2FsbGJhY2sp
CiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5U
RUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3Rv
cmVSZWYpLT5oYXNIYWRVc2VySW50ZXJhY3Rpb24oVVJMKFVSTCgpLCBXZWJLaXQ6OnRvSW1wbCho
b3N0KS0+c3RyaW5nKCkpLCBbY29udGV4dCwgY2FsbGJhY2tdKGJvb2wgaGFzSGFkVXNlckludGVy
YWN0aW9uKSB7CiAgICAgICAgIGNhbGxiYWNrKGhhc0hhZFVzZXJJbnRlcmFjdGlvbiwgY29udGV4
dCk7CiAgICAgfSk7CkBAIC0zNTgsNyArMzU4LDcgQEAgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVJ
c1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGQK
IAogdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NPbmx5SW5EYXRhYmFzZU9uY2Uo
V0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgV0tTdHJpbmdSZWYgc3ViSG9zdCwg
V0tTdHJpbmdSZWYgdG9wSG9zdCwgdm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlSXNT
dGF0aXN0aWNzT25seUluRGF0YWJhc2VPbmNlRnVuY3Rpb24gY2FsbGJhY2spCiB7Ci0jaWYgRU5B
QkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJB
Q0tJTkdfUFJFVkVOVElPTikKICAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5pc1Jl
bGF0aW9uc2hpcE9ubHlJbkRhdGFiYXNlT25jZShVUkwoVVJMKCksIFdlYktpdDo6dG9JbXBsKHN1
Ykhvc3QpLT5zdHJpbmcoKSksIFVSTChVUkwoKSwgV2ViS2l0Ojp0b0ltcGwodG9wSG9zdCktPnN0
cmluZygpKSwgW2NvbnRleHQsIGNhbGxiYWNrXShib29sIG9ubHlJbkRhdGFiYXNlT25jZSkgewog
ICAgICAgICBjYWxsYmFjayhvbmx5SW5EYXRhYmFzZU9uY2UsIGNvbnRleHQpOwogICAgIH0pOwpA
QCAtMzY5LDE0ICszNjksMTQgQEAgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NP
bmx5SW5EYXRhYmFzZU9uY2UoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGEKIAogdm9pZCBXS1dl
YnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzR3JhbmRmYXRoZXJlZChXS1dlYnNpdGVEYXRhU3Rv
cmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBob3N0LCBib29sIHZhbHVlKQogewotI2lm
IEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5U
X1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+
c2V0R3JhbmRmYXRoZXJlZChVUkwoVVJMKCksIFdlYktpdDo6dG9JbXBsKGhvc3QpLT5zdHJpbmco
KSksIHZhbHVlLCBbXSB7IH0pOwogI2VuZGlmCiB9CiAKIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3Jl
SXNTdGF0aXN0aWNzR3JhbmRmYXRoZXJlZChXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3Jl
UmVmLCBXS1N0cmluZ1JlZiBob3N0LCB2b2lkKiBjb250ZXh0LCBXS1dlYnNpdGVEYXRhU3RvcmVJ
c1N0YXRpc3RpY3NHcmFuZGZhdGhlcmVkRnVuY3Rpb24gY2FsbGJhY2spCiB7Ci0jaWYgRU5BQkxF
KFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJ
TkdfUFJFVkVOVElPTikKICAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5pc0dyYW5k
ZmF0aGVyZWQoVVJMKFVSTCgpLCBXZWJLaXQ6OnRvSW1wbChob3N0KS0+c3RyaW5nKCkpLCBbY29u
dGV4dCwgY2FsbGJhY2tdKGJvb2wgaXNHcmFuZGZhdGhlcmVkKSB7CiAgICAgICAgIGNhbGxiYWNr
KGlzR3JhbmRmYXRoZXJlZCwgY29udGV4dCk7CiAgICAgfSk7CkBAIC0zODcsNDkgKzM4Nyw0OSBA
QCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlzdGljc0dyYW5kZmF0aGVyZWQoV0tXZWJz
aXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZQogCiB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0
YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oV0tXZWJzaXRlRGF0YVN0b3JlUmVm
IGRhdGFTdG9yZVJlZiwgV0tTdHJpbmdSZWYgaG9zdCwgV0tTdHJpbmdSZWYgdG9wRnJhbWVIb3N0
KQogewotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElO
VEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0
b3JlUmVmKS0+c2V0U3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWluKFVSTChVUkwoKSwgV2ViS2l0
Ojp0b0ltcGwoaG9zdCktPnN0cmluZygpKSwgVVJMKFVSTCgpLCBXZWJLaXQ6OnRvSW1wbCh0b3BG
cmFtZUhvc3QpLT5zdHJpbmcoKSksIFtdIHsgfSk7CiAjZW5kaWYKIH0KIAogdm9pZCBXS1dlYnNp
dGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKFdL
V2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhvc3QsIFdLU3Ry
aW5nUmVmIHRvcEZyYW1lSG9zdCkKIHsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNU
SUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIFdl
YktpdDo6dG9JbXBsKGRhdGFTdG9yZVJlZiktPnNldFN1YnJlc291cmNlVW5kZXJUb3BGcmFtZURv
bWFpbihVUkwoVVJMKCksIFdlYktpdDo6dG9JbXBsKGhvc3QpLT5zdHJpbmcoKSksIFVSTChVUkwo
KSwgV2ViS2l0Ojp0b0ltcGwodG9wRnJhbWVIb3N0KS0+c3RyaW5nKCkpLCBbXSB7IH0pOwogI2Vu
ZGlmCiB9CiAKIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc1N1YnJlc291cmNl
VW5pcXVlUmVkaXJlY3RUbyhXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0
cmluZ1JlZiBob3N0LCBXS1N0cmluZ1JlZiBob3N0UmVkaXJlY3RlZFRvKQogewotI2lmIEVOQUJM
RShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNL
SU5HX1BSRVZFTlRJT04pCiAgICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+c2V0U3Vi
cmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKFVSTChVUkwoKSwgV2ViS2l0Ojp0b0ltcGwoaG9zdCkt
PnN0cmluZygpKSwgVVJMKFVSTCgpLCBXZWJLaXQ6OnRvSW1wbChob3N0UmVkaXJlY3RlZFRvKS0+
c3RyaW5nKCkpLCBbXSB7IH0pOwogI2VuZGlmCiB9CiAKIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3Jl
U2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RGcm9tKFdLV2Vic2l0ZURhdGFT
dG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhvc3QsIFdLU3RyaW5nUmVmIGhvc3RS
ZWRpcmVjdGVkRnJvbSkKIHsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQor
I2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIFdlYktpdDo6
dG9JbXBsKGRhdGFTdG9yZVJlZiktPnNldFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RGcm9tKFVS
TChVUkwoKSwgV2ViS2l0Ojp0b0ltcGwoaG9zdCktPnN0cmluZygpKSwgVVJMKFVSTCgpLCBXZWJL
aXQ6OnRvSW1wbChob3N0UmVkaXJlY3RlZEZyb20pLT5zdHJpbmcoKSksIFtdIHsgfSk7CiAjZW5k
aWYKIH0KIAogdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzVG9wRnJhbWVVbmlx
dWVSZWRpcmVjdFRvKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5n
UmVmIGhvc3QsIFdLU3RyaW5nUmVmIGhvc3RSZWRpcmVjdGVkVG8pCiB7Ci0jaWYgRU5BQkxFKFJF
U09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdf
UFJFVkVOVElPTikKICAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5zZXRUb3BGcmFt
ZVVuaXF1ZVJlZGlyZWN0VG8oVVJMKFVSTCgpLCBXZWJLaXQ6OnRvSW1wbChob3N0KS0+c3RyaW5n
KCkpLCBVUkwoVVJMKCksIFdlYktpdDo6dG9JbXBsKGhvc3RSZWRpcmVjdGVkVG8pLT5zdHJpbmco
KSksIFtdIHsgfSk7CiAjZW5kaWYKIH0KIAogdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0
aXN0aWNzVG9wRnJhbWVVbmlxdWVSZWRpcmVjdEZyb20oV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRh
dGFTdG9yZVJlZiwgV0tTdHJpbmdSZWYgaG9zdCwgV0tTdHJpbmdSZWYgaG9zdFJlZGlyZWN0ZWRG
cm9tKQogewotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxF
KElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgV2ViS2l0Ojp0b0ltcGwoZGF0
YVN0b3JlUmVmKS0+c2V0VG9wRnJhbWVVbmlxdWVSZWRpcmVjdEZyb20oVVJMKFVSTCgpLCBXZWJL
aXQ6OnRvSW1wbChob3N0KS0+c3RyaW5nKCkpLCBVUkwoVVJMKCksIFdlYktpdDo6dG9JbXBsKGhv
c3RSZWRpcmVjdGVkRnJvbSktPnN0cmluZygpKSwgW10geyB9KTsKICNlbmRpZgogfQogCiB2b2lk
IFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NDcm9zc1NpdGVMb2FkV2l0aExpbmtEZWNv
cmF0aW9uKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGZy
b21Ib3N0LCBXS1N0cmluZ1JlZiB0b0hvc3QsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFT
dG9yZVNldFN0YXRpc3RpY3NDcm9zc1NpdGVMb2FkV2l0aExpbmtEZWNvcmF0aW9uRnVuY3Rpb24g
Y2FsbGJhY2spCiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBF
TkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBXZWJLaXQ6OnRvSW1w
bChkYXRhU3RvcmVSZWYpLT5zZXRDcm9zc1NpdGVMb2FkV2l0aExpbmtEZWNvcmF0aW9uRm9yVGVz
dGluZyhVUkwoVVJMKCksIFdlYktpdDo6dG9JbXBsKGZyb21Ib3N0KS0+c3RyaW5nKCkpLCBVUkwo
VVJMKCksIFdlYktpdDo6dG9JbXBsKHRvSG9zdCktPnN0cmluZygpKSwgW2NvbnRleHQsIGNhbGxi
YWNrXSB7CiAgICAgICAgIGNhbGxiYWNrKGNvbnRleHQpOwogICAgIH0pOwpAQCAtNDQwLDcgKzQ0
MCw3IEBAIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc0Nyb3NzU2l0ZUxvYWRX
aXRoTGlua0RlY29yYXRpb24oV0tXZWJzaXRlRGF0CiAKIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3Jl
U2V0U3RhdGlzdGljc1RpbWVUb0xpdmVVc2VySW50ZXJhY3Rpb24oV0tXZWJzaXRlRGF0YVN0b3Jl
UmVmIGRhdGFTdG9yZVJlZiwgZG91YmxlIHNlY29uZHMsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0
ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NUaW1lVG9MaXZlVXNlckludGVyYWN0aW9uRnVuY3Rpb24g
Y2FsbGJhY2spCiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBF
TkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBXZWJLaXQ6OnRvSW1w
bChkYXRhU3RvcmVSZWYpLT5zZXRUaW1lVG9MaXZlVXNlckludGVyYWN0aW9uKFNlY29uZHMgeyBz
ZWNvbmRzIH0sIFtjb250ZXh0LCBjYWxsYmFja10gewogICAgICAgICBjYWxsYmFjayhjb250ZXh0
KTsKICAgICB9KTsKQEAgLTQ1MSw3ICs0NTEsNyBAQCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNl
dFN0YXRpc3RpY3NUaW1lVG9MaXZlVXNlckludGVyYWN0aW9uKFdLV2Vic2l0ZURhdGFTdG9yZQog
CiB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERh
dGFSZWNvcmRzKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIHZvaWQqIGNvbnRl
eHQsIFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFS
ZWNvcmRzRnVuY3Rpb24gY2FsbGJhY2spCiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RB
VElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAg
ICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5zY2hlZHVsZVN0YXRpc3RpY3NBbmREYXRh
UmVjb3Jkc1Byb2Nlc3NpbmcoW2NvbnRleHQsIGNhbGxiYWNrXSB7CiAgICAgICAgIGNhbGxiYWNr
KGNvbnRleHQpOwogICAgIH0pOwpAQCAtNDYyLDcgKzQ2Miw3IEBAIHZvaWQgV0tXZWJzaXRlRGF0
YVN0b3JlU3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoV0tXZWJzaXRl
RGF0YVN0CiAKIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJs
b2NraW5nKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIHZvaWQqIGNvbnRleHQs
IFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZ0Z1bmN0aW9u
IGNvbXBsZXRpb25IYW5kbGVyKQogewotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJ
Q1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgV2Vi
S2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+c2NoZWR1bGVDb29raWVCbG9ja2luZ1VwZGF0ZShb
Y29udGV4dCwgY29tcGxldGlvbkhhbmRsZXJdKCkgewogICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihjb250ZXh0KTsKICAgICB9KTsKQEAgLTQ3MywxNCArNDczLDE0IEBAIHZvaWQgV0tXZWJzaXRl
RGF0YVN0b3JlU3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKFdLV2Vic2l0ZURhdGFTdG9y
ZVJlZiBkYXRhCiAKIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc05vdGlmeVBh
Z2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFT
dG9yZVJlZiwgYm9vbCB2YWx1ZSkKIHsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNU
SUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIFdl
YktpdDo6dG9JbXBsKGRhdGFTdG9yZVJlZiktPnNldE5vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRz
V2VyZVNjYW5uZWQodmFsdWUsIFtdIHsgfSk7CiAjZW5kaWYKIH0KIAogdm9pZCBXS1dlYnNpdGVE
YXRhU3RvcmVTZXRTdGF0aXN0aWNzSXNSdW5uaW5nVGVzdChXS1dlYnNpdGVEYXRhU3RvcmVSZWYg
ZGF0YVN0b3JlUmVmLCBib29sIHZhbHVlLCB2b2lkKiBjb250ZXh0LCBXS1dlYnNpdGVEYXRhU3Rv
cmVTZXRTdGF0aXN0aWNzSXNSdW5uaW5nVGVzdEZ1bmN0aW9uIGNhbGxiYWNrKQogewotI2lmIEVO
QUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RS
QUNLSU5HX1BSRVZFTlRJT04pCiAgICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+c2V0
SXNSdW5uaW5nUmVzb3VyY2VMb2FkU3RhdGlzdGljc1Rlc3QodmFsdWUsIFtjb250ZXh0LCBjYWxs
YmFja10gewogICAgICAgICBjYWxsYmFjayhjb250ZXh0KTsKICAgICB9KTsKQEAgLTQ5MSw0MiAr
NDkxLDQyIEBAIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc0lzUnVubmluZ1Rl
c3QoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yCiAKIHZvaWQgV0tXZWJzaXRlRGF0YVN0
b3JlU2V0U3RhdGlzdGljc1Nob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNS
ZW1vdmFsKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIGJvb2wgdmFsdWUpCiB7
Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxM
SUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVS
ZWYpLT5zZXRTaG91bGRDbGFzc2lmeVJlc291cmNlc0JlZm9yZURhdGFSZWNvcmRzUmVtb3ZhbCh2
YWx1ZSwgW10oKSB7IH0pOwogI2VuZGlmCiB9CiAKIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0
U3RhdGlzdGljc01pbmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbChXS1dlYnNpdGVE
YXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBkb3VibGUgc2Vjb25kcykKIHsKLSNpZiBFTkFCTEUo
UkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lO
R19QUkVWRU5USU9OKQogICAgIFdlYktpdDo6dG9JbXBsKGRhdGFTdG9yZVJlZiktPnNldE1pbmlt
dW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbChTZWNvbmRzIHsgc2Vjb25kcyB9LCBbXSgp
IHsgfSk7CiAjZW5kaWYKIH0KIAogdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNz
R3JhbmRmYXRoZXJpbmdUaW1lKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIGRv
dWJsZSBzZWNvbmRzKQogewotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisj
aWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgV2ViS2l0Ojp0
b0ltcGwoZGF0YVN0b3JlUmVmKS0+c2V0R3JhbmRmYXRoZXJpbmdUaW1lKFNlY29uZHMgeyBzZWNv
bmRzIH0sIFtdKCkgeyB9KTsKICNlbmRpZgogfQogCiB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNl
dFN0YXRpc3RpY3NNYXhTdGF0aXN0aWNzRW50cmllcyhXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0
YVN0b3JlUmVmLCB1bnNpZ25lZCBlbnRyaWVzKQogewotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FE
X1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04p
CiAgICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+c2V0TWF4U3RhdGlzdGljc0VudHJp
ZXMoZW50cmllcywgW10oKSB7IH0pOwogI2VuZGlmCiB9CiAKIHZvaWQgV0tXZWJzaXRlRGF0YVN0
b3JlU2V0U3RhdGlzdGljc1BydW5lRW50cmllc0Rvd25UbyhXS1dlYnNpdGVEYXRhU3RvcmVSZWYg
ZGF0YVN0b3JlUmVmLCB1bnNpZ25lZCBlbnRyaWVzKQogewotI2lmIEVOQUJMRShSRVNPVVJDRV9M
T0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJ
T04pCiAgICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+c2V0UHJ1bmVFbnRyaWVzRG93
blRvKGVudHJpZXMsIFtdKCkgeyB9KTsKICNlbmRpZgogfQogCiB2b2lkIFdLV2Vic2l0ZURhdGFT
dG9yZVN0YXRpc3RpY3NDbGVhckluTWVtb3J5QW5kUGVyc2lzdGVudFN0b3JlKFdLV2Vic2l0ZURh
dGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9y
ZVN0YXRpc3RpY3NDbGVhckluTWVtb3J5QW5kUGVyc2lzdGVudFN0b3JlRnVuY3Rpb24gY2FsbGJh
Y2spCiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUo
SU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBXZWJLaXQ6OnRvSW1wbChkYXRh
U3RvcmVSZWYpLT5zY2hlZHVsZUNsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50KFdlYktpdDo6U2hv
dWxkR3JhbmRmYXRoZXJTdGF0aXN0aWNzOjpZZXMsIFtjb250ZXh0LCBjYWxsYmFja10oKSB7CiAg
ICAgICAgIGNhbGxiYWNrKGNvbnRleHQpOwogICAgIH0pOwpAQCAtNTM3LDcgKzUzNyw3IEBAIHZv
aWQgV0tXZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGljc0NsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50
U3RvcmUoV0tXZWJzaXRlRGF0YVN0CiAKIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGlj
c0NsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50U3RvcmVNb2RpZmllZFNpbmNlSG91cnMoV0tXZWJz
aXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgdW5zaWduZWQgaG91cnMsIHZvaWQqIGNvbnRl
eHQsIFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NDbGVhckluTWVtb3J5QW5kUGVyc2lzdGVu
dFN0b3JlTW9kaWZpZWRTaW5jZUhvdXJzRnVuY3Rpb24gY2FsbGJhY2spCiB7Ci0jaWYgRU5BQkxF
KFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJ
TkdfUFJFVkVOVElPTikKICAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5zY2hlZHVs
ZUNsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50KFdhbGxUaW1lOjpub3coKSAtIFNlY29uZHM6OmZy
b21Ib3Vycyhob3VycyksIFdlYktpdDo6U2hvdWxkR3JhbmRmYXRoZXJTdGF0aXN0aWNzOjpZZXMs
IFtjb250ZXh0LCBjYWxsYmFja10oKSB7CiAgICAgICAgIGNhbGxiYWNrKGNvbnRleHQpOwogICAg
IH0pOwpAQCAtNTU2LDcgKzU1Niw3IEBAIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGlj
c0NsZWFyVGhyb3VnaFdlYnNpdGVEYXRhUmVtb3ZhbChXS1dlYnNpdGVEYXRhU3RvCiAKIHZvaWQg
V0tXZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGljc0RlbGV0ZUNvb2tpZXNGb3JUZXN0aW5nKFdLV2Vi
c2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhvc3QsIGJvb2wgaW5j
bHVkZUh0dHBPbmx5Q29va2llcywgdm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlU3Rh
dGlzdGljc0RlbGV0ZUNvb2tpZXNGb3JUZXN0aW5nRnVuY3Rpb24gY2FsbGJhY2spCiB7Ci0jaWYg
RU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRf
VFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5k
ZWxldGVDb29raWVzRm9yVGVzdGluZyhVUkwoVVJMKCksIFdlYktpdDo6dG9JbXBsKGhvc3QpLT5z
dHJpbmcoKSksIGluY2x1ZGVIdHRwT25seUNvb2tpZXMsIFtjb250ZXh0LCBjYWxsYmFja10gewog
ICAgICAgICBjYWxsYmFjayhjb250ZXh0KTsKICAgICB9KTsKQEAgLTU2Nyw3ICs1NjcsNyBAQCB2
b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NEZWxldGVDb29raWVzRm9yVGVzdGluZyhX
S1dlYnNpdGVEYXRhU3RvcmVSZWYgZAogCiB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3Rp
Y3NIYXNMb2NhbFN0b3JhZ2UoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgV0tT
dHJpbmdSZWYgaG9zdCwgdm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGlj
c0hhc0xvY2FsU3RvcmFnZUZ1bmN0aW9uIGNhbGxiYWNrKQogewotI2lmIEVOQUJMRShSRVNPVVJD
RV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZF
TlRJT04pCiAgICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+aGFzTG9jYWxTdG9yYWdl
Rm9yVGVzdGluZyhVUkwoVVJMKCksIFdlYktpdDo6dG9JbXBsKGhvc3QpLT5zdHJpbmcoKSksIFtj
b250ZXh0LCBjYWxsYmFja10oYm9vbCBoYXNMb2NhbFN0b3JhZ2UpIHsKICAgICAgICAgY2FsbGJh
Y2soaGFzTG9jYWxTdG9yYWdlLCBjb250ZXh0KTsKICAgICB9KTsKQEAgLTU3OCw3ICs1NzgsNyBA
QCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NIYXNMb2NhbFN0b3JhZ2UoV0tXZWJz
aXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZQogCiB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0
YXRpc3RpY3NDYWNoZU1heEFnZUNhcChXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVm
LCBkb3VibGUgc2Vjb25kcywgdm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3Rh
dGlzdGljc0NhY2hlTWF4QWdlQ2FwRnVuY3Rpb24gY2FsbGJhY2spCiB7Ci0jaWYgRU5BQkxFKFJF
U09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdf
UFJFVkVOVElPTikKICAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5zZXRDYWNoZU1h
eEFnZUNhcEZvclByZXZhbGVudFJlc291cmNlcyhTZWNvbmRzIHsgc2Vjb25kcyB9LCBbY29udGV4
dCwgY2FsbGJhY2tdIHsKICAgICAgICAgY2FsbGJhY2soY29udGV4dCk7CiAgICAgfSk7CkBAIC01
ODksNyArNTg5LDcgQEAgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzQ2FjaGVN
YXhBZ2VDYXAoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG8KIAogdm9pZCBXS1dlYnNpdGVE
YXRhU3RvcmVTdGF0aXN0aWNzSGFzSXNvbGF0ZWRTZXNzaW9uKFdLV2Vic2l0ZURhdGFTdG9yZVJl
ZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhvc3QsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0
ZURhdGFTdG9yZVN0YXRpc3RpY3NIYXNJc29sYXRlZFNlc3Npb25GdW5jdGlvbiBjYWxsYmFjaykK
IHsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRF
TExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIFdlYktpdDo6dG9JbXBsKGRhdGFTdG9y
ZVJlZiktPmhhc0lzb2xhdGVkU2Vzc2lvbkZvclRlc3RpbmcoVVJMKFVSTCgpLCBXZWJLaXQ6OnRv
SW1wbChob3N0KS0+c3RyaW5nKCkpLCBbY29udGV4dCwgY2FsbGJhY2tdKGJvb2wgaGFzSXNvbGF0
ZWRTZXNzaW9uKSB7CiAgICAgICAgIGNhbGxiYWNrKGhhc0lzb2xhdGVkU2Vzc2lvbiwgY29udGV4
dCk7CiAgICAgfSk7CkBAIC02MTIsNyArNjEyLDcgQEAgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVI
YXNBcHBCb3VuZFNlc3Npb24oV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgdm8K
IAogdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU2hvdWxk
RG93bmdyYWRlUmVmZXJyZXJGb3JUZXN0aW5nKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3Rv
cmVSZWYsIGJvb2wgZW5hYmxlZCwgdm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlU2V0
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nob3VsZERvd25ncmFkZVJlZmVycmVyRm9yVGVzdGluZ0Z1
bmN0aW9uIGNvbXBsZXRpb25IYW5kbGVyKQogewotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NU
QVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAg
ICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1Nob3VsZERvd25ncmFkZVJlZmVycmVyRm9yVGVzdGluZyhlbmFibGVkLCBbY29udGV4dCwgY29t
cGxldGlvbkhhbmRsZXJdIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoY29udGV4dCk7CiAg
ICAgfSk7CkBAIC02MjMsNyArNjIzLDcgQEAgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU2hvdWxkRG93bmdyYWRlUmVmZXJyZXJGb3JUZXN0aW4KIAogdm9p
ZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU2hvdWxkQmxvY2tU
aGlyZFBhcnR5Q29va2llc0ZvclRlc3RpbmcoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9y
ZVJlZiwgYm9vbCBlbmFibGVkLCBib29sIG9ubHlPblNpdGVzV2l0aG91dFVzZXJJbnRlcmFjdGlv
biwgdm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlU2V0UmVzb3VyY2VMb2FkU3RhdGlz
dGljc1Nob3VsZEJsb2NrVGhpcmRQYXJ0eUNvb2tpZXNGb3JUZXN0aW5nRnVuY3Rpb24gY29tcGxl
dGlvbkhhbmRsZXIpCiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNp
ZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBXZWJLaXQ6OnRv
SW1wbChkYXRhU3RvcmVSZWYpLT5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU2hvdWxkQmxvY2tU
aGlyZFBhcnR5Q29va2llc0ZvclRlc3RpbmcoZW5hYmxlZCwgb25seU9uU2l0ZXNXaXRob3V0VXNl
ckludGVyYWN0aW9uLCBbY29udGV4dCwgY29tcGxldGlvbkhhbmRsZXJdIHsKICAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoY29udGV4dCk7CiAgICAgfSk7CkBAIC02MzQsNyArNjM0LDcgQEAgdm9p
ZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU2hvdWxkQmxvY2tU
aGlyZFBhcnR5Q29va2llc0ZvclQKIAogdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGVGb3JUZXN0aW5n
KFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIGJvb2wgZW5hYmxlZCwgdm9pZCog
Y29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlU2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0ZpcnN0
UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlRm9yVGVzdGluZ0Z1bmN0aW9uIGNvbXBsZXRpb25I
YW5kbGVyKQogewotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5B
QkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgV2ViS2l0Ojp0b0ltcGwo
ZGF0YVN0b3JlUmVmKS0+c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0ZpcnN0UGFydHlXZWJzaXRl
RGF0YVJlbW92YWxNb2RlRm9yVGVzdGluZyhlbmFibGVkLCBbY29udGV4dCwgY29tcGxldGlvbkhh
bmRsZXJdIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoY29udGV4dCk7CiAgICAgfSk7CkBA
IC02NDUsNyArNjQ1LDcgQEAgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGUKIAogdm9pZCBXS1dlYnNp
dGVEYXRhU3RvcmVTZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVG9TYW1lU2l0ZVN0cmljdENvb2tp
ZXNGb3JUZXN0aW5nKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5n
UmVmIGhvc3ROYW1lLCB2b2lkKiBjb250ZXh0LCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzVG9TYW1lU2l0ZVN0cmljdENvb2tpZXNGb3JUZXN0aW5nRnVuY3Rpb24g
Y29tcGxldGlvbkhhbmRsZXIpCiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElD
UykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBXZWJL
aXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVG9TYW1l
U2l0ZVN0cmljdENvb2tpZXNGb3JUZXN0aW5nKFVSTChVUkwoKSwgV2ViS2l0Ojp0b0ltcGwoaG9z
dE5hbWUpLT5zdHJpbmcoKSksIFtjb250ZXh0LCBjb21wbGV0aW9uSGFuZGxlcl0gewogICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcihjb250ZXh0KTsKICAgICB9KTsKQEAgLTY1Niw3ICs2NTYsNyBA
QCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NUb1NhbWVT
aXRlU3RyaWN0Q29va2llc0ZvclRlc3RpbgogCiB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFJl
c291cmNlTG9hZFN0YXRpc3RpY3NGaXJzdFBhcnR5SG9zdENOQU1FRG9tYWluRm9yVGVzdGluZyhX
S1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBmaXJzdFBhcnR5
VVJMU3RyaW5nLCBXS1N0cmluZ1JlZiBjbmFtZVVSTFN0cmluZywgdm9pZCogY29udGV4dCwgV0tX
ZWJzaXRlRGF0YVN0b3JlU2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0ZpcnN0UGFydHlIb3N0Q05B
TUVEb21haW5Gb3JUZXN0aW5nRnVuY3Rpb24gY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0jaWYgRU5B
QkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJB
Q0tJTkdfUFJFVkVOVElPTikKICAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5zZXRS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRmlyc3RQYXJ0eUhvc3RDTkFNRURvbWFpbkZvclRlc3Rpbmco
VVJMKFVSTCgpLCBXZWJLaXQ6OnRvSW1wbChmaXJzdFBhcnR5VVJMU3RyaW5nKS0+c3RyaW5nKCkp
LCBVUkwoVVJMKCksIFdlYktpdDo6dG9JbXBsKGNuYW1lVVJMU3RyaW5nKS0+c3RyaW5nKCkpLCBb
Y29udGV4dCwgY29tcGxldGlvbkhhbmRsZXJdIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
Y29udGV4dCk7CiAgICAgfSk7CkBAIC02NjcsNyArNjY3LDcgQEAgdm9pZCBXS1dlYnNpdGVEYXRh
U3RvcmVTZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRmlyc3RQYXJ0eUhvc3RDTkFNRURvbWFpbkZv
clRlc3QKIAogdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
VGhpcmRQYXJ0eUNOQU1FRG9tYWluRm9yVGVzdGluZyhXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0
YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBjbmFtZVVSTFN0cmluZywgdm9pZCogY29udGV4dCwgV0tX
ZWJzaXRlRGF0YVN0b3JlU2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc1RoaXJkUGFydHlDTkFNRURv
bWFpbkZvclRlc3RpbmdGdW5jdGlvbiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSNpZiBFTkFCTEUo
UkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lO
R19QUkVWRU5USU9OKQogICAgIFdlYktpdDo6dG9JbXBsKGRhdGFTdG9yZVJlZiktPnNldFJlc291
cmNlTG9hZFN0YXRpc3RpY3NUaGlyZFBhcnR5Q05BTUVEb21haW5Gb3JUZXN0aW5nKFVSTChVUkwo
KSwgV2ViS2l0Ojp0b0ltcGwoY25hbWVVUkxTdHJpbmcpLT5zdHJpbmcoKSksIFtjb250ZXh0LCBj
b21wbGV0aW9uSGFuZGxlcl0gewogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihjb250ZXh0KTsK
ICAgICB9KTsKQEAgLTcwMyw3ICs3MDMsNyBAQCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldEFw
cEJvdW5kRG9tYWluc0ZvclRlc3RpbmcoV0tBcnJheVJlZiBvcmlnaW5VUkxzUmVmLCB2bwogCiB2
b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKFdL
V2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0
ZURhdGFTdG9yZVN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlRnVuY3Rpb24gY29tcGxl
dGlvbkhhbmRsZXIpCiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNp
ZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBhdXRvIGNhbGxi
YWNrQWdncmVnYXRvciA9IENhbGxiYWNrQWdncmVnYXRvcjo6Y3JlYXRlKFtjb250ZXh0LCBjb21w
bGV0aW9uSGFuZGxlcl0oKSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGNvbnRleHQpOwog
ICAgIH0pOwpAQCAtODgzLDcgKzg4Myw3IEBAIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlQ2xlYXJC
dW5kbGVJZGVudGlmaWVySW5OZXR3b3JrUHJvY2VzcyhXS1dlYnNpdGVEYXRhU3RvcmVSCiAKIHZv
aWQgV0tXZWJzaXRlRGF0YVN0b3JlR2V0QWxsU3RvcmFnZUFjY2Vzc0VudHJpZXMoV0tXZWJzaXRl
RGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgV0tQYWdlUmVmIHBhZ2VSZWYsIHZvaWQqIGNvbnRl
eHQsIFdLV2Vic2l0ZURhdGFTdG9yZUdldEFsbFN0b3JhZ2VBY2Nlc3NFbnRyaWVzRnVuY3Rpb24g
Y2FsbGJhY2spCiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBF
TkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBXZWJLaXQ6OnRvSW1w
bChkYXRhU3RvcmVSZWYpLT5nZXRBbGxTdG9yYWdlQWNjZXNzRW50cmllcyhXZWJLaXQ6OnRvSW1w
bChwYWdlUmVmKS0+aWRlbnRpZmllcigpLCBbY29udGV4dCwgY2FsbGJhY2tdIChWZWN0b3I8U3Ry
aW5nPiYmIGRvbWFpbnMpIHsKICAgICAgICAgYXV0byBkb21haW5BcnJheVJlZiA9IFdLTXV0YWJs
ZUFycmF5Q3JlYXRlKCk7CiAgICAgICAgIGZvciAoYXV0byBkb21haW4gOiBkb21haW5zKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wu
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQpp
bmRleCBjMWJmOTRjZjM2Nzg2Njk2Zjc5ODM5Mzg0NGM5NjcwMDJjYWNkZjgyLi40OWZmYWNkZjA4
YTlmMjcyNzc3OGMwMzExOWJlMzQxMDZhNzA3ZDM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQpAQCAtNTUzLDcgKzU1Myw3IEBA
IC0gKHZvaWQpX2NsZWFyUGVybWFuZW50Q3JlZGVudGlhbHNGb3JQcm90ZWN0aW9uU3BhY2U6KE5T
VVJMUHJvdGVjdGlvblNwYWNlICopcHJvCiAKIC0gKHZvaWQpX3NlZWRSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRm9yVGVzdGluZ1dpdGhGaXJzdFBhcnR5OihOU1VSTCAqKWZpcnN0UGFydHlVUkwgdGhp
cmRQYXJ0eTooTlNVUkwgKil0aGlyZFBhcnR5VVJMIHNob3VsZFNjaGVkdWxlTm90aWZpY2F0aW9u
OihCT09MKXNob3VsZFNjaGVkdWxlTm90aWZpY2F0aW9uIGNvbXBsZXRpb25IYW5kbGVyOih2b2lk
KF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyCiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURf
U1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikK
ICAgICBfcHJvY2Vzc1Bvb2wtPnNlZWRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRm9yVGVzdGluZyhX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB7IGZpcnN0UGFydHlVUkwgfSwgV2ViQ29yZTo6UmVn
aXN0cmFibGVEb21haW4geyB0aGlyZFBhcnR5VVJMIH0sIHNob3VsZFNjaGVkdWxlTm90aWZpY2F0
aW9uLCBbY29tcGxldGlvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIp
XSAoKSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiAgICAgfSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5t
bQppbmRleCA0ZGMxNWJhZDg0ZTg5ODg0YmJkMWNlNmZhZmNlMmM3MzA1ZTBjMTAwLi43YjA5ZTVh
NTUxNzM5MzNkYmNlNjJjNDZlNzk1NTE2ZDE3ZjFiNWRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KQEAgLTMx
MSw3ICszMTEsNyBAQCAtICh2b2lkKV9zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZDoo
Qk9PTCllbmFibGVkCiAKIC0gKEJPT0wpX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUK
IHsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRF
TExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIHJldHVybiBfd2Vic2l0ZURhdGFTdG9y
ZS0+cmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZSgpOwogI2Vsc2UKICAgICByZXR1cm4g
Tk87CkBAIC0zMjAsNyArMzIwLDcgQEAgLSAoQk9PTClfcmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rl
YnVnTW9kZQogCiAtICh2b2lkKV9zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlOihC
T09MKWVuYWJsZWQKIHsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lm
IEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIF93ZWJzaXRlRGF0
YVN0b3JlLT5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlKGVuYWJsZWQpOwogI2Vs
c2UKICAgICBVTlVTRURfUEFSQU0oZW5hYmxlZCk7CkBAIC0zNzksNyArMzc5LDcgQEAgLSAoTlNV
UkwgKilfaW5kZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkKIAogLSAodm9pZClfc2V0UmVzb3VyY2VM
b2FkU3RhdGlzdGljc1Rlc3RpbmdDYWxsYmFjazoodm9pZCAoXikoV0tXZWJzaXRlRGF0YVN0b3Jl
ICosIE5TU3RyaW5nICopKWNhbGxiYWNrCiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RB
VElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAg
ICBpZiAoIV93ZWJzaXRlRGF0YVN0b3JlLT5pc1BlcnNpc3RlbnQoKSkKICAgICAgICAgcmV0dXJu
OwogCkBAIC00MDEsNyArNDAxLDcgQEAgKyAodm9pZClfYWxsb3dXZWJzaXRlRGF0YVJlY29yZHNG
b3JBbGxPcmlnaW5zCiAKIC0gKHZvaWQpX2xvYWRlZFN1YnJlc291cmNlRG9tYWluc0ZvcjooV0tX
ZWJWaWV3ICopd2ViVmlldyBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNBcnJheTxOU1N0
cmluZyAqPiAqZG9tYWlucykpY29tcGxldGlvbkhhbmRsZXIKIHsKLSNpZiBFTkFCTEUoUkVTT1VS
Q0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVW
RU5USU9OKQogICAgIGlmICghd2ViVmlldykgewogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihu
aWwpOwogICAgICAgICByZXR1cm47CkBAIC00MjYsNyArNDI2LDcgQEAgLSAodm9pZClfbG9hZGVk
U3VicmVzb3VyY2VEb21haW5zRm9yOihXS1dlYlZpZXcgKil3ZWJWaWV3IGNvbXBsZXRpb25IYW5k
bGVyOih2b2kKIAogLSAodm9pZClfY2xlYXJMb2FkZWRTdWJyZXNvdXJjZURvbWFpbnNGb3I6KFdL
V2ViVmlldyAqKXdlYlZpZXcKIHsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNT
KQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIGlmICgh
d2ViVmlldykKICAgICAgICAgcmV0dXJuOwogCkBAIC00NTIsNyArNDUyLDcgQEAgLSAodm9pZClf
Z2V0QWxsU3RvcmFnZUFjY2Vzc0VudHJpZXNGb3I6KFdLV2ViVmlldyAqKXdlYlZpZXcgY29tcGxl
dGlvbkhhbmRsZXI6KHYKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotI2lmIEVOQUJMRShSRVNP
VVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BS
RVZFTlRJT04pCiAgICAgX3dlYnNpdGVEYXRhU3RvcmUtPmdldEFsbFN0b3JhZ2VBY2Nlc3NFbnRy
aWVzKHdlYlBhZ2VQcm94eS0+aWRlbnRpZmllcigpLCBbY29tcGxldGlvbkhhbmRsZXIgPSBtYWtl
QmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvIGRvbWFpbnMpIHsKICAgICAgICAgVmVj
dG9yPFJlZlB0cjxBUEk6Ok9iamVjdD4+IGFwaURvbWFpbnM7CiAgICAgICAgIGFwaURvbWFpbnMu
cmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShkb21haW5zLnNpemUoKSk7CkBAIC00NjcsNyArNDY3LDcg
QEAgLSAodm9pZClfZ2V0QWxsU3RvcmFnZUFjY2Vzc0VudHJpZXNGb3I6KFdLV2ViVmlldyAqKXdl
YlZpZXcgY29tcGxldGlvbkhhbmRsZXI6KHYKIAogLSAodm9pZClfc2NoZWR1bGVDb29raWVCbG9j
a2luZ1VwZGF0ZToodm9pZCAoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIKIHsKLSNpZiBFTkFC
TEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFD
S0lOR19QUkVWRU5USU9OKQogICAgIF93ZWJzaXRlRGF0YVN0b3JlLT5zY2hlZHVsZUNvb2tpZUJs
b2NraW5nVXBkYXRlKFtjb21wbGV0aW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9u
SGFuZGxlcildKCkgewogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogICAgIH0pOwpAQCAt
NDc4LDcgKzQ3OCw3IEBAIC0gKHZvaWQpX3NjaGVkdWxlQ29va2llQmxvY2tpbmdVcGRhdGU6KHZv
aWQgKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyCiAKIC0gKHZvaWQpX2xvZ1VzZXJJbnRlcmFj
dGlvbjooTlNVUkwgKilkb21haW4gY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKHZvaWQpKWNv
bXBsZXRpb25IYW5kbGVyCiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykK
KyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBfd2Vic2l0
ZURhdGFTdG9yZS0+bG9nVXNlckludGVyYWN0aW9uKGRvbWFpbiwgW2NvbXBsZXRpb25IYW5kbGVy
ID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKV0gewogICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcigpOwogICAgIH0pOwpAQCAtNDg5LDcgKzQ4OSw3IEBAIC0gKHZvaWQpX2xvZ1VzZXJJ
bnRlcmFjdGlvbjooTlNVUkwgKilkb21haW4gY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKHZv
aWQpKWNvCiAKIC0gKHZvaWQpX3NldFByZXZhbGVudERvbWFpbjooTlNVUkwgKilkb21haW4gY29t
cGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyCiB7Ci0jaWYg
RU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRf
VFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBfd2Vic2l0ZURhdGFTdG9yZS0+c2V0UHJldmFsZW50
UmVzb3VyY2UoVVJMKGRvbWFpbiksIFtjb21wbGV0aW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihj
b21wbGV0aW9uSGFuZGxlcildKCkgewogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogICAg
IH0pOwpAQCAtNTAwLDcgKzUwMCw3IEBAIC0gKHZvaWQpX3NldFByZXZhbGVudERvbWFpbjooTlNV
UkwgKilkb21haW4gY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKHZvaWQpKWNvCiAKIC0gKHZv
aWQpX2dldElzUHJldmFsZW50RG9tYWluOihOU1VSTCAqKWRvbWFpbiBjb21wbGV0aW9uSGFuZGxl
cjoodm9pZCAoXikoQk9PTCkpY29tcGxldGlvbkhhbmRsZXIKIHsKLSNpZiBFTkFCTEUoUkVTT1VS
Q0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVW
RU5USU9OKQogICAgIF93ZWJzaXRlRGF0YVN0b3JlLT5pc1ByZXZhbGVudFJlc291cmNlKFVSTChk
b21haW4pLCBbY29tcGxldGlvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRs
ZXIpXShib29sIGVuYWJsZWQpIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZW5hYmxlZCk7
CiAgICAgfSk7CkBAIC01MTEsNyArNTExLDcgQEAgLSAodm9pZClfZ2V0SXNQcmV2YWxlbnREb21h
aW46KE5TVVJMICopZG9tYWluIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShCT09MKSkKIAog
LSAodm9pZClfY2xlYXJQcmV2YWxlbnREb21haW46KE5TVVJMICopZG9tYWluIGNvbXBsZXRpb25I
YW5kbGVyOih2b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlcgogewotI2lmIEVOQUJMRShS
RVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5H
X1BSRVZFTlRJT04pCiAgICAgX3dlYnNpdGVEYXRhU3RvcmUtPmNsZWFyUHJldmFsZW50UmVzb3Vy
Y2UoVVJMKGRvbWFpbiksIFtjb21wbGV0aW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21wbGV0
aW9uSGFuZGxlcildKCkgewogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogICAgIH0pOwpA
QCAtNTIyLDcgKzUyMiw3IEBAIC0gKHZvaWQpX2NsZWFyUHJldmFsZW50RG9tYWluOihOU1VSTCAq
KWRvbWFpbiBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikodm9pZCkpCiAKIC0gKHZvaWQpX2Ns
ZWFyUmVzb3VyY2VMb2FkU3RhdGlzdGljczoodm9pZCAoXikodm9pZCkpY29tcGxldGlvbkhhbmRs
ZXIKIHsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJ
TlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIF93ZWJzaXRlRGF0YVN0b3JlLT5z
Y2hlZHVsZUNsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50KFdlYktpdDo6U2hvdWxkR3JhbmRmYXRo
ZXJTdGF0aXN0aWNzOjpObywgW2NvbXBsZXRpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBs
ZXRpb25IYW5kbGVyKV0oKSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiAgICAgfSk7
CkBAIC01MzMsNyArNTMzLDcgQEAgLSAodm9pZClfY2xlYXJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
Oih2b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlcgogCiAtICh2b2lkKV9nZXRSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YVN1bW1hcnk6KHZvaWQgKF4pKE5TQXJyYXk8X1dLUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1RoaXJkUGFydHkgKj4gKikpY29tcGxldGlvbkhhbmRsZXIKIHsKLSNpZiBF
TkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9U
UkFDS0lOR19QUkVWRU5USU9OKQogICAgIF93ZWJzaXRlRGF0YVN0b3JlLT5nZXRSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YVN1bW1hcnkoW2NvbXBsZXRpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRy
KGNvbXBsZXRpb25IYW5kbGVyKV0gKGF1dG8mJiB0aGlyZFBhcnR5RG9tYWlucykgewogICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcihjcmVhdGVOU0FycmF5KHRoaXJkUGFydHlEb21haW5zLCBbXSAo
YXV0byYmIGRvbWFpbikgewogICAgICAgICAgICAgcmV0dXJuIHdyYXBwZXIoQVBJOjpSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzVGhpcmRQYXJ0eTo6Y3JlYXRlKFdURk1vdmUoZG9tYWluKSkpOwpAQCAt
NTUxLDcgKzU1MSw3IEBAICsgKHZvaWQpX3NldENhY2hlZFByb2Nlc3NTdXNwZW5zaW9uRGVsYXlG
b3JUZXN0aW5nOihkb3VibGUpZGVsYXlJblNlY29uZHMKIAogLSAodm9pZClfaXNSZWxhdGlvbnNo
aXBPbmx5SW5EYXRhYmFzZU9uY2U6KE5TVVJMICopZmlyc3RQYXJ0eVVSTCB0aGlyZFBhcnR5OihO
U1VSTCAqKXRoaXJkUGFydHlVUkwgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wpKWNv
bXBsZXRpb25IYW5kbGVyCiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykK
KyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBfd2Vic2l0
ZURhdGFTdG9yZS0+aXNSZWxhdGlvbnNoaXBPbmx5SW5EYXRhYmFzZU9uY2UodGhpcmRQYXJ0eVVS
TCwgZmlyc3RQYXJ0eVVSTCwgW2NvbXBsZXRpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBs
ZXRpb25IYW5kbGVyKV0gKGJvb2wgcmVzdWx0KSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KHJlc3VsdCk7CiAgICAgfSk7CkBAIC01NjIsNyArNTYyLDcgQEAgLSAodm9pZClfaXNSZWxhdGlv
bnNoaXBPbmx5SW5EYXRhYmFzZU9uY2U6KE5TVVJMICopZmlyc3RQYXJ0eVVSTCB0aGlyZFBhcnR5
OihOU1UKIAogLSAodm9pZClfaXNSZWdpc3RlcmVkQXNTdWJyZXNvdXJjZVVuZGVyRmlyc3RQYXJ0
eTooTlNVUkwgKilmaXJzdFBhcnR5VVJMIHRoaXJkUGFydHk6KE5TVVJMICopdGhpcmRQYXJ0eVVS
TCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCkpY29tcGxldGlvbkhhbmRsZXIKIHsK
LSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJ
R0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIF93ZWJzaXRlRGF0YVN0b3JlLT5pc1JlZ2lz
dGVyZWRBc1N1YnJlc291cmNlVW5kZXIodGhpcmRQYXJ0eVVSTCwgZmlyc3RQYXJ0eVVSTCwgW2Nv
bXBsZXRpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKV0oYm9vbCBl
bmFibGVkKSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGVuYWJsZWQpOwogICAgIH0pOwpA
QCAtNTczLDcgKzU3Myw3IEBAIC0gKHZvaWQpX2lzUmVnaXN0ZXJlZEFzU3VicmVzb3VyY2VVbmRl
ckZpcnN0UGFydHk6KE5TVVJMICopZmlyc3RQYXJ0eVVSTCB0aGlyZFBhCiAKIC0gKHZvaWQpX3N0
YXRpc3RpY3NEYXRhYmFzZUhhc0FsbFRhYmxlczoodm9pZCAoXikoQk9PTCkpY29tcGxldGlvbkhh
bmRsZXIKIHsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJM
RShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIF93ZWJzaXRlRGF0YVN0b3Jl
LT5zdGF0aXN0aWNzRGF0YWJhc2VIYXNBbGxUYWJsZXMoW2NvbXBsZXRpb25IYW5kbGVyID0gbWFr
ZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKV0oYm9vbCBoYXNBbGxUYWJsZXMpIHsKICAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoaGFzQWxsVGFibGVzKTsKICAgICB9KTsKQEAgLTU4NCw3ICs1
ODQsNyBAQCAtICh2b2lkKV9zdGF0aXN0aWNzRGF0YWJhc2VIYXNBbGxUYWJsZXM6KHZvaWQgKF4p
KEJPT0wpKWNvbXBsZXRpb25IYW5kbGVyCiAKIC0gKHZvaWQpX3Byb2Nlc3NTdGF0aXN0aWNzQW5k
RGF0YVJlY29yZHM6KHZvaWQgKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyCiB7Ci0jaWYgRU5B
QkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJB
Q0tJTkdfUFJFVkVOVElPTikKICAgICBfd2Vic2l0ZURhdGFTdG9yZS0+c2NoZWR1bGVTdGF0aXN0
aWNzQW5kRGF0YVJlY29yZHNQcm9jZXNzaW5nKFtjb21wbGV0aW9uSGFuZGxlciA9IG1ha2VCbG9j
a1B0cihjb21wbGV0aW9uSGFuZGxlcildKCkgewogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigp
OwogICAgIH0pOwpAQCAtNTk1LDcgKzU5NSw3IEBAIC0gKHZvaWQpX3Byb2Nlc3NTdGF0aXN0aWNz
QW5kRGF0YVJlY29yZHM6KHZvaWQgKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyCiAKIC0gKHZv
aWQpX3NldFRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGU6KEJPT0wpZW5hYmxlZCBvbmx5T25T
aXRlc1dpdGhvdXRVc2VySW50ZXJhY3Rpb246KEJPT0wpb25seU9uU2l0ZXNXaXRob3V0VXNlcklu
dGVyYWN0aW9uIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFu
ZGxlcgogewotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxF
KElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgX3dlYnNpdGVEYXRhU3RvcmUt
PnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NTaG91bGRCbG9ja1RoaXJkUGFydHlDb29raWVzRm9y
VGVzdGluZyhlbmFibGVkLCBvbmx5T25TaXRlc1dpdGhvdXRVc2VySW50ZXJhY3Rpb24sIFtjb21w
bGV0aW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcildKCkgewogICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KaW5kZXggYmMxMjNjOWI1
OWE2YjhjN2ViYTFjZTZiNDEwYzhlMGMwNmNjZGM5NC4uZWI4NTYxMTc2NTk2ZGI5YTQyNDljYjEw
NzcxZWNlMWUzNTlmZTZkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCkBAIC0xMjAsNyArMTIwLDcgQEAgc3RhdGljIENG
U3RyaW5nUmVmIEFwcGxlQ29sb3JQcmVmZXJlbmNlc0NoYW5nZWROb3RpZmljYXRpb24gPSBDRlNU
UigiQXBwbGVDb2xvclAKIAogc3RhdGljIE5TU3RyaW5nICogY29uc3QgV2ViS2l0U3VwcHJlc3NN
ZW1vcnlQcmVzc3VyZUhhbmRsZXJEZWZhdWx0c0tleSA9IEAiV2ViS2l0U3VwcHJlc3NNZW1vcnlQ
cmVzc3VyZUhhbmRsZXIiOwogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykg
JiYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5H
X1BSRVZFTlRJT04pICYmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogc3RhdGljIE5TU3RyaW5nICog
Y29uc3QgV2ViS2l0TG9nQ29va2llSW5mb3JtYXRpb25EZWZhdWx0c0tleSA9IEAiV2ViS2l0TG9n
Q29va2llSW5mb3JtYXRpb24iOwogI2VuZGlmCiAKQEAgLTQxNCw3ICs0MTQsNyBAQCB2b2lkIFdl
YlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKGNvbnN0IFdlYlByb2Nl
c3NQcm94eSYgcHJvY2VzcwogI2VuZGlmCiAjZW5kaWYKIAotI2lmIEVOQUJMRShSRVNPVVJDRV9M
T0FEX1NUQVRJU1RJQ1MpICYmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorI2lmIEVOQUJMRShJTlRF
TExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKSAmJiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAg
ICBwYXJhbWV0ZXJzLnNob3VsZExvZ1VzZXJJbnRlcmFjdGlvbiA9IFtkZWZhdWx0cyBib29sRm9y
S2V5OldlYktpdExvZ0Nvb2tpZUluZm9ybWF0aW9uRGVmYXVsdHNLZXldOwogI2VuZGlmCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
UHJveHkuY3BwCmluZGV4IDBhNDUyZWVkNDViNTMzZGQyZTBjZDBjZGNhOTdiY2E3ZDE1MzQzZTYu
LjFjZGNmY2UwNmY5NWU2YjUzMTI3NWE4M2UzZWY3ZjA5NjhmZThhNzcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNw
cApAQCAtNTU5LDcgKzU1OSw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6cmVzb3VyY2VM
b2FkRGlkQ29tcGxldGVXaXRoRXJyb3IoV2ViUGFnZVByb3h5SWRlbnRpZmllCiAgICAgcGFnZS0+
cmVzb3VyY2VMb2FkRGlkQ29tcGxldGVXaXRoRXJyb3IoV1RGTW92ZShsb2FkSW5mbyksIFdURk1v
dmUocmVzcG9uc2UpLCBXVEZNb3ZlKGVycm9yKSk7CiB9CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0Vf
TE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5U
SU9OKQogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkdW1wUmVzb3VyY2VMb2FkU3RhdGlzdGlj
cyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5n
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAoIWNhblNlbmRNZXNzYWdlKCkpIHsK
QEAgLTEyNDIsNyArMTI0Miw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0RG9tYWlu
c1dpdGhDcm9zc1BhZ2VTdG9yYWdlQWNjZXNzKEhhc2hNYXA8VG9wRnJhbWVECiAgICAgICAgIHBy
b2Nlc3NQb29sLT5zZXREb21haW5zV2l0aENyb3NzUGFnZVN0b3JhZ2VBY2Nlc3MoSGFzaE1hcDxU
b3BGcmFtZURvbWFpbiwgU3ViUmVzb3VyY2VEb21haW4+IHsgZG9tYWlucyB9LCBbY2FsbGJhY2tB
Z2dyZWdhdG9yXSB7IH0pOwogfQogCi0jZW5kaWYgLy8gRU5BQkxFKFJFU09VUkNFX0xPQURfU1RB
VElTVElDUykKKyNlbmRpZiAvLyBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElP
TikKIAogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dERlYnVnTW9kZShib29sIGRlYnVnTW9kZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKaW5kZXggZWIxMmM0NGUxZWM3
MGY1N2EzYjE2MmYyODllOWEzYjU3ZDMyMDMwOS4uNjk5YTgyNTllZmFkYTEyYmFlZmYxY2RlOGJl
MTBkMTM2ODQ1ZWQ2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKQEAgLTEzMiw3ICsxMzIsNyBAQCBwdWJsaWM6CiAK
ICAgICB2b2lkIHByZWNvbm5lY3RUbyhQQUw6OlNlc3Npb25JRCwgV2ViUGFnZVByb3h5SWRlbnRp
ZmllciwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYs
IFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBzdGQ6Om9wdGlvbmFsPE5hdmlnYXRp
bmdUb0FwcEJvdW5kRG9tYWluPiwgTGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQpOwogCi0j
aWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdF
TlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICB2b2lkIGNsZWFyUHJldmFsZW50UmVzb3VyY2Uo
UEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIGNsZWFyVXNlckludGVyYWN0aW9uKFBBTDo6U2Vzc2lv
bklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
Jik7CiAgICAgdm9pZCBkdW1wUmVzb3VyY2VMb2FkU3RhdGlzdGljcyhQQUw6OlNlc3Npb25JRCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiYmKTsKQEAgLTMwMSw3ICszMDEsNyBAQCBw
cml2YXRlOgogICAgIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2UoV2ViUGFnZVByb3h5SWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBX
ZWJDb3JlOjpTaG91bGRTYW1wbGUpOwogICAgIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRo
UmVzdWx0KFdlYlBhZ2VQcm94eUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29u
c3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgdWludDMyX3QgcmVzdWx0LCBXZWJDb3JlOjpTaG91bGRT
YW1wbGUpOwogICAgIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoV2ViUGFnZVBy
b3h5SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2Ny
aXB0aW9uLCBkb3VibGUgdmFsdWUsIHVuc2lnbmVkIHNpZ25pZmljYW50RmlndXJlcywgV2ViQ29y
ZTo6U2hvdWxkU2FtcGxlKTsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQor
I2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIHZvaWQgbG9n
VGVzdGluZ0V2ZW50KFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGV2ZW50KTsKICAgICB2
b2lkIG5vdGlmeVJlc291cmNlTG9hZFN0YXRpc3RpY3NQcm9jZXNzZWQoKTsKICAgICB2b2lkIG5v
dGlmeVdlYnNpdGVEYXRhRGVsZXRpb25Gb3JSZWdpc3RyYWJsZURvbWFpbnNGaW5pc2hlZCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c1Byb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGVlZDY1YWFlMjA0YTBiYTJiYjA2YWQ1
YTg3N2NhNjAwNWNmNDVkMGUuLmQ2NzQ5MjVjNTgxZGJkOWYwYTc2OWE2NzAwMzZkOWM2ZGVmMzQw
NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KQEAgLTMzLDcgKzMzLDcgQEAgbWVz
c2FnZXMgLT4gTmV0d29ya1Byb2Nlc3NQcm94eSBMZWdhY3lSZWNlaXZlciB7CiAgICAgTG9nRGlh
Z25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllciBw
YWdlSUQsIFN0cmluZyBtZXNzYWdlLCBTdHJpbmcgZGVzY3JpcHRpb24sIHVpbnQzMl90IHJlc3Vs
dCwgZW51bTpib29sIFdlYkNvcmU6OlNob3VsZFNhbXBsZSBzaG91bGRTYW1wbGUpCiAgICAgTG9n
RGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoV2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVy
IHBhZ2VJRCwgU3RyaW5nIG1lc3NhZ2UsIFN0cmluZyBkZXNjcmlwdGlvbiwgZG91YmxlIHZhbHVl
LCB1bnNpZ25lZCBzaWduaWZpY2FudEZpZ3VyZXMsIGVudW06Ym9vbCBXZWJDb3JlOjpTaG91bGRT
YW1wbGUgc2hvdWxkU2FtcGxlKQogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElD
UykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBMb2dU
ZXN0aW5nRXZlbnQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTdHJpbmcgZXZlbnQpCiAgICAg
Tm90aWZ5UmVzb3VyY2VMb2FkU3RhdGlzdGljc1Byb2Nlc3NlZCgpCiAgICAgTm90aWZ5V2Vic2l0
ZURhdGFEZWxldGlvbkZvclJlZ2lzdHJhYmxlRG9tYWluc0ZpbmlzaGVkKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDVjMzc1NDE3OTRiNzk3ZDdmNTMxMGNj
Mzc0ZGYwNWYwZTk2YzAwOWMuLmRjZGY2OGQwOGVkODQyNDIxODczYmNjMjAyMjllYTg4MGQzYTc4
NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNDg0OSw3
ICs0ODQ5LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JG
cmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHAKICAgICAgICAgbV9wcm92aXNpb25h
bFBhZ2UgPSBudWxscHRyOwogfQogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElD
UykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKIHN0YXRpYyBP
cHRpb25TZXQ8Q3Jvc3NTaXRlTmF2aWdhdGlvbkRhdGFUcmFuc2Zlcjo6RmxhZz4gY2hlY2tJZk5h
dmlnYXRpb25Db250YWluc0RhdGFUcmFuc2Zlcihjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEgcmVx
dWVzdGVyT3JpZ2luLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIGN1cnJlbnRSZXF1ZXN0KQogewog
ICAgIE9wdGlvblNldDxDcm9zc1NpdGVOYXZpZ2F0aW9uRGF0YVRyYW5zZmVyOjpGbGFnPiBuYXZp
Z2F0aW9uRGF0YVRyYW5zZmVyOwpAQCAtNDg4Miw3ICs0ODgyLDcgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OmRpZENvbW1pdExvYWRGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgRnJhbWVJ
bmZvRGF0YSYKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIG1lc3NhZ2UgY2hlY2sgdGhhdCBuYXZp
Z2F0aW9uSUQgaXMgbm90IHplcm8gaGVyZSwgYnV0IGl0J3MgY3VycmVudGx5IHplcm8gZm9yIHNv
bWUgbmF2aWdhdGlvbnMgdGhyb3VnaCB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLgogICAgIFJlZlB0
cjxBUEk6Ok5hdmlnYXRpb24+IG5hdmlnYXRpb247CiAgICAgaWYgKGZyYW1lLT5pc01haW5GcmFt
ZSgpICYmIG5hdmlnYXRpb25JRCAmJiAobmF2aWdhdGlvbiA9IG5hdmlnYXRpb25TdGF0ZSgpLm5h
dmlnYXRpb24obmF2aWdhdGlvbklEKSkpIHsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFU
SVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAg
ICAgICBhdXRvIHJlcXVlc3Rlck9yaWdpbiA9IG5hdmlnYXRpb24tPmxhc3ROYXZpZ2F0aW9uQWN0
aW9uKCkucmVxdWVzdGVyT3JpZ2luOwogICAgICAgICBhdXRvIGN1cnJlbnRSZXF1ZXN0ID0gbmF2
aWdhdGlvbi0+Y3VycmVudFJlcXVlc3QoKTsKICAgICAgICAgYXV0byBuYXZpZ2F0aW9uRGF0YVRy
YW5zZmVyID0gY2hlY2tJZk5hdmlnYXRpb25Db250YWluc0RhdGFUcmFuc2ZlcihyZXF1ZXN0ZXJP
cmlnaW4sIGN1cnJlbnRSZXF1ZXN0KTsKQEAgLTUwMTgsNyArNTAxOCw3IEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjpkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgdWludDY0CiAKICAgICBpZiAoZnJhbWUtPmlzTWFpbkZyYW1lKCkpIHsKICAgICAgICAg
bV9uYXZpZ2F0aW9uQ2xpZW50LT5kaWRGaW5pc2hEb2N1bWVudExvYWQoKnRoaXMsIG5hdmlnYXRp
b24uZ2V0KCksIG1fcHJvY2Vzcy0+dHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyh1c2VyRGF0YS5v
YmplY3QoKSkuZ2V0KCkpOwotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisj
aWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgICAgIG1fZGlk
RmluaXNoRG9jdW1lbnRMb2FkRm9yTWFpbkZyYW1lVGltZXN0YW1wID0gTW9ub3RvbmljVGltZTo6
bm93KCk7CiAjZW5kaWYKICAgICB9CkBAIC01NDk2LDcgKzU0OTYsNyBAQCB2b2lkIFdlYlBhZ2VQ
cm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihSZWY8V2ViUHJvY2Vzc1Byb3h5
PiYmIHByb2NlcwogICAgIG1fd2Vic2l0ZURhdGFTdG9yZS0+YmVnaW5BcHBCb3VuZERvbWFpbkNo
ZWNrKGhvc3QudG9TdHJpbmcoKSwgcHJvdG9jb2wudG9TdHJpbmcoKSwgbGlzdGVuZXIpOwogI2Vu
ZGlmCiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJ
TlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIGF1dG8gd2FzUG90ZW50aWFsbHlJ
bml0aWF0ZWRCeVVzZXIgPSBuYXZpZ2F0aW9uLT5pc0xvYWRlZFdpdGhOYXZpZ2F0aW9uU2hhcmVk
KCkgfHwgdXNlckluaXRpYXRlZEFjdGl2aXR5OwogICAgIGlmICghc2Vzc2lvbklEKCkuaXNFcGhl
bWVyYWwoKSkKICAgICAgICAgbG9nRnJhbWVOYXZpZ2F0aW9uKGZyYW1lLCBVUkwoVVJMKCksIG1f
cGFnZUxvYWRTdGF0ZS51cmwoKSksIHJlcXVlc3QsIHJlZGlyZWN0UmVzcG9uc2UudXJsKCksIHdh
c1BvdGVudGlhbGx5SW5pdGlhdGVkQnlVc2VyKTsKQEAgLTU1MzYsNyArNTUzNiw3IEBAIFdlYlBh
Z2VQcm94eSogV2ViUGFnZVByb3h5Ojpub25FcGhlbWVyYWxXZWJQYWdlUHJveHkoKQogICAgIHJl
dHVybiBudWxscHRyOwogfQogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykK
KyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKIHZvaWQgV2ViUGFn
ZVByb3h5Ojpsb2dGcmFtZU5hdmlnYXRpb24oY29uc3QgV2ViRnJhbWVQcm94eSYgZnJhbWUsIGNv
bnN0IFVSTCYgcGFnZVVSTCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
LCBjb25zdCBVUkwmIHJlZGlyZWN0VVJMLCBib29sIHdhc1BvdGVudGlhbGx5SW5pdGlhdGVkQnlV
c2VyKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CkBAIC05OTkzLDcgKzk5OTMs
NyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bG9hZFN5bmNocm9ub3VzVVJMU2NoZW1lVGFzayhVUkxT
Y2hlbWVUYXNrUGFyYW1ldGVycyYmIHBhcmFtZQogICAgIGl0ZXJhdG9yLT52YWx1ZS0+c3RhcnRU
YXNrKCp0aGlzLCBtX3Byb2Nlc3MsIG1fd2ViUGFnZUlELCBXVEZNb3ZlKHBhcmFtZXRlcnMpLCBX
VEZNb3ZlKHJlcGx5KSk7CiB9CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNT
KQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogdm9pZCBXZWJQ
YWdlUHJveHk6OnJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybShjb25zdCBSZWdpc3RyYWJsZURv
bWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURv
bWFpbiwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9v
bCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgbV91aUNsaWVudC0+cmVxdWVzdFN0b3Jh
Z2VBY2Nlc3NDb25maXJtKCp0aGlzLCBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpLCBzdWJG
cmFtZURvbWFpbiwgdG9wRnJhbWVEb21haW4sIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsK
QEAgLTEwNzE1LDcgKzEwNzE1LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldE9yaWVudGF0aW9u
Rm9yTWVkaWFDYXB0dXJlKHVpbnQ2NF90IG9yaWVudGF0aW9uKQogI2VuZGlmCiB9CiAKLSNpZiBF
TkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9U
UkFDS0lOR19QUkVWRU5USU9OKQogdm9pZCBXZWJQYWdlUHJveHk6OmdldExvYWRlZFN1YnJlc291
cmNlRG9tYWlucyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxSZWdpc3RyYWJsZURvbWFp
bj4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1l
c3NhZ2VzOjpXZWJQYWdlOjpHZXRMb2FkZWRTdWJyZXNvdXJjZURvbWFpbnMoKSwgV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApp
bmRleCA5MzA0Y2ZlMjA2OWVkNmY5MTg1NTA2OWMyZWQxMmU1ZmRjMDk0M2RhLi5mNDQxNzE0NDMx
YTQxNGZiNTM5NWY2NDFiYmY4ZWRlOGQzNTQ2YTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaApAQCAtMTY2OSw3ICsxNjY5LDcgQEAgcHVibGljOgogICAgIHZvaWQgdG91
Y2hCYXJNZW51SXRlbURhdGFSZW1vdmVkKGNvbnN0IFRvdWNoQmFyTWVudUl0ZW1EYXRhJik7CiAj
ZW5kaWYKIAotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxF
KElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgdm9pZCByZXF1ZXN0U3RvcmFn
ZUFjY2Vzc0NvbmZpcm0oY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1l
RG9tYWluLCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4s
IFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
Jik7CiAgICAgdm9pZCBkaWRDb21taXRDcm9zc1NpdGVMb2FkV2l0aERhdGFUcmFuc2ZlckZyb21Q
cmV2YWxlbnRSZXNvdXJjZSgpOwogICAgIHZvaWQgZ2V0TG9hZGVkU3VicmVzb3VyY2VEb21haW5z
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWlu
PiYmKT4mJik7CkBAIC0yNDczLDcgKzI0NzMsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBkaWRB
dHRhY2hUb1J1bm5pbmdQcm9jZXNzKCk7CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFU
SVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAg
IHZvaWQgbG9nRnJhbWVOYXZpZ2F0aW9uKGNvbnN0IFdlYkZyYW1lUHJveHkmLCBjb25zdCBVUkwm
IHBhZ2VVUkwsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFVSTCYgcmVk
aXJlY3RVUkwsIGJvb2wgd2FzUG90ZW50aWFsbHlJbml0aWF0ZWRCeVVzZXIpOwogI2VuZGlmCiAK
QEAgLTMwNjIsNyArMzA2Miw3IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkRl
dmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94eT4gbV93ZWJEZXZpY2VPcmllbnRhdGlv
blVwZGF0ZVByb3ZpZGVyUHJveHk7CiAjZW5kaWYKIAotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FE
X1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04p
CiAgICAgTW9ub3RvbmljVGltZSBtX2RpZEZpbmlzaERvY3VtZW50TG9hZEZvck1haW5GcmFtZVRp
bWVzdGFtcDsKICNlbmRpZgogICAgICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQb29sLmNwcAppbmRleCBmY2VmNDMwNWM4ODIyMjcxYzkxOGVjYTA4MTk2NGNlNDJhNzlh
OTkyLi5kYzc2NGY4ZDRmZTdjZjRlODc4MTMzNDU5ZWY1OTY2YzFkMjQ2MDRhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC03MjYsNyArNzI2LDcgQEAg
V2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnMgV2ViUHJvY2Vzc1Bvb2w6OndlYlByb2Nlc3NE
YXRhU3RvcmVQYXJhbWV0ZXJzKFdlYlAKICAgICAgICAgV1RGTW92ZShtZWRpYUtleVN0b3JhZ2VE
aXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpLAogICAgICAgICBXVEZNb3ZlKGphdmFTY3JpcHRDb25m
aWd1cmF0aW9uRGlyZWN0b3J5KSwKICAgICAgICAgV1RGTW92ZShqYXZhU2NyaXB0Q29uZmlndXJh
dGlvbkRpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSksCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURf
U1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikK
ICAgICAgICAgd2Vic2l0ZURhdGFTdG9yZS50aGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlKCks
CiAgICAgICAgIG1fZG9tYWluc1dpdGhVc2VySW50ZXJhY3Rpb24sCiAgICAgICAgIG1fZG9tYWlu
c1dpdGhDcm9zc1BhZ2VTdG9yYWdlQWNjZXNzUXVpcmssCkBAIC0yMDA4LDcgKzIwMDgsNyBAQCB2
b2lkIFdlYlByb2Nlc3NQb29sOjpjbGVhckN1cnJlbnRNb2RpZmllclN0YXRlRm9yVGVzdGluZygp
CiAgICAgc2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpDbGVhckN1cnJl
bnRNb2RpZmllclN0YXRlRm9yVGVzdGluZygpKTsKIH0KIAotI2lmIEVOQUJMRShSRVNPVVJDRV9M
T0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJ
T04pCiB2b2lkIFdlYlByb2Nlc3NQb29sOjpzZXREb21haW5zV2l0aFVzZXJJbnRlcmFjdGlvbihI
YXNoU2V0PFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluPiYmIGRvbWFpbnMpCiB7CiAgICAgc2Vu
ZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpTZXREb21haW5zV2l0aFVzZXJJ
bnRlcmFjdGlvbihkb21haW5zKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUG9vbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuaAppbmRleCAwNWNmNTM0Njg5ZTVhYjM5YWQ5NmNiYTI1ZmQzMzZiNWYyNDEyNWQyLi5iM2Ix
OTEzMzJlMzViMGIzN2EwZGFmYTJlZTM0MTM1NTg0MzVhZjUzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKQEAgLTQ2MSw3ICs0NjEsNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCBzZW5kRGlzcGxheUNvbmZpZ3VyYXRpb25DaGFuZ2VkTWVzc2FnZUZvclRlc3RpbmcoKTsK
ICAgICB2b2lkIGNsZWFyQ3VycmVudE1vZGlmaWVyU3RhdGVGb3JUZXN0aW5nKCk7CiAKLSNpZiBF
TkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9U
UkFDS0lOR19QUkVWRU5USU9OKQogICAgIHZvaWQgc2V0RG9tYWluc1dpdGhVc2VySW50ZXJhY3Rp
b24oSGFzaFNldDxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4mJik7CiAgICAgdm9pZCBzZXRE
b21haW5zV2l0aENyb3NzUGFnZVN0b3JhZ2VBY2Nlc3MoSGFzaE1hcDxUb3BGcmFtZURvbWFpbiwg
U3ViUmVzb3VyY2VEb21haW4+JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAg
dm9pZCBzZWVkUmVzb3VyY2VMb2FkU3RhdGlzdGljc0ZvclRlc3RpbmcoY29uc3QgV2ViQ29yZTo6
UmVnaXN0cmFibGVEb21haW4mIGZpcnN0UGFydHlEb21haW4sIGNvbnN0IFdlYkNvcmU6OlJlZ2lz
dHJhYmxlRG9tYWluJiB0aGlyZFBhcnR5RG9tYWluLCBib29sIHNob3VsZFNjaGVkdWxlTm90aWZp
Y2F0aW9uLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwpAQCAtNzkzLDcgKzc5Myw3IEBA
IHByaXZhdGU6CiAjZW5kaWYKICAgICBzdGF0aWMgYm9vbCBzX3VzZVNlcGFyYXRlU2VydmljZVdv
cmtlclByb2Nlc3M7CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lm
IEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIEhhc2hTZXQ8V2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4+IG1fZG9tYWluc1dpdGhVc2VySW50ZXJhY3Rpb247CiAg
ICAgSGFzaE1hcDxUb3BGcmFtZURvbWFpbiwgU3ViUmVzb3VyY2VEb21haW4+IG1fZG9tYWluc1dp
dGhDcm9zc1BhZ2VTdG9yYWdlQWNjZXNzUXVpcms7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IGQ5YmE2NDgwZjhkNmViZmI4ZGU4NmRi
ZmJhNmRjNzAxNTE1OWE2MDguLjJjYmUxMjg4NGI1YzA3NmU5ZDA0ZGYyOGZjOTk0NDViMmYzOGU4
YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAt
NTQxLDcgKzU0MSw3IEBAIFdlYlBhZ2VQcm94eSogV2ViUHJvY2Vzc1Byb3h5Ojp3ZWJQYWdlKFdl
YlBhZ2VQcm94eUlkZW50aWZpZXIgcGFnZUlEKQogICAgIHJldHVybiBnbG9iYWxQYWdlTWFwKCku
Z2V0KHBhZ2VJRCk7CiB9CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQor
I2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogdm9pZCBXZWJQcm9j
ZXNzUHJveHk6Om5vdGlmeVBhZ2VTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHNQcm9jZXNzZWQoKQog
ewogICAgIGZvciAoYXV0byYgcGFnZSA6IGdsb2JhbFBhZ2VNYXAoKSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXggMGVhMjU5NGJlYmFhZmY3NjZkYjk0ZGNi
MzY3MmE5NjJjMWI4NDIzOS4uNmRjZTQyZTgyYWQyMzgxMzIwNmRjN2ZlMjUwOTg1YWZlODE4YTQ1
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTIzNyw3
ICsyMzcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkZWxldGVXZWJzaXRlRGF0YShQQUw6OlNlc3Np
b25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4sIFdhbGxUaW1lIG1vZGlmaWVkU2luY2Us
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBkZWxldGVXZWJzaXRlRGF0
YUZvck9yaWdpbnMoUEFMOjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBj
b25zdCBWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiYsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQor
I2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIHN0YXRpYyB2
b2lkIG5vdGlmeVBhZ2VTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHNQcm9jZXNzZWQoKTsKIAogICAg
IHN0YXRpYyB2b2lkIG5vdGlmeVdlYnNpdGVEYXRhRGVsZXRpb25Gb3JSZWdpc3RyYWJsZURvbWFp
bnNGaW5pc2hlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0
ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tCmluZGV4IGNi
ZGQwNjExNWJlNjNiMjQ2ZjU4MGZmOTQ0NzFmMGIwOGVjYjBmYjIuLjNlYmUyZGVjMmY1OGU5MzRk
ODIwMTQ5NzI4NWM1ZjRjZWRjZDM5NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYnNpdGVEYXRhL0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29j
b2EubW0KQEAgLTc0LDcgKzc0LDcgQEAgc3RhdGljIHN0ZDo6YXRvbWljPGJvb2w+IGhhc0luaXRp
YWxpemVkQXBwQm91bmREb21haW5zID0gZmFsc2U7CiBzdGF0aWMgc3RkOjphdG9taWM8Ym9vbD4g
a2V5RXhpc3RzID0gZmFsc2U7CiAjZW5kaWYKIAotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NU
QVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiBX
ZWJDb3JlOjpUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlIFdlYnNpdGVEYXRhU3RvcmU6OnRo
aXJkUGFydHlDb29raWVCbG9ja2luZ01vZGUoKSBjb25zdAogewogICAgIGlmICghbV90aGlyZFBh
cnR5Q29va2llQmxvY2tpbmdNb2RlKSB7CkBAIC05OCw3ICs5OCw3IEBAIHZvaWQgV2Vic2l0ZURh
dGFTdG9yZTo6cGxhdGZvcm1TZXROZXR3b3JrUGFyYW1ldGVycyhXZWJzaXRlRGF0YVN0b3JlUGFy
YW1ldGVycyYKICAgICBhdXRvIHNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRFbmFibGVkID0gV2Vi
Q29yZTo6U2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQ6Ok5vOwogICAgIGF1dG8gZmly
c3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGUgPSBXZWJDb3JlOjpGaXJzdFBhcnR5V2Vic2l0
ZURhdGFSZW1vdmFsTW9kZTo6QWxsQnV0Q29va2llczsKICAgICBXZWJDb3JlOjpSZWdpc3RyYWJs
ZURvbWFpbiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWFudWFsUHJldmFsZW50UmVzb3VyY2UgeyB9
OwotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVM
TElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgZW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RlYnVnTW9kZSA9IFtkZWZhdWx0cyBib29sRm9yS2V5OkAiSVRQRGVidWdNb2RlIl07CiAK
ICAgICBpZiAoW2RlZmF1bHRzIGJvb2xGb3JLZXk6W05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6
QCJFeHBlcmltZW50YWwlQCIsIFdlYlByZWZlcmVuY2VzS2V5Ojppc1NhbWVTaXRlU3RyaWN0RW5m
b3JjZW1lbnRFbmFibGVkS2V5KCkuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKV1dKQpAQCAtMTI2LDcg
KzEyNiw3IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6cGxhdGZvcm1TZXROZXR3b3JrUGFyYW1l
dGVycyhXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyYKICAgICBzdGF0aWMgTlNTdHJpbmcgKiBj
b25zdCBXZWJLaXRMb2dDb29raWVJbmZvcm1hdGlvbkRlZmF1bHRzS2V5ID0gQCJXZWJLaXRMb2dD
b29raWVJbmZvcm1hdGlvbiI7CiAgICAgc2hvdWxkTG9nQ29va2llSW5mb3JtYXRpb24gPSBbZGVm
YXVsdHMgYm9vbEZvcktleTpXZWJLaXRMb2dDb29raWVJbmZvcm1hdGlvbkRlZmF1bHRzS2V5XTsK
ICNlbmRpZgotI2VuZGlmIC8vIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjZW5k
aWYgLy8gRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAKICAgICBVUkwg
aHR0cFByb3h5ID0gbV9jb25maWd1cmF0aW9uLT5odHRwUHJveHkoKTsKICAgICBVUkwgaHR0cHNQ
cm94eSA9IG1fY29uZmlndXJhdGlvbi0+aHR0cHNQcm94eSgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFSZWNvcmQuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFSZWNvcmQuY3BwCmlu
ZGV4IGU5MTllMTE4ZGZmYjMwYjEwOTBjN2ZiY2Y1NjU2MDI3ZGM4YjlmZGQuLmU5M2M4ZmEyODI3
ZTVhYzY4NWYxZWE1NWM5N2NhODEwN2IzZjc5ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhUmVjb3JkLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVJlY29yZC5jcHAKQEAgLTEx
NCw3ICsxMTQsNyBAQCB2b2lkIFdlYnNpdGVEYXRhUmVjb3JkOjphZGRBbHRlcm5hdGl2ZVNlcnZp
Y2VzSG9zdG5hbWUoY29uc3QgU3RyaW5nJiBob3N0TmFtZSkKICNlbmRpZgogfQogCi0jaWYgRU5B
QkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJB
Q0tJTkdfUFJFVkVOVElPTikKIHZvaWQgV2Vic2l0ZURhdGFSZWNvcmQ6OmFkZFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NSZWdpc3RyYWJsZURvbWFpbihjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURv
bWFpbiYgZG9tYWluKQogewogICAgIHR5cGVzLmFkZChXZWJzaXRlRGF0YVR5cGU6OlJlc291cmNl
TG9hZFN0YXRpc3RpY3MpOwpAQCAtMTg0LDcgKzE4NCw3IEBAIFdlYnNpdGVEYXRhUmVjb3JkIFdl
YnNpdGVEYXRhUmVjb3JkOjppc29sYXRlZENvcHkoKSBjb25zdAogI2VuZGlmCiAgICAgICAgIGNy
b3NzVGhyZWFkQ29weShIU1RTQ2FjaGVIb3N0TmFtZXMpLAogICAgICAgICBjcm9zc1RocmVhZENv
cHkoYWx0ZXJuYXRpdmVTZXJ2aWNlc0hvc3ROYW1lcyksCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xP
QURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElP
TikKICAgICAgICAgY3Jvc3NUaHJlYWRDb3B5KHJlc291cmNlTG9hZFN0YXRpc3RpY3NSZWdpc3Ry
YWJsZURvbWFpbnMpLAogI2VuZGlmCiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhUmVjb3JkLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVJlY29yZC5oCmluZGV4IGE0MDgzZTQ0
ODI3ZGVjNWY1NzhmMjkzN2Y2ZjFhYTVmMGJjZjUxOGYuLjlkODZlYTA1YTljODBlMzA1MWJhMmUy
NDliZDgzYmYzNmYxYzY1ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YnNpdGVEYXRhL1dlYnNpdGVEYXRhUmVjb3JkLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFSZWNvcmQuaApAQCAtNTQsNyArNTQsNyBAQCBzdHJ1
Y3QgV2Vic2l0ZURhdGFSZWNvcmQgewogI2VuZGlmCiAgICAgdm9pZCBhZGRIU1RTQ2FjaGVIb3N0
bmFtZShjb25zdCBTdHJpbmcmIGhvc3ROYW1lKTsKICAgICB2b2lkIGFkZEFsdGVybmF0aXZlU2Vy
dmljZXNIb3N0bmFtZShjb25zdCBTdHJpbmcmIGhvc3ROYW1lKTsKLSNpZiBFTkFCTEUoUkVTT1VS
Q0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVW
RU5USU9OKQogICAgIHZvaWQgYWRkUmVzb3VyY2VMb2FkU3RhdGlzdGljc1JlZ2lzdHJhYmxlRG9t
YWluKGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJik7CiAjZW5kaWYKIApAQCAtNzks
NyArNzksNyBAQCBzdHJ1Y3QgV2Vic2l0ZURhdGFSZWNvcmQgewogI2VuZGlmCiAgICAgSGFzaFNl
dDxTdHJpbmc+IEhTVFNDYWNoZUhvc3ROYW1lczsKICAgICBIYXNoU2V0PFN0cmluZz4gYWx0ZXJu
YXRpdmVTZXJ2aWNlc0hvc3ROYW1lczsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNU
SUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIEhh
c2hTZXQ8V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4+IHJlc291cmNlTG9hZFN0YXRpc3RpY3NS
ZWdpc3RyYWJsZURvbWFpbnM7CiAjZW5kaWYKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IDUxMTM0
OGYyMGZhYjlmNDY1ZjhmZGU5MDFmZTYwN2Y3ZTczNzdmMDcuLjc3ODk2MGFjMzM4ZjIyZmZhZDVh
NmIyNTA1Mjc1OWU4NTVhNTkzZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCkBAIC00MTcsNyArNDE3LDcg
QEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpmZXRjaERhdGFBbmRBcHBseShPcHRpb25TZXQ8V2Vi
c2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMsIE8KICAgICAgICAgICAgICAgICByZWNvcmQuYWRkSFNU
U0NhY2hlSG9zdG5hbWUoaG9zdE5hbWUpOwogICAgICAgICAgICAgfQogCi0jaWYgRU5BQkxFKFJF
U09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdf
UFJFVkVOVElPTikKICAgICAgICAgICAgIGZvciAoY29uc3QgYXV0byYgZG9tYWluIDogd2Vic2l0
ZURhdGEucmVnaXN0cmFibGVEb21haW5zV2l0aFJlc291cmNlTG9hZFN0YXRpc3RpY3MpIHsKICAg
ICAgICAgICAgICAgICBhdXRvIGRpc3BsYXlOYW1lID0gV2Vic2l0ZURhdGFSZWNvcmQ6OmRpc3Bs
YXlOYW1lRm9ySG9zdE5hbWUoZG9tYWluLnN0cmluZygpKTsKICAgICAgICAgICAgICAgICBpZiAo
IWRpc3BsYXlOYW1lKQpAQCAtNTk1LDcgKzU5NSw3IEBAIHByaXZhdGU6CiAjZW5kaWYKIH0KIAot
I2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElH
RU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OmZldGNoRGF0
YUZvclJlZ2lzdHJhYmxlRG9tYWlucyhPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlw
ZXMsIE9wdGlvblNldDxXZWJzaXRlRGF0YUZldGNoT3B0aW9uPiBmZXRjaE9wdGlvbnMsIFZlY3Rv
cjxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4mJiBkb21haW5zLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFZlY3RvcjxXZWJzaXRlRGF0YVJlY29yZD4mJiwgSGFzaFNldDxXZWJDb3JlOjpSZWdp
c3RyYWJsZURvbWFpbj4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgZmV0Y2hEYXRh
QW5kQXBwbHkoZGF0YVR5cGVzLCBmZXRjaE9wdGlvbnMsIG1fcXVldWUuY29weVJlZigpLCBbZG9t
YWlucyA9IGNyb3NzVGhyZWFkQ29weShkb21haW5zKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKGF1dG8mJiBleGlzdGluZ0RhdGFSZWNvcmRzKSBtdXRh
YmxlIHsKQEAgLTY4NSw3ICs2ODUsNyBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnJlbW92ZURh
dGEoT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gZGF0YVR5cGVzLCBXYWxsVGltZQogICAgIH0K
ICNlbmRpZgogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFC
TEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBib29sIGRpZE5vdGlmeU5l
dHdvcmtQcm9jZXNzVG9EZWxldGVXZWJzaXRlRGF0YSA9IGZhbHNlOwogI2VuZGlmCiAgICAgYXV0
byBuZXR3b3JrUHJvY2Vzc0FjY2Vzc1R5cGUgPSBjb21wdXRlTmV0d29ya1Byb2Nlc3NBY2Nlc3NU
eXBlRm9yRGF0YVJlbW92YWwoZGF0YVR5cGVzLCAhaXNQZXJzaXN0ZW50KCkpOwpAQCAtNjk3LDcg
KzY5Nyw3IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6cmVtb3ZlRGF0YShPcHRpb25TZXQ8V2Vi
c2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMsIFdhbGxUaW1lCiAgICAgY2FzZSBQcm9jZXNzQWNjZXNz
VHlwZTo6T25seUlmTGF1bmNoZWQ6CiAgICAgICAgIGlmIChtX25ldHdvcmtQcm9jZXNzKSB7CiAg
ICAgICAgICAgICBtX25ldHdvcmtQcm9jZXNzLT5kZWxldGVXZWJzaXRlRGF0YShtX3Nlc3Npb25J
RCwgZGF0YVR5cGVzLCBtb2RpZmllZFNpbmNlLCBbY2FsbGJhY2tBZ2dyZWdhdG9yXSB7IH0pOwot
I2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElH
RU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgICAgICAgICBkaWROb3RpZnlOZXR3b3JrUHJv
Y2Vzc1RvRGVsZXRlV2Vic2l0ZURhdGEgPSB0cnVlOwogI2VuZGlmCiAgICAgICAgIH0KQEAgLTgw
OCw3ICs4MDgsNyBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnJlbW92ZURhdGEoT3B0aW9uU2V0
PFdlYnNpdGVEYXRhVHlwZT4gZGF0YVR5cGVzLCBXYWxsVGltZQogICAgIH0KICNlbmRpZgogCi0j
aWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdF
TlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBpZiAoZGF0YVR5cGVzLmNvbnRhaW5zKFdlYnNp
dGVEYXRhVHlwZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljcykpIHsKICAgICAgICAgaWYgKCFkaWRO
b3RpZnlOZXR3b3JrUHJvY2Vzc1RvRGVsZXRlV2Vic2l0ZURhdGEpCiAgICAgICAgICAgICBuZXR3
b3JrUHJvY2VzcygpLmRlbGV0ZVdlYnNpdGVEYXRhKG1fc2Vzc2lvbklELCBkYXRhVHlwZXMsIG1v
ZGlmaWVkU2luY2UsIFtjYWxsYmFja0FnZ3JlZ2F0b3JdIHsgfSk7CkBAIC04NjcsNyArODY3LDcg
QEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpyZW1vdmVEYXRhKE9wdGlvblNldDxXZWJzaXRlRGF0
YVR5cGU+IGRhdGFUeXBlcywgY29uc3QgVmUKICAgICAgICAgICAgICAgICAgICAgY29va2llSG9z
dE5hbWVzLmFwcGVuZChob3N0TmFtZSk7CiAgICAgICAgICAgICAgICAgZm9yIChhdXRvJiBob3N0
TmFtZSA6IGRhdGFSZWNvcmQuSFNUU0NhY2hlSG9zdE5hbWVzKQogICAgICAgICAgICAgICAgICAg
ICBIU1RTQ2FjaGVIb3N0TmFtZXMuYXBwZW5kKGhvc3ROYW1lKTsKLSNpZiBFTkFCTEUoUkVTT1VS
Q0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVW
RU5USU9OKQogICAgICAgICAgICAgICAgIGZvciAoYXV0byYgcmVnaXN0cmFibGVEb21haW4gOiBk
YXRhUmVjb3JkLnJlc291cmNlTG9hZFN0YXRpc3RpY3NSZWdpc3RyYWJsZURvbWFpbnMpCiAgICAg
ICAgICAgICAgICAgICAgIHJlZ2lzdHJhYmxlRG9tYWlucy5hcHBlbmQocmVnaXN0cmFibGVEb21h
aW4pOwogI2VuZGlmCkBAIC0xMDA3LDcgKzEwMDcsNyBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6
OnJlc2V0U2VydmljZVdvcmtlclRpbWVvdXRGb3JUZXN0aW5nKCkKICAgICBuZXR3b3JrUHJvY2Vz
cygpLnNlbmRTeW5jKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6UmVzZXRTZXJ2aWNlV29ya2Vy
RmV0Y2hUaW1lb3V0Rm9yVGVzdGluZygpLCBNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlJlc2V0
U2VydmljZVdvcmtlckZldGNoVGltZW91dEZvclRlc3Rpbmc6OlJlcGx5KCksIDApOwogfQogCi0j
aWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdF
TlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6c2V0TWF4U3Rh
dGlzdGljc0VudHJpZXMoc2l6ZV90IG1heGltdW1FbnRyeUNvdW50LCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6Omlz
TWFpbigpKTsKQEAgLTE1ODksNyArMTU4OSw3IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6c2V0
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1RoaXJkUGFydHlDTkFNRURvbWFpbkZvclRlc3RpbmcoCiAK
ICAgICBuZXR3b3JrUHJvY2VzcygpLnNldFRoaXJkUGFydHlDTkFNRURvbWFpbkZvclRlc3Rpbmco
bV9zZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHsgY25hbWVVUkwgfSwgW2Nh
bGxiYWNrQWdncmVnYXRvcl0geyB9KTsKIH0KLSNlbmRpZiAvLyBFTkFCTEUoUkVTT1VSQ0VfTE9B
RF9TVEFUSVNUSUNTKQorI2VuZGlmIC8vIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVW
RU5USU9OKQogCiB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnNldENhY2hlZFByb2Nlc3NTdXNwZW5z
aW9uRGVsYXlGb3JUZXN0aW5nKFNlY29uZHMgZGVsYXkpCiB7CkBAIC0xNjAzLDcgKzE2MDMsNyBA
QCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnN5bmNMb2NhbFN0b3JhZ2UoQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYQogCiB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnNldENh
Y2hlTWF4QWdlQ2FwRm9yUHJldmFsZW50UmVzb3VyY2VzKFNlY29uZHMgc2Vjb25kcywgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotI2lmIEVOQUJMRShS
RVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5H
X1BSRVZFTlRJT04pCiAgICAgYXV0byBjYWxsYmFja0FnZ3JlZ2F0b3IgPSBDYWxsYmFja0FnZ3Jl
Z2F0b3I6OmNyZWF0ZShXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiAgICAgCiAgICAgbmV0
d29ya1Byb2Nlc3MoKS5zZXRDYWNoZU1heEFnZUNhcEZvclByZXZhbGVudFJlc291cmNlcyhtX3Nl
c3Npb25JRCwgc2Vjb25kcywgW2NhbGxiYWNrQWdncmVnYXRvcl0geyB9KTsKQEAgLTE2MTUsNyAr
MTYxNSw3IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6c2V0Q2FjaGVNYXhBZ2VDYXBGb3JQcmV2
YWxlbnRSZXNvdXJjZXMoU2Vjb25kcyBzZWNvbmRzLCBDCiAKIHZvaWQgV2Vic2l0ZURhdGFTdG9y
ZTo6cmVzZXRDYWNoZU1heEFnZUNhcEZvclByZXZhbGVudFJlc291cmNlcyhDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNF
X0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVO
VElPTikKICAgICBuZXR3b3JrUHJvY2VzcygpLnJlc2V0Q2FjaGVNYXhBZ2VDYXBGb3JQcmV2YWxl
bnRSZXNvdXJjZXMobV9zZXNzaW9uSUQsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKICNl
bHNlCiAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKQEAgLTE4MTMsNyArMTgxMyw3IEBAIHZvaWQg
V2Vic2l0ZURhdGFTdG9yZTo6c2VuZE5ldHdvcmtQcm9jZXNzRGlkUmVzdW1lKCkKIAogYm9vbCBX
ZWJzaXRlRGF0YVN0b3JlOjpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCgpIGNvbnN0CiB7
Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxM
SUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICByZXR1cm4gbV9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRW5hYmxlZDsKICNlbHNlCiAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTgyMiw3ICsxODIy
LDcgQEAgYm9vbCBXZWJzaXRlRGF0YVN0b3JlOjpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxl
ZCgpIGNvbnN0CiAKIGJvb2wgV2Vic2l0ZURhdGFTdG9yZTo6cmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RlYnVnTW9kZSgpIGNvbnN0CiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElD
UykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICByZXR1
cm4gbV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlOwogI2Vsc2UKICAgICByZXR1cm4g
ZmFsc2U7CkBAIC0xODMxLDcgKzE4MzEsNyBAQCBib29sIFdlYnNpdGVEYXRhU3RvcmU6OnJlc291
cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUoKSBjb25zdAogCiB2b2lkIFdlYnNpdGVEYXRhU3Rv
cmU6OnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGJvb2wgZW5hYmxlZCkKIHsKLSNp
ZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VO
VF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIGlmIChlbmFibGVkID09IHJlc291cmNlTG9hZFN0
YXRpc3RpY3NFbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKIApAQCAtMTg1OCw3ICsxODU4LDcg
QEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpzZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxl
ZChib29sIGVuYWJsZWQpCiAjZW5kaWYKIH0KIAotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NU
QVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiB2
b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnNldFN0YXRpc3RpY3NUZXN0aW5nQ2FsbGJhY2soRnVuY3Rp
b248dm9pZChjb25zdCBTdHJpbmcmKT4mJiBjYWxsYmFjaykKIHsKICAgICBpZiAoY2FsbGJhY2sp
IHsKQEAgLTE4NzYsNyArMTg3Niw3IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6c2V0UmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZShib29sIGVuYWJsZWQpCiAKIHZvaWQgV2Vic2l0ZURh
dGFTdG9yZTo6c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZShib29sIGVuYWJsZWQs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSNpZiBF
TkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9U
UkFDS0lOR19QUkVWRU5USU9OKQogICAgIG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9k
ZSA9IGVuYWJsZWQ7CiAKICAgICBhdXRvIGNhbGxiYWNrQWdncmVnYXRvciA9IENhbGxiYWNrQWdn
cmVnYXRvcjo6Y3JlYXRlKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKQEAgLTE4OTAsNyAr
MTg5MCw3IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RlYnVnTW9kZShib29sIGVuYWJsZWQsIENvbXBsZXRpCiAKIHZvaWQgV2Vic2l0ZURhdGFTdG9y
ZTo6aXNSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRXBoZW1lcmFsKENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIGNvbnN0CiB7Ci0jaWYgRU5BQkxFKFJFU09V
UkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJF
VkVOVElPTikKICAgICBpZiAoIXJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKCkgfHwgIW1f
c2Vzc2lvbklELmlzRXBoZW1lcmFsKCkpIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFs
c2UpOwogICAgICAgICByZXR1cm47CkBAIC0xOTA3LDcgKzE5MDcsNyBAQCB2b2lkIFdlYnNpdGVE
YXRhU3RvcmU6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlKGJvb2wgZW5hYmxl
ZCkKICAgICBuZXR3b3JrUHJvY2VzcygpLnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdN
b2RlKGVuYWJsZWQpOwogfQogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykK
KyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKIHZvaWQgV2Vic2l0
ZURhdGFTdG9yZTo6bG9nVGVzdGluZ0V2ZW50KGNvbnN0IFN0cmluZyYgZXZlbnQpCiB7CiAgICAg
QVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKQEAgLTIwMTksNyArMjAxOSw3IEBAIFdlYnNpdGVE
YXRhU3RvcmVQYXJhbWV0ZXJzIFdlYnNpdGVEYXRhU3RvcmU6OnBhcmFtZXRlcnMoKQogICAgICAg
ICBXVEZNb3ZlKHByaXZhdGVDbGlja01lYXN1cmVtZW50U3RvcmFnZURpcmVjdG9yeSksCiAgICAg
ICAgIFdURk1vdmUocHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRTdG9yYWdlRGlyZWN0b3J5SGFuZGxl
KSwKICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoKSwKLSNpZiBFTkFCTEUo
UkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lO
R19QUkVWRU5USU9OKQogICAgICAgICBpc0l0cFN0YXRlRXhwbGljaXRseVNldCgpLAogICAgICAg
ICBoYXNTdGF0aXN0aWNzVGVzdGluZ0NhbGxiYWNrKCksCiAjZWxzZQpAQCAtMjAyOCw3ICsyMDI4
LDcgQEAgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMgV2Vic2l0ZURhdGFTdG9yZTo6cGFyYW1l
dGVycygpCiAjZW5kaWYKICAgICAgICAgc2hvdWxkSW5jbHVkZUxvY2FsaG9zdEluUmVzb3VyY2VM
b2FkU3RhdGlzdGljcywKICAgICAgICAgZW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVn
TW9kZSwKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJ
TlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgICAgICB0aGlyZFBhcnR5Q29va2ll
QmxvY2tpbmdNb2RlKCksCiAgICAgICAgIFdlYkNvcmU6OlNhbWVTaXRlU3RyaWN0RW5mb3JjZW1l
bnRFbmFibGVkOjpObywKICNlbmRpZgpAQCAtMjEwNSw3ICsyMTA1LDcgQEAgV2Vic2l0ZURhdGFT
dG9yZVBhcmFtZXRlcnMgV2Vic2l0ZURhdGFTdG9yZTo6cGFyYW1ldGVycygpCiAgICAgcGFyYW1l
dGVycy5wZXJPcmlnaW5TdG9yYWdlUXVvdGEgPSBwZXJPcmlnaW5TdG9yYWdlUXVvdGEoKTsKICAg
ICBwYXJhbWV0ZXJzLnBlclRoaXJkUGFydHlPcmlnaW5TdG9yYWdlUXVvdGEgPSBwZXJUaGlyZFBh
cnR5T3JpZ2luU3RvcmFnZVF1b3RhKCk7CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFU
SVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAg
IHBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NQYXJhbWV0ZXJzLmVuYWJsZWQgPSBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkOwog
I2VuZGlmCiAgICAgcGxhdGZvcm1TZXROZXR3b3JrUGFyYW1ldGVycyhwYXJhbWV0ZXJzKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmUuaAppbmRleCAxNjFjZGU2YTE3MWJjYjMwMWVkZDhiOWUzY2Q0YWUyNmJhZDUxZmI2Li5m
M2Q1YTI0ZTU5Y2ViNTE1YTJmNzc3YjBlZTBlZTA1MzY3NjAwN2VhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCkBA
IC05OCw3ICs5OCw3IEBAIHN0cnVjdCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvOwogc3Ry
dWN0IFdlYnNpdGVEYXRhUmVjb3JkOwogc3RydWN0IFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJz
OwogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5U
RUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKIGVudW0gY2xhc3MgU2hvdWxkR3JhbmRmYXRo
ZXJTdGF0aXN0aWNzIDogYm9vbDsKIGVudW0gY2xhc3MgU3RvcmFnZUFjY2Vzc1N0YXR1cyA6IHVp
bnQ4X3Q7CiBlbnVtIGNsYXNzIFN0b3JhZ2VBY2Nlc3NQcm9tcHRTdGF0dXM7CkBAIC0xNjAsNyAr
MTYwLDcgQEAgcHVibGljOgogICAgIGNvbnN0IFN0cmluZyYgY2FjaGVTdG9yYWdlRGlyZWN0b3J5
KCkgY29uc3QgeyByZXR1cm4gbV9yZXNvbHZlZENvbmZpZ3VyYXRpb24tPmNhY2hlU3RvcmFnZURp
cmVjdG9yeSgpOyB9CiAgICAgY29uc3QgU3RyaW5nJiBnZW5lcmFsU3RvcmFnZURpcmVjdG9yeSgp
IGNvbnN0IHsgcmV0dXJuIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLT5nZW5lcmFsU3RvcmFnZURp
cmVjdG9yeSgpOyB9CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lm
IEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIHZvaWQgY2xlYXJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzSW5XZWJQcm9jZXNzZXMoQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKTsKICNlbmRpZgogCkBAIC0xNzMsNyArMTczLDcgQEAgcHVibGljOgogICAgIHZvaWQg
c2V0U2VydmljZVdvcmtlclRpbWVvdXRGb3JUZXN0aW5nKFNlY29uZHMpOwogICAgIHZvaWQgcmVz
ZXRTZXJ2aWNlV29ya2VyVGltZW91dEZvclRlc3RpbmcoKTsKIAotI2lmIEVOQUJMRShSRVNPVVJD
RV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZF
TlRJT04pCiAgICAgdm9pZCBmZXRjaERhdGFGb3JSZWdpc3RyYWJsZURvbWFpbnMoT3B0aW9uU2V0
PFdlYnNpdGVEYXRhVHlwZT4sIE9wdGlvblNldDxXZWJzaXRlRGF0YUZldGNoT3B0aW9uPiwgVmVj
dG9yPFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluPiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFZlY3RvcjxXZWJzaXRlRGF0YVJlY29yZD4mJiwgSGFzaFNldDxXZWJDb3JlOjpSZWdpc3RyYWJs
ZURvbWFpbj4mJik+JiYpOwogICAgIHZvaWQgY2xlYXJQcmV2YWxlbnRSZXNvdXJjZShjb25zdCBV
UkwmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgY2xlYXJVc2VySW50
ZXJhY3Rpb24oY29uc3QgVVJMJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKQEAgLTQy
Miw3ICs0MjIsNyBAQCBwcml2YXRlOgogCiAgICAgY29uc3QgUmVmPERldmljZUlkSGFzaFNhbHRT
dG9yYWdlPiBtX2RldmljZUlkSGFzaFNhbHRTdG9yYWdlOwogCi0jaWYgRU5BQkxFKFJFU09VUkNF
X0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVO
VElPTikKICAgICBib29sIG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZSB7IGZhbHNl
IH07CiAgICAgYm9vbCBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkIHsgZmFsc2UgfTsK
ICAgICBGdW5jdGlvbjx2b2lkKGNvbnN0IFN0cmluZyYpPiBtX3N0YXRpc3RpY3NUZXN0aW5nQ2Fs
bGJhY2s7CkBAIC00NzIsNyArNDcyLDcgQEAgcHJpdmF0ZToKICNpZiBIQVZFKEFQUF9TU08pCiAg
ICAgVW5pcXVlUmVmPFNPQXV0aG9yaXphdGlvbkNvb3JkaW5hdG9yPiBtX3NvQXV0aG9yaXphdGlv
bkNvb3JkaW5hdG9yOwogI2VuZGlmCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElD
UykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBtdXRh
YmxlIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZT4g
bV90aGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlOyAvLyBMYXppbHkgY29tcHV0ZWQuCiAjZW5k
aWYKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDQ2YWRmY2I2YmI4YWQ3ODMzNzNhM2Rl
N2Y0MDBlMmE1NmIwMjg1NDEuLjhjZDE5MWMwMzY3NGM0MTVlOWJjZTlhOGNjNTg2Y2FkZTBkOTBh
NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC0xNDIzLDcgKzE0MjMsNyBAQCB2b2lkIFdl
YkNocm9tZUNsaWVudDo6ZGlkSW52YWxpZGF0ZURvY3VtZW50TWFya2VyUmVjdHMoKQogICAgIG1f
cGFnZS5maW5kQ29udHJvbGxlcigpLmRpZEludmFsaWRhdGVEb2N1bWVudE1hcmtlclJlY3RzKCk7
CiB9CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJ
TlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogdm9pZCBXZWJDaHJvbWVDbGllbnQ6Omhh
c1N0b3JhZ2VBY2Nlc3MoUmVnaXN0cmFibGVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgUmVnaXN0
cmFibGVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgRnJhbWUmIGZyYW1lLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGF1dG8qIHdlYkZy
YW1lID0gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoZnJhbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmlu
ZGV4IGE4NGQyYjgyNWYyNzE1OWM3MmQ1MjJlZTNkOTY5OTJmM2ZjM2VlMjIuLjNhMjE2MDVmNDNm
MDNmNTI2OTQyNDM3MDBjMzJiYjUwMmM2MWQ3ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTQw
Nyw3ICs0MDcsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBkaWRJbnZhbGlkYXRlRG9jdW1lbnRN
YXJrZXJSZWN0cygpIGZpbmFsOwogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElD
UykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICB2b2lk
IGhhc1N0b3JhZ2VBY2Nlc3MoV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiBzdWJGcmFtZURv
bWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgV2ViQ29y
ZTo6RnJhbWUmLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFsOwog
ICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4m
JiBzdWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiB0b3BGcmFtZURv
bWFpbiwgV2ViQ29yZTo6RnJhbWUmLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzU2NvcGUsIFdURjo6
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpSZXF1ZXN0U3RvcmFnZUFjY2Vzc1Jlc3Vs
dCk+JiYpIGZpbmFsOwogICAgIGJvb2wgaGFzUGFnZUxldmVsU3RvcmFnZUFjY2Vzcyhjb25zdCBX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYgdG9wTGV2ZWxEb21haW4sIGNvbnN0IFdlYkNvcmU6
OlJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJjZURvbWFpbikgY29uc3QgZmluYWw7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCBjZDNlNzFhMjY0MjdjYjUyNDNiMDY3OGVkZTQz
MDZmOGNiYzdiMTU5Li4wMDg4OWIwMGM4NTc5MzU5OGI3ZmUxMzMwZWYyOWQ4NmE3N2VlNDhmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTE0Myw3ICsxNDMsNyBAQCBzdGQ6
Om9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmZyYW1lSUQo
KSBjb25zdAogICAgIHJldHVybiBtX2ZyYW1lLT5mcmFtZUlEKCk7CiB9CiAKLSNpZiBFTkFCTEUo
UkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lO
R19QUkVWRU5USU9OKQogdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6c2V0SGFzRnJhbWVTcGVj
aWZpY1N0b3JhZ2VBY2Nlc3MoRnJhbWVTcGVjaWZpY1N0b3JhZ2VBY2Nlc3NJZGVudGlmaWVyJiYg
ZnJhbWVTcGVjaWZpY1N0b3JhZ2VBY2Nlc3NJZGVudGlmaWVyICkKIHsKICAgICBBU1NFUlQoIW1f
ZnJhbWVTcGVjaWZpY1N0b3JhZ2VBY2Nlc3NJZGVudGlmaWVyKTsKQEAgLTIwMiw3ICsyMDIsNyBA
QCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkZXRhY2hlZEZyb21QYXJlbnQyKCkKICAgICBp
ZiAoIXdlYlBhZ2UpCiAgICAgICAgIHJldHVybjsKIAotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FE
X1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04p
CiAgICAgaWYgKG1fZnJhbWVTcGVjaWZpY1N0b3JhZ2VBY2Nlc3NJZGVudGlmaWVyKSB7CiAgICAg
ICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
bigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6UmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKAogICAgICAgICAgICAgbV9mcmFtZVNw
ZWNpZmljU3RvcmFnZUFjY2Vzc0lkZW50aWZpZXItPmZyYW1lSUQsIG1fZnJhbWVTcGVjaWZpY1N0
b3JhZ2VBY2Nlc3NJZGVudGlmaWVyLT5wYWdlSUQpLCAwKTsKQEAgLTQyNiw3ICs0MjYsNyBAQCB2
b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZENoYW5nZU1haW5Eb2N1bWVudCgp
CiAKIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoV2lsbENoYW5nZURvY3VtZW50
KGNvbnN0IFVSTCYgY3VycmVudFVybCwgY29uc3QgVVJMJiBuZXdVcmwpCiB7Ci0jaWYgRU5BQkxF
KFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJ
TkdfUFJFVkVOVElPTikKICAgICBpZiAobV9mcmFtZS0+aXNNYWluRnJhbWUoKSkKICAgICAgICAg
cmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDMwNzYyMDAwZmNmMzMw
YjZiMmJkZjgwMjI1NjU3NzA2OTcwYjRhNDUuLjc3ZGE0MTE4ODIyNDhlMmMwZWJlZGMxN2Y3OGI0
M2NiODkwZDVhODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC01Miw3ICs1Miw3
IEBAIHB1YmxpYzoKICAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBw
YWdlSUQoKSBjb25zdCBmaW5hbDsKICAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllcj4gZnJhbWVJRCgpIGNvbnN0IGZpbmFsOwogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xP
QURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElP
TikKICAgICBib29sIGhhc0ZyYW1lU3BlY2lmaWNTdG9yYWdlQWNjZXNzKCkgZmluYWwgeyByZXR1
cm4gISFtX2ZyYW1lU3BlY2lmaWNTdG9yYWdlQWNjZXNzSWRlbnRpZmllcjsgfQogICAgIAogICAg
IHN0cnVjdCBGcmFtZVNwZWNpZmljU3RvcmFnZUFjY2Vzc0lkZW50aWZpZXIgewpAQCAtMjc3LDcg
KzI3Nyw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2ZyYW1lSGFzQ3VzdG9tQ29udGVudFByb3Zp
ZGVyIHsgZmFsc2UgfTsKICAgICBib29sIG1fZnJhbWVDYW1lRnJvbUJhY2tGb3J3YXJkQ2FjaGUg
eyBmYWxzZSB9OwogICAgIGJvb2wgbV91c2VJY29uTG9hZGluZ0NsaWVudCB7IGZhbHNlIH07Ci0j
aWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdF
TlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBzdGQ6Om9wdGlvbmFsPEZyYW1lU3BlY2lmaWNT
dG9yYWdlQWNjZXNzSWRlbnRpZmllcj4gbV9mcmFtZVNwZWNpZmljU3RvcmFnZUFjY2Vzc0lkZW50
aWZpZXI7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZE9ic2VydmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRPYnNlcnZlci5jcHAKaW5k
ZXggZjliNWMyYzI4MmU4NzljYzAxODUxOGNiYmNiMmY0MWRjN2RmYWE4My4uM2VmMTRkZDIzYjlj
N2FlYWI1YjA2OWRiYTE1ZTdiNTdhMTAyMTNiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZE9ic2VydmVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2Fk
T2JzZXJ2ZXIuY3BwCkBAIC0yNiw3ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiV2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaCIKIAotI2lmIEVOQUJMRShSRVNPVVJDRV9M
T0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJ
T04pCiAKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3NNZXNzYWdlcy5oIgpAQCAtNDQ1LDQgKzQ0NSw0IEBAIHZvaWQgV2ViUmVzb3Vy
Y2VMb2FkT2JzZXJ2ZXI6OnNldERvbWFpbnNXaXRoQ3Jvc3NQYWdlU3RvcmFnZUFjY2VzcyhIYXNo
TWFwPFRvcEZyCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCi0jZW5kaWYgLy8gRU5BQkxFKFJF
U09VUkNFX0xPQURfU1RBVElTVElDUykKKyNlbmRpZiAvLyBFTkFCTEUoSU5URUxMSUdFTlRfVFJB
Q0tJTkdfUFJFVkVOVElPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRPYnNlcnZlci5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZE9ic2VydmVyLmgKaW5kZXgg
NjhjOTYzNTQxM2VmMmI4ZWFkODk3YzNjZjE1ZGZiMWE0NjkzNWY4MC4uMzE4NGQ2ZWFkM2YxNDAw
ZDI5ZmUzMDU0ZWJmMTdiOTE1M2JlMzg1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZE9ic2VydmVyLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZE9ic2Vy
dmVyLmgKQEAgLTI1LDcgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpZiBFTkFCTEUoUkVT
T1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19Q
UkVWRU5USU9OKQogCiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlSWRlbnRpZmllci5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaD4KQEAgLTk2LDQgKzk2LDQgQEAgcHJp
dmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKLSNlbmRpZiAvLyBFTkFCTEUoUkVTT1VS
Q0VfTE9BRF9TVEFUSVNUSUNTKQorI2VuZGlmIC8vIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lO
R19QUkVWRU5USU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViQ29va2llSmFyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YkNvb2tpZUphci5jcHAKaW5kZXggNjMzODI4OTgzZWY3NzYzMjM5MmQwZGJjMmU0YTkwNDg5ZTM0
MGI5ZS4uOWFhYjA4MDAxNDBkZjI2MjBiMzYwZTBiYjhjOGM5MDRkODY5NzdlZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQ29va2llSmFyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb29raWVKYXIuY3BwCkBAIC01
Miw3ICs1Miw3IEBAIGNsYXNzIFdlYlN0b3JhZ2VTZXNzaW9uUHJvdmlkZXIgOiBwdWJsaWMgV2Vi
Q29yZTo6U3RvcmFnZVNlc3Npb25Qcm92aWRlciB7CiBXZWJDb29raWVKYXI6OldlYkNvb2tpZUph
cigpCiAgICAgOiBXZWJDb3JlOjpDb29raWVKYXIoYWRvcHRSZWYoKm5ldyBXZWJTdG9yYWdlU2Vz
c2lvblByb3ZpZGVyKSkgeyB9CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNT
KQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogc3RhdGljIGJv
b2wgc2hvdWxkQmxvY2tDb29raWVzKFdlYkZyYW1lKiBmcmFtZSwgY29uc3QgVVJMJiBmaXJzdFBh
cnR5Rm9yQ29va2llcywgY29uc3QgVVJMJiByZXNvdXJjZVVSTCwgU2hvdWxkQXNrSVRQJiBzaG91
bGRBc2tJVFBJbk5ldHdvcmtQcm9jZXNzKQogewogICAgIGlmICghV2ViQ29yZTo6RGVwcmVjYXRl
ZEdsb2JhbFNldHRpbmdzOjpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCgpKQpAQCAtMTMw
LDcgKzEzMCw3IEBAIFN0cmluZyBXZWJDb29raWVKYXI6OmNvb2tpZXMoV2ViQ29yZTo6RG9jdW1l
bnQmIGRvY3VtZW50LCBjb25zdCBVUkwmIHVybCkgY29uc3QKICAgICAgICAgcmV0dXJuIHsgfTsK
IAogICAgIFNob3VsZEFza0lUUCBzaG91bGRBc2tJVFBJbk5ldHdvcmtQcm9jZXNzID0gU2hvdWxk
QXNrSVRQOjpObzsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVO
QUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIGlmIChzaG91bGRCbG9j
a0Nvb2tpZXMod2ViRnJhbWUsIGRvY3VtZW50LmZpcnN0UGFydHlGb3JDb29raWVzKCksIHVybCwg
c2hvdWxkQXNrSVRQSW5OZXR3b3JrUHJvY2VzcykpCiAgICAgICAgIHJldHVybiB7IH07CiAjZW5k
aWYKQEAgLTE1OCw3ICsxNTgsNyBAQCB2b2lkIFdlYkNvb2tpZUphcjo6c2V0Q29va2llcyhXZWJD
b3JlOjpEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYgdXJsLCBjb25zdAogICAgICAgICBy
ZXR1cm47CiAKICAgICBTaG91bGRBc2tJVFAgc2hvdWxkQXNrSVRQSW5OZXR3b3JrUHJvY2VzcyA9
IFNob3VsZEFza0lUUDo6Tm87Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykK
KyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBpZiAoc2hv
dWxkQmxvY2tDb29raWVzKHdlYkZyYW1lLCBkb2N1bWVudC5maXJzdFBhcnR5Rm9yQ29va2llcygp
LCB1cmwsIHNob3VsZEFza0lUUEluTmV0d29ya1Byb2Nlc3MpKQogICAgICAgICByZXR1cm47CiAj
ZW5kaWYKQEAgLTIwNCw3ICsyMDQsNyBAQCBib29sIFdlYkNvb2tpZUphcjo6Y29va2llc0VuYWJs
ZWQoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50KSBjb25zdAogICAgIGlmICghd2ViRnJhbWUgfHwg
IXdlYkZyYW1lLT5wYWdlKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotI2lmIEVOQUJMRShS
RVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5H
X1BSRVZFTlRJT04pCiAgICAgU2hvdWxkQXNrSVRQIGR1bW15OwogICAgIGlmIChzaG91bGRCbG9j
a0Nvb2tpZXMod2ViRnJhbWUsIGRvY3VtZW50LmZpcnN0UGFydHlGb3JDb29raWVzKCksIGRvY3Vt
ZW50LmNvb2tpZVVSTCgpLCBkdW1teSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTIxNyw3
ICsyMTcsNyBAQCBzdGQ6OnBhaXI8U3RyaW5nLCBXZWJDb3JlOjpTZWN1cmVDb29raWVzQWNjZXNz
ZWQ+IFdlYkNvb2tpZUphcjo6Y29va2llUmVxdWVzdEhlYQogewogICAgIFNob3VsZEFza0lUUCBz
aG91bGRBc2tJVFBJbk5ldHdvcmtQcm9jZXNzID0gU2hvdWxkQXNrSVRQOjpObzsKICAgICBhdXRv
KiB3ZWJGcmFtZSA9IGZyYW1lSUQgPyBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZSgq
ZnJhbWVJRCkgOiBudWxscHRyOwotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1Mp
CisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgaWYgKHNo
b3VsZEJsb2NrQ29va2llcyh3ZWJGcmFtZSwgZmlyc3RQYXJ0eSwgdXJsLCBzaG91bGRBc2tJVFBJ
bk5ldHdvcmtQcm9jZXNzKSkKICAgICAgICAgcmV0dXJuIHsgfTsKICNlbmRpZgpAQCAtMjMzLDcg
KzIzMyw3IEBAIGJvb2wgV2ViQ29va2llSmFyOjpnZXRSYXdDb29raWVzKGNvbnN0IFdlYkNvcmU6
OkRvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgVVJMJiB1CiB7CiAgICAgYXV0byogd2ViRnJhbWUg
PSBkb2N1bWVudC5mcmFtZSgpID8gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoKmRvY3VtZW50LmZy
YW1lKCkpIDogbnVsbHB0cjsKICAgICBTaG91bGRBc2tJVFAgc2hvdWxkQXNrSVRQSW5OZXR3b3Jr
UHJvY2VzcyA9IFNob3VsZEFza0lUUDo6Tm87Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RB
VElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAg
ICBpZiAoc2hvdWxkQmxvY2tDb29raWVzKHdlYkZyYW1lLCBkb2N1bWVudC5maXJzdFBhcnR5Rm9y
Q29va2llcygpLCB1cmwsIHNob3VsZEFza0lUUEluTmV0d29ya1Byb2Nlc3MpKQogICAgICAgICBy
ZXR1cm4geyB9OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCmluZGV4IGU0NTRmOTYzNzZjZGRhOTJiZGIzM2ZmZGVkN2NlMGFmY2RjNDRiYmIu
LmYzZWE2ODJkOWMxZTEwYjU1NzVjOTEzMmJiZjA1YjhlMmYxMWQwMWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC02MzM1LDcgKzYzMzUsNyBA
QCB2b2lkIFdlYlBhZ2U6OmRpZENvbW1pdExvYWQoV2ViRnJhbWUqIGZyYW1lKQogICAgIG1fZWxl
bWVudHNQZW5kaW5nVGV4dFJlY29nbml0aW9uLmNsZWFyKCk7CiAjZW5kaWYKIAotI2lmIEVOQUJM
RShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNL
SU5HX1BSRVZFTlRJT04pCiAgICAgY2xlYXJMb2FkZWRTdWJyZXNvdXJjZURvbWFpbnMoKTsKICNl
bmRpZgogICAgIApAQCAtNzAxMiw3ICs3MDEyLDcgQEAgdm9pZCBXZWJQYWdlOjpmcmFtZUJlY2Ft
ZVJlbW90ZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgR2xvYmFsRnJhbWVJZGVudGlmaWVyJiYK
ICAgICAgICAgY2xvc2UoKTsKIH0KIAotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJ
Q1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiB2b2lkIFdl
YlBhZ2U6Omhhc1N0b3JhZ2VBY2Nlc3MoUmVnaXN0cmFibGVEb21haW4mJiBzdWJGcmFtZURvbWFp
biwgUmVnaXN0cmFibGVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgV2ViRnJhbWUmIGZyYW1lLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAg
IGlmIChoYXNQYWdlTGV2ZWxTdG9yYWdlQWNjZXNzKHRvcEZyYW1lRG9tYWluLCBzdWJGcmFtZURv
bWFpbikpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRl
eCAxZWMyODE3ZDM2OTdjMzZhM2EyMWFjNjE2MmU4N2YwOWMxYjg2YjgyLi5kNGY1NWE1YWU4YTlk
YzBmYTFiNWU0MGRmMDVhNzVhM2M3ZWE3MDU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xMjY4LDcgKzEyNjgsNyBAQCBwdWJsaWM6CiAKICAgICB2
b2lkIGZsdXNoUGVuZGluZ0VkaXRvclN0YXRlVXBkYXRlKCk7CiAKLSNpZiBFTkFCTEUoUkVTT1VS
Q0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVW
RU5USU9OKQogICAgIHZvaWQgaGFzU3RvcmFnZUFjY2VzcyhXZWJDb3JlOjpSZWdpc3RyYWJsZURv
bWFpbiYmIHN1YkZyYW1lRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIHRvcEZy
YW1lRG9tYWluLCBXZWJGcmFtZSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwog
ICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4m
JiBzdWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiB0b3BGcmFtZURv
bWFpbiwgV2ViRnJhbWUmLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzU2NvcGUsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoV2ViQ29yZTo6UmVxdWVzdFN0b3JhZ2VBY2Nlc3NSZXN1bHQpPiYmKTsKICAg
ICBib29sIGhhc1BhZ2VMZXZlbFN0b3JhZ2VBY2Nlc3MoY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFi
bGVEb21haW4mIHRvcExldmVsRG9tYWluLCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFp
biYgcmVzb3VyY2VEb21haW4pIGNvbnN0OwpAQCAtMjMyNyw3ICsyMzI3LDcgQEAgcHJpdmF0ZToK
ICAgICBXZWJDb3JlOjpUaW1lciBtX3RleHRBdXRvU2l6aW5nQWRqdXN0bWVudFRpbWVyOwogI2Vu
ZGlmCiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJ
TlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIEhhc2hNYXA8V2ViQ29yZTo6UmVn
aXN0cmFibGVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluPiBtX2RvbWFpbnNXaXRo
UGFnZUxldmVsU3RvcmFnZUFjY2VzczsKICAgICBIYXNoU2V0PFdlYkNvcmU6OlJlZ2lzdHJhYmxl
RG9tYWluPiBtX2xvYWRlZFN1YnJlc291cmNlRG9tYWluczsKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXgg
NTk2YjRmN2Y2MDIyZjVhYWUzNDNhNmUzZjAwOWY5Zjk2YmJlODk4NS4uMGM1OWM5MTMwZWEyNWI3
YmQ2MGI1ZTg0NWZkNWUzZTU1ZDBjZmE5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC01ODksNyArNTg5LDcgQEAg
R2VuZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50
aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUKIAogICAgIFNldENhblNob3dQbGFjZWhvbGRlcihzdHJ1
Y3QgV2ViQ29yZTo6RWxlbWVudENvbnRleHQgY29udGV4dCwgYm9vbCBjYW5TaG93UGxhY2Vob2xk
ZXIpCiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJ
TlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIFdhc0xvYWRlZFdpdGhEYXRhVHJh
bnNmZXJGcm9tUHJldmFsZW50UmVzb3VyY2UoKQogICAgIENsZWFyTG9hZGVkU3VicmVzb3VyY2VE
b21haW5zKCkKICAgICBHZXRMb2FkZWRTdWJyZXNvdXJjZURvbWFpbnMoKSAtPiAoVmVjdG9yPFdl
YkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluPiBkb21haW5zKSBBc3luYwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IDM4YjQ0NDU0MmEyM2I1NzY0OTM0YmE5OGUyZTRk
ZWIzNjA1NTM1ODEuLjZiM2I1NGIzODc2MTllOTFlM2ZlMjU0ZmI2YjI5MWRhY2YxYTZlZTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTU1MSw3ICs1NTEsNyBA
QCB2b2lkIFdlYlByb2Nlc3M6OmluaXRpYWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogICAgIEpTQzo6V2FzbTo6ZW5hYmxlRmFzdE1lbW9y
eSgpOwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKSAmJiAh
UkVMRUFTRV9MT0dfRElTQUJMRUQKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJF
VkVOVElPTikgJiYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgV2ViUmVzb3VyY2VMb2FkT2Jz
ZXJ2ZXI6OnNldFNob3VsZExvZ1VzZXJJbnRlcmFjdGlvbihwYXJhbWV0ZXJzLnNob3VsZExvZ1Vz
ZXJJbnRlcmFjdGlvbik7CiAjZW5kaWYKIApAQCAtNTg2LDcgKzU4Niw3IEBAIHZvaWQgV2ViUHJv
Y2Vzczo6c2V0V2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMoV2ViUHJvY2Vzc0RhdGFTdG9yZVBh
cmFtZXRlcnMmJiBwCiAKICAgICBzZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChwYXJh
bWV0ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKTsKIAotI2lmIEVOQUJMRShSRVNP
VVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BS
RVZFTlRJT04pCiAgICAgbV90aGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlID0gcGFyYW1ldGVy
cy50aGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlOwogICAgIGlmIChwYXJhbWV0ZXJzLnJlc291
cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKSB7CiAgICAgICAgIGlmICghUmVzb3VyY2VMb2FkT2Jz
ZXJ2ZXI6OnNoYXJlZElmRXhpc3RzKCkpCkBAIC0xNjg1LDcgKzE2ODUsNyBAQCB2b2lkIFdlYlBy
b2Nlc3M6OnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGJvb2wgZW5hYmxlZCkKICAg
ICBpZiAoV2ViQ29yZTo6RGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzOjpyZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRW5hYmxlZCgpID09IGVuYWJsZWQpCiAgICAgICAgIHJldHVybjsKICAgICBXZWJDb3Jl
OjpEZXByZWNhdGVkR2xvYmFsU2V0dGluZ3M6OnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFi
bGVkKGVuYWJsZWQpOwotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYg
RU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgaWYgKGVuYWJsZWQg
JiYgIVJlc291cmNlTG9hZE9ic2VydmVyOjpzaGFyZWRJZkV4aXN0cygpKQogICAgICAgICBXZWJD
b3JlOjpSZXNvdXJjZUxvYWRPYnNlcnZlcjo6c2V0U2hhcmVkKCpuZXcgV2ViUmVzb3VyY2VMb2Fk
T2JzZXJ2ZXIobV9zZXNzaW9uSUQgJiYgbV9zZXNzaW9uSUQtPmlzRXBoZW1lcmFsKCkgPyBXZWJD
b3JlOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOjpJc0VwaGVtZXJhbDo6WWVzIDogV2ViQ29yZTo6
UmVzb3VyY2VMb2FkU3RhdGlzdGljczo6SXNFcGhlbWVyYWw6Ok5vKSk7CiAjZW5kaWYKQEAgLTE2
OTMsNyArMTY5Myw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0VuYWJsZWQoYm9vbCBlbmFibGVkKQogCiB2b2lkIFdlYlByb2Nlc3M6OmNsZWFyUmVzb3VyY2VM
b2FkU3RhdGlzdGljcygpCiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykK
KyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBpZiAoYXV0
byogb2JzZXJ2ZXIgPSBSZXNvdXJjZUxvYWRPYnNlcnZlcjo6c2hhcmVkSWZFeGlzdHMoKSkKICAg
ICAgICAgb2JzZXJ2ZXItPmNsZWFyU3RhdGUoKTsKICAgICBmb3IgKGF1dG8mIHBhZ2UgOiBtX3Bh
Z2VNYXAudmFsdWVzKCkpCkBAIC0xNzAzLDcgKzE3MDMsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OmNs
ZWFyUmVzb3VyY2VMb2FkU3RhdGlzdGljcygpCiAKIHZvaWQgV2ViUHJvY2Vzczo6Zmx1c2hSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzKCkKIHsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNU
SUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIGlm
IChhdXRvKiBvYnNlcnZlciA9IFJlc291cmNlTG9hZE9ic2VydmVyOjpzaGFyZWRJZkV4aXN0cygp
KQogICAgICAgICBvYnNlcnZlci0+dXBkYXRlQ2VudHJhbFN0YXRpc3RpY3NTdG9yZShbXSB7IH0p
OwogI2VuZGlmCkBAIC0xNzExLDcgKzE3MTEsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OmZsdXNoUmVz
b3VyY2VMb2FkU3RhdGlzdGljcygpCiAKIHZvaWQgV2ViUHJvY2Vzczo6c2VlZFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NGb3JUZXN0aW5nKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmaXJzdFBhcnR5
RG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdGhpcmRQYXJ0eURvbWFpbiwgYm9vbCBz
aG91bGRTY2hlZHVsZU5vdGlmaWNhdGlvbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQogewotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1Mp
CisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgaWYgKGF1
dG8qIG9ic2VydmVyID0gUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OnNoYXJlZElmRXhpc3RzKCkpCiAg
ICAgICAgIG9ic2VydmVyLT5sb2dTdWJyZXNvdXJjZUxvYWRpbmdGb3JUZXN0aW5nKGZpcnN0UGFy
dHlEb21haW4sIHRoaXJkUGFydHlEb21haW4sIHNob3VsZFNjaGVkdWxlTm90aWZpY2F0aW9uKTsK
ICNlbmRpZgpAQCAtMjAxNSw3ICsyMDE1LDcgQEAgdm9pZCBXZWJQcm9jZXNzOjpkaXNwbGF5V2Fz
UmVmcmVzaGVkKHVpbnQzMl90IGRpc3BsYXlJRCwgY29uc3QgRGlzcGxheVVwZGF0ZSYgZGkKIH0K
ICNlbmRpZgogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFC
TEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKIHZvaWQgV2ViUHJvY2Vzczo6c2V0
VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZShUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2Rl
IHRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBtX3RoaXJkUGFydHlDb29raWVCbG9ja2luZ01v
ZGUgPSB0aGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLmgKaW5kZXggMjBkMzlmYzU3MTQxYjk4MGQ5YWUxYTk5MjU3MTNlY2QyOWM3NGQx
OC4uMGQ5NjE4MWY0NDhjNGQyOTYwZjVjMDUyY2M3YmMwY2NkMGVlZjhhZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC0xOTgsNyArMTk4LDcgQEAgcHVibGljOgogICAg
IAogICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IHsgQVNTRVJUKG1fc2Vzc2lv
bklEKTsgcmV0dXJuICptX3Nlc3Npb25JRDsgfQogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURf
U1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikK
ICAgICBXZWJDb3JlOjpUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlIHRoaXJkUGFydHlDb29r
aWVCbG9ja2luZ01vZGUoKSBjb25zdCB7IHJldHVybiBtX3RoaXJkUGFydHlDb29raWVCbG9ja2lu
Z01vZGU7IH0KICNlbmRpZgogCkBAIC01MjQsNyArNTI0LDcgQEAgcHJpdmF0ZToKIAogI2VuZGlm
CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRF
TExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIHZvaWQgc2V0VGhpcmRQYXJ0eUNvb2tp
ZUJsb2NraW5nTW9kZShXZWJDb3JlOjpUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0RG9tYWluc1dpdGhVc2VySW50
ZXJhY3Rpb24oSGFzaFNldDxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4mJik7CiAgICAgdm9p
ZCBzZXREb21haW5zV2l0aENyb3NzUGFnZVN0b3JhZ2VBY2Nlc3MoSGFzaE1hcDxUb3BGcmFtZURv
bWFpbiwgU3ViUmVzb3VyY2VEb21haW4+JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7
CkBAIC03NDQsNyArNzQ0LDcgQEAgcHJpdmF0ZToKICAgICAvLyBCeSB0aGUgdGltZSB0aGUgV2Vi
UHJvY2VzcyBnZXRzIGEgV2ViUGFnZSwgaXQgaXMgZ3VhcmFudGVlZCB0byBoYXZlIGEgc2Vzc2lv
bklELgogICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpTZXNzaW9uSUQ+IG1fc2Vzc2lvbklEOwogCi0j
aWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdF
TlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBXZWJDb3JlOjpUaGlyZFBhcnR5Q29va2llQmxv
Y2tpbmdNb2RlIG1fdGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZSB7IFdlYkNvcmU6OlRoaXJk
UGFydHlDb29raWVCbG9ja2luZ01vZGU6OkFsbCB9OwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggZmM1MTg5OTMyMDU2
YjMzMWJjNGU0ZDY2MGE5NjliMDUxZWIyMTkxMS4uZjU3NmYwNzZmNDIxMjIzOGFlNTgwZTk4OGU0
ZmIwNDdhOGEyZDhjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MubWVzc2FnZXMuaW4KQEAgLTE1OSw3ICsxNTksNyBAQCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNz
IExlZ2FjeVJlY2VpdmVyIE5vdFJlZkNvdW50ZWQgewogICAgIFNlbmRNZXNzYWdlVG9XZWJFeHRl
bnNpb24oc3RydWN0IFdlYktpdDo6VXNlck1lc3NhZ2UgdXNlck1lc3NhZ2UpCiAjZW5kaWYKIAot
I2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElH
RU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgU2VlZFJlc291cmNlTG9hZFN0YXRpc3RpY3NG
b3JUZXN0aW5nKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIGZpcnN0UGFydHlEb21haW4sIFdl
YkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRoaXJkUGFydHlEb21haW4sIGJvb2wgc2hvdWxkU2No
ZWR1bGVOb3RpZmljYXRpb24pIC0+ICgpIEFzeW5jCiAgICAgU2V0VGhpcmRQYXJ0eUNvb2tpZUJs
b2NraW5nTW9kZShlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5n
TW9kZSBibG9ja2luZ01vZGUpIC0+ICgpIEFzeW5jCiAgICAgU2V0RG9tYWluc1dpdGhVc2VySW50
ZXJhY3Rpb24oSGFzaFNldDxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4gZG9tYWlucykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9PcHRpb25zRlRXLmNtYWtlIGIvU291cmNlL2NtYWtlL09w
dGlvbnNGVFcuY21ha2UKaW5kZXggNTM5YmRlMWI5ZDIxYzEzMzUwNGY3YTY3MTg5OTAzOTM1OGIx
MjZhNC4uMDdjOGI4OGQ3YWYyNjlhMzAxZTVlODFlYWNlNWQ5ZDY2NDFkNzM2ZSAxMDA2NDQKLS0t
IGEvU291cmNlL2NtYWtlL09wdGlvbnNGVFcuY21ha2UKKysrIGIvU291cmNlL2NtYWtlL09wdGlv
bnNGVFcuY21ha2UKQEAgLTE0Nyw3ICsxNDcsNyBAQCBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9S
VF9WQUxVRShFTkFCTEVfTk9USUZJQ0FUSU9OUyBQUklWQVRFIE9GRikKIFdFQktJVF9PUFRJT05f
REVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9PVkVSRkxPV19TQ1JPTExJTkdfVE9VQ0ggUFJJVkFU
RSBPRkYpCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfUERGS0lUX1BM
VUdJTiBQUklWQVRFIE9GRikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJM
RV9QT0lOVEVSX0xPQ0sgUFJJVkFURSBPRkYpCi1XRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9W
QUxVRShFTkFCTEVfUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTIFBSSVZBVEUgT0ZGKQorV0VCS0lU
X09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0lOVEVMTElHRU5UX1RSQUNLSU5HX1BS
RVZFTlRJT04gUFJJVkFURSBPRkYpCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShF
TkFCTEVfUkVTT1VSQ0VfVVNBR0UgUFJJVkFURSBPRkYpCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRf
UE9SVF9WQUxVRShFTkFCTEVfUlVCQkVSX0JBTkRJTkcgUFJJVkFURSBPRkYpCiBXRUJLSVRfT1BU
SU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfU0FOREJPWF9FWFRFTlNJT05TIFBSSVZBVEUg
T0ZGKQpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL09wdGlvbnNHVEsuY21ha2UgYi9Tb3VyY2Uv
Y21ha2UvT3B0aW9uc0dUSy5jbWFrZQppbmRleCAwNTI4YTQ5YTNjZmRkZjEyYjcyZGM5MzA5NzAy
NDNhMDRkMzczNDdhLi4xODFhOTNhZDhlNTRjMTVhNzM2NjMwZmQzYzQ3YzQzOGM1YTk5NTg1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvT3B0aW9uc0dUSy5jbWFrZQorKysgYi9Tb3VyY2UvY21h
a2UvT3B0aW9uc0dUSy5jbWFrZQpAQCAtMTY2LDcgKzE2Niw3IEBAIFdFQktJVF9PUFRJT05fREVG
QVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9PRkZTQ1JFRU5fQ0FOVkFTX0lOX1dPUktFUlMgUFJJVkFU
RSAke0VOCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfVEhVTkRFUiBQ
UklWQVRFIE9GRikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9QRVJJ
T0RJQ19NRU1PUllfTU9OSVRPUiBQUklWQVRFIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BP
UlRfVkFMVUUoRU5BQkxFX1BPSU5URVJfTE9DSyBQUklWQVRFIE9OKQotV0VCS0lUX09QVElPTl9E
RUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1JFU09VUkNFX0xPQURfU1RBVElTVElDUyBQUklWQVRF
IE9OKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0lOVEVMTElHRU5U
X1RSQUNLSU5HX1BSRVZFTlRJT04gUFJJVkFURSBPTikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9Q
T1JUX1ZBTFVFKEVOQUJMRV9TRVJWSUNFX1dPUktFUiBQUklWQVRFIE9OKQogV0VCS0lUX09QVElP
Tl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1NIQVJFQUJMRV9SRVNPVVJDRSBQUklWQVRFIE9O
KQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1dFQl9BUElfU1RBVElT
VElDUyBQUklWQVRFIE9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL09wdGlvbnNNYWMuY21h
a2UgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc01hYy5jbWFrZQppbmRleCAzZmJhNmQzYTAxYTk3ZWVl
NmExYzNjNTRhNTJiODBmMmY4ZjlmNTI3Li42YjMwNmQxNjRmYmRmMjJkYzk2NWY5ZjE3NTAyZDFj
YTUwMGRiNzY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvT3B0aW9uc01hYy5jbWFrZQorKysg
Yi9Tb3VyY2UvY21ha2UvT3B0aW9uc01hYy5jbWFrZQpAQCAtNzIsNyArNzIsNyBAQCBXRUJLSVRf
T1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfUE9JTlRFUl9MT0NLIFBSSVZBVEUgT04p
CiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfUFVCTElDX1NVRkZJWF9M
SVNUIFBSSVZBVEUgT04pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVf
UkVNT1RFX0lOU1BFQ1RPUiBQUklWQVRFIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRf
VkFMVUUoRU5BQkxFX1JFU0laRV9PQlNFUlZFUiBQUklWQVRFIE9OKQotV0VCS0lUX09QVElPTl9E
RUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1JFU09VUkNFX0xPQURfU1RBVElTVElDUyBQUklWQVRF
IE9OKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0lOVEVMTElHRU5U
X1RSQUNLSU5HX1BSRVZFTlRJT04gUFJJVkFURSBPTikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9Q
T1JUX1ZBTFVFKEVOQUJMRV9SRVNPVVJDRV9VU0FHRSBQUklWQVRFIE9OKQogV0VCS0lUX09QVElP
Tl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1JVQkJFUl9CQU5ESU5HIFBSSVZBVEUgT04pCiBX
RUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfU0FOREJPWF9FWFRFTlNJT05T
IFBSSVZBVEUgT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvT3B0aW9uc1BsYXlTdGF0aW9u
LmNtYWtlIGIvU291cmNlL2NtYWtlL09wdGlvbnNQbGF5U3RhdGlvbi5jbWFrZQppbmRleCAwNzRk
NjNhNTVlZTE2N2M1ZWU1YTJjNGM5ZWRhYzYxOWUwYjNhZDIxLi5hNzIyNjA5MmRiMDkxMThiNjkw
ZjdkNjc0NjNhOWI0MTFlZWY2ODJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvT3B0aW9uc1Bs
YXlTdGF0aW9uLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zUGxheVN0YXRpb24uY21h
a2UKQEAgLTQyLDcgKzQyLDcgQEAgV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5B
QkxFX0FTWU5DX1NDUk9MTElORyBQUklWQVRFIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BP
UlRfVkFMVUUoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJIFBSSVZBVEUgT04pCiBXRUJLSVRfT1BUSU9O
X0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfUEVSSU9ESUNfTUVNT1JZX01PTklUT1IgUFJJVkFU
RSBPTikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9TTU9PVEhfU0NS
T0xMSU5HIFBSSVZBVEUgT04pCi1XRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFC
TEVfUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTIFBSSVZBVEUgT04pCitXRUJLSVRfT1BUSU9OX0RF
RkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTiBQ
UklWQVRFIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1JFU09V
UkNFX1VTQUdFIFBSSVZBVEUgT04pCiAKICMgRXhwZXJpbWVudGFsIGZlYXR1cmVzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvY21ha2UvT3B0aW9uc1dQRS5jbWFrZSBiL1NvdXJjZS9jbWFrZS9PcHRpb25z
V1BFLmNtYWtlCmluZGV4IDBkNGI4ZjlhZDY2ODA1YTQ2YjAzYWQzMmFjNmFhMjlmNWZkZGJiM2Iu
LjdhNTVlMTU3ZWNmZjdjNWQyYzE1MGYwOWEyYzM5NjU1MDA3ZDY4YTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9jbWFrZS9PcHRpb25zV1BFLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zV1BF
LmNtYWtlCkBAIC02MSw3ICs2MSw3IEBAIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVF
KEVOQUJMRV9ORVRXT1JLX0NBQ0hFX1NUQUxFX1dISUxFX1JFVkFMSURBVEUgUFJJCiBXRUJLSVRf
T1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfT0ZGU0NSRUVOX0NBTlZBUyBQUklWQVRF
ICR7RU5BQkxFX0VYUEVSSU1FTlRBTF9GRUFUVVJFU30pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRf
UE9SVF9WQUxVRShFTkFCTEVfT0ZGU0NSRUVOX0NBTlZBU19JTl9XT1JLRVJTIFBSSVZBVEUgJHtF
TkFCTEVfRVhQRVJJTUVOVEFMX0ZFQVRVUkVTfSkKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JU
X1ZBTFVFKEVOQUJMRV9QRVJJT0RJQ19NRU1PUllfTU9OSVRPUiBQUklWQVRFIE9OKQotV0VCS0lU
X09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1JFU09VUkNFX0xPQURfU1RBVElTVElD
UyBQUklWQVRFIE9OKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0lO
VEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04gUFJJVkFURSBPTikKIFdFQktJVF9PUFRJT05f
REVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9TRVJWSUNFX1dPUktFUiBQUklWQVRFIE9OKQogV0VC
S0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1NIQVJFQUJMRV9SRVNPVVJDRSBQ
UklWQVRFIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1NNT09U
SF9TQ1JPTExJTkcgUFJJVkFURSBPRkYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvT3B0aW9u
c1dpbi5jbWFrZSBiL1NvdXJjZS9jbWFrZS9PcHRpb25zV2luLmNtYWtlCmluZGV4IDY3YjQyNmU1
OGM3NDA5ZjY2ODg5ZWQxZDgzNWFmNjYzNmFkMjc2NDIuLmI4YTY2MzQzODYyN2VjNTI3MWFkZmQy
YmRkNDNjYjk4MjZjN2NjZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9PcHRpb25zV2luLmNt
YWtlCisrKyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zV2luLmNtYWtlCkBAIC03OSw3ICs3OSw3IEBA
IGlmICgke1dURl9QTEFURk9STV9XSU5fQ0FJUk99KQogICAgIFdFQktJVF9PUFRJT05fREVGQVVM
VF9QT1JUX1ZBTFVFKEVOQUJMRV9HUFVfUFJPQ0VTUyBQUklWQVRFICR7RU5BQkxFX0VYUEVSSU1F
TlRBTF9GRUFUVVJFU30pCiAgICAgV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5B
QkxFX0xBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQgUFJJVkFURSAke0VOQUJMRV9FWFBFUklNRU5U
QUxfRkVBVFVSRVN9KQogICAgIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJM
RV9SRU1PVEVfSU5TUEVDVE9SIFBSSVZBVEUgJHtFTkFCTEVfRVhQRVJJTUVOVEFMX0ZFQVRVUkVT
fSkKLSAgICBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfUkVTT1VSQ0Vf
TE9BRF9TVEFUSVNUSUNTIFBSSVZBVEUgJHtFTkFCTEVfRVhQRVJJTUVOVEFMX0ZFQVRVUkVTfSkK
KyAgICBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfSU5URUxMSUdFTlRf
VFJBQ0tJTkdfUFJFVkVOVElPTiBQUklWQVRFICR7RU5BQkxFX0VYUEVSSU1FTlRBTF9GRUFUVVJF
U30pCiAgICAgV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1JFU09VUkNF
X1VTQUdFIFBSSVZBVEUgJHtFTkFCTEVfRVhQRVJJTUVOVEFMX0ZFQVRVUkVTfSkKICAgICBXRUJL
SVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfU0VSVklDRV9XT1JLRVIgUFJJVkFU
RSAke0VOQUJMRV9FWFBFUklNRU5UQUxfRkVBVFVSRVN9KQogICAgIFdFQktJVF9PUFRJT05fREVG
QVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9WQVJJQVRJT05fRk9OVFMgUFJJVkFURSAke0VOQUJMRV9F
WFBFUklNRU5UQUxfRkVBVFVSRVN9KQpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL1dlYktpdEZl
YXR1cmVzLmNtYWtlIGIvU291cmNlL2NtYWtlL1dlYktpdEZlYXR1cmVzLmNtYWtlCmluZGV4IDI5
MWUzOTVjOWMxNmVhMDdjNzEwNWFhZDVjMDI3Y2QzYjZjZTgyYjEuLjhjMTA3OWJlZmY3NWY1OTk1
MmVhYWM0NTFiYTBhZjQ4YWQ1OTI2NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9XZWJLaXRG
ZWF0dXJlcy5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2UvV2ViS2l0RmVhdHVyZXMuY21ha2UKQEAg
LTE5Nyw3ICsxOTcsNyBAQCBtYWNybyhXRUJLSVRfT1BUSU9OX0JFR0lOKQogICAgIFdFQktJVF9P
UFRJT05fREVGSU5FKEVOQUJMRV9QVUJMSUNfU1VGRklYX0xJU1QgIlRvZ2dsZSBwdWJsaWMgc3Vm
Zml4IGxpc3Qgc3VwcG9ydCIgUFJJVkFURSBPTikKICAgICBXRUJLSVRfT1BUSU9OX0RFRklORShF
TkFCTEVfUkVNT1RFX0lOU1BFQ1RPUiAiVG9nZ2xlIHJlbW90ZSBpbnNwZWN0b3Igc3VwcG9ydCIg
UFJJVkFURSBPTikKICAgICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfUkVTSVpFX09CU0VS
VkVSICJUb2dnbGUgUmVzaXplIE9ic2VydmVyIHN1cHBvcnQiIFBSSVZBVEUgT04pCi0gICAgV0VC
S0lUX09QVElPTl9ERUZJTkUoRU5BQkxFX1JFU09VUkNFX0xPQURfU1RBVElTVElDUyAiVG9nZ2xl
IHJlc291cmNlIGxvYWQgc3RhdGlzdGljcyBzdXBwb3J0IiBQUklWQVRFIE9GRikKKyAgICBXRUJL
SVRfT1BUSU9OX0RFRklORShFTkFCTEVfSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTiAi
VG9nZ2xlIHJlc291cmNlIGxvYWQgc3RhdGlzdGljcyBzdXBwb3J0IiBQUklWQVRFIE9GRikKICAg
ICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfUkVTT1VSQ0VfVVNBR0UgIlRvZ2dsZSByZXNv
dXJjZSB1c2FnZSBzdXBwb3J0IiBQUklWQVRFIE9GRikKICAgICBXRUJLSVRfT1BUSU9OX0RFRklO
RShFTkFCTEVfUlVCQkVSX0JBTkRJTkcgIlRvZ2dsZSBydWJiZXIgYmFuZGluZyBzdXBwb3J0IiBQ
UklWQVRFIE9GRikKICAgICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfU0FNUExJTkdfUFJP
RklMRVIgIlRvZ2dsZSBzYW1wbGluZyBwcm9maWxlciBzdXBwb3J0IiBQUklWQVRFICR7RU5BQkxF
X1NBTVBMSU5HX1BST0ZJTEVSX0RFRkFVTFR9KQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9n
IGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDVmYTEwNzc0ODkxNGVkOTQxYWFiZDE2NzNhZDk5MWI0
OTg1MTRhZDMuLjgxNTM5ODAzZTRhYmE3MGQ3MGQxMTlmYTg4NWNkNDU0ZDZiYTAwYjkgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MyBAQAorMjAyMS0wOS0xNCAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNvbT4KKwor
ICAgICAgICBSZW5hbWUgUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTIHRvIElOVEVMTElHRU5UX1RS
QUNLSU5HX1BSRVZFTlRJT04KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzMDI3OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODMxMTg2ODM+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL0lQQ1Rlc3RpbmdBUEkubW06CisKIDIwMjEtMDktMTQgIEpv
bmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAgICAgICAgIFtnaXQtd2Via2l0
XSBSZXNldCBhdXRob3IgdGltZSB3aGVuIGVkaXRpbmcgY29tbWl0cyAoUGFydCAxKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JUENUZXN0aW5nQVBJ
Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JUENUZXN0aW5nQVBJ
Lm1tCmluZGV4IDVmNGM4M2FiYzk0NTAyYjE5NjVkYTc4ZmVhYTBiMGZjZmMxNDZkNzcuLjVhYTli
YjdiMzBhMTdjYTYzMjNlZGI2YmRkZWZjZTJhYTE4NWQ4OWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSVBDVGVzdGluZ0FQSS5tbQorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0lQQ1Rlc3RpbmdBUEkubW0KQEAgLTQz
OSw3ICs0MzksNyBAQCBURVNUKElQQ1Rlc3RpbmdBUEksIERlY29kZXNSZXBseUFyZ3VtZW50c0Zv
clByb21wdCkKICAgICBFWFBFQ1RfU1RSRVEoW1t3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0ph
dmFTY3JpcHQ6QCJKU09OLnN0cmluZ2lmeShyZXN1bHQuYXJndW1lbnRzKSJdIFVURjhTdHJpbmdd
LCAiW3tcInR5cGVcIjpcIlN0cmluZ1wiLFwidmFsdWVcIjpcImZvb1wifV0iKTsKIH0KIAotI2lm
IEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5U
X1RSQUNLSU5HX1BSRVZFTlRJT04pCiBURVNUKElQQ1Rlc3RpbmdBUEksIERlY29kZXNSZXBseUFy
Z3VtZW50c0ZvckFzeW5jTWVzc2FnZSkKIHsKICAgICBhdXRvIHdlYlZpZXcgPSBjcmVhdGVXZWJW
aWV3V2l0aElQQ1Rlc3RpbmdBUEkoKTsKQEAgLTUwMSw3ICs1MDEsNyBAQCBURVNUKElQQ1Rlc3Rp
bmdBUEksIENhbkludGVyY2VwdEFsZXJ0KQogICAgICAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1
YXRpbmdKYXZhU2NyaXB0OkAiSVBDLndlYlBhZ2VQcm94eUlELnRvU3RyaW5nKCkiXS5pbnRWYWx1
ZSk7CiB9CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJM
RShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogVEVTVChJUENUZXN0aW5nQVBJLCBD
YW5JbnRlcmNlcHRIYXNTdG9yYWdlQWNjZXNzKQogewogICAgIGF1dG8gd2ViVmlldyA9IGNyZWF0
ZVdlYlZpZXdXaXRoSVBDVGVzdGluZ0FQSSgpOwpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hh
bmdlTG9nCmluZGV4IDhhMGE2YTA0MTExZmEzNjUwOWE3MDE1ZDcwNmI1NGQ0MjQ3MDU3MzQuLjBl
YmNmNGQ1ODBjYjk5MzVhMzBkZWNmYTc5ZjM5NTA5ZGVjMzYzNzEgMTAwNjQ0Ci0tLSBhL0NoYW5n
ZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAyMS0wOS0xNCAgSm9obiBX
aWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNvbT4KKworICAgICAgICBSZW5hbWUgUkVTT1VSQ0Vf
TE9BRF9TVEFUSVNUSUNTIHRvIElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDI3OQorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vODMxMTg2ODM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBTb3VyY2UvY21ha2UvT3B0aW9uc0ZUVy5jbWFrZToKKyAg
ICAgICAgKiBTb3VyY2UvY21ha2UvT3B0aW9uc0dUSy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2Uv
Y21ha2UvT3B0aW9uc01hYy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2UvY21ha2UvT3B0aW9uc1Bs
YXlTdGF0aW9uLmNtYWtlOgorICAgICAgICAqIFNvdXJjZS9jbWFrZS9PcHRpb25zV1BFLmNtYWtl
OgorICAgICAgICAqIFNvdXJjZS9jbWFrZS9PcHRpb25zV2luLmNtYWtlOgorICAgICAgICAqIFNv
dXJjZS9jbWFrZS9XZWJLaXRGZWF0dXJlcy5jbWFrZToKKwogMjAyMS0wOS0xMyAgU2FtIFNuZWRk
b24gIDxnc25lZGRlcnNAYXBwbGUuY29tPgogCiAgICAgICAgIE1vdmUgRU5BQkxFX1JFU09MVVRJ
T05fTUVESUFfUVVFUlkgdG8gYSBydW50aW1lIGZsYWcsIHN0YXJ0IHJ1bm5pbmcgdGVzdHMgYWdh
aW4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438192</attachid>
            <date>2021-09-14 17:15:35 -0700</date>
            <delta_ts>2021-09-14 18:13:55 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-230279-20210914171535.patch</filename>
            <type>text/plain</type>
            <size>190552</size>
            <attacher name="John Wilander">wilander</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyNDA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGY0YjQ0Y2ZjZDc4ZmMwMDIzOWRmODk4
ODE3OWFjZmI0Nzg3NzAzMmMuLjE1ODdlZjE1NjBjZDkzNTg3NzRkN2FhZjgyZTEyY2Y3YWRjOTk3
ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMDktMTQgIEpvaG4gV2lsYW5kZXIgIDx3aWxh
bmRlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIFJFU09VUkNFX0xPQURfU1RBVElTVElD
UyB0byBJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzAyNzkKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzgzMTE4NjgzPgorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAg
ICAgICogd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaDoKKwogMjAyMS0wOS0xNCAgRnVqaWkgSGly
b25vcmkgIDxIaXJvbm9yaS5GdWppaUBzb255LmNvbT4KIAogICAgICAgICBTdGFja1RyYWNlIG91
dHB1dHMgYSBnYXJiYWdlIHByZWZpeCBiZWNhdXNlIFdURjo6U3RhY2tUcmFjZTo6bV9wcmVmaXgg
aXMgZmlsbGVkIHdpdGggdGhlIHN0YWNrIGNvbnRlbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxZTQ0MjM3ZWJk
YWUxZThjOWFkYzgwYjY1NWEwNDg1ZTVjNzE2NDA1Li41ZTcyNDJiNTllZmUxNzg3OGEyZjUyZjJk
NTJmOWE3OTI3ODU4OWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTQgQEAKKzIwMjEtMDktMTQg
IEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIFJF
U09VUkNFX0xPQURfU1RBVElTVElDUyB0byBJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9O
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzAyNzkK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzMTE4NjgzPgorCisgICAgICAgIFJldmlld2VkIGJ5
IERhcmluIEFkbGVyLgorCisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXQ6OmNvbm5lY3QpOgorICAgICAgICAqIGRv
bS9Ccm9hZGNhc3RDaGFubmVsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNob3VsZFBhcnRpdGlv
bk9yaWdpbik6CisgICAgICAgICogZG9tL0RvY3VtZW50K1N0b3JhZ2VBY2Nlc3MuaWRsOgorICAg
ICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cmVm
ZXJyZXIpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIGRvbS9Eb2N1bWVu
dFN0b3JhZ2VBY2Nlc3MuY3BwOgorICAgICAgICAqIGRvbS9Eb2N1bWVudFN0b3JhZ2VBY2Nlc3Mu
aDoKKyAgICAgICAgKiBoaXN0b3J5L0NhY2hlZFBhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q2FjaGVkUGFnZTo6Q2FjaGVkUGFnZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRQYWdlOjpy
ZXN0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFBhZ2U6OmNsZWFyKToKKyAgICAgICAg
KiBoaXN0b3J5L0NhY2hlZFBhZ2UuaDoKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6OnJlc3BvbnNlUmVjZWl2ZWQp
OgorICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuY3BwOgorICAgICAgICAqIGxvYWRlci9F
bXB0eUZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyQ2xp
ZW50Lmg6CisgICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVlc3RJbnRlcm5hbCk6CisgICAgICAg
ICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UpOgorICAgICAgICAqIHBh
Z2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogcGFnZS9Dcm9zc1NpdGVOYXZpZ2F0aW9uRGF0
YVRyYW5zZmVyLmg6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RE9NV2luZG93OjpvcGVuKToKKyAgICAgICAgKiBwYWdlL1F1aXJrcy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpRdWlya3M6OnRyaWdnZXJPcHRpb25hbFN0b3JhZ2VBY2Nlc3NRdWlyayBj
b25zdCk6CisgICAgICAgICogcGFnZS9RdWlya3MuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3
b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2Nv
Y29hL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6TmV0
d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVzRm9yVVJMIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2V0Q29va2llc0Zyb21ET00gY29uc3QpOgorICAg
ICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9OZXR3b3JrU3RvcmFnZVNlc3Npb25DdXJsLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2V0Q29va2llc0Zy
b21ET00gY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3Rv
cmFnZVNlc3Npb25Tb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vz
c2lvbjo6c2V0Q29va2llc0Zyb21ET00gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29y
a1N0b3JhZ2VTZXNzaW9uOjpnZXRSYXdDb29raWVzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OmNvb2tpZXNGb3JTZXNzaW9uKToKKwogMjAyMS0wOS0xNCAgRGFyaW4gQWRsZXIgIDxkYXJpbkBh
cHBsZS5jb20+CiAKICAgICAgICAgVVJMcyBpbiBDU1MgdmFyaWFibGVzIG11c3QgYmUgcmVzb2x2
ZWQgYWdhaW5zdCB0aGUgYmFzZSBVUkwgb2YgdGhlIHN0eWxlc2hlZXQsIG5vdCB0aGUgZG9jdW1l
bnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKaW5kZXggZGM4M2ViMTRkMzlkY2UyNGNkMzc5Y2UyZTgyZTBmOGUwMDhmYTQzMi4u
YzA1MjdlZDM5ZGFiNjYzNWZmMzhhZTM1OWQ4NjZlZmExNGQwN2Q2ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMjQgQEAKKzIwMjEtMDktMTQgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5j
b20+CisKKyAgICAgICAgUmVuYW1lIFJFU09VUkNFX0xPQURfU1RBVElTVElDUyB0byBJTlRFTExJ
R0VOVF9UUkFDS0lOR19QUkVWRU5USU9OCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzAyNzkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzMTE4Njgz
PgorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5j
cHA6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZp
ZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmNwcDoKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5o
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlOjp1cGRhdGVDbGllbnRTaWRlQ29va2llc0FnZUNhcCk6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaDoKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZS5jcHA6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmUuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpjb29raWVzRm9yRE9NKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnNldENvb2tpZXNGcm9tRE9NKToKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNsZWFyUGFnZVNwZWNpZmljRGF0
YSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRh
c2suY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2s6OnJlc3RyaWN0UmVxdWVz
dFJlZmVycmVyVG9PcmlnaW5JZk5lZWRlZCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6ZmV0Y2hX
ZWJzaXRlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpkZWxldGVXZWJz
aXRlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpkZWxldGVXZWJzaXRl
RGF0YUZvck9yaWdpbnMpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6cHJlcGFy
ZVRvU3VzcGVuZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpyZXN1bWUpOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1Jlc291cmNlTG9hZGVyOjpyZXRyaWV2ZUNhY2hlRW50cnlJbnRlcm5hbCk6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoTG9hZGluZyk6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6dmFsaWRhdGVDYWNoZUVudHJ5Rm9y
TWF4QWdlQ2FwVmFsaWRhdGlvbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxv
YWRlcjo6c2VuZFJlc3VsdEZvckNhY2hlRW50cnkpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L05ldHdvcmtSZXNvdXJjZUxvYWRlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb246Ok5ldHdvcmtT
ZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb246On5OZXR3b3JrU2Vzc2lv
bik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uOjppbnZhbGlkYXRlQW5kQ2FuY2Vs
KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHA6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtDYWNoZTo6Q2FjaGU6OnN0b3JlUmVkaXJlY3QpOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUVudHJ5LmNwcDoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVFbnRyeS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L2NhY2hlL05ldHdvcmtDYWNoZVNwZWN1bGF0aXZlTG9hZC5jcHA6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtDYWNoZTo6U3BlY3VsYXRpdmVMb2FkOjp3aWxsU2VuZFJlZGlyZWN0ZWRSZXF1ZXN0
KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5o
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1t
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2tDb2NvYTo6TmV0d29ya0RhdGFUYXNr
Q29jb2EpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2tDb2NvYTo6d2lsbFBlcmZv
cm1IVFRQUmVkaXJlY3Rpb24pOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdv
cmtTZXNzaW9uQ29jb2EubW06CisgICAgICAgICgtW1dLTmV0d29ya1Nlc3Npb25EZWxlZ2F0ZSBV
UkxTZXNzaW9uOnRhc2s6d2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb246bmV3UmVxdWVzdDpjb21w
bGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKC1bV0tOZXR3b3JrU2Vzc2lvbkRlbGVnYXRlIFVS
TFNlc3Npb246dGFzazpfc2NoZW1lVXBncmFkZWQ6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ29jb2E6OnNlc3Npb25XcmFwcGVyRm9yVGFzayk6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY3VybC9OZXR3b3JrRGF0YVRhc2tDdXJsLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrQ3VybDo6TmV0d29ya0RhdGFUYXNrQ3Vy
bCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza0N1cmw6OndpbGxQZXJmb3JtSFRU
UFJlZGlyZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrQ3VybDo6Ymxv
Y2tDb29raWVzKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrQ3VybDo6dW5ibG9j
a0Nvb2tpZXMpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2tDdXJsOjpzaG91bGRC
bG9ja0Nvb2tpZXMpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2N1cmwvTmV0d29ya1Nlc3Np
b25DdXJsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25DdXJsOjpOZXR3b3Jr
U2Vzc2lvbkN1cmwpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya0RhdGFU
YXNrU291cC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza1NvdXA6OmNyZWF0
ZVJlcXVlc3QpOgorICAgICAgICAqIFNoYXJlZC9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1l
dGVycy5oOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVy
czo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1BhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NEYXRhU3RvcmVQYXJh
bWV0ZXJzLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NEYXRhU3RvcmVQYXJhbWV0ZXJz
OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzRGF0YVN0b3JlUGFy
YW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2Vic2l0ZURhdGEvV2Vic2l0ZURh
dGEuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YTo6ZW5jb2RlIGNvbnN0KToKKyAg
ICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGE6OmRlY29kZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YnNpdGVEYXRhOjppc29sYXRlZENvcHkgY29uc3QpOgorICAgICAgICAqIFNoYXJlZC9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3Bw
OgorICAgICAgICAoV0tQYWdlTG9hZGVkU3VicmVzb3VyY2VEb21haW5zKToKKyAgICAgICAgKFdL
UGFnZUNsZWFyTG9hZGVkU3VicmVzb3VyY2VEb21haW5zKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcDoKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFT
dG9yZVJlbW92ZUlUUERhdGFGb3JEb21haW4pOgorICAgICAgICAoV0tXZWJzaXRlRGF0YVN0b3Jl
RG9lc1N0YXRpc3RpY3NEb21haW5JREV4aXN0SW5EYXRhYmFzZSk6CisgICAgICAgIChXS1dlYnNp
dGVEYXRhU3RvcmVTZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCk6CisgICAgICAgIChX
S1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NFcGhlbWVyYWwpOgorICAgICAgICAoV0tXZWJz
aXRlRGF0YVN0b3JlU2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZVdpdGhDb21wbGV0
aW9uSGFuZGxlcik6CisgICAgICAgIChXS1dlYnNpdGVEYXRhU3RvcmVTZXRSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2VGb3JEZWJ1Z01vZGUpOgorICAgICAgICAoV0tXZWJz
aXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc0xhc3RTZWVuKToKKyAgICAgICAgKFdLV2Vic2l0ZURh
dGFTdG9yZVNldFN0YXRpc3RpY3NNZXJnZVN0YXRpc3RpYyk6CisgICAgICAgIChXS1dlYnNpdGVE
YXRhU3RvcmVTZXRTdGF0aXN0aWNzRXhwaXJlZFN0YXRpc3RpYyk6CisgICAgICAgIChXS1dlYnNp
dGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UpOgorICAgICAgICAoV0tX
ZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZSk6CisgICAg
ICAgIChXS1dlYnNpdGVEYXRhU3RvcmVEdW1wUmVzb3VyY2VMb2FkU3RhdGlzdGljcyk6CisgICAg
ICAgIChXS1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSk6Cisg
ICAgICAgIChXS1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3Vy
Y2UpOgorICAgICAgICAoV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFz
U3VicmVzb3VyY2VVbmRlcik6CisgICAgICAgIChXS1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3Rp
Y3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKToKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9y
ZUlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8pOgorICAgICAgICAoV0tXZWJz
aXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbik6CisgICAgICAg
IChXS1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24pOgor
ICAgICAgICAoV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzT25seUluRGF0YWJhc2VPbmNl
KToKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NHcmFuZGZhdGhlcmVk
KToKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlzdGljc0dyYW5kZmF0aGVyZWQp
OgorICAgICAgICAoV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJU
b3BGcmFtZU9yaWdpbik6CisgICAgICAgIChXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNz
U3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKToKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFT
dG9yZVNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8pOgorICAgICAgICAo
V0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RG
cm9tKToKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NUb3BGcmFtZVVu
aXF1ZVJlZGlyZWN0VG8pOgorICAgICAgICAoV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGlj
c1RvcEZyYW1lVW5pcXVlUmVkaXJlY3RGcm9tKToKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9y
ZVNldFN0YXRpc3RpY3NDcm9zc1NpdGVMb2FkV2l0aExpbmtEZWNvcmF0aW9uKToKKyAgICAgICAg
KFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NUaW1lVG9MaXZlVXNlckludGVyYWN0aW9u
KToKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGlj
c0FuZERhdGFSZWNvcmRzKToKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NV
cGRhdGVDb29raWVCbG9ja2luZyk6CisgICAgICAgIChXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0
aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCk6CisgICAgICAgIChX
S1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzSXNSdW5uaW5nVGVzdCk6CisgICAgICAgIChX
S1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzU2hvdWxkQ2xhc3NpZnlSZXNvdXJjZXNCZWZv
cmVEYXRhUmVjb3Jkc1JlbW92YWwpOgorICAgICAgICAoV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3Rh
dGlzdGljc01pbmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbCk6CisgICAgICAgIChX
S1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzR3JhbmRmYXRoZXJpbmdUaW1lKToKKyAgICAg
ICAgKFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NNYXhTdGF0aXN0aWNzRW50cmllcyk6
CisgICAgICAgIChXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzUHJ1bmVFbnRyaWVzRG93
blRvKToKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NDbGVhckluTWVtb3J5
QW5kUGVyc2lzdGVudFN0b3JlKToKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3Rp
Y3NDbGVhckluTWVtb3J5QW5kUGVyc2lzdGVudFN0b3JlTW9kaWZpZWRTaW5jZUhvdXJzKToKKyAg
ICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NEZWxldGVDb29raWVzRm9yVGVzdGlu
Zyk6CisgICAgICAgIChXS1dlYnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzSGFzTG9jYWxTdG9yYWdl
KToKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NDYWNoZU1heEFnZUNh
cCk6CisgICAgICAgIChXS1dlYnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzSGFzSXNvbGF0ZWRTZXNz
aW9uKToKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZVNldFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTaG91bGREb3duZ3JhZGVSZWZlcnJlckZvclRlc3RpbmcpOgorICAgICAgICAoV0tXZWJzaXRl
RGF0YVN0b3JlU2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nob3VsZEJsb2NrVGhpcmRQYXJ0eUNv
b2tpZXNGb3JUZXN0aW5nKToKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZVNldFJlc291cmNl
TG9hZFN0YXRpc3RpY3NGaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZUZvclRlc3Rpbmcp
OgorICAgICAgICAoV0tXZWJzaXRlRGF0YVN0b3JlU2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc1Rv
U2FtZVNpdGVTdHJpY3RDb29raWVzRm9yVGVzdGluZyk6CisgICAgICAgIChXS1dlYnNpdGVEYXRh
U3RvcmVTZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRmlyc3RQYXJ0eUhvc3RDTkFNRURvbWFpbkZv
clRlc3RpbmcpOgorICAgICAgICAoV0tXZWJzaXRlRGF0YVN0b3JlU2V0UmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1RoaXJkUGFydHlDTkFNRURvbWFpbkZvclRlc3RpbmcpOgorICAgICAgICAoV0tXZWJz
aXRlRGF0YVN0b3JlU3RhdGlzdGljc1Jlc2V0VG9Db25zaXN0ZW50U3RhdGUpOgorICAgICAgICAo
V0tXZWJzaXRlRGF0YVN0b3JlR2V0QWxsU3RvcmFnZUFjY2Vzc0VudHJpZXMpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbToKKyAgICAgICAgKC1bV0tQcm9j
ZXNzUG9vbCBfc2VlZFJlc291cmNlTG9hZFN0YXRpc3RpY3NGb3JUZXN0aW5nV2l0aEZpcnN0UGFy
dHk6dGhpcmRQYXJ0eTpzaG91bGRTY2hlZHVsZU5vdGlmaWNhdGlvbjpjb21wbGV0aW9uSGFuZGxl
cjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5t
bToKKyAgICAgICAgKC1bV0tXZWJzaXRlRGF0YVN0b3JlIF9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGVidWdNb2RlXSk6CisgICAgICAgICgtW1dLV2Vic2l0ZURhdGFTdG9yZSBfc2V0UmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RlYnVnTW9kZTpdKToKKyAgICAgICAgKC1bV0tXZWJzaXRlRGF0YVN0b3Jl
IF9zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVzdGluZ0NhbGxiYWNrOl0pOgorICAgICAgICAo
LVtXS1dlYnNpdGVEYXRhU3RvcmUgX2xvYWRlZFN1YnJlc291cmNlRG9tYWluc0Zvcjpjb21wbGV0
aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKC1bV0tXZWJzaXRlRGF0YVN0b3JlIF9jbGVhckxvYWRl
ZFN1YnJlc291cmNlRG9tYWluc0ZvcjpdKToKKyAgICAgICAgKC1bV0tXZWJzaXRlRGF0YVN0b3Jl
IF9nZXRBbGxTdG9yYWdlQWNjZXNzRW50cmllc0Zvcjpjb21wbGV0aW9uSGFuZGxlcjpdKToKKyAg
ICAgICAgKC1bV0tXZWJzaXRlRGF0YVN0b3JlIF9zY2hlZHVsZUNvb2tpZUJsb2NraW5nVXBkYXRl
Ol0pOgorICAgICAgICAoLVtXS1dlYnNpdGVEYXRhU3RvcmUgX2xvZ1VzZXJJbnRlcmFjdGlvbjpj
b21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKC1bV0tXZWJzaXRlRGF0YVN0b3JlIF9zZXRQ
cmV2YWxlbnREb21haW46Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW1dLV2Vic2l0
ZURhdGFTdG9yZSBfZ2V0SXNQcmV2YWxlbnREb21haW46Y29tcGxldGlvbkhhbmRsZXI6XSk6Cisg
ICAgICAgICgtW1dLV2Vic2l0ZURhdGFTdG9yZSBfY2xlYXJQcmV2YWxlbnREb21haW46Y29tcGxl
dGlvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW1dLV2Vic2l0ZURhdGFTdG9yZSBfY2xlYXJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzOl0pOgorICAgICAgICAoLVtXS1dlYnNpdGVEYXRhU3RvcmUgX2dl
dFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhU3VtbWFyeTpdKToKKyAgICAgICAgKC1bV0tXZWJz
aXRlRGF0YVN0b3JlIF9pc1JlbGF0aW9uc2hpcE9ubHlJbkRhdGFiYXNlT25jZTp0aGlyZFBhcnR5
OmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAoLVtXS1dlYnNpdGVEYXRhU3RvcmUgX2lz
UmVnaXN0ZXJlZEFzU3VicmVzb3VyY2VVbmRlckZpcnN0UGFydHk6dGhpcmRQYXJ0eTpjb21wbGV0
aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKC1bV0tXZWJzaXRlRGF0YVN0b3JlIF9zdGF0aXN0aWNz
RGF0YWJhc2VIYXNBbGxUYWJsZXM6XSk6CisgICAgICAgICgtW1dLV2Vic2l0ZURhdGFTdG9yZSBf
cHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkczpdKToKKyAgICAgICAgKC1bV0tXZWJzaXRl
RGF0YVN0b3JlIF9zZXRUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlOm9ubHlPblNpdGVzV2l0
aG91dFVzZXJJbnRlcmFjdGlvbjpjb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRp
ZENvbW1pdExvYWRGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlk
RmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJv
eHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24pOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6d2ViUHJvY2Vzc0RhdGFTdG9yZVBh
cmFtZXRlcnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2Ev
V2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0
b3JlOjpwbGF0Zm9ybVNldE5ldHdvcmtQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFSZWNvcmQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJz
aXRlRGF0YVJlY29yZDo6aXNvbGF0ZWRDb3B5IGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFSZWNvcmQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
c2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVE
YXRhU3RvcmU6OmZldGNoRGF0YUFuZEFwcGx5KToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURh
dGFTdG9yZTo6cmVtb3ZlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6
OnNldENhY2hlTWF4QWdlQ2FwRm9yUHJldmFsZW50UmVzb3VyY2VzKToKKyAgICAgICAgKFdlYktp
dDo6V2Vic2l0ZURhdGFTdG9yZTo6cmVzZXRDYWNoZU1heEFnZUNhcEZvclByZXZhbGVudFJlc291
cmNlcyk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnJlc291cmNlTG9hZFN0
YXRpc3RpY3NFbmFibGVkIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9y
ZTo6cmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZSBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6OldlYnNpdGVEYXRhU3RvcmU6OnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKToK
KyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6c2V0UmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RlYnVnTW9kZSk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OmlzUmVz
b3VyY2VMb2FkU3RhdGlzdGljc0VwaGVtZXJhbCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YnNpdGVEYXRhU3RvcmU6OnBhcmFtZXRlcnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YVN0b3JlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1l
TG9hZGVyQ2xpZW50OjpkZXRhY2hlZEZyb21QYXJlbnQyKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoV2lsbENoYW5nZURvY3VtZW50KToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRPYnNlcnZlci5j
cHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRP
YnNlcnZlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb29raWVKYXIuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVKYXI6OmNvb2tpZXMgY29uc3QpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJDb29raWVKYXI6OnNldENvb2tpZXMpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJDb29raWVKYXI6OmNvb2tpZXNFbmFibGVkIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Q29va2llSmFyOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZSBjb25zdCk6CisgICAgICAg
IChXZWJLaXQ6OldlYkNvb2tpZUphcjo6Z2V0UmF3Q29va2llcyBjb25zdCk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
OjpkaWRDb21taXRMb2FkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3M6OmluaXRpYWxpemVXZWJQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
czo6c2V0V2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzOjpzZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3M6OmNsZWFyUmVzb3VyY2VMb2FkU3RhdGlzdGljcyk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3M6OmZsdXNoUmVzb3VyY2VMb2FkU3RhdGlzdGljcyk6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3M6OnNlZWRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRm9yVGVzdGlu
Zyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluOgorCiAyMDIxLTA5LTE0ICBGdWppaSBIaXJvbm9y
aSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAgIEVuYWJsZSBJUENNZXNzYWdl
cyBkZWJ1ZyBsb2dnaW5nIGZvciBub24tQ29jb2EgcG9ydHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5h
YmxlQ29jb2EuaAppbmRleCBiODBjODQyOTZmNDRmMDMwNzVlOTA1NmM0MDlkODBiNzUyODFmMzdm
Li5jZGY0MjY5MThmYWVmZjE2NGUwNmVjYTFmZTRkMDZkOWFhYzQ5Y2NkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmgKKysrIGIvU291cmNlL1dURi93dGYv
UGxhdGZvcm1FbmFibGVDb2NvYS5oCkBAIC00ODYsOCArNDg2LDggQEAKICNkZWZpbmUgRU5BQkxF
X1JFU0laRV9PQlNFUlZFUiAxCiAjZW5kaWYKIAotI2lmICFkZWZpbmVkKEVOQUJMRV9SRVNPVVJD
RV9MT0FEX1NUQVRJU1RJQ1MpCi0jZGVmaW5lIEVOQUJMRV9SRVNPVVJDRV9MT0FEX1NUQVRJU1RJ
Q1MgMQorI2lmICFkZWZpbmVkKEVOQUJMRV9JTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9O
KQorI2RlZmluZSBFTkFCTEVfSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTiAxCiAjZW5k
aWYKIAogI2lmICFkZWZpbmVkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAmJiAhUExBVEZPUk0o
TUFDQ0FUQUxZU1QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tl
dHMvV2ViU29ja2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJT
b2NrZXQuY3BwCmluZGV4IDRjYTA4MDA3ZGZhZjM1ZmJiNWZhM2E4ZDQ1NTg5YTUwZDg0NjA2OTAu
Ljg4YmQzZmEzMjcyYWY0NTYwOWYxNmUwMjcxYmVhODJmNmM5ZGI5ODQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCkBAIC0zMjQsNyArMzI0
LDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gV2ViU29ja2V0Ojpjb25uZWN0KGNvbnN0IFN0cmluZyYg
dXJsLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcHIKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9
CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRF
TExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIGF1dG8gcmVwb3J0UmVnaXN0cmFibGVE
b21haW4gPSBbZG9tYWluID0gUmVnaXN0cmFibGVEb21haW4obV91cmwpLmlzb2xhdGVkQ29weSgp
XShhdXRvJiBjb250ZXh0KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKGF1dG8qIGZyYW1lID0gZG93
bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpLmZyYW1lKCkpCiAgICAgICAgICAgICBmcmFtZS0+bG9h
ZGVyKCkuY2xpZW50KCkuZGlkTG9hZEZyb21SZWdpc3RyYWJsZURvbWFpbihXVEZNb3ZlKGRvbWFp
bikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Jyb2FkY2FzdENoYW5uZWwuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL0Jyb2FkY2FzdENoYW5uZWwuY3BwCmluZGV4IGE1OWQxZGY4
MTkxYTNkZGRhZGNlYTdmOTQ5YmMxYWE3ZThmMzgyYTMuLjBmMDcxZjEzZjI5YWRlYTE4MDk2Njc4
NzA2YmUwMmFiNDkzMTdhNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ccm9hZGNh
c3RDaGFubmVsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQnJvYWRjYXN0Q2hhbm5lbC5j
cHAKQEAgLTY0LDcgKzY0LDcgQEAgc3RhdGljIGJvb2wgc2hvdWxkUGFydGl0aW9uT3JpZ2luKERv
Y3VtZW50JiBkb2N1bWVudCkKICAgICBpZiAoIWRvY3VtZW50LnNldHRpbmdzKCkuYnJvYWRjYXN0
Q2hhbm5lbE9yaWdpblBhcnRpdGlvbmluZ0VuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5U
RUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBpZiAoIWRvY3VtZW50LnNldHRpbmdz
KCkuc3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudCtTdG9yYWdlQWNjZXNzLmlkbCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudCtTdG9yYWdlQWNjZXNzLmlkbAppbmRleCBlYTRj
MTE5NWVkNzY4YTQ5YWQ4OWRjMjVjOGI3YmQ1YjRlN2RlMmNjLi5hODA5NDkzYjczMzYwZjFjYTk0
Nzk3NGFiYWEwNGYwZTE5ZWY3OTE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQrU3RvcmFnZUFjY2Vzcy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
K1N0b3JhZ2VBY2Nlc3MuaWRsCkBAIC0yNSw3ICsyNSw3IEBACiAKIC8vIGh0dHBzOi8vcHJpdmFj
eWNnLmdpdGh1Yi5pby9zdG9yYWdlLWFjY2Vzcy8jdGhlLWRvY3VtZW50LW9iamVjdAogWwotICAg
IENvbmRpdGlvbmFsPVJFU09VUkNFX0xPQURfU1RBVElTVElDUywKKyAgICBDb25kaXRpb25hbD1J
TlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OLAogICAgIEVuYWJsZWRCeVNldHRpbmc9c3Rv
cmFnZUFjY2Vzc0FQSSwKICAgICBJbXBsZW1lbnRlZEJ5PURvY3VtZW50U3RvcmFnZUFjY2Vzcwog
XSBwYXJ0aWFsIGludGVyZmFjZSBEb2N1bWVudCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRl
eCAzMzliZDhjYjc1ZGQ4Nzk2MzNmNGE0M2Q0MDk0ZmVjY2M4NjUxOGZmLi4xODgwNjIwZWRmMGM2
MWQ1NTM5ZjFlYWQ2NDUwZmQ3OThhNmIzMDA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAg
LTUzMTMsNyArNTMxMyw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IERvY3VtZW50OjpzZXRDb29raWUo
Y29uc3QgU3RyaW5nJiB2YWx1ZSkKIAogU3RyaW5nIERvY3VtZW50OjpyZWZlcnJlcigpCiB7Ci0j
aWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdF
TlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBpZiAoIW1fcmVmZXJyZXJPdmVycmlkZS5pc0Vt
cHR5KCkpCiAgICAgICAgIHJldHVybiBtX3JlZmVycmVyT3ZlcnJpZGU7CiAgICAgaWYgKERlcHJl
Y2F0ZWRHbG9iYWxTZXR0aW5nczo6cmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoKSAmJiBm
cmFtZSgpKSB7CkBAIC04MzgxLDcgKzgzODEsNyBAQCB2b2lkIERvY3VtZW50Ojp1cGRhdGVNYWlu
QXJ0aWNsZUVsZW1lbnRBZnRlckxheW91dCgpCiAgICAgbV9tYWluQXJ0aWNsZUVsZW1lbnQgPSBt
YWtlV2Vha1B0cih0YWxsZXN0QXJ0aWNsZS5nZXQoKSk7CiB9CiAKLSNpZiBFTkFCTEUoUkVTT1VS
Q0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVW
RU5USU9OKQogCiBib29sIERvY3VtZW50OjpoYXNSZXF1ZXN0ZWRQYWdlU3BlY2lmaWNTdG9yYWdl
QWNjZXNzV2l0aFVzZXJJbnRlcmFjdGlvbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWlu
KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCBmNjhlZjBkY2EwZGMzNjk2NjdhZjZmOWI5YmE4
ODc3YzRjMjY1MDhhLi41NGQxZjEyMGY2MWFkMTFmZDZiMmRlOWIwOWVmZWM1MWIzYmQ4ZWI3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTU1Miw3ICsxNTUyLDcgQEAgcHVibGljOgogICAgIGJv
b2wgaGFuZGxpbmdUb3VjaEV2ZW50KCkgY29uc3QgeyByZXR1cm4gbV9oYW5kbGluZ1RvdWNoRXZl
bnQ7IH0KICNlbmRpZgogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNp
ZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBXRUJDT1JFX0VY
UE9SVCBib29sIGhhc1JlcXVlc3RlZFBhZ2VTcGVjaWZpY1N0b3JhZ2VBY2Nlc3NXaXRoVXNlcklu
dGVyYWN0aW9uKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJik7CiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBzZXRIYXNSZXF1ZXN0ZWRQYWdlU3BlY2lmaWNTdG9yYWdlQWNjZXNzV2l0aFVzZXJJbnRl
cmFjdGlvbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgd2FzTG9hZGVkV2l0aERhdGFUcmFuc2ZlckZyb21QcmV2YWxlbnRSZXNvdXJjZSgpOwpAQCAt
MjE4NCw3ICsyMTg0LDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8U1dDbGllbnRDb25uZWN0aW9u
PiBtX3NlcnZpY2VXb3JrZXJDb25uZWN0aW9uOwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoUkVTT1VS
Q0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVW
RU5USU9OKQogICAgIFJlZ2lzdHJhYmxlRG9tYWluIG1fcmVnaXN0cmFibGVEb21haW5SZXF1ZXN0
ZWRQYWdlU3BlY2lmaWNTdG9yYWdlQWNjZXNzV2l0aFVzZXJJbnRlcmFjdGlvbiB7IH07CiAgICAg
U3RyaW5nIG1fcmVmZXJyZXJPdmVycmlkZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50U3RvcmFnZUFjY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnRTdG9yYWdlQWNjZXNzLmNwcAppbmRleCAxODA0MDVhOWYwNGIxNzAyNTkyMWZlYTVk
ZjFiZTIyNTY5NmVjMDMyLi41NjhlNTA3ZWMzNzg5MTFjZDVmOTVmYWNmOGY2ZjQ3NDgwNzkwYjA5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRTdG9yYWdlQWNjZXNzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRTdG9yYWdlQWNjZXNzLmNwcApAQCAt
MjYsNyArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkRvY3VtZW50U3Rv
cmFnZUFjY2Vzcy5oIgogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNp
ZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKIAogI2luY2x1ZGUgIkNo
cm9tZS5oIgogI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgpAQCAtMzE4LDQgKzMxOCw0IEBAIGJv
b2wgRG9jdW1lbnRTdG9yYWdlQWNjZXNzOjpoYXNGcmFtZVNwZWNpZmljU3RvcmFnZUFjY2Vzcygp
IGNvbnN0CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vIEVOQUJMRShSRVNP
VVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjZW5kaWYgLy8gRU5BQkxFKElOVEVMTElHRU5UX1RSQUNL
SU5HX1BSRVZFTlRJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRT
dG9yYWdlQWNjZXNzLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRTdG9yYWdlQWNjZXNz
LmgKaW5kZXggZWRhMjZmZWI3MmQzMWM4NGUyZDc2Njc1M2NlNzM0NzRlNzZmNDcxZS4uM2UyMTNk
NTg0MDg0MTBkM2FjMTljMDA1NDk4MmUwMzgwNDYxZDM4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50U3RvcmFnZUFjY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudFN0b3JhZ2VBY2Nlc3MuaApAQCAtMjUsNyArMjUsNyBAQAogCiAjcHJhZ21hIG9u
Y2UKIAotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElO
VEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAKICNpbmNsdWRlICJSZWdpc3RyYWJsZURv
bWFpbi5oIgogI2luY2x1ZGUgIlN1cHBsZW1lbnRhYmxlLmgiCkBAIC0xNTAsNCArMTUwLDQgQEAg
c3RkOjpvcHRpb25hbDxSZXF1ZXN0U3RvcmFnZUFjY2Vzc1Jlc3VsdD4gUmVxdWVzdFN0b3JhZ2VB
Y2Nlc3NSZXN1bHQ6OmRlY29kZShEZWMKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5k
aWYgLy8gRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNlbmRpZiAvLyBFTkFCTEUo
SU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2hpc3RvcnkvQ2FjaGVkUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0NhY2hl
ZFBhZ2UuY3BwCmluZGV4IGIzMGZlNWI1MDdmMDFjMDhkN2ExODY5N2ZkY2YwYmY1MWE0MzIyZjEu
LmY3YmM1Mjk3MzUyZDg3NmEzNmIyMzEyNzM2ZDUyNGYzODJhNzU1NzEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2hpc3RvcnkvQ2FjaGVkUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aGlzdG9yeS9DYWNoZWRQYWdlLmNwcApAQCAtNTksNyArNTksNyBAQCBDYWNoZWRQYWdlOjpDYWNo
ZWRQYWdlKFBhZ2UmIHBhZ2UpCiAgICAgOiBtX3BhZ2UocGFnZSkKICAgICAsIG1fZXhwaXJhdGlv
blRpbWUoTW9ub3RvbmljVGltZTo6bm93KCkgKyBwYWdlLnNldHRpbmdzKCkuYmFja0ZvcndhcmRD
YWNoZUV4cGlyYXRpb25JbnRlcnZhbCgpKQogICAgICwgbV9jYWNoZWRNYWluRnJhbWUobWFrZVVu
aXF1ZTxDYWNoZWRGcmFtZT4ocGFnZS5tYWluRnJhbWUoKSkpCi0jaWYgRU5BQkxFKFJFU09VUkNF
X0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVO
VElPTikKICAgICAsIG1fbG9hZGVkU3VicmVzb3VyY2VEb21haW5zKHBhZ2UubWFpbkZyYW1lKCku
bG9hZGVyKCkuY2xpZW50KCkubG9hZGVkU3VicmVzb3VyY2VEb21haW5zKCkpCiAjZW5kaWYKIHsK
QEAgLTE3MSw3ICsxNzEsNyBAQCB2b2lkIENhY2hlZFBhZ2U6OnJlc3RvcmUoUGFnZSYgcGFnZSkK
IAogICAgIGZpcmVQYWdlU2hvd0FuZFBvcFN0YXRlRXZlbnRzKHBhZ2UpOwogCi0jaWYgRU5BQkxF
KFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJ
TkdfUFJFVkVOVElPTikKICAgICBmb3IgKGF1dG8mIGRvbWFpbiA6IG1fbG9hZGVkU3VicmVzb3Vy
Y2VEb21haW5zKQogICAgICAgICBwYWdlLm1haW5GcmFtZSgpLmxvYWRlcigpLmNsaWVudCgpLmRp
ZExvYWRGcm9tUmVnaXN0cmFibGVEb21haW4oV1RGTW92ZShkb21haW4pKTsKICNlbmRpZgpAQCAt
MTg5LDcgKzE4OSw3IEBAIHZvaWQgQ2FjaGVkUGFnZTo6Y2xlYXIoKQogI2VuZGlmCiAgICAgbV9u
ZWVkc0RldmljZU9yUGFnZVNjYWxlQ2hhbmdlZCA9IGZhbHNlOwogICAgIG1fbmVlZHNVcGRhdGVD
b250ZW50c1NpemUgPSBmYWxzZTsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNT
KQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIG1fbG9h
ZGVkU3VicmVzb3VyY2VEb21haW5zLmNsZWFyKCk7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2hpc3RvcnkvQ2FjaGVkUGFnZS5oIGIvU291cmNlL1dlYkNvcmUvaGlzdG9y
eS9DYWNoZWRQYWdlLmgKaW5kZXggMGY3M2NmNzhhYzNiNzNmZGM2NTVmMTQzNjQxMWMxN2FjNTUy
MTdkYi4uMzFiMmVmOWExYWVlMDBhMWU5N2Y3MTdmYTU0YzJhMTNlNzI3NGQ1MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRQYWdlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaGlzdG9yeS9DYWNoZWRQYWdlLmgKQEAgLTY4LDcgKzY4LDcgQEAgcHJpdmF0ZToKICNlbmRp
ZgogICAgIGJvb2wgbV9uZWVkc0RldmljZU9yUGFnZVNjYWxlQ2hhbmdlZCB7IGZhbHNlIH07CiAg
ICAgYm9vbCBtX25lZWRzVXBkYXRlQ29udGVudHNTaXplIHsgZmFsc2UgfTsKLSNpZiBFTkFCTEUo
UkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lO
R19QUkVWRU5USU9OKQogICAgIFZlY3RvcjxSZWdpc3RyYWJsZURvbWFpbj4gbV9sb2FkZWRTdWJy
ZXNvdXJjZURvbWFpbnM7CiAjZW5kaWYKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50
TG9hZGVyLmNwcAppbmRleCBkNmI5Yjg5MmRmZGU1MjJhMzA1MWQ5YTYzZDA5MDU0YmM3MWViZjU4
Li4wZDJkMTQxMjIyZGU3NmZkYWJhZDZlMDRkZjcyNDY2NzRmNzBhNjRkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKQEAgLTEyMiw3ICsxMjIsNyBAQAogI2luY2x1
ZGUgIlF1aWNrTG9vay5oIgogI2VuZGlmCiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFU
SVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogI2lu
Y2x1ZGUgIk5ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oIgogI2VuZGlmCiAKQEAgLTk1Miw3ICs5NTIs
NyBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjpzdG9wTG9hZGluZ0FmdGVyWEZyYW1lT3B0aW9uc09y
Q29udGVudFNlY3VyaXR5UG9saWN5RGVuaWVkKAogICAgICAgICBjYW5jZWxNYWluUmVzb3VyY2VM
b2FkKGZyYW1lTG9hZGVyLT5jYW5jZWxsZWRFcnJvcihtX3JlcXVlc3QpKTsKIH0KIAotI2lmIEVO
QUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RS
QUNLSU5HX1BSRVZFTlRJT04pCiBzdGF0aWMgVVJMIG1pY3Jvc29mdFRlYW1zUmVkaXJlY3RVUkwo
KQogewogICAgIHJldHVybiBVUkwoVVJMKCksICJodHRwczovL3d3dy5taWNyb3NvZnQuY29tL2Vu
LXVzL21pY3Jvc29mdC0zNjUvbWljcm9zb2Z0LXRlYW1zLyIpOwpAQCAtOTY5LDcgKzk2OSw3IEBA
IHZvaWQgRG9jdW1lbnRMb2FkZXI6OnJlc3BvbnNlUmVjZWl2ZWQoQ2FjaGVkUmVzb3VyY2UmIHJl
c291cmNlLCBjb25zdCBSZXNvdXJjZVJlCiAgICAgfSBlbHNlCiAgICAgICAgIG1fY29udGVudFNl
Y3VyaXR5UG9saWN5ID0gbnVsbHB0cjsKIAotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJ
U1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAg
Ly8gRklYTUUoMjE4Nzc5KTogUmVtb3ZlIHRoaXMgcXVpcmsgb25jZSBtaWNyb3NvZnQuY29tIGNv
bXBsZXRlcyB0aGVpciBsb2dpbiBmbG93IHJlZGVzaWduLgogICAgIGlmIChtX2ZyYW1lICYmIG1f
ZnJhbWUtPmRvY3VtZW50KCkpIHsKICAgICAgICAgYXV0byYgZG9jdW1lbnQgPSAqbV9mcmFtZS0+
ZG9jdW1lbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVu
dHMuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKaW5kZXggNzlj
MjExYzA4MDI0ZGFhNTY3YzMxNzI0ZTIxNDY3YjBmNTg3NGE5NC4uYzE4MjdmZWNkZjllNThlNzQx
NTBjZDg4MmE3NGQwYmNmZDQ1OGE4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0VtcHR5Q2xpZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50
cy5jcHAKQEAgLTExMDEsNyArMTEwMSw3IEBAIFJlZlB0cjxMZWdhY3lQcmV2aWV3TG9hZGVyQ2xp
ZW50PiBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVQcmV2aWV3TG9hZGVyQ2xpCiAKICNl
bmRpZgogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUo
SU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKIAogYm9vbCBFbXB0eUZyYW1lTG9hZGVy
Q2xpZW50OjpoYXNGcmFtZVNwZWNpZmljU3RvcmFnZUFjY2VzcygpCiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCBkYzUxZDVlMzU5MmY5
NmMwZTMwZDNkNmJhZWNhMjQ0YzA2ZjE5MjU0Li4wMTdlMzdlMTU0Y2UyZmZhNjRjMTgyZjFlNWJl
YmUzN2MwNGFjZTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFt
ZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9h
ZGVyQ2xpZW50LmgKQEAgLTE5OSw3ICsxOTksNyBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxMZWdh
Y3lQcmV2aWV3TG9hZGVyQ2xpZW50PiBjcmVhdGVQcmV2aWV3TG9hZGVyQ2xpZW50KGNvbnN0IFN0
cmluZyYsIGNvbnN0IFN0cmluZyYpIGZpbmFsOwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoUkVTT1VS
Q0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVW
RU5USU9OKQogICAgIGJvb2wgaGFzRnJhbWVTcGVjaWZpY1N0b3JhZ2VBY2Nlc3MoKSBmaW5hbDsK
ICNlbmRpZgogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKaW5k
ZXggNzdiY2MzZGM1Mzg5MDk1NmJhMDFlNzMxNWQ3NGZkNjhjMjMwYTI0Yi4uMDRhMTJmN2E5MzAx
NWNjZjRlZTA3M2FlZTA0MDgyY2E4MTI2MDdkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyQ2xpZW50LmgKQEAgLTM2OCw3ICszNjgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIGZpbmlzaGVkTG9hZGluZ0FwcGxpY2F0aW9uTWFuaWZlc3QodWludDY0X3QsIGNvbnN0
IHN0ZDo6b3B0aW9uYWw8QXBwbGljYXRpb25NYW5pZmVzdD4mKSB7IH0KICNlbmRpZgogCi0jaWYg
RU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRf
VFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICB2aXJ0dWFsIGJvb2wgaGFzRnJhbWVTcGVjaWZpY1N0
b3JhZ2VBY2Nlc3MoKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRMb2Fk
RnJvbVJlZ2lzdHJhYmxlRG9tYWluKFJlZ2lzdHJhYmxlRG9tYWluJiYpIHsgfQogICAgIHZpcnR1
YWwgVmVjdG9yPFJlZ2lzdHJhYmxlRG9tYWluPiBsb2FkZWRTdWJyZXNvdXJjZURvbWFpbnMoKSBj
b25zdCB7IHJldHVybiB7IH07IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9S
ZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIu
Y3BwCmluZGV4IDc0YmYyMThkMzQ4OGE4Njg2ZjNhOGE1NGM1NGUxMjEzNDY3MWQzN2IuLjMwYzY1
NDg2NWVlZmY4OTAyMmI4MDU5ZWE2ZjYwN2QzYjkwNjA1ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1Jlc291cmNlTG9hZGVyLmNwcApAQCAtNDMwLDcgKzQzMCw3IEBAIHZvaWQgUmVzb3VyY2VM
b2FkZXI6OndpbGxTZW5kUmVxdWVzdEludGVybmFsKFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3Qs
IGNvbnN0IFJlCiAgICAgaWYgKGlzUmVkaXJlY3QpIHsKICAgICAgICAgUkVTT1VSQ0VMT0FERVJf
UkVMRUFTRV9MT0coIndpbGxTZW5kUmVxdWVzdEludGVybmFsOiBQcm9jZXNzaW5nIGNyb3NzLW9y
aWdpbiByZWRpcmVjdCIpOwogICAgICAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bG9hZGVyU3Ry
YXRlZ3koKS0+Y3Jvc3NPcmlnaW5SZWRpcmVjdFJlY2VpdmVkKHRoaXMsIHJlcXVlc3QudXJsKCkp
OwotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVM
TElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgICAgIGZyYW1lTG9hZGVyKCktPmNsaWVu
dCgpLmRpZExvYWRGcm9tUmVnaXN0cmFibGVEb21haW4oUmVnaXN0cmFibGVEb21haW4ocmVxdWVz
dC51cmwoKSkpOwogI2VuZGlmCiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggYzJiZDA3ZTE4MjI4ODExNDFk
MTVhMjNjNDNhYTA2ZGZkMTZiMGMxYS4uOTFkZGNkZGY1NTU4MGNjOTBiNTUwOTUxNGVlMDc3YzFl
ODNmNzAyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJl
c291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
UmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0xMDg1LDcgKzEwODUsNyBAQCBSZXNvdXJjZUVycm9yT3I8
Q2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+PiBDYWNoZWRSZXNvdXJjZUxvYWRl
cjo6cmVxdQogCiAgICAgQVNTRVJUKHJlc291cmNlLT51cmwoKSA9PSB1cmwuc3RyaW5nKCkpOwog
ICAgIG1fZG9jdW1lbnRSZXNvdXJjZXMuc2V0KHJlc291cmNlLT51cmwoKS5zdHJpbmcoKSwgcmVz
b3VyY2UpOwotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxF
KElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgZnJhbWUubG9hZGVyKCkuY2xp
ZW50KCkuZGlkTG9hZEZyb21SZWdpc3RyYWJsZURvbWFpbihSZWdpc3RyYWJsZURvbWFpbihyZXNv
dXJjZS0+cmVzb3VyY2VSZXF1ZXN0KCkudXJsKCkpKTsKICNlbmRpZgogICAgIHJldHVybiByZXNv
dXJjZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IGQyYTI0Zjk1MTU2MmE3N2Vk
NWE5NmJlMTRkMmJiNzVkYjIyMjFlMDUuLjA2YzRlMWVhOTI2NDZlM2NlNmFjOWNmYTc2NzU3NzIx
Nzg5YjNhNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtNTUxLDcgKzU1MSw3
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0UHJvY2Vzc0NQVVRpbWUoU2Vjb25k
cywgQWN0aXZpdHlTdGF0ZUZvckNQVVNhbXBsaW5nKSB7IH0KICAgICB2aXJ0dWFsIFJlZlB0cjxJ
Y29uPiBjcmVhdGVJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIC8qIGZpbGVuYW1l
cyAqLykgPSAwOwogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBF
TkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICB2aXJ0dWFsIHZvaWQg
aGFzU3RvcmFnZUFjY2VzcyhSZWdpc3RyYWJsZURvbWFpbiYmIC8qc3ViRnJhbWVEb21haW4qLywg
UmVnaXN0cmFibGVEb21haW4mJiAvKnRvcEZyYW1lRG9tYWluKi8sIEZyYW1lJiwgV1RGOjpDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7IGNvbXBsZXRp
b25IYW5kbGVyKGZhbHNlKTsgfQogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vz
cyhSZWdpc3RyYWJsZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBSZWdpc3RyYWJsZURvbWFpbiYm
IHRvcEZyYW1lRG9tYWluLCBGcmFtZSYsIFN0b3JhZ2VBY2Nlc3NTY29wZSBzY29wZSwgV1RGOjpD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlcXVlc3RTdG9yYWdlQWNjZXNzUmVzdWx0KT4mJiBjb21w
bGV0aW9uSGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcih7IFN0b3JhZ2VBY2Nlc3NXYXNHcmFu
dGVkOjpObywgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duOjpObywgc2NvcGUsIFdURk1vdmUo
dG9wRnJhbWVEb21haW4pLCBXVEZNb3ZlKHN1YkZyYW1lRG9tYWluKSB9KTsgfQogICAgIHZpcnR1
YWwgYm9vbCBoYXNQYWdlTGV2ZWxTdG9yYWdlQWNjZXNzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWlu
JiAvKnRvcExldmVsRG9tYWluKi8sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiAvKnJlc291cmNl
RG9tYWluKi8pIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0Nyb3NzU2l0ZU5hdmlnYXRpb25EYXRhVHJhbnNmZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQ3Jvc3NTaXRlTmF2aWdhdGlvbkRhdGFUcmFuc2Zlci5oCmluZGV4IGMyOTlkN2Vk
MWI0MjI4M2JkYzM5YmM0OTY1NzNiMmY4MTRmZDk1ZmUuLmNlOTFlOWQwNWFmMWZjZDdiODM4NTQ0
Y2ZkNjczYjI1ODA3OTdmYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ3Jvc3NT
aXRlTmF2aWdhdGlvbkRhdGFUcmFuc2Zlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ3Jv
c3NTaXRlTmF2aWdhdGlvbkRhdGFUcmFuc2Zlci5oCkBAIC0yNSw3ICsyNSw3IEBACiAKICNwcmFn
bWEgb25jZQogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFC
TEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICNpbmNsdWRlIDx3dGYvT3B0aW9u
U2V0Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTUwLDQgKzUwLDQgQEAgdGVtcGxhdGU8
PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpDcm9zc1NpdGVOYXZpZ2F0aW9uRGF0YVRyYW5z
ZmVyOjpGbGFnPiB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXVEYKLSNlbmRpZiAvLyBFTkFCTEUo
UkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2VuZGlmIC8vIEVOQUJMRShJTlRFTExJR0VOVF9U
UkFDS0lOR19QUkVWRU5USU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01X
aW5kb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IDNmNTg5
MGFhMjc0OTllYTc5NjJlODQyNjRkZjM1MTI1ZDhkZTFkMjAuLmUyOTAxNTU1YzNhMDM1OGUyM2Mx
MzE5NDRmZDA1OWQ2MmIyYzUyODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9N
V2luZG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTI1
NTAsNyArMjU1MCw3IEBAIEV4Y2VwdGlvbk9yPFJlZlB0cjxGcmFtZT4+IERPTVdpbmRvdzo6Y3Jl
YXRlV2luZG93KGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBjb25zCiAKIEV4Y2VwdGlvbk9yPFJl
ZlB0cjxXaW5kb3dQcm94eT4+IERPTVdpbmRvdzo6b3BlbihET01XaW5kb3cmIGFjdGl2ZVdpbmRv
dywgRE9NV2luZG93JiBmaXJzdFdpbmRvdywgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmdUb09wZW4s
IGNvbnN0IEF0b21TdHJpbmcmIGZyYW1lTmFtZSwgY29uc3QgU3RyaW5nJiB3aW5kb3dGZWF0dXJl
c1N0cmluZykKIHsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVO
QUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIGlmIChSZWZQdHIgZG9j
dW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpKSB7CiAgICAgICAgIGlmIChkb2N1bWVudC0+c2V0dGlu
Z3MoKS5uZWVkc1NpdGVTcGVjaWZpY1F1aXJrcygpICYmIHVybFN0cmluZ1RvT3BlbiA9PSBRdWly
a3M6OkJCQ1JhZGlvUGxheWVyVVJMU3RyaW5nKCkpIHsKICAgICAgICAgICAgIGF1dG8gcmFkaW9Q
bGF5ZXJEb21haW4gPSBSZWdpc3RyYWJsZURvbWFpbihVUkwoVVJMKCksIFF1aXJrczo6c3RhdGlj
UmFkaW9QbGF5ZXJVUkxTdHJpbmcoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9RdWlya3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9RdWlya3MuY3BwCmluZGV4IDNlNzFj
MDFhYzJkYjEwZDgyYTg5ZGZkNDg2MWJhODc3MTVhMzZkMWYuLjc4MWRhYzUxZTU0YjZjZjMyMzU1
ZjlmZTRkNGY1NjZjYThmMTI2MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUXVp
cmtzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1F1aXJrcy5jcHAKQEAgLTEwMTIsNyAr
MTAxMiw3IEBAIGJvb2wgUXVpcmtzOjpzaG91bGRBdm9pZFBhc3RpbmdJbWFnZXNBc1dlYkNvbnRl
bnQoKSBjb25zdAogI2VuZGlmCiB9CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNU
SUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogc3RhdGlj
IGJvb2wgaXNLaW5qYUxvZ2luQXZhdGFyRWxlbWVudChjb25zdCBFbGVtZW50JiBlbGVtZW50KQog
ewogICAgIC8vIFRoZSBjbGljayBldmVudCBoYW5kbGVyIGhhcyBiZWVuIGZvdW5kIHRvIHRyaWdn
ZXIgb24gYSBkaXYgb3IKQEAgLTExNTEsNyArMTE1MSw3IEBAIFF1aXJrczo6U3RvcmFnZUFjY2Vz
c1Jlc3VsdCBRdWlya3M6OnRyaWdnZXJPcHRpb25hbFN0b3JhZ2VBY2Nlc3NRdWlyayhFbGVtZW50
JiBlCiAgICAgaWYgKCFEZXByZWNhdGVkR2xvYmFsU2V0dGluZ3M6OnJlc291cmNlTG9hZFN0YXRp
c3RpY3NFbmFibGVkKCkgfHwgIWlzUGFyZW50UHJvY2Vzc0FGdWxsV2ViQnJvd3NlcikKICAgICAg
ICAgcmV0dXJuIFF1aXJrczo6U3RvcmFnZUFjY2Vzc1Jlc3VsdDo6U2hvdWxkTm90Q2FuY2VsRXZl
bnQ7CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJ
TlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIGlmICghbmVlZHNRdWlya3MoKSkK
ICAgICAgICAgcmV0dXJuIFF1aXJrczo6U3RvcmFnZUFjY2Vzc1Jlc3VsdDo6U2hvdWxkTm90Q2Fu
Y2VsRXZlbnQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUXVpcmtzLmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1F1aXJrcy5oCmluZGV4IDk5ODdiNmJiZjBmMWY2MWRiNmY4OTli
OWFhNzQ4YTJlYWE2MzUyMjAuLmQwOWI2MTVhMzAzYzkyMzEyNTI5MjU0NGRlN2E0NzEwODIzZjg4
NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUXVpcmtzLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9RdWlya3MuaApAQCAtMzksNyArMzksNyBAQCBjbGFzcyBIVE1MVmlkZW9F
bGVtZW50OwogY2xhc3MgTGF5b3V0VW5pdDsKIGNsYXNzIFBsYXRmb3JtTW91c2VFdmVudDsKIAot
I2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElH
RU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiBjbGFzcyBSZWdpc3RyYWJsZURvbWFpbjsKIGVudW0g
Y2xhc3MgU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQgOiBib29sOwogI2VuZGlmCkBAIC0xMzksNyAr
MTM5LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgYmxvY2tzUmV0dXJuVG9G
dWxsc2NyZWVuRnJvbVBpY3R1cmVJblBpY3R1cmVRdWlyaygpIGNvbnN0OwogICAgIGJvb2wgc2hv
dWxkRGlzYWJsZUVuZEZ1bGxzY3JlZW5FdmVudFdoZW5FbnRlcmluZ1BpY3R1cmVJblBpY3R1cmVG
cm9tRnVsbHNjcmVlblF1aXJrKCkgY29uc3Q7CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9T
VEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQog
ICAgIHN0YXRpYyBib29sIGlzTWljcm9zb2Z0VGVhbXNSZWRpcmVjdFVSTChjb25zdCBVUkwmKTsK
ICAgICBzdGF0aWMgYm9vbCBoYXNTdG9yYWdlQWNjZXNzRm9yQWxsTG9naW5Eb21haW5zKGNvbnN0
IEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+JiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mKTsK
ICAgICBzdGF0aWMgY29uc3QgU3RyaW5nJiBCQkNSYWRpb1BsYXllclVSTFN0cmluZygpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNl
c3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFn
ZVNlc3Npb24uY3BwCmluZGV4IDAzMjQwODhiMDQ1ZmY4MTYzZmYzYzNmNDYyZGZmNzUzNjRlNzY1
MGEuLmIyMTc3OWY3MDk0MDhkMzI4NTZmMDFkZGQ1NDc5ODhhYTY0MWJjM2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vz
c2lvbi5jcHAKQEAgLTMyLDcgKzMyLDcgQEAKICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQu
aD4KICNpbmNsdWRlIDx3dGYvUHJvY2Vzc1ByaXZpbGVnZS5oPgogCi0jaWYgRU5BQkxFKFJFU09V
UkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJF
VkVOVElPTikKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKICNpZiBFTkFCTEUoUFVCTElD
X1NVRkZJWF9MSVNUKQogI2luY2x1ZGUgIlB1YmxpY1N1ZmZpeC5oIgpAQCAtNjUsNyArNjUsNyBA
QCBWZWN0b3I8Q29va2llPiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmRvbUNvb2tpZXNGb3JIb3N0
KGNvbnN0IFN0cmluZyYpCiB9CiAjZW5kaWYgLy8gIVBMQVRGT1JNKENPQ09BKQogCi0jaWYgRU5B
QkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJB
Q0tJTkdfUFJFVkVOVElPTikKIAogI2lmICFVU0UoU09VUCkKIHZvaWQgTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uOjpzZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChib29sIGVuYWJsZWQpCkBA
IC00MjksNiArNDI5LDYgQEAgc3RkOjpvcHRpb25hbDxSZWdpc3RyYWJsZURvbWFpbj4gTmV0d29y
a1N0b3JhZ2VTZXNzaW9uOjpmaW5kQWRkaXRpb25hbExvZ2luRG9tYWkKICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OwogfQogCi0jZW5kaWYgLy8gRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElD
UykKKyNlbmRpZiAvLyBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKIAog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3Rv
cmFnZVNlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0
b3JhZ2VTZXNzaW9uLmgKaW5kZXggYjc2ZDMxYWI1Y2ExZTJhM2NkNTAyY2JjNWQ4ZDlkZWM4NmIy
Nzc0Zi4uM2NiZTNmOTQ3M2Q0ZWYzNWIwNTc3ODQ3YmNiOWYwYzcwMzU1ZmMyNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vz
c2lvbi5oCkBAIC0xODIsNyArMTgyLDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIGJv
b2wgc3VwcG9ydHNDb29raWVDaGFuZ2VMaXN0ZW5lckFQSSgpIGNvbnN0OwogI2VuZGlmCiAKLSNp
ZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VO
VF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0UmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoYm9vbCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBy
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCgpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTG9nZ2luZ0VuYWJsZWQoYm9vbCk7
CkBAIC0yNzAsNyArMjcwLDcgQEAgcHJpdmF0ZToKIAogICAgIENyZWRlbnRpYWxTdG9yYWdlIG1f
Y3JlZGVudGlhbFN0b3JhZ2U7CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNT
KQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIGJvb2wg
bV9pc1Jlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkID0gZmFsc2U7CiAgICAgYm9vbCBtX2lz
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTG9nZ2luZ0VuYWJsZWQgPSBmYWxzZTsKICAgICBz
dGQ6Om9wdGlvbmFsPFNlY29uZHM+IGNsaWVudFNpZGVDb29raWVDYXAoY29uc3QgVG9wRnJhbWVE
b21haW4mLCBzdGQ6Om9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPikgY29uc3Q7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL05ldHdvcmtTdG9yYWdlU2Vz
c2lvbkNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9OZXR3
b3JrU3RvcmFnZVNlc3Npb25Db2NvYS5tbQppbmRleCA5YWIzZDRiMjg2ZmRkZjQyODRkZGEzNDRj
YjNjYTMwMGIzYWU3NGRiLi41MGM1MDA2ZjcyMjYzOGY1ZTUzZjdhYjhkNjBkZjUyY2E3NTI0MmJm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL05ldHdv
cmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY29jb2EvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ29jb2EubW0KQEAgLTMzMiw3ICszMzIs
NyBAQCBOU0hUVFBDb29raWUgKk5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y2FwRXhwaXJ5T2ZQZXJz
aXN0ZW50Q29va2llKE5TSFRUUENvb2tpZSAqYwogCiBSZXRhaW5QdHI8TlNBcnJheT4gTmV0d29y
a1N0b3JhZ2VTZXNzaW9uOjpjb29raWVzRm9yVVJMKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29u
c3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBzdGQ6Om9wdGlv
bmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgc3RkOjpvcHRpb25hbDxQYWdlSWRlbnRpZmll
cj4gcGFnZUlELCBTaG91bGRBc2tJVFAgc2hvdWxkQXNrSVRQLCBTaG91bGRSZWxheFRoaXJkUGFy
dHlDb29raWVCbG9ja2luZyBzaG91bGRSZWxheFRoaXJkUGFydHlDb29raWVCbG9ja2luZykgY29u
c3QKIHsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJ
TlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIGlmIChzaG91bGRBc2tJVFAgPT0g
U2hvdWxkQXNrSVRQOjpZZXMgJiYgc2hvdWxkQmxvY2tDb29raWVzKGZpcnN0UGFydHksIHVybCwg
ZnJhbWVJRCwgcGFnZUlELCBzaG91bGRSZWxheFRoaXJkUGFydHlDb29raWVCbG9ja2luZykpCiAg
ICAgICAgIHJldHVybiBuaWw7CiAjZWxzZQpAQCAtNDQ0LDcgKzQ0NCw3IEBAIHZvaWQgTmV0d29y
a1N0b3JhZ2VTZXNzaW9uOjpzZXRDb29raWVzRnJvbURPTShjb25zdCBVUkwmIGZpcnN0UGFydHks
IGNvbnN0IFNhbWVTCiAKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIAotI2lmIEVO
QUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RS
QUNLSU5HX1BSRVZFTlRJT04pCiAgICAgaWYgKHNob3VsZEFza0lUUCA9PSBTaG91bGRBc2tJVFA6
OlllcyAmJiBzaG91bGRCbG9ja0Nvb2tpZXMoZmlyc3RQYXJ0eSwgdXJsLCBmcmFtZUlELCBwYWdl
SUQsIHNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nKSkKICAgICAgICAgcmV0dXJu
OwogI2Vsc2UKQEAgLTQ1Niw3ICs0NTYsNyBAQCB2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6
c2V0Q29va2llc0Zyb21ET00oY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lUwogICAg
IE5TVVJMICpjb29raWVVUkwgPSB1cmw7CiAKICAgICBzdGQ6Om9wdGlvbmFsPFNlY29uZHM+IGNv
b2tpZUNhcDsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJM
RShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIGNvb2tpZUNhcCA9IGNsaWVu
dFNpZGVDb29raWVDYXAoUmVnaXN0cmFibGVEb21haW4geyBmaXJzdFBhcnR5IH0sIHBhZ2VJRCk7
CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
dXJsL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkN1cmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jdXJsL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkN1cmwuY3BwCmluZGV4IDc2MThk
Y2E0NGQwMDQxZDNmMzc2NDU4N2UxNWY0MGM1Y2UzYzhlYzcuLjUyNDliZmI0YTViYTUyOTgxZTFm
NGNiZTQzMDQ4ZTI3NTA3YjAzM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY3VybC9OZXR3b3JrU3RvcmFnZVNlc3Npb25DdXJsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ3VybC5j
cHAKQEAgLTk3LDcgKzk3LDcgQEAgQ29va2llSmFyREImIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6
Y29va2llRGF0YWJhc2UoKSBjb25zdAogCiB2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2V0
Q29va2llc0Zyb21ET00oY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8m
LCBjb25zdCBVUkwmIHVybCwgc3RkOjpvcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+LCBzdGQ6Om9w
dGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIFNob3VsZEFza0lUUCwgY29uc3QgU3RyaW5n
JiB2YWx1ZSwgU2hvdWxkUmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmcpIGNvbnN0CiB7Ci0j
aWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdF
TlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBzdGQ6Om9wdGlvbmFsPFNlY29uZHM+IGNhcHBl
ZExpZmV0aW1lID0gY2xpZW50U2lkZUNvb2tpZUNhcChSZWdpc3RyYWJsZURvbWFpbiB7IGZpcnN0
UGFydHkgfSwgcGFnZUlEKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHBhZ2VJRCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uU291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
TmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAKaW5kZXggMzM2MGE3ZWIxOTQxMzE5MzcxYmYz
MTY5MDY3MmJkZDVmMWM0YThkNC4uNWIzMjUzNGUyYmNhZjE3MDEzMzFlOTU0MTAxM2I4YTVjMzhj
NGQzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05l
dHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcApAQCAtMjkyLDcgKzI5
Miw3IEBAIEhUVFBDb29raWVBY2NlcHRQb2xpY3kgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29r
aWVBY2NlcHRQb2xpY3koKSBjb25zdAogICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiB9CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJ
TlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Np
b246OnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGJvb2wgZW5hYmxlZCkKIHsKICAg
ICBpZiAoZW5hYmxlZCkgewpAQCAtMzIzLDcgKzMyMyw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBo
dHRwT25seUNvb2tpZUV4aXN0cyhjb25zdCBHU0xpc3QqIGNvb2tpZXMsIGNvbnN0IGdjaGFyKiBu
YW1lCiAKIHZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzZXRDb29raWVzRnJvbURPTShjb25z
dCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYgdXJsLCBz
dGQ6Om9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgc3RkOjpvcHRpb25hbDxQYWdl
SWRlbnRpZmllcj4gcGFnZUlELCBTaG91bGRBc2tJVFAgc2hvdWxkQXNrSVRQLCBjb25zdCBTdHJp
bmcmIHZhbHVlLCBTaG91bGRSZWxheFRoaXJkUGFydHlDb29raWVCbG9ja2luZyByZWxheFRoaXJk
UGFydHlDb29raWVCbG9ja2luZykgY29uc3QKIHsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9T
VEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQog
ICAgIGlmIChzaG91bGRBc2tJVFAgPT0gU2hvdWxkQXNrSVRQOjpZZXMgJiYgc2hvdWxkQmxvY2tD
b29raWVzKGZpcnN0UGFydHksIHVybCwgZnJhbWVJRCwgcGFnZUlELCByZWxheFRoaXJkUGFydHlD
b29raWVCbG9ja2luZykpCiAgICAgICAgIHJldHVybjsKICNlbHNlCkBAIC0zNDAsNyArMzQwLDcg
QEAgdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNldENvb2tpZXNGcm9tRE9NKGNvbnN0IFVS
TCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVMKICAgICBpZiAoIWZpcnN0UGFydHlVUkkpCiAgICAg
ICAgIHJldHVybjsKIAotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYg
RU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgYXV0byBjYXBwZWRM
aWZldGltZSA9IGNsaWVudFNpZGVDb29raWVDYXAoUmVnaXN0cmFibGVEb21haW4geyBmaXJzdFBh
cnR5IH0sIHBhZ2VJRCk7CiAjZW5kaWYKIApAQCAtMzYyLDcgKzM2Miw3IEBAIHZvaWQgTmV0d29y
a1N0b3JhZ2VTZXNzaW9uOjpzZXRDb29raWVzRnJvbURPTShjb25zdCBVUkwmIGZpcnN0UGFydHks
IGNvbnN0IFNhbWVTCiAgICAgICAgIGlmIChodHRwT25seUNvb2tpZUV4aXN0cyhleGlzdGluZ0Nv
b2tpZXMsIHNvdXBfY29va2llX2dldF9uYW1lKGNvb2tpZS5nZXQoKSksIHNvdXBfY29va2llX2dl
dF9wYXRoKGNvb2tpZS5nZXQoKSkpKQogICAgICAgICAgICAgY29udGludWU7CiAKLSNpZiBFTkFC
TEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFD
S0lOR19QUkVWRU5USU9OKQogICAgICAgICAvLyBDYXAgbGlmZXRpbWUgb2YgcGVyc2lzdGVudCwg
Y2xpZW50LXNpZGUgY29va2llcyB0byBhIHdlZWsuCiAgICAgICAgIGlmIChjYXBwZWRMaWZldGlt
ZSkgewogICAgICAgICAgICAgaWYgKGF1dG8qIGV4cGlyZXNEYXRlID0gc291cF9jb29raWVfZ2V0
X2V4cGlyZXMoY29va2llLmdldCgpKSkgewpAQCAtNTM1LDcgKzUzNSw3IEBAIGJvb2wgTmV0d29y
a1N0b3JhZ2VTZXNzaW9uOjpnZXRSYXdDb29raWVzKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29u
c3QgU2FtZVNpdGVJCiB7CiAgICAgcmF3Q29va2llcy5jbGVhcigpOwogCi0jaWYgRU5BQkxFKFJF
U09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdf
UFJFVkVOVElPTikKICAgICBpZiAoc2hvdWxkQXNrSVRQID09IFNob3VsZEFza0lUUDo6WWVzICYm
IHNob3VsZEJsb2NrQ29va2llcyhmaXJzdFBhcnR5LCB1cmwsIGZyYW1lSUQsIHBhZ2VJRCwgcmVs
YXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmcpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICNlbHNl
CkBAIC01NzUsNyArNTc1LDcgQEAgYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmdldFJhd0Nv
b2tpZXMoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUkKIAogc3RhdGljIHN0
ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IGNvb2tpZXNGb3JTZXNzaW9uKGNvbnN0IE5ldHdvcmtTdG9y
YWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmIHVy
bCwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIHN0ZDo6b3B0aW9uYWw8RnJhbWVJ
ZGVudGlmaWVyPiBmcmFtZUlELCBzdGQ6Om9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQs
IGJvb2wgZm9ySFRUUEhlYWRlciwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNv
b2tpZXMsIFNob3VsZEFza0lUUCBzaG91bGRBc2tJVFAsIFNob3VsZFJlbGF4VGhpcmRQYXJ0eUNv
b2tpZUJsb2NraW5nIHJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nKQogewotI2lmIEVOQUJM
RShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNL
SU5HX1BSRVZFTlRJT04pCiAgICAgaWYgKHNob3VsZEFza0lUUCA9PSBTaG91bGRBc2tJVFA6Olll
cyAmJiBzZXNzaW9uLnNob3VsZEJsb2NrQ29va2llcyhmaXJzdFBhcnR5LCB1cmwsIGZyYW1lSUQs
IHBhZ2VJRCwgcmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmcpKQogICAgICAgICByZXR1cm4g
eyB7IH0sIGZhbHNlIH07CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNw
cCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHAKaW5kZXggMjliYWI5YTI5Mzk5ZDE2MjQ5YzEyOTZl
NjhhYWY3NzhmMzMwYTE2MC4uZjFmMzAxZDJjNjQwMzExOThiNzUwODI2ZGUyMjE5ZjAyYzU2MWEx
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNl
U3RvcmUuY3BwCkBAIC0yNiw3ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaCIKIAotI2lmIEVOQUJMRShS
RVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5H
X1BSRVZFTlRJT04pCiAKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Nl
c3Npb24uaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3Np
Zmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5oIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFz
ZVN0b3JlLmgKaW5kZXggOWJlODE3NjQ1ZjhmM2YyNzY5YjhiOWZmMWUwYzQ0MDE2M2I0MmU3MC4u
MWU1NGFjMGQzOGRhM2QyYjQyZGI3YzQ0MTI2ZDYzZjlkYmM4MDZiYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFz
c2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmgKQEAgLTI1LDcgKzI1
LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNU
SUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogCiAjaW5j
bHVkZSAiRGF0YWJhc2VVdGlsaXRpZXMuaCIKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmUuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xh
c3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuY3BwIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1v
cnlTdG9yZS5jcHAKaW5kZXggZjM2MmY3YmIzZmJhYjY2MDRlYzljMzc4YTEzZWQ1N2FkY2FjZDhk
Yi4uOGFkMTE1MzgzYzVlYmNkZDY1YWI4NjJmNzU1Y2U4ZGUwYTkzZmRhNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRp
c3RpY3NNZW1vcnlTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9D
bGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5jcHAKQEAgLTI2LDcg
KzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzTWVtb3J5U3RvcmUuaCIKIAotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJ
Q1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAKICNpbmNs
dWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Nlc3Npb24uaCIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0
aXN0aWNzTWVtb3J5U3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3Np
Zmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuaAppbmRleCAzZDdmNzVhMDE2
MDRmZTZlMTg0YmRlZTBhODNhMjk2YTI4YjgwYzQxLi41NmY2N2JmMDg4ZGM2MDAyMjNmOGJmYTMw
ZmRmNzg0OGUwYmVlZDI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmgKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3NNZW1vcnlTdG9yZS5oCkBAIC0yNSw3ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCi0jaWYg
RU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRf
VFJBQ0tJTkdfUFJFVkVOVElPTikKIAogI2luY2x1ZGUgIlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZS5oIgogI2luY2x1ZGUgIldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oIgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Ns
YXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcAppbmRleCBlYmUyMzUzNjU0
ZTA5YTIyMTU4N2IyNTdhZWU2ODc2ZWNmNTMxNmUyLi45ZTE3NDI0MTY4MmYzNTU4ODBhZDdhYWNl
NzQ2YTM0NjNhZDAyZTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlLmNwcApAQCAtMjYsNyArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oIgogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xP
QURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElP
TikKIAogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzcy5oIgpA
QCAtMzc1LDcgKzM3NSw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjp1cGRh
dGVDbGllbnRTaWRlQ29va2llc0FnZUNhcCgpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01h
aW4oKSk7CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJM
RShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIFJ1bkxvb3A6Om1haW4oKS5k
aXNwYXRjaChbc3RvcmUgPSBtYWtlUmVmKG1fc3RvcmUpLCBzZWNvbmRzID0gbV9wYXJhbWV0ZXJz
LmNsaWVudFNpZGVDb29raWVzQWdlQ2FwVGltZV0gKCkgewogICAgICAgICBpZiAoYXV0byogbmV0
d29ya1Nlc3Npb24gPSBzdG9yZS0+bmV0d29ya1Nlc3Npb24oKSkgewogICAgICAgICAgICAgaWYg
KGF1dG8qIHN0b3JhZ2VTZXNzaW9uID0gbmV0d29ya1Nlc3Npb24tPm5ldHdvcmtTdG9yYWdlU2Vz
c2lvbigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lm
aWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCmluZGV4IGMx
ZWRmNTZkMzViYmI2NzM4OGI3NzMzNTQ0ZDRlMTFmZWI2NzcyMTEuLjlhOTgzYWRjNzcyMTg5OWNh
MjdkNjJiOTY2YTE0ZWEyYzNhZjkxNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlLmgKQEAgLTI1LDcgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpZiBFTkFC
TEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFD
S0lOR19QUkVWRU5USU9OKQogCiAjaW5jbHVkZSAiUmVzb3VyY2VMb2FkU3RhdGlzdGljc0NsYXNz
aWZpZXIuaCIKICNpbmNsdWRlICJXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaCIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKaW5kZXggYTVl
OWFlZjYyZTljNDgxMWNlNGNmNjU4ZmU2NmVhZGNhNjNjYjY4NS4uZmM3NGJjYzBlYzFhMmNjYzI5
ZjVkMmQzZDI0ODhjY2JlNTdmYzAyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZS5jcHAKQEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaCIKIAotI2lmIEVO
QUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RS
QUNLSU5HX1BSRVZFTlRJT04pCiAKICNpbmNsdWRlICJBUElEaWN0aW9uYXJ5LmgiCiAjaW5jbHVk
ZSAiTG9nZ2luZy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9D
bGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZS5oCmluZGV4IDA2NzljOTg2NWNkMGJhYjAxZjkyMDlkNzNmNTU5NzU5MjBlYmE2ZmIuLjY2MWIx
NTYzZWM2NGI2NmU3OGYxZjhkNTU0YzZkOWRmMzczMWFlNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKQEAgLTI1LDcgKzI1LDcgQEAKIAogI3ByYWdt
YSBvbmNlCiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJM
RShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogCiAjaW5jbHVkZSAiQXJndW1lbnRD
b2RlcnMuaCIKICNpbmNsdWRlICJEZWNvZGVyLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3Bw
CmluZGV4IGExN2E1NjM5YjRkOTAwZmE2MDA2NmI3NjgyNDhhOGU4ZmE4NjllNjUuLjVkZDhiMzU2
ODNkNTg4ZjFlN2Q3MmNiMTgxMjNjMjY2NzY1ZGU2MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuY3BwCkBAIC03MTQsNyArNzE0LDcgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6Y29va2llc0ZvckRPTShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFMKICAgICBp
ZiAoIW5ldHdvcmtTdG9yYWdlU2Vzc2lvbikKICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5k
bGVyKHsgfSwgZmFsc2UpOwogICAgIGF1dG8gcmVzdWx0ID0gbmV0d29ya1N0b3JhZ2VTZXNzaW9u
LT5jb29raWVzRm9yRE9NKGZpcnN0UGFydHksIHNhbWVTaXRlSW5mbywgdXJsLCBmcmFtZUlELCBw
YWdlSUQsIGluY2x1ZGVTZWN1cmVDb29raWVzLCBzaG91bGRBc2tJVFAsIHNob3VsZFJlbGF4VGhp
cmRQYXJ0eUNvb2tpZUJsb2NraW5nKTsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNU
SUNTKSAmJiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJB
Q0tJTkdfUFJFVkVOVElPTikgJiYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgaWYgKGF1dG8q
IHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbigpKSB7CiAgICAgICAgIGlmIChzZXNzaW9uLT5zaG91
bGRMb2dDb29raWVJbmZvcm1hdGlvbigpKQogICAgICAgICAgICAgTmV0d29ya1Jlc291cmNlTG9h
ZGVyOjpsb2dDb29raWVJbmZvcm1hdGlvbigqdGhpcywgIk5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpjb29raWVzRm9yRE9NIiwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCB2b2lkKj4odGhp
cyksICpuZXR3b3JrU3RvcmFnZVNlc3Npb24sIGZpcnN0UGFydHksIHNhbWVTaXRlSW5mbywgdXJs
LCBlbXB0eVN0cmluZygpLCBmcmFtZUlELCBwYWdlSUQsIHN0ZDo6bnVsbG9wdCk7CkBAIC03Mjks
NyArNzI5LDcgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6c2V0Q29va2ll
c0Zyb21ET00oY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb24KICAgICBpZiAoIW5ldHdvcmtTdG9y
YWdlU2Vzc2lvbikKICAgICAgICAgcmV0dXJuOwogICAgIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbi0+
c2V0Q29va2llc0Zyb21ET00oZmlyc3RQYXJ0eSwgc2FtZVNpdGVJbmZvLCB1cmwsIGZyYW1lSUQs
IHBhZ2VJRCwgc2hvdWxkQXNrSVRQLCBjb29raWVTdHJpbmcsIHNob3VsZFJlbGF4VGhpcmRQYXJ0
eUNvb2tpZUJsb2NraW5nKTsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKSAm
JiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdf
UFJFVkVOVElPTikgJiYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgaWYgKGF1dG8qIHNlc3Np
b24gPSBuZXR3b3JrU2Vzc2lvbigpKSB7CiAgICAgICAgIGlmIChzZXNzaW9uLT5zaG91bGRMb2dD
b29raWVJbmZvcm1hdGlvbigpKQogICAgICAgICAgICAgTmV0d29ya1Jlc291cmNlTG9hZGVyOjps
b2dDb29raWVJbmZvcm1hdGlvbigqdGhpcywgIk5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpzZXRDb29raWVzRnJvbURPTSIsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qgdm9pZCo+KHRoaXMp
LCAqbmV0d29ya1N0b3JhZ2VTZXNzaW9uLCBmaXJzdFBhcnR5LCBzYW1lU2l0ZUluZm8sIHVybCwg
ZW1wdHlTdHJpbmcoKSwgZnJhbWVJRCwgcGFnZUlELCBzdGQ6Om51bGxvcHQpOwpAQCAtOTQyLDEz
ICs5NDIsMTMgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y2xlYXJQYWdl
U3BlY2lmaWNEYXRhKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCkKICAgICBpZiAoYXV0byogc2Vzc2lv
biA9IG5ldHdvcmtTZXNzaW9uKCkpCiAgICAgICAgIHNlc3Npb24tPm5ldHdvcmtMb2FkU2NoZWR1
bGVyKCkuY2xlYXJQYWdlRGF0YShwYWdlSUQpOwogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURf
U1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikK
ICAgICBpZiAoYXV0byogc3RvcmFnZVNlc3Npb24gPSBuZXR3b3JrUHJvY2VzcygpLnN0b3JhZ2VT
ZXNzaW9uKG1fc2Vzc2lvbklEKSkKICAgICAgICAgc3RvcmFnZVNlc3Npb24tPmNsZWFyUGFnZVNw
ZWNpZmljRGF0YUZvclJlc291cmNlTG9hZFN0YXRpc3RpY3MocGFnZUlEKTsKICNlbmRpZgogfQog
Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxM
SUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6OnJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgUGFnZUlkZW50aWZpZXIgcGFnZUlEKQogewogICAgIGlmIChhdXRvKiBzdG9yYWdlU2Vzc2lv
biA9IG5ldHdvcmtQcm9jZXNzKCkuc3RvcmFnZVNlc3Npb24obV9zZXNzaW9uSUQpKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5oCmluZGV4IDk4YzRmM2RkYjY2OGRhZDZmZWI2MzlmNGUyNzc1ZTZlNmNm
YzQ2MzguLmU5OGEyZTVkYTE1ZjZiMDhkZDI1MGJlOThiNmY4ZmFiNTMzNDFhNGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmgKQEAgLTI4OSw3ICsyODksNyBAQCBwcml2YXRlOgogCiAgICAgdm9p
ZCBjbGVhclBhZ2VTcGVjaWZpY0RhdGEoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOwogCi0jaWYg
RU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRf
VFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICB2b2lkIHJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFt
ZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsKIAog
ICAgIHZvaWQgbG9nVXNlckludGVyYWN0aW9uKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCAxZDVjODEwMjA0
YjZhNjlhNmQ4ZTkxZTg0ODJjNTkyNDkxNjFkMzRkLi4xNWRhNmFiZmM1Mzg2OWZkNDM4NjI0NzY5
NmZlYTUxMWI2YTlkYjkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2Fn
ZXMuaW4KQEAgLTY2LDcgKzY2LDcgQEAgbWVzc2FnZXMgLT4gTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogCiAgICAgQ2xlYXJQYWdlU3BlY2lmaWNEYXRhKFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCk7CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9B
RF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9O
KQogICAgIFJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlEKTsKICAgICBMb2dVc2Vy
SW50ZXJhY3Rpb24oV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gZG9tYWluKQogICAgIFJlc291
cmNlTG9hZFN0YXRpc3RpY3NVcGRhdGVkKFZlY3RvcjxXZWJDb3JlOjpSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzPiBzdGF0aXN0aWNzKSAtPiAoKSBBc3luYwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwCmluZGV4IDUyNjI3Njc2NzAyYmMxNGRkYmNk
YzZmNThjYzE4M2RjNDc1ODQzMjAuLmVkMTQ1NDZjMDdhMTkzYTljYzJhN2ZiOWM4OTdhNGVmZWYw
YzgzOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Rh
dGFUYXNrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRh
VGFzay5jcHAKQEAgLTE2OSw3ICsxNjksNyBAQCBib29sIE5ldHdvcmtEYXRhVGFzazo6aXNUaGly
ZFBhcnR5UmVxdWVzdChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlcwogCiB2
b2lkIE5ldHdvcmtEYXRhVGFzazo6cmVzdHJpY3RSZXF1ZXN0UmVmZXJyZXJUb09yaWdpbklmTmVl
ZGVkKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKLSNpZiBFTkFCTEUoUkVT
T1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19Q
UkVWRU5USU9OKQogICAgIGlmICgobV9zZXNzaW9uLT5zZXNzaW9uSUQoKS5pc0VwaGVtZXJhbCgp
IHx8IG1fc2Vzc2lvbi0+aXNSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCgpKSAmJiBtX3Nl
c3Npb24tPnNob3VsZERvd25ncmFkZVJlZmVycmVyKCkgJiYgaXNUaGlyZFBhcnR5UmVxdWVzdChy
ZXF1ZXN0KSkKICAgICAgICAgcmVxdWVzdC5zZXRFeGlzdGluZ0hUVFBSZWZlcnJlclRvT3JpZ2lu
U3RyaW5nKCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5jcHAKaW5kZXggYTM1Y2VhNjM1NWY1ZTk2MWQ4ZTI4MzdhM2FiY2MyZDBlMzJm
ZTA0ZS4uNGRjYjMyY2RiNzU3NTY0YmZiMDIzNDU1ZjlmZmNiYWFiM2RmNjFmYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTU3Nyw3
ICs1NzcsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpkZXN0cm95U2Vzc2lvbihQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQpCiAgICAgcmVtb3ZlU3RvcmFnZU1hbmFnZXJGb3JTZXNzaW9uKHNlc3Np
b25JRCk7CiB9CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVO
QUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogdm9pZCBOZXR3b3JrUHJvY2Vz
czo6ZHVtcFJlc291cmNlTG9hZFN0YXRpc3RpY3MoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAg
ICAgaWYgKGF1dG8qIG5ldHdvcmtTZXNzaW9uID0gdGhpcy0+bmV0d29ya1Nlc3Npb24oc2Vzc2lv
bklEKSkgewpAQCAtMTMzNyw3ICsxMzM3LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0VGhp
cmRQYXJ0eUNOQU1FRG9tYWluRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQKICAg
ICAgICAgbmV0d29ya1Nlc3Npb24tPnNldFRoaXJkUGFydHlDTkFNRURvbWFpbkZvclRlc3Rpbmco
V1RGTW92ZShkb21haW4pKTsKICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogfQotI2VuZGlmIC8v
IEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjZW5kaWYgLy8gRU5BQkxFKElOVEVM
TElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldFBy
aXZhdGVDbGlja01lYXN1cmVtZW50RW5hYmxlZChib29sIGVuYWJsZWQpCiB7CkBAIC0xNTUzLDcg
KzE1NTMsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpmZXRjaFdlYnNpdGVEYXRhKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdAogICAgIH0KICNlbmRpZgogCi0jaWYg
RU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRf
VFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBpZiAod2Vic2l0ZURhdGFUeXBlcy5jb250YWlucyhX
ZWJzaXRlRGF0YVR5cGU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3MpKSB7CiAgICAgICAgIGlmIChh
dXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewogICAgICAgICAgICAg
aWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBzZXNzaW9uLT5yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzKCkpIHsKQEAgLTE2MDUsNyArMTYwNSw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6
OmRlbGV0ZVdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdl
YnNpCiAgICAgICAgIHN3U2VydmVyRm9yU2Vzc2lvbihzZXNzaW9uSUQpLmNsZWFyQWxsKFtjbGVh
clRhc2tzSGFuZGxlcl0geyB9KTsKICNlbmRpZgogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURf
U1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikK
ICAgICBpZiAod2Vic2l0ZURhdGFUeXBlcy5jb250YWlucyhXZWJzaXRlRGF0YVR5cGU6OlJlc291
cmNlTG9hZFN0YXRpc3RpY3MpKSB7CiAgICAgICAgIGlmIChhdXRvKiBuZXR3b3JrU2Vzc2lvbiA9
IHRoaXMtPm5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKICAgICAgICAgICAgIGlmIChhdXRv
KiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gbmV0d29ya1Nlc3Npb24tPnJlc291cmNlTG9hZFN0
YXRpc3RpY3MoKSkgewpAQCAtMTczNSw3ICsxNzM1LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6
ZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0
aW8KICAgICAgICAgV2ViQ29yZTo6Q3JlZGVudGlhbFN0b3JhZ2U6OnJlbW92ZVNlc3Npb25DcmVk
ZW50aWFsc1dpdGhPcmlnaW5zKG9yaWdpbkRhdGFzKTsKICAgICB9CiAKLSNpZiBFTkFCTEUoUkVT
T1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19Q
UkVWRU5USU9OKQogICAgIGlmICh3ZWJzaXRlRGF0YVR5cGVzLmNvbnRhaW5zKFdlYnNpdGVEYXRh
VHlwZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljcykpIHsKICAgICAgICAgaWYgKGF1dG8qIG5ldHdv
cmtTZXNzaW9uID0gdGhpcy0+bmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewogICAgICAgICAg
ICAgZm9yIChhdXRvJiBkb21haW4gOiByZWdpc3RyYWJsZURvbWFpbnMpIHsKQEAgLTE3NjEsNyAr
MTc2MSw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lu
cyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvCiAgICAgfQogfQogCi0jaWYgRU5BQkxF
KFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJ
TkdfUFJFVkVOVElPTikKIHN0YXRpYyBWZWN0b3I8U3RyaW5nPiBmaWx0ZXJGb3JSZWdpc3RyYWJs
ZURvbWFpbnMoY29uc3QgVmVjdG9yPFJlZ2lzdHJhYmxlRG9tYWluPiYgcmVnaXN0cmFibGVEb21h
aW5zLCBjb25zdCBIYXNoU2V0PFN0cmluZz4mIGZvdW5kVmFsdWVzKQogewogICAgIFZlY3RvcjxT
dHJpbmc+IHJlc3VsdDsKQEAgLTIwODQsNyArMjA4NCw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6
OnJlZ2lzdHJhYmxlRG9tYWluc1dpdGhXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsCiAgICAgICAgIH0pOwogICAgIH0KIH0KLSNlbmRpZiAvLyBFTkFCTEUoUkVTT1VSQ0VfTE9B
RF9TVEFUSVNUSUNTKQorI2VuZGlmIC8vIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVW
RU5USU9OKQogCiBDYWNoZVN0b3JhZ2U6OkVuZ2luZSogTmV0d29ya1Byb2Nlc3M6OmZpbmRDYWNo
ZUVuZ2luZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CkBAIC0yMjYxLDcgKzIyNjEsNyBA
QCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpwcmVwYXJlVG9TdXNwZW5kKGJvb2wgaXNTdXNwZW5zaW9u
SW1taW5lbnQsIENvbXBsZXRpb25IYW5kbAogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwog
ICAgIH0pOwogICAgIAotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYg
RU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgV2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlOjpzdXNwZW5kKFtjYWxsYmFja0FnZ3JlZ2F0b3JdIHsgfSk7CiAj
ZW5kaWYKICAgICBQQ006OlN0b3JlOjpwcmVwYXJlRm9yUHJvY2Vzc1RvU3VzcGVuZChbY2FsbGJh
Y2tBZ2dyZWdhdG9yXSB7IH0pOwpAQCAtMjMwNCw3ICsyMzA0LDcgQEAgdm9pZCBOZXR3b3JrUHJv
Y2Vzczo6cmVzdW1lKCkKICAgICBmb3IgKGF1dG8mIGNvbm5lY3Rpb24gOiBtX3dlYlByb2Nlc3ND
b25uZWN0aW9ucy52YWx1ZXMoKSkKICAgICAgICAgY29ubmVjdGlvbi0+ZW5kU3VzcGVuc2lvbigp
OwogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5U
RUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmU6OnJlc3VtZSgpOwogI2VuZGlmCiAgICAgUENNOjpTdG9yZTo6cHJvY2Vzc0RpZFJl
c3VtZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5o
CmluZGV4IDI4Y2JmZjVkNDEwMzhlYTdmZGZiODBkNDdiNjRjNjJjYzAxZGU0ZWMuLjEwNjAyMmNl
Njg1MTk3ODMwZjI2NWFhYjY1M2Q4NGUwMGY4NTFjZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKQEAgLTIxMiw3ICsyMTIsNyBAQCBwdWJsaWM6
CiAKICAgICB2b2lkIGFkZFdlYnNpdGVEYXRhU3RvcmUoV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRl
cnMmJik7CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJM
RShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIHZvaWQgY2xlYXJQcmV2YWxl
bnRSZXNvdXJjZShQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgY2xlYXJVc2VySW50ZXJhY3Rpb24o
UEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIGRlbGV0ZUFuZFJlc3RyaWN0V2Vic2l0ZURhdGFGb3JS
ZWdpc3RyYWJsZURvbWFpbnMoUEFMOjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5
cGU+LCBSZWdpc3RyYWJsZURvbWFpbnNUb0RlbGV0ZU9yUmVzdHJpY3RXZWJzaXRlRGF0YUZvciYm
LCBib29sIHNob3VsZE5vdGlmeVBhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgSGFz
aFNldDxSZWdpc3RyYWJsZURvbWFpbj4mKT4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCA1MTgwYzgy
OTY1MGFkNTZlMGIxZWZkM2JjNDUyMGNiZjMxYTI5NzMxLi5kNTk1ODkzNmZhZTExZWQ4YmIyYTM3
M2E3ZDRmZjBiZDdmYjM0ZjUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTc3LDcgKzc3LDcgQEAgbWVz
c2FnZXMgLT4gTmV0d29ya1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogCiAgICAgUHJlY29ubmVj
dFRvKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlm
aWVyIHdlYlBhZ2VQcm94eUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQsIFVS
TCB1cmwsIFN0cmluZyB1c2VyQWdlbnQsIGVudW06dWludDhfdCBXZWJDb3JlOjpTdG9yZWRDcmVk
ZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgZW51bTpib29sIHN0ZDo6b3B0
aW9uYWw8V2ViS2l0OjpOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4gaXNOYXZpZ2F0aW5nVG9B
cHBCb3VuZERvbWFpbiwgZW51bTpib29sIFdlYktpdDo6TGFzdE5hdmlnYXRpb25XYXNBcHBJbml0
aWF0ZWQgbGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQpOwogCi0jaWYgRU5BQkxFKFJFU09V
UkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJF
VkVOVElPTikKICAgICBDbGVhclByZXZhbGVudFJlc291cmNlKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVzb3VyY2VEb21haW4pIC0+ICgpIEFz
eW5jCiAgICAgQ2xlYXJVc2VySW50ZXJhY3Rpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZXNvdXJjZURvbWFpbikgLT4gKCkgQXN5bmMKICAg
ICBEdW1wUmVzb3VyY2VMb2FkU3RhdGlzdGljcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+
IChTdHJpbmcgZHVtcGVkU3RhdGlzdGljcykgQXN5bmMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAppbmRleCAyM2Q5NDg3
NWUyYzE1ODgyYWYyMThjOGRmZWFmNjEwMDAyYjkxNmFjLi5kYzRkNTAyNzk3NDlhNTJmYTc5OTY3
NjE4OGY5NThhYzdmMjM1MDM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0yNzAsNyArMjcwLDcgQEAgdm9p
ZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnJldHJpZXZlQ2FjaGVFbnRyeShjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QpCiB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6cmV0cmlldmVD
YWNoZUVudHJ5SW50ZXJuYWwoc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtDYWNoZTo6RW50cnk+JiYg
ZW50cnksIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QpCiB7CiAgICAgTE9BREVS
X1JFTEVBU0VfTE9HKCJyZXRyaWV2ZUNhY2hlRW50cnlJbnRlcm5hbDoiKTsKLSNpZiBFTkFCTEUo
UkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lO
R19QUkVWRU5USU9OKQogICAgIGlmIChlbnRyeS0+aGFzUmVhY2hlZFByZXZhbGVudFJlc291cmNl
QWdlQ2FwKCkpIHsKICAgICAgICAgTE9BREVSX1JFTEVBU0VfTE9HKCJyZXRyaWV2ZUNhY2hlRW50
cnlJbnRlcm5hbDogUmV2YWxpZGF0aW5nIGNhY2hlZCBlbnRyeSBiZWNhdXNlIGl0IHJlYWNoZWQg
dGhlIHByZXZhbGVudCByZXNvdXJjZSBhZ2UgY2FwIik7CiAgICAgICAgIG1fY2FjaGVFbnRyeUZv
ck1heEFnZUNhcFZhbGlkYXRpb24gPSBXVEZNb3ZlKGVudHJ5KTsKQEAgLTgwNCw3ICs4MDQsNyBA
QCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoTG9hZGluZyhjb25zdCBOZXR3
b3JrTG9hZE1ldHJpY3MmIG5ldHdvcmtMbwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0jaWYg
RU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykgJiYgIVJFTEVBU0VfTE9HX0RJU0FCTEVE
CisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pICYmICFSRUxFQVNF
X0xPR19ESVNBQkxFRAogICAgIGlmIChzaG91bGRMb2dDb29raWVJbmZvcm1hdGlvbihtX2Nvbm5l
Y3Rpb24sIHNlc3Npb25JRCgpKSkKICAgICAgICAgbG9nQ29va2llSW5mb3JtYXRpb24oKTsKICNl
bmRpZgpAQCAtODc3LDcgKzg3Nyw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRS
ZWNlaXZlQ2hhbGxlbmdlKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBjCiAKIHN0ZDo6
b3B0aW9uYWw8U2Vjb25kcz4gTmV0d29ya1Jlc291cmNlTG9hZGVyOjp2YWxpZGF0ZUNhY2hlRW50
cnlGb3JNYXhBZ2VDYXBWYWxpZGF0aW9uKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwg
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZWRpcmVjdFJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpCiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RB
VElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAg
ICBib29sIGV4aXN0aW5nQ2FjaGVFbnRyeU1hdGNoZXNOZXdSZXNwb25zZSA9IGZhbHNlOwogICAg
IGlmIChtX2NhY2hlRW50cnlGb3JNYXhBZ2VDYXBWYWxpZGF0aW9uKSB7CiAgICAgICAgIEFTU0VS
VChyZWRpcmVjdFJlc3BvbnNlLnNvdXJjZSgpID09IFJlc291cmNlUmVzcG9uc2U6OlNvdXJjZTo6
TmV0d29yayk7CkBAIC0xMjU3LDcgKzEyNTcsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRl
cjo6c2VuZFJlc3VsdEZvckNhY2hlRW50cnkoc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtDYWNoZQog
ICAgIH0KICNlbmRpZgogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykgJiYg
IVJFTEVBU0VfTE9HX0RJU0FCTEVECisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BS
RVZFTlRJT04pICYmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIGlmIChzaG91bGRMb2dDb29r
aWVJbmZvcm1hdGlvbihtX2Nvbm5lY3Rpb24sIHNlc3Npb25JRCgpKSkKICAgICAgICAgbG9nQ29v
a2llSW5mb3JtYXRpb24oKTsKICNlbmRpZgpAQCAtMTM2MSw3ICsxMzYxLDcgQEAgYm9vbCBOZXR3
b3JrUmVzb3VyY2VMb2FkZXI6OmNyb3NzT3JpZ2luQWNjZXNzQ29udHJvbENoZWNrRW5hYmxlZCgp
IGNvbnN0CiAgICAgcmV0dXJuIG1fcGFyYW1ldGVycy5jcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2xD
aGVja0VuYWJsZWQ7CiB9CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKSAm
JiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdf
UFJFVkVOVElPTikgJiYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiBib29sIE5ldHdvcmtSZXNvdXJj
ZUxvYWRlcjo6c2hvdWxkTG9nQ29va2llSW5mb3JtYXRpb24oTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MmIGNvbm5lY3Rpb24sIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICAgICBp
ZiAoYXV0byogc2Vzc2lvbiA9IGNvbm5lY3Rpb24ubmV0d29ya1Byb2Nlc3MoKS5uZXR3b3JrU2Vz
c2lvbihzZXNzaW9uSUQpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Jlc291cmNlTG9hZGVyLmgKaW5kZXggN2ZmNjFlYjFiZTgyNjczNTI4MWNkM2JjODFi
MDU4YzBlMDZiMTYwNC4uNTZmOTJlNmQ3YTNjNzkzMWEwOGYyOWVlZjA1OTg1Y2QzNWViNDFkMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VM
b2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJj
ZUxvYWRlci5oCkBAIC0xMjksNyArMTI5LDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNNYWluRnJh
bWVMb2FkKCkgY29uc3QgeyByZXR1cm4gaXNNYWluUmVzb3VyY2UoKSAmJiBtX3BhcmFtZXRlcnMu
ZnJhbWVBbmNlc3Rvck9yaWdpbnMuaXNFbXB0eSgpOyB9CiAgICAgYm9vbCBpc0Nyb3NzT3JpZ2lu
UHJlZmV0Y2goKSBjb25zdDsKIAotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1Mp
ICYmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lO
R19QUkVWRU5USU9OKSAmJiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBzdGF0aWMgYm9vbCBz
aG91bGRMb2dDb29raWVJbmZvcm1hdGlvbihOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYs
IFBBTDo6U2Vzc2lvbklEKTsKICAgICBzdGF0aWMgdm9pZCBsb2dDb29raWVJbmZvcm1hdGlvbihO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYsIGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0
IHZvaWQqIGxvZ2dlZE9iamVjdCwgY29uc3QgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9u
JiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mLCBj
b25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllcj4sIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+
LCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBpZGVudGlmaWVyKTsKICNlbmRpZgpAQCAtMTkzLDcg
KzE5Myw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjb25zdW1lU2FuZGJveEV4dGVuc2lvbnMoKTsK
ICAgICB2b2lkIGludmFsaWRhdGVTYW5kYm94RXh0ZW5zaW9ucygpOwogCi0jaWYgRU5BQkxFKFJF
U09VUkNFX0xPQURfU1RBVElTVElDUykgJiYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisjaWYgRU5B
QkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pICYmICFSRUxFQVNFX0xPR19ESVNB
QkxFRAogICAgIHZvaWQgbG9nQ29va2llSW5mb3JtYXRpb24oKSBjb25zdDsKICNlbmRpZgogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNw
cCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCmluZGV4
IDAzNTc1OTgwZjU1Y2U2NmExZmUwMDY2MjNmYmUyNjJiMDBjYWFlNmQuLmYzODYwYjIwNGYwNjMw
YTlkNmVlNTk2YzNlZjljYmRjMTI1MmQyYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCkBAIC0xMDMsNyArMTAzLDcgQEAgc3RhdGljIFVu
aXF1ZVJlZjxQQ006Ok1hbmFnZXJJbnRlcmZhY2U+IG1hbmFnZXJPclByb3h5KE5ldHdvcmtTZXNz
aW9uJiBuZXR3b3JrU2UKIE5ldHdvcmtTZXNzaW9uOjpOZXR3b3JrU2Vzc2lvbihOZXR3b3JrUHJv
Y2VzcyYgbmV0d29ya1Byb2Nlc3MsIGNvbnN0IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0
ZXJzJiBwYXJhbWV0ZXJzKQogICAgIDogbV9zZXNzaW9uSUQocGFyYW1ldGVycy5zZXNzaW9uSUQp
CiAgICAgLCBtX25ldHdvcmtQcm9jZXNzKG5ldHdvcmtQcm9jZXNzKQotI2lmIEVOQUJMRShSRVNP
VVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BS
RVZFTlRJT04pCiAgICAgLCBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkocGFyYW1l
dGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycy5kaXJlY3RvcnkpCiAgICAgLCBt
X3Nob3VsZEluY2x1ZGVMb2NhbGhvc3RJblJlc291cmNlTG9hZFN0YXRpc3RpY3MocGFyYW1ldGVy
cy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycy5zaG91bGRJbmNsdWRlTG9jYWxob3N0
ID8gU2hvdWxkSW5jbHVkZUxvY2FsaG9zdDo6WWVzIDogU2hvdWxkSW5jbHVkZUxvY2FsaG9zdDo6
Tm8pCiAgICAgLCBtX2VuYWJsZVJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUocGFyYW1l
dGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycy5lbmFibGVEZWJ1Z01vZGUgPyBF
bmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlOjpZZXMgOiBFbmFibGVSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlOjpObykKQEAgLTE0NiwyMSArMTQ2LDIxIEBAIE5ldHdv
cmtTZXNzaW9uOjpOZXR3b3JrU2Vzc2lvbihOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3Ms
IGNvbnN0IE5ldHdvcmtTZXNzCiAKICAgICBtX2lzU3RhbGVXaGlsZVJldmFsaWRhdGVFbmFibGVk
ID0gcGFyYW1ldGVycy5zdGFsZVdoaWxlUmV2YWxpZGF0ZUVuYWJsZWQ7CiAKLSNpZiBFTkFCTEUo
UkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lO
R19QUkVWRU5USU9OKQogICAgIHNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHBhcmFt
ZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnMuZW5hYmxlZCk7CiAjZW5kaWYK
IH0KIAogTmV0d29ya1Nlc3Npb246On5OZXR3b3JrU2Vzc2lvbigpCiB7Ci0jaWYgRU5BQkxFKFJF
U09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdf
UFJFVkVOVElPTikKICAgICBkZXN0cm95UmVzb3VyY2VMb2FkU3RhdGlzdGljcyhbXSB7IH0pOwog
I2VuZGlmCiAgICAgZm9yIChhdXRvJiBsb2FkZXIgOiBzdGQ6OmV4Y2hhbmdlKG1fa2VwdEFsaXZl
TG9hZHMsIHsgfSkpCiAgICAgICAgIGxvYWRlci0+YWJvcnQoKTsKIH0KIAotI2lmIEVOQUJMRShS
RVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5H
X1BSRVZFTlRJT04pCiB2b2lkIE5ldHdvcmtTZXNzaW9uOjpkZXN0cm95UmVzb3VyY2VMb2FkU3Rh
dGlzdGljcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7
CiAgICAgaWYgKCFtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3MpCkBAIC0xNzUsNyArMTc1LDcgQEAg
dm9pZCBOZXR3b3JrU2Vzc2lvbjo6aW52YWxpZGF0ZUFuZENhbmNlbCgpCiB7CiAgICAgZm9yIChh
dXRvJiB0YXNrIDogbV9kYXRhVGFza1NldCkKICAgICAgICAgdGFzay5pbnZhbGlkYXRlQW5kQ2Fu
Y2VsKCk7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUo
SU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBpZiAobV9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzKQogICAgICAgICBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3MtPmludmFsaWRhdGVB
bmRDYW5jZWwoKTsKICNlbmRpZgpAQCAtMTg5LDcgKzE4OSw3IEBAIHZvaWQgTmV0d29ya1Nlc3Np
b246OnJlY3JlYXRlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRTdG9yZShDb21wbGV0aW9uSGFuZGxl
cjx2b2lkCiAgICAgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKS5kZXN0cm95U3RvcmVGb3JUZXN0
aW5nKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAotI2lmIEVOQUJMRShSRVNPVVJD
RV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZF
TlRJT04pCiB2b2lkIE5ldHdvcmtTZXNzaW9uOjpzZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5h
YmxlZChib29sIGVuYWJsZSkKIHsKICAgICBBU1NFUlQoIW1faXNJbnZhbGlkYXRlZCk7CkBAIC0z
MTQsNyArMzE0LDcgQEAgdm9pZCBOZXR3b3JrU2Vzc2lvbjo6cmVzZXRDTkFNRURvbWFpbkRhdGEo
KQogICAgIG1fZmlyc3RQYXJ0eUhvc3RDTkFNRURvbWFpbnMuY2xlYXIoKTsKICAgICBtX3RoaXJk
UGFydHlDTkFNRURvbWFpbkZvclRlc3RpbmcgPSBzdGQ6Om51bGxvcHQ7CiB9Ci0jZW5kaWYgLy8g
RU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNlbmRpZiAvLyBFTkFCTEUoSU5URUxM
SUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKIAogdm9pZCBOZXR3b3JrU2Vzc2lvbjo6c3RvcmVQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYm
IHVuYXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50KQogewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCmluZGV4IDgyMjE1YzY5MzBjYzZmNDNh
YTRlY2I2MzBjNDk4YTM5YjUxMWJhYjQuLmZmYmY5MzIyY2Q5MjNiMTNmZWJiYWE3ZDBlOGY4YWU4
OTg4ZWYzMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Nlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNz
aW9uLmgKQEAgLTk2LDcgKzk2LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCByZWNyZWF0ZVByaXZh
dGVDbGlja01lYXN1cmVtZW50U3RvcmUoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKIAot
I2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElH
RU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkgY29uc3QgeyByZXR1cm4gbV9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzLmdldCgpOyB9CiAgICAgdm9pZCBzZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RW5hYmxlZChib29sKTsKICAgICBib29sIGlzUmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQo
KSBjb25zdDsKQEAgLTE4NiwxNCArMTg2LDE0IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBO
ZXR3b3JrU2Vzc2lvbihOZXR3b3JrUHJvY2VzcyYsIGNvbnN0IE5ldHdvcmtTZXNzaW9uQ3JlYXRp
b25QYXJhbWV0ZXJzJik7CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQor
I2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIHZvaWQgZm9y
d2FyZFJlc291cmNlTG9hZFN0YXRpc3RpY3NTZXR0aW5ncygpOwogI2VuZGlmCiAKICAgICBQQUw6
OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKICAgICBSZWY8TmV0d29ya1Byb2Nlc3M+IG1fbmV0d29y
a1Byb2Nlc3M7CiAgICAgV2Vha0hhc2hTZXQ8TmV0d29ya0RhdGFUYXNrPiBtX2RhdGFUYXNrU2V0
OwotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVM
TElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgU3RyaW5nIG1fcmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RpcmVjdG9yeTsKICAgICBSZWZQdHI8V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlPiBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3M7CiAgICAgU2hvdWxkSW5jbHVkZUxvY2FsaG9z
dCBtX3Nob3VsZEluY2x1ZGVMb2NhbGhvc3RJblJlc291cmNlTG9hZFN0YXRpc3RpY3MgeyBTaG91
bGRJbmNsdWRlTG9jYWxob3N0OjpZZXMgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcAppbmRleCBkOTA2MDVmMTgxM2U5MGJmMzVh
YTAxYjcwMTEyN2Q1YTlkYTQ5ZGJkLi4xNmNjNTBmNzI3ZTNiNmM0OWYyMWJlMTg5NDliNWIwMDBj
MWFmMTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05l
dHdvcmtDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9O
ZXR3b3JrQ2FjaGUuY3BwCkBAIC01MjAsNyArNTIwLDcgQEAgc3RkOjp1bmlxdWVfcHRyPEVudHJ5
PiBDYWNoZTo6c3RvcmVSZWRpcmVjdChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJl
cXUKIAogICAgIGF1dG8gY2FjaGVFbnRyeSA9IG1ha2VSZWRpcmVjdEVudHJ5KHJlcXVlc3QsIHJl
c3BvbnNlLCByZWRpcmVjdFJlcXVlc3QpOwogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RB
VElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAg
ICBpZiAobWF4QWdlQ2FwKSB7CiAgICAgICAgIExPRyhOZXR3b3JrQ2FjaGUsICIoTmV0d29ya1By
b2Nlc3MpIGNhcHBpbmcgbWF4IGFnZSBmb3IgcmVkaXJlY3QgJXMgLT4gJXMiLCByZXF1ZXN0LnVy
bCgpLnN0cmluZygpLmxhdGluMSgpLmRhdGEoKSwgcmVkaXJlY3RSZXF1ZXN0LnVybCgpLnN0cmlu
ZygpLmxhdGluMSgpLmRhdGEoKSk7CiAgICAgICAgIGNhY2hlRW50cnktPmNhcE1heEFnZShtYXhB
Z2VDYXAudmFsdWUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2NhY2hlL05ldHdvcmtDYWNoZUVudHJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvY2FjaGUvTmV0d29ya0NhY2hlRW50cnkuY3BwCmluZGV4IDJjZGE0ZmY2OGIxOTNlNGQ5Y2Vk
NjNkMmZjYzEyOWRhMjcwYWQ5ZDUuLmJhMzlkOWUyYzI2YTAxYTkyNmIxMWFhNzk5ZTM2NjJmYzZh
ZTA1NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0
d29ya0NhY2hlRW50cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2Fj
aGUvTmV0d29ya0NhY2hlRW50cnkuY3BwCkBAIC0xNTYsNyArMTU2LDcgQEAgc3RkOjp1bmlxdWVf
cHRyPEVudHJ5PiBFbnRyeTo6ZGVjb2RlU3RvcmFnZVJlY29yZChjb25zdCBTdG9yYWdlOjpSZWNv
cmQmIHN0b3JhZ2UKICAgICByZXR1cm4gZW50cnk7CiB9CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0Vf
TE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5U
SU9OKQogYm9vbCBFbnRyeTo6aGFzUmVhY2hlZFByZXZhbGVudFJlc291cmNlQWdlQ2FwKCkgY29u
c3QKIHsKICAgICByZXR1cm4gbV9tYXhBZ2VDYXAgJiYgV2ViQ29yZTo6Y29tcHV0ZUN1cnJlbnRB
Z2UocmVzcG9uc2UoKSwgdGltZVN0YW1wKCkpID4gbV9tYXhBZ2VDYXA7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUVudHJ5LmggYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUVudHJ5LmgKaW5k
ZXggZGVkYTg2YTQ0YjYxODQ5ZDZkYmIzZDAxZDM0MjAxOTJlNzcyOTk2NS4uOTY5MTVjMzgwMWMz
N2RkYWMzZThlNjAzMjFmODhjMjIyOWNkNTlhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVFbnRyeS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlRW50cnkuaApAQCAtNzEsNyArNzEs
NyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGFzSlNPTihTdHJpbmdCdWlsZGVyJiwgY29uc3QgU3Rv
cmFnZTo6UmVjb3JkSW5mbyYpIGNvbnN0OwogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RB
VElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAg
ICBib29sIGhhc1JlYWNoZWRQcmV2YWxlbnRSZXNvdXJjZUFnZUNhcCgpIGNvbnN0OwogICAgIHZv
aWQgY2FwTWF4QWdlKGNvbnN0IFNlY29uZHMpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVNwZWN1bGF0aXZlTG9hZC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVNwZWN1
bGF0aXZlTG9hZC5jcHAKaW5kZXggNDAzNzRiYTA4ZmU1MWRiNGU0NmQzZGQ0YTg5Mzk5ODk1MzBk
NzYyNC4uYWQwOWRmNDRkOWFmMTJmZDQwODAzMTA1NDY4MzUzNmVhMGRjODE5MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVjdWxh
dGl2ZUxvYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0
d29ya0NhY2hlU3BlY3VsYXRpdmVMb2FkLmNwcApAQCAtOTEsNyArOTEsNyBAQCB2b2lkIFNwZWN1
bGF0aXZlTG9hZDo6d2lsbFNlbmRSZWRpcmVjdGVkUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmJiBy
ZXF1ZXN0LCBSZXNvdQogICAgIExPRyhOZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZVByZWxvYWRpbmcs
ICJTcGVjdWxhdGl2ZSByZWRpcmVjdCAlcyAtPiAlcyIsIHJlcXVlc3QudXJsKCkuc3RyaW5nKCku
dXRmOCgpLmRhdGEoKSwgcmVkaXJlY3RSZXF1ZXN0LnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRh
KCkpOwogCiAgICAgc3RkOjpvcHRpb25hbDxTZWNvbmRzPiBtYXhBZ2VDYXA7Ci0jaWYgRU5BQkxF
KFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJ
TkdfUFJFVkVOVElPTikKICAgICBpZiAoYXV0byogbmV0d29ya1N0b3JhZ2VTZXNzaW9uID0gbV9j
YWNoZS0+bmV0d29ya1Byb2Nlc3MoKS5zdG9yYWdlU2Vzc2lvbihtX2NhY2hlLT5zZXNzaW9uSUQo
KSkpCiAgICAgICAgIG1heEFnZUNhcCA9IG5ldHdvcmtTdG9yYWdlU2Vzc2lvbi0+bWF4QWdlQ2Fj
aGVDYXAocmVxdWVzdCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaAppbmRleCA5MzhiZjhmOGZl
NGNlZDFlYzgwMjMzYmM5YjlhZGM5ZDJhM2MyMjQzLi5iOWFiMGRlZWJiOWY5MjdjNzM3NDJlODZh
MGJlN2Y5NzE2MGJkNmZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oCkBAIC05NCw3ICs5NCw3IEBAIHBy
aXZhdGU6CiAgICAgYm9vbCB0cnlQYXNzd29yZEJhc2VkQXV0aGVudGljYXRpb24oY29uc3QgV2Vi
Q29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmLCBDaGFsbGVuZ2VDb21wbGV0aW9uSGFuZGxl
ciYpOwogICAgIHZvaWQgYXBwbHlTbmlmZmluZ1BvbGljaWVzQW5kQmluZFJlcXVlc3RUb0luZmVy
ZmFjZUlmTmVlZGVkKFJldGFpblB0cjxOU1VSTFJlcXVlc3Q+JiwgYm9vbCBzaG91bGRDb250ZW50
U25pZmYsIGJvb2wgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYpOwogCi0jaWYgRU5BQkxFKFJF
U09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdf
UFJFVkVOVElPTikKICAgICBzdGF0aWMgTlNIVFRQQ29va2llU3RvcmFnZSAqc3RhdGVsZXNzQ29v
a2llU3RvcmFnZSgpOwogI2lmIEhBVkUoQ0ZORVRXT1JLX0NOQU1FX0FORF9DT09LSUVfVFJBTlNG
T1JNX1NQSSkKICAgICB2b2lkIHVwZGF0ZUZpcnN0UGFydHlJbmZvRm9yU2Vzc2lvbihjb25zdCBV
UkwmKTsKQEAgLTExNCw3ICsxMTQsNyBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyIG1fcGFnZUlEOwogICAgIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgbV93ZWJQYWdlUHJv
eHlJRDsKIAotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxF
KElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgYm9vbCBtX2hhc0JlZW5TZXRU
b1VzZVN0YXRlbGVzc0Nvb2tpZVN0b3JhZ2UgeyBmYWxzZSB9OwogI2lmIEhBVkUoQ0ZORVRXT1JL
X0NOQU1FX0FORF9DT09LSUVfVFJBTlNGT1JNX1NQSSkKICAgICBTZWNvbmRzIG1fYWdlQ2FwRm9y
Q05BTUVDbG9ha2VkQ29va2llcyB7IDI0X2ggKiA3IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQppbmRl
eCA0ZTM0ZjVlZWNjODgzNzg1MzI2OTAxNGNjNGE2ZjllMmVhMmJlYzUxLi5lNmY0YzE0YTFhZDI0
NTlmOWMyYWEwNjc3MTE1ZGQ5ZjQ4YzhhYjQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0KQEAgLTEy
NSw3ICsxMjUsNyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza0NvY29hOjphcHBseVNuaWZmaW5nUG9s
aWNpZXNBbmRCaW5kUmVxdWVzdFRvSW5mZXJmYWNlSWZOZWVkZQogICAgIG5zUmVxdWVzdCA9IG11
dGFibGVSZXF1ZXN0LmF1dG9yZWxlYXNlKCk7CiB9CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9B
RF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9O
KQogTlNIVFRQQ29va2llU3RvcmFnZSAqTmV0d29ya0RhdGFUYXNrQ29jb2E6OnN0YXRlbGVzc0Nv
b2tpZVN0b3JhZ2UoKQogewogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSZXRhaW5QdHI8TlNI
VFRQQ29va2llU3RvcmFnZT4+IHN0YXRlbGVzc0Nvb2tpZVN0b3JhZ2U7CkBAIC0zMzQsNyArMzM0
LDcgQEAgTmV0d29ya0RhdGFUYXNrQ29jb2E6Ok5ldHdvcmtEYXRhVGFza0NvY29hKE5ldHdvcmtT
ZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVQKICNlbmRpZgogCiAgICAgYm9vbCBzaG91bGRC
bG9ja0Nvb2tpZXMgPSBmYWxzZTsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNT
KQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIHNob3Vs
ZEJsb2NrQ29va2llcyA9IG1fc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgPT0gV2ViQ29yZTo6U3Rv
cmVkQ3JlZGVudGlhbHNQb2xpY3k6OkVwaGVtZXJhbFN0YXRlbGVzczsKICAgICBpZiAoYXV0byog
bmV0d29ya1N0b3JhZ2VTZXNzaW9uID0gc2Vzc2lvbi5uZXR3b3JrU3RvcmFnZVNlc3Npb24oKSkg
ewogICAgICAgICBpZiAoIXNob3VsZEJsb2NrQ29va2llcykKQEAgLTM3Niw3ICszNzYsNyBAQCBO
ZXR3b3JrRGF0YVRhc2tDb2NvYTo6TmV0d29ya0RhdGFUYXNrQ29jb2EoTmV0d29ya1Nlc3Npb24m
IHNlc3Npb24sIE5ldHdvcmtEYXRhVAogI2VuZGlmCiAgICAgfQogCi0jaWYgRU5BQkxFKFJFU09V
UkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJF
VkVOVElPTikKICNpZiBIQVZFKENGTkVUV09SS19DTkFNRV9BTkRfQ09PS0lFX1RSQU5TRk9STV9T
UEkpCiAgICAgYXBwbHlDb29raWVQb2xpY3lGb3JUaGlyZFBhcnR5Q05BTUVDbG9ha2luZyhyZXF1
ZXN0KTsKICNlbmRpZgpAQCAtNTIxLDcgKzUyMSw3IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrQ29j
b2E6OndpbGxQZXJmb3JtSFRUUFJlZGlyZWN0aW9uKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2Um
CiAgICAgaWYgKGlzVG9wTGV2ZWxOYXZpZ2F0aW9uKCkpCiAgICAgICAgIHJlcXVlc3Quc2V0Rmly
c3RQYXJ0eUZvckNvb2tpZXMocmVxdWVzdC51cmwoKSk7CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0Vf
TE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5U
SU9OKQogI2lmIEhBVkUoQ0ZORVRXT1JLX0NOQU1FX0FORF9DT09LSUVfVFJBTlNGT1JNX1NQSSkK
ICAgICBhcHBseUNvb2tpZVBvbGljeUZvclRoaXJkUGFydHlDTkFNRUNsb2FraW5nKHJlcXVlc3Qp
OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29h
L05ldHdvcmtTZXNzaW9uQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2Nv
Y29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0KaW5kZXggZjNjNjZmOWNmOTc0ZjVlODJiYWE2MjVh
Mjc4NDYyNTM3ZWJkYmMzNC4uYjJiZGY1OWEwNTc4NGQxNTgzZmI3MDI3NjVlY2I0MzhlZmMwN2Vh
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3Jr
U2Vzc2lvbkNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2Ev
TmV0d29ya1Nlc3Npb25Db2NvYS5tbQpAQCAtNTE1LDcgKzUxNSw3IEBAIC0gKHZvaWQpVVJMU2Vz
c2lvbjooTlNVUkxTZXNzaW9uICopc2Vzc2lvbiB0YXNrOihOU1VSTFNlc3Npb25UYXNrICopdGFz
ayBuZWVkTmV3CiAgICAgY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6Y3JlYXRlSFRUUEJvZHlO
U0lucHV0U3RyZWFtKCpib2R5KS5nZXQoKSk7CiB9CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9B
RF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9O
KQogc3RhdGljIE5TVVJMUmVxdWVzdCogZG93bmdyYWRlUmVxdWVzdChOU1VSTFJlcXVlc3QgKnJl
cXVlc3QpCiB7CiAgICAgYXV0byBuc011dGFibGVSZXF1ZXN0ID0gYWRvcHROUyhbcmVxdWVzdCBt
dXRhYmxlQ29weV0pOwpAQCAtNTc5LDcgKzU3OSw3IEBAIC0gKHZvaWQpVVJMU2Vzc2lvbjooTlNV
UkxTZXNzaW9uICopc2Vzc2lvbiB0YXNrOihOU1VSTFNlc3Npb25UYXNrICopdGFzayB3aWxsUGVy
CiAKICAgICBpZiAoYXV0byogbmV0d29ya0RhdGFUYXNrID0gW3NlbGYgZXhpc3RpbmdUYXNrOnRh
c2tdKSB7CiAgICAgICAgIGJvb2wgc2hvdWxkSWdub3JlSFNUUyA9IGZhbHNlOwotI2lmIEVOQUJM
RShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNL
SU5HX1BSRVZFTlRJT04pCiAgICAgICAgIGlmIChhdXRvKiBzZXNzaW9uQ29jb2EgPSBuZXR3b3Jr
RGF0YVRhc2stPm5ldHdvcmtTZXNzaW9uKCkpIHsKICAgICAgICAgICAgIGF1dG8qIHN0b3JhZ2VT
ZXNzaW9uID0gc2Vzc2lvbkNvY29hLT5uZXR3b3JrUHJvY2VzcygpLnN0b3JhZ2VTZXNzaW9uKHNl
c3Npb25Db2NvYS0+c2Vzc2lvbklEKCkpOwogICAgICAgICAgICAgTlNVUkwgKmZpcnN0UGFydHlG
b3JDb29raWVzID0gbmV0d29ya0RhdGFUYXNrLT5pc1RvcExldmVsTmF2aWdhdGlvbigpID8gcmVx
dWVzdC5VUkwgOiByZXF1ZXN0Lm1haW5Eb2N1bWVudFVSTDsKQEAgLTYzOCw3ICs2MzgsNyBAQCAt
ICh2b2lkKVVSTFNlc3Npb246KE5TVVJMU2Vzc2lvbiAqKXNlc3Npb24gdGFzazooTlNVUkxTZXNz
aW9uVGFzayopdGFzayBfc2NoZW1lVQogCiAgICAgaWYgKGF1dG8qIG5ldHdvcmtEYXRhVGFzayA9
IFtzZWxmIGV4aXN0aW5nVGFzazp0YXNrXSkgewogICAgICAgICBib29sIHNob3VsZElnbm9yZUhT
VFMgPSBmYWxzZTsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVO
QUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgICAgICBpZiAoYXV0byog
c2Vzc2lvbkNvY29hID0gbmV0d29ya0RhdGFUYXNrLT5uZXR3b3JrU2Vzc2lvbigpKSB7CiAgICAg
ICAgICAgICBhdXRvKiBzdG9yYWdlU2Vzc2lvbiA9IHNlc3Npb25Db2NvYS0+bmV0d29ya1Byb2Nl
c3MoKS5zdG9yYWdlU2Vzc2lvbihzZXNzaW9uQ29jb2EtPnNlc3Npb25JRCgpKTsKICAgICAgICAg
ICAgIHNob3VsZElnbm9yZUhTVFMgPSBzY2hlbWVXYXNVcGdyYWRlZER1ZVRvRHluYW1pY0hTVFMo
cmVxdWVzdCkKQEAgLTE0MzgsNyArMTQzOCw3IEBAIFNlc3Npb25XcmFwcGVyJiBOZXR3b3JrU2Vz
c2lvbkNvY29hOjpzZXNzaW9uV3JhcHBlckZvclRhc2soV2ViUGFnZVByb3h5SWRlbnRpZmllCiAg
ICAgYXV0byBzaG91bGRCZUNvbnNpZGVyZWRBcHBCb3VuZCA9IGlzTmF2aWdhdGluZ1RvQXBwQm91
bmREb21haW4gPyAqaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbiA6IE5hdmlnYXRpbmdUb0Fw
cEJvdW5kRG9tYWluOjpZZXM7CiAgICAgaWYgKGlzUGFyZW50UHJvY2Vzc0FGdWxsV2ViQnJvd3Nl
cihuZXR3b3JrUHJvY2VzcygpKSkKICAgICAgICAgc2hvdWxkQmVDb25zaWRlcmVkQXBwQm91bmQg
PSBOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbjo6Tm87Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xP
QURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElP
TikKICAgICBpZiAoYXV0byogc3RvcmFnZVNlc3Npb24gPSBuZXR3b3JrU3RvcmFnZVNlc3Npb24o
KSkgewogICAgICAgICBhdXRvIGZpcnN0UGFydHkgPSBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFp
bihyZXF1ZXN0LmZpcnN0UGFydHlGb3JDb29raWVzKCkpOwogICAgICAgICBpZiAoc3RvcmFnZVNl
c3Npb24tPnNob3VsZEJsb2NrVGhpcmRQYXJ0eUNvb2tpZXNCdXRLZWVwRmlyc3RQYXJ0eUNvb2tp
ZXNGb3IoZmlyc3RQYXJ0eSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2N1cmwvTmV0d29ya0RhdGFUYXNrQ3VybC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2N1cmwvTmV0d29ya0RhdGFUYXNrQ3VybC5jcHAKaW5kZXggZTlmOWIyYzI1Nzg2NmQ5
MzAwZTc5NzgxY2JlZjNhZGRjNTljZDlkZS4uNzE1NzAxYWE1YTUzZjVhN2VhODMzNzcyMTcwZDU2
ZmFhNWEwMTIxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jdXJs
L05ldHdvcmtEYXRhVGFza0N1cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvY3VybC9OZXR3b3JrRGF0YVRhc2tDdXJsLmNwcApAQCAtNjYsNyArNjYsNyBAQCBOZXR3b3Jr
RGF0YVRhc2tDdXJsOjpOZXR3b3JrRGF0YVRhc2tDdXJsKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9u
LCBOZXR3b3JrRGF0YVRhcwogICAgICAgICB9CiAgICAgfQogCi0jaWYgRU5BQkxFKFJFU09VUkNF
X0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVO
VElPTikKICAgICBpZiAoc2hvdWxkQmxvY2tDb29raWVzKHJlcXVlc3QpKQogICAgICAgICBibG9j
a0Nvb2tpZXMoKTsKICNlbmRpZgpAQCAtMjk2LDcgKzI5Niw3IEBAIHZvaWQgTmV0d29ya0RhdGFU
YXNrQ3VybDo6d2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb24oKQogICAgICAgICB9CiAgICAgfQog
Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVENTKQorI2lmIEVOQUJMRShJTlRFTExJ
R0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIGlmICghbV9ibG9ja2luZ0Nvb2tpZXMgJiYg
c2hvdWxkQmxvY2tDb29raWVzKHJlcXVlc3QpKQogICAgICAgICBibG9ja0Nvb2tpZXMoKTsKICNl
bmRpZgpAQCAtNDc3LDIxICs0NzcsMjEgQEAgU3RyaW5nIE5ldHdvcmtEYXRhVGFza0N1cmw6OnN1
Z2dlc3RlZEZpbGVuYW1lKCkgY29uc3QKIAogdm9pZCBOZXR3b3JrRGF0YVRhc2tDdXJsOjpibG9j
a0Nvb2tpZXMoKQogewotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYg
RU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgbV9ibG9ja2luZ0Nv
b2tpZXMgPSB0cnVlOwogI2VuZGlmCiB9CiAKIHZvaWQgTmV0d29ya0RhdGFUYXNrQ3VybDo6dW5i
bG9ja0Nvb2tpZXMoKQogewotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisj
aWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgbV9ibG9ja2lu
Z0Nvb2tpZXMgPSBmYWxzZTsKICNlbmRpZgogfQogCiBib29sIE5ldHdvcmtEYXRhVGFza0N1cmw6
OnNob3VsZEJsb2NrQ29va2llcyhjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QpCiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUo
SU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBib29sIHNob3VsZEJsb2NrQ29v
a2llcyA9IG1fc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgPT0gV2ViQ29yZTo6U3RvcmVkQ3JlZGVu
dGlhbHNQb2xpY3k6OkVwaGVtZXJhbFN0YXRlbGVzczsKIAogICAgIGlmICghc2hvdWxkQmxvY2tD
b29raWVzICYmIG1fc2Vzc2lvbi0+bmV0d29ya1N0b3JhZ2VTZXNzaW9uKCkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2N1cmwvTmV0d29ya1Nlc3Npb25DdXJsLmNw
cCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY3VybC9OZXR3b3JrU2Vzc2lvbkN1cmwu
Y3BwCmluZGV4IGNmNmViNGQ3MjQwMTA5YzVmNTg5ZTBkM2U1ZDAyMjVlYjFjMzQ5MDguLjU2ZDU1
ZDY2ZTZiNmEwNmRlODZlODAyZjk1ZDg4ODNhMmRjNmViZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvY3VybC9OZXR3b3JrU2Vzc2lvbkN1cmwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY3VybC9OZXR3b3JrU2Vzc2lvbkN1cmwuY3BwCkBA
IC00NCw3ICs0NCw3IEBAIE5ldHdvcmtTZXNzaW9uQ3VybDo6TmV0d29ya1Nlc3Npb25DdXJsKE5l
dHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcywgTmV0d29ya1NlCiAgICAgICAgIG5ldHdvcmtT
dG9yYWdlU2Vzc2lvbigpLT5zZXRDb29raWVEYXRhYmFzZShtYWtlVW5pcXVlUmVmPENvb2tpZUph
ckRCPihwYXJhbWV0ZXJzLmNvb2tpZVBlcnNpc3RlbnRTdG9yYWdlRmlsZSkpOwogICAgIG5ldHdv
cmtTdG9yYWdlU2Vzc2lvbigpLT5zZXRQcm94eVNldHRpbmdzKFdURk1vdmUocGFyYW1ldGVycy5w
cm94eVNldHRpbmdzKSk7CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQor
I2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIG1fcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSA9IHBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlz
dGljc1BhcmFtZXRlcnMuZGlyZWN0b3J5OwogICAgIG1fc2hvdWxkSW5jbHVkZUxvY2FsaG9zdElu
UmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IHBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1BhcmFtZXRlcnMuc2hvdWxkSW5jbHVkZUxvY2FsaG9zdCA/IFNob3VsZEluY2x1ZGVMb2NhbGhv
c3Q6OlllcyA6IFNob3VsZEluY2x1ZGVMb2NhbGhvc3Q6Ok5vOwogICAgIG1fZW5hYmxlUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZSA9IHBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlz
dGljc1BhcmFtZXRlcnMuZW5hYmxlRGVidWdNb2RlID8gRW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RlYnVnTW9kZTo6WWVzIDogRW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9k
ZTo6Tm87CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0
d29ya0RhdGFUYXNrU291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAv
TmV0d29ya0RhdGFUYXNrU291cC5jcHAKaW5kZXggMWEyOGNkYjc5MzdmMmM3YmVhNDI3OWJmMjAw
MWQzMmVhNmQ2N2M0NC4uMTc1MjgzMTMyYzBjYTkzZWI0ZTZjNGY3YTljNDY2ZTdiNmIyMjc2NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRh
VGFza1NvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3
b3JrRGF0YVRhc2tTb3VwLmNwcApAQCAtMTg5LDcgKzE4OSw3IEBAIHZvaWQgTmV0d29ya0RhdGFU
YXNrU291cDo6Y3JlYXRlUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBXYXNCbG9j
a2luZ0NvCiAgICAgfQogICAgIHNvdXBfbWVzc2FnZV9zZXRfZmxhZ3MobV9zb3VwTWVzc2FnZS5n
ZXQoKSwgc3RhdGljX2Nhc3Q8U291cE1lc3NhZ2VGbGFncz4oc291cF9tZXNzYWdlX2dldF9mbGFn
cyhtX3NvdXBNZXNzYWdlLmdldCgpKSB8IG1lc3NhZ2VGbGFncykpOwogCi0jaWYgRU5BQkxFKFJF
U09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdf
UFJFVkVOVElPTikKICAgICBib29sIHNob3VsZEJsb2NrQ29va2llcyA9IHdhc0Jsb2NraW5nQ29v
a2llcyA9PSBXYXNCbG9ja2luZ0Nvb2tpZXM6OlllcyA/IHRydWUgOiBtX3N0b3JlZENyZWRlbnRp
YWxzUG9saWN5ID09IFN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpFcGhlbWVyYWxTdGF0ZWxlc3M7
CiAgICAgaWYgKCFzaG91bGRCbG9ja0Nvb2tpZXMpIHsKICAgICAgICAgaWYgKGF1dG8qIG5ldHdv
cmtTdG9yYWdlU2Vzc2lvbiA9IG1fc2Vzc2lvbi0+bmV0d29ya1N0b3JhZ2VTZXNzaW9uKCkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFy
YW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1Bh
cmFtZXRlcnMuaAppbmRleCAyODhhYzdkNTFjNTY2MDMxNjgwMGY2NmExMTExYzgxMjE0NmUwZDI1
Li4wNjBmYjRkYWY5YTg2NDljYzk4ZDk5NzE0ZDE1MjJiNDk1MmRhZWFkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJz
LmgKQEAgLTQ0LDcgKzQ0LDcgQEAgc3RydWN0IFJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0
ZXJzIHsKICAgICBib29sIGVuYWJsZUxvZ1Rlc3RpbmdFdmVudCB7IGZhbHNlIH07CiAgICAgYm9v
bCBzaG91bGRJbmNsdWRlTG9jYWxob3N0IHsgdHJ1ZSB9OwogICAgIGJvb2wgZW5hYmxlRGVidWdN
b2RlIHsgZmFsc2UgfTsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lm
IEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIFdlYkNvcmU6OlRo
aXJkUGFydHlDb29raWVCbG9ja2luZ01vZGUgdGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZSB7
IFdlYkNvcmU6OlRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGU6OkFsbCB9OwogICAgIFdlYkNv
cmU6OlNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRFbmFibGVkIHNhbWVTaXRlU3RyaWN0RW5mb3Jj
ZW1lbnRFbmFibGVkIHsgV2ViQ29yZTo6U2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQ6
Ok5vIH07CiAjZW5kaWYKQEAgLTY0LDcgKzY0LDcgQEAgc3RydWN0IFJlc291cmNlTG9hZFN0YXRp
c3RpY3NQYXJhbWV0ZXJzIHsKICAgICAgICAgZW5jb2RlciA8PCBlbmFibGVMb2dUZXN0aW5nRXZl
bnQ7CiAgICAgICAgIGVuY29kZXIgPDwgc2hvdWxkSW5jbHVkZUxvY2FsaG9zdDsKICAgICAgICAg
ZW5jb2RlciA8PCBlbmFibGVEZWJ1Z01vZGU7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RB
VElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAg
ICAgICAgZW5jb2RlciA8PCB0aGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlOwogICAgICAgICBl
bmNvZGVyIDw8IHNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRFbmFibGVkOwogI2VuZGlmCkBAIC0x
MjEsNyArMTIxLDcgQEAgc3RydWN0IFJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzIHsK
ICAgICAgICAgaWYgKCFlbmFibGVEZWJ1Z01vZGUpCiAgICAgICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OwogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFC
TEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICAgICAgc3RkOjpvcHRpb25h
bDxXZWJDb3JlOjpUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlPiB0aGlyZFBhcnR5Q29va2ll
QmxvY2tpbmdNb2RlOwogICAgICAgICBkZWNvZGVyID4+IHRoaXJkUGFydHlDb29raWVCbG9ja2lu
Z01vZGU7CiAgICAgICAgIGlmICghdGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZSkKQEAgLTE2
Myw3ICsxNjMsNyBAQCBzdHJ1Y3QgUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnMgewog
ICAgICAgICAgICAgV1RGTW92ZSgqZW5hYmxlTG9nVGVzdGluZ0V2ZW50KSwKICAgICAgICAgICAg
IFdURk1vdmUoKnNob3VsZEluY2x1ZGVMb2NhbGhvc3QpLAogICAgICAgICAgICAgV1RGTW92ZSgq
ZW5hYmxlRGVidWdNb2RlKSwKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQor
I2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgICAgICAgICAg
V1RGTW92ZSgqdGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZSksCiAgICAgICAgICAgICBXVEZN
b3ZlKCpzYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZCksCiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3Bw
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAK
aW5kZXggYjBkNGJlZTNmMTI1ZTUxODEyNjI2NzRiMTUwMjI5YjhjMTU2YTY1Yi4uMTZlNGIzOWRk
MDM0MjI1NjA4MDE5MjEyNDkzNmE0NDk3YzdiNjQxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTEzOCw3ICsx
MzgsNyBAQCB2b2lkIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkVu
Y29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCB3YXlsYW5kQ29tcG9zaXRvckRp
c3BsYXlOYW1lOwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNT
KSAmJiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJ
TkdfUFJFVkVOVElPTikgJiYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgZW5jb2RlciA8PCBz
aG91bGRMb2dVc2VySW50ZXJhY3Rpb247CiAjZW5kaWYKIApAQCAtNDE2LDcgKzQxNiw3IEBAIGJv
b2wgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVj
b2RlciwgV2ViUHJvY2Vzc0NyZWF0CiAgICAgICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgogCi0j
aWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykgJiYgIVJFTEVBU0VfTE9HX0RJU0FC
TEVECisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pICYmICFSRUxF
QVNFX0xPR19ESVNBQkxFRAogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5zaG91
bGRMb2dVc2VySW50ZXJhY3Rpb24pKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMu
aAppbmRleCBmNTEzMTYzODY4ZTY5NTVkZjcyMDg0NmYxNDZmYjUzN2QwNjdiODYyLi5iY2NjZjFl
ZjE5NDQ0Zjc0YzFlYmMyMWM1NWEzOWYxZjhmNzMyNWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC0xOTAsNyArMTkw
LDcgQEAgc3RydWN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgewogICAgIFdlYkNvcmU6
OlNjcmVlblByb3BlcnRpZXMgc2NyZWVuUHJvcGVydGllczsKICNlbmRpZgogCi0jaWYgRU5BQkxF
KFJFU09VUkNFX0xPQURfU1RBVElTVElDUykgJiYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisjaWYg
RU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pICYmICFSRUxFQVNFX0xPR19E
SVNBQkxFRAogICAgIGJvb2wgc2hvdWxkTG9nVXNlckludGVyYWN0aW9uIHsgZmFsc2UgfTsKICNl
bmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzRGF0YVN0
b3JlUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0RhdGFTdG9y
ZVBhcmFtZXRlcnMuaAppbmRleCAxMjliZjg2NjNiYjdkMTdmZGE4ZmJiODAwY2JmYTBhY2M2NTQ5
NTc5Li5lMmQ2N2IyYzRkMjNlOTRjMDZhZGYyYTFmY2MyMTk5ZGM4NjdiMTExIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzRGF0YVN0b3JlUGFyYW1ldGVycy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NEYXRhU3RvcmVQYXJhbWV0ZXJzLmgK
QEAgLTQ2LDcgKzQ2LDcgQEAgc3RydWN0IFdlYlByb2Nlc3NEYXRhU3RvcmVQYXJhbWV0ZXJzIHsK
ICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgbWVkaWFLZXlTdG9yYWdlRGlyZWN0b3J5RXh0
ZW5zaW9uSGFuZGxlOwogICAgIFN0cmluZyBqYXZhU2NyaXB0Q29uZmlndXJhdGlvbkRpcmVjdG9y
eTsKICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgamF2YVNjcmlwdENvbmZpZ3VyYXRpb25E
aXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElT
VElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBX
ZWJDb3JlOjpUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlIHRoaXJkUGFydHlDb29raWVCbG9j
a2luZ01vZGUgeyBXZWJDb3JlOjpUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlOjpBbGwgfTsK
ICAgICBIYXNoU2V0PFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluPiBkb21haW5zV2l0aFVzZXJJ
bnRlcmFjdGlvbjsKICAgICBIYXNoTWFwPFRvcEZyYW1lRG9tYWluLCBTdWJSZXNvdXJjZURvbWFp
bj4gZG9tYWluc1dpdGhTdG9yYWdlQWNjZXNzUXVpcms7CkBAIC03NCw3ICs3NCw3IEBAIHZvaWQg
V2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnM6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBj
b25zdAogICAgIGVuY29kZXIgPDwgbWVkaWFLZXlTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFu
ZGxlOwogICAgIGVuY29kZXIgPDwgamF2YVNjcmlwdENvbmZpZ3VyYXRpb25EaXJlY3Rvcnk7CiAg
ICAgZW5jb2RlciA8PCBqYXZhU2NyaXB0Q29uZmlndXJhdGlvbkRpcmVjdG9yeUV4dGVuc2lvbkhh
bmRsZTsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJ
TlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIGVuY29kZXIgPDwgdGhpcmRQYXJ0
eUNvb2tpZUJsb2NraW5nTW9kZTsKICAgICBlbmNvZGVyIDw8IGRvbWFpbnNXaXRoVXNlckludGVy
YWN0aW9uOwogICAgIGVuY29kZXIgPDwgZG9tYWluc1dpdGhTdG9yYWdlQWNjZXNzUXVpcms7CkBA
IC0xMzQsNyArMTM0LDcgQEAgc3RkOjpvcHRpb25hbDxXZWJQcm9jZXNzRGF0YVN0b3JlUGFyYW1l
dGVycz4gV2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnM6OmRlY28KICAgICBpZiAoIWphdmFT
Y3JpcHRDb25maWd1cmF0aW9uRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKQogICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OwogICAgICAgICAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFU
SVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAg
IHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZT4gdGhp
cmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZTsKICAgICBkZWNvZGVyID4+IHRoaXJkUGFydHlDb29r
aWVCbG9ja2luZ01vZGU7CiAgICAgaWYgKCF0aGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlKQpA
QCAtMTc2LDcgKzE3Niw3IEBAIHN0ZDo6b3B0aW9uYWw8V2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFt
ZXRlcnM+IFdlYlByb2Nlc3NEYXRhU3RvcmVQYXJhbWV0ZXJzOjpkZWNvCiAgICAgICAgIFdURk1v
dmUoKm1lZGlhS2V5U3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSksCiAgICAgICAgIFdU
Rk1vdmUoamF2YVNjcmlwdENvbmZpZ3VyYXRpb25EaXJlY3RvcnkpLAogICAgICAgICBXVEZNb3Zl
KCpqYXZhU2NyaXB0Q29uZmlndXJhdGlvbkRpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSksCi0jaWYg
RU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRf
VFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICAgICAgKnRoaXJkUGFydHlDb29raWVCbG9ja2luZ01v
ZGUsCiAgICAgICAgIFdURk1vdmUoKmRvbWFpbnNXaXRoVXNlckludGVyYWN0aW9uKSwKICAgICAg
ICAgV1RGTW92ZSgqZG9tYWluc1dpdGhTdG9yYWdlQWNjZXNzUXVpcmspLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGEuY3BwIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGEuY3BwCmluZGV4IGQ4YTQ1ODQz
OTM4ZDc4MzBiZDcwM2RmY2U4NWY1NGNjODFmODc4ZDguLmFhNzM5MGQ2YTRjM2UyODNhNmMxYzg2
ZjkxYjFmNzYxYjAwNGQ0YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYnNp
dGVEYXRhL1dlYnNpdGVEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YS5jcHAKQEAgLTY5LDcgKzY5LDcgQEAgdm9pZCBXZWJzaXRlRGF0YTo6
ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IGhvc3RO
YW1lc1dpdGhQbHVnaW5EYXRhOwogI2VuZGlmCiAgICAgZW5jb2RlciA8PCBob3N0TmFtZXNXaXRo
SFNUU0NhY2hlOwotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5B
QkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgZW5jb2RlciA8PCByZWdp
c3RyYWJsZURvbWFpbnNXaXRoUmVzb3VyY2VMb2FkU3RhdGlzdGljczsKICNlbmRpZgogfQpAQCAt
ODYsNyArODYsNyBAQCBib29sIFdlYnNpdGVEYXRhOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNv
ZGVyLCBXZWJzaXRlRGF0YSYgcmVzdWx0KQogI2VuZGlmCiAgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShyZXN1bHQuaG9zdE5hbWVzV2l0aEhTVFNDYWNoZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
LSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJ
R0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0
LnJlZ2lzdHJhYmxlRG9tYWluc1dpdGhSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogI2VuZGlmCkBAIC0xNjUsNyArMTY1LDcgQEAgV2Vic2l0ZURhdGEgV2Vi
c2l0ZURhdGE6Omlzb2xhdGVkQ29weSgpIGNvbnN0CiAgICAgICAgIGNyb3NzVGhyZWFkQ29weSho
b3N0TmFtZXNXaXRoUGx1Z2luRGF0YSksCiAjZW5kaWYKICAgICAgICAgY3Jvc3NUaHJlYWRDb3B5
KGhvc3ROYW1lc1dpdGhIU1RTQ2FjaGUpLAotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJ
U1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAg
ICAgIGNyb3NzVGhyZWFkQ29weShyZWdpc3RyYWJsZURvbWFpbnNXaXRoUmVzb3VyY2VMb2FkU3Rh
dGlzdGljcyksCiAjZW5kaWYKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGEuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYnNp
dGVEYXRhL1dlYnNpdGVEYXRhLmgKaW5kZXggNjQ5MTQyNjZlNGFmNjg3NmRiMGNlNTRlZGVlMmUw
MzFhOTVlMmE4OS4uNDQ0YjFhZTEzMTkzOTBhNzEwZjdjNzQ0YzY0OTA2OWNkMGU5MzQwYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGEuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YS5oCkBAIC02
Myw3ICs2Myw3IEBAIHN0cnVjdCBXZWJzaXRlRGF0YSB7CiAgICAgSGFzaFNldDxTdHJpbmc+IGhv
c3ROYW1lc1dpdGhQbHVnaW5EYXRhOwogI2VuZGlmCiAgICAgSGFzaFNldDxTdHJpbmc+IGhvc3RO
YW1lc1dpdGhIU1RTQ2FjaGU7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykK
KyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBIYXNoU2V0
PFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluPiByZWdpc3RyYWJsZURvbWFpbnNXaXRoUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljczsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tQYWdlLmNwcAppbmRleCA4NTE2M2Y0NDUwYWNlM2QzNmQ1OTcxNjk2ZDQ4MWViNzgwYWVkMDFj
Li4zNDlmOTAwZTBjNzQzMmEyMWFjMDZiYzRkMmViMzg5OWI1Y2JlNDZmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKQEAgLTMxNTgsNyArMzE1OCw3IEBAIFdLX0VY
UE9SVCBib29sIFdLUGFnZUlzTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJFbmFibGVkKFdL
UGFnZVJlZikKIHZvaWQgV0tQYWdlTG9hZGVkU3VicmVzb3VyY2VEb21haW5zKFdLUGFnZVJlZiBw
YWdlUmVmLCBXS1BhZ2VMb2FkZWRTdWJyZXNvdXJjZURvbWFpbnNGdW5jdGlvbiBjYWxsYmFjaywg
dm9pZCogY2FsbGJhY2tDb250ZXh0KQogewogICAgIENSQVNIX0lGX1NVU1BFTkRFRDsKLSNpZiBF
TkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9U
UkFDS0lOR19QUkVWRU5USU9OKQogICAgIHRvSW1wbChwYWdlUmVmKS0+Z2V0TG9hZGVkU3VicmVz
b3VyY2VEb21haW5zKFtjYWxsYmFja0NvbnRleHQsIGNhbGxiYWNrXShWZWN0b3I8UmVnaXN0cmFi
bGVEb21haW4+JiYgZG9tYWlucykgewogICAgICAgICBWZWN0b3I8UmVmUHRyPEFQSTo6T2JqZWN0
Pj4gYXBpRG9tYWlucyA9IFdURjo6bWFwKGRvbWFpbnMsIFtdKGF1dG8mIGRvbWFpbikgewogICAg
ICAgICAgICAgcmV0dXJuIFJlZlB0cjxBUEk6Ok9iamVjdD4oQVBJOjpTdHJpbmc6OmNyZWF0ZShX
VEZNb3ZlKGRvbWFpbi5zdHJpbmcoKSkpKTsKQEAgLTMxNzQsNyArMzE3NCw3IEBAIHZvaWQgV0tQ
YWdlTG9hZGVkU3VicmVzb3VyY2VEb21haW5zKFdLUGFnZVJlZiBwYWdlUmVmLCBXS1BhZ2VMb2Fk
ZWRTdWJyZXNvdXJjZURvCiB2b2lkIFdLUGFnZUNsZWFyTG9hZGVkU3VicmVzb3VyY2VEb21haW5z
KFdLUGFnZVJlZiBwYWdlUmVmKQogewogICAgIENSQVNIX0lGX1NVU1BFTkRFRDsKLSNpZiBFTkFC
TEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFD
S0lOR19QUkVWRU5USU9OKQogICAgIHRvSW1wbChwYWdlUmVmKS0+Y2xlYXJMb2FkZWRTdWJyZXNv
dXJjZURvbWFpbnMoKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHBhZ2VSZWYpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVm
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJl
Zi5jcHAKaW5kZXggOGYxYmZhYTMwN2ExYzAxYjAwYzhkMDkxYWU2Mjc1OTg1Y2IyZmY0Ni4uOGRm
YTg4YzY2MzRlZTAwZjAyMzlkODVlOGI1MDVkOWQ5NWExM2Q5OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuY3BwCkBA
IC04Miw3ICs4Miw3IEBAIFdLUHJvY2Vzc0lEIFdLV2Vic2l0ZURhdGFTdG9yZUdldE5ldHdvcmtQ
cm9jZXNzSWRlbnRpZmllcihXS1dlYnNpdGVEYXRhU3RvcmVSZWYKIAogdm9pZCBXS1dlYnNpdGVE
YXRhU3RvcmVSZW1vdmVJVFBEYXRhRm9yRG9tYWluKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRh
U3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhvc3QsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFT
dG9yZVJlbW92ZUlUUERhdGFGb3JEb21haW5GdW5jdGlvbiBjYWxsYmFjaykKIHsKLSNpZiBFTkFC
TEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFD
S0lOR19QUkVWRU5USU9OKQogICAgIFdlYktpdDo6V2Vic2l0ZURhdGFSZWNvcmQgZGF0YVJlY29y
ZDsKICAgICBkYXRhUmVjb3JkLnR5cGVzLmFkZChXZWJLaXQ6OldlYnNpdGVEYXRhVHlwZTo6UmVz
b3VyY2VMb2FkU3RhdGlzdGljcyk7CiAgICAgZGF0YVJlY29yZC5hZGRSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzUmVnaXN0cmFibGVEb21haW4oV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW46OnVuY2hl
Y2tlZENyZWF0ZUZyb21Ib3N0KFdlYktpdDo6dG9JbXBsKGhvc3QpLT5zdHJpbmcoKSkpOwpAQCAt
OTksNyArOTksNyBAQCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVJlbW92ZUlUUERhdGFGb3JEb21h
aW4oV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZgogCiB2b2lkIFdLV2Vic2l0ZURh
dGFTdG9yZURvZXNTdGF0aXN0aWNzRG9tYWluSURFeGlzdEluRGF0YWJhc2UoV0tXZWJzaXRlRGF0
YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgaW50IGRvbWFpbklELCB2b2lkKiBjb250ZXh0LCBXS1dl
YnNpdGVEYXRhU3RvcmVEb2VzU3RhdGlzdGljc0RvbWFpbklERXhpc3RJbkRhdGFiYXNlRnVuY3Rp
b24gY2FsbGJhY2spCiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNp
ZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBXZWJLaXQ6OnRv
SW1wbChkYXRhU3RvcmVSZWYpLT5kb21haW5JREV4aXN0c0luRGF0YWJhc2UoZG9tYWluSUQsIFtj
b250ZXh0LCBjYWxsYmFja10oYm9vbCBleGlzdHMpIHsKICAgICAgICAgY2FsbGJhY2soZXhpc3Rz
LCBjb250ZXh0KTsKICAgICB9KTsKQEAgLTEyMSw3ICsxMjEsNyBAQCB2b2lkIFdLV2Vic2l0ZURh
dGFTdG9yZVJlc2V0U2VydmljZVdvcmtlckZldGNoVGltZW91dEZvclRlc3RpbmcoV0tXZWJzaXRl
RGF0YVN0bwogdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RW5hYmxlZChXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBib29sIGVuYWJsZSkK
IHsKICAgICBhdXRvKiB3ZWJzaXRlRGF0YVN0b3JlID0gV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3Jl
UmVmKTsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJ
TlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIHdlYnNpdGVEYXRhU3RvcmUtPnVz
ZUV4cGxpY2l0SVRQU3RhdGUoKTsKICNlbmRpZgogICAgIHdlYnNpdGVEYXRhU3RvcmUtPnNldFJl
c291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGVuYWJsZSk7CkBAIC0xMjksNyArMTI5LDcgQEAg
dm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChX
S1dlYnNpdGVEYXRhU3RvcmVSZWYgZGEKIAogdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRp
c3RpY3NFcGhlbWVyYWwoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgdm9pZCog
Y29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGljc0VwaGVtZXJhbEZ1bmN0aW9uIGNv
bXBsZXRpb25IYW5kbGVyKQogewotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1Mp
CisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgV2ViS2l0
Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+aXNSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRXBoZW1lcmFs
KFtjb250ZXh0LCBjb21wbGV0aW9uSGFuZGxlcl0oYm9vbCBpc0VwaGVtZXJhbCkgewogICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcihpc0VwaGVtZXJhbCwgY29udGV4dCk7CiAgICAgfSk7CkBAIC0x
NzMsNyArMTczLDcgQEAgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVDbGVhckNhY2hlZENyZWRlbnRp
YWxzKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYKIAogdm9pZCBXS1dlYnNpdGVE
YXRhU3RvcmVTZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlV2l0aENvbXBsZXRpb25I
YW5kbGVyKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIGJvb2wgZW5hYmxlLCB2
b2lkKiBjb250ZXh0LCBXS1dlYnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzRGVidWdNb2RlRnVuY3Rp
b24gY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElT
VElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBX
ZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVi
dWdNb2RlKGVuYWJsZSwgW2NvbnRleHQsIGNvbXBsZXRpb25IYW5kbGVyXSB7CiAgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKGNvbnRleHQpOwogICAgIH0pOwpAQCAtMTg0LDcgKzE4NCw3IEBAIHZv
aWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZVdp
dGhDb21wbGV0aW9uSGFuZGxlcihXCiAKIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0UmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlRm9yRGVidWdNb2RlKFdLV2Vic2l0ZURh
dGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhvc3QsIHZvaWQqIGNvbnRleHQs
IFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NEZWJ1Z01vZGVGdW5jdGlvbiBjb21wbGV0aW9u
SGFuZGxlcikKIHsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVO
QUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIFdlYktpdDo6dG9JbXBs
KGRhdGFTdG9yZVJlZiktPnNldFByZXZhbGVudFJlc291cmNlRm9yRGVidWdNb2RlKFVSTChVUkwo
KSwgV2ViS2l0Ojp0b0ltcGwoaG9zdCktPnN0cmluZygpKSwgW2NvbnRleHQsIGNvbXBsZXRpb25I
YW5kbGVyXSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGNvbnRleHQpOwogICAgIH0pOwpA
QCAtMTk0LDcgKzE5NCw3IEBAIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0UmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlRm9yRGVidWdNb2RlKFdLCiB9CiB2b2lkIFdLV2Vi
c2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NMYXN0U2VlbihXS1dlYnNpdGVEYXRhU3RvcmVSZWYg
ZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBob3N0LCBkb3VibGUgc2Vjb25kcywgdm9pZCogY29u
dGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGljc0xhc3RTZWVuRnVuY3Rpb24gY29tcGxl
dGlvbkhhbmRsZXIpCiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNp
ZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBXZWJLaXQ6OnRv
SW1wbChkYXRhU3RvcmVSZWYpLT5zZXRMYXN0U2VlbihVUkwoVVJMKCksIFdlYktpdDo6dG9JbXBs
KGhvc3QpLT5zdHJpbmcoKSksIFNlY29uZHMgeyBzZWNvbmRzIH0sIFtjb250ZXh0LCBjb21wbGV0
aW9uSGFuZGxlcl0gewogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihjb250ZXh0KTsKICAgICB9
KTsKQEAgLTIwNSw3ICsyMDUsNyBAQCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3Rp
Y3NMYXN0U2VlbihXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLAogCiB2b2lkIFdL
V2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NNZXJnZVN0YXRpc3RpYyhXS1dlYnNpdGVEYXRh
U3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBob3N0LCBXS1N0cmluZ1JlZiB0b3BG
cmFtZURvbWFpbjEsIFdLU3RyaW5nUmVmIHRvcEZyYW1lRG9tYWluMiwgZG91YmxlIGxhc3RTZWVu
LCBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiwgZG91YmxlIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rp
b24sIGJvb2wgaXNHcmFuZGZhdGhlcmVkLCBib29sIGlzUHJldmFsZW50LCBib29sIGlzVmVyeVBy
ZXZhbGVudCwgdW5zaWduZWQgZGF0YVJlY29yZHNSZW1vdmVkLCB2b2lkKiBjb250ZXh0LCBXS1dl
YnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzTWVyZ2VTdGF0aXN0aWNGdW5jdGlvbiBjb21wbGV0aW9u
SGFuZGxlcikKIHsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVO
QUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIFdlYktpdDo6dG9JbXBs
KGRhdGFTdG9yZVJlZiktPm1lcmdlU3RhdGlzdGljRm9yVGVzdGluZyhVUkwoVVJMKCksIFdlYktp
dDo6dG9JbXBsKGhvc3QpLT5zdHJpbmcoKSksIFVSTChVUkwoKSwgV2ViS2l0Ojp0b0ltcGwodG9w
RnJhbWVEb21haW4xKS0+c3RyaW5nKCkpLCBVUkwoVVJMKCksIFdlYktpdDo6dG9JbXBsKHRvcEZy
YW1lRG9tYWluMiktPnN0cmluZygpKSwgU2Vjb25kcyB7IGxhc3RTZWVuIH0sIGhhZFVzZXJJbnRl
cmFjdGlvbiwgU2Vjb25kcyB7IG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24gfSwgaXNHcmFuZGZh
dGhlcmVkLCBpc1ByZXZhbGVudCwgaXNWZXJ5UHJldmFsZW50LCBkYXRhUmVjb3Jkc1JlbW92ZWQs
IFtjb250ZXh0LCBjb21wbGV0aW9uSGFuZGxlcl0gewogICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihjb250ZXh0KTsKICAgICB9KTsKQEAgLTIxNiw3ICsyMTYsNyBAQCB2b2lkIFdLV2Vic2l0ZURh
dGFTdG9yZVNldFN0YXRpc3RpY3NNZXJnZVN0YXRpc3RpYyhXS1dlYnNpdGVEYXRhU3RvcmVSZWYg
ZGF0YVN0bwogCiB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NFeHBpcmVkU3Rh
dGlzdGljKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhv
c3QsIHVuc2lnbmVkIG51bWJlck9mT3BlcmF0aW5nRGF5c1Bhc3NlZCwgYm9vbCBoYWRVc2VySW50
ZXJhY3Rpb24sIGJvb2wgaXNTY2hlZHVsZWRGb3JBbGxCdXRDb29raWVEYXRhUmVtb3ZhbCwgYm9v
bCBpc1ByZXZhbGVudCwgdm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGlj
c01lcmdlU3RhdGlzdGljRnVuY3Rpb24gY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0jaWYgRU5BQkxF
KFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJ
TkdfUFJFVkVOVElPTikKICAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5pbnNlcnRF
eHBpcmVkU3RhdGlzdGljRm9yVGVzdGluZyhVUkwoVVJMKCksIFdlYktpdDo6dG9JbXBsKGhvc3Qp
LT5zdHJpbmcoKSksIG51bWJlck9mT3BlcmF0aW5nRGF5c1Bhc3NlZCwgaGFkVXNlckludGVyYWN0
aW9uLCBpc1NjaGVkdWxlZEZvckFsbEJ1dENvb2tpZURhdGFSZW1vdmFsLCBpc1ByZXZhbGVudCwg
W2NvbnRleHQsIGNvbXBsZXRpb25IYW5kbGVyXSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KGNvbnRleHQpOwogICAgIH0pOwpAQCAtMjI3LDcgKzIyNyw3IEBAIHZvaWQgV0tXZWJzaXRlRGF0
YVN0b3JlU2V0U3RhdGlzdGljc0V4cGlyZWRTdGF0aXN0aWMoV0tXZWJzaXRlRGF0YVN0b3JlUmVm
IGRhdGFTCiAKIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc1ByZXZhbGVudFJl
c291cmNlKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhv
c3QsIGJvb2wgdmFsdWUsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3Rp
Y3NQcmV2YWxlbnRSZXNvdXJjZUZ1bmN0aW9uIGNvbXBsZXRpb25IYW5kbGVyKQogewotI2lmIEVO
QUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RS
QUNLSU5HX1BSRVZFTlRJT04pCiAgICAgYXV0byYgd2Vic2l0ZURhdGFTdG9yZSA9ICpXZWJLaXQ6
OnRvSW1wbChkYXRhU3RvcmVSZWYpOwogCiAgICAgaWYgKHZhbHVlKQpAQCAtMjQ1LDcgKzI0NSw3
IEBAIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNl
KFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhCiAKIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0
U3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0
YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBob3N0LCBib29sIHZhbHVlLCB2b2lkKiBjb250ZXh0LCBX
S1dlYnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlRnVuY3Rpb24g
Y29tcGxldGlvbkhhbmRsZXIpCiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElD
UykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBhdXRv
JiB3ZWJzaXRlRGF0YVN0b3JlID0gKldlYktpdDo6dG9JbXBsKGRhdGFTdG9yZVJlZik7CiAKICAg
ICBpZiAodmFsdWUpCkBAIC0yNjMsNyArMjYzLDcgQEAgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVT
ZXRTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKFdLV2Vic2l0ZURhdGFTdG9yZVJlZgog
CiB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZUR1bXBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKFdLV2Vi
c2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURh
dGFTdG9yZUR1bXBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRnVuY3Rpb24gY2FsbGJhY2spCiB7Ci0j
aWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdF
TlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYp
LT5kdW1wUmVzb3VyY2VMb2FkU3RhdGlzdGljcyhbY29udGV4dCwgY2FsbGJhY2tdIChjb25zdCBT
dHJpbmcmIHJlc291cmNlTG9hZFN0YXRpc3RpY3MpIHsKICAgICAgICAgY2FsbGJhY2soV2ViS2l0
Ojp0b0FQSShyZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmltcGwoKSksIGNvbnRleHQpOwogICAgIH0p
OwpAQCAtMjc0LDcgKzI3NCw3IEBAIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlRHVtcFJlc291cmNl
TG9hZFN0YXRpc3RpY3MoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yCiAKIHZvaWQgV0tX
ZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoV0tXZWJzaXRlRGF0
YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgV0tTdHJpbmdSZWYgaG9zdCwgdm9pZCogY29udGV4dCwg
V0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2VGdW5jdGlvbiBj
YWxsYmFjaykKIHsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVO
QUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIFdlYktpdDo6dG9JbXBs
KGRhdGFTdG9yZVJlZiktPmlzUHJldmFsZW50UmVzb3VyY2UoVVJMKFVSTCgpLCBXZWJLaXQ6OnRv
SW1wbChob3N0KS0+c3RyaW5nKCkpLCBbY29udGV4dCwgY2FsbGJhY2tdKGJvb2wgaXNQcmV2YWxl
bnRSZXNvdXJjZSkgewogICAgICAgICBjYWxsYmFjayhpc1ByZXZhbGVudFJlc291cmNlLCBjb250
ZXh0KTsKICAgICB9KTsKQEAgLTI4NSw3ICsyODUsNyBAQCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9y
ZUlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRh
UwogCiB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNv
dXJjZShXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBob3N0
LCB2b2lkKiBjb250ZXh0LCBXS1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NQcmV2YWxlbnRS
ZXNvdXJjZUZ1bmN0aW9uIGNhbGxiYWNrKQogewotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NU
QVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAg
ICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+aXNWZXJ5UHJldmFsZW50UmVzb3VyY2Uo
VVJMKFVSTCgpLCBXZWJLaXQ6OnRvSW1wbChob3N0KS0+c3RyaW5nKCkpLCBbY29udGV4dCwgY2Fs
bGJhY2tdKGJvb2wgaXNWZXJ5UHJldmFsZW50UmVzb3VyY2UpIHsKICAgICAgICAgY2FsbGJhY2so
aXNWZXJ5UHJldmFsZW50UmVzb3VyY2UsIGNvbnRleHQpOwogICAgIH0pOwpAQCAtMjk2LDcgKzI5
Niw3IEBAIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJl
c291cmNlKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkCiAKIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3Jl
SXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3VicmVzb3VyY2VVbmRlcihXS1dlYnNpdGVEYXRhU3Rv
cmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBzdWJyZXNvdXJjZUhvc3QsIFdLU3RyaW5n
UmVmIHRvcEZyYW1lSG9zdCwgdm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0
aXN0aWNzUmVnaXN0ZXJlZEFzU3VicmVzb3VyY2VVbmRlckZ1bmN0aW9uIGNhbGxiYWNrKQogewot
I2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElH
RU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVm
KS0+aXNSZWdpc3RlcmVkQXNTdWJyZXNvdXJjZVVuZGVyKFVSTChVUkwoKSwgV2ViS2l0Ojp0b0lt
cGwoc3VicmVzb3VyY2VIb3N0KS0+c3RyaW5nKCkpLCBVUkwoVVJMKCksIFdlYktpdDo6dG9JbXBs
KHRvcEZyYW1lSG9zdCktPnN0cmluZygpKSwgW2NvbnRleHQsIGNhbGxiYWNrXShib29sIGlzUmVn
aXN0ZXJlZEFzU3VicmVzb3VyY2VVbmRlcikgewogICAgICAgICBjYWxsYmFjayhpc1JlZ2lzdGVy
ZWRBc1N1YnJlc291cmNlVW5kZXIsIGNvbnRleHQpOwogICAgIH0pOwpAQCAtMzA3LDcgKzMwNyw3
IEBAIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3VicmVz
b3VyY2VVbmRlcihXS1dlYnNpdGVEYXRhU3RvCiAKIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlSXNT
dGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcihXS1dlYnNpdGVEYXRhU3RvcmVSZWYg
ZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBzdWJGcmFtZUhvc3QsIFdLU3RyaW5nUmVmIHRvcEZy
YW1lSG9zdCwgdm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzUmVn
aXN0ZXJlZEFzU3ViRnJhbWVVbmRlckZ1bmN0aW9uIGNhbGxiYWNrKQogewotI2lmIEVOQUJMRShS
RVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5H
X1BSRVZFTlRJT04pCiAgICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+aXNSZWdpc3Rl
cmVkQXNTdWJGcmFtZVVuZGVyKFVSTChVUkwoKSwgV2ViS2l0Ojp0b0ltcGwoc3ViRnJhbWVIb3N0
KS0+c3RyaW5nKCkpLCBVUkwoVVJMKCksIFdlYktpdDo6dG9JbXBsKHRvcEZyYW1lSG9zdCktPnN0
cmluZygpKSwgW2NvbnRleHQsIGNhbGxiYWNrXShib29sIGlzUmVnaXN0ZXJlZEFzU3ViRnJhbWVV
bmRlcikgewogICAgICAgICBjYWxsYmFjayhpc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIsIGNv
bnRleHQpOwogICAgIH0pOwpAQCAtMzE4LDcgKzMxOCw3IEBAIHZvaWQgV0tXZWJzaXRlRGF0YVN0
b3JlSXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcihXS1dlYnNpdGVEYXRhU3Rv
cmVSCiAKIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzUmVk
aXJlY3RpbmdUbyhXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1Jl
ZiBob3N0UmVkaXJlY3RlZEZyb20sIFdLU3RyaW5nUmVmIGhvc3RSZWRpcmVjdGVkVG8sIHZvaWQq
IGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGly
ZWN0aW5nVG9GdW5jdGlvbiBjYWxsYmFjaykKIHsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9T
VEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQog
ICAgIFdlYktpdDo6dG9JbXBsKGRhdGFTdG9yZVJlZiktPmlzUmVnaXN0ZXJlZEFzUmVkaXJlY3Rp
bmdUbyhVUkwoVVJMKCksIFdlYktpdDo6dG9JbXBsKGhvc3RSZWRpcmVjdGVkRnJvbSktPnN0cmlu
ZygpKSwgVVJMKFVSTCgpLCBXZWJLaXQ6OnRvSW1wbChob3N0UmVkaXJlY3RlZFRvKS0+c3RyaW5n
KCkpLCBbY29udGV4dCwgY2FsbGJhY2tdKGJvb2wgaXNSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1Rv
KSB7CiAgICAgICAgIGNhbGxiYWNrKGlzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbywgY29udGV4
dCk7CiAgICAgfSk7CkBAIC0zMjksNyArMzI5LDcgQEAgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVJ
c1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKFdLV2Vic2l0ZURhdGFTdG9yZVIK
IAogdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0
aW9uKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhvc3Qs
IGJvb2wgdmFsdWUsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NI
YXNIYWRVc2VySW50ZXJhY3Rpb25GdW5jdGlvbiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSNpZiBF
TkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9U
UkFDS0lOR19QUkVWRU5USU9OKQogICAgIGF1dG8mIGRhdGFTdG9yZSA9ICpXZWJLaXQ6OnRvSW1w
bChkYXRhU3RvcmVSZWYpOwogCiAgICAgaWYgKHZhbHVlKQpAQCAtMzQ3LDcgKzM0Nyw3IEBAIHZv
aWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihX
S1dlYnNpdGVEYXRhU3RvcmVSZWYKIAogdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3Rp
Y3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJl
ZiwgV0tTdHJpbmdSZWYgaG9zdCwgdm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlSXNT
dGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uRnVuY3Rpb24gY2FsbGJhY2spCiB7Ci0jaWYg
RU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRf
VFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5o
YXNIYWRVc2VySW50ZXJhY3Rpb24oVVJMKFVSTCgpLCBXZWJLaXQ6OnRvSW1wbChob3N0KS0+c3Ry
aW5nKCkpLCBbY29udGV4dCwgY2FsbGJhY2tdKGJvb2wgaGFzSGFkVXNlckludGVyYWN0aW9uKSB7
CiAgICAgICAgIGNhbGxiYWNrKGhhc0hhZFVzZXJJbnRlcmFjdGlvbiwgY29udGV4dCk7CiAgICAg
fSk7CkBAIC0zNTgsNyArMzU4LDcgQEAgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3Rp
Y3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGQKIAogdm9pZCBX
S1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NPbmx5SW5EYXRhYmFzZU9uY2UoV0tXZWJzaXRl
RGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgV0tTdHJpbmdSZWYgc3ViSG9zdCwgV0tTdHJpbmdS
ZWYgdG9wSG9zdCwgdm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNz
T25seUluRGF0YWJhc2VPbmNlRnVuY3Rpb24gY2FsbGJhY2spCiB7Ci0jaWYgRU5BQkxFKFJFU09V
UkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJF
VkVOVElPTikKICAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5pc1JlbGF0aW9uc2hp
cE9ubHlJbkRhdGFiYXNlT25jZShVUkwoVVJMKCksIFdlYktpdDo6dG9JbXBsKHN1Ykhvc3QpLT5z
dHJpbmcoKSksIFVSTChVUkwoKSwgV2ViS2l0Ojp0b0ltcGwodG9wSG9zdCktPnN0cmluZygpKSwg
W2NvbnRleHQsIGNhbGxiYWNrXShib29sIG9ubHlJbkRhdGFiYXNlT25jZSkgewogICAgICAgICBj
YWxsYmFjayhvbmx5SW5EYXRhYmFzZU9uY2UsIGNvbnRleHQpOwogICAgIH0pOwpAQCAtMzY5LDE0
ICszNjksMTQgQEAgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NPbmx5SW5EYXRh
YmFzZU9uY2UoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGEKIAogdm9pZCBXS1dlYnNpdGVEYXRh
U3RvcmVTZXRTdGF0aXN0aWNzR3JhbmRmYXRoZXJlZChXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0
YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBob3N0LCBib29sIHZhbHVlKQogewotI2lmIEVOQUJMRShS
RVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5H
X1BSRVZFTlRJT04pCiAgICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+c2V0R3JhbmRm
YXRoZXJlZChVUkwoVVJMKCksIFdlYktpdDo6dG9JbXBsKGhvc3QpLT5zdHJpbmcoKSksIHZhbHVl
LCBbXSB7IH0pOwogI2VuZGlmCiB9CiAKIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0
aWNzR3JhbmRmYXRoZXJlZChXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0
cmluZ1JlZiBob3N0LCB2b2lkKiBjb250ZXh0LCBXS1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3Rp
Y3NHcmFuZGZhdGhlcmVkRnVuY3Rpb24gY2FsbGJhY2spCiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNF
X0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVO
VElPTikKICAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5pc0dyYW5kZmF0aGVyZWQo
VVJMKFVSTCgpLCBXZWJLaXQ6OnRvSW1wbChob3N0KS0+c3RyaW5nKCkpLCBbY29udGV4dCwgY2Fs
bGJhY2tdKGJvb2wgaXNHcmFuZGZhdGhlcmVkKSB7CiAgICAgICAgIGNhbGxiYWNrKGlzR3JhbmRm
YXRoZXJlZCwgY29udGV4dCk7CiAgICAgfSk7CkBAIC0zODcsNDkgKzM4Nyw0OSBAQCB2b2lkIFdL
V2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlzdGljc0dyYW5kZmF0aGVyZWQoV0tXZWJzaXRlRGF0YVN0
b3JlUmVmIGRhdGFTdG9yZQogCiB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NT
dWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9y
ZVJlZiwgV0tTdHJpbmdSZWYgaG9zdCwgV0tTdHJpbmdSZWYgdG9wRnJhbWVIb3N0KQogewotI2lm
IEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5U
X1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+
c2V0U3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWluKFVSTChVUkwoKSwgV2ViS2l0Ojp0b0ltcGwo
aG9zdCktPnN0cmluZygpKSwgVVJMKFVSTCgpLCBXZWJLaXQ6OnRvSW1wbCh0b3BGcmFtZUhvc3Qp
LT5zdHJpbmcoKSksIFtdIHsgfSk7CiAjZW5kaWYKIH0KIAogdm9pZCBXS1dlYnNpdGVEYXRhU3Rv
cmVTZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKFdLV2Vic2l0ZURh
dGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhvc3QsIFdLU3RyaW5nUmVmIHRv
cEZyYW1lSG9zdCkKIHsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lm
IEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIFdlYktpdDo6dG9J
bXBsKGRhdGFTdG9yZVJlZiktPnNldFN1YnJlc291cmNlVW5kZXJUb3BGcmFtZURvbWFpbihVUkwo
VVJMKCksIFdlYktpdDo6dG9JbXBsKGhvc3QpLT5zdHJpbmcoKSksIFVSTChVUkwoKSwgV2ViS2l0
Ojp0b0ltcGwodG9wRnJhbWVIb3N0KS0+c3RyaW5nKCkpLCBbXSB7IH0pOwogI2VuZGlmCiB9CiAK
IHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVk
aXJlY3RUbyhXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBo
b3N0LCBXS1N0cmluZ1JlZiBob3N0UmVkaXJlY3RlZFRvKQogewotI2lmIEVOQUJMRShSRVNPVVJD
RV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZF
TlRJT04pCiAgICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+c2V0U3VicmVzb3VyY2VV
bmlxdWVSZWRpcmVjdFRvKFVSTChVUkwoKSwgV2ViS2l0Ojp0b0ltcGwoaG9zdCktPnN0cmluZygp
KSwgVVJMKFVSTCgpLCBXZWJLaXQ6OnRvSW1wbChob3N0UmVkaXJlY3RlZFRvKS0+c3RyaW5nKCkp
LCBbXSB7IH0pOwogI2VuZGlmCiB9CiAKIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlz
dGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RGcm9tKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBk
YXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhvc3QsIFdLU3RyaW5nUmVmIGhvc3RSZWRpcmVjdGVk
RnJvbSkKIHsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJM
RShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIFdlYktpdDo6dG9JbXBsKGRh
dGFTdG9yZVJlZiktPnNldFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RGcm9tKFVSTChVUkwoKSwg
V2ViS2l0Ojp0b0ltcGwoaG9zdCktPnN0cmluZygpKSwgVVJMKFVSTCgpLCBXZWJLaXQ6OnRvSW1w
bChob3N0UmVkaXJlY3RlZEZyb20pLT5zdHJpbmcoKSksIFtdIHsgfSk7CiAjZW5kaWYKIH0KIAog
dm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzVG9wRnJhbWVVbmlxdWVSZWRpcmVj
dFRvKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhvc3Qs
IFdLU3RyaW5nUmVmIGhvc3RSZWRpcmVjdGVkVG8pCiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xP
QURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElP
TikKICAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5zZXRUb3BGcmFtZVVuaXF1ZVJl
ZGlyZWN0VG8oVVJMKFVSTCgpLCBXZWJLaXQ6OnRvSW1wbChob3N0KS0+c3RyaW5nKCkpLCBVUkwo
VVJMKCksIFdlYktpdDo6dG9JbXBsKGhvc3RSZWRpcmVjdGVkVG8pLT5zdHJpbmcoKSksIFtdIHsg
fSk7CiAjZW5kaWYKIH0KIAogdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzVG9w
RnJhbWVVbmlxdWVSZWRpcmVjdEZyb20oV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJl
ZiwgV0tTdHJpbmdSZWYgaG9zdCwgV0tTdHJpbmdSZWYgaG9zdFJlZGlyZWN0ZWRGcm9tKQogewot
I2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElH
RU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVm
KS0+c2V0VG9wRnJhbWVVbmlxdWVSZWRpcmVjdEZyb20oVVJMKFVSTCgpLCBXZWJLaXQ6OnRvSW1w
bChob3N0KS0+c3RyaW5nKCkpLCBVUkwoVVJMKCksIFdlYktpdDo6dG9JbXBsKGhvc3RSZWRpcmVj
dGVkRnJvbSktPnN0cmluZygpKSwgW10geyB9KTsKICNlbmRpZgogfQogCiB2b2lkIFdLV2Vic2l0
ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NDcm9zc1NpdGVMb2FkV2l0aExpbmtEZWNvcmF0aW9uKFdL
V2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGZyb21Ib3N0LCBX
S1N0cmluZ1JlZiB0b0hvc3QsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0
YXRpc3RpY3NDcm9zc1NpdGVMb2FkV2l0aExpbmtEZWNvcmF0aW9uRnVuY3Rpb24gY2FsbGJhY2sp
CiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5U
RUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3Rv
cmVSZWYpLT5zZXRDcm9zc1NpdGVMb2FkV2l0aExpbmtEZWNvcmF0aW9uRm9yVGVzdGluZyhVUkwo
VVJMKCksIFdlYktpdDo6dG9JbXBsKGZyb21Ib3N0KS0+c3RyaW5nKCkpLCBVUkwoVVJMKCksIFdl
YktpdDo6dG9JbXBsKHRvSG9zdCktPnN0cmluZygpKSwgW2NvbnRleHQsIGNhbGxiYWNrXSB7CiAg
ICAgICAgIGNhbGxiYWNrKGNvbnRleHQpOwogICAgIH0pOwpAQCAtNDQwLDcgKzQ0MCw3IEBAIHZv
aWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc0Nyb3NzU2l0ZUxvYWRXaXRoTGlua0Rl
Y29yYXRpb24oV0tXZWJzaXRlRGF0CiAKIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlz
dGljc1RpbWVUb0xpdmVVc2VySW50ZXJhY3Rpb24oV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFT
dG9yZVJlZiwgZG91YmxlIHNlY29uZHMsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9y
ZVNldFN0YXRpc3RpY3NUaW1lVG9MaXZlVXNlckludGVyYWN0aW9uRnVuY3Rpb24gY2FsbGJhY2sp
CiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5U
RUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3Rv
cmVSZWYpLT5zZXRUaW1lVG9MaXZlVXNlckludGVyYWN0aW9uKFNlY29uZHMgeyBzZWNvbmRzIH0s
IFtjb250ZXh0LCBjYWxsYmFja10gewogICAgICAgICBjYWxsYmFjayhjb250ZXh0KTsKICAgICB9
KTsKQEAgLTQ1MSw3ICs0NTEsNyBAQCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3Rp
Y3NUaW1lVG9MaXZlVXNlckludGVyYWN0aW9uKFdLV2Vic2l0ZURhdGFTdG9yZQogCiB2b2lkIFdL
V2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRz
KFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIHZvaWQqIGNvbnRleHQsIFdLV2Vi
c2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzRnVu
Y3Rpb24gY2FsbGJhY2spCiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykK
KyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBXZWJLaXQ6
OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5zY2hlZHVsZVN0YXRpc3RpY3NBbmREYXRhUmVjb3Jkc1By
b2Nlc3NpbmcoW2NvbnRleHQsIGNhbGxiYWNrXSB7CiAgICAgICAgIGNhbGxiYWNrKGNvbnRleHQp
OwogICAgIH0pOwpAQCAtNDYyLDcgKzQ2Miw3IEBAIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU3Rh
dGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoV0tXZWJzaXRlRGF0YVN0CiAK
IHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKFdL
V2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0
ZURhdGFTdG9yZVN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZ0Z1bmN0aW9uIGNvbXBsZXRp
b25IYW5kbGVyKQogewotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYg
RU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgV2ViS2l0Ojp0b0lt
cGwoZGF0YVN0b3JlUmVmKS0+c2NoZWR1bGVDb29raWVCbG9ja2luZ1VwZGF0ZShbY29udGV4dCwg
Y29tcGxldGlvbkhhbmRsZXJdKCkgewogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihjb250ZXh0
KTsKICAgICB9KTsKQEAgLTQ3MywxNCArNDczLDE0IEBAIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3Jl
U3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRh
CiAKIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRh
dGFSZWNvcmRzV2VyZVNjYW5uZWQoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwg
Ym9vbCB2YWx1ZSkKIHsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lm
IEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIFdlYktpdDo6dG9J
bXBsKGRhdGFTdG9yZVJlZiktPnNldE5vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5u
ZWQodmFsdWUsIFtdIHsgfSk7CiAjZW5kaWYKIH0KIAogdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVT
ZXRTdGF0aXN0aWNzSXNSdW5uaW5nVGVzdChXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3Jl
UmVmLCBib29sIHZhbHVlLCB2b2lkKiBjb250ZXh0LCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0
aXN0aWNzSXNSdW5uaW5nVGVzdEZ1bmN0aW9uIGNhbGxiYWNrKQogewotI2lmIEVOQUJMRShSRVNP
VVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BS
RVZFTlRJT04pCiAgICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+c2V0SXNSdW5uaW5n
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1Rlc3QodmFsdWUsIFtjb250ZXh0LCBjYWxsYmFja10gewog
ICAgICAgICBjYWxsYmFjayhjb250ZXh0KTsKICAgICB9KTsKQEAgLTQ5MSw0MiArNDkxLDQyIEBA
IHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc0lzUnVubmluZ1Rlc3QoV0tXZWJz
aXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yCiAKIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3Rh
dGlzdGljc1Nob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKFdL
V2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIGJvb2wgdmFsdWUpCiB7Ci0jaWYgRU5B
QkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJB
Q0tJTkdfUFJFVkVOVElPTikKICAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5zZXRT
aG91bGRDbGFzc2lmeVJlc291cmNlc0JlZm9yZURhdGFSZWNvcmRzUmVtb3ZhbCh2YWx1ZSwgW10o
KSB7IH0pOwogI2VuZGlmCiB9CiAKIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGlj
c01pbmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbChXS1dlYnNpdGVEYXRhU3RvcmVS
ZWYgZGF0YVN0b3JlUmVmLCBkb3VibGUgc2Vjb25kcykKIHsKLSNpZiBFTkFCTEUoUkVTT1VSQ0Vf
TE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5U
SU9OKQogICAgIFdlYktpdDo6dG9JbXBsKGRhdGFTdG9yZVJlZiktPnNldE1pbmltdW1UaW1lQmV0
d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbChTZWNvbmRzIHsgc2Vjb25kcyB9LCBbXSgpIHsgfSk7CiAj
ZW5kaWYKIH0KIAogdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzR3JhbmRmYXRo
ZXJpbmdUaW1lKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIGRvdWJsZSBzZWNv
bmRzKQogewotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxF
KElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgV2ViS2l0Ojp0b0ltcGwoZGF0
YVN0b3JlUmVmKS0+c2V0R3JhbmRmYXRoZXJpbmdUaW1lKFNlY29uZHMgeyBzZWNvbmRzIH0sIFtd
KCkgeyB9KTsKICNlbmRpZgogfQogCiB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3Rp
Y3NNYXhTdGF0aXN0aWNzRW50cmllcyhXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVm
LCB1bnNpZ25lZCBlbnRyaWVzKQogewotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJ
Q1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgV2Vi
S2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+c2V0TWF4U3RhdGlzdGljc0VudHJpZXMoZW50cmll
cywgW10oKSB7IH0pOwogI2VuZGlmCiB9CiAKIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3Rh
dGlzdGljc1BydW5lRW50cmllc0Rvd25UbyhXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3Jl
UmVmLCB1bnNpZ25lZCBlbnRyaWVzKQogewotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJ
U1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAg
V2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+c2V0UHJ1bmVFbnRyaWVzRG93blRvKGVudHJp
ZXMsIFtdKCkgeyB9KTsKICNlbmRpZgogfQogCiB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRp
c3RpY3NDbGVhckluTWVtb3J5QW5kUGVyc2lzdGVudFN0b3JlKFdLV2Vic2l0ZURhdGFTdG9yZVJl
ZiBkYXRhU3RvcmVSZWYsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3Rp
Y3NDbGVhckluTWVtb3J5QW5kUGVyc2lzdGVudFN0b3JlRnVuY3Rpb24gY2FsbGJhY2spCiB7Ci0j
aWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdF
TlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYp
LT5zY2hlZHVsZUNsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50KFdlYktpdDo6U2hvdWxkR3JhbmRm
YXRoZXJTdGF0aXN0aWNzOjpZZXMsIFtjb250ZXh0LCBjYWxsYmFja10oKSB7CiAgICAgICAgIGNh
bGxiYWNrKGNvbnRleHQpOwogICAgIH0pOwpAQCAtNTM3LDcgKzUzNyw3IEBAIHZvaWQgV0tXZWJz
aXRlRGF0YVN0b3JlU3RhdGlzdGljc0NsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50U3RvcmUoV0tX
ZWJzaXRlRGF0YVN0CiAKIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGljc0NsZWFySW5N
ZW1vcnlBbmRQZXJzaXN0ZW50U3RvcmVNb2RpZmllZFNpbmNlSG91cnMoV0tXZWJzaXRlRGF0YVN0
b3JlUmVmIGRhdGFTdG9yZVJlZiwgdW5zaWduZWQgaG91cnMsIHZvaWQqIGNvbnRleHQsIFdLV2Vi
c2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NDbGVhckluTWVtb3J5QW5kUGVyc2lzdGVudFN0b3JlTW9k
aWZpZWRTaW5jZUhvdXJzRnVuY3Rpb24gY2FsbGJhY2spCiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNF
X0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVO
VElPTikKICAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5zY2hlZHVsZUNsZWFySW5N
ZW1vcnlBbmRQZXJzaXN0ZW50KFdhbGxUaW1lOjpub3coKSAtIFNlY29uZHM6OmZyb21Ib3Vycyho
b3VycyksIFdlYktpdDo6U2hvdWxkR3JhbmRmYXRoZXJTdGF0aXN0aWNzOjpZZXMsIFtjb250ZXh0
LCBjYWxsYmFja10oKSB7CiAgICAgICAgIGNhbGxiYWNrKGNvbnRleHQpOwogICAgIH0pOwpAQCAt
NTU2LDcgKzU1Niw3IEBAIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGljc0NsZWFyVGhy
b3VnaFdlYnNpdGVEYXRhUmVtb3ZhbChXS1dlYnNpdGVEYXRhU3RvCiAKIHZvaWQgV0tXZWJzaXRl
RGF0YVN0b3JlU3RhdGlzdGljc0RlbGV0ZUNvb2tpZXNGb3JUZXN0aW5nKFdLV2Vic2l0ZURhdGFT
dG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhvc3QsIGJvb2wgaW5jbHVkZUh0dHBP
bmx5Q29va2llcywgdm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGljc0Rl
bGV0ZUNvb2tpZXNGb3JUZXN0aW5nRnVuY3Rpb24gY2FsbGJhY2spCiB7Ci0jaWYgRU5BQkxFKFJF
U09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdf
UFJFVkVOVElPTikKICAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5kZWxldGVDb29r
aWVzRm9yVGVzdGluZyhVUkwoVVJMKCksIFdlYktpdDo6dG9JbXBsKGhvc3QpLT5zdHJpbmcoKSks
IGluY2x1ZGVIdHRwT25seUNvb2tpZXMsIFtjb250ZXh0LCBjYWxsYmFja10gewogICAgICAgICBj
YWxsYmFjayhjb250ZXh0KTsKICAgICB9KTsKQEAgLTU2Nyw3ICs1NjcsNyBAQCB2b2lkIFdLV2Vi
c2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NEZWxldGVDb29raWVzRm9yVGVzdGluZyhXS1dlYnNpdGVE
YXRhU3RvcmVSZWYgZAogCiB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NIYXNMb2Nh
bFN0b3JhZ2UoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgV0tTdHJpbmdSZWYg
aG9zdCwgdm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGljc0hhc0xvY2Fs
U3RvcmFnZUZ1bmN0aW9uIGNhbGxiYWNrKQogewotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NU
QVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAg
ICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+aGFzTG9jYWxTdG9yYWdlRm9yVGVzdGlu
ZyhVUkwoVVJMKCksIFdlYktpdDo6dG9JbXBsKGhvc3QpLT5zdHJpbmcoKSksIFtjb250ZXh0LCBj
YWxsYmFja10oYm9vbCBoYXNMb2NhbFN0b3JhZ2UpIHsKICAgICAgICAgY2FsbGJhY2soaGFzTG9j
YWxTdG9yYWdlLCBjb250ZXh0KTsKICAgICB9KTsKQEAgLTU3OCw3ICs1NzgsNyBAQCB2b2lkIFdL
V2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NIYXNMb2NhbFN0b3JhZ2UoV0tXZWJzaXRlRGF0YVN0
b3JlUmVmIGRhdGFTdG9yZQogCiB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3ND
YWNoZU1heEFnZUNhcChXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBkb3VibGUg
c2Vjb25kcywgdm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc0Nh
Y2hlTWF4QWdlQ2FwRnVuY3Rpb24gY2FsbGJhY2spCiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xP
QURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElP
TikKICAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5zZXRDYWNoZU1heEFnZUNhcEZv
clByZXZhbGVudFJlc291cmNlcyhTZWNvbmRzIHsgc2Vjb25kcyB9LCBbY29udGV4dCwgY2FsbGJh
Y2tdIHsKICAgICAgICAgY2FsbGJhY2soY29udGV4dCk7CiAgICAgfSk7CkBAIC01ODksNyArNTg5
LDcgQEAgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzQ2FjaGVNYXhBZ2VDYXAo
V0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG8KIAogdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVT
dGF0aXN0aWNzSGFzSXNvbGF0ZWRTZXNzaW9uKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3Rv
cmVSZWYsIFdLU3RyaW5nUmVmIGhvc3QsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9y
ZVN0YXRpc3RpY3NIYXNJc29sYXRlZFNlc3Npb25GdW5jdGlvbiBjYWxsYmFjaykKIHsKLSNpZiBF
TkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9U
UkFDS0lOR19QUkVWRU5USU9OKQogICAgIFdlYktpdDo6dG9JbXBsKGRhdGFTdG9yZVJlZiktPmhh
c0lzb2xhdGVkU2Vzc2lvbkZvclRlc3RpbmcoVVJMKFVSTCgpLCBXZWJLaXQ6OnRvSW1wbChob3N0
KS0+c3RyaW5nKCkpLCBbY29udGV4dCwgY2FsbGJhY2tdKGJvb2wgaGFzSXNvbGF0ZWRTZXNzaW9u
KSB7CiAgICAgICAgIGNhbGxiYWNrKGhhc0lzb2xhdGVkU2Vzc2lvbiwgY29udGV4dCk7CiAgICAg
fSk7CkBAIC02MTIsNyArNjEyLDcgQEAgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVIYXNBcHBCb3Vu
ZFNlc3Npb24oV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgdm8KIAogdm9pZCBX
S1dlYnNpdGVEYXRhU3RvcmVTZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU2hvdWxkRG93bmdyYWRl
UmVmZXJyZXJGb3JUZXN0aW5nKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIGJv
b2wgZW5hYmxlZCwgdm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlU2V0UmVzb3VyY2VM
b2FkU3RhdGlzdGljc1Nob3VsZERvd25ncmFkZVJlZmVycmVyRm9yVGVzdGluZ0Z1bmN0aW9uIGNv
bXBsZXRpb25IYW5kbGVyKQogewotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1Mp
CisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgV2ViS2l0
Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nob3VsZERv
d25ncmFkZVJlZmVycmVyRm9yVGVzdGluZyhlbmFibGVkLCBbY29udGV4dCwgY29tcGxldGlvbkhh
bmRsZXJdIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoY29udGV4dCk7CiAgICAgfSk7CkBA
IC02MjMsNyArNjIzLDcgQEAgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU2hvdWxkRG93bmdyYWRlUmVmZXJyZXJGb3JUZXN0aW4KIAogdm9pZCBXS1dlYnNp
dGVEYXRhU3RvcmVTZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU2hvdWxkQmxvY2tUaGlyZFBhcnR5
Q29va2llc0ZvclRlc3RpbmcoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgYm9v
bCBlbmFibGVkLCBib29sIG9ubHlPblNpdGVzV2l0aG91dFVzZXJJbnRlcmFjdGlvbiwgdm9pZCog
Y29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlU2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nob3Vs
ZEJsb2NrVGhpcmRQYXJ0eUNvb2tpZXNGb3JUZXN0aW5nRnVuY3Rpb24gY29tcGxldGlvbkhhbmRs
ZXIpCiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUo
SU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBXZWJLaXQ6OnRvSW1wbChkYXRh
U3RvcmVSZWYpLT5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU2hvdWxkQmxvY2tUaGlyZFBhcnR5
Q29va2llc0ZvclRlc3RpbmcoZW5hYmxlZCwgb25seU9uU2l0ZXNXaXRob3V0VXNlckludGVyYWN0
aW9uLCBbY29udGV4dCwgY29tcGxldGlvbkhhbmRsZXJdIHsKICAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoY29udGV4dCk7CiAgICAgfSk7CkBAIC02MzQsNyArNjM0LDcgQEAgdm9pZCBXS1dlYnNp
dGVEYXRhU3RvcmVTZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU2hvdWxkQmxvY2tUaGlyZFBhcnR5
Q29va2llc0ZvclQKIAogdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGVGb3JUZXN0aW5nKFdLV2Vic2l0
ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIGJvb2wgZW5hYmxlZCwgdm9pZCogY29udGV4dCwg
V0tXZWJzaXRlRGF0YVN0b3JlU2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0ZpcnN0UGFydHlXZWJz
aXRlRGF0YVJlbW92YWxNb2RlRm9yVGVzdGluZ0Z1bmN0aW9uIGNvbXBsZXRpb25IYW5kbGVyKQog
ewotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVM
TElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3Jl
UmVmKS0+c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0ZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92
YWxNb2RlRm9yVGVzdGluZyhlbmFibGVkLCBbY29udGV4dCwgY29tcGxldGlvbkhhbmRsZXJdIHsK
ICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoY29udGV4dCk7CiAgICAgfSk7CkBAIC02NDUsNyAr
NjQ1LDcgQEAgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
Rmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGUKIAogdm9pZCBXS1dlYnNpdGVEYXRhU3Rv
cmVTZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVG9TYW1lU2l0ZVN0cmljdENvb2tpZXNGb3JUZXN0
aW5nKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGhvc3RO
YW1lLCB2b2lkKiBjb250ZXh0LCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzVG9TYW1lU2l0ZVN0cmljdENvb2tpZXNGb3JUZXN0aW5nRnVuY3Rpb24gY29tcGxldGlv
bkhhbmRsZXIpCiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBF
TkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBXZWJLaXQ6OnRvSW1w
bChkYXRhU3RvcmVSZWYpLT5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVG9TYW1lU2l0ZVN0cmlj
dENvb2tpZXNGb3JUZXN0aW5nKFVSTChVUkwoKSwgV2ViS2l0Ojp0b0ltcGwoaG9zdE5hbWUpLT5z
dHJpbmcoKSksIFtjb250ZXh0LCBjb21wbGV0aW9uSGFuZGxlcl0gewogICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihjb250ZXh0KTsKICAgICB9KTsKQEAgLTY1Niw3ICs2NTYsNyBAQCB2b2lkIFdL
V2Vic2l0ZURhdGFTdG9yZVNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NUb1NhbWVTaXRlU3RyaWN0
Q29va2llc0ZvclRlc3RpbgogCiB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NGaXJzdFBhcnR5SG9zdENOQU1FRG9tYWluRm9yVGVzdGluZyhXS1dlYnNpdGVE
YXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBmaXJzdFBhcnR5VVJMU3RyaW5n
LCBXS1N0cmluZ1JlZiBjbmFtZVVSTFN0cmluZywgdm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0
YVN0b3JlU2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0ZpcnN0UGFydHlIb3N0Q05BTUVEb21haW5G
b3JUZXN0aW5nRnVuY3Rpb24gY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0jaWYgRU5BQkxFKFJFU09V
UkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJF
VkVOVElPTikKICAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5zZXRSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRmlyc3RQYXJ0eUhvc3RDTkFNRURvbWFpbkZvclRlc3RpbmcoVVJMKFVSTCgp
LCBXZWJLaXQ6OnRvSW1wbChmaXJzdFBhcnR5VVJMU3RyaW5nKS0+c3RyaW5nKCkpLCBVUkwoVVJM
KCksIFdlYktpdDo6dG9JbXBsKGNuYW1lVVJMU3RyaW5nKS0+c3RyaW5nKCkpLCBbY29udGV4dCwg
Y29tcGxldGlvbkhhbmRsZXJdIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoY29udGV4dCk7
CiAgICAgfSk7CkBAIC02NjcsNyArNjY3LDcgQEAgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRmlyc3RQYXJ0eUhvc3RDTkFNRURvbWFpbkZvclRlc3QKIAog
dm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGhpcmRQYXJ0
eUNOQU1FRG9tYWluRm9yVGVzdGluZyhXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVm
LCBXS1N0cmluZ1JlZiBjbmFtZVVSTFN0cmluZywgdm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0
YVN0b3JlU2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc1RoaXJkUGFydHlDTkFNRURvbWFpbkZvclRl
c3RpbmdGdW5jdGlvbiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSNpZiBFTkFCTEUoUkVTT1VSQ0Vf
TE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5U
SU9OKQogICAgIFdlYktpdDo6dG9JbXBsKGRhdGFTdG9yZVJlZiktPnNldFJlc291cmNlTG9hZFN0
YXRpc3RpY3NUaGlyZFBhcnR5Q05BTUVEb21haW5Gb3JUZXN0aW5nKFVSTChVUkwoKSwgV2ViS2l0
Ojp0b0ltcGwoY25hbWVVUkxTdHJpbmcpLT5zdHJpbmcoKSksIFtjb250ZXh0LCBjb21wbGV0aW9u
SGFuZGxlcl0gewogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihjb250ZXh0KTsKICAgICB9KTsK
QEAgLTcwMyw3ICs3MDMsNyBAQCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldEFwcEJvdW5kRG9t
YWluc0ZvclRlc3RpbmcoV0tBcnJheVJlZiBvcmlnaW5VUkxzUmVmLCB2bwogCiB2b2lkIFdLV2Vi
c2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKFdLV2Vic2l0ZURh
dGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9y
ZVN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlRnVuY3Rpb24gY29tcGxldGlvbkhhbmRs
ZXIpCiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUo
SU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBhdXRvIGNhbGxiYWNrQWdncmVn
YXRvciA9IENhbGxiYWNrQWdncmVnYXRvcjo6Y3JlYXRlKFtjb250ZXh0LCBjb21wbGV0aW9uSGFu
ZGxlcl0oKSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGNvbnRleHQpOwogICAgIH0pOwpA
QCAtODgzLDcgKzg4Myw3IEBAIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlQ2xlYXJCdW5kbGVJZGVu
dGlmaWVySW5OZXR3b3JrUHJvY2VzcyhXS1dlYnNpdGVEYXRhU3RvcmVSCiAKIHZvaWQgV0tXZWJz
aXRlRGF0YVN0b3JlR2V0QWxsU3RvcmFnZUFjY2Vzc0VudHJpZXMoV0tXZWJzaXRlRGF0YVN0b3Jl
UmVmIGRhdGFTdG9yZVJlZiwgV0tQYWdlUmVmIHBhZ2VSZWYsIHZvaWQqIGNvbnRleHQsIFdLV2Vi
c2l0ZURhdGFTdG9yZUdldEFsbFN0b3JhZ2VBY2Nlc3NFbnRyaWVzRnVuY3Rpb24gY2FsbGJhY2sp
CiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5U
RUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3Rv
cmVSZWYpLT5nZXRBbGxTdG9yYWdlQWNjZXNzRW50cmllcyhXZWJLaXQ6OnRvSW1wbChwYWdlUmVm
KS0+aWRlbnRpZmllcigpLCBbY29udGV4dCwgY2FsbGJhY2tdIChWZWN0b3I8U3RyaW5nPiYmIGRv
bWFpbnMpIHsKICAgICAgICAgYXV0byBkb21haW5BcnJheVJlZiA9IFdLTXV0YWJsZUFycmF5Q3Jl
YXRlKCk7CiAgICAgICAgIGZvciAoYXV0byBkb21haW4gOiBkb21haW5zKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQppbmRleCBjMWJm
OTRjZjM2Nzg2Njk2Zjc5ODM5Mzg0NGM5NjcwMDJjYWNkZjgyLi40OWZmYWNkZjA4YTlmMjcyNzc3
OGMwMzExOWJlMzQxMDZhNzA3ZDM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQpAQCAtNTUzLDcgKzU1Myw3IEBAIC0gKHZvaWQp
X2NsZWFyUGVybWFuZW50Q3JlZGVudGlhbHNGb3JQcm90ZWN0aW9uU3BhY2U6KE5TVVJMUHJvdGVj
dGlvblNwYWNlICopcHJvCiAKIC0gKHZvaWQpX3NlZWRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRm9y
VGVzdGluZ1dpdGhGaXJzdFBhcnR5OihOU1VSTCAqKWZpcnN0UGFydHlVUkwgdGhpcmRQYXJ0eToo
TlNVUkwgKil0aGlyZFBhcnR5VVJMIHNob3VsZFNjaGVkdWxlTm90aWZpY2F0aW9uOihCT09MKXNo
b3VsZFNjaGVkdWxlTm90aWZpY2F0aW9uIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKHZvaWQp
KWNvbXBsZXRpb25IYW5kbGVyCiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElD
UykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBfcHJv
Y2Vzc1Bvb2wtPnNlZWRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRm9yVGVzdGluZyhXZWJDb3JlOjpS
ZWdpc3RyYWJsZURvbWFpbiB7IGZpcnN0UGFydHlVUkwgfSwgV2ViQ29yZTo6UmVnaXN0cmFibGVE
b21haW4geyB0aGlyZFBhcnR5VVJMIH0sIHNob3VsZFNjaGVkdWxlTm90aWZpY2F0aW9uLCBbY29t
cGxldGlvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpXSAoKSB7CiAg
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiAgICAgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQppbmRleCA0
ZGMxNWJhZDg0ZTg5ODg0YmJkMWNlNmZhZmNlMmM3MzA1ZTBjMTAwLi43YjA5ZTVhNTUxNzM5MzNk
YmNlNjJjNDZlNzk1NTE2ZDE3ZjFiNWRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KQEAgLTMxMSw3ICszMTEs
NyBAQCAtICh2b2lkKV9zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZDooQk9PTCllbmFi
bGVkCiAKIC0gKEJPT0wpX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUKIHsKLSNpZiBF
TkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9U
UkFDS0lOR19QUkVWRU5USU9OKQogICAgIHJldHVybiBfd2Vic2l0ZURhdGFTdG9yZS0+cmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZSgpOwogI2Vsc2UKICAgICByZXR1cm4gTk87CkBAIC0z
MjAsNyArMzIwLDcgQEAgLSAoQk9PTClfcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZQog
CiAtICh2b2lkKV9zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlOihCT09MKWVuYWJs
ZWQKIHsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJ
TlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIF93ZWJzaXRlRGF0YVN0b3JlLT5z
ZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlKGVuYWJsZWQpOwogI2Vsc2UKICAgICBV
TlVTRURfUEFSQU0oZW5hYmxlZCk7CkBAIC0zNzksNyArMzc5LDcgQEAgLSAoTlNVUkwgKilfaW5k
ZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkKIAogLSAodm9pZClfc2V0UmVzb3VyY2VMb2FkU3RhdGlz
dGljc1Rlc3RpbmdDYWxsYmFjazoodm9pZCAoXikoV0tXZWJzaXRlRGF0YVN0b3JlICosIE5TU3Ry
aW5nICopKWNhbGxiYWNrCiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykK
KyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBpZiAoIV93
ZWJzaXRlRGF0YVN0b3JlLT5pc1BlcnNpc3RlbnQoKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC00
MDEsNyArNDAxLDcgQEAgKyAodm9pZClfYWxsb3dXZWJzaXRlRGF0YVJlY29yZHNGb3JBbGxPcmln
aW5zCiAKIC0gKHZvaWQpX2xvYWRlZFN1YnJlc291cmNlRG9tYWluc0ZvcjooV0tXZWJWaWV3ICop
d2ViVmlldyBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNBcnJheTxOU1N0cmluZyAqPiAq
ZG9tYWlucykpY29tcGxldGlvbkhhbmRsZXIKIHsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9T
VEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQog
ICAgIGlmICghd2ViVmlldykgewogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihuaWwpOwogICAg
ICAgICByZXR1cm47CkBAIC00MjYsNyArNDI2LDcgQEAgLSAodm9pZClfbG9hZGVkU3VicmVzb3Vy
Y2VEb21haW5zRm9yOihXS1dlYlZpZXcgKil3ZWJWaWV3IGNvbXBsZXRpb25IYW5kbGVyOih2b2kK
IAogLSAodm9pZClfY2xlYXJMb2FkZWRTdWJyZXNvdXJjZURvbWFpbnNGb3I6KFdLV2ViVmlldyAq
KXdlYlZpZXcKIHsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVO
QUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIGlmICghd2ViVmlldykK
ICAgICAgICAgcmV0dXJuOwogCkBAIC00NTIsNyArNDUyLDcgQEAgLSAodm9pZClfZ2V0QWxsU3Rv
cmFnZUFjY2Vzc0VudHJpZXNGb3I6KFdLV2ViVmlldyAqKXdlYlZpZXcgY29tcGxldGlvbkhhbmRs
ZXI6KHYKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FE
X1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04p
CiAgICAgX3dlYnNpdGVEYXRhU3RvcmUtPmdldEFsbFN0b3JhZ2VBY2Nlc3NFbnRyaWVzKHdlYlBh
Z2VQcm94eS0+aWRlbnRpZmllcigpLCBbY29tcGxldGlvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIo
Y29tcGxldGlvbkhhbmRsZXIpXShhdXRvIGRvbWFpbnMpIHsKICAgICAgICAgVmVjdG9yPFJlZlB0
cjxBUEk6Ok9iamVjdD4+IGFwaURvbWFpbnM7CiAgICAgICAgIGFwaURvbWFpbnMucmVzZXJ2ZUlu
aXRpYWxDYXBhY2l0eShkb21haW5zLnNpemUoKSk7CkBAIC00NjcsNyArNDY3LDcgQEAgLSAodm9p
ZClfZ2V0QWxsU3RvcmFnZUFjY2Vzc0VudHJpZXNGb3I6KFdLV2ViVmlldyAqKXdlYlZpZXcgY29t
cGxldGlvbkhhbmRsZXI6KHYKIAogLSAodm9pZClfc2NoZWR1bGVDb29raWVCbG9ja2luZ1VwZGF0
ZToodm9pZCAoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIKIHsKLSNpZiBFTkFCTEUoUkVTT1VS
Q0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVW
RU5USU9OKQogICAgIF93ZWJzaXRlRGF0YVN0b3JlLT5zY2hlZHVsZUNvb2tpZUJsb2NraW5nVXBk
YXRlKFtjb21wbGV0aW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcild
KCkgewogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogICAgIH0pOwpAQCAtNDc4LDcgKzQ3
OCw3IEBAIC0gKHZvaWQpX3NjaGVkdWxlQ29va2llQmxvY2tpbmdVcGRhdGU6KHZvaWQgKF4pKHZv
aWQpKWNvbXBsZXRpb25IYW5kbGVyCiAKIC0gKHZvaWQpX2xvZ1VzZXJJbnRlcmFjdGlvbjooTlNV
UkwgKilkb21haW4gY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKHZvaWQpKWNvbXBsZXRpb25I
YW5kbGVyCiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFC
TEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBfd2Vic2l0ZURhdGFTdG9y
ZS0+bG9nVXNlckludGVyYWN0aW9uKGRvbWFpbiwgW2NvbXBsZXRpb25IYW5kbGVyID0gbWFrZUJs
b2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKV0gewogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigp
OwogICAgIH0pOwpAQCAtNDg5LDcgKzQ4OSw3IEBAIC0gKHZvaWQpX2xvZ1VzZXJJbnRlcmFjdGlv
bjooTlNVUkwgKilkb21haW4gY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKHZvaWQpKWNvCiAK
IC0gKHZvaWQpX3NldFByZXZhbGVudERvbWFpbjooTlNVUkwgKilkb21haW4gY29tcGxldGlvbkhh
bmRsZXI6KHZvaWQgKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyCiB7Ci0jaWYgRU5BQkxFKFJF
U09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdf
UFJFVkVOVElPTikKICAgICBfd2Vic2l0ZURhdGFTdG9yZS0+c2V0UHJldmFsZW50UmVzb3VyY2Uo
VVJMKGRvbWFpbiksIFtjb21wbGV0aW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9u
SGFuZGxlcildKCkgewogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogICAgIH0pOwpAQCAt
NTAwLDcgKzUwMCw3IEBAIC0gKHZvaWQpX3NldFByZXZhbGVudERvbWFpbjooTlNVUkwgKilkb21h
aW4gY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKHZvaWQpKWNvCiAKIC0gKHZvaWQpX2dldElz
UHJldmFsZW50RG9tYWluOihOU1VSTCAqKWRvbWFpbiBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAo
XikoQk9PTCkpY29tcGxldGlvbkhhbmRsZXIKIHsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9T
VEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQog
ICAgIF93ZWJzaXRlRGF0YVN0b3JlLT5pc1ByZXZhbGVudFJlc291cmNlKFVSTChkb21haW4pLCBb
Y29tcGxldGlvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpXShib29s
IGVuYWJsZWQpIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZW5hYmxlZCk7CiAgICAgfSk7
CkBAIC01MTEsNyArNTExLDcgQEAgLSAodm9pZClfZ2V0SXNQcmV2YWxlbnREb21haW46KE5TVVJM
ICopZG9tYWluIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShCT09MKSkKIAogLSAodm9pZClf
Y2xlYXJQcmV2YWxlbnREb21haW46KE5TVVJMICopZG9tYWluIGNvbXBsZXRpb25IYW5kbGVyOih2
b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlcgogewotI2lmIEVOQUJMRShSRVNPVVJDRV9M
T0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJ
T04pCiAgICAgX3dlYnNpdGVEYXRhU3RvcmUtPmNsZWFyUHJldmFsZW50UmVzb3VyY2UoVVJMKGRv
bWFpbiksIFtjb21wbGV0aW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxl
cildKCkgewogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogICAgIH0pOwpAQCAtNTIyLDcg
KzUyMiw3IEBAIC0gKHZvaWQpX2NsZWFyUHJldmFsZW50RG9tYWluOihOU1VSTCAqKWRvbWFpbiBj
b21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikodm9pZCkpCiAKIC0gKHZvaWQpX2NsZWFyUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljczoodm9pZCAoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIKIHsKLSNp
ZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VO
VF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIF93ZWJzaXRlRGF0YVN0b3JlLT5zY2hlZHVsZUNs
ZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50KFdlYktpdDo6U2hvdWxkR3JhbmRmYXRoZXJTdGF0aXN0
aWNzOjpObywgW2NvbXBsZXRpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5k
bGVyKV0oKSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiAgICAgfSk7CkBAIC01MzMs
NyArNTMzLDcgQEAgLSAodm9pZClfY2xlYXJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOih2b2lkIChe
KSh2b2lkKSljb21wbGV0aW9uSGFuZGxlcgogCiAtICh2b2lkKV9nZXRSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YVN1bW1hcnk6KHZvaWQgKF4pKE5TQXJyYXk8X1dLUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1RoaXJkUGFydHkgKj4gKikpY29tcGxldGlvbkhhbmRsZXIKIHsKLSNpZiBFTkFCTEUoUkVT
T1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19Q
UkVWRU5USU9OKQogICAgIF93ZWJzaXRlRGF0YVN0b3JlLT5nZXRSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGF0YVN1bW1hcnkoW2NvbXBsZXRpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRp
b25IYW5kbGVyKV0gKGF1dG8mJiB0aGlyZFBhcnR5RG9tYWlucykgewogICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihjcmVhdGVOU0FycmF5KHRoaXJkUGFydHlEb21haW5zLCBbXSAoYXV0byYmIGRv
bWFpbikgewogICAgICAgICAgICAgcmV0dXJuIHdyYXBwZXIoQVBJOjpSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzVGhpcmRQYXJ0eTo6Y3JlYXRlKFdURk1vdmUoZG9tYWluKSkpOwpAQCAtNTUxLDcgKzU1
MSw3IEBAICsgKHZvaWQpX3NldENhY2hlZFByb2Nlc3NTdXNwZW5zaW9uRGVsYXlGb3JUZXN0aW5n
Oihkb3VibGUpZGVsYXlJblNlY29uZHMKIAogLSAodm9pZClfaXNSZWxhdGlvbnNoaXBPbmx5SW5E
YXRhYmFzZU9uY2U6KE5TVVJMICopZmlyc3RQYXJ0eVVSTCB0aGlyZFBhcnR5OihOU1VSTCAqKXRo
aXJkUGFydHlVUkwgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wpKWNvbXBsZXRpb25I
YW5kbGVyCiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFC
TEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBfd2Vic2l0ZURhdGFTdG9y
ZS0+aXNSZWxhdGlvbnNoaXBPbmx5SW5EYXRhYmFzZU9uY2UodGhpcmRQYXJ0eVVSTCwgZmlyc3RQ
YXJ0eVVSTCwgW2NvbXBsZXRpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5k
bGVyKV0gKGJvb2wgcmVzdWx0KSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHJlc3VsdCk7
CiAgICAgfSk7CkBAIC01NjIsNyArNTYyLDcgQEAgLSAodm9pZClfaXNSZWxhdGlvbnNoaXBPbmx5
SW5EYXRhYmFzZU9uY2U6KE5TVVJMICopZmlyc3RQYXJ0eVVSTCB0aGlyZFBhcnR5OihOU1UKIAog
LSAodm9pZClfaXNSZWdpc3RlcmVkQXNTdWJyZXNvdXJjZVVuZGVyRmlyc3RQYXJ0eTooTlNVUkwg
KilmaXJzdFBhcnR5VVJMIHRoaXJkUGFydHk6KE5TVVJMICopdGhpcmRQYXJ0eVVSTCBjb21wbGV0
aW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCkpY29tcGxldGlvbkhhbmRsZXIKIHsKLSNpZiBFTkFC
TEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFD
S0lOR19QUkVWRU5USU9OKQogICAgIF93ZWJzaXRlRGF0YVN0b3JlLT5pc1JlZ2lzdGVyZWRBc1N1
YnJlc291cmNlVW5kZXIodGhpcmRQYXJ0eVVSTCwgZmlyc3RQYXJ0eVVSTCwgW2NvbXBsZXRpb25I
YW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKV0oYm9vbCBlbmFibGVkKSB7
CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGVuYWJsZWQpOwogICAgIH0pOwpAQCAtNTczLDcg
KzU3Myw3IEBAIC0gKHZvaWQpX2lzUmVnaXN0ZXJlZEFzU3VicmVzb3VyY2VVbmRlckZpcnN0UGFy
dHk6KE5TVVJMICopZmlyc3RQYXJ0eVVSTCB0aGlyZFBhCiAKIC0gKHZvaWQpX3N0YXRpc3RpY3NE
YXRhYmFzZUhhc0FsbFRhYmxlczoodm9pZCAoXikoQk9PTCkpY29tcGxldGlvbkhhbmRsZXIKIHsK
LSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJ
R0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIF93ZWJzaXRlRGF0YVN0b3JlLT5zdGF0aXN0
aWNzRGF0YWJhc2VIYXNBbGxUYWJsZXMoW2NvbXBsZXRpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRy
KGNvbXBsZXRpb25IYW5kbGVyKV0oYm9vbCBoYXNBbGxUYWJsZXMpIHsKICAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoaGFzQWxsVGFibGVzKTsKICAgICB9KTsKQEAgLTU4NCw3ICs1ODQsNyBAQCAt
ICh2b2lkKV9zdGF0aXN0aWNzRGF0YWJhc2VIYXNBbGxUYWJsZXM6KHZvaWQgKF4pKEJPT0wpKWNv
bXBsZXRpb25IYW5kbGVyCiAKIC0gKHZvaWQpX3Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29y
ZHM6KHZvaWQgKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyCiB7Ci0jaWYgRU5BQkxFKFJFU09V
UkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJF
VkVOVElPTikKICAgICBfd2Vic2l0ZURhdGFTdG9yZS0+c2NoZWR1bGVTdGF0aXN0aWNzQW5kRGF0
YVJlY29yZHNQcm9jZXNzaW5nKFtjb21wbGV0aW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21w
bGV0aW9uSGFuZGxlcildKCkgewogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogICAgIH0p
OwpAQCAtNTk1LDcgKzU5NSw3IEBAIC0gKHZvaWQpX3Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJl
Y29yZHM6KHZvaWQgKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyCiAKIC0gKHZvaWQpX3NldFRo
aXJkUGFydHlDb29raWVCbG9ja2luZ01vZGU6KEJPT0wpZW5hYmxlZCBvbmx5T25TaXRlc1dpdGhv
dXRVc2VySW50ZXJhY3Rpb246KEJPT0wpb25seU9uU2l0ZXNXaXRob3V0VXNlckludGVyYWN0aW9u
IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlcgogewot
I2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElH
RU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgX3dlYnNpdGVEYXRhU3RvcmUtPnNldFJlc291
cmNlTG9hZFN0YXRpc3RpY3NTaG91bGRCbG9ja1RoaXJkUGFydHlDb29raWVzRm9yVGVzdGluZyhl
bmFibGVkLCBvbmx5T25TaXRlc1dpdGhvdXRVc2VySW50ZXJhY3Rpb24sIFtjb21wbGV0aW9uSGFu
ZGxlciA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcildKCkgewogICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcigpOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KaW5kZXggYmMxMjNjOWI1OWE2YjhjN2Vi
YTFjZTZiNDEwYzhlMGMwNmNjZGM5NC4uZWI4NTYxMTc2NTk2ZGI5YTQyNDljYjEwNzcxZWNlMWUz
NTlmZTZkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJv
Y2Vzc1Bvb2xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQ
cm9jZXNzUG9vbENvY29hLm1tCkBAIC0xMjAsNyArMTIwLDcgQEAgc3RhdGljIENGU3RyaW5nUmVm
IEFwcGxlQ29sb3JQcmVmZXJlbmNlc0NoYW5nZWROb3RpZmljYXRpb24gPSBDRlNUUigiQXBwbGVD
b2xvclAKIAogc3RhdGljIE5TU3RyaW5nICogY29uc3QgV2ViS2l0U3VwcHJlc3NNZW1vcnlQcmVz
c3VyZUhhbmRsZXJEZWZhdWx0c0tleSA9IEAiV2ViS2l0U3VwcHJlc3NNZW1vcnlQcmVzc3VyZUhh
bmRsZXIiOwogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykgJiYgIVJFTEVB
U0VfTE9HX0RJU0FCTEVECisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJ
T04pICYmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogc3RhdGljIE5TU3RyaW5nICogY29uc3QgV2Vi
S2l0TG9nQ29va2llSW5mb3JtYXRpb25EZWZhdWx0c0tleSA9IEAiV2ViS2l0TG9nQ29va2llSW5m
b3JtYXRpb24iOwogI2VuZGlmCiAKQEAgLTQxNCw3ICs0MTQsNyBAQCB2b2lkIFdlYlByb2Nlc3NQ
b29sOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKGNvbnN0IFdlYlByb2Nlc3NQcm94eSYg
cHJvY2VzcwogI2VuZGlmCiAjZW5kaWYKIAotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJ
U1RJQ1MpICYmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9U
UkFDS0lOR19QUkVWRU5USU9OKSAmJiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBwYXJhbWV0
ZXJzLnNob3VsZExvZ1VzZXJJbnRlcmFjdGlvbiA9IFtkZWZhdWx0cyBib29sRm9yS2V5OldlYktp
dExvZ0Nvb2tpZUluZm9ybWF0aW9uRGVmYXVsdHNLZXldOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3Bw
CmluZGV4IDBhNDUyZWVkNDViNTMzZGQyZTBjZDBjZGNhOTdiY2E3ZDE1MzQzZTYuLjFjZGNmY2Uw
NmY5NWU2YjUzMTI3NWE4M2UzZWY3ZjA5NjhmZThhNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcApAQCAtNTU5
LDcgKzU1OSw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6cmVzb3VyY2VMb2FkRGlkQ29t
cGxldGVXaXRoRXJyb3IoV2ViUGFnZVByb3h5SWRlbnRpZmllCiAgICAgcGFnZS0+cmVzb3VyY2VM
b2FkRGlkQ29tcGxldGVXaXRoRXJyb3IoV1RGTW92ZShsb2FkSW5mbyksIFdURk1vdmUocmVzcG9u
c2UpLCBXVEZNb3ZlKGVycm9yKSk7CiB9CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFU
SVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogdm9p
ZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkdW1wUmVzb3VyY2VMb2FkU3RhdGlzdGljcyhQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAoIWNhblNlbmRNZXNzYWdlKCkpIHsKQEAgLTEyNDIs
NyArMTI0Miw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0RG9tYWluc1dpdGhDcm9z
c1BhZ2VTdG9yYWdlQWNjZXNzKEhhc2hNYXA8VG9wRnJhbWVECiAgICAgICAgIHByb2Nlc3NQb29s
LT5zZXREb21haW5zV2l0aENyb3NzUGFnZVN0b3JhZ2VBY2Nlc3MoSGFzaE1hcDxUb3BGcmFtZURv
bWFpbiwgU3ViUmVzb3VyY2VEb21haW4+IHsgZG9tYWlucyB9LCBbY2FsbGJhY2tBZ2dyZWdhdG9y
XSB7IH0pOwogfQogCi0jZW5kaWYgLy8gRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykK
KyNlbmRpZiAvLyBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKIAogdm9p
ZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9k
ZShib29sIGRlYnVnTW9kZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKaW5kZXggZWIxMmM0NGUxZWM3MGY1N2EzYjE2
MmYyODllOWEzYjU3ZDMyMDMwOS4uNjk5YTgyNTllZmFkYTEyYmFlZmYxY2RlOGJlMTBkMTM2ODQ1
ZWQ2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc1Byb3h5LmgKQEAgLTEzMiw3ICsxMzIsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lk
IHByZWNvbm5lY3RUbyhQQUw6OlNlc3Npb25JRCwgV2ViUGFnZVByb3h5SWRlbnRpZmllciwgV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIsIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6
OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBzdGQ6Om9wdGlvbmFsPE5hdmlnYXRpbmdUb0FwcEJv
dW5kRG9tYWluPiwgTGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQpOwogCi0jaWYgRU5BQkxF
KFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJ
TkdfUFJFVkVOVElPTikKICAgICB2b2lkIGNsZWFyUHJldmFsZW50UmVzb3VyY2UoUEFMOjpTZXNz
aW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKTsKICAgICB2b2lkIGNsZWFyVXNlckludGVyYWN0aW9uKFBBTDo6U2Vzc2lvbklELCBjb25z
dCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAg
dm9pZCBkdW1wUmVzb3VyY2VMb2FkU3RhdGlzdGljcyhQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChTdHJpbmcpPiYmKTsKQEAgLTMwMSw3ICszMDEsNyBAQCBwcml2YXRlOgog
ICAgIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2UoV2ViUGFnZVByb3h5SWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBXZWJDb3JlOjpT
aG91bGRTYW1wbGUpOwogICAgIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KFdl
YlBhZ2VQcm94eUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5n
JiBkZXNjcmlwdGlvbiwgdWludDMyX3QgcmVzdWx0LCBXZWJDb3JlOjpTaG91bGRTYW1wbGUpOwog
ICAgIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoV2ViUGFnZVByb3h5SWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBk
b3VibGUgdmFsdWUsIHVuc2lnbmVkIHNpZ25pZmljYW50RmlndXJlcywgV2ViQ29yZTo6U2hvdWxk
U2FtcGxlKTsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJM
RShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIHZvaWQgbG9nVGVzdGluZ0V2
ZW50KFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGV2ZW50KTsKICAgICB2b2lkIG5vdGlm
eVJlc291cmNlTG9hZFN0YXRpc3RpY3NQcm9jZXNzZWQoKTsKICAgICB2b2lkIG5vdGlmeVdlYnNp
dGVEYXRhRGVsZXRpb25Gb3JSZWdpc3RyYWJsZURvbWFpbnNGaW5pc2hlZCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1l
c3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c1Byb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGVlZDY1YWFlMjA0YTBiYTJiYjA2YWQ1YTg3N2NhNjAw
NWNmNDVkMGUuLmQ2NzQ5MjVjNTgxZGJkOWYwYTc2OWE2NzAwMzZkOWM2ZGVmMzQwNzEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94
eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KQEAgLTMzLDcgKzMzLDcgQEAgbWVzc2FnZXMgLT4g
TmV0d29ya1Byb2Nlc3NQcm94eSBMZWdhY3lSZWNlaXZlciB7CiAgICAgTG9nRGlhZ25vc3RpY01l
c3NhZ2VXaXRoUmVzdWx0KFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllciBwYWdlSUQsIFN0
cmluZyBtZXNzYWdlLCBTdHJpbmcgZGVzY3JpcHRpb24sIHVpbnQzMl90IHJlc3VsdCwgZW51bTpi
b29sIFdlYkNvcmU6OlNob3VsZFNhbXBsZSBzaG91bGRTYW1wbGUpCiAgICAgTG9nRGlhZ25vc3Rp
Y01lc3NhZ2VXaXRoVmFsdWUoV2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyIHBhZ2VJRCwg
U3RyaW5nIG1lc3NhZ2UsIFN0cmluZyBkZXNjcmlwdGlvbiwgZG91YmxlIHZhbHVlLCB1bnNpZ25l
ZCBzaWduaWZpY2FudEZpZ3VyZXMsIGVudW06Ym9vbCBXZWJDb3JlOjpTaG91bGRTYW1wbGUgc2hv
dWxkU2FtcGxlKQogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBF
TkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBMb2dUZXN0aW5nRXZl
bnQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTdHJpbmcgZXZlbnQpCiAgICAgTm90aWZ5UmVz
b3VyY2VMb2FkU3RhdGlzdGljc1Byb2Nlc3NlZCgpCiAgICAgTm90aWZ5V2Vic2l0ZURhdGFEZWxl
dGlvbkZvclJlZ2lzdHJhYmxlRG9tYWluc0ZpbmlzaGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDVjMzc1NDE3OTRiNzk3ZDdmNTMxMGNjMzc0ZGYwNWYw
ZTk2YzAwOWMuLmRjZGY2OGQwOGVkODQyNDIxODczYmNjMjAyMjllYTg4MGQzYTc4NmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNDg0OSw3ICs0ODQ5LDcg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJl
ZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHAKICAgICAgICAgbV9wcm92aXNpb25hbFBhZ2UgPSBu
dWxscHRyOwogfQogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBF
TkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKIHN0YXRpYyBPcHRpb25TZXQ8
Q3Jvc3NTaXRlTmF2aWdhdGlvbkRhdGFUcmFuc2Zlcjo6RmxhZz4gY2hlY2tJZk5hdmlnYXRpb25D
b250YWluc0RhdGFUcmFuc2Zlcihjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEgcmVxdWVzdGVyT3Jp
Z2luLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIGN1cnJlbnRSZXF1ZXN0KQogewogICAgIE9wdGlv
blNldDxDcm9zc1NpdGVOYXZpZ2F0aW9uRGF0YVRyYW5zZmVyOjpGbGFnPiBuYXZpZ2F0aW9uRGF0
YVRyYW5zZmVyOwpAQCAtNDg4Miw3ICs0ODgyLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZENv
bW1pdExvYWRGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgRnJhbWVJbmZvRGF0YSYK
ICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIG1lc3NhZ2UgY2hlY2sgdGhhdCBuYXZpZ2F0aW9uSUQg
aXMgbm90IHplcm8gaGVyZSwgYnV0IGl0J3MgY3VycmVudGx5IHplcm8gZm9yIHNvbWUgbmF2aWdh
dGlvbnMgdGhyb3VnaCB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLgogICAgIFJlZlB0cjxBUEk6Ok5h
dmlnYXRpb24+IG5hdmlnYXRpb247CiAgICAgaWYgKGZyYW1lLT5pc01haW5GcmFtZSgpICYmIG5h
dmlnYXRpb25JRCAmJiAobmF2aWdhdGlvbiA9IG5hdmlnYXRpb25TdGF0ZSgpLm5hdmlnYXRpb24o
bmF2aWdhdGlvbklEKSkpIHsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQor
I2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgICAgICBhdXRv
IHJlcXVlc3Rlck9yaWdpbiA9IG5hdmlnYXRpb24tPmxhc3ROYXZpZ2F0aW9uQWN0aW9uKCkucmVx
dWVzdGVyT3JpZ2luOwogICAgICAgICBhdXRvIGN1cnJlbnRSZXF1ZXN0ID0gbmF2aWdhdGlvbi0+
Y3VycmVudFJlcXVlc3QoKTsKICAgICAgICAgYXV0byBuYXZpZ2F0aW9uRGF0YVRyYW5zZmVyID0g
Y2hlY2tJZk5hdmlnYXRpb25Db250YWluc0RhdGFUcmFuc2ZlcihyZXF1ZXN0ZXJPcmlnaW4sIGN1
cnJlbnRSZXF1ZXN0KTsKQEAgLTUwMTgsNyArNTAxOCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpk
aWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWlu
dDY0CiAKICAgICBpZiAoZnJhbWUtPmlzTWFpbkZyYW1lKCkpIHsKICAgICAgICAgbV9uYXZpZ2F0
aW9uQ2xpZW50LT5kaWRGaW5pc2hEb2N1bWVudExvYWQoKnRoaXMsIG5hdmlnYXRpb24uZ2V0KCks
IG1fcHJvY2Vzcy0+dHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyh1c2VyRGF0YS5vYmplY3QoKSku
Z2V0KCkpOwotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxF
KElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgICAgIG1fZGlkRmluaXNoRG9j
dW1lbnRMb2FkRm9yTWFpbkZyYW1lVGltZXN0YW1wID0gTW9ub3RvbmljVGltZTo6bm93KCk7CiAj
ZW5kaWYKICAgICB9CkBAIC01NDk2LDcgKzU0OTYsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nl
cwogICAgIG1fd2Vic2l0ZURhdGFTdG9yZS0+YmVnaW5BcHBCb3VuZERvbWFpbkNoZWNrKGhvc3Qu
dG9TdHJpbmcoKSwgcHJvdG9jb2wudG9TdHJpbmcoKSwgbGlzdGVuZXIpOwogI2VuZGlmCiAKLSNp
ZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VO
VF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIGF1dG8gd2FzUG90ZW50aWFsbHlJbml0aWF0ZWRC
eVVzZXIgPSBuYXZpZ2F0aW9uLT5pc0xvYWRlZFdpdGhOYXZpZ2F0aW9uU2hhcmVkKCkgfHwgdXNl
ckluaXRpYXRlZEFjdGl2aXR5OwogICAgIGlmICghc2Vzc2lvbklEKCkuaXNFcGhlbWVyYWwoKSkK
ICAgICAgICAgbG9nRnJhbWVOYXZpZ2F0aW9uKGZyYW1lLCBVUkwoVVJMKCksIG1fcGFnZUxvYWRT
dGF0ZS51cmwoKSksIHJlcXVlc3QsIHJlZGlyZWN0UmVzcG9uc2UudXJsKCksIHdhc1BvdGVudGlh
bGx5SW5pdGlhdGVkQnlVc2VyKTsKQEAgLTU1MzYsNyArNTUzNiw3IEBAIFdlYlBhZ2VQcm94eSog
V2ViUGFnZVByb3h5Ojpub25FcGhlbWVyYWxXZWJQYWdlUHJveHkoKQogICAgIHJldHVybiBudWxs
cHRyOwogfQogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFC
TEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKIHZvaWQgV2ViUGFnZVByb3h5Ojps
b2dGcmFtZU5hdmlnYXRpb24oY29uc3QgV2ViRnJhbWVQcm94eSYgZnJhbWUsIGNvbnN0IFVSTCYg
cGFnZVVSTCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBV
UkwmIHJlZGlyZWN0VVJMLCBib29sIHdhc1BvdGVudGlhbGx5SW5pdGlhdGVkQnlVc2VyKQogewog
ICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CkBAIC05OTkzLDcgKzk5OTMsNyBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6bG9hZFN5bmNocm9ub3VzVVJMU2NoZW1lVGFzayhVUkxTY2hlbWVUYXNr
UGFyYW1ldGVycyYmIHBhcmFtZQogICAgIGl0ZXJhdG9yLT52YWx1ZS0+c3RhcnRUYXNrKCp0aGlz
LCBtX3Byb2Nlc3MsIG1fd2ViUGFnZUlELCBXVEZNb3ZlKHBhcmFtZXRlcnMpLCBXVEZNb3ZlKHJl
cGx5KSk7CiB9CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVO
QUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogdm9pZCBXZWJQYWdlUHJveHk6
OnJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybShjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3Vi
RnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgRnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCiB7CiAgICAgbV91aUNsaWVudC0+cmVxdWVzdFN0b3JhZ2VBY2Nlc3ND
b25maXJtKCp0aGlzLCBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpLCBzdWJGcmFtZURvbWFp
biwgdG9wRnJhbWVEb21haW4sIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKQEAgLTEwNzE1
LDcgKzEwNzE1LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldE9yaWVudGF0aW9uRm9yTWVkaWFD
YXB0dXJlKHVpbnQ2NF90IG9yaWVudGF0aW9uKQogI2VuZGlmCiB9CiAKLSNpZiBFTkFCTEUoUkVT
T1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19Q
UkVWRU5USU9OKQogdm9pZCBXZWJQYWdlUHJveHk6OmdldExvYWRlZFN1YnJlc291cmNlRG9tYWlu
cyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxSZWdpc3RyYWJsZURvbWFpbj4mJik+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpX
ZWJQYWdlOjpHZXRMb2FkZWRTdWJyZXNvdXJjZURvbWFpbnMoKSwgV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA5MzA0
Y2ZlMjA2OWVkNmY5MTg1NTA2OWMyZWQxMmU1ZmRjMDk0M2RhLi5mNDQxNzE0NDMxYTQxNGZiNTM5
NWY2NDFiYmY4ZWRlOGQzNTQ2YTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaApAQCAtMTY2OSw3ICsxNjY5LDcgQEAgcHVibGljOgogICAgIHZvaWQgdG91Y2hCYXJNZW51
SXRlbURhdGFSZW1vdmVkKGNvbnN0IFRvdWNoQmFyTWVudUl0ZW1EYXRhJik7CiAjZW5kaWYKIAot
I2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElH
RU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vzc0Nv
bmZpcm0oY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBj
b25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAgICAg
dm9pZCBkaWRDb21taXRDcm9zc1NpdGVMb2FkV2l0aERhdGFUcmFuc2ZlckZyb21QcmV2YWxlbnRS
ZXNvdXJjZSgpOwogICAgIHZvaWQgZ2V0TG9hZGVkU3VicmVzb3VyY2VEb21haW5zKENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoVmVjdG9yPFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluPiYmKT4mJik7
CkBAIC0yNDczLDcgKzI0NzMsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBkaWRBdHRhY2hUb1J1
bm5pbmdQcm9jZXNzKCk7CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQor
I2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIHZvaWQgbG9n
RnJhbWVOYXZpZ2F0aW9uKGNvbnN0IFdlYkZyYW1lUHJveHkmLCBjb25zdCBVUkwmIHBhZ2VVUkws
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFVSTCYgcmVkaXJlY3RVUkws
IGJvb2wgd2FzUG90ZW50aWFsbHlJbml0aWF0ZWRCeVVzZXIpOwogI2VuZGlmCiAKQEAgLTMwNjIs
NyArMzA2Miw3IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkRldmljZU9yaWVu
dGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94eT4gbV93ZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVBy
b3ZpZGVyUHJveHk7CiAjZW5kaWYKIAotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJ
Q1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgTW9u
b3RvbmljVGltZSBtX2RpZEZpbmlzaERvY3VtZW50TG9hZEZvck1haW5GcmFtZVRpbWVzdGFtcDsK
ICNlbmRpZgogICAgICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
LmNwcAppbmRleCBmY2VmNDMwNWM4ODIyMjcxYzkxOGVjYTA4MTk2NGNlNDJhNzlhOTkyLi5kYzc2
NGY4ZDRmZTdjZjRlODc4MTMzNDU5ZWY1OTY2YzFkMjQ2MDRhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC03MjYsNyArNzI2LDcgQEAgV2ViUHJvY2Vz
c0RhdGFTdG9yZVBhcmFtZXRlcnMgV2ViUHJvY2Vzc1Bvb2w6OndlYlByb2Nlc3NEYXRhU3RvcmVQ
YXJhbWV0ZXJzKFdlYlAKICAgICAgICAgV1RGTW92ZShtZWRpYUtleVN0b3JhZ2VEaXJlY3RvcnlF
eHRlbnNpb25IYW5kbGUpLAogICAgICAgICBXVEZNb3ZlKGphdmFTY3JpcHRDb25maWd1cmF0aW9u
RGlyZWN0b3J5KSwKICAgICAgICAgV1RGTW92ZShqYXZhU2NyaXB0Q29uZmlndXJhdGlvbkRpcmVj
dG9yeUV4dGVuc2lvbkhhbmRsZSksCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElD
UykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICAgICAg
d2Vic2l0ZURhdGFTdG9yZS50aGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlKCksCiAgICAgICAg
IG1fZG9tYWluc1dpdGhVc2VySW50ZXJhY3Rpb24sCiAgICAgICAgIG1fZG9tYWluc1dpdGhDcm9z
c1BhZ2VTdG9yYWdlQWNjZXNzUXVpcmssCkBAIC0yMDA4LDcgKzIwMDgsNyBAQCB2b2lkIFdlYlBy
b2Nlc3NQb29sOjpjbGVhckN1cnJlbnRNb2RpZmllclN0YXRlRm9yVGVzdGluZygpCiAgICAgc2Vu
ZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpDbGVhckN1cnJlbnRNb2RpZmll
clN0YXRlRm9yVGVzdGluZygpKTsKIH0KIAotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJ
U1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiB2b2lk
IFdlYlByb2Nlc3NQb29sOjpzZXREb21haW5zV2l0aFVzZXJJbnRlcmFjdGlvbihIYXNoU2V0PFdl
YkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluPiYmIGRvbWFpbnMpCiB7CiAgICAgc2VuZFRvQWxsUHJv
Y2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpTZXREb21haW5zV2l0aFVzZXJJbnRlcmFjdGlv
bihkb21haW5zKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUG9vbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAppbmRl
eCAwNWNmNTM0Njg5ZTVhYjM5YWQ5NmNiYTI1ZmQzMzZiNWYyNDEyNWQyLi5iM2IxOTEzMzJlMzVi
MGIzN2EwZGFmYTJlZTM0MTM1NTg0MzVhZjUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQb29sLmgKQEAgLTQ2MSw3ICs0NjEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZW5k
RGlzcGxheUNvbmZpZ3VyYXRpb25DaGFuZ2VkTWVzc2FnZUZvclRlc3RpbmcoKTsKICAgICB2b2lk
IGNsZWFyQ3VycmVudE1vZGlmaWVyU3RhdGVGb3JUZXN0aW5nKCk7CiAKLSNpZiBFTkFCTEUoUkVT
T1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19Q
UkVWRU5USU9OKQogICAgIHZvaWQgc2V0RG9tYWluc1dpdGhVc2VySW50ZXJhY3Rpb24oSGFzaFNl
dDxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4mJik7CiAgICAgdm9pZCBzZXREb21haW5zV2l0
aENyb3NzUGFnZVN0b3JhZ2VBY2Nlc3MoSGFzaE1hcDxUb3BGcmFtZURvbWFpbiwgU3ViUmVzb3Vy
Y2VEb21haW4+JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZWVk
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0ZvclRlc3RpbmcoY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFi
bGVEb21haW4mIGZpcnN0UGFydHlEb21haW4sIGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9t
YWluJiB0aGlyZFBhcnR5RG9tYWluLCBib29sIHNob3VsZFNjaGVkdWxlTm90aWZpY2F0aW9uLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwpAQCAtNzkzLDcgKzc5Myw3IEBAIHByaXZhdGU6
CiAjZW5kaWYKICAgICBzdGF0aWMgYm9vbCBzX3VzZVNlcGFyYXRlU2VydmljZVdvcmtlclByb2Nl
c3M7CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJ
TlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIEhhc2hTZXQ8V2ViQ29yZTo6UmVn
aXN0cmFibGVEb21haW4+IG1fZG9tYWluc1dpdGhVc2VySW50ZXJhY3Rpb247CiAgICAgSGFzaE1h
cDxUb3BGcmFtZURvbWFpbiwgU3ViUmVzb3VyY2VEb21haW4+IG1fZG9tYWluc1dpdGhDcm9zc1Bh
Z2VTdG9yYWdlQWNjZXNzUXVpcms7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IGQ5YmE2NDgwZjhkNmViZmI4ZGU4NmRiZmJhNmRjNzAx
NTE1OWE2MDguLjJjYmUxMjg4NGI1YzA3NmU5ZDA0ZGYyOGZjOTk0NDViMmYzOGU4YTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtNTQxLDcgKzU0
MSw3IEBAIFdlYlBhZ2VQcm94eSogV2ViUHJvY2Vzc1Byb3h5Ojp3ZWJQYWdlKFdlYlBhZ2VQcm94
eUlkZW50aWZpZXIgcGFnZUlEKQogICAgIHJldHVybiBnbG9iYWxQYWdlTWFwKCkuZ2V0KHBhZ2VJ
RCk7CiB9CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJM
RShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogdm9pZCBXZWJQcm9jZXNzUHJveHk6
Om5vdGlmeVBhZ2VTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHNQcm9jZXNzZWQoKQogewogICAgIGZv
ciAoYXV0byYgcGFnZSA6IGdsb2JhbFBhZ2VNYXAoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXggMGVhMjU5NGJlYmFhZmY3NjZkYjk0ZGNiMzY3MmE5NjJj
MWI4NDIzOS4uNmRjZTQyZTgyYWQyMzgxMzIwNmRjN2ZlMjUwOTg1YWZlODE4YTQ1NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTIzNyw3ICsyMzcsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCBkZWxldGVXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCwgT3B0
aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4sIFdhbGxUaW1lIG1vZGlmaWVkU2luY2UsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdp
bnMoUEFMOjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBjb25zdCBWZWN0
b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJik7CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJM
RShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIHN0YXRpYyB2b2lkIG5vdGlm
eVBhZ2VTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHNQcm9jZXNzZWQoKTsKIAogICAgIHN0YXRpYyB2
b2lkIG5vdGlmeVdlYnNpdGVEYXRhRGVsZXRpb25Gb3JSZWdpc3RyYWJsZURvbWFpbnNGaW5pc2hl
ZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29j
b2EvV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
c2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tCmluZGV4IGNiZGQwNjExNWJl
NjNiMjQ2ZjU4MGZmOTQ0NzFmMGIwOGVjYjBmYjIuLjNlYmUyZGVjMmY1OGU5MzRkODIwMTQ5NzI4
NWM1ZjRjZWRjZDM5NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNp
dGVEYXRhL0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29jb2EubW0KQEAg
LTc0LDcgKzc0LDcgQEAgc3RhdGljIHN0ZDo6YXRvbWljPGJvb2w+IGhhc0luaXRpYWxpemVkQXBw
Qm91bmREb21haW5zID0gZmFsc2U7CiBzdGF0aWMgc3RkOjphdG9taWM8Ym9vbD4ga2V5RXhpc3Rz
ID0gZmFsc2U7CiAjZW5kaWYKIAotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1Mp
CisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiBXZWJDb3JlOjpU
aGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlIFdlYnNpdGVEYXRhU3RvcmU6OnRoaXJkUGFydHlD
b29raWVCbG9ja2luZ01vZGUoKSBjb25zdAogewogICAgIGlmICghbV90aGlyZFBhcnR5Q29va2ll
QmxvY2tpbmdNb2RlKSB7CkBAIC05OCw3ICs5OCw3IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6
cGxhdGZvcm1TZXROZXR3b3JrUGFyYW1ldGVycyhXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyYK
ICAgICBhdXRvIHNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRFbmFibGVkID0gV2ViQ29yZTo6U2Ft
ZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQ6Ok5vOwogICAgIGF1dG8gZmlyc3RQYXJ0eVdl
YnNpdGVEYXRhUmVtb3ZhbE1vZGUgPSBXZWJDb3JlOjpGaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1v
dmFsTW9kZTo6QWxsQnV0Q29va2llczsKICAgICBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBy
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWFudWFsUHJldmFsZW50UmVzb3VyY2UgeyB9OwotI2lmIEVO
QUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RS
QUNLSU5HX1BSRVZFTlRJT04pCiAgICAgZW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVn
TW9kZSA9IFtkZWZhdWx0cyBib29sRm9yS2V5OkAiSVRQRGVidWdNb2RlIl07CiAKICAgICBpZiAo
W2RlZmF1bHRzIGJvb2xGb3JLZXk6W05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJFeHBlcmlt
ZW50YWwlQCIsIFdlYlByZWZlcmVuY2VzS2V5Ojppc1NhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRF
bmFibGVkS2V5KCkuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKV1dKQpAQCAtMTI2LDcgKzEyNiw3IEBA
IHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6cGxhdGZvcm1TZXROZXR3b3JrUGFyYW1ldGVycyhXZWJz
aXRlRGF0YVN0b3JlUGFyYW1ldGVycyYKICAgICBzdGF0aWMgTlNTdHJpbmcgKiBjb25zdCBXZWJL
aXRMb2dDb29raWVJbmZvcm1hdGlvbkRlZmF1bHRzS2V5ID0gQCJXZWJLaXRMb2dDb29raWVJbmZv
cm1hdGlvbiI7CiAgICAgc2hvdWxkTG9nQ29va2llSW5mb3JtYXRpb24gPSBbZGVmYXVsdHMgYm9v
bEZvcktleTpXZWJLaXRMb2dDb29raWVJbmZvcm1hdGlvbkRlZmF1bHRzS2V5XTsKICNlbmRpZgot
I2VuZGlmIC8vIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjZW5kaWYgLy8gRU5B
QkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAKICAgICBVUkwgaHR0cFByb3h5
ID0gbV9jb25maWd1cmF0aW9uLT5odHRwUHJveHkoKTsKICAgICBVUkwgaHR0cHNQcm94eSA9IG1f
Y29uZmlndXJhdGlvbi0+aHR0cHNQcm94eSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFSZWNvcmQuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFSZWNvcmQuY3BwCmluZGV4IGU5MTll
MTE4ZGZmYjMwYjEwOTBjN2ZiY2Y1NjU2MDI3ZGM4YjlmZGQuLmU5M2M4ZmEyODI3ZTVhYzY4NWYx
ZWE1NWM5N2NhODEwN2IzZjc5ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhUmVjb3JkLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVJlY29yZC5jcHAKQEAgLTExNCw3ICsxMTQs
NyBAQCB2b2lkIFdlYnNpdGVEYXRhUmVjb3JkOjphZGRBbHRlcm5hdGl2ZVNlcnZpY2VzSG9zdG5h
bWUoY29uc3QgU3RyaW5nJiBob3N0TmFtZSkKICNlbmRpZgogfQogCi0jaWYgRU5BQkxFKFJFU09V
UkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJF
VkVOVElPTikKIHZvaWQgV2Vic2l0ZURhdGFSZWNvcmQ6OmFkZFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NSZWdpc3RyYWJsZURvbWFpbihjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYgZG9t
YWluKQogewogICAgIHR5cGVzLmFkZChXZWJzaXRlRGF0YVR5cGU6OlJlc291cmNlTG9hZFN0YXRp
c3RpY3MpOwpAQCAtMTg0LDcgKzE4NCw3IEBAIFdlYnNpdGVEYXRhUmVjb3JkIFdlYnNpdGVEYXRh
UmVjb3JkOjppc29sYXRlZENvcHkoKSBjb25zdAogI2VuZGlmCiAgICAgICAgIGNyb3NzVGhyZWFk
Q29weShIU1RTQ2FjaGVIb3N0TmFtZXMpLAogICAgICAgICBjcm9zc1RocmVhZENvcHkoYWx0ZXJu
YXRpdmVTZXJ2aWNlc0hvc3ROYW1lcyksCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElT
VElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICAg
ICAgY3Jvc3NUaHJlYWRDb3B5KHJlc291cmNlTG9hZFN0YXRpc3RpY3NSZWdpc3RyYWJsZURvbWFp
bnMpLAogI2VuZGlmCiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhUmVjb3JkLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVJlY29yZC5oCmluZGV4IGE0MDgzZTQ0ODI3ZGVjNWY1
NzhmMjkzN2Y2ZjFhYTVmMGJjZjUxOGYuLjlkODZlYTA1YTljODBlMzA1MWJhMmUyNDliZDgzYmYz
NmYxYzY1ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRh
L1dlYnNpdGVEYXRhUmVjb3JkLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0
ZURhdGEvV2Vic2l0ZURhdGFSZWNvcmQuaApAQCAtNTQsNyArNTQsNyBAQCBzdHJ1Y3QgV2Vic2l0
ZURhdGFSZWNvcmQgewogI2VuZGlmCiAgICAgdm9pZCBhZGRIU1RTQ2FjaGVIb3N0bmFtZShjb25z
dCBTdHJpbmcmIGhvc3ROYW1lKTsKICAgICB2b2lkIGFkZEFsdGVybmF0aXZlU2VydmljZXNIb3N0
bmFtZShjb25zdCBTdHJpbmcmIGhvc3ROYW1lKTsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9T
VEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQog
ICAgIHZvaWQgYWRkUmVzb3VyY2VMb2FkU3RhdGlzdGljc1JlZ2lzdHJhYmxlRG9tYWluKGNvbnN0
IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJik7CiAjZW5kaWYKIApAQCAtNzksNyArNzksNyBA
QCBzdHJ1Y3QgV2Vic2l0ZURhdGFSZWNvcmQgewogI2VuZGlmCiAgICAgSGFzaFNldDxTdHJpbmc+
IEhTVFNDYWNoZUhvc3ROYW1lczsKICAgICBIYXNoU2V0PFN0cmluZz4gYWx0ZXJuYXRpdmVTZXJ2
aWNlc0hvc3ROYW1lczsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lm
IEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIEhhc2hTZXQ8V2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4+IHJlc291cmNlTG9hZFN0YXRpc3RpY3NSZWdpc3RyYWJs
ZURvbWFpbnM7CiAjZW5kaWYKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IDUxMTM0OGYyMGZhYjlm
NDY1ZjhmZGU5MDFmZTYwN2Y3ZTczNzdmMDcuLjc3ODk2MGFjMzM4ZjIyZmZhZDVhNmIyNTA1Mjc1
OWU4NTVhNTkzZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCkBAIC00MTcsNyArNDE3LDcgQEAgdm9pZCBX
ZWJzaXRlRGF0YVN0b3JlOjpmZXRjaERhdGFBbmRBcHBseShPcHRpb25TZXQ8V2Vic2l0ZURhdGFU
eXBlPiBkYXRhVHlwZXMsIE8KICAgICAgICAgICAgICAgICByZWNvcmQuYWRkSFNUU0NhY2hlSG9z
dG5hbWUoaG9zdE5hbWUpOwogICAgICAgICAgICAgfQogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xP
QURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElP
TikKICAgICAgICAgICAgIGZvciAoY29uc3QgYXV0byYgZG9tYWluIDogd2Vic2l0ZURhdGEucmVn
aXN0cmFibGVEb21haW5zV2l0aFJlc291cmNlTG9hZFN0YXRpc3RpY3MpIHsKICAgICAgICAgICAg
ICAgICBhdXRvIGRpc3BsYXlOYW1lID0gV2Vic2l0ZURhdGFSZWNvcmQ6OmRpc3BsYXlOYW1lRm9y
SG9zdE5hbWUoZG9tYWluLnN0cmluZygpKTsKICAgICAgICAgICAgICAgICBpZiAoIWRpc3BsYXlO
YW1lKQpAQCAtNTk1LDcgKzU5NSw3IEBAIHByaXZhdGU6CiAjZW5kaWYKIH0KIAotI2lmIEVOQUJM
RShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNL
SU5HX1BSRVZFTlRJT04pCiB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OmZldGNoRGF0YUZvclJlZ2lz
dHJhYmxlRG9tYWlucyhPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMsIE9wdGlv
blNldDxXZWJzaXRlRGF0YUZldGNoT3B0aW9uPiBmZXRjaE9wdGlvbnMsIFZlY3RvcjxXZWJDb3Jl
OjpSZWdpc3RyYWJsZURvbWFpbj4mJiBkb21haW5zLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZl
Y3RvcjxXZWJzaXRlRGF0YVJlY29yZD4mJiwgSGFzaFNldDxXZWJDb3JlOjpSZWdpc3RyYWJsZURv
bWFpbj4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgZmV0Y2hEYXRhQW5kQXBwbHko
ZGF0YVR5cGVzLCBmZXRjaE9wdGlvbnMsIG1fcXVldWUuY29weVJlZigpLCBbZG9tYWlucyA9IGNy
b3NzVGhyZWFkQ29weShkb21haW5zKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKV0gKGF1dG8mJiBleGlzdGluZ0RhdGFSZWNvcmRzKSBtdXRhYmxlIHsKQEAg
LTY4NSw3ICs2ODUsNyBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnJlbW92ZURhdGEoT3B0aW9u
U2V0PFdlYnNpdGVEYXRhVHlwZT4gZGF0YVR5cGVzLCBXYWxsVGltZQogICAgIH0KICNlbmRpZgog
Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxM
SUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBib29sIGRpZE5vdGlmeU5ldHdvcmtQcm9j
ZXNzVG9EZWxldGVXZWJzaXRlRGF0YSA9IGZhbHNlOwogI2VuZGlmCiAgICAgYXV0byBuZXR3b3Jr
UHJvY2Vzc0FjY2Vzc1R5cGUgPSBjb21wdXRlTmV0d29ya1Byb2Nlc3NBY2Nlc3NUeXBlRm9yRGF0
YVJlbW92YWwoZGF0YVR5cGVzLCAhaXNQZXJzaXN0ZW50KCkpOwpAQCAtNjk3LDcgKzY5Nyw3IEBA
IHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6cmVtb3ZlRGF0YShPcHRpb25TZXQ8V2Vic2l0ZURhdGFU
eXBlPiBkYXRhVHlwZXMsIFdhbGxUaW1lCiAgICAgY2FzZSBQcm9jZXNzQWNjZXNzVHlwZTo6T25s
eUlmTGF1bmNoZWQ6CiAgICAgICAgIGlmIChtX25ldHdvcmtQcm9jZXNzKSB7CiAgICAgICAgICAg
ICBtX25ldHdvcmtQcm9jZXNzLT5kZWxldGVXZWJzaXRlRGF0YShtX3Nlc3Npb25JRCwgZGF0YVR5
cGVzLCBtb2RpZmllZFNpbmNlLCBbY2FsbGJhY2tBZ2dyZWdhdG9yXSB7IH0pOwotI2lmIEVOQUJM
RShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNL
SU5HX1BSRVZFTlRJT04pCiAgICAgICAgICAgICBkaWROb3RpZnlOZXR3b3JrUHJvY2Vzc1RvRGVs
ZXRlV2Vic2l0ZURhdGEgPSB0cnVlOwogI2VuZGlmCiAgICAgICAgIH0KQEAgLTgwOCw3ICs4MDgs
NyBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnJlbW92ZURhdGEoT3B0aW9uU2V0PFdlYnNpdGVE
YXRhVHlwZT4gZGF0YVR5cGVzLCBXYWxsVGltZQogICAgIH0KICNlbmRpZgogCi0jaWYgRU5BQkxF
KFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJ
TkdfUFJFVkVOVElPTikKICAgICBpZiAoZGF0YVR5cGVzLmNvbnRhaW5zKFdlYnNpdGVEYXRhVHlw
ZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljcykpIHsKICAgICAgICAgaWYgKCFkaWROb3RpZnlOZXR3
b3JrUHJvY2Vzc1RvRGVsZXRlV2Vic2l0ZURhdGEpCiAgICAgICAgICAgICBuZXR3b3JrUHJvY2Vz
cygpLmRlbGV0ZVdlYnNpdGVEYXRhKG1fc2Vzc2lvbklELCBkYXRhVHlwZXMsIG1vZGlmaWVkU2lu
Y2UsIFtjYWxsYmFja0FnZ3JlZ2F0b3JdIHsgfSk7CkBAIC04NjcsNyArODY3LDcgQEAgdm9pZCBX
ZWJzaXRlRGF0YVN0b3JlOjpyZW1vdmVEYXRhKE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IGRh
dGFUeXBlcywgY29uc3QgVmUKICAgICAgICAgICAgICAgICAgICAgY29va2llSG9zdE5hbWVzLmFw
cGVuZChob3N0TmFtZSk7CiAgICAgICAgICAgICAgICAgZm9yIChhdXRvJiBob3N0TmFtZSA6IGRh
dGFSZWNvcmQuSFNUU0NhY2hlSG9zdE5hbWVzKQogICAgICAgICAgICAgICAgICAgICBIU1RTQ2Fj
aGVIb3N0TmFtZXMuYXBwZW5kKGhvc3ROYW1lKTsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9T
VEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQog
ICAgICAgICAgICAgICAgIGZvciAoYXV0byYgcmVnaXN0cmFibGVEb21haW4gOiBkYXRhUmVjb3Jk
LnJlc291cmNlTG9hZFN0YXRpc3RpY3NSZWdpc3RyYWJsZURvbWFpbnMpCiAgICAgICAgICAgICAg
ICAgICAgIHJlZ2lzdHJhYmxlRG9tYWlucy5hcHBlbmQocmVnaXN0cmFibGVEb21haW4pOwogI2Vu
ZGlmCkBAIC0xMDA3LDcgKzEwMDcsNyBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnJlc2V0U2Vy
dmljZVdvcmtlclRpbWVvdXRGb3JUZXN0aW5nKCkKICAgICBuZXR3b3JrUHJvY2VzcygpLnNlbmRT
eW5jKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6UmVzZXRTZXJ2aWNlV29ya2VyRmV0Y2hUaW1l
b3V0Rm9yVGVzdGluZygpLCBNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlJlc2V0U2VydmljZVdv
cmtlckZldGNoVGltZW91dEZvclRlc3Rpbmc6OlJlcGx5KCksIDApOwogfQogCi0jaWYgRU5BQkxF
KFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJ
TkdfUFJFVkVOVElPTikKIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6c2V0TWF4U3RhdGlzdGljc0Vu
dHJpZXMoc2l6ZV90IG1heGltdW1FbnRyeUNvdW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsK
QEAgLTE1ODksNyArMTU4OSw3IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6c2V0UmVzb3VyY2VM
b2FkU3RhdGlzdGljc1RoaXJkUGFydHlDTkFNRURvbWFpbkZvclRlc3RpbmcoCiAKICAgICBuZXR3
b3JrUHJvY2VzcygpLnNldFRoaXJkUGFydHlDTkFNRURvbWFpbkZvclRlc3RpbmcobV9zZXNzaW9u
SUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHsgY25hbWVVUkwgfSwgW2NhbGxiYWNrQWdn
cmVnYXRvcl0geyB9KTsKIH0KLSNlbmRpZiAvLyBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNU
SUNTKQorI2VuZGlmIC8vIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQog
CiB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnNldENhY2hlZFByb2Nlc3NTdXNwZW5zaW9uRGVsYXlG
b3JUZXN0aW5nKFNlY29uZHMgZGVsYXkpCiB7CkBAIC0xNjAzLDcgKzE2MDMsNyBAQCB2b2lkIFdl
YnNpdGVEYXRhU3RvcmU6OnN5bmNMb2NhbFN0b3JhZ2UoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmIGNvbXBsZXRpb25IYQogCiB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnNldENhY2hlTWF4QWdl
Q2FwRm9yUHJldmFsZW50UmVzb3VyY2VzKFNlY29uZHMgc2Vjb25kcywgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotI2lmIEVOQUJMRShSRVNPVVJDRV9M
T0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJ
T04pCiAgICAgYXV0byBjYWxsYmFja0FnZ3JlZ2F0b3IgPSBDYWxsYmFja0FnZ3JlZ2F0b3I6OmNy
ZWF0ZShXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiAgICAgCiAgICAgbmV0d29ya1Byb2Nl
c3MoKS5zZXRDYWNoZU1heEFnZUNhcEZvclByZXZhbGVudFJlc291cmNlcyhtX3Nlc3Npb25JRCwg
c2Vjb25kcywgW2NhbGxiYWNrQWdncmVnYXRvcl0geyB9KTsKQEAgLTE2MTUsNyArMTYxNSw3IEBA
IHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6c2V0Q2FjaGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRSZXNv
dXJjZXMoU2Vjb25kcyBzZWNvbmRzLCBDCiAKIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6cmVzZXRD
YWNoZU1heEFnZUNhcEZvclByZXZhbGVudFJlc291cmNlcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RB
VElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAg
ICBuZXR3b3JrUHJvY2VzcygpLnJlc2V0Q2FjaGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRSZXNvdXJj
ZXMobV9zZXNzaW9uSUQsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKICNlbHNlCiAgICAg
Y29tcGxldGlvbkhhbmRsZXIoKTsKQEAgLTE4MTMsNyArMTgxMyw3IEBAIHZvaWQgV2Vic2l0ZURh
dGFTdG9yZTo6c2VuZE5ldHdvcmtQcm9jZXNzRGlkUmVzdW1lKCkKIAogYm9vbCBXZWJzaXRlRGF0
YVN0b3JlOjpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCgpIGNvbnN0CiB7Ci0jaWYgRU5B
QkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJB
Q0tJTkdfUFJFVkVOVElPTikKICAgICByZXR1cm4gbV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5h
YmxlZDsKICNlbHNlCiAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTgyMiw3ICsxODIyLDcgQEAgYm9v
bCBXZWJzaXRlRGF0YVN0b3JlOjpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCgpIGNvbnN0
CiAKIGJvb2wgV2Vic2l0ZURhdGFTdG9yZTo6cmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9k
ZSgpIGNvbnN0CiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBF
TkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICByZXR1cm4gbV9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlOwogI2Vsc2UKICAgICByZXR1cm4gZmFsc2U7CkBA
IC0xODMxLDcgKzE4MzEsNyBAQCBib29sIFdlYnNpdGVEYXRhU3RvcmU6OnJlc291cmNlTG9hZFN0
YXRpc3RpY3NEZWJ1Z01vZGUoKSBjb25zdAogCiB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnNldFJl
c291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGJvb2wgZW5hYmxlZCkKIHsKLSNpZiBFTkFCTEUo
UkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lO
R19QUkVWRU5USU9OKQogICAgIGlmIChlbmFibGVkID09IHJlc291cmNlTG9hZFN0YXRpc3RpY3NF
bmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKIApAQCAtMTg1OCw3ICsxODU4LDcgQEAgdm9pZCBX
ZWJzaXRlRGF0YVN0b3JlOjpzZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChib29sIGVu
YWJsZWQpCiAjZW5kaWYKIH0KIAotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1Mp
CisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiB2b2lkIFdlYnNp
dGVEYXRhU3RvcmU6OnNldFN0YXRpc3RpY3NUZXN0aW5nQ2FsbGJhY2soRnVuY3Rpb248dm9pZChj
b25zdCBTdHJpbmcmKT4mJiBjYWxsYmFjaykKIHsKICAgICBpZiAoY2FsbGJhY2spIHsKQEAgLTE4
NzYsNyArMTg3Niw3IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6c2V0UmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RlYnVnTW9kZShib29sIGVuYWJsZWQpCiAKIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6
c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZShib29sIGVuYWJsZWQsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSNpZiBFTkFCTEUoUkVT
T1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19Q
UkVWRU5USU9OKQogICAgIG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZSA9IGVuYWJs
ZWQ7CiAKICAgICBhdXRvIGNhbGxiYWNrQWdncmVnYXRvciA9IENhbGxiYWNrQWdncmVnYXRvcjo6
Y3JlYXRlKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKQEAgLTE4OTAsNyArMTg5MCw3IEBA
IHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9k
ZShib29sIGVuYWJsZWQsIENvbXBsZXRpCiAKIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6aXNSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRXBoZW1lcmFsKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpIGNvbnN0CiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURf
U1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikK
ICAgICBpZiAoIXJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKCkgfHwgIW1fc2Vzc2lvbklE
LmlzRXBoZW1lcmFsKCkpIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwogICAg
ICAgICByZXR1cm47CkBAIC0xOTA3LDcgKzE5MDcsNyBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6
OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlKGJvb2wgZW5hYmxlZCkKICAgICBu
ZXR3b3JrUHJvY2VzcygpLnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlKGVuYWJs
ZWQpOwogfQogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFC
TEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKIHZvaWQgV2Vic2l0ZURhdGFTdG9y
ZTo6bG9nVGVzdGluZ0V2ZW50KGNvbnN0IFN0cmluZyYgZXZlbnQpCiB7CiAgICAgQVNTRVJUKFJ1
bkxvb3A6OmlzTWFpbigpKTsKQEAgLTIwMTksNyArMjAxOSw3IEBAIFdlYnNpdGVEYXRhU3RvcmVQ
YXJhbWV0ZXJzIFdlYnNpdGVEYXRhU3RvcmU6OnBhcmFtZXRlcnMoKQogICAgICAgICBXVEZNb3Zl
KHByaXZhdGVDbGlja01lYXN1cmVtZW50U3RvcmFnZURpcmVjdG9yeSksCiAgICAgICAgIFdURk1v
dmUocHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRTdG9yYWdlRGlyZWN0b3J5SGFuZGxlKSwKICAgICAg
ICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoKSwKLSNpZiBFTkFCTEUoUkVTT1VSQ0Vf
TE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5U
SU9OKQogICAgICAgICBpc0l0cFN0YXRlRXhwbGljaXRseVNldCgpLAogICAgICAgICBoYXNTdGF0
aXN0aWNzVGVzdGluZ0NhbGxiYWNrKCksCiAjZWxzZQpAQCAtMjAyOCw3ICsyMDI4LDcgQEAgV2Vi
c2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMgV2Vic2l0ZURhdGFTdG9yZTo6cGFyYW1ldGVycygpCiAj
ZW5kaWYKICAgICAgICAgc2hvdWxkSW5jbHVkZUxvY2FsaG9zdEluUmVzb3VyY2VMb2FkU3RhdGlz
dGljcywKICAgICAgICAgZW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZSwKLSNp
ZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VO
VF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgICAgICB0aGlyZFBhcnR5Q29va2llQmxvY2tpbmdN
b2RlKCksCiAgICAgICAgIFdlYkNvcmU6OlNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRFbmFibGVk
OjpObywKICNlbmRpZgpAQCAtMjEwNSw3ICsyMTA1LDcgQEAgV2Vic2l0ZURhdGFTdG9yZVBhcmFt
ZXRlcnMgV2Vic2l0ZURhdGFTdG9yZTo6cGFyYW1ldGVycygpCiAgICAgcGFyYW1ldGVycy5wZXJP
cmlnaW5TdG9yYWdlUXVvdGEgPSBwZXJPcmlnaW5TdG9yYWdlUXVvdGEoKTsKICAgICBwYXJhbWV0
ZXJzLnBlclRoaXJkUGFydHlPcmlnaW5TdG9yYWdlUXVvdGEgPSBwZXJUaGlyZFBhcnR5T3JpZ2lu
U3RvcmFnZVF1b3RhKCk7CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQor
I2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIHBhcmFtZXRl
cnMubmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0
ZXJzLmVuYWJsZWQgPSBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkOwogI2VuZGlmCiAg
ICAgcGxhdGZvcm1TZXROZXR3b3JrUGFyYW1ldGVycyhwYXJhbWV0ZXJzKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaApp
bmRleCAxNjFjZGU2YTE3MWJjYjMwMWVkZDhiOWUzY2Q0YWUyNmJhZDUxZmI2Li5mM2Q1YTI0ZTU5
Y2ViNTE1YTJmNzc3YjBlZTBlZTA1MzY3NjAwN2VhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCkBAIC05OCw3ICs5
OCw3IEBAIHN0cnVjdCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvOwogc3RydWN0IFdlYnNp
dGVEYXRhUmVjb3JkOwogc3RydWN0IFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzOwogCi0jaWYg
RU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRf
VFJBQ0tJTkdfUFJFVkVOVElPTikKIGVudW0gY2xhc3MgU2hvdWxkR3JhbmRmYXRoZXJTdGF0aXN0
aWNzIDogYm9vbDsKIGVudW0gY2xhc3MgU3RvcmFnZUFjY2Vzc1N0YXR1cyA6IHVpbnQ4X3Q7CiBl
bnVtIGNsYXNzIFN0b3JhZ2VBY2Nlc3NQcm9tcHRTdGF0dXM7CkBAIC0xNjAsNyArMTYwLDcgQEAg
cHVibGljOgogICAgIGNvbnN0IFN0cmluZyYgY2FjaGVTdG9yYWdlRGlyZWN0b3J5KCkgY29uc3Qg
eyByZXR1cm4gbV9yZXNvbHZlZENvbmZpZ3VyYXRpb24tPmNhY2hlU3RvcmFnZURpcmVjdG9yeSgp
OyB9CiAgICAgY29uc3QgU3RyaW5nJiBnZW5lcmFsU3RvcmFnZURpcmVjdG9yeSgpIGNvbnN0IHsg
cmV0dXJuIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLT5nZW5lcmFsU3RvcmFnZURpcmVjdG9yeSgp
OyB9CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJ
TlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIHZvaWQgY2xlYXJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzSW5XZWJQcm9jZXNzZXMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsK
ICNlbmRpZgogCkBAIC0xNzMsNyArMTczLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U2Vydmlj
ZVdvcmtlclRpbWVvdXRGb3JUZXN0aW5nKFNlY29uZHMpOwogICAgIHZvaWQgcmVzZXRTZXJ2aWNl
V29ya2VyVGltZW91dEZvclRlc3RpbmcoKTsKIAotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NU
QVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAg
ICAgdm9pZCBmZXRjaERhdGFGb3JSZWdpc3RyYWJsZURvbWFpbnMoT3B0aW9uU2V0PFdlYnNpdGVE
YXRhVHlwZT4sIE9wdGlvblNldDxXZWJzaXRlRGF0YUZldGNoT3B0aW9uPiwgVmVjdG9yPFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluPiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxX
ZWJzaXRlRGF0YVJlY29yZD4mJiwgSGFzaFNldDxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4m
Jik+JiYpOwogICAgIHZvaWQgY2xlYXJQcmV2YWxlbnRSZXNvdXJjZShjb25zdCBVUkwmLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgY2xlYXJVc2VySW50ZXJhY3Rpb24o
Y29uc3QgVVJMJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKQEAgLTQyMiw3ICs0MjIs
NyBAQCBwcml2YXRlOgogCiAgICAgY29uc3QgUmVmPERldmljZUlkSGFzaFNhbHRTdG9yYWdlPiBt
X2RldmljZUlkSGFzaFNhbHRTdG9yYWdlOwogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RB
VElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAg
ICBib29sIG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZSB7IGZhbHNlIH07CiAgICAg
Ym9vbCBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkIHsgZmFsc2UgfTsKICAgICBGdW5j
dGlvbjx2b2lkKGNvbnN0IFN0cmluZyYpPiBtX3N0YXRpc3RpY3NUZXN0aW5nQ2FsbGJhY2s7CkBA
IC00NzIsNyArNDcyLDcgQEAgcHJpdmF0ZToKICNpZiBIQVZFKEFQUF9TU08pCiAgICAgVW5pcXVl
UmVmPFNPQXV0aG9yaXphdGlvbkNvb3JkaW5hdG9yPiBtX3NvQXV0aG9yaXphdGlvbkNvb3JkaW5h
dG9yOwogI2VuZGlmCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBF
TkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBtdXRhYmxlIHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZT4gbV90aGlyZFBh
cnR5Q29va2llQmxvY2tpbmdNb2RlOyAvLyBMYXppbHkgY29tcHV0ZWQuCiAjZW5kaWYKIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDQ2YWRmY2I2YmI4YWQ3ODMzNzNhM2RlN2Y0MDBlMmE1
NmIwMjg1NDEuLjhjZDE5MWMwMzY3NGM0MTVlOWJjZTlhOGNjNTg2Y2FkZTBkOTBhNjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuY3BwCkBAIC0xNDIzLDcgKzE0MjMsNyBAQCB2b2lkIFdlYkNocm9tZUNs
aWVudDo6ZGlkSW52YWxpZGF0ZURvY3VtZW50TWFya2VyUmVjdHMoKQogICAgIG1fcGFnZS5maW5k
Q29udHJvbGxlcigpLmRpZEludmFsaWRhdGVEb2N1bWVudE1hcmtlclJlY3RzKCk7CiB9CiAKLSNp
ZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VO
VF9UUkFDS0lOR19QUkVWRU5USU9OKQogdm9pZCBXZWJDaHJvbWVDbGllbnQ6Omhhc1N0b3JhZ2VB
Y2Nlc3MoUmVnaXN0cmFibGVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgUmVnaXN0cmFibGVEb21h
aW4mJiB0b3BGcmFtZURvbWFpbiwgRnJhbWUmIGZyYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGF1dG8qIHdlYkZyYW1lID0gV2Vi
RnJhbWU6OmZyb21Db3JlRnJhbWUoZnJhbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IGE4NGQy
YjgyNWYyNzE1OWM3MmQ1MjJlZTNkOTY5OTJmM2ZjM2VlMjIuLjNhMjE2MDVmNDNmMDNmNTI2OTQy
NDM3MDBjMzJiYjUwMmM2MWQ3ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTQwNyw3ICs0MDcs
NyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBkaWRJbnZhbGlkYXRlRG9jdW1lbnRNYXJrZXJSZWN0
cygpIGZpbmFsOwogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBF
TkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICB2b2lkIGhhc1N0b3Jh
Z2VBY2Nlc3MoV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgV2ViQ29yZTo6RnJhbWUm
LCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFsOwogICAgIHZvaWQg
cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiBzdWJGcmFt
ZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgV2Vi
Q29yZTo6RnJhbWUmLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzU2NvcGUsIFdURjo6Q29tcGxldGlv
bkhhbmRsZXI8dm9pZChXZWJDb3JlOjpSZXF1ZXN0U3RvcmFnZUFjY2Vzc1Jlc3VsdCk+JiYpIGZp
bmFsOwogICAgIGJvb2wgaGFzUGFnZUxldmVsU3RvcmFnZUFjY2Vzcyhjb25zdCBXZWJDb3JlOjpS
ZWdpc3RyYWJsZURvbWFpbiYgdG9wTGV2ZWxEb21haW4sIGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJh
YmxlRG9tYWluJiByZXNvdXJjZURvbWFpbikgY29uc3QgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50LmNwcAppbmRleCBjZDNlNzFhMjY0MjdjYjUyNDNiMDY3OGVkZTQzMDZmOGNiYzdi
MTU5Li4wMDg4OWIwMGM4NTc5MzU5OGI3ZmUxMzMwZWYyOWQ4NmE3N2VlNDhmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTE0Myw3ICsxNDMsNyBAQCBzdGQ6Om9wdGlvbmFs
PEZyYW1lSWRlbnRpZmllcj4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmZyYW1lSUQoKSBjb25zdAog
ICAgIHJldHVybiBtX2ZyYW1lLT5mcmFtZUlEKCk7CiB9CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0Vf
TE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5U
SU9OKQogdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6c2V0SGFzRnJhbWVTcGVjaWZpY1N0b3Jh
Z2VBY2Nlc3MoRnJhbWVTcGVjaWZpY1N0b3JhZ2VBY2Nlc3NJZGVudGlmaWVyJiYgZnJhbWVTcGVj
aWZpY1N0b3JhZ2VBY2Nlc3NJZGVudGlmaWVyICkKIHsKICAgICBBU1NFUlQoIW1fZnJhbWVTcGVj
aWZpY1N0b3JhZ2VBY2Nlc3NJZGVudGlmaWVyKTsKQEAgLTIwMiw3ICsyMDIsNyBAQCB2b2lkIFdl
YkZyYW1lTG9hZGVyQ2xpZW50OjpkZXRhY2hlZEZyb21QYXJlbnQyKCkKICAgICBpZiAoIXdlYlBh
Z2UpCiAgICAgICAgIHJldHVybjsKIAotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJ
Q1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgaWYg
KG1fZnJhbWVTcGVjaWZpY1N0b3JhZ2VBY2Nlc3NJZGVudGlmaWVyKSB7CiAgICAgICAgIFdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5l
Y3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UmVt
b3ZlU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKAogICAgICAgICAgICAgbV9mcmFtZVNwZWNpZmljU3Rv
cmFnZUFjY2Vzc0lkZW50aWZpZXItPmZyYW1lSUQsIG1fZnJhbWVTcGVjaWZpY1N0b3JhZ2VBY2Nl
c3NJZGVudGlmaWVyLT5wYWdlSUQpLCAwKTsKQEAgLTQyNiw3ICs0MjYsNyBAQCB2b2lkIFdlYkZy
YW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZENoYW5nZU1haW5Eb2N1bWVudCgpCiAKIHZvaWQg
V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoV2lsbENoYW5nZURvY3VtZW50KGNvbnN0IFVS
TCYgY3VycmVudFVybCwgY29uc3QgVVJMJiBuZXdVcmwpCiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNF
X0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVO
VElPTikKICAgICBpZiAobV9mcmFtZS0+aXNNYWluRnJhbWUoKSkKICAgICAgICAgcmV0dXJuOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDMwNzYyMDAwZmNmMzMwYjZiMmJkZjgw
MjI1NjU3NzA2OTcwYjRhNDUuLjc3ZGE0MTE4ODIyNDhlMmMwZWJlZGMxN2Y3OGI0M2NiODkwZDVh
ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC01Miw3ICs1Miw3IEBAIHB1Ymxp
YzoKICAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBwYWdlSUQoKSBj
b25zdCBmaW5hbDsKICAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4g
ZnJhbWVJRCgpIGNvbnN0IGZpbmFsOwogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElT
VElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBi
b29sIGhhc0ZyYW1lU3BlY2lmaWNTdG9yYWdlQWNjZXNzKCkgZmluYWwgeyByZXR1cm4gISFtX2Zy
YW1lU3BlY2lmaWNTdG9yYWdlQWNjZXNzSWRlbnRpZmllcjsgfQogICAgIAogICAgIHN0cnVjdCBG
cmFtZVNwZWNpZmljU3RvcmFnZUFjY2Vzc0lkZW50aWZpZXIgewpAQCAtMjc3LDcgKzI3Nyw3IEBA
IHByaXZhdGU6CiAgICAgYm9vbCBtX2ZyYW1lSGFzQ3VzdG9tQ29udGVudFByb3ZpZGVyIHsgZmFs
c2UgfTsKICAgICBib29sIG1fZnJhbWVDYW1lRnJvbUJhY2tGb3J3YXJkQ2FjaGUgeyBmYWxzZSB9
OwogICAgIGJvb2wgbV91c2VJY29uTG9hZGluZ0NsaWVudCB7IGZhbHNlIH07Ci0jaWYgRU5BQkxF
KFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJ
TkdfUFJFVkVOVElPTikKICAgICBzdGQ6Om9wdGlvbmFsPEZyYW1lU3BlY2lmaWNTdG9yYWdlQWNj
ZXNzSWRlbnRpZmllcj4gbV9mcmFtZVNwZWNpZmljU3RvcmFnZUFjY2Vzc0lkZW50aWZpZXI7CiAj
ZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYlJlc291cmNlTG9hZE9ic2VydmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRPYnNlcnZlci5jcHAKaW5kZXggZjliNWMy
YzI4MmU4NzljYzAxODUxOGNiYmNiMmY0MWRjN2RmYWE4My4uM2VmMTRkZDIzYjljN2FlYWI1YjA2
OWRiYTE1ZTdiNTdhMTAyMTNiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZE9ic2VydmVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXIu
Y3BwCkBAIC0yNiw3ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2Vi
UmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaCIKIAotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJ
U1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAKICNp
bmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3NNZXNzYWdlcy5oIgpAQCAtNDQ1LDQgKzQ0NSw0IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkT2Jz
ZXJ2ZXI6OnNldERvbWFpbnNXaXRoQ3Jvc3NQYWdlU3RvcmFnZUFjY2VzcyhIYXNoTWFwPFRvcEZy
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCi0jZW5kaWYgLy8gRU5BQkxFKFJFU09VUkNFX0xP
QURfU1RBVElTVElDUykKKyNlbmRpZiAvLyBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJF
VkVOVElPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJSZXNvdXJjZUxvYWRPYnNlcnZlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZE9ic2VydmVyLmgKaW5kZXggNjhjOTYzNTQx
M2VmMmI4ZWFkODk3YzNjZjE1ZGZiMWE0NjkzNWY4MC4uMzE4NGQ2ZWFkM2YxNDAwZDI5ZmUzMDU0
ZWJmMTdiOTE1M2JlMzg1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZE9ic2VydmVyLmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZE9ic2VydmVyLmgKQEAg
LTI1LDcgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9B
RF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9O
KQogCiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaD4KQEAgLTk2LDQgKzk2LDQgQEAgcHJpdmF0ZToKIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKLSNlbmRpZiAvLyBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9T
VEFUSVNUSUNTKQorI2VuZGlmIC8vIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5U
SU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQ29v
a2llSmFyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkNvb2tpZUph
ci5jcHAKaW5kZXggNjMzODI4OTgzZWY3NzYzMjM5MmQwZGJjMmU0YTkwNDg5ZTM0MGI5ZS4uOWFh
YjA4MDAxNDBkZjI2MjBiMzYwZTBiYjhjOGM5MDRkODY5NzdlZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQ29va2llSmFyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb29raWVKYXIuY3BwCkBAIC01Miw3ICs1Miw3
IEBAIGNsYXNzIFdlYlN0b3JhZ2VTZXNzaW9uUHJvdmlkZXIgOiBwdWJsaWMgV2ViQ29yZTo6U3Rv
cmFnZVNlc3Npb25Qcm92aWRlciB7CiBXZWJDb29raWVKYXI6OldlYkNvb2tpZUphcigpCiAgICAg
OiBXZWJDb3JlOjpDb29raWVKYXIoYWRvcHRSZWYoKm5ldyBXZWJTdG9yYWdlU2Vzc2lvblByb3Zp
ZGVyKSkgeyB9CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVO
QUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogc3RhdGljIGJvb2wgc2hvdWxk
QmxvY2tDb29raWVzKFdlYkZyYW1lKiBmcmFtZSwgY29uc3QgVVJMJiBmaXJzdFBhcnR5Rm9yQ29v
a2llcywgY29uc3QgVVJMJiByZXNvdXJjZVVSTCwgU2hvdWxkQXNrSVRQJiBzaG91bGRBc2tJVFBJ
bk5ldHdvcmtQcm9jZXNzKQogewogICAgIGlmICghV2ViQ29yZTo6RGVwcmVjYXRlZEdsb2JhbFNl
dHRpbmdzOjpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCgpKQpAQCAtMTMwLDcgKzEzMCw3
IEBAIFN0cmluZyBXZWJDb29raWVKYXI6OmNvb2tpZXMoV2ViQ29yZTo6RG9jdW1lbnQmIGRvY3Vt
ZW50LCBjb25zdCBVUkwmIHVybCkgY29uc3QKICAgICAgICAgcmV0dXJuIHsgfTsKIAogICAgIFNo
b3VsZEFza0lUUCBzaG91bGRBc2tJVFBJbk5ldHdvcmtQcm9jZXNzID0gU2hvdWxkQXNrSVRQOjpO
bzsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRF
TExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIGlmIChzaG91bGRCbG9ja0Nvb2tpZXMo
d2ViRnJhbWUsIGRvY3VtZW50LmZpcnN0UGFydHlGb3JDb29raWVzKCksIHVybCwgc2hvdWxkQXNr
SVRQSW5OZXR3b3JrUHJvY2VzcykpCiAgICAgICAgIHJldHVybiB7IH07CiAjZW5kaWYKQEAgLTE1
OCw3ICsxNTgsNyBAQCB2b2lkIFdlYkNvb2tpZUphcjo6c2V0Q29va2llcyhXZWJDb3JlOjpEb2N1
bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYgdXJsLCBjb25zdAogICAgICAgICByZXR1cm47CiAK
ICAgICBTaG91bGRBc2tJVFAgc2hvdWxkQXNrSVRQSW5OZXR3b3JrUHJvY2VzcyA9IFNob3VsZEFz
a0lUUDo6Tm87Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFC
TEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBpZiAoc2hvdWxkQmxvY2tD
b29raWVzKHdlYkZyYW1lLCBkb2N1bWVudC5maXJzdFBhcnR5Rm9yQ29va2llcygpLCB1cmwsIHNo
b3VsZEFza0lUUEluTmV0d29ya1Byb2Nlc3MpKQogICAgICAgICByZXR1cm47CiAjZW5kaWYKQEAg
LTIwNCw3ICsyMDQsNyBAQCBib29sIFdlYkNvb2tpZUphcjo6Y29va2llc0VuYWJsZWQoY29uc3Qg
RG9jdW1lbnQmIGRvY3VtZW50KSBjb25zdAogICAgIGlmICghd2ViRnJhbWUgfHwgIXdlYkZyYW1l
LT5wYWdlKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotI2lmIEVOQUJMRShSRVNPVVJDRV9M
T0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJ
T04pCiAgICAgU2hvdWxkQXNrSVRQIGR1bW15OwogICAgIGlmIChzaG91bGRCbG9ja0Nvb2tpZXMo
d2ViRnJhbWUsIGRvY3VtZW50LmZpcnN0UGFydHlGb3JDb29raWVzKCksIGRvY3VtZW50LmNvb2tp
ZVVSTCgpLCBkdW1teSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTIxNyw3ICsyMTcsNyBA
QCBzdGQ6OnBhaXI8U3RyaW5nLCBXZWJDb3JlOjpTZWN1cmVDb29raWVzQWNjZXNzZWQ+IFdlYkNv
b2tpZUphcjo6Y29va2llUmVxdWVzdEhlYQogewogICAgIFNob3VsZEFza0lUUCBzaG91bGRBc2tJ
VFBJbk5ldHdvcmtQcm9jZXNzID0gU2hvdWxkQXNrSVRQOjpObzsKICAgICBhdXRvKiB3ZWJGcmFt
ZSA9IGZyYW1lSUQgPyBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZSgqZnJhbWVJRCkg
OiBudWxscHRyOwotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5B
QkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgaWYgKHNob3VsZEJsb2Nr
Q29va2llcyh3ZWJGcmFtZSwgZmlyc3RQYXJ0eSwgdXJsLCBzaG91bGRBc2tJVFBJbk5ldHdvcmtQ
cm9jZXNzKSkKICAgICAgICAgcmV0dXJuIHsgfTsKICNlbmRpZgpAQCAtMjMzLDcgKzIzMyw3IEBA
IGJvb2wgV2ViQ29va2llSmFyOjpnZXRSYXdDb29raWVzKGNvbnN0IFdlYkNvcmU6OkRvY3VtZW50
JiBkb2N1bWVudCwgY29uc3QgVVJMJiB1CiB7CiAgICAgYXV0byogd2ViRnJhbWUgPSBkb2N1bWVu
dC5mcmFtZSgpID8gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoKmRvY3VtZW50LmZyYW1lKCkpIDog
bnVsbHB0cjsKICAgICBTaG91bGRBc2tJVFAgc2hvdWxkQXNrSVRQSW5OZXR3b3JrUHJvY2VzcyA9
IFNob3VsZEFza0lUUDo6Tm87Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykK
KyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBpZiAoc2hv
dWxkQmxvY2tDb29raWVzKHdlYkZyYW1lLCBkb2N1bWVudC5maXJzdFBhcnR5Rm9yQ29va2llcygp
LCB1cmwsIHNob3VsZEFza0lUUEluTmV0d29ya1Byb2Nlc3MpKQogICAgICAgICByZXR1cm4geyB9
OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CmluZGV4IGU0NTRmOTYzNzZjZGRhOTJiZGIzM2ZmZGVkN2NlMGFmY2RjNDRiYmIuLmYzZWE2ODJk
OWMxZTEwYjU1NzVjOTEzMmJiZjA1YjhlMmYxMWQwMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC02MzM1LDcgKzYzMzUsNyBAQCB2b2lkIFdl
YlBhZ2U6OmRpZENvbW1pdExvYWQoV2ViRnJhbWUqIGZyYW1lKQogICAgIG1fZWxlbWVudHNQZW5k
aW5nVGV4dFJlY29nbml0aW9uLmNsZWFyKCk7CiAjZW5kaWYKIAotI2lmIEVOQUJMRShSRVNPVVJD
RV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZF
TlRJT04pCiAgICAgY2xlYXJMb2FkZWRTdWJyZXNvdXJjZURvbWFpbnMoKTsKICNlbmRpZgogICAg
IApAQCAtNzAxMiw3ICs3MDEyLDcgQEAgdm9pZCBXZWJQYWdlOjpmcmFtZUJlY2FtZVJlbW90ZShG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgR2xvYmFsRnJhbWVJZGVudGlmaWVyJiYKICAgICAgICAg
Y2xvc2UoKTsKIH0KIAotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYg
RU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiB2b2lkIFdlYlBhZ2U6Omhh
c1N0b3JhZ2VBY2Nlc3MoUmVnaXN0cmFibGVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgUmVnaXN0
cmFibGVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgV2ViRnJhbWUmIGZyYW1lLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmIChoYXNQ
YWdlTGV2ZWxTdG9yYWdlQWNjZXNzKHRvcEZyYW1lRG9tYWluLCBzdWJGcmFtZURvbWFpbikpIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCAxZWMyODE3
ZDM2OTdjMzZhM2EyMWFjNjE2MmU4N2YwOWMxYjg2YjgyLi5kNGY1NWE1YWU4YTlkYzBmYTFiNWU0
MGRmMDVhNzVhM2M3ZWE3MDU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oCkBAIC0xMjY4LDcgKzEyNjgsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGZsdXNo
UGVuZGluZ0VkaXRvclN0YXRlVXBkYXRlKCk7CiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9T
VEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQog
ICAgIHZvaWQgaGFzU3RvcmFnZUFjY2VzcyhXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIHN1
YkZyYW1lRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIHRvcEZyYW1lRG9tYWlu
LCBXZWJGcmFtZSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQg
cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiBzdWJGcmFt
ZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgV2Vi
RnJhbWUmLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzU2NvcGUsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoV2ViQ29yZTo6UmVxdWVzdFN0b3JhZ2VBY2Nlc3NSZXN1bHQpPiYmKTsKICAgICBib29sIGhh
c1BhZ2VMZXZlbFN0b3JhZ2VBY2Nlc3MoY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4m
IHRvcExldmVsRG9tYWluLCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3Vy
Y2VEb21haW4pIGNvbnN0OwpAQCAtMjMyNyw3ICsyMzI3LDcgQEAgcHJpdmF0ZToKICAgICBXZWJD
b3JlOjpUaW1lciBtX3RleHRBdXRvU2l6aW5nQWRqdXN0bWVudFRpbWVyOwogI2VuZGlmCiAKLSNp
ZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VO
VF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIEhhc2hNYXA8V2ViQ29yZTo6UmVnaXN0cmFibGVE
b21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluPiBtX2RvbWFpbnNXaXRoUGFnZUxldmVs
U3RvcmFnZUFjY2VzczsKICAgICBIYXNoU2V0PFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluPiBt
X2xvYWRlZFN1YnJlc291cmNlRG9tYWluczsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggNTk2YjRmN2Y2
MDIyZjVhYWUzNDNhNmUzZjAwOWY5Zjk2YmJlODk4NS4uMGM1OWM5MTMwZWEyNWI3YmQ2MGI1ZTg0
NWZkNWUzZTU1ZDBjZmE5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC01ODksNyArNTg5LDcgQEAgR2VuZXJhdGVT
eW50aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0
aW5nQ29tbWFuZFR5cGUKIAogICAgIFNldENhblNob3dQbGFjZWhvbGRlcihzdHJ1Y3QgV2ViQ29y
ZTo6RWxlbWVudENvbnRleHQgY29udGV4dCwgYm9vbCBjYW5TaG93UGxhY2Vob2xkZXIpCiAKLSNp
ZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VO
VF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIFdhc0xvYWRlZFdpdGhEYXRhVHJhbnNmZXJGcm9t
UHJldmFsZW50UmVzb3VyY2UoKQogICAgIENsZWFyTG9hZGVkU3VicmVzb3VyY2VEb21haW5zKCkK
ICAgICBHZXRMb2FkZWRTdWJyZXNvdXJjZURvbWFpbnMoKSAtPiAoVmVjdG9yPFdlYkNvcmU6OlJl
Z2lzdHJhYmxlRG9tYWluPiBkb21haW5zKSBBc3luYwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuY3BwCmluZGV4IDM4YjQ0NDU0MmEyM2I1NzY0OTM0YmE5OGUyZTRkZWIzNjA1NTM1
ODEuLjZiM2I1NGIzODc2MTllOTFlM2ZlMjU0ZmI2YjI5MWRhY2YxYTZlZTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTU1MSw3ICs1NTEsNyBAQCB2b2lkIFdl
YlByb2Nlc3M6OmluaXRpYWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMmJiBwYXJhbWV0ZXJzKQogICAgIEpTQzo6V2FzbTo6ZW5hYmxlRmFzdE1lbW9yeSgpOwogI2Vu
ZGlmCiAKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKSAmJiAhUkVMRUFTRV9M
T0dfRElTQUJMRUQKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikg
JiYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgV2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OnNl
dFNob3VsZExvZ1VzZXJJbnRlcmFjdGlvbihwYXJhbWV0ZXJzLnNob3VsZExvZ1VzZXJJbnRlcmFj
dGlvbik7CiAjZW5kaWYKIApAQCAtNTg2LDcgKzU4Niw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6c2V0
V2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMoV2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnMm
JiBwCiAKICAgICBzZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChwYXJhbWV0ZXJzLnJl
c291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKTsKIAotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FE
X1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04p
CiAgICAgbV90aGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlID0gcGFyYW1ldGVycy50aGlyZFBh
cnR5Q29va2llQmxvY2tpbmdNb2RlOwogICAgIGlmIChwYXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0
YXRpc3RpY3NFbmFibGVkKSB7CiAgICAgICAgIGlmICghUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OnNo
YXJlZElmRXhpc3RzKCkpCkBAIC0xNjg1LDcgKzE2ODUsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OnNl
dFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGJvb2wgZW5hYmxlZCkKICAgICBpZiAoV2Vi
Q29yZTo6RGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzOjpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5h
YmxlZCgpID09IGVuYWJsZWQpCiAgICAgICAgIHJldHVybjsKICAgICBXZWJDb3JlOjpEZXByZWNh
dGVkR2xvYmFsU2V0dGluZ3M6OnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGVuYWJs
ZWQpOwotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElO
VEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgaWYgKGVuYWJsZWQgJiYgIVJlc291
cmNlTG9hZE9ic2VydmVyOjpzaGFyZWRJZkV4aXN0cygpKQogICAgICAgICBXZWJDb3JlOjpSZXNv
dXJjZUxvYWRPYnNlcnZlcjo6c2V0U2hhcmVkKCpuZXcgV2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXIo
bV9zZXNzaW9uSUQgJiYgbV9zZXNzaW9uSUQtPmlzRXBoZW1lcmFsKCkgPyBXZWJDb3JlOjpSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzOjpJc0VwaGVtZXJhbDo6WWVzIDogV2ViQ29yZTo6UmVzb3VyY2VM
b2FkU3RhdGlzdGljczo6SXNFcGhlbWVyYWw6Ok5vKSk7CiAjZW5kaWYKQEAgLTE2OTMsNyArMTY5
Myw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQo
Ym9vbCBlbmFibGVkKQogCiB2b2lkIFdlYlByb2Nlc3M6OmNsZWFyUmVzb3VyY2VMb2FkU3RhdGlz
dGljcygpCiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFC
TEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBpZiAoYXV0byogb2JzZXJ2
ZXIgPSBSZXNvdXJjZUxvYWRPYnNlcnZlcjo6c2hhcmVkSWZFeGlzdHMoKSkKICAgICAgICAgb2Jz
ZXJ2ZXItPmNsZWFyU3RhdGUoKTsKICAgICBmb3IgKGF1dG8mIHBhZ2UgOiBtX3BhZ2VNYXAudmFs
dWVzKCkpCkBAIC0xNzAzLDcgKzE3MDMsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OmNsZWFyUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcygpCiAKIHZvaWQgV2ViUHJvY2Vzczo6Zmx1c2hSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzKCkKIHsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lm
IEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIGlmIChhdXRvKiBv
YnNlcnZlciA9IFJlc291cmNlTG9hZE9ic2VydmVyOjpzaGFyZWRJZkV4aXN0cygpKQogICAgICAg
ICBvYnNlcnZlci0+dXBkYXRlQ2VudHJhbFN0YXRpc3RpY3NTdG9yZShbXSB7IH0pOwogI2VuZGlm
CkBAIC0xNzExLDcgKzE3MTEsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OmZsdXNoUmVzb3VyY2VMb2Fk
U3RhdGlzdGljcygpCiAKIHZvaWQgV2ViUHJvY2Vzczo6c2VlZFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NGb3JUZXN0aW5nKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmaXJzdFBhcnR5RG9tYWluLCBj
b25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdGhpcmRQYXJ0eURvbWFpbiwgYm9vbCBzaG91bGRTY2hl
ZHVsZU5vdGlmaWNhdGlvbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQogewotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5B
QkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgaWYgKGF1dG8qIG9ic2Vy
dmVyID0gUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OnNoYXJlZElmRXhpc3RzKCkpCiAgICAgICAgIG9i
c2VydmVyLT5sb2dTdWJyZXNvdXJjZUxvYWRpbmdGb3JUZXN0aW5nKGZpcnN0UGFydHlEb21haW4s
IHRoaXJkUGFydHlEb21haW4sIHNob3VsZFNjaGVkdWxlTm90aWZpY2F0aW9uKTsKICNlbmRpZgpA
QCAtMjAxNSw3ICsyMDE1LDcgQEAgdm9pZCBXZWJQcm9jZXNzOjpkaXNwbGF5V2FzUmVmcmVzaGVk
KHVpbnQzMl90IGRpc3BsYXlJRCwgY29uc3QgRGlzcGxheVVwZGF0ZSYgZGkKIH0KICNlbmRpZgog
Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxM
SUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKIHZvaWQgV2ViUHJvY2Vzczo6c2V0VGhpcmRQYXJ0
eUNvb2tpZUJsb2NraW5nTW9kZShUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlIHRoaXJkUGFy
dHlDb29raWVCbG9ja2luZ01vZGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKIHsKICAgICBtX3RoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGUgPSB0aGly
ZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmgKaW5kZXggMjBkMzlmYzU3MTQxYjk4MGQ5YWUxYTk5MjU3MTNlY2QyOWM3NGQxOC4uMGQ5NjE4
MWY0NDhjNGQyOTYwZjVjMDUyY2M3YmMwY2NkMGVlZjhhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5oCkBAIC0xOTgsNyArMTk4LDcgQEAgcHVibGljOgogICAgIAogICAgIFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IHsgQVNTRVJUKG1fc2Vzc2lvbklEKTsgcmV0
dXJuICptX3Nlc3Npb25JRDsgfQogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElD
UykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBXZWJD
b3JlOjpUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlIHRoaXJkUGFydHlDb29raWVCbG9ja2lu
Z01vZGUoKSBjb25zdCB7IHJldHVybiBtX3RoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGU7IH0K
ICNlbmRpZgogCkBAIC01MjQsNyArNTI0LDcgQEAgcHJpdmF0ZToKIAogI2VuZGlmCiAKLSNpZiBF
TkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VOVF9U
UkFDS0lOR19QUkVWRU5USU9OKQogICAgIHZvaWQgc2V0VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5n
TW9kZShXZWJDb3JlOjpUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0RG9tYWluc1dpdGhVc2VySW50ZXJhY3Rpb24o
SGFzaFNldDxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4mJik7CiAgICAgdm9pZCBzZXREb21h
aW5zV2l0aENyb3NzUGFnZVN0b3JhZ2VBY2Nlc3MoSGFzaE1hcDxUb3BGcmFtZURvbWFpbiwgU3Vi
UmVzb3VyY2VEb21haW4+JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CkBAIC03NDQs
NyArNzQ0LDcgQEAgcHJpdmF0ZToKICAgICAvLyBCeSB0aGUgdGltZSB0aGUgV2ViUHJvY2VzcyBn
ZXRzIGEgV2ViUGFnZSwgaXQgaXMgZ3VhcmFudGVlZCB0byBoYXZlIGEgc2Vzc2lvbklELgogICAg
IHN0ZDo6b3B0aW9uYWw8UEFMOjpTZXNzaW9uSUQ+IG1fc2Vzc2lvbklEOwogCi0jaWYgRU5BQkxF
KFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJ
TkdfUFJFVkVOVElPTikKICAgICBXZWJDb3JlOjpUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2Rl
IG1fdGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZSB7IFdlYkNvcmU6OlRoaXJkUGFydHlDb29r
aWVCbG9ja2luZ01vZGU6OkFsbCB9OwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggZmM1MTg5OTMyMDU2YjMzMWJjNGU0
ZDY2MGE5NjliMDUxZWIyMTkxMS4uZjU3NmYwNzZmNDIxMjIzOGFlNTgwZTk4OGU0ZmIwNDdhOGEy
ZDhjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2Fn
ZXMuaW4KQEAgLTE1OSw3ICsxNTksNyBAQCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzIExlZ2FjeVJl
Y2VpdmVyIE5vdFJlZkNvdW50ZWQgewogICAgIFNlbmRNZXNzYWdlVG9XZWJFeHRlbnNpb24oc3Ry
dWN0IFdlYktpdDo6VXNlck1lc3NhZ2UgdXNlck1lc3NhZ2UpCiAjZW5kaWYKIAotI2lmIEVOQUJM
RShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNL
SU5HX1BSRVZFTlRJT04pCiAgICAgU2VlZFJlc291cmNlTG9hZFN0YXRpc3RpY3NGb3JUZXN0aW5n
KFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIGZpcnN0UGFydHlEb21haW4sIFdlYkNvcmU6OlJl
Z2lzdHJhYmxlRG9tYWluIHRoaXJkUGFydHlEb21haW4sIGJvb2wgc2hvdWxkU2NoZWR1bGVOb3Rp
ZmljYXRpb24pIC0+ICgpIEFzeW5jCiAgICAgU2V0VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9k
ZShlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZSBibG9j
a2luZ01vZGUpIC0+ICgpIEFzeW5jCiAgICAgU2V0RG9tYWluc1dpdGhVc2VySW50ZXJhY3Rpb24o
SGFzaFNldDxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4gZG9tYWlucykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9jbWFrZS9PcHRpb25zRlRXLmNtYWtlIGIvU291cmNlL2NtYWtlL09wdGlvbnNGVFcu
Y21ha2UKaW5kZXggNTM5YmRlMWI5ZDIxYzEzMzUwNGY3YTY3MTg5OTAzOTM1OGIxMjZhNC4uZmI3
NWEwMDExYjI3MzUyMTU2MWE1MTRmMmEwNzBmNDY0ZjcwYzRkMiAxMDA2NDQKLS0tIGEvU291cmNl
L2NtYWtlL09wdGlvbnNGVFcuY21ha2UKKysrIGIvU291cmNlL2NtYWtlL09wdGlvbnNGVFcuY21h
a2UKQEAgLTEzNiw2ICsxMzYsNyBAQCBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShF
TkFCTEVfREFUQUxJU1RfRUxFTUVOVCBQUklWQVRFIE9GRikKIFdFQktJVF9PUFRJT05fREVGQVVM
VF9QT1JUX1ZBTFVFKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04gUFJJVkFURSBPRkYpCiBXRUJL
SVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfRE9XTkxPQURfQVRUUklCVVRFIFBS
SVZBVEUgT0ZGKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0VOQ1JZ
UFRFRF9NRURJQSBQUklWQVRFIE9GRikKK1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVF
KEVOQUJMRV9JTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OIFBSSVZBVEUgT0ZGKQogV0VC
S0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0xBWU9VVF9GT1JNQVRUSU5HX0NP
TlRFWFQgUFJJVkFURSBPRkYpCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFC
TEVfTEVUVEVSUFJFU1MgUFJJVkFURSBPRkYpCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9W
QUxVRShFTkFCTEVfTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCBQUklWQVRFIE9GRikKQEAgLTE0
Nyw3ICsxNDgsNiBAQCBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfTk9U
SUZJQ0FUSU9OUyBQUklWQVRFIE9GRikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVF
KEVOQUJMRV9PVkVSRkxPV19TQ1JPTExJTkdfVE9VQ0ggUFJJVkFURSBPRkYpCiBXRUJLSVRfT1BU
SU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfUERGS0lUX1BMVUdJTiBQUklWQVRFIE9GRikK
IFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9QT0lOVEVSX0xPQ0sgUFJJ
VkFURSBPRkYpCi1XRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfUkVTT1VS
Q0VfTE9BRF9TVEFUSVNUSUNTIFBSSVZBVEUgT0ZGKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BP
UlRfVkFMVUUoRU5BQkxFX1JFU09VUkNFX1VTQUdFIFBSSVZBVEUgT0ZGKQogV0VCS0lUX09QVElP
Tl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1JVQkJFUl9CQU5ESU5HIFBSSVZBVEUgT0ZGKQog
V0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1NBTkRCT1hfRVhURU5TSU9O
UyBQUklWQVRFIE9GRikKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtl
IGIvU291cmNlL2NtYWtlL09wdGlvbnNHVEsuY21ha2UKaW5kZXggMDUyOGE0OWEzY2ZkZGYxMmI3
MmRjOTMwOTcwMjQzYTA0ZDM3MzQ3YS4uNWU4NTAxYTYwMDBhMzBhMTkyYmJkNjAzZTdkYWI4YTJk
NzcxNDAyNCAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtlL09wdGlvbnNHVEsuY21ha2UKKysrIGIv
U291cmNlL2NtYWtlL09wdGlvbnNHVEsuY21ha2UKQEAgLTE1Miw2ICsxNTIsNyBAQCBXRUJLSVRf
T1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FM
IFBSSVZBVEUgT04pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfSU5Q
VVRfVFlQRV9NT05USCBQUklWQVRFIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFM
VUUoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSBQUklWQVRFIE9OKQogV0VCS0lUX09QVElPTl9ERUZB
VUxUX1BPUlRfVkFMVUUoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSyBQUklWQVRFIE9OKQorV0VCS0lU
X09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0lOVEVMTElHRU5UX1RSQUNLSU5HX1BS
RVZFTlRJT04gUFJJVkFURSBPTikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVO
QUJMRV9MQVlPVVRfRk9STUFUVElOR19DT05URVhUIFBSSVZBVEUgJHtFTkFCTEVfRVhQRVJJTUVO
VEFMX0ZFQVRVUkVTfSkKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9N
RURJQV9TRVNTSU9OIFBSSVZBVEUgJHtFTkFCTEVfRVhQRVJJTUVOVEFMX0ZFQVRVUkVTfSkKIFdF
QktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9NRURJQV9TRVNTSU9OX1BMQVlM
SVNUIFBSSVZBVEUgJHtFTkFCTEVfRVhQRVJJTUVOVEFMX0ZFQVRVUkVTfSkKQEAgLTE2Niw3ICsx
NjcsNiBAQCBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfT0ZGU0NSRUVO
X0NBTlZBU19JTl9XT1JLRVJTIFBSSVZBVEUgJHtFTgogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BP
UlRfVkFMVUUoRU5BQkxFX1RIVU5ERVIgUFJJVkFURSBPRkYpCiBXRUJLSVRfT1BUSU9OX0RFRkFV
TFRfUE9SVF9WQUxVRShFTkFCTEVfUEVSSU9ESUNfTUVNT1JZX01PTklUT1IgUFJJVkFURSBPTikK
IFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9QT0lOVEVSX0xPQ0sgUFJJ
VkFURSBPTikKLVdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9SRVNPVVJD
RV9MT0FEX1NUQVRJU1RJQ1MgUFJJVkFURSBPTikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JU
X1ZBTFVFKEVOQUJMRV9TRVJWSUNFX1dPUktFUiBQUklWQVRFIE9OKQogV0VCS0lUX09QVElPTl9E
RUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1NIQVJFQUJMRV9SRVNPVVJDRSBQUklWQVRFIE9OKQog
V0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1dFQl9BUElfU1RBVElTVElD
UyBQUklWQVRFIE9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL09wdGlvbnNNYWMuY21ha2Ug
Yi9Tb3VyY2UvY21ha2UvT3B0aW9uc01hYy5jbWFrZQppbmRleCAzZmJhNmQzYTAxYTk3ZWVlNmEx
YzNjNTRhNTJiODBmMmY4ZjlmNTI3Li5iYTMwNWFkYTcxZjZhNDgzZGY5YmI5N2I3NTY4OWY3OTdl
MTM5OGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvT3B0aW9uc01hYy5jbWFrZQorKysgYi9T
b3VyY2UvY21ha2UvT3B0aW9uc01hYy5jbWFrZQpAQCAtNTAsNiArNTAsNyBAQCBXRUJLSVRfT1BU
SU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUiBQUklWQVRFIE9O
KQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0lOU1BFQ1RPUl9BTFRF
Uk5BVEVfRElTUEFUQ0hFUlMgUFJJVkFURSBPTikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JU
X1ZBTFVFKEVOQUJMRV9JTlNQRUNUT1JfRVhURU5TSU9OUyBQUklWQVRFIE9OKQogV0VCS0lUX09Q
VElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0lOU1BFQ1RPUl9URUxFTUVUUlkgUFJJVkFU
RSBPTikKK1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9JTlRFTExJR0VO
VF9UUkFDS0lOR19QUkVWRU5USU9OIFBSSVZBVEUgT04pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRf
UE9SVF9WQUxVRShFTkFCTEVfSU5URVJTRUNUSU9OX09CU0VSVkVSIFBSSVZBVEUgT04pCiBXRUJL
SVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfTEFZT1VUX0ZPUk1BVFRJTkdfQ09O
VEVYVCBQUklWQVRFIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxF
X0xFR0FDWV9DVVNUT01fUFJPVE9DT0xfTUFOQUdFUiBQUklWQVRFIE9OKQpAQCAtNzIsNyArNzMs
NiBAQCBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfUE9JTlRFUl9MT0NL
IFBSSVZBVEUgT04pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfUFVC
TElDX1NVRkZJWF9MSVNUIFBSSVZBVEUgT04pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9W
QUxVRShFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUiBQUklWQVRFIE9OKQogV0VCS0lUX09QVElPTl9E
RUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1JFU0laRV9PQlNFUlZFUiBQUklWQVRFIE9OKQotV0VC
S0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1JFU09VUkNFX0xPQURfU1RBVElT
VElDUyBQUklWQVRFIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxF
X1JFU09VUkNFX1VTQUdFIFBSSVZBVEUgT04pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9W
QUxVRShFTkFCTEVfUlVCQkVSX0JBTkRJTkcgUFJJVkFURSBPTikKIFdFQktJVF9PUFRJT05fREVG
QVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9TQU5EQk9YX0VYVEVOU0lPTlMgUFJJVkFURSBPTikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9PcHRpb25zUGxheVN0YXRpb24uY21ha2UgYi9Tb3VyY2Uv
Y21ha2UvT3B0aW9uc1BsYXlTdGF0aW9uLmNtYWtlCmluZGV4IDA3NGQ2M2E1NWVlMTY3YzVlZTVh
MmM0YzllZGFjNjE5ZTBiM2FkMjEuLmE3MjI2MDkyZGIwOTExOGI2OTBmN2Q2NzQ2M2E5YjQxMWVl
ZjY4MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9PcHRpb25zUGxheVN0YXRpb24uY21ha2UK
KysrIGIvU291cmNlL2NtYWtlL09wdGlvbnNQbGF5U3RhdGlvbi5jbWFrZQpAQCAtNDIsNyArNDIs
NyBAQCBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfQVNZTkNfU0NST0xM
SU5HIFBSSVZBVEUgT04pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVf
RlVMTFNDUkVFTl9BUEkgUFJJVkFURSBPTikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZB
TFVFKEVOQUJMRV9QRVJJT0RJQ19NRU1PUllfTU9OSVRPUiBQUklWQVRFIE9OKQogV0VCS0lUX09Q
VElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1NNT09USF9TQ1JPTExJTkcgUFJJVkFURSBP
TikKLVdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9SRVNPVVJDRV9MT0FE
X1NUQVRJU1RJQ1MgUFJJVkFURSBPTikKK1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVF
KEVOQUJMRV9JTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OIFBSSVZBVEUgT04pCiBXRUJL
SVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfUkVTT1VSQ0VfVVNBR0UgUFJJVkFU
RSBPTikKIAogIyBFeHBlcmltZW50YWwgZmVhdHVyZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFr
ZS9PcHRpb25zV1BFLmNtYWtlIGIvU291cmNlL2NtYWtlL09wdGlvbnNXUEUuY21ha2UKaW5kZXgg
MGQ0YjhmOWFkNjY4MDVhNDZiMDNhZDMyYWM2YWEyOWY1ZmRkYmIzYi4uMGUyMzczMjIwOWRlNTJh
MzQyZThkYzE5ZWVhNWVmYmI3Yjg1Yjk3YSAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtlL09wdGlv
bnNXUEUuY21ha2UKKysrIGIvU291cmNlL2NtYWtlL09wdGlvbnNXUEUuY21ha2UKQEAgLTUwLDYg
KzUwLDcgQEAgV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0NTU19UWVBF
RF9PTSBQUklWQVRFICR7RU5BQkxFX0VYUEVSSU1FTlQKIFdFQktJVF9PUFRJT05fREVGQVVMVF9Q
T1JUX1ZBTFVFKEVOQUJMRV9EQVJLX01PREVfQ1NTIFBSSVZBVEUgT04pCiBXRUJLSVRfT1BUSU9O
X0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfRklMVEVSU19MRVZFTF8yIFBSSVZBVEUgT04pCiBX
RUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfR1BVX1BST0NFU1MgUFJJVkFU
RSBPRkYpCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfSU5URUxMSUdF
TlRfVFJBQ0tJTkdfUFJFVkVOVElPTiBQUklWQVRFIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxU
X1BPUlRfVkFMVUUoRU5BQkxFX0xBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQgUFJJVkFURSAke0VO
QUJMRV9FWFBFUklNRU5UQUxfRkVBVFVSRVN9KQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRf
VkFMVUUoRU5BQkxFX01FRElBX1NFU1NJT04gUFJJVkFURSAke0VOQUJMRV9FWFBFUklNRU5UQUxf
RkVBVFVSRVN9KQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX01FRElB
X1NFU1NJT05fUExBWUxJU1QgUFJJVkFURSAke0VOQUJMRV9FWFBFUklNRU5UQUxfRkVBVFVSRVN9
KQpAQCAtNjEsNyArNjIsNiBAQCBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFC
TEVfTkVUV09SS19DQUNIRV9TVEFMRV9XSElMRV9SRVZBTElEQVRFIFBSSQogV0VCS0lUX09QVElP
Tl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX09GRlNDUkVFTl9DQU5WQVMgUFJJVkFURSAke0VO
QUJMRV9FWFBFUklNRU5UQUxfRkVBVFVSRVN9KQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRf
VkFMVUUoRU5BQkxFX09GRlNDUkVFTl9DQU5WQVNfSU5fV09SS0VSUyBQUklWQVRFICR7RU5BQkxF
X0VYUEVSSU1FTlRBTF9GRUFUVVJFU30pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxV
RShFTkFCTEVfUEVSSU9ESUNfTUVNT1JZX01PTklUT1IgUFJJVkFURSBPTikKLVdFQktJVF9PUFRJ
T05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9SRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MgUFJJ
VkFURSBPTikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9TRVJWSUNF
X1dPUktFUiBQUklWQVRFIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5B
QkxFX1NIQVJFQUJMRV9SRVNPVVJDRSBQUklWQVRFIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxU
X1BPUlRfVkFMVUUoRU5BQkxFX1NNT09USF9TQ1JPTExJTkcgUFJJVkFURSBPRkYpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvY21ha2UvT3B0aW9uc1dpbi5jbWFrZSBiL1NvdXJjZS9jbWFrZS9PcHRpb25z
V2luLmNtYWtlCmluZGV4IDY3YjQyNmU1OGM3NDA5ZjY2ODg5ZWQxZDgzNWFmNjYzNmFkMjc2NDIu
LmZiOTlhMWU1MTE5ODZhNmEwZWE2YTU5M2QwYzVhMjI1YmNjMjZmZTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9jbWFrZS9PcHRpb25zV2luLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zV2lu
LmNtYWtlCkBAIC03Nyw5ICs3Nyw5IEBAIGlmICgke1dURl9QTEFURk9STV9XSU5fQ0FJUk99KQog
ICAgIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9DU1NfUEFJTlRJTkdf
QVBJIFBSSVZBVEUgJHtFTkFCTEVfRVhQRVJJTUVOVEFMX0ZFQVRVUkVTfSkKICAgICBXRUJLSVRf
T1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfQ1NTX1RZUEVEX09NIFBSSVZBVEUgJHtF
TkFCTEVfRVhQRVJJTUVOVEFMX0ZFQVRVUkVTfSkKICAgICBXRUJLSVRfT1BUSU9OX0RFRkFVTFRf
UE9SVF9WQUxVRShFTkFCTEVfR1BVX1BST0NFU1MgUFJJVkFURSAke0VOQUJMRV9FWFBFUklNRU5U
QUxfRkVBVFVSRVN9KQorICAgIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJM
RV9JTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OIFBSSVZBVEUgJHtFTkFCTEVfRVhQRVJJ
TUVOVEFMX0ZFQVRVUkVTfSkKICAgICBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShF
TkFCTEVfTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCBQUklWQVRFICR7RU5BQkxFX0VYUEVSSU1F
TlRBTF9GRUFUVVJFU30pCiAgICAgV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5B
QkxFX1JFTU9URV9JTlNQRUNUT1IgUFJJVkFURSAke0VOQUJMRV9FWFBFUklNRU5UQUxfRkVBVFVS
RVN9KQotICAgIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9SRVNPVVJD
RV9MT0FEX1NUQVRJU1RJQ1MgUFJJVkFURSAke0VOQUJMRV9FWFBFUklNRU5UQUxfRkVBVFVSRVN9
KQogICAgIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9SRVNPVVJDRV9V
U0FHRSBQUklWQVRFICR7RU5BQkxFX0VYUEVSSU1FTlRBTF9GRUFUVVJFU30pCiAgICAgV0VCS0lU
X09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1NFUlZJQ0VfV09SS0VSIFBSSVZBVEUg
JHtFTkFCTEVfRVhQRVJJTUVOVEFMX0ZFQVRVUkVTfSkKICAgICBXRUJLSVRfT1BUSU9OX0RFRkFV
TFRfUE9SVF9WQUxVRShFTkFCTEVfVkFSSUFUSU9OX0ZPTlRTIFBSSVZBVEUgJHtFTkFCTEVfRVhQ
RVJJTUVOVEFMX0ZFQVRVUkVTfSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9XZWJLaXRGZWF0
dXJlcy5jbWFrZSBiL1NvdXJjZS9jbWFrZS9XZWJLaXRGZWF0dXJlcy5jbWFrZQppbmRleCAyOTFl
Mzk1YzljMTZlYTA3YzcxMDVhYWQ1YzAyN2NkM2I2Y2U4MmIxLi5mODY0ZDQyOGY1OTJjNWI2Nzlh
MWI2YWU5ZDI4YWQwODkxMGM0NmE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvV2ViS2l0RmVh
dHVyZXMuY21ha2UKKysrIGIvU291cmNlL2NtYWtlL1dlYktpdEZlYXR1cmVzLmNtYWtlCkBAIC0x
NTcsNiArMTU3LDcgQEAgbWFjcm8oV0VCS0lUX09QVElPTl9CRUdJTikKICAgICBXRUJLSVRfT1BU
SU9OX0RFRklORShFTkFCTEVfSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUyAiVG9nZ2xl
IGluc3BlY3RvciBhbHRlcm5hdGUgZGlzcGF0Y2hlcnMgc3VwcG9ydCIgUFJJVkFURSBPRkYpCiAg
ICAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxFX0lOU1BFQ1RPUl9FWFRFTlNJT05TICJUb2dn
bGUgaW5zcGVjdG9yIHdlYiBleHRlbnNpb25zIHN1cHBvcnQiIFBSSVZBVEUgT0ZGKQogICAgIFdF
QktJVF9PUFRJT05fREVGSU5FKEVOQUJMRV9JTlNQRUNUT1JfVEVMRU1FVFJZICJUb2dnbGUgaW5z
cGVjdG9yIHRlbGVtZXRyeSBzdXBwb3J0IiBQUklWQVRFIE9GRikKKyAgICBXRUJLSVRfT1BUSU9O
X0RFRklORShFTkFCTEVfSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTiAiVG9nZ2xlIHJl
c291cmNlIGxvYWQgc3RhdGlzdGljcyBzdXBwb3J0IiBQUklWQVRFIE9GRikKICAgICBXRUJLSVRf
T1BUSU9OX0RFRklORShFTkFCTEVfSU5URVJTRUNUSU9OX09CU0VSVkVSICJFbmFibGUgSW50ZXJz
ZWN0aW9uIE9ic2VydmVyIHN1cHBvcnQiIFBSSVZBVEUgT04pCiAgICAgV0VCS0lUX09QVElPTl9E
RUZJTkUoRU5BQkxFX0lPU19HRVNUVVJFX0VWRU5UUyAiVG9nZ2xlIGlPUyBnZXN0dXJlIGV2ZW50
cyBzdXBwb3J0IiBQUklWQVRFIE9GRikKICAgICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVf
SU9TX1RPVUNIX0VWRU5UUyAiVG9nZ2xlIGlPUyB0b3VjaCBldmVudHMgc3VwcG9ydCIgUFJJVkFU
RSBPRkYpCkBAIC0xOTcsNyArMTk4LDYgQEAgbWFjcm8oV0VCS0lUX09QVElPTl9CRUdJTikKICAg
ICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfUFVCTElDX1NVRkZJWF9MSVNUICJUb2dnbGUg
cHVibGljIHN1ZmZpeCBsaXN0IHN1cHBvcnQiIFBSSVZBVEUgT04pCiAgICAgV0VCS0lUX09QVElP
Tl9ERUZJTkUoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IgIlRvZ2dsZSByZW1vdGUgaW5zcGVjdG9y
IHN1cHBvcnQiIFBSSVZBVEUgT04pCiAgICAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxFX1JF
U0laRV9PQlNFUlZFUiAiVG9nZ2xlIFJlc2l6ZSBPYnNlcnZlciBzdXBwb3J0IiBQUklWQVRFIE9O
KQotICAgIFdFQktJVF9PUFRJT05fREVGSU5FKEVOQUJMRV9SRVNPVVJDRV9MT0FEX1NUQVRJU1RJ
Q1MgIlRvZ2dsZSByZXNvdXJjZSBsb2FkIHN0YXRpc3RpY3Mgc3VwcG9ydCIgUFJJVkFURSBPRkYp
CiAgICAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxFX1JFU09VUkNFX1VTQUdFICJUb2dnbGUg
cmVzb3VyY2UgdXNhZ2Ugc3VwcG9ydCIgUFJJVkFURSBPRkYpCiAgICAgV0VCS0lUX09QVElPTl9E
RUZJTkUoRU5BQkxFX1JVQkJFUl9CQU5ESU5HICJUb2dnbGUgcnViYmVyIGJhbmRpbmcgc3VwcG9y
dCIgUFJJVkFURSBPRkYpCiAgICAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxFX1NBTVBMSU5H
X1BST0ZJTEVSICJUb2dnbGUgc2FtcGxpbmcgcHJvZmlsZXIgc3VwcG9ydCIgUFJJVkFURSAke0VO
QUJMRV9TQU1QTElOR19QUk9GSUxFUl9ERUZBVUxUfSkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5n
ZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA1ZmExMDc3NDg5MTRlZDk0MWFhYmQxNjczYWQ5
OTFiNDk4NTE0YWQzLi5lZWNmMWE4MDMxZWFjOWU5Njc0YjhkZWIwNjE5M2U5NDQ4YzAwYmE1IDEw
MDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTMgQEAKKzIwMjEtMDktMTQgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+
CisKKyAgICAgICAgUmVuYW1lIFJFU09VUkNFX0xPQURfU1RBVElTVElDUyB0byBJTlRFTExJR0VO
VF9UUkFDS0lOR19QUkVWRU5USU9OCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzAyNzkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzMTE4NjgzPgor
CisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JUENUZXN0aW5nQVBJLm1tOgorCiAyMDIxLTA5LTE0ICBK
b25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAgICBbZ2l0LXdlYmtp
dF0gUmVzZXQgYXV0aG9yIHRpbWUgd2hlbiBlZGl0aW5nIGNvbW1pdHMgKFBhcnQgMSkKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSVBDVGVzdGluZ0FQ
SS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSVBDVGVzdGluZ0FQ
SS5tbQppbmRleCA1ZjRjODNhYmM5NDUwMmIxOTY1ZGE3OGZlYWEwYjBmY2ZjMTQ2ZDc3Li41YWE5
YmI3YjMwYTE3Y2E2MzIzZWRiNmJkZGVmY2UyYWExODVkODliIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0lQQ1Rlc3RpbmdBUEkubW0KKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JUENUZXN0aW5nQVBJLm1tCkBAIC00
MzksNyArNDM5LDcgQEAgVEVTVChJUENUZXN0aW5nQVBJLCBEZWNvZGVzUmVwbHlBcmd1bWVudHNG
b3JQcm9tcHQpCiAgICAgRVhQRUNUX1NUUkVRKFtbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdK
YXZhU2NyaXB0OkAiSlNPTi5zdHJpbmdpZnkocmVzdWx0LmFyZ3VtZW50cykiXSBVVEY4U3RyaW5n
XSwgIlt7XCJ0eXBlXCI6XCJTdHJpbmdcIixcInZhbHVlXCI6XCJmb29cIn1dIik7CiB9CiAKLSNp
ZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorI2lmIEVOQUJMRShJTlRFTExJR0VO
VF9UUkFDS0lOR19QUkVWRU5USU9OKQogVEVTVChJUENUZXN0aW5nQVBJLCBEZWNvZGVzUmVwbHlB
cmd1bWVudHNGb3JBc3luY01lc3NhZ2UpCiB7CiAgICAgYXV0byB3ZWJWaWV3ID0gY3JlYXRlV2Vi
Vmlld1dpdGhJUENUZXN0aW5nQVBJKCk7CkBAIC01MDEsNyArNTAxLDcgQEAgVEVTVChJUENUZXN0
aW5nQVBJLCBDYW5JbnRlcmNlcHRBbGVydCkKICAgICAgICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFs
dWF0aW5nSmF2YVNjcmlwdDpAIklQQy53ZWJQYWdlUHJveHlJRC50b1N0cmluZygpIl0uaW50VmFs
dWUpOwogfQogCi0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyNpZiBFTkFC
TEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKIFRFU1QoSVBDVGVzdGluZ0FQSSwg
Q2FuSW50ZXJjZXB0SGFzU3RvcmFnZUFjY2VzcykKIHsKICAgICBhdXRvIHdlYlZpZXcgPSBjcmVh
dGVXZWJWaWV3V2l0aElQQ1Rlc3RpbmdBUEkoKTsKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0No
YW5nZUxvZwppbmRleCA4YTBhNmEwNDExMWZhMzY1MDlhNzAxNWQ3MDZiNTRkNDI0NzA1NzM0Li5h
OGM0NjQzOTY2YzlhMWRiN2IyYzE4ZGI3OTIzY2RiNThlMzA0ZGUzIDEwMDY0NAotLS0gYS9DaGFu
Z2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMjEtMDktMTQgIEpvaG4g
V2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIFJFU09VUkNF
X0xPQURfU1RBVElTVElDUyB0byBJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzAyNzkKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzgzMTE4NjgzPgorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmlu
IEFkbGVyLgorCisgICAgICAgICogU291cmNlL2NtYWtlL09wdGlvbnNGVFcuY21ha2U6CisgICAg
ICAgICogU291cmNlL2NtYWtlL09wdGlvbnNHVEsuY21ha2U6CisgICAgICAgICogU291cmNlL2Nt
YWtlL09wdGlvbnNNYWMuY21ha2U6CisgICAgICAgICogU291cmNlL2NtYWtlL09wdGlvbnNQbGF5
U3RhdGlvbi5jbWFrZToKKyAgICAgICAgKiBTb3VyY2UvY21ha2UvT3B0aW9uc1dQRS5jbWFrZToK
KyAgICAgICAgKiBTb3VyY2UvY21ha2UvT3B0aW9uc1dpbi5jbWFrZToKKyAgICAgICAgKiBTb3Vy
Y2UvY21ha2UvV2ViS2l0RmVhdHVyZXMuY21ha2U6CisKIDIwMjEtMDktMTMgIFNhbSBTbmVkZG9u
ICA8Z3NuZWRkZXJzQGFwcGxlLmNvbT4KIAogICAgICAgICBNb3ZlIEVOQUJMRV9SRVNPTFVUSU9O
X01FRElBX1FVRVJZIHRvIGEgcnVudGltZSBmbGFnLCBzdGFydCBydW5uaW5nIHRlc3RzIGFnYWlu
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438204</attachid>
            <date>2021-09-14 18:50:06 -0700</date>
            <delta_ts>2021-09-14 20:40:01 -0700</delta_ts>
            <desc>Patch for FeatureList</desc>
            <filename>bug-230279.diff</filename>
            <type>text/plain</type>
            <size>2560</size>
            <attacher name="Don Olmstead">don.olmstead</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBhM2Ix
MTIzY2E0ZjMuLjBiZThlMTAzMjNjMSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBi
L1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIxLTA5LTE0ICBEb24gT2xtc3Rl
YWQgIDxkb24ub2xtc3RlYWRAc29ueS5jb20+CisKKyAgICAgICAgUmVuYW1lIFJFU09VUkNFX0xP
QURfU1RBVElTVElDUyB0byBJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzAyNzkKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzgzMTE4NjgzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEZvbGxvd3VwIHJlbmFtaW5nIHRoZSB2YXJpYWJsZXMgaW4gRmVh
dHVyZUxpc3QucG0uCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3Qu
cG06CisKIDIwMjEtMDktMTQgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CiAK
ICAgICAgICAgUmVuYW1lIFJFU09VUkNFX0xPQURfU1RBVElTVElDUyB0byBJTlRFTExJR0VOVF9U
UkFDS0lOR19QUkVWRU5USU9OCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHBlcmwv
RmVhdHVyZUxpc3QucG0gYi9Ub29scy9TY3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG0K
aW5kZXggZjNkZTY4MmMyNTIxLi5iMWJkZTgwMjhhNDQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHBl
cmwvRmVhdHVyZUxpc3QucG0KQEAgLTEwMyw2ICsxMDMsNyBAQCBteSAoCiAgICAgJGlucHV0VHlw
ZVdlZWtTdXBwb3J0LAogICAgICRpbnNwZWN0b3JBbHRlcm5hdGVEaXNwYXRjaGVyc1N1cHBvcnQs
CiAgICAgJGluc3BlY3RvclRlbGVtZXRyeVN1cHBvcnQsCisgICAgJGludGVsbGlnZW50VHJhY2tp
bmdQcmV2ZW50aW9uLAogICAgICRpbnRlcnNlY3Rpb25PYnNlcnZlclN1cHBvcnQsCiAgICAgJGlv
c0dlc3R1cmVFdmVudHNTdXBwb3J0LAogICAgICRpb3NUb3VjaEV2ZW50c1N1cHBvcnQsCkBAIC0x
NDIsNyArMTQzLDYgQEAgbXkgKAogICAgICRyZW1vdGVJbnNwZWN0b3JTdXBwb3J0LAogICAgICRy
ZXNpemVPYnNlcnZlclN1cHBvcnQsCiAgICAgJHJlc29sdXRpb25NZWRpYVF1ZXJ5U3VwcG9ydCwK
LSAgICAkcmVzb3VyY2VMb2FkU3RhdGlzdGljc1N1cHBvcnQsCiAgICAgJHJlc291cmNlVXNhZ2VT
dXBwb3J0LAogICAgICRydWJiZXJCYW5kaW5nU3VwcG9ydCwKICAgICAkc2FtcGxpbmdQcm9maWxl
clN1cHBvcnQsCkBAIC0zNDcsNiArMzQ3LDkgQEAgbXkgQGZlYXR1cmVzID0gKAogICAgIHsgb3B0
aW9uID0+ICJpbnNwZWN0b3ItdGVsZW1ldHJ5IiwgZGVzYyA9PiAiVG9nZ2xlIGluc3BlY3RvciB0
ZWxlbWV0cnkgc3VwcG9ydCIsCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9JTlNQRUNUT1JfVEVM
RU1FVFJZIiwgdmFsdWUgPT4gXCRpbnNwZWN0b3JUZWxlbWV0cnlTdXBwb3J0IH0sCiAKKyAgICB7
IG9wdGlvbiA9PiAiaW50ZWxsaWdlbnQtdHJhY2tpbmctcHJldmVudGlvbiIsIGRlc2MgPT4gIlRv
Z2dsZSBpbnRlbGxpZ2VudCB0cmFja2luZyBwcmV2ZW50aW9uIHN1cHBvcnQiLAorICAgICAgZGVm
aW5lID0+ICJFTkFCTEVfSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTiIsIHZhbHVlID0+
IFwkaW50ZWxsaWdlbnRUcmFja2luZ1ByZXZlbnRpb24gfSwKKwogICAgIHsgb3B0aW9uID0+ICJp
bnRlcnNlY3Rpb24tb2JzZXJ2ZXIiLCBkZXNjID0+ICJFbmFibGUgSW50ZXJzZWN0aW9uIE9ic2Vy
dmVyIHN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfSU5URVJTRUNUSU9OX09CU0VS
VkVSIiwgdmFsdWUgPT4gXCRpbnRlcnNlY3Rpb25PYnNlcnZlclN1cHBvcnQgfSwKIApAQCAtNDU4
LDkgKzQ2MSw2IEBAIG15IEBmZWF0dXJlcyA9ICgKICAgICB7IG9wdGlvbiA9PiAicmVzb2x1dGlv
bi1tZWRpYS1xdWVyeSIsIGRlc2MgPT4gIlRvZ2dsZSByZXNvbHV0aW9uIG1lZGlhIHF1ZXJ5IHN1
cHBvcnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfUkVTT0xVVElPTl9NRURJQV9RVUVSWSIs
IHZhbHVlID0+IFwkcmVzb2x1dGlvbk1lZGlhUXVlcnlTdXBwb3J0IH0sCiAKLSAgICB7IG9wdGlv
biA9PiAicmVzb3VyY2UtbG9hZC1zdGF0aXN0aWNzIiwgZGVzYyA9PiAiVG9nZ2xlIHJlc291cmNl
IGxvYWQgc3RhdGlzdGljcyBzdXBwb3J0IiwKLSAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1JFU09V
UkNFX0xPQURfU1RBVElTVElDUyIsIHZhbHVlID0+IFwkcmVzb3VyY2VMb2FkU3RhdGlzdGljc1N1
cHBvcnQgfSwKLQogICAgIHsgb3B0aW9uID0+ICJyZXNvdXJjZS11c2FnZSIsIGRlc2MgPT4gIlRv
Z2dsZSByZXNvdXJjZSB1c2FnZSBzdXBwb3J0IiwKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1JF
U09VUkNFX1VTQUdFIiwgdmFsdWUgPT4gXCRyZXNvdXJjZVVzYWdlU3VwcG9ydCB9LAogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>