<?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>48447</bug_id>
          
          <creation_ts>2010-10-27 11:32:39 -0700</creation_ts>
          <short_desc>Begin stubbing out the Download class</short_desc>
          <delta_ts>2010-10-27 14:05:31 -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>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>abarth</cc>
    
    <cc>aroben</cc>
    
    <cc>eric</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>300389</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-10-27 11:32:39 -0700</bug_when>
    <thetext>Begin stubbing out the Download class</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>300394</commentid>
    <comment_count>1</comment_count>
      <attachid>72061</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-10-27 11:35:27 -0700</bug_when>
    <thetext>Created attachment 72061
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>300401</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-10-27 11:41:26 -0700</bug_when>
    <thetext>Attachment 72061 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebKit2/WebProcess/Downloads/qt/DownloadQt.cpp:26:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
WebKit2/WebProcess/Downloads/DownloadManager.h:32:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
WebKit2/WebProcess/Downloads/cf/DownloadCFNet.cpp:26:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
WebKit2/WebProcess/Downloads/Download.cpp:26:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 4 in 14 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>300425</commentid>
    <comment_count>3</comment_count>
      <attachid>72061</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-10-27 12:08:38 -0700</bug_when>
    <thetext>Comment on attachment 72061
Patch

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

This seems certain to crash if the delegate ever calls back into the Download.

&gt; WebKit2/ChangeLog:25
&gt; +        * WebProcess/Downloads/mac/DownloadMac.mm: Added.
&gt; +        (WebKit::Download::start):
&gt; +        Create an NSURLDownload.
&gt; +    

You seem to have left DownloadCFNet and DownloadQt out of your ChangeLog!

&gt; WebKit2/WebProcess/Downloads/DownloadManager.cpp:49
&gt; +void DownloadManager::startDownload(uint64_t downloadID, const ResourceRequest&amp; request)
&gt; +{
&gt; +    OwnPtr&lt;Download&gt; download = Download::create(downloadID, request);
&gt; +    download-&gt;start();
&gt; +}

Is it OK that the download gets deleted right after start() returns?

&gt; WebKit2/WebProcess/Downloads/mac/DownloadMac.mm:31
&gt; +@interface WKDownloadAsDelegate : NSObject &lt;NSURLConnectionDelegate&gt; {
&gt; +    WebKit::Download* m_download;

I thought we just used _ for ivars.

&gt; WebKit2/WebProcess/Downloads/mac/DownloadMac.mm:68
&gt; +- (void)invalidate
&gt; +{
&gt; +    m_download = 0;
&gt; +}

Who calls this? It seems like Download should call it in its destructor (if not earlier).

&gt; WebKit2/WebProcess/Downloads/mac/DownloadMac.mm:72
&gt; +    NSLog(@&quot;download did begin!&quot;);

Did you mean to leave this in here?

&gt; WebKit2/win/WebKit2.vcproj:1264
&gt; +    				&lt;File
&gt; +    					RelativePath=&quot;..\WebProcess\Downloads\cf\DownloadCFNet.h&quot;
&gt; +    					&gt;
&gt; +    				&lt;/File&gt;

I don&apos;t think this file exists.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>300430</commentid>
    <comment_count>4</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-10-27 12:11:48 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 72061 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=72061&amp;action=review
&gt; 
&gt; This seems certain to crash if the delegate ever calls back into the Download.
&gt; 

Yup, I was going to fix that when I add the first callback handler.

&gt; &gt; WebKit2/ChangeLog:25
&gt; &gt; +        * WebProcess/Downloads/mac/DownloadMac.mm: Added.
&gt; &gt; +        (WebKit::Download::start):
&gt; &gt; +        Create an NSURLDownload.
&gt; &gt; +    
&gt; 
&gt; You seem to have left DownloadCFNet and DownloadQt out of your ChangeLog!

Yup, I didn&apos;t see a reason for keeping them when I&apos;m just adding a stubbed out function in each file.

&gt; 
&gt; &gt; WebKit2/WebProcess/Downloads/DownloadManager.cpp:49
&gt; &gt; +void DownloadManager::startDownload(uint64_t downloadID, const ResourceRequest&amp; request)
&gt; &gt; +{
&gt; &gt; +    OwnPtr&lt;Download&gt; download = Download::create(downloadID, request);
&gt; &gt; +    download-&gt;start();
&gt; &gt; +}
&gt; 
&gt; Is it OK that the download gets deleted right after start() returns?

For now it is :)

&gt; 
&gt; &gt; WebKit2/WebProcess/Downloads/mac/DownloadMac.mm:31
&gt; &gt; +@interface WKDownloadAsDelegate : NSObject &lt;NSURLConnectionDelegate&gt; {
&gt; &gt; +    WebKit::Download* m_download;
&gt; 
&gt; I thought we just used _ for ivars.

Copied from ResourceHandleMac, but I can change it.

&gt; 
&gt; &gt; WebKit2/WebProcess/Downloads/mac/DownloadMac.mm:68
&gt; &gt; +- (void)invalidate
&gt; &gt; +{
&gt; &gt; +    m_download = 0;
&gt; &gt; +}
&gt; 
&gt; Who calls this? It seems like Download should call it in its destructor (if not earlier).
&gt; 

Yeah it should be called from the destructor eventually (again, this is just stubbing out the code).

&gt; &gt; WebKit2/WebProcess/Downloads/mac/DownloadMac.mm:72
&gt; &gt; +    NSLog(@&quot;download did begin!&quot;);
&gt; 
&gt; Did you mean to leave this in here?

No

&gt; 
&gt; &gt; WebKit2/win/WebKit2.vcproj:1264
&gt; &gt; +    				&lt;File
&gt; &gt; +    					RelativePath=&quot;..\WebProcess\Downloads\cf\DownloadCFNet.h&quot;
&gt; &gt; +    					&gt;
&gt; &gt; +    				&lt;/File&gt;
&gt; 
&gt; I don&apos;t think this file exists.

Good catch. I&apos;ll upload a new patch shortly!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>300434</commentid>
    <comment_count>5</comment_count>
      <attachid>72070</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-10-27 12:15:33 -0700</bug_when>
    <thetext>Created attachment 72070
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>300435</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-10-27 12:20:27 -0700</bug_when>
    <thetext>Attachment 72070 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebKit2/WebProcess/Downloads/qt/DownloadQt.cpp:26:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
WebKit2/WebProcess/Downloads/DownloadManager.h:32:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
WebKit2/WebProcess/Downloads/cf/DownloadCFNet.cpp:26:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
WebKit2/WebProcess/Downloads/Download.cpp:26:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 4 in 14 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>300439</commentid>
    <comment_count>7</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-10-27 12:24:35 -0700</bug_when>
    <thetext>Committed r70687: &lt;http://trac.webkit.org/changeset/70687&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>300552</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-10-27 14:05:31 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/70687 might have broken GTK Linux 64-bit Debug</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>72061</attachid>
            <date>2010-10-27 11:35:27 -0700</date>
            <delta_ts>2010-10-27 12:15:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-48447-20101027113526.patch</filename>
            <type>text/plain</type>
            <size>28983</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdDIvQ2hhbmdlTG9nIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXgg
NTlkYTU1MDI0MDhhNGIwNmI3NjI1MjM3MjY2YzYwNWYzNmRiOTI3NC4uNTllNzE3MDQ3MzI5MDcz
M2I0YmIwN2RiMmE2YTE2MzZhM2I0NjAwMiAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9DaGFuZ2VMb2cK
KysrIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNiBAQAorMjAxMC0xMC0yNyAgQW5k
ZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJlZ2luIHN0dWJiaW5nIG91dCB0aGUgRG93bmxv
YWQgY2xhc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTQ4NDQ3CisKKyAgICAgICAgKiBXZWJLaXQyLnBybzoKKyAgICAgICAgKiBXZWJLaXQyLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgIEFkZCBuZXcgZmlsZXMuCisgICAgICAgIAor
ICAgICAgICAqIFdlYktpdDJQcmVmaXguaDoKKyAgICAgICAgSW5jbHVkZSBXZWJDb3JlL0VtcHR5
UHJvdG9jb2xEZWZpbml0aW9ucy5oCisgICAgICAgIAorICAgICAgICAqIFdlYlByb2Nlc3MvRG93
bmxvYWRzL0Rvd25sb2FkLmNwcDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9Eb3dubG9h
ZHMvRG93bmxvYWQuaDogQWRkZWQuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0Rvd25sb2Fkcy9E
b3dubG9hZE1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZE1hbmFnZXI6OnN0
YXJ0RG93bmxvYWQpOgorICAgICAgICBDcmVhdGUgYSBEb3dubG9hZCBvYmplY3QgYW5kIHN0YXJ0
IGl0LgorCisgICAgICAgICogV2ViUHJvY2Vzcy9Eb3dubG9hZHMvbWFjL0Rvd25sb2FkTWFjLm1t
OiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWQ6OnN0YXJ0KToKKyAgICAgICAgQ3Jl
YXRlIGFuIE5TVVJMRG93bmxvYWQuCisgICAgCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYkZyYW1lLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWU6OnN0YXJ0RG93bmxvYWQp
OgorICAgICAgICBBc2sgdGhlIGRvd25sb2FkIG1hbmFnZXIgdG8gc3RhcnQgZG93bmxvYWRpbmcu
CisKKyAgICAgICAgKiB3aW4vV2ViS2l0Mi52Y3Byb2o6CisgICAgICAgICogd2luL1dlYktpdDJD
b21tb24udnNwcm9wczoKKyAgICAgICAgQWRkIG5ldyBmaWxlcy4KKwogMjAxMC0xMC0yNiAgQnJp
YW4gV2VpbnN0ZWluICA8YndlaW5zdGVpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgQWRhbSBSb2Jlbi4KZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViS2l0Mi5wcm8gYi9XZWJLaXQy
L1dlYktpdDIucHJvCmluZGV4IGM2YWNmNzk4ZDNkNWJlMGI5NjMwZTFkNWU0MjBhODNmZjg3MTgy
NzguLjI0NTA1N2RjNmJkNjlkYzNjYjZhYmMwZTljNTI2N2M1MWJiYTk0ODUgMTAwNjQ0Ci0tLSBh
L1dlYktpdDIvV2ViS2l0Mi5wcm8KKysrIGIvV2ViS2l0Mi9XZWJLaXQyLnBybwpAQCAtMjg0LDYg
KzI4NCw3IEBAIEhFQURFUlMgKz0gXAogICAgIFVJUHJvY2Vzcy9XZWJVSUNsaWVudC5oIFwKICAg
ICBVSVByb2Nlc3MvcXQvV2ViUG9wdXBNZW51UHJveHlRdC5oIFwKICAgICBXZWJQcm9jZXNzL0Rv
d25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuaCBcCisgICAgV2ViUHJvY2Vzcy9Eb3dubG9hZHMvRG93
bmxvYWQuaCBcCiAgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUhp
dFRlc3RSZXN1bHQuaCBcCiAgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1
bmRsZU5vZGVIYW5kbGUuaCBcCiAgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9X
S0J1bmRsZU5vZGVIYW5kbGVQcml2YXRlLmggXApAQCAtNDMwLDcgKzQzMSw5IEBAIFNPVVJDRVMg
Kz0gXAogICAgIFVJUHJvY2Vzcy9XZWJQcm9jZXNzTWFuYWdlci5jcHAgXAogICAgIFVJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuY3BwIFwKICAgICBVSVByb2Nlc3MvV2ViVUlDbGllbnQuY3BwIFwK
KyAgICBXZWJQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHAgXAogICAgIFdlYlByb2Nlc3Mv
RG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5jcHAgXAorICAgIFdlYlByb2Nlc3MvRG93bmxvYWRz
L3F0L0Rvd25sb2FkUXQuY3BwIFwKICAgICBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9j
L1dLQnVuZGxlLmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1
bmRsZUZyYW1lLmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1
bmRsZUhpdFRlc3RSZXN1bHQuY3BwIFwKZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViS2l0Mi54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggYzIwNzNiNTEzMGMyYzRjNTU5OTIzYmZmNjgwOWM5YTk0NTYxNDU1MC4u
MWFiNTZlYzBjMTZhMDdjMzQ1MTIwYWUxZGU3N2E2ZGVhN2UzZWZmNyAxMDA2NDQKLS0tIGEvV2Vi
S2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViS2l0Mi9XZWJL
aXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTkxLDYgKzkxLDkgQEAKIAkJMUE1OTRB
QkIxMTJBMUZCNjAwOURFN0M3IC8qIFdlYlVJQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTU5NEFCOTExMkExRkI2MDA5REU3QzcgLyogV2Vi
VUlDbGllbnQuaCAqLzsgfTsKIAkJMUE2MTYxNEYxMjc3OThCNTAwM0FDRDg2IC8qIERvd25sb2Fk
TWFuYWdlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxQTYxNjE0RDEyNzc5OEI1MDAzQUNEODYgLyogRG93bmxvYWRNYW5hZ2VyLmNwcCAqLzsgfTsK
IAkJMUE2MTYxNTAxMjc3OThCNTAwM0FDRDg2IC8qIERvd25sb2FkTWFuYWdlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE2MTYxNEUxMjc3OThCNTAw
M0FDRDg2IC8qIERvd25sb2FkTWFuYWdlci5oICovOyB9OworCQkxQTYxNjFENDEyNzg5ODFDMDAz
QUNEODYgLyogRG93bmxvYWQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDFBNjE2MUQyMTI3ODk4MUMwMDNBQ0Q4NiAvKiBEb3dubG9hZC5oICovOyB9Owor
CQkxQTYxNjFENTEyNzg5ODFDMDAzQUNEODYgLyogRG93bmxvYWQuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE2MTYxRDMxMjc4OTgxQzAwM0FDRDg2
IC8qIERvd25sb2FkLmNwcCAqLzsgfTsKKwkJMUE2MTYzOTYxMjc4OUIyRjAwM0FDRDg2IC8qIERv
d25sb2FkTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMUE2MTYzOTUxMjc4OUIyRjAwM0FDRDg2IC8qIERvd25sb2FkTWFjLm1tICovOyB9OwogCQkx
QTZGOUY5MDExRTEzRUZDMDBEQjEzNzEgLyogQ29tbWFuZExpbmUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBNkY5RjhFMTFFMTNFRkMwMERCMTM3MSAv
KiBDb21tYW5kTGluZS5oICovOyB9OwogCQkxQTZGOUZCNzExRTE0MDg1MDBEQjEzNzEgLyogQ29t
bWFuZExpbmVNYWMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMUE2RjlGQjYxMUUxNDA4NTAwREIxMzcxIC8qIENvbW1hbmRMaW5lTWFjLmNwcCAqLzsg
fTsKIAkJMUE2RkEwMUUxMUUxNTI2MzAwREIxMzcxIC8qIFdlYlByb2Nlc3NNYWluTWFjLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE2RkEwMUQxMUUx
NTI2MzAwREIxMzcxIC8qIFdlYlByb2Nlc3NNYWluTWFjLm1tICovOyB9OwpAQCAtNTcwLDYgKzU3
Myw5IEBACiAJCTFBNTk0QUI5MTEyQTFGQjYwMDlERTdDNyAvKiBXZWJVSUNsaWVudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJVSUNsaWVudC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkxQTYxNjE0RDEyNzc5OEI1MDAzQUNEODYgLyogRG93bmxvYWRNYW5h
Z2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERvd25sb2FkTWFu
YWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBNjE2MTRFMTI3Nzk4QjUw
MDNBQ0Q4NiAvKiBEb3dubG9hZE1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRG93bmxvYWRNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFB
NjE2MUQyMTI3ODk4MUMwMDNBQ0Q4NiAvKiBEb3dubG9hZC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBEb3dubG9hZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkx
QTYxNjFEMzEyNzg5ODFDMDAzQUNEODYgLyogRG93bmxvYWQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gRG93bmxvYWQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkxQTYxNjM5NTEyNzg5QjJGMDAzQUNEODYgLyogRG93bmxvYWRNYWMubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBEb3dubG9hZE1hYy5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUE2RjlGOEUxMUUxM0VGQzAwREIxMzcxIC8qIENvbW1h
bmRMaW5lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvbW1hbmRMaW5lLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBNkY5RkI2MTFFMTQwODUwMERCMTM3MSAv
KiBDb21tYW5kTGluZU1hYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBDb21tYW5kTGluZU1hYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBNkZB
MDFEMTFFMTUyNjMwMERCMTM3MSAvKiBXZWJQcm9jZXNzTWFpbk1hYy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYlByb2Nlc3NNYWluTWFjLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTExMywxMiArMTExOSwyMyBAQAogCQkxQTYxNjE0QzEy
Nzc5OEI1MDAzQUNEODYgLyogRG93bmxvYWRzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJ
CQljaGlsZHJlbiA9ICgKKwkJCQkxQTYxNjM5NDEyNzg5QjJGMDAzQUNEODYgLyogbWFjICovLAor
CQkJCTFBNjE2MUQzMTI3ODk4MUMwMDNBQ0Q4NiAvKiBEb3dubG9hZC5jcHAgKi8sCisJCQkJMUE2
MTYxRDIxMjc4OTgxQzAwM0FDRDg2IC8qIERvd25sb2FkLmggKi8sCiAJCQkJMUE2MTYxNEQxMjc3
OThCNTAwM0FDRDg2IC8qIERvd25sb2FkTWFuYWdlci5jcHAgKi8sCiAJCQkJMUE2MTYxNEUxMjc3
OThCNTAwM0FDRDg2IC8qIERvd25sb2FkTWFuYWdlci5oICovLAogCQkJKTsKIAkJCXBhdGggPSBE
b3dubG9hZHM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQkxQTYxNjM5NDEy
Nzg5QjJGMDAzQUNEODYgLyogbWFjICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGls
ZHJlbiA9ICgKKwkJCQkxQTYxNjM5NTEyNzg5QjJGMDAzQUNEODYgLyogRG93bmxvYWRNYWMubW0g
Ki8sCisJCQkpOworCQkJcGF0aCA9IG1hYzsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJ
CX07CiAJCTFBNkZBMDFDMTFFMTUyNjMwMERCMTM3MSAvKiBtYWMgKi8gPSB7CiAJCQlpc2EgPSBQ
QlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMjEyOCw2ICsyMTQ1LDcgQEAKIAkJCQkxQzhF
MjgzNDEyNzVENzM4MDBCQzdCRDAgLyogV2ViSW5zcGVjdG9yUHJveHkuaCBpbiBIZWFkZXJzICov
LAogCQkJCTFDOEUyOTM5MTI3NjFFNUIwMEJDN0JEMCAvKiBXS0luc3BlY3Rvci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMUE2MTYxNTAxMjc3OThCNTAwM0FDRDg2IC8qIERvd25sb2FkTWFuYWdlci5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMUE2MTYxRDQxMjc4OTgxQzAwM0FDRDg2IC8qIERvd25sb2Fk
LmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9j
ZXNzaW5nID0gMDsKIAkJfTsKQEAgLTI0NDIsNiArMjQ2MCw4IEBACiAJCQkJMUM4RTI4MzUxMjc1
RDczODAwQkM3QkQwIC8qIFdlYkluc3BlY3RvclByb3h5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTFDOEUyOTNBMTI3NjFFNUIwMEJDN0JEMCAvKiBXS0luc3BlY3Rvci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkxQTYxNjE0RjEyNzc5OEI1MDAzQUNEODYgLyogRG93bmxvYWRNYW5hZ2VyLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCTFBNjE2MUQ1MTI3ODk4MUMwMDNBQ0Q4NiAvKiBEb3dubG9hZC5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQkxQTYxNjM5NjEyNzg5QjJGMDAzQUNEODYgLyogRG93bmxv
YWRNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBv
c3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViS2l0MlByZWZp
eC5oIGIvV2ViS2l0Mi9XZWJLaXQyUHJlZml4LmgKaW5kZXggMmU2MWNlYjFiODJiOTJlYWUxYzg5
NDhhOWFiZDhmNGE1NGMxNjRmNC4uMTNlZTgzN2M3Zjg5MTNmNDQyNWJhNjdkMzdhMzQ3NWZhY2M0
NzFiZCAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9XZWJLaXQyUHJlZml4LmgKKysrIGIvV2ViS2l0Mi9X
ZWJLaXQyUHJlZml4LmgKQEAgLTc2LDYgKzc2LDggQEAgc3RhdGljIGNvbnN0IHR5cGUmIG5hbWUo
KSBcCiAjZGVmaW5lIEpTX0VYUE9SVENMQVNTCiAjZGVmaW5lIFdFQktJVF9FWFBPUlREQVRBCiAK
KyNpbmNsdWRlIDxXZWJDb3JlL0VtcHR5UHJvdG9jb2xEZWZpbml0aW9ucy5oPgorCiAjZWxpZiBk
ZWZpbmVkKFdJTjMyKSB8fCBkZWZpbmVkKF9XSU4zMikKIAogI2lmbmRlZiBfV0lOMzJfV0lOTlQK
ZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuY3BwIGIv
V2ViS2l0Mi9XZWJQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmUz
ZDk3OGFiY2E4OGU2ZjZmNWVjOTM1MjMxM2Y3YmMzZTU4Mjc0OAotLS0gL2Rldi9udWxsCisrKyBi
L1dlYktpdDIvV2ViUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuY3BwCkBAIC0wLDAgKzEsNDgg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiRG93bmxvYWQuaCIKKwordXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitQYXNzT3duUHRyPERvd25sb2FkPiBE
b3dubG9hZDo6Y3JlYXRlKHVpbnQ2NF90IGRvd25sb2FkSUQsIGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCkKK3sKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3IERvd25sb2FkKGRvd25sb2Fk
SUQsIHJlcXVlc3QpKTsKK30KKworRG93bmxvYWQ6OkRvd25sb2FkKHVpbnQ2NF90IGRvd25sb2Fk
SUQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKKyAgICA6IG1fZG93bmxvYWRJRChk
b3dubG9hZElEKQorICAgICwgbV9yZXF1ZXN0KHJlcXVlc3QpCit7CisgICAgQVNTRVJUKG1fZG93
bmxvYWRJRCk7Cit9CisKK0Rvd25sb2FkOjp+RG93bmxvYWQoKQoreworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViUHJvY2Vzcy9Eb3dubG9hZHMvRG93
bmxvYWQuaCBiL1dlYktpdDIvV2ViUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi40ZTJiZGE1YTk4N2QxMzA4ZjhhNDZkZTNmMGI3MzQ2ZWU2YTgxOGU1Ci0tLSAvZGV2L251
bGwKKysrIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5oCkBAIC0wLDAg
KzEsNjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIERvd25sb2FkX2gKKyNkZWZpbmUgRG93bmxv
YWRfaAorCisjaWYgUExBVEZPUk0oTUFDKQorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKyNp
ZmRlZiBfX09CSkNfXworQGNsYXNzIE5TVVJMRG93bmxvYWQ7CitAY2xhc3MgV0tEb3dubG9hZEFz
RGVsZWdhdGU7CisjZWxzZQorY2xhc3MgTlNVUkxEb3dubG9hZDsKK2NsYXNzIFdLRG93bmxvYWRB
c0RlbGVnYXRlOworI2VuZGlmCisjZW5kaWYKKworI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VS
ZXF1ZXN0Lmg+CisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL1Bh
c3NPd25QdHIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIERvd25sb2FkIHsKKyAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShEb3dubG9hZCk7CisKK3B1YmxpYzoKKyAgICBzdGF0aWMg
UGFzc093blB0cjxEb3dubG9hZD4gY3JlYXRlKHVpbnQ2NF90IGRvd25sb2FkSUQsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOworICAgIH5Eb3dubG9hZCgpOworCisgICAgdm9pZCBz
dGFydCgpOworCitwcml2YXRlOgorICAgIERvd25sb2FkKHVpbnQ2NF90IGRvd25sb2FkSUQsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOworCisgICAgdWludDY0X3QgbV9kb3dubG9h
ZElEOworICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBtX3JlcXVlc3Q7CisKKyNpZiBQTEFU
Rk9STShNQUMpCisgICAgUmV0YWluUHRyPE5TVVJMRG93bmxvYWQ+IG1fbnNVUkxEb3dubG9hZDsK
KyAgICBSZXRhaW5QdHI8V0tEb3dubG9hZEFzRGVsZWdhdGU+IG1fZGVsZWdhdGU7CisjZW5kaWYK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRG93bmxvYWRfaApkaWZm
IC0tZ2l0IGEvV2ViS2l0Mi9XZWJQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuY3Bw
IGIvV2ViS2l0Mi9XZWJQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuY3BwCmluZGV4
IDZmNTI0YTRmNzVmZmUyMzcyNjI1M2I2MGE4ZmJjMzY5NTYwOWQ3YmUuLjMzY2Q3YTAwOTU3NWMy
ZWRlZThlN2ZjNjE5NGM3ZTA1ZDgyZTViZjkgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvV2ViUHJvY2Vz
cy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmNwcAorKysgYi9XZWJLaXQyL1dlYlByb2Nlc3Mv
RG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5jcHAKQEAgLTI1LDggKzI1LDExIEBACiAKICNpbmNs
dWRlICJEb3dubG9hZE1hbmFnZXIuaCIKIAorI2luY2x1ZGUgIkRvd25sb2FkLmgiCiAjaW5jbHVk
ZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKIERvd25sb2FkTWFuYWdlciYgRG93bmxvYWRNYW5hZ2VyOjpzaGFy
ZWQoKQpAQCAtMzksNCArNDIsMTAgQEAgRG93bmxvYWRNYW5hZ2VyOjpEb3dubG9hZE1hbmFnZXIo
KQogewogfQogCit2b2lkIERvd25sb2FkTWFuYWdlcjo6c3RhcnREb3dubG9hZCh1aW50NjRfdCBk
b3dubG9hZElELCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCit7CisgICAgT3duUHRy
PERvd25sb2FkPiBkb3dubG9hZCA9IERvd25sb2FkOjpjcmVhdGUoZG93bmxvYWRJRCwgcmVxdWVz
dCk7CisgICAgZG93bmxvYWQtPnN0YXJ0KCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvV2ViS2l0Mi9XZWJQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIu
aCBiL1dlYktpdDIvV2ViUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmgKaW5kZXgg
NWM2NzI1NmY2NmM1NDA2YTViMjc2ZjI2NThkNWY0MDg5MGFkZmYxYy4uZWYzY2NmNTkzM2NkYjJj
NjVhOTRmNzIzZTZlMjgzMjlhYzc3NDhjNSAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9XZWJQcm9jZXNz
L0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuaAorKysgYi9XZWJLaXQyL1dlYlByb2Nlc3MvRG93
bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5oCkBAIC0yOCw2ICsyOCwxMCBAQAogCiAjaW5jbHVkZSA8
d3RmL05vbmNvcHlhYmxlLmg+CiAKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICBjbGFzcyBSZXNv
dXJjZVJlcXVlc3Q7Cit9CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBEb3dubG9hZE1h
bmFnZXIgewpAQCAtMzYsNiArNDAsOCBAQCBjbGFzcyBEb3dubG9hZE1hbmFnZXIgewogcHVibGlj
OgogICAgIHN0YXRpYyBEb3dubG9hZE1hbmFnZXImIHNoYXJlZCgpOwogCisgICAgdm9pZCBzdGFy
dERvd25sb2FkKHVpbnQ2NF90IGRvd25sb2FkSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYpOworCiBwcml2YXRlOgogICAgIERvd25sb2FkTWFuYWdlcigpOwogCmRpZmYgLS1naXQg
YS9XZWJLaXQyL1dlYlByb2Nlc3MvRG93bmxvYWRzL2NmL0Rvd25sb2FkQ0ZOZXQuY3BwIGIvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0Rvd25sb2Fkcy9jZi9Eb3dubG9hZENGTmV0LmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5lNWU3ZGM1N2VjODE5YWMxNjI2ZGU3Y2ZlNjY4NDY5YzNjMGJkYjUwCi0tLSAvZGV2L251bGwK
KysrIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL0Rvd25sb2Fkcy9jZi9Eb3dubG9hZENGTmV0LmNwcApA
QCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgIkRvd25sb2FkLmgiCisKKyNp
bmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgRG93bmxvYWQ6OnN0YXJ0KCkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1dl
YktpdDIvV2ViUHJvY2Vzcy9Eb3dubG9hZHMvbWFjL0Rvd25sb2FkTWFjLm1tIGIvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0Rvd25sb2Fkcy9tYWMvRG93bmxvYWRNYWMubW0KbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDI1Njdh
MmM3NjRkMGMwMzY5NDNlODRhYWU0OWI4ZTE1ZWI2YTg0MgotLS0gL2Rldi9udWxsCisrKyBiL1dl
YktpdDIvV2ViUHJvY2Vzcy9Eb3dubG9hZHMvbWFjL0Rvd25sb2FkTWFjLm1tCkBAIC0wLDAgKzEs
MTU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgIkRvd25sb2FkLmgiCisKKyNpbmNsdWRlICJO
b3RJbXBsZW1lbnRlZC5oIgorCitAaW50ZXJmYWNlIFdLRG93bmxvYWRBc0RlbGVnYXRlIDogTlNP
YmplY3QgPE5TVVJMQ29ubmVjdGlvbkRlbGVnYXRlPiB7CisgICAgV2ViS2l0OjpEb3dubG9hZCog
bV9kb3dubG9hZDsKK30KKy0gKGlkKWluaXRXaXRoRG93bmxvYWQ6KFdlYktpdDo6RG93bmxvYWQq
KWRvd25sb2FkOworLSAodm9pZClpbnZhbGlkYXRlOworQGVuZAorCisKK3VzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBEb3dubG9hZDo6c3RhcnQo
KQoreworICAgIEFTU0VSVCghbV9uc1VSTERvd25sb2FkKTsKKyAgICBBU1NFUlQoIW1fZGVsZWdh
dGUpOworCisgICAgbV9kZWxlZ2F0ZS5hZG9wdE5TKFtbV0tEb3dubG9hZEFzRGVsZWdhdGUgYWxs
b2NdIGluaXRXaXRoRG93bmxvYWQ6dGhpc10pOworICAgIG1fbnNVUkxEb3dubG9hZC5hZG9wdE5T
KFtbTlNVUkxEb3dubG9hZCBhbGxvY10gaW5pdFdpdGhSZXF1ZXN0Om1fcmVxdWVzdC5uc1VSTFJl
cXVlc3QoKSBkZWxlZ2F0ZTptX2RlbGVnYXRlLmdldCgpXSk7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAorCitAaW1wbGVtZW50YXRpb24gV0tEb3dubG9hZEFzRGVsZWdhdGUKKworLSAoaWQp
aW5pdFdpdGhEb3dubG9hZDooV2ViS2l0OjpEb3dubG9hZCopZG93bmxvYWQKK3sKKyAgICBzZWxm
ID0gW3N1cGVyIGluaXRdOworICAgIGlmICghc2VsZikKKyAgICAgICAgcmV0dXJuIG5pbDsKKwor
ICAgIG1fZG93bmxvYWQgPSBkb3dubG9hZDsKKyAgICByZXR1cm4gc2VsZjsKK30KKworLSAodm9p
ZClpbnZhbGlkYXRlCit7CisgICAgbV9kb3dubG9hZCA9IDA7Cit9CisKKy0gKHZvaWQpZG93bmxv
YWREaWRCZWdpbjooTlNVUkxEb3dubG9hZCAqKWRvd25sb2FkCit7CisgICAgTlNMb2coQCJkb3du
bG9hZCBkaWQgYmVnaW4hIik7Cit9CisKKy0gKE5TVVJMUmVxdWVzdCAqKWRvd25sb2FkOihOU1VS
TERvd25sb2FkICopZG93bmxvYWQgd2lsbFNlbmRSZXF1ZXN0OihOU1VSTFJlcXVlc3QgKilyZXF1
ZXN0IHJlZGlyZWN0UmVzcG9uc2U6KE5TVVJMUmVzcG9uc2UgKilyZWRpcmVjdFJlc3BvbnNlCit7
CisgICAgcmV0dXJuIHJlcXVlc3Q7Cit9CisKKy0gKEJPT0wpZG93bmxvYWQ6KE5TVVJMRG93bmxv
YWQgKiljb25uZWN0aW9uIGNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2U6KE5T
VVJMUHJvdGVjdGlvblNwYWNlICopcHJvdGVjdGlvblNwYWNlCit7CisgICAgLy8gRklYTUU6IElt
cGxlbWVudC4KKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBOTzsKK30KKworLSAo
dm9pZClkb3dubG9hZDooTlNVUkxEb3dubG9hZCAqKWRvd25sb2FkIGRpZFJlY2VpdmVBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZTooTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSAqKWNoYWxsZW5n
ZQoreworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQuCisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30K
KworLSAodm9pZClkb3dubG9hZDooTlNVUkxEb3dubG9hZCAqKWRvd25sb2FkIGRpZENhbmNlbEF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOihOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlICopY2hh
bGxlbmdlCit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudC4KKyAgICBub3RJbXBsZW1lbnRlZCgp
OworfQorCistIChCT09MKWRvd25sb2FkU2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2U6KE5TVVJM
RG93bmxvYWQgKilkb3dubG9hZAoreworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQuCisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gWUVTOworfQorCistICh2b2lkKWRvd25sb2FkOihO
U1VSTERvd25sb2FkICopZG93bmxvYWQgZGlkUmVjZWl2ZVJlc3BvbnNlOihOU1VSTFJlc3BvbnNl
ICopcmVzcG9uc2U7Cit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudC4KKyAgICBub3RJbXBsZW1l
bnRlZCgpOworfQorCistICh2b2lkKWRvd25sb2FkOihOU1VSTERvd25sb2FkICopZG93bmxvYWQg
d2lsbFJlc3VtZVdpdGhSZXNwb25zZTooTlNVUkxSZXNwb25zZSAqKXJlc3BvbnNlIGZyb21CeXRl
Oihsb25nIGxvbmcpc3RhcnRpbmdCeXRlCit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudC4KKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworfQorCistICh2b2lkKWRvd25sb2FkOihOU1VSTERvd25sb2Fk
ICopZG93bmxvYWQgZGlkUmVjZWl2ZURhdGFPZkxlbmd0aDooTlNVSW50ZWdlcilsZW5ndGgKK3sK
KyAgICAvLyBGSVhNRTogSW1wbGVtZW50LgorICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKKy0g
KEJPT0wpZG93bmxvYWQ6KE5TVVJMRG93bmxvYWQgKilkb3dubG9hZCBzaG91bGREZWNvZGVTb3Vy
Y2VEYXRhT2ZNSU1FVHlwZTooTlNTdHJpbmcgKillbmNvZGluZ1R5cGUKK3sKKyAgICAvLyBGSVhN
RTogSW1wbGVtZW50LgorICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFlFUzsKK30K
KworLSAodm9pZClkb3dubG9hZDooTlNVUkxEb3dubG9hZCAqKWRvd25sb2FkIGRlY2lkZURlc3Rp
bmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1lOihOU1N0cmluZyAqKWZpbGVuYW1lCit7CisgICAg
Ly8gRklYTUU6IEltcGxlbWVudC4KKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCistICh2b2lk
KWRvd25sb2FkOihOU1VSTERvd25sb2FkICopZG93bmxvYWQgZGlkQ3JlYXRlRGVzdGluYXRpb246
KE5TU3RyaW5nICopcGF0aAoreworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQuCisgICAgbm90SW1w
bGVtZW50ZWQoKTsKK30KKworLSAodm9pZClkb3dubG9hZERpZEZpbmlzaDooTlNVUkxEb3dubG9h
ZCAqKWRvd25sb2FkCit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudC4KKyAgICBub3RJbXBsZW1l
bnRlZCgpOworfQorCistICh2b2lkKWRvd25sb2FkOihOU1VSTERvd25sb2FkICopZG93bmxvYWQg
ZGlkRmFpbFdpdGhFcnJvcjooTlNFcnJvciAqKWVycm9yCit7CisgICAgLy8gRklYTUU6IEltcGxl
bWVudC4KKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitAZW5kCmRpZmYgLS1naXQgYS9XZWJL
aXQyL1dlYlByb2Nlc3MvRG93bmxvYWRzL3F0L0Rvd25sb2FkUXQuY3BwIGIvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0Rvd25sb2Fkcy9xdC9Eb3dubG9hZFF0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNWU3ZGM1N2Vj
ODE5YWMxNjI2ZGU3Y2ZlNjY4NDY5YzNjMGJkYjUwCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0
Mi9XZWJQcm9jZXNzL0Rvd25sb2Fkcy9xdC9Eb3dubG9hZFF0LmNwcApAQCAtMCwwICsxLDM5IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgIkRvd25sb2FkLmgiCisKKyNpbmNsdWRlICJOb3RJbXBs
ZW1lbnRlZC5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK3ZvaWQgRG93bmxvYWQ6OnN0YXJ0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYkZyYW1lLmNwcCBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZy
YW1lLmNwcAppbmRleCBjNmYzOTA1ZGU0NjZiZjg5OTE0OTNkY2QzZDZhM2NlNmI4ZjAyY2M5Li5k
YTA5ZWYzMjU5N2EzMzBkYzRkMmMzOTNhMzBhMjU4OWU1NTBiNDExIDEwMDY0NAotLS0gYS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKKysrIGIvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCkBAIC0yNSw2ICsyNSw3IEBACiAKICNpbmNsdWRlICJX
ZWJGcmFtZS5oIgogCisjaW5jbHVkZSAiRG93bmxvYWRNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiSW5q
ZWN0ZWRCdW5kbGVOb2RlSGFuZGxlLmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVSYW5nZUhh
bmRsZS5oIgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQuaCIKQEAgLTIwNSwx
MCArMjA2LDEyIEBAIHZvaWQgV2ViRnJhbWU6OmRpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbih1aW50
NjRfdCBsaXN0ZW5lcklELCBQb2xpY3lBY3Rpb24gYWN0aW9uCiAgICAgKG1fY29yZUZyYW1lLT5s
b2FkZXIoKS0+cG9saWN5Q2hlY2tlcigpLT4qZnVuY3Rpb24pKGFjdGlvbik7CiB9CiAKLXZvaWQg
V2ViRnJhbWU6OnN0YXJ0RG93bmxvYWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JikK
K3ZvaWQgV2ViRnJhbWU6OnN0YXJ0RG93bmxvYWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0KQogewogICAgIEFTU0VSVChtX3BvbGljeURvd25sb2FkSUQpOwogCisgICAg
RG93bmxvYWRNYW5hZ2VyOjpzaGFyZWQoKS5zdGFydERvd25sb2FkKG1fcG9saWN5RG93bmxvYWRJ
RCwgcmVxdWVzdCk7CisKICAgICBtX3BvbGljeURvd25sb2FkSUQgPSAwOwogfQogCmRpZmYgLS1n
aXQgYS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvaiBiL1dlYktpdDIvd2luL1dlYktpdDIudmNw
cm9qCmluZGV4IDQxODFjNDgzMThlN2ZhNWI4YTdiMzdjYjA1YWUwYmI4ZWY1MTRlYTUuLjI0NjU3
YTc1MTExY2Q5YjkzYmEzYjU2MzkxNWNlYzZiMzAzODFkOWYgMTAwNzU1Ci0tLSBhL1dlYktpdDIv
d2luL1dlYktpdDIudmNwcm9qCisrKyBiL1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9qCkBAIC0x
MjM2LDYgKzEyMzYsMTQgQEAKIAkJCQlOYW1lPSJEb3dubG9hZHMiDQogCQkJCT4NCiAJCQkJPEZp
bGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViUHJvY2Vzc1xEb3dubG9hZHNcRG93bmxvYWQu
Y3BwIg0KKwkJCQkJPg0KKwkJCQk8L0ZpbGU+DQorCQkJCTxGaWxlDQorCQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXFdlYlByb2Nlc3NcRG93bmxvYWRzXERvd25sb2FkLmgiDQorCQkJCQk+DQorCQkJCTwv
RmlsZT4NCisJCQkJPEZpbGUNCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViUHJvY2Vzc1xEb3du
bG9hZHNcRG93bmxvYWRNYW5hZ2VyLmNwcCINCiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KQEAgLTEy
NDMsNiArMTI1MSwxOCBAQAogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcRG93bmxv
YWRzXERvd25sb2FkTWFuYWdlci5oIg0KIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQorCQkJCTxGaWx0
ZXINCisgICAgCQkJCU5hbWU9ImNmIg0KKyAgICAJCQkJPg0KKyAgICAJCQkJPEZpbGUNCisgICAg
CQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcRG93bmxvYWRzXGNmXERvd25sb2FkQ0ZO
ZXQuY3BwIg0KKyAgICAJCQkJCT4NCisgICAgCQkJCTwvRmlsZT4NCisgICAgCQkJCTxGaWxlDQor
ICAgIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJQcm9jZXNzXERvd25sb2Fkc1xjZlxEb3dubG9h
ZENGTmV0LmgiDQorICAgIAkJCQkJPg0KKyAgICAJCQkJPC9GaWxlPg0KKyAgICAJCQk8L0ZpbHRl
cj4NCiAJCQk8L0ZpbHRlcj4NCiAJCQk8RmlsdGVyDQogCQkJCU5hbWU9IkluamVjdGVkQnVuZGxl
Ig0KZGlmZiAtLWdpdCBhL1dlYktpdDIvd2luL1dlYktpdDJDb21tb24udnNwcm9wcyBiL1dlYktp
dDIvd2luL1dlYktpdDJDb21tb24udnNwcm9wcwppbmRleCBkMjcxNGFlNTQwOTQwNmMxZmQ3MzMx
MDUwMWY1NmMyOGE4NWY1ZDNmLi41YmJiMDI0ZDEwYjFlYjNhM2UxOWE5ZWMwMDY1MzUxMjIzNGMy
ZTljIDEwMDc1NQotLS0gYS9XZWJLaXQyL3dpbi9XZWJLaXQyQ29tbW9uLnZzcHJvcHMKKysrIGIv
V2ViS2l0Mi93aW4vV2ViS2l0MkNvbW1vbi52c3Byb3BzCkBAIC02LDcgKzYsNyBAQAogCT4NCiAJ
PFRvb2wNCiAJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQlBZGRpdGlvbmFsSW5jbHVkZURp
cmVjdG9yaWVzPSImcXVvdDskKFByb2plY3REaXIpXC4uXFBsYXRmb3JtJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcilcLi5cUGxhdGZvcm1cQ29yZUlQQyZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
XC4uXFBsdWdpblByb2Nlc3MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWQmcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcilcLi5cU2hhcmVkXEFQSVxjJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVk
XEFQSVxjXGNmJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXEFQSVxjXHdpbiZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxDb3JlSVBDU3VwcG9ydCZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2VzcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
XC4uXFVJUHJvY2Vzc1xBUElcQyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vz
c1xBUElcQ1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcQVBJXGNw
cCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xBUElcd2luJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXExhdW5jaGVyJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcilcLi5cVUlQcm9jZXNzXFBsdWdpbnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwu
LlxVSVByb2Nlc3Ncd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2VzcyZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcV2ViQ29yZVN1cHBvcnQmcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFdlYkNvcmVTdXBwb3J0XHdpbiZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcV2ViUGFnZSZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcV2ViUGFnZVx3aW4mcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEluamVjdGVkQnVuZGxlJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcilcLi5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1bmRsZVxBUElcYyZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcSW5qZWN0ZWRCdW5kbGVcRE9NJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1bmRsZVx3aW4mcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFBsdWdpbnMmcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFBsdWdpbnNcTmV0c2NhcGUmcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKVwuLlxXZWJQcm9jZXNzXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdl
YlByb2Nlc3NcRG93bmxvYWRzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vz
c1xEb3dubG9hZHNcd2luJnF1b3Q7OyZxdW90OyQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9q
ZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXMmcXVvdDs7JnF1b3Q7JChXZWJLaXRPdXRwdXREaXIpXElu
Y2x1ZGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRPdXRwdXREaXIpXEluY2x1ZGVccHJpdmF0ZSZxdW90
OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZSZxdW90OzsmcXVvdDskKFdlYktp
dExpYnJhcmllc0RpcilcSW5jbHVkZVxwcml2YXRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFy
aWVzRGlyKVxJbmNsdWRlXHB0aHJlYWRzJnF1b3Q7OyZxdW90OyQoV2ViS2l0T3V0cHV0RGlyKVxJ
bmNsdWRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoV2ViS2l0T3V0cHV0RGlyKVxJbmNs
dWRlXHByaXZhdGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNE
aXIpXEluY2x1ZGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNE
aXIpXEluY2x1ZGVccHJpdmF0ZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKFdlYktpdE91
dHB1dERpcilcSW5jbHVkZVxXZWJDb3JlXEZvcndhcmRpbmdIZWFkZXJzJnF1b3Q7OyZxdW90OyQo
V2ViS2l0TGlicmFyaWVzRGlyKVxJbmNsdWRlXFdlYkNvcmVcRm9yd2FyZGluZ0hlYWRlcnMmcXVv
dDsiDQorCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSImcXVvdDskKFByb2plY3REaXIp
XC4uXFBsYXRmb3JtJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cUGxhdGZvcm1cQ29yZUlQ
QyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFBsdWdpblByb2Nlc3MmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKVwuLlxTaGFyZWQmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFy
ZWRcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXEFQSVxjJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXEFQSVxjXGNmJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcilcLi5cU2hhcmVkXEFQSVxjXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNo
YXJlZFxDb3JlSVBDU3VwcG9ydCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vz
cyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xBUElcQyZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xBUElcQ1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKVwuLlxVSVByb2Nlc3NcQVBJXGNwcCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4u
XFVJUHJvY2Vzc1xBUElcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNz
XExhdW5jaGVyJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXFBsdWdpbnMm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3Ncd2luJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcilcLi5cV2ViUHJvY2VzcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdl
YlByb2Nlc3NcV2ViQ29yZVN1cHBvcnQmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQ
cm9jZXNzXFdlYkNvcmVTdXBwb3J0XHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdl
YlByb2Nlc3NcV2ViUGFnZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3Nc
V2ViUGFnZVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEluamVj
dGVkQnVuZGxlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xJbmplY3Rl
ZEJ1bmRsZVxBUElcYyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcSW5q
ZWN0ZWRCdW5kbGVcRE9NJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xJ
bmplY3RlZEJ1bmRsZVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNz
XFBsdWdpbnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFBsdWdpbnNc
TmV0c2NhcGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXHdpbiZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcRG93bmxvYWRzJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xEb3dubG9hZHNcY2YmcXVvdDs7JnF1b3Q7JChX
ZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlcyZxdW90Ozsm
cXVvdDskKFdlYktpdE91dHB1dERpcilcSW5jbHVkZSZxdW90OzsmcXVvdDskKFdlYktpdE91dHB1
dERpcilcSW5jbHVkZVxwcml2YXRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJ
bmNsdWRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNsdWRlXHByaXZhdGUm
cXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVccHRocmVhZHMmcXVvdDs7
JnF1b3Q7JChXZWJLaXRPdXRwdXREaXIpXEluY2x1ZGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1
b3Q7JChXZWJLaXRPdXRwdXREaXIpXEluY2x1ZGVccHJpdmF0ZVxKYXZhU2NyaXB0Q29yZSZxdW90
OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZVxKYXZhU2NyaXB0Q29yZSZxdW90
OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZVxwcml2YXRlXEphdmFTY3JpcHRD
b3JlJnF1b3Q7OyZxdW90OyQoV2ViS2l0T3V0cHV0RGlyKVxJbmNsdWRlXFdlYkNvcmVcRm9yd2Fy
ZGluZ0hlYWRlcnMmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVcV2Vi
Q29yZVxGb3J3YXJkaW5nSGVhZGVycyZxdW90OyINCiAJCVByZXByb2Nlc3NvckRlZmluaXRpb25z
PSJfVVNSRExMO1dFQktJVF9FWFBPUlRTO0ZSQU1FV09SS19OQU1FPVdlYktpdDtCVUlMRElOR19X
RUJLSVQiDQogCQlVc2VQcmVjb21waWxlZEhlYWRlcj0iMiINCiAJCVByZWNvbXBpbGVkSGVhZGVy
VGhyb3VnaD0iV2ViS2l0MlByZWZpeC5oIg0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>72070</attachid>
            <date>2010-10-27 12:15:33 -0700</date>
            <delta_ts>2010-10-27 12:17:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-48447-20101027121532.patch</filename>
            <type>text/plain</type>
            <size>28862</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdDIvQ2hhbmdlTG9nIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXgg
NTlkYTU1MDI0MDhhNGIwNmI3NjI1MjM3MjY2YzYwNWYzNmRiOTI3NC4uNTllNzE3MDQ3MzI5MDcz
M2I0YmIwN2RiMmE2YTE2MzZhM2I0NjAwMiAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9DaGFuZ2VMb2cK
KysrIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNiBAQAorMjAxMC0xMC0yNyAgQW5k
ZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJlZ2luIHN0dWJiaW5nIG91dCB0aGUgRG93bmxv
YWQgY2xhc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTQ4NDQ3CisKKyAgICAgICAgKiBXZWJLaXQyLnBybzoKKyAgICAgICAgKiBXZWJLaXQyLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgIEFkZCBuZXcgZmlsZXMuCisgICAgICAgIAor
ICAgICAgICAqIFdlYktpdDJQcmVmaXguaDoKKyAgICAgICAgSW5jbHVkZSBXZWJDb3JlL0VtcHR5
UHJvdG9jb2xEZWZpbml0aW9ucy5oCisgICAgICAgIAorICAgICAgICAqIFdlYlByb2Nlc3MvRG93
bmxvYWRzL0Rvd25sb2FkLmNwcDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9Eb3dubG9h
ZHMvRG93bmxvYWQuaDogQWRkZWQuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0Rvd25sb2Fkcy9E
b3dubG9hZE1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZE1hbmFnZXI6OnN0
YXJ0RG93bmxvYWQpOgorICAgICAgICBDcmVhdGUgYSBEb3dubG9hZCBvYmplY3QgYW5kIHN0YXJ0
IGl0LgorCisgICAgICAgICogV2ViUHJvY2Vzcy9Eb3dubG9hZHMvbWFjL0Rvd25sb2FkTWFjLm1t
OiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWQ6OnN0YXJ0KToKKyAgICAgICAgQ3Jl
YXRlIGFuIE5TVVJMRG93bmxvYWQuCisgICAgCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYkZyYW1lLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWU6OnN0YXJ0RG93bmxvYWQp
OgorICAgICAgICBBc2sgdGhlIGRvd25sb2FkIG1hbmFnZXIgdG8gc3RhcnQgZG93bmxvYWRpbmcu
CisKKyAgICAgICAgKiB3aW4vV2ViS2l0Mi52Y3Byb2o6CisgICAgICAgICogd2luL1dlYktpdDJD
b21tb24udnNwcm9wczoKKyAgICAgICAgQWRkIG5ldyBmaWxlcy4KKwogMjAxMC0xMC0yNiAgQnJp
YW4gV2VpbnN0ZWluICA8YndlaW5zdGVpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgQWRhbSBSb2Jlbi4KZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViS2l0Mi5wcm8gYi9XZWJLaXQy
L1dlYktpdDIucHJvCmluZGV4IGM2YWNmNzk4ZDNkNWJlMGI5NjMwZTFkNWU0MjBhODNmZjg3MTgy
NzguLjI0NTA1N2RjNmJkNjlkYzNjYjZhYmMwZTljNTI2N2M1MWJiYTk0ODUgMTAwNjQ0Ci0tLSBh
L1dlYktpdDIvV2ViS2l0Mi5wcm8KKysrIGIvV2ViS2l0Mi9XZWJLaXQyLnBybwpAQCAtMjg0LDYg
KzI4NCw3IEBAIEhFQURFUlMgKz0gXAogICAgIFVJUHJvY2Vzcy9XZWJVSUNsaWVudC5oIFwKICAg
ICBVSVByb2Nlc3MvcXQvV2ViUG9wdXBNZW51UHJveHlRdC5oIFwKICAgICBXZWJQcm9jZXNzL0Rv
d25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuaCBcCisgICAgV2ViUHJvY2Vzcy9Eb3dubG9hZHMvRG93
bmxvYWQuaCBcCiAgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUhp
dFRlc3RSZXN1bHQuaCBcCiAgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1
bmRsZU5vZGVIYW5kbGUuaCBcCiAgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9X
S0J1bmRsZU5vZGVIYW5kbGVQcml2YXRlLmggXApAQCAtNDMwLDcgKzQzMSw5IEBAIFNPVVJDRVMg
Kz0gXAogICAgIFVJUHJvY2Vzcy9XZWJQcm9jZXNzTWFuYWdlci5jcHAgXAogICAgIFVJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuY3BwIFwKICAgICBVSVByb2Nlc3MvV2ViVUlDbGllbnQuY3BwIFwK
KyAgICBXZWJQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHAgXAogICAgIFdlYlByb2Nlc3Mv
RG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5jcHAgXAorICAgIFdlYlByb2Nlc3MvRG93bmxvYWRz
L3F0L0Rvd25sb2FkUXQuY3BwIFwKICAgICBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9j
L1dLQnVuZGxlLmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1
bmRsZUZyYW1lLmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1
bmRsZUhpdFRlc3RSZXN1bHQuY3BwIFwKZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViS2l0Mi54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggYzIwNzNiNTEzMGMyYzRjNTU5OTIzYmZmNjgwOWM5YTk0NTYxNDU1MC4u
MWFiNTZlYzBjMTZhMDdjMzQ1MTIwYWUxZGU3N2E2ZGVhN2UzZWZmNyAxMDA2NDQKLS0tIGEvV2Vi
S2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViS2l0Mi9XZWJL
aXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTkxLDYgKzkxLDkgQEAKIAkJMUE1OTRB
QkIxMTJBMUZCNjAwOURFN0M3IC8qIFdlYlVJQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTU5NEFCOTExMkExRkI2MDA5REU3QzcgLyogV2Vi
VUlDbGllbnQuaCAqLzsgfTsKIAkJMUE2MTYxNEYxMjc3OThCNTAwM0FDRDg2IC8qIERvd25sb2Fk
TWFuYWdlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxQTYxNjE0RDEyNzc5OEI1MDAzQUNEODYgLyogRG93bmxvYWRNYW5hZ2VyLmNwcCAqLzsgfTsK
IAkJMUE2MTYxNTAxMjc3OThCNTAwM0FDRDg2IC8qIERvd25sb2FkTWFuYWdlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE2MTYxNEUxMjc3OThCNTAw
M0FDRDg2IC8qIERvd25sb2FkTWFuYWdlci5oICovOyB9OworCQkxQTYxNjFENDEyNzg5ODFDMDAz
QUNEODYgLyogRG93bmxvYWQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDFBNjE2MUQyMTI3ODk4MUMwMDNBQ0Q4NiAvKiBEb3dubG9hZC5oICovOyB9Owor
CQkxQTYxNjFENTEyNzg5ODFDMDAzQUNEODYgLyogRG93bmxvYWQuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE2MTYxRDMxMjc4OTgxQzAwM0FDRDg2
IC8qIERvd25sb2FkLmNwcCAqLzsgfTsKKwkJMUE2MTYzOTYxMjc4OUIyRjAwM0FDRDg2IC8qIERv
d25sb2FkTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMUE2MTYzOTUxMjc4OUIyRjAwM0FDRDg2IC8qIERvd25sb2FkTWFjLm1tICovOyB9OwogCQkx
QTZGOUY5MDExRTEzRUZDMDBEQjEzNzEgLyogQ29tbWFuZExpbmUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBNkY5RjhFMTFFMTNFRkMwMERCMTM3MSAv
KiBDb21tYW5kTGluZS5oICovOyB9OwogCQkxQTZGOUZCNzExRTE0MDg1MDBEQjEzNzEgLyogQ29t
bWFuZExpbmVNYWMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMUE2RjlGQjYxMUUxNDA4NTAwREIxMzcxIC8qIENvbW1hbmRMaW5lTWFjLmNwcCAqLzsg
fTsKIAkJMUE2RkEwMUUxMUUxNTI2MzAwREIxMzcxIC8qIFdlYlByb2Nlc3NNYWluTWFjLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE2RkEwMUQxMUUx
NTI2MzAwREIxMzcxIC8qIFdlYlByb2Nlc3NNYWluTWFjLm1tICovOyB9OwpAQCAtNTcwLDYgKzU3
Myw5IEBACiAJCTFBNTk0QUI5MTEyQTFGQjYwMDlERTdDNyAvKiBXZWJVSUNsaWVudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJVSUNsaWVudC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkxQTYxNjE0RDEyNzc5OEI1MDAzQUNEODYgLyogRG93bmxvYWRNYW5h
Z2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERvd25sb2FkTWFu
YWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBNjE2MTRFMTI3Nzk4QjUw
MDNBQ0Q4NiAvKiBEb3dubG9hZE1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRG93bmxvYWRNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFB
NjE2MUQyMTI3ODk4MUMwMDNBQ0Q4NiAvKiBEb3dubG9hZC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBEb3dubG9hZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkx
QTYxNjFEMzEyNzg5ODFDMDAzQUNEODYgLyogRG93bmxvYWQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gRG93bmxvYWQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkxQTYxNjM5NTEyNzg5QjJGMDAzQUNEODYgLyogRG93bmxvYWRNYWMubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBEb3dubG9hZE1hYy5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUE2RjlGOEUxMUUxM0VGQzAwREIxMzcxIC8qIENvbW1h
bmRMaW5lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvbW1hbmRMaW5lLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBNkY5RkI2MTFFMTQwODUwMERCMTM3MSAv
KiBDb21tYW5kTGluZU1hYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBDb21tYW5kTGluZU1hYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBNkZB
MDFEMTFFMTUyNjMwMERCMTM3MSAvKiBXZWJQcm9jZXNzTWFpbk1hYy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYlByb2Nlc3NNYWluTWFjLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTExMywxMiArMTExOSwyMyBAQAogCQkxQTYxNjE0QzEy
Nzc5OEI1MDAzQUNEODYgLyogRG93bmxvYWRzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJ
CQljaGlsZHJlbiA9ICgKKwkJCQkxQTYxNjM5NDEyNzg5QjJGMDAzQUNEODYgLyogbWFjICovLAor
CQkJCTFBNjE2MUQzMTI3ODk4MUMwMDNBQ0Q4NiAvKiBEb3dubG9hZC5jcHAgKi8sCisJCQkJMUE2
MTYxRDIxMjc4OTgxQzAwM0FDRDg2IC8qIERvd25sb2FkLmggKi8sCiAJCQkJMUE2MTYxNEQxMjc3
OThCNTAwM0FDRDg2IC8qIERvd25sb2FkTWFuYWdlci5jcHAgKi8sCiAJCQkJMUE2MTYxNEUxMjc3
OThCNTAwM0FDRDg2IC8qIERvd25sb2FkTWFuYWdlci5oICovLAogCQkJKTsKIAkJCXBhdGggPSBE
b3dubG9hZHM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQkxQTYxNjM5NDEy
Nzg5QjJGMDAzQUNEODYgLyogbWFjICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGls
ZHJlbiA9ICgKKwkJCQkxQTYxNjM5NTEyNzg5QjJGMDAzQUNEODYgLyogRG93bmxvYWRNYWMubW0g
Ki8sCisJCQkpOworCQkJcGF0aCA9IG1hYzsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJ
CX07CiAJCTFBNkZBMDFDMTFFMTUyNjMwMERCMTM3MSAvKiBtYWMgKi8gPSB7CiAJCQlpc2EgPSBQ
QlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMjEyOCw2ICsyMTQ1LDcgQEAKIAkJCQkxQzhF
MjgzNDEyNzVENzM4MDBCQzdCRDAgLyogV2ViSW5zcGVjdG9yUHJveHkuaCBpbiBIZWFkZXJzICov
LAogCQkJCTFDOEUyOTM5MTI3NjFFNUIwMEJDN0JEMCAvKiBXS0luc3BlY3Rvci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMUE2MTYxNTAxMjc3OThCNTAwM0FDRDg2IC8qIERvd25sb2FkTWFuYWdlci5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMUE2MTYxRDQxMjc4OTgxQzAwM0FDRDg2IC8qIERvd25sb2Fk
LmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9j
ZXNzaW5nID0gMDsKIAkJfTsKQEAgLTI0NDIsNiArMjQ2MCw4IEBACiAJCQkJMUM4RTI4MzUxMjc1
RDczODAwQkM3QkQwIC8qIFdlYkluc3BlY3RvclByb3h5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTFDOEUyOTNBMTI3NjFFNUIwMEJDN0JEMCAvKiBXS0luc3BlY3Rvci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkxQTYxNjE0RjEyNzc5OEI1MDAzQUNEODYgLyogRG93bmxvYWRNYW5hZ2VyLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCTFBNjE2MUQ1MTI3ODk4MUMwMDNBQ0Q4NiAvKiBEb3dubG9hZC5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQkxQTYxNjM5NjEyNzg5QjJGMDAzQUNEODYgLyogRG93bmxv
YWRNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBv
c3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViS2l0MlByZWZp
eC5oIGIvV2ViS2l0Mi9XZWJLaXQyUHJlZml4LmgKaW5kZXggMmU2MWNlYjFiODJiOTJlYWUxYzg5
NDhhOWFiZDhmNGE1NGMxNjRmNC4uMTNlZTgzN2M3Zjg5MTNmNDQyNWJhNjdkMzdhMzQ3NWZhY2M0
NzFiZCAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9XZWJLaXQyUHJlZml4LmgKKysrIGIvV2ViS2l0Mi9X
ZWJLaXQyUHJlZml4LmgKQEAgLTc2LDYgKzc2LDggQEAgc3RhdGljIGNvbnN0IHR5cGUmIG5hbWUo
KSBcCiAjZGVmaW5lIEpTX0VYUE9SVENMQVNTCiAjZGVmaW5lIFdFQktJVF9FWFBPUlREQVRBCiAK
KyNpbmNsdWRlIDxXZWJDb3JlL0VtcHR5UHJvdG9jb2xEZWZpbml0aW9ucy5oPgorCiAjZWxpZiBk
ZWZpbmVkKFdJTjMyKSB8fCBkZWZpbmVkKF9XSU4zMikKIAogI2lmbmRlZiBfV0lOMzJfV0lOTlQK
ZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuY3BwIGIv
V2ViS2l0Mi9XZWJQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmUz
ZDk3OGFiY2E4OGU2ZjZmNWVjOTM1MjMxM2Y3YmMzZTU4Mjc0OAotLS0gL2Rldi9udWxsCisrKyBi
L1dlYktpdDIvV2ViUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuY3BwCkBAIC0wLDAgKzEsNDgg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiRG93bmxvYWQuaCIKKwordXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitQYXNzT3duUHRyPERvd25sb2FkPiBE
b3dubG9hZDo6Y3JlYXRlKHVpbnQ2NF90IGRvd25sb2FkSUQsIGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCkKK3sKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3IERvd25sb2FkKGRvd25sb2Fk
SUQsIHJlcXVlc3QpKTsKK30KKworRG93bmxvYWQ6OkRvd25sb2FkKHVpbnQ2NF90IGRvd25sb2Fk
SUQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKKyAgICA6IG1fZG93bmxvYWRJRChk
b3dubG9hZElEKQorICAgICwgbV9yZXF1ZXN0KHJlcXVlc3QpCit7CisgICAgQVNTRVJUKG1fZG93
bmxvYWRJRCk7Cit9CisKK0Rvd25sb2FkOjp+RG93bmxvYWQoKQoreworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViUHJvY2Vzcy9Eb3dubG9hZHMvRG93
bmxvYWQuaCBiL1dlYktpdDIvV2ViUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi40ZTJiZGE1YTk4N2QxMzA4ZjhhNDZkZTNmMGI3MzQ2ZWU2YTgxOGU1Ci0tLSAvZGV2L251
bGwKKysrIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5oCkBAIC0wLDAg
KzEsNjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIERvd25sb2FkX2gKKyNkZWZpbmUgRG93bmxv
YWRfaAorCisjaWYgUExBVEZPUk0oTUFDKQorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKyNp
ZmRlZiBfX09CSkNfXworQGNsYXNzIE5TVVJMRG93bmxvYWQ7CitAY2xhc3MgV0tEb3dubG9hZEFz
RGVsZWdhdGU7CisjZWxzZQorY2xhc3MgTlNVUkxEb3dubG9hZDsKK2NsYXNzIFdLRG93bmxvYWRB
c0RlbGVnYXRlOworI2VuZGlmCisjZW5kaWYKKworI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VS
ZXF1ZXN0Lmg+CisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL1Bh
c3NPd25QdHIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIERvd25sb2FkIHsKKyAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShEb3dubG9hZCk7CisKK3B1YmxpYzoKKyAgICBzdGF0aWMg
UGFzc093blB0cjxEb3dubG9hZD4gY3JlYXRlKHVpbnQ2NF90IGRvd25sb2FkSUQsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOworICAgIH5Eb3dubG9hZCgpOworCisgICAgdm9pZCBz
dGFydCgpOworCitwcml2YXRlOgorICAgIERvd25sb2FkKHVpbnQ2NF90IGRvd25sb2FkSUQsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOworCisgICAgdWludDY0X3QgbV9kb3dubG9h
ZElEOworICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBtX3JlcXVlc3Q7CisKKyNpZiBQTEFU
Rk9STShNQUMpCisgICAgUmV0YWluUHRyPE5TVVJMRG93bmxvYWQ+IG1fbnNVUkxEb3dubG9hZDsK
KyAgICBSZXRhaW5QdHI8V0tEb3dubG9hZEFzRGVsZWdhdGU+IG1fZGVsZWdhdGU7CisjZW5kaWYK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRG93bmxvYWRfaApkaWZm
IC0tZ2l0IGEvV2ViS2l0Mi9XZWJQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuY3Bw
IGIvV2ViS2l0Mi9XZWJQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuY3BwCmluZGV4
IDZmNTI0YTRmNzVmZmUyMzcyNjI1M2I2MGE4ZmJjMzY5NTYwOWQ3YmUuLjZiY2ViNGRiZDYwN2Rm
ODhmMDYxYTIxMmM3NTkzOTFkZGQ2M2VlN2QgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvV2ViUHJvY2Vz
cy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmNwcAorKysgYi9XZWJLaXQyL1dlYlByb2Nlc3Mv
RG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5jcHAKQEAgLTI1LDggKzI1LDEyIEBACiAKICNpbmNs
dWRlICJEb3dubG9hZE1hbmFnZXIuaCIKIAorI2luY2x1ZGUgIkRvd25sb2FkLmgiCisjaW5jbHVk
ZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKK3Vz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogRG93bmxvYWRN
YW5hZ2VyJiBEb3dubG9hZE1hbmFnZXI6OnNoYXJlZCgpCkBAIC0zOSw0ICs0MywxMCBAQCBEb3du
bG9hZE1hbmFnZXI6OkRvd25sb2FkTWFuYWdlcigpCiB7CiB9CiAKK3ZvaWQgRG93bmxvYWRNYW5h
Z2VyOjpzdGFydERvd25sb2FkKHVpbnQ2NF90IGRvd25sb2FkSUQsIGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCkKK3sKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50LgorICAgIG5vdEltcGxl
bWVudGVkKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvV2ViS2l0
Mi9XZWJQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuaCBiL1dlYktpdDIvV2ViUHJv
Y2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmgKaW5kZXggNWM2NzI1NmY2NmM1NDA2YTVi
Mjc2ZjI2NThkNWY0MDg5MGFkZmYxYy4uZWYzY2NmNTkzM2NkYjJjNjVhOTRmNzIzZTZlMjgzMjlh
Yzc3NDhjNSAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9XZWJQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9h
ZE1hbmFnZXIuaAorKysgYi9XZWJLaXQyL1dlYlByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFu
YWdlci5oCkBAIC0yOCw2ICsyOCwxMCBAQAogCiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+
CiAKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7Cit9CisK
IG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBEb3dubG9hZE1hbmFnZXIgewpAQCAtMzYsNiAr
NDAsOCBAQCBjbGFzcyBEb3dubG9hZE1hbmFnZXIgewogcHVibGljOgogICAgIHN0YXRpYyBEb3du
bG9hZE1hbmFnZXImIHNoYXJlZCgpOwogCisgICAgdm9pZCBzdGFydERvd25sb2FkKHVpbnQ2NF90
IGRvd25sb2FkSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOworCiBwcml2YXRl
OgogICAgIERvd25sb2FkTWFuYWdlcigpOwogCmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYlByb2Nl
c3MvRG93bmxvYWRzL2NmL0Rvd25sb2FkQ0ZOZXQuY3BwIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL0Rv
d25sb2Fkcy9jZi9Eb3dubG9hZENGTmV0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNWU3ZGM1N2VjODE5YWMx
NjI2ZGU3Y2ZlNjY4NDY5YzNjMGJkYjUwCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0Rvd25sb2Fkcy9jZi9Eb3dubG9hZENGTmV0LmNwcApAQCAtMCwwICsxLDM5IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgIkRvd25sb2FkLmgiCisKKyNpbmNsdWRlICJOb3RJbXBsZW1l
bnRlZC5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK3ZvaWQgRG93bmxvYWQ6OnN0YXJ0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViUHJvY2Vzcy9E
b3dubG9hZHMvbWFjL0Rvd25sb2FkTWFjLm1tIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL0Rvd25sb2Fk
cy9tYWMvRG93bmxvYWRNYWMubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGJmYWViMzEzMGYyNjQzYTNjODc3OWFj
MmU0NzQxNmMwNzI2M2IzYQotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdDIvV2ViUHJvY2Vzcy9E
b3dubG9hZHMvbWFjL0Rvd25sb2FkTWFjLm1tCkBAIC0wLDAgKzEsMTU2IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgIkRvd25sb2FkLmgiCisKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgor
CitAaW50ZXJmYWNlIFdLRG93bmxvYWRBc0RlbGVnYXRlIDogTlNPYmplY3QgPE5TVVJMQ29ubmVj
dGlvbkRlbGVnYXRlPiB7CisgICAgV2ViS2l0OjpEb3dubG9hZCogbV9kb3dubG9hZDsKK30KKy0g
KGlkKWluaXRXaXRoRG93bmxvYWQ6KFdlYktpdDo6RG93bmxvYWQqKWRvd25sb2FkOworLSAodm9p
ZClpbnZhbGlkYXRlOworQGVuZAorCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1l
c3BhY2UgV2ViS2l0IHsKKwordm9pZCBEb3dubG9hZDo6c3RhcnQoKQoreworICAgIEFTU0VSVCgh
bV9uc1VSTERvd25sb2FkKTsKKyAgICBBU1NFUlQoIW1fZGVsZWdhdGUpOworCisgICAgbV9kZWxl
Z2F0ZS5hZG9wdE5TKFtbV0tEb3dubG9hZEFzRGVsZWdhdGUgYWxsb2NdIGluaXRXaXRoRG93bmxv
YWQ6dGhpc10pOworICAgIG1fbnNVUkxEb3dubG9hZC5hZG9wdE5TKFtbTlNVUkxEb3dubG9hZCBh
bGxvY10gaW5pdFdpdGhSZXF1ZXN0Om1fcmVxdWVzdC5uc1VSTFJlcXVlc3QoKSBkZWxlZ2F0ZTpt
X2RlbGVnYXRlLmdldCgpXSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCitAaW1wbGVt
ZW50YXRpb24gV0tEb3dubG9hZEFzRGVsZWdhdGUKKworLSAoaWQpaW5pdFdpdGhEb3dubG9hZDoo
V2ViS2l0OjpEb3dubG9hZCopZG93bmxvYWQKK3sKKyAgICBzZWxmID0gW3N1cGVyIGluaXRdOwor
ICAgIGlmICghc2VsZikKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIG1fZG93bmxvYWQgPSBk
b3dubG9hZDsKKyAgICByZXR1cm4gc2VsZjsKK30KKworLSAodm9pZClpbnZhbGlkYXRlCit7Cisg
ICAgbV9kb3dubG9hZCA9IDA7Cit9CisKKy0gKHZvaWQpZG93bmxvYWREaWRCZWdpbjooTlNVUkxE
b3dubG9hZCAqKWRvd25sb2FkCit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudC4KKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworfQorCistIChOU1VSTFJlcXVlc3QgKilkb3dubG9hZDooTlNVUkxEb3du
bG9hZCAqKWRvd25sb2FkIHdpbGxTZW5kUmVxdWVzdDooTlNVUkxSZXF1ZXN0ICopcmVxdWVzdCBy
ZWRpcmVjdFJlc3BvbnNlOihOU1VSTFJlc3BvbnNlICopcmVkaXJlY3RSZXNwb25zZQoreworICAg
IHJldHVybiByZXF1ZXN0OworfQorCistIChCT09MKWRvd25sb2FkOihOU1VSTERvd25sb2FkICop
Y29ubmVjdGlvbiBjYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlOihOU1VSTFBy
b3RlY3Rpb25TcGFjZSAqKXByb3RlY3Rpb25TcGFjZQoreworICAgIC8vIEZJWE1FOiBJbXBsZW1l
bnQuCisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gTk87Cit9CisKKy0gKHZvaWQp
ZG93bmxvYWQ6KE5TVVJMRG93bmxvYWQgKilkb3dubG9hZCBkaWRSZWNlaXZlQXV0aGVudGljYXRp
b25DaGFsbGVuZ2U6KE5TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgKiljaGFsbGVuZ2UKK3sK
KyAgICAvLyBGSVhNRTogSW1wbGVtZW50LgorICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKKy0g
KHZvaWQpZG93bmxvYWQ6KE5TVVJMRG93bmxvYWQgKilkb3dubG9hZCBkaWRDYW5jZWxBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZTooTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSAqKWNoYWxsZW5n
ZQoreworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQuCisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30K
KworLSAoQk9PTClkb3dubG9hZFNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlOihOU1VSTERvd25s
b2FkICopZG93bmxvYWQKK3sKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50LgorICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgcmV0dXJuIFlFUzsKK30KKworLSAodm9pZClkb3dubG9hZDooTlNVUkxE
b3dubG9hZCAqKWRvd25sb2FkIGRpZFJlY2VpdmVSZXNwb25zZTooTlNVUkxSZXNwb25zZSAqKXJl
c3BvbnNlOworeworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQuCisgICAgbm90SW1wbGVtZW50ZWQo
KTsKK30KKworLSAodm9pZClkb3dubG9hZDooTlNVUkxEb3dubG9hZCAqKWRvd25sb2FkIHdpbGxS
ZXN1bWVXaXRoUmVzcG9uc2U6KE5TVVJMUmVzcG9uc2UgKilyZXNwb25zZSBmcm9tQnl0ZToobG9u
ZyBsb25nKXN0YXJ0aW5nQnl0ZQoreworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQuCisgICAgbm90
SW1wbGVtZW50ZWQoKTsKK30KKworLSAodm9pZClkb3dubG9hZDooTlNVUkxEb3dubG9hZCAqKWRv
d25sb2FkIGRpZFJlY2VpdmVEYXRhT2ZMZW5ndGg6KE5TVUludGVnZXIpbGVuZ3RoCit7CisgICAg
Ly8gRklYTUU6IEltcGxlbWVudC4KKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCistIChCT09M
KWRvd25sb2FkOihOU1VSTERvd25sb2FkICopZG93bmxvYWQgc2hvdWxkRGVjb2RlU291cmNlRGF0
YU9mTUlNRVR5cGU6KE5TU3RyaW5nICopZW5jb2RpbmdUeXBlCit7CisgICAgLy8gRklYTUU6IElt
cGxlbWVudC4KKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBZRVM7Cit9CisKKy0g
KHZvaWQpZG93bmxvYWQ6KE5TVVJMRG93bmxvYWQgKilkb3dubG9hZCBkZWNpZGVEZXN0aW5hdGlv
bldpdGhTdWdnZXN0ZWRGaWxlbmFtZTooTlNTdHJpbmcgKilmaWxlbmFtZQoreworICAgIC8vIEZJ
WE1FOiBJbXBsZW1lbnQuCisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworLSAodm9pZClkb3du
bG9hZDooTlNVUkxEb3dubG9hZCAqKWRvd25sb2FkIGRpZENyZWF0ZURlc3RpbmF0aW9uOihOU1N0
cmluZyAqKXBhdGgKK3sKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50LgorICAgIG5vdEltcGxlbWVu
dGVkKCk7Cit9CisKKy0gKHZvaWQpZG93bmxvYWREaWRGaW5pc2g6KE5TVVJMRG93bmxvYWQgKilk
b3dubG9hZAoreworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQuCisgICAgbm90SW1wbGVtZW50ZWQo
KTsKK30KKworLSAodm9pZClkb3dubG9hZDooTlNVUkxEb3dubG9hZCAqKWRvd25sb2FkIGRpZEZh
aWxXaXRoRXJyb3I6KE5TRXJyb3IgKillcnJvcgoreworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQu
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworQGVuZApkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0Rvd25sb2Fkcy9xdC9Eb3dubG9hZFF0LmNwcCBiL1dlYktpdDIvV2ViUHJvY2Vz
cy9Eb3dubG9hZHMvcXQvRG93bmxvYWRRdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTVlN2RjNTdlYzgxOWFj
MTYyNmRlN2NmZTY2ODQ2OWMzYzBiZGI1MAotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdDIvV2Vi
UHJvY2Vzcy9Eb3dubG9hZHMvcXQvRG93bmxvYWRRdC5jcHAKQEAgLTAsMCArMSwzOSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJEb3dubG9hZC5oIgorCisjaW5jbHVkZSAiTm90SW1wbGVtZW50
ZWQuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgewor
Cit2b2lkIERvd25sb2FkOjpzdGFydCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJGcmFtZS5jcHAgYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5j
cHAKaW5kZXggYzZmMzkwNWRlNDY2YmY4OTkxNDkzZGNkM2Q2YTNjZTZiOGYwMmNjOS4uZGEwOWVm
MzI1OTdhMzMwZGM0ZDJjMzkzYTMwYTI1ODllNTUwYjQxMSAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCisrKyBiL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYkZyYW1lLmNwcApAQCAtMjUsNiArMjUsNyBAQAogCiAjaW5jbHVkZSAiV2ViRnJh
bWUuaCIKIAorI2luY2x1ZGUgIkRvd25sb2FkTWFuYWdlci5oIgogI2luY2x1ZGUgIkluamVjdGVk
QnVuZGxlTm9kZUhhbmRsZS5oIgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUu
aCIKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkLmgiCkBAIC0yMDUsMTAgKzIw
NiwxMiBAQCB2b2lkIFdlYkZyYW1lOjpkaWRSZWNlaXZlUG9saWN5RGVjaXNpb24odWludDY0X3Qg
bGlzdGVuZXJJRCwgUG9saWN5QWN0aW9uIGFjdGlvbgogICAgIChtX2NvcmVGcmFtZS0+bG9hZGVy
KCktPnBvbGljeUNoZWNrZXIoKS0+KmZ1bmN0aW9uKShhY3Rpb24pOwogfQogCi12b2lkIFdlYkZy
YW1lOjpzdGFydERvd25sb2FkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpCit2b2lk
IFdlYkZyYW1lOjpzdGFydERvd25sb2FkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCkKIHsKICAgICBBU1NFUlQobV9wb2xpY3lEb3dubG9hZElEKTsKIAorICAgIERvd25s
b2FkTWFuYWdlcjo6c2hhcmVkKCkuc3RhcnREb3dubG9hZChtX3BvbGljeURvd25sb2FkSUQsIHJl
cXVlc3QpOworCiAgICAgbV9wb2xpY3lEb3dubG9hZElEID0gMDsKIH0KIApkaWZmIC0tZ2l0IGEv
V2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2ogYi9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagpp
bmRleCA0MTgxYzQ4MzE4ZTdmYTViOGE3YjM3Y2IwNWFlMGJiOGVmNTE0ZWE1Li43OTU0YTJjYjM1
NjNjYzM0ODJkZWFhOTc3MTA3YTA1YWFjODliMGZhIDEwMDc1NQotLS0gYS9XZWJLaXQyL3dpbi9X
ZWJLaXQyLnZjcHJvagorKysgYi9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagpAQCAtMTIzNiw2
ICsxMjM2LDE0IEBACiAJCQkJTmFtZT0iRG93bmxvYWRzIg0KIAkJCQk+DQogCQkJCTxGaWxlDQor
CQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcRG93bmxvYWRzXERvd25sb2FkLmNwcCIN
CisJCQkJCT4NCisJCQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIu
LlxXZWJQcm9jZXNzXERvd25sb2Fkc1xEb3dubG9hZC5oIg0KKwkJCQkJPg0KKwkJCQk8L0ZpbGU+
DQorCQkJCTxGaWxlDQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcRG93bmxvYWRz
XERvd25sb2FkTWFuYWdlci5jcHAiDQogCQkJCQk+DQogCQkJCTwvRmlsZT4NCkBAIC0xMjQzLDYg
KzEyNTEsMTQgQEAKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJQcm9jZXNzXERvd25sb2Fkc1xE
b3dubG9hZE1hbmFnZXIuaCINCiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KKwkJCQk8RmlsdGVyDQor
ICAgIAkJCQlOYW1lPSJjZiINCisgICAgCQkJCT4NCisgICAgCQkJCTxGaWxlDQorICAgIAkJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxXZWJQcm9jZXNzXERvd25sb2Fkc1xjZlxEb3dubG9hZENGTmV0LmNw
cCINCisgICAgCQkJCQk+DQorICAgIAkJCQk8L0ZpbGU+DQorICAgIAkJCTwvRmlsdGVyPg0KIAkJ
CTwvRmlsdGVyPg0KIAkJCTxGaWx0ZXINCiAJCQkJTmFtZT0iSW5qZWN0ZWRCdW5kbGUiDQpkaWZm
IC0tZ2l0IGEvV2ViS2l0Mi93aW4vV2ViS2l0MkNvbW1vbi52c3Byb3BzIGIvV2ViS2l0Mi93aW4v
V2ViS2l0MkNvbW1vbi52c3Byb3BzCmluZGV4IGQyNzE0YWU1NDA5NDA2YzFmZDczMzEwNTAxZjU2
YzI4YTg1ZjVkM2YuLjViYmIwMjRkMTBiMWViM2EzZTE5YTllYzAwNjUzNTEyMjM0YzJlOWMgMTAw
NzU1Ci0tLSBhL1dlYktpdDIvd2luL1dlYktpdDJDb21tb24udnNwcm9wcworKysgYi9XZWJLaXQy
L3dpbi9XZWJLaXQyQ29tbW9uLnZzcHJvcHMKQEAgLTYsNyArNiw3IEBACiAJPg0KIAk8VG9vbA0K
IAkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3Jp
ZXM9IiZxdW90OyQoUHJvamVjdERpcilcLi5cUGxhdGZvcm0mcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKVwuLlxQbGF0Zm9ybVxDb3JlSVBDJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cUGx1
Z2luUHJvY2VzcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZCZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpXC4uXFNoYXJlZFx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwu
LlxTaGFyZWRcQVBJXGMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcQVBJXGNc
Y2YmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcQVBJXGNcd2luJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXENvcmVJUENTdXBwb3J0JnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcilcLi5cVUlQcm9jZXNzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQ
cm9jZXNzXEFQSVxDJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXEFQSVxD
XHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xBUElcY3BwJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXEFQSVx3aW4mcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcTGF1bmNoZXImcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KVwuLlxVSVByb2Nlc3NcUGx1Z2lucyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJv
Y2Vzc1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xXZWJDb3JlU3VwcG9ydCZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcV2ViQ29yZVN1cHBvcnRcd2luJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xXZWJQYWdlJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcilcLi5cV2ViUHJvY2Vzc1xXZWJQYWdlXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpXC4uXFdlYlByb2Nlc3NcSW5qZWN0ZWRCdW5kbGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KVwuLlxXZWJQcm9jZXNzXEluamVjdGVkQnVuZGxlXEFQSVxjJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcilcLi5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1bmRsZVxET00mcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEluamVjdGVkQnVuZGxlXHdpbiZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpXC4uXFdlYlByb2Nlc3NcUGx1Z2lucyZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
XC4uXFdlYlByb2Nlc3NcUGx1Z2luc1xOZXRzY2FwZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
XC4uXFdlYlByb2Nlc3Ncd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vz
c1xEb3dubG9hZHMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXERvd25s
b2Fkc1x3aW4mcXVvdDs7JnF1b3Q7JChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1l
KVxEZXJpdmVkU291cmNlcyZxdW90OzsmcXVvdDskKFdlYktpdE91dHB1dERpcilcSW5jbHVkZSZx
dW90OzsmcXVvdDskKFdlYktpdE91dHB1dERpcilcSW5jbHVkZVxwcml2YXRlJnF1b3Q7OyZxdW90
OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNsdWRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFy
aWVzRGlyKVxJbmNsdWRlXHByaXZhdGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIp
XEluY2x1ZGVccHRocmVhZHMmcXVvdDs7JnF1b3Q7JChXZWJLaXRPdXRwdXREaXIpXEluY2x1ZGVc
SmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChXZWJLaXRPdXRwdXREaXIpXEluY2x1ZGVccHJp
dmF0ZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5j
bHVkZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5j
bHVkZVxwcml2YXRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoV2ViS2l0T3V0cHV0RGly
KVxJbmNsdWRlXFdlYkNvcmVcRm9yd2FyZGluZ0hlYWRlcnMmcXVvdDs7JnF1b3Q7JChXZWJLaXRM
aWJyYXJpZXNEaXIpXEluY2x1ZGVcV2ViQ29yZVxGb3J3YXJkaW5nSGVhZGVycyZxdW90OyINCisJ
CUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9IiZxdW90OyQoUHJvamVjdERpcilcLi5cUGxh
dGZvcm0mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxQbGF0Zm9ybVxDb3JlSVBDJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcilcLi5cUGx1Z2luUHJvY2VzcyZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpXC4uXFNoYXJlZCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFx3aW4m
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcQVBJXGMmcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKVwuLlxTaGFyZWRcQVBJXGNcY2YmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwu
LlxTaGFyZWRcQVBJXGNcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXENv
cmVJUENTdXBwb3J0JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXEFQSVxDJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcilcLi5cVUlQcm9jZXNzXEFQSVxDXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
XC4uXFVJUHJvY2Vzc1xBUElcY3BwJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9j
ZXNzXEFQSVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcTGF1bmNo
ZXImcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcUGx1Z2lucyZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKVwuLlxXZWJQcm9jZXNzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vz
c1xXZWJDb3JlU3VwcG9ydCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3Nc
V2ViQ29yZVN1cHBvcnRcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vz
c1xXZWJQYWdlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xXZWJQYWdl
XHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcSW5qZWN0ZWRCdW5k
bGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEluamVjdGVkQnVuZGxl
XEFQSVxjJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1
bmRsZVxET00mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEluamVjdGVk
QnVuZGxlXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcUGx1Z2lu
cyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcUGx1Z2luc1xOZXRzY2Fw
ZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3Ncd2luJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xEb3dubG9hZHMmcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKVwuLlxXZWJQcm9jZXNzXERvd25sb2Fkc1xjZiZxdW90OzsmcXVvdDskKFdlYktpdE91
dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzJnF1b3Q7OyZxdW90OyQo
V2ViS2l0T3V0cHV0RGlyKVxJbmNsdWRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0T3V0cHV0RGlyKVxJ
bmNsdWRlXHByaXZhdGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGUm
cXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVccHJpdmF0ZSZxdW90Ozsm
cXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZVxwdGhyZWFkcyZxdW90OzsmcXVvdDsk
KFdlYktpdE91dHB1dERpcilcSW5jbHVkZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKFdl
YktpdE91dHB1dERpcilcSW5jbHVkZVxwcml2YXRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90
OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNsdWRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90
OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNsdWRlXHByaXZhdGVcSmF2YVNjcmlwdENvcmUmcXVv
dDs7JnF1b3Q7JChXZWJLaXRPdXRwdXREaXIpXEluY2x1ZGVcV2ViQ29yZVxGb3J3YXJkaW5nSGVh
ZGVycyZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZVxXZWJDb3JlXEZv
cndhcmRpbmdIZWFkZXJzJnF1b3Q7Ig0KIAkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9Il9VU1JE
TEw7V0VCS0lUX0VYUE9SVFM7RlJBTUVXT1JLX05BTUU9V2ViS2l0O0JVSUxESU5HX1dFQktJVCIN
CiAJCVVzZVByZWNvbXBpbGVkSGVhZGVyPSIyIg0KIAkJUHJlY29tcGlsZWRIZWFkZXJUaHJvdWdo
PSJXZWJLaXQyUHJlZml4LmgiDQo=
</data>
<flag name="review"
          id="62246"
          type_id="1"
          status="+"
          setter="aroben"
    />
          </attachment>
      

    </bug>

</bugzilla>