<?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>169961</bug_id>
          
          <creation_ts>2017-03-22 10:12:40 -0700</creation_ts>
          <short_desc>[QuickLook] Rename QuickLookHandle to PreviewLoader</short_desc>
          <delta_ts>2017-03-31 08:53:49 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>170342</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andy Estes">aestes</reporter>
          <assigned_to name="Andy Estes">aestes</assigned_to>
          <cc>achristensen</cc>
    
    <cc>buildbot</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>japhet</cc>
    
    <cc>kling</cc>
    
    <cc>ossy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1290076</commentid>
    <comment_count>0</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-03-22 10:12:40 -0700</bug_when>
    <thetext>[QuickLook] Rename QuickLookHandle to PreviewLoader</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1290082</commentid>
    <comment_count>1</comment_count>
      <attachid>305104</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-03-22 10:16:36 -0700</bug_when>
    <thetext>Created attachment 305104
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1290089</commentid>
    <comment_count>2</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-03-22 10:19:40 -0700</bug_when>
    <thetext>Attachment 305104 did not pass style-queue:


ERROR: Source/WebCore/loader/ios/PreviewLoader.mm:187:  Missing spaces around :  [whitespace/init] [4]
ERROR: Source/WebCore/loader/ios/PreviewLoader.mm:211:  Extra space in capture list.  [whitespace/brackets] [4]
ERROR: Source/WebKit2/WebProcess/WebCoreSupport/ios/WebPreviewLoaderClient.cpp:49:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 3 in 25 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>1290129</commentid>
    <comment_count>3</comment_count>
      <attachid>305104</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-03-22 11:11:12 -0700</bug_when>
    <thetext>Comment on attachment 305104
Patch

Clearing flags on attachment: 305104

Committed r214266: &lt;http://trac.webkit.org/changeset/214266&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1290130</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-03-22 11:11:16 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1290198</commentid>
    <comment_count>5</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2017-03-22 13:49:26 -0700</bug_when>
    <thetext>(In reply to WebKit Commit Bot from comment #3)
&gt; Comment on attachment 305104 [details]
&gt; Patch
&gt; 
&gt; Clearing flags on attachment: 305104
&gt; 
&gt; Committed r214266: &lt;http://trac.webkit.org/changeset/214266&gt;

It broke the Apple Mac cmake build:
https://build.webkit.org/builders/Apple%20El%20Capitan%20CMake%20Debug%20%28Build%29/builds/113</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>305104</attachid>
            <date>2017-03-22 10:16:36 -0700</date>
            <delta_ts>2017-03-22 11:11:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169961-20170322101634.patch</filename>
            <type>text/plain</type>
            <size>93541</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE0MTg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGI1NjkzMzZlMWRlM2I3
MTllZDkzODlmNjIyZTZiMzA0Y2IyODBmMy4uYTA2MGU0MTExZTRkODNiODM0Y2VjYjhhMzUxYTIy
ZTdlZDQ5ODg0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkxIEBACisyMDE3LTAzLTIyICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbUXVpY2tMb29rXSBSZW5hbWUg
UXVpY2tMb29rSGFuZGxlIHRvIFByZXZpZXdMb2FkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2OTk2MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuY3BwOgorICAgICAgICAqIGxvYWRl
ci9GcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUxvYWRlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6aXNRdWlja0xvb2tSZXNvdXJj
ZSk6CisgICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9hZGVyLmg6CisgICAgICAgICogbG9hZGVy
L1N1YnJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN1YnJlc291cmNlTG9h
ZGVyOjpzaG91bGRDcmVhdGVQcmV2aWV3TG9hZGVyRm9yUmVzcG9uc2UpOgorICAgICAgICAoV2Vi
Q29yZTo6U3VicmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTdWJyZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEpOgorICAgICAgICAoV2Vi
Q29yZTo6U3VicmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVCdWZmZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6U3VicmVzb3VyY2VMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcpOgorICAgICAgICAoV2Vi
Q29yZTo6U3VicmVzb3VyY2VMb2FkZXI6OmRpZEZhaWwpOgorICAgICAgICAoV2ViQ29yZTo6U3Vi
cmVzb3VyY2VMb2FkZXI6OnNob3VsZENyZWF0ZVF1aWNrTG9va0hhbmRsZUZvclJlc3BvbnNlKTog
RGVsZXRlZC4KKyAgICAgICAgKiBsb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAg
KiBsb2FkZXIvaW9zL1ByZXZpZXdMb2FkZXIuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUv
bG9hZGVyL2lvcy9RdWlja0xvb2suaC4KKyAgICAgICAgKiBsb2FkZXIvaW9zL1ByZXZpZXdMb2Fk
ZXIubW06IEFkZGVkLgorICAgICAgICAodGVzdGluZ0NsaWVudCk6CisgICAgICAgIChlbXB0eUNs
aWVudCk6CisgICAgICAgICgtW1dlYlByZXZpZXdMb2FkZXIgaW5pdFdpdGhSZXNvdXJjZUxvYWRl
cjpyZXNvdXJjZVJlc3BvbnNlOl0pOgorICAgICAgICAoLVtXZWJQcmV2aWV3TG9hZGVyIGFwcGVu
ZERhdGFBcnJheTpdKToKKyAgICAgICAgKC1bV2ViUHJldmlld0xvYWRlciBmaW5pc2hlZEFwcGVu
ZGluZ10pOgorICAgICAgICAoLVtXZWJQcmV2aWV3TG9hZGVyIGZhaWxlZF0pOgorICAgICAgICAo
LVtXZWJQcmV2aWV3TG9hZGVyIF9zZW5kRGlkUmVjZWl2ZVJlc3BvbnNlSWZOZWNlc3NhcnldKToK
KyAgICAgICAgKC1bV2ViUHJldmlld0xvYWRlciBjb25uZWN0aW9uOmRpZFJlY2VpdmVEYXRhOmxl
bmd0aFJlY2VpdmVkOl0pOgorICAgICAgICAoLVtXZWJQcmV2aWV3TG9hZGVyIGNvbm5lY3Rpb25E
aWRGaW5pc2hMb2FkaW5nOl0pOgorICAgICAgICAoaXNRdWlja0xvb2tQYXNzd29yZEVycm9yKToK
KyAgICAgICAgKC1bV2ViUHJldmlld0xvYWRlciBjb25uZWN0aW9uOmRpZEZhaWxXaXRoRXJyb3I6
XSk6CisgICAgICAgIChXZWJDb3JlOjpQcmV2aWV3TG9hZGVyOjpQcmV2aWV3TG9hZGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OlByZXZpZXdMb2FkZXI6On5QcmV2aWV3TG9hZGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OlByZXZpZXdMb2FkZXI6OnNob3VsZENyZWF0ZUZvck1JTUVUeXBlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlByZXZpZXdMb2FkZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQ
cmV2aWV3TG9hZGVyOjpkaWRSZWNlaXZlRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpQcmV2aWV3
TG9hZGVyOjpkaWRSZWNlaXZlQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlByZXZpZXdMb2Fk
ZXI6OmRpZEZpbmlzaExvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UHJldmlld0xvYWRlcjo6
ZGlkRmFpbCk6CisgICAgICAgIChXZWJDb3JlOjpQcmV2aWV3TG9hZGVyOjpzZXRDbGllbnRGb3JU
ZXN0aW5nKToKKyAgICAgICAgKiBsb2FkZXIvaW9zL1F1aWNrTG9vay5oOgorICAgICAgICAoKTog
RGVsZXRlZC4KKyAgICAgICAgKiBsb2FkZXIvaW9zL1F1aWNrTG9vay5tbToKKyAgICAgICAgKFdl
YkNvcmU6OlFMUHJldmlld0dldFN1cHBvcnRlZE1JTUVUeXBlc1NldCk6CisgICAgICAgIChXZWJD
b3JlOjpyZW1vdmVRTFByZXZpZXdDb252ZXJ0ZXJGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6
cmVnaXN0ZXJRTFByZXZpZXdDb252ZXJ0ZXJJZk5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpR
TFByZXZpZXdQcm90b2NvbCk6CisgICAgICAgIChXZWJDb3JlOjppc1F1aWNrTG9va1ByZXZpZXdV
UkwpOgorICAgICAgICAocWxQcmV2aWV3Q29udmVydGVyRGljdGlvbmFyeU11dGV4KTogRGVsZXRl
ZC4KKyAgICAgICAgKFFMUHJldmlld0NvbnZlcnRlckRpY3Rpb25hcnkpOiBEZWxldGVkLgorICAg
ICAgICAoUUxDb250ZW50RGljdGlvbmFyeSk6IERlbGV0ZWQuCisgICAgICAgIChhZGRRTFByZXZp
ZXdDb252ZXJ0ZXJXaXRoRmlsZUZvclVSTCk6IERlbGV0ZWQuCisgICAgICAgIChjcmVhdGVRTFBy
ZXZpZXdQcm90b2NvbCk6IERlbGV0ZWQuCisgICAgICAgICh0ZXN0aW5nQ2xpZW50KTogRGVsZXRl
ZC4KKyAgICAgICAgKGVtcHR5Q2xpZW50KTogRGVsZXRlZC4KKyAgICAgICAgKC1bV2ViUHJldmll
d0xvYWRlciBpbml0V2l0aFJlc291cmNlTG9hZGVyOnJlc291cmNlUmVzcG9uc2U6cXVpY2tMb29r
SGFuZGxlOl0pOiBEZWxldGVkLgorICAgICAgICAoLVtXZWJQcmV2aWV3TG9hZGVyIGFwcGVuZERh
dGFBcnJheTpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV2ViUHJldmlld0xvYWRlciBmaW5pc2hl
ZEFwcGVuZGluZ10pOiBEZWxldGVkLgorICAgICAgICAoLVtXZWJQcmV2aWV3TG9hZGVyIGZhaWxl
ZF0pOiBEZWxldGVkLgorICAgICAgICAoLVtXZWJQcmV2aWV3TG9hZGVyIF9zZW5kRGlkUmVjZWl2
ZVJlc3BvbnNlSWZOZWNlc3NhcnldKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV2ViUHJldmlld0xv
YWRlciBjb25uZWN0aW9uOmRpZFJlY2VpdmVEYXRhOmxlbmd0aFJlY2VpdmVkOl0pOiBEZWxldGVk
LgorICAgICAgICAoLVtXZWJQcmV2aWV3TG9hZGVyIGNvbm5lY3Rpb25EaWRGaW5pc2hMb2FkaW5n
Ol0pOiBEZWxldGVkLgorICAgICAgICAoaXNRdWlja0xvb2tQYXNzd29yZEVycm9yKTogRGVsZXRl
ZC4KKyAgICAgICAgKC1bV2ViUHJldmlld0xvYWRlciBjb25uZWN0aW9uOmRpZEZhaWxXaXRoRXJy
b3I6XSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpRdWlja0xvb2tIYW5kbGU6OlF1aWNr
TG9va0hhbmRsZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpRdWlja0xvb2tIYW5kbGU6
On5RdWlja0xvb2tIYW5kbGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UXVpY2tMb29r
SGFuZGxlOjpzaG91bGRDcmVhdGVGb3JNSU1FVHlwZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpRdWlja0xvb2tIYW5kbGU6OmNyZWF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpRdWlja0xvb2tIYW5kbGU6OmRpZFJlY2VpdmVEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlF1aWNrTG9va0hhbmRsZTo6ZGlkUmVjZWl2ZUJ1ZmZlcik6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpRdWlja0xvb2tIYW5kbGU6OmRpZEZpbmlzaExvYWRpbmcpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6UXVpY2tMb29rSGFuZGxlOjpkaWRGYWlsKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlF1aWNrTG9va0hhbmRsZTo6c2V0Q2xpZW50Rm9yVGVzdGluZyk6
IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oOgor
ICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvaW9zL1ByZXZpZXdMb2FkZXJDbGllbnQuaDogUmVu
YW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvaW9zL1F1aWNrTG9va0hh
bmRsZUNsaWVudC5oLgorICAgICAgICAoV2ViQ29yZTo6UHJldmlld0xvYWRlckNsaWVudDo6flBy
ZXZpZXdMb2FkZXJDbGllbnQpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnNldFF1aWNrTG9va1Bhc3N3b3JkKToKKyAgICAgICAg
KiB0ZXN0aW5nL01vY2tQcmV2aWV3TG9hZGVyQ2xpZW50LmNwcDogUmVuYW1lZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1F1aWNrTG9va0hhbmRsZUNsaWVudC5jcHAuCisgICAgICAg
IChXZWJDb3JlOjpNb2NrUHJldmlld0xvYWRlckNsaWVudDo6c2luZ2xldG9uKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1vY2tQcmV2aWV3TG9hZGVyQ2xpZW50OjpkaWRSZXF1ZXN0UGFzc3dvcmQpOgor
ICAgICAgICAqIHRlc3RpbmcvTW9ja1ByZXZpZXdMb2FkZXJDbGllbnQuaDogUmVuYW1lZCBmcm9t
IFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1F1aWNrTG9va0hhbmRsZUNsaWVudC5oLgorCiAy
MDE3LTAzLTIwICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBbUXVp
Y2tMb29rXSBTdWJyZXNvdXJjZXMgc2hvdWxkIGJlIGluIHRoZSBzYW1lIG9yaWdpbiBhcyB0aGUg
bWFpbiBkb2N1bWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDg2OWFmNjhjMTU5MzdjZjYyZDlhYjk3
ZjAwNmZjNWU4MDY0N2Y0YmEuLjEyNmZiODVkYTAwNjVhNGFhMDEzZWIwMmUyOTU2MzE0OTI5Yjc4
MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxNy0wMy0yMiAgQW5keSBF
c3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CisKKyAgICAgICAgW1F1aWNrTG9va10gUmVuYW1lIFF1
aWNrTG9va0hhbmRsZSB0byBQcmV2aWV3TG9hZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjk5NjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW06
CisgICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlUHJldmlld0xvYWRlckNsaWVu
dCk6CisgICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlUXVpY2tMb29rSGFuZGxl
Q2xpZW50KTogRGVsZXRlZC4KKwogMjAxNy0wMy0yMCAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBw
bGUuY29tPgogCiAgICAgICAgIFtYY29kZV0gSW5jcmVtZW50YWwgYnVpbGRzIG9mIFdlYktpdExl
Z2FjeSBhcmUgc2xvdyBiZWNhdXNlIG9mIHRoZSBQb3N0cHJvY2VzcyBIZWFkZXJzIHBoYXNlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKaW5kZXggMjkxNjg3MmU3NTc3N2RiZGMwNmQzZmY3MTNlMWJjYzUzYmYxMDAwOS4uMzRj
NmJmZTNlMzg5NWNlZTBjYjk1MDA1NmZlM2I5ZDE0YTI2OTMyZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDI3IEBACisyMDE3LTAzLTIyICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbUXVpY2tMb29rXSBSZW5hbWUgUXVpY2tMb29rSGFuZGxlIHRvIFByZXZpZXdMb2Fk
ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2OTk2
MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2Vi
S2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L2lvcy9XZWJGcmFtZUxvYWRlckNsaWVudElPUy5tbToKKyAgICAgICAg
KFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZVByZXZpZXdMb2FkZXJDbGllbnQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlUXVpY2tMb29r
SGFuZGxlQ2xpZW50KTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L2lvcy9XZWJQcmV2aWV3TG9hZGVyQ2xpZW50LmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvaW9zL1dlYlF1aWNrTG9va0hhbmRsZUNs
aWVudC5jcHAuCisgICAgICAgIChXZWJLaXQ6OldlYlByZXZpZXdMb2FkZXJDbGllbnQ6OldlYlBy
ZXZpZXdMb2FkZXJDbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcmV2aWV3TG9hZGVyQ2xp
ZW50Ojp+V2ViUHJldmlld0xvYWRlckNsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByZXZp
ZXdMb2FkZXJDbGllbnQ6OmRpZFJlY2VpdmVEYXRhQXJyYXkpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcmV2aWV3TG9hZGVyQ2xpZW50OjpkaWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUHJldmlld0xvYWRlckNsaWVudDo6ZGlkRmFpbCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByZXZpZXdMb2FkZXJDbGllbnQ6OmRpZFJlcXVlc3RQYXNzd29yZCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlByZXZpZXdMb2FkZXJDbGllbnQ6OmRpZFJlY2VpdmVQYXNzd29yZCk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9pb3MvV2ViUHJldmlld0xvYWRlckNsaWVudC5o
OiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9p
b3MvV2ViUXVpY2tMb29rSGFuZGxlQ2xpZW50LmguCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkaWRSZWNl
aXZlUGFzc3dvcmRGb3JRdWlja0xvb2tEb2N1bWVudCk6CisKIDIwMTctMDMtMjAgIEFuZGVycyBD
YXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggYSBwYXN0ZS1vIGlu
IFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5OjpwbGF0Zm9ybUNvbXBsZXRlUGF5bWVudFNlc3Np
b24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCBiNDNkZmExMzYzZGRlOTVjZGZmMjJlMDEzODJmY2FkOTI0ZTdmZGY0Li5hNTk0Yzcw
ZDBhYzM1MmM4MDZkNWM4ZmI4ZWQwZDU4NzEwNWNkMTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00MTU3LDcgKzQxNTcsNyBA
QAogCQlBMTBCQjU4NTE0ODRFM0E3MDBCMkU4N0EgLyogUmVuZGVyU1ZHUmVjdC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTEwQkI1ODMxNDg0RTNBNzAw
QjJFODdBIC8qIFJlbmRlclNWR1JlY3QuaCAqLzsgfTsKIAkJQTEwQkI1OEIxNDg0RTNCMzAwQjJF
ODdBIC8qIFJlbmRlclNWR1NoYXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBMTBCQjU4OTE0ODRFM0IzMDBCMkU4N0EgLyogUmVuZGVyU1ZHU2hhcGUu
aCAqLzsgfTsKIAkJQTEwRDdGRUMxQzI2NzZEMTAwQzZDMTE1IC8qIENGTmV0d29ya0Nvbm5lY3Rp
b25DYWNoZVNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTEwRDdGRUIxQzI2NzZEMTAwQzZDMTE1IC8qIENGTmV0d29ya0Nvbm5lY3Rpb25DYWNoZVNQ
SS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUEx
MERCRjQ3MThGOTIzMTcwMDBENzBDNiAvKiBRdWlja0xvb2tIYW5kbGVDbGllbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMERCRjQ2MThGOTIzMTcw
MDBENzBDNiAvKiBRdWlja0xvb2tIYW5kbGVDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlBMTBEQkY0NzE4RjkyMzE3MDAwRDcwQzYgLyog
UHJldmlld0xvYWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTEwREJGNDYxOEY5MjMxNzAwMEQ3MEM2IC8qIFByZXZpZXdMb2FkZXJDbGll
bnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlB
MTBEQzc2QTE0NzQ3QkFCMDA1RTI0NzEgLyogU3R5bGVHcmlkRGF0YS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTBEQzc2ODE0NzQ3QkFCMDA1RTI0
NzEgLyogU3R5bGVHcmlkRGF0YS5jcHAgKi87IH07CiAJCUExMERDNzZCMTQ3NDdCQUIwMDVFMjQ3
MSAvKiBTdHlsZUdyaWREYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBMTBEQzc2OTE0NzQ3QkFCMDA1RTI0NzEgLyogU3R5bGVHcmlkRGF0YS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUExMTBEQjlC
MTRGNURGNzcwMEEwM0I5MyAvKiBTdHlsZUdyaWRJdGVtRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTExMERCOUExNEY1REY3NzAwQTAzQjkzIC8q
IFN0eWxlR3JpZEl0ZW1EYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKQEAgLTQxNzMsOCArNDE3Myw4IEBACiAJCUExMkExMDUwMTY2NDQ0RkQwMDhG
QTMxMSAvKiBHcmlkVHJhY2tTaXplLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBMTJBMTA0RTE2NjQ0NERDMDA4RkEzMTEgLyogR3JpZFRyYWNrU2l6ZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUExMzZB
MDBDMTEzNERCRDIwMENDOEQ1MCAvKiBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRs
ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTM2
QTAwQTExMzREQkQyMDBDQzhENTAgLyogWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0
bGUuY3BwICovOyB9OwogCQlBMTM2QTAwRDExMzREQkQyMDBDQzhENTAgLyogWE1MSHR0cFJlcXVl
c3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEExMzZBMDBCMTEzNERCRDIwMENDOEQ1MCAvKiBYTUxIdHRwUmVxdWVz
dFByb2dyZXNzRXZlbnRUaHJvdHRsZS5oICovOyB9OwotCQlBMTQwNjE4QjFFMkVDQTBBMDAzMkIz
NEUgLyogTW9ja1F1aWNrTG9va0hhbmRsZUNsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTQwNjE4OTFFMkVDQTBBMDAzMkIzNEUgLyogTW9j
a1F1aWNrTG9va0hhbmRsZUNsaWVudC5jcHAgKi87IH07Ci0JCUExNDA2MThDMUUyRUNBMEEwMDMy
QjM0RSAvKiBNb2NrUXVpY2tMb29rSGFuZGxlQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTQwNjE4QTFFMkVDQTBBMDAzMkIzNEUgLyogTW9j
a1F1aWNrTG9va0hhbmRsZUNsaWVudC5oICovOyB9OworCQlBMTQwNjE4QjFFMkVDQTBBMDAzMkIz
NEUgLyogTW9ja1ByZXZpZXdMb2FkZXJDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTE0MDYxODkxRTJFQ0EwQTAwMzJCMzRFIC8qIE1vY2tQ
cmV2aWV3TG9hZGVyQ2xpZW50LmNwcCAqLzsgfTsKKwkJQTE0MDYxOEMxRTJFQ0EwQTAwMzJCMzRF
IC8qIE1vY2tQcmV2aWV3TG9hZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBMTQwNjE4QTFFMkVDQTBBMDAzMkIzNEUgLyogTW9ja1ByZXZp
ZXdMb2FkZXJDbGllbnQuaCAqLzsgfTsKIAkJQTE0MDkwRkIxQUE1MUUxRDAwOTExOTFBIC8qIENv
bnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlckNvY29hLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTE0MDkwRkExQUE1MUUxRDAwOTExOTFBIC8qIENvbnRl
bnRGaWx0ZXJVbmJsb2NrSGFuZGxlckNvY29hLm1tICovOyB9OwogCQlBMTQwOTBGRDFBQTUxRTQ4
MDA5MTE5MUEgLyogQ29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTQwOTBGQzFBQTUxRTQ4MDA5MTE5MUEg
LyogQ29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTE0ODMyQjAxODdGNjE4RDAwREE2M0E2IC8qIFdB
S0FwcEtpdFN0dWJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBMTQ4MzI4QzE4N0Y1MDg3MDBEQTYzQTYgLyogV0FLQXBwS2l0U3R1YnMuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNDIyMyw2ICs0MjIz
LDggQEAKIAkJQTE3QzgxMjIwRjJBNUNGNzAwNURBQUVCIC8qIEhUTUxFbGVtZW50RmFjdG9yeS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTdDODEy
MDBGMkE1Q0Y3MDA1REFBRUIgLyogSFRNTEVsZW1lbnRGYWN0b3J5LmNwcCAqLzsgfTsKIAkJQTE3
QzgxMjMwRjJBNUNGNzAwNURBQUVCIC8qIEhUTUxFbGVtZW50RmFjdG9yeS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTE3QzgxMjEwRjJBNUNGNzAwNURB
QUVCIC8qIEhUTUxFbGVtZW50RmFjdG9yeS5oICovOyB9OwogCQlBMTgyRDVCNzFCRTcyMjY3MDA4
N0E3Q0MgLyogU2V0dGluZ3NDb2NvYS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEExODJENUI2MUJFNzIyNjIwMDg3QTdDQyAvKiBTZXR0aW5nc0NvY29h
Lm1tICovOyB9OworCQlBMTg1QjQyOTFFODIxMUExMDBEQzkxMTggLyogUHJldmlld0xvYWRlci5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExODVCNDI3
MUU4MjExQTEwMERDOTExOCAvKiBQcmV2aWV3TG9hZGVyLm1tICovOyB9OworCQlBMTg1QjQyQTFF
ODIxMUExMDBEQzkxMTggLyogUHJldmlld0xvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTE4NUI0MjgxRTgyMTFBMTAwREM5MTE4IC8qIFByZXZp
ZXdMb2FkZXIuaCAqLzsgfTsKIAkJQTE4ODkwQUUxQUExM0YyNTAwMjZDMzAxIC8qIFBhcmVudGFs
Q29udHJvbHNDb250ZW50RmlsdGVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTE4ODkwQUMxQUExM0YyNTAwMjZDMzAxIC8qIFBhcmVudGFsQ29udHJv
bHNDb250ZW50RmlsdGVyLm1tICovOyB9OwogCQlBMTg4OTBBRjFBQTEzRjI1MDAyNkMzMDEgLyog
UGFyZW50YWxDb250cm9sc0NvbnRlbnRGaWx0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExODg5MEFEMUFBMTNGMjUwMDI2QzMwMSAvKiBQYXJlbnRh
bENvbnRyb2xzQ29udGVudEZpbHRlci5oICovOyB9OwogCQlBMTlBRUEyMTFBQUE4MDg2MDBCNTJC
MjUgLyogSlNNb2NrQ29udGVudEZpbHRlclNldHRpbmdzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTlBRUExRTFBQUE4MDZFMDBCNTJCMjUgLyogSlNN
b2NrQ29udGVudEZpbHRlclNldHRpbmdzLmggKi87IH07CkBAIC0xMjI3OSw3ICsxMjI4MSw3IEBA
CiAJCUExMEJCNTg4MTQ4NEUzQjMwMEIyRTg3QSAvKiBSZW5kZXJTVkdTaGFwZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJTVkdTaGFwZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExMEJCNTg5MTQ4NEUzQjMwMEIyRTg3QSAvKiBSZW5k
ZXJTVkdTaGFwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJTVkdT
aGFwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMTBEN0ZFQjFDMjY3NkQxMDBD
NkMxMTUgLyogQ0ZOZXR3b3JrQ29ubmVjdGlvbkNhY2hlU1BJLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IENGTmV0d29ya0Nvbm5lY3Rpb25DYWNoZVNQSS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQlBMTBEQkY0NjE4RjkyMzE3MDAwRDcwQzYgLyogUXVpY2tMb29r
SGFuZGxlQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFF1aWNrTG9v
a0hhbmRsZUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBMTBEQkY0NjE4
RjkyMzE3MDAwRDcwQzYgLyogUHJldmlld0xvYWRlckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBQcmV2aWV3TG9hZGVyQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUExMERDNzY4MTQ3NDdCQUIwMDVFMjQ3MSAvKiBTdHlsZUdyaWREYXRhLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0eWxlR3JpZERhdGEuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMTBEQzc2OTE0NzQ3QkFCMDA1RTI0NzEg
LyogU3R5bGVHcmlkRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHls
ZUdyaWREYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExMTBEQjlBMTRGNURG
NzcwMEEwM0I5MyAvKiBTdHlsZUdyaWRJdGVtRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTdHlsZUdyaWRJdGVtRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMTIyOTUsOCArMTIyOTcsOCBAQAogCQlBMTJBMTA0RTE2NjQ0NERDMDA4RkEzMTEgLyog
R3JpZFRyYWNrU2l6ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHcmlkVHJh
Y2tTaXplLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExMzZBMDBBMTEzNERCRDIw
MENDOEQ1MCAvKiBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZl
bnRUaHJvdHRsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExMzZBMDBCMTEz
NERCRDIwMENDOEQ1MCAvKiBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZl
bnRUaHJvdHRsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBMTQwNjE4OTFFMkVD
QTBBMDAzMkIzNEUgLyogTW9ja1F1aWNrTG9va0hhbmRsZUNsaWVudC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNb2NrUXVpY2tMb29rSGFuZGxlQ2xpZW50LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTE0MDYxOEExRTJFQ0EwQTAwMzJCMzRFIC8q
IE1vY2tRdWlja0xvb2tIYW5kbGVDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gTW9ja1F1aWNrTG9va0hhbmRsZUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlBMTQwNjE4OTFFMkVDQTBBMDAzMkIzNEUgLyogTW9ja1ByZXZpZXdMb2FkZXJDbGll
bnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTW9ja1ByZXZpZXdM
b2FkZXJDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBMTQwNjE4QTFF
MkVDQTBBMDAzMkIzNEUgLyogTW9ja1ByZXZpZXdMb2FkZXJDbGllbnQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gTW9ja1ByZXZpZXdMb2FkZXJDbGllbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTE0MDkwRkExQUE1MUUxRDAwOTExOTFBIC8qIENvbnRlbnRG
aWx0ZXJVbmJsb2NrSGFuZGxlckNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gQ29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyQ29jb2EubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExNDA5MEZDMUFBNTFFNDgwMDkxMTkxQSAvKiBDb250ZW50
RmlsdGVyVW5ibG9ja0hhbmRsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUExNDgzMjhDMTg3RjUwODcwMERBNjNBNiAvKiBXQUtBcHBLaXRTdHVicy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXQUtBcHBLaXRTdHVicy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTIzNDYsNiArMTIzNDgsOCBAQAogCQlBMTdDODEyMDBGMkE1Q0Y3
MDA1REFBRUIgLyogSFRNTEVsZW1lbnRGYWN0b3J5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEhUTUxFbGVtZW50RmFjdG9yeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUExN0M4MTIxMEYyQTVDRjcwMDVEQUFFQiAvKiBIVE1MRWxlbWVudEZhY3Rv
cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTEVsZW1lbnRGYWN0b3J5
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExODJENUI2MUJFNzIyNjIwMDg3QTdD
QyAvKiBTZXR0aW5nc0NvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gU2V0dGluZ3NDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTE4
NUI0MjcxRTgyMTFBMTAwREM5MTE4IC8qIFByZXZpZXdMb2FkZXIubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQcmV2aWV3TG9hZGVyLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlBMTg1QjQyODFFODIxMUExMDBEQzkxMTggLyogUHJldmlld0xvYWRl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcmV2aWV3TG9hZGVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExODg5MEFDMUFBMTNGMjUwMDI2QzMwMSAvKiBQ
YXJlbnRhbENvbnRyb2xzQ29udGVudEZpbHRlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IFBhcmVudGFsQ29udHJvbHNDb250ZW50RmlsdGVyLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlBMTg4OTBBRDFBQTEzRjI1MDAyNkMzMDEgLyogUGFyZW50
YWxDb250cm9sc0NvbnRlbnRGaWx0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUGFyZW50YWxDb250cm9sc0NvbnRlbnRGaWx0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQTE5QUVBMUMxQUFBN0M0OTAwQjUyQjI1IC8qIE1vY2tDb250ZW50RmlsdGVyU2V0
dGluZ3MuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MuaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTc1MDQsOCArMTc1MDgsOCBAQAogCQkJCTJENkYzRThDMUMx
RUNCMUMwMDYxREJENCAvKiBNb2NrUGFnZU92ZXJsYXkuaWRsICovLAogCQkJCTJEQUFFMzJDMTlE
Q0FGNjAwMEUwMDJEMiAvKiBNb2NrUGFnZU92ZXJsYXlDbGllbnQuY3BwICovLAogCQkJCTJEQUFF
MzJEMTlEQ0FGNjAwMEUwMDJEMiAvKiBNb2NrUGFnZU92ZXJsYXlDbGllbnQuaCAqLywKLQkJCQlB
MTQwNjE4OTFFMkVDQTBBMDAzMkIzNEUgLyogTW9ja1F1aWNrTG9va0hhbmRsZUNsaWVudC5jcHAg
Ki8sCi0JCQkJQTE0MDYxOEExRTJFQ0EwQTAwMzJCMzRFIC8qIE1vY2tRdWlja0xvb2tIYW5kbGVD
bGllbnQuaCAqLywKKwkJCQlBMTQwNjE4OTFFMkVDQTBBMDAzMkIzNEUgLyogTW9ja1ByZXZpZXdM
b2FkZXJDbGllbnQuY3BwICovLAorCQkJCUExNDA2MThBMUUyRUNBMEEwMDMyQjM0RSAvKiBNb2Nr
UHJldmlld0xvYWRlckNsaWVudC5oICovLAogCQkJCUVCMDgxQ0Q4MTY5NjA4NDQwMDU1MzczMCAv
KiBUeXBlQ29udmVyc2lvbnMuaCAqLywKIAkJCQlFQjA4MUNEOTE2OTYwODQ0MDA1NTM3MzAgLyog
VHlwZUNvbnZlcnNpb25zLmlkbCAqLywKIAkJCQlFMUJBNjcxOTE3NDJCRUY0MDBDMjAyNTEgLyog
V2ViQ29yZVRlc3RTaGltTGlicmFyeS5jcHAgKi8sCkBAIC0xNzcxOSw3ICsxNzcyMyw3IEBACiAJ
CQkJNDQzRjA0MjYwRTc1QzhGQjAwN0U1NDA3IC8qIE5ldHdvcmtTdGF0ZU5vdGlmaWVySU9TLm1t
ICovLAogCQkJCUExQzE1MDc4MUUzRjJCM0UwMDMyQzk4QyAvKiBQcmV2aWV3Q29udmVydGVyLmgg
Ki8sCiAJCQkJQTFDMTUwNzcxRTNGMkIzRTAwMzJDOThDIC8qIFByZXZpZXdDb252ZXJ0ZXIubW0g
Ki8sCi0JCQkJQTEwREJGNDYxOEY5MjMxNzAwMEQ3MEM2IC8qIFF1aWNrTG9va0hhbmRsZUNsaWVu
dC5oICovLAorCQkJCUExMERCRjQ2MThGOTIzMTcwMDBENzBDNiAvKiBQcmV2aWV3TG9hZGVyQ2xp
ZW50LmggKi8sCiAJCQkJN0U0MjhDRTQxM0UzNDA3RjAwM0I2NjFDIC8qIFJlc291cmNlSGFuZGxl
SU9TLm1tICovLAogCQkJCTdFN0RFMjAxMTk1Q0VGQ0QwMDM1MzYzQiAvKiBSZXNvdXJjZVJlcXVl
c3RJT1MubW0gKi8sCiAJCQkJNDRBMjBEQjgwRjg0MTY2QzAwQjNFMUZFIC8qIFdlYkNvcmVVUkxS
ZXNwb25zZUlPUy5oICovLApAQCAtMjA3NzksNiArMjA3ODMsOCBAQAogCQlBMTVFMzFGMDFFMENC
MDc1MDA0QjM3MUMgLyogaW9zICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJl
biA9ICgKKwkJCQlBMTg1QjQyODFFODIxMUExMDBEQzkxMTggLyogUHJldmlld0xvYWRlci5oICov
LAorCQkJCUExODVCNDI3MUU4MjExQTEwMERDOTExOCAvKiBQcmV2aWV3TG9hZGVyLm1tICovLAog
CQkJCUExNUUzMUYxMUUwQ0IwQUEwMDRCMzcxQyAvKiBRdWlja0xvb2suaCAqLywKIAkJCQlBMTVF
MzFGMjFFMENCMEFBMDA0QjM3MUMgLyogUXVpY2tMb29rLm1tICovLAogCQkJKTsKQEAgLTI2MDk0
LDcgKzI2MTAwLDcgQEAKIAkJCQk0MTU3RUJGQjFFM0FCNjdGMDBBQzlGRTkgLyogTW9ja0xpYldl
YlJUQ1BlZXJDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDZGM0U5MTFDMUVDQjJG
MDA2MURCRDQgLyogTW9ja1BhZ2VPdmVybGF5LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDk3RjA0
ODE5REQ0MTQwMDAxRUU5QzMgLyogTW9ja1BhZ2VPdmVybGF5Q2xpZW50LmggaW4gSGVhZGVycyAq
LywKLQkJCQlBMTQwNjE4QzFFMkVDQTBBMDAzMkIzNEUgLyogTW9ja1F1aWNrTG9va0hhbmRsZUNs
aWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTE0MDYxOEMxRTJFQ0EwQTAwMzJCMzRFIC8qIE1v
Y2tQcmV2aWV3TG9hZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBQTVGM0I4RDE2Q0Mz
M0QxMDA0NTVFQjAgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2suaCBpbiBIZWFkZXJz
ICovLAogCQkJCUExNzYzRjNGMUUyMDUyMzQwMDFENThERSAvKiBXZWJBcmNoaXZlRHVtcFN1cHBv
cnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxODE1QzFGMTM4MzE5ODMwMDU3QUFBNCAvKiBXZWJD
b3JlVGVzdFN1cHBvcnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjYyOTksNiArMjYzMDUsNyBAQAog
CQkJCTJFREVGMUY1MTIxQjBFRkMwMDcyNkRCMiAvKiBCbG9iUmVnaXN0cnkuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTJFREVGMUY3MTIxQjBFRkMwMDcyNkRCMiAvKiBCbG9iUmVnaXN0cnlJbXBsLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkyRUI0QkNEMzEyMUYwM0UzMDBFQzQ4ODUgLyogQmxvYlJlc291
cmNlSGFuZGxlLmggaW4gSGVhZGVycyAqLywKKwkJCQlBMTg1QjQyQTFFODIxMUExMDBEQzkxMTgg
LyogUHJldmlld0xvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTc2RDZDN0YxMjJCOEEzRDAw
MUZEMUY3IC8qIEJsb2JVUkwuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNUVCNUUxMEU4MUJFODcw
MEIyNTk2NSAvKiBCb3JkZXJEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQk1ODk1NTZFRDE4RDRB
NDQwMDA3NjRCMDMgLyogQm9yZGVyRWRnZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yODYyMyw3ICsy
ODYzMCw3IEBACiAJCQkJNTUwQTBCQ0EwODVGNjAzOTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUu
aCBpbiBIZWFkZXJzICovLAogCQkJCUNFMTI1MjNEMUExNjc2Q0QwMDg2NDQ4MCAvKiBRdWFydHpD
b3JlU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTVFMzFGNDFFMENCMEI1MDA0QjM3MUMgLyog
UXVpY2tMb29rLmggaW4gSGVhZGVycyAqLywKLQkJCQlBMTBEQkY0NzE4RjkyMzE3MDAwRDcwQzYg
LyogUXVpY2tMb29rSGFuZGxlQ2xpZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlBMTBEQkY0NzE4
RjkyMzE3MDAwRDcwQzYgLyogUHJldmlld0xvYWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJOTM3RjRDQ0MxQTJENDhDMTAwQkIzOUY1IC8qIFF1aWNrTG9va01hY1NQSS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNDQzOTE4MDAxQTkxQjJGODAwNkUwNEYyIC8qIFF1aWNrTG9va1NvZnRMaW5r
LmggaW4gSGVhZGVycyAqLywKIAkJCQlDRTEyNTIzOTFBMTY2RkEwMDA4NjQ0ODAgLyogUXVpY2tM
b29rU1BJLmggaW4gSGVhZGVycyAqLywKQEAgLTMwMTkwLDcgKzMwMTk3LDcgQEAKIAkJCQk0MTU3
RUJGQTFFM0FCNjc5MDBBQzlGRTkgLyogTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTJENkYzRTkwMUMxRUNCMjcwMDYxREJENCAvKiBNb2NrUGFnZU92
ZXJsYXkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5N0YwNDcxOURENDEzQzAwMUVFOUMzIC8q
IE1vY2tQYWdlT3ZlcmxheUNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBMTQwNjE4QjFF
MkVDQTBBMDAzMkIzNEUgLyogTW9ja1F1aWNrTG9va0hhbmRsZUNsaWVudC5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQlBMTQwNjE4QjFFMkVDQTBBMDAzMkIzNEUgLyogTW9ja1ByZXZpZXdMb2FkZXJD
bGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQUE1RjNCOEYxNkNDNEIzOTAwNDU1RUIwIC8q
IFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUEx
NzYzRjNFMUUyMDUyMzQwMDFENThERSAvKiBXZWJBcmNoaXZlRHVtcFN1cHBvcnQubW0gaW4gU291
cmNlcyAqLywKIAkJCQk0MTgxNUMxRTEzODMxOTgzMDA1N0FBQTQgLyogV2ViQ29yZVRlc3RTdXBw
b3J0LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMzE0MjYsNiArMzE0MzMsNyBAQAogCQkJCTk0Nzk0
OTMzMUUwNDU5RkEwMDAxOEQ4NSAvKiBKU0RlcHJlY2F0ZWRDU1NPTVJlY3QuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJOTQ3OTQ5MzUxRTA0NTlGQTAwMDE4RDg1IC8qIEpTRGVwcmVjYXRlZENTU09N
UkdCQ29sb3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTQ3OTQ5MzcxRTA0NTlGQTAwMDE4RDg1
IC8qIEpTRGVwcmVjYXRlZENTU09NVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQTE4NUI0
MjkxRTgyMTFBMTAwREM5MTE4IC8qIFByZXZpZXdMb2FkZXIubW0gaW4gU291cmNlcyAqLywKIAkJ
CQk5NDc5NDkzOTFFMDQ1OUZBMDAwMThEODUgLyogSlNEZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3Qu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFGQjFBNjUxMjBBNUQzRjAwREMwMkEwIC8qIEpTRGV2
aWNlTW90aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTlBODYwMDYxMTlEQUY3RjAw
REVGMUVGIC8qIEpTRGV2aWNlT3JpZW50YXRpb25FdmVudC5jcHAgaW4gU291cmNlcyAqLywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKaW5kZXggOGMwYWE2NWJiMDg1ZjExNDE5
NGMwM2RlMWU1MmJhMTgyNTVjOTY3Mi4uNzIzMDQyZmVlOTIxZDY3OTYwZTA1MmI0ODA1M2UzOWQ1
Nzg2ZTk1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKQEAgLTY4LDcg
KzY4LDcgQEAKICNlbmRpZgogCiAjaWYgVVNFKFFVSUNLX0xPT0spCi0jaW5jbHVkZSAiUXVpY2tM
b29rSGFuZGxlQ2xpZW50LmgiCisjaW5jbHVkZSAiUHJldmlld0xvYWRlckNsaWVudC5oIgogI2Vu
ZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ0OCw3ICs0NDgsNyBAQCBjbGFzcyBFbXB0
eUZyYW1lTG9hZGVyQ2xpZW50IGZpbmFsIDogcHVibGljIEZyYW1lTG9hZGVyQ2xpZW50IHsKICAg
ICB2b2lkIHByZWZldGNoRE5TKGNvbnN0IFN0cmluZyYpIGZpbmFsIHsgfQogCiAjaWYgVVNFKFFV
SUNLX0xPT0spCi0gICAgUmVmUHRyPFF1aWNrTG9va0hhbmRsZUNsaWVudD4gY3JlYXRlUXVpY2tM
b29rSGFuZGxlQ2xpZW50KGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpIGZpbmFsIHsgcmV0
dXJuIG51bGxwdHI7IH0KKyAgICBSZWZQdHI8UHJldmlld0xvYWRlckNsaWVudD4gY3JlYXRlUHJl
dmlld0xvYWRlckNsaWVudChjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKSBmaW5hbCB7IHJl
dHVybiBudWxscHRyOyB9CiAjZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyQ2xpZW50LmgKaW5kZXggNjZlMzg2ZTUyYjU5YWRiNTBhMzE0M2NlZWEwZGRiZWJlNjU0
YzgzYy4uN2I2MzlkMzQ1ZjhmNjgzYmU3MTkyOGY0MzRjOGIxMzI2MTU0ZTNlZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTgzLDggKzgzLDggQEAgY2xh
c3MgTmF2aWdhdGlvbkFjdGlvbjsKIGNsYXNzIFBhZ2U7CiBjbGFzcyBQbHVnaW5WaWV3QmFzZTsK
IGNsYXNzIFBvbGljeUNoZWNrZXI7CitjbGFzcyBQcmV2aWV3TG9hZGVyQ2xpZW50OwogY2xhc3Mg
UHJvdGVjdGlvblNwYWNlOwotY2xhc3MgUXVpY2tMb29rSGFuZGxlQ2xpZW50OwogY2xhc3MgUlRD
UGVlckNvbm5lY3Rpb25IYW5kbGVyOwogY2xhc3MgUmVzb3VyY2VFcnJvcjsKIGNsYXNzIFJlc291
cmNlSGFuZGxlOwpAQCAtMzQyLDcgKzM0Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wg
aXNFbXB0eUZyYW1lTG9hZGVyQ2xpZW50KCkgeyByZXR1cm4gZmFsc2U7IH0KIAogI2lmIFVTRShR
VUlDS19MT09LKQotICAgIHZpcnR1YWwgUmVmUHRyPFF1aWNrTG9va0hhbmRsZUNsaWVudD4gY3Jl
YXRlUXVpY2tMb29rSGFuZGxlQ2xpZW50KGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpID0g
MDsKKyAgICB2aXJ0dWFsIFJlZlB0cjxQcmV2aWV3TG9hZGVyQ2xpZW50PiBjcmVhdGVQcmV2aWV3
TG9hZGVyQ2xpZW50KGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpID0gMDsKICNlbmRpZgog
CiAjaWYgRU5BQkxFKENPTlRFTlRfRklMVEVSSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNv
dXJjZUxvYWRlci5jcHAKaW5kZXggZDY1ZjNiZmJlMTk3N2ExMGIzNTRhYTkxNTc1ODRkMjQxMjcw
OTc1OC4uNGQ4NWVhMDg2Y2MyZTY2ZDJjOWFmN2Q5Y2IzNmZhMWQ1ZDI5ZjhmZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC01Nyw3ICs1Nyw3IEBACiAKICNp
ZiBVU0UoUVVJQ0tfTE9PSykKICNpbmNsdWRlICJQcmV2aWV3Q29udmVydGVyLmgiCi0jaW5jbHVk
ZSAiUXVpY2tMb29rLmgiCisjaW5jbHVkZSAiUHJldmlld0xvYWRlci5oIgogI2VuZGlmCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKQEAgLTc0OCw3ICs3NDgsNyBAQCB2b2lkIFJlc291cmNlTG9hZGVy
Ojp1bnNjaGVkdWxlKFNjaGVkdWxlUGFpciYgcGFpcikKICNpZiBVU0UoUVVJQ0tfTE9PSykKIGJv
b2wgUmVzb3VyY2VMb2FkZXI6OmlzUXVpY2tMb29rUmVzb3VyY2UoKSBjb25zdAogewotICAgIHJl
dHVybiAhIW1fcXVpY2tMb29rSGFuZGxlOworICAgIHJldHVybiAhIW1fcHJldmlld0xvYWRlcjsK
IH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VM
b2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCmluZGV4IDVh
NWVjMTQ0OTY4Nzk3Y2Y3MDQ2NTI2OGJjMmE3MTJiNTI5YjBjNDYuLmI1NTlkMWExNGE2MzdhNDZj
OWIyYzk4YmNjZDY3ZDUwYWQxM2EyYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9SZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxv
YWRlci5oCkBAIC01MSw3ICs1MSw3IEBAIGNsYXNzIERvY3VtZW50TG9hZGVyOwogY2xhc3MgRnJh
bWU7CiBjbGFzcyBGcmFtZUxvYWRlcjsKIGNsYXNzIE5ldHdvcmtMb2FkTWV0cmljczsKLWNsYXNz
IFF1aWNrTG9va0hhbmRsZTsKK2NsYXNzIFByZXZpZXdMb2FkZXI7CiBjbGFzcyBVUkw7CiAKIGNs
YXNzIFJlc291cmNlTG9hZGVyIDogcHVibGljIFJlZkNvdW50ZWQ8UmVzb3VyY2VMb2FkZXI+LCBw
cm90ZWN0ZWQgUmVzb3VyY2VIYW5kbGVDbGllbnQgewpAQCAtMTc1LDcgKzE3NSw3IEBAIHByb3Rl
Y3RlZDoKICAgICBSZXNvdXJjZVJlc3BvbnNlIG1fcmVzcG9uc2U7CiAgICAgTG9hZFRpbWluZyBt
X2xvYWRUaW1pbmc7CiAjaWYgVVNFKFFVSUNLX0xPT0spCi0gICAgc3RkOjp1bmlxdWVfcHRyPFF1
aWNrTG9va0hhbmRsZT4gbV9xdWlja0xvb2tIYW5kbGU7CisgICAgc3RkOjp1bmlxdWVfcHRyPFBy
ZXZpZXdMb2FkZXI+IG1fcHJldmlld0xvYWRlcjsKICNlbmRpZgogCiBwcml2YXRlOgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggZmQ2MDI2MjZkZDhl
NWEwNmRjZDJiNjY3ZmRhN2QwNWEyNjZiMzc1Yy4uOGJhNTYxYzZmMjM3ZmUxNWFkODljYjcyODFk
YWMyODRiYTZkYzE5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291
cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2Fk
ZXIuY3BwCkBAIC02MCw3ICs2MCw3IEBACiAjZW5kaWYKIAogI2lmIFVTRShRVUlDS19MT09LKQot
I2luY2x1ZGUgIlF1aWNrTG9vay5oIgorI2luY2x1ZGUgIlByZXZpZXdMb2FkZXIuaCIKICNlbmRp
ZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0yNjEsMTUgKzI2MSwxNSBAQCB2b2lkIFN1YnJl
c291cmNlTG9hZGVyOjpkaWRTZW5kRGF0YSh1bnNpZ25lZCBsb25nIGxvbmcgYnl0ZXNTZW50LCB1
bnNpZ25lZCBsb25nCiAKICNpZiBVU0UoUVVJQ0tfTE9PSykKIAotYm9vbCBTdWJyZXNvdXJjZUxv
YWRlcjo6c2hvdWxkQ3JlYXRlUXVpY2tMb29rSGFuZGxlRm9yUmVzcG9uc2UoY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYgcmVzcG9uc2UpIGNvbnN0Citib29sIFN1YnJlc291cmNlTG9hZGVyOjpzaG91
bGRDcmVhdGVQcmV2aWV3TG9hZGVyRm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYg
cmVzcG9uc2UpIGNvbnN0CiB7CiAgICAgaWYgKG1fcmVzb3VyY2UtPnR5cGUoKSAhPSBDYWNoZWRS
ZXNvdXJjZTo6TWFpblJlc291cmNlKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAo
bV9xdWlja0xvb2tIYW5kbGUpCisgICAgaWYgKG1fcHJldmlld0xvYWRlcikKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCi0gICAgcmV0dXJuIFF1aWNrTG9va0hhbmRsZTo6c2hvdWxkQ3JlYXRlRm9y
TUlNRVR5cGUocmVzcG9uc2UubWltZVR5cGUoKSk7CisgICAgcmV0dXJuIFByZXZpZXdMb2FkZXI6
OnNob3VsZENyZWF0ZUZvck1JTUVUeXBlKHJlc3BvbnNlLm1pbWVUeXBlKCkpOwogfQogCiAjZW5k
aWYKQEAgLTI4MCw4ICsyODAsOCBAQCB2b2lkIFN1YnJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZl
UmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiAgICAgQVNTRVJUKG1f
c3RhdGUgPT0gSW5pdGlhbGl6ZWQpOwogCiAjaWYgVVNFKFFVSUNLX0xPT0spCi0gICAgaWYgKHNo
b3VsZENyZWF0ZVF1aWNrTG9va0hhbmRsZUZvclJlc3BvbnNlKHJlc3BvbnNlKSkgewotICAgICAg
ICBtX3F1aWNrTG9va0hhbmRsZSA9IFF1aWNrTG9va0hhbmRsZTo6Y3JlYXRlKCp0aGlzLCByZXNw
b25zZSk7CisgICAgaWYgKHNob3VsZENyZWF0ZVByZXZpZXdMb2FkZXJGb3JSZXNwb25zZShyZXNw
b25zZSkpIHsKKyAgICAgICAgbV9wcmV2aWV3TG9hZGVyID0gUHJldmlld0xvYWRlcjo6Y3JlYXRl
KCp0aGlzLCByZXNwb25zZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAjZW5kaWYKQEAgLTM2
Nyw4ICszNjcsOCBAQCB2b2lkIFN1YnJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2Uo
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiB2b2lkIFN1YnJlc291cmNlTG9hZGVy
OjpkaWRSZWNlaXZlRGF0YShjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgsIGxvbmcg
bG9uZyBlbmNvZGVkRGF0YUxlbmd0aCwgRGF0YVBheWxvYWRUeXBlIGRhdGFQYXlsb2FkVHlwZSkK
IHsKICNpZiBVU0UoUVVJQ0tfTE9PSykKLSAgICBpZiAoYXV0byBxdWlja0xvb2tIYW5kbGUgPSBt
X3F1aWNrTG9va0hhbmRsZS5nZXQoKSkgewotICAgICAgICBpZiAocXVpY2tMb29rSGFuZGxlLT5k
aWRSZWNlaXZlRGF0YShkYXRhLCBsZW5ndGgpKQorICAgIGlmIChhdXRvIHByZXZpZXdMb2FkZXIg
PSBtX3ByZXZpZXdMb2FkZXIuZ2V0KCkpIHsKKyAgICAgICAgaWYgKHByZXZpZXdMb2FkZXItPmRp
ZFJlY2VpdmVEYXRhKGRhdGEsIGxlbmd0aCkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgfQog
I2VuZGlmCkBAIC0zNzksOCArMzc5LDggQEAgdm9pZCBTdWJyZXNvdXJjZUxvYWRlcjo6ZGlkUmVj
ZWl2ZURhdGEoY29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoLCBsb25nIGwKIHZvaWQg
U3VicmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVCdWZmZXIoUmVmPFNoYXJlZEJ1ZmZlcj4mJiBi
dWZmZXIsIGxvbmcgbG9uZyBlbmNvZGVkRGF0YUxlbmd0aCwgRGF0YVBheWxvYWRUeXBlIGRhdGFQ
YXlsb2FkVHlwZSkKIHsKICNpZiBVU0UoUVVJQ0tfTE9PSykKLSAgICBpZiAoYXV0byBxdWlja0xv
b2tIYW5kbGUgPSBtX3F1aWNrTG9va0hhbmRsZS5nZXQoKSkgewotICAgICAgICBpZiAocXVpY2tM
b29rSGFuZGxlLT5kaWRSZWNlaXZlQnVmZmVyKGJ1ZmZlci5nZXQoKSkpCisgICAgaWYgKGF1dG8g
cHJldmlld0xvYWRlciA9IG1fcHJldmlld0xvYWRlci5nZXQoKSkgeworICAgICAgICBpZiAocHJl
dmlld0xvYWRlci0+ZGlkUmVjZWl2ZUJ1ZmZlcihidWZmZXIuZ2V0KCkpKQogICAgICAgICAgICAg
cmV0dXJuOwogICAgIH0KICNlbmRpZgpAQCAtNTI0LDggKzUyNCw4IEBAIGJvb2wgU3VicmVzb3Vy
Y2VMb2FkZXI6OmNoZWNrUmVkaXJlY3Rpb25Dcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2woY29uc3Qg
UmVzb3VyY2VSCiB2b2lkIFN1YnJlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKGNvbnN0
IE5ldHdvcmtMb2FkTWV0cmljcyYgbmV0d29ya0xvYWRNZXRyaWNzKQogewogI2lmIFVTRShRVUlD
S19MT09LKQotICAgIGlmIChhdXRvIHF1aWNrTG9va0hhbmRsZSA9IG1fcXVpY2tMb29rSGFuZGxl
LmdldCgpKSB7Ci0gICAgICAgIGlmIChxdWlja0xvb2tIYW5kbGUtPmRpZEZpbmlzaExvYWRpbmco
KSkKKyAgICBpZiAoYXV0byBwcmV2aWV3TG9hZGVyID0gbV9wcmV2aWV3TG9hZGVyLmdldCgpKSB7
CisgICAgICAgIGlmIChwcmV2aWV3TG9hZGVyLT5kaWRGaW5pc2hMb2FkaW5nKCkpCiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgfQogI2VuZGlmCkBAIC01NzgsOCArNTc4LDggQEAgdm9pZCBTdWJy
ZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoTG9hZGluZyhjb25zdCBOZXR3b3JrTG9hZE1ldHJpY3Mm
IG5ldHdvcmtMb2FkTWUKIHZvaWQgU3VicmVzb3VyY2VMb2FkZXI6OmRpZEZhaWwoY29uc3QgUmVz
b3VyY2VFcnJvciYgZXJyb3IpCiB7CiAjaWYgVVNFKFFVSUNLX0xPT0spCi0gICAgaWYgKGF1dG8g
cXVpY2tMb29rSGFuZGxlID0gbV9xdWlja0xvb2tIYW5kbGUuZ2V0KCkpCi0gICAgICAgIHF1aWNr
TG9va0hhbmRsZS0+ZGlkRmFpbCgpOworICAgIGlmIChhdXRvIHByZXZpZXdMb2FkZXIgPSBtX3By
ZXZpZXdMb2FkZXIuZ2V0KCkpCisgICAgICAgIHByZXZpZXdMb2FkZXItPmRpZEZhaWwoKTsKICNl
bmRpZgogCiAgICAgaWYgKG1fc3RhdGUgIT0gSW5pdGlhbGl6ZWQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9TdWJyZXNvdXJjZUxvYWRlci5oCmluZGV4IDgyOGFhOWIzNjQ1NGEyMmQyMGU4MGI0NGQ5
NmU2YjBlNzIxMTliMjAuLjc0OTMwZTIxYzk4MzY5OGNjN2RjNjQ4ZWY0MDg5ZDFlZmJkZTJhN2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5oCkBAIC0xMDYsNyAr
MTA2LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAjaWYgVVNFKFFVSUNLX0xPT0spCi0gICAgYm9v
bCBzaG91bGRDcmVhdGVRdWlja0xvb2tIYW5kbGVGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJikgY29uc3Q7CisgICAgYm9vbCBzaG91bGRDcmVhdGVQcmV2aWV3TG9hZGVyRm9yUmVz
cG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIGNvbnN0OwogI2VuZGlmCiAKICAgICBlbnVt
IFN1YnJlc291cmNlTG9hZGVyU3RhdGUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2lvcy9QcmV2aWV3TG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaW9zL1ByZXZp
ZXdMb2FkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZTUzNWI5ODY0OGIyZjk0OTk1MTQxYzRhMDUzMTNmNmZl
Y2U2ZWYzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2lvcy9QcmV2
aWV3TG9hZGVyLmgKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOS0y
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJs
ZS5oPgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKworT0JKQ19DTEFTUyBXZWJQcmV2aWV3
TG9hZGVyOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFByZXZpZXdMb2FkZXJDbGll
bnQ7CitjbGFzcyBSZXNvdXJjZUxvYWRlcjsKK2NsYXNzIFJlc291cmNlUmVzcG9uc2U7CitjbGFz
cyBTaGFyZWRCdWZmZXI7CisKK2NsYXNzIFByZXZpZXdMb2FkZXIgeworICAgIFdURl9NQUtFX05P
TkNPUFlBQkxFKFByZXZpZXdMb2FkZXIpOworcHVibGljOgorICAgIHN0YXRpYyBib29sIHNob3Vs
ZENyZWF0ZUZvck1JTUVUeXBlKGNvbnN0IFN0cmluZyYpOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1
ZV9wdHI8UHJldmlld0xvYWRlcj4gY3JlYXRlKFJlc291cmNlTG9hZGVyJiwgY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYpOworICAgIH5QcmV2aWV3TG9hZGVyKCk7CisKKyAgICBib29sIGRpZFJlY2Vp
dmVEYXRhKGNvbnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCk7CisgICAgYm9vbCBkaWRS
ZWNlaXZlQnVmZmVyKGNvbnN0IFNoYXJlZEJ1ZmZlciYpOworICAgIGJvb2wgZGlkRmluaXNoTG9h
ZGluZygpOworICAgIHZvaWQgZGlkRmFpbCgpOworCisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IHZvaWQgc2V0Q2xpZW50Rm9yVGVzdGluZyhSZWZQdHI8UHJldmlld0xvYWRlckNsaWVudD4mJik7
CisKK3ByaXZhdGU6CisgICAgZnJpZW5kIHN0ZDo6dW5pcXVlX3B0cjxQcmV2aWV3TG9hZGVyPiBz
dGQ6Om1ha2VfdW5pcXVlPFByZXZpZXdMb2FkZXI+KFJlc291cmNlTG9hZGVyJiwgY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYpOworICAgIFByZXZpZXdMb2FkZXIoUmVzb3VyY2VMb2FkZXImLCBjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJik7CisKKyAgICBSZXRhaW5QdHI8V2ViUHJldmlld0xvYWRlcj4g
bV9wcmV2aWV3TG9hZGVyOworICAgIGJvb2wgbV9maW5pc2hlZExvYWRpbmdEYXRhSW50b0NvbnZl
cnRlciB7IGZhbHNlIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaW9zL1ByZXZpZXdMb2FkZXIubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvaW9zL1ByZXZpZXdMb2FkZXIubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDYxMTUyZjkxNzE4
ZTljM2IwYmQ2ZTkxM2Y3NGM5YjY4YzQ2ZGQyMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9pb3MvUHJldmlld0xvYWRlci5tbQpAQCAtMCwwICsxLDI0NyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJQcmV2aWV3TG9hZGVy
LmgiCisKKyNpZiBVU0UoUVVJQ0tfTE9PSykKKworI2ltcG9ydCAiRG9jdW1lbnRMb2FkZXIuaCIK
KyNpbXBvcnQgIkZyYW1lTG9hZGVyLmgiCisjaW1wb3J0ICJGcmFtZUxvYWRlckNsaWVudC5oIgor
I2ltcG9ydCAiTG9nZ2luZy5oIgorI2ltcG9ydCAiUHJldmlld0NvbnZlcnRlci5oIgorI2ltcG9y
dCAiUHJldmlld0xvYWRlckNsaWVudC5oIgorI2ltcG9ydCAiUXVpY2tMb29rLmgiCisjaW1wb3J0
ICJRdWlja0xvb2tTUEkuaCIKKyNpbXBvcnQgIlJlc291cmNlTG9hZGVyLmgiCisjaW1wb3J0IDx3
dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK0BpbnRl
cmZhY2UgV2ViUHJldmlld0xvYWRlciA6IE5TT2JqZWN0IHsKKyAgICBSZWZQdHI8UmVzb3VyY2VM
b2FkZXI+IF9yZXNvdXJjZUxvYWRlcjsKKyAgICBSZXNvdXJjZVJlc3BvbnNlIF9yZXNwb25zZTsK
KyAgICBSZWZQdHI8UHJldmlld0xvYWRlckNsaWVudD4gX2NsaWVudDsKKyAgICBzdGQ6OnVuaXF1
ZV9wdHI8UHJldmlld0NvbnZlcnRlcj4gX2NvbnZlcnRlcjsKKyAgICBSZXRhaW5QdHI8TlNNdXRh
YmxlQXJyYXk+IF9idWZmZXJlZERhdGFBcnJheTsKKyAgICBCT09MIF9oYXNTZW50RGlkUmVjZWl2
ZVJlc3BvbnNlOworfQorCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhSZXNvdXJjZUxvYWRlcjoo
UmVzb3VyY2VMb2FkZXImKXJlc291cmNlTG9hZGVyIHJlc291cmNlUmVzcG9uc2U6KGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmKXJlc291cmNlUmVzcG9uc2U7CistICh2b2lkKWFwcGVuZERhdGFBcnJh
eTooTlNBcnJheTxOU0RhdGEgKj4gKilkYXRhQXJyYXk7CistICh2b2lkKWZpbmlzaGVkQXBwZW5k
aW5nOworLSAodm9pZClmYWlsZWQ7CisKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdlYlByZXZp
ZXdMb2FkZXIKKworc3RhdGljIFJlZlB0cjxQcmV2aWV3TG9hZGVyQ2xpZW50PiYgdGVzdGluZ0Ns
aWVudCgpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJlZlB0cjxQcmV2aWV3TG9hZGVy
Q2xpZW50Pj4gdGVzdGluZ0NsaWVudDsKKyAgICByZXR1cm4gdGVzdGluZ0NsaWVudC5nZXQoKTsK
K30KKworc3RhdGljIFByZXZpZXdMb2FkZXJDbGllbnQmIGVtcHR5Q2xpZW50KCkKK3sKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UHJldmlld0xvYWRlckNsaWVudD4gZW1wdHlDbGllbnQ7Cisg
ICAgcmV0dXJuIGVtcHR5Q2xpZW50LmdldCgpOworfQorCistIChpbnN0YW5jZXR5cGUpaW5pdFdp
dGhSZXNvdXJjZUxvYWRlcjooUmVzb3VyY2VMb2FkZXImKXJlc291cmNlTG9hZGVyIHJlc291cmNl
UmVzcG9uc2U6KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKXJlc291cmNlUmVzcG9uc2UKK3sKKyAg
ICBzZWxmID0gW3N1cGVyIGluaXRdOworICAgIGlmICghc2VsZikKKyAgICAgICAgcmV0dXJuIG5p
bDsKKworICAgIF9yZXNvdXJjZUxvYWRlciA9ICZyZXNvdXJjZUxvYWRlcjsKKyAgICBfcmVzcG9u
c2UgPSByZXNvdXJjZVJlc3BvbnNlOworICAgIF9jb252ZXJ0ZXIgPSBzdGQ6Om1ha2VfdW5pcXVl
PFByZXZpZXdDb252ZXJ0ZXI+KHNlbGYsIF9yZXNwb25zZSk7CisgICAgX2J1ZmZlcmVkRGF0YUFy
cmF5ID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0XSk7CisKKyAgICBpZiAo
dGVzdGluZ0NsaWVudCgpKQorICAgICAgICBfY2xpZW50ID0gdGVzdGluZ0NsaWVudCgpOworICAg
IGVsc2UgaWYgKGF1dG8gY2xpZW50ID0gcmVzb3VyY2VMb2FkZXIuZnJhbWVMb2FkZXIoKS0+Y2xp
ZW50KCkuY3JlYXRlUHJldmlld0xvYWRlckNsaWVudChfY29udmVydGVyLT5wcmV2aWV3RmlsZU5h
bWUoKSwgX2NvbnZlcnRlci0+cHJldmlld1VUSSgpKSkKKyAgICAgICAgX2NsaWVudCA9IFdURk1v
dmUoY2xpZW50KTsKKyAgICBlbHNlCisgICAgICAgIF9jbGllbnQgPSAmZW1wdHlDbGllbnQoKTsK
KworICAgIExPRyhOZXR3b3JrLCAiV2ViUHJldmlld0NvbnZlcnRlciBjcmVhdGVkIHdpdGggcHJl
dmlldyBmaWxlIG5hbWUgXCIlc1wiLiIsIF9jb252ZXJ0ZXItPnByZXZpZXdGaWxlTmFtZSgpLnV0
ZjgoKS5kYXRhKCkpOworICAgIHJldHVybiBzZWxmOworfQorCistICh2b2lkKWFwcGVuZERhdGFB
cnJheTooTlNBcnJheTxOU0RhdGEgKj4gKilkYXRhQXJyYXkKK3sKKyAgICBMT0coTmV0d29yaywg
IldlYlByZXZpZXdDb252ZXJ0ZXIgYXBwZW5kaW5nIGRhdGEgYXJyYXkgd2l0aCBjb3VudCAlbGQu
IiwgZGF0YUFycmF5LmNvdW50KTsKKyAgICBbX2NvbnZlcnRlci0+cGxhdGZvcm1Db252ZXJ0ZXIo
KSBhcHBlbmREYXRhQXJyYXk6ZGF0YUFycmF5XTsKKyAgICBbX2J1ZmZlcmVkRGF0YUFycmF5IGFk
ZE9iamVjdHNGcm9tQXJyYXk6ZGF0YUFycmF5XTsKKyAgICBfY2xpZW50LT5kaWRSZWNlaXZlRGF0
YUFycmF5KChDRkFycmF5UmVmKWRhdGFBcnJheSk7Cit9CisKKy0gKHZvaWQpZmluaXNoZWRBcHBl
bmRpbmcKK3sKKyAgICBMT0coTmV0d29yaywgIldlYlByZXZpZXdDb252ZXJ0ZXIgZmluaXNoZWQg
YXBwZW5kaW5nIGRhdGEuIik7CisgICAgW19jb252ZXJ0ZXItPnBsYXRmb3JtQ29udmVydGVyKCkg
ZmluaXNoZWRBcHBlbmRpbmdEYXRhXTsKKyAgICBfY2xpZW50LT5kaWRGaW5pc2hMb2FkaW5nKCk7
Cit9CisKKy0gKHZvaWQpZmFpbGVkCit7CisgICAgTE9HKE5ldHdvcmssICJXZWJQcmV2aWV3Q29u
dmVydGVyIGZhaWxlZC4iKTsKKyAgICBbX2NvbnZlcnRlci0+cGxhdGZvcm1Db252ZXJ0ZXIoKSBm
aW5pc2hDb252ZXJ0aW5nXTsKKyAgICBfY2xpZW50LT5kaWRGYWlsKCk7Cit9CisKKy0gKHZvaWQp
X3NlbmREaWRSZWNlaXZlUmVzcG9uc2VJZk5lY2Vzc2FyeQoreworICAgIGlmIChfaGFzU2VudERp
ZFJlY2VpdmVSZXNwb25zZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgW19idWZmZXJlZERhdGFB
cnJheSByZW1vdmVBbGxPYmplY3RzXTsKKworICAgIFJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2Ug
eyBfY29udmVydGVyLT5wcmV2aWV3UmVzcG9uc2UoKSB9OworICAgIHJlc3BvbnNlLnNldElzUXVp
Y2tMb29rKHRydWUpOworICAgIEFTU0VSVChyZXNwb25zZS5taW1lVHlwZSgpLmxlbmd0aCgpKTsK
KworICAgIF9yZXNvdXJjZUxvYWRlci0+ZG9jdW1lbnRMb2FkZXIoKS0+c2V0UHJldmlld0NvbnZl
cnRlcihXVEZNb3ZlKF9jb252ZXJ0ZXIpKTsKKworICAgIF9oYXNTZW50RGlkUmVjZWl2ZVJlc3Bv
bnNlID0gWUVTOworICAgIF9yZXNvdXJjZUxvYWRlci0+ZGlkUmVjZWl2ZVJlc3BvbnNlKHJlc3Bv
bnNlKTsKK30KKworLSAodm9pZCljb25uZWN0aW9uOihOU1VSTENvbm5lY3Rpb24gKiljb25uZWN0
aW9uIGRpZFJlY2VpdmVEYXRhOihOU0RhdGEgKilkYXRhIGxlbmd0aFJlY2VpdmVkOihsb25nIGxv
bmcpbGVuZ3RoUmVjZWl2ZWQKK3sKKyAgICBBU1NFUlRfVU5VU0VEKGNvbm5lY3Rpb24sICFjb25u
ZWN0aW9uKTsKKyAgICBbc2VsZiBfc2VuZERpZFJlY2VpdmVSZXNwb25zZUlmTmVjZXNzYXJ5XTsK
KworICAgIC8vIFF1aWNrTG9vayBjb2RlIHNlbmRzIHVzIGEgbmlsIGRhdGEgYXQgdGltZXMuIFRo
ZSBjaGVjayBiZWxvdyBpcyB0aGUgc2FtZSBhcyB0aGUgb25lIGluCisgICAgLy8gUmVzb3VyY2VI
YW5kbGVNYWMuY3BwIGFkZGVkIGZvciBhIGRpZmZlcmVudCBidWcuCisgICAgaWYgKGF1dG8gZGF0
YUxlbmd0aCA9IGRhdGEubGVuZ3RoKQorICAgICAgICBfcmVzb3VyY2VMb2FkZXItPmRpZFJlY2Vp
dmVEYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGRhdGEuYnl0ZXMpLCBkYXRhTGVu
Z3RoLCBsZW5ndGhSZWNlaXZlZCwgRGF0YVBheWxvYWRCeXRlcyk7Cit9CisKKy0gKHZvaWQpY29u
bmVjdGlvbkRpZEZpbmlzaExvYWRpbmc6KE5TVVJMQ29ubmVjdGlvbiAqKWNvbm5lY3Rpb24KK3sK
KyAgICBBU1NFUlRfVU5VU0VEKGNvbm5lY3Rpb24sICFjb25uZWN0aW9uKTsKKyAgICBBU1NFUlQo
X2hhc1NlbnREaWRSZWNlaXZlUmVzcG9uc2UpOworCisgICAgTmV0d29ya0xvYWRNZXRyaWNzIGVt
cHR5TWV0cmljczsKKyAgICBfcmVzb3VyY2VMb2FkZXItPmRpZEZpbmlzaExvYWRpbmcoZW1wdHlN
ZXRyaWNzKTsKK30KKworc3RhdGljIGlubGluZSBib29sIGlzUXVpY2tMb29rUGFzc3dvcmRFcnJv
cihOU0Vycm9yICplcnJvcikKK3sKKyAgICByZXR1cm4gZXJyb3IuY29kZSA9PSBrUUxSZXR1cm5Q
YXNzd29yZFByb3RlY3RlZCAmJiBbZXJyb3IuZG9tYWluIGlzRXF1YWxUb1N0cmluZzpAIlF1aWNr
TG9va0Vycm9yRG9tYWluIl07Cit9CisKKy0gKHZvaWQpY29ubmVjdGlvbjooTlNVUkxDb25uZWN0
aW9uICopY29ubmVjdGlvbiBkaWRGYWlsV2l0aEVycm9yOihOU0Vycm9yICopZXJyb3IKK3sKKyAg
ICBBU1NFUlRfVU5VU0VEKGNvbm5lY3Rpb24sICFjb25uZWN0aW9uKTsKKworICAgIGlmICghaXNR
dWlja0xvb2tQYXNzd29yZEVycm9yKGVycm9yKSkgeworICAgICAgICBbc2VsZiBfc2VuZERpZFJl
Y2VpdmVSZXNwb25zZUlmTmVjZXNzYXJ5XTsKKyAgICAgICAgX3Jlc291cmNlTG9hZGVyLT5kaWRG
YWlsKGVycm9yKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmICghX2NsaWVudC0+
c3VwcG9ydHNQYXNzd29yZEVudHJ5KCkpIHsKKyAgICAgICAgX3Jlc291cmNlTG9hZGVyLT5kaWRG
YWlsKF9yZXNvdXJjZUxvYWRlci0+Y2Fubm90U2hvd1VSTEVycm9yKCkpOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgX2NsaWVudC0+ZGlkUmVxdWVzdFBhc3N3b3JkKFtzZWxmLCByZXRh
aW5lZFNlbGYgPSByZXRhaW5QdHIoc2VsZildIChjb25zdCBTdHJpbmcmIHBhc3N3b3JkKSB7Cisg
ICAgICAgIF9jb252ZXJ0ZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPFByZXZpZXdDb252ZXJ0ZXI+KHNl
bGYsIF9yZXNwb25zZSwgcGFzc3dvcmQpOworICAgICAgICBbX2NvbnZlcnRlci0+cGxhdGZvcm1D
b252ZXJ0ZXIoKSBhcHBlbmREYXRhQXJyYXk6X2J1ZmZlcmVkRGF0YUFycmF5LmdldCgpXTsKKyAg
ICAgICAgW19jb252ZXJ0ZXItPnBsYXRmb3JtQ29udmVydGVyKCkgZmluaXNoZWRBcHBlbmRpbmdE
YXRhXTsKKyAgICB9KTsKK30KKworQGVuZAorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1ByZXZp
ZXdMb2FkZXI6OlByZXZpZXdMb2FkZXIoUmVzb3VyY2VMb2FkZXImIGxvYWRlciwgY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCisgICAgOiBtX3ByZXZpZXdMb2FkZXIgeyBhZG9wdE5T
KFtbV2ViUHJldmlld0xvYWRlciBhbGxvY10gaW5pdFdpdGhSZXNvdXJjZUxvYWRlcjpsb2FkZXIg
cmVzb3VyY2VSZXNwb25zZTpyZXNwb25zZV0pIH0KK3sKK30KKworUHJldmlld0xvYWRlcjo6flBy
ZXZpZXdMb2FkZXIoKQoreworfQorCitib29sIFByZXZpZXdMb2FkZXI6OnNob3VsZENyZWF0ZUZv
ck1JTUVUeXBlKGNvbnN0IFN0cmluZyYgbWltZVR5cGUpCit7CisgICAgcmV0dXJuIFtRTFByZXZp
ZXdHZXRTdXBwb3J0ZWRNSU1FVHlwZXNTZXQoKSBjb250YWluc09iamVjdDptaW1lVHlwZV07Cit9
CisKK3N0ZDo6dW5pcXVlX3B0cjxQcmV2aWV3TG9hZGVyPiBQcmV2aWV3TG9hZGVyOjpjcmVhdGUo
UmVzb3VyY2VMb2FkZXImIGxvYWRlciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2Up
Cit7CisgICAgQVNTRVJUKHNob3VsZENyZWF0ZUZvck1JTUVUeXBlKHJlc3BvbnNlLm1pbWVUeXBl
KCkpKTsKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxQcmV2aWV3TG9hZGVyPihsb2FkZXIs
IHJlc3BvbnNlKTsKK30KKworYm9vbCBQcmV2aWV3TG9hZGVyOjpkaWRSZWNlaXZlRGF0YShjb25z
dCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpCit7CisgICAgaWYgKG1fZmluaXNoZWRMb2Fk
aW5nRGF0YUludG9Db252ZXJ0ZXIpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIFttX3By
ZXZpZXdMb2FkZXIgYXBwZW5kRGF0YUFycmF5OkBbIFtOU0RhdGEgZGF0YVdpdGhCeXRlczpkYXRh
IGxlbmd0aDpsZW5ndGhdIF1dOworICAgIHJldHVybiB0cnVlOworfQorCitib29sIFByZXZpZXdM
b2FkZXI6OmRpZFJlY2VpdmVCdWZmZXIoY29uc3QgU2hhcmVkQnVmZmVyJiBidWZmZXIpCit7Cisg
ICAgaWYgKG1fZmluaXNoZWRMb2FkaW5nRGF0YUludG9Db252ZXJ0ZXIpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIFttX3ByZXZpZXdMb2FkZXIgYXBwZW5kRGF0YUFycmF5OmJ1ZmZlci5j
cmVhdGVOU0RhdGFBcnJheSgpLmdldCgpXTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBQ
cmV2aWV3TG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKCkKK3sKKyAgICBpZiAobV9maW5pc2hlZExv
YWRpbmdEYXRhSW50b0NvbnZlcnRlcikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgbV9m
aW5pc2hlZExvYWRpbmdEYXRhSW50b0NvbnZlcnRlciA9IHRydWU7CisgICAgW21fcHJldmlld0xv
YWRlciBmaW5pc2hlZEFwcGVuZGluZ107CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgUHJl
dmlld0xvYWRlcjo6ZGlkRmFpbCgpCit7CisgICAgW21fcHJldmlld0xvYWRlciBmYWlsZWRdOwor
ICAgIG1fcHJldmlld0xvYWRlciA9IG51bGxwdHI7Cit9CisKK3ZvaWQgUHJldmlld0xvYWRlcjo6
c2V0Q2xpZW50Rm9yVGVzdGluZyhSZWZQdHI8UHJldmlld0xvYWRlckNsaWVudD4mJiBjbGllbnQp
Cit7CisgICAgdGVzdGluZ0NsaWVudCgpID0gV1RGTW92ZShjbGllbnQpOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBVU0UoUVVJQ0tfTE9PSykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pb3MvUXVpY2tMb29rLmggYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvaW9zL1F1aWNrTG9vay5oCmluZGV4IDdkNTkzYzExN2NjZWVhMDJhNGZhNDQ2YzNiMjEw
ZDdkMjIxNWMzNjEuLjBkZTY0YjU1YTc4NDJhZjA5Yjc1Y2U4ZmNkNjllNDNiYjVjMzhmNTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pb3MvUXVpY2tMb29rLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2lvcy9RdWlja0xvb2suaApAQCAtMjUsOSArMjUsNiBAQAogCiAj
cHJhZ21hIG9uY2UKIAotI2lmIFVTRShRVUlDS19MT09LKQotCi0jaW5jbHVkZSA8d3RmL0Zvcndh
cmQuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKIE9CSkNfQ0xBU1MgTlNEYXRhOwpA
QCAtMzUsMTUgKzMyLDkgQEAgT0JKQ19DTEFTUyBOU1NldDsKIE9CSkNfQ0xBU1MgTlNTdHJpbmc7
CiBPQkpDX0NMQVNTIE5TVVJMOwogT0JKQ19DTEFTUyBOU1VSTFJlcXVlc3Q7Ci1PQkpDX0NMQVNT
IFdlYlByZXZpZXdMb2FkZXI7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgUXVpY2tM
b29rSGFuZGxlQ2xpZW50OwotY2xhc3MgUmVzb3VyY2VMb2FkZXI7Ci1jbGFzcyBSZXNvdXJjZVJl
cXVlc3Q7Ci1jbGFzcyBSZXNvdXJjZVJlc3BvbnNlOwotY2xhc3MgU2hhcmVkQnVmZmVyOwogY2xh
c3MgVVJMOwogCiBXRUJDT1JFX0VYUE9SVCBOU1NldCAqUUxQcmV2aWV3R2V0U3VwcG9ydGVkTUlN
RVR5cGVzU2V0KCk7CkBAIC01MywyOCArNDQsNCBAQCBXRUJDT1JFX0VYUE9SVCBjb25zdCBjaGFy
KiBRTFByZXZpZXdQcm90b2NvbCgpOwogV0VCQ09SRV9FWFBPUlQgYm9vbCBpc1F1aWNrTG9va1By
ZXZpZXdVUkwoY29uc3QgVVJMJik7CiBXRUJDT1JFX0VYUE9SVCBOU1N0cmluZyAqY3JlYXRlVGVt
cG9yYXJ5RmlsZUZvclF1aWNrTG9vayhOU1N0cmluZyAqZmlsZU5hbWUpOwogCi1jbGFzcyBRdWlj
a0xvb2tIYW5kbGUgewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFF1aWNrTG9va0hhbmRsZSk7
Ci1wdWJsaWM6Ci0gICAgc3RhdGljIGJvb2wgc2hvdWxkQ3JlYXRlRm9yTUlNRVR5cGUoY29uc3Qg
U3RyaW5nJik7Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxRdWlja0xvb2tIYW5kbGU+IGNy
ZWF0ZShSZXNvdXJjZUxvYWRlciYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKLSAgICB+UXVp
Y2tMb29rSGFuZGxlKCk7Ci0KLSAgICBib29sIGRpZFJlY2VpdmVEYXRhKGNvbnN0IGNoYXIqIGRh
dGEsIHVuc2lnbmVkIGxlbmd0aCk7Ci0gICAgYm9vbCBkaWRSZWNlaXZlQnVmZmVyKGNvbnN0IFNo
YXJlZEJ1ZmZlciYpOwotICAgIGJvb2wgZGlkRmluaXNoTG9hZGluZygpOwotICAgIHZvaWQgZGlk
RmFpbCgpOwotCi0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgc2V0Q2xpZW50Rm9yVGVz
dGluZyhSZWZQdHI8UXVpY2tMb29rSGFuZGxlQ2xpZW50PiYmKTsKLQotcHJpdmF0ZToKLSAgICBm
cmllbmQgc3RkOjp1bmlxdWVfcHRyPFF1aWNrTG9va0hhbmRsZT4gc3RkOjptYWtlX3VuaXF1ZTxR
dWlja0xvb2tIYW5kbGU+KFJlc291cmNlTG9hZGVyJiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYp
OwotICAgIFF1aWNrTG9va0hhbmRsZShSZXNvdXJjZUxvYWRlciYsIGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmKTsKLQotICAgIFJldGFpblB0cjxXZWJQcmV2aWV3TG9hZGVyPiBtX3ByZXZpZXdMb2Fk
ZXI7Ci0gICAgYm9vbCBtX2ZpbmlzaGVkTG9hZGluZ0RhdGFJbnRvQ29udmVydGVyIHsgZmFsc2Ug
fTsKLX07Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIFVTRShRVUlDS19M
T09LKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2lvcy9RdWlja0xvb2subW0g
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaW9zL1F1aWNrTG9vay5tbQppbmRleCBiMGU1NWZlNjI4
YmU4ZTYzYzkyNzI0YzNlOGU4MDk2ZGFiMWI0ZDUyLi5iZTA1M2Y3MjRhOTZkMTlhMzFiOGRkMDE0
MjIyZWFmOGQwNGFkNGQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaW9zL1F1
aWNrTG9vay5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaW9zL1F1aWNrTG9vay5tbQpA
QCAtMjgsMjkgKzI4LDE5IEBACiAKICNpZiBVU0UoUVVJQ0tfTE9PSykKIAotI2ltcG9ydCAiRG9j
dW1lbnRMb2FkZXIuaCIKICNpbXBvcnQgIkZpbGVTeXN0ZW1JT1MuaCIKLSNpbXBvcnQgIkZyYW1l
TG9hZGVyLmgiCi0jaW1wb3J0ICJGcmFtZUxvYWRlckNsaWVudC5oIgotI2ltcG9ydCAiTG9nZ2lu
Zy5oIgogI2ltcG9ydCAiTlNGaWxlTWFuYWdlclNQSS5oIgogI2ltcG9ydCAiUHJldmlld0NvbnZl
cnRlci5oIgotI2ltcG9ydCAiUXVpY2tMb29rSGFuZGxlQ2xpZW50LmgiCi0jaW1wb3J0ICJSZXNv
dXJjZUVycm9yLmgiCi0jaW1wb3J0ICJSZXNvdXJjZUxvYWRlci5oIgogI2ltcG9ydCAiUmVzb3Vy
Y2VSZXF1ZXN0LmgiCiAjaW1wb3J0ICJTY2hlbWVSZWdpc3RyeS5oIgotI2ltcG9ydCAiU2hhcmVk
QnVmZmVyLmgiCi0jaW1wb3J0IDxXZWJDb3JlL05ldHdvcmtMb2FkTWV0cmljcy5oPgorI2ltcG9y
dCA8d3RmL0xvY2suaD4KICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgotI2ltcG9ydCA8
d3RmL1ZlY3Rvci5oPgotI2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKICNpbXBvcnQg
IlF1aWNrTG9va1NvZnRMaW5rLmgiCiAKLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1OU1NldCAqV2ViQ29yZTo6UUxQcmV2aWV3R2V0U3VwcG9ydGVkTUlN
RVR5cGVzU2V0KCkKK05TU2V0ICpRTFByZXZpZXdHZXRTdXBwb3J0ZWRNSU1FVHlwZXNTZXQoKQog
ewogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSZXRhaW5QdHI8TlNTZXQ+PiBzZXQgPSBRTFBy
ZXZpZXdHZXRTdXBwb3J0ZWRNSU1FVHlwZXMoKTsKICAgICByZXR1cm4gc2V0LmdldCgpLmdldCgp
OwpAQCAtNzQsNyArNjQsNyBAQCBzdGF0aWMgTlNNdXRhYmxlRGljdGlvbmFyeSAqUUxDb250ZW50
RGljdGlvbmFyeSgpCiAgICAgcmV0dXJuIGNvbnRlbnREaWN0aW9uYXJ5OwogfQogCi12b2lkIFdl
YkNvcmU6OnJlbW92ZVFMUHJldmlld0NvbnZlcnRlckZvclVSTChOU1VSTCAqdXJsKQordm9pZCBy
ZW1vdmVRTFByZXZpZXdDb252ZXJ0ZXJGb3JVUkwoTlNVUkwgKnVybCkKIHsKICAgICBMb2NrSG9s
ZGVyIGxvY2socWxQcmV2aWV3Q29udmVydGVyRGljdGlvbmFyeU11dGV4KCkpOwogICAgIFtRTFBy
ZXZpZXdDb252ZXJ0ZXJEaWN0aW9uYXJ5KCkgcmVtb3ZlT2JqZWN0Rm9yS2V5OnVybF07CkBAIC05
MCw3ICs4MCw3IEBAIHN0YXRpYyB2b2lkIGFkZFFMUHJldmlld0NvbnZlcnRlcldpdGhGaWxlRm9y
VVJMKE5TVVJMICp1cmwsIGlkIGNvbnZlcnRlciwgTlNTdHJpCiAgICAgW1FMQ29udGVudERpY3Rp
b25hcnkoKSBzZXRPYmplY3Q6KGZpbGVOYW1lID8gZmlsZU5hbWUgOiBAIiIpIGZvcktleTp1cmxd
OwogfQogCi1SZXRhaW5QdHI8TlNVUkxSZXF1ZXN0PiBXZWJDb3JlOjpyZWdpc3RlclFMUHJldmll
d0NvbnZlcnRlcklmTmVlZGVkKE5TVVJMICp1cmwsIE5TU3RyaW5nICptaW1lVHlwZSwgTlNEYXRh
ICpkYXRhKQorUmV0YWluUHRyPE5TVVJMUmVxdWVzdD4gcmVnaXN0ZXJRTFByZXZpZXdDb252ZXJ0
ZXJJZk5lZWRlZChOU1VSTCAqdXJsLCBOU1N0cmluZyAqbWltZVR5cGUsIE5TRGF0YSAqZGF0YSkK
IHsKICAgICBSZXRhaW5QdHI8TlNTdHJpbmc+IHVwZGF0ZWRNSU1FVHlwZSA9IGFkb3B0TlMoUUxU
eXBlQ29weUJlc3RNaW1lVHlwZUZvclVSTEFuZE1pbWVUeXBlKHVybCwgbWltZVR5cGUpKTsKIApA
QCAtMTE4LDEzICsxMDgsMTMgQEAgc3RhdGljIFZlY3RvcjxjaGFyPiBjcmVhdGVRTFByZXZpZXdQ
cm90b2NvbCgpCiAgICAgcmV0dXJuIHByZXZpZXdQcm90b2NvbDsKIH0KIAotY29uc3QgY2hhciog
V2ViQ29yZTo6UUxQcmV2aWV3UHJvdG9jb2woKQorY29uc3QgY2hhciogUUxQcmV2aWV3UHJvdG9j
b2woKQogewogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWZWN0b3I8Y2hhcj4+IHByZXZpZXdQ
cm90b2NvbChjcmVhdGVRTFByZXZpZXdQcm90b2NvbCgpKTsKICAgICByZXR1cm4gcHJldmlld1By
b3RvY29sLmdldCgpLmRhdGEoKTsKIH0KIAotYm9vbCBXZWJDb3JlOjppc1F1aWNrTG9va1ByZXZp
ZXdVUkwoY29uc3QgVVJMJiB1cmwpCitib29sIGlzUXVpY2tMb29rUHJldmlld1VSTChjb25zdCBV
UkwmIHVybCkKIHsKICAgICAvLyBVc2Ugc29tZSBrbm93biBwcm90b2NvbHMgYXMgYSBzaG9ydC1j
dXQgdG8gYXZvaWQgbG9hZGluZyB0aGUgUXVpY2tMb29rIGZyYW1ld29yay4KICAgICBpZiAodXJs
LnByb3RvY29sSXNJbkhUVFBGYW1pbHkoKSB8fCB1cmwuaXNCbGFua1VSTCgpIHx8IHVybC5wcm90
b2NvbElzQmxvYigpIHx8IHVybC5wcm90b2NvbElzRGF0YSgpIHx8IFNjaGVtZVJlZ2lzdHJ5Ojpz
aG91bGRUcmVhdFVSTFNjaGVtZUFzTG9jYWwodXJsLnByb3RvY29sKCkudG9TdHJpbmcoKSkpCkBA
IC0xMzIsMTUyICsxMjIsNiBAQCBib29sIFdlYkNvcmU6OmlzUXVpY2tMb29rUHJldmlld1VSTChj
b25zdCBVUkwmIHVybCkKICAgICByZXR1cm4gdXJsLnByb3RvY29sSXMoUUxQcmV2aWV3UHJvdG9j
b2woKSk7CiB9CiAKLXN0YXRpYyBSZWZQdHI8UXVpY2tMb29rSGFuZGxlQ2xpZW50PiYgdGVzdGlu
Z0NsaWVudCgpCi17Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJlZlB0cjxRdWlja0xvb2tI
YW5kbGVDbGllbnQ+PiB0ZXN0aW5nQ2xpZW50OwotICAgIHJldHVybiB0ZXN0aW5nQ2xpZW50Lmdl
dCgpOwotfQotCi1zdGF0aWMgUXVpY2tMb29rSGFuZGxlQ2xpZW50JiBlbXB0eUNsaWVudCgpCi17
Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFF1aWNrTG9va0hhbmRsZUNsaWVudD4gZW1wdHlD
bGllbnQ7Ci0gICAgcmV0dXJuIGVtcHR5Q2xpZW50LmdldCgpOwotfQotCi1AaW50ZXJmYWNlIFdl
YlByZXZpZXdMb2FkZXIgOiBOU09iamVjdCB7Ci0gICAgUmVmUHRyPFJlc291cmNlTG9hZGVyPiBf
cmVzb3VyY2VMb2FkZXI7Ci0gICAgUmVzb3VyY2VSZXNwb25zZSBfcmVzcG9uc2U7Ci0gICAgUXVp
Y2tMb29rSGFuZGxlKiBfaGFuZGxlOwotICAgIFJlZlB0cjxRdWlja0xvb2tIYW5kbGVDbGllbnQ+
IF9jbGllbnQ7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPFByZXZpZXdDb252ZXJ0ZXI+IF9jb252ZXJ0
ZXI7Ci0gICAgUmV0YWluUHRyPE5TTXV0YWJsZUFycmF5PiBfYnVmZmVyZWREYXRhQXJyYXk7Ci0g
ICAgQk9PTCBfaGFzU2VudERpZFJlY2VpdmVSZXNwb25zZTsKLX0KLQotLSAoaW5zdGFuY2V0eXBl
KWluaXRXaXRoUmVzb3VyY2VMb2FkZXI6KFJlc291cmNlTG9hZGVyJilyZXNvdXJjZUxvYWRlciBy
ZXNvdXJjZVJlc3BvbnNlOihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJilyZXNvdXJjZVJlc3BvbnNl
IHF1aWNrTG9va0hhbmRsZTooUXVpY2tMb29rSGFuZGxlJilxdWlja0xvb2tIYW5kbGU7Ci0tICh2
b2lkKWFwcGVuZERhdGFBcnJheTooTlNBcnJheTxOU0RhdGEgKj4gKilkYXRhQXJyYXk7Ci0tICh2
b2lkKWZpbmlzaGVkQXBwZW5kaW5nOwotLSAodm9pZClmYWlsZWQ7Ci0KLUBlbmQKLQotQGltcGxl
bWVudGF0aW9uIFdlYlByZXZpZXdMb2FkZXIKLQotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoUmVz
b3VyY2VMb2FkZXI6KFJlc291cmNlTG9hZGVyJilyZXNvdXJjZUxvYWRlciByZXNvdXJjZVJlc3Bv
bnNlOihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJilyZXNvdXJjZVJlc3BvbnNlIHF1aWNrTG9va0hh
bmRsZTooUXVpY2tMb29rSGFuZGxlJilxdWlja0xvb2tIYW5kbGUKLXsKLSAgICBzZWxmID0gW3N1
cGVyIGluaXRdOwotICAgIGlmICghc2VsZikKLSAgICAgICAgcmV0dXJuIG5pbDsKLQotICAgIF9y
ZXNvdXJjZUxvYWRlciA9ICZyZXNvdXJjZUxvYWRlcjsKLSAgICBfcmVzcG9uc2UgPSByZXNvdXJj
ZVJlc3BvbnNlOwotICAgIF9oYW5kbGUgPSAmcXVpY2tMb29rSGFuZGxlOwotICAgIF9jb252ZXJ0
ZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPFByZXZpZXdDb252ZXJ0ZXI+KHNlbGYsIF9yZXNwb25zZSk7
Ci0gICAgX2J1ZmZlcmVkRGF0YUFycmF5ID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9j
XSBpbml0XSk7Ci0KLSAgICBpZiAodGVzdGluZ0NsaWVudCgpKQotICAgICAgICBfY2xpZW50ID0g
dGVzdGluZ0NsaWVudCgpOwotICAgIGVsc2UgaWYgKGF1dG8gY2xpZW50ID0gcmVzb3VyY2VMb2Fk
ZXIuZnJhbWVMb2FkZXIoKS0+Y2xpZW50KCkuY3JlYXRlUXVpY2tMb29rSGFuZGxlQ2xpZW50KF9j
b252ZXJ0ZXItPnByZXZpZXdGaWxlTmFtZSgpLCBfY29udmVydGVyLT5wcmV2aWV3VVRJKCkpKQot
ICAgICAgICBfY2xpZW50ID0gV1RGTW92ZShjbGllbnQpOwotICAgIGVsc2UKLSAgICAgICAgX2Ns
aWVudCA9ICZlbXB0eUNsaWVudCgpOwotCi0gICAgTE9HKE5ldHdvcmssICJXZWJQcmV2aWV3Q29u
dmVydGVyIGNyZWF0ZWQgd2l0aCBwcmV2aWV3IGZpbGUgbmFtZSBcIiVzXCIuIiwgX2NvbnZlcnRl
ci0+cHJldmlld0ZpbGVOYW1lKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgcmV0dXJuIHNlbGY7Ci19
Ci0KLS0gKHZvaWQpYXBwZW5kRGF0YUFycmF5OihOU0FycmF5PE5TRGF0YSAqPiAqKWRhdGFBcnJh
eQotewotICAgIExPRyhOZXR3b3JrLCAiV2ViUHJldmlld0NvbnZlcnRlciBhcHBlbmRpbmcgZGF0
YSBhcnJheSB3aXRoIGNvdW50ICVsZC4iLCBkYXRhQXJyYXkuY291bnQpOwotICAgIFtfY29udmVy
dGVyLT5wbGF0Zm9ybUNvbnZlcnRlcigpIGFwcGVuZERhdGFBcnJheTpkYXRhQXJyYXldOwotICAg
IFtfYnVmZmVyZWREYXRhQXJyYXkgYWRkT2JqZWN0c0Zyb21BcnJheTpkYXRhQXJyYXldOwotICAg
IF9jbGllbnQtPmRpZFJlY2VpdmVEYXRhQXJyYXkoKENGQXJyYXlSZWYpZGF0YUFycmF5KTsKLX0K
LQotLSAodm9pZClmaW5pc2hlZEFwcGVuZGluZwotewotICAgIExPRyhOZXR3b3JrLCAiV2ViUHJl
dmlld0NvbnZlcnRlciBmaW5pc2hlZCBhcHBlbmRpbmcgZGF0YS4iKTsKLSAgICBbX2NvbnZlcnRl
ci0+cGxhdGZvcm1Db252ZXJ0ZXIoKSBmaW5pc2hlZEFwcGVuZGluZ0RhdGFdOwotICAgIF9jbGll
bnQtPmRpZEZpbmlzaExvYWRpbmcoKTsKLX0KLQotLSAodm9pZClmYWlsZWQKLXsKLSAgICBMT0co
TmV0d29yaywgIldlYlByZXZpZXdDb252ZXJ0ZXIgZmFpbGVkLiIpOwotICAgIFtfY29udmVydGVy
LT5wbGF0Zm9ybUNvbnZlcnRlcigpIGZpbmlzaENvbnZlcnRpbmddOwotICAgIF9jbGllbnQtPmRp
ZEZhaWwoKTsKLX0KLQotLSAodm9pZClfc2VuZERpZFJlY2VpdmVSZXNwb25zZUlmTmVjZXNzYXJ5
Ci17Ci0gICAgaWYgKF9oYXNTZW50RGlkUmVjZWl2ZVJlc3BvbnNlKQotICAgICAgICByZXR1cm47
Ci0KLSAgICBbX2J1ZmZlcmVkRGF0YUFycmF5IHJlbW92ZUFsbE9iamVjdHNdOwotCi0gICAgUmVz
b3VyY2VSZXNwb25zZSByZXNwb25zZSB7IF9jb252ZXJ0ZXItPnByZXZpZXdSZXNwb25zZSgpIH07
Ci0gICAgcmVzcG9uc2Uuc2V0SXNRdWlja0xvb2sodHJ1ZSk7Ci0gICAgQVNTRVJUKHJlc3BvbnNl
Lm1pbWVUeXBlKCkubGVuZ3RoKCkpOwotCi0gICAgX3Jlc291cmNlTG9hZGVyLT5kb2N1bWVudExv
YWRlcigpLT5zZXRQcmV2aWV3Q29udmVydGVyKFdURk1vdmUoX2NvbnZlcnRlcikpOwotCi0gICAg
X2hhc1NlbnREaWRSZWNlaXZlUmVzcG9uc2UgPSBZRVM7Ci0gICAgX3Jlc291cmNlTG9hZGVyLT5k
aWRSZWNlaXZlUmVzcG9uc2UocmVzcG9uc2UpOwotfQotCi0tICh2b2lkKWNvbm5lY3Rpb246KE5T
VVJMQ29ubmVjdGlvbiAqKWNvbm5lY3Rpb24gZGlkUmVjZWl2ZURhdGE6KE5TRGF0YSAqKWRhdGEg
bGVuZ3RoUmVjZWl2ZWQ6KGxvbmcgbG9uZylsZW5ndGhSZWNlaXZlZAotewotICAgIEFTU0VSVF9V
TlVTRUQoY29ubmVjdGlvbiwgIWNvbm5lY3Rpb24pOwotICAgIFtzZWxmIF9zZW5kRGlkUmVjZWl2
ZVJlc3BvbnNlSWZOZWNlc3NhcnldOwotCi0gICAgLy8gUXVpY2tMb29rIGNvZGUgc2VuZHMgdXMg
YSBuaWwgZGF0YSBhdCB0aW1lcy4gVGhlIGNoZWNrIGJlbG93IGlzIHRoZSBzYW1lIGFzIHRoZSBv
bmUgaW4KLSAgICAvLyBSZXNvdXJjZUhhbmRsZU1hYy5jcHAgYWRkZWQgZm9yIGEgZGlmZmVyZW50
IGJ1Zy4KLSAgICBpZiAoYXV0byBkYXRhTGVuZ3RoID0gZGF0YS5sZW5ndGgpCi0gICAgICAgIF9y
ZXNvdXJjZUxvYWRlci0+ZGlkUmVjZWl2ZURhdGEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFy
Kj4oZGF0YS5ieXRlcyksIGRhdGFMZW5ndGgsIGxlbmd0aFJlY2VpdmVkLCBEYXRhUGF5bG9hZEJ5
dGVzKTsKLX0KLQotLSAodm9pZCljb25uZWN0aW9uRGlkRmluaXNoTG9hZGluZzooTlNVUkxDb25u
ZWN0aW9uICopY29ubmVjdGlvbgotewotICAgIEFTU0VSVF9VTlVTRUQoY29ubmVjdGlvbiwgIWNv
bm5lY3Rpb24pOwotICAgIEFTU0VSVChfaGFzU2VudERpZFJlY2VpdmVSZXNwb25zZSk7Ci0KLSAg
ICBOZXR3b3JrTG9hZE1ldHJpY3MgZW1wdHlNZXRyaWNzOwotICAgIF9yZXNvdXJjZUxvYWRlci0+
ZGlkRmluaXNoTG9hZGluZyhlbXB0eU1ldHJpY3MpOwotfQotCi1zdGF0aWMgaW5saW5lIGJvb2wg
aXNRdWlja0xvb2tQYXNzd29yZEVycm9yKE5TRXJyb3IgKmVycm9yKQotewotICAgIHJldHVybiBl
cnJvci5jb2RlID09IGtRTFJldHVyblBhc3N3b3JkUHJvdGVjdGVkICYmIFtlcnJvci5kb21haW4g
aXNFcXVhbFRvU3RyaW5nOkAiUXVpY2tMb29rRXJyb3JEb21haW4iXTsKLX0KLQotLSAodm9pZClj
b25uZWN0aW9uOihOU1VSTENvbm5lY3Rpb24gKiljb25uZWN0aW9uIGRpZEZhaWxXaXRoRXJyb3I6
KE5TRXJyb3IgKillcnJvcgotewotICAgIEFTU0VSVF9VTlVTRUQoY29ubmVjdGlvbiwgIWNvbm5l
Y3Rpb24pOwotCi0gICAgaWYgKCFpc1F1aWNrTG9va1Bhc3N3b3JkRXJyb3IoZXJyb3IpKSB7Ci0g
ICAgICAgIFtzZWxmIF9zZW5kRGlkUmVjZWl2ZVJlc3BvbnNlSWZOZWNlc3NhcnldOwotICAgICAg
ICBfcmVzb3VyY2VMb2FkZXItPmRpZEZhaWwoZXJyb3IpOwotICAgICAgICByZXR1cm47Ci0gICAg
fQotCi0gICAgaWYgKCFfY2xpZW50LT5zdXBwb3J0c1Bhc3N3b3JkRW50cnkoKSkgewotICAgICAg
ICBfcmVzb3VyY2VMb2FkZXItPmRpZEZhaWwoX3Jlc291cmNlTG9hZGVyLT5jYW5ub3RTaG93VVJM
RXJyb3IoKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBfY2xpZW50LT5kaWRSZXF1
ZXN0UGFzc3dvcmQoW3JldGFpbmVkU2VsZiA9IHJldGFpblB0cihzZWxmKV0gKGNvbnN0IFN0cmlu
ZyYgcGFzc3dvcmQpIHsKLSAgICAgICAgYXV0byBjb252ZXJ0ZXIgPSBzdGQ6Om1ha2VfdW5pcXVl
PFByZXZpZXdDb252ZXJ0ZXI+KHJldGFpbmVkU2VsZi5nZXQoKSwgcmV0YWluZWRTZWxmLT5fcmVz
cG9uc2UsIHBhc3N3b3JkKTsKLSAgICAgICAgUUxQcmV2aWV3Q29udmVydGVyICpwbGF0Zm9ybUNv
bnZlcnRlciA9IGNvbnZlcnRlci0+cGxhdGZvcm1Db252ZXJ0ZXIoKTsKLSAgICAgICAgW3BsYXRm
b3JtQ29udmVydGVyIGFwcGVuZERhdGFBcnJheTpyZXRhaW5lZFNlbGYtPl9idWZmZXJlZERhdGFB
cnJheS5nZXQoKV07Ci0gICAgICAgIFtwbGF0Zm9ybUNvbnZlcnRlciBmaW5pc2hlZEFwcGVuZGlu
Z0RhdGFdOwotICAgICAgICByZXRhaW5lZFNlbGYtPl9jb252ZXJ0ZXIgPSBXVEZNb3ZlKGNvbnZl
cnRlcik7Ci0gICAgfSk7Ci19Ci0KLUBlbmQKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCiBzdGF0
aWMgTlNEaWN0aW9uYXJ5ICp0ZW1wb3JhcnlGaWxlQXR0cmlidXRlcygpCiB7CiAgICAgc3RhdGlj
IE5TRGljdGlvbmFyeSAqYXR0cmlidXRlcyA9IFtAewpAQCAtMzIwLDY1ICsxNjQsNiBAQCBOU1N0
cmluZyAqY3JlYXRlVGVtcG9yYXJ5RmlsZUZvclF1aWNrTG9vayhOU1N0cmluZyAqZmlsZU5hbWUp
CiAgICAgcmV0dXJuIGNvbnRlbnRQYXRoOwogfQogCi1RdWlja0xvb2tIYW5kbGU6OlF1aWNrTG9v
a0hhbmRsZShSZXNvdXJjZUxvYWRlciYgbG9hZGVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBy
ZXNwb25zZSkKLSAgICA6IG1fcHJldmlld0xvYWRlciB7IGFkb3B0TlMoW1tXZWJQcmV2aWV3TG9h
ZGVyIGFsbG9jXSBpbml0V2l0aFJlc291cmNlTG9hZGVyOmxvYWRlciByZXNvdXJjZVJlc3BvbnNl
OnJlc3BvbnNlIHF1aWNrTG9va0hhbmRsZToqdGhpc10pIH0KLXsKLX0KLQotUXVpY2tMb29rSGFu
ZGxlOjp+UXVpY2tMb29rSGFuZGxlKCkKLXsKLX0KLQotYm9vbCBRdWlja0xvb2tIYW5kbGU6OnNo
b3VsZENyZWF0ZUZvck1JTUVUeXBlKGNvbnN0IFN0cmluZyYgbWltZVR5cGUpCi17Ci0gICAgcmV0
dXJuIFtRTFByZXZpZXdHZXRTdXBwb3J0ZWRNSU1FVHlwZXNTZXQoKSBjb250YWluc09iamVjdDpt
aW1lVHlwZV07Ci19Ci0KLXN0ZDo6dW5pcXVlX3B0cjxRdWlja0xvb2tIYW5kbGU+IFF1aWNrTG9v
a0hhbmRsZTo6Y3JlYXRlKFJlc291cmNlTG9hZGVyJiBsb2FkZXIsIGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmIHJlc3BvbnNlKQotewotICAgIEFTU0VSVChzaG91bGRDcmVhdGVGb3JNSU1FVHlwZShy
ZXNwb25zZS5taW1lVHlwZSgpKSk7Ci0gICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8UXVpY2tM
b29rSGFuZGxlPihsb2FkZXIsIHJlc3BvbnNlKTsKLX0KLQotYm9vbCBRdWlja0xvb2tIYW5kbGU6
OmRpZFJlY2VpdmVEYXRhKGNvbnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkKLXsKLSAg
ICBpZiAobV9maW5pc2hlZExvYWRpbmdEYXRhSW50b0NvbnZlcnRlcikKLSAgICAgICAgcmV0dXJu
IGZhbHNlOwotCi0gICAgW21fcHJldmlld0xvYWRlciBhcHBlbmREYXRhQXJyYXk6QFsgW05TRGF0
YSBkYXRhV2l0aEJ5dGVzOmRhdGEgbGVuZ3RoOmxlbmd0aF0gXV07Ci0gICAgcmV0dXJuIHRydWU7
Ci19Ci0KLWJvb2wgUXVpY2tMb29rSGFuZGxlOjpkaWRSZWNlaXZlQnVmZmVyKGNvbnN0IFNoYXJl
ZEJ1ZmZlciYgYnVmZmVyKQotewotICAgIGlmIChtX2ZpbmlzaGVkTG9hZGluZ0RhdGFJbnRvQ29u
dmVydGVyKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBbbV9wcmV2aWV3TG9hZGVyIGFw
cGVuZERhdGFBcnJheTpidWZmZXIuY3JlYXRlTlNEYXRhQXJyYXkoKS5nZXQoKV07Ci0gICAgcmV0
dXJuIHRydWU7Ci19Ci0KLWJvb2wgUXVpY2tMb29rSGFuZGxlOjpkaWRGaW5pc2hMb2FkaW5nKCkK
LXsKLSAgICBpZiAobV9maW5pc2hlZExvYWRpbmdEYXRhSW50b0NvbnZlcnRlcikKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotCi0gICAgbV9maW5pc2hlZExvYWRpbmdEYXRhSW50b0NvbnZlcnRlciA9
IHRydWU7Ci0gICAgW21fcHJldmlld0xvYWRlciBmaW5pc2hlZEFwcGVuZGluZ107Ci0gICAgcmV0
dXJuIHRydWU7Ci19Ci0KLXZvaWQgUXVpY2tMb29rSGFuZGxlOjpkaWRGYWlsKCkKLXsKLSAgICBb
bV9wcmV2aWV3TG9hZGVyIGZhaWxlZF07Ci0gICAgbV9wcmV2aWV3TG9hZGVyID0gbnVsbHB0cjsK
LX0KLQotdm9pZCBRdWlja0xvb2tIYW5kbGU6OnNldENsaWVudEZvclRlc3RpbmcoUmVmUHRyPFF1
aWNrTG9va0hhbmRsZUNsaWVudD4mJiBjbGllbnQpCi17Ci0gICAgdGVzdGluZ0NsaWVudCgpID0g
V1RGTW92ZShjbGllbnQpOwotfQotCi19Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRp
ZiAvLyBVU0UoUVVJQ0tfTE9PSykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VIYW5kbGUuaAppbmRleCA4NmUxMTYxMzk3Yjc5NTc5Mjk3ZDcwZTYzYzhmMDA5
ZGFjNDc4NTcwLi5kYTU5NTE4MzIwZTdlOGRmMjJkYzQ1YTNjOTZkZjkxNTk3NGYyNzdmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCkBA
IC03OSw3ICs3OSw2IEBAIGNsYXNzIEZyYW1lOwogY2xhc3MgVVJMOwogY2xhc3MgTmV0d29ya2lu
Z0NvbnRleHQ7CiBjbGFzcyBQcm90ZWN0aW9uU3BhY2U7Ci1jbGFzcyBRdWlja0xvb2tIYW5kbGU7
CiBjbGFzcyBSZXNvdXJjZUVycm9yOwogY2xhc3MgUmVzb3VyY2VIYW5kbGVDbGllbnQ7CiBjbGFz
cyBSZXNvdXJjZUhhbmRsZUludGVybmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9pb3MvUHJldmlld0xvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9pb3MvUHJldmlld0xvYWRlckNsaWVudC5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNj
MWRlOGNjMzBjYzk5YWFjYzYxNjZhMThkNjhjNjhkZDViMDE5NTcKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9QcmV2aWV3TG9hZGVyQ2xpZW50
LmgKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
bmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIFByZXZpZXdMb2FkZXJDbGllbnQgOiBwdWJsaWMgUmVmQ291bnRlZDxQcmV2aWV3TG9hZGVy
Q2xpZW50PiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+UHJldmlld0xvYWRlckNsaWVudCgpIHsg
fQorICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YUFycmF5KENGQXJyYXlSZWYpIHsgfQor
ICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKCkgeyB9CisgICAgdmlydHVhbCB2b2lk
IGRpZEZhaWwoKSB7IH0KKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNQYXNzd29yZEVudHJ5KCkg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVxdWVzdFBhc3N3
b3JkKEZ1bmN0aW9uPHZvaWQoY29uc3QgU3RyaW5nJik+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsg
Y29tcGxldGlvbkhhbmRsZXIoIiIpOyB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9RdWlja0xvb2tI
YW5kbGVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvaW9zL1F1aWNr
TG9va0hhbmRsZUNsaWVudC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2OTA0ZmQ0
NDk5NmQxNzgxOGQwZWE5MmE2Y2E1NDZiMGRhODNiNzVhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
aW9zL1F1aWNrTG9va0hhbmRsZUNsaWVudC5oCisrKyAvZGV2L251bGwKQEAgLTEsNDkgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgot
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBVU0UoUVVJQ0tfTE9PSykK
LQotI2luY2x1ZGUgPENvcmVGb3VuZGF0aW9uL0NvcmVGb3VuZGF0aW9uLmg+Ci0jaW5jbHVkZSA8
d3RmL0Z1bmN0aW9uLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLSNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBRdWlj
a0xvb2tIYW5kbGVDbGllbnQgOiBwdWJsaWMgUmVmQ291bnRlZDxRdWlja0xvb2tIYW5kbGVDbGll
bnQ+IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5RdWlja0xvb2tIYW5kbGVDbGllbnQoKSB7IH0K
LSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGFBcnJheShDRkFycmF5UmVmKSB7IH0KLSAg
ICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZygpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBk
aWRGYWlsKCkgeyB9Ci0gICAgdmlydHVhbCBib29sIHN1cHBvcnRzUGFzc3dvcmRFbnRyeSgpIGNv
bnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlcXVlc3RQYXNzd29y
ZChGdW5jdGlvbjx2b2lkKGNvbnN0IFN0cmluZyYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7IGNv
bXBsZXRpb25IYW5kbGVyKCIiKTsgfQotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0j
ZW5kaWYgLy8gVVNFKFFVSUNLX0xPT0spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAK
aW5kZXggMDhkYThjNjgyN2ZkMzRjZGM1Y2MwZjBiYjUxMDI2NmRiZWIyYjJjZS4uNDMzMGQyNDEw
OTQ5MmM4NzgyMmYzNGU4M2UxMmE0ODdlNjJjNmNlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmNwcApAQCAtMjMzLDggKzIzMyw4IEBACiAjZW5kaWYKIAogI2lmIFVTRShRVUlDS19M
T09LKQotI2luY2x1ZGUgIk1vY2tRdWlja0xvb2tIYW5kbGVDbGllbnQuaCIKLSNpbmNsdWRlICJR
dWlja0xvb2suaCIKKyNpbmNsdWRlICJNb2NrUHJldmlld0xvYWRlckNsaWVudC5oIgorI2luY2x1
ZGUgIlByZXZpZXdMb2FkZXIuaCIKICNlbmRpZgogCiB1c2luZyBKU0M6OkNhbGxEYXRhOwpAQCAt
NDQ2LDggKzQ0Niw4IEBAIHZvaWQgSW50ZXJuYWxzOjpyZXNldFRvQ29uc2lzdGVudFN0YXRlKFBh
Z2UmIHBhZ2UpCiAgICAgcGFnZS5zZXRMb3dQb3dlck1vZGVFbmFibGVkT3ZlcnJpZGVGb3JUZXN0
aW5nKHN0ZDo6bnVsbG9wdCk7CiAKICNpZiBVU0UoUVVJQ0tfTE9PSykKLSAgICBNb2NrUXVpY2tM
b29rSGFuZGxlQ2xpZW50OjpzaW5nbGV0b24oKS5zZXRQYXNzd29yZCgiIik7Ci0gICAgUXVpY2tM
b29rSGFuZGxlOjpzZXRDbGllbnRGb3JUZXN0aW5nKG51bGxwdHIpOworICAgIE1vY2tQcmV2aWV3
TG9hZGVyQ2xpZW50OjpzaW5nbGV0b24oKS5zZXRQYXNzd29yZCgiIik7CisgICAgUHJldmlld0xv
YWRlcjo6c2V0Q2xpZW50Rm9yVGVzdGluZyhudWxscHRyKTsKICNlbmRpZgogfQogCkBAIC0zODI5
LDggKzM4MjksOCBAQCBWZWN0b3I8U3RyaW5nPiBJbnRlcm5hbHM6OmFjY2Vzc0tleU1vZGlmaWVy
cygpIGNvbnN0CiB2b2lkIEludGVybmFsczo6c2V0UXVpY2tMb29rUGFzc3dvcmQoY29uc3QgU3Ry
aW5nJiBwYXNzd29yZCkKIHsKICNpZiBVU0UoUVVJQ0tfTE9PSykKLSAgICBhdXRvJiBxdWlja0xv
b2tIYW5kbGVDbGllbnQgPSBNb2NrUXVpY2tMb29rSGFuZGxlQ2xpZW50OjpzaW5nbGV0b24oKTsK
LSAgICBRdWlja0xvb2tIYW5kbGU6OnNldENsaWVudEZvclRlc3RpbmcoJnF1aWNrTG9va0hhbmRs
ZUNsaWVudCk7CisgICAgYXV0byYgcXVpY2tMb29rSGFuZGxlQ2xpZW50ID0gTW9ja1ByZXZpZXdM
b2FkZXJDbGllbnQ6OnNpbmdsZXRvbigpOworICAgIFByZXZpZXdMb2FkZXI6OnNldENsaWVudEZv
clRlc3RpbmcoJnF1aWNrTG9va0hhbmRsZUNsaWVudCk7CiAgICAgcXVpY2tMb29rSGFuZGxlQ2xp
ZW50LnNldFBhc3N3b3JkKHBhc3N3b3JkKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHBhc3N3
b3JkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1ByZXZpZXdMb2Fk
ZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrUHJldmlld0xvYWRlckNs
aWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMGU3ZDkzMTBiZTIyYzBhNmY3MjQ3NjliOTcyNjE0OTAwYmY1
YThhNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1ByZXZp
ZXdMb2FkZXJDbGllbnQuY3BwCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTW9ja1ByZXZpZXdMb2FkZXJDbGllbnQuaCIKKworI2lm
IFVTRShRVUlDS19MT09LKQorCisjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KKyNpbmNsdWRl
IDx3dGYvUnVuTG9vcC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK01vY2tQcmV2aWV3TG9h
ZGVyQ2xpZW50JiBNb2NrUHJldmlld0xvYWRlckNsaWVudDo6c2luZ2xldG9uKCkKK3sKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TW9ja1ByZXZpZXdMb2FkZXJDbGllbnQ+IHNoYXJlZENsaWVu
dDsKKyAgICByZXR1cm4gc2hhcmVkQ2xpZW50LmdldCgpOworfQorCit2b2lkIE1vY2tQcmV2aWV3
TG9hZGVyQ2xpZW50OjpkaWRSZXF1ZXN0UGFzc3dvcmQoRnVuY3Rpb248dm9pZChjb25zdCBTdHJp
bmcmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkp
OworICAgIFJ1bkxvb3A6OmN1cnJlbnQoKS5kaXNwYXRjaChbY29tcGxldGlvbkhhbmRsZXIgPSBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgcGFzc3dvcmQgPSBtX3Bhc3N3b3JkXSB7CisgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKHBhc3N3b3JkKTsKKyAgICB9KTsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gVVNFKFFVSUNLX0xPT0spCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQcmV2aWV3TG9hZGVyQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL01vY2tQcmV2aWV3TG9hZGVyQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmJj
YTEwZGQ4Nzk5ZGU2ZGQ4YjZjODk5MGM0MzZmZjhmZDFlMGMwNQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1ByZXZpZXdMb2FkZXJDbGllbnQuaApAQCAtMCww
ICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJQcmV2aWV3
TG9hZGVyQ2xpZW50LmgiCisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgTW9ja1ByZXZpZXdMb2FkZXJDbGllbnQgZmluYWwgOiBw
dWJsaWMgUHJldmlld0xvYWRlckNsaWVudCB7CitwdWJsaWM6CisgICAgc3RhdGljIE1vY2tQcmV2
aWV3TG9hZGVyQ2xpZW50JiBzaW5nbGV0b24oKTsKKworICAgIHZvaWQgc2V0UGFzc3dvcmQoY29u
c3QgU3RyaW5nJiBwYXNzd29yZCkgeyBtX3Bhc3N3b3JkID0gcGFzc3dvcmQ7IH0KKworICAgIGJv
b2wgc3VwcG9ydHNQYXNzd29yZEVudHJ5KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsg
fQorICAgIHZvaWQgZGlkUmVxdWVzdFBhc3N3b3JkKEZ1bmN0aW9uPHZvaWQoY29uc3QgU3RyaW5n
Jik+JiYpIG92ZXJyaWRlOworCitwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBOZXZlckRlc3Ry
b3llZDxNb2NrUHJldmlld0xvYWRlckNsaWVudD47CisgICAgTW9ja1ByZXZpZXdMb2FkZXJDbGll
bnQoKSA9IGRlZmF1bHQ7CisKKyAgICBTdHJpbmcgbV9wYXNzd29yZDsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1F1
aWNrTG9va0hhbmRsZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tRdWlj
a0xvb2tIYW5kbGVDbGllbnQuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYTgx
OTdlMTA5OTBiMDE3Mzk1NmZiZmM5YzdhZjcwMjAzNmQ2YmJkLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1F1
aWNrTG9va0hhbmRsZUNsaWVudC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw1MiArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIk1vY2tRdWlja0xvb2tI
YW5kbGVDbGllbnQuaCIKLQotI2lmIFVTRShRVUlDS19MT09LKQotCi0jaW5jbHVkZSA8d3RmL01h
aW5UaHJlYWQuaD4KLSNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgotCi1uYW1lc3BhY2UgV2ViQ29y
ZSB7Ci0KLU1vY2tRdWlja0xvb2tIYW5kbGVDbGllbnQmIE1vY2tRdWlja0xvb2tIYW5kbGVDbGll
bnQ6OnNpbmdsZXRvbigpCi17Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPE1vY2tRdWlja0xv
b2tIYW5kbGVDbGllbnQ+IHNoYXJlZENsaWVudDsKLSAgICByZXR1cm4gc2hhcmVkQ2xpZW50Lmdl
dCgpOwotfQotCi12b2lkIE1vY2tRdWlja0xvb2tIYW5kbGVDbGllbnQ6OmRpZFJlcXVlc3RQYXNz
d29yZChGdW5jdGlvbjx2b2lkKGNvbnN0IFN0cmluZyYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQot
ewotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgUnVuTG9vcDo6Y3VycmVudCgpLmRp
c3BhdGNoKFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBw
YXNzd29yZCA9IG1fcGFzc3dvcmRdIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIocGFzc3dv
cmQpOwotICAgIH0pOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBV
U0UoUVVJQ0tfTE9PSykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1F1
aWNrTG9va0hhbmRsZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrUXVpY2tM
b29rSGFuZGxlQ2xpZW50LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM5Y2VmMTdi
OWQwNjY5Y2Y3NWMxYTA5OGMyNTEyNzBmODNiNjUyNWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrUXVpY2tM
b29rSGFuZGxlQ2xpZW50LmgKKysrIC9kZXYvbnVsbApAQCAtMSw1MyArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
LSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
Ci0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0g
Ki8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBVU0UoUVVJQ0tfTE9PSykKLQotI2luY2x1ZGUgIlF1
aWNrTG9va0hhbmRsZUNsaWVudC5oIgotI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgot
Ci1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIE1vY2tRdWlja0xvb2tIYW5kbGVDbGllbnQg
ZmluYWwgOiBwdWJsaWMgUXVpY2tMb29rSGFuZGxlQ2xpZW50IHsKLXB1YmxpYzoKLSAgICBzdGF0
aWMgTW9ja1F1aWNrTG9va0hhbmRsZUNsaWVudCYgc2luZ2xldG9uKCk7Ci0KLSAgICB2b2lkIHNl
dFBhc3N3b3JkKGNvbnN0IFN0cmluZyYgcGFzc3dvcmQpIHsgbV9wYXNzd29yZCA9IHBhc3N3b3Jk
OyB9Ci0KLSAgICBib29sIHN1cHBvcnRzUGFzc3dvcmRFbnRyeSgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIHRydWU7IH0KLSAgICB2b2lkIGRpZFJlcXVlc3RQYXNzd29yZChGdW5jdGlvbjx2b2lk
KGNvbnN0IFN0cmluZyYpPiYmKSBvdmVycmlkZTsKLQotcHJpdmF0ZToKLSAgICBmcmllbmQgY2xh
c3MgTmV2ZXJEZXN0cm95ZWQ8TW9ja1F1aWNrTG9va0hhbmRsZUNsaWVudD47Ci0gICAgTW9ja1F1
aWNrTG9va0hhbmRsZUNsaWVudCgpID0gZGVmYXVsdDsKLQotICAgIFN0cmluZyBtX3Bhc3N3b3Jk
OwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gVVNFKFFVSUNLX0xP
T0spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuaAppbmRleCA4YzQ5NTE3OTI5YzM3NTFiOTI4ZjY5YTk2YzBiMTU3N2Iw
NDliNmFjLi44YWU2MmY4MWY4ZDIxYjNiMTk0MjZjNDdjMjIxNmI0M2Q3ZTJjZGZhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmgKQEAgLTI0Niw3ICsyNDYsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgc2hvdWxkUGFp
bnRCcm9rZW5JbWFnZShjb25zdCBXZWJDb3JlOjpVUkwmKSBjb25zdCBmaW5hbDsKIAogI2lmIFVT
RShRVUlDS19MT09LKQotICAgIFJlZlB0cjxXZWJDb3JlOjpRdWlja0xvb2tIYW5kbGVDbGllbnQ+
IGNyZWF0ZVF1aWNrTG9va0hhbmRsZUNsaWVudChjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCBjb25z
dCBTdHJpbmcmIHV0aSkgZmluYWw7CisgICAgUmVmUHRyPFdlYkNvcmU6OlByZXZpZXdMb2FkZXJD
bGllbnQ+IGNyZWF0ZVByZXZpZXdMb2FkZXJDbGllbnQoY29uc3QgU3RyaW5nJiBmaWxlTmFtZSwg
Y29uc3QgU3RyaW5nJiB1dGkpIGZpbmFsOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ09OVEVOVF9G
SUxURVJJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCmluZGV4IDUzNzcxMjk4MjMzNjY5YTYyYzE0ZjdmMTg2
NGM0ZjhjMjEwY2UyZDEuLjI4MzQ1ZmE0Yjk0NTc0Nzg3NTRkZGM5MjEzZTQ4MjJlZTRjNjlhODUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50Lm1tCkBAIC0xNTAsOCArMTUwLDggQEAKIAogI2lmIFVTRShRVUlDS19M
T09LKQogI2ltcG9ydCA8V2ViQ29yZS9OU0ZpbGVNYW5hZ2VyU1BJLmg+CisjaW1wb3J0IDxXZWJD
b3JlL1ByZXZpZXdMb2FkZXJDbGllbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUXVpY2tMb29rLmg+
Ci0jaW1wb3J0IDxXZWJDb3JlL1F1aWNrTG9va0hhbmRsZUNsaWVudC5oPgogI2VuZGlmCiAKICNp
ZiBIQVZFKEFQUF9MSU5LUykKQEAgLTIyMjIsOSArMjIyMiw5IEBAIGJvb2wgV2ViRnJhbWVMb2Fk
ZXJDbGllbnQ6OnNob3VsZExvYWRNZWRpYUVsZW1lbnRVUkwoY29uc3QgVVJMJiB1cmwpIGNvbnN0
CiAjZW5kaWYKIAogI2lmIFVTRShRVUlDS19MT09LKQotUmVmUHRyPFF1aWNrTG9va0hhbmRsZUNs
aWVudD4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZVF1aWNrTG9va0hhbmRsZUNsaWVudChj
b25zdCBTdHJpbmcmIGZpbGVOYW1lLCBjb25zdCBTdHJpbmcmIHV0aSkKK1JlZlB0cjxQcmV2aWV3
TG9hZGVyQ2xpZW50PiBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlUHJldmlld0xvYWRlckNs
aWVudChjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCBjb25zdCBTdHJpbmcmIHV0aSkKIHsKLSAgICBj
bGFzcyBRdWlja0xvb2tEb2N1bWVudFdyaXRlciA6IHB1YmxpYyBXZWJDb3JlOjpRdWlja0xvb2tI
YW5kbGVDbGllbnQgeworICAgIGNsYXNzIFF1aWNrTG9va0RvY3VtZW50V3JpdGVyIDogcHVibGlj
IFdlYkNvcmU6OlByZXZpZXdMb2FkZXJDbGllbnQgewogICAgIHB1YmxpYzoKICAgICAgICAgZXhw
bGljaXQgUXVpY2tMb29rRG9jdW1lbnRXcml0ZXIoTlNTdHJpbmcgKmZpbGVQYXRoKQogICAgICAg
ICAgICAgOiBtX2ZpbGVQYXRoIHsgZmlsZVBhdGggfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdDIvV2Vi
S2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDliODFmOTgwMmNmNWVhYjE1MGZl
OGU4YzhhYjc1NTJjMmI1YzA5NTUuLjQ2NWU0NmEwZGQ5OGRhOThiOTNiYmY5ZmZjNTE0YWQ1NzVk
MGJiZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTE0MjcsOCArMTQyNyw4IEBACiAJCUExQTRGRTVCMThEQ0U5RkEwMEI1RUE4
QSAvKiBfV0tEb3dubG9hZC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEExQTRGRTU4MThEQ0U5RkEwMEI1RUE4QSAvKiBfV0tEb3dubG9hZC5tbSAqLzsg
fTsKIAkJQTFBNEZFNUMxOERDRTlGQTAwQjVFQThBIC8qIF9XS0Rvd25sb2FkSW50ZXJuYWwuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExQTRGRTU5MThE
Q0U5RkEwMEI1RUE4QSAvKiBfV0tEb3dubG9hZEludGVybmFsLmggKi87IH07CiAJCUExQTRGRTYx
MThERDU0QTQwMEI1RUE4QSAvKiBfV0tEb3dubG9hZERlbGVnYXRlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMUE0RkU2MDE4REQ1NEE0MDBCNUVBOEEg
LyogX1dLRG93bmxvYWREZWxlZ2F0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07Ci0JCUExQzUxMkM4MTkwNjU2RTUwMDQ0ODkxNCAvKiBXZWJRdWlja0xv
b2tIYW5kbGVDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTFDNTEyQzYxOTA2NTZFNTAwNDQ4OTE0IC8qIFdlYlF1aWNrTG9va0hhbmRsZUNs
aWVudC5jcHAgKi87IH07Ci0JCUExQzUxMkM5MTkwNjU2RTUwMDQ0ODkxNCAvKiBXZWJRdWlja0xv
b2tIYW5kbGVDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEExQzUxMkM3MTkwNjU2RTUwMDQ0ODkxNCAvKiBXZWJRdWlja0xvb2tIYW5kbGVDbGll
bnQuaCAqLzsgfTsKKwkJQTFDNTEyQzgxOTA2NTZFNTAwNDQ4OTE0IC8qIFdlYlByZXZpZXdMb2Fk
ZXJDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTFDNTEyQzYxOTA2NTZFNTAwNDQ4OTE0IC8qIFdlYlByZXZpZXdMb2FkZXJDbGllbnQuY3Bw
ICovOyB9OworCQlBMUM1MTJDOTE5MDY1NkU1MDA0NDg5MTQgLyogV2ViUHJldmlld0xvYWRlckNs
aWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTFD
NTEyQzcxOTA2NTZFNTAwNDQ4OTE0IC8qIFdlYlByZXZpZXdMb2FkZXJDbGllbnQuaCAqLzsgfTsK
IAkJQTFENDIwNDcxREI1NTc4NTAwQkI2QjBEIC8qIFdLQ29udGV4dE1lbnVMaXN0ZW5lci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMUVBMDIzNTFE
QUJGRjdFMDA5NjAyMUYgLyogV0tDb250ZXh0TWVudUxpc3RlbmVyLmNwcCAqLzsgfTsKIAkJQTFE
RjYzMTIxOEUwQjdDODAwM0EzRTJBIC8qIERvd25sb2FkQ2xpZW50Lm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTFERjYzMTAxOEUwQjdDODAwM0EzRTJB
IC8qIERvd25sb2FkQ2xpZW50Lm1tICovOyB9OwogCQlBMURGNjMxMzE4RTBCN0M4MDAzQTNFMkEg
LyogRG93bmxvYWRDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEExREY2MzExMThFMEI3QzgwMDNBM0UyQSAvKiBEb3dubG9hZENsaWVudC5oICov
OyB9OwpAQCAtMzY5MCw4ICszNjkwLDggQEAKIAkJQTFBNEZFNTgxOERDRTlGQTAwQjVFQThBIC8q
IF9XS0Rvd25sb2FkLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
X1dLRG93bmxvYWQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExQTRGRTU5MThE
Q0U5RkEwMEI1RUE4QSAvKiBfV0tEb3dubG9hZEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IF9XS0Rvd25sb2FkSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQTFBNEZFNjAxOERENTRBNDAwQjVFQThBIC8qIF9XS0Rvd25sb2FkRGVsZWdh
dGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLRG93bmxvYWREZWxlZ2F0
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBMUM1MTJDNjE5MDY1NkU1MDA0NDg5
MTQgLyogV2ViUXVpY2tMb29rSGFuZGxlQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IFdlYlF1aWNrTG9va0hhbmRsZUNsaWVudC5jcHA7IHBhdGggPSBpb3Mv
V2ViUXVpY2tMb29rSGFuZGxlQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJQTFDNTEyQzcxOTA2NTZFNTAwNDQ4OTE0IC8qIFdlYlF1aWNrTG9va0hhbmRsZUNsaWVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJRdWlja0xvb2tIYW5kbGVDbGll
bnQuaDsgcGF0aCA9IGlvcy9XZWJRdWlja0xvb2tIYW5kbGVDbGllbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQTFDNTEyQzYxOTA2NTZFNTAwNDQ4OTE0IC8qIFdlYlByZXZpZXdM
b2FkZXJDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2Vi
UHJldmlld0xvYWRlckNsaWVudC5jcHA7IHBhdGggPSBpb3MvV2ViUHJldmlld0xvYWRlckNsaWVu
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUExQzUxMkM3MTkwNjU2RTUwMDQ0
ODkxNCAvKiBXZWJQcmV2aWV3TG9hZGVyQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IFdlYlByZXZpZXdMb2FkZXJDbGllbnQuaDsgcGF0aCA9IGlvcy9XZWJQcmV2aWV3
TG9hZGVyQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExREY2MzEwMThF
MEI3QzgwMDNBM0UyQSAvKiBEb3dubG9hZENsaWVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IERvd25sb2FkQ2xpZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlBMURGNjMxMTE4RTBCN0M4MDAzQTNFMkEgLyogRG93bmxvYWRDbGllbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRG93bmxvYWRDbGllbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTFFQTAyMzUxREFCRkY3RTAwOTYwMjFGIC8qIFdLQ29u
dGV4dE1lbnVMaXN0ZW5lci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBXS0NvbnRleHRNZW51TGlzdGVuZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtNTI4MCw4ICs1MjgwLDggQEAKIAkJCQkyRDI4RjNFMDE4ODVDQ0MxMDA0QjlFQUUgLyogV2Vi
Q2hyb21lQ2xpZW50SU9TLm1tICovLAogCQkJCTJEMjhGM0UyMTg4NUNDQzEwMDRCOUVBRSAvKiBX
ZWJFZGl0b3JDbGllbnRJT1MubW0gKi8sCiAJCQkJMkQyOEYzRTMxODg1Q0NDMTAwNEI5RUFFIC8q
IFdlYkZyYW1lTG9hZGVyQ2xpZW50SU9TLm1tICovLAotCQkJCUExQzUxMkM2MTkwNjU2RTUwMDQ0
ODkxNCAvKiBXZWJRdWlja0xvb2tIYW5kbGVDbGllbnQuY3BwICovLAotCQkJCUExQzUxMkM3MTkw
NjU2RTUwMDQ0ODkxNCAvKiBXZWJRdWlja0xvb2tIYW5kbGVDbGllbnQuaCAqLywKKwkJCQlBMUM1
MTJDNjE5MDY1NkU1MDA0NDg5MTQgLyogV2ViUHJldmlld0xvYWRlckNsaWVudC5jcHAgKi8sCisJ
CQkJQTFDNTEyQzcxOTA2NTZFNTAwNDQ4OTE0IC8qIFdlYlByZXZpZXdMb2FkZXJDbGllbnQuaCAq
LywKIAkJCSk7CiAJCQluYW1lID0gaW9zOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAg
LTg2NjEsNyArODY2MSw3IEBACiAJCQkJQkNFMEU0MjUxNjhCN0EyODAwNTdFNjZBIC8qIFdlYlBy
b2Nlc3NTdXBwbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTFFMDkzNDE4ODYxRDM4MDBE
MkRDNDkgLyogV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk1
MTJGNTg5RDEyQTg4Mzg4MDA2Mjk1MzAgLyogV2ViUHJvdGVjdGlvblNwYWNlLmggaW4gSGVhZGVy
cyAqLywKLQkJCQlBMUM1MTJDOTE5MDY1NkU1MDA0NDg5MTQgLyogV2ViUXVpY2tMb29rSGFuZGxl
Q2xpZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlBMUM1MTJDOTE5MDY1NkU1MDA0NDg5MTQgLyog
V2ViUHJldmlld0xvYWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzc5NDg0MDQxNTBD
MzUwNjAwRTUyQ0U5IC8qIFdlYlJlbmRlckxheWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkzNzYw
ODgxRjE1MDQxM0U5MDBGQzgyQzcgLyogV2ViUmVuZGVyT2JqZWN0LmggaW4gSGVhZGVycyAqLywK
IAkJCQk1MTBBRkZCQTE2NTQyMDQ4MDAxQkEwNUUgLyogV2ViUmVzb3VyY2VMb2FkZXIuaCBpbiBI
ZWFkZXJzICovLApAQCAtMTAyNjUsNyArMTAyNjUsNyBAQAogCQkJCUJDRUU3QUQwMTI4MTc5ODgw
MDk4MjdEQSAvKiBXZWJQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMUExRTA5MzMxODg2MUQzODAwRDJEQzQ5IC8qIFdlYlByb2dyZXNzVHJhY2tlckNs
aWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTJGNTg5QzEyQTg4Mzg4MDA2Mjk1MzAgLyog
V2ViUHJvdGVjdGlvblNwYWNlLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUExQzUxMkM4MTkwNjU2
RTUwMDQ0ODkxNCAvKiBXZWJRdWlja0xvb2tIYW5kbGVDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJQTFDNTEyQzgxOTA2NTZFNTAwNDQ4OTE0IC8qIFdlYlByZXZpZXdMb2FkZXJDbGllbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzc5NDg0MDMxNTBDMzUwNjAwRTUyQ0U5IC8qIFdlYlJl
bmRlckxheWVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTM3NjA4ODFFMTUwNDEzRTkwMEZDODJD
NyAvKiBXZWJSZW5kZXJPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTEwQUZGQjkxNjU0
MjA0ODAwMUJBMDVFIC8qIFdlYlJlc291cmNlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLApAQCAt
MTAzMDQsNyArMTAzMDQsNiBAQAogCQkJCTFBQUYwOEExMTkyNjgxRDEwMEI2MzkwQyAvKiBXZWJV
c2VyQ29udGVudENvbnRyb2xsZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QzM2MUQ3
ODE5MjgwM0JEMDAzNkE1OUQgLyogV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHlNZXNzYWdl
UmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTU3MzlCQkUxQjQyMDQ2NjAwRDI1OEMx
IC8qIFdlYlVzZXJNZWRpYUNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlDRDYxNzgxNDFF
NkRFOUEwMDBGREE1N0QgLyogV2ViVXNlck1lZGlhQ2xpZW50TWFjLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJODNFRTU3NUIxREI3RDYxMTAwQzc0QzUwIC8qIFdlYlZhbGlkYXRpb25NZXNzYWdlQ2xp
ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUyRDVBMUI3MUM1NzRBMDIwMERFMzRBMyAvKiBX
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJM0Y0MThFRjkx
ODg3QkQ5NzAwMjc5NUZEIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXgg
MWJlNGM0MTI3ZjI2ZmY4ZGQ5MTVkZWYxZmIwZTQxYmMyNjAzY2Q4Zi4uMjEyZjEwZmRkZTFlZDY0
ZTVjOTc4MWU4ZDM4YWEzZDAwOGMxY2UxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
aApAQCAtMjQ3LDcgKzI0Nyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBmb3JjZVBhZ2VUcmFuc2l0
aW9uSWZOZWVkZWQoKSBmaW5hbDsKIAogI2lmIFVTRShRVUlDS19MT09LKQotICAgIFJlZlB0cjxX
ZWJDb3JlOjpRdWlja0xvb2tIYW5kbGVDbGllbnQ+IGNyZWF0ZVF1aWNrTG9va0hhbmRsZUNsaWVu
dChjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCBjb25zdCBTdHJpbmcmIHV0aSkgZmluYWw7CisgICAg
UmVmUHRyPFdlYkNvcmU6OlByZXZpZXdMb2FkZXJDbGllbnQ+IGNyZWF0ZVByZXZpZXdMb2FkZXJD
bGllbnQoY29uc3QgU3RyaW5nJiBmaWxlTmFtZSwgY29uc3QgU3RyaW5nJiB1dGkpIGZpbmFsOwog
I2VuZGlmCiAKICNpZiBFTkFCTEUoQ09OVEVOVF9GSUxURVJJTkcpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2lvcy9XZWJGcmFtZUxvYWRlckNs
aWVudElPUy5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvaW9z
L1dlYkZyYW1lTG9hZGVyQ2xpZW50SU9TLm1tCmluZGV4IGExYTBkODQ0NWEwNDYyYzJhNzJhMjgx
MGI4NDMxMjc2ZGIzOGYyM2EuLjUzN2M1Y2RjOWMzMzBmNDU2N2JkZWViNDg2ZDUzZjAxNDJiMDg3
ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
aW9zL1dlYkZyYW1lTG9hZGVyQ2xpZW50SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvaW9zL1dlYkZyYW1lTG9hZGVyQ2xpZW50SU9TLm1tCkBAIC00
MSw3ICs0MSw3IEBACiAjaWYgVVNFKFFVSUNLX0xPT0spCiAjaW1wb3J0ICJXZWJGcmFtZS5oIgog
I2ltcG9ydCAiV2ViUGFnZS5oIgotI2ltcG9ydCAiV2ViUXVpY2tMb29rSGFuZGxlQ2xpZW50Lmgi
CisjaW1wb3J0ICJXZWJQcmV2aWV3TG9hZGVyQ2xpZW50LmgiCiAjaW1wb3J0IDxXZWJDb3JlL1F1
aWNrTG9vay5oPgogI2VuZGlmCiAKQEAgLTY2LDcgKzY2LDcgQEAgUmV0YWluUHRyPENGRGljdGlv
bmFyeVJlZj4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNvbm5lY3Rpb25Qcm9wZXJ0aWVzKERvY3Vt
ZW50TG8KIH0KIAogI2lmIFVTRShRVUlDS19MT09LKQotUmVmUHRyPFF1aWNrTG9va0hhbmRsZUNs
aWVudD4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZVF1aWNrTG9va0hhbmRsZUNsaWVudChj
b25zdCBTdHJpbmcmIGZpbGVOYW1lLCBjb25zdCBTdHJpbmcmIHV0aSkKK1JlZlB0cjxQcmV2aWV3
TG9hZGVyQ2xpZW50PiBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlUHJldmlld0xvYWRlckNs
aWVudChjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCBjb25zdCBTdHJpbmcmIHV0aSkKIHsKICAgICBp
ZiAoIW1fZnJhbWUtPmlzTWFpbkZyYW1lKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAt
NzUsNyArNzUsNyBAQCBSZWZQdHI8UXVpY2tMb29rSGFuZGxlQ2xpZW50PiBXZWJGcmFtZUxvYWRl
ckNsaWVudDo6Y3JlYXRlUXVpY2tMb29rSGFuZGxlQ2xpZW50KAogICAgIGlmICghd2ViUGFnZSkK
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICByZXR1cm4gV2ViUXVpY2tMb29rSGFuZGxl
Q2xpZW50OjpjcmVhdGUoZmlsZU5hbWUsIHV0aSwgd2ViUGFnZS0+cGFnZUlEKCkpOworICAgIHJl
dHVybiBXZWJQcmV2aWV3TG9hZGVyQ2xpZW50OjpjcmVhdGUoZmlsZU5hbWUsIHV0aSwgd2ViUGFn
ZS0+cGFnZUlEKCkpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvaW9zL1dlYlByZXZpZXdMb2FkZXJDbGllbnQuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9pb3MvV2ViUHJldmlld0xv
YWRlckNsaWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjJhOTI0MThjZWQ4NjZmZTkzM2Q1ODljZWFlOGRk
NmUwMzhhN2FkMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvaW9zL1dlYlByZXZpZXdMb2FkZXJDbGllbnQuY3BwCkBAIC0wLDAgKzEs
OTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViUHJl
dmlld0xvYWRlckNsaWVudC5oIgorCisjaWYgVVNFKFFVSUNLX0xPT0spCisKKyNpbmNsdWRlICJX
ZWJQYWdlUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRl
IDxXZWJDb3JlL1F1aWNrTG9vay5oPgorI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgorI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCit1c2luZyBQYXNzd29yZENhbGxiYWNrTWFwID0gSGFzaE1hcDx1
aW50NjRfdCwgRnVuY3Rpb248dm9pZChjb25zdCBTdHJpbmcmKT4+Oworc3RhdGljIFBhc3N3b3Jk
Q2FsbGJhY2tNYXAmIHBhc3N3b3JkQ2FsbGJhY2tzKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8UGFzc3dvcmRDYWxsYmFja01hcD4gY2FsbGJhY2tNYXA7CisgICAgcmV0dXJuIGNhbGxi
YWNrTWFwLmdldCgpOworfQorCitXZWJQcmV2aWV3TG9hZGVyQ2xpZW50OjpXZWJQcmV2aWV3TG9h
ZGVyQ2xpZW50KGNvbnN0IFN0cmluZyYgZmlsZU5hbWUsIGNvbnN0IFN0cmluZyYgdXRpLCB1aW50
NjRfdCBwYWdlSUQpCisgICAgOiBtX2ZpbGVOYW1lIHsgZmlsZU5hbWUgfQorICAgICwgbV91dGkg
eyB1dGkgfQorICAgICwgbV9wYWdlSUQgeyBwYWdlSUQgfQoreworICAgIFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkU3RhcnRMb2FkRm9yUXVp
Y2tMb29rRG9jdW1lbnRJbk1haW5GcmFtZShtX2ZpbGVOYW1lLCBtX3V0aSksIG1fcGFnZUlEKTsK
K30KKworV2ViUHJldmlld0xvYWRlckNsaWVudDo6fldlYlByZXZpZXdMb2FkZXJDbGllbnQoKQor
eworICAgIHBhc3N3b3JkQ2FsbGJhY2tzKCkucmVtb3ZlKG1fcGFnZUlEKTsKK30KKwordm9pZCBX
ZWJQcmV2aWV3TG9hZGVyQ2xpZW50OjpkaWRSZWNlaXZlRGF0YUFycmF5KENGQXJyYXlSZWYgZGF0
YUFycmF5KQoreworICAgIENGQXJyYXlBcHBseUZ1bmN0aW9uKGRhdGFBcnJheSwgQ0ZSYW5nZU1h
a2UoMCwgQ0ZBcnJheUdldENvdW50KGRhdGFBcnJheSkpLCBbXShjb25zdCB2b2lkKiB2YWx1ZSwg
dm9pZCogY29udGV4dCkgeworICAgICAgICBBU1NFUlQoQ0ZHZXRUeXBlSUQodmFsdWUpID09IENG
RGF0YUdldFR5cGVJRCgpKTsKKyAgICAgICAgc3RhdGljX2Nhc3Q8UXVpY2tMb29rRG9jdW1lbnRE
YXRhKj4oY29udGV4dCktPmFwcGVuZCgoQ0ZEYXRhUmVmKXZhbHVlKTsKKyAgICB9LCAmbV9kYXRh
KTsgICAgCit9CisKK3ZvaWQgV2ViUHJldmlld0xvYWRlckNsaWVudDo6ZGlkRmluaXNoTG9hZGlu
ZygpCit7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuc2VuZChNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpEaWRGaW5pc2hMb2FkRm9yUXVpY2tMb29rRG9jdW1lbnRJbk1haW5GcmFtZShtX2Rh
dGEpLCBtX3BhZ2VJRCk7CisgICAgbV9kYXRhLmNsZWFyKCk7Cit9CisKK3ZvaWQgV2ViUHJldmll
d0xvYWRlckNsaWVudDo6ZGlkRmFpbCgpCit7CisgICAgbV9kYXRhLmNsZWFyKCk7Cit9CisKK3Zv
aWQgV2ViUHJldmlld0xvYWRlckNsaWVudDo6ZGlkUmVxdWVzdFBhc3N3b3JkKEZ1bmN0aW9uPHZv
aWQoY29uc3QgU3RyaW5nJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgQVNTRVJUKCFw
YXNzd29yZENhbGxiYWNrcygpLmNvbnRhaW5zKG1fcGFnZUlEKSk7CisgICAgcGFzc3dvcmRDYWxs
YmFja3MoKS5hZGQobV9wYWdlSUQsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZFJl
cXVlc3RQYXNzd29yZEZvclF1aWNrTG9va0RvY3VtZW50SW5NYWluRnJhbWUobV9maWxlTmFtZSks
IG1fcGFnZUlEKTsKK30KKwordm9pZCBXZWJQcmV2aWV3TG9hZGVyQ2xpZW50OjpkaWRSZWNlaXZl
UGFzc3dvcmQoY29uc3QgU3RyaW5nJiBwYXNzd29yZCwgdWludDY0X3QgcGFnZUlEKQoreworICAg
IEFTU0VSVChwYXNzd29yZENhbGxiYWNrcygpLmNvbnRhaW5zKHBhZ2VJRCkpOworICAgIGF1dG8g
Y29tcGxldGlvbkhhbmRsZXIgPSBwYXNzd29yZENhbGxiYWNrcygpLnRha2UocGFnZUlEKTsKKyAg
ICBjb21wbGV0aW9uSGFuZGxlcihwYXNzd29yZCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dAorCisjZW5kaWYgLy8gVVNFKFFVSUNLX0xPT0spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2lvcy9XZWJQcmV2aWV3TG9hZGVyQ2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2lvcy9XZWJQcmV2aWV3
TG9hZGVyQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjk5ODZlNDFjYTJmMjUxZGIyYzNlNWQ4OGUwOGRm
NTA2ODU0MDRlOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvaW9zL1dlYlByZXZpZXdMb2FkZXJDbGllbnQuaApAQCAtMCwwICsxLDYw
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJRdWlja0xvb2tEb2N1
bWVudERhdGEuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1ByZXZpZXdMb2FkZXJDbGllbnQuaD4KKyNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2Ns
YXNzIFdlYkZyYW1lOworCitjbGFzcyBXZWJQcmV2aWV3TG9hZGVyQ2xpZW50IGZpbmFsIDogcHVi
bGljIFdlYkNvcmU6OlByZXZpZXdMb2FkZXJDbGllbnQgeworcHVibGljOgorICAgIHN0YXRpYyBS
ZWY8V2ViUHJldmlld0xvYWRlckNsaWVudD4gY3JlYXRlKGNvbnN0IFN0cmluZyYgZmlsZU5hbWUs
IGNvbnN0IFN0cmluZyYgdXRpLCB1aW50NjRfdCBwYWdlSUQpCisgICAgeworICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBXZWJQcmV2aWV3TG9hZGVyQ2xpZW50KGZpbGVOYW1lLCB1dGksIHBh
Z2VJRCkpOworICAgIH0KKyAgICB+V2ViUHJldmlld0xvYWRlckNsaWVudCgpOworCisgICAgc3Rh
dGljIHZvaWQgZGlkUmVjZWl2ZVBhc3N3b3JkKGNvbnN0IFN0cmluZyYsIHVpbnQ2NF90IHBhZ2VJ
RCk7CisKK3ByaXZhdGU6CisgICAgV2ViUHJldmlld0xvYWRlckNsaWVudChjb25zdCBTdHJpbmcm
IGZpbGVOYW1lLCBjb25zdCBTdHJpbmcmIHV0aSwgdWludDY0X3QgcGFnZUlEKTsKKyAgICB2b2lk
IGRpZFJlY2VpdmVEYXRhQXJyYXkoQ0ZBcnJheVJlZikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRG
aW5pc2hMb2FkaW5nKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRGYWlsKCkgb3ZlcnJpZGU7Cisg
ICAgYm9vbCBzdXBwb3J0c1Bhc3N3b3JkRW50cnkoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0
cnVlOyB9CisgICAgdm9pZCBkaWRSZXF1ZXN0UGFzc3dvcmQoRnVuY3Rpb248dm9pZChjb25zdCBT
dHJpbmcmKT4mJikgb3ZlcnJpZGU7CisKKyAgICBjb25zdCBTdHJpbmcgbV9maWxlTmFtZTsKKyAg
ICBjb25zdCBTdHJpbmcgbV91dGk7CisgICAgY29uc3QgdWludDY0X3QgbV9wYWdlSUQ7CisgICAg
UXVpY2tMb29rRG9jdW1lbnREYXRhIG1fZGF0YTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9p
b3MvV2ViUXVpY2tMb29rSGFuZGxlQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvaW9zL1dlYlF1aWNrTG9va0hhbmRsZUNsaWVudC5jcHAKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhlMWZjMDg0YWEwNWM1M2Q3NDM1NWNjNGQ0YjUwNzc3
YzFkNDUwMzQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9pb3MvV2ViUXVpY2tMb29r
SGFuZGxlQ2xpZW50LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDk1ICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgot
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
LSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV2ViUXVpY2tMb29rSGFuZGxlQ2xp
ZW50LmgiCi0KLSNpZiBVU0UoUVVJQ0tfTE9PSykKLQotI2luY2x1ZGUgIldlYlBhZ2VQcm94eU1l
c3NhZ2VzLmgiCi0jaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgotI2luY2x1ZGUgPFdlYkNvcmUvUXVp
Y2tMb29rLmg+Ci0jaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hN
YXAuaD4KLSNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KLQotbmFtZXNwYWNlIFdlYktp
dCB7Ci0KLXVzaW5nIFBhc3N3b3JkQ2FsbGJhY2tNYXAgPSBIYXNoTWFwPHVpbnQ2NF90LCBGdW5j
dGlvbjx2b2lkKGNvbnN0IFN0cmluZyYpPj47Ci1zdGF0aWMgUGFzc3dvcmRDYWxsYmFja01hcCYg
cGFzc3dvcmRDYWxsYmFja3MoKQotewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxQYXNzd29y
ZENhbGxiYWNrTWFwPiBjYWxsYmFja01hcDsKLSAgICByZXR1cm4gY2FsbGJhY2tNYXAuZ2V0KCk7
Ci19Ci0KLVdlYlF1aWNrTG9va0hhbmRsZUNsaWVudDo6V2ViUXVpY2tMb29rSGFuZGxlQ2xpZW50
KGNvbnN0IFN0cmluZyYgZmlsZU5hbWUsIGNvbnN0IFN0cmluZyYgdXRpLCB1aW50NjRfdCBwYWdl
SUQpCi0gICAgOiBtX2ZpbGVOYW1lIHsgZmlsZU5hbWUgfQotICAgICwgbV91dGkgeyB1dGkgfQot
ICAgICwgbV9wYWdlSUQgeyBwYWdlSUQgfQotewotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkU3RhcnRMb2FkRm9yUXVpY2tMb29rRG9j
dW1lbnRJbk1haW5GcmFtZShtX2ZpbGVOYW1lLCBtX3V0aSksIG1fcGFnZUlEKTsKLX0KLQotV2Vi
UXVpY2tMb29rSGFuZGxlQ2xpZW50Ojp+V2ViUXVpY2tMb29rSGFuZGxlQ2xpZW50KCkKLXsKLSAg
ICBwYXNzd29yZENhbGxiYWNrcygpLnJlbW92ZShtX3BhZ2VJRCk7Ci19Ci0KLXZvaWQgV2ViUXVp
Y2tMb29rSGFuZGxlQ2xpZW50OjpkaWRSZWNlaXZlRGF0YUFycmF5KENGQXJyYXlSZWYgZGF0YUFy
cmF5KQotewotICAgIENGQXJyYXlBcHBseUZ1bmN0aW9uKGRhdGFBcnJheSwgQ0ZSYW5nZU1ha2Uo
MCwgQ0ZBcnJheUdldENvdW50KGRhdGFBcnJheSkpLCBbXShjb25zdCB2b2lkKiB2YWx1ZSwgdm9p
ZCogY29udGV4dCkgewotICAgICAgICBBU1NFUlQoQ0ZHZXRUeXBlSUQodmFsdWUpID09IENGRGF0
YUdldFR5cGVJRCgpKTsKLSAgICAgICAgc3RhdGljX2Nhc3Q8UXVpY2tMb29rRG9jdW1lbnREYXRh
Kj4oY29udGV4dCktPmFwcGVuZCgoQ0ZEYXRhUmVmKXZhbHVlKTsKLSAgICB9LCAmbV9kYXRhKTsg
ICAgCi19Ci0KLXZvaWQgV2ViUXVpY2tMb29rSGFuZGxlQ2xpZW50OjpkaWRGaW5pc2hMb2FkaW5n
KCkKLXsKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6OkRpZEZpbmlzaExvYWRGb3JRdWlja0xvb2tEb2N1bWVudEluTWFpbkZyYW1lKG1fZGF0
YSksIG1fcGFnZUlEKTsKLSAgICBtX2RhdGEuY2xlYXIoKTsKLX0KLQotdm9pZCBXZWJRdWlja0xv
b2tIYW5kbGVDbGllbnQ6OmRpZEZhaWwoKQotewotICAgIG1fZGF0YS5jbGVhcigpOwotfQotCi12
b2lkIFdlYlF1aWNrTG9va0hhbmRsZUNsaWVudDo6ZGlkUmVxdWVzdFBhc3N3b3JkKEZ1bmN0aW9u
PHZvaWQoY29uc3QgU3RyaW5nJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgQVNTRVJU
KCFwYXNzd29yZENhbGxiYWNrcygpLmNvbnRhaW5zKG1fcGFnZUlEKSk7Ci0gICAgcGFzc3dvcmRD
YWxsYmFja3MoKS5hZGQobV9wYWdlSUQsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLSAg
ICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRp
ZFJlcXVlc3RQYXNzd29yZEZvclF1aWNrTG9va0RvY3VtZW50SW5NYWluRnJhbWUobV9maWxlTmFt
ZSksIG1fcGFnZUlEKTsKLX0KLQotdm9pZCBXZWJRdWlja0xvb2tIYW5kbGVDbGllbnQ6OmRpZFJl
Y2VpdmVQYXNzd29yZChjb25zdCBTdHJpbmcmIHBhc3N3b3JkLCB1aW50NjRfdCBwYWdlSUQpCi17
Ci0gICAgQVNTRVJUKHBhc3N3b3JkQ2FsbGJhY2tzKCkuY29udGFpbnMocGFnZUlEKSk7Ci0gICAg
YXV0byBjb21wbGV0aW9uSGFuZGxlciA9IHBhc3N3b3JkQ2FsbGJhY2tzKCkudGFrZShwYWdlSUQp
OwotICAgIGNvbXBsZXRpb25IYW5kbGVyKHBhc3N3b3JkKTsKLX0KLQotfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0Ci0KLSNlbmRpZiAvLyBVU0UoUVVJQ0tfTE9PSykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvaW9zL1dlYlF1aWNrTG9va0hhbmRsZUNs
aWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9pb3MvV2Vi
UXVpY2tMb29rSGFuZGxlQ2xpZW50LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY4
NjRlMTg3ZDljOTIzMTc4MTNjNjM5MTllYjE4NWYyOGIwZDFjMDYuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9pb3MvV2ViUXVpY2tMb29rSGFuZGxlQ2xpZW50LmgKKysrIC9kZXYvbnVs
bApAQCAtMSw2OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBVU0Uo
UVVJQ0tfTE9PSykKLQotI2luY2x1ZGUgIlF1aWNrTG9va0RvY3VtZW50RGF0YS5oIgotI2luY2x1
ZGUgPFdlYkNvcmUvUXVpY2tMb29rSGFuZGxlQ2xpZW50Lmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLWNsYXNzIFF1aWNrTG9va0hhbmRs
ZTsKLX0KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIFdlYkZyYW1lOwotCi1jbGFzcyBX
ZWJRdWlja0xvb2tIYW5kbGVDbGllbnQgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6UXVpY2tMb29r
SGFuZGxlQ2xpZW50IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFdlYlF1aWNrTG9va0hhbmRs
ZUNsaWVudD4gY3JlYXRlKGNvbnN0IFN0cmluZyYgZmlsZU5hbWUsIGNvbnN0IFN0cmluZyYgdXRp
LCB1aW50NjRfdCBwYWdlSUQpCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBX
ZWJRdWlja0xvb2tIYW5kbGVDbGllbnQoZmlsZU5hbWUsIHV0aSwgcGFnZUlEKSk7Ci0gICAgfQot
ICAgIH5XZWJRdWlja0xvb2tIYW5kbGVDbGllbnQoKTsKLQotICAgIHN0YXRpYyB2b2lkIGRpZFJl
Y2VpdmVQYXNzd29yZChjb25zdCBTdHJpbmcmLCB1aW50NjRfdCBwYWdlSUQpOwotCi1wcml2YXRl
OgotICAgIFdlYlF1aWNrTG9va0hhbmRsZUNsaWVudChjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCBj
b25zdCBTdHJpbmcmIHV0aSwgdWludDY0X3QgcGFnZUlEKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVE
YXRhQXJyYXkoQ0ZBcnJheVJlZikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaWRGaW5pc2hMb2FkaW5n
KCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaWRGYWlsKCkgb3ZlcnJpZGU7Ci0gICAgYm9vbCBzdXBw
b3J0c1Bhc3N3b3JkRW50cnkoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9Ci0gICAg
dm9pZCBkaWRSZXF1ZXN0UGFzc3dvcmQoRnVuY3Rpb248dm9pZChjb25zdCBTdHJpbmcmKT4mJikg
b3ZlcnJpZGU7Ci0KLSAgICBjb25zdCBTdHJpbmcgbV9maWxlTmFtZTsKLSAgICBjb25zdCBTdHJp
bmcgbV91dGk7Ci0gICAgY29uc3QgdWludDY0X3QgbV9wYWdlSUQ7Ci0gICAgUXVpY2tMb29rRG9j
dW1lbnREYXRhIG1fZGF0YTsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYg
Ly8gVVNFKFFVSUNLX0xPT0spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggZTA4NjEyZDZjODEwYTgyMmY4ODcwOTdjNmNj
MTk3MjYyYjJkMjJlZi4uMjFmYmI0YjhjYmI1ZjgxM2I0MzhjYmMyNjBjYjhmMGFjMzUxNGQzNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdl
SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFn
ZUlPUy5tbQpAQCAtNDksOCArNDksOCBAQAogI2ltcG9ydCAiV2ViSW1hZ2UuaCIKICNpbXBvcnQg
IldlYktpdFN5c3RlbUludGVyZmFjZS5oIgogI2ltcG9ydCAiV2ViUGFnZVByb3h5TWVzc2FnZXMu
aCIKKyNpbXBvcnQgIldlYlByZXZpZXdMb2FkZXJDbGllbnQuaCIKICNpbXBvcnQgIldlYlByb2Nl
c3MuaCIKLSNpbXBvcnQgIldlYlF1aWNrTG9va0hhbmRsZUNsaWVudC5oIgogI2ltcG9ydCA8Q29y
ZVRleHQvQ1RGb250Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0F1dG9maWxsLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL0Nocm9tZS5oPgpAQCAtMzI4Miw3ICszMjgyLDcgQEAgU3RyaW5nIFdlYlBhZ2U6OnBs
YXRmb3JtVXNlckFnZW50KGNvbnN0IFVSTCYpIGNvbnN0CiAjaWYgVVNFKFFVSUNLX0xPT0spCiB2
b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVQYXNzd29yZEZvclF1aWNrTG9va0RvY3VtZW50KGNvbnN0
IFN0cmluZyYgcGFzc3dvcmQpCiB7Ci0gICAgV2ViUXVpY2tMb29rSGFuZGxlQ2xpZW50OjpkaWRS
ZWNlaXZlUGFzc3dvcmQocGFzc3dvcmQsIG1fcGFnZUlEKTsKKyAgICBXZWJQcmV2aWV3TG9hZGVy
Q2xpZW50OjpkaWRSZWNlaXZlUGFzc3dvcmQocGFzc3dvcmQsIG1fcGFnZUlEKTsKIH0KICNlbmRp
ZgogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>