<?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>196106</bug_id>
          
          <creation_ts>2019-03-21 12:52:51 -0700</creation_ts>
          <short_desc>Change macosx() to macos() in WK_API... and JSC_API... macros.</short_desc>
          <delta_ts>2019-03-22 08:47:18 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Timothy Hatcher">timothy</reporter>
          <assigned_to name="Timothy Hatcher">timothy</assigned_to>
          <cc>bburg</cc>
    
    <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1519846</commentid>
    <comment_count>0</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2019-03-21 12:52:51 -0700</bug_when>
    <thetext>Our supported platforms should all work with the suggested macos() macro now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1519852</commentid>
    <comment_count>1</comment_count>
      <attachid>365599</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2019-03-21 13:06:11 -0700</bug_when>
    <thetext>Created attachment 365599
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1519856</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-03-21 13:08:43 -0700</bug_when>
    <thetext>Attachment 365599 did not pass style-queue:


ERROR: Source/JavaScriptCore/API/JSTypedArray.h:48:  The parameter name &quot;arrayType&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSTypedArray.h:63:  The parameter name &quot;arrayType&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSTypedArray.h:63:  The parameter name &quot;bytesDeallocator&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSTypedArray.h:74:  The parameter name &quot;arrayType&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSTypedArray.h:87:  The parameter name &quot;arrayType&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSTypedArray.h:98:  The parameter name &quot;object&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSTypedArray.h:108:  The parameter name &quot;object&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSTypedArray.h:118:  The parameter name &quot;object&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSTypedArray.h:128:  The parameter name &quot;object&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSTypedArray.h:138:  The parameter name &quot;object&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSTypedArray.h:154:  The parameter name &quot;bytesDeallocator&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSTypedArray.h:164:  The parameter name &quot;object&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSTypedArray.h:174:  The parameter name &quot;object&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSContextRefInternal.h:53:  The parameter name &quot;runLoop&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSBasePrivate.h:46:  The parameter name &quot;size&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSContextRef.h:64:  The parameter name &quot;group&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSContextRef.h:71:  The parameter name &quot;group&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSContextRef.h:100:  The parameter name &quot;group&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSObjectRefPrivate.h:94:  The parameter name &quot;object&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSObjectRefPrivate.h:106:  The parameter name &quot;object&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSObjectRefPrivate.h:119:  The parameter name &quot;object&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSObjectRefPrivate.h:119:  The parameter name &quot;value&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSObjectRefPrivate.h:119:  The parameter name &quot;attributes&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSObjectRefPrivate.h:131:  The parameter name &quot;object&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSObjectRefPrivate.h:149:  The parameter name &quot;value&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSValueRef.h:54:  JSC_API_AVAILABLE is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/JavaScriptCore/API/JSValueRef.h:172:  The parameter name &quot;value&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSValueRef.h:181:  The parameter name &quot;value&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSValueRef.h:191:  The parameter name &quot;value&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSValueRef.h:282:  The parameter name &quot;string&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSValueRef.h:293:  The parameter name &quot;value&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSContextRefPrivate.h:88:  The parameter name &quot;group&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSContextRefPrivate.h:88:  The parameter name &quot;callback&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSContextRefPrivate.h:95:  The parameter name &quot;group&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 34 in 139 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>1519936</commentid>
    <comment_count>3</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2019-03-21 14:19:14 -0700</bug_when>
    <thetext>EWS failures are odd. Maybe the patch is too big. Builds fix locally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1519989</commentid>
    <comment_count>4</comment_count>
      <attachid>365631</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2019-03-21 15:46:13 -0700</bug_when>
    <thetext>Created attachment 365631
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1519990</commentid>
    <comment_count>5</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-03-21 15:48:24 -0700</bug_when>
    <thetext>Attachment 365631 did not pass style-queue:


ERROR: Source/JavaScriptCore/API/JSTypedArray.h:48:  The parameter name &quot;arrayType&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSTypedArray.h:63:  The parameter name &quot;arrayType&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSTypedArray.h:63:  The parameter name &quot;bytesDeallocator&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSTypedArray.h:74:  The parameter name &quot;arrayType&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSTypedArray.h:87:  The parameter name &quot;arrayType&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSTypedArray.h:98:  The parameter name &quot;object&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSTypedArray.h:108:  The parameter name &quot;object&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSTypedArray.h:118:  The parameter name &quot;object&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSTypedArray.h:128:  The parameter name &quot;object&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSTypedArray.h:138:  The parameter name &quot;object&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSTypedArray.h:154:  The parameter name &quot;bytesDeallocator&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSTypedArray.h:164:  The parameter name &quot;object&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSTypedArray.h:174:  The parameter name &quot;object&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSContextRefInternal.h:53:  The parameter name &quot;runLoop&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSBasePrivate.h:46:  The parameter name &quot;size&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSContextRef.h:64:  The parameter name &quot;group&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSContextRef.h:71:  The parameter name &quot;group&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSContextRef.h:100:  The parameter name &quot;group&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSObjectRefPrivate.h:94:  The parameter name &quot;object&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSObjectRefPrivate.h:106:  The parameter name &quot;object&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSObjectRefPrivate.h:119:  The parameter name &quot;object&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSObjectRefPrivate.h:119:  The parameter name &quot;value&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSObjectRefPrivate.h:119:  The parameter name &quot;attributes&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSObjectRefPrivate.h:131:  The parameter name &quot;object&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSObjectRefPrivate.h:149:  The parameter name &quot;value&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSValueRef.h:54:  JSC_API_AVAILABLE is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/JavaScriptCore/API/JSValueRef.h:172:  The parameter name &quot;value&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSValueRef.h:181:  The parameter name &quot;value&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSValueRef.h:191:  The parameter name &quot;value&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSValueRef.h:282:  The parameter name &quot;string&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSValueRef.h:293:  The parameter name &quot;value&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSContextRefPrivate.h:88:  The parameter name &quot;group&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSContextRefPrivate.h:88:  The parameter name &quot;callback&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSContextRefPrivate.h:95:  The parameter name &quot;group&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 34 in 140 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>1520312</commentid>
    <comment_count>6</comment_count>
      <attachid>365631</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2019-03-22 08:18:46 -0700</bug_when>
    <thetext>Comment on attachment 365631
Patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1520321</commentid>
    <comment_count>7</comment_count>
      <attachid>365631</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-22 08:45:21 -0700</bug_when>
    <thetext>Comment on attachment 365631
Patch

Clearing flags on attachment: 365631

Committed r243376: &lt;https://trac.webkit.org/changeset/243376&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1520322</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-22 08:45:22 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1520323</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-03-22 08:47:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/49155012&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>365599</attachid>
            <date>2019-03-21 13:06:11 -0700</date>
            <delta_ts>2019-03-21 15:46:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196106-20190321130610.patch</filename>
            <type>text/plain</type>
            <size>342725</size>
            <attacher name="Timothy Hatcher">timothy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQzMzE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
NjczODdiMjA1OGI4OWJkNDM0NjZiNGNjYzQ5ZjBkMjZiY2EwZDk2Li42OGEwZmE2MjJiNzQ2NGQz
MmIzZmM3MmVjNzE0MmEwMTQzM2ZkOTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNyBAQAorMjAxOS0wMy0yMSAgVGltb3RoeSBIYXRjaGVyICA8dGltb3RoeUBhcHBsZS5j
b20+CisKKyAgICAgICAgQ2hhbmdlIG1hY29zeCgpIHRvIG1hY29zKCkgaW4gV0tfQVBJLi4uIGFu
ZCBKU0NfQVBJLi4uIG1hY3Jvcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE5NjEwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogQVBJL0pTQmFzZVByaXZhdGUuaDoKKyAgICAgICAgKiBBUEkvSlNDb250
ZXh0Lmg6CisgICAgICAgICogQVBJL0pTQ29udGV4dFByaXZhdGUuaDoKKyAgICAgICAgKiBBUEkv
SlNDb250ZXh0UmVmLmg6CisgICAgICAgICogQVBJL0pTQ29udGV4dFJlZkludGVybmFsLmg6Cisg
ICAgICAgICogQVBJL0pTQ29udGV4dFJlZlByaXZhdGUuaDoKKyAgICAgICAgKiBBUEkvSlNNYW5h
Z2VkVmFsdWUuaDoKKyAgICAgICAgKiBBUEkvSlNPYmplY3RSZWYuaDoKKyAgICAgICAgKiBBUEkv
SlNPYmplY3RSZWZQcml2YXRlLmg6CisgICAgICAgICogQVBJL0pTUmVtb3RlSW5zcGVjdG9yLmg6
CisgICAgICAgICogQVBJL0pTU2NyaXB0Lmg6CisgICAgICAgICogQVBJL0pTVHlwZWRBcnJheS5o
OgorICAgICAgICAqIEFQSS9KU1ZhbHVlLmg6CisgICAgICAgICogQVBJL0pTVmFsdWVQcml2YXRl
Lmg6CisgICAgICAgICogQVBJL0pTVmFsdWVSZWYuaDoKKyAgICAgICAgKiBBUEkvSlNWaXJ0dWFs
TWFjaGluZVByaXZhdGUuaDoKKwogMjAxOS0wMy0yMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lA
YXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIERvIG5vdCBjcmVhdGUgSklUIHJlbGF0ZWQgZGF0
YSB1bmRlciBub24tSklUIG1vZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCmluZGV4IDk5YzcyNGIzNDE3NzRi
YjE0NjU5MGZiNmY5Y2U5MzBiNmZiNzUzODMuLjAwNGM3M2Y3NzdlNjA1ZDVjOGIyZjIyODA1MWFi
YTMzYWMxZDBhZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE5LTAz
LTIxICBUaW1vdGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KKworICAgICAgICBDaGFu
Z2UgbWFjb3N4KCkgdG8gbWFjb3MoKSBpbiBXS19BUEkuLi4gYW5kIEpTQ19BUEkuLi4gbWFjcm9z
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk2MTA2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwYWwv
c3BpL2NvY29hL05TVG91Y2hCYXJTUEkuaDoKKwogMjAxOS0wMy0yMCAgU2ltb24gRnJhc2VyICA8
c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW5hbWUgRU5BQkxFX0FDQ0VMRVJB
VEVEX09WRVJGTE9XX1NDUk9MTElORyBtYWNybyB0byBFTkFCTEVfT1ZFUkZMT1dfU0NST0xMSU5H
X1RPVUNICmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IGRmOTM0OGRjODUwZmNkNzg4NTMxZWZiYzAwZjVmMzZkNGM4Y2Ni
Y2MuLmMyOTYwZWJiMGI2ZWM4MjVhODU4OTVhMjJlZjBiNGRmODUzYmY3YzYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTMwIEBACisyMDE5LTAzLTIxICBUaW1vdGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFw
cGxlLmNvbT4KKworICAgICAgICBDaGFuZ2UgbWFjb3N4KCkgdG8gbWFjb3MoKSBpbiBXS19BUEku
Li4gYW5kIEpTQ19BUEkuLi4gbWFjcm9zLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTk2MTA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBTaGFyZWQvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0SGFu
ZGxlLmg6CisgICAgICAgICogU2hhcmVkL0FQSS9Db2NvYS9XS0RyYWdEZXN0aW5hdGlvbkFjdGlv
bi5oOgorICAgICAgICAqIFNoYXJlZC9BUEkvQ29jb2EvV0tNYWluLmg6CisgICAgICAgICogU2hh
cmVkL0FQSS9Db2NvYS9fV0tGcmFtZUhhbmRsZS5oOgorICAgICAgICAqIFNoYXJlZC9BUEkvQ29j
b2EvX1dLSGl0VGVzdFJlc3VsdC5oOgorICAgICAgICAqIFNoYXJlZC9BUEkvQ29jb2EvX1dLTlNX
aW5kb3dFeHRyYXMuaDoKKyAgICAgICAgKiBTaGFyZWQvQVBJL0NvY29hL19XS1JlbW90ZU9iamVj
dEludGVyZmFjZS5oOgorICAgICAgICAqIFNoYXJlZC9BUEkvQ29jb2EvX1dLUmVtb3RlT2JqZWN0
UmVnaXN0cnkuaDoKKyAgICAgICAgKiBTaGFyZWQvQVBJL0NvY29hL19XS1JlbmRlcmluZ1Byb2dy
ZXNzRXZlbnRzLmg6CisgICAgICAgICogU2hhcmVkL0FQSS9Db2NvYS9fV0tTYW1lRG9jdW1lbnRO
YXZpZ2F0aW9uVHlwZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL05TQXR0cmlidXRlZFN0cmluZy5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCYWNrRm9yd2FyZExpc3QuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL1dLQmFja0ZvcndhcmRMaXN0SXRlbS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tCYWNrRm9yd2FyZExpc3RJdGVtUHJpdmF0ZS5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRMb2FkRGVsZWdhdGUuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLQ29udGVudFJ1bGVMaXN0Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0NvbnRlbnRSdWxlTGlzdFN0b3JlLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Vycm9yLmg6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS0Vycm9yUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tGcmFtZUluZm8uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLRnJhbWVJ
bmZvUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tIVFRQQ29va2ll
U3RvcmUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLTWVudUl0ZW1JZGVudGlm
aWVyc1ByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlv
bi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uQWN0aW9uLmg6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25BY3Rpb25Qcml2YXRl
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0ZS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2
YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25SZXNwb25z
ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tPcGVuUGFuZWxQYXJhbWV0ZXJz
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS09wZW5QYW5lbFBhcmFtZXRlcnNQ
cml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLmg6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZhdGUuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL1dLU2NyaXB0TWVzc2FnZS5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tTZWN1cml0eU9yaWdpbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL1dLVUlEZWxlZ2F0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tV
SURlbGVnYXRlUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVUkxT
Y2hlbWVIYW5kbGVyLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VSTFNjaGVt
ZVRhc2suaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLVVJMU2NoZW1lVGFza1By
aXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLVXNlckNvbnRlbnRDb250
cm9sbGVyLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJDb250ZW50Q29u
dHJvbGxlclByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLVXNlclNj
cmlwdC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2VyU2NyaXB0UHJpdmF0
ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tWaWV3UHJpdmF0ZS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVJlY29yZC5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVJlY29yZFByaXZhdGUuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXaW5kb3dGZWF0dXJlcy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXaW5kb3dGZWF0dXJlc1ByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL19XS0FjdGl2YXRlZEVsZW1lbnRJbmZvLmg6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tBcHBsaWNhdGlvbk1hbmlmZXN0Lmg6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tBdHRhY2htZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tBdXRvbWF0aW9uRGVsZWdhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L19XS0F1dG9tYXRpb25TZXNzaW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tBdXRvbWF0aW9uU2Vzc2lvbkNvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL19XS0F1dG9tYXRpb25TZXNzaW9uRGVsZWdhdGUuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0NvY29hL19XS0NvbnRleHRNZW51RWxlbWVudEluZm8uaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL19XS0RpYWdub3N0aWNMb2dnaW5nRGVsZWdhdGUuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0Rvd25sb2FkLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tEb3dubG9hZERlbGVnYXRlLmg6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tFbGVtZW50QWN0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tFeHBlcmltZW50YWxGZWF0dXJlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tGaW5kT3B0aW9ucy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
Rm9jdXNlZEVsZW1lbnRJbmZvLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tG
b3JtSW5wdXRTZXNzaW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tGdWxs
c2NyZWVuRGVsZWdhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0dlb2xv
Y2F0aW9uQ29yZUxvY2F0aW9uUHJvdmlkZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS0luc3BlY3Rvci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5z
cGVjdG9yV2luZG93Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnRlcm5h
bERlYnVnRmVhdHVyZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLTGF5b3V0
TW9kZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLTGlua0ljb25QYXJhbWV0
ZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tPdmVybGF5U2Nyb2xsYmFy
U3R5bGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29u
ZmlndXJhdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUmVtb3RlV2Vi
SW5zcGVjdG9yVmlld0NvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L19XS1Nlc3Npb25TdGF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVGV4
dElucHV0Q29udGV4dC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVGh1bWJu
YWlsVmlldy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNlckNvbnRlbnRF
eHRlbnNpb25TdG9yZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNlckNv
bnRlbnRFeHRlbnNpb25TdG9yZVByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS1VzZXJDb250ZW50RmlsdGVyLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tVc2VyQ29udGVudEZpbHRlclByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL19XS1VzZXJDb250ZW50V29ybGQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS1VzZXJJbml0aWF0ZWRBY3Rpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS1VzZXJTdHlsZVNoZWV0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tWaXNpdGVkTGlua1N0b3JlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tX
ZWJzaXRlRGF0YVNpemUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNp
dGVEYXRhU3RvcmUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVE
YXRhU3RvcmVDb25maWd1cmF0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS1dlYnNpdGVQb2xpY2llcy5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViUHJvY2Vzcy5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkVkaXRpbmdEZWxlZ2F0ZS5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkZyYW1l
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQ
cm9jZXNzUGx1Z0luSGl0VGVzdFJlc3VsdC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGUuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVn
SW5Ob2RlSGFuZGxlUHJpdmF0ZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cC5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJblJhbmdl
SGFuZGxlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2Ev
V0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0V29ybGQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01Eb2N1bWVudC5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTUVsZW1lbnQuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01Ob2RlLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NUmFuZ2UuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01UZXh0Lmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NVGV4dEl0ZXJhdG9yLmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1Bs
dWdJbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dl
YlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNv
bnRleHRDb250cm9sbGVyUHJpdmF0ZS5oOgorCiAyMDE5LTAzLTIxICBEYW5pZWwgQmF0ZXMgIDxk
YWJhdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBJbmxpbmUgLV9lbnN1cmVGb3JtQWNj
ZXNzb3J5VmlldyBpbnRvIC1mb3JtQWNjZXNzb3J5VmlldyBhbmQgaGF2ZSAtX3VwZGF0ZUFjY2Vz
c29yeSBlbnN1cmUgd2UgaGF2ZSBhIGZvcm0gYWNjZXNzb3J5CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL0pTQmFzZVByaXZhdGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvSlNCYXNlUHJpdmF0ZS5oCmluZGV4IGI2YzkyMDRjNGNiZDcyYzRmN2M5ZjZhMWY1NGNk
NWQzNDE1NmQxNGQuLjJmYzkxNmI3MGEyM2YyNTBiNGI4MjdhM2FiYThkNTA5ZDgxMjkwNGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNCYXNlUHJpdmF0ZS5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNCYXNlUHJpdmF0ZS5oCkBAIC00Myw3ICs0Myw3
IEBAIG93bnMgYSBsYXJnZSBub24tR0MgbWVtb3J5IHJlZ2lvbi4gQ2FsbGluZyB0aGlzIGZ1bmN0
aW9uIHdpbGwgZW5jb3VyYWdlIHRoZQogZ2FyYmFnZSBjb2xsZWN0b3IgdG8gY29sbGVjdCBzb29u
LCBob3BpbmcgdG8gcmVjbGFpbSB0aGF0IGxhcmdlIG5vbi1HQyBtZW1vcnkKIHJlZ2lvbi4KICov
Ci1KU19FWFBPUlQgdm9pZCBKU1JlcG9ydEV4dHJhTWVtb3J5Q29zdChKU0NvbnRleHRSZWYgY3R4
LCBzaXplX3Qgc2l6ZSkgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjYpLCBpb3MoNy4wKSk7
CitKU19FWFBPUlQgdm9pZCBKU1JlcG9ydEV4dHJhTWVtb3J5Q29zdChKU0NvbnRleHRSZWYgY3R4
LCBzaXplX3Qgc2l6ZSkgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuNiksIGlvcyg3LjApKTsK
IAogSlNfRVhQT1JUIHZvaWQgSlNEaXNhYmxlR0NUaW1lcih2b2lkKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NvbnRleHQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDb250ZXh0LmgKaW5kZXggMTc5MGU1OTdiNDhhOWI4M2E5NDVmOTMyYjJlYTRl
YmIzNjNlZmNmZS4uNmI5YzVkNDE3NjE5MzZkMDY2ZTY5NmQ2MWMwMzg5NDg4NjBkNmU2YiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NvbnRleHQuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dC5oCkBAIC0zOSw3ICszOSw3IEBACiAgSmF2
YVNjcmlwdCBleGVjdXRpb24gdGFrZXMgcGxhY2Ugd2l0aGluIGEgY29udGV4dCwgYW5kIGFsbCBK
YXZhU2NyaXB0IHZhbHVlcwogIGFyZSB0aWVkIHRvIGEgY29udGV4dC4KICovCi1KU0NfQ0xBU1Nf
QVZBSUxBQkxFKG1hY29zeCgxMC45KSwgaW9zKDcuMCkpCitKU0NfQ0xBU1NfQVZBSUxBQkxFKG1h
Y29zKDEwLjkpLCBpb3MoNy4wKSkKIEBpbnRlcmZhY2UgSlNDb250ZXh0IDogTlNPYmplY3QKIAog
LyohCkBAIC03OCw3ICs3OCw3IEBAIEpTQ19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjkpLCBp
b3MoNy4wKSkKIEBwYXJhbSBzb3VyY2VVUkwgQSBVUkwgZm9yIHRoZSBzY3JpcHQncyBzb3VyY2Ug
ZmlsZS4gVXNlZCBieSBkZWJ1Z2dlcnMgYW5kIHdoZW4gcmVwb3J0aW5nIGV4Y2VwdGlvbnMuIFRo
aXMgcGFyYW1ldGVyIGlzIGluZm9ybWF0aXZlIG9ubHk6IGl0IGRvZXMgbm90IGNoYW5nZSB0aGUg
YmVoYXZpb3Igb2YgdGhlIHNjcmlwdC4KIEByZXN1bHQgVGhlIGxhc3QgdmFsdWUgZ2VuZXJhdGVk
IGJ5IHRoZSBzY3JpcHQuCiAqLwotLSAoSlNWYWx1ZSAqKWV2YWx1YXRlU2NyaXB0OihOU1N0cmlu
ZyAqKXNjcmlwdCB3aXRoU291cmNlVVJMOihOU1VSTCAqKXNvdXJjZVVSTCBKU0NfQVBJX0FWQUlM
QUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSk7CistIChKU1ZhbHVlICopZXZhbHVhdGVTY3Jp
cHQ6KE5TU3RyaW5nICopc2NyaXB0IHdpdGhTb3VyY2VVUkw6KE5TVVJMICopc291cmNlVVJMIEpT
Q19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDguMCkpOwogCiAvKiEKIEBtZXRob2Rn
cm91cCBDYWxsYmFjayBBY2Nlc3NvcnMKQEAgLTEwMSw3ICsxMDEsNyBAQCBKU0NfQ0xBU1NfQVZB
SUxBQkxFKG1hY29zeCgxMC45KSwgaW9zKDcuMCkpCiAgYSBjYWxsYmFjayBmcm9tIEphdmFTY3Jp
cHQgdGhpcyBtZXRob2Qgd2lsbCByZXR1cm4gbmlsLgogQHJlc3VsdCBUaGUgY3VycmVudGx5IGV4
ZWN1dGluZyBKYXZhU2NyaXB0IGZ1bmN0aW9uIG9yIG5pbCBpZiB0aGVyZSBpc24ndCBvbmUuCiAq
LwotKyAoSlNWYWx1ZSAqKWN1cnJlbnRDYWxsZWUgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEw
LjEwKSwgaW9zKDguMCkpOworKyAoSlNWYWx1ZSAqKWN1cnJlbnRDYWxsZWUgSlNDX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4wKSk7CiAKIC8qIQogQG1ldGhvZApAQCAtMTc2LDcg
KzE3Niw3IEBAIEpTQ19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjkpLCBpb3MoNy4wKSkKIEBw
cm9wZXJ0eQogQGRpc2N1c3Npb24gTmFtZSBvZiB0aGUgSlNDb250ZXh0LiBFeHBvc2VkIHdoZW4g
cmVtb3RlIGRlYnVnZ2luZyB0aGUgY29udGV4dC4KICovCi1AcHJvcGVydHkgKGNvcHkpIE5TU3Ry
aW5nICpuYW1lIEpTQ19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKTsKK0Bw
cm9wZXJ0eSAoY29weSkgTlNTdHJpbmcgKm5hbWUgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAu
MTApLCBpb3MoOC4wKSk7CiBAZW5kCiAKIC8qIQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS9KU0NvbnRleHRQcml2YXRlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L0pTQ29udGV4dFByaXZhdGUuaAppbmRleCAzZmIzZDJiYjEwYzNjNTlkZTE1YmUwZDg2YzBhN2Iw
MDM4N2RjYzg4Li5jMzI0ODBiOWYyYmFkYjAzZDZiMTcxMjIyN2ExYTkyOTg5YzMxODJmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFByaXZhdGUuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFByaXZhdGUuaApAQCAtNTcsMjIg
KzU3LDIyIEBACiBAcHJvcGVydHkKIEBkaXNjdXNzaW9uIFJlbW90ZSBpbnNwZWN0aW9uIHNldHRp
bmcgb2YgdGhlIEpTQ29udGV4dC4gRGVmYXVsdCB2YWx1ZSBpcyBZRVMuCiAqLwotQHByb3BlcnR5
IChzZXR0ZXI9X3NldFJlbW90ZUluc3BlY3Rpb25FbmFibGVkOikgQk9PTCBfcmVtb3RlSW5zcGVj
dGlvbkVuYWJsZWQgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpOwor
QHByb3BlcnR5IChzZXR0ZXI9X3NldFJlbW90ZUluc3BlY3Rpb25FbmFibGVkOikgQk9PTCBfcmVt
b3RlSW5zcGVjdGlvbkVuYWJsZWQgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3Mo
OC4wKSk7CiAKIC8qIQogQHByb3BlcnR5CiBAZGlzY3Vzc2lvbiBTZXQgd2hldGhlciBvciBub3Qg
dGhlIG5hdGl2ZSBjYWxsIHN0YWNrIGlzIGluY2x1ZGVkIHdoZW4gcmVwb3J0aW5nIGV4Y2VwdGlv
bnMuIERlZmF1bHQgdmFsdWUgaXMgWUVTLgogKi8KLUBwcm9wZXJ0eSAoc2V0dGVyPV9zZXRJbmNs
dWRlc05hdGl2ZUNhbGxTdGFja1doZW5SZXBvcnRpbmdFeGNlcHRpb25zOikgQk9PTCBfaW5jbHVk
ZXNOYXRpdmVDYWxsU3RhY2tXaGVuUmVwb3J0aW5nRXhjZXB0aW9ucyBKU0NfQVBJX0FWQUlMQUJM
RShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSk7CitAcHJvcGVydHkgKHNldHRlcj1fc2V0SW5jbHVk
ZXNOYXRpdmVDYWxsU3RhY2tXaGVuUmVwb3J0aW5nRXhjZXB0aW9uczopIEJPT0wgX2luY2x1ZGVz
TmF0aXZlQ2FsbFN0YWNrV2hlblJlcG9ydGluZ0V4Y2VwdGlvbnMgSlNDX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTAuMTApLCBpb3MoOC4wKSk7CiAKIC8qIQogQHByb3BlcnR5CiBAZGlzY3Vzc2lvbiBT
ZXQgdGhlIHJ1biBsb29wIHRoZSBXZWIgSW5zcGVjdG9yIGRlYnVnZ2VyIHNob3VsZCB1c2Ugd2hl
biBldmFsdWF0aW5nIEphdmFTY3JpcHQgaW4gdGhlIEpTQ29udGV4dC4KICovCi1AcHJvcGVydHkg
KHNldHRlcj1fc2V0RGVidWdnZXJSdW5Mb29wOikgQ0ZSdW5Mb29wUmVmIF9kZWJ1Z2dlclJ1bkxv
b3AgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpOworQHByb3BlcnR5
IChzZXR0ZXI9X3NldERlYnVnZ2VyUnVuTG9vcDopIENGUnVuTG9vcFJlZiBfZGVidWdnZXJSdW5M
b29wIEpTQ19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDguMCkpOwogCiAvKiEgQGFi
c3RyYWN0IFRoZSBkZWxlZ2F0ZSB0aGUgY29udGV4dCB3aWxsIHVzZSB3aGVuIHRyeWluZyB0byBs
b2FkIGEgbW9kdWxlLiBOb3RlLCB0aGlzIGRlbGVnYXRlIHdpbGwgYmUgaWdub3JlZCBmb3IgY29u
dGV4dHMgcmV0dXJuZWQgYnkgVUlXZWJWaWV3LiAqLwotQHByb3BlcnR5IChub25hdG9taWMsIHdl
YWspIGlkIDxKU01vZHVsZUxvYWRlckRlbGVnYXRlPiBtb2R1bGVMb2FkZXJEZWxlZ2F0ZSBKU0Nf
QVBJX0FWQUlMQUJMRShtYWNvc3goSlNDX01BQ19UQkEpLCBpb3MoSlNDX0lPU19UQkEpKTsKK0Bw
cm9wZXJ0eSAobm9uYXRvbWljLCB3ZWFrKSBpZCA8SlNNb2R1bGVMb2FkZXJEZWxlZ2F0ZT4gbW9k
dWxlTG9hZGVyRGVsZWdhdGUgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3MoSlNDX01BQ19UQkEpLCBp
b3MoSlNDX0lPU19UQkEpKTsKIAogLyohCiAgQG1ldGhvZApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9KU0NvbnRleHRSZWYuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvSlNDb250ZXh0UmVmLmgKaW5kZXggMjhkMGE2N2U5YWUzMjYyMTFhZDk0ZGUzNmM1MjY0YTc1
NDJmYWY4OS4uMWNlNzQzNTgwNGViYjliYzQ3ZjdjMWYwZDllOTRmYzA3ODk4OGMwYiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NvbnRleHRSZWYuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5oCkBAIC01Myw3ICs1Myw3IEBAIGV4
dGVybiAiQyIgewogIEpTQ29udGV4dEdyb3VwJ3MgcnVuIGxvb3Agb25jZSBpdCBoYXMgYmVlbiBj
cmVhdGVkLgogQHJlc3VsdCBUaGUgY3JlYXRlZCBKU0NvbnRleHRHcm91cC4KICovCi1KU19FWFBP
UlQgSlNDb250ZXh0R3JvdXBSZWYgSlNDb250ZXh0R3JvdXBDcmVhdGUodm9pZCkgSlNDX0FQSV9B
VkFJTEFCTEUobWFjb3N4KDEwLjYpLCBpb3MoNy4wKSk7CitKU19FWFBPUlQgSlNDb250ZXh0R3Jv
dXBSZWYgSlNDb250ZXh0R3JvdXBDcmVhdGUodm9pZCkgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTAuNiksIGlvcyg3LjApKTsKIAogLyohCiBAZnVuY3Rpb24KQEAgLTYxLDE0ICs2MSwxNCBAQCBK
U19FWFBPUlQgSlNDb250ZXh0R3JvdXBSZWYgSlNDb250ZXh0R3JvdXBDcmVhdGUodm9pZCkgSlND
X0FQSV9BVkFJTEFCTEUobWFjb3N4KAogQHBhcmFtIGdyb3VwIFRoZSBKU0NvbnRleHRHcm91cCB0
byByZXRhaW4uCiBAcmVzdWx0IEEgSlNDb250ZXh0R3JvdXAgdGhhdCBpcyB0aGUgc2FtZSBhcyBn
cm91cC4KICovCi1KU19FWFBPUlQgSlNDb250ZXh0R3JvdXBSZWYgSlNDb250ZXh0R3JvdXBSZXRh
aW4oSlNDb250ZXh0R3JvdXBSZWYgZ3JvdXApIEpTQ19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC42
KSwgaW9zKDcuMCkpOworSlNfRVhQT1JUIEpTQ29udGV4dEdyb3VwUmVmIEpTQ29udGV4dEdyb3Vw
UmV0YWluKEpTQ29udGV4dEdyb3VwUmVmIGdyb3VwKSBKU0NfQVBJX0FWQUlMQUJMRShtYWNvcygx
MC42KSwgaW9zKDcuMCkpOwogCiAvKiEKIEBmdW5jdGlvbgogQGFic3RyYWN0IFJlbGVhc2VzIGEg
SmF2YVNjcmlwdCBjb250ZXh0IGdyb3VwLgogQHBhcmFtIGdyb3VwIFRoZSBKU0NvbnRleHRHcm91
cCB0byByZWxlYXNlLgogKi8KLUpTX0VYUE9SVCB2b2lkIEpTQ29udGV4dEdyb3VwUmVsZWFzZShK
U0NvbnRleHRHcm91cFJlZiBncm91cCkgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjYpLCBp
b3MoNy4wKSk7CitKU19FWFBPUlQgdm9pZCBKU0NvbnRleHRHcm91cFJlbGVhc2UoSlNDb250ZXh0
R3JvdXBSZWYgZ3JvdXApIEpTQ19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjYpLCBpb3MoNy4wKSk7
CiAKIC8qIQogQGZ1bmN0aW9uCkBAIC04Myw3ICs4Myw3IEBAIEpTX0VYUE9SVCB2b2lkIEpTQ29u
dGV4dEdyb3VwUmVsZWFzZShKU0NvbnRleHRHcm91cFJlZiBncm91cCkgSlNDX0FQSV9BVkFJTEFC
TEUoCiAgTlVMTCB0byB1c2UgdGhlIGRlZmF1bHQgb2JqZWN0IGNsYXNzLgogQHJlc3VsdCBBIEpT
R2xvYmFsQ29udGV4dCB3aXRoIGEgZ2xvYmFsIG9iamVjdCBvZiBjbGFzcyBnbG9iYWxPYmplY3RD
bGFzcy4KICovCi1KU19FWFBPUlQgSlNHbG9iYWxDb250ZXh0UmVmIEpTR2xvYmFsQ29udGV4dENy
ZWF0ZShKU0NsYXNzUmVmIGdsb2JhbE9iamVjdENsYXNzKSBKU0NfQVBJX0FWQUlMQUJMRShtYWNv
c3goMTAuNSksIGlvcyg3LjApKTsKK0pTX0VYUE9SVCBKU0dsb2JhbENvbnRleHRSZWYgSlNHbG9i
YWxDb250ZXh0Q3JlYXRlKEpTQ2xhc3NSZWYgZ2xvYmFsT2JqZWN0Q2xhc3MpIEpTQ19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjUpLCBpb3MoNy4wKSk7CiAKIC8qIQogQGZ1bmN0aW9uCkBAIC05Nyw3
ICs5Nyw3IEBAIEpTX0VYUE9SVCBKU0dsb2JhbENvbnRleHRSZWYgSlNHbG9iYWxDb250ZXh0Q3Jl
YXRlKEpTQ2xhc3NSZWYgZ2xvYmFsT2JqZWN0Q2xhc3MpCiBAcmVzdWx0IEEgSlNHbG9iYWxDb250
ZXh0IHdpdGggYSBnbG9iYWwgb2JqZWN0IG9mIGNsYXNzIGdsb2JhbE9iamVjdENsYXNzIGFuZCBh
IGNvbnRleHQKICBncm91cCBlcXVhbCB0byBncm91cC4KICovCi1KU19FWFBPUlQgSlNHbG9iYWxD
b250ZXh0UmVmIEpTR2xvYmFsQ29udGV4dENyZWF0ZUluR3JvdXAoSlNDb250ZXh0R3JvdXBSZWYg
Z3JvdXAsIEpTQ2xhc3NSZWYgZ2xvYmFsT2JqZWN0Q2xhc3MpIEpTQ19BUElfQVZBSUxBQkxFKG1h
Y29zeCgxMC42KSwgaW9zKDcuMCkpOworSlNfRVhQT1JUIEpTR2xvYmFsQ29udGV4dFJlZiBKU0ds
b2JhbENvbnRleHRDcmVhdGVJbkdyb3VwKEpTQ29udGV4dEdyb3VwUmVmIGdyb3VwLCBKU0NsYXNz
UmVmIGdsb2JhbE9iamVjdENsYXNzKSBKU0NfQVBJX0FWQUlMQUJMRShtYWNvcygxMC42KSwgaW9z
KDcuMCkpOwogCiAvKiEKIEBmdW5jdGlvbgpAQCAtMTI4LDcgKzEyOCw3IEBAIEpTX0VYUE9SVCBK
U09iamVjdFJlZiBKU0NvbnRleHRHZXRHbG9iYWxPYmplY3QoSlNDb250ZXh0UmVmIGN0eCk7CiBA
cGFyYW0gY3R4IFRoZSBKU0NvbnRleHQgd2hvc2UgZ3JvdXAgeW91IHdhbnQgdG8gZ2V0LgogQHJl
c3VsdCBjdHgncyBncm91cC4KICovCi1KU19FWFBPUlQgSlNDb250ZXh0R3JvdXBSZWYgSlNDb250
ZXh0R2V0R3JvdXAoSlNDb250ZXh0UmVmIGN0eCkgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEw
LjYpLCBpb3MoNy4wKSk7CitKU19FWFBPUlQgSlNDb250ZXh0R3JvdXBSZWYgSlNDb250ZXh0R2V0
R3JvdXAoSlNDb250ZXh0UmVmIGN0eCkgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuNiksIGlv
cyg3LjApKTsKIAogLyohCiBAZnVuY3Rpb24KQEAgLTEzNiw3ICsxMzYsNyBAQCBKU19FWFBPUlQg
SlNDb250ZXh0R3JvdXBSZWYgSlNDb250ZXh0R2V0R3JvdXAoSlNDb250ZXh0UmVmIGN0eCkgSlND
X0FQSV9BVkFJTEFCTAogQHBhcmFtIGN0eCBUaGUgSlNDb250ZXh0IHdob3NlIGdsb2JhbCBjb250
ZXh0IHlvdSB3YW50IHRvIGdldC4KIEByZXN1bHQgY3R4J3MgZ2xvYmFsIGNvbnRleHQuCiAqLwot
SlNfRVhQT1JUIEpTR2xvYmFsQ29udGV4dFJlZiBKU0NvbnRleHRHZXRHbG9iYWxDb250ZXh0KEpT
Q29udGV4dFJlZiBjdHgpIEpTQ19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC43KSwgaW9zKDcuMCkp
OworSlNfRVhQT1JUIEpTR2xvYmFsQ29udGV4dFJlZiBKU0NvbnRleHRHZXRHbG9iYWxDb250ZXh0
KEpTQ29udGV4dFJlZiBjdHgpIEpTQ19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjcpLCBpb3MoNy4w
KSk7CiAKIC8qIQogQGZ1bmN0aW9uCkBAIC0xNDYsNyArMTQ2LDcgQEAgSlNfRVhQT1JUIEpTR2xv
YmFsQ29udGV4dFJlZiBKU0NvbnRleHRHZXRHbG9iYWxDb250ZXh0KEpTQ29udGV4dFJlZiBjdHgp
IEpTQ19BUEkKIEBkaXNjdXNzaW9uIEEgSlNHbG9iYWxDb250ZXh0J3MgbmFtZSBpcyBleHBvc2Vk
IGZvciByZW1vdGUgZGVidWdnaW5nIHRvIG1ha2UgaXQKIGVhc2llciB0byBpZGVudGlmeSB0aGUg
Y29udGV4dCB5b3Ugd291bGQgbGlrZSB0byBhdHRhY2ggdG8uCiAqLwotSlNfRVhQT1JUIEpTU3Ry
aW5nUmVmIEpTR2xvYmFsQ29udGV4dENvcHlOYW1lKEpTR2xvYmFsQ29udGV4dFJlZiBjdHgpIEpT
Q19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKTsKK0pTX0VYUE9SVCBKU1N0
cmluZ1JlZiBKU0dsb2JhbENvbnRleHRDb3B5TmFtZShKU0dsb2JhbENvbnRleHRSZWYgY3R4KSBK
U0NfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMCksIGlvcyg4LjApKTsKIAogLyohCiBAZnVuY3Rp
b24KQEAgLTE1NCw3ICsxNTQsNyBAQCBKU19FWFBPUlQgSlNTdHJpbmdSZWYgSlNHbG9iYWxDb250
ZXh0Q29weU5hbWUoSlNHbG9iYWxDb250ZXh0UmVmIGN0eCkgSlNDX0FQSV9BVgogQHBhcmFtIGN0
eCBUaGUgSlNHbG9iYWxDb250ZXh0IHRoYXQgeW91IHdhbnQgdG8gbmFtZS4KIEBwYXJhbSBuYW1l
IFRoZSByZW1vdGUgZGVidWdnaW5nIG5hbWUgdG8gc2V0IG9uIGN0eC4KICovCi1KU19FWFBPUlQg
dm9pZCBKU0dsb2JhbENvbnRleHRTZXROYW1lKEpTR2xvYmFsQ29udGV4dFJlZiBjdHgsIEpTU3Ry
aW5nUmVmIG5hbWUpIEpTQ19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKTsK
K0pTX0VYUE9SVCB2b2lkIEpTR2xvYmFsQ29udGV4dFNldE5hbWUoSlNHbG9iYWxDb250ZXh0UmVm
IGN0eCwgSlNTdHJpbmdSZWYgbmFtZSkgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBp
b3MoOC4wKSk7CiAKICNpZmRlZiBfX2NwbHVzcGx1cwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9KU0NvbnRleHRSZWZJbnRlcm5hbC5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS9KU0NvbnRleHRSZWZJbnRlcm5hbC5oCmluZGV4IDlkNGYxOGEyMjk1MDcyNmQ5
MTAyZDI1MGI1Y2FhMGNlN2FkNWM3MmIuLjE0OWY3MGJhZGI3ZGQyZDYxOGNhZmZmYmI3YTgyNGZl
NDIyY2RkNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDb250ZXh0
UmVmSW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFJl
ZkludGVybmFsLmgKQEAgLTQyLDcgKzQyLDcgQEAgZXh0ZXJuICJDIiB7CiBAYWJzdHJhY3QgR2V0
cyB0aGUgcnVuIGxvb3AgdXNlZCBieSB0aGUgV2ViIEluc3BlY3RvciBkZWJ1Z2dlciB3aGVuIGV2
YWx1YXRpbmcgSmF2YVNjcmlwdCBpbiB0aGlzIGNvbnRleHQuCiBAcGFyYW0gY3R4IFRoZSBKU0ds
b2JhbENvbnRleHQgd2hvc2Ugc2V0dGluZyB5b3Ugd2FudCB0byBnZXQuCiAqLwotSlNfRVhQT1JU
IENGUnVuTG9vcFJlZiBKU0dsb2JhbENvbnRleHRHZXREZWJ1Z2dlclJ1bkxvb3AoSlNHbG9iYWxD
b250ZXh0UmVmIGN0eCkgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkp
OworSlNfRVhQT1JUIENGUnVuTG9vcFJlZiBKU0dsb2JhbENvbnRleHRHZXREZWJ1Z2dlclJ1bkxv
b3AoSlNHbG9iYWxDb250ZXh0UmVmIGN0eCkgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTAp
LCBpb3MoOC4wKSk7CiAKIC8qIQogQGZ1bmN0aW9uCkBAIC01MCw3ICs1MCw3IEBAIEpTX0VYUE9S
VCBDRlJ1bkxvb3BSZWYgSlNHbG9iYWxDb250ZXh0R2V0RGVidWdnZXJSdW5Mb29wKEpTR2xvYmFs
Q29udGV4dFJlZiBjdHgpCiBAcGFyYW0gY3R4IFRoZSBKU0dsb2JhbENvbnRleHQgdGhhdCB5b3Ug
d2FudCB0byBjaGFuZ2UuCiBAcGFyYW0gcnVuTG9vcCBUaGUgbmV3IHZhbHVlIG9mIHRoZSBzZXR0
aW5nIGZvciB0aGUgY29udGV4dC4KICovCi1KU19FWFBPUlQgdm9pZCBKU0dsb2JhbENvbnRleHRT
ZXREZWJ1Z2dlclJ1bkxvb3AoSlNHbG9iYWxDb250ZXh0UmVmIGN0eCwgQ0ZSdW5Mb29wUmVmIHJ1
bkxvb3ApIEpTQ19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKTsKK0pTX0VY
UE9SVCB2b2lkIEpTR2xvYmFsQ29udGV4dFNldERlYnVnZ2VyUnVuTG9vcChKU0dsb2JhbENvbnRl
eHRSZWYgY3R4LCBDRlJ1bkxvb3BSZWYgcnVuTG9vcCkgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTAuMTApLCBpb3MoOC4wKSk7CiAjZW5kaWYKIAogI2lmZGVmIF9fY3BsdXNwbHVzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZlByaXZhdGUuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDb250ZXh0UmVmUHJpdmF0ZS5oCmluZGV4IGVjNjc2
ZDhjODcxNDgzZjgzZmNjM2M1NjRiNTU0ZTgxNzAzNzIyZTAuLjUyMThhZDdhNWMwNzZlNzdjODFk
ZWEyNWY2ZmE1YjVlMjhiNjZmMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvSlNDb250ZXh0UmVmUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkv
SlNDb250ZXh0UmVmUHJpdmF0ZS5oCkBAIC00NCw3ICs0NCw3IEBAIGV4dGVybiAiQyIgewogQHBh
cmFtIGN0eCBUaGUgSlNDb250ZXh0IHdob3NlIGJhY2t0cmFjZSB5b3Ugd2FudCB0byBnZXQKIEBy
ZXN1bHQgQSBzdHJpbmcgY29udGFpbmluZyB0aGUgYmFja3RyYWNlCiAqLwotSlNfRVhQT1JUIEpT
U3RyaW5nUmVmIEpTQ29udGV4dENyZWF0ZUJhY2t0cmFjZShKU0NvbnRleHRSZWYgY3R4LCB1bnNp
Z25lZCBtYXhTdGFja1NpemUpIEpTQ19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC42KSwgaW9zKDcu
MCkpOworSlNfRVhQT1JUIEpTU3RyaW5nUmVmIEpTQ29udGV4dENyZWF0ZUJhY2t0cmFjZShKU0Nv
bnRleHRSZWYgY3R4LCB1bnNpZ25lZCBtYXhTdGFja1NpemUpIEpTQ19BUElfQVZBSUxBQkxFKG1h
Y29zKDEwLjYpLCBpb3MoNy4wKSk7CiAgICAgCiAKIC8qISAKQEAgLTg1LDE0ICs4NSwxNCBAQCB0
eXBlZGVmIGJvb2wKICBuZWVkIHRvIGNhbGwgSlNDb250ZXh0R3JvdXBTZXRFeGVjdXRpb25UaW1l
TGltaXQgYmVmb3JlIHlvdSBzdGFydCBleGVjdXRpbmcKICBhbnkgc2NyaXB0cy4KICovCi1KU19F
WFBPUlQgdm9pZCBKU0NvbnRleHRHcm91cFNldEV4ZWN1dGlvblRpbWVMaW1pdChKU0NvbnRleHRH
cm91cFJlZiBncm91cCwgZG91YmxlIGxpbWl0LCBKU1Nob3VsZFRlcm1pbmF0ZUNhbGxiYWNrIGNh
bGxiYWNrLCB2b2lkKiBjb250ZXh0KSBKU0NfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuNiksIGlv
cyg3LjApKTsKK0pTX0VYUE9SVCB2b2lkIEpTQ29udGV4dEdyb3VwU2V0RXhlY3V0aW9uVGltZUxp
bWl0KEpTQ29udGV4dEdyb3VwUmVmIGdyb3VwLCBkb3VibGUgbGltaXQsIEpTU2hvdWxkVGVybWlu
YXRlQ2FsbGJhY2sgY2FsbGJhY2ssIHZvaWQqIGNvbnRleHQpIEpTQ19BUElfQVZBSUxBQkxFKG1h
Y29zKDEwLjYpLCBpb3MoNy4wKSk7CiAKIC8qIQogQGZ1bmN0aW9uCiBAYWJzdHJhY3QgQ2xlYXJz
IHRoZSBzY3JpcHQgZXhlY3V0aW9uIHRpbWUgbGltaXQuCiBAcGFyYW0gZ3JvdXAgVGhlIEphdmFT
Y3JpcHQgY29udGV4dCBncm91cCB0aGF0IHRoZSB0aW1lIGxpbWl0IGlzIGNsZWFyZWQgb24uCiAq
LwotSlNfRVhQT1JUIHZvaWQgSlNDb250ZXh0R3JvdXBDbGVhckV4ZWN1dGlvblRpbWVMaW1pdChK
U0NvbnRleHRHcm91cFJlZiBncm91cCkgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjYpLCBp
b3MoNy4wKSk7CitKU19FWFBPUlQgdm9pZCBKU0NvbnRleHRHcm91cENsZWFyRXhlY3V0aW9uVGlt
ZUxpbWl0KEpTQ29udGV4dEdyb3VwUmVmIGdyb3VwKSBKU0NfQVBJX0FWQUlMQUJMRShtYWNvcygx
MC42KSwgaW9zKDcuMCkpOwogCiAvKiEKIEBmdW5jdGlvbgpAQCAtMTAxLDcgKzEwMSw3IEBAIEpT
X0VYUE9SVCB2b2lkIEpTQ29udGV4dEdyb3VwQ2xlYXJFeGVjdXRpb25UaW1lTGltaXQoSlNDb250
ZXh0R3JvdXBSZWYgZ3JvdXApIEpTCiBAcmVzdWx0IFRoZSB2YWx1ZSBvZiB0aGUgc2V0dGluZywg
dHJ1ZSBpZiByZW1vdGUgaW5zcGVjdGlvbiBpcyBlbmFibGVkLCBvdGhlcndpc2UgZmFsc2UuCiBA
ZGlzY3Vzc2lvbiBSZW1vdGUgaW5zcGVjdGlvbiBpcyB0cnVlIGJ5IGRlZmF1bHQuCiAqLwotSlNf
RVhQT1JUIGJvb2wgSlNHbG9iYWxDb250ZXh0R2V0UmVtb3RlSW5zcGVjdGlvbkVuYWJsZWQoSlNH
bG9iYWxDb250ZXh0UmVmIGN0eCkgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9z
KDguMCkpOworSlNfRVhQT1JUIGJvb2wgSlNHbG9iYWxDb250ZXh0R2V0UmVtb3RlSW5zcGVjdGlv
bkVuYWJsZWQoSlNHbG9iYWxDb250ZXh0UmVmIGN0eCkgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTAuMTApLCBpb3MoOC4wKSk7CiAKIC8qIQogQGZ1bmN0aW9uCkBAIC0xMDksNyArMTA5LDcgQEAg
SlNfRVhQT1JUIGJvb2wgSlNHbG9iYWxDb250ZXh0R2V0UmVtb3RlSW5zcGVjdGlvbkVuYWJsZWQo
SlNHbG9iYWxDb250ZXh0UmVmIGN0eCkKIEBwYXJhbSBjdHggVGhlIEpTR2xvYmFsQ29udGV4dCB0
aGF0IHlvdSB3YW50IHRvIGNoYW5nZS4KIEBwYXJhbSBlbmFibGVkIFRoZSBuZXcgcmVtb3RlIGlu
c3BlY3Rpb24gZW5hYmxlZCBzZXR0aW5nIGZvciB0aGUgY29udGV4dC4KICovCi1KU19FWFBPUlQg
dm9pZCBKU0dsb2JhbENvbnRleHRTZXRSZW1vdGVJbnNwZWN0aW9uRW5hYmxlZChKU0dsb2JhbENv
bnRleHRSZWYgY3R4LCBib29sIGVuYWJsZWQpIEpTQ19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4x
MCksIGlvcyg4LjApKTsgICAgCitKU19FWFBPUlQgdm9pZCBKU0dsb2JhbENvbnRleHRTZXRSZW1v
dGVJbnNwZWN0aW9uRW5hYmxlZChKU0dsb2JhbENvbnRleHRSZWYgY3R4LCBib29sIGVuYWJsZWQp
IEpTQ19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDguMCkpOyAgICAKIAogLyohCiBA
ZnVuY3Rpb24KQEAgLTExOCw3ICsxMTgsNyBAQCBKU19FWFBPUlQgdm9pZCBKU0dsb2JhbENvbnRl
eHRTZXRSZW1vdGVJbnNwZWN0aW9uRW5hYmxlZChKU0dsb2JhbENvbnRleHRSZWYgY3R4LAogQHJl
c3VsdCBUaGUgdmFsdWUgb2YgdGhlIHNldHRpbmcsIHRydWUgaWYgcmVtb3RlIGluc3BlY3Rpb24g
aXMgZW5hYmxlZCwgb3RoZXJ3aXNlIGZhbHNlLgogQGRpc2N1c3Npb24gVGhpcyBzZXR0aW5nIGlz
IHRydWUgYnkgZGVmYXVsdC4KICovCi1KU19FWFBPUlQgYm9vbCBKU0dsb2JhbENvbnRleHRHZXRJ
bmNsdWRlc05hdGl2ZUNhbGxTdGFja1doZW5SZXBvcnRpbmdFeGNlcHRpb25zKEpTR2xvYmFsQ29u
dGV4dFJlZiBjdHgpIEpTQ19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKTsK
K0pTX0VYUE9SVCBib29sIEpTR2xvYmFsQ29udGV4dEdldEluY2x1ZGVzTmF0aXZlQ2FsbFN0YWNr
V2hlblJlcG9ydGluZ0V4Y2VwdGlvbnMoSlNHbG9iYWxDb250ZXh0UmVmIGN0eCkgSlNDX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4wKSk7CiAKIC8qIQogQGZ1bmN0aW9uCkBAIC0x
MjYsNyArMTI2LDcgQEAgSlNfRVhQT1JUIGJvb2wgSlNHbG9iYWxDb250ZXh0R2V0SW5jbHVkZXNO
YXRpdmVDYWxsU3RhY2tXaGVuUmVwb3J0aW5nRXhjZXB0aW9ucygKIEBwYXJhbSBjdHggVGhlIEpT
R2xvYmFsQ29udGV4dCB0aGF0IHlvdSB3YW50IHRvIGNoYW5nZS4KIEBwYXJhbSBpbmNsdWRlc05h
dGl2ZUNhbGxTdGFjayBUaGUgbmV3IHZhbHVlIG9mIHRoZSBzZXR0aW5nIGZvciB0aGUgY29udGV4
dC4KICovCi1KU19FWFBPUlQgdm9pZCBKU0dsb2JhbENvbnRleHRTZXRJbmNsdWRlc05hdGl2ZUNh
bGxTdGFja1doZW5SZXBvcnRpbmdFeGNlcHRpb25zKEpTR2xvYmFsQ29udGV4dFJlZiBjdHgsIGJv
b2wgaW5jbHVkZXNOYXRpdmVDYWxsU3RhY2spIEpTQ19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4x
MCksIGlvcyg4LjApKTsKK0pTX0VYUE9SVCB2b2lkIEpTR2xvYmFsQ29udGV4dFNldEluY2x1ZGVz
TmF0aXZlQ2FsbFN0YWNrV2hlblJlcG9ydGluZ0V4Y2VwdGlvbnMoSlNHbG9iYWxDb250ZXh0UmVm
IGN0eCwgYm9vbCBpbmNsdWRlc05hdGl2ZUNhbGxTdGFjaykgSlNDX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTAuMTApLCBpb3MoOC4wKSk7CiAKICNpZmRlZiBfX2NwbHVzcGx1cwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU01hbmFnZWRWYWx1ZS5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9KU01hbmFnZWRWYWx1ZS5oCmluZGV4IDQxODA3NGJjNDdkNjZjMTU4
NDA3ZmU1ODM4MzY5YTUxNWMwMzM1ZWMuLjNlYmM3YTRiZDkxOGFlNDEzYzYzOTNlYjBiYzkxODRl
NWFhMWNlMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNNYW5hZ2Vk
VmFsdWUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTTWFuYWdlZFZhbHVlLmgK
QEAgLTU3LDcgKzU3LDcgQEAgTlNfQ0xBU1NfQVZBSUxBQkxFKDEwXzksIDdfMCkKIEByZXN1bHQg
VGhlIG5ldyBKU01hbmFnZWRWYWx1ZS4KICovCiArIChKU01hbmFnZWRWYWx1ZSAqKW1hbmFnZWRW
YWx1ZVdpdGhWYWx1ZTooSlNWYWx1ZSAqKXZhbHVlOwotKyAoSlNNYW5hZ2VkVmFsdWUgKiltYW5h
Z2VkVmFsdWVXaXRoVmFsdWU6KEpTVmFsdWUgKil2YWx1ZSBhbmRPd25lcjooaWQpb3duZXIgSlND
X0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpOworKyAoSlNNYW5hZ2VkVmFs
dWUgKiltYW5hZ2VkVmFsdWVXaXRoVmFsdWU6KEpTVmFsdWUgKil2YWx1ZSBhbmRPd25lcjooaWQp
b3duZXIgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4wKSk7CiAKIC8qIQog
QG1ldGhvZApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU09iamVjdFJl
Zi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU09iamVjdFJlZi5oCmluZGV4IDBlMmU3
ZDQ2OWRiZmUzZjI2Y2VlZWU1NTVlZTg4MjMwN2FkNzRmZmEuLjQxMmZiZTllYTZhZmYyNDk4OTM5
YWY4YTE5MDMzYWMzYjVmM2I0OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvSlNPYmplY3RSZWYuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTT2JqZWN0
UmVmLmgKQEAgLTQ0MSw3ICs0NDEsNyBAQCBKU19FWFBPUlQgSlNPYmplY3RSZWYgSlNPYmplY3RN
YWtlQ29uc3RydWN0b3IoSlNDb250ZXh0UmVmIGN0eCwgSlNDbGFzc1JlZiBqc0NsYQogIEBkaXNj
dXNzaW9uIFRoZSBiZWhhdmlvciBvZiB0aGlzIGZ1bmN0aW9uIGRvZXMgbm90IGV4YWN0bHkgbWF0
Y2ggdGhlIGJlaGF2aW9yIG9mIHRoZSBidWlsdC1pbiBBcnJheSBjb25zdHJ1Y3Rvci4gU3BlY2lm
aWNhbGx5LCBpZiBvbmUgYXJndW1lbnQgCiAgaXMgc3VwcGxpZWQsIHRoaXMgZnVuY3Rpb24gcmV0
dXJucyBhbiBhcnJheSB3aXRoIG9uZSBlbGVtZW50LgogICovCi1KU19FWFBPUlQgSlNPYmplY3RS
ZWYgSlNPYmplY3RNYWtlQXJyYXkoSlNDb250ZXh0UmVmIGN0eCwgc2l6ZV90IGFyZ3VtZW50Q291
bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikg
SlNDX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjYpLCBpb3MoNy4wKSk7CitKU19FWFBPUlQgSlNP
YmplY3RSZWYgSlNPYmplY3RNYWtlQXJyYXkoSlNDb250ZXh0UmVmIGN0eCwgc2l6ZV90IGFyZ3Vt
ZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2Vw
dGlvbikgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuNiksIGlvcyg3LjApKTsKIAogLyohCiAg
QGZ1bmN0aW9uCkBAIC00NTIsNyArNDUyLDcgQEAgSlNfRVhQT1JUIEpTT2JqZWN0UmVmIEpTT2Jq
ZWN0TWFrZUFycmF5KEpTQ29udGV4dFJlZiBjdHgsIHNpemVfdCBhcmd1bWVudENvdW50LAogIEBw
YXJhbSBleGNlcHRpb24gQSBwb2ludGVyIHRvIGEgSlNWYWx1ZVJlZiBpbiB3aGljaCB0byBzdG9y
ZSBhbiBleGNlcHRpb24sIGlmIGFueS4gUGFzcyBOVUxMIGlmIHlvdSBkbyBub3QgY2FyZSB0byBz
dG9yZSBhbiBleGNlcHRpb24uCiAgQHJlc3VsdCBBIEpTT2JqZWN0IHRoYXQgaXMgYSBEYXRlLgog
ICovCi1KU19FWFBPUlQgSlNPYmplY3RSZWYgSlNPYmplY3RNYWtlRGF0ZShKU0NvbnRleHRSZWYg
Y3R4LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwg
SlNWYWx1ZVJlZiogZXhjZXB0aW9uKSBKU0NfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuNiksIGlv
cyg3LjApKTsKK0pTX0VYUE9SVCBKU09iamVjdFJlZiBKU09iamVjdE1ha2VEYXRlKEpTQ29udGV4
dFJlZiBjdHgsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50
c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pIEpTQ19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjYp
LCBpb3MoNy4wKSk7CiAKIC8qIQogIEBmdW5jdGlvbgpAQCAtNDYzLDcgKzQ2Myw3IEBAIEpTX0VY
UE9SVCBKU09iamVjdFJlZiBKU09iamVjdE1ha2VEYXRlKEpTQ29udGV4dFJlZiBjdHgsIHNpemVf
dCBhcmd1bWVudENvdW50LCBjCiAgQHBhcmFtIGV4Y2VwdGlvbiBBIHBvaW50ZXIgdG8gYSBKU1Zh
bHVlUmVmIGluIHdoaWNoIHRvIHN0b3JlIGFuIGV4Y2VwdGlvbiwgaWYgYW55LiBQYXNzIE5VTEwg
aWYgeW91IGRvIG5vdCBjYXJlIHRvIHN0b3JlIGFuIGV4Y2VwdGlvbi4KICBAcmVzdWx0IEEgSlNP
YmplY3QgdGhhdCBpcyBhIEVycm9yLgogICovCi1KU19FWFBPUlQgSlNPYmplY3RSZWYgSlNPYmpl
Y3RNYWtlRXJyb3IoSlNDb250ZXh0UmVmIGN0eCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0
IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikgSlNDX0FQSV9B
VkFJTEFCTEUobWFjb3N4KDEwLjYpLCBpb3MoNy4wKSk7CitKU19FWFBPUlQgSlNPYmplY3RSZWYg
SlNPYmplY3RNYWtlRXJyb3IoSlNDb250ZXh0UmVmIGN0eCwgc2l6ZV90IGFyZ3VtZW50Q291bnQs
IGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikgSlND
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuNiksIGlvcyg3LjApKTsKIAogLyohCiAgQGZ1bmN0aW9u
CkBAIC00NzQsNyArNDc0LDcgQEAgSlNfRVhQT1JUIEpTT2JqZWN0UmVmIEpTT2JqZWN0TWFrZUVy
cm9yKEpTQ29udGV4dFJlZiBjdHgsIHNpemVfdCBhcmd1bWVudENvdW50LAogIEBwYXJhbSBleGNl
cHRpb24gQSBwb2ludGVyIHRvIGEgSlNWYWx1ZVJlZiBpbiB3aGljaCB0byBzdG9yZSBhbiBleGNl
cHRpb24sIGlmIGFueS4gUGFzcyBOVUxMIGlmIHlvdSBkbyBub3QgY2FyZSB0byBzdG9yZSBhbiBl
eGNlcHRpb24uCiAgQHJlc3VsdCBBIEpTT2JqZWN0IHRoYXQgaXMgYSBSZWdFeHAuCiAgKi8KLUpT
X0VYUE9SVCBKU09iamVjdFJlZiBKU09iamVjdE1ha2VSZWdFeHAoSlNDb250ZXh0UmVmIGN0eCwg
c2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFs
dWVSZWYqIGV4Y2VwdGlvbikgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjYpLCBpb3MoNy4w
KSk7CitKU19FWFBPUlQgSlNPYmplY3RSZWYgSlNPYmplY3RNYWtlUmVnRXhwKEpTQ29udGV4dFJl
ZiBjdHgsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1td
LCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pIEpTQ19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjYpLCBp
b3MoNy4wKSk7CiAKIC8qIQogQGZ1bmN0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL0pTT2JqZWN0UmVmUHJpdmF0ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9KU09iamVjdFJlZlByaXZhdGUuaAppbmRleCAwODI2M2ZlMDE2NGNlMDgyYTg2NDJlOTExM2Fl
ZWFjMDQwMTg0ZDcyLi40MzI2MzcyMzRjMjhlZTIxOTY4Y2YzNzU5ZWQ1M2EyY2I1ZWVjYWUwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTT2JqZWN0UmVmUHJpdmF0ZS5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RSZWZQcml2YXRlLmgKQEAg
LTgwLDcgKzgwLDcgQEAgSlNfRVhQT1JUIEpTR2xvYmFsQ29udGV4dFJlZiBKU09iamVjdEdldEds
b2JhbENvbnRleHQoSlNPYmplY3RSZWYgb2JqZWN0KTsKICBAcGFyYW0gZXhjZXB0aW9uIEEgcG9p
bnRlciB0byBhIEpTVmFsdWVSZWYgaW4gd2hpY2ggdG8gc3RvcmUgYW4gZXhjZXB0aW9uLCBpZiBh
bnkuIFBhc3MgTlVMTCBpZiB5b3UgZG8gbm90IGNhcmUgdG8gc3RvcmUgYW4gZXhjZXB0aW9uLgog
IEByZXN1bHQgQSBKU09iamVjdCB0aGF0IGlzIGEgcHJvbWlzZSBvciBOVUxMIGlmIGFuIGV4Y2Vw
dGlvbiBvY2N1cnJlZC4KICAqLwotSlNfRVhQT1JUIEpTT2JqZWN0UmVmIEpTT2JqZWN0TWFrZURl
ZmVycmVkUHJvbWlzZShKU0NvbnRleHRSZWYgY3R4LCBKU09iamVjdFJlZiogcmVzb2x2ZSwgSlNP
YmplY3RSZWYqIHJlamVjdCwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKSBKU0NfQVBJX0FWQUlMQUJM
RShtYWNvc3goSlNDX01BQ19UQkEpLCBpb3MoSlNDX0lPU19UQkEpKTsKK0pTX0VYUE9SVCBKU09i
amVjdFJlZiBKU09iamVjdE1ha2VEZWZlcnJlZFByb21pc2UoSlNDb250ZXh0UmVmIGN0eCwgSlNP
YmplY3RSZWYqIHJlc29sdmUsIEpTT2JqZWN0UmVmKiByZWplY3QsIEpTVmFsdWVSZWYqIGV4Y2Vw
dGlvbikgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3MoSlNDX01BQ19UQkEpLCBpb3MoSlNDX0lPU19U
QkEpKTsKIAogLyohCiAgQGZ1bmN0aW9uCkBAIC05MSw3ICs5MSw3IEBAIEpTX0VYUE9SVCBKU09i
amVjdFJlZiBKU09iamVjdE1ha2VEZWZlcnJlZFByb21pc2UoSlNDb250ZXh0UmVmIGN0eCwgSlNP
YmplY3RSZWYqCiAgQHJlc3VsdCB0cnVlIGlmIHRoZSBvYmplY3QgaGFzIGEgcHJvcGVydHkgd2hv
c2UgbmFtZSBtYXRjaGVzIHByb3BlcnR5S2V5LCBvdGhlcndpc2UgZmFsc2UuCiAgQGRpc2N1c3Np
b24gVGhpcyBmdW5jdGlvbiBpcyB0aGUgc2FtZSBhcyBwZXJmb3JtaW5nICJwcm9wZXJ0eUtleSBp
biBvYmplY3QiIGZyb20gSmF2YVNjcmlwdC4KICAqLwotSlNfRVhQT1JUIGJvb2wgSlNPYmplY3RI
YXNQcm9wZXJ0eUZvcktleShKU0NvbnRleHRSZWYgY3R4LCBKU09iamVjdFJlZiBvYmplY3QsIEpT
VmFsdWVSZWYgcHJvcGVydHlLZXksIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikgSlNDX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KEpTQ19NQUNfVEJBKSwgaW9zKEpTQ19JT1NfVEJBKSk7CitKU19FWFBPUlQg
Ym9vbCBKU09iamVjdEhhc1Byb3BlcnR5Rm9yS2V5KEpTQ29udGV4dFJlZiBjdHgsIEpTT2JqZWN0
UmVmIG9iamVjdCwgSlNWYWx1ZVJlZiBwcm9wZXJ0eUtleSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9u
KSBKU0NfQVBJX0FWQUlMQUJMRShtYWNvcyhKU0NfTUFDX1RCQSksIGlvcyhKU0NfSU9TX1RCQSkp
OwogCiAvKiEKICBAZnVuY3Rpb24KQEAgLTEwMyw3ICsxMDMsNyBAQCBKU19FWFBPUlQgYm9vbCBK
U09iamVjdEhhc1Byb3BlcnR5Rm9yS2V5KEpTQ29udGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVmIG9i
amVjdCwgSgogIEByZXN1bHQgVGhlIHByb3BlcnR5J3MgdmFsdWUgaWYgb2JqZWN0IGhhcyB0aGUg
cHJvcGVydHkga2V5LCBvdGhlcndpc2UgdGhlIHVuZGVmaW5lZCB2YWx1ZS4KICBAZGlzY3Vzc2lv
biBUaGlzIGZ1bmN0aW9uIGlzIHRoZSBzYW1lIGFzIHBlcmZvcm1pbmcgIm9iamVjdFtwcm9wZXJ0
eUtleV0iIGZyb20gSmF2YVNjcmlwdC4KICAqLwotSlNfRVhQT1JUIEpTVmFsdWVSZWYgSlNPYmpl
Y3RHZXRQcm9wZXJ0eUZvcktleShKU0NvbnRleHRSZWYgY3R4LCBKU09iamVjdFJlZiBvYmplY3Qs
IEpTVmFsdWVSZWYgcHJvcGVydHlLZXksIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikgSlNDX0FQSV9B
VkFJTEFCTEUobWFjb3N4KEpTQ19NQUNfVEJBKSwgaW9zKEpTQ19JT1NfVEJBKSk7CitKU19FWFBP
UlQgSlNWYWx1ZVJlZiBKU09iamVjdEdldFByb3BlcnR5Rm9yS2V5KEpTQ29udGV4dFJlZiBjdHgs
IEpTT2JqZWN0UmVmIG9iamVjdCwgSlNWYWx1ZVJlZiBwcm9wZXJ0eUtleSwgSlNWYWx1ZVJlZiog
ZXhjZXB0aW9uKSBKU0NfQVBJX0FWQUlMQUJMRShtYWNvcyhKU0NfTUFDX1RCQSksIGlvcyhKU0Nf
SU9TX1RCQSkpOwogCiAvKiEKICBAZnVuY3Rpb24KQEAgLTExNiw3ICsxMTYsNyBAQCBKU19FWFBP
UlQgSlNWYWx1ZVJlZiBKU09iamVjdEdldFByb3BlcnR5Rm9yS2V5KEpTQ29udGV4dFJlZiBjdHgs
IEpTT2JqZWN0UmVmIG9iagogIEBwYXJhbSBleGNlcHRpb24gQSBwb2ludGVyIHRvIGEgSlNWYWx1
ZVJlZiBpbiB3aGljaCB0byBzdG9yZSBhbiBleGNlcHRpb24sIGlmIGFueS4gUGFzcyBOVUxMIGlm
IHlvdSBkbyBub3QgY2FyZSB0byBzdG9yZSBhbiBleGNlcHRpb24uCiAgQGRpc2N1c3Npb24gVGhp
cyBmdW5jdGlvbiBpcyB0aGUgc2FtZSBhcyBwZXJmb3JtaW5nICJvYmplY3RbcHJvcGVydHlLZXld
ID0gdmFsdWUiIGZyb20gSmF2YVNjcmlwdC4KICAqLwotSlNfRVhQT1JUIHZvaWQgSlNPYmplY3RT
ZXRQcm9wZXJ0eUZvcktleShKU0NvbnRleHRSZWYgY3R4LCBKU09iamVjdFJlZiBvYmplY3QsIEpT
VmFsdWVSZWYgcHJvcGVydHlLZXksIEpTVmFsdWVSZWYgdmFsdWUsIEpTUHJvcGVydHlBdHRyaWJ1
dGVzIGF0dHJpYnV0ZXMsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikgSlNDX0FQSV9BVkFJTEFCTEUo
bWFjb3N4KEpTQ19NQUNfVEJBKSwgaW9zKEpTQ19JT1NfVEJBKSk7CitKU19FWFBPUlQgdm9pZCBK
U09iamVjdFNldFByb3BlcnR5Rm9yS2V5KEpTQ29udGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVmIG9i
amVjdCwgSlNWYWx1ZVJlZiBwcm9wZXJ0eUtleSwgSlNWYWx1ZVJlZiB2YWx1ZSwgSlNQcm9wZXJ0
eUF0dHJpYnV0ZXMgYXR0cmlidXRlcywgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKSBKU0NfQVBJX0FW
QUlMQUJMRShtYWNvcyhKU0NfTUFDX1RCQSksIGlvcyhKU0NfSU9TX1RCQSkpOwogCiAvKiEKICBA
ZnVuY3Rpb24KQEAgLTEyOCw3ICsxMjgsNyBAQCBKU19FWFBPUlQgdm9pZCBKU09iamVjdFNldFBy
b3BlcnR5Rm9yS2V5KEpTQ29udGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVmIG9iamVjdCwgSgogIEBy
ZXN1bHQgdHJ1ZSBpZiB0aGUgZGVsZXRlIG9wZXJhdGlvbiBzdWNjZWVkcywgb3RoZXJ3aXNlIGZh
bHNlIChmb3IgZXhhbXBsZSwgaWYgdGhlIHByb3BlcnR5IGhhcyB0aGUga0pTUHJvcGVydHlBdHRy
aWJ1dGVEb250RGVsZXRlIGF0dHJpYnV0ZSBzZXQpLgogIEBkaXNjdXNzaW9uIFRoaXMgZnVuY3Rp
b24gaXMgdGhlIHNhbWUgYXMgcGVyZm9ybWluZyAiZGVsZXRlIG9iamVjdFtwcm9wZXJ0eUtleV0i
IGZyb20gSmF2YVNjcmlwdC4KICAqLwotSlNfRVhQT1JUIGJvb2wgSlNPYmplY3REZWxldGVQcm9w
ZXJ0eUZvcktleShKU0NvbnRleHRSZWYgY3R4LCBKU09iamVjdFJlZiBvYmplY3QsIEpTVmFsdWVS
ZWYgcHJvcGVydHlLZXksIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikgSlNDX0FQSV9BVkFJTEFCTEUo
bWFjb3N4KEpTQ19NQUNfVEJBKSwgaW9zKEpTQ19JT1NfVEJBKSk7CitKU19FWFBPUlQgYm9vbCBK
U09iamVjdERlbGV0ZVByb3BlcnR5Rm9yS2V5KEpTQ29udGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVm
IG9iamVjdCwgSlNWYWx1ZVJlZiBwcm9wZXJ0eUtleSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKSBK
U0NfQVBJX0FWQUlMQUJMRShtYWNvcyhKU0NfTUFDX1RCQSksIGlvcyhKU0NfSU9TX1RCQSkpOwog
CiAvKiEKICBAZnVuY3Rpb24KQEAgLTEzNyw3ICsxMzcsNyBAQCBKU19FWFBPUlQgYm9vbCBKU09i
amVjdERlbGV0ZVByb3BlcnR5Rm9yS2V5KEpTQ29udGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVmIG9i
amVjdAogIEBwYXJhbSBkZXNjcmlwdGlvbiAgIEEgZGVzY3JpcHRpb24gb2YgdGhlIG5ld2x5IGNy
ZWF0ZWQgc3ltYm9sIHZhbHVlLgogIEByZXN1bHQgICAgICAgICAgICAgIEEgdW5pcXVlIEpTVmFs
dWUgb2YgdGhlIHN5bWJvbCB0eXBlLCB3aG9zZSBkZXNjcmlwdGlvbiBtYXRjaGVzIHRoZSBvbmUg
cHJvdmlkZWQuCiAgKi8KLUpTX0VYUE9SVCBKU1ZhbHVlUmVmIEpTVmFsdWVNYWtlU3ltYm9sKEpT
Q29udGV4dFJlZiBjdHgsIEpTU3RyaW5nUmVmIGRlc2NyaXB0aW9uKSBKU0NfQVBJX0FWQUlMQUJM
RShtYWNvc3goSlNDX01BQ19UQkEpLCBpb3MoSlNDX0lPU19UQkEpKTsKK0pTX0VYUE9SVCBKU1Zh
bHVlUmVmIEpTVmFsdWVNYWtlU3ltYm9sKEpTQ29udGV4dFJlZiBjdHgsIEpTU3RyaW5nUmVmIGRl
c2NyaXB0aW9uKSBKU0NfQVBJX0FWQUlMQUJMRShtYWNvcyhKU0NfTUFDX1RCQSksIGlvcyhKU0Nf
SU9TX1RCQSkpOwogCiAvKiEKICBAZnVuY3Rpb24KQEAgLTE0Niw3ICsxNDYsNyBAQCBKU19FWFBP
UlQgSlNWYWx1ZVJlZiBKU1ZhbHVlTWFrZVN5bWJvbChKU0NvbnRleHRSZWYgY3R4LCBKU1N0cmlu
Z1JlZiBkZXNjcmlwdGlvbgogIEBwYXJhbSB2YWx1ZSAgICBUaGUgSlNWYWx1ZSB0byB0ZXN0Lgog
IEByZXN1bHQgICAgICAgICB0cnVlIGlmIHZhbHVlJ3MgdHlwZSBpcyB0aGUgc3ltYm9sIHR5cGUs
IG90aGVyd2lzZSBmYWxzZS4KICAqLwotSlNfRVhQT1JUIGJvb2wgSlNWYWx1ZUlzU3ltYm9sKEpT
Q29udGV4dFJlZiBjdHgsIEpTVmFsdWVSZWYgdmFsdWUpIEpTQ19BUElfQVZBSUxBQkxFKG1hY29z
eChKU0NfTUFDX1RCQSksIGlvcyhKU0NfSU9TX1RCQSkpOworSlNfRVhQT1JUIGJvb2wgSlNWYWx1
ZUlzU3ltYm9sKEpTQ29udGV4dFJlZiBjdHgsIEpTVmFsdWVSZWYgdmFsdWUpIEpTQ19BUElfQVZB
SUxBQkxFKG1hY29zKEpTQ19NQUNfVEJBKSwgaW9zKEpTQ19JT1NfVEJBKSk7CiAKICNpZmRlZiBf
X2NwbHVzcGx1cwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1Jl
bW90ZUluc3BlY3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1JlbW90ZUluc3Bl
Y3Rvci5oCmluZGV4IDYxODZiOTIzZWM4YWI4Yjk0OGU3OTNhZjA0YmRkODQzMjc0MDAzNDQuLjg1
NzY4ZTRkNjU3NzgxYmU0YTc4MDdlNWFhOGQ0MDRhNDczMjgwZGIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNSZW1vdGVJbnNwZWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL0pTUmVtb3RlSW5zcGVjdG9yLmgKQEAgLTQwLDE0ICs0MCwxNCBAQCB0
eXBlZGVmIHBpZF90IEpTUHJvY2Vzc0lEOwogZXh0ZXJuICJDIiB7CiAjZW5kaWYKIAotSlNfRVhQ
T1JUIHZvaWQgSlNSZW1vdGVJbnNwZWN0b3JEaXNhYmxlQXV0b1N0YXJ0KHZvaWQpIEpTQ19BUElf
QVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKLUpTX0VYUE9SVCB2b2lkIEpTUmVt
b3RlSW5zcGVjdG9yU3RhcnQodm9pZCkgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwg
aW9zKDkuMCkpOwotSlNfRVhQT1JUIHZvaWQgSlNSZW1vdGVJbnNwZWN0b3JTZXRQYXJlbnRQcm9j
ZXNzSW5mb3JtYXRpb24oSlNQcm9jZXNzSUQsIGNvbnN0IHVpbnQ4X3QqIGF1ZGl0RGF0YSwgc2l6
ZV90IGF1ZGl0TGVuZ3RoKSBKU0NfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4w
KSk7CitKU19FWFBPUlQgdm9pZCBKU1JlbW90ZUluc3BlY3RvckRpc2FibGVBdXRvU3RhcnQodm9p
ZCkgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTEpLCBpb3MoOS4wKSk7CitKU19FWFBPUlQg
dm9pZCBKU1JlbW90ZUluc3BlY3RvclN0YXJ0KHZvaWQpIEpTQ19BUElfQVZBSUxBQkxFKG1hY29z
KDEwLjExKSwgaW9zKDkuMCkpOworSlNfRVhQT1JUIHZvaWQgSlNSZW1vdGVJbnNwZWN0b3JTZXRQ
YXJlbnRQcm9jZXNzSW5mb3JtYXRpb24oSlNQcm9jZXNzSUQsIGNvbnN0IHVpbnQ4X3QqIGF1ZGl0
RGF0YSwgc2l6ZV90IGF1ZGl0TGVuZ3RoKSBKU0NfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMSks
IGlvcyg5LjApKTsKIAotSlNfRVhQT1JUIHZvaWQgSlNSZW1vdGVJbnNwZWN0b3JTZXRMb2dUb1N5
c3RlbUNvbnNvbGUoYm9vbCkgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDku
MCkpOworSlNfRVhQT1JUIHZvaWQgSlNSZW1vdGVJbnNwZWN0b3JTZXRMb2dUb1N5c3RlbUNvbnNv
bGUoYm9vbCkgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTEpLCBpb3MoOS4wKSk7CiAKLUpT
X0VYUE9SVCBib29sIEpTUmVtb3RlSW5zcGVjdG9yR2V0SW5zcGVjdGlvbkVuYWJsZWRCeURlZmF1
bHQodm9pZCkgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOwotSlNf
RVhQT1JUIHZvaWQgSlNSZW1vdGVJbnNwZWN0b3JTZXRJbnNwZWN0aW9uRW5hYmxlZEJ5RGVmYXVs
dChib29sKSBKU0NfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CitKU19F
WFBPUlQgYm9vbCBKU1JlbW90ZUluc3BlY3RvckdldEluc3BlY3Rpb25FbmFibGVkQnlEZWZhdWx0
KHZvaWQpIEpTQ19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjExKSwgaW9zKDkuMCkpOworSlNfRVhQ
T1JUIHZvaWQgSlNSZW1vdGVJbnNwZWN0b3JTZXRJbnNwZWN0aW9uRW5hYmxlZEJ5RGVmYXVsdChi
b29sKSBKU0NfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMSksIGlvcyg5LjApKTsKIAogI2lmZGVm
IF9fY3BsdXNwbHVzCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pT
U2NyaXB0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTU2NyaXB0LmgKaW5kZXggNmEw
NzExMDNkZmM2ZTk5ZjViZDY4ZDVjNzI2NDJlMDFmZjhkMzBkNi4uZjNkZmY0ZTZjOGMzMmIzMWNk
OTIzZWRhYjRjMGUzZTAxOTM2ZGZkOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS9KU1NjcmlwdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNTY3JpcHQu
aApAQCAtNDMsMjMgKzQzLDIzIEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIEpTU2NyaXB0
VHlwZSkgewogfTsKIAogCi1KU0NfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeChKU0NfTUFDX1RCQSks
IGlvcyhKU0NfSU9TX1RCQSkpCitKU0NfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKEpTQ19NQUNfVEJB
KSwgaW9zKEpTQ19JT1NfVEJBKSkKIEBpbnRlcmZhY2UgSlNTY3JpcHQgOiBOU09iamVjdAogCiAv
KiEKICBUaGlzIFNQSSBpcyBkZXByZWNhdGVkIGFuZCBzaG91bGQgbm90IGJlIHVzZWQuIFVzZSAi
c2NyaXB0T2ZUeXBlOndpdGhTb3VyY2U6YW5kU291cmNlVVJMOmFuZEJ5dGVjb2RlQ2FjaGU6aW5W
aXJ0dWFsTWFjaGluZTplcnJvcjoiIGluc3RlYWQuCiAgKi8KLSsgKG51bGxhYmxlIGluc3RhbmNl
dHlwZSlzY3JpcHRXaXRoU291cmNlOihOU1N0cmluZyAqKXNvdXJjZSBpblZpcnR1YWxNYWNoaW5l
OihKU1ZpcnR1YWxNYWNoaW5lICopdm0gSlNDX0FQSV9ERVBSRUNBVEVEKCJVc2UgK3NjcmlwdE9m
VHlwZTp3aXRoU291cmNlOmFuZFNvdXJjZVVSTDphbmRCeXRlY29kZUNhY2hlOmluVmlydHVhbE1h
Y2hpbmU6ZXJyb3I6IGluc3RlYWQuIiwgbWFjb3N4KEpTQ19NQUNfVEJBLCBKU0NfTUFDX1RCQSks
IGlvcyhKU0NfSU9TX1RCQSwgSlNDX0lPU19UQkEpKTsKKysgKG51bGxhYmxlIGluc3RhbmNldHlw
ZSlzY3JpcHRXaXRoU291cmNlOihOU1N0cmluZyAqKXNvdXJjZSBpblZpcnR1YWxNYWNoaW5lOihK
U1ZpcnR1YWxNYWNoaW5lICopdm0gSlNDX0FQSV9ERVBSRUNBVEVEKCJVc2UgK3NjcmlwdE9mVHlw
ZTp3aXRoU291cmNlOmFuZFNvdXJjZVVSTDphbmRCeXRlY29kZUNhY2hlOmluVmlydHVhbE1hY2hp
bmU6ZXJyb3I6IGluc3RlYWQuIiwgbWFjb3MoSlNDX01BQ19UQkEsIEpTQ19NQUNfVEJBKSwgaW9z
KEpTQ19JT1NfVEJBLCBKU0NfSU9TX1RCQSkpOwogCiAvKiEKICBUaGlzIFNQSSBpcyBkZXByZWNh
dGVkIGFuZCBzaG91bGQgbm90IGJlIHVzZWQuIFVzZSAic2NyaXB0T2ZUeXBlOm1lbW9yeU1hcHBl
ZEZyb21BU0NJSUZpbGU6d2l0aFNvdXJjZVVSTDphbmRCeXRlY29kZUNhY2hlOmluVmlydHVhbE1h
Y2hpbmU6ZXJyb3I6IiBpbnN0ZWFkLgogICovCi0rIChudWxsYWJsZSBpbnN0YW5jZXR5cGUpc2Ny
aXB0RnJvbUFTQ0lJRmlsZTooTlNVUkwgKilmaWxlUGF0aCBpblZpcnR1YWxNYWNoaW5lOihKU1Zp
cnR1YWxNYWNoaW5lICopdm0gd2l0aENvZGVTaWduaW5nOihudWxsYWJsZSBOU1VSTCAqKWNvZGVT
aWduaW5nUGF0aCBhbmRCeXRlY29kZUNhY2hlOihudWxsYWJsZSBOU1VSTCAqKWNhY2hlUGF0aCBK
U0NfQVBJX0RFUFJFQ0FURUQoIlVzZSArc2NyaXB0T2ZUeXBlOm1lbW9yeU1hcHBlZEZyb21BU0NJ
SUZpbGU6d2l0aFNvdXJjZVVSTDphbmRCeXRlY29kZUNhY2hlOmluVmlydHVhbE1hY2hpbmU6ZXJy
b3I6IGluc3RlYWQuIiwgbWFjb3N4KEpTQ19NQUNfVEJBLCBKU0NfTUFDX1RCQSksIGlvcyhKU0Nf
SU9TX1RCQSwgSlNDX0lPU19UQkEpKTsKKysgKG51bGxhYmxlIGluc3RhbmNldHlwZSlzY3JpcHRG
cm9tQVNDSUlGaWxlOihOU1VSTCAqKWZpbGVQYXRoIGluVmlydHVhbE1hY2hpbmU6KEpTVmlydHVh
bE1hY2hpbmUgKil2bSB3aXRoQ29kZVNpZ25pbmc6KG51bGxhYmxlIE5TVVJMICopY29kZVNpZ25p
bmdQYXRoIGFuZEJ5dGVjb2RlQ2FjaGU6KG51bGxhYmxlIE5TVVJMICopY2FjaGVQYXRoIEpTQ19B
UElfREVQUkVDQVRFRCgiVXNlICtzY3JpcHRPZlR5cGU6bWVtb3J5TWFwcGVkRnJvbUFTQ0lJRmls
ZTp3aXRoU291cmNlVVJMOmFuZEJ5dGVjb2RlQ2FjaGU6aW5WaXJ0dWFsTWFjaGluZTplcnJvcjog
aW5zdGVhZC4iLCBtYWNvcyhKU0NfTUFDX1RCQSwgSlNDX01BQ19UQkEpLCBpb3MoSlNDX0lPU19U
QkEsIEpTQ19JT1NfVEJBKSk7CiAKIC8qIQogIFRoaXMgQVBJIGlzIGRlcHJlY2F0ZWQgYW5kIHNo
b3VsZCBub3QgYmUgdXNlZC4KICAqLwotKyAobnVsbGFibGUgaW5zdGFuY2V0eXBlKXNjcmlwdEZy
b21VVEY4RmlsZTooTlNVUkwgKilmaWxlUGF0aCBpblZpcnR1YWxNYWNoaW5lOihKU1ZpcnR1YWxN
YWNoaW5lICopdm0gd2l0aENvZGVTaWduaW5nOihudWxsYWJsZSBOU1VSTCAqKWNvZGVTaWduaW5n
UGF0aCBhbmRCeXRlY29kZUNhY2hlOihudWxsYWJsZSBOU1VSTCAqKWNhY2hlUGF0aCBKU0NfQVBJ
X0RFUFJFQ0FURUQoIkRvIG5vdCB1c2UgdGhpcy4gVXNlICtzY3JpcHRPZlR5cGU6bWVtb3J5TWFw
cGVkRnJvbUFTQ0lJRmlsZTp3aXRoU291cmNlVVJMOmFuZEJ5dGVjb2RlQ2FjaGU6aW5WaXJ0dWFs
TWFjaGluZTplcnJvcjogb3IgK3NjcmlwdE9mVHlwZTp3aXRoU291cmNlOmFuZFNvdXJjZVVSTDph
bmRCeXRlY29kZUNhY2hlOmluVmlydHVhbE1hY2hpbmU6ZXJyb3I6IGluc3RlYWQiLCBtYWNvc3go
SlNDX01BQ19UQkEsIEpTQ19NQUNfVEJBKSwgaW9zKEpTQ19JT1NfVEJBLCBKU0NfSU9TX1RCQSkp
OworKyAobnVsbGFibGUgaW5zdGFuY2V0eXBlKXNjcmlwdEZyb21VVEY4RmlsZTooTlNVUkwgKilm
aWxlUGF0aCBpblZpcnR1YWxNYWNoaW5lOihKU1ZpcnR1YWxNYWNoaW5lICopdm0gd2l0aENvZGVT
aWduaW5nOihudWxsYWJsZSBOU1VSTCAqKWNvZGVTaWduaW5nUGF0aCBhbmRCeXRlY29kZUNhY2hl
OihudWxsYWJsZSBOU1VSTCAqKWNhY2hlUGF0aCBKU0NfQVBJX0RFUFJFQ0FURUQoIkRvIG5vdCB1
c2UgdGhpcy4gVXNlICtzY3JpcHRPZlR5cGU6bWVtb3J5TWFwcGVkRnJvbUFTQ0lJRmlsZTp3aXRo
U291cmNlVVJMOmFuZEJ5dGVjb2RlQ2FjaGU6aW5WaXJ0dWFsTWFjaGluZTplcnJvcjogb3IgK3Nj
cmlwdE9mVHlwZTp3aXRoU291cmNlOmFuZFNvdXJjZVVSTDphbmRCeXRlY29kZUNhY2hlOmluVmly
dHVhbE1hY2hpbmU6ZXJyb3I6IGluc3RlYWQiLCBtYWNvcyhKU0NfTUFDX1RCQSwgSlNDX01BQ19U
QkEpLCBpb3MoSlNDX0lPU19UQkEsIEpTQ19JT1NfVEJBKSk7CiAKIC8qIQogIEBtZXRob2QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNUeXBlZEFycmF5LmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVHlwZWRBcnJheS5oCmluZGV4IDZkODYwMjJmYTU2OTk1
NDY0NmJlZWEzYWU5ZWZmN2IyY2EzNmEwMWQuLjdlYWY3NmM1ZTFlZGU4ZTZiZjAyODNhOTczMTIz
NTNiNDJlZjY5ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNUeXBl
ZEFycmF5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1R5cGVkQXJyYXkuaApA
QCAtNDUsNyArNDUsNyBAQCBleHRlcm4gIkMiIHsKICBAcGFyYW0gZXhjZXB0aW9uICAgIEEgcG9p
bnRlciB0byBhIEpTVmFsdWVSZWYgaW4gd2hpY2ggdG8gc3RvcmUgYW4gZXhjZXB0aW9uLCBpZiBh
bnkuIFBhc3MgTlVMTCBpZiB5b3UgZG8gbm90IGNhcmUgdG8gc3RvcmUgYW4gZXhjZXB0aW9uLgog
IEByZXN1bHQgICAgICAgICAgICAgQSBKU09iamVjdFJlZiB0aGF0IGlzIGEgVHlwZWQgQXJyYXkg
d2l0aCBhbGwgZWxlbWVudHMgc2V0IHRvIHplcm8gb3IgTlVMTCBpZiB0aGVyZSB3YXMgYW4gZXJy
b3IuCiAgKi8KLUpTX0VYUE9SVCBKU09iamVjdFJlZiBKU09iamVjdE1ha2VUeXBlZEFycmF5KEpT
Q29udGV4dFJlZiBjdHgsIEpTVHlwZWRBcnJheVR5cGUgYXJyYXlUeXBlLCBzaXplX3QgbGVuZ3Ro
LCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pIEpTQ19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMiks
IGlvcygxMC4wKSk7CitKU19FWFBPUlQgSlNPYmplY3RSZWYgSlNPYmplY3RNYWtlVHlwZWRBcnJh
eShKU0NvbnRleHRSZWYgY3R4LCBKU1R5cGVkQXJyYXlUeXBlIGFycmF5VHlwZSwgc2l6ZV90IGxl
bmd0aCwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKSBKU0NfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4x
MiksIGlvcygxMC4wKSk7CiAKIC8qIQogIEBmdW5jdGlvbgpAQCAtNjAsNyArNjAsNyBAQCBKU19F
WFBPUlQgSlNPYmplY3RSZWYgSlNPYmplY3RNYWtlVHlwZWRBcnJheShKU0NvbnRleHRSZWYgY3R4
LCBKU1R5cGVkQXJyYXlUeXBlCiAgQHJlc3VsdCAgICAgICAgICAgICAgICAgICBBIEpTT2JqZWN0
UmVmIFR5cGVkIEFycmF5IHdob3NlIGJhY2tpbmcgc3RvcmUgaXMgdGhlIHNhbWUgYXMgdGhlIG9u
ZSBwb2ludGVkIHRvIGJ5IGJ5dGVzIG9yIE5VTEwgaWYgdGhlcmUgd2FzIGFuIGVycm9yLgogIEBk
aXNjdXNzaW9uICAgICAgICAgICAgICAgSWYgYW4gZXhjZXB0aW9uIGlzIHRocm93biBkdXJpbmcg
dGhpcyBmdW5jdGlvbiB0aGUgYnl0ZXNEZWFsbG9jYXRvciB3aWxsIGFsd2F5cyBiZSBjYWxsZWQu
CiAgKi8KLUpTX0VYUE9SVCBKU09iamVjdFJlZiBKU09iamVjdE1ha2VUeXBlZEFycmF5V2l0aEJ5
dGVzTm9Db3B5KEpTQ29udGV4dFJlZiBjdHgsIEpTVHlwZWRBcnJheVR5cGUgYXJyYXlUeXBlLCB2
b2lkKiBieXRlcywgc2l6ZV90IGJ5dGVMZW5ndGgsIEpTVHlwZWRBcnJheUJ5dGVzRGVhbGxvY2F0
b3IgYnl0ZXNEZWFsbG9jYXRvciwgdm9pZCogZGVhbGxvY2F0b3JDb250ZXh0LCBKU1ZhbHVlUmVm
KiBleGNlcHRpb24pIEpTQ19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMiksIGlvcygxMC4wKSk7
CitKU19FWFBPUlQgSlNPYmplY3RSZWYgSlNPYmplY3RNYWtlVHlwZWRBcnJheVdpdGhCeXRlc05v
Q29weShKU0NvbnRleHRSZWYgY3R4LCBKU1R5cGVkQXJyYXlUeXBlIGFycmF5VHlwZSwgdm9pZCog
Ynl0ZXMsIHNpemVfdCBieXRlTGVuZ3RoLCBKU1R5cGVkQXJyYXlCeXRlc0RlYWxsb2NhdG9yIGJ5
dGVzRGVhbGxvY2F0b3IsIHZvaWQqIGRlYWxsb2NhdG9yQ29udGV4dCwgSlNWYWx1ZVJlZiogZXhj
ZXB0aW9uKSBKU0NfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CiAKIC8q
IQogIEBmdW5jdGlvbgpAQCAtNzEsNyArNzEsNyBAQCBKU19FWFBPUlQgSlNPYmplY3RSZWYgSlNP
YmplY3RNYWtlVHlwZWRBcnJheVdpdGhCeXRlc05vQ29weShKU0NvbnRleHRSZWYgY3R4LCBKUwog
IEBwYXJhbSBleGNlcHRpb24gICAgQSBwb2ludGVyIHRvIGEgSlNWYWx1ZVJlZiBpbiB3aGljaCB0
byBzdG9yZSBhbiBleGNlcHRpb24sIGlmIGFueS4gUGFzcyBOVUxMIGlmIHlvdSBkbyBub3QgY2Fy
ZSB0byBzdG9yZSBhbiBleGNlcHRpb24uCiAgQHJlc3VsdCAgICAgICAgICAgICBBIEpTT2JqZWN0
UmVmIHRoYXQgaXMgYSBUeXBlZCBBcnJheSBvciBOVUxMIGlmIHRoZXJlIHdhcyBhbiBlcnJvci4g
VGhlIGJhY2tpbmcgc3RvcmUgb2YgdGhlIFR5cGVkIEFycmF5IHdpbGwgYmUgYnVmZmVyLgogICov
Ci1KU19FWFBPUlQgSlNPYmplY3RSZWYgSlNPYmplY3RNYWtlVHlwZWRBcnJheVdpdGhBcnJheUJ1
ZmZlcihKU0NvbnRleHRSZWYgY3R4LCBKU1R5cGVkQXJyYXlUeXBlIGFycmF5VHlwZSwgSlNPYmpl
Y3RSZWYgYnVmZmVyLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pIEpTQ19BUElfQVZBSUxBQkxFKG1h
Y29zeCgxMC4xMiksIGlvcygxMC4wKSk7CitKU19FWFBPUlQgSlNPYmplY3RSZWYgSlNPYmplY3RN
YWtlVHlwZWRBcnJheVdpdGhBcnJheUJ1ZmZlcihKU0NvbnRleHRSZWYgY3R4LCBKU1R5cGVkQXJy
YXlUeXBlIGFycmF5VHlwZSwgSlNPYmplY3RSZWYgYnVmZmVyLCBKU1ZhbHVlUmVmKiBleGNlcHRp
b24pIEpTQ19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKIAogLyohCiAg
QGZ1bmN0aW9uCkBAIC04NCw3ICs4NCw3IEBAIEpTX0VYUE9SVCBKU09iamVjdFJlZiBKU09iamVj
dE1ha2VUeXBlZEFycmF5V2l0aEFycmF5QnVmZmVyKEpTQ29udGV4dFJlZiBjdHgsIEpTCiAgQHBh
cmFtIGV4Y2VwdGlvbiAgICBBIHBvaW50ZXIgdG8gYSBKU1ZhbHVlUmVmIGluIHdoaWNoIHRvIHN0
b3JlIGFuIGV4Y2VwdGlvbiwgaWYgYW55LiBQYXNzIE5VTEwgaWYgeW91IGRvIG5vdCBjYXJlIHRv
IHN0b3JlIGFuIGV4Y2VwdGlvbi4KICBAcmVzdWx0ICAgICAgICAgICAgIEEgSlNPYmplY3RSZWYg
dGhhdCBpcyBhIFR5cGVkIEFycmF5IG9yIE5VTEwgaWYgdGhlcmUgd2FzIGFuIGVycm9yLiBUaGUg
YmFja2luZyBzdG9yZSBvZiB0aGUgVHlwZWQgQXJyYXkgd2lsbCBiZSBidWZmZXIuCiAgKi8KLUpT
X0VYUE9SVCBKU09iamVjdFJlZiBKU09iamVjdE1ha2VUeXBlZEFycmF5V2l0aEFycmF5QnVmZmVy
QW5kT2Zmc2V0KEpTQ29udGV4dFJlZiBjdHgsIEpTVHlwZWRBcnJheVR5cGUgYXJyYXlUeXBlLCBK
U09iamVjdFJlZiBidWZmZXIsIHNpemVfdCBieXRlT2Zmc2V0LCBzaXplX3QgbGVuZ3RoLCBKU1Zh
bHVlUmVmKiBleGNlcHRpb24pIEpTQ19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMiksIGlvcygx
MC4wKSk7CitKU19FWFBPUlQgSlNPYmplY3RSZWYgSlNPYmplY3RNYWtlVHlwZWRBcnJheVdpdGhB
cnJheUJ1ZmZlckFuZE9mZnNldChKU0NvbnRleHRSZWYgY3R4LCBKU1R5cGVkQXJyYXlUeXBlIGFy
cmF5VHlwZSwgSlNPYmplY3RSZWYgYnVmZmVyLCBzaXplX3QgYnl0ZU9mZnNldCwgc2l6ZV90IGxl
bmd0aCwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKSBKU0NfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4x
MiksIGlvcygxMC4wKSk7CiAKIC8qIQogIEBmdW5jdGlvbgpAQCAtOTUsNyArOTUsNyBAQCBKU19F
WFBPUlQgSlNPYmplY3RSZWYgSlNPYmplY3RNYWtlVHlwZWRBcnJheVdpdGhBcnJheUJ1ZmZlckFu
ZE9mZnNldChKU0NvbnRleHRSZQogIEByZXN1bHQgICAgICAgICAgICAgQSBwb2ludGVyIHRvIHRo
ZSByYXcgZGF0YSBidWZmZXIgdGhhdCBzZXJ2ZXMgYXMgb2JqZWN0J3MgYmFja2luZyBzdG9yZSBv
ciBOVUxMIGlmIG9iamVjdCBpcyBub3QgYSBUeXBlZCBBcnJheSBvYmplY3QuCiAgQGRpc2N1c3Np
b24gICAgICAgICBUaGUgcG9pbnRlciByZXR1cm5lZCBieSB0aGlzIGZ1bmN0aW9uIGlzIHRlbXBv
cmFyeSBhbmQgaXMgbm90IGd1YXJhbnRlZWQgdG8gcmVtYWluIHZhbGlkIGFjcm9zcyBKYXZhU2Ny
aXB0Q29yZSBBUEkgY2FsbHMuCiAgKi8KLUpTX0VYUE9SVCB2b2lkKiBKU09iamVjdEdldFR5cGVk
QXJyYXlCeXRlc1B0cihKU0NvbnRleHRSZWYgY3R4LCBKU09iamVjdFJlZiBvYmplY3QsIEpTVmFs
dWVSZWYqIGV4Y2VwdGlvbikgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEw
LjApKTsKK0pTX0VYUE9SVCB2b2lkKiBKU09iamVjdEdldFR5cGVkQXJyYXlCeXRlc1B0cihKU0Nv
bnRleHRSZWYgY3R4LCBKU09iamVjdFJlZiBvYmplY3QsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikg
SlNDX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOwogCiAvKiEKICBAZnVu
Y3Rpb24KQEAgLTEwNSw3ICsxMDUsNyBAQCBKU19FWFBPUlQgdm9pZCogSlNPYmplY3RHZXRUeXBl
ZEFycmF5Qnl0ZXNQdHIoSlNDb250ZXh0UmVmIGN0eCwgSlNPYmplY3RSZWYgb2JqZQogIEBwYXJh
bSBleGNlcHRpb24gICAgQSBwb2ludGVyIHRvIGEgSlNWYWx1ZVJlZiBpbiB3aGljaCB0byBzdG9y
ZSBhbiBleGNlcHRpb24sIGlmIGFueS4gUGFzcyBOVUxMIGlmIHlvdSBkbyBub3QgY2FyZSB0byBz
dG9yZSBhbiBleGNlcHRpb24uCiAgQHJlc3VsdCAgICAgICAgICAgICBUaGUgbGVuZ3RoIG9mIHRo
ZSBUeXBlZCBBcnJheSBvYmplY3Qgb3IgMCBpZiB0aGUgb2JqZWN0IGlzIG5vdCBhIFR5cGVkIEFy
cmF5IG9iamVjdC4KICAqLwotSlNfRVhQT1JUIHNpemVfdCBKU09iamVjdEdldFR5cGVkQXJyYXlM
ZW5ndGgoSlNDb250ZXh0UmVmIGN0eCwgSlNPYmplY3RSZWYgb2JqZWN0LCBKU1ZhbHVlUmVmKiBl
eGNlcHRpb24pIEpTQ19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMiksIGlvcygxMC4wKSk7CitK
U19FWFBPUlQgc2l6ZV90IEpTT2JqZWN0R2V0VHlwZWRBcnJheUxlbmd0aChKU0NvbnRleHRSZWYg
Y3R4LCBKU09iamVjdFJlZiBvYmplY3QsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikgSlNDX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOwogCiAvKiEKICBAZnVuY3Rpb24KQEAg
LTExNSw3ICsxMTUsNyBAQCBKU19FWFBPUlQgc2l6ZV90IEpTT2JqZWN0R2V0VHlwZWRBcnJheUxl
bmd0aChKU0NvbnRleHRSZWYgY3R4LCBKU09iamVjdFJlZiBvYmplYwogIEBwYXJhbSBleGNlcHRp
b24gICAgQSBwb2ludGVyIHRvIGEgSlNWYWx1ZVJlZiBpbiB3aGljaCB0byBzdG9yZSBhbiBleGNl
cHRpb24sIGlmIGFueS4gUGFzcyBOVUxMIGlmIHlvdSBkbyBub3QgY2FyZSB0byBzdG9yZSBhbiBl
eGNlcHRpb24uCiAgQHJlc3VsdCAgICAgICAgICAgICBUaGUgYnl0ZSBsZW5ndGggb2YgdGhlIFR5
cGVkIEFycmF5IG9iamVjdCBvciAwIGlmIHRoZSBvYmplY3QgaXMgbm90IGEgVHlwZWQgQXJyYXkg
b2JqZWN0LgogICovCi1KU19FWFBPUlQgc2l6ZV90IEpTT2JqZWN0R2V0VHlwZWRBcnJheUJ5dGVM
ZW5ndGgoSlNDb250ZXh0UmVmIGN0eCwgSlNPYmplY3RSZWYgb2JqZWN0LCBKU1ZhbHVlUmVmKiBl
eGNlcHRpb24pIEpTQ19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMiksIGlvcygxMC4wKSk7CitK
U19FWFBPUlQgc2l6ZV90IEpTT2JqZWN0R2V0VHlwZWRBcnJheUJ5dGVMZW5ndGgoSlNDb250ZXh0
UmVmIGN0eCwgSlNPYmplY3RSZWYgb2JqZWN0LCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pIEpTQ19B
UElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKIAogLyohCiAgQGZ1bmN0aW9u
CkBAIC0xMjUsNyArMTI1LDcgQEAgSlNfRVhQT1JUIHNpemVfdCBKU09iamVjdEdldFR5cGVkQXJy
YXlCeXRlTGVuZ3RoKEpTQ29udGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVmIG8KICBAcGFyYW0gZXhj
ZXB0aW9uICAgIEEgcG9pbnRlciB0byBhIEpTVmFsdWVSZWYgaW4gd2hpY2ggdG8gc3RvcmUgYW4g
ZXhjZXB0aW9uLCBpZiBhbnkuIFBhc3MgTlVMTCBpZiB5b3UgZG8gbm90IGNhcmUgdG8gc3RvcmUg
YW4gZXhjZXB0aW9uLgogIEByZXN1bHQgICAgICAgICAgICAgVGhlIGJ5dGUgb2Zmc2V0IG9mIHRo
ZSBUeXBlZCBBcnJheSBvYmplY3Qgb3IgMCBpZiB0aGUgb2JqZWN0IGlzIG5vdCBhIFR5cGVkIEFy
cmF5IG9iamVjdC4KICAqLwotSlNfRVhQT1JUIHNpemVfdCBKU09iamVjdEdldFR5cGVkQXJyYXlC
eXRlT2Zmc2V0KEpTQ29udGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVmIG9iamVjdCwgSlNWYWx1ZVJl
ZiogZXhjZXB0aW9uKSBKU0NfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3MoMTAuMCkp
OworSlNfRVhQT1JUIHNpemVfdCBKU09iamVjdEdldFR5cGVkQXJyYXlCeXRlT2Zmc2V0KEpTQ29u
dGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVmIG9iamVjdCwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKSBK
U0NfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CiAKIC8qIQogIEBmdW5j
dGlvbgpAQCAtMTM1LDcgKzEzNSw3IEBAIEpTX0VYUE9SVCBzaXplX3QgSlNPYmplY3RHZXRUeXBl
ZEFycmF5Qnl0ZU9mZnNldChKU0NvbnRleHRSZWYgY3R4LCBKU09iamVjdFJlZiBvCiAgQHBhcmFt
IGV4Y2VwdGlvbiAgICBBIHBvaW50ZXIgdG8gYSBKU1ZhbHVlUmVmIGluIHdoaWNoIHRvIHN0b3Jl
IGFuIGV4Y2VwdGlvbiwgaWYgYW55LiBQYXNzIE5VTEwgaWYgeW91IGRvIG5vdCBjYXJlIHRvIHN0
b3JlIGFuIGV4Y2VwdGlvbi4KICBAcmVzdWx0ICAgICAgICAgICAgIEEgSlNPYmplY3RSZWYgd2l0
aCBhIEpTVHlwZWRBcnJheVR5cGUgb2Yga0pTVHlwZWRBcnJheVR5cGVBcnJheUJ1ZmZlciBvciBO
VUxMIGlmIG9iamVjdCBpcyBub3QgYSBUeXBlZCBBcnJheS4KICAqLwotSlNfRVhQT1JUIEpTT2Jq
ZWN0UmVmIEpTT2JqZWN0R2V0VHlwZWRBcnJheUJ1ZmZlcihKU0NvbnRleHRSZWYgY3R4LCBKU09i
amVjdFJlZiBvYmplY3QsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikgSlNDX0FQSV9BVkFJTEFCTEUo
bWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsKK0pTX0VYUE9SVCBKU09iamVjdFJlZiBKU09iamVj
dEdldFR5cGVkQXJyYXlCdWZmZXIoSlNDb250ZXh0UmVmIGN0eCwgSlNPYmplY3RSZWYgb2JqZWN0
LCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pIEpTQ19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwg
aW9zKDEwLjApKTsKIAogLy8gLS0tLS0tLS0tLS0tLSBBcnJheSBCdWZmZXIgZnVuY3Rpb25zIC0t
LS0tLS0tLS0tLS0KIApAQCAtMTUxLDcgKzE1MSw3IEBAIEpTX0VYUE9SVCBKU09iamVjdFJlZiBK
U09iamVjdEdldFR5cGVkQXJyYXlCdWZmZXIoSlNDb250ZXh0UmVmIGN0eCwgSlNPYmplY3RSZWYK
ICBAcmVzdWx0ICAgICAgICAgICAgICAgICAgIEEgSlNPYmplY3RSZWYgQXJyYXkgQnVmZmVyIHdo
b3NlIGJhY2tpbmcgc3RvcmUgaXMgdGhlIHNhbWUgYXMgdGhlIG9uZSBwb2ludGVkIHRvIGJ5IGJ5
dGVzIG9yIE5VTEwgaWYgdGhlcmUgd2FzIGFuIGVycm9yLgogIEBkaXNjdXNzaW9uICAgICAgICAg
ICAgICAgSWYgYW4gZXhjZXB0aW9uIGlzIHRocm93biBkdXJpbmcgdGhpcyBmdW5jdGlvbiB0aGUg
Ynl0ZXNEZWFsbG9jYXRvciB3aWxsIGFsd2F5cyBiZSBjYWxsZWQuCiAgKi8KLUpTX0VYUE9SVCBK
U09iamVjdFJlZiBKU09iamVjdE1ha2VBcnJheUJ1ZmZlcldpdGhCeXRlc05vQ29weShKU0NvbnRl
eHRSZWYgY3R4LCB2b2lkKiBieXRlcywgc2l6ZV90IGJ5dGVMZW5ndGgsIEpTVHlwZWRBcnJheUJ5
dGVzRGVhbGxvY2F0b3IgYnl0ZXNEZWFsbG9jYXRvciwgdm9pZCogZGVhbGxvY2F0b3JDb250ZXh0
LCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pIEpTQ19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMiks
IGlvcygxMC4wKSk7CitKU19FWFBPUlQgSlNPYmplY3RSZWYgSlNPYmplY3RNYWtlQXJyYXlCdWZm
ZXJXaXRoQnl0ZXNOb0NvcHkoSlNDb250ZXh0UmVmIGN0eCwgdm9pZCogYnl0ZXMsIHNpemVfdCBi
eXRlTGVuZ3RoLCBKU1R5cGVkQXJyYXlCeXRlc0RlYWxsb2NhdG9yIGJ5dGVzRGVhbGxvY2F0b3Is
IHZvaWQqIGRlYWxsb2NhdG9yQ29udGV4dCwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKSBKU0NfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CiAKIC8qIQogIEBmdW5jdGlvbgpA
QCAtMTYxLDcgKzE2MSw3IEBAIEpTX0VYUE9SVCBKU09iamVjdFJlZiBKU09iamVjdE1ha2VBcnJh
eUJ1ZmZlcldpdGhCeXRlc05vQ29weShKU0NvbnRleHRSZWYgY3R4LCB2CiAgQHJlc3VsdCAgICAg
ICAgICAgQSBwb2ludGVyIHRvIHRoZSByYXcgZGF0YSBidWZmZXIgdGhhdCBzZXJ2ZXMgYXMgb2Jq
ZWN0J3MgYmFja2luZyBzdG9yZSBvciBOVUxMIGlmIG9iamVjdCBpcyBub3QgYW4gQXJyYXkgQnVm
ZmVyIG9iamVjdC4KICBAZGlzY3Vzc2lvbiAgICAgICBUaGUgcG9pbnRlciByZXR1cm5lZCBieSB0
aGlzIGZ1bmN0aW9uIGlzIHRlbXBvcmFyeSBhbmQgaXMgbm90IGd1YXJhbnRlZWQgdG8gcmVtYWlu
IHZhbGlkIGFjcm9zcyBKYXZhU2NyaXB0Q29yZSBBUEkgY2FsbHMuCiAgKi8KLUpTX0VYUE9SVCB2
b2lkKiBKU09iamVjdEdldEFycmF5QnVmZmVyQnl0ZXNQdHIoSlNDb250ZXh0UmVmIGN0eCwgSlNP
YmplY3RSZWYgb2JqZWN0LCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pIEpTQ19BUElfQVZBSUxBQkxF
KG1hY29zeCgxMC4xMiksIGlvcygxMC4wKSk7CitKU19FWFBPUlQgdm9pZCogSlNPYmplY3RHZXRB
cnJheUJ1ZmZlckJ5dGVzUHRyKEpTQ29udGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVmIG9iamVjdCwg
SlNWYWx1ZVJlZiogZXhjZXB0aW9uKSBKU0NfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlv
cygxMC4wKSk7CiAKIC8qIQogIEBmdW5jdGlvbgpAQCAtMTcxLDcgKzE3MSw3IEBAIEpTX0VYUE9S
VCB2b2lkKiBKU09iamVjdEdldEFycmF5QnVmZmVyQnl0ZXNQdHIoSlNDb250ZXh0UmVmIGN0eCwg
SlNPYmplY3RSZWYgb2JqCiAgQHBhcmFtIGV4Y2VwdGlvbiAgQSBwb2ludGVyIHRvIGEgSlNWYWx1
ZVJlZiBpbiB3aGljaCB0byBzdG9yZSBhbiBleGNlcHRpb24sIGlmIGFueS4gUGFzcyBOVUxMIGlm
IHlvdSBkbyBub3QgY2FyZSB0byBzdG9yZSBhbiBleGNlcHRpb24uCiAgQHJlc3VsdCAgICAgICAg
ICAgVGhlIG51bWJlciBvZiBieXRlcyBzdG9yZWQgaW4gdGhlIGRhdGEgb2JqZWN0LgogICovCi1K
U19FWFBPUlQgc2l6ZV90IEpTT2JqZWN0R2V0QXJyYXlCdWZmZXJCeXRlTGVuZ3RoKEpTQ29udGV4
dFJlZiBjdHgsIEpTT2JqZWN0UmVmIG9iamVjdCwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKSBKU0Nf
QVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3MoMTAuMCkpOworSlNfRVhQT1JUIHNpemVf
dCBKU09iamVjdEdldEFycmF5QnVmZmVyQnl0ZUxlbmd0aChKU0NvbnRleHRSZWYgY3R4LCBKU09i
amVjdFJlZiBvYmplY3QsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikgSlNDX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOwogCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU1ZhbHVlLmgKaW5kZXggYWEzYWU1MWMwOTZhZGQ2NjU0ZTRiYzI0YzFk
OGZjMTViYjhiYjc3Yy4uOGZlNTI5MWFhYmY4OTYwODg3Y2YyYzczOGFkZWJmOTU0MTkwZjY4NyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlLmgKQEAgLTM0OSwxMyArMzQ5LDEzIEBAIE5T
X0NMQVNTX0FWQUlMQUJMRSgxMF85LCA3XzApCiBAcHJvcGVydHkKIEBhYnN0cmFjdCBDaGVjayBp
ZiBhIEpTVmFsdWUgaXMgYW4gYXJyYXkuCiAqLyAKLUBwcm9wZXJ0eSAocmVhZG9ubHkpIEJPT0wg
aXNBcnJheSBKU0NfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CitAcHJv
cGVydHkgKHJlYWRvbmx5KSBCT09MIGlzQXJyYXkgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAu
MTEpLCBpb3MoOS4wKSk7CiAKIC8qIQogQHByb3BlcnR5CiBAYWJzdHJhY3QgQ2hlY2sgaWYgYSBK
U1ZhbHVlIGlzIGEgZGF0ZS4KICovIAotQHByb3BlcnR5IChyZWFkb25seSkgQk9PTCBpc0RhdGUg
SlNDX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOworQHByb3BlcnR5IChy
ZWFkb25seSkgQk9PTCBpc0RhdGUgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTEpLCBpb3Mo
OS4wKSk7CiAKIC8qIQogQG1ldGhvZApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS9KU1ZhbHVlUHJpdmF0ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVl
UHJpdmF0ZS5oCmluZGV4IDhhZjI5ZGE3ODFhZDk5Mjg4NTExNDg3NzM4YzRhMmIzMDNiY2IzYTgu
LmIzMTU3NGYyOGVjYzE3MmM4MWZlNjE3NWQ5ODM5Njc1YmE5YTk0ZjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL0pTVmFsdWVQcml2YXRlLmgKQEAgLTQyLDcgKzQyLDcgQEAgdHlwZWRl
ZiBpZCBKU1ZhbHVlUHJvcGVydHk7CiAgQHBhcmFtIGNvbnRleHQgVGhlIEpTQ29udGV4dCB0byB3
aGljaCB0aGUgcmVzdWx0aW5nIEpTVmFsdWUgYmVsb25ncy4KICBAcmVzdWx0IFRoZSBKU1ZhbHVl
IHJlcHJlc2VudGluZyBhIHVuaXF1ZSBKYXZhU2NyaXB0IHZhbHVlIHdpdGggdHlwZSBzeW1ib2wu
CiAgKi8KLSsgKEpTVmFsdWUgKil2YWx1ZVdpdGhOZXdTeW1ib2xGcm9tRGVzY3JpcHRpb246KE5T
U3RyaW5nICopZGVzY3JpcHRpb24gaW5Db250ZXh0OihKU0NvbnRleHQgKiljb250ZXh0IEpTQ19B
UElfQVZBSUxBQkxFKG1hY29zeChKU0NfTUFDX1RCQSksIGlvcyhKU0NfSU9TX1RCQSkpOworKyAo
SlNWYWx1ZSAqKXZhbHVlV2l0aE5ld1N5bWJvbEZyb21EZXNjcmlwdGlvbjooTlNTdHJpbmcgKilk
ZXNjcmlwdGlvbiBpbkNvbnRleHQ6KEpTQ29udGV4dCAqKWNvbnRleHQgSlNDX0FQSV9BVkFJTEFC
TEUobWFjb3MoSlNDX01BQ19UQkEpLCBpb3MoSlNDX0lPU19UQkEpKTsKIAogLyohCiAgQG1ldGhv
ZApAQCAtODksNyArODksNyBAQCB0eXBlZGVmIGlkIEpTVmFsdWVQcm9wZXJ0eTsKICBAcHJvcGVy
dHkKICBAYWJzdHJhY3QgQ2hlY2sgaWYgYSBKU1ZhbHVlIGlzIGEgc3ltYm9sLgogICovCi1AcHJv
cGVydHkgKHJlYWRvbmx5KSBCT09MIGlzU3ltYm9sIEpTQ19BUElfQVZBSUxBQkxFKG1hY29zeChK
U0NfTUFDX1RCQSksIGlvcyhKU0NfSU9TX1RCQSkpOworQHByb3BlcnR5IChyZWFkb25seSkgQk9P
TCBpc1N5bWJvbCBKU0NfQVBJX0FWQUlMQUJMRShtYWNvcyhKU0NfTUFDX1RCQSksIGlvcyhKU0Nf
SU9TX1RCQSkpOwogCiAvKiEKICBAbWV0aG9kCkBAIC0xMDYsNyArMTA2LDcgQEAgdHlwZWRlZiBp
ZCBKU1ZhbHVlUHJvcGVydHk7CiAgYXMgaWYgaXQgd2VyZSBpbiBhbnkgb3RoZXIgY2FsbGJhY2ss
IGV4Y2VwdCBjYWxsZWVGdW5jdGlvbiB3aWxsIGJlIDxjb2RlPm5pbDwvY29kZT4uIFRoaXMgYWxz
byBtZWFucwogIG1lYW5zIHRoZSBuZXcgcHJvbWlzZSBvYmplY3QgbWF5IGJlIGFjY2Vzc2VkIHZp
YSA8Y29kZT5bY29udGV4dCB0aGlzVmFsdWVdPC9jb2RlPi4KICAqLwotKyAoSlNWYWx1ZSAqKXZh
bHVlV2l0aE5ld1Byb21pc2VJbkNvbnRleHQ6KEpTQ29udGV4dCAqKWNvbnRleHQgZnJvbUV4ZWN1
dG9yOih2b2lkICheKShKU1ZhbHVlICpyZXNvbHZlLCBKU1ZhbHVlICpyZWplY3QpKWNhbGxiYWNr
IEpTQ19BUElfQVZBSUxBQkxFKG1hY29zeChKU0NfTUFDX1RCQSksIGlvcyhKU0NfSU9TX1RCQSkp
OworKyAoSlNWYWx1ZSAqKXZhbHVlV2l0aE5ld1Byb21pc2VJbkNvbnRleHQ6KEpTQ29udGV4dCAq
KWNvbnRleHQgZnJvbUV4ZWN1dG9yOih2b2lkICheKShKU1ZhbHVlICpyZXNvbHZlLCBKU1ZhbHVl
ICpyZWplY3QpKWNhbGxiYWNrIEpTQ19BUElfQVZBSUxBQkxFKG1hY29zKEpTQ19NQUNfVEJBKSwg
aW9zKEpTQ19JT1NfVEJBKSk7CiAKIC8qIQogIEBtZXRob2QKQEAgLTExNiw3ICsxMTYsNyBAQCB0
eXBlZGVmIGlkIEpTVmFsdWVQcm9wZXJ0eTsKICBAcmVzdWx0IFRoZSBKU1ZhbHVlIHJlcHJlc2Vu
dGluZyBhIG5ldyBwcm9taXNlIEphdmFTY3JpcHQgb2JqZWN0LgogIEBkaXNjdXNzaW9uIFRoaXMg
bWV0aG9kIGlzIGVxdWl2YWxlbnQgdG8gY2FsbGluZyA8Y29kZT5bSlNWYWx1ZSB2YWx1ZVdpdGhO
ZXdQcm9taXNlRnJvbUV4ZWN1dG9yOl4oSlNWYWx1ZSAqcmVzb2x2ZSwgSlNWYWx1ZSAqcmVqZWN0
KSB7IFtyZXNvbHZlIGNhbGxXaXRoQXJndW1lbnRzOkBbcmVzdWx0XV07IH0gaW5Db250ZXh0OmNv
bnRleHRdPC9jb2RlPgogICovCi0rIChKU1ZhbHVlICopdmFsdWVXaXRoTmV3UHJvbWlzZVJlc29s
dmVkV2l0aFJlc3VsdDooaWQpcmVzdWx0IGluQ29udGV4dDooSlNDb250ZXh0ICopY29udGV4dCBK
U0NfQVBJX0FWQUlMQUJMRShtYWNvc3goSlNDX01BQ19UQkEpLCBpb3MoSlNDX0lPU19UQkEpKTsK
KysgKEpTVmFsdWUgKil2YWx1ZVdpdGhOZXdQcm9taXNlUmVzb2x2ZWRXaXRoUmVzdWx0OihpZCly
ZXN1bHQgaW5Db250ZXh0OihKU0NvbnRleHQgKiljb250ZXh0IEpTQ19BUElfQVZBSUxBQkxFKG1h
Y29zKEpTQ19NQUNfVEJBKSwgaW9zKEpTQ19JT1NfVEJBKSk7CiAKIC8qIQogIEBtZXRob2QKQEAg
LTEyNiw3ICsxMjYsNyBAQCB0eXBlZGVmIGlkIEpTVmFsdWVQcm9wZXJ0eTsKICBAcmVzdWx0IFRo
ZSBKU1ZhbHVlIHJlcHJlc2VudGluZyBhIG5ldyBwcm9taXNlIEphdmFTY3JpcHQgb2JqZWN0Lgog
IEBkaXNjdXNzaW9uIFRoaXMgbWV0aG9kIGlzIGVxdWl2YWxlbnQgdG8gY2FsbGluZyA8Y29kZT5b
SlNWYWx1ZSB2YWx1ZVdpdGhOZXdQcm9taXNlRnJvbUV4ZWN1dG9yOl4oSlNWYWx1ZSAqcmVzb2x2
ZSwgSlNWYWx1ZSAqcmVqZWN0KSB7IFtyZWplY3QgY2FsbFdpdGhBcmd1bWVudHM6QFtyZWFzb25d
XTsgfSBpbkNvbnRleHQ6Y29udGV4dF08L2NvZGU+CiAgKi8KLSsgKEpTVmFsdWUgKil2YWx1ZVdp
dGhOZXdQcm9taXNlUmVqZWN0ZWRXaXRoUmVhc29uOihpZClyZWFzb24gaW5Db250ZXh0OihKU0Nv
bnRleHQgKiljb250ZXh0IEpTQ19BUElfQVZBSUxBQkxFKG1hY29zeChKU0NfTUFDX1RCQSksIGlv
cyhKU0NfSU9TX1RCQSkpOworKyAoSlNWYWx1ZSAqKXZhbHVlV2l0aE5ld1Byb21pc2VSZWplY3Rl
ZFdpdGhSZWFzb246KGlkKXJlYXNvbiBpbkNvbnRleHQ6KEpTQ29udGV4dCAqKWNvbnRleHQgSlND
X0FQSV9BVkFJTEFCTEUobWFjb3MoSlNDX01BQ19UQkEpLCBpb3MoSlNDX0lPU19UQkEpKTsKIAog
QGVuZAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWVSZWYu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZVJlZi5oCmluZGV4IGM3OGE0NmQ5
YTJlNDcyYWU1YjFlYzAxOGJhZDUzZTlmNTBhMjZiMWIuLmYwOWNjN2EzYTM3YmFhOTViYzk5MDZi
YzJjZjk3OGI4NTY5MDZkMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkv
SlNWYWx1ZVJlZi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZVJlZi5o
CkBAIC01MSw3ICs1MSw3IEBAIHR5cGVkZWYgZW51bSB7CiAgICAga0pTVHlwZU51bWJlciwKICAg
ICBrSlNUeXBlU3RyaW5nLAogICAgIGtKU1R5cGVPYmplY3QsCi0gICAga0pTVHlwZVN5bWJvbCBK
U0NfQVBJX0FWQUlMQUJMRShtYWNvc3goSlNDX01BQ19UQkEpLCBpb3MoSlNDX0lPU19UQkEpKQor
ICAgIGtKU1R5cGVTeW1ib2wgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3MoSlNDX01BQ19UQkEpLCBp
b3MoSlNDX0lPU19UQkEpKQogfSBKU1R5cGU7CiAKIC8qIQpAQCAtODIsNyArODIsNyBAQCB0eXBl
ZGVmIGVudW0gewogICAgIGtKU1R5cGVkQXJyYXlUeXBlRmxvYXQ2NEFycmF5LAogICAgIGtKU1R5
cGVkQXJyYXlUeXBlQXJyYXlCdWZmZXIsCiAgICAga0pTVHlwZWRBcnJheVR5cGVOb25lLAotfSBK
U1R5cGVkQXJyYXlUeXBlIEpTQ19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMiksIGlvcygxMC4w
KSk7Cit9IEpTVHlwZWRBcnJheVR5cGUgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBp
b3MoMTAuMCkpOwogCiAjaWZkZWYgX19jcGx1c3BsdXMKIGV4dGVybiAiQyIgewpAQCAtMTY5LDcg
KzE2OSw3IEBAIEpTX0VYUE9SVCBib29sIEpTVmFsdWVJc09iamVjdE9mQ2xhc3MoSlNDb250ZXh0
UmVmIGN0eCwgSlNWYWx1ZVJlZiB2YWx1ZSwgSlNDbGFzCiBAcGFyYW0gdmFsdWUgICAgVGhlIEpT
VmFsdWUgdG8gdGVzdC4KIEByZXN1bHQgICAgICAgICB0cnVlIGlmIHZhbHVlIGlzIGFuIGFycmF5
LCBvdGhlcndpc2UgZmFsc2UuCiAqLwotSlNfRVhQT1JUIGJvb2wgSlNWYWx1ZUlzQXJyYXkoSlND
b250ZXh0UmVmIGN0eCwgSlNWYWx1ZVJlZiB2YWx1ZSkgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3N4
KDEwLjExKSwgaW9zKDkuMCkpOworSlNfRVhQT1JUIGJvb2wgSlNWYWx1ZUlzQXJyYXkoSlNDb250
ZXh0UmVmIGN0eCwgSlNWYWx1ZVJlZiB2YWx1ZSkgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAu
MTEpLCBpb3MoOS4wKSk7CiAKIC8qIQogQGZ1bmN0aW9uCkBAIC0xNzgsNyArMTc4LDcgQEAgSlNf
RVhQT1JUIGJvb2wgSlNWYWx1ZUlzQXJyYXkoSlNDb250ZXh0UmVmIGN0eCwgSlNWYWx1ZVJlZiB2
YWx1ZSkgSlNDX0FQSV9BVkFJTEEKIEBwYXJhbSB2YWx1ZSAgICBUaGUgSlNWYWx1ZSB0byB0ZXN0
LgogQHJlc3VsdCAgICAgICAgIHRydWUgaWYgdmFsdWUgaXMgYSBkYXRlLCBvdGhlcndpc2UgZmFs
c2UuCiAqLwotSlNfRVhQT1JUIGJvb2wgSlNWYWx1ZUlzRGF0ZShKU0NvbnRleHRSZWYgY3R4LCBK
U1ZhbHVlUmVmIHZhbHVlKSBKU0NfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4w
KSk7CitKU19FWFBPUlQgYm9vbCBKU1ZhbHVlSXNEYXRlKEpTQ29udGV4dFJlZiBjdHgsIEpTVmFs
dWVSZWYgdmFsdWUpIEpTQ19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjExKSwgaW9zKDkuMCkpOwog
CiAvKiEKIEBmdW5jdGlvbgpAQCAtMTg4LDcgKzE4OCw3IEBAIEpTX0VYUE9SVCBib29sIEpTVmFs
dWVJc0RhdGUoSlNDb250ZXh0UmVmIGN0eCwgSlNWYWx1ZVJlZiB2YWx1ZSkgSlNDX0FQSV9BVkFJ
TEFCCiBAcGFyYW0gZXhjZXB0aW9uICAgIEEgcG9pbnRlciB0byBhIEpTVmFsdWVSZWYgaW4gd2hp
Y2ggdG8gc3RvcmUgYW4gZXhjZXB0aW9uLCBpZiBhbnkuIFBhc3MgTlVMTCBpZiB5b3UgZG8gbm90
IGNhcmUgdG8gc3RvcmUgYW4gZXhjZXB0aW9uLgogQHJlc3VsdCAgICAgICAgICAgICBBIHZhbHVl
IG9mIHR5cGUgSlNUeXBlZEFycmF5VHlwZSB0aGF0IGlkZW50aWZpZXMgdmFsdWUncyBUeXBlZCBB
cnJheSB0eXBlLCBvciBrSlNUeXBlZEFycmF5VHlwZU5vbmUgaWYgdGhlIHZhbHVlIGlzIG5vdCBh
IFR5cGVkIEFycmF5IG9iamVjdC4KICAqLwotSlNfRVhQT1JUIEpTVHlwZWRBcnJheVR5cGUgSlNW
YWx1ZUdldFR5cGVkQXJyYXlUeXBlKEpTQ29udGV4dFJlZiBjdHgsIEpTVmFsdWVSZWYgdmFsdWUs
IEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwg
aW9zKDEwLjApKTsKK0pTX0VYUE9SVCBKU1R5cGVkQXJyYXlUeXBlIEpTVmFsdWVHZXRUeXBlZEFy
cmF5VHlwZShKU0NvbnRleHRSZWYgY3R4LCBKU1ZhbHVlUmVmIHZhbHVlLCBKU1ZhbHVlUmVmKiBl
eGNlcHRpb24pIEpTQ19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKIAog
LyogQ29tcGFyaW5nIHZhbHVlcyAqLwogCkBAIC0yNzksNyArMjc5LDcgQEAgSlNfRVhQT1JUIEpT
VmFsdWVSZWYgSlNWYWx1ZU1ha2VTdHJpbmcoSlNDb250ZXh0UmVmIGN0eCwgSlNTdHJpbmdSZWYg
c3RyaW5nKTsKICBAcGFyYW0gc3RyaW5nICAgVGhlIEpTU3RyaW5nIGNvbnRhaW5pbmcgdGhlIEpT
T04gc3RyaW5nIHRvIGJlIHBhcnNlZC4KICBAcmVzdWx0ICAgICAgICAgQSBKU1ZhbHVlIGNvbnRh
aW5pbmcgdGhlIHBhcnNlZCB2YWx1ZSwgb3IgTlVMTCBpZiB0aGUgaW5wdXQgaXMgaW52YWxpZC4K
ICAqLwotSlNfRVhQT1JUIEpTVmFsdWVSZWYgSlNWYWx1ZU1ha2VGcm9tSlNPTlN0cmluZyhKU0Nv
bnRleHRSZWYgY3R4LCBKU1N0cmluZ1JlZiBzdHJpbmcpIEpTQ19BUElfQVZBSUxBQkxFKG1hY29z
eCgxMC43KSwgaW9zKDcuMCkpOworSlNfRVhQT1JUIEpTVmFsdWVSZWYgSlNWYWx1ZU1ha2VGcm9t
SlNPTlN0cmluZyhKU0NvbnRleHRSZWYgY3R4LCBKU1N0cmluZ1JlZiBzdHJpbmcpIEpTQ19BUElf
QVZBSUxBQkxFKG1hY29zKDEwLjcpLCBpb3MoNy4wKSk7CiAKIC8qIQogIEBmdW5jdGlvbgpAQCAt
MjkwLDcgKzI5MCw3IEBAIEpTX0VYUE9SVCBKU1ZhbHVlUmVmIEpTVmFsdWVNYWtlRnJvbUpTT05T
dHJpbmcoSlNDb250ZXh0UmVmIGN0eCwgSlNTdHJpbmdSZWYgc3RyCiAgQHBhcmFtIGV4Y2VwdGlv
biBBIHBvaW50ZXIgdG8gYSBKU1ZhbHVlUmVmIGluIHdoaWNoIHRvIHN0b3JlIGFuIGV4Y2VwdGlv
biwgaWYgYW55LiBQYXNzIE5VTEwgaWYgeW91IGRvIG5vdCBjYXJlIHRvIHN0b3JlIGFuIGV4Y2Vw
dGlvbi4KICBAcmVzdWx0ICAgICAgICAgQSBKU1N0cmluZyB3aXRoIHRoZSByZXN1bHQgb2Ygc2Vy
aWFsaXphdGlvbiwgb3IgTlVMTCBpZiBhbiBleGNlcHRpb24gaXMgdGhyb3duLgogICovCi1KU19F
WFBPUlQgSlNTdHJpbmdSZWYgSlNWYWx1ZUNyZWF0ZUpTT05TdHJpbmcoSlNDb250ZXh0UmVmIGN0
eCwgSlNWYWx1ZVJlZiB2YWx1ZSwgdW5zaWduZWQgaW5kZW50LCBKU1ZhbHVlUmVmKiBleGNlcHRp
b24pIEpTQ19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC43KSwgaW9zKDcuMCkpOworSlNfRVhQT1JU
IEpTU3RyaW5nUmVmIEpTVmFsdWVDcmVhdGVKU09OU3RyaW5nKEpTQ29udGV4dFJlZiBjdHgsIEpT
VmFsdWVSZWYgdmFsdWUsIHVuc2lnbmVkIGluZGVudCwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKSBK
U0NfQVBJX0FWQUlMQUJMRShtYWNvcygxMC43KSwgaW9zKDcuMCkpOwogCiAvKiBDb252ZXJ0aW5n
IHRvIHByaW1pdGl2ZSB2YWx1ZXMgKi8KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9KU1ZpcnR1YWxNYWNoaW5lUHJpdmF0ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS9KU1ZpcnR1YWxNYWNoaW5lUHJpdmF0ZS5oCmluZGV4IGM2NjgzNDViNmU3YzIzZmFjY2Y0
ZTIxM2MxY2FkODMxMzRhYjYyOTQuLjk1MGFmYzczZjg3NWMyZGQ5NTZiOTY3ODMxYWI1MDg5MWEw
ZWIzNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWaXJ0dWFsTWFj
aGluZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmlydHVhbE1h
Y2hpbmVQcml2YXRlLmgKQEAgLTQzLDcgKzQzLDcgQEAKICBBUEkgbWF5IG5vdCBzeW5jaHJvbm91
c2x5IGZyZWUgbWVtb3J5LgogKi8KIAotLSAodm9pZClzaHJpbmtGb290cHJpbnRXaGVuSWRsZSBK
U0NfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTQpLCBpb3MoMTIuMCkpOworLSAodm9pZClzaHJp
bmtGb290cHJpbnRXaGVuSWRsZSBKU0NfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygx
Mi4wKSk7CiAKICNpZiBFTkFCTEUoREZHX0pJVCkKIApAQCAtNTgsNyArNTgsNyBAQAogQHBhcmFt
IG51bWJlck9mVGhyZWFkcyBUaGUgbnVtYmVyIG9mIHRocmVhZHMgdGhlIERGRyBjb21waWxlciBz
aG91bGQgdXNlIGdvaW5nIGZvcndhcmQKIEByZXN1bHQgVGhlIHByZXZpb3VzIG51bWJlciBvZiB0
aHJlYWRzIGJlaW5nIHVzZWQgYnkgdGhlIERGRyBjb21waWxlcgogKi8KLSsgKE5TVUludGVnZXIp
c2V0TnVtYmVyT2ZERkdDb21waWxlclRocmVhZHM6KE5TVUludGVnZXIpbnVtYmVyT2ZUaHJlYWRz
IEpTQ19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xNCksIGlvcygxMi4wKSk7CisrIChOU1VJbnRl
Z2VyKXNldE51bWJlck9mREZHQ29tcGlsZXJUaHJlYWRzOihOU1VJbnRlZ2VyKW51bWJlck9mVGhy
ZWFkcyBKU0NfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4wKSk7CiAKIC8qIQog
QG1ldGhvZApAQCAtNzEsNyArNzEsNyBAQAogQHBhcmFtIG51bWJlck9mVGhyZWFkcyBUaGUgbnVt
YmVyIG9mIHRocmVhZHMgdGhlIEZUTCBjb21waWxlciBzaG91bGQgdXNlIGdvaW5nIGZvcndhcmQK
IEByZXN1bHQgVGhlIHByZXZpb3VzIG51bWJlciBvZiB0aHJlYWRzIGJlaW5nIHVzZWQgYnkgdGhl
IEZUTCBjb21waWxlcgogKi8KLSsgKE5TVUludGVnZXIpc2V0TnVtYmVyT2ZGVExDb21waWxlclRo
cmVhZHM6KE5TVUludGVnZXIpbnVtYmVyT2ZUaHJlYWRzIEpTQ19BUElfQVZBSUxBQkxFKG1hY29z
eCgxMC4xNCksIGlvcygxMi4wKSk7CisrIChOU1VJbnRlZ2VyKXNldE51bWJlck9mRlRMQ29tcGls
ZXJUaHJlYWRzOihOU1VJbnRlZ2VyKW51bWJlck9mVGhyZWFkcyBKU0NfQVBJX0FWQUlMQUJMRSht
YWNvcygxMC4xNCksIGlvcygxMi4wKSk7CiAKIC8qIQogQG1ldGhvZApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvTlNUb3VjaEJhclNQSS5oIGIvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9zcGkvY29jb2EvTlNUb3VjaEJhclNQSS5oCmluZGV4IDJhY2FlYWE3ZWE3
ODYxNWJjMzM4YzBhOTNmMjEwNDZiY2JiNWU5ZGMuLmZiYjM1ZDFkNzRhMjZjZWZlOGNiZTI5YWZm
YmE5MDJlYTEwZTg2MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2Nv
Y29hL05TVG91Y2hCYXJTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2Nv
YS9OU1RvdWNoQmFyU1BJLmgKQEAgLTY0LDEwICs2NCwxMCBAQCBOU19BU1NVTUVfTk9OTlVMTF9C
RUdJTgogCiAjZW5kaWYgLy8gIVVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAKLUFQUEtJVF9FWFRF
Uk4gTlNOb3RpZmljYXRpb25OYW1lIGNvbnN0IE5TVG91Y2hCYXJXaWxsRW50ZXJDdXN0b21pemF0
aW9uIEFQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyLjIpKTsKLUFQUEtJVF9FWFRFUk4gTlNOb3Rp
ZmljYXRpb25OYW1lIGNvbnN0IE5TVG91Y2hCYXJEaWRFbnRlckN1c3RvbWl6YXRpb24gQVBJX0FW
QUlMQUJMRShtYWNvc3goMTAuMTIuMikpOwotQVBQS0lUX0VYVEVSTiBOU05vdGlmaWNhdGlvbk5h
bWUgY29uc3QgTlNUb3VjaEJhcldpbGxFeGl0Q3VzdG9taXphdGlvbiBBUElfQVZBSUxBQkxFKG1h
Y29zeCgxMC4xMi4yKSk7Ci1BUFBLSVRfRVhURVJOIE5TTm90aWZpY2F0aW9uTmFtZSBjb25zdCBO
U1RvdWNoQmFyRGlkRXhpdEN1c3RvbWl6YXRpb24gQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIu
MikpOworQVBQS0lUX0VYVEVSTiBOU05vdGlmaWNhdGlvbk5hbWUgY29uc3QgTlNUb3VjaEJhcldp
bGxFbnRlckN1c3RvbWl6YXRpb24gQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMi4yKSk7CitBUFBL
SVRfRVhURVJOIE5TTm90aWZpY2F0aW9uTmFtZSBjb25zdCBOU1RvdWNoQmFyRGlkRW50ZXJDdXN0
b21pemF0aW9uIEFQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIuMikpOworQVBQS0lUX0VYVEVSTiBO
U05vdGlmaWNhdGlvbk5hbWUgY29uc3QgTlNUb3VjaEJhcldpbGxFeGl0Q3VzdG9taXphdGlvbiBB
UElfQVZBSUxBQkxFKG1hY29zKDEwLjEyLjIpKTsKK0FQUEtJVF9FWFRFUk4gTlNOb3RpZmljYXRp
b25OYW1lIGNvbnN0IE5TVG91Y2hCYXJEaWRFeGl0Q3VzdG9taXphdGlvbiBBUElfQVZBSUxBQkxF
KG1hY29zKDEwLjEyLjIpKTsKIAogTlNfQVNTVU1FX05PTk5VTExfRU5ECiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dEhhbmRsZS5o
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0SGFuZGxl
LmgKaW5kZXggNDQ4NGNkMzdkY2JiNzk2NWYxYmZhOTMxMDBjNTIwNDJkZjVjODYwOS4uZmNlMzJm
NTE3MTIzY2MzZGI3MjYyZmQwY2QxNGFkOTRmYTRjOGIwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0SGFuZGxlLmgKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0SGFuZGxlLmgKQEAg
LTI1LDYgKzI1LDYgQEAKIAogI2ltcG9ydCA8V2ViS2l0L1dLRm91bmRhdGlvbi5oPgogCi1XS19D
TEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCitXS19DTEFTU19BVkFJTEFC
TEUobWFjb3MoMTAuMTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2UgV0tCcm93c2luZ0NvbnRleHRI
YW5kbGUgOiBOU09iamVjdCA8TlNTZWN1cmVDb2Rpbmc+CiBAZW5kCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvV0tEcmFnRGVzdGluYXRpb25BY3Rpb24uaCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9XS0RyYWdEZXN0aW5hdGlvbkFjdGlvbi5oCmlu
ZGV4IDFkZGE0YTljM2I0ODE5ZWE4ZDA5OTA4ZTE0ZWI5MzQ3YTA5NDQxZjMuLjMxZmExNTQ3Mjk3
ZDE4NmM0NzgxYjlhMDhlMDNkNDFiNDhhNWUxOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL0FQSS9Db2NvYS9XS0RyYWdEZXN0aW5hdGlvbkFjdGlvbi5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9XS0RyYWdEZXN0aW5hdGlvbkFjdGlvbi5oCkBAIC0zMyw0
ICszMyw0IEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBXS0RyYWdEZXN0aW5hdGlv
bkFjdGlvbikgewogICAgIFdLRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uRWRpdCAgICA9IDIsCiAgICAg
V0tEcmFnRGVzdGluYXRpb25BY3Rpb25Mb2FkICAgID0gNCwKICAgICBXS0RyYWdEZXN0aW5hdGlv
bkFjdGlvbkFueSAgICAgPSBOU1VJbnRlZ2VyTWF4Ci19IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KDEwLjEzKSwgaW9zKDExLjApKTsKK30gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlv
cygxMS4wKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvV0tN
YWluLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvV0tNYWluLmgKaW5kZXggYWNj
ZjIzMjFmNmMxZGYxODgyMTUwMjRkNGQ1N2VkMTg1NTdkY2IzMy4uNzc2Njg5MjNlMmM2YTAzODU1
MGQ2ZjQxZTgwZmUyM2NiZWVmNzA0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
QVBJL0NvY29hL1dLTWFpbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9X
S01haW4uaApAQCAtMzIsOCArMzIsOCBAQAogZXh0ZXJuICJDIiB7CiAjZW5kaWYKIAotV0tfRVhQ
T1JUIGludCBXS1hQQ1NlcnZpY2VNYWluKGludCBhcmdjLCBjb25zdCBjaGFyKiogYXJndikgV0tf
QVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci1XS19F
WFBPUlQgaW50IFdLRGFlbW9uTWFpbihpbnQgYXJnYywgY29uc3QgY2hhcioqIGFyZ3YpIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworV0tfRVhQ
T1JUIGludCBXS1hQQ1NlcnZpY2VNYWluKGludCBhcmdjLCBjb25zdCBjaGFyKiogYXJndikgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK1dLX0VY
UE9SVCBpbnQgV0tEYWVtb25NYWluKGludCBhcmdjLCBjb25zdCBjaGFyKiogYXJndikgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogI2lmZGVm
IF9fY3BsdXNwbHVzCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29j
b2EvX1dLRnJhbWVIYW5kbGUuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9fV0tG
cmFtZUhhbmRsZS5oCmluZGV4IGU4NzQ5ZGI0NzM0YWUxZTE1OTkyMmQzYWIyNGIxNjkyODkyN2Nk
OGEuLjcyZWZlNzIzNDUwNmRkZjlhZDk3NTM3ZTcwYWQzYmQ3ZjY4YjU3MjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9fV0tGcmFtZUhhbmRsZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9fV0tGcmFtZUhhbmRsZS5oCkBAIC0yNyw3ICsy
Nyw3IEBACiAKICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgogCi1XS19DTEFTU19B
VkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCitXS19DTEFTU19BVkFJTEFCTEUobWFj
b3MoMTAuMTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2UgX1dLRnJhbWVIYW5kbGUgOiBOU09iamVj
dCA8TlNDb3B5aW5nLCBOU1NlY3VyZUNvZGluZz4KIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL19XS0hpdFRlc3RSZXN1bHQuaCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0FQSS9Db2NvYS9fV0tIaXRUZXN0UmVzdWx0LmgKaW5kZXggMDNjMWI2YjgyMDI0
ZTJjOGNhM2NiZmM4MGJjNzI3MGQ5N2MwODU1Mi4uNmIxOTBjNjliOWEwODBhZWE4MmUzZTA4NTVj
NTRmNWMwMWJmMzllNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29h
L19XS0hpdFRlc3RSZXN1bHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2Ev
X1dLSGl0VGVzdFJlc3VsdC5oCkBAIC0yOSw3ICsyOSw3IEBACiAKICNpbXBvcnQgPEZvdW5kYXRp
b24vRm91bmRhdGlvbi5oPgogCi1XS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSkKK1dL
X0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4xMikpCiBAaW50ZXJmYWNlIF9XS0hpdFRlc3RSZXN1
bHQgOiBOU09iamVjdCA8TlNDb3B5aW5nPgogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9u
bHksIGNvcHkpIE5TVVJMICphYnNvbHV0ZUltYWdlVVJMOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvQVBJL0NvY29hL19XS05TV2luZG93RXh0cmFzLmggYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9BUEkvQ29jb2EvX1dLTlNXaW5kb3dFeHRyYXMuaAppbmRleCBlZTRkODNhYmQ4MjRi
OWQzM2JlNjhiODMzMzNmZDUzMTJkMTM1YzE3Li43NzY4ZTAyZDFkMzY3OWUyYjk2NDU1ODA3YjFj
N2U1M2Q4NzQxMDgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2Ev
X1dLTlNXaW5kb3dFeHRyYXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2Ev
X1dLTlNXaW5kb3dFeHRyYXMuaApAQCAtMjksNyArMjksNyBAQAogCiBAaW50ZXJmYWNlIE5TV2lu
ZG93IChXS0V4dHJhcykKIAotLSAoQk9PTClfd2ViX2lzV2ViSW5zcGVjdG9yV2luZG93IFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpKTsKKy0gKEJPT0wpX3dlYl9pc1dlYkluc3BlY3Rv
cldpbmRvdyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKIAogQGVuZAogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvX1dLUmVtb3RlT2JqZWN0SW50
ZXJmYWNlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvX1dLUmVtb3RlT2JqZWN0
SW50ZXJmYWNlLmgKaW5kZXggNjljNTE2YzA4MzRmYTk3MmQyMWRiYTE1YWU0OTcxNGQxNTJkOTg2
Yy4uMThmYjMyNmExNzE3NmIyMjczZDI4NDQzMWQwMDIxM2MxZjkwYTVlMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL19XS1JlbW90ZU9iamVjdEludGVyZmFjZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9fV0tSZW1vdGVPYmplY3RJbnRl
cmZhY2UuaApAQCAtMjcsNyArMjcsNyBAQAogCiAjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRp
b24uaD4KIAotV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQorV0tf
Q0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIF9XS1Jl
bW90ZU9iamVjdEludGVyZmFjZSA6IE5TT2JqZWN0CiAKICsgKGluc3RhbmNldHlwZSlyZW1vdGVP
YmplY3RJbnRlcmZhY2VXaXRoUHJvdG9jb2w6KFByb3RvY29sICopcHJvdG9jb2w7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvX1dLUmVtb3RlT2JqZWN0UmVnaXN0
cnkuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9fV0tSZW1vdGVPYmplY3RSZWdp
c3RyeS5oCmluZGV4IDE5MTI0ZWI1MzI2MGQ0ZjU4Y2I0MGJkZjM1MjhlN2NmYzczYmJiZjkuLjRi
MGRlZTU0ZmE3MzI1NmMwZjg4ZTY1ZmUzMDJlZmU4MjExNWUyNWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9fV0tSZW1vdGVPYmplY3RSZWdpc3RyeS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9fV0tSZW1vdGVPYmplY3RSZWdpc3RyeS5o
CkBAIC0yOSw3ICsyOSw3IEBACiAKIEBjbGFzcyBfV0tSZW1vdGVPYmplY3RJbnRlcmZhY2U7CiAK
LVdLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKK1dLX0NMQVNTX0FW
QUlMQUJMRShtYWNvcygxMC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBfV0tSZW1vdGVPYmpl
Y3RSZWdpc3RyeSA6IE5TT2JqZWN0CiAKIC0gKHZvaWQpcmVnaXN0ZXJFeHBvcnRlZE9iamVjdDoo
aWQpb2JqZWN0IGludGVyZmFjZTooX1dLUmVtb3RlT2JqZWN0SW50ZXJmYWNlICopaW50ZXJmYWNl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL19XS1JlbmRlcmlu
Z1Byb2dyZXNzRXZlbnRzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvX1dLUmVu
ZGVyaW5nUHJvZ3Jlc3NFdmVudHMuaAppbmRleCA5YTYwNTE1OTZhNGFlZWQ1MGNkOGQ2MDljOTRk
NDJmMzY5NmFiYWYwLi44MWE0NjNkYzYwOThjODljNWNhMGFhNmZmMzhjMjNmMzI1OWNiZWUzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvX1dLUmVuZGVyaW5nUHJv
Z3Jlc3NFdmVudHMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvX1dLUmVu
ZGVyaW5nUHJvZ3Jlc3NFdmVudHMuaApAQCAtMjcsMTIgKzI3LDEyIEBACiAKIHR5cGVkZWYgTlNf
T1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50cykgewogICAgIF9X
S1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRGaXJzdExheW91dCA9IDEgPDwgMCwKLSAgICBfV0tSZW5k
ZXJpbmdQcm9ncmVzc0V2ZW50Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0IFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpID0gMSA8PCAxLAorICAgIF9XS1JlbmRlcmlu
Z1Byb2dyZXNzRXZlbnRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMC4xMSksIGlvcyg5LjApKSA9IDEgPDwgMSwKICAgICBfV0tSZW5kZXJpbmdQcm9n
cmVzc0V2ZW50Rmlyc3RQYWludFdpdGhTaWduaWZpY2FudEFyZWEgPSAxIDw8IDIsCi0gICAgX1dL
UmVuZGVyaW5nUHJvZ3Jlc3NFdmVudFJlYWNoZWRTZXNzaW9uUmVzdG9yYXRpb25SZW5kZXJUcmVl
U2l6ZVRocmVzaG9sZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKSA9
IDEgPDwgMywKLSAgICBfV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50Rmlyc3RMYXlvdXRBZnRlclN1
cHByZXNzZWRJbmNyZW1lbnRhbFJlbmRlcmluZyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4x
MSksIGlvcyg5LjApKSA9IDEgPDwgNCwKLSAgICBfV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50Rmly
c3RQYWludEFmdGVyU3VwcHJlc3NlZEluY3JlbWVudGFsUmVuZGVyaW5nIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpID0gMSA8PCA1LAotICAgIF9XS1JlbmRlcmluZ1By
b2dyZXNzRXZlbnRGaXJzdFBhaW50IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9z
KDkuMCkpID0gMSA8PCA2LAotICAgIF9XS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnREaWRSZW5kZXJT
aWduaWZpY2FudEFtb3VudE9mVGV4dCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xNCksIGlv
cygxMi4wKSkgPSAxIDw8IDcsCi0gICAgX1dLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudEZpcnN0TWVh
bmluZ2Z1bFBhaW50IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpID0gMSA8PCA4LAotfSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlv
cyg4LjApKTsKKyAgICBfV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50UmVhY2hlZFNlc3Npb25SZXN0
b3JhdGlvblJlbmRlclRyZWVTaXplVGhyZXNob2xkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAu
MTEpLCBpb3MoOS4wKSkgPSAxIDw8IDMsCisgICAgX1dLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudEZp
cnN0TGF5b3V0QWZ0ZXJTdXBwcmVzc2VkSW5jcmVtZW50YWxSZW5kZXJpbmcgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xMSksIGlvcyg5LjApKSA9IDEgPDwgNCwKKyAgICBfV0tSZW5kZXJpbmdQ
cm9ncmVzc0V2ZW50Rmlyc3RQYWludEFmdGVyU3VwcHJlc3NlZEluY3JlbWVudGFsUmVuZGVyaW5n
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTEpLCBpb3MoOS4wKSkgPSAxIDw8IDUsCisgICAg
X1dLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudEZpcnN0UGFpbnQgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMC4xMSksIGlvcyg5LjApKSA9IDEgPDwgNiwKKyAgICBfV0tSZW5kZXJpbmdQcm9ncmVzc0V2
ZW50RGlkUmVuZGVyU2lnbmlmaWNhbnRBbW91bnRPZlRleHQgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMC4xNCksIGlvcygxMi4wKSkgPSAxIDw8IDcsCisgICAgX1dLUmVuZGVyaW5nUHJvZ3Jlc3NF
dmVudEZpcnN0TWVhbmluZ2Z1bFBhaW50IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RC
QSksIGlvcyhXS19JT1NfVEJBKSkgPSAxIDw8IDgsCit9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTAuMTApLCBpb3MoOC4wKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkv
Q29jb2EvX1dLU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUuaCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0FQSS9Db2NvYS9fV0tTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZS5oCmluZGV4IDdhNmEx
OGViMzZmZjdiMDIzZTFlNjg1YjMzNGQ1NWI4YzA5NjZhYjUuLjVmNjM0NmMzMjlkYjI3YjIwMjNh
NWQxOWQxMTgzNTg0NDFmZGE3MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQ
SS9Db2NvYS9fV0tTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0FQSS9Db2NvYS9fV0tTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZS5oCkBAIC0z
MCw0ICszMCw0IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS1NhbWVEb2N1bWVudE5h
dmlnYXRpb25UeXBlKSB7CiAgICAgX1dLU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGVTZXNzaW9u
U3RhdGVQdXNoLAogICAgIF9XS1NhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlU2Vzc2lvblN0YXRl
UmVwbGFjZSwKICAgICBfV0tTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZVNlc3Npb25TdGF0ZVBv
cCwKLX0gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSk7Cit9IFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4wKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL1dLUGFnZS5oCmluZGV4IDNhYmMyMjE1NDFlMDg1Y2ZhOWQ2MmQxYTA2NjM3MzA0ZWRi
MmZkODEuLjZjZGFhNzJkZGRmOThjMDVkNDBhYTk0OWJkMjZlOGZiMTFjYjM5OTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oCkBAIC0yMjUsOCArMjI1LDggQEAgV0tfRVhQ
T1JUIHZvaWQgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KFdLUGFnZVJlZiBwYWdlLCBjb25zdCBXS1Bh
Z2VVSUNsaWVudEJhc2UqIGMKIFdLX0VYUE9SVCB2b2lkIFdLUGFnZVNldFBhZ2VJbmplY3RlZEJ1
bmRsZUNsaWVudChXS1BhZ2VSZWYgcGFnZSwgY29uc3QgV0tQYWdlSW5qZWN0ZWRCdW5kbGVDbGll
bnRCYXNlKiBjbGllbnQpOwogCiAvLyBBIGNsaWVudCBjYW4gaW1wbGVtZW50IGVpdGhlciBhIG5h
dmlnYXRpb24gY2xpZW50IG9yIGxvYWRlciBhbmQgcG9saWN5IGNsaWVudHMsIGJ1dCBuZXZlciBi
b3RoLgotV0tfRVhQT1JUIHZvaWQgV0tQYWdlU2V0UGFnZUxvYWRlckNsaWVudChXS1BhZ2VSZWYg
cGFnZSwgY29uc3QgV0tQYWdlTG9hZGVyQ2xpZW50QmFzZSogY2xpZW50KSBXS19DX0FQSV9ERVBS
RUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoV0tQYWdlU2V0UGFnZU5hdmlnYXRpb25DbGllbnQsIG1h
Y29zeChXS19NQUNfVEJBKSk7Ci1XS19FWFBPUlQgdm9pZCBXS1BhZ2VTZXRQYWdlUG9saWN5Q2xp
ZW50KFdLUGFnZVJlZiBwYWdlLCBjb25zdCBXS1BhZ2VQb2xpY3lDbGllbnRCYXNlKiBjbGllbnQp
IFdLX0NfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVChXS1BhZ2VTZXRQYWdlTmF2aWdh
dGlvbkNsaWVudCwgbWFjb3N4KFdLX01BQ19UQkEpKTsKK1dLX0VYUE9SVCB2b2lkIFdLUGFnZVNl
dFBhZ2VMb2FkZXJDbGllbnQoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IFdLUGFnZUxvYWRlckNsaWVu
dEJhc2UqIGNsaWVudCkgV0tfQ19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKFdLUGFn
ZVNldFBhZ2VOYXZpZ2F0aW9uQ2xpZW50LCBtYWNvcyhXS19NQUNfVEJBKSk7CitXS19FWFBPUlQg
dm9pZCBXS1BhZ2VTZXRQYWdlUG9saWN5Q2xpZW50KFdLUGFnZVJlZiBwYWdlLCBjb25zdCBXS1Bh
Z2VQb2xpY3lDbGllbnRCYXNlKiBjbGllbnQpIFdLX0NfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBM
QUNFTUVOVChXS1BhZ2VTZXRQYWdlTmF2aWdhdGlvbkNsaWVudCwgbWFjb3MoV0tfTUFDX1RCQSkp
OwogV0tfRVhQT1JUIHZvaWQgV0tQYWdlU2V0UGFnZU5hdmlnYXRpb25DbGllbnQoV0tQYWdlUmVm
IHBhZ2UsIGNvbnN0IFdLUGFnZU5hdmlnYXRpb25DbGllbnRCYXNlKiBjbGllbnQpOwogCiB0eXBl
ZGVmIHZvaWQgKCpXS1BhZ2VSdW5KYXZhU2NyaXB0RnVuY3Rpb24pKFdLU2VyaWFsaXplZFNjcmlw
dFZhbHVlUmVmLCBXS0Vycm9yUmVmLCB2b2lkKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvTlNBdHRyaWJ1dGVkU3RyaW5nLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvTlNBdHRyaWJ1dGVkU3RyaW5nLmgKaW5kZXggOGFkZmY5ZTg0
NjcwNTljYzk2ZmI0NmEwYTBjOTIwYzU0YWNjNGQ2NS4uNDM1ZDhlYWVkNTJmMzQzNWQ4NGIwNTQ0
NzFiNTU1Zjg4ZDFhMjU0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL05TQXR0cmlidXRlZFN0cmluZy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9OU0F0dHJpYnV0ZWRTdHJpbmcuaApAQCAtNDAsNyArNDAsNyBAQCBOU19BU1NV
TUVfTk9OTlVMTF9CRUdJTgogIGRpcmVjdG9yeSBtYXkgYmUgbG9hZGVkIGJ5IFdlYktpdC4KICov
CiBXS19FWFRFUk4gTlNBdHRyaWJ1dGVkU3RyaW5nRG9jdW1lbnRSZWFkaW5nT3B0aW9uS2V5IGNv
bnN0IE5TUmVhZEFjY2Vzc1VSTERvY3VtZW50T3B0aW9uCi0gICAgTlNfU1dJRlRfTkFNRShOU0F0
dHJpYnV0ZWRTdHJpbmdEb2N1bWVudFJlYWRpbmdPcHRpb25LZXkucmVhZEFjY2Vzc1VSTCkgV0tf
QVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CisgICAg
TlNfU1dJRlRfTkFNRShOU0F0dHJpYnV0ZWRTdHJpbmdEb2N1bWVudFJlYWRpbmdPcHRpb25LZXku
cmVhZEFjY2Vzc1VSTCkgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdL
X0lPU19UQkEpKTsKIAogLyohCiAgQGFic3RyYWN0IFR5cGUgZGVmaW5pdGlvbiBmb3IgdGhlIGNv
bXBsZXRpb24gaGFuZGxlciBibG9jayB1c2VkIHRvIGdldCBhc3luY2hyb25vdXMgYXR0cmlidXRl
ZCBzdHJpbmdzLgpAQCAtNDksNyArNDksNyBAQCBXS19FWFRFUk4gTlNBdHRyaWJ1dGVkU3RyaW5n
RG9jdW1lbnRSZWFkaW5nT3B0aW9uS2V5IGNvbnN0IE5TUmVhZEFjY2Vzc1VSTERvY3VtZQogIG9m
IHRoaXMgYmxvY2sgdHlwZSBtdXN0IGV4cGVjdCB0byBiZSBjYWxsZWQgYXN5bmNocm9ub3VzbHkg
d2hlbiBwYXNzZWQgdG8gSFRNTCBsb2FkaW5nIG1ldGhvZHMuCiAqLwogdHlwZWRlZiB2b2lkIChe
TlNBdHRyaWJ1dGVkU3RyaW5nQ29tcGxldGlvbkhhbmRsZXIpKE5TQXR0cmlidXRlZFN0cmluZyAq
IF9OdWxsYWJsZSwgTlNEaWN0aW9uYXJ5PE5TQXR0cmlidXRlZFN0cmluZ0RvY3VtZW50QXR0cmli
dXRlS2V5LCBpZD4gKiBfTnVsbGFibGUsIE5TRXJyb3IgKiBfTnVsbGFibGUpCi0gICAgTlNfU1dJ
RlRfTkFNRShOU0F0dHJpYnV0ZWRTdHJpbmcuQ29tcGxldGlvbkhhbmRsZXIpIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworICAgIE5TX1NXSUZU
X05BTUUoTlNBdHRyaWJ1dGVkU3RyaW5nLkNvbXBsZXRpb25IYW5kbGVyKSBXS19BUElfQVZBSUxB
QkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiAvKiEKICBAZGlzY3Vz
c2lvbiBFeHRlbnNpb24gb2YgQGxpbmsgLy9hcHBsZV9yZWYvb2NjL05TQXR0cmlidXRlZFN0cmlu
ZyBOU0F0dHJpYnV0ZWRTdHJpbmcgQC9saW5rIHRvCkBAIC02Nyw3ICs2Nyw3IEBAIHR5cGVkZWYg
dm9pZCAoXk5TQXR0cmlidXRlZFN0cmluZ0NvbXBsZXRpb25IYW5kbGVyKShOU0F0dHJpYnV0ZWRT
dHJpbmcgKiBfTnVsbGFiCiAgZG9jdW1lbnQtbGV2ZWwgYXR0cmlidXRlcywgb3IgYW4gZXJyb3Iu
CiAqLwogKyAodm9pZClsb2FkRnJvbUhUTUxXaXRoUmVxdWVzdDooTlNVUkxSZXF1ZXN0ICopcmVx
dWVzdCBvcHRpb25zOihOU0RpY3Rpb25hcnk8TlNBdHRyaWJ1dGVkU3RyaW5nRG9jdW1lbnRSZWFk
aW5nT3B0aW9uS2V5LCBpZD4gKilvcHRpb25zIGNvbXBsZXRpb25IYW5kbGVyOihOU0F0dHJpYnV0
ZWRTdHJpbmdDb21wbGV0aW9uSGFuZGxlciljb21wbGV0aW9uSGFuZGxlcgotICAgIE5TX1NXSUZU
X05BTUUobG9hZEZyb21IVE1MKHJlcXVlc3Q6b3B0aW9uczpjb21wbGV0aW9uSGFuZGxlcjopKSBX
S19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKyAg
ICBOU19TV0lGVF9OQU1FKGxvYWRGcm9tSFRNTChyZXF1ZXN0Om9wdGlvbnM6Y29tcGxldGlvbkhh
bmRsZXI6KSkgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19U
QkEpKTsKIAogLyohCiAgQGFic3RyYWN0IENvbnZlcnRzIGEgbG9jYWwgSFRNTCBmaWxlIGludG8g
YW4gYXR0cmlidXRlZCBzdHJpbmcuCkBAIC04Miw3ICs4Miw3IEBAIHR5cGVkZWYgdm9pZCAoXk5T
QXR0cmlidXRlZFN0cmluZ0NvbXBsZXRpb25IYW5kbGVyKShOU0F0dHJpYnV0ZWRTdHJpbmcgKiBf
TnVsbGFiCiAgZmlsZXMgaW5zaWRlIHRoYXQgZGlyZWN0b3J5IG1heSBiZSBsb2FkZWQgYnkgV2Vi
S2l0LgogKi8KICsgKHZvaWQpbG9hZEZyb21IVE1MV2l0aEZpbGVVUkw6KE5TVVJMICopZmlsZVVS
TCBvcHRpb25zOihOU0RpY3Rpb25hcnk8TlNBdHRyaWJ1dGVkU3RyaW5nRG9jdW1lbnRSZWFkaW5n
T3B0aW9uS2V5LCBpZD4gKilvcHRpb25zIGNvbXBsZXRpb25IYW5kbGVyOihOU0F0dHJpYnV0ZWRT
dHJpbmdDb21wbGV0aW9uSGFuZGxlciljb21wbGV0aW9uSGFuZGxlcgotICAgIE5TX1NXSUZUX05B
TUUobG9hZEZyb21IVE1MKGZpbGVVUkw6b3B0aW9uczpjb21wbGV0aW9uSGFuZGxlcjopKSBXS19B
UElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKyAgICBO
U19TV0lGVF9OQU1FKGxvYWRGcm9tSFRNTChmaWxlVVJMOm9wdGlvbnM6Y29tcGxldGlvbkhhbmRs
ZXI6KSkgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KTsKIAogLyohCiAgQGFic3RyYWN0IENvbnZlcnRzIGFuIEhUTUwgc3RyaW5nIGludG8gYW4gYXR0
cmlidXRlZCBzdHJpbmcuCkBAIC05Niw3ICs5Niw3IEBAIHR5cGVkZWYgdm9pZCAoXk5TQXR0cmli
dXRlZFN0cmluZ0NvbXBsZXRpb25IYW5kbGVyKShOU0F0dHJpYnV0ZWRTdHJpbmcgKiBfTnVsbGFi
CiAgd2l0aGluIHRoZSBkb2N1bWVudC4KICovCiArICh2b2lkKWxvYWRGcm9tSFRNTFdpdGhTdHJp
bmc6KE5TU3RyaW5nICopc3RyaW5nIG9wdGlvbnM6KE5TRGljdGlvbmFyeTxOU0F0dHJpYnV0ZWRT
dHJpbmdEb2N1bWVudFJlYWRpbmdPcHRpb25LZXksIGlkPiAqKW9wdGlvbnMgY29tcGxldGlvbkhh
bmRsZXI6KE5TQXR0cmlidXRlZFN0cmluZ0NvbXBsZXRpb25IYW5kbGVyKWNvbXBsZXRpb25IYW5k
bGVyCi0gICAgTlNfU1dJRlRfTkFNRShsb2FkRnJvbUhUTUwoc3RyaW5nOm9wdGlvbnM6Y29tcGxl
dGlvbkhhbmRsZXI6KSkgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhX
S19JT1NfVEJBKSk7CisgICAgTlNfU1dJRlRfTkFNRShsb2FkRnJvbUhUTUwoc3RyaW5nOm9wdGlv
bnM6Y29tcGxldGlvbkhhbmRsZXI6KSkgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJB
KSwgaW9zKFdLX0lPU19UQkEpKTsKIAogLyohCiAgQGFic3RyYWN0IENvbnZlcnRzIEhUTUwgZGF0
YSBpbnRvIGFuIGF0dHJpYnV0ZWQgc3RyaW5nLgpAQCAtMTEwLDcgKzExMCw3IEBAIHR5cGVkZWYg
dm9pZCAoXk5TQXR0cmlidXRlZFN0cmluZ0NvbXBsZXRpb25IYW5kbGVyKShOU0F0dHJpYnV0ZWRT
dHJpbmcgKiBfTnVsbGFiCiAgTlNDaGFyYWN0ZXJFbmNvZGluZ0RvY3VtZW50T3B0aW9uIGlzIHN1
cHBsaWVkLCBhIGJlc3QtZ3Vlc3MgZW5jb2RpbmcgaXMgdXNlZC4KICovCiArICh2b2lkKWxvYWRG
cm9tSFRNTFdpdGhEYXRhOihOU0RhdGEgKilkYXRhIG9wdGlvbnM6KE5TRGljdGlvbmFyeTxOU0F0
dHJpYnV0ZWRTdHJpbmdEb2N1bWVudFJlYWRpbmdPcHRpb25LZXksIGlkPiAqKW9wdGlvbnMgY29t
cGxldGlvbkhhbmRsZXI6KE5TQXR0cmlidXRlZFN0cmluZ0NvbXBsZXRpb25IYW5kbGVyKWNvbXBs
ZXRpb25IYW5kbGVyCi0gICAgTlNfU1dJRlRfTkFNRShsb2FkRnJvbUhUTUwoZGF0YTpvcHRpb25z
OmNvbXBsZXRpb25IYW5kbGVyOikpIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOworICAgIE5TX1NXSUZUX05BTUUobG9hZEZyb21IVE1MKGRhdGE6
b3B0aW9uczpjb21wbGV0aW9uSGFuZGxlcjopKSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01B
Q19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0JhY2tGb3J3YXJkTGlzdC5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQmFja0ZvcndhcmRMaXN0LmgKaW5kZXggN2VlMDM5
MThmZjRhYTE3Yzc0YTk2MGIxOTExMzlhZTc1ZmViNzdiZS4uMmNmMWNiYjE0MmZmYjJlNzZhOWIw
NjZmMTUyMTVkYWNmMzM4ZmM2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLQmFja0ZvcndhcmRMaXN0LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLQmFja0ZvcndhcmRMaXN0LmgKQEAgLTMyLDcgKzMyLDcgQEAKICAqLwog
TlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIAotV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4x
MCksIGlvcyg4LjApKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDguMCkp
CiBAaW50ZXJmYWNlIFdLQmFja0ZvcndhcmRMaXN0IDogTlNPYmplY3QKIAogLyohIEBhYnN0cmFj
dCBUaGUgY3VycmVudCBpdGVtLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLQmFja0ZvcndhcmRMaXN0SXRlbS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLQmFja0ZvcndhcmRMaXN0SXRlbS5oCmluZGV4IDhkMGMwZjgyM2YxOTg3
MTc5ZjE2NjdiMWFhNzZmNjhjNjc5OGZlMGUuLmE2NmFjYTZmZmM2OWJhMzg0OGIwNWFhNTViZDQx
OTA0ODY2NWM4YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS0JhY2tGb3J3YXJkTGlzdEl0ZW0uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tCYWNrRm9yd2FyZExpc3RJdGVtLmgKQEAgLTMxLDcgKzMxLDcgQEAKICAqLwog
TlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIAotV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4x
MCksIGlvcyg4LjApKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDguMCkp
CiBAaW50ZXJmYWNlIFdLQmFja0ZvcndhcmRMaXN0SXRlbSA6IE5TT2JqZWN0CiAKIC0gKGluc3Rh
bmNldHlwZSlpbml0IE5TX1VOQVZBSUxBQkxFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLQmFja0ZvcndhcmRMaXN0SXRlbVByaXZhdGUuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0JhY2tGb3J3YXJkTGlzdEl0ZW1Qcml2YXRl
LmgKaW5kZXggYjE5ZDQ3ZWJkY2M1ZjM2MDg5ZjkzNzRjMGZhYjEzMTMwNjA5ZjAyYS4uNWIwZDI4
ZGI2YTQ2YTIwNGQ4ODA0YTNhZWNlNTYxOTQzZDQwYTVkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQmFja0ZvcndhcmRMaXN0SXRlbVByaXZhdGUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCYWNrRm9yd2FyZExpc3RJ
dGVtUHJpdmF0ZS5oCkBAIC0yOCw4ICsyOCw4IEBACiBAaW50ZXJmYWNlIFdLQmFja0ZvcndhcmRM
aXN0SXRlbSAoV0tQcml2YXRlKQogCiAvLyBGb3IgdGVzdGluZyBvbmx5LgotLSAoQ0dJbWFnZVJl
ZilfY29weVNuYXBzaG90Rm9yVGVzdGluZyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMi4z
KSwgaW9zKDEwLjMpKTsKKy0gKENHSW1hZ2VSZWYpX2NvcHlTbmFwc2hvdEZvclRlc3RpbmcgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMi4zKSwgaW9zKDEwLjMpKTsKIAotQHByb3BlcnR5IChu
b25hdG9taWMpIENHUG9pbnQgX3Njcm9sbFBvc2l0aW9uIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMpIENH
UG9pbnQgX3Njcm9sbFBvc2l0aW9uIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBKSk7CiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dExvYWREZWxlZ2F0ZS5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0TG9hZERlbGVnYXRl
LmgKaW5kZXggZjljMDI1MzA3Y2UwMzc5MTMzYmIyZTg3NTdjMWYxZTY2OGVmMWI3My4uMTgzNGNi
ZThkMjMzYjcwZThkMmMxMTQzZjBmZDA3OTE1NTg5ZWVmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0TG9hZERlbGVnYXRlLmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0
TG9hZERlbGVnYXRlLmgKQEAgLTUyLDEwICs1MiwxMCBAQCBXS19DTEFTU19ERVBSRUNBVEVEX1dJ
VEhfUkVQTEFDRU1FTlQoIldLTmF2aWdhdGlvbkRlbGVnYXRlIiwgbWFjb3MoMTAuMTAsIFdLX01B
QwogLyogU2VudCBpZiB0aGUgY29tbWl0ZWQgbG9hZCBmYWlscy4gKi8KIC0gKHZvaWQpYnJvd3Np
bmdDb250ZXh0Q29udHJvbGxlcjooV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyICopc2VuZGVy
IGRpZEZhaWxMb2FkV2l0aEVycm9yOihOU0Vycm9yICopZXJyb3I7CiAKLS0gKHZvaWQpYnJvd3Np
bmdDb250ZXh0Q29udHJvbGxlckRpZFN0YXJ0UHJvZ3Jlc3M6KFdLQnJvd3NpbmdDb250ZXh0Q29u
dHJvbGxlciAqKXNlbmRlciBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJXS1dl
YlZpZXcuZXN0aW1hdGVkUHJvZ3Jlc3MiLCBtYWNvc3goMTAuMTAsIFdLX01BQ19UQkEpLCBpb3Mo
OC4wLCBXS19JT1NfVEJBKSk7Ci0tICh2b2lkKWJyb3dzaW5nQ29udGV4dENvbnRyb2xsZXI6KFdL
QnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciAqKXNlbmRlciBlc3RpbWF0ZWRQcm9ncmVzc0NoYW5n
ZWRUbzooZG91YmxlKWVzdGltYXRlZFByb2dyZXNzIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQ
TEFDRU1FTlQoIldLV2ViVmlldy5lc3RpbWF0ZWRQcm9ncmVzcyIsIG1hY29zeCgxMC4xMCwgV0tf
TUFDX1RCQSksIGlvcyg4LjAsIFdLX0lPU19UQkEpKTsKLS0gKHZvaWQpYnJvd3NpbmdDb250ZXh0
Q29udHJvbGxlckRpZEZpbmlzaFByb2dyZXNzOihXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIg
KilzZW5kZXIgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiV0tXZWJWaWV3LmVz
dGltYXRlZFByb2dyZXNzIiwgbWFjb3N4KDEwLjEwLCBXS19NQUNfVEJBKSwgaW9zKDguMCwgV0tf
SU9TX1RCQSkpOworLSAodm9pZClicm93c2luZ0NvbnRleHRDb250cm9sbGVyRGlkU3RhcnRQcm9n
cmVzczooV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyICopc2VuZGVyIFdLX0FQSV9ERVBSRUNB
VEVEX1dJVEhfUkVQTEFDRU1FTlQoIldLV2ViVmlldy5lc3RpbWF0ZWRQcm9ncmVzcyIsIG1hY29z
KDEwLjEwLCBXS19NQUNfVEJBKSwgaW9zKDguMCwgV0tfSU9TX1RCQSkpOworLSAodm9pZClicm93
c2luZ0NvbnRleHRDb250cm9sbGVyOihXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgKilzZW5k
ZXIgZXN0aW1hdGVkUHJvZ3Jlc3NDaGFuZ2VkVG86KGRvdWJsZSllc3RpbWF0ZWRQcm9ncmVzcyBX
S19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJXS1dlYlZpZXcuZXN0aW1hdGVkUHJv
Z3Jlc3MiLCBtYWNvcygxMC4xMCwgV0tfTUFDX1RCQSksIGlvcyg4LjAsIFdLX0lPU19UQkEpKTsK
Ky0gKHZvaWQpYnJvd3NpbmdDb250ZXh0Q29udHJvbGxlckRpZEZpbmlzaFByb2dyZXNzOihXS0Jy
b3dzaW5nQ29udGV4dENvbnRyb2xsZXIgKilzZW5kZXIgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9S
RVBMQUNFTUVOVCgiV0tXZWJWaWV3LmVzdGltYXRlZFByb2dyZXNzIiwgbWFjb3MoMTAuMTAsIFdL
X01BQ19UQkEpLCBpb3MoOC4wLCBXS19JT1NfVEJBKSk7CiAKLS0gKHZvaWQpYnJvd3NpbmdDb250
ZXh0Q29udHJvbGxlckRpZENoYW5nZUJhY2tGb3J3YXJkTGlzdDooV0tCcm93c2luZ0NvbnRleHRD
b250cm9sbGVyICopc2VuZGVyIGFkZGVkSXRlbTooV0tCYWNrRm9yd2FyZExpc3RJdGVtICopYWRk
ZWRJdGVtIHJlbW92ZWRJdGVtczooTlNBcnJheSAqKXJlbW92ZWRJdGVtcyBXS19BUElfREVQUkVD
QVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJXS1dlYlZpZXcuYmFja0ZvcndhcmRMaXN0IiwgbWFjb3N4
KDEwLjEwLCBXS19NQUNfVEJBKSwgaW9zKDguMCwgV0tfSU9TX1RCQSkpOworLSAodm9pZClicm93
c2luZ0NvbnRleHRDb250cm9sbGVyRGlkQ2hhbmdlQmFja0ZvcndhcmRMaXN0OihXS0Jyb3dzaW5n
Q29udGV4dENvbnRyb2xsZXIgKilzZW5kZXIgYWRkZWRJdGVtOihXS0JhY2tGb3J3YXJkTGlzdEl0
ZW0gKilhZGRlZEl0ZW0gcmVtb3ZlZEl0ZW1zOihOU0FycmF5ICopcmVtb3ZlZEl0ZW1zIFdLX0FQ
SV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIldLV2ViVmlldy5iYWNrRm9yd2FyZExpc3Qi
LCBtYWNvcygxMC4xMCwgV0tfTUFDX1RCQSksIGlvcyg4LjAsIFdLX0lPU19UQkEpKTsKIAogQGVu
ZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQ29udGVu
dFJ1bGVMaXN0LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tDb250ZW50
UnVsZUxpc3QuaAppbmRleCBjNDIyMzAyYWJlYjY5MGFhYmY1MTNlOWVmYWRhNjNjNWZlNjE3OTY5
Li41NzRiMjY5ZGIxOTcyNjE1MjFlMGNlZjczMzg1NzJmNDkyOGE3MmQ1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tDb250ZW50UnVsZUxpc3QuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tDb250ZW50UnVsZUxpc3QuaApA
QCAtMjcsNyArMjcsNyBAQAogCiAjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KIAot
V0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSkKK1dLX0NMQVNTX0FW
QUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSkKIEBpbnRlcmZhY2UgV0tDb250ZW50UnVs
ZUxpc3QgOiBOU09iamVjdAogCiAvKiEgQGFic3RyYWN0IEEgY29weSBvZiB0aGUgaWRlbnRpZmll
ciBvZiB0aGUgY29udGVudCBleHRlbnNpb24uICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tDb250ZW50UnVsZUxpc3RTdG9yZS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQ29udGVudFJ1bGVMaXN0U3RvcmUuaAppbmRleCBk
YzQwNDc4YjY5NmExYjczYWZlOGQ3NGY0NGM5MGYwZmIzNzBlZTQ5Li5mNWIyYjU5ZTE1Mjg4MGFm
YzQ3MThiN2YzM2VhZDUzNTIyOGEzY2E1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tDb250ZW50UnVsZUxpc3RTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0NvbnRlbnRSdWxlTGlzdFN0b3JlLmgKQEAgLTI5LDcg
KzI5LDcgQEAKIAogQGNsYXNzIFdLQ29udGVudFJ1bGVMaXN0OwogCi1XS19DTEFTU19BVkFJTEFC
TEUobWFjb3N4KDEwLjEzKSwgaW9zKDExLjApKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEw
LjEzKSwgaW9zKDExLjApKQogQGludGVyZmFjZSBXS0NvbnRlbnRSdWxlTGlzdFN0b3JlIDogTlNP
YmplY3QKIAogKyAoaW5zdGFuY2V0eXBlKWRlZmF1bHRTdG9yZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Vycm9yLmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tFcnJvci5oCmluZGV4IGIwODA4ZWM0ODI1NzI3OGY1ZWIxNGVj
ZjZmOGFiY2ZmOGQ2NGJiODIuLjVkZmY1NzFiYjY1ZjIyYzRmNTZiYTc1NTE2NjgyMjg5ODY3NWRh
NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Vycm9y
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLRXJyb3IuaApAQCAt
MzAsNyArMzAsNyBAQAogTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIAogLyohIEBjb25zdGFudCBX
S0Vycm9yRG9tYWluIEluZGljYXRlcyBhIFdlYktpdCBlcnJvci4gKi8KLVdLX0VYVEVSTiBOU1N0
cmluZyAqIGNvbnN0IFdLRXJyb3JEb21haW4gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTAp
LCBpb3MoOC4wKSk7CitXS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBXS0Vycm9yRG9tYWluIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4wKSk7CiAKIC8qISBAZW51bSBXS0Vy
cm9yQ29kZQogIEBhYnN0cmFjdCBDb25zdGFudHMgdXNlZCBieSBOU0Vycm9yIHRvIGluZGljYXRl
IGVycm9ycyBpbiB0aGUgV2ViS2l0IGRvbWFpbi4KQEAgLTUxLDEzICs1MSwxMyBAQCB0eXBlZGVm
IE5TX0VOVU0oTlNJbnRlZ2VyLCBXS0Vycm9yQ29kZSkgewogICAgIFdLRXJyb3JXZWJDb250ZW50
UHJvY2Vzc1Rlcm1pbmF0ZWQsCiAgICAgV0tFcnJvcldlYlZpZXdJbnZhbGlkYXRlZCwKICAgICBX
S0Vycm9ySmF2YVNjcmlwdEV4Y2VwdGlvbk9jY3VycmVkLAotICAgIFdLRXJyb3JKYXZhU2NyaXB0
UmVzdWx0VHlwZUlzVW5zdXBwb3J0ZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBp
b3MoOS4wKSksCi0gICAgV0tFcnJvckNvbnRlbnRSdWxlTGlzdFN0b3JlQ29tcGlsZUZhaWxlZCBX
S19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSksCi0gICAgV0tFcnJvckNv
bnRlbnRSdWxlTGlzdFN0b3JlTG9va1VwRmFpbGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEw
LjEzKSwgaW9zKDExLjApKSwKLSAgICBXS0Vycm9yQ29udGVudFJ1bGVMaXN0U3RvcmVSZW1vdmVG
YWlsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpLAotICAgIFdL
RXJyb3JDb250ZW50UnVsZUxpc3RTdG9yZVZlcnNpb25NaXNtYXRjaCBXS19BUElfQVZBSUxBQkxF
KG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSksCi0gICAgV0tFcnJvckF0dHJpYnV0ZWRTdHJpbmdD
b250ZW50RmFpbGVkVG9Mb2FkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBp
b3MoV0tfSU9TX1RCQSkpLAotICAgIFdLRXJyb3JBdHRyaWJ1dGVkU3RyaW5nQ29udGVudExvYWRU
aW1lZE91dCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19U
QkEpKSwKLX0gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSk7CisgICAg
V0tFcnJvckphdmFTY3JpcHRSZXN1bHRUeXBlSXNVbnN1cHBvcnRlZCBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjExKSwgaW9zKDkuMCkpLAorICAgIFdLRXJyb3JDb250ZW50UnVsZUxpc3RTdG9y
ZUNvbXBpbGVGYWlsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSks
CisgICAgV0tFcnJvckNvbnRlbnRSdWxlTGlzdFN0b3JlTG9va1VwRmFpbGVkIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpLAorICAgIFdLRXJyb3JDb250ZW50UnVsZUxp
c3RTdG9yZVJlbW92ZUZhaWxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDEx
LjApKSwKKyAgICBXS0Vycm9yQ29udGVudFJ1bGVMaXN0U3RvcmVWZXJzaW9uTWlzbWF0Y2ggV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSksCisgICAgV0tFcnJvckF0dHJp
YnV0ZWRTdHJpbmdDb250ZW50RmFpbGVkVG9Mb2FkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tf
TUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSksCisgICAgV0tFcnJvckF0dHJpYnV0ZWRTdHJpbmdD
b250ZW50TG9hZFRpbWVkT3V0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSksCit9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4w
KSk7CiAKIE5TX0FTU1VNRV9OT05OVUxMX0VORApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLRXJyb3JQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tFcnJvclByaXZhdGUuaAppbmRleCBhNGM5MDI2OWIxZDgxMGY1Yjdm
ZWNhMDgzNTYzYTVjYjk4YjdhYmYyLi5mOWMxMmQyM2NlNjdkYTE1MWJmNjliY2UyZTQ2MzJjZjYz
NDIyM2NlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tF
cnJvclByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tF
cnJvclByaXZhdGUuaApAQCAtMjUsMjUgKzI1LDI1IEBACiAKICNpbXBvcnQgPFdlYktpdC9XS0Vy
cm9yLmg+CiAKLVdLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IF9XS0xlZ2FjeUVycm9yRG9tYWlu
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDguMykpOworV0tfRVhURVJOIE5T
U3RyaW5nICogY29uc3QgX1dLTGVnYWN5RXJyb3JEb21haW4gV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMC4xMSksIGlvcyg4LjMpKTsKIAogdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLTGVn
YWN5RXJyb3JDb2RlKSB7Ci0gICAgX1dLRXJyb3JDb2RlRnJhbWVMb2FkSW50ZXJydXB0ZWRCeVBv
bGljeUNoYW5nZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKSA9IDEw
MiwKKyAgICBfV0tFcnJvckNvZGVGcmFtZUxvYWRJbnRlcnJ1cHRlZEJ5UG9saWN5Q2hhbmdlIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTEpLCBpb3MoOS4wKSkgPSAxMDIsCiAgICAgX1dLTGVn
YWN5RXJyb3JQbHVnSW5XaWxsSGFuZGxlTG9hZCA9IDIwNCwKLX0gV0tfQVBJX0FWQUlMQUJMRSht
YWNvc3goMTAuMTEpLCBpb3MoOC4zKSk7Cit9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTEp
LCBpb3MoOC4zKSk7CiAKIC8qISBAY29uc3RhbnQgX1dLSmF2YVNjcmlwdEV4Y2VwdGlvbk1lc3Nh
Z2VFcnJvcktleSBLZXkgaW4gdXNlckluZm8gcmVwcmVzZW50aW5nCiAgdGhlIGV4Y2VwdGlvbiBt
ZXNzYWdlIChhcyBhbiBOU1N0cmluZykgZm9yIFdLRXJyb3JKYXZhU2NyaXB0RXhjZXB0aW9uT2Nj
dXJyZWQgZXJyb3JzLiAqLwotV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgX1dLSmF2YVNjcmlw
dEV4Y2VwdGlvbk1lc3NhZ2VFcnJvcktleSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMiks
IGlvcygxMC4wKSk7CitXS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBfV0tKYXZhU2NyaXB0RXhj
ZXB0aW9uTWVzc2FnZUVycm9yS2V5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3Mo
MTAuMCkpOwogCiAvKiEgQGNvbnN0YW50IF9XS0phdmFTY3JpcHRFeGNlcHRpb25MaW5lTnVtYmVy
RXJyb3JLZXkgS2V5IGluIHVzZXJJbmZvIHJlcHJlc2VudGluZwogIHRoZSBleGNlcHRpb24gbGlu
ZSBudW1iZXIgKGFzIGFuIE5TTnVtYmVyKSBmb3IgV0tFcnJvckphdmFTY3JpcHRFeGNlcHRpb25P
Y2N1cnJlZCBlcnJvcnMuICovCi1XS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBfV0tKYXZhU2Ny
aXB0RXhjZXB0aW9uTGluZU51bWJlckVycm9yS2V5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEw
LjEyKSwgaW9zKDEwLjApKTsKK1dLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IF9XS0phdmFTY3Jp
cHRFeGNlcHRpb25MaW5lTnVtYmVyRXJyb3JLZXkgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4x
MiksIGlvcygxMC4wKSk7CiAKIC8qISBAY29uc3RhbnQgX1dLSmF2YVNjcmlwdEV4Y2VwdGlvbkNv
bHVtbk51bWJlckVycm9yS2V5IEtleSBpbiB1c2VySW5mbyByZXByZXNlbnRpbmcKICB0aGUgZXhj
ZXB0aW9uIGNvbHVtbiBudW1iZXIgKGFzIGFuIE5TTnVtYmVyKSBmb3IgV0tFcnJvckphdmFTY3Jp
cHRFeGNlcHRpb25PY2N1cnJlZCBlcnJvcnMuICovCi1XS19FWFRFUk4gTlNTdHJpbmcgKiBjb25z
dCBfV0tKYXZhU2NyaXB0RXhjZXB0aW9uQ29sdW1uTnVtYmVyRXJyb3JLZXkgV0tfQVBJX0FWQUlM
QUJMRShtYWNvc3goMTAuMTIpLCBpb3MoMTAuMCkpOworV0tfRVhURVJOIE5TU3RyaW5nICogY29u
c3QgX1dLSmF2YVNjcmlwdEV4Y2VwdGlvbkNvbHVtbk51bWJlckVycm9yS2V5IFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOwogCiAvKiEgQGNvbnN0YW50IF9XS0phdmFT
Y3JpcHRFeGNlcHRpb25Tb3VyY2VVUkxFcnJvcktleSBLZXkgaW4gdXNlckluZm8gcmVwcmVzZW50
aW5nCiAgdGhlIGV4Y2VwdGlvbiBzb3VyY2UgVVJMIChhcyBhbiBOU1VSTCkgZm9yIFdLRXJyb3JK
YXZhU2NyaXB0RXhjZXB0aW9uT2NjdXJyZWQgZXJyb3JzLiAqLwotV0tfRVhURVJOIE5TU3RyaW5n
ICogY29uc3QgX1dLSmF2YVNjcmlwdEV4Y2VwdGlvblNvdXJjZVVSTEVycm9yS2V5IFdLX0FQSV9B
VkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsKK1dLX0VYVEVSTiBOU1N0cmluZyAq
IGNvbnN0IF9XS0phdmFTY3JpcHRFeGNlcHRpb25Tb3VyY2VVUkxFcnJvcktleSBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0ZyYW1lSW5mby5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLRnJhbWVJbmZvLmgKaW5kZXggN2FmYmViODkwZWRhNTRkNjM0M2Vl
ZjIyYjgyZGI1NDdjMmRjYzg3Zi4uNjA5NzU0N2M2NjY5NzA4MDk4MjNkMTYwYzM5NWExNThlYmNh
ODAxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLRnJh
bWVJbmZvLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLRnJhbWVJ
bmZvLmgKQEAgLTM2LDcgKzM2LDcgQEAKICAqLwogTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIAot
V0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQorV0tfQ0xBU1NfQVZB
SUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIFdLRnJhbWVJbmZvIDog
TlNPYmplY3QgPE5TQ29weWluZz4KIAogLyohIEBhYnN0cmFjdCBBIEJvb2xlYW4gdmFsdWUgaW5k
aWNhdGluZyB3aGV0aGVyIHRoZSBmcmFtZSBpcyB0aGUgbWFpbiBmcmFtZQpAQCAtNTAsMTEgKzUw
LDExIEBAIFdLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKIAogLyoh
IEBhYnN0cmFjdCBUaGUgZnJhbWUncyBjdXJyZW50IHNlY3VyaXR5IG9yaWdpbi4KICAqLwotQHBy
b3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBXS1NlY3VyaXR5T3JpZ2luICpzZWN1cml0eU9y
aWdpbiBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKK0Bwcm9wZXJ0
eSAobm9uYXRvbWljLCByZWFkb25seSkgV0tTZWN1cml0eU9yaWdpbiAqc2VjdXJpdHlPcmlnaW4g
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMSksIGlvcyg5LjApKTsKIAogLyohIEBhYnN0cmFj
dCBUaGUgd2ViIHZpZXcgb2YgdGhlIHdlYnBhZ2UgdGhhdCBjb250YWlucyB0aGlzIGZyYW1lLgog
ICovCi1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIHdlYWspIFdLV2ViVmlldyAqd2Vi
VmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7CitAcHJvcGVy
dHkgKG5vbmF0b21pYywgcmVhZG9ubHksIHdlYWspIFdLV2ViVmlldyAqd2ViVmlldyBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKTsKIAogQGVuZAogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tGcmFtZUluZm9Qcml2YXRlLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tGcmFtZUluZm9Qcml2YXRlLmgK
aW5kZXggNjA3YzAwNWE5OWNkYzNkODJiMWVkM2Q5YjQwM2NhZGE1OTQ2M2MyZi4uMDc0YmUyZjI3
NDcyODdlYjkyMzRjMDc2ZDRjNmY2NmFlOGJmODI3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLRnJhbWVJbmZvUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0ZyYW1lSW5mb1ByaXZhdGUuaApAQCAtMjksNiAr
MjksNiBAQAogCiBAaW50ZXJmYWNlIFdLRnJhbWVJbmZvIChXS1ByaXZhdGUpCiAKLUBwcm9wZXJ0
eSAobm9uYXRvbWljLCByZWFkb25seSwgc3Ryb25nKSBfV0tGcmFtZUhhbmRsZSAqX2hhbmRsZSBX
S19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMiksIGlvcygxMC4wKSk7CitAcHJvcGVydHkgKG5v
bmF0b21pYywgcmVhZG9ubHksIHN0cm9uZykgX1dLRnJhbWVIYW5kbGUgKl9oYW5kbGUgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CiAKIEBlbmQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0hUVFBDb29raWVTdG9yZS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLSFRUUENvb2tpZVN0b3JlLmgKaW5k
ZXggMmJhY2ZlNWIwZGUxYTVmMjAzYWYxNzkxZTc3NjRlMTg1ZTM1MzEyYi4uOWMxNTkyNDU1MTI1
YzBhOWFlNTUzNzNkNGVkODIxYmYxZWQzMGY5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLSFRUUENvb2tpZVN0b3JlLmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLSFRUUENvb2tpZVN0b3JlLmgKQEAgLTMxLDcgKzMxLDcg
QEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIAogQGNsYXNzIFdLSFRUUENvb2tpZVN0b3JlOwog
Ci1XS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSkKK1dLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpCiBAcHJvdG9jb2wgV0tIVFRQQ29va2llU3Rv
cmVPYnNlcnZlciA8TlNPYmplY3Q+CiBAb3B0aW9uYWwKIC0gKHZvaWQpY29va2llc0RpZENoYW5n
ZUluQ29va2llU3RvcmU6KFdLSFRUUENvb2tpZVN0b3JlICopY29va2llU3RvcmU7CkBAIC00MCw3
ICs0MCw3IEBAIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzKSwgaW9zKDExLjApKQogLyoh
CiAgQSBXS0hUVFBDb29raWVTdG9yZSBvYmplY3QgYWxsb3dzIG1hbmFnaW5nIHRoZSBIVFRQIGNv
b2tpZXMgYXNzb2NpYXRlZCB3aXRoIGEgcGFydGljdWxhciBXS1dlYnNpdGVEYXRhU3RvcmUuCiAg
Ki8KLVdLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpCitXS19DTEFT
U19BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpCiBAaW50ZXJmYWNlIFdLSFRUUENv
b2tpZVN0b3JlIDogTlNPYmplY3QKIAogLSAoaW5zdGFuY2V0eXBlKWluaXQgTlNfVU5BVkFJTEFC
TEU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tNZW51
SXRlbUlkZW50aWZpZXJzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLTWVudUl0ZW1JZGVudGlmaWVyc1ByaXZhdGUuaAppbmRleCA2OTBlOTFiM2JlOGI0ODUx
NGUxYTIwNWMyZDZkZTQ3ZjU1OWFmZWIzLi5mZjFhOTU3NDAxZjE3YzQxNjlhNTkxNTc0MjE3MjUw
NmI3YTkyOTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tNZW51SXRlbUlkZW50aWZpZXJzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS01lbnVJdGVtSWRlbnRpZmllcnNQcml2YXRlLmgKQEAgLTI4LDI4ICsy
OCwyOCBAQAogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CiAjaW1wb3J0IDxXZWJL
aXQvV0tEZWNsYXJhdGlvblNwZWNpZmllcnMuaD4KIAotV0tfRVhQT1JUIGV4dGVybiBOU1N0cmlu
ZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllckNvcHkgV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goMTAuMTIpLCBpb3MoMTAuMCkpOwotV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0
IF9XS01lbnVJdGVtSWRlbnRpZmllckNvcHlJbWFnZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgx
MC4xMiksIGlvcygxMC4wKSk7Ci1XS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dL
TWVudUl0ZW1JZGVudGlmaWVyQ29weUxpbmsgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIp
LCBpb3MoMTAuMCkpOwotV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJ
dGVtSWRlbnRpZmllckNvcHlNZWRpYUxpbmsgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTQp
LCBpb3MoMTIuMCkpOwotV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJ
dGVtSWRlbnRpZmllckRvd25sb2FkSW1hZ2UgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIp
LCBpb3MoMTAuMCkpOwotV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJ
dGVtSWRlbnRpZmllckRvd25sb2FkTGlua2VkRmlsZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgx
MC4xMiksIGlvcygxMC4wKSk7Ci1XS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dL
TWVudUl0ZW1JZGVudGlmaWVyRG93bmxvYWRNZWRpYSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgx
MC4xNCksIGlvcygxMi4wKSk7Ci1XS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dL
TWVudUl0ZW1JZGVudGlmaWVyR29CYWNrIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwg
aW9zKDEwLjApKTsKLVdLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRl
bUlkZW50aWZpZXJHb0ZvcndhcmQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3Mo
MTAuMCkpOwotV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRl
bnRpZmllckluc3BlY3RFbGVtZW50IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9z
KDEwLjApKTsKLVdLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlk
ZW50aWZpZXJMb29rVXAgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3MoMTAuMCkp
OwotV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmll
ck9wZW5GcmFtZUluTmV3V2luZG93IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9z
KDEwLjApKTsKLVdLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlk
ZW50aWZpZXJPcGVuSW1hZ2VJbk5ld1dpbmRvdyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4x
MiksIGlvcygxMC4wKSk7Ci1XS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVu
dUl0ZW1JZGVudGlmaWVyT3BlbkxpbmsgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBp
b3MoMTAuMCkpOwotV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVt
SWRlbnRpZmllck9wZW5MaW5rSW5OZXdXaW5kb3cgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAu
MTIpLCBpb3MoMTAuMCkpOwotV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01l
bnVJdGVtSWRlbnRpZmllck9wZW5NZWRpYUluTmV3V2luZG93IFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KDEwLjE0KSwgaW9zKDEyLjApKTsKLVdLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25z
dCBfV0tNZW51SXRlbUlkZW50aWZpZXJQYXN0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4x
MiksIGlvcygxMC4wKSk7Ci1XS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVu
dUl0ZW1JZGVudGlmaWVyUmVsb2FkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9z
KDEwLjApKTsKLVdLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlk
ZW50aWZpZXJTZWFyY2hXZWIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3MoMTAu
MCkpOwotV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRp
ZmllclNob3dIaWRlTWVkaWFDb250cm9scyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMiks
IGlvcygxMC4wKSk7Ci1XS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0
ZW1JZGVudGlmaWVyVG9nZ2xlRW5oYW5jZWRGdWxsU2NyZWVuIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KDEwLjE0KSwgaW9zKDEyLjApKTsKLVdLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25z
dCBfV0tNZW51SXRlbUlkZW50aWZpZXJUb2dnbGVGdWxsU2NyZWVuIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsKK1dLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBj
b25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJDb3B5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAu
MTIpLCBpb3MoMTAuMCkpOworV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01l
bnVJdGVtSWRlbnRpZmllckNvcHlJbWFnZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwg
aW9zKDEwLjApKTsKK1dLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRl
bUlkZW50aWZpZXJDb3B5TGluayBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEw
LjApKTsKK1dLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50
aWZpZXJDb3B5TWVkaWFMaW5rIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpLCBpb3MoMTIu
MCkpOworV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRp
ZmllckRvd25sb2FkSW1hZ2UgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4w
KSk7CitXS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlm
aWVyRG93bmxvYWRMaW5rZWRGaWxlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3Mo
MTAuMCkpOworV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRl
bnRpZmllckRvd25sb2FkTWVkaWEgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygx
Mi4wKSk7CitXS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVu
dGlmaWVyR29CYWNrIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOwor
V0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllckdv
Rm9yd2FyZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKK1dLX0VY
UE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJJbnNwZWN0
RWxlbWVudCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKK1dLX0VY
UE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJMb29rVXAg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CitXS19FWFBPUlQgZXh0
ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyT3BlbkZyYW1lSW5OZXdX
aW5kb3cgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CitXS19FWFBP
UlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyT3BlbkltYWdl
SW5OZXdXaW5kb3cgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CitX
S19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyT3Bl
bkxpbmsgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CitXS19FWFBP
UlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyT3BlbkxpbmtJ
bk5ld1dpbmRvdyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKK1dL
X0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJPcGVu
TWVkaWFJbk5ld1dpbmRvdyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSwgaW9zKDEyLjAp
KTsKK1dLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZp
ZXJQYXN0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKK1dLX0VY
UE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJSZWxvYWQg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CitXS19FWFBPUlQgZXh0
ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyU2VhcmNoV2ViIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOworV0tfRVhQT1JUIGV4dGVybiBO
U1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllclNob3dIaWRlTWVkaWFDb250cm9s
cyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKK1dLX0VYUE9SVCBl
eHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJUb2dnbGVFbmhhbmNl
ZEZ1bGxTY3JlZW4gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4wKSk7CitX
S19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyVG9n
Z2xlRnVsbFNjcmVlbiBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsK
IAotV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmll
clNoYXJlTWVudSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMiksIGlvcygxMC4wKSk7Ci1X
S19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyU3Bl
ZWNoTWVudSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMiksIGlvcygxMC4wKSk7CitXS19F
WFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyU2hhcmVN
ZW51IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOworV0tfRVhQT1JU
IGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllclNwZWVjaE1lbnUg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uLmgKaW5kZXggMzNmYjNhZTcz
MjA2YmQyMmVmMDE5OTg1YzQyZWNmZjdkMjVhMWZkNi4uMzU3NDUxZTNlYzA0ZGU5NmZkZGI5Yjgy
NDkxNzUxZjQ3YmE3ZTZjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLTmF2aWdhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS05hdmlnYXRpb24uaApAQCAtMzIsNyArMzIsNyBAQAogIGFsc28gcGFzc2VkIHRvIHRo
ZSBuYXZpZ2F0aW9uIGRlbGVnYXRlIG1ldGhvZHMsIHRvIHVuaXF1ZWx5IGlkZW50aWZ5IGEgd2Vi
cGFnZQogIGxvYWQgZnJvbSBzdGFydCB0byBmaW5pc2guCiAgKi8KLVdLX0NMQVNTX0FWQUlMQUJM
RShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4x
MCksIGlvcyg4LjApKQogQGludGVyZmFjZSBXS05hdmlnYXRpb24gOiBOU09iamVjdAogCiBAZW5k
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0
aW9uQWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0
aW9uQWN0aW9uLmgKaW5kZXggNzI5YzM5N2MxMjI5MGMwMDYzNGY0YmM5N2VhYmE3YzU2NTU0MjYw
Yy4uOTM0MDcwZTNkZTQ0OTgyZjU3MmJkNWExODhkMTBjYjQ5Y2Y3MjExZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkFjdGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25BY3Rpb24u
aApAQCAtNTEsMTIgKzUxLDEyIEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIFdLTmF2aWdh
dGlvblR5cGUpIHsKICAgICBXS05hdmlnYXRpb25UeXBlUmVsb2FkLAogICAgIFdLTmF2aWdhdGlv
blR5cGVGb3JtUmVzdWJtaXR0ZWQsCiAgICAgV0tOYXZpZ2F0aW9uVHlwZU90aGVyID0gLTEsCi19
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpOworfSBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDguMCkpOwogCiAvKiEgCiBBIFdLTmF2aWdhdGlvbkFj
dGlvbiBvYmplY3QgY29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgYW4gYWN0aW9uIHRoYXQgbWF5
IGNhdXNlIGEgbmF2aWdhdGlvbiwgdXNlZCBmb3IgbWFraW5nIHBvbGljeSBkZWNpc2lvbnMuCiAg
Ki8KLVdLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKK1dLX0NMQVNT
X0FWQUlMQUJMRShtYWNvcygxMC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBXS05hdmlnYXRp
b25BY3Rpb24gOiBOU09iamVjdAogCiAvKiEgQGFic3RyYWN0IFRoZSBmcmFtZSByZXF1ZXN0aW5n
IHRoZSBuYXZpZ2F0aW9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLTmF2aWdhdGlvbkFjdGlvblByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25BY3Rpb25Qcml2YXRlLmgKaW5kZXggNjE1ODljOTRm
MzNjZjE0MjdiOTc1MTZmZGFkOTc4NWYzMzg2YTM4YS4uMDhjYmY1MDBhNjdlY2QxZjgyYTYwMGM2
Mjc3YzkyYTk5MDU5NGMyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLTmF2aWdhdGlvbkFjdGlvblByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZS5oCkBAIC00MywxMyAr
NDMsMTMgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgV0tTeW50aGV0aWNDbGlja1R5cGUp
IHsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNVUkwgKl9vcmlnaW5hbFVSTDsK
IEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgZ2V0dGVyPV9pc1VzZXJJbml0aWF0ZWQp
IEJPT0wgX3VzZXJJbml0aWF0ZWQ7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJP
T0wgX2NhbkhhbmRsZVJlcXVlc3Q7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJP
T0wgX3Nob3VsZE9wZW5FeHRlcm5hbFNjaGVtZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAu
MTEpLCBpb3MoOS4wKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgX3No
b3VsZE9wZW5BcHBMaW5rcyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjAp
KTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfc2hvdWxkUGVyZm9ybURv
d25sb2FkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RC
QSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF9zaG91bGRPcGVuRXh0
ZXJuYWxTY2hlbWVzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTEpLCBpb3MoOS4wKSk7CitA
cHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgX3Nob3VsZE9wZW5BcHBMaW5rcyBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjExKSwgaW9zKDkuMCkpOworQHByb3BlcnR5IChub25h
dG9taWMsIHJlYWRvbmx5KSBCT09MIF9zaG91bGRQZXJmb3JtRG93bmxvYWQgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAotQHByb3BlcnR5IChu
b25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF9zaG91bGRPcGVuRXh0ZXJuYWxVUkxzIFdLX0FQSV9E
RVBSRUNBVEVEKCJ1c2UgX3Nob3VsZE9wZW5FeHRlcm5hbFNjaGVtZXMgYW5kIF9zaG91bGRPcGVu
QXBwTGlua3MiLCBtYWNvc3goMTAuMTEsIDEwLjExKSwgaW9zKDkuMCwgOS4wKSk7CitAcHJvcGVy
dHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgX3Nob3VsZE9wZW5FeHRlcm5hbFVSTHMgV0tf
QVBJX0RFUFJFQ0FURUQoInVzZSBfc2hvdWxkT3BlbkV4dGVybmFsU2NoZW1lcyBhbmQgX3Nob3Vs
ZE9wZW5BcHBMaW5rcyIsIG1hY29zKDEwLjExLCAxMC4xMSksIGlvcyg5LjAsIDkuMCkpOwogCi1A
cHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIF9XS1VzZXJJbml0aWF0ZWRBY3Rpb24gKl91
c2VySW5pdGlhdGVkQWN0aW9uIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEw
LjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgX1dLVXNlckluaXRpYXRlZEFj
dGlvbiAqX3VzZXJJbml0aWF0ZWRBY3Rpb24gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiks
IGlvcygxMC4wKSk7CiAKICNpZiBUQVJHRVRfT1NfSVBIT05FCiBAcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZG9ubHkpIFdLU3ludGhldGljQ2xpY2tUeXBlIF9zeW50aGV0aWNDbGlja1R5cGUgV0tf
QVBJX0FWQUlMQUJMRShpb3MoMTAuMCkpOwpAQCAtNTgsNyArNTgsNyBAQCB0eXBlZGVmIE5TX0VO
VU0oTlNJbnRlZ2VyLCBXS1N5bnRoZXRpY0NsaWNrVHlwZSkgewogQHByb3BlcnR5IChub25hdG9t
aWMsIHJlYWRvbmx5KSBVSUtleU1vZGlmaWVyRmxhZ3MgbW9kaWZpZXJGbGFncyBXS19BUElfQVZB
SUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CiAjZW5kaWYKIAotQHByb3BlcnR5IChub25hdG9taWMs
IHJlYWRvbmx5KSBCT09MIF9pc1JlZGlyZWN0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEz
KSwgaW9zKDExLjApKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgV0tOYXZpZ2F0
aW9uICpfbWFpbkZyYW1lTmF2aWdhdGlvbiBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkg
Qk9PTCBfaXNSZWRpcmVjdCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjAp
KTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgV0tOYXZpZ2F0aW9uICpfbWFpbkZy
YW1lTmF2aWdhdGlvbiBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpOwogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0ZS5oCmluZGV4IGE5MTg0YTE2NWFlZTYxMjc3
YTczYTc5MTVkNGE4NGYyYmNmZWFjZWMuLjhlZTQ2MmM0NmM4YmNjYzhhNTliODk3NGQ3NTVkODhh
YzdiMzQ0NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S05hdmlnYXRpb25EZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0ZS5oCkBAIC00Myw3ICs0Myw3IEBAIE5TX0FTU1VNRV9O
T05OVUxMX0JFR0lOCiB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBXS05hdmlnYXRpb25BY3Rp
b25Qb2xpY3kpIHsKICAgICBXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3lDYW5jZWwsCiAgICAgV0tO
YXZpZ2F0aW9uQWN0aW9uUG9saWN5QWxsb3csCi19IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEw
LjEwKSwgaW9zKDguMCkpOworfSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDgu
MCkpOwogCiAvKiEgQGVudW0gV0tOYXZpZ2F0aW9uUmVzcG9uc2VQb2xpY3kKICBAYWJzdHJhY3Qg
VGhlIHBvbGljeSB0byBwYXNzIGJhY2sgdG8gdGhlIGRlY2lzaW9uIGhhbmRsZXIgZnJvbSB0aGUg
d2ViVmlldzpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uUmVzcG9uc2U6ZGVjaXNpb25IYW5kbGVy
OiBtZXRob2QuCkBAIC01Myw3ICs1Myw3IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIFdL
TmF2aWdhdGlvbkFjdGlvblBvbGljeSkgewogdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgV0tO
YXZpZ2F0aW9uUmVzcG9uc2VQb2xpY3kpIHsKICAgICBXS05hdmlnYXRpb25SZXNwb25zZVBvbGlj
eUNhbmNlbCwKICAgICBXS05hdmlnYXRpb25SZXNwb25zZVBvbGljeUFsbG93LAotfSBXS19BUElf
QVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKTsKK30gV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMC4xMCksIGlvcyg4LjApKTsKIAogLyohIEEgY2xhc3MgY29uZm9ybWluZyB0byB0aGUg
V0tOYXZpZ2F0aW9uRGVsZWdhdGUgcHJvdG9jb2wgY2FuIHByb3ZpZGUKICBtZXRob2RzIGZvciB0
cmFja2luZyBwcm9ncmVzcyBmb3IgbWFpbiBmcmFtZSBuYXZpZ2F0aW9ucyBhbmQgZm9yIGRlY2lk
aW5nCkBAIC0xNDAsNyArMTQwLDcgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgV0tOYXZp
Z2F0aW9uUmVzcG9uc2VQb2xpY3kpIHsKIC8qISBAYWJzdHJhY3QgSW52b2tlZCB3aGVuIHRoZSB3
ZWIgdmlldydzIHdlYiBjb250ZW50IHByb2Nlc3MgaXMgdGVybWluYXRlZC4KICBAcGFyYW0gd2Vi
VmlldyBUaGUgd2ViIHZpZXcgd2hvc2UgdW5kZXJseWluZyB3ZWIgY29udGVudCBwcm9jZXNzIHdh
cyB0ZXJtaW5hdGVkLgogICovCi0tICh2b2lkKXdlYlZpZXdXZWJDb250ZW50UHJvY2Vzc0RpZFRl
cm1pbmF0ZTooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4x
MSksIGlvcyg5LjApKTsKKy0gKHZvaWQpd2ViVmlld1dlYkNvbnRlbnRQcm9jZXNzRGlkVGVybWlu
YXRlOihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTEpLCBp
b3MoOS4wKSk7CiAKIEBlbmQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZS5oCmluZGV4IDlh
MTMyMWM2ZDAxNTM5OTBiMzYyOTZkYTcyN2QwMzVjYmIxMmU4ZTIuLjY2MWUyZDFiZGJmYTlkMDE2
MTcyMzVjZTk3N2JkY2IzMTllYmJiZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGUuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlLmgK
QEAgLTM2LDE0ICszNiwxNCBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tXZWJHTExv
YWRQb2xpY3kpIHsKICAgICBfV0tXZWJHTExvYWRQb2xpY3lCbG9ja0NyZWF0aW9uLAogICAgIF9X
S1dlYkdMTG9hZFBvbGljeUFsbG93Q3JlYXRpb24sCiAgICAgX1dLV2ViR0xMb2FkUG9saWN5UGVu
ZGluZ0NyZWF0aW9uLAotfSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSk7Cit9IFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOwogCiB0eXBlZGVmIE5TX0VOVU0oTlNJbnRl
Z2VyLCBfV0tQbHVnaW5Nb2R1bGVMb2FkUG9saWN5KSB7CiAgICAgX1dLUGx1Z2luTW9kdWxlTG9h
ZFBvbGljeUxvYWROb3JtYWxseSwKICAgICBfV0tQbHVnaW5Nb2R1bGVMb2FkUG9saWN5TG9hZFVu
c2FuZGJveGVkLAogICAgIF9XS1BsdWdpbk1vZHVsZUxvYWRQb2xpY3lCbG9ja2VkRm9yU2VjdXJp
dHksCiAgICAgX1dLUGx1Z2luTW9kdWxlTG9hZFBvbGljeUJsb2NrZWRGb3JDb21wYXRpYmlsaXR5
LAotfSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xNCkpOworfSBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjE0KSk7CiAjZW5kaWYKIAogdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dL
UHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uKSB7CkBAIC01MSwxMSArNTEsMTEgQEAgdHlwZWRlZiBO
U19FTlVNKE5TSW50ZWdlciwgX1dLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uKSB7CiAgICAgX1dL
UHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uRXhjZWVkZWRDUFVMaW1pdCwKICAgICBfV0tQcm9jZXNz
VGVybWluYXRpb25SZWFzb25SZXF1ZXN0ZWRCeUNsaWVudCwKICAgICBfV0tQcm9jZXNzVGVybWlu
YXRpb25SZWFzb25DcmFzaCwKLX0gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTQpLCBpb3Mo
MTIuMCkpOworfSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSwgaW9zKDEyLjApKTsKIAog
c3RhdGljIGNvbnN0IFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSBfV0tOYXZpZ2F0aW9uQWN0aW9u
UG9saWN5RG93bmxvYWQgPSAoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5KShXS05hdmlnYXRpb25B
Y3Rpb25Qb2xpY3lBbGxvdyArIDEpOwotc3RhdGljIGNvbnN0IFdLTmF2aWdhdGlvbkFjdGlvblBv
bGljeSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKSBfV0tOYXZpZ2F0
aW9uQWN0aW9uUG9saWN5QWxsb3dXaXRob3V0VHJ5aW5nQXBwTGluayA9IChXS05hdmlnYXRpb25B
Y3Rpb25Qb2xpY3kpKF9XS05hdmlnYXRpb25BY3Rpb25Qb2xpY3lEb3dubG9hZCArIDEpOwotc3Rh
dGljIGNvbnN0IFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSBXS19BUElfQVZBSUxBQkxFKG1hY29z
eChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKSBfV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5
QWxsb3dJbk5ld1Byb2Nlc3MgPSAoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5KShfV0tOYXZpZ2F0
aW9uQWN0aW9uUG9saWN5QWxsb3dXaXRob3V0VHJ5aW5nQXBwTGluayArIDEpOworc3RhdGljIGNv
bnN0IFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEx
KSwgaW9zKDkuMCkpIF9XS05hdmlnYXRpb25BY3Rpb25Qb2xpY3lBbGxvd1dpdGhvdXRUcnlpbmdB
cHBMaW5rID0gKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSkoX1dLTmF2aWdhdGlvbkFjdGlvblBv
bGljeURvd25sb2FkICsgMSk7CitzdGF0aWMgY29uc3QgV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSkgX1dL
TmF2aWdhdGlvbkFjdGlvblBvbGljeUFsbG93SW5OZXdQcm9jZXNzID0gKFdLTmF2aWdhdGlvbkFj
dGlvblBvbGljeSkoX1dLTmF2aWdhdGlvbkFjdGlvblBvbGljeUFsbG93V2l0aG91dFRyeWluZ0Fw
cExpbmsgKyAxKTsKIAogc3RhdGljIGNvbnN0IFdLTmF2aWdhdGlvblJlc3BvbnNlUG9saWN5IF9X
S05hdmlnYXRpb25SZXNwb25zZVBvbGljeUJlY29tZURvd25sb2FkID0gKFdLTmF2aWdhdGlvblJl
c3BvbnNlUG9saWN5KShXS05hdmlnYXRpb25SZXNwb25zZVBvbGljeUFsbG93ICsgMSk7CiAKQEAg
LTg2LDI3ICs4NiwyNyBAQCBzdGF0aWMgY29uc3QgV0tOYXZpZ2F0aW9uUmVzcG9uc2VQb2xpY3kg
X1dLTmF2aWdhdGlvblJlc3BvbnNlUG9saWN5QmVjb21lRG93bmxvYQogLy8gT25seSBjYWxsZWQg
aWYgaG93IHRoZSBnZXN0dXJlIHdpbGwgZW5kICh3aXRoIG9yIHdpdGhvdXQgbmF2aWdhdGlvbikg
aXMga25vd24gYmVmb3JlIGl0IGVuZHMuCiAtICh2b2lkKV93ZWJWaWV3V2lsbEVuZE5hdmlnYXRp
b25HZXN0dXJlOihXS1dlYlZpZXcgKil3ZWJWaWV3IHdpdGhOYXZpZ2F0aW9uVG9CYWNrRm9yd2Fy
ZExpc3RJdGVtOihXS0JhY2tGb3J3YXJkTGlzdEl0ZW0gKilpdGVtOwogLSAodm9pZClfd2ViVmll
dzooV0tXZWJWaWV3ICopd2ViVmlldyB3aWxsU25hcHNob3RCYWNrRm9yd2FyZExpc3RJdGVtOihX
S0JhY2tGb3J3YXJkTGlzdEl0ZW0gKilpdGVtOwotLSAodm9pZClfd2ViVmlld0RpZFJlbW92ZU5h
dmlnYXRpb25HZXN0dXJlU25hcHNob3Q6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlM
QUJMRShtYWNvc3goMTAuMTIpLCBpb3MoMTAuMCkpOwotLSAodm9pZClfd2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOihXS05hdmlnYXRp
b25BY3Rpb24gKiluYXZpZ2F0aW9uQWN0aW9uIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoV0tO
YXZpZ2F0aW9uQWN0aW9uUG9saWN5LCBfV0tXZWJzaXRlUG9saWNpZXMgKikpZGVjaXNpb25IYW5k
bGVyIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIl93ZWJWaWV3OmRlY2lkZVBv
bGljeUZvck5hdmlnYXRpb25BY3Rpb246dXNlckluZm86ZGVjaXNpb25IYW5kbGVyOiIsIG1hY29z
eCgxMC4xMi4zLCBXS19NQUNfVEJBKSwgaW9zKDEwLjMsIFdLX0lPU19UQkEpKTsKLS0gKHZvaWQp
X3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFj
dGlvbjooV0tOYXZpZ2F0aW9uQWN0aW9uICopbmF2aWdhdGlvbkFjdGlvbiB1c2VySW5mbzooaWQg
PE5TU2VjdXJlQ29kaW5nPil1c2VySW5mbyBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKFdLTmF2
aWdhdGlvbkFjdGlvblBvbGljeSwgX1dLV2Vic2l0ZVBvbGljaWVzICopKWRlY2lzaW9uSGFuZGxl
ciBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSwgaW9zKDExLjMpKTsKLS0gKHZvaWQp
X3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkU3RhcnRQcm92aXNpb25hbE5hdmlnYXRp
b246KFdLTmF2aWdhdGlvbiAqKW5hdmlnYXRpb24gdXNlckluZm86KGlkIDxOU1NlY3VyZUNvZGlu
Zz4pdXNlckluZm8gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCksIGlvcygxMS4zKSk7
Ci0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZEZhaWxOYXZpZ2F0aW9u
OihXS05hdmlnYXRpb24gKiluYXZpZ2F0aW9uIHdpdGhFcnJvcjooTlNFcnJvciAqKWVycm9yIHVz
ZXJJbmZvOihpZCA8TlNTZWN1cmVDb2Rpbmc+KXVzZXJJbmZvIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KDEwLjEzLjQpLCBpb3MoMTEuMykpOworLSAodm9pZClfd2ViVmlld0RpZFJlbW92ZU5hdmln
YXRpb25HZXN0dXJlU25hcHNob3Q6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcg
Kil3ZWJWaWV3IGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246KFdLTmF2aWdhdGlvbkFj
dGlvbiAqKW5hdmlnYXRpb25BY3Rpb24gZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShXS05hdmln
YXRpb25BY3Rpb25Qb2xpY3ksIF9XS1dlYnNpdGVQb2xpY2llcyAqKSlkZWNpc2lvbkhhbmRsZXIg
V0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiX3dlYlZpZXc6ZGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvbkFjdGlvbjp1c2VySW5mbzpkZWNpc2lvbkhhbmRsZXI6IiwgbWFjb3MoMTAu
MTIuMywgV0tfTUFDX1RCQSksIGlvcygxMC4zLCBXS19JT1NfVEJBKSk7CistICh2b2lkKV93ZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246
KFdLTmF2aWdhdGlvbkFjdGlvbiAqKW5hdmlnYXRpb25BY3Rpb24gdXNlckluZm86KGlkIDxOU1Nl
Y3VyZUNvZGluZz4pdXNlckluZm8gZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShXS05hdmlnYXRp
b25BY3Rpb25Qb2xpY3ksIF9XS1dlYnNpdGVQb2xpY2llcyAqKSlkZWNpc2lvbkhhbmRsZXIgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKKy0gKHZvaWQpX3dlYlZp
ZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkU3RhcnRQcm92aXNpb25hbE5hdmlnYXRpb246KFdL
TmF2aWdhdGlvbiAqKW5hdmlnYXRpb24gdXNlckluZm86KGlkIDxOU1NlY3VyZUNvZGluZz4pdXNl
ckluZm8gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKKy0gKHZv
aWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkRmFpbE5hdmlnYXRpb246KFdLTmF2
aWdhdGlvbiAqKW5hdmlnYXRpb24gd2l0aEVycm9yOihOU0Vycm9yICopZXJyb3IgdXNlckluZm86
KGlkIDxOU1NlY3VyZUNvZGluZz4pdXNlckluZm8gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4x
My40KSwgaW9zKDExLjMpKTsKIAotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmll
dyBVUkw6KE5TVVJMICopdXJsIGNvbnRlbnRSdWxlTGlzdElkZW50aWZpZXJzOihOU0FycmF5PE5T
U3RyaW5nICo+ICopaWRlbnRpZmllcnMgbm90aWZpY2F0aW9uczooTlNBcnJheTxOU1N0cmluZyAq
PiAqKW5vdGlmaWNhdGlvbnMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCksIGlvcygx
MS4zKSk7Ci0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHdlYkNvbnRlbnRQ
cm9jZXNzRGlkVGVybWluYXRlV2l0aFJlYXNvbjooX1dLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29u
KXJlYXNvbiBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xNCksIGlvcygxMi4wKSk7CistICh2
b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IFVSTDooTlNVUkwgKil1cmwgY29udGVu
dFJ1bGVMaXN0SWRlbnRpZmllcnM6KE5TQXJyYXk8TlNTdHJpbmcgKj4gKilpZGVudGlmaWVycyBu
b3RpZmljYXRpb25zOihOU0FycmF5PE5TU3RyaW5nICo+ICopbm90aWZpY2F0aW9ucyBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOworLSAodm9pZClfd2ViVmlldzoo
V0tXZWJWaWV3ICopd2ViVmlldyB3ZWJDb250ZW50UHJvY2Vzc0RpZFRlcm1pbmF0ZVdpdGhSZWFz
b246KF9XS1Byb2Nlc3NUZXJtaW5hdGlvblJlYXNvbilyZWFzb24gV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMC4xNCksIGlvcygxMi4wKSk7CiAKICNpZiBUQVJHRVRfT1NfSVBIT05FCiAtICh2b2lk
KV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZFN0YXJ0TG9hZEZvclF1aWNrTG9va0Rv
Y3VtZW50SW5NYWluRnJhbWVXaXRoRmlsZU5hbWU6KE5TU3RyaW5nICopZmlsZU5hbWUgdXRpOihO
U1N0cmluZyAqKXV0aTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlk
RmluaXNoTG9hZEZvclF1aWNrTG9va0RvY3VtZW50SW5NYWluRnJhbWU6KE5TRGF0YSAqKWRvY3Vt
ZW50RGF0YTsKIC0gKHZvaWQpX3dlYlZpZXdEaWRSZXF1ZXN0UGFzc3dvcmRGb3JRdWlja0xvb2tE
b2N1bWVudDooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKGlvcygxMS4wKSk7
CiAjZWxzZQotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyB3ZWJHTExvYWRQ
b2xpY3lGb3JVUkw6KE5TVVJMICopdXJsIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoX1dLV2Vi
R0xMb2FkUG9saWN5KSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAu
MTMuNCkpOwotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXNvbHZlV2Vi
R0xMb2FkUG9saWN5Rm9yVVJMOihOU1VSTCAqKXVybCBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4p
KF9XS1dlYkdMTG9hZFBvbGljeSkpZGVjaXNpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KDEwLjEzLjQpKTsKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgd2ls
bEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtOihXS0JhY2tGb3J3YXJkTGlzdEl0ZW0gKilpdGVtIGlu
UGFnZUNhY2hlOihCT09MKWluUGFnZUNhY2hlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEz
LjQpKTsKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkRmFpbFRvSW5p
dGlhbGl6ZVBsdWdJbldpdGhJbmZvOihOU0RpY3Rpb25hcnkgKilpbmZvIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3N4KDEwLjEzLjQpKTsKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZp
ZXcgZGlkQmxvY2tJbnNlY3VyZVBsdWdpblZlcnNpb25XaXRoSW5mbzooTlNEaWN0aW9uYXJ5ICop
aW5mbyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xNCkpOwotLSAodm9pZClfd2ViVmlldzoo
V0tXZWJWaWV3ICopd2ViVmlldyBkZWNpZGVQb2xpY3lGb3JQbHVnaW5Mb2FkV2l0aEN1cnJlbnRQ
b2xpY3k6KF9XS1BsdWdpbk1vZHVsZUxvYWRQb2xpY3kpcG9saWN5IHBsdWdpbkluZm86KE5TRGlj
dGlvbmFyeSAqKWluZm8gY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKF9XS1BsdWdpbk1vZHVs
ZUxvYWRQb2xpY3kgcG9saWN5LCBOU1N0cmluZyAqIHVuYXZhaWxhYmlsaXR5RGVzY3JpcHRpb24p
KWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsK
LS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgYmFja0ZvcndhcmRMaXN0SXRl
bUFkZGVkOihXS0JhY2tGb3J3YXJkTGlzdEl0ZW0gKilpdGVtQWRkZWQgcmVtb3ZlZDooTlNBcnJh
eTxXS0JhY2tGb3J3YXJkTGlzdEl0ZW0gKj4gKilpdGVtc1JlbW92ZWQgV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goMTAuMTMuNCkpOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmll
dyB3ZWJHTExvYWRQb2xpY3lGb3JVUkw6KE5TVVJMICopdXJsIGRlY2lzaW9uSGFuZGxlcjoodm9p
ZCAoXikoX1dLV2ViR0xMb2FkUG9saWN5KSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMC4xMy40KSk7CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IHJlc29sdmVXZWJHTExvYWRQb2xpY3lGb3JVUkw6KE5TVVJMICopdXJsIGRlY2lzaW9uSGFuZGxl
cjoodm9pZCAoXikoX1dLV2ViR0xMb2FkUG9saWN5KSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMC4xMy40KSk7CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3
ZWJWaWV3IHdpbGxHb1RvQmFja0ZvcndhcmRMaXN0SXRlbTooV0tCYWNrRm9yd2FyZExpc3RJdGVt
ICopaXRlbSBpblBhZ2VDYWNoZTooQk9PTClpblBhZ2VDYWNoZSBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDEwLjEzLjQpKTsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlk
RmFpbFRvSW5pdGlhbGl6ZVBsdWdJbldpdGhJbmZvOihOU0RpY3Rpb25hcnkgKilpbmZvIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3
ICopd2ViVmlldyBkaWRCbG9ja0luc2VjdXJlUGx1Z2luVmVyc2lvbldpdGhJbmZvOihOU0RpY3Rp
b25hcnkgKilpbmZvIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpKTsKKy0gKHZvaWQpX3dl
YlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGVjaWRlUG9saWN5Rm9yUGx1Z2luTG9hZFdpdGhD
dXJyZW50UG9saWN5OihfV0tQbHVnaW5Nb2R1bGVMb2FkUG9saWN5KXBvbGljeSBwbHVnaW5JbmZv
OihOU0RpY3Rpb25hcnkgKilpbmZvIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShfV0tQbHVn
aW5Nb2R1bGVMb2FkUG9saWN5IHBvbGljeSwgTlNTdHJpbmcgKiB1bmF2YWlsYWJpbGl0eURlc2Ny
aXB0aW9uKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19U
QkEpKTsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgYmFja0ZvcndhcmRM
aXN0SXRlbUFkZGVkOihXS0JhY2tGb3J3YXJkTGlzdEl0ZW0gKilpdGVtQWRkZWQgcmVtb3ZlZDoo
TlNBcnJheTxXS0JhY2tGb3J3YXJkTGlzdEl0ZW0gKj4gKilpdGVtc1JlbW92ZWQgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMC4xMy40KSk7CiAjZW5kaWYKIAogQGVuZApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvblJlc3BvbnNlLmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uUmVzcG9uc2UuaApp
bmRleCBmM2IzOGRjZDQxZTIxMTJmOTE4YWI5MWQ5MDI4YzdiYWIzOTQ3OGY5Li5mODlhYjIwZDhi
MDhjMzIwZDhmMjk0MDJmZWQyNDE4MjE3OGNkN2RhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uUmVzcG9uc2UuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uUmVzcG9uc2UuaApAQCAtMzMs
NyArMzMsNyBAQCBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogCiAvKiEgQ29udGFpbnMgaW5mb3Jt
YXRpb24gYWJvdXQgYSBuYXZpZ2F0aW9uIHJlc3BvbnNlLCB1c2VkIGZvciBtYWtpbmcgcG9saWN5
IGRlY2lzaW9ucy4KICAqLwotV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4
LjApKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJm
YWNlIFdLTmF2aWdhdGlvblJlc3BvbnNlIDogTlNPYmplY3QKIAogLyohIEBhYnN0cmFjdCBBIEJv
b2xlYW4gdmFsdWUgaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBmcmFtZSBiZWluZyBuYXZpZ2F0ZWQg
aXMgdGhlIG1haW4gZnJhbWUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tPcGVuUGFuZWxQYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tPcGVuUGFuZWxQYXJhbWV0ZXJzLmgKaW5kZXggYmE1ODYxMDc0MzMwZjk4
YWYzMjk0M2RkN2NhNWU5ZDAxNTZkMWQ1Yi4uYmZmNzE4MmYyY2NhYjhjYjQ4YTg2OGU5OWFlOGU3
MjQ4NWNlNDg4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLT3BlblBhbmVsUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS09wZW5QYW5lbFBhcmFtZXRlcnMuaApAQCAtMzMsNyArMzMsNyBAQCBOU19BU1NV
TUVfTk9OTlVMTF9CRUdJTgogCiAvKiEgV0tPcGVuUGFuZWxQYXJhbWV0ZXJzIGNvbnRhaW5zIHBh
cmFtZXRlcnMgdGhhdCBhIGZpbGUgdXBsb2FkIGNvbnRyb2wgaGFzIHNwZWNpZmllZC4KICAqLwot
V0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMikpCitXS19DTEFTU19BVkFJTEFCTEUobWFj
b3MoMTAuMTIpKQogQGludGVyZmFjZSBXS09wZW5QYW5lbFBhcmFtZXRlcnMgOiBOU09iamVjdAog
CiAvKiEgQGFic3RyYWN0IFdoZXRoZXIgdGhlIGZpbGUgdXBsb2FkIGNvbnRyb2wgc3VwcG9ydHMg
bXVsdGlwbGUgZmlsZXMuCkBAIC00Miw3ICs0Miw3IEBAIFdLX0NMQVNTX0FWQUlMQUJMRShtYWNv
c3goMTAuMTIpKQogCiAvKiEgQGFic3RyYWN0IFdoZXRoZXIgdGhlIGZpbGUgdXBsb2FkIGNvbnRy
b2wgc3VwcG9ydHMgc2VsZWN0aW5nIGRpcmVjdG9yaWVzLgogICovCi1AcHJvcGVydHkgKG5vbmF0
b21pYywgcmVhZG9ubHkpIEJPT0wgYWxsb3dzRGlyZWN0b3JpZXMgV0tfQVBJX0FWQUlMQUJMRSht
YWNvc3goMTAuMTMuNCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIGFs
bG93c0RpcmVjdG9yaWVzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOwogCiBAZW5k
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS09wZW5Q
YW5lbFBhcmFtZXRlcnNQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tPcGVuUGFuZWxQYXJhbWV0ZXJzUHJpdmF0ZS5oCmluZGV4IDlhMTNmNTlkMjIxZDEyYzZh
ZmZhOGZlZWQ4OTc1NzgxNWEwMjA3MWIuLjEzYmE3ZDgzZDY2NjQ3YTQ2YjFjMzQxMzcwYjc4OTdl
MjM0YWFjOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S09wZW5QYW5lbFBhcmFtZXRlcnNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLT3BlblBhbmVsUGFyYW1ldGVyc1ByaXZhdGUuaApAQCAtMjksOCArMjks
OCBAQAogCiBAaW50ZXJmYWNlIFdLT3BlblBhbmVsUGFyYW1ldGVycyAoV0tQcml2YXRlKQogCi1A
cHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGNvcHkpIE5TQXJyYXk8TlNTdHJpbmcgKj4g
Kl9hY2NlcHRlZE1JTUVUeXBlcyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSk7Ci1A
cHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGNvcHkpIE5TQXJyYXk8TlNTdHJpbmcgKj4g
Kl9hY2NlcHRlZEZpbGVFeHRlbnNpb25zIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQp
KTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgY29weSkgTlNBcnJheTxOU1N0cmlu
ZyAqPiAqX2FjY2VwdGVkTUlNRVR5cGVzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkp
OworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBjb3B5KSBOU0FycmF5PE5TU3RyaW5n
ICo+ICpfYWNjZXB0ZWRGaWxlRXh0ZW5zaW9ucyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEz
LjQpKTsKIAogQGVuZAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tQcmVmZXJlbmNlcy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLUHJlZmVyZW5jZXMuaAppbmRleCAxYTA3ODYxZDNjOWU0NDlkMjQ5YTAwYTgwY2JlNDI4ZjVh
MDdkZjBhLi5mNGU3M2E3NGMyOTQ4MDFiODM3NDFlODM0MDBjM2ZiMjU0YTkyMzgxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLmgKQEAg
LTMyLDcgKzMyLDcgQEAKICB2aWV3LiBUaGUgcHJlZmVyZW5jZXMgb2JqZWN0IGFzc29jaWF0ZWQg
d2l0aCBhIHdlYiB2aWV3IGlzIHNwZWNpZmllZCBieQogIGl0cyB3ZWIgdmlldyBjb25maWd1cmF0
aW9uLgogICovCi1XS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCitX
S19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2UgV0tQ
cmVmZXJlbmNlcyA6IE5TT2JqZWN0IDxOU1NlY3VyZUNvZGluZz4KIAogLyohIEBhYnN0cmFjdCBU
aGUgbWluaW11bSBmb250IHNpemUgaW4gcG9pbnRzLgpAQCAtNjcsNyArNjcsNyBAQCBXS19DTEFT
U19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCiAgQGFic3RyYWN0IElmIHRhYkZv
Y3VzZXNMaW5rcyBpcyBZRVMsIHRoZSB0YWIga2V5IHdpbGwgZm9jdXMgbGlua3MgYW5kIGZvcm0g
Y29udHJvbHMuCiAgVGhlIE9wdGlvbiBrZXkgdGVtcG9yYXJpbHkgcmV2ZXJzZXMgdGhpcyBwcmVm
ZXJlbmNlLgogICovCi1AcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCB0YWJGb2N1c2VzTGlua3Mg
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIuMykpOworQHByb3BlcnR5IChub25hdG9taWMp
IEJPT0wgdGFiRm9jdXNlc0xpbmtzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIuMykpOwog
I2VuZGlmCiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmgKaW5kZXggYWFjYzE4ZDNlZjZiNTZjOGM4Nzc1
YjYzMjAzZTg5ZDVmZWNjYmM5Ni4uNWU2NjUxNjc3OGE0YTE1NmQyZTA5MjkzMjAyM2RkNDdkNDg3
NzY3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJl
ZmVyZW5jZXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLUHJlZmVyZW5jZXNQcml2YXRlLmgKQEAgLTM0LDE2ICszNCwxNiBAQCB0eXBlZGVmIE5TX0VO
VU0oTlNJbnRlZ2VyLCBfV0tTdG9yYWdlQmxvY2tpbmdQb2xpY3kpIHsKICAgICBfV0tTdG9yYWdl
QmxvY2tpbmdQb2xpY3lBbGxvd0FsbCwKICAgICBfV0tTdG9yYWdlQmxvY2tpbmdQb2xpY3lCbG9j
a1RoaXJkUGFydHksCiAgICAgX1dLU3RvcmFnZUJsb2NraW5nUG9saWN5QmxvY2tBbGwsCi19IFdL
X0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpOworfSBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDEwLjEwKSwgaW9zKDguMCkpOwogCiB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50
ZWdlciwgX1dLRGVidWdPdmVybGF5UmVnaW9ucykgewogICAgIF9XS05vbkZhc3RTY3JvbGxhYmxl
UmVnaW9uID0gMSA8PCAwLAogICAgIF9XS1doZWVsRXZlbnRIYW5kbGVyUmVnaW9uID0gMSA8PCAx
Ci19IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOworfSBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDEwLjExKSwgaW9zKDkuMCkpOwogCiB0eXBlZGVmIE5TX09QVElPTlMo
TlNVSW50ZWdlciwgX1dLSmF2YVNjcmlwdFJ1bnRpbWVGbGFncykgewogICAgIF9XS0phdmFTY3Jp
cHRSdW50aW1lRmxhZ3NBbGxFbmFibGVkID0gMAotfSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgx
MC4xMSksIGlvcyg5LjApKTsKK30gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMSksIGlvcyg5
LjApKTsKIAogdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLRWRpdGFibGVMaW5rQmVoYXZp
b3IpIHsKICAgICBfV0tFZGl0YWJsZUxpbmtCZWhhdmlvckRlZmF1bHQsCkBAIC01MSw3ICs1MSw3
IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS0VkaXRhYmxlTGlua0JlaGF2aW9yKSB7
CiAgICAgX1dLRWRpdGFibGVMaW5rQmVoYXZpb3JPbmx5TGl2ZVdpdGhTaGlmdEtleSwKICAgICBf
V0tFZGl0YWJsZUxpbmtCZWhhdmlvckxpdmVXaGVuTm90Rm9jdXNlZCwKICAgICBfV0tFZGl0YWJs
ZUxpbmtCZWhhdmlvck5ldmVyTGl2ZSwKLX0gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMu
NCksIGlvcygxMS4zKSk7Cit9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygx
MS4zKSk7CiAKIEBjbGFzcyBfV0tFeHBlcmltZW50YWxGZWF0dXJlOwogQGNsYXNzIF9XS0ludGVy
bmFsRGVidWdGZWF0dXJlOwpAQCAtNjgsMTM4ICs2OCwxMzggQEAgdHlwZWRlZiBOU19FTlVNKE5T
SW50ZWdlciwgX1dLRWRpdGFibGVMaW5rQmVoYXZpb3IpIHsKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
LCBzZXR0ZXI9X3NldENvbXBvc2l0aW5nQm9yZGVyc1Zpc2libGU6KSBCT09MIF9jb21wb3NpdGlu
Z0JvcmRlcnNWaXNpYmxlOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0Q29tcG9z
aXRpbmdSZXBhaW50Q291bnRlcnNWaXNpYmxlOikgQk9PTCBfY29tcG9zaXRpbmdSZXBhaW50Q291
bnRlcnNWaXNpYmxlOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0VGlsZWRTY3Jv
bGxpbmdJbmRpY2F0b3JWaXNpYmxlOikgQk9PTCBfdGlsZWRTY3JvbGxpbmdJbmRpY2F0b3JWaXNp
YmxlOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0UmVzb3VyY2VVc2FnZU92ZXJs
YXlWaXNpYmxlOikgQk9PTCBfcmVzb3VyY2VVc2FnZU92ZXJsYXlWaXNpYmxlIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBz
ZXR0ZXI9X3NldFZpc2libGVEZWJ1Z092ZXJsYXlSZWdpb25zOikgX1dLRGVidWdPdmVybGF5UmVn
aW9ucyBfdmlzaWJsZURlYnVnT3ZlcmxheVJlZ2lvbnMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3go
MTAuMTEpLCBpb3MoOS4wKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRTaW1w
bGVMaW5lTGF5b3V0RW5hYmxlZDopIEJPT0wgX3NpbXBsZUxpbmVMYXlvdXRFbmFibGVkIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsKLUBwcm9wZXJ0eSAobm9uYXRv
bWljLCBzZXR0ZXI9X3NldFNpbXBsZUxpbmVMYXlvdXREZWJ1Z0JvcmRlcnNFbmFibGVkOikgQk9P
TCBfc2ltcGxlTGluZUxheW91dERlYnVnQm9yZGVyc0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRSht
YWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9z
ZXRDb250ZW50Q2hhbmdlT2JzZXJ2ZXJFbmFibGVkOikgQk9PTCBfY29udGVudENoYW5nZU9ic2Vy
dmVyRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lP
U19UQkEpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFjY2VsZXJhdGVkRHJh
d2luZ0VuYWJsZWQ6KSBCT09MIF9hY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBz
ZXR0ZXI9X3NldERpc3BsYXlMaXN0RHJhd2luZ0VuYWJsZWQ6KSBCT09MIF9kaXNwbGF5TGlzdERy
YXdpbmdFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsK
LUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldExhcmdlSW1hZ2VBc3luY0RlY29kaW5n
RW5hYmxlZDopIEJPT0wgX2xhcmdlSW1hZ2VBc3luY0RlY29kaW5nRW5hYmxlZCBXS19BUElfQVZB
SUxBQkxFKG1hY29zeCgxMC4xMi4zKSwgaW9zKDEwLjMpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWlj
LCBzZXR0ZXI9X3NldEFuaW1hdGVkSW1hZ2VBc3luY0RlY29kaW5nRW5hYmxlZDopIEJPT0wgX2Fu
aW1hdGVkSW1hZ2VBc3luY0RlY29kaW5nRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgx
MC4xMi4zKSwgaW9zKDEwLjMpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFRl
eHRBdXRvc2l6aW5nRW5hYmxlZDopIEJPT0wgX3RleHRBdXRvc2l6aW5nRW5hYmxlZCBXS19BUElf
QVZBSUxBQkxFKG1hY29zeCgxMC4xMiksIGlvcygxMC4wKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21p
Yywgc2V0dGVyPV9zZXRTdWJwaXhlbEFudGlhbGlhc2VkTGF5ZXJUZXh0RW5hYmxlZDopIEJPT0wg
X3N1YnBpeGVsQW50aWFsaWFzZWRMYXllclRleHRFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KDEwLjEyKSwgaW9zKDEwLjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3Nl
dFJlc291cmNlVXNhZ2VPdmVybGF5VmlzaWJsZTopIEJPT0wgX3Jlc291cmNlVXNhZ2VPdmVybGF5
VmlzaWJsZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFZpc2libGVEZWJ1Z092ZXJsYXlSZWdpb25zOikg
X1dLRGVidWdPdmVybGF5UmVnaW9ucyBfdmlzaWJsZURlYnVnT3ZlcmxheVJlZ2lvbnMgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMC4xMSksIGlvcyg5LjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWlj
LCBzZXR0ZXI9X3NldFNpbXBsZUxpbmVMYXlvdXRFbmFibGVkOikgQk9PTCBfc2ltcGxlTGluZUxh
eW91dEVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CitA
cHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRTaW1wbGVMaW5lTGF5b3V0RGVidWdCb3Jk
ZXJzRW5hYmxlZDopIEJPT0wgX3NpbXBsZUxpbmVMYXlvdXREZWJ1Z0JvcmRlcnNFbmFibGVkIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTEpLCBpb3MoOS4wKSk7CitAcHJvcGVydHkgKG5vbmF0
b21pYywgc2V0dGVyPV9zZXRDb250ZW50Q2hhbmdlT2JzZXJ2ZXJFbmFibGVkOikgQk9PTCBfY29u
dGVudENoYW5nZU9ic2VydmVyRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19U
QkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0
QWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZDopIEJPT0wgX2FjY2VsZXJhdGVkRHJhd2luZ0VuYWJs
ZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CitAcHJvcGVydHkg
KG5vbmF0b21pYywgc2V0dGVyPV9zZXREaXNwbGF5TGlzdERyYXdpbmdFbmFibGVkOikgQk9PTCBf
ZGlzcGxheUxpc3REcmF3aW5nRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwg
aW9zKDEwLjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldExhcmdlSW1hZ2VB
c3luY0RlY29kaW5nRW5hYmxlZDopIEJPT0wgX2xhcmdlSW1hZ2VBc3luY0RlY29kaW5nRW5hYmxl
ZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyLjMpLCBpb3MoMTAuMykpOworQHByb3BlcnR5
IChub25hdG9taWMsIHNldHRlcj1fc2V0QW5pbWF0ZWRJbWFnZUFzeW5jRGVjb2RpbmdFbmFibGVk
OikgQk9PTCBfYW5pbWF0ZWRJbWFnZUFzeW5jRGVjb2RpbmdFbmFibGVkIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTAuMTIuMyksIGlvcygxMC4zKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0
dGVyPV9zZXRUZXh0QXV0b3NpemluZ0VuYWJsZWQ6KSBCT09MIF90ZXh0QXV0b3NpemluZ0VuYWJs
ZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CitAcHJvcGVydHkg
KG5vbmF0b21pYywgc2V0dGVyPV9zZXRTdWJwaXhlbEFudGlhbGlhc2VkTGF5ZXJUZXh0RW5hYmxl
ZDopIEJPT0wgX3N1YnBpeGVsQW50aWFsaWFzZWRMYXllclRleHRFbmFibGVkIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywg
c2V0dGVyPV9zZXREZXZlbG9wZXJFeHRyYXNFbmFibGVkOikgQk9PTCBfZGV2ZWxvcGVyRXh0cmFz
RW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldERldmVsb3BlckV4dHJhc0VuYWJsZWQ6KSBCT09M
IF9kZXZlbG9wZXJFeHRyYXNFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTEpLCBp
b3MoOS4wKSk7CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldExvZ3NQYWdlTWVz
c2FnZXNUb1N5c3RlbUNvbnNvbGVFbmFibGVkOikgQk9PTCBfbG9nc1BhZ2VNZXNzYWdlc1RvU3lz
dGVtQ29uc29sZUVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4w
KSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRMb2dzUGFnZU1lc3NhZ2VzVG9T
eXN0ZW1Db25zb2xlRW5hYmxlZDopIEJPT0wgX2xvZ3NQYWdlTWVzc2FnZXNUb1N5c3RlbUNvbnNv
bGVFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTEpLCBpb3MoOS4wKSk7CiAKLUBw
cm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEhpZGRlblBhZ2VET01UaW1lclRocm90dGxp
bmdFbmFibGVkOikgQk9PTCBfaGlkZGVuUGFnZURPTVRpbWVyVGhyb3R0bGluZ0VuYWJsZWQgV0tf
QVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3MoMTAuMCkpOwotQHByb3BlcnR5IChub25h
dG9taWMsIHNldHRlcj1fc2V0SGlkZGVuUGFnZURPTVRpbWVyVGhyb3R0bGluZ0F1dG9JbmNyZWFz
ZXM6KSBCT09MIF9oaWRkZW5QYWdlRE9NVGltZXJUaHJvdHRsaW5nQXV0b0luY3JlYXNlcyBXS19B
UElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMiksIGlvcygxMC4wKSk7Ci1AcHJvcGVydHkgKG5vbmF0
b21pYywgc2V0dGVyPV9zZXRQYWdlVmlzaWJpbGl0eUJhc2VkUHJvY2Vzc1N1cHByZXNzaW9uRW5h
YmxlZDopIEJPT0wgX3BhZ2VWaXNpYmlsaXR5QmFzZWRQcm9jZXNzU3VwcHJlc3Npb25FbmFibGVk
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsKK0Bwcm9wZXJ0eSAo
bm9uYXRvbWljLCBzZXR0ZXI9X3NldEhpZGRlblBhZ2VET01UaW1lclRocm90dGxpbmdFbmFibGVk
OikgQk9PTCBfaGlkZGVuUGFnZURPTVRpbWVyVGhyb3R0bGluZ0VuYWJsZWQgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0
dGVyPV9zZXRIaWRkZW5QYWdlRE9NVGltZXJUaHJvdHRsaW5nQXV0b0luY3JlYXNlczopIEJPT0wg
X2hpZGRlblBhZ2VET01UaW1lclRocm90dGxpbmdBdXRvSW5jcmVhc2VzIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRl
cj1fc2V0UGFnZVZpc2liaWxpdHlCYXNlZFByb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQ6KSBCT09M
IF9wYWdlVmlzaWJpbGl0eUJhc2VkUHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZCBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKIAotQHByb3BlcnR5IChub25hdG9taWMs
IHNldHRlcj1fc2V0QWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzOikgQk9PTCBfYWxsb3dGaWxl
QWNjZXNzRnJvbUZpbGVVUkxzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDku
MCkpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0SmF2YVNjcmlwdFJ1bnRpbWVG
bGFnczopIF9XS0phdmFTY3JpcHRSdW50aW1lRmxhZ3MgX2phdmFTY3JpcHRSdW50aW1lRmxhZ3Mg
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CitAcHJvcGVydHkgKG5v
bmF0b21pYywgc2V0dGVyPV9zZXRBbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHM6KSBCT09MIF9h
bGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMSks
IGlvcyg5LjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEphdmFTY3JpcHRS
dW50aW1lRmxhZ3M6KSBfV0tKYXZhU2NyaXB0UnVudGltZUZsYWdzIF9qYXZhU2NyaXB0UnVudGlt
ZUZsYWdzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTEpLCBpb3MoOS4wKSk7CiAKLUBwcm9w
ZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFN0YW5kYWxvbmU6LCBnZXR0ZXI9X2lzU3RhbmRh
bG9uZSkgQk9PTCBfc3RhbmRhbG9uZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlv
cyg5LjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFN0YW5kYWxvbmU6LCBn
ZXR0ZXI9X2lzU3RhbmRhbG9uZSkgQk9PTCBfc3RhbmRhbG9uZSBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDEwLjExKSwgaW9zKDkuMCkpOwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9z
ZXREaWFnbm9zdGljTG9nZ2luZ0VuYWJsZWQ6KSBCT09MIF9kaWFnbm9zdGljTG9nZ2luZ0VuYWJs
ZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CitAcHJvcGVydHkg
KG5vbmF0b21pYywgc2V0dGVyPV9zZXREaWFnbm9zdGljTG9nZ2luZ0VuYWJsZWQ6KSBCT09MIF9k
aWFnbm9zdGljTG9nZ2luZ0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMSksIGlv
cyg5LjApKTsKIAotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0RGVmYXVsdEZvbnRT
aXplOikgTlNVSW50ZWdlciBfZGVmYXVsdEZvbnRTaXplIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KDEwLjEyKSwgaW9zKDEwLjApKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldERl
ZmF1bHRGaXhlZFBpdGNoRm9udFNpemU6KSBOU1VJbnRlZ2VyIF9kZWZhdWx0Rml4ZWRQaXRjaEZv
bnRTaXplIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsKLUBwcm9w
ZXJ0eSAobm9uYXRvbWljLCBjb3B5LCBzZXR0ZXI9X3NldEZpeGVkUGl0Y2hGb250RmFtaWx5Oikg
TlNTdHJpbmcgKl9maXhlZFBpdGNoRm9udEZhbWlseSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgx
MC4xMiksIGlvcygxMC4wKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXREZWZh
dWx0Rm9udFNpemU6KSBOU1VJbnRlZ2VyIF9kZWZhdWx0Rm9udFNpemUgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVy
PV9zZXREZWZhdWx0Rml4ZWRQaXRjaEZvbnRTaXplOikgTlNVSW50ZWdlciBfZGVmYXVsdEZpeGVk
UGl0Y2hGb250U2l6ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsK
K0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5LCBzZXR0ZXI9X3NldEZpeGVkUGl0Y2hGb250RmFt
aWx5OikgTlNTdHJpbmcgKl9maXhlZFBpdGNoRm9udEZhbWlseSBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDEwLjEyKSwgaW9zKDEwLjApKTsKIAogLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIGNvbmZp
Z3VyZWQgb24gdGhlIFdLV2Vic2l0ZURhdGFTdG9yZS4KIC8vIEZJWE1FOiBUaGlzIHByb3BlcnR5
IHNob3VsZCBub3QgaGF2ZSB0aGUgdmVyYiAiaXMiIGluIGl0LgogQHByb3BlcnR5IChub25hdG9t
aWMsIHNldHRlcj1fc2V0T2ZmbGluZUFwcGxpY2F0aW9uQ2FjaGVJc0VuYWJsZWQ6KSBCT09MIF9v
ZmZsaW5lQXBwbGljYXRpb25DYWNoZUlzRW5hYmxlZDsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBz
ZXR0ZXI9X3NldEZ1bGxTY3JlZW5FbmFibGVkOikgQk9PTCBfZnVsbFNjcmVlbkVuYWJsZWQgV0tf
QVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7Ci1AcHJvcGVydHkgKG5vbmF0
b21pYywgc2V0dGVyPV9zZXRTaG91bGRTdXBwcmVzc0tleWJvYXJkSW5wdXREdXJpbmdQcm92aXNp
b25hbE5hdmlnYXRpb246KSBCT09MIF9zaG91bGRTdXBwcmVzc0tleWJvYXJkSW5wdXREdXJpbmdQ
cm92aXNpb25hbE5hdmlnYXRpb24gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIuMyksIGlv
cygxMC4zKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBbGxvd3NQaWN0dXJl
SW5QaWN0dXJlTWVkaWFQbGF5YmFjazopIEJPT0wgX2FsbG93c1BpY3R1cmVJblBpY3R1cmVNZWRp
YVBsYXliYWNrIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzKSwgaW9zKDExLjApKTsKK0Bw
cm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEZ1bGxTY3JlZW5FbmFibGVkOikgQk9PTCBf
ZnVsbFNjcmVlbkVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMSksIGlvcyg5LjAp
KTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFNob3VsZFN1cHByZXNzS2V5Ym9h
cmRJbnB1dER1cmluZ1Byb3Zpc2lvbmFsTmF2aWdhdGlvbjopIEJPT0wgX3Nob3VsZFN1cHByZXNz
S2V5Ym9hcmRJbnB1dER1cmluZ1Byb3Zpc2lvbmFsTmF2aWdhdGlvbiBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjEyLjMpLCBpb3MoMTAuMykpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRl
cj1fc2V0QWxsb3dzUGljdHVyZUluUGljdHVyZU1lZGlhUGxheWJhY2s6KSBCT09MIF9hbGxvd3NQ
aWN0dXJlSW5QaWN0dXJlTWVkaWFQbGF5YmFjayBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEz
KSwgaW9zKDExLjApKTsKIAotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0QXBwbGVQ
YXlDYXBhYmlsaXR5RGlzY2xvc3VyZUFsbG93ZWQ6KSBCT09MIF9hcHBsZVBheUNhcGFiaWxpdHlE
aXNjbG9zdXJlQWxsb3dlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMiksIGlvcygxMC4w
KSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBcHBsZVBheUNhcGFiaWxpdHlE
aXNjbG9zdXJlQWxsb3dlZDopIEJPT0wgX2FwcGxlUGF5Q2FwYWJpbGl0eURpc2Nsb3N1cmVBbGxv
d2VkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOwogCi1AcHJvcGVy
dHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHk6KSBCT09M
IF9sb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMp
LCBpb3MoMTEuMCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0TG9hZHNJbWFn
ZXNBdXRvbWF0aWNhbGx5OikgQk9PTCBfbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5IFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpOwogCi1AcHJvcGVydHkgKG5vbmF0b21p
Yywgc2V0dGVyPV9zZXRQZWVyQ29ubmVjdGlvbkVuYWJsZWQ6KSBCT09MIF9wZWVyQ29ubmVjdGlv
bkVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCksIGlvcygxMS4zKSk7Ci1A
cHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRNZWRpYURldmljZXNFbmFibGVkOikgQk9P
TCBfbWVkaWFEZXZpY2VzRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlv
cygxMS4wKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRTY3JlZW5DYXB0dXJl
RW5hYmxlZDopIEJPT0wgX3NjcmVlbkNhcHR1cmVFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KDEwLjEzLjQpLCBpb3MoMTEuMykpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1f
c2V0TW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZDopIEJPT0wgX21vY2tDYXB0dXJlRGV2aWNlc0Vu
YWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpOwotQHByb3Bl
cnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0TW9ja0NhcHR1cmVEZXZpY2VzUHJvbXB0RW5hYmxl
ZDopIEJPT0wgX21vY2tDYXB0dXJlRGV2aWNlc1Byb21wdEVuYWJsZWQgV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goMTAuMTMuNCksIGlvcygxMS4zKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0
dGVyPV9zZXRNZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb246KSBCT09MIF9tZWRp
YUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3go
MTAuMTMpLCBpb3MoMTEuMCkpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0RW51
bWVyYXRpbmdBbGxOZXR3b3JrSW50ZXJmYWNlc0VuYWJsZWQ6KSBCT09MIF9lbnVtZXJhdGluZ0Fs
bE5ldHdvcmtJbnRlcmZhY2VzRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyks
IGlvcygxMS4wKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRJQ0VDYW5kaWRh
dGVGaWx0ZXJpbmdFbmFibGVkOikgQk9PTCBfaWNlQ2FuZGlkYXRlRmlsdGVyaW5nRW5hYmxlZCBX
S19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSwgaW9zKDExLjMpKTsKLUBwcm9wZXJ0eSAo
bm9uYXRvbWljLCBzZXR0ZXI9X3NldFdlYlJUQ0xlZ2FjeUFQSUVuYWJsZWQ6KSBCT09MIF93ZWJS
VENMZWdhY3lBUElFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzKSwgaW9zKDEx
LjApKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEluYWN0aXZlTWVkaWFDYXB0
dXJlU3RlYW1SZXByb21wdEludGVydmFsSW5NaW51dGVzOikgZG91YmxlIF9pbmFjdGl2ZU1lZGlh
Q2FwdHVyZVN0ZWFtUmVwcm9tcHRJbnRlcnZhbEluTWludXRlcyBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeCgxMC4xMy40KSwgaW9zKDExLjMpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9
X3NldFBlZXJDb25uZWN0aW9uRW5hYmxlZDopIEJPT0wgX3BlZXJDb25uZWN0aW9uRW5hYmxlZCBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOworQHByb3BlcnR5IChu
b25hdG9taWMsIHNldHRlcj1fc2V0TWVkaWFEZXZpY2VzRW5hYmxlZDopIEJPT0wgX21lZGlhRGV2
aWNlc0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSk7CitA
cHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRTY3JlZW5DYXB0dXJlRW5hYmxlZDopIEJP
T0wgX3NjcmVlbkNhcHR1cmVFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCks
IGlvcygxMS4zKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRNb2NrQ2FwdHVy
ZURldmljZXNFbmFibGVkOikgQk9PTCBfbW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWlj
LCBzZXR0ZXI9X3NldE1vY2tDYXB0dXJlRGV2aWNlc1Byb21wdEVuYWJsZWQ6KSBCT09MIF9tb2Nr
Q2FwdHVyZURldmljZXNQcm9tcHRFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMu
NCksIGlvcygxMS4zKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRNZWRpYUNh
cHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb246KSBCT09MIF9tZWRpYUNhcHR1cmVSZXF1aXJl
c1NlY3VyZUNvbm5lY3Rpb24gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4w
KSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRFbnVtZXJhdGluZ0FsbE5ldHdv
cmtJbnRlcmZhY2VzRW5hYmxlZDopIEJPT0wgX2VudW1lcmF0aW5nQWxsTmV0d29ya0ludGVyZmFj
ZXNFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpOworQHBy
b3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0SUNFQ2FuZGlkYXRlRmlsdGVyaW5nRW5hYmxl
ZDopIEJPT0wgX2ljZUNhbmRpZGF0ZUZpbHRlcmluZ0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9
X3NldFdlYlJUQ0xlZ2FjeUFQSUVuYWJsZWQ6KSBCT09MIF93ZWJSVENMZWdhY3lBUElFbmFibGVk
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpOworQHByb3BlcnR5IChu
b25hdG9taWMsIHNldHRlcj1fc2V0SW5hY3RpdmVNZWRpYUNhcHR1cmVTdGVhbVJlcHJvbXB0SW50
ZXJ2YWxJbk1pbnV0ZXM6KSBkb3VibGUgX2luYWN0aXZlTWVkaWFDYXB0dXJlU3RlYW1SZXByb21w
dEludGVydmFsSW5NaW51dGVzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygx
MS4zKSk7CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEphdmFTY3JpcHRDYW5B
Y2Nlc3NDbGlwYm9hcmQ6KSBCT09MIF9qYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzKSwgaW9zKDExLjApKTsKLUBwcm9wZXJ0eSAobm9uYXRv
bWljLCBzZXR0ZXI9X3NldERPTVBhc3RlQWxsb3dlZDopIEJPT0wgX2RvbVBhc3RlQWxsb3dlZCBX
S19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7CitAcHJvcGVydHkgKG5v
bmF0b21pYywgc2V0dGVyPV9zZXRKYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkOikgQk9PTCBf
amF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEz
KSwgaW9zKDExLjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldERPTVBhc3Rl
QWxsb3dlZDopIEJPT0wgX2RvbVBhc3RlQWxsb3dlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEw
LjEzKSwgaW9zKDExLjApKTsKIAotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0U2hv
dWxkQWxsb3dVc2VySW5zdGFsbGVkRm9udHM6KSBCT09MIF9zaG91bGRBbGxvd1VzZXJJbnN0YWxs
ZWRGb250cyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSwgaW9zKDExLjMpKTsKK0Bw
cm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFNob3VsZEFsbG93VXNlckluc3RhbGxlZEZv
bnRzOikgQk9PTCBfc2hvdWxkQWxsb3dVc2VySW5zdGFsbGVkRm9udHMgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKIAotQHByb3BlcnR5IChub25hdG9taWMsIHNl
dHRlcj1fc2V0RWRpdGFibGVMaW5rQmVoYXZpb3I6KSBfV0tFZGl0YWJsZUxpbmtCZWhhdmlvciBf
ZWRpdGFibGVMaW5rQmVoYXZpb3IgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCksIGlv
cygxMS4zKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRFZGl0YWJsZUxpbmtC
ZWhhdmlvcjopIF9XS0VkaXRhYmxlTGlua0JlaGF2aW9yIF9lZGl0YWJsZUxpbmtCZWhhdmlvciBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOwogCi1AcHJvcGVydHkg
KG5vbmF0b21pYywgc2V0dGVyPV9zZXRBVkZvdW5kYXRpb25FbmFibGVkOikgQk9PTCBfYXZGb3Vu
ZGF0aW9uRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcygxMi4wKSk7
CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBVkZvdW5kYXRpb25FbmFibGVkOikg
Qk9PTCBfYXZGb3VuZGF0aW9uRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEwKSwg
aW9zKDEyLjApKTsKIAotKyAoTlNBcnJheTxfV0tJbnRlcm5hbERlYnVnRmVhdHVyZSAqPiAqKV9p
bnRlcm5hbERlYnVnRmVhdHVyZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBKSk7Ci0tIChCT09MKV9pc0VuYWJsZWRGb3JJbnRlcm5hbERlYnVnRmVh
dHVyZTooX1dLSW50ZXJuYWxEZWJ1Z0ZlYXR1cmUgKilmZWF0dXJlIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotLSAodm9pZClfc2V0RW5hYmxl
ZDooQk9PTCl2YWx1ZSBmb3JJbnRlcm5hbERlYnVnRmVhdHVyZTooX1dLSW50ZXJuYWxEZWJ1Z0Zl
YXR1cmUgKilmZWF0dXJlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3Mo
V0tfSU9TX1RCQSkpOworKyAoTlNBcnJheTxfV0tJbnRlcm5hbERlYnVnRmVhdHVyZSAqPiAqKV9p
bnRlcm5hbERlYnVnRmVhdHVyZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEpKTsKKy0gKEJPT0wpX2lzRW5hYmxlZEZvckludGVybmFsRGVidWdGZWF0
dXJlOihfV0tJbnRlcm5hbERlYnVnRmVhdHVyZSAqKWZlYXR1cmUgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX3NldEVuYWJsZWQ6
KEJPT0wpdmFsdWUgZm9ySW50ZXJuYWxEZWJ1Z0ZlYXR1cmU6KF9XS0ludGVybmFsRGVidWdGZWF0
dXJlICopZmVhdHVyZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpOwogCi0rIChOU0FycmF5PF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUgKj4gKilfZXhw
ZXJpbWVudGFsRmVhdHVyZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3MoMTAu
MCkpOwotLSAoQk9PTClfaXNFbmFibGVkRm9yRmVhdHVyZTooX1dLRXhwZXJpbWVudGFsRmVhdHVy
ZSAqKWZlYXR1cmUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3MoMTAuMCkpOwot
LSAodm9pZClfc2V0RW5hYmxlZDooQk9PTCl2YWx1ZSBmb3JGZWF0dXJlOihfV0tFeHBlcmltZW50
YWxGZWF0dXJlICopZmVhdHVyZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMiksIGlvcygx
MC4wKSk7Ci0tIChCT09MKV9pc0VuYWJsZWRGb3JFeHBlcmltZW50YWxGZWF0dXJlOihfV0tFeHBl
cmltZW50YWxGZWF0dXJlICopZmVhdHVyZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMiks
IGlvcygxMC4wKSk7Ci0tICh2b2lkKV9zZXRFbmFibGVkOihCT09MKXZhbHVlIGZvckV4cGVyaW1l
bnRhbEZlYXR1cmU6KF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUgKilmZWF0dXJlIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsKKysgKE5TQXJyYXk8X1dLRXhwZXJpbWVu
dGFsRmVhdHVyZSAqPiAqKV9leHBlcmltZW50YWxGZWF0dXJlcyBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDEwLjEyKSwgaW9zKDEwLjApKTsKKy0gKEJPT0wpX2lzRW5hYmxlZEZvckZlYXR1cmU6KF9X
S0V4cGVyaW1lbnRhbEZlYXR1cmUgKilmZWF0dXJlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAu
MTIpLCBpb3MoMTAuMCkpOworLSAodm9pZClfc2V0RW5hYmxlZDooQk9PTCl2YWx1ZSBmb3JGZWF0
dXJlOihfV0tFeHBlcmltZW50YWxGZWF0dXJlICopZmVhdHVyZSBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDEwLjEyKSwgaW9zKDEwLjApKTsKKy0gKEJPT0wpX2lzRW5hYmxlZEZvckV4cGVyaW1lbnRh
bEZlYXR1cmU6KF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUgKilmZWF0dXJlIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOworLSAodm9pZClfc2V0RW5hYmxlZDooQk9PTCl2
YWx1ZSBmb3JFeHBlcmltZW50YWxGZWF0dXJlOihfV0tFeHBlcmltZW50YWxGZWF0dXJlICopZmVh
dHVyZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKIAotQHByb3Bl
cnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0U2hvdWxkRW5hYmxlVGV4dEF1dG9zaXppbmdCb29z
dDopIEJPT0wgX3Nob3VsZEVuYWJsZVRleHRBdXRvc2l6aW5nQm9vc3QgV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goMTAuMTQpLCBpb3MoMTIuMCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRl
cj1fc2V0U2hvdWxkRW5hYmxlVGV4dEF1dG9zaXppbmdCb29zdDopIEJPT0wgX3Nob3VsZEVuYWJs
ZVRleHRBdXRvc2l6aW5nQm9vc3QgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygx
Mi4wKSk7CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBnZXR0ZXI9X2lzU2FmZUJyb3dzaW5nRW5h
YmxlZCwgc2V0dGVyPV9zZXRTYWZlQnJvd3NpbmdFbmFibGVkOikgQk9PTCBfc2FmZUJyb3dzaW5n
RW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19U
QkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBnZXR0ZXI9X2lzU2FmZUJyb3dzaW5nRW5hYmxl
ZCwgc2V0dGVyPV9zZXRTYWZlQnJvd3NpbmdFbmFibGVkOikgQk9PTCBfc2FmZUJyb3dzaW5nRW5h
YmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkp
OwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRDb2xvckZpbHRlckVuYWJsZWQ6
KSBCT09MIF9jb2xvckZpbHRlckVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTQp
LCBpb3MoMTIuMCkpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0UHVuY2hPdXRX
aGl0ZUJhY2tncm91bmRzSW5EYXJrTW9kZTopIEJPT0wgX3B1bmNoT3V0V2hpdGVCYWNrZ3JvdW5k
c0luRGFya01vZGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTQpLCBpb3MoMTIuMCkpOwot
QHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0TG93UG93ZXJWaWRlb0F1ZGlvQnVmZmVy
U2l6ZUVuYWJsZWQ6KSBCT09MIF9sb3dQb3dlclZpZGVvQXVkaW9CdWZmZXJTaXplRW5hYmxlZCBX
S19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bw
cm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldENvbG9yRmlsdGVyRW5hYmxlZDopIEJPT0wg
X2NvbG9yRmlsdGVyRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSwgaW9zKDEy
LjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFB1bmNoT3V0V2hpdGVCYWNr
Z3JvdW5kc0luRGFya01vZGU6KSBCT09MIF9wdW5jaE91dFdoaXRlQmFja2dyb3VuZHNJbkRhcmtN
b2RlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpLCBpb3MoMTIuMCkpOworQHByb3BlcnR5
IChub25hdG9taWMsIHNldHRlcj1fc2V0TG93UG93ZXJWaWRlb0F1ZGlvQnVmZmVyU2l6ZUVuYWJs
ZWQ6KSBCT09MIF9sb3dQb3dlclZpZGVvQXVkaW9CdWZmZXJTaXplRW5hYmxlZCBXS19BUElfQVZB
SUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogQHByb3BlcnR5IChu
b25hdG9taWMsIHNldHRlcj1fc2V0U2hvdWxkSWdub3JlTWV0YVZpZXdwb3J0OikgQk9PTCBfc2hv
dWxkSWdub3JlTWV0YVZpZXdwb3J0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRWaWRl
b1F1YWxpdHlJbmNsdWRlc0Rpc3BsYXlDb21wb3NpdGluZ0VuYWJsZWQ6KSBCT09MIF92aWRlb1F1
YWxpdHlJbmNsdWRlc0Rpc3BsYXlDb21wb3NpdGluZ0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWlj
LCBzZXR0ZXI9X3NldFdlYkFuaW1hdGlvbnNDU1NJbnRlZ3JhdGlvbkVuYWJsZWQ6KSBCT09MIF93
ZWJBbmltYXRpb25zQ1NTSW50ZWdyYXRpb25FbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KDEwLjE0KSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9
X3NldFdlYkFuaW1hdGlvbnNDU1NJbnRlZ3JhdGlvbkVuYWJsZWQ6KSBCT09MIF93ZWJBbmltYXRp
b25zQ1NTSW50ZWdyYXRpb25FbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpLCBp
b3MoV0tfSU9TX1RCQSkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0RGV2aWNl
T3JpZW50YXRpb25FdmVudEVuYWJsZWQ6KSBCT09MIF9kZXZpY2VPcmllbnRhdGlvbkV2ZW50RW5h
YmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkp
OwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0TmVlZHNTaXRlU3BlY2lmaWNRdWly
a3M6KSBCT09MIF9uZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyBXS19BUElfQVZBSUxBQkxFKG1hY29z
eCgxMC4xMy40KSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0
ZXI9X3NldE5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzOikgQk9PTCBfbmVlZHNTaXRlU3BlY2lmaWNR
dWlya3MgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKFdLX0lPU19UQkEpKTsK
IEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEl0cERlYnVnTW9kZUVuYWJsZWQ6KSBC
T09MIF9pdHBEZWJ1Z01vZGVFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RC
QSksIGlvcyhXS19JT1NfVEJBKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRN
ZWRpYVNvdXJjZUVuYWJsZWQ6KSBCT09MIF9tZWRpYVNvdXJjZUVuYWJsZWQgV0tfQVBJX0FWQUlM
QUJMRShtYWNvc3goMTAuMTMuNCksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0
b21pYywgc2V0dGVyPV9zZXRNZWRpYVNvdXJjZUVuYWJsZWQ6KSBCT09MIF9tZWRpYVNvdXJjZUVu
YWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKFdLX0lPU19UQkEpKTsK
IAogI2lmICFUQVJHRVRfT1NfSVBIT05FCi1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9z
ZXRXZWJHTEVuYWJsZWQ6KSBCT09MIF93ZWJHTEVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goMTAuMTMuNCkpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0SmF2YUVuYWJs
ZWRGb3JMb2NhbEZpbGVzOikgQk9PTCBfamF2YUVuYWJsZWRGb3JMb2NhbEZpbGVzIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9
X3NldENhbnZhc1VzZXNBY2NlbGVyYXRlZERyYXdpbmc6KSBCT09MIF9jYW52YXNVc2VzQWNjZWxl
cmF0ZWREcmF3aW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpKTsKLUBwcm9wZXJ0
eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkOikg
Qk9PTCBfYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goMTAuMTMuNCkpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0RGVmYXVsdFRl
eHRFbmNvZGluZ05hbWU6KSBOU1N0cmluZyAqX2RlZmF1bHRUZXh0RW5jb2RpbmdOYW1lIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0
ZXI9X3NldEF1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVkOikgQk9PTCBfYXV0aG9yQW5kVXNlclN0
eWxlc0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCkpOwotQHByb3BlcnR5
IChub25hdG9taWMsIHNldHRlcj1fc2V0RE9NVGltZXJzVGhyb3R0bGluZ0VuYWJsZWQ6KSBCT09M
IF9kb21UaW1lcnNUaHJvdHRsaW5nRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4x
My40KSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRXZWJBcmNoaXZlRGVidWdN
b2RlRW5hYmxlZDopIEJPT0wgX3dlYkFyY2hpdmVEZWJ1Z01vZGVFbmFibGVkIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KDEwLjEzLjQpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3Nl
dExvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQ6KSBCT09MIF9sb2NhbEZpbGVDb250ZW50
U25pZmZpbmdFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpKTsKLUBwcm9w
ZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFVzZXNQYWdlQ2FjaGU6KSBCT09MIF91c2VzUGFn
ZUNhY2hlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpKTsKLUBwcm9wZXJ0eSAobm9u
YXRvbWljLCBzZXR0ZXI9X3NldFBhZ2VDYWNoZVN1cHBvcnRzUGx1Z2luczopIEJPT0wgX3BhZ2VD
YWNoZVN1cHBvcnRzUGx1Z2lucyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSk7Ci1A
cHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRTaG91bGRQcmludEJhY2tncm91bmRzOikg
Qk9PTCBfc2hvdWxkUHJpbnRCYWNrZ3JvdW5kcyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4x
My40KSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRXZWJTZWN1cml0eUVuYWJs
ZWQ6KSBCT09MIF93ZWJTZWN1cml0eUVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAu
MTMuNCkpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0VW5pdmVyc2FsQWNjZXNz
RnJvbUZpbGVVUkxzQWxsb3dlZDopIEJPT0wgX3VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMc0Fs
bG93ZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCkpOwotQHByb3BlcnR5IChub25h
dG9taWMsIHNldHRlcj1fc2V0U3VwcHJlc3Nlc0luY3JlbWVudGFsUmVuZGVyaW5nOikgQk9PTCBf
c3VwcHJlc3Nlc0luY3JlbWVudGFsUmVuZGVyaW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEw
LjEzLjQpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFzeW5jaHJvbm91c1Bs
dWdpbkluaXRpYWxpemF0aW9uRW5hYmxlZDopIEJPT0wgX2FzeW5jaHJvbm91c1BsdWdpbkluaXRp
YWxpemF0aW9uRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSk7Ci1AcHJv
cGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBcnRpZmljaWFsUGx1Z2luSW5pdGlhbGl6YXRp
b25EZWxheUVuYWJsZWQ6KSBCT09MIF9hcnRpZmljaWFsUGx1Z2luSW5pdGlhbGl6YXRpb25EZWxh
eUVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCkpOwotQHByb3BlcnR5IChu
b25hdG9taWMsIHNldHRlcj1fc2V0RXhwZXJpbWVudGFsUGx1Z0luU2FuZGJveFByb2ZpbGVzRW5h
YmxlZDopIEJPT0wgX2V4cGVyaW1lbnRhbFBsdWdJblNhbmRib3hQcm9maWxlc0VuYWJsZWQgV0tf
QVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkpOwotQHByb3BlcnR5IChub25hdG9taWMs
IHNldHRlcj1fc2V0Q29va2llRW5hYmxlZDopIEJPT0wgX2Nvb2tpZUVuYWJsZWQgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goMTAuMTMuNCkpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1f
c2V0UGx1Z0luU25hcHNob3R0aW5nRW5hYmxlZDopIEJPT0wgX3BsdWdJblNuYXBzaG90dGluZ0Vu
YWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCkpOwotQHByb3BlcnR5IChub25h
dG9taWMsIHNldHRlcj1fc2V0U3VicGl4ZWxDU1NPTUVsZW1lbnRNZXRyaWNzRW5hYmxlZDopIEJP
T0wgX3N1YnBpeGVsQ1NTT01FbGVtZW50TWV0cmljc0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRSht
YWNvc3goMTAuMTMuNCkpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0Vmlld0dl
c3R1cmVEZWJ1Z2dpbmdFbmFibGVkOikgQk9PTCBfdmlld0dlc3R1cmVEZWJ1Z2dpbmdFbmFibGVk
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWlj
LCBzZXR0ZXI9X3NldFN0YW5kYXJkRm9udEZhbWlseTopIE5TU3RyaW5nICpfc3RhbmRhcmRGb250
RmFtaWx5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpKTsKLUBwcm9wZXJ0eSAobm9u
YXRvbWljLCBzZXR0ZXI9X3NldE5vdGlmaWNhdGlvbnNFbmFibGVkOikgQk9PTCBfbm90aWZpY2F0
aW9uc0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCkpOwotQHByb3BlcnR5
IChub25hdG9taWMsIHNldHRlcj1fc2V0QmFja3NwYWNlS2V5TmF2aWdhdGlvbkVuYWJsZWQ6KSBC
T09MIF9iYWNrc3BhY2VLZXlOYXZpZ2F0aW9uRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29z
eCgxMC4xMy40KSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBbGxvd3NJbmxp
bmVNZWRpYVBsYXliYWNrOikgQk9PTCBfYWxsb3dzSW5saW5lTWVkaWFQbGF5YmFjayBXS19BUElf
QVZBSUxBQkxFKG1hY29zeCgxMC4xNCkpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1f
c2V0QXBwbGVQYXlFbmFibGVkOikgQk9PTCBfYXBwbGVQYXlFbmFibGVkIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3N4KDEwLjE0KSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRETlNQ
cmVmZXRjaGluZ0VuYWJsZWQ6KSBCT09MIF9kbnNQcmVmZXRjaGluZ0VuYWJsZWQgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goMTAuMTQpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3Nl
dElubGluZU1lZGlhUGxheWJhY2tSZXF1aXJlc1BsYXlzSW5saW5lQXR0cmlidXRlOikgQk9PTCBf
aW5saW5lTWVkaWFQbGF5YmFja1JlcXVpcmVzUGxheXNJbmxpbmVBdHRyaWJ1dGUgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goMTAuMTQpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3Nl
dEludmlzaWJsZU1lZGlhQXV0b3BsYXlOb3RQZXJtaXR0ZWQ6KSBCT09MIF9pbnZpc2libGVNZWRp
YUF1dG9wbGF5Tm90UGVybWl0dGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjE0KSk7Ci1A
cHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRMZWdhY3lFbmNyeXB0ZWRNZWRpYUFQSUVu
YWJsZWQ6KSBCT09MIF9sZWdhY3lFbmNyeXB0ZWRNZWRpYUFQSUVuYWJsZWQgV0tfQVBJX0FWQUlM
QUJMRShtYWNvc3goMTAuMTQpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldE1h
aW5Db250ZW50VXNlckdlc3R1cmVPdmVycmlkZUVuYWJsZWQ6KSBCT09MIF9tYWluQ29udGVudFVz
ZXJHZXN0dXJlT3ZlcnJpZGVFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjE0KSk7
Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRNZWRpYVN0cmVhbUVuYWJsZWQ6KSBC
T09MIF9tZWRpYVN0cmVhbUVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTQpKTsK
LUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldE5lZWRzU3RvcmFnZUFjY2Vzc0Zyb21G
aWxlVVJMc1F1aXJrOikgQk9PTCBfbmVlZHNTdG9yYWdlQWNjZXNzRnJvbUZpbGVVUkxzUXVpcmsg
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTQpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBz
ZXR0ZXI9X3NldFBERlBsdWdpbkVuYWJsZWQ6KSBCT09MIF9wZGZQbHVnaW5FbmFibGVkIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3N4KDEwLjE0KSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVy
PV9zZXRSZXF1aXJlc1VzZXJHZXN0dXJlRm9yQXVkaW9QbGF5YmFjazopIEJPT0wgX3JlcXVpcmVz
VXNlckdlc3R1cmVGb3JBdWRpb1BsYXliYWNrIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjE0
KSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRSZXF1aXJlc1VzZXJHZXN0dXJl
Rm9yVmlkZW9QbGF5YmFjazopIEJPT0wgX3JlcXVpcmVzVXNlckdlc3R1cmVGb3JWaWRlb1BsYXli
YWNrIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjE0KSk7Ci1AcHJvcGVydHkgKG5vbmF0b21p
Yywgc2V0dGVyPV9zZXRTZXJ2aWNlQ29udHJvbHNFbmFibGVkOikgQk9PTCBfc2VydmljZUNvbnRy
b2xzRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xNCkpOwotQHByb3BlcnR5IChu
b25hdG9taWMsIHNldHRlcj1fc2V0U2hvd3NUb29sVGlwT3ZlclRydW5jYXRlZFRleHQ6KSBCT09M
IF9zaG93c1Rvb2xUaXBPdmVyVHJ1bmNhdGVkVGV4dCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgx
MC4xNCkpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0VGV4dEFyZWFzQXJlUmVz
aXphYmxlOikgQk9PTCBfdGV4dEFyZWFzQXJlUmVzaXphYmxlIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KDEwLjE0KSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRVc2VHaWFudFRp
bGVzOikgQk9PTCBfdXNlR2lhbnRUaWxlcyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xNCkp
OwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0V2FudHNCYWxhbmNlZFNldERlZmVy
c0xvYWRpbmdCZWhhdmlvcjopIEJPT0wgX3dhbnRzQmFsYW5jZWRTZXREZWZlcnNMb2FkaW5nQmVo
YXZpb3IgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTQpKTsKLUBwcm9wZXJ0eSAobm9uYXRv
bWljLCBzZXR0ZXI9X3NldFdlYkF1ZGlvRW5hYmxlZDopIEJPT0wgX3dlYkF1ZGlvRW5hYmxlZCBX
S19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xNCkpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNl
dHRlcj1fc2V0QWdncmVzc2l2ZVRpbGVSZXRlbnRpb25FbmFibGVkOikgQk9PTCBfYWdncmVzc2l2
ZVRpbGVSZXRlbnRpb25FbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjE0KSk7CitA
cHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRXZWJHTEVuYWJsZWQ6KSBCT09MIF93ZWJH
TEVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CitAcHJvcGVydHkgKG5v
bmF0b21pYywgc2V0dGVyPV9zZXRKYXZhRW5hYmxlZEZvckxvY2FsRmlsZXM6KSBCT09MIF9qYXZh
RW5hYmxlZEZvckxvY2FsRmlsZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CitA
cHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRDYW52YXNVc2VzQWNjZWxlcmF0ZWREcmF3
aW5nOikgQk9PTCBfY2FudmFzVXNlc0FjY2VsZXJhdGVkRHJhd2luZyBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjEzLjQpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkOikgQk9PTCBfYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Vu
YWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CitAcHJvcGVydHkgKG5vbmF0
b21pYywgc2V0dGVyPV9zZXREZWZhdWx0VGV4dEVuY29kaW5nTmFtZTopIE5TU3RyaW5nICpfZGVm
YXVsdFRleHRFbmNvZGluZ05hbWUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CitA
cHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBdXRob3JBbmRVc2VyU3R5bGVzRW5hYmxl
ZDopIEJPT0wgX2F1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTAuMTMuNCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0RE9NVGltZXJz
VGhyb3R0bGluZ0VuYWJsZWQ6KSBCT09MIF9kb21UaW1lcnNUaHJvdHRsaW5nRW5hYmxlZCBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0
ZXI9X3NldFdlYkFyY2hpdmVEZWJ1Z01vZGVFbmFibGVkOikgQk9PTCBfd2ViQXJjaGl2ZURlYnVn
TW9kZUVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CitAcHJvcGVydHkg
KG5vbmF0b21pYywgc2V0dGVyPV9zZXRMb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkOikg
Qk9PTCBfbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDEwLjEzLjQpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFVzZXNQYWdl
Q2FjaGU6KSBCT09MIF91c2VzUGFnZUNhY2hlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMu
NCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0UGFnZUNhY2hlU3VwcG9ydHNQ
bHVnaW5zOikgQk9PTCBfcGFnZUNhY2hlU3VwcG9ydHNQbHVnaW5zIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTAuMTMuNCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0U2hvdWxk
UHJpbnRCYWNrZ3JvdW5kczopIEJPT0wgX3Nob3VsZFByaW50QmFja2dyb3VuZHMgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMC4xMy40KSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9z
ZXRXZWJTZWN1cml0eUVuYWJsZWQ6KSBCT09MIF93ZWJTZWN1cml0eUVuYWJsZWQgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMC4xMy40KSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9z
ZXRVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHNBbGxvd2VkOikgQk9PTCBfdW5pdmVyc2FsQWNj
ZXNzRnJvbUZpbGVVUkxzQWxsb3dlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsK
K0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFN1cHByZXNzZXNJbmNyZW1lbnRhbFJl
bmRlcmluZzopIEJPT0wgX3N1cHByZXNzZXNJbmNyZW1lbnRhbFJlbmRlcmluZyBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3Nl
dEFzeW5jaHJvbm91c1BsdWdpbkluaXRpYWxpemF0aW9uRW5hYmxlZDopIEJPT0wgX2FzeW5jaHJv
bm91c1BsdWdpbkluaXRpYWxpemF0aW9uRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEw
LjEzLjQpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFydGlmaWNpYWxQbHVn
aW5Jbml0aWFsaXphdGlvbkRlbGF5RW5hYmxlZDopIEJPT0wgX2FydGlmaWNpYWxQbHVnaW5Jbml0
aWFsaXphdGlvbkRlbGF5RW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsK
K0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEV4cGVyaW1lbnRhbFBsdWdJblNhbmRi
b3hQcm9maWxlc0VuYWJsZWQ6KSBCT09MIF9leHBlcmltZW50YWxQbHVnSW5TYW5kYm94UHJvZmls
ZXNFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSkpOworQHByb3BlcnR5
IChub25hdG9taWMsIHNldHRlcj1fc2V0Q29va2llRW5hYmxlZDopIEJPT0wgX2Nvb2tpZUVuYWJs
ZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CitAcHJvcGVydHkgKG5vbmF0b21p
Yywgc2V0dGVyPV9zZXRQbHVnSW5TbmFwc2hvdHRpbmdFbmFibGVkOikgQk9PTCBfcGx1Z0luU25h
cHNob3R0aW5nRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFN1YnBpeGVsQ1NTT01FbGVtZW50TWV0cmljc0Vu
YWJsZWQ6KSBCT09MIF9zdWJwaXhlbENTU09NRWxlbWVudE1ldHJpY3NFbmFibGVkIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1f
c2V0Vmlld0dlc3R1cmVEZWJ1Z2dpbmdFbmFibGVkOikgQk9PTCBfdmlld0dlc3R1cmVEZWJ1Z2dp
bmdFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOworQHByb3BlcnR5IChu
b25hdG9taWMsIHNldHRlcj1fc2V0U3RhbmRhcmRGb250RmFtaWx5OikgTlNTdHJpbmcgKl9zdGFu
ZGFyZEZvbnRGYW1pbHkgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CitAcHJvcGVy
dHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXROb3RpZmljYXRpb25zRW5hYmxlZDopIEJPT0wgX25v
dGlmaWNhdGlvbnNFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOworQHBy
b3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0QmFja3NwYWNlS2V5TmF2aWdhdGlvbkVuYWJs
ZWQ6KSBCT09MIF9iYWNrc3BhY2VLZXlOYXZpZ2F0aW9uRW5hYmxlZCBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjEzLjQpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFsbG93
c0lubGluZU1lZGlhUGxheWJhY2s6KSBCT09MIF9hbGxvd3NJbmxpbmVNZWRpYVBsYXliYWNrIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0
ZXI9X3NldEFwcGxlUGF5RW5hYmxlZDopIEJPT0wgX2FwcGxlUGF5RW5hYmxlZCBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjE0KSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRE
TlNQcmVmZXRjaGluZ0VuYWJsZWQ6KSBCT09MIF9kbnNQcmVmZXRjaGluZ0VuYWJsZWQgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMC4xNCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1f
c2V0SW5saW5lTWVkaWFQbGF5YmFja1JlcXVpcmVzUGxheXNJbmxpbmVBdHRyaWJ1dGU6KSBCT09M
IF9pbmxpbmVNZWRpYVBsYXliYWNrUmVxdWlyZXNQbGF5c0lubGluZUF0dHJpYnV0ZSBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDEwLjE0KSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9z
ZXRJbnZpc2libGVNZWRpYUF1dG9wbGF5Tm90UGVybWl0dGVkOikgQk9PTCBfaW52aXNpYmxlTWVk
aWFBdXRvcGxheU5vdFBlcm1pdHRlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSk7CitA
cHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRMZWdhY3lFbmNyeXB0ZWRNZWRpYUFQSUVu
YWJsZWQ6KSBCT09MIF9sZWdhY3lFbmNyeXB0ZWRNZWRpYUFQSUVuYWJsZWQgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xNCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0TWFp
bkNvbnRlbnRVc2VyR2VzdHVyZU92ZXJyaWRlRW5hYmxlZDopIEJPT0wgX21haW5Db250ZW50VXNl
ckdlc3R1cmVPdmVycmlkZUVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCkpOwor
QHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0TWVkaWFTdHJlYW1FbmFibGVkOikgQk9P
TCBfbWVkaWFTdHJlYW1FbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpKTsKK0Bw
cm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldE5lZWRzU3RvcmFnZUFjY2Vzc0Zyb21GaWxl
VVJMc1F1aXJrOikgQk9PTCBfbmVlZHNTdG9yYWdlQWNjZXNzRnJvbUZpbGVVUkxzUXVpcmsgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRl
cj1fc2V0UERGUGx1Z2luRW5hYmxlZDopIEJPT0wgX3BkZlBsdWdpbkVuYWJsZWQgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMC4xNCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0
UmVxdWlyZXNVc2VyR2VzdHVyZUZvckF1ZGlvUGxheWJhY2s6KSBCT09MIF9yZXF1aXJlc1VzZXJH
ZXN0dXJlRm9yQXVkaW9QbGF5YmFjayBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSk7CitA
cHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRSZXF1aXJlc1VzZXJHZXN0dXJlRm9yVmlk
ZW9QbGF5YmFjazopIEJPT0wgX3JlcXVpcmVzVXNlckdlc3R1cmVGb3JWaWRlb1BsYXliYWNrIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0
ZXI9X3NldFNlcnZpY2VDb250cm9sc0VuYWJsZWQ6KSBCT09MIF9zZXJ2aWNlQ29udHJvbHNFbmFi
bGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWlj
LCBzZXR0ZXI9X3NldFNob3dzVG9vbFRpcE92ZXJUcnVuY2F0ZWRUZXh0OikgQk9PTCBfc2hvd3NU
b29sVGlwT3ZlclRydW5jYXRlZFRleHQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCkpOwor
QHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0VGV4dEFyZWFzQXJlUmVzaXphYmxlOikg
Qk9PTCBfdGV4dEFyZWFzQXJlUmVzaXphYmxlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQp
KTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFVzZUdpYW50VGlsZXM6KSBCT09M
IF91c2VHaWFudFRpbGVzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpKTsKK0Bwcm9wZXJ0
eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFdhbnRzQmFsYW5jZWRTZXREZWZlcnNMb2FkaW5nQmVo
YXZpb3I6KSBCT09MIF93YW50c0JhbGFuY2VkU2V0RGVmZXJzTG9hZGluZ0JlaGF2aW9yIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9
X3NldFdlYkF1ZGlvRW5hYmxlZDopIEJPT0wgX3dlYkF1ZGlvRW5hYmxlZCBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDEwLjE0KSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBZ2dy
ZXNzaXZlVGlsZVJldGVudGlvbkVuYWJsZWQ6KSBCT09MIF9hZ2dyZXNzaXZlVGlsZVJldGVudGlv
bkVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCkpOwogI2VuZGlmCiAKIEBlbmQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQ
b29sLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5o
CmluZGV4IGM1YTNlN2I2OThmMjQxMDM2M2M4NDU1ZjM0NjNmZmQyNzcxZmUxNTAuLjNmMDhlYjUw
OTAzMzBhYjUxMjM2NjlmODk0MDNjMDMzMTM4NzJmMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wuaApAQCAtMzMsNiArMzMsNiBAQAog
IGltcGxlbWVudGF0aW9uLWRlZmluZWQgcHJvY2VzcyBsaW1pdCBpcyByZWFjaGVkOyBhZnRlciB0
aGF0LCB3ZWIgdmlld3MKICB3aXRoIHRoZSBzYW1lIHByb2Nlc3MgcG9vbCBlbmQgdXAgc2hhcmlu
ZyB3ZWIgY29udGVudCBwcm9jZXNzZXMuCiAgKi8KLVdLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3go
MTAuMTApLCBpb3MoOC4wKSkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4xMCksIGlvcyg4
LjApKQogQGludGVyZmFjZSBXS1Byb2Nlc3NQb29sIDogTlNPYmplY3QgPE5TU2VjdXJlQ29kaW5n
PgogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
UHJvY2Vzc1Bvb2xQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tQcm9jZXNzUG9vbFByaXZhdGUuaAppbmRleCA3MzRjMTM5YTdjNjUyOWUyYzNiN2QyZTBlODcw
M2NlZTA4M2EyZDBhLi42Y2JlNDcyNTUwZTQ1OTQzYmE1Nzc3MzgxZTk0YjU0ZmVlZTRkZjFkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9v
bFByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9j
ZXNzUG9vbFByaXZhdGUuaApAQCAtNDIsMjYgKzQyLDI2IEBACiAKICsgKFdLUHJvY2Vzc1Bvb2wg
Kilfc2hhcmVkUHJvY2Vzc1Bvb2w7CiAKLSsgKE5TQXJyYXk8V0tQcm9jZXNzUG9vbCAqPiAqKV9h
bGxQcm9jZXNzUG9vbHNGb3JUZXN0aW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjE0KSwg
aW9zKDEyLjApKTsKKysgKE5TQXJyYXk8V0tQcm9jZXNzUG9vbCAqPiAqKV9hbGxQcm9jZXNzUG9v
bHNGb3JUZXN0aW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpLCBpb3MoMTIuMCkpOwog
CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIF9XS1Byb2Nlc3NQb29sQ29uZmlndXJh
dGlvbiAqX2NvbmZpZ3VyYXRpb247CiAKIC0gKHZvaWQpX3NldEFsbG93c1NwZWNpZmljSFRUUFND
ZXJ0aWZpY2F0ZTooTlNBcnJheSAqKWNlcnRpZmljYXRlQ2hhaW4gZm9ySG9zdDooTlNTdHJpbmcg
Kilob3N0OwotLSAodm9pZClfc2V0Q2FuSGFuZGxlSFRUUFNTZXJ2ZXJUcnVzdEV2YWx1YXRpb246
KEJPT0wpdmFsdWUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7Cist
ICh2b2lkKV9zZXRDYW5IYW5kbGVIVFRQU1NlcnZlclRydXN0RXZhbHVhdGlvbjooQk9PTCl2YWx1
ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjExKSwgaW9zKDkuMCkpOwogLSAodm9pZClfc2V0
Q29va2llQWNjZXB0UG9saWN5OihOU0hUVFBDb29raWVBY2NlcHRQb2xpY3kpcG9saWN5OwogCiAt
IChpZClfb2JqZWN0Rm9yQnVuZGxlUGFyYW1ldGVyOihOU1N0cmluZyAqKXBhcmFtZXRlcjsKIC0g
KHZvaWQpX3NldE9iamVjdDooaWQgPE5TQ29weWluZywgTlNTZWN1cmVDb2Rpbmc+KW9iamVjdCBm
b3JCdW5kbGVQYXJhbWV0ZXI6KE5TU3RyaW5nICopcGFyYW1ldGVyOwogLy8gRklYTUU6IFRoaXMg
c2hvdWxkIGJlIE5TRGljdGlvbmFyeTxOU1N0cmluZyAqLCBpZCA8TlNDb3B5aW5nLCBOU1NlY3Vy
ZUNvZGluZz4+Ci0tICh2b2lkKV9zZXRPYmplY3RzRm9yQnVuZGxlUGFyYW1ldGVyc1dpdGhEaWN0
aW9uYXJ5OihOU0RpY3Rpb25hcnkgKilkaWN0aW9uYXJ5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KDEwLjEyKSwgaW9zKDEwLjApKTsKKy0gKHZvaWQpX3NldE9iamVjdHNGb3JCdW5kbGVQYXJhbWV0
ZXJzV2l0aERpY3Rpb25hcnk6KE5TRGljdGlvbmFyeSAqKWRpY3Rpb25hcnkgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CiAKICNpZiAhVEFSR0VUX09TX0lQSE9ORQot
LSAodm9pZClfcmVzZXRQbHVnaW5Mb2FkQ2xpZW50UG9saWNpZXM6KE5TRGljdGlvbmFyeSAqKXBv
bGljaWVzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzKSk7Ci1AcHJvcGVydHkgKG5vbmF0
b21pYywgcmVhZG9ubHksIGNvcHkpIE5TRGljdGlvbmFyeSAqX3BsdWdpbkxvYWRDbGllbnRQb2xp
Y2llcyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMykpOworLSAodm9pZClfcmVzZXRQbHVn
aW5Mb2FkQ2xpZW50UG9saWNpZXM6KE5TRGljdGlvbmFyeSAqKXBvbGljaWVzIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTAuMTMpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgY29w
eSkgTlNEaWN0aW9uYXJ5ICpfcGx1Z2luTG9hZENsaWVudFBvbGljaWVzIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTAuMTMpKTsKICNlbmRpZgogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgd2Vhaywg
c2V0dGVyPV9zZXREb3dubG9hZERlbGVnYXRlOikgaWQgPF9XS0Rvd25sb2FkRGVsZWdhdGU+IF9k
b3dubG9hZERlbGVnYXRlOwotQHByb3BlcnR5IChub25hdG9taWMsIHdlYWssIHNldHRlcj1fc2V0
QXV0b21hdGlvbkRlbGVnYXRlOikgaWQgPF9XS0F1dG9tYXRpb25EZWxlZ2F0ZT4gX2F1dG9tYXRp
b25EZWxlZ2F0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMiksIGlvcygxMC4wKSk7CitA
cHJvcGVydHkgKG5vbmF0b21pYywgd2Vhaywgc2V0dGVyPV9zZXRBdXRvbWF0aW9uRGVsZWdhdGU6
KSBpZCA8X1dLQXV0b21hdGlvbkRlbGVnYXRlPiBfYXV0b21hdGlvbkRlbGVnYXRlIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOwogCiAjaWYgVEFSR0VUX09TX0lQSE9O
RQogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0Q29yZUxvY2F0aW9uUHJvdmlkZXI6
KSBpZCA8X1dLR2VvbG9jYXRpb25Db3JlTG9jYXRpb25Qcm92aWRlcj4gX2NvcmVMb2NhdGlvblBy
b3ZpZGVyIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDExLjApKTsKQEAgLTcwLDU2ICs3MCw1NiBAQAog
KyAoTlNVUkwgKilfd2Vic2l0ZURhdGFVUkxGb3JDb250YWluZXJXaXRoVVJMOihOU1VSTCAqKWNv
bnRhaW5lclVSTDsKICsgKE5TVVJMICopX3dlYnNpdGVEYXRhVVJMRm9yQ29udGFpbmVyV2l0aFVS
TDooTlNVUkwgKiljb250YWluZXJVUkwgYnVuZGxlSWRlbnRpZmllcklmTm90SW5Db250YWluZXI6
KE5TU3RyaW5nICopYnVuZGxlSWRlbnRpZmllcjsKIAotLSAodm9pZClfd2FybUluaXRpYWxQcm9j
ZXNzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsKLS0gKHZvaWQp
X2F1dG9tYXRpb25DYXBhYmlsaXRpZXNEaWRDaGFuZ2UgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3go
MTAuMTIpLCBpb3MoMTAuMCkpOwotLSAodm9pZClfc2V0QXV0b21hdGlvblNlc3Npb246KF9XS0F1
dG9tYXRpb25TZXNzaW9uICopYXV0b21hdGlvblNlc3Npb24gV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goMTAuMTIpLCBpb3MoMTAuMCkpOworLSAodm9pZClfd2FybUluaXRpYWxQcm9jZXNzIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOworLSAodm9pZClfYXV0b21hdGlv
bkNhcGFiaWxpdGllc0RpZENoYW5nZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9z
KDEwLjApKTsKKy0gKHZvaWQpX3NldEF1dG9tYXRpb25TZXNzaW9uOihfV0tBdXRvbWF0aW9uU2Vz
c2lvbiAqKWF1dG9tYXRpb25TZXNzaW9uIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBp
b3MoMTAuMCkpOwogCi0tICh2b2lkKV9hZGRTdXBwb3J0ZWRQbHVnaW46KE5TU3RyaW5nICopIGRv
bWFpbiBuYW1lZDooTlNTdHJpbmcgKikgbmFtZSB3aXRoTWltZVR5cGVzOiAoTlNTZXQ8TlNTdHJp
bmcgKj4gKikgbWltZVR5cGVzIHdpdGhFeHRlbnNpb25zOiAoTlNTZXQ8TlNTdHJpbmcgKj4gKikg
ZXh0ZW5zaW9ucyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xNCksIGlvcygxMi4wKSk7Ci0t
ICh2b2lkKV9jbGVhclN1cHBvcnRlZFBsdWdpbnMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAu
MTQpLCBpb3MoMTIuMCkpOworLSAodm9pZClfYWRkU3VwcG9ydGVkUGx1Z2luOihOU1N0cmluZyAq
KSBkb21haW4gbmFtZWQ6KE5TU3RyaW5nICopIG5hbWUgd2l0aE1pbWVUeXBlczogKE5TU2V0PE5T
U3RyaW5nICo+ICopIG1pbWVUeXBlcyB3aXRoRXh0ZW5zaW9uczogKE5TU2V0PE5TU3RyaW5nICo+
ICopIGV4dGVuc2lvbnMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4wKSk7
CistICh2b2lkKV9jbGVhclN1cHBvcnRlZFBsdWdpbnMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygx
MC4xNCksIGlvcygxMi4wKSk7CiAKLS0gKHZvaWQpX3JlZ2lzdGVyVVJMU2NoZW1lQXNDYW5EaXNw
bGF5T25seUlmQ2FuUmVxdWVzdDooTlNTdHJpbmcgKilzY2hlbWUgV0tfQVBJX0FWQUlMQUJMRSht
YWNvc3goMTAuMTQpLCBpb3MoMTIuMCkpOworLSAodm9pZClfcmVnaXN0ZXJVUkxTY2hlbWVBc0Nh
bkRpc3BsYXlPbmx5SWZDYW5SZXF1ZXN0OihOU1N0cmluZyAqKXNjaGVtZSBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDEwLjE0KSwgaW9zKDEyLjApKTsKIAotLSAoX1dLRG93bmxvYWQgKilfZG93bmxv
YWRVUkxSZXF1ZXN0OihOU1VSTFJlcXVlc3QgKilyZXF1ZXN0IG9yaWdpbmF0aW5nV2ViVmlldzoo
V0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEpKTsKLS0gKF9XS0Rvd25sb2FkICopX3Jlc3VtZURvd25sb2FkRnJvbURh
dGE6KE5TRGF0YSAqKXJlc3VtZURhdGEgcGF0aDooTlNTdHJpbmcgKilwYXRoIG9yaWdpbmF0aW5n
V2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19N
QUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKF9XS0Rvd25sb2FkICopX2Rvd25sb2FkVVJM
UmVxdWVzdDooTlNVUkxSZXF1ZXN0ICopcmVxdWVzdCBvcmlnaW5hdGluZ1dlYlZpZXc6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdL
X0lPU19UQkEpKTsKKy0gKF9XS0Rvd25sb2FkICopX3Jlc3VtZURvd25sb2FkRnJvbURhdGE6KE5T
RGF0YSAqKXJlc3VtZURhdGEgcGF0aDooTlNTdHJpbmcgKilwYXRoIG9yaWdpbmF0aW5nV2ViVmll
dzooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOwogCiAvLyBUZXN0IG9ubHkuIFNob3VsZCBiZSBjYWxsZWQgb25s
eSB3aGlsZSBubyB3ZWIgY29udGVudCBwcm9jZXNzZXMgYXJlIHJ1bm5pbmcuCiAtICh2b2lkKV90
ZXJtaW5hdGVOZXR3b3JrUHJvY2VzczsKLS0gKHZvaWQpX3Rlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQ
cm9jZXNzZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTQpLCBpb3MoMTIuMCkpOwotLSAo
dm9pZClfZGlzYWJsZVNlcnZpY2VXb3JrZXJQcm9jZXNzVGVybWluYXRpb25EZWxheSBXS19BUElf
QVZBSUxBQkxFKG1hY29zeCgxMC4xNCksIGlvcygxMi4wKSk7CistICh2b2lkKV90ZXJtaW5hdGVT
ZXJ2aWNlV29ya2VyUHJvY2Vzc2VzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpLCBpb3Mo
MTIuMCkpOworLSAodm9pZClfZGlzYWJsZVNlcnZpY2VXb3JrZXJQcm9jZXNzVGVybWluYXRpb25E
ZWxheSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSwgaW9zKDEyLjApKTsKIAogLy8gVGVz
dCBvbmx5LgotLSAocGlkX3QpX25ldHdvcmtQcm9jZXNzSWRlbnRpZmllciBXS19BUElfQVZBSUxB
QkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7CistIChwaWRfdClfbmV0d29ya1Byb2Nlc3NJ
ZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpOwogCiAv
LyBUZXN0IG9ubHkuCi0tIChzaXplX3QpX3dlYlByb2Nlc3NDb3VudCBXS19BUElfQVZBSUxBQkxF
KG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7Ci0tIChCT09MKV9oYXNQcmV3YXJtZWRXZWJQcm9j
ZXNzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkp
OwotLSAoc2l6ZV90KV93ZWJQcm9jZXNzQ291bnRJZ25vcmluZ1ByZXdhcm1lZCBXS19BUElfQVZB
SUxBQkxFKG1hY29zeCgxMC4xNCksIGlvcygxMi4wKSk7Ci0tIChzaXplX3QpX3dlYlByb2Nlc3ND
b3VudElnbm9yaW5nUHJld2FybWVkQW5kQ2FjaGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdL
X01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotLSAoc2l6ZV90KV9wbHVnaW5Qcm9jZXNzQ291
bnQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCksIGlvcygxMS4zKSk7Ci0tIChzaXpl
X3QpX3NlcnZpY2VXb3JrZXJQcm9jZXNzQ291bnQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAu
MTQpLCBpb3MoMTIuMCkpOwotLSAodm9pZClfc3luY05ldHdvcmtQcm9jZXNzQ29va2llcyBXS19B
UElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7Ci0tICh2b2lkKV9tYWtlTmV4
dFdlYlByb2Nlc3NMYXVuY2hGYWlsRm9yVGVzdGluZyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgx
MC4xNCksIGlvcygxMi4wKSk7Ci0tICh2b2lkKV9tYWtlTmV4dE5ldHdvcmtQcm9jZXNzTGF1bmNo
RmFpbEZvclRlc3RpbmcgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTQpLCBpb3MoMTIuMCkp
OwotLSAoTlNVSW50ZWdlcilfbWF4aW11bVN1c3BlbmRlZFBhZ2VDb3VudCBXS19BUElfQVZBSUxB
QkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLS0gKE5TVUludGVnZXIp
X3Byb2Nlc3NDYWNoZUNhcGFjaXR5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOwotLSAoTlNVSW50ZWdlcilfcHJvY2Vzc0NhY2hlU2l6ZSBXS19B
UElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHNp
emVfdClfd2ViUHJvY2Vzc0NvdW50IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3Mo
MTEuMCkpOworLSAoQk9PTClfaGFzUHJld2FybWVkV2ViUHJvY2VzcyBXS19BUElfQVZBSUxBQkxF
KG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAoc2l6ZV90KV93ZWJQcm9j
ZXNzQ291bnRJZ25vcmluZ1ByZXdhcm1lZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSwg
aW9zKDEyLjApKTsKKy0gKHNpemVfdClfd2ViUHJvY2Vzc0NvdW50SWdub3JpbmdQcmV3YXJtZWRB
bmRDYWNoZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19U
QkEpKTsKKy0gKHNpemVfdClfcGx1Z2luUHJvY2Vzc0NvdW50IFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTAuMTMuNCksIGlvcygxMS4zKSk7CistIChzaXplX3QpX3NlcnZpY2VXb3JrZXJQcm9jZXNz
Q291bnQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4wKSk7CistICh2b2lk
KV9zeW5jTmV0d29ya1Byb2Nlc3NDb29raWVzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMp
LCBpb3MoMTEuMCkpOworLSAodm9pZClfbWFrZU5leHRXZWJQcm9jZXNzTGF1bmNoRmFpbEZvclRl
c3RpbmcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4wKSk7CistICh2b2lk
KV9tYWtlTmV4dE5ldHdvcmtQcm9jZXNzTGF1bmNoRmFpbEZvclRlc3RpbmcgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4wKSk7CistIChOU1VJbnRlZ2VyKV9tYXhpbXVtU3Vz
cGVuZGVkUGFnZUNvdW50IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhX
S19JT1NfVEJBKSk7CistIChOU1VJbnRlZ2VyKV9wcm9jZXNzQ2FjaGVDYXBhY2l0eSBXS19BUElf
QVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAoTlNVSW50
ZWdlcilfcHJvY2Vzc0NhY2hlU2l6ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOwogCiAvLyBUZXN0IG9ubHkuIFJldHVybnMgd2ViIHByb2Nlc3Nl
cyBydW5uaW5nIHdlYiBwYWdlcyAoZG9lcyBub3QgaW5jbHVkZSB3ZWIgcHJvY2Vzc2VzIHJ1bm5p
bmcgc2VydmljZSB3b3JrZXJzKQotLSAoc2l6ZV90KV93ZWJQYWdlQ29udGVudFByb2Nlc3NDb3Vu
dCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSwgaW9zKDExLjMpKTsKKy0gKHNpemVf
dClfd2ViUGFnZUNvbnRlbnRQcm9jZXNzQ291bnQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4x
My40KSwgaW9zKDExLjMpKTsKIAogLy8gVGVzdCBvbmx5LiBTaG91bGQgYmUgY2FsbGVkIGJlZm9y
ZSBhbnkgd2ViIGNvbnRlbnQgcHJvY2Vzc2VzIGFyZSBsYXVuY2hlZC4KLSsgKHZvaWQpX2ZvcmNl
R2FtZUNvbnRyb2xsZXJGcmFtZXdvcmsgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMpLCBp
b3MoMTEuMCkpOworKyAodm9pZClfZm9yY2VHYW1lQ29udHJvbGxlckZyYW1ld29yayBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKTsKIAotLSAodm9pZClfcHJlY29ubmVj
dFRvU2VydmVyOihOU1VSTCAqKXNlcnZlclVSTCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4x
My40KSwgaW9zKDExLjMpKTsKKy0gKHZvaWQpX3ByZWNvbm5lY3RUb1NlcnZlcjooTlNVUkwgKilz
ZXJ2ZXJVUkwgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKIAog
Ly8gVGVzdCBvbmx5LgotLSAodm9pZClfc2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGVGb3JTZXJ2
aWNlV29ya2VyOihCT09MKWFsbG93cyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSwg
aW9zKDExLjMpKTsKLS0gKHZvaWQpX3JlZ2lzdGVyVVJMU2NoZW1lU2VydmljZVdvcmtlcnNDYW5I
YW5kbGU6KE5TU3RyaW5nICopc2NoZW1lIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQp
LCBpb3MoMTEuMykpOwotLSAodm9pZClfZ2V0QWN0aXZlUGFnZXNPcmlnaW5zSW5XZWJQcm9jZXNz
Rm9yVGVzdGluZzoocGlkX3QpcGlkIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKE5TQXJyYXk8
TlNTdHJpbmcgKj4gKikpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3go
V0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci0tIChCT09MKV9uZXR3b3JrUHJvY2Vzc0hh
c0VudGl0bGVtZW50Rm9yVGVzdGluZzooTlNTdHJpbmcgKillbnRpdGxlbWVudCBXS19BUElfQVZB
SUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLQotQHByb3BlcnR5
IChub25hdG9taWMsIGdldHRlcj1faXNDb29raWVTdG9yYWdlUGFydGl0aW9uaW5nRW5hYmxlZCwg
c2V0dGVyPV9zZXRDb29raWVTdG9yYWdlUGFydGl0aW9uaW5nRW5hYmxlZDopIEJPT0wgX2Nvb2tp
ZVN0b3JhZ2VQYXJ0aXRpb25pbmdFbmFibGVkIFdLX0FQSV9ERVBSRUNBVEVEKCJQYXJ0aXRpb25l
ZCBjb29raWVzIGFyZSBubyBsb25nZXIgc3VwcG9ydGVkIiwgbWFjb3N4KDEwLjEyLjMsIFdLX01B
Q19UQkEpLCBpb3MoMTAuMywgV0tfSU9TX1RCQSkpOwotQHByb3BlcnR5IChub25hdG9taWMsIGdl
dHRlcj1faXNTdG9yYWdlQWNjZXNzQVBJRW5hYmxlZCwgc2V0dGVyPV9zZXRTdG9yYWdlQWNjZXNz
QVBJRW5hYmxlZDopIEJPT0wgX3N0b3JhZ2VBY2Nlc3NBUElFbmFibGVkIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3N4KDEwLjEzLjQpLCBpb3MoMTEuMykpOwotLSAodm9pZClfc3ludGhlc2l6ZUFwcElz
QmFja2dyb3VuZDooQk9PTCliYWNrZ3JvdW5kIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01B
Q19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfc2V0QWxsb3dzQW55U1NMQ2VydGlm
aWNhdGVGb3JTZXJ2aWNlV29ya2VyOihCT09MKWFsbG93cyBXS19BUElfQVZBSUxBQkxFKG1hY29z
KDEwLjEzLjQpLCBpb3MoMTEuMykpOworLSAodm9pZClfcmVnaXN0ZXJVUkxTY2hlbWVTZXJ2aWNl
V29ya2Vyc0NhbkhhbmRsZTooTlNTdHJpbmcgKilzY2hlbWUgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMC4xMy40KSwgaW9zKDExLjMpKTsKKy0gKHZvaWQpX2dldEFjdGl2ZVBhZ2VzT3JpZ2luc0lu
V2ViUHJvY2Vzc0ZvclRlc3Rpbmc6KHBpZF90KXBpZCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZChe
KShOU0FycmF5PE5TU3RyaW5nICo+ICopKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistIChCT09MKV9uZXR3b3Jr
UHJvY2Vzc0hhc0VudGl0bGVtZW50Rm9yVGVzdGluZzooTlNTdHJpbmcgKillbnRpdGxlbWVudCBX
S19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworCitA
cHJvcGVydHkgKG5vbmF0b21pYywgZ2V0dGVyPV9pc0Nvb2tpZVN0b3JhZ2VQYXJ0aXRpb25pbmdF
bmFibGVkLCBzZXR0ZXI9X3NldENvb2tpZVN0b3JhZ2VQYXJ0aXRpb25pbmdFbmFibGVkOikgQk9P
TCBfY29va2llU3RvcmFnZVBhcnRpdGlvbmluZ0VuYWJsZWQgV0tfQVBJX0RFUFJFQ0FURUQoIlBh
cnRpdGlvbmVkIGNvb2tpZXMgYXJlIG5vIGxvbmdlciBzdXBwb3J0ZWQiLCBtYWNvcygxMC4xMi4z
LCBXS19NQUNfVEJBKSwgaW9zKDEwLjMsIFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRv
bWljLCBnZXR0ZXI9X2lzU3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQsIHNldHRlcj1fc2V0U3RvcmFn
ZUFjY2Vzc0FQSUVuYWJsZWQ6KSBCT09MIF9zdG9yYWdlQWNjZXNzQVBJRW5hYmxlZCBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOworLSAodm9pZClfc3ludGhlc2l6
ZUFwcElzQmFja2dyb3VuZDooQk9PTCliYWNrZ3JvdW5kIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
V0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1NjcmlwdE1lc3NhZ2UuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1NjcmlwdE1lc3NhZ2UuaAppbmRleCBiMTdjMmVj
MTdiYmRlMWJkZTZmMGNhOTUyZDgzNjE5YzY1OGE4NGM3Li45N2JlYjZlODEzOWNkNmE3ZWM2Mjk1
MzExMThmMTc2ODc2ODNhMjNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tTY3JpcHRNZXNzYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLU2NyaXB0TWVzc2FnZS5oCkBAIC0zNSw3ICszNSw3IEBAIE5TX0FTU1VNRV9O
T05OVUxMX0JFR0lOCiAvKiEgQSBXS1NjcmlwdE1lc3NhZ2Ugb2JqZWN0IGNvbnRhaW5zIGluZm9y
bWF0aW9uIGFib3V0IGEgbWVzc2FnZSBzZW50IGZyb20KICBhIHdlYnBhZ2UuCiAgKi8KLVdLX0NM
QVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKK1dLX0NMQVNTX0FWQUlMQUJM
RShtYWNvcygxMC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBXS1NjcmlwdE1lc3NhZ2UgOiBO
U09iamVjdAogCiAvKiEgQGFic3RyYWN0IFRoZSBib2R5IG9mIHRoZSBtZXNzYWdlLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLU2VjdXJpdHlPcmlnaW4u
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1NlY3VyaXR5T3JpZ2luLmgK
aW5kZXggNzM4M2E0MTE1OGJjNWI2OTgzYzlhOTI5MDQ2OGQyYzA3ZWM2YWJlMy4uZjMzOWI4YWU5
N2QxY2YxOThkYjFjNDZiYzYzOTk5ZTNkZTFmMjNhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLU2VjdXJpdHlPcmlnaW4uaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tTZWN1cml0eU9yaWdpbi5oCkBAIC0zNCw3ICszNCw3
IEBACiAgKi8KIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAKLVdLX0NMQVNTX0FWQUlMQUJMRSht
YWNvc3goMTAuMTEpLCBpb3MoOS4wKSkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4xMSks
IGlvcyg5LjApKQogQGludGVyZmFjZSBXS1NlY3VyaXR5T3JpZ2luIDogTlNPYmplY3QKIAogLSAo
aW5zdGFuY2V0eXBlKWluaXQgTlNfVU5BVkFJTEFCTEU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24uaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1NuYXBzaG90Q29uZmlndXJhdGlvbi5oCmlu
ZGV4IDJkNzRmZDVjZDViY2FmNDdhOGQ3OTI3ODBmZGQ5MDRlOWI3MzcyNjkuLjc5OTVjYjhhYTU4
MDdmZDQwMDY5MWZkZTRjNTY1Y2Q2NDI2MDE4OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1NuYXBzaG90Q29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1NuYXBzaG90Q29uZmlndXJhdGlvbi5oCkBA
IC0zMCw3ICszMCw3IEBACiAKIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAKLVdLX0NMQVNTX0FW
QUlMQUJMRShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpCitXS19DTEFTU19BVkFJTEFCTEUobWFj
b3MoMTAuMTMpLCBpb3MoMTEuMCkpCiBAaW50ZXJmYWNlIFdLU25hcHNob3RDb25maWd1cmF0aW9u
IDogTlNPYmplY3QgPE5TQ29weWluZz4KIAogLyohIEBhYnN0cmFjdCBUaGUgcmVjdCB0byBzbmFw
c2hvdCBpbiB2aWV3IGNvb3JkaW5hdGVzLgpAQCAtNTEsNyArNTEsNyBAQCBXS19DTEFTU19BVkFJ
TEFCTEUobWFjb3N4KDEwLjEzKSwgaW9zKDExLjApKQogIHdoaWNoIG1pZ2h0IG5vdCBpbmNsdWRl
IHJlY2VudCBjaGFuZ2VzLgogIEBkaXNjdXNzaW9uIFRoZSBkZWZhdWx0IHZhbHVlIGlzIFlFUy4K
ICAqLwotQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgYWZ0ZXJTY3JlZW5VcGRhdGVzIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3Bl
cnR5IChub25hdG9taWMpIEJPT0wgYWZ0ZXJTY3JlZW5VcGRhdGVzIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIEBlbmQKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZS5oCmluZGV4IDgxNWU4
MDE4ODhlNWQ2NjRkNjVhZTNjYmFhZDY2NzJhMjVmZDdkY2IuLmZlOTI5MWI5OTRiNjQyODM0Nzkz
NDQ0MGJjNzk5NmQ2ZmQ0NGVjNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1VJRGVsZWdhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tVSURlbGVnYXRlLmgKQEAgLTY1LDcgKzY1LDcgQEAgTlNfQVNTVU1FX05PTk5V
TExfQkVHSU4KICAgQGRpc2N1c3Npb24gWW91ciBhcHAgc2hvdWxkIHJlbW92ZSB0aGUgd2ViIHZp
ZXcgZnJvbSB0aGUgdmlldyBoaWVyYXJjaHkgYW5kIHVwZGF0ZQogICB0aGUgVUkgYXMgbmVlZGVk
LCBzdWNoIGFzIGJ5IGNsb3NpbmcgdGhlIGNvbnRhaW5pbmcgYnJvd3NlciB0YWIgb3Igd2luZG93
LgogICAqLwotLSAodm9pZCl3ZWJWaWV3RGlkQ2xvc2U6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tf
QVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CistICh2b2lkKXdlYlZpZXdE
aWRDbG9zZTooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEx
KSwgaW9zKDkuMCkpOwogCiAvKiEgQGFic3RyYWN0IERpc3BsYXlzIGEgSmF2YVNjcmlwdCBhbGVy
dCBwYW5lbC4KICBAcGFyYW0gd2ViVmlldyBUaGUgd2ViIHZpZXcgaW52b2tpbmcgdGhlIGRlbGVn
YXRlIG1ldGhvZC4KQEAgLTE2NCw3ICsxNjQsNyBAQCBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgog
CiAgSWYgeW91IGRvIG5vdCBpbXBsZW1lbnQgdGhpcyBtZXRob2QsIHRoZSB3ZWIgdmlldyB3aWxs
IGJlaGF2ZSBhcyBpZiB0aGUgdXNlciBzZWxlY3RlZCB0aGUgQ2FuY2VsIGJ1dHRvbi4KICAqLwot
LSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJ1bk9wZW5QYW5lbFdpdGhQYXJh
bWV0ZXJzOihXS09wZW5QYW5lbFBhcmFtZXRlcnMgKilwYXJhbWV0ZXJzIGluaXRpYXRlZEJ5RnJh
bWU6KFdLRnJhbWVJbmZvICopZnJhbWUgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TQXJy
YXk8TlNVUkwgKj4gKiBfTnVsbGFibGUgVVJMcykpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goMTAuMTIpKTsKKy0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2Vi
VmlldyBydW5PcGVuUGFuZWxXaXRoUGFyYW1ldGVyczooV0tPcGVuUGFuZWxQYXJhbWV0ZXJzICop
cGFyYW1ldGVycyBpbml0aWF0ZWRCeUZyYW1lOihXS0ZyYW1lSW5mbyAqKWZyYW1lIGNvbXBsZXRp
b25IYW5kbGVyOih2b2lkICheKShOU0FycmF5PE5TVVJMICo+ICogX051bGxhYmxlIFVSTHMpKWNv
bXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpKTsKIAogI2VuZGlm
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVs
ZWdhdGVQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURl
bGVnYXRlUHJpdmF0ZS5oCmluZGV4IDdlMjQ4ZTc5ODI1MTgxY2I5MTEyOGRmYWI0NmVkODk1ODU3
MDE5YzkuLjRkNzBlZTJmZjBmMWQyNDEyZTM2ZmI3ODMxOTQ1NTY2MzQzNDgwZGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRl
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVBy
aXZhdGUuaApAQCAtNTAsMzEgKzUwLDMxIEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9X
S0F1dG9wbGF5RXZlbnQpIHsKICAgICBfV0tBdXRvcGxheUV2ZW50RGlkUGxheU1lZGlhV2l0aFVz
ZXJHZXN0dXJlLAogICAgIF9XS0F1dG9wbGF5RXZlbnREaWRBdXRvcGxheU1lZGlhUGFzdFRocmVz
aG9sZFdpdGhvdXRVc2VySW50ZXJmZXJlbmNlLAogICAgIF9XS0F1dG9wbGF5RXZlbnRVc2VyRGlk
SW50ZXJmZXJlV2l0aFBsYXliYWNrLAotfSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40
KSk7Cit9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOwogCiB0eXBlZGVmIE5TX0VO
VU0oTlNJbnRlZ2VyLCBfV0tSZXNvdXJjZUxpbWl0KSB7CiAgICAgX1dLUmVzb3VyY2VMaW1pdE1l
bW9yeSwKICAgICBfV0tSZXNvdXJjZUxpbWl0Q1BVLAotfSBXS19BUElfQVZBSUxBQkxFKG1hY29z
eCgxMC4xMy40KSk7Cit9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOwogCiB0eXBl
ZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tQbHVnSW5VbmF2YWlsYWJpbGl0eVJlYXNvbikgewog
ICAgIF9XS1BsdWdJblVuYXZhaWxhYmlsaXR5UmVhc29uUGx1Z2luTWlzc2luZywKICAgICBfV0tQ
bHVnSW5VbmF2YWlsYWJpbGl0eVJlYXNvblBsdWdpbkNyYXNoZWQsCiAgICAgX1dLUGx1Z0luVW5h
dmFpbGFiaWxpdHlSZWFzb25JbnNlY3VyZVBsdWdpblZlcnNpb24KLX0gV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goMTAuMTMuNCkpOworfSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsK
IAogdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS0F1dG9wbGF5RXZlbnRGbGFncykg
ewogICAgIF9XS0F1dG9wbGF5RXZlbnRGbGFnc05vbmUgPSAwLAogICAgIF9XS0F1dG9wbGF5RXZl
bnRGbGFnc0hhc0F1ZGlvID0gMSA8PCAwLAogICAgIF9XS0F1dG9wbGF5RXZlbnRGbGFnc1BsYXli
YWNrV2FzUHJldmVudGVkID0gMSA8PCAxLAogICAgIF9XS0F1dG9wbGF5RXZlbnRGbGFnc01lZGlh
SXNNYWluQ29udGVudCA9IDEgPDwgMiwKLX0gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMu
NCkpOworfSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKICNlbmRpZgogCiB0eXBl
ZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tGb2N1c0RpcmVjdGlvbikgewogICAgIF9XS0ZvY3Vz
RGlyZWN0aW9uQmFja3dhcmQsCiAgICAgX1dLRm9jdXNEaXJlY3Rpb25Gb3J3YXJkLAotfSBXS19B
UElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSwgaW9zKFdLX0lPU19UQkEpKTsKK30gV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKFdLX0lPU19UQkEpKTsKIAogQHByb3RvY29s
IFdLVUlEZWxlZ2F0ZVByaXZhdGUgPFdLVUlEZWxlZ2F0ZT4KIApAQCAtOTUsMzkgKzk1LDM5IEBA
IHN0cnVjdCBVSUVkZ2VJbnNldHM7CiAKIC0gKHZvaWQpX3dlYlZpZXdDbG9zZTooV0tXZWJWaWV3
ICopd2ViVmlldzsKIC0gKHZvaWQpX3dlYlZpZXdGdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmU6
KFdLV2ViVmlldyAqKXdlYlZpZXc7Ci0tICh2b2lkKV93ZWJWaWV3RGlkRW50ZXJGdWxsc2NyZWVu
OihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9z
KDguMykpOwotLSAodm9pZClfd2ViVmlld0RpZEV4aXRGdWxsc2NyZWVuOihXS1dlYlZpZXcgKil3
ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDguMykpOwotLSAodm9p
ZClfd2ViVmlld1JlcXVlc3RQb2ludGVyTG9jazooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElf
QVZBSUxBQkxFKG1hY29zeCgxMC4xMi4zKSk7Ci0tICh2b2lkKV93ZWJWaWV3RGlkUmVxdWVzdFBv
aW50ZXJMb2NrOihXS1dlYlZpZXcgKil3ZWJWaWV3IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkIChe
KShCT09MKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLS0gKHZvaWQpX3dlYlZpZXdEaWRTaG93U2FmZUJyb3dz
aW5nV2FybmluZzooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zeChX
S19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLS0gKHZvaWQpX3dlYlZpZXdEaWRMb3NlUG9p
bnRlckxvY2s6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAu
MTIuMykpOwotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBoYXNWaWRlb0lu
UGljdHVyZUluUGljdHVyZURpZENoYW5nZTooQk9PTCloYXNWaWRlb0luUGljdHVyZUluUGljdHVy
ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7CistICh2b2lkKV93
ZWJWaWV3RGlkRW50ZXJGdWxsc2NyZWVuOihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTAuMTEpLCBpb3MoOC4zKSk7CistICh2b2lkKV93ZWJWaWV3RGlkRXhpdEZ1
bGxzY3JlZW46KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4x
MSksIGlvcyg4LjMpKTsKKy0gKHZvaWQpX3dlYlZpZXdSZXF1ZXN0UG9pbnRlckxvY2s6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMi4zKSk7CistICh2b2lk
KV93ZWJWaWV3RGlkUmVxdWVzdFBvaW50ZXJMb2NrOihXS1dlYlZpZXcgKil3ZWJWaWV3IGNvbXBs
ZXRpb25IYW5kbGVyOih2b2lkICheKShCT09MKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZB
SUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfd2Vi
Vmlld0RpZFNob3dTYWZlQnJvd3NpbmdXYXJuaW5nOihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lk
KV93ZWJWaWV3RGlkTG9zZVBvaW50ZXJMb2NrOihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTAuMTIuMykpOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICop
d2ViVmlldyBoYXNWaWRlb0luUGljdHVyZUluUGljdHVyZURpZENoYW5nZTooQk9PTCloYXNWaWRl
b0luUGljdHVyZUluUGljdHVyZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDEx
LjApKTsKIAotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBpbWFnZU9yTWVk
aWFEb2N1bWVudFNpemVDaGFuZ2VkOihDR1NpemUpc2l6ZSBXS19BUElfQVZBSUxBQkxFKG1hY29z
eCgxMC4xMiksIGlvcygxMC4wKSk7Ci0tIChOU0RpY3Rpb25hcnkgKilfZGF0YURldGVjdGlvbkNv
bnRleHRGb3JXZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KDEwLjEyKSwgaW9zKDEwLjApKTsKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdl
YlZpZXcgcmVxdWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6YXRpb246KF9XS0NhcHR1cmVEZXZpY2Vz
KWRldmljZXMgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MIGF1dGhvcml6ZWQpKWRlY2lz
aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lP
U19UQkEpKTsKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgaW5jbHVkZVNl
bnNpdGl2ZU1lZGlhRGV2aWNlRGV0YWlsczoodm9pZCAoXikoQk9PTCBpbmNsdWRlU2Vuc2l0aXZl
RGV0YWlscykpZGVjaXNpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19U
QkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2Vi
VmlldyByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXM6KF9XS0NhcHR1cmVE
ZXZpY2VzKWRldmljZXMgdXJsOihOU1VSTCAqKXVybCBtYWluRnJhbWVVUkw6KE5TVVJMICopbWFp
bkZyYW1lVVJMIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCBhdXRob3JpemVkKSlkZWNp
c2lvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpOwot
LSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjaGVja1VzZXJNZWRpYVBlcm1p
c3Npb25Gb3JVUkw6KE5TVVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVV
UkwgZnJhbWVJZGVudGlmaWVyOihOU1VJbnRlZ2VyKWZyYW1lSWRlbnRpZmllciBkZWNpc2lvbkhh
bmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5nICpzYWx0LCBCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9u
SGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMi4zKSwgaW9zKDEwLjMpKTsKLS0g
KHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgbWVkaWFDYXB0dXJlU3RhdGVEaWRD
aGFuZ2U6KF9XS01lZGlhQ2FwdHVyZVN0YXRlKXN0YXRlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KDEwLjEzKSwgaW9zKDExLjApKTsKLS0gKFdLRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uKV93ZWJWaWV3
OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRyYWdEZXN0aW5hdGlvbkFjdGlvbk1hc2tGb3JEcmFnZ2lu
Z0luZm86KGlkKWRyYWdnaW5nSW5mbyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlv
cygxMS4wKSk7Ci0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNyZWF0ZVdl
YlZpZXdXaXRoQ29uZmlndXJhdGlvbjooV0tXZWJWaWV3Q29uZmlndXJhdGlvbiAqKWNvbmZpZ3Vy
YXRpb24gZm9yTmF2aWdhdGlvbkFjdGlvbjooV0tOYXZpZ2F0aW9uQWN0aW9uICopbmF2aWdhdGlv
bkFjdGlvbiB3aW5kb3dGZWF0dXJlczooV0tXaW5kb3dGZWF0dXJlcyAqKXdpbmRvd0ZlYXR1cmVz
IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShXS1dlYlZpZXcgKndlYlZpZXcpKWNvbXBsZXRp
b25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzKSwgaW9zKDExLjApKTsKLS0g
KHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdEdlb2xvY2F0aW9uUGVy
bWlzc2lvbkZvckZyYW1lOihXS0ZyYW1lSW5mbyAqKWZyYW1lIGRlY2lzaW9uSGFuZGxlcjoodm9p
ZCAoXikoQk9PTCBhbGxvd2VkKSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goMTAuMTMuNCksIGlvcygxMS4zKSk7CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3
ZWJWaWV3IGltYWdlT3JNZWRpYURvY3VtZW50U2l6ZUNoYW5nZWQ6KENHU2l6ZSlzaXplIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOworLSAoTlNEaWN0aW9uYXJ5ICop
X2RhdGFEZXRlY3Rpb25Db250ZXh0Rm9yV2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKKy0gKHZvaWQpX3dlYlZpZXc6
KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6YXRpb246KF9X
S0NhcHR1cmVEZXZpY2VzKWRldmljZXMgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MIGF1
dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19U
QkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2Vi
VmlldyBpbmNsdWRlU2Vuc2l0aXZlTWVkaWFEZXZpY2VEZXRhaWxzOih2b2lkICheKShCT09MIGlu
Y2x1ZGVTZW5zaXRpdmVEZXRhaWxzKSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX3dlYlZpZXc6KFdL
V2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2Vz
OihfV0tDYXB0dXJlRGV2aWNlcylkZXZpY2VzIHVybDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJM
OihOU1VSTCAqKW1haW5GcmFtZVVSTCBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgYXV0
aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBp
b3MoMTEuMCkpOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjaGVja1Vz
ZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6KE5TVVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwg
KiltYWluRnJhbWVVUkwgZnJhbWVJZGVudGlmaWVyOihOU1VJbnRlZ2VyKWZyYW1lSWRlbnRpZmll
ciBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5nICpzYWx0LCBCT09MIGF1dGhvcml6
ZWQpKWRlY2lzaW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyLjMpLCBpb3Mo
MTAuMykpOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBtZWRpYUNhcHR1
cmVTdGF0ZURpZENoYW5nZTooX1dLTWVkaWFDYXB0dXJlU3RhdGUpc3RhdGUgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSk7CistIChXS0RyYWdEZXN0aW5hdGlvbkFjdGlv
bilfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkcmFnRGVzdGluYXRpb25BY3Rpb25NYXNr
Rm9yRHJhZ2dpbmdJbmZvOihpZClkcmFnZ2luZ0luZm8gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygx
MC4xMyksIGlvcygxMS4wKSk7CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IGNyZWF0ZVdlYlZpZXdXaXRoQ29uZmlndXJhdGlvbjooV0tXZWJWaWV3Q29uZmlndXJhdGlvbiAq
KWNvbmZpZ3VyYXRpb24gZm9yTmF2aWdhdGlvbkFjdGlvbjooV0tOYXZpZ2F0aW9uQWN0aW9uICop
bmF2aWdhdGlvbkFjdGlvbiB3aW5kb3dGZWF0dXJlczooV0tXaW5kb3dGZWF0dXJlcyAqKXdpbmRv
d0ZlYXR1cmVzIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShXS1dlYlZpZXcgKndlYlZpZXcp
KWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEu
MCkpOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0R2VvbG9j
YXRpb25QZXJtaXNzaW9uRm9yRnJhbWU6KFdLRnJhbWVJbmZvICopZnJhbWUgZGVjaXNpb25IYW5k
bGVyOih2b2lkICheKShCT09MIGFsbG93ZWQpKWRlY2lzaW9uSGFuZGxlciBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOwogCi0tICh2b2lkKV93ZWJWaWV3OihXS1dl
YlZpZXcgKil3ZWJWaWV3IHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbFdpdGhNZXNzYWdlOihO
U1N0cmluZyAqKW1lc3NhZ2UgaW5pdGlhdGVkQnlGcmFtZTooV0tGcmFtZUluZm8gKilmcmFtZSBj
b21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCByZXN1bHQpKWNvbXBsZXRpb25IYW5kbGVy
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzKSwgaW9zKDExLjApKTsKLS0gKHZvaWQpX3dl
YlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZWRpdG9yU3RhdGVEaWRDaGFuZ2U6KE5TRGljdGlv
bmFyeSAqKWVkaXRvclN0YXRlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpLCBpb3Mo
MTEuMykpOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBydW5CZWZvcmVV
bmxvYWRDb25maXJtUGFuZWxXaXRoTWVzc2FnZTooTlNTdHJpbmcgKiltZXNzYWdlIGluaXRpYXRl
ZEJ5RnJhbWU6KFdLRnJhbWVJbmZvICopZnJhbWUgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4p
KEJPT0wgcmVzdWx0KSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEw
LjEzKSwgaW9zKDExLjApKTsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcg
ZWRpdG9yU3RhdGVEaWRDaGFuZ2U6KE5TRGljdGlvbmFyeSAqKWVkaXRvclN0YXRlIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7CiAKLS0gKHZvaWQpX3dlYlZpZXc6
KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkUmVtb3ZlQXR0YWNobWVudDooX1dLQXR0YWNobWVudCAq
KWF0dGFjaG1lbnQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCksIGlvcygxMS4zKSk7
Ci0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZEluc2VydEF0dGFjaG1l
bnQ6KF9XS0F0dGFjaG1lbnQgKilhdHRhY2htZW50IHdpdGhTb3VyY2U6KE5TU3RyaW5nICopc291
cmNlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjE0KSwgaW9zKDEyLjApKTsKLS0gKHZvaWQp
X3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkSW52YWxpZGF0ZURhdGFGb3JBdHRhY2ht
ZW50OihfV0tBdHRhY2htZW50ICopYXR0YWNobWVudCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChX
S19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmll
dyAqKXdlYlZpZXcgZGlkUmVtb3ZlQXR0YWNobWVudDooX1dLQXR0YWNobWVudCAqKWF0dGFjaG1l
bnQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKKy0gKHZvaWQp
X3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkSW5zZXJ0QXR0YWNobWVudDooX1dLQXR0
YWNobWVudCAqKWF0dGFjaG1lbnQgd2l0aFNvdXJjZTooTlNTdHJpbmcgKilzb3VyY2UgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4wKSk7CistICh2b2lkKV93ZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IGRpZEludmFsaWRhdGVEYXRhRm9yQXR0YWNobWVudDooX1dLQXR0
YWNobWVudCAqKWF0dGFjaG1lbnQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEpKTsKIAotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmll
dyBkaWRSZXNpZ25JbnB1dEVsZW1lbnRTdHJvbmdQYXNzd29yZEFwcGVhcmFuY2VXaXRoVXNlcklu
Zm86KGlkIDxOU1NlY3VyZUNvZGluZz4pdXNlckluZm8gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3go
MTAuMTQpLCBpb3MoMTIuMCkpOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmll
dyBkaWRSZXNpZ25JbnB1dEVsZW1lbnRTdHJvbmdQYXNzd29yZEFwcGVhcmFuY2VXaXRoVXNlcklu
Zm86KGlkIDxOU1NlY3VyZUNvZGluZz4pdXNlckluZm8gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygx
MC4xNCksIGlvcygxMi4wKSk7CiAKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZp
ZXcgcmVxdWVzdFN0b3JhZ2VBY2Nlc3NQYW5lbEZvckRvbWFpbjooTlNTdHJpbmcgKilyZXF1ZXN0
aW5nRG9tYWluIHVuZGVyQ3VycmVudERvbWFpbjooTlNTdHJpbmcgKiljdXJyZW50RG9tYWluIGNv
bXBsZXRpb25IYW5kbGVyOih2b2lkICheKShCT09MIHJlc3VsdCkpY29tcGxldGlvbkhhbmRsZXIg
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTQpLCBpb3MoMTIuMCkpOworLSAodm9pZClfd2Vi
VmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0U3RvcmFnZUFjY2Vzc1BhbmVsRm9yRG9t
YWluOihOU1N0cmluZyAqKXJlcXVlc3RpbmdEb21haW4gdW5kZXJDdXJyZW50RG9tYWluOihOU1N0
cmluZyAqKWN1cnJlbnREb21haW4gY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgcmVz
dWx0KSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSwgaW9z
KDEyLjApKTsKIAotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWRDaGFu
Z2VGb250QXR0cmlidXRlczooTlNEaWN0aW9uYXJ5PE5TU3RyaW5nICosIGlkPiAqKWZvbnRBdHRy
aWJ1dGVzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RC
QSkpOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWRDaGFuZ2VGb250
QXR0cmlidXRlczooTlNEaWN0aW9uYXJ5PE5TU3RyaW5nICosIGlkPiAqKWZvbnRBdHRyaWJ1dGVz
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAK
LS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgdGFrZUZvY3VzOihfV0tGb2N1
c0RpcmVjdGlvbilkaXJlY3Rpb24gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCksIGlv
cyhXS19JT1NfVEJBKSk7CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHRh
a2VGb2N1czooX1dLRm9jdXNEaXJlY3Rpb24pZGlyZWN0aW9uIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTAuMTMuNCksIGlvcyhXS19JT1NfVEJBKSk7CiAKICNpZiBUQVJHRVRfT1NfSVBIT05FCiAt
IChCT09MKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHNob3VsZEluY2x1ZGVBcHBMaW5r
QWN0aW9uc0ZvckVsZW1lbnQ6KF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICopZWxlbWVudCBXS19B
UElfQVZBSUxBQkxFKGlvcyg5LjApKTsKQEAgLTE4MSwzNCArMTgxLDM0IEBAIHN0cnVjdCBVSUVk
Z2VJbnNldHM7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHNob3VsZEFs
bG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NSZXF1ZXN0ZWRCeUZyYW1lOihXS0Zy
YW1lSW5mbyAqKXJlcXVlc3RpbmdGcmFtZSBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wp
KWRlY2lzaW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CiAKICNl
bHNlIC8vIFRBUkdFVF9PU19JUEhPTkUKLS0gKHZvaWQpX3ByZXBhcmVGb3JJbW1lZGlhdGVBY3Rp
b25BbmltYXRpb25Gb3JXZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFC
TEUobWFjb3N4KDEwLjEzLjQpKTsKLS0gKHZvaWQpX2NhbmNlbEltbWVkaWF0ZUFjdGlvbkFuaW1h
dGlvbkZvcldlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goMTAuMTMuNCkpOwotLSAodm9pZClfY29tcGxldGVJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25G
b3JXZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEw
LjEzLjQpKTsKLS0gKHZvaWQpX3Nob3dXZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpKTsKLS0gKHZvaWQpX2ZvY3VzV2ViVmlldzooV0tX
ZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSk7Ci0tICh2
b2lkKV91bmZvY3VzV2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxF
KG1hY29zeCgxMC4xMy40KSk7Ci0tICh2b2lkKV93ZWJWaWV3RGlkU2Nyb2xsOihXS1dlYlZpZXcg
Kil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpKTsKLS0gKHZvaWQpX3dl
YlZpZXdSdW5Nb2RhbDooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29z
eCgxMC4xMy40KSk7Ci0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZE5v
dEhhbmRsZVdoZWVsRXZlbnQ6KE5TRXZlbnQgKilldmVudCBXS19BUElfQVZBSUxBQkxFKG1hY29z
eCgxMC4xMy40KSk7Ci0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGhhbmRs
ZUF1dG9wbGF5RXZlbnQ6KF9XS0F1dG9wbGF5RXZlbnQpZXZlbnQgd2l0aEZsYWdzOihfV0tBdXRv
cGxheUV2ZW50RmxhZ3MpZmxhZ3MgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCkpOwot
LSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWRDbGlja0F1dG9GaWxsQnV0
dG9uV2l0aFVzZXJJbmZvOihpZCA8TlNTZWN1cmVDb2Rpbmc+KXVzZXJJbmZvIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KDEwLjEzLjQpKTsKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdl
YlZpZXcgZ2V0VG9vbGJhcnNBcmVWaXNpYmxlV2l0aENvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4p
KEJPT0wpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQp
KTsKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgc2F2ZURhdGFUb0ZpbGU6
KE5TRGF0YSAqKWRhdGEgc3VnZ2VzdGVkRmlsZW5hbWU6KE5TU3RyaW5nICopc3VnZ2VzdGVkRmls
ZW5hbWUgbWltZVR5cGU6KE5TU3RyaW5nICopbWltZVR5cGUgb3JpZ2luYXRpbmdVUkw6KE5TVVJM
ICopdXJsIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpKTsKLS0gKENHRmxvYXQpX3dl
YlZpZXdIZWFkZXJIZWlnaHQ6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRSht
YWNvc3goMTAuMTMuNCkpOwotLSAoQ0dGbG9hdClfd2ViVmlld0Zvb3RlckhlaWdodDooV0tXZWJW
aWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSk7Ci0tICh2b2lk
KV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRyYXdIZWFkZXJJblJlY3Q6KENHUmVjdCly
ZWN0IGZvclBhZ2VXaXRoVGl0bGU6KE5TU3RyaW5nICopdGl0bGUgVVJMOihOU1VSTCAqKXVybCBX
S19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSk7Ci0tICh2b2lkKV93ZWJWaWV3OihXS1dl
YlZpZXcgKil3ZWJWaWV3IGRyYXdGb290ZXJJblJlY3Q6KENHUmVjdClyZWN0IGZvclBhZ2VXaXRo
VGl0bGU6KE5TU3RyaW5nICopdGl0bGUgVVJMOihOU1VSTCAqKXVybCBXS19BUElfQVZBSUxBQkxF
KG1hY29zeCgxMC4xMy40KSk7Ci0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IHJlcXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9uRm9yU2VjdXJpdHlPcmlnaW46KFdLU2VjdXJp
dHlPcmlnaW4gKilzZWN1cml0eU9yaWdpbiBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wp
KWRlY2lzaW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSk7CistICh2
b2lkKV9wcmVwYXJlRm9ySW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uRm9yV2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKKy0gKHZvaWQp
X2NhbmNlbEltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkZvcldlYlZpZXc6KFdLV2ViVmlldyAqKXdl
YlZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CistICh2b2lkKV9jb21wbGV0
ZUltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkZvcldlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CistICh2b2lkKV9zaG93V2ViVmlldzoo
V0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKKy0g
KHZvaWQpX2ZvY3VzV2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjEzLjQpKTsKKy0gKHZvaWQpX3VuZm9jdXNXZWJWaWV3OihXS1dlYlZpZXcgKil3
ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOworLSAodm9pZClfd2ViVmll
d0RpZFNjcm9sbDooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEw
LjEzLjQpKTsKKy0gKHZvaWQpX3dlYlZpZXdSdW5Nb2RhbDooV0tXZWJWaWV3ICopd2ViVmlldyBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgZGlkTm90SGFuZGxlV2hlZWxFdmVudDooTlNFdmVudCAqKWV2ZW50IFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOworLSAodm9pZClfd2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyBoYW5kbGVBdXRvcGxheUV2ZW50OihfV0tBdXRvcGxheUV2ZW50KWV2ZW50
IHdpdGhGbGFnczooX1dLQXV0b3BsYXlFdmVudEZsYWdzKWZsYWdzIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTAuMTMuNCkpOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBk
aWRDbGlja0F1dG9GaWxsQnV0dG9uV2l0aFVzZXJJbmZvOihpZCA8TlNTZWN1cmVDb2Rpbmc+KXVz
ZXJJbmZvIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOworLSAodm9pZClfd2ViVmll
dzooV0tXZWJWaWV3ICopd2ViVmlldyBnZXRUb29sYmFyc0FyZVZpc2libGVXaXRoQ29tcGxldGlv
bkhhbmRsZXI6KHZvaWQoXikoQk9PTCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMC4xMy40KSk7CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IHNhdmVEYXRhVG9GaWxlOihOU0RhdGEgKilkYXRhIHN1Z2dlc3RlZEZpbGVuYW1lOihOU1N0cmlu
ZyAqKXN1Z2dlc3RlZEZpbGVuYW1lIG1pbWVUeXBlOihOU1N0cmluZyAqKW1pbWVUeXBlIG9yaWdp
bmF0aW5nVVJMOihOU1VSTCAqKXVybCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsK
Ky0gKENHRmxvYXQpX3dlYlZpZXdIZWFkZXJIZWlnaHQ6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CistIChDR0Zsb2F0KV93ZWJWaWV3Rm9vdGVy
SGVpZ2h0OihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMu
NCkpOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkcmF3SGVhZGVySW5S
ZWN0OihDR1JlY3QpcmVjdCBmb3JQYWdlV2l0aFRpdGxlOihOU1N0cmluZyAqKXRpdGxlIFVSTDoo
TlNVUkwgKil1cmwgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CistICh2b2lkKV93
ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRyYXdGb290ZXJJblJlY3Q6KENHUmVjdClyZWN0
IGZvclBhZ2VXaXRoVGl0bGU6KE5TU3RyaW5nICopdGl0bGUgVVJMOihOU1VSTCAqKXVybCBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmll
dyAqKXdlYlZpZXcgcmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb25Gb3JTZWN1cml0eU9yaWdp
bjooV0tTZWN1cml0eU9yaWdpbiAqKXNlY3VyaXR5T3JpZ2luIGRlY2lzaW9uSGFuZGxlcjoodm9p
ZCAoXikoQk9PTCkpZGVjaXNpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMu
NCkpOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2VidmlldyBtb3VzZURpZE1vdmVP
dmVyRWxlbWVudDooX1dLSGl0VGVzdFJlc3VsdCAqKWhpdFRlc3RSZXN1bHQgd2l0aEZsYWdzOihO
U0V2ZW50TW9kaWZpZXJGbGFncylmbGFncyB1c2VySW5mbzooaWQgPE5TU2VjdXJlQ29kaW5nPil1
c2VySW5mbzsKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkRXhjZWVk
QmFja2dyb3VuZFJlc291cmNlTGltaXRXaGlsZUluRm9yZWdyb3VuZDooX1dLUmVzb3VyY2VMaW1p
dClsaW1pdCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSk7Ci0tICh2b2lkKV93ZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHNldFJlc2l6YWJsZTooQk9PTClpc1Jlc2l6YWJsZSBX
S19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSk7Ci0tICh2b2lkKV93ZWJWaWV3OihXS1dl
YlZpZXcgKil3ZWJWaWV3IGdldFdpbmRvd0ZyYW1lV2l0aENvbXBsZXRpb25IYW5kbGVyOih2b2lk
ICheKShDR1JlY3QpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEw
LjEzLjQpKTsKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgc2V0V2luZG93
RnJhbWU6KENHUmVjdClmcmFtZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSk7Cist
ICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZEV4Y2VlZEJhY2tncm91bmRS
ZXNvdXJjZUxpbWl0V2hpbGVJbkZvcmVncm91bmQ6KF9XS1Jlc291cmNlTGltaXQpbGltaXQgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZp
ZXcgKil3ZWJWaWV3IHNldFJlc2l6YWJsZTooQk9PTClpc1Jlc2l6YWJsZSBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDEwLjEzLjQpKTsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZp
ZXcgZ2V0V2luZG93RnJhbWVXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKENHUmVjdCkp
Y29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CistICh2
b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHNldFdpbmRvd0ZyYW1lOihDR1JlY3Qp
ZnJhbWUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CiAtICh2b2lkKV93ZWJWaWV3
OihXS1dlYlZpZXcgKil3ZWJWaWV3IHVuYXZhaWxhYmxlUGx1Z0luQnV0dG9uQ2xpY2tlZFdpdGhS
ZWFzb246KF9XS1BsdWdJblVuYXZhaWxhYmlsaXR5UmVhc29uKXJlYXNvbiBwbHVnSW5JbmZvOihO
U0RpY3Rpb25hcnkgKilwbHVnSW5JbmZvOwotLSAoTlNNZW51ICopX3dlYlZpZXc6KFdLV2ViVmll
dyAqKXdlYlZpZXcgY29udGV4dE1lbnU6KE5TTWVudSAqKW1lbnUgZm9yRWxlbWVudDooX1dLQ29u
dGV4dE1lbnVFbGVtZW50SW5mbyAqKWVsZW1lbnQgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBM
QUNFTUVOVCgiX3dlYlZpZXc6Z2V0Q29udGV4dE1lbnVGcm9tUHJvcG9zZWRNZW51OmZvckVsZW1l
bnQ6dXNlckluZm86Y29tcGxldGlvbkhhbmRsZXI6IiwgbWFjb3N4KDEwLjEyLCBXS19NQUNfVEJB
KSk7Ci0tIChOU01lbnUgKilfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjb250ZXh0TWVu
dTooTlNNZW51ICopbWVudSBmb3JFbGVtZW50OihfV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvICop
ZWxlbWVudCB1c2VySW5mbzooaWQgPE5TU2VjdXJlQ29kaW5nPil1c2VySW5mbyBXS19BUElfREVQ
UkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJfd2ViVmlldzpnZXRDb250ZXh0TWVudUZyb21Qcm9w
b3NlZE1lbnU6Zm9yRWxlbWVudDp1c2VySW5mbzpjb21wbGV0aW9uSGFuZGxlcjoiLCBtYWNvc3go
MTAuMTIsIFdLX01BQ19UQkEpKTsKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZp
ZXcgZ2V0Q29udGV4dE1lbnVGcm9tUHJvcG9zZWRNZW51OihOU01lbnUgKiltZW51IGZvckVsZW1l
bnQ6KF9XS0NvbnRleHRNZW51RWxlbWVudEluZm8gKillbGVtZW50IHVzZXJJbmZvOihpZCA8TlNT
ZWN1cmVDb2Rpbmc+KXVzZXJJbmZvIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU01lbnUg
KikpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTQpKTsKLS0g
KHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkUGVyZm9ybURyYWdPcGVyYXRp
b246KEJPT0wpaGFuZGxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSk7Cist
IChOU01lbnUgKilfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjb250ZXh0TWVudTooTlNN
ZW51ICopbWVudSBmb3JFbGVtZW50OihfV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvICopZWxlbWVu
dCBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJfd2ViVmlldzpnZXRDb250ZXh0
TWVudUZyb21Qcm9wb3NlZE1lbnU6Zm9yRWxlbWVudDp1c2VySW5mbzpjb21wbGV0aW9uSGFuZGxl
cjoiLCBtYWNvcygxMC4xMiwgV0tfTUFDX1RCQSkpOworLSAoTlNNZW51ICopX3dlYlZpZXc6KFdL
V2ViVmlldyAqKXdlYlZpZXcgY29udGV4dE1lbnU6KE5TTWVudSAqKW1lbnUgZm9yRWxlbWVudDoo
X1dLQ29udGV4dE1lbnVFbGVtZW50SW5mbyAqKWVsZW1lbnQgdXNlckluZm86KGlkIDxOU1NlY3Vy
ZUNvZGluZz4pdXNlckluZm8gV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiX3dl
YlZpZXc6Z2V0Q29udGV4dE1lbnVGcm9tUHJvcG9zZWRNZW51OmZvckVsZW1lbnQ6dXNlckluZm86
Y29tcGxldGlvbkhhbmRsZXI6IiwgbWFjb3MoMTAuMTIsIFdLX01BQ19UQkEpKTsKKy0gKHZvaWQp
X3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZ2V0Q29udGV4dE1lbnVGcm9tUHJvcG9zZWRN
ZW51OihOU01lbnUgKiltZW51IGZvckVsZW1lbnQ6KF9XS0NvbnRleHRNZW51RWxlbWVudEluZm8g
KillbGVtZW50IHVzZXJJbmZvOihpZCA8TlNTZWN1cmVDb2Rpbmc+KXVzZXJJbmZvIGNvbXBsZXRp
b25IYW5kbGVyOih2b2lkICheKShOU01lbnUgKikpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMC4xNCkpOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2Vi
VmlldyBkaWRQZXJmb3JtRHJhZ09wZXJhdGlvbjooQk9PTCloYW5kbGVkIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoV0tfTUFDX1RCQSkpOwogI2VuZGlmIC8vIFRBUkdFVF9PU19JUEhPTkUKIAogQGVu
ZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVVJMU2No
ZW1lSGFuZGxlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVVJMU2No
ZW1lSGFuZGxlci5oCmluZGV4IGJjYzMzZjMyMzEzNjlhMzFiN2FiZDM0ZGJlYWU5ZjcwZWI3N2Uz
NjIuLjg4NmEzMDZmYzBlMTdkYWY4NWM3ZWE5M2RlYzk5ODc0MmEzZDQwOTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VSTFNjaGVtZUhhbmRsZXIuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVUkxTY2hlbWVIYW5kbGVy
LmgKQEAgLTM1LDcgKzM1LDcgQEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIC8qISBBIGNsYXNz
IGNvbmZvcm1pbmcgdG8gdGhlIFdLVVJMU2NoZW1lSGFuZGxlciBwcm90b2NvbCBwcm92aWRlcyBt
ZXRob2RzIGZvcgogIGxvYWRpbmcgcmVzb3VyY2VzIHdpdGggVVJMIHNjaGVtZXMgdGhhdCBXZWJL
aXQgZG9lc24ndCBrbm93IGhvdyB0byBoYW5kbGUgaXRzZWxmLgogICovCi1XS19BUElfQVZBSUxB
QkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSkKK1dLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAu
MTMpLCBpb3MoMTEuMCkpCiBAcHJvdG9jb2wgV0tVUkxTY2hlbWVIYW5kbGVyIDxOU09iamVjdD4K
IAogLyohIEBhYnN0cmFjdCBOb3RpZmllcyB5b3VyIGFwcCB0byBzdGFydCBsb2FkaW5nIHRoZSBk
YXRhIGZvciBhIHBhcnRpY3VsYXIgcmVzb3VyY2UgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVUkxTY2hlbWVUYXNrLmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tVUkxTY2hlbWVUYXNrLmgKaW5kZXggYWUyNmQ5NmQ0MTcwYWYx
MTQzNzY3MjFjMjBiMGJhYzkzY2NjNjdjMi4uNDhhNDA3NjdlZjgzYmY5M2E2OTkzYjhiMzI2ODEw
MDQ4YTM3NTg3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLVVJMU2NoZW1lVGFzay5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1VSTFNjaGVtZVRhc2suaApAQCAtMjksNyArMjksNyBAQAogCiBOU19BU1NVTUVfTk9OTlVM
TF9CRUdJTgogCi1XS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSkKK1dL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpCiBAcHJvdG9jb2wgV0tVUkxT
Y2hlbWVUYXNrIDxOU09iamVjdD4KIAogLyohIEBhYnN0cmFjdCBUaGUgcmVxdWVzdCB0byBsb2Fk
IGZvciB0aGlzIHRhc2suCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tVUkxTY2hlbWVUYXNrUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLVVJMU2NoZW1lVGFza1ByaXZhdGUuaAppbmRleCBlN2FhNjIxZGZjZDM2ZGZl
OGQ4OTBlYmM0NDU2M2RlYTliNjE1Y2RmLi42MjQxOTc1ZTNjN2JkODgxOTc3M2I5YTY0NDVlY2Y3
YjA1YzZmMzFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tVUkxTY2hlbWVUYXNrUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1VSTFNjaGVtZVRhc2tQcml2YXRlLmgKQEAgLTI1LDcgKzI1LDcgQEAKIAogI2lt
cG9ydCA8V2ViS2l0L1dLVVJMU2NoZW1lVGFzay5oPgogCi1XS19BUElfQVZBSUxBQkxFKG1hY29z
eCgxMC4xMyksIGlvcygxMS4wKSkKK1dLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3Mo
MTEuMCkpCiBAcHJvdG9jb2wgV0tVUkxTY2hlbWVUYXNrUHJpdmF0ZSA8V0tVUkxTY2hlbWVUYXNr
PgogCiAtICh2b2lkKV9kaWRQZXJmb3JtUmVkaXJlY3Rpb246KE5TVVJMUmVzcG9uc2UgKilyZXNw
b25zZSBuZXdSZXF1ZXN0OihOU1VSTFJlcXVlc3QgKilyZXF1ZXN0OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVXNlckNvbnRlbnRDb250cm9sbGVyLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2VyQ29udGVudENvbnRyb2xs
ZXIuaAppbmRleCBhYjllYjI2YmNhMjgwNzMxMzA2NjdlMDBmNzllMGFmZWQ0Njc3ZTljLi44Mjlh
MDU3MzM3ZGRkNDYxYzQ2YjMxYzAzMzdiNWY5YmNkNTk2N2MxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2VyQ29udGVudENvbnRyb2xsZXIuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2VyQ29udGVudENvbnRyb2xs
ZXIuaApAQCAtMzgsNyArMzgsNyBAQCBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogIFRoZSB1c2Vy
IGNvbnRlbnQgY29udHJvbGxlciBhc3NvY2lhdGVkIHdpdGggYSB3ZWIgdmlldyBpcyBzcGVjaWZp
ZWQgYnkgaXRzCiAgd2ViIHZpZXcgY29uZmlndXJhdGlvbi4KICAqLwotV0tfQ0xBU1NfQVZBSUxB
QkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEw
LjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIFdLVXNlckNvbnRlbnRDb250cm9sbGVyIDogTlNP
YmplY3QgPE5TU2VjdXJlQ29kaW5nPgogCiAvKiEgQGFic3RyYWN0IFRoZSB1c2VyIHNjcmlwdHMg
YXNzb2NpYXRlZCB3aXRoIHRoaXMgdXNlciBjb250ZW50CkBAIC03MiwxNiArNzIsMTYgQEAgV0tf
Q0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQogLyohIEBhYnN0cmFjdCBB
ZGRzIGEgY29udGVudCBydWxlIGxpc3QuCiAgQHBhcmFtIGNvbnRlbnRSdWxlTGlzdCBUaGUgY29u
dGVudCBydWxlIGxpc3QgdG8gYWRkLgogICovCi0tICh2b2lkKWFkZENvbnRlbnRSdWxlTGlzdDoo
V0tDb250ZW50UnVsZUxpc3QgKiljb250ZW50UnVsZUxpc3QgV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goMTAuMTMpLCBpb3MoMTEuMCkpOworLSAodm9pZClhZGRDb250ZW50UnVsZUxpc3Q6KFdLQ29u
dGVudFJ1bGVMaXN0ICopY29udGVudFJ1bGVMaXN0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAu
MTMpLCBpb3MoMTEuMCkpOwogCiAvKiEgQGFic3RyYWN0IFJlbW92ZXMgYSBjb250ZW50IHJ1bGUg
bGlzdC4KICBAcGFyYW0gY29udGVudFJ1bGVMaXN0IFRoZSBjb250ZW50IHJ1bGUgbGlzdCB0byBy
ZW1vdmUuCiAgKi8KLS0gKHZvaWQpcmVtb3ZlQ29udGVudFJ1bGVMaXN0OihXS0NvbnRlbnRSdWxl
TGlzdCAqKWNvbnRlbnRSdWxlTGlzdCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlv
cygxMS4wKSk7CistICh2b2lkKXJlbW92ZUNvbnRlbnRSdWxlTGlzdDooV0tDb250ZW50UnVsZUxp
c3QgKiljb250ZW50UnVsZUxpc3QgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygx
MS4wKSk7CiAKIC8qISBAYWJzdHJhY3QgUmVtb3ZlcyBhbGwgYXNzb2NpYXRlZCBjb250ZW50IHJ1
bGUgbGlzdHMuCiAgKi8KLS0gKHZvaWQpcmVtb3ZlQWxsQ29udGVudFJ1bGVMaXN0cyBXS19BUElf
QVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7CistICh2b2lkKXJlbW92ZUFsbENv
bnRlbnRSdWxlTGlzdHMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSk7
CiAKIEBlbmQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLVXNlckNvbnRlbnRDb250cm9sbGVyUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLVXNlckNvbnRlbnRDb250cm9sbGVyUHJpdmF0ZS5oCmluZGV4IDJiZjUw
MzA0MWM1ZjRmNGUyZWYyYTUyMjE1ODY3YjYxODFmYmJlYzMuLmFhMzUxZTc3Y2NkZWIzMjNmNzAz
Nzg2ODAwMjEzZjEzMTRiYTI3NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1VzZXJDb250ZW50Q29udHJvbGxlclByaXZhdGUuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2VyQ29udGVudENvbnRyb2xsZXJQcml2YXRl
LmgKQEAgLTMyLDIwICszMiwyMCBAQAogCiBAaW50ZXJmYWNlIFdLVXNlckNvbnRlbnRDb250cm9s
bGVyIChXS1ByaXZhdGUpCiAKLS0gKHZvaWQpX3JlbW92ZVVzZXJTY3JpcHQ6KFdLVXNlclNjcmlw
dCAqKXVzZXJTY3JpcHQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3MoMTAuMCkp
OwotLSAodm9pZClfcmVtb3ZlQWxsVXNlclNjcmlwdHNBc3NvY2lhdGVkV2l0aFVzZXJDb250ZW50
V29ybGQ6KF9XS1VzZXJDb250ZW50V29ybGQgKil1c2VyQ29udGVudFdvcmxkIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsKKy0gKHZvaWQpX3JlbW92ZVVzZXJTY3Jp
cHQ6KFdLVXNlclNjcmlwdCAqKXVzZXJTY3JpcHQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4x
MiksIGlvcygxMC4wKSk7CistICh2b2lkKV9yZW1vdmVBbGxVc2VyU2NyaXB0c0Fzc29jaWF0ZWRX
aXRoVXNlckNvbnRlbnRXb3JsZDooX1dLVXNlckNvbnRlbnRXb3JsZCAqKXVzZXJDb250ZW50V29y
bGQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CiAKLS0gKHZvaWQp
X2FkZFVzZXJTY3JpcHRJbW1lZGlhdGVseTooV0tVc2VyU2NyaXB0ICopdXNlclNjcmlwdCBXS19B
UElfQVZBSUxBQkxFKG1hY29zeCgxMC4xNCksIGlvcygxMi4wKSk7CistICh2b2lkKV9hZGRVc2Vy
U2NyaXB0SW1tZWRpYXRlbHk6KFdLVXNlclNjcmlwdCAqKXVzZXJTY3JpcHQgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4wKSk7CiAKLS0gKHZvaWQpX2FkZFVzZXJDb250ZW50
RmlsdGVyOihfV0tVc2VyQ29udGVudEZpbHRlciAqKXVzZXJDb250ZW50RmlsdGVyIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOwotLSAodm9pZClfcmVtb3ZlVXNlckNv
bnRlbnRGaWx0ZXI6KE5TU3RyaW5nICopdXNlckNvbnRlbnRGaWx0ZXJOYW1lIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOwotLSAodm9pZClfcmVtb3ZlQWxsVXNlckNv
bnRlbnRGaWx0ZXJzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOwor
LSAodm9pZClfYWRkVXNlckNvbnRlbnRGaWx0ZXI6KF9XS1VzZXJDb250ZW50RmlsdGVyICopdXNl
ckNvbnRlbnRGaWx0ZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMSksIGlvcyg5LjApKTsK
Ky0gKHZvaWQpX3JlbW92ZVVzZXJDb250ZW50RmlsdGVyOihOU1N0cmluZyAqKXVzZXJDb250ZW50
RmlsdGVyTmFtZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjExKSwgaW9zKDkuMCkpOworLSAo
dm9pZClfcmVtb3ZlQWxsVXNlckNvbnRlbnRGaWx0ZXJzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTAuMTEpLCBpb3MoOS4wKSk7CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgY29w
eSkgTlNBcnJheTxfV0tVc2VyU3R5bGVTaGVldCAqPiAqX3VzZXJTdHlsZVNoZWV0cyBXS19BUElf
QVZBSUxBQkxFKG1hY29zeCgxMC4xMiksIGlvcygxMC4wKSk7Ci0tICh2b2lkKV9hZGRVc2VyU3R5
bGVTaGVldDooX1dLVXNlclN0eWxlU2hlZXQgKil1c2VyU3R5bGVTaGVldCBXS19BUElfQVZBSUxB
QkxFKG1hY29zeCgxMC4xMiksIGlvcygxMC4wKSk7Ci0tICh2b2lkKV9yZW1vdmVVc2VyU3R5bGVT
aGVldDooX1dLVXNlclN0eWxlU2hlZXQgKil1c2VyU3R5bGVTaGVldCBXS19BUElfQVZBSUxBQkxF
KG1hY29zeCgxMC4xMiksIGlvcygxMC4wKSk7Ci0tICh2b2lkKV9yZW1vdmVBbGxVc2VyU3R5bGVT
aGVldHMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3MoMTAuMCkpOwotLSAodm9p
ZClfcmVtb3ZlQWxsVXNlclN0eWxlU2hlZXRzQXNzb2NpYXRlZFdpdGhVc2VyQ29udGVudFdvcmxk
OihfV0tVc2VyQ29udGVudFdvcmxkICopdXNlckNvbnRlbnRXb3JsZCBXS19BUElfQVZBSUxBQkxF
KG1hY29zeCgxMC4xMiksIGlvcygxMC4wKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9u
bHksIGNvcHkpIE5TQXJyYXk8X1dLVXNlclN0eWxlU2hlZXQgKj4gKl91c2VyU3R5bGVTaGVldHMg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CistICh2b2lkKV9hZGRV
c2VyU3R5bGVTaGVldDooX1dLVXNlclN0eWxlU2hlZXQgKil1c2VyU3R5bGVTaGVldCBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKKy0gKHZvaWQpX3JlbW92ZVVzZXJT
dHlsZVNoZWV0OihfV0tVc2VyU3R5bGVTaGVldCAqKXVzZXJTdHlsZVNoZWV0IFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOworLSAodm9pZClfcmVtb3ZlQWxsVXNlclN0
eWxlU2hlZXRzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOworLSAo
dm9pZClfcmVtb3ZlQWxsVXNlclN0eWxlU2hlZXRzQXNzb2NpYXRlZFdpdGhVc2VyQ29udGVudFdv
cmxkOihfV0tVc2VyQ29udGVudFdvcmxkICopdXNlckNvbnRlbnRXb3JsZCBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKIAogLSAodm9pZClfYWRkU2NyaXB0TWVzc2Fn
ZUhhbmRsZXI6KGlkIDxXS1NjcmlwdE1lc3NhZ2VIYW5kbGVyPilzY3JpcHRNZXNzYWdlSGFuZGxl
ciBuYW1lOihOU1N0cmluZyAqKW5hbWUgdXNlckNvbnRlbnRXb3JsZDooX1dLVXNlckNvbnRlbnRX
b3JsZCAqKXVzZXJDb250ZW50V29ybGQ7CiAtICh2b2lkKV9yZW1vdmVTY3JpcHRNZXNzYWdlSGFu
ZGxlckZvck5hbWU6KE5TU3RyaW5nICopbmFtZSB1c2VyQ29udGVudFdvcmxkOihfV0tVc2VyQ29u
dGVudFdvcmxkICopdXNlckNvbnRlbnRXb3JsZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJTY3JpcHQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1VzZXJTY3JpcHQuaAppbmRleCAyOTUyYzMwMDI2OThmMzI4MzBjM2U3
NzQ1NjQ5MGMwMTAyNmQ4ZjQ2Li40MDEyZjg4YmRjNDg2ZDczMmZlMjk3MGRhYTllMGIyOTAzY2M1
OWIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2Vy
U2NyaXB0LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVXNlclNj
cmlwdC5oCkBAIC0zNywxMSArMzcsMTEgQEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIHR5cGVk
ZWYgTlNfRU5VTShOU0ludGVnZXIsIFdLVXNlclNjcmlwdEluamVjdGlvblRpbWUpIHsKICAgICBX
S1VzZXJTY3JpcHRJbmplY3Rpb25UaW1lQXREb2N1bWVudFN0YXJ0LAogICAgIFdLVXNlclNjcmlw
dEluamVjdGlvblRpbWVBdERvY3VtZW50RW5kCi19IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEw
LjEwKSwgaW9zKDguMCkpOworfSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDgu
MCkpOwogCiAvKiEgQSBAbGluayBXS1VzZXJTY3JpcHQgQC9saW5rIG9iamVjdCByZXByZXNlbnRz
IGEgc2NyaXB0IHRoYXQgY2FuIGJlIGluamVjdGVkIGludG8gd2VicGFnZXMuCiAgKi8KLVdLX0NM
QVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKK1dLX0NMQVNTX0FWQUlMQUJM
RShtYWNvcygxMC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBXS1VzZXJTY3JpcHQgOiBOU09i
amVjdCA8TlNDb3B5aW5nPgogCiAvKiBAYWJzdHJhY3QgVGhlIHNjcmlwdCBzb3VyY2UgY29kZS4g
Ki8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJT
Y3JpcHRQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2Vy
U2NyaXB0UHJpdmF0ZS5oCmluZGV4IGQ0YzAyYjY2MWUyM2ZjMzAyOWM5Y2YxYTliMThjMGQ1MzRk
YWJhYzAuLmJjNTA4NjgwZTBhMTkxMGNlZTIzZDViMzFmZTU4NzNlZTY3YzAxZDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJTY3JpcHRQcml2YXRl
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVXNlclNjcmlwdFBy
aXZhdGUuaApAQCAtMzEsMTAgKzMxLDEwIEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAKIEBp
bnRlcmZhY2UgV0tVc2VyU2NyaXB0IChXS1ByaXZhdGUpCiAKLS0gKGluc3RhbmNldHlwZSlfaW5p
dFdpdGhTb3VyY2U6KE5TU3RyaW5nICopc291cmNlIGluamVjdGlvblRpbWU6KFdLVXNlclNjcmlw
dEluamVjdGlvblRpbWUpaW5qZWN0aW9uVGltZSBmb3JNYWluRnJhbWVPbmx5OihCT09MKWZvck1h
aW5GcmFtZU9ubHkgbGVnYWN5V2hpdGVsaXN0OihOU0FycmF5PE5TU3RyaW5nICo+ICopbGVnYWN5
V2hpdGVsaXN0IGxlZ2FjeUJsYWNrbGlzdDooTlNBcnJheTxOU1N0cmluZyAqPiAqKWxlZ2FjeUJs
YWNrbGlzdCB1c2VyQ29udGVudFdvcmxkOihfV0tVc2VyQ29udGVudFdvcmxkICopdXNlckNvbnRl
bnRXb3JsZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMiksIGlvcygxMC4wKSk7Ci0tIChp
bnN0YW5jZXR5cGUpX2luaXRXaXRoU291cmNlOihOU1N0cmluZyAqKXNvdXJjZSBpbmplY3Rpb25U
aW1lOihXS1VzZXJTY3JpcHRJbmplY3Rpb25UaW1lKWluamVjdGlvblRpbWUgZm9yTWFpbkZyYW1l
T25seTooQk9PTClmb3JNYWluRnJhbWVPbmx5IGxlZ2FjeVdoaXRlbGlzdDooTlNBcnJheTxOU1N0
cmluZyAqPiAqKWxlZ2FjeVdoaXRlbGlzdCBsZWdhY3lCbGFja2xpc3Q6KE5TQXJyYXk8TlNTdHJp
bmcgKj4gKilsZWdhY3lCbGFja2xpc3QgYXNzb2NpYXRlZFVSTDooTlNVUkwgKilhc3NvY2lhdGVk
VVJMIHVzZXJDb250ZW50V29ybGQ6KF9XS1VzZXJDb250ZW50V29ybGQgKil1c2VyQ29udGVudFdv
cmxkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsKKy0gKGluc3Rh
bmNldHlwZSlfaW5pdFdpdGhTb3VyY2U6KE5TU3RyaW5nICopc291cmNlIGluamVjdGlvblRpbWU6
KFdLVXNlclNjcmlwdEluamVjdGlvblRpbWUpaW5qZWN0aW9uVGltZSBmb3JNYWluRnJhbWVPbmx5
OihCT09MKWZvck1haW5GcmFtZU9ubHkgbGVnYWN5V2hpdGVsaXN0OihOU0FycmF5PE5TU3RyaW5n
ICo+ICopbGVnYWN5V2hpdGVsaXN0IGxlZ2FjeUJsYWNrbGlzdDooTlNBcnJheTxOU1N0cmluZyAq
PiAqKWxlZ2FjeUJsYWNrbGlzdCB1c2VyQ29udGVudFdvcmxkOihfV0tVc2VyQ29udGVudFdvcmxk
ICopdXNlckNvbnRlbnRXb3JsZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEw
LjApKTsKKy0gKGluc3RhbmNldHlwZSlfaW5pdFdpdGhTb3VyY2U6KE5TU3RyaW5nICopc291cmNl
IGluamVjdGlvblRpbWU6KFdLVXNlclNjcmlwdEluamVjdGlvblRpbWUpaW5qZWN0aW9uVGltZSBm
b3JNYWluRnJhbWVPbmx5OihCT09MKWZvck1haW5GcmFtZU9ubHkgbGVnYWN5V2hpdGVsaXN0OihO
U0FycmF5PE5TU3RyaW5nICo+ICopbGVnYWN5V2hpdGVsaXN0IGxlZ2FjeUJsYWNrbGlzdDooTlNB
cnJheTxOU1N0cmluZyAqPiAqKWxlZ2FjeUJsYWNrbGlzdCBhc3NvY2lhdGVkVVJMOihOU1VSTCAq
KWFzc29jaWF0ZWRVUkwgdXNlckNvbnRlbnRXb3JsZDooX1dLVXNlckNvbnRlbnRXb3JsZCAqKXVz
ZXJDb250ZW50V29ybGQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7
CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgX1dLVXNlckNvbnRlbnRXb3JsZCAq
X3VzZXJDb250ZW50V29ybGQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3MoMTAu
MCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBfV0tVc2VyQ29udGVudFdvcmxk
ICpfdXNlckNvbnRlbnRXb3JsZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEw
LjApKTsKIAogQGVuZAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tWaWV3UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLVmlld1ByaXZhdGUuaAppbmRleCBiY2U1NjVhNDcwZjlkNDM4ZTRiNTI2NTgxOTY4M2JkZjg5
NDJlMTI5Li4wZjIyNmViYzU4M2E2ZWQ4NGZlMzE0OGYzNWY2NTRjZWQ3OGRiZWQ2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tWaWV3UHJpdmF0ZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ZpZXdQcml2YXRlLmgKQEAg
LTc3LDE2ICs3NywxNiBAQAogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRWaWV3
U2NhbGU6KSBDR0Zsb2F0IF92aWV3U2NhbGU7CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0
ZXI9X3NldE92ZXJyaWRlRGV2aWNlU2NhbGVGYWN0b3I6KSBDR0Zsb2F0IF9vdmVycmlkZURldmlj
ZVNjYWxlRmFjdG9yIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSk7CitAcHJvcGVydHkg
KG5vbmF0b21pYywgc2V0dGVyPV9zZXRPdmVycmlkZURldmljZVNjYWxlRmFjdG9yOikgQ0dGbG9h
dCBfb3ZlcnJpZGVEZXZpY2VTY2FsZUZhY3RvciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEx
KSk7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEF1dG9tYXRpY2FsbHlBZGp1
c3RzQ29udGVudEluc2V0czopIEJPT0wgX2F1dG9tYXRpY2FsbHlBZGp1c3RzQ29udGVudEluc2V0
czsKIAogQHByb3BlcnR5IChyZWFkb25seSkgTlNDb2xvciAqX3BhZ2VFeHRlbmRlZEJhY2tncm91
bmRDb2xvcjsKIEBwcm9wZXJ0eSAoY29weSwgbm9uYXRvbWljKSBOU0NvbG9yICp1bmRlcmxheUNv
bG9yOwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRCYWNrZ3JvdW5kQ29sb3I6
KSBOU0NvbG9yICpfYmFja2dyb3VuZENvbG9yIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjE0
KSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRCYWNrZ3JvdW5kQ29sb3I6KSBO
U0NvbG9yICpfYmFja2dyb3VuZENvbG9yIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpKTsK
IAotQHByb3BlcnR5IChzdHJvbmcsIG5vbmF0b21pYywgc2V0dGVyPV9zZXRJbnNwZWN0b3JBdHRh
Y2htZW50VmlldzopIE5TVmlldyAqX2luc3BlY3RvckF0dGFjaG1lbnRWaWV3IFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KDEwLjExKSk7CitAcHJvcGVydHkgKHN0cm9uZywgbm9uYXRvbWljLCBzZXR0
ZXI9X3NldEluc3BlY3RvckF0dGFjaG1lbnRWaWV3OikgTlNWaWV3ICpfaW5zcGVjdG9yQXR0YWNo
bWVudFZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMSkpOwogCiBAcHJvcGVydHkgKG5v
bmF0b21pYywgcmVhZHdyaXRlLCBzZXR0ZXI9X3NldFJlcXVpcmVzVXNlckFjdGlvbkZvckVkaXRp
bmdDb250cm9sc01hbmFnZXI6KSBCT09MIF9yZXF1aXJlc1VzZXJBY3Rpb25Gb3JFZGl0aW5nQ29u
dHJvbHNNYW5hZ2VyOwogCkBAIC0xMzMsMTYgKzEzMywxNiBAQAogCiAtICh2b2lkKV9nZXN0dXJl
RXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlOihOU0V2ZW50ICopZXZlbnQ7CiAKLS0gKHZvaWQp
X3NldFNob3VsZFN1cHByZXNzRmlyc3RSZXNwb25kZXJDaGFuZ2VzOihCT09MKXNob3VsZFN1cHBy
ZXNzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpKTsKKy0gKHZvaWQpX3NldFNob3Vs
ZFN1cHByZXNzRmlyc3RSZXNwb25kZXJDaGFuZ2VzOihCT09MKXNob3VsZFN1cHByZXNzIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOwogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVh
ZHdyaXRlLCBzZXR0ZXI9X3NldFdhbnRzTWVkaWFQbGF5YmFja0NvbnRyb2xzVmlldzopIEJPT0wg
X3dhbnRzTWVkaWFQbGF5YmFja0NvbnRyb2xzVmlldzsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBy
ZWFkb25seSkgIGlkIF9tZWRpYVBsYXliYWNrQ29udHJvbHNWaWV3OwogLSAodm9pZClfYWRkTWVk
aWFQbGF5YmFja0NvbnRyb2xzVmlldzooaWQpbWVkaWFQbGF5YmFja0NvbnRyb2xzVmlldzsKIC0g
KHZvaWQpX3JlbW92ZU1lZGlhUGxheWJhY2tDb250cm9sc1ZpZXc7CiAKLS0gKHZvaWQpX2RvQWZ0
ZXJOZXh0UHJlc2VudGF0aW9uVXBkYXRlOih2b2lkICheKSh2b2lkKSl1cGRhdGVCbG9jayBXS19B
UElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSk7CistICh2b2lkKV9kb0FmdGVyTmV4dFByZXNl
bnRhdGlvblVwZGF0ZToodm9pZCAoXikodm9pZCkpdXBkYXRlQmxvY2sgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMC4xMy40KSk7CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkd3JpdGUsIHNl
dHRlcj1fc2V0VXNlU3lzdGVtQXBwZWFyYW5jZTopIEJPT0wgX3VzZVN5c3RlbUFwcGVhcmFuY2Ug
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTQpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBy
ZWFkd3JpdGUsIHNldHRlcj1fc2V0VXNlU3lzdGVtQXBwZWFyYW5jZTopIEJPT0wgX3VzZVN5c3Rl
bUFwcGVhcmFuY2UgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCkpOwogCiBAZW5kCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcuaAppbmRleCA1ZTNj
ODg0NGE5ZGQzYWNlMDNlNWFlNWZiMDUxMGNmMjI3NWU0ZmQyLi4xMmI4ZTZmMzhmZjI2YzllMzVi
MzdjNDRmZjQ0MWRmYWE0YjZkMDg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlldy5oCkBAIC00OCwxMCArNDgsMTAgQEAgTlNfQVNTVU1FX05PTk5VTExf
QkVHSU4KICBVc2VkIHRvIGNvbmZpZ3VyZSBAbGluayBXS1dlYlZpZXcgQC9saW5rIGluc3RhbmNl
cy4KICAqLwogI2lmIFRBUkdFVF9PU19JUEhPTkUKLVdLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3go
MTAuMTApLCBpb3MoOC4wKSkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4xMCksIGlvcyg4
LjApKQogQGludGVyZmFjZSBXS1dlYlZpZXcgOiBVSVZpZXcKICNlbHNlCi1XS19DTEFTU19BVkFJ
TEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3Mo
MTAuMTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2UgV0tXZWJWaWV3IDogTlNWaWV3CiAjZW5kaWYK
IApAQCAtOTcsNyArOTcsNyBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9z
KDguMCkpCiAgSWYgcmVhZEFjY2Vzc1VSTCByZWZlcmVuY2VzIGEgZGlyZWN0b3J5LCBmaWxlcyBp
bnNpZGUgdGhhdCBmaWxlIG1heSBiZSBsb2FkZWQgYnkgV2ViS2l0LgogIEByZXN1bHQgQSBuZXcg
bmF2aWdhdGlvbiBmb3IgdGhlIGdpdmVuIGZpbGUgVVJMLgogICovCi0tIChudWxsYWJsZSBXS05h
dmlnYXRpb24gKilsb2FkRmlsZVVSTDooTlNVUkwgKilVUkwgYWxsb3dpbmdSZWFkQWNjZXNzVG9V
Ukw6KE5TVVJMICopcmVhZEFjY2Vzc1VSTCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSks
IGlvcyg5LjApKTsKKy0gKG51bGxhYmxlIFdLTmF2aWdhdGlvbiAqKWxvYWRGaWxlVVJMOihOU1VS
TCAqKVVSTCBhbGxvd2luZ1JlYWRBY2Nlc3NUb1VSTDooTlNVUkwgKilyZWFkQWNjZXNzVVJMIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTEpLCBpb3MoOS4wKSk7CiAKIC8qISBAYWJzdHJhY3Qg
U2V0cyB0aGUgd2VicGFnZSBjb250ZW50cyBhbmQgYmFzZSBVUkwuCiAgQHBhcmFtIHN0cmluZyBU
aGUgc3RyaW5nIHRvIHVzZSBhcyB0aGUgY29udGVudHMgb2YgdGhlIHdlYnBhZ2UuCkBAIC0xMTMs
NyArMTEzLDcgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQog
IEBwYXJhbSBiYXNlVVJMIEEgVVJMIHRoYXQgaXMgdXNlZCB0byByZXNvbHZlIHJlbGF0aXZlIFVS
THMgd2l0aGluIHRoZSBkb2N1bWVudC4KICBAcmVzdWx0IEEgbmV3IG5hdmlnYXRpb24uCiAgKi8K
LS0gKG51bGxhYmxlIFdLTmF2aWdhdGlvbiAqKWxvYWREYXRhOihOU0RhdGEgKilkYXRhIE1JTUVU
eXBlOihOU1N0cmluZyAqKU1JTUVUeXBlIGNoYXJhY3RlckVuY29kaW5nTmFtZTooTlNTdHJpbmcg
KiljaGFyYWN0ZXJFbmNvZGluZ05hbWUgYmFzZVVSTDooTlNVUkwgKiliYXNlVVJMIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOworLSAobnVsbGFibGUgV0tOYXZpZ2F0
aW9uICopbG9hZERhdGE6KE5TRGF0YSAqKWRhdGEgTUlNRVR5cGU6KE5TU3RyaW5nICopTUlNRVR5
cGUgY2hhcmFjdGVyRW5jb2RpbmdOYW1lOihOU1N0cmluZyAqKWNoYXJhY3RlckVuY29kaW5nTmFt
ZSBiYXNlVVJMOihOU1VSTCAqKWJhc2VVUkwgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMSks
IGlvcyg5LjApKTsKIAogLyohIEBhYnN0cmFjdCBOYXZpZ2F0ZXMgdG8gYW4gaXRlbSBmcm9tIHRo
ZSBiYWNrLWZvcndhcmQgbGlzdCBhbmQgc2V0cyBpdAogIGFzIHRoZSBjdXJyZW50IGl0ZW0uCkBA
IC0xNjcsNyArMTY3LDcgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4
LjApKQogIEBkaXNjdXNzaW9uIEBsaW5rIFdLV2ViVmlldyBAL2xpbmsgaXMga2V5LXZhbHVlIG9i
c2VydmluZyAoS1ZPKSBjb21wbGlhbnQgCiAgZm9yIHRoaXMgcHJvcGVydHkuCiAgKi8KLUBwcm9w
ZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgbnVsbGFibGUpIFNlY1RydXN0UmVmIHNlcnZlclRy
dXN0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsKK0Bwcm9wZXJ0
eSAobm9uYXRvbWljLCByZWFkb25seSwgbnVsbGFibGUpIFNlY1RydXN0UmVmIHNlcnZlclRydXN0
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOwogCiAvKiEgQGFic3Ry
YWN0IEEgQm9vbGVhbiB2YWx1ZSBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlcmUgaXMgYSBiYWNrIGl0
ZW0gaW4KICB0aGUgYmFjay1mb3J3YXJkIGxpc3QgdGhhdCBjYW4gYmUgbmF2aWdhdGVkIHRvLgpA
QCAtMjI5LDcgKzIyOSw3IEBAIFdLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3Mo
OC4wKSkKICNpZiBUQVJHRVRfT1NfSVBIT05FCiAtICh2b2lkKXRha2VTbmFwc2hvdFdpdGhDb25m
aWd1cmF0aW9uOihudWxsYWJsZSBXS1NuYXBzaG90Q29uZmlndXJhdGlvbiAqKXNuYXBzaG90Q29u
ZmlndXJhdGlvbiBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoVUlJbWFnZSAqIF9OdWxsYWJs
ZSBzbmFwc2hvdEltYWdlLCBOU0Vycm9yICogX051bGxhYmxlIGVycm9yKSljb21wbGV0aW9uSGFu
ZGxlciBXS19BUElfQVZBSUxBQkxFKGlvcygxMS4wKSk7CiAjZWxzZQotLSAodm9pZCl0YWtlU25h
cHNob3RXaXRoQ29uZmlndXJhdGlvbjoobnVsbGFibGUgV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24g
KilzbmFwc2hvdENvbmZpZ3VyYXRpb24gY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TSW1h
Z2UgKiBfTnVsbGFibGUgc25hcHNob3RJbWFnZSwgTlNFcnJvciAqIF9OdWxsYWJsZSBlcnJvcikp
Y29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMpKTsKKy0gKHZv
aWQpdGFrZVNuYXBzaG90V2l0aENvbmZpZ3VyYXRpb246KG51bGxhYmxlIFdLU25hcHNob3RDb25m
aWd1cmF0aW9uICopc25hcHNob3RDb25maWd1cmF0aW9uIGNvbXBsZXRpb25IYW5kbGVyOih2b2lk
ICheKShOU0ltYWdlICogX051bGxhYmxlIHNuYXBzaG90SW1hZ2UsIE5TRXJyb3IgKiBfTnVsbGFi
bGUgZXJyb3IpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMp
KTsKICNlbmRpZgogCiAvKiEgQGFic3RyYWN0IEEgQm9vbGVhbiB2YWx1ZSBpbmRpY2F0aW5nIHdo
ZXRoZXIgaG9yaXpvbnRhbCBzd2lwZSBnZXN0dXJlcwpAQCAtMjQwLDEzICsyNDAsMTMgQEAgV0tf
Q0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQogCiAvKiEgQGFic3RyYWN0
IFRoZSBjdXN0b20gdXNlciBhZ2VudCBzdHJpbmcgb3IgbmlsIGlmIG5vIGN1c3RvbSB1c2VyIGFn
ZW50IHN0cmluZyBoYXMgYmVlbiBzZXQuCiAqLwotQHByb3BlcnR5IChudWxsYWJsZSwgbm9uYXRv
bWljLCBjb3B5KSBOU1N0cmluZyAqY3VzdG9tVXNlckFnZW50IFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KDEwLjExKSwgaW9zKDkuMCkpOworQHByb3BlcnR5IChudWxsYWJsZSwgbm9uYXRvbWljLCBj
b3B5KSBOU1N0cmluZyAqY3VzdG9tVXNlckFnZW50IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAu
MTEpLCBpb3MoOS4wKSk7CiAKIC8qISBAYWJzdHJhY3QgQSBCb29sZWFuIHZhbHVlIGluZGljYXRp
bmcgd2hldGhlciBsaW5rIHByZXZpZXcgaXMgYWxsb3dlZCBmb3IgYW55CiAgbGlua3MgaW5zaWRl
IHRoaXMgV0tXZWJWaWV3LgogIEBkaXNjdXNzaW9uIFRoZSBkZWZhdWx0IHZhbHVlIGlzIFlFUyBv
biBNYWMgYW5kIGlPUy4KICAqLwotQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgYWxsb3dzTGlu
a1ByZXZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CitAcHJv
cGVydHkgKG5vbmF0b21pYykgQk9PTCBhbGxvd3NMaW5rUHJldmlldyBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjExKSwgaW9zKDkuMCkpOwogCiAjaWYgVEFSR0VUX09TX0lQSE9ORQogLyohIEBh
YnN0cmFjdCBUaGUgc2Nyb2xsIHZpZXcgYXNzb2NpYXRlZCB3aXRoIHRoZSB3ZWIgdmlldy4KQEAg
LTI4MCw3ICsyODAsNyBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDgu
MCkpCiAvKiBAYWJzdHJhY3QgQ2hlY2tzIHdoZXRoZXIgb3Igbm90IFdLV2ViVmlld3MgaGFuZGxl
IHRoZSBnaXZlbiBVUkwgc2NoZW1lIGJ5IGRlZmF1bHQuCiAgQHBhcmFtIHNjaGVtZSBUaGUgVVJM
IHNjaGVtZSB0byBjaGVjay4KICAqLwotKyAoQk9PTCloYW5kbGVzVVJMU2NoZW1lOihOU1N0cmlu
ZyAqKXVybFNjaGVtZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7
CisrIChCT09MKWhhbmRsZXNVUkxTY2hlbWU6KE5TU3RyaW5nICopdXJsU2NoZW1lIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpOwogCiBAZW5kCiAKQEAgLTMyMyw3ICsz
MjMsNyBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCiAKIEBp
bnRlcmZhY2UgV0tXZWJWaWV3IChXS0RlcHJlY2F0ZWQpCiAKLUBwcm9wZXJ0eSAobm9uYXRvbWlj
LCByZWFkb25seSwgY29weSkgTlNBcnJheSAqY2VydGlmaWNhdGVDaGFpbiBXS19BUElfREVQUkVD
QVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJzZXJ2ZXJUcnVzdCIsIG1hY29zeCgxMC4xMSwgMTAuMTIp
LCBpb3MoOS4wLCAxMC4wKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGNvcHkp
IE5TQXJyYXkgKmNlcnRpZmljYXRlQ2hhaW4gV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNF
TUVOVCgic2VydmVyVHJ1c3QiLCBtYWNvcygxMC4xMSwgMTAuMTIpLCBpb3MoOS4wLCAxMC4wKSk7
CiAKIEBlbmQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlld0NvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLmgKaW5kZXggNjYzMjJkNzNkNjAzMzUyYzQxZmMx
NDYxOTY5ZDUyYTY1M2M4ODg4OC4uNzVmYWRlZDRkNzNmNmQwYjcxNmM0MTg3ZmQ2ZTUzMDZlMmE5
ZGU3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5oCkBAIC02Nyw3ICs2Nyw3IEBAIHR5cGVkZWYgTlNf
RU5VTShOU0ludGVnZXIsIFdLU2VsZWN0aW9uR3JhbnVsYXJpdHkpIHsKIHR5cGVkZWYgTlNfRU5V
TShOU0ludGVnZXIsIFdLVXNlckludGVyZmFjZURpcmVjdGlvblBvbGljeSkgewogICAgIFdLVXNl
ckludGVyZmFjZURpcmVjdGlvblBvbGljeUNvbnRlbnQsCiAgICAgV0tVc2VySW50ZXJmYWNlRGly
ZWN0aW9uUG9saWN5U3lzdGVtLAotfSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMikpOwor
fSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSk7CiAKICNlbmRpZgogCkBAIC04MywxMyAr
ODMsMTMgQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIFdLQXVkaW92aXN1YWxNZWRp
YVR5cGVzKSB7CiAgICAgV0tBdWRpb3Zpc3VhbE1lZGlhVHlwZUF1ZGlvID0gMSA8PCAwLAogICAg
IFdLQXVkaW92aXN1YWxNZWRpYVR5cGVWaWRlbyA9IDEgPDwgMSwKICAgICBXS0F1ZGlvdmlzdWFs
TWVkaWFUeXBlQWxsID0gTlNVSW50ZWdlck1heAotfSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgx
MC4xMiksIGlvcygxMC4wKSk7Cit9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3Mo
MTAuMCkpOwogCiAvKiEgQSBXS1dlYlZpZXdDb25maWd1cmF0aW9uIG9iamVjdCBpcyBhIGNvbGxl
Y3Rpb24gb2YgcHJvcGVydGllcyB3aXRoCiAgd2hpY2ggdG8gaW5pdGlhbGl6ZSBhIHdlYiB2aWV3
LgogIEBoZWxwcyBDb250YWlucyBwcm9wZXJ0aWVzIHVzZWQgdG8gY29uZmlndXJlIGEgQGxpbmsg
V0tXZWJWaWV3IEAvbGluay4KICAqLwotV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCks
IGlvcyg4LjApKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDguMCkpCiBA
aW50ZXJmYWNlIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gOiBOU09iamVjdCA8TlNTZWN1cmVDb2Rp
bmcsIE5TQ29weWluZz4KIAogLyohIEBhYnN0cmFjdCBUaGUgcHJvY2VzcyBwb29sIGZyb20gd2hp
Y2ggdG8gb2J0YWluIHRoZSB2aWV3J3Mgd2ViIGNvbnRlbnQKQEAgLTExMCw3ICsxMTAsNyBAQCBX
S19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCiAKIC8qISBAYWJzdHJh
Y3QgVGhlIHdlYnNpdGUgZGF0YSBzdG9yZSB0byBiZSB1c2VkIGJ5IHRoZSB3ZWIgdmlldy4KICAq
LwotQHByb3BlcnR5IChub25hdG9taWMsIHN0cm9uZykgV0tXZWJzaXRlRGF0YVN0b3JlICp3ZWJz
aXRlRGF0YVN0b3JlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOwor
QHByb3BlcnR5IChub25hdG9taWMsIHN0cm9uZykgV0tXZWJzaXRlRGF0YVN0b3JlICp3ZWJzaXRl
RGF0YVN0b3JlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTEpLCBpb3MoOS4wKSk7CiAKIC8q
ISBAYWJzdHJhY3QgQSBCb29sZWFuIHZhbHVlIGluZGljYXRpbmcgd2hldGhlciB0aGUgd2ViIHZp
ZXcgc3VwcHJlc3NlcwogIGNvbnRlbnQgcmVuZGVyaW5nIHVudGlsIGl0IGlzIGZ1bGx5IGxvYWRl
ZCBpbnRvIG1lbW9yeS4KQEAgLTEyMCwxNCArMTIwLDE0IEBAIFdLX0NMQVNTX0FWQUlMQUJMRSht
YWNvc3goMTAuMTApLCBpb3MoOC4wKSkKIAogLyohIEBhYnN0cmFjdCBUaGUgbmFtZSBvZiB0aGUg
YXBwbGljYXRpb24gYXMgdXNlZCBpbiB0aGUgdXNlciBhZ2VudCBzdHJpbmcuCiAqLwotQHByb3Bl
cnR5IChudWxsYWJsZSwgbm9uYXRvbWljLCBjb3B5KSBOU1N0cmluZyAqYXBwbGljYXRpb25OYW1l
Rm9yVXNlckFnZW50IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOwor
QHByb3BlcnR5IChudWxsYWJsZSwgbm9uYXRvbWljLCBjb3B5KSBOU1N0cmluZyAqYXBwbGljYXRp
b25OYW1lRm9yVXNlckFnZW50IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTEpLCBpb3MoOS4w
KSk7CiAKIC8qISBAYWJzdHJhY3QgQSBCb29sZWFuIHZhbHVlIGluZGljYXRpbmcgd2hldGhlciBB
aXJQbGF5IGlzIGFsbG93ZWQuCiAgQGRpc2N1c3Npb24gVGhlIGRlZmF1bHQgdmFsdWUgaXMgWUVT
LgogICovCi1AcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBhbGxvd3NBaXJQbGF5Rm9yTWVkaWFQ
bGF5YmFjayBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljKSBCT09MIGFsbG93c0FpclBsYXlGb3JNZWRpYVBsYXliYWNrIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTEpLCBpb3MoOS4wKSk7CiAKLUBwcm9wZXJ0eSAobm9uYXRv
bWljKSBXS0F1ZGlvdmlzdWFsTWVkaWFUeXBlcyBtZWRpYVR5cGVzUmVxdWlyaW5nVXNlckFjdGlv
bkZvclBsYXliYWNrIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsK
K0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBXS0F1ZGlvdmlzdWFsTWVkaWFUeXBlcyBtZWRpYVR5cGVz
UmVxdWlyaW5nVXNlckFjdGlvbkZvclBsYXliYWNrIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAu
MTIpLCBpb3MoMTAuMCkpOwogCiAjaWYgVEFSR0VUX09TX0lQSE9ORQogLyohIEBhYnN0cmFjdCBB
IEJvb2xlYW4gdmFsdWUgaW5kaWNhdGluZyB3aGV0aGVyIEhUTUw1IHZpZGVvcyBwbGF5IGlubGlu
ZQpAQCAtMTcwLDcgKzE3MCw3IEBAIFdLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBp
b3MoOC4wKSkKICBAZGlzY3Vzc2lvbiBQb3NzaWJsZSB2YWx1ZXMgYXJlIGRlc2NyaWJlZCBpbiBX
S1VzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xpY3kuCiAgVGhlIGRlZmF1bHQgdmFsdWUgaXMgV0tV
c2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5Q29udGVudC4KICAqLwotQHByb3BlcnR5IChub25h
dG9taWMpIFdLVXNlckludGVyZmFjZURpcmVjdGlvblBvbGljeSB1c2VySW50ZXJmYWNlRGlyZWN0
aW9uUG9saWN5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSk7CitAcHJvcGVydHkgKG5v
bmF0b21pYykgV0tVc2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5IHVzZXJJbnRlcmZhY2VEaXJl
Y3Rpb25Qb2xpY3kgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMikpOwogCiAjZW5kaWYKIApA
QCAtMTg2LDEyICsxODYsMTIgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlv
cyg4LjApKQogIEFuIGV4Y2VwdGlvbiB3aWxsIGJlIHRocm93biBpZiB5b3UgdHJ5IHRvIHJlZ2lz
dGVyIGEgVVJMIHNjaGVtZSBoYW5kbGVyIGZvciBhIFVSTCBzY2hlbWUgdGhhdCBXZWJLaXQgaGFu
ZGxlcyBpbnRlcm5hbGx5LgogIFlvdSBjYW4gdXNlICtbV0tXZWJWaWV3IGhhbmRsZXNVUkxTY2hl
bWU6XSB0byBjaGVjayB0aGUgYXZhaWxhYmlsaXR5IG9mIGEgZ2l2ZW4gVVJMIHNjaGVtZS4KICAq
LwotLSAodm9pZClzZXRVUkxTY2hlbWVIYW5kbGVyOihudWxsYWJsZSBpZCA8V0tVUkxTY2hlbWVI
YW5kbGVyPil1cmxTY2hlbWVIYW5kbGVyIGZvclVSTFNjaGVtZTooTlNTdHJpbmcgKil1cmxTY2hl
bWUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpOworLSAodm9pZClz
ZXRVUkxTY2hlbWVIYW5kbGVyOihudWxsYWJsZSBpZCA8V0tVUkxTY2hlbWVIYW5kbGVyPil1cmxT
Y2hlbWVIYW5kbGVyIGZvclVSTFNjaGVtZTooTlNTdHJpbmcgKil1cmxTY2hlbWUgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSk7CiAKIC8qIEBhYnN0cmFjdCBSZXR1cm5z
IHRoZSBjdXJyZW50bHkgcmVnaXN0ZXJlZCBVUkwgc2NoZW1lIGhhbmRsZXIgb2JqZWN0IGZvciB0
aGUgZ2l2ZW4gVVJMIHNjaGVtZS4KICBAcGFyYW0gc2NoZW1lIFRoZSBVUkwgc2NoZW1lIHRvIGxv
b2t1cC4KICAqLwotLSAobnVsbGFibGUgaWQgPFdLVVJMU2NoZW1lSGFuZGxlcj4pdXJsU2NoZW1l
SGFuZGxlckZvclVSTFNjaGVtZTooTlNTdHJpbmcgKil1cmxTY2hlbWUgV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpOworLSAobnVsbGFibGUgaWQgPFdLVVJMU2NoZW1l
SGFuZGxlcj4pdXJsU2NoZW1lSGFuZGxlckZvclVSTFNjaGVtZTooTlNTdHJpbmcgKil1cmxTY2hl
bWUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSk7CiAKIEBlbmQKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0Nv
bmZpZ3VyYXRpb25Qcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaAppbmRleCBjOWUzZTRlMjY4MmZkMzdkYTY3
MDIwYThiOTdmNjI0ZTAxMzQ3N2Y0Li44YzE2ZTM5ODBkZDNhYWZkNmJlNzU4MGEyNzI5MTZlMWE1
ODBiNWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaApAQCAtNTEsMjggKzUx
LDI4IEBAIHR5cGVkZWYgTlNfRU5VTShOU1VJbnRlZ2VyLCBfV0tEcmFnTGlmdERlbGF5KSB7CiAK
IEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFRyZWF0c1NIQTFTaWduZWRDZXJ0aWZp
Y2F0ZXNBc0luc2VjdXJlOikgQk9PTCBfdHJlYXRzU0hBMVNpZ25lZENlcnRpZmljYXRlc0FzSW5z
ZWN1cmUgV0tfQVBJX0FWQUlMQUJMRShpb3MoOV8wKSk7CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWlj
LCBzZXR0ZXI9X3NldFJlc3BlY3RzSW1hZ2VPcmllbnRhdGlvbjopIEJPT0wgX3Jlc3BlY3RzSW1h
Z2VPcmllbnRhdGlvbiBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMiksIGlvcygxMC4wKSk7
Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRQcmludHNCYWNrZ3JvdW5kczopIEJP
T0wgX3ByaW50c0JhY2tncm91bmRzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9z
KDEwLjApKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEluY3JlbWVudGFsUmVu
ZGVyaW5nU3VwcHJlc3Npb25UaW1lb3V0OikgTlNUaW1lSW50ZXJ2YWwgX2luY3JlbWVudGFsUmVu
ZGVyaW5nU3VwcHJlc3Npb25UaW1lb3V0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwg
aW9zKDEwLjApKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFsbG93c0phdmFT
Y3JpcHRNYXJrdXA6KSBCT09MIF9hbGxvd3NKYXZhU2NyaXB0TWFya3VwIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0
ZXI9X3NldENvbnZlcnRzUG9zaXRpb25TdHlsZU9uQ29weTopIEJPT0wgX2NvbnZlcnRzUG9zaXRp
b25TdHlsZU9uQ29weSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMiksIGlvcygxMC4wKSk7
Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBbGxvd3NNZXRhUmVmcmVzaDopIEJP
T0wgX2FsbG93c01ldGFSZWZyZXNoIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9z
KDEwLjApKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFsbG93VW5pdmVyc2Fs
QWNjZXNzRnJvbUZpbGVVUkxzOikgQk9PTCBfYWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVS
THMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3MoMTAuMCkpOwotQHByb3BlcnR5
IChub25hdG9taWMsIHNldHRlcj1fc2V0TmVlZHNTdG9yYWdlQWNjZXNzRnJvbUZpbGVVUkxzUXVp
cms6KSBCT09MIF9uZWVkc1N0b3JhZ2VBY2Nlc3NGcm9tRmlsZVVSTHNRdWlyayBXS19BUElfQVZB
SUxBQkxFKG1hY29zeCgxMC4xMi4zKSwgaW9zKDEwLjMpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWlj
LCBzZXR0ZXI9X3NldE1haW5Db250ZW50VXNlckdlc3R1cmVPdmVycmlkZUVuYWJsZWQ6KSBCT09M
IF9tYWluQ29udGVudFVzZXJHZXN0dXJlT3ZlcnJpZGVFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9
X3NldEludmlzaWJsZUF1dG9wbGF5Tm90UGVybWl0dGVkOikgQk9PTCBfaW52aXNpYmxlQXV0b3Bs
YXlOb3RQZXJtaXR0ZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3MoMTAuMCkp
OwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0TWVkaWFEYXRhTG9hZHNBdXRvbWF0
aWNhbGx5OikgQk9PTCBfbWVkaWFEYXRhTG9hZHNBdXRvbWF0aWNhbGx5IFdLX0FQSV9BVkFJTEFC
TEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0
ZXI9X3NldEF0dGFjaG1lbnRFbGVtZW50RW5hYmxlZDopIEJPT0wgX2F0dGFjaG1lbnRFbGVtZW50
RW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMiksIGlvcygxMC4wKSk7Ci1AcHJv
cGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBdHRhY2htZW50RmlsZVdyYXBwZXJDbGFzczop
IENsYXNzIF9hdHRhY2htZW50RmlsZVdyYXBwZXJDbGFzcyBXS19BUElfQVZBSUxBQkxFKG1hY29z
eChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBz
ZXR0ZXI9X3NldEluaXRpYWxDYXBpdGFsaXphdGlvbkVuYWJsZWQ6KSBCT09MIF9pbml0aWFsQ2Fw
aXRhbGl6YXRpb25FbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEw
LjApKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFwcGxlUGF5RW5hYmxlZDop
IEJPT0wgX2FwcGxlUGF5RW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMiksIGlv
cygxMC4wKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRXYWl0c0ZvclBhaW50
QWZ0ZXJWaWV3RGlkTW92ZVRvV2luZG93OikgQk9PTCBfd2FpdHNGb3JQYWludEFmdGVyVmlld0Rp
ZE1vdmVUb1dpbmRvdyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMi4zKSwgaW9zKDEwLjMp
KTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldENvbnRyb2xsZWRCeUF1dG9tYXRp
b246LCBnZXR0ZXI9X2lzQ29udHJvbGxlZEJ5QXV0b21hdGlvbikgQk9PTCBfY29udHJvbGxlZEJ5
QXV0b21hdGlvbiBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMi4zKSwgaW9zKDEwLjMpKTsK
LUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFwcGxpY2F0aW9uTWFuaWZlc3Q6KSBf
V0tBcHBsaWNhdGlvbk1hbmlmZXN0ICpfYXBwbGljYXRpb25NYW5pZmVzdCBXS19BUElfQVZBSUxB
QkxFKG1hY29zeCgxMC4xMy40KSwgaW9zKDExLjMpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBz
ZXR0ZXI9X3NldENvbG9yRmlsdGVyRW5hYmxlZDopIEJPT0wgX2NvbG9yRmlsdGVyRW5hYmxlZCBX
S19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xNCksIGlvcygxMi4wKSk7Ci1AcHJvcGVydHkgKG5v
bmF0b21pYywgc2V0dGVyPV9zZXRJbmNvbXBsZXRlSW1hZ2VCb3JkZXJFbmFibGVkOikgQk9PTCBf
aW5jb21wbGV0ZUltYWdlQm9yZGVyRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4x
NCksIGlvcygxMi4wKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXREcmF3c0Jh
Y2tncm91bmQ6KSBCT09MIF9kcmF3c0JhY2tncm91bmQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3go
MTAuMTQpLCBpb3MoMTIuMCkpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0U2hv
dWxkRGVmZXJBc3luY2hyb25vdXNTY3JpcHRzVW50aWxBZnRlckRvY3VtZW50TG9hZDopIEJPT0wg
X3Nob3VsZERlZmVyQXN5bmNocm9ub3VzU2NyaXB0c1VudGlsQWZ0ZXJEb2N1bWVudExvYWQgV0tf
QVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTQpLCBpb3MoMTIuMCkpOworQHByb3BlcnR5IChub25h
dG9taWMsIHNldHRlcj1fc2V0UmVzcGVjdHNJbWFnZU9yaWVudGF0aW9uOikgQk9PTCBfcmVzcGVj
dHNJbWFnZU9yaWVudGF0aW9uIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAu
MCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0UHJpbnRzQmFja2dyb3VuZHM6
KSBCT09MIF9wcmludHNCYWNrZ3JvdW5kcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwg
aW9zKDEwLjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEluY3JlbWVudGFs
UmVuZGVyaW5nU3VwcHJlc3Npb25UaW1lb3V0OikgTlNUaW1lSW50ZXJ2YWwgX2luY3JlbWVudGFs
UmVuZGVyaW5nU3VwcHJlc3Npb25UaW1lb3V0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIp
LCBpb3MoMTAuMCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0QWxsb3dzSmF2
YVNjcmlwdE1hcmt1cDopIEJPT0wgX2FsbG93c0phdmFTY3JpcHRNYXJrdXAgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0
dGVyPV9zZXRDb252ZXJ0c1Bvc2l0aW9uU3R5bGVPbkNvcHk6KSBCT09MIF9jb252ZXJ0c1Bvc2l0
aW9uU3R5bGVPbkNvcHkgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7
CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBbGxvd3NNZXRhUmVmcmVzaDopIEJP
T0wgX2FsbG93c01ldGFSZWZyZXNoIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3Mo
MTAuMCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0QWxsb3dVbml2ZXJzYWxB
Y2Nlc3NGcm9tRmlsZVVSTHM6KSBCT09MIF9hbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJM
cyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKK0Bwcm9wZXJ0eSAo
bm9uYXRvbWljLCBzZXR0ZXI9X3NldE5lZWRzU3RvcmFnZUFjY2Vzc0Zyb21GaWxlVVJMc1F1aXJr
OikgQk9PTCBfbmVlZHNTdG9yYWdlQWNjZXNzRnJvbUZpbGVVUkxzUXVpcmsgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xMi4zKSwgaW9zKDEwLjMpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBz
ZXR0ZXI9X3NldE1haW5Db250ZW50VXNlckdlc3R1cmVPdmVycmlkZUVuYWJsZWQ6KSBCT09MIF9t
YWluQ29udGVudFVzZXJHZXN0dXJlT3ZlcnJpZGVFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTAuMTIpLCBpb3MoMTAuMCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0
SW52aXNpYmxlQXV0b3BsYXlOb3RQZXJtaXR0ZWQ6KSBCT09MIF9pbnZpc2libGVBdXRvcGxheU5v
dFBlcm1pdHRlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKK0Bw
cm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldE1lZGlhRGF0YUxvYWRzQXV0b21hdGljYWxs
eTopIEJPT0wgX21lZGlhRGF0YUxvYWRzQXV0b21hdGljYWxseSBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDEwLjEyKSwgaW9zKDEwLjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3Nl
dEF0dGFjaG1lbnRFbGVtZW50RW5hYmxlZDopIEJPT0wgX2F0dGFjaG1lbnRFbGVtZW50RW5hYmxl
ZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKK0Bwcm9wZXJ0eSAo
bm9uYXRvbWljLCBzZXR0ZXI9X3NldEF0dGFjaG1lbnRGaWxlV3JhcHBlckNsYXNzOikgQ2xhc3Mg
X2F0dGFjaG1lbnRGaWxlV3JhcHBlckNsYXNzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFD
X1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9z
ZXRJbml0aWFsQ2FwaXRhbGl6YXRpb25FbmFibGVkOikgQk9PTCBfaW5pdGlhbENhcGl0YWxpemF0
aW9uRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKK0Bw
cm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFwcGxlUGF5RW5hYmxlZDopIEJPT0wgX2Fw
cGxlUGF5RW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsK
K0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFdhaXRzRm9yUGFpbnRBZnRlclZpZXdE
aWRNb3ZlVG9XaW5kb3c6KSBCT09MIF93YWl0c0ZvclBhaW50QWZ0ZXJWaWV3RGlkTW92ZVRvV2lu
ZG93IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIuMyksIGlvcygxMC4zKSk7CitAcHJvcGVy
dHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRDb250cm9sbGVkQnlBdXRvbWF0aW9uOiwgZ2V0dGVy
PV9pc0NvbnRyb2xsZWRCeUF1dG9tYXRpb24pIEJPT0wgX2NvbnRyb2xsZWRCeUF1dG9tYXRpb24g
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMi4zKSwgaW9zKDEwLjMpKTsKK0Bwcm9wZXJ0eSAo
bm9uYXRvbWljLCBzZXR0ZXI9X3NldEFwcGxpY2F0aW9uTWFuaWZlc3Q6KSBfV0tBcHBsaWNhdGlv
bk1hbmlmZXN0ICpfYXBwbGljYXRpb25NYW5pZmVzdCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEw
LjEzLjQpLCBpb3MoMTEuMykpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0Q29s
b3JGaWx0ZXJFbmFibGVkOikgQk9PTCBfY29sb3JGaWx0ZXJFbmFibGVkIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTAuMTQpLCBpb3MoMTIuMCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRl
cj1fc2V0SW5jb21wbGV0ZUltYWdlQm9yZGVyRW5hYmxlZDopIEJPT0wgX2luY29tcGxldGVJbWFn
ZUJvcmRlckVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4wKSk7
CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXREcmF3c0JhY2tncm91bmQ6KSBCT09M
IF9kcmF3c0JhY2tncm91bmQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4w
KSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRTaG91bGREZWZlckFzeW5jaHJv
bm91c1NjcmlwdHNVbnRpbEFmdGVyRG9jdW1lbnRMb2FkOikgQk9PTCBfc2hvdWxkRGVmZXJBc3lu
Y2hyb25vdXNTY3JpcHRzVW50aWxBZnRlckRvY3VtZW50TG9hZCBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDEwLjE0KSwgaW9zKDEyLjApKTsKIAogI2lmIFRBUkdFVF9PU19JUEhPTkUKIEBwcm9wZXJ0
eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFsd2F5c1J1bnNBdEZvcmVncm91bmRQcmlvcml0eTop
IEJPT0wgX2Fsd2F5c1J1bnNBdEZvcmVncm91bmRQcmlvcml0eSBXS19BUElfQVZBSUxBQkxFKGlv
cyg5XzApKTsKQEAgLTgzLDI3ICs4MywyNyBAQCB0eXBlZGVmIE5TX0VOVU0oTlNVSW50ZWdlciwg
X1dLRHJhZ0xpZnREZWxheSkgewogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0TG9u
Z1ByZXNzQWN0aW9uc0VuYWJsZWQ6KSBCT09MIF9sb25nUHJlc3NBY3Rpb25zRW5hYmxlZCBXS19B
UElfQVZBSUxBQkxFKGlvcygxMi4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9z
ZXRTeXN0ZW1QcmV2aWV3RW5hYmxlZDopIEJPT0wgX3N5c3RlbVByZXZpZXdFbmFibGVkIFdLX0FQ
SV9BVkFJTEFCTEUoaW9zKDEyLjApKTsKICNlbHNlCi1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0
dGVyPV9zZXRTaG93c1VSTHNJblRvb2xUaXBzOikgQk9PTCBfc2hvd3NVUkxzSW5Ub29sVGlwcyBX
S19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMikpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNl
dHRlcj1fc2V0U2VydmljZUNvbnRyb2xzRW5hYmxlZDopIEJPT0wgX3NlcnZpY2VDb250cm9sc0Vu
YWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpKTsKLUBwcm9wZXJ0eSAobm9uYXRv
bWljLCBzZXR0ZXI9X3NldEltYWdlQ29udHJvbHNFbmFibGVkOikgQk9PTCBfaW1hZ2VDb250cm9s
c0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpKTsKLUBwcm9wZXJ0eSAobm9u
YXRvbWljLCByZWFkd3JpdGUsIHNldHRlcj1fc2V0UmVxdWlyZXNVc2VyQWN0aW9uRm9yRWRpdGlu
Z0NvbnRyb2xzTWFuYWdlcjopIEJPT0wgX3JlcXVpcmVzVXNlckFjdGlvbkZvckVkaXRpbmdDb250
cm9sc01hbmFnZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpKTsKLUBwcm9wZXJ0eSAo
bm9uYXRvbWljLCByZWFkd3JpdGUsIHNldHRlcj1fc2V0Q1BVTGltaXQ6KSBkb3VibGUgX2NwdUxp
bWl0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpKTsKLUBwcm9wZXJ0eSAobm9uYXRv
bWljLCByZWFkd3JpdGUsIHNldHRlcj1fc2V0UGFnZUdyb3VwOikgV0tQYWdlR3JvdXBSZWYgX3Bh
Z2VHcm91cCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSk7CitAcHJvcGVydHkgKG5v
bmF0b21pYywgc2V0dGVyPV9zZXRTaG93c1VSTHNJblRvb2xUaXBzOikgQk9PTCBfc2hvd3NVUkxz
SW5Ub29sVGlwcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSk7CitAcHJvcGVydHkgKG5v
bmF0b21pYywgc2V0dGVyPV9zZXRTZXJ2aWNlQ29udHJvbHNFbmFibGVkOikgQk9PTCBfc2Vydmlj
ZUNvbnRyb2xzRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSk7CitAcHJvcGVy
dHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRJbWFnZUNvbnRyb2xzRW5hYmxlZDopIEJPT0wgX2lt
YWdlQ29udHJvbHNFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpKTsKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCByZWFkd3JpdGUsIHNldHRlcj1fc2V0UmVxdWlyZXNVc2VyQWN0aW9u
Rm9yRWRpdGluZ0NvbnRyb2xzTWFuYWdlcjopIEJPT0wgX3JlcXVpcmVzVXNlckFjdGlvbkZvckVk
aXRpbmdDb250cm9sc01hbmFnZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMikpOworQHBy
b3BlcnR5IChub25hdG9taWMsIHJlYWR3cml0ZSwgc2V0dGVyPV9zZXRDUFVMaW1pdDopIGRvdWJs
ZSBfY3B1TGltaXQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CitAcHJvcGVydHkg
KG5vbmF0b21pYywgcmVhZHdyaXRlLCBzZXR0ZXI9X3NldFBhZ2VHcm91cDopIFdLUGFnZUdyb3Vw
UmVmIF9wYWdlR3JvdXAgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CiAjZW5kaWYK
IAotQHByb3BlcnR5IChub25hdG9taWMsIHN0cm9uZywgc2V0dGVyPV9zZXRXZWJzaXRlRGF0YVN0
b3JlOikgX1dLV2Vic2l0ZURhdGFTdG9yZSAqX3dlYnNpdGVEYXRhU3RvcmUgV0tfQVBJX0RFUFJF
Q0FURURfV0lUSF9SRVBMQUNFTUVOVCgid2Vic2l0ZURhdGFTdG9yZSIsIG1hY29zeCgxMC4xMCwg
MTAuMTEpLCBpb3MoOC4wLCA5LjApKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3Nl
dFJlcXVpcmVzVXNlckFjdGlvbkZvckF1ZGlvUGxheWJhY2s6KSBCT09MIF9yZXF1aXJlc1VzZXJB
Y3Rpb25Gb3JBdWRpb1BsYXliYWNrIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQo
Im1lZGlhVHlwZXNSZXF1aXJpbmdVc2VyQWN0aW9uRm9yUGxheWJhY2siLCBtYWNvc3goMTAuMTIs
IDEwLjEyKSwgaW9zKDEwLjAsIDEwLjApKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9
X3NldFJlcXVpcmVzVXNlckFjdGlvbkZvclZpZGVvUGxheWJhY2s6KSBCT09MIF9yZXF1aXJlc1Vz
ZXJBY3Rpb25Gb3JWaWRlb1BsYXliYWNrIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1F
TlQoIm1lZGlhVHlwZXNSZXF1aXJpbmdVc2VyQWN0aW9uRm9yUGxheWJhY2siLCBtYWNvc3goMTAu
MTIsIDEwLjEyKSwgaW9zKDEwLjAsIDEwLjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzdHJv
bmcsIHNldHRlcj1fc2V0V2Vic2l0ZURhdGFTdG9yZTopIF9XS1dlYnNpdGVEYXRhU3RvcmUgKl93
ZWJzaXRlRGF0YVN0b3JlIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIndlYnNp
dGVEYXRhU3RvcmUiLCBtYWNvcygxMC4xMCwgMTAuMTEpLCBpb3MoOC4wLCA5LjApKTsKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFJlcXVpcmVzVXNlckFjdGlvbkZvckF1ZGlvUGxh
eWJhY2s6KSBCT09MIF9yZXF1aXJlc1VzZXJBY3Rpb25Gb3JBdWRpb1BsYXliYWNrIFdLX0FQSV9E
RVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIm1lZGlhVHlwZXNSZXF1aXJpbmdVc2VyQWN0aW9u
Rm9yUGxheWJhY2siLCBtYWNvcygxMC4xMiwgMTAuMTIpLCBpb3MoMTAuMCwgMTAuMCkpOworQHBy
b3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0UmVxdWlyZXNVc2VyQWN0aW9uRm9yVmlkZW9Q
bGF5YmFjazopIEJPT0wgX3JlcXVpcmVzVXNlckFjdGlvbkZvclZpZGVvUGxheWJhY2sgV0tfQVBJ
X0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgibWVkaWFUeXBlc1JlcXVpcmluZ1VzZXJBY3Rp
b25Gb3JQbGF5YmFjayIsIG1hY29zKDEwLjEyLCAxMC4xMiksIGlvcygxMC4wLCAxMC4wKSk7CiAK
LUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldE92ZXJyaWRlQ29udGVudFNlY3VyaXR5
UG9saWN5OikgTlNTdHJpbmcgKl9vdmVycmlkZUNvbnRlbnRTZWN1cml0eVBvbGljeSBXS19BUElf
QVZBSUxBQkxFKG1hY29zeCgxMC4xMi4zKSwgaW9zKDEwLjMpKTsKLUBwcm9wZXJ0eSAobm9uYXRv
bWljLCBzZXR0ZXI9X3NldE1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0
OikgTlNTdHJpbmcgKl9tZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCBX
S19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7Ci1AcHJvcGVydHkgKG5v
bmF0b21pYywgc2V0dGVyPV9zZXRMZWdhY3lFbmNyeXB0ZWRNZWRpYUFQSUVuYWJsZWQ6KSBCT09M
IF9sZWdhY3lFbmNyeXB0ZWRNZWRpYUFQSUVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3go
MTAuMTMpLCBpb3MoMTEuMCkpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0QWxs
b3dNZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydEFzRmFsbGJhY2s6KSBC
T09MIF9hbGxvd01lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0QXNGYWxs
YmFjayBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7CitAcHJvcGVy
dHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRPdmVycmlkZUNvbnRlbnRTZWN1cml0eVBvbGljeTop
IE5TU3RyaW5nICpfb3ZlcnJpZGVDb250ZW50U2VjdXJpdHlQb2xpY3kgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMC4xMi4zKSwgaW9zKDEwLjMpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0
ZXI9X3NldE1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0OikgTlNTdHJp
bmcgKl9tZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBz
ZXR0ZXI9X3NldExlZ2FjeUVuY3J5cHRlZE1lZGlhQVBJRW5hYmxlZDopIEJPT0wgX2xlZ2FjeUVu
Y3J5cHRlZE1lZGlhQVBJRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9z
KDExLjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFsbG93TWVkaWFDb250
ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnRBc0ZhbGxiYWNrOikgQk9PTCBfYWxsb3dN
ZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydEFzRmFsbGJhY2sgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSk7CiAKIC8vIFRoZSBpbnB1dCBvZiB0
aGlzIFNQSSBpcyBhbiBhcnJheSBvZiBpbWFnZSBVVEkgKFVuaWZvcm0gVHlwZSBJZGVudGlmaWVy
KS4KLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5LCBzZXR0ZXI9X3NldEFkZGl0aW9uYWxTdXBw
b3J0ZWRJbWFnZVR5cGVzOikgTlNBcnJheTxOU1N0cmluZyAqPiAqX2FkZGl0aW9uYWxTdXBwb3J0
ZWRJbWFnZVR5cGVzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIGNvcHksIHNldHRlcj1fc2V0QWRkaXRp
b25hbFN1cHBvcnRlZEltYWdlVHlwZXM6KSBOU0FycmF5PE5TU3RyaW5nICo+ICpfYWRkaXRpb25h
bFN1cHBvcnRlZEltYWdlVHlwZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEpKTsKIAotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0RWRp
dGFibGVJbWFnZXNFbmFibGVkOikgQk9PTCBfZWRpdGFibGVJbWFnZXNFbmFibGVkIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5
IChub25hdG9taWMsIHNldHRlcj1fc2V0RWRpdGFibGVJbWFnZXNFbmFibGVkOikgQk9PTCBfZWRp
dGFibGVJbWFnZXNFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRVbmRvTWFu
YWdlckFQSUVuYWJsZWQ6KSBCT09MIF91bmRvTWFuYWdlckFQSUVuYWJsZWQgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogQGVuZApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgK
aW5kZXggNzNmNzI4MWZhYmU2MDAzNThhZTg0NzNjMmNhN2M4ZDQ0YjhhN2I1ZS4uOGU5OWVjZWE3
ZjBlMWY5N2RhN2ZhMjJhOGNiMDljZjAxYjUxMjRjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCkBAIC0zOSw3ICszOSw3
IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS1BhZ2luYXRpb25Nb2RlKSB7CiAgICAg
X1dLUGFnaW5hdGlvbk1vZGVSaWdodFRvTGVmdCwKICAgICBfV0tQYWdpbmF0aW9uTW9kZVRvcFRv
Qm90dG9tLAogICAgIF9XS1BhZ2luYXRpb25Nb2RlQm90dG9tVG9Ub3AsCi19IFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpOworfSBXS19BUElfQVZBSUxBQkxFKG1hY29z
KDEwLjEwKSwgaW9zKDguMCkpOwogCiB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dL
TWVkaWFDYXB0dXJlU3RhdGUpIHsKICAgICBfV0tNZWRpYUNhcHR1cmVTdGF0ZU5vbmUgPSAwLApA
QCAtNDcsMjYgKzQ3LDI2IEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tNZWRp
YUNhcHR1cmVTdGF0ZSkgewogICAgIF9XS01lZGlhQ2FwdHVyZVN0YXRlQWN0aXZlQ2FtZXJhID0g
MSA8PCAxLAogICAgIF9XS01lZGlhQ2FwdHVyZVN0YXRlTXV0ZWRNaWNyb3Bob25lID0gMSA8PCAy
LAogICAgIF9XS01lZGlhQ2FwdHVyZVN0YXRlTXV0ZWRDYW1lcmEgPSAxIDw8IDMsCi19IFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzKSwgaW9zKDExLjApKTsKK30gV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMC4xMyksIGlvcygxMS4wKSk7CiAKIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRl
Z2VyLCBfV0tNZWRpYU11dGVkU3RhdGUpIHsKICAgICBfV0tNZWRpYU5vbmVNdXRlZCA9IDAsCiAg
ICAgX1dLTWVkaWFBdWRpb011dGVkID0gMSA8PCAwLAogICAgIF9XS01lZGlhQ2FwdHVyZURldmlj
ZXNNdXRlZCA9IDEgPDwgMSwKLX0gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMpLCBpb3Mo
MTEuMCkpOworfSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKTsKIAog
dHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS0NhcHR1cmVEZXZpY2VzKSB7CiAgICAg
X1dLQ2FwdHVyZURldmljZU1pY3JvcGhvbmUgPSAxIDw8IDAsCiAgICAgX1dLQ2FwdHVyZURldmlj
ZUNhbWVyYSA9IDEgPDwgMSwKICAgICBfV0tDYXB0dXJlRGV2aWNlRGlzcGxheSA9IDEgPDwgMiwK
LX0gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpOworfSBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKTsKIAogdHlwZWRlZiBOU19PUFRJT05T
KE5TVUludGVnZXIsIF9XS1NlbGVjdGlvbkF0dHJpYnV0ZXMpIHsKICAgICBfV0tTZWxlY3Rpb25B
dHRyaWJ1dGVOb1NlbGVjdGlvbiA9IDAsCiAgICAgX1dLU2VsZWN0aW9uQXR0cmlidXRlSXNDYXJl
dCA9IDEgPDwgMCwKICAgICBfV0tTZWxlY3Rpb25BdHRyaWJ1dGVJc1JhbmdlID0gMSA8PCAxLAog
ICAgIF9XS1NlbGVjdGlvbkF0dHJpYnV0ZUF0U3RhcnRPZlNlbnRlbmNlID0gMSA8PCAyLAotfSBX
S19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK30g
V0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAog
I2lmIFRBUkdFVF9PU19JUEhPTkUKIApAQCAtODksNyArODksNyBAQCB0eXBlZGVmIE5TX0VOVU0o
TlNJbnRlZ2VyLCBfV0tJbW1lZGlhdGVBY3Rpb25UeXBlKSB7CiAgICAgX1dLSW1tZWRpYXRlQWN0
aW9uTG9va3VwVGV4dCwKICAgICBfV0tJbW1lZGlhdGVBY3Rpb25NYWlsdG9MaW5rLAogICAgIF9X
S0ltbWVkaWF0ZUFjdGlvblRlbExpbmsKLX0gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIp
KTsKK30gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMikpOwogCiB0eXBlZGVmIE5TX09QVElP
TlMoTlNVSW50ZWdlciwgX1dLUmVjdEVkZ2UpIHsKICAgICBfV0tSZWN0RWRnZU5vbmUgPSAwLApA
QCAtOTgsNyArOTgsNyBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dLUmVjdEVk
Z2UpIHsKICAgICBfV0tSZWN0RWRnZVJpZ2h0ID0gMSA8PCBDR1JlY3RNYXhYRWRnZSwKICAgICBf
V0tSZWN0RWRnZUJvdHRvbSA9IDEgPDwgQ0dSZWN0TWF4WUVkZ2UsCiAgICAgX1dLUmVjdEVkZ2VB
bGwgPSBfV0tSZWN0RWRnZUxlZnQgfCBfV0tSZWN0RWRnZVRvcCB8IF9XS1JlY3RFZGdlUmlnaHQg
fCBfV0tSZWN0RWRnZUJvdHRvbSwKLX0gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCkp
OworfSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKIAogI2VuZGlmCiAKQEAgLTEz
NywyNSArMTM3LDI1IEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tSZWN0RWRn
ZSkgewogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1VSTCAqX3VucmVhY2hhYmxl
VVJMOwogCiAtICh2b2lkKV9sb2FkQWx0ZXJuYXRlSFRNTFN0cmluZzooTlNTdHJpbmcgKilzdHJp
bmcgYmFzZVVSTDooTlNVUkwgKiliYXNlVVJMIGZvclVucmVhY2hhYmxlVVJMOihOU1VSTCAqKXVu
cmVhY2hhYmxlVVJMOwotLSAoV0tOYXZpZ2F0aW9uICopX2xvYWREYXRhOihOU0RhdGEgKilkYXRh
IE1JTUVUeXBlOihOU1N0cmluZyAqKU1JTUVUeXBlIGNoYXJhY3RlckVuY29kaW5nTmFtZTooTlNT
dHJpbmcgKiljaGFyYWN0ZXJFbmNvZGluZ05hbWUgYmFzZVVSTDooTlNVUkwgKiliYXNlVVJMIHVz
ZXJEYXRhOihpZCl1c2VyRGF0YSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMiksIGlvcygx
MC4wKSk7Ci0tIChXS05hdmlnYXRpb24gKilfbG9hZFJlcXVlc3Q6KE5TVVJMUmVxdWVzdCAqKXJl
cXVlc3Qgc2hvdWxkT3BlbkV4dGVybmFsVVJMczooQk9PTClzaG91bGRPcGVuRXh0ZXJuYWxVUkxz
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzKSwgaW9zKDExLjApKTsKKy0gKFdLTmF2aWdh
dGlvbiAqKV9sb2FkRGF0YTooTlNEYXRhICopZGF0YSBNSU1FVHlwZTooTlNTdHJpbmcgKilNSU1F
VHlwZSBjaGFyYWN0ZXJFbmNvZGluZ05hbWU6KE5TU3RyaW5nICopY2hhcmFjdGVyRW5jb2RpbmdO
YW1lIGJhc2VVUkw6KE5TVVJMICopYmFzZVVSTCB1c2VyRGF0YTooaWQpdXNlckRhdGEgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CistIChXS05hdmlnYXRpb24gKilf
bG9hZFJlcXVlc3Q6KE5TVVJMUmVxdWVzdCAqKXJlcXVlc3Qgc2hvdWxkT3BlbkV4dGVybmFsVVJM
czooQk9PTClzaG91bGRPcGVuRXh0ZXJuYWxVUkxzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAu
MTMpLCBpb3MoMTEuMCkpOwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TQXJy
YXkgKl9jZXJ0aWZpY2F0ZUNoYWluIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQo
ImNlcnRpZmljYXRlQ2hhaW4iLCBtYWNvc3goMTAuMTAsIDEwLjExKSwgaW9zKDguMCwgOS4wKSk7
CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TQXJyYXkgKl9jZXJ0aWZpY2F0ZUNo
YWluIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoImNlcnRpZmljYXRlQ2hhaW4i
LCBtYWNvcygxMC4xMCwgMTAuMTEpLCBpb3MoOC4wLCA5LjApKTsKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCByZWFkb25seSkgTlNVUkwgKl9jb21taXR0ZWRVUkw7CiBAcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZG9ubHkpIE5TU3RyaW5nICpfTUlNRVR5cGU7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywg
cmVhZG9ubHkpIE5TU3RyaW5nICpfdXNlckFnZW50IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEw
LjExKSwgaW9zKDkuMCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1N0cmlu
ZyAqX3VzZXJBZ2VudCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjExKSwgaW9zKDkuMCkpOwog
Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGdldHRlcj1faXNQbGF5aW5nQXVkaW8p
IEJPT0wgX3BsYXlpbmdBdWRpbyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSwgaW9z
KDExLjMpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgZ2V0dGVyPV9pc1BsYXlp
bmdBdWRpbykgQk9PTCBfcGxheWluZ0F1ZGlvIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMu
NCksIGlvcygxMS4zKSk7CiAKIEBwcm9wZXJ0eSAoY29weSwgc2V0dGVyPV9zZXRBcHBsaWNhdGlv
bk5hbWVGb3JVc2VyQWdlbnQ6KSBOU1N0cmluZyAqX2FwcGxpY2F0aW9uTmFtZUZvclVzZXJBZ2Vu
dDsKIEBwcm9wZXJ0eSAoY29weSwgc2V0dGVyPV9zZXRDdXN0b21Vc2VyQWdlbnQ6KSBOU1N0cmlu
ZyAqX2N1c3RvbVVzZXJBZ2VudDsKIAotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0
VXNlckNvbnRlbnRFeHRlbnNpb25zRW5hYmxlZDopIEJPT0wgX3VzZXJDb250ZW50RXh0ZW5zaW9u
c0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CitAcHJv
cGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRVc2VyQ29udGVudEV4dGVuc2lvbnNFbmFibGVk
OikgQk9PTCBfdXNlckNvbnRlbnRFeHRlbnNpb25zRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDEwLjExKSwgaW9zKDkuMCkpOwogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkp
IHBpZF90IF93ZWJQcm9jZXNzSWRlbnRpZmllcjsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFk
b25seSkgcGlkX3QgX3Byb3Zpc2lvbmFsV2ViUHJvY2Vzc0lkZW50aWZpZXIgV0tfQVBJX0FWQUlM
QUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5v
bmF0b21pYywgcmVhZG9ubHkpIHBpZF90IF9wcm92aXNpb25hbFdlYlByb2Nlc3NJZGVudGlmaWVy
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAK
LUBwcm9wZXJ0eSAobm9uYXRvbWljLCBnZXR0ZXI9X2lzRWRpdGFibGUsIHNldHRlcj1fc2V0RWRp
dGFibGU6KSBCT09MIF9lZGl0YWJsZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlv
cyg5LjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBnZXR0ZXI9X2lzRWRpdGFibGUsIHNldHRl
cj1fc2V0RWRpdGFibGU6KSBCT09MIF9lZGl0YWJsZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEw
LjExKSwgaW9zKDkuMCkpOwogCiAvLyBGSVhNRTogUmVtb3ZlIHRoZXNlIG9uY2Ugbm9ib2R5IGlz
IHVzaW5nIHRoZW0uCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TRGF0YSAqX3Nl
c3Npb25TdGF0ZURhdGE7CkBAIC0xNjYsNyArMTY2LDcgQEAgdHlwZWRlZiBOU19PUFRJT05TKE5T
VUludGVnZXIsIF9XS1JlY3RFZGdlKSB7CiAtIChfV0tTZXNzaW9uU3RhdGUgKilfc2Vzc2lvblN0
YXRlV2l0aEZpbHRlcjooQk9PTCAoXikoV0tCYWNrRm9yd2FyZExpc3RJdGVtICppdGVtKSlmaWx0
ZXI7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFsbG93c1JlbW90ZUluc3Bl
Y3Rpb246KSBCT09MIF9hbGxvd3NSZW1vdGVJbnNwZWN0aW9uOwotQHByb3BlcnR5IChub25hdG9t
aWMsIGNvcHksIHNldHRlcj1fc2V0UmVtb3RlSW5zcGVjdGlvbk5hbWVPdmVycmlkZTopIE5TU3Ry
aW5nICpfcmVtb3RlSW5zcGVjdGlvbk5hbWVPdmVycmlkZSBXS19BUElfQVZBSUxBQkxFKG1hY29z
eCgxMC4xMiksIGlvcygxMC4wKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSwgc2V0dGVy
PV9zZXRSZW1vdGVJbnNwZWN0aW9uTmFtZU92ZXJyaWRlOikgTlNTdHJpbmcgKl9yZW1vdGVJbnNw
ZWN0aW9uTmFtZU92ZXJyaWRlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAu
MCkpOwogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBZGRzVmlzaXRlZExpbmtz
OikgQk9PTCBfYWRkc1Zpc2l0ZWRMaW5rczsKIApAQCAtMTc2LDU4ICsxNzYsNTggQEAgdHlwZWRl
ZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS1JlY3RFZGdlKSB7CiAKIC0gKHZvaWQpX2Nsb3Nl
OwogCi0tICh2b2lkKV91cGRhdGVXZWJzaXRlUG9saWNpZXM6KF9XS1dlYnNpdGVQb2xpY2llcyAq
KXdlYnNpdGVQb2xpY2llcyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4w
KSk7CistICh2b2lkKV91cGRhdGVXZWJzaXRlUG9saWNpZXM6KF9XS1dlYnNpdGVQb2xpY2llcyAq
KXdlYnNpdGVQb2xpY2llcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjAp
KTsKIAotLSAodm9pZClfZXZhbHVhdGVKYXZhU2NyaXB0V2l0aG91dFVzZXJHZXN0dXJlOihOU1N0
cmluZyAqKWphdmFTY3JpcHRTdHJpbmcgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKGlkLCBO
U0Vycm9yICopKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEz
KSwgaW9zKDExLjApKTsKKy0gKHZvaWQpX2V2YWx1YXRlSmF2YVNjcmlwdFdpdGhvdXRVc2VyR2Vz
dHVyZTooTlNTdHJpbmcgKilqYXZhU2NyaXB0U3RyaW5nIGNvbXBsZXRpb25IYW5kbGVyOih2b2lk
ICheKShpZCwgTlNFcnJvciAqKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDEwLjEzKSwgaW9zKDExLjApKTsKIAogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1f
c2V0TGF5b3V0TW9kZTopIF9XS0xheW91dE1vZGUgX2xheW91dE1vZGU7CiAvLyBGb3IgdXNlIHdp
dGggX2xheW91dE1vZGUgPSBfV0tMYXlvdXRNb2RlRml4ZWRTaXplOgogQHByb3BlcnR5IChub25h
dG9taWMsIHNldHRlcj1fc2V0Rml4ZWRMYXlvdXRTaXplOikgQ0dTaXplIF9maXhlZExheW91dFNp
emU7CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFZpZXdwb3J0U2l6ZUZvckNT
U1ZpZXdwb3J0VW5pdHM6KSBDR1NpemUgX3ZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMg
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpOworQHByb3BlcnR5IChu
b25hdG9taWMsIHNldHRlcj1fc2V0Vmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0czopIENH
U2l6ZSBfdmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cyBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDEwLjEzKSwgaW9zKDExLjApKTsKIAotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1f
c2V0Vmlld1NjYWxlOikgQ0dGbG9hdCBfdmlld1NjYWxlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KDEwLjExKSwgaW9zKDkuMCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0Vmll
d1NjYWxlOikgQ0dGbG9hdCBfdmlld1NjYWxlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTEp
LCBpb3MoOS4wKSk7CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldE1pbmltdW1F
ZmZlY3RpdmVEZXZpY2VXaWR0aDopIENHRmxvYXQgX21pbmltdW1FZmZlY3RpdmVEZXZpY2VXaWR0
aCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
K0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldE1pbmltdW1FZmZlY3RpdmVEZXZpY2VX
aWR0aDopIENHRmxvYXQgX21pbmltdW1FZmZlY3RpdmVEZXZpY2VXaWR0aCBXS19BUElfQVZBSUxB
QkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCi1AcHJvcGVydHkgKG5v
bmF0b21pYywgc2V0dGVyPV9zZXRCYWNrZ3JvdW5kRXh0ZW5kc0JleW9uZFBhZ2U6KSBCT09MIF9i
YWNrZ3JvdW5kRXh0ZW5kc0JleW9uZFBhZ2UgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMu
NCksIGlvcyg4LjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEJhY2tncm91
bmRFeHRlbmRzQmV5b25kUGFnZTopIEJPT0wgX2JhY2tncm91bmRFeHRlbmRzQmV5b25kUGFnZSBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoOC4wKSk7CiAKLS0gKF9XS0F0dGFj
aG1lbnQgKilfaW5zZXJ0QXR0YWNobWVudFdpdGhGaWxlbmFtZTooTlNTdHJpbmcgKilmaWxlbmFt
ZSBjb250ZW50VHlwZTooTlNTdHJpbmcgKiljb250ZW50VHlwZSBkYXRhOihOU0RhdGEgKilkYXRh
IG9wdGlvbnM6KF9XS0F0dGFjaG1lbnREaXNwbGF5T3B0aW9ucyAqKW9wdGlvbnMgY29tcGxldGlv
bjoodm9pZCheKShCT09MIHN1Y2Nlc3MpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9ERVBSRUNB
VEVEX1dJVEhfUkVQTEFDRU1FTlQoIi1faW5zZXJ0QXR0YWNobWVudFdpdGhGaWxlV3JhcHBlcjpj
b250ZW50VHlwZTpvcHRpb25zOmNvbXBsZXRpb246IiwgbWFjb3N4KDEwLjEzLjQsIFdLX01BQ19U
QkEpLCBpb3MoMTEuMywgV0tfSU9TX1RCQSkpOwotLSAoX1dLQXR0YWNobWVudCAqKV9pbnNlcnRB
dHRhY2htZW50V2l0aEZpbGVXcmFwcGVyOihOU0ZpbGVXcmFwcGVyICopZmlsZVdyYXBwZXIgY29u
dGVudFR5cGU6KE5TU3RyaW5nICopY29udGVudFR5cGUgb3B0aW9uczooX1dLQXR0YWNobWVudERp
c3BsYXlPcHRpb25zICopb3B0aW9ucyBjb21wbGV0aW9uOih2b2lkKF4pKEJPT0wgc3VjY2Vzcykp
Y29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiLV9p
bnNlcnRBdHRhY2htZW50V2l0aEZpbGVXcmFwcGVyOmNvbnRlbnRUeXBlOmNvbXBsZXRpb246Iiwg
bWFjb3N4KFdLX01BQ19UQkEsIFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSwgV0tfSU9TX1RC
QSkpOwotLSAoX1dLQXR0YWNobWVudCAqKV9pbnNlcnRBdHRhY2htZW50V2l0aEZpbGVXcmFwcGVy
OihOU0ZpbGVXcmFwcGVyICopZmlsZVdyYXBwZXIgY29udGVudFR5cGU6KE5TU3RyaW5nICopY29u
dGVudFR5cGUgY29tcGxldGlvbjoodm9pZCheKShCT09MIHN1Y2Nlc3MpKWNvbXBsZXRpb25IYW5k
bGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkp
OwotLSAoX1dLQXR0YWNobWVudCAqKV9hdHRhY2htZW50Rm9ySWRlbnRpZmllcjooTlNTdHJpbmcg
KilpZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpOworLSAoX1dLQXR0YWNobWVudCAqKV9pbnNlcnRBdHRhY2htZW50V2l0aEZpbGVu
YW1lOihOU1N0cmluZyAqKWZpbGVuYW1lIGNvbnRlbnRUeXBlOihOU1N0cmluZyAqKWNvbnRlbnRU
eXBlIGRhdGE6KE5TRGF0YSAqKWRhdGEgb3B0aW9uczooX1dLQXR0YWNobWVudERpc3BsYXlPcHRp
b25zICopb3B0aW9ucyBjb21wbGV0aW9uOih2b2lkKF4pKEJPT0wgc3VjY2VzcykpY29tcGxldGlv
bkhhbmRsZXIgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiLV9pbnNlcnRBdHRh
Y2htZW50V2l0aEZpbGVXcmFwcGVyOmNvbnRlbnRUeXBlOm9wdGlvbnM6Y29tcGxldGlvbjoiLCBt
YWNvcygxMC4xMy40LCBXS19NQUNfVEJBKSwgaW9zKDExLjMsIFdLX0lPU19UQkEpKTsKKy0gKF9X
S0F0dGFjaG1lbnQgKilfaW5zZXJ0QXR0YWNobWVudFdpdGhGaWxlV3JhcHBlcjooTlNGaWxlV3Jh
cHBlciAqKWZpbGVXcmFwcGVyIGNvbnRlbnRUeXBlOihOU1N0cmluZyAqKWNvbnRlbnRUeXBlIG9w
dGlvbnM6KF9XS0F0dGFjaG1lbnREaXNwbGF5T3B0aW9ucyAqKW9wdGlvbnMgY29tcGxldGlvbjoo
dm9pZCheKShCT09MIHN1Y2Nlc3MpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9ERVBSRUNBVEVE
X1dJVEhfUkVQTEFDRU1FTlQoIi1faW5zZXJ0QXR0YWNobWVudFdpdGhGaWxlV3JhcHBlcjpjb250
ZW50VHlwZTpjb21wbGV0aW9uOiIsIG1hY29zKFdLX01BQ19UQkEsIFdLX01BQ19UQkEpLCBpb3Mo
V0tfSU9TX1RCQSwgV0tfSU9TX1RCQSkpOworLSAoX1dLQXR0YWNobWVudCAqKV9pbnNlcnRBdHRh
Y2htZW50V2l0aEZpbGVXcmFwcGVyOihOU0ZpbGVXcmFwcGVyICopZmlsZVdyYXBwZXIgY29udGVu
dFR5cGU6KE5TU3RyaW5nICopY29udGVudFR5cGUgY29tcGxldGlvbjoodm9pZCheKShCT09MIHN1
Y2Nlc3MpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RC
QSksIGlvcyhXS19JT1NfVEJBKSk7CistIChfV0tBdHRhY2htZW50ICopX2F0dGFjaG1lbnRGb3JJ
ZGVudGlmaWVyOihOU1N0cmluZyAqKWlkZW50aWZpZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhX
S19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAotLSAodm9pZClfc2ltdWxhdGVEZXZpY2VP
cmllbnRhdGlvbkNoYW5nZVdpdGhBbHBoYTooZG91YmxlKWFscGhhIGJldGE6KGRvdWJsZSliZXRh
IGdhbW1hOihkb3VibGUpZ2FtbWEgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV9zaW11bGF0ZURldmljZU9yaWVudGF0aW9uQ2hh
bmdlV2l0aEFscGhhOihkb3VibGUpYWxwaGEgYmV0YTooZG91YmxlKWJldGEgZ2FtbWE6KGRvdWJs
ZSlnYW1tYSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RC
QSkpOwogCi0rIChCT09MKV9oYW5kbGVzU2FmZUJyb3dzaW5nIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotKyAoTlNVUkwgKilfY29uZmlybU1h
bHdhcmVTZW50aW5lbCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdL
X0lPU19UQkEpKTsKLSsgKE5TVVJMICopX3Zpc2l0VW5zYWZlV2Vic2l0ZVNlbnRpbmVsIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotLSAodm9p
ZClfc2hvd1NhZmVCcm93c2luZ1dhcm5pbmdXaXRoVGl0bGU6KE5TU3RyaW5nICopdGl0bGUgd2Fy
bmluZzooTlNTdHJpbmcgKil3YXJuaW5nIGRldGFpbHM6KE5TQXR0cmlidXRlZFN0cmluZyAqKWRl
dGFpbHMgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikoQk9PTCkpY29tcGxldGlvbkhhbmRsZXIg
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci0t
ICh2b2lkKV9zaG93U2FmZUJyb3dzaW5nV2FybmluZ1dpdGhVUkw6KE5TVVJMICopdXJsIHRpdGxl
OihOU1N0cmluZyAqKXRpdGxlIHdhcm5pbmc6KE5TU3RyaW5nICopd2FybmluZyBkZXRhaWxzOihO
U0F0dHJpYnV0ZWRTdHJpbmcgKilkZXRhaWxzIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKEJP
T0wpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOworKyAoQk9PTClfaGFuZGxlc1NhZmVCcm93c2luZyBXS19BUElf
QVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworKyAoTlNVUkwg
KilfY29uZmlybU1hbHdhcmVTZW50aW5lbCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19U
QkEpLCBpb3MoV0tfSU9TX1RCQSkpOworKyAoTlNVUkwgKilfdmlzaXRVbnNhZmVXZWJzaXRlU2Vu
dGluZWwgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KTsKKy0gKHZvaWQpX3Nob3dTYWZlQnJvd3NpbmdXYXJuaW5nV2l0aFRpdGxlOihOU1N0cmluZyAq
KXRpdGxlIHdhcm5pbmc6KE5TU3RyaW5nICopd2FybmluZyBkZXRhaWxzOihOU0F0dHJpYnV0ZWRT
dHJpbmcgKilkZXRhaWxzIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKEJPT0wpKWNvbXBsZXRp
b25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1Nf
VEJBKSk7CistICh2b2lkKV9zaG93U2FmZUJyb3dzaW5nV2FybmluZ1dpdGhVUkw6KE5TVVJMICop
dXJsIHRpdGxlOihOU1N0cmluZyAqKXRpdGxlIHdhcm5pbmc6KE5TU3RyaW5nICopd2FybmluZyBk
ZXRhaWxzOihOU0F0dHJpYnV0ZWRTdHJpbmcgKilkZXRhaWxzIGNvbXBsZXRpb25IYW5kbGVyOih2
b2lkKF4pKEJPT0wpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tf
TUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKLS0gKHZvaWQpX2lzSklURW5hYmxlZDoodm9p
ZCheKShCT09MKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19N
QUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLS0gKHZvaWQpX3JlbW92ZURhdGFEZXRlY3RlZExp
bmtzOihkaXNwYXRjaF9ibG9ja190KWNvbXBsZXRpb24gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3go
V0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV9pc0pJVEVuYWJsZWQ6KHZv
aWQoXikoQk9PTCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19N
QUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX3JlbW92ZURhdGFEZXRlY3RlZExp
bmtzOihkaXNwYXRjaF9ibG9ja190KWNvbXBsZXRpb24gV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhX
S19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAotLSAoSUJBY3Rpb24pX2FsaWduQ2VudGVy
OihpZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19J
T1NfVEJBKSk7Ci0tIChJQkFjdGlvbilfYWxpZ25KdXN0aWZpZWQ6KGlkKXNlbmRlciBXS19BUElf
QVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLS0gKElCQWN0
aW9uKV9hbGlnbkxlZnQ6KGlkKXNlbmRlciBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLS0gKElCQWN0aW9uKV9hbGlnblJpZ2h0OihpZClzZW5k
ZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7
Ci0tIChJQkFjdGlvbilfaW5kZW50OihpZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3go
V0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci0tIChJQkFjdGlvbilfb3V0ZGVudDooaWQp
c2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RC
QSkpOwotLSAoSUJBY3Rpb24pX3RvZ2dsZVN0cmlrZVRocm91Z2g6KGlkKXNlbmRlciBXS19BUElf
QVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLS0gKElCQWN0
aW9uKV9pbnNlcnRPcmRlcmVkTGlzdDooaWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotLSAoSUJBY3Rpb24pX2luc2VydFVub3Jk
ZXJlZExpc3Q6KGlkKXNlbmRlciBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEpKTsKLS0gKElCQWN0aW9uKV9pbnNlcnROZXN0ZWRPcmRlcmVkTGlzdDoo
aWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9T
X1RCQSkpOwotLSAoSUJBY3Rpb24pX2luc2VydE5lc3RlZFVub3JkZXJlZExpc3Q6KGlkKXNlbmRl
ciBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
LS0gKElCQWN0aW9uKV9pbmNyZWFzZUxpc3RMZXZlbDooaWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotLSAoSUJBY3Rpb24pX2Rl
Y3JlYXNlTGlzdExldmVsOihpZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFD
X1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci0tIChJQkFjdGlvbilfY2hhbmdlTGlzdFR5cGU6KGlk
KXNlbmRlciBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19U
QkEpKTsKLS0gKElCQWN0aW9uKV9wYXN0ZUFzUXVvdGF0aW9uOihpZClzZW5kZXIgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci0tIChJQkFjdGlv
bilfcGFzdGVBbmRNYXRjaFN0eWxlOihpZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3go
V0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci0tIChJQkFjdGlvbilfdGFrZUZpbmRTdHJp
bmdGcm9tU2VsZWN0aW9uOihpZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFD
X1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistIChJQkFjdGlvbilfYWxpZ25DZW50ZXI6KGlkKXNl
bmRlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkp
OworLSAoSUJBY3Rpb24pX2FsaWduSnVzdGlmaWVkOihpZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKElCQWN0aW9uKV9hbGln
bkxlZnQ6KGlkKXNlbmRlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3Mo
V0tfSU9TX1RCQSkpOworLSAoSUJBY3Rpb24pX2FsaWduUmlnaHQ6KGlkKXNlbmRlciBXS19BUElf
QVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAoSUJBY3Rp
b24pX2luZGVudDooaWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBKSk7CistIChJQkFjdGlvbilfb3V0ZGVudDooaWQpc2VuZGVyIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistIChJQkFj
dGlvbilfdG9nZ2xlU3RyaWtlVGhyb3VnaDooaWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistIChJQkFjdGlvbilfaW5zZXJ0T3Jk
ZXJlZExpc3Q6KGlkKXNlbmRlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBp
b3MoV0tfSU9TX1RCQSkpOworLSAoSUJBY3Rpb24pX2luc2VydFVub3JkZXJlZExpc3Q6KGlkKXNl
bmRlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkp
OworLSAoSUJBY3Rpb24pX2luc2VydE5lc3RlZE9yZGVyZWRMaXN0OihpZClzZW5kZXIgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKElCQWN0
aW9uKV9pbnNlcnROZXN0ZWRVbm9yZGVyZWRMaXN0OihpZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKElCQWN0aW9uKV9pbmNy
ZWFzZUxpc3RMZXZlbDooaWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RC
QSksIGlvcyhXS19JT1NfVEJBKSk7CistIChJQkFjdGlvbilfZGVjcmVhc2VMaXN0TGV2ZWw6KGlk
KXNlbmRlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RC
QSkpOworLSAoSUJBY3Rpb24pX2NoYW5nZUxpc3RUeXBlOihpZClzZW5kZXIgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKElCQWN0aW9uKV9w
YXN0ZUFzUXVvdGF0aW9uOihpZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKElCQWN0aW9uKV9wYXN0ZUFuZE1hdGNoU3R5bGU6
KGlkKXNlbmRlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9T
X1RCQSkpOworLSAoSUJBY3Rpb24pX3Rha2VGaW5kU3RyaW5nRnJvbVNlbGVjdGlvbjooaWQpc2Vu
ZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7
CiAKLUBwcm9wZXJ0eSAoY2xhc3MsIG5vbmF0b21pYywgY29weSwgc2V0dGVyPV9zZXRTdHJpbmdG
b3JGaW5kOikgTlNTdHJpbmcgKl9zdHJpbmdGb3JGaW5kIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotQHByb3BlcnR5IChub25hdG9taWMsIHJl
YWRvbmx5KSBfV0tTZWxlY3Rpb25BdHRyaWJ1dGVzIF9zZWxlY3Rpb25BdHRyaWJ1dGVzIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3Bl
cnR5IChjbGFzcywgbm9uYXRvbWljLCBjb3B5LCBzZXR0ZXI9X3NldFN0cmluZ0ZvckZpbmQ6KSBO
U1N0cmluZyAqX3N0cmluZ0ZvckZpbmQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJB
KSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgX1dL
U2VsZWN0aW9uQXR0cmlidXRlcyBfc2VsZWN0aW9uQXR0cmlidXRlcyBXS19BUElfQVZBSUxBQkxF
KG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiAjaWYgVEFSR0VUX09TX0lQ
SE9ORQogCkBAIC0zMDAsMjYgKzMwMCwyNiBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdl
ciwgX1dLUmVjdEVkZ2UpIHsKIC0gKHZvaWQpX2FjY2Vzc2liaWxpdHlSZXRyaWV2ZVNwZWFrU2Vs
ZWN0aW9uQ29udGVudCBXS19BUElfQVZBSUxBQkxFKGlvcygxMS4wKSk7CiAtICh2b2lkKV9hY2Nl
c3NpYmlsaXR5RGlkR2V0U3BlYWtTZWxlY3Rpb25Db250ZW50OihOU1N0cmluZyAqKWNvbnRlbnQg
V0tfQVBJX0FWQUlMQUJMRShpb3MoMTEuMCkpOwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVh
ZG9ubHkpIFVJVmlldyAqX3NhZmVCcm93c2luZ1dhcm5pbmcgV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywg
cmVhZG9ubHkpIFVJVmlldyAqX3NhZmVCcm93c2luZ1dhcm5pbmcgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKICNlbHNlCi1AcHJvcGVydHkgKG5v
bmF0b21pYywgcmVhZG9ubHkpIE5TVmlldyAqX3NhZmVCcm93c2luZ1dhcm5pbmcgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkg
KG5vbmF0b21pYywgcmVhZG9ubHkpIE5TVmlldyAqX3NhZmVCcm93c2luZ1dhcm5pbmcgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAotQHByb3Bl
cnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBfV0tSZWN0RWRnZSBfcGlubmVkU3RhdGUgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCkpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRl
cj1fc2V0UnViYmVyQmFuZGluZ0VuYWJsZWQ6KSBfV0tSZWN0RWRnZSBfcnViYmVyQmFuZGluZ0Vu
YWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCkpOworQHByb3BlcnR5IChub25h
dG9taWMsIHJlYWRvbmx5KSBfV0tSZWN0RWRnZSBfcGlubmVkU3RhdGUgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMC4xMy40KSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRSdWJi
ZXJCYW5kaW5nRW5hYmxlZDopIF9XS1JlY3RFZGdlIF9ydWJiZXJCYW5kaW5nRW5hYmxlZCBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKIAogQHByb3BlcnR5IChyZWFkb25seSkgTlND
b2xvciAqX3BhZ2VFeHRlbmRlZEJhY2tncm91bmRDb2xvcjsKLUBwcm9wZXJ0eSAobm9uYXRvbWlj
LCBzZXR0ZXI9X3NldEJhY2tncm91bmRDb2xvcjopIE5TQ29sb3IgKl9iYWNrZ3JvdW5kQ29sb3Ig
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTQpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBz
ZXR0ZXI9X3NldEJhY2tncm91bmRDb2xvcjopIE5TQ29sb3IgKl9iYWNrZ3JvdW5kQ29sb3IgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRl
cj1fc2V0RHJhd3NCYWNrZ3JvdW5kOikgQk9PTCBfZHJhd3NCYWNrZ3JvdW5kOwogQHByb3BlcnR5
IChub25hdG9taWMsIHNldHRlcj1fc2V0VG9wQ29udGVudEluc2V0OikgQ0dGbG9hdCBfdG9wQ29u
dGVudEluc2V0OwogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBdXRvbWF0aWNh
bGx5QWRqdXN0c0NvbnRlbnRJbnNldHM6KSBCT09MIF9hdXRvbWF0aWNhbGx5QWRqdXN0c0NvbnRl
bnRJbnNldHM7CiAKIC8vIERlZmF1bHQgdmFsdWUgaXMgMC4gQSB2YWx1ZSBvZiAwIG1lYW5zIHRo
ZSB3aW5kb3cncyBiYWNraW5nIHNjYWxlIGZhY3RvciB3aWxsIGJlIHVzZWQgYW5kIGF1dG9tYXRp
Y2FsbHkgdXBkYXRlIHdoZW4gdGhlIHdpbmRvdyBtb3ZlcyBzY3JlZW5zLgotQHByb3BlcnR5IChu
b25hdG9taWMsIHNldHRlcj1fc2V0T3ZlcnJpZGVEZXZpY2VTY2FsZUZhY3RvcjopIENHRmxvYXQg
X292ZXJyaWRlRGV2aWNlU2NhbGVGYWN0b3IgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEp
KTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldE92ZXJyaWRlRGV2aWNlU2NhbGVG
YWN0b3I6KSBDR0Zsb2F0IF9vdmVycmlkZURldmljZVNjYWxlRmFjdG9yIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTAuMTEpKTsKIAogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0V2lu
ZG93T2NjbHVzaW9uRGV0ZWN0aW9uRW5hYmxlZDopIEJPT0wgX3dpbmRvd09jY2x1c2lvbkRldGVj
dGlvbkVuYWJsZWQ7CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNJbnRlZ2Vy
IF9zcGVsbENoZWNrZXJEb2N1bWVudFRhZyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xNCkp
OworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU0ludGVnZXIgX3NwZWxsQ2hlY2tl
ckRvY3VtZW50VGFnIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpKTsKIAogLSAodm9pZClf
c2V0U2hvdWxkU3VwcHJlc3NGaXJzdFJlc3BvbmRlckNoYW5nZXM6KEJPT0wpc2hvdWxkU3VwcHJl
c3M7CiAKQEAgLTMyNyw0NiArMzI3LDQ2IEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2Vy
LCBfV0tSZWN0RWRnZSkgewogLy8gZG8gc29tZXRoaW5nIGN1c3RvbSwgcmV0dXJuIGFuIG9iamVj
dCB0aGF0IGNvbmZvcm1zIHRvIHRoZSBOU0ltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xs
ZXIgcHJvdG9jb2wuCiAtIChpZClfaW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29udHJvbGxlckZv
ckhpdFRlc3RSZXN1bHQ6KF9XS0hpdFRlc3RSZXN1bHQgKiloaXRUZXN0UmVzdWx0IHdpdGhUeXBl
OihfV0tJbW1lZGlhdGVBY3Rpb25UeXBlKXR5cGUgdXNlckRhdGE6KGlkPE5TU2VjdXJlQ29kaW5n
Pil1c2VyRGF0YTsKIAotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0TWluaW11bUxh
eW91dFdpZHRoOikgQ0dGbG9hdCBfbWluaW11bUxheW91dFdpZHRoIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3N4KDEwLjEyKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRNaW5pbXVt
TGF5b3V0V2lkdGg6KSBDR0Zsb2F0IF9taW5pbXVtTGF5b3V0V2lkdGggV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMC4xMikpOwogCiAvLyBXaGVuIHVzaW5nIF9taW5pbXVtTGF5b3V0V2lkdGgsIHRo
ZSB3ZWIgY29udGVudCB3aWxsIGxheSBvdXQgdG8gdGhlIGludHJpbnNpYyBoZWlnaHQKIC8vIG9m
IHRoZSBjb250ZW50OyB1c2UgdGhpcyBwcm9wZXJ0eSB0byBmb3JjZSBpdCB0byBsYXkgb3V0IHRv
IHRoZSBoZWlnaHQgb2YgdGhlIHZpZXcgaW5zdGVhZC4KLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBz
ZXR0ZXI9X3NldFNob3VsZEV4cGFuZENvbnRlbnRUb1ZpZXdIZWlnaHRGb3JBdXRvTGF5b3V0Oikg
Qk9PTCBfc2hvdWxkRXhwYW5kQ29udGVudFRvVmlld0hlaWdodEZvckF1dG9MYXlvdXQgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvc3goMTAuMTIpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9
X3NldFNob3VsZEV4cGFuZENvbnRlbnRUb1ZpZXdIZWlnaHRGb3JBdXRvTGF5b3V0OikgQk9PTCBf
c2hvdWxkRXhwYW5kQ29udGVudFRvVmlld0hlaWdodEZvckF1dG9MYXlvdXQgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xMikpOwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRB
bHdheXNTaG93c0hvcml6b250YWxTY3JvbGxlcjopIEJPT0wgX2Fsd2F5c1Nob3dzSG9yaXpvbnRh
bFNjcm9sbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpKTsKLUBwcm9wZXJ0eSAo
bm9uYXRvbWljLCBzZXR0ZXI9X3NldEFsd2F5c1Nob3dzVmVydGljYWxTY3JvbGxlcjopIEJPT0wg
X2Fsd2F5c1Nob3dzVmVydGljYWxTY3JvbGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4x
My40KSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBbHdheXNTaG93c0hvcml6
b250YWxTY3JvbGxlcjopIEJPT0wgX2Fsd2F5c1Nob3dzSG9yaXpvbnRhbFNjcm9sbGVyIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRl
cj1fc2V0QWx3YXlzU2hvd3NWZXJ0aWNhbFNjcm9sbGVyOikgQk9PTCBfYWx3YXlzU2hvd3NWZXJ0
aWNhbFNjcm9sbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOwogCiAtIChOU1By
aW50T3BlcmF0aW9uICopX3ByaW50T3BlcmF0aW9uV2l0aFByaW50SW5mbzooTlNQcmludEluZm8g
KilwcmludEluZm87Ci0tIChOU1ByaW50T3BlcmF0aW9uICopX3ByaW50T3BlcmF0aW9uV2l0aFBy
aW50SW5mbzooTlNQcmludEluZm8gKilwcmludEluZm8gZm9yRnJhbWU6KF9XS0ZyYW1lSGFuZGxl
ICopZnJhbWVIYW5kbGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3MoMTAuMCkp
OworLSAoTlNQcmludE9wZXJhdGlvbiAqKV9wcmludE9wZXJhdGlvbldpdGhQcmludEluZm86KE5T
UHJpbnRJbmZvICopcHJpbnRJbmZvIGZvckZyYW1lOihfV0tGcmFtZUhhbmRsZSAqKWZyYW1lSGFu
ZGxlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOwogCiAvLyBGSVhN
RTogVGhpcyBTUEkgc2hvdWxkIGJlY29tZSBhIHBhcnQgb2YgdGhlIFdLVUlEZWxlZ2F0ZS4gcmRh
cjovL3Byb2JsZW0vMjY1NjE1MzcKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkd3JpdGUsIHNl
dHRlcj1fc2V0V2FudHNNZWRpYVBsYXliYWNrQ29udHJvbHNWaWV3OikgQk9PTCBfd2FudHNNZWRp
YVBsYXliYWNrQ29udHJvbHNWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyLjMpKTsK
LUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgaWQgX21lZGlhUGxheWJhY2tDb250cm9s
c1ZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMpKTsKLS0gKHZvaWQpX2FkZE1lZGlh
UGxheWJhY2tDb250cm9sc1ZpZXc6KGlkKW1lZGlhUGxheWJhY2tDb250cm9sc1ZpZXcgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvc3goMTAuMTMpKTsKLS0gKHZvaWQpX3JlbW92ZU1lZGlhUGxheWJhY2tD
b250cm9sc1ZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIuMykpOworQHByb3BlcnR5
IChub25hdG9taWMsIHJlYWR3cml0ZSwgc2V0dGVyPV9zZXRXYW50c01lZGlhUGxheWJhY2tDb250
cm9sc1ZpZXc6KSBCT09MIF93YW50c01lZGlhUGxheWJhY2tDb250cm9sc1ZpZXcgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMC4xMi4zKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkp
IGlkIF9tZWRpYVBsYXliYWNrQ29udHJvbHNWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAu
MTMpKTsKKy0gKHZvaWQpX2FkZE1lZGlhUGxheWJhY2tDb250cm9sc1ZpZXc6KGlkKW1lZGlhUGxh
eWJhY2tDb250cm9sc1ZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMykpOworLSAodm9p
ZClfcmVtb3ZlTWVkaWFQbGF5YmFja0NvbnRyb2xzVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29z
KDEwLjEyLjMpKTsKIAotLSAodm9pZClfcHJlcGFyZUZvck1vdmVUb1dpbmRvdzooTlNXaW5kb3cg
Kil0YXJnZXRXaW5kb3cgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikodm9pZCkpY29tcGxldGlv
bkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMpKTsKKy0gKHZvaWQpX3ByZXBh
cmVGb3JNb3ZlVG9XaW5kb3c6KE5TV2luZG93ICopdGFyZ2V0V2luZG93IGNvbXBsZXRpb25IYW5k
bGVyOih2b2lkKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTAuMTMpKTsKIAotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0T3ZlcmxheVNj
cm9sbGJhclN0eWxlOikgX1dLT3ZlcmxheVNjcm9sbGJhclN0eWxlIF9vdmVybGF5U2Nyb2xsYmFy
U3R5bGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCkpOwotQHByb3BlcnR5IChzdHJv
bmcsIG5vbmF0b21pYywgc2V0dGVyPV9zZXRJbnNwZWN0b3JBdHRhY2htZW50VmlldzopIE5TVmll
dyAqX2luc3BlY3RvckF0dGFjaG1lbnRWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEz
LjQpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldE92ZXJsYXlTY3JvbGxiYXJT
dHlsZTopIF9XS092ZXJsYXlTY3JvbGxiYXJTdHlsZSBfb3ZlcmxheVNjcm9sbGJhclN0eWxlIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOworQHByb3BlcnR5IChzdHJvbmcsIG5vbmF0
b21pYywgc2V0dGVyPV9zZXRJbnNwZWN0b3JBdHRhY2htZW50VmlldzopIE5TVmlldyAqX2luc3Bl
Y3RvckF0dGFjaG1lbnRWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOwogCi1A
cHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRUaHVtYm5haWxWaWV3OikgX1dLVGh1bWJu
YWlsVmlldyAqX3RodW1ibmFpbFZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCkp
OwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0SWdub3Jlc0FsbEV2ZW50czopIEJP
T0wgX2lnbm9yZXNBbGxFdmVudHMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCkpOwor
QHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0VGh1bWJuYWlsVmlldzopIF9XS1RodW1i
bmFpbFZpZXcgKl90aHVtYm5haWxWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkp
OworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0SWdub3Jlc0FsbEV2ZW50czopIEJP
T0wgX2lnbm9yZXNBbGxFdmVudHMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CiAK
ICNlbmRpZgogCi0tIChXS05hdmlnYXRpb24gKilfcmVsb2FkV2l0aG91dENvbnRlbnRCbG9ja2Vy
cyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMiksIGlvcygxMC4wKSk7Ci0tIChXS05hdmln
YXRpb24gKilfcmVsb2FkRXhwaXJlZE9ubHkgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMp
LCBpb3MoMTEuMCkpOworLSAoV0tOYXZpZ2F0aW9uICopX3JlbG9hZFdpdGhvdXRDb250ZW50Qmxv
Y2tlcnMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CistIChXS05h
dmlnYXRpb24gKilfcmVsb2FkRXhwaXJlZE9ubHkgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4x
MyksIGlvcygxMS4wKSk7CiAKIC0gKHZvaWQpX2tpbGxXZWJDb250ZW50UHJvY2VzczsKIC0gKHZv
aWQpX2tpbGxXZWJDb250ZW50UHJvY2Vzc0FuZFJlc2V0U3RhdGU7CiAKIC0gKHZvaWQpX2dldE1h
aW5SZXNvdXJjZURhdGFXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TRGF0YSAqLCBO
U0Vycm9yICopKWNvbXBsZXRpb25IYW5kbGVyOwogLSAodm9pZClfZ2V0V2ViQXJjaGl2ZURhdGFX
aXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TRGF0YSAqLCBOU0Vycm9yICopKWNvbXBs
ZXRpb25IYW5kbGVyOwotLSAodm9pZClfZ2V0Q29udGVudHNBc1N0cmluZ1dpdGhDb21wbGV0aW9u
SGFuZGxlcjoodm9pZCAoXikoTlNTdHJpbmcgKiwgTlNFcnJvciAqKSljb21wbGV0aW9uSGFuZGxl
ciBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7Ci0tICh2b2lkKV9n
ZXRDb250ZW50c0FzQXR0cmlidXRlZFN0cmluZ1dpdGhDb21wbGV0aW9uSGFuZGxlcjoodm9pZCAo
XikoTlNBdHRyaWJ1dGVkU3RyaW5nICosIE5TRGljdGlvbmFyeTxOU0F0dHJpYnV0ZWRTdHJpbmdE
b2N1bWVudEF0dHJpYnV0ZUtleSwgaWQ+ICosIE5TRXJyb3IgKikpY29tcGxldGlvbkhhbmRsZXIg
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Cist
ICh2b2lkKV9nZXRDb250ZW50c0FzU3RyaW5nV2l0aENvbXBsZXRpb25IYW5kbGVyOih2b2lkIChe
KShOU1N0cmluZyAqLCBOU0Vycm9yICopKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpOworLSAodm9pZClfZ2V0Q29udGVudHNBc0F0dHJp
YnV0ZWRTdHJpbmdXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TQXR0cmlidXRlZFN0
cmluZyAqLCBOU0RpY3Rpb25hcnk8TlNBdHRyaWJ1dGVkU3RyaW5nRG9jdW1lbnRBdHRyaWJ1dGVL
ZXksIGlkPiAqLCBOU0Vycm9yICopKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKLS0gKHZvaWQpX2dldEFwcGxp
Y2F0aW9uTWFuaWZlc3RXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKF9XS0FwcGxpY2F0
aW9uTWFuaWZlc3QgKikpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3go
MTAuMTMuNCksIGlvcygxMS4zKSk7CistICh2b2lkKV9nZXRBcHBsaWNhdGlvbk1hbmlmZXN0V2l0
aENvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShfV0tBcHBsaWNhdGlvbk1hbmlmZXN0ICopKWNv
bXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4z
KSk7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFBhZ2luYXRpb25Nb2RlOikg
X1dLUGFnaW5hdGlvbk1vZGUgX3BhZ2luYXRpb25Nb2RlOwogLy8gV2hldGhlciB0aGUgY29sdW1u
LWJyZWFrLXtiZWZvcmUsYWZ0ZXJ9IHByb3BlcnRpZXMgYXJlIHJlc3BlY3RlZCBpbnN0ZWFkIG9m
IHRoZQpAQCAtMzgyLDM2ICszODIsMzYgQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIs
IF9XS1JlY3RFZGdlKSB7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRUZXh0Wm9v
bUZhY3RvcjopIGRvdWJsZSBfdGV4dFpvb21GYWN0b3I7CiBAcHJvcGVydHkgKG5vbmF0b21pYywg
c2V0dGVyPV9zZXRQYWdlWm9vbUZhY3RvcjopIGRvdWJsZSBfcGFnZVpvb21GYWN0b3I7CiAKLUBw
cm9wZXJ0eSAobm9uYXRvbWljLCB3ZWFrLCBzZXR0ZXI9X3NldERpYWdub3N0aWNMb2dnaW5nRGVs
ZWdhdGU6KSBpZCA8X1dLRGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZT4gX2RpYWdub3N0aWNMb2dn
aW5nRGVsZWdhdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CitA
cHJvcGVydHkgKG5vbmF0b21pYywgd2Vhaywgc2V0dGVyPV9zZXREaWFnbm9zdGljTG9nZ2luZ0Rl
bGVnYXRlOikgaWQgPF9XS0RpYWdub3N0aWNMb2dnaW5nRGVsZWdhdGU+IF9kaWFnbm9zdGljTG9n
Z2luZ0RlbGVnYXRlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTEpLCBpb3MoOS4wKSk7CiBA
cHJvcGVydHkgKG5vbmF0b21pYywgd2Vhaywgc2V0dGVyPV9zZXRGaW5kRGVsZWdhdGU6KSBpZCA8
X1dLRmluZERlbGVnYXRlPiBfZmluZERlbGVnYXRlOwogLSAodm9pZClfZmluZFN0cmluZzooTlNT
dHJpbmcgKilzdHJpbmcgb3B0aW9uczooX1dLRmluZE9wdGlvbnMpb3B0aW9ucyBtYXhDb3VudDoo
TlNVSW50ZWdlciltYXhDb3VudDsKIC0gKHZvaWQpX2NvdW50U3RyaW5nTWF0Y2hlczooTlNTdHJp
bmcgKilzdHJpbmcgb3B0aW9uczooX1dLRmluZE9wdGlvbnMpb3B0aW9ucyBtYXhDb3VudDooTlNV
SW50ZWdlciltYXhDb3VudDsKIC0gKHZvaWQpX2hpZGVGaW5kVUk7CiAKLUBwcm9wZXJ0eSAobm9u
YXRvbWljLCB3ZWFrLCBzZXR0ZXI9X3NldElucHV0RGVsZWdhdGU6KSBpZCA8X1dLSW5wdXREZWxl
Z2F0ZT4gX2lucHV0RGVsZWdhdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3Mo
MTAuMCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHdlYWssIHNldHRlcj1fc2V0SW5wdXREZWxl
Z2F0ZTopIGlkIDxfV0tJbnB1dERlbGVnYXRlPiBfaW5wdXREZWxlZ2F0ZSBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKIAogQHByb3BlcnR5IChub25hdG9taWMsIHJl
YWRvbmx5LCBnZXR0ZXI9X2lzRGlzcGxheWluZ1N0YW5kYWxvbmVJbWFnZURvY3VtZW50KSBCT09M
IF9kaXNwbGF5aW5nU3RhbmRhbG9uZUltYWdlRG9jdW1lbnQ7CiBAcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZG9ubHksIGdldHRlcj1faXNEaXNwbGF5aW5nU3RhbmRhbG9uZU1lZGlhRG9jdW1lbnQp
IEJPT0wgX2Rpc3BsYXlpbmdTdGFuZGFsb25lTWVkaWFEb2N1bWVudDsKIAotQHByb3BlcnR5IChu
b25hdG9taWMsIHNldHRlcj1fc2V0U2Nyb2xsUGVyZm9ybWFuY2VEYXRhQ29sbGVjdGlvbkVuYWJs
ZWQ6KSBCT09MIF9zY3JvbGxQZXJmb3JtYW5jZURhdGFDb2xsZWN0aW9uRW5hYmxlZCBXS19BUElf
QVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWlj
LCByZWFkb25seSkgTlNBcnJheSAqX3Njcm9sbFBlcmZvcm1hbmNlRGF0YSBXS19BUElfQVZBSUxB
QkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0
ZXI9X3NldFNjcm9sbFBlcmZvcm1hbmNlRGF0YUNvbGxlY3Rpb25FbmFibGVkOikgQk9PTCBfc2Ny
b2xsUGVyZm9ybWFuY2VEYXRhQ29sbGVjdGlvbkVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMC4xMSksIGlvcyg5LjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNB
cnJheSAqX3Njcm9sbFBlcmZvcm1hbmNlRGF0YSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEx
KSwgaW9zKDkuMCkpOwogCi0tICh2b2lkKV9zYXZlQmFja0ZvcndhcmRTbmFwc2hvdEZvckl0ZW06
KFdLQmFja0ZvcndhcmRMaXN0SXRlbSAqKWl0ZW0gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAu
MTEpLCBpb3MoOS4wKSk7CistICh2b2lkKV9zYXZlQmFja0ZvcndhcmRTbmFwc2hvdEZvckl0ZW06
KFdLQmFja0ZvcndhcmRMaXN0SXRlbSAqKWl0ZW0gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4x
MSksIGlvcyg5LjApKTsKIAogQHByb3BlcnR5IChub25hdG9taWMsIGdldHRlcj1fYWxsb3dzTWVk
aWFEb2N1bWVudElubGluZVBsYXliYWNrLCBzZXR0ZXI9X3NldEFsbG93c01lZGlhRG9jdW1lbnRJ
bmxpbmVQbGF5YmFjazopIEJPT0wgX2FsbG93c01lZGlhRG9jdW1lbnRJbmxpbmVQbGF5YmFjazsK
IAotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF93ZWJQcm9jZXNzSXNSZXNw
b25zaXZlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfd2ViUHJvY2Vzc0lzUmVzcG9uc2l2ZSBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKIAotQHByb3BlcnR5IChu
b25hdG9taWMsIHNldHRlcj1fc2V0RnVsbHNjcmVlbkRlbGVnYXRlOikgaWQ8X1dLRnVsbHNjcmVl
bkRlbGVnYXRlPiBfZnVsbHNjcmVlbkRlbGVnYXRlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEw
LjEzKSwgaW9zKDExLjApKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBf
aXNJbkZ1bGxzY3JlZW4gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIuMykpOworQHByb3Bl
cnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0RnVsbHNjcmVlbkRlbGVnYXRlOikgaWQ8X1dLRnVs
bHNjcmVlbkRlbGVnYXRlPiBfZnVsbHNjcmVlbkRlbGVnYXRlIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTAuMTMpLCBpb3MoMTEuMCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBC
T09MIF9pc0luRnVsbHNjcmVlbiBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyLjMpKTsKIAot
QHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBfV0tNZWRpYUNhcHR1cmVTdGF0ZSBfbWVk
aWFDYXB0dXJlU3RhdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhX
S19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIF9XS01lZGlhQ2Fw
dHVyZVN0YXRlIF9tZWRpYUNhcHR1cmVTdGF0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01B
Q19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCi0tICh2b2lkKV9zZXRNZWRpYUNhcHR1cmVNdXRl
ZDooQk9PTCltdXRlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdL
X0lPU19UQkEpKTsKLS0gKHZvaWQpX211dGVNZWRpYUNhcHR1cmUgV0tfQVBJX0FWQUlMQUJMRSht
YWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpOwotLSAodm9pZClfc2V0UGFnZU11dGVkOihfV0tNZWRp
YU11dGVkU3RhdGUpbXV0ZWRTdGF0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlv
cygxMS4wKSk7CistICh2b2lkKV9zZXRNZWRpYUNhcHR1cmVNdXRlZDooQk9PTCltdXRlZCBXS19B
UElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9p
ZClfbXV0ZU1lZGlhQ2FwdHVyZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDEx
LjApKTsKKy0gKHZvaWQpX3NldFBhZ2VNdXRlZDooX1dLTWVkaWFNdXRlZFN0YXRlKW11dGVkU3Rh
dGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSk7CiAKLUBwcm9wZXJ0
eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldE1lZGlhQ2FwdHVyZUVuYWJsZWQ6KSBCT09MIF9tZWRp
YUNhcHR1cmVFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzKSwgaW9zKDExLjAp
KTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldE1lZGlhQ2FwdHVyZUVuYWJsZWQ6
KSBCT09MIF9tZWRpYUNhcHR1cmVFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMp
LCBpb3MoMTEuMCkpOwogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgX2Nh
blRvZ2dsZVBpY3R1cmVJblBpY3R1cmU7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkp
IEJPT0wgX2lzUGljdHVyZUluUGljdHVyZUFjdGl2ZTsKQEAgLTQyMSw4ICs0MjEsOCBAQCB0eXBl
ZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dLUmVjdEVkZ2UpIHsKIC0gKHZvaWQpX3N1c3Bl
bmRBbGxNZWRpYVBsYXliYWNrOwogLSAodm9pZClfcmVzdW1lQWxsTWVkaWFQbGF5YmFjazsKIAot
LSAodm9pZClfcmVxdWVzdFRleHRJbnB1dENvbnRleHRzSW5SZWN0OihDR1JlY3QpcmVjdCBjb21w
bGV0aW9uSGFuZGxlcjoodm9pZCheKShOU0FycmF5PF9XS1RleHRJbnB1dENvbnRleHQgKj4gKikp
Y29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7Ci0tICh2b2lkKV9mb2N1c1RleHRJbnB1dENvbnRleHQ6KF9XS1RleHRJ
bnB1dENvbnRleHQgKil0ZXh0SW5wdXRFbGVtZW50IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4p
KEJPT0wpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19U
QkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfcmVxdWVzdFRleHRJbnB1dENvbnRleHRz
SW5SZWN0OihDR1JlY3QpcmVjdCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKShOU0FycmF5PF9X
S1RleHRJbnB1dENvbnRleHQgKj4gKikpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX2ZvY3VzVGV4
dElucHV0Q29udGV4dDooX1dLVGV4dElucHV0Q29udGV4dCAqKXRleHRJbnB1dEVsZW1lbnQgY29t
cGxldGlvbkhhbmRsZXI6KHZvaWQoXikoQk9PTCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogQGVuZAogCkBA
IC00NDAsNyArNDQwLDcgQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS1JlY3RF
ZGdlKSB7CiAKIEBpbnRlcmZhY2UgV0tXZWJWaWV3IChXS1Rlc3RpbmcpCiAKLS0gKE5TRGljdGlv
bmFyeSAqKV9jb250ZW50c09mVXNlckludGVyZmFjZUl0ZW06KE5TU3RyaW5nICopdXNlckludGVy
ZmFjZUl0ZW0gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIuMyksIGlvcygxMC4zKSk7Cist
IChOU0RpY3Rpb25hcnkgKilfY29udGVudHNPZlVzZXJJbnRlcmZhY2VJdGVtOihOU1N0cmluZyAq
KXVzZXJJbnRlcmZhY2VJdGVtIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIuMyksIGlvcygx
MC4zKSk7CiAKICNpZiBUQVJHRVRfT1NfSVBIT05FCiAKQEAgLTQ4OCw3MSArNDg4LDcxIEBAIHR5
cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tSZWN0RWRnZSkgewogCiBAcHJvcGVydHkg
KG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgX2NvbnRlbnRWaWV3SXNGaXJzdFJlc3BvbmRlciBX
S19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CiAjZWxzZQotLSAodm9pZClfZGlzbWlz
c0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93cyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4x
My40KSk7Ci0tICh2b2lkKV9zZXRGcmFtZTooTlNSZWN0KXJlY3QgYW5kU2Nyb2xsQnk6KE5TU2l6
ZSlvZmZzZXQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCkpOwotLSAodm9pZClfYmVn
aW5EZWZlcnJpbmdWaWV3SW5XaW5kb3dDaGFuZ2VzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEw
LjEzLjQpKTsKLS0gKHZvaWQpX2VuZERlZmVycmluZ1ZpZXdJbldpbmRvd0NoYW5nZXMgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCkpOwotLSAodm9pZClfZW5kRGVmZXJyaW5nVmlld0lu
V2luZG93Q2hhbmdlc1N5bmMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCkpOwotLSAo
dm9pZClfZ2VzdHVyZUV2ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29yZTooTlNFdmVudCAqKWV2ZW50
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpKTsKLS0gKHZvaWQpX3NldEN1c3RvbVN3
aXBlVmlld3M6KE5TQXJyYXkgKiljdXN0b21Td2lwZVZpZXdzIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KDEwLjEzLjQpKTsKLS0gKHZvaWQpX3NldEN1c3RvbVN3aXBlVmlld3NUb3BDb250ZW50SW5z
ZXQ6KGZsb2F0KXRvcENvbnRlbnRJbnNldCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40
KSk7Ci0tIChOU1ZpZXcgKilfZnVsbFNjcmVlblBsYWNlaG9sZGVyVmlldyBXS19BUElfQVZBSUxB
QkxFKG1hY29zeCgxMC4xMy40KSk7Ci0tIChOU1dpbmRvdyAqKV9mdWxsU2NyZWVuV2luZG93IFdL
X0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpKTsKLS0gKHZvaWQpX2Rpc2FibGVGcmFtZVNp
emVVcGRhdGVzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpKTsKLS0gKHZvaWQpX2Vu
YWJsZUZyYW1lU2l6ZVVwZGF0ZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCkpOwot
LSAodm9pZClfcHJlcGFyZUZvckltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbiBXS19BUElfQVZBSUxB
QkxFKG1hY29zeCgxMC4xMy40KSk7Ci0tICh2b2lkKV9jYW5jZWxJbW1lZGlhdGVBY3Rpb25Bbmlt
YXRpb24gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCkpOwotLSAodm9pZClfY29tcGxl
dGVJbW1lZGlhdGVBY3Rpb25BbmltYXRpb24gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMu
NCkpOwotLSAoQk9PTClfY2FuQ2hhbmdlRnJhbWVMYXlvdXQ6KF9XS0ZyYW1lSGFuZGxlICopZnJh
bWVIYW5kbGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCkpOwotLSAoQk9PTClfdHJ5
VG9Td2lwZVdpdGhFdmVudDooTlNFdmVudCAqKWV2ZW50IGlnbm9yaW5nUGlubmVkU3RhdGU6KEJP
T0wpaWdub3JpbmdQaW5uZWRTdGF0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSk7
Ci0tICh2b2lkKV9zZXREaWRNb3ZlU3dpcGVTbmFwc2hvdENhbGxiYWNrOih2b2lkKF4pKENHUmVj
dCkpY2FsbGJhY2sgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCkpOwotQHByb3BlcnR5
IChub25hdG9taWMsIHNldHRlcj1fc2V0VG90YWxIZWlnaHRPZkJhbm5lcnM6KSBDR0Zsb2F0IF90
b3RhbEhlaWdodE9mQmFubmVycyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSk7Ci1A
cHJvcGVydHkgKG5vbmF0b21pYywgY29weSwgc2V0dGVyPV9zZXRVbmRlcmxheUNvbG9yOikgTlND
b2xvciAqX3VuZGVybGF5Q29sb3IgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCkpOwot
QHByb3BlcnR5IChub25hdG9taWMsIHJlYWR3cml0ZSwgc2V0dGVyPV9zZXRJZ25vcmVzTm9uV2hl
ZWxFdmVudHM6KSBCT09MIF9pZ25vcmVzTm9uV2hlZWxFdmVudHMgV0tfQVBJX0FWQUlMQUJMRSht
YWNvc3goMTAuMTMuNCkpOwotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBXS1BhZ2VS
ZWYgX3BhZ2VSZWZGb3JUcmFuc2l0aW9uVG9XS1dlYlZpZXcgIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KDEwLjEzLjQpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfaGFz
QWN0aXZlVmlkZW9Gb3JDb250cm9sc01hbmFnZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAu
MTIpKTsKLS0gKHZvaWQpX3JlcXVlc3RDb250cm9sbGVkRWxlbWVudElEIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3N4KDEwLjEyLjMpKTsKLS0gKHZvaWQpX2hhbmRsZUNvbnRyb2xsZWRFbGVtZW50SURS
ZXNwb25zZTooTlNTdHJpbmcgKilpZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEw
LjEyLjMpKTsKLS0gKHZvaWQpX2hhbmRsZUFjY2VwdGVkQ2FuZGlkYXRlOihOU1RleHRDaGVja2lu
Z1Jlc3VsdCAqKWNhbmRpZGF0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMi4zKSk7Ci0t
ICh2b2lkKV9kaWRIYW5kbGVBY2NlcHRlZENhbmRpZGF0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29z
eCgxMC4xMi4zKSk7Ci0tICh2b2lkKV9mb3JjZVJlcXVlc3RDYW5kaWRhdGVzIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KDEwLjEyLjMpKTsKLS0gKHZvaWQpX2RpZFVwZGF0ZUNhbmRpZGF0ZUxpc3RW
aXNpYmlsaXR5OihCT09MKXZpc2libGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIuMykp
OwotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF9zaG91bGRSZXF1ZXN0Q2Fu
ZGlkYXRlcyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMi4zKSk7Ci0tICh2b2lkKV9pbnNl
cnRUZXh0OihpZClzdHJpbmcgcmVwbGFjZW1lbnRSYW5nZTooTlNSYW5nZSlyZXBsYWNlbWVudFJh
bmdlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyLjMpKTsKLS0gKE5TUmVjdClfY2FuZGlk
YXRlUmVjdCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMykpOwotQHByb3BlcnR5IChub25h
dG9taWMsIHJlYWR3cml0ZSwgc2V0dGVyPV9zZXRVc2VTeXN0ZW1BcHBlYXJhbmNlOikgQk9PTCBf
dXNlU3lzdGVtQXBwZWFyYW5jZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xNCkpOwotCi0t
ICh2b2lkKV9zZXRIZWFkZXJCYW5uZXJIZWlnaHQ6KGludCloZWlnaHQgV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goMTAuMTIuMykpOwotLSAodm9pZClfc2V0Rm9vdGVyQmFubmVySGVpZ2h0OihpbnQp
aGVpZ2h0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyLjMpKTsKLS0gKHZvaWQpX2RvQWZ0
ZXJQcm9jZXNzaW5nQWxsUGVuZGluZ01vdXNlRXZlbnRzOihkaXNwYXRjaF9ibG9ja190KWFjdGlv
biBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSk7CistICh2b2lkKV9kaXNtaXNz
Q29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMu
NCkpOworLSAodm9pZClfc2V0RnJhbWU6KE5TUmVjdClyZWN0IGFuZFNjcm9sbEJ5OihOU1NpemUp
b2Zmc2V0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOworLSAodm9pZClfYmVnaW5E
ZWZlcnJpbmdWaWV3SW5XaW5kb3dDaGFuZ2VzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMu
NCkpOworLSAodm9pZClfZW5kRGVmZXJyaW5nVmlld0luV2luZG93Q2hhbmdlcyBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKKy0gKHZvaWQpX2VuZERlZmVycmluZ1ZpZXdJbldpbmRv
d0NoYW5nZXNTeW5jIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOworLSAodm9pZClf
Z2VzdHVyZUV2ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29yZTooTlNFdmVudCAqKWV2ZW50IFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOworLSAodm9pZClfc2V0Q3VzdG9tU3dpcGVWaWV3
czooTlNBcnJheSAqKWN1c3RvbVN3aXBlVmlld3MgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4x
My40KSk7CistICh2b2lkKV9zZXRDdXN0b21Td2lwZVZpZXdzVG9wQ29udGVudEluc2V0OihmbG9h
dCl0b3BDb250ZW50SW5zZXQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CistIChO
U1ZpZXcgKilfZnVsbFNjcmVlblBsYWNlaG9sZGVyVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29z
KDEwLjEzLjQpKTsKKy0gKE5TV2luZG93ICopX2Z1bGxTY3JlZW5XaW5kb3cgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xMy40KSk7CistICh2b2lkKV9kaXNhYmxlRnJhbWVTaXplVXBkYXRlcyBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKKy0gKHZvaWQpX2VuYWJsZUZyYW1lU2l6
ZVVwZGF0ZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CistICh2b2lkKV9wcmVw
YXJlRm9ySW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAu
MTMuNCkpOworLSAodm9pZClfY2FuY2VsSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOworLSAodm9pZClfY29tcGxldGVJbW1lZGlhdGVBY3Rp
b25BbmltYXRpb24gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CistIChCT09MKV9j
YW5DaGFuZ2VGcmFtZUxheW91dDooX1dLRnJhbWVIYW5kbGUgKilmcmFtZUhhbmRsZSBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKKy0gKEJPT0wpX3RyeVRvU3dpcGVXaXRoRXZlbnQ6
KE5TRXZlbnQgKilldmVudCBpZ25vcmluZ1Bpbm5lZFN0YXRlOihCT09MKWlnbm9yaW5nUGlubmVk
U3RhdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CistICh2b2lkKV9zZXREaWRN
b3ZlU3dpcGVTbmFwc2hvdENhbGxiYWNrOih2b2lkKF4pKENHUmVjdCkpY2FsbGJhY2sgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVy
PV9zZXRUb3RhbEhlaWdodE9mQmFubmVyczopIENHRmxvYXQgX3RvdGFsSGVpZ2h0T2ZCYW5uZXJz
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOworQHByb3BlcnR5IChub25hdG9taWMs
IGNvcHksIHNldHRlcj1fc2V0VW5kZXJsYXlDb2xvcjopIE5TQ29sb3IgKl91bmRlcmxheUNvbG9y
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOworQHByb3BlcnR5IChub25hdG9taWMs
IHJlYWR3cml0ZSwgc2V0dGVyPV9zZXRJZ25vcmVzTm9uV2hlZWxFdmVudHM6KSBCT09MIF9pZ25v
cmVzTm9uV2hlZWxFdmVudHMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CitAcHJv
cGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIFdLUGFnZVJlZiBfcGFnZVJlZkZvclRyYW5zaXRp
b25Ub1dLV2ViVmlldyAgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CitAcHJvcGVy
dHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgX2hhc0FjdGl2ZVZpZGVvRm9yQ29udHJvbHNN
YW5hZ2VyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpKTsKKy0gKHZvaWQpX3JlcXVlc3RD
b250cm9sbGVkRWxlbWVudElEIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIuMykpOworLSAo
dm9pZClfaGFuZGxlQ29udHJvbGxlZEVsZW1lbnRJRFJlc3BvbnNlOihOU1N0cmluZyAqKWlkZW50
aWZpZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMi4zKSk7CistICh2b2lkKV9oYW5kbGVB
Y2NlcHRlZENhbmRpZGF0ZTooTlNUZXh0Q2hlY2tpbmdSZXN1bHQgKiljYW5kaWRhdGUgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMC4xMi4zKSk7CistICh2b2lkKV9kaWRIYW5kbGVBY2NlcHRlZENh
bmRpZGF0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyLjMpKTsKKy0gKHZvaWQpX2ZvcmNl
UmVxdWVzdENhbmRpZGF0ZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMi4zKSk7CistICh2
b2lkKV9kaWRVcGRhdGVDYW5kaWRhdGVMaXN0VmlzaWJpbGl0eTooQk9PTCl2aXNpYmxlIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTIuMykpOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRv
bmx5KSBCT09MIF9zaG91bGRSZXF1ZXN0Q2FuZGlkYXRlcyBXS19BUElfQVZBSUxBQkxFKG1hY29z
KDEwLjEyLjMpKTsKKy0gKHZvaWQpX2luc2VydFRleHQ6KGlkKXN0cmluZyByZXBsYWNlbWVudFJh
bmdlOihOU1JhbmdlKXJlcGxhY2VtZW50UmFuZ2UgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4x
Mi4zKSk7CistIChOU1JlY3QpX2NhbmRpZGF0ZVJlY3QgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygx
MC4xMykpOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWR3cml0ZSwgc2V0dGVyPV9zZXRVc2VT
eXN0ZW1BcHBlYXJhbmNlOikgQk9PTCBfdXNlU3lzdGVtQXBwZWFyYW5jZSBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDEwLjE0KSk7CisKKy0gKHZvaWQpX3NldEhlYWRlckJhbm5lckhlaWdodDooaW50
KWhlaWdodCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyLjMpKTsKKy0gKHZvaWQpX3NldEZv
b3RlckJhbm5lckhlaWdodDooaW50KWhlaWdodCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEy
LjMpKTsKKy0gKHZvaWQpX2RvQWZ0ZXJQcm9jZXNzaW5nQWxsUGVuZGluZ01vdXNlRXZlbnRzOihk
aXNwYXRjaF9ibG9ja190KWFjdGlvbiBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEp
KTsKICNlbmRpZgogCi0tICh2b2lkKV9yZXF1ZXN0QWN0aXZlTm93UGxheWluZ1Nlc3Npb25JbmZv
Oih2b2lkKF4pKEJPT0wsIEJPT0wsIE5TU3RyaW5nKiwgZG91YmxlLCBkb3VibGUsIE5TSW50ZWdl
cikpY2FsbGJhY2sgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCksIGlvcygxMS4zKSk7
CistICh2b2lkKV9yZXF1ZXN0QWN0aXZlTm93UGxheWluZ1Nlc3Npb25JbmZvOih2b2lkKF4pKEJP
T0wsIEJPT0wsIE5TU3RyaW5nKiwgZG91YmxlLCBkb3VibGUsIE5TSW50ZWdlcikpY2FsbGJhY2sg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKIAogLSAodm9pZClf
c2V0UGFnZVNjYWxlOihDR0Zsb2F0KXNjYWxlIHdpdGhPcmlnaW46KENHUG9pbnQpb3JpZ2luIFdL
X0FQSV9BVkFJTEFCTEUoaW9zKDEwLjMpKTsKIC0gKENHRmxvYXQpX3BhZ2VTY2FsZSBXS19BUElf
QVZBSUxBQkxFKGlvcygxMC4zKSk7CiAKLS0gKHZvaWQpX2RvQWZ0ZXJOZXh0UHJlc2VudGF0aW9u
VXBkYXRlOih2b2lkICheKSh2b2lkKSl1cGRhdGVCbG9jayBXS19BUElfQVZBSUxBQkxFKG1hY29z
eCgxMC4xMiksIGlvcygxMC4wKSk7Ci0tICh2b2lkKV9kb0FmdGVyTmV4dFByZXNlbnRhdGlvblVw
ZGF0ZVdpdGhvdXRXYWl0aW5nRm9yQW5pbWF0ZWRSZXNpemVGb3JUZXN0aW5nOih2b2lkICheKSh2
b2lkKSl1cGRhdGVCbG9jayBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xNCksIGlvcygxMi4w
KSk7Ci0tICh2b2lkKV9kb0FmdGVyTmV4dFByZXNlbnRhdGlvblVwZGF0ZVdpdGhvdXRXYWl0aW5n
Rm9yUGFpbnRpbmc6KHZvaWQgKF4pKHZvaWQpKXVwZGF0ZUJsb2NrIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3N4KDEwLjEyLjMpLCBpb3MoMTAuMykpOwotLSAodm9pZClfZG9BZnRlck5leHRWaXNpYmxl
Q29udGVudFJlY3RVcGRhdGU6KHZvaWQgKF4pKHZvaWQpKXVwZGF0ZUJsb2NrIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KDEwLjEzKSwgaW9zKDExLjApKTsKKy0gKHZvaWQpX2RvQWZ0ZXJOZXh0UHJl
c2VudGF0aW9uVXBkYXRlOih2b2lkICheKSh2b2lkKSl1cGRhdGVCbG9jayBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKKy0gKHZvaWQpX2RvQWZ0ZXJOZXh0UHJlc2Vu
dGF0aW9uVXBkYXRlV2l0aG91dFdhaXRpbmdGb3JBbmltYXRlZFJlc2l6ZUZvclRlc3Rpbmc6KHZv
aWQgKF4pKHZvaWQpKXVwZGF0ZUJsb2NrIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpLCBp
b3MoMTIuMCkpOworLSAodm9pZClfZG9BZnRlck5leHRQcmVzZW50YXRpb25VcGRhdGVXaXRob3V0
V2FpdGluZ0ZvclBhaW50aW5nOih2b2lkICheKSh2b2lkKSl1cGRhdGVCbG9jayBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjEyLjMpLCBpb3MoMTAuMykpOworLSAodm9pZClfZG9BZnRlck5leHRW
aXNpYmxlQ29udGVudFJlY3RVcGRhdGU6KHZvaWQgKF4pKHZvaWQpKXVwZGF0ZUJsb2NrIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpOwogCi0tICh2b2lkKV9kaXNhYmxl
QmFja0ZvcndhcmRTbmFwc2hvdFZvbGF0aWxpdHlGb3JUZXN0aW5nIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3N4KDEwLjEyLjMpLCBpb3MoMTAuMykpOwotLSAodm9pZClfZXhlY3V0ZUVkaXRDb21tYW5k
OihOU1N0cmluZyAqKWNvbW1hbmQgYXJndW1lbnQ6KE5TU3RyaW5nICopYXJndW1lbnQgY29tcGxl
dGlvbjoodm9pZCAoXikoQk9PTCkpY29tcGxldGlvbiBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgx
MC4xMy40KSwgaW9zKDExLjMpKTsKKy0gKHZvaWQpX2Rpc2FibGVCYWNrRm9yd2FyZFNuYXBzaG90
Vm9sYXRpbGl0eUZvclRlc3RpbmcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMi4zKSwgaW9z
KDEwLjMpKTsKKy0gKHZvaWQpX2V4ZWN1dGVFZGl0Q29tbWFuZDooTlNTdHJpbmcgKiljb21tYW5k
IGFyZ3VtZW50OihOU1N0cmluZyAqKWFyZ3VtZW50IGNvbXBsZXRpb246KHZvaWQgKF4pKEJPT0wp
KWNvbXBsZXRpb24gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsK
IAotLSAodm9pZClfZGVueU5leHRVc2VyTWVkaWFSZXF1ZXN0IFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KDEwLjE0KSwgaW9zKDEyLjApKTsKKy0gKHZvaWQpX2RlbnlOZXh0VXNlck1lZGlhUmVxdWVz
dCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSwgaW9zKDEyLjApKTsKIAogLSAoQk9PTClf
YmVnaW5CYWNrU3dpcGVGb3JUZXN0aW5nOwogLSAoQk9PTClfY29tcGxldGVCYWNrU3dpcGVGb3JU
ZXN0aW5nOwogLSAodm9pZClfc2V0RGVmZXJzTG9hZGluZ0ZvclRlc3Rpbmc6KEJPT0wpZGVmZXJz
TG9hZGluZzsKIAotLSAodm9pZClfc2V0U2hhcmVTaGVldENvbXBsZXRlc0ltbWVkaWF0ZWx5V2l0
aFJlc29sdXRpb25Gb3JUZXN0aW5nOihCT09MKXJlc29sdmVkIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfc2V0U2hhcmVTaGVl
dENvbXBsZXRlc0ltbWVkaWF0ZWx5V2l0aFJlc29sdXRpb25Gb3JUZXN0aW5nOihCT09MKXJlc29s
dmVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7
CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfaGFzSW5zcGVjdG9yRnJv
bnRlbmQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIF9XS0luc3BlY3RvciAqX2luc3Bl
Y3RvciBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgX1dLRnJhbWVIYW5kbGUgKl9tYWlu
RnJhbWUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgX2hhc0luc3BlY3RvckZy
b250ZW5kIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIF9XS0luc3BlY3RvciAqX2luc3Bl
Y3RvciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkp
OworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBfV0tGcmFtZUhhbmRsZSAqX21haW5G
cmFtZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkp
OwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRTY3JvbGxpbmdVcGRhdGVzRGlz
YWJsZWRGb3JUZXN0aW5nOikgQk9PTCBfc2Nyb2xsaW5nVXBkYXRlc0Rpc2FibGVkRm9yVGVzdGlu
ZyBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
K0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFNjcm9sbGluZ1VwZGF0ZXNEaXNhYmxl
ZEZvclRlc3Rpbmc6KSBCT09MIF9zY3JvbGxpbmdVcGRhdGVzRGlzYWJsZWRGb3JUZXN0aW5nIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIC0g
KHZvaWQpX3Byb2Nlc3NXaWxsU3VzcGVuZEltbWluZW50bHlGb3JUZXN0aW5nOwogLSAodm9pZClf
cHJvY2Vzc0RpZFJlc3VtZUZvclRlc3Rpbmc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVJlY29yZC5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFSZWNvcmQuaAppbmRleCBhMGMwMDM0Mzg2
NWNkMmNhMDZkMmY2NTUyYTVkNDE3MTc2ODM5M2FhLi41OTA2N2JkYWYxMzBlZjZiOGEwNDk5ZmMy
MWEwZGExODQwZjRmYzJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJzaXRlRGF0YVJlY29yZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhUmVjb3JkLmgKQEAgLTMwLDM3ICszMCwzNyBAQAogTlNf
QVNTVU1FX05PTk5VTExfQkVHSU4KIAogLyohIEBjb25zdGFudCBXS1dlYnNpdGVEYXRhVHlwZUZl
dGNoQ2FjaGUgT24tZGlzayBGZXRjaCBjYWNoZXMuICovCi1XS19FWFRFUk4gTlNTdHJpbmcgKiBj
b25zdCBXS1dlYnNpdGVEYXRhVHlwZUZldGNoQ2FjaGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3go
MTAuMTMuNCksIGlvcygxMS4zKSk7CitXS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBXS1dlYnNp
dGVEYXRhVHlwZUZldGNoQ2FjaGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9z
KDExLjMpKTsKIAogLyohIEBjb25zdGFudCBXS1dlYnNpdGVEYXRhVHlwZURpc2tDYWNoZSBPbi1k
aXNrIGNhY2hlcy4gKi8KLVdLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IFdLV2Vic2l0ZURhdGFU
eXBlRGlza0NhY2hlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOwor
V0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgV0tXZWJzaXRlRGF0YVR5cGVEaXNrQ2FjaGUgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMSksIGlvcyg5LjApKTsKIAogLyohIEBjb25zdGFudCBX
S1dlYnNpdGVEYXRhVHlwZU1lbW9yeUNhY2hlIEluLW1lbW9yeSBjYWNoZXMuICovCi1XS19FWFRF
Uk4gTlNTdHJpbmcgKiBjb25zdCBXS1dlYnNpdGVEYXRhVHlwZU1lbW9yeUNhY2hlIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOworV0tfRVhURVJOIE5TU3RyaW5nICog
Y29uc3QgV0tXZWJzaXRlRGF0YVR5cGVNZW1vcnlDYWNoZSBXS19BUElfQVZBSUxBQkxFKG1hY29z
KDEwLjExKSwgaW9zKDkuMCkpOwogCiAvKiEgQGNvbnN0YW50IFdLV2Vic2l0ZURhdGFUeXBlT2Zm
bGluZVdlYkFwcGxpY2F0aW9uQ2FjaGUgSFRNTCBvZmZsaW5lIHdlYiBhcHBsaWNhdGlvbiBjYWNo
ZXMuICovCi1XS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBXS1dlYnNpdGVEYXRhVHlwZU9mZmxp
bmVXZWJBcHBsaWNhdGlvbkNhY2hlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9z
KDkuMCkpOworV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgV0tXZWJzaXRlRGF0YVR5cGVPZmZs
aW5lV2ViQXBwbGljYXRpb25DYWNoZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjExKSwgaW9z
KDkuMCkpOwogCiAvKiEgQGNvbnN0YW50IFdLV2Vic2l0ZURhdGFUeXBlQ29va2llcyBDb29raWVz
LiAqLwotV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgV0tXZWJzaXRlRGF0YVR5cGVDb29raWVz
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOworV0tfRVhURVJOIE5T
U3RyaW5nICogY29uc3QgV0tXZWJzaXRlRGF0YVR5cGVDb29raWVzIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTAuMTEpLCBpb3MoOS4wKSk7CiAKIC8qISBAY29uc3RhbnQgV0tXZWJzaXRlRGF0YVR5
cGVTZXNzaW9uU3RvcmFnZSBIVE1MIHNlc3Npb24gc3RvcmFnZS4gKi8KLVdLX0VYVEVSTiBOU1N0
cmluZyAqIGNvbnN0IFdLV2Vic2l0ZURhdGFUeXBlU2Vzc2lvblN0b3JhZ2UgV0tfQVBJX0FWQUlM
QUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CitXS19FWFRFUk4gTlNTdHJpbmcgKiBjb25z
dCBXS1dlYnNpdGVEYXRhVHlwZVNlc3Npb25TdG9yYWdlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTAuMTEpLCBpb3MoOS4wKSk7CiAKIC8qISBAY29uc3RhbnQgV0tXZWJzaXRlRGF0YVR5cGVMb2Nh
bFN0b3JhZ2UgSFRNTCBsb2NhbCBzdG9yYWdlLiAqLwotV0tfRVhURVJOIE5TU3RyaW5nICogY29u
c3QgV0tXZWJzaXRlRGF0YVR5cGVMb2NhbFN0b3JhZ2UgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3go
MTAuMTEpLCBpb3MoOS4wKSk7CitXS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBXS1dlYnNpdGVE
YXRhVHlwZUxvY2FsU3RvcmFnZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjExKSwgaW9zKDku
MCkpOwogCiAvKiEgQGNvbnN0YW50IFdLV2Vic2l0ZURhdGFUeXBlV2ViU1FMRGF0YWJhc2VzIFdl
YlNRTCBkYXRhYmFzZXMuICovCi1XS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBXS1dlYnNpdGVE
YXRhVHlwZVdlYlNRTERhdGFiYXNlcyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlv
cyg5LjApKTsKK1dLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IFdLV2Vic2l0ZURhdGFUeXBlV2Vi
U1FMRGF0YWJhc2VzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTEpLCBpb3MoOS4wKSk7CiAK
IC8qISBAY29uc3RhbnQgV0tXZWJzaXRlRGF0YVR5cGVJbmRleGVkREJEYXRhYmFzZXMgSW5kZXhl
ZERCIGRhdGFiYXNlcy4gKi8KLVdLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IFdLV2Vic2l0ZURh
dGFUeXBlSW5kZXhlZERCRGF0YWJhc2VzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwg
aW9zKDkuMCkpOworV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgV0tXZWJzaXRlRGF0YVR5cGVJ
bmRleGVkREJEYXRhYmFzZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMSksIGlvcyg5LjAp
KTsKIAogLyohIEBjb25zdGFudCBXS1dlYnNpdGVEYXRhVHlwZVNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb25zIFNlcnZpY2Ugd29ya2VyIHJlZ2lzdHJhdGlvbnMuICovCi1XS19FWFRFUk4gTlNTdHJp
bmcgKiBjb25zdCBXS1dlYnNpdGVEYXRhVHlwZVNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25zIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpLCBpb3MoMTEuMykpOworV0tfRVhURVJOIE5T
U3RyaW5nICogY29uc3QgV0tXZWJzaXRlRGF0YVR5cGVTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
cyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOwogCiAvKiEgQSBX
S1dlYnNpdGVEYXRhUmVjb3JkIHJlcHJlc2VudHMgd2Vic2l0ZSBkYXRhLCBncm91cGVkIGJ5IGRv
bWFpbiBuYW1lIHVzaW5nIHRoZSBwdWJsaWMgc3VmZml4IGxpc3QuICovCi1XS19DTEFTU19BVkFJ
TEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3Mo
MTAuMTEpLCBpb3MoOS4wKSkKIEBpbnRlcmZhY2UgV0tXZWJzaXRlRGF0YVJlY29yZCA6IE5TT2Jq
ZWN0CiAKIC8qISBAYWJzdHJhY3QgVGhlIGRpc3BsYXkgbmFtZSBmb3IgdGhlIGRhdGEgcmVjb3Jk
LiBUaGlzIGlzIHVzdWFsbHkgdGhlIGRvbWFpbiBuYW1lLiAqLwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFSZWNvcmRQcml2YXRlLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVJlY29yZFBy
aXZhdGUuaAppbmRleCA0Zjc4YzU1NzY4MDA2MWUxZTE3ZWM3MjgyZGE0NzRkMzk4MzIyYWU2Li5m
MTFlNDgwNGFlOWU4ZTlkOThjMzQ2ZDUwNzUxZGM4Mzc3NTE1ZTBjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVJlY29yZFByaXZhdGUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVJl
Y29yZFByaXZhdGUuaApAQCAtMjksMjIgKzI5LDIyIEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lO
CiAKIEBjbGFzcyBfV0tXZWJzaXRlRGF0YVNpemU7CiAKLVdLX0VYVEVSTiBOU1N0cmluZyAqIGNv
bnN0IF9XS1dlYnNpdGVEYXRhVHlwZUhTVFNDYWNoZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgx
MC4xMSksIGlvcyg5LjApKTsKLVdLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IF9XS1dlYnNpdGVE
YXRhVHlwZU1lZGlhS2V5cyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjAp
KTsKLVdLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IF9XS1dlYnNpdGVEYXRhVHlwZVNlYXJjaEZp
ZWxkUmVjZW50U2VhcmNoZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3MoMTAu
MCkpOwotV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgX1dLV2Vic2l0ZURhdGFUeXBlUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMiksIGlvcygxMC4w
KSk7Ci1XS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBfV0tXZWJzaXRlRGF0YVR5cGVDcmVkZW50
aWFscyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7CitXS19FWFRF
Uk4gTlNTdHJpbmcgKiBjb25zdCBfV0tXZWJzaXRlRGF0YVR5cGVIU1RTQ2FjaGUgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMC4xMSksIGlvcyg5LjApKTsKK1dLX0VYVEVSTiBOU1N0cmluZyAqIGNv
bnN0IF9XS1dlYnNpdGVEYXRhVHlwZU1lZGlhS2V5cyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEw
LjExKSwgaW9zKDkuMCkpOworV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgX1dLV2Vic2l0ZURh
dGFUeXBlU2VhcmNoRmllbGRSZWNlbnRTZWFyY2hlcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEw
LjEyKSwgaW9zKDEwLjApKTsKK1dLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IF9XS1dlYnNpdGVE
YXRhVHlwZVJlc291cmNlTG9hZFN0YXRpc3RpY3MgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4x
MiksIGlvcygxMC4wKSk7CitXS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBfV0tXZWJzaXRlRGF0
YVR5cGVDcmVkZW50aWFscyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjAp
KTsKIAogCiAjaWYgIVRBUkdFVF9PU19JUEhPTkUKLVdLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0
IF9XS1dlYnNpdGVEYXRhVHlwZVBsdWdJbkRhdGEgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAu
MTEpKTsKK1dLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IF9XS1dlYnNpdGVEYXRhVHlwZVBsdWdJ
bkRhdGEgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMSkpOwogI2VuZGlmCiAKIEBpbnRlcmZh
Y2UgV0tXZWJzaXRlRGF0YVJlY29yZCAoV0tQcml2YXRlKQogCiBAcHJvcGVydHkgKG51bGxhYmxl
LCBub25hdG9taWMsIHJlYWRvbmx5KSBfV0tXZWJzaXRlRGF0YVNpemUgKl9kYXRhU2l6ZTsKIAot
LSAoTlNBcnJheTxOU1N0cmluZyAqPiAqKV9vcmlnaW5zU3RyaW5ncyBXS19BUElfQVZBSUxBQkxF
KG1hY29zeCgxMC4xNCksIGlvcygxMi4wKSk7CistIChOU0FycmF5PE5TU3RyaW5nICo+ICopX29y
aWdpbnNTdHJpbmdzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpLCBpb3MoMTIuMCkpOwog
CiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYnNpdGVEYXRhU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYnNpdGVEYXRhU3RvcmUuaAppbmRleCA1ZDYyYWM0YmM2Y2UwZTUxZmVmNjAyNTg2OGM2YmU5
N2ZjMGY0MWJhLi43MjZjNDk3MmFhMGIzMmUwZGM2MDJlMGFiMmQ3MWY2YWU4ZWY5M2FlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0
b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURh
dGFTdG9yZS5oCkBAIC0zNSw3ICszNSw3IEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAgbWFr
ZSB1c2Ugb2YuIFRoaXMgaW5jbHVkZXMgY29va2llcywgZGlzayBhbmQgbWVtb3J5IGNhY2hlcywg
YW5kIHBlcnNpc3RlbnQgZGF0YSBzdWNoIGFzIFdlYlNRTCwKICBJbmRleGVkREIgZGF0YWJhc2Vz
LCBhbmQgbG9jYWwgc3RvcmFnZS4KICAqLwotV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4x
MSksIGlvcyg5LjApKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjExKSwgaW9zKDkuMCkp
CiBAaW50ZXJmYWNlIFdLV2Vic2l0ZURhdGFTdG9yZSA6IE5TT2JqZWN0IDxOU1NlY3VyZUNvZGlu
Zz4KIAogLyogQGFic3RyYWN0IFJldHVybnMgdGhlIGRlZmF1bHQgZGF0YSBzdG9yZS4gKi8KQEAg
LTc2LDcgKzc2LDcgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjAp
KQogLSAodm9pZClyZW1vdmVEYXRhT2ZUeXBlczooTlNTZXQ8TlNTdHJpbmcgKj4gKilkYXRhVHlw
ZXMgbW9kaWZpZWRTaW5jZTooTlNEYXRlICopZGF0ZSBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAo
Xikodm9pZCkpY29tcGxldGlvbkhhbmRsZXI7CiAKIC8qISBAYWJzdHJhY3QgUmV0dXJucyB0aGUg
Y29va2llIHN0b3JlIHJlcHJlc2VudGluZyBIVFRQIGNvb2tpZXMgaW4gdGhpcyB3ZWJzaXRlIGRh
dGEgc3RvcmUuICovCi1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIFdLSFRUUENvb2tp
ZVN0b3JlICpodHRwQ29va2llU3RvcmUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMpLCBp
b3MoMTEuMCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBXS0hUVFBDb29raWVT
dG9yZSAqaHR0cENvb2tpZVN0b3JlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3Mo
MTEuMCkpOwogCiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oCmluZGV4IDRhOTM3YTgw
MWI3NzgzZmM3MDMxMzI0ZmRiNjgyMThkYzA1Y2UxY2EuLjA4YWVkM2FiOWIwNTQ0MDVjMzRmMTIw
MmE5NDg3ODllZTlhM2NkNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaApAQCAtMzQsNyAr
MzQsNyBAQCBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogCiB0eXBlZGVmIE5TX09QVElPTlMoTlNV
SW50ZWdlciwgX1dLV2Vic2l0ZURhdGFTdG9yZUZldGNoT3B0aW9ucykgewogICAgIF9XS1dlYnNp
dGVEYXRhU3RvcmVGZXRjaE9wdGlvbkNvbXB1dGVTaXplcyA9IDEgPDwgMCwKLX0gV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3MoMTAuMCkpOworfSBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDEwLjEyKSwgaW9zKDEwLjApKTsKIAogQGludGVyZmFjZSBXS1dlYnNpdGVEYXRhU3RvcmUg
KFdLUHJpdmF0ZSkKIApAQCAtNDIsMzEgKzQyLDMxIEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJ
bnRlZ2VyLCBfV0tXZWJzaXRlRGF0YVN0b3JlRmV0Y2hPcHRpb25zKSB7CiArIChCT09MKV9kZWZh
dWx0RGF0YVN0b3JlRXhpc3RzOwogKyAodm9pZClfZGVsZXRlRGVmYXVsdERhdGFTdG9yZUZvclRl
c3Rpbmc7CiAKLS0gKGluc3RhbmNldHlwZSlfaW5pdFdpdGhDb25maWd1cmF0aW9uOihfV0tXZWJz
aXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiAqKWNvbmZpZ3VyYXRpb24gV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpOworLSAoaW5zdGFuY2V0eXBlKV9pbml0V2l0aENv
bmZpZ3VyYXRpb246KF9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uICopY29uZmlndXJh
dGlvbiBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKTsKIAogLSAodm9p
ZClfZmV0Y2hEYXRhUmVjb3Jkc09mVHlwZXM6KE5TU2V0PE5TU3RyaW5nICo+ICopZGF0YVR5cGVz
IHdpdGhPcHRpb25zOihfV0tXZWJzaXRlRGF0YVN0b3JlRmV0Y2hPcHRpb25zKW9wdGlvbnMgY29t
cGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TQXJyYXk8V0tXZWJzaXRlRGF0YVJlY29yZCAqPiAq
KSljb21wbGV0aW9uSGFuZGxlcjsKIAotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQ6KSBCT09MIF9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMiksIGlvcygxMC4wKSk7Ci1A
cHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVi
dWdNb2RlOikgQk9PTCBfcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZSBXS19BUElfQVZB
SUxBQkxFKG1hY29zeCgxMC4xNCksIGlvcygxMi4wKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywg
c2V0dGVyPV9zZXRDYWNoZVN0b3JhZ2VQZXJPcmlnaW5RdW90YTopIE5TVUludGVnZXIgX2NhY2hl
U3RvcmFnZVBlck9yaWdpblF1b3RhIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpLCBp
b3MoMTEuMykpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0Q2FjaGVTdG9yYWdl
RGlyZWN0b3J5OikgTlNTdHJpbmcqIF9jYWNoZVN0b3JhZ2VEaXJlY3RvcnkgV0tfQVBJX0FWQUlM
QUJMRShtYWNvc3goMTAuMTMuNCksIGlvcygxMS4zKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywg
c2V0dGVyPV9zZXRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5OikgTlNTdHJpbmcq
IF9zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5IFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KDEwLjEzLjQpLCBpb3MoMTEuMykpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1f
c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQ6KSBCT09MIF9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsK
K0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFJlc291cmNlTG9hZFN0YXRpc3RpY3NE
ZWJ1Z01vZGU6KSBCT09MIF9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTAuMTQpLCBpb3MoMTIuMCkpOworQHByb3BlcnR5IChub25hdG9taWMs
IHNldHRlcj1fc2V0Q2FjaGVTdG9yYWdlUGVyT3JpZ2luUXVvdGE6KSBOU1VJbnRlZ2VyIF9jYWNo
ZVN0b3JhZ2VQZXJPcmlnaW5RdW90YSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBp
b3MoMTEuMykpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0Q2FjaGVTdG9yYWdl
RGlyZWN0b3J5OikgTlNTdHJpbmcqIF9jYWNoZVN0b3JhZ2VEaXJlY3RvcnkgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBz
ZXR0ZXI9X3NldFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3Rvcnk6KSBOU1N0cmluZyog
X3NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnkgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMC4xMy40KSwgaW9zKDExLjMpKTsKIAotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1f
c2V0Qm91bmRJbnRlcmZhY2VJZGVudGlmaWVyOikgTlNTdHJpbmcgKl9ib3VuZEludGVyZmFjZUlk
ZW50aWZpZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCksIGlvcygxMS4zKSk7Ci1A
cHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBbGxvd3NDZWxsdWxhckFjY2VzczopIEJP
T0wgX2FsbG93c0NlbGx1bGFyQWNjZXNzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQp
LCBpb3MoMTEuMykpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0UHJveHlDb25m
aWd1cmF0aW9uOikgTlNEaWN0aW9uYXJ5ICpfcHJveHlDb25maWd1cmF0aW9uIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KDEwLjE0KSwgaW9zKDEyLjApKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBj
b3B5LCBzZXR0ZXI9X3NldFNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcjopIE5TU3Ry
aW5nICpfc291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotQHByb3BlcnR5IChub25hdG9t
aWMsIGNvcHksIHNldHRlcj1fc2V0U291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVy
OikgTlNTdHJpbmcgKl9zb3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXIgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVy
dHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRCb3VuZEludGVyZmFjZUlkZW50aWZpZXI6KSBOU1N0
cmluZyAqX2JvdW5kSW50ZXJmYWNlSWRlbnRpZmllciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEw
LjEzLjQpLCBpb3MoMTEuMykpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0QWxs
b3dzQ2VsbHVsYXJBY2Nlc3M6KSBCT09MIF9hbGxvd3NDZWxsdWxhckFjY2VzcyBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOworQHByb3BlcnR5IChub25hdG9taWMs
IHNldHRlcj1fc2V0UHJveHlDb25maWd1cmF0aW9uOikgTlNEaWN0aW9uYXJ5ICpfcHJveHlDb25m
aWd1cmF0aW9uIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpLCBpb3MoMTIuMCkpOworQHBy
b3BlcnR5IChub25hdG9taWMsIGNvcHksIHNldHRlcj1fc2V0U291cmNlQXBwbGljYXRpb25CdW5k
bGVJZGVudGlmaWVyOikgTlNTdHJpbmcgKl9zb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZp
ZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
K0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5LCBzZXR0ZXI9X3NldFNvdXJjZUFwcGxpY2F0aW9u
U2Vjb25kYXJ5SWRlbnRpZmllcjopIE5TU3RyaW5nICpfc291cmNlQXBwbGljYXRpb25TZWNvbmRh
cnlJZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19J
T1NfVEJBKSk7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNVUkwgKl9pbmRl
eGVkREJEYXRhYmFzZURpcmVjdG9yeTsKIAotLSAodm9pZClfcmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1NldFNob3VsZFN1Ym1pdFRlbGVtZXRyeTooQk9PTCl2YWx1ZSBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeCgxMC4xMyksIGlvcygxMS4wKSk7Ci0tICh2b2lkKV9zZXRSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzVGVzdGluZ0NhbGxiYWNrOihudWxsYWJsZSB2b2lkICheKShXS1dlYnNpdGVEYXRhU3RvcmUg
KiwgTlNTdHJpbmcgKikpY2FsbGJhY2sgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMpLCBp
b3MoMTEuMCkpOwotLSAodm9pZClfZ2V0QWxsU3RvcmFnZUFjY2Vzc0VudHJpZXNGb3I6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TQXJyYXk8TlNTdHJp
bmcgKj4gKmRvbWFpbnMpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KDEwLjE0KSwgaW9zKDEyLjApKTsKLSsgKHZvaWQpX2FsbG93V2Vic2l0ZURhdGFSZWNvcmRzRm9y
QWxsT3JpZ2lucyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSwgaW9zKDExLjMpKTsK
LS0gKGJvb2wpX2hhc1JlZ2lzdGVyZWRTZXJ2aWNlV29ya2VyIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KDEwLjE0KSwgaW9zKDEyLjApKTsKKy0gKHZvaWQpX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NT
ZXRTaG91bGRTdWJtaXRUZWxlbWV0cnk6KEJPT0wpdmFsdWUgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMC4xMyksIGlvcygxMS4wKSk7CistICh2b2lkKV9zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
VGVzdGluZ0NhbGxiYWNrOihudWxsYWJsZSB2b2lkICheKShXS1dlYnNpdGVEYXRhU3RvcmUgKiwg
TlNTdHJpbmcgKikpY2FsbGJhY2sgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygx
MS4wKSk7CistICh2b2lkKV9nZXRBbGxTdG9yYWdlQWNjZXNzRW50cmllc0ZvcjooV0tXZWJWaWV3
ICopd2ViVmlldyBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNBcnJheTxOU1N0cmluZyAq
PiAqZG9tYWlucykpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4x
NCksIGlvcygxMi4wKSk7CisrICh2b2lkKV9hbGxvd1dlYnNpdGVEYXRhUmVjb3Jkc0ZvckFsbE9y
aWdpbnMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKKy0gKGJv
b2wpX2hhc1JlZ2lzdGVyZWRTZXJ2aWNlV29ya2VyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAu
MTQpLCBpb3MoMTIuMCkpOwogCi1AcHJvcGVydHkgKG51bGxhYmxlLCBub25hdG9taWMsIHdlYWsp
IGlkIDxfV0tXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGU+IF9kZWxlZ2F0ZSBXS19BUElfQVZBSUxB
QkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobnVs
bGFibGUsIG5vbmF0b21pYywgd2VhaykgaWQgPF9XS1dlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZT4g
X2RlbGVnYXRlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1Nf
VEJBKSk7CiAKIEBlbmQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2luZG93RmVhdHVyZXMuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dpbmRvd0ZlYXR1cmVzLmgKaW5kZXggZjAwZjgwZTNhYjEzODE2NDA0ODA3ZTgzZDMy
YTE4NjkzM2QxZTZiZC4uMjQwMDhlNzI1MWIwYTRlYmMzOThmMDczNzcxNzhmYWM1YjAzYTRhMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2luZG93RmVh
dHVyZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXaW5kb3dG
ZWF0dXJlcy5oCkBAIC0zMSw3ICszMSw3IEBACiAgKi8KIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lO
CiAKLVdLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKK1dLX0NMQVNT
X0FWQUlMQUJMRShtYWNvcygxMC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBXS1dpbmRvd0Zl
YXR1cmVzIDogTlNPYmplY3QKIAogLyohIEBhYnN0cmFjdCBCT09MLiBXaGV0aGVyIHRoZSBtZW51
IGJhciBzaG91bGQgYmUgdmlzaWJsZS4gbmlsIGlmIG1lbnUgYmFyIHZpc2liaWxpdHkgd2FzIG5v
dCBzcGVjaWZpZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXaW5kb3dGZWF0dXJlc1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dpbmRvd0ZlYXR1cmVzUHJpdmF0ZS5oCmluZGV4IGQ0ZTZkZWJiYjI5ZWQxMGQ5
NjRjNzJlMTBkZmE1ZTExZDcxMThlODEuLjBkMzEyN2YwNjE3NjM1MjNjODJhZTA0MzI2N2UzYTRh
YzdkZDc2MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dpbmRvd0ZlYXR1cmVzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dpbmRvd0ZlYXR1cmVzUHJpdmF0ZS5oCkBAIC0yOSwxMCArMjksMTAgQEAgTlNf
QVNTVU1FX05PTk5VTExfQkVHSU4KIAogQGludGVyZmFjZSBXS1dpbmRvd0ZlYXR1cmVzIChXS1By
aXZhdGUpCiAKLUBwcm9wZXJ0eSAobnVsbGFibGUsIG5vbmF0b21pYywgcmVhZG9ubHkpIE5TTnVt
YmVyICpfbG9jYXRpb25CYXJWaXNpYmlsaXR5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEz
KSwgaW9zKDExLjApKTsKLUBwcm9wZXJ0eSAobnVsbGFibGUsIG5vbmF0b21pYywgcmVhZG9ubHkp
IE5TTnVtYmVyICpfc2Nyb2xsYmFyc1Zpc2liaWxpdHkgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3go
MTAuMTMpLCBpb3MoMTEuMCkpOwotQHByb3BlcnR5IChudWxsYWJsZSwgbm9uYXRvbWljLCByZWFk
b25seSkgTlNOdW1iZXIgKl9mdWxsc2NyZWVuRGlzcGxheSBXS19BUElfQVZBSUxBQkxFKG1hY29z
eCgxMC4xMyksIGlvcygxMS4wKSk7Ci1AcHJvcGVydHkgKG51bGxhYmxlLCBub25hdG9taWMsIHJl
YWRvbmx5KSBOU051bWJlciAqX2RpYWxvZ0Rpc3BsYXkgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3go
MTAuMTMpLCBpb3MoMTEuMCkpOworQHByb3BlcnR5IChudWxsYWJsZSwgbm9uYXRvbWljLCByZWFk
b25seSkgTlNOdW1iZXIgKl9sb2NhdGlvbkJhclZpc2liaWxpdHkgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMC4xMyksIGlvcygxMS4wKSk7CitAcHJvcGVydHkgKG51bGxhYmxlLCBub25hdG9taWMs
IHJlYWRvbmx5KSBOU051bWJlciAqX3Njcm9sbGJhcnNWaXNpYmlsaXR5IFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpOworQHByb3BlcnR5IChudWxsYWJsZSwgbm9uYXRv
bWljLCByZWFkb25seSkgTlNOdW1iZXIgKl9mdWxsc2NyZWVuRGlzcGxheSBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKTsKK0Bwcm9wZXJ0eSAobnVsbGFibGUsIG5vbmF0
b21pYywgcmVhZG9ubHkpIE5TTnVtYmVyICpfZGlhbG9nRGlzcGxheSBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjEzKSwgaW9zKDExLjApKTsKIAogQGVuZAogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQWN0aXZhdGVkRWxlbWVudEluZm8uaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBY3RpdmF0ZWRFbGVtZW50SW5mby5o
CmluZGV4IGI5NzRiMDQ0ODJmZGFjYTA2MDYyYzg5NTIzNzBiN2FlNGJjMTg2YjAuLjQ4OTg4MTJl
MTVlZThlNzNhZjVlMWU3NjUzMzk4ZTIyZGEyZjIwMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBY3RpdmF0ZWRFbGVtZW50SW5mby5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBY3RpdmF0ZWRFbGVtZW50SW5mby5o
CkBAIC0zNCwxOCArMzQsMTggQEAKIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS0FjdGl2
YXRlZEVsZW1lbnRUeXBlKSB7CiAgICAgX1dLQWN0aXZhdGVkRWxlbWVudFR5cGVMaW5rLAogICAg
IF9XS0FjdGl2YXRlZEVsZW1lbnRUeXBlSW1hZ2UsCi0gICAgX1dLQWN0aXZhdGVkRWxlbWVudFR5
cGVBdHRhY2htZW50IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKSwK
LSAgICBfV0tBY3RpdmF0ZWRFbGVtZW50VHlwZVVuc3BlY2lmaWVkIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3N4KDEwLjEzKSwgaW9zKDExLjApKSwKLX0gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAu
MTApLCBpb3MoOC4wKSk7CisgICAgX1dLQWN0aXZhdGVkRWxlbWVudFR5cGVBdHRhY2htZW50IFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpLAorICAgIF9XS0FjdGl2YXRl
ZEVsZW1lbnRUeXBlVW5zcGVjaWZpZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlv
cygxMS4wKSksCit9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4wKSk7CiAK
LVdLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKK1dLX0NMQVNTX0FW
QUlMQUJMRShtYWNvcygxMC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBfV0tBY3RpdmF0ZWRF
bGVtZW50SW5mbyA6IE5TT2JqZWN0CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkg
TlNVUkwgKlVSTDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNTdHJpbmcgKnRp
dGxlOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBfV0tBY3RpdmF0ZWRFbGVtZW50
VHlwZSB0eXBlOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBDR1JlY3QgYm91bmRp
bmdSZWN0OwotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1N0cmluZyAqSUQgV0tf
QVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3MoMTAuMCkpOworQHByb3BlcnR5IChub25h
dG9taWMsIHJlYWRvbmx5KSBOU1N0cmluZyAqSUQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4x
MiksIGlvcygxMC4wKSk7CiAjaWYgVEFSR0VUX09TX0lQSE9ORQogQHByb3BlcnR5IChub25hdG9t
aWMsIHJlYWRvbmx5KSBOU0RpY3Rpb25hcnkgKnVzZXJJbmZvIFdLX0FQSV9BVkFJTEFCTEUoaW9z
KDExLjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgY29weSkgVUlJbWFnZSAq
aW1hZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
QXBwbGljYXRpb25NYW5pZmVzdC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L19XS0FwcGxpY2F0aW9uTWFuaWZlc3QuaAppbmRleCA2ZDIwZWNhYWVjNTg2MzgyYjg1M2VjZjM4
N2YxNWMxYzY3MGEyMWQ1Li41MDM2M2RhZDdkYTIwMDkzYzE3MzJjNDQxNTg5M2YxYWY5YmEyMzY2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXBwbGlj
YXRpb25NYW5pZmVzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tBcHBsaWNhdGlvbk1hbmlmZXN0LmgKQEAgLTM2LDkgKzM2LDkgQEAgdHlwZWRlZiBOU19FTlVN
KE5TSW50ZWdlciwgX1dLQXBwbGljYXRpb25NYW5pZmVzdERpc3BsYXlNb2RlKSB7CiAgICAgX1dL
QXBwbGljYXRpb25NYW5pZmVzdERpc3BsYXlNb2RlTWluaW1hbFVJLAogICAgIF9XS0FwcGxpY2F0
aW9uTWFuaWZlc3REaXNwbGF5TW9kZVN0YW5kYWxvbmUsCiAgICAgX1dLQXBwbGljYXRpb25NYW5p
ZmVzdERpc3BsYXlNb2RlRnVsbFNjcmVlbiwKLX0gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAu
MTMuNCksIGlvcygxMS4zKSk7Cit9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlv
cygxMS4zKSk7CiAKLVdLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCksIGlvcygxMS4z
KSkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKQogQGludGVy
ZmFjZSBfV0tBcHBsaWNhdGlvbk1hbmlmZXN0IDogTlNPYmplY3QgPE5TU2VjdXJlQ29kaW5nPgog
CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIG51bGxhYmxlLCBjb3B5KSBOU1N0cmlu
ZyAqbmFtZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tBdHRhY2htZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXR0
YWNobWVudC5oCmluZGV4IDMzZmFiNWQ4NGVmNWExZTRhMTgyNGIxY2QyNGI3MjdlNzhlYjQyZTUu
LjNjMzU3ODg1NGY5YmZiZDM1ZjE3Mjg3OGYwYzZlYzAyY2YwYTlmYjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdHRhY2htZW50LmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F0dGFjaG1lbnQuaApAQCAtMzMsMTQg
KzMzLDE0IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS0F0dGFjaG1lbnREaXNwbGF5
TW9kZSkgewogICAgIF9XS0F0dGFjaG1lbnREaXNwbGF5TW9kZUF1dG8gPSAxLAogICAgIF9XS0F0
dGFjaG1lbnREaXNwbGF5TW9kZUluUGxhY2UsCiAgICAgX1dLQXR0YWNobWVudERpc3BsYXlNb2Rl
QXNJY29uCi19IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpLCBpb3MoMTEuMykpOwor
fSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOwogCi1XS19DTEFT
U19BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpLCBpb3MoMTEuMykpCitXS19DTEFTU19BVkFJTEFC
TEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSkKIEBpbnRlcmZhY2UgX1dLQXR0YWNobWVudERp
c3BsYXlPcHRpb25zIDogTlNPYmplY3QKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBfV0tBdHRhY2ht
ZW50RGlzcGxheU1vZGUgbW9kZTsKIEBlbmQKIAotV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgx
MC4xNCksIGlvcygxMi4wKSkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygx
Mi4wKSkKIEBpbnRlcmZhY2UgX1dLQXR0YWNobWVudEluZm8gOiBOU09iamVjdAogQHByb3BlcnR5
IChub25hdG9taWMsIHJlYWRvbmx5LCBudWxsYWJsZSkgTlNTdHJpbmcgKmNvbnRlbnRUeXBlOwog
QHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBudWxsYWJsZSkgTlNTdHJpbmcgKm5hbWU7
CkBAIC00OSwxOCArNDksMTggQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xNCksIGlv
cygxMi4wKSkKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgbnVsbGFibGUpIE5TRmls
ZVdyYXBwZXIgKmZpbGVXcmFwcGVyOwogQGVuZAogCi1XS19DTEFTU19BVkFJTEFCTEUobWFjb3N4
KDEwLjEzLjQpLCBpb3MoMTEuMykpCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCks
IGlvcygxMS4zKSkKIEBpbnRlcmZhY2UgX1dLQXR0YWNobWVudCA6IE5TT2JqZWN0CiAKLS0gKHZv
aWQpc2V0RmlsZVdyYXBwZXI6KE5TRmlsZVdyYXBwZXIgKilmaWxlV3JhcHBlciBjb250ZW50VHlw
ZToobnVsbGFibGUgTlNTdHJpbmcgKiljb250ZW50VHlwZSBjb21wbGV0aW9uOih2b2lkKF4gX051
bGxhYmxlKShOU0Vycm9yICogX051bGxhYmxlKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZB
SUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpc2V0
RmlsZVdyYXBwZXI6KE5TRmlsZVdyYXBwZXIgKilmaWxlV3JhcHBlciBjb250ZW50VHlwZToobnVs
bGFibGUgTlNTdHJpbmcgKiljb250ZW50VHlwZSBjb21wbGV0aW9uOih2b2lkKF4gX051bGxhYmxl
KShOU0Vycm9yICogX051bGxhYmxlKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxF
KG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCi1AcHJvcGVydHkgKG5vbmF0
b21pYywgcmVhZG9ubHksIG51bGxhYmxlKSBfV0tBdHRhY2htZW50SW5mbyAqaW5mbyBXS19BUElf
QVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0
eSAobm9uYXRvbWljLCByZWFkb25seSwgbnVsbGFibGUpIF9XS0F0dGFjaG1lbnRJbmZvICppbmZv
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiBA
cHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TU3RyaW5nICp1bmlxdWVJZGVudGlmaWVy
OwotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBnZXR0ZXI9aXNDb25uZWN0ZWQpIEJP
T0wgY29ubmVjdGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBnZXR0ZXI9aXNDb25u
ZWN0ZWQpIEJPT0wgY29ubmVjdGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBKSk7CiAKIC8vIERlcHJlY2F0ZWQgU1BJLgotLSAodm9pZClyZXF1ZXN0
SW5mbzoodm9pZCheKShfV0tBdHRhY2htZW50SW5mbyAqIF9OdWxsYWJsZSwgTlNFcnJvciAqIF9O
dWxsYWJsZSkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNF
TUVOVCgiLWluZm8iLCBtYWNvc3goMTAuMTQsIFdLX01BQ19UQkEpLCBpb3MoMTIuMCwgV0tfSU9T
X1RCQSkpOwotLSAodm9pZClzZXREYXRhOihOU0RhdGEgKilkYXRhIG5ld0NvbnRlbnRUeXBlOihu
dWxsYWJsZSBOU1N0cmluZyAqKW5ld0NvbnRlbnRUeXBlIG5ld0ZpbGVuYW1lOihudWxsYWJsZSBO
U1N0cmluZyAqKW5ld0ZpbGVuYW1lIGNvbXBsZXRpb246KHZvaWQoXiBfTnVsbGFibGUpKE5TRXJy
b3IgKiBfTnVsbGFibGUpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhf
UkVQTEFDRU1FTlQoIlBsZWFzZSB1c2UgLXNldEZpbGVXcmFwcGVyOmNvbnRlbnRUeXBlOmNvbXBs
ZXRpb246IGluc3RlYWQuIiwgbWFjb3N4KDEwLjEzLjQsIFdLX01BQ19UQkEpLCBpb3MoMTEuMywg
V0tfSU9TX1RCQSkpOworLSAodm9pZClyZXF1ZXN0SW5mbzoodm9pZCheKShfV0tBdHRhY2htZW50
SW5mbyAqIF9OdWxsYWJsZSwgTlNFcnJvciAqIF9OdWxsYWJsZSkpY29tcGxldGlvbkhhbmRsZXIg
V0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiLWluZm8iLCBtYWNvcygxMC4xNCwg
V0tfTUFDX1RCQSksIGlvcygxMi4wLCBXS19JT1NfVEJBKSk7CistICh2b2lkKXNldERhdGE6KE5T
RGF0YSAqKWRhdGEgbmV3Q29udGVudFR5cGU6KG51bGxhYmxlIE5TU3RyaW5nICopbmV3Q29udGVu
dFR5cGUgbmV3RmlsZW5hbWU6KG51bGxhYmxlIE5TU3RyaW5nICopbmV3RmlsZW5hbWUgY29tcGxl
dGlvbjoodm9pZCheIF9OdWxsYWJsZSkoTlNFcnJvciAqIF9OdWxsYWJsZSkpY29tcGxldGlvbkhh
bmRsZXIgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiUGxlYXNlIHVzZSAtc2V0
RmlsZVdyYXBwZXI6Y29udGVudFR5cGU6Y29tcGxldGlvbjogaW5zdGVhZC4iLCBtYWNvcygxMC4x
My40LCBXS19NQUNfVEJBKSwgaW9zKDExLjMsIFdLX0lPU19UQkEpKTsKIAogQGVuZAogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0b21hdGlvbkRl
bGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0b21hdGlv
bkRlbGVnYXRlLmgKaW5kZXggZjdiMTQ0ZDkwMzEzYjg2MTBhZTVkOWI3NTdiNzFmNmEyYmY0YmFi
Ni4uMjViNDFlNTdmOTE4YmNkY2Q5ZWRiZjQwODkzNWZlZmM3YjNmYzZmZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dG9tYXRpb25EZWxlZ2F0ZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRvbWF0aW9uRGVs
ZWdhdGUuaApAQCAtMzAsOSArMzAsOSBAQAogCiBAcHJvdG9jb2wgX1dLQXV0b21hdGlvbkRlbGVn
YXRlIDxOU09iamVjdD4KIEBvcHRpb25hbAotLSAoQk9PTClfcHJvY2Vzc1Bvb2xBbGxvd3NSZW1v
dGVBdXRvbWF0aW9uOihXS1Byb2Nlc3NQb29sICopcHJvY2Vzc1Bvb2wgV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpOwotLSAodm9pZClfcHJvY2Vzc1Bvb2w6KFdLUHJv
Y2Vzc1Bvb2wgKilwcm9jZXNzUG9vbCBkaWRSZXF1ZXN0QXV0b21hdGlvblNlc3Npb25XaXRoSWRl
bnRpZmllcjooTlNTdHJpbmcgKilpZGVudGlmaWVyIGNvbmZpZ3VyYXRpb246KF9XS0F1dG9tYXRp
b25TZXNzaW9uQ29uZmlndXJhdGlvbiAqKWNvbmZpZ3VyYXRpb24gV0tfQVBJX0FWQUlMQUJMRSht
YWNvc3goMTAuMTMuNCksIGlvcygxMS4zKSk7CistIChCT09MKV9wcm9jZXNzUG9vbEFsbG93c1Jl
bW90ZUF1dG9tYXRpb246KFdLUHJvY2Vzc1Bvb2wgKilwcm9jZXNzUG9vbCBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKTsKKy0gKHZvaWQpX3Byb2Nlc3NQb29sOihXS1By
b2Nlc3NQb29sICopcHJvY2Vzc1Bvb2wgZGlkUmVxdWVzdEF1dG9tYXRpb25TZXNzaW9uV2l0aElk
ZW50aWZpZXI6KE5TU3RyaW5nICopaWRlbnRpZmllciBjb25maWd1cmF0aW9uOihfV0tBdXRvbWF0
aW9uU2Vzc2lvbkNvbmZpZ3VyYXRpb24gKiljb25maWd1cmF0aW9uIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7CiAKLS0gKE5TU3RyaW5nICopX3Byb2Nlc3NQb29s
QnJvd3Nlck5hbWVGb3JBdXRvbWF0aW9uOihXS1Byb2Nlc3NQb29sICopcHJvY2Vzc1Bvb2wgV0tf
QVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTQpLCBpb3MoMTIuMCkpOwotLSAoTlNTdHJpbmcgKilf
cHJvY2Vzc1Bvb2xCcm93c2VyVmVyc2lvbkZvckF1dG9tYXRpb246KFdLUHJvY2Vzc1Bvb2wgKilw
cm9jZXNzUG9vbCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xNCksIGlvcygxMi4wKSk7Cist
IChOU1N0cmluZyAqKV9wcm9jZXNzUG9vbEJyb3dzZXJOYW1lRm9yQXV0b21hdGlvbjooV0tQcm9j
ZXNzUG9vbCAqKXByb2Nlc3NQb29sIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpLCBpb3Mo
MTIuMCkpOworLSAoTlNTdHJpbmcgKilfcHJvY2Vzc1Bvb2xCcm93c2VyVmVyc2lvbkZvckF1dG9t
YXRpb246KFdLUHJvY2Vzc1Bvb2wgKilwcm9jZXNzUG9vbCBXS19BUElfQVZBSUxBQkxFKG1hY29z
KDEwLjE0KSwgaW9zKDEyLjApKTsKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRvbWF0aW9uU2Vzc2lvbi5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dG9tYXRpb25TZXNzaW9uLmgKaW5kZXggNWVhYjE1OGQy
NDZhYjk0M2VkNjM0NTlmM2YyMjYwYmMwZjk5Y2RmMy4uZjA0MDYwNGFiMDQyZGRhMzY1NDRlY2Mw
M2FkMzdiODA3YTZkNWY4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL19XS0F1dG9tYXRpb25TZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL19XS0F1dG9tYXRpb25TZXNzaW9uLmgKQEAgLTMyLDcgKzMyLDcgQEAKIAog
TlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIAotV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4x
MiksIGlvcygxMC4wKSkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4w
KSkKIEBpbnRlcmZhY2UgX1dLQXV0b21hdGlvblNlc3Npb24gOiBOU09iamVjdAogCiBAcHJvcGVy
dHkgKG5vbmF0b21pYywgY29weSkgTlNTdHJpbmcgKnNlc3Npb25JZGVudGlmaWVyOwpAQCAtNDEs
MTEgKzQxLDExIEBAIFdLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3MoMTAuMCkp
CiBAcHJvcGVydHkgKG5vbmF0b21pYywgd2VhaykgaWQgPF9XS0F1dG9tYXRpb25TZXNzaW9uRGVs
ZWdhdGU+IGRlbGVnYXRlOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBnZXR0ZXI9
aXNQYWlyZWQpIEJPT0wgcGFpcmVkOwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHks
IGdldHRlcj1pc1NpbXVsYXRpbmdVc2VySW50ZXJhY3Rpb24pIEJPT0wgc2ltdWxhdGluZ1VzZXJJ
bnRlcmFjdGlvbiBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSwgaW9zKDExLjMpKTsK
K0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgZ2V0dGVyPWlzU2ltdWxhdGluZ1VzZXJJ
bnRlcmFjdGlvbikgQk9PTCBzaW11bGF0aW5nVXNlckludGVyYWN0aW9uIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7CiAKIC0gKGluc3RhbmNldHlwZSlpbml0V2l0
aENvbmZpZ3VyYXRpb246KF9XS0F1dG9tYXRpb25TZXNzaW9uQ29uZmlndXJhdGlvbiAqKWNvbmZp
Z3VyYXRpb24gTlNfREVTSUdOQVRFRF9JTklUSUFMSVpFUjsKIAotLSAodm9pZCl0ZXJtaW5hdGUg
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTQpLCBpb3MoMTIuMCkpOworLSAodm9pZCl0ZXJt
aW5hdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4wKSk7CiAKICNpZiAh
VEFSR0VUX09TX0lQSE9ORQogLSAoQk9PTCl3YXNFdmVudFN5bnRoZXNpemVkRm9yQXV0b21hdGlv
bjooTlNFdmVudCAqKWV2ZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS0F1dG9tYXRpb25TZXNzaW9uQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dG9tYXRpb25TZXNzaW9uQ29uZmlndXJhdGlv
bi5oCmluZGV4IGZlYmNlNTQ5ZGFiNmYzNjc2MDZjZDQ0OTY2OTkxZGQ1M2M4MDhjNzIuLjg2YWVj
NDkyNWJjODY2Mjk5YzFjNDdkY2E1NzhmYzE0YjlkNmIxMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRvbWF0aW9uU2Vzc2lvbkNvbmZpZ3VyYXRp
b24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0b21hdGlv
blNlc3Npb25Db25maWd1cmF0aW9uLmgKQEAgLTI5LDcgKzI5LDcgQEAKIAogTlNfQVNTVU1FX05P
Tk5VTExfQkVHSU4KIAotV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSwgaW9zKFdL
X0lPU19UQkEpKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoV0tfSU9T
X1RCQSkpCiBAaW50ZXJmYWNlIF9XS0F1dG9tYXRpb25TZXNzaW9uQ29uZmlndXJhdGlvbiA6IE5T
T2JqZWN0IDxOU0NvcHlpbmc+CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGFsbG93c0lu
c2VjdXJlTWVkaWFDYXB0dXJlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS0F1dG9tYXRpb25TZXNzaW9uRGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRvbWF0aW9uU2Vzc2lvbkRlbGVnYXRlLmgKaW5kZXgg
ZjkzMWU5ZGRlZDgyNmFhZmM2NDhjOTE3OGYzNmRmZmM1MTk5NzMxNi4uZjQ0ZTc2MjM0N2VkYzY0
MDdmYWU5OGZhNmQxYTU4MTc3YTYxN2JjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS0F1dG9tYXRpb25TZXNzaW9uRGVsZWdhdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0b21hdGlvblNlc3Npb25EZWxlZ2F0
ZS5oCkBAIC0zOCwzNCArMzgsMzQgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLQXV0
b21hdGlvblNlc3Npb25KYXZhU2NyaXB0RGlhbG9nVHlwZSkgewogICAgIF9XS0F1dG9tYXRpb25T
ZXNzaW9uSmF2YVNjcmlwdERpYWxvZ1R5cGVBbGVydCwKICAgICBfV0tBdXRvbWF0aW9uU2Vzc2lv
bkphdmFTY3JpcHREaWFsb2dUeXBlQ29uZmlybSwKICAgICBfV0tBdXRvbWF0aW9uU2Vzc2lvbkph
dmFTY3JpcHREaWFsb2dUeXBlUHJvbXB0LAotfSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4x
NCksIGlvcygxMi4wKSk7Cit9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpLCBpb3MoMTIu
MCkpOwogCiB0eXBlZGVmIE5TX0VOVU0oTlNVSW50ZWdlciwgX1dLQXV0b21hdGlvblNlc3Npb25C
cm93c2luZ0NvbnRleHRPcHRpb25zKSB7CiAgICAgX1dLQXV0b21hdGlvblNlc3Npb25Ccm93c2lu
Z0NvbnRleHRPcHRpb25zUHJlZmVyTmV3VGFiID0gMSA8PCAwLAotfSBXS19BUElfQVZBSUxBQkxF
KG1hY29zeCgxMC4xNCksIGlvcygxMi4wKSk7Cit9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAu
MTQpLCBpb3MoMTIuMCkpOwogCiB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tBdXRvbWF0
aW9uU2Vzc2lvbkJyb3dzaW5nQ29udGV4dFByZXNlbnRhdGlvbikgewogICAgIF9XS0F1dG9tYXRp
b25TZXNzaW9uQnJvd3NpbmdDb250ZXh0UHJlc2VudGF0aW9uVGFiLAogICAgIF9XS0F1dG9tYXRp
b25TZXNzaW9uQnJvd3NpbmdDb250ZXh0UHJlc2VudGF0aW9uV2luZG93LAotfSBXS19BUElfQVZB
SUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK30gV0tfQVBJX0FW
QUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogQHByb3RvY29s
IF9XS0F1dG9tYXRpb25TZXNzaW9uRGVsZWdhdGUgPE5TT2JqZWN0PgogQG9wdGlvbmFsCiAKIC0g
KHZvaWQpX2F1dG9tYXRpb25TZXNzaW9uRGlkRGlzY29ubmVjdEZyb21SZW1vdGU6KF9XS0F1dG9t
YXRpb25TZXNzaW9uICopYXV0b21hdGlvblNlc3Npb247CiAKLS0gKHZvaWQpX2F1dG9tYXRpb25T
ZXNzaW9uOihfV0tBdXRvbWF0aW9uU2Vzc2lvbiAqKWF1dG9tYXRpb25TZXNzaW9uIHJlcXVlc3RO
ZXdXZWJWaWV3V2l0aE9wdGlvbnM6KF9XS0F1dG9tYXRpb25TZXNzaW9uQnJvd3NpbmdDb250ZXh0
T3B0aW9ucylvcHRpb25zIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKFdLV2ViVmlldyAqIF9O
dWxsYWJsZSkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTQp
LCBpb3MoMTIuMCkpOwotLSAodm9pZClfYXV0b21hdGlvblNlc3Npb246KF9XS0F1dG9tYXRpb25T
ZXNzaW9uICopYXV0b21hdGlvblNlc3Npb24gcmVxdWVzdEhpZGVXaW5kb3dPZldlYlZpZXc6KFdL
V2ViVmlldyAqKXdlYlZpZXcgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikodm9pZCkpY29tcGxl
dGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTQpLCBpb3MoMTIuMCkpOwot
LSAodm9pZClfYXV0b21hdGlvblNlc3Npb246KF9XS0F1dG9tYXRpb25TZXNzaW9uICopYXV0b21h
dGlvblNlc3Npb24gcmVxdWVzdFJlc3RvcmVXaW5kb3dPZldlYlZpZXc6KFdLV2ViVmlldyAqKXdl
YlZpZXcgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIg
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTQpLCBpb3MoMTIuMCkpOwotLSAodm9pZClfYXV0
b21hdGlvblNlc3Npb246KF9XS0F1dG9tYXRpb25TZXNzaW9uICopYXV0b21hdGlvblNlc3Npb24g
cmVxdWVzdE1heGltaXplV2luZG93T2ZXZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNvbXBs
ZXRpb25IYW5kbGVyOih2b2lkKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KDEwLjE0KSwgaW9zKDEyLjApKTsKLS0gKHZvaWQpX2F1dG9tYXRpb25TZXNz
aW9uOihfV0tBdXRvbWF0aW9uU2Vzc2lvbiAqKWF1dG9tYXRpb25TZXNzaW9uIHJlcXVlc3RTd2l0
Y2hUb1dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQo
Xikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTQp
LCBpb3MoMTIuMCkpOwotLSAoQk9PTClfYXV0b21hdGlvblNlc3Npb246KF9XS0F1dG9tYXRpb25T
ZXNzaW9uICopYXV0b21hdGlvblNlc3Npb24gaXNTaG93aW5nSmF2YVNjcmlwdERpYWxvZ0Zvcldl
YlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMp
LCBpb3MoMTEuMCkpOwotLSAodm9pZClfYXV0b21hdGlvblNlc3Npb246KF9XS0F1dG9tYXRpb25T
ZXNzaW9uICopYXV0b21hdGlvblNlc3Npb24gZGlzbWlzc0N1cnJlbnRKYXZhU2NyaXB0RGlhbG9n
Rm9yV2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgx
MC4xMyksIGlvcygxMS4wKSk7Ci0tICh2b2lkKV9hdXRvbWF0aW9uU2Vzc2lvbjooX1dLQXV0b21h
dGlvblNlc3Npb24gKilhdXRvbWF0aW9uU2Vzc2lvbiBhY2NlcHRDdXJyZW50SmF2YVNjcmlwdERp
YWxvZ0ZvcldlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goMTAuMTMpLCBpb3MoMTEuMCkpOwotLSAobnVsbGFibGUgTlNTdHJpbmcgKilfYXV0b21hdGlv
blNlc3Npb246KF9XS0F1dG9tYXRpb25TZXNzaW9uICopYXV0b21hdGlvblNlc3Npb24gbWVzc2Fn
ZU9mQ3VycmVudEphdmFTY3JpcHREaWFsb2dGb3JXZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzKSwgaW9zKDExLjApKTsKLS0gKHZvaWQpX2F1
dG9tYXRpb25TZXNzaW9uOihfV0tBdXRvbWF0aW9uU2Vzc2lvbiAqKWF1dG9tYXRpb25TZXNzaW9u
IHNldFVzZXJJbnB1dDooTlNTdHJpbmcgKil2YWx1ZSBmb3JDdXJyZW50SmF2YVNjcmlwdERpYWxv
Z0ZvcldlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3go
MTAuMTMpLCBpb3MoMTEuMCkpOwotLSAoX1dLQXV0b21hdGlvblNlc3Npb25KYXZhU2NyaXB0RGlh
bG9nVHlwZSlfYXV0b21hdGlvblNlc3Npb246KF9XS0F1dG9tYXRpb25TZXNzaW9uICopYXV0b21h
dGlvblNlc3Npb24gdHlwZU9mQ3VycmVudEphdmFTY3JpcHREaWFsb2dGb3JXZWJWaWV3OihXS1dl
YlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjE0KSwgaW9zKDEyLjAp
KTsKLS0gKF9XS0F1dG9tYXRpb25TZXNzaW9uQnJvd3NpbmdDb250ZXh0UHJlc2VudGF0aW9uKV9h
dXRvbWF0aW9uU2Vzc2lvbjooX1dLQXV0b21hdGlvblNlc3Npb24gKilhdXRvbWF0aW9uU2Vzc2lv
biBjdXJyZW50UHJlc2VudGF0aW9uRm9yV2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBXS19B
UElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZv
aWQpX2F1dG9tYXRpb25TZXNzaW9uOihfV0tBdXRvbWF0aW9uU2Vzc2lvbiAqKWF1dG9tYXRpb25T
ZXNzaW9uIHJlcXVlc3ROZXdXZWJWaWV3V2l0aE9wdGlvbnM6KF9XS0F1dG9tYXRpb25TZXNzaW9u
QnJvd3NpbmdDb250ZXh0T3B0aW9ucylvcHRpb25zIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4p
KFdLV2ViVmlldyAqIF9OdWxsYWJsZSkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMC4xNCksIGlvcygxMi4wKSk7CistICh2b2lkKV9hdXRvbWF0aW9uU2Vzc2lvbjoo
X1dLQXV0b21hdGlvblNlc3Npb24gKilhdXRvbWF0aW9uU2Vzc2lvbiByZXF1ZXN0SGlkZVdpbmRv
d09mV2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjb21wbGV0aW9uSGFuZGxlcjoodm9pZChe
KSh2b2lkKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSwg
aW9zKDEyLjApKTsKKy0gKHZvaWQpX2F1dG9tYXRpb25TZXNzaW9uOihfV0tBdXRvbWF0aW9uU2Vz
c2lvbiAqKWF1dG9tYXRpb25TZXNzaW9uIHJlcXVlc3RSZXN0b3JlV2luZG93T2ZXZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKHZvaWQpKWNvbXBs
ZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpLCBpb3MoMTIuMCkpOwor
LSAodm9pZClfYXV0b21hdGlvblNlc3Npb246KF9XS0F1dG9tYXRpb25TZXNzaW9uICopYXV0b21h
dGlvblNlc3Npb24gcmVxdWVzdE1heGltaXplV2luZG93T2ZXZWJWaWV3OihXS1dlYlZpZXcgKil3
ZWJWaWV3IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVy
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpLCBpb3MoMTIuMCkpOworLSAodm9pZClfYXV0
b21hdGlvblNlc3Npb246KF9XS0F1dG9tYXRpb25TZXNzaW9uICopYXV0b21hdGlvblNlc3Npb24g
cmVxdWVzdFN3aXRjaFRvV2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjb21wbGV0aW9uSGFu
ZGxlcjoodm9pZCheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDEwLjE0KSwgaW9zKDEyLjApKTsKKy0gKEJPT0wpX2F1dG9tYXRpb25TZXNzaW9uOihfV0tB
dXRvbWF0aW9uU2Vzc2lvbiAqKWF1dG9tYXRpb25TZXNzaW9uIGlzU2hvd2luZ0phdmFTY3JpcHRE
aWFsb2dGb3JXZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTAuMTMpLCBpb3MoMTEuMCkpOworLSAodm9pZClfYXV0b21hdGlvblNlc3Npb246KF9XS0F1
dG9tYXRpb25TZXNzaW9uICopYXV0b21hdGlvblNlc3Npb24gZGlzbWlzc0N1cnJlbnRKYXZhU2Ny
aXB0RGlhbG9nRm9yV2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjEzKSwgaW9zKDExLjApKTsKKy0gKHZvaWQpX2F1dG9tYXRpb25TZXNzaW9uOihf
V0tBdXRvbWF0aW9uU2Vzc2lvbiAqKWF1dG9tYXRpb25TZXNzaW9uIGFjY2VwdEN1cnJlbnRKYXZh
U2NyaXB0RGlhbG9nRm9yV2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKTsKKy0gKG51bGxhYmxlIE5TU3RyaW5nICopX2F1
dG9tYXRpb25TZXNzaW9uOihfV0tBdXRvbWF0aW9uU2Vzc2lvbiAqKWF1dG9tYXRpb25TZXNzaW9u
IG1lc3NhZ2VPZkN1cnJlbnRKYXZhU2NyaXB0RGlhbG9nRm9yV2ViVmlldzooV0tXZWJWaWV3ICop
d2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKTsKKy0gKHZv
aWQpX2F1dG9tYXRpb25TZXNzaW9uOihfV0tBdXRvbWF0aW9uU2Vzc2lvbiAqKWF1dG9tYXRpb25T
ZXNzaW9uIHNldFVzZXJJbnB1dDooTlNTdHJpbmcgKil2YWx1ZSBmb3JDdXJyZW50SmF2YVNjcmlw
dERpYWxvZ0ZvcldlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMC4xMyksIGlvcygxMS4wKSk7CistIChfV0tBdXRvbWF0aW9uU2Vzc2lvbkphdmFTY3Jp
cHREaWFsb2dUeXBlKV9hdXRvbWF0aW9uU2Vzc2lvbjooX1dLQXV0b21hdGlvblNlc3Npb24gKilh
dXRvbWF0aW9uU2Vzc2lvbiB0eXBlT2ZDdXJyZW50SmF2YVNjcmlwdERpYWxvZ0ZvcldlYlZpZXc6
KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygx
Mi4wKSk7CistIChfV0tBdXRvbWF0aW9uU2Vzc2lvbkJyb3dzaW5nQ29udGV4dFByZXNlbnRhdGlv
bilfYXV0b21hdGlvblNlc3Npb246KF9XS0F1dG9tYXRpb25TZXNzaW9uICopYXV0b21hdGlvblNl
c3Npb24gY3VycmVudFByZXNlbnRhdGlvbkZvcldlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAog
QGVuZAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
Q29udGV4dE1lbnVFbGVtZW50SW5mby5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS0NvbnRleHRNZW51RWxlbWVudEluZm8uaAppbmRleCBmNDBiYWNkNDQxN2FjZDQ4N2I4
MzAxNTQyYmI0ZjE4MGYxOGI5NGIyLi4zNDIzNmFlYWIxOWMzZjdiNjEwM2YxYTU3ZTU1YmJiYmI4
NGFmZmVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
Q29udGV4dE1lbnVFbGVtZW50SW5mby5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvLmgKQEAgLTI5LDcgKzI5LDcgQEAKIAog
TlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIAotV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4x
MikpCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTIpKQogQGludGVyZmFjZSBfV0tDb250
ZXh0TWVudUVsZW1lbnRJbmZvIDogTlNPYmplY3QgPE5TQ29weWluZz4KIAogQGVuZApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0RpYWdub3N0aWNMb2dn
aW5nRGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tEaWFn
bm9zdGljTG9nZ2luZ0RlbGVnYXRlLmgKaW5kZXggYzA3MGVjYzhmOGE3ZjIwMDQ5Y2FiNTg5OTE3
NTk5ZjIzZDI0MDAyNC4uYzQ3NjhkYjA4ODBkYjBiYWRhNjM1MTQ2NDRhNzIzZTUzZDk1NWE2YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0RpYWdub3N0
aWNMb2dnaW5nRGVsZWdhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLRGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZS5oCkBAIC0zMSw3ICszMSw3IEBAIHR5cGVk
ZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS0RpYWdub3N0aWNMb2dnaW5nUmVzdWx0VHlwZSkgewog
ICAgIF9XS0RpYWdub3N0aWNMb2dnaW5nUmVzdWx0UGFzcywKICAgICBfV0tEaWFnbm9zdGljTG9n
Z2luZ1Jlc3VsdEZhaWwsCiAgICAgX1dLRGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHROb29wLAotfSBX
S19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKK30gV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xMSksIGlvcyg5LjApKTsKIAogQHByb3RvY29sIF9XS0RpYWdub3N0aWNM
b2dnaW5nRGVsZWdhdGUgPE5TT2JqZWN0PgogQG9wdGlvbmFsCkBAIC0zOSw2ICszOSw2IEBAIHR5
cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS0RpYWdub3N0aWNMb2dnaW5nUmVzdWx0VHlwZSkg
ewogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBsb2dEaWFnbm9zdGljTWVz
c2FnZTooTlNTdHJpbmcgKiltZXNzYWdlIGRlc2NyaXB0aW9uOihOU1N0cmluZyAqKWRlc2NyaXB0
aW9uOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBsb2dEaWFnbm9zdGlj
TWVzc2FnZVdpdGhSZXN1bHQ6KE5TU3RyaW5nICopbWVzc2FnZSBkZXNjcmlwdGlvbjooTlNTdHJp
bmcgKilkZXNjcmlwdGlvbiByZXN1bHQ6KF9XS0RpYWdub3N0aWNMb2dnaW5nUmVzdWx0VHlwZSly
ZXN1bHQ7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGxvZ0RpYWdub3N0
aWNNZXNzYWdlV2l0aFZhbHVlOihOU1N0cmluZyAqKW1lc3NhZ2UgZGVzY3JpcHRpb246KE5TU3Ry
aW5nICopZGVzY3JpcHRpb24gdmFsdWU6KE5TU3RyaW5nICopIHZhbHVlOwotLSAodm9pZClfd2Vi
VmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhFbmhhbmNl
ZFByaXZhY3k6KE5TU3RyaW5nICopbWVzc2FnZSBkZXNjcmlwdGlvbjooTlNTdHJpbmcgKilkZXNj
cmlwdGlvbiBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7CistICh2
b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0
aEVuaGFuY2VkUHJpdmFjeTooTlNTdHJpbmcgKiltZXNzYWdlIGRlc2NyaXB0aW9uOihOU1N0cmlu
ZyAqKWRlc2NyaXB0aW9uIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkp
OwogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLRG93bmxvYWQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tEb3du
bG9hZC5oCmluZGV4IGFiYThmOGJhYzI1NmNjZmZlNWM4YjFiMDJjYmMyMTQzNzFiZmM1MTMuLjZh
NmY5YzVmYjljMTc4NzljOTk4NzFhMTQ4YjRmOWE3N2YyMDA0ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tEb3dubG9hZC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tEb3dubG9hZC5oCkBAIC0yOSwxNyArMjksMTcg
QEAKIAogQGNsYXNzIFdLV2ViVmlldzsKIAotV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4x
MCksIGlvcyg4LjApKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDguMCkp
CiBAaW50ZXJmYWNlIF9XS0Rvd25sb2FkIDogTlNPYmplY3QgPE5TQ29weWluZz4KIAogLSAodm9p
ZCljYW5jZWw7CiAKLS0gKHZvaWQpcHVibGlzaFByb2dyZXNzQXRVUkw6KE5TVVJMICopVVJMIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAo
dm9pZClwdWJsaXNoUHJvZ3Jlc3NBdFVSTDooTlNVUkwgKilVUkwgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogQHByb3BlcnR5IChub25hdG9t
aWMsIHJlYWRvbmx5KSBOU1VSTFJlcXVlc3QgKnJlcXVlc3Q7CiBAcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZG9ubHksIHdlYWspIFdLV2ViVmlldyAqb3JpZ2luYXRpbmdXZWJWaWV3OwotQHByb3Bl
cnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBjb3B5KSBOU0FycmF5PE5TVVJMICo+ICpyZWRpcmVj
dENoYWluIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpLCBpb3MoMTEuMykpOwotQHBy
b3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIHdhc1VzZXJJbml0aWF0ZWQgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCksIGlvcygxMS4zKSk7Ci1AcHJvcGVydHkgKG5vbmF0
b21pYywgcmVhZG9ubHkpIE5TRGF0YSAqcmVzdW1lRGF0YSBXS19BUElfQVZBSUxBQkxFKG1hY29z
eChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBy
ZWFkb25seSwgY29weSkgTlNBcnJheTxOU1VSTCAqPiAqcmVkaXJlY3RDaGFpbiBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOworQHByb3BlcnR5IChub25hdG9taWMs
IHJlYWRvbmx5KSBCT09MIHdhc1VzZXJJbml0aWF0ZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygx
MC4xMy40KSwgaW9zKDExLjMpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNE
YXRhICpyZXN1bWVEYXRhIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhX
S19JT1NfVEJBKSk7CiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tEb3dubG9hZERlbGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLRG93bmxvYWREZWxlZ2F0ZS5oCmluZGV4IDc4OTU5MmQxMjdjNWFhMTQy
MTUxOTVkNTk0NTcxOTEwZjNiNThhOGYuLjBiZTM1MzdhMjY5YzQ2MTJmNTZmY2FlMDE3MDhhNTBj
MGY4MWY2MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tEb3dubG9hZERlbGVnYXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS0Rvd25sb2FkRGVsZWdhdGUuaApAQCAtMzIsMTcgKzMyLDE3IEBACiBAcHJvdG9jb2wg
X1dLRG93bmxvYWREZWxlZ2F0ZSA8TlNPYmplY3Q+CiBAb3B0aW9uYWwKIC0gKHZvaWQpX2Rvd25s
b2FkRGlkU3RhcnQ6KF9XS0Rvd25sb2FkICopZG93bmxvYWQ7Ci0tICh2b2lkKV9kb3dubG9hZDoo
X1dLRG93bmxvYWQgKilkb3dubG9hZCBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RUb1VSTDooTlNV
UkwgKil1cmwgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCksIGlvcygxMS4zKSk7Cist
ICh2b2lkKV9kb3dubG9hZDooX1dLRG93bmxvYWQgKilkb3dubG9hZCBkaWRSZWNlaXZlU2VydmVy
UmVkaXJlY3RUb1VSTDooTlNVUkwgKil1cmwgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40
KSwgaW9zKDExLjMpKTsKIC0gKHZvaWQpX2Rvd25sb2FkOihfV0tEb3dubG9hZCAqKWRvd25sb2Fk
IGRpZFJlY2VpdmVSZXNwb25zZTooTlNVUkxSZXNwb25zZSAqKXJlc3BvbnNlOwogLSAodm9pZClf
ZG93bmxvYWQ6KF9XS0Rvd25sb2FkICopZG93bmxvYWQgZGlkUmVjZWl2ZURhdGE6KHVpbnQ2NF90
KWxlbmd0aDsKIC0gKHZvaWQpX2Rvd25sb2FkOihfV0tEb3dubG9hZCAqKWRvd25sb2FkIGRlY2lk
ZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1lOihOU1N0cmluZyAqKWZpbGVuYW1lIGNv
bXBsZXRpb25IYW5kbGVyOih2b2lkICheKShCT09MIGFsbG93T3ZlcndyaXRlLCBOU1N0cmluZyAq
ZGVzdGluYXRpb24pKWNvbXBsZXRpb25IYW5kbGVyOwogLSAodm9pZClfZG93bmxvYWREaWRGaW5p
c2g6KF9XS0Rvd25sb2FkICopZG93bmxvYWQ7CiAtICh2b2lkKV9kb3dubG9hZDooX1dLRG93bmxv
YWQgKilkb3dubG9hZCBkaWRGYWlsV2l0aEVycm9yOihOU0Vycm9yICopZXJyb3I7CiAtICh2b2lk
KV9kb3dubG9hZERpZENhbmNlbDooX1dLRG93bmxvYWQgKilkb3dubG9hZDsKLS0gKHZvaWQpX2Rv
d25sb2FkOihfV0tEb3dubG9hZCAqKWRvd25sb2FkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZTooTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSAqKWNoYWxsZW5nZSBjb21wbGV0
aW9uSGFuZGxlcjoodm9pZCAoXikoTlNVUkxTZXNzaW9uQXV0aENoYWxsZW5nZURpc3Bvc2l0aW9u
LCBOU1VSTENyZWRlbnRpYWwqKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeCgxMC4xMy40KSwgaW9zKDExLjMpKTsKLS0gKHZvaWQpX2Rvd25sb2FkOihfV0tEb3dubG9h
ZCAqKWRvd25sb2FkIGRpZENyZWF0ZURlc3RpbmF0aW9uOihOU1N0cmluZyAqKWRlc3RpbmF0aW9u
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpLCBpb3MoMTEuMykpOwotLSAodm9pZClf
ZG93bmxvYWRQcm9jZXNzRGlkQ3Jhc2g6KF9XS0Rvd25sb2FkICopZG93bmxvYWQgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goMTAuMTMuNCksIGlvcygxMS4zKSk7Ci0tIChCT09MKV9kb3dubG9hZDoo
X1dLRG93bmxvYWQgKilkb3dubG9hZCBzaG91bGREZWNvZGVTb3VyY2VEYXRhT2ZNSU1FVHlwZToo
TlNTdHJpbmcgKilNSU1FVHlwZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSwgaW9z
KDExLjMpKTsKKy0gKHZvaWQpX2Rvd25sb2FkOihfV0tEb3dubG9hZCAqKWRvd25sb2FkIGRpZFJl
Y2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTooTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZSAqKWNoYWxsZW5nZSBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNVUkxTZXNzaW9uQXV0
aENoYWxsZW5nZURpc3Bvc2l0aW9uLCBOU1VSTENyZWRlbnRpYWwqKSljb21wbGV0aW9uSGFuZGxl
ciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOworLSAodm9pZClf
ZG93bmxvYWQ6KF9XS0Rvd25sb2FkICopZG93bmxvYWQgZGlkQ3JlYXRlRGVzdGluYXRpb246KE5T
U3RyaW5nICopZGVzdGluYXRpb24gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9z
KDExLjMpKTsKKy0gKHZvaWQpX2Rvd25sb2FkUHJvY2Vzc0RpZENyYXNoOihfV0tEb3dubG9hZCAq
KWRvd25sb2FkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7Cist
IChCT09MKV9kb3dubG9hZDooX1dLRG93bmxvYWQgKilkb3dubG9hZCBzaG91bGREZWNvZGVTb3Vy
Y2VEYXRhT2ZNSU1FVHlwZTooTlNTdHJpbmcgKilNSU1FVHlwZSBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOwogCi0tIChOU1N0cmluZyAqKV9kb3dubG9hZDooX1dL
RG93bmxvYWQgKilkb3dubG9hZCBkZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFt
ZTooTlNTdHJpbmcgKilmaWxlbmFtZSBhbGxvd092ZXJ3cml0ZTooQk9PTCAqKWFsbG93T3Zlcndy
aXRlIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIl9kb3dubG9hZDpkZWNpZGVE
ZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZTpjb21wbGV0aW9uSGFuZGxlcjoiLCBtYWNv
c3goMTAuMTAsIDEwLjEzLjQpLCBpb3MoOC4wLCAxMS4zKSk7CistIChOU1N0cmluZyAqKV9kb3du
bG9hZDooX1dLRG93bmxvYWQgKilkb3dubG9hZCBkZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0
ZWRGaWxlbmFtZTooTlNTdHJpbmcgKilmaWxlbmFtZSBhbGxvd092ZXJ3cml0ZTooQk9PTCAqKWFs
bG93T3ZlcndyaXRlIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIl9kb3dubG9h
ZDpkZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZTpjb21wbGV0aW9uSGFuZGxl
cjoiLCBtYWNvcygxMC4xMCwgMTAuMTMuNCksIGlvcyg4LjAsIDExLjMpKTsKIEBlbmQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVtZW50QWN0aW9u
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVudEFjdGlvbi5o
CmluZGV4IGM5NmQzZDYzM2M2YTgyYjg1OGMyZmU3NjE5ODgyNTEyYWMwZTZhMDcuLjlmNTRjZDc0
NTkwMzJiMzMyOGEwNzBiNzFmNDhmMDExOGUzMWJjYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVtZW50QWN0aW9uLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRBY3Rpb24uaApAQCAtNDMsOSArNDMs
OSBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tFbGVtZW50QWN0aW9uVHlwZSkgewog
ICAgIF9XS0VsZW1lbnRBY3Rpb25UeXBlT3BlbkluRXh0ZXJuYWxBcHBsaWNhdGlvbiBXS19BUElf
QVZBSUxBQkxFKGlvcyg5XzApKSwKICNlbmRpZgogICAgIF9XS0VsZW1lbnRBY3Rpb25UeXBlU2hh
cmUgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTAuMCkpLAotfSBXS19BUElfQVZBSUxBQkxFKG1hY29z
eCgxMC4xMCksIGlvcyg4LjApKTsKK30gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMCksIGlv
cyg4LjApKTsKIAotV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQor
V0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIF9X
S0VsZW1lbnRBY3Rpb24gOiBOU09iamVjdAogCiArIChpbnN0YW5jZXR5cGUpZWxlbWVudEFjdGlv
bldpdGhUeXBlOihfV0tFbGVtZW50QWN0aW9uVHlwZSl0eXBlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0V4cGVyaW1lbnRhbEZlYXR1cmUuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFeHBlcmltZW50YWxGZWF0dXJlLmgK
aW5kZXggZWIxZGM5MmJkNzc0YmFlNjRkYWJlYTY1YjQyZmI1OGVlZjQ3ZjY0Yy4uMWQ0NGY3YjNm
NzZiZjI5ZGExNTgyNmYzNTlhZDFmMGZlMDA0NjhjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0V4cGVyaW1lbnRhbEZlYXR1cmUuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRXhwZXJpbWVudGFsRmVhdHVyZS5oCkBA
IC0yNyw3ICsyNyw3IEBACiAKICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgogCi1X
S19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKQorV0tfQ0xBU1NfQVZB
SUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKQogQGludGVyZmFjZSBfV0tFeHBlcmltZW50
YWxGZWF0dXJlIDogTlNPYmplY3QKIAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBj
b3B5KSBOU1N0cmluZyAqa2V5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS0ZpbmRPcHRpb25zLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLRmluZE9wdGlvbnMuaAppbmRleCA0ZjIyMjg0MjI0NWNjY2I1ZTE1YjU0M2M1YWJh
ODRkNDY1MmMyNzAyLi5kMmExZmRlNTRiMTk1ODAwODg2NDcwZjQ2MTk2MDUzNDYwMjdiZDU1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRmluZE9wdGlv
bnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRmluZE9wdGlv
bnMuaApAQCAtMzksNCArMzksNCBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dL
RmluZE9wdGlvbnMpIHsKICAgICBfV0tGaW5kT3B0aW9uc0lycmVsZXZhbnRGb3JJbmNyZW1lbnRh
bFJlc3VsdHMgPSBfV0tGaW5kT3B0aW9uc1Nob3dPdmVybGF5IHwgX1dLRmluZE9wdGlvbnNTaG93
RmluZEluZGljYXRvciB8IF9XS0ZpbmRPcHRpb25zU2hvd0hpZ2hsaWdodCB8IF9XS0ZpbmRPcHRp
b25zRGV0ZXJtaW5lTWF0Y2hJbmRleCwKICAgICBfV0tGaW5kT3B0aW9uc0lycmVsZXZhbnRGb3JC
YXRjaFJlc3VsdHMgPSBfV0tGaW5kT3B0aW9uc0JhY2t3YXJkcyB8IF9XS0ZpbmRPcHRpb25zV3Jh
cEFyb3VuZCB8IF9XS0ZpbmRPcHRpb25zSXJyZWxldmFudEZvckluY3JlbWVudGFsUmVzdWx0cwog
Ci19IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpOworfSBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDguMCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0ZvY3VzZWRFbGVtZW50SW5mby5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0ZvY3VzZWRFbGVtZW50SW5mby5oCmluZGV4
IDQ3YmViZTJkYWE1NDRhNWEwMDFmZmJhZWFhZTFlNjAzM2I4MmE4Y2QuLjFmM2E3MWEyNDAwYWVh
MjBlYzMwNzdiN2YwYmZmZmRjNDZlYjk3ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tGb2N1c2VkRWxlbWVudEluZm8uaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRm9jdXNlZEVsZW1lbnRJbmZvLmgKQEAgLTgxLDYg
KzgxLDYgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgV0tJbnB1dFR5cGUpIHsKICAqLwog
QHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBnZXR0ZXI9aXNVc2VySW5pdGlhdGVkKSBC
T09MIHVzZXJJbml0aWF0ZWQ7CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNP
YmplY3QgPE5TU2VjdXJlQ29kaW5nPiAqdXNlck9iamVjdCBXS19BUElfQVZBSUxBQkxFKG1hY29z
eCgxMC4xMy40KSwgaW9zKDExLjMpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkg
TlNPYmplY3QgPE5TU2VjdXJlQ29kaW5nPiAqdXNlck9iamVjdCBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOwogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRm9ybUlucHV0U2Vzc2lvbi5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0Zvcm1JbnB1dFNlc3Npb24uaAppbmRleCBiZDk3
ZmJkMjk3MzdjMGRhZDg3NjE0NjhlNTQwNTAyOWY4MzU3M2IwLi41YzZiYmFlYjllM2ZmZDIwM2E1
NzNjMmMwZTI5YjRlZWMzYjgwZjFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLRm9ybUlucHV0U2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tGb3JtSW5wdXRTZXNzaW9uLmgKQEAgLTM0LDcgKzM0LDcgQEAK
IAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBnZXR0ZXI9aXNWYWxpZCkgQk9PTCB2
YWxpZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNPYmplY3QgPE5TU2VjdXJl
Q29kaW5nPiAqdXNlck9iamVjdDsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgaWQg
PF9XS0ZvY3VzZWRFbGVtZW50SW5mbz4gZm9jdXNlZEVsZW1lbnRJbmZvIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFk
b25seSkgaWQgPF9XS0ZvY3VzZWRFbGVtZW50SW5mbz4gZm9jdXNlZEVsZW1lbnRJbmZvIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOwogCiAjaWYgVEFSR0VUX09TX0lQ
SE9ORQogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIE5TU3RyaW5nICphY2Nlc3NvcnlWaWV3
Q3VzdG9tQnV0dG9uVGl0bGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLRnVsbHNjcmVlbkRlbGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLRnVsbHNjcmVlbkRlbGVnYXRlLmgKaW5kZXggZmRlYjQ1YTNlODA3Yjc5
NjkzY2JiZGY0NjBhNGIwOWUyMTg4NmU1Yy4uZmViNTc5MDQzYjg1NTY5YmU4ODhlMWMxNmY0MDEz
OGNhNWMyYWFiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L19XS0Z1bGxzY3JlZW5EZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tGdWxsc2NyZWVuRGVsZWdhdGUuaApAQCAtMjUsNyArMjUsNyBAQAogCiAjaW1w
b3J0IDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+CiAKLVdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEw
LjEzKSwgaW9zKDExLjMpKQorV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4z
KSkKIEBwcm90b2NvbCBfV0tGdWxsc2NyZWVuRGVsZWdhdGUgPE5TT2JqZWN0PgogCiBAb3B0aW9u
YWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tHZW9s
b2NhdGlvbkNvcmVMb2NhdGlvblByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLR2VvbG9jYXRpb25Db3JlTG9jYXRpb25Qcm92aWRlci5oCmluZGV4IDU1MTE0
ZTMzNzM3MTUxYjZjMzkzMTI2OTM4YjQzYWZjMWM5MWIyZmEuLjE5ODVmMjBiM2NiZDdkYjA3MDZh
NWRlNzljNzMxODA3YjI2MGY4Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tHZW9sb2NhdGlvbkNvcmVMb2NhdGlvblByb3ZpZGVyLmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0dlb2xvY2F0aW9uQ29yZUxvY2F0aW9u
UHJvdmlkZXIuaApAQCAtMzMsNyArMzMsNyBAQCBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogCiBA
Y2xhc3MgX1dLR2VvbG9jYXRpb25Qb3NpdGlvbjsKIAotV0tfQVBJX0FWQUlMQUJMRShtYWNvc3go
MTAuMTMpLCBpb3MoMTEuMCkpCitXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDEx
LjApKQogQHByb3RvY29sIF9XS0dlb2xvY2F0aW9uQ29yZUxvY2F0aW9uTGlzdGVuZXIgPE5TT2Jq
ZWN0PgogLSAodm9pZClnZW9sb2NhdGlvbkF1dGhvcml6YXRpb25HcmFudGVkOwogLSAodm9pZCln
ZW9sb2NhdGlvbkF1dGhvcml6YXRpb25EZW5pZWQ7CkBAIC00Miw3ICs0Miw3IEBAIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3N4KDEwLjEzKSwgaW9zKDExLjApKQogLSAodm9pZClyZXNldEdlb2xvY2F0
aW9uOwogQGVuZAogCi1XS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSkK
K1dLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpCiBAcHJvdG9jb2wgX1dL
R2VvbG9jYXRpb25Db3JlTG9jYXRpb25Qcm92aWRlciA8TlNPYmplY3Q+CiAtICh2b2lkKXNldExp
c3RlbmVyOihpZCA8X1dLR2VvbG9jYXRpb25Db3JlTG9jYXRpb25MaXN0ZW5lcj4pbGlzdGVuZXI7
CiAtICh2b2lkKXJlcXVlc3RHZW9sb2NhdGlvbkF1dGhvcml6YXRpb247CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yLmgKaW5kZXggZGEyYzM1NjYy
M2U3NWIwN2U5M2Y1NTQ0ZDcxZjFjYjdiNjgzODZmNy4uYWNhOGRmNDFkYmNhOThmODU5MTM5OTc3
NWQ4OWRkZmQ3NzlhOWVlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL19XS0luc3BlY3Rvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tJbnNwZWN0b3IuaApAQCAtMzEsNyArMzEsNyBAQAogCiBOU19BU1NVTUVfTk9OTlVM
TF9CRUdJTgogCi1XS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19J
T1NfVEJBKSkKIEBpbnRlcmZhY2UgX1dLSW5zcGVjdG9yIDogTlNPYmplY3QKIAogLSAoaW5zdGFu
Y2V0eXBlKWluaXQgTlNfVU5BVkFJTEFCTEU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yV2luZG93LmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yV2luZG93LmgKaW5kZXggNmY1ZjdkOGI1NmVl
MWJjN2U1YzMzM2VmZjJlNTU2MTgxZjE1MTFhMC4uYjFhNzMyOTAwN2QwYWIwMDBhOWU5YTYzZDRl
YjFhY2Y1ZDNjM2Y0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS0luc3BlY3RvcldpbmRvdy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tJbnNwZWN0b3JXaW5kb3cuaApAQCAtMjcsNyArMjcsNyBAQAogCiAjaWYgIVRB
UkdFVF9PU19JUEhPTkUKIAotV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSkK
K1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSkKIEBpbnRlcmZhY2UgX1dLSW5z
cGVjdG9yV2luZG93IDogTlNXaW5kb3cKIAogQHByb3BlcnR5IChub25hdG9taWMsIGdldHRlcj1p
c0ZvclJlbW90ZVRhcmdldCkgQk9PTCBmb3JSZW1vdGVUYXJnZXQ7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW50ZXJuYWxEZWJ1Z0ZlYXR1cmUuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnRlcm5hbERlYnVnRmVhdHVy
ZS5oCmluZGV4IDE3Y2YyOTNmZGFhNGY2OGJlMTI4OWM5M2I1OTM2NzI3NWZiMDA0ZjMuLjY1YzY2
Yjk3N2ExM2MwNzMzNWU0ZWQ1YmRiN2FiNDRkZTE2ZDlmYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnRlcm5hbERlYnVnRmVhdHVyZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnRlcm5hbERlYnVnRmVhdHVy
ZS5oCkBAIC0yNyw3ICsyNyw3IEBACiAKICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5o
PgogCi1XS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RC
QSkpCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSkKIEBpbnRlcmZhY2UgX1dLSW50ZXJuYWxEZWJ1Z0ZlYXR1cmUgOiBOU09iamVjdAogCiBAcHJv
cGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGNvcHkpIE5TU3RyaW5nICprZXk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLTGF5b3V0TW9kZS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0xheW91dE1vZGUuaAppbmRleCAy
MmI4YTIyMDMxZmRjMDJjZWQzOWRiZWY4MTgwYTVlM2YzNDM2MzA1Li43ODE0NjcxYTlkZjJlODcy
OWRjMmFjMGFhZjQwMWJiZGEyN2NmZjVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLTGF5b3V0TW9kZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tMYXlvdXRNb2RlLmgKQEAgLTM1LDQgKzM1LDQgQEAgdHlwZWRlZiBO
U19FTlVNKE5TVUludGVnZXIsIF9XS0xheW91dE1vZGUpIHsKICAgICAvLyBMYXkgb3V0IHRoZSB2
aWV3IGF0IGEgaGV1cmlzdGljYWxseS1kZXRlcm1pbmVkIHNpemUgYmFzZWQgb24gdGhlIG1pbmlt
dW0gc2l6ZSBvZiB0aGUgZG9jdW1lbnQuCiAgICAgX1dLTGF5b3V0TW9kZUR5bmFtaWNTaXplQ29t
cHV0ZWRGcm9tTWluaW11bURvY3VtZW50U2l6ZSA9IDQsCiAKLX0gV0tfQVBJX0FWQUlMQUJMRSht
YWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7Cit9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTEp
LCBpb3MoOS4wKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLTGlua0ljb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLTGlua0ljb25QYXJhbWV0ZXJzLmgKaW5kZXggZWYwZjc0ZGVhN2YzNWIxNjljNDU5
Y2JlZDIwNmI1MjBjNzA4Y2ZmOC4uNjEyMDkzMWY0ZDI4YWQ0Yzc2ZjdiMTllMGRjMzA2ZjE2OWMx
MDIxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0xp
bmtJY29uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tMaW5rSWNvblBhcmFtZXRlcnMuaApAQCAtMzEsOSArMzEsOSBAQCB0eXBlZGVmIE5TX0VO
VU0oTlNJbnRlZ2VyLCBXS0xpbmtJY29uVHlwZSkgewogICAgIFdLTGlua0ljb25UeXBlRmF2aWNv
biwKICAgICBXS0xpbmtJY29uVHlwZVRvdWNoSWNvbiwKICAgICBXS0xpbmtJY29uVHlwZVRvdWNo
UHJlY29tcG9zZWRJY29uLAotfSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMi4zKSwgaW9z
KDEwLjMpKTsKK30gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMi4zKSwgaW9zKDEwLjMpKTsK
IAotV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMi4zKSwgaW9zKDEwLjMpKQorV0tfQ0xB
U1NfQVZBSUxBQkxFKG1hY29zKDEwLjEyLjMpLCBpb3MoMTAuMykpCiBAaW50ZXJmYWNlIF9XS0xp
bmtJY29uUGFyYW1ldGVycyA6IE5TT2JqZWN0CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFk
b25seSwgY29weSkgTlNVUkwgKnVybDsKQEAgLTQxLDYgKzQxLDYgQEAgV0tfQ0xBU1NfQVZBSUxB
QkxFKG1hY29zeCgxMC4xMi4zKSwgaW9zKDEwLjMpKQogQHByb3BlcnR5IChub25hdG9taWMsIHJl
YWRvbmx5LCBjb3B5KSBOU1N0cmluZyAqbWltZVR5cGU7CiBAcHJvcGVydHkgKG5vbmF0b21pYywg
cmVhZG9ubHksIGNvcHkpIE5TTnVtYmVyICpzaXplOwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywg
cmVhZG9ubHksIGNvcHkpIE5TRGljdGlvbmFyeSAqYXR0cmlidXRlcyBXS19BUElfQVZBSUxBQkxF
KG1hY29zeCgxMC4xNCksIGlvcygxMi4wKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9u
bHksIGNvcHkpIE5TRGljdGlvbmFyeSAqYXR0cmlidXRlcyBXS19BUElfQVZBSUxBQkxFKG1hY29z
KDEwLjE0KSwgaW9zKDEyLjApKTsKIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS092ZXJsYXlTY3JvbGxiYXJTdHlsZS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS092ZXJsYXlTY3JvbGxiYXJTdHlsZS5oCmluZGV4
IDA3YzZlM2Q3ZWVjY2ViYWRkMDk1ZWJkMTc3OTkzMGQyOThkM2Y5NGIuLmE3MGMxMzYyOGNjZjBi
NzUxMmViOThjNWY5YzNjMjhhOWM0NDRmMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tPdmVybGF5U2Nyb2xsYmFyU3R5bGUuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLT3ZlcmxheVNjcm9sbGJhclN0eWxlLmgKQEAg
LTM0LDQgKzM0LDQgQEAgdHlwZWRlZiBOU19FTlVNKE5TVUludGVnZXIsIF9XS092ZXJsYXlTY3Jv
bGxiYXJTdHlsZSkgewogICAgIC8vIGhldXJpc3RpYyB0byBjaG9vc2UgYW4gYXBwcm9wcmlhdGUg
Y29sb3IuCiAgICAgX1dLT3ZlcmxheVNjcm9sbGJhclN0eWxlQXV0b21hdGljCiAKLX0gV0tfQVBJ
X0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7Cit9IFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTAuMTEpLCBpb3MoOS4wKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgKaW5k
ZXggMjFiMjE3YzU4OWQ3MTA5NmJlMTA3NDFhYmM1MmM3YTg2ZTllZTRkOC4uM2FiMGMzYmY1MWU2
NWI4MDdiYTQzNDY3MGYxZjZlZTM4MTU1NTJlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRp
b24uaApAQCAtMjgsMTggKzI4LDE4IEBACiAKIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAKLVdL
X0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKK1dLX0NMQVNTX0FWQUlM
QUJMRShtYWNvcygxMC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBfV0tQcm9jZXNzUG9vbENv
bmZpZ3VyYXRpb24gOiBOU09iamVjdCA8TlNDb3B5aW5nPgogCiBAcHJvcGVydHkgKG5vbmF0b21p
YywgY29weSkgTlNVUkwgKmluamVjdGVkQnVuZGxlVVJMOwotQHByb3BlcnR5IChub25hdG9taWMp
IE5TVUludGVnZXIgbWF4aW11bVByb2Nlc3NDb3VudCBXS19BUElfREVQUkVDQVRFRCgiSXQgaXMg
bm8gbG9uZ2VyIHBvc3NpYmxlIHRvIGxpbWl0IHRoZSBudW1iZXIgb2YgcHJvY2Vzc2VzIiwgbWFj
b3N4KFdLX01BQ19UQkEsIFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSwgV0tfSU9TX1RCQSkp
OwotQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgdXNlc1NpbmdsZVdlYlByb2Nlc3MgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci1AcHJvcGVy
dHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHkpIE5TU3RyaW5nICpjdXN0b21XZWJDb250ZW50
U2VydmljZUJ1bmRsZUlkZW50aWZpZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RC
QSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYykgTlNVSW50ZWdlciBt
YXhpbXVtUHJvY2Vzc0NvdW50IFdLX0FQSV9ERVBSRUNBVEVEKCJJdCBpcyBubyBsb25nZXIgcG9z
c2libGUgdG8gbGltaXQgdGhlIG51bWJlciBvZiBwcm9jZXNzZXMiLCBtYWNvcyhXS19NQUNfVEJB
LCBXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEsIFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAo
bm9uYXRvbWljKSBCT09MIHVzZXNTaW5nbGVXZWJQcm9jZXNzIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywg
bnVsbGFibGUsIGNvcHkpIE5TU3RyaW5nICpjdXN0b21XZWJDb250ZW50U2VydmljZUJ1bmRsZUlk
ZW50aWZpZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19U
QkEpKTsKIAotQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgaWdub3JlU3luY2hyb25vdXNNZXNz
YWdpbmdUaW1lb3V0c0ZvclRlc3RpbmcgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBp
b3MoMTAuMCkpOwotQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgYXR0clN0eWxlRW5hYmxlZCBX
S19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bw
cm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGlnbm9yZVN5bmNocm9ub3VzTWVzc2FnaW5nVGltZW91
dHNGb3JUZXN0aW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOwor
QHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgYXR0clN0eWxlRW5hYmxlZCBXS19BUElfQVZBSUxB
QkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCi1AcHJvcGVydHkgKG5v
bmF0b21pYywgY29weSkgTlNBcnJheTxOU1VSTCAqPiAqYWRkaXRpb25hbFJlYWRBY2Nlc3NBbGxv
d2VkVVJMcyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7CitAcHJv
cGVydHkgKG5vbmF0b21pYywgY29weSkgTlNBcnJheTxOU1VSTCAqPiAqYWRkaXRpb25hbFJlYWRB
Y2Nlc3NBbGxvd2VkVVJMcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjAp
KTsKIAogI2lmIFRBUkdFVF9PU19JUEhPTkUgJiYgIVRBUkdFVF9PU19TSU1VTEFUT1IKIEBwcm9w
ZXJ0eSAobm9uYXRvbWljKSBOU1VJbnRlZ2VyIHdpcmVsZXNzQ29udGV4dElkZW50aWZpZXI7CkBA
IC00OCwyOCArNDgsMjggQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4
LjApKQogLy8gTmV0d29yayBQcm9jZXNzIHByb3BlcnRpZXMKIC8vIEZJWE1FOiBUaGVzZSBzaG91
bGQgYmUgYmUgcGVyLXNlc3Npb24vZGF0YSBzdG9yZSB3aGVuIHdlIHN1cHBvcnQgbXVsdGlwbGUg
bm9uLXBlcnNpc3RlbnQgc2Vzc2lvbnMvZGF0YSBzdG9yZXMuCiAKLUBwcm9wZXJ0eSAobm9uYXRv
bWljKSBOU0ludGVnZXIgZGlza0NhY2hlU2l6ZU92ZXJyaWRlIFdLX0FQSV9ERVBSRUNBVEVEKCJV
c2UgW1dLV2Vic2l0ZURhdGFTdG9yZSBub25QZXJzaXN0ZW50RGF0YVN0b3JlXSB0byBsaW1pdCBk
aXNrIGNhY2hlIHNpemUgdG8gMCIsIG1hY29zeCgxMC4xMSwgV0tfTUFDX1RCQSksIGlvcyg5LjAs
IFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBOU0ludGVnZXIgZGlza0NhY2hl
U2l6ZU92ZXJyaWRlIFdLX0FQSV9ERVBSRUNBVEVEKCJVc2UgW1dLV2Vic2l0ZURhdGFTdG9yZSBu
b25QZXJzaXN0ZW50RGF0YVN0b3JlXSB0byBsaW1pdCBkaXNrIGNhY2hlIHNpemUgdG8gMCIsIG1h
Y29zKDEwLjExLCBXS19NQUNfVEJBKSwgaW9zKDkuMCwgV0tfSU9TX1RCQSkpOwogQHByb3BlcnR5
IChub25hdG9taWMsIGNvcHkpIE5TQXJyYXkgKmNhY2hlUGFydGl0aW9uZWRVUkxTY2hlbWVzOwot
QHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIE5TQXJyYXk8TlNTdHJpbmcgKj4gKmFsd2F5c1Jl
dmFsaWRhdGVkVVJMU2NoZW1lcyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMiksIGlvcygx
MC4wKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBkaXNrQ2FjaGVTcGVjdWxhdGl2ZVZh
bGlkYXRpb25FbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjAp
KTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSkgTlNTdHJpbmcgKnNvdXJj
ZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExB
Q0VNRU5UKCJfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5zb3VyY2VBcHBsaWNhdGlv
bkJ1bmRsZUlkZW50aWZpZXIiLCBtYWNvc3goMTAuMTIuMywgV0tfTUFDX1RCQSksIGlvcygxMC4z
LCBXS19JT1NfVEJBKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHkpIE5T
U3RyaW5nICpzb3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXIgV0tfQVBJX0RFUFJF
Q0FURURfV0lUSF9SRVBMQUNFTUVOVCgiX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24u
c291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyIiwgbWFjb3N4KDEwLjEyLjMsIFdL
X01BQ19UQkEpLCBpb3MoMTAuMywgV0tfSU9TX1RCQSkpOwotQHByb3BlcnR5IChub25hdG9taWMp
IEJPT0wgc2hvdWxkQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3MgV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goMTAuMTMpLCBpb3MoMTEuMCkpOworQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIE5TQXJy
YXk8TlNTdHJpbmcgKj4gKmFsd2F5c1JldmFsaWRhdGVkVVJMU2NoZW1lcyBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09M
IGRpc2tDYWNoZVNwZWN1bGF0aXZlVmFsaWRhdGlvbkVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMC4xMiksIGlvcygxMC4wKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUs
IGNvcHkpIE5TU3RyaW5nICpzb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIgV0tfQVBJ
X0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3Vy
YXRpb24uc291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyIiwgbWFjb3MoMTAuMTIuMywg
V0tfTUFDX1RCQSksIGlvcygxMC4zLCBXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21p
YywgbnVsbGFibGUsIGNvcHkpIE5TU3RyaW5nICpzb3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlk
ZW50aWZpZXIgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiX1dLV2Vic2l0ZURh
dGFTdG9yZUNvbmZpZ3VyYXRpb24uc291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVy
IiwgbWFjb3MoMTAuMTIuMywgV0tfTUFDX1RCQSksIGlvcygxMC4zLCBXS19JT1NfVEJBKSk7CitA
cHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBzaG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2VzcyBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKTsKICNpZiBUQVJHRVRfT1Nf
SVBIT05FCiBAcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHkpIE5TU3RyaW5nICpD
VERhdGFDb25uZWN0aW9uU2VydmljZVR5cGUgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTAuMykpOwog
QHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgYWx3YXlzUnVuc0F0QmFja2dyb3VuZFByaW9yaXR5
IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEwLjMpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09M
IHNob3VsZFRha2VVSUJhY2tncm91bmRBc3NlcnRpb24gV0tfQVBJX0FWQUlMQUJMRShpb3MoMTEu
MCkpOwogI2VuZGlmCi1AcHJvcGVydHkgKG5vbmF0b21pYykgcGlkX3QgcHJlc2VudGluZ0FwcGxp
Y2F0aW9uUElEIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzKSwgaW9zKDExLjApKTsKLUBw
cm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHByb2Nlc3NTd2Fwc09uTmF2aWdhdGlvbiBXS19BUElf
QVZBSUxBQkxFKG1hY29zeCgxMC4xNCksIGlvcygxMi4wKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21p
YykgQk9PTCBhbHdheXNLZWVwQW5kUmV1c2VTd2FwcGVkUHJvY2Vzc2VzIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3N4KDEwLjE0KSwgaW9zKDEyLjApKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09M
IHByb2Nlc3NTd2Fwc09uV2luZG93T3BlbldpdGhPcGVuZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goMTAuMTQpLCBpb3MoMTIuMCkpOwotQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgcHJld2Fy
bXNQcm9jZXNzZXNBdXRvbWF0aWNhbGx5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19U
QkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgdXNlc1dl
YlByb2Nlc3NDYWNoZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdL
X0lPU19UQkEpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHBhZ2VDYWNoZUVuYWJsZWQg
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTQpLCBpb3MoMTIuMCkpOwotQHByb3BlcnR5IChu
b25hdG9taWMpIEJPT0wgc3VwcHJlc3Nlc0Nvbm5lY3Rpb25UZXJtaW5hdGlvbk9uU3lzdGVtQ2hh
bmdlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjE0KSwgaW9zKDEyLjApKTsKLUBwcm9wZXJ0
eSAobm9uYXRvbWljLCBnZXR0ZXI9aXNKSVRFbmFibGVkKSBCT09MIEpJVEVuYWJsZWQgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci1AcHJvcGVy
dHkgKG5vbmF0b21pYykgTlNVSW50ZWdlciBkb3dubG9hZE1vbml0b3JTcGVlZE11bHRpcGxpZXJG
b3JUZXN0aW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9T
X1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMpIHBpZF90IHByZXNlbnRpbmdBcHBsaWNhdGlv
blBJRCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKTsKK0Bwcm9wZXJ0
eSAobm9uYXRvbWljKSBCT09MIHByb2Nlc3NTd2Fwc09uTmF2aWdhdGlvbiBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDEwLjE0KSwgaW9zKDEyLjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09M
IGFsd2F5c0tlZXBBbmRSZXVzZVN3YXBwZWRQcm9jZXNzZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMC4xNCksIGlvcygxMi4wKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBwcm9jZXNz
U3dhcHNPbldpbmRvd09wZW5XaXRoT3BlbmVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQp
LCBpb3MoMTIuMCkpOworQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgcHJld2FybXNQcm9jZXNz
ZXNBdXRvbWF0aWNhbGx5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhX
S19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCB1c2VzV2ViUHJvY2Vzc0Nh
Y2hlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7
CitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBwYWdlQ2FjaGVFbmFibGVkIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTAuMTQpLCBpb3MoMTIuMCkpOworQHByb3BlcnR5IChub25hdG9taWMpIEJP
T0wgc3VwcHJlc3Nlc0Nvbm5lY3Rpb25UZXJtaW5hdGlvbk9uU3lzdGVtQ2hhbmdlIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTAuMTQpLCBpb3MoMTIuMCkpOworQHByb3BlcnR5IChub25hdG9taWMs
IGdldHRlcj1pc0pJVEVuYWJsZWQpIEJPT0wgSklURW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMp
IE5TVUludGVnZXIgZG93bmxvYWRNb25pdG9yU3BlZWRNdWx0aXBsaWVyRm9yVGVzdGluZyBXS19B
UElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiBAZW5k
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tSZW1v
dGVXZWJJbnNwZWN0b3JWaWV3Q29udHJvbGxlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS1JlbW90ZVdlYkluc3BlY3RvclZpZXdDb250cm9sbGVyLmgKaW5kZXggNjc0
MTEzNTBkODhkYTYyMTdhMjQzNTk4YjVmYTcxZTZmMWU3NTJjYi4uZDIzOTBmNWQ3MDYxOTkxYjQ1
YTYwODViMjhlNDExY2MzZjZmZWIyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL19XS1JlbW90ZVdlYkluc3BlY3RvclZpZXdDb250cm9sbGVyLmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1JlbW90ZVdlYkluc3BlY3RvclZp
ZXdDb250cm9sbGVyLmgKQEAgLTM0LDExICszNCwxMSBAQCBOU19BU1NVTUVfTk9OTlVMTF9CRUdJ
TgogCiB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBXS1JlbW90ZVdlYkluc3BlY3RvckRlYnVn
Z2FibGVUeXBlKSB7CiAgICAgV0tSZW1vdGVXZWJJbnNwZWN0b3JEZWJ1Z2dhYmxlVHlwZUphdmFT
Y3JpcHQsCi0gICAgV0tSZW1vdGVXZWJJbnNwZWN0b3JEZWJ1Z2dhYmxlVHlwZVNlcnZpY2VXb3Jr
ZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCksIGlvcygxMS4zKSksCisgICAgV0tS
ZW1vdGVXZWJJbnNwZWN0b3JEZWJ1Z2dhYmxlVHlwZVNlcnZpY2VXb3JrZXIgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKSwKICAgICBXS1JlbW90ZVdlYkluc3BlY3Rv
ckRlYnVnZ2FibGVUeXBlV2ViLAotfSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMi4zKSwg
aW9zKDEwLjMpKTsKK30gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMi4zKSwgaW9zKDEwLjMp
KTsKIAotV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMi4zKSwgaW9zKDEwLjMpKQorV0tf
Q0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEyLjMpLCBpb3MoMTAuMykpCiBAaW50ZXJmYWNlIF9X
S1JlbW90ZVdlYkluc3BlY3RvclZpZXdDb250cm9sbGVyIDogTlNPYmplY3QKIAogQHByb3BlcnR5
IChub25hdG9taWMsIGFzc2lnbikgaWQgPF9XS1JlbW90ZVdlYkluc3BlY3RvclZpZXdDb250cm9s
bGVyRGVsZWdhdGU+IGRlbGVnYXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL19XS1Nlc3Npb25TdGF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS1Nlc3Npb25TdGF0ZS5oCmluZGV4IGEyNTVkMjI3ZDE1NDU2ZmM1NTRkMTVl
NjRlZDJkNDc0NzJhNzdiYzUuLjRkZWJmMGJkZDhkODg0OTZhNDJjODMyMmQwZTRmOTg3ZWI1NDQ4
ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tTZXNz
aW9uU3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLU2Vz
c2lvblN0YXRlLmgKQEAgLTI3LDcgKzI3LDcgQEAKIAogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3Vu
ZGF0aW9uLmg+CiAKLVdLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkK
K1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBf
V0tTZXNzaW9uU3RhdGUgOiBOU09iamVjdAogCiAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhEYXRh
OihOU0RhdGEgKilkYXRhOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL19XS1RleHRJbnB1dENvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tUZXh0SW5wdXRDb250ZXh0LmgKaW5kZXggYzk2YjNkMjA3ZmQ1NGFkNjNiNmZl
YmZkYjk2YTJjNTdlNTJhYmNjNC4uOTRkY2RhYTc0ZjM4NGEwYWE3ODYxMjJlYjYwMTQxYjMzZWQ2
N2NhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Rl
eHRJbnB1dENvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLVGV4dElucHV0Q29udGV4dC5oCkBAIC0yNSw3ICsyNSw3IEBACiAKICNpbXBvcnQgPFdlYktp
dC9XS0ZvdW5kYXRpb24uaD4KIAotV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJB
KSwgaW9zKFdLX0lPU19UQkEpKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpCiBAaW50ZXJmYWNlIF9XS1RleHRJbnB1dENvbnRleHQgOiBOU09i
amVjdCA8TlNDb3B5aW5nPgogCiAtIChpbnN0YW5jZXR5cGUpaW5pdCBOU19VTkFWQUlMQUJMRTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tUaHVtYm5h
aWxWaWV3LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVGh1bWJuYWls
Vmlldy5oCmluZGV4IDM2YTU2MWVkOTQ3YTFhYjczZDJmMTEwODY1YzdhZDNkZGM4MGM1NDUuLjcx
MmM2OTFlMDViNGMxOWQxYzY1ODFjYTU2MDhlYzM5MzczZWY1NmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tUaHVtYm5haWxWaWV3LmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1RodW1ibmFpbFZpZXcuaApAQCAtMzIs
NyArMzIsNyBAQAogQGNsYXNzIFdLVmlldzsKIEBjbGFzcyBXS1dlYlZpZXc7CiAKLVdLX0NMQVNT
X0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKK1dLX0NMQVNTX0FWQUlMQUJMRSht
YWNvcygxMC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBfV0tUaHVtYm5haWxWaWV3IDogTlNW
aWV3CiAKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1VzZXJDb250ZW50RXh0ZW5z
aW9uU3RvcmUuaAppbmRleCBlZjNmODQ5NDhmYzljYjVjOTNjYmMyOGQyNjljOTY0ZjAxY2MyYWFh
Li4wMDdlYmFlZjczOTRlMDhkOTg0MWFjMjgzYWI3Y2MyY2JlMWJjZTVmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNlckNvbnRlbnRFeHRlbnNpb25T
dG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tVc2VyQ29u
dGVudEV4dGVuc2lvblN0b3JlLmgKQEAgLTI3LDcgKzI3LDcgQEAKIAogQGNsYXNzIF9XS1VzZXJD
b250ZW50RmlsdGVyOwogCi1XS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDku
MCkpCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTEpLCBpb3MoOS4wKSkKIEBpbnRlcmZh
Y2UgX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZSA6IE5TT2JqZWN0CiAKICsgKGluc3RhbmNl
dHlwZSlkZWZhdWx0U3RvcmU7CkBAIC0zOSwxMSArMzksMTEgQEAgV0tfQ0xBU1NfQVZBSUxBQkxF
KG1hY29zeCgxMC4xMSksIGlvcyg5LjApKQogCiBAZW5kCiAKLVdLX0VYVEVSTiBOU1N0cmluZyAq
IGNvbnN0IF9XS1VzZXJDb250ZW50RXh0ZW5zaW9uc0RvbWFpbiBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeCgxMC4xMiksIGlvcygxMC4wKSk7CitXS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBfV0tV
c2VyQ29udGVudEV4dGVuc2lvbnNEb21haW4gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiks
IGlvcygxMC4wKSk7CiAKIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS1VzZXJDb250ZW50
RXh0ZW5zaW9uU3RvcmVFcnJvckNvZGUpIHsKICAgICBfV0tVc2VyQ29udGVudEV4dGVuc2lvblN0
b3JlRXJyb3JMb29rdXBGYWlsZWQsCiAgICAgX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZUVy
cm9yVmVyc2lvbk1pc21hdGNoLAogICAgIF9XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmVFcnJv
ckNvbXBpbGVGYWlsZWQsCiAgICAgX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZUVycm9yUmVt
b3ZlRmFpbGVkLAotfSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMiksIGlvcygxMC4wKSk7
Cit9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1VzZXJDb250ZW50RXh0ZW5z
aW9uU3RvcmVQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
VXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZVByaXZhdGUuaAppbmRleCA4MDRjMjZjYTE2YzhiNTlh
ZmI1MmIyZDUyMDg3NDg1MDZiODk2ZWZkLi5lNDJmNDkxNzZmNDIzMDU0OTgwZWM3NTYyN2ZmMGJm
NzNkMzEzYjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZVByaXZhdGUu
aApAQCAtMzMsNyArMzMsNyBAQAogLSAodm9pZClfcmVtb3ZlQWxsQ29udGVudEV4dGVuc2lvbnM7
CiAtICh2b2lkKV9pbnZhbGlkYXRlQ29udGVudEV4dGVuc2lvblZlcnNpb25Gb3JJZGVudGlmaWVy
OihOU1N0cmluZyAqKWlkZW50aWZpZXI7CiAKLS0gKGlkKV9pbml0V2l0aFdLQ29udGVudFJ1bGVM
aXN0U3RvcmU6KFdLQ29udGVudFJ1bGVMaXN0U3RvcmUgKiljb250ZW50UnVsZUxpc3RTdG9yZSBX
S19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7Ci1AcHJvcGVydHkgKG5v
bmF0b21pYywgcmVhZG9ubHkpIFdLQ29udGVudFJ1bGVMaXN0U3RvcmUgKl9jb250ZW50UnVsZUxp
c3RTdG9yZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19U
QkEpKTsKKy0gKGlkKV9pbml0V2l0aFdLQ29udGVudFJ1bGVMaXN0U3RvcmU6KFdLQ29udGVudFJ1
bGVMaXN0U3RvcmUgKiljb250ZW50UnVsZUxpc3RTdG9yZSBXS19BUElfQVZBSUxBQkxFKG1hY29z
KDEwLjEzKSwgaW9zKDExLjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgV0tD
b250ZW50UnVsZUxpc3RTdG9yZSAqX2NvbnRlbnRSdWxlTGlzdFN0b3JlIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIEBlbmQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tVc2VyQ29udGVudEZpbHRl
ci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1VzZXJDb250ZW50Rmls
dGVyLmgKaW5kZXggY2Q0NDkxZTMzMWYwOTFiZDhjNTgyYWJhMjA5OWJlNjkwOGVjYjExMy4uMTdi
NGQxZDY5MWUyMDQwNzAwNmI5OWIwMzAzMjU5ZWI5NDlkYjQ2YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1VzZXJDb250ZW50RmlsdGVyLmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1VzZXJDb250ZW50RmlsdGVyLmgK
QEAgLTI1LDcgKzI1LDcgQEAKIAogI2ltcG9ydCA8V2ViS2l0L1dLRm91bmRhdGlvbi5oPgogCi1X
S19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpCitXS19DTEFTU19BVkFJ
TEFCTEUobWFjb3MoMTAuMTEpLCBpb3MoOS4wKSkKIEBpbnRlcmZhY2UgX1dLVXNlckNvbnRlbnRG
aWx0ZXIgOiBOU09iamVjdAogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLVXNlckNvbnRlbnRGaWx0ZXJQcml2YXRlLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNlckNvbnRlbnRGaWx0ZXJQcml2YXRlLmgKaW5k
ZXggNTUzZTRjYzhhMjY2Y2UxNjI3NDgxOWNmY2Q2MWVmYjk5Y2JkZmQyNC4uNTAwOGI0OTc5ODIz
NmIyNmQ0NmIyMzNiMDIxNWYwNzJhNmM5OTI0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS1VzZXJDb250ZW50RmlsdGVyUHJpdmF0ZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tVc2VyQ29udGVudEZpbHRlclByaXZh
dGUuaApAQCAtMjksNyArMjksNyBAQAogCiBAaW50ZXJmYWNlIF9XS1VzZXJDb250ZW50RmlsdGVy
IChXS1ByaXZhdGUpCiAKLS0gKGlkKV9pbml0V2l0aFdLQ29udGVudFJ1bGVMaXN0OihXS0NvbnRl
bnRSdWxlTGlzdCopY29udGVudFJ1bGVMaXN0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEz
KSwgaW9zKDExLjApKTsKKy0gKGlkKV9pbml0V2l0aFdLQ29udGVudFJ1bGVMaXN0OihXS0NvbnRl
bnRSdWxlTGlzdCopY29udGVudFJ1bGVMaXN0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMp
LCBpb3MoMTEuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIHVzZXND
b3BpZWRNZW1vcnk7CiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tVc2VyQ29udGVudFdvcmxkLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLVXNlckNvbnRlbnRXb3JsZC5oCmluZGV4IGEyODQwZGU4ODU4NGJiNDIy
MTFlODRlMTg5NDE4NDgwZmI0ZWRkODYuLjAwYjg1ZDBmMDdhMjIxNTkwYmZkZTAwNDA2ZDFhYzJh
OTUyM2M0OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tVc2VyQ29udGVudFdvcmxkLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS1VzZXJDb250ZW50V29ybGQuaApAQCAtMjcsNyArMjcsNyBAQAogCiBOU19BU1NVTUVf
Tk9OTlVMTF9CRUdJTgogCi1XS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEw
LjApKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKQogQGludGVy
ZmFjZSBfV0tVc2VyQ29udGVudFdvcmxkIDogTlNPYmplY3QKIAogKyAoX1dLVXNlckNvbnRlbnRX
b3JsZCAqKXdvcmxkV2l0aE5hbWU6KE5TU3RyaW5nICopbmFtZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tVc2VySW5pdGlhdGVkQWN0aW9uLmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNlckluaXRpYXRlZEFjdGlvbi5o
CmluZGV4IGE2NTIxODAyZjZhZjcxMjBjMjQ5ZDEzZWQ0YWIxZTY2N2MyMTZjNjUuLjcyNzU3ZGZh
OTU0OGRmMjA1NmQ4MGI4NzZmMWZkMGE0ZWFkNjJiYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tVc2VySW5pdGlhdGVkQWN0aW9uLmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1VzZXJJbml0aWF0ZWRBY3Rpb24uaApA
QCAtMjksNyArMjksNyBAQAogCiBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogCi1XS19DTEFTU19B
VkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1h
Y29zKDEwLjEyKSwgaW9zKDEwLjApKQogQGludGVyZmFjZSBfV0tVc2VySW5pdGlhdGVkQWN0aW9u
IDogTlNPYmplY3QKIAogLSAodm9pZCljb25zdW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1VzZXJTdHlsZVNoZWV0LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNlclN0eWxlU2hlZXQuaAppbmRleCA4YWIxZmUxYWU1
MjgyNWMxZDk5YTFiOGRkNmU2ODM1YjIwOGJmMDA3Li44NGZhMjVlZDIzMTA1ZTc2M2Q4YzA3MDQz
MzIwYTE1MjVhZmE4OTM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLVXNlclN0eWxlU2hlZXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLVXNlclN0eWxlU2hlZXQuaApAQCAtMzEsNyArMzEsNyBAQCBOU19BU1NVTUVf
Tk9OTlVMTF9CRUdJTgogCiBAY2xhc3MgX1dLVXNlckNvbnRlbnRXb3JsZDsKIAotV0tfQ0xBU1Nf
QVZBSUxBQkxFKG1hY29zeCgxMC4xMiksIGlvcygxMC4wKSkKK1dLX0NMQVNTX0FWQUlMQUJMRSht
YWNvcygxMC4xMiksIGlvcygxMC4wKSkKIEBpbnRlcmZhY2UgX1dLVXNlclN0eWxlU2hlZXQgOiBO
U09iamVjdCA8TlNDb3B5aW5nPgogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGNv
cHkpIE5TU3RyaW5nICpzb3VyY2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLVmlzaXRlZExpbmtTdG9yZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL19XS1Zpc2l0ZWRMaW5rU3RvcmUuaAppbmRleCA0YWZhMTMzZTRlODU2NTgy
ZTI0MDg5ZGM3NjAzMDY1Yjg3NDgzZTVmLi5iYmEzOTZhOTEwYzNhZjk4NWEzMDczNzZhZThjYzIw
YmRiZjEzODg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLVmlzaXRlZExpbmtTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tWaXNpdGVkTGlua1N0b3JlLmgKQEAgLTI2LDEzICsyNiwxMyBAQAogI2ltcG9ydCA8
Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+
CiAKLVdLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKK1dLX0NMQVNT
X0FWQUlMQUJMRShtYWNvcygxMC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBfV0tWaXNpdGVk
TGlua1N0b3JlIDogTlNPYmplY3QKIAogLSAodm9pZClhZGRWaXNpdGVkTGlua1dpdGhVUkw6KE5T
VVJMICopVVJMOwotLSAodm9pZClhZGRWaXNpdGVkTGlua1dpdGhTdHJpbmc6KE5TU3RyaW5nICop
c3RyaW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpLCBpb3MoMTEuMykpOworLSAo
dm9pZClhZGRWaXNpdGVkTGlua1dpdGhTdHJpbmc6KE5TU3RyaW5nICopc3RyaW5nIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7CiAtICh2b2lkKXJlbW92ZUFsbDsK
LS0gKEJPT0wpY29udGFpbnNWaXNpdGVkTGlua1dpdGhVUkw6KE5TVVJMICopVVJMIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpLCBpb3MoMTEuMykpOwotLSAodm9pZClyZW1vdmVWaXNp
dGVkTGlua1dpdGhVUkw6KE5TVVJMICopVVJMIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEz
LjQpLCBpb3MoMTEuMykpOworLSAoQk9PTCljb250YWluc1Zpc2l0ZWRMaW5rV2l0aFVSTDooTlNV
UkwgKilVUkwgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKKy0g
KHZvaWQpcmVtb3ZlVmlzaXRlZExpbmtXaXRoVVJMOihOU1VSTCAqKVVSTCBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOwogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTaXplLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTaXplLmgKaW5kZXgg
MjU2NWI3ZWQ2Mzg4OWFhMzM1ZjkyNTRlMjhhMzM0YzA5NzQwNjViYS4uMGU3ZjYwZDhhODgyMDhl
NGU4MTU2MzU2OWUxN2I1MDI4MjkyMWQ1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU2l6ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVNpemUuaApAQCAtMjksNyArMjksNyBA
QAogCiBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogCi1XS19DTEFTU19BVkFJTEFCTEUobWFjb3N4
KDEwLjEyKSwgaW9zKDEwLjApKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9z
KDEwLjApKQogQGludGVyZmFjZSBfV0tXZWJzaXRlRGF0YVNpemUgOiBOU09iamVjdAogCiBAcHJv
cGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIHVuc2lnbmVkIGxvbmcgbG9uZyB0b3RhbFNpemU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0
ZURhdGFTdG9yZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNp
dGVEYXRhU3RvcmUuaAppbmRleCA1MjA5YzAwZDQyMGM1NGE2MmJhMDZkN2Q0ZDU0ZDQ2ODVlZjdi
YjE2Li40MGI1MjU0ZDczOTdjOGE0ZWU2ODc2NjZmMzhiNjgxM2Q3YjQyMjQxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0
b3JlLmgKQEAgLTI5LDEwICsyOSwxMCBAQAogCiB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdl
ciwgV0tXZWJzaXRlRGF0YVR5cGVzKSB7CiAgICAgV0tXZWJzaXRlRGF0YVR5cGVBbGwgPSBOU1VJ
bnRlZ2VyTWF4LAotfSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsK
K30gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMSksIGlvcyg5LjApKTsKIAogCi1XS19DTEFT
U19ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIldLV2Vic2l0ZURhdGFTdG9yZSIsIG1hY29z
eCgxMC4xMCwgMTAuMTEpLCBpb3MoOC4wLCA5LjApKQorV0tfQ0xBU1NfREVQUkVDQVRFRF9XSVRI
X1JFUExBQ0VNRU5UKCJXS1dlYnNpdGVEYXRhU3RvcmUiLCBtYWNvcygxMC4xMCwgMTAuMTEpLCBp
b3MoOC4wLCA5LjApKQogQGludGVyZmFjZSBfV0tXZWJzaXRlRGF0YVN0b3JlIDogTlNPYmplY3QK
IAogKyAoX1dLV2Vic2l0ZURhdGFTdG9yZSAqKWRlZmF1bHREYXRhU3RvcmU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNv
bmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJz
aXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oCmluZGV4IDU5Y2IyNWM1ZWM3YjlhYjcwNTVkYjQx
NDY3NmQyMzNmZWFlMGQ1ZDcuLjA5ZTI1MWU3N2MwNzY5MjViOTM0ZWNjM2Y2YTlkMGZkMDg0OWIz
NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJz
aXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oCkBAIC0yOSwyMCAr
MjksMjAgQEAKIAogTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIAotV0tfQ0xBU1NfQVZBSUxBQkxF
KG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4x
MyksIGlvcygxMS4wKSkKIEBpbnRlcmZhY2UgX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRp
b24gOiBOU09iamVjdAogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSwgc2V0dGVyPV9zZXRX
ZWJTdG9yYWdlRGlyZWN0b3J5OikgTlNVUkwgKl93ZWJTdG9yYWdlRGlyZWN0b3J5OwogQHByb3Bl
cnR5IChub25hdG9taWMsIGNvcHksIHNldHRlcj1fc2V0SW5kZXhlZERCRGF0YWJhc2VEaXJlY3Rv
cnk6KSBOU1VSTCAqX2luZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5OwogQHByb3BlcnR5IChub25h
dG9taWMsIGNvcHksIHNldHRlcj1fc2V0V2ViU1FMRGF0YWJhc2VEaXJlY3Rvcnk6KSBOU1VSTCAq
X3dlYlNRTERhdGFiYXNlRGlyZWN0b3J5OwogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHksIHNl
dHRlcj1fc2V0Q29va2llU3RvcmFnZUZpbGU6KSBOU1VSTCAqX2Nvb2tpZVN0b3JhZ2VGaWxlOwot
QHByb3BlcnR5IChub25hdG9taWMsIGNvcHksIHNldHRlcj1fc2V0UmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RpcmVjdG9yeTopIE5TVVJMICpfcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSBX
S19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSwgaW9zKDExLjMpKTsKLUBwcm9wZXJ0eSAo
bm9uYXRvbWljLCBjb3B5LCBzZXR0ZXI9X3NldENhY2hlU3RvcmFnZURpcmVjdG9yeTopIE5TVVJM
ICpfY2FjaGVTdG9yYWdlRGlyZWN0b3J5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQp
LCBpb3MoMTEuMykpOwotQHByb3BlcnR5IChub25hdG9taWMsIGNvcHksIHNldHRlcj1fc2V0U2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeTopIE5TVVJMICpfc2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbkRpcmVjdG9yeSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSwgaW9z
KDExLjMpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSkgTlNTdHJpbmcg
KnNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciBXS19BUElfQVZBSUxBQkxFKG1hY29z
eChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBu
dWxsYWJsZSwgY29weSkgTlNTdHJpbmcgKnNvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRp
ZmllciBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSwgc2V0dGVyPXNldEhUVFBQ
cm94eTopIE5TVVJMICpodHRwUHJveHkgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RC
QSksIGlvcyhXS19JT1NfVEJBKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNv
cHksIHNldHRlcj1zZXRIVFRQU1Byb3h5OikgTlNVUkwgKmh0dHBzUHJveHkgV0tfQVBJX0FWQUlM
QUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5v
bmF0b21pYywgY29weSwgc2V0dGVyPV9zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5
OikgTlNVUkwgKl9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5IFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgY29w
eSwgc2V0dGVyPV9zZXRDYWNoZVN0b3JhZ2VEaXJlY3Rvcnk6KSBOU1VSTCAqX2NhY2hlU3RvcmFn
ZURpcmVjdG9yeSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOwor
QHByb3BlcnR5IChub25hdG9taWMsIGNvcHksIHNldHRlcj1fc2V0U2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbkRpcmVjdG9yeTopIE5TVVJMICpfc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVj
dG9yeSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOworQHByb3Bl
cnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5KSBOU1N0cmluZyAqc291cmNlQXBwbGljYXRp
b25CdW5kbGVJZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHkpIE5T
U3RyaW5nICpzb3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXIgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9u
YXRvbWljLCBudWxsYWJsZSwgY29weSwgc2V0dGVyPXNldEhUVFBQcm94eTopIE5TVVJMICpodHRw
UHJveHkgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSwgc2V0dGVyPXNldEhUVFBT
UHJveHk6KSBOU1VSTCAqaHR0cHNQcm94eSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19U
QkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGUuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlRGVsZWdh
dGUuaAppbmRleCAzODA4M2E0NDgxYTI1NTUxY2IyYjg4NzdlYTk4YzAxMGQ2MWRiNjZjLi45YjBl
NzE3MTBjYzJiOWE0ZWJiNGNhZmQyMGVlMzg3YmE0YmFkNzdkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlLmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3Rv
cmVEZWxlZ2F0ZS5oCkBAIC0yNyw3ICsyNyw3IEBACiAKICNpbXBvcnQgPEZvdW5kYXRpb24vRm91
bmRhdGlvbi5oPgogCi1XS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdL
X0lPU19UQkEpKQorV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lP
U19UQkEpKQogQHByb3RvY29sIF9XS1dlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZSA8TlNPYmplY3Q+
CiAKIEBvcHRpb25hbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS1dlYnNpdGVQb2xpY2llcy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS1dlYnNpdGVQb2xpY2llcy5oCmluZGV4IDM0YTMwNjliY2ZmYTQ2OWJhMGJmODNkYWU1
YzRhODU1N2Q1YzlkNjMuLjBkOWIzZmZjODEyZTA4MjMxOWYzMzA4OWIwNzRkODA5YTVkMDk2ODAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRl
UG9saWNpZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vi
c2l0ZVBvbGljaWVzLmgKQEAgLTMwLDQxICszMCw0MSBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRl
Z2VyLCBfV0tXZWJzaXRlQXV0b3BsYXlQb2xpY3kpIHsKICAgICBfV0tXZWJzaXRlQXV0b3BsYXlQ
b2xpY3lBbGxvdywKICAgICBfV0tXZWJzaXRlQXV0b3BsYXlQb2xpY3lBbGxvd1dpdGhvdXRTb3Vu
ZCwKICAgICBfV0tXZWJzaXRlQXV0b3BsYXlQb2xpY3lEZW55Ci19IFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3N4KDEwLjEzKSwgaW9zKDExLjApKTsKK30gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4x
MyksIGlvcygxMS4wKSk7CiAKIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tXZWJz
aXRlQXV0b3BsYXlRdWlyaykgewogICAgIF9XS1dlYnNpdGVBdXRvcGxheVF1aXJrU3ludGhlc2l6
ZWRQYXVzZUV2ZW50cyA9IDEgPDwgMCwKICAgICBfV0tXZWJzaXRlQXV0b3BsYXlRdWlya0luaGVy
aXRlZFVzZXJHZXN0dXJlcyA9IDEgPDwgMSwKICAgICBfV0tXZWJzaXRlQXV0b3BsYXlRdWlya0Fy
Yml0cmFyeVVzZXJHZXN0dXJlcyA9IDEgPDwgMiwKICAgICBfV0tXZWJzaXRlQXV0b3BsYXlRdWly
a1BlckRvY3VtZW50QXV0b3BsYXlCZWhhdmlvciA9IDEgPDwgMywKLX0gV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpOworfSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEw
LjEzKSwgaW9zKDExLjApKTsKIAogdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS1dl
YnNpdGVQb3BVcFBvbGljeSkgewogICAgIF9XS1dlYnNpdGVQb3BVcFBvbGljeURlZmF1bHQsCiAg
ICAgX1dLV2Vic2l0ZVBvcFVwUG9saWN5QWxsb3csCiAgICAgX1dLV2Vic2l0ZVBvcFVwUG9saWN5
QmxvY2ssCi19IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjE0KSwgaW9zKDEyLjApKTsKK30g
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4wKSk7CiAKIHR5cGVkZWYgTlNf
T1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tXZWJzaXRlRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25B
Y2Nlc3NQb2xpY3kpIHsKICAgICBfV0tXZWJzaXRlRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25B
Y2Nlc3NQb2xpY3lBc2ssCiAgICAgX1dLV2Vic2l0ZURldmljZU9yaWVudGF0aW9uQW5kTW90aW9u
QWNjZXNzUG9saWN5R3JhbnQsCiAgICAgX1dLV2Vic2l0ZURldmljZU9yaWVudGF0aW9uQW5kTW90
aW9uQWNjZXNzUG9saWN5RGVueSwKLX0gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTQpLCBp
b3MoMTIuMCkpOworfSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSwgaW9zKDEyLjApKTsK
IAogQGNsYXNzIFdLV2Vic2l0ZURhdGFTdG9yZTsKIAotV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29z
eCgxMC4xMi4zKSwgaW9zKDEwLjMpKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEyLjMp
LCBpb3MoMTAuMykpCiBAaW50ZXJmYWNlIF9XS1dlYnNpdGVQb2xpY2llcyA6IE5TT2JqZWN0CiAK
IEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGNvbnRlbnRCbG9ja2Vyc0VuYWJsZWQ7Ci1AcHJv
cGVydHkgKG5vbmF0b21pYykgX1dLV2Vic2l0ZUF1dG9wbGF5UXVpcmsgYWxsb3dlZEF1dG9wbGF5
UXVpcmtzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzKSwgaW9zKDExLjApKTsKLUBwcm9w
ZXJ0eSAobm9uYXRvbWljKSBfV0tXZWJzaXRlQXV0b3BsYXlQb2xpY3kgYXV0b3BsYXlQb2xpY3kg
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpOwotQHByb3BlcnR5IChu
b25hdG9taWMsIGNvcHkpIE5TRGljdGlvbmFyeTxOU1N0cmluZyAqLCBOU1N0cmluZyAqPiAqY3Vz
dG9tSGVhZGVyRmllbGRzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpLCBpb3MoMTEu
MykpOwotQHByb3BlcnR5IChub25hdG9taWMpIF9XS1dlYnNpdGVQb3BVcFBvbGljeSBwb3BVcFBv
bGljeSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xNCksIGlvcygxMi4wKSk7Ci1AcHJvcGVy
dHkgKG5vbmF0b21pYywgc3Ryb25nKSBXS1dlYnNpdGVEYXRhU3RvcmUgKndlYnNpdGVEYXRhU3Rv
cmUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCksIGlvcygxMS4zKSk7Ci1AcHJvcGVy
dHkgKG5vbmF0b21pYywgY29weSkgTlNTdHJpbmcgKmN1c3RvbVVzZXJBZ2VudCBXS19BUElfQVZB
SUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLUBwcm9wZXJ0eSAo
bm9uYXRvbWljLCBjb3B5KSBOU1N0cmluZyAqY3VzdG9tSmF2YVNjcmlwdFVzZXJBZ2VudEFzU2l0
ZVNwZWNpZmljUXVpcmtzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3Mo
V0tfSU9TX1RCQSkpOwotQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIE5TU3RyaW5nICpjdXN0
b21OYXZpZ2F0b3JQbGF0Zm9ybSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljKSBfV0tXZWJzaXRlRGV2aWNl
T3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NQb2xpY3kgZGV2aWNlT3JpZW50YXRpb25BbmRNb3Rp
b25BY2Nlc3NQb2xpY3kgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhX
S19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYykgX1dLV2Vic2l0ZUF1dG9wbGF5UXVp
cmsgYWxsb3dlZEF1dG9wbGF5UXVpcmtzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBp
b3MoMTEuMCkpOworQHByb3BlcnR5IChub25hdG9taWMpIF9XS1dlYnNpdGVBdXRvcGxheVBvbGlj
eSBhdXRvcGxheVBvbGljeSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjAp
KTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSBOU0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwg
TlNTdHJpbmcgKj4gKmN1c3RvbUhlYWRlckZpZWxkcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEw
LjEzLjQpLCBpb3MoMTEuMykpOworQHByb3BlcnR5IChub25hdG9taWMpIF9XS1dlYnNpdGVQb3BV
cFBvbGljeSBwb3BVcFBvbGljeSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSwgaW9zKDEy
LjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzdHJvbmcpIFdLV2Vic2l0ZURhdGFTdG9yZSAq
d2Vic2l0ZURhdGFTdG9yZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEu
MykpOworQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIE5TU3RyaW5nICpjdXN0b21Vc2VyQWdl
bnQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
K0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSBOU1N0cmluZyAqY3VzdG9tSmF2YVNjcmlwdFVz
ZXJBZ2VudEFzU2l0ZVNwZWNpZmljUXVpcmtzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFD
X1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgTlNT
dHJpbmcgKmN1c3RvbU5hdmlnYXRvclBsYXRmb3JtIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tf
TUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYykgX1dLV2Vi
c2l0ZURldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzUG9saWN5IGRldmljZU9yaWVudGF0
aW9uQW5kTW90aW9uQWNjZXNzUG9saWN5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RC
QSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViUHJvY2Vzcy5oCmluZGV4IDljMjQyZWQzNmY1MDQyMjQwNTRl
NzA1OTI4MDQxODgyMjU0YzU0YTUuLjcyY2EwMzNjZjc5YmFlMWJkNmY3NDA4MDRmODllODQwZWYz
ZDg3MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlByb2Nlc3MuaApAQCAtMzIsNyArMzIsNyBAQAogZXh0ZXJuICJDIiB7CiAjZW5kaWYKIAotV0tf
RVhQT1JUIGludCBXS1dlYlByb2Nlc3NNYWluKGludCBhcmdjLCBjb25zdCBjaGFyKiogYXJndikg
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitX
S19FWFBPUlQgaW50IFdLV2ViUHJvY2Vzc01haW4oaW50IGFyZ2MsIGNvbnN0IGNoYXIqKiBhcmd2
KSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwog
CiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luRWRpdGluZ0Rl
bGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0Nv
Y29hL1dLV2ViUHJvY2Vzc1BsdWdJbkVkaXRpbmdEZWxlZ2F0ZS5oCmluZGV4IDFjZTVmNmNkNWQ4
M2Y5NWUzZjdiMWI1MGU5NjYzODlkYTAwODkxMTAuLjEwYTNhNGVlZmJkNGYzZjdhZWQwNjkxY2E0
ZjZlZmZhMjY1YjRiMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luRWRpdGluZ0RlbGVnYXRlLmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9X
S1dlYlByb2Nlc3NQbHVnSW5FZGl0aW5nRGVsZWdhdGUuaApAQCAtNDEsOSArNDEsOSBAQCB0eXBl
ZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBXS0VkaXRvckluc2VydEFjdGlvbikgewogICAgIFdLRWRp
dG9ySW5zZXJ0QWN0aW9uVHlwZWQsCiAgICAgV0tFZGl0b3JJbnNlcnRBY3Rpb25QYXN0ZWQsCiAg
ICAgV0tFZGl0b3JJbnNlcnRBY3Rpb25Ecm9wcGVkLAotfSBXS19BUElfQVZBSUxBQkxFKG1hY29z
eCgxMC4xMi4zKSwgaW9zKDEwLjMpKTsKK30gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMi4z
KSwgaW9zKDEwLjMpKTsKIAotV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIuMyksIGlvcygx
MC4zKSkKK1dLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIuMyksIGlvcygxMC4zKSkKIEBwcm90
b2NvbCBXS1dlYlByb2Nlc3NQbHVnSW5FZGl0aW5nRGVsZWdhdGUgPE5TT2JqZWN0PgogCiBAb3B0
aW9uYWwKQEAgLTUyLDEzICs1MiwxMyBAQCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMi4z
KSwgaW9zKDEwLjMpKQogI2lmIFRBUkdFVF9PU19JUEhPTkUKIC0gKEJPT0wpX3dlYlByb2Nlc3NQ
bHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXI6KFdLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJD
b250ZXh0Q29udHJvbGxlciAqKWNvbnRyb2xsZXIgc2hvdWxkQ2hhbmdlU2VsZWN0ZWRSYW5nZToo
V0tET01SYW5nZSAqKWN1cnJlbnRSYW5nZSB0b1JhbmdlOihXS0RPTVJhbmdlICopcHJvcG9zZWRS
YW5nZSBhZmZpbml0eTooVUlUZXh0U3RvcmFnZURpcmVjdGlvbilzZWxlY3Rpb25BZmZpbml0eSBz
dGlsbFNlbGVjdGluZzooQk9PTClzdGlsbFNlbGVjdGluZyBXS19BUElfQVZBSUxBQkxFKGlvcygx
MS4wKSk7CiAjZWxzZQotLSAoQk9PTClfd2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29u
dHJvbGxlcjooV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyICopY29u
dHJvbGxlciBzaG91bGRDaGFuZ2VTZWxlY3RlZFJhbmdlOihXS0RPTVJhbmdlICopY3VycmVudFJh
bmdlIHRvUmFuZ2U6KFdLRE9NUmFuZ2UgKilwcm9wb3NlZFJhbmdlIGFmZmluaXR5OihOU1NlbGVj
dGlvbkFmZmluaXR5KXNlbGVjdGlvbkFmZmluaXR5IHN0aWxsU2VsZWN0aW5nOihCT09MKXN0aWxs
U2VsZWN0aW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzKSk7CistIChCT09MKV93ZWJQ
cm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyOihXS1dlYlByb2Nlc3NQbHVnSW5C
cm93c2VyQ29udGV4dENvbnRyb2xsZXIgKiljb250cm9sbGVyIHNob3VsZENoYW5nZVNlbGVjdGVk
UmFuZ2U6KFdLRE9NUmFuZ2UgKiljdXJyZW50UmFuZ2UgdG9SYW5nZTooV0tET01SYW5nZSAqKXBy
b3Bvc2VkUmFuZ2UgYWZmaW5pdHk6KE5TU2VsZWN0aW9uQWZmaW5pdHkpc2VsZWN0aW9uQWZmaW5p
dHkgc3RpbGxTZWxlY3Rpbmc6KEJPT0wpc3RpbGxTZWxlY3RpbmcgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMC4xMykpOwogI2VuZGlmCiAtICh2b2lkKV93ZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNv
bnRleHRDb250cm9sbGVyRGlkQ2hhbmdlQnlFZGl0aW5nOihXS1dlYlByb2Nlc3NQbHVnSW5Ccm93
c2VyQ29udGV4dENvbnRyb2xsZXIgKiljb250cm9sbGVyOwogLSAodm9pZClfd2ViUHJvY2Vzc1Bs
dWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlcjooV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNv
bnRleHRDb250cm9sbGVyICopY29udHJvbGxlciB3aWxsV3JpdGVSYW5nZVRvUGFzdGVib2FyZDoo
V0tXZWJQcm9jZXNzUGx1Z0luUmFuZ2VIYW5kbGUgKilyYW5nZTsKIC0gKE5TRGljdGlvbmFyeTxO
U1N0cmluZyAqLCBOU0RhdGEgKj4gKilfd2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29u
dHJvbGxlcjooV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyICopY29u
dHJvbGxlciBwYXN0ZWJvYXJkRGF0YUZvclJhbmdlOihXS1dlYlByb2Nlc3NQbHVnSW5SYW5nZUhh
bmRsZSAqKXJhbmdlOwogLSAodm9pZClfd2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29u
dHJvbGxlckRpZFdyaXRlVG9QYXN0ZWJvYXJkOihXS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29u
dGV4dENvbnRyb2xsZXIgKiljb250cm9sbGVyOwotLSAoQk9PTClfd2ViUHJvY2Vzc1BsdWdJbkJy
b3dzZXJDb250ZXh0Q29udHJvbGxlcjooV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRD
b250cm9sbGVyICopY29udHJvbGxlciBwZXJmb3JtVHdvU3RlcERyb3A6KFdLV2ViUHJvY2Vzc1Bs
dWdJbk5vZGVIYW5kbGUgKilmcmFnbWVudCBhdERlc3RpbmF0aW9uOihXS1dlYlByb2Nlc3NQbHVn
SW5SYW5nZUhhbmRsZSAqKWRlc3RpbmF0aW9uIGlzTW92ZTooQk9PTClpc01vdmUgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpOworLSAoQk9PTClfd2ViUHJvY2Vzc1Bs
dWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlcjooV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNv
bnRleHRDb250cm9sbGVyICopY29udHJvbGxlciBwZXJmb3JtVHdvU3RlcERyb3A6KFdLV2ViUHJv
Y2Vzc1BsdWdJbk5vZGVIYW5kbGUgKilmcmFnbWVudCBhdERlc3RpbmF0aW9uOihXS1dlYlByb2Nl
c3NQbHVnSW5SYW5nZUhhbmRsZSAqKWRlc3RpbmF0aW9uIGlzTW92ZTooQk9PTClpc01vdmUgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSk7CiAKIEBlbmQKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9X
S1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5oCmluZGV4IGY0NGQw
MDIyYmQ0ZGM5NDQxMGJmOTJmMGUyMmI3YzViYzU5OTkzOGEuLjBjMGM5NTkzZDA5Njg3YTRkMDhk
ZjY4ZWViMjdmMTVmZjE5NzEyYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2Vi
UHJvY2Vzc1BsdWdJbkZyYW1lLmgKQEAgLTM1LDcgKzM1LDcgQEAKIEBjbGFzcyBXS1dlYlByb2Nl
c3NQbHVnSW5SYW5nZUhhbmRsZTsKIEBjbGFzcyBXS1dlYlByb2Nlc3NQbHVnSW5TY3JpcHRXb3Js
ZDsKIAotV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQorV0tfQ0xB
U1NfQVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIFdLV2ViUHJv
Y2Vzc1BsdWdJbkZyYW1lIDogTlNPYmplY3QKIAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRv
bmx5KSBOU1VSTCAqVVJMOwpAQCAtNDYsMTIgKzQ2LDEyIEBAIFdLX0NMQVNTX0FWQUlMQUJMRSht
YWNvc3goMTAuMTApLCBpb3MoOC4wKSkKIAogLy8gUmV0dXJucyBVUkxzIG9yZGVyZWQgYnkgcmVz
b2x1dGlvbiBpbiBkZXNjZW5kaW5nIG9yZGVyLgogLy8gRklYTUU6IFRoZXNlIHNob3VsZCBiZSB0
YWdnZWQgbm9ubnVsbC4KLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNBcnJheTxO
U1VSTCAqPiAqYXBwbGVUb3VjaEljb25VUkxzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEy
KSwgaW9zKDEwLjApKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNBcnJheTxO
U1VSTCAqPiAqZmF2aWNvblVSTHMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3Mo
MTAuMCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU0FycmF5PE5TVVJMICo+
ICphcHBsZVRvdWNoSWNvblVSTHMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygx
MC4wKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TQXJyYXk8TlNVUkwgKj4g
KmZhdmljb25VUkxzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOwog
CiAtIChKU0NvbnRleHQgKilqc0NvbnRleHRGb3JXb3JsZDooV0tXZWJQcm9jZXNzUGx1Z0luU2Ny
aXB0V29ybGQgKil3b3JsZDsKIC0gKFdLV2ViUHJvY2Vzc1BsdWdJbkhpdFRlc3RSZXN1bHQgKilo
aXRUZXN0OihDR1BvaW50KXBvaW50OwogLSAoSlNWYWx1ZSAqKWpzTm9kZUZvck5vZGVIYW5kbGU6
KFdLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGUgKilub2RlSGFuZGxlIGluV29ybGQ6KFdLV2Vi
UHJvY2Vzc1BsdWdJblNjcmlwdFdvcmxkICopd29ybGQ7Ci0tIChKU1ZhbHVlICopanNSYW5nZUZv
clJhbmdlSGFuZGxlOihXS1dlYlByb2Nlc3NQbHVnSW5SYW5nZUhhbmRsZSAqKXJhbmdlSGFuZGxl
IGluV29ybGQ6KFdLV2ViUHJvY2Vzc1BsdWdJblNjcmlwdFdvcmxkICopd29ybGQgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goMTAuMTIuMyksIGlvcygxMC4zKSk7CistIChKU1ZhbHVlICopanNSYW5n
ZUZvclJhbmdlSGFuZGxlOihXS1dlYlByb2Nlc3NQbHVnSW5SYW5nZUhhbmRsZSAqKXJhbmdlSGFu
ZGxlIGluV29ybGQ6KFdLV2ViUHJvY2Vzc1BsdWdJblNjcmlwdFdvcmxkICopd29ybGQgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMC4xMi4zKSwgaW9zKDEwLjMpKTsKIAogQGVuZApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dl
YlByb2Nlc3NQbHVnSW5IaXRUZXN0UmVzdWx0LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkhpdFRlc3RSZXN1bHQu
aAppbmRleCAyZTRkYzE5ODQxYWM5MjllZjBhZjA4OGEwZjA2NTNkODlmOGVjYzE5Li5lZTg2YWJk
OTdkMjQ3MmQ5MTRjOWMzY2NkNmFkNWRiOGMxN2Y1MWRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJ
bkhpdFRlc3RSZXN1bHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkhpdFRlc3RSZXN1bHQuaApAQCAtMjks
NyArMjksNyBAQAogCiBAY2xhc3MgV0tXZWJQcm9jZXNzUGx1Z0luTm9kZUhhbmRsZTsKIAotV0tf
Q0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQorV0tfQ0xBU1NfQVZBSUxB
QkxFKG1hY29zKDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIFdLV2ViUHJvY2Vzc1BsdWdJ
bkhpdFRlc3RSZXN1bHQgOiBOU09iamVjdAogCiBAcHJvcGVydHkgKHJlYWRvbmx5KSBXS1dlYlBy
b2Nlc3NQbHVnSW5Ob2RlSGFuZGxlICpub2RlSGFuZGxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVn
SW5Ob2RlSGFuZGxlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGUuaAppbmRleCAxMTFiYTEyZjcy
Njg4NmE3N2NlOTEzNTZjNTllODg4N2ZiYWRlNmU0Li5iNzMzZTllODNjNjExN2NiMTlmMmFkMjBj
ZTJmZWM0ZDhlNzdjY2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGUuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2Vi
UHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGUuaApAQCAtMzUsNyArMzUsNyBAQAogCiBAY2xhc3MgV0tX
ZWJQcm9jZXNzUGx1Z0luRnJhbWU7CiAKLVdLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTAp
LCBpb3MoOC4wKSkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4xMCksIGlvcyg4LjApKQog
QGludGVyZmFjZSBXS1dlYlByb2Nlc3NQbHVnSW5Ob2RlSGFuZGxlIDogTlNPYmplY3QKIAogKyAo
V0tXZWJQcm9jZXNzUGx1Z0luTm9kZUhhbmRsZSAqKW5vZGVIYW5kbGVXaXRoSlNWYWx1ZTooSlNW
YWx1ZSAqKXZhbHVlIGluQ29udGV4dDooSlNDb250ZXh0ICopY29udGV4dDsKQEAgLTQ1LDggKzQ1
LDggQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQogLSAoVUlJ
bWFnZSAqKXJlbmRlcmVkSW1hZ2VXaXRoT3B0aW9uczooV0tTbmFwc2hvdE9wdGlvbnMpb3B0aW9u
cyBXS19BUElfQVZBSUxBQkxFKGlvcyg5LjApKTsKIC0gKFVJSW1hZ2UgKilyZW5kZXJlZEltYWdl
V2l0aE9wdGlvbnM6KFdLU25hcHNob3RPcHRpb25zKW9wdGlvbnMgd2lkdGg6KE5TTnVtYmVyICop
d2lkdGggV0tfQVBJX0FWQUlMQUJMRShpb3MoMTEuMCkpOwogI2Vsc2UKLS0gKE5TSW1hZ2UgKily
ZW5kZXJlZEltYWdlV2l0aE9wdGlvbnM6KFdLU25hcHNob3RPcHRpb25zKW9wdGlvbnMgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvc3goMTAuMTEpKTsKLS0gKE5TSW1hZ2UgKilyZW5kZXJlZEltYWdlV2l0
aE9wdGlvbnM6KFdLU25hcHNob3RPcHRpb25zKW9wdGlvbnMgd2lkdGg6KE5TTnVtYmVyICopd2lk
dGggV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMpKTsKKy0gKE5TSW1hZ2UgKilyZW5kZXJl
ZEltYWdlV2l0aE9wdGlvbnM6KFdLU25hcHNob3RPcHRpb25zKW9wdGlvbnMgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xMSkpOworLSAoTlNJbWFnZSAqKXJlbmRlcmVkSW1hZ2VXaXRoT3B0aW9u
czooV0tTbmFwc2hvdE9wdGlvbnMpb3B0aW9ucyB3aWR0aDooTlNOdW1iZXIgKil3aWR0aCBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSk7CiAjZW5kaWYKIAogQHByb3BlcnR5IChub25hdG9t
aWMsIHJlYWRvbmx5KSBDR1JlY3QgZWxlbWVudEJvdW5kczsKQEAgLTU1LDcgKzU1LDcgQEAgV0tf
Q0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQogQHByb3BlcnR5IChub25h
dG9taWMsIHJlYWRvbmx5KSBCT09MIEhUTUxUZXh0QXJlYUVsZW1lbnRJc1VzZXJFZGl0ZWQ7CiBA
cHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIFdLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5k
bGUgKkhUTUxUYWJsZUNlbGxFbGVtZW50Q2VsbEFib3ZlOwogQHByb3BlcnR5IChub25hdG9taWMs
IHJlYWRvbmx5KSBXS1dlYlByb2Nlc3NQbHVnSW5GcmFtZSAqZnJhbWU7Ci1AcHJvcGVydHkgKG5v
bmF0b21pYywgcmVhZG9ubHkpIEJPT0wgaXNTZWxlY3RFbGVtZW50IFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9t
aWMsIHJlYWRvbmx5KSBCT09MIGlzU2VsZWN0RWxlbWVudCBXS19BUElfQVZBSUxBQkxFKG1hY29z
KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiAtIChCT09MKWlzVGV4dEZpZWxkOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGVQcml2YXRlLmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJ
bk5vZGVIYW5kbGVQcml2YXRlLmgKaW5kZXggY2E5MGRlMzRjZDZmMWY4OWI3NGFjY2YzMDY4ODVh
M2Q5MzM1NjhkNS4uMTU0YzRkYmFiYWY1NGE1ZGZhOTg1MzdiNTYyODM0YWZiMDY5OWQwMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2Nv
YS9XS1dlYlByb2Nlc3NQbHVnSW5Ob2RlSGFuZGxlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0lu
Tm9kZUhhbmRsZVByaXZhdGUuaApAQCAtMzAsMTQgKzMwLDE0IEBAIHR5cGVkZWYgTlNfRU5VTShO
U0ludGVnZXIsIF9XS0F1dG9GaWxsQnV0dG9uVHlwZSkgewogICAgIF9XS0F1dG9GaWxsQnV0dG9u
VHlwZUNyZWRlbnRpYWxzLAogICAgIF9XS0F1dG9GaWxsQnV0dG9uVHlwZUNvbnRhY3RzLAogICAg
IF9XS0F1dG9GaWxsQnV0dG9uVHlwZVN0cm9uZ1Bhc3N3b3JkLAotICAgIF9XS0F1dG9GaWxsQnV0
dG9uVHlwZUNyZWRpdENhcmQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSksCi19IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpLCBpb3Mo
MTEuMykpOworICAgIF9XS0F1dG9GaWxsQnV0dG9uVHlwZUNyZWRpdENhcmQgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKSwKK30gV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKIAogQGludGVyZmFjZSBXS1dlYlByb2Nl
c3NQbHVnSW5Ob2RlSGFuZGxlIChXS1ByaXZhdGUpCiAKLS0gKEJPT0wpaXNIVE1MSW5wdXRFbGVt
ZW50QXV0b0ZpbGxCdXR0b25FbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQp
LCBpb3MoMTEuMykpOwotLSAodm9pZClzZXRIVE1MSW5wdXRFbGVtZW50QXV0b0ZpbGxCdXR0b25F
bmFibGVkV2l0aEJ1dHRvblR5cGU6KF9XS0F1dG9GaWxsQnV0dG9uVHlwZSlhdXRvRmlsbEJ1dHRv
blR5cGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCksIGlvcygxMS4zKSk7Ci0tIChf
V0tBdXRvRmlsbEJ1dHRvblR5cGUpaHRtbElucHV0RWxlbWVudEF1dG9GaWxsQnV0dG9uVHlwZSBX
S19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSwgaW9zKDExLjMpKTsKLS0gKF9XS0F1dG9G
aWxsQnV0dG9uVHlwZSlodG1sSW5wdXRFbGVtZW50TGFzdEF1dG9GaWxsQnV0dG9uVHlwZSBXS19B
UElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSwgaW9zKDExLjMpKTsKKy0gKEJPT0wpaXNIVE1M
SW5wdXRFbGVtZW50QXV0b0ZpbGxCdXR0b25FbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTAuMTMuNCksIGlvcygxMS4zKSk7CistICh2b2lkKXNldEhUTUxJbnB1dEVsZW1lbnRBdXRvRmls
bEJ1dHRvbkVuYWJsZWRXaXRoQnV0dG9uVHlwZTooX1dLQXV0b0ZpbGxCdXR0b25UeXBlKWF1dG9G
aWxsQnV0dG9uVHlwZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykp
OworLSAoX1dLQXV0b0ZpbGxCdXR0b25UeXBlKWh0bWxJbnB1dEVsZW1lbnRBdXRvRmlsbEJ1dHRv
blR5cGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKKy0gKF9X
S0F1dG9GaWxsQnV0dG9uVHlwZSlodG1sSW5wdXRFbGVtZW50TGFzdEF1dG9GaWxsQnV0dG9uVHlw
ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOwogCiBAZW5kCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0Nv
Y29hL1dLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5QYWdlR3JvdXAu
aAppbmRleCBmM2ZkMTczOWMwMzI4YzliZjRlYTg3M2YyMmE5NTk1N2EwYmE1M2Q4Li5mYTY0NDgy
NmNmZGRkYzQwMmEyZWY4NWNkMDI2Mzc1YWRmMmExMWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJ
blBhZ2VHcm91cC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3VwLmgKQEAgLTI3LDcgKzI3LDcg
QEAKIAogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CiAKLVdLX0NMQVNTX0FWQUlM
QUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygx
MC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBXS1dlYlByb2Nlc3NQbHVnSW5QYWdlR3JvdXAg
OiBOU09iamVjdAogCiBAcHJvcGVydHkgKHJlYWRvbmx5KSBOU1N0cmluZyAqaWRlbnRpZmllcjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Q29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luUmFuZ2VIYW5kbGUuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luUmFuZ2VI
YW5kbGUuaAppbmRleCA3MGRjYjY2OWI5MGJlZDYzYmQ5OTdhMTgwNDcyNzUwNzhjMjlkYjFkLi43
YjFmMjg5NmU3N2RiY2I5MDNkNzc0MDhkYWY0NjliN2FjZDBmNGY3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vz
c1BsdWdJblJhbmdlSGFuZGxlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5SYW5nZUhhbmRsZS5oCkBAIC0z
MSwxMyArMzEsMTMgQEAKIAogQGNsYXNzIFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lOwogCi1XS19D
TEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEyLjMpLCBpb3MoMTAuMykpCitXS19DTEFTU19BVkFJ
TEFCTEUobWFjb3MoMTAuMTIuMyksIGlvcygxMC4zKSkKIEBpbnRlcmZhY2UgV0tXZWJQcm9jZXNz
UGx1Z0luUmFuZ2VIYW5kbGUgOiBOU09iamVjdAogCiArIChXS1dlYlByb2Nlc3NQbHVnSW5SYW5n
ZUhhbmRsZSAqKXJhbmdlSGFuZGxlV2l0aEpTVmFsdWU6KEpTVmFsdWUgKil2YWx1ZSBpbkNvbnRl
eHQ6KEpTQ29udGV4dCAqKWNvbnRleHQ7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25s
eSkgV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUgKmZyYW1lOwotQHByb3BlcnR5IChub25hdG9taWMs
IHJlYWRvbmx5LCBjb3B5KSBOU1N0cmluZyAqdGV4dCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgx
MC4xMyksIGlvcygxMS4wKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGNvcHkp
IE5TU3RyaW5nICp0ZXh0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkp
OwogCiAjaWYgVEFSR0VUX09TX0lQSE9ORQogLSAoTlNBcnJheSAqKWRldGVjdERhdGFXaXRoVHlw
ZXM6KFdLRGF0YURldGVjdG9yVHlwZXMpdHlwZXMgY29udGV4dDooTlNEaWN0aW9uYXJ5ICopY29u
dGV4dCBXS19BUElfQVZBSUxBQkxFKGlvcygxMS4wKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJ
blNjcmlwdFdvcmxkLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJblNjcmlwdFdvcmxkLmgKaW5kZXggYTUxM2U3YmU0
YWIzNWIyODc3Mjk3ZTI0NzRkNzk5M2JiZWFiYjVlMy4uYWFkOWE2NDY4YWIzNTI0MTBiNTRkMjJl
ODE2Njc1NTkyYTVmN2VkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5TY3JpcHRXb3JsZC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tX
ZWJQcm9jZXNzUGx1Z0luU2NyaXB0V29ybGQuaApAQCAtMjcsNyArMjcsNyBAQAogCiAjaW1wb3J0
IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KIAotV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgx
MC4xMCksIGlvcyg4LjApKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDgu
MCkpCiBAaW50ZXJmYWNlIFdLV2ViUHJvY2Vzc1BsdWdJblNjcmlwdFdvcmxkIDogTlNPYmplY3QK
IAogKyAoV0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0V29ybGQgKil3b3JsZDsKQEAgLTM2LDcgKzM2
LDcgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQogQHByb3Bl
cnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBjb3B5KSBOU1N0cmluZyAqbmFtZTsKIAogLSAodm9p
ZCljbGVhcldyYXBwZXJzOwotLSAodm9pZCltYWtlQWxsU2hhZG93Um9vdHNPcGVuIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsKLS0gKHZvaWQpZGlzYWJsZU92ZXJy
aWRlQnVpbHRpbnNCZWhhdmlvciBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xNCksIGlvcygx
Mi4wKSk7CistICh2b2lkKW1ha2VBbGxTaGFkb3dSb290c09wZW4gV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMC4xMiksIGlvcygxMC4wKSk7CistICh2b2lkKWRpc2FibGVPdmVycmlkZUJ1aWx0aW5z
QmVoYXZpb3IgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4wKSk7CiAKIEBl
bmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvbWFjL1dLRE9NRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvbWFjL1dLRE9NRG9jdW1lbnQuaAppbmRleCBhNWZjOWY4NTA5NWVhYTc5NWM5
NDk1YTJjYTc1ZmZmZmY3NmZkNWJmLi5iMjUzNGRmNGU4YTliNmM4YTFmZWU0YmVhZjk2YmNhZWQx
NWQ5YzA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL21hYy9XS0RPTURvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01Eb2N1bWVudC5oCkBAIC0zMCwxNiArMzAsMTYg
QEAKIEBjbGFzcyBXS0RPTUVsZW1lbnQ7CiBAY2xhc3MgV0tET01UZXh0OwogCi1XS19DTEFTU19B
VkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCitXS19DTEFTU19BVkFJTEFCTEUobWFj
b3MoMTAuMTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2UgV0tET01Eb2N1bWVudCA6IFdLRE9NTm9k
ZQogCiAtIChXS0RPTUVsZW1lbnQgKiljcmVhdGVFbGVtZW50OihOU1N0cmluZyAqKXRhZ05hbWU7
CiAtIChXS0RPTVRleHQgKiljcmVhdGVUZXh0Tm9kZTooTlNTdHJpbmcgKilkYXRhOwotLSAoV0tE
T01Ob2RlICopY3JlYXRlRG9jdW1lbnRGcmFnbWVudFdpdGhNYXJrdXBTdHJpbmc6KE5TU3RyaW5n
ICopbWFya3VwU3RyaW5nIGJhc2VVUkw6KE5TVVJMICopYmFzZVVSTCBXS19BUElfQVZBSUxBQkxF
KG1hY29zeCgxMC4xMy40KSwgaW9zKDExLjMpKTsKLS0gKFdLRE9NTm9kZSAqKWNyZWF0ZURvY3Vt
ZW50RnJhZ21lbnRXaXRoVGV4dDooTlNTdHJpbmcgKil0ZXh0IFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KDEwLjEzLjQpLCBpb3MoMTEuMykpOworLSAoV0tET01Ob2RlICopY3JlYXRlRG9jdW1lbnRG
cmFnbWVudFdpdGhNYXJrdXBTdHJpbmc6KE5TU3RyaW5nICopbWFya3VwU3RyaW5nIGJhc2VVUkw6
KE5TVVJMICopYmFzZVVSTCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEu
MykpOworLSAoV0tET01Ob2RlICopY3JlYXRlRG9jdW1lbnRGcmFnbWVudFdpdGhUZXh0OihOU1N0
cmluZyAqKXRleHQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsK
IAogQHByb3BlcnR5KHJlYWRvbmx5KSBXS0RPTUVsZW1lbnQgKmJvZHk7CiAKLS0gKGlkKXBhcnNl
cllpZWxkVG9rZW4gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTQpLCBpb3MoMTIuMCkpOwor
LSAoaWQpcGFyc2VyWWllbGRUb2tlbiBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSwgaW9z
KDEyLjApKTsKIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01FbGVtZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTUVsZW1lbnQuaAppbmRleCBkYTRjZjhm
MDIxMmNiZTBmNzA2OWRlMzJkNTE5ZDNjY2I5NzI4MWY0Li43NjQ5ODIxZmJiYWQ4ZmE0YTVlODAz
OWM2MTE1NTYzYjM0ZTQxMzQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTUVsZW1lbnQuaApAQCAtMjcs
NyArMjcsNyBAQAogCiAjaW1wb3J0IDxXZWJLaXQvV0tET01Ob2RlLmg+CiAKLVdLX0NMQVNTX0FW
QUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNv
cygxMC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBXS0RPTUVsZW1lbnQgOiBXS0RPTU5vZGUK
IAogLSAoQk9PTCloYXNBdHRyaWJ1dGU6KE5TU3RyaW5nICopYXR0cmlidXRlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01O
b2RlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9X
S0RPTU5vZGUuaAppbmRleCA1MDY2Y2UzZmMxY2Y0MGNmYTgwYzcyNzczMTZmOGJkNzFlZWE5Yjhk
Li44ZjAwOGRiNWNhYmNlMDU4NjBlODM2YzUxYzIwMDdmZjQ2YWQ5YjgxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTU5vZGUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9X
S0RPTU5vZGUuaApAQCAtMjksNyArMjksNyBAQAogCiBAY2xhc3MgV0tET01Eb2N1bWVudDsKIAot
V0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQorV0tfQ0xBU1NfQVZB
SUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIFdLRE9NTm9kZSA6IE5T
T2JqZWN0CiAKIC0gKHZvaWQpaW5zZXJ0Tm9kZTooV0tET01Ob2RlICopbm9kZSBiZWZvcmU6KFdL
RE9NTm9kZSAqKXJlZk5vZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTVJhbmdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTVJhbmdlLmgKaW5kZXggZjljMjIzNGUy
NDE1YWU1ZjRiNTBlZGY3Yzc0NzM1MGNmMjdjN2M1Yy4uY2EyNjcwMjQ2NWJkNjcyYzUxMTczYWVk
MDI1Yzk3ZGU4ZGVhMDczYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01SYW5nZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NUmFuZ2UuaApAQCAtMzUsNyArMzUs
NyBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBXS0RPTVJhbmdlRGlyZWN0aW9uKSB7CiB9
OwogCiAKLVdLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKK1dLX0NM
QVNTX0FWQUlMQUJMRShtYWNvcygxMC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBXS0RPTVJh
bmdlIDogTlNPYmplY3QKIAogLSAoaWQpaW5pdFdpdGhEb2N1bWVudDooV0tET01Eb2N1bWVudCAq
KWRvY3VtZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9tYWMvV0tET01UZXh0LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTVRleHQuaAppbmRleCBlMzgxOWQ5YTU3MzQ4MGQyNDU5
NTkzZTgxMWM4YmM2ZmQ0YTUzMjBmLi5jMWVmOWQwMDllNjIxMzgxYmY0ODYwZDFmNTE4MWU3NTI0
YWRjOTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL21hYy9XS0RPTVRleHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTVRleHQuaApAQCAtMjcsNyArMjcsNyBAQAogCiAjaW1w
b3J0IDxXZWJLaXQvV0tET01Ob2RlLmg+CiAKLVdLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAu
MTApLCBpb3MoOC4wKSkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4xMCksIGlvcyg4LjAp
KQogQGludGVyZmFjZSBXS0RPTVRleHQgOiBXS0RPTU5vZGUKIAogQHByb3BlcnR5KG5vbmF0b21p
YywgY29weSkgTlNTdHJpbmcgKmRhdGE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTVRleHRJdGVyYXRvci5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01UZXh0SXRlcmF0
b3IuaAppbmRleCA1MzRhMjliMTMyMWM2NWUzNDkxMDBmM2Y1MWE4YjYzNjczOGZmNDQ4Li43Njli
Zjg5M2E0ZTQ5M2JlMzJiZTFjNGI3NGFmMjUzZTgyZjJlOTllIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTVRleHRJdGVyYXRv
ci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFj
L1dLRE9NVGV4dEl0ZXJhdG9yLmgKQEAgLTI5LDcgKzI5LDcgQEAKIAogQGNsYXNzIFdLRE9NUmFu
Z2U7CiAKLVdLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKK1dLX0NM
QVNTX0FWQUlMQUJMRShtYWNvcygxMC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBXS0RPTVRl
eHRJdGVyYXRvciA6IE5TT2JqZWN0CiAKIC0gKGlkKWluaXRXaXRoUmFuZ2U6KFdLRE9NUmFuZ2Ug
KilyYW5nZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luLmgKaW5kZXggZDdk
ZmY2MTIyMjkzYTFjNDJiMDc4MjgyYzdlM2JjNDNjZjI2ZTJlNi4uOGZiNDY3MWE1ZjIyMDM4OWQ4
YzUyNjg2YjE3NDY4NTY5NDE0MGMyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNz
UGx1Z0luLmgKQEAgLTM5LDkgKzM5LDkgQEAKIC0gKHZvaWQpd2ViUHJvY2Vzc1BsdWdJbjooV0tX
ZWJQcm9jZXNzUGx1Z0luQ29udHJvbGxlciAqKXBsdWdJbkNvbnRyb2xsZXIgd2lsbERlc3Ryb3lC
cm93c2VyQ29udGV4dENvbnRyb2xsZXI6KFdLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0
Q29udHJvbGxlciAqKWJyb3dzZXJDb250ZXh0Q29udHJvbGxlcjsKIEBlbmQKIAotV0tfQ0xBU1Nf
QVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1h
Y29zKDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIFdLV2ViUHJvY2Vzc1BsdWdJbkNvbnRy
b2xsZXIgOiBOU09iamVjdAotLSAodm9pZClleHRlbmRDbGFzc2VzRm9yUGFyYW1ldGVyQ29kZXI6
KE5TQXJyYXkgKiljbGFzc2VzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjE0KSwgaW9zKDEy
LjApKTsKKy0gKHZvaWQpZXh0ZW5kQ2xhc3Nlc0ZvclBhcmFtZXRlckNvZGVyOihOU0FycmF5ICop
Y2xhc3NlcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSwgaW9zKDEyLjApKTsKIAogI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJv
d3NlckNvbnRleHRDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xs
ZXIuaAppbmRleCBmMDZmZDc1Njc5NzE5Zjk4NjY5ZTFjYTJjNmIwMGI0MWNiNzllMTc1Li5iMGVk
NzRmOGNiMjFkYzY1OGFlOTlmMGQ4Mjk1YWMyMzM1ZjZjZjUzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVn
SW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4
dENvbnRyb2xsZXIuaApAQCAtMzMsNyArMzMsNyBAQAogQGNsYXNzIFdLV2ViUHJvY2Vzc1BsdWdJ
blBhZ2VHcm91cDsKIEBwcm90b2NvbCBXS1dlYlByb2Nlc3NQbHVnSW5Mb2FkRGVsZWdhdGU7CiAK
LVdLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKK1dLX0NMQVNTX0FW
QUlMQUJMRShtYWNvcygxMC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBXS1dlYlByb2Nlc3NQ
bHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIgOiBOU09iamVjdAogCiBAcHJvcGVydHkgKHJl
YWRvbmx5KSBXS0RPTURvY3VtZW50ICptYWluRnJhbWVEb2N1bWVudDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vz
c1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlclByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJbkJyb3dz
ZXJDb250ZXh0Q29udHJvbGxlclByaXZhdGUuaAppbmRleCA5M2JlOGU1YzExNjFkZDlhMzliMzc0
YTZhYTEyNThkYTAwMzM2MDM1Li4xMTkxMTgzOGQ5MDI3ZjQ2NzJiMTgxMzQ1MmQ1N2ZjNzg2MGRk
NDVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL21hYy9XS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXJQcml2YXRl
LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMv
V0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyUHJpdmF0ZS5oCkBAIC00
MSw5ICs0MSw5IEBACiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIF9XS1JlbW90ZU9i
amVjdFJlZ2lzdHJ5ICpfcmVtb3RlT2JqZWN0UmVnaXN0cnk7CiAKIEBwcm9wZXJ0eSAod2Vhaywg
c2V0dGVyPV9zZXRGb3JtRGVsZWdhdGU6KSBpZCA8V0tXZWJQcm9jZXNzUGx1Z0luRm9ybURlbGVn
YXRlUHJpdmF0ZT4gX2Zvcm1EZWxlZ2F0ZTsKLUBwcm9wZXJ0eSAod2Vhaywgc2V0dGVyPV9zZXRF
ZGl0aW5nRGVsZWdhdGU6KSBpZCA8V0tXZWJQcm9jZXNzUGx1Z0luRWRpdGluZ0RlbGVnYXRlPiBf
ZWRpdGluZ0RlbGVnYXRlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyLjMpLCBpb3MoMTAu
MykpOworQHByb3BlcnR5ICh3ZWFrLCBzZXR0ZXI9X3NldEVkaXRpbmdEZWxlZ2F0ZTopIGlkIDxX
S1dlYlByb2Nlc3NQbHVnSW5FZGl0aW5nRGVsZWdhdGU+IF9lZGl0aW5nRGVsZWdhdGUgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMC4xMi4zKSwgaW9zKDEwLjMpKTsKIAotQHByb3BlcnR5IChub25h
dG9taWMsIHNldHRlcj1fc2V0RGVmZXJzTG9hZGluZzopIEJPT0wgX2RlZmVyc0xvYWRpbmcgV0tf
QVBJX0RFUFJFQ0FURUQoIk5vIGxvbmdlciBzdXBwb3J0ZWQiLCBtYWNvc3goMTAuMTAsIFdLX01B
Q19UQkEpLCBpb3MoOC4wLCBXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0
dGVyPV9zZXREZWZlcnNMb2FkaW5nOikgQk9PTCBfZGVmZXJzTG9hZGluZyBXS19BUElfREVQUkVD
QVRFRCgiTm8gbG9uZ2VyIHN1cHBvcnRlZCIsIG1hY29zKDEwLjEwLCBXS19NQUNfVEJBKSwgaW9z
KDguMCwgV0tfSU9TX1RCQSkpOwogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJP
T0wgX3VzZXNOb25QZXJzaXN0ZW50V2Vic2l0ZURhdGFTdG9yZTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>365631</attachid>
            <date>2019-03-21 15:46:13 -0700</date>
            <delta_ts>2019-03-22 08:45:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196106-20190321154612.patch</filename>
            <type>text/plain</type>
            <size>343771</size>
            <attacher name="Timothy Hatcher">timothy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQzMzM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
OTQwYWUzNDA2Zjc3YmFiZWMwMDIyYTQxZTY5MDRmMTk3YWQyZjZjLi4zOWUxZTlkMGJkN2NjMmJl
ODlmNWI3OWVlNmQzMTRkM2JiMzQyZjMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNyBAQAorMjAxOS0wMy0yMSAgVGltb3RoeSBIYXRjaGVyICA8dGltb3RoeUBhcHBsZS5j
b20+CisKKyAgICAgICAgQ2hhbmdlIG1hY29zeCgpIHRvIG1hY29zKCkgaW4gV0tfQVBJLi4uIGFu
ZCBKU0NfQVBJLi4uIG1hY3Jvcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE5NjEwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogQVBJL0pTQmFzZVByaXZhdGUuaDoKKyAgICAgICAgKiBBUEkvSlNDb250
ZXh0Lmg6CisgICAgICAgICogQVBJL0pTQ29udGV4dFByaXZhdGUuaDoKKyAgICAgICAgKiBBUEkv
SlNDb250ZXh0UmVmLmg6CisgICAgICAgICogQVBJL0pTQ29udGV4dFJlZkludGVybmFsLmg6Cisg
ICAgICAgICogQVBJL0pTQ29udGV4dFJlZlByaXZhdGUuaDoKKyAgICAgICAgKiBBUEkvSlNNYW5h
Z2VkVmFsdWUuaDoKKyAgICAgICAgKiBBUEkvSlNPYmplY3RSZWYuaDoKKyAgICAgICAgKiBBUEkv
SlNPYmplY3RSZWZQcml2YXRlLmg6CisgICAgICAgICogQVBJL0pTUmVtb3RlSW5zcGVjdG9yLmg6
CisgICAgICAgICogQVBJL0pTU2NyaXB0Lmg6CisgICAgICAgICogQVBJL0pTVHlwZWRBcnJheS5o
OgorICAgICAgICAqIEFQSS9KU1ZhbHVlLmg6CisgICAgICAgICogQVBJL0pTVmFsdWVQcml2YXRl
Lmg6CisgICAgICAgICogQVBJL0pTVmFsdWVSZWYuaDoKKyAgICAgICAgKiBBUEkvSlNWaXJ0dWFs
TWFjaGluZVByaXZhdGUuaDoKKwogMjAxOS0wMy0yMSAgVGFkZXUgWmFnYWxsbyAgPHR6YWdhbGxv
QGFwcGxlLmNvbT4KIAogICAgICAgICBKU0M6OmNyZWF0ZUVycm9yIHNob3VsZCBjbGVhciBleGNl
cHRpb24gdGhyb3duIGJ5IGVycm9yRGVzY3JpcHRpb25Gb3JWYWx1ZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cK
aW5kZXggOTljNzI0YjM0MTc3NGJiMTQ2NTkwZmI2ZjljZTkzMGI2ZmI3NTM4My4uMDA0YzczZjc3
N2U2MDVkNWM4YjJmMjI4MDUxYWJhMzNhYzFkMGFmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvUEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTIgQEAKKzIwMTktMDMtMjEgIFRpbW90aHkgSGF0Y2hlciAgPHRpbW90aHlAYXBwbGUu
Y29tPgorCisgICAgICAgIENoYW5nZSBtYWNvc3goKSB0byBtYWNvcygpIGluIFdLX0FQSS4uLiBh
bmQgSlNDX0FQSS4uLiBtYWNyb3MuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xOTYxMDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIHBhbC9zcGkvY29jb2EvTlNUb3VjaEJhclNQSS5oOgorCiAyMDE5LTAz
LTIwICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJl
bmFtZSBFTkFCTEVfQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HIG1hY3JvIHRvIEVOQUJM
RV9PVkVSRkxPV19TQ1JPTExJTkdfVE9VQ0gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMWY2NzM0NGQ3ZmZhYjFlMWNi
ZDEyMWJjOGQ3NzJkZjdjNzJmMTA1Yi4uNjU3MzJhYjFjYzA2YTU2OTBmYTAwZTNiYWQxNGI4ZjVm
OTgzMTQ5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMzAgQEAKKzIwMTktMDMtMjEgIFRpbW90aHkg
SGF0Y2hlciAgPHRpbW90aHlAYXBwbGUuY29tPgorCisgICAgICAgIENoYW5nZSBtYWNvc3goKSB0
byBtYWNvcygpIGluIFdLX0FQSS4uLiBhbmQgSlNDX0FQSS4uLiBtYWNyb3MuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTYxMDYKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNoYXJlZC9BUEkvQ29jb2Ev
V0tCcm93c2luZ0NvbnRleHRIYW5kbGUuaDoKKyAgICAgICAgKiBTaGFyZWQvQVBJL0NvY29hL1dL
RHJhZ0Rlc3RpbmF0aW9uQWN0aW9uLmg6CisgICAgICAgICogU2hhcmVkL0FQSS9Db2NvYS9XS01h
aW4uaDoKKyAgICAgICAgKiBTaGFyZWQvQVBJL0NvY29hL19XS0ZyYW1lSGFuZGxlLmg6CisgICAg
ICAgICogU2hhcmVkL0FQSS9Db2NvYS9fV0tIaXRUZXN0UmVzdWx0Lmg6CisgICAgICAgICogU2hh
cmVkL0FQSS9Db2NvYS9fV0tOU1dpbmRvd0V4dHJhcy5oOgorICAgICAgICAqIFNoYXJlZC9BUEkv
Q29jb2EvX1dLUmVtb3RlT2JqZWN0SW50ZXJmYWNlLmg6CisgICAgICAgICogU2hhcmVkL0FQSS9D
b2NvYS9fV0tSZW1vdGVPYmplY3RSZWdpc3RyeS5oOgorICAgICAgICAqIFNoYXJlZC9BUEkvQ29j
b2EvX1dLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHMuaDoKKyAgICAgICAgKiBTaGFyZWQvQVBJL0Nv
Y29hL19XS1NhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlLmg6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9DL1dLUGFnZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvTlNBdHRyaWJ1
dGVkU3RyaW5nLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0JhY2tGb3J3YXJk
TGlzdC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCYWNrRm9yd2FyZExpc3RJ
dGVtLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0JhY2tGb3J3YXJkTGlzdEl0
ZW1Qcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29u
dGV4dExvYWREZWxlZ2F0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tDb250
ZW50UnVsZUxpc3QuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLQ29udGVudFJ1
bGVMaXN0U3RvcmUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLRXJyb3IuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLRXJyb3JQcml2YXRlLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0ZyYW1lSW5mby5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tGcmFtZUluZm9Qcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS0hUVFBDb29raWVTdG9yZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tNZW51SXRlbUlkZW50aWZpZXJzUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tOYXZpZ2F0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S05hdmlnYXRpb25BY3Rpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2
aWdhdGlvbkFjdGlvblByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dL
TmF2aWdhdGlvbkRlbGVnYXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05h
dmlnYXRpb25EZWxlZ2F0ZVByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L1dLTmF2aWdhdGlvblJlc3BvbnNlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S09wZW5QYW5lbFBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dL
T3BlblBhbmVsUGFyYW1ldGVyc1ByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLUHJlZmVyZW5jZXMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJl
ZmVyZW5jZXNQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nl
c3NQb29sLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJp
dmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tTY3JpcHRNZXNzYWdlLmg6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1NlY3VyaXR5T3JpZ2luLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1NuYXBzaG90Q29uZmlndXJhdGlvbi5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1VSTFNjaGVtZUhhbmRsZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL1dLVVJMU2NoZW1lVGFzay5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tVUkxTY2hlbWVUYXNrUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tVc2VyQ29udGVudENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLVXNlckNvbnRlbnRDb250cm9sbGVyUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tVc2VyU2NyaXB0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1VzZXJTY3JpcHRQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1ZpZXdQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24u
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Q
cml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRl
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhUmVjb3JkLmg6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhUmVjb3JkUHJpdmF0
ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLmg6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRl
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dpbmRvd0ZlYXR1cmVzLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dpbmRvd0ZlYXR1cmVzUHJpdmF0ZS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQWN0aXZhdGVkRWxlbWVudEluZm8uaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0FwcGxpY2F0aW9uTWFuaWZlc3QuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0F0dGFjaG1lbnQuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dG9tYXRpb25EZWxlZ2F0ZS5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0b21hdGlvblNlc3Npb24uaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dG9tYXRpb25TZXNzaW9uQ29uZmlndXJhdGlvbi5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0b21hdGlvblNlc3Npb25EZWxlZ2F0
ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQ29udGV4dE1lbnVFbGVtZW50
SW5mby5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRGlhZ25vc3RpY0xvZ2dp
bmdEZWxlZ2F0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRG93bmxvYWQu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0Rvd25sb2FkRGVsZWdhdGUuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRBY3Rpb24uaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0V4cGVyaW1lbnRhbEZlYXR1cmUuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0ZpbmRPcHRpb25zLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tGb2N1c2VkRWxlbWVudEluZm8uaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0NvY29hL19XS0Zvcm1JbnB1dFNlc3Npb24uaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL19XS0Z1bGxzY3JlZW5EZWxlZ2F0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLR2VvbG9jYXRpb25Db3JlTG9jYXRpb25Qcm92aWRlci5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JXaW5kb3cuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL19XS0ludGVybmFsRGVidWdGZWF0dXJlLmg6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tMYXlvdXRNb2RlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tMaW5rSWNvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L19XS092ZXJsYXlTY3JvbGxiYXJTdHlsZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tSZW1vdGVXZWJJbnNwZWN0b3JWaWV3Q29udHJvbGxlci5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLU2Vzc2lvblN0YXRlLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tUZXh0SW5wdXRDb250ZXh0Lmg6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tUaHVtYm5haWxWaWV3Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlLmg6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlUHJpdmF0ZS5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNlckNvbnRlbnRGaWx0ZXIuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1VzZXJDb250ZW50RmlsdGVyUHJpdmF0ZS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNlckNvbnRlbnRXb3JsZC5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNlckluaXRpYXRlZEFjdGlvbi5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNlclN0eWxlU2hlZXQuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL19XS1Zpc2l0ZWRMaW5rU3RvcmUuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU2l6ZS5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZS5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZVBvbGljaWVzLmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzLmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luRWRpdGluZ0RlbGVn
YXRlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tX
ZWJQcm9jZXNzUGx1Z0luRnJhbWUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5IaXRUZXN0UmVzdWx0Lmg6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0lu
Tm9kZUhhbmRsZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0Nv
Y29hL1dLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGVQcml2YXRlLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdy
b3VwLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tX
ZWJQcm9jZXNzUGx1Z0luUmFuZ2VIYW5kbGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5TY3JpcHRXb3JsZC5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTURvY3VtZW50Lmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NRWxlbWVu
dC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTU5v
ZGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01S
YW5nZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RP
TVRleHQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tE
T01UZXh0SXRlcmF0b3IuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxl
ci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlBy
b2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXJQcml2YXRlLmg6CisKIDIwMTktMDMt
MjEgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1Nd
W21hY09TXSBGaXggc2FuZGJveCBjYWxsIHZpb2xhdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvSlNCYXNlUHJpdmF0ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS9KU0Jhc2VQcml2YXRlLmgKaW5kZXggYjZjOTIwNGM0Y2JkNzJjNGY3YzlmNmExZjU0Y2Q1
ZDM0MTU2ZDE0ZC4uMmZjOTE2YjcwYTIzZjI1MGI0YjgyN2EzYWJhOGQ1MDlkODEyOTA0ZSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0Jhc2VQcml2YXRlLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0Jhc2VQcml2YXRlLmgKQEAgLTQzLDcgKzQzLDcg
QEAgb3ducyBhIGxhcmdlIG5vbi1HQyBtZW1vcnkgcmVnaW9uLiBDYWxsaW5nIHRoaXMgZnVuY3Rp
b24gd2lsbCBlbmNvdXJhZ2UgdGhlCiBnYXJiYWdlIGNvbGxlY3RvciB0byBjb2xsZWN0IHNvb24s
IGhvcGluZyB0byByZWNsYWltIHRoYXQgbGFyZ2Ugbm9uLUdDIG1lbW9yeQogcmVnaW9uLgogKi8K
LUpTX0VYUE9SVCB2b2lkIEpTUmVwb3J0RXh0cmFNZW1vcnlDb3N0KEpTQ29udGV4dFJlZiBjdHgs
IHNpemVfdCBzaXplKSBKU0NfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuNiksIGlvcyg3LjApKTsK
K0pTX0VYUE9SVCB2b2lkIEpTUmVwb3J0RXh0cmFNZW1vcnlDb3N0KEpTQ29udGV4dFJlZiBjdHgs
IHNpemVfdCBzaXplKSBKU0NfQVBJX0FWQUlMQUJMRShtYWNvcygxMC42KSwgaW9zKDcuMCkpOwog
CiBKU19FWFBPUlQgdm9pZCBKU0Rpc2FibGVHQ1RpbWVyKHZvaWQpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9KU0NvbnRleHQuaAppbmRleCAxNzkwZTU5N2I0OGE5YjgzYTk0NWY5MzJiMmVhNGVi
YjM2M2VmY2ZlLi42YjljNWQ0MTc2MTkzNmQwNjZlNjk2ZDYxYzAzODk0ODg2MGQ2ZTZiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dC5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDb250ZXh0LmgKQEAgLTM5LDcgKzM5LDcgQEAKICBKYXZh
U2NyaXB0IGV4ZWN1dGlvbiB0YWtlcyBwbGFjZSB3aXRoaW4gYSBjb250ZXh0LCBhbmQgYWxsIEph
dmFTY3JpcHQgdmFsdWVzCiAgYXJlIHRpZWQgdG8gYSBjb250ZXh0LgogKi8KLUpTQ19DTEFTU19B
VkFJTEFCTEUobWFjb3N4KDEwLjkpLCBpb3MoNy4wKSkKK0pTQ19DTEFTU19BVkFJTEFCTEUobWFj
b3MoMTAuOSksIGlvcyg3LjApKQogQGludGVyZmFjZSBKU0NvbnRleHQgOiBOU09iamVjdAogCiAv
KiEKQEAgLTc4LDcgKzc4LDcgQEAgSlNDX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuOSksIGlv
cyg3LjApKQogQHBhcmFtIHNvdXJjZVVSTCBBIFVSTCBmb3IgdGhlIHNjcmlwdCdzIHNvdXJjZSBm
aWxlLiBVc2VkIGJ5IGRlYnVnZ2VycyBhbmQgd2hlbiByZXBvcnRpbmcgZXhjZXB0aW9ucy4gVGhp
cyBwYXJhbWV0ZXIgaXMgaW5mb3JtYXRpdmUgb25seTogaXQgZG9lcyBub3QgY2hhbmdlIHRoZSBi
ZWhhdmlvciBvZiB0aGUgc2NyaXB0LgogQHJlc3VsdCBUaGUgbGFzdCB2YWx1ZSBnZW5lcmF0ZWQg
YnkgdGhlIHNjcmlwdC4KICovCi0tIChKU1ZhbHVlICopZXZhbHVhdGVTY3JpcHQ6KE5TU3RyaW5n
ICopc2NyaXB0IHdpdGhTb3VyY2VVUkw6KE5TVVJMICopc291cmNlVVJMIEpTQ19BUElfQVZBSUxB
QkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKTsKKy0gKEpTVmFsdWUgKilldmFsdWF0ZVNjcmlw
dDooTlNTdHJpbmcgKilzY3JpcHQgd2l0aFNvdXJjZVVSTDooTlNVUkwgKilzb3VyY2VVUkwgSlND
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4wKSk7CiAKIC8qIQogQG1ldGhvZGdy
b3VwIENhbGxiYWNrIEFjY2Vzc29ycwpAQCAtMTAxLDcgKzEwMSw3IEBAIEpTQ19DTEFTU19BVkFJ
TEFCTEUobWFjb3N4KDEwLjkpLCBpb3MoNy4wKSkKICBhIGNhbGxiYWNrIGZyb20gSmF2YVNjcmlw
dCB0aGlzIG1ldGhvZCB3aWxsIHJldHVybiBuaWwuCiBAcmVzdWx0IFRoZSBjdXJyZW50bHkgZXhl
Y3V0aW5nIEphdmFTY3JpcHQgZnVuY3Rpb24gb3IgbmlsIGlmIHRoZXJlIGlzbid0IG9uZS4KICov
Ci0rIChKU1ZhbHVlICopY3VycmVudENhbGxlZSBKU0NfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAu
MTApLCBpb3MoOC4wKSk7CisrIChKU1ZhbHVlICopY3VycmVudENhbGxlZSBKU0NfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xMCksIGlvcyg4LjApKTsKIAogLyohCiBAbWV0aG9kCkBAIC0xNzYsNyAr
MTc2LDcgQEAgSlNDX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuOSksIGlvcyg3LjApKQogQHBy
b3BlcnR5CiBAZGlzY3Vzc2lvbiBOYW1lIG9mIHRoZSBKU0NvbnRleHQuIEV4cG9zZWQgd2hlbiBy
ZW1vdGUgZGVidWdnaW5nIHRoZSBjb250ZXh0LgogKi8KLUBwcm9wZXJ0eSAoY29weSkgTlNTdHJp
bmcgKm5hbWUgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpOworQHBy
b3BlcnR5IChjb3B5KSBOU1N0cmluZyAqbmFtZSBKU0NfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4x
MCksIGlvcyg4LjApKTsKIEBlbmQKIAogLyohCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL0pTQ29udGV4dFByaXZhdGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkv
SlNDb250ZXh0UHJpdmF0ZS5oCmluZGV4IDNmYjNkMmJiMTBjM2M1OWRlMTViZTBkODZjMGE3YjAw
Mzg3ZGNjODguLmMzMjQ4MGI5ZjJiYWRiMDNkNmIxNzEyMjI3YTFhOTI5ODljMzE4MmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDb250ZXh0UHJpdmF0ZS5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDb250ZXh0UHJpdmF0ZS5oCkBAIC01NywyMiAr
NTcsMjIgQEAKIEBwcm9wZXJ0eQogQGRpc2N1c3Npb24gUmVtb3RlIGluc3BlY3Rpb24gc2V0dGlu
ZyBvZiB0aGUgSlNDb250ZXh0LiBEZWZhdWx0IHZhbHVlIGlzIFlFUy4KICovCi1AcHJvcGVydHkg
KHNldHRlcj1fc2V0UmVtb3RlSW5zcGVjdGlvbkVuYWJsZWQ6KSBCT09MIF9yZW1vdGVJbnNwZWN0
aW9uRW5hYmxlZCBKU0NfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSk7CitA
cHJvcGVydHkgKHNldHRlcj1fc2V0UmVtb3RlSW5zcGVjdGlvbkVuYWJsZWQ6KSBCT09MIF9yZW1v
dGVJbnNwZWN0aW9uRW5hYmxlZCBKU0NfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMCksIGlvcyg4
LjApKTsKIAogLyohCiBAcHJvcGVydHkKIEBkaXNjdXNzaW9uIFNldCB3aGV0aGVyIG9yIG5vdCB0
aGUgbmF0aXZlIGNhbGwgc3RhY2sgaXMgaW5jbHVkZWQgd2hlbiByZXBvcnRpbmcgZXhjZXB0aW9u
cy4gRGVmYXVsdCB2YWx1ZSBpcyBZRVMuCiAqLwotQHByb3BlcnR5IChzZXR0ZXI9X3NldEluY2x1
ZGVzTmF0aXZlQ2FsbFN0YWNrV2hlblJlcG9ydGluZ0V4Y2VwdGlvbnM6KSBCT09MIF9pbmNsdWRl
c05hdGl2ZUNhbGxTdGFja1doZW5SZXBvcnRpbmdFeGNlcHRpb25zIEpTQ19BUElfQVZBSUxBQkxF
KG1hY29zeCgxMC4xMCksIGlvcyg4LjApKTsKK0Bwcm9wZXJ0eSAoc2V0dGVyPV9zZXRJbmNsdWRl
c05hdGl2ZUNhbGxTdGFja1doZW5SZXBvcnRpbmdFeGNlcHRpb25zOikgQk9PTCBfaW5jbHVkZXNO
YXRpdmVDYWxsU3RhY2tXaGVuUmVwb3J0aW5nRXhjZXB0aW9ucyBKU0NfQVBJX0FWQUlMQUJMRSht
YWNvcygxMC4xMCksIGlvcyg4LjApKTsKIAogLyohCiBAcHJvcGVydHkKIEBkaXNjdXNzaW9uIFNl
dCB0aGUgcnVuIGxvb3AgdGhlIFdlYiBJbnNwZWN0b3IgZGVidWdnZXIgc2hvdWxkIHVzZSB3aGVu
IGV2YWx1YXRpbmcgSmF2YVNjcmlwdCBpbiB0aGUgSlNDb250ZXh0LgogKi8KLUBwcm9wZXJ0eSAo
c2V0dGVyPV9zZXREZWJ1Z2dlclJ1bkxvb3A6KSBDRlJ1bkxvb3BSZWYgX2RlYnVnZ2VyUnVuTG9v
cCBKU0NfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSk7CitAcHJvcGVydHkg
KHNldHRlcj1fc2V0RGVidWdnZXJSdW5Mb29wOikgQ0ZSdW5Mb29wUmVmIF9kZWJ1Z2dlclJ1bkxv
b3AgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4wKSk7CiAKIC8qISBAYWJz
dHJhY3QgVGhlIGRlbGVnYXRlIHRoZSBjb250ZXh0IHdpbGwgdXNlIHdoZW4gdHJ5aW5nIHRvIGxv
YWQgYSBtb2R1bGUuIE5vdGUsIHRoaXMgZGVsZWdhdGUgd2lsbCBiZSBpZ25vcmVkIGZvciBjb250
ZXh0cyByZXR1cm5lZCBieSBVSVdlYlZpZXcuICovCi1AcHJvcGVydHkgKG5vbmF0b21pYywgd2Vh
aykgaWQgPEpTTW9kdWxlTG9hZGVyRGVsZWdhdGU+IG1vZHVsZUxvYWRlckRlbGVnYXRlIEpTQ19B
UElfQVZBSUxBQkxFKG1hY29zeChKU0NfTUFDX1RCQSksIGlvcyhKU0NfSU9TX1RCQSkpOworQHBy
b3BlcnR5IChub25hdG9taWMsIHdlYWspIGlkIDxKU01vZHVsZUxvYWRlckRlbGVnYXRlPiBtb2R1
bGVMb2FkZXJEZWxlZ2F0ZSBKU0NfQVBJX0FWQUlMQUJMRShtYWNvcyhKU0NfTUFDX1RCQSksIGlv
cyhKU0NfSU9TX1RCQSkpOwogCiAvKiEKICBAbWV0aG9kCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9KU0NvbnRleHRSZWYuaAppbmRleCAyOGQwYTY3ZTlhZTMyNjIxMWFkOTRkZTM2YzUyNjRhNzU0
MmZhZjg5Li4xY2U3NDM1ODA0ZWJiOWJjNDdmN2MxZjBkOWU5NGZjMDc4OTg4YzBiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDb250ZXh0UmVmLmgKQEAgLTUzLDcgKzUzLDcgQEAgZXh0
ZXJuICJDIiB7CiAgSlNDb250ZXh0R3JvdXAncyBydW4gbG9vcCBvbmNlIGl0IGhhcyBiZWVuIGNy
ZWF0ZWQuCiBAcmVzdWx0IFRoZSBjcmVhdGVkIEpTQ29udGV4dEdyb3VwLgogKi8KLUpTX0VYUE9S
VCBKU0NvbnRleHRHcm91cFJlZiBKU0NvbnRleHRHcm91cENyZWF0ZSh2b2lkKSBKU0NfQVBJX0FW
QUlMQUJMRShtYWNvc3goMTAuNiksIGlvcyg3LjApKTsKK0pTX0VYUE9SVCBKU0NvbnRleHRHcm91
cFJlZiBKU0NvbnRleHRHcm91cENyZWF0ZSh2b2lkKSBKU0NfQVBJX0FWQUlMQUJMRShtYWNvcygx
MC42KSwgaW9zKDcuMCkpOwogCiAvKiEKIEBmdW5jdGlvbgpAQCAtNjEsMTQgKzYxLDE0IEBAIEpT
X0VYUE9SVCBKU0NvbnRleHRHcm91cFJlZiBKU0NvbnRleHRHcm91cENyZWF0ZSh2b2lkKSBKU0Nf
QVBJX0FWQUlMQUJMRShtYWNvc3goCiBAcGFyYW0gZ3JvdXAgVGhlIEpTQ29udGV4dEdyb3VwIHRv
IHJldGFpbi4KIEByZXN1bHQgQSBKU0NvbnRleHRHcm91cCB0aGF0IGlzIHRoZSBzYW1lIGFzIGdy
b3VwLgogKi8KLUpTX0VYUE9SVCBKU0NvbnRleHRHcm91cFJlZiBKU0NvbnRleHRHcm91cFJldGFp
bihKU0NvbnRleHRHcm91cFJlZiBncm91cCkgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjYp
LCBpb3MoNy4wKSk7CitKU19FWFBPUlQgSlNDb250ZXh0R3JvdXBSZWYgSlNDb250ZXh0R3JvdXBS
ZXRhaW4oSlNDb250ZXh0R3JvdXBSZWYgZ3JvdXApIEpTQ19BUElfQVZBSUxBQkxFKG1hY29zKDEw
LjYpLCBpb3MoNy4wKSk7CiAKIC8qIQogQGZ1bmN0aW9uCiBAYWJzdHJhY3QgUmVsZWFzZXMgYSBK
YXZhU2NyaXB0IGNvbnRleHQgZ3JvdXAuCiBAcGFyYW0gZ3JvdXAgVGhlIEpTQ29udGV4dEdyb3Vw
IHRvIHJlbGVhc2UuCiAqLwotSlNfRVhQT1JUIHZvaWQgSlNDb250ZXh0R3JvdXBSZWxlYXNlKEpT
Q29udGV4dEdyb3VwUmVmIGdyb3VwKSBKU0NfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuNiksIGlv
cyg3LjApKTsKK0pTX0VYUE9SVCB2b2lkIEpTQ29udGV4dEdyb3VwUmVsZWFzZShKU0NvbnRleHRH
cm91cFJlZiBncm91cCkgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuNiksIGlvcyg3LjApKTsK
IAogLyohCiBAZnVuY3Rpb24KQEAgLTgzLDcgKzgzLDcgQEAgSlNfRVhQT1JUIHZvaWQgSlNDb250
ZXh0R3JvdXBSZWxlYXNlKEpTQ29udGV4dEdyb3VwUmVmIGdyb3VwKSBKU0NfQVBJX0FWQUlMQUJM
RSgKICBOVUxMIHRvIHVzZSB0aGUgZGVmYXVsdCBvYmplY3QgY2xhc3MuCiBAcmVzdWx0IEEgSlNH
bG9iYWxDb250ZXh0IHdpdGggYSBnbG9iYWwgb2JqZWN0IG9mIGNsYXNzIGdsb2JhbE9iamVjdENs
YXNzLgogKi8KLUpTX0VYUE9SVCBKU0dsb2JhbENvbnRleHRSZWYgSlNHbG9iYWxDb250ZXh0Q3Jl
YXRlKEpTQ2xhc3NSZWYgZ2xvYmFsT2JqZWN0Q2xhc3MpIEpTQ19BUElfQVZBSUxBQkxFKG1hY29z
eCgxMC41KSwgaW9zKDcuMCkpOworSlNfRVhQT1JUIEpTR2xvYmFsQ29udGV4dFJlZiBKU0dsb2Jh
bENvbnRleHRDcmVhdGUoSlNDbGFzc1JlZiBnbG9iYWxPYmplY3RDbGFzcykgSlNDX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTAuNSksIGlvcyg3LjApKTsKIAogLyohCiBAZnVuY3Rpb24KQEAgLTk3LDcg
Kzk3LDcgQEAgSlNfRVhQT1JUIEpTR2xvYmFsQ29udGV4dFJlZiBKU0dsb2JhbENvbnRleHRDcmVh
dGUoSlNDbGFzc1JlZiBnbG9iYWxPYmplY3RDbGFzcykKIEByZXN1bHQgQSBKU0dsb2JhbENvbnRl
eHQgd2l0aCBhIGdsb2JhbCBvYmplY3Qgb2YgY2xhc3MgZ2xvYmFsT2JqZWN0Q2xhc3MgYW5kIGEg
Y29udGV4dAogIGdyb3VwIGVxdWFsIHRvIGdyb3VwLgogKi8KLUpTX0VYUE9SVCBKU0dsb2JhbENv
bnRleHRSZWYgSlNHbG9iYWxDb250ZXh0Q3JlYXRlSW5Hcm91cChKU0NvbnRleHRHcm91cFJlZiBn
cm91cCwgSlNDbGFzc1JlZiBnbG9iYWxPYmplY3RDbGFzcykgSlNDX0FQSV9BVkFJTEFCTEUobWFj
b3N4KDEwLjYpLCBpb3MoNy4wKSk7CitKU19FWFBPUlQgSlNHbG9iYWxDb250ZXh0UmVmIEpTR2xv
YmFsQ29udGV4dENyZWF0ZUluR3JvdXAoSlNDb250ZXh0R3JvdXBSZWYgZ3JvdXAsIEpTQ2xhc3NS
ZWYgZ2xvYmFsT2JqZWN0Q2xhc3MpIEpTQ19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjYpLCBpb3Mo
Ny4wKSk7CiAKIC8qIQogQGZ1bmN0aW9uCkBAIC0xMjgsNyArMTI4LDcgQEAgSlNfRVhQT1JUIEpT
T2JqZWN0UmVmIEpTQ29udGV4dEdldEdsb2JhbE9iamVjdChKU0NvbnRleHRSZWYgY3R4KTsKIEBw
YXJhbSBjdHggVGhlIEpTQ29udGV4dCB3aG9zZSBncm91cCB5b3Ugd2FudCB0byBnZXQuCiBAcmVz
dWx0IGN0eCdzIGdyb3VwLgogKi8KLUpTX0VYUE9SVCBKU0NvbnRleHRHcm91cFJlZiBKU0NvbnRl
eHRHZXRHcm91cChKU0NvbnRleHRSZWYgY3R4KSBKU0NfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAu
NiksIGlvcyg3LjApKTsKK0pTX0VYUE9SVCBKU0NvbnRleHRHcm91cFJlZiBKU0NvbnRleHRHZXRH
cm91cChKU0NvbnRleHRSZWYgY3R4KSBKU0NfQVBJX0FWQUlMQUJMRShtYWNvcygxMC42KSwgaW9z
KDcuMCkpOwogCiAvKiEKIEBmdW5jdGlvbgpAQCAtMTM2LDcgKzEzNiw3IEBAIEpTX0VYUE9SVCBK
U0NvbnRleHRHcm91cFJlZiBKU0NvbnRleHRHZXRHcm91cChKU0NvbnRleHRSZWYgY3R4KSBKU0Nf
QVBJX0FWQUlMQUJMCiBAcGFyYW0gY3R4IFRoZSBKU0NvbnRleHQgd2hvc2UgZ2xvYmFsIGNvbnRl
eHQgeW91IHdhbnQgdG8gZ2V0LgogQHJlc3VsdCBjdHgncyBnbG9iYWwgY29udGV4dC4KICovCi1K
U19FWFBPUlQgSlNHbG9iYWxDb250ZXh0UmVmIEpTQ29udGV4dEdldEdsb2JhbENvbnRleHQoSlND
b250ZXh0UmVmIGN0eCkgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjcpLCBpb3MoNy4wKSk7
CitKU19FWFBPUlQgSlNHbG9iYWxDb250ZXh0UmVmIEpTQ29udGV4dEdldEdsb2JhbENvbnRleHQo
SlNDb250ZXh0UmVmIGN0eCkgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuNyksIGlvcyg3LjAp
KTsKIAogLyohCiBAZnVuY3Rpb24KQEAgLTE0Niw3ICsxNDYsNyBAQCBKU19FWFBPUlQgSlNHbG9i
YWxDb250ZXh0UmVmIEpTQ29udGV4dEdldEdsb2JhbENvbnRleHQoSlNDb250ZXh0UmVmIGN0eCkg
SlNDX0FQSQogQGRpc2N1c3Npb24gQSBKU0dsb2JhbENvbnRleHQncyBuYW1lIGlzIGV4cG9zZWQg
Zm9yIHJlbW90ZSBkZWJ1Z2dpbmcgdG8gbWFrZSBpdAogZWFzaWVyIHRvIGlkZW50aWZ5IHRoZSBj
b250ZXh0IHlvdSB3b3VsZCBsaWtlIHRvIGF0dGFjaCB0by4KICovCi1KU19FWFBPUlQgSlNTdHJp
bmdSZWYgSlNHbG9iYWxDb250ZXh0Q29weU5hbWUoSlNHbG9iYWxDb250ZXh0UmVmIGN0eCkgSlND
X0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpOworSlNfRVhQT1JUIEpTU3Ry
aW5nUmVmIEpTR2xvYmFsQ29udGV4dENvcHlOYW1lKEpTR2xvYmFsQ29udGV4dFJlZiBjdHgpIEpT
Q19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDguMCkpOwogCiAvKiEKIEBmdW5jdGlv
bgpAQCAtMTU0LDcgKzE1NCw3IEBAIEpTX0VYUE9SVCBKU1N0cmluZ1JlZiBKU0dsb2JhbENvbnRl
eHRDb3B5TmFtZShKU0dsb2JhbENvbnRleHRSZWYgY3R4KSBKU0NfQVBJX0FWCiBAcGFyYW0gY3R4
IFRoZSBKU0dsb2JhbENvbnRleHQgdGhhdCB5b3Ugd2FudCB0byBuYW1lLgogQHBhcmFtIG5hbWUg
VGhlIHJlbW90ZSBkZWJ1Z2dpbmcgbmFtZSB0byBzZXQgb24gY3R4LgogKi8KLUpTX0VYUE9SVCB2
b2lkIEpTR2xvYmFsQ29udGV4dFNldE5hbWUoSlNHbG9iYWxDb250ZXh0UmVmIGN0eCwgSlNTdHJp
bmdSZWYgbmFtZSkgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpOwor
SlNfRVhQT1JUIHZvaWQgSlNHbG9iYWxDb250ZXh0U2V0TmFtZShKU0dsb2JhbENvbnRleHRSZWYg
Y3R4LCBKU1N0cmluZ1JlZiBuYW1lKSBKU0NfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMCksIGlv
cyg4LjApKTsKIAogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZkludGVybmFsLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL0pTQ29udGV4dFJlZkludGVybmFsLmgKaW5kZXggOWQ0ZjE4YTIyOTUwNzI2ZDkx
MDJkMjUwYjVjYWEwY2U3YWQ1YzcyYi4uMTQ5ZjcwYmFkYjdkZDJkNjE4Y2FmZmZiYjdhODI0ZmU0
MjJjZGQ2MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NvbnRleHRS
ZWZJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDb250ZXh0UmVm
SW50ZXJuYWwuaApAQCAtNDIsNyArNDIsNyBAQCBleHRlcm4gIkMiIHsKIEBhYnN0cmFjdCBHZXRz
IHRoZSBydW4gbG9vcCB1c2VkIGJ5IHRoZSBXZWIgSW5zcGVjdG9yIGRlYnVnZ2VyIHdoZW4gZXZh
bHVhdGluZyBKYXZhU2NyaXB0IGluIHRoaXMgY29udGV4dC4KIEBwYXJhbSBjdHggVGhlIEpTR2xv
YmFsQ29udGV4dCB3aG9zZSBzZXR0aW5nIHlvdSB3YW50IHRvIGdldC4KICovCi1KU19FWFBPUlQg
Q0ZSdW5Mb29wUmVmIEpTR2xvYmFsQ29udGV4dEdldERlYnVnZ2VyUnVuTG9vcChKU0dsb2JhbENv
bnRleHRSZWYgY3R4KSBKU0NfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSk7
CitKU19FWFBPUlQgQ0ZSdW5Mb29wUmVmIEpTR2xvYmFsQ29udGV4dEdldERlYnVnZ2VyUnVuTG9v
cChKU0dsb2JhbENvbnRleHRSZWYgY3R4KSBKU0NfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMCks
IGlvcyg4LjApKTsKIAogLyohCiBAZnVuY3Rpb24KQEAgLTUwLDcgKzUwLDcgQEAgSlNfRVhQT1JU
IENGUnVuTG9vcFJlZiBKU0dsb2JhbENvbnRleHRHZXREZWJ1Z2dlclJ1bkxvb3AoSlNHbG9iYWxD
b250ZXh0UmVmIGN0eCkKIEBwYXJhbSBjdHggVGhlIEpTR2xvYmFsQ29udGV4dCB0aGF0IHlvdSB3
YW50IHRvIGNoYW5nZS4KIEBwYXJhbSBydW5Mb29wIFRoZSBuZXcgdmFsdWUgb2YgdGhlIHNldHRp
bmcgZm9yIHRoZSBjb250ZXh0LgogKi8KLUpTX0VYUE9SVCB2b2lkIEpTR2xvYmFsQ29udGV4dFNl
dERlYnVnZ2VyUnVuTG9vcChKU0dsb2JhbENvbnRleHRSZWYgY3R4LCBDRlJ1bkxvb3BSZWYgcnVu
TG9vcCkgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpOworSlNfRVhQ
T1JUIHZvaWQgSlNHbG9iYWxDb250ZXh0U2V0RGVidWdnZXJSdW5Mb29wKEpTR2xvYmFsQ29udGV4
dFJlZiBjdHgsIENGUnVuTG9vcFJlZiBydW5Mb29wKSBKU0NfQVBJX0FWQUlMQUJMRShtYWNvcygx
MC4xMCksIGlvcyg4LjApKTsKICNlbmRpZgogCiAjaWZkZWYgX19jcGx1c3BsdXMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDb250ZXh0UmVmUHJpdmF0ZS5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NvbnRleHRSZWZQcml2YXRlLmgKaW5kZXggZWM2NzZk
OGM4NzE0ODNmODNmY2MzYzU2NGI1NTRlODE3MDM3MjJlMC4uNTIxOGFkN2E1YzA3NmU3N2M4MWRl
YTI1ZjZmYTViNWUyOGI2NmYzMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9KU0NvbnRleHRSZWZQcml2YXRlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9K
U0NvbnRleHRSZWZQcml2YXRlLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgZXh0ZXJuICJDIiB7CiBAcGFy
YW0gY3R4IFRoZSBKU0NvbnRleHQgd2hvc2UgYmFja3RyYWNlIHlvdSB3YW50IHRvIGdldAogQHJl
c3VsdCBBIHN0cmluZyBjb250YWluaW5nIHRoZSBiYWNrdHJhY2UKICovCi1KU19FWFBPUlQgSlNT
dHJpbmdSZWYgSlNDb250ZXh0Q3JlYXRlQmFja3RyYWNlKEpTQ29udGV4dFJlZiBjdHgsIHVuc2ln
bmVkIG1heFN0YWNrU2l6ZSkgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjYpLCBpb3MoNy4w
KSk7CitKU19FWFBPUlQgSlNTdHJpbmdSZWYgSlNDb250ZXh0Q3JlYXRlQmFja3RyYWNlKEpTQ29u
dGV4dFJlZiBjdHgsIHVuc2lnbmVkIG1heFN0YWNrU2l6ZSkgSlNDX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTAuNiksIGlvcyg3LjApKTsKICAgICAKIAogLyohIApAQCAtODUsMTQgKzg1LDE0IEBAIHR5
cGVkZWYgYm9vbAogIG5lZWQgdG8gY2FsbCBKU0NvbnRleHRHcm91cFNldEV4ZWN1dGlvblRpbWVM
aW1pdCBiZWZvcmUgeW91IHN0YXJ0IGV4ZWN1dGluZwogIGFueSBzY3JpcHRzLgogKi8KLUpTX0VY
UE9SVCB2b2lkIEpTQ29udGV4dEdyb3VwU2V0RXhlY3V0aW9uVGltZUxpbWl0KEpTQ29udGV4dEdy
b3VwUmVmIGdyb3VwLCBkb3VibGUgbGltaXQsIEpTU2hvdWxkVGVybWluYXRlQ2FsbGJhY2sgY2Fs
bGJhY2ssIHZvaWQqIGNvbnRleHQpIEpTQ19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC42KSwgaW9z
KDcuMCkpOworSlNfRVhQT1JUIHZvaWQgSlNDb250ZXh0R3JvdXBTZXRFeGVjdXRpb25UaW1lTGlt
aXQoSlNDb250ZXh0R3JvdXBSZWYgZ3JvdXAsIGRvdWJsZSBsaW1pdCwgSlNTaG91bGRUZXJtaW5h
dGVDYWxsYmFjayBjYWxsYmFjaywgdm9pZCogY29udGV4dCkgSlNDX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTAuNiksIGlvcyg3LjApKTsKIAogLyohCiBAZnVuY3Rpb24KIEBhYnN0cmFjdCBDbGVhcnMg
dGhlIHNjcmlwdCBleGVjdXRpb24gdGltZSBsaW1pdC4KIEBwYXJhbSBncm91cCBUaGUgSmF2YVNj
cmlwdCBjb250ZXh0IGdyb3VwIHRoYXQgdGhlIHRpbWUgbGltaXQgaXMgY2xlYXJlZCBvbi4KICov
Ci1KU19FWFBPUlQgdm9pZCBKU0NvbnRleHRHcm91cENsZWFyRXhlY3V0aW9uVGltZUxpbWl0KEpT
Q29udGV4dEdyb3VwUmVmIGdyb3VwKSBKU0NfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuNiksIGlv
cyg3LjApKTsKK0pTX0VYUE9SVCB2b2lkIEpTQ29udGV4dEdyb3VwQ2xlYXJFeGVjdXRpb25UaW1l
TGltaXQoSlNDb250ZXh0R3JvdXBSZWYgZ3JvdXApIEpTQ19BUElfQVZBSUxBQkxFKG1hY29zKDEw
LjYpLCBpb3MoNy4wKSk7CiAKIC8qIQogQGZ1bmN0aW9uCkBAIC0xMDEsNyArMTAxLDcgQEAgSlNf
RVhQT1JUIHZvaWQgSlNDb250ZXh0R3JvdXBDbGVhckV4ZWN1dGlvblRpbWVMaW1pdChKU0NvbnRl
eHRHcm91cFJlZiBncm91cCkgSlMKIEByZXN1bHQgVGhlIHZhbHVlIG9mIHRoZSBzZXR0aW5nLCB0
cnVlIGlmIHJlbW90ZSBpbnNwZWN0aW9uIGlzIGVuYWJsZWQsIG90aGVyd2lzZSBmYWxzZS4KIEBk
aXNjdXNzaW9uIFJlbW90ZSBpbnNwZWN0aW9uIGlzIHRydWUgYnkgZGVmYXVsdC4KICovCi1KU19F
WFBPUlQgYm9vbCBKU0dsb2JhbENvbnRleHRHZXRSZW1vdGVJbnNwZWN0aW9uRW5hYmxlZChKU0ds
b2JhbENvbnRleHRSZWYgY3R4KSBKU0NfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3Mo
OC4wKSk7CitKU19FWFBPUlQgYm9vbCBKU0dsb2JhbENvbnRleHRHZXRSZW1vdGVJbnNwZWN0aW9u
RW5hYmxlZChKU0dsb2JhbENvbnRleHRSZWYgY3R4KSBKU0NfQVBJX0FWQUlMQUJMRShtYWNvcygx
MC4xMCksIGlvcyg4LjApKTsKIAogLyohCiBAZnVuY3Rpb24KQEAgLTEwOSw3ICsxMDksNyBAQCBK
U19FWFBPUlQgYm9vbCBKU0dsb2JhbENvbnRleHRHZXRSZW1vdGVJbnNwZWN0aW9uRW5hYmxlZChK
U0dsb2JhbENvbnRleHRSZWYgY3R4KQogQHBhcmFtIGN0eCBUaGUgSlNHbG9iYWxDb250ZXh0IHRo
YXQgeW91IHdhbnQgdG8gY2hhbmdlLgogQHBhcmFtIGVuYWJsZWQgVGhlIG5ldyByZW1vdGUgaW5z
cGVjdGlvbiBlbmFibGVkIHNldHRpbmcgZm9yIHRoZSBjb250ZXh0LgogKi8KLUpTX0VYUE9SVCB2
b2lkIEpTR2xvYmFsQ29udGV4dFNldFJlbW90ZUluc3BlY3Rpb25FbmFibGVkKEpTR2xvYmFsQ29u
dGV4dFJlZiBjdHgsIGJvb2wgZW5hYmxlZCkgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEw
KSwgaW9zKDguMCkpOyAgICAKK0pTX0VYUE9SVCB2b2lkIEpTR2xvYmFsQ29udGV4dFNldFJlbW90
ZUluc3BlY3Rpb25FbmFibGVkKEpTR2xvYmFsQ29udGV4dFJlZiBjdHgsIGJvb2wgZW5hYmxlZCkg
SlNDX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4wKSk7ICAgIAogCiAvKiEKIEBm
dW5jdGlvbgpAQCAtMTE4LDcgKzExOCw3IEBAIEpTX0VYUE9SVCB2b2lkIEpTR2xvYmFsQ29udGV4
dFNldFJlbW90ZUluc3BlY3Rpb25FbmFibGVkKEpTR2xvYmFsQ29udGV4dFJlZiBjdHgsCiBAcmVz
dWx0IFRoZSB2YWx1ZSBvZiB0aGUgc2V0dGluZywgdHJ1ZSBpZiByZW1vdGUgaW5zcGVjdGlvbiBp
cyBlbmFibGVkLCBvdGhlcndpc2UgZmFsc2UuCiBAZGlzY3Vzc2lvbiBUaGlzIHNldHRpbmcgaXMg
dHJ1ZSBieSBkZWZhdWx0LgogKi8KLUpTX0VYUE9SVCBib29sIEpTR2xvYmFsQ29udGV4dEdldElu
Y2x1ZGVzTmF0aXZlQ2FsbFN0YWNrV2hlblJlcG9ydGluZ0V4Y2VwdGlvbnMoSlNHbG9iYWxDb250
ZXh0UmVmIGN0eCkgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpOwor
SlNfRVhQT1JUIGJvb2wgSlNHbG9iYWxDb250ZXh0R2V0SW5jbHVkZXNOYXRpdmVDYWxsU3RhY2tX
aGVuUmVwb3J0aW5nRXhjZXB0aW9ucyhKU0dsb2JhbENvbnRleHRSZWYgY3R4KSBKU0NfQVBJX0FW
QUlMQUJMRShtYWNvcygxMC4xMCksIGlvcyg4LjApKTsKIAogLyohCiBAZnVuY3Rpb24KQEAgLTEy
Niw3ICsxMjYsNyBAQCBKU19FWFBPUlQgYm9vbCBKU0dsb2JhbENvbnRleHRHZXRJbmNsdWRlc05h
dGl2ZUNhbGxTdGFja1doZW5SZXBvcnRpbmdFeGNlcHRpb25zKAogQHBhcmFtIGN0eCBUaGUgSlNH
bG9iYWxDb250ZXh0IHRoYXQgeW91IHdhbnQgdG8gY2hhbmdlLgogQHBhcmFtIGluY2x1ZGVzTmF0
aXZlQ2FsbFN0YWNrIFRoZSBuZXcgdmFsdWUgb2YgdGhlIHNldHRpbmcgZm9yIHRoZSBjb250ZXh0
LgogKi8KLUpTX0VYUE9SVCB2b2lkIEpTR2xvYmFsQ29udGV4dFNldEluY2x1ZGVzTmF0aXZlQ2Fs
bFN0YWNrV2hlblJlcG9ydGluZ0V4Y2VwdGlvbnMoSlNHbG9iYWxDb250ZXh0UmVmIGN0eCwgYm9v
bCBpbmNsdWRlc05hdGl2ZUNhbGxTdGFjaykgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEw
KSwgaW9zKDguMCkpOworSlNfRVhQT1JUIHZvaWQgSlNHbG9iYWxDb250ZXh0U2V0SW5jbHVkZXNO
YXRpdmVDYWxsU3RhY2tXaGVuUmVwb3J0aW5nRXhjZXB0aW9ucyhKU0dsb2JhbENvbnRleHRSZWYg
Y3R4LCBib29sIGluY2x1ZGVzTmF0aXZlQ2FsbFN0YWNrKSBKU0NfQVBJX0FWQUlMQUJMRShtYWNv
cygxMC4xMCksIGlvcyg4LjApKTsKIAogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTTWFuYWdlZFZhbHVlLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL0pTTWFuYWdlZFZhbHVlLmgKaW5kZXggNDE4MDc0YmM0N2Q2NmMxNTg0
MDdmZTU4MzgzNjlhNTE1YzAzMzVlYy4uM2ViYzdhNGJkOTE4YWU0MTNjNjM5M2ViMGJjOTE4NGU1
YWExY2UzNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU01hbmFnZWRW
YWx1ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNNYW5hZ2VkVmFsdWUuaApA
QCAtNTcsNyArNTcsNyBAQCBOU19DTEFTU19BVkFJTEFCTEUoMTBfOSwgN18wKQogQHJlc3VsdCBU
aGUgbmV3IEpTTWFuYWdlZFZhbHVlLgogKi8KICsgKEpTTWFuYWdlZFZhbHVlICopbWFuYWdlZFZh
bHVlV2l0aFZhbHVlOihKU1ZhbHVlICopdmFsdWU7Ci0rIChKU01hbmFnZWRWYWx1ZSAqKW1hbmFn
ZWRWYWx1ZVdpdGhWYWx1ZTooSlNWYWx1ZSAqKXZhbHVlIGFuZE93bmVyOihpZClvd25lciBKU0Nf
QVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSk7CisrIChKU01hbmFnZWRWYWx1
ZSAqKW1hbmFnZWRWYWx1ZVdpdGhWYWx1ZTooSlNWYWx1ZSAqKXZhbHVlIGFuZE93bmVyOihpZClv
d25lciBKU0NfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMCksIGlvcyg4LjApKTsKIAogLyohCiBA
bWV0aG9kCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTT2JqZWN0UmVm
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTT2JqZWN0UmVmLmgKaW5kZXggMGUyZTdk
NDY5ZGJmZTNmMjZjZWVlZTU1NWVlODgyMzA3YWQ3NGZmYS4uNDEyZmJlOWVhNmFmZjI0OTg5Mzlh
ZjhhMTkwMzNhYzNiNWYzYjQ5YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9KU09iamVjdFJlZi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RS
ZWYuaApAQCAtNDQxLDcgKzQ0MSw3IEBAIEpTX0VYUE9SVCBKU09iamVjdFJlZiBKU09iamVjdE1h
a2VDb25zdHJ1Y3RvcihKU0NvbnRleHRSZWYgY3R4LCBKU0NsYXNzUmVmIGpzQ2xhCiAgQGRpc2N1
c3Npb24gVGhlIGJlaGF2aW9yIG9mIHRoaXMgZnVuY3Rpb24gZG9lcyBub3QgZXhhY3RseSBtYXRj
aCB0aGUgYmVoYXZpb3Igb2YgdGhlIGJ1aWx0LWluIEFycmF5IGNvbnN0cnVjdG9yLiBTcGVjaWZp
Y2FsbHksIGlmIG9uZSBhcmd1bWVudCAKICBpcyBzdXBwbGllZCwgdGhpcyBmdW5jdGlvbiByZXR1
cm5zIGFuIGFycmF5IHdpdGggb25lIGVsZW1lbnQuCiAgKi8KLUpTX0VYUE9SVCBKU09iamVjdFJl
ZiBKU09iamVjdE1ha2VBcnJheShKU0NvbnRleHRSZWYgY3R4LCBzaXplX3QgYXJndW1lbnRDb3Vu
dCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKSBK
U0NfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuNiksIGlvcyg3LjApKTsKK0pTX0VYUE9SVCBKU09i
amVjdFJlZiBKU09iamVjdE1ha2VBcnJheShKU0NvbnRleHRSZWYgY3R4LCBzaXplX3QgYXJndW1l
bnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0
aW9uKSBKU0NfQVBJX0FWQUlMQUJMRShtYWNvcygxMC42KSwgaW9zKDcuMCkpOwogCiAvKiEKICBA
ZnVuY3Rpb24KQEAgLTQ1Miw3ICs0NTIsNyBAQCBKU19FWFBPUlQgSlNPYmplY3RSZWYgSlNPYmpl
Y3RNYWtlQXJyYXkoSlNDb250ZXh0UmVmIGN0eCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsCiAgQHBh
cmFtIGV4Y2VwdGlvbiBBIHBvaW50ZXIgdG8gYSBKU1ZhbHVlUmVmIGluIHdoaWNoIHRvIHN0b3Jl
IGFuIGV4Y2VwdGlvbiwgaWYgYW55LiBQYXNzIE5VTEwgaWYgeW91IGRvIG5vdCBjYXJlIHRvIHN0
b3JlIGFuIGV4Y2VwdGlvbi4KICBAcmVzdWx0IEEgSlNPYmplY3QgdGhhdCBpcyBhIERhdGUuCiAg
Ki8KLUpTX0VYUE9SVCBKU09iamVjdFJlZiBKU09iamVjdE1ha2VEYXRlKEpTQ29udGV4dFJlZiBj
dHgsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBK
U1ZhbHVlUmVmKiBleGNlcHRpb24pIEpTQ19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC42KSwgaW9z
KDcuMCkpOworSlNfRVhQT1JUIEpTT2JqZWN0UmVmIEpTT2JqZWN0TWFrZURhdGUoSlNDb250ZXh0
UmVmIGN0eCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRz
W10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuNiks
IGlvcyg3LjApKTsKIAogLyohCiAgQGZ1bmN0aW9uCkBAIC00NjMsNyArNDYzLDcgQEAgSlNfRVhQ
T1JUIEpTT2JqZWN0UmVmIEpTT2JqZWN0TWFrZURhdGUoSlNDb250ZXh0UmVmIGN0eCwgc2l6ZV90
IGFyZ3VtZW50Q291bnQsIGMKICBAcGFyYW0gZXhjZXB0aW9uIEEgcG9pbnRlciB0byBhIEpTVmFs
dWVSZWYgaW4gd2hpY2ggdG8gc3RvcmUgYW4gZXhjZXB0aW9uLCBpZiBhbnkuIFBhc3MgTlVMTCBp
ZiB5b3UgZG8gbm90IGNhcmUgdG8gc3RvcmUgYW4gZXhjZXB0aW9uLgogIEByZXN1bHQgQSBKU09i
amVjdCB0aGF0IGlzIGEgRXJyb3IuCiAgKi8KLUpTX0VYUE9SVCBKU09iamVjdFJlZiBKU09iamVj
dE1ha2VFcnJvcihKU0NvbnRleHRSZWYgY3R4LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3Qg
SlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKSBKU0NfQVBJX0FW
QUlMQUJMRShtYWNvc3goMTAuNiksIGlvcyg3LjApKTsKK0pTX0VYUE9SVCBKU09iamVjdFJlZiBK
U09iamVjdE1ha2VFcnJvcihKU0NvbnRleHRSZWYgY3R4LCBzaXplX3QgYXJndW1lbnRDb3VudCwg
Y29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKSBKU0Nf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC42KSwgaW9zKDcuMCkpOwogCiAvKiEKICBAZnVuY3Rpb24K
QEAgLTQ3NCw3ICs0NzQsNyBAQCBKU19FWFBPUlQgSlNPYmplY3RSZWYgSlNPYmplY3RNYWtlRXJy
b3IoSlNDb250ZXh0UmVmIGN0eCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsCiAgQHBhcmFtIGV4Y2Vw
dGlvbiBBIHBvaW50ZXIgdG8gYSBKU1ZhbHVlUmVmIGluIHdoaWNoIHRvIHN0b3JlIGFuIGV4Y2Vw
dGlvbiwgaWYgYW55LiBQYXNzIE5VTEwgaWYgeW91IGRvIG5vdCBjYXJlIHRvIHN0b3JlIGFuIGV4
Y2VwdGlvbi4KICBAcmVzdWx0IEEgSlNPYmplY3QgdGhhdCBpcyBhIFJlZ0V4cC4KICAqLwotSlNf
RVhQT1JUIEpTT2JqZWN0UmVmIEpTT2JqZWN0TWFrZVJlZ0V4cChKU0NvbnRleHRSZWYgY3R4LCBz
aXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1
ZVJlZiogZXhjZXB0aW9uKSBKU0NfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuNiksIGlvcyg3LjAp
KTsKK0pTX0VYUE9SVCBKU09iamVjdFJlZiBKU09iamVjdE1ha2VSZWdFeHAoSlNDb250ZXh0UmVm
IGN0eCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10s
IEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuNiksIGlv
cyg3LjApKTsKIAogLyohCiBAZnVuY3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNPYmplY3RSZWZQcml2YXRlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L0pTT2JqZWN0UmVmUHJpdmF0ZS5oCmluZGV4IDA4MjYzZmUwMTY0Y2UwODJhODY0MmU5MTEzYWVl
YWMwNDAxODRkNzIuLjQzMjYzNzIzNGMyOGVlMjE5NjhjZjM3NTllZDUzYTJjYjVlZWNhZTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RSZWZQcml2YXRlLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU09iamVjdFJlZlByaXZhdGUuaApAQCAt
ODAsNyArODAsNyBAQCBKU19FWFBPUlQgSlNHbG9iYWxDb250ZXh0UmVmIEpTT2JqZWN0R2V0R2xv
YmFsQ29udGV4dChKU09iamVjdFJlZiBvYmplY3QpOwogIEBwYXJhbSBleGNlcHRpb24gQSBwb2lu
dGVyIHRvIGEgSlNWYWx1ZVJlZiBpbiB3aGljaCB0byBzdG9yZSBhbiBleGNlcHRpb24sIGlmIGFu
eS4gUGFzcyBOVUxMIGlmIHlvdSBkbyBub3QgY2FyZSB0byBzdG9yZSBhbiBleGNlcHRpb24uCiAg
QHJlc3VsdCBBIEpTT2JqZWN0IHRoYXQgaXMgYSBwcm9taXNlIG9yIE5VTEwgaWYgYW4gZXhjZXB0
aW9uIG9jY3VycmVkLgogICovCi1KU19FWFBPUlQgSlNPYmplY3RSZWYgSlNPYmplY3RNYWtlRGVm
ZXJyZWRQcm9taXNlKEpTQ29udGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVmKiByZXNvbHZlLCBKU09i
amVjdFJlZiogcmVqZWN0LCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pIEpTQ19BUElfQVZBSUxBQkxF
KG1hY29zeChKU0NfTUFDX1RCQSksIGlvcyhKU0NfSU9TX1RCQSkpOworSlNfRVhQT1JUIEpTT2Jq
ZWN0UmVmIEpTT2JqZWN0TWFrZURlZmVycmVkUHJvbWlzZShKU0NvbnRleHRSZWYgY3R4LCBKU09i
amVjdFJlZiogcmVzb2x2ZSwgSlNPYmplY3RSZWYqIHJlamVjdCwgSlNWYWx1ZVJlZiogZXhjZXB0
aW9uKSBKU0NfQVBJX0FWQUlMQUJMRShtYWNvcyhKU0NfTUFDX1RCQSksIGlvcyhKU0NfSU9TX1RC
QSkpOwogCiAvKiEKICBAZnVuY3Rpb24KQEAgLTkxLDcgKzkxLDcgQEAgSlNfRVhQT1JUIEpTT2Jq
ZWN0UmVmIEpTT2JqZWN0TWFrZURlZmVycmVkUHJvbWlzZShKU0NvbnRleHRSZWYgY3R4LCBKU09i
amVjdFJlZioKICBAcmVzdWx0IHRydWUgaWYgdGhlIG9iamVjdCBoYXMgYSBwcm9wZXJ0eSB3aG9z
ZSBuYW1lIG1hdGNoZXMgcHJvcGVydHlLZXksIG90aGVyd2lzZSBmYWxzZS4KICBAZGlzY3Vzc2lv
biBUaGlzIGZ1bmN0aW9uIGlzIHRoZSBzYW1lIGFzIHBlcmZvcm1pbmcgInByb3BlcnR5S2V5IGlu
IG9iamVjdCIgZnJvbSBKYXZhU2NyaXB0LgogICovCi1KU19FWFBPUlQgYm9vbCBKU09iamVjdEhh
c1Byb3BlcnR5Rm9yS2V5KEpTQ29udGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVmIG9iamVjdCwgSlNW
YWx1ZVJlZiBwcm9wZXJ0eUtleSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKSBKU0NfQVBJX0FWQUlM
QUJMRShtYWNvc3goSlNDX01BQ19UQkEpLCBpb3MoSlNDX0lPU19UQkEpKTsKK0pTX0VYUE9SVCBi
b29sIEpTT2JqZWN0SGFzUHJvcGVydHlGb3JLZXkoSlNDb250ZXh0UmVmIGN0eCwgSlNPYmplY3RS
ZWYgb2JqZWN0LCBKU1ZhbHVlUmVmIHByb3BlcnR5S2V5LCBKU1ZhbHVlUmVmKiBleGNlcHRpb24p
IEpTQ19BUElfQVZBSUxBQkxFKG1hY29zKEpTQ19NQUNfVEJBKSwgaW9zKEpTQ19JT1NfVEJBKSk7
CiAKIC8qIQogIEBmdW5jdGlvbgpAQCAtMTAzLDcgKzEwMyw3IEBAIEpTX0VYUE9SVCBib29sIEpT
T2JqZWN0SGFzUHJvcGVydHlGb3JLZXkoSlNDb250ZXh0UmVmIGN0eCwgSlNPYmplY3RSZWYgb2Jq
ZWN0LCBKCiAgQHJlc3VsdCBUaGUgcHJvcGVydHkncyB2YWx1ZSBpZiBvYmplY3QgaGFzIHRoZSBw
cm9wZXJ0eSBrZXksIG90aGVyd2lzZSB0aGUgdW5kZWZpbmVkIHZhbHVlLgogIEBkaXNjdXNzaW9u
IFRoaXMgZnVuY3Rpb24gaXMgdGhlIHNhbWUgYXMgcGVyZm9ybWluZyAib2JqZWN0W3Byb3BlcnR5
S2V5XSIgZnJvbSBKYXZhU2NyaXB0LgogICovCi1KU19FWFBPUlQgSlNWYWx1ZVJlZiBKU09iamVj
dEdldFByb3BlcnR5Rm9yS2V5KEpTQ29udGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVmIG9iamVjdCwg
SlNWYWx1ZVJlZiBwcm9wZXJ0eUtleSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKSBKU0NfQVBJX0FW
QUlMQUJMRShtYWNvc3goSlNDX01BQ19UQkEpLCBpb3MoSlNDX0lPU19UQkEpKTsKK0pTX0VYUE9S
VCBKU1ZhbHVlUmVmIEpTT2JqZWN0R2V0UHJvcGVydHlGb3JLZXkoSlNDb250ZXh0UmVmIGN0eCwg
SlNPYmplY3RSZWYgb2JqZWN0LCBKU1ZhbHVlUmVmIHByb3BlcnR5S2V5LCBKU1ZhbHVlUmVmKiBl
eGNlcHRpb24pIEpTQ19BUElfQVZBSUxBQkxFKG1hY29zKEpTQ19NQUNfVEJBKSwgaW9zKEpTQ19J
T1NfVEJBKSk7CiAKIC8qIQogIEBmdW5jdGlvbgpAQCAtMTE2LDcgKzExNiw3IEBAIEpTX0VYUE9S
VCBKU1ZhbHVlUmVmIEpTT2JqZWN0R2V0UHJvcGVydHlGb3JLZXkoSlNDb250ZXh0UmVmIGN0eCwg
SlNPYmplY3RSZWYgb2JqCiAgQHBhcmFtIGV4Y2VwdGlvbiBBIHBvaW50ZXIgdG8gYSBKU1ZhbHVl
UmVmIGluIHdoaWNoIHRvIHN0b3JlIGFuIGV4Y2VwdGlvbiwgaWYgYW55LiBQYXNzIE5VTEwgaWYg
eW91IGRvIG5vdCBjYXJlIHRvIHN0b3JlIGFuIGV4Y2VwdGlvbi4KICBAZGlzY3Vzc2lvbiBUaGlz
IGZ1bmN0aW9uIGlzIHRoZSBzYW1lIGFzIHBlcmZvcm1pbmcgIm9iamVjdFtwcm9wZXJ0eUtleV0g
PSB2YWx1ZSIgZnJvbSBKYXZhU2NyaXB0LgogICovCi1KU19FWFBPUlQgdm9pZCBKU09iamVjdFNl
dFByb3BlcnR5Rm9yS2V5KEpTQ29udGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVmIG9iamVjdCwgSlNW
YWx1ZVJlZiBwcm9wZXJ0eUtleSwgSlNWYWx1ZVJlZiB2YWx1ZSwgSlNQcm9wZXJ0eUF0dHJpYnV0
ZXMgYXR0cmlidXRlcywgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKSBKU0NfQVBJX0FWQUlMQUJMRSht
YWNvc3goSlNDX01BQ19UQkEpLCBpb3MoSlNDX0lPU19UQkEpKTsKK0pTX0VYUE9SVCB2b2lkIEpT
T2JqZWN0U2V0UHJvcGVydHlGb3JLZXkoSlNDb250ZXh0UmVmIGN0eCwgSlNPYmplY3RSZWYgb2Jq
ZWN0LCBKU1ZhbHVlUmVmIHByb3BlcnR5S2V5LCBKU1ZhbHVlUmVmIHZhbHVlLCBKU1Byb3BlcnR5
QXR0cmlidXRlcyBhdHRyaWJ1dGVzLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pIEpTQ19BUElfQVZB
SUxBQkxFKG1hY29zKEpTQ19NQUNfVEJBKSwgaW9zKEpTQ19JT1NfVEJBKSk7CiAKIC8qIQogIEBm
dW5jdGlvbgpAQCAtMTI4LDcgKzEyOCw3IEBAIEpTX0VYUE9SVCB2b2lkIEpTT2JqZWN0U2V0UHJv
cGVydHlGb3JLZXkoSlNDb250ZXh0UmVmIGN0eCwgSlNPYmplY3RSZWYgb2JqZWN0LCBKCiAgQHJl
c3VsdCB0cnVlIGlmIHRoZSBkZWxldGUgb3BlcmF0aW9uIHN1Y2NlZWRzLCBvdGhlcndpc2UgZmFs
c2UgKGZvciBleGFtcGxlLCBpZiB0aGUgcHJvcGVydHkgaGFzIHRoZSBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZURvbnREZWxldGUgYXR0cmlidXRlIHNldCkuCiAgQGRpc2N1c3Npb24gVGhpcyBmdW5jdGlv
biBpcyB0aGUgc2FtZSBhcyBwZXJmb3JtaW5nICJkZWxldGUgb2JqZWN0W3Byb3BlcnR5S2V5XSIg
ZnJvbSBKYXZhU2NyaXB0LgogICovCi1KU19FWFBPUlQgYm9vbCBKU09iamVjdERlbGV0ZVByb3Bl
cnR5Rm9yS2V5KEpTQ29udGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVmIG9iamVjdCwgSlNWYWx1ZVJl
ZiBwcm9wZXJ0eUtleSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKSBKU0NfQVBJX0FWQUlMQUJMRSht
YWNvc3goSlNDX01BQ19UQkEpLCBpb3MoSlNDX0lPU19UQkEpKTsKK0pTX0VYUE9SVCBib29sIEpT
T2JqZWN0RGVsZXRlUHJvcGVydHlGb3JLZXkoSlNDb250ZXh0UmVmIGN0eCwgSlNPYmplY3RSZWYg
b2JqZWN0LCBKU1ZhbHVlUmVmIHByb3BlcnR5S2V5LCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pIEpT
Q19BUElfQVZBSUxBQkxFKG1hY29zKEpTQ19NQUNfVEJBKSwgaW9zKEpTQ19JT1NfVEJBKSk7CiAK
IC8qIQogIEBmdW5jdGlvbgpAQCAtMTM3LDcgKzEzNyw3IEBAIEpTX0VYUE9SVCBib29sIEpTT2Jq
ZWN0RGVsZXRlUHJvcGVydHlGb3JLZXkoSlNDb250ZXh0UmVmIGN0eCwgSlNPYmplY3RSZWYgb2Jq
ZWN0CiAgQHBhcmFtIGRlc2NyaXB0aW9uICAgQSBkZXNjcmlwdGlvbiBvZiB0aGUgbmV3bHkgY3Jl
YXRlZCBzeW1ib2wgdmFsdWUuCiAgQHJlc3VsdCAgICAgICAgICAgICAgQSB1bmlxdWUgSlNWYWx1
ZSBvZiB0aGUgc3ltYm9sIHR5cGUsIHdob3NlIGRlc2NyaXB0aW9uIG1hdGNoZXMgdGhlIG9uZSBw
cm92aWRlZC4KICAqLwotSlNfRVhQT1JUIEpTVmFsdWVSZWYgSlNWYWx1ZU1ha2VTeW1ib2woSlND
b250ZXh0UmVmIGN0eCwgSlNTdHJpbmdSZWYgZGVzY3JpcHRpb24pIEpTQ19BUElfQVZBSUxBQkxF
KG1hY29zeChKU0NfTUFDX1RCQSksIGlvcyhKU0NfSU9TX1RCQSkpOworSlNfRVhQT1JUIEpTVmFs
dWVSZWYgSlNWYWx1ZU1ha2VTeW1ib2woSlNDb250ZXh0UmVmIGN0eCwgSlNTdHJpbmdSZWYgZGVz
Y3JpcHRpb24pIEpTQ19BUElfQVZBSUxBQkxFKG1hY29zKEpTQ19NQUNfVEJBKSwgaW9zKEpTQ19J
T1NfVEJBKSk7CiAKIC8qIQogIEBmdW5jdGlvbgpAQCAtMTQ2LDcgKzE0Niw3IEBAIEpTX0VYUE9S
VCBKU1ZhbHVlUmVmIEpTVmFsdWVNYWtlU3ltYm9sKEpTQ29udGV4dFJlZiBjdHgsIEpTU3RyaW5n
UmVmIGRlc2NyaXB0aW9uCiAgQHBhcmFtIHZhbHVlICAgIFRoZSBKU1ZhbHVlIHRvIHRlc3QuCiAg
QHJlc3VsdCAgICAgICAgIHRydWUgaWYgdmFsdWUncyB0eXBlIGlzIHRoZSBzeW1ib2wgdHlwZSwg
b3RoZXJ3aXNlIGZhbHNlLgogICovCi1KU19FWFBPUlQgYm9vbCBKU1ZhbHVlSXNTeW1ib2woSlND
b250ZXh0UmVmIGN0eCwgSlNWYWx1ZVJlZiB2YWx1ZSkgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3N4
KEpTQ19NQUNfVEJBKSwgaW9zKEpTQ19JT1NfVEJBKSk7CitKU19FWFBPUlQgYm9vbCBKU1ZhbHVl
SXNTeW1ib2woSlNDb250ZXh0UmVmIGN0eCwgSlNWYWx1ZVJlZiB2YWx1ZSkgSlNDX0FQSV9BVkFJ
TEFCTEUobWFjb3MoSlNDX01BQ19UQkEpLCBpb3MoSlNDX0lPU19UQkEpKTsKIAogI2lmZGVmIF9f
Y3BsdXNwbHVzCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTUmVt
b3RlSW5zcGVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTUmVtb3RlSW5zcGVj
dG9yLmgKaW5kZXggNjE4NmI5MjNlYzhhYjhiOTQ4ZTc5M2FmMDRiZGQ4NDMyNzQwMDM0NC4uODU3
NjhlNGQ2NTc3ODFiZTRhNzgwN2U1YWE4ZDQwNGE0NzMyODBkYiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS9KU1JlbW90ZUluc3BlY3Rvci5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvSlNSZW1vdGVJbnNwZWN0b3IuaApAQCAtNDAsMTQgKzQwLDE0IEBAIHR5
cGVkZWYgcGlkX3QgSlNQcm9jZXNzSUQ7CiBleHRlcm4gIkMiIHsKICNlbmRpZgogCi1KU19FWFBP
UlQgdm9pZCBKU1JlbW90ZUluc3BlY3RvckRpc2FibGVBdXRvU3RhcnQodm9pZCkgSlNDX0FQSV9B
VkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOwotSlNfRVhQT1JUIHZvaWQgSlNSZW1v
dGVJbnNwZWN0b3JTdGFydCh2b2lkKSBKU0NfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBp
b3MoOS4wKSk7Ci1KU19FWFBPUlQgdm9pZCBKU1JlbW90ZUluc3BlY3RvclNldFBhcmVudFByb2Nl
c3NJbmZvcm1hdGlvbihKU1Byb2Nlc3NJRCwgY29uc3QgdWludDhfdCogYXVkaXREYXRhLCBzaXpl
X3QgYXVkaXRMZW5ndGgpIEpTQ19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjAp
KTsKK0pTX0VYUE9SVCB2b2lkIEpTUmVtb3RlSW5zcGVjdG9yRGlzYWJsZUF1dG9TdGFydCh2b2lk
KSBKU0NfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMSksIGlvcyg5LjApKTsKK0pTX0VYUE9SVCB2
b2lkIEpTUmVtb3RlSW5zcGVjdG9yU3RhcnQodm9pZCkgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTAuMTEpLCBpb3MoOS4wKSk7CitKU19FWFBPUlQgdm9pZCBKU1JlbW90ZUluc3BlY3RvclNldFBh
cmVudFByb2Nlc3NJbmZvcm1hdGlvbihKU1Byb2Nlc3NJRCwgY29uc3QgdWludDhfdCogYXVkaXRE
YXRhLCBzaXplX3QgYXVkaXRMZW5ndGgpIEpTQ19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjExKSwg
aW9zKDkuMCkpOwogCi1KU19FWFBPUlQgdm9pZCBKU1JlbW90ZUluc3BlY3RvclNldExvZ1RvU3lz
dGVtQ29uc29sZShib29sKSBKU0NfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4w
KSk7CitKU19FWFBPUlQgdm9pZCBKU1JlbW90ZUluc3BlY3RvclNldExvZ1RvU3lzdGVtQ29uc29s
ZShib29sKSBKU0NfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMSksIGlvcyg5LjApKTsKIAotSlNf
RVhQT1JUIGJvb2wgSlNSZW1vdGVJbnNwZWN0b3JHZXRJbnNwZWN0aW9uRW5hYmxlZEJ5RGVmYXVs
dCh2b2lkKSBKU0NfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7Ci1KU19F
WFBPUlQgdm9pZCBKU1JlbW90ZUluc3BlY3RvclNldEluc3BlY3Rpb25FbmFibGVkQnlEZWZhdWx0
KGJvb2wpIEpTQ19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKK0pTX0VY
UE9SVCBib29sIEpTUmVtb3RlSW5zcGVjdG9yR2V0SW5zcGVjdGlvbkVuYWJsZWRCeURlZmF1bHQo
dm9pZCkgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTEpLCBpb3MoOS4wKSk7CitKU19FWFBP
UlQgdm9pZCBKU1JlbW90ZUluc3BlY3RvclNldEluc3BlY3Rpb25FbmFibGVkQnlEZWZhdWx0KGJv
b2wpIEpTQ19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjExKSwgaW9zKDkuMCkpOwogCiAjaWZkZWYg
X19jcGx1c3BsdXMKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNT
Y3JpcHQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNTY3JpcHQuaAppbmRleCA2YTA3
MTEwM2RmYzZlOTlmNWJkNjhkNWM3MjY0MmUwMWZmOGQzMGQ2Li5mM2RmZjRlNmM4YzMyYjMxY2Q5
MjNlZGFiNGMwZTNlMDE5MzZkZmQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL0pTU2NyaXB0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1NjcmlwdC5o
CkBAIC00MywyMyArNDMsMjMgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgSlNTY3JpcHRU
eXBlKSB7CiB9OwogCiAKLUpTQ19DTEFTU19BVkFJTEFCTEUobWFjb3N4KEpTQ19NQUNfVEJBKSwg
aW9zKEpTQ19JT1NfVEJBKSkKK0pTQ19DTEFTU19BVkFJTEFCTEUobWFjb3MoSlNDX01BQ19UQkEp
LCBpb3MoSlNDX0lPU19UQkEpKQogQGludGVyZmFjZSBKU1NjcmlwdCA6IE5TT2JqZWN0CiAKIC8q
IQogIFRoaXMgU1BJIGlzIGRlcHJlY2F0ZWQgYW5kIHNob3VsZCBub3QgYmUgdXNlZC4gVXNlICJz
Y3JpcHRPZlR5cGU6d2l0aFNvdXJjZTphbmRTb3VyY2VVUkw6YW5kQnl0ZWNvZGVDYWNoZTppblZp
cnR1YWxNYWNoaW5lOmVycm9yOiIgaW5zdGVhZC4KICAqLwotKyAobnVsbGFibGUgaW5zdGFuY2V0
eXBlKXNjcmlwdFdpdGhTb3VyY2U6KE5TU3RyaW5nICopc291cmNlIGluVmlydHVhbE1hY2hpbmU6
KEpTVmlydHVhbE1hY2hpbmUgKil2bSBKU0NfQVBJX0RFUFJFQ0FURUQoIlVzZSArc2NyaXB0T2ZU
eXBlOndpdGhTb3VyY2U6YW5kU291cmNlVVJMOmFuZEJ5dGVjb2RlQ2FjaGU6aW5WaXJ0dWFsTWFj
aGluZTplcnJvcjogaW5zdGVhZC4iLCBtYWNvc3goSlNDX01BQ19UQkEsIEpTQ19NQUNfVEJBKSwg
aW9zKEpTQ19JT1NfVEJBLCBKU0NfSU9TX1RCQSkpOworKyAobnVsbGFibGUgaW5zdGFuY2V0eXBl
KXNjcmlwdFdpdGhTb3VyY2U6KE5TU3RyaW5nICopc291cmNlIGluVmlydHVhbE1hY2hpbmU6KEpT
VmlydHVhbE1hY2hpbmUgKil2bSBKU0NfQVBJX0RFUFJFQ0FURUQoIlVzZSArc2NyaXB0T2ZUeXBl
OndpdGhTb3VyY2U6YW5kU291cmNlVVJMOmFuZEJ5dGVjb2RlQ2FjaGU6aW5WaXJ0dWFsTWFjaGlu
ZTplcnJvcjogaW5zdGVhZC4iLCBtYWNvcyhKU0NfTUFDX1RCQSwgSlNDX01BQ19UQkEpLCBpb3Mo
SlNDX0lPU19UQkEsIEpTQ19JT1NfVEJBKSk7CiAKIC8qIQogIFRoaXMgU1BJIGlzIGRlcHJlY2F0
ZWQgYW5kIHNob3VsZCBub3QgYmUgdXNlZC4gVXNlICJzY3JpcHRPZlR5cGU6bWVtb3J5TWFwcGVk
RnJvbUFTQ0lJRmlsZTp3aXRoU291cmNlVVJMOmFuZEJ5dGVjb2RlQ2FjaGU6aW5WaXJ0dWFsTWFj
aGluZTplcnJvcjoiIGluc3RlYWQuCiAgKi8KLSsgKG51bGxhYmxlIGluc3RhbmNldHlwZSlzY3Jp
cHRGcm9tQVNDSUlGaWxlOihOU1VSTCAqKWZpbGVQYXRoIGluVmlydHVhbE1hY2hpbmU6KEpTVmly
dHVhbE1hY2hpbmUgKil2bSB3aXRoQ29kZVNpZ25pbmc6KG51bGxhYmxlIE5TVVJMICopY29kZVNp
Z25pbmdQYXRoIGFuZEJ5dGVjb2RlQ2FjaGU6KG51bGxhYmxlIE5TVVJMICopY2FjaGVQYXRoIEpT
Q19BUElfREVQUkVDQVRFRCgiVXNlICtzY3JpcHRPZlR5cGU6bWVtb3J5TWFwcGVkRnJvbUFTQ0lJ
RmlsZTp3aXRoU291cmNlVVJMOmFuZEJ5dGVjb2RlQ2FjaGU6aW5WaXJ0dWFsTWFjaGluZTplcnJv
cjogaW5zdGVhZC4iLCBtYWNvc3goSlNDX01BQ19UQkEsIEpTQ19NQUNfVEJBKSwgaW9zKEpTQ19J
T1NfVEJBLCBKU0NfSU9TX1RCQSkpOworKyAobnVsbGFibGUgaW5zdGFuY2V0eXBlKXNjcmlwdEZy
b21BU0NJSUZpbGU6KE5TVVJMICopZmlsZVBhdGggaW5WaXJ0dWFsTWFjaGluZTooSlNWaXJ0dWFs
TWFjaGluZSAqKXZtIHdpdGhDb2RlU2lnbmluZzoobnVsbGFibGUgTlNVUkwgKiljb2RlU2lnbmlu
Z1BhdGggYW5kQnl0ZWNvZGVDYWNoZToobnVsbGFibGUgTlNVUkwgKiljYWNoZVBhdGggSlNDX0FQ
SV9ERVBSRUNBVEVEKCJVc2UgK3NjcmlwdE9mVHlwZTptZW1vcnlNYXBwZWRGcm9tQVNDSUlGaWxl
OndpdGhTb3VyY2VVUkw6YW5kQnl0ZWNvZGVDYWNoZTppblZpcnR1YWxNYWNoaW5lOmVycm9yOiBp
bnN0ZWFkLiIsIG1hY29zKEpTQ19NQUNfVEJBLCBKU0NfTUFDX1RCQSksIGlvcyhKU0NfSU9TX1RC
QSwgSlNDX0lPU19UQkEpKTsKIAogLyohCiAgVGhpcyBBUEkgaXMgZGVwcmVjYXRlZCBhbmQgc2hv
dWxkIG5vdCBiZSB1c2VkLgogICovCi0rIChudWxsYWJsZSBpbnN0YW5jZXR5cGUpc2NyaXB0RnJv
bVVURjhGaWxlOihOU1VSTCAqKWZpbGVQYXRoIGluVmlydHVhbE1hY2hpbmU6KEpTVmlydHVhbE1h
Y2hpbmUgKil2bSB3aXRoQ29kZVNpZ25pbmc6KG51bGxhYmxlIE5TVVJMICopY29kZVNpZ25pbmdQ
YXRoIGFuZEJ5dGVjb2RlQ2FjaGU6KG51bGxhYmxlIE5TVVJMICopY2FjaGVQYXRoIEpTQ19BUElf
REVQUkVDQVRFRCgiRG8gbm90IHVzZSB0aGlzLiBVc2UgK3NjcmlwdE9mVHlwZTptZW1vcnlNYXBw
ZWRGcm9tQVNDSUlGaWxlOndpdGhTb3VyY2VVUkw6YW5kQnl0ZWNvZGVDYWNoZTppblZpcnR1YWxN
YWNoaW5lOmVycm9yOiBvciArc2NyaXB0T2ZUeXBlOndpdGhTb3VyY2U6YW5kU291cmNlVVJMOmFu
ZEJ5dGVjb2RlQ2FjaGU6aW5WaXJ0dWFsTWFjaGluZTplcnJvcjogaW5zdGVhZCIsIG1hY29zeChK
U0NfTUFDX1RCQSwgSlNDX01BQ19UQkEpLCBpb3MoSlNDX0lPU19UQkEsIEpTQ19JT1NfVEJBKSk7
CisrIChudWxsYWJsZSBpbnN0YW5jZXR5cGUpc2NyaXB0RnJvbVVURjhGaWxlOihOU1VSTCAqKWZp
bGVQYXRoIGluVmlydHVhbE1hY2hpbmU6KEpTVmlydHVhbE1hY2hpbmUgKil2bSB3aXRoQ29kZVNp
Z25pbmc6KG51bGxhYmxlIE5TVVJMICopY29kZVNpZ25pbmdQYXRoIGFuZEJ5dGVjb2RlQ2FjaGU6
KG51bGxhYmxlIE5TVVJMICopY2FjaGVQYXRoIEpTQ19BUElfREVQUkVDQVRFRCgiRG8gbm90IHVz
ZSB0aGlzLiBVc2UgK3NjcmlwdE9mVHlwZTptZW1vcnlNYXBwZWRGcm9tQVNDSUlGaWxlOndpdGhT
b3VyY2VVUkw6YW5kQnl0ZWNvZGVDYWNoZTppblZpcnR1YWxNYWNoaW5lOmVycm9yOiBvciArc2Ny
aXB0T2ZUeXBlOndpdGhTb3VyY2U6YW5kU291cmNlVVJMOmFuZEJ5dGVjb2RlQ2FjaGU6aW5WaXJ0
dWFsTWFjaGluZTplcnJvcjogaW5zdGVhZCIsIG1hY29zKEpTQ19NQUNfVEJBLCBKU0NfTUFDX1RC
QSksIGlvcyhKU0NfSU9TX1RCQSwgSlNDX0lPU19UQkEpKTsKIAogLyohCiAgQG1ldGhvZApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1R5cGVkQXJyYXkuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNUeXBlZEFycmF5LmgKaW5kZXggNmQ4NjAyMmZhNTY5OTU0
NjQ2YmVlYTNhZTllZmY3YjJjYTM2YTAxZC4uN2VhZjc2YzVlMWVkZThlNmJmMDI4M2E5NzMxMjM1
M2I0MmVmNjlkZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1R5cGVk
QXJyYXkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVHlwZWRBcnJheS5oCkBA
IC00NSw3ICs0NSw3IEBAIGV4dGVybiAiQyIgewogIEBwYXJhbSBleGNlcHRpb24gICAgQSBwb2lu
dGVyIHRvIGEgSlNWYWx1ZVJlZiBpbiB3aGljaCB0byBzdG9yZSBhbiBleGNlcHRpb24sIGlmIGFu
eS4gUGFzcyBOVUxMIGlmIHlvdSBkbyBub3QgY2FyZSB0byBzdG9yZSBhbiBleGNlcHRpb24uCiAg
QHJlc3VsdCAgICAgICAgICAgICBBIEpTT2JqZWN0UmVmIHRoYXQgaXMgYSBUeXBlZCBBcnJheSB3
aXRoIGFsbCBlbGVtZW50cyBzZXQgdG8gemVybyBvciBOVUxMIGlmIHRoZXJlIHdhcyBhbiBlcnJv
ci4KICAqLwotSlNfRVhQT1JUIEpTT2JqZWN0UmVmIEpTT2JqZWN0TWFrZVR5cGVkQXJyYXkoSlND
b250ZXh0UmVmIGN0eCwgSlNUeXBlZEFycmF5VHlwZSBhcnJheVR5cGUsIHNpemVfdCBsZW5ndGgs
IEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwg
aW9zKDEwLjApKTsKK0pTX0VYUE9SVCBKU09iamVjdFJlZiBKU09iamVjdE1ha2VUeXBlZEFycmF5
KEpTQ29udGV4dFJlZiBjdHgsIEpTVHlwZWRBcnJheVR5cGUgYXJyYXlUeXBlLCBzaXplX3QgbGVu
Z3RoLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pIEpTQ19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEy
KSwgaW9zKDEwLjApKTsKIAogLyohCiAgQGZ1bmN0aW9uCkBAIC02MCw3ICs2MCw3IEBAIEpTX0VY
UE9SVCBKU09iamVjdFJlZiBKU09iamVjdE1ha2VUeXBlZEFycmF5KEpTQ29udGV4dFJlZiBjdHgs
IEpTVHlwZWRBcnJheVR5cGUKICBAcmVzdWx0ICAgICAgICAgICAgICAgICAgIEEgSlNPYmplY3RS
ZWYgVHlwZWQgQXJyYXkgd2hvc2UgYmFja2luZyBzdG9yZSBpcyB0aGUgc2FtZSBhcyB0aGUgb25l
IHBvaW50ZWQgdG8gYnkgYnl0ZXMgb3IgTlVMTCBpZiB0aGVyZSB3YXMgYW4gZXJyb3IuCiAgQGRp
c2N1c3Npb24gICAgICAgICAgICAgICBJZiBhbiBleGNlcHRpb24gaXMgdGhyb3duIGR1cmluZyB0
aGlzIGZ1bmN0aW9uIHRoZSBieXRlc0RlYWxsb2NhdG9yIHdpbGwgYWx3YXlzIGJlIGNhbGxlZC4K
ICAqLwotSlNfRVhQT1JUIEpTT2JqZWN0UmVmIEpTT2JqZWN0TWFrZVR5cGVkQXJyYXlXaXRoQnl0
ZXNOb0NvcHkoSlNDb250ZXh0UmVmIGN0eCwgSlNUeXBlZEFycmF5VHlwZSBhcnJheVR5cGUsIHZv
aWQqIGJ5dGVzLCBzaXplX3QgYnl0ZUxlbmd0aCwgSlNUeXBlZEFycmF5Qnl0ZXNEZWFsbG9jYXRv
ciBieXRlc0RlYWxsb2NhdG9yLCB2b2lkKiBkZWFsbG9jYXRvckNvbnRleHQsIEpTVmFsdWVSZWYq
IGV4Y2VwdGlvbikgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsK
K0pTX0VYUE9SVCBKU09iamVjdFJlZiBKU09iamVjdE1ha2VUeXBlZEFycmF5V2l0aEJ5dGVzTm9D
b3B5KEpTQ29udGV4dFJlZiBjdHgsIEpTVHlwZWRBcnJheVR5cGUgYXJyYXlUeXBlLCB2b2lkKiBi
eXRlcywgc2l6ZV90IGJ5dGVMZW5ndGgsIEpTVHlwZWRBcnJheUJ5dGVzRGVhbGxvY2F0b3IgYnl0
ZXNEZWFsbG9jYXRvciwgdm9pZCogZGVhbGxvY2F0b3JDb250ZXh0LCBKU1ZhbHVlUmVmKiBleGNl
cHRpb24pIEpTQ19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKIAogLyoh
CiAgQGZ1bmN0aW9uCkBAIC03MSw3ICs3MSw3IEBAIEpTX0VYUE9SVCBKU09iamVjdFJlZiBKU09i
amVjdE1ha2VUeXBlZEFycmF5V2l0aEJ5dGVzTm9Db3B5KEpTQ29udGV4dFJlZiBjdHgsIEpTCiAg
QHBhcmFtIGV4Y2VwdGlvbiAgICBBIHBvaW50ZXIgdG8gYSBKU1ZhbHVlUmVmIGluIHdoaWNoIHRv
IHN0b3JlIGFuIGV4Y2VwdGlvbiwgaWYgYW55LiBQYXNzIE5VTEwgaWYgeW91IGRvIG5vdCBjYXJl
IHRvIHN0b3JlIGFuIGV4Y2VwdGlvbi4KICBAcmVzdWx0ICAgICAgICAgICAgIEEgSlNPYmplY3RS
ZWYgdGhhdCBpcyBhIFR5cGVkIEFycmF5IG9yIE5VTEwgaWYgdGhlcmUgd2FzIGFuIGVycm9yLiBU
aGUgYmFja2luZyBzdG9yZSBvZiB0aGUgVHlwZWQgQXJyYXkgd2lsbCBiZSBidWZmZXIuCiAgKi8K
LUpTX0VYUE9SVCBKU09iamVjdFJlZiBKU09iamVjdE1ha2VUeXBlZEFycmF5V2l0aEFycmF5QnVm
ZmVyKEpTQ29udGV4dFJlZiBjdHgsIEpTVHlwZWRBcnJheVR5cGUgYXJyYXlUeXBlLCBKU09iamVj
dFJlZiBidWZmZXIsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikgSlNDX0FQSV9BVkFJTEFCTEUobWFj
b3N4KDEwLjEyKSwgaW9zKDEwLjApKTsKK0pTX0VYUE9SVCBKU09iamVjdFJlZiBKU09iamVjdE1h
a2VUeXBlZEFycmF5V2l0aEFycmF5QnVmZmVyKEpTQ29udGV4dFJlZiBjdHgsIEpTVHlwZWRBcnJh
eVR5cGUgYXJyYXlUeXBlLCBKU09iamVjdFJlZiBidWZmZXIsIEpTVmFsdWVSZWYqIGV4Y2VwdGlv
bikgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOwogCiAvKiEKICBA
ZnVuY3Rpb24KQEAgLTg0LDcgKzg0LDcgQEAgSlNfRVhQT1JUIEpTT2JqZWN0UmVmIEpTT2JqZWN0
TWFrZVR5cGVkQXJyYXlXaXRoQXJyYXlCdWZmZXIoSlNDb250ZXh0UmVmIGN0eCwgSlMKICBAcGFy
YW0gZXhjZXB0aW9uICAgIEEgcG9pbnRlciB0byBhIEpTVmFsdWVSZWYgaW4gd2hpY2ggdG8gc3Rv
cmUgYW4gZXhjZXB0aW9uLCBpZiBhbnkuIFBhc3MgTlVMTCBpZiB5b3UgZG8gbm90IGNhcmUgdG8g
c3RvcmUgYW4gZXhjZXB0aW9uLgogIEByZXN1bHQgICAgICAgICAgICAgQSBKU09iamVjdFJlZiB0
aGF0IGlzIGEgVHlwZWQgQXJyYXkgb3IgTlVMTCBpZiB0aGVyZSB3YXMgYW4gZXJyb3IuIFRoZSBi
YWNraW5nIHN0b3JlIG9mIHRoZSBUeXBlZCBBcnJheSB3aWxsIGJlIGJ1ZmZlci4KICAqLwotSlNf
RVhQT1JUIEpTT2JqZWN0UmVmIEpTT2JqZWN0TWFrZVR5cGVkQXJyYXlXaXRoQXJyYXlCdWZmZXJB
bmRPZmZzZXQoSlNDb250ZXh0UmVmIGN0eCwgSlNUeXBlZEFycmF5VHlwZSBhcnJheVR5cGUsIEpT
T2JqZWN0UmVmIGJ1ZmZlciwgc2l6ZV90IGJ5dGVPZmZzZXQsIHNpemVfdCBsZW5ndGgsIEpTVmFs
dWVSZWYqIGV4Y2VwdGlvbikgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEw
LjApKTsKK0pTX0VYUE9SVCBKU09iamVjdFJlZiBKU09iamVjdE1ha2VUeXBlZEFycmF5V2l0aEFy
cmF5QnVmZmVyQW5kT2Zmc2V0KEpTQ29udGV4dFJlZiBjdHgsIEpTVHlwZWRBcnJheVR5cGUgYXJy
YXlUeXBlLCBKU09iamVjdFJlZiBidWZmZXIsIHNpemVfdCBieXRlT2Zmc2V0LCBzaXplX3QgbGVu
Z3RoLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pIEpTQ19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEy
KSwgaW9zKDEwLjApKTsKIAogLyohCiAgQGZ1bmN0aW9uCkBAIC05NSw3ICs5NSw3IEBAIEpTX0VY
UE9SVCBKU09iamVjdFJlZiBKU09iamVjdE1ha2VUeXBlZEFycmF5V2l0aEFycmF5QnVmZmVyQW5k
T2Zmc2V0KEpTQ29udGV4dFJlCiAgQHJlc3VsdCAgICAgICAgICAgICBBIHBvaW50ZXIgdG8gdGhl
IHJhdyBkYXRhIGJ1ZmZlciB0aGF0IHNlcnZlcyBhcyBvYmplY3QncyBiYWNraW5nIHN0b3JlIG9y
IE5VTEwgaWYgb2JqZWN0IGlzIG5vdCBhIFR5cGVkIEFycmF5IG9iamVjdC4KICBAZGlzY3Vzc2lv
biAgICAgICAgIFRoZSBwb2ludGVyIHJldHVybmVkIGJ5IHRoaXMgZnVuY3Rpb24gaXMgdGVtcG9y
YXJ5IGFuZCBpcyBub3QgZ3VhcmFudGVlZCB0byByZW1haW4gdmFsaWQgYWNyb3NzIEphdmFTY3Jp
cHRDb3JlIEFQSSBjYWxscy4KICAqLwotSlNfRVhQT1JUIHZvaWQqIEpTT2JqZWN0R2V0VHlwZWRB
cnJheUJ5dGVzUHRyKEpTQ29udGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVmIG9iamVjdCwgSlNWYWx1
ZVJlZiogZXhjZXB0aW9uKSBKU0NfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3MoMTAu
MCkpOworSlNfRVhQT1JUIHZvaWQqIEpTT2JqZWN0R2V0VHlwZWRBcnJheUJ5dGVzUHRyKEpTQ29u
dGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVmIG9iamVjdCwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKSBK
U0NfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CiAKIC8qIQogIEBmdW5j
dGlvbgpAQCAtMTA1LDcgKzEwNSw3IEBAIEpTX0VYUE9SVCB2b2lkKiBKU09iamVjdEdldFR5cGVk
QXJyYXlCeXRlc1B0cihKU0NvbnRleHRSZWYgY3R4LCBKU09iamVjdFJlZiBvYmplCiAgQHBhcmFt
IGV4Y2VwdGlvbiAgICBBIHBvaW50ZXIgdG8gYSBKU1ZhbHVlUmVmIGluIHdoaWNoIHRvIHN0b3Jl
IGFuIGV4Y2VwdGlvbiwgaWYgYW55LiBQYXNzIE5VTEwgaWYgeW91IGRvIG5vdCBjYXJlIHRvIHN0
b3JlIGFuIGV4Y2VwdGlvbi4KICBAcmVzdWx0ICAgICAgICAgICAgIFRoZSBsZW5ndGggb2YgdGhl
IFR5cGVkIEFycmF5IG9iamVjdCBvciAwIGlmIHRoZSBvYmplY3QgaXMgbm90IGEgVHlwZWQgQXJy
YXkgb2JqZWN0LgogICovCi1KU19FWFBPUlQgc2l6ZV90IEpTT2JqZWN0R2V0VHlwZWRBcnJheUxl
bmd0aChKU0NvbnRleHRSZWYgY3R4LCBKU09iamVjdFJlZiBvYmplY3QsIEpTVmFsdWVSZWYqIGV4
Y2VwdGlvbikgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsKK0pT
X0VYUE9SVCBzaXplX3QgSlNPYmplY3RHZXRUeXBlZEFycmF5TGVuZ3RoKEpTQ29udGV4dFJlZiBj
dHgsIEpTT2JqZWN0UmVmIG9iamVjdCwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKSBKU0NfQVBJX0FW
QUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CiAKIC8qIQogIEBmdW5jdGlvbgpAQCAt
MTE1LDcgKzExNSw3IEBAIEpTX0VYUE9SVCBzaXplX3QgSlNPYmplY3RHZXRUeXBlZEFycmF5TGVu
Z3RoKEpTQ29udGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVmIG9iamVjCiAgQHBhcmFtIGV4Y2VwdGlv
biAgICBBIHBvaW50ZXIgdG8gYSBKU1ZhbHVlUmVmIGluIHdoaWNoIHRvIHN0b3JlIGFuIGV4Y2Vw
dGlvbiwgaWYgYW55LiBQYXNzIE5VTEwgaWYgeW91IGRvIG5vdCBjYXJlIHRvIHN0b3JlIGFuIGV4
Y2VwdGlvbi4KICBAcmVzdWx0ICAgICAgICAgICAgIFRoZSBieXRlIGxlbmd0aCBvZiB0aGUgVHlw
ZWQgQXJyYXkgb2JqZWN0IG9yIDAgaWYgdGhlIG9iamVjdCBpcyBub3QgYSBUeXBlZCBBcnJheSBv
YmplY3QuCiAgKi8KLUpTX0VYUE9SVCBzaXplX3QgSlNPYmplY3RHZXRUeXBlZEFycmF5Qnl0ZUxl
bmd0aChKU0NvbnRleHRSZWYgY3R4LCBKU09iamVjdFJlZiBvYmplY3QsIEpTVmFsdWVSZWYqIGV4
Y2VwdGlvbikgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsKK0pT
X0VYUE9SVCBzaXplX3QgSlNPYmplY3RHZXRUeXBlZEFycmF5Qnl0ZUxlbmd0aChKU0NvbnRleHRS
ZWYgY3R4LCBKU09iamVjdFJlZiBvYmplY3QsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikgSlNDX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOwogCiAvKiEKICBAZnVuY3Rpb24K
QEAgLTEyNSw3ICsxMjUsNyBAQCBKU19FWFBPUlQgc2l6ZV90IEpTT2JqZWN0R2V0VHlwZWRBcnJh
eUJ5dGVMZW5ndGgoSlNDb250ZXh0UmVmIGN0eCwgSlNPYmplY3RSZWYgbwogIEBwYXJhbSBleGNl
cHRpb24gICAgQSBwb2ludGVyIHRvIGEgSlNWYWx1ZVJlZiBpbiB3aGljaCB0byBzdG9yZSBhbiBl
eGNlcHRpb24sIGlmIGFueS4gUGFzcyBOVUxMIGlmIHlvdSBkbyBub3QgY2FyZSB0byBzdG9yZSBh
biBleGNlcHRpb24uCiAgQHJlc3VsdCAgICAgICAgICAgICBUaGUgYnl0ZSBvZmZzZXQgb2YgdGhl
IFR5cGVkIEFycmF5IG9iamVjdCBvciAwIGlmIHRoZSBvYmplY3QgaXMgbm90IGEgVHlwZWQgQXJy
YXkgb2JqZWN0LgogICovCi1KU19FWFBPUlQgc2l6ZV90IEpTT2JqZWN0R2V0VHlwZWRBcnJheUJ5
dGVPZmZzZXQoSlNDb250ZXh0UmVmIGN0eCwgSlNPYmplY3RSZWYgb2JqZWN0LCBKU1ZhbHVlUmVm
KiBleGNlcHRpb24pIEpTQ19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMiksIGlvcygxMC4wKSk7
CitKU19FWFBPUlQgc2l6ZV90IEpTT2JqZWN0R2V0VHlwZWRBcnJheUJ5dGVPZmZzZXQoSlNDb250
ZXh0UmVmIGN0eCwgSlNPYmplY3RSZWYgb2JqZWN0LCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pIEpT
Q19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKIAogLyohCiAgQGZ1bmN0
aW9uCkBAIC0xMzUsNyArMTM1LDcgQEAgSlNfRVhQT1JUIHNpemVfdCBKU09iamVjdEdldFR5cGVk
QXJyYXlCeXRlT2Zmc2V0KEpTQ29udGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVmIG8KICBAcGFyYW0g
ZXhjZXB0aW9uICAgIEEgcG9pbnRlciB0byBhIEpTVmFsdWVSZWYgaW4gd2hpY2ggdG8gc3RvcmUg
YW4gZXhjZXB0aW9uLCBpZiBhbnkuIFBhc3MgTlVMTCBpZiB5b3UgZG8gbm90IGNhcmUgdG8gc3Rv
cmUgYW4gZXhjZXB0aW9uLgogIEByZXN1bHQgICAgICAgICAgICAgQSBKU09iamVjdFJlZiB3aXRo
IGEgSlNUeXBlZEFycmF5VHlwZSBvZiBrSlNUeXBlZEFycmF5VHlwZUFycmF5QnVmZmVyIG9yIE5V
TEwgaWYgb2JqZWN0IGlzIG5vdCBhIFR5cGVkIEFycmF5LgogICovCi1KU19FWFBPUlQgSlNPYmpl
Y3RSZWYgSlNPYmplY3RHZXRUeXBlZEFycmF5QnVmZmVyKEpTQ29udGV4dFJlZiBjdHgsIEpTT2Jq
ZWN0UmVmIG9iamVjdCwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKSBKU0NfQVBJX0FWQUlMQUJMRSht
YWNvc3goMTAuMTIpLCBpb3MoMTAuMCkpOworSlNfRVhQT1JUIEpTT2JqZWN0UmVmIEpTT2JqZWN0
R2V0VHlwZWRBcnJheUJ1ZmZlcihKU0NvbnRleHRSZWYgY3R4LCBKU09iamVjdFJlZiBvYmplY3Qs
IEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBp
b3MoMTAuMCkpOwogCiAvLyAtLS0tLS0tLS0tLS0tIEFycmF5IEJ1ZmZlciBmdW5jdGlvbnMgLS0t
LS0tLS0tLS0tLQogCkBAIC0xNTEsNyArMTUxLDcgQEAgSlNfRVhQT1JUIEpTT2JqZWN0UmVmIEpT
T2JqZWN0R2V0VHlwZWRBcnJheUJ1ZmZlcihKU0NvbnRleHRSZWYgY3R4LCBKU09iamVjdFJlZgog
IEByZXN1bHQgICAgICAgICAgICAgICAgICAgQSBKU09iamVjdFJlZiBBcnJheSBCdWZmZXIgd2hv
c2UgYmFja2luZyBzdG9yZSBpcyB0aGUgc2FtZSBhcyB0aGUgb25lIHBvaW50ZWQgdG8gYnkgYnl0
ZXMgb3IgTlVMTCBpZiB0aGVyZSB3YXMgYW4gZXJyb3IuCiAgQGRpc2N1c3Npb24gICAgICAgICAg
ICAgICBJZiBhbiBleGNlcHRpb24gaXMgdGhyb3duIGR1cmluZyB0aGlzIGZ1bmN0aW9uIHRoZSBi
eXRlc0RlYWxsb2NhdG9yIHdpbGwgYWx3YXlzIGJlIGNhbGxlZC4KICAqLwotSlNfRVhQT1JUIEpT
T2JqZWN0UmVmIEpTT2JqZWN0TWFrZUFycmF5QnVmZmVyV2l0aEJ5dGVzTm9Db3B5KEpTQ29udGV4
dFJlZiBjdHgsIHZvaWQqIGJ5dGVzLCBzaXplX3QgYnl0ZUxlbmd0aCwgSlNUeXBlZEFycmF5Qnl0
ZXNEZWFsbG9jYXRvciBieXRlc0RlYWxsb2NhdG9yLCB2b2lkKiBkZWFsbG9jYXRvckNvbnRleHQs
IEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwg
aW9zKDEwLjApKTsKK0pTX0VYUE9SVCBKU09iamVjdFJlZiBKU09iamVjdE1ha2VBcnJheUJ1ZmZl
cldpdGhCeXRlc05vQ29weShKU0NvbnRleHRSZWYgY3R4LCB2b2lkKiBieXRlcywgc2l6ZV90IGJ5
dGVMZW5ndGgsIEpTVHlwZWRBcnJheUJ5dGVzRGVhbGxvY2F0b3IgYnl0ZXNEZWFsbG9jYXRvciwg
dm9pZCogZGVhbGxvY2F0b3JDb250ZXh0LCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pIEpTQ19BUElf
QVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKIAogLyohCiAgQGZ1bmN0aW9uCkBA
IC0xNjEsNyArMTYxLDcgQEAgSlNfRVhQT1JUIEpTT2JqZWN0UmVmIEpTT2JqZWN0TWFrZUFycmF5
QnVmZmVyV2l0aEJ5dGVzTm9Db3B5KEpTQ29udGV4dFJlZiBjdHgsIHYKICBAcmVzdWx0ICAgICAg
ICAgICBBIHBvaW50ZXIgdG8gdGhlIHJhdyBkYXRhIGJ1ZmZlciB0aGF0IHNlcnZlcyBhcyBvYmpl
Y3QncyBiYWNraW5nIHN0b3JlIG9yIE5VTEwgaWYgb2JqZWN0IGlzIG5vdCBhbiBBcnJheSBCdWZm
ZXIgb2JqZWN0LgogIEBkaXNjdXNzaW9uICAgICAgIFRoZSBwb2ludGVyIHJldHVybmVkIGJ5IHRo
aXMgZnVuY3Rpb24gaXMgdGVtcG9yYXJ5IGFuZCBpcyBub3QgZ3VhcmFudGVlZCB0byByZW1haW4g
dmFsaWQgYWNyb3NzIEphdmFTY3JpcHRDb3JlIEFQSSBjYWxscy4KICAqLwotSlNfRVhQT1JUIHZv
aWQqIEpTT2JqZWN0R2V0QXJyYXlCdWZmZXJCeXRlc1B0cihKU0NvbnRleHRSZWYgY3R4LCBKU09i
amVjdFJlZiBvYmplY3QsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikgSlNDX0FQSV9BVkFJTEFCTEUo
bWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsKK0pTX0VYUE9SVCB2b2lkKiBKU09iamVjdEdldEFy
cmF5QnVmZmVyQnl0ZXNQdHIoSlNDb250ZXh0UmVmIGN0eCwgSlNPYmplY3RSZWYgb2JqZWN0LCBK
U1ZhbHVlUmVmKiBleGNlcHRpb24pIEpTQ19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9z
KDEwLjApKTsKIAogLyohCiAgQGZ1bmN0aW9uCkBAIC0xNzEsNyArMTcxLDcgQEAgSlNfRVhQT1JU
IHZvaWQqIEpTT2JqZWN0R2V0QXJyYXlCdWZmZXJCeXRlc1B0cihKU0NvbnRleHRSZWYgY3R4LCBK
U09iamVjdFJlZiBvYmoKICBAcGFyYW0gZXhjZXB0aW9uICBBIHBvaW50ZXIgdG8gYSBKU1ZhbHVl
UmVmIGluIHdoaWNoIHRvIHN0b3JlIGFuIGV4Y2VwdGlvbiwgaWYgYW55LiBQYXNzIE5VTEwgaWYg
eW91IGRvIG5vdCBjYXJlIHRvIHN0b3JlIGFuIGV4Y2VwdGlvbi4KICBAcmVzdWx0ICAgICAgICAg
ICBUaGUgbnVtYmVyIG9mIGJ5dGVzIHN0b3JlZCBpbiB0aGUgZGF0YSBvYmplY3QuCiAgKi8KLUpT
X0VYUE9SVCBzaXplX3QgSlNPYmplY3RHZXRBcnJheUJ1ZmZlckJ5dGVMZW5ndGgoSlNDb250ZXh0
UmVmIGN0eCwgSlNPYmplY3RSZWYgb2JqZWN0LCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pIEpTQ19B
UElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMiksIGlvcygxMC4wKSk7CitKU19FWFBPUlQgc2l6ZV90
IEpTT2JqZWN0R2V0QXJyYXlCdWZmZXJCeXRlTGVuZ3RoKEpTQ29udGV4dFJlZiBjdHgsIEpTT2Jq
ZWN0UmVmIG9iamVjdCwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKSBKU0NfQVBJX0FWQUlMQUJMRSht
YWNvcygxMC4xMiksIGlvcygxMC4wKSk7CiAKICNpZmRlZiBfX2NwbHVzcGx1cwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTVmFsdWUuaAppbmRleCBhYTNhZTUxYzA5NmFkZDY2NTRlNGJjMjRjMWQ4
ZmMxNWJiOGJiNzdjLi44ZmU1MjkxYWFiZjg5NjA4ODdjZjJjNzM4YWRlYmY5NTQxOTBmNjg3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWUuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWUuaApAQCAtMzQ5LDEzICszNDksMTMgQEAgTlNf
Q0xBU1NfQVZBSUxBQkxFKDEwXzksIDdfMCkKIEBwcm9wZXJ0eQogQGFic3RyYWN0IENoZWNrIGlm
IGEgSlNWYWx1ZSBpcyBhbiBhcnJheS4KICovIAotQHByb3BlcnR5IChyZWFkb25seSkgQk9PTCBp
c0FycmF5IEpTQ19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKK0Bwcm9w
ZXJ0eSAocmVhZG9ubHkpIEJPT0wgaXNBcnJheSBKU0NfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4x
MSksIGlvcyg5LjApKTsKIAogLyohCiBAcHJvcGVydHkKIEBhYnN0cmFjdCBDaGVjayBpZiBhIEpT
VmFsdWUgaXMgYSBkYXRlLgogKi8gCi1AcHJvcGVydHkgKHJlYWRvbmx5KSBCT09MIGlzRGF0ZSBK
U0NfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CitAcHJvcGVydHkgKHJl
YWRvbmx5KSBCT09MIGlzRGF0ZSBKU0NfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMSksIGlvcyg5
LjApKTsKIAogLyohCiBAbWV0aG9kCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL0pTVmFsdWVQcml2YXRlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWVQ
cml2YXRlLmgKaW5kZXggOGFmMjlkYTc4MWFkOTkyODg1MTE0ODc3MzhjNGEyYjMwM2JjYjNhOC4u
YjMxNTc0ZjI4ZWNjMTcyYzgxZmU2MTc1ZDk4Mzk2NzViYTlhOTRmMiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvSlNWYWx1ZVByaXZhdGUuaApAQCAtNDIsNyArNDIsNyBAQCB0eXBlZGVm
IGlkIEpTVmFsdWVQcm9wZXJ0eTsKICBAcGFyYW0gY29udGV4dCBUaGUgSlNDb250ZXh0IHRvIHdo
aWNoIHRoZSByZXN1bHRpbmcgSlNWYWx1ZSBiZWxvbmdzLgogIEByZXN1bHQgVGhlIEpTVmFsdWUg
cmVwcmVzZW50aW5nIGEgdW5pcXVlIEphdmFTY3JpcHQgdmFsdWUgd2l0aCB0eXBlIHN5bWJvbC4K
ICAqLwotKyAoSlNWYWx1ZSAqKXZhbHVlV2l0aE5ld1N5bWJvbEZyb21EZXNjcmlwdGlvbjooTlNT
dHJpbmcgKilkZXNjcmlwdGlvbiBpbkNvbnRleHQ6KEpTQ29udGV4dCAqKWNvbnRleHQgSlNDX0FQ
SV9BVkFJTEFCTEUobWFjb3N4KEpTQ19NQUNfVEJBKSwgaW9zKEpTQ19JT1NfVEJBKSk7CisrIChK
U1ZhbHVlICopdmFsdWVXaXRoTmV3U3ltYm9sRnJvbURlc2NyaXB0aW9uOihOU1N0cmluZyAqKWRl
c2NyaXB0aW9uIGluQ29udGV4dDooSlNDb250ZXh0ICopY29udGV4dCBKU0NfQVBJX0FWQUlMQUJM
RShtYWNvcyhKU0NfTUFDX1RCQSksIGlvcyhKU0NfSU9TX1RCQSkpOwogCiAvKiEKICBAbWV0aG9k
CkBAIC04OSw3ICs4OSw3IEBAIHR5cGVkZWYgaWQgSlNWYWx1ZVByb3BlcnR5OwogIEBwcm9wZXJ0
eQogIEBhYnN0cmFjdCBDaGVjayBpZiBhIEpTVmFsdWUgaXMgYSBzeW1ib2wuCiAgKi8KLUBwcm9w
ZXJ0eSAocmVhZG9ubHkpIEJPT0wgaXNTeW1ib2wgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3N4KEpT
Q19NQUNfVEJBKSwgaW9zKEpTQ19JT1NfVEJBKSk7CitAcHJvcGVydHkgKHJlYWRvbmx5KSBCT09M
IGlzU3ltYm9sIEpTQ19BUElfQVZBSUxBQkxFKG1hY29zKEpTQ19NQUNfVEJBKSwgaW9zKEpTQ19J
T1NfVEJBKSk7CiAKIC8qIQogIEBtZXRob2QKQEAgLTEwNiw3ICsxMDYsNyBAQCB0eXBlZGVmIGlk
IEpTVmFsdWVQcm9wZXJ0eTsKICBhcyBpZiBpdCB3ZXJlIGluIGFueSBvdGhlciBjYWxsYmFjaywg
ZXhjZXB0IGNhbGxlZUZ1bmN0aW9uIHdpbGwgYmUgPGNvZGU+bmlsPC9jb2RlPi4gVGhpcyBhbHNv
IG1lYW5zCiAgbWVhbnMgdGhlIG5ldyBwcm9taXNlIG9iamVjdCBtYXkgYmUgYWNjZXNzZWQgdmlh
IDxjb2RlPltjb250ZXh0IHRoaXNWYWx1ZV08L2NvZGU+LgogICovCi0rIChKU1ZhbHVlICopdmFs
dWVXaXRoTmV3UHJvbWlzZUluQ29udGV4dDooSlNDb250ZXh0ICopY29udGV4dCBmcm9tRXhlY3V0
b3I6KHZvaWQgKF4pKEpTVmFsdWUgKnJlc29sdmUsIEpTVmFsdWUgKnJlamVjdCkpY2FsbGJhY2sg
SlNDX0FQSV9BVkFJTEFCTEUobWFjb3N4KEpTQ19NQUNfVEJBKSwgaW9zKEpTQ19JT1NfVEJBKSk7
CisrIChKU1ZhbHVlICopdmFsdWVXaXRoTmV3UHJvbWlzZUluQ29udGV4dDooSlNDb250ZXh0ICop
Y29udGV4dCBmcm9tRXhlY3V0b3I6KHZvaWQgKF4pKEpTVmFsdWUgKnJlc29sdmUsIEpTVmFsdWUg
KnJlamVjdCkpY2FsbGJhY2sgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3MoSlNDX01BQ19UQkEpLCBp
b3MoSlNDX0lPU19UQkEpKTsKIAogLyohCiAgQG1ldGhvZApAQCAtMTE2LDcgKzExNiw3IEBAIHR5
cGVkZWYgaWQgSlNWYWx1ZVByb3BlcnR5OwogIEByZXN1bHQgVGhlIEpTVmFsdWUgcmVwcmVzZW50
aW5nIGEgbmV3IHByb21pc2UgSmF2YVNjcmlwdCBvYmplY3QuCiAgQGRpc2N1c3Npb24gVGhpcyBt
ZXRob2QgaXMgZXF1aXZhbGVudCB0byBjYWxsaW5nIDxjb2RlPltKU1ZhbHVlIHZhbHVlV2l0aE5l
d1Byb21pc2VGcm9tRXhlY3V0b3I6XihKU1ZhbHVlICpyZXNvbHZlLCBKU1ZhbHVlICpyZWplY3Qp
IHsgW3Jlc29sdmUgY2FsbFdpdGhBcmd1bWVudHM6QFtyZXN1bHRdXTsgfSBpbkNvbnRleHQ6Y29u
dGV4dF08L2NvZGU+CiAgKi8KLSsgKEpTVmFsdWUgKil2YWx1ZVdpdGhOZXdQcm9taXNlUmVzb2x2
ZWRXaXRoUmVzdWx0OihpZClyZXN1bHQgaW5Db250ZXh0OihKU0NvbnRleHQgKiljb250ZXh0IEpT
Q19BUElfQVZBSUxBQkxFKG1hY29zeChKU0NfTUFDX1RCQSksIGlvcyhKU0NfSU9TX1RCQSkpOwor
KyAoSlNWYWx1ZSAqKXZhbHVlV2l0aE5ld1Byb21pc2VSZXNvbHZlZFdpdGhSZXN1bHQ6KGlkKXJl
c3VsdCBpbkNvbnRleHQ6KEpTQ29udGV4dCAqKWNvbnRleHQgSlNDX0FQSV9BVkFJTEFCTEUobWFj
b3MoSlNDX01BQ19UQkEpLCBpb3MoSlNDX0lPU19UQkEpKTsKIAogLyohCiAgQG1ldGhvZApAQCAt
MTI2LDcgKzEyNiw3IEBAIHR5cGVkZWYgaWQgSlNWYWx1ZVByb3BlcnR5OwogIEByZXN1bHQgVGhl
IEpTVmFsdWUgcmVwcmVzZW50aW5nIGEgbmV3IHByb21pc2UgSmF2YVNjcmlwdCBvYmplY3QuCiAg
QGRpc2N1c3Npb24gVGhpcyBtZXRob2QgaXMgZXF1aXZhbGVudCB0byBjYWxsaW5nIDxjb2RlPltK
U1ZhbHVlIHZhbHVlV2l0aE5ld1Byb21pc2VGcm9tRXhlY3V0b3I6XihKU1ZhbHVlICpyZXNvbHZl
LCBKU1ZhbHVlICpyZWplY3QpIHsgW3JlamVjdCBjYWxsV2l0aEFyZ3VtZW50czpAW3JlYXNvbl1d
OyB9IGluQ29udGV4dDpjb250ZXh0XTwvY29kZT4KICAqLwotKyAoSlNWYWx1ZSAqKXZhbHVlV2l0
aE5ld1Byb21pc2VSZWplY3RlZFdpdGhSZWFzb246KGlkKXJlYXNvbiBpbkNvbnRleHQ6KEpTQ29u
dGV4dCAqKWNvbnRleHQgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3N4KEpTQ19NQUNfVEJBKSwgaW9z
KEpTQ19JT1NfVEJBKSk7CisrIChKU1ZhbHVlICopdmFsdWVXaXRoTmV3UHJvbWlzZVJlamVjdGVk
V2l0aFJlYXNvbjooaWQpcmVhc29uIGluQ29udGV4dDooSlNDb250ZXh0ICopY29udGV4dCBKU0Nf
QVBJX0FWQUlMQUJMRShtYWNvcyhKU0NfTUFDX1RCQSksIGlvcyhKU0NfSU9TX1RCQSkpOwogCiBA
ZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZVJlZi5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlUmVmLmgKaW5kZXggYzc4YTQ2ZDlh
MmU0NzJhZTViMWVjMDE4YmFkNTNlOWY1MGEyNmIxYi4uZjA5Y2M3YTNhMzdiYWE5NWJjOTkwNmJj
MmNmOTc4Yjg1NjkwNmQzNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9K
U1ZhbHVlUmVmLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlUmVmLmgK
QEAgLTUxLDcgKzUxLDcgQEAgdHlwZWRlZiBlbnVtIHsKICAgICBrSlNUeXBlTnVtYmVyLAogICAg
IGtKU1R5cGVTdHJpbmcsCiAgICAga0pTVHlwZU9iamVjdCwKLSAgICBrSlNUeXBlU3ltYm9sIEpT
Q19BUElfQVZBSUxBQkxFKG1hY29zeChKU0NfTUFDX1RCQSksIGlvcyhKU0NfSU9TX1RCQSkpCisg
ICAga0pTVHlwZVN5bWJvbCBKU0NfQVBJX0FWQUlMQUJMRShtYWNvcyhKU0NfTUFDX1RCQSksIGlv
cyhKU0NfSU9TX1RCQSkpCiB9IEpTVHlwZTsKIAogLyohCkBAIC04Miw3ICs4Miw3IEBAIHR5cGVk
ZWYgZW51bSB7CiAgICAga0pTVHlwZWRBcnJheVR5cGVGbG9hdDY0QXJyYXksCiAgICAga0pTVHlw
ZWRBcnJheVR5cGVBcnJheUJ1ZmZlciwKICAgICBrSlNUeXBlZEFycmF5VHlwZU5vbmUsCi19IEpT
VHlwZWRBcnJheVR5cGUgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjAp
KTsKK30gSlNUeXBlZEFycmF5VHlwZSBKU0NfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlv
cygxMC4wKSk7CiAKICNpZmRlZiBfX2NwbHVzcGx1cwogZXh0ZXJuICJDIiB7CkBAIC0xNjksNyAr
MTY5LDcgQEAgSlNfRVhQT1JUIGJvb2wgSlNWYWx1ZUlzT2JqZWN0T2ZDbGFzcyhKU0NvbnRleHRS
ZWYgY3R4LCBKU1ZhbHVlUmVmIHZhbHVlLCBKU0NsYXMKIEBwYXJhbSB2YWx1ZSAgICBUaGUgSlNW
YWx1ZSB0byB0ZXN0LgogQHJlc3VsdCAgICAgICAgIHRydWUgaWYgdmFsdWUgaXMgYW4gYXJyYXks
IG90aGVyd2lzZSBmYWxzZS4KICovCi1KU19FWFBPUlQgYm9vbCBKU1ZhbHVlSXNBcnJheShKU0Nv
bnRleHRSZWYgY3R4LCBKU1ZhbHVlUmVmIHZhbHVlKSBKU0NfQVBJX0FWQUlMQUJMRShtYWNvc3go
MTAuMTEpLCBpb3MoOS4wKSk7CitKU19FWFBPUlQgYm9vbCBKU1ZhbHVlSXNBcnJheShKU0NvbnRl
eHRSZWYgY3R4LCBKU1ZhbHVlUmVmIHZhbHVlKSBKU0NfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4x
MSksIGlvcyg5LjApKTsKIAogLyohCiBAZnVuY3Rpb24KQEAgLTE3OCw3ICsxNzgsNyBAQCBKU19F
WFBPUlQgYm9vbCBKU1ZhbHVlSXNBcnJheShKU0NvbnRleHRSZWYgY3R4LCBKU1ZhbHVlUmVmIHZh
bHVlKSBKU0NfQVBJX0FWQUlMQQogQHBhcmFtIHZhbHVlICAgIFRoZSBKU1ZhbHVlIHRvIHRlc3Qu
CiBAcmVzdWx0ICAgICAgICAgdHJ1ZSBpZiB2YWx1ZSBpcyBhIGRhdGUsIG90aGVyd2lzZSBmYWxz
ZS4KICovCi1KU19FWFBPUlQgYm9vbCBKU1ZhbHVlSXNEYXRlKEpTQ29udGV4dFJlZiBjdHgsIEpT
VmFsdWVSZWYgdmFsdWUpIEpTQ19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjAp
KTsKK0pTX0VYUE9SVCBib29sIEpTVmFsdWVJc0RhdGUoSlNDb250ZXh0UmVmIGN0eCwgSlNWYWx1
ZVJlZiB2YWx1ZSkgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTEpLCBpb3MoOS4wKSk7CiAK
IC8qIQogQGZ1bmN0aW9uCkBAIC0xODgsNyArMTg4LDcgQEAgSlNfRVhQT1JUIGJvb2wgSlNWYWx1
ZUlzRGF0ZShKU0NvbnRleHRSZWYgY3R4LCBKU1ZhbHVlUmVmIHZhbHVlKSBKU0NfQVBJX0FWQUlM
QUIKIEBwYXJhbSBleGNlcHRpb24gICAgQSBwb2ludGVyIHRvIGEgSlNWYWx1ZVJlZiBpbiB3aGlj
aCB0byBzdG9yZSBhbiBleGNlcHRpb24sIGlmIGFueS4gUGFzcyBOVUxMIGlmIHlvdSBkbyBub3Qg
Y2FyZSB0byBzdG9yZSBhbiBleGNlcHRpb24uCiBAcmVzdWx0ICAgICAgICAgICAgIEEgdmFsdWUg
b2YgdHlwZSBKU1R5cGVkQXJyYXlUeXBlIHRoYXQgaWRlbnRpZmllcyB2YWx1ZSdzIFR5cGVkIEFy
cmF5IHR5cGUsIG9yIGtKU1R5cGVkQXJyYXlUeXBlTm9uZSBpZiB0aGUgdmFsdWUgaXMgbm90IGEg
VHlwZWQgQXJyYXkgb2JqZWN0LgogICovCi1KU19FWFBPUlQgSlNUeXBlZEFycmF5VHlwZSBKU1Zh
bHVlR2V0VHlwZWRBcnJheVR5cGUoSlNDb250ZXh0UmVmIGN0eCwgSlNWYWx1ZVJlZiB2YWx1ZSwg
SlNWYWx1ZVJlZiogZXhjZXB0aW9uKSBKU0NfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBp
b3MoMTAuMCkpOworSlNfRVhQT1JUIEpTVHlwZWRBcnJheVR5cGUgSlNWYWx1ZUdldFR5cGVkQXJy
YXlUeXBlKEpTQ29udGV4dFJlZiBjdHgsIEpTVmFsdWVSZWYgdmFsdWUsIEpTVmFsdWVSZWYqIGV4
Y2VwdGlvbikgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOwogCiAv
KiBDb21wYXJpbmcgdmFsdWVzICovCiAKQEAgLTI3OSw3ICsyNzksNyBAQCBKU19FWFBPUlQgSlNW
YWx1ZVJlZiBKU1ZhbHVlTWFrZVN0cmluZyhKU0NvbnRleHRSZWYgY3R4LCBKU1N0cmluZ1JlZiBz
dHJpbmcpOwogIEBwYXJhbSBzdHJpbmcgICBUaGUgSlNTdHJpbmcgY29udGFpbmluZyB0aGUgSlNP
TiBzdHJpbmcgdG8gYmUgcGFyc2VkLgogIEByZXN1bHQgICAgICAgICBBIEpTVmFsdWUgY29udGFp
bmluZyB0aGUgcGFyc2VkIHZhbHVlLCBvciBOVUxMIGlmIHRoZSBpbnB1dCBpcyBpbnZhbGlkLgog
ICovCi1KU19FWFBPUlQgSlNWYWx1ZVJlZiBKU1ZhbHVlTWFrZUZyb21KU09OU3RyaW5nKEpTQ29u
dGV4dFJlZiBjdHgsIEpTU3RyaW5nUmVmIHN0cmluZykgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3N4
KDEwLjcpLCBpb3MoNy4wKSk7CitKU19FWFBPUlQgSlNWYWx1ZVJlZiBKU1ZhbHVlTWFrZUZyb21K
U09OU3RyaW5nKEpTQ29udGV4dFJlZiBjdHgsIEpTU3RyaW5nUmVmIHN0cmluZykgSlNDX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTAuNyksIGlvcyg3LjApKTsKIAogLyohCiAgQGZ1bmN0aW9uCkBAIC0y
OTAsNyArMjkwLDcgQEAgSlNfRVhQT1JUIEpTVmFsdWVSZWYgSlNWYWx1ZU1ha2VGcm9tSlNPTlN0
cmluZyhKU0NvbnRleHRSZWYgY3R4LCBKU1N0cmluZ1JlZiBzdHIKICBAcGFyYW0gZXhjZXB0aW9u
IEEgcG9pbnRlciB0byBhIEpTVmFsdWVSZWYgaW4gd2hpY2ggdG8gc3RvcmUgYW4gZXhjZXB0aW9u
LCBpZiBhbnkuIFBhc3MgTlVMTCBpZiB5b3UgZG8gbm90IGNhcmUgdG8gc3RvcmUgYW4gZXhjZXB0
aW9uLgogIEByZXN1bHQgICAgICAgICBBIEpTU3RyaW5nIHdpdGggdGhlIHJlc3VsdCBvZiBzZXJp
YWxpemF0aW9uLCBvciBOVUxMIGlmIGFuIGV4Y2VwdGlvbiBpcyB0aHJvd24uCiAgKi8KLUpTX0VY
UE9SVCBKU1N0cmluZ1JlZiBKU1ZhbHVlQ3JlYXRlSlNPTlN0cmluZyhKU0NvbnRleHRSZWYgY3R4
LCBKU1ZhbHVlUmVmIHZhbHVlLCB1bnNpZ25lZCBpbmRlbnQsIEpTVmFsdWVSZWYqIGV4Y2VwdGlv
bikgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjcpLCBpb3MoNy4wKSk7CitKU19FWFBPUlQg
SlNTdHJpbmdSZWYgSlNWYWx1ZUNyZWF0ZUpTT05TdHJpbmcoSlNDb250ZXh0UmVmIGN0eCwgSlNW
YWx1ZVJlZiB2YWx1ZSwgdW5zaWduZWQgaW5kZW50LCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pIEpT
Q19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjcpLCBpb3MoNy4wKSk7CiAKIC8qIENvbnZlcnRpbmcg
dG8gcHJpbWl0aXZlIHZhbHVlcyAqLwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQVBJL0pTVmlydHVhbE1hY2hpbmVQcml2YXRlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL0pTVmlydHVhbE1hY2hpbmVQcml2YXRlLmgKaW5kZXggYzY2ODM0NWI2ZTdjMjNmYWNjZjRl
MjEzYzFjYWQ4MzEzNGFiNjI5NC4uOTUwYWZjNzNmODc1YzJkZDk1NmI5Njc4MzFhYjUwODkxYTBl
YjM1NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZpcnR1YWxNYWNo
aW5lUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWaXJ0dWFsTWFj
aGluZVByaXZhdGUuaApAQCAtNDMsNyArNDMsNyBAQAogIEFQSSBtYXkgbm90IHN5bmNocm9ub3Vz
bHkgZnJlZSBtZW1vcnkuCiAqLwogCi0tICh2b2lkKXNocmlua0Zvb3RwcmludFdoZW5JZGxlIEpT
Q19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xNCksIGlvcygxMi4wKSk7CistICh2b2lkKXNocmlu
a0Zvb3RwcmludFdoZW5JZGxlIEpTQ19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSwgaW9zKDEy
LjApKTsKIAogI2lmIEVOQUJMRShERkdfSklUKQogCkBAIC01OCw3ICs1OCw3IEBACiBAcGFyYW0g
bnVtYmVyT2ZUaHJlYWRzIFRoZSBudW1iZXIgb2YgdGhyZWFkcyB0aGUgREZHIGNvbXBpbGVyIHNo
b3VsZCB1c2UgZ29pbmcgZm9yd2FyZAogQHJlc3VsdCBUaGUgcHJldmlvdXMgbnVtYmVyIG9mIHRo
cmVhZHMgYmVpbmcgdXNlZCBieSB0aGUgREZHIGNvbXBpbGVyCiAqLwotKyAoTlNVSW50ZWdlcilz
ZXROdW1iZXJPZkRGR0NvbXBpbGVyVGhyZWFkczooTlNVSW50ZWdlciludW1iZXJPZlRocmVhZHMg
SlNDX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjE0KSwgaW9zKDEyLjApKTsKKysgKE5TVUludGVn
ZXIpc2V0TnVtYmVyT2ZERkdDb21waWxlclRocmVhZHM6KE5TVUludGVnZXIpbnVtYmVyT2ZUaHJl
YWRzIEpTQ19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSwgaW9zKDEyLjApKTsKIAogLyohCiBA
bWV0aG9kCkBAIC03MSw3ICs3MSw3IEBACiBAcGFyYW0gbnVtYmVyT2ZUaHJlYWRzIFRoZSBudW1i
ZXIgb2YgdGhyZWFkcyB0aGUgRlRMIGNvbXBpbGVyIHNob3VsZCB1c2UgZ29pbmcgZm9yd2FyZAog
QHJlc3VsdCBUaGUgcHJldmlvdXMgbnVtYmVyIG9mIHRocmVhZHMgYmVpbmcgdXNlZCBieSB0aGUg
RlRMIGNvbXBpbGVyCiAqLwotKyAoTlNVSW50ZWdlcilzZXROdW1iZXJPZkZUTENvbXBpbGVyVGhy
ZWFkczooTlNVSW50ZWdlciludW1iZXJPZlRocmVhZHMgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3N4
KDEwLjE0KSwgaW9zKDEyLjApKTsKKysgKE5TVUludGVnZXIpc2V0TnVtYmVyT2ZGVExDb21waWxl
clRocmVhZHM6KE5TVUludGVnZXIpbnVtYmVyT2ZUaHJlYWRzIEpTQ19BUElfQVZBSUxBQkxFKG1h
Y29zKDEwLjE0KSwgaW9zKDEyLjApKTsKIAogLyohCiBAbWV0aG9kCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9OU1RvdWNoQmFyU1BJLmggYi9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL3NwaS9jb2NvYS9OU1RvdWNoQmFyU1BJLmgKaW5kZXggMmFjYWVhYTdlYTc4
NjE1YmMzMzhjMGE5M2YyMTA0NmJjYmI1ZTlkYy4uZmJiMzVkMWQ3NGEyNmNlZmU4Y2JlMjlhZmZi
YTkwMmVhMTBlODYzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29j
b2EvTlNUb3VjaEJhclNQSS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29h
L05TVG91Y2hCYXJTUEkuaApAQCAtNjQsMTAgKzY0LDEwIEBAIE5TX0FTU1VNRV9OT05OVUxMX0JF
R0lOCiAKICNlbmRpZiAvLyAhVVNFKEFQUExFX0lOVEVSTkFMX1NESykKIAotQVBQS0lUX0VYVEVS
TiBOU05vdGlmaWNhdGlvbk5hbWUgY29uc3QgTlNUb3VjaEJhcldpbGxFbnRlckN1c3RvbWl6YXRp
b24gQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIuMikpOwotQVBQS0lUX0VYVEVSTiBOU05vdGlm
aWNhdGlvbk5hbWUgY29uc3QgTlNUb3VjaEJhckRpZEVudGVyQ3VzdG9taXphdGlvbiBBUElfQVZB
SUxBQkxFKG1hY29zeCgxMC4xMi4yKSk7Ci1BUFBLSVRfRVhURVJOIE5TTm90aWZpY2F0aW9uTmFt
ZSBjb25zdCBOU1RvdWNoQmFyV2lsbEV4aXRDdXN0b21pemF0aW9uIEFQSV9BVkFJTEFCTEUobWFj
b3N4KDEwLjEyLjIpKTsKLUFQUEtJVF9FWFRFUk4gTlNOb3RpZmljYXRpb25OYW1lIGNvbnN0IE5T
VG91Y2hCYXJEaWRFeGl0Q3VzdG9taXphdGlvbiBBUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMi4y
KSk7CitBUFBLSVRfRVhURVJOIE5TTm90aWZpY2F0aW9uTmFtZSBjb25zdCBOU1RvdWNoQmFyV2ls
bEVudGVyQ3VzdG9taXphdGlvbiBBUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyLjIpKTsKK0FQUEtJ
VF9FWFRFUk4gTlNOb3RpZmljYXRpb25OYW1lIGNvbnN0IE5TVG91Y2hCYXJEaWRFbnRlckN1c3Rv
bWl6YXRpb24gQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMi4yKSk7CitBUFBLSVRfRVhURVJOIE5T
Tm90aWZpY2F0aW9uTmFtZSBjb25zdCBOU1RvdWNoQmFyV2lsbEV4aXRDdXN0b21pemF0aW9uIEFQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTIuMikpOworQVBQS0lUX0VYVEVSTiBOU05vdGlmaWNhdGlv
bk5hbWUgY29uc3QgTlNUb3VjaEJhckRpZEV4aXRDdXN0b21pemF0aW9uIEFQSV9BVkFJTEFCTEUo
bWFjb3MoMTAuMTIuMikpOwogCiBOU19BU1NVTUVfTk9OTlVMTF9FTkQKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0SGFuZGxlLmgg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRIYW5kbGUu
aAppbmRleCA0NDg0Y2QzN2RjYmI3OTY1ZjFiZmE5MzEwMGM1MjA0MmRmNWM4NjA5Li5mY2UzMmY1
MTcxMjNjYzNkYjcyNjJmZDBjZDE0YWQ5NGZhNGM4YjAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRIYW5kbGUuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRIYW5kbGUuaApAQCAt
MjUsNiArMjUsNiBAQAogCiAjaW1wb3J0IDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+CiAKLVdLX0NM
QVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKK1dLX0NMQVNTX0FWQUlMQUJM
RShtYWNvcygxMC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBXS0Jyb3dzaW5nQ29udGV4dEhh
bmRsZSA6IE5TT2JqZWN0IDxOU1NlY3VyZUNvZGluZz4KIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9XS0RyYWdEZXN0aW5hdGlvbkFjdGlvbi5oIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL1dLRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uLmgKaW5k
ZXggMWRkYTRhOWMzYjQ4MTllYThkMDk5MDhlMTRlYjkzNDdhMDk0NDFmMy4uMzFmYTE1NDcyOTdk
MTg2YzQ3ODFiOWEwOGUwM2Q0MWI0OGE1ZTE5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvQVBJL0NvY29hL1dLRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uLmgKKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvQVBJL0NvY29hL1dLRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uLmgKQEAgLTMzLDQg
KzMzLDQgQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIFdLRHJhZ0Rlc3RpbmF0aW9u
QWN0aW9uKSB7CiAgICAgV0tEcmFnRGVzdGluYXRpb25BY3Rpb25FZGl0ICAgID0gMiwKICAgICBX
S0RyYWdEZXN0aW5hdGlvbkFjdGlvbkxvYWQgICAgPSA0LAogICAgIFdLRHJhZ0Rlc3RpbmF0aW9u
QWN0aW9uQW55ICAgICA9IE5TVUludGVnZXJNYXgKLX0gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3go
MTAuMTMpLCBpb3MoMTEuMCkpOworfSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9z
KDExLjApKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9XS01h
aW4uaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9XS01haW4uaAppbmRleCBhY2Nm
MjMyMWY2YzFkZjE4ODIxNTAyNGQ0ZDU3ZWQxODU1N2RjYjMzLi43NzY2ODkyM2UyYzZhMDM4NTUw
ZDZmNDFlODBmZTIzY2JlZWY3MDQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9B
UEkvQ29jb2EvV0tNYWluLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL1dL
TWFpbi5oCkBAIC0zMiw4ICszMiw4IEBACiBleHRlcm4gIkMiIHsKICNlbmRpZgogCi1XS19FWFBP
UlQgaW50IFdLWFBDU2VydmljZU1haW4oaW50IGFyZ2MsIGNvbnN0IGNoYXIqKiBhcmd2KSBXS19B
UElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLVdLX0VY
UE9SVCBpbnQgV0tEYWVtb25NYWluKGludCBhcmdjLCBjb25zdCBjaGFyKiogYXJndikgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitXS19FWFBP
UlQgaW50IFdLWFBDU2VydmljZU1haW4oaW50IGFyZ2MsIGNvbnN0IGNoYXIqKiBhcmd2KSBXS19B
UElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworV0tfRVhQ
T1JUIGludCBXS0RhZW1vbk1haW4oaW50IGFyZ2MsIGNvbnN0IGNoYXIqKiBhcmd2KSBXS19BUElf
QVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiAjaWZkZWYg
X19jcGx1c3BsdXMKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2Nv
YS9fV0tGcmFtZUhhbmRsZS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL19XS0Zy
YW1lSGFuZGxlLmgKaW5kZXggZTg3NDlkYjQ3MzRhZTFlMTU5OTIyZDNhYjI0YjE2OTI4OTI3Y2Q4
YS4uNzJlZmU3MjM0NTA2ZGRmOWFkOTc1MzdlNzBhZDNiZDdmNjhiNTcyMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL19XS0ZyYW1lSGFuZGxlLmgKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL19XS0ZyYW1lSGFuZGxlLmgKQEAgLTI3LDcgKzI3
LDcgQEAKIAogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CiAKLVdLX0NMQVNTX0FW
QUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNv
cygxMC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBfV0tGcmFtZUhhbmRsZSA6IE5TT2JqZWN0
IDxOU0NvcHlpbmcsIE5TU2VjdXJlQ29kaW5nPgogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvX1dLSGl0VGVzdFJlc3VsdC5oIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvQVBJL0NvY29hL19XS0hpdFRlc3RSZXN1bHQuaAppbmRleCAwM2MxYjZiODIwMjRl
MmM4Y2EzY2JmYzgwYmM3MjcwZDk3YzA4NTUyLi42YjE5MGM2OWI5YTA4MGFlYTgyZTNlMDg1NWM1
NGY1YzAxYmYzOWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2Ev
X1dLSGl0VGVzdFJlc3VsdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9f
V0tIaXRUZXN0UmVzdWx0LmgKQEAgLTI5LDcgKzI5LDcgQEAKIAogI2ltcG9ydCA8Rm91bmRhdGlv
bi9Gb3VuZGF0aW9uLmg+CiAKLVdLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpKQorV0tf
Q0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSkKIEBpbnRlcmZhY2UgX1dLSGl0VGVzdFJlc3Vs
dCA6IE5TT2JqZWN0IDxOU0NvcHlpbmc+CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25s
eSwgY29weSkgTlNVUkwgKmFic29sdXRlSW1hZ2VVUkw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9BUEkvQ29jb2EvX1dLTlNXaW5kb3dFeHRyYXMuaCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL0FQSS9Db2NvYS9fV0tOU1dpbmRvd0V4dHJhcy5oCmluZGV4IGVlNGQ4M2FiZDgyNGI5
ZDMzYmU2OGI4MzMzM2ZkNTMxMmQxMzVjMTcuLjc3NjhlMDJkMWQzNjc5ZTJiOTY0NTU4MDdiMWM3
ZTUzZDg3NDEwODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9f
V0tOU1dpbmRvd0V4dHJhcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9f
V0tOU1dpbmRvd0V4dHJhcy5oCkBAIC0yOSw3ICsyOSw3IEBACiAKIEBpbnRlcmZhY2UgTlNXaW5k
b3cgKFdLRXh0cmFzKQogCi0tIChCT09MKV93ZWJfaXNXZWJJbnNwZWN0b3JXaW5kb3cgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCkpOworLSAoQk9PTClfd2ViX2lzV2ViSW5zcGVjdG9y
V2luZG93IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOwogCiBAZW5kCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9fV0tSZW1vdGVPYmplY3RJbnRl
cmZhY2UuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9fV0tSZW1vdGVPYmplY3RJ
bnRlcmZhY2UuaAppbmRleCA2OWM1MTZjMDgzNGZhOTcyZDIxZGJhMTVhZTQ5NzE0ZDE1MmQ5ODZj
Li4xOGZiMzI2YTE3MTc2YjIyNzNkMjg0NDMxZDAwMjEzYzFmOTBhNWUwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvX1dLUmVtb3RlT2JqZWN0SW50ZXJmYWNlLmgK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL19XS1JlbW90ZU9iamVjdEludGVy
ZmFjZS5oCkBAIC0yNyw3ICsyNyw3IEBACiAKICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlv
bi5oPgogCi1XS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCitXS19D
TEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2UgX1dLUmVt
b3RlT2JqZWN0SW50ZXJmYWNlIDogTlNPYmplY3QKIAogKyAoaW5zdGFuY2V0eXBlKXJlbW90ZU9i
amVjdEludGVyZmFjZVdpdGhQcm90b2NvbDooUHJvdG9jb2wgKilwcm90b2NvbDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9fV0tSZW1vdGVPYmplY3RSZWdpc3Ry
eS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL19XS1JlbW90ZU9iamVjdFJlZ2lz
dHJ5LmgKaW5kZXggMTkxMjRlYjUzMjYwZDRmNThjYjQwYmRmMzUyOGU3Y2ZjNzNiYmJmOS4uNGIw
ZGVlNTRmYTczMjU2YzBmODhlNjVmZTMwMmVmZTgyMTE1ZTI1ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL19XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5LmgKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL19XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5LmgK
QEAgLTI5LDcgKzI5LDcgQEAKIAogQGNsYXNzIF9XS1JlbW90ZU9iamVjdEludGVyZmFjZTsKIAot
V0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQorV0tfQ0xBU1NfQVZB
SUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIF9XS1JlbW90ZU9iamVj
dFJlZ2lzdHJ5IDogTlNPYmplY3QKIAogLSAodm9pZClyZWdpc3RlckV4cG9ydGVkT2JqZWN0Oihp
ZClvYmplY3QgaW50ZXJmYWNlOihfV0tSZW1vdGVPYmplY3RJbnRlcmZhY2UgKilpbnRlcmZhY2U7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvX1dLUmVuZGVyaW5n
UHJvZ3Jlc3NFdmVudHMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9fV0tSZW5k
ZXJpbmdQcm9ncmVzc0V2ZW50cy5oCmluZGV4IDlhNjA1MTU5NmE0YWVlZDUwY2Q4ZDYwOWM5NGQ0
MmYzNjk2YWJhZjAuLjgxYTQ2M2RjNjA5OGM4OWM1Y2EwYWE2ZmYzOGMyM2YzMjU5Y2JlZTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9fV0tSZW5kZXJpbmdQcm9n
cmVzc0V2ZW50cy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9fV0tSZW5k
ZXJpbmdQcm9ncmVzc0V2ZW50cy5oCkBAIC0yNywxMiArMjcsMTIgQEAKIAogdHlwZWRlZiBOU19P
UFRJT05TKE5TVUludGVnZXIsIF9XS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRzKSB7CiAgICAgX1dL
UmVuZGVyaW5nUHJvZ3Jlc3NFdmVudEZpcnN0TGF5b3V0ID0gMSA8PCAwLAotICAgIF9XS1JlbmRl
cmluZ1Byb2dyZXNzRXZlbnRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQgV0tfQVBJX0FWQUlM
QUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSkgPSAxIDw8IDEsCisgICAgX1dLUmVuZGVyaW5n
UHJvZ3Jlc3NFdmVudEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dCBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjExKSwgaW9zKDkuMCkpID0gMSA8PCAxLAogICAgIF9XS1JlbmRlcmluZ1Byb2dy
ZXNzRXZlbnRGaXJzdFBhaW50V2l0aFNpZ25pZmljYW50QXJlYSA9IDEgPDwgMiwKLSAgICBfV0tS
ZW5kZXJpbmdQcm9ncmVzc0V2ZW50UmVhY2hlZFNlc3Npb25SZXN0b3JhdGlvblJlbmRlclRyZWVT
aXplVGhyZXNob2xkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpID0g
MSA8PCAzLAotICAgIF9XS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRGaXJzdExheW91dEFmdGVyU3Vw
cHJlc3NlZEluY3JlbWVudGFsUmVuZGVyaW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEx
KSwgaW9zKDkuMCkpID0gMSA8PCA0LAotICAgIF9XS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRGaXJz
dFBhaW50QWZ0ZXJTdXBwcmVzc2VkSW5jcmVtZW50YWxSZW5kZXJpbmcgV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSkgPSAxIDw8IDUsCi0gICAgX1dLUmVuZGVyaW5nUHJv
Z3Jlc3NFdmVudEZpcnN0UGFpbnQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3Mo
OS4wKSkgPSAxIDw8IDYsCi0gICAgX1dLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudERpZFJlbmRlclNp
Z25pZmljYW50QW1vdW50T2ZUZXh0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjE0KSwgaW9z
KDEyLjApKSA9IDEgPDwgNywKLSAgICBfV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50Rmlyc3RNZWFu
aW5nZnVsUGFpbnQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19J
T1NfVEJBKSkgPSAxIDw8IDgsCi19IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9z
KDguMCkpOworICAgIF9XS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRSZWFjaGVkU2Vzc2lvblJlc3Rv
cmF0aW9uUmVuZGVyVHJlZVNpemVUaHJlc2hvbGQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4x
MSksIGlvcyg5LjApKSA9IDEgPDwgMywKKyAgICBfV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50Rmly
c3RMYXlvdXRBZnRlclN1cHByZXNzZWRJbmNyZW1lbnRhbFJlbmRlcmluZyBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDEwLjExKSwgaW9zKDkuMCkpID0gMSA8PCA0LAorICAgIF9XS1JlbmRlcmluZ1By
b2dyZXNzRXZlbnRGaXJzdFBhaW50QWZ0ZXJTdXBwcmVzc2VkSW5jcmVtZW50YWxSZW5kZXJpbmcg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMSksIGlvcyg5LjApKSA9IDEgPDwgNSwKKyAgICBf
V0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50Rmlyc3RQYWludCBXS19BUElfQVZBSUxBQkxFKG1hY29z
KDEwLjExKSwgaW9zKDkuMCkpID0gMSA8PCA2LAorICAgIF9XS1JlbmRlcmluZ1Byb2dyZXNzRXZl
bnREaWRSZW5kZXJTaWduaWZpY2FudEFtb3VudE9mVGV4dCBXS19BUElfQVZBSUxBQkxFKG1hY29z
KDEwLjE0KSwgaW9zKDEyLjApKSA9IDEgPDwgNywKKyAgICBfV0tSZW5kZXJpbmdQcm9ncmVzc0V2
ZW50Rmlyc3RNZWFuaW5nZnVsUGFpbnQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJB
KSwgaW9zKFdLX0lPU19UQkEpKSA9IDEgPDwgOCwKK30gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygx
MC4xMCksIGlvcyg4LjApKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9D
b2NvYS9fV0tTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZS5oIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvQVBJL0NvY29hL19XS1NhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlLmgKaW5kZXggN2E2YTE4
ZWIzNmZmN2IwMjNlMWU2ODViMzM0ZDU1YjhjMDk2NmFiNS4uNWY2MzQ2YzMyOWRiMjdiMjAyM2E1
ZDE5ZDExODM1ODQ0MWZkYTcyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJ
L0NvY29hL19XS1NhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlLmgKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvQVBJL0NvY29hL19XS1NhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlLmgKQEAgLTMw
LDQgKzMwLDQgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLU2FtZURvY3VtZW50TmF2
aWdhdGlvblR5cGUpIHsKICAgICBfV0tTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZVNlc3Npb25T
dGF0ZVB1c2gsCiAgICAgX1dLU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGVTZXNzaW9uU3RhdGVS
ZXBsYWNlLAogICAgIF9XS1NhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlU2Vzc2lvblN0YXRlUG9w
LAotfSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKTsKK30gV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMC4xMCksIGlvcyg4LjApKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvV0tQYWdlLmgKaW5kZXggM2FiYzIyMTU0MWUwODVjZmE5ZDYyZDFhMDY2MzczMDRlZGIy
ZmQ4MS4uNmNkYWE3MmRkZGY5OGMwNWQ0MGFhOTQ5YmQyNmU4ZmIxMWNiMzk5NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgKQEAgLTIyNSw4ICsyMjUsOCBAQCBXS19FWFBP
UlQgdm9pZCBXS1BhZ2VTZXRQYWdlVUlDbGllbnQoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IFdLUGFn
ZVVJQ2xpZW50QmFzZSogYwogV0tfRVhQT1JUIHZvaWQgV0tQYWdlU2V0UGFnZUluamVjdGVkQnVu
ZGxlQ2xpZW50KFdLUGFnZVJlZiBwYWdlLCBjb25zdCBXS1BhZ2VJbmplY3RlZEJ1bmRsZUNsaWVu
dEJhc2UqIGNsaWVudCk7CiAKIC8vIEEgY2xpZW50IGNhbiBpbXBsZW1lbnQgZWl0aGVyIGEgbmF2
aWdhdGlvbiBjbGllbnQgb3IgbG9hZGVyIGFuZCBwb2xpY3kgY2xpZW50cywgYnV0IG5ldmVyIGJv
dGguCi1XS19FWFBPUlQgdm9pZCBXS1BhZ2VTZXRQYWdlTG9hZGVyQ2xpZW50KFdLUGFnZVJlZiBw
YWdlLCBjb25zdCBXS1BhZ2VMb2FkZXJDbGllbnRCYXNlKiBjbGllbnQpIFdLX0NfQVBJX0RFUFJF
Q0FURURfV0lUSF9SRVBMQUNFTUVOVChXS1BhZ2VTZXRQYWdlTmF2aWdhdGlvbkNsaWVudCwgbWFj
b3N4KFdLX01BQ19UQkEpKTsKLVdLX0VYUE9SVCB2b2lkIFdLUGFnZVNldFBhZ2VQb2xpY3lDbGll
bnQoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IFdLUGFnZVBvbGljeUNsaWVudEJhc2UqIGNsaWVudCkg
V0tfQ19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKFdLUGFnZVNldFBhZ2VOYXZpZ2F0
aW9uQ2xpZW50LCBtYWNvc3goV0tfTUFDX1RCQSkpOworV0tfRVhQT1JUIHZvaWQgV0tQYWdlU2V0
UGFnZUxvYWRlckNsaWVudChXS1BhZ2VSZWYgcGFnZSwgY29uc3QgV0tQYWdlTG9hZGVyQ2xpZW50
QmFzZSogY2xpZW50KSBXS19DX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoV0tQYWdl
U2V0UGFnZU5hdmlnYXRpb25DbGllbnQsIG1hY29zKFdLX01BQ19UQkEpKTsKK1dLX0VYUE9SVCB2
b2lkIFdLUGFnZVNldFBhZ2VQb2xpY3lDbGllbnQoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IFdLUGFn
ZVBvbGljeUNsaWVudEJhc2UqIGNsaWVudCkgV0tfQ19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExB
Q0VNRU5UKFdLUGFnZVNldFBhZ2VOYXZpZ2F0aW9uQ2xpZW50LCBtYWNvcyhXS19NQUNfVEJBKSk7
CiBXS19FWFBPUlQgdm9pZCBXS1BhZ2VTZXRQYWdlTmF2aWdhdGlvbkNsaWVudChXS1BhZ2VSZWYg
cGFnZSwgY29uc3QgV0tQYWdlTmF2aWdhdGlvbkNsaWVudEJhc2UqIGNsaWVudCk7CiAKIHR5cGVk
ZWYgdm9pZCAoKldLUGFnZVJ1bkphdmFTY3JpcHRGdW5jdGlvbikoV0tTZXJpYWxpemVkU2NyaXB0
VmFsdWVSZWYsIFdLRXJyb3JSZWYsIHZvaWQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9OU0F0dHJpYnV0ZWRTdHJpbmcuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9OU0F0dHJpYnV0ZWRTdHJpbmcuaAppbmRleCA4YWRmZjllODQ2
NzA1OWNjOTZmYjQ2YTBhMGM5MjBjNTRhY2M0ZDY1Li40MzVkOGVhZWQ1MmYzNDM1ZDg0YjA1NDQ3
MWI1NTVmODhkMWEyNTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvTlNBdHRyaWJ1dGVkU3RyaW5nLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL05TQXR0cmlidXRlZFN0cmluZy5oCkBAIC00MCw3ICs0MCw3IEBAIE5TX0FTU1VN
RV9OT05OVUxMX0JFR0lOCiAgZGlyZWN0b3J5IG1heSBiZSBsb2FkZWQgYnkgV2ViS2l0LgogKi8K
IFdLX0VYVEVSTiBOU0F0dHJpYnV0ZWRTdHJpbmdEb2N1bWVudFJlYWRpbmdPcHRpb25LZXkgY29u
c3QgTlNSZWFkQWNjZXNzVVJMRG9jdW1lbnRPcHRpb24KLSAgICBOU19TV0lGVF9OQU1FKE5TQXR0
cmlidXRlZFN0cmluZ0RvY3VtZW50UmVhZGluZ09wdGlvbktleS5yZWFkQWNjZXNzVVJMKSBXS19B
UElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKyAgICBO
U19TV0lGVF9OQU1FKE5TQXR0cmlidXRlZFN0cmluZ0RvY3VtZW50UmVhZGluZ09wdGlvbktleS5y
ZWFkQWNjZXNzVVJMKSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpOwogCiAvKiEKICBAYWJzdHJhY3QgVHlwZSBkZWZpbml0aW9uIGZvciB0aGUgY29t
cGxldGlvbiBoYW5kbGVyIGJsb2NrIHVzZWQgdG8gZ2V0IGFzeW5jaHJvbm91cyBhdHRyaWJ1dGVk
IHN0cmluZ3MuCkBAIC00OSw3ICs0OSw3IEBAIFdLX0VYVEVSTiBOU0F0dHJpYnV0ZWRTdHJpbmdE
b2N1bWVudFJlYWRpbmdPcHRpb25LZXkgY29uc3QgTlNSZWFkQWNjZXNzVVJMRG9jdW1lCiAgb2Yg
dGhpcyBibG9jayB0eXBlIG11c3QgZXhwZWN0IHRvIGJlIGNhbGxlZCBhc3luY2hyb25vdXNseSB3
aGVuIHBhc3NlZCB0byBIVE1MIGxvYWRpbmcgbWV0aG9kcy4KICovCiB0eXBlZGVmIHZvaWQgKF5O
U0F0dHJpYnV0ZWRTdHJpbmdDb21wbGV0aW9uSGFuZGxlcikoTlNBdHRyaWJ1dGVkU3RyaW5nICog
X051bGxhYmxlLCBOU0RpY3Rpb25hcnk8TlNBdHRyaWJ1dGVkU3RyaW5nRG9jdW1lbnRBdHRyaWJ1
dGVLZXksIGlkPiAqIF9OdWxsYWJsZSwgTlNFcnJvciAqIF9OdWxsYWJsZSkKLSAgICBOU19TV0lG
VF9OQU1FKE5TQXR0cmlidXRlZFN0cmluZy5Db21wbGV0aW9uSGFuZGxlcikgV0tfQVBJX0FWQUlM
QUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CisgICAgTlNfU1dJRlRf
TkFNRShOU0F0dHJpYnV0ZWRTdHJpbmcuQ29tcGxldGlvbkhhbmRsZXIpIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIC8qIQogIEBkaXNjdXNz
aW9uIEV4dGVuc2lvbiBvZiBAbGluayAvL2FwcGxlX3JlZi9vY2MvTlNBdHRyaWJ1dGVkU3RyaW5n
IE5TQXR0cmlidXRlZFN0cmluZyBAL2xpbmsgdG8KQEAgLTY3LDcgKzY3LDcgQEAgdHlwZWRlZiB2
b2lkICheTlNBdHRyaWJ1dGVkU3RyaW5nQ29tcGxldGlvbkhhbmRsZXIpKE5TQXR0cmlidXRlZFN0
cmluZyAqIF9OdWxsYWIKICBkb2N1bWVudC1sZXZlbCBhdHRyaWJ1dGVzLCBvciBhbiBlcnJvci4K
ICovCiArICh2b2lkKWxvYWRGcm9tSFRNTFdpdGhSZXF1ZXN0OihOU1VSTFJlcXVlc3QgKilyZXF1
ZXN0IG9wdGlvbnM6KE5TRGljdGlvbmFyeTxOU0F0dHJpYnV0ZWRTdHJpbmdEb2N1bWVudFJlYWRp
bmdPcHRpb25LZXksIGlkPiAqKW9wdGlvbnMgY29tcGxldGlvbkhhbmRsZXI6KE5TQXR0cmlidXRl
ZFN0cmluZ0NvbXBsZXRpb25IYW5kbGVyKWNvbXBsZXRpb25IYW5kbGVyCi0gICAgTlNfU1dJRlRf
TkFNRShsb2FkRnJvbUhUTUwocmVxdWVzdDpvcHRpb25zOmNvbXBsZXRpb25IYW5kbGVyOikpIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworICAg
IE5TX1NXSUZUX05BTUUobG9hZEZyb21IVE1MKHJlcXVlc3Q6b3B0aW9uczpjb21wbGV0aW9uSGFu
ZGxlcjopKSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RC
QSkpOwogCiAvKiEKICBAYWJzdHJhY3QgQ29udmVydHMgYSBsb2NhbCBIVE1MIGZpbGUgaW50byBh
biBhdHRyaWJ1dGVkIHN0cmluZy4KQEAgLTgyLDcgKzgyLDcgQEAgdHlwZWRlZiB2b2lkICheTlNB
dHRyaWJ1dGVkU3RyaW5nQ29tcGxldGlvbkhhbmRsZXIpKE5TQXR0cmlidXRlZFN0cmluZyAqIF9O
dWxsYWIKICBmaWxlcyBpbnNpZGUgdGhhdCBkaXJlY3RvcnkgbWF5IGJlIGxvYWRlZCBieSBXZWJL
aXQuCiAqLwogKyAodm9pZClsb2FkRnJvbUhUTUxXaXRoRmlsZVVSTDooTlNVUkwgKilmaWxlVVJM
IG9wdGlvbnM6KE5TRGljdGlvbmFyeTxOU0F0dHJpYnV0ZWRTdHJpbmdEb2N1bWVudFJlYWRpbmdP
cHRpb25LZXksIGlkPiAqKW9wdGlvbnMgY29tcGxldGlvbkhhbmRsZXI6KE5TQXR0cmlidXRlZFN0
cmluZ0NvbXBsZXRpb25IYW5kbGVyKWNvbXBsZXRpb25IYW5kbGVyCi0gICAgTlNfU1dJRlRfTkFN
RShsb2FkRnJvbUhUTUwoZmlsZVVSTDpvcHRpb25zOmNvbXBsZXRpb25IYW5kbGVyOikpIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworICAgIE5T
X1NXSUZUX05BTUUobG9hZEZyb21IVE1MKGZpbGVVUkw6b3B0aW9uczpjb21wbGV0aW9uSGFuZGxl
cjopKSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkp
OwogCiAvKiEKICBAYWJzdHJhY3QgQ29udmVydHMgYW4gSFRNTCBzdHJpbmcgaW50byBhbiBhdHRy
aWJ1dGVkIHN0cmluZy4KQEAgLTk2LDcgKzk2LDcgQEAgdHlwZWRlZiB2b2lkICheTlNBdHRyaWJ1
dGVkU3RyaW5nQ29tcGxldGlvbkhhbmRsZXIpKE5TQXR0cmlidXRlZFN0cmluZyAqIF9OdWxsYWIK
ICB3aXRoaW4gdGhlIGRvY3VtZW50LgogKi8KICsgKHZvaWQpbG9hZEZyb21IVE1MV2l0aFN0cmlu
ZzooTlNTdHJpbmcgKilzdHJpbmcgb3B0aW9uczooTlNEaWN0aW9uYXJ5PE5TQXR0cmlidXRlZFN0
cmluZ0RvY3VtZW50UmVhZGluZ09wdGlvbktleSwgaWQ+ICopb3B0aW9ucyBjb21wbGV0aW9uSGFu
ZGxlcjooTlNBdHRyaWJ1dGVkU3RyaW5nQ29tcGxldGlvbkhhbmRsZXIpY29tcGxldGlvbkhhbmRs
ZXIKLSAgICBOU19TV0lGVF9OQU1FKGxvYWRGcm9tSFRNTChzdHJpbmc6b3B0aW9uczpjb21wbGV0
aW9uSGFuZGxlcjopKSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdL
X0lPU19UQkEpKTsKKyAgICBOU19TV0lGVF9OQU1FKGxvYWRGcm9tSFRNTChzdHJpbmc6b3B0aW9u
czpjb21wbGV0aW9uSGFuZGxlcjopKSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOwogCiAvKiEKICBAYWJzdHJhY3QgQ29udmVydHMgSFRNTCBkYXRh
IGludG8gYW4gYXR0cmlidXRlZCBzdHJpbmcuCkBAIC0xMTAsNyArMTEwLDcgQEAgdHlwZWRlZiB2
b2lkICheTlNBdHRyaWJ1dGVkU3RyaW5nQ29tcGxldGlvbkhhbmRsZXIpKE5TQXR0cmlidXRlZFN0
cmluZyAqIF9OdWxsYWIKICBOU0NoYXJhY3RlckVuY29kaW5nRG9jdW1lbnRPcHRpb24gaXMgc3Vw
cGxpZWQsIGEgYmVzdC1ndWVzcyBlbmNvZGluZyBpcyB1c2VkLgogKi8KICsgKHZvaWQpbG9hZEZy
b21IVE1MV2l0aERhdGE6KE5TRGF0YSAqKWRhdGEgb3B0aW9uczooTlNEaWN0aW9uYXJ5PE5TQXR0
cmlidXRlZFN0cmluZ0RvY3VtZW50UmVhZGluZ09wdGlvbktleSwgaWQ+ICopb3B0aW9ucyBjb21w
bGV0aW9uSGFuZGxlcjooTlNBdHRyaWJ1dGVkU3RyaW5nQ29tcGxldGlvbkhhbmRsZXIpY29tcGxl
dGlvbkhhbmRsZXIKLSAgICBOU19TV0lGVF9OQU1FKGxvYWRGcm9tSFRNTChkYXRhOm9wdGlvbnM6
Y29tcGxldGlvbkhhbmRsZXI6KSkgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBKSk7CisgICAgTlNfU1dJRlRfTkFNRShsb2FkRnJvbUhUTUwoZGF0YTpv
cHRpb25zOmNvbXBsZXRpb25IYW5kbGVyOikpIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFD
X1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIEBlbmQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQmFja0ZvcndhcmRMaXN0LmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCYWNrRm9yd2FyZExpc3QuaAppbmRleCA3ZWUwMzkx
OGZmNGFhMTdjNzRhOTYwYjE5MTEzOWFlNzVmZWI3N2JlLi4yY2YxY2JiMTQyZmZiMmU3NmE5YjA2
NmYxNTIxNWRhY2YzMzhmYzY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tCYWNrRm9yd2FyZExpc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tCYWNrRm9yd2FyZExpc3QuaApAQCAtMzIsNyArMzIsNyBAQAogICovCiBO
U19BU1NVTUVfTk9OTlVMTF9CRUdJTgogCi1XS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEw
KSwgaW9zKDguMCkpCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4wKSkK
IEBpbnRlcmZhY2UgV0tCYWNrRm9yd2FyZExpc3QgOiBOU09iamVjdAogCiAvKiEgQGFic3RyYWN0
IFRoZSBjdXJyZW50IGl0ZW0uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tCYWNrRm9yd2FyZExpc3RJdGVtLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tCYWNrRm9yd2FyZExpc3RJdGVtLmgKaW5kZXggOGQwYzBmODIzZjE5ODcx
NzlmMTY2N2IxYWE3NmY2OGM2Nzk4ZmUwZS4uYTY2YWNhNmZmYzY5YmEzODQ4YjA1YWE1NWJkNDE5
MDQ4NjY1YzhiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLQmFja0ZvcndhcmRMaXN0SXRlbS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS0JhY2tGb3J3YXJkTGlzdEl0ZW0uaApAQCAtMzEsNyArMzEsNyBAQAogICovCiBO
U19BU1NVTUVfTk9OTlVMTF9CRUdJTgogCi1XS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEw
KSwgaW9zKDguMCkpCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4wKSkK
IEBpbnRlcmZhY2UgV0tCYWNrRm9yd2FyZExpc3RJdGVtIDogTlNPYmplY3QKIAogLSAoaW5zdGFu
Y2V0eXBlKWluaXQgTlNfVU5BVkFJTEFCTEU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tCYWNrRm9yd2FyZExpc3RJdGVtUHJpdmF0ZS5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQmFja0ZvcndhcmRMaXN0SXRlbVByaXZhdGUu
aAppbmRleCBiMTlkNDdlYmRjYzVmMzYwODlmOTM3NGMwZmFiMTMxMzA2MDlmMDJhLi41YjBkMjhk
YjZhNDZhMjA0ZDg4MDRhM2FlY2U1NjE5NDNkNDBhNWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCYWNrRm9yd2FyZExpc3RJdGVtUHJpdmF0ZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0JhY2tGb3J3YXJkTGlzdEl0
ZW1Qcml2YXRlLmgKQEAgLTI4LDggKzI4LDggQEAKIEBpbnRlcmZhY2UgV0tCYWNrRm9yd2FyZExp
c3RJdGVtIChXS1ByaXZhdGUpCiAKIC8vIEZvciB0ZXN0aW5nIG9ubHkuCi0tIChDR0ltYWdlUmVm
KV9jb3B5U25hcHNob3RGb3JUZXN0aW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyLjMp
LCBpb3MoMTAuMykpOworLSAoQ0dJbWFnZVJlZilfY29weVNuYXBzaG90Rm9yVGVzdGluZyBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEwLjEyLjMpLCBpb3MoMTAuMykpOwogCi1AcHJvcGVydHkgKG5v
bmF0b21pYykgQ0dQb2ludCBfc2Nyb2xsUG9zaXRpb24gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3go
V0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYykgQ0dQ
b2ludCBfc2Nyb2xsUG9zaXRpb24gV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEpKTsKIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0TG9hZERlbGVnYXRlLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRMb2FkRGVsZWdhdGUu
aAppbmRleCBmOWMwMjUzMDdjZTAzNzkxMzNiYjJlODc1N2MxZjFlNjY4ZWYxYjczLi4xODM0Y2Jl
OGQyMzNiNzBlOGQyYzExNDNmMGZkMDc5MTU1ODllZWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRMb2FkRGVsZWdhdGUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRM
b2FkRGVsZWdhdGUuaApAQCAtNTIsMTAgKzUyLDEwIEBAIFdLX0NMQVNTX0RFUFJFQ0FURURfV0lU
SF9SRVBMQUNFTUVOVCgiV0tOYXZpZ2F0aW9uRGVsZWdhdGUiLCBtYWNvcygxMC4xMCwgV0tfTUFD
CiAvKiBTZW50IGlmIHRoZSBjb21taXRlZCBsb2FkIGZhaWxzLiAqLwogLSAodm9pZClicm93c2lu
Z0NvbnRleHRDb250cm9sbGVyOihXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgKilzZW5kZXIg
ZGlkRmFpbExvYWRXaXRoRXJyb3I6KE5TRXJyb3IgKillcnJvcjsKIAotLSAodm9pZClicm93c2lu
Z0NvbnRleHRDb250cm9sbGVyRGlkU3RhcnRQcm9ncmVzczooV0tCcm93c2luZ0NvbnRleHRDb250
cm9sbGVyICopc2VuZGVyIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIldLV2Vi
Vmlldy5lc3RpbWF0ZWRQcm9ncmVzcyIsIG1hY29zeCgxMC4xMCwgV0tfTUFDX1RCQSksIGlvcyg4
LjAsIFdLX0lPU19UQkEpKTsKLS0gKHZvaWQpYnJvd3NpbmdDb250ZXh0Q29udHJvbGxlcjooV0tC
cm93c2luZ0NvbnRleHRDb250cm9sbGVyICopc2VuZGVyIGVzdGltYXRlZFByb2dyZXNzQ2hhbmdl
ZFRvOihkb3VibGUpZXN0aW1hdGVkUHJvZ3Jlc3MgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBM
QUNFTUVOVCgiV0tXZWJWaWV3LmVzdGltYXRlZFByb2dyZXNzIiwgbWFjb3N4KDEwLjEwLCBXS19N
QUNfVEJBKSwgaW9zKDguMCwgV0tfSU9TX1RCQSkpOwotLSAodm9pZClicm93c2luZ0NvbnRleHRD
b250cm9sbGVyRGlkRmluaXNoUHJvZ3Jlc3M6KFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciAq
KXNlbmRlciBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJXS1dlYlZpZXcuZXN0
aW1hdGVkUHJvZ3Jlc3MiLCBtYWNvc3goMTAuMTAsIFdLX01BQ19UQkEpLCBpb3MoOC4wLCBXS19J
T1NfVEJBKSk7CistICh2b2lkKWJyb3dzaW5nQ29udGV4dENvbnRyb2xsZXJEaWRTdGFydFByb2dy
ZXNzOihXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgKilzZW5kZXIgV0tfQVBJX0RFUFJFQ0FU
RURfV0lUSF9SRVBMQUNFTUVOVCgiV0tXZWJWaWV3LmVzdGltYXRlZFByb2dyZXNzIiwgbWFjb3Mo
MTAuMTAsIFdLX01BQ19UQkEpLCBpb3MoOC4wLCBXS19JT1NfVEJBKSk7CistICh2b2lkKWJyb3dz
aW5nQ29udGV4dENvbnRyb2xsZXI6KFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciAqKXNlbmRl
ciBlc3RpbWF0ZWRQcm9ncmVzc0NoYW5nZWRUbzooZG91YmxlKWVzdGltYXRlZFByb2dyZXNzIFdL
X0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIldLV2ViVmlldy5lc3RpbWF0ZWRQcm9n
cmVzcyIsIG1hY29zKDEwLjEwLCBXS19NQUNfVEJBKSwgaW9zKDguMCwgV0tfSU9TX1RCQSkpOwor
LSAodm9pZClicm93c2luZ0NvbnRleHRDb250cm9sbGVyRGlkRmluaXNoUHJvZ3Jlc3M6KFdLQnJv
d3NpbmdDb250ZXh0Q29udHJvbGxlciAqKXNlbmRlciBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JF
UExBQ0VNRU5UKCJXS1dlYlZpZXcuZXN0aW1hdGVkUHJvZ3Jlc3MiLCBtYWNvcygxMC4xMCwgV0tf
TUFDX1RCQSksIGlvcyg4LjAsIFdLX0lPU19UQkEpKTsKIAotLSAodm9pZClicm93c2luZ0NvbnRl
eHRDb250cm9sbGVyRGlkQ2hhbmdlQmFja0ZvcndhcmRMaXN0OihXS0Jyb3dzaW5nQ29udGV4dENv
bnRyb2xsZXIgKilzZW5kZXIgYWRkZWRJdGVtOihXS0JhY2tGb3J3YXJkTGlzdEl0ZW0gKilhZGRl
ZEl0ZW0gcmVtb3ZlZEl0ZW1zOihOU0FycmF5ICopcmVtb3ZlZEl0ZW1zIFdLX0FQSV9ERVBSRUNB
VEVEX1dJVEhfUkVQTEFDRU1FTlQoIldLV2ViVmlldy5iYWNrRm9yd2FyZExpc3QiLCBtYWNvc3go
MTAuMTAsIFdLX01BQ19UQkEpLCBpb3MoOC4wLCBXS19JT1NfVEJBKSk7CistICh2b2lkKWJyb3dz
aW5nQ29udGV4dENvbnRyb2xsZXJEaWRDaGFuZ2VCYWNrRm9yd2FyZExpc3Q6KFdLQnJvd3NpbmdD
b250ZXh0Q29udHJvbGxlciAqKXNlbmRlciBhZGRlZEl0ZW06KFdLQmFja0ZvcndhcmRMaXN0SXRl
bSAqKWFkZGVkSXRlbSByZW1vdmVkSXRlbXM6KE5TQXJyYXkgKilyZW1vdmVkSXRlbXMgV0tfQVBJ
X0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiV0tXZWJWaWV3LmJhY2tGb3J3YXJkTGlzdCIs
IG1hY29zKDEwLjEwLCBXS19NQUNfVEJBKSwgaW9zKDguMCwgV0tfSU9TX1RCQSkpOwogCiBAZW5k
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tDb250ZW50
UnVsZUxpc3QuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0NvbnRlbnRS
dWxlTGlzdC5oCmluZGV4IGM0MjIzMDJhYmViNjkwYWFiZjUxM2U5ZWZhZGE2M2M1ZmU2MTc5Njku
LjU3NGIyNjlkYjE5NzI2MTUyMWUwY2VmNzMzODU3MmY0OTI4YTcyZDUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0NvbnRlbnRSdWxlTGlzdC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0NvbnRlbnRSdWxlTGlzdC5oCkBA
IC0yNyw3ICsyNyw3IEBACiAKICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgogCi1X
S19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEzKSwgaW9zKDExLjApKQorV0tfQ0xBU1NfQVZB
SUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKQogQGludGVyZmFjZSBXS0NvbnRlbnRSdWxl
TGlzdCA6IE5TT2JqZWN0CiAKIC8qISBAYWJzdHJhY3QgQSBjb3B5IG9mIHRoZSBpZGVudGlmaWVy
IG9mIHRoZSBjb250ZW50IGV4dGVuc2lvbi4gKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS0NvbnRlbnRSdWxlTGlzdFN0b3JlLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tDb250ZW50UnVsZUxpc3RTdG9yZS5oCmluZGV4IGRj
NDA0NzhiNjk2YTFiNzNhZmU4ZDc0ZjQ0YzkwZjBmYjM3MGVlNDkuLmY1YjJiNTllMTUyODgwYWZj
NDcxOGI3ZjMzZWFkNTM1MjI4YTNjYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS0NvbnRlbnRSdWxlTGlzdFN0b3JlLmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQ29udGVudFJ1bGVMaXN0U3RvcmUuaApAQCAtMjksNyAr
MjksNyBAQAogCiBAY2xhc3MgV0tDb250ZW50UnVsZUxpc3Q7CiAKLVdLX0NMQVNTX0FWQUlMQUJM
RShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAu
MTMpLCBpb3MoMTEuMCkpCiBAaW50ZXJmYWNlIFdLQ29udGVudFJ1bGVMaXN0U3RvcmUgOiBOU09i
amVjdAogCiArIChpbnN0YW5jZXR5cGUpZGVmYXVsdFN0b3JlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLRXJyb3IuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS0Vycm9yLmgKaW5kZXggYjA4MDhlYzQ4MjU3Mjc4ZjVlYjE0ZWNm
NmY4YWJjZmY4ZDY0YmI4Mi4uNWRmZjU3MWJiNjVmMjJjNGY1NmJhNzU1MTY2ODIyODk4Njc1ZGE3
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLRXJyb3Iu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFcnJvci5oCkBAIC0z
MCw3ICszMCw3IEBACiBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogCiAvKiEgQGNvbnN0YW50IFdL
RXJyb3JEb21haW4gSW5kaWNhdGVzIGEgV2ViS2l0IGVycm9yLiAqLwotV0tfRVhURVJOIE5TU3Ry
aW5nICogY29uc3QgV0tFcnJvckRvbWFpbiBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCks
IGlvcyg4LjApKTsKK1dLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IFdLRXJyb3JEb21haW4gV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMCksIGlvcyg4LjApKTsKIAogLyohIEBlbnVtIFdLRXJy
b3JDb2RlCiAgQGFic3RyYWN0IENvbnN0YW50cyB1c2VkIGJ5IE5TRXJyb3IgdG8gaW5kaWNhdGUg
ZXJyb3JzIGluIHRoZSBXZWJLaXQgZG9tYWluLgpAQCAtNTEsMTMgKzUxLDEzIEBAIHR5cGVkZWYg
TlNfRU5VTShOU0ludGVnZXIsIFdLRXJyb3JDb2RlKSB7CiAgICAgV0tFcnJvcldlYkNvbnRlbnRQ
cm9jZXNzVGVybWluYXRlZCwKICAgICBXS0Vycm9yV2ViVmlld0ludmFsaWRhdGVkLAogICAgIFdL
RXJyb3JKYXZhU2NyaXB0RXhjZXB0aW9uT2NjdXJyZWQsCi0gICAgV0tFcnJvckphdmFTY3JpcHRS
ZXN1bHRUeXBlSXNVbnN1cHBvcnRlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlv
cyg5LjApKSwKLSAgICBXS0Vycm9yQ29udGVudFJ1bGVMaXN0U3RvcmVDb21waWxlRmFpbGVkIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzKSwgaW9zKDExLjApKSwKLSAgICBXS0Vycm9yQ29u
dGVudFJ1bGVMaXN0U3RvcmVMb29rVXBGYWlsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAu
MTMpLCBpb3MoMTEuMCkpLAotICAgIFdLRXJyb3JDb250ZW50UnVsZUxpc3RTdG9yZVJlbW92ZUZh
aWxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSksCi0gICAgV0tF
cnJvckNvbnRlbnRSdWxlTGlzdFN0b3JlVmVyc2lvbk1pc21hdGNoIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3N4KDEwLjEzKSwgaW9zKDExLjApKSwKLSAgICBXS0Vycm9yQXR0cmlidXRlZFN0cmluZ0Nv
bnRlbnRGYWlsZWRUb0xvYWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSksCi0gICAgV0tFcnJvckF0dHJpYnV0ZWRTdHJpbmdDb250ZW50TG9hZFRp
bWVkT3V0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RC
QSkpLAotfSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKTsKKyAgICBX
S0Vycm9ySmF2YVNjcmlwdFJlc3VsdFR5cGVJc1Vuc3VwcG9ydGVkIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTAuMTEpLCBpb3MoOS4wKSksCisgICAgV0tFcnJvckNvbnRlbnRSdWxlTGlzdFN0b3Jl
Q29tcGlsZUZhaWxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKSwK
KyAgICBXS0Vycm9yQ29udGVudFJ1bGVMaXN0U3RvcmVMb29rVXBGYWlsZWQgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSksCisgICAgV0tFcnJvckNvbnRlbnRSdWxlTGlz
dFN0b3JlUmVtb3ZlRmFpbGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEu
MCkpLAorICAgIFdLRXJyb3JDb250ZW50UnVsZUxpc3RTdG9yZVZlcnNpb25NaXNtYXRjaCBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKSwKKyAgICBXS0Vycm9yQXR0cmli
dXRlZFN0cmluZ0NvbnRlbnRGYWlsZWRUb0xvYWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19N
QUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKSwKKyAgICBXS0Vycm9yQXR0cmlidXRlZFN0cmluZ0Nv
bnRlbnRMb2FkVGltZWRPdXQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9z
KFdLX0lPU19UQkEpKSwKK30gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMCksIGlvcyg4LjAp
KTsKIAogTlNfQVNTVU1FX05PTk5VTExfRU5ECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tFcnJvclByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS0Vycm9yUHJpdmF0ZS5oCmluZGV4IGE0YzkwMjY5YjFkODEwZjViN2Zl
Y2EwODM1NjNhNWNiOThiN2FiZjIuLmY5YzEyZDIzY2U2N2RhMTUxYmY2OWJjZTJlNDYzMmNmNjM0
MjIzY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Vy
cm9yUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Vy
cm9yUHJpdmF0ZS5oCkBAIC0yNSwyNSArMjUsMjUgQEAKIAogI2ltcG9ydCA8V2ViS2l0L1dLRXJy
b3IuaD4KIAotV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgX1dLTGVnYWN5RXJyb3JEb21haW4g
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOC4zKSk7CitXS19FWFRFUk4gTlNT
dHJpbmcgKiBjb25zdCBfV0tMZWdhY3lFcnJvckRvbWFpbiBXS19BUElfQVZBSUxBQkxFKG1hY29z
KDEwLjExKSwgaW9zKDguMykpOwogCiB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tMZWdh
Y3lFcnJvckNvZGUpIHsKLSAgICBfV0tFcnJvckNvZGVGcmFtZUxvYWRJbnRlcnJ1cHRlZEJ5UG9s
aWN5Q2hhbmdlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpID0gMTAy
LAorICAgIF9XS0Vycm9yQ29kZUZyYW1lTG9hZEludGVycnVwdGVkQnlQb2xpY3lDaGFuZ2UgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMSksIGlvcyg5LjApKSA9IDEwMiwKICAgICBfV0tMZWdh
Y3lFcnJvclBsdWdJbldpbGxIYW5kbGVMb2FkID0gMjA0LAotfSBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeCgxMC4xMSksIGlvcyg4LjMpKTsKK30gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMSks
IGlvcyg4LjMpKTsKIAogLyohIEBjb25zdGFudCBfV0tKYXZhU2NyaXB0RXhjZXB0aW9uTWVzc2Fn
ZUVycm9yS2V5IEtleSBpbiB1c2VySW5mbyByZXByZXNlbnRpbmcKICB0aGUgZXhjZXB0aW9uIG1l
c3NhZ2UgKGFzIGFuIE5TU3RyaW5nKSBmb3IgV0tFcnJvckphdmFTY3JpcHRFeGNlcHRpb25PY2N1
cnJlZCBlcnJvcnMuICovCi1XS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBfV0tKYXZhU2NyaXB0
RXhjZXB0aW9uTWVzc2FnZUVycm9yS2V5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwg
aW9zKDEwLjApKTsKK1dLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IF9XS0phdmFTY3JpcHRFeGNl
cHRpb25NZXNzYWdlRXJyb3JLZXkgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygx
MC4wKSk7CiAKIC8qISBAY29uc3RhbnQgX1dLSmF2YVNjcmlwdEV4Y2VwdGlvbkxpbmVOdW1iZXJF
cnJvcktleSBLZXkgaW4gdXNlckluZm8gcmVwcmVzZW50aW5nCiAgdGhlIGV4Y2VwdGlvbiBsaW5l
IG51bWJlciAoYXMgYW4gTlNOdW1iZXIpIGZvciBXS0Vycm9ySmF2YVNjcmlwdEV4Y2VwdGlvbk9j
Y3VycmVkIGVycm9ycy4gKi8KLVdLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IF9XS0phdmFTY3Jp
cHRFeGNlcHRpb25MaW5lTnVtYmVyRXJyb3JLZXkgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAu
MTIpLCBpb3MoMTAuMCkpOworV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgX1dLSmF2YVNjcmlw
dEV4Y2VwdGlvbkxpbmVOdW1iZXJFcnJvcktleSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEy
KSwgaW9zKDEwLjApKTsKIAogLyohIEBjb25zdGFudCBfV0tKYXZhU2NyaXB0RXhjZXB0aW9uQ29s
dW1uTnVtYmVyRXJyb3JLZXkgS2V5IGluIHVzZXJJbmZvIHJlcHJlc2VudGluZwogIHRoZSBleGNl
cHRpb24gY29sdW1uIG51bWJlciAoYXMgYW4gTlNOdW1iZXIpIGZvciBXS0Vycm9ySmF2YVNjcmlw
dEV4Y2VwdGlvbk9jY3VycmVkIGVycm9ycy4gKi8KLVdLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0
IF9XS0phdmFTY3JpcHRFeGNlcHRpb25Db2x1bW5OdW1iZXJFcnJvcktleSBXS19BUElfQVZBSUxB
QkxFKG1hY29zeCgxMC4xMiksIGlvcygxMC4wKSk7CitXS19FWFRFUk4gTlNTdHJpbmcgKiBjb25z
dCBfV0tKYXZhU2NyaXB0RXhjZXB0aW9uQ29sdW1uTnVtYmVyRXJyb3JLZXkgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CiAKIC8qISBAY29uc3RhbnQgX1dLSmF2YVNj
cmlwdEV4Y2VwdGlvblNvdXJjZVVSTEVycm9yS2V5IEtleSBpbiB1c2VySW5mbyByZXByZXNlbnRp
bmcKICB0aGUgZXhjZXB0aW9uIHNvdXJjZSBVUkwgKGFzIGFuIE5TVVJMKSBmb3IgV0tFcnJvckph
dmFTY3JpcHRFeGNlcHRpb25PY2N1cnJlZCBlcnJvcnMuICovCi1XS19FWFRFUk4gTlNTdHJpbmcg
KiBjb25zdCBfV0tKYXZhU2NyaXB0RXhjZXB0aW9uU291cmNlVVJMRXJyb3JLZXkgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3MoMTAuMCkpOworV0tfRVhURVJOIE5TU3RyaW5nICog
Y29uc3QgX1dLSmF2YVNjcmlwdEV4Y2VwdGlvblNvdXJjZVVSTEVycm9yS2V5IFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLRnJhbWVJbmZvLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tGcmFtZUluZm8uaAppbmRleCA3YWZiZWI4OTBlZGE1NGQ2MzQzZWVm
MjJiODJkYjU0N2MyZGNjODdmLi42MDk3NTQ3YzY2Njk3MDgwOTgyM2QxNjBjMzk1YTE1OGViY2E4
MDFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tGcmFt
ZUluZm8uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tGcmFtZUlu
Zm8uaApAQCAtMzYsNyArMzYsNyBAQAogICovCiBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogCi1X
S19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCitXS19DTEFTU19BVkFJ
TEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2UgV0tGcmFtZUluZm8gOiBO
U09iamVjdCA8TlNDb3B5aW5nPgogCiAvKiEgQGFic3RyYWN0IEEgQm9vbGVhbiB2YWx1ZSBpbmRp
Y2F0aW5nIHdoZXRoZXIgdGhlIGZyYW1lIGlzIHRoZSBtYWluIGZyYW1lCkBAIC01MCwxMSArNTAs
MTEgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQogCiAvKiEg
QGFic3RyYWN0IFRoZSBmcmFtZSdzIGN1cnJlbnQgc2VjdXJpdHkgb3JpZ2luLgogICovCi1AcHJv
cGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIFdLU2VjdXJpdHlPcmlnaW4gKnNlY3VyaXR5T3Jp
Z2luIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOworQHByb3BlcnR5
IChub25hdG9taWMsIHJlYWRvbmx5KSBXS1NlY3VyaXR5T3JpZ2luICpzZWN1cml0eU9yaWdpbiBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjExKSwgaW9zKDkuMCkpOwogCiAvKiEgQGFic3RyYWN0
IFRoZSB3ZWIgdmlldyBvZiB0aGUgd2VicGFnZSB0aGF0IGNvbnRhaW5zIHRoaXMgZnJhbWUuCiAg
Ki8KLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgd2VhaykgV0tXZWJWaWV3ICp3ZWJW
aWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzKSwgaW9zKDExLjApKTsKK0Bwcm9wZXJ0
eSAobm9uYXRvbWljLCByZWFkb25seSwgd2VhaykgV0tXZWJWaWV3ICp3ZWJWaWV3IFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpOwogCiBAZW5kCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0ZyYW1lSW5mb1ByaXZhdGUuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0ZyYW1lSW5mb1ByaXZhdGUuaApp
bmRleCA2MDdjMDA1YTk5Y2RjM2Q4MmIxZWQzZDliNDAzY2FkYTU5NDYzYzJmLi4wNzRiZTJmMjc0
NzI4N2ViOTIzNGMwNzZkNGM2ZjY2YWU4YmY4MjdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tGcmFtZUluZm9Qcml2YXRlLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLRnJhbWVJbmZvUHJpdmF0ZS5oCkBAIC0yOSw2ICsy
OSw2IEBACiAKIEBpbnRlcmZhY2UgV0tGcmFtZUluZm8gKFdLUHJpdmF0ZSkKIAotQHByb3BlcnR5
IChub25hdG9taWMsIHJlYWRvbmx5LCBzdHJvbmcpIF9XS0ZyYW1lSGFuZGxlICpfaGFuZGxlIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsKK0Bwcm9wZXJ0eSAobm9u
YXRvbWljLCByZWFkb25seSwgc3Ryb25nKSBfV0tGcmFtZUhhbmRsZSAqX2hhbmRsZSBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKIAogQGVuZApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLSFRUUENvb2tpZVN0b3JlLmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tIVFRQQ29va2llU3RvcmUuaAppbmRl
eCAyYmFjZmU1YjBkZTFhNWYyMDNhZjE3OTFlNzc2NGUxODVlMzUzMTJiLi45YzE1OTI0NTUxMjVj
MGE5YWU1NTM3M2Q0ZWQ4MjFiZjFlZDMwZjlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tIVFRQQ29va2llU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tIVFRQQ29va2llU3RvcmUuaApAQCAtMzEsNyArMzEsNyBA
QCBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogCiBAY2xhc3MgV0tIVFRQQ29va2llU3RvcmU7CiAK
LVdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzKSwgaW9zKDExLjApKQorV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSkKIEBwcm90b2NvbCBXS0hUVFBDb29raWVTdG9y
ZU9ic2VydmVyIDxOU09iamVjdD4KIEBvcHRpb25hbAogLSAodm9pZCljb29raWVzRGlkQ2hhbmdl
SW5Db29raWVTdG9yZTooV0tIVFRQQ29va2llU3RvcmUgKiljb29raWVTdG9yZTsKQEAgLTQwLDcg
KzQwLDcgQEAgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpCiAvKiEK
ICBBIFdLSFRUUENvb2tpZVN0b3JlIG9iamVjdCBhbGxvd3MgbWFuYWdpbmcgdGhlIEhUVFAgY29v
a2llcyBhc3NvY2lhdGVkIHdpdGggYSBwYXJ0aWN1bGFyIFdLV2Vic2l0ZURhdGFTdG9yZS4KICAq
LwotV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSkKK1dLX0NMQVNT
X0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSkKIEBpbnRlcmZhY2UgV0tIVFRQQ29v
a2llU3RvcmUgOiBOU09iamVjdAogCiAtIChpbnN0YW5jZXR5cGUpaW5pdCBOU19VTkFWQUlMQUJM
RTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS01lbnVJ
dGVtSWRlbnRpZmllcnNQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tNZW51SXRlbUlkZW50aWZpZXJzUHJpdmF0ZS5oCmluZGV4IDY5MGU5MWIzYmU4YjQ4NTE0
ZTFhMjA1YzJkNmRlNDdmNTU5YWZlYjMuLmZmMWE5NTc0MDFmMTdjNDE2OWE1OTE1NzQyMTcyNTA2
YjdhOTI5OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S01lbnVJdGVtSWRlbnRpZmllcnNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLTWVudUl0ZW1JZGVudGlmaWVyc1ByaXZhdGUuaApAQCAtMjgsMjggKzI4
LDI4IEBACiAjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KICNpbXBvcnQgPFdlYktp
dC9XS0RlY2xhcmF0aW9uU3BlY2lmaWVycy5oPgogCi1XS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5n
ICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyQ29weSBXS19BUElfQVZBSUxBQkxFKG1hY29z
eCgxMC4xMiksIGlvcygxMC4wKSk7Ci1XS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3Qg
X1dLTWVudUl0ZW1JZGVudGlmaWVyQ29weUltYWdlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEw
LjEyKSwgaW9zKDEwLjApKTsKLVdLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tN
ZW51SXRlbUlkZW50aWZpZXJDb3B5TGluayBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMiks
IGlvcygxMC4wKSk7Ci1XS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0
ZW1JZGVudGlmaWVyQ29weU1lZGlhTGluayBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xNCks
IGlvcygxMi4wKSk7Ci1XS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0
ZW1JZGVudGlmaWVyRG93bmxvYWRJbWFnZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMiks
IGlvcygxMC4wKSk7Ci1XS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0
ZW1JZGVudGlmaWVyRG93bmxvYWRMaW5rZWRGaWxlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEw
LjEyKSwgaW9zKDEwLjApKTsKLVdLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tN
ZW51SXRlbUlkZW50aWZpZXJEb3dubG9hZE1lZGlhIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEw
LjE0KSwgaW9zKDEyLjApKTsKLVdLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tN
ZW51SXRlbUlkZW50aWZpZXJHb0JhY2sgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBp
b3MoMTAuMCkpOwotV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVt
SWRlbnRpZmllckdvRm9yd2FyZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMiksIGlvcygx
MC4wKSk7Ci1XS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVu
dGlmaWVySW5zcGVjdEVsZW1lbnQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3Mo
MTAuMCkpOwotV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRl
bnRpZmllckxvb2tVcCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMiksIGlvcygxMC4wKSk7
Ci1XS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVy
T3BlbkZyYW1lSW5OZXdXaW5kb3cgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3Mo
MTAuMCkpOwotV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRl
bnRpZmllck9wZW5JbWFnZUluTmV3V2luZG93IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEy
KSwgaW9zKDEwLjApKTsKLVdLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51
SXRlbUlkZW50aWZpZXJPcGVuTGluayBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMiksIGlv
cygxMC4wKSk7Ci1XS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1J
ZGVudGlmaWVyT3BlbkxpbmtJbk5ld1dpbmRvdyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4x
MiksIGlvcygxMC4wKSk7Ci1XS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVu
dUl0ZW1JZGVudGlmaWVyT3Blbk1lZGlhSW5OZXdXaW5kb3cgV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goMTAuMTQpLCBpb3MoMTIuMCkpOwotV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0
IF9XS01lbnVJdGVtSWRlbnRpZmllclBhc3RlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEy
KSwgaW9zKDEwLjApKTsKLVdLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51
SXRlbUlkZW50aWZpZXJSZWxvYWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3Mo
MTAuMCkpOwotV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRl
bnRpZmllclNlYXJjaFdlYiBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMiksIGlvcygxMC4w
KSk7Ci1XS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlm
aWVyU2hvd0hpZGVNZWRpYUNvbnRyb2xzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwg
aW9zKDEwLjApKTsKLVdLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRl
bUlkZW50aWZpZXJUb2dnbGVFbmhhbmNlZEZ1bGxTY3JlZW4gV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goMTAuMTQpLCBpb3MoMTIuMCkpOwotV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0
IF9XS01lbnVJdGVtSWRlbnRpZmllclRvZ2dsZUZ1bGxTY3JlZW4gV0tfQVBJX0FWQUlMQUJMRSht
YWNvc3goMTAuMTIpLCBpb3MoMTAuMCkpOworV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNv
bnN0IF9XS01lbnVJdGVtSWRlbnRpZmllckNvcHkgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4x
MiksIGlvcygxMC4wKSk7CitXS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVu
dUl0ZW1JZGVudGlmaWVyQ29weUltYWdlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBp
b3MoMTAuMCkpOworV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVt
SWRlbnRpZmllckNvcHlMaW5rIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAu
MCkpOworV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRp
ZmllckNvcHlNZWRpYUxpbmsgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4w
KSk7CitXS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlm
aWVyRG93bmxvYWRJbWFnZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjAp
KTsKK1dLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZp
ZXJEb3dubG9hZExpbmtlZEZpbGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygx
MC4wKSk7CitXS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVu
dGlmaWVyRG93bmxvYWRNZWRpYSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSwgaW9zKDEy
LjApKTsKK1dLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50
aWZpZXJHb0JhY2sgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CitX
S19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyR29G
b3J3YXJkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOworV0tfRVhQ
T1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllckluc3BlY3RF
bGVtZW50IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOworV0tfRVhQ
T1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllckxvb2tVcCBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKK1dLX0VYUE9SVCBleHRl
cm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJPcGVuRnJhbWVJbk5ld1dp
bmRvdyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKK1dLX0VYUE9S
VCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJPcGVuSW1hZ2VJ
bk5ld1dpbmRvdyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKK1dL
X0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJPcGVu
TGluayBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKK1dLX0VYUE9S
VCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJPcGVuTGlua0lu
TmV3V2luZG93IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOworV0tf
RVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllck9wZW5N
ZWRpYUluTmV3V2luZG93IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpLCBpb3MoMTIuMCkp
OworV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmll
clBhc3RlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOworV0tfRVhQ
T1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllclJlbG9hZCBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKK1dLX0VYUE9SVCBleHRl
cm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJTZWFyY2hXZWIgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CitXS19FWFBPUlQgZXh0ZXJuIE5T
U3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyU2hvd0hpZGVNZWRpYUNvbnRyb2xz
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOworV0tfRVhQT1JUIGV4
dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllclRvZ2dsZUVuaGFuY2Vk
RnVsbFNjcmVlbiBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSwgaW9zKDEyLjApKTsKK1dL
X0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJUb2dn
bGVGdWxsU2NyZWVuIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOwog
Ci1XS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVy
U2hhcmVNZW51IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsKLVdL
X0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJTcGVl
Y2hNZW51IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsKK1dLX0VY
UE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJTaGFyZU1l
bnUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CitXS19FWFBPUlQg
ZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyU3BlZWNoTWVudSBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb24uaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb24uaAppbmRleCAzM2ZiM2FlNzMy
MDZiZDIyZWYwMTk5ODVjNDJlY2ZmN2QyNWExZmQ2Li4zNTc0NTFlM2VjMDRkZTk2ZmRkYjliODI0
OTE3NTFmNDdiYTdlNmM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tOYXZpZ2F0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLTmF2aWdhdGlvbi5oCkBAIC0zMiw3ICszMiw3IEBACiAgYWxzbyBwYXNzZWQgdG8gdGhl
IG5hdmlnYXRpb24gZGVsZWdhdGUgbWV0aG9kcywgdG8gdW5pcXVlbHkgaWRlbnRpZnkgYSB3ZWJw
YWdlCiAgbG9hZCBmcm9tIHN0YXJ0IHRvIGZpbmlzaC4KICAqLwotV0tfQ0xBU1NfQVZBSUxBQkxF
KG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEw
KSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIFdLTmF2aWdhdGlvbiA6IE5TT2JqZWN0CiAKIEBlbmQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRp
b25BY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRp
b25BY3Rpb24uaAppbmRleCA3MjljMzk3YzEyMjkwYzAwNjM0ZjRiYzk3ZWFiYTdjNTY1NTQyNjBj
Li45MzQwNzBlM2RlNDQ5ODJmNTcyYmQ1YTE4OGQxMGNiNDljZjcyMTFmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uQWN0aW9uLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkFjdGlvbi5o
CkBAIC01MSwxMiArNTEsMTIgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgV0tOYXZpZ2F0
aW9uVHlwZSkgewogICAgIFdLTmF2aWdhdGlvblR5cGVSZWxvYWQsCiAgICAgV0tOYXZpZ2F0aW9u
VHlwZUZvcm1SZXN1Ym1pdHRlZCwKICAgICBXS05hdmlnYXRpb25UeXBlT3RoZXIgPSAtMSwKLX0g
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSk7Cit9IFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4wKSk7CiAKIC8qISAKIEEgV0tOYXZpZ2F0aW9uQWN0
aW9uIG9iamVjdCBjb250YWlucyBpbmZvcm1hdGlvbiBhYm91dCBhbiBhY3Rpb24gdGhhdCBtYXkg
Y2F1c2UgYSBuYXZpZ2F0aW9uLCB1c2VkIGZvciBtYWtpbmcgcG9saWN5IGRlY2lzaW9ucy4KICAq
LwotV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQorV0tfQ0xBU1Nf
QVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIFdLTmF2aWdhdGlv
bkFjdGlvbiA6IE5TT2JqZWN0CiAKIC8qISBAYWJzdHJhY3QgVGhlIGZyYW1lIHJlcXVlc3Rpbmcg
dGhlIG5hdmlnYXRpb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tOYXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkFjdGlvblByaXZhdGUuaAppbmRleCA2MTU4OWM5NGYz
M2NmMTQyN2I5NzUxNmZkYWQ5Nzg1ZjMzODZhMzhhLi4wOGNiZjUwMGE2N2VjZDFmODJhNjAwYzYy
NzdjOTJhOTkwNTk0YzJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tOYXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25BY3Rpb25Qcml2YXRlLmgKQEAgLTQzLDEzICs0
MywxMyBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBXS1N5bnRoZXRpY0NsaWNrVHlwZSkg
ewogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1VSTCAqX29yaWdpbmFsVVJMOwog
QHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBnZXR0ZXI9X2lzVXNlckluaXRpYXRlZCkg
Qk9PTCBfdXNlckluaXRpYXRlZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9P
TCBfY2FuSGFuZGxlUmVxdWVzdDsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9P
TCBfc2hvdWxkT3BlbkV4dGVybmFsU2NoZW1lcyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4x
MSksIGlvcyg5LjApKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfc2hv
dWxkT3BlbkFwcExpbmtzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkp
OwotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF9zaG91bGRQZXJmb3JtRG93
bmxvYWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgX3Nob3VsZE9wZW5FeHRl
cm5hbFNjaGVtZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMSksIGlvcyg5LjApKTsKK0Bw
cm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfc2hvdWxkT3BlbkFwcExpbmtzIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTEpLCBpb3MoOS4wKSk7CitAcHJvcGVydHkgKG5vbmF0
b21pYywgcmVhZG9ubHkpIEJPT0wgX3Nob3VsZFBlcmZvcm1Eb3dubG9hZCBXS19BUElfQVZBSUxB
QkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCi1AcHJvcGVydHkgKG5v
bmF0b21pYywgcmVhZG9ubHkpIEJPT0wgX3Nob3VsZE9wZW5FeHRlcm5hbFVSTHMgV0tfQVBJX0RF
UFJFQ0FURUQoInVzZSBfc2hvdWxkT3BlbkV4dGVybmFsU2NoZW1lcyBhbmQgX3Nob3VsZE9wZW5B
cHBMaW5rcyIsIG1hY29zeCgxMC4xMSwgMTAuMTEpLCBpb3MoOS4wLCA5LjApKTsKK0Bwcm9wZXJ0
eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfc2hvdWxkT3BlbkV4dGVybmFsVVJMcyBXS19B
UElfREVQUkVDQVRFRCgidXNlIF9zaG91bGRPcGVuRXh0ZXJuYWxTY2hlbWVzIGFuZCBfc2hvdWxk
T3BlbkFwcExpbmtzIiwgbWFjb3MoMTAuMTEsIDEwLjExKSwgaW9zKDkuMCwgOS4wKSk7CiAKLUBw
cm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgX1dLVXNlckluaXRpYXRlZEFjdGlvbiAqX3Vz
ZXJJbml0aWF0ZWRBY3Rpb24gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3MoMTAu
MCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBfV0tVc2VySW5pdGlhdGVkQWN0
aW9uICpfdXNlckluaXRpYXRlZEFjdGlvbiBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwg
aW9zKDEwLjApKTsKIAogI2lmIFRBUkdFVF9PU19JUEhPTkUKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
LCByZWFkb25seSkgV0tTeW50aGV0aWNDbGlja1R5cGUgX3N5bnRoZXRpY0NsaWNrVHlwZSBXS19B
UElfQVZBSUxBQkxFKGlvcygxMC4wKSk7CkBAIC01OCw3ICs1OCw3IEBAIHR5cGVkZWYgTlNfRU5V
TShOU0ludGVnZXIsIFdLU3ludGhldGljQ2xpY2tUeXBlKSB7CiBAcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZG9ubHkpIFVJS2V5TW9kaWZpZXJGbGFncyBtb2RpZmllckZsYWdzIFdLX0FQSV9BVkFJ
TEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKICNlbmRpZgogCi1AcHJvcGVydHkgKG5vbmF0b21pYywg
cmVhZG9ubHkpIEJPT0wgX2lzUmVkaXJlY3QgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMp
LCBpb3MoMTEuMCkpOwotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBXS05hdmlnYXRp
b24gKl9tYWluRnJhbWVOYXZpZ2F0aW9uIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19U
QkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBC
T09MIF9pc1JlZGlyZWN0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkp
OworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBXS05hdmlnYXRpb24gKl9tYWluRnJh
bWVOYXZpZ2F0aW9uIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19J
T1NfVEJBKSk7CiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLTmF2aWdhdGlvbkRlbGVnYXRlLmgKaW5kZXggYTkxODRhMTY1YWVlNjEyNzdh
NzNhNzkxNWQ0YTg0ZjJiY2ZlYWNlYy4uOGVlNDYyYzQ2YzhiY2NjOGE1OWI4OTc0ZDc1NWQ4OGFj
N2IzNDQ2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
TmF2aWdhdGlvbkRlbGVnYXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLTmF2aWdhdGlvbkRlbGVnYXRlLmgKQEAgLTQzLDcgKzQzLDcgQEAgTlNfQVNTVU1FX05P
Tk5VTExfQkVHSU4KIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIFdLTmF2aWdhdGlvbkFjdGlv
blBvbGljeSkgewogICAgIFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeUNhbmNlbCwKICAgICBXS05h
dmlnYXRpb25BY3Rpb25Qb2xpY3lBbGxvdywKLX0gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAu
MTApLCBpb3MoOC4wKSk7Cit9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4w
KSk7CiAKIC8qISBAZW51bSBXS05hdmlnYXRpb25SZXNwb25zZVBvbGljeQogIEBhYnN0cmFjdCBU
aGUgcG9saWN5IHRvIHBhc3MgYmFjayB0byB0aGUgZGVjaXNpb24gaGFuZGxlciBmcm9tIHRoZSB3
ZWJWaWV3OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25SZXNwb25zZTpkZWNpc2lvbkhhbmRsZXI6
IG1ldGhvZC4KQEAgLTUzLDcgKzUzLDcgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgV0tO
YXZpZ2F0aW9uQWN0aW9uUG9saWN5KSB7CiB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBXS05h
dmlnYXRpb25SZXNwb25zZVBvbGljeSkgewogICAgIFdLTmF2aWdhdGlvblJlc3BvbnNlUG9saWN5
Q2FuY2VsLAogICAgIFdLTmF2aWdhdGlvblJlc3BvbnNlUG9saWN5QWxsb3csCi19IFdLX0FQSV9B
VkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpOworfSBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDEwLjEwKSwgaW9zKDguMCkpOwogCiAvKiEgQSBjbGFzcyBjb25mb3JtaW5nIHRvIHRoZSBX
S05hdmlnYXRpb25EZWxlZ2F0ZSBwcm90b2NvbCBjYW4gcHJvdmlkZQogIG1ldGhvZHMgZm9yIHRy
YWNraW5nIHByb2dyZXNzIGZvciBtYWluIGZyYW1lIG5hdmlnYXRpb25zIGFuZCBmb3IgZGVjaWRp
bmcKQEAgLTE0MCw3ICsxNDAsNyBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBXS05hdmln
YXRpb25SZXNwb25zZVBvbGljeSkgewogLyohIEBhYnN0cmFjdCBJbnZva2VkIHdoZW4gdGhlIHdl
YiB2aWV3J3Mgd2ViIGNvbnRlbnQgcHJvY2VzcyBpcyB0ZXJtaW5hdGVkLgogIEBwYXJhbSB3ZWJW
aWV3IFRoZSB3ZWIgdmlldyB3aG9zZSB1bmRlcmx5aW5nIHdlYiBjb250ZW50IHByb2Nlc3Mgd2Fz
IHRlcm1pbmF0ZWQuCiAgKi8KLS0gKHZvaWQpd2ViVmlld1dlYkNvbnRlbnRQcm9jZXNzRGlkVGVy
bWluYXRlOihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEx
KSwgaW9zKDkuMCkpOworLSAodm9pZCl3ZWJWaWV3V2ViQ29udGVudFByb2Nlc3NEaWRUZXJtaW5h
dGU6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMSksIGlv
cyg5LjApKTsKIAogQGVuZAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlLmgKaW5kZXggMzVi
YmVjMTZiYWU0YTNmZmM0ZGMzZmQwMDllOTI2NWRmMjRlM2RiMC4uYzMwMmYxNGFkZjU5MGY1MTJm
Y2M3M2U1MzczZDUzMDI3NzY2ZWEzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGUuaApA
QCAtMzcsMTQgKzM3LDE0IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS1dlYkdMTG9h
ZFBvbGljeSkgewogICAgIF9XS1dlYkdMTG9hZFBvbGljeUJsb2NrQ3JlYXRpb24sCiAgICAgX1dL
V2ViR0xMb2FkUG9saWN5QWxsb3dDcmVhdGlvbiwKICAgICBfV0tXZWJHTExvYWRQb2xpY3lQZW5k
aW5nQ3JlYXRpb24sCi19IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpKTsKK30gV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CiAKIHR5cGVkZWYgTlNfRU5VTShOU0ludGVn
ZXIsIF9XS1BsdWdpbk1vZHVsZUxvYWRQb2xpY3kpIHsKICAgICBfV0tQbHVnaW5Nb2R1bGVMb2Fk
UG9saWN5TG9hZE5vcm1hbGx5LAogICAgIF9XS1BsdWdpbk1vZHVsZUxvYWRQb2xpY3lMb2FkVW5z
YW5kYm94ZWQsCiAgICAgX1dLUGx1Z2luTW9kdWxlTG9hZFBvbGljeUJsb2NrZWRGb3JTZWN1cml0
eSwKICAgICBfV0tQbHVnaW5Nb2R1bGVMb2FkUG9saWN5QmxvY2tlZEZvckNvbXBhdGliaWxpdHks
Ci19IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjE0KSk7Cit9IFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTAuMTQpKTsKICNlbmRpZgogCiB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tQ
cm9jZXNzVGVybWluYXRpb25SZWFzb24pIHsKQEAgLTUyLDExICs1MiwxMSBAQCB0eXBlZGVmIE5T
X0VOVU0oTlNJbnRlZ2VyLCBfV0tQcm9jZXNzVGVybWluYXRpb25SZWFzb24pIHsKICAgICBfV0tQ
cm9jZXNzVGVybWluYXRpb25SZWFzb25FeGNlZWRlZENQVUxpbWl0LAogICAgIF9XS1Byb2Nlc3NU
ZXJtaW5hdGlvblJlYXNvblJlcXVlc3RlZEJ5Q2xpZW50LAogICAgIF9XS1Byb2Nlc3NUZXJtaW5h
dGlvblJlYXNvbkNyYXNoLAotfSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xNCksIGlvcygx
Mi4wKSk7Cit9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpLCBpb3MoMTIuMCkpOwogCiBz
dGF0aWMgY29uc3QgV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5IF9XS05hdmlnYXRpb25BY3Rpb25Q
b2xpY3lEb3dubG9hZCA9IChXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3kpKFdLTmF2aWdhdGlvbkFj
dGlvblBvbGljeUFsbG93ICsgMSk7Ci1zdGF0aWMgY29uc3QgV0tOYXZpZ2F0aW9uQWN0aW9uUG9s
aWN5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpIF9XS05hdmlnYXRp
b25BY3Rpb25Qb2xpY3lBbGxvd1dpdGhvdXRUcnlpbmdBcHBMaW5rID0gKFdLTmF2aWdhdGlvbkFj
dGlvblBvbGljeSkoX1dLTmF2aWdhdGlvbkFjdGlvblBvbGljeURvd25sb2FkICsgMSk7Ci1zdGF0
aWMgY29uc3QgV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpIF9XS05hdmlnYXRpb25BY3Rpb25Qb2xpY3lB
bGxvd0luTmV3UHJvY2VzcyA9IChXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3kpKF9XS05hdmlnYXRp
b25BY3Rpb25Qb2xpY3lBbGxvd1dpdGhvdXRUcnlpbmdBcHBMaW5rICsgMSk7CitzdGF0aWMgY29u
c3QgV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTEp
LCBpb3MoOS4wKSkgX1dLTmF2aWdhdGlvbkFjdGlvblBvbGljeUFsbG93V2l0aG91dFRyeWluZ0Fw
cExpbmsgPSAoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5KShfV0tOYXZpZ2F0aW9uQWN0aW9uUG9s
aWN5RG93bmxvYWQgKyAxKTsKK3N0YXRpYyBjb25zdCBXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3kg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKSBfV0tO
YXZpZ2F0aW9uQWN0aW9uUG9saWN5QWxsb3dJbk5ld1Byb2Nlc3MgPSAoV0tOYXZpZ2F0aW9uQWN0
aW9uUG9saWN5KShfV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5QWxsb3dXaXRob3V0VHJ5aW5nQXBw
TGluayArIDEpOwogCiBzdGF0aWMgY29uc3QgV0tOYXZpZ2F0aW9uUmVzcG9uc2VQb2xpY3kgX1dL
TmF2aWdhdGlvblJlc3BvbnNlUG9saWN5QmVjb21lRG93bmxvYWQgPSAoV0tOYXZpZ2F0aW9uUmVz
cG9uc2VQb2xpY3kpKFdLTmF2aWdhdGlvblJlc3BvbnNlUG9saWN5QWxsb3cgKyAxKTsKIApAQCAt
ODcsMjggKzg3LDI4IEBAIHN0YXRpYyBjb25zdCBXS05hdmlnYXRpb25SZXNwb25zZVBvbGljeSBf
V0tOYXZpZ2F0aW9uUmVzcG9uc2VQb2xpY3lCZWNvbWVEb3dubG9hCiAvLyBPbmx5IGNhbGxlZCBp
ZiBob3cgdGhlIGdlc3R1cmUgd2lsbCBlbmQgKHdpdGggb3Igd2l0aG91dCBuYXZpZ2F0aW9uKSBp
cyBrbm93biBiZWZvcmUgaXQgZW5kcy4KIC0gKHZvaWQpX3dlYlZpZXdXaWxsRW5kTmF2aWdhdGlv
bkdlc3R1cmU6KFdLV2ViVmlldyAqKXdlYlZpZXcgd2l0aE5hdmlnYXRpb25Ub0JhY2tGb3J3YXJk
TGlzdEl0ZW06KFdLQmFja0ZvcndhcmRMaXN0SXRlbSAqKWl0ZW07CiAtICh2b2lkKV93ZWJWaWV3
OihXS1dlYlZpZXcgKil3ZWJWaWV3IHdpbGxTbmFwc2hvdEJhY2tGb3J3YXJkTGlzdEl0ZW06KFdL
QmFja0ZvcndhcmRMaXN0SXRlbSAqKWl0ZW07Ci0tICh2b2lkKV93ZWJWaWV3RGlkUmVtb3ZlTmF2
aWdhdGlvbkdlc3R1cmVTbmFwc2hvdDooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxB
QkxFKG1hY29zeCgxMC4xMiksIGlvcygxMC4wKSk7Ci0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZp
ZXcgKil3ZWJWaWV3IGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246KFdLTmF2aWdhdGlv
bkFjdGlvbiAqKW5hdmlnYXRpb25BY3Rpb24gZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShXS05h
dmlnYXRpb25BY3Rpb25Qb2xpY3ksIF9XS1dlYnNpdGVQb2xpY2llcyAqKSlkZWNpc2lvbkhhbmRs
ZXIgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiX3dlYlZpZXc6ZGVjaWRlUG9s
aWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjp1c2VySW5mbzpkZWNpc2lvbkhhbmRsZXI6IiwgbWFjb3N4
KDEwLjEyLjMsIFdLX01BQ19UQkEpLCBpb3MoMTAuMywgV0tfSU9TX1RCQSkpOwotLSAodm9pZClf
d2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uOihXS05hdmlnYXRpb25BY3Rpb24gKiluYXZpZ2F0aW9uQWN0aW9uIHVzZXJJbmZvOihpZCA8
TlNTZWN1cmVDb2Rpbmc+KXVzZXJJbmZvIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoV0tOYXZp
Z2F0aW9uQWN0aW9uUG9saWN5LCBfV0tXZWJzaXRlUG9saWNpZXMgKikpZGVjaXNpb25IYW5kbGVy
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpLCBpb3MoMTEuMykpOwotLSAodm9pZClf
d2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWRTdGFydFByb3Zpc2lvbmFsTmF2aWdhdGlv
bjooV0tOYXZpZ2F0aW9uICopbmF2aWdhdGlvbiB1c2VySW5mbzooaWQgPE5TU2VjdXJlQ29kaW5n
Pil1c2VySW5mbyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSwgaW9zKDExLjMpKTsK
LS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkRmFpbE5hdmlnYXRpb246
KFdLTmF2aWdhdGlvbiAqKW5hdmlnYXRpb24gd2l0aEVycm9yOihOU0Vycm9yICopZXJyb3IgdXNl
ckluZm86KGlkIDxOU1NlY3VyZUNvZGluZz4pdXNlckluZm8gV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goMTAuMTMuNCksIGlvcygxMS4zKSk7CistICh2b2lkKV93ZWJWaWV3RGlkUmVtb3ZlTmF2aWdh
dGlvbkdlc3R1cmVTbmFwc2hvdDooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAq
KXdlYlZpZXcgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjooV0tOYXZpZ2F0aW9uQWN0
aW9uICopbmF2aWdhdGlvbkFjdGlvbiBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKFdLTmF2aWdh
dGlvbkFjdGlvblBvbGljeSwgX1dLV2Vic2l0ZVBvbGljaWVzICopKWRlY2lzaW9uSGFuZGxlciBX
S19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJfd2ViVmlldzpkZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uOnVzZXJJbmZvOmRlY2lzaW9uSGFuZGxlcjoiLCBtYWNvcygxMC4x
Mi4zLCBXS19NQUNfVEJBKSwgaW9zKDEwLjMsIFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX3dlYlZp
ZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjoo
V0tOYXZpZ2F0aW9uQWN0aW9uICopbmF2aWdhdGlvbkFjdGlvbiB1c2VySW5mbzooaWQgPE5TU2Vj
dXJlQ29kaW5nPil1c2VySW5mbyBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKFdLTmF2aWdhdGlv
bkFjdGlvblBvbGljeSwgX1dLV2Vic2l0ZVBvbGljaWVzICopKWRlY2lzaW9uSGFuZGxlciBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOworLSAodm9pZClfd2ViVmll
dzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWRTdGFydFByb3Zpc2lvbmFsTmF2aWdhdGlvbjooV0tO
YXZpZ2F0aW9uICopbmF2aWdhdGlvbiB1c2VySW5mbzooaWQgPE5TU2VjdXJlQ29kaW5nPil1c2Vy
SW5mbyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOworLSAodm9p
ZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWRGYWlsTmF2aWdhdGlvbjooV0tOYXZp
Z2F0aW9uICopbmF2aWdhdGlvbiB3aXRoRXJyb3I6KE5TRXJyb3IgKillcnJvciB1c2VySW5mbzoo
aWQgPE5TU2VjdXJlQ29kaW5nPil1c2VySW5mbyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEz
LjQpLCBpb3MoMTEuMykpOwogCi0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IFVSTDooTlNVUkwgKil1cmwgY29udGVudFJ1bGVMaXN0SWRlbnRpZmllcnM6KE5TQXJyYXk8TlNT
dHJpbmcgKj4gKilpZGVudGlmaWVycyBub3RpZmljYXRpb25zOihOU0FycmF5PE5TU3RyaW5nICo+
ICopbm90aWZpY2F0aW9ucyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSwgaW9zKDEx
LjMpKTsKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgY29udGVudFJ1bGVM
aXN0V2l0aElkZW50aWZpZXI6KE5TU3RyaW5nICopaWRlbnRpZmllciBwZXJmb3JtZWRBY3Rpb246
KF9XS0NvbnRlbnRSdWxlTGlzdEFjdGlvbiAqKWFjdGlvbiBmb3JVUkw6KE5TVVJMICopdXJsIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotLSAo
dm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyB3ZWJDb250ZW50UHJvY2Vzc0RpZFRl
cm1pbmF0ZVdpdGhSZWFzb246KF9XS1Byb2Nlc3NUZXJtaW5hdGlvblJlYXNvbilyZWFzb24gV0tf
QVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTQpLCBpb3MoMTIuMCkpOworLSAodm9pZClfd2ViVmll
dzooV0tXZWJWaWV3ICopd2ViVmlldyBVUkw6KE5TVVJMICopdXJsIGNvbnRlbnRSdWxlTGlzdElk
ZW50aWZpZXJzOihOU0FycmF5PE5TU3RyaW5nICo+ICopaWRlbnRpZmllcnMgbm90aWZpY2F0aW9u
czooTlNBcnJheTxOU1N0cmluZyAqPiAqKW5vdGlmaWNhdGlvbnMgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAq
KXdlYlZpZXcgY29udGVudFJ1bGVMaXN0V2l0aElkZW50aWZpZXI6KE5TU3RyaW5nICopaWRlbnRp
ZmllciBwZXJmb3JtZWRBY3Rpb246KF9XS0NvbnRlbnRSdWxlTGlzdEFjdGlvbiAqKWFjdGlvbiBm
b3JVUkw6KE5TVVJMICopdXJsIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHdl
YkNvbnRlbnRQcm9jZXNzRGlkVGVybWluYXRlV2l0aFJlYXNvbjooX1dLUHJvY2Vzc1Rlcm1pbmF0
aW9uUmVhc29uKXJlYXNvbiBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSwgaW9zKDEyLjAp
KTsKIAogI2lmIFRBUkdFVF9PU19JUEhPTkUKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAq
KXdlYlZpZXcgZGlkU3RhcnRMb2FkRm9yUXVpY2tMb29rRG9jdW1lbnRJbk1haW5GcmFtZVdpdGhG
aWxlTmFtZTooTlNTdHJpbmcgKilmaWxlTmFtZSB1dGk6KE5TU3RyaW5nICopdXRpOwogLSAodm9p
ZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWRGaW5pc2hMb2FkRm9yUXVpY2tMb29r
RG9jdW1lbnRJbk1haW5GcmFtZTooTlNEYXRhICopZG9jdW1lbnREYXRhOwogLSAodm9pZClfd2Vi
Vmlld0RpZFJlcXVlc3RQYXNzd29yZEZvclF1aWNrTG9va0RvY3VtZW50OihXS1dlYlZpZXcgKil3
ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDExLjApKTsKICNlbHNlCi0tICh2b2lkKV93ZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHdlYkdMTG9hZFBvbGljeUZvclVSTDooTlNVUkwgKil1
cmwgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShfV0tXZWJHTExvYWRQb2xpY3kpKWRlY2lzaW9u
SGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSk7Ci0tICh2b2lkKV93ZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlc29sdmVXZWJHTExvYWRQb2xpY3lGb3JVUkw6KE5T
VVJMICopdXJsIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoX1dLV2ViR0xMb2FkUG9saWN5KSlk
ZWNpc2lvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCkpOwotLSAodm9p
ZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyB3aWxsR29Ub0JhY2tGb3J3YXJkTGlzdEl0
ZW06KFdLQmFja0ZvcndhcmRMaXN0SXRlbSAqKWl0ZW0gaW5QYWdlQ2FjaGU6KEJPT0wpaW5QYWdl
Q2FjaGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCkpOwotLSAodm9pZClfd2ViVmll
dzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWRGYWlsVG9Jbml0aWFsaXplUGx1Z0luV2l0aEluZm86
KE5TRGljdGlvbmFyeSAqKWluZm8gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCkpOwot
LSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWRCbG9ja0luc2VjdXJlUGx1
Z2luVmVyc2lvbldpdGhJbmZvOihOU0RpY3Rpb25hcnkgKilpbmZvIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3N4KDEwLjE0KSk7Ci0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRl
Y2lkZVBvbGljeUZvclBsdWdpbkxvYWRXaXRoQ3VycmVudFBvbGljeTooX1dLUGx1Z2luTW9kdWxl
TG9hZFBvbGljeSlwb2xpY3kgcGx1Z2luSW5mbzooTlNEaWN0aW9uYXJ5ICopaW5mbyBjb21wbGV0
aW9uSGFuZGxlcjoodm9pZCAoXikoX1dLUGx1Z2luTW9kdWxlTG9hZFBvbGljeSBwb2xpY3ksIE5T
U3RyaW5nICogdW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbikpY29tcGxldGlvbkhhbmRsZXIgV0tf
QVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkpOwotLSAodm9pZClfd2ViVmlldzooV0tX
ZWJWaWV3ICopd2ViVmlldyBiYWNrRm9yd2FyZExpc3RJdGVtQWRkZWQ6KFdLQmFja0ZvcndhcmRM
aXN0SXRlbSAqKWl0ZW1BZGRlZCByZW1vdmVkOihOU0FycmF5PFdLQmFja0ZvcndhcmRMaXN0SXRl
bSAqPiAqKWl0ZW1zUmVtb3ZlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSk7Cist
ICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHdlYkdMTG9hZFBvbGljeUZvclVS
TDooTlNVUkwgKil1cmwgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShfV0tXZWJHTExvYWRQb2xp
Y3kpKWRlY2lzaW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKKy0g
KHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVzb2x2ZVdlYkdMTG9hZFBvbGlj
eUZvclVSTDooTlNVUkwgKil1cmwgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShfV0tXZWJHTExv
YWRQb2xpY3kpKWRlY2lzaW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQp
KTsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgd2lsbEdvVG9CYWNrRm9y
d2FyZExpc3RJdGVtOihXS0JhY2tGb3J3YXJkTGlzdEl0ZW0gKilpdGVtIGluUGFnZUNhY2hlOihC
T09MKWluUGFnZUNhY2hlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOworLSAodm9p
ZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWRGYWlsVG9Jbml0aWFsaXplUGx1Z0lu
V2l0aEluZm86KE5TRGljdGlvbmFyeSAqKWluZm8gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4x
My40KSk7CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZEJsb2NrSW5z
ZWN1cmVQbHVnaW5WZXJzaW9uV2l0aEluZm86KE5TRGljdGlvbmFyeSAqKWluZm8gV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMC4xNCkpOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2Vi
VmlldyBkZWNpZGVQb2xpY3lGb3JQbHVnaW5Mb2FkV2l0aEN1cnJlbnRQb2xpY3k6KF9XS1BsdWdp
bk1vZHVsZUxvYWRQb2xpY3kpcG9saWN5IHBsdWdpbkluZm86KE5TRGljdGlvbmFyeSAqKWluZm8g
Y29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKF9XS1BsdWdpbk1vZHVsZUxvYWRQb2xpY3kgcG9s
aWN5LCBOU1N0cmluZyAqIHVuYXZhaWxhYmlsaXR5RGVzY3JpcHRpb24pKWNvbXBsZXRpb25IYW5k
bGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSkpOworLSAodm9pZClfd2ViVmll
dzooV0tXZWJWaWV3ICopd2ViVmlldyBiYWNrRm9yd2FyZExpc3RJdGVtQWRkZWQ6KFdLQmFja0Zv
cndhcmRMaXN0SXRlbSAqKWl0ZW1BZGRlZCByZW1vdmVkOihOU0FycmF5PFdLQmFja0ZvcndhcmRM
aXN0SXRlbSAqPiAqKWl0ZW1zUmVtb3ZlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQp
KTsKICNlbmRpZgogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tOYXZpZ2F0aW9uUmVzcG9uc2UuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS05hdmlnYXRpb25SZXNwb25zZS5oCmluZGV4IGYzYjM4ZGNkNDFlMjExMmY5
MThhYjkxZDkwMjhjN2JhYjM5NDc4ZjkuLmY4OWFiMjBkOGIwOGMzMjBkOGYyOTQwMmZlZDI0MTgy
MTc4Y2Q3ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S05hdmlnYXRpb25SZXNwb25zZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS05hdmlnYXRpb25SZXNwb25zZS5oCkBAIC0zMyw3ICszMyw3IEBAIE5TX0FTU1VNRV9O
T05OVUxMX0JFR0lOCiAKIC8qISBDb250YWlucyBpbmZvcm1hdGlvbiBhYm91dCBhIG5hdmlnYXRp
b24gcmVzcG9uc2UsIHVzZWQgZm9yIG1ha2luZyBwb2xpY3kgZGVjaXNpb25zLgogICovCi1XS19D
TEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCitXS19DTEFTU19BVkFJTEFC
TEUobWFjb3MoMTAuMTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2UgV0tOYXZpZ2F0aW9uUmVzcG9u
c2UgOiBOU09iamVjdAogCiAvKiEgQGFic3RyYWN0IEEgQm9vbGVhbiB2YWx1ZSBpbmRpY2F0aW5n
IHdoZXRoZXIgdGhlIGZyYW1lIGJlaW5nIG5hdmlnYXRlZCBpcyB0aGUgbWFpbiBmcmFtZS4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS09wZW5QYW5lbFBh
cmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS09wZW5QYW5l
bFBhcmFtZXRlcnMuaAppbmRleCBiYTU4NjEwNzQzMzBmOThhZjMyOTQzZGQ3Y2E1ZTlkMDE1NmQx
ZDViLi5iZmY3MTgyZjJjY2FiOGNiNDhhODY4ZTk5YWU4ZTcyNDg1Y2U0ODg4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tPcGVuUGFuZWxQYXJhbWV0ZXJz
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLT3BlblBhbmVsUGFy
YW1ldGVycy5oCkBAIC0zMyw3ICszMyw3IEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAKIC8q
ISBXS09wZW5QYW5lbFBhcmFtZXRlcnMgY29udGFpbnMgcGFyYW1ldGVycyB0aGF0IGEgZmlsZSB1
cGxvYWQgY29udHJvbCBoYXMgc3BlY2lmaWVkLgogICovCi1XS19DTEFTU19BVkFJTEFCTEUobWFj
b3N4KDEwLjEyKSkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4xMikpCiBAaW50ZXJmYWNl
IFdLT3BlblBhbmVsUGFyYW1ldGVycyA6IE5TT2JqZWN0CiAKIC8qISBAYWJzdHJhY3QgV2hldGhl
ciB0aGUgZmlsZSB1cGxvYWQgY29udHJvbCBzdXBwb3J0cyBtdWx0aXBsZSBmaWxlcy4KQEAgLTQy
LDcgKzQyLDcgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMikpCiAKIC8qISBAYWJz
dHJhY3QgV2hldGhlciB0aGUgZmlsZSB1cGxvYWQgY29udHJvbCBzdXBwb3J0cyBzZWxlY3Rpbmcg
ZGlyZWN0b3JpZXMuCiAgKi8KLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBh
bGxvd3NEaXJlY3RvcmllcyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSk7CitAcHJv
cGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgYWxsb3dzRGlyZWN0b3JpZXMgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CiAKIEBlbmQKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLT3BlblBhbmVsUGFyYW1ldGVyc1ByaXZhdGUu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS09wZW5QYW5lbFBhcmFtZXRl
cnNQcml2YXRlLmgKaW5kZXggOWExM2Y1OWQyMjFkMTJjNmFmZmE4ZmVlZDg5NzU3ODE1YTAyMDcx
Yi4uMTNiYTdkODNkNjY2NDdhNDZiMWMzNDEzNzBiNzg5N2UyMzRhYWM4YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLT3BlblBhbmVsUGFyYW1ldGVyc1By
aXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tPcGVuUGFu
ZWxQYXJhbWV0ZXJzUHJpdmF0ZS5oCkBAIC0yOSw4ICsyOSw4IEBACiAKIEBpbnRlcmZhY2UgV0tP
cGVuUGFuZWxQYXJhbWV0ZXJzIChXS1ByaXZhdGUpCiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBy
ZWFkb25seSwgY29weSkgTlNBcnJheTxOU1N0cmluZyAqPiAqX2FjY2VwdGVkTUlNRVR5cGVzIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBy
ZWFkb25seSwgY29weSkgTlNBcnJheTxOU1N0cmluZyAqPiAqX2FjY2VwdGVkRmlsZUV4dGVuc2lv
bnMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCkpOworQHByb3BlcnR5IChub25hdG9t
aWMsIHJlYWRvbmx5LCBjb3B5KSBOU0FycmF5PE5TU3RyaW5nICo+ICpfYWNjZXB0ZWRNSU1FVHlw
ZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CitAcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZG9ubHksIGNvcHkpIE5TQXJyYXk8TlNTdHJpbmcgKj4gKl9hY2NlcHRlZEZpbGVFeHRl
bnNpb25zIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOwogCiBAZW5kCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5oCmluZGV4
IDFhMDc4NjFkM2M5ZTQ0OWQyNDlhMDBhODBjYmU0MjhmNWEwN2RmMGEuLmY0ZTczYTc0YzI5NDgw
MWI4Mzc0MWU4MzQwMGMzZmIyNTRhOTIzODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMuaApAQCAtMzIsNyArMzIsNyBAQAogIHZpZXcu
IFRoZSBwcmVmZXJlbmNlcyBvYmplY3QgYXNzb2NpYXRlZCB3aXRoIGEgd2ViIHZpZXcgaXMgc3Bl
Y2lmaWVkIGJ5CiAgaXRzIHdlYiB2aWV3IGNvbmZpZ3VyYXRpb24uCiAgKi8KLVdLX0NMQVNTX0FW
QUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNv
cygxMC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBXS1ByZWZlcmVuY2VzIDogTlNPYmplY3Qg
PE5TU2VjdXJlQ29kaW5nPgogCiAvKiEgQGFic3RyYWN0IFRoZSBtaW5pbXVtIGZvbnQgc2l6ZSBp
biBwb2ludHMuCkBAIC02Nyw3ICs2Nyw3IEBAIFdLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAu
MTApLCBpb3MoOC4wKSkKICBAYWJzdHJhY3QgSWYgdGFiRm9jdXNlc0xpbmtzIGlzIFlFUywgdGhl
IHRhYiBrZXkgd2lsbCBmb2N1cyBsaW5rcyBhbmQgZm9ybSBjb250cm9scy4KICBUaGUgT3B0aW9u
IGtleSB0ZW1wb3JhcmlseSByZXZlcnNlcyB0aGlzIHByZWZlcmVuY2UuCiAgKi8KLUBwcm9wZXJ0
eSAobm9uYXRvbWljKSBCT09MIHRhYkZvY3VzZXNMaW5rcyBXS19BUElfQVZBSUxBQkxFKG1hY29z
eCgxMC4xMi4zKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCB0YWJGb2N1c2VzTGlua3Mg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMi4zKSk7CiAjZW5kaWYKIAogQGVuZApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2
YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlc1By
aXZhdGUuaAppbmRleCBhYWNjMThkM2VmNmI1NmM4Yzg3NzViNjMyMDNlODlkNWZlY2NiYzk2Li41
ZTY2NTE2Nzc4YTRhMTU2ZDJlMDkyOTMyMDIzZGQ0N2Q0ODc3NjdhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUu
aApAQCAtMzQsMTYgKzM0LDE2IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS1N0b3Jh
Z2VCbG9ja2luZ1BvbGljeSkgewogICAgIF9XS1N0b3JhZ2VCbG9ja2luZ1BvbGljeUFsbG93QWxs
LAogICAgIF9XS1N0b3JhZ2VCbG9ja2luZ1BvbGljeUJsb2NrVGhpcmRQYXJ0eSwKICAgICBfV0tT
dG9yYWdlQmxvY2tpbmdQb2xpY3lCbG9ja0FsbCwKLX0gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3go
MTAuMTApLCBpb3MoOC4wKSk7Cit9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3Mo
OC4wKSk7CiAKIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tEZWJ1Z092ZXJsYXlS
ZWdpb25zKSB7CiAgICAgX1dLTm9uRmFzdFNjcm9sbGFibGVSZWdpb24gPSAxIDw8IDAsCiAgICAg
X1dLV2hlZWxFdmVudEhhbmRsZXJSZWdpb24gPSAxIDw8IDEKLX0gV0tfQVBJX0FWQUlMQUJMRSht
YWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7Cit9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTEp
LCBpb3MoOS4wKSk7CiAKIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tKYXZhU2Ny
aXB0UnVudGltZUZsYWdzKSB7CiAgICAgX1dLSmF2YVNjcmlwdFJ1bnRpbWVGbGFnc0FsbEVuYWJs
ZWQgPSAwCi19IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOworfSBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjExKSwgaW9zKDkuMCkpOwogCiB0eXBlZGVmIE5TX0VO
VU0oTlNJbnRlZ2VyLCBfV0tFZGl0YWJsZUxpbmtCZWhhdmlvcikgewogICAgIF9XS0VkaXRhYmxl
TGlua0JlaGF2aW9yRGVmYXVsdCwKQEAgLTUxLDcgKzUxLDcgQEAgdHlwZWRlZiBOU19FTlVNKE5T
SW50ZWdlciwgX1dLRWRpdGFibGVMaW5rQmVoYXZpb3IpIHsKICAgICBfV0tFZGl0YWJsZUxpbmtC
ZWhhdmlvck9ubHlMaXZlV2l0aFNoaWZ0S2V5LAogICAgIF9XS0VkaXRhYmxlTGlua0JlaGF2aW9y
TGl2ZVdoZW5Ob3RGb2N1c2VkLAogICAgIF9XS0VkaXRhYmxlTGlua0JlaGF2aW9yTmV2ZXJMaXZl
LAotfSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSwgaW9zKDExLjMpKTsKK30gV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKIAogQGNsYXNzIF9XS0V4
cGVyaW1lbnRhbEZlYXR1cmU7CiBAY2xhc3MgX1dLSW50ZXJuYWxEZWJ1Z0ZlYXR1cmU7CkBAIC02
OCwxMzggKzY4LDEzOCBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tFZGl0YWJsZUxp
bmtCZWhhdmlvcikgewogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0Q29tcG9zaXRp
bmdCb3JkZXJzVmlzaWJsZTopIEJPT0wgX2NvbXBvc2l0aW5nQm9yZGVyc1Zpc2libGU7CiBAcHJv
cGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRDb21wb3NpdGluZ1JlcGFpbnRDb3VudGVyc1Zp
c2libGU6KSBCT09MIF9jb21wb3NpdGluZ1JlcGFpbnRDb3VudGVyc1Zpc2libGU7CiBAcHJvcGVy
dHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRUaWxlZFNjcm9sbGluZ0luZGljYXRvclZpc2libGU6
KSBCT09MIF90aWxlZFNjcm9sbGluZ0luZGljYXRvclZpc2libGU7Ci1AcHJvcGVydHkgKG5vbmF0
b21pYywgc2V0dGVyPV9zZXRSZXNvdXJjZVVzYWdlT3ZlcmxheVZpc2libGU6KSBCT09MIF9yZXNv
dXJjZVVzYWdlT3ZlcmxheVZpc2libGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBp
b3MoMTAuMCkpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0VmlzaWJsZURlYnVn
T3ZlcmxheVJlZ2lvbnM6KSBfV0tEZWJ1Z092ZXJsYXlSZWdpb25zIF92aXNpYmxlRGVidWdPdmVy
bGF5UmVnaW9ucyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKLUBw
cm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFNpbXBsZUxpbmVMYXlvdXRFbmFibGVkOikg
Qk9PTCBfc2ltcGxlTGluZUxheW91dEVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAu
MTIpLCBpb3MoMTAuMCkpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0U2ltcGxl
TGluZUxheW91dERlYnVnQm9yZGVyc0VuYWJsZWQ6KSBCT09MIF9zaW1wbGVMaW5lTGF5b3V0RGVi
dWdCb3JkZXJzRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjAp
KTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldENvbnRlbnRDaGFuZ2VPYnNlcnZl
ckVuYWJsZWQ6KSBCT09MIF9jb250ZW50Q2hhbmdlT2JzZXJ2ZXJFbmFibGVkIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotQHByb3BlcnR5IChu
b25hdG9taWMsIHNldHRlcj1fc2V0QWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZDopIEJPT0wgX2Fj
Y2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBp
b3MoMTAuMCkpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0RGlzcGxheUxpc3RE
cmF3aW5nRW5hYmxlZDopIEJPT0wgX2Rpc3BsYXlMaXN0RHJhd2luZ0VuYWJsZWQgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3MoMTAuMCkpOwotQHByb3BlcnR5IChub25hdG9taWMs
IHNldHRlcj1fc2V0TGFyZ2VJbWFnZUFzeW5jRGVjb2RpbmdFbmFibGVkOikgQk9PTCBfbGFyZ2VJ
bWFnZUFzeW5jRGVjb2RpbmdFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyLjMp
LCBpb3MoMTAuMykpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0QW5pbWF0ZWRJ
bWFnZUFzeW5jRGVjb2RpbmdFbmFibGVkOikgQk9PTCBfYW5pbWF0ZWRJbWFnZUFzeW5jRGVjb2Rp
bmdFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyLjMpLCBpb3MoMTAuMykpOwot
QHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0VGV4dEF1dG9zaXppbmdFbmFibGVkOikg
Qk9PTCBfdGV4dEF1dG9zaXppbmdFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEy
KSwgaW9zKDEwLjApKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFN1YnBpeGVs
QW50aWFsaWFzZWRMYXllclRleHRFbmFibGVkOikgQk9PTCBfc3VicGl4ZWxBbnRpYWxpYXNlZExh
eWVyVGV4dEVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3MoMTAuMCkp
OworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0UmVzb3VyY2VVc2FnZU92ZXJsYXlW
aXNpYmxlOikgQk9PTCBfcmVzb3VyY2VVc2FnZU92ZXJsYXlWaXNpYmxlIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRl
cj1fc2V0VmlzaWJsZURlYnVnT3ZlcmxheVJlZ2lvbnM6KSBfV0tEZWJ1Z092ZXJsYXlSZWdpb25z
IF92aXNpYmxlRGVidWdPdmVybGF5UmVnaW9ucyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEx
KSwgaW9zKDkuMCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0U2ltcGxlTGlu
ZUxheW91dEVuYWJsZWQ6KSBCT09MIF9zaW1wbGVMaW5lTGF5b3V0RW5hYmxlZCBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBz
ZXR0ZXI9X3NldFNpbXBsZUxpbmVMYXlvdXREZWJ1Z0JvcmRlcnNFbmFibGVkOikgQk9PTCBfc2lt
cGxlTGluZUxheW91dERlYnVnQm9yZGVyc0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygx
MC4xMSksIGlvcyg5LjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldENvbnRl
bnRDaGFuZ2VPYnNlcnZlckVuYWJsZWQ6KSBCT09MIF9jb250ZW50Q2hhbmdlT2JzZXJ2ZXJFbmFi
bGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7
CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBY2NlbGVyYXRlZERyYXdpbmdFbmFi
bGVkOikgQk9PTCBfYWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDEwLjEyKSwgaW9zKDEwLjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3Nl
dERpc3BsYXlMaXN0RHJhd2luZ0VuYWJsZWQ6KSBCT09MIF9kaXNwbGF5TGlzdERyYXdpbmdFbmFi
bGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOworQHByb3BlcnR5
IChub25hdG9taWMsIHNldHRlcj1fc2V0TGFyZ2VJbWFnZUFzeW5jRGVjb2RpbmdFbmFibGVkOikg
Qk9PTCBfbGFyZ2VJbWFnZUFzeW5jRGVjb2RpbmdFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTAuMTIuMyksIGlvcygxMC4zKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9z
ZXRBbmltYXRlZEltYWdlQXN5bmNEZWNvZGluZ0VuYWJsZWQ6KSBCT09MIF9hbmltYXRlZEltYWdl
QXN5bmNEZWNvZGluZ0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMi4zKSwgaW9z
KDEwLjMpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFRleHRBdXRvc2l6aW5n
RW5hYmxlZDopIEJPT0wgX3RleHRBdXRvc2l6aW5nRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDEwLjEyKSwgaW9zKDEwLjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3Nl
dFN1YnBpeGVsQW50aWFsaWFzZWRMYXllclRleHRFbmFibGVkOikgQk9PTCBfc3VicGl4ZWxBbnRp
YWxpYXNlZExheWVyVGV4dEVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlv
cygxMC4wKSk7CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldERldmVsb3BlckV4
dHJhc0VuYWJsZWQ6KSBCT09MIF9kZXZlbG9wZXJFeHRyYXNFbmFibGVkIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRl
cj1fc2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZDopIEJPT0wgX2RldmVsb3BlckV4dHJhc0VuYWJs
ZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMSksIGlvcyg5LjApKTsKIAotQHByb3BlcnR5
IChub25hdG9taWMsIHNldHRlcj1fc2V0TG9nc1BhZ2VNZXNzYWdlc1RvU3lzdGVtQ29uc29sZUVu
YWJsZWQ6KSBCT09MIF9sb2dzUGFnZU1lc3NhZ2VzVG9TeXN0ZW1Db25zb2xlRW5hYmxlZCBXS19B
UElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRv
bWljLCBzZXR0ZXI9X3NldExvZ3NQYWdlTWVzc2FnZXNUb1N5c3RlbUNvbnNvbGVFbmFibGVkOikg
Qk9PTCBfbG9nc1BhZ2VNZXNzYWdlc1RvU3lzdGVtQ29uc29sZUVuYWJsZWQgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xMSksIGlvcyg5LjApKTsKIAotQHByb3BlcnR5IChub25hdG9taWMsIHNl
dHRlcj1fc2V0SGlkZGVuUGFnZURPTVRpbWVyVGhyb3R0bGluZ0VuYWJsZWQ6KSBCT09MIF9oaWRk
ZW5QYWdlRE9NVGltZXJUaHJvdHRsaW5nRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgx
MC4xMiksIGlvcygxMC4wKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRIaWRk
ZW5QYWdlRE9NVGltZXJUaHJvdHRsaW5nQXV0b0luY3JlYXNlczopIEJPT0wgX2hpZGRlblBhZ2VE
T01UaW1lclRocm90dGxpbmdBdXRvSW5jcmVhc2VzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEw
LjEyKSwgaW9zKDEwLjApKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFBhZ2VW
aXNpYmlsaXR5QmFzZWRQcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkOikgQk9PTCBfcGFnZVZpc2li
aWxpdHlCYXNlZFByb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goMTAuMTIpLCBpb3MoMTAuMCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0
SGlkZGVuUGFnZURPTVRpbWVyVGhyb3R0bGluZ0VuYWJsZWQ6KSBCT09MIF9oaWRkZW5QYWdlRE9N
VGltZXJUaHJvdHRsaW5nRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9z
KDEwLjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEhpZGRlblBhZ2VET01U
aW1lclRocm90dGxpbmdBdXRvSW5jcmVhc2VzOikgQk9PTCBfaGlkZGVuUGFnZURPTVRpbWVyVGhy
b3R0bGluZ0F1dG9JbmNyZWFzZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygx
MC4wKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRQYWdlVmlzaWJpbGl0eUJh
c2VkUHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZDopIEJPT0wgX3BhZ2VWaXNpYmlsaXR5QmFzZWRQ
cm9jZXNzU3VwcHJlc3Npb25FbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBp
b3MoMTAuMCkpOwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBbGxvd0ZpbGVB
Y2Nlc3NGcm9tRmlsZVVSTHM6KSBCT09MIF9hbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHMgV0tf
QVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7Ci1AcHJvcGVydHkgKG5vbmF0
b21pYywgc2V0dGVyPV9zZXRKYXZhU2NyaXB0UnVudGltZUZsYWdzOikgX1dLSmF2YVNjcmlwdFJ1
bnRpbWVGbGFncyBfamF2YVNjcmlwdFJ1bnRpbWVGbGFncyBXS19BUElfQVZBSUxBQkxFKG1hY29z
eCgxMC4xMSksIGlvcyg5LjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFs
bG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMczopIEJPT0wgX2FsbG93RmlsZUFjY2Vzc0Zyb21GaWxl
VVJMcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjExKSwgaW9zKDkuMCkpOworQHByb3BlcnR5
IChub25hdG9taWMsIHNldHRlcj1fc2V0SmF2YVNjcmlwdFJ1bnRpbWVGbGFnczopIF9XS0phdmFT
Y3JpcHRSdW50aW1lRmxhZ3MgX2phdmFTY3JpcHRSdW50aW1lRmxhZ3MgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMC4xMSksIGlvcyg5LjApKTsKIAotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRl
cj1fc2V0U3RhbmRhbG9uZTosIGdldHRlcj1faXNTdGFuZGFsb25lKSBCT09MIF9zdGFuZGFsb25l
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOworQHByb3BlcnR5IChu
b25hdG9taWMsIHNldHRlcj1fc2V0U3RhbmRhbG9uZTosIGdldHRlcj1faXNTdGFuZGFsb25lKSBC
T09MIF9zdGFuZGFsb25lIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTEpLCBpb3MoOS4wKSk7
CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldERpYWdub3N0aWNMb2dnaW5nRW5h
YmxlZDopIEJPT0wgX2RpYWdub3N0aWNMb2dnaW5nRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeCgxMC4xMSksIGlvcyg5LjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3Nl
dERpYWdub3N0aWNMb2dnaW5nRW5hYmxlZDopIEJPT0wgX2RpYWdub3N0aWNMb2dnaW5nRW5hYmxl
ZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjExKSwgaW9zKDkuMCkpOwogCi1AcHJvcGVydHkg
KG5vbmF0b21pYywgc2V0dGVyPV9zZXREZWZhdWx0Rm9udFNpemU6KSBOU1VJbnRlZ2VyIF9kZWZh
dWx0Rm9udFNpemUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3MoMTAuMCkpOwot
QHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0RGVmYXVsdEZpeGVkUGl0Y2hGb250U2l6
ZTopIE5TVUludGVnZXIgX2RlZmF1bHRGaXhlZFBpdGNoRm9udFNpemUgV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goMTAuMTIpLCBpb3MoMTAuMCkpOwotQHByb3BlcnR5IChub25hdG9taWMsIGNvcHks
IHNldHRlcj1fc2V0Rml4ZWRQaXRjaEZvbnRGYW1pbHk6KSBOU1N0cmluZyAqX2ZpeGVkUGl0Y2hG
b250RmFtaWx5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsKK0Bw
cm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldERlZmF1bHRGb250U2l6ZTopIE5TVUludGVn
ZXIgX2RlZmF1bHRGb250U2l6ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEw
LjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldERlZmF1bHRGaXhlZFBpdGNo
Rm9udFNpemU6KSBOU1VJbnRlZ2VyIF9kZWZhdWx0Rml4ZWRQaXRjaEZvbnRTaXplIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOworQHByb3BlcnR5IChub25hdG9taWMs
IGNvcHksIHNldHRlcj1fc2V0Rml4ZWRQaXRjaEZvbnRGYW1pbHk6KSBOU1N0cmluZyAqX2ZpeGVk
UGl0Y2hGb250RmFtaWx5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkp
OwogCiAvLyBGSVhNRTogVGhpcyBzaG91bGQgYmUgY29uZmlndXJlZCBvbiB0aGUgV0tXZWJzaXRl
RGF0YVN0b3JlLgogLy8gRklYTUU6IFRoaXMgcHJvcGVydHkgc2hvdWxkIG5vdCBoYXZlIHRoZSB2
ZXJiICJpcyIgaW4gaXQuCiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRPZmZsaW5l
QXBwbGljYXRpb25DYWNoZUlzRW5hYmxlZDopIEJPT0wgX29mZmxpbmVBcHBsaWNhdGlvbkNhY2hl
SXNFbmFibGVkOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0RnVsbFNjcmVlbkVu
YWJsZWQ6KSBCT09MIF9mdWxsU2NyZWVuRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgx
MC4xMSksIGlvcyg5LjApKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFNob3Vs
ZFN1cHByZXNzS2V5Ym9hcmRJbnB1dER1cmluZ1Byb3Zpc2lvbmFsTmF2aWdhdGlvbjopIEJPT0wg
X3Nob3VsZFN1cHByZXNzS2V5Ym9hcmRJbnB1dER1cmluZ1Byb3Zpc2lvbmFsTmF2aWdhdGlvbiBX
S19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMi4zKSwgaW9zKDEwLjMpKTsKLUBwcm9wZXJ0eSAo
bm9uYXRvbWljLCBzZXR0ZXI9X3NldEFsbG93c1BpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXliYWNr
OikgQk9PTCBfYWxsb3dzUGljdHVyZUluUGljdHVyZU1lZGlhUGxheWJhY2sgV0tfQVBJX0FWQUlM
QUJMRShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNl
dHRlcj1fc2V0RnVsbFNjcmVlbkVuYWJsZWQ6KSBCT09MIF9mdWxsU2NyZWVuRW5hYmxlZCBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEwLjExKSwgaW9zKDkuMCkpOworQHByb3BlcnR5IChub25hdG9t
aWMsIHNldHRlcj1fc2V0U2hvdWxkU3VwcHJlc3NLZXlib2FyZElucHV0RHVyaW5nUHJvdmlzaW9u
YWxOYXZpZ2F0aW9uOikgQk9PTCBfc2hvdWxkU3VwcHJlc3NLZXlib2FyZElucHV0RHVyaW5nUHJv
dmlzaW9uYWxOYXZpZ2F0aW9uIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIuMyksIGlvcygx
MC4zKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBbGxvd3NQaWN0dXJlSW5Q
aWN0dXJlTWVkaWFQbGF5YmFjazopIEJPT0wgX2FsbG93c1BpY3R1cmVJblBpY3R1cmVNZWRpYVBs
YXliYWNrIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpOwogCi1AcHJv
cGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBcHBsZVBheUNhcGFiaWxpdHlEaXNjbG9zdXJl
QWxsb3dlZDopIEJPT0wgX2FwcGxlUGF5Q2FwYWJpbGl0eURpc2Nsb3N1cmVBbGxvd2VkIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRv
bWljLCBzZXR0ZXI9X3NldEFwcGxlUGF5Q2FwYWJpbGl0eURpc2Nsb3N1cmVBbGxvd2VkOikgQk9P
TCBfYXBwbGVQYXlDYXBhYmlsaXR5RGlzY2xvc3VyZUFsbG93ZWQgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMC4xMiksIGlvcygxMC4wKSk7CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9
X3NldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseTopIEJPT0wgX2xvYWRzSW1hZ2VzQXV0b21hdGlj
YWxseSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7CitAcHJvcGVy
dHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHk6KSBCT09M
IF9sb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyks
IGlvcygxMS4wKSk7CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFBlZXJDb25u
ZWN0aW9uRW5hYmxlZDopIEJPT0wgX3BlZXJDb25uZWN0aW9uRW5hYmxlZCBXS19BUElfQVZBSUxB
QkxFKG1hY29zeCgxMC4xMy40KSwgaW9zKDExLjMpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBz
ZXR0ZXI9X3NldE1lZGlhRGV2aWNlc0VuYWJsZWQ6KSBCT09MIF9tZWRpYURldmljZXNFbmFibGVk
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzKSwgaW9zKDExLjApKTsKLUBwcm9wZXJ0eSAo
bm9uYXRvbWljLCBzZXR0ZXI9X3NldFNjcmVlbkNhcHR1cmVFbmFibGVkOikgQk9PTCBfc2NyZWVu
Q2FwdHVyZUVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCksIGlvcygxMS4z
KSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRNb2NrQ2FwdHVyZURldmljZXNF
bmFibGVkOikgQk9PTCBfbW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCBXS19BUElfQVZBSUxBQkxF
KG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVy
PV9zZXRNb2NrQ2FwdHVyZURldmljZXNQcm9tcHRFbmFibGVkOikgQk9PTCBfbW9ja0NhcHR1cmVE
ZXZpY2VzUHJvbXB0RW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSwgaW9z
KDExLjMpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldE1lZGlhQ2FwdHVyZVJl
cXVpcmVzU2VjdXJlQ29ubmVjdGlvbjopIEJPT0wgX21lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJl
Q29ubmVjdGlvbiBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7Ci1A
cHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRFbnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRl
cmZhY2VzRW5hYmxlZDopIEJPT0wgX2VudW1lcmF0aW5nQWxsTmV0d29ya0ludGVyZmFjZXNFbmFi
bGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzKSwgaW9zKDExLjApKTsKLUBwcm9wZXJ0
eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldElDRUNhbmRpZGF0ZUZpbHRlcmluZ0VuYWJsZWQ6KSBC
T09MIF9pY2VDYW5kaWRhdGVGaWx0ZXJpbmdFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KDEwLjEzLjQpLCBpb3MoMTEuMykpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0
V2ViUlRDTGVnYWN5QVBJRW5hYmxlZDopIEJPT0wgX3dlYlJUQ0xlZ2FjeUFQSUVuYWJsZWQgV0tf
QVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpOwotQHByb3BlcnR5IChub25h
dG9taWMsIHNldHRlcj1fc2V0SW5hY3RpdmVNZWRpYUNhcHR1cmVTdGVhbVJlcHJvbXB0SW50ZXJ2
YWxJbk1pbnV0ZXM6KSBkb3VibGUgX2luYWN0aXZlTWVkaWFDYXB0dXJlU3RlYW1SZXByb21wdElu
dGVydmFsSW5NaW51dGVzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpLCBpb3MoMTEu
MykpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0UGVlckNvbm5lY3Rpb25FbmFi
bGVkOikgQk9PTCBfcGVlckNvbm5lY3Rpb25FbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTAuMTMuNCksIGlvcygxMS4zKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRN
ZWRpYURldmljZXNFbmFibGVkOikgQk9PTCBfbWVkaWFEZXZpY2VzRW5hYmxlZCBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBz
ZXR0ZXI9X3NldFNjcmVlbkNhcHR1cmVFbmFibGVkOikgQk9PTCBfc2NyZWVuQ2FwdHVyZUVuYWJs
ZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKK0Bwcm9wZXJ0
eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldE1vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQ6KSBCT09M
IF9tb2NrQ2FwdHVyZURldmljZXNFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMp
LCBpb3MoMTEuMCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0TW9ja0NhcHR1
cmVEZXZpY2VzUHJvbXB0RW5hYmxlZDopIEJPT0wgX21vY2tDYXB0dXJlRGV2aWNlc1Byb21wdEVu
YWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldE1lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29u
bmVjdGlvbjopIEJPT0wgX21lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbiBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRv
bWljLCBzZXR0ZXI9X3NldEVudW1lcmF0aW5nQWxsTmV0d29ya0ludGVyZmFjZXNFbmFibGVkOikg
Qk9PTCBfZW51bWVyYXRpbmdBbGxOZXR3b3JrSW50ZXJmYWNlc0VuYWJsZWQgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0
dGVyPV9zZXRJQ0VDYW5kaWRhdGVGaWx0ZXJpbmdFbmFibGVkOikgQk9PTCBfaWNlQ2FuZGlkYXRl
RmlsdGVyaW5nRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEu
MykpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0V2ViUlRDTGVnYWN5QVBJRW5h
YmxlZDopIEJPT0wgX3dlYlJUQ0xlZ2FjeUFQSUVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMC4xMyksIGlvcygxMS4wKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRJ
bmFjdGl2ZU1lZGlhQ2FwdHVyZVN0ZWFtUmVwcm9tcHRJbnRlcnZhbEluTWludXRlczopIGRvdWJs
ZSBfaW5hY3RpdmVNZWRpYUNhcHR1cmVTdGVhbVJlcHJvbXB0SW50ZXJ2YWxJbk1pbnV0ZXMgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKIAotQHByb3BlcnR5IChu
b25hdG9taWMsIHNldHRlcj1fc2V0SmF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZDopIEJPT0wg
X2phdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAu
MTMpLCBpb3MoMTEuMCkpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0RE9NUGFz
dGVBbGxvd2VkOikgQk9PTCBfZG9tUGFzdGVBbGxvd2VkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KDEwLjEzKSwgaW9zKDExLjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEph
dmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQ6KSBCT09MIF9qYXZhU2NyaXB0Q2FuQWNjZXNzQ2xp
cGJvYXJkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpOworQHByb3Bl
cnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0RE9NUGFzdGVBbGxvd2VkOikgQk9PTCBfZG9tUGFz
dGVBbGxvd2VkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpOwogCi1A
cHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRTaG91bGRBbGxvd1VzZXJJbnN0YWxsZWRG
b250czopIEJPT0wgX3Nob3VsZEFsbG93VXNlckluc3RhbGxlZEZvbnRzIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3N4KDEwLjEzLjQpLCBpb3MoMTEuMykpOworQHByb3BlcnR5IChub25hdG9taWMsIHNl
dHRlcj1fc2V0U2hvdWxkQWxsb3dVc2VySW5zdGFsbGVkRm9udHM6KSBCT09MIF9zaG91bGRBbGxv
d1VzZXJJbnN0YWxsZWRGb250cyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3Mo
MTEuMykpOwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRFZGl0YWJsZUxpbmtC
ZWhhdmlvcjopIF9XS0VkaXRhYmxlTGlua0JlaGF2aW9yIF9lZGl0YWJsZUxpbmtCZWhhdmlvciBX
S19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSwgaW9zKDExLjMpKTsKK0Bwcm9wZXJ0eSAo
bm9uYXRvbWljLCBzZXR0ZXI9X3NldEVkaXRhYmxlTGlua0JlaGF2aW9yOikgX1dLRWRpdGFibGVM
aW5rQmVoYXZpb3IgX2VkaXRhYmxlTGlua0JlaGF2aW9yIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTAuMTMuNCksIGlvcygxMS4zKSk7CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3Nl
dEFWRm91bmRhdGlvbkVuYWJsZWQ6KSBCT09MIF9hdkZvdW5kYXRpb25FbmFibGVkIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDEyLjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWlj
LCBzZXR0ZXI9X3NldEFWRm91bmRhdGlvbkVuYWJsZWQ6KSBCT09MIF9hdkZvdW5kYXRpb25FbmFi
bGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3MoMTIuMCkpOwogCi0rIChOU0Fy
cmF5PF9XS0ludGVybmFsRGVidWdGZWF0dXJlICo+ICopX2ludGVybmFsRGVidWdGZWF0dXJlcyBX
S19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLS0g
KEJPT0wpX2lzRW5hYmxlZEZvckludGVybmFsRGVidWdGZWF0dXJlOihfV0tJbnRlcm5hbERlYnVn
RmVhdHVyZSAqKWZlYXR1cmUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7Ci0tICh2b2lkKV9zZXRFbmFibGVkOihCT09MKXZhbHVlIGZvckludGVy
bmFsRGVidWdGZWF0dXJlOihfV0tJbnRlcm5hbERlYnVnRmVhdHVyZSAqKWZlYXR1cmUgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CisrIChOU0Fy
cmF5PF9XS0ludGVybmFsRGVidWdGZWF0dXJlICo+ICopX2ludGVybmFsRGVidWdGZWF0dXJlcyBX
S19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAo
Qk9PTClfaXNFbmFibGVkRm9ySW50ZXJuYWxEZWJ1Z0ZlYXR1cmU6KF9XS0ludGVybmFsRGVidWdG
ZWF0dXJlICopZmVhdHVyZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3Mo
V0tfSU9TX1RCQSkpOworLSAodm9pZClfc2V0RW5hYmxlZDooQk9PTCl2YWx1ZSBmb3JJbnRlcm5h
bERlYnVnRmVhdHVyZTooX1dLSW50ZXJuYWxEZWJ1Z0ZlYXR1cmUgKilmZWF0dXJlIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKLSsgKE5TQXJy
YXk8X1dLRXhwZXJpbWVudGFsRmVhdHVyZSAqPiAqKV9leHBlcmltZW50YWxGZWF0dXJlcyBXS19B
UElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMiksIGlvcygxMC4wKSk7Ci0tIChCT09MKV9pc0VuYWJs
ZWRGb3JGZWF0dXJlOihfV0tFeHBlcmltZW50YWxGZWF0dXJlICopZmVhdHVyZSBXS19BUElfQVZB
SUxBQkxFKG1hY29zeCgxMC4xMiksIGlvcygxMC4wKSk7Ci0tICh2b2lkKV9zZXRFbmFibGVkOihC
T09MKXZhbHVlIGZvckZlYXR1cmU6KF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUgKilmZWF0dXJlIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsKLS0gKEJPT0wpX2lzRW5h
YmxlZEZvckV4cGVyaW1lbnRhbEZlYXR1cmU6KF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUgKilmZWF0
dXJlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsKLS0gKHZvaWQp
X3NldEVuYWJsZWQ6KEJPT0wpdmFsdWUgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTooX1dLRXhwZXJp
bWVudGFsRmVhdHVyZSAqKWZlYXR1cmUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBp
b3MoMTAuMCkpOworKyAoTlNBcnJheTxfV0tFeHBlcmltZW50YWxGZWF0dXJlICo+ICopX2V4cGVy
aW1lbnRhbEZlYXR1cmVzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkp
OworLSAoQk9PTClfaXNFbmFibGVkRm9yRmVhdHVyZTooX1dLRXhwZXJpbWVudGFsRmVhdHVyZSAq
KWZlYXR1cmUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CistICh2
b2lkKV9zZXRFbmFibGVkOihCT09MKXZhbHVlIGZvckZlYXR1cmU6KF9XS0V4cGVyaW1lbnRhbEZl
YXR1cmUgKilmZWF0dXJlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkp
OworLSAoQk9PTClfaXNFbmFibGVkRm9yRXhwZXJpbWVudGFsRmVhdHVyZTooX1dLRXhwZXJpbWVu
dGFsRmVhdHVyZSAqKWZlYXR1cmUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygx
MC4wKSk7CistICh2b2lkKV9zZXRFbmFibGVkOihCT09MKXZhbHVlIGZvckV4cGVyaW1lbnRhbEZl
YXR1cmU6KF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUgKilmZWF0dXJlIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVy
PV9zZXRTaG91bGRFbmFibGVUZXh0QXV0b3NpemluZ0Jvb3N0OikgQk9PTCBfc2hvdWxkRW5hYmxl
VGV4dEF1dG9zaXppbmdCb29zdCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xNCksIGlvcygx
Mi4wKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRTaG91bGRFbmFibGVUZXh0
QXV0b3NpemluZ0Jvb3N0OikgQk9PTCBfc2hvdWxkRW5hYmxlVGV4dEF1dG9zaXppbmdCb29zdCBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSwgaW9zKDEyLjApKTsKIAotQHByb3BlcnR5IChu
b25hdG9taWMsIGdldHRlcj1faXNTYWZlQnJvd3NpbmdFbmFibGVkLCBzZXR0ZXI9X3NldFNhZmVC
cm93c2luZ0VuYWJsZWQ6KSBCT09MIF9zYWZlQnJvd3NpbmdFbmFibGVkIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25h
dG9taWMsIGdldHRlcj1faXNTYWZlQnJvd3NpbmdFbmFibGVkLCBzZXR0ZXI9X3NldFNhZmVCcm93
c2luZ0VuYWJsZWQ6KSBCT09MIF9zYWZlQnJvd3NpbmdFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKLUBwcm9wZXJ0eSAobm9uYXRv
bWljLCBzZXR0ZXI9X3NldENvbG9yRmlsdGVyRW5hYmxlZDopIEJPT0wgX2NvbG9yRmlsdGVyRW5h
YmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xNCksIGlvcygxMi4wKSk7Ci1AcHJvcGVy
dHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRQdW5jaE91dFdoaXRlQmFja2dyb3VuZHNJbkRhcmtN
b2RlOikgQk9PTCBfcHVuY2hPdXRXaGl0ZUJhY2tncm91bmRzSW5EYXJrTW9kZSBXS19BUElfQVZB
SUxBQkxFKG1hY29zeCgxMC4xNCksIGlvcygxMi4wKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywg
c2V0dGVyPV9zZXRMb3dQb3dlclZpZGVvQXVkaW9CdWZmZXJTaXplRW5hYmxlZDopIEJPT0wgX2xv
d1Bvd2VyVmlkZW9BdWRpb0J1ZmZlclNpemVFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNl
dHRlcj1fc2V0Q29sb3JGaWx0ZXJFbmFibGVkOikgQk9PTCBfY29sb3JGaWx0ZXJFbmFibGVkIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpLCBpb3MoMTIuMCkpOworQHByb3BlcnR5IChub25h
dG9taWMsIHNldHRlcj1fc2V0UHVuY2hPdXRXaGl0ZUJhY2tncm91bmRzSW5EYXJrTW9kZTopIEJP
T0wgX3B1bmNoT3V0V2hpdGVCYWNrZ3JvdW5kc0luRGFya01vZGUgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMC4xNCksIGlvcygxMi4wKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9z
ZXRMb3dQb3dlclZpZGVvQXVkaW9CdWZmZXJTaXplRW5hYmxlZDopIEJPT0wgX2xvd1Bvd2VyVmlk
ZW9BdWRpb0J1ZmZlclNpemVFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RC
QSksIGlvcyhXS19JT1NfVEJBKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRT
aG91bGRJZ25vcmVNZXRhVmlld3BvcnQ6KSBCT09MIF9zaG91bGRJZ25vcmVNZXRhVmlld3BvcnQg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIEBw
cm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFZpZGVvUXVhbGl0eUluY2x1ZGVzRGlzcGxh
eUNvbXBvc2l0aW5nRW5hYmxlZDopIEJPT0wgX3ZpZGVvUXVhbGl0eUluY2x1ZGVzRGlzcGxheUNv
bXBvc2l0aW5nRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3Mo
V0tfSU9TX1RCQSkpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0V2ViQW5pbWF0
aW9uc0NTU0ludGVncmF0aW9uRW5hYmxlZDopIEJPT0wgX3dlYkFuaW1hdGlvbnNDU1NJbnRlZ3Jh
dGlvbkVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTQpLCBpb3MoV0tfSU9TX1RC
QSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0V2ViQW5pbWF0aW9uc0NTU0lu
dGVncmF0aW9uRW5hYmxlZDopIEJPT0wgX3dlYkFuaW1hdGlvbnNDU1NJbnRlZ3JhdGlvbkVuYWJs
ZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcyhXS19JT1NfVEJBKSk7CiBAcHJv
cGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXREZXZpY2VPcmllbnRhdGlvbkV2ZW50RW5hYmxl
ZDopIEJPT0wgX2RldmljZU9yaWVudGF0aW9uRXZlbnRFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21p
Yywgc2V0dGVyPV9zZXROZWVkc1NpdGVTcGVjaWZpY1F1aXJrczopIEJPT0wgX25lZWRzU2l0ZVNw
ZWNpZmljUXVpcmtzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpLCBpb3MoV0tfSU9T
X1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0TmVlZHNTaXRlU3BlY2lm
aWNRdWlya3M6KSBCT09MIF9uZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjEzLjQpLCBpb3MoV0tfSU9TX1RCQSkpOwogQHByb3BlcnR5IChub25hdG9taWMs
IHNldHRlcj1fc2V0SXRwRGVidWdNb2RlRW5hYmxlZDopIEJPT0wgX2l0cERlYnVnTW9kZUVuYWJs
ZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
LUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldE1lZGlhU291cmNlRW5hYmxlZDopIEJP
T0wgX21lZGlhU291cmNlRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSwg
aW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldE1lZGlh
U291cmNlRW5hYmxlZDopIEJPT0wgX21lZGlhU291cmNlRW5hYmxlZCBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjEzLjQpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiAjaWYgIVRBUkdFVF9PU19JUEhP
TkUKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFdlYkdMRW5hYmxlZDopIEJPT0wg
X3dlYkdMRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSk7Ci1AcHJvcGVy
dHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRKYXZhRW5hYmxlZEZvckxvY2FsRmlsZXM6KSBCT09M
IF9qYXZhRW5hYmxlZEZvckxvY2FsRmlsZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMu
NCkpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0Q2FudmFzVXNlc0FjY2VsZXJh
dGVkRHJhd2luZzopIEJPT0wgX2NhbnZhc1VzZXNBY2NlbGVyYXRlZERyYXdpbmcgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goMTAuMTMuNCkpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1f
c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQ6KSBCT09MIF9hY2NlbGVyYXRlZENvbXBv
c2l0aW5nRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSk7Ci1AcHJvcGVy
dHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXREZWZhdWx0VGV4dEVuY29kaW5nTmFtZTopIE5TU3Ry
aW5nICpfZGVmYXVsdFRleHRFbmNvZGluZ05hbWUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAu
MTMuNCkpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0QXV0aG9yQW5kVXNlclN0
eWxlc0VuYWJsZWQ6KSBCT09MIF9hdXRob3JBbmRVc2VyU3R5bGVzRW5hYmxlZCBXS19BUElfQVZB
SUxBQkxFKG1hY29zeCgxMC4xMy40KSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9z
ZXRET01UaW1lcnNUaHJvdHRsaW5nRW5hYmxlZDopIEJPT0wgX2RvbVRpbWVyc1Rocm90dGxpbmdF
bmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpKTsKLUBwcm9wZXJ0eSAobm9u
YXRvbWljLCBzZXR0ZXI9X3NldFdlYkFyY2hpdmVEZWJ1Z01vZGVFbmFibGVkOikgQk9PTCBfd2Vi
QXJjaGl2ZURlYnVnTW9kZUVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCkp
OwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0TG9jYWxGaWxlQ29udGVudFNuaWZm
aW5nRW5hYmxlZDopIEJPT0wgX2xvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCkpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRl
cj1fc2V0VXNlc1BhZ2VDYWNoZTopIEJPT0wgX3VzZXNQYWdlQ2FjaGUgV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goMTAuMTMuNCkpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0UGFn
ZUNhY2hlU3VwcG9ydHNQbHVnaW5zOikgQk9PTCBfcGFnZUNhY2hlU3VwcG9ydHNQbHVnaW5zIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBz
ZXR0ZXI9X3NldFNob3VsZFByaW50QmFja2dyb3VuZHM6KSBCT09MIF9zaG91bGRQcmludEJhY2tn
cm91bmRzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpKTsKLUBwcm9wZXJ0eSAobm9u
YXRvbWljLCBzZXR0ZXI9X3NldFdlYlNlY3VyaXR5RW5hYmxlZDopIEJPT0wgX3dlYlNlY3VyaXR5
RW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSk7Ci1AcHJvcGVydHkgKG5v
bmF0b21pYywgc2V0dGVyPV9zZXRVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHNBbGxvd2VkOikg
Qk9PTCBfdW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzQWxsb3dlZCBXS19BUElfQVZBSUxBQkxF
KG1hY29zeCgxMC4xMy40KSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRTdXBw
cmVzc2VzSW5jcmVtZW50YWxSZW5kZXJpbmc6KSBCT09MIF9zdXBwcmVzc2VzSW5jcmVtZW50YWxS
ZW5kZXJpbmcgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCkpOwotQHByb3BlcnR5IChu
b25hdG9taWMsIHNldHRlcj1fc2V0QXN5bmNocm9ub3VzUGx1Z2luSW5pdGlhbGl6YXRpb25FbmFi
bGVkOikgQk9PTCBfYXN5bmNocm9ub3VzUGx1Z2luSW5pdGlhbGl6YXRpb25FbmFibGVkIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0
ZXI9X3NldEFydGlmaWNpYWxQbHVnaW5Jbml0aWFsaXphdGlvbkRlbGF5RW5hYmxlZDopIEJPT0wg
X2FydGlmaWNpYWxQbHVnaW5Jbml0aWFsaXphdGlvbkRlbGF5RW5hYmxlZCBXS19BUElfQVZBSUxB
QkxFKG1hY29zeCgxMC4xMy40KSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRF
eHBlcmltZW50YWxQbHVnSW5TYW5kYm94UHJvZmlsZXNFbmFibGVkOikgQk9PTCBfZXhwZXJpbWVu
dGFsUGx1Z0luU2FuZGJveFByb2ZpbGVzRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChX
S19NQUNfVEJBKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRDb29raWVFbmFi
bGVkOikgQk9PTCBfY29va2llRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40
KSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRQbHVnSW5TbmFwc2hvdHRpbmdF
bmFibGVkOikgQk9PTCBfcGx1Z0luU25hcHNob3R0aW5nRW5hYmxlZCBXS19BUElfQVZBSUxBQkxF
KG1hY29zeCgxMC4xMy40KSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRTdWJw
aXhlbENTU09NRWxlbWVudE1ldHJpY3NFbmFibGVkOikgQk9PTCBfc3VicGl4ZWxDU1NPTUVsZW1l
bnRNZXRyaWNzRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSk7Ci1AcHJv
cGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRWaWV3R2VzdHVyZURlYnVnZ2luZ0VuYWJsZWQ6
KSBCT09MIF92aWV3R2VzdHVyZURlYnVnZ2luZ0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goMTAuMTMuNCkpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0U3RhbmRhcmRG
b250RmFtaWx5OikgTlNTdHJpbmcgKl9zdGFuZGFyZEZvbnRGYW1pbHkgV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goMTAuMTMuNCkpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0Tm90
aWZpY2F0aW9uc0VuYWJsZWQ6KSBCT09MIF9ub3RpZmljYXRpb25zRW5hYmxlZCBXS19BUElfQVZB
SUxBQkxFKG1hY29zeCgxMC4xMy40KSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9z
ZXRCYWNrc3BhY2VLZXlOYXZpZ2F0aW9uRW5hYmxlZDopIEJPT0wgX2JhY2tzcGFjZUtleU5hdmln
YXRpb25FbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpKTsKLUBwcm9wZXJ0
eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFsbG93c0lubGluZU1lZGlhUGxheWJhY2s6KSBCT09M
IF9hbGxvd3NJbmxpbmVNZWRpYVBsYXliYWNrIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjE0
KSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBcHBsZVBheUVuYWJsZWQ6KSBC
T09MIF9hcHBsZVBheUVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTQpKTsKLUBw
cm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEROU1ByZWZldGNoaW5nRW5hYmxlZDopIEJP
T0wgX2Ruc1ByZWZldGNoaW5nRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xNCkp
OwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0SW5saW5lTWVkaWFQbGF5YmFja1Jl
cXVpcmVzUGxheXNJbmxpbmVBdHRyaWJ1dGU6KSBCT09MIF9pbmxpbmVNZWRpYVBsYXliYWNrUmVx
dWlyZXNQbGF5c0lubGluZUF0dHJpYnV0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xNCkp
OwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0SW52aXNpYmxlTWVkaWFBdXRvcGxh
eU5vdFBlcm1pdHRlZDopIEJPT0wgX2ludmlzaWJsZU1lZGlhQXV0b3BsYXlOb3RQZXJtaXR0ZWQg
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTQpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBz
ZXR0ZXI9X3NldExlZ2FjeUVuY3J5cHRlZE1lZGlhQVBJRW5hYmxlZDopIEJPT0wgX2xlZ2FjeUVu
Y3J5cHRlZE1lZGlhQVBJRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xNCkpOwot
QHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0TWFpbkNvbnRlbnRVc2VyR2VzdHVyZU92
ZXJyaWRlRW5hYmxlZDopIEJPT0wgX21haW5Db250ZW50VXNlckdlc3R1cmVPdmVycmlkZUVuYWJs
ZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTQpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWlj
LCBzZXR0ZXI9X3NldE1lZGlhU3RyZWFtRW5hYmxlZDopIEJPT0wgX21lZGlhU3RyZWFtRW5hYmxl
ZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xNCkpOwotQHByb3BlcnR5IChub25hdG9taWMs
IHNldHRlcj1fc2V0TmVlZHNTdG9yYWdlQWNjZXNzRnJvbUZpbGVVUkxzUXVpcms6KSBCT09MIF9u
ZWVkc1N0b3JhZ2VBY2Nlc3NGcm9tRmlsZVVSTHNRdWlyayBXS19BUElfQVZBSUxBQkxFKG1hY29z
eCgxMC4xNCkpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0UERGUGx1Z2luRW5h
YmxlZDopIEJPT0wgX3BkZlBsdWdpbkVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAu
MTQpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFJlcXVpcmVzVXNlckdlc3R1
cmVGb3JBdWRpb1BsYXliYWNrOikgQk9PTCBfcmVxdWlyZXNVc2VyR2VzdHVyZUZvckF1ZGlvUGxh
eWJhY2sgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTQpKTsKLUBwcm9wZXJ0eSAobm9uYXRv
bWljLCBzZXR0ZXI9X3NldFJlcXVpcmVzVXNlckdlc3R1cmVGb3JWaWRlb1BsYXliYWNrOikgQk9P
TCBfcmVxdWlyZXNVc2VyR2VzdHVyZUZvclZpZGVvUGxheWJhY2sgV0tfQVBJX0FWQUlMQUJMRSht
YWNvc3goMTAuMTQpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFNlcnZpY2VD
b250cm9sc0VuYWJsZWQ6KSBCT09MIF9zZXJ2aWNlQ29udHJvbHNFbmFibGVkIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KDEwLjE0KSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRT
aG93c1Rvb2xUaXBPdmVyVHJ1bmNhdGVkVGV4dDopIEJPT0wgX3Nob3dzVG9vbFRpcE92ZXJUcnVu
Y2F0ZWRUZXh0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjE0KSk7Ci1AcHJvcGVydHkgKG5v
bmF0b21pYywgc2V0dGVyPV9zZXRUZXh0QXJlYXNBcmVSZXNpemFibGU6KSBCT09MIF90ZXh0QXJl
YXNBcmVSZXNpemFibGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTQpKTsKLUBwcm9wZXJ0
eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFVzZUdpYW50VGlsZXM6KSBCT09MIF91c2VHaWFudFRp
bGVzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjE0KSk7Ci1AcHJvcGVydHkgKG5vbmF0b21p
Yywgc2V0dGVyPV9zZXRXYW50c0JhbGFuY2VkU2V0RGVmZXJzTG9hZGluZ0JlaGF2aW9yOikgQk9P
TCBfd2FudHNCYWxhbmNlZFNldERlZmVyc0xvYWRpbmdCZWhhdmlvciBXS19BUElfQVZBSUxBQkxF
KG1hY29zeCgxMC4xNCkpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0V2ViQXVk
aW9FbmFibGVkOikgQk9PTCBfd2ViQXVkaW9FbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KDEwLjE0KSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBZ2dyZXNzaXZlVGls
ZVJldGVudGlvbkVuYWJsZWQ6KSBCT09MIF9hZ2dyZXNzaXZlVGlsZVJldGVudGlvbkVuYWJsZWQg
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTQpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBz
ZXR0ZXI9X3NldFdlYkdMRW5hYmxlZDopIEJPT0wgX3dlYkdMRW5hYmxlZCBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDEwLjEzLjQpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEph
dmFFbmFibGVkRm9yTG9jYWxGaWxlczopIEJPT0wgX2phdmFFbmFibGVkRm9yTG9jYWxGaWxlcyBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBz
ZXR0ZXI9X3NldENhbnZhc1VzZXNBY2NlbGVyYXRlZERyYXdpbmc6KSBCT09MIF9jYW52YXNVc2Vz
QWNjZWxlcmF0ZWREcmF3aW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOworQHBy
b3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJs
ZWQ6KSBCT09MIF9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjEzLjQpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldERlZmF1
bHRUZXh0RW5jb2RpbmdOYW1lOikgTlNTdHJpbmcgKl9kZWZhdWx0VGV4dEVuY29kaW5nTmFtZSBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBz
ZXR0ZXI9X3NldEF1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVkOikgQk9PTCBfYXV0aG9yQW5kVXNl
clN0eWxlc0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CitAcHJvcGVy
dHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRET01UaW1lcnNUaHJvdHRsaW5nRW5hYmxlZDopIEJP
T0wgX2RvbVRpbWVyc1Rocm90dGxpbmdFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAu
MTMuNCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0V2ViQXJjaGl2ZURlYnVn
TW9kZUVuYWJsZWQ6KSBCT09MIF93ZWJBcmNoaXZlRGVidWdNb2RlRW5hYmxlZCBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3Nl
dExvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQ6KSBCT09MIF9sb2NhbEZpbGVDb250ZW50
U25pZmZpbmdFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOworQHByb3Bl
cnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0VXNlc1BhZ2VDYWNoZTopIEJPT0wgX3VzZXNQYWdl
Q2FjaGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CitAcHJvcGVydHkgKG5vbmF0
b21pYywgc2V0dGVyPV9zZXRQYWdlQ2FjaGVTdXBwb3J0c1BsdWdpbnM6KSBCT09MIF9wYWdlQ2Fj
aGVTdXBwb3J0c1BsdWdpbnMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CitAcHJv
cGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRTaG91bGRQcmludEJhY2tncm91bmRzOikgQk9P
TCBfc2hvdWxkUHJpbnRCYWNrZ3JvdW5kcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQp
KTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFdlYlNlY3VyaXR5RW5hYmxlZDop
IEJPT0wgX3dlYlNlY3VyaXR5RW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQp
KTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFVuaXZlcnNhbEFjY2Vzc0Zyb21G
aWxlVVJMc0FsbG93ZWQ6KSBCT09MIF91bml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHNBbGxvd2Vk
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOworQHByb3BlcnR5IChub25hdG9taWMs
IHNldHRlcj1fc2V0U3VwcHJlc3Nlc0luY3JlbWVudGFsUmVuZGVyaW5nOikgQk9PTCBfc3VwcHJl
c3Nlc0luY3JlbWVudGFsUmVuZGVyaW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkp
OworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0QXN5bmNocm9ub3VzUGx1Z2luSW5p
dGlhbGl6YXRpb25FbmFibGVkOikgQk9PTCBfYXN5bmNocm9ub3VzUGx1Z2luSW5pdGlhbGl6YXRp
b25FbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOworQHByb3BlcnR5IChu
b25hdG9taWMsIHNldHRlcj1fc2V0QXJ0aWZpY2lhbFBsdWdpbkluaXRpYWxpemF0aW9uRGVsYXlF
bmFibGVkOikgQk9PTCBfYXJ0aWZpY2lhbFBsdWdpbkluaXRpYWxpemF0aW9uRGVsYXlFbmFibGVk
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOworQHByb3BlcnR5IChub25hdG9taWMs
IHNldHRlcj1fc2V0RXhwZXJpbWVudGFsUGx1Z0luU2FuZGJveFByb2ZpbGVzRW5hYmxlZDopIEJP
T0wgX2V4cGVyaW1lbnRhbFBsdWdJblNhbmRib3hQcm9maWxlc0VuYWJsZWQgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcyhXS19NQUNfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9z
ZXRDb29raWVFbmFibGVkOikgQk9PTCBfY29va2llRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDEwLjEzLjQpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFBsdWdJblNu
YXBzaG90dGluZ0VuYWJsZWQ6KSBCT09MIF9wbHVnSW5TbmFwc2hvdHRpbmdFbmFibGVkIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRl
cj1fc2V0U3VicGl4ZWxDU1NPTUVsZW1lbnRNZXRyaWNzRW5hYmxlZDopIEJPT0wgX3N1YnBpeGVs
Q1NTT01FbGVtZW50TWV0cmljc0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40
KSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRWaWV3R2VzdHVyZURlYnVnZ2lu
Z0VuYWJsZWQ6KSBCT09MIF92aWV3R2VzdHVyZURlYnVnZ2luZ0VuYWJsZWQgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xMy40KSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRT
dGFuZGFyZEZvbnRGYW1pbHk6KSBOU1N0cmluZyAqX3N0YW5kYXJkRm9udEZhbWlseSBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9
X3NldE5vdGlmaWNhdGlvbnNFbmFibGVkOikgQk9PTCBfbm90aWZpY2F0aW9uc0VuYWJsZWQgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0
dGVyPV9zZXRCYWNrc3BhY2VLZXlOYXZpZ2F0aW9uRW5hYmxlZDopIEJPT0wgX2JhY2tzcGFjZUtl
eU5hdmlnYXRpb25FbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOworQHBy
b3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0QWxsb3dzSW5saW5lTWVkaWFQbGF5YmFjazop
IEJPT0wgX2FsbG93c0lubGluZU1lZGlhUGxheWJhY2sgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygx
MC4xNCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0QXBwbGVQYXlFbmFibGVk
OikgQk9PTCBfYXBwbGVQYXlFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpKTsK
K0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEROU1ByZWZldGNoaW5nRW5hYmxlZDop
IEJPT0wgX2Ruc1ByZWZldGNoaW5nRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0
KSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRJbmxpbmVNZWRpYVBsYXliYWNr
UmVxdWlyZXNQbGF5c0lubGluZUF0dHJpYnV0ZTopIEJPT0wgX2lubGluZU1lZGlhUGxheWJhY2tS
ZXF1aXJlc1BsYXlzSW5saW5lQXR0cmlidXRlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQp
KTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEludmlzaWJsZU1lZGlhQXV0b3Bs
YXlOb3RQZXJtaXR0ZWQ6KSBCT09MIF9pbnZpc2libGVNZWRpYUF1dG9wbGF5Tm90UGVybWl0dGVk
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBz
ZXR0ZXI9X3NldExlZ2FjeUVuY3J5cHRlZE1lZGlhQVBJRW5hYmxlZDopIEJPT0wgX2xlZ2FjeUVu
Y3J5cHRlZE1lZGlhQVBJRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSk7CitA
cHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRNYWluQ29udGVudFVzZXJHZXN0dXJlT3Zl
cnJpZGVFbmFibGVkOikgQk9PTCBfbWFpbkNvbnRlbnRVc2VyR2VzdHVyZU92ZXJyaWRlRW5hYmxl
ZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywg
c2V0dGVyPV9zZXRNZWRpYVN0cmVhbUVuYWJsZWQ6KSBCT09MIF9tZWRpYVN0cmVhbUVuYWJsZWQg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNl
dHRlcj1fc2V0TmVlZHNTdG9yYWdlQWNjZXNzRnJvbUZpbGVVUkxzUXVpcms6KSBCT09MIF9uZWVk
c1N0b3JhZ2VBY2Nlc3NGcm9tRmlsZVVSTHNRdWlyayBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEw
LjE0KSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRQREZQbHVnaW5FbmFibGVk
OikgQk9PTCBfcGRmUGx1Z2luRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSk7
CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRSZXF1aXJlc1VzZXJHZXN0dXJlRm9y
QXVkaW9QbGF5YmFjazopIEJPT0wgX3JlcXVpcmVzVXNlckdlc3R1cmVGb3JBdWRpb1BsYXliYWNr
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBz
ZXR0ZXI9X3NldFJlcXVpcmVzVXNlckdlc3R1cmVGb3JWaWRlb1BsYXliYWNrOikgQk9PTCBfcmVx
dWlyZXNVc2VyR2VzdHVyZUZvclZpZGVvUGxheWJhY2sgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygx
MC4xNCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0U2VydmljZUNvbnRyb2xz
RW5hYmxlZDopIEJPT0wgX3NlcnZpY2VDb250cm9sc0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMC4xNCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0U2hvd3NUb29s
VGlwT3ZlclRydW5jYXRlZFRleHQ6KSBCT09MIF9zaG93c1Rvb2xUaXBPdmVyVHJ1bmNhdGVkVGV4
dCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywg
c2V0dGVyPV9zZXRUZXh0QXJlYXNBcmVSZXNpemFibGU6KSBCT09MIF90ZXh0QXJlYXNBcmVSZXNp
emFibGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCkpOworQHByb3BlcnR5IChub25hdG9t
aWMsIHNldHRlcj1fc2V0VXNlR2lhbnRUaWxlczopIEJPT0wgX3VzZUdpYW50VGlsZXMgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMC4xNCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1f
c2V0V2FudHNCYWxhbmNlZFNldERlZmVyc0xvYWRpbmdCZWhhdmlvcjopIEJPT0wgX3dhbnRzQmFs
YW5jZWRTZXREZWZlcnNMb2FkaW5nQmVoYXZpb3IgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4x
NCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0V2ViQXVkaW9FbmFibGVkOikg
Qk9PTCBfd2ViQXVkaW9FbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpKTsKK0Bw
cm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFnZ3Jlc3NpdmVUaWxlUmV0ZW50aW9uRW5h
YmxlZDopIEJPT0wgX2FnZ3Jlc3NpdmVUaWxlUmV0ZW50aW9uRW5hYmxlZCBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDEwLjE0KSk7CiAjZW5kaWYKIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLmgKaW5kZXggYzVhM2U3YjY5OGYyNDEw
MzYzYzg0NTVmMzQ2M2ZmZDI3NzFmZTE1MC4uM2YwOGViNTA5MDMzMGFiNTEyMzY2OWY4OTQwM2Mw
MzMxMzg3MmYwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLUHJvY2Vzc1Bvb2wuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tQcm9jZXNzUG9vbC5oCkBAIC0zMyw2ICszMyw2IEBACiAgaW1wbGVtZW50YXRpb24tZGVmaW5l
ZCBwcm9jZXNzIGxpbWl0IGlzIHJlYWNoZWQ7IGFmdGVyIHRoYXQsIHdlYiB2aWV3cwogIHdpdGgg
dGhlIHNhbWUgcHJvY2VzcyBwb29sIGVuZCB1cCBzaGFyaW5nIHdlYiBjb250ZW50IHByb2Nlc3Nl
cy4KICAqLwotV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQorV0tf
Q0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIFdLUHJv
Y2Vzc1Bvb2wgOiBOU09iamVjdCA8TlNTZWN1cmVDb2Rpbmc+CiBAZW5kCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZhdGUuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5o
CmluZGV4IDczNGMxMzlhN2M2NTI5ZTJjM2I3ZDJlMGU4NzAzY2VlMDgzYTJkMGEuLjZjYmU0NzI1
NTBlNDU5NDNiYTU3NzczODFlOTRiNTRmZWVlNGRmMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oCkBAIC00
MiwyNiArNDIsMjYgQEAKIAogKyAoV0tQcm9jZXNzUG9vbCAqKV9zaGFyZWRQcm9jZXNzUG9vbDsK
IAotKyAoTlNBcnJheTxXS1Byb2Nlc3NQb29sICo+ICopX2FsbFByb2Nlc3NQb29sc0ZvclRlc3Rp
bmcgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTQpLCBpb3MoMTIuMCkpOworKyAoTlNBcnJh
eTxXS1Byb2Nlc3NQb29sICo+ICopX2FsbFByb2Nlc3NQb29sc0ZvclRlc3RpbmcgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4wKSk7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
LCByZWFkb25seSkgX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uICpfY29uZmlndXJhdGlvbjsK
IAogLSAodm9pZClfc2V0QWxsb3dzU3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlOihOU0FycmF5ICop
Y2VydGlmaWNhdGVDaGFpbiBmb3JIb3N0OihOU1N0cmluZyAqKWhvc3Q7Ci0tICh2b2lkKV9zZXRD
YW5IYW5kbGVIVFRQU1NlcnZlclRydXN0RXZhbHVhdGlvbjooQk9PTCl2YWx1ZSBXS19BUElfQVZB
SUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKKy0gKHZvaWQpX3NldENhbkhhbmRsZUhU
VFBTU2VydmVyVHJ1c3RFdmFsdWF0aW9uOihCT09MKXZhbHVlIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTAuMTEpLCBpb3MoOS4wKSk7CiAtICh2b2lkKV9zZXRDb29raWVBY2NlcHRQb2xpY3k6KE5T
SFRUUENvb2tpZUFjY2VwdFBvbGljeSlwb2xpY3k7CiAKIC0gKGlkKV9vYmplY3RGb3JCdW5kbGVQ
YXJhbWV0ZXI6KE5TU3RyaW5nICopcGFyYW1ldGVyOwogLSAodm9pZClfc2V0T2JqZWN0OihpZCA8
TlNDb3B5aW5nLCBOU1NlY3VyZUNvZGluZz4pb2JqZWN0IGZvckJ1bmRsZVBhcmFtZXRlcjooTlNT
dHJpbmcgKilwYXJhbWV0ZXI7CiAvLyBGSVhNRTogVGhpcyBzaG91bGQgYmUgTlNEaWN0aW9uYXJ5
PE5TU3RyaW5nICosIGlkIDxOU0NvcHlpbmcsIE5TU2VjdXJlQ29kaW5nPj4KLS0gKHZvaWQpX3Nl
dE9iamVjdHNGb3JCdW5kbGVQYXJhbWV0ZXJzV2l0aERpY3Rpb25hcnk6KE5TRGljdGlvbmFyeSAq
KWRpY3Rpb25hcnkgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3MoMTAuMCkpOwor
LSAodm9pZClfc2V0T2JqZWN0c0ZvckJ1bmRsZVBhcmFtZXRlcnNXaXRoRGljdGlvbmFyeTooTlNE
aWN0aW9uYXJ5ICopZGljdGlvbmFyeSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9z
KDEwLjApKTsKIAogI2lmICFUQVJHRVRfT1NfSVBIT05FCi0tICh2b2lkKV9yZXNldFBsdWdpbkxv
YWRDbGllbnRQb2xpY2llczooTlNEaWN0aW9uYXJ5ICopcG9saWNpZXMgV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goMTAuMTMpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgY29weSkg
TlNEaWN0aW9uYXJ5ICpfcGx1Z2luTG9hZENsaWVudFBvbGljaWVzIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3N4KDEwLjEzKSk7CistICh2b2lkKV9yZXNldFBsdWdpbkxvYWRDbGllbnRQb2xpY2llczoo
TlNEaWN0aW9uYXJ5ICopcG9saWNpZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMykpOwor
QHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBjb3B5KSBOU0RpY3Rpb25hcnkgKl9wbHVn
aW5Mb2FkQ2xpZW50UG9saWNpZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMykpOwogI2Vu
ZGlmCiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCB3ZWFrLCBzZXR0ZXI9X3NldERvd25sb2FkRGVs
ZWdhdGU6KSBpZCA8X1dLRG93bmxvYWREZWxlZ2F0ZT4gX2Rvd25sb2FkRGVsZWdhdGU7Ci1AcHJv
cGVydHkgKG5vbmF0b21pYywgd2Vhaywgc2V0dGVyPV9zZXRBdXRvbWF0aW9uRGVsZWdhdGU6KSBp
ZCA8X1dLQXV0b21hdGlvbkRlbGVnYXRlPiBfYXV0b21hdGlvbkRlbGVnYXRlIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCB3
ZWFrLCBzZXR0ZXI9X3NldEF1dG9tYXRpb25EZWxlZ2F0ZTopIGlkIDxfV0tBdXRvbWF0aW9uRGVs
ZWdhdGU+IF9hdXRvbWF0aW9uRGVsZWdhdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiks
IGlvcygxMC4wKSk7CiAKICNpZiBUQVJHRVRfT1NfSVBIT05FCiBAcHJvcGVydHkgKG5vbmF0b21p
Yywgc2V0dGVyPV9zZXRDb3JlTG9jYXRpb25Qcm92aWRlcjopIGlkIDxfV0tHZW9sb2NhdGlvbkNv
cmVMb2NhdGlvblByb3ZpZGVyPiBfY29yZUxvY2F0aW9uUHJvdmlkZXIgV0tfQVBJX0FWQUlMQUJM
RShpb3MoMTEuMCkpOwpAQCAtNzAsNTYgKzcwLDU2IEBACiArIChOU1VSTCAqKV93ZWJzaXRlRGF0
YVVSTEZvckNvbnRhaW5lcldpdGhVUkw6KE5TVVJMICopY29udGFpbmVyVVJMOwogKyAoTlNVUkwg
Kilfd2Vic2l0ZURhdGFVUkxGb3JDb250YWluZXJXaXRoVVJMOihOU1VSTCAqKWNvbnRhaW5lclVS
TCBidW5kbGVJZGVudGlmaWVySWZOb3RJbkNvbnRhaW5lcjooTlNTdHJpbmcgKilidW5kbGVJZGVu
dGlmaWVyOwogCi0tICh2b2lkKV93YXJtSW5pdGlhbFByb2Nlc3MgV0tfQVBJX0FWQUlMQUJMRSht
YWNvc3goMTAuMTIpLCBpb3MoMTAuMCkpOwotLSAodm9pZClfYXV0b21hdGlvbkNhcGFiaWxpdGll
c0RpZENoYW5nZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMiksIGlvcygxMC4wKSk7Ci0t
ICh2b2lkKV9zZXRBdXRvbWF0aW9uU2Vzc2lvbjooX1dLQXV0b21hdGlvblNlc3Npb24gKilhdXRv
bWF0aW9uU2Vzc2lvbiBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMiksIGlvcygxMC4wKSk7
CistICh2b2lkKV93YXJtSW5pdGlhbFByb2Nlc3MgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4x
MiksIGlvcygxMC4wKSk7CistICh2b2lkKV9hdXRvbWF0aW9uQ2FwYWJpbGl0aWVzRGlkQ2hhbmdl
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOworLSAodm9pZClfc2V0
QXV0b21hdGlvblNlc3Npb246KF9XS0F1dG9tYXRpb25TZXNzaW9uICopYXV0b21hdGlvblNlc3Np
b24gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CiAKLS0gKHZvaWQp
X2FkZFN1cHBvcnRlZFBsdWdpbjooTlNTdHJpbmcgKikgZG9tYWluIG5hbWVkOihOU1N0cmluZyAq
KSBuYW1lIHdpdGhNaW1lVHlwZXM6IChOU1NldDxOU1N0cmluZyAqPiAqKSBtaW1lVHlwZXMgd2l0
aEV4dGVuc2lvbnM6IChOU1NldDxOU1N0cmluZyAqPiAqKSBleHRlbnNpb25zIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KDEwLjE0KSwgaW9zKDEyLjApKTsKLS0gKHZvaWQpX2NsZWFyU3VwcG9ydGVk
UGx1Z2lucyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xNCksIGlvcygxMi4wKSk7CistICh2
b2lkKV9hZGRTdXBwb3J0ZWRQbHVnaW46KE5TU3RyaW5nICopIGRvbWFpbiBuYW1lZDooTlNTdHJp
bmcgKikgbmFtZSB3aXRoTWltZVR5cGVzOiAoTlNTZXQ8TlNTdHJpbmcgKj4gKikgbWltZVR5cGVz
IHdpdGhFeHRlbnNpb25zOiAoTlNTZXQ8TlNTdHJpbmcgKj4gKikgZXh0ZW5zaW9ucyBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDEwLjE0KSwgaW9zKDEyLjApKTsKKy0gKHZvaWQpX2NsZWFyU3VwcG9y
dGVkUGx1Z2lucyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSwgaW9zKDEyLjApKTsKIAot
LSAodm9pZClfcmVnaXN0ZXJVUkxTY2hlbWVBc0NhbkRpc3BsYXlPbmx5SWZDYW5SZXF1ZXN0OihO
U1N0cmluZyAqKXNjaGVtZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xNCksIGlvcygxMi4w
KSk7CistICh2b2lkKV9yZWdpc3RlclVSTFNjaGVtZUFzQ2FuRGlzcGxheU9ubHlJZkNhblJlcXVl
c3Q6KE5TU3RyaW5nICopc2NoZW1lIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpLCBpb3Mo
MTIuMCkpOwogCi0tIChfV0tEb3dubG9hZCAqKV9kb3dubG9hZFVSTFJlcXVlc3Q6KE5TVVJMUmVx
dWVzdCAqKXJlcXVlc3Qgb3JpZ2luYXRpbmdXZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IFdL
X0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotLSAo
X1dLRG93bmxvYWQgKilfcmVzdW1lRG93bmxvYWRGcm9tRGF0YTooTlNEYXRhICopcmVzdW1lRGF0
YSBwYXRoOihOU1N0cmluZyAqKXBhdGggb3JpZ2luYXRpbmdXZWJWaWV3OihXS1dlYlZpZXcgKil3
ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RC
QSkpOworLSAoX1dLRG93bmxvYWQgKilfZG93bmxvYWRVUkxSZXF1ZXN0OihOU1VSTFJlcXVlc3Qg
KilyZXF1ZXN0IG9yaWdpbmF0aW5nV2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElf
QVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAoX1dLRG93
bmxvYWQgKilfcmVzdW1lRG93bmxvYWRGcm9tRGF0YTooTlNEYXRhICopcmVzdW1lRGF0YSBwYXRo
OihOU1N0cmluZyAqKXBhdGggb3JpZ2luYXRpbmdXZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAK
IC8vIFRlc3Qgb25seS4gU2hvdWxkIGJlIGNhbGxlZCBvbmx5IHdoaWxlIG5vIHdlYiBjb250ZW50
IHByb2Nlc3NlcyBhcmUgcnVubmluZy4KIC0gKHZvaWQpX3Rlcm1pbmF0ZU5ldHdvcmtQcm9jZXNz
OwotLSAodm9pZClfdGVybWluYXRlU2VydmljZVdvcmtlclByb2Nlc3NlcyBXS19BUElfQVZBSUxB
QkxFKG1hY29zeCgxMC4xNCksIGlvcygxMi4wKSk7Ci0tICh2b2lkKV9kaXNhYmxlU2VydmljZVdv
cmtlclByb2Nlc3NUZXJtaW5hdGlvbkRlbGF5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjE0
KSwgaW9zKDEyLjApKTsKKy0gKHZvaWQpX3Rlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzZXMg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4wKSk7CistICh2b2lkKV9kaXNh
YmxlU2VydmljZVdvcmtlclByb2Nlc3NUZXJtaW5hdGlvbkRlbGF5IFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTAuMTQpLCBpb3MoMTIuMCkpOwogCiAvLyBUZXN0IG9ubHkuCi0tIChwaWRfdClfbmV0
d29ya1Byb2Nlc3NJZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzKSwgaW9z
KDExLjApKTsKKy0gKHBpZF90KV9uZXR3b3JrUHJvY2Vzc0lkZW50aWZpZXIgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSk7CiAKIC8vIFRlc3Qgb25seS4KLS0gKHNpemVf
dClfd2ViUHJvY2Vzc0NvdW50IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzKSwgaW9zKDEx
LjApKTsKLS0gKEJPT0wpX2hhc1ByZXdhcm1lZFdlYlByb2Nlc3MgV0tfQVBJX0FWQUlMQUJMRSht
YWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci0tIChzaXplX3QpX3dlYlByb2Nl
c3NDb3VudElnbm9yaW5nUHJld2FybWVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjE0KSwg
aW9zKDEyLjApKTsKLS0gKHNpemVfdClfd2ViUHJvY2Vzc0NvdW50SWdub3JpbmdQcmV3YXJtZWRB
bmRDYWNoZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1Nf
VEJBKSk7Ci0tIChzaXplX3QpX3BsdWdpblByb2Nlc3NDb3VudCBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeCgxMC4xMy40KSwgaW9zKDExLjMpKTsKLS0gKHNpemVfdClfc2VydmljZVdvcmtlclByb2Nl
c3NDb3VudCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xNCksIGlvcygxMi4wKSk7Ci0tICh2
b2lkKV9zeW5jTmV0d29ya1Byb2Nlc3NDb29raWVzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEw
LjEzKSwgaW9zKDExLjApKTsKLS0gKHZvaWQpX21ha2VOZXh0V2ViUHJvY2Vzc0xhdW5jaEZhaWxG
b3JUZXN0aW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjE0KSwgaW9zKDEyLjApKTsKLS0g
KHZvaWQpX21ha2VOZXh0TmV0d29ya1Byb2Nlc3NMYXVuY2hGYWlsRm9yVGVzdGluZyBXS19BUElf
QVZBSUxBQkxFKG1hY29zeCgxMC4xNCksIGlvcygxMi4wKSk7Ci0tIChOU1VJbnRlZ2VyKV9tYXhp
bXVtU3VzcGVuZGVkUGFnZUNvdW50IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOwotLSAoTlNVSW50ZWdlcilfcHJvY2Vzc0NhY2hlQ2FwYWNpdHkg
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci0t
IChOU1VJbnRlZ2VyKV9wcm9jZXNzQ2FjaGVTaXplIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdL
X01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAoc2l6ZV90KV93ZWJQcm9jZXNzQ291bnQg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSk7CistIChCT09MKV9oYXNQ
cmV3YXJtZWRXZWJQcm9jZXNzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7CistIChzaXplX3QpX3dlYlByb2Nlc3NDb3VudElnbm9yaW5nUHJld2Fy
bWVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpLCBpb3MoMTIuMCkpOworLSAoc2l6ZV90
KV93ZWJQcm9jZXNzQ291bnRJZ25vcmluZ1ByZXdhcm1lZEFuZENhY2hlZCBXS19BUElfQVZBSUxB
QkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAoc2l6ZV90KV9wbHVn
aW5Qcm9jZXNzQ291bnQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMp
KTsKKy0gKHNpemVfdClfc2VydmljZVdvcmtlclByb2Nlc3NDb3VudCBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjE0KSwgaW9zKDEyLjApKTsKKy0gKHZvaWQpX3N5bmNOZXR3b3JrUHJvY2Vzc0Nv
b2tpZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSk7CistICh2b2lk
KV9tYWtlTmV4dFdlYlByb2Nlc3NMYXVuY2hGYWlsRm9yVGVzdGluZyBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjE0KSwgaW9zKDEyLjApKTsKKy0gKHZvaWQpX21ha2VOZXh0TmV0d29ya1Byb2Nl
c3NMYXVuY2hGYWlsRm9yVGVzdGluZyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSwgaW9z
KDEyLjApKTsKKy0gKE5TVUludGVnZXIpX21heGltdW1TdXNwZW5kZWRQYWdlQ291bnQgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKE5TVUlu
dGVnZXIpX3Byb2Nlc3NDYWNoZUNhcGFjaXR5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFD
X1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistIChOU1VJbnRlZ2VyKV9wcm9jZXNzQ2FjaGVTaXpl
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAK
IC8vIFRlc3Qgb25seS4gUmV0dXJucyB3ZWIgcHJvY2Vzc2VzIHJ1bm5pbmcgd2ViIHBhZ2VzIChk
b2VzIG5vdCBpbmNsdWRlIHdlYiBwcm9jZXNzZXMgcnVubmluZyBzZXJ2aWNlIHdvcmtlcnMpCi0t
IChzaXplX3QpX3dlYlBhZ2VDb250ZW50UHJvY2Vzc0NvdW50IFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KDEwLjEzLjQpLCBpb3MoMTEuMykpOworLSAoc2l6ZV90KV93ZWJQYWdlQ29udGVudFByb2Nl
c3NDb3VudCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOwogCiAv
LyBUZXN0IG9ubHkuIFNob3VsZCBiZSBjYWxsZWQgYmVmb3JlIGFueSB3ZWIgY29udGVudCBwcm9j
ZXNzZXMgYXJlIGxhdW5jaGVkLgotKyAodm9pZClfZm9yY2VHYW1lQ29udHJvbGxlckZyYW1ld29y
ayBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7CisrICh2b2lkKV9m
b3JjZUdhbWVDb250cm9sbGVyRnJhbWV3b3JrIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMp
LCBpb3MoMTEuMCkpOwogCi0tICh2b2lkKV9wcmVjb25uZWN0VG9TZXJ2ZXI6KE5TVVJMICopc2Vy
dmVyVVJMIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpLCBpb3MoMTEuMykpOworLSAo
dm9pZClfcHJlY29ubmVjdFRvU2VydmVyOihOU1VSTCAqKXNlcnZlclVSTCBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOwogCiAvLyBUZXN0IG9ubHkuCi0tICh2b2lk
KV9zZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvclNlcnZpY2VXb3JrZXI6KEJPT0wpYWxsb3dz
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpLCBpb3MoMTEuMykpOwotLSAodm9pZClf
cmVnaXN0ZXJVUkxTY2hlbWVTZXJ2aWNlV29ya2Vyc0NhbkhhbmRsZTooTlNTdHJpbmcgKilzY2hl
bWUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCksIGlvcygxMS4zKSk7Ci0tICh2b2lk
KV9nZXRBY3RpdmVQYWdlc09yaWdpbnNJbldlYlByb2Nlc3NGb3JUZXN0aW5nOihwaWRfdClwaWQg
Y29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikoTlNBcnJheTxOU1N0cmluZyAqPiAqKSljb21wbGV0
aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lP
U19UQkEpKTsKLS0gKEJPT0wpX25ldHdvcmtQcm9jZXNzSGFzRW50aXRsZW1lbnRGb3JUZXN0aW5n
OihOU1N0cmluZyAqKWVudGl0bGVtZW50IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19U
QkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotCi1AcHJvcGVydHkgKG5vbmF0b21pYywgZ2V0dGVyPV9p
c0Nvb2tpZVN0b3JhZ2VQYXJ0aXRpb25pbmdFbmFibGVkLCBzZXR0ZXI9X3NldENvb2tpZVN0b3Jh
Z2VQYXJ0aXRpb25pbmdFbmFibGVkOikgQk9PTCBfY29va2llU3RvcmFnZVBhcnRpdGlvbmluZ0Vu
YWJsZWQgV0tfQVBJX0RFUFJFQ0FURUQoIlBhcnRpdGlvbmVkIGNvb2tpZXMgYXJlIG5vIGxvbmdl
ciBzdXBwb3J0ZWQiLCBtYWNvc3goMTAuMTIuMywgV0tfTUFDX1RCQSksIGlvcygxMC4zLCBXS19J
T1NfVEJBKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgZ2V0dGVyPV9pc1N0b3JhZ2VBY2Nlc3NB
UElFbmFibGVkLCBzZXR0ZXI9X3NldFN0b3JhZ2VBY2Nlc3NBUElFbmFibGVkOikgQk9PTCBfc3Rv
cmFnZUFjY2Vzc0FQSUVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCksIGlv
cygxMS4zKSk7Ci0tICh2b2lkKV9zeW50aGVzaXplQXBwSXNCYWNrZ3JvdW5kOihCT09MKWJhY2tn
cm91bmQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7CistICh2b2lkKV9zZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvclNlcnZpY2VXb3JrZXI6
KEJPT0wpYWxsb3dzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7
CistICh2b2lkKV9yZWdpc3RlclVSTFNjaGVtZVNlcnZpY2VXb3JrZXJzQ2FuSGFuZGxlOihOU1N0
cmluZyAqKXNjaGVtZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykp
OworLSAodm9pZClfZ2V0QWN0aXZlUGFnZXNPcmlnaW5zSW5XZWJQcm9jZXNzRm9yVGVzdGluZzoo
cGlkX3QpcGlkIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKE5TQXJyYXk8TlNTdHJpbmcgKj4g
KikpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEpKTsKKy0gKEJPT0wpX25ldHdvcmtQcm9jZXNzSGFzRW50aXRsZW1lbnRG
b3JUZXN0aW5nOihOU1N0cmluZyAqKWVudGl0bGVtZW50IFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
V0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CisKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBn
ZXR0ZXI9X2lzQ29va2llU3RvcmFnZVBhcnRpdGlvbmluZ0VuYWJsZWQsIHNldHRlcj1fc2V0Q29v
a2llU3RvcmFnZVBhcnRpdGlvbmluZ0VuYWJsZWQ6KSBCT09MIF9jb29raWVTdG9yYWdlUGFydGl0
aW9uaW5nRW5hYmxlZCBXS19BUElfREVQUkVDQVRFRCgiUGFydGl0aW9uZWQgY29va2llcyBhcmUg
bm8gbG9uZ2VyIHN1cHBvcnRlZCIsIG1hY29zKDEwLjEyLjMsIFdLX01BQ19UQkEpLCBpb3MoMTAu
MywgV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIGdldHRlcj1faXNTdG9yYWdl
QWNjZXNzQVBJRW5hYmxlZCwgc2V0dGVyPV9zZXRTdG9yYWdlQWNjZXNzQVBJRW5hYmxlZDopIEJP
T0wgX3N0b3JhZ2VBY2Nlc3NBUElFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMu
NCksIGlvcygxMS4zKSk7CistICh2b2lkKV9zeW50aGVzaXplQXBwSXNCYWNrZ3JvdW5kOihCT09M
KWJhY2tncm91bmQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lP
U19UQkEpKTsKIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLU2NyaXB0TWVzc2FnZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLU2NyaXB0TWVzc2FnZS5oCmluZGV4IGIxN2MyZWMxN2JiZGUxYmRlNmYwY2E5NTJkODM2
MTljNjU4YTg0YzcuLjk3YmViNmU4MTM5Y2Q2YTdlYzYyOTUzMTExOGYxNzY4NzY4M2EyM2UgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1NjcmlwdE1lc3Nh
Z2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tTY3JpcHRNZXNz
YWdlLmgKQEAgLTM1LDcgKzM1LDcgQEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIC8qISBBIFdL
U2NyaXB0TWVzc2FnZSBvYmplY3QgY29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgYSBtZXNzYWdl
IHNlbnQgZnJvbQogIGEgd2VicGFnZS4KICAqLwotV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgx
MC4xMCksIGlvcyg4LjApKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDgu
MCkpCiBAaW50ZXJmYWNlIFdLU2NyaXB0TWVzc2FnZSA6IE5TT2JqZWN0CiAKIC8qISBAYWJzdHJh
Y3QgVGhlIGJvZHkgb2YgdGhlIG1lc3NhZ2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tTZWN1cml0eU9yaWdpbi5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLU2VjdXJpdHlPcmlnaW4uaAppbmRleCA3MzgzYTQxMTU4YmM1YjY5
ODNjOWE5MjkwNDY4ZDJjMDdlYzZhYmUzLi5mMzM5YjhhZTk3ZDFjZjE5OGRiMWM0NmJjNjM5OTll
M2RlMWYyM2FiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tTZWN1cml0eU9yaWdpbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1NlY3VyaXR5T3JpZ2luLmgKQEAgLTM0LDcgKzM0LDcgQEAKICAqLwogTlNfQVNTVU1FX05P
Tk5VTExfQkVHSU4KIAotV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjAp
KQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjExKSwgaW9zKDkuMCkpCiBAaW50ZXJmYWNl
IFdLU2VjdXJpdHlPcmlnaW4gOiBOU09iamVjdAogCiAtIChpbnN0YW5jZXR5cGUpaW5pdCBOU19V
TkFWQUlMQUJMRTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1NuYXBzaG90Q29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLU25hcHNob3RDb25maWd1cmF0aW9uLmgKaW5kZXggMmQ3NGZkNWNkNWJjYWY0N2E4
ZDc5Mjc4MGZkZDkwNGU5YjczNzI2OS4uNzk5NWNiOGFhNTgwN2ZkNDAwNjkxZmRlNGM1NjVjZDY0
MjYwMTg5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
U25hcHNob3RDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLU25hcHNob3RDb25maWd1cmF0aW9uLmgKQEAgLTMwLDcgKzMwLDcgQEAKIAogTlNf
QVNTVU1FX05PTk5VTExfQkVHSU4KIAotV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyks
IGlvcygxMS4wKSkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSkK
IEBpbnRlcmZhY2UgV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24gOiBOU09iamVjdCA8TlNDb3B5aW5n
PgogCiAvKiEgQGFic3RyYWN0IFRoZSByZWN0IHRvIHNuYXBzaG90IGluIHZpZXcgY29vcmRpbmF0
ZXMuCkBAIC01MSw3ICs1MSw3IEBAIFdLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTMpLCBp
b3MoMTEuMCkpCiAgd2hpY2ggbWlnaHQgbm90IGluY2x1ZGUgcmVjZW50IGNoYW5nZXMuCiAgQGRp
c2N1c3Npb24gVGhlIGRlZmF1bHQgdmFsdWUgaXMgWUVTLgogICovCi1AcHJvcGVydHkgKG5vbmF0
b21pYykgQk9PTCBhZnRlclNjcmVlblVwZGF0ZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tf
TUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBh
ZnRlclNjcmVlblVwZGF0ZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9z
KFdLX0lPU19UQkEpKTsKIAogQGVuZAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tVSURlbGVnYXRlLmgKaW5kZXggODE1ZTgwMTg4OGU1ZDY2NGQ2NWFlM2NiYWFk
NjY3MmEyNWZkN2RjYi4uZmU5MjkxYjk5NGI2NDI4MzQ3OTM0NDQwYmM3OTk2ZDZmZDQ0ZWM1ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGUu
aApAQCAtNjUsNyArNjUsNyBAQCBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogICBAZGlzY3Vzc2lv
biBZb3VyIGFwcCBzaG91bGQgcmVtb3ZlIHRoZSB3ZWIgdmlldyBmcm9tIHRoZSB2aWV3IGhpZXJh
cmNoeSBhbmQgdXBkYXRlCiAgIHRoZSBVSSBhcyBuZWVkZWQsIHN1Y2ggYXMgYnkgY2xvc2luZyB0
aGUgY29udGFpbmluZyBicm93c2VyIHRhYiBvciB3aW5kb3cuCiAgICovCi0tICh2b2lkKXdlYlZp
ZXdEaWRDbG9zZTooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgx
MC4xMSksIGlvcyg5LjApKTsKKy0gKHZvaWQpd2ViVmlld0RpZENsb3NlOihXS1dlYlZpZXcgKil3
ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTEpLCBpb3MoOS4wKSk7CiAKIC8qISBA
YWJzdHJhY3QgRGlzcGxheXMgYSBKYXZhU2NyaXB0IGFsZXJ0IHBhbmVsLgogIEBwYXJhbSB3ZWJW
aWV3IFRoZSB3ZWIgdmlldyBpbnZva2luZyB0aGUgZGVsZWdhdGUgbWV0aG9kLgpAQCAtMTY0LDcg
KzE2NCw3IEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAKICBJZiB5b3UgZG8gbm90IGltcGxl
bWVudCB0aGlzIG1ldGhvZCwgdGhlIHdlYiB2aWV3IHdpbGwgYmVoYXZlIGFzIGlmIHRoZSB1c2Vy
IHNlbGVjdGVkIHRoZSBDYW5jZWwgYnV0dG9uLgogICovCi0tICh2b2lkKXdlYlZpZXc6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgcnVuT3BlblBhbmVsV2l0aFBhcmFtZXRlcnM6KFdLT3BlblBhbmVsUGFy
YW1ldGVycyAqKXBhcmFtZXRlcnMgaW5pdGlhdGVkQnlGcmFtZTooV0tGcmFtZUluZm8gKilmcmFt
ZSBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNBcnJheTxOU1VSTCAqPiAqIF9OdWxsYWJs
ZSBVUkxzKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMikp
OworLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJ1bk9wZW5QYW5lbFdpdGhQ
YXJhbWV0ZXJzOihXS09wZW5QYW5lbFBhcmFtZXRlcnMgKilwYXJhbWV0ZXJzIGluaXRpYXRlZEJ5
RnJhbWU6KFdLRnJhbWVJbmZvICopZnJhbWUgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5T
QXJyYXk8TlNVUkwgKj4gKiBfTnVsbGFibGUgVVJMcykpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMC4xMikpOwogCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKaW5kZXgg
N2UyNDhlNzk4MjUxODFjYjkxMTI4ZGZhYjQ2ZWQ4OTU4NTcwMTljOS4uNGQ3MGVlMmZmMGYxZDI0
MTJlMzZmYjc4MzE5NDU1NjYzNDM0ODBkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCkBAIC01MCwzMSArNTAs
MzEgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLQXV0b3BsYXlFdmVudCkgewogICAg
IF9XS0F1dG9wbGF5RXZlbnREaWRQbGF5TWVkaWFXaXRoVXNlckdlc3R1cmUsCiAgICAgX1dLQXV0
b3BsYXlFdmVudERpZEF1dG9wbGF5TWVkaWFQYXN0VGhyZXNob2xkV2l0aG91dFVzZXJJbnRlcmZl
cmVuY2UsCiAgICAgX1dLQXV0b3BsYXlFdmVudFVzZXJEaWRJbnRlcmZlcmVXaXRoUGxheWJhY2ss
Ci19IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpKTsKK30gV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMC4xMy40KSk7CiAKIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS1Jlc291
cmNlTGltaXQpIHsKICAgICBfV0tSZXNvdXJjZUxpbWl0TWVtb3J5LAogICAgIF9XS1Jlc291cmNl
TGltaXRDUFUsCi19IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpKTsKK30gV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CiAKIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIs
IF9XS1BsdWdJblVuYXZhaWxhYmlsaXR5UmVhc29uKSB7CiAgICAgX1dLUGx1Z0luVW5hdmFpbGFi
aWxpdHlSZWFzb25QbHVnaW5NaXNzaW5nLAogICAgIF9XS1BsdWdJblVuYXZhaWxhYmlsaXR5UmVh
c29uUGx1Z2luQ3Jhc2hlZCwKICAgICBfV0tQbHVnSW5VbmF2YWlsYWJpbGl0eVJlYXNvbkluc2Vj
dXJlUGx1Z2luVmVyc2lvbgotfSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSk7Cit9
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOwogCiB0eXBlZGVmIE5TX09QVElPTlMo
TlNVSW50ZWdlciwgX1dLQXV0b3BsYXlFdmVudEZsYWdzKSB7CiAgICAgX1dLQXV0b3BsYXlFdmVu
dEZsYWdzTm9uZSA9IDAsCiAgICAgX1dLQXV0b3BsYXlFdmVudEZsYWdzSGFzQXVkaW8gPSAxIDw8
IDAsCiAgICAgX1dLQXV0b3BsYXlFdmVudEZsYWdzUGxheWJhY2tXYXNQcmV2ZW50ZWQgPSAxIDw8
IDEsCiAgICAgX1dLQXV0b3BsYXlFdmVudEZsYWdzTWVkaWFJc01haW5Db250ZW50ID0gMSA8PCAy
LAotfSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSk7Cit9IFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTAuMTMuNCkpOwogI2VuZGlmCiAKIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIs
IF9XS0ZvY3VzRGlyZWN0aW9uKSB7CiAgICAgX1dLRm9jdXNEaXJlY3Rpb25CYWNrd2FyZCwKICAg
ICBfV0tGb2N1c0RpcmVjdGlvbkZvcndhcmQsCi19IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEw
LjEzLjQpLCBpb3MoV0tfSU9TX1RCQSkpOworfSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEz
LjQpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiBAcHJvdG9jb2wgV0tVSURlbGVnYXRlUHJpdmF0ZSA8
V0tVSURlbGVnYXRlPgogCkBAIC05NSwzOSArOTUsMzkgQEAgc3RydWN0IFVJRWRnZUluc2V0czsK
IAogLSAodm9pZClfd2ViVmlld0Nsb3NlOihXS1dlYlZpZXcgKil3ZWJWaWV3OwogLSAodm9pZClf
d2ViVmlld0Z1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZTooV0tXZWJWaWV3ICopd2ViVmlldzsK
LS0gKHZvaWQpX3dlYlZpZXdEaWRFbnRlckZ1bGxzY3JlZW46KFdLV2ViVmlldyAqKXdlYlZpZXcg
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOC4zKSk7Ci0tICh2b2lkKV93ZWJW
aWV3RGlkRXhpdEZ1bGxzY3JlZW46KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goMTAuMTEpLCBpb3MoOC4zKSk7Ci0tICh2b2lkKV93ZWJWaWV3UmVxdWVzdFBvaW50
ZXJMb2NrOihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEy
LjMpKTsKLS0gKHZvaWQpX3dlYlZpZXdEaWRSZXF1ZXN0UG9pbnRlckxvY2s6KFdLV2ViVmlldyAq
KXdlYlZpZXcgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wpKWNvbXBsZXRpb25IYW5k
bGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkp
OwotLSAodm9pZClfd2ViVmlld0RpZFNob3dTYWZlQnJvd3NpbmdXYXJuaW5nOihXS1dlYlZpZXcg
Kil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9T
X1RCQSkpOwotLSAodm9pZClfd2ViVmlld0RpZExvc2VQb2ludGVyTG9jazooV0tXZWJWaWV3ICop
d2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMi4zKSk7Ci0tICh2b2lkKV93ZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGhhc1ZpZGVvSW5QaWN0dXJlSW5QaWN0dXJlRGlkQ2hh
bmdlOihCT09MKWhhc1ZpZGVvSW5QaWN0dXJlSW5QaWN0dXJlIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KDEwLjEzKSwgaW9zKDExLjApKTsKKy0gKHZvaWQpX3dlYlZpZXdEaWRFbnRlckZ1bGxzY3Jl
ZW46KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMSksIGlv
cyg4LjMpKTsKKy0gKHZvaWQpX3dlYlZpZXdEaWRFeGl0RnVsbHNjcmVlbjooV0tXZWJWaWV3ICop
d2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjExKSwgaW9zKDguMykpOworLSAodm9p
ZClfd2ViVmlld1JlcXVlc3RQb2ludGVyTG9jazooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDEwLjEyLjMpKTsKKy0gKHZvaWQpX3dlYlZpZXdEaWRSZXF1ZXN0UG9p
bnRlckxvY2s6KFdLV2ViVmlldyAqKXdlYlZpZXcgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4p
KEJPT0wpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RC
QSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV93ZWJWaWV3RGlkU2hvd1NhZmVCcm93c2lu
Z1dhcm5pbmc6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19N
QUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX3dlYlZpZXdEaWRMb3NlUG9pbnRl
ckxvY2s6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMi4z
KSk7CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGhhc1ZpZGVvSW5QaWN0
dXJlSW5QaWN0dXJlRGlkQ2hhbmdlOihCT09MKWhhc1ZpZGVvSW5QaWN0dXJlSW5QaWN0dXJlIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpOwogCi0tICh2b2lkKV93ZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGltYWdlT3JNZWRpYURvY3VtZW50U2l6ZUNoYW5nZWQ6
KENHU2l6ZSlzaXplIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsK
LS0gKE5TRGljdGlvbmFyeSAqKV9kYXRhRGV0ZWN0aW9uQ29udGV4dEZvcldlYlZpZXc6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3MoMTAuMCkp
OwotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0TWVkaWFDYXB0
dXJlQXV0aG9yaXphdGlvbjooX1dLQ2FwdHVyZURldmljZXMpZGV2aWNlcyBkZWNpc2lvbkhhbmRs
ZXI6KHZvaWQgKF4pKEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotLSAodm9pZClfd2Vi
VmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBpbmNsdWRlU2Vuc2l0aXZlTWVkaWFEZXZpY2VEZXRh
aWxzOih2b2lkICheKShCT09MIGluY2x1ZGVTZW5zaXRpdmVEZXRhaWxzKSlkZWNpc2lvbkhhbmRs
ZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7
Ci0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RVc2VyTWVkaWFB
dXRob3JpemF0aW9uRm9yRGV2aWNlczooX1dLQ2FwdHVyZURldmljZXMpZGV2aWNlcyB1cmw6KE5T
VVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwgZGVjaXNpb25IYW5k
bGVyOih2b2lkICheKShCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxlciBXS19BUElfQVZB
SUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7Ci0tICh2b2lkKV93ZWJWaWV3OihXS1dl
YlZpZXcgKil3ZWJWaWV3IGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDooTlNVUkwgKil1
cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBmcmFtZUlkZW50aWZpZXI6KE5T
VUludGVnZXIpZnJhbWVJZGVudGlmaWVyIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoTlNTdHJp
bmcgKnNhbHQsIEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3N4KDEwLjEyLjMpLCBpb3MoMTAuMykpOwotLSAodm9pZClfd2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyBtZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZTooX1dLTWVkaWFDYXB0dXJl
U3RhdGUpc3RhdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpOwot
LSAoV0tEcmFnRGVzdGluYXRpb25BY3Rpb24pX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcg
ZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uTWFza0ZvckRyYWdnaW5nSW5mbzooaWQpZHJhZ2dpbmdJbmZv
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzKSwgaW9zKDExLjApKTsKLS0gKHZvaWQpX3dl
YlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgY3JlYXRlV2ViVmlld1dpdGhDb25maWd1cmF0aW9u
OihXS1dlYlZpZXdDb25maWd1cmF0aW9uICopY29uZmlndXJhdGlvbiBmb3JOYXZpZ2F0aW9uQWN0
aW9uOihXS05hdmlnYXRpb25BY3Rpb24gKiluYXZpZ2F0aW9uQWN0aW9uIHdpbmRvd0ZlYXR1cmVz
OihXS1dpbmRvd0ZlYXR1cmVzICopd2luZG93RmVhdHVyZXMgY29tcGxldGlvbkhhbmRsZXI6KHZv
aWQgKF4pKFdLV2ViVmlldyAqd2ViVmlldykpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlM
QUJMRShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpOwotLSAodm9pZClfd2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyByZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWU6KFdLRnJh
bWVJbmZvICopZnJhbWUgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MIGFsbG93ZWQpKWRl
Y2lzaW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSwgaW9zKDExLjMp
KTsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgaW1hZ2VPck1lZGlhRG9j
dW1lbnRTaXplQ2hhbmdlZDooQ0dTaXplKXNpemUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4x
MiksIGlvcygxMC4wKSk7CistIChOU0RpY3Rpb25hcnkgKilfZGF0YURldGVjdGlvbkNvbnRleHRG
b3JXZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAu
MTIpLCBpb3MoMTAuMCkpOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBy
ZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlvbjooX1dLQ2FwdHVyZURldmljZXMpZGV2aWNl
cyBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5k
bGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7
CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGluY2x1ZGVTZW5zaXRpdmVN
ZWRpYURldmljZURldGFpbHM6KHZvaWQgKF4pKEJPT0wgaW5jbHVkZVNlbnNpdGl2ZURldGFpbHMp
KWRlY2lzaW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3Mo
V0tfSU9TX1RCQSkpOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1
ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXM6KF9XS0NhcHR1cmVEZXZpY2VzKWRl
dmljZXMgdXJsOihOU1VSTCAqKXVybCBtYWluRnJhbWVVUkw6KE5TVVJMICopbWFpbkZyYW1lVVJM
IGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRs
ZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSk7CistICh2b2lkKV93
ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVS
TDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBmcmFtZUlk
ZW50aWZpZXI6KE5TVUludGVnZXIpZnJhbWVJZGVudGlmaWVyIGRlY2lzaW9uSGFuZGxlcjoodm9p
ZCAoXikoTlNTdHJpbmcgKnNhbHQsIEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIuMyksIGlvcygxMC4zKSk7CistICh2b2lkKV93ZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IG1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlOihfV0tN
ZWRpYUNhcHR1cmVTdGF0ZSlzdGF0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9z
KDExLjApKTsKKy0gKFdLRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uKV93ZWJWaWV3OihXS1dlYlZpZXcg
Kil3ZWJWaWV3IGRyYWdEZXN0aW5hdGlvbkFjdGlvbk1hc2tGb3JEcmFnZ2luZ0luZm86KGlkKWRy
YWdnaW5nSW5mbyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKTsKKy0g
KHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgY3JlYXRlV2ViVmlld1dpdGhDb25m
aWd1cmF0aW9uOihXS1dlYlZpZXdDb25maWd1cmF0aW9uICopY29uZmlndXJhdGlvbiBmb3JOYXZp
Z2F0aW9uQWN0aW9uOihXS05hdmlnYXRpb25BY3Rpb24gKiluYXZpZ2F0aW9uQWN0aW9uIHdpbmRv
d0ZlYXR1cmVzOihXS1dpbmRvd0ZlYXR1cmVzICopd2luZG93RmVhdHVyZXMgY29tcGxldGlvbkhh
bmRsZXI6KHZvaWQgKF4pKFdLV2ViVmlldyAqd2ViVmlldykpY29tcGxldGlvbkhhbmRsZXIgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSk7CistICh2b2lkKV93ZWJWaWV3
OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFt
ZTooV0tGcmFtZUluZm8gKilmcmFtZSBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgYWxs
b3dlZCkpZGVjaXNpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlv
cygxMS4zKSk7CiAKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcnVuQmVm
b3JlVW5sb2FkQ29uZmlybVBhbmVsV2l0aE1lc3NhZ2U6KE5TU3RyaW5nICopbWVzc2FnZSBpbml0
aWF0ZWRCeUZyYW1lOihXS0ZyYW1lSW5mbyAqKWZyYW1lIGNvbXBsZXRpb25IYW5kbGVyOih2b2lk
ICheKShCT09MIHJlc3VsdCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goMTAuMTMpLCBpb3MoMTEuMCkpOwotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2Vi
VmlldyBlZGl0b3JTdGF0ZURpZENoYW5nZTooTlNEaWN0aW9uYXJ5ICopZWRpdG9yU3RhdGUgV0tf
QVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCksIGlvcygxMS4zKSk7CistICh2b2lkKV93ZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbFdpdGhN
ZXNzYWdlOihOU1N0cmluZyAqKW1lc3NhZ2UgaW5pdGlhdGVkQnlGcmFtZTooV0tGcmFtZUluZm8g
KilmcmFtZSBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCByZXN1bHQpKWNvbXBsZXRp
b25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpOworLSAo
dm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBlZGl0b3JTdGF0ZURpZENoYW5nZToo
TlNEaWN0aW9uYXJ5ICopZWRpdG9yU3RhdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40
KSwgaW9zKDExLjMpKTsKIAotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBk
aWRSZW1vdmVBdHRhY2htZW50OihfV0tBdHRhY2htZW50ICopYXR0YWNobWVudCBXS19BUElfQVZB
SUxBQkxFKG1hY29zeCgxMC4xMy40KSwgaW9zKDExLjMpKTsKLS0gKHZvaWQpX3dlYlZpZXc6KFdL
V2ViVmlldyAqKXdlYlZpZXcgZGlkSW5zZXJ0QXR0YWNobWVudDooX1dLQXR0YWNobWVudCAqKWF0
dGFjaG1lbnQgd2l0aFNvdXJjZTooTlNTdHJpbmcgKilzb3VyY2UgV0tfQVBJX0FWQUlMQUJMRSht
YWNvc3goMTAuMTQpLCBpb3MoMTIuMCkpOwotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICop
d2ViVmlldyBkaWRJbnZhbGlkYXRlRGF0YUZvckF0dGFjaG1lbnQ6KF9XS0F0dGFjaG1lbnQgKilh
dHRhY2htZW50IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9T
X1RCQSkpOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWRSZW1vdmVB
dHRhY2htZW50OihfV0tBdHRhY2htZW50ICopYXR0YWNobWVudCBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICop
d2ViVmlldyBkaWRJbnNlcnRBdHRhY2htZW50OihfV0tBdHRhY2htZW50ICopYXR0YWNobWVudCB3
aXRoU291cmNlOihOU1N0cmluZyAqKXNvdXJjZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0
KSwgaW9zKDEyLjApKTsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlk
SW52YWxpZGF0ZURhdGFGb3JBdHRhY2htZW50OihfV0tBdHRhY2htZW50ICopYXR0YWNobWVudCBX
S19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCi0t
ICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZFJlc2lnbklucHV0RWxlbWVu
dFN0cm9uZ1Bhc3N3b3JkQXBwZWFyYW5jZVdpdGhVc2VySW5mbzooaWQgPE5TU2VjdXJlQ29kaW5n
Pil1c2VySW5mbyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xNCksIGlvcygxMi4wKSk7Cist
ICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZFJlc2lnbklucHV0RWxlbWVu
dFN0cm9uZ1Bhc3N3b3JkQXBwZWFyYW5jZVdpdGhVc2VySW5mbzooaWQgPE5TU2VjdXJlQ29kaW5n
Pil1c2VySW5mbyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSwgaW9zKDEyLjApKTsKIAot
LSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0U3RvcmFnZUFjY2Vz
c1BhbmVsRm9yRG9tYWluOihOU1N0cmluZyAqKXJlcXVlc3RpbmdEb21haW4gdW5kZXJDdXJyZW50
RG9tYWluOihOU1N0cmluZyAqKWN1cnJlbnREb21haW4gY29tcGxldGlvbkhhbmRsZXI6KHZvaWQg
KF4pKEJPT0wgcmVzdWx0KSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29z
eCgxMC4xNCksIGlvcygxMi4wKSk7CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJW
aWV3IHJlcXVlc3RTdG9yYWdlQWNjZXNzUGFuZWxGb3JEb21haW46KE5TU3RyaW5nICopcmVxdWVz
dGluZ0RvbWFpbiB1bmRlckN1cnJlbnREb21haW46KE5TU3RyaW5nICopY3VycmVudERvbWFpbiBj
b21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCByZXN1bHQpKWNvbXBsZXRpb25IYW5kbGVy
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpLCBpb3MoMTIuMCkpOwogCi0tICh2b2lkKV93
ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZENoYW5nZUZvbnRBdHRyaWJ1dGVzOihOU0Rp
Y3Rpb25hcnk8TlNTdHJpbmcgKiwgaWQ+ICopZm9udEF0dHJpYnV0ZXMgV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV93ZWJWaWV3
OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZENoYW5nZUZvbnRBdHRyaWJ1dGVzOihOU0RpY3Rpb25h
cnk8TlNTdHJpbmcgKiwgaWQ+ICopZm9udEF0dHJpYnV0ZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAotLSAodm9pZClfd2ViVmlldzooV0tX
ZWJWaWV3ICopd2ViVmlldyB0YWtlRm9jdXM6KF9XS0ZvY3VzRGlyZWN0aW9uKWRpcmVjdGlvbiBX
S19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZv
aWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgdGFrZUZvY3VzOihfV0tGb2N1c0RpcmVj
dGlvbilkaXJlY3Rpb24gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKFdLX0lP
U19UQkEpKTsKIAogI2lmIFRBUkdFVF9PU19JUEhPTkUKIC0gKEJPT0wpX3dlYlZpZXc6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgc2hvdWxkSW5jbHVkZUFwcExpbmtBY3Rpb25zRm9yRWxlbWVudDooX1dL
QWN0aXZhdGVkRWxlbWVudEluZm8gKillbGVtZW50IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDkuMCkp
OwpAQCAtMTgxLDM0ICsxODEsMzQgQEAgc3RydWN0IFVJRWRnZUluc2V0czsKIC0gKHZvaWQpX3dl
YlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgc2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFu
ZE1vdGlvbkFjY2Vzc1JlcXVlc3RlZEJ5RnJhbWU6KFdLRnJhbWVJbmZvICopcmVxdWVzdGluZ0Zy
YW1lIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCkpZGVjaXNpb25IYW5kbGVyIFdLX0FQ
SV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKIAogI2Vsc2UgLy8gVEFSR0VUX09TX0lQSE9O
RQotLSAodm9pZClfcHJlcGFyZUZvckltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkZvcldlYlZpZXc6
KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCkpOwot
LSAodm9pZClfY2FuY2VsSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uRm9yV2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSk7Ci0tICh2b2lk
KV9jb21wbGV0ZUltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkZvcldlYlZpZXc6KFdLV2ViVmlldyAq
KXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCkpOwotLSAodm9pZClfc2hv
d1dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAu
MTMuNCkpOwotLSAodm9pZClfZm9jdXNXZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpKTsKLS0gKHZvaWQpX3VuZm9jdXNXZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpKTsKLS0g
KHZvaWQpX3dlYlZpZXdEaWRTY3JvbGw6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlM
QUJMRShtYWNvc3goMTAuMTMuNCkpOwotLSAodm9pZClfd2ViVmlld1J1bk1vZGFsOihXS1dlYlZp
ZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpKTsKLS0gKHZvaWQp
X3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkTm90SGFuZGxlV2hlZWxFdmVudDooTlNF
dmVudCAqKWV2ZW50IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpKTsKLS0gKHZvaWQp
X3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgaGFuZGxlQXV0b3BsYXlFdmVudDooX1dLQXV0
b3BsYXlFdmVudClldmVudCB3aXRoRmxhZ3M6KF9XS0F1dG9wbGF5RXZlbnRGbGFncylmbGFncyBX
S19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSk7Ci0tICh2b2lkKV93ZWJWaWV3OihXS1dl
YlZpZXcgKil3ZWJWaWV3IGRpZENsaWNrQXV0b0ZpbGxCdXR0b25XaXRoVXNlckluZm86KGlkIDxO
U1NlY3VyZUNvZGluZz4pdXNlckluZm8gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCkp
OwotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBnZXRUb29sYmFyc0FyZVZp
c2libGVXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikoQk9PTCkpY29tcGxldGlvbkhhbmRs
ZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCkpOwotLSAodm9pZClfd2ViVmlldzoo
V0tXZWJWaWV3ICopd2ViVmlldyBzYXZlRGF0YVRvRmlsZTooTlNEYXRhICopZGF0YSBzdWdnZXN0
ZWRGaWxlbmFtZTooTlNTdHJpbmcgKilzdWdnZXN0ZWRGaWxlbmFtZSBtaW1lVHlwZTooTlNTdHJp
bmcgKiltaW1lVHlwZSBvcmlnaW5hdGluZ1VSTDooTlNVUkwgKil1cmwgV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goMTAuMTMuNCkpOwotLSAoQ0dGbG9hdClfd2ViVmlld0hlYWRlckhlaWdodDooV0tX
ZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSk7Ci0tIChD
R0Zsb2F0KV93ZWJWaWV3Rm9vdGVySGVpZ2h0OihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9B
VkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpKTsKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAq
KXdlYlZpZXcgZHJhd0hlYWRlckluUmVjdDooQ0dSZWN0KXJlY3QgZm9yUGFnZVdpdGhUaXRsZToo
TlNTdHJpbmcgKil0aXRsZSBVUkw6KE5TVVJMICopdXJsIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KDEwLjEzLjQpKTsKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZHJhd0Zv
b3RlckluUmVjdDooQ0dSZWN0KXJlY3QgZm9yUGFnZVdpdGhUaXRsZTooTlNTdHJpbmcgKil0aXRs
ZSBVUkw6KE5TVVJMICopdXJsIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpKTsKLS0g
KHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdE5vdGlmaWNhdGlvblBl
cm1pc3Npb25Gb3JTZWN1cml0eU9yaWdpbjooV0tTZWN1cml0eU9yaWdpbiAqKXNlY3VyaXR5T3Jp
Z2luIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCkpZGVjaXNpb25IYW5kbGVyIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpKTsKKy0gKHZvaWQpX3ByZXBhcmVGb3JJbW1lZGlh
dGVBY3Rpb25BbmltYXRpb25Gb3JXZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOworLSAodm9pZClfY2FuY2VsSW1tZWRpYXRlQWN0aW9u
QW5pbWF0aW9uRm9yV2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjEzLjQpKTsKKy0gKHZvaWQpX2NvbXBsZXRlSW1tZWRpYXRlQWN0aW9uQW5pbWF0
aW9uRm9yV2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29z
KDEwLjEzLjQpKTsKKy0gKHZvaWQpX3Nob3dXZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOworLSAodm9pZClfZm9jdXNXZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOworLSAo
dm9pZClfdW5mb2N1c1dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMC4xMy40KSk7CistICh2b2lkKV93ZWJWaWV3RGlkU2Nyb2xsOihXS1dlYlZpZXcg
Kil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOworLSAodm9pZClfd2Vi
Vmlld1J1bk1vZGFsOihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTAuMTMuNCkpOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWROb3RI
YW5kbGVXaGVlbEV2ZW50OihOU0V2ZW50ICopZXZlbnQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygx
MC4xMy40KSk7CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGhhbmRsZUF1
dG9wbGF5RXZlbnQ6KF9XS0F1dG9wbGF5RXZlbnQpZXZlbnQgd2l0aEZsYWdzOihfV0tBdXRvcGxh
eUV2ZW50RmxhZ3MpZmxhZ3MgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CistICh2
b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZENsaWNrQXV0b0ZpbGxCdXR0b25X
aXRoVXNlckluZm86KGlkIDxOU1NlY3VyZUNvZGluZz4pdXNlckluZm8gV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMC4xMy40KSk7CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IGdldFRvb2xiYXJzQXJlVmlzaWJsZVdpdGhDb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKShCT09M
KSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKKy0g
KHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgc2F2ZURhdGFUb0ZpbGU6KE5TRGF0
YSAqKWRhdGEgc3VnZ2VzdGVkRmlsZW5hbWU6KE5TU3RyaW5nICopc3VnZ2VzdGVkRmlsZW5hbWUg
bWltZVR5cGU6KE5TU3RyaW5nICopbWltZVR5cGUgb3JpZ2luYXRpbmdVUkw6KE5TVVJMICopdXJs
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOworLSAoQ0dGbG9hdClfd2ViVmlld0hl
YWRlckhlaWdodDooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEw
LjEzLjQpKTsKKy0gKENHRmxvYXQpX3dlYlZpZXdGb290ZXJIZWlnaHQ6KFdLV2ViVmlldyAqKXdl
YlZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CistICh2b2lkKV93ZWJWaWV3
OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRyYXdIZWFkZXJJblJlY3Q6KENHUmVjdClyZWN0IGZvclBh
Z2VXaXRoVGl0bGU6KE5TU3RyaW5nICopdGl0bGUgVVJMOihOU1VSTCAqKXVybCBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdl
YlZpZXcgZHJhd0Zvb3RlckluUmVjdDooQ0dSZWN0KXJlY3QgZm9yUGFnZVdpdGhUaXRsZTooTlNT
dHJpbmcgKil0aXRsZSBVUkw6KE5TVVJMICopdXJsIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAu
MTMuNCkpOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0Tm90
aWZpY2F0aW9uUGVybWlzc2lvbkZvclNlY3VyaXR5T3JpZ2luOihXS1NlY3VyaXR5T3JpZ2luICop
c2VjdXJpdHlPcmlnaW4gZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MKSlkZWNpc2lvbkhh
bmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CiAtICh2b2lkKV93ZWJWaWV3
OihXS1dlYlZpZXcgKil3ZWJ2aWV3IG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50OihfV0tIaXRUZXN0
UmVzdWx0ICopaGl0VGVzdFJlc3VsdCB3aXRoRmxhZ3M6KE5TRXZlbnRNb2RpZmllckZsYWdzKWZs
YWdzIHVzZXJJbmZvOihpZCA8TlNTZWN1cmVDb2Rpbmc+KXVzZXJJbmZvOwotLSAodm9pZClfd2Vi
VmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWRFeGNlZWRCYWNrZ3JvdW5kUmVzb3VyY2VMaW1p
dFdoaWxlSW5Gb3JlZ3JvdW5kOihfV0tSZXNvdXJjZUxpbWl0KWxpbWl0IFdLX0FQSV9BVkFJTEFC
TEUobWFjb3N4KDEwLjEzLjQpKTsKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZp
ZXcgc2V0UmVzaXphYmxlOihCT09MKWlzUmVzaXphYmxlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KDEwLjEzLjQpKTsKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZ2V0V2lu
ZG93RnJhbWVXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKENHUmVjdCkpY29tcGxldGlv
bkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCkpOwotLSAodm9pZClfd2Vi
VmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBzZXRXaW5kb3dGcmFtZTooQ0dSZWN0KWZyYW1lIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpKTsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgZGlkRXhjZWVkQmFja2dyb3VuZFJlc291cmNlTGltaXRXaGlsZUluRm9y
ZWdyb3VuZDooX1dLUmVzb3VyY2VMaW1pdClsaW1pdCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEw
LjEzLjQpKTsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgc2V0UmVzaXph
YmxlOihCT09MKWlzUmVzaXphYmxlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOwor
LSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBnZXRXaW5kb3dGcmFtZVdpdGhD
b21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoQ0dSZWN0KSljb21wbGV0aW9uSGFuZGxlciBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmll
dyAqKXdlYlZpZXcgc2V0V2luZG93RnJhbWU6KENHUmVjdClmcmFtZSBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjEzLjQpKTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcg
dW5hdmFpbGFibGVQbHVnSW5CdXR0b25DbGlja2VkV2l0aFJlYXNvbjooX1dLUGx1Z0luVW5hdmFp
bGFiaWxpdHlSZWFzb24pcmVhc29uIHBsdWdJbkluZm86KE5TRGljdGlvbmFyeSAqKXBsdWdJbklu
Zm87Ci0tIChOU01lbnUgKilfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjb250ZXh0TWVu
dTooTlNNZW51ICopbWVudSBmb3JFbGVtZW50OihfV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvICop
ZWxlbWVudCBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJfd2ViVmlldzpnZXRD
b250ZXh0TWVudUZyb21Qcm9wb3NlZE1lbnU6Zm9yRWxlbWVudDp1c2VySW5mbzpjb21wbGV0aW9u
SGFuZGxlcjoiLCBtYWNvc3goMTAuMTIsIFdLX01BQ19UQkEpKTsKLS0gKE5TTWVudSAqKV93ZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNvbnRleHRNZW51OihOU01lbnUgKiltZW51IGZvckVs
ZW1lbnQ6KF9XS0NvbnRleHRNZW51RWxlbWVudEluZm8gKillbGVtZW50IHVzZXJJbmZvOihpZCA8
TlNTZWN1cmVDb2Rpbmc+KXVzZXJJbmZvIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1F
TlQoIl93ZWJWaWV3OmdldENvbnRleHRNZW51RnJvbVByb3Bvc2VkTWVudTpmb3JFbGVtZW50OnVz
ZXJJbmZvOmNvbXBsZXRpb25IYW5kbGVyOiIsIG1hY29zeCgxMC4xMiwgV0tfTUFDX1RCQSkpOwot
LSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBnZXRDb250ZXh0TWVudUZyb21Q
cm9wb3NlZE1lbnU6KE5TTWVudSAqKW1lbnUgZm9yRWxlbWVudDooX1dLQ29udGV4dE1lbnVFbGVt
ZW50SW5mbyAqKWVsZW1lbnQgdXNlckluZm86KGlkIDxOU1NlY3VyZUNvZGluZz4pdXNlckluZm8g
Y29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TTWVudSAqKSljb21wbGV0aW9uSGFuZGxlciBX
S19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xNCkpOwotLSAodm9pZClfd2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyBkaWRQZXJmb3JtRHJhZ09wZXJhdGlvbjooQk9PTCloYW5kbGVkIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsKKy0gKE5TTWVudSAqKV93ZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IGNvbnRleHRNZW51OihOU01lbnUgKiltZW51IGZvckVsZW1lbnQ6
KF9XS0NvbnRleHRNZW51RWxlbWVudEluZm8gKillbGVtZW50IFdLX0FQSV9ERVBSRUNBVEVEX1dJ
VEhfUkVQTEFDRU1FTlQoIl93ZWJWaWV3OmdldENvbnRleHRNZW51RnJvbVByb3Bvc2VkTWVudTpm
b3JFbGVtZW50OnVzZXJJbmZvOmNvbXBsZXRpb25IYW5kbGVyOiIsIG1hY29zKDEwLjEyLCBXS19N
QUNfVEJBKSk7CistIChOU01lbnUgKilfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjb250
ZXh0TWVudTooTlNNZW51ICopbWVudSBmb3JFbGVtZW50OihfV0tDb250ZXh0TWVudUVsZW1lbnRJ
bmZvICopZWxlbWVudCB1c2VySW5mbzooaWQgPE5TU2VjdXJlQ29kaW5nPil1c2VySW5mbyBXS19B
UElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJfd2ViVmlldzpnZXRDb250ZXh0TWVudUZy
b21Qcm9wb3NlZE1lbnU6Zm9yRWxlbWVudDp1c2VySW5mbzpjb21wbGV0aW9uSGFuZGxlcjoiLCBt
YWNvcygxMC4xMiwgV0tfTUFDX1RCQSkpOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICop
d2ViVmlldyBnZXRDb250ZXh0TWVudUZyb21Qcm9wb3NlZE1lbnU6KE5TTWVudSAqKW1lbnUgZm9y
RWxlbWVudDooX1dLQ29udGV4dE1lbnVFbGVtZW50SW5mbyAqKWVsZW1lbnQgdXNlckluZm86KGlk
IDxOU1NlY3VyZUNvZGluZz4pdXNlckluZm8gY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5T
TWVudSAqKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSk7
CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZFBlcmZvcm1EcmFnT3Bl
cmF0aW9uOihCT09MKWhhbmRsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSk7
CiAjZW5kaWYgLy8gVEFSR0VUX09TX0lQSE9ORQogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVUkxTY2hlbWVIYW5kbGVyLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVUkxTY2hlbWVIYW5kbGVyLmgKaW5kZXggYmNj
MzNmMzIzMTM2OWEzMWI3YWJkMzRkYmVhZTlmNzBlYjc3ZTM2Mi4uODg2YTMwNmZjMGUxN2RhZjg1
YzdlYTkzZGVjOTk4NzQyYTNkNDA5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLVVJMU2NoZW1lSGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1VSTFNjaGVtZUhhbmRsZXIuaApAQCAtMzUsNyArMzUsNyBAQCBO
U19BU1NVTUVfTk9OTlVMTF9CRUdJTgogLyohIEEgY2xhc3MgY29uZm9ybWluZyB0byB0aGUgV0tV
UkxTY2hlbWVIYW5kbGVyIHByb3RvY29sIHByb3ZpZGVzIG1ldGhvZHMgZm9yCiAgbG9hZGluZyBy
ZXNvdXJjZXMgd2l0aCBVUkwgc2NoZW1lcyB0aGF0IFdlYktpdCBkb2Vzbid0IGtub3cgaG93IHRv
IGhhbmRsZSBpdHNlbGYuCiAgKi8KLVdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzKSwgaW9z
KDExLjApKQorV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSkKIEBwcm90
b2NvbCBXS1VSTFNjaGVtZUhhbmRsZXIgPE5TT2JqZWN0PgogCiAvKiEgQGFic3RyYWN0IE5vdGlm
aWVzIHlvdXIgYXBwIHRvIHN0YXJ0IGxvYWRpbmcgdGhlIGRhdGEgZm9yIGEgcGFydGljdWxhciBy
ZXNvdXJjZSAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1VSTFNjaGVtZVRhc2suaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VS
TFNjaGVtZVRhc2suaAppbmRleCBhZTI2ZDk2ZDQxNzBhZjExNDM3NjcyMWMyMGIwYmFjOTNjY2M2
N2MyLi40OGE0MDc2N2VmODNiZjkzYTY5OTNiOGIzMjY4MTAwNDhhMzc1ODc2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVUkxTY2hlbWVUYXNrLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVVJMU2NoZW1lVGFzay5oCkBA
IC0yOSw3ICsyOSw3IEBACiAKIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAKLVdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KDEwLjEzKSwgaW9zKDExLjApKQorV0tfQVBJX0FWQUlMQUJMRShtYWNvcygx
MC4xMyksIGlvcygxMS4wKSkKIEBwcm90b2NvbCBXS1VSTFNjaGVtZVRhc2sgPE5TT2JqZWN0Pgog
CiAvKiEgQGFic3RyYWN0IFRoZSByZXF1ZXN0IHRvIGxvYWQgZm9yIHRoaXMgdGFzay4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VSTFNjaGVtZVRhc2tQ
cml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVUkxTY2hlbWVU
YXNrUHJpdmF0ZS5oCmluZGV4IGU3YWE2MjFkZmNkMzZkZmU4ZDg5MGViYzQ0NTYzZGVhOWI2MTVj
ZGYuLjYyNDE5NzVlM2M3YmQ4ODE5NzczYjlhNjQ0NWVjZjdiMDVjNmYzMWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VSTFNjaGVtZVRhc2tQcml2YXRl
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVVJMU2NoZW1lVGFz
a1ByaXZhdGUuaApAQCAtMjUsNyArMjUsNyBAQAogCiAjaW1wb3J0IDxXZWJLaXQvV0tVUkxTY2hl
bWVUYXNrLmg+CiAKLVdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzKSwgaW9zKDExLjApKQor
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSkKIEBwcm90b2NvbCBXS1VS
TFNjaGVtZVRhc2tQcml2YXRlIDxXS1VSTFNjaGVtZVRhc2s+CiAKIC0gKHZvaWQpX2RpZFBlcmZv
cm1SZWRpcmVjdGlvbjooTlNVUkxSZXNwb25zZSAqKXJlc3BvbnNlIG5ld1JlcXVlc3Q6KE5TVVJM
UmVxdWVzdCAqKXJlcXVlc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tVc2VyQ29udGVudENvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1VzZXJDb250ZW50Q29udHJvbGxlci5oCmluZGV4IGFiOWViMjZiY2Ey
ODA3MzEzMDY2N2UwMGY3OWUwYWZlZDQ2NzdlOWMuLjgyOWEwNTczMzdkZGQ0NjFjNDZiMzFjMDMz
N2I1ZjliY2Q1OTY3YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1VzZXJDb250ZW50Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1VzZXJDb250ZW50Q29udHJvbGxlci5oCkBAIC0zOCw3ICszOCw3IEBA
IE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAgVGhlIHVzZXIgY29udGVudCBjb250cm9sbGVyIGFz
c29jaWF0ZWQgd2l0aCBhIHdlYiB2aWV3IGlzIHNwZWNpZmllZCBieSBpdHMKICB3ZWIgdmlldyBj
b25maWd1cmF0aW9uLgogICovCi1XS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9z
KDguMCkpCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4wKSkKIEBpbnRl
cmZhY2UgV0tVc2VyQ29udGVudENvbnRyb2xsZXIgOiBOU09iamVjdCA8TlNTZWN1cmVDb2Rpbmc+
CiAKIC8qISBAYWJzdHJhY3QgVGhlIHVzZXIgc2NyaXB0cyBhc3NvY2lhdGVkIHdpdGggdGhpcyB1
c2VyIGNvbnRlbnQKQEAgLTcyLDE2ICs3MiwxNiBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4
KDEwLjEwKSwgaW9zKDguMCkpCiAvKiEgQGFic3RyYWN0IEFkZHMgYSBjb250ZW50IHJ1bGUgbGlz
dC4KICBAcGFyYW0gY29udGVudFJ1bGVMaXN0IFRoZSBjb250ZW50IHJ1bGUgbGlzdCB0byBhZGQu
CiAgKi8KLS0gKHZvaWQpYWRkQ29udGVudFJ1bGVMaXN0OihXS0NvbnRlbnRSdWxlTGlzdCAqKWNv
bnRlbnRSdWxlTGlzdCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7
CistICh2b2lkKWFkZENvbnRlbnRSdWxlTGlzdDooV0tDb250ZW50UnVsZUxpc3QgKiljb250ZW50
UnVsZUxpc3QgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSk7CiAKIC8q
ISBAYWJzdHJhY3QgUmVtb3ZlcyBhIGNvbnRlbnQgcnVsZSBsaXN0LgogIEBwYXJhbSBjb250ZW50
UnVsZUxpc3QgVGhlIGNvbnRlbnQgcnVsZSBsaXN0IHRvIHJlbW92ZS4KICAqLwotLSAodm9pZCly
ZW1vdmVDb250ZW50UnVsZUxpc3Q6KFdLQ29udGVudFJ1bGVMaXN0ICopY29udGVudFJ1bGVMaXN0
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzKSwgaW9zKDExLjApKTsKKy0gKHZvaWQpcmVt
b3ZlQ29udGVudFJ1bGVMaXN0OihXS0NvbnRlbnRSdWxlTGlzdCAqKWNvbnRlbnRSdWxlTGlzdCBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKTsKIAogLyohIEBhYnN0cmFj
dCBSZW1vdmVzIGFsbCBhc3NvY2lhdGVkIGNvbnRlbnQgcnVsZSBsaXN0cy4KICAqLwotLSAodm9p
ZClyZW1vdmVBbGxDb250ZW50UnVsZUxpc3RzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEz
KSwgaW9zKDExLjApKTsKKy0gKHZvaWQpcmVtb3ZlQWxsQ29udGVudFJ1bGVMaXN0cyBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKTsKIAogQGVuZAogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2VyQ29udGVudENvbnRyb2xs
ZXJQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2VyQ29u
dGVudENvbnRyb2xsZXJQcml2YXRlLmgKaW5kZXggMmJmNTAzMDQxYzVmNGY0ZTJlZjJhNTIyMTU4
NjdiNjE4MWZiYmVjMy4uYWEzNTFlNzdjY2RlYjMyM2Y3MDM3ODY4MDAyMTNmMTMxNGJhMjc0YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVXNlckNvbnRl
bnRDb250cm9sbGVyUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1VzZXJDb250ZW50Q29udHJvbGxlclByaXZhdGUuaApAQCAtMzIsMjAgKzMyLDIwIEBA
CiAKIEBpbnRlcmZhY2UgV0tVc2VyQ29udGVudENvbnRyb2xsZXIgKFdLUHJpdmF0ZSkKIAotLSAo
dm9pZClfcmVtb3ZlVXNlclNjcmlwdDooV0tVc2VyU2NyaXB0ICopdXNlclNjcmlwdCBXS19BUElf
QVZBSUxBQkxFKG1hY29zeCgxMC4xMiksIGlvcygxMC4wKSk7Ci0tICh2b2lkKV9yZW1vdmVBbGxV
c2VyU2NyaXB0c0Fzc29jaWF0ZWRXaXRoVXNlckNvbnRlbnRXb3JsZDooX1dLVXNlckNvbnRlbnRX
b3JsZCAqKXVzZXJDb250ZW50V29ybGQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBp
b3MoMTAuMCkpOworLSAodm9pZClfcmVtb3ZlVXNlclNjcmlwdDooV0tVc2VyU2NyaXB0ICopdXNl
clNjcmlwdCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKKy0gKHZv
aWQpX3JlbW92ZUFsbFVzZXJTY3JpcHRzQXNzb2NpYXRlZFdpdGhVc2VyQ29udGVudFdvcmxkOihf
V0tVc2VyQ29udGVudFdvcmxkICopdXNlckNvbnRlbnRXb3JsZCBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDEwLjEyKSwgaW9zKDEwLjApKTsKIAotLSAodm9pZClfYWRkVXNlclNjcmlwdEltbWVkaWF0
ZWx5OihXS1VzZXJTY3JpcHQgKil1c2VyU2NyaXB0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEw
LjE0KSwgaW9zKDEyLjApKTsKKy0gKHZvaWQpX2FkZFVzZXJTY3JpcHRJbW1lZGlhdGVseTooV0tV
c2VyU2NyaXB0ICopdXNlclNjcmlwdCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSwgaW9z
KDEyLjApKTsKIAotLSAodm9pZClfYWRkVXNlckNvbnRlbnRGaWx0ZXI6KF9XS1VzZXJDb250ZW50
RmlsdGVyICopdXNlckNvbnRlbnRGaWx0ZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEp
LCBpb3MoOS4wKSk7Ci0tICh2b2lkKV9yZW1vdmVVc2VyQ29udGVudEZpbHRlcjooTlNTdHJpbmcg
Kil1c2VyQ29udGVudEZpbHRlck5hbWUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBp
b3MoOS4wKSk7Ci0tICh2b2lkKV9yZW1vdmVBbGxVc2VyQ29udGVudEZpbHRlcnMgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CistICh2b2lkKV9hZGRVc2VyQ29udGVu
dEZpbHRlcjooX1dLVXNlckNvbnRlbnRGaWx0ZXIgKil1c2VyQ29udGVudEZpbHRlciBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDEwLjExKSwgaW9zKDkuMCkpOworLSAodm9pZClfcmVtb3ZlVXNlckNv
bnRlbnRGaWx0ZXI6KE5TU3RyaW5nICopdXNlckNvbnRlbnRGaWx0ZXJOYW1lIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTAuMTEpLCBpb3MoOS4wKSk7CistICh2b2lkKV9yZW1vdmVBbGxVc2VyQ29u
dGVudEZpbHRlcnMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMSksIGlvcyg5LjApKTsKIAot
QHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBjb3B5KSBOU0FycmF5PF9XS1VzZXJTdHls
ZVNoZWV0ICo+ICpfdXNlclN0eWxlU2hlZXRzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEy
KSwgaW9zKDEwLjApKTsKLS0gKHZvaWQpX2FkZFVzZXJTdHlsZVNoZWV0OihfV0tVc2VyU3R5bGVT
aGVldCAqKXVzZXJTdHlsZVNoZWV0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9z
KDEwLjApKTsKLS0gKHZvaWQpX3JlbW92ZVVzZXJTdHlsZVNoZWV0OihfV0tVc2VyU3R5bGVTaGVl
dCAqKXVzZXJTdHlsZVNoZWV0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEw
LjApKTsKLS0gKHZvaWQpX3JlbW92ZUFsbFVzZXJTdHlsZVNoZWV0cyBXS19BUElfQVZBSUxBQkxF
KG1hY29zeCgxMC4xMiksIGlvcygxMC4wKSk7Ci0tICh2b2lkKV9yZW1vdmVBbGxVc2VyU3R5bGVT
aGVldHNBc3NvY2lhdGVkV2l0aFVzZXJDb250ZW50V29ybGQ6KF9XS1VzZXJDb250ZW50V29ybGQg
Kil1c2VyQ29udGVudFdvcmxkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEw
LjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgY29weSkgTlNBcnJheTxfV0tV
c2VyU3R5bGVTaGVldCAqPiAqX3VzZXJTdHlsZVNoZWV0cyBXS19BUElfQVZBSUxBQkxFKG1hY29z
KDEwLjEyKSwgaW9zKDEwLjApKTsKKy0gKHZvaWQpX2FkZFVzZXJTdHlsZVNoZWV0OihfV0tVc2Vy
U3R5bGVTaGVldCAqKXVzZXJTdHlsZVNoZWV0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIp
LCBpb3MoMTAuMCkpOworLSAodm9pZClfcmVtb3ZlVXNlclN0eWxlU2hlZXQ6KF9XS1VzZXJTdHls
ZVNoZWV0ICopdXNlclN0eWxlU2hlZXQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlv
cygxMC4wKSk7CistICh2b2lkKV9yZW1vdmVBbGxVc2VyU3R5bGVTaGVldHMgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CistICh2b2lkKV9yZW1vdmVBbGxVc2VyU3R5
bGVTaGVldHNBc3NvY2lhdGVkV2l0aFVzZXJDb250ZW50V29ybGQ6KF9XS1VzZXJDb250ZW50V29y
bGQgKil1c2VyQ29udGVudFdvcmxkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3Mo
MTAuMCkpOwogCiAtICh2b2lkKV9hZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjooaWQgPFdLU2NyaXB0
TWVzc2FnZUhhbmRsZXI+KXNjcmlwdE1lc3NhZ2VIYW5kbGVyIG5hbWU6KE5TU3RyaW5nICopbmFt
ZSB1c2VyQ29udGVudFdvcmxkOihfV0tVc2VyQ29udGVudFdvcmxkICopdXNlckNvbnRlbnRXb3Js
ZDsKIC0gKHZvaWQpX3JlbW92ZVNjcmlwdE1lc3NhZ2VIYW5kbGVyRm9yTmFtZTooTlNTdHJpbmcg
KiluYW1lIHVzZXJDb250ZW50V29ybGQ6KF9XS1VzZXJDb250ZW50V29ybGQgKil1c2VyQ29udGVu
dFdvcmxkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
VXNlclNjcmlwdC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVXNlclNj
cmlwdC5oCmluZGV4IDI5NTJjMzAwMjY5OGYzMjgzMGMzZTc3NDU2NDkwYzAxMDI2ZDhmNDYuLjQw
MTJmODhiZGM0ODZkNzMyZmUyOTcwZGFhOWUwYjI5MDNjYzU5YjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJTY3JpcHQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2VyU2NyaXB0LmgKQEAgLTM3LDExICszNywx
MSBAQCBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwg
V0tVc2VyU2NyaXB0SW5qZWN0aW9uVGltZSkgewogICAgIFdLVXNlclNjcmlwdEluamVjdGlvblRp
bWVBdERvY3VtZW50U3RhcnQsCiAgICAgV0tVc2VyU2NyaXB0SW5qZWN0aW9uVGltZUF0RG9jdW1l
bnRFbmQKLX0gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSk7Cit9IFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4wKSk7CiAKIC8qISBBIEBsaW5rIFdL
VXNlclNjcmlwdCBAL2xpbmsgb2JqZWN0IHJlcHJlc2VudHMgYSBzY3JpcHQgdGhhdCBjYW4gYmUg
aW5qZWN0ZWQgaW50byB3ZWJwYWdlcy4KICAqLwotV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgx
MC4xMCksIGlvcyg4LjApKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDgu
MCkpCiBAaW50ZXJmYWNlIFdLVXNlclNjcmlwdCA6IE5TT2JqZWN0IDxOU0NvcHlpbmc+CiAKIC8q
IEBhYnN0cmFjdCBUaGUgc2NyaXB0IHNvdXJjZSBjb2RlLiAqLwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVXNlclNjcmlwdFByaXZhdGUuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJTY3JpcHRQcml2YXRlLmgKaW5kZXgg
ZDRjMDJiNjYxZTIzZmMzMDI5YzljZjFhOWIxOGMwZDUzNGRhYmFjMC4uYmM1MDg2ODBlMGExOTEw
Y2VlMjNkNWIzMWZlNTg3M2VlNjdjMDFkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLVXNlclNjcmlwdFByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2VyU2NyaXB0UHJpdmF0ZS5oCkBAIC0zMSwxMCArMzEs
MTAgQEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIAogQGludGVyZmFjZSBXS1VzZXJTY3JpcHQg
KFdLUHJpdmF0ZSkKIAotLSAoaW5zdGFuY2V0eXBlKV9pbml0V2l0aFNvdXJjZTooTlNTdHJpbmcg
Kilzb3VyY2UgaW5qZWN0aW9uVGltZTooV0tVc2VyU2NyaXB0SW5qZWN0aW9uVGltZSlpbmplY3Rp
b25UaW1lIGZvck1haW5GcmFtZU9ubHk6KEJPT0wpZm9yTWFpbkZyYW1lT25seSBsZWdhY3lXaGl0
ZWxpc3Q6KE5TQXJyYXk8TlNTdHJpbmcgKj4gKilsZWdhY3lXaGl0ZWxpc3QgbGVnYWN5QmxhY2ts
aXN0OihOU0FycmF5PE5TU3RyaW5nICo+ICopbGVnYWN5QmxhY2tsaXN0IHVzZXJDb250ZW50V29y
bGQ6KF9XS1VzZXJDb250ZW50V29ybGQgKil1c2VyQ29udGVudFdvcmxkIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsKLS0gKGluc3RhbmNldHlwZSlfaW5pdFdpdGhT
b3VyY2U6KE5TU3RyaW5nICopc291cmNlIGluamVjdGlvblRpbWU6KFdLVXNlclNjcmlwdEluamVj
dGlvblRpbWUpaW5qZWN0aW9uVGltZSBmb3JNYWluRnJhbWVPbmx5OihCT09MKWZvck1haW5GcmFt
ZU9ubHkgbGVnYWN5V2hpdGVsaXN0OihOU0FycmF5PE5TU3RyaW5nICo+ICopbGVnYWN5V2hpdGVs
aXN0IGxlZ2FjeUJsYWNrbGlzdDooTlNBcnJheTxOU1N0cmluZyAqPiAqKWxlZ2FjeUJsYWNrbGlz
dCBhc3NvY2lhdGVkVVJMOihOU1VSTCAqKWFzc29jaWF0ZWRVUkwgdXNlckNvbnRlbnRXb3JsZDoo
X1dLVXNlckNvbnRlbnRXb3JsZCAqKXVzZXJDb250ZW50V29ybGQgV0tfQVBJX0FWQUlMQUJMRSht
YWNvc3goMTAuMTIpLCBpb3MoMTAuMCkpOworLSAoaW5zdGFuY2V0eXBlKV9pbml0V2l0aFNvdXJj
ZTooTlNTdHJpbmcgKilzb3VyY2UgaW5qZWN0aW9uVGltZTooV0tVc2VyU2NyaXB0SW5qZWN0aW9u
VGltZSlpbmplY3Rpb25UaW1lIGZvck1haW5GcmFtZU9ubHk6KEJPT0wpZm9yTWFpbkZyYW1lT25s
eSBsZWdhY3lXaGl0ZWxpc3Q6KE5TQXJyYXk8TlNTdHJpbmcgKj4gKilsZWdhY3lXaGl0ZWxpc3Qg
bGVnYWN5QmxhY2tsaXN0OihOU0FycmF5PE5TU3RyaW5nICo+ICopbGVnYWN5QmxhY2tsaXN0IHVz
ZXJDb250ZW50V29ybGQ6KF9XS1VzZXJDb250ZW50V29ybGQgKil1c2VyQ29udGVudFdvcmxkIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOworLSAoaW5zdGFuY2V0eXBl
KV9pbml0V2l0aFNvdXJjZTooTlNTdHJpbmcgKilzb3VyY2UgaW5qZWN0aW9uVGltZTooV0tVc2Vy
U2NyaXB0SW5qZWN0aW9uVGltZSlpbmplY3Rpb25UaW1lIGZvck1haW5GcmFtZU9ubHk6KEJPT0wp
Zm9yTWFpbkZyYW1lT25seSBsZWdhY3lXaGl0ZWxpc3Q6KE5TQXJyYXk8TlNTdHJpbmcgKj4gKils
ZWdhY3lXaGl0ZWxpc3QgbGVnYWN5QmxhY2tsaXN0OihOU0FycmF5PE5TU3RyaW5nICo+ICopbGVn
YWN5QmxhY2tsaXN0IGFzc29jaWF0ZWRVUkw6KE5TVVJMICopYXNzb2NpYXRlZFVSTCB1c2VyQ29u
dGVudFdvcmxkOihfV0tVc2VyQ29udGVudFdvcmxkICopdXNlckNvbnRlbnRXb3JsZCBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKIAotQHByb3BlcnR5IChub25hdG9t
aWMsIHJlYWRvbmx5KSBfV0tVc2VyQ29udGVudFdvcmxkICpfdXNlckNvbnRlbnRXb3JsZCBXS19B
UElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMiksIGlvcygxMC4wKSk7CitAcHJvcGVydHkgKG5vbmF0
b21pYywgcmVhZG9ubHkpIF9XS1VzZXJDb250ZW50V29ybGQgKl91c2VyQ29udGVudFdvcmxkIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOwogCiBAZW5kCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ZpZXdQcml2YXRlLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tWaWV3UHJpdmF0ZS5oCmluZGV4
IGJjZTU2NWE0NzBmOWQ0MzhlNGI1MjY1ODE5NjgzYmRmODk0MmUxMjkuLjBmMjI2ZWJjNTgzYTZl
ZDg0ZmUzMTQ4ZjM1ZjY1NGNlZDc4ZGJlZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1ZpZXdQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLVmlld1ByaXZhdGUuaApAQCAtNzcsMTYgKzc3LDE2IEBACiAKIEBw
cm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFZpZXdTY2FsZTopIENHRmxvYXQgX3ZpZXdT
Y2FsZTsKIAotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0T3ZlcnJpZGVEZXZpY2VT
Y2FsZUZhY3RvcjopIENHRmxvYXQgX292ZXJyaWRlRGV2aWNlU2NhbGVGYWN0b3IgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goMTAuMTEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3Nl
dE92ZXJyaWRlRGV2aWNlU2NhbGVGYWN0b3I6KSBDR0Zsb2F0IF9vdmVycmlkZURldmljZVNjYWxl
RmFjdG9yIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTEpKTsKIAogQHByb3BlcnR5IChub25h
dG9taWMsIHNldHRlcj1fc2V0QXV0b21hdGljYWxseUFkanVzdHNDb250ZW50SW5zZXRzOikgQk9P
TCBfYXV0b21hdGljYWxseUFkanVzdHNDb250ZW50SW5zZXRzOwogCiBAcHJvcGVydHkgKHJlYWRv
bmx5KSBOU0NvbG9yICpfcGFnZUV4dGVuZGVkQmFja2dyb3VuZENvbG9yOwogQHByb3BlcnR5IChj
b3B5LCBub25hdG9taWMpIE5TQ29sb3IgKnVuZGVybGF5Q29sb3I7CiAKLUBwcm9wZXJ0eSAobm9u
YXRvbWljLCBzZXR0ZXI9X3NldEJhY2tncm91bmRDb2xvcjopIE5TQ29sb3IgKl9iYWNrZ3JvdW5k
Q29sb3IgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTQpKTsKK0Bwcm9wZXJ0eSAobm9uYXRv
bWljLCBzZXR0ZXI9X3NldEJhY2tncm91bmRDb2xvcjopIE5TQ29sb3IgKl9iYWNrZ3JvdW5kQ29s
b3IgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCkpOwogCi1AcHJvcGVydHkgKHN0cm9uZywg
bm9uYXRvbWljLCBzZXR0ZXI9X3NldEluc3BlY3RvckF0dGFjaG1lbnRWaWV3OikgTlNWaWV3ICpf
aW5zcGVjdG9yQXR0YWNobWVudFZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpKTsK
K0Bwcm9wZXJ0eSAoc3Ryb25nLCBub25hdG9taWMsIHNldHRlcj1fc2V0SW5zcGVjdG9yQXR0YWNo
bWVudFZpZXc6KSBOU1ZpZXcgKl9pbnNwZWN0b3JBdHRhY2htZW50VmlldyBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDEwLjExKSk7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkd3JpdGUsIHNl
dHRlcj1fc2V0UmVxdWlyZXNVc2VyQWN0aW9uRm9yRWRpdGluZ0NvbnRyb2xzTWFuYWdlcjopIEJP
T0wgX3JlcXVpcmVzVXNlckFjdGlvbkZvckVkaXRpbmdDb250cm9sc01hbmFnZXI7CiAKQEAgLTEz
MywxNiArMTMzLDE2IEBACiAKIC0gKHZvaWQpX2dlc3R1cmVFdmVudFdhc05vdEhhbmRsZWRCeVdl
YkNvcmU6KE5TRXZlbnQgKilldmVudDsKIAotLSAodm9pZClfc2V0U2hvdWxkU3VwcHJlc3NGaXJz
dFJlc3BvbmRlckNoYW5nZXM6KEJPT0wpc2hvdWxkU3VwcHJlc3MgV0tfQVBJX0FWQUlMQUJMRSht
YWNvc3goMTAuMTMuNCkpOworLSAodm9pZClfc2V0U2hvdWxkU3VwcHJlc3NGaXJzdFJlc3BvbmRl
ckNoYW5nZXM6KEJPT0wpc2hvdWxkU3VwcHJlc3MgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4x
My40KSk7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkd3JpdGUsIHNldHRlcj1fc2V0V2Fu
dHNNZWRpYVBsYXliYWNrQ29udHJvbHNWaWV3OikgQk9PTCBfd2FudHNNZWRpYVBsYXliYWNrQ29u
dHJvbHNWaWV3OwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSAgaWQgX21lZGlhUGxh
eWJhY2tDb250cm9sc1ZpZXc7CiAtICh2b2lkKV9hZGRNZWRpYVBsYXliYWNrQ29udHJvbHNWaWV3
OihpZCltZWRpYVBsYXliYWNrQ29udHJvbHNWaWV3OwogLSAodm9pZClfcmVtb3ZlTWVkaWFQbGF5
YmFja0NvbnRyb2xzVmlldzsKIAotLSAodm9pZClfZG9BZnRlck5leHRQcmVzZW50YXRpb25VcGRh
dGU6KHZvaWQgKF4pKHZvaWQpKXVwZGF0ZUJsb2NrIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEw
LjEzLjQpKTsKKy0gKHZvaWQpX2RvQWZ0ZXJOZXh0UHJlc2VudGF0aW9uVXBkYXRlOih2b2lkIChe
KSh2b2lkKSl1cGRhdGVCbG9jayBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKIAot
QHByb3BlcnR5IChub25hdG9taWMsIHJlYWR3cml0ZSwgc2V0dGVyPV9zZXRVc2VTeXN0ZW1BcHBl
YXJhbmNlOikgQk9PTCBfdXNlU3lzdGVtQXBwZWFyYW5jZSBXS19BUElfQVZBSUxBQkxFKG1hY29z
eCgxMC4xNCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWR3cml0ZSwgc2V0dGVyPV9zZXRV
c2VTeXN0ZW1BcHBlYXJhbmNlOikgQk9PTCBfdXNlU3lzdGVtQXBwZWFyYW5jZSBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjE0KSk7CiAKIEBlbmQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlldy5oCmluZGV4IDVlM2M4ODQ0YTlkZDNhY2UwM2U1YWU1ZmIw
NTEwY2YyMjc1ZTRmZDIuLjEyYjhlNmYzOGZmMjZjOWUzNWIzN2M0NGZmNDQxZGZhYTRiNmQwODgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3LmgKQEAg
LTQ4LDEwICs0OCwxMCBAQCBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogIFVzZWQgdG8gY29uZmln
dXJlIEBsaW5rIFdLV2ViVmlldyBAL2xpbmsgaW5zdGFuY2VzLgogICovCiAjaWYgVEFSR0VUX09T
X0lQSE9ORQotV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQorV0tf
Q0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIFdLV2Vi
VmlldyA6IFVJVmlldwogI2Vsc2UKLVdLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBp
b3MoOC4wKSkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4xMCksIGlvcyg4LjApKQogQGlu
dGVyZmFjZSBXS1dlYlZpZXcgOiBOU1ZpZXcKICNlbmRpZgogCkBAIC05Nyw3ICs5Nyw3IEBAIFdL
X0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKICBJZiByZWFkQWNjZXNz
VVJMIHJlZmVyZW5jZXMgYSBkaXJlY3RvcnksIGZpbGVzIGluc2lkZSB0aGF0IGZpbGUgbWF5IGJl
IGxvYWRlZCBieSBXZWJLaXQuCiAgQHJlc3VsdCBBIG5ldyBuYXZpZ2F0aW9uIGZvciB0aGUgZ2l2
ZW4gZmlsZSBVUkwuCiAgKi8KLS0gKG51bGxhYmxlIFdLTmF2aWdhdGlvbiAqKWxvYWRGaWxlVVJM
OihOU1VSTCAqKVVSTCBhbGxvd2luZ1JlYWRBY2Nlc3NUb1VSTDooTlNVUkwgKilyZWFkQWNjZXNz
VVJMIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOworLSAobnVsbGFi
bGUgV0tOYXZpZ2F0aW9uICopbG9hZEZpbGVVUkw6KE5TVVJMICopVVJMIGFsbG93aW5nUmVhZEFj
Y2Vzc1RvVVJMOihOU1VSTCAqKXJlYWRBY2Nlc3NVUkwgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygx
MC4xMSksIGlvcyg5LjApKTsKIAogLyohIEBhYnN0cmFjdCBTZXRzIHRoZSB3ZWJwYWdlIGNvbnRl
bnRzIGFuZCBiYXNlIFVSTC4KICBAcGFyYW0gc3RyaW5nIFRoZSBzdHJpbmcgdG8gdXNlIGFzIHRo
ZSBjb250ZW50cyBvZiB0aGUgd2VicGFnZS4KQEAgLTExMyw3ICsxMTMsNyBAQCBXS19DTEFTU19B
VkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCiAgQHBhcmFtIGJhc2VVUkwgQSBVUkwg
dGhhdCBpcyB1c2VkIHRvIHJlc29sdmUgcmVsYXRpdmUgVVJMcyB3aXRoaW4gdGhlIGRvY3VtZW50
LgogIEByZXN1bHQgQSBuZXcgbmF2aWdhdGlvbi4KICAqLwotLSAobnVsbGFibGUgV0tOYXZpZ2F0
aW9uICopbG9hZERhdGE6KE5TRGF0YSAqKWRhdGEgTUlNRVR5cGU6KE5TU3RyaW5nICopTUlNRVR5
cGUgY2hhcmFjdGVyRW5jb2RpbmdOYW1lOihOU1N0cmluZyAqKWNoYXJhY3RlckVuY29kaW5nTmFt
ZSBiYXNlVVJMOihOU1VSTCAqKWJhc2VVUkwgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEp
LCBpb3MoOS4wKSk7CistIChudWxsYWJsZSBXS05hdmlnYXRpb24gKilsb2FkRGF0YTooTlNEYXRh
ICopZGF0YSBNSU1FVHlwZTooTlNTdHJpbmcgKilNSU1FVHlwZSBjaGFyYWN0ZXJFbmNvZGluZ05h
bWU6KE5TU3RyaW5nICopY2hhcmFjdGVyRW5jb2RpbmdOYW1lIGJhc2VVUkw6KE5TVVJMICopYmFz
ZVVSTCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjExKSwgaW9zKDkuMCkpOwogCiAvKiEgQGFi
c3RyYWN0IE5hdmlnYXRlcyB0byBhbiBpdGVtIGZyb20gdGhlIGJhY2stZm9yd2FyZCBsaXN0IGFu
ZCBzZXRzIGl0CiAgYXMgdGhlIGN1cnJlbnQgaXRlbS4KQEAgLTE2Nyw3ICsxNjcsNyBAQCBXS19D
TEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCiAgQGRpc2N1c3Npb24gQGxp
bmsgV0tXZWJWaWV3IEAvbGluayBpcyBrZXktdmFsdWUgb2JzZXJ2aW5nIChLVk8pIGNvbXBsaWFu
dCAKICBmb3IgdGhpcyBwcm9wZXJ0eS4KICAqLwotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRv
bmx5LCBudWxsYWJsZSkgU2VjVHJ1c3RSZWYgc2VydmVyVHJ1c3QgV0tfQVBJX0FWQUlMQUJMRSht
YWNvc3goMTAuMTIpLCBpb3MoMTAuMCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5
LCBudWxsYWJsZSkgU2VjVHJ1c3RSZWYgc2VydmVyVHJ1c3QgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMC4xMiksIGlvcygxMC4wKSk7CiAKIC8qISBAYWJzdHJhY3QgQSBCb29sZWFuIHZhbHVlIGlu
ZGljYXRpbmcgd2hldGhlciB0aGVyZSBpcyBhIGJhY2sgaXRlbSBpbgogIHRoZSBiYWNrLWZvcndh
cmQgbGlzdCB0aGF0IGNhbiBiZSBuYXZpZ2F0ZWQgdG8uCkBAIC0yMjksNyArMjI5LDcgQEAgV0tf
Q0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQogI2lmIFRBUkdFVF9PU19J
UEhPTkUKIC0gKHZvaWQpdGFrZVNuYXBzaG90V2l0aENvbmZpZ3VyYXRpb246KG51bGxhYmxlIFdL
U25hcHNob3RDb25maWd1cmF0aW9uICopc25hcHNob3RDb25maWd1cmF0aW9uIGNvbXBsZXRpb25I
YW5kbGVyOih2b2lkICheKShVSUltYWdlICogX051bGxhYmxlIHNuYXBzaG90SW1hZ2UsIE5TRXJy
b3IgKiBfTnVsbGFibGUgZXJyb3IpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUo
aW9zKDExLjApKTsKICNlbHNlCi0tICh2b2lkKXRha2VTbmFwc2hvdFdpdGhDb25maWd1cmF0aW9u
OihudWxsYWJsZSBXS1NuYXBzaG90Q29uZmlndXJhdGlvbiAqKXNuYXBzaG90Q29uZmlndXJhdGlv
biBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNJbWFnZSAqIF9OdWxsYWJsZSBzbmFwc2hv
dEltYWdlLCBOU0Vycm9yICogX051bGxhYmxlIGVycm9yKSljb21wbGV0aW9uSGFuZGxlciBXS19B
UElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMykpOworLSAodm9pZCl0YWtlU25hcHNob3RXaXRoQ29u
ZmlndXJhdGlvbjoobnVsbGFibGUgV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24gKilzbmFwc2hvdENv
bmZpZ3VyYXRpb24gY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TSW1hZ2UgKiBfTnVsbGFi
bGUgc25hcHNob3RJbWFnZSwgTlNFcnJvciAqIF9OdWxsYWJsZSBlcnJvcikpY29tcGxldGlvbkhh
bmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMykpOwogI2VuZGlmCiAKIC8qISBAYWJz
dHJhY3QgQSBCb29sZWFuIHZhbHVlIGluZGljYXRpbmcgd2hldGhlciBob3Jpem9udGFsIHN3aXBl
IGdlc3R1cmVzCkBAIC0yNDAsMTMgKzI0MCwxMyBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4
KDEwLjEwKSwgaW9zKDguMCkpCiAKIC8qISBAYWJzdHJhY3QgVGhlIGN1c3RvbSB1c2VyIGFnZW50
IHN0cmluZyBvciBuaWwgaWYgbm8gY3VzdG9tIHVzZXIgYWdlbnQgc3RyaW5nIGhhcyBiZWVuIHNl
dC4KICovCi1AcHJvcGVydHkgKG51bGxhYmxlLCBub25hdG9taWMsIGNvcHkpIE5TU3RyaW5nICpj
dXN0b21Vc2VyQWdlbnQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7
CitAcHJvcGVydHkgKG51bGxhYmxlLCBub25hdG9taWMsIGNvcHkpIE5TU3RyaW5nICpjdXN0b21V
c2VyQWdlbnQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMSksIGlvcyg5LjApKTsKIAogLyoh
IEBhYnN0cmFjdCBBIEJvb2xlYW4gdmFsdWUgaW5kaWNhdGluZyB3aGV0aGVyIGxpbmsgcHJldmll
dyBpcyBhbGxvd2VkIGZvciBhbnkKICBsaW5rcyBpbnNpZGUgdGhpcyBXS1dlYlZpZXcuCiAgQGRp
c2N1c3Npb24gVGhlIGRlZmF1bHQgdmFsdWUgaXMgWUVTIG9uIE1hYyBhbmQgaU9TLgogICovCi1A
cHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBhbGxvd3NMaW5rUHJldmlldyBXS19BUElfQVZBSUxB
QkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09M
IGFsbG93c0xpbmtQcmV2aWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTEpLCBpb3MoOS4w
KSk7CiAKICNpZiBUQVJHRVRfT1NfSVBIT05FCiAvKiEgQGFic3RyYWN0IFRoZSBzY3JvbGwgdmll
dyBhc3NvY2lhdGVkIHdpdGggdGhlIHdlYiB2aWV3LgpAQCAtMjgwLDcgKzI4MCw3IEBAIFdLX0NM
QVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKIC8qIEBhYnN0cmFjdCBDaGVj
a3Mgd2hldGhlciBvciBub3QgV0tXZWJWaWV3cyBoYW5kbGUgdGhlIGdpdmVuIFVSTCBzY2hlbWUg
YnkgZGVmYXVsdC4KICBAcGFyYW0gc2NoZW1lIFRoZSBVUkwgc2NoZW1lIHRvIGNoZWNrLgogICov
Ci0rIChCT09MKWhhbmRsZXNVUkxTY2hlbWU6KE5TU3RyaW5nICopdXJsU2NoZW1lIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3N4KDEwLjEzKSwgaW9zKDExLjApKTsKKysgKEJPT0wpaGFuZGxlc1VSTFNj
aGVtZTooTlNTdHJpbmcgKil1cmxTY2hlbWUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyks
IGlvcygxMS4wKSk7CiAKIEBlbmQKIApAQCAtMzIzLDcgKzMyMyw3IEBAIFdLX0NMQVNTX0FWQUlM
QUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKIAogQGludGVyZmFjZSBXS1dlYlZpZXcgKFdL
RGVwcmVjYXRlZCkKIAotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBjb3B5KSBOU0Fy
cmF5ICpjZXJ0aWZpY2F0ZUNoYWluIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQo
InNlcnZlclRydXN0IiwgbWFjb3N4KDEwLjExLCAxMC4xMiksIGlvcyg5LjAsIDEwLjApKTsKK0Bw
cm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgY29weSkgTlNBcnJheSAqY2VydGlmaWNhdGVD
aGFpbiBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJzZXJ2ZXJUcnVzdCIsIG1h
Y29zKDEwLjExLCAxMC4xMiksIGlvcyg5LjAsIDEwLjApKTsKIAogQGVuZAogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlv
bi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3Vy
YXRpb24uaAppbmRleCA2NjMyMmQ3M2Q2MDMzNTJjNDFmYzE0NjE5NjlkNTJhNjUzYzg4ODg4Li43
NWZhZGVkNGQ3M2Y2ZDBiNzE2YzQxODdmZDZlNTMwNmUyYTlkZTdjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0
aW9uLmgKQEAgLTY3LDcgKzY3LDcgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgV0tTZWxl
Y3Rpb25HcmFudWxhcml0eSkgewogdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgV0tVc2VySW50
ZXJmYWNlRGlyZWN0aW9uUG9saWN5KSB7CiAgICAgV0tVc2VySW50ZXJmYWNlRGlyZWN0aW9uUG9s
aWN5Q29udGVudCwKICAgICBXS1VzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xpY3lTeXN0ZW0sCi19
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSk7Cit9IFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTAuMTIpKTsKIAogI2VuZGlmCiAKQEAgLTgzLDEzICs4MywxMyBAQCB0eXBlZGVmIE5TX09Q
VElPTlMoTlNVSW50ZWdlciwgV0tBdWRpb3Zpc3VhbE1lZGlhVHlwZXMpIHsKICAgICBXS0F1ZGlv
dmlzdWFsTWVkaWFUeXBlQXVkaW8gPSAxIDw8IDAsCiAgICAgV0tBdWRpb3Zpc3VhbE1lZGlhVHlw
ZVZpZGVvID0gMSA8PCAxLAogICAgIFdLQXVkaW92aXN1YWxNZWRpYVR5cGVBbGwgPSBOU1VJbnRl
Z2VyTWF4Ci19IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsKK30g
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CiAKIC8qISBBIFdLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24gb2JqZWN0IGlzIGEgY29sbGVjdGlvbiBvZiBwcm9wZXJ0aWVzIHdp
dGgKICB3aGljaCB0byBpbml0aWFsaXplIGEgd2ViIHZpZXcuCiAgQGhlbHBzIENvbnRhaW5zIHBy
b3BlcnRpZXMgdXNlZCB0byBjb25maWd1cmUgYSBAbGluayBXS1dlYlZpZXcgQC9saW5rLgogICov
Ci1XS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCitXS19DTEFTU19B
VkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2UgV0tXZWJWaWV3Q29u
ZmlndXJhdGlvbiA6IE5TT2JqZWN0IDxOU1NlY3VyZUNvZGluZywgTlNDb3B5aW5nPgogCiAvKiEg
QGFic3RyYWN0IFRoZSBwcm9jZXNzIHBvb2wgZnJvbSB3aGljaCB0byBvYnRhaW4gdGhlIHZpZXcn
cyB3ZWIgY29udGVudApAQCAtMTEwLDcgKzExMCw3IEBAIFdLX0NMQVNTX0FWQUlMQUJMRShtYWNv
c3goMTAuMTApLCBpb3MoOC4wKSkKIAogLyohIEBhYnN0cmFjdCBUaGUgd2Vic2l0ZSBkYXRhIHN0
b3JlIHRvIGJlIHVzZWQgYnkgdGhlIHdlYiB2aWV3LgogICovCi1AcHJvcGVydHkgKG5vbmF0b21p
Yywgc3Ryb25nKSBXS1dlYnNpdGVEYXRhU3RvcmUgKndlYnNpdGVEYXRhU3RvcmUgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywg
c3Ryb25nKSBXS1dlYnNpdGVEYXRhU3RvcmUgKndlYnNpdGVEYXRhU3RvcmUgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xMSksIGlvcyg5LjApKTsKIAogLyohIEBhYnN0cmFjdCBBIEJvb2xlYW4g
dmFsdWUgaW5kaWNhdGluZyB3aGV0aGVyIHRoZSB3ZWIgdmlldyBzdXBwcmVzc2VzCiAgY29udGVu
dCByZW5kZXJpbmcgdW50aWwgaXQgaXMgZnVsbHkgbG9hZGVkIGludG8gbWVtb3J5LgpAQCAtMTIw
LDE0ICsxMjAsMTQgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjAp
KQogCiAvKiEgQGFic3RyYWN0IFRoZSBuYW1lIG9mIHRoZSBhcHBsaWNhdGlvbiBhcyB1c2VkIGlu
IHRoZSB1c2VyIGFnZW50IHN0cmluZy4KICovCi1AcHJvcGVydHkgKG51bGxhYmxlLCBub25hdG9t
aWMsIGNvcHkpIE5TU3RyaW5nICphcHBsaWNhdGlvbk5hbWVGb3JVc2VyQWdlbnQgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CitAcHJvcGVydHkgKG51bGxhYmxlLCBu
b25hdG9taWMsIGNvcHkpIE5TU3RyaW5nICphcHBsaWNhdGlvbk5hbWVGb3JVc2VyQWdlbnQgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMSksIGlvcyg5LjApKTsKIAogLyohIEBhYnN0cmFjdCBB
IEJvb2xlYW4gdmFsdWUgaW5kaWNhdGluZyB3aGV0aGVyIEFpclBsYXkgaXMgYWxsb3dlZC4KICBA
ZGlzY3Vzc2lvbiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBZRVMuCiAgKi8KLUBwcm9wZXJ0eSAobm9u
YXRvbWljKSBCT09MIGFsbG93c0FpclBsYXlGb3JNZWRpYVBsYXliYWNrIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOworQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wg
YWxsb3dzQWlyUGxheUZvck1lZGlhUGxheWJhY2sgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4x
MSksIGlvcyg5LjApKTsKIAotQHByb3BlcnR5IChub25hdG9taWMpIFdLQXVkaW92aXN1YWxNZWRp
YVR5cGVzIG1lZGlhVHlwZXNSZXF1aXJpbmdVc2VyQWN0aW9uRm9yUGxheWJhY2sgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3MoMTAuMCkpOworQHByb3BlcnR5IChub25hdG9taWMp
IFdLQXVkaW92aXN1YWxNZWRpYVR5cGVzIG1lZGlhVHlwZXNSZXF1aXJpbmdVc2VyQWN0aW9uRm9y
UGxheWJhY2sgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CiAKICNp
ZiBUQVJHRVRfT1NfSVBIT05FCiAvKiEgQGFic3RyYWN0IEEgQm9vbGVhbiB2YWx1ZSBpbmRpY2F0
aW5nIHdoZXRoZXIgSFRNTDUgdmlkZW9zIHBsYXkgaW5saW5lCkBAIC0xNzAsNyArMTcwLDcgQEAg
V0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQogIEBkaXNjdXNzaW9u
IFBvc3NpYmxlIHZhbHVlcyBhcmUgZGVzY3JpYmVkIGluIFdLVXNlckludGVyZmFjZURpcmVjdGlv
blBvbGljeS4KICBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBXS1VzZXJJbnRlcmZhY2VEaXJlY3Rpb25Q
b2xpY3lDb250ZW50LgogICovCi1AcHJvcGVydHkgKG5vbmF0b21pYykgV0tVc2VySW50ZXJmYWNl
RGlyZWN0aW9uUG9saWN5IHVzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xpY3kgV0tfQVBJX0FWQUlM
QUJMRShtYWNvc3goMTAuMTIpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBXS1VzZXJJbnRlcmZh
Y2VEaXJlY3Rpb25Qb2xpY3kgdXNlckludGVyZmFjZURpcmVjdGlvblBvbGljeSBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjEyKSk7CiAKICNlbmRpZgogCkBAIC0xODYsMTIgKzE4NiwxMiBAQCBX
S19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCiAgQW4gZXhjZXB0aW9u
IHdpbGwgYmUgdGhyb3duIGlmIHlvdSB0cnkgdG8gcmVnaXN0ZXIgYSBVUkwgc2NoZW1lIGhhbmRs
ZXIgZm9yIGEgVVJMIHNjaGVtZSB0aGF0IFdlYktpdCBoYW5kbGVzIGludGVybmFsbHkuCiAgWW91
IGNhbiB1c2UgK1tXS1dlYlZpZXcgaGFuZGxlc1VSTFNjaGVtZTpdIHRvIGNoZWNrIHRoZSBhdmFp
bGFiaWxpdHkgb2YgYSBnaXZlbiBVUkwgc2NoZW1lLgogICovCi0tICh2b2lkKXNldFVSTFNjaGVt
ZUhhbmRsZXI6KG51bGxhYmxlIGlkIDxXS1VSTFNjaGVtZUhhbmRsZXI+KXVybFNjaGVtZUhhbmRs
ZXIgZm9yVVJMU2NoZW1lOihOU1N0cmluZyAqKXVybFNjaGVtZSBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeCgxMC4xMyksIGlvcygxMS4wKSk7CistICh2b2lkKXNldFVSTFNjaGVtZUhhbmRsZXI6KG51
bGxhYmxlIGlkIDxXS1VSTFNjaGVtZUhhbmRsZXI+KXVybFNjaGVtZUhhbmRsZXIgZm9yVVJMU2No
ZW1lOihOU1N0cmluZyAqKXVybFNjaGVtZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwg
aW9zKDExLjApKTsKIAogLyogQGFic3RyYWN0IFJldHVybnMgdGhlIGN1cnJlbnRseSByZWdpc3Rl
cmVkIFVSTCBzY2hlbWUgaGFuZGxlciBvYmplY3QgZm9yIHRoZSBnaXZlbiBVUkwgc2NoZW1lLgog
IEBwYXJhbSBzY2hlbWUgVGhlIFVSTCBzY2hlbWUgdG8gbG9va3VwLgogICovCi0tIChudWxsYWJs
ZSBpZCA8V0tVUkxTY2hlbWVIYW5kbGVyPil1cmxTY2hlbWVIYW5kbGVyRm9yVVJMU2NoZW1lOihO
U1N0cmluZyAqKXVybFNjaGVtZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygx
MS4wKSk7CistIChudWxsYWJsZSBpZCA8V0tVUkxTY2hlbWVIYW5kbGVyPil1cmxTY2hlbWVIYW5k
bGVyRm9yVVJMU2NoZW1lOihOU1N0cmluZyAqKXVybFNjaGVtZSBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDEwLjEzKSwgaW9zKDExLjApKTsKIAogQGVuZAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9u
UHJpdmF0ZS5oCmluZGV4IGM5ZTNlNGUyNjgyZmQzN2RhNjcwMjBhOGI5N2Y2MjRlMDEzNDc3ZjQu
LjhjMTZlMzk4MGRkM2FhZmQ2YmU3NTgwYTI3MjkxNmUxYTU4MGI1YTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJp
dmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdD
b25maWd1cmF0aW9uUHJpdmF0ZS5oCkBAIC01MSwyOCArNTEsMjggQEAgdHlwZWRlZiBOU19FTlVN
KE5TVUludGVnZXIsIF9XS0RyYWdMaWZ0RGVsYXkpIHsKIAogQHByb3BlcnR5IChub25hdG9taWMs
IHNldHRlcj1fc2V0VHJlYXRzU0hBMVNpZ25lZENlcnRpZmljYXRlc0FzSW5zZWN1cmU6KSBCT09M
IF90cmVhdHNTSEExU2lnbmVkQ2VydGlmaWNhdGVzQXNJbnNlY3VyZSBXS19BUElfQVZBSUxBQkxF
KGlvcyg5XzApKTsKIAotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0UmVzcGVjdHNJ
bWFnZU9yaWVudGF0aW9uOikgQk9PTCBfcmVzcGVjdHNJbWFnZU9yaWVudGF0aW9uIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWlj
LCBzZXR0ZXI9X3NldFByaW50c0JhY2tncm91bmRzOikgQk9PTCBfcHJpbnRzQmFja2dyb3VuZHMg
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3MoMTAuMCkpOwotQHByb3BlcnR5IChu
b25hdG9taWMsIHNldHRlcj1fc2V0SW5jcmVtZW50YWxSZW5kZXJpbmdTdXBwcmVzc2lvblRpbWVv
dXQ6KSBOU1RpbWVJbnRlcnZhbCBfaW5jcmVtZW50YWxSZW5kZXJpbmdTdXBwcmVzc2lvblRpbWVv
dXQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3MoMTAuMCkpOwotQHByb3BlcnR5
IChub25hdG9taWMsIHNldHRlcj1fc2V0QWxsb3dzSmF2YVNjcmlwdE1hcmt1cDopIEJPT0wgX2Fs
bG93c0phdmFTY3JpcHRNYXJrdXAgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3Mo
MTAuMCkpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0Q29udmVydHNQb3NpdGlv
blN0eWxlT25Db3B5OikgQk9PTCBfY29udmVydHNQb3NpdGlvblN0eWxlT25Db3B5IFdLX0FQSV9B
VkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWlj
LCBzZXR0ZXI9X3NldEFsbG93c01ldGFSZWZyZXNoOikgQk9PTCBfYWxsb3dzTWV0YVJlZnJlc2gg
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3MoMTAuMCkpOwotQHByb3BlcnR5IChu
b25hdG9taWMsIHNldHRlcj1fc2V0QWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHM6KSBC
T09MIF9hbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMcyBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeCgxMC4xMiksIGlvcygxMC4wKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9z
ZXROZWVkc1N0b3JhZ2VBY2Nlc3NGcm9tRmlsZVVSTHNRdWlyazopIEJPT0wgX25lZWRzU3RvcmFn
ZUFjY2Vzc0Zyb21GaWxlVVJMc1F1aXJrIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyLjMp
LCBpb3MoMTAuMykpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0TWFpbkNvbnRl
bnRVc2VyR2VzdHVyZU92ZXJyaWRlRW5hYmxlZDopIEJPT0wgX21haW5Db250ZW50VXNlckdlc3R1
cmVPdmVycmlkZUVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3MoMTAu
MCkpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0SW52aXNpYmxlQXV0b3BsYXlO
b3RQZXJtaXR0ZWQ6KSBCT09MIF9pbnZpc2libGVBdXRvcGxheU5vdFBlcm1pdHRlZCBXS19BUElf
QVZBSUxBQkxFKG1hY29zeCgxMC4xMiksIGlvcygxMC4wKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21p
Yywgc2V0dGVyPV9zZXRNZWRpYURhdGFMb2Fkc0F1dG9tYXRpY2FsbHk6KSBCT09MIF9tZWRpYURh
dGFMb2Fkc0F1dG9tYXRpY2FsbHkgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3Mo
MTAuMCkpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0QXR0YWNobWVudEVsZW1l
bnRFbmFibGVkOikgQk9PTCBfYXR0YWNobWVudEVsZW1lbnRFbmFibGVkIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0
ZXI9X3NldEF0dGFjaG1lbnRGaWxlV3JhcHBlckNsYXNzOikgQ2xhc3MgX2F0dGFjaG1lbnRGaWxl
V3JhcHBlckNsYXNzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0SW5pdGlhbENhcGl0
YWxpemF0aW9uRW5hYmxlZDopIEJPT0wgX2luaXRpYWxDYXBpdGFsaXphdGlvbkVuYWJsZWQgV0tf
QVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3MoMTAuMCkpOwotQHByb3BlcnR5IChub25h
dG9taWMsIHNldHRlcj1fc2V0QXBwbGVQYXlFbmFibGVkOikgQk9PTCBfYXBwbGVQYXlFbmFibGVk
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsKLUBwcm9wZXJ0eSAo
bm9uYXRvbWljLCBzZXR0ZXI9X3NldFdhaXRzRm9yUGFpbnRBZnRlclZpZXdEaWRNb3ZlVG9XaW5k
b3c6KSBCT09MIF93YWl0c0ZvclBhaW50QWZ0ZXJWaWV3RGlkTW92ZVRvV2luZG93IFdLX0FQSV9B
VkFJTEFCTEUobWFjb3N4KDEwLjEyLjMpLCBpb3MoMTAuMykpOwotQHByb3BlcnR5IChub25hdG9t
aWMsIHNldHRlcj1fc2V0Q29udHJvbGxlZEJ5QXV0b21hdGlvbjosIGdldHRlcj1faXNDb250cm9s
bGVkQnlBdXRvbWF0aW9uKSBCT09MIF9jb250cm9sbGVkQnlBdXRvbWF0aW9uIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KDEwLjEyLjMpLCBpb3MoMTAuMykpOwotQHByb3BlcnR5IChub25hdG9taWMs
IHNldHRlcj1fc2V0QXBwbGljYXRpb25NYW5pZmVzdDopIF9XS0FwcGxpY2F0aW9uTWFuaWZlc3Qg
Kl9hcHBsaWNhdGlvbk1hbmlmZXN0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpLCBp
b3MoMTEuMykpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0Q29sb3JGaWx0ZXJF
bmFibGVkOikgQk9PTCBfY29sb3JGaWx0ZXJFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KDEwLjE0KSwgaW9zKDEyLjApKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldElu
Y29tcGxldGVJbWFnZUJvcmRlckVuYWJsZWQ6KSBCT09MIF9pbmNvbXBsZXRlSW1hZ2VCb3JkZXJF
bmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjE0KSwgaW9zKDEyLjApKTsKLUBwcm9w
ZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldERyYXdzQmFja2dyb3VuZDopIEJPT0wgX2RyYXdz
QmFja2dyb3VuZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xNCksIGlvcygxMi4wKSk7Ci1A
cHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRTaG91bGREZWZlckFzeW5jaHJvbm91c1Nj
cmlwdHNVbnRpbEFmdGVyRG9jdW1lbnRMb2FkOikgQk9PTCBfc2hvdWxkRGVmZXJBc3luY2hyb25v
dXNTY3JpcHRzVW50aWxBZnRlckRvY3VtZW50TG9hZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgx
MC4xNCksIGlvcygxMi4wKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRSZXNw
ZWN0c0ltYWdlT3JpZW50YXRpb246KSBCT09MIF9yZXNwZWN0c0ltYWdlT3JpZW50YXRpb24gV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CitAcHJvcGVydHkgKG5vbmF0
b21pYywgc2V0dGVyPV9zZXRQcmludHNCYWNrZ3JvdW5kczopIEJPT0wgX3ByaW50c0JhY2tncm91
bmRzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOworQHByb3BlcnR5
IChub25hdG9taWMsIHNldHRlcj1fc2V0SW5jcmVtZW50YWxSZW5kZXJpbmdTdXBwcmVzc2lvblRp
bWVvdXQ6KSBOU1RpbWVJbnRlcnZhbCBfaW5jcmVtZW50YWxSZW5kZXJpbmdTdXBwcmVzc2lvblRp
bWVvdXQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CitAcHJvcGVy
dHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBbGxvd3NKYXZhU2NyaXB0TWFya3VwOikgQk9PTCBf
YWxsb3dzSmF2YVNjcmlwdE1hcmt1cCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9z
KDEwLjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldENvbnZlcnRzUG9zaXRp
b25TdHlsZU9uQ29weTopIEJPT0wgX2NvbnZlcnRzUG9zaXRpb25TdHlsZU9uQ29weSBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWlj
LCBzZXR0ZXI9X3NldEFsbG93c01ldGFSZWZyZXNoOikgQk9PTCBfYWxsb3dzTWV0YVJlZnJlc2gg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CitAcHJvcGVydHkgKG5v
bmF0b21pYywgc2V0dGVyPV9zZXRBbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMczopIEJP
T0wgX2FsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTAuMTIpLCBpb3MoMTAuMCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0
TmVlZHNTdG9yYWdlQWNjZXNzRnJvbUZpbGVVUkxzUXVpcms6KSBCT09MIF9uZWVkc1N0b3JhZ2VB
Y2Nlc3NGcm9tRmlsZVVSTHNRdWlyayBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyLjMpLCBp
b3MoMTAuMykpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0TWFpbkNvbnRlbnRV
c2VyR2VzdHVyZU92ZXJyaWRlRW5hYmxlZDopIEJPT0wgX21haW5Db250ZW50VXNlckdlc3R1cmVP
dmVycmlkZUVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7
CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRJbnZpc2libGVBdXRvcGxheU5vdFBl
cm1pdHRlZDopIEJPT0wgX2ludmlzaWJsZUF1dG9wbGF5Tm90UGVybWl0dGVkIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNl
dHRlcj1fc2V0TWVkaWFEYXRhTG9hZHNBdXRvbWF0aWNhbGx5OikgQk9PTCBfbWVkaWFEYXRhTG9h
ZHNBdXRvbWF0aWNhbGx5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkp
OworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0QXR0YWNobWVudEVsZW1lbnRFbmFi
bGVkOikgQk9PTCBfYXR0YWNobWVudEVsZW1lbnRFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTAuMTIpLCBpb3MoMTAuMCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0
QXR0YWNobWVudEZpbGVXcmFwcGVyQ2xhc3M6KSBDbGFzcyBfYXR0YWNobWVudEZpbGVXcmFwcGVy
Q2xhc3MgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEluaXRpYWxDYXBpdGFsaXphdGlv
bkVuYWJsZWQ6KSBCT09MIF9pbml0aWFsQ2FwaXRhbGl6YXRpb25FbmFibGVkIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNl
dHRlcj1fc2V0QXBwbGVQYXlFbmFibGVkOikgQk9PTCBfYXBwbGVQYXlFbmFibGVkIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOworQHByb3BlcnR5IChub25hdG9taWMs
IHNldHRlcj1fc2V0V2FpdHNGb3JQYWludEFmdGVyVmlld0RpZE1vdmVUb1dpbmRvdzopIEJPT0wg
X3dhaXRzRm9yUGFpbnRBZnRlclZpZXdEaWRNb3ZlVG9XaW5kb3cgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMC4xMi4zKSwgaW9zKDEwLjMpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9
X3NldENvbnRyb2xsZWRCeUF1dG9tYXRpb246LCBnZXR0ZXI9X2lzQ29udHJvbGxlZEJ5QXV0b21h
dGlvbikgQk9PTCBfY29udHJvbGxlZEJ5QXV0b21hdGlvbiBXS19BUElfQVZBSUxBQkxFKG1hY29z
KDEwLjEyLjMpLCBpb3MoMTAuMykpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0
QXBwbGljYXRpb25NYW5pZmVzdDopIF9XS0FwcGxpY2F0aW9uTWFuaWZlc3QgKl9hcHBsaWNhdGlv
bk1hbmlmZXN0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7CitA
cHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRDb2xvckZpbHRlckVuYWJsZWQ6KSBCT09M
IF9jb2xvckZpbHRlckVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygx
Mi4wKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRJbmNvbXBsZXRlSW1hZ2VC
b3JkZXJFbmFibGVkOikgQk9PTCBfaW5jb21wbGV0ZUltYWdlQm9yZGVyRW5hYmxlZCBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDEwLjE0KSwgaW9zKDEyLjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWlj
LCBzZXR0ZXI9X3NldERyYXdzQmFja2dyb3VuZDopIEJPT0wgX2RyYXdzQmFja2dyb3VuZCBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSwgaW9zKDEyLjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRv
bWljLCBzZXR0ZXI9X3NldFNob3VsZERlZmVyQXN5bmNocm9ub3VzU2NyaXB0c1VudGlsQWZ0ZXJE
b2N1bWVudExvYWQ6KSBCT09MIF9zaG91bGREZWZlckFzeW5jaHJvbm91c1NjcmlwdHNVbnRpbEFm
dGVyRG9jdW1lbnRMb2FkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpLCBpb3MoMTIuMCkp
OwogCiAjaWYgVEFSR0VUX09TX0lQSE9ORQogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1f
c2V0QWx3YXlzUnVuc0F0Rm9yZWdyb3VuZFByaW9yaXR5OikgQk9PTCBfYWx3YXlzUnVuc0F0Rm9y
ZWdyb3VuZFByaW9yaXR5IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDlfMCkpOwpAQCAtODMsMjcgKzgz
LDI3IEBAIHR5cGVkZWYgTlNfRU5VTShOU1VJbnRlZ2VyLCBfV0tEcmFnTGlmdERlbGF5KSB7CiBA
cHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRMb25nUHJlc3NBY3Rpb25zRW5hYmxlZDop
IEJPT0wgX2xvbmdQcmVzc0FjdGlvbnNFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEyLjAp
KTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFN5c3RlbVByZXZpZXdFbmFibGVk
OikgQk9PTCBfc3lzdGVtUHJldmlld0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTIuMCkp
OwogI2Vsc2UKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFNob3dzVVJMc0luVG9v
bFRpcHM6KSBCT09MIF9zaG93c1VSTHNJblRvb2xUaXBzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KDEwLjEyKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRTZXJ2aWNlQ29udHJv
bHNFbmFibGVkOikgQk9PTCBfc2VydmljZUNvbnRyb2xzRW5hYmxlZCBXS19BUElfQVZBSUxBQkxF
KG1hY29zeCgxMC4xMikpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0SW1hZ2VD
b250cm9sc0VuYWJsZWQ6KSBCT09MIF9pbWFnZUNvbnRyb2xzRW5hYmxlZCBXS19BUElfQVZBSUxB
QkxFKG1hY29zeCgxMC4xMikpOwotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWR3cml0ZSwgc2V0
dGVyPV9zZXRSZXF1aXJlc1VzZXJBY3Rpb25Gb3JFZGl0aW5nQ29udHJvbHNNYW5hZ2VyOikgQk9P
TCBfcmVxdWlyZXNVc2VyQWN0aW9uRm9yRWRpdGluZ0NvbnRyb2xzTWFuYWdlciBXS19BUElfQVZB
SUxBQkxFKG1hY29zeCgxMC4xMikpOwotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWR3cml0ZSwg
c2V0dGVyPV9zZXRDUFVMaW1pdDopIGRvdWJsZSBfY3B1TGltaXQgV0tfQVBJX0FWQUlMQUJMRSht
YWNvc3goMTAuMTMuNCkpOwotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWR3cml0ZSwgc2V0dGVy
PV9zZXRQYWdlR3JvdXA6KSBXS1BhZ2VHcm91cFJlZiBfcGFnZUdyb3VwIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3N4KDEwLjEzLjQpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFNo
b3dzVVJMc0luVG9vbFRpcHM6KSBCT09MIF9zaG93c1VSTHNJblRvb2xUaXBzIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTAuMTIpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFNl
cnZpY2VDb250cm9sc0VuYWJsZWQ6KSBCT09MIF9zZXJ2aWNlQ29udHJvbHNFbmFibGVkIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9
X3NldEltYWdlQ29udHJvbHNFbmFibGVkOikgQk9PTCBfaW1hZ2VDb250cm9sc0VuYWJsZWQgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMikpOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWR3
cml0ZSwgc2V0dGVyPV9zZXRSZXF1aXJlc1VzZXJBY3Rpb25Gb3JFZGl0aW5nQ29udHJvbHNNYW5h
Z2VyOikgQk9PTCBfcmVxdWlyZXNVc2VyQWN0aW9uRm9yRWRpdGluZ0NvbnRyb2xzTWFuYWdlciBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVh
ZHdyaXRlLCBzZXR0ZXI9X3NldENQVUxpbWl0OikgZG91YmxlIF9jcHVMaW1pdCBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkd3JpdGUs
IHNldHRlcj1fc2V0UGFnZUdyb3VwOikgV0tQYWdlR3JvdXBSZWYgX3BhZ2VHcm91cCBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKICNlbmRpZgogCi1AcHJvcGVydHkgKG5vbmF0b21p
Yywgc3Ryb25nLCBzZXR0ZXI9X3NldFdlYnNpdGVEYXRhU3RvcmU6KSBfV0tXZWJzaXRlRGF0YVN0
b3JlICpfd2Vic2l0ZURhdGFTdG9yZSBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5U
KCJ3ZWJzaXRlRGF0YVN0b3JlIiwgbWFjb3N4KDEwLjEwLCAxMC4xMSksIGlvcyg4LjAsIDkuMCkp
OwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0UmVxdWlyZXNVc2VyQWN0aW9uRm9y
QXVkaW9QbGF5YmFjazopIEJPT0wgX3JlcXVpcmVzVXNlckFjdGlvbkZvckF1ZGlvUGxheWJhY2sg
V0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgibWVkaWFUeXBlc1JlcXVpcmluZ1Vz
ZXJBY3Rpb25Gb3JQbGF5YmFjayIsIG1hY29zeCgxMC4xMiwgMTAuMTIpLCBpb3MoMTAuMCwgMTAu
MCkpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0UmVxdWlyZXNVc2VyQWN0aW9u
Rm9yVmlkZW9QbGF5YmFjazopIEJPT0wgX3JlcXVpcmVzVXNlckFjdGlvbkZvclZpZGVvUGxheWJh
Y2sgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgibWVkaWFUeXBlc1JlcXVpcmlu
Z1VzZXJBY3Rpb25Gb3JQbGF5YmFjayIsIG1hY29zeCgxMC4xMiwgMTAuMTIpLCBpb3MoMTAuMCwg
MTAuMCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHN0cm9uZywgc2V0dGVyPV9zZXRXZWJzaXRl
RGF0YVN0b3JlOikgX1dLV2Vic2l0ZURhdGFTdG9yZSAqX3dlYnNpdGVEYXRhU3RvcmUgV0tfQVBJ
X0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgid2Vic2l0ZURhdGFTdG9yZSIsIG1hY29zKDEw
LjEwLCAxMC4xMSksIGlvcyg4LjAsIDkuMCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRl
cj1fc2V0UmVxdWlyZXNVc2VyQWN0aW9uRm9yQXVkaW9QbGF5YmFjazopIEJPT0wgX3JlcXVpcmVz
VXNlckFjdGlvbkZvckF1ZGlvUGxheWJhY2sgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNF
TUVOVCgibWVkaWFUeXBlc1JlcXVpcmluZ1VzZXJBY3Rpb25Gb3JQbGF5YmFjayIsIG1hY29zKDEw
LjEyLCAxMC4xMiksIGlvcygxMC4wLCAxMC4wKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0
dGVyPV9zZXRSZXF1aXJlc1VzZXJBY3Rpb25Gb3JWaWRlb1BsYXliYWNrOikgQk9PTCBfcmVxdWly
ZXNVc2VyQWN0aW9uRm9yVmlkZW9QbGF5YmFjayBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExB
Q0VNRU5UKCJtZWRpYVR5cGVzUmVxdWlyaW5nVXNlckFjdGlvbkZvclBsYXliYWNrIiwgbWFjb3Mo
MTAuMTIsIDEwLjEyKSwgaW9zKDEwLjAsIDEwLjApKTsKIAotQHByb3BlcnR5IChub25hdG9taWMs
IHNldHRlcj1fc2V0T3ZlcnJpZGVDb250ZW50U2VjdXJpdHlQb2xpY3k6KSBOU1N0cmluZyAqX292
ZXJyaWRlQ29udGVudFNlY3VyaXR5UG9saWN5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEy
LjMpLCBpb3MoMTAuMykpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0TWVkaWFD
b250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQ6KSBOU1N0cmluZyAqX21lZGlhQ29u
dGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KDEwLjEzKSwgaW9zKDExLjApKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldExl
Z2FjeUVuY3J5cHRlZE1lZGlhQVBJRW5hYmxlZDopIEJPT0wgX2xlZ2FjeUVuY3J5cHRlZE1lZGlh
QVBJRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7Ci1A
cHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBbGxvd01lZGlhQ29udGVudFR5cGVzUmVx
dWlyaW5nSGFyZHdhcmVTdXBwb3J0QXNGYWxsYmFjazopIEJPT0wgX2FsbG93TWVkaWFDb250ZW50
VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnRBc0ZhbGxiYWNrIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3N4KDEwLjEzKSwgaW9zKDExLjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9
X3NldE92ZXJyaWRlQ29udGVudFNlY3VyaXR5UG9saWN5OikgTlNTdHJpbmcgKl9vdmVycmlkZUNv
bnRlbnRTZWN1cml0eVBvbGljeSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyLjMpLCBpb3Mo
MTAuMykpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0TWVkaWFDb250ZW50VHlw
ZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQ6KSBOU1N0cmluZyAqX21lZGlhQ29udGVudFR5cGVz
UmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBp
b3MoMTEuMCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0TGVnYWN5RW5jcnlw
dGVkTWVkaWFBUElFbmFibGVkOikgQk9PTCBfbGVnYWN5RW5jcnlwdGVkTWVkaWFBUElFbmFibGVk
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpOworQHByb3BlcnR5IChu
b25hdG9taWMsIHNldHRlcj1fc2V0QWxsb3dNZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3
YXJlU3VwcG9ydEFzRmFsbGJhY2s6KSBCT09MIF9hbGxvd01lZGlhQ29udGVudFR5cGVzUmVxdWly
aW5nSGFyZHdhcmVTdXBwb3J0QXNGYWxsYmFjayBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEz
KSwgaW9zKDExLjApKTsKIAogLy8gVGhlIGlucHV0IG9mIHRoaXMgU1BJIGlzIGFuIGFycmF5IG9m
IGltYWdlIFVUSSAoVW5pZm9ybSBUeXBlIElkZW50aWZpZXIpLgotQHByb3BlcnR5IChub25hdG9t
aWMsIGNvcHksIHNldHRlcj1fc2V0QWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXM6KSBOU0Fy
cmF5PE5TU3RyaW5nICo+ICpfYWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkg
KG5vbmF0b21pYywgY29weSwgc2V0dGVyPV9zZXRBZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBl
czopIE5TQXJyYXk8TlNTdHJpbmcgKj4gKl9hZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcyBX
S19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCi1A
cHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRFZGl0YWJsZUltYWdlc0VuYWJsZWQ6KSBC
T09MIF9lZGl0YWJsZUltYWdlc0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFD
X1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9z
ZXRFZGl0YWJsZUltYWdlc0VuYWJsZWQ6KSBCT09MIF9lZGl0YWJsZUltYWdlc0VuYWJsZWQgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIEBwcm9w
ZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFVuZG9NYW5hZ2VyQVBJRW5hYmxlZDopIEJPT0wg
X3VuZG9NYW5hZ2VyQVBJRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOwogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAppbmRleCA3M2Y3MjgxZmFiZTYwMDM1
OGFlODQ3M2MyY2E3YzhkNDRiOGE3YjVlLi44ZTk5ZWNlYTdmMGUxZjk3ZGE3ZmEyMmE4Y2IwOWNm
MDFiNTEyNGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXdQcml2YXRlLmgKQEAgLTM5LDcgKzM5LDcgQEAgdHlwZWRlZiBOU19FTlVNKE5T
SW50ZWdlciwgX1dLUGFnaW5hdGlvbk1vZGUpIHsKICAgICBfV0tQYWdpbmF0aW9uTW9kZVJpZ2h0
VG9MZWZ0LAogICAgIF9XS1BhZ2luYXRpb25Nb2RlVG9wVG9Cb3R0b20sCiAgICAgX1dLUGFnaW5h
dGlvbk1vZGVCb3R0b21Ub1RvcCwKLX0gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBp
b3MoOC4wKSk7Cit9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4wKSk7CiAK
IHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tNZWRpYUNhcHR1cmVTdGF0ZSkgewog
ICAgIF9XS01lZGlhQ2FwdHVyZVN0YXRlTm9uZSA9IDAsCkBAIC00NywyNiArNDcsMjYgQEAgdHlw
ZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS01lZGlhQ2FwdHVyZVN0YXRlKSB7CiAgICAg
X1dLTWVkaWFDYXB0dXJlU3RhdGVBY3RpdmVDYW1lcmEgPSAxIDw8IDEsCiAgICAgX1dLTWVkaWFD
YXB0dXJlU3RhdGVNdXRlZE1pY3JvcGhvbmUgPSAxIDw8IDIsCiAgICAgX1dLTWVkaWFDYXB0dXJl
U3RhdGVNdXRlZENhbWVyYSA9IDEgPDwgMywKLX0gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAu
MTMpLCBpb3MoMTEuMCkpOworfSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDEx
LjApKTsKIAogdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS01lZGlhTXV0ZWRTdGF0
ZSkgewogICAgIF9XS01lZGlhTm9uZU11dGVkID0gMCwKICAgICBfV0tNZWRpYUF1ZGlvTXV0ZWQg
PSAxIDw8IDAsCiAgICAgX1dLTWVkaWFDYXB0dXJlRGV2aWNlc011dGVkID0gMSA8PCAxLAotfSBX
S19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7Cit9IFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpOwogCiB0eXBlZGVmIE5TX09QVElPTlMoTlNV
SW50ZWdlciwgX1dLQ2FwdHVyZURldmljZXMpIHsKICAgICBfV0tDYXB0dXJlRGV2aWNlTWljcm9w
aG9uZSA9IDEgPDwgMCwKICAgICBfV0tDYXB0dXJlRGV2aWNlQ2FtZXJhID0gMSA8PCAxLAogICAg
IF9XS0NhcHR1cmVEZXZpY2VEaXNwbGF5ID0gMSA8PCAyLAotfSBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeCgxMC4xMyksIGlvcygxMS4wKSk7Cit9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMp
LCBpb3MoMTEuMCkpOwogCiB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dLU2VsZWN0
aW9uQXR0cmlidXRlcykgewogICAgIF9XS1NlbGVjdGlvbkF0dHJpYnV0ZU5vU2VsZWN0aW9uID0g
MCwKICAgICBfV0tTZWxlY3Rpb25BdHRyaWJ1dGVJc0NhcmV0ID0gMSA8PCAwLAogICAgIF9XS1Nl
bGVjdGlvbkF0dHJpYnV0ZUlzUmFuZ2UgPSAxIDw8IDEsCiAgICAgX1dLU2VsZWN0aW9uQXR0cmli
dXRlQXRTdGFydE9mU2VudGVuY2UgPSAxIDw8IDIsCi19IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworfSBXS19BUElfQVZBSUxBQkxFKG1hY29z
KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiAjaWYgVEFSR0VUX09TX0lQSE9ORQog
CkBAIC04OSw3ICs4OSw3IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS0ltbWVkaWF0
ZUFjdGlvblR5cGUpIHsKICAgICBfV0tJbW1lZGlhdGVBY3Rpb25Mb29rdXBUZXh0LAogICAgIF9X
S0ltbWVkaWF0ZUFjdGlvbk1haWx0b0xpbmssCiAgICAgX1dLSW1tZWRpYXRlQWN0aW9uVGVsTGlu
awotfSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMikpOworfSBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjEyKSk7CiAKIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tSZWN0
RWRnZSkgewogICAgIF9XS1JlY3RFZGdlTm9uZSA9IDAsCkBAIC05OCw3ICs5OCw3IEBAIHR5cGVk
ZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tSZWN0RWRnZSkgewogICAgIF9XS1JlY3RFZGdl
UmlnaHQgPSAxIDw8IENHUmVjdE1heFhFZGdlLAogICAgIF9XS1JlY3RFZGdlQm90dG9tID0gMSA8
PCBDR1JlY3RNYXhZRWRnZSwKICAgICBfV0tSZWN0RWRnZUFsbCA9IF9XS1JlY3RFZGdlTGVmdCB8
IF9XS1JlY3RFZGdlVG9wIHwgX1dLUmVjdEVkZ2VSaWdodCB8IF9XS1JlY3RFZGdlQm90dG9tLAot
fSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSk7Cit9IFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTAuMTMuNCkpOwogCiAjZW5kaWYKIApAQCAtMTM3LDI1ICsxMzcsMjUgQEAgdHlwZWRl
ZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS1JlY3RFZGdlKSB7CiBAcHJvcGVydHkgKG5vbmF0
b21pYywgcmVhZG9ubHkpIE5TVVJMICpfdW5yZWFjaGFibGVVUkw7CiAKIC0gKHZvaWQpX2xvYWRB
bHRlcm5hdGVIVE1MU3RyaW5nOihOU1N0cmluZyAqKXN0cmluZyBiYXNlVVJMOihOU1VSTCAqKWJh
c2VVUkwgZm9yVW5yZWFjaGFibGVVUkw6KE5TVVJMICopdW5yZWFjaGFibGVVUkw7Ci0tIChXS05h
dmlnYXRpb24gKilfbG9hZERhdGE6KE5TRGF0YSAqKWRhdGEgTUlNRVR5cGU6KE5TU3RyaW5nICop
TUlNRVR5cGUgY2hhcmFjdGVyRW5jb2RpbmdOYW1lOihOU1N0cmluZyAqKWNoYXJhY3RlckVuY29k
aW5nTmFtZSBiYXNlVVJMOihOU1VSTCAqKWJhc2VVUkwgdXNlckRhdGE6KGlkKXVzZXJEYXRhIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsKLS0gKFdLTmF2aWdhdGlv
biAqKV9sb2FkUmVxdWVzdDooTlNVUkxSZXF1ZXN0ICopcmVxdWVzdCBzaG91bGRPcGVuRXh0ZXJu
YWxVUkxzOihCT09MKXNob3VsZE9wZW5FeHRlcm5hbFVSTHMgV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goMTAuMTMpLCBpb3MoMTEuMCkpOworLSAoV0tOYXZpZ2F0aW9uICopX2xvYWREYXRhOihOU0Rh
dGEgKilkYXRhIE1JTUVUeXBlOihOU1N0cmluZyAqKU1JTUVUeXBlIGNoYXJhY3RlckVuY29kaW5n
TmFtZTooTlNTdHJpbmcgKiljaGFyYWN0ZXJFbmNvZGluZ05hbWUgYmFzZVVSTDooTlNVUkwgKili
YXNlVVJMIHVzZXJEYXRhOihpZCl1c2VyRGF0YSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEy
KSwgaW9zKDEwLjApKTsKKy0gKFdLTmF2aWdhdGlvbiAqKV9sb2FkUmVxdWVzdDooTlNVUkxSZXF1
ZXN0ICopcmVxdWVzdCBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzOihCT09MKXNob3VsZE9wZW5FeHRl
cm5hbFVSTHMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSk7CiAKLUBw
cm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNBcnJheSAqX2NlcnRpZmljYXRlQ2hhaW4g
V0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiY2VydGlmaWNhdGVDaGFpbiIsIG1h
Y29zeCgxMC4xMCwgMTAuMTEpLCBpb3MoOC4wLCA5LjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWlj
LCByZWFkb25seSkgTlNBcnJheSAqX2NlcnRpZmljYXRlQ2hhaW4gV0tfQVBJX0RFUFJFQ0FURURf
V0lUSF9SRVBMQUNFTUVOVCgiY2VydGlmaWNhdGVDaGFpbiIsIG1hY29zKDEwLjEwLCAxMC4xMSks
IGlvcyg4LjAsIDkuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1VSTCAq
X2NvbW1pdHRlZFVSTDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNTdHJpbmcg
Kl9NSU1FVHlwZTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNTdHJpbmcgKl91
c2VyQWdlbnQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CitAcHJv
cGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TU3RyaW5nICpfdXNlckFnZW50IFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTAuMTEpLCBpb3MoOS4wKSk7CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWlj
LCByZWFkb25seSwgZ2V0dGVyPV9pc1BsYXlpbmdBdWRpbykgQk9PTCBfcGxheWluZ0F1ZGlvIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpLCBpb3MoMTEuMykpOworQHByb3BlcnR5IChu
b25hdG9taWMsIHJlYWRvbmx5LCBnZXR0ZXI9X2lzUGxheWluZ0F1ZGlvKSBCT09MIF9wbGF5aW5n
QXVkaW8gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKIAogQHBy
b3BlcnR5IChjb3B5LCBzZXR0ZXI9X3NldEFwcGxpY2F0aW9uTmFtZUZvclVzZXJBZ2VudDopIE5T
U3RyaW5nICpfYXBwbGljYXRpb25OYW1lRm9yVXNlckFnZW50OwogQHByb3BlcnR5IChjb3B5LCBz
ZXR0ZXI9X3NldEN1c3RvbVVzZXJBZ2VudDopIE5TU3RyaW5nICpfY3VzdG9tVXNlckFnZW50Owog
Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRVc2VyQ29udGVudEV4dGVuc2lvbnNF
bmFibGVkOikgQk9PTCBfdXNlckNvbnRlbnRFeHRlbnNpb25zRW5hYmxlZCBXS19BUElfQVZBSUxB
QkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0
ZXI9X3NldFVzZXJDb250ZW50RXh0ZW5zaW9uc0VuYWJsZWQ6KSBCT09MIF91c2VyQ29udGVudEV4
dGVuc2lvbnNFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTEpLCBpb3MoOS4wKSk7
CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgcGlkX3QgX3dlYlByb2Nlc3NJZGVu
dGlmaWVyOwotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBwaWRfdCBfcHJvdmlzaW9u
YWxXZWJQcm9jZXNzSWRlbnRpZmllciBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJB
KSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgcGlk
X3QgX3Byb3Zpc2lvbmFsV2ViUHJvY2Vzc0lkZW50aWZpZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAotQHByb3BlcnR5IChub25hdG9taWMs
IGdldHRlcj1faXNFZGl0YWJsZSwgc2V0dGVyPV9zZXRFZGl0YWJsZTopIEJPT0wgX2VkaXRhYmxl
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOworQHByb3BlcnR5IChu
b25hdG9taWMsIGdldHRlcj1faXNFZGl0YWJsZSwgc2V0dGVyPV9zZXRFZGl0YWJsZTopIEJPT0wg
X2VkaXRhYmxlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTEpLCBpb3MoOS4wKSk7CiAKIC8v
IEZJWE1FOiBSZW1vdmUgdGhlc2Ugb25jZSBub2JvZHkgaXMgdXNpbmcgdGhlbS4KIEBwcm9wZXJ0
eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNEYXRhICpfc2Vzc2lvblN0YXRlRGF0YTsKQEAgLTE2
Niw3ICsxNjYsNyBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dLUmVjdEVkZ2Up
IHsKIC0gKF9XS1Nlc3Npb25TdGF0ZSAqKV9zZXNzaW9uU3RhdGVXaXRoRmlsdGVyOihCT09MIChe
KShXS0JhY2tGb3J3YXJkTGlzdEl0ZW0gKml0ZW0pKWZpbHRlcjsKIAogQHByb3BlcnR5IChub25h
dG9taWMsIHNldHRlcj1fc2V0QWxsb3dzUmVtb3RlSW5zcGVjdGlvbjopIEJPT0wgX2FsbG93c1Jl
bW90ZUluc3BlY3Rpb247Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgY29weSwgc2V0dGVyPV9zZXRS
ZW1vdGVJbnNwZWN0aW9uTmFtZU92ZXJyaWRlOikgTlNTdHJpbmcgKl9yZW1vdGVJbnNwZWN0aW9u
TmFtZU92ZXJyaWRlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsK
K0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5LCBzZXR0ZXI9X3NldFJlbW90ZUluc3BlY3Rpb25O
YW1lT3ZlcnJpZGU6KSBOU1N0cmluZyAqX3JlbW90ZUluc3BlY3Rpb25OYW1lT3ZlcnJpZGUgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CiAKIEBwcm9wZXJ0eSAobm9u
YXRvbWljLCBzZXR0ZXI9X3NldEFkZHNWaXNpdGVkTGlua3M6KSBCT09MIF9hZGRzVmlzaXRlZExp
bmtzOwogCkBAIC0xNzYsNTggKzE3Niw1OCBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdl
ciwgX1dLUmVjdEVkZ2UpIHsKIAogLSAodm9pZClfY2xvc2U7CiAKLS0gKHZvaWQpX3VwZGF0ZVdl
YnNpdGVQb2xpY2llczooX1dLV2Vic2l0ZVBvbGljaWVzICopd2Vic2l0ZVBvbGljaWVzIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzKSwgaW9zKDExLjApKTsKKy0gKHZvaWQpX3VwZGF0ZVdl
YnNpdGVQb2xpY2llczooX1dLV2Vic2l0ZVBvbGljaWVzICopd2Vic2l0ZVBvbGljaWVzIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpOwogCi0tICh2b2lkKV9ldmFsdWF0
ZUphdmFTY3JpcHRXaXRob3V0VXNlckdlc3R1cmU6KE5TU3RyaW5nICopamF2YVNjcmlwdFN0cmlu
ZyBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoaWQsIE5TRXJyb3IgKikpY29tcGxldGlvbkhh
bmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpOworLSAodm9p
ZClfZXZhbHVhdGVKYXZhU2NyaXB0V2l0aG91dFVzZXJHZXN0dXJlOihOU1N0cmluZyAqKWphdmFT
Y3JpcHRTdHJpbmcgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKGlkLCBOU0Vycm9yICopKWNv
bXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkp
OwogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRMYXlvdXRNb2RlOikgX1dLTGF5
b3V0TW9kZSBfbGF5b3V0TW9kZTsKIC8vIEZvciB1c2Ugd2l0aCBfbGF5b3V0TW9kZSA9IF9XS0xh
eW91dE1vZGVGaXhlZFNpemU6CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRGaXhl
ZExheW91dFNpemU6KSBDR1NpemUgX2ZpeGVkTGF5b3V0U2l6ZTsKIAotQHByb3BlcnR5IChub25h
dG9taWMsIHNldHRlcj1fc2V0Vmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0czopIENHU2l6
ZSBfdmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cyBXS19BUElfQVZBSUxBQkxFKG1hY29z
eCgxMC4xMyksIGlvcygxMS4wKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRW
aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzOikgQ0dTaXplIF92aWV3cG9ydFNpemVGb3JD
U1NWaWV3cG9ydFVuaXRzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkp
OwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRWaWV3U2NhbGU6KSBDR0Zsb2F0
IF92aWV3U2NhbGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CitA
cHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRWaWV3U2NhbGU6KSBDR0Zsb2F0IF92aWV3
U2NhbGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMSksIGlvcyg5LjApKTsKIAotQHByb3Bl
cnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0TWluaW11bUVmZmVjdGl2ZURldmljZVdpZHRoOikg
Q0dGbG9hdCBfbWluaW11bUVmZmVjdGl2ZURldmljZVdpZHRoIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMs
IHNldHRlcj1fc2V0TWluaW11bUVmZmVjdGl2ZURldmljZVdpZHRoOikgQ0dGbG9hdCBfbWluaW11
bUVmZmVjdGl2ZURldmljZVdpZHRoIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBKSk7CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEJh
Y2tncm91bmRFeHRlbmRzQmV5b25kUGFnZTopIEJPT0wgX2JhY2tncm91bmRFeHRlbmRzQmV5b25k
UGFnZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSwgaW9zKDguMCkpOworQHByb3Bl
cnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0QmFja2dyb3VuZEV4dGVuZHNCZXlvbmRQYWdlOikg
Qk9PTCBfYmFja2dyb3VuZEV4dGVuZHNCZXlvbmRQYWdlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTAuMTMuNCksIGlvcyg4LjApKTsKIAotLSAoX1dLQXR0YWNobWVudCAqKV9pbnNlcnRBdHRhY2ht
ZW50V2l0aEZpbGVuYW1lOihOU1N0cmluZyAqKWZpbGVuYW1lIGNvbnRlbnRUeXBlOihOU1N0cmlu
ZyAqKWNvbnRlbnRUeXBlIGRhdGE6KE5TRGF0YSAqKWRhdGEgb3B0aW9uczooX1dLQXR0YWNobWVu
dERpc3BsYXlPcHRpb25zICopb3B0aW9ucyBjb21wbGV0aW9uOih2b2lkKF4pKEJPT0wgc3VjY2Vz
cykpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgi
LV9pbnNlcnRBdHRhY2htZW50V2l0aEZpbGVXcmFwcGVyOmNvbnRlbnRUeXBlOm9wdGlvbnM6Y29t
cGxldGlvbjoiLCBtYWNvc3goMTAuMTMuNCwgV0tfTUFDX1RCQSksIGlvcygxMS4zLCBXS19JT1Nf
VEJBKSk7Ci0tIChfV0tBdHRhY2htZW50ICopX2luc2VydEF0dGFjaG1lbnRXaXRoRmlsZVdyYXBw
ZXI6KE5TRmlsZVdyYXBwZXIgKilmaWxlV3JhcHBlciBjb250ZW50VHlwZTooTlNTdHJpbmcgKilj
b250ZW50VHlwZSBvcHRpb25zOihfV0tBdHRhY2htZW50RGlzcGxheU9wdGlvbnMgKilvcHRpb25z
IGNvbXBsZXRpb246KHZvaWQoXikoQk9PTCBzdWNjZXNzKSljb21wbGV0aW9uSGFuZGxlciBXS19B
UElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCItX2luc2VydEF0dGFjaG1lbnRXaXRoRmls
ZVdyYXBwZXI6Y29udGVudFR5cGU6Y29tcGxldGlvbjoiLCBtYWNvc3goV0tfTUFDX1RCQSwgV0tf
TUFDX1RCQSksIGlvcyhXS19JT1NfVEJBLCBXS19JT1NfVEJBKSk7Ci0tIChfV0tBdHRhY2htZW50
ICopX2luc2VydEF0dGFjaG1lbnRXaXRoRmlsZVdyYXBwZXI6KE5TRmlsZVdyYXBwZXIgKilmaWxl
V3JhcHBlciBjb250ZW50VHlwZTooTlNTdHJpbmcgKiljb250ZW50VHlwZSBjb21wbGV0aW9uOih2
b2lkKF4pKEJPT0wgc3VjY2VzcykpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRSht
YWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci0tIChfV0tBdHRhY2htZW50ICop
X2F0dGFjaG1lbnRGb3JJZGVudGlmaWVyOihOU1N0cmluZyAqKWlkZW50aWZpZXIgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistIChfV0tBdHRh
Y2htZW50ICopX2luc2VydEF0dGFjaG1lbnRXaXRoRmlsZW5hbWU6KE5TU3RyaW5nICopZmlsZW5h
bWUgY29udGVudFR5cGU6KE5TU3RyaW5nICopY29udGVudFR5cGUgZGF0YTooTlNEYXRhICopZGF0
YSBvcHRpb25zOihfV0tBdHRhY2htZW50RGlzcGxheU9wdGlvbnMgKilvcHRpb25zIGNvbXBsZXRp
b246KHZvaWQoXikoQk9PTCBzdWNjZXNzKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfREVQUkVD
QVRFRF9XSVRIX1JFUExBQ0VNRU5UKCItX2luc2VydEF0dGFjaG1lbnRXaXRoRmlsZVdyYXBwZXI6
Y29udGVudFR5cGU6b3B0aW9uczpjb21wbGV0aW9uOiIsIG1hY29zKDEwLjEzLjQsIFdLX01BQ19U
QkEpLCBpb3MoMTEuMywgV0tfSU9TX1RCQSkpOworLSAoX1dLQXR0YWNobWVudCAqKV9pbnNlcnRB
dHRhY2htZW50V2l0aEZpbGVXcmFwcGVyOihOU0ZpbGVXcmFwcGVyICopZmlsZVdyYXBwZXIgY29u
dGVudFR5cGU6KE5TU3RyaW5nICopY29udGVudFR5cGUgb3B0aW9uczooX1dLQXR0YWNobWVudERp
c3BsYXlPcHRpb25zICopb3B0aW9ucyBjb21wbGV0aW9uOih2b2lkKF4pKEJPT0wgc3VjY2Vzcykp
Y29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiLV9p
bnNlcnRBdHRhY2htZW50V2l0aEZpbGVXcmFwcGVyOmNvbnRlbnRUeXBlOmNvbXBsZXRpb246Iiwg
bWFjb3MoV0tfTUFDX1RCQSwgV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBLCBXS19JT1NfVEJB
KSk7CistIChfV0tBdHRhY2htZW50ICopX2luc2VydEF0dGFjaG1lbnRXaXRoRmlsZVdyYXBwZXI6
KE5TRmlsZVdyYXBwZXIgKilmaWxlV3JhcHBlciBjb250ZW50VHlwZTooTlNTdHJpbmcgKiljb250
ZW50VHlwZSBjb21wbGV0aW9uOih2b2lkKF4pKEJPT0wgc3VjY2VzcykpY29tcGxldGlvbkhhbmRs
ZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
Ky0gKF9XS0F0dGFjaG1lbnQgKilfYXR0YWNobWVudEZvcklkZW50aWZpZXI6KE5TU3RyaW5nICop
aWRlbnRpZmllciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9T
X1RCQSkpOwogCi0tICh2b2lkKV9zaW11bGF0ZURldmljZU9yaWVudGF0aW9uQ2hhbmdlV2l0aEFs
cGhhOihkb3VibGUpYWxwaGEgYmV0YTooZG91YmxlKWJldGEgZ2FtbWE6KGRvdWJsZSlnYW1tYSBX
S19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0g
KHZvaWQpX3NpbXVsYXRlRGV2aWNlT3JpZW50YXRpb25DaGFuZ2VXaXRoQWxwaGE6KGRvdWJsZSlh
bHBoYSBiZXRhOihkb3VibGUpYmV0YSBnYW1tYTooZG91YmxlKWdhbW1hIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKLSsgKEJPT0wpX2hhbmRs
ZXNTYWZlQnJvd3NpbmcgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhX
S19JT1NfVEJBKSk7Ci0rIChOU1VSTCAqKV9jb25maXJtTWFsd2FyZVNlbnRpbmVsIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotKyAoTlNVUkwg
KilfdmlzaXRVbnNhZmVXZWJzaXRlU2VudGluZWwgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tf
TUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci0tICh2b2lkKV9zaG93U2FmZUJyb3dzaW5nV2Fy
bmluZ1dpdGhUaXRsZTooTlNTdHJpbmcgKil0aXRsZSB3YXJuaW5nOihOU1N0cmluZyAqKXdhcm5p
bmcgZGV0YWlsczooTlNBdHRyaWJ1dGVkU3RyaW5nICopZGV0YWlscyBjb21wbGV0aW9uSGFuZGxl
cjoodm9pZCheKShCT09MKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29z
eChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLS0gKHZvaWQpX3Nob3dTYWZlQnJvd3Np
bmdXYXJuaW5nV2l0aFVSTDooTlNVUkwgKil1cmwgdGl0bGU6KE5TU3RyaW5nICopdGl0bGUgd2Fy
bmluZzooTlNTdHJpbmcgKil3YXJuaW5nIGRldGFpbHM6KE5TQXR0cmlidXRlZFN0cmluZyAqKWRl
dGFpbHMgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikoQk9PTCkpY29tcGxldGlvbkhhbmRsZXIg
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Cisr
IChCT09MKV9oYW5kbGVzU2FmZUJyb3dzaW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFD
X1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CisrIChOU1VSTCAqKV9jb25maXJtTWFsd2FyZVNlbnRp
bmVsIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7
CisrIChOU1VSTCAqKV92aXNpdFVuc2FmZVdlYnNpdGVTZW50aW5lbCBXS19BUElfQVZBSUxBQkxF
KG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfc2hvd1NhZmVC
cm93c2luZ1dhcm5pbmdXaXRoVGl0bGU6KE5TU3RyaW5nICopdGl0bGUgd2FybmluZzooTlNTdHJp
bmcgKil3YXJuaW5nIGRldGFpbHM6KE5TQXR0cmlidXRlZFN0cmluZyAqKWRldGFpbHMgY29tcGxl
dGlvbkhhbmRsZXI6KHZvaWQoXikoQk9PTCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX3Nob3dT
YWZlQnJvd3NpbmdXYXJuaW5nV2l0aFVSTDooTlNVUkwgKil1cmwgdGl0bGU6KE5TU3RyaW5nICop
dGl0bGUgd2FybmluZzooTlNTdHJpbmcgKil3YXJuaW5nIGRldGFpbHM6KE5TQXR0cmlidXRlZFN0
cmluZyAqKWRldGFpbHMgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikoQk9PTCkpY29tcGxldGlv
bkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19U
QkEpKTsKIAotLSAodm9pZClfaXNKSVRFbmFibGVkOih2b2lkKF4pKEJPT0wpKWNvbXBsZXRpb25I
YW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RC
QSkpOwotLSAodm9pZClfcmVtb3ZlRGF0YURldGVjdGVkTGlua3M6KGRpc3BhdGNoX2Jsb2NrX3Qp
Y29tcGxldGlvbiBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lP
U19UQkEpKTsKKy0gKHZvaWQpX2lzSklURW5hYmxlZDoodm9pZCheKShCT09MKSljb21wbGV0aW9u
SGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RC
QSkpOworLSAodm9pZClfcmVtb3ZlRGF0YURldGVjdGVkTGlua3M6KGRpc3BhdGNoX2Jsb2NrX3Qp
Y29tcGxldGlvbiBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9T
X1RCQSkpOwogCi0tIChJQkFjdGlvbilfYWxpZ25DZW50ZXI6KGlkKXNlbmRlciBXS19BUElfQVZB
SUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLS0gKElCQWN0aW9u
KV9hbGlnbkp1c3RpZmllZDooaWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01B
Q19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotLSAoSUJBY3Rpb24pX2FsaWduTGVmdDooaWQpc2Vu
ZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkp
OwotLSAoSUJBY3Rpb24pX2FsaWduUmlnaHQ6KGlkKXNlbmRlciBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLS0gKElCQWN0aW9uKV9pbmRlbnQ6
KGlkKXNlbmRlciBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lP
U19UQkEpKTsKLS0gKElCQWN0aW9uKV9vdXRkZW50OihpZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci0tIChJQkFjdGlvbilfdG9n
Z2xlU3RyaWtlVGhyb3VnaDooaWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01B
Q19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotLSAoSUJBY3Rpb24pX2luc2VydE9yZGVyZWRMaXN0
OihpZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19J
T1NfVEJBKSk7Ci0tIChJQkFjdGlvbilfaW5zZXJ0VW5vcmRlcmVkTGlzdDooaWQpc2VuZGVyIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotLSAo
SUJBY3Rpb24pX2luc2VydE5lc3RlZE9yZGVyZWRMaXN0OihpZClzZW5kZXIgV0tfQVBJX0FWQUlM
QUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci0tIChJQkFjdGlvbilf
aW5zZXJ0TmVzdGVkVW5vcmRlcmVkTGlzdDooaWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotLSAoSUJBY3Rpb24pX2luY3JlYXNl
TGlzdExldmVsOihpZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBKSk7Ci0tIChJQkFjdGlvbilfZGVjcmVhc2VMaXN0TGV2ZWw6KGlkKXNl
bmRlciBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KTsKLS0gKElCQWN0aW9uKV9jaGFuZ2VMaXN0VHlwZTooaWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotLSAoSUJBY3Rpb24pX3Bh
c3RlQXNRdW90YXRpb246KGlkKXNlbmRlciBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLS0gKElCQWN0aW9uKV9wYXN0ZUFuZE1hdGNoU3R5bGU6
KGlkKXNlbmRlciBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lP
U19UQkEpKTsKLS0gKElCQWN0aW9uKV90YWtlRmluZFN0cmluZ0Zyb21TZWxlY3Rpb246KGlkKXNl
bmRlciBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KTsKKy0gKElCQWN0aW9uKV9hbGlnbkNlbnRlcjooaWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistIChJQkFjdGlvbilfYWxpZ25K
dXN0aWZpZWQ6KGlkKXNlbmRlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBp
b3MoV0tfSU9TX1RCQSkpOworLSAoSUJBY3Rpb24pX2FsaWduTGVmdDooaWQpc2VuZGVyIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistIChJQkFj
dGlvbilfYWxpZ25SaWdodDooaWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFD
X1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistIChJQkFjdGlvbilfaW5kZW50OihpZClzZW5kZXIg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0g
KElCQWN0aW9uKV9vdXRkZW50OihpZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19N
QUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKElCQWN0aW9uKV90b2dnbGVTdHJpa2VUaHJv
dWdoOihpZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdL
X0lPU19UQkEpKTsKKy0gKElCQWN0aW9uKV9pbnNlcnRPcmRlcmVkTGlzdDooaWQpc2VuZGVyIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistIChJ
QkFjdGlvbilfaW5zZXJ0VW5vcmRlcmVkTGlzdDooaWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistIChJQkFjdGlvbilfaW5zZXJ0
TmVzdGVkT3JkZXJlZExpc3Q6KGlkKXNlbmRlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01B
Q19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAoSUJBY3Rpb24pX2luc2VydE5lc3RlZFVub3Jk
ZXJlZExpc3Q6KGlkKXNlbmRlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBp
b3MoV0tfSU9TX1RCQSkpOworLSAoSUJBY3Rpb24pX2luY3JlYXNlTGlzdExldmVsOihpZClzZW5k
ZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
Ky0gKElCQWN0aW9uKV9kZWNyZWFzZUxpc3RMZXZlbDooaWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistIChJQkFjdGlvbilfY2hh
bmdlTGlzdFR5cGU6KGlkKXNlbmRlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOworLSAoSUJBY3Rpb24pX3Bhc3RlQXNRdW90YXRpb246KGlkKXNl
bmRlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkp
OworLSAoSUJBY3Rpb24pX3Bhc3RlQW5kTWF0Y2hTdHlsZTooaWQpc2VuZGVyIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistIChJQkFjdGlvbilf
dGFrZUZpbmRTdHJpbmdGcm9tU2VsZWN0aW9uOihpZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAotQHByb3BlcnR5IChjbGFzcywg
bm9uYXRvbWljLCBjb3B5LCBzZXR0ZXI9X3NldFN0cmluZ0ZvckZpbmQ6KSBOU1N0cmluZyAqX3N0
cmluZ0ZvckZpbmQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19J
T1NfVEJBKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIF9XS1NlbGVjdGlvbkF0
dHJpYnV0ZXMgX3NlbGVjdGlvbkF0dHJpYnV0ZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tf
TUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKGNsYXNzLCBub25hdG9taWMs
IGNvcHksIHNldHRlcj1fc2V0U3RyaW5nRm9yRmluZDopIE5TU3RyaW5nICpfc3RyaW5nRm9yRmlu
ZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwor
QHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBfV0tTZWxlY3Rpb25BdHRyaWJ1dGVzIF9z
ZWxlY3Rpb25BdHRyaWJ1dGVzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7CiAKICNpZiBUQVJHRVRfT1NfSVBIT05FCiAKQEAgLTMwMCwyNiArMzAw
LDI2IEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tSZWN0RWRnZSkgewogLSAo
dm9pZClfYWNjZXNzaWJpbGl0eVJldHJpZXZlU3BlYWtTZWxlY3Rpb25Db250ZW50IFdLX0FQSV9B
VkFJTEFCTEUoaW9zKDExLjApKTsKIC0gKHZvaWQpX2FjY2Vzc2liaWxpdHlEaWRHZXRTcGVha1Nl
bGVjdGlvbkNvbnRlbnQ6KE5TU3RyaW5nICopY29udGVudCBXS19BUElfQVZBSUxBQkxFKGlvcygx
MS4wKSk7CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgVUlWaWV3ICpfc2FmZUJy
b3dzaW5nV2FybmluZyBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdL
X0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgVUlWaWV3ICpfc2Fm
ZUJyb3dzaW5nV2FybmluZyBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3Mo
V0tfSU9TX1RCQSkpOwogI2Vsc2UKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNW
aWV3ICpfc2FmZUJyb3dzaW5nV2FybmluZyBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkg
TlNWaWV3ICpfc2FmZUJyb3dzaW5nV2FybmluZyBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01B
Q19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9u
bHkpIF9XS1JlY3RFZGdlIF9waW5uZWRTdGF0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4x
My40KSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRSdWJiZXJCYW5kaW5nRW5h
YmxlZDopIF9XS1JlY3RFZGdlIF9ydWJiZXJCYW5kaW5nRW5hYmxlZCBXS19BUElfQVZBSUxBQkxF
KG1hY29zeCgxMC4xMy40KSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIF9XS1Jl
Y3RFZGdlIF9waW5uZWRTdGF0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKK0Bw
cm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFJ1YmJlckJhbmRpbmdFbmFibGVkOikgX1dL
UmVjdEVkZ2UgX3J1YmJlckJhbmRpbmdFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAu
MTMuNCkpOwogCiBAcHJvcGVydHkgKHJlYWRvbmx5KSBOU0NvbG9yICpfcGFnZUV4dGVuZGVkQmFj
a2dyb3VuZENvbG9yOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0QmFja2dyb3Vu
ZENvbG9yOikgTlNDb2xvciAqX2JhY2tncm91bmRDb2xvciBXS19BUElfQVZBSUxBQkxFKG1hY29z
eCgxMC4xNCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0QmFja2dyb3VuZENv
bG9yOikgTlNDb2xvciAqX2JhY2tncm91bmRDb2xvciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEw
LjE0KSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXREcmF3c0JhY2tncm91bmQ6
KSBCT09MIF9kcmF3c0JhY2tncm91bmQ7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9z
ZXRUb3BDb250ZW50SW5zZXQ6KSBDR0Zsb2F0IF90b3BDb250ZW50SW5zZXQ7CiAKIEBwcm9wZXJ0
eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEF1dG9tYXRpY2FsbHlBZGp1c3RzQ29udGVudEluc2V0
czopIEJPT0wgX2F1dG9tYXRpY2FsbHlBZGp1c3RzQ29udGVudEluc2V0czsKIAogLy8gRGVmYXVs
dCB2YWx1ZSBpcyAwLiBBIHZhbHVlIG9mIDAgbWVhbnMgdGhlIHdpbmRvdydzIGJhY2tpbmcgc2Nh
bGUgZmFjdG9yIHdpbGwgYmUgdXNlZCBhbmQgYXV0b21hdGljYWxseSB1cGRhdGUgd2hlbiB0aGUg
d2luZG93IG1vdmVzIHNjcmVlbnMuCi1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRP
dmVycmlkZURldmljZVNjYWxlRmFjdG9yOikgQ0dGbG9hdCBfb3ZlcnJpZGVEZXZpY2VTY2FsZUZh
Y3RvciBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSkpOworQHByb3BlcnR5IChub25hdG9t
aWMsIHNldHRlcj1fc2V0T3ZlcnJpZGVEZXZpY2VTY2FsZUZhY3RvcjopIENHRmxvYXQgX292ZXJy
aWRlRGV2aWNlU2NhbGVGYWN0b3IgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMSkpOwogCiBA
cHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRXaW5kb3dPY2NsdXNpb25EZXRlY3Rpb25F
bmFibGVkOikgQk9PTCBfd2luZG93T2NjbHVzaW9uRGV0ZWN0aW9uRW5hYmxlZDsKIAotQHByb3Bl
cnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU0ludGVnZXIgX3NwZWxsQ2hlY2tlckRvY3VtZW50
VGFnIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjE0KSk7CitAcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZG9ubHkpIE5TSW50ZWdlciBfc3BlbGxDaGVja2VyRG9jdW1lbnRUYWcgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMC4xNCkpOwogCiAtICh2b2lkKV9zZXRTaG91bGRTdXBwcmVzc0ZpcnN0
UmVzcG9uZGVyQ2hhbmdlczooQk9PTClzaG91bGRTdXBwcmVzczsKIApAQCAtMzI3LDQ2ICszMjcs
NDYgQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS1JlY3RFZGdlKSB7CiAvLyBk
byBzb21ldGhpbmcgY3VzdG9tLCByZXR1cm4gYW4gb2JqZWN0IHRoYXQgY29uZm9ybXMgdG8gdGhl
IE5TSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29udHJvbGxlciBwcm90b2NvbC4KIC0gKGlkKV9p
bW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVyRm9ySGl0VGVzdFJlc3VsdDooX1dLSGl0
VGVzdFJlc3VsdCAqKWhpdFRlc3RSZXN1bHQgd2l0aFR5cGU6KF9XS0ltbWVkaWF0ZUFjdGlvblR5
cGUpdHlwZSB1c2VyRGF0YTooaWQ8TlNTZWN1cmVDb2Rpbmc+KXVzZXJEYXRhOwogCi1AcHJvcGVy
dHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRNaW5pbXVtTGF5b3V0V2lkdGg6KSBDR0Zsb2F0IF9t
aW5pbXVtTGF5b3V0V2lkdGggV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpKTsKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldE1pbmltdW1MYXlvdXRXaWR0aDopIENHRmxvYXQg
X21pbmltdW1MYXlvdXRXaWR0aCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSk7CiAKIC8v
IFdoZW4gdXNpbmcgX21pbmltdW1MYXlvdXRXaWR0aCwgdGhlIHdlYiBjb250ZW50IHdpbGwgbGF5
IG91dCB0byB0aGUgaW50cmluc2ljIGhlaWdodAogLy8gb2YgdGhlIGNvbnRlbnQ7IHVzZSB0aGlz
IHByb3BlcnR5IHRvIGZvcmNlIGl0IHRvIGxheSBvdXQgdG8gdGhlIGhlaWdodCBvZiB0aGUgdmll
dyBpbnN0ZWFkLgotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0U2hvdWxkRXhwYW5k
Q29udGVudFRvVmlld0hlaWdodEZvckF1dG9MYXlvdXQ6KSBCT09MIF9zaG91bGRFeHBhbmRDb250
ZW50VG9WaWV3SGVpZ2h0Rm9yQXV0b0xheW91dCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4x
MikpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0U2hvdWxkRXhwYW5kQ29udGVu
dFRvVmlld0hlaWdodEZvckF1dG9MYXlvdXQ6KSBCT09MIF9zaG91bGRFeHBhbmRDb250ZW50VG9W
aWV3SGVpZ2h0Rm9yQXV0b0xheW91dCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSk7CiAK
LUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFsd2F5c1Nob3dzSG9yaXpvbnRhbFNj
cm9sbGVyOikgQk9PTCBfYWx3YXlzU2hvd3NIb3Jpem9udGFsU2Nyb2xsZXIgV0tfQVBJX0FWQUlM
QUJMRShtYWNvc3goMTAuMTMuNCkpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0
QWx3YXlzU2hvd3NWZXJ0aWNhbFNjcm9sbGVyOikgQk9PTCBfYWx3YXlzU2hvd3NWZXJ0aWNhbFNj
cm9sbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpKTsKK0Bwcm9wZXJ0eSAobm9u
YXRvbWljLCBzZXR0ZXI9X3NldEFsd2F5c1Nob3dzSG9yaXpvbnRhbFNjcm9sbGVyOikgQk9PTCBf
YWx3YXlzU2hvd3NIb3Jpem9udGFsU2Nyb2xsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4x
My40KSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBbHdheXNTaG93c1ZlcnRp
Y2FsU2Nyb2xsZXI6KSBCT09MIF9hbHdheXNTaG93c1ZlcnRpY2FsU2Nyb2xsZXIgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMC4xMy40KSk7CiAKIC0gKE5TUHJpbnRPcGVyYXRpb24gKilfcHJpbnRP
cGVyYXRpb25XaXRoUHJpbnRJbmZvOihOU1ByaW50SW5mbyAqKXByaW50SW5mbzsKLS0gKE5TUHJp
bnRPcGVyYXRpb24gKilfcHJpbnRPcGVyYXRpb25XaXRoUHJpbnRJbmZvOihOU1ByaW50SW5mbyAq
KXByaW50SW5mbyBmb3JGcmFtZTooX1dLRnJhbWVIYW5kbGUgKilmcmFtZUhhbmRsZSBXS19BUElf
QVZBSUxBQkxFKG1hY29zeCgxMC4xMiksIGlvcygxMC4wKSk7CistIChOU1ByaW50T3BlcmF0aW9u
ICopX3ByaW50T3BlcmF0aW9uV2l0aFByaW50SW5mbzooTlNQcmludEluZm8gKilwcmludEluZm8g
Zm9yRnJhbWU6KF9XS0ZyYW1lSGFuZGxlICopZnJhbWVIYW5kbGUgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMC4xMiksIGlvcygxMC4wKSk7CiAKIC8vIEZJWE1FOiBUaGlzIFNQSSBzaG91bGQgYmVj
b21lIGEgcGFydCBvZiB0aGUgV0tVSURlbGVnYXRlLiByZGFyOi8vcHJvYmxlbS8yNjU2MTUzNwot
QHByb3BlcnR5IChub25hdG9taWMsIHJlYWR3cml0ZSwgc2V0dGVyPV9zZXRXYW50c01lZGlhUGxh
eWJhY2tDb250cm9sc1ZpZXc6KSBCT09MIF93YW50c01lZGlhUGxheWJhY2tDb250cm9sc1ZpZXcg
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIuMykpOwotQHByb3BlcnR5IChub25hdG9taWMs
IHJlYWRvbmx5KSBpZCBfbWVkaWFQbGF5YmFja0NvbnRyb2xzVmlldyBXS19BUElfQVZBSUxBQkxF
KG1hY29zeCgxMC4xMykpOwotLSAodm9pZClfYWRkTWVkaWFQbGF5YmFja0NvbnRyb2xzVmlldzoo
aWQpbWVkaWFQbGF5YmFja0NvbnRyb2xzVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4x
MykpOwotLSAodm9pZClfcmVtb3ZlTWVkaWFQbGF5YmFja0NvbnRyb2xzVmlldyBXS19BUElfQVZB
SUxBQkxFKG1hY29zeCgxMC4xMi4zKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZHdyaXRl
LCBzZXR0ZXI9X3NldFdhbnRzTWVkaWFQbGF5YmFja0NvbnRyb2xzVmlldzopIEJPT0wgX3dhbnRz
TWVkaWFQbGF5YmFja0NvbnRyb2xzVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyLjMp
KTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgaWQgX21lZGlhUGxheWJhY2tDb250
cm9sc1ZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMykpOworLSAodm9pZClfYWRkTWVk
aWFQbGF5YmFja0NvbnRyb2xzVmlldzooaWQpbWVkaWFQbGF5YmFja0NvbnRyb2xzVmlldyBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSk7CistICh2b2lkKV9yZW1vdmVNZWRpYVBsYXliYWNr
Q29udHJvbHNWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIuMykpOwogCi0tICh2b2lk
KV9wcmVwYXJlRm9yTW92ZVRvV2luZG93OihOU1dpbmRvdyAqKXRhcmdldFdpbmRvdyBjb21wbGV0
aW9uSGFuZGxlcjoodm9pZCheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxB
QkxFKG1hY29zeCgxMC4xMykpOworLSAodm9pZClfcHJlcGFyZUZvck1vdmVUb1dpbmRvdzooTlNX
aW5kb3cgKil0YXJnZXRXaW5kb3cgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikodm9pZCkpY29t
cGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMykpOwogCi1AcHJvcGVy
dHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRPdmVybGF5U2Nyb2xsYmFyU3R5bGU6KSBfV0tPdmVy
bGF5U2Nyb2xsYmFyU3R5bGUgX292ZXJsYXlTY3JvbGxiYXJTdHlsZSBXS19BUElfQVZBSUxBQkxF
KG1hY29zeCgxMC4xMy40KSk7Ci1AcHJvcGVydHkgKHN0cm9uZywgbm9uYXRvbWljLCBzZXR0ZXI9
X3NldEluc3BlY3RvckF0dGFjaG1lbnRWaWV3OikgTlNWaWV3ICpfaW5zcGVjdG9yQXR0YWNobWVu
dFZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCkpOworQHByb3BlcnR5IChub25h
dG9taWMsIHNldHRlcj1fc2V0T3ZlcmxheVNjcm9sbGJhclN0eWxlOikgX1dLT3ZlcmxheVNjcm9s
bGJhclN0eWxlIF9vdmVybGF5U2Nyb2xsYmFyU3R5bGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygx
MC4xMy40KSk7CitAcHJvcGVydHkgKHN0cm9uZywgbm9uYXRvbWljLCBzZXR0ZXI9X3NldEluc3Bl
Y3RvckF0dGFjaG1lbnRWaWV3OikgTlNWaWV3ICpfaW5zcGVjdG9yQXR0YWNobWVudFZpZXcgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBz
ZXR0ZXI9X3NldFRodW1ibmFpbFZpZXc6KSBfV0tUaHVtYm5haWxWaWV3ICpfdGh1bWJuYWlsVmll
dyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSk7Ci1AcHJvcGVydHkgKG5vbmF0b21p
Yywgc2V0dGVyPV9zZXRJZ25vcmVzQWxsRXZlbnRzOikgQk9PTCBfaWdub3Jlc0FsbEV2ZW50cyBX
S19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywg
c2V0dGVyPV9zZXRUaHVtYm5haWxWaWV3OikgX1dLVGh1bWJuYWlsVmlldyAqX3RodW1ibmFpbFZp
ZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CitAcHJvcGVydHkgKG5vbmF0b21p
Yywgc2V0dGVyPV9zZXRJZ25vcmVzQWxsRXZlbnRzOikgQk9PTCBfaWdub3Jlc0FsbEV2ZW50cyBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKIAogI2VuZGlmCiAKLS0gKFdLTmF2aWdh
dGlvbiAqKV9yZWxvYWRXaXRob3V0Q29udGVudEJsb2NrZXJzIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KDEwLjEyKSwgaW9zKDEwLjApKTsKLS0gKFdLTmF2aWdhdGlvbiAqKV9yZWxvYWRFeHBpcmVk
T25seSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7CistIChXS05h
dmlnYXRpb24gKilfcmVsb2FkV2l0aG91dENvbnRlbnRCbG9ja2VycyBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKKy0gKFdLTmF2aWdhdGlvbiAqKV9yZWxvYWRFeHBp
cmVkT25seSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKTsKIAogLSAo
dm9pZClfa2lsbFdlYkNvbnRlbnRQcm9jZXNzOwogLSAodm9pZClfa2lsbFdlYkNvbnRlbnRQcm9j
ZXNzQW5kUmVzZXRTdGF0ZTsKIAogLSAodm9pZClfZ2V0TWFpblJlc291cmNlRGF0YVdpdGhDb21w
bGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNEYXRhICosIE5TRXJyb3IgKikpY29tcGxldGlvbkhh
bmRsZXI7CiAtICh2b2lkKV9nZXRXZWJBcmNoaXZlRGF0YVdpdGhDb21wbGV0aW9uSGFuZGxlcjoo
dm9pZCAoXikoTlNEYXRhICosIE5TRXJyb3IgKikpY29tcGxldGlvbkhhbmRsZXI7Ci0tICh2b2lk
KV9nZXRDb250ZW50c0FzU3RyaW5nV2l0aENvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU1N0
cmluZyAqLCBOU0Vycm9yICopKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KDEwLjEzKSwgaW9zKDExLjApKTsKLS0gKHZvaWQpX2dldENvbnRlbnRzQXNBdHRyaWJ1dGVk
U3RyaW5nV2l0aENvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU0F0dHJpYnV0ZWRTdHJpbmcg
KiwgTlNEaWN0aW9uYXJ5PE5TQXR0cmlidXRlZFN0cmluZ0RvY3VtZW50QXR0cmlidXRlS2V5LCBp
ZD4gKiwgTlNFcnJvciAqKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29z
eChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX2dldENvbnRlbnRzQXNT
dHJpbmdXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5nICosIE5TRXJyb3Ig
KikpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygx
MS4wKSk7CistICh2b2lkKV9nZXRDb250ZW50c0FzQXR0cmlidXRlZFN0cmluZ1dpdGhDb21wbGV0
aW9uSGFuZGxlcjoodm9pZCAoXikoTlNBdHRyaWJ1dGVkU3RyaW5nICosIE5TRGljdGlvbmFyeTxO
U0F0dHJpYnV0ZWRTdHJpbmdEb2N1bWVudEF0dHJpYnV0ZUtleSwgaWQ+ICosIE5TRXJyb3IgKikp
Y29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9z
KFdLX0lPU19UQkEpKTsKIAotLSAodm9pZClfZ2V0QXBwbGljYXRpb25NYW5pZmVzdFdpdGhDb21w
bGV0aW9uSGFuZGxlcjoodm9pZCAoXikoX1dLQXBwbGljYXRpb25NYW5pZmVzdCAqKSljb21wbGV0
aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSwgaW9zKDExLjMpKTsK
Ky0gKHZvaWQpX2dldEFwcGxpY2F0aW9uTWFuaWZlc3RXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZv
aWQgKF4pKF9XS0FwcGxpY2F0aW9uTWFuaWZlc3QgKikpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKIAogQHByb3BlcnR5IChub25h
dG9taWMsIHNldHRlcj1fc2V0UGFnaW5hdGlvbk1vZGU6KSBfV0tQYWdpbmF0aW9uTW9kZSBfcGFn
aW5hdGlvbk1vZGU7CiAvLyBXaGV0aGVyIHRoZSBjb2x1bW4tYnJlYWste2JlZm9yZSxhZnRlcn0g
cHJvcGVydGllcyBhcmUgcmVzcGVjdGVkIGluc3RlYWQgb2YgdGhlCkBAIC0zODIsMzYgKzM4Miwz
NiBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dLUmVjdEVkZ2UpIHsKIEBwcm9w
ZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFRleHRab29tRmFjdG9yOikgZG91YmxlIF90ZXh0
Wm9vbUZhY3RvcjsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFBhZ2Vab29tRmFj
dG9yOikgZG91YmxlIF9wYWdlWm9vbUZhY3RvcjsKIAotQHByb3BlcnR5IChub25hdG9taWMsIHdl
YWssIHNldHRlcj1fc2V0RGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZTopIGlkIDxfV0tEaWFnbm9z
dGljTG9nZ2luZ0RlbGVnYXRlPiBfZGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZSBXS19BUElfQVZB
SUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCB3
ZWFrLCBzZXR0ZXI9X3NldERpYWdub3N0aWNMb2dnaW5nRGVsZWdhdGU6KSBpZCA8X1dLRGlhZ25v
c3RpY0xvZ2dpbmdEZWxlZ2F0ZT4gX2RpYWdub3N0aWNMb2dnaW5nRGVsZWdhdGUgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMC4xMSksIGlvcyg5LjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCB3
ZWFrLCBzZXR0ZXI9X3NldEZpbmREZWxlZ2F0ZTopIGlkIDxfV0tGaW5kRGVsZWdhdGU+IF9maW5k
RGVsZWdhdGU7CiAtICh2b2lkKV9maW5kU3RyaW5nOihOU1N0cmluZyAqKXN0cmluZyBvcHRpb25z
OihfV0tGaW5kT3B0aW9ucylvcHRpb25zIG1heENvdW50OihOU1VJbnRlZ2VyKW1heENvdW50Owog
LSAodm9pZClfY291bnRTdHJpbmdNYXRjaGVzOihOU1N0cmluZyAqKXN0cmluZyBvcHRpb25zOihf
V0tGaW5kT3B0aW9ucylvcHRpb25zIG1heENvdW50OihOU1VJbnRlZ2VyKW1heENvdW50OwogLSAo
dm9pZClfaGlkZUZpbmRVSTsKIAotQHByb3BlcnR5IChub25hdG9taWMsIHdlYWssIHNldHRlcj1f
c2V0SW5wdXREZWxlZ2F0ZTopIGlkIDxfV0tJbnB1dERlbGVnYXRlPiBfaW5wdXREZWxlZ2F0ZSBX
S19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMiksIGlvcygxMC4wKSk7CitAcHJvcGVydHkgKG5v
bmF0b21pYywgd2Vhaywgc2V0dGVyPV9zZXRJbnB1dERlbGVnYXRlOikgaWQgPF9XS0lucHV0RGVs
ZWdhdGU+IF9pbnB1dERlbGVnYXRlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3Mo
MTAuMCkpOwogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGdldHRlcj1faXNEaXNw
bGF5aW5nU3RhbmRhbG9uZUltYWdlRG9jdW1lbnQpIEJPT0wgX2Rpc3BsYXlpbmdTdGFuZGFsb25l
SW1hZ2VEb2N1bWVudDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgZ2V0dGVyPV9p
c0Rpc3BsYXlpbmdTdGFuZGFsb25lTWVkaWFEb2N1bWVudCkgQk9PTCBfZGlzcGxheWluZ1N0YW5k
YWxvbmVNZWRpYURvY3VtZW50OwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRT
Y3JvbGxQZXJmb3JtYW5jZURhdGFDb2xsZWN0aW9uRW5hYmxlZDopIEJPT0wgX3Njcm9sbFBlcmZv
cm1hbmNlRGF0YUNvbGxlY3Rpb25FbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEx
KSwgaW9zKDkuMCkpOwotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU0FycmF5ICpf
c2Nyb2xsUGVyZm9ybWFuY2VEYXRhIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9z
KDkuMCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0U2Nyb2xsUGVyZm9ybWFu
Y2VEYXRhQ29sbGVjdGlvbkVuYWJsZWQ6KSBCT09MIF9zY3JvbGxQZXJmb3JtYW5jZURhdGFDb2xs
ZWN0aW9uRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjExKSwgaW9zKDkuMCkpOwor
QHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU0FycmF5ICpfc2Nyb2xsUGVyZm9ybWFu
Y2VEYXRhIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTEpLCBpb3MoOS4wKSk7CiAKLS0gKHZv
aWQpX3NhdmVCYWNrRm9yd2FyZFNuYXBzaG90Rm9ySXRlbTooV0tCYWNrRm9yd2FyZExpc3RJdGVt
ICopaXRlbSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKKy0gKHZv
aWQpX3NhdmVCYWNrRm9yd2FyZFNuYXBzaG90Rm9ySXRlbTooV0tCYWNrRm9yd2FyZExpc3RJdGVt
ICopaXRlbSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjExKSwgaW9zKDkuMCkpOwogCiBAcHJv
cGVydHkgKG5vbmF0b21pYywgZ2V0dGVyPV9hbGxvd3NNZWRpYURvY3VtZW50SW5saW5lUGxheWJh
Y2ssIHNldHRlcj1fc2V0QWxsb3dzTWVkaWFEb2N1bWVudElubGluZVBsYXliYWNrOikgQk9PTCBf
YWxsb3dzTWVkaWFEb2N1bWVudElubGluZVBsYXliYWNrOwogCi1AcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZG9ubHkpIEJPT0wgX3dlYlByb2Nlc3NJc1Jlc3BvbnNpdmUgV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goMTAuMTIpLCBpb3MoMTAuMCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRv
bmx5KSBCT09MIF93ZWJQcm9jZXNzSXNSZXNwb25zaXZlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTAuMTIpLCBpb3MoMTAuMCkpOwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRG
dWxsc2NyZWVuRGVsZWdhdGU6KSBpZDxfV0tGdWxsc2NyZWVuRGVsZWdhdGU+IF9mdWxsc2NyZWVu
RGVsZWdhdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpOwotQHBy
b3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF9pc0luRnVsbHNjcmVlbiBXS19BUElf
QVZBSUxBQkxFKG1hY29zeCgxMC4xMi4zKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVy
PV9zZXRGdWxsc2NyZWVuRGVsZWdhdGU6KSBpZDxfV0tGdWxsc2NyZWVuRGVsZWdhdGU+IF9mdWxs
c2NyZWVuRGVsZWdhdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSk7
CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgX2lzSW5GdWxsc2NyZWVuIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIuMykpOwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywg
cmVhZG9ubHkpIF9XS01lZGlhQ2FwdHVyZVN0YXRlIF9tZWRpYUNhcHR1cmVTdGF0ZSBXS19BUElf
QVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0
eSAobm9uYXRvbWljLCByZWFkb25seSkgX1dLTWVkaWFDYXB0dXJlU3RhdGUgX21lZGlhQ2FwdHVy
ZVN0YXRlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7CiAKLS0gKHZvaWQpX3NldE1lZGlhQ2FwdHVyZU11dGVkOihCT09MKW11dGVkIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotLSAodm9pZClf
bXV0ZU1lZGlhQ2FwdHVyZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4w
KSk7Ci0tICh2b2lkKV9zZXRQYWdlTXV0ZWQ6KF9XS01lZGlhTXV0ZWRTdGF0ZSltdXRlZFN0YXRl
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzKSwgaW9zKDExLjApKTsKKy0gKHZvaWQpX3Nl
dE1lZGlhQ2FwdHVyZU11dGVkOihCT09MKW11dGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tf
TUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV9tdXRlTWVkaWFDYXB0dXJlIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpOworLSAodm9pZClfc2V0UGFn
ZU11dGVkOihfV0tNZWRpYU11dGVkU3RhdGUpbXV0ZWRTdGF0ZSBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDEwLjEzKSwgaW9zKDExLjApKTsKIAotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1f
c2V0TWVkaWFDYXB0dXJlRW5hYmxlZDopIEJPT0wgX21lZGlhQ2FwdHVyZUVuYWJsZWQgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpOworQHByb3BlcnR5IChub25hdG9t
aWMsIHNldHRlcj1fc2V0TWVkaWFDYXB0dXJlRW5hYmxlZDopIEJPT0wgX21lZGlhQ2FwdHVyZUVu
YWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSk7CiAKIEBwcm9w
ZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfY2FuVG9nZ2xlUGljdHVyZUluUGljdHVy
ZTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfaXNQaWN0dXJlSW5QaWN0
dXJlQWN0aXZlOwpAQCAtNDIxLDggKzQyMSw4IEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRl
Z2VyLCBfV0tSZWN0RWRnZSkgewogLSAodm9pZClfc3VzcGVuZEFsbE1lZGlhUGxheWJhY2s7CiAt
ICh2b2lkKV9yZXN1bWVBbGxNZWRpYVBsYXliYWNrOwogCi0tICh2b2lkKV9yZXF1ZXN0VGV4dElu
cHV0Q29udGV4dHNJblJlY3Q6KENHUmVjdClyZWN0IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4p
KE5TQXJyYXk8X1dLVGV4dElucHV0Q29udGV4dCAqPiAqKSljb21wbGV0aW9uSGFuZGxlciBXS19B
UElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLS0gKHZv
aWQpX2ZvY3VzVGV4dElucHV0Q29udGV4dDooX1dLVGV4dElucHV0Q29udGV4dCAqKXRleHRJbnB1
dEVsZW1lbnQgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikoQk9PTCkpY29tcGxldGlvbkhhbmRs
ZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7
CistICh2b2lkKV9yZXF1ZXN0VGV4dElucHV0Q29udGV4dHNJblJlY3Q6KENHUmVjdClyZWN0IGNv
bXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKE5TQXJyYXk8X1dLVGV4dElucHV0Q29udGV4dCAqPiAq
KSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBp
b3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfZm9jdXNUZXh0SW5wdXRDb250ZXh0OihfV0tUZXh0
SW5wdXRDb250ZXh0ICopdGV4dElucHV0RWxlbWVudCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZChe
KShCT09MKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19U
QkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiBAZW5kCiAKQEAgLTQ0MCw3ICs0NDAsNyBAQCB0eXBl
ZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dLUmVjdEVkZ2UpIHsKIAogQGludGVyZmFjZSBX
S1dlYlZpZXcgKFdLVGVzdGluZykKIAotLSAoTlNEaWN0aW9uYXJ5ICopX2NvbnRlbnRzT2ZVc2Vy
SW50ZXJmYWNlSXRlbTooTlNTdHJpbmcgKil1c2VySW50ZXJmYWNlSXRlbSBXS19BUElfQVZBSUxB
QkxFKG1hY29zeCgxMC4xMi4zKSwgaW9zKDEwLjMpKTsKKy0gKE5TRGljdGlvbmFyeSAqKV9jb250
ZW50c09mVXNlckludGVyZmFjZUl0ZW06KE5TU3RyaW5nICopdXNlckludGVyZmFjZUl0ZW0gV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMi4zKSwgaW9zKDEwLjMpKTsKIAogI2lmIFRBUkdFVF9P
U19JUEhPTkUKIApAQCAtNDg4LDcxICs0ODgsNzEgQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUlu
dGVnZXIsIF9XS1JlY3RFZGdlKSB7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkg
Qk9PTCBfY29udGVudFZpZXdJc0ZpcnN0UmVzcG9uZGVyIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdL
X0lPU19UQkEpKTsKICNlbHNlCi0tICh2b2lkKV9kaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRX
aW5kb3dzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpKTsKLS0gKHZvaWQpX3NldEZy
YW1lOihOU1JlY3QpcmVjdCBhbmRTY3JvbGxCeTooTlNTaXplKW9mZnNldCBXS19BUElfQVZBSUxB
QkxFKG1hY29zeCgxMC4xMy40KSk7Ci0tICh2b2lkKV9iZWdpbkRlZmVycmluZ1ZpZXdJbldpbmRv
d0NoYW5nZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCkpOwotLSAodm9pZClfZW5k
RGVmZXJyaW5nVmlld0luV2luZG93Q2hhbmdlcyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4x
My40KSk7Ci0tICh2b2lkKV9lbmREZWZlcnJpbmdWaWV3SW5XaW5kb3dDaGFuZ2VzU3luYyBXS19B
UElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSk7Ci0tICh2b2lkKV9nZXN0dXJlRXZlbnRXYXNO
b3RIYW5kbGVkQnlXZWJDb3JlOihOU0V2ZW50ICopZXZlbnQgV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goMTAuMTMuNCkpOwotLSAodm9pZClfc2V0Q3VzdG9tU3dpcGVWaWV3czooTlNBcnJheSAqKWN1
c3RvbVN3aXBlVmlld3MgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCkpOwotLSAodm9p
ZClfc2V0Q3VzdG9tU3dpcGVWaWV3c1RvcENvbnRlbnRJbnNldDooZmxvYXQpdG9wQ29udGVudElu
c2V0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpKTsKLS0gKE5TVmlldyAqKV9mdWxs
U2NyZWVuUGxhY2Vob2xkZXJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpKTsK
LS0gKE5TV2luZG93ICopX2Z1bGxTY3JlZW5XaW5kb3cgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3go
MTAuMTMuNCkpOwotLSAodm9pZClfZGlzYWJsZUZyYW1lU2l6ZVVwZGF0ZXMgV0tfQVBJX0FWQUlM
QUJMRShtYWNvc3goMTAuMTMuNCkpOwotLSAodm9pZClfZW5hYmxlRnJhbWVTaXplVXBkYXRlcyBX
S19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSk7Ci0tICh2b2lkKV9wcmVwYXJlRm9ySW1t
ZWRpYXRlQWN0aW9uQW5pbWF0aW9uIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpKTsK
LS0gKHZvaWQpX2NhbmNlbEltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbiBXS19BUElfQVZBSUxBQkxF
KG1hY29zeCgxMC4xMy40KSk7Ci0tICh2b2lkKV9jb21wbGV0ZUltbWVkaWF0ZUFjdGlvbkFuaW1h
dGlvbiBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSk7Ci0tIChCT09MKV9jYW5DaGFu
Z2VGcmFtZUxheW91dDooX1dLRnJhbWVIYW5kbGUgKilmcmFtZUhhbmRsZSBXS19BUElfQVZBSUxB
QkxFKG1hY29zeCgxMC4xMy40KSk7Ci0tIChCT09MKV90cnlUb1N3aXBlV2l0aEV2ZW50OihOU0V2
ZW50ICopZXZlbnQgaWdub3JpbmdQaW5uZWRTdGF0ZTooQk9PTClpZ25vcmluZ1Bpbm5lZFN0YXRl
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpKTsKLS0gKHZvaWQpX3NldERpZE1vdmVT
d2lwZVNuYXBzaG90Q2FsbGJhY2s6KHZvaWQoXikoQ0dSZWN0KSljYWxsYmFjayBXS19BUElfQVZB
SUxBQkxFKG1hY29zeCgxMC4xMy40KSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9z
ZXRUb3RhbEhlaWdodE9mQmFubmVyczopIENHRmxvYXQgX3RvdGFsSGVpZ2h0T2ZCYW5uZXJzIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBj
b3B5LCBzZXR0ZXI9X3NldFVuZGVybGF5Q29sb3I6KSBOU0NvbG9yICpfdW5kZXJsYXlDb2xvciBX
S19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywg
cmVhZHdyaXRlLCBzZXR0ZXI9X3NldElnbm9yZXNOb25XaGVlbEV2ZW50czopIEJPT0wgX2lnbm9y
ZXNOb25XaGVlbEV2ZW50cyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSk7Ci1AcHJv
cGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIFdLUGFnZVJlZiBfcGFnZVJlZkZvclRyYW5zaXRp
b25Ub1dLV2ViVmlldyAgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCkpOwotQHByb3Bl
cnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF9oYXNBY3RpdmVWaWRlb0ZvckNvbnRyb2xz
TWFuYWdlciBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMikpOwotLSAodm9pZClfcmVxdWVz
dENvbnRyb2xsZWRFbGVtZW50SUQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIuMykpOwot
LSAodm9pZClfaGFuZGxlQ29udHJvbGxlZEVsZW1lbnRJRFJlc3BvbnNlOihOU1N0cmluZyAqKWlk
ZW50aWZpZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIuMykpOwotLSAodm9pZClfaGFu
ZGxlQWNjZXB0ZWRDYW5kaWRhdGU6KE5TVGV4dENoZWNraW5nUmVzdWx0ICopY2FuZGlkYXRlIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyLjMpKTsKLS0gKHZvaWQpX2RpZEhhbmRsZUFjY2Vw
dGVkQ2FuZGlkYXRlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyLjMpKTsKLS0gKHZvaWQp
X2ZvcmNlUmVxdWVzdENhbmRpZGF0ZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIuMykp
OwotLSAodm9pZClfZGlkVXBkYXRlQ2FuZGlkYXRlTGlzdFZpc2liaWxpdHk6KEJPT0wpdmlzaWJs
ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMi4zKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZG9ubHkpIEJPT0wgX3Nob3VsZFJlcXVlc3RDYW5kaWRhdGVzIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3N4KDEwLjEyLjMpKTsKLS0gKHZvaWQpX2luc2VydFRleHQ6KGlkKXN0cmluZyByZXBs
YWNlbWVudFJhbmdlOihOU1JhbmdlKXJlcGxhY2VtZW50UmFuZ2UgV0tfQVBJX0FWQUlMQUJMRSht
YWNvc3goMTAuMTIuMykpOwotLSAoTlNSZWN0KV9jYW5kaWRhdGVSZWN0IFdLX0FQSV9BVkFJTEFC
TEUobWFjb3N4KDEwLjEzKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZHdyaXRlLCBzZXR0
ZXI9X3NldFVzZVN5c3RlbUFwcGVhcmFuY2U6KSBCT09MIF91c2VTeXN0ZW1BcHBlYXJhbmNlIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjE0KSk7Ci0KLS0gKHZvaWQpX3NldEhlYWRlckJhbm5l
ckhlaWdodDooaW50KWhlaWdodCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMi4zKSk7Ci0t
ICh2b2lkKV9zZXRGb290ZXJCYW5uZXJIZWlnaHQ6KGludCloZWlnaHQgV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goMTAuMTIuMykpOwotLSAodm9pZClfZG9BZnRlclByb2Nlc3NpbmdBbGxQZW5kaW5n
TW91c2VFdmVudHM6KGRpc3BhdGNoX2Jsb2NrX3QpYWN0aW9uIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KFdLX01BQ19UQkEpKTsKKy0gKHZvaWQpX2Rpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdp
bmRvd3MgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CistICh2b2lkKV9zZXRGcmFt
ZTooTlNSZWN0KXJlY3QgYW5kU2Nyb2xsQnk6KE5TU2l6ZSlvZmZzZXQgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMC4xMy40KSk7CistICh2b2lkKV9iZWdpbkRlZmVycmluZ1ZpZXdJbldpbmRvd0No
YW5nZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CistICh2b2lkKV9lbmREZWZl
cnJpbmdWaWV3SW5XaW5kb3dDaGFuZ2VzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkp
OworLSAodm9pZClfZW5kRGVmZXJyaW5nVmlld0luV2luZG93Q2hhbmdlc1N5bmMgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMC4xMy40KSk7CistICh2b2lkKV9nZXN0dXJlRXZlbnRXYXNOb3RIYW5k
bGVkQnlXZWJDb3JlOihOU0V2ZW50ICopZXZlbnQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4x
My40KSk7CistICh2b2lkKV9zZXRDdXN0b21Td2lwZVZpZXdzOihOU0FycmF5ICopY3VzdG9tU3dp
cGVWaWV3cyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKKy0gKHZvaWQpX3NldEN1
c3RvbVN3aXBlVmlld3NUb3BDb250ZW50SW5zZXQ6KGZsb2F0KXRvcENvbnRlbnRJbnNldCBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKKy0gKE5TVmlldyAqKV9mdWxsU2NyZWVuUGxh
Y2Vob2xkZXJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOworLSAoTlNXaW5k
b3cgKilfZnVsbFNjcmVlbldpbmRvdyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsK
Ky0gKHZvaWQpX2Rpc2FibGVGcmFtZVNpemVVcGRhdGVzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTAuMTMuNCkpOworLSAodm9pZClfZW5hYmxlRnJhbWVTaXplVXBkYXRlcyBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDEwLjEzLjQpKTsKKy0gKHZvaWQpX3ByZXBhcmVGb3JJbW1lZGlhdGVBY3Rpb25B
bmltYXRpb24gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CistICh2b2lkKV9jYW5j
ZWxJbW1lZGlhdGVBY3Rpb25BbmltYXRpb24gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40
KSk7CistICh2b2lkKV9jb21wbGV0ZUltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbiBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKKy0gKEJPT0wpX2NhbkNoYW5nZUZyYW1lTGF5b3V0Oihf
V0tGcmFtZUhhbmRsZSAqKWZyYW1lSGFuZGxlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMu
NCkpOworLSAoQk9PTClfdHJ5VG9Td2lwZVdpdGhFdmVudDooTlNFdmVudCAqKWV2ZW50IGlnbm9y
aW5nUGlubmVkU3RhdGU6KEJPT0wpaWdub3JpbmdQaW5uZWRTdGF0ZSBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjEzLjQpKTsKKy0gKHZvaWQpX3NldERpZE1vdmVTd2lwZVNuYXBzaG90Q2FsbGJh
Y2s6KHZvaWQoXikoQ0dSZWN0KSljYWxsYmFjayBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEz
LjQpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFRvdGFsSGVpZ2h0T2ZCYW5u
ZXJzOikgQ0dGbG9hdCBfdG90YWxIZWlnaHRPZkJhbm5lcnMgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMC4xMy40KSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSwgc2V0dGVyPV9zZXRVbmRl
cmxheUNvbG9yOikgTlNDb2xvciAqX3VuZGVybGF5Q29sb3IgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMC4xMy40KSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZHdyaXRlLCBzZXR0ZXI9X3Nl
dElnbm9yZXNOb25XaGVlbEV2ZW50czopIEJPT0wgX2lnbm9yZXNOb25XaGVlbEV2ZW50cyBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFk
b25seSkgV0tQYWdlUmVmIF9wYWdlUmVmRm9yVHJhbnNpdGlvblRvV0tXZWJWaWV3ICBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25s
eSkgQk9PTCBfaGFzQWN0aXZlVmlkZW9Gb3JDb250cm9sc01hbmFnZXIgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMC4xMikpOworLSAodm9pZClfcmVxdWVzdENvbnRyb2xsZWRFbGVtZW50SUQgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMi4zKSk7CistICh2b2lkKV9oYW5kbGVDb250cm9sbGVk
RWxlbWVudElEUmVzcG9uc2U6KE5TU3RyaW5nICopaWRlbnRpZmllciBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjEyLjMpKTsKKy0gKHZvaWQpX2hhbmRsZUFjY2VwdGVkQ2FuZGlkYXRlOihOU1Rl
eHRDaGVja2luZ1Jlc3VsdCAqKWNhbmRpZGF0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEy
LjMpKTsKKy0gKHZvaWQpX2RpZEhhbmRsZUFjY2VwdGVkQ2FuZGlkYXRlIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTAuMTIuMykpOworLSAodm9pZClfZm9yY2VSZXF1ZXN0Q2FuZGlkYXRlcyBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEwLjEyLjMpKTsKKy0gKHZvaWQpX2RpZFVwZGF0ZUNhbmRpZGF0
ZUxpc3RWaXNpYmlsaXR5OihCT09MKXZpc2libGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4x
Mi4zKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgX3Nob3VsZFJlcXVl
c3RDYW5kaWRhdGVzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIuMykpOworLSAodm9pZClf
aW5zZXJ0VGV4dDooaWQpc3RyaW5nIHJlcGxhY2VtZW50UmFuZ2U6KE5TUmFuZ2UpcmVwbGFjZW1l
bnRSYW5nZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyLjMpKTsKKy0gKE5TUmVjdClfY2Fu
ZGlkYXRlUmVjdCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSk7CitAcHJvcGVydHkgKG5v
bmF0b21pYywgcmVhZHdyaXRlLCBzZXR0ZXI9X3NldFVzZVN5c3RlbUFwcGVhcmFuY2U6KSBCT09M
IF91c2VTeXN0ZW1BcHBlYXJhbmNlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpKTsKKwor
LSAodm9pZClfc2V0SGVhZGVyQmFubmVySGVpZ2h0OihpbnQpaGVpZ2h0IFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTAuMTIuMykpOworLSAodm9pZClfc2V0Rm9vdGVyQmFubmVySGVpZ2h0OihpbnQp
aGVpZ2h0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIuMykpOworLSAodm9pZClfZG9BZnRl
clByb2Nlc3NpbmdBbGxQZW5kaW5nTW91c2VFdmVudHM6KGRpc3BhdGNoX2Jsb2NrX3QpYWN0aW9u
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSkpOwogI2VuZGlmCiAKLS0gKHZvaWQp
X3JlcXVlc3RBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbkluZm86KHZvaWQoXikoQk9PTCwgQk9PTCwg
TlNTdHJpbmcqLCBkb3VibGUsIGRvdWJsZSwgTlNJbnRlZ2VyKSljYWxsYmFjayBXS19BUElfQVZB
SUxBQkxFKG1hY29zeCgxMC4xMy40KSwgaW9zKDExLjMpKTsKKy0gKHZvaWQpX3JlcXVlc3RBY3Rp
dmVOb3dQbGF5aW5nU2Vzc2lvbkluZm86KHZvaWQoXikoQk9PTCwgQk9PTCwgTlNTdHJpbmcqLCBk
b3VibGUsIGRvdWJsZSwgTlNJbnRlZ2VyKSljYWxsYmFjayBXS19BUElfQVZBSUxBQkxFKG1hY29z
KDEwLjEzLjQpLCBpb3MoMTEuMykpOwogCiAtICh2b2lkKV9zZXRQYWdlU2NhbGU6KENHRmxvYXQp
c2NhbGUgd2l0aE9yaWdpbjooQ0dQb2ludClvcmlnaW4gV0tfQVBJX0FWQUlMQUJMRShpb3MoMTAu
MykpOwogLSAoQ0dGbG9hdClfcGFnZVNjYWxlIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEwLjMpKTsK
IAotLSAodm9pZClfZG9BZnRlck5leHRQcmVzZW50YXRpb25VcGRhdGU6KHZvaWQgKF4pKHZvaWQp
KXVwZGF0ZUJsb2NrIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsK
LS0gKHZvaWQpX2RvQWZ0ZXJOZXh0UHJlc2VudGF0aW9uVXBkYXRlV2l0aG91dFdhaXRpbmdGb3JB
bmltYXRlZFJlc2l6ZUZvclRlc3Rpbmc6KHZvaWQgKF4pKHZvaWQpKXVwZGF0ZUJsb2NrIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3N4KDEwLjE0KSwgaW9zKDEyLjApKTsKLS0gKHZvaWQpX2RvQWZ0ZXJO
ZXh0UHJlc2VudGF0aW9uVXBkYXRlV2l0aG91dFdhaXRpbmdGb3JQYWludGluZzoodm9pZCAoXiko
dm9pZCkpdXBkYXRlQmxvY2sgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIuMyksIGlvcygx
MC4zKSk7Ci0tICh2b2lkKV9kb0FmdGVyTmV4dFZpc2libGVDb250ZW50UmVjdFVwZGF0ZToodm9p
ZCAoXikodm9pZCkpdXBkYXRlQmxvY2sgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMpLCBp
b3MoMTEuMCkpOworLSAodm9pZClfZG9BZnRlck5leHRQcmVzZW50YXRpb25VcGRhdGU6KHZvaWQg
KF4pKHZvaWQpKXVwZGF0ZUJsb2NrIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3Mo
MTAuMCkpOworLSAodm9pZClfZG9BZnRlck5leHRQcmVzZW50YXRpb25VcGRhdGVXaXRob3V0V2Fp
dGluZ0ZvckFuaW1hdGVkUmVzaXplRm9yVGVzdGluZzoodm9pZCAoXikodm9pZCkpdXBkYXRlQmxv
Y2sgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4wKSk7CistICh2b2lkKV9k
b0FmdGVyTmV4dFByZXNlbnRhdGlvblVwZGF0ZVdpdGhvdXRXYWl0aW5nRm9yUGFpbnRpbmc6KHZv
aWQgKF4pKHZvaWQpKXVwZGF0ZUJsb2NrIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIuMyks
IGlvcygxMC4zKSk7CistICh2b2lkKV9kb0FmdGVyTmV4dFZpc2libGVDb250ZW50UmVjdFVwZGF0
ZToodm9pZCAoXikodm9pZCkpdXBkYXRlQmxvY2sgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4x
MyksIGlvcygxMS4wKSk7CiAKLS0gKHZvaWQpX2Rpc2FibGVCYWNrRm9yd2FyZFNuYXBzaG90Vm9s
YXRpbGl0eUZvclRlc3RpbmcgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIuMyksIGlvcygx
MC4zKSk7Ci0tICh2b2lkKV9leGVjdXRlRWRpdENvbW1hbmQ6KE5TU3RyaW5nICopY29tbWFuZCBh
cmd1bWVudDooTlNTdHJpbmcgKilhcmd1bWVudCBjb21wbGV0aW9uOih2b2lkICheKShCT09MKSlj
b21wbGV0aW9uIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpLCBpb3MoMTEuMykpOwor
LSAodm9pZClfZGlzYWJsZUJhY2tGb3J3YXJkU25hcHNob3RWb2xhdGlsaXR5Rm9yVGVzdGluZyBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyLjMpLCBpb3MoMTAuMykpOworLSAodm9pZClfZXhl
Y3V0ZUVkaXRDb21tYW5kOihOU1N0cmluZyAqKWNvbW1hbmQgYXJndW1lbnQ6KE5TU3RyaW5nICop
YXJndW1lbnQgY29tcGxldGlvbjoodm9pZCAoXikoQk9PTCkpY29tcGxldGlvbiBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOwogCi0tICh2b2lkKV9kZW55TmV4dFVz
ZXJNZWRpYVJlcXVlc3QgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTQpLCBpb3MoMTIuMCkp
OworLSAodm9pZClfZGVueU5leHRVc2VyTWVkaWFSZXF1ZXN0IFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTAuMTQpLCBpb3MoMTIuMCkpOwogCiAtIChCT09MKV9iZWdpbkJhY2tTd2lwZUZvclRlc3Rp
bmc7CiAtIChCT09MKV9jb21wbGV0ZUJhY2tTd2lwZUZvclRlc3Rpbmc7CiAtICh2b2lkKV9zZXRE
ZWZlcnNMb2FkaW5nRm9yVGVzdGluZzooQk9PTClkZWZlcnNMb2FkaW5nOwogCi0tICh2b2lkKV9z
ZXRTaGFyZVNoZWV0Q29tcGxldGVzSW1tZWRpYXRlbHlXaXRoUmVzb2x1dGlvbkZvclRlc3Rpbmc6
KEJPT0wpcmVzb2x2ZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhX
S19JT1NfVEJBKSk7CistICh2b2lkKV9zZXRTaGFyZVNoZWV0Q29tcGxldGVzSW1tZWRpYXRlbHlX
aXRoUmVzb2x1dGlvbkZvclRlc3Rpbmc6KEJPT0wpcmVzb2x2ZWQgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAotQHByb3BlcnR5IChub25hdG9t
aWMsIHJlYWRvbmx5KSBCT09MIF9oYXNJbnNwZWN0b3JGcm9udGVuZCBXS19BUElfQVZBSUxBQkxF
KG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLUBwcm9wZXJ0eSAobm9uYXRv
bWljLCByZWFkb25seSkgX1dLSW5zcGVjdG9yICpfaW5zcGVjdG9yIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotQHByb3BlcnR5IChub25hdG9t
aWMsIHJlYWRvbmx5KSBfV0tGcmFtZUhhbmRsZSAqX21haW5GcmFtZSBXS19BUElfQVZBSUxBQkxF
KG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRv
bWljLCByZWFkb25seSkgQk9PTCBfaGFzSW5zcGVjdG9yRnJvbnRlbmQgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRv
bWljLCByZWFkb25seSkgX1dLSW5zcGVjdG9yICpfaW5zcGVjdG9yIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZG9ubHkpIF9XS0ZyYW1lSGFuZGxlICpfbWFpbkZyYW1lIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKLUBwcm9wZXJ0eSAobm9uYXRv
bWljLCBzZXR0ZXI9X3NldFNjcm9sbGluZ1VwZGF0ZXNEaXNhYmxlZEZvclRlc3Rpbmc6KSBCT09M
IF9zY3JvbGxpbmdVcGRhdGVzRGlzYWJsZWRGb3JUZXN0aW5nIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMs
IHNldHRlcj1fc2V0U2Nyb2xsaW5nVXBkYXRlc0Rpc2FibGVkRm9yVGVzdGluZzopIEJPT0wgX3Nj
cm9sbGluZ1VwZGF0ZXNEaXNhYmxlZEZvclRlc3RpbmcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhX
S19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogLSAodm9pZClfcHJvY2Vzc1dpbGxTdXNw
ZW5kSW1taW5lbnRseUZvclRlc3Rpbmc7CiAtICh2b2lkKV9wcm9jZXNzRGlkUmVzdW1lRm9yVGVz
dGluZzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YnNpdGVEYXRhUmVjb3JkLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJzaXRlRGF0YVJlY29yZC5oCmluZGV4IGEwYzAwMzQzODY1Y2QyY2EwNmQyZjY1NTJhNWQ0MTcx
NzY4MzkzYWEuLjU5MDY3YmRhZjEzMGVmNmI4YTA0OTlmYzIxYTBkYTE4NDBmNGZjMmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhUmVj
b3JkLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURh
dGFSZWNvcmQuaApAQCAtMzAsMzcgKzMwLDM3IEBACiBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgog
CiAvKiEgQGNvbnN0YW50IFdLV2Vic2l0ZURhdGFUeXBlRmV0Y2hDYWNoZSBPbi1kaXNrIEZldGNo
IGNhY2hlcy4gKi8KLVdLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IFdLV2Vic2l0ZURhdGFUeXBl
RmV0Y2hDYWNoZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSwgaW9zKDExLjMpKTsK
K1dLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IFdLV2Vic2l0ZURhdGFUeXBlRmV0Y2hDYWNoZSBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOwogCiAvKiEgQGNvbnN0
YW50IFdLV2Vic2l0ZURhdGFUeXBlRGlza0NhY2hlIE9uLWRpc2sgY2FjaGVzLiAqLwotV0tfRVhU
RVJOIE5TU3RyaW5nICogY29uc3QgV0tXZWJzaXRlRGF0YVR5cGVEaXNrQ2FjaGUgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CitXS19FWFRFUk4gTlNTdHJpbmcgKiBj
b25zdCBXS1dlYnNpdGVEYXRhVHlwZURpc2tDYWNoZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEw
LjExKSwgaW9zKDkuMCkpOwogCiAvKiEgQGNvbnN0YW50IFdLV2Vic2l0ZURhdGFUeXBlTWVtb3J5
Q2FjaGUgSW4tbWVtb3J5IGNhY2hlcy4gKi8KLVdLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IFdL
V2Vic2l0ZURhdGFUeXBlTWVtb3J5Q2FjaGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEp
LCBpb3MoOS4wKSk7CitXS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBXS1dlYnNpdGVEYXRhVHlw
ZU1lbW9yeUNhY2hlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTEpLCBpb3MoOS4wKSk7CiAK
IC8qISBAY29uc3RhbnQgV0tXZWJzaXRlRGF0YVR5cGVPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNo
ZSBIVE1MIG9mZmxpbmUgd2ViIGFwcGxpY2F0aW9uIGNhY2hlcy4gKi8KLVdLX0VYVEVSTiBOU1N0
cmluZyAqIGNvbnN0IFdLV2Vic2l0ZURhdGFUeXBlT2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGUg
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CitXS19FWFRFUk4gTlNT
dHJpbmcgKiBjb25zdCBXS1dlYnNpdGVEYXRhVHlwZU9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hl
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTEpLCBpb3MoOS4wKSk7CiAKIC8qISBAY29uc3Rh
bnQgV0tXZWJzaXRlRGF0YVR5cGVDb29raWVzIENvb2tpZXMuICovCi1XS19FWFRFUk4gTlNTdHJp
bmcgKiBjb25zdCBXS1dlYnNpdGVEYXRhVHlwZUNvb2tpZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goMTAuMTEpLCBpb3MoOS4wKSk7CitXS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBXS1dlYnNp
dGVEYXRhVHlwZUNvb2tpZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMSksIGlvcyg5LjAp
KTsKIAogLyohIEBjb25zdGFudCBXS1dlYnNpdGVEYXRhVHlwZVNlc3Npb25TdG9yYWdlIEhUTUwg
c2Vzc2lvbiBzdG9yYWdlLiAqLwotV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgV0tXZWJzaXRl
RGF0YVR5cGVTZXNzaW9uU3RvcmFnZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlv
cyg5LjApKTsKK1dLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IFdLV2Vic2l0ZURhdGFUeXBlU2Vz
c2lvblN0b3JhZ2UgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMSksIGlvcyg5LjApKTsKIAog
LyohIEBjb25zdGFudCBXS1dlYnNpdGVEYXRhVHlwZUxvY2FsU3RvcmFnZSBIVE1MIGxvY2FsIHN0
b3JhZ2UuICovCi1XS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBXS1dlYnNpdGVEYXRhVHlwZUxv
Y2FsU3RvcmFnZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKK1dL
X0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IFdLV2Vic2l0ZURhdGFUeXBlTG9jYWxTdG9yYWdlIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTEpLCBpb3MoOS4wKSk7CiAKIC8qISBAY29uc3RhbnQg
V0tXZWJzaXRlRGF0YVR5cGVXZWJTUUxEYXRhYmFzZXMgV2ViU1FMIGRhdGFiYXNlcy4gKi8KLVdL
X0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IFdLV2Vic2l0ZURhdGFUeXBlV2ViU1FMRGF0YWJhc2Vz
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOworV0tfRVhURVJOIE5T
U3RyaW5nICogY29uc3QgV0tXZWJzaXRlRGF0YVR5cGVXZWJTUUxEYXRhYmFzZXMgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMC4xMSksIGlvcyg5LjApKTsKIAogLyohIEBjb25zdGFudCBXS1dlYnNp
dGVEYXRhVHlwZUluZGV4ZWREQkRhdGFiYXNlcyBJbmRleGVkREIgZGF0YWJhc2VzLiAqLwotV0tf
RVhURVJOIE5TU3RyaW5nICogY29uc3QgV0tXZWJzaXRlRGF0YVR5cGVJbmRleGVkREJEYXRhYmFz
ZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CitXS19FWFRFUk4g
TlNTdHJpbmcgKiBjb25zdCBXS1dlYnNpdGVEYXRhVHlwZUluZGV4ZWREQkRhdGFiYXNlcyBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEwLjExKSwgaW9zKDkuMCkpOwogCiAvKiEgQGNvbnN0YW50IFdL
V2Vic2l0ZURhdGFUeXBlU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbnMgU2VydmljZSB3b3JrZXIg
cmVnaXN0cmF0aW9ucy4gKi8KLVdLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IFdLV2Vic2l0ZURh
dGFUeXBlU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbnMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3go
MTAuMTMuNCksIGlvcygxMS4zKSk7CitXS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBXS1dlYnNp
dGVEYXRhVHlwZVNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25zIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTAuMTMuNCksIGlvcygxMS4zKSk7CiAKIC8qISBBIFdLV2Vic2l0ZURhdGFSZWNvcmQgcmVw
cmVzZW50cyB3ZWJzaXRlIGRhdGEsIGdyb3VwZWQgYnkgZG9tYWluIG5hbWUgdXNpbmcgdGhlIHB1
YmxpYyBzdWZmaXggbGlzdC4gKi8KLVdLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBp
b3MoOS4wKSkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4xMSksIGlvcyg5LjApKQogQGlu
dGVyZmFjZSBXS1dlYnNpdGVEYXRhUmVjb3JkIDogTlNPYmplY3QKIAogLyohIEBhYnN0cmFjdCBU
aGUgZGlzcGxheSBuYW1lIGZvciB0aGUgZGF0YSByZWNvcmQuIFRoaXMgaXMgdXN1YWxseSB0aGUg
ZG9tYWluIG5hbWUuICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJzaXRlRGF0YVJlY29yZFByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhUmVjb3JkUHJpdmF0ZS5oCmluZGV4IDRmNzhjNTU3
NjgwMDYxZTFlMTdlYzcyODJkYTQ3NGQzOTgzMjJhZTYuLmYxMWU0ODA0YWU5ZThlOWQ5OGMzNDZk
NTA3NTFkYzgzNzc1MTVlMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYnNpdGVEYXRhUmVjb3JkUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhUmVjb3JkUHJpdmF0ZS5oCkBAIC0yOSwy
MiArMjksMjIgQEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIAogQGNsYXNzIF9XS1dlYnNpdGVE
YXRhU2l6ZTsKIAotV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgX1dLV2Vic2l0ZURhdGFUeXBl
SFNUU0NhY2hlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOwotV0tf
RVhURVJOIE5TU3RyaW5nICogY29uc3QgX1dLV2Vic2l0ZURhdGFUeXBlTWVkaWFLZXlzIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOwotV0tfRVhURVJOIE5TU3RyaW5n
ICogY29uc3QgX1dLV2Vic2l0ZURhdGFUeXBlU2VhcmNoRmllbGRSZWNlbnRTZWFyY2hlcyBXS19B
UElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMiksIGlvcygxMC4wKSk7Ci1XS19FWFRFUk4gTlNTdHJp
bmcgKiBjb25zdCBfV0tXZWJzaXRlRGF0YVR5cGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsKLVdLX0VYVEVSTiBOU1N0cmlu
ZyAqIGNvbnN0IF9XS1dlYnNpdGVEYXRhVHlwZUNyZWRlbnRpYWxzIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3N4KDEwLjEzKSwgaW9zKDExLjApKTsKK1dLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IF9X
S1dlYnNpdGVEYXRhVHlwZUhTVFNDYWNoZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjExKSwg
aW9zKDkuMCkpOworV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgX1dLV2Vic2l0ZURhdGFUeXBl
TWVkaWFLZXlzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTEpLCBpb3MoOS4wKSk7CitXS19F
WFRFUk4gTlNTdHJpbmcgKiBjb25zdCBfV0tXZWJzaXRlRGF0YVR5cGVTZWFyY2hGaWVsZFJlY2Vu
dFNlYXJjaGVzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOworV0tf
RVhURVJOIE5TU3RyaW5nICogY29uc3QgX1dLV2Vic2l0ZURhdGFUeXBlUmVzb3VyY2VMb2FkU3Rh
dGlzdGljcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKK1dLX0VY
VEVSTiBOU1N0cmluZyAqIGNvbnN0IF9XS1dlYnNpdGVEYXRhVHlwZUNyZWRlbnRpYWxzIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpOwogCiAKICNpZiAhVEFSR0VUX09T
X0lQSE9ORQotV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgX1dLV2Vic2l0ZURhdGFUeXBlUGx1
Z0luRGF0YSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSkpOworV0tfRVhURVJOIE5TU3Ry
aW5nICogY29uc3QgX1dLV2Vic2l0ZURhdGFUeXBlUGx1Z0luRGF0YSBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjExKSk7CiAjZW5kaWYKIAogQGludGVyZmFjZSBXS1dlYnNpdGVEYXRhUmVjb3Jk
IChXS1ByaXZhdGUpCiAKIEBwcm9wZXJ0eSAobnVsbGFibGUsIG5vbmF0b21pYywgcmVhZG9ubHkp
IF9XS1dlYnNpdGVEYXRhU2l6ZSAqX2RhdGFTaXplOwogCi0tIChOU0FycmF5PE5TU3RyaW5nICo+
ICopX29yaWdpbnNTdHJpbmdzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjE0KSwgaW9zKDEy
LjApKTsKKy0gKE5TQXJyYXk8TlNTdHJpbmcgKj4gKilfb3JpZ2luc1N0cmluZ3MgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4wKSk7CiAKIEBlbmQKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5oCmlu
ZGV4IDVkNjJhYzRiYzZjZTBlNTFmZWY2MDI1ODY4YzZiZTk3ZmMwZjQxYmEuLjcyNmM0OTcyYWEw
YjMyZTBkYzYwMmUwYWIyZDcxZjZhZThlZjkzYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLmgKQEAgLTM1LDcgKzM1
LDcgQEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KICBtYWtlIHVzZSBvZi4gVGhpcyBpbmNsdWRl
cyBjb29raWVzLCBkaXNrIGFuZCBtZW1vcnkgY2FjaGVzLCBhbmQgcGVyc2lzdGVudCBkYXRhIHN1
Y2ggYXMgV2ViU1FMLAogIEluZGV4ZWREQiBkYXRhYmFzZXMsIGFuZCBsb2NhbCBzdG9yYWdlLgog
ICovCi1XS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpCitXS19DTEFT
U19BVkFJTEFCTEUobWFjb3MoMTAuMTEpLCBpb3MoOS4wKSkKIEBpbnRlcmZhY2UgV0tXZWJzaXRl
RGF0YVN0b3JlIDogTlNPYmplY3QgPE5TU2VjdXJlQ29kaW5nPgogCiAvKiBAYWJzdHJhY3QgUmV0
dXJucyB0aGUgZGVmYXVsdCBkYXRhIHN0b3JlLiAqLwpAQCAtNzYsNyArNzYsNyBAQCBXS19DTEFT
U19BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpCiAtICh2b2lkKXJlbW92ZURhdGFP
ZlR5cGVzOihOU1NldDxOU1N0cmluZyAqPiAqKWRhdGFUeXBlcyBtb2RpZmllZFNpbmNlOihOU0Rh
dGUgKilkYXRlIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFu
ZGxlcjsKIAogLyohIEBhYnN0cmFjdCBSZXR1cm5zIHRoZSBjb29raWUgc3RvcmUgcmVwcmVzZW50
aW5nIEhUVFAgY29va2llcyBpbiB0aGlzIHdlYnNpdGUgZGF0YSBzdG9yZS4gKi8KLUBwcm9wZXJ0
eSAobm9uYXRvbWljLCByZWFkb25seSkgV0tIVFRQQ29va2llU3RvcmUgKmh0dHBDb29raWVTdG9y
ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7CitAcHJvcGVydHkg
KG5vbmF0b21pYywgcmVhZG9ubHkpIFdLSFRUUENvb2tpZVN0b3JlICpodHRwQ29va2llU3RvcmUg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSk7CiAKIEBlbmQKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFT
dG9yZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNp
dGVEYXRhU3RvcmVQcml2YXRlLmgKaW5kZXggNGE5MzdhODAxYjc3ODNmYzcwMzEzMjRmZGI2ODIx
OGRjMDVjZTFjYS4uMDhhZWQzYWI5YjA1NDQwNWMzNGYxMjAyYTk0ODc4OWVlOWEzY2Q0YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFT
dG9yZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oCkBAIC0zNCw3ICszNCw3IEBAIE5TX0FTU1VNRV9OT05O
VUxMX0JFR0lOCiAKIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tXZWJzaXRlRGF0
YVN0b3JlRmV0Y2hPcHRpb25zKSB7CiAgICAgX1dLV2Vic2l0ZURhdGFTdG9yZUZldGNoT3B0aW9u
Q29tcHV0ZVNpemVzID0gMSA8PCAwLAotfSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMiks
IGlvcygxMC4wKSk7Cit9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkp
OwogCiBAaW50ZXJmYWNlIFdLV2Vic2l0ZURhdGFTdG9yZSAoV0tQcml2YXRlKQogCkBAIC00Miwz
MSArNDIsMzEgQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS1dlYnNpdGVEYXRh
U3RvcmVGZXRjaE9wdGlvbnMpIHsKICsgKEJPT0wpX2RlZmF1bHREYXRhU3RvcmVFeGlzdHM7CiAr
ICh2b2lkKV9kZWxldGVEZWZhdWx0RGF0YVN0b3JlRm9yVGVzdGluZzsKIAotLSAoaW5zdGFuY2V0
eXBlKV9pbml0V2l0aENvbmZpZ3VyYXRpb246KF9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0
aW9uICopY29uZmlndXJhdGlvbiBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygx
MS4wKSk7CistIChpbnN0YW5jZXR5cGUpX2luaXRXaXRoQ29uZmlndXJhdGlvbjooX1dLV2Vic2l0
ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gKiljb25maWd1cmF0aW9uIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpOwogCiAtICh2b2lkKV9mZXRjaERhdGFSZWNvcmRzT2ZU
eXBlczooTlNTZXQ8TlNTdHJpbmcgKj4gKilkYXRhVHlwZXMgd2l0aE9wdGlvbnM6KF9XS1dlYnNp
dGVEYXRhU3RvcmVGZXRjaE9wdGlvbnMpb3B0aW9ucyBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAo
XikoTlNBcnJheTxXS1dlYnNpdGVEYXRhUmVjb3JkICo+ICopKWNvbXBsZXRpb25IYW5kbGVyOwog
Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RW5hYmxlZDopIEJPT0wgX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBz
ZXR0ZXI9X3NldFJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGU6KSBCT09MIF9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjE0KSwg
aW9zKDEyLjApKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldENhY2hlU3RvcmFn
ZVBlck9yaWdpblF1b3RhOikgTlNVSW50ZWdlciBfY2FjaGVTdG9yYWdlUGVyT3JpZ2luUXVvdGEg
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCksIGlvcygxMS4zKSk7Ci1AcHJvcGVydHkg
KG5vbmF0b21pYywgc2V0dGVyPV9zZXRDYWNoZVN0b3JhZ2VEaXJlY3Rvcnk6KSBOU1N0cmluZyog
X2NhY2hlU3RvcmFnZURpcmVjdG9yeSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSwg
aW9zKDExLjMpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFNlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb25EaXJlY3Rvcnk6KSBOU1N0cmluZyogX3NlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb25EaXJlY3RvcnkgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCksIGlvcygxMS4z
KSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRW5hYmxlZDopIEJPT0wgX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOworQHByb3BlcnR5IChub25hdG9taWMs
IHNldHRlcj1fc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZTopIEJPT0wgX3Jlc291
cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCks
IGlvcygxMi4wKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRDYWNoZVN0b3Jh
Z2VQZXJPcmlnaW5RdW90YTopIE5TVUludGVnZXIgX2NhY2hlU3RvcmFnZVBlck9yaWdpblF1b3Rh
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7CitAcHJvcGVydHkg
KG5vbmF0b21pYywgc2V0dGVyPV9zZXRDYWNoZVN0b3JhZ2VEaXJlY3Rvcnk6KSBOU1N0cmluZyog
X2NhY2hlU3RvcmFnZURpcmVjdG9yeSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBp
b3MoMTEuMykpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0U2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbkRpcmVjdG9yeTopIE5TU3RyaW5nKiBfc2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbkRpcmVjdG9yeSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykp
OwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRCb3VuZEludGVyZmFjZUlkZW50
aWZpZXI6KSBOU1N0cmluZyAqX2JvdW5kSW50ZXJmYWNlSWRlbnRpZmllciBXS19BUElfQVZBSUxB
QkxFKG1hY29zeCgxMC4xMy40KSwgaW9zKDExLjMpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBz
ZXR0ZXI9X3NldEFsbG93c0NlbGx1bGFyQWNjZXNzOikgQk9PTCBfYWxsb3dzQ2VsbHVsYXJBY2Nl
c3MgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCksIGlvcygxMS4zKSk7Ci1AcHJvcGVy
dHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRQcm94eUNvbmZpZ3VyYXRpb246KSBOU0RpY3Rpb25h
cnkgKl9wcm94eUNvbmZpZ3VyYXRpb24gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTQpLCBp
b3MoMTIuMCkpOwotQHByb3BlcnR5IChub25hdG9taWMsIGNvcHksIHNldHRlcj1fc2V0U291cmNl
QXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyOikgTlNTdHJpbmcgKl9zb3VyY2VBcHBsaWNhdGlv
bkJ1bmRsZUlkZW50aWZpZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgY29weSwgc2V0dGVyPV9zZXRT
b3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXI6KSBOU1N0cmluZyAqX3NvdXJjZUFw
cGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllciBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19N
QUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9
X3NldEJvdW5kSW50ZXJmYWNlSWRlbnRpZmllcjopIE5TU3RyaW5nICpfYm91bmRJbnRlcmZhY2VJ
ZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7CitA
cHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBbGxvd3NDZWxsdWxhckFjY2VzczopIEJP
T0wgX2FsbG93c0NlbGx1bGFyQWNjZXNzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCks
IGlvcygxMS4zKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRQcm94eUNvbmZp
Z3VyYXRpb246KSBOU0RpY3Rpb25hcnkgKl9wcm94eUNvbmZpZ3VyYXRpb24gV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4wKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgY29w
eSwgc2V0dGVyPV9zZXRTb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXI6KSBOU1N0cmlu
ZyAqX3NvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMs
IGNvcHksIHNldHRlcj1fc2V0U291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyOikg
TlNTdHJpbmcgKl9zb3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXIgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogQHByb3BlcnR5
IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1VSTCAqX2luZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5
OwogCi0tICh2b2lkKV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzU2V0U2hvdWxkU3VibWl0VGVsZW1l
dHJ5OihCT09MKXZhbHVlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzKSwgaW9zKDExLjAp
KTsKLS0gKHZvaWQpX3NldFJlc291cmNlTG9hZFN0YXRpc3RpY3NUZXN0aW5nQ2FsbGJhY2s6KG51
bGxhYmxlIHZvaWQgKF4pKFdLV2Vic2l0ZURhdGFTdG9yZSAqLCBOU1N0cmluZyAqKSljYWxsYmFj
ayBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7Ci0tICh2b2lkKV9n
ZXRBbGxTdG9yYWdlQWNjZXNzRW50cmllc0ZvcjooV0tXZWJWaWV3ICopd2ViVmlldyBjb21wbGV0
aW9uSGFuZGxlcjoodm9pZCAoXikoTlNBcnJheTxOU1N0cmluZyAqPiAqZG9tYWlucykpY29tcGxl
dGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTQpLCBpb3MoMTIuMCkpOwot
KyAodm9pZClfYWxsb3dXZWJzaXRlRGF0YVJlY29yZHNGb3JBbGxPcmlnaW5zIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KDEwLjEzLjQpLCBpb3MoMTEuMykpOwotLSAoYm9vbClfaGFzUmVnaXN0ZXJl
ZFNlcnZpY2VXb3JrZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTQpLCBpb3MoMTIuMCkp
OworLSAodm9pZClfcmVzb3VyY2VMb2FkU3RhdGlzdGljc1NldFNob3VsZFN1Ym1pdFRlbGVtZXRy
eTooQk9PTCl2YWx1ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKTsK
Ky0gKHZvaWQpX3NldFJlc291cmNlTG9hZFN0YXRpc3RpY3NUZXN0aW5nQ2FsbGJhY2s6KG51bGxh
YmxlIHZvaWQgKF4pKFdLV2Vic2l0ZURhdGFTdG9yZSAqLCBOU1N0cmluZyAqKSljYWxsYmFjayBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKTsKKy0gKHZvaWQpX2dldEFs
bFN0b3JhZ2VBY2Nlc3NFbnRyaWVzRm9yOihXS1dlYlZpZXcgKil3ZWJWaWV3IGNvbXBsZXRpb25I
YW5kbGVyOih2b2lkICheKShOU0FycmF5PE5TU3RyaW5nICo+ICpkb21haW5zKSljb21wbGV0aW9u
SGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSwgaW9zKDEyLjApKTsKKysgKHZv
aWQpX2FsbG93V2Vic2l0ZURhdGFSZWNvcmRzRm9yQWxsT3JpZ2lucyBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOworLSAoYm9vbClfaGFzUmVnaXN0ZXJlZFNlcnZp
Y2VXb3JrZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4wKSk7CiAKLUBw
cm9wZXJ0eSAobnVsbGFibGUsIG5vbmF0b21pYywgd2VhaykgaWQgPF9XS1dlYnNpdGVEYXRhU3Rv
cmVEZWxlZ2F0ZT4gX2RlbGVnYXRlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChudWxsYWJsZSwgbm9uYXRvbWljLCB3ZWFr
KSBpZCA8X1dLV2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlPiBfZGVsZWdhdGUgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogQGVuZAogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXaW5kb3dGZWF0dXJl
cy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2luZG93RmVhdHVyZXMu
aAppbmRleCBmMDBmODBlM2FiMTM4MTY0MDQ4MDdlODNkMzJhMTg2OTMzZDFlNmJkLi4yNDAwOGU3
MjUxYjBhNGViYzM5OGYwNzM3NzE3OGZhYzViMDNhNGExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXaW5kb3dGZWF0dXJlcy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dpbmRvd0ZlYXR1cmVzLmgKQEAgLTMxLDcgKzMx
LDcgQEAKICAqLwogTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIAotV0tfQ0xBU1NfQVZBSUxBQkxF
KG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEw
KSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIFdLV2luZG93RmVhdHVyZXMgOiBOU09iamVjdAogCiAv
KiEgQGFic3RyYWN0IEJPT0wuIFdoZXRoZXIgdGhlIG1lbnUgYmFyIHNob3VsZCBiZSB2aXNpYmxl
LiBuaWwgaWYgbWVudSBiYXIgdmlzaWJpbGl0eSB3YXMgbm90IHNwZWNpZmllZC4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dpbmRvd0ZlYXR1cmVzUHJp
dmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2luZG93RmVhdHVy
ZXNQcml2YXRlLmgKaW5kZXggZDRlNmRlYmJiMjllZDEwZDk2NGM3MmUxMGRmYTVlMTFkNzExOGU4
MS4uMGQzMTI3ZjA2MTc2MzUyM2M4MmFlMDQzMjY3ZTNhNGFjN2RkNzYzMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2luZG93RmVhdHVyZXNQcml2YXRl
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2luZG93RmVhdHVy
ZXNQcml2YXRlLmgKQEAgLTI5LDEwICsyOSwxMCBAQCBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgog
CiBAaW50ZXJmYWNlIFdLV2luZG93RmVhdHVyZXMgKFdLUHJpdmF0ZSkKIAotQHByb3BlcnR5IChu
dWxsYWJsZSwgbm9uYXRvbWljLCByZWFkb25seSkgTlNOdW1iZXIgKl9sb2NhdGlvbkJhclZpc2li
aWxpdHkgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpOwotQHByb3Bl
cnR5IChudWxsYWJsZSwgbm9uYXRvbWljLCByZWFkb25seSkgTlNOdW1iZXIgKl9zY3JvbGxiYXJz
VmlzaWJpbGl0eSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7Ci1A
cHJvcGVydHkgKG51bGxhYmxlLCBub25hdG9taWMsIHJlYWRvbmx5KSBOU051bWJlciAqX2Z1bGxz
Y3JlZW5EaXNwbGF5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzKSwgaW9zKDExLjApKTsK
LUBwcm9wZXJ0eSAobnVsbGFibGUsIG5vbmF0b21pYywgcmVhZG9ubHkpIE5TTnVtYmVyICpfZGlh
bG9nRGlzcGxheSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7CitA
cHJvcGVydHkgKG51bGxhYmxlLCBub25hdG9taWMsIHJlYWRvbmx5KSBOU051bWJlciAqX2xvY2F0
aW9uQmFyVmlzaWJpbGl0eSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjAp
KTsKK0Bwcm9wZXJ0eSAobnVsbGFibGUsIG5vbmF0b21pYywgcmVhZG9ubHkpIE5TTnVtYmVyICpf
c2Nyb2xsYmFyc1Zpc2liaWxpdHkgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygx
MS4wKSk7CitAcHJvcGVydHkgKG51bGxhYmxlLCBub25hdG9taWMsIHJlYWRvbmx5KSBOU051bWJl
ciAqX2Z1bGxzY3JlZW5EaXNwbGF5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3Mo
MTEuMCkpOworQHByb3BlcnR5IChudWxsYWJsZSwgbm9uYXRvbWljLCByZWFkb25seSkgTlNOdW1i
ZXIgKl9kaWFsb2dEaXNwbGF5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEu
MCkpOwogCiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tBY3RpdmF0ZWRFbGVtZW50SW5mby5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS0FjdGl2YXRlZEVsZW1lbnRJbmZvLmgKaW5kZXggYjk3NGIwNDQ4MmZkYWNh
MDYwNjJjODk1MjM3MGI3YWU0YmMxODZiMC4uNDg5ODgxMmUxNWVlOGU3M2FmNWUxZTc2NTMzOThl
MjJkYTJmMjAwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L19XS0FjdGl2YXRlZEVsZW1lbnRJbmZvLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS0FjdGl2YXRlZEVsZW1lbnRJbmZvLmgKQEAgLTM0LDE4ICszNCwxOCBAQAog
dHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLQWN0aXZhdGVkRWxlbWVudFR5cGUpIHsKICAg
ICBfV0tBY3RpdmF0ZWRFbGVtZW50VHlwZUxpbmssCiAgICAgX1dLQWN0aXZhdGVkRWxlbWVudFR5
cGVJbWFnZSwKLSAgICBfV0tBY3RpdmF0ZWRFbGVtZW50VHlwZUF0dGFjaG1lbnQgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3MoMTAuMCkpLAotICAgIF9XS0FjdGl2YXRlZEVsZW1l
bnRUeXBlVW5zcGVjaWZpZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMpLCBpb3MoMTEu
MCkpLAotfSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKTsKKyAgICBf
V0tBY3RpdmF0ZWRFbGVtZW50VHlwZUF0dGFjaG1lbnQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygx
MC4xMiksIGlvcygxMC4wKSksCisgICAgX1dLQWN0aXZhdGVkRWxlbWVudFR5cGVVbnNwZWNpZmll
ZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKSwKK30gV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMC4xMCksIGlvcyg4LjApKTsKIAotV0tfQ0xBU1NfQVZBSUxBQkxFKG1h
Y29zeCgxMC4xMCksIGlvcyg4LjApKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEwKSwg
aW9zKDguMCkpCiBAaW50ZXJmYWNlIF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvIDogTlNPYmplY3QK
IAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1VSTCAqVVJMOwogQHByb3BlcnR5
IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1N0cmluZyAqdGl0bGU7CiBAcHJvcGVydHkgKG5vbmF0
b21pYywgcmVhZG9ubHkpIF9XS0FjdGl2YXRlZEVsZW1lbnRUeXBlIHR5cGU7CiBAcHJvcGVydHkg
KG5vbmF0b21pYywgcmVhZG9ubHkpIENHUmVjdCBib3VuZGluZ1JlY3Q7Ci1AcHJvcGVydHkgKG5v
bmF0b21pYywgcmVhZG9ubHkpIE5TU3RyaW5nICpJRCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgx
MC4xMiksIGlvcygxMC4wKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TU3Ry
aW5nICpJRCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKICNpZiBU
QVJHRVRfT1NfSVBIT05FCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TRGljdGlv
bmFyeSAqdXNlckluZm8gV0tfQVBJX0FWQUlMQUJMRShpb3MoMTEuMCkpOwogQHByb3BlcnR5IChu
b25hdG9taWMsIHJlYWRvbmx5LCBjb3B5KSBVSUltYWdlICppbWFnZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBcHBsaWNhdGlvbk1hbmlmZXN0Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXBwbGljYXRpb25NYW5pZmVz
dC5oCmluZGV4IDZkMjBlY2FhZWM1ODYzODJiODUzZWNmMzg3ZjE1YzFjNjcwYTIxZDUuLjUwMzYz
ZGFkN2RhMjAwOTNjMTczMmM0NDE1ODkzZjFhZjliYTIzNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBcHBsaWNhdGlvbk1hbmlmZXN0LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0FwcGxpY2F0aW9uTWFuaWZlc3Qu
aApAQCAtMzYsOSArMzYsOSBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tBcHBsaWNh
dGlvbk1hbmlmZXN0RGlzcGxheU1vZGUpIHsKICAgICBfV0tBcHBsaWNhdGlvbk1hbmlmZXN0RGlz
cGxheU1vZGVNaW5pbWFsVUksCiAgICAgX1dLQXBwbGljYXRpb25NYW5pZmVzdERpc3BsYXlNb2Rl
U3RhbmRhbG9uZSwKICAgICBfV0tBcHBsaWNhdGlvbk1hbmlmZXN0RGlzcGxheU1vZGVGdWxsU2Ny
ZWVuLAotfSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSwgaW9zKDExLjMpKTsKK30g
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKIAotV0tfQ0xBU1Nf
QVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSwgaW9zKDExLjMpKQorV0tfQ0xBU1NfQVZBSUxBQkxF
KG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpCiBAaW50ZXJmYWNlIF9XS0FwcGxpY2F0aW9uTWFu
aWZlc3QgOiBOU09iamVjdCA8TlNTZWN1cmVDb2Rpbmc+CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
LCByZWFkb25seSwgbnVsbGFibGUsIGNvcHkpIE5TU3RyaW5nICpuYW1lOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F0dGFjaG1lbnQuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdHRhY2htZW50LmgKaW5kZXggMzNmYWI1
ZDg0ZWY1YTFlNGExODI0YjFjZDI0YjcyN2U3OGViNDJlNS4uM2MzNTc4ODU0ZjliZmJkMzVmMTcy
ODc4ZjBjNmVjMDJjZjBhOWZiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS0F0dGFjaG1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLQXR0YWNobWVudC5oCkBAIC0zMywxNCArMzMsMTQgQEAgdHlwZWRlZiBOU19F
TlVNKE5TSW50ZWdlciwgX1dLQXR0YWNobWVudERpc3BsYXlNb2RlKSB7CiAgICAgX1dLQXR0YWNo
bWVudERpc3BsYXlNb2RlQXV0byA9IDEsCiAgICAgX1dLQXR0YWNobWVudERpc3BsYXlNb2RlSW5Q
bGFjZSwKICAgICBfV0tBdHRhY2htZW50RGlzcGxheU1vZGVBc0ljb24KLX0gV0tfQVBJX0FWQUlM
QUJMRShtYWNvc3goMTAuMTMuNCksIGlvcygxMS4zKSk7Cit9IFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTAuMTMuNCksIGlvcygxMS4zKSk7CiAKLVdLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAu
MTMuNCksIGlvcygxMS4zKSkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9z
KDExLjMpKQogQGludGVyZmFjZSBfV0tBdHRhY2htZW50RGlzcGxheU9wdGlvbnMgOiBOU09iamVj
dAogQHByb3BlcnR5IChub25hdG9taWMpIF9XS0F0dGFjaG1lbnREaXNwbGF5TW9kZSBtb2RlOwog
QGVuZAogCi1XS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjE0KSwgaW9zKDEyLjApKQorV0tf
Q0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSwgaW9zKDEyLjApKQogQGludGVyZmFjZSBfV0tB
dHRhY2htZW50SW5mbyA6IE5TT2JqZWN0CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHks
IG51bGxhYmxlKSBOU1N0cmluZyAqY29udGVudFR5cGU7CiBAcHJvcGVydHkgKG5vbmF0b21pYywg
cmVhZG9ubHksIG51bGxhYmxlKSBOU1N0cmluZyAqbmFtZTsKQEAgLTQ5LDE4ICs0OSwxOCBAQCBX
S19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjE0KSwgaW9zKDEyLjApKQogQHByb3BlcnR5IChu
b25hdG9taWMsIHJlYWRvbmx5LCBudWxsYWJsZSkgTlNGaWxlV3JhcHBlciAqZmlsZVdyYXBwZXI7
CiBAZW5kCiAKLVdLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCksIGlvcygxMS4zKSkK
K1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKQogQGludGVyZmFj
ZSBfV0tBdHRhY2htZW50IDogTlNPYmplY3QKIAotLSAodm9pZClzZXRGaWxlV3JhcHBlcjooTlNG
aWxlV3JhcHBlciAqKWZpbGVXcmFwcGVyIGNvbnRlbnRUeXBlOihudWxsYWJsZSBOU1N0cmluZyAq
KWNvbnRlbnRUeXBlIGNvbXBsZXRpb246KHZvaWQoXiBfTnVsbGFibGUpKE5TRXJyb3IgKiBfTnVs
bGFibGUpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19U
QkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClzZXRGaWxlV3JhcHBlcjooTlNGaWxlV3Jh
cHBlciAqKWZpbGVXcmFwcGVyIGNvbnRlbnRUeXBlOihudWxsYWJsZSBOU1N0cmluZyAqKWNvbnRl
bnRUeXBlIGNvbXBsZXRpb246KHZvaWQoXiBfTnVsbGFibGUpKE5TRXJyb3IgKiBfTnVsbGFibGUp
KWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgbnVsbGFi
bGUpIF9XS0F0dGFjaG1lbnRJbmZvICppbmZvIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01B
Q19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5
LCBudWxsYWJsZSkgX1dLQXR0YWNobWVudEluZm8gKmluZm8gV0tfQVBJX0FWQUlMQUJMRShtYWNv
cyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBy
ZWFkb25seSkgTlNTdHJpbmcgKnVuaXF1ZUlkZW50aWZpZXI7Ci1AcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZG9ubHksIGdldHRlcj1pc0Nvbm5lY3RlZCkgQk9PTCBjb25uZWN0ZWQgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkg
KG5vbmF0b21pYywgcmVhZG9ubHksIGdldHRlcj1pc0Nvbm5lY3RlZCkgQk9PTCBjb25uZWN0ZWQg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAog
Ly8gRGVwcmVjYXRlZCBTUEkuCi0tICh2b2lkKXJlcXVlc3RJbmZvOih2b2lkKF4pKF9XS0F0dGFj
aG1lbnRJbmZvICogX051bGxhYmxlLCBOU0Vycm9yICogX051bGxhYmxlKSljb21wbGV0aW9uSGFu
ZGxlciBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCItaW5mbyIsIG1hY29zeCgx
MC4xNCwgV0tfTUFDX1RCQSksIGlvcygxMi4wLCBXS19JT1NfVEJBKSk7Ci0tICh2b2lkKXNldERh
dGE6KE5TRGF0YSAqKWRhdGEgbmV3Q29udGVudFR5cGU6KG51bGxhYmxlIE5TU3RyaW5nICopbmV3
Q29udGVudFR5cGUgbmV3RmlsZW5hbWU6KG51bGxhYmxlIE5TU3RyaW5nICopbmV3RmlsZW5hbWUg
Y29tcGxldGlvbjoodm9pZCheIF9OdWxsYWJsZSkoTlNFcnJvciAqIF9OdWxsYWJsZSkpY29tcGxl
dGlvbkhhbmRsZXIgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiUGxlYXNlIHVz
ZSAtc2V0RmlsZVdyYXBwZXI6Y29udGVudFR5cGU6Y29tcGxldGlvbjogaW5zdGVhZC4iLCBtYWNv
c3goMTAuMTMuNCwgV0tfTUFDX1RCQSksIGlvcygxMS4zLCBXS19JT1NfVEJBKSk7CistICh2b2lk
KXJlcXVlc3RJbmZvOih2b2lkKF4pKF9XS0F0dGFjaG1lbnRJbmZvICogX051bGxhYmxlLCBOU0Vy
cm9yICogX051bGxhYmxlKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfREVQUkVDQVRFRF9XSVRI
X1JFUExBQ0VNRU5UKCItaW5mbyIsIG1hY29zKDEwLjE0LCBXS19NQUNfVEJBKSwgaW9zKDEyLjAs
IFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpc2V0RGF0YTooTlNEYXRhICopZGF0YSBuZXdDb250ZW50
VHlwZToobnVsbGFibGUgTlNTdHJpbmcgKiluZXdDb250ZW50VHlwZSBuZXdGaWxlbmFtZToobnVs
bGFibGUgTlNTdHJpbmcgKiluZXdGaWxlbmFtZSBjb21wbGV0aW9uOih2b2lkKF4gX051bGxhYmxl
KShOU0Vycm9yICogX051bGxhYmxlKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfREVQUkVDQVRF
RF9XSVRIX1JFUExBQ0VNRU5UKCJQbGVhc2UgdXNlIC1zZXRGaWxlV3JhcHBlcjpjb250ZW50VHlw
ZTpjb21wbGV0aW9uOiBpbnN0ZWFkLiIsIG1hY29zKDEwLjEzLjQsIFdLX01BQ19UQkEpLCBpb3Mo
MTEuMywgV0tfSU9TX1RCQSkpOwogCiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRvbWF0aW9uRGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRvbWF0aW9uRGVsZWdhdGUuaAppbmRleCBmN2Ix
NDRkOTAzMTNiODYxMGFlNWQ5Yjc1N2I3MWY2YTJiZjRiYWI2Li4yNWI0MWU1N2Y5MThiY2RjZDll
ZGJmNDA4OTM1ZmVmYzdiM2ZjNmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLQXV0b21hdGlvbkRlbGVnYXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dG9tYXRpb25EZWxlZ2F0ZS5oCkBAIC0zMCw5ICszMCw5
IEBACiAKIEBwcm90b2NvbCBfV0tBdXRvbWF0aW9uRGVsZWdhdGUgPE5TT2JqZWN0PgogQG9wdGlv
bmFsCi0tIChCT09MKV9wcm9jZXNzUG9vbEFsbG93c1JlbW90ZUF1dG9tYXRpb246KFdLUHJvY2Vz
c1Bvb2wgKilwcm9jZXNzUG9vbCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygx
MS4wKSk7Ci0tICh2b2lkKV9wcm9jZXNzUG9vbDooV0tQcm9jZXNzUG9vbCAqKXByb2Nlc3NQb29s
IGRpZFJlcXVlc3RBdXRvbWF0aW9uU2Vzc2lvbldpdGhJZGVudGlmaWVyOihOU1N0cmluZyAqKWlk
ZW50aWZpZXIgY29uZmlndXJhdGlvbjooX1dLQXV0b21hdGlvblNlc3Npb25Db25maWd1cmF0aW9u
ICopY29uZmlndXJhdGlvbiBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSwgaW9zKDEx
LjMpKTsKKy0gKEJPT0wpX3Byb2Nlc3NQb29sQWxsb3dzUmVtb3RlQXV0b21hdGlvbjooV0tQcm9j
ZXNzUG9vbCAqKXByb2Nlc3NQb29sIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3Mo
MTEuMCkpOworLSAodm9pZClfcHJvY2Vzc1Bvb2w6KFdLUHJvY2Vzc1Bvb2wgKilwcm9jZXNzUG9v
bCBkaWRSZXF1ZXN0QXV0b21hdGlvblNlc3Npb25XaXRoSWRlbnRpZmllcjooTlNTdHJpbmcgKilp
ZGVudGlmaWVyIGNvbmZpZ3VyYXRpb246KF9XS0F1dG9tYXRpb25TZXNzaW9uQ29uZmlndXJhdGlv
biAqKWNvbmZpZ3VyYXRpb24gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDEx
LjMpKTsKIAotLSAoTlNTdHJpbmcgKilfcHJvY2Vzc1Bvb2xCcm93c2VyTmFtZUZvckF1dG9tYXRp
b246KFdLUHJvY2Vzc1Bvb2wgKilwcm9jZXNzUG9vbCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgx
MC4xNCksIGlvcygxMi4wKSk7Ci0tIChOU1N0cmluZyAqKV9wcm9jZXNzUG9vbEJyb3dzZXJWZXJz
aW9uRm9yQXV0b21hdGlvbjooV0tQcm9jZXNzUG9vbCAqKXByb2Nlc3NQb29sIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KDEwLjE0KSwgaW9zKDEyLjApKTsKKy0gKE5TU3RyaW5nICopX3Byb2Nlc3NQ
b29sQnJvd3Nlck5hbWVGb3JBdXRvbWF0aW9uOihXS1Byb2Nlc3NQb29sICopcHJvY2Vzc1Bvb2wg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4wKSk7CistIChOU1N0cmluZyAq
KV9wcm9jZXNzUG9vbEJyb3dzZXJWZXJzaW9uRm9yQXV0b21hdGlvbjooV0tQcm9jZXNzUG9vbCAq
KXByb2Nlc3NQb29sIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpLCBpb3MoMTIuMCkpOwog
QGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1
dG9tYXRpb25TZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
QXV0b21hdGlvblNlc3Npb24uaAppbmRleCA1ZWFiMTU4ZDI0NmFiOTQzZWQ2MzQ1OWYzZjIyNjBi
YzBmOTljZGYzLi5mMDQwNjA0YWIwNDJkZGEzNjU0NGVjYzAzYWQzN2I4MDdhNmQ1Zjg2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0b21hdGlvblNl
c3Npb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0b21h
dGlvblNlc3Npb24uaApAQCAtMzIsNyArMzIsNyBAQAogCiBOU19BU1NVTUVfTk9OTlVMTF9CRUdJ
TgogCi1XS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKQorV0tfQ0xB
U1NfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKQogQGludGVyZmFjZSBfV0tBdXRv
bWF0aW9uU2Vzc2lvbiA6IE5TT2JqZWN0CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSBO
U1N0cmluZyAqc2Vzc2lvbklkZW50aWZpZXI7CkBAIC00MSwxMSArNDEsMTEgQEAgV0tfQ0xBU1Nf
QVZBSUxBQkxFKG1hY29zeCgxMC4xMiksIGlvcygxMC4wKSkKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
LCB3ZWFrKSBpZCA8X1dLQXV0b21hdGlvblNlc3Npb25EZWxlZ2F0ZT4gZGVsZWdhdGU7CiBAcHJv
cGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGdldHRlcj1pc1BhaXJlZCkgQk9PTCBwYWlyZWQ7
CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgZ2V0dGVyPWlzU2ltdWxhdGluZ1Vz
ZXJJbnRlcmFjdGlvbikgQk9PTCBzaW11bGF0aW5nVXNlckludGVyYWN0aW9uIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KDEwLjEzLjQpLCBpb3MoMTEuMykpOworQHByb3BlcnR5IChub25hdG9taWMs
IHJlYWRvbmx5LCBnZXR0ZXI9aXNTaW11bGF0aW5nVXNlckludGVyYWN0aW9uKSBCT09MIHNpbXVs
YXRpbmdVc2VySW50ZXJhY3Rpb24gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9z
KDExLjMpKTsKIAogLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoQ29uZmlndXJhdGlvbjooX1dLQXV0
b21hdGlvblNlc3Npb25Db25maWd1cmF0aW9uICopY29uZmlndXJhdGlvbiBOU19ERVNJR05BVEVE
X0lOSVRJQUxJWkVSOwogCi0tICh2b2lkKXRlcm1pbmF0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29z
eCgxMC4xNCksIGlvcygxMi4wKSk7CistICh2b2lkKXRlcm1pbmF0ZSBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjE0KSwgaW9zKDEyLjApKTsKIAogI2lmICFUQVJHRVRfT1NfSVBIT05FCiAtIChC
T09MKXdhc0V2ZW50U3ludGhlc2l6ZWRGb3JBdXRvbWF0aW9uOihOU0V2ZW50ICopZXZlbnQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0b21hdGlv
blNlc3Npb25Db25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLQXV0b21hdGlvblNlc3Npb25Db25maWd1cmF0aW9uLmgKaW5kZXggZmViY2U1NDlkYWI2
ZjM2NzYwNmNkNDQ5NjY5OTFkZDUzYzgwOGM3Mi4uODZhZWM0OTI1YmM4NjYyOTljMWM0N2RjYTU3
OGZjMTRiOWQ2YjEwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS0F1dG9tYXRpb25TZXNzaW9uQ29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRvbWF0aW9uU2Vzc2lvbkNvbmZpZ3VyYXRpb24u
aApAQCAtMjksNyArMjksNyBAQAogCiBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogCi1XS19DTEFT
U19BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpLCBpb3MoV0tfSU9TX1RCQSkpCitXS19DTEFTU19B
VkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcyhXS19JT1NfVEJBKSkKIEBpbnRlcmZhY2UgX1dL
QXV0b21hdGlvblNlc3Npb25Db25maWd1cmF0aW9uIDogTlNPYmplY3QgPE5TQ29weWluZz4KIAog
QHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgYWxsb3dzSW5zZWN1cmVNZWRpYUNhcHR1cmU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0b21hdGlv
blNlc3Npb25EZWxlZ2F0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19X
S0F1dG9tYXRpb25TZXNzaW9uRGVsZWdhdGUuaAppbmRleCBmOTMxZTlkZGVkODI2YWFmYzY0OGM5
MTc4ZjM2ZGZmYzUxOTk3MzE2Li5mNDRlNzYyMzQ3ZWRjNjQwN2ZhZTk4ZmE2ZDFhNTgxNzdhNjE3
YmNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0
b21hdGlvblNlc3Npb25EZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tBdXRvbWF0aW9uU2Vzc2lvbkRlbGVnYXRlLmgKQEAgLTM4LDM0ICszOCwzNCBA
QCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tBdXRvbWF0aW9uU2Vzc2lvbkphdmFTY3Jp
cHREaWFsb2dUeXBlKSB7CiAgICAgX1dLQXV0b21hdGlvblNlc3Npb25KYXZhU2NyaXB0RGlhbG9n
VHlwZUFsZXJ0LAogICAgIF9XS0F1dG9tYXRpb25TZXNzaW9uSmF2YVNjcmlwdERpYWxvZ1R5cGVD
b25maXJtLAogICAgIF9XS0F1dG9tYXRpb25TZXNzaW9uSmF2YVNjcmlwdERpYWxvZ1R5cGVQcm9t
cHQsCi19IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjE0KSwgaW9zKDEyLjApKTsKK30gV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4wKSk7CiAKIHR5cGVkZWYgTlNfRU5V
TShOU1VJbnRlZ2VyLCBfV0tBdXRvbWF0aW9uU2Vzc2lvbkJyb3dzaW5nQ29udGV4dE9wdGlvbnMp
IHsKICAgICBfV0tBdXRvbWF0aW9uU2Vzc2lvbkJyb3dzaW5nQ29udGV4dE9wdGlvbnNQcmVmZXJO
ZXdUYWIgPSAxIDw8IDAsCi19IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjE0KSwgaW9zKDEy
LjApKTsKK30gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4wKSk7CiAKIHR5
cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS0F1dG9tYXRpb25TZXNzaW9uQnJvd3NpbmdDb250
ZXh0UHJlc2VudGF0aW9uKSB7CiAgICAgX1dLQXV0b21hdGlvblNlc3Npb25Ccm93c2luZ0NvbnRl
eHRQcmVzZW50YXRpb25UYWIsCiAgICAgX1dLQXV0b21hdGlvblNlc3Npb25Ccm93c2luZ0NvbnRl
eHRQcmVzZW50YXRpb25XaW5kb3csCi19IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19U
QkEpLCBpb3MoV0tfSU9TX1RCQSkpOworfSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19U
QkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiBAcHJvdG9jb2wgX1dLQXV0b21hdGlvblNlc3Npb25E
ZWxlZ2F0ZSA8TlNPYmplY3Q+CiBAb3B0aW9uYWwKIAogLSAodm9pZClfYXV0b21hdGlvblNlc3Np
b25EaWREaXNjb25uZWN0RnJvbVJlbW90ZTooX1dLQXV0b21hdGlvblNlc3Npb24gKilhdXRvbWF0
aW9uU2Vzc2lvbjsKIAotLSAodm9pZClfYXV0b21hdGlvblNlc3Npb246KF9XS0F1dG9tYXRpb25T
ZXNzaW9uICopYXV0b21hdGlvblNlc3Npb24gcmVxdWVzdE5ld1dlYlZpZXdXaXRoT3B0aW9uczoo
X1dLQXV0b21hdGlvblNlc3Npb25Ccm93c2luZ0NvbnRleHRPcHRpb25zKW9wdGlvbnMgY29tcGxl
dGlvbkhhbmRsZXI6KHZvaWQoXikoV0tXZWJWaWV3ICogX051bGxhYmxlKSljb21wbGV0aW9uSGFu
ZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xNCksIGlvcygxMi4wKSk7Ci0tICh2b2lk
KV9hdXRvbWF0aW9uU2Vzc2lvbjooX1dLQXV0b21hdGlvblNlc3Npb24gKilhdXRvbWF0aW9uU2Vz
c2lvbiByZXF1ZXN0SGlkZVdpbmRvd09mV2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjb21w
bGV0aW9uSGFuZGxlcjoodm9pZCheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZB
SUxBQkxFKG1hY29zeCgxMC4xNCksIGlvcygxMi4wKSk7Ci0tICh2b2lkKV9hdXRvbWF0aW9uU2Vz
c2lvbjooX1dLQXV0b21hdGlvblNlc3Npb24gKilhdXRvbWF0aW9uU2Vzc2lvbiByZXF1ZXN0UmVz
dG9yZVdpbmRvd09mV2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjb21wbGV0aW9uSGFuZGxl
cjoodm9pZCheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29z
eCgxMC4xNCksIGlvcygxMi4wKSk7Ci0tICh2b2lkKV9hdXRvbWF0aW9uU2Vzc2lvbjooX1dLQXV0
b21hdGlvblNlc3Npb24gKilhdXRvbWF0aW9uU2Vzc2lvbiByZXF1ZXN0TWF4aW1pemVXaW5kb3dP
ZldlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXiko
dm9pZCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTQpLCBp
b3MoMTIuMCkpOwotLSAodm9pZClfYXV0b21hdGlvblNlc3Npb246KF9XS0F1dG9tYXRpb25TZXNz
aW9uICopYXV0b21hdGlvblNlc3Npb24gcmVxdWVzdFN3aXRjaFRvV2ViVmlldzooV0tXZWJWaWV3
ICopd2ViVmlldyBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKSh2b2lkKSljb21wbGV0aW9uSGFu
ZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xNCksIGlvcygxMi4wKSk7Ci0tIChCT09M
KV9hdXRvbWF0aW9uU2Vzc2lvbjooX1dLQXV0b21hdGlvblNlc3Npb24gKilhdXRvbWF0aW9uU2Vz
c2lvbiBpc1Nob3dpbmdKYXZhU2NyaXB0RGlhbG9nRm9yV2ViVmlldzooV0tXZWJWaWV3ICopd2Vi
VmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7Ci0tICh2b2lk
KV9hdXRvbWF0aW9uU2Vzc2lvbjooX1dLQXV0b21hdGlvblNlc3Npb24gKilhdXRvbWF0aW9uU2Vz
c2lvbiBkaXNtaXNzQ3VycmVudEphdmFTY3JpcHREaWFsb2dGb3JXZWJWaWV3OihXS1dlYlZpZXcg
Kil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzKSwgaW9zKDExLjApKTsKLS0g
KHZvaWQpX2F1dG9tYXRpb25TZXNzaW9uOihfV0tBdXRvbWF0aW9uU2Vzc2lvbiAqKWF1dG9tYXRp
b25TZXNzaW9uIGFjY2VwdEN1cnJlbnRKYXZhU2NyaXB0RGlhbG9nRm9yV2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7
Ci0tIChudWxsYWJsZSBOU1N0cmluZyAqKV9hdXRvbWF0aW9uU2Vzc2lvbjooX1dLQXV0b21hdGlv
blNlc3Npb24gKilhdXRvbWF0aW9uU2Vzc2lvbiBtZXNzYWdlT2ZDdXJyZW50SmF2YVNjcmlwdERp
YWxvZ0ZvcldlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goMTAuMTMpLCBpb3MoMTEuMCkpOwotLSAodm9pZClfYXV0b21hdGlvblNlc3Npb246KF9XS0F1
dG9tYXRpb25TZXNzaW9uICopYXV0b21hdGlvblNlc3Npb24gc2V0VXNlcklucHV0OihOU1N0cmlu
ZyAqKXZhbHVlIGZvckN1cnJlbnRKYXZhU2NyaXB0RGlhbG9nRm9yV2ViVmlldzooV0tXZWJWaWV3
ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7Ci0t
IChfV0tBdXRvbWF0aW9uU2Vzc2lvbkphdmFTY3JpcHREaWFsb2dUeXBlKV9hdXRvbWF0aW9uU2Vz
c2lvbjooX1dLQXV0b21hdGlvblNlc3Npb24gKilhdXRvbWF0aW9uU2Vzc2lvbiB0eXBlT2ZDdXJy
ZW50SmF2YVNjcmlwdERpYWxvZ0ZvcldlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvc3goMTAuMTQpLCBpb3MoMTIuMCkpOwotLSAoX1dLQXV0b21hdGlvblNl
c3Npb25Ccm93c2luZ0NvbnRleHRQcmVzZW50YXRpb24pX2F1dG9tYXRpb25TZXNzaW9uOihfV0tB
dXRvbWF0aW9uU2Vzc2lvbiAqKWF1dG9tYXRpb25TZXNzaW9uIGN1cnJlbnRQcmVzZW50YXRpb25G
b3JXZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdL
X01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfYXV0b21hdGlvblNlc3Npb246
KF9XS0F1dG9tYXRpb25TZXNzaW9uICopYXV0b21hdGlvblNlc3Npb24gcmVxdWVzdE5ld1dlYlZp
ZXdXaXRoT3B0aW9uczooX1dLQXV0b21hdGlvblNlc3Npb25Ccm93c2luZ0NvbnRleHRPcHRpb25z
KW9wdGlvbnMgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikoV0tXZWJWaWV3ICogX051bGxhYmxl
KSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSwgaW9zKDEy
LjApKTsKKy0gKHZvaWQpX2F1dG9tYXRpb25TZXNzaW9uOihfV0tBdXRvbWF0aW9uU2Vzc2lvbiAq
KWF1dG9tYXRpb25TZXNzaW9uIHJlcXVlc3RIaWRlV2luZG93T2ZXZWJWaWV3OihXS1dlYlZpZXcg
Kil3ZWJWaWV3IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5k
bGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpLCBpb3MoMTIuMCkpOworLSAodm9pZClf
YXV0b21hdGlvblNlc3Npb246KF9XS0F1dG9tYXRpb25TZXNzaW9uICopYXV0b21hdGlvblNlc3Np
b24gcmVxdWVzdFJlc3RvcmVXaW5kb3dPZldlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgY29t
cGxldGlvbkhhbmRsZXI6KHZvaWQoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4wKSk7CistICh2b2lkKV9hdXRvbWF0aW9uU2Vz
c2lvbjooX1dLQXV0b21hdGlvblNlc3Npb24gKilhdXRvbWF0aW9uU2Vzc2lvbiByZXF1ZXN0TWF4
aW1pemVXaW5kb3dPZldlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgY29tcGxldGlvbkhhbmRs
ZXI6KHZvaWQoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMC4xNCksIGlvcygxMi4wKSk7CistICh2b2lkKV9hdXRvbWF0aW9uU2Vzc2lvbjooX1dLQXV0
b21hdGlvblNlc3Npb24gKilhdXRvbWF0aW9uU2Vzc2lvbiByZXF1ZXN0U3dpdGNoVG9XZWJWaWV3
OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKHZvaWQpKWNv
bXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpLCBpb3MoMTIuMCkp
OworLSAoQk9PTClfYXV0b21hdGlvblNlc3Npb246KF9XS0F1dG9tYXRpb25TZXNzaW9uICopYXV0
b21hdGlvblNlc3Npb24gaXNTaG93aW5nSmF2YVNjcmlwdERpYWxvZ0ZvcldlYlZpZXc6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSk7
CistICh2b2lkKV9hdXRvbWF0aW9uU2Vzc2lvbjooX1dLQXV0b21hdGlvblNlc3Npb24gKilhdXRv
bWF0aW9uU2Vzc2lvbiBkaXNtaXNzQ3VycmVudEphdmFTY3JpcHREaWFsb2dGb3JXZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEu
MCkpOworLSAodm9pZClfYXV0b21hdGlvblNlc3Npb246KF9XS0F1dG9tYXRpb25TZXNzaW9uICop
YXV0b21hdGlvblNlc3Npb24gYWNjZXB0Q3VycmVudEphdmFTY3JpcHREaWFsb2dGb3JXZWJWaWV3
OihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3Mo
MTEuMCkpOworLSAobnVsbGFibGUgTlNTdHJpbmcgKilfYXV0b21hdGlvblNlc3Npb246KF9XS0F1
dG9tYXRpb25TZXNzaW9uICopYXV0b21hdGlvblNlc3Npb24gbWVzc2FnZU9mQ3VycmVudEphdmFT
Y3JpcHREaWFsb2dGb3JXZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpOworLSAodm9pZClfYXV0b21hdGlvblNlc3Npb246
KF9XS0F1dG9tYXRpb25TZXNzaW9uICopYXV0b21hdGlvblNlc3Npb24gc2V0VXNlcklucHV0OihO
U1N0cmluZyAqKXZhbHVlIGZvckN1cnJlbnRKYXZhU2NyaXB0RGlhbG9nRm9yV2ViVmlldzooV0tX
ZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjAp
KTsKKy0gKF9XS0F1dG9tYXRpb25TZXNzaW9uSmF2YVNjcmlwdERpYWxvZ1R5cGUpX2F1dG9tYXRp
b25TZXNzaW9uOihfV0tBdXRvbWF0aW9uU2Vzc2lvbiAqKWF1dG9tYXRpb25TZXNzaW9uIHR5cGVP
ZkN1cnJlbnRKYXZhU2NyaXB0RGlhbG9nRm9yV2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSwgaW9zKDEyLjApKTsKKy0gKF9XS0F1dG9tYXRp
b25TZXNzaW9uQnJvd3NpbmdDb250ZXh0UHJlc2VudGF0aW9uKV9hdXRvbWF0aW9uU2Vzc2lvbjoo
X1dLQXV0b21hdGlvblNlc3Npb24gKilhdXRvbWF0aW9uU2Vzc2lvbiBjdXJyZW50UHJlc2VudGF0
aW9uRm9yV2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29z
KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiBAZW5kCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tDb250ZW50UnVsZUxpc3RBY3Rpb24u
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tDb250ZW50UnVsZUxpc3RB
Y3Rpb24uaAppbmRleCBhN2VjOWQyNWI1OTZhMDYzYWFlZmE3NmM2YjhiNzFlMWY1ZGIwNDNiLi41
ODc3YTUxY2FkZWZkOTY0YWM1OGJiYzliNjYwYzEwNDY0NjFhODI1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQ29udGVudFJ1bGVMaXN0QWN0aW9uLmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0NvbnRlbnRSdWxlTGlz
dEFjdGlvbi5oCkBAIC0yNiw3ICsyNiw3IEBACiAjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRp
b24uaD4KICNpbXBvcnQgPFdlYktpdC9XS0ZvdW5kYXRpb24uaD4KIAotV0tfQ0xBU1NfQVZBSUxB
QkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKQorV0tfQ0xBU1NfQVZBSUxB
QkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpCiBAaW50ZXJmYWNlIF9XS0Nv
bnRlbnRSdWxlTGlzdEFjdGlvbiA6IE5TT2JqZWN0CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBy
ZWFkb25seSkgQk9PTCBibG9ja2VkTG9hZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQ29udGV4dE1lbnVFbGVtZW50SW5mby5oCmluZGV4
IGY0MGJhY2Q0NDE3YWNkNDg3YjgzMDE1NDJiYjRmMTgwZjE4Yjk0YjIuLjM0MjM2YWVhYjE5YzNm
N2I2MTAzZjFhNTdlNTViYmJiYjg0YWZmZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvLmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0NvbnRleHRNZW51RWxlbWVudEluZm8uaApA
QCAtMjksNyArMjksNyBAQAogCiBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogCi1XS19DTEFTU19B
VkFJTEFCTEUobWFjb3N4KDEwLjEyKSkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4xMikp
CiBAaW50ZXJmYWNlIF9XS0NvbnRleHRNZW51RWxlbWVudEluZm8gOiBOU09iamVjdCA8TlNDb3B5
aW5nPgogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLRGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL19XS0RpYWdub3N0aWNMb2dnaW5nRGVsZWdhdGUuaAppbmRleCBjMDcwZWNj
OGY4YTdmMjAwNDljYWI1ODk5MTc1OTlmMjNkMjQwMDI0Li5jNDc2OGRiMDg4MGRiMGJhZGE2MzUx
NDY0NGE3MjNlNTNkOTU1YTZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLRGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tEaWFnbm9zdGljTG9nZ2luZ0RlbGVnYXRlLmgKQEAg
LTMxLDcgKzMxLDcgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLRGlhZ25vc3RpY0xv
Z2dpbmdSZXN1bHRUeXBlKSB7CiAgICAgX1dLRGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRQYXNzLAog
ICAgIF9XS0RpYWdub3N0aWNMb2dnaW5nUmVzdWx0RmFpbCwKICAgICBfV0tEaWFnbm9zdGljTG9n
Z2luZ1Jlc3VsdE5vb3AsCi19IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDku
MCkpOworfSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjExKSwgaW9zKDkuMCkpOwogCiBAcHJv
dG9jb2wgX1dLRGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZSA8TlNPYmplY3Q+CiBAb3B0aW9uYWwK
QEAgLTM5LDYgKzM5LDYgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLRGlhZ25vc3Rp
Y0xvZ2dpbmdSZXN1bHRUeXBlKSB7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJW
aWV3IGxvZ0RpYWdub3N0aWNNZXNzYWdlOihOU1N0cmluZyAqKW1lc3NhZ2UgZGVzY3JpcHRpb246
KE5TU3RyaW5nICopZGVzY3JpcHRpb247CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3
ZWJWaWV3IGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdDooTlNTdHJpbmcgKiltZXNzYWdl
IGRlc2NyaXB0aW9uOihOU1N0cmluZyAqKWRlc2NyaXB0aW9uIHJlc3VsdDooX1dLRGlhZ25vc3Rp
Y0xvZ2dpbmdSZXN1bHRUeXBlKXJlc3VsdDsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAq
KXdlYlZpZXcgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWU6KE5TU3RyaW5nICopbWVzc2Fn
ZSBkZXNjcmlwdGlvbjooTlNTdHJpbmcgKilkZXNjcmlwdGlvbiB2YWx1ZTooTlNTdHJpbmcgKikg
dmFsdWU7Ci0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGxvZ0RpYWdub3N0
aWNNZXNzYWdlV2l0aEVuaGFuY2VkUHJpdmFjeTooTlNTdHJpbmcgKiltZXNzYWdlIGRlc2NyaXB0
aW9uOihOU1N0cmluZyAqKWRlc2NyaXB0aW9uIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEz
KSwgaW9zKDExLjApKTsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgbG9n
RGlhZ25vc3RpY01lc3NhZ2VXaXRoRW5oYW5jZWRQcml2YWN5OihOU1N0cmluZyAqKW1lc3NhZ2Ug
ZGVzY3JpcHRpb246KE5TU3RyaW5nICopZGVzY3JpcHRpb24gV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMC4xMyksIGlvcygxMS4wKSk7CiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tEb3dubG9hZC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL19XS0Rvd25sb2FkLmgKaW5kZXggYWJhOGY4YmFjMjU2Y2NmZmU1YzhiMWIw
MmNiYzIxNDM3MWJmYzUxMy4uNmE2ZjljNWZiOWMxNzg3OWM5OTg3MWExNDhiNGY5YTc3ZjIwMDRl
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0Rvd25s
b2FkLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0Rvd25sb2Fk
LmgKQEAgLTI5LDE3ICsyOSwxNyBAQAogCiBAY2xhc3MgV0tXZWJWaWV3OwogCi1XS19DTEFTU19B
VkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCitXS19DTEFTU19BVkFJTEFCTEUobWFj
b3MoMTAuMTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2UgX1dLRG93bmxvYWQgOiBOU09iamVjdCA8
TlNDb3B5aW5nPgogCiAtICh2b2lkKWNhbmNlbDsKIAotLSAodm9pZClwdWJsaXNoUHJvZ3Jlc3NB
dFVSTDooTlNVUkwgKilVUkwgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7CistICh2b2lkKXB1Ymxpc2hQcm9ncmVzc0F0VVJMOihOU1VSTCAqKVVS
TCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwog
CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TVVJMUmVxdWVzdCAqcmVxdWVzdDsK
IEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgd2VhaykgV0tXZWJWaWV3ICpvcmlnaW5h
dGluZ1dlYlZpZXc7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGNvcHkpIE5TQXJy
YXk8TlNVUkwgKj4gKnJlZGlyZWN0Q2hhaW4gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMu
NCksIGlvcygxMS4zKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgd2Fz
VXNlckluaXRpYXRlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSwgaW9zKDExLjMp
KTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNEYXRhICpyZXN1bWVEYXRhIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHBy
b3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBjb3B5KSBOU0FycmF5PE5TVVJMICo+ICpyZWRp
cmVjdENoYWluIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7CitA
cHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgd2FzVXNlckluaXRpYXRlZCBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOworQHByb3BlcnR5IChub25h
dG9taWMsIHJlYWRvbmx5KSBOU0RhdGEgKnJlc3VtZURhdGEgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogQGVuZApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0Rvd25sb2FkRGVsZWdhdGUuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tEb3dubG9hZERlbGVnYXRlLmgKaW5k
ZXggNzg5NTkyZDEyN2M1YWExNDIxNTE5NWQ1OTQ1NzE5MTBmM2I1OGE4Zi4uMGJlMzUzN2EyNjlj
NDYxMmY1NmZjYWUwMTcwOGE1MGMwZjgxZjYzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS0Rvd25sb2FkRGVsZWdhdGUuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRG93bmxvYWREZWxlZ2F0ZS5oCkBAIC0zMiwxNyAr
MzIsMTcgQEAKIEBwcm90b2NvbCBfV0tEb3dubG9hZERlbGVnYXRlIDxOU09iamVjdD4KIEBvcHRp
b25hbAogLSAodm9pZClfZG93bmxvYWREaWRTdGFydDooX1dLRG93bmxvYWQgKilkb3dubG9hZDsK
LS0gKHZvaWQpX2Rvd25sb2FkOihfV0tEb3dubG9hZCAqKWRvd25sb2FkIGRpZFJlY2VpdmVTZXJ2
ZXJSZWRpcmVjdFRvVVJMOihOU1VSTCAqKXVybCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4x
My40KSwgaW9zKDExLjMpKTsKKy0gKHZvaWQpX2Rvd25sb2FkOihfV0tEb3dubG9hZCAqKWRvd25s
b2FkIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdFRvVVJMOihOU1VSTCAqKXVybCBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOwogLSAodm9pZClfZG93bmxvYWQ6KF9X
S0Rvd25sb2FkICopZG93bmxvYWQgZGlkUmVjZWl2ZVJlc3BvbnNlOihOU1VSTFJlc3BvbnNlICop
cmVzcG9uc2U7CiAtICh2b2lkKV9kb3dubG9hZDooX1dLRG93bmxvYWQgKilkb3dubG9hZCBkaWRS
ZWNlaXZlRGF0YToodWludDY0X3QpbGVuZ3RoOwogLSAodm9pZClfZG93bmxvYWQ6KF9XS0Rvd25s
b2FkICopZG93bmxvYWQgZGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5hbWU6KE5T
U3RyaW5nICopZmlsZW5hbWUgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgYWxsb3dP
dmVyd3JpdGUsIE5TU3RyaW5nICpkZXN0aW5hdGlvbikpY29tcGxldGlvbkhhbmRsZXI7CiAtICh2
b2lkKV9kb3dubG9hZERpZEZpbmlzaDooX1dLRG93bmxvYWQgKilkb3dubG9hZDsKIC0gKHZvaWQp
X2Rvd25sb2FkOihfV0tEb3dubG9hZCAqKWRvd25sb2FkIGRpZEZhaWxXaXRoRXJyb3I6KE5TRXJy
b3IgKillcnJvcjsKIC0gKHZvaWQpX2Rvd25sb2FkRGlkQ2FuY2VsOihfV0tEb3dubG9hZCAqKWRv
d25sb2FkOwotLSAodm9pZClfZG93bmxvYWQ6KF9XS0Rvd25sb2FkICopZG93bmxvYWQgZGlkUmVj
ZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOihOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
ICopY2hhbGxlbmdlIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU1VSTFNlc3Npb25BdXRo
Q2hhbGxlbmdlRGlzcG9zaXRpb24sIE5TVVJMQ3JlZGVudGlhbCopKWNvbXBsZXRpb25IYW5kbGVy
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpLCBpb3MoMTEuMykpOwotLSAodm9pZClf
ZG93bmxvYWQ6KF9XS0Rvd25sb2FkICopZG93bmxvYWQgZGlkQ3JlYXRlRGVzdGluYXRpb246KE5T
U3RyaW5nICopZGVzdGluYXRpb24gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCksIGlv
cygxMS4zKSk7Ci0tICh2b2lkKV9kb3dubG9hZFByb2Nlc3NEaWRDcmFzaDooX1dLRG93bmxvYWQg
Kilkb3dubG9hZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSwgaW9zKDExLjMpKTsK
LS0gKEJPT0wpX2Rvd25sb2FkOihfV0tEb3dubG9hZCAqKWRvd25sb2FkIHNob3VsZERlY29kZVNv
dXJjZURhdGFPZk1JTUVUeXBlOihOU1N0cmluZyAqKU1JTUVUeXBlIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3N4KDEwLjEzLjQpLCBpb3MoMTEuMykpOworLSAodm9pZClfZG93bmxvYWQ6KF9XS0Rvd25s
b2FkICopZG93bmxvYWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOihOU1VSTEF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlICopY2hhbGxlbmdlIGNvbXBsZXRpb25IYW5kbGVyOih2b2lk
ICheKShOU1VSTFNlc3Npb25BdXRoQ2hhbGxlbmdlRGlzcG9zaXRpb24sIE5TVVJMQ3JlZGVudGlh
bCopKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlv
cygxMS4zKSk7CistICh2b2lkKV9kb3dubG9hZDooX1dLRG93bmxvYWQgKilkb3dubG9hZCBkaWRD
cmVhdGVEZXN0aW5hdGlvbjooTlNTdHJpbmcgKilkZXN0aW5hdGlvbiBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOworLSAodm9pZClfZG93bmxvYWRQcm9jZXNzRGlk
Q3Jhc2g6KF9XS0Rvd25sb2FkICopZG93bmxvYWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4x
My40KSwgaW9zKDExLjMpKTsKKy0gKEJPT0wpX2Rvd25sb2FkOihfV0tEb3dubG9hZCAqKWRvd25s
b2FkIHNob3VsZERlY29kZVNvdXJjZURhdGFPZk1JTUVUeXBlOihOU1N0cmluZyAqKU1JTUVUeXBl
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7CiAKLS0gKE5TU3Ry
aW5nICopX2Rvd25sb2FkOihfV0tEb3dubG9hZCAqKWRvd25sb2FkIGRlY2lkZURlc3RpbmF0aW9u
V2l0aFN1Z2dlc3RlZEZpbGVuYW1lOihOU1N0cmluZyAqKWZpbGVuYW1lIGFsbG93T3ZlcndyaXRl
OihCT09MICopYWxsb3dPdmVyd3JpdGUgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVO
VCgiX2Rvd25sb2FkOmRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1lOmNvbXBs
ZXRpb25IYW5kbGVyOiIsIG1hY29zeCgxMC4xMCwgMTAuMTMuNCksIGlvcyg4LjAsIDExLjMpKTsK
Ky0gKE5TU3RyaW5nICopX2Rvd25sb2FkOihfV0tEb3dubG9hZCAqKWRvd25sb2FkIGRlY2lkZURl
c3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1lOihOU1N0cmluZyAqKWZpbGVuYW1lIGFsbG93
T3ZlcndyaXRlOihCT09MICopYWxsb3dPdmVyd3JpdGUgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9S
RVBMQUNFTUVOVCgiX2Rvd25sb2FkOmRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVu
YW1lOmNvbXBsZXRpb25IYW5kbGVyOiIsIG1hY29zKDEwLjEwLCAxMC4xMy40KSwgaW9zKDguMCwg
MTEuMykpOwogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS0VsZW1lbnRBY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tFbGVtZW50QWN0aW9uLmgKaW5kZXggYzk2ZDNkNjMzYzZhODJiODU4YzJmZTc2MTk4ODI1
MTJhYzBlNmEwNy4uOWY1NGNkNzQ1OTAzMmIzMzI4YTA3MGI3MWY0OGYwMTE4ZTMxYmNiMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRBY3Rp
b24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVudEFj
dGlvbi5oCkBAIC00Myw5ICs0Myw5IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS0Vs
ZW1lbnRBY3Rpb25UeXBlKSB7CiAgICAgX1dLRWxlbWVudEFjdGlvblR5cGVPcGVuSW5FeHRlcm5h
bEFwcGxpY2F0aW9uIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDlfMCkpLAogI2VuZGlmCiAgICAgX1dL
RWxlbWVudEFjdGlvblR5cGVTaGFyZSBXS19BUElfQVZBSUxBQkxFKGlvcygxMC4wKSksCi19IFdL
X0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpOworfSBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDEwLjEwKSwgaW9zKDguMCkpOwogCi1XS19DTEFTU19BVkFJTEFCTEUobWFjb3N4
KDEwLjEwKSwgaW9zKDguMCkpCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3Mo
OC4wKSkKIEBpbnRlcmZhY2UgX1dLRWxlbWVudEFjdGlvbiA6IE5TT2JqZWN0CiAKICsgKGluc3Rh
bmNldHlwZSllbGVtZW50QWN0aW9uV2l0aFR5cGU6KF9XS0VsZW1lbnRBY3Rpb25UeXBlKXR5cGU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRXhwZXJp
bWVudGFsRmVhdHVyZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0V4
cGVyaW1lbnRhbEZlYXR1cmUuaAppbmRleCBlYjFkYzkyYmQ3NzRiYWU2NGRhYmVhNjViNDJmYjU4
ZWVmNDdmNjRjLi4xZDQ0ZjdiM2Y3NmJmMjlkYTE1ODI2ZjM1OWFkMWYwZmUwMDQ2OGNkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRXhwZXJpbWVudGFs
RmVhdHVyZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFeHBl
cmltZW50YWxGZWF0dXJlLmgKQEAgLTI3LDcgKzI3LDcgQEAKIAogI2ltcG9ydCA8Rm91bmRhdGlv
bi9Gb3VuZGF0aW9uLmg+CiAKLVdLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3Mo
MTAuMCkpCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpCiBAaW50
ZXJmYWNlIF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUgOiBOU09iamVjdAogCiBAcHJvcGVydHkgKG5v
bmF0b21pYywgcmVhZG9ubHksIGNvcHkpIE5TU3RyaW5nICprZXk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRmluZE9wdGlvbnMuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tGaW5kT3B0aW9ucy5oCmluZGV4IDRmMjIyODQy
MjQ1Y2NjYjVlMTViNTQzYzVhYmE4NGQ0NjUyYzI3MDIuLmQyYTFmZGU1NGIxOTU4MDA4ODY0NzBm
NDYxOTYwNTM0NjAyN2JkNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tGaW5kT3B0aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tGaW5kT3B0aW9ucy5oCkBAIC0zOSw0ICszOSw0IEBAIHR5cGVkZWYgTlNfT1BU
SU9OUyhOU1VJbnRlZ2VyLCBfV0tGaW5kT3B0aW9ucykgewogICAgIF9XS0ZpbmRPcHRpb25zSXJy
ZWxldmFudEZvckluY3JlbWVudGFsUmVzdWx0cyA9IF9XS0ZpbmRPcHRpb25zU2hvd092ZXJsYXkg
fCBfV0tGaW5kT3B0aW9uc1Nob3dGaW5kSW5kaWNhdG9yIHwgX1dLRmluZE9wdGlvbnNTaG93SGln
aGxpZ2h0IHwgX1dLRmluZE9wdGlvbnNEZXRlcm1pbmVNYXRjaEluZGV4LAogICAgIF9XS0ZpbmRP
cHRpb25zSXJyZWxldmFudEZvckJhdGNoUmVzdWx0cyA9IF9XS0ZpbmRPcHRpb25zQmFja3dhcmRz
IHwgX1dLRmluZE9wdGlvbnNXcmFwQXJvdW5kIHwgX1dLRmluZE9wdGlvbnNJcnJlbGV2YW50Rm9y
SW5jcmVtZW50YWxSZXN1bHRzCiAKLX0gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBp
b3MoOC4wKSk7Cit9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4wKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRm9jdXNlZEVs
ZW1lbnRJbmZvLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRm9jdXNl
ZEVsZW1lbnRJbmZvLmgKaW5kZXggNDdiZWJlMmRhYTU0NGE1YTAwMWZmYmFlYWFlMWU2MDMzYjgy
YThjZC4uMWYzYTcxYTI0MDBhZWEyMGVjMzA3N2I3ZjBiZmZmZGM0NmViOTc4MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0ZvY3VzZWRFbGVtZW50SW5m
by5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tGb2N1c2VkRWxl
bWVudEluZm8uaApAQCAtODEsNiArODEsNiBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBX
S0lucHV0VHlwZSkgewogICovCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGdldHRl
cj1pc1VzZXJJbml0aWF0ZWQpIEJPT0wgdXNlckluaXRpYXRlZDsKIAotQHByb3BlcnR5IChub25h
dG9taWMsIHJlYWRvbmx5KSBOU09iamVjdCA8TlNTZWN1cmVDb2Rpbmc+ICp1c2VyT2JqZWN0IFdL
X0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpLCBpb3MoMTEuMykpOworQHByb3BlcnR5IChu
b25hdG9taWMsIHJlYWRvbmx5KSBOU09iamVjdCA8TlNTZWN1cmVDb2Rpbmc+ICp1c2VyT2JqZWN0
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7CiAKIEBlbmQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tGb3JtSW5wdXRT
ZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRm9ybUlucHV0
U2Vzc2lvbi5oCmluZGV4IGJkOTdmYmQyOTczN2MwZGFkODc2MTQ2OGU1NDA1MDI5ZjgzNTczYjAu
LjVjNmJiYWViOWUzZmZkMjAzYTU3M2MyYzBlMjliNGVlYzNiODBmMWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tGb3JtSW5wdXRTZXNzaW9uLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0Zvcm1JbnB1dFNlc3Npb24u
aApAQCAtMzQsNyArMzQsNyBAQAogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGdl
dHRlcj1pc1ZhbGlkKSBCT09MIHZhbGlkOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5
KSBOU09iamVjdCA8TlNTZWN1cmVDb2Rpbmc+ICp1c2VyT2JqZWN0OwotQHByb3BlcnR5IChub25h
dG9taWMsIHJlYWRvbmx5KSBpZCA8X1dLRm9jdXNlZEVsZW1lbnRJbmZvPiBmb2N1c2VkRWxlbWVu
dEluZm8gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3MoMTAuMCkpOworQHByb3Bl
cnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBpZCA8X1dLRm9jdXNlZEVsZW1lbnRJbmZvPiBmb2N1
c2VkRWxlbWVudEluZm8gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7
CiAKICNpZiBUQVJHRVRfT1NfSVBIT05FCiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgTlNT
dHJpbmcgKmFjY2Vzc29yeVZpZXdDdXN0b21CdXR0b25UaXRsZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tGdWxsc2NyZWVuRGVsZWdhdGUuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tGdWxsc2NyZWVuRGVsZWdhdGUuaApp
bmRleCBmZGViNDVhM2U4MDdiNzk2OTNjYmJkZjQ2MGE0YjA5ZTIxODg2ZTVjLi5mZWI1NzkwNDNi
ODU1NjliZTg4OGUxYzE2ZjQwMTM4Y2E1YzJhYWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRnVsbHNjcmVlbkRlbGVnYXRlLmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0Z1bGxzY3JlZW5EZWxlZ2F0ZS5oCkBAIC0y
NSw3ICsyNSw3IEBACiAKICNpbXBvcnQgPFdlYktpdC9XS0ZvdW5kYXRpb24uaD4KIAotV0tfQVBJ
X0FWQUlMQUJMRShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMykpCitXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDEwLjEzKSwgaW9zKDExLjMpKQogQHByb3RvY29sIF9XS0Z1bGxzY3JlZW5EZWxlZ2F0ZSA8
TlNPYmplY3Q+CiAKIEBvcHRpb25hbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL19XS0dlb2xvY2F0aW9uQ29yZUxvY2F0aW9uUHJvdmlkZXIuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tHZW9sb2NhdGlvbkNvcmVMb2NhdGlvblBy
b3ZpZGVyLmgKaW5kZXggNTUxMTRlMzM3MzcxNTFiNmMzOTMxMjY5MzhiNDNhZmMxYzkxYjJmYS4u
MTk4NWYyMGIzY2JkN2RiMDcwNmE1ZGU3OWM3MzE4MDdiMjYwZjhjZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0dlb2xvY2F0aW9uQ29yZUxvY2F0aW9u
UHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLR2Vv
bG9jYXRpb25Db3JlTG9jYXRpb25Qcm92aWRlci5oCkBAIC0zMyw3ICszMyw3IEBAIE5TX0FTU1VN
RV9OT05OVUxMX0JFR0lOCiAKIEBjbGFzcyBfV0tHZW9sb2NhdGlvblBvc2l0aW9uOwogCi1XS19B
UElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSkKK1dLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpCiBAcHJvdG9jb2wgX1dLR2VvbG9jYXRpb25Db3JlTG9j
YXRpb25MaXN0ZW5lciA8TlNPYmplY3Q+CiAtICh2b2lkKWdlb2xvY2F0aW9uQXV0aG9yaXphdGlv
bkdyYW50ZWQ7CiAtICh2b2lkKWdlb2xvY2F0aW9uQXV0aG9yaXphdGlvbkRlbmllZDsKQEAgLTQy
LDcgKzQyLDcgQEAgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpCiAt
ICh2b2lkKXJlc2V0R2VvbG9jYXRpb247CiBAZW5kCiAKLVdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KDEwLjEzKSwgaW9zKDExLjApKQorV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygx
MS4wKSkKIEBwcm90b2NvbCBfV0tHZW9sb2NhdGlvbkNvcmVMb2NhdGlvblByb3ZpZGVyIDxOU09i
amVjdD4KIC0gKHZvaWQpc2V0TGlzdGVuZXI6KGlkIDxfV0tHZW9sb2NhdGlvbkNvcmVMb2NhdGlv
bkxpc3RlbmVyPilsaXN0ZW5lcjsKIC0gKHZvaWQpcmVxdWVzdEdlb2xvY2F0aW9uQXV0aG9yaXph
dGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJ
bnNwZWN0b3IuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0
b3IuaAppbmRleCBkYTJjMzU2NjIzZTc1YjA3ZTkzZjU1NDRkNzFmMWNiN2I2ODM4NmY3Li5hY2E4
ZGY0MWRiY2E5OGY4NTkxMzk5Nzc1ZDg5ZGRmZDc3OWE5ZWU5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3Rvci5oCkBAIC0zMSw3ICszMSw3IEBA
CiAKIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAKLVdLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3go
V0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvcyhX
S19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKQogQGludGVyZmFjZSBfV0tJbnNwZWN0b3IgOiBO
U09iamVjdAogCiAtIChpbnN0YW5jZXR5cGUpaW5pdCBOU19VTkFWQUlMQUJMRTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JXaW5kb3cu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JXaW5kb3cu
aAppbmRleCA2ZjVmN2Q4YjU2ZWUxYmM3ZTVjMzMzZWZmMmU1NTYxODFmMTUxMWEwLi5iMWE3MzI5
MDA3ZDBhYjAwMGE5ZTlhNjNkNGViMWFjZjVkM2MzZjQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yV2luZG93LmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3RvcldpbmRvdy5oCkBAIC0yNyw3
ICsyNyw3IEBACiAKICNpZiAhVEFSR0VUX09TX0lQSE9ORQogCi1XS19DTEFTU19BVkFJTEFCTEUo
bWFjb3N4KFdLX01BQ19UQkEpKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEp
KQogQGludGVyZmFjZSBfV0tJbnNwZWN0b3JXaW5kb3cgOiBOU1dpbmRvdwogCiBAcHJvcGVydHkg
KG5vbmF0b21pYywgZ2V0dGVyPWlzRm9yUmVtb3RlVGFyZ2V0KSBCT09MIGZvclJlbW90ZVRhcmdl
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnRl
cm5hbERlYnVnRmVhdHVyZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19X
S0ludGVybmFsRGVidWdGZWF0dXJlLmgKaW5kZXggMTdjZjI5M2ZkYWE0ZjY4YmUxMjg5YzkzYjU5
MzY3Mjc1ZmIwMDRmMy4uNjVjNjZiOTc3YTEzYzA3MzM1ZTRlZDViZGI3YWI0NGRlMTZkOWZiMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0ludGVybmFs
RGVidWdGZWF0dXJlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19X
S0ludGVybmFsRGVidWdGZWF0dXJlLmgKQEAgLTI3LDcgKzI3LDcgQEAKIAogI2ltcG9ydCA8Rm91
bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CiAKLVdLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goV0tfTUFD
X1RCQSksIGlvcyhXS19JT1NfVEJBKSkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvcyhXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEpKQogQGludGVyZmFjZSBfV0tJbnRlcm5hbERlYnVnRmVhdHVy
ZSA6IE5TT2JqZWN0CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgY29weSkgTlNT
dHJpbmcgKmtleTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tMYXlvdXRNb2RlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
TGF5b3V0TW9kZS5oCmluZGV4IDIyYjhhMjIwMzFmZGMwMmNlZDM5ZGJlZjgxODBhNWUzZjM0MzYz
MDUuLjc4MTQ2NzFhOWRmMmU4NzI5ZGMyYWMwYWFmNDAxYmJkYTI3Y2ZmNWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tMYXlvdXRNb2RlLmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0xheW91dE1vZGUuaApAQCAtMzUs
NCArMzUsNCBAQCB0eXBlZGVmIE5TX0VOVU0oTlNVSW50ZWdlciwgX1dLTGF5b3V0TW9kZSkgewog
ICAgIC8vIExheSBvdXQgdGhlIHZpZXcgYXQgYSBoZXVyaXN0aWNhbGx5LWRldGVybWluZWQgc2l6
ZSBiYXNlZCBvbiB0aGUgbWluaW11bSBzaXplIG9mIHRoZSBkb2N1bWVudC4KICAgICBfV0tMYXlv
dXRNb2RlRHluYW1pY1NpemVDb21wdXRlZEZyb21NaW5pbXVtRG9jdW1lbnRTaXplID0gNCwKIAot
fSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKK30gV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMC4xMSksIGlvcyg5LjApKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tMaW5rSWNvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tMaW5rSWNvblBhcmFtZXRlcnMuaAppbmRleCBl
ZjBmNzRkZWE3ZjM1YjE2OWM0NTljYmVkMjA2YjUyMGM3MDhjZmY4Li42MTIwOTMxZjRkMjhhZDRj
NzZmN2IxOWUwZGMzMDZmMTY5YzEwMjEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLTGlua0ljb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0xpbmtJY29uUGFyYW1ldGVycy5oCkBAIC0zMSw5ICsz
MSw5IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIFdLTGlua0ljb25UeXBlKSB7CiAgICAg
V0tMaW5rSWNvblR5cGVGYXZpY29uLAogICAgIFdLTGlua0ljb25UeXBlVG91Y2hJY29uLAogICAg
IFdLTGlua0ljb25UeXBlVG91Y2hQcmVjb21wb3NlZEljb24sCi19IFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3N4KDEwLjEyLjMpLCBpb3MoMTAuMykpOworfSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEw
LjEyLjMpLCBpb3MoMTAuMykpOwogCi1XS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEyLjMp
LCBpb3MoMTAuMykpCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTIuMyksIGlvcygxMC4z
KSkKIEBpbnRlcmZhY2UgX1dLTGlua0ljb25QYXJhbWV0ZXJzIDogTlNPYmplY3QKIAogQHByb3Bl
cnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBjb3B5KSBOU1VSTCAqdXJsOwpAQCAtNDEsNiArNDEs
NiBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEyLjMpLCBpb3MoMTAuMykpCiBAcHJv
cGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGNvcHkpIE5TU3RyaW5nICptaW1lVHlwZTsKIEBw
cm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgY29weSkgTlNOdW1iZXIgKnNpemU7CiAKLUBw
cm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgY29weSkgTlNEaWN0aW9uYXJ5ICphdHRyaWJ1
dGVzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjE0KSwgaW9zKDEyLjApKTsKK0Bwcm9wZXJ0
eSAobm9uYXRvbWljLCByZWFkb25seSwgY29weSkgTlNEaWN0aW9uYXJ5ICphdHRyaWJ1dGVzIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpLCBpb3MoMTIuMCkpOwogCiBAZW5kCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLT3ZlcmxheVNjcm9sbGJh
clN0eWxlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLT3ZlcmxheVNj
cm9sbGJhclN0eWxlLmgKaW5kZXggMDdjNmUzZDdlZWNjZWJhZGQwOTVlYmQxNzc5OTMwZDI5OGQz
Zjk0Yi4uYTcwYzEzNjI4Y2NmMGI3NTEyZWI5OGM1ZjljM2MyOGE5YzQ0NGYyNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS092ZXJsYXlTY3JvbGxiYXJT
dHlsZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tPdmVybGF5
U2Nyb2xsYmFyU3R5bGUuaApAQCAtMzQsNCArMzQsNCBAQCB0eXBlZGVmIE5TX0VOVU0oTlNVSW50
ZWdlciwgX1dLT3ZlcmxheVNjcm9sbGJhclN0eWxlKSB7CiAgICAgLy8gaGV1cmlzdGljIHRvIGNo
b29zZSBhbiBhcHByb3ByaWF0ZSBjb2xvci4KICAgICBfV0tPdmVybGF5U2Nyb2xsYmFyU3R5bGVB
dXRvbWF0aWMKIAotfSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsK
K30gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMSksIGlvcyg5LjApKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3Vy
YXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9v
bENvbmZpZ3VyYXRpb24uaAppbmRleCAyMWIyMTdjNTg5ZDcxMDk2YmUxMDc0MWFiYzUyYzdhODZl
OWVlNGQ4Li4zYWIwYzNiZjUxZTY1YjgwN2JhNDM0NjcwZjFmNmVlMzgxNTU1MmU1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25m
aWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1By
b2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oCkBAIC0yOCwxOCArMjgsMTggQEAKIAogTlNfQVNTVU1F
X05PTk5VTExfQkVHSU4KIAotV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4
LjApKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJm
YWNlIF9XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbiA6IE5TT2JqZWN0IDxOU0NvcHlpbmc+CiAK
IEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSBOU1VSTCAqaW5qZWN0ZWRCdW5kbGVVUkw7Ci1A
cHJvcGVydHkgKG5vbmF0b21pYykgTlNVSW50ZWdlciBtYXhpbXVtUHJvY2Vzc0NvdW50IFdLX0FQ
SV9ERVBSRUNBVEVEKCJJdCBpcyBubyBsb25nZXIgcG9zc2libGUgdG8gbGltaXQgdGhlIG51bWJl
ciBvZiBwcm9jZXNzZXMiLCBtYWNvc3goV0tfTUFDX1RCQSwgV0tfTUFDX1RCQSksIGlvcyhXS19J
T1NfVEJBLCBXS19JT1NfVEJBKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCB1c2VzU2lu
Z2xlV2ViUHJvY2VzcyBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdL
X0lPU19UQkEpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSkgTlNTdHJp
bmcgKmN1c3RvbVdlYkNvbnRlbnRTZXJ2aWNlQnVuZGxlSWRlbnRpZmllciBXS19BUElfQVZBSUxB
QkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9u
YXRvbWljKSBOU1VJbnRlZ2VyIG1heGltdW1Qcm9jZXNzQ291bnQgV0tfQVBJX0RFUFJFQ0FURUQo
Ikl0IGlzIG5vIGxvbmdlciBwb3NzaWJsZSB0byBsaW1pdCB0aGUgbnVtYmVyIG9mIHByb2Nlc3Nl
cyIsIG1hY29zKFdLX01BQ19UQkEsIFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSwgV0tfSU9T
X1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgdXNlc1NpbmdsZVdlYlByb2Nlc3Mg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bw
cm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSkgTlNTdHJpbmcgKmN1c3RvbVdlYkNv
bnRlbnRTZXJ2aWNlQnVuZGxlSWRlbnRpZmllciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01B
Q19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCi1AcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBp
Z25vcmVTeW5jaHJvbm91c01lc3NhZ2luZ1RpbWVvdXRzRm9yVGVzdGluZyBXS19BUElfQVZBSUxB
QkxFKG1hY29zeCgxMC4xMiksIGlvcygxMC4wKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYykgQk9P
TCBhdHRyU3R5bGVFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBp
b3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgaWdub3JlU3luY2hy
b25vdXNNZXNzYWdpbmdUaW1lb3V0c0ZvclRlc3RpbmcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygx
MC4xMiksIGlvcygxMC4wKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBhdHRyU3R5bGVF
bmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSBOU0FycmF5PE5TVVJMICo+ICphZGRp
dGlvbmFsUmVhZEFjY2Vzc0FsbG93ZWRVUkxzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEz
KSwgaW9zKDExLjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSBOU0FycmF5PE5TVVJM
ICo+ICphZGRpdGlvbmFsUmVhZEFjY2Vzc0FsbG93ZWRVUkxzIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTAuMTMpLCBpb3MoMTEuMCkpOwogCiAjaWYgVEFSR0VUX09TX0lQSE9ORSAmJiAhVEFSR0VU
X09TX1NJTVVMQVRPUgogQHByb3BlcnR5IChub25hdG9taWMpIE5TVUludGVnZXIgd2lyZWxlc3ND
b250ZXh0SWRlbnRpZmllcjsKQEAgLTQ4LDI4ICs0OCwyOCBAQCBXS19DTEFTU19BVkFJTEFCTEUo
bWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCiAvLyBOZXR3b3JrIFByb2Nlc3MgcHJvcGVydGllcwog
Ly8gRklYTUU6IFRoZXNlIHNob3VsZCBiZSBiZSBwZXItc2Vzc2lvbi9kYXRhIHN0b3JlIHdoZW4g
d2Ugc3VwcG9ydCBtdWx0aXBsZSBub24tcGVyc2lzdGVudCBzZXNzaW9ucy9kYXRhIHN0b3Jlcy4K
IAotQHByb3BlcnR5IChub25hdG9taWMpIE5TSW50ZWdlciBkaXNrQ2FjaGVTaXplT3ZlcnJpZGUg
V0tfQVBJX0RFUFJFQ0FURUQoIlVzZSBbV0tXZWJzaXRlRGF0YVN0b3JlIG5vblBlcnNpc3RlbnRE
YXRhU3RvcmVdIHRvIGxpbWl0IGRpc2sgY2FjaGUgc2l6ZSB0byAwIiwgbWFjb3N4KDEwLjExLCBX
S19NQUNfVEJBKSwgaW9zKDkuMCwgV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMp
IE5TSW50ZWdlciBkaXNrQ2FjaGVTaXplT3ZlcnJpZGUgV0tfQVBJX0RFUFJFQ0FURUQoIlVzZSBb
V0tXZWJzaXRlRGF0YVN0b3JlIG5vblBlcnNpc3RlbnREYXRhU3RvcmVdIHRvIGxpbWl0IGRpc2sg
Y2FjaGUgc2l6ZSB0byAwIiwgbWFjb3MoMTAuMTEsIFdLX01BQ19UQkEpLCBpb3MoOS4wLCBXS19J
T1NfVEJBKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgTlNBcnJheSAqY2FjaGVQYXJ0
aXRpb25lZFVSTFNjaGVtZXM7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgTlNBcnJheTxO
U1N0cmluZyAqPiAqYWx3YXlzUmV2YWxpZGF0ZWRVUkxTY2hlbWVzIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGRp
c2tDYWNoZVNwZWN1bGF0aXZlVmFsaWRhdGlvbkVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goMTAuMTIpLCBpb3MoMTAuMCkpOwotQHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBj
b3B5KSBOU1N0cmluZyAqc291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyIFdLX0FQSV9E
RVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIl9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0
aW9uLnNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciIsIG1hY29zeCgxMC4xMi4zLCBX
S19NQUNfVEJBKSwgaW9zKDEwLjMsIFdLX0lPU19UQkEpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWlj
LCBudWxsYWJsZSwgY29weSkgTlNTdHJpbmcgKnNvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRl
bnRpZmllciBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJfV0tXZWJzaXRlRGF0
YVN0b3JlQ29uZmlndXJhdGlvbi5zb3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXIi
LCBtYWNvc3goMTAuMTIuMywgV0tfTUFDX1RCQSksIGlvcygxMC4zLCBXS19JT1NfVEJBKSk7Ci1A
cHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBzaG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2VzcyBX
S19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7CitAcHJvcGVydHkgKG5v
bmF0b21pYywgY29weSkgTlNBcnJheTxOU1N0cmluZyAqPiAqYWx3YXlzUmV2YWxpZGF0ZWRVUkxT
Y2hlbWVzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOworQHByb3Bl
cnR5IChub25hdG9taWMpIEJPT0wgZGlza0NhY2hlU3BlY3VsYXRpdmVWYWxpZGF0aW9uRW5hYmxl
ZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKK0Bwcm9wZXJ0eSAo
bm9uYXRvbWljLCBudWxsYWJsZSwgY29weSkgTlNTdHJpbmcgKnNvdXJjZUFwcGxpY2F0aW9uQnVu
ZGxlSWRlbnRpZmllciBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJfV0tXZWJz
aXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5zb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZp
ZXIiLCBtYWNvcygxMC4xMi4zLCBXS19NQUNfVEJBKSwgaW9zKDEwLjMsIFdLX0lPU19UQkEpKTsK
K0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSkgTlNTdHJpbmcgKnNvdXJjZUFw
cGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllciBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExB
Q0VNRU5UKCJfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5zb3VyY2VBcHBsaWNhdGlv
blNlY29uZGFyeUlkZW50aWZpZXIiLCBtYWNvcygxMC4xMi4zLCBXS19NQUNfVEJBKSwgaW9zKDEw
LjMsIFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHNob3VsZENhcHR1
cmVBdWRpb0luVUlQcm9jZXNzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEu
MCkpOwogI2lmIFRBUkdFVF9PU19JUEhPTkUKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJs
ZSwgY29weSkgTlNTdHJpbmcgKkNURGF0YUNvbm5lY3Rpb25TZXJ2aWNlVHlwZSBXS19BUElfQVZB
SUxBQkxFKGlvcygxMC4zKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBhbHdheXNSdW5z
QXRCYWNrZ3JvdW5kUHJpb3JpdHkgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTAuMykpOwogQHByb3Bl
cnR5IChub25hdG9taWMpIEJPT0wgc2hvdWxkVGFrZVVJQmFja2dyb3VuZEFzc2VydGlvbiBXS19B
UElfQVZBSUxBQkxFKGlvcygxMS4wKSk7CiAjZW5kaWYKLUBwcm9wZXJ0eSAobm9uYXRvbWljKSBw
aWRfdCBwcmVzZW50aW5nQXBwbGljYXRpb25QSUQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAu
MTMpLCBpb3MoMTEuMCkpOwotQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgcHJvY2Vzc1N3YXBz
T25OYXZpZ2F0aW9uIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjE0KSwgaW9zKDEyLjApKTsK
LUBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGFsd2F5c0tlZXBBbmRSZXVzZVN3YXBwZWRQcm9j
ZXNzZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTQpLCBpb3MoMTIuMCkpOwotQHByb3Bl
cnR5IChub25hdG9taWMpIEJPT0wgcHJvY2Vzc1N3YXBzT25XaW5kb3dPcGVuV2l0aE9wZW5lciBX
S19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xNCksIGlvcygxMi4wKSk7Ci1AcHJvcGVydHkgKG5v
bmF0b21pYykgQk9PTCBwcmV3YXJtc1Byb2Nlc3Nlc0F1dG9tYXRpY2FsbHkgV0tfQVBJX0FWQUlM
QUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci1AcHJvcGVydHkgKG5v
bmF0b21pYykgQk9PTCB1c2VzV2ViUHJvY2Vzc0NhY2hlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotQHByb3BlcnR5IChub25hdG9taWMpIEJP
T0wgcGFnZUNhY2hlRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xNCksIGlvcygx
Mi4wKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBzdXBwcmVzc2VzQ29ubmVjdGlvblRl
cm1pbmF0aW9uT25TeXN0ZW1DaGFuZ2UgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTQpLCBp
b3MoMTIuMCkpOwotQHByb3BlcnR5IChub25hdG9taWMsIGdldHRlcj1pc0pJVEVuYWJsZWQpIEJP
T0wgSklURW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdL
X0lPU19UQkEpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljKSBOU1VJbnRlZ2VyIGRvd25sb2FkTW9u
aXRvclNwZWVkTXVsdGlwbGllckZvclRlc3RpbmcgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tf
TUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYykgcGlkX3Qg
cHJlc2VudGluZ0FwcGxpY2F0aW9uUElEIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBp
b3MoMTEuMCkpOworQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgcHJvY2Vzc1N3YXBzT25OYXZp
Z2F0aW9uIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpLCBpb3MoMTIuMCkpOworQHByb3Bl
cnR5IChub25hdG9taWMpIEJPT0wgYWx3YXlzS2VlcEFuZFJldXNlU3dhcHBlZFByb2Nlc3NlcyBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSwgaW9zKDEyLjApKTsKK0Bwcm9wZXJ0eSAobm9u
YXRvbWljKSBCT09MIHByb2Nlc3NTd2Fwc09uV2luZG93T3BlbldpdGhPcGVuZXIgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4wKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYykg
Qk9PTCBwcmV3YXJtc1Byb2Nlc3Nlc0F1dG9tYXRpY2FsbHkgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBC
T09MIHVzZXNXZWJQcm9jZXNzQ2FjaGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJB
KSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHBhZ2VDYWNo
ZUVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4wKSk7CitAcHJv
cGVydHkgKG5vbmF0b21pYykgQk9PTCBzdXBwcmVzc2VzQ29ubmVjdGlvblRlcm1pbmF0aW9uT25T
eXN0ZW1DaGFuZ2UgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4wKSk7CitA
cHJvcGVydHkgKG5vbmF0b21pYywgZ2V0dGVyPWlzSklURW5hYmxlZCkgQk9PTCBKSVRFbmFibGVk
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitA
cHJvcGVydHkgKG5vbmF0b21pYykgTlNVSW50ZWdlciBkb3dubG9hZE1vbml0b3JTcGVlZE11bHRp
cGxpZXJGb3JUZXN0aW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhX
S19JT1NfVEJBKSk7CiAKIEBlbmQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL19XS1JlbW90ZVdlYkluc3BlY3RvclZpZXdDb250cm9sbGVyLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUmVtb3RlV2ViSW5zcGVjdG9yVmlld0Nv
bnRyb2xsZXIuaAppbmRleCA2NzQxMTM1MGQ4OGRhNjIxN2EyNDM1OThiNWZhNzFlNmYxZTc1MmNi
Li5kMjM5MGY1ZDcwNjE5OTFiNDVhNjA4NWIyOGU0MTFjYzNmNmZlYjJjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUmVtb3RlV2ViSW5zcGVjdG9yVmll
d0NvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
UmVtb3RlV2ViSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIuaApAQCAtMzQsMTEgKzM0LDExIEBAIE5T
X0FTU1VNRV9OT05OVUxMX0JFR0lOCiAKIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIFdLUmVt
b3RlV2ViSW5zcGVjdG9yRGVidWdnYWJsZVR5cGUpIHsKICAgICBXS1JlbW90ZVdlYkluc3BlY3Rv
ckRlYnVnZ2FibGVUeXBlSmF2YVNjcmlwdCwKLSAgICBXS1JlbW90ZVdlYkluc3BlY3RvckRlYnVn
Z2FibGVUeXBlU2VydmljZVdvcmtlciBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSwg
aW9zKDExLjMpKSwKKyAgICBXS1JlbW90ZVdlYkluc3BlY3RvckRlYnVnZ2FibGVUeXBlU2Vydmlj
ZVdvcmtlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpLAogICAg
IFdLUmVtb3RlV2ViSW5zcGVjdG9yRGVidWdnYWJsZVR5cGVXZWIsCi19IFdLX0FQSV9BVkFJTEFC
TEUobWFjb3N4KDEwLjEyLjMpLCBpb3MoMTAuMykpOworfSBXS19BUElfQVZBSUxBQkxFKG1hY29z
KDEwLjEyLjMpLCBpb3MoMTAuMykpOwogCi1XS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEy
LjMpLCBpb3MoMTAuMykpCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTIuMyksIGlvcygx
MC4zKSkKIEBpbnRlcmZhY2UgX1dLUmVtb3RlV2ViSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIgOiBO
U09iamVjdAogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgYXNzaWduKSBpZCA8X1dLUmVtb3RlV2Vi
SW5zcGVjdG9yVmlld0NvbnRyb2xsZXJEZWxlZ2F0ZT4gZGVsZWdhdGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLU2Vzc2lvblN0YXRlLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLU2Vzc2lvblN0YXRlLmgKaW5kZXggYTI1
NWQyMjdkMTU0NTZmYzU1NGQxNWU2NGVkMmQ0NzQ3MmE3N2JjNS4uNGRlYmYwYmRkOGQ4ODQ5NmE0
MmM4MzIyZDBlNGY5ODdlYjU0NDhkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL19XS1Nlc3Npb25TdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tTZXNzaW9uU3RhdGUuaApAQCAtMjcsNyArMjcsNyBAQAogCiAjaW1w
b3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KIAotV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29z
eCgxMC4xMCksIGlvcyg4LjApKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9z
KDguMCkpCiBAaW50ZXJmYWNlIF9XS1Nlc3Npb25TdGF0ZSA6IE5TT2JqZWN0CiAKIC0gKGluc3Rh
bmNldHlwZSlpbml0V2l0aERhdGE6KE5TRGF0YSAqKWRhdGE7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVGV4dElucHV0Q29udGV4dC5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1RleHRJbnB1dENvbnRleHQuaAppbmRleCBj
OTZiM2QyMDdmZDU0YWQ2M2I2ZmViZmRiOTZhMmM1N2U1MmFiY2M0Li45NGRjZGFhNzRmMzg0YTBh
YTc4NjEyMmViNjAxNDFiMzNlZDY3Y2E4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLVGV4dElucHV0Q29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tUZXh0SW5wdXRDb250ZXh0LmgKQEAgLTI1LDcgKzI1LDcg
QEAKIAogI2ltcG9ydCA8V2ViS2l0L1dLRm91bmRhdGlvbi5oPgogCi1XS19DTEFTU19BVkFJTEFC
TEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpCitXS19DTEFTU19BVkFJTEFC
TEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSkKIEBpbnRlcmZhY2UgX1dLVGV4
dElucHV0Q29udGV4dCA6IE5TT2JqZWN0IDxOU0NvcHlpbmc+CiAKIC0gKGluc3RhbmNldHlwZSlp
bml0IE5TX1VOQVZBSUxBQkxFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS1RodW1ibmFpbFZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tUaHVtYm5haWxWaWV3LmgKaW5kZXggMzZhNTYxZWQ5NDdhMWFiNzNkMmYxMTA4
NjVjN2FkM2RkYzgwYzU0NS4uNzEyYzY5MWUwNWI0YzE5ZDFjNjU4MWNhNTYwOGVjMzkzNzNlZjU2
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1RodW1i
bmFpbFZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVGh1
bWJuYWlsVmlldy5oCkBAIC0zMiw3ICszMiw3IEBACiBAY2xhc3MgV0tWaWV3OwogQGNsYXNzIFdL
V2ViVmlldzsKIAotV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQor
V0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIF9X
S1RodW1ibmFpbFZpZXcgOiBOU1ZpZXcKIAogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tVc2VyQ29u
dGVudEV4dGVuc2lvblN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZS5oCmluZGV4IGVmM2Y4NDk0OGZjOWNiNWM5M2Ni
YzI4ZDI2OWM5NjRmMDFjYzJhYWEuLjAwN2ViYWVmNzM5NGUwOGQ5ODQxYWMyODNhYjdjYzJjYmUx
YmNlNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tV
c2VyQ29udGVudEV4dGVuc2lvblN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUuaApAQCAtMjcsNyArMjcsNyBA
QAogCiBAY2xhc3MgX1dLVXNlckNvbnRlbnRGaWx0ZXI7CiAKLVdLX0NMQVNTX0FWQUlMQUJMRSht
YWNvc3goMTAuMTEpLCBpb3MoOS4wKSkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4xMSks
IGlvcyg5LjApKQogQGludGVyZmFjZSBfV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlIDogTlNP
YmplY3QKIAogKyAoaW5zdGFuY2V0eXBlKWRlZmF1bHRTdG9yZTsKQEAgLTM5LDExICszOSwxMSBA
QCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpCiAKIEBlbmQKIAot
V0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgX1dLVXNlckNvbnRlbnRFeHRlbnNpb25zRG9tYWlu
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsKK1dLX0VYVEVSTiBO
U1N0cmluZyAqIGNvbnN0IF9XS1VzZXJDb250ZW50RXh0ZW5zaW9uc0RvbWFpbiBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKIAogdHlwZWRlZiBOU19FTlVNKE5TSW50
ZWdlciwgX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZUVycm9yQ29kZSkgewogICAgIF9XS1Vz
ZXJDb250ZW50RXh0ZW5zaW9uU3RvcmVFcnJvckxvb2t1cEZhaWxlZCwKICAgICBfV0tVc2VyQ29u
dGVudEV4dGVuc2lvblN0b3JlRXJyb3JWZXJzaW9uTWlzbWF0Y2gsCiAgICAgX1dLVXNlckNvbnRl
bnRFeHRlbnNpb25TdG9yZUVycm9yQ29tcGlsZUZhaWxlZCwKICAgICBfV0tVc2VyQ29udGVudEV4
dGVuc2lvblN0b3JlRXJyb3JSZW1vdmVGYWlsZWQsCi19IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KDEwLjEyKSwgaW9zKDEwLjApKTsKK30gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlv
cygxMC4wKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlUHJpdmF0ZS5oCmlu
ZGV4IDgwNGMyNmNhMTZjOGI1OWFmYjUyYjJkNTIwODc0ODUwNmI4OTZlZmQuLmU0MmY0OTE3NmY0
MjMwNTQ5ODBlYzc1NjI3ZmYwYmY3M2QzMTNiMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlUHJpdmF0ZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tVc2VyQ29udGVudEV4
dGVuc2lvblN0b3JlUHJpdmF0ZS5oCkBAIC0zMyw3ICszMyw3IEBACiAtICh2b2lkKV9yZW1vdmVB
bGxDb250ZW50RXh0ZW5zaW9uczsKIC0gKHZvaWQpX2ludmFsaWRhdGVDb250ZW50RXh0ZW5zaW9u
VmVyc2lvbkZvcklkZW50aWZpZXI6KE5TU3RyaW5nICopaWRlbnRpZmllcjsKIAotLSAoaWQpX2lu
aXRXaXRoV0tDb250ZW50UnVsZUxpc3RTdG9yZTooV0tDb250ZW50UnVsZUxpc3RTdG9yZSAqKWNv
bnRlbnRSdWxlTGlzdFN0b3JlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzKSwgaW9zKDEx
LjApKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgV0tDb250ZW50UnVsZUxpc3RT
dG9yZSAqX2NvbnRlbnRSdWxlTGlzdFN0b3JlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01B
Q19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAoaWQpX2luaXRXaXRoV0tDb250ZW50UnVsZUxp
c3RTdG9yZTooV0tDb250ZW50UnVsZUxpc3RTdG9yZSAqKWNvbnRlbnRSdWxlTGlzdFN0b3JlIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpOworQHByb3BlcnR5IChub25h
dG9taWMsIHJlYWRvbmx5KSBXS0NvbnRlbnRSdWxlTGlzdFN0b3JlICpfY29udGVudFJ1bGVMaXN0
U3RvcmUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KTsKIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L19XS1VzZXJDb250ZW50RmlsdGVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLVXNlckNvbnRlbnRGaWx0ZXIuaAppbmRleCBjZDQ0OTFlMzMxZjA5MWJkOGM1ODJhYmEy
MDk5YmU2OTA4ZWNiMTEzLi4xN2I0ZDFkNjkxZTIwNDA3MDA2Yjk5YjAzMDMyNTllYjk0OWRiNDZj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNlckNv
bnRlbnRGaWx0ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
VXNlckNvbnRlbnRGaWx0ZXIuaApAQCAtMjUsNyArMjUsNyBAQAogCiAjaW1wb3J0IDxXZWJLaXQv
V0tGb3VuZGF0aW9uLmg+CiAKLVdLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3Mo
OS4wKSkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4xMSksIGlvcyg5LjApKQogQGludGVy
ZmFjZSBfV0tVc2VyQ29udGVudEZpbHRlciA6IE5TT2JqZWN0CiAKIEBlbmQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tVc2VyQ29udGVudEZpbHRlclBy
aXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tVc2VyQ29udGVu
dEZpbHRlclByaXZhdGUuaAppbmRleCA1NTNlNGNjOGEyNjZjZTE2Mjc0ODE5Y2ZjZDYxZWZiOTlj
YmRmZDI0Li41MDA4YjQ5Nzk4MjM2YjI2ZDQ2YjIzM2IwMjE1ZjA3MmE2Yzk5MjQ2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNlckNvbnRlbnRGaWx0
ZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Vz
ZXJDb250ZW50RmlsdGVyUHJpdmF0ZS5oCkBAIC0yOSw3ICsyOSw3IEBACiAKIEBpbnRlcmZhY2Ug
X1dLVXNlckNvbnRlbnRGaWx0ZXIgKFdLUHJpdmF0ZSkKIAotLSAoaWQpX2luaXRXaXRoV0tDb250
ZW50UnVsZUxpc3Q6KFdLQ29udGVudFJ1bGVMaXN0Kiljb250ZW50UnVsZUxpc3QgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpOworLSAoaWQpX2luaXRXaXRoV0tDb250
ZW50UnVsZUxpc3Q6KFdLQ29udGVudFJ1bGVMaXN0Kiljb250ZW50UnVsZUxpc3QgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywg
cmVhZG9ubHkpIEJPT0wgdXNlc0NvcGllZE1lbW9yeTsKIAogQGVuZApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1VzZXJDb250ZW50V29ybGQuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tVc2VyQ29udGVudFdvcmxkLmgKaW5k
ZXggYTI4NDBkZTg4NTg0YmI0MjIxMWU4NGUxODk0MTg0ODBmYjRlZGQ4Ni4uMDBiODVkMGYwN2Ey
MjE1OTBiZmRlMDA0MDZkMWFjMmE5NTIzYzQ5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS1VzZXJDb250ZW50V29ybGQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNlckNvbnRlbnRXb3JsZC5oCkBAIC0yNyw3ICsy
Nyw3IEBACiAKIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAKLVdLX0NMQVNTX0FWQUlMQUJMRSht
YWNvc3goMTAuMTIpLCBpb3MoMTAuMCkpCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTIp
LCBpb3MoMTAuMCkpCiBAaW50ZXJmYWNlIF9XS1VzZXJDb250ZW50V29ybGQgOiBOU09iamVjdAog
CiArIChfV0tVc2VyQ29udGVudFdvcmxkICopd29ybGRXaXRoTmFtZTooTlNTdHJpbmcgKiluYW1l
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1VzZXJJ
bml0aWF0ZWRBY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tV
c2VySW5pdGlhdGVkQWN0aW9uLmgKaW5kZXggYTY1MjE4MDJmNmFmNzEyMGMyNDlkMTNlZDRhYjFl
NjY3YzIxNmM2NS4uNzI3NTdkZmE5NTQ4ZGYyMDU2ZDgwYjg3NmYxZmQwYTRlYWQ2MmJjMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1VzZXJJbml0aWF0
ZWRBY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNl
ckluaXRpYXRlZEFjdGlvbi5oCkBAIC0yOSw3ICsyOSw3IEBACiAKIE5TX0FTU1VNRV9OT05OVUxM
X0JFR0lOCiAKLVdLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3MoMTAuMCkpCitX
S19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpCiBAaW50ZXJmYWNlIF9X
S1VzZXJJbml0aWF0ZWRBY3Rpb24gOiBOU09iamVjdAogCiAtICh2b2lkKWNvbnN1bWU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNlclN0eWxlU2hl
ZXQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tVc2VyU3R5bGVTaGVl
dC5oCmluZGV4IDhhYjFmZTFhZTUyODI1YzFkOTlhMWI4ZGQ2ZTY4MzViMjA4YmYwMDcuLjg0ZmEy
NWVkMjMxMDVlNzYzZDhjMDcwNDMzMjBhMTUyNWFmYTg5MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tVc2VyU3R5bGVTaGVldC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tVc2VyU3R5bGVTaGVldC5oCkBAIC0zMSw3
ICszMSw3IEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAKIEBjbGFzcyBfV0tVc2VyQ29udGVu
dFdvcmxkOwogCi1XS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKQor
V0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKQogQGludGVyZmFjZSBf
V0tVc2VyU3R5bGVTaGVldCA6IE5TT2JqZWN0IDxOU0NvcHlpbmc+CiAKIEBwcm9wZXJ0eSAobm9u
YXRvbWljLCByZWFkb25seSwgY29weSkgTlNTdHJpbmcgKnNvdXJjZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tWaXNpdGVkTGlua1N0b3JlLmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVmlzaXRlZExpbmtTdG9yZS5oCmlu
ZGV4IDRhZmExMzNlNGU4NTY1ODJlMjQwODlkYzc2MDMwNjViODc0ODNlNWYuLmJiYTM5NmE5MTBj
M2FmOTg1YTMwNzM3NmFlOGNjMjBiZGJmMTM4ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tWaXNpdGVkTGlua1N0b3JlLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Zpc2l0ZWRMaW5rU3RvcmUuaApAQCAtMjYsMTMg
KzI2LDEzIEBACiAjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KICNpbXBvcnQgPFdl
YktpdC9XS0ZvdW5kYXRpb24uaD4KIAotV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCks
IGlvcyg4LjApKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDguMCkpCiBA
aW50ZXJmYWNlIF9XS1Zpc2l0ZWRMaW5rU3RvcmUgOiBOU09iamVjdAogCiAtICh2b2lkKWFkZFZp
c2l0ZWRMaW5rV2l0aFVSTDooTlNVUkwgKilVUkw7Ci0tICh2b2lkKWFkZFZpc2l0ZWRMaW5rV2l0
aFN0cmluZzooTlNTdHJpbmcgKilzdHJpbmcgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMu
NCksIGlvcygxMS4zKSk7CistICh2b2lkKWFkZFZpc2l0ZWRMaW5rV2l0aFN0cmluZzooTlNTdHJp
bmcgKilzdHJpbmcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsK
IC0gKHZvaWQpcmVtb3ZlQWxsOwotLSAoQk9PTCljb250YWluc1Zpc2l0ZWRMaW5rV2l0aFVSTDoo
TlNVUkwgKilVUkwgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCksIGlvcygxMS4zKSk7
Ci0tICh2b2lkKXJlbW92ZVZpc2l0ZWRMaW5rV2l0aFVSTDooTlNVUkwgKilVUkwgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goMTAuMTMuNCksIGlvcygxMS4zKSk7CistIChCT09MKWNvbnRhaW5zVmlz
aXRlZExpbmtXaXRoVVJMOihOU1VSTCAqKVVSTCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEz
LjQpLCBpb3MoMTEuMykpOworLSAodm9pZClyZW1vdmVWaXNpdGVkTGlua1dpdGhVUkw6KE5TVVJM
ICopVVJMIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7CiAKIEBl
bmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJz
aXRlRGF0YVNpemUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJz
aXRlRGF0YVNpemUuaAppbmRleCAyNTY1YjdlZDYzODg5YWEzMzVmOTI1NGUyOGEzMzRjMDk3NDA2
NWJhLi4wZTdmNjBkOGE4ODIwOGU0ZTgxNTYzNTY5ZTE3YjUwMjgyOTIxZDU2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTaXplLmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU2l6
ZS5oCkBAIC0yOSw3ICsyOSw3IEBACiAKIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAKLVdLX0NM
QVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3MoMTAuMCkpCitXS19DTEFTU19BVkFJTEFC
TEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpCiBAaW50ZXJmYWNlIF9XS1dlYnNpdGVEYXRhU2l6
ZSA6IE5TT2JqZWN0CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgdW5zaWduZWQg
bG9uZyBsb25nIHRvdGFsU2l6ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZS5oCmluZGV4IDUyMDljMDBkNDIwYzU0YTYy
YmEwNmQ3ZDRkNTRkNDY4NWVmN2JiMTYuLjQwYjUyNTRkNzM5N2M4YTRlZTY4NzY2NmYzOGI2ODEz
ZDdiNDIyNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tXZWJzaXRlRGF0YVN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS1dlYnNpdGVEYXRhU3RvcmUuaApAQCAtMjksMTAgKzI5LDEwIEBACiAKIHR5cGVkZWYg
TlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBXS1dlYnNpdGVEYXRhVHlwZXMpIHsKICAgICBXS1dlYnNp
dGVEYXRhVHlwZUFsbCA9IE5TVUludGVnZXJNYXgsCi19IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KDEwLjExKSwgaW9zKDkuMCkpOworfSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjExKSwgaW9z
KDkuMCkpOwogCiAKLVdLX0NMQVNTX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiV0tXZWJz
aXRlRGF0YVN0b3JlIiwgbWFjb3N4KDEwLjEwLCAxMC4xMSksIGlvcyg4LjAsIDkuMCkpCitXS19D
TEFTU19ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIldLV2Vic2l0ZURhdGFTdG9yZSIsIG1h
Y29zKDEwLjEwLCAxMC4xMSksIGlvcyg4LjAsIDkuMCkpCiBAaW50ZXJmYWNlIF9XS1dlYnNpdGVE
YXRhU3RvcmUgOiBOU09iamVjdAogCiArIChfV0tXZWJzaXRlRGF0YVN0b3JlICopZGVmYXVsdERh
dGFTdG9yZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgKaW5kZXggNTlj
YjI1YzVlYzdiOWFiNzA1NWRiNDE0Njc2ZDIzM2ZlYWUwZDVkNy4uMDllMjUxZTc3YzA3NjkyNWI5
MzRlY2MzZjZhOWQwZmQwODQ5YjM1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1
cmF0aW9uLmgKQEAgLTI5LDIwICsyOSwyMCBAQAogCiBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgog
Ci1XS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEzKSwgaW9zKDExLjApKQorV0tfQ0xBU1Nf
QVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKQogQGludGVyZmFjZSBfV0tXZWJzaXRl
RGF0YVN0b3JlQ29uZmlndXJhdGlvbiA6IE5TT2JqZWN0CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
LCBjb3B5LCBzZXR0ZXI9X3NldFdlYlN0b3JhZ2VEaXJlY3Rvcnk6KSBOU1VSTCAqX3dlYlN0b3Jh
Z2VEaXJlY3Rvcnk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSwgc2V0dGVyPV9zZXRJbmRl
eGVkREJEYXRhYmFzZURpcmVjdG9yeTopIE5TVVJMICpfaW5kZXhlZERCRGF0YWJhc2VEaXJlY3Rv
cnk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSwgc2V0dGVyPV9zZXRXZWJTUUxEYXRhYmFz
ZURpcmVjdG9yeTopIE5TVVJMICpfd2ViU1FMRGF0YWJhc2VEaXJlY3Rvcnk7CiBAcHJvcGVydHkg
KG5vbmF0b21pYywgY29weSwgc2V0dGVyPV9zZXRDb29raWVTdG9yYWdlRmlsZTopIE5TVVJMICpf
Y29va2llU3RvcmFnZUZpbGU7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgY29weSwgc2V0dGVyPV9z
ZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5OikgTlNVUkwgKl9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGlyZWN0b3J5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpLCBpb3Mo
MTEuMykpOwotQHByb3BlcnR5IChub25hdG9taWMsIGNvcHksIHNldHRlcj1fc2V0Q2FjaGVTdG9y
YWdlRGlyZWN0b3J5OikgTlNVUkwgKl9jYWNoZVN0b3JhZ2VEaXJlY3RvcnkgV0tfQVBJX0FWQUlM
QUJMRShtYWNvc3goMTAuMTMuNCksIGlvcygxMS4zKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywg
Y29weSwgc2V0dGVyPV9zZXRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5OikgTlNV
UkwgKl9zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5IFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3N4KDEwLjEzLjQpLCBpb3MoMTEuMykpOwotQHByb3BlcnR5IChub25hdG9taWMsIG51bGxh
YmxlLCBjb3B5KSBOU1N0cmluZyAqc291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotQHBy
b3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5KSBOU1N0cmluZyAqc291cmNlQXBwbGlj
YXRpb25TZWNvbmRhcnlJZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19U
QkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotQHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBj
b3B5LCBzZXR0ZXI9c2V0SFRUUFByb3h5OikgTlNVUkwgKmh0dHBQcm94eSBXS19BUElfQVZBSUxB
QkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLUBwcm9wZXJ0eSAobm9u
YXRvbWljLCBudWxsYWJsZSwgY29weSwgc2V0dGVyPXNldEhUVFBTUHJveHk6KSBOU1VSTCAqaHR0
cHNQcm94eSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19U
QkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5LCBzZXR0ZXI9X3NldFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEaXJlY3Rvcnk6KSBOU1VSTCAqX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJl
Y3RvcnkgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCBjb3B5LCBzZXR0ZXI9X3NldENhY2hlU3RvcmFnZURpcmVjdG9yeTop
IE5TVVJMICpfY2FjaGVTdG9yYWdlRGlyZWN0b3J5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAu
MTMuNCksIGlvcygxMS4zKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSwgc2V0dGVyPV9z
ZXRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5OikgTlNVUkwgKl9zZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCks
IGlvcygxMS4zKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHkpIE5TU3Ry
aW5nICpzb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWlj
LCBudWxsYWJsZSwgY29weSkgTlNTdHJpbmcgKnNvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRl
bnRpZmllciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RC
QSkpOworQHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5LCBzZXR0ZXI9c2V0SFRU
UFByb3h5OikgTlNVUkwgKmh0dHBQcm94eSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19U
QkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBj
b3B5LCBzZXR0ZXI9c2V0SFRUUFNQcm94eTopIE5TVVJMICpodHRwc1Byb3h5IFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIEBlbmQKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRh
U3RvcmVEZWxlZ2F0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dl
YnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZS5oCmluZGV4IDM4MDgzYTQ0ODFhMjU1NTFjYjJiODg3N2Vh
OThjMDEwZDYxZGI2NmMuLjliMGU3MTcxMGNjMmI5YTRlYmI0Y2FmZDIwZWUzODdiYTRiYWQ3N2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRl
RGF0YVN0b3JlRGVsZWdhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLV2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlLmgKQEAgLTI3LDcgKzI3LDcgQEAKIAogI2lt
cG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CiAKLVdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpCitXS19BUElfQVZBSUxBQkxFKG1hY29zKFdL
X01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpCiBAcHJvdG9jb2wgX1dLV2Vic2l0ZURhdGFTdG9y
ZURlbGVnYXRlIDxOU09iamVjdD4KIAogQG9wdGlvbmFsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZVBvbGljaWVzLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZVBvbGljaWVzLmgKaW5kZXggMzRhMzA2
OWJjZmZhNDY5YmEwYmY4M2RhZTVjNGE4NTU3ZDVjOWQ2My4uMGQ5YjNmZmM4MTJlMDgyMzE5ZjMz
MDg5YjA3NGQ4MDlhNWQwOTY4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS1dlYnNpdGVQb2xpY2llcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlUG9saWNpZXMuaApAQCAtMzAsNDEgKzMwLDQxIEBAIHR5
cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS1dlYnNpdGVBdXRvcGxheVBvbGljeSkgewogICAg
IF9XS1dlYnNpdGVBdXRvcGxheVBvbGljeUFsbG93LAogICAgIF9XS1dlYnNpdGVBdXRvcGxheVBv
bGljeUFsbG93V2l0aG91dFNvdW5kLAogICAgIF9XS1dlYnNpdGVBdXRvcGxheVBvbGljeURlbnkK
LX0gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpOworfSBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKTsKIAogdHlwZWRlZiBOU19PUFRJT05T
KE5TVUludGVnZXIsIF9XS1dlYnNpdGVBdXRvcGxheVF1aXJrKSB7CiAgICAgX1dLV2Vic2l0ZUF1
dG9wbGF5UXVpcmtTeW50aGVzaXplZFBhdXNlRXZlbnRzID0gMSA8PCAwLAogICAgIF9XS1dlYnNp
dGVBdXRvcGxheVF1aXJrSW5oZXJpdGVkVXNlckdlc3R1cmVzID0gMSA8PCAxLAogICAgIF9XS1dl
YnNpdGVBdXRvcGxheVF1aXJrQXJiaXRyYXJ5VXNlckdlc3R1cmVzID0gMSA8PCAyLAogICAgIF9X
S1dlYnNpdGVBdXRvcGxheVF1aXJrUGVyRG9jdW1lbnRBdXRvcGxheUJlaGF2aW9yID0gMSA8PCAz
LAotfSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7Cit9IFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpOwogCiB0eXBlZGVmIE5TX09QVElP
TlMoTlNVSW50ZWdlciwgX1dLV2Vic2l0ZVBvcFVwUG9saWN5KSB7CiAgICAgX1dLV2Vic2l0ZVBv
cFVwUG9saWN5RGVmYXVsdCwKICAgICBfV0tXZWJzaXRlUG9wVXBQb2xpY3lBbGxvdywKICAgICBf
V0tXZWJzaXRlUG9wVXBQb2xpY3lCbG9jaywKLX0gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAu
MTQpLCBpb3MoMTIuMCkpOworfSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSwgaW9zKDEy
LjApKTsKIAogdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS1dlYnNpdGVEZXZpY2VP
cmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc1BvbGljeSkgewogICAgIF9XS1dlYnNpdGVEZXZpY2VP
cmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc1BvbGljeUFzaywKICAgICBfV0tXZWJzaXRlRGV2aWNl
T3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NQb2xpY3lHcmFudCwKICAgICBfV0tXZWJzaXRlRGV2
aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NQb2xpY3lEZW55LAotfSBXS19BUElfQVZBSUxB
QkxFKG1hY29zeCgxMC4xNCksIGlvcygxMi4wKSk7Cit9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTAuMTQpLCBpb3MoMTIuMCkpOwogCiBAY2xhc3MgV0tXZWJzaXRlRGF0YVN0b3JlOwogCi1XS19D
TEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEyLjMpLCBpb3MoMTAuMykpCitXS19DTEFTU19BVkFJ
TEFCTEUobWFjb3MoMTAuMTIuMyksIGlvcygxMC4zKSkKIEBpbnRlcmZhY2UgX1dLV2Vic2l0ZVBv
bGljaWVzIDogTlNPYmplY3QKIAogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgY29udGVudEJs
b2NrZXJzRW5hYmxlZDsKLUBwcm9wZXJ0eSAobm9uYXRvbWljKSBfV0tXZWJzaXRlQXV0b3BsYXlR
dWlyayBhbGxvd2VkQXV0b3BsYXlRdWlya3MgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMp
LCBpb3MoMTEuMCkpOwotQHByb3BlcnR5IChub25hdG9taWMpIF9XS1dlYnNpdGVBdXRvcGxheVBv
bGljeSBhdXRvcGxheVBvbGljeSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygx
MS4wKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgTlNEaWN0aW9uYXJ5PE5TU3RyaW5n
ICosIE5TU3RyaW5nICo+ICpjdXN0b21IZWFkZXJGaWVsZHMgV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goMTAuMTMuNCksIGlvcygxMS4zKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYykgX1dLV2Vic2l0
ZVBvcFVwUG9saWN5IHBvcFVwUG9saWN5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjE0KSwg
aW9zKDEyLjApKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzdHJvbmcpIFdLV2Vic2l0ZURhdGFT
dG9yZSAqd2Vic2l0ZURhdGFTdG9yZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSwg
aW9zKDExLjMpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSBOU1N0cmluZyAqY3VzdG9t
VXNlckFnZW50IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9T
X1RCQSkpOwotQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIE5TU3RyaW5nICpjdXN0b21KYXZh
U2NyaXB0VXNlckFnZW50QXNTaXRlU3BlY2lmaWNRdWlya3MgV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywg
Y29weSkgTlNTdHJpbmcgKmN1c3RvbU5hdmlnYXRvclBsYXRmb3JtIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotQHByb3BlcnR5IChub25hdG9t
aWMpIF9XS1dlYnNpdGVEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc1BvbGljeSBkZXZp
Y2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc1BvbGljeSBXS19BUElfQVZBSUxBQkxFKG1hY29z
eChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBf
V0tXZWJzaXRlQXV0b3BsYXlRdWlyayBhbGxvd2VkQXV0b3BsYXlRdWlya3MgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYykgX1dL
V2Vic2l0ZUF1dG9wbGF5UG9saWN5IGF1dG9wbGF5UG9saWN5IFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTAuMTMpLCBpb3MoMTEuMCkpOworQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIE5TRGlj
dGlvbmFyeTxOU1N0cmluZyAqLCBOU1N0cmluZyAqPiAqY3VzdG9tSGVhZGVyRmllbGRzIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7CitAcHJvcGVydHkgKG5vbmF0
b21pYykgX1dLV2Vic2l0ZVBvcFVwUG9saWN5IHBvcFVwUG9saWN5IFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTAuMTQpLCBpb3MoMTIuMCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHN0cm9uZykg
V0tXZWJzaXRlRGF0YVN0b3JlICp3ZWJzaXRlRGF0YVN0b3JlIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTAuMTMuNCksIGlvcygxMS4zKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgTlNT
dHJpbmcgKmN1c3RvbVVzZXJBZ2VudCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIE5TU3RyaW5n
ICpjdXN0b21KYXZhU2NyaXB0VXNlckFnZW50QXNTaXRlU3BlY2lmaWNRdWlya3MgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAo
bm9uYXRvbWljLCBjb3B5KSBOU1N0cmluZyAqY3VzdG9tTmF2aWdhdG9yUGxhdGZvcm0gV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0
eSAobm9uYXRvbWljKSBfV0tXZWJzaXRlRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NQ
b2xpY3kgZGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NQb2xpY3kgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogQGVuZApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3MuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzLmgKaW5kZXgg
OWMyNDJlZDM2ZjUwNDIyNDA1NGU3MDU5MjgwNDE4ODIyNTRjNTRhNS4uNzJjYTAzM2NmNzliYWUx
YmQ2Zjc0MDgwNGY4OWU4NDBlZjNkODcxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViUHJvY2Vzcy5oCkBAIC0zMiw3ICszMiw3IEBACiBleHRlcm4g
IkMiIHsKICNlbmRpZgogCi1XS19FWFBPUlQgaW50IFdLV2ViUHJvY2Vzc01haW4oaW50IGFyZ2Ms
IGNvbnN0IGNoYXIqKiBhcmd2KSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEpKTsKK1dLX0VYUE9SVCBpbnQgV0tXZWJQcm9jZXNzTWFpbihpbnQgYXJn
YywgY29uc3QgY2hhcioqIGFyZ3YpIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBKSk7CiAKICNpZmRlZiBfX2NwbHVzcGx1cwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlBy
b2Nlc3NQbHVnSW5FZGl0aW5nRGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luRWRpdGluZ0RlbGVnYXRl
LmgKaW5kZXggMWNlNWY2Y2Q1ZDgzZjk1ZTNmN2IxYjUwZTk2NjM4OWRhMDA4OTExMC4uMTBhM2E0
ZWVmYmQ0ZjNmN2FlZDA2OTFjYTRmNmVmZmEyNjViNGIyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVn
SW5FZGl0aW5nRGVsZWdhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkVkaXRpbmdEZWxlZ2F0ZS5oCkBA
IC00MSw5ICs0MSw5IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIFdLRWRpdG9ySW5zZXJ0
QWN0aW9uKSB7CiAgICAgV0tFZGl0b3JJbnNlcnRBY3Rpb25UeXBlZCwKICAgICBXS0VkaXRvcklu
c2VydEFjdGlvblBhc3RlZCwKICAgICBXS0VkaXRvckluc2VydEFjdGlvbkRyb3BwZWQsCi19IFdL
X0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyLjMpLCBpb3MoMTAuMykpOworfSBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjEyLjMpLCBpb3MoMTAuMykpOwogCi1XS19BUElfQVZBSUxBQkxFKG1h
Y29zeCgxMC4xMi4zKSwgaW9zKDEwLjMpKQorV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMi4z
KSwgaW9zKDEwLjMpKQogQHByb3RvY29sIFdLV2ViUHJvY2Vzc1BsdWdJbkVkaXRpbmdEZWxlZ2F0
ZSA8TlNPYmplY3Q+CiAKIEBvcHRpb25hbApAQCAtNTIsMTMgKzUyLDEzIEBAIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KDEwLjEyLjMpLCBpb3MoMTAuMykpCiAjaWYgVEFSR0VUX09TX0lQSE9ORQog
LSAoQk9PTClfd2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlcjooV0tXZWJQ
cm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyICopY29udHJvbGxlciBzaG91bGRD
aGFuZ2VTZWxlY3RlZFJhbmdlOihXS0RPTVJhbmdlICopY3VycmVudFJhbmdlIHRvUmFuZ2U6KFdL
RE9NUmFuZ2UgKilwcm9wb3NlZFJhbmdlIGFmZmluaXR5OihVSVRleHRTdG9yYWdlRGlyZWN0aW9u
KXNlbGVjdGlvbkFmZmluaXR5IHN0aWxsU2VsZWN0aW5nOihCT09MKXN0aWxsU2VsZWN0aW5nIFdL
X0FQSV9BVkFJTEFCTEUoaW9zKDExLjApKTsKICNlbHNlCi0tIChCT09MKV93ZWJQcm9jZXNzUGx1
Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyOihXS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29u
dGV4dENvbnRyb2xsZXIgKiljb250cm9sbGVyIHNob3VsZENoYW5nZVNlbGVjdGVkUmFuZ2U6KFdL
RE9NUmFuZ2UgKiljdXJyZW50UmFuZ2UgdG9SYW5nZTooV0tET01SYW5nZSAqKXByb3Bvc2VkUmFu
Z2UgYWZmaW5pdHk6KE5TU2VsZWN0aW9uQWZmaW5pdHkpc2VsZWN0aW9uQWZmaW5pdHkgc3RpbGxT
ZWxlY3Rpbmc6KEJPT0wpc3RpbGxTZWxlY3RpbmcgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAu
MTMpKTsKKy0gKEJPT0wpX3dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXI6
KFdLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlciAqKWNvbnRyb2xsZXIg
c2hvdWxkQ2hhbmdlU2VsZWN0ZWRSYW5nZTooV0tET01SYW5nZSAqKWN1cnJlbnRSYW5nZSB0b1Jh
bmdlOihXS0RPTVJhbmdlICopcHJvcG9zZWRSYW5nZSBhZmZpbml0eTooTlNTZWxlY3Rpb25BZmZp
bml0eSlzZWxlY3Rpb25BZmZpbml0eSBzdGlsbFNlbGVjdGluZzooQk9PTClzdGlsbFNlbGVjdGlu
ZyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSk7CiAjZW5kaWYKIC0gKHZvaWQpX3dlYlBy
b2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXJEaWRDaGFuZ2VCeUVkaXRpbmc6KFdL
V2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlciAqKWNvbnRyb2xsZXI7CiAt
ICh2b2lkKV93ZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyOihXS1dlYlBy
b2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIgKiljb250cm9sbGVyIHdpbGxXcml0
ZVJhbmdlVG9QYXN0ZWJvYXJkOihXS1dlYlByb2Nlc3NQbHVnSW5SYW5nZUhhbmRsZSAqKXJhbmdl
OwogLSAoTlNEaWN0aW9uYXJ5PE5TU3RyaW5nICosIE5TRGF0YSAqPiAqKV93ZWJQcm9jZXNzUGx1
Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyOihXS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29u
dGV4dENvbnRyb2xsZXIgKiljb250cm9sbGVyIHBhc3RlYm9hcmREYXRhRm9yUmFuZ2U6KFdLV2Vi
UHJvY2Vzc1BsdWdJblJhbmdlSGFuZGxlICopcmFuZ2U7CiAtICh2b2lkKV93ZWJQcm9jZXNzUGx1
Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyRGlkV3JpdGVUb1Bhc3RlYm9hcmQ6KFdLV2ViUHJv
Y2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlciAqKWNvbnRyb2xsZXI7Ci0tIChCT09M
KV93ZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyOihXS1dlYlByb2Nlc3NQ
bHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIgKiljb250cm9sbGVyIHBlcmZvcm1Ud29TdGVw
RHJvcDooV0tXZWJQcm9jZXNzUGx1Z0luTm9kZUhhbmRsZSAqKWZyYWdtZW50IGF0RGVzdGluYXRp
b246KFdLV2ViUHJvY2Vzc1BsdWdJblJhbmdlSGFuZGxlICopZGVzdGluYXRpb24gaXNNb3ZlOihC
T09MKWlzTW92ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7Cist
IChCT09MKV93ZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyOihXS1dlYlBy
b2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIgKiljb250cm9sbGVyIHBlcmZvcm1U
d29TdGVwRHJvcDooV0tXZWJQcm9jZXNzUGx1Z0luTm9kZUhhbmRsZSAqKWZyYWdtZW50IGF0RGVz
dGluYXRpb246KFdLV2ViUHJvY2Vzc1BsdWdJblJhbmdlSGFuZGxlICopZGVzdGluYXRpb24gaXNN
b3ZlOihCT09MKWlzTW92ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjAp
KTsKIAogQGVuZAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJ
bkZyYW1lLmgKaW5kZXggZjQ0ZDAwMjJiZDRkYzk0NDEwYmY5MmYwZTIyYjdjNWJjNTk5OTM4YS4u
MGMwYzk1OTNkMDk2ODdhNGQwOGRmNjhlZWIyN2YxNWZmMTk3MTJiMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nl
c3NQbHVnSW5GcmFtZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUuaApAQCAtMzUsNyArMzUsNyBA
QAogQGNsYXNzIFdLV2ViUHJvY2Vzc1BsdWdJblJhbmdlSGFuZGxlOwogQGNsYXNzIFdLV2ViUHJv
Y2Vzc1BsdWdJblNjcmlwdFdvcmxkOwogCi1XS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEw
KSwgaW9zKDguMCkpCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4wKSkK
IEBpbnRlcmZhY2UgV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUgOiBOU09iamVjdAogCiBAcHJvcGVy
dHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TVVJMICpVUkw7CkBAIC00NiwxMiArNDYsMTIgQEAg
V0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQogCiAvLyBSZXR1cm5z
IFVSTHMgb3JkZXJlZCBieSByZXNvbHV0aW9uIGluIGRlc2NlbmRpbmcgb3JkZXIuCiAvLyBGSVhN
RTogVGhlc2Ugc2hvdWxkIGJlIHRhZ2dlZCBub25udWxsLgotQHByb3BlcnR5IChub25hdG9taWMs
IHJlYWRvbmx5KSBOU0FycmF5PE5TVVJMICo+ICphcHBsZVRvdWNoSWNvblVSTHMgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3MoMTAuMCkpOwotQHByb3BlcnR5IChub25hdG9taWMs
IHJlYWRvbmx5KSBOU0FycmF5PE5TVVJMICo+ICpmYXZpY29uVVJMcyBXS19BUElfQVZBSUxBQkxF
KG1hY29zeCgxMC4xMiksIGlvcygxMC4wKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9u
bHkpIE5TQXJyYXk8TlNVUkwgKj4gKmFwcGxlVG91Y2hJY29uVVJMcyBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25s
eSkgTlNBcnJheTxOU1VSTCAqPiAqZmF2aWNvblVSTHMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygx
MC4xMiksIGlvcygxMC4wKSk7CiAKIC0gKEpTQ29udGV4dCAqKWpzQ29udGV4dEZvcldvcmxkOihX
S1dlYlByb2Nlc3NQbHVnSW5TY3JpcHRXb3JsZCAqKXdvcmxkOwogLSAoV0tXZWJQcm9jZXNzUGx1
Z0luSGl0VGVzdFJlc3VsdCAqKWhpdFRlc3Q6KENHUG9pbnQpcG9pbnQ7CiAtIChKU1ZhbHVlICop
anNOb2RlRm9yTm9kZUhhbmRsZTooV0tXZWJQcm9jZXNzUGx1Z0luTm9kZUhhbmRsZSAqKW5vZGVI
YW5kbGUgaW5Xb3JsZDooV0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0V29ybGQgKil3b3JsZDsKLS0g
KEpTVmFsdWUgKilqc1JhbmdlRm9yUmFuZ2VIYW5kbGU6KFdLV2ViUHJvY2Vzc1BsdWdJblJhbmdl
SGFuZGxlICopcmFuZ2VIYW5kbGUgaW5Xb3JsZDooV0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0V29y
bGQgKil3b3JsZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMi4zKSwgaW9zKDEwLjMpKTsK
Ky0gKEpTVmFsdWUgKilqc1JhbmdlRm9yUmFuZ2VIYW5kbGU6KFdLV2ViUHJvY2Vzc1BsdWdJblJh
bmdlSGFuZGxlICopcmFuZ2VIYW5kbGUgaW5Xb3JsZDooV0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0
V29ybGQgKil3b3JsZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyLjMpLCBpb3MoMTAuMykp
OwogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkhpdFRlc3RSZXN1bHQuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNz
UGx1Z0luSGl0VGVzdFJlc3VsdC5oCmluZGV4IDJlNGRjMTk4NDFhYzkyOWVmMGFmMDg4YTBmMDY1
M2Q4OWY4ZWNjMTkuLmVlODZhYmQ5N2QyNDcyZDkxNGM5YzNjY2Q2YWQ1ZGI4YzE3ZjUxZGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29j
b2EvV0tXZWJQcm9jZXNzUGx1Z0luSGl0VGVzdFJlc3VsdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luSGl0
VGVzdFJlc3VsdC5oCkBAIC0yOSw3ICsyOSw3IEBACiAKIEBjbGFzcyBXS1dlYlByb2Nlc3NQbHVn
SW5Ob2RlSGFuZGxlOwogCi1XS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDgu
MCkpCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4wKSkKIEBpbnRlcmZh
Y2UgV0tXZWJQcm9jZXNzUGx1Z0luSGl0VGVzdFJlc3VsdCA6IE5TT2JqZWN0CiAKIEBwcm9wZXJ0
eSAocmVhZG9ubHkpIFdLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGUgKm5vZGVIYW5kbGU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0Nv
Y29hL1dLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luTm9kZUhhbmRs
ZS5oCmluZGV4IDExMWJhMTJmNzI2ODg2YTc3Y2U5MTM1NmM1OWU4ODg3ZmJhZGU2ZTQuLmI3MzNl
OWU4M2M2MTE3Y2IxOWYyYWQyMGNlMmZlYzRkOGU3N2NjY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1
Z0luTm9kZUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luTm9kZUhhbmRsZS5oCkBAIC0zNSw3ICsz
NSw3IEBACiAKIEBjbGFzcyBXS1dlYlByb2Nlc3NQbHVnSW5GcmFtZTsKIAotV0tfQ0xBU1NfQVZB
SUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29z
KDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIFdLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5k
bGUgOiBOU09iamVjdAogCiArIChXS1dlYlByb2Nlc3NQbHVnSW5Ob2RlSGFuZGxlICopbm9kZUhh
bmRsZVdpdGhKU1ZhbHVlOihKU1ZhbHVlICopdmFsdWUgaW5Db250ZXh0OihKU0NvbnRleHQgKilj
b250ZXh0OwpAQCAtNDUsOCArNDUsOCBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEw
KSwgaW9zKDguMCkpCiAtIChVSUltYWdlICopcmVuZGVyZWRJbWFnZVdpdGhPcHRpb25zOihXS1Nu
YXBzaG90T3B0aW9ucylvcHRpb25zIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDkuMCkpOwogLSAoVUlJ
bWFnZSAqKXJlbmRlcmVkSW1hZ2VXaXRoT3B0aW9uczooV0tTbmFwc2hvdE9wdGlvbnMpb3B0aW9u
cyB3aWR0aDooTlNOdW1iZXIgKil3aWR0aCBXS19BUElfQVZBSUxBQkxFKGlvcygxMS4wKSk7CiAj
ZWxzZQotLSAoTlNJbWFnZSAqKXJlbmRlcmVkSW1hZ2VXaXRoT3B0aW9uczooV0tTbmFwc2hvdE9w
dGlvbnMpb3B0aW9ucyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSkpOwotLSAoTlNJbWFn
ZSAqKXJlbmRlcmVkSW1hZ2VXaXRoT3B0aW9uczooV0tTbmFwc2hvdE9wdGlvbnMpb3B0aW9ucyB3
aWR0aDooTlNOdW1iZXIgKil3aWR0aCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMykpOwor
LSAoTlNJbWFnZSAqKXJlbmRlcmVkSW1hZ2VXaXRoT3B0aW9uczooV0tTbmFwc2hvdE9wdGlvbnMp
b3B0aW9ucyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjExKSk7CistIChOU0ltYWdlICopcmVu
ZGVyZWRJbWFnZVdpdGhPcHRpb25zOihXS1NuYXBzaG90T3B0aW9ucylvcHRpb25zIHdpZHRoOihO
U051bWJlciAqKXdpZHRoIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpKTsKICNlbmRpZgog
CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIENHUmVjdCBlbGVtZW50Qm91bmRzOwpA
QCAtNTUsNyArNTUsNyBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDgu
MCkpCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgSFRNTFRleHRBcmVhRWxl
bWVudElzVXNlckVkaXRlZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgV0tXZWJQ
cm9jZXNzUGx1Z0luTm9kZUhhbmRsZSAqSFRNTFRhYmxlQ2VsbEVsZW1lbnRDZWxsQWJvdmU7CiBA
cHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lICpm
cmFtZTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBpc1NlbGVjdEVsZW1l
bnQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7
CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgaXNTZWxlY3RFbGVtZW50IFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIC0g
KEJPT0wpaXNUZXh0RmllbGQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luTm9kZUhhbmRsZVBy
aXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29j
b2EvV0tXZWJQcm9jZXNzUGx1Z0luTm9kZUhhbmRsZVByaXZhdGUuaAppbmRleCBjYTkwZGUzNGNk
NmYxZjg5Yjc0YWNjZjMwNjg4NWEzZDkzMzU2OGQ1Li4xNTRjNGRiYWJhZjU0YTVkZmE5ODUzN2I1
NjI4MzRhZmIwNjk5ZDAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGVQcml2YXRl
LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2Nv
YS9XS1dlYlByb2Nlc3NQbHVnSW5Ob2RlSGFuZGxlUHJpdmF0ZS5oCkBAIC0zMCwxNCArMzAsMTQg
QEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLQXV0b0ZpbGxCdXR0b25UeXBlKSB7CiAg
ICAgX1dLQXV0b0ZpbGxCdXR0b25UeXBlQ3JlZGVudGlhbHMsCiAgICAgX1dLQXV0b0ZpbGxCdXR0
b25UeXBlQ29udGFjdHMsCiAgICAgX1dLQXV0b0ZpbGxCdXR0b25UeXBlU3Ryb25nUGFzc3dvcmQs
Ci0gICAgX1dLQXV0b0ZpbGxCdXR0b25UeXBlQ3JlZGl0Q2FyZCBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKSwKLX0gV0tfQVBJX0FWQUlMQUJMRSht
YWNvc3goMTAuMTMuNCksIGlvcygxMS4zKSk7CisgICAgX1dLQXV0b0ZpbGxCdXR0b25UeXBlQ3Jl
ZGl0Q2FyZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RC
QSkpLAorfSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOwogCiBA
aW50ZXJmYWNlIFdLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGUgKFdLUHJpdmF0ZSkKIAotLSAo
Qk9PTClpc0hUTUxJbnB1dEVsZW1lbnRBdXRvRmlsbEJ1dHRvbkVuYWJsZWQgV0tfQVBJX0FWQUlM
QUJMRShtYWNvc3goMTAuMTMuNCksIGlvcygxMS4zKSk7Ci0tICh2b2lkKXNldEhUTUxJbnB1dEVs
ZW1lbnRBdXRvRmlsbEJ1dHRvbkVuYWJsZWRXaXRoQnV0dG9uVHlwZTooX1dLQXV0b0ZpbGxCdXR0
b25UeXBlKWF1dG9GaWxsQnV0dG9uVHlwZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40
KSwgaW9zKDExLjMpKTsKLS0gKF9XS0F1dG9GaWxsQnV0dG9uVHlwZSlodG1sSW5wdXRFbGVtZW50
QXV0b0ZpbGxCdXR0b25UeXBlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpLCBpb3Mo
MTEuMykpOwotLSAoX1dLQXV0b0ZpbGxCdXR0b25UeXBlKWh0bWxJbnB1dEVsZW1lbnRMYXN0QXV0
b0ZpbGxCdXR0b25UeXBlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpLCBpb3MoMTEu
MykpOworLSAoQk9PTClpc0hUTUxJbnB1dEVsZW1lbnRBdXRvRmlsbEJ1dHRvbkVuYWJsZWQgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKKy0gKHZvaWQpc2V0SFRN
TElucHV0RWxlbWVudEF1dG9GaWxsQnV0dG9uRW5hYmxlZFdpdGhCdXR0b25UeXBlOihfV0tBdXRv
RmlsbEJ1dHRvblR5cGUpYXV0b0ZpbGxCdXR0b25UeXBlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTAuMTMuNCksIGlvcygxMS4zKSk7CistIChfV0tBdXRvRmlsbEJ1dHRvblR5cGUpaHRtbElucHV0
RWxlbWVudEF1dG9GaWxsQnV0dG9uVHlwZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQp
LCBpb3MoMTEuMykpOworLSAoX1dLQXV0b0ZpbGxCdXR0b25UeXBlKWh0bWxJbnB1dEVsZW1lbnRM
YXN0QXV0b0ZpbGxCdXR0b25UeXBlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlv
cygxMS4zKSk7CiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3VwLmggYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJv
Y2Vzc1BsdWdJblBhZ2VHcm91cC5oCmluZGV4IGYzZmQxNzM5YzAzMjhjOWJmNGVhODczZjIyYTk1
OTU3YTBiYTUzZDguLmZhNjQ0ODI2Y2ZkZGRjNDAyYTJlZjg1Y2QwMjYzNzVhZGYyYTExZDYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29j
b2EvV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3VwLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5QYWdlR3Jv
dXAuaApAQCAtMjcsNyArMjcsNyBAQAogCiAjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24u
aD4KIAotV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQorV0tfQ0xB
U1NfQVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIFdLV2ViUHJv
Y2Vzc1BsdWdJblBhZ2VHcm91cCA6IE5TT2JqZWN0CiAKIEBwcm9wZXJ0eSAocmVhZG9ubHkpIE5T
U3RyaW5nICppZGVudGlmaWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5SYW5nZUhhbmRsZS5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dl
YlByb2Nlc3NQbHVnSW5SYW5nZUhhbmRsZS5oCmluZGV4IDcwZGNiNjY5YjkwYmVkNjNiZDk5N2Ex
ODA0NzI3NTA3OGMyOWRiMWQuLjdiMWYyODk2ZTc3ZGJjYjkwM2Q3NzQwOGRhZjQ2OWI3YWNkMGY0
ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luUmFuZ2VIYW5kbGUuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJ
blJhbmdlSGFuZGxlLmgKQEAgLTMxLDEzICszMSwxMyBAQAogCiBAY2xhc3MgV0tXZWJQcm9jZXNz
UGx1Z0luRnJhbWU7CiAKLVdLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTIuMyksIGlvcygx
MC4zKSkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4xMi4zKSwgaW9zKDEwLjMpKQogQGlu
dGVyZmFjZSBXS1dlYlByb2Nlc3NQbHVnSW5SYW5nZUhhbmRsZSA6IE5TT2JqZWN0CiAKICsgKFdL
V2ViUHJvY2Vzc1BsdWdJblJhbmdlSGFuZGxlICopcmFuZ2VIYW5kbGVXaXRoSlNWYWx1ZTooSlNW
YWx1ZSAqKXZhbHVlIGluQ29udGV4dDooSlNDb250ZXh0ICopY29udGV4dDsKIAogQHByb3BlcnR5
IChub25hdG9taWMsIHJlYWRvbmx5KSBXS1dlYlByb2Nlc3NQbHVnSW5GcmFtZSAqZnJhbWU7Ci1A
cHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGNvcHkpIE5TU3RyaW5nICp0ZXh0IFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzKSwgaW9zKDExLjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRv
bWljLCByZWFkb25seSwgY29weSkgTlNTdHJpbmcgKnRleHQgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMC4xMyksIGlvcygxMS4wKSk7CiAKICNpZiBUQVJHRVRfT1NfSVBIT05FCiAtIChOU0FycmF5
ICopZGV0ZWN0RGF0YVdpdGhUeXBlczooV0tEYXRhRGV0ZWN0b3JUeXBlcyl0eXBlcyBjb250ZXh0
OihOU0RpY3Rpb25hcnkgKiljb250ZXh0IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDExLjApKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29j
b2EvV0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0V29ybGQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0V29y
bGQuaAppbmRleCBhNTEzZTdiZTRhYjM1YjI4NzcyOTdlMjQ3NGQ3OTkzYmJlYWJiNWUzLi5hYWQ5
YTY0NjhhYjM1MjQxMGI1NGQyMmU4MTY2NzU1OTJhNWY3ZWRkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1Bs
dWdJblNjcmlwdFdvcmxkLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5TY3JpcHRXb3JsZC5oCkBAIC0yNyw3
ICsyNyw3IEBACiAKICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgogCi1XS19DTEFT
U19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCitXS19DTEFTU19BVkFJTEFCTEUo
bWFjb3MoMTAuMTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2UgV0tXZWJQcm9jZXNzUGx1Z0luU2Ny
aXB0V29ybGQgOiBOU09iamVjdAogCiArIChXS1dlYlByb2Nlc3NQbHVnSW5TY3JpcHRXb3JsZCAq
KXdvcmxkOwpAQCAtMzYsNyArMzYsNyBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEw
KSwgaW9zKDguMCkpCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGNvcHkpIE5TU3Ry
aW5nICpuYW1lOwogCiAtICh2b2lkKWNsZWFyV3JhcHBlcnM7Ci0tICh2b2lkKW1ha2VBbGxTaGFk
b3dSb290c09wZW4gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3MoMTAuMCkpOwot
LSAodm9pZClkaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3N4KDEwLjE0KSwgaW9zKDEyLjApKTsKKy0gKHZvaWQpbWFrZUFsbFNoYWRvd1Jvb3RzT3Bl
biBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKKy0gKHZvaWQpZGlz
YWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0
KSwgaW9zKDEyLjApKTsKIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01Eb2N1bWVudC5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01Eb2N1bWVudC5oCmluZGV4
IGE1ZmM5Zjg1MDk1ZWFhNzk1Yzk0OTVhMmNhNzVmZmZmZjc2ZmQ1YmYuLmIyNTM0ZGY0ZThhOWI2
YzhhMWZlZTRiZWFmOTZiY2FlZDE1ZDljMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NRG9jdW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTURvY3VtZW50
LmgKQEAgLTMwLDE2ICszMCwxNiBAQAogQGNsYXNzIFdLRE9NRWxlbWVudDsKIEBjbGFzcyBXS0RP
TVRleHQ7CiAKLVdLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKK1dL
X0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBXS0RP
TURvY3VtZW50IDogV0tET01Ob2RlCiAKIC0gKFdLRE9NRWxlbWVudCAqKWNyZWF0ZUVsZW1lbnQ6
KE5TU3RyaW5nICopdGFnTmFtZTsKIC0gKFdLRE9NVGV4dCAqKWNyZWF0ZVRleHROb2RlOihOU1N0
cmluZyAqKWRhdGE7Ci0tIChXS0RPTU5vZGUgKiljcmVhdGVEb2N1bWVudEZyYWdtZW50V2l0aE1h
cmt1cFN0cmluZzooTlNTdHJpbmcgKiltYXJrdXBTdHJpbmcgYmFzZVVSTDooTlNVUkwgKiliYXNl
VVJMIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpLCBpb3MoMTEuMykpOwotLSAoV0tE
T01Ob2RlICopY3JlYXRlRG9jdW1lbnRGcmFnbWVudFdpdGhUZXh0OihOU1N0cmluZyAqKXRleHQg
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCksIGlvcygxMS4zKSk7CistIChXS0RPTU5v
ZGUgKiljcmVhdGVEb2N1bWVudEZyYWdtZW50V2l0aE1hcmt1cFN0cmluZzooTlNTdHJpbmcgKilt
YXJrdXBTdHJpbmcgYmFzZVVSTDooTlNVUkwgKiliYXNlVVJMIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTAuMTMuNCksIGlvcygxMS4zKSk7CistIChXS0RPTU5vZGUgKiljcmVhdGVEb2N1bWVudEZy
YWdtZW50V2l0aFRleHQ6KE5TU3RyaW5nICopdGV4dCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEw
LjEzLjQpLCBpb3MoMTEuMykpOwogCiBAcHJvcGVydHkocmVhZG9ubHkpIFdLRE9NRWxlbWVudCAq
Ym9keTsKIAotLSAoaWQpcGFyc2VyWWllbGRUb2tlbiBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgx
MC4xNCksIGlvcygxMi4wKSk7CistIChpZClwYXJzZXJZaWVsZFRva2VuIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTAuMTQpLCBpb3MoMTIuMCkpOwogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTUVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NRWxl
bWVudC5oCmluZGV4IGRhNGNmOGYwMjEyY2JlMGY3MDY5ZGUzMmQ1MTlkM2NjYjk3MjgxZjQuLjc2
NDk4MjFmYmJhZDhmYTRhNWU4MDM5YzYxMTU1NjNiMzRlNDEzNDUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dL
RE9NRWxlbWVudC5oCkBAIC0yNyw3ICsyNyw3IEBACiAKICNpbXBvcnQgPFdlYktpdC9XS0RPTU5v
ZGUuaD4KIAotV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQorV0tf
Q0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIFdLRE9N
RWxlbWVudCA6IFdLRE9NTm9kZQogCiAtIChCT09MKWhhc0F0dHJpYnV0ZTooTlNTdHJpbmcgKilh
dHRyaWJ1dGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL21hYy9XS0RPTU5vZGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NTm9kZS5oCmluZGV4IDUwNjZjZTNmYzFjZjQwY2ZhODBj
NzI3NzMxNmY4YmQ3MWVlYTliOGQuLjhmMDA4ZGI1Y2FiY2UwNTg2MGU4MzZjNTFjMjAwN2ZmNDZh
ZDliODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvbWFjL1dLRE9NTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NTm9kZS5oCkBAIC0yOSw3ICsyOSw3IEBACiAKIEBjbGFz
cyBXS0RPTURvY3VtZW50OwogCi1XS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9z
KDguMCkpCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4wKSkKIEBpbnRl
cmZhY2UgV0tET01Ob2RlIDogTlNPYmplY3QKIAogLSAodm9pZClpbnNlcnROb2RlOihXS0RPTU5v
ZGUgKilub2RlIGJlZm9yZTooV0tET01Ob2RlICopcmVmTm9kZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NUmFuZ2UuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NUmFu
Z2UuaAppbmRleCBmOWMyMjM0ZTI0MTVhZTVmNGI1MGVkZjdjNzQ3MzUwY2YyN2M3YzVjLi5jYTI2
NzAyNDY1YmQ2NzJjNTExNzNhZWQwMjVjOTdkZThkZWEwNzNjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTVJhbmdlLmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01S
YW5nZS5oCkBAIC0zNSw3ICszNSw3IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIFdLRE9N
UmFuZ2VEaXJlY3Rpb24pIHsKIH07CiAKIAotV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4x
MCksIGlvcyg4LjApKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDguMCkp
CiBAaW50ZXJmYWNlIFdLRE9NUmFuZ2UgOiBOU09iamVjdAogCiAtIChpZClpbml0V2l0aERvY3Vt
ZW50OihXS0RPTURvY3VtZW50ICopZG9jdW1lbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTVRleHQuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NVGV4dC5oCmluZGV4
IGUzODE5ZDlhNTczNDgwZDI0NTk1OTNlODExYzhiYzZmZDRhNTMyMGYuLmMxZWY5ZDAwOWU2MjEz
ODFiZjQ4NjBkMWY1MTgxZTc1MjRhZGM5ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NVGV4dC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NVGV4dC5oCkBAIC0y
Nyw3ICsyNyw3IEBACiAKICNpbXBvcnQgPFdlYktpdC9XS0RPTU5vZGUuaD4KIAotV0tfQ0xBU1Nf
QVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1h
Y29zKDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIFdLRE9NVGV4dCA6IFdLRE9NTm9kZQog
CiBAcHJvcGVydHkobm9uYXRvbWljLCBjb3B5KSBOU1N0cmluZyAqZGF0YTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NVGV4
dEl0ZXJhdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L21hYy9XS0RPTVRleHRJdGVyYXRvci5oCmluZGV4IDUzNGEyOWIxMzIxYzY1ZTM0OTEwMGYzZjUx
YThiNjM2NzM4ZmY0NDguLjc2OWJmODkzYTRlNDkzYmUzMmJlMWM0Yjc0YWYyNTNlODJmMmU5OWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
bWFjL1dLRE9NVGV4dEl0ZXJhdG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01UZXh0SXRlcmF0b3IuaApAQCAtMjksNyArMjksNyBA
QAogCiBAY2xhc3MgV0tET01SYW5nZTsKIAotV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4x
MCksIGlvcyg4LjApKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDguMCkp
CiBAaW50ZXJmYWNlIFdLRE9NVGV4dEl0ZXJhdG9yIDogTlNPYmplY3QKIAogLSAoaWQpaW5pdFdp
dGhSYW5nZTooV0tET01SYW5nZSAqKXJhbmdlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luLmggYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nl
c3NQbHVnSW4uaAppbmRleCBkN2RmZjYxMjIyOTNhMWM0MmIwNzgyODJjN2UzYmM0M2NmMjZlMmU2
Li44ZmI0NjcxYTVmMjIwMzg5ZDhjNTI2ODZiMTc0Njg1Njk0MTQwYzI1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nl
c3NQbHVnSW4uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL21hYy9XS1dlYlByb2Nlc3NQbHVnSW4uaApAQCAtMzksOSArMzksOSBAQAogLSAodm9pZCl3
ZWJQcm9jZXNzUGx1Z0luOihXS1dlYlByb2Nlc3NQbHVnSW5Db250cm9sbGVyICopcGx1Z0luQ29u
dHJvbGxlciB3aWxsRGVzdHJveUJyb3dzZXJDb250ZXh0Q29udHJvbGxlcjooV0tXZWJQcm9jZXNz
UGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyICopYnJvd3NlckNvbnRleHRDb250cm9sbGVy
OwogQGVuZAogCi1XS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCitX
S19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2UgV0tX
ZWJQcm9jZXNzUGx1Z0luQ29udHJvbGxlciA6IE5TT2JqZWN0Ci0tICh2b2lkKWV4dGVuZENsYXNz
ZXNGb3JQYXJhbWV0ZXJDb2RlcjooTlNBcnJheSAqKWNsYXNzZXMgV0tfQVBJX0FWQUlMQUJMRSht
YWNvc3goMTAuMTQpLCBpb3MoMTIuMCkpOworLSAodm9pZClleHRlbmRDbGFzc2VzRm9yUGFyYW1l
dGVyQ29kZXI6KE5TQXJyYXkgKiljbGFzc2VzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQp
LCBpb3MoMTIuMCkpOwogCiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAogI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9X
S1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJbkJy
b3dzZXJDb250ZXh0Q29udHJvbGxlci5oCmluZGV4IGYwNmZkNzU2Nzk3MTlmOTg2NjllMWNhMmM2
YjAwYjQxY2I3OWUxNzUuLmIwZWQ3NGY4Y2IyMWRjNjU4YWU5OWYwZDgyOTVhYzIzMzVmNmNmNTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
bWFjL1dLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlci5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vz
c1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlci5oCkBAIC0zMyw3ICszMyw3IEBACiBAY2xh
c3MgV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3VwOwogQHByb3RvY29sIFdLV2ViUHJvY2Vzc1Bs
dWdJbkxvYWREZWxlZ2F0ZTsKIAotV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlv
cyg4LjApKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDguMCkpCiBAaW50
ZXJmYWNlIFdLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlciA6IE5TT2Jq
ZWN0CiAKIEBwcm9wZXJ0eSAocmVhZG9ubHkpIFdLRE9NRG9jdW1lbnQgKm1haW5GcmFtZURvY3Vt
ZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyUHJpdmF0
ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tX
ZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyUHJpdmF0ZS5oCmluZGV4IDkz
YmU4ZTVjMTE2MWRkOWEzOWIzNzRhNmFhMTI1OGRhMDAzMzYwMzUuLjExOTExODM4ZDkwMjdmNDY3
MmIxODEzNDUyZDU3ZmM3ODYwZGQ0NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250
ZXh0Q29udHJvbGxlclByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRy
b2xsZXJQcml2YXRlLmgKQEAgLTQxLDkgKzQxLDkgQEAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBy
ZWFkb25seSkgX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkgKl9yZW1vdGVPYmplY3RSZWdpc3RyeTsK
IAogQHByb3BlcnR5ICh3ZWFrLCBzZXR0ZXI9X3NldEZvcm1EZWxlZ2F0ZTopIGlkIDxXS1dlYlBy
b2Nlc3NQbHVnSW5Gb3JtRGVsZWdhdGVQcml2YXRlPiBfZm9ybURlbGVnYXRlOwotQHByb3BlcnR5
ICh3ZWFrLCBzZXR0ZXI9X3NldEVkaXRpbmdEZWxlZ2F0ZTopIGlkIDxXS1dlYlByb2Nlc3NQbHVn
SW5FZGl0aW5nRGVsZWdhdGU+IF9lZGl0aW5nRGVsZWdhdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goMTAuMTIuMyksIGlvcygxMC4zKSk7CitAcHJvcGVydHkgKHdlYWssIHNldHRlcj1fc2V0RWRp
dGluZ0RlbGVnYXRlOikgaWQgPFdLV2ViUHJvY2Vzc1BsdWdJbkVkaXRpbmdEZWxlZ2F0ZT4gX2Vk
aXRpbmdEZWxlZ2F0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyLjMpLCBpb3MoMTAuMykp
OwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXREZWZlcnNMb2FkaW5nOikgQk9P
TCBfZGVmZXJzTG9hZGluZyBXS19BUElfREVQUkVDQVRFRCgiTm8gbG9uZ2VyIHN1cHBvcnRlZCIs
IG1hY29zeCgxMC4xMCwgV0tfTUFDX1RCQSksIGlvcyg4LjAsIFdLX0lPU19UQkEpKTsKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldERlZmVyc0xvYWRpbmc6KSBCT09MIF9kZWZlcnNM
b2FkaW5nIFdLX0FQSV9ERVBSRUNBVEVEKCJObyBsb25nZXIgc3VwcG9ydGVkIiwgbWFjb3MoMTAu
MTAsIFdLX01BQ19UQkEpLCBpb3MoOC4wLCBXS19JT1NfVEJBKSk7CiAKIEBwcm9wZXJ0eSAobm9u
YXRvbWljLCByZWFkb25seSkgQk9PTCBfdXNlc05vblBlcnNpc3RlbnRXZWJzaXRlRGF0YVN0b3Jl
OwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>