<?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>161090</bug_id>
          
          <creation_ts>2016-08-23 10:25:48 -0700</creation_ts>
          <short_desc>Remove EXTERN_C from WTF</short_desc>
          <delta_ts>2016-09-06 11:05:26 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Template Framework</component>
          <version>WebKit Local Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Daniel Bates">dbates</reporter>
          <assigned_to name="Daniel Bates">dbates</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>mitz</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1222262</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2016-08-23 10:25:48 -0700</bug_when>
    <thetext>Using the macro definitions WTF_EXTERN_C_BEGIN, WTF_EXTERN_C_END is preferred over EXTERN_C. We should remove the macro definition EXTERN_C.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222267</commentid>
    <comment_count>1</comment_count>
      <attachid>286728</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2016-08-23 10:30:49 -0700</bug_when>
    <thetext>Created attachment 286728
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222268</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-23 10:33:14 -0700</bug_when>
    <thetext>Attachment 286728 did not pass style-queue:


ERROR: Source/WebCore/platform/spi/cocoa/MachVMSPI.h:39:  mach_vm_allocate is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/platform/spi/cocoa/MachVMSPI.h:40:  mach_vm_deallocate is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/platform/spi/cocoa/MachVMSPI.h:41:  mach_vm_map is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/platform/spi/cocoa/MachVMSPI.h:43:  mach_vm_protect is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/platform/spi/cocoa/MachVMSPI.h:44:  mach_vm_region is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/platform/spi/cocoa/MachVMSPI.h:46:  mach_vm_region_recurse is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/platform/spi/cocoa/MachVMSPI.h:47:  mach_vm_purgable_control is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/dyldSPI.h:56:  dyld_get_program_sdk_version is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:84:  _xpc_error_connection_invalid is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:85:  _xpc_error_termination_imminent is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:87:  _xpc_type_array is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:88:  _xpc_type_bool is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:89:  _xpc_type_dictionary is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:90:  _xpc_type_error is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:91:  _xpc_type_string is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:93:  xpc_array_create is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:95:  xpc_array_apply is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:96:  The parameter name &quot;applier&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:96:  xpc_dictionary_apply is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:98:  xpc_array_get_count is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:99:  xpc_array_get_string is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:100:  xpc_array_set_string is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:101:  xpc_bool_get_value is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:102:  xpc_connection_cancel is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:103:  xpc_connection_create is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:104:  xpc_connection_create_mach_service is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:105:  xpc_connection_get_pid is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:106:  xpc_connection_resume is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:107:  xpc_connection_send_message is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:108:  xpc_connection_send_message_with_reply is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:109:  xpc_connection_set_event_handler is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:110:  xpc_connection_set_target_queue is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:111:  xpc_dictionary_create is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:112:  xpc_dictionary_create_reply is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:113:  xpc_dictionary_dup_fd is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:114:  xpc_dictionary_get_remote_connection is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:115:  xpc_dictionary_get_bool is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:116:  xpc_dictionary_get_string is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:117:  xpc_dictionary_get_uint64 is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:118:  xpc_dictionary_get_value is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:119:  xpc_dictionary_set_bool is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:120:  xpc_dictionary_set_fd is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:121:  xpc_dictionary_set_string is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:122:  xpc_dictionary_set_uint64 is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:123:  xpc_dictionary_set_value is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:124:  xpc_get_type is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:125:  xpc_main is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:126:  xpc_string_get_string_ptr is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:127:  xpc_transaction_begin is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:128:  xpc_transaction_end is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:129:  xpc_transaction_exit_clean is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:130:  xpc_track_activity is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:132:  xpc_connection_copy_entitlement_value is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:133:  xpc_connection_get_audit_token is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:134:  xpc_connection_kill is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:135:  xpc_connection_set_instance is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:136:  xpc_dictionary_copy_mach_send is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:137:  xpc_dictionary_set_mach_send is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:139:  xpc_connection_set_bootstrap is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:140:  xpc_copy_bootstrap is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:141:  xpc_connection_set_oneshot_instance is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:148:  xpc_retain is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:156:  xpc_release is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/platform/spi/cf/CFNetworkConnectionCacheSPI.h:42:  _CFNetworkHTTPConnectionCacheGetLimit is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/platform/spi/cf/CFNetworkConnectionCacheSPI.h:43:  _CFNetworkHTTPConnectionCacheSetLimit is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 65 in 24 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222273</commentid>
    <comment_count>3</comment_count>
      <attachid>286730</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2016-08-23 10:36:54 -0700</bug_when>
    <thetext>Created attachment 286730
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222278</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-23 10:49:51 -0700</bug_when>
    <thetext>Attachment 286730 did not pass style-queue:


ERROR: Source/WebCore/platform/spi/cocoa/MachVMSPI.h:39:  mach_vm_allocate is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/platform/spi/cocoa/MachVMSPI.h:40:  mach_vm_deallocate is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/platform/spi/cocoa/MachVMSPI.h:41:  mach_vm_map is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/platform/spi/cocoa/MachVMSPI.h:43:  mach_vm_protect is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/platform/spi/cocoa/MachVMSPI.h:44:  mach_vm_region is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/platform/spi/cocoa/MachVMSPI.h:46:  mach_vm_region_recurse is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/platform/spi/cocoa/MachVMSPI.h:47:  mach_vm_purgable_control is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/dyldSPI.h:56:  dyld_get_program_sdk_version is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:84:  _xpc_error_connection_invalid is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:85:  _xpc_error_termination_imminent is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:87:  _xpc_type_array is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:88:  _xpc_type_bool is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:89:  _xpc_type_dictionary is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:90:  _xpc_type_error is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:91:  _xpc_type_string is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:93:  xpc_array_create is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:95:  xpc_array_apply is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:96:  The parameter name &quot;applier&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:96:  xpc_dictionary_apply is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:98:  xpc_array_get_count is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:99:  xpc_array_get_string is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:100:  xpc_array_set_string is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:101:  xpc_bool_get_value is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:102:  xpc_connection_cancel is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:103:  xpc_connection_create is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:104:  xpc_connection_create_mach_service is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:105:  xpc_connection_get_pid is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:106:  xpc_connection_resume is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:107:  xpc_connection_send_message is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:108:  xpc_connection_send_message_with_reply is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:109:  xpc_connection_set_event_handler is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:110:  xpc_connection_set_target_queue is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:111:  xpc_dictionary_create is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:112:  xpc_dictionary_create_reply is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:113:  xpc_dictionary_dup_fd is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:114:  xpc_dictionary_get_remote_connection is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:115:  xpc_dictionary_get_bool is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:116:  xpc_dictionary_get_string is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:117:  xpc_dictionary_get_uint64 is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:118:  xpc_dictionary_get_value is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:119:  xpc_dictionary_set_bool is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:120:  xpc_dictionary_set_fd is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:121:  xpc_dictionary_set_string is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:122:  xpc_dictionary_set_uint64 is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:123:  xpc_dictionary_set_value is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:124:  xpc_get_type is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:125:  xpc_main is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:126:  xpc_string_get_string_ptr is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:127:  xpc_transaction_begin is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:128:  xpc_transaction_end is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:129:  xpc_transaction_exit_clean is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:130:  xpc_track_activity is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:132:  xpc_connection_copy_entitlement_value is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:133:  xpc_connection_get_audit_token is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:134:  xpc_connection_kill is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:135:  xpc_connection_set_instance is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:136:  xpc_dictionary_copy_mach_send is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:137:  xpc_dictionary_set_mach_send is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:139:  xpc_connection_set_bootstrap is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:140:  xpc_copy_bootstrap is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:141:  xpc_connection_set_oneshot_instance is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:148:  xpc_retain is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:156:  xpc_release is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/platform/spi/cf/CFNetworkConnectionCacheSPI.h:42:  _CFNetworkHTTPConnectionCacheGetLimit is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/platform/spi/cf/CFNetworkConnectionCacheSPI.h:43:  _CFNetworkHTTPConnectionCacheSetLimit is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 65 in 24 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222542</commentid>
    <comment_count>5</comment_count>
      <attachid>286815</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2016-08-23 18:33:29 -0700</bug_when>
    <thetext>Created attachment 286815
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222543</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-23 18:35:22 -0700</bug_when>
    <thetext>Attachment 286815 did not pass style-queue:


ERROR: Source/WebCore/platform/spi/cocoa/MachVMSPI.h:39:  mach_vm_allocate is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/platform/spi/cocoa/MachVMSPI.h:40:  mach_vm_deallocate is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/platform/spi/cocoa/MachVMSPI.h:41:  mach_vm_map is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/platform/spi/cocoa/MachVMSPI.h:43:  mach_vm_protect is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/platform/spi/cocoa/MachVMSPI.h:44:  mach_vm_region is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/platform/spi/cocoa/MachVMSPI.h:46:  mach_vm_region_recurse is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/platform/spi/cocoa/MachVMSPI.h:47:  mach_vm_purgable_control is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/dyldSPI.h:56:  dyld_get_program_sdk_version is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:84:  _xpc_error_connection_invalid is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:85:  _xpc_error_termination_imminent is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:87:  _xpc_type_array is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:88:  _xpc_type_bool is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:89:  _xpc_type_dictionary is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:90:  _xpc_type_error is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:91:  _xpc_type_string is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:93:  xpc_array_create is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:95:  xpc_array_apply is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:96:  The parameter name &quot;applier&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:96:  xpc_dictionary_apply is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:98:  xpc_array_get_count is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:99:  xpc_array_get_string is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:100:  xpc_array_set_string is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:101:  xpc_bool_get_value is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:102:  xpc_connection_cancel is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:103:  xpc_connection_create is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:104:  xpc_connection_create_mach_service is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:105:  xpc_connection_get_pid is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:106:  xpc_connection_resume is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:107:  xpc_connection_send_message is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:108:  xpc_connection_send_message_with_reply is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:109:  xpc_connection_set_event_handler is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:110:  xpc_connection_set_target_queue is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:111:  xpc_dictionary_create is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:112:  xpc_dictionary_create_reply is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:113:  xpc_dictionary_dup_fd is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:114:  xpc_dictionary_get_remote_connection is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:115:  xpc_dictionary_get_bool is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:116:  xpc_dictionary_get_string is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:117:  xpc_dictionary_get_uint64 is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:118:  xpc_dictionary_get_value is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:119:  xpc_dictionary_set_bool is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:120:  xpc_dictionary_set_fd is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:121:  xpc_dictionary_set_string is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:122:  xpc_dictionary_set_uint64 is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:123:  xpc_dictionary_set_value is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:124:  xpc_get_type is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:125:  xpc_main is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:126:  xpc_string_get_string_ptr is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:127:  xpc_transaction_begin is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:128:  xpc_transaction_end is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:129:  xpc_transaction_exit_clean is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:130:  xpc_track_activity is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:132:  xpc_connection_copy_entitlement_value is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:133:  xpc_connection_get_audit_token is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:134:  xpc_connection_kill is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:135:  xpc_connection_set_instance is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:136:  xpc_dictionary_copy_mach_send is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:137:  xpc_dictionary_set_mach_send is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:139:  xpc_connection_set_bootstrap is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:140:  xpc_copy_bootstrap is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:141:  xpc_connection_set_oneshot_instance is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:148:  xpc_retain is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/spi/darwin/XPCSPI.h:156:  xpc_release is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/platform/spi/cf/CFNetworkConnectionCacheSPI.h:42:  _CFNetworkHTTPConnectionCacheGetLimit is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/platform/spi/cf/CFNetworkConnectionCacheSPI.h:43:  _CFNetworkHTTPConnectionCacheSetLimit is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 65 in 24 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1223175</commentid>
    <comment_count>7</comment_count>
      <attachid>286815</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-08-25 12:33:10 -0700</bug_when>
    <thetext>Comment on attachment 286815
Patch

r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1226731</commentid>
    <comment_count>8</comment_count>
      <attachid>286815</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2016-09-06 10:19:10 -0700</bug_when>
    <thetext>Comment on attachment 286815
Patch

Clearing flags on attachment: 286815

Committed r205488: &lt;http://trac.webkit.org/changeset/205488&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1226732</commentid>
    <comment_count>9</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2016-09-06 10:19:15 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1226755</commentid>
    <comment_count>10</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2016-09-06 11:05:26 -0700</bug_when>
    <thetext>Committed Apple-internal build fix in &lt;http://trac.webkit.org/changeset/205492&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286728</attachid>
            <date>2016-08-23 10:30:49 -0700</date>
            <delta_ts>2016-08-23 10:36:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161090-20160823102850.patch</filename>
            <type>text/plain</type>
            <size>45237</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0ODM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDIxZDNiYjZmMjdlMGM4NWY1ZjkzMDhj
MDBmN2ZiMWYzOTBmMjUyZTguLjIxMWVkNzMyZjZiMTNjMGYyNTgwZDBkZjA3NmZiZjQyM2RjNmQx
NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTYtMDgtMjMgIERhbmllbCBCYXRlcyAgPGRhYmF0
ZXNAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBFWFRFUk5fQyBmcm9tIFdURgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYxMDkwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgR3VhcmQgZXh0ZXJuYWwg
QyBkZWNsYXJhdGlvbnMgaW4gV1RGX0VYVEVSTl9DX0JFR0lOLCBXVEZfRVhURVJOX0NfRU5ELgor
CisgICAgICAgICogd3RmL0NvbXBpbGVyLmg6IFJlbW92ZSBtYWNybyBkZWZpbml0aW9uIEVYVEVS
Tl9DLgorICAgICAgICAqIHd0Zi9zcGkvY2YvQ0ZCdW5kbGVTUEkuaDoKKyAgICAgICAgKiB3dGYv
c3BpL2NvY29hL05TTWFwVGFibGVTUEkuaDoKKyAgICAgICAgKiB3dGYvc3BpL2NvY29hL1NlY3Vy
aXR5U1BJLmg6CisgICAgICAgICogd3RmL3NwaS9kYXJ3aW4vQ29tbW9uQ3J5cHRvU1BJLmg6Cisg
ICAgICAgICogd3RmL3NwaS9kYXJ3aW4vU2FuZGJveFNQSS5oOgorICAgICAgICAqIHd0Zi9zcGkv
ZGFyd2luL1hQQ1NQSS5oOgorICAgICAgICAqIHd0Zi9zcGkvZGFyd2luL2R5bGRTUEkuaDoKKwog
MjAxNi0wOC0yMiAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KIAogICAg
ICAgICBBY3R1YWxseSBlbmFibGUgdGhlIFdBU00gYnVpbGQuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWUzODY4
NDExYWZmMjBiMGM5OWRhNmY4MWQ2MDMxNWQwMTliNzA3Mi4uZGZmZjkxYzUwYzViZjNkNWJlMjJj
YzQ4YTgxYWQyYmQwOTc2MDI0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE2LTA4
LTIzICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUg
RVhURVJOX0MgZnJvbSBXVEYKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE2MTA5MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEd1YXJkIGV4dGVybmFsIEMgZGVjbGFyYXRpb25zIGluIFdURl9FWFRFUk5fQ19C
RUdJTiwgV1RGX0VYVEVSTl9DX0VORC4KKworICAgICAgICAqIHBsYXRmb3JtL3NwaS9jZi9DRkxv
Y2FsZVNQSS5oOgorICAgICAgICAqIHBsYXRmb3JtL3NwaS9jZi9DRk5ldHdvcmtDb25uZWN0aW9u
Q2FjaGVTUEkuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmg6IEFk
ZGl0aW9uYWxseSwgcmVtb3ZlIHRoZSB3b3JrYXJvdW5kIGZvciA8cmRhcjovL3Byb2JsZW0vMTgz
MzcxODI+CisgICAgICAgIGFzIHRoaXMgYnVnIHdhcyBmaXhlZCBpbiBFbCBDYXBpdGFuLgorICAg
ICAgICAqIHBsYXRmb3JtL3NwaS9jZi9DRlV0aWxpdGllc1NQSS5oOgorICAgICAgICAqIHBsYXRm
b3JtL3NwaS9jb2NvYS9Db3JlVGV4dFNQSS5oOgorICAgICAgICAqIHBsYXRmb3JtL3NwaS9jb2Nv
YS9EYXRhRGV0ZWN0b3JzQ29yZVNQSS5oOgorICAgICAgICAqIHBsYXRmb3JtL3NwaS9jb2NvYS9J
T1BNTGliU1BJLmg6CisgICAgICAgICogcGxhdGZvcm0vc3BpL2NvY29hL01hY2hWTVNQSS5oOgor
ICAgICAgICAqIHBsYXRmb3JtL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmg6CisgICAgICAgICog
cGxhdGZvcm0vc3BpL2lvcy9Nb2JpbGVHZXN0YWx0U1BJLmg6CisgICAgICAgICogcGxhdGZvcm0v
c3BpL2lvcy9RdWlja0xvb2tTUEkuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9zcGkvd2luL0NvcmVU
ZXh0U1BJV2luLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9zcGkvd2luL0NvcmVUZXh0U1BJV2lu
Lmg6CisKIDIwMTYtMDgtMjMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAg
ICAgICBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQgc2hvdWxkIG5vdCBoYXZlIGEgQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dCBwYXJlbnQgaW50ZXJmYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYjVjMTYxM2NlOTdj
YjkwMzQ2NjQ2MWVjMWI5NTVjN2QyMjQ5MzkxNy4uM2MyNTYzN2JiNmRhMzVkZDZmMGM4NTY3MmQ5
MTMyNzdhNDI3NzRlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE2LTA4LTIzICBE
YW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgRVhURVJO
X0MgZnJvbSBXVEYKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE2MTA5MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEd1YXJkIGV4dGVybmFsIEMgZGVjbGFyYXRpb25zIGluIFdURl9FWFRFUk5fQ19CRUdJTiwg
V1RGX0VYVEVSTl9DX0VORC4KKworICAgICAgICAqIFBsYXRmb3JtL3NwaS9pb3MvTWFuYWdlZENv
bmZpZ3VyYXRpb25TUEkuaDoKKwogMjAxNi0wOC0yMyAgSHVuc2VvcCBKZW9uZyAgPGhzODUuamVv
bmdAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF0gVVJUQkYgYWZ0ZXIgcjIwNDc0My4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0NvbXBpbGVyLmggYi9Tb3VyY2UvV1RGL3d0Zi9Db21w
aWxlci5oCmluZGV4IGZhZjE5YmEwMjJjMzA3MDBkODk2YmQ5OGM5OGJmZTVmZDdlNzQ3ZGQuLmRl
NmQ4MThmODU4NzE0ZGJmOTgzMDY5ZjA4Yjk1ZDAzNmU5NjUwMzggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvd3RmL0NvbXBpbGVyLmgKKysrIGIvU291cmNlL1dURi93dGYvQ29tcGlsZXIuaApAQCAt
MTczLDEzICsxNzMsNiBAQAogI2RlZmluZSBXVEZfRVhURVJOX0NfRU5ECiAjZW5kaWYKIAotLyog
RklYTUU6IFJlbW92ZSB0aGlzIG9uY2Ugd2UgaGF2ZSB0cmFuc2l0aW9uZWQgdG8gV1RGX0VYVEVS
Tl9DX0JFR0lOL1dURl9FWFRFUk5fQ19FTkQuICovCi0jaWZkZWYgX19jcGx1c3BsdXMKLSNkZWZp
bmUgRVhURVJOX0MgZXh0ZXJuICJDIgotI2Vsc2UKLSNkZWZpbmUgRVhURVJOX0MgZXh0ZXJuCi0j
ZW5kaWYKLQogLyogRkFMTFRIUk9VR0ggKi8KIAogI2lmICFkZWZpbmVkKEZBTExUSFJPVUdIKSAm
JiBDT01QSUxFUl9TVVBQT1JUUyhGQUxMVEhST1VHSF9XQVJOSU5HUykgJiYgQ09NUElMRVIoQ0xB
TkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9zcGkvY2YvQ0ZCdW5kbGVTUEkuaCBiL1Nv
dXJjZS9XVEYvd3RmL3NwaS9jZi9DRkJ1bmRsZVNQSS5oCmluZGV4IDRlZjBhZTNhNjA1YjhhYzBh
ZTdkMjE0MDdlZGJkYWNmNjc0NTkxZmYuLmFhZTkxZWM4YTBjMzdiMzY1ZDY4MTFjOTllYTJlZGVl
ODhmOTZhNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3NwaS9jZi9DRkJ1bmRsZVNQSS5o
CisrKyBiL1NvdXJjZS9XVEYvd3RmL3NwaS9jZi9DRkJ1bmRsZVNQSS5oCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzQsMTEgKzM0LDEz
IEBACiAjaW5jbHVkZSA8d3RmL3NwaS9kYXJ3aW4vWFBDU1BJLmg+CiAjZW5kaWYKIAotZXh0ZXJu
ICJDIiB7CitXVEZfRVhURVJOX0NfQkVHSU4KKwogdm9pZCBfQ0ZCdW5kbGVTZXR1cFhQQ0Jvb3Rz
dHJhcCh4cGNfb2JqZWN0X3QgYm9vdHN0cmFwKTsKIAogQm9vbGVhbiBDRkJ1bmRsZUdldExvY2Fs
aXphdGlvbkluZm9Gb3JMb2NhbGl6YXRpb24oQ0ZTdHJpbmdSZWYgbG9jYWxpemF0aW9uTmFtZSwg
U0ludDMyICpsYW5ndWFnZUNvZGUsIFNJbnQzMiAqcmVnaW9uQ29kZSwgU0ludDMyICpzY3JpcHRD
b2RlLCBDRlN0cmluZ0VuY29kaW5nICpzdHJpbmdFbmNvZGluZyk7CiBDRlN0cmluZ1JlZiBDRkJ1
bmRsZUNvcHlMb2NhbGl6YXRpb25Gb3JMb2NhbGl6YXRpb25JbmZvKFNJbnQzMiBsYW5ndWFnZUNv
ZGUsIFNJbnQzMiByZWdpb25Db2RlLCBTSW50MzIgc2NyaXB0Q29kZSwgQ0ZTdHJpbmdFbmNvZGlu
ZyBzdHJpbmdFbmNvZGluZyk7Ci19CisKK1dURl9FWFRFUk5fQ19FTkQKIAogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9zcGkvY29jb2EvTlNNYXBUYWJsZVNQSS5oIGIvU291cmNl
L1dURi93dGYvc3BpL2NvY29hL05TTWFwVGFibGVTUEkuaAppbmRleCBlYmIwMDE0NWY1YzIxMTU2
ODNiMjRhMjk3YWY0Yjg1ZGVmYTBhYTNiLi5lN2MxYTE0Nzk4ZTE2ZjQ4NTlhNjRjMGRkNjU4Njdk
ZWRhN2RjNjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9zcGkvY29jb2EvTlNNYXBUYWJs
ZVNQSS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3NwaS9jb2NvYS9OU01hcFRhYmxlU1BJLmgKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjks
NiArMjksMTAgQEAKICNpbXBvcnQgPEZvdW5kYXRpb24vTlNNYXBUYWJsZVByaXYuaD4KICNlbmRp
ZgogCi1FWFRFUk5fQyB2b2lkICpOU01hcEdldChOU01hcFRhYmxlICosIGNvbnN0IHZvaWQgKmtl
eSk7Ci1FWFRFUk5fQyB2b2lkIE5TTWFwSW5zZXJ0KE5TTWFwVGFibGUgKiwgY29uc3Qgdm9pZCAq
a2V5LCBjb25zdCB2b2lkICp2YWx1ZSk7Ci1FWFRFUk5fQyB2b2lkIE5TTWFwUmVtb3ZlKE5TTWFw
VGFibGUgKiwgY29uc3Qgdm9pZCAqa2V5KTsKK1dURl9FWFRFUk5fQ19CRUdJTgorCit2b2lkICpO
U01hcEdldChOU01hcFRhYmxlICosIGNvbnN0IHZvaWQgKmtleSk7Cit2b2lkIE5TTWFwSW5zZXJ0
KE5TTWFwVGFibGUgKiwgY29uc3Qgdm9pZCAqa2V5LCBjb25zdCB2b2lkICp2YWx1ZSk7Cit2b2lk
IE5TTWFwUmVtb3ZlKE5TTWFwVGFibGUgKiwgY29uc3Qgdm9pZCAqa2V5KTsKKworV1RGX0VYVEVS
Tl9DX0VORApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvc3BpL2NvY29hL1NlY3VyaXR5U1BJ
LmggYi9Tb3VyY2UvV1RGL3d0Zi9zcGkvY29jb2EvU2VjdXJpdHlTUEkuaAppbmRleCAyZWRmYzNm
MDk4MGY2YWVhMTExYjUxYTdmOTU5NjJjMTE2MzdlOGY0Li5jYTViZjEyMmYyNGY0NGU1ZTIyMzdk
YWE5ZDFiYjFhMmIzMjM2Mzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9zcGkvY29jb2Ev
U2VjdXJpdHlTUEkuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9zcGkvY29jb2EvU2VjdXJpdHlTUEku
aApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC01MSwxOCArNTEsMjUgQEAgZW51bSB7CiAgICAga1NlY1NpZ25hdHVyZUhhc2hBbGdvcml0aG1T
SEE1MTIgPSA4CiB9OwogCi1FWFRFUk5fQyBTZWNTaWduYXR1cmVIYXNoQWxnb3JpdGhtIFNlY0Nl
cnRpZmljYXRlR2V0U2lnbmF0dXJlSGFzaEFsZ29yaXRobShTZWNDZXJ0aWZpY2F0ZVJlZik7CitX
VEZfRVhURVJOX0NfQkVHSU4KKworU2VjU2lnbmF0dXJlSGFzaEFsZ29yaXRobSBTZWNDZXJ0aWZp
Y2F0ZUdldFNpZ25hdHVyZUhhc2hBbGdvcml0aG0oU2VjQ2VydGlmaWNhdGVSZWYpOworCitXVEZf
RVhURVJOX0NfRU5ECiAjZW5kaWYKIAogI2VuZGlmCiAKIHR5cGVkZWYgc3RydWN0IF9fU2VjVGFz
ayAqU2VjVGFza1JlZjsKLUVYVEVSTl9DIFNlY1Rhc2tSZWYgU2VjVGFza0NyZWF0ZVdpdGhBdWRp
dFRva2VuKENGQWxsb2NhdG9yUmVmLCBhdWRpdF90b2tlbl90KTsKLUVYVEVSTl9DIFNlY1Rhc2tS
ZWYgU2VjVGFza0NyZWF0ZUZyb21TZWxmKENGQWxsb2NhdG9yUmVmKTsKLUVYVEVSTl9DIENGVHlw
ZVJlZiBTZWNUYXNrQ29weVZhbHVlRm9yRW50aXRsZW1lbnQoU2VjVGFza1JlZiwgQ0ZTdHJpbmdS
ZWYgZW50aXRsZW1lbnQsIENGRXJyb3JSZWYgKik7CisKK1dURl9FWFRFUk5fQ19CRUdJTgorCitT
ZWNUYXNrUmVmIFNlY1Rhc2tDcmVhdGVXaXRoQXVkaXRUb2tlbihDRkFsbG9jYXRvclJlZiwgYXVk
aXRfdG9rZW5fdCk7CitTZWNUYXNrUmVmIFNlY1Rhc2tDcmVhdGVGcm9tU2VsZihDRkFsbG9jYXRv
clJlZik7CitDRlR5cGVSZWYgU2VjVGFza0NvcHlWYWx1ZUZvckVudGl0bGVtZW50KFNlY1Rhc2tS
ZWYsIENGU3RyaW5nUmVmIGVudGl0bGVtZW50LCBDRkVycm9yUmVmICopOwogCiAjaWYgUExBVEZP
Uk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTIwMAotRVhU
RVJOX0MgQ0ZTdHJpbmdSZWYgU2VjVGFza0NvcHlTaWduaW5nSWRlbnRpZmllcihTZWNUYXNrUmVm
LCBDRkVycm9yUmVmICopOworQ0ZTdHJpbmdSZWYgU2VjVGFza0NvcHlTaWduaW5nSWRlbnRpZmll
cihTZWNUYXNrUmVmLCBDRkVycm9yUmVmICopOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShNQUMp
CkBAIC03Miw2ICs3OSw4IEBAIGV4dGVybiBjb25zdCBTZWNBc24xVGVtcGxhdGUga1NlY0FzbjFT
dWJqZWN0UHVibGljS2V5SW5mb1RlbXBsYXRlW107CiAjZW5kaWYKIAogI2lmIEhBVkUoU0VDX1RS
VVNUX1NFUklBTElaQVRJT04pCi1FWFRFUk5fQyBDRl9SRVRVUk5TX1JFVEFJTkVEIENGRGF0YVJl
ZiBTZWNUcnVzdFNlcmlhbGl6ZShTZWNUcnVzdFJlZiwgQ0ZFcnJvclJlZiAqKTsKLUVYVEVSTl9D
IENGX1JFVFVSTlNfUkVUQUlORUQgU2VjVHJ1c3RSZWYgU2VjVHJ1c3REZXNlcmlhbGl6ZShDRkRh
dGFSZWYgc2VyaWFsaXplZFRydXN0LCBDRkVycm9yUmVmICopOworQ0ZfUkVUVVJOU19SRVRBSU5F
RCBDRkRhdGFSZWYgU2VjVHJ1c3RTZXJpYWxpemUoU2VjVHJ1c3RSZWYsIENGRXJyb3JSZWYgKik7
CitDRl9SRVRVUk5TX1JFVEFJTkVEIFNlY1RydXN0UmVmIFNlY1RydXN0RGVzZXJpYWxpemUoQ0ZE
YXRhUmVmIHNlcmlhbGl6ZWRUcnVzdCwgQ0ZFcnJvclJlZiAqKTsKICNlbmRpZgorCitXVEZfRVhU
RVJOX0NfRU5ECmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9zcGkvZGFyd2luL0NvbW1vbkNy
eXB0b1NQSS5oIGIvU291cmNlL1dURi93dGYvc3BpL2Rhcndpbi9Db21tb25DcnlwdG9TUEkuaApp
bmRleCAzMjVjYmU4MWJmMjIzZDg3ODllN2I5MmRiYTBlYTYxZTljMzIyZDcwLi5mNzliZmY5NmY5
MzhjNGE5M2I1NWFjNzZmMWM2YzRhOGFhNGFhYjRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0
Zi9zcGkvZGFyd2luL0NvbW1vbkNyeXB0b1NQSS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3NwaS9k
YXJ3aW4vQ29tbW9uQ3J5cHRvU1BJLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzMsOCArMzMsMTMgQEAKICNlbmRpZgogCiB0eXBlZGVm
IHN0cnVjdCBfX0NDUmFuZG9tKiBDQ1JhbmRvbVJlZjsKKworV1RGX0VYVEVSTl9DX0JFR0lOCisK
IGV4dGVybiBjb25zdCBDQ1JhbmRvbVJlZiBrQ0NSYW5kb21EZWZhdWx0OwotZXh0ZXJuICJDIiBp
bnQgQ0NSYW5kb21Db3B5Qnl0ZXMoQ0NSYW5kb21SZWYgcm5kLCB2b2lkICpieXRlcywgc2l6ZV90
IGNvdW50KTsKK2ludCBDQ1JhbmRvbUNvcHlCeXRlcyhDQ1JhbmRvbVJlZiBybmQsIHZvaWQgKmJ5
dGVzLCBzaXplX3QgY291bnQpOworCitXVEZfRVhURVJOX0NfRU5ECiAKICNlbmRpZiAvLyBPUyhE
QVJXSU4pCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3NwaS9kYXJ3aW4vU2FuZGJveFNQ
SS5oIGIvU291cmNlL1dURi93dGYvc3BpL2Rhcndpbi9TYW5kYm94U1BJLmgKaW5kZXggOTQzODQ5
ZDhjYmQ4ZjU4Zjk1NTMzZDg2ZDNjNTNlM2Q2NTFmMDQ5Ny4uNTBlNjgxNGFjNGZkMTBlNjY5Y2Ew
ZDU0OTY5MGMwYjU3OTMwZjgyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvc3BpL2Rhcndp
bi9TYW5kYm94U1BJLmgKKysrIGIvU291cmNlL1dURi93dGYvc3BpL2Rhcndpbi9TYW5kYm94U1BJ
LmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtNDEsMTAgKzQxLDE0IEBAIGVudW0gc2FuZGJveF9maWx0ZXJfdHlwZSB7CiAjZGVmaW5lIFNB
TkRCT1hfTkFNRURfRVhURVJOQUwgMHgwMDAzCiAjZW5kaWYKIAotRVhURVJOX0MgY29uc3QgZW51
bSBzYW5kYm94X2ZpbHRlcl90eXBlIFNBTkRCT1hfQ0hFQ0tfTk9fUkVQT1JUOwotRVhURVJOX0Mg
aW50IHNhbmRib3hfY2hlY2socGlkX3QsIGNvbnN0IGNoYXIgKm9wZXJhdGlvbiwgZW51bSBzYW5k
Ym94X2ZpbHRlcl90eXBlLCAuLi4pOwotRVhURVJOX0MgaW50IHNhbmRib3hfY29udGFpbmVyX3Bh
dGhfZm9yX3BpZChwaWRfdCwgY2hhciAqYnVmZmVyLCBzaXplX3QgYnVmc2l6ZSk7Ci1FWFRFUk5f
QyBpbnQgc2FuZGJveF9pbml0X3dpdGhfcGFyYW1ldGVycyhjb25zdCBjaGFyICpwcm9maWxlLCB1
aW50NjRfdCBmbGFncywgY29uc3QgY2hhciAqY29uc3QgcGFyYW1ldGVyc1tdLCBjaGFyICoqZXJy
b3JidWYpOworV1RGX0VYVEVSTl9DX0JFR0lOCisKK2V4dGVybiBjb25zdCBlbnVtIHNhbmRib3hf
ZmlsdGVyX3R5cGUgU0FOREJPWF9DSEVDS19OT19SRVBPUlQ7CitpbnQgc2FuZGJveF9jaGVjayhw
aWRfdCwgY29uc3QgY2hhciAqb3BlcmF0aW9uLCBlbnVtIHNhbmRib3hfZmlsdGVyX3R5cGUsIC4u
Lik7CitpbnQgc2FuZGJveF9jb250YWluZXJfcGF0aF9mb3JfcGlkKHBpZF90LCBjaGFyICpidWZm
ZXIsIHNpemVfdCBidWZzaXplKTsKK2ludCBzYW5kYm94X2luaXRfd2l0aF9wYXJhbWV0ZXJzKGNv
bnN0IGNoYXIgKnByb2ZpbGUsIHVpbnQ2NF90IGZsYWdzLCBjb25zdCBjaGFyICpjb25zdCBwYXJh
bWV0ZXJzW10sIGNoYXIgKiplcnJvcmJ1Zik7CisKK1dURl9FWFRFUk5fQ19FTkQKIAogI2VuZGlm
IC8vIE9TKERBUldJTikKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvc3BpL2Rhcndpbi9Y
UENTUEkuaCBiL1NvdXJjZS9XVEYvd3RmL3NwaS9kYXJ3aW4vWFBDU1BJLmgKaW5kZXggYTExYjJl
ZTAxYmU0NzNhNzAwODllM2M2M2JkNjkyYzU0ZWNhZGJjZi4uZWQ2ZTY5ZDM0YTBhY2QyMmIwNDVm
NTNmN2IwZGQ5YjRmMDViZjk5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvc3BpL2Rhcndp
bi9YUENTUEkuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9zcGkvZGFyd2luL1hQQ1NQSS5oCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTc5LDcx
ICs3OSw3MyBAQCB0eXBlZGVmIHZvaWQgKCp4cGNfY29ubmVjdGlvbl9oYW5kbGVyX3QpKHhwY19j
b25uZWN0aW9uX3QgY29ubmVjdGlvbik7CiAjaW5jbHVkZSA8eHBjL3ByaXZhdGUuaD4KICNlbmRp
ZgogCi1FWFRFUk5fQyBjb25zdCBzdHJ1Y3QgX3hwY19kaWN0aW9uYXJ5X3MgX3hwY19lcnJvcl9j
b25uZWN0aW9uX2ludmFsaWQ7Ci1FWFRFUk5fQyBjb25zdCBzdHJ1Y3QgX3hwY19kaWN0aW9uYXJ5
X3MgX3hwY19lcnJvcl90ZXJtaW5hdGlvbl9pbW1pbmVudDsKK1dURl9FWFRFUk5fQ19CRUdJTgog
Ci1FWFRFUk5fQyBjb25zdCBzdHJ1Y3QgX3hwY190eXBlX3MgX3hwY190eXBlX2FycmF5OwotRVhU
RVJOX0MgY29uc3Qgc3RydWN0IF94cGNfdHlwZV9zIF94cGNfdHlwZV9ib29sOwotRVhURVJOX0Mg
Y29uc3Qgc3RydWN0IF94cGNfdHlwZV9zIF94cGNfdHlwZV9kaWN0aW9uYXJ5OwotRVhURVJOX0Mg
Y29uc3Qgc3RydWN0IF94cGNfdHlwZV9zIF94cGNfdHlwZV9lcnJvcjsKLUVYVEVSTl9DIGNvbnN0
IHN0cnVjdCBfeHBjX3R5cGVfcyBfeHBjX3R5cGVfc3RyaW5nOworZXh0ZXJuIGNvbnN0IHN0cnVj
dCBfeHBjX2RpY3Rpb25hcnlfcyBfeHBjX2Vycm9yX2Nvbm5lY3Rpb25faW52YWxpZDsKK2V4dGVy
biBjb25zdCBzdHJ1Y3QgX3hwY19kaWN0aW9uYXJ5X3MgX3hwY19lcnJvcl90ZXJtaW5hdGlvbl9p
bW1pbmVudDsKIAotRVhURVJOX0MgeHBjX29iamVjdF90IHhwY19hcnJheV9jcmVhdGUoY29uc3Qg
eHBjX29iamVjdF90Kiwgc2l6ZV90IGNvdW50KTsKK2V4dGVybiBjb25zdCBzdHJ1Y3QgX3hwY190
eXBlX3MgX3hwY190eXBlX2FycmF5OworZXh0ZXJuIGNvbnN0IHN0cnVjdCBfeHBjX3R5cGVfcyBf
eHBjX3R5cGVfYm9vbDsKK2V4dGVybiBjb25zdCBzdHJ1Y3QgX3hwY190eXBlX3MgX3hwY190eXBl
X2RpY3Rpb25hcnk7CitleHRlcm4gY29uc3Qgc3RydWN0IF94cGNfdHlwZV9zIF94cGNfdHlwZV9l
cnJvcjsKK2V4dGVybiBjb25zdCBzdHJ1Y3QgX3hwY190eXBlX3MgX3hwY190eXBlX3N0cmluZzsK
KworeHBjX29iamVjdF90IHhwY19hcnJheV9jcmVhdGUoY29uc3QgeHBjX29iamVjdF90Kiwgc2l6
ZV90IGNvdW50KTsKICNpZiBDT01QSUxFUl9TVVBQT1JUUyhCTE9DS1MpCi1FWFRFUk5fQyBib29s
IHhwY19hcnJheV9hcHBseSh4cGNfb2JqZWN0X3QsIHhwY19hcnJheV9hcHBsaWVyX3QpOwotRVhU
RVJOX0MgYm9vbCB4cGNfZGljdGlvbmFyeV9hcHBseSh4cGNfb2JqZWN0X3QgeGRpY3QsIHhwY19k
aWN0aW9uYXJ5X2FwcGxpZXJfdCBhcHBsaWVyKTsKK2Jvb2wgeHBjX2FycmF5X2FwcGx5KHhwY19v
YmplY3RfdCwgeHBjX2FycmF5X2FwcGxpZXJfdCk7Citib29sIHhwY19kaWN0aW9uYXJ5X2FwcGx5
KHhwY19vYmplY3RfdCB4ZGljdCwgeHBjX2RpY3Rpb25hcnlfYXBwbGllcl90IGFwcGxpZXIpOwog
I2VuZGlmCi1FWFRFUk5fQyBzaXplX3QgeHBjX2FycmF5X2dldF9jb3VudCh4cGNfb2JqZWN0X3Qp
OwotRVhURVJOX0MgY29uc3QgY2hhciogeHBjX2FycmF5X2dldF9zdHJpbmcoeHBjX29iamVjdF90
LCBzaXplX3QgaW5kZXgpOwotRVhURVJOX0Mgdm9pZCB4cGNfYXJyYXlfc2V0X3N0cmluZyh4cGNf
b2JqZWN0X3QsIHNpemVfdCBpbmRleCwgY29uc3QgY2hhciogc3RyaW5nKTsKLUVYVEVSTl9DIGJv
b2wgeHBjX2Jvb2xfZ2V0X3ZhbHVlKHhwY19vYmplY3RfdCk7Ci1FWFRFUk5fQyB2b2lkIHhwY19j
b25uZWN0aW9uX2NhbmNlbCh4cGNfY29ubmVjdGlvbl90KTsKLUVYVEVSTl9DIHhwY19jb25uZWN0
aW9uX3QgeHBjX2Nvbm5lY3Rpb25fY3JlYXRlKGNvbnN0IGNoYXIqIG5hbWUsIGRpc3BhdGNoX3F1
ZXVlX3QpOwotRVhURVJOX0MgeHBjX2Nvbm5lY3Rpb25fdCB4cGNfY29ubmVjdGlvbl9jcmVhdGVf
bWFjaF9zZXJ2aWNlKGNvbnN0IGNoYXIqIG5hbWUsIGRpc3BhdGNoX3F1ZXVlX3QsIHVpbnQ2NF90
IGZsYWdzKTsKLUVYVEVSTl9DIHBpZF90IHhwY19jb25uZWN0aW9uX2dldF9waWQoeHBjX2Nvbm5l
Y3Rpb25fdCk7Ci1FWFRFUk5fQyB2b2lkIHhwY19jb25uZWN0aW9uX3Jlc3VtZSh4cGNfY29ubmVj
dGlvbl90KTsKLUVYVEVSTl9DIHZvaWQgeHBjX2Nvbm5lY3Rpb25fc2VuZF9tZXNzYWdlKHhwY19j
b25uZWN0aW9uX3QsIHhwY19vYmplY3RfdCk7Ci1FWFRFUk5fQyB2b2lkIHhwY19jb25uZWN0aW9u
X3NlbmRfbWVzc2FnZV93aXRoX3JlcGx5KHhwY19jb25uZWN0aW9uX3QsIHhwY19vYmplY3RfdCwg
ZGlzcGF0Y2hfcXVldWVfdCwgeHBjX2hhbmRsZXJfdCk7Ci1FWFRFUk5fQyB2b2lkIHhwY19jb25u
ZWN0aW9uX3NldF9ldmVudF9oYW5kbGVyKHhwY19jb25uZWN0aW9uX3QsIHhwY19oYW5kbGVyX3Qp
OwotRVhURVJOX0Mgdm9pZCB4cGNfY29ubmVjdGlvbl9zZXRfdGFyZ2V0X3F1ZXVlKHhwY19jb25u
ZWN0aW9uX3QsIGRpc3BhdGNoX3F1ZXVlX3QpOwotRVhURVJOX0MgeHBjX29iamVjdF90IHhwY19k
aWN0aW9uYXJ5X2NyZWF0ZShjb25zdCBjaGFyKiAgY29uc3QqIGtleXMsIGNvbnN0IHhwY19vYmpl
Y3RfdCosIHNpemVfdCBjb3VudCk7Ci1FWFRFUk5fQyB4cGNfb2JqZWN0X3QgeHBjX2RpY3Rpb25h
cnlfY3JlYXRlX3JlcGx5KHhwY19vYmplY3RfdCk7Ci1FWFRFUk5fQyBpbnQgeHBjX2RpY3Rpb25h
cnlfZHVwX2ZkKHhwY19vYmplY3RfdCwgY29uc3QgY2hhcioga2V5KTsKLUVYVEVSTl9DIHhwY19j
b25uZWN0aW9uX3QgeHBjX2RpY3Rpb25hcnlfZ2V0X3JlbW90ZV9jb25uZWN0aW9uKHhwY19vYmpl
Y3RfdCk7Ci1FWFRFUk5fQyBib29sIHhwY19kaWN0aW9uYXJ5X2dldF9ib29sKHhwY19vYmplY3Rf
dCwgY29uc3QgY2hhcioga2V5KTsKLUVYVEVSTl9DIGNvbnN0IGNoYXIqIHhwY19kaWN0aW9uYXJ5
X2dldF9zdHJpbmcoeHBjX29iamVjdF90LCBjb25zdCBjaGFyKiBrZXkpOwotRVhURVJOX0MgdWlu
dDY0X3QgeHBjX2RpY3Rpb25hcnlfZ2V0X3VpbnQ2NCh4cGNfb2JqZWN0X3QsIGNvbnN0IGNoYXIq
IGtleSk7Ci1FWFRFUk5fQyB4cGNfb2JqZWN0X3QgeHBjX2RpY3Rpb25hcnlfZ2V0X3ZhbHVlKHhw
Y19vYmplY3RfdCwgY29uc3QgY2hhcioga2V5KTsKLUVYVEVSTl9DIHZvaWQgeHBjX2RpY3Rpb25h
cnlfc2V0X2Jvb2woeHBjX29iamVjdF90LCBjb25zdCBjaGFyKiBrZXksIGJvb2wgdmFsdWUpOwot
RVhURVJOX0Mgdm9pZCB4cGNfZGljdGlvbmFyeV9zZXRfZmQoeHBjX29iamVjdF90LCBjb25zdCBj
aGFyKiBrZXksIGludCBmZCk7Ci1FWFRFUk5fQyB2b2lkIHhwY19kaWN0aW9uYXJ5X3NldF9zdHJp
bmcoeHBjX29iamVjdF90LCBjb25zdCBjaGFyKiBrZXksIGNvbnN0IGNoYXIqIHN0cmluZyk7Ci1F
WFRFUk5fQyB2b2lkIHhwY19kaWN0aW9uYXJ5X3NldF91aW50NjQoeHBjX29iamVjdF90LCBjb25z
dCBjaGFyKiBrZXksIHVpbnQ2NF90IHZhbHVlKTsKLUVYVEVSTl9DIHZvaWQgeHBjX2RpY3Rpb25h
cnlfc2V0X3ZhbHVlKHhwY19vYmplY3RfdCwgY29uc3QgY2hhciprZXksIHhwY19vYmplY3RfdCB2
YWx1ZSk7Ci1FWFRFUk5fQyB4cGNfdHlwZV90IHhwY19nZXRfdHlwZSh4cGNfb2JqZWN0X3QpOwot
RVhURVJOX0Mgdm9pZCB4cGNfbWFpbih4cGNfY29ubmVjdGlvbl9oYW5kbGVyX3QpOwotRVhURVJO
X0MgY29uc3QgY2hhciogeHBjX3N0cmluZ19nZXRfc3RyaW5nX3B0cih4cGNfb2JqZWN0X3QpOwot
RVhURVJOX0Mgdm9pZCB4cGNfdHJhbnNhY3Rpb25fYmVnaW4odm9pZCk7Ci1FWFRFUk5fQyB2b2lk
IHhwY190cmFuc2FjdGlvbl9lbmQodm9pZCk7Ci1FWFRFUk5fQyB2b2lkIHhwY190cmFuc2FjdGlv
bl9leGl0X2NsZWFuKHZvaWQpOwotRVhURVJOX0Mgdm9pZCB4cGNfdHJhY2tfYWN0aXZpdHkodm9p
ZCk7Ci0KLUVYVEVSTl9DIHhwY19vYmplY3RfdCB4cGNfY29ubmVjdGlvbl9jb3B5X2VudGl0bGVt
ZW50X3ZhbHVlKHhwY19jb25uZWN0aW9uX3QsIGNvbnN0IGNoYXIqIGVudGl0bGVtZW50KTsKLUVY
VEVSTl9DIHZvaWQgeHBjX2Nvbm5lY3Rpb25fZ2V0X2F1ZGl0X3Rva2VuKHhwY19jb25uZWN0aW9u
X3QsIGF1ZGl0X3Rva2VuX3QqKTsKLUVYVEVSTl9DIHZvaWQgeHBjX2Nvbm5lY3Rpb25fa2lsbCh4
cGNfY29ubmVjdGlvbl90LCBpbnQpOwotRVhURVJOX0Mgdm9pZCB4cGNfY29ubmVjdGlvbl9zZXRf
aW5zdGFuY2UoeHBjX2Nvbm5lY3Rpb25fdCwgdXVpZF90KTsKLUVYVEVSTl9DIG1hY2hfcG9ydF90
IHhwY19kaWN0aW9uYXJ5X2NvcHlfbWFjaF9zZW5kKHhwY19vYmplY3RfdCwgY29uc3QgY2hhciop
OwotRVhURVJOX0Mgdm9pZCB4cGNfZGljdGlvbmFyeV9zZXRfbWFjaF9zZW5kKHhwY19vYmplY3Rf
dCwgY29uc3QgY2hhciosIG1hY2hfcG9ydF90KTsKLQotRVhURVJOX0Mgdm9pZCB4cGNfY29ubmVj
dGlvbl9zZXRfYm9vdHN0cmFwKHhwY19jb25uZWN0aW9uX3QsIHhwY19vYmplY3RfdCBib290c3Ry
YXApOwotRVhURVJOX0MgeHBjX29iamVjdF90IHhwY19jb3B5X2Jvb3RzdHJhcCh2b2lkKTsKLUVY
VEVSTl9DIHZvaWQgeHBjX2Nvbm5lY3Rpb25fc2V0X29uZXNob3RfaW5zdGFuY2UoeHBjX2Nvbm5l
Y3Rpb25fdCwgdXVpZF90IGluc3RhbmNlKTsKK3NpemVfdCB4cGNfYXJyYXlfZ2V0X2NvdW50KHhw
Y19vYmplY3RfdCk7Citjb25zdCBjaGFyKiB4cGNfYXJyYXlfZ2V0X3N0cmluZyh4cGNfb2JqZWN0
X3QsIHNpemVfdCBpbmRleCk7Cit2b2lkIHhwY19hcnJheV9zZXRfc3RyaW5nKHhwY19vYmplY3Rf
dCwgc2l6ZV90IGluZGV4LCBjb25zdCBjaGFyKiBzdHJpbmcpOworYm9vbCB4cGNfYm9vbF9nZXRf
dmFsdWUoeHBjX29iamVjdF90KTsKK3ZvaWQgeHBjX2Nvbm5lY3Rpb25fY2FuY2VsKHhwY19jb25u
ZWN0aW9uX3QpOworeHBjX2Nvbm5lY3Rpb25fdCB4cGNfY29ubmVjdGlvbl9jcmVhdGUoY29uc3Qg
Y2hhciogbmFtZSwgZGlzcGF0Y2hfcXVldWVfdCk7Cit4cGNfY29ubmVjdGlvbl90IHhwY19jb25u
ZWN0aW9uX2NyZWF0ZV9tYWNoX3NlcnZpY2UoY29uc3QgY2hhciogbmFtZSwgZGlzcGF0Y2hfcXVl
dWVfdCwgdWludDY0X3QgZmxhZ3MpOworcGlkX3QgeHBjX2Nvbm5lY3Rpb25fZ2V0X3BpZCh4cGNf
Y29ubmVjdGlvbl90KTsKK3ZvaWQgeHBjX2Nvbm5lY3Rpb25fcmVzdW1lKHhwY19jb25uZWN0aW9u
X3QpOwordm9pZCB4cGNfY29ubmVjdGlvbl9zZW5kX21lc3NhZ2UoeHBjX2Nvbm5lY3Rpb25fdCwg
eHBjX29iamVjdF90KTsKK3ZvaWQgeHBjX2Nvbm5lY3Rpb25fc2VuZF9tZXNzYWdlX3dpdGhfcmVw
bHkoeHBjX2Nvbm5lY3Rpb25fdCwgeHBjX29iamVjdF90LCBkaXNwYXRjaF9xdWV1ZV90LCB4cGNf
aGFuZGxlcl90KTsKK3ZvaWQgeHBjX2Nvbm5lY3Rpb25fc2V0X2V2ZW50X2hhbmRsZXIoeHBjX2Nv
bm5lY3Rpb25fdCwgeHBjX2hhbmRsZXJfdCk7Cit2b2lkIHhwY19jb25uZWN0aW9uX3NldF90YXJn
ZXRfcXVldWUoeHBjX2Nvbm5lY3Rpb25fdCwgZGlzcGF0Y2hfcXVldWVfdCk7Cit4cGNfb2JqZWN0
X3QgeHBjX2RpY3Rpb25hcnlfY3JlYXRlKGNvbnN0IGNoYXIqICBjb25zdCoga2V5cywgY29uc3Qg
eHBjX29iamVjdF90Kiwgc2l6ZV90IGNvdW50KTsKK3hwY19vYmplY3RfdCB4cGNfZGljdGlvbmFy
eV9jcmVhdGVfcmVwbHkoeHBjX29iamVjdF90KTsKK2ludCB4cGNfZGljdGlvbmFyeV9kdXBfZmQo
eHBjX29iamVjdF90LCBjb25zdCBjaGFyKiBrZXkpOworeHBjX2Nvbm5lY3Rpb25fdCB4cGNfZGlj
dGlvbmFyeV9nZXRfcmVtb3RlX2Nvbm5lY3Rpb24oeHBjX29iamVjdF90KTsKK2Jvb2wgeHBjX2Rp
Y3Rpb25hcnlfZ2V0X2Jvb2woeHBjX29iamVjdF90LCBjb25zdCBjaGFyKiBrZXkpOworY29uc3Qg
Y2hhciogeHBjX2RpY3Rpb25hcnlfZ2V0X3N0cmluZyh4cGNfb2JqZWN0X3QsIGNvbnN0IGNoYXIq
IGtleSk7Cit1aW50NjRfdCB4cGNfZGljdGlvbmFyeV9nZXRfdWludDY0KHhwY19vYmplY3RfdCwg
Y29uc3QgY2hhcioga2V5KTsKK3hwY19vYmplY3RfdCB4cGNfZGljdGlvbmFyeV9nZXRfdmFsdWUo
eHBjX29iamVjdF90LCBjb25zdCBjaGFyKiBrZXkpOwordm9pZCB4cGNfZGljdGlvbmFyeV9zZXRf
Ym9vbCh4cGNfb2JqZWN0X3QsIGNvbnN0IGNoYXIqIGtleSwgYm9vbCB2YWx1ZSk7Cit2b2lkIHhw
Y19kaWN0aW9uYXJ5X3NldF9mZCh4cGNfb2JqZWN0X3QsIGNvbnN0IGNoYXIqIGtleSwgaW50IGZk
KTsKK3ZvaWQgeHBjX2RpY3Rpb25hcnlfc2V0X3N0cmluZyh4cGNfb2JqZWN0X3QsIGNvbnN0IGNo
YXIqIGtleSwgY29uc3QgY2hhciogc3RyaW5nKTsKK3ZvaWQgeHBjX2RpY3Rpb25hcnlfc2V0X3Vp
bnQ2NCh4cGNfb2JqZWN0X3QsIGNvbnN0IGNoYXIqIGtleSwgdWludDY0X3QgdmFsdWUpOwordm9p
ZCB4cGNfZGljdGlvbmFyeV9zZXRfdmFsdWUoeHBjX29iamVjdF90LCBjb25zdCBjaGFyKmtleSwg
eHBjX29iamVjdF90IHZhbHVlKTsKK3hwY190eXBlX3QgeHBjX2dldF90eXBlKHhwY19vYmplY3Rf
dCk7Cit2b2lkIHhwY19tYWluKHhwY19jb25uZWN0aW9uX2hhbmRsZXJfdCk7Citjb25zdCBjaGFy
KiB4cGNfc3RyaW5nX2dldF9zdHJpbmdfcHRyKHhwY19vYmplY3RfdCk7Cit2b2lkIHhwY190cmFu
c2FjdGlvbl9iZWdpbih2b2lkKTsKK3ZvaWQgeHBjX3RyYW5zYWN0aW9uX2VuZCh2b2lkKTsKK3Zv
aWQgeHBjX3RyYW5zYWN0aW9uX2V4aXRfY2xlYW4odm9pZCk7Cit2b2lkIHhwY190cmFja19hY3Rp
dml0eSh2b2lkKTsKKworeHBjX29iamVjdF90IHhwY19jb25uZWN0aW9uX2NvcHlfZW50aXRsZW1l
bnRfdmFsdWUoeHBjX2Nvbm5lY3Rpb25fdCwgY29uc3QgY2hhciogZW50aXRsZW1lbnQpOwordm9p
ZCB4cGNfY29ubmVjdGlvbl9nZXRfYXVkaXRfdG9rZW4oeHBjX2Nvbm5lY3Rpb25fdCwgYXVkaXRf
dG9rZW5fdCopOwordm9pZCB4cGNfY29ubmVjdGlvbl9raWxsKHhwY19jb25uZWN0aW9uX3QsIGlu
dCk7Cit2b2lkIHhwY19jb25uZWN0aW9uX3NldF9pbnN0YW5jZSh4cGNfY29ubmVjdGlvbl90LCB1
dWlkX3QpOworbWFjaF9wb3J0X3QgeHBjX2RpY3Rpb25hcnlfY29weV9tYWNoX3NlbmQoeHBjX29i
amVjdF90LCBjb25zdCBjaGFyKik7Cit2b2lkIHhwY19kaWN0aW9uYXJ5X3NldF9tYWNoX3NlbmQo
eHBjX29iamVjdF90LCBjb25zdCBjaGFyKiwgbWFjaF9wb3J0X3QpOworCit2b2lkIHhwY19jb25u
ZWN0aW9uX3NldF9ib290c3RyYXAoeHBjX2Nvbm5lY3Rpb25fdCwgeHBjX29iamVjdF90IGJvb3Rz
dHJhcCk7Cit4cGNfb2JqZWN0X3QgeHBjX2NvcHlfYm9vdHN0cmFwKHZvaWQpOwordm9pZCB4cGNf
Y29ubmVjdGlvbl9zZXRfb25lc2hvdF9pbnN0YW5jZSh4cGNfY29ubmVjdGlvbl90LCB1dWlkX3Qg
aW5zdGFuY2UpOwogCiAjaWYgT1NfT0JKRUNUX1VTRV9PQkpDX1JFVEFJTl9SRUxFQVNFCiAjaWYg
IWRlZmluZWQoeHBjX3JldGFpbikKICNkZWZpbmUgeHBjX3JldGFpbihvYmplY3QpICh7IHhwY19v
YmplY3RfdCBfbyA9IChvYmplY3QpOyBfeHBjX29iamVjdF92YWxpZGF0ZShfbyk7IFtfbyByZXRh
aW5dOyB9KQogI2VuZGlmCiAjZWxzZQotRVhURVJOX0MgeHBjX29iamVjdF90IHhwY19yZXRhaW4o
eHBjX29iamVjdF90KTsKK3hwY19vYmplY3RfdCB4cGNfcmV0YWluKHhwY19vYmplY3RfdCk7CiAj
ZW5kaWYKIAogI2lmIE9TX09CSkVDVF9VU0VfT0JKQ19SRVRBSU5fUkVMRUFTRQpAQCAtMTUxLDcg
KzE1Myw5IEBAIEVYVEVSTl9DIHhwY19vYmplY3RfdCB4cGNfcmV0YWluKHhwY19vYmplY3RfdCk7
CiAjZGVmaW5lIHhwY19yZWxlYXNlKG9iamVjdCkgKHsgeHBjX29iamVjdF90IF9vID0gKG9iamVj
dCk7IF94cGNfb2JqZWN0X3ZhbGlkYXRlKF9vKTsgW19vIHJlbGVhc2VdOyB9KQogI2VuZGlmCiAj
ZWxzZQotRVhURVJOX0Mgdm9pZCB4cGNfcmVsZWFzZSh4cGNfb2JqZWN0X3QpOwordm9pZCB4cGNf
cmVsZWFzZSh4cGNfb2JqZWN0X3QpOwogI2VuZGlmCiAKK1dURl9FWFRFUk5fQ19FTkQKKwogI2Vu
ZGlmIC8vIFhQQ1NQSV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9zcGkvZGFyd2luL2R5
bGRTUEkuaCBiL1NvdXJjZS9XVEYvd3RmL3NwaS9kYXJ3aW4vZHlsZFNQSS5oCmluZGV4IDg4NGI5
MzRjY2EzMjg0NzkxYmE4MmFkNTJiZjA4NGIxYWRkMzdhMGIuLmNjZDQ0MmUzZDc2YzczNDQ5NGE0
OTFlOTgyYmEzNTNlZTY3MzU2YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3NwaS9kYXJ3
aW4vZHlsZFNQSS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3NwaS9kYXJ3aW4vZHlsZFNQSS5oCkBA
IC01MSw0ICs1MSw4IEBACiAKICNlbmRpZgogCi1leHRlcm4gIkMiIHVpbnQzMl90IGR5bGRfZ2V0
X3Byb2dyYW1fc2RrX3ZlcnNpb24oKTsKK1dURl9FWFRFUk5fQkVHSU4KKwordWludDMyX3QgZHls
ZF9nZXRfcHJvZ3JhbV9zZGtfdmVyc2lvbigpOworCitXVEZfRVhURVJOX0VORApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NmL0NGTG9jYWxlU1BJLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9zcGkvY2YvQ0ZMb2NhbGVTUEkuaAppbmRleCAzZDFhMTg1NDIwMWJi
OWExOTViOWE1N2MzNDZkOThkNjk0ZjE2Mjc2Li4xY2Y0MzVlMTg4YzNiMDg5ZmRiNDVhMTc1ZjI1
OGM2NDIxNzIxNzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY2Yv
Q0ZMb2NhbGVTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY2YvQ0ZMb2Nh
bGVTUEkuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUg
SW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE2IEFw
cGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTMyLDEwICszMiwxMiBAQAogI2ltcG9ydCA8Q29yZUZvdW5kYXRpb24vQ0ZQcml2
Lmg+CiAjZW5kaWYKIAotZXh0ZXJuICJDIiB7CitXVEZfRVhURVJOX0NfQkVHSU4KKwogLy8gRklY
TUU6IDxyZGFyOi8vcHJvYmxlbS8xODEyODE5Mj4gTWFrZSBDRkxvY2FsZUdldExhbmd1YWdlUmVn
aW9uRW5jb2RpbmdGb3JMb2NhbGVJZGVudGlmaWVyIHB1YmxpYyBBUEkKIC8vIEZJWE1FOiA8cmRh
cjovL3Byb2JsZW0vMTgwODM4ODA+IFJlcGxhY2UgdXNlIG9mIFNjcmlwdCBNYW5hZ2VyIHRvIGNh
bm9uaWNhbGl6ZSBsb2NhbGVzIHdpdGggYSBjdXN0b20gV2ViLXNwZWNpZmljIHRhYmxlCiBCb29s
ZWFuIENGTG9jYWxlR2V0TGFuZ3VhZ2VSZWdpb25FbmNvZGluZ0ZvckxvY2FsZUlkZW50aWZpZXIo
Q0ZTdHJpbmdSZWYgbG9jYWxlLCBMYW5nQ29kZSosIFJlZ2lvbkNvZGUqLCBTY3JpcHRDb2RlKiwg
Q0ZTdHJpbmdFbmNvZGluZyopOwotfQorCitXVEZfRVhURVJOX0NfRU5ECiAKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NmL0NGTmV0d29ya0Nvbm5lY3Rp
b25DYWNoZVNQSS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NmL0NGTmV0d29ya0Nv
bm5lY3Rpb25DYWNoZVNQSS5oCmluZGV4IGU3MTA0ZTMyYjY1NmE5MmE3NjZkNTMzZWEwMzhjYWNh
ZmJiYjE5YmEuLmFhMDlkOWUxNzQ3MmNkYzVkZDE0YjdkNGI3MmRjNzQ1MmEzMTc0MmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jZi9DRk5ldHdvcmtDb25uZWN0aW9u
Q2FjaGVTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY2YvQ0ZOZXR3b3Jr
Q29ubmVjdGlvbkNhY2hlU1BJLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDE0LTIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDE0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNyw3ICszNywxMSBAQCBlbnVtIEhUVFBDb25uZWN0
aW9uQ2FjaGVMaW1pdEtleXMgewogfTsKICNlbmRpZgogCi1FWFRFUk5fQyBpbnQgX0NGTmV0d29y
a0hUVFBDb25uZWN0aW9uQ2FjaGVHZXRMaW1pdChIVFRQQ29ubmVjdGlvbkNhY2hlTGltaXRLZXlz
KTsKLUVYVEVSTl9DIHZvaWQgX0NGTmV0d29ya0hUVFBDb25uZWN0aW9uQ2FjaGVTZXRMaW1pdChI
VFRQQ29ubmVjdGlvbkNhY2hlTGltaXRLZXlzLCBpbnQpOworV1RGX0VYVEVSTl9DX0JFR0lOCisK
K2ludCBfQ0ZOZXR3b3JrSFRUUENvbm5lY3Rpb25DYWNoZUdldExpbWl0KEhUVFBDb25uZWN0aW9u
Q2FjaGVMaW1pdEtleXMpOwordm9pZCBfQ0ZOZXR3b3JrSFRUUENvbm5lY3Rpb25DYWNoZVNldExp
bWl0KEhUVFBDb25uZWN0aW9uQ2FjaGVMaW1pdEtleXMsIGludCk7CisKK1dURl9FWFRFUk5fQ19F
TkQKIAogI2VuZGlmIC8vIENGTmV0d29ya0Nvbm5lY3Rpb25DYWNoZVNQSV9oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmgKaW5kZXggNWQ4ODM2ZWE5ZGVl
NzRhMGQxOWY3MDdiOTIyN2JmMGEzODQyYTMxOS4uNjA4Nzc0YjE1OWQyZWZjZWNlYTgzMWU5OGE4
ZWFkZGM0OTE2M2RmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2Nm
L0NGTmV0d29ya1NQSS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jZi9DRk5l
dHdvcmtTUEkuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTYg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC00NSwxNyArNDUsNyBAQAogCiAvLyBGSVhNRTogUmVtb3ZlIHRoZSBkZWZpbmVk
KF9fT0JKQ19fKS1ndWFyZCBvbmNlIHdlIGZpeCA8cmRhcjovL3Byb2JsZW0vMTkwMzM2MTA+Lgog
I2lmIGRlZmluZWQoX19PQkpDX18pICYmIFBMQVRGT1JNKENPQ09BKQotLy8gRklYTUU6IEFzIGEg
d29ya2Fyb3VuZCBmb3IgPHJkYXI6Ly9wcm9ibGVtLzE4MzM3MTgyPiwgd2UgY29uZGl0aW9uYWxs
eSBlbmNsb3NlIHRoZSBoZWFkZXIKLS8vIGluIGFuIGV4dGVybiAiQyIgbGlua2FnZSBibG9jayB0
byBtYWtlIGl0IHN1aXRhYmxlIGZvciBDKysgdXNlLgotI2lmZGVmIF9fY3BsdXNwbHVzCi1leHRl
cm4gIkMiIHsKLSNlbmRpZgotCiAjaW1wb3J0IDxDRk5ldHdvcmsvQ0ZOU1VSTENvbm5lY3Rpb24u
aD4KLQotI2lmZGVmIF9fY3BsdXNwbHVzCi19Ci0jZW5kaWYKICNlbmRpZiAvLyBkZWZpbmVkKF9f
T0JKQ19fKSAmJiBQTEFURk9STShDT0NPQSkKIAogI2Vsc2UgLy8gIVBMQVRGT1JNKFdJTikgJiYg
IVVTRShBUFBMRV9JTlRFUk5BTF9TREspCkBAIC0xMzMsNTMgKzEyMyw1NyBAQCB0eXBlZGVmIHZv
aWQgKF5DRkNhY2hlZFVSTFJlc3BvbnNlQ2FsbEJhY2tCbG9jaykoQ0ZDYWNoZWRVUkxSZXNwb25z
ZVJlZik7CiAKICNlbmRpZiAvLyAhUExBVEZPUk0oV0lOKSAmJiAhVVNFKEFQUExFX0lOVEVSTkFM
X1NESykKIAorV1RGX0VYVEVSTl9DX0JFR0lOCisKICNpZiAhUExBVEZPUk0oV0lOKQotRVhURVJO
X0Mgdm9pZCBDRlVSTFJlcXVlc3RTZXRTaG91bGRTdGFydFN5bmNocm9ub3VzbHkoQ0ZVUkxSZXF1
ZXN0UmVmLCBCb29sZWFuKTsKK3ZvaWQgQ0ZVUkxSZXF1ZXN0U2V0U2hvdWxkU3RhcnRTeW5jaHJv
bm91c2x5KENGVVJMUmVxdWVzdFJlZiwgQm9vbGVhbik7CiAKLUVYVEVSTl9DIENGVVJMQ2FjaGVS
ZWYgQ0ZVUkxDYWNoZUNvcHlTaGFyZWRVUkxDYWNoZSgpOwotRVhURVJOX0Mgdm9pZCBDRlVSTENh
Y2hlU2V0TWVtb3J5Q2FwYWNpdHkoQ0ZVUkxDYWNoZVJlZiwgQ0ZJbmRleCBtZW1vcnlDYXBhY2l0
eSk7CitDRlVSTENhY2hlUmVmIENGVVJMQ2FjaGVDb3B5U2hhcmVkVVJMQ2FjaGUoKTsKK3ZvaWQg
Q0ZVUkxDYWNoZVNldE1lbW9yeUNhcGFjaXR5KENGVVJMQ2FjaGVSZWYsIENGSW5kZXggbWVtb3J5
Q2FwYWNpdHkpOwogI2lmIFBMQVRGT1JNKENPQ09BKQotRVhURVJOX0MgQm9vbGVhbiBfQ0ZOZXR3
b3JrSXNLbm93bkhTVFNIb3N0V2l0aFNlc3Npb24oQ0ZVUkxSZWYsIENGVVJMU3RvcmFnZVNlc3Np
b25SZWYpOwotRVhURVJOX0Mgdm9pZCBfQ0ZOZXR3b3JrUmVzZXRIU1RTSG9zdHNXaXRoU2Vzc2lv
bihDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmKTsKK0Jvb2xlYW4gX0NGTmV0d29ya0lzS25vd25IU1RT
SG9zdFdpdGhTZXNzaW9uKENGVVJMUmVmLCBDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmKTsKK3ZvaWQg
X0NGTmV0d29ya1Jlc2V0SFNUU0hvc3RzV2l0aFNlc3Npb24oQ0ZVUkxTdG9yYWdlU2Vzc2lvblJl
Zik7CiAjZW5kaWYKIAotRVhURVJOX0Mgdm9pZCBDRkhUVFBDb29raWVTdG9yYWdlRGVsZXRlQWxs
Q29va2llcyhDRkhUVFBDb29raWVTdG9yYWdlUmVmKTsKK3ZvaWQgQ0ZIVFRQQ29va2llU3RvcmFn
ZURlbGV0ZUFsbENvb2tpZXMoQ0ZIVFRQQ29va2llU3RvcmFnZVJlZik7CiAKICNpZiBQTEFURk9S
TShDT0NPQSkKLUVYVEVSTl9DIENGRGF0YVJlZiBfQ0ZDYWNoZWRVUkxSZXNwb25zZUdldE1lbU1h
cHBlZERhdGEoQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZik7CitDRkRhdGFSZWYgX0NGQ2FjaGVkVVJM
UmVzcG9uc2VHZXRNZW1NYXBwZWREYXRhKENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYpOwogI2lmZGVm
IF9fQkxPQ0tTX18KLUVYVEVSTl9DIHZvaWQgX0NGQ2FjaGVkVVJMUmVzcG9uc2VTZXRCZWNhbWVG
aWxlQmFja2VkQ2FsbEJhY2tCbG9jayhDRkNhY2hlZFVSTFJlc3BvbnNlUmVmLCBDRkNhY2hlZFVS
TFJlc3BvbnNlQ2FsbEJhY2tCbG9jaywgZGlzcGF0Y2hfcXVldWVfdCk7Cit2b2lkIF9DRkNhY2hl
ZFVSTFJlc3BvbnNlU2V0QmVjYW1lRmlsZUJhY2tlZENhbGxCYWNrQmxvY2soQ0ZDYWNoZWRVUkxS
ZXNwb25zZVJlZiwgQ0ZDYWNoZWRVUkxSZXNwb25zZUNhbGxCYWNrQmxvY2ssIGRpc3BhdGNoX3F1
ZXVlX3QpOwogI2VuZGlmCiAjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpCiAKLUVYVEVSTl9DIHZv
aWQgQ0ZVUkxDb25uZWN0aW9uSW52YWxpZGF0ZUNvbm5lY3Rpb25DYWNoZSgpOwotCi1FWFRFUk5f
QyBDRlN0cmluZ1JlZiBjb25zdCBrQ0ZIVFRQQ29va2llTG9jYWxGaWxlRG9tYWluOwotRVhURVJO
X0MgY29uc3QgQ0ZTdHJpbmdSZWYga0NGVVJMUmVxdWVzdEFsbG93QWxsUE9TVENhY2hpbmc7Ci0K
LUVYVEVSTl9DIGNvbnN0IENGU3RyaW5nUmVmIF9rQ0ZVUkxDb25uZWN0aW9uUHJvcGVydHlTaG91
bGRTbmlmZjsKLQotRVhURVJOX0MgQ0ZIVFRQQ29va2llU3RvcmFnZVJlZiBfQ0ZIVFRQQ29va2ll
U3RvcmFnZUdldERlZmF1bHQoQ0ZBbGxvY2F0b3JSZWYpOwotRVhURVJOX0Mgdm9pZCBDRkhUVFBD
b29raWVTdG9yYWdlU2V0Q29va2llKENGSFRUUENvb2tpZVN0b3JhZ2VSZWYsIENGSFRUUENvb2tp
ZVJlZik7Ci1FWFRFUk5fQyB2b2lkIENGSFRUUENvb2tpZVN0b3JhZ2VTZXRDb29raWVBY2NlcHRQ
b2xpY3koQ0ZIVFRQQ29va2llU3RvcmFnZVJlZiwgQ0ZIVFRQQ29va2llU3RvcmFnZUFjY2VwdFBv
bGljeSk7Ci1FWFRFUk5fQyB2b2lkIF9DRk5ldHdvcmtTZXRPdmVycmlkZVN5c3RlbVByb3h5U2V0
dGluZ3MoQ0ZEaWN0aW9uYXJ5UmVmKTsKLUVYVEVSTl9DIENGVVJMQ3JlZGVudGlhbFN0b3JhZ2VS
ZWYgQ0ZVUkxDcmVkZW50aWFsU3RvcmFnZUNyZWF0ZShDRkFsbG9jYXRvclJlZik7Ci1FWFRFUk5f
QyBDRlVSTENyZWRlbnRpYWxSZWYgQ0ZVUkxDcmVkZW50aWFsU3RvcmFnZUNvcHlEZWZhdWx0Q3Jl
ZGVudGlhbEZvclByb3RlY3Rpb25TcGFjZShDRlVSTENyZWRlbnRpYWxTdG9yYWdlUmVmLCBDRlVS
TFByb3RlY3Rpb25TcGFjZVJlZik7Ci1FWFRFUk5fQyBDRlVSTFJlcXVlc3RQcmlvcml0eSBDRlVS
TFJlcXVlc3RHZXRSZXF1ZXN0UHJpb3JpdHkoQ0ZVUkxSZXF1ZXN0UmVmKTsKLUVYVEVSTl9DIHZv
aWQgX0NGVVJMUmVxdWVzdFNldFByb3RvY29sUHJvcGVydHkoQ0ZVUkxSZXF1ZXN0UmVmLCBDRlN0
cmluZ1JlZiwgQ0ZUeXBlUmVmKTsKLUVYVEVSTl9DIHZvaWQgQ0ZVUkxSZXF1ZXN0U2V0UmVxdWVz
dFByaW9yaXR5KENGVVJMUmVxdWVzdFJlZiwgQ0ZVUkxSZXF1ZXN0UHJpb3JpdHkpOwotRVhURVJO
X0Mgdm9pZCBDRlVSTFJlcXVlc3RTZXRTaG91bGRQaXBlbGluZUhUVFAoQ0ZVUkxSZXF1ZXN0UmVm
LCBCb29sZWFuLCBCb29sZWFuKTsKLUVYVEVSTl9DIHZvaWQgX0NGVVJMUmVxdWVzdFNldFN0b3Jh
Z2VTZXNzaW9uKENGTXV0YWJsZVVSTFJlcXVlc3RSZWYsIENGVVJMU3RvcmFnZVNlc3Npb25SZWYp
OwotRVhURVJOX0MgQ0ZTdHJpbmdSZWYgQ0ZVUkxSZXNwb25zZUNvcHlTdWdnZXN0ZWRGaWxlbmFt
ZShDRlVSTFJlc3BvbnNlUmVmKTsKLUVYVEVSTl9DIENGSFRUUE1lc3NhZ2VSZWYgQ0ZVUkxSZXNw
b25zZUdldEhUVFBSZXNwb25zZShDRlVSTFJlc3BvbnNlUmVmKTsKLUVYVEVSTl9DIENGU3RyaW5n
UmVmIENGVVJMUmVzcG9uc2VHZXRNSU1FVHlwZShDRlVSTFJlc3BvbnNlUmVmKTsKLUVYVEVSTl9D
IENGRGljdGlvbmFyeVJlZiBfQ0ZVUkxSZXNwb25zZUdldFNTTENlcnRpZmljYXRlQ29udGV4dChD
RlVSTFJlc3BvbnNlUmVmKTsKLUVYVEVSTl9DIENGVVJMUmVmIENGVVJMUmVzcG9uc2VHZXRVUkwo
Q0ZVUkxSZXNwb25zZVJlZik7Ci1FWFRFUk5fQyB2b2lkIENGVVJMUmVzcG9uc2VTZXRNSU1FVHlw
ZShDRlVSTFJlc3BvbnNlUmVmLCBDRlN0cmluZ1JlZik7Ci1FWFRFUk5fQyBDRkhUVFBDb29raWVT
dG9yYWdlUmVmIF9DRlVSTFN0b3JhZ2VTZXNzaW9uQ29weUNvb2tpZVN0b3JhZ2UoQ0ZBbGxvY2F0
b3JSZWYsIENGVVJMU3RvcmFnZVNlc3Npb25SZWYpOwotRVhURVJOX0MgQ0ZBcnJheVJlZiBfQ0ZI
VFRQQ29va2llU3RvcmFnZUNvcHlDb29raWVzRm9yVVJMV2l0aE1haW5Eb2N1bWVudFVSTChDRkhU
VFBDb29raWVTdG9yYWdlUmVmIGluQ29va2llU3RvcmFnZSwgQ0ZVUkxSZWYgaW5VUkwsIENGVVJM
UmVmIGluTWFpbkRvY3VtZW50VVJMLCBCb29sZWFuIHNlbmRTZWN1cmVDb29raWVzKTsKK3ZvaWQg
Q0ZVUkxDb25uZWN0aW9uSW52YWxpZGF0ZUNvbm5lY3Rpb25DYWNoZSgpOworCitleHRlcm4gQ0ZT
dHJpbmdSZWYgY29uc3Qga0NGSFRUUENvb2tpZUxvY2FsRmlsZURvbWFpbjsKK2V4dGVybiBjb25z
dCBDRlN0cmluZ1JlZiBrQ0ZVUkxSZXF1ZXN0QWxsb3dBbGxQT1NUQ2FjaGluZzsKKworZXh0ZXJu
IGNvbnN0IENGU3RyaW5nUmVmIF9rQ0ZVUkxDb25uZWN0aW9uUHJvcGVydHlTaG91bGRTbmlmZjsK
KworQ0ZIVFRQQ29va2llU3RvcmFnZVJlZiBfQ0ZIVFRQQ29va2llU3RvcmFnZUdldERlZmF1bHQo
Q0ZBbGxvY2F0b3JSZWYpOwordm9pZCBDRkhUVFBDb29raWVTdG9yYWdlU2V0Q29va2llKENGSFRU
UENvb2tpZVN0b3JhZ2VSZWYsIENGSFRUUENvb2tpZVJlZik7Cit2b2lkIENGSFRUUENvb2tpZVN0
b3JhZ2VTZXRDb29raWVBY2NlcHRQb2xpY3koQ0ZIVFRQQ29va2llU3RvcmFnZVJlZiwgQ0ZIVFRQ
Q29va2llU3RvcmFnZUFjY2VwdFBvbGljeSk7Cit2b2lkIF9DRk5ldHdvcmtTZXRPdmVycmlkZVN5
c3RlbVByb3h5U2V0dGluZ3MoQ0ZEaWN0aW9uYXJ5UmVmKTsKK0NGVVJMQ3JlZGVudGlhbFN0b3Jh
Z2VSZWYgQ0ZVUkxDcmVkZW50aWFsU3RvcmFnZUNyZWF0ZShDRkFsbG9jYXRvclJlZik7CitDRlVS
TENyZWRlbnRpYWxSZWYgQ0ZVUkxDcmVkZW50aWFsU3RvcmFnZUNvcHlEZWZhdWx0Q3JlZGVudGlh
bEZvclByb3RlY3Rpb25TcGFjZShDRlVSTENyZWRlbnRpYWxTdG9yYWdlUmVmLCBDRlVSTFByb3Rl
Y3Rpb25TcGFjZVJlZik7CitDRlVSTFJlcXVlc3RQcmlvcml0eSBDRlVSTFJlcXVlc3RHZXRSZXF1
ZXN0UHJpb3JpdHkoQ0ZVUkxSZXF1ZXN0UmVmKTsKK3ZvaWQgX0NGVVJMUmVxdWVzdFNldFByb3Rv
Y29sUHJvcGVydHkoQ0ZVUkxSZXF1ZXN0UmVmLCBDRlN0cmluZ1JlZiwgQ0ZUeXBlUmVmKTsKK3Zv
aWQgQ0ZVUkxSZXF1ZXN0U2V0UmVxdWVzdFByaW9yaXR5KENGVVJMUmVxdWVzdFJlZiwgQ0ZVUkxS
ZXF1ZXN0UHJpb3JpdHkpOwordm9pZCBDRlVSTFJlcXVlc3RTZXRTaG91bGRQaXBlbGluZUhUVFAo
Q0ZVUkxSZXF1ZXN0UmVmLCBCb29sZWFuLCBCb29sZWFuKTsKK3ZvaWQgX0NGVVJMUmVxdWVzdFNl
dFN0b3JhZ2VTZXNzaW9uKENGTXV0YWJsZVVSTFJlcXVlc3RSZWYsIENGVVJMU3RvcmFnZVNlc3Np
b25SZWYpOworQ0ZTdHJpbmdSZWYgQ0ZVUkxSZXNwb25zZUNvcHlTdWdnZXN0ZWRGaWxlbmFtZShD
RlVSTFJlc3BvbnNlUmVmKTsKK0NGSFRUUE1lc3NhZ2VSZWYgQ0ZVUkxSZXNwb25zZUdldEhUVFBS
ZXNwb25zZShDRlVSTFJlc3BvbnNlUmVmKTsKK0NGU3RyaW5nUmVmIENGVVJMUmVzcG9uc2VHZXRN
SU1FVHlwZShDRlVSTFJlc3BvbnNlUmVmKTsKK0NGRGljdGlvbmFyeVJlZiBfQ0ZVUkxSZXNwb25z
ZUdldFNTTENlcnRpZmljYXRlQ29udGV4dChDRlVSTFJlc3BvbnNlUmVmKTsKK0NGVVJMUmVmIENG
VVJMUmVzcG9uc2VHZXRVUkwoQ0ZVUkxSZXNwb25zZVJlZik7Cit2b2lkIENGVVJMUmVzcG9uc2VT
ZXRNSU1FVHlwZShDRlVSTFJlc3BvbnNlUmVmLCBDRlN0cmluZ1JlZik7CitDRkhUVFBDb29raWVT
dG9yYWdlUmVmIF9DRlVSTFN0b3JhZ2VTZXNzaW9uQ29weUNvb2tpZVN0b3JhZ2UoQ0ZBbGxvY2F0
b3JSZWYsIENGVVJMU3RvcmFnZVNlc3Npb25SZWYpOworQ0ZBcnJheVJlZiBfQ0ZIVFRQQ29va2ll
U3RvcmFnZUNvcHlDb29raWVzRm9yVVJMV2l0aE1haW5Eb2N1bWVudFVSTChDRkhUVFBDb29raWVT
dG9yYWdlUmVmIGluQ29va2llU3RvcmFnZSwgQ0ZVUkxSZWYgaW5VUkwsIENGVVJMUmVmIGluTWFp
bkRvY3VtZW50VVJMLCBCb29sZWFuIHNlbmRTZWN1cmVDb29raWVzKTsKICNlbmRpZiAvLyAhUExB
VEZPUk0oV0lOKQogCitXVEZfRVhURVJOX0NfRU5ECisKIC8vIEZJWE1FOiBXZSBzaG91bGQgb25s
eSBmb3J3YXJkIGRlY2xhcmUgdGhpcyBTUEkgd2hlbiBidWlsZGluZyBmb3IgaU9TIHdpdGhvdXQg
dGhlIEFwcGxlIEludGVybmFsIFNESy4KIC8vIEFzIGEgd29ya2Fyb3VuZCBmb3IgPHJkYXI6Ly9w
cm9ibGVtLzE5MDI1MDE2Piwgd2UgbXVzdCBmb3J3YXJkIGRlY2xhcmUgdGhpcyBTUEkgcmVnYXJk
bGVzcyBvZiB3aGV0aGVyCiAvLyB3ZSBhcmUgYnVpbGRpbmcgd2l0aCB0aGUgQXBwbGUgSW50ZXJu
YWwgU0RLLgpAQCAtMjAwLDIxICsxOTQsMjUgQEAgZW51bSA6IE5TVUludGVnZXIgewogQGVuZAog
I2VuZGlmCiAKK1dURl9FWFRFUk5fQ19CRUdJTgorCiAjaWYgVEFSR0VUX09TX0lQSE9ORSB8fCAo
UExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEw
MCkKLUVYVEVSTl9DIENGRGF0YVJlZiBfQ0ZOZXR3b3JrQ29weUFUU0NvbnRleHQodm9pZCk7Ci1F
WFRFUk5fQyBCb29sZWFuIF9DRk5ldHdvcmtTZXRBVFNDb250ZXh0KENGRGF0YVJlZik7CitDRkRh
dGFSZWYgX0NGTmV0d29ya0NvcHlBVFNDb250ZXh0KHZvaWQpOworQm9vbGVhbiBfQ0ZOZXR3b3Jr
U2V0QVRTQ29udGV4dChDRkRhdGFSZWYpOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShDT0NPQSkK
LUVYVEVSTl9DIHZvaWQgX0NGTmV0d29ya1Jlc2V0SFNUU0hvc3RzU2luY2VEYXRlKENGVVJMU3Rv
cmFnZVNlc3Npb25SZWYsIENGRGF0ZVJlZik7Cit2b2lkIF9DRk5ldHdvcmtSZXNldEhTVFNIb3N0
c1NpbmNlRGF0ZShDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmLCBDRkRhdGVSZWYpOwogI2VuZGlmCiAK
ICNpZiBUQVJHRVRfT1NfSVBIT05FIHx8IChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwKQotRVhURVJOX0MgQ0ZEYXRhUmVmIENGSFRUUENv
b2tpZVN0b3JhZ2VDcmVhdGVJZGVudGlmeWluZ0RhdGEoQ0ZBbGxvY2F0b3JSZWYgaW5BbGxvY2F0
b3IsIENGSFRUUENvb2tpZVN0b3JhZ2VSZWYgaW5TdG9yYWdlKTsKLUVYVEVSTl9DIENGSFRUUENv
b2tpZVN0b3JhZ2VSZWYgQ0ZIVFRQQ29va2llU3RvcmFnZUNyZWF0ZUZyb21JZGVudGlmeWluZ0Rh
dGEoQ0ZBbGxvY2F0b3JSZWYgaW5BbGxvY2F0b3IsIENGRGF0YVJlZiBpbkRhdGEpOwotRVhURVJO
X0MgQ0ZBcnJheVJlZiBfQ0ZIVFRQUGFyc2VkQ29va2llc1dpdGhSZXNwb25zZUhlYWRlckZpZWxk
cyhDRkFsbG9jYXRvclJlZiBpbkFsbG9jYXRvciwgQ0ZEaWN0aW9uYXJ5UmVmIGhlYWRlckZpZWxk
cywgQ0ZVUkxSZWYgaW5VUkwpOworQ0ZEYXRhUmVmIENGSFRUUENvb2tpZVN0b3JhZ2VDcmVhdGVJ
ZGVudGlmeWluZ0RhdGEoQ0ZBbGxvY2F0b3JSZWYgaW5BbGxvY2F0b3IsIENGSFRUUENvb2tpZVN0
b3JhZ2VSZWYgaW5TdG9yYWdlKTsKK0NGSFRUUENvb2tpZVN0b3JhZ2VSZWYgQ0ZIVFRQQ29va2ll
U3RvcmFnZUNyZWF0ZUZyb21JZGVudGlmeWluZ0RhdGEoQ0ZBbGxvY2F0b3JSZWYgaW5BbGxvY2F0
b3IsIENGRGF0YVJlZiBpbkRhdGEpOworQ0ZBcnJheVJlZiBfQ0ZIVFRQUGFyc2VkQ29va2llc1dp
dGhSZXNwb25zZUhlYWRlckZpZWxkcyhDRkFsbG9jYXRvclJlZiBpbkFsbG9jYXRvciwgQ0ZEaWN0
aW9uYXJ5UmVmIGhlYWRlckZpZWxkcywgQ0ZVUkxSZWYgaW5VUkwpOwogI2VuZGlmCiAKK1dURl9F
WFRFUk5fQ19FTkQKKwogI2lmIGRlZmluZWQoX19PQkpDX18pCiAKIEBpbnRlcmZhY2UgTlNIVFRQ
Q29va2llICgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY2YvQ0ZV
dGlsaXRpZXNTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jZi9DRlV0aWxpdGll
c1NQSS5oCmluZGV4IDE1Njg2YjRjMjMyOGFiYTMzYmQ4NzNiNDg2MDA4NDM4ODU2YWRkYWMuLmZj
OGNkNzkyNzYyYmYwYTc2MjBhMTJhY2YxMjBmYTMwOWEzNzhmZmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jZi9DRlV0aWxpdGllc1NQSS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3NwaS9jZi9DRlV0aWxpdGllc1NQSS5oCkBAIC0zMSw4ICszMSwxMSBA
QAogI2ltcG9ydCA8Q29yZUZvdW5kYXRpb24vQ0ZQcml2Lmg+CiAjZW5kaWYKIAotZXh0ZXJuICJD
IiB7CitXVEZfRVhURVJOX0NfQkVHSU4KKwogQ0ZEaWN0aW9uYXJ5UmVmIF9DRkNvcHlTeXN0ZW1W
ZXJzaW9uRGljdGlvbmFyeSh2b2lkKTsKIGV4dGVybiBjb25zdCBDRlN0cmluZ1JlZiBfa0NGU3lz
dGVtVmVyc2lvblByb2R1Y3RWZXJzaW9uS2V5OwogZXh0ZXJuIGNvbnN0IENGU3RyaW5nUmVmIF9r
Q0ZTeXN0ZW1WZXJzaW9uQnVpbGRWZXJzaW9uS2V5OwotfQorCitXVEZfRVhURVJOX0NfRU5ECisK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jb2NvYS9Db3JlVGV4dFNQ
SS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NvY29hL0NvcmVUZXh0U1BJLmgKaW5k
ZXggYWI0OTE3YzNhOTlmMDEzNmFhMTkzOGIyZmQxMTliNTk4Y2VhNjJhZi4uY2UwMTVlMzJmYWZj
ODUxMTU0MjBkMjA5N2ZlOTIxNjBlMzIxYTNiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vc3BpL2NvY29hL0NvcmVUZXh0U1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vc3BpL2NvY29hL0NvcmVUZXh0U1BJLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTQtMjAxNiBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00NCw3ICs0NCw3IEBAIGVudW0gewogCiAj
ZW5kaWYKIAotZXh0ZXJuICJDIiB7CitXVEZfRVhURVJOX0NfQkVHSU4KIAogdHlwZWRlZiBjb25z
dCBVbmlDaGFyKiAoKkNUVW5pQ2hhclByb3ZpZGVyQ2FsbGJhY2spKENGSW5kZXggc3RyaW5nSW5k
ZXgsIENGSW5kZXgqIGNoYXJDb3VudCwgQ0ZEaWN0aW9uYXJ5UmVmKiBhdHRyaWJ1dGVzLCB2b2lk
KiByZWZDb24pOwogdHlwZWRlZiB2b2lkICgqQ1RVbmlDaGFyRGlzcG9zZUNhbGxiYWNrKShjb25z
dCBVbmlDaGFyKiBjaGFycywgdm9pZCogcmVmQ29uKTsKQEAgLTEzNSw2ICsxMzUsNiBAQCBib29s
IENURm9udElzQXBwbGVDb2xvckVtb2ppKENURm9udFJlZik7CiBib29sIENURm9udERlc2NyaXB0
b3JJc1N5c3RlbVVJRm9udChDVEZvbnREZXNjcmlwdG9yUmVmKTsKIENURm9udFJlZiBDVEZvbnRD
cmVhdGVGb3JDaGFyYWN0ZXJzKENURm9udFJlZiBjdXJyZW50Rm9udCwgY29uc3QgVVRGMTZDaGFy
ICpjaGFyYWN0ZXJzLCBDRkluZGV4IGxlbmd0aCwgQ0ZJbmRleCAqY292ZXJlZExlbmd0aCk7CiAK
LX0KK1dURl9FWFRFUk5fQ19FTkQKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9zcGkvY29jb2EvRGF0YURldGVjdG9yc0NvcmVTUEkuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3NwaS9jb2NvYS9EYXRhRGV0ZWN0b3JzQ29yZVNQSS5oCmluZGV4IDU0YTRj
YmI1Y2NhOGI1Y2M3ZGU0NTBjZDU2YWFjMTgwZDE5Y2Q4YWYuLmEwYzM2OTdkMGUyZTg5YzE2NmNl
NzM4NmY1YzA3YzExNWNmNzczMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3NwaS9jb2NvYS9EYXRhRGV0ZWN0b3JzQ29yZVNQSS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3NwaS9jb2NvYS9EYXRhRGV0ZWN0b3JzQ29yZVNQSS5oCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTI3LDcgKzEyNyw3
IEBAIGVudW0gewogICAgIEREU2Nhbm5lclNvdXJjZVNwb3RsaWdodCA9IDE8PDEsCiB9OwogCi1l
eHRlcm4gIkMiIHsKK1dURl9FWFRFUk5fQ19CRUdJTgogCiBleHRlcm4gY29uc3QgRERTY2FubmVy
Q29weVJlc3VsdHNPcHRpb25zIEREU2Nhbm5lckNvcHlSZXN1bHRzT3B0aW9uc0ZvclBhc3NpdmVV
c2U7CiAKQEAgLTE0OCw2ICsxNDgsNiBAQCBib29sIEREUmVzdWx0SGFzUHJvcGVydGllcyhERFJl
c3VsdFJlZiwgQ0ZJbmRleCBwcm9wZXJ0eVNldCk7CiBDRkFycmF5UmVmIEREUmVzdWx0R2V0U3Vi
UmVzdWx0cyhERFJlc3VsdFJlZik7CiBERFF1ZXJ5UmFuZ2UgRERSZXN1bHRHZXRRdWVyeVJhbmdl
Rm9yVVJMaWZpY2F0aW9uKEREUmVzdWx0UmVmKTsKIAotfQorV1RGX0VYVEVSTl9DX0VORAogCiAj
ZW5kaWYgLy8gRGF0YURldGVjdG9yc0NvcmVTUElfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vc3BpL2NvY29hL0lPUE1MaWJTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3NwaS9jb2NvYS9JT1BNTGliU1BJLmgKaW5kZXggMDNiOWM1NGZlOThkZDM4NTQ1M2U0NDI0
Nzc4MmUwYjEyN2U0MzY2MS4uZTFjZTNhZGYwOTA3YjhiNmIyMGMyMDJiNzY3YmY2ZDkzN2NlY2Y5
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NvY29hL0lPUE1MaWJT
UEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY29jb2EvSU9QTUxpYlNQSS5o
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTM4LDEyICszOCwyMCBAQAogCiB0eXBlZGVmIHVpbnQzMl90IElPUE1Bc3NlcnRpb25JRDsKIAot
RVhURVJOX0MgY29uc3QgQ0ZTdHJpbmdSZWYga0lPUE1Bc3NlcnRpb25UeXBlUHJldmVudFVzZXJJ
ZGxlRGlzcGxheVNsZWVwID0gQ0ZTVFIoIlByZXZlbnRVc2VySWRsZURpc3BsYXlTbGVlcCIpOwor
V1RGX0VYVEVSTl9DX0JFR0lOCisKK2NvbnN0IENGU3RyaW5nUmVmIGtJT1BNQXNzZXJ0aW9uVHlw
ZVByZXZlbnRVc2VySWRsZURpc3BsYXlTbGVlcCA9IENGU1RSKCJQcmV2ZW50VXNlcklkbGVEaXNw
bGF5U2xlZXAiKTsKKworV1RGX0VYVEVSTl9DX0VORAogCiAjZW5kaWYKIAotRVhURVJOX0MgSU9S
ZXR1cm4gSU9QTUFzc2VydGlvbkNyZWF0ZVdpdGhEZXNjcmlwdGlvbihDRlN0cmluZ1JlZiBhc3Nl
cnRpb25UeXBlLCBDRlN0cmluZ1JlZiBuYW1lLCBDRlN0cmluZ1JlZiBkZXRhaWxzLCBDRlN0cmlu
Z1JlZiBodW1hblJlYWRhYmxlUmVhc29uLAorV1RGX0VYVEVSTl9DX0JFR0lOCisKK0lPUmV0dXJu
IElPUE1Bc3NlcnRpb25DcmVhdGVXaXRoRGVzY3JpcHRpb24oQ0ZTdHJpbmdSZWYgYXNzZXJ0aW9u
VHlwZSwgQ0ZTdHJpbmdSZWYgbmFtZSwgQ0ZTdHJpbmdSZWYgZGV0YWlscywgQ0ZTdHJpbmdSZWYg
aHVtYW5SZWFkYWJsZVJlYXNvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgQ0ZTdHJpbmdSZWYgbG9jYWxpemF0aW9uQnVuZGxlUGF0aCwgQ0ZU
aW1lSW50ZXJ2YWwgdGltZW91dCwgQ0ZTdHJpbmdSZWYgdGltZW91dEFjdGlvbiwgSU9QTUFzc2Vy
dGlvbklEICopOwotRVhURVJOX0MgSU9SZXR1cm4gSU9QTUFzc2VydGlvblJlbGVhc2UoSU9QTUFz
c2VydGlvbklEKTsKK0lPUmV0dXJuIElPUE1Bc3NlcnRpb25SZWxlYXNlKElPUE1Bc3NlcnRpb25J
RCk7CisKK1dURl9FWFRFUk5fQ19FTkQKIAogI2VuZGlmIC8vIElPUE1MaWJTUElfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NvY29hL01hY2hWTVNQSS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NvY29hL01hY2hWTVNQSS5oCmluZGV4IGQ4ZjYxOGQ4
ODVjMDBmN2RhMWU4OWE2OTgzYjVkNzkzMjU2ZjUwM2UuLjVhMWZhYTI2YWViMjMyMmQ0YmNhOWYw
N2FhMDZjZjI4NDEwMGE2MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Nw
aS9jb2NvYS9NYWNoVk1TUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY29j
b2EvTWFjaFZNU1BJLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE0
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0y
MDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMzQsMTQgKzM0LDE4IEBACiAjaW5jbHVkZSA8bWFjaC9tYWNoX3ZtLmg+
CiAjZW5kaWYKIAotRVhURVJOX0Mga2Vybl9yZXR1cm5fdCBtYWNoX3ZtX2FsbG9jYXRlKHZtX21h
cF90IHRhcmdldCwgbWFjaF92bV9hZGRyZXNzX3QqLCBtYWNoX3ZtX3NpemVfdCwgaW50IGZsYWdz
KTsKLUVYVEVSTl9DIGtlcm5fcmV0dXJuX3QgbWFjaF92bV9kZWFsbG9jYXRlKHZtX21hcF90IHRh
cmdldCwgbWFjaF92bV9hZGRyZXNzX3QsIG1hY2hfdm1fc2l6ZV90KTsKLUVYVEVSTl9DIGtlcm5f
cmV0dXJuX3QgbWFjaF92bV9tYXAodm1fbWFwX3QgdGFyZ2V0VGFzaywgbWFjaF92bV9hZGRyZXNz
X3QqLCBtYWNoX3ZtX3NpemVfdCwgbWFjaF92bV9vZmZzZXRfdCBtYXNrLCBpbnQgZmxhZ3MsCitX
VEZfRVhURVJOX0NfQkVHSU4KKwora2Vybl9yZXR1cm5fdCBtYWNoX3ZtX2FsbG9jYXRlKHZtX21h
cF90IHRhcmdldCwgbWFjaF92bV9hZGRyZXNzX3QqLCBtYWNoX3ZtX3NpemVfdCwgaW50IGZsYWdz
KTsKK2tlcm5fcmV0dXJuX3QgbWFjaF92bV9kZWFsbG9jYXRlKHZtX21hcF90IHRhcmdldCwgbWFj
aF92bV9hZGRyZXNzX3QsIG1hY2hfdm1fc2l6ZV90KTsKK2tlcm5fcmV0dXJuX3QgbWFjaF92bV9t
YXAodm1fbWFwX3QgdGFyZ2V0VGFzaywgbWFjaF92bV9hZGRyZXNzX3QqLCBtYWNoX3ZtX3NpemVf
dCwgbWFjaF92bV9vZmZzZXRfdCBtYXNrLCBpbnQgZmxhZ3MsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG1lbV9lbnRyeV9uYW1lX3BvcnRfdCwgbWVtb3J5X29iamVjdF9vZmZz
ZXRfdCwgYm9vbGVhbl90IGNvcHksIHZtX3Byb3RfdCBjdXJyZW50UHJvdGVjdGlvbiwgdm1fcHJv
dF90IG1heGltdW1Qcm90ZWN0aW9uLCB2bV9pbmhlcml0X3QpOwotRVhURVJOX0Mga2Vybl9yZXR1
cm5fdCBtYWNoX3ZtX3Byb3RlY3Qodm1fbWFwX3QgdGFyZ2V0VGFzaywgbWFjaF92bV9hZGRyZXNz
X3QsIG1hY2hfdm1fc2l6ZV90LCBib29sZWFuX3Qgc2V0TWF4aW11bSwgdm1fcHJvdF90IG5ld1By
b3RlY3Rpb24pOwotRVhURVJOX0Mga2Vybl9yZXR1cm5fdCBtYWNoX3ZtX3JlZ2lvbih2bV9tYXBf
dCB0YXJnZXRUYXNrLCBtYWNoX3ZtX2FkZHJlc3NfdCosIG1hY2hfdm1fc2l6ZV90Kiwgdm1fcmVn
aW9uX2ZsYXZvcl90LCB2bV9yZWdpb25faW5mb190LAora2Vybl9yZXR1cm5fdCBtYWNoX3ZtX3By
b3RlY3Qodm1fbWFwX3QgdGFyZ2V0VGFzaywgbWFjaF92bV9hZGRyZXNzX3QsIG1hY2hfdm1fc2l6
ZV90LCBib29sZWFuX3Qgc2V0TWF4aW11bSwgdm1fcHJvdF90IG5ld1Byb3RlY3Rpb24pOwora2Vy
bl9yZXR1cm5fdCBtYWNoX3ZtX3JlZ2lvbih2bV9tYXBfdCB0YXJnZXRUYXNrLCBtYWNoX3ZtX2Fk
ZHJlc3NfdCosIG1hY2hfdm1fc2l6ZV90Kiwgdm1fcmVnaW9uX2ZsYXZvcl90LCB2bV9yZWdpb25f
aW5mb190LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYWNoX21zZ190
eXBlX251bWJlcl90KiBpbmZvQ291bnQsIG1hY2hfcG9ydF90KiBvYmplY3ROYW1lKTsKLUVYVEVS
Tl9DIGtlcm5fcmV0dXJuX3QgbWFjaF92bV9yZWdpb25fcmVjdXJzZSh2bV9tYXBfdCB0YXJnZXRU
YXNrLCBtYWNoX3ZtX2FkZHJlc3NfdCosIG1hY2hfdm1fc2l6ZV90KiwgdWludDMyX3QqIGRlcHRo
LCB2bV9yZWdpb25fcmVjdXJzZV9pbmZvX3QsIG1hY2hfbXNnX3R5cGVfbnVtYmVyX3QqIGluZm9D
b3VudCk7Ci1FWFRFUk5fQyBrZXJuX3JldHVybl90IG1hY2hfdm1fcHVyZ2FibGVfY29udHJvbCh2
bV9tYXBfdCB0YXJnZXQsIG1hY2hfdm1fYWRkcmVzc190LCB2bV9wdXJnYWJsZV90IGNvbnRyb2ws
IGludCogc3RhdGUpOwora2Vybl9yZXR1cm5fdCBtYWNoX3ZtX3JlZ2lvbl9yZWN1cnNlKHZtX21h
cF90IHRhcmdldFRhc2ssIG1hY2hfdm1fYWRkcmVzc190KiwgbWFjaF92bV9zaXplX3QqLCB1aW50
MzJfdCogZGVwdGgsIHZtX3JlZ2lvbl9yZWN1cnNlX2luZm9fdCwgbWFjaF9tc2dfdHlwZV9udW1i
ZXJfdCogaW5mb0NvdW50KTsKK2tlcm5fcmV0dXJuX3QgbWFjaF92bV9wdXJnYWJsZV9jb250cm9s
KHZtX21hcF90IHRhcmdldCwgbWFjaF92bV9hZGRyZXNzX3QsIHZtX3B1cmdhYmxlX3QgY29udHJv
bCwgaW50KiBzdGF0ZSk7CisKK1dURl9FWFRFUk5fQ19FTkQKIAogI2VuZGlmIC8vIE1hY2hWTVNQ
SV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY29jb2EvUXVhcnR6
Q29yZVNQSS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NvY29hL1F1YXJ0ekNvcmVT
UEkuaAppbmRleCBjM2ZmMjNkN2U3ZjdhMDVjNTVhMmEzMDM4ZDc3Y2M1NmUxM2YwODI3Li5mNDNl
NzFjNmEzMzJjZmEzZmVhYzE1NmM0M2M4NGM5OTkzN2QwOGMwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9zcGkvY29jb2EvUXVhcnR6Q29yZVNQSS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmgKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTcwLDIyICsxNzAsMjIg
QEAgdHlwZWRlZiBlbnVtIHsKIAogLy8gRklYTUU6IERlY2xhcmUgdGhlc2UgZnVuY3Rpb25zIGV2
ZW4gd2hlbiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKSBpcyB0cnVlIG9uY2Ugd2UgY2FuIGZpeCA8
cmRhcjovL3Byb2JsZW0vMjY1ODQ4Mjg+IGluIGEgYmV0dGVyIHdheS4KICNpZiAhVVNFKEFQUExF
X0lOVEVSTkFMX1NESykKLUVYVEVSTl9DIHZvaWQgQ0FSZW5kZXJTZXJ2ZXJDYXB0dXJlTGF5ZXJX
aXRoVHJhbnNmb3JtKG1hY2hfcG9ydF90LCB1aW50MzJfdCBjbGllbnRJZCwgdWludDY0X3QgbGF5
ZXJJZCwgdWludDMyX3Qgc2xvdElkLCBpbnQzMl90IG94LCBpbnQzMl90IG95LCBjb25zdCBDQVRy
YW5zZm9ybTNEKik7Cit2b2lkIENBUmVuZGVyU2VydmVyQ2FwdHVyZUxheWVyV2l0aFRyYW5zZm9y
bShtYWNoX3BvcnRfdCwgdWludDMyX3QgY2xpZW50SWQsIHVpbnQ2NF90IGxheWVySWQsIHVpbnQz
Ml90IHNsb3RJZCwgaW50MzJfdCBveCwgaW50MzJfdCBveSwgY29uc3QgQ0FUcmFuc2Zvcm0zRCop
OwogCiAjaWYgVVNFKElPU1VSRkFDRSkKLUVYVEVSTl9DIHZvaWQgQ0FSZW5kZXJTZXJ2ZXJSZW5k
ZXJMYXllcldpdGhUcmFuc2Zvcm0obWFjaF9wb3J0X3Qgc2VydmVyX3BvcnQsIHVpbnQzMl90IGNs
aWVudF9pZCwgdWludDY0X3QgbGF5ZXJfaWQsIElPU3VyZmFjZVJlZiwgaW50MzJfdCBveCwgaW50
MzJfdCBveSwgY29uc3QgQ0FUcmFuc2Zvcm0zRCopOwotRVhURVJOX0Mgdm9pZCBDQVJlbmRlclNl
cnZlclJlbmRlckRpc3BsYXlMYXllcldpdGhUcmFuc2Zvcm1BbmRUaW1lT2Zmc2V0KG1hY2hfcG9y
dF90LCBDRlN0cmluZ1JlZiBkaXNwbGF5X25hbWUsIHVpbnQzMl90IGNsaWVudF9pZCwgdWludDY0
X3QgbGF5ZXJfaWQsIElPU3VyZmFjZVJlZiwgaW50MzJfdCBveCwgaW50MzJfdCBveSwgY29uc3Qg
Q0FUcmFuc2Zvcm0zRCosIENGVGltZUludGVydmFsKTsKK3ZvaWQgQ0FSZW5kZXJTZXJ2ZXJSZW5k
ZXJMYXllcldpdGhUcmFuc2Zvcm0obWFjaF9wb3J0X3Qgc2VydmVyX3BvcnQsIHVpbnQzMl90IGNs
aWVudF9pZCwgdWludDY0X3QgbGF5ZXJfaWQsIElPU3VyZmFjZVJlZiwgaW50MzJfdCBveCwgaW50
MzJfdCBveSwgY29uc3QgQ0FUcmFuc2Zvcm0zRCopOwordm9pZCBDQVJlbmRlclNlcnZlclJlbmRl
ckRpc3BsYXlMYXllcldpdGhUcmFuc2Zvcm1BbmRUaW1lT2Zmc2V0KG1hY2hfcG9ydF90LCBDRlN0
cmluZ1JlZiBkaXNwbGF5X25hbWUsIHVpbnQzMl90IGNsaWVudF9pZCwgdWludDY0X3QgbGF5ZXJf
aWQsIElPU3VyZmFjZVJlZiwgaW50MzJfdCBveCwgaW50MzJfdCBveSwgY29uc3QgQ0FUcmFuc2Zv
cm0zRCosIENGVGltZUludGVydmFsKTsKICNlbHNlCiB0eXBlZGVmIHN0cnVjdCBDQVJlbmRlclNl
cnZlckJ1ZmZlciogQ0FSZW5kZXJTZXJ2ZXJCdWZmZXJSZWY7Ci1FWFRFUk5fQyBDQVJlbmRlclNl
cnZlckJ1ZmZlclJlZiBDQVJlbmRlclNlcnZlckNyZWF0ZUJ1ZmZlcihzaXplX3QsIHNpemVfdCk7
Ci1FWFRFUk5fQyB2b2lkIENBUmVuZGVyU2VydmVyRGVzdHJveUJ1ZmZlcihDQVJlbmRlclNlcnZl
ckJ1ZmZlclJlZik7Ci1FWFRFUk5fQyBzaXplX3QgQ0FSZW5kZXJTZXJ2ZXJHZXRCdWZmZXJXaWR0
aChDQVJlbmRlclNlcnZlckJ1ZmZlclJlZik7Ci1FWFRFUk5fQyBzaXplX3QgQ0FSZW5kZXJTZXJ2
ZXJHZXRCdWZmZXJIZWlnaHQoQ0FSZW5kZXJTZXJ2ZXJCdWZmZXJSZWYpOwotRVhURVJOX0Mgc2l6
ZV90IENBUmVuZGVyU2VydmVyR2V0QnVmZmVyUm93Qnl0ZXMoQ0FSZW5kZXJTZXJ2ZXJCdWZmZXJS
ZWYpOwotRVhURVJOX0MgdWludDhfdCogQ0FSZW5kZXJTZXJ2ZXJHZXRCdWZmZXJEYXRhKENBUmVu
ZGVyU2VydmVyQnVmZmVyUmVmKTsKLUVYVEVSTl9DIHNpemVfdCBDQVJlbmRlclNlcnZlckdldEJ1
ZmZlckRhdGFTaXplKENBUmVuZGVyU2VydmVyQnVmZmVyUmVmKTsKLQotRVhURVJOX0MgYm9vbCBD
QVJlbmRlclNlcnZlclJlbmRlckxheWVyV2l0aFRyYW5zZm9ybShtYWNoX3BvcnRfdCwgdWludDMy
X3QgY2xpZW50X2lkLCB1aW50NjRfdCBsYXllcl9pZCwgQ0FSZW5kZXJTZXJ2ZXJCdWZmZXJSZWYs
IGludDMyX3Qgb3gsIGludDMyX3Qgb3ksIGNvbnN0IENBVHJhbnNmb3JtM0QqKTsKK0NBUmVuZGVy
U2VydmVyQnVmZmVyUmVmIENBUmVuZGVyU2VydmVyQ3JlYXRlQnVmZmVyKHNpemVfdCwgc2l6ZV90
KTsKK3ZvaWQgQ0FSZW5kZXJTZXJ2ZXJEZXN0cm95QnVmZmVyKENBUmVuZGVyU2VydmVyQnVmZmVy
UmVmKTsKK3NpemVfdCBDQVJlbmRlclNlcnZlckdldEJ1ZmZlcldpZHRoKENBUmVuZGVyU2VydmVy
QnVmZmVyUmVmKTsKK3NpemVfdCBDQVJlbmRlclNlcnZlckdldEJ1ZmZlckhlaWdodChDQVJlbmRl
clNlcnZlckJ1ZmZlclJlZik7CitzaXplX3QgQ0FSZW5kZXJTZXJ2ZXJHZXRCdWZmZXJSb3dCeXRl
cyhDQVJlbmRlclNlcnZlckJ1ZmZlclJlZik7Cit1aW50OF90KiBDQVJlbmRlclNlcnZlckdldEJ1
ZmZlckRhdGEoQ0FSZW5kZXJTZXJ2ZXJCdWZmZXJSZWYpOworc2l6ZV90IENBUmVuZGVyU2VydmVy
R2V0QnVmZmVyRGF0YVNpemUoQ0FSZW5kZXJTZXJ2ZXJCdWZmZXJSZWYpOworCitib29sIENBUmVu
ZGVyU2VydmVyUmVuZGVyTGF5ZXJXaXRoVHJhbnNmb3JtKG1hY2hfcG9ydF90LCB1aW50MzJfdCBj
bGllbnRfaWQsIHVpbnQ2NF90IGxheWVyX2lkLCBDQVJlbmRlclNlcnZlckJ1ZmZlclJlZiwgaW50
MzJfdCBveCwgaW50MzJfdCBveSwgY29uc3QgQ0FUcmFuc2Zvcm0zRCopOwogI2VuZGlmCiAjZW5k
aWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2lvcy9Nb2JpbGVH
ZXN0YWx0U1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvaW9zL01vYmlsZUdlc3Rh
bHRTUEkuaAppbmRleCBkZDFmZWMyMTZlNDQ2NWViOTcyNDUzMDE2ZDllZDliMDE4MzU1M2RkLi41
Yjc2ZjEyYzgwZTNkM2UzMzZiOGFjMzhlMTlmNzQzNGU0ODgyMGVlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvaW9zL01vYmlsZUdlc3RhbHRTUEkuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvaW9zL01vYmlsZUdlc3RhbHRTUEkuaApAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01OSwyMCArNTks
MjQgQEAgdHlwZWRlZiBlbnVtIHsKIAogI2VuZGlmCiAKLUVYVEVSTl9DIENGVHlwZVJlZiBNR0Nv
cHlBbnN3ZXIoQ0ZTdHJpbmdSZWYgcXVlc3Rpb24sIENGRGljdGlvbmFyeVJlZiBvcHRpb25zKTsK
K1dURl9FWFRFUk5fQ19CRUdJTgorCitDRlR5cGVSZWYgTUdDb3B5QW5zd2VyKENGU3RyaW5nUmVm
IHF1ZXN0aW9uLCBDRkRpY3Rpb25hcnlSZWYgb3B0aW9ucyk7CiAKICNpZm5kZWYgTUdHZXRCb29s
QW5zd2VyCi1FWFRFUk5fQyBib29sIE1HR2V0Qm9vbEFuc3dlcihDRlN0cmluZ1JlZiBxdWVzdGlv
bik7Citib29sIE1HR2V0Qm9vbEFuc3dlcihDRlN0cmluZ1JlZiBxdWVzdGlvbik7CiAjZW5kaWYK
IAogI2lmbmRlZiBNR0dldFNJbnQzMkFuc3dlcgotRVhURVJOX0MgU0ludDMyIE1HR2V0U0ludDMy
QW5zd2VyKENGU3RyaW5nUmVmIHF1ZXN0aW9uLCBTSW50MzIgZGVmYXVsdFZhbHVlKTsKK1NJbnQz
MiBNR0dldFNJbnQzMkFuc3dlcihDRlN0cmluZ1JlZiBxdWVzdGlvbiwgU0ludDMyIGRlZmF1bHRW
YWx1ZSk7CiAjZW5kaWYKIAogI2lmbmRlZiBNR0dldEZsb2F0MzJBbnN3ZXIKLUVYVEVSTl9DIEZs
b2F0MzIgTUdHZXRGbG9hdDMyQW5zd2VyKENGU3RyaW5nUmVmIHF1ZXN0aW9uLCBGbG9hdDMyIGRl
ZmF1bHRWYWx1ZSk7CitGbG9hdDMyIE1HR2V0RmxvYXQzMkFuc3dlcihDRlN0cmluZ1JlZiBxdWVz
dGlvbiwgRmxvYXQzMiBkZWZhdWx0VmFsdWUpOwogI2VuZGlmCiAKK1dURl9FWFRFUk5fQ19FTkQK
KwogI2VuZGlmCiAKICNlbmRpZiAvLyBNb2JpbGVHZXN0YWx0U1BJX2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9pb3MvUXVpY2tMb29rU1BJLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9zcGkvaW9zL1F1aWNrTG9va1NQSS5oCmluZGV4IDY5MWIyNDZiYzRkMzU4
YzRkNDRkYWM3ZmFiYjI0NmUzZGRhYjBiMTMuLjVlYTZhMWU4NThjOTFmYmYyMTVkNGE0YjcwZmZm
NzVkZGM2NTc5MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9pb3Mv
UXVpY2tMb29rU1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2lvcy9RdWlj
a0xvb2tTUEkuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTYg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC00OSw3ICs0OSwxMiBAQAogCiAjZW5kaWYKIAotRVhURVJOX0MgTlNTZXQgKlFM
UHJldmlld0dldFN1cHBvcnRlZE1JTUVUeXBlcygpOwotRVhURVJOX0MgTlNTdHJpbmcgKlFMVHlw
ZUNvcHlCZXN0TWltZVR5cGVGb3JGaWxlTmFtZUFuZE1pbWVUeXBlKE5TU3RyaW5nICpmaWxlTmFt
ZSwgTlNTdHJpbmcgKm1pbWVUeXBlKTsKLUVYVEVSTl9DIE5TU3RyaW5nICpRTFR5cGVDb3B5QmVz
dE1pbWVUeXBlRm9yVVJMQW5kTWltZVR5cGUoTlNVUkwgKiwgTlNTdHJpbmcgKm1pbWVUeXBlKTsK
LUVYVEVSTl9DIE5TU3RyaW5nICpRTFR5cGVDb3B5VVRJRm9yVVJMQW5kTWltZVR5cGUoTlNVUkwg
KiwgTlNTdHJpbmcgKm1pbWVUeXBlKTsKK1dURl9FWFRFUk5fQ19CRUdJTgorCitOU1NldCAqUUxQ
cmV2aWV3R2V0U3VwcG9ydGVkTUlNRVR5cGVzKCk7CitOU1N0cmluZyAqUUxUeXBlQ29weUJlc3RN
aW1lVHlwZUZvckZpbGVOYW1lQW5kTWltZVR5cGUoTlNTdHJpbmcgKmZpbGVOYW1lLCBOU1N0cmlu
ZyAqbWltZVR5cGUpOworTlNTdHJpbmcgKlFMVHlwZUNvcHlCZXN0TWltZVR5cGVGb3JVUkxBbmRN
aW1lVHlwZShOU1VSTCAqLCBOU1N0cmluZyAqbWltZVR5cGUpOworTlNTdHJpbmcgKlFMVHlwZUNv
cHlVVElGb3JVUkxBbmRNaW1lVHlwZShOU1VSTCAqLCBOU1N0cmluZyAqbWltZVR5cGUpOworCitX
VEZfRVhURVJOX0NfRU5ECisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Nw
aS93aW4vQ29yZVRleHRTUElXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL3dp
bi9Db3JlVGV4dFNQSVdpbi5jcHAKaW5kZXggNjMwYzQxZTkwMzE5MjQzYTcyY2IwNjhlYjE3MDAx
NTBhZmVjNDEwNC4uNWRhMmY1YTU1YWRiZDI3Y2E2ZDc1MWExZmEyZGE0MGEwYTIzNjEzOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL3dpbi9Db3JlVGV4dFNQSVdpbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL3dpbi9Db3JlVGV4dFNQSVdpbi5j
cHAKQEAgLTI2LDEwICsyNiwxMCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkNv
cmVUZXh0U1BJV2luLmgiCiAKLWV4dGVybiAiQyIgeworV1RGX0VYVEVSTl9DX0JFR0lOCiAKIGNv
bnN0IENGU3RyaW5nUmVmIGtDVEZvbnRBdHRyaWJ1dGVOYW1lID0gQ0ZTVFIoIk5TRm9udCIpOwog
Y29uc3QgQ0ZTdHJpbmdSZWYga0NURm9yZWdyb3VuZENvbG9yRnJvbUNvbnRleHRBdHRyaWJ1dGVO
YW1lID0gQ0ZTVFIoIkNURm9yZWdyb3VuZENvbG9yRnJvbUNvbnRleHQiKTsKIAotfQorV1RGX0VY
VEVSTl9DX0VORAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvd2lu
L0NvcmVUZXh0U1BJV2luLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvd2luL0NvcmVU
ZXh0U1BJV2luLmgKaW5kZXggNzE2ODY1ZDNiMDU0NjM2ZjQ4MTNjZWQ4YmVhMWU0M2Y0Y2I5NDMw
Mi4uZWU2ZTQ0MWE0ZDFmYjBlNDRmZDRhNWNiYjYzZjhkNmM1NzZjYWIzZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL3dpbi9Db3JlVGV4dFNQSVdpbi5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS93aW4vQ29yZVRleHRTUElXaW4uaApAQCAtMjksNyAr
MjksNyBAQAogI2luY2x1ZGUgPENvcmVHcmFwaGljcy9Db3JlR3JhcGhpY3MuaD4KICNpbmNsdWRl
IDxDb3JlVGV4dC9Db3JlVGV4dC5oPgogCi1leHRlcm4gIkMiIHsKK1dURl9FWFRFUk5fQ19CRUdJ
TgogCiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBfX0NURm9udCogQ1RGb250UmVmOwogdHlwZWRlZiBj
b25zdCBzdHJ1Y3QgX19DVExpbmUqIENUTGluZVJlZjsKQEAgLTQxLDUgKzQxLDUgQEAgQ1RGb250
UmVmIENURm9udENyZWF0ZVdpdGhOYW1lKENGU3RyaW5nUmVmIG5hbWUsIENHRmxvYXQgc2l6ZSwg
Y29uc3QgQ0dBZmZpbmVUcmEKIENUTGluZVJlZiBDVExpbmVDcmVhdGVXaXRoQXR0cmlidXRlZFN0
cmluZyhDRkF0dHJpYnV0ZWRTdHJpbmdSZWYpOwogdm9pZCBDVExpbmVEcmF3KENUTGluZVJlZiwg
Q0dDb250ZXh0UmVmKTsKIAotfQorV1RGX0VYVEVSTl9DX0VORAogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybS9zcGkvaW9zL01hbmFnZWRDb25maWd1cmF0aW9uU1BJLmggYi9T
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9zcGkvaW9zL01hbmFnZWRDb25maWd1cmF0aW9uU1BJLmgK
aW5kZXggYjJjNjhkNWUyYjQwZjk3NDk3OGY1NDg5ODU2NDNlZTNiZTdhYTI0YS4uYjRmZDlkNDZk
NzljZDcwZGI3Yzk4MDA3NzU0Y2UxOGM3MTVjNDljOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vc3BpL2lvcy9NYW5hZ2VkQ29uZmlndXJhdGlvblNQSS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtL3NwaS9pb3MvTWFuYWdlZENvbmZpZ3VyYXRpb25TUEkuaApAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOSwx
NiArMjksMTIgQEAKIAogLy8gRklYTUU6IFdlIGNvbmRpdGlvbmFsbHkgZW5jbG9zZSB0aGUgTWFu
YWdlZENvbmZpZ3VyYXRpb24gaGVhZGVycyBpbiBhbiBleHRlcm4gIkMiIGxpbmthZ2UKIC8vIGJs
b2NrIHRvIG1ha2UgdGhlbSBzdWl0YWJsZSBmb3IgQysrIHVzZS4KLSNpZmRlZiBfX2NwbHVzcGx1
cwotZXh0ZXJuICJDIiB7Ci0jZW5kaWYKK1dURl9FWFRFUk5fQ19CRUdJTgogCiAjaW1wb3J0IDxN
YW5hZ2VkQ29uZmlndXJhdGlvbi9NQ0ZlYXR1cmVzLmg+CiAjaW1wb3J0IDxNYW5hZ2VkQ29uZmln
dXJhdGlvbi9NQ1Byb2ZpbGVDb25uZWN0aW9uLmg+CiAKLSNpZmRlZiBfX2NwbHVzcGx1cwotfQot
I2VuZGlmCitXVEZfRVhURVJOX0NfRU5ECiAKICNlbHNlCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286730</attachid>
            <date>2016-08-23 10:36:54 -0700</date>
            <delta_ts>2016-08-23 18:33:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161090-20160823103456.patch</filename>
            <type>text/plain</type>
            <size>45241</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0ODM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDIxZDNiYjZmMjdlMGM4NWY1ZjkzMDhj
MDBmN2ZiMWYzOTBmMjUyZTguLjIxMWVkNzMyZjZiMTNjMGYyNTgwZDBkZjA3NmZiZjQyM2RjNmQx
NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTYtMDgtMjMgIERhbmllbCBCYXRlcyAgPGRhYmF0
ZXNAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBFWFRFUk5fQyBmcm9tIFdURgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYxMDkwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgR3VhcmQgZXh0ZXJuYWwg
QyBkZWNsYXJhdGlvbnMgaW4gV1RGX0VYVEVSTl9DX0JFR0lOLCBXVEZfRVhURVJOX0NfRU5ELgor
CisgICAgICAgICogd3RmL0NvbXBpbGVyLmg6IFJlbW92ZSBtYWNybyBkZWZpbml0aW9uIEVYVEVS
Tl9DLgorICAgICAgICAqIHd0Zi9zcGkvY2YvQ0ZCdW5kbGVTUEkuaDoKKyAgICAgICAgKiB3dGYv
c3BpL2NvY29hL05TTWFwVGFibGVTUEkuaDoKKyAgICAgICAgKiB3dGYvc3BpL2NvY29hL1NlY3Vy
aXR5U1BJLmg6CisgICAgICAgICogd3RmL3NwaS9kYXJ3aW4vQ29tbW9uQ3J5cHRvU1BJLmg6Cisg
ICAgICAgICogd3RmL3NwaS9kYXJ3aW4vU2FuZGJveFNQSS5oOgorICAgICAgICAqIHd0Zi9zcGkv
ZGFyd2luL1hQQ1NQSS5oOgorICAgICAgICAqIHd0Zi9zcGkvZGFyd2luL2R5bGRTUEkuaDoKKwog
MjAxNi0wOC0yMiAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KIAogICAg
ICAgICBBY3R1YWxseSBlbmFibGUgdGhlIFdBU00gYnVpbGQuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWUzODY4
NDExYWZmMjBiMGM5OWRhNmY4MWQ2MDMxNWQwMTliNzA3Mi4uZGZmZjkxYzUwYzViZjNkNWJlMjJj
YzQ4YTgxYWQyYmQwOTc2MDI0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE2LTA4
LTIzICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUg
RVhURVJOX0MgZnJvbSBXVEYKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE2MTA5MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEd1YXJkIGV4dGVybmFsIEMgZGVjbGFyYXRpb25zIGluIFdURl9FWFRFUk5fQ19C
RUdJTiwgV1RGX0VYVEVSTl9DX0VORC4KKworICAgICAgICAqIHBsYXRmb3JtL3NwaS9jZi9DRkxv
Y2FsZVNQSS5oOgorICAgICAgICAqIHBsYXRmb3JtL3NwaS9jZi9DRk5ldHdvcmtDb25uZWN0aW9u
Q2FjaGVTUEkuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmg6IEFk
ZGl0aW9uYWxseSwgcmVtb3ZlIHRoZSB3b3JrYXJvdW5kIGZvciA8cmRhcjovL3Byb2JsZW0vMTgz
MzcxODI+CisgICAgICAgIGFzIHRoaXMgYnVnIHdhcyBmaXhlZCBpbiBFbCBDYXBpdGFuLgorICAg
ICAgICAqIHBsYXRmb3JtL3NwaS9jZi9DRlV0aWxpdGllc1NQSS5oOgorICAgICAgICAqIHBsYXRm
b3JtL3NwaS9jb2NvYS9Db3JlVGV4dFNQSS5oOgorICAgICAgICAqIHBsYXRmb3JtL3NwaS9jb2Nv
YS9EYXRhRGV0ZWN0b3JzQ29yZVNQSS5oOgorICAgICAgICAqIHBsYXRmb3JtL3NwaS9jb2NvYS9J
T1BNTGliU1BJLmg6CisgICAgICAgICogcGxhdGZvcm0vc3BpL2NvY29hL01hY2hWTVNQSS5oOgor
ICAgICAgICAqIHBsYXRmb3JtL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmg6CisgICAgICAgICog
cGxhdGZvcm0vc3BpL2lvcy9Nb2JpbGVHZXN0YWx0U1BJLmg6CisgICAgICAgICogcGxhdGZvcm0v
c3BpL2lvcy9RdWlja0xvb2tTUEkuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9zcGkvd2luL0NvcmVU
ZXh0U1BJV2luLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9zcGkvd2luL0NvcmVUZXh0U1BJV2lu
Lmg6CisKIDIwMTYtMDgtMjMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAg
ICAgICBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQgc2hvdWxkIG5vdCBoYXZlIGEgQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dCBwYXJlbnQgaW50ZXJmYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYjVjMTYxM2NlOTdj
YjkwMzQ2NjQ2MWVjMWI5NTVjN2QyMjQ5MzkxNy4uM2MyNTYzN2JiNmRhMzVkZDZmMGM4NTY3MmQ5
MTMyNzdhNDI3NzRlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE2LTA4LTIzICBE
YW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgRVhURVJO
X0MgZnJvbSBXVEYKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE2MTA5MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEd1YXJkIGV4dGVybmFsIEMgZGVjbGFyYXRpb25zIGluIFdURl9FWFRFUk5fQ19CRUdJTiwg
V1RGX0VYVEVSTl9DX0VORC4KKworICAgICAgICAqIFBsYXRmb3JtL3NwaS9pb3MvTWFuYWdlZENv
bmZpZ3VyYXRpb25TUEkuaDoKKwogMjAxNi0wOC0yMyAgSHVuc2VvcCBKZW9uZyAgPGhzODUuamVv
bmdAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF0gVVJUQkYgYWZ0ZXIgcjIwNDc0My4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0NvbXBpbGVyLmggYi9Tb3VyY2UvV1RGL3d0Zi9Db21w
aWxlci5oCmluZGV4IGZhZjE5YmEwMjJjMzA3MDBkODk2YmQ5OGM5OGJmZTVmZDdlNzQ3ZGQuLmRl
NmQ4MThmODU4NzE0ZGJmOTgzMDY5ZjA4Yjk1ZDAzNmU5NjUwMzggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvd3RmL0NvbXBpbGVyLmgKKysrIGIvU291cmNlL1dURi93dGYvQ29tcGlsZXIuaApAQCAt
MTczLDEzICsxNzMsNiBAQAogI2RlZmluZSBXVEZfRVhURVJOX0NfRU5ECiAjZW5kaWYKIAotLyog
RklYTUU6IFJlbW92ZSB0aGlzIG9uY2Ugd2UgaGF2ZSB0cmFuc2l0aW9uZWQgdG8gV1RGX0VYVEVS
Tl9DX0JFR0lOL1dURl9FWFRFUk5fQ19FTkQuICovCi0jaWZkZWYgX19jcGx1c3BsdXMKLSNkZWZp
bmUgRVhURVJOX0MgZXh0ZXJuICJDIgotI2Vsc2UKLSNkZWZpbmUgRVhURVJOX0MgZXh0ZXJuCi0j
ZW5kaWYKLQogLyogRkFMTFRIUk9VR0ggKi8KIAogI2lmICFkZWZpbmVkKEZBTExUSFJPVUdIKSAm
JiBDT01QSUxFUl9TVVBQT1JUUyhGQUxMVEhST1VHSF9XQVJOSU5HUykgJiYgQ09NUElMRVIoQ0xB
TkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9zcGkvY2YvQ0ZCdW5kbGVTUEkuaCBiL1Nv
dXJjZS9XVEYvd3RmL3NwaS9jZi9DRkJ1bmRsZVNQSS5oCmluZGV4IDRlZjBhZTNhNjA1YjhhYzBh
ZTdkMjE0MDdlZGJkYWNmNjc0NTkxZmYuLmFhZTkxZWM4YTBjMzdiMzY1ZDY4MTFjOTllYTJlZGVl
ODhmOTZhNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3NwaS9jZi9DRkJ1bmRsZVNQSS5o
CisrKyBiL1NvdXJjZS9XVEYvd3RmL3NwaS9jZi9DRkJ1bmRsZVNQSS5oCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzQsMTEgKzM0LDEz
IEBACiAjaW5jbHVkZSA8d3RmL3NwaS9kYXJ3aW4vWFBDU1BJLmg+CiAjZW5kaWYKIAotZXh0ZXJu
ICJDIiB7CitXVEZfRVhURVJOX0NfQkVHSU4KKwogdm9pZCBfQ0ZCdW5kbGVTZXR1cFhQQ0Jvb3Rz
dHJhcCh4cGNfb2JqZWN0X3QgYm9vdHN0cmFwKTsKIAogQm9vbGVhbiBDRkJ1bmRsZUdldExvY2Fs
aXphdGlvbkluZm9Gb3JMb2NhbGl6YXRpb24oQ0ZTdHJpbmdSZWYgbG9jYWxpemF0aW9uTmFtZSwg
U0ludDMyICpsYW5ndWFnZUNvZGUsIFNJbnQzMiAqcmVnaW9uQ29kZSwgU0ludDMyICpzY3JpcHRD
b2RlLCBDRlN0cmluZ0VuY29kaW5nICpzdHJpbmdFbmNvZGluZyk7CiBDRlN0cmluZ1JlZiBDRkJ1
bmRsZUNvcHlMb2NhbGl6YXRpb25Gb3JMb2NhbGl6YXRpb25JbmZvKFNJbnQzMiBsYW5ndWFnZUNv
ZGUsIFNJbnQzMiByZWdpb25Db2RlLCBTSW50MzIgc2NyaXB0Q29kZSwgQ0ZTdHJpbmdFbmNvZGlu
ZyBzdHJpbmdFbmNvZGluZyk7Ci19CisKK1dURl9FWFRFUk5fQ19FTkQKIAogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9zcGkvY29jb2EvTlNNYXBUYWJsZVNQSS5oIGIvU291cmNl
L1dURi93dGYvc3BpL2NvY29hL05TTWFwVGFibGVTUEkuaAppbmRleCBlYmIwMDE0NWY1YzIxMTU2
ODNiMjRhMjk3YWY0Yjg1ZGVmYTBhYTNiLi5lN2MxYTE0Nzk4ZTE2ZjQ4NTlhNjRjMGRkNjU4Njdk
ZWRhN2RjNjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9zcGkvY29jb2EvTlNNYXBUYWJs
ZVNQSS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3NwaS9jb2NvYS9OU01hcFRhYmxlU1BJLmgKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjks
NiArMjksMTAgQEAKICNpbXBvcnQgPEZvdW5kYXRpb24vTlNNYXBUYWJsZVByaXYuaD4KICNlbmRp
ZgogCi1FWFRFUk5fQyB2b2lkICpOU01hcEdldChOU01hcFRhYmxlICosIGNvbnN0IHZvaWQgKmtl
eSk7Ci1FWFRFUk5fQyB2b2lkIE5TTWFwSW5zZXJ0KE5TTWFwVGFibGUgKiwgY29uc3Qgdm9pZCAq
a2V5LCBjb25zdCB2b2lkICp2YWx1ZSk7Ci1FWFRFUk5fQyB2b2lkIE5TTWFwUmVtb3ZlKE5TTWFw
VGFibGUgKiwgY29uc3Qgdm9pZCAqa2V5KTsKK1dURl9FWFRFUk5fQ19CRUdJTgorCit2b2lkICpO
U01hcEdldChOU01hcFRhYmxlICosIGNvbnN0IHZvaWQgKmtleSk7Cit2b2lkIE5TTWFwSW5zZXJ0
KE5TTWFwVGFibGUgKiwgY29uc3Qgdm9pZCAqa2V5LCBjb25zdCB2b2lkICp2YWx1ZSk7Cit2b2lk
IE5TTWFwUmVtb3ZlKE5TTWFwVGFibGUgKiwgY29uc3Qgdm9pZCAqa2V5KTsKKworV1RGX0VYVEVS
Tl9DX0VORApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvc3BpL2NvY29hL1NlY3VyaXR5U1BJ
LmggYi9Tb3VyY2UvV1RGL3d0Zi9zcGkvY29jb2EvU2VjdXJpdHlTUEkuaAppbmRleCAyZWRmYzNm
MDk4MGY2YWVhMTExYjUxYTdmOTU5NjJjMTE2MzdlOGY0Li5jYTViZjEyMmYyNGY0NGU1ZTIyMzdk
YWE5ZDFiYjFhMmIzMjM2Mzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9zcGkvY29jb2Ev
U2VjdXJpdHlTUEkuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9zcGkvY29jb2EvU2VjdXJpdHlTUEku
aApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC01MSwxOCArNTEsMjUgQEAgZW51bSB7CiAgICAga1NlY1NpZ25hdHVyZUhhc2hBbGdvcml0aG1T
SEE1MTIgPSA4CiB9OwogCi1FWFRFUk5fQyBTZWNTaWduYXR1cmVIYXNoQWxnb3JpdGhtIFNlY0Nl
cnRpZmljYXRlR2V0U2lnbmF0dXJlSGFzaEFsZ29yaXRobShTZWNDZXJ0aWZpY2F0ZVJlZik7CitX
VEZfRVhURVJOX0NfQkVHSU4KKworU2VjU2lnbmF0dXJlSGFzaEFsZ29yaXRobSBTZWNDZXJ0aWZp
Y2F0ZUdldFNpZ25hdHVyZUhhc2hBbGdvcml0aG0oU2VjQ2VydGlmaWNhdGVSZWYpOworCitXVEZf
RVhURVJOX0NfRU5ECiAjZW5kaWYKIAogI2VuZGlmCiAKIHR5cGVkZWYgc3RydWN0IF9fU2VjVGFz
ayAqU2VjVGFza1JlZjsKLUVYVEVSTl9DIFNlY1Rhc2tSZWYgU2VjVGFza0NyZWF0ZVdpdGhBdWRp
dFRva2VuKENGQWxsb2NhdG9yUmVmLCBhdWRpdF90b2tlbl90KTsKLUVYVEVSTl9DIFNlY1Rhc2tS
ZWYgU2VjVGFza0NyZWF0ZUZyb21TZWxmKENGQWxsb2NhdG9yUmVmKTsKLUVYVEVSTl9DIENGVHlw
ZVJlZiBTZWNUYXNrQ29weVZhbHVlRm9yRW50aXRsZW1lbnQoU2VjVGFza1JlZiwgQ0ZTdHJpbmdS
ZWYgZW50aXRsZW1lbnQsIENGRXJyb3JSZWYgKik7CisKK1dURl9FWFRFUk5fQ19CRUdJTgorCitT
ZWNUYXNrUmVmIFNlY1Rhc2tDcmVhdGVXaXRoQXVkaXRUb2tlbihDRkFsbG9jYXRvclJlZiwgYXVk
aXRfdG9rZW5fdCk7CitTZWNUYXNrUmVmIFNlY1Rhc2tDcmVhdGVGcm9tU2VsZihDRkFsbG9jYXRv
clJlZik7CitDRlR5cGVSZWYgU2VjVGFza0NvcHlWYWx1ZUZvckVudGl0bGVtZW50KFNlY1Rhc2tS
ZWYsIENGU3RyaW5nUmVmIGVudGl0bGVtZW50LCBDRkVycm9yUmVmICopOwogCiAjaWYgUExBVEZP
Uk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTIwMAotRVhU
RVJOX0MgQ0ZTdHJpbmdSZWYgU2VjVGFza0NvcHlTaWduaW5nSWRlbnRpZmllcihTZWNUYXNrUmVm
LCBDRkVycm9yUmVmICopOworQ0ZTdHJpbmdSZWYgU2VjVGFza0NvcHlTaWduaW5nSWRlbnRpZmll
cihTZWNUYXNrUmVmLCBDRkVycm9yUmVmICopOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShNQUMp
CkBAIC03Miw2ICs3OSw4IEBAIGV4dGVybiBjb25zdCBTZWNBc24xVGVtcGxhdGUga1NlY0FzbjFT
dWJqZWN0UHVibGljS2V5SW5mb1RlbXBsYXRlW107CiAjZW5kaWYKIAogI2lmIEhBVkUoU0VDX1RS
VVNUX1NFUklBTElaQVRJT04pCi1FWFRFUk5fQyBDRl9SRVRVUk5TX1JFVEFJTkVEIENGRGF0YVJl
ZiBTZWNUcnVzdFNlcmlhbGl6ZShTZWNUcnVzdFJlZiwgQ0ZFcnJvclJlZiAqKTsKLUVYVEVSTl9D
IENGX1JFVFVSTlNfUkVUQUlORUQgU2VjVHJ1c3RSZWYgU2VjVHJ1c3REZXNlcmlhbGl6ZShDRkRh
dGFSZWYgc2VyaWFsaXplZFRydXN0LCBDRkVycm9yUmVmICopOworQ0ZfUkVUVVJOU19SRVRBSU5F
RCBDRkRhdGFSZWYgU2VjVHJ1c3RTZXJpYWxpemUoU2VjVHJ1c3RSZWYsIENGRXJyb3JSZWYgKik7
CitDRl9SRVRVUk5TX1JFVEFJTkVEIFNlY1RydXN0UmVmIFNlY1RydXN0RGVzZXJpYWxpemUoQ0ZE
YXRhUmVmIHNlcmlhbGl6ZWRUcnVzdCwgQ0ZFcnJvclJlZiAqKTsKICNlbmRpZgorCitXVEZfRVhU
RVJOX0NfRU5ECmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9zcGkvZGFyd2luL0NvbW1vbkNy
eXB0b1NQSS5oIGIvU291cmNlL1dURi93dGYvc3BpL2Rhcndpbi9Db21tb25DcnlwdG9TUEkuaApp
bmRleCAzMjVjYmU4MWJmMjIzZDg3ODllN2I5MmRiYTBlYTYxZTljMzIyZDcwLi5mNzliZmY5NmY5
MzhjNGE5M2I1NWFjNzZmMWM2YzRhOGFhNGFhYjRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0
Zi9zcGkvZGFyd2luL0NvbW1vbkNyeXB0b1NQSS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3NwaS9k
YXJ3aW4vQ29tbW9uQ3J5cHRvU1BJLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzMsOCArMzMsMTMgQEAKICNlbmRpZgogCiB0eXBlZGVm
IHN0cnVjdCBfX0NDUmFuZG9tKiBDQ1JhbmRvbVJlZjsKKworV1RGX0VYVEVSTl9DX0JFR0lOCisK
IGV4dGVybiBjb25zdCBDQ1JhbmRvbVJlZiBrQ0NSYW5kb21EZWZhdWx0OwotZXh0ZXJuICJDIiBp
bnQgQ0NSYW5kb21Db3B5Qnl0ZXMoQ0NSYW5kb21SZWYgcm5kLCB2b2lkICpieXRlcywgc2l6ZV90
IGNvdW50KTsKK2ludCBDQ1JhbmRvbUNvcHlCeXRlcyhDQ1JhbmRvbVJlZiBybmQsIHZvaWQgKmJ5
dGVzLCBzaXplX3QgY291bnQpOworCitXVEZfRVhURVJOX0NfRU5ECiAKICNlbmRpZiAvLyBPUyhE
QVJXSU4pCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3NwaS9kYXJ3aW4vU2FuZGJveFNQ
SS5oIGIvU291cmNlL1dURi93dGYvc3BpL2Rhcndpbi9TYW5kYm94U1BJLmgKaW5kZXggOTQzODQ5
ZDhjYmQ4ZjU4Zjk1NTMzZDg2ZDNjNTNlM2Q2NTFmMDQ5Ny4uNTBlNjgxNGFjNGZkMTBlNjY5Y2Ew
ZDU0OTY5MGMwYjU3OTMwZjgyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvc3BpL2Rhcndp
bi9TYW5kYm94U1BJLmgKKysrIGIvU291cmNlL1dURi93dGYvc3BpL2Rhcndpbi9TYW5kYm94U1BJ
LmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtNDEsMTAgKzQxLDE0IEBAIGVudW0gc2FuZGJveF9maWx0ZXJfdHlwZSB7CiAjZGVmaW5lIFNB
TkRCT1hfTkFNRURfRVhURVJOQUwgMHgwMDAzCiAjZW5kaWYKIAotRVhURVJOX0MgY29uc3QgZW51
bSBzYW5kYm94X2ZpbHRlcl90eXBlIFNBTkRCT1hfQ0hFQ0tfTk9fUkVQT1JUOwotRVhURVJOX0Mg
aW50IHNhbmRib3hfY2hlY2socGlkX3QsIGNvbnN0IGNoYXIgKm9wZXJhdGlvbiwgZW51bSBzYW5k
Ym94X2ZpbHRlcl90eXBlLCAuLi4pOwotRVhURVJOX0MgaW50IHNhbmRib3hfY29udGFpbmVyX3Bh
dGhfZm9yX3BpZChwaWRfdCwgY2hhciAqYnVmZmVyLCBzaXplX3QgYnVmc2l6ZSk7Ci1FWFRFUk5f
QyBpbnQgc2FuZGJveF9pbml0X3dpdGhfcGFyYW1ldGVycyhjb25zdCBjaGFyICpwcm9maWxlLCB1
aW50NjRfdCBmbGFncywgY29uc3QgY2hhciAqY29uc3QgcGFyYW1ldGVyc1tdLCBjaGFyICoqZXJy
b3JidWYpOworV1RGX0VYVEVSTl9DX0JFR0lOCisKK2V4dGVybiBjb25zdCBlbnVtIHNhbmRib3hf
ZmlsdGVyX3R5cGUgU0FOREJPWF9DSEVDS19OT19SRVBPUlQ7CitpbnQgc2FuZGJveF9jaGVjayhw
aWRfdCwgY29uc3QgY2hhciAqb3BlcmF0aW9uLCBlbnVtIHNhbmRib3hfZmlsdGVyX3R5cGUsIC4u
Lik7CitpbnQgc2FuZGJveF9jb250YWluZXJfcGF0aF9mb3JfcGlkKHBpZF90LCBjaGFyICpidWZm
ZXIsIHNpemVfdCBidWZzaXplKTsKK2ludCBzYW5kYm94X2luaXRfd2l0aF9wYXJhbWV0ZXJzKGNv
bnN0IGNoYXIgKnByb2ZpbGUsIHVpbnQ2NF90IGZsYWdzLCBjb25zdCBjaGFyICpjb25zdCBwYXJh
bWV0ZXJzW10sIGNoYXIgKiplcnJvcmJ1Zik7CisKK1dURl9FWFRFUk5fQ19FTkQKIAogI2VuZGlm
IC8vIE9TKERBUldJTikKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvc3BpL2Rhcndpbi9Y
UENTUEkuaCBiL1NvdXJjZS9XVEYvd3RmL3NwaS9kYXJ3aW4vWFBDU1BJLmgKaW5kZXggYTExYjJl
ZTAxYmU0NzNhNzAwODllM2M2M2JkNjkyYzU0ZWNhZGJjZi4uZWQ2ZTY5ZDM0YTBhY2QyMmIwNDVm
NTNmN2IwZGQ5YjRmMDViZjk5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvc3BpL2Rhcndp
bi9YUENTUEkuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9zcGkvZGFyd2luL1hQQ1NQSS5oCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTc5LDcx
ICs3OSw3MyBAQCB0eXBlZGVmIHZvaWQgKCp4cGNfY29ubmVjdGlvbl9oYW5kbGVyX3QpKHhwY19j
b25uZWN0aW9uX3QgY29ubmVjdGlvbik7CiAjaW5jbHVkZSA8eHBjL3ByaXZhdGUuaD4KICNlbmRp
ZgogCi1FWFRFUk5fQyBjb25zdCBzdHJ1Y3QgX3hwY19kaWN0aW9uYXJ5X3MgX3hwY19lcnJvcl9j
b25uZWN0aW9uX2ludmFsaWQ7Ci1FWFRFUk5fQyBjb25zdCBzdHJ1Y3QgX3hwY19kaWN0aW9uYXJ5
X3MgX3hwY19lcnJvcl90ZXJtaW5hdGlvbl9pbW1pbmVudDsKK1dURl9FWFRFUk5fQ19CRUdJTgog
Ci1FWFRFUk5fQyBjb25zdCBzdHJ1Y3QgX3hwY190eXBlX3MgX3hwY190eXBlX2FycmF5OwotRVhU
RVJOX0MgY29uc3Qgc3RydWN0IF94cGNfdHlwZV9zIF94cGNfdHlwZV9ib29sOwotRVhURVJOX0Mg
Y29uc3Qgc3RydWN0IF94cGNfdHlwZV9zIF94cGNfdHlwZV9kaWN0aW9uYXJ5OwotRVhURVJOX0Mg
Y29uc3Qgc3RydWN0IF94cGNfdHlwZV9zIF94cGNfdHlwZV9lcnJvcjsKLUVYVEVSTl9DIGNvbnN0
IHN0cnVjdCBfeHBjX3R5cGVfcyBfeHBjX3R5cGVfc3RyaW5nOworZXh0ZXJuIGNvbnN0IHN0cnVj
dCBfeHBjX2RpY3Rpb25hcnlfcyBfeHBjX2Vycm9yX2Nvbm5lY3Rpb25faW52YWxpZDsKK2V4dGVy
biBjb25zdCBzdHJ1Y3QgX3hwY19kaWN0aW9uYXJ5X3MgX3hwY19lcnJvcl90ZXJtaW5hdGlvbl9p
bW1pbmVudDsKIAotRVhURVJOX0MgeHBjX29iamVjdF90IHhwY19hcnJheV9jcmVhdGUoY29uc3Qg
eHBjX29iamVjdF90Kiwgc2l6ZV90IGNvdW50KTsKK2V4dGVybiBjb25zdCBzdHJ1Y3QgX3hwY190
eXBlX3MgX3hwY190eXBlX2FycmF5OworZXh0ZXJuIGNvbnN0IHN0cnVjdCBfeHBjX3R5cGVfcyBf
eHBjX3R5cGVfYm9vbDsKK2V4dGVybiBjb25zdCBzdHJ1Y3QgX3hwY190eXBlX3MgX3hwY190eXBl
X2RpY3Rpb25hcnk7CitleHRlcm4gY29uc3Qgc3RydWN0IF94cGNfdHlwZV9zIF94cGNfdHlwZV9l
cnJvcjsKK2V4dGVybiBjb25zdCBzdHJ1Y3QgX3hwY190eXBlX3MgX3hwY190eXBlX3N0cmluZzsK
KworeHBjX29iamVjdF90IHhwY19hcnJheV9jcmVhdGUoY29uc3QgeHBjX29iamVjdF90Kiwgc2l6
ZV90IGNvdW50KTsKICNpZiBDT01QSUxFUl9TVVBQT1JUUyhCTE9DS1MpCi1FWFRFUk5fQyBib29s
IHhwY19hcnJheV9hcHBseSh4cGNfb2JqZWN0X3QsIHhwY19hcnJheV9hcHBsaWVyX3QpOwotRVhU
RVJOX0MgYm9vbCB4cGNfZGljdGlvbmFyeV9hcHBseSh4cGNfb2JqZWN0X3QgeGRpY3QsIHhwY19k
aWN0aW9uYXJ5X2FwcGxpZXJfdCBhcHBsaWVyKTsKK2Jvb2wgeHBjX2FycmF5X2FwcGx5KHhwY19v
YmplY3RfdCwgeHBjX2FycmF5X2FwcGxpZXJfdCk7Citib29sIHhwY19kaWN0aW9uYXJ5X2FwcGx5
KHhwY19vYmplY3RfdCB4ZGljdCwgeHBjX2RpY3Rpb25hcnlfYXBwbGllcl90IGFwcGxpZXIpOwog
I2VuZGlmCi1FWFRFUk5fQyBzaXplX3QgeHBjX2FycmF5X2dldF9jb3VudCh4cGNfb2JqZWN0X3Qp
OwotRVhURVJOX0MgY29uc3QgY2hhciogeHBjX2FycmF5X2dldF9zdHJpbmcoeHBjX29iamVjdF90
LCBzaXplX3QgaW5kZXgpOwotRVhURVJOX0Mgdm9pZCB4cGNfYXJyYXlfc2V0X3N0cmluZyh4cGNf
b2JqZWN0X3QsIHNpemVfdCBpbmRleCwgY29uc3QgY2hhciogc3RyaW5nKTsKLUVYVEVSTl9DIGJv
b2wgeHBjX2Jvb2xfZ2V0X3ZhbHVlKHhwY19vYmplY3RfdCk7Ci1FWFRFUk5fQyB2b2lkIHhwY19j
b25uZWN0aW9uX2NhbmNlbCh4cGNfY29ubmVjdGlvbl90KTsKLUVYVEVSTl9DIHhwY19jb25uZWN0
aW9uX3QgeHBjX2Nvbm5lY3Rpb25fY3JlYXRlKGNvbnN0IGNoYXIqIG5hbWUsIGRpc3BhdGNoX3F1
ZXVlX3QpOwotRVhURVJOX0MgeHBjX2Nvbm5lY3Rpb25fdCB4cGNfY29ubmVjdGlvbl9jcmVhdGVf
bWFjaF9zZXJ2aWNlKGNvbnN0IGNoYXIqIG5hbWUsIGRpc3BhdGNoX3F1ZXVlX3QsIHVpbnQ2NF90
IGZsYWdzKTsKLUVYVEVSTl9DIHBpZF90IHhwY19jb25uZWN0aW9uX2dldF9waWQoeHBjX2Nvbm5l
Y3Rpb25fdCk7Ci1FWFRFUk5fQyB2b2lkIHhwY19jb25uZWN0aW9uX3Jlc3VtZSh4cGNfY29ubmVj
dGlvbl90KTsKLUVYVEVSTl9DIHZvaWQgeHBjX2Nvbm5lY3Rpb25fc2VuZF9tZXNzYWdlKHhwY19j
b25uZWN0aW9uX3QsIHhwY19vYmplY3RfdCk7Ci1FWFRFUk5fQyB2b2lkIHhwY19jb25uZWN0aW9u
X3NlbmRfbWVzc2FnZV93aXRoX3JlcGx5KHhwY19jb25uZWN0aW9uX3QsIHhwY19vYmplY3RfdCwg
ZGlzcGF0Y2hfcXVldWVfdCwgeHBjX2hhbmRsZXJfdCk7Ci1FWFRFUk5fQyB2b2lkIHhwY19jb25u
ZWN0aW9uX3NldF9ldmVudF9oYW5kbGVyKHhwY19jb25uZWN0aW9uX3QsIHhwY19oYW5kbGVyX3Qp
OwotRVhURVJOX0Mgdm9pZCB4cGNfY29ubmVjdGlvbl9zZXRfdGFyZ2V0X3F1ZXVlKHhwY19jb25u
ZWN0aW9uX3QsIGRpc3BhdGNoX3F1ZXVlX3QpOwotRVhURVJOX0MgeHBjX29iamVjdF90IHhwY19k
aWN0aW9uYXJ5X2NyZWF0ZShjb25zdCBjaGFyKiAgY29uc3QqIGtleXMsIGNvbnN0IHhwY19vYmpl
Y3RfdCosIHNpemVfdCBjb3VudCk7Ci1FWFRFUk5fQyB4cGNfb2JqZWN0X3QgeHBjX2RpY3Rpb25h
cnlfY3JlYXRlX3JlcGx5KHhwY19vYmplY3RfdCk7Ci1FWFRFUk5fQyBpbnQgeHBjX2RpY3Rpb25h
cnlfZHVwX2ZkKHhwY19vYmplY3RfdCwgY29uc3QgY2hhcioga2V5KTsKLUVYVEVSTl9DIHhwY19j
b25uZWN0aW9uX3QgeHBjX2RpY3Rpb25hcnlfZ2V0X3JlbW90ZV9jb25uZWN0aW9uKHhwY19vYmpl
Y3RfdCk7Ci1FWFRFUk5fQyBib29sIHhwY19kaWN0aW9uYXJ5X2dldF9ib29sKHhwY19vYmplY3Rf
dCwgY29uc3QgY2hhcioga2V5KTsKLUVYVEVSTl9DIGNvbnN0IGNoYXIqIHhwY19kaWN0aW9uYXJ5
X2dldF9zdHJpbmcoeHBjX29iamVjdF90LCBjb25zdCBjaGFyKiBrZXkpOwotRVhURVJOX0MgdWlu
dDY0X3QgeHBjX2RpY3Rpb25hcnlfZ2V0X3VpbnQ2NCh4cGNfb2JqZWN0X3QsIGNvbnN0IGNoYXIq
IGtleSk7Ci1FWFRFUk5fQyB4cGNfb2JqZWN0X3QgeHBjX2RpY3Rpb25hcnlfZ2V0X3ZhbHVlKHhw
Y19vYmplY3RfdCwgY29uc3QgY2hhcioga2V5KTsKLUVYVEVSTl9DIHZvaWQgeHBjX2RpY3Rpb25h
cnlfc2V0X2Jvb2woeHBjX29iamVjdF90LCBjb25zdCBjaGFyKiBrZXksIGJvb2wgdmFsdWUpOwot
RVhURVJOX0Mgdm9pZCB4cGNfZGljdGlvbmFyeV9zZXRfZmQoeHBjX29iamVjdF90LCBjb25zdCBj
aGFyKiBrZXksIGludCBmZCk7Ci1FWFRFUk5fQyB2b2lkIHhwY19kaWN0aW9uYXJ5X3NldF9zdHJp
bmcoeHBjX29iamVjdF90LCBjb25zdCBjaGFyKiBrZXksIGNvbnN0IGNoYXIqIHN0cmluZyk7Ci1F
WFRFUk5fQyB2b2lkIHhwY19kaWN0aW9uYXJ5X3NldF91aW50NjQoeHBjX29iamVjdF90LCBjb25z
dCBjaGFyKiBrZXksIHVpbnQ2NF90IHZhbHVlKTsKLUVYVEVSTl9DIHZvaWQgeHBjX2RpY3Rpb25h
cnlfc2V0X3ZhbHVlKHhwY19vYmplY3RfdCwgY29uc3QgY2hhciprZXksIHhwY19vYmplY3RfdCB2
YWx1ZSk7Ci1FWFRFUk5fQyB4cGNfdHlwZV90IHhwY19nZXRfdHlwZSh4cGNfb2JqZWN0X3QpOwot
RVhURVJOX0Mgdm9pZCB4cGNfbWFpbih4cGNfY29ubmVjdGlvbl9oYW5kbGVyX3QpOwotRVhURVJO
X0MgY29uc3QgY2hhciogeHBjX3N0cmluZ19nZXRfc3RyaW5nX3B0cih4cGNfb2JqZWN0X3QpOwot
RVhURVJOX0Mgdm9pZCB4cGNfdHJhbnNhY3Rpb25fYmVnaW4odm9pZCk7Ci1FWFRFUk5fQyB2b2lk
IHhwY190cmFuc2FjdGlvbl9lbmQodm9pZCk7Ci1FWFRFUk5fQyB2b2lkIHhwY190cmFuc2FjdGlv
bl9leGl0X2NsZWFuKHZvaWQpOwotRVhURVJOX0Mgdm9pZCB4cGNfdHJhY2tfYWN0aXZpdHkodm9p
ZCk7Ci0KLUVYVEVSTl9DIHhwY19vYmplY3RfdCB4cGNfY29ubmVjdGlvbl9jb3B5X2VudGl0bGVt
ZW50X3ZhbHVlKHhwY19jb25uZWN0aW9uX3QsIGNvbnN0IGNoYXIqIGVudGl0bGVtZW50KTsKLUVY
VEVSTl9DIHZvaWQgeHBjX2Nvbm5lY3Rpb25fZ2V0X2F1ZGl0X3Rva2VuKHhwY19jb25uZWN0aW9u
X3QsIGF1ZGl0X3Rva2VuX3QqKTsKLUVYVEVSTl9DIHZvaWQgeHBjX2Nvbm5lY3Rpb25fa2lsbCh4
cGNfY29ubmVjdGlvbl90LCBpbnQpOwotRVhURVJOX0Mgdm9pZCB4cGNfY29ubmVjdGlvbl9zZXRf
aW5zdGFuY2UoeHBjX2Nvbm5lY3Rpb25fdCwgdXVpZF90KTsKLUVYVEVSTl9DIG1hY2hfcG9ydF90
IHhwY19kaWN0aW9uYXJ5X2NvcHlfbWFjaF9zZW5kKHhwY19vYmplY3RfdCwgY29uc3QgY2hhciop
OwotRVhURVJOX0Mgdm9pZCB4cGNfZGljdGlvbmFyeV9zZXRfbWFjaF9zZW5kKHhwY19vYmplY3Rf
dCwgY29uc3QgY2hhciosIG1hY2hfcG9ydF90KTsKLQotRVhURVJOX0Mgdm9pZCB4cGNfY29ubmVj
dGlvbl9zZXRfYm9vdHN0cmFwKHhwY19jb25uZWN0aW9uX3QsIHhwY19vYmplY3RfdCBib290c3Ry
YXApOwotRVhURVJOX0MgeHBjX29iamVjdF90IHhwY19jb3B5X2Jvb3RzdHJhcCh2b2lkKTsKLUVY
VEVSTl9DIHZvaWQgeHBjX2Nvbm5lY3Rpb25fc2V0X29uZXNob3RfaW5zdGFuY2UoeHBjX2Nvbm5l
Y3Rpb25fdCwgdXVpZF90IGluc3RhbmNlKTsKK3NpemVfdCB4cGNfYXJyYXlfZ2V0X2NvdW50KHhw
Y19vYmplY3RfdCk7Citjb25zdCBjaGFyKiB4cGNfYXJyYXlfZ2V0X3N0cmluZyh4cGNfb2JqZWN0
X3QsIHNpemVfdCBpbmRleCk7Cit2b2lkIHhwY19hcnJheV9zZXRfc3RyaW5nKHhwY19vYmplY3Rf
dCwgc2l6ZV90IGluZGV4LCBjb25zdCBjaGFyKiBzdHJpbmcpOworYm9vbCB4cGNfYm9vbF9nZXRf
dmFsdWUoeHBjX29iamVjdF90KTsKK3ZvaWQgeHBjX2Nvbm5lY3Rpb25fY2FuY2VsKHhwY19jb25u
ZWN0aW9uX3QpOworeHBjX2Nvbm5lY3Rpb25fdCB4cGNfY29ubmVjdGlvbl9jcmVhdGUoY29uc3Qg
Y2hhciogbmFtZSwgZGlzcGF0Y2hfcXVldWVfdCk7Cit4cGNfY29ubmVjdGlvbl90IHhwY19jb25u
ZWN0aW9uX2NyZWF0ZV9tYWNoX3NlcnZpY2UoY29uc3QgY2hhciogbmFtZSwgZGlzcGF0Y2hfcXVl
dWVfdCwgdWludDY0X3QgZmxhZ3MpOworcGlkX3QgeHBjX2Nvbm5lY3Rpb25fZ2V0X3BpZCh4cGNf
Y29ubmVjdGlvbl90KTsKK3ZvaWQgeHBjX2Nvbm5lY3Rpb25fcmVzdW1lKHhwY19jb25uZWN0aW9u
X3QpOwordm9pZCB4cGNfY29ubmVjdGlvbl9zZW5kX21lc3NhZ2UoeHBjX2Nvbm5lY3Rpb25fdCwg
eHBjX29iamVjdF90KTsKK3ZvaWQgeHBjX2Nvbm5lY3Rpb25fc2VuZF9tZXNzYWdlX3dpdGhfcmVw
bHkoeHBjX2Nvbm5lY3Rpb25fdCwgeHBjX29iamVjdF90LCBkaXNwYXRjaF9xdWV1ZV90LCB4cGNf
aGFuZGxlcl90KTsKK3ZvaWQgeHBjX2Nvbm5lY3Rpb25fc2V0X2V2ZW50X2hhbmRsZXIoeHBjX2Nv
bm5lY3Rpb25fdCwgeHBjX2hhbmRsZXJfdCk7Cit2b2lkIHhwY19jb25uZWN0aW9uX3NldF90YXJn
ZXRfcXVldWUoeHBjX2Nvbm5lY3Rpb25fdCwgZGlzcGF0Y2hfcXVldWVfdCk7Cit4cGNfb2JqZWN0
X3QgeHBjX2RpY3Rpb25hcnlfY3JlYXRlKGNvbnN0IGNoYXIqICBjb25zdCoga2V5cywgY29uc3Qg
eHBjX29iamVjdF90Kiwgc2l6ZV90IGNvdW50KTsKK3hwY19vYmplY3RfdCB4cGNfZGljdGlvbmFy
eV9jcmVhdGVfcmVwbHkoeHBjX29iamVjdF90KTsKK2ludCB4cGNfZGljdGlvbmFyeV9kdXBfZmQo
eHBjX29iamVjdF90LCBjb25zdCBjaGFyKiBrZXkpOworeHBjX2Nvbm5lY3Rpb25fdCB4cGNfZGlj
dGlvbmFyeV9nZXRfcmVtb3RlX2Nvbm5lY3Rpb24oeHBjX29iamVjdF90KTsKK2Jvb2wgeHBjX2Rp
Y3Rpb25hcnlfZ2V0X2Jvb2woeHBjX29iamVjdF90LCBjb25zdCBjaGFyKiBrZXkpOworY29uc3Qg
Y2hhciogeHBjX2RpY3Rpb25hcnlfZ2V0X3N0cmluZyh4cGNfb2JqZWN0X3QsIGNvbnN0IGNoYXIq
IGtleSk7Cit1aW50NjRfdCB4cGNfZGljdGlvbmFyeV9nZXRfdWludDY0KHhwY19vYmplY3RfdCwg
Y29uc3QgY2hhcioga2V5KTsKK3hwY19vYmplY3RfdCB4cGNfZGljdGlvbmFyeV9nZXRfdmFsdWUo
eHBjX29iamVjdF90LCBjb25zdCBjaGFyKiBrZXkpOwordm9pZCB4cGNfZGljdGlvbmFyeV9zZXRf
Ym9vbCh4cGNfb2JqZWN0X3QsIGNvbnN0IGNoYXIqIGtleSwgYm9vbCB2YWx1ZSk7Cit2b2lkIHhw
Y19kaWN0aW9uYXJ5X3NldF9mZCh4cGNfb2JqZWN0X3QsIGNvbnN0IGNoYXIqIGtleSwgaW50IGZk
KTsKK3ZvaWQgeHBjX2RpY3Rpb25hcnlfc2V0X3N0cmluZyh4cGNfb2JqZWN0X3QsIGNvbnN0IGNo
YXIqIGtleSwgY29uc3QgY2hhciogc3RyaW5nKTsKK3ZvaWQgeHBjX2RpY3Rpb25hcnlfc2V0X3Vp
bnQ2NCh4cGNfb2JqZWN0X3QsIGNvbnN0IGNoYXIqIGtleSwgdWludDY0X3QgdmFsdWUpOwordm9p
ZCB4cGNfZGljdGlvbmFyeV9zZXRfdmFsdWUoeHBjX29iamVjdF90LCBjb25zdCBjaGFyKmtleSwg
eHBjX29iamVjdF90IHZhbHVlKTsKK3hwY190eXBlX3QgeHBjX2dldF90eXBlKHhwY19vYmplY3Rf
dCk7Cit2b2lkIHhwY19tYWluKHhwY19jb25uZWN0aW9uX2hhbmRsZXJfdCk7Citjb25zdCBjaGFy
KiB4cGNfc3RyaW5nX2dldF9zdHJpbmdfcHRyKHhwY19vYmplY3RfdCk7Cit2b2lkIHhwY190cmFu
c2FjdGlvbl9iZWdpbih2b2lkKTsKK3ZvaWQgeHBjX3RyYW5zYWN0aW9uX2VuZCh2b2lkKTsKK3Zv
aWQgeHBjX3RyYW5zYWN0aW9uX2V4aXRfY2xlYW4odm9pZCk7Cit2b2lkIHhwY190cmFja19hY3Rp
dml0eSh2b2lkKTsKKworeHBjX29iamVjdF90IHhwY19jb25uZWN0aW9uX2NvcHlfZW50aXRsZW1l
bnRfdmFsdWUoeHBjX2Nvbm5lY3Rpb25fdCwgY29uc3QgY2hhciogZW50aXRsZW1lbnQpOwordm9p
ZCB4cGNfY29ubmVjdGlvbl9nZXRfYXVkaXRfdG9rZW4oeHBjX2Nvbm5lY3Rpb25fdCwgYXVkaXRf
dG9rZW5fdCopOwordm9pZCB4cGNfY29ubmVjdGlvbl9raWxsKHhwY19jb25uZWN0aW9uX3QsIGlu
dCk7Cit2b2lkIHhwY19jb25uZWN0aW9uX3NldF9pbnN0YW5jZSh4cGNfY29ubmVjdGlvbl90LCB1
dWlkX3QpOworbWFjaF9wb3J0X3QgeHBjX2RpY3Rpb25hcnlfY29weV9tYWNoX3NlbmQoeHBjX29i
amVjdF90LCBjb25zdCBjaGFyKik7Cit2b2lkIHhwY19kaWN0aW9uYXJ5X3NldF9tYWNoX3NlbmQo
eHBjX29iamVjdF90LCBjb25zdCBjaGFyKiwgbWFjaF9wb3J0X3QpOworCit2b2lkIHhwY19jb25u
ZWN0aW9uX3NldF9ib290c3RyYXAoeHBjX2Nvbm5lY3Rpb25fdCwgeHBjX29iamVjdF90IGJvb3Rz
dHJhcCk7Cit4cGNfb2JqZWN0X3QgeHBjX2NvcHlfYm9vdHN0cmFwKHZvaWQpOwordm9pZCB4cGNf
Y29ubmVjdGlvbl9zZXRfb25lc2hvdF9pbnN0YW5jZSh4cGNfY29ubmVjdGlvbl90LCB1dWlkX3Qg
aW5zdGFuY2UpOwogCiAjaWYgT1NfT0JKRUNUX1VTRV9PQkpDX1JFVEFJTl9SRUxFQVNFCiAjaWYg
IWRlZmluZWQoeHBjX3JldGFpbikKICNkZWZpbmUgeHBjX3JldGFpbihvYmplY3QpICh7IHhwY19v
YmplY3RfdCBfbyA9IChvYmplY3QpOyBfeHBjX29iamVjdF92YWxpZGF0ZShfbyk7IFtfbyByZXRh
aW5dOyB9KQogI2VuZGlmCiAjZWxzZQotRVhURVJOX0MgeHBjX29iamVjdF90IHhwY19yZXRhaW4o
eHBjX29iamVjdF90KTsKK3hwY19vYmplY3RfdCB4cGNfcmV0YWluKHhwY19vYmplY3RfdCk7CiAj
ZW5kaWYKIAogI2lmIE9TX09CSkVDVF9VU0VfT0JKQ19SRVRBSU5fUkVMRUFTRQpAQCAtMTUxLDcg
KzE1Myw5IEBAIEVYVEVSTl9DIHhwY19vYmplY3RfdCB4cGNfcmV0YWluKHhwY19vYmplY3RfdCk7
CiAjZGVmaW5lIHhwY19yZWxlYXNlKG9iamVjdCkgKHsgeHBjX29iamVjdF90IF9vID0gKG9iamVj
dCk7IF94cGNfb2JqZWN0X3ZhbGlkYXRlKF9vKTsgW19vIHJlbGVhc2VdOyB9KQogI2VuZGlmCiAj
ZWxzZQotRVhURVJOX0Mgdm9pZCB4cGNfcmVsZWFzZSh4cGNfb2JqZWN0X3QpOwordm9pZCB4cGNf
cmVsZWFzZSh4cGNfb2JqZWN0X3QpOwogI2VuZGlmCiAKK1dURl9FWFRFUk5fQ19FTkQKKwogI2Vu
ZGlmIC8vIFhQQ1NQSV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9zcGkvZGFyd2luL2R5
bGRTUEkuaCBiL1NvdXJjZS9XVEYvd3RmL3NwaS9kYXJ3aW4vZHlsZFNQSS5oCmluZGV4IDg4NGI5
MzRjY2EzMjg0NzkxYmE4MmFkNTJiZjA4NGIxYWRkMzdhMGIuLjY1OGRiMTIxYzQ3ZGEyMjBiZGU4
NGQ5MGIzN2QzYmU4NTQ0MzNjZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3NwaS9kYXJ3
aW4vZHlsZFNQSS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3NwaS9kYXJ3aW4vZHlsZFNQSS5oCkBA
IC01MSw0ICs1MSw4IEBACiAKICNlbmRpZgogCi1leHRlcm4gIkMiIHVpbnQzMl90IGR5bGRfZ2V0
X3Byb2dyYW1fc2RrX3ZlcnNpb24oKTsKK1dURl9FWFRFUk5fQ19CRUdJTgorCit1aW50MzJfdCBk
eWxkX2dldF9wcm9ncmFtX3Nka192ZXJzaW9uKCk7CisKK1dURl9FWFRFUk5fQ19FTkQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jZi9DRkxvY2FsZVNQSS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NmL0NGTG9jYWxlU1BJLmgKaW5kZXggM2QxYTE4NTQy
MDFiYjlhMTk1YjlhNTdjMzQ2ZDk4ZDY5NGYxNjI3Ni4uMWNmNDM1ZTE4OGMzYjA4OWZkYjQ1YTE3
NWYyNThjNjQyMTcyMTcwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3Bp
L2NmL0NGTG9jYWxlU1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NmL0NG
TG9jYWxlU1BJLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE0IEFw
cGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAx
NiBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0zMiwxMCArMzIsMTIgQEAKICNpbXBvcnQgPENvcmVGb3VuZGF0aW9uL0NG
UHJpdi5oPgogI2VuZGlmCiAKLWV4dGVybiAiQyIgeworV1RGX0VYVEVSTl9DX0JFR0lOCisKIC8v
IEZJWE1FOiA8cmRhcjovL3Byb2JsZW0vMTgxMjgxOTI+IE1ha2UgQ0ZMb2NhbGVHZXRMYW5ndWFn
ZVJlZ2lvbkVuY29kaW5nRm9yTG9jYWxlSWRlbnRpZmllciBwdWJsaWMgQVBJCiAvLyBGSVhNRTog
PHJkYXI6Ly9wcm9ibGVtLzE4MDgzODgwPiBSZXBsYWNlIHVzZSBvZiBTY3JpcHQgTWFuYWdlciB0
byBjYW5vbmljYWxpemUgbG9jYWxlcyB3aXRoIGEgY3VzdG9tIFdlYi1zcGVjaWZpYyB0YWJsZQog
Qm9vbGVhbiBDRkxvY2FsZUdldExhbmd1YWdlUmVnaW9uRW5jb2RpbmdGb3JMb2NhbGVJZGVudGlm
aWVyKENGU3RyaW5nUmVmIGxvY2FsZSwgTGFuZ0NvZGUqLCBSZWdpb25Db2RlKiwgU2NyaXB0Q29k
ZSosIENGU3RyaW5nRW5jb2RpbmcqKTsKLX0KKworV1RGX0VYVEVSTl9DX0VORAogCiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jZi9DRk5ldHdvcmtDb25u
ZWN0aW9uQ2FjaGVTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jZi9DRk5ldHdv
cmtDb25uZWN0aW9uQ2FjaGVTUEkuaAppbmRleCBlNzEwNGUzMmI2NTZhOTJhNzY2ZDUzM2VhMDM4
Y2FjYWZiYmIxOWJhLi5hYTA5ZDllMTc0NzJjZGM1ZGQxNGI3ZDRiNzJkYzc0NTJhMzE3NDJhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY2YvQ0ZOZXR3b3JrQ29ubmVj
dGlvbkNhY2hlU1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NmL0NGTmV0
d29ya0Nvbm5lY3Rpb25DYWNoZVNQSS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxNC0yMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzcsNyArMzcsMTEgQEAgZW51bSBIVFRQQ29u
bmVjdGlvbkNhY2hlTGltaXRLZXlzIHsKIH07CiAjZW5kaWYKIAotRVhURVJOX0MgaW50IF9DRk5l
dHdvcmtIVFRQQ29ubmVjdGlvbkNhY2hlR2V0TGltaXQoSFRUUENvbm5lY3Rpb25DYWNoZUxpbWl0
S2V5cyk7Ci1FWFRFUk5fQyB2b2lkIF9DRk5ldHdvcmtIVFRQQ29ubmVjdGlvbkNhY2hlU2V0TGlt
aXQoSFRUUENvbm5lY3Rpb25DYWNoZUxpbWl0S2V5cywgaW50KTsKK1dURl9FWFRFUk5fQ19CRUdJ
TgorCitpbnQgX0NGTmV0d29ya0hUVFBDb25uZWN0aW9uQ2FjaGVHZXRMaW1pdChIVFRQQ29ubmVj
dGlvbkNhY2hlTGltaXRLZXlzKTsKK3ZvaWQgX0NGTmV0d29ya0hUVFBDb25uZWN0aW9uQ2FjaGVT
ZXRMaW1pdChIVFRQQ29ubmVjdGlvbkNhY2hlTGltaXRLZXlzLCBpbnQpOworCitXVEZfRVhURVJO
X0NfRU5ECiAKICNlbmRpZiAvLyBDRk5ldHdvcmtDb25uZWN0aW9uQ2FjaGVTUElfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NmL0NGTmV0d29ya1NQSS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NmL0NGTmV0d29ya1NQSS5oCmluZGV4IDVkODgzNmVh
OWRlZTc0YTBkMTlmNzA3YjkyMjdiZjBhMzg0MmEzMTkuLjYwODc3NGIxNTlkMmVmY2VjZWE4MzFl
OThhOGVhZGRjNDkxNjNkZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Nw
aS9jZi9DRk5ldHdvcmtTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY2Yv
Q0ZOZXR3b3JrU1BJLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE0
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0y
MDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtNDUsMTcgKzQ1LDcgQEAKIAogLy8gRklYTUU6IFJlbW92ZSB0aGUgZGVm
aW5lZChfX09CSkNfXyktZ3VhcmQgb25jZSB3ZSBmaXggPHJkYXI6Ly9wcm9ibGVtLzE5MDMzNjEw
Pi4KICNpZiBkZWZpbmVkKF9fT0JKQ19fKSAmJiBQTEFURk9STShDT0NPQSkKLS8vIEZJWE1FOiBB
cyBhIHdvcmthcm91bmQgZm9yIDxyZGFyOi8vcHJvYmxlbS8xODMzNzE4Mj4sIHdlIGNvbmRpdGlv
bmFsbHkgZW5jbG9zZSB0aGUgaGVhZGVyCi0vLyBpbiBhbiBleHRlcm4gIkMiIGxpbmthZ2UgYmxv
Y2sgdG8gbWFrZSBpdCBzdWl0YWJsZSBmb3IgQysrIHVzZS4KLSNpZmRlZiBfX2NwbHVzcGx1cwot
ZXh0ZXJuICJDIiB7Ci0jZW5kaWYKLQogI2ltcG9ydCA8Q0ZOZXR3b3JrL0NGTlNVUkxDb25uZWN0
aW9uLmg+Ci0KLSNpZmRlZiBfX2NwbHVzcGx1cwotfQotI2VuZGlmCiAjZW5kaWYgLy8gZGVmaW5l
ZChfX09CSkNfXykgJiYgUExBVEZPUk0oQ09DT0EpCiAKICNlbHNlIC8vICFQTEFURk9STShXSU4p
ICYmICFVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQpAQCAtMTMzLDUzICsxMjMsNTcgQEAgdHlwZWRl
ZiB2b2lkICheQ0ZDYWNoZWRVUkxSZXNwb25zZUNhbGxCYWNrQmxvY2spKENGQ2FjaGVkVVJMUmVz
cG9uc2VSZWYpOwogCiAjZW5kaWYgLy8gIVBMQVRGT1JNKFdJTikgJiYgIVVTRShBUFBMRV9JTlRF
Uk5BTF9TREspCiAKK1dURl9FWFRFUk5fQ19CRUdJTgorCiAjaWYgIVBMQVRGT1JNKFdJTikKLUVY
VEVSTl9DIHZvaWQgQ0ZVUkxSZXF1ZXN0U2V0U2hvdWxkU3RhcnRTeW5jaHJvbm91c2x5KENGVVJM
UmVxdWVzdFJlZiwgQm9vbGVhbik7Cit2b2lkIENGVVJMUmVxdWVzdFNldFNob3VsZFN0YXJ0U3lu
Y2hyb25vdXNseShDRlVSTFJlcXVlc3RSZWYsIEJvb2xlYW4pOwogCi1FWFRFUk5fQyBDRlVSTENh
Y2hlUmVmIENGVVJMQ2FjaGVDb3B5U2hhcmVkVVJMQ2FjaGUoKTsKLUVYVEVSTl9DIHZvaWQgQ0ZV
UkxDYWNoZVNldE1lbW9yeUNhcGFjaXR5KENGVVJMQ2FjaGVSZWYsIENGSW5kZXggbWVtb3J5Q2Fw
YWNpdHkpOworQ0ZVUkxDYWNoZVJlZiBDRlVSTENhY2hlQ29weVNoYXJlZFVSTENhY2hlKCk7Cit2
b2lkIENGVVJMQ2FjaGVTZXRNZW1vcnlDYXBhY2l0eShDRlVSTENhY2hlUmVmLCBDRkluZGV4IG1l
bW9yeUNhcGFjaXR5KTsKICNpZiBQTEFURk9STShDT0NPQSkKLUVYVEVSTl9DIEJvb2xlYW4gX0NG
TmV0d29ya0lzS25vd25IU1RTSG9zdFdpdGhTZXNzaW9uKENGVVJMUmVmLCBDRlVSTFN0b3JhZ2VT
ZXNzaW9uUmVmKTsKLUVYVEVSTl9DIHZvaWQgX0NGTmV0d29ya1Jlc2V0SFNUU0hvc3RzV2l0aFNl
c3Npb24oQ0ZVUkxTdG9yYWdlU2Vzc2lvblJlZik7CitCb29sZWFuIF9DRk5ldHdvcmtJc0tub3du
SFNUU0hvc3RXaXRoU2Vzc2lvbihDRlVSTFJlZiwgQ0ZVUkxTdG9yYWdlU2Vzc2lvblJlZik7Cit2
b2lkIF9DRk5ldHdvcmtSZXNldEhTVFNIb3N0c1dpdGhTZXNzaW9uKENGVVJMU3RvcmFnZVNlc3Np
b25SZWYpOwogI2VuZGlmCiAKLUVYVEVSTl9DIHZvaWQgQ0ZIVFRQQ29va2llU3RvcmFnZURlbGV0
ZUFsbENvb2tpZXMoQ0ZIVFRQQ29va2llU3RvcmFnZVJlZik7Cit2b2lkIENGSFRUUENvb2tpZVN0
b3JhZ2VEZWxldGVBbGxDb29raWVzKENGSFRUUENvb2tpZVN0b3JhZ2VSZWYpOwogCiAjaWYgUExB
VEZPUk0oQ09DT0EpCi1FWFRFUk5fQyBDRkRhdGFSZWYgX0NGQ2FjaGVkVVJMUmVzcG9uc2VHZXRN
ZW1NYXBwZWREYXRhKENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYpOworQ0ZEYXRhUmVmIF9DRkNhY2hl
ZFVSTFJlc3BvbnNlR2V0TWVtTWFwcGVkRGF0YShDRkNhY2hlZFVSTFJlc3BvbnNlUmVmKTsKICNp
ZmRlZiBfX0JMT0NLU19fCi1FWFRFUk5fQyB2b2lkIF9DRkNhY2hlZFVSTFJlc3BvbnNlU2V0QmVj
YW1lRmlsZUJhY2tlZENhbGxCYWNrQmxvY2soQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZiwgQ0ZDYWNo
ZWRVUkxSZXNwb25zZUNhbGxCYWNrQmxvY2ssIGRpc3BhdGNoX3F1ZXVlX3QpOwordm9pZCBfQ0ZD
YWNoZWRVUkxSZXNwb25zZVNldEJlY2FtZUZpbGVCYWNrZWRDYWxsQmFja0Jsb2NrKENGQ2FjaGVk
VVJMUmVzcG9uc2VSZWYsIENGQ2FjaGVkVVJMUmVzcG9uc2VDYWxsQmFja0Jsb2NrLCBkaXNwYXRj
aF9xdWV1ZV90KTsKICNlbmRpZgogI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQogCi1FWFRFUk5f
QyB2b2lkIENGVVJMQ29ubmVjdGlvbkludmFsaWRhdGVDb25uZWN0aW9uQ2FjaGUoKTsKLQotRVhU
RVJOX0MgQ0ZTdHJpbmdSZWYgY29uc3Qga0NGSFRUUENvb2tpZUxvY2FsRmlsZURvbWFpbjsKLUVY
VEVSTl9DIGNvbnN0IENGU3RyaW5nUmVmIGtDRlVSTFJlcXVlc3RBbGxvd0FsbFBPU1RDYWNoaW5n
OwotCi1FWFRFUk5fQyBjb25zdCBDRlN0cmluZ1JlZiBfa0NGVVJMQ29ubmVjdGlvblByb3BlcnR5
U2hvdWxkU25pZmY7Ci0KLUVYVEVSTl9DIENGSFRUUENvb2tpZVN0b3JhZ2VSZWYgX0NGSFRUUENv
b2tpZVN0b3JhZ2VHZXREZWZhdWx0KENGQWxsb2NhdG9yUmVmKTsKLUVYVEVSTl9DIHZvaWQgQ0ZI
VFRQQ29va2llU3RvcmFnZVNldENvb2tpZShDRkhUVFBDb29raWVTdG9yYWdlUmVmLCBDRkhUVFBD
b29raWVSZWYpOwotRVhURVJOX0Mgdm9pZCBDRkhUVFBDb29raWVTdG9yYWdlU2V0Q29va2llQWNj
ZXB0UG9saWN5KENGSFRUUENvb2tpZVN0b3JhZ2VSZWYsIENGSFRUUENvb2tpZVN0b3JhZ2VBY2Nl
cHRQb2xpY3kpOwotRVhURVJOX0Mgdm9pZCBfQ0ZOZXR3b3JrU2V0T3ZlcnJpZGVTeXN0ZW1Qcm94
eVNldHRpbmdzKENGRGljdGlvbmFyeVJlZik7Ci1FWFRFUk5fQyBDRlVSTENyZWRlbnRpYWxTdG9y
YWdlUmVmIENGVVJMQ3JlZGVudGlhbFN0b3JhZ2VDcmVhdGUoQ0ZBbGxvY2F0b3JSZWYpOwotRVhU
RVJOX0MgQ0ZVUkxDcmVkZW50aWFsUmVmIENGVVJMQ3JlZGVudGlhbFN0b3JhZ2VDb3B5RGVmYXVs
dENyZWRlbnRpYWxGb3JQcm90ZWN0aW9uU3BhY2UoQ0ZVUkxDcmVkZW50aWFsU3RvcmFnZVJlZiwg
Q0ZVUkxQcm90ZWN0aW9uU3BhY2VSZWYpOwotRVhURVJOX0MgQ0ZVUkxSZXF1ZXN0UHJpb3JpdHkg
Q0ZVUkxSZXF1ZXN0R2V0UmVxdWVzdFByaW9yaXR5KENGVVJMUmVxdWVzdFJlZik7Ci1FWFRFUk5f
QyB2b2lkIF9DRlVSTFJlcXVlc3RTZXRQcm90b2NvbFByb3BlcnR5KENGVVJMUmVxdWVzdFJlZiwg
Q0ZTdHJpbmdSZWYsIENGVHlwZVJlZik7Ci1FWFRFUk5fQyB2b2lkIENGVVJMUmVxdWVzdFNldFJl
cXVlc3RQcmlvcml0eShDRlVSTFJlcXVlc3RSZWYsIENGVVJMUmVxdWVzdFByaW9yaXR5KTsKLUVY
VEVSTl9DIHZvaWQgQ0ZVUkxSZXF1ZXN0U2V0U2hvdWxkUGlwZWxpbmVIVFRQKENGVVJMUmVxdWVz
dFJlZiwgQm9vbGVhbiwgQm9vbGVhbik7Ci1FWFRFUk5fQyB2b2lkIF9DRlVSTFJlcXVlc3RTZXRT
dG9yYWdlU2Vzc2lvbihDRk11dGFibGVVUkxSZXF1ZXN0UmVmLCBDRlVSTFN0b3JhZ2VTZXNzaW9u
UmVmKTsKLUVYVEVSTl9DIENGU3RyaW5nUmVmIENGVVJMUmVzcG9uc2VDb3B5U3VnZ2VzdGVkRmls
ZW5hbWUoQ0ZVUkxSZXNwb25zZVJlZik7Ci1FWFRFUk5fQyBDRkhUVFBNZXNzYWdlUmVmIENGVVJM
UmVzcG9uc2VHZXRIVFRQUmVzcG9uc2UoQ0ZVUkxSZXNwb25zZVJlZik7Ci1FWFRFUk5fQyBDRlN0
cmluZ1JlZiBDRlVSTFJlc3BvbnNlR2V0TUlNRVR5cGUoQ0ZVUkxSZXNwb25zZVJlZik7Ci1FWFRF
Uk5fQyBDRkRpY3Rpb25hcnlSZWYgX0NGVVJMUmVzcG9uc2VHZXRTU0xDZXJ0aWZpY2F0ZUNvbnRl
eHQoQ0ZVUkxSZXNwb25zZVJlZik7Ci1FWFRFUk5fQyBDRlVSTFJlZiBDRlVSTFJlc3BvbnNlR2V0
VVJMKENGVVJMUmVzcG9uc2VSZWYpOwotRVhURVJOX0Mgdm9pZCBDRlVSTFJlc3BvbnNlU2V0TUlN
RVR5cGUoQ0ZVUkxSZXNwb25zZVJlZiwgQ0ZTdHJpbmdSZWYpOwotRVhURVJOX0MgQ0ZIVFRQQ29v
a2llU3RvcmFnZVJlZiBfQ0ZVUkxTdG9yYWdlU2Vzc2lvbkNvcHlDb29raWVTdG9yYWdlKENGQWxs
b2NhdG9yUmVmLCBDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmKTsKLUVYVEVSTl9DIENGQXJyYXlSZWYg
X0NGSFRUUENvb2tpZVN0b3JhZ2VDb3B5Q29va2llc0ZvclVSTFdpdGhNYWluRG9jdW1lbnRVUkwo
Q0ZIVFRQQ29va2llU3RvcmFnZVJlZiBpbkNvb2tpZVN0b3JhZ2UsIENGVVJMUmVmIGluVVJMLCBD
RlVSTFJlZiBpbk1haW5Eb2N1bWVudFVSTCwgQm9vbGVhbiBzZW5kU2VjdXJlQ29va2llcyk7Cit2
b2lkIENGVVJMQ29ubmVjdGlvbkludmFsaWRhdGVDb25uZWN0aW9uQ2FjaGUoKTsKKworZXh0ZXJu
IENGU3RyaW5nUmVmIGNvbnN0IGtDRkhUVFBDb29raWVMb2NhbEZpbGVEb21haW47CitleHRlcm4g
Y29uc3QgQ0ZTdHJpbmdSZWYga0NGVVJMUmVxdWVzdEFsbG93QWxsUE9TVENhY2hpbmc7CisKK2V4
dGVybiBjb25zdCBDRlN0cmluZ1JlZiBfa0NGVVJMQ29ubmVjdGlvblByb3BlcnR5U2hvdWxkU25p
ZmY7CisKK0NGSFRUUENvb2tpZVN0b3JhZ2VSZWYgX0NGSFRUUENvb2tpZVN0b3JhZ2VHZXREZWZh
dWx0KENGQWxsb2NhdG9yUmVmKTsKK3ZvaWQgQ0ZIVFRQQ29va2llU3RvcmFnZVNldENvb2tpZShD
RkhUVFBDb29raWVTdG9yYWdlUmVmLCBDRkhUVFBDb29raWVSZWYpOwordm9pZCBDRkhUVFBDb29r
aWVTdG9yYWdlU2V0Q29va2llQWNjZXB0UG9saWN5KENGSFRUUENvb2tpZVN0b3JhZ2VSZWYsIENG
SFRUUENvb2tpZVN0b3JhZ2VBY2NlcHRQb2xpY3kpOwordm9pZCBfQ0ZOZXR3b3JrU2V0T3ZlcnJp
ZGVTeXN0ZW1Qcm94eVNldHRpbmdzKENGRGljdGlvbmFyeVJlZik7CitDRlVSTENyZWRlbnRpYWxT
dG9yYWdlUmVmIENGVVJMQ3JlZGVudGlhbFN0b3JhZ2VDcmVhdGUoQ0ZBbGxvY2F0b3JSZWYpOwor
Q0ZVUkxDcmVkZW50aWFsUmVmIENGVVJMQ3JlZGVudGlhbFN0b3JhZ2VDb3B5RGVmYXVsdENyZWRl
bnRpYWxGb3JQcm90ZWN0aW9uU3BhY2UoQ0ZVUkxDcmVkZW50aWFsU3RvcmFnZVJlZiwgQ0ZVUkxQ
cm90ZWN0aW9uU3BhY2VSZWYpOworQ0ZVUkxSZXF1ZXN0UHJpb3JpdHkgQ0ZVUkxSZXF1ZXN0R2V0
UmVxdWVzdFByaW9yaXR5KENGVVJMUmVxdWVzdFJlZik7Cit2b2lkIF9DRlVSTFJlcXVlc3RTZXRQ
cm90b2NvbFByb3BlcnR5KENGVVJMUmVxdWVzdFJlZiwgQ0ZTdHJpbmdSZWYsIENGVHlwZVJlZik7
Cit2b2lkIENGVVJMUmVxdWVzdFNldFJlcXVlc3RQcmlvcml0eShDRlVSTFJlcXVlc3RSZWYsIENG
VVJMUmVxdWVzdFByaW9yaXR5KTsKK3ZvaWQgQ0ZVUkxSZXF1ZXN0U2V0U2hvdWxkUGlwZWxpbmVI
VFRQKENGVVJMUmVxdWVzdFJlZiwgQm9vbGVhbiwgQm9vbGVhbik7Cit2b2lkIF9DRlVSTFJlcXVl
c3RTZXRTdG9yYWdlU2Vzc2lvbihDRk11dGFibGVVUkxSZXF1ZXN0UmVmLCBDRlVSTFN0b3JhZ2VT
ZXNzaW9uUmVmKTsKK0NGU3RyaW5nUmVmIENGVVJMUmVzcG9uc2VDb3B5U3VnZ2VzdGVkRmlsZW5h
bWUoQ0ZVUkxSZXNwb25zZVJlZik7CitDRkhUVFBNZXNzYWdlUmVmIENGVVJMUmVzcG9uc2VHZXRI
VFRQUmVzcG9uc2UoQ0ZVUkxSZXNwb25zZVJlZik7CitDRlN0cmluZ1JlZiBDRlVSTFJlc3BvbnNl
R2V0TUlNRVR5cGUoQ0ZVUkxSZXNwb25zZVJlZik7CitDRkRpY3Rpb25hcnlSZWYgX0NGVVJMUmVz
cG9uc2VHZXRTU0xDZXJ0aWZpY2F0ZUNvbnRleHQoQ0ZVUkxSZXNwb25zZVJlZik7CitDRlVSTFJl
ZiBDRlVSTFJlc3BvbnNlR2V0VVJMKENGVVJMUmVzcG9uc2VSZWYpOwordm9pZCBDRlVSTFJlc3Bv
bnNlU2V0TUlNRVR5cGUoQ0ZVUkxSZXNwb25zZVJlZiwgQ0ZTdHJpbmdSZWYpOworQ0ZIVFRQQ29v
a2llU3RvcmFnZVJlZiBfQ0ZVUkxTdG9yYWdlU2Vzc2lvbkNvcHlDb29raWVTdG9yYWdlKENGQWxs
b2NhdG9yUmVmLCBDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmKTsKK0NGQXJyYXlSZWYgX0NGSFRUUENv
b2tpZVN0b3JhZ2VDb3B5Q29va2llc0ZvclVSTFdpdGhNYWluRG9jdW1lbnRVUkwoQ0ZIVFRQQ29v
a2llU3RvcmFnZVJlZiBpbkNvb2tpZVN0b3JhZ2UsIENGVVJMUmVmIGluVVJMLCBDRlVSTFJlZiBp
bk1haW5Eb2N1bWVudFVSTCwgQm9vbGVhbiBzZW5kU2VjdXJlQ29va2llcyk7CiAjZW5kaWYgLy8g
IVBMQVRGT1JNKFdJTikKIAorV1RGX0VYVEVSTl9DX0VORAorCiAvLyBGSVhNRTogV2Ugc2hvdWxk
IG9ubHkgZm9yd2FyZCBkZWNsYXJlIHRoaXMgU1BJIHdoZW4gYnVpbGRpbmcgZm9yIGlPUyB3aXRo
b3V0IHRoZSBBcHBsZSBJbnRlcm5hbCBTREsuCiAvLyBBcyBhIHdvcmthcm91bmQgZm9yIDxyZGFy
Oi8vcHJvYmxlbS8xOTAyNTAxNj4sIHdlIG11c3QgZm9yd2FyZCBkZWNsYXJlIHRoaXMgU1BJIHJl
Z2FyZGxlc3Mgb2Ygd2hldGhlcgogLy8gd2UgYXJlIGJ1aWxkaW5nIHdpdGggdGhlIEFwcGxlIElu
dGVybmFsIFNESy4KQEAgLTIwMCwyMSArMTk0LDI1IEBAIGVudW0gOiBOU1VJbnRlZ2VyIHsKIEBl
bmQKICNlbmRpZgogCitXVEZfRVhURVJOX0NfQkVHSU4KKwogI2lmIFRBUkdFVF9PU19JUEhPTkUg
fHwgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MDExMDApCi1FWFRFUk5fQyBDRkRhdGFSZWYgX0NGTmV0d29ya0NvcHlBVFNDb250ZXh0KHZvaWQp
OwotRVhURVJOX0MgQm9vbGVhbiBfQ0ZOZXR3b3JrU2V0QVRTQ29udGV4dChDRkRhdGFSZWYpOwor
Q0ZEYXRhUmVmIF9DRk5ldHdvcmtDb3B5QVRTQ29udGV4dCh2b2lkKTsKK0Jvb2xlYW4gX0NGTmV0
d29ya1NldEFUU0NvbnRleHQoQ0ZEYXRhUmVmKTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09D
T0EpCi1FWFRFUk5fQyB2b2lkIF9DRk5ldHdvcmtSZXNldEhTVFNIb3N0c1NpbmNlRGF0ZShDRlVS
TFN0b3JhZ2VTZXNzaW9uUmVmLCBDRkRhdGVSZWYpOwordm9pZCBfQ0ZOZXR3b3JrUmVzZXRIU1RT
SG9zdHNTaW5jZURhdGUoQ0ZVUkxTdG9yYWdlU2Vzc2lvblJlZiwgQ0ZEYXRlUmVmKTsKICNlbmRp
ZgogCiAjaWYgVEFSR0VUX09TX0lQSE9ORSB8fCAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19Y
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMCkKLUVYVEVSTl9DIENGRGF0YVJlZiBDRkhU
VFBDb29raWVTdG9yYWdlQ3JlYXRlSWRlbnRpZnlpbmdEYXRhKENGQWxsb2NhdG9yUmVmIGluQWxs
b2NhdG9yLCBDRkhUVFBDb29raWVTdG9yYWdlUmVmIGluU3RvcmFnZSk7Ci1FWFRFUk5fQyBDRkhU
VFBDb29raWVTdG9yYWdlUmVmIENGSFRUUENvb2tpZVN0b3JhZ2VDcmVhdGVGcm9tSWRlbnRpZnlp
bmdEYXRhKENGQWxsb2NhdG9yUmVmIGluQWxsb2NhdG9yLCBDRkRhdGFSZWYgaW5EYXRhKTsKLUVY
VEVSTl9DIENGQXJyYXlSZWYgX0NGSFRUUFBhcnNlZENvb2tpZXNXaXRoUmVzcG9uc2VIZWFkZXJG
aWVsZHMoQ0ZBbGxvY2F0b3JSZWYgaW5BbGxvY2F0b3IsIENGRGljdGlvbmFyeVJlZiBoZWFkZXJG
aWVsZHMsIENGVVJMUmVmIGluVVJMKTsKK0NGRGF0YVJlZiBDRkhUVFBDb29raWVTdG9yYWdlQ3Jl
YXRlSWRlbnRpZnlpbmdEYXRhKENGQWxsb2NhdG9yUmVmIGluQWxsb2NhdG9yLCBDRkhUVFBDb29r
aWVTdG9yYWdlUmVmIGluU3RvcmFnZSk7CitDRkhUVFBDb29raWVTdG9yYWdlUmVmIENGSFRUUENv
b2tpZVN0b3JhZ2VDcmVhdGVGcm9tSWRlbnRpZnlpbmdEYXRhKENGQWxsb2NhdG9yUmVmIGluQWxs
b2NhdG9yLCBDRkRhdGFSZWYgaW5EYXRhKTsKK0NGQXJyYXlSZWYgX0NGSFRUUFBhcnNlZENvb2tp
ZXNXaXRoUmVzcG9uc2VIZWFkZXJGaWVsZHMoQ0ZBbGxvY2F0b3JSZWYgaW5BbGxvY2F0b3IsIENG
RGljdGlvbmFyeVJlZiBoZWFkZXJGaWVsZHMsIENGVVJMUmVmIGluVVJMKTsKICNlbmRpZgogCitX
VEZfRVhURVJOX0NfRU5ECisKICNpZiBkZWZpbmVkKF9fT0JKQ19fKQogCiBAaW50ZXJmYWNlIE5T
SFRUUENvb2tpZSAoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2Nm
L0NGVXRpbGl0aWVzU1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY2YvQ0ZVdGls
aXRpZXNTUEkuaAppbmRleCAxNTY4NmI0YzIzMjhhYmEzM2JkODczYjQ4NjAwODQzODg1NmFkZGFj
Li5mYzhjZDc5Mjc2MmJmMGE3NjIwYTEyYWNmMTIwZmEzMDlhMzc4ZmZjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY2YvQ0ZVdGlsaXRpZXNTUEkuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY2YvQ0ZVdGlsaXRpZXNTUEkuaApAQCAtMzEsOCArMzEs
MTEgQEAKICNpbXBvcnQgPENvcmVGb3VuZGF0aW9uL0NGUHJpdi5oPgogI2VuZGlmCiAKLWV4dGVy
biAiQyIgeworV1RGX0VYVEVSTl9DX0JFR0lOCisKIENGRGljdGlvbmFyeVJlZiBfQ0ZDb3B5U3lz
dGVtVmVyc2lvbkRpY3Rpb25hcnkodm9pZCk7CiBleHRlcm4gY29uc3QgQ0ZTdHJpbmdSZWYgX2tD
RlN5c3RlbVZlcnNpb25Qcm9kdWN0VmVyc2lvbktleTsKIGV4dGVybiBjb25zdCBDRlN0cmluZ1Jl
ZiBfa0NGU3lzdGVtVmVyc2lvbkJ1aWxkVmVyc2lvbktleTsKLX0KKworV1RGX0VYVEVSTl9DX0VO
RAorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY29jb2EvQ29yZVRl
eHRTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jb2NvYS9Db3JlVGV4dFNQSS5o
CmluZGV4IGFiNDkxN2MzYTk5ZjAxMzZhYTE5MzhiMmZkMTE5YjU5OGNlYTYyYWYuLmNlMDE1ZTMy
ZmFmYzg1MTE1NDIwZDIwOTdmZTkyMTYwZTMyMWEzYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3NwaS9jb2NvYS9Db3JlVGV4dFNQSS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3NwaS9jb2NvYS9Db3JlVGV4dFNQSS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDE0LTIwMTYgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDQsNyArNDQsNyBAQCBlbnVtIHsK
IAogI2VuZGlmCiAKLWV4dGVybiAiQyIgeworV1RGX0VYVEVSTl9DX0JFR0lOCiAKIHR5cGVkZWYg
Y29uc3QgVW5pQ2hhciogKCpDVFVuaUNoYXJQcm92aWRlckNhbGxiYWNrKShDRkluZGV4IHN0cmlu
Z0luZGV4LCBDRkluZGV4KiBjaGFyQ291bnQsIENGRGljdGlvbmFyeVJlZiogYXR0cmlidXRlcywg
dm9pZCogcmVmQ29uKTsKIHR5cGVkZWYgdm9pZCAoKkNUVW5pQ2hhckRpc3Bvc2VDYWxsYmFjayko
Y29uc3QgVW5pQ2hhciogY2hhcnMsIHZvaWQqIHJlZkNvbik7CkBAIC0xMzUsNiArMTM1LDYgQEAg
Ym9vbCBDVEZvbnRJc0FwcGxlQ29sb3JFbW9qaShDVEZvbnRSZWYpOwogYm9vbCBDVEZvbnREZXNj
cmlwdG9ySXNTeXN0ZW1VSUZvbnQoQ1RGb250RGVzY3JpcHRvclJlZik7CiBDVEZvbnRSZWYgQ1RG
b250Q3JlYXRlRm9yQ2hhcmFjdGVycyhDVEZvbnRSZWYgY3VycmVudEZvbnQsIGNvbnN0IFVURjE2
Q2hhciAqY2hhcmFjdGVycywgQ0ZJbmRleCBsZW5ndGgsIENGSW5kZXggKmNvdmVyZWRMZW5ndGgp
OwogCi19CitXVEZfRVhURVJOX0NfRU5ECiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vc3BpL2NvY29hL0RhdGFEZXRlY3RvcnNDb3JlU1BJLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9zcGkvY29jb2EvRGF0YURldGVjdG9yc0NvcmVTUEkuaAppbmRleCA1
NGE0Y2JiNWNjYThiNWNjN2RlNDUwY2Q1NmFhYzE4MGQxOWNkOGFmLi5hMGMzNjk3ZDBlMmU4OWMx
NjZjZTczODZmNWMwN2MxMTVjZjc3MzFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9zcGkvY29jb2EvRGF0YURldGVjdG9yc0NvcmVTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9zcGkvY29jb2EvRGF0YURldGVjdG9yc0NvcmVTUEkuaApAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEyNyw3ICsx
MjcsNyBAQCBlbnVtIHsKICAgICBERFNjYW5uZXJTb3VyY2VTcG90bGlnaHQgPSAxPDwxLAogfTsK
IAotZXh0ZXJuICJDIiB7CitXVEZfRVhURVJOX0NfQkVHSU4KIAogZXh0ZXJuIGNvbnN0IEREU2Nh
bm5lckNvcHlSZXN1bHRzT3B0aW9ucyBERFNjYW5uZXJDb3B5UmVzdWx0c09wdGlvbnNGb3JQYXNz
aXZlVXNlOwogCkBAIC0xNDgsNiArMTQ4LDYgQEAgYm9vbCBERFJlc3VsdEhhc1Byb3BlcnRpZXMo
RERSZXN1bHRSZWYsIENGSW5kZXggcHJvcGVydHlTZXQpOwogQ0ZBcnJheVJlZiBERFJlc3VsdEdl
dFN1YlJlc3VsdHMoRERSZXN1bHRSZWYpOwogRERRdWVyeVJhbmdlIEREUmVzdWx0R2V0UXVlcnlS
YW5nZUZvclVSTGlmaWNhdGlvbihERFJlc3VsdFJlZik7CiAKLX0KK1dURl9FWFRFUk5fQ19FTkQK
IAogI2VuZGlmIC8vIERhdGFEZXRlY3RvcnNDb3JlU1BJX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3NwaS9jb2NvYS9JT1BNTGliU1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9zcGkvY29jb2EvSU9QTUxpYlNQSS5oCmluZGV4IDAzYjljNTRmZTk4ZGQzODU0NTNl
NDQyNDc3ODJlMGIxMjdlNDM2NjEuLmUxY2UzYWRmMDkwN2I4YjZiMjBjMjAyYjc2N2JmNmQ5Mzdj
ZWNmOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jb2NvYS9JT1BN
TGliU1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NvY29hL0lPUE1MaWJT
UEkuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTYgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC0zOCwxMiArMzgsMjAgQEAKIAogdHlwZWRlZiB1aW50MzJfdCBJT1BNQXNzZXJ0aW9uSUQ7
CiAKLUVYVEVSTl9DIGNvbnN0IENGU3RyaW5nUmVmIGtJT1BNQXNzZXJ0aW9uVHlwZVByZXZlbnRV
c2VySWRsZURpc3BsYXlTbGVlcCA9IENGU1RSKCJQcmV2ZW50VXNlcklkbGVEaXNwbGF5U2xlZXAi
KTsKK1dURl9FWFRFUk5fQ19CRUdJTgorCitjb25zdCBDRlN0cmluZ1JlZiBrSU9QTUFzc2VydGlv
blR5cGVQcmV2ZW50VXNlcklkbGVEaXNwbGF5U2xlZXAgPSBDRlNUUigiUHJldmVudFVzZXJJZGxl
RGlzcGxheVNsZWVwIik7CisKK1dURl9FWFRFUk5fQ19FTkQKIAogI2VuZGlmCiAKLUVYVEVSTl9D
IElPUmV0dXJuIElPUE1Bc3NlcnRpb25DcmVhdGVXaXRoRGVzY3JpcHRpb24oQ0ZTdHJpbmdSZWYg
YXNzZXJ0aW9uVHlwZSwgQ0ZTdHJpbmdSZWYgbmFtZSwgQ0ZTdHJpbmdSZWYgZGV0YWlscywgQ0ZT
dHJpbmdSZWYgaHVtYW5SZWFkYWJsZVJlYXNvbiwKK1dURl9FWFRFUk5fQ19CRUdJTgorCitJT1Jl
dHVybiBJT1BNQXNzZXJ0aW9uQ3JlYXRlV2l0aERlc2NyaXB0aW9uKENGU3RyaW5nUmVmIGFzc2Vy
dGlvblR5cGUsIENGU3RyaW5nUmVmIG5hbWUsIENGU3RyaW5nUmVmIGRldGFpbHMsIENGU3RyaW5n
UmVmIGh1bWFuUmVhZGFibGVSZWFzb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIENGU3RyaW5nUmVmIGxvY2FsaXphdGlvbkJ1bmRsZVBhdGgs
IENGVGltZUludGVydmFsIHRpbWVvdXQsIENGU3RyaW5nUmVmIHRpbWVvdXRBY3Rpb24sIElPUE1B
c3NlcnRpb25JRCAqKTsKLUVYVEVSTl9DIElPUmV0dXJuIElPUE1Bc3NlcnRpb25SZWxlYXNlKElP
UE1Bc3NlcnRpb25JRCk7CitJT1JldHVybiBJT1BNQXNzZXJ0aW9uUmVsZWFzZShJT1BNQXNzZXJ0
aW9uSUQpOworCitXVEZfRVhURVJOX0NfRU5ECiAKICNlbmRpZiAvLyBJT1BNTGliU1BJX2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jb2NvYS9NYWNoVk1TUEkuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jb2NvYS9NYWNoVk1TUEkuaAppbmRleCBkOGY2
MThkODg1YzAwZjdkYTFlODlhNjk4M2I1ZDc5MzI1NmY1MDNlLi41YTFmYWEyNmFlYjIzMjJkNGJj
YTlmMDdhYTA2Y2YyODQxMDBhNjE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9zcGkvY29jb2EvTWFjaFZNU1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3Bp
L2NvY29hL01hY2hWTVNQSS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTM0LDE0ICszNCwxOCBAQAogI2luY2x1ZGUgPG1hY2gvbWFjaF92
bS5oPgogI2VuZGlmCiAKLUVYVEVSTl9DIGtlcm5fcmV0dXJuX3QgbWFjaF92bV9hbGxvY2F0ZSh2
bV9tYXBfdCB0YXJnZXQsIG1hY2hfdm1fYWRkcmVzc190KiwgbWFjaF92bV9zaXplX3QsIGludCBm
bGFncyk7Ci1FWFRFUk5fQyBrZXJuX3JldHVybl90IG1hY2hfdm1fZGVhbGxvY2F0ZSh2bV9tYXBf
dCB0YXJnZXQsIG1hY2hfdm1fYWRkcmVzc190LCBtYWNoX3ZtX3NpemVfdCk7Ci1FWFRFUk5fQyBr
ZXJuX3JldHVybl90IG1hY2hfdm1fbWFwKHZtX21hcF90IHRhcmdldFRhc2ssIG1hY2hfdm1fYWRk
cmVzc190KiwgbWFjaF92bV9zaXplX3QsIG1hY2hfdm1fb2Zmc2V0X3QgbWFzaywgaW50IGZsYWdz
LAorV1RGX0VYVEVSTl9DX0JFR0lOCisKK2tlcm5fcmV0dXJuX3QgbWFjaF92bV9hbGxvY2F0ZSh2
bV9tYXBfdCB0YXJnZXQsIG1hY2hfdm1fYWRkcmVzc190KiwgbWFjaF92bV9zaXplX3QsIGludCBm
bGFncyk7CitrZXJuX3JldHVybl90IG1hY2hfdm1fZGVhbGxvY2F0ZSh2bV9tYXBfdCB0YXJnZXQs
IG1hY2hfdm1fYWRkcmVzc190LCBtYWNoX3ZtX3NpemVfdCk7CitrZXJuX3JldHVybl90IG1hY2hf
dm1fbWFwKHZtX21hcF90IHRhcmdldFRhc2ssIG1hY2hfdm1fYWRkcmVzc190KiwgbWFjaF92bV9z
aXplX3QsIG1hY2hfdm1fb2Zmc2V0X3QgbWFzaywgaW50IGZsYWdzLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBtZW1fZW50cnlfbmFtZV9wb3J0X3QsIG1lbW9yeV9vYmplY3Rf
b2Zmc2V0X3QsIGJvb2xlYW5fdCBjb3B5LCB2bV9wcm90X3QgY3VycmVudFByb3RlY3Rpb24sIHZt
X3Byb3RfdCBtYXhpbXVtUHJvdGVjdGlvbiwgdm1faW5oZXJpdF90KTsKLUVYVEVSTl9DIGtlcm5f
cmV0dXJuX3QgbWFjaF92bV9wcm90ZWN0KHZtX21hcF90IHRhcmdldFRhc2ssIG1hY2hfdm1fYWRk
cmVzc190LCBtYWNoX3ZtX3NpemVfdCwgYm9vbGVhbl90IHNldE1heGltdW0sIHZtX3Byb3RfdCBu
ZXdQcm90ZWN0aW9uKTsKLUVYVEVSTl9DIGtlcm5fcmV0dXJuX3QgbWFjaF92bV9yZWdpb24odm1f
bWFwX3QgdGFyZ2V0VGFzaywgbWFjaF92bV9hZGRyZXNzX3QqLCBtYWNoX3ZtX3NpemVfdCosIHZt
X3JlZ2lvbl9mbGF2b3JfdCwgdm1fcmVnaW9uX2luZm9fdCwKK2tlcm5fcmV0dXJuX3QgbWFjaF92
bV9wcm90ZWN0KHZtX21hcF90IHRhcmdldFRhc2ssIG1hY2hfdm1fYWRkcmVzc190LCBtYWNoX3Zt
X3NpemVfdCwgYm9vbGVhbl90IHNldE1heGltdW0sIHZtX3Byb3RfdCBuZXdQcm90ZWN0aW9uKTsK
K2tlcm5fcmV0dXJuX3QgbWFjaF92bV9yZWdpb24odm1fbWFwX3QgdGFyZ2V0VGFzaywgbWFjaF92
bV9hZGRyZXNzX3QqLCBtYWNoX3ZtX3NpemVfdCosIHZtX3JlZ2lvbl9mbGF2b3JfdCwgdm1fcmVn
aW9uX2luZm9fdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFjaF9t
c2dfdHlwZV9udW1iZXJfdCogaW5mb0NvdW50LCBtYWNoX3BvcnRfdCogb2JqZWN0TmFtZSk7Ci1F
WFRFUk5fQyBrZXJuX3JldHVybl90IG1hY2hfdm1fcmVnaW9uX3JlY3Vyc2Uodm1fbWFwX3QgdGFy
Z2V0VGFzaywgbWFjaF92bV9hZGRyZXNzX3QqLCBtYWNoX3ZtX3NpemVfdCosIHVpbnQzMl90KiBk
ZXB0aCwgdm1fcmVnaW9uX3JlY3Vyc2VfaW5mb190LCBtYWNoX21zZ190eXBlX251bWJlcl90KiBp
bmZvQ291bnQpOwotRVhURVJOX0Mga2Vybl9yZXR1cm5fdCBtYWNoX3ZtX3B1cmdhYmxlX2NvbnRy
b2wodm1fbWFwX3QgdGFyZ2V0LCBtYWNoX3ZtX2FkZHJlc3NfdCwgdm1fcHVyZ2FibGVfdCBjb250
cm9sLCBpbnQqIHN0YXRlKTsKK2tlcm5fcmV0dXJuX3QgbWFjaF92bV9yZWdpb25fcmVjdXJzZSh2
bV9tYXBfdCB0YXJnZXRUYXNrLCBtYWNoX3ZtX2FkZHJlc3NfdCosIG1hY2hfdm1fc2l6ZV90Kiwg
dWludDMyX3QqIGRlcHRoLCB2bV9yZWdpb25fcmVjdXJzZV9pbmZvX3QsIG1hY2hfbXNnX3R5cGVf
bnVtYmVyX3QqIGluZm9Db3VudCk7CitrZXJuX3JldHVybl90IG1hY2hfdm1fcHVyZ2FibGVfY29u
dHJvbCh2bV9tYXBfdCB0YXJnZXQsIG1hY2hfdm1fYWRkcmVzc190LCB2bV9wdXJnYWJsZV90IGNv
bnRyb2wsIGludCogc3RhdGUpOworCitXVEZfRVhURVJOX0NfRU5ECiAKICNlbmRpZiAvLyBNYWNo
Vk1TUElfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NvY29hL1F1
YXJ0ekNvcmVTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jb2NvYS9RdWFydHpD
b3JlU1BJLmgKaW5kZXggYzNmZjIzZDdlN2Y3YTA1YzU1YTJhMzAzOGQ3N2NjNTZlMTNmMDgyNy4u
ZjQzZTcxYzZhMzMyY2ZhM2ZlYWMxNTZjNDNjODRjOTk5MzdkMDhjMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NvY29hL1F1YXJ0ekNvcmVTUEkuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY29jb2EvUXVhcnR6Q29yZVNQSS5oCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTE3MCwyMiArMTcw
LDIyIEBAIHR5cGVkZWYgZW51bSB7CiAKIC8vIEZJWE1FOiBEZWNsYXJlIHRoZXNlIGZ1bmN0aW9u
cyBldmVuIHdoZW4gVVNFKEFQUExFX0lOVEVSTkFMX1NESykgaXMgdHJ1ZSBvbmNlIHdlIGNhbiBm
aXggPHJkYXI6Ly9wcm9ibGVtLzI2NTg0ODI4PiBpbiBhIGJldHRlciB3YXkuCiAjaWYgIVVTRShB
UFBMRV9JTlRFUk5BTF9TREspCi1FWFRFUk5fQyB2b2lkIENBUmVuZGVyU2VydmVyQ2FwdHVyZUxh
eWVyV2l0aFRyYW5zZm9ybShtYWNoX3BvcnRfdCwgdWludDMyX3QgY2xpZW50SWQsIHVpbnQ2NF90
IGxheWVySWQsIHVpbnQzMl90IHNsb3RJZCwgaW50MzJfdCBveCwgaW50MzJfdCBveSwgY29uc3Qg
Q0FUcmFuc2Zvcm0zRCopOwordm9pZCBDQVJlbmRlclNlcnZlckNhcHR1cmVMYXllcldpdGhUcmFu
c2Zvcm0obWFjaF9wb3J0X3QsIHVpbnQzMl90IGNsaWVudElkLCB1aW50NjRfdCBsYXllcklkLCB1
aW50MzJfdCBzbG90SWQsIGludDMyX3Qgb3gsIGludDMyX3Qgb3ksIGNvbnN0IENBVHJhbnNmb3Jt
M0QqKTsKIAogI2lmIFVTRShJT1NVUkZBQ0UpCi1FWFRFUk5fQyB2b2lkIENBUmVuZGVyU2VydmVy
UmVuZGVyTGF5ZXJXaXRoVHJhbnNmb3JtKG1hY2hfcG9ydF90IHNlcnZlcl9wb3J0LCB1aW50MzJf
dCBjbGllbnRfaWQsIHVpbnQ2NF90IGxheWVyX2lkLCBJT1N1cmZhY2VSZWYsIGludDMyX3Qgb3gs
IGludDMyX3Qgb3ksIGNvbnN0IENBVHJhbnNmb3JtM0QqKTsKLUVYVEVSTl9DIHZvaWQgQ0FSZW5k
ZXJTZXJ2ZXJSZW5kZXJEaXNwbGF5TGF5ZXJXaXRoVHJhbnNmb3JtQW5kVGltZU9mZnNldChtYWNo
X3BvcnRfdCwgQ0ZTdHJpbmdSZWYgZGlzcGxheV9uYW1lLCB1aW50MzJfdCBjbGllbnRfaWQsIHVp
bnQ2NF90IGxheWVyX2lkLCBJT1N1cmZhY2VSZWYsIGludDMyX3Qgb3gsIGludDMyX3Qgb3ksIGNv
bnN0IENBVHJhbnNmb3JtM0QqLCBDRlRpbWVJbnRlcnZhbCk7Cit2b2lkIENBUmVuZGVyU2VydmVy
UmVuZGVyTGF5ZXJXaXRoVHJhbnNmb3JtKG1hY2hfcG9ydF90IHNlcnZlcl9wb3J0LCB1aW50MzJf
dCBjbGllbnRfaWQsIHVpbnQ2NF90IGxheWVyX2lkLCBJT1N1cmZhY2VSZWYsIGludDMyX3Qgb3gs
IGludDMyX3Qgb3ksIGNvbnN0IENBVHJhbnNmb3JtM0QqKTsKK3ZvaWQgQ0FSZW5kZXJTZXJ2ZXJS
ZW5kZXJEaXNwbGF5TGF5ZXJXaXRoVHJhbnNmb3JtQW5kVGltZU9mZnNldChtYWNoX3BvcnRfdCwg
Q0ZTdHJpbmdSZWYgZGlzcGxheV9uYW1lLCB1aW50MzJfdCBjbGllbnRfaWQsIHVpbnQ2NF90IGxh
eWVyX2lkLCBJT1N1cmZhY2VSZWYsIGludDMyX3Qgb3gsIGludDMyX3Qgb3ksIGNvbnN0IENBVHJh
bnNmb3JtM0QqLCBDRlRpbWVJbnRlcnZhbCk7CiAjZWxzZQogdHlwZWRlZiBzdHJ1Y3QgQ0FSZW5k
ZXJTZXJ2ZXJCdWZmZXIqIENBUmVuZGVyU2VydmVyQnVmZmVyUmVmOwotRVhURVJOX0MgQ0FSZW5k
ZXJTZXJ2ZXJCdWZmZXJSZWYgQ0FSZW5kZXJTZXJ2ZXJDcmVhdGVCdWZmZXIoc2l6ZV90LCBzaXpl
X3QpOwotRVhURVJOX0Mgdm9pZCBDQVJlbmRlclNlcnZlckRlc3Ryb3lCdWZmZXIoQ0FSZW5kZXJT
ZXJ2ZXJCdWZmZXJSZWYpOwotRVhURVJOX0Mgc2l6ZV90IENBUmVuZGVyU2VydmVyR2V0QnVmZmVy
V2lkdGgoQ0FSZW5kZXJTZXJ2ZXJCdWZmZXJSZWYpOwotRVhURVJOX0Mgc2l6ZV90IENBUmVuZGVy
U2VydmVyR2V0QnVmZmVySGVpZ2h0KENBUmVuZGVyU2VydmVyQnVmZmVyUmVmKTsKLUVYVEVSTl9D
IHNpemVfdCBDQVJlbmRlclNlcnZlckdldEJ1ZmZlclJvd0J5dGVzKENBUmVuZGVyU2VydmVyQnVm
ZmVyUmVmKTsKLUVYVEVSTl9DIHVpbnQ4X3QqIENBUmVuZGVyU2VydmVyR2V0QnVmZmVyRGF0YShD
QVJlbmRlclNlcnZlckJ1ZmZlclJlZik7Ci1FWFRFUk5fQyBzaXplX3QgQ0FSZW5kZXJTZXJ2ZXJH
ZXRCdWZmZXJEYXRhU2l6ZShDQVJlbmRlclNlcnZlckJ1ZmZlclJlZik7Ci0KLUVYVEVSTl9DIGJv
b2wgQ0FSZW5kZXJTZXJ2ZXJSZW5kZXJMYXllcldpdGhUcmFuc2Zvcm0obWFjaF9wb3J0X3QsIHVp
bnQzMl90IGNsaWVudF9pZCwgdWludDY0X3QgbGF5ZXJfaWQsIENBUmVuZGVyU2VydmVyQnVmZmVy
UmVmLCBpbnQzMl90IG94LCBpbnQzMl90IG95LCBjb25zdCBDQVRyYW5zZm9ybTNEKik7CitDQVJl
bmRlclNlcnZlckJ1ZmZlclJlZiBDQVJlbmRlclNlcnZlckNyZWF0ZUJ1ZmZlcihzaXplX3QsIHNp
emVfdCk7Cit2b2lkIENBUmVuZGVyU2VydmVyRGVzdHJveUJ1ZmZlcihDQVJlbmRlclNlcnZlckJ1
ZmZlclJlZik7CitzaXplX3QgQ0FSZW5kZXJTZXJ2ZXJHZXRCdWZmZXJXaWR0aChDQVJlbmRlclNl
cnZlckJ1ZmZlclJlZik7CitzaXplX3QgQ0FSZW5kZXJTZXJ2ZXJHZXRCdWZmZXJIZWlnaHQoQ0FS
ZW5kZXJTZXJ2ZXJCdWZmZXJSZWYpOworc2l6ZV90IENBUmVuZGVyU2VydmVyR2V0QnVmZmVyUm93
Qnl0ZXMoQ0FSZW5kZXJTZXJ2ZXJCdWZmZXJSZWYpOwordWludDhfdCogQ0FSZW5kZXJTZXJ2ZXJH
ZXRCdWZmZXJEYXRhKENBUmVuZGVyU2VydmVyQnVmZmVyUmVmKTsKK3NpemVfdCBDQVJlbmRlclNl
cnZlckdldEJ1ZmZlckRhdGFTaXplKENBUmVuZGVyU2VydmVyQnVmZmVyUmVmKTsKKworYm9vbCBD
QVJlbmRlclNlcnZlclJlbmRlckxheWVyV2l0aFRyYW5zZm9ybShtYWNoX3BvcnRfdCwgdWludDMy
X3QgY2xpZW50X2lkLCB1aW50NjRfdCBsYXllcl9pZCwgQ0FSZW5kZXJTZXJ2ZXJCdWZmZXJSZWYs
IGludDMyX3Qgb3gsIGludDMyX3Qgb3ksIGNvbnN0IENBVHJhbnNmb3JtM0QqKTsKICNlbmRpZgog
I2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9pb3MvTW9i
aWxlR2VzdGFsdFNQSS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2lvcy9Nb2JpbGVH
ZXN0YWx0U1BJLmgKaW5kZXggZGQxZmVjMjE2ZTQ0NjVlYjk3MjQ1MzAxNmQ5ZWQ5YjAxODM1NTNk
ZC4uNWI3NmYxMmM4MGUzZDNlMzM2YjhhYzM4ZTE5Zjc0MzRlNDg4MjBlZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2lvcy9Nb2JpbGVHZXN0YWx0U1BJLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2lvcy9Nb2JpbGVHZXN0YWx0U1BJLmgKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTksMjAg
KzU5LDI0IEBAIHR5cGVkZWYgZW51bSB7CiAKICNlbmRpZgogCi1FWFRFUk5fQyBDRlR5cGVSZWYg
TUdDb3B5QW5zd2VyKENGU3RyaW5nUmVmIHF1ZXN0aW9uLCBDRkRpY3Rpb25hcnlSZWYgb3B0aW9u
cyk7CitXVEZfRVhURVJOX0NfQkVHSU4KKworQ0ZUeXBlUmVmIE1HQ29weUFuc3dlcihDRlN0cmlu
Z1JlZiBxdWVzdGlvbiwgQ0ZEaWN0aW9uYXJ5UmVmIG9wdGlvbnMpOwogCiAjaWZuZGVmIE1HR2V0
Qm9vbEFuc3dlcgotRVhURVJOX0MgYm9vbCBNR0dldEJvb2xBbnN3ZXIoQ0ZTdHJpbmdSZWYgcXVl
c3Rpb24pOworYm9vbCBNR0dldEJvb2xBbnN3ZXIoQ0ZTdHJpbmdSZWYgcXVlc3Rpb24pOwogI2Vu
ZGlmCiAKICNpZm5kZWYgTUdHZXRTSW50MzJBbnN3ZXIKLUVYVEVSTl9DIFNJbnQzMiBNR0dldFNJ
bnQzMkFuc3dlcihDRlN0cmluZ1JlZiBxdWVzdGlvbiwgU0ludDMyIGRlZmF1bHRWYWx1ZSk7CitT
SW50MzIgTUdHZXRTSW50MzJBbnN3ZXIoQ0ZTdHJpbmdSZWYgcXVlc3Rpb24sIFNJbnQzMiBkZWZh
dWx0VmFsdWUpOwogI2VuZGlmCiAKICNpZm5kZWYgTUdHZXRGbG9hdDMyQW5zd2VyCi1FWFRFUk5f
QyBGbG9hdDMyIE1HR2V0RmxvYXQzMkFuc3dlcihDRlN0cmluZ1JlZiBxdWVzdGlvbiwgRmxvYXQz
MiBkZWZhdWx0VmFsdWUpOworRmxvYXQzMiBNR0dldEZsb2F0MzJBbnN3ZXIoQ0ZTdHJpbmdSZWYg
cXVlc3Rpb24sIEZsb2F0MzIgZGVmYXVsdFZhbHVlKTsKICNlbmRpZgogCitXVEZfRVhURVJOX0Nf
RU5ECisKICNlbmRpZgogCiAjZW5kaWYgLy8gTW9iaWxlR2VzdGFsdFNQSV9oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvaW9zL1F1aWNrTG9va1NQSS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vc3BpL2lvcy9RdWlja0xvb2tTUEkuaAppbmRleCA2OTFiMjQ2YmM0
ZDM1OGM0ZDQ0ZGFjN2ZhYmIyNDZlM2RkYWIwYjEzLi41ZWE2YTFlODU4YzkxZmJmMjE1ZDRhNGI3
MGZmZjc1ZGRjNjU3OTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkv
aW9zL1F1aWNrTG9va1NQSS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9pb3Mv
UXVpY2tMb29rU1BJLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE0
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0y
MDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtNDksNyArNDksMTIgQEAKIAogI2VuZGlmCiAKLUVYVEVSTl9DIE5TU2V0
ICpRTFByZXZpZXdHZXRTdXBwb3J0ZWRNSU1FVHlwZXMoKTsKLUVYVEVSTl9DIE5TU3RyaW5nICpR
TFR5cGVDb3B5QmVzdE1pbWVUeXBlRm9yRmlsZU5hbWVBbmRNaW1lVHlwZShOU1N0cmluZyAqZmls
ZU5hbWUsIE5TU3RyaW5nICptaW1lVHlwZSk7Ci1FWFRFUk5fQyBOU1N0cmluZyAqUUxUeXBlQ29w
eUJlc3RNaW1lVHlwZUZvclVSTEFuZE1pbWVUeXBlKE5TVVJMICosIE5TU3RyaW5nICptaW1lVHlw
ZSk7Ci1FWFRFUk5fQyBOU1N0cmluZyAqUUxUeXBlQ29weVVUSUZvclVSTEFuZE1pbWVUeXBlKE5T
VVJMICosIE5TU3RyaW5nICptaW1lVHlwZSk7CitXVEZfRVhURVJOX0NfQkVHSU4KKworTlNTZXQg
KlFMUHJldmlld0dldFN1cHBvcnRlZE1JTUVUeXBlcygpOworTlNTdHJpbmcgKlFMVHlwZUNvcHlC
ZXN0TWltZVR5cGVGb3JGaWxlTmFtZUFuZE1pbWVUeXBlKE5TU3RyaW5nICpmaWxlTmFtZSwgTlNT
dHJpbmcgKm1pbWVUeXBlKTsKK05TU3RyaW5nICpRTFR5cGVDb3B5QmVzdE1pbWVUeXBlRm9yVVJM
QW5kTWltZVR5cGUoTlNVUkwgKiwgTlNTdHJpbmcgKm1pbWVUeXBlKTsKK05TU3RyaW5nICpRTFR5
cGVDb3B5VVRJRm9yVVJMQW5kTWltZVR5cGUoTlNVUkwgKiwgTlNTdHJpbmcgKm1pbWVUeXBlKTsK
KworV1RGX0VYVEVSTl9DX0VORAorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9zcGkvd2luL0NvcmVUZXh0U1BJV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Nw
aS93aW4vQ29yZVRleHRTUElXaW4uY3BwCmluZGV4IDYzMGM0MWU5MDMxOTI0M2E3MmNiMDY4ZWIx
NzAwMTUwYWZlYzQxMDQuLjVkYTJmNWE1NWFkYmQyN2NhNmQ3NTFhMWZhMmRhNDBhMGEyMzYxMzkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS93aW4vQ29yZVRleHRTUElX
aW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS93aW4vQ29yZVRleHRTUElX
aW4uY3BwCkBAIC0yNiwxMCArMjYsMTAgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJDb3JlVGV4dFNQSVdpbi5oIgogCi1leHRlcm4gIkMiIHsKK1dURl9FWFRFUk5fQ19CRUdJTgog
CiBjb25zdCBDRlN0cmluZ1JlZiBrQ1RGb250QXR0cmlidXRlTmFtZSA9IENGU1RSKCJOU0ZvbnQi
KTsKIGNvbnN0IENGU3RyaW5nUmVmIGtDVEZvcmVncm91bmRDb2xvckZyb21Db250ZXh0QXR0cmli
dXRlTmFtZSA9IENGU1RSKCJDVEZvcmVncm91bmRDb2xvckZyb21Db250ZXh0Iik7CiAKLX0KK1dU
Rl9FWFRFUk5fQ19FTkQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3Bp
L3dpbi9Db3JlVGV4dFNQSVdpbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL3dpbi9D
b3JlVGV4dFNQSVdpbi5oCmluZGV4IDcxNjg2NWQzYjA1NDYzNmY0ODEzY2VkOGJlYTFlNDNmNGNi
OTQzMDIuLmVlNmU0NDFhNGQxZmIwZTQ0ZmQ0YTVjYmI2M2Y4ZDZjNTc2Y2FiM2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS93aW4vQ29yZVRleHRTUElXaW4uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvd2luL0NvcmVUZXh0U1BJV2luLmgKQEAgLTI5
LDcgKzI5LDcgQEAKICNpbmNsdWRlIDxDb3JlR3JhcGhpY3MvQ29yZUdyYXBoaWNzLmg+CiAjaW5j
bHVkZSA8Q29yZVRleHQvQ29yZVRleHQuaD4KIAotZXh0ZXJuICJDIiB7CitXVEZfRVhURVJOX0Nf
QkVHSU4KIAogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgX19DVEZvbnQqIENURm9udFJlZjsKIHR5cGVk
ZWYgY29uc3Qgc3RydWN0IF9fQ1RMaW5lKiBDVExpbmVSZWY7CkBAIC00MSw1ICs0MSw1IEBAIENU
Rm9udFJlZiBDVEZvbnRDcmVhdGVXaXRoTmFtZShDRlN0cmluZ1JlZiBuYW1lLCBDR0Zsb2F0IHNp
emUsIGNvbnN0IENHQWZmaW5lVHJhCiBDVExpbmVSZWYgQ1RMaW5lQ3JlYXRlV2l0aEF0dHJpYnV0
ZWRTdHJpbmcoQ0ZBdHRyaWJ1dGVkU3RyaW5nUmVmKTsKIHZvaWQgQ1RMaW5lRHJhdyhDVExpbmVS
ZWYsIENHQ29udGV4dFJlZik7CiAKLX0KK1dURl9FWFRFUk5fQ19FTkQKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvUGxhdGZvcm0vc3BpL2lvcy9NYW5hZ2VkQ29uZmlndXJhdGlvblNQSS5o
IGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vc3BpL2lvcy9NYW5hZ2VkQ29uZmlndXJhdGlvblNQ
SS5oCmluZGV4IGIyYzY4ZDVlMmI0MGY5NzQ5NzhmNTQ4OTg1NjQzZWUzYmU3YWEyNGEuLmI0ZmQ5
ZDQ2ZDc5Y2Q3MGRiN2M5ODAwNzc1NGNlMThjNzE1YzQ5YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtL3NwaS9pb3MvTWFuYWdlZENvbmZpZ3VyYXRpb25TUEkuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9zcGkvaW9zL01hbmFnZWRDb25maWd1cmF0aW9uU1BJLmgK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE2IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MjksMTYgKzI5LDEyIEBACiAKIC8vIEZJWE1FOiBXZSBjb25kaXRpb25hbGx5IGVuY2xvc2UgdGhl
IE1hbmFnZWRDb25maWd1cmF0aW9uIGhlYWRlcnMgaW4gYW4gZXh0ZXJuICJDIiBsaW5rYWdlCiAv
LyBibG9jayB0byBtYWtlIHRoZW0gc3VpdGFibGUgZm9yIEMrKyB1c2UuCi0jaWZkZWYgX19jcGx1
c3BsdXMKLWV4dGVybiAiQyIgewotI2VuZGlmCitXVEZfRVhURVJOX0NfQkVHSU4KIAogI2ltcG9y
dCA8TWFuYWdlZENvbmZpZ3VyYXRpb24vTUNGZWF0dXJlcy5oPgogI2ltcG9ydCA8TWFuYWdlZENv
bmZpZ3VyYXRpb24vTUNQcm9maWxlQ29ubmVjdGlvbi5oPgogCi0jaWZkZWYgX19jcGx1c3BsdXMK
LX0KLSNlbmRpZgorV1RGX0VYVEVSTl9DX0VORAogCiAjZWxzZQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286815</attachid>
            <date>2016-08-23 18:33:29 -0700</date>
            <delta_ts>2016-09-06 10:19:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161090-20160823183129.patch</filename>
            <type>text/plain</type>
            <size>46228</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0ODczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDU2NTQyMWIwYjU1MWJhMmZlNDZlZDU1
YmRjNzBmN2JkNzIwMTNmMjIuLjY4YmM3M2EwM2E4MjI3MzRiNDQ1ZGVjY2U2NzVjZjk5MTY0NTQ1
YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTYtMDgtMjMgIERhbmllbCBCYXRlcyAgPGRhYmF0
ZXNAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBFWFRFUk5fQyBmcm9tIFdURgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYxMDkwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgR3VhcmQgZXh0ZXJuYWwg
QyBkZWNsYXJhdGlvbnMgaW4gV1RGX0VYVEVSTl9DX0JFR0lOLCBXVEZfRVhURVJOX0NfRU5ELgor
CisgICAgICAgICogd3RmL0NvbXBpbGVyLmg6IFJlbW92ZSBtYWNybyBkZWZpbml0aW9uIEVYVEVS
Tl9DLgorICAgICAgICAqIHd0Zi9zcGkvY2YvQ0ZCdW5kbGVTUEkuaDoKKyAgICAgICAgKiB3dGYv
c3BpL2NvY29hL05TTWFwVGFibGVTUEkuaDoKKyAgICAgICAgKiB3dGYvc3BpL2NvY29hL1NlY3Vy
aXR5U1BJLmg6CisgICAgICAgICogd3RmL3NwaS9kYXJ3aW4vQ29tbW9uQ3J5cHRvU1BJLmg6Cisg
ICAgICAgICogd3RmL3NwaS9kYXJ3aW4vU2FuZGJveFNQSS5oOgorICAgICAgICAqIHd0Zi9zcGkv
ZGFyd2luL1hQQ1NQSS5oOgorICAgICAgICAqIHd0Zi9zcGkvZGFyd2luL2R5bGRTUEkuaDoKKwog
MjAxNi0wOC0yMiAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIEJ1
dHRlcmZsaWVzIHNob3VsZCBiZSBhbGxvY2F0ZWQgaW4gQXV4aWxpYXJ5IE1hcmtlZFNwYWNlIGlu
c3RlYWQgb2YgQ29waWVkU3BhY2UgYW5kIHdlIHNob3VsZCByZXdyaXRlIGFzIG11Y2ggb2YgdGhl
IEdDIGFzIG5lZWRlZCB0byBtYWtlIHRoaXMgbm90IGEgcmVncmVzc2lvbgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IGJhNGRkMGVlMTQyZjFhNzc0NDVhNDhiNjhmMTAzOTM4MzkwNGVjYTEuLjg0NGZhMDQ0Mzg5NmYx
YTJhNjQ1NWI5ZWRmYmI0ZDE5MWI1MDVmOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAor
MjAxNi0wOC0yMyAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CisKKyAgICAgICAg
UmVtb3ZlIEVYVEVSTl9DIGZyb20gV1RGCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNjEwOTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBHdWFyZCBleHRlcm5hbCBDIGRlY2xhcmF0aW9ucyBpbiBXVEZfRVhU
RVJOX0NfQkVHSU4sIFdURl9FWFRFUk5fQ19FTkQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9zcGkv
Y2YvQ0ZMb2NhbGVTUEkuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9zcGkvY2YvQ0ZOZXR3b3JrQ29u
bmVjdGlvbkNhY2hlU1BJLmg6CisgICAgICAgICogcGxhdGZvcm0vc3BpL2NmL0NGTmV0d29ya1NQ
SS5oOiBBZGRpdGlvbmFsbHksIHJlbW92ZSB0aGUgd29ya2Fyb3VuZCBmb3IgPHJkYXI6Ly9wcm9i
bGVtLzE4MzM3MTgyPgorICAgICAgICBhcyB0aGlzIGJ1ZyB3YXMgZml4ZWQgaW4gRWwgQ2FwaXRh
bi4KKyAgICAgICAgKiBwbGF0Zm9ybS9zcGkvY2YvQ0ZVdGlsaXRpZXNTUEkuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9zcGkvY29jb2EvQ29yZVRleHRTUEkuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9z
cGkvY29jb2EvRGF0YURldGVjdG9yc0NvcmVTUEkuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9zcGkv
Y29jb2EvSU9QTUxpYlNQSS5oOgorICAgICAgICAqIHBsYXRmb3JtL3NwaS9jb2NvYS9NYWNoVk1T
UEkuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9zcGkvY29jb2EvUXVhcnR6Q29yZVNQSS5oOgorICAg
ICAgICAqIHBsYXRmb3JtL3NwaS9pb3MvTW9iaWxlR2VzdGFsdFNQSS5oOgorICAgICAgICAqIHBs
YXRmb3JtL3NwaS9pb3MvUXVpY2tMb29rU1BJLmg6CisgICAgICAgICogcGxhdGZvcm0vc3BpL3dp
bi9Db3JlVGV4dFNQSVdpbi5jcHA6CisgICAgICAgICogcGxhdGZvcm0vc3BpL3dpbi9Db3JlVGV4
dFNQSVdpbi5oOgorCiAyMDE2LTA4LTIzICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3
YUBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTjogU1ZHIGNsaXAtcGF0aCBkb2Vzbid0
IHdvcmsgb24gcm9vdCA8c3ZnPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDlkZTNmZGVlMTcyM2ViOWVjZGU2ODEy
MWZiOTc2ZGRlMTJhMTMzZmUuLmQ3YjcyZGI5ZjJhNjY4NzQwNWZjNjEzZjg0MmRhYWI5NmI4ZjJj
NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxNi0wOC0yMyAgRGFuaWVsIEJhdGVz
ICA8ZGFiYXRlc0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIEVYVEVSTl9DIGZyb20gV1RG
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjEwOTAK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBHdWFyZCBl
eHRlcm5hbCBDIGRlY2xhcmF0aW9ucyBpbiBXVEZfRVhURVJOX0NfQkVHSU4sIFdURl9FWFRFUk5f
Q19FTkQuCisKKyAgICAgICAgKiBQbGF0Zm9ybS9zcGkvaW9zL01hbmFnZWRDb25maWd1cmF0aW9u
U1BJLmg6CisKIDIwMTYtMDgtMjMgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgQW5vdGhlciBDTWFrZSBidWlsZCBmaXggYXR0ZW1wdCBhZnRlciByMjA0ODUyLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQ29tcGlsZXIuaCBiL1NvdXJjZS9XVEYvd3RmL0Nv
bXBpbGVyLmgKaW5kZXggZmFmMTliYTAyMmMzMDcwMGQ4OTZiZDk4Yzk4YmZlNWZkN2U3NDdkZC4u
ZGU2ZDgxOGY4NTg3MTRkYmY5ODMwNjlmMDhiOTVkMDM2ZTk2NTAzOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi93dGYvQ29tcGlsZXIuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Db21waWxlci5oCkBA
IC0xNzMsMTMgKzE3Myw2IEBACiAjZGVmaW5lIFdURl9FWFRFUk5fQ19FTkQKICNlbmRpZgogCi0v
KiBGSVhNRTogUmVtb3ZlIHRoaXMgb25jZSB3ZSBoYXZlIHRyYW5zaXRpb25lZCB0byBXVEZfRVhU
RVJOX0NfQkVHSU4vV1RGX0VYVEVSTl9DX0VORC4gKi8KLSNpZmRlZiBfX2NwbHVzcGx1cwotI2Rl
ZmluZSBFWFRFUk5fQyBleHRlcm4gIkMiCi0jZWxzZQotI2RlZmluZSBFWFRFUk5fQyBleHRlcm4K
LSNlbmRpZgotCiAvKiBGQUxMVEhST1VHSCAqLwogCiAjaWYgIWRlZmluZWQoRkFMTFRIUk9VR0gp
ICYmIENPTVBJTEVSX1NVUFBPUlRTKEZBTExUSFJPVUdIX1dBUk5JTkdTKSAmJiBDT01QSUxFUihD
TEFORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3NwaS9jZi9DRkJ1bmRsZVNQSS5oIGIv
U291cmNlL1dURi93dGYvc3BpL2NmL0NGQnVuZGxlU1BJLmgKaW5kZXggNGVmMGFlM2E2MDViOGFj
MGFlN2QyMTQwN2VkYmRhY2Y2NzQ1OTFmZi4uYWFlOTFlYzhhMGMzN2IzNjVkNjgxMWM5OWVhMmVk
ZWU4OGY5NmE2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvc3BpL2NmL0NGQnVuZGxlU1BJ
LmgKKysrIGIvU291cmNlL1dURi93dGYvc3BpL2NmL0NGQnVuZGxlU1BJLmgKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMuICBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNCwxMSArMzQs
MTMgQEAKICNpbmNsdWRlIDx3dGYvc3BpL2Rhcndpbi9YUENTUEkuaD4KICNlbmRpZgogCi1leHRl
cm4gIkMiIHsKK1dURl9FWFRFUk5fQ19CRUdJTgorCiB2b2lkIF9DRkJ1bmRsZVNldHVwWFBDQm9v
dHN0cmFwKHhwY19vYmplY3RfdCBib290c3RyYXApOwogCiBCb29sZWFuIENGQnVuZGxlR2V0TG9j
YWxpemF0aW9uSW5mb0ZvckxvY2FsaXphdGlvbihDRlN0cmluZ1JlZiBsb2NhbGl6YXRpb25OYW1l
LCBTSW50MzIgKmxhbmd1YWdlQ29kZSwgU0ludDMyICpyZWdpb25Db2RlLCBTSW50MzIgKnNjcmlw
dENvZGUsIENGU3RyaW5nRW5jb2RpbmcgKnN0cmluZ0VuY29kaW5nKTsKIENGU3RyaW5nUmVmIENG
QnVuZGxlQ29weUxvY2FsaXphdGlvbkZvckxvY2FsaXphdGlvbkluZm8oU0ludDMyIGxhbmd1YWdl
Q29kZSwgU0ludDMyIHJlZ2lvbkNvZGUsIFNJbnQzMiBzY3JpcHRDb2RlLCBDRlN0cmluZ0VuY29k
aW5nIHN0cmluZ0VuY29kaW5nKTsKLX0KKworV1RGX0VYVEVSTl9DX0VORAogCiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3NwaS9jb2NvYS9OU01hcFRhYmxlU1BJLmggYi9Tb3Vy
Y2UvV1RGL3d0Zi9zcGkvY29jb2EvTlNNYXBUYWJsZVNQSS5oCmluZGV4IGViYjAwMTQ1ZjVjMjEx
NTY4M2IyNGEyOTdhZjRiODVkZWZhMGFhM2IuLmU3YzFhMTQ3OThlMTZmNDg1OWE2NGMwZGQ2NTg2
N2RlZGE3ZGM2NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3NwaS9jb2NvYS9OU01hcFRh
YmxlU1BJLmgKKysrIGIvU291cmNlL1dURi93dGYvc3BpL2NvY29hL05TTWFwVGFibGVTUEkuaApA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTYgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0y
OSw2ICsyOSwxMCBAQAogI2ltcG9ydCA8Rm91bmRhdGlvbi9OU01hcFRhYmxlUHJpdi5oPgogI2Vu
ZGlmCiAKLUVYVEVSTl9DIHZvaWQgKk5TTWFwR2V0KE5TTWFwVGFibGUgKiwgY29uc3Qgdm9pZCAq
a2V5KTsKLUVYVEVSTl9DIHZvaWQgTlNNYXBJbnNlcnQoTlNNYXBUYWJsZSAqLCBjb25zdCB2b2lk
ICprZXksIGNvbnN0IHZvaWQgKnZhbHVlKTsKLUVYVEVSTl9DIHZvaWQgTlNNYXBSZW1vdmUoTlNN
YXBUYWJsZSAqLCBjb25zdCB2b2lkICprZXkpOworV1RGX0VYVEVSTl9DX0JFR0lOCisKK3ZvaWQg
Kk5TTWFwR2V0KE5TTWFwVGFibGUgKiwgY29uc3Qgdm9pZCAqa2V5KTsKK3ZvaWQgTlNNYXBJbnNl
cnQoTlNNYXBUYWJsZSAqLCBjb25zdCB2b2lkICprZXksIGNvbnN0IHZvaWQgKnZhbHVlKTsKK3Zv
aWQgTlNNYXBSZW1vdmUoTlNNYXBUYWJsZSAqLCBjb25zdCB2b2lkICprZXkpOworCitXVEZfRVhU
RVJOX0NfRU5ECmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9zcGkvY29jb2EvU2VjdXJpdHlT
UEkuaCBiL1NvdXJjZS9XVEYvd3RmL3NwaS9jb2NvYS9TZWN1cml0eVNQSS5oCmluZGV4IDJlZGZj
M2YwOTgwZjZhZWExMTFiNTFhN2Y5NTk2MmMxMTYzN2U4ZjQuLmNhNWJmMTIyZjI0ZjQ0ZTVlMjIz
N2RhYTlkMWJiMWEyYjMyMzYzOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3NwaS9jb2Nv
YS9TZWN1cml0eVNQSS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3NwaS9jb2NvYS9TZWN1cml0eVNQ
SS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTUxLDE4ICs1MSwyNSBAQCBlbnVtIHsKICAgICBrU2VjU2lnbmF0dXJlSGFzaEFsZ29yaXRo
bVNIQTUxMiA9IDgKIH07CiAKLUVYVEVSTl9DIFNlY1NpZ25hdHVyZUhhc2hBbGdvcml0aG0gU2Vj
Q2VydGlmaWNhdGVHZXRTaWduYXR1cmVIYXNoQWxnb3JpdGhtKFNlY0NlcnRpZmljYXRlUmVmKTsK
K1dURl9FWFRFUk5fQ19CRUdJTgorCitTZWNTaWduYXR1cmVIYXNoQWxnb3JpdGhtIFNlY0NlcnRp
ZmljYXRlR2V0U2lnbmF0dXJlSGFzaEFsZ29yaXRobShTZWNDZXJ0aWZpY2F0ZVJlZik7CisKK1dU
Rl9FWFRFUk5fQ19FTkQKICNlbmRpZgogCiAjZW5kaWYKIAogdHlwZWRlZiBzdHJ1Y3QgX19TZWNU
YXNrICpTZWNUYXNrUmVmOwotRVhURVJOX0MgU2VjVGFza1JlZiBTZWNUYXNrQ3JlYXRlV2l0aEF1
ZGl0VG9rZW4oQ0ZBbGxvY2F0b3JSZWYsIGF1ZGl0X3Rva2VuX3QpOwotRVhURVJOX0MgU2VjVGFz
a1JlZiBTZWNUYXNrQ3JlYXRlRnJvbVNlbGYoQ0ZBbGxvY2F0b3JSZWYpOwotRVhURVJOX0MgQ0ZU
eXBlUmVmIFNlY1Rhc2tDb3B5VmFsdWVGb3JFbnRpdGxlbWVudChTZWNUYXNrUmVmLCBDRlN0cmlu
Z1JlZiBlbnRpdGxlbWVudCwgQ0ZFcnJvclJlZiAqKTsKKworV1RGX0VYVEVSTl9DX0JFR0lOCisK
K1NlY1Rhc2tSZWYgU2VjVGFza0NyZWF0ZVdpdGhBdWRpdFRva2VuKENGQWxsb2NhdG9yUmVmLCBh
dWRpdF90b2tlbl90KTsKK1NlY1Rhc2tSZWYgU2VjVGFza0NyZWF0ZUZyb21TZWxmKENGQWxsb2Nh
dG9yUmVmKTsKK0NGVHlwZVJlZiBTZWNUYXNrQ29weVZhbHVlRm9yRW50aXRsZW1lbnQoU2VjVGFz
a1JlZiwgQ0ZTdHJpbmdSZWYgZW50aXRsZW1lbnQsIENGRXJyb3JSZWYgKik7CiAKICNpZiBQTEFU
Rk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMjAwCi1F
WFRFUk5fQyBDRlN0cmluZ1JlZiBTZWNUYXNrQ29weVNpZ25pbmdJZGVudGlmaWVyKFNlY1Rhc2tS
ZWYsIENGRXJyb3JSZWYgKik7CitDRlN0cmluZ1JlZiBTZWNUYXNrQ29weVNpZ25pbmdJZGVudGlm
aWVyKFNlY1Rhc2tSZWYsIENGRXJyb3JSZWYgKik7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1B
QykKQEAgLTcyLDYgKzc5LDggQEAgZXh0ZXJuIGNvbnN0IFNlY0FzbjFUZW1wbGF0ZSBrU2VjQXNu
MVN1YmplY3RQdWJsaWNLZXlJbmZvVGVtcGxhdGVbXTsKICNlbmRpZgogCiAjaWYgSEFWRShTRUNf
VFJVU1RfU0VSSUFMSVpBVElPTikKLUVYVEVSTl9DIENGX1JFVFVSTlNfUkVUQUlORUQgQ0ZEYXRh
UmVmIFNlY1RydXN0U2VyaWFsaXplKFNlY1RydXN0UmVmLCBDRkVycm9yUmVmICopOwotRVhURVJO
X0MgQ0ZfUkVUVVJOU19SRVRBSU5FRCBTZWNUcnVzdFJlZiBTZWNUcnVzdERlc2VyaWFsaXplKENG
RGF0YVJlZiBzZXJpYWxpemVkVHJ1c3QsIENGRXJyb3JSZWYgKik7CitDRl9SRVRVUk5TX1JFVEFJ
TkVEIENGRGF0YVJlZiBTZWNUcnVzdFNlcmlhbGl6ZShTZWNUcnVzdFJlZiwgQ0ZFcnJvclJlZiAq
KTsKK0NGX1JFVFVSTlNfUkVUQUlORUQgU2VjVHJ1c3RSZWYgU2VjVHJ1c3REZXNlcmlhbGl6ZShD
RkRhdGFSZWYgc2VyaWFsaXplZFRydXN0LCBDRkVycm9yUmVmICopOwogI2VuZGlmCisKK1dURl9F
WFRFUk5fQ19FTkQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3NwaS9kYXJ3aW4vQ29tbW9u
Q3J5cHRvU1BJLmggYi9Tb3VyY2UvV1RGL3d0Zi9zcGkvZGFyd2luL0NvbW1vbkNyeXB0b1NQSS5o
CmluZGV4IDMyNWNiZTgxYmYyMjNkODc4OWU3YjkyZGJhMGVhNjFlOWMzMjJkNzAuLmY3OWJmZjk2
ZjkzOGM0YTkzYjU1YWM3NmYxYzZjNGE4YWE0YWFiNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL3NwaS9kYXJ3aW4vQ29tbW9uQ3J5cHRvU1BJLmgKKysrIGIvU291cmNlL1dURi93dGYvc3Bp
L2Rhcndpbi9Db21tb25DcnlwdG9TUEkuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMyw4ICszMywxMyBAQAogI2VuZGlmCiAKIHR5cGVk
ZWYgc3RydWN0IF9fQ0NSYW5kb20qIENDUmFuZG9tUmVmOworCitXVEZfRVhURVJOX0NfQkVHSU4K
KwogZXh0ZXJuIGNvbnN0IENDUmFuZG9tUmVmIGtDQ1JhbmRvbURlZmF1bHQ7Ci1leHRlcm4gIkMi
IGludCBDQ1JhbmRvbUNvcHlCeXRlcyhDQ1JhbmRvbVJlZiBybmQsIHZvaWQgKmJ5dGVzLCBzaXpl
X3QgY291bnQpOworaW50IENDUmFuZG9tQ29weUJ5dGVzKENDUmFuZG9tUmVmIHJuZCwgdm9pZCAq
Ynl0ZXMsIHNpemVfdCBjb3VudCk7CisKK1dURl9FWFRFUk5fQ19FTkQKIAogI2VuZGlmIC8vIE9T
KERBUldJTikKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvc3BpL2Rhcndpbi9TYW5kYm94
U1BJLmggYi9Tb3VyY2UvV1RGL3d0Zi9zcGkvZGFyd2luL1NhbmRib3hTUEkuaAppbmRleCA5NDM4
NDlkOGNiZDhmNThmOTU1MzNkODZkM2M1M2UzZDY1MWYwNDk3Li41MGU2ODE0YWM0ZmQxMGU2Njlj
YTBkNTQ5NjkwYzBiNTc5MzBmODI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9zcGkvZGFy
d2luL1NhbmRib3hTUEkuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9zcGkvZGFyd2luL1NhbmRib3hT
UEkuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC00MSwxMCArNDEsMTQgQEAgZW51bSBzYW5kYm94X2ZpbHRlcl90eXBlIHsKICNkZWZpbmUg
U0FOREJPWF9OQU1FRF9FWFRFUk5BTCAweDAwMDMKICNlbmRpZgogCi1FWFRFUk5fQyBjb25zdCBl
bnVtIHNhbmRib3hfZmlsdGVyX3R5cGUgU0FOREJPWF9DSEVDS19OT19SRVBPUlQ7Ci1FWFRFUk5f
QyBpbnQgc2FuZGJveF9jaGVjayhwaWRfdCwgY29uc3QgY2hhciAqb3BlcmF0aW9uLCBlbnVtIHNh
bmRib3hfZmlsdGVyX3R5cGUsIC4uLik7Ci1FWFRFUk5fQyBpbnQgc2FuZGJveF9jb250YWluZXJf
cGF0aF9mb3JfcGlkKHBpZF90LCBjaGFyICpidWZmZXIsIHNpemVfdCBidWZzaXplKTsKLUVYVEVS
Tl9DIGludCBzYW5kYm94X2luaXRfd2l0aF9wYXJhbWV0ZXJzKGNvbnN0IGNoYXIgKnByb2ZpbGUs
IHVpbnQ2NF90IGZsYWdzLCBjb25zdCBjaGFyICpjb25zdCBwYXJhbWV0ZXJzW10sIGNoYXIgKipl
cnJvcmJ1Zik7CitXVEZfRVhURVJOX0NfQkVHSU4KKworZXh0ZXJuIGNvbnN0IGVudW0gc2FuZGJv
eF9maWx0ZXJfdHlwZSBTQU5EQk9YX0NIRUNLX05PX1JFUE9SVDsKK2ludCBzYW5kYm94X2NoZWNr
KHBpZF90LCBjb25zdCBjaGFyICpvcGVyYXRpb24sIGVudW0gc2FuZGJveF9maWx0ZXJfdHlwZSwg
Li4uKTsKK2ludCBzYW5kYm94X2NvbnRhaW5lcl9wYXRoX2Zvcl9waWQocGlkX3QsIGNoYXIgKmJ1
ZmZlciwgc2l6ZV90IGJ1ZnNpemUpOworaW50IHNhbmRib3hfaW5pdF93aXRoX3BhcmFtZXRlcnMo
Y29uc3QgY2hhciAqcHJvZmlsZSwgdWludDY0X3QgZmxhZ3MsIGNvbnN0IGNoYXIgKmNvbnN0IHBh
cmFtZXRlcnNbXSwgY2hhciAqKmVycm9yYnVmKTsKKworV1RGX0VYVEVSTl9DX0VORAogCiAjZW5k
aWYgLy8gT1MoREFSV0lOKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9zcGkvZGFyd2lu
L1hQQ1NQSS5oIGIvU291cmNlL1dURi93dGYvc3BpL2Rhcndpbi9YUENTUEkuaAppbmRleCBhMTFi
MmVlMDFiZTQ3M2E3MDA4OWUzYzYzYmQ2OTJjNTRlY2FkYmNmLi5lZDZlNjlkMzRhMGFjZDIyYjA0
NWY1M2Y3YjBkZDliNGYwNWJmOTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9zcGkvZGFy
d2luL1hQQ1NQSS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3NwaS9kYXJ3aW4vWFBDU1BJLmgKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNzks
NzEgKzc5LDczIEBAIHR5cGVkZWYgdm9pZCAoKnhwY19jb25uZWN0aW9uX2hhbmRsZXJfdCkoeHBj
X2Nvbm5lY3Rpb25fdCBjb25uZWN0aW9uKTsKICNpbmNsdWRlIDx4cGMvcHJpdmF0ZS5oPgogI2Vu
ZGlmCiAKLUVYVEVSTl9DIGNvbnN0IHN0cnVjdCBfeHBjX2RpY3Rpb25hcnlfcyBfeHBjX2Vycm9y
X2Nvbm5lY3Rpb25faW52YWxpZDsKLUVYVEVSTl9DIGNvbnN0IHN0cnVjdCBfeHBjX2RpY3Rpb25h
cnlfcyBfeHBjX2Vycm9yX3Rlcm1pbmF0aW9uX2ltbWluZW50OworV1RGX0VYVEVSTl9DX0JFR0lO
CiAKLUVYVEVSTl9DIGNvbnN0IHN0cnVjdCBfeHBjX3R5cGVfcyBfeHBjX3R5cGVfYXJyYXk7Ci1F
WFRFUk5fQyBjb25zdCBzdHJ1Y3QgX3hwY190eXBlX3MgX3hwY190eXBlX2Jvb2w7Ci1FWFRFUk5f
QyBjb25zdCBzdHJ1Y3QgX3hwY190eXBlX3MgX3hwY190eXBlX2RpY3Rpb25hcnk7Ci1FWFRFUk5f
QyBjb25zdCBzdHJ1Y3QgX3hwY190eXBlX3MgX3hwY190eXBlX2Vycm9yOwotRVhURVJOX0MgY29u
c3Qgc3RydWN0IF94cGNfdHlwZV9zIF94cGNfdHlwZV9zdHJpbmc7CitleHRlcm4gY29uc3Qgc3Ry
dWN0IF94cGNfZGljdGlvbmFyeV9zIF94cGNfZXJyb3JfY29ubmVjdGlvbl9pbnZhbGlkOworZXh0
ZXJuIGNvbnN0IHN0cnVjdCBfeHBjX2RpY3Rpb25hcnlfcyBfeHBjX2Vycm9yX3Rlcm1pbmF0aW9u
X2ltbWluZW50OwogCi1FWFRFUk5fQyB4cGNfb2JqZWN0X3QgeHBjX2FycmF5X2NyZWF0ZShjb25z
dCB4cGNfb2JqZWN0X3QqLCBzaXplX3QgY291bnQpOworZXh0ZXJuIGNvbnN0IHN0cnVjdCBfeHBj
X3R5cGVfcyBfeHBjX3R5cGVfYXJyYXk7CitleHRlcm4gY29uc3Qgc3RydWN0IF94cGNfdHlwZV9z
IF94cGNfdHlwZV9ib29sOworZXh0ZXJuIGNvbnN0IHN0cnVjdCBfeHBjX3R5cGVfcyBfeHBjX3R5
cGVfZGljdGlvbmFyeTsKK2V4dGVybiBjb25zdCBzdHJ1Y3QgX3hwY190eXBlX3MgX3hwY190eXBl
X2Vycm9yOworZXh0ZXJuIGNvbnN0IHN0cnVjdCBfeHBjX3R5cGVfcyBfeHBjX3R5cGVfc3RyaW5n
OworCit4cGNfb2JqZWN0X3QgeHBjX2FycmF5X2NyZWF0ZShjb25zdCB4cGNfb2JqZWN0X3QqLCBz
aXplX3QgY291bnQpOwogI2lmIENPTVBJTEVSX1NVUFBPUlRTKEJMT0NLUykKLUVYVEVSTl9DIGJv
b2wgeHBjX2FycmF5X2FwcGx5KHhwY19vYmplY3RfdCwgeHBjX2FycmF5X2FwcGxpZXJfdCk7Ci1F
WFRFUk5fQyBib29sIHhwY19kaWN0aW9uYXJ5X2FwcGx5KHhwY19vYmplY3RfdCB4ZGljdCwgeHBj
X2RpY3Rpb25hcnlfYXBwbGllcl90IGFwcGxpZXIpOworYm9vbCB4cGNfYXJyYXlfYXBwbHkoeHBj
X29iamVjdF90LCB4cGNfYXJyYXlfYXBwbGllcl90KTsKK2Jvb2wgeHBjX2RpY3Rpb25hcnlfYXBw
bHkoeHBjX29iamVjdF90IHhkaWN0LCB4cGNfZGljdGlvbmFyeV9hcHBsaWVyX3QgYXBwbGllcik7
CiAjZW5kaWYKLUVYVEVSTl9DIHNpemVfdCB4cGNfYXJyYXlfZ2V0X2NvdW50KHhwY19vYmplY3Rf
dCk7Ci1FWFRFUk5fQyBjb25zdCBjaGFyKiB4cGNfYXJyYXlfZ2V0X3N0cmluZyh4cGNfb2JqZWN0
X3QsIHNpemVfdCBpbmRleCk7Ci1FWFRFUk5fQyB2b2lkIHhwY19hcnJheV9zZXRfc3RyaW5nKHhw
Y19vYmplY3RfdCwgc2l6ZV90IGluZGV4LCBjb25zdCBjaGFyKiBzdHJpbmcpOwotRVhURVJOX0Mg
Ym9vbCB4cGNfYm9vbF9nZXRfdmFsdWUoeHBjX29iamVjdF90KTsKLUVYVEVSTl9DIHZvaWQgeHBj
X2Nvbm5lY3Rpb25fY2FuY2VsKHhwY19jb25uZWN0aW9uX3QpOwotRVhURVJOX0MgeHBjX2Nvbm5l
Y3Rpb25fdCB4cGNfY29ubmVjdGlvbl9jcmVhdGUoY29uc3QgY2hhciogbmFtZSwgZGlzcGF0Y2hf
cXVldWVfdCk7Ci1FWFRFUk5fQyB4cGNfY29ubmVjdGlvbl90IHhwY19jb25uZWN0aW9uX2NyZWF0
ZV9tYWNoX3NlcnZpY2UoY29uc3QgY2hhciogbmFtZSwgZGlzcGF0Y2hfcXVldWVfdCwgdWludDY0
X3QgZmxhZ3MpOwotRVhURVJOX0MgcGlkX3QgeHBjX2Nvbm5lY3Rpb25fZ2V0X3BpZCh4cGNfY29u
bmVjdGlvbl90KTsKLUVYVEVSTl9DIHZvaWQgeHBjX2Nvbm5lY3Rpb25fcmVzdW1lKHhwY19jb25u
ZWN0aW9uX3QpOwotRVhURVJOX0Mgdm9pZCB4cGNfY29ubmVjdGlvbl9zZW5kX21lc3NhZ2UoeHBj
X2Nvbm5lY3Rpb25fdCwgeHBjX29iamVjdF90KTsKLUVYVEVSTl9DIHZvaWQgeHBjX2Nvbm5lY3Rp
b25fc2VuZF9tZXNzYWdlX3dpdGhfcmVwbHkoeHBjX2Nvbm5lY3Rpb25fdCwgeHBjX29iamVjdF90
LCBkaXNwYXRjaF9xdWV1ZV90LCB4cGNfaGFuZGxlcl90KTsKLUVYVEVSTl9DIHZvaWQgeHBjX2Nv
bm5lY3Rpb25fc2V0X2V2ZW50X2hhbmRsZXIoeHBjX2Nvbm5lY3Rpb25fdCwgeHBjX2hhbmRsZXJf
dCk7Ci1FWFRFUk5fQyB2b2lkIHhwY19jb25uZWN0aW9uX3NldF90YXJnZXRfcXVldWUoeHBjX2Nv
bm5lY3Rpb25fdCwgZGlzcGF0Y2hfcXVldWVfdCk7Ci1FWFRFUk5fQyB4cGNfb2JqZWN0X3QgeHBj
X2RpY3Rpb25hcnlfY3JlYXRlKGNvbnN0IGNoYXIqICBjb25zdCoga2V5cywgY29uc3QgeHBjX29i
amVjdF90Kiwgc2l6ZV90IGNvdW50KTsKLUVYVEVSTl9DIHhwY19vYmplY3RfdCB4cGNfZGljdGlv
bmFyeV9jcmVhdGVfcmVwbHkoeHBjX29iamVjdF90KTsKLUVYVEVSTl9DIGludCB4cGNfZGljdGlv
bmFyeV9kdXBfZmQoeHBjX29iamVjdF90LCBjb25zdCBjaGFyKiBrZXkpOwotRVhURVJOX0MgeHBj
X2Nvbm5lY3Rpb25fdCB4cGNfZGljdGlvbmFyeV9nZXRfcmVtb3RlX2Nvbm5lY3Rpb24oeHBjX29i
amVjdF90KTsKLUVYVEVSTl9DIGJvb2wgeHBjX2RpY3Rpb25hcnlfZ2V0X2Jvb2woeHBjX29iamVj
dF90LCBjb25zdCBjaGFyKiBrZXkpOwotRVhURVJOX0MgY29uc3QgY2hhciogeHBjX2RpY3Rpb25h
cnlfZ2V0X3N0cmluZyh4cGNfb2JqZWN0X3QsIGNvbnN0IGNoYXIqIGtleSk7Ci1FWFRFUk5fQyB1
aW50NjRfdCB4cGNfZGljdGlvbmFyeV9nZXRfdWludDY0KHhwY19vYmplY3RfdCwgY29uc3QgY2hh
cioga2V5KTsKLUVYVEVSTl9DIHhwY19vYmplY3RfdCB4cGNfZGljdGlvbmFyeV9nZXRfdmFsdWUo
eHBjX29iamVjdF90LCBjb25zdCBjaGFyKiBrZXkpOwotRVhURVJOX0Mgdm9pZCB4cGNfZGljdGlv
bmFyeV9zZXRfYm9vbCh4cGNfb2JqZWN0X3QsIGNvbnN0IGNoYXIqIGtleSwgYm9vbCB2YWx1ZSk7
Ci1FWFRFUk5fQyB2b2lkIHhwY19kaWN0aW9uYXJ5X3NldF9mZCh4cGNfb2JqZWN0X3QsIGNvbnN0
IGNoYXIqIGtleSwgaW50IGZkKTsKLUVYVEVSTl9DIHZvaWQgeHBjX2RpY3Rpb25hcnlfc2V0X3N0
cmluZyh4cGNfb2JqZWN0X3QsIGNvbnN0IGNoYXIqIGtleSwgY29uc3QgY2hhciogc3RyaW5nKTsK
LUVYVEVSTl9DIHZvaWQgeHBjX2RpY3Rpb25hcnlfc2V0X3VpbnQ2NCh4cGNfb2JqZWN0X3QsIGNv
bnN0IGNoYXIqIGtleSwgdWludDY0X3QgdmFsdWUpOwotRVhURVJOX0Mgdm9pZCB4cGNfZGljdGlv
bmFyeV9zZXRfdmFsdWUoeHBjX29iamVjdF90LCBjb25zdCBjaGFyKmtleSwgeHBjX29iamVjdF90
IHZhbHVlKTsKLUVYVEVSTl9DIHhwY190eXBlX3QgeHBjX2dldF90eXBlKHhwY19vYmplY3RfdCk7
Ci1FWFRFUk5fQyB2b2lkIHhwY19tYWluKHhwY19jb25uZWN0aW9uX2hhbmRsZXJfdCk7Ci1FWFRF
Uk5fQyBjb25zdCBjaGFyKiB4cGNfc3RyaW5nX2dldF9zdHJpbmdfcHRyKHhwY19vYmplY3RfdCk7
Ci1FWFRFUk5fQyB2b2lkIHhwY190cmFuc2FjdGlvbl9iZWdpbih2b2lkKTsKLUVYVEVSTl9DIHZv
aWQgeHBjX3RyYW5zYWN0aW9uX2VuZCh2b2lkKTsKLUVYVEVSTl9DIHZvaWQgeHBjX3RyYW5zYWN0
aW9uX2V4aXRfY2xlYW4odm9pZCk7Ci1FWFRFUk5fQyB2b2lkIHhwY190cmFja19hY3Rpdml0eSh2
b2lkKTsKLQotRVhURVJOX0MgeHBjX29iamVjdF90IHhwY19jb25uZWN0aW9uX2NvcHlfZW50aXRs
ZW1lbnRfdmFsdWUoeHBjX2Nvbm5lY3Rpb25fdCwgY29uc3QgY2hhciogZW50aXRsZW1lbnQpOwot
RVhURVJOX0Mgdm9pZCB4cGNfY29ubmVjdGlvbl9nZXRfYXVkaXRfdG9rZW4oeHBjX2Nvbm5lY3Rp
b25fdCwgYXVkaXRfdG9rZW5fdCopOwotRVhURVJOX0Mgdm9pZCB4cGNfY29ubmVjdGlvbl9raWxs
KHhwY19jb25uZWN0aW9uX3QsIGludCk7Ci1FWFRFUk5fQyB2b2lkIHhwY19jb25uZWN0aW9uX3Nl
dF9pbnN0YW5jZSh4cGNfY29ubmVjdGlvbl90LCB1dWlkX3QpOwotRVhURVJOX0MgbWFjaF9wb3J0
X3QgeHBjX2RpY3Rpb25hcnlfY29weV9tYWNoX3NlbmQoeHBjX29iamVjdF90LCBjb25zdCBjaGFy
Kik7Ci1FWFRFUk5fQyB2b2lkIHhwY19kaWN0aW9uYXJ5X3NldF9tYWNoX3NlbmQoeHBjX29iamVj
dF90LCBjb25zdCBjaGFyKiwgbWFjaF9wb3J0X3QpOwotCi1FWFRFUk5fQyB2b2lkIHhwY19jb25u
ZWN0aW9uX3NldF9ib290c3RyYXAoeHBjX2Nvbm5lY3Rpb25fdCwgeHBjX29iamVjdF90IGJvb3Rz
dHJhcCk7Ci1FWFRFUk5fQyB4cGNfb2JqZWN0X3QgeHBjX2NvcHlfYm9vdHN0cmFwKHZvaWQpOwot
RVhURVJOX0Mgdm9pZCB4cGNfY29ubmVjdGlvbl9zZXRfb25lc2hvdF9pbnN0YW5jZSh4cGNfY29u
bmVjdGlvbl90LCB1dWlkX3QgaW5zdGFuY2UpOworc2l6ZV90IHhwY19hcnJheV9nZXRfY291bnQo
eHBjX29iamVjdF90KTsKK2NvbnN0IGNoYXIqIHhwY19hcnJheV9nZXRfc3RyaW5nKHhwY19vYmpl
Y3RfdCwgc2l6ZV90IGluZGV4KTsKK3ZvaWQgeHBjX2FycmF5X3NldF9zdHJpbmcoeHBjX29iamVj
dF90LCBzaXplX3QgaW5kZXgsIGNvbnN0IGNoYXIqIHN0cmluZyk7Citib29sIHhwY19ib29sX2dl
dF92YWx1ZSh4cGNfb2JqZWN0X3QpOwordm9pZCB4cGNfY29ubmVjdGlvbl9jYW5jZWwoeHBjX2Nv
bm5lY3Rpb25fdCk7Cit4cGNfY29ubmVjdGlvbl90IHhwY19jb25uZWN0aW9uX2NyZWF0ZShjb25z
dCBjaGFyKiBuYW1lLCBkaXNwYXRjaF9xdWV1ZV90KTsKK3hwY19jb25uZWN0aW9uX3QgeHBjX2Nv
bm5lY3Rpb25fY3JlYXRlX21hY2hfc2VydmljZShjb25zdCBjaGFyKiBuYW1lLCBkaXNwYXRjaF9x
dWV1ZV90LCB1aW50NjRfdCBmbGFncyk7CitwaWRfdCB4cGNfY29ubmVjdGlvbl9nZXRfcGlkKHhw
Y19jb25uZWN0aW9uX3QpOwordm9pZCB4cGNfY29ubmVjdGlvbl9yZXN1bWUoeHBjX2Nvbm5lY3Rp
b25fdCk7Cit2b2lkIHhwY19jb25uZWN0aW9uX3NlbmRfbWVzc2FnZSh4cGNfY29ubmVjdGlvbl90
LCB4cGNfb2JqZWN0X3QpOwordm9pZCB4cGNfY29ubmVjdGlvbl9zZW5kX21lc3NhZ2Vfd2l0aF9y
ZXBseSh4cGNfY29ubmVjdGlvbl90LCB4cGNfb2JqZWN0X3QsIGRpc3BhdGNoX3F1ZXVlX3QsIHhw
Y19oYW5kbGVyX3QpOwordm9pZCB4cGNfY29ubmVjdGlvbl9zZXRfZXZlbnRfaGFuZGxlcih4cGNf
Y29ubmVjdGlvbl90LCB4cGNfaGFuZGxlcl90KTsKK3ZvaWQgeHBjX2Nvbm5lY3Rpb25fc2V0X3Rh
cmdldF9xdWV1ZSh4cGNfY29ubmVjdGlvbl90LCBkaXNwYXRjaF9xdWV1ZV90KTsKK3hwY19vYmpl
Y3RfdCB4cGNfZGljdGlvbmFyeV9jcmVhdGUoY29uc3QgY2hhciogIGNvbnN0KiBrZXlzLCBjb25z
dCB4cGNfb2JqZWN0X3QqLCBzaXplX3QgY291bnQpOworeHBjX29iamVjdF90IHhwY19kaWN0aW9u
YXJ5X2NyZWF0ZV9yZXBseSh4cGNfb2JqZWN0X3QpOworaW50IHhwY19kaWN0aW9uYXJ5X2R1cF9m
ZCh4cGNfb2JqZWN0X3QsIGNvbnN0IGNoYXIqIGtleSk7Cit4cGNfY29ubmVjdGlvbl90IHhwY19k
aWN0aW9uYXJ5X2dldF9yZW1vdGVfY29ubmVjdGlvbih4cGNfb2JqZWN0X3QpOworYm9vbCB4cGNf
ZGljdGlvbmFyeV9nZXRfYm9vbCh4cGNfb2JqZWN0X3QsIGNvbnN0IGNoYXIqIGtleSk7Citjb25z
dCBjaGFyKiB4cGNfZGljdGlvbmFyeV9nZXRfc3RyaW5nKHhwY19vYmplY3RfdCwgY29uc3QgY2hh
cioga2V5KTsKK3VpbnQ2NF90IHhwY19kaWN0aW9uYXJ5X2dldF91aW50NjQoeHBjX29iamVjdF90
LCBjb25zdCBjaGFyKiBrZXkpOworeHBjX29iamVjdF90IHhwY19kaWN0aW9uYXJ5X2dldF92YWx1
ZSh4cGNfb2JqZWN0X3QsIGNvbnN0IGNoYXIqIGtleSk7Cit2b2lkIHhwY19kaWN0aW9uYXJ5X3Nl
dF9ib29sKHhwY19vYmplY3RfdCwgY29uc3QgY2hhcioga2V5LCBib29sIHZhbHVlKTsKK3ZvaWQg
eHBjX2RpY3Rpb25hcnlfc2V0X2ZkKHhwY19vYmplY3RfdCwgY29uc3QgY2hhcioga2V5LCBpbnQg
ZmQpOwordm9pZCB4cGNfZGljdGlvbmFyeV9zZXRfc3RyaW5nKHhwY19vYmplY3RfdCwgY29uc3Qg
Y2hhcioga2V5LCBjb25zdCBjaGFyKiBzdHJpbmcpOwordm9pZCB4cGNfZGljdGlvbmFyeV9zZXRf
dWludDY0KHhwY19vYmplY3RfdCwgY29uc3QgY2hhcioga2V5LCB1aW50NjRfdCB2YWx1ZSk7Cit2
b2lkIHhwY19kaWN0aW9uYXJ5X3NldF92YWx1ZSh4cGNfb2JqZWN0X3QsIGNvbnN0IGNoYXIqa2V5
LCB4cGNfb2JqZWN0X3QgdmFsdWUpOworeHBjX3R5cGVfdCB4cGNfZ2V0X3R5cGUoeHBjX29iamVj
dF90KTsKK3ZvaWQgeHBjX21haW4oeHBjX2Nvbm5lY3Rpb25faGFuZGxlcl90KTsKK2NvbnN0IGNo
YXIqIHhwY19zdHJpbmdfZ2V0X3N0cmluZ19wdHIoeHBjX29iamVjdF90KTsKK3ZvaWQgeHBjX3Ry
YW5zYWN0aW9uX2JlZ2luKHZvaWQpOwordm9pZCB4cGNfdHJhbnNhY3Rpb25fZW5kKHZvaWQpOwor
dm9pZCB4cGNfdHJhbnNhY3Rpb25fZXhpdF9jbGVhbih2b2lkKTsKK3ZvaWQgeHBjX3RyYWNrX2Fj
dGl2aXR5KHZvaWQpOworCit4cGNfb2JqZWN0X3QgeHBjX2Nvbm5lY3Rpb25fY29weV9lbnRpdGxl
bWVudF92YWx1ZSh4cGNfY29ubmVjdGlvbl90LCBjb25zdCBjaGFyKiBlbnRpdGxlbWVudCk7Cit2
b2lkIHhwY19jb25uZWN0aW9uX2dldF9hdWRpdF90b2tlbih4cGNfY29ubmVjdGlvbl90LCBhdWRp
dF90b2tlbl90Kik7Cit2b2lkIHhwY19jb25uZWN0aW9uX2tpbGwoeHBjX2Nvbm5lY3Rpb25fdCwg
aW50KTsKK3ZvaWQgeHBjX2Nvbm5lY3Rpb25fc2V0X2luc3RhbmNlKHhwY19jb25uZWN0aW9uX3Qs
IHV1aWRfdCk7CittYWNoX3BvcnRfdCB4cGNfZGljdGlvbmFyeV9jb3B5X21hY2hfc2VuZCh4cGNf
b2JqZWN0X3QsIGNvbnN0IGNoYXIqKTsKK3ZvaWQgeHBjX2RpY3Rpb25hcnlfc2V0X21hY2hfc2Vu
ZCh4cGNfb2JqZWN0X3QsIGNvbnN0IGNoYXIqLCBtYWNoX3BvcnRfdCk7CisKK3ZvaWQgeHBjX2Nv
bm5lY3Rpb25fc2V0X2Jvb3RzdHJhcCh4cGNfY29ubmVjdGlvbl90LCB4cGNfb2JqZWN0X3QgYm9v
dHN0cmFwKTsKK3hwY19vYmplY3RfdCB4cGNfY29weV9ib290c3RyYXAodm9pZCk7Cit2b2lkIHhw
Y19jb25uZWN0aW9uX3NldF9vbmVzaG90X2luc3RhbmNlKHhwY19jb25uZWN0aW9uX3QsIHV1aWRf
dCBpbnN0YW5jZSk7CiAKICNpZiBPU19PQkpFQ1RfVVNFX09CSkNfUkVUQUlOX1JFTEVBU0UKICNp
ZiAhZGVmaW5lZCh4cGNfcmV0YWluKQogI2RlZmluZSB4cGNfcmV0YWluKG9iamVjdCkgKHsgeHBj
X29iamVjdF90IF9vID0gKG9iamVjdCk7IF94cGNfb2JqZWN0X3ZhbGlkYXRlKF9vKTsgW19vIHJl
dGFpbl07IH0pCiAjZW5kaWYKICNlbHNlCi1FWFRFUk5fQyB4cGNfb2JqZWN0X3QgeHBjX3JldGFp
bih4cGNfb2JqZWN0X3QpOworeHBjX29iamVjdF90IHhwY19yZXRhaW4oeHBjX29iamVjdF90KTsK
ICNlbmRpZgogCiAjaWYgT1NfT0JKRUNUX1VTRV9PQkpDX1JFVEFJTl9SRUxFQVNFCkBAIC0xNTEs
NyArMTUzLDkgQEAgRVhURVJOX0MgeHBjX29iamVjdF90IHhwY19yZXRhaW4oeHBjX29iamVjdF90
KTsKICNkZWZpbmUgeHBjX3JlbGVhc2Uob2JqZWN0KSAoeyB4cGNfb2JqZWN0X3QgX28gPSAob2Jq
ZWN0KTsgX3hwY19vYmplY3RfdmFsaWRhdGUoX28pOyBbX28gcmVsZWFzZV07IH0pCiAjZW5kaWYK
ICNlbHNlCi1FWFRFUk5fQyB2b2lkIHhwY19yZWxlYXNlKHhwY19vYmplY3RfdCk7Cit2b2lkIHhw
Y19yZWxlYXNlKHhwY19vYmplY3RfdCk7CiAjZW5kaWYKIAorV1RGX0VYVEVSTl9DX0VORAorCiAj
ZW5kaWYgLy8gWFBDU1BJX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3NwaS9kYXJ3aW4v
ZHlsZFNQSS5oIGIvU291cmNlL1dURi93dGYvc3BpL2Rhcndpbi9keWxkU1BJLmgKaW5kZXggODg0
YjkzNGNjYTMyODQ3OTFiYTgyYWQ1MmJmMDg0YjFhZGQzN2EwYi4uNjU4ZGIxMjFjNDdkYTIyMGJk
ZTg0ZDkwYjM3ZDNiZTg1NDQzM2NmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvc3BpL2Rh
cndpbi9keWxkU1BJLmgKKysrIGIvU291cmNlL1dURi93dGYvc3BpL2Rhcndpbi9keWxkU1BJLmgK
QEAgLTUxLDQgKzUxLDggQEAKIAogI2VuZGlmCiAKLWV4dGVybiAiQyIgdWludDMyX3QgZHlsZF9n
ZXRfcHJvZ3JhbV9zZGtfdmVyc2lvbigpOworV1RGX0VYVEVSTl9DX0JFR0lOCisKK3VpbnQzMl90
IGR5bGRfZ2V0X3Byb2dyYW1fc2RrX3ZlcnNpb24oKTsKKworV1RGX0VYVEVSTl9DX0VORApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NmL0NGTG9jYWxlU1BJLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY2YvQ0ZMb2NhbGVTUEkuaAppbmRleCAzZDFhMTg1
NDIwMWJiOWExOTViOWE1N2MzNDZkOThkNjk0ZjE2Mjc2Li4xY2Y0MzVlMTg4YzNiMDg5ZmRiNDVh
MTc1ZjI1OGM2NDIxNzIxNzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9z
cGkvY2YvQ0ZMb2NhbGVTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY2Yv
Q0ZMb2NhbGVTUEkuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQg
QXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0y
MDE2IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTMyLDEwICszMiwxMiBAQAogI2ltcG9ydCA8Q29yZUZvdW5kYXRpb24v
Q0ZQcml2Lmg+CiAjZW5kaWYKIAotZXh0ZXJuICJDIiB7CitXVEZfRVhURVJOX0NfQkVHSU4KKwog
Ly8gRklYTUU6IDxyZGFyOi8vcHJvYmxlbS8xODEyODE5Mj4gTWFrZSBDRkxvY2FsZUdldExhbmd1
YWdlUmVnaW9uRW5jb2RpbmdGb3JMb2NhbGVJZGVudGlmaWVyIHB1YmxpYyBBUEkKIC8vIEZJWE1F
OiA8cmRhcjovL3Byb2JsZW0vMTgwODM4ODA+IFJlcGxhY2UgdXNlIG9mIFNjcmlwdCBNYW5hZ2Vy
IHRvIGNhbm9uaWNhbGl6ZSBsb2NhbGVzIHdpdGggYSBjdXN0b20gV2ViLXNwZWNpZmljIHRhYmxl
CiBCb29sZWFuIENGTG9jYWxlR2V0TGFuZ3VhZ2VSZWdpb25FbmNvZGluZ0ZvckxvY2FsZUlkZW50
aWZpZXIoQ0ZTdHJpbmdSZWYgbG9jYWxlLCBMYW5nQ29kZSosIFJlZ2lvbkNvZGUqLCBTY3JpcHRD
b2RlKiwgQ0ZTdHJpbmdFbmNvZGluZyopOwotfQorCitXVEZfRVhURVJOX0NfRU5ECiAKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NmL0NGTmV0d29ya0Nv
bm5lY3Rpb25DYWNoZVNQSS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NmL0NGTmV0
d29ya0Nvbm5lY3Rpb25DYWNoZVNQSS5oCmluZGV4IGU3MTA0ZTMyYjY1NmE5MmE3NjZkNTMzZWEw
MzhjYWNhZmJiYjE5YmEuLmFhMDlkOWUxNzQ3MmNkYzVkZDE0YjdkNGI3MmRjNzQ1MmEzMTc0MmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jZi9DRk5ldHdvcmtDb25u
ZWN0aW9uQ2FjaGVTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY2YvQ0ZO
ZXR3b3JrQ29ubmVjdGlvbkNhY2hlU1BJLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDE0LTIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDE0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNyw3ICszNywxMSBAQCBlbnVtIEhUVFBD
b25uZWN0aW9uQ2FjaGVMaW1pdEtleXMgewogfTsKICNlbmRpZgogCi1FWFRFUk5fQyBpbnQgX0NG
TmV0d29ya0hUVFBDb25uZWN0aW9uQ2FjaGVHZXRMaW1pdChIVFRQQ29ubmVjdGlvbkNhY2hlTGlt
aXRLZXlzKTsKLUVYVEVSTl9DIHZvaWQgX0NGTmV0d29ya0hUVFBDb25uZWN0aW9uQ2FjaGVTZXRM
aW1pdChIVFRQQ29ubmVjdGlvbkNhY2hlTGltaXRLZXlzLCBpbnQpOworV1RGX0VYVEVSTl9DX0JF
R0lOCisKK2ludCBfQ0ZOZXR3b3JrSFRUUENvbm5lY3Rpb25DYWNoZUdldExpbWl0KEhUVFBDb25u
ZWN0aW9uQ2FjaGVMaW1pdEtleXMpOwordm9pZCBfQ0ZOZXR3b3JrSFRUUENvbm5lY3Rpb25DYWNo
ZVNldExpbWl0KEhUVFBDb25uZWN0aW9uQ2FjaGVMaW1pdEtleXMsIGludCk7CisKK1dURl9FWFRF
Uk5fQ19FTkQKIAogI2VuZGlmIC8vIENGTmV0d29ya0Nvbm5lY3Rpb25DYWNoZVNQSV9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmgKaW5kZXggNWQ4ODM2
ZWE5ZGVlNzRhMGQxOWY3MDdiOTIyN2JmMGEzODQyYTMxOS4uNjA4Nzc0YjE1OWQyZWZjZWNlYTgz
MWU5OGE4ZWFkZGM0OTE2M2RmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
c3BpL2NmL0NGTmV0d29ya1NQSS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9j
Zi9DRk5ldHdvcmtTUEkuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0
LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC00NSwxNyArNDUsNyBAQAogCiAvLyBGSVhNRTogUmVtb3ZlIHRoZSBk
ZWZpbmVkKF9fT0JKQ19fKS1ndWFyZCBvbmNlIHdlIGZpeCA8cmRhcjovL3Byb2JsZW0vMTkwMzM2
MTA+LgogI2lmIGRlZmluZWQoX19PQkpDX18pICYmIFBMQVRGT1JNKENPQ09BKQotLy8gRklYTUU6
IEFzIGEgd29ya2Fyb3VuZCBmb3IgPHJkYXI6Ly9wcm9ibGVtLzE4MzM3MTgyPiwgd2UgY29uZGl0
aW9uYWxseSBlbmNsb3NlIHRoZSBoZWFkZXIKLS8vIGluIGFuIGV4dGVybiAiQyIgbGlua2FnZSBi
bG9jayB0byBtYWtlIGl0IHN1aXRhYmxlIGZvciBDKysgdXNlLgotI2lmZGVmIF9fY3BsdXNwbHVz
Ci1leHRlcm4gIkMiIHsKLSNlbmRpZgotCiAjaW1wb3J0IDxDRk5ldHdvcmsvQ0ZOU1VSTENvbm5l
Y3Rpb24uaD4KLQotI2lmZGVmIF9fY3BsdXNwbHVzCi19Ci0jZW5kaWYKICNlbmRpZiAvLyBkZWZp
bmVkKF9fT0JKQ19fKSAmJiBQTEFURk9STShDT0NPQSkKIAogI2Vsc2UgLy8gIVBMQVRGT1JNKFdJ
TikgJiYgIVVTRShBUFBMRV9JTlRFUk5BTF9TREspCkBAIC0xMzMsNTMgKzEyMyw1NyBAQCB0eXBl
ZGVmIHZvaWQgKF5DRkNhY2hlZFVSTFJlc3BvbnNlQ2FsbEJhY2tCbG9jaykoQ0ZDYWNoZWRVUkxS
ZXNwb25zZVJlZik7CiAKICNlbmRpZiAvLyAhUExBVEZPUk0oV0lOKSAmJiAhVVNFKEFQUExFX0lO
VEVSTkFMX1NESykKIAorV1RGX0VYVEVSTl9DX0JFR0lOCisKICNpZiAhUExBVEZPUk0oV0lOKQot
RVhURVJOX0Mgdm9pZCBDRlVSTFJlcXVlc3RTZXRTaG91bGRTdGFydFN5bmNocm9ub3VzbHkoQ0ZV
UkxSZXF1ZXN0UmVmLCBCb29sZWFuKTsKK3ZvaWQgQ0ZVUkxSZXF1ZXN0U2V0U2hvdWxkU3RhcnRT
eW5jaHJvbm91c2x5KENGVVJMUmVxdWVzdFJlZiwgQm9vbGVhbik7CiAKLUVYVEVSTl9DIENGVVJM
Q2FjaGVSZWYgQ0ZVUkxDYWNoZUNvcHlTaGFyZWRVUkxDYWNoZSgpOwotRVhURVJOX0Mgdm9pZCBD
RlVSTENhY2hlU2V0TWVtb3J5Q2FwYWNpdHkoQ0ZVUkxDYWNoZVJlZiwgQ0ZJbmRleCBtZW1vcnlD
YXBhY2l0eSk7CitDRlVSTENhY2hlUmVmIENGVVJMQ2FjaGVDb3B5U2hhcmVkVVJMQ2FjaGUoKTsK
K3ZvaWQgQ0ZVUkxDYWNoZVNldE1lbW9yeUNhcGFjaXR5KENGVVJMQ2FjaGVSZWYsIENGSW5kZXgg
bWVtb3J5Q2FwYWNpdHkpOwogI2lmIFBMQVRGT1JNKENPQ09BKQotRVhURVJOX0MgQm9vbGVhbiBf
Q0ZOZXR3b3JrSXNLbm93bkhTVFNIb3N0V2l0aFNlc3Npb24oQ0ZVUkxSZWYsIENGVVJMU3RvcmFn
ZVNlc3Npb25SZWYpOwotRVhURVJOX0Mgdm9pZCBfQ0ZOZXR3b3JrUmVzZXRIU1RTSG9zdHNXaXRo
U2Vzc2lvbihDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmKTsKK0Jvb2xlYW4gX0NGTmV0d29ya0lzS25v
d25IU1RTSG9zdFdpdGhTZXNzaW9uKENGVVJMUmVmLCBDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmKTsK
K3ZvaWQgX0NGTmV0d29ya1Jlc2V0SFNUU0hvc3RzV2l0aFNlc3Npb24oQ0ZVUkxTdG9yYWdlU2Vz
c2lvblJlZik7CiAjZW5kaWYKIAotRVhURVJOX0Mgdm9pZCBDRkhUVFBDb29raWVTdG9yYWdlRGVs
ZXRlQWxsQ29va2llcyhDRkhUVFBDb29raWVTdG9yYWdlUmVmKTsKK3ZvaWQgQ0ZIVFRQQ29va2ll
U3RvcmFnZURlbGV0ZUFsbENvb2tpZXMoQ0ZIVFRQQ29va2llU3RvcmFnZVJlZik7CiAKICNpZiBQ
TEFURk9STShDT0NPQSkKLUVYVEVSTl9DIENGRGF0YVJlZiBfQ0ZDYWNoZWRVUkxSZXNwb25zZUdl
dE1lbU1hcHBlZERhdGEoQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZik7CitDRkRhdGFSZWYgX0NGQ2Fj
aGVkVVJMUmVzcG9uc2VHZXRNZW1NYXBwZWREYXRhKENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYpOwog
I2lmZGVmIF9fQkxPQ0tTX18KLUVYVEVSTl9DIHZvaWQgX0NGQ2FjaGVkVVJMUmVzcG9uc2VTZXRC
ZWNhbWVGaWxlQmFja2VkQ2FsbEJhY2tCbG9jayhDRkNhY2hlZFVSTFJlc3BvbnNlUmVmLCBDRkNh
Y2hlZFVSTFJlc3BvbnNlQ2FsbEJhY2tCbG9jaywgZGlzcGF0Y2hfcXVldWVfdCk7Cit2b2lkIF9D
RkNhY2hlZFVSTFJlc3BvbnNlU2V0QmVjYW1lRmlsZUJhY2tlZENhbGxCYWNrQmxvY2soQ0ZDYWNo
ZWRVUkxSZXNwb25zZVJlZiwgQ0ZDYWNoZWRVUkxSZXNwb25zZUNhbGxCYWNrQmxvY2ssIGRpc3Bh
dGNoX3F1ZXVlX3QpOwogI2VuZGlmCiAjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpCiAKLUVYVEVS
Tl9DIHZvaWQgQ0ZVUkxDb25uZWN0aW9uSW52YWxpZGF0ZUNvbm5lY3Rpb25DYWNoZSgpOwotCi1F
WFRFUk5fQyBDRlN0cmluZ1JlZiBjb25zdCBrQ0ZIVFRQQ29va2llTG9jYWxGaWxlRG9tYWluOwot
RVhURVJOX0MgY29uc3QgQ0ZTdHJpbmdSZWYga0NGVVJMUmVxdWVzdEFsbG93QWxsUE9TVENhY2hp
bmc7Ci0KLUVYVEVSTl9DIGNvbnN0IENGU3RyaW5nUmVmIF9rQ0ZVUkxDb25uZWN0aW9uUHJvcGVy
dHlTaG91bGRTbmlmZjsKLQotRVhURVJOX0MgQ0ZIVFRQQ29va2llU3RvcmFnZVJlZiBfQ0ZIVFRQ
Q29va2llU3RvcmFnZUdldERlZmF1bHQoQ0ZBbGxvY2F0b3JSZWYpOwotRVhURVJOX0Mgdm9pZCBD
RkhUVFBDb29raWVTdG9yYWdlU2V0Q29va2llKENGSFRUUENvb2tpZVN0b3JhZ2VSZWYsIENGSFRU
UENvb2tpZVJlZik7Ci1FWFRFUk5fQyB2b2lkIENGSFRUUENvb2tpZVN0b3JhZ2VTZXRDb29raWVB
Y2NlcHRQb2xpY3koQ0ZIVFRQQ29va2llU3RvcmFnZVJlZiwgQ0ZIVFRQQ29va2llU3RvcmFnZUFj
Y2VwdFBvbGljeSk7Ci1FWFRFUk5fQyB2b2lkIF9DRk5ldHdvcmtTZXRPdmVycmlkZVN5c3RlbVBy
b3h5U2V0dGluZ3MoQ0ZEaWN0aW9uYXJ5UmVmKTsKLUVYVEVSTl9DIENGVVJMQ3JlZGVudGlhbFN0
b3JhZ2VSZWYgQ0ZVUkxDcmVkZW50aWFsU3RvcmFnZUNyZWF0ZShDRkFsbG9jYXRvclJlZik7Ci1F
WFRFUk5fQyBDRlVSTENyZWRlbnRpYWxSZWYgQ0ZVUkxDcmVkZW50aWFsU3RvcmFnZUNvcHlEZWZh
dWx0Q3JlZGVudGlhbEZvclByb3RlY3Rpb25TcGFjZShDRlVSTENyZWRlbnRpYWxTdG9yYWdlUmVm
LCBDRlVSTFByb3RlY3Rpb25TcGFjZVJlZik7Ci1FWFRFUk5fQyBDRlVSTFJlcXVlc3RQcmlvcml0
eSBDRlVSTFJlcXVlc3RHZXRSZXF1ZXN0UHJpb3JpdHkoQ0ZVUkxSZXF1ZXN0UmVmKTsKLUVYVEVS
Tl9DIHZvaWQgX0NGVVJMUmVxdWVzdFNldFByb3RvY29sUHJvcGVydHkoQ0ZVUkxSZXF1ZXN0UmVm
LCBDRlN0cmluZ1JlZiwgQ0ZUeXBlUmVmKTsKLUVYVEVSTl9DIHZvaWQgQ0ZVUkxSZXF1ZXN0U2V0
UmVxdWVzdFByaW9yaXR5KENGVVJMUmVxdWVzdFJlZiwgQ0ZVUkxSZXF1ZXN0UHJpb3JpdHkpOwot
RVhURVJOX0Mgdm9pZCBDRlVSTFJlcXVlc3RTZXRTaG91bGRQaXBlbGluZUhUVFAoQ0ZVUkxSZXF1
ZXN0UmVmLCBCb29sZWFuLCBCb29sZWFuKTsKLUVYVEVSTl9DIHZvaWQgX0NGVVJMUmVxdWVzdFNl
dFN0b3JhZ2VTZXNzaW9uKENGTXV0YWJsZVVSTFJlcXVlc3RSZWYsIENGVVJMU3RvcmFnZVNlc3Np
b25SZWYpOwotRVhURVJOX0MgQ0ZTdHJpbmdSZWYgQ0ZVUkxSZXNwb25zZUNvcHlTdWdnZXN0ZWRG
aWxlbmFtZShDRlVSTFJlc3BvbnNlUmVmKTsKLUVYVEVSTl9DIENGSFRUUE1lc3NhZ2VSZWYgQ0ZV
UkxSZXNwb25zZUdldEhUVFBSZXNwb25zZShDRlVSTFJlc3BvbnNlUmVmKTsKLUVYVEVSTl9DIENG
U3RyaW5nUmVmIENGVVJMUmVzcG9uc2VHZXRNSU1FVHlwZShDRlVSTFJlc3BvbnNlUmVmKTsKLUVY
VEVSTl9DIENGRGljdGlvbmFyeVJlZiBfQ0ZVUkxSZXNwb25zZUdldFNTTENlcnRpZmljYXRlQ29u
dGV4dChDRlVSTFJlc3BvbnNlUmVmKTsKLUVYVEVSTl9DIENGVVJMUmVmIENGVVJMUmVzcG9uc2VH
ZXRVUkwoQ0ZVUkxSZXNwb25zZVJlZik7Ci1FWFRFUk5fQyB2b2lkIENGVVJMUmVzcG9uc2VTZXRN
SU1FVHlwZShDRlVSTFJlc3BvbnNlUmVmLCBDRlN0cmluZ1JlZik7Ci1FWFRFUk5fQyBDRkhUVFBD
b29raWVTdG9yYWdlUmVmIF9DRlVSTFN0b3JhZ2VTZXNzaW9uQ29weUNvb2tpZVN0b3JhZ2UoQ0ZB
bGxvY2F0b3JSZWYsIENGVVJMU3RvcmFnZVNlc3Npb25SZWYpOwotRVhURVJOX0MgQ0ZBcnJheVJl
ZiBfQ0ZIVFRQQ29va2llU3RvcmFnZUNvcHlDb29raWVzRm9yVVJMV2l0aE1haW5Eb2N1bWVudFVS
TChDRkhUVFBDb29raWVTdG9yYWdlUmVmIGluQ29va2llU3RvcmFnZSwgQ0ZVUkxSZWYgaW5VUkws
IENGVVJMUmVmIGluTWFpbkRvY3VtZW50VVJMLCBCb29sZWFuIHNlbmRTZWN1cmVDb29raWVzKTsK
K3ZvaWQgQ0ZVUkxDb25uZWN0aW9uSW52YWxpZGF0ZUNvbm5lY3Rpb25DYWNoZSgpOworCitleHRl
cm4gQ0ZTdHJpbmdSZWYgY29uc3Qga0NGSFRUUENvb2tpZUxvY2FsRmlsZURvbWFpbjsKK2V4dGVy
biBjb25zdCBDRlN0cmluZ1JlZiBrQ0ZVUkxSZXF1ZXN0QWxsb3dBbGxQT1NUQ2FjaGluZzsKKwor
ZXh0ZXJuIGNvbnN0IENGU3RyaW5nUmVmIF9rQ0ZVUkxDb25uZWN0aW9uUHJvcGVydHlTaG91bGRT
bmlmZjsKKworQ0ZIVFRQQ29va2llU3RvcmFnZVJlZiBfQ0ZIVFRQQ29va2llU3RvcmFnZUdldERl
ZmF1bHQoQ0ZBbGxvY2F0b3JSZWYpOwordm9pZCBDRkhUVFBDb29raWVTdG9yYWdlU2V0Q29va2ll
KENGSFRUUENvb2tpZVN0b3JhZ2VSZWYsIENGSFRUUENvb2tpZVJlZik7Cit2b2lkIENGSFRUUENv
b2tpZVN0b3JhZ2VTZXRDb29raWVBY2NlcHRQb2xpY3koQ0ZIVFRQQ29va2llU3RvcmFnZVJlZiwg
Q0ZIVFRQQ29va2llU3RvcmFnZUFjY2VwdFBvbGljeSk7Cit2b2lkIF9DRk5ldHdvcmtTZXRPdmVy
cmlkZVN5c3RlbVByb3h5U2V0dGluZ3MoQ0ZEaWN0aW9uYXJ5UmVmKTsKK0NGVVJMQ3JlZGVudGlh
bFN0b3JhZ2VSZWYgQ0ZVUkxDcmVkZW50aWFsU3RvcmFnZUNyZWF0ZShDRkFsbG9jYXRvclJlZik7
CitDRlVSTENyZWRlbnRpYWxSZWYgQ0ZVUkxDcmVkZW50aWFsU3RvcmFnZUNvcHlEZWZhdWx0Q3Jl
ZGVudGlhbEZvclByb3RlY3Rpb25TcGFjZShDRlVSTENyZWRlbnRpYWxTdG9yYWdlUmVmLCBDRlVS
TFByb3RlY3Rpb25TcGFjZVJlZik7CitDRlVSTFJlcXVlc3RQcmlvcml0eSBDRlVSTFJlcXVlc3RH
ZXRSZXF1ZXN0UHJpb3JpdHkoQ0ZVUkxSZXF1ZXN0UmVmKTsKK3ZvaWQgX0NGVVJMUmVxdWVzdFNl
dFByb3RvY29sUHJvcGVydHkoQ0ZVUkxSZXF1ZXN0UmVmLCBDRlN0cmluZ1JlZiwgQ0ZUeXBlUmVm
KTsKK3ZvaWQgQ0ZVUkxSZXF1ZXN0U2V0UmVxdWVzdFByaW9yaXR5KENGVVJMUmVxdWVzdFJlZiwg
Q0ZVUkxSZXF1ZXN0UHJpb3JpdHkpOwordm9pZCBDRlVSTFJlcXVlc3RTZXRTaG91bGRQaXBlbGlu
ZUhUVFAoQ0ZVUkxSZXF1ZXN0UmVmLCBCb29sZWFuLCBCb29sZWFuKTsKK3ZvaWQgX0NGVVJMUmVx
dWVzdFNldFN0b3JhZ2VTZXNzaW9uKENGTXV0YWJsZVVSTFJlcXVlc3RSZWYsIENGVVJMU3RvcmFn
ZVNlc3Npb25SZWYpOworQ0ZTdHJpbmdSZWYgQ0ZVUkxSZXNwb25zZUNvcHlTdWdnZXN0ZWRGaWxl
bmFtZShDRlVSTFJlc3BvbnNlUmVmKTsKK0NGSFRUUE1lc3NhZ2VSZWYgQ0ZVUkxSZXNwb25zZUdl
dEhUVFBSZXNwb25zZShDRlVSTFJlc3BvbnNlUmVmKTsKK0NGU3RyaW5nUmVmIENGVVJMUmVzcG9u
c2VHZXRNSU1FVHlwZShDRlVSTFJlc3BvbnNlUmVmKTsKK0NGRGljdGlvbmFyeVJlZiBfQ0ZVUkxS
ZXNwb25zZUdldFNTTENlcnRpZmljYXRlQ29udGV4dChDRlVSTFJlc3BvbnNlUmVmKTsKK0NGVVJM
UmVmIENGVVJMUmVzcG9uc2VHZXRVUkwoQ0ZVUkxSZXNwb25zZVJlZik7Cit2b2lkIENGVVJMUmVz
cG9uc2VTZXRNSU1FVHlwZShDRlVSTFJlc3BvbnNlUmVmLCBDRlN0cmluZ1JlZik7CitDRkhUVFBD
b29raWVTdG9yYWdlUmVmIF9DRlVSTFN0b3JhZ2VTZXNzaW9uQ29weUNvb2tpZVN0b3JhZ2UoQ0ZB
bGxvY2F0b3JSZWYsIENGVVJMU3RvcmFnZVNlc3Npb25SZWYpOworQ0ZBcnJheVJlZiBfQ0ZIVFRQ
Q29va2llU3RvcmFnZUNvcHlDb29raWVzRm9yVVJMV2l0aE1haW5Eb2N1bWVudFVSTChDRkhUVFBD
b29raWVTdG9yYWdlUmVmIGluQ29va2llU3RvcmFnZSwgQ0ZVUkxSZWYgaW5VUkwsIENGVVJMUmVm
IGluTWFpbkRvY3VtZW50VVJMLCBCb29sZWFuIHNlbmRTZWN1cmVDb29raWVzKTsKICNlbmRpZiAv
LyAhUExBVEZPUk0oV0lOKQogCitXVEZfRVhURVJOX0NfRU5ECisKIC8vIEZJWE1FOiBXZSBzaG91
bGQgb25seSBmb3J3YXJkIGRlY2xhcmUgdGhpcyBTUEkgd2hlbiBidWlsZGluZyBmb3IgaU9TIHdp
dGhvdXQgdGhlIEFwcGxlIEludGVybmFsIFNESy4KIC8vIEFzIGEgd29ya2Fyb3VuZCBmb3IgPHJk
YXI6Ly9wcm9ibGVtLzE5MDI1MDE2Piwgd2UgbXVzdCBmb3J3YXJkIGRlY2xhcmUgdGhpcyBTUEkg
cmVnYXJkbGVzcyBvZiB3aGV0aGVyCiAvLyB3ZSBhcmUgYnVpbGRpbmcgd2l0aCB0aGUgQXBwbGUg
SW50ZXJuYWwgU0RLLgpAQCAtMjAwLDIxICsxOTQsMjUgQEAgZW51bSA6IE5TVUludGVnZXIgewog
QGVuZAogI2VuZGlmCiAKK1dURl9FWFRFUk5fQ19CRUdJTgorCiAjaWYgVEFSR0VUX09TX0lQSE9O
RSB8fCAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDEwMTEwMCkKLUVYVEVSTl9DIENGRGF0YVJlZiBfQ0ZOZXR3b3JrQ29weUFUU0NvbnRleHQodm9p
ZCk7Ci1FWFRFUk5fQyBCb29sZWFuIF9DRk5ldHdvcmtTZXRBVFNDb250ZXh0KENGRGF0YVJlZik7
CitDRkRhdGFSZWYgX0NGTmV0d29ya0NvcHlBVFNDb250ZXh0KHZvaWQpOworQm9vbGVhbiBfQ0ZO
ZXR3b3JrU2V0QVRTQ29udGV4dChDRkRhdGFSZWYpOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShD
T0NPQSkKLUVYVEVSTl9DIHZvaWQgX0NGTmV0d29ya1Jlc2V0SFNUU0hvc3RzU2luY2VEYXRlKENG
VVJMU3RvcmFnZVNlc3Npb25SZWYsIENGRGF0ZVJlZik7Cit2b2lkIF9DRk5ldHdvcmtSZXNldEhT
VFNIb3N0c1NpbmNlRGF0ZShDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmLCBDRkRhdGVSZWYpOwogI2Vu
ZGlmCiAKICNpZiBUQVJHRVRfT1NfSVBIT05FIHx8IChQTEFURk9STShNQUMpICYmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwKQotRVhURVJOX0MgQ0ZEYXRhUmVmIENG
SFRUUENvb2tpZVN0b3JhZ2VDcmVhdGVJZGVudGlmeWluZ0RhdGEoQ0ZBbGxvY2F0b3JSZWYgaW5B
bGxvY2F0b3IsIENGSFRUUENvb2tpZVN0b3JhZ2VSZWYgaW5TdG9yYWdlKTsKLUVYVEVSTl9DIENG
SFRUUENvb2tpZVN0b3JhZ2VSZWYgQ0ZIVFRQQ29va2llU3RvcmFnZUNyZWF0ZUZyb21JZGVudGlm
eWluZ0RhdGEoQ0ZBbGxvY2F0b3JSZWYgaW5BbGxvY2F0b3IsIENGRGF0YVJlZiBpbkRhdGEpOwot
RVhURVJOX0MgQ0ZBcnJheVJlZiBfQ0ZIVFRQUGFyc2VkQ29va2llc1dpdGhSZXNwb25zZUhlYWRl
ckZpZWxkcyhDRkFsbG9jYXRvclJlZiBpbkFsbG9jYXRvciwgQ0ZEaWN0aW9uYXJ5UmVmIGhlYWRl
ckZpZWxkcywgQ0ZVUkxSZWYgaW5VUkwpOworQ0ZEYXRhUmVmIENGSFRUUENvb2tpZVN0b3JhZ2VD
cmVhdGVJZGVudGlmeWluZ0RhdGEoQ0ZBbGxvY2F0b3JSZWYgaW5BbGxvY2F0b3IsIENGSFRUUENv
b2tpZVN0b3JhZ2VSZWYgaW5TdG9yYWdlKTsKK0NGSFRUUENvb2tpZVN0b3JhZ2VSZWYgQ0ZIVFRQ
Q29va2llU3RvcmFnZUNyZWF0ZUZyb21JZGVudGlmeWluZ0RhdGEoQ0ZBbGxvY2F0b3JSZWYgaW5B
bGxvY2F0b3IsIENGRGF0YVJlZiBpbkRhdGEpOworQ0ZBcnJheVJlZiBfQ0ZIVFRQUGFyc2VkQ29v
a2llc1dpdGhSZXNwb25zZUhlYWRlckZpZWxkcyhDRkFsbG9jYXRvclJlZiBpbkFsbG9jYXRvciwg
Q0ZEaWN0aW9uYXJ5UmVmIGhlYWRlckZpZWxkcywgQ0ZVUkxSZWYgaW5VUkwpOwogI2VuZGlmCiAK
K1dURl9FWFRFUk5fQ19FTkQKKwogI2lmIGRlZmluZWQoX19PQkpDX18pCiAKIEBpbnRlcmZhY2Ug
TlNIVFRQQ29va2llICgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkv
Y2YvQ0ZVdGlsaXRpZXNTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jZi9DRlV0
aWxpdGllc1NQSS5oCmluZGV4IDE1Njg2YjRjMjMyOGFiYTMzYmQ4NzNiNDg2MDA4NDM4ODU2YWRk
YWMuLmZjOGNkNzkyNzYyYmYwYTc2MjBhMTJhY2YxMjBmYTMwOWEzNzhmZmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jZi9DRlV0aWxpdGllc1NQSS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jZi9DRlV0aWxpdGllc1NQSS5oCkBAIC0zMSw4ICsz
MSwxMSBAQAogI2ltcG9ydCA8Q29yZUZvdW5kYXRpb24vQ0ZQcml2Lmg+CiAjZW5kaWYKIAotZXh0
ZXJuICJDIiB7CitXVEZfRVhURVJOX0NfQkVHSU4KKwogQ0ZEaWN0aW9uYXJ5UmVmIF9DRkNvcHlT
eXN0ZW1WZXJzaW9uRGljdGlvbmFyeSh2b2lkKTsKIGV4dGVybiBjb25zdCBDRlN0cmluZ1JlZiBf
a0NGU3lzdGVtVmVyc2lvblByb2R1Y3RWZXJzaW9uS2V5OwogZXh0ZXJuIGNvbnN0IENGU3RyaW5n
UmVmIF9rQ0ZTeXN0ZW1WZXJzaW9uQnVpbGRWZXJzaW9uS2V5OwotfQorCitXVEZfRVhURVJOX0Nf
RU5ECisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jb2NvYS9Db3Jl
VGV4dFNQSS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NvY29hL0NvcmVUZXh0U1BJ
LmgKaW5kZXggMDhkNTEwZGJmM2I5ZDdhMzVhODFiMDVkZGFlNDEwMDQxZGQxOTIzNy4uNGQ0ZjEw
YTU4NjNlNzVlNGQ3MGNlYmVlZTAyNjRkNWZhYzg1ZmZiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vc3BpL2NvY29hL0NvcmVUZXh0U1BJLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vc3BpL2NvY29hL0NvcmVUZXh0U1BJLmgKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNiBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00NCw3ICs0NCw3IEBAIGVudW0g
ewogCiAjZW5kaWYKIAotZXh0ZXJuICJDIiB7CitXVEZfRVhURVJOX0NfQkVHSU4KIAogdHlwZWRl
ZiBjb25zdCBVbmlDaGFyKiAoKkNUVW5pQ2hhclByb3ZpZGVyQ2FsbGJhY2spKENGSW5kZXggc3Ry
aW5nSW5kZXgsIENGSW5kZXgqIGNoYXJDb3VudCwgQ0ZEaWN0aW9uYXJ5UmVmKiBhdHRyaWJ1dGVz
LCB2b2lkKiByZWZDb24pOwogdHlwZWRlZiB2b2lkICgqQ1RVbmlDaGFyRGlzcG9zZUNhbGxiYWNr
KShjb25zdCBVbmlDaGFyKiBjaGFycywgdm9pZCogcmVmQ29uKTsKQEAgLTEzMiw2ICsxMzIsNiBA
QCBib29sIENURm9udElzQXBwbGVDb2xvckVtb2ppKENURm9udFJlZik7CiBib29sIENURm9udERl
c2NyaXB0b3JJc1N5c3RlbVVJRm9udChDVEZvbnREZXNjcmlwdG9yUmVmKTsKIENURm9udFJlZiBD
VEZvbnRDcmVhdGVGb3JDaGFyYWN0ZXJzKENURm9udFJlZiBjdXJyZW50Rm9udCwgY29uc3QgVVRG
MTZDaGFyICpjaGFyYWN0ZXJzLCBDRkluZGV4IGxlbmd0aCwgQ0ZJbmRleCAqY292ZXJlZExlbmd0
aCk7CiAKLX0KK1dURl9FWFRFUk5fQ19FTkQKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9zcGkvY29jb2EvRGF0YURldGVjdG9yc0NvcmVTUEkuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jb2NvYS9EYXRhRGV0ZWN0b3JzQ29yZVNQSS5oCmluZGV4
IDU0YTRjYmI1Y2NhOGI1Y2M3ZGU0NTBjZDU2YWFjMTgwZDE5Y2Q4YWYuLmEwYzM2OTdkMGUyZTg5
YzE2NmNlNzM4NmY1YzA3YzExNWNmNzczMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3NwaS9jb2NvYS9EYXRhRGV0ZWN0b3JzQ29yZVNQSS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3NwaS9jb2NvYS9EYXRhRGV0ZWN0b3JzQ29yZVNQSS5oCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTI3LDcg
KzEyNyw3IEBAIGVudW0gewogICAgIEREU2Nhbm5lclNvdXJjZVNwb3RsaWdodCA9IDE8PDEsCiB9
OwogCi1leHRlcm4gIkMiIHsKK1dURl9FWFRFUk5fQ19CRUdJTgogCiBleHRlcm4gY29uc3QgRERT
Y2FubmVyQ29weVJlc3VsdHNPcHRpb25zIEREU2Nhbm5lckNvcHlSZXN1bHRzT3B0aW9uc0ZvclBh
c3NpdmVVc2U7CiAKQEAgLTE0OCw2ICsxNDgsNiBAQCBib29sIEREUmVzdWx0SGFzUHJvcGVydGll
cyhERFJlc3VsdFJlZiwgQ0ZJbmRleCBwcm9wZXJ0eVNldCk7CiBDRkFycmF5UmVmIEREUmVzdWx0
R2V0U3ViUmVzdWx0cyhERFJlc3VsdFJlZik7CiBERFF1ZXJ5UmFuZ2UgRERSZXN1bHRHZXRRdWVy
eVJhbmdlRm9yVVJMaWZpY2F0aW9uKEREUmVzdWx0UmVmKTsKIAotfQorV1RGX0VYVEVSTl9DX0VO
RAogCiAjZW5kaWYgLy8gRGF0YURldGVjdG9yc0NvcmVTUElfaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NvY29hL0lPUE1MaWJTUEkuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3NwaS9jb2NvYS9JT1BNTGliU1BJLmgKaW5kZXggMDNiOWM1NGZlOThkZDM4NTQ1
M2U0NDI0Nzc4MmUwYjEyN2U0MzY2MS4uZTFjZTNhZGYwOTA3YjhiNmIyMGMyMDJiNzY3YmY2ZDkz
N2NlY2Y5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NvY29hL0lP
UE1MaWJTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY29jb2EvSU9QTUxp
YlNQSS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTM4LDEyICszOCwyMCBAQAogCiB0eXBlZGVmIHVpbnQzMl90IElPUE1Bc3NlcnRpb25J
RDsKIAotRVhURVJOX0MgY29uc3QgQ0ZTdHJpbmdSZWYga0lPUE1Bc3NlcnRpb25UeXBlUHJldmVu
dFVzZXJJZGxlRGlzcGxheVNsZWVwID0gQ0ZTVFIoIlByZXZlbnRVc2VySWRsZURpc3BsYXlTbGVl
cCIpOworV1RGX0VYVEVSTl9DX0JFR0lOCisKK2NvbnN0IENGU3RyaW5nUmVmIGtJT1BNQXNzZXJ0
aW9uVHlwZVByZXZlbnRVc2VySWRsZURpc3BsYXlTbGVlcCA9IENGU1RSKCJQcmV2ZW50VXNlcklk
bGVEaXNwbGF5U2xlZXAiKTsKKworV1RGX0VYVEVSTl9DX0VORAogCiAjZW5kaWYKIAotRVhURVJO
X0MgSU9SZXR1cm4gSU9QTUFzc2VydGlvbkNyZWF0ZVdpdGhEZXNjcmlwdGlvbihDRlN0cmluZ1Jl
ZiBhc3NlcnRpb25UeXBlLCBDRlN0cmluZ1JlZiBuYW1lLCBDRlN0cmluZ1JlZiBkZXRhaWxzLCBD
RlN0cmluZ1JlZiBodW1hblJlYWRhYmxlUmVhc29uLAorV1RGX0VYVEVSTl9DX0JFR0lOCisKK0lP
UmV0dXJuIElPUE1Bc3NlcnRpb25DcmVhdGVXaXRoRGVzY3JpcHRpb24oQ0ZTdHJpbmdSZWYgYXNz
ZXJ0aW9uVHlwZSwgQ0ZTdHJpbmdSZWYgbmFtZSwgQ0ZTdHJpbmdSZWYgZGV0YWlscywgQ0ZTdHJp
bmdSZWYgaHVtYW5SZWFkYWJsZVJlYXNvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgQ0ZTdHJpbmdSZWYgbG9jYWxpemF0aW9uQnVuZGxlUGF0
aCwgQ0ZUaW1lSW50ZXJ2YWwgdGltZW91dCwgQ0ZTdHJpbmdSZWYgdGltZW91dEFjdGlvbiwgSU9Q
TUFzc2VydGlvbklEICopOwotRVhURVJOX0MgSU9SZXR1cm4gSU9QTUFzc2VydGlvblJlbGVhc2Uo
SU9QTUFzc2VydGlvbklEKTsKK0lPUmV0dXJuIElPUE1Bc3NlcnRpb25SZWxlYXNlKElPUE1Bc3Nl
cnRpb25JRCk7CisKK1dURl9FWFRFUk5fQ19FTkQKIAogI2VuZGlmIC8vIElPUE1MaWJTUElfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NvY29hL01hY2hWTVNQSS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NvY29hL01hY2hWTVNQSS5oCmluZGV4IGQ4
ZjYxOGQ4ODVjMDBmN2RhMWU4OWE2OTgzYjVkNzkzMjU2ZjUwM2UuLjVhMWZhYTI2YWViMjMyMmQ0
YmNhOWYwN2FhMDZjZjI4NDEwMGE2MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3NwaS9jb2NvYS9NYWNoVk1TUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9z
cGkvY29jb2EvTWFjaFZNU1BJLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMzQsMTQgKzM0LDE4IEBACiAjaW5jbHVkZSA8bWFjaC9tYWNo
X3ZtLmg+CiAjZW5kaWYKIAotRVhURVJOX0Mga2Vybl9yZXR1cm5fdCBtYWNoX3ZtX2FsbG9jYXRl
KHZtX21hcF90IHRhcmdldCwgbWFjaF92bV9hZGRyZXNzX3QqLCBtYWNoX3ZtX3NpemVfdCwgaW50
IGZsYWdzKTsKLUVYVEVSTl9DIGtlcm5fcmV0dXJuX3QgbWFjaF92bV9kZWFsbG9jYXRlKHZtX21h
cF90IHRhcmdldCwgbWFjaF92bV9hZGRyZXNzX3QsIG1hY2hfdm1fc2l6ZV90KTsKLUVYVEVSTl9D
IGtlcm5fcmV0dXJuX3QgbWFjaF92bV9tYXAodm1fbWFwX3QgdGFyZ2V0VGFzaywgbWFjaF92bV9h
ZGRyZXNzX3QqLCBtYWNoX3ZtX3NpemVfdCwgbWFjaF92bV9vZmZzZXRfdCBtYXNrLCBpbnQgZmxh
Z3MsCitXVEZfRVhURVJOX0NfQkVHSU4KKwora2Vybl9yZXR1cm5fdCBtYWNoX3ZtX2FsbG9jYXRl
KHZtX21hcF90IHRhcmdldCwgbWFjaF92bV9hZGRyZXNzX3QqLCBtYWNoX3ZtX3NpemVfdCwgaW50
IGZsYWdzKTsKK2tlcm5fcmV0dXJuX3QgbWFjaF92bV9kZWFsbG9jYXRlKHZtX21hcF90IHRhcmdl
dCwgbWFjaF92bV9hZGRyZXNzX3QsIG1hY2hfdm1fc2l6ZV90KTsKK2tlcm5fcmV0dXJuX3QgbWFj
aF92bV9tYXAodm1fbWFwX3QgdGFyZ2V0VGFzaywgbWFjaF92bV9hZGRyZXNzX3QqLCBtYWNoX3Zt
X3NpemVfdCwgbWFjaF92bV9vZmZzZXRfdCBtYXNrLCBpbnQgZmxhZ3MsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1lbV9lbnRyeV9uYW1lX3BvcnRfdCwgbWVtb3J5X29iamVj
dF9vZmZzZXRfdCwgYm9vbGVhbl90IGNvcHksIHZtX3Byb3RfdCBjdXJyZW50UHJvdGVjdGlvbiwg
dm1fcHJvdF90IG1heGltdW1Qcm90ZWN0aW9uLCB2bV9pbmhlcml0X3QpOwotRVhURVJOX0Mga2Vy
bl9yZXR1cm5fdCBtYWNoX3ZtX3Byb3RlY3Qodm1fbWFwX3QgdGFyZ2V0VGFzaywgbWFjaF92bV9h
ZGRyZXNzX3QsIG1hY2hfdm1fc2l6ZV90LCBib29sZWFuX3Qgc2V0TWF4aW11bSwgdm1fcHJvdF90
IG5ld1Byb3RlY3Rpb24pOwotRVhURVJOX0Mga2Vybl9yZXR1cm5fdCBtYWNoX3ZtX3JlZ2lvbih2
bV9tYXBfdCB0YXJnZXRUYXNrLCBtYWNoX3ZtX2FkZHJlc3NfdCosIG1hY2hfdm1fc2l6ZV90Kiwg
dm1fcmVnaW9uX2ZsYXZvcl90LCB2bV9yZWdpb25faW5mb190LAora2Vybl9yZXR1cm5fdCBtYWNo
X3ZtX3Byb3RlY3Qodm1fbWFwX3QgdGFyZ2V0VGFzaywgbWFjaF92bV9hZGRyZXNzX3QsIG1hY2hf
dm1fc2l6ZV90LCBib29sZWFuX3Qgc2V0TWF4aW11bSwgdm1fcHJvdF90IG5ld1Byb3RlY3Rpb24p
Owora2Vybl9yZXR1cm5fdCBtYWNoX3ZtX3JlZ2lvbih2bV9tYXBfdCB0YXJnZXRUYXNrLCBtYWNo
X3ZtX2FkZHJlc3NfdCosIG1hY2hfdm1fc2l6ZV90Kiwgdm1fcmVnaW9uX2ZsYXZvcl90LCB2bV9y
ZWdpb25faW5mb190LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYWNo
X21zZ190eXBlX251bWJlcl90KiBpbmZvQ291bnQsIG1hY2hfcG9ydF90KiBvYmplY3ROYW1lKTsK
LUVYVEVSTl9DIGtlcm5fcmV0dXJuX3QgbWFjaF92bV9yZWdpb25fcmVjdXJzZSh2bV9tYXBfdCB0
YXJnZXRUYXNrLCBtYWNoX3ZtX2FkZHJlc3NfdCosIG1hY2hfdm1fc2l6ZV90KiwgdWludDMyX3Qq
IGRlcHRoLCB2bV9yZWdpb25fcmVjdXJzZV9pbmZvX3QsIG1hY2hfbXNnX3R5cGVfbnVtYmVyX3Qq
IGluZm9Db3VudCk7Ci1FWFRFUk5fQyBrZXJuX3JldHVybl90IG1hY2hfdm1fcHVyZ2FibGVfY29u
dHJvbCh2bV9tYXBfdCB0YXJnZXQsIG1hY2hfdm1fYWRkcmVzc190LCB2bV9wdXJnYWJsZV90IGNv
bnRyb2wsIGludCogc3RhdGUpOwora2Vybl9yZXR1cm5fdCBtYWNoX3ZtX3JlZ2lvbl9yZWN1cnNl
KHZtX21hcF90IHRhcmdldFRhc2ssIG1hY2hfdm1fYWRkcmVzc190KiwgbWFjaF92bV9zaXplX3Qq
LCB1aW50MzJfdCogZGVwdGgsIHZtX3JlZ2lvbl9yZWN1cnNlX2luZm9fdCwgbWFjaF9tc2dfdHlw
ZV9udW1iZXJfdCogaW5mb0NvdW50KTsKK2tlcm5fcmV0dXJuX3QgbWFjaF92bV9wdXJnYWJsZV9j
b250cm9sKHZtX21hcF90IHRhcmdldCwgbWFjaF92bV9hZGRyZXNzX3QsIHZtX3B1cmdhYmxlX3Qg
Y29udHJvbCwgaW50KiBzdGF0ZSk7CisKK1dURl9FWFRFUk5fQ19FTkQKIAogI2VuZGlmIC8vIE1h
Y2hWTVNQSV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY29jb2Ev
UXVhcnR6Q29yZVNQSS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NvY29hL1F1YXJ0
ekNvcmVTUEkuaAppbmRleCBjM2ZmMjNkN2U3ZjdhMDVjNTVhMmEzMDM4ZDc3Y2M1NmUxM2YwODI3
Li5mNzdmYWMwNjMyN2E4OGY1NDQxNjg1ODZmNzEyNzE3ODAyMjA5MmEwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY29jb2EvUXVhcnR6Q29yZVNQSS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmgKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTY4LDI3ICsx
NjgsMzEgQEAgdHlwZWRlZiBlbnVtIHsKIAogI2VuZGlmCiAKK1dURl9FWFRFUk5fQ19CRUdJTgor
CiAvLyBGSVhNRTogRGVjbGFyZSB0aGVzZSBmdW5jdGlvbnMgZXZlbiB3aGVuIFVTRShBUFBMRV9J
TlRFUk5BTF9TREspIGlzIHRydWUgb25jZSB3ZSBjYW4gZml4IDxyZGFyOi8vcHJvYmxlbS8yNjU4
NDgyOD4gaW4gYSBiZXR0ZXIgd2F5LgogI2lmICFVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQotRVhU
RVJOX0Mgdm9pZCBDQVJlbmRlclNlcnZlckNhcHR1cmVMYXllcldpdGhUcmFuc2Zvcm0obWFjaF9w
b3J0X3QsIHVpbnQzMl90IGNsaWVudElkLCB1aW50NjRfdCBsYXllcklkLCB1aW50MzJfdCBzbG90
SWQsIGludDMyX3Qgb3gsIGludDMyX3Qgb3ksIGNvbnN0IENBVHJhbnNmb3JtM0QqKTsKK3ZvaWQg
Q0FSZW5kZXJTZXJ2ZXJDYXB0dXJlTGF5ZXJXaXRoVHJhbnNmb3JtKG1hY2hfcG9ydF90LCB1aW50
MzJfdCBjbGllbnRJZCwgdWludDY0X3QgbGF5ZXJJZCwgdWludDMyX3Qgc2xvdElkLCBpbnQzMl90
IG94LCBpbnQzMl90IG95LCBjb25zdCBDQVRyYW5zZm9ybTNEKik7CiAKICNpZiBVU0UoSU9TVVJG
QUNFKQotRVhURVJOX0Mgdm9pZCBDQVJlbmRlclNlcnZlclJlbmRlckxheWVyV2l0aFRyYW5zZm9y
bShtYWNoX3BvcnRfdCBzZXJ2ZXJfcG9ydCwgdWludDMyX3QgY2xpZW50X2lkLCB1aW50NjRfdCBs
YXllcl9pZCwgSU9TdXJmYWNlUmVmLCBpbnQzMl90IG94LCBpbnQzMl90IG95LCBjb25zdCBDQVRy
YW5zZm9ybTNEKik7Ci1FWFRFUk5fQyB2b2lkIENBUmVuZGVyU2VydmVyUmVuZGVyRGlzcGxheUxh
eWVyV2l0aFRyYW5zZm9ybUFuZFRpbWVPZmZzZXQobWFjaF9wb3J0X3QsIENGU3RyaW5nUmVmIGRp
c3BsYXlfbmFtZSwgdWludDMyX3QgY2xpZW50X2lkLCB1aW50NjRfdCBsYXllcl9pZCwgSU9TdXJm
YWNlUmVmLCBpbnQzMl90IG94LCBpbnQzMl90IG95LCBjb25zdCBDQVRyYW5zZm9ybTNEKiwgQ0ZU
aW1lSW50ZXJ2YWwpOwordm9pZCBDQVJlbmRlclNlcnZlclJlbmRlckxheWVyV2l0aFRyYW5zZm9y
bShtYWNoX3BvcnRfdCBzZXJ2ZXJfcG9ydCwgdWludDMyX3QgY2xpZW50X2lkLCB1aW50NjRfdCBs
YXllcl9pZCwgSU9TdXJmYWNlUmVmLCBpbnQzMl90IG94LCBpbnQzMl90IG95LCBjb25zdCBDQVRy
YW5zZm9ybTNEKik7Cit2b2lkIENBUmVuZGVyU2VydmVyUmVuZGVyRGlzcGxheUxheWVyV2l0aFRy
YW5zZm9ybUFuZFRpbWVPZmZzZXQobWFjaF9wb3J0X3QsIENGU3RyaW5nUmVmIGRpc3BsYXlfbmFt
ZSwgdWludDMyX3QgY2xpZW50X2lkLCB1aW50NjRfdCBsYXllcl9pZCwgSU9TdXJmYWNlUmVmLCBp
bnQzMl90IG94LCBpbnQzMl90IG95LCBjb25zdCBDQVRyYW5zZm9ybTNEKiwgQ0ZUaW1lSW50ZXJ2
YWwpOwogI2Vsc2UKIHR5cGVkZWYgc3RydWN0IENBUmVuZGVyU2VydmVyQnVmZmVyKiBDQVJlbmRl
clNlcnZlckJ1ZmZlclJlZjsKLUVYVEVSTl9DIENBUmVuZGVyU2VydmVyQnVmZmVyUmVmIENBUmVu
ZGVyU2VydmVyQ3JlYXRlQnVmZmVyKHNpemVfdCwgc2l6ZV90KTsKLUVYVEVSTl9DIHZvaWQgQ0FS
ZW5kZXJTZXJ2ZXJEZXN0cm95QnVmZmVyKENBUmVuZGVyU2VydmVyQnVmZmVyUmVmKTsKLUVYVEVS
Tl9DIHNpemVfdCBDQVJlbmRlclNlcnZlckdldEJ1ZmZlcldpZHRoKENBUmVuZGVyU2VydmVyQnVm
ZmVyUmVmKTsKLUVYVEVSTl9DIHNpemVfdCBDQVJlbmRlclNlcnZlckdldEJ1ZmZlckhlaWdodChD
QVJlbmRlclNlcnZlckJ1ZmZlclJlZik7Ci1FWFRFUk5fQyBzaXplX3QgQ0FSZW5kZXJTZXJ2ZXJH
ZXRCdWZmZXJSb3dCeXRlcyhDQVJlbmRlclNlcnZlckJ1ZmZlclJlZik7Ci1FWFRFUk5fQyB1aW50
OF90KiBDQVJlbmRlclNlcnZlckdldEJ1ZmZlckRhdGEoQ0FSZW5kZXJTZXJ2ZXJCdWZmZXJSZWYp
OwotRVhURVJOX0Mgc2l6ZV90IENBUmVuZGVyU2VydmVyR2V0QnVmZmVyRGF0YVNpemUoQ0FSZW5k
ZXJTZXJ2ZXJCdWZmZXJSZWYpOwotCi1FWFRFUk5fQyBib29sIENBUmVuZGVyU2VydmVyUmVuZGVy
TGF5ZXJXaXRoVHJhbnNmb3JtKG1hY2hfcG9ydF90LCB1aW50MzJfdCBjbGllbnRfaWQsIHVpbnQ2
NF90IGxheWVyX2lkLCBDQVJlbmRlclNlcnZlckJ1ZmZlclJlZiwgaW50MzJfdCBveCwgaW50MzJf
dCBveSwgY29uc3QgQ0FUcmFuc2Zvcm0zRCopOworQ0FSZW5kZXJTZXJ2ZXJCdWZmZXJSZWYgQ0FS
ZW5kZXJTZXJ2ZXJDcmVhdGVCdWZmZXIoc2l6ZV90LCBzaXplX3QpOwordm9pZCBDQVJlbmRlclNl
cnZlckRlc3Ryb3lCdWZmZXIoQ0FSZW5kZXJTZXJ2ZXJCdWZmZXJSZWYpOworc2l6ZV90IENBUmVu
ZGVyU2VydmVyR2V0QnVmZmVyV2lkdGgoQ0FSZW5kZXJTZXJ2ZXJCdWZmZXJSZWYpOworc2l6ZV90
IENBUmVuZGVyU2VydmVyR2V0QnVmZmVySGVpZ2h0KENBUmVuZGVyU2VydmVyQnVmZmVyUmVmKTsK
K3NpemVfdCBDQVJlbmRlclNlcnZlckdldEJ1ZmZlclJvd0J5dGVzKENBUmVuZGVyU2VydmVyQnVm
ZmVyUmVmKTsKK3VpbnQ4X3QqIENBUmVuZGVyU2VydmVyR2V0QnVmZmVyRGF0YShDQVJlbmRlclNl
cnZlckJ1ZmZlclJlZik7CitzaXplX3QgQ0FSZW5kZXJTZXJ2ZXJHZXRCdWZmZXJEYXRhU2l6ZShD
QVJlbmRlclNlcnZlckJ1ZmZlclJlZik7CisKK2Jvb2wgQ0FSZW5kZXJTZXJ2ZXJSZW5kZXJMYXll
cldpdGhUcmFuc2Zvcm0obWFjaF9wb3J0X3QsIHVpbnQzMl90IGNsaWVudF9pZCwgdWludDY0X3Qg
bGF5ZXJfaWQsIENBUmVuZGVyU2VydmVyQnVmZmVyUmVmLCBpbnQzMl90IG94LCBpbnQzMl90IG95
LCBjb25zdCBDQVRyYW5zZm9ybTNEKik7CiAjZW5kaWYKICNlbmRpZgogCitXVEZfRVhURVJOX0Nf
RU5ECisKIC8vIEZJWE1FOiBNb3ZlIHRoaXMgaW50byB0aGUgQVBQTEVfSU5URVJOQUxfU0RLIGJs
b2NrIG9uY2UgaXQncyBpbiBhbiBTREsuCiBAaW50ZXJmYWNlIENBQ29udGV4dCAoQWRkaXRpb25h
bERldGFpbHMpCiAjaWYgUExBVEZPUk0oSU9TKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19P
U19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMCkKQEAgLTE5Niw2ICsyMDAsOCBAQCBF
WFRFUk5fQyBib29sIENBUmVuZGVyU2VydmVyUmVuZGVyTGF5ZXJXaXRoVHJhbnNmb3JtKG1hY2hf
cG9ydF90LCB1aW50MzJfdCBjbGllbgogI2VuZGlmCiBAZW5kCiAKK1dURl9FWFRFUk5fQ19CRUdJ
TgorCiBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBrQ0FUaWxlZExheWVyUmVtb3ZlSW1tZWRpYXRl
bHk7CiAKIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IGtDQUZpbHRlckNvbG9ySW52ZXJ0OwpAQCAt
MjI4LDYgKzIzNCw4IEBAIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IGtDQUNvbnRleHRJZ25vcmVz
SGl0VGVzdDsKIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IGtDQUNvbnRlbnRzRm9ybWF0UkdCQTEw
WFI7CiAjZW5kaWYKIAorV1RGX0VYVEVSTl9DX0VORAorCiAjaWYgKFBMQVRGT1JNKEFQUExFVFYp
ICYmIF9fVFZfT1NfVkVSU0lPTl9NQVhfQUxMT1dFRCA8IDEwMDAwMCkgXAogICAgIHx8IChQTEFU
Rk9STShXQVRDSE9TKSAmJiBfX1dBVENIX09TX1ZFUlNJT05fTUFYX0FMTE9XRUQgPCAzMDAwMCkg
XAogICAgIHx8IChQTEFURk9STShJT1MpICYmIFRBUkdFVF9PU19JT1MgJiYgX19JUEhPTkVfT1Nf
VkVSU0lPTl9NQVhfQUxMT1dFRCA8IDEwMDAwMCkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vc3BpL2lvcy9Nb2JpbGVHZXN0YWx0U1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9zcGkvaW9zL01vYmlsZUdlc3RhbHRTUEkuaAppbmRleCBkZDFmZWMyMTZlNDQ2NWVi
OTcyNDUzMDE2ZDllZDliMDE4MzU1M2RkLi41Yjc2ZjEyYzgwZTNkM2UzMzZiOGFjMzhlMTlmNzQz
NGU0ODgyMGVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvaW9zL01v
YmlsZUdlc3RhbHRTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvaW9zL01v
YmlsZUdlc3RhbHRTUEkuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0
LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC01OSwyMCArNTksMjQgQEAgdHlwZWRlZiBlbnVtIHsKIAogI2VuZGlm
CiAKLUVYVEVSTl9DIENGVHlwZVJlZiBNR0NvcHlBbnN3ZXIoQ0ZTdHJpbmdSZWYgcXVlc3Rpb24s
IENGRGljdGlvbmFyeVJlZiBvcHRpb25zKTsKK1dURl9FWFRFUk5fQ19CRUdJTgorCitDRlR5cGVS
ZWYgTUdDb3B5QW5zd2VyKENGU3RyaW5nUmVmIHF1ZXN0aW9uLCBDRkRpY3Rpb25hcnlSZWYgb3B0
aW9ucyk7CiAKICNpZm5kZWYgTUdHZXRCb29sQW5zd2VyCi1FWFRFUk5fQyBib29sIE1HR2V0Qm9v
bEFuc3dlcihDRlN0cmluZ1JlZiBxdWVzdGlvbik7Citib29sIE1HR2V0Qm9vbEFuc3dlcihDRlN0
cmluZ1JlZiBxdWVzdGlvbik7CiAjZW5kaWYKIAogI2lmbmRlZiBNR0dldFNJbnQzMkFuc3dlcgot
RVhURVJOX0MgU0ludDMyIE1HR2V0U0ludDMyQW5zd2VyKENGU3RyaW5nUmVmIHF1ZXN0aW9uLCBT
SW50MzIgZGVmYXVsdFZhbHVlKTsKK1NJbnQzMiBNR0dldFNJbnQzMkFuc3dlcihDRlN0cmluZ1Jl
ZiBxdWVzdGlvbiwgU0ludDMyIGRlZmF1bHRWYWx1ZSk7CiAjZW5kaWYKIAogI2lmbmRlZiBNR0dl
dEZsb2F0MzJBbnN3ZXIKLUVYVEVSTl9DIEZsb2F0MzIgTUdHZXRGbG9hdDMyQW5zd2VyKENGU3Ry
aW5nUmVmIHF1ZXN0aW9uLCBGbG9hdDMyIGRlZmF1bHRWYWx1ZSk7CitGbG9hdDMyIE1HR2V0Rmxv
YXQzMkFuc3dlcihDRlN0cmluZ1JlZiBxdWVzdGlvbiwgRmxvYXQzMiBkZWZhdWx0VmFsdWUpOwog
I2VuZGlmCiAKK1dURl9FWFRFUk5fQ19FTkQKKwogI2VuZGlmCiAKICNlbmRpZiAvLyBNb2JpbGVH
ZXN0YWx0U1BJX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9pb3Mv
UXVpY2tMb29rU1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvaW9zL1F1aWNrTG9v
a1NQSS5oCmluZGV4IDY5MWIyNDZiYzRkMzU4YzRkNDRkYWM3ZmFiYjI0NmUzZGRhYjBiMTMuLjVl
YTZhMWU4NThjOTFmYmYyMTVkNGE0YjcwZmZmNzVkZGM2NTc5MjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9pb3MvUXVpY2tMb29rU1BJLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vc3BpL2lvcy9RdWlja0xvb2tTUEkuaApAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00OSw3ICs0OSwxMiBAQAogCiAj
ZW5kaWYKIAotRVhURVJOX0MgTlNTZXQgKlFMUHJldmlld0dldFN1cHBvcnRlZE1JTUVUeXBlcygp
OwotRVhURVJOX0MgTlNTdHJpbmcgKlFMVHlwZUNvcHlCZXN0TWltZVR5cGVGb3JGaWxlTmFtZUFu
ZE1pbWVUeXBlKE5TU3RyaW5nICpmaWxlTmFtZSwgTlNTdHJpbmcgKm1pbWVUeXBlKTsKLUVYVEVS
Tl9DIE5TU3RyaW5nICpRTFR5cGVDb3B5QmVzdE1pbWVUeXBlRm9yVVJMQW5kTWltZVR5cGUoTlNV
UkwgKiwgTlNTdHJpbmcgKm1pbWVUeXBlKTsKLUVYVEVSTl9DIE5TU3RyaW5nICpRTFR5cGVDb3B5
VVRJRm9yVVJMQW5kTWltZVR5cGUoTlNVUkwgKiwgTlNTdHJpbmcgKm1pbWVUeXBlKTsKK1dURl9F
WFRFUk5fQ19CRUdJTgorCitOU1NldCAqUUxQcmV2aWV3R2V0U3VwcG9ydGVkTUlNRVR5cGVzKCk7
CitOU1N0cmluZyAqUUxUeXBlQ29weUJlc3RNaW1lVHlwZUZvckZpbGVOYW1lQW5kTWltZVR5cGUo
TlNTdHJpbmcgKmZpbGVOYW1lLCBOU1N0cmluZyAqbWltZVR5cGUpOworTlNTdHJpbmcgKlFMVHlw
ZUNvcHlCZXN0TWltZVR5cGVGb3JVUkxBbmRNaW1lVHlwZShOU1VSTCAqLCBOU1N0cmluZyAqbWlt
ZVR5cGUpOworTlNTdHJpbmcgKlFMVHlwZUNvcHlVVElGb3JVUkxBbmRNaW1lVHlwZShOU1VSTCAq
LCBOU1N0cmluZyAqbWltZVR5cGUpOworCitXVEZfRVhURVJOX0NfRU5ECisKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS93aW4vQ29yZVRleHRTUElXaW4uY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL3dpbi9Db3JlVGV4dFNQSVdpbi5jcHAKaW5kZXggNjMw
YzQxZTkwMzE5MjQzYTcyY2IwNjhlYjE3MDAxNTBhZmVjNDEwNC4uNWRhMmY1YTU1YWRiZDI3Y2E2
ZDc1MWExZmEyZGE0MGEwYTIzNjEzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vc3BpL3dpbi9Db3JlVGV4dFNQSVdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vc3BpL3dpbi9Db3JlVGV4dFNQSVdpbi5jcHAKQEAgLTI2LDEwICsyNiwxMCBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkNvcmVUZXh0U1BJV2luLmgiCiAKLWV4dGVybiAiQyIg
eworV1RGX0VYVEVSTl9DX0JFR0lOCiAKIGNvbnN0IENGU3RyaW5nUmVmIGtDVEZvbnRBdHRyaWJ1
dGVOYW1lID0gQ0ZTVFIoIk5TRm9udCIpOwogY29uc3QgQ0ZTdHJpbmdSZWYga0NURm9yZWdyb3Vu
ZENvbG9yRnJvbUNvbnRleHRBdHRyaWJ1dGVOYW1lID0gQ0ZTVFIoIkNURm9yZWdyb3VuZENvbG9y
RnJvbUNvbnRleHQiKTsKIAotfQorV1RGX0VYVEVSTl9DX0VORAogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvd2luL0NvcmVUZXh0U1BJV2luLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9zcGkvd2luL0NvcmVUZXh0U1BJV2luLmgKaW5kZXggOTdhNzI0NmU2OGVk
NTE2YzQ2MTZhNWUwN2YzMmIxOGE3YWQyMmE4ZC4uOTMxNTE5YjBmMGM0ZWNhMWI2MjEzNDk1NzM3
N2VjY2QxMjBiNjA4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL3dp
bi9Db3JlVGV4dFNQSVdpbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS93aW4v
Q29yZVRleHRTUElXaW4uaApAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUgPENvcmVHcmFwaGlj
cy9Db3JlR3JhcGhpY3MuaD4KICNpbmNsdWRlIDxDb3JlVGV4dC9Db3JlVGV4dC5oPgogCi1leHRl
cm4gIkMiIHsKK1dURl9FWFRFUk5fQ19CRUdJTgogCiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBfX0NU
Rm9udCogQ1RGb250UmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgX19DVExpbmUqIENUTGluZVJl
ZjsKQEAgLTUyLDUgKzUyLDUgQEAgdm9pZCBDVExpbmVEcmF3KENUTGluZVJlZiwgQ0dDb250ZXh0
UmVmKTsKIENGRGF0YVJlZiBDVEZvbnRDb3B5VGFibGUoQ1RGb250UmVmLCBDVEZvbnRUYWJsZVRh
ZywgQ1RGb250VGFibGVPcHRpb25zKTsKIENGQXJyYXlSZWYgQ1RGb250Q29weUF2YWlsYWJsZVRh
YmxlcyhDVEZvbnRSZWYsIENURm9udFRhYmxlT3B0aW9ucyk7CiAKLX0KK1dURl9FWFRFUk5fQ19F
TkQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vc3BpL2lvcy9NYW5hZ2Vk
Q29uZmlndXJhdGlvblNQSS5oIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vc3BpL2lvcy9NYW5h
Z2VkQ29uZmlndXJhdGlvblNQSS5oCmluZGV4IGIyYzY4ZDVlMmI0MGY5NzQ5NzhmNTQ4OTg1NjQz
ZWUzYmU3YWEyNGEuLmI0ZmQ5ZDQ2ZDc5Y2Q3MGRiN2M5ODAwNzc1NGNlMThjNzE1YzQ5YzkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL3NwaS9pb3MvTWFuYWdlZENvbmZpZ3Vy
YXRpb25TUEkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9zcGkvaW9zL01hbmFnZWRD
b25maWd1cmF0aW9uU1BJLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
NC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMjksMTYgKzI5LDEyIEBACiAKIC8vIEZJWE1FOiBXZSBjb25kaXRp
b25hbGx5IGVuY2xvc2UgdGhlIE1hbmFnZWRDb25maWd1cmF0aW9uIGhlYWRlcnMgaW4gYW4gZXh0
ZXJuICJDIiBsaW5rYWdlCiAvLyBibG9jayB0byBtYWtlIHRoZW0gc3VpdGFibGUgZm9yIEMrKyB1
c2UuCi0jaWZkZWYgX19jcGx1c3BsdXMKLWV4dGVybiAiQyIgewotI2VuZGlmCitXVEZfRVhURVJO
X0NfQkVHSU4KIAogI2ltcG9ydCA8TWFuYWdlZENvbmZpZ3VyYXRpb24vTUNGZWF0dXJlcy5oPgog
I2ltcG9ydCA8TWFuYWdlZENvbmZpZ3VyYXRpb24vTUNQcm9maWxlQ29ubmVjdGlvbi5oPgogCi0j
aWZkZWYgX19jcGx1c3BsdXMKLX0KLSNlbmRpZgorV1RGX0VYVEVSTl9DX0VORAogCiAjZWxzZQog
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>