<?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>73253</bug_id>
          
          <creation_ts>2011-11-28 14:39:18 -0800</creation_ts>
          <short_desc>Create skeleton framework for notifications support in WK2</short_desc>
          <delta_ts>2011-12-08 19:22:01 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jon Lee">jonlee</reporter>
          <assigned_to name="Jon Lee">jonlee</assigned_to>
          <cc>andersca</cc>
    
    <cc>japhet</cc>
    
    <cc>mike</cc>
    
    <cc>sam</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zmo</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>510188</commentid>
    <comment_count>0</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2011-11-28 14:39:18 -0800</bug_when>
    <thetext>This represents part 1 of bringing WK2 support of notifications. Basic showing and canceling of notifications, with no tracking, as well as exposing relevant classes as WK API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510258</commentid>
    <comment_count>1</comment_count>
      <attachid>116838</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2011-11-28 15:18:55 -0800</bug_when>
    <thetext>Created attachment 116838
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510268</commentid>
    <comment_count>2</comment_count>
      <attachid>116838</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-11-28 15:29:23 -0800</bug_when>
    <thetext>Comment on attachment 116838
Patch

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

&gt; Source/WebCore/notifications/NotificationController.cpp:38
&gt; +: m_page(page)
&gt; +, m_client(client)
&gt; +{

Indent please.

&gt; Source/WebKit2/Shared/UserMessageCoders.h:183
&gt; +        case APIObject::TypeNotification: {
&gt; +            WebNotification* notification = static_cast&lt;WebNotification*&gt;(m_root);
&gt; +            encoder-&gt;encode(notification-&gt;title());
&gt; +            encoder-&gt;encode(notification-&gt;body());
&gt; +            return true;
&gt; +        }

I don&apos;t think you need to make WebNotifications user encodable.

&gt; Source/WebKit2/Shared/WebNotification.h:43
&gt; +class WebNotification : public APIObject {
&gt; +public:

Since this will probably only bne used from the UIProcess, you can put this in that directory, instead of shared.

&gt; Source/WebKit2/UIProcess/API/C/WKNotification.cpp:31
&gt; +#include &quot;WebNotificationManagerProxy.h&quot;

This doesn&apos;t seem to be used.

&gt; Source/WebKit2/UIProcess/API/C/WKNotification.h:38
&gt; +WK_EXPORT WKStringRef WKNotificationCopyTitle(WKNotificationRef);
&gt; +WK_EXPORT WKStringRef WKNotificationCopyBody(WKNotificationRef);

We usually put parameter names in API headers.

&gt; Source/WebKit2/UIProcess/API/C/WKNotificationManager.h:37
&gt; +WK_EXPORT void WKNotificationManagerSetProvider(WKNotificationManagerRef, const WKNotificationProvider*);

We usually put parameter names in API headers.

&gt; Source/WebKit2/UIProcess/API/C/WKNotificationProvider.h:36
&gt; +typedef void (*WKNotificationProviderShowCallback)(WKNotificationRef, const void* clientInfo);
&gt; +typedef void (*WKNotificationProviderCancelCallback)(WKNotificationRef, const void* clientInfo);

We usually put parameter names in API headers.

&gt; Source/WebKit2/UIProcess/API/C/WKNotificationProvider.h:42
&gt; +    int version;
&gt; +    const void* clientInfo;
&gt; +    WKNotificationProviderShowCallback show;
&gt; +    WKNotificationProviderCancelCallback cancel;

We usually align the struct member names.

&gt; Source/WebKit2/WebProcess/Notifications/WebNotificationManager.cpp:36
&gt; +#if ENABLE(NOTIFICATIONS)
&gt; +#include &quot;WebNotificationManagerProxyMessages.h&quot;
&gt; +#endif
&gt; +#include &quot;WebPage.h&quot;
&gt; +#include &quot;WebProcess.h&quot;
&gt; +#if ENABLE(NOTIFICATIONS)
&gt; +#include &lt;WebCore/Notification.h&gt;
&gt; +#endif

Please group the ENABLE(NOTIFICATIONS) together.

&gt; Source/WebKit2/WebProcess/Notifications/WebNotificationManager.cpp:44
&gt; +{ }

Two lines.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510292</commentid>
    <comment_count>3</comment_count>
      <attachid>116843</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2011-11-28 15:58:06 -0800</bug_when>
    <thetext>Created attachment 116843
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510305</commentid>
    <comment_count>4</comment_count>
      <attachid>116848</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2011-11-28 16:11:14 -0800</bug_when>
    <thetext>Created attachment 116848
Fix merge issues for EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510339</commentid>
    <comment_count>5</comment_count>
      <attachid>116848</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-11-28 16:54:28 -0800</bug_when>
    <thetext>Comment on attachment 116848
Fix merge issues for EWS

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

&gt; Source/WebKit2/Shared/WebCoreArgumentCoders.h:47
&gt; +    class Notification;

Seems unused.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510345</commentid>
    <comment_count>6</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2011-11-28 17:08:55 -0800</bug_when>
    <thetext>Committed r101307: &lt;http://trac.webkit.org/changeset/101307&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510361</commentid>
    <comment_count>7</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2011-11-28 17:32:12 -0800</bug_when>
    <thetext>*** Bug 72743 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510383</commentid>
    <comment_count>8</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2011-11-28 18:04:57 -0800</bug_when>
    <thetext>fast/notifications/notification-after-close.html
fast/notifications/notifications-check-permission.html
fast/notifications/notifications-click-event.html
fast/notifications/notifications-display-close-events.html
fast/notifications/notifications-double-show.html
fast/notifications/notifications-no-icon.html
fast/notifications/notifications-replace.html
fast/notifications/notifications-request-permission.html
fast/notifications/notifications-rtl.html
fast/notifications/notifications-with-permission.html
fast/notifications/notifications-without-permission.html

11 tests crashing in chromium linux (not sure about mac and win yet)

I am going to clobber a linux bot and do a clean build/run.  if it&apos;s still crashing, I&apos;ll have to revert this patch...</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116838</attachid>
            <date>2011-11-28 15:18:55 -0800</date>
            <delta_ts>2011-11-28 15:58:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73253-20111128152009.patch</filename>
            <type>text/plain</type>
            <size>159428</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxMjczCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
NjAzZDUzYTU4M2JhZWM4Mzg2M2Q5NGE2MDZiNzc4NjgzNmY3N2YzLi4xMTkwODk3NGIwOTc3ZjUz
ZGMwNGFmNmIxODUyYTZkZTM2ZDA5OTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMSBAQAorMjAxMS0xMS0yOCAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CisKKyAg
ICAgICAgQ3JlYXRlIHNrZWxldG9uIGZyYW1ld29yayBmb3Igbm90aWZpY2F0aW9ucyBzdXBwb3J0
IGluIFdLMgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzMyNTMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEwMzU2OTQzPgorCisgICAgICAgICogQ29u
ZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6IFNwbGl0IG91dCBFTkFCTEVfTk9U
SUZJQ0FUSU9OUyBiYXNlZCBvbiBwbGF0Zm9ybS4KKwogMjAxMS0xMS0yOCAgU2ltb24gSGF1c21h
bm4gIDxzaW1vbi5oYXVzbWFubkBub2tpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBwcm9z
cGVjdGl2ZSBidWlsZCBmaXguIFRvdWNoIHRoZSBmaWxlIHRvIHRyaWdnZXIgY29ycmVjdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IGQ5YjdmNDVlZjk2Y2JlMDg2N2NjZWI1MDNkM2RhMzk2OGUxNTFhNTIuLjI5NWZj
MzM0ZmQ3ZjgyOTVlOWQ5MDhlYjkyZjFhMmUyYmVlNjY3MzkgMTAwNzU1Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSw1NyBAQAorMjAxMS0xMS0yOCAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CisKKyAgICAg
ICAgQ3JlYXRlIHNrZWxldG9uIGZyYW1ld29yayBmb3Igbm90aWZpY2F0aW9ucyBzdXBwb3J0IGlu
IFdLMgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMy
NTMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEwMzU2OTQzPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNvbWUgcmVmYWN0b3Jpbmcgd2FzIGRvbmUg
dG8gbWFrZSBub3RpZmljYXRpb25zIGZvbGxvdyBhIHNpbWlsYXIgcGF0dGVybiB0byBvdXIgb3Ro
ZXIgY2xpZW50cywgbGlrZQorICAgICAgICBnZW9sb2NhdGlvbiBhbmQgY29udGV4dCBtZW51Lgor
CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6IFNwbGl0
IG91dCBFTkFCTEVfTk9USUZJQ0FUSU9OUyBiYXNlZCBvbiBwbGF0Zm9ybS4KKyAgICAgICAgKiBX
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IEFkZGluZyBuZXcgTm90aWZpY2F0aW9u
Q29udHJvbGxlciBjbGFzcywgYW5kIGV4cG9zaW5nCisgICAgICAgIE5vdGlmaWNhdGlvbiBhbmQg
Tm90aWZpY2F0aW9uQ29udHJvbGxlciBhcyBwcml2YXRlIGhlYWRlcnMuCisgICAgICAgICogVGFy
Z2V0LnByaTogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS5neXBpOiBEaXR0by4KKworICAgICAg
ICAqIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ29udGVudHMuaDogQ29udmVydGVkIGNsYXNz
IHRvIHN0cnVjdC4gTWVtYmVycyBuZWVkIHRvIGJlIGFjY2Vzc2libGUKKyAgICAgICAgaW4gb3Jk
ZXIgdG8gZG8gV0syIGFyZ3VtZW50IGVuY29kaW5nLgorICAgICAgICAoV2ViQ29yZTo6Tm90aWZp
Y2F0aW9uQ29udGVudHM6Ok5vdGlmaWNhdGlvbkNvbnRlbnRzKToKKworICAgICAgICAqIG5vdGlm
aWNhdGlvbnMvTm90aWZpY2F0aW9uLmNwcDogVXBkYXRlIHN0eWxlIG9mIGVudGlyZSBmaWxlLgor
ICAgICAgICAoV2ViQ29yZTo6Tm90aWZpY2F0aW9uOjpOb3RpZmljYXRpb24pOiBBZGRlZCBkZWZh
dWx0IGNvbnN0cnVjdG9yIChmb3IgV0syKSwgYW5kIG1pbm9yIHJlZmFjdG9yaW5nCisgICAgICAg
IHdpdGggTm90aWZpY2F0aW9uQ29udGVudHMuCisgICAgICAgICogbm90aWZpY2F0aW9ucy9Ob3Rp
ZmljYXRpb24uaDogQWRkZWQgc2V0IG1ldGhvZHMgZm9yIFdLMiBzZXJpYWxpemF0aW9uLiBBbHNv
LCB1cGRhdGUgaW5kZW50aW5nLgorICAgICAgICAoV2ViQ29yZTo6Tm90aWZpY2F0aW9uOjpzZXRI
VE1MKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpOb3RpZmljYXRpb246OnNldFVSTCk6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6Tm90aWZpY2F0aW9uOjpjb250ZW50cyk6IEFkZGVkIGNv
bnN0IHZlcnNpb24gZm9yIFdLMi4KKyAgICAgICAgKiBub3RpZmljYXRpb25zL05vdGlmaWNhdGlv
bkNlbnRlci5oOiBVcGRhdGUgc3R5bGUuCisKKyAgICAgICAgKiBub3RpZmljYXRpb25zL05vdGlm
aWNhdGlvbkNvbnRyb2xsZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok5vdGlmaWNh
dGlvbkNvbnRyb2xsZXI6Ok5vdGlmaWNhdGlvbkNvbnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6Tm90aWZpY2F0aW9uQ29udHJvbGxlcjo6fk5vdGlmaWNhdGlvbkNvbnRyb2xsZXIpOgorICAg
ICAgICAqIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ29udHJvbGxlci5oOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNvbnRyb2xsZXI6OmNsaWVudCk6CisgICAgICAg
ICogbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QcmVzZW50ZXIuaDogVGhpcyBhY3RzIGxpa2Ug
YSBjbGllbnQsIGFuZCBzaG91bGQgcHJvYmFibHkgYmUgcmVuYW1lZCBhcyBzdWNoLgorICAgICAg
ICBSZW1vdmVkIGlmZGVmIGZvciBleHBvc3VyZSB0byBXSzIuCisgICAgICAgIChXZWJDb3JlOjpO
b3RpZmljYXRpb25QcmVzZW50ZXI6On5Ob3RpZmljYXRpb25QcmVzZW50ZXIpOiBNb3ZlZCBhcyBw
cm90ZWN0ZWQgaW5zdGVhZCBvZiBwdWJsaWMuCisKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OndlYmtpdE5vdGlmaWNhdGlvbnMpOiAg
V2UgbW92ZSB0aGUgcmVxdWVzdCBmb3IgdGhlIG5vdGlmaWNhdGlvbiBjbGllbnQgZnJvbSB0aGUg
Y2hyb21lCisgICAgICAgIHRvIHRoZSBjb250cm9sbGVyLgorICAgICAgICAqIHBhZ2UvUGFnZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlKTogVGhlIHBhZ2Ugbm93IG93bnMgYSBu
b3RpZmljYXRpb24gY29udHJvbGxlci4KKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2VDbGll
bnRzOjpQYWdlQ2xpZW50cyk6IEFkZCBub3RpZmljYXRpb24gY2xpZW50IGFzIGEgcGFnZSBjbGll
bnQuCisgICAgICAgICogcGFnZS9QYWdlLmg6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpub3Rp
ZmljYXRpb25Db250cm9sbGVyKTogUmV0cmlldmUgdGhlIG5vdGlmaWNhdGlvbiBjb250cm9sbGVy
LgorCisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDogV2UgbW92ZSB0aGUgcmVxdWVzdCBm
b3IgdGhlIG5vdGlmaWNhdGlvbiBjbGllbnQgZnJvbSB0aGUgY2hyb21lIHRvIHRoZSBjb250cm9s
bGVyLgorICAgICAgICBSZW1vdmUgbm90aWZpY2F0aW9uUHJlc2VudGVyKCkuCisgICAgICAgICog
cGFnZS9DaHJvbWUuY3BwOiBSZW1vdmUgbm90aWZpY2F0aW9uUHJlc2VudGVyKCkuCisgICAgICAg
ICogcGFnZS9DaHJvbWUuaDogUmVtb3ZlIG5vdGlmaWNhdGlvblByZXNlbnRlcigpLgorICAgICAg
ICAqIGxvYWRlci9FbXB0eUNsaWVudHMuaDogUmVtb3ZlIG5vdGlmaWNhdGlvblByZXNlbnRlcigp
LgorCiAyMDExLTExLTI4ICBLZW4gQnVjaGFuYW4gIDxrZW5yYkBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgQ3Jhc2ggZHVlIHRvIGJpZGkgc3R5bGUgaW4gaXNvbGF0ZWQgcnVuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4
IGUyZTA1NzY3ZDI0NDA0NjM3OWQ0NWFlMzZhZWQwNGUwMWU5ZmI1OTIuLmI0MjU1MGRlMGYyNjg5
MDUxMTU1YWYwZGE1MmVmNWIyOWYxZmQ3YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIw
MTEtMTEtMjggIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgorCisgICAgICAgIENyZWF0ZSBz
a2VsZXRvbiBmcmFtZXdvcmsgZm9yIG5vdGlmaWNhdGlvbnMgc3VwcG9ydCBpbiBXSzIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczMjUzCisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS8xMDM1Njk0Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBB
ZGQgV2ViTm90aWZpY2F0aW9uQ2xpZW50IGNsYXNzLgorCiAyMDExLTExLTI2ICBKb25hdGhhbiBE
b25nICA8am9uYXRoYW4uZG9uZ0B0b3JjaG1vYmlsZS5jb20uY24+CiAKICAgICAgICAgW0NNYWtl
XSBDbGVhbiB1cCBXZWIgSW5zcGVjdG9yIHRhcmdldCBpbiBTb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvQ01ha2VMaXN0c0JsYWNrQmVycnkudHh0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IGRiOWE1YTM3Njk3YWJlYjcxZDQ4MjEzMWIwOThlNDZkNTQ0YjkzZGUuLjM4MDQ4OWU1MjczNTYx
MzgwZDUzOWU0NjdhOWI2MGM3N2VhZDZmNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMTEtMTEtMjggIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgor
CisgICAgICAgIENyZWF0ZSBza2VsZXRvbiBmcmFtZXdvcmsgZm9yIG5vdGlmaWNhdGlvbnMgc3Vw
cG9ydCBpbiBXSzIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTczMjUzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMDM1Njk0Mz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgbm90aWZpY2F0aW9u
UHJlc2VudGVyKCkgZnJvbSB0aGUgY2hyb21lIGNsaWVudCwgc2luY2UgaXQgaXMgbm93IG1hbmFn
ZWQgYnkKKyAgICAgICAgdGhlIG5vdGlmaWNhdGlvbiBjb250cm9sbGVyLgorCisgICAgICAgICog
c3JjL0Nocm9tZUNsaWVudEltcGwuY3BwOgorICAgICAgICAqIHNyYy9DaHJvbWVDbGllbnRJbXBs
Lmg6CisgICAgICAgICogc3JjL1dlYk5vdGlmaWNhdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYk5vdGlmaWNhdGlvbjo6dGl0bGUpOiBSZWZhY3RvcmluZyB3aXRoIE5vdGlmaWNhdGlvbkNv
bnRlbnRzIGNvbnZlcnNpb24gdG8gc3RydWN0LgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmlj
YXRpb246OmJvZHkpOiBEaXR0by4KKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwpOiBTZXQgbm90aWZpY2F0aW9u
IGNsaWVudCBpbiB3ZWIgdmlldydzIHBhZ2UgY2xpZW50cy4KKwogMjAxMS0xMS0yOCAgRmFkeSBT
YW11ZWwgIDxmc2FtdWVsQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIEZpeCBi
cm9rZW4gRFJUIGJ1aWxkIGZvciBBdXJhIExpbnV4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggNzE0ZTJh
OGYwYzM2MmQzMjQzZDZkMzQxNmU5MWZiODU5Nzg4NGMyZi4uNzRkZjgxYmFhMjE1ZThjMzIyMTY4
MjRiODhjMTg1MDI4ZmU5OWI0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisy
MDExLTExLTI4ICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBDcmVhdGUg
c2tlbGV0b24gZnJhbWV3b3JrIGZvciBub3RpZmljYXRpb25zIHN1cHBvcnQgaW4gV0syCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzI1MworICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vMTAzNTY5NDM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2Nv
bmZpZzogU3BsaXQgb3V0IEVOQUJMRV9OT1RJRklDQVRJT05TIGJhc2VkIG9uIHBsYXRmb3JtLgor
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50Lmg6IEFkZGVk
LgorICAgICAgICAoV2ViTm90aWZpY2F0aW9uQ2xpZW50Ojp3ZWJWaWV3KToKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQubW06IEFkZGVkLiBJbXBsZW1lbnRl
ZCBhcyBzdHVicyBmb3Igbm93LgorICAgICAgICAoV2ViTm90aWZpY2F0aW9uQ2xpZW50OjpXZWJO
b3RpZmljYXRpb25DbGllbnQpOgorICAgICAgICAoV2ViTm90aWZpY2F0aW9uQ2xpZW50OjpzaG93
KToKKyAgICAgICAgKFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6Y2FuY2VsKToKKyAgICAgICAgKFdl
Yk5vdGlmaWNhdGlvbkNsaWVudDo6bm90aWZpY2F0aW9uT2JqZWN0RGVzdHJveWVkKToKKyAgICAg
ICAgKFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6cmVxdWVzdFBlcm1pc3Npb24pOgorICAgICAgICAo
V2ViTm90aWZpY2F0aW9uQ2xpZW50OjpjYW5jZWxSZXF1ZXN0c0ZvclBlcm1pc3Npb24pOgorICAg
ICAgICAoV2ViTm90aWZpY2F0aW9uQ2xpZW50OjpjaGVja1Blcm1pc3Npb24pOgorICAgICAgICAq
IFdlYlZpZXcvV2ViVmlldy5tbTogU2V0IFBhZ2VDbGllbnQncyBub3RpZmljYXRpb24gY2xpZW50
IHRvIGFuIGluc3RhbmNlIG9mIHRoaXMgc3R1YmJlZCBjbGFzcy4KKwogMjAxMS0xMS0yOCAgQWRh
bSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+CiAKICAgICAgICAgUHJvcGVybHkgcmV0YWluIHRo
ZSBPUyBYIHZlcnNpb24gc3RyaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IDMyNzYwZDZjMWM4MzRlNDg0
YzFmMTBkYmVhZDY0NzU5MzFhMjA0ODIuLjMzYjEyYmQ3ZWJiMGU1ZGI5ZTA1ZTNmNWU3YmU2YzFh
N2Q5OTE4OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTEtMTEtMjggIEpv
biBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgorCisgICAgICAgIENyZWF0ZSBza2VsZXRvbiBmcmFt
ZXdvcmsgZm9yIG5vdGlmaWNhdGlvbnMgc3VwcG9ydCBpbiBXSzIKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczMjUzCisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8xMDM1Njk0Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIEFwaS9xd2VicGFnZS5jcHA6IEFkZCBub3RpZmljYXRpb24gY2xpZW50IHRvIHBh
Z2VDbGllbnRzLgorICAgICAgICAoUVdlYlBhZ2VQcml2YXRlOjpRV2ViUGFnZVByaXZhdGUpOgor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcDogUmVtb3ZlIG5vdGlm
aWNhdGlvbiBjbGllbnQgZnJvbSBDaHJvbWVDbGllbnQgaW1wbGVtZW50YXRpb24uCisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9Ob3RpZmljYXRpb25QcmVzZW50ZXJDbGllbnRRdC5jcHA6IFJlZmFjdG9yIHdpdGggY2hh
bmdlIG9mIE5vdGlmaWNhdGlvbkNvbnRlbnRzIHRvIHN0cnVjdAorICAgICAgICAoV2ViQ29yZTo6
Tm90aWZpY2F0aW9uV3JhcHBlcjo6dGl0bGUpOgorICAgICAgICAoV2ViQ29yZTo6Tm90aWZpY2F0
aW9uV3JhcHBlcjo6bWVzc2FnZSk6CisgICAgICAgIChXZWJDb3JlOjpOb3RpZmljYXRpb25QcmVz
ZW50ZXJDbGllbnRRdDo6ZGlzcGxheU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpO
b3RpZmljYXRpb25QcmVzZW50ZXJDbGllbnRRdDo6Y2FuY2VsKToKKyAgICAgICAgKFdlYkNvcmU6
Ok5vdGlmaWNhdGlvblByZXNlbnRlckNsaWVudFF0Ojpub3RpZmljYXRpb25DbGlja2VkKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok5vdGlmaWNhdGlvblByZXNlbnRlckNsaWVudFF0OjpkdW1wUmVwbGFj
ZWRJZFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6Tm90aWZpY2F0aW9uUHJlc2VudGVyQ2xpZW50
UXQ6OmR1bXBTaG93VGV4dCk6CisKIDIwMTEtMTEtMjggIFNpbW9uIEhhdXNtYW5uICA8c2ltb24u
aGF1c21hbm5Abm9raWEuY29tPgogCiAgICAgICAgIFtRdF0gQnVpbGQgc3lzdGVtIGZpeGVzIGFn
YWluc3QgVjguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggM2I0YmYxZmI5NDhmNDQ0MTU4NGE0ODMxOGYyMzI1OTA0
MzU3ZDk3Yi4uMTAwMjFjNmUzZjE4MmYyNzQwZjNiNWI4NGNlYzhjZDA1NDIzYjgwOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDExMiBAQAorMjAxMS0xMS0yOCAgSm9uIExlZSAgPGpvbmxlZUBhcHBs
ZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIHNrZWxldG9uIGZyYW1ld29yayBmb3Igbm90aWZpY2F0
aW9ucyBzdXBwb3J0IGluIFdLMgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzMyNTMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEwMzU2OTQzPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViS2l0Mi54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBBZGRlZCBjbGFzc2VzIGZvciBub3RpZmljYXRpb24g
c3VwcG9ydC4KKyAgICAgICAgKiB3aW4vV2ViS2l0Mi52Y3Byb2o6IERpdHRvLgorICAgICAgICAq
IENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOiBTcGxpdCBvdXQgRU5BQkxF
X05PVElGSUNBVElPTlMgYmFzZWQgb24gcGxhdGZvcm0uCisgICAgICAgICogRGVyaXZlZFNvdXJj
ZXMubWFrZTogQWRkIE5vdGlmaWNhdGlvbnMgdG8gVlBBVEguCisgICAgICAgICogUGxhdGZvcm0v
Q29yZUlQQy9NZXNzYWdlSUQuaDogTGlzdCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkgYXMg
YSBjbGFzcyB3aXRoIG1lc3NhZ2VzLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0Mi9tZXNzYWdl
cy5weTogTWFyayBXZWJDb3JlOjpOb3RpZmljYXRpb25Db250ZW50cyBhcyBhIHN0cnVjdC4KKwor
ICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS0Jhc2UuaDogTWFwIG9wYXF1ZSB0eXBlcyB0byBOb3Rp
ZmljYXRpb25Qcm92aWRlciwgTm90aWZpY2F0aW9uTWFuYWdlciwgYW5kIE5vdGlmaWNhdGlvbi4K
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0Lmg6IE1hcCBXSyB0eXBlcyB0b05v
dGlmaWNhdGlvblByb3ZpZGVyLCBOb3RpZmljYXRpb25NYW5hZ2VyLCBhbmQgTm90aWZpY2F0aW9u
LgorICAgICAgICAqIFNoYXJlZC9BUElPYmplY3QuaDogQWRkIE5vdGlmaWNhdGlvbiBhbmQgTm90
aWZpY2F0aW9uTWFuYWdlciBhcyBBUElPYmplY3RzLgorICAgICAgICAqIFNoYXJlZC9Vc2VyTWVz
c2FnZUNvZGVycy5oOiBBZGRlZCBjb2RlcnMgZm9yIFdlYk5vdGlmaWNhdGlvbi4KKyAgICAgICAg
KFdlYktpdDo6VXNlck1lc3NhZ2VFbmNvZGVyOjpiYXNlRW5jb2RlKToKKyAgICAgICAgKFdlYktp
dDo6VXNlck1lc3NhZ2VEZWNvZGVyOjpiYXNlRGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmNwcDogQWRkZWQgY29kZXJzIGZvciBLVVJMLgorICAgICAgICAo
Q29yZUlQQzo6OjplbmNvZGUpOgorICAgICAgICAoQ29yZUlQQzo6OjpkZWNvZGUpOgorICAgICAg
ICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaDoKKyAgICAgICAgKiBTaGFyZWQvV2Vi
Tm90aWZpY2F0aW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlv
bjo6V2ViTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uOjp+
V2ViTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uOjplbmNv
ZGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb246OmRlY29kZSk6CisgICAgICAg
ICogU2hhcmVkL1dlYk5vdGlmaWNhdGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2Vi
Tm90aWZpY2F0aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb246
OnRpdGxlKToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uOjpib2R5KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uOjp0eXBlKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0MvV0tOb3RpZmljYXRpb24uY3BwOiBBZGRlZCBhcyBBUEkuCisgICAgICAgIChXS05vdGlm
aWNhdGlvbkdldFR5cGVJRCk6CisgICAgICAgIChXS05vdGlmaWNhdGlvbkNvcHlUaXRsZSk6Cisg
ICAgICAgIChXS05vdGlmaWNhdGlvbkNvcHlCb2R5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0MvV0tOb3RpZmljYXRpb24uaDogQWRkZWQgYXMgQVBJLgorCisgICAgICAgICogV2ViUHJvY2Vz
cy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuaDogQWRkZWQuIENvbnRhaW5z
IGZvciBub3cgc2hvdygpIGFuZCBjYW5jZWwoKS4KKyAgICAgICAgVGhlIHJlc3Qgb2YgdGhlIG5v
dGlmaWNhdGlvbiBjbGllbnQgbWV0aG9kcyB3aWxsIGJlIGFkZGVkIGxhdGVyLiBUaGVzZSB0d28g
ZnVuY3Rpb25zIHNlbmQgbWVzc2FnZXMKKyAgICAgICAgdG8gdGhlIG1hbmFnZXIgcHJveHkuCisg
ICAgICAgICogV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6V2Vi
Tm90aWZpY2F0aW9uTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1h
bmFnZXI6On5XZWJOb3RpZmljYXRpb25NYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90
aWZpY2F0aW9uTWFuYWdlcjo6c2hvdyk6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlv
bk1hbmFnZXI6OmNhbmNlbCk6CisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9u
TWFuYWdlclByb3h5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlv
bk1hbmFnZXJQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9u
TWFuYWdlclByb3h5OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6On5XZWJOb3RpZmljYXRpb25NYW5hZ2Vy
UHJveHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6Omlu
dmFsaWRhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6
OmluaXRpYWxpemVQcm92aWRlcik6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1h
bmFnZXJQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyUHJveHk6OnNob3cpOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmlj
YXRpb25NYW5hZ2VyUHJveHk6OmNhbmNlbCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYk5vdGlm
aWNhdGlvbk1hbmFnZXJQcm94eS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZp
Y2F0aW9uTWFuYWdlclByb3h5OjpjbGVhckNvbnRleHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJO
b3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OnR5cGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJO
b3RpZmljYXRpb25NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNhdGlvbk1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdLTm90aWZpY2F0aW9uTWFuYWdlckdldFR5cGVJRCk6CisgICAgICAgIChXS05vdGlmaWNhdGlv
bk1hbmFnZXJTZXRQcm92aWRlcik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLTm90aWZp
Y2F0aW9uTWFuYWdlci5oOiBBZGRlZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0
Lmg6IEFkZCB0aGUgbm90aWZpY2F0aW9uIG1hbmFnZXIgdG8gdGhlIHdlYiBjb250ZXh0LgorICAg
ICAgICAoV2ViS2l0OjpXZWJDb250ZXh0Ojpub3RpZmljYXRpb25NYW5hZ2VyUHJveHkpOiBBY2Nl
c3MgdGhlIG1hbmFnZXIuCisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpXZWJDb250ZXh0KTogQm9pbGVycGxhdGUgZm9yIG1h
bmFnZXJzLgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0Ojp+V2ViQ29udGV4dCk6IEJvaWxl
cnBsYXRlIGZvciBtYW5hZ2Vycy4KKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6ZGlzY29u
bmVjdFByb2Nlc3MpOiBCb2lsZXJwbGF0ZSBmb3IgbWFuYWdlcnMuCisgICAgICAgIChXZWJLaXQ6
OldlYkNvbnRleHQ6OmRpZFJlY2VpdmVNZXNzYWdlKTogRm9yd2FyZCBtZXNzYWdlcyB0byB0aGUg
bm90aWZpY2F0aW9uIG1hbmFnZXIuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4
dC5jcHA6IEV4cG9zZSBhcyBBUEkuCisgICAgICAgIChXS0NvbnRleHRHZXROb3RpZmljYXRpb25N
YW5hZ2VyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0Lmg6IEV4cG9zZSBh
cyBBUEkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tOb3RpZmljYXRpb25Qcm92aWRl
ci5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIu
aDogQWRkZWQgYXMgQVBJQ2xpZW50LgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJOb3RpZmljYXRp
b25Qcm92aWRlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25Q
cm92aWRlcjo6c2hvdyk6IEZvcndhcmQgY2FsbCB0byB0aGUgY2xpZW50LgorICAgICAgICAoV2Vi
S2l0OjpXZWJOb3RpZmljYXRpb25Qcm92aWRlcjo6Y2FuY2VsKTogRm9yd2FyZCBjYWxsIHRvIHRo
ZSBjbGllbnQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOiBGb3J3YXJk
IG1lc3NhZ2VzIGZvciBub3RpZmljYXRpb24gbWFuYWdlciB0byB0aGUgY29udGV4dC4KKworICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDogUmVt
b3ZlIG5vdGlmaWNhdGlvblByZXNlbnRlcigpLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6IFJlbW92ZSBub3RpZmljYXRpb25QcmVzZW50ZXIo
KS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9u
Q2xpZW50Lmg6IEFkZGVkLiBGb3J3YXJkcyBjbGllbnQgbWV0aG9kcyB0byBtYW5hZ2VyLgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmNw
cDogQWRkZWQuIE1vc3RseSBzdHViIGltcGxlbWVudGF0aW9uIGZvciBub3cuCisgICAgICAgIChX
ZWJLaXQ6OldlYk5vdGlmaWNhdGlvbkNsaWVudDo6V2ViTm90aWZpY2F0aW9uQ2xpZW50KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uQ2xpZW50Ojp+V2ViTm90aWZpY2F0aW9uQ2xp
ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uQ2xpZW50OjpzaG93KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uQ2xpZW50OjpjYW5jZWwpOgorICAgICAgICAo
V2ViS2l0OjpXZWJOb3RpZmljYXRpb25DbGllbnQ6Om5vdGlmaWNhdGlvbk9iamVjdERlc3Ryb3ll
ZCk6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbkNsaWVudDo6cmVxdWVzdFBlcm1p
c3Npb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25DbGllbnQ6OmNhbmNlbFJl
cXVlc3RzRm9yUGVybWlzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbkNs
aWVudDo6Y2hlY2tQZXJtaXNzaW9uKToKKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmg6IEFkZGVkIFdlYk5vdGlmaWNhdGlvbkNsaWVudCBhcyBvbmUgb2YgaXRzIHBhZ2Ug
Y2xpZW50cy4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2U6OldlYlBhZ2UpOiBTZXQgdGhlIG5vdGlmaWNhdGlvbiBjbGll
bnQgdG8gV2ViTm90aWZpY2F0aW9uQ2xpZW50LgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5oOiBBZGRlZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyLgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzOjpub3RpZmljYXRpb25NYW5hZ2VyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpXZWJQcm9jZXNzKTog
SW5pdGlhbGl6ZSBub3RpZmljYXRvbiBtYW5hZ2VyLgorCiAyMDExLTExLTI4ICBKZXN1cyBTYW5j
aGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KIAogICAgICAgICBb
UXRdW1dLMl0gRml4IHBhbm5pbmcgYWZ0ZXIgcjEwMTE3OQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmln
CmluZGV4IDUyZjAwODZiZDQ4MzcyMjVkM2FkZWUzYTc5YWM5NDQwYmE3Y2FmNzIuLmI2YWMyYWJh
MjhlYzZkZGZmMmE5N2Y1N2FiY2ZkOTc4ZWZmYzI0NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25m
aWcKQEAgLTk0LDcgKzk0LDEwIEBAIEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTID0gOwogRU5BQkxF
X01FVEVSX1RBRyA9IEVOQUJMRV9NRVRFUl9UQUc7CiBFTkFCTEVfTUhUTUwgPSA7CiBFTkFCTEVf
TVVUQVRJT05fT0JTRVJWRVJTID0gOwotRU5BQkxFX05PVElGSUNBVElPTlMgPSA7CisKK0VOQUJM
RV9OT1RJRklDQVRJT05TID0gJChFTkFCTEVfTk9USUZJQ0FUSU9OU18kKFJFQUxfUExBVEZPUk1f
TkFNRSkpOworRU5BQkxFX05PVElGSUNBVElPTlNfbWFjb3N4ID0gOworCiBFTkFCTEVfUEFHRV9W
SVNJQklMSVRZX0FQSSA9IDsKIEVOQUJMRV9QUk9HUkVTU19UQUcgPSBFTkFCTEVfUFJPR1JFU1Nf
VEFHOwogRU5BQkxFX1FVT1RBID0gOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ29uZmln
dXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcgYi9Tb3VyY2UvV2ViQ29yZS9Db25maWd1
cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCA1MmYwMDg2YmQ0ODM3MjI1ZDNh
ZGVlM2E3OWFjOTQ0MGJhN2NhZjcyLi5iNmFjMmFiYTI4ZWM2ZGRmZjJhOTdmNTdhYmNmZDk3OGVm
ZmMyNDRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJl
RGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0
dXJlRGVmaW5lcy54Y2NvbmZpZwpAQCAtOTQsNyArOTQsMTAgQEAgRU5BQkxFX01FRElBX1NUQVRJ
U1RJQ1MgPSA7CiBFTkFCTEVfTUVURVJfVEFHID0gRU5BQkxFX01FVEVSX1RBRzsKIEVOQUJMRV9N
SFRNTCA9IDsKIEVOQUJMRV9NVVRBVElPTl9PQlNFUlZFUlMgPSA7Ci1FTkFCTEVfTk9USUZJQ0FU
SU9OUyA9IDsKKworRU5BQkxFX05PVElGSUNBVElPTlMgPSAkKEVOQUJMRV9OT1RJRklDQVRJT05T
XyQoUkVBTF9QTEFURk9STV9OQU1FKSk7CitFTkFCTEVfTk9USUZJQ0FUSU9OU19tYWNvc3ggPSA7
CisKIEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJID0gOwogRU5BQkxFX1BST0dSRVNTX1RBRyA9
IEVOQUJMRV9QUk9HUkVTU19UQUc7CiBFTkFCTEVfUVVPVEEgPSA7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCBi
ZjEyMDFjMGQwNzU3MWY3OTI3MDM5MWQxMDFjNDJmY2E0NTJlNmQ4Li5iNWQ3OTg3MjI4MmJjZGNl
MDk5NjVhYTk2ZGQyOTAxMjU2ZDI5YjFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJn
ZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTk1NCw2ICs5NTQsNyBA
QCBTT1VSQ0VTICs9IFwKICAgICBsb2FkZXIvVGhyZWFkYWJsZUxvYWRlci5jcHAgXAogICAgIG5v
dGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmNwcCBcCiAgICAgbm90aWZpY2F0aW9ucy9Ob3RpZmlj
YXRpb25DZW50ZXIuY3BwIFwKKyAgICBub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNvbnRyb2xs
ZXIuY3BwIFwKICAgICBwYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcCBcCiAgICAgcGFn
ZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxlci5jcHAgXAogICAgIHBhZ2UvYW5pbWF0aW9u
L0NvbXBvc2l0ZUFuaW1hdGlvbi5jcHAgXApAQCAtMjAwNCw2ICsyMDA1LDcgQEAgSEVBREVSUyAr
PSBcCiAgICAgbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuaCBcCiAgICAgbm90aWZp
Y2F0aW9ucy9Ob3RpZmljYXRpb25QcmVzZW50ZXIuaCBcCiAgICAgbm90aWZpY2F0aW9ucy9Ob3Rp
ZmljYXRpb25Db250ZW50cy5oIFwKKyAgICBub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNvbnRy
b2xsZXIuaCBcCiAgICAgcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5oIFwKICAgICBwYWdl
L2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyLmggXAogICAgIHBhZ2UvYW5pbWF0aW9uL0Nv
bXBvc2l0ZUFuaW1hdGlvbi5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCAzZDEyYTc4YmQxZTA5ZWQ2
ZDY2YzNmMzA1MDJmODMyOTA5MDAyOGFhLi5iODM2OGM2ZmU4NTIzNjNlNDBhZTY1ZDE0OTVkNWNj
NmMwMDYwZGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC01ODMsNiArNTgzLDcgQEAKICAgICAgICAg
ICAgICdsb2FkZXIvU3Vic3RpdHV0ZVJlc291cmNlLmgnLAogICAgICAgICAgICAgJ2xvYWRlci9U
ZXh0UmVzb3VyY2VEZWNvZGVyLmgnLAogICAgICAgICAgICAgJ2xvYWRlci9UaHJlYWRhYmxlTG9h
ZGVyLmgnLAorICAgICAgICAgICAgJ2xvYWRlci9UaHJlYWRhYmxlTG9hZGVyQ2xpZW50LmgnLAog
ICAgICAgICAgICAgJ2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlLmgnLAogICAgICAg
ICAgICAgJ2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oJywKICAgICAg
ICAgICAgICdsb2FkZXIvYXJjaGl2ZS9BcmNoaXZlLmgnLApAQCAtNjA1LDYgKzYwNiw3IEBACiAg
ICAgICAgICAgICAnbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlQmFzZS5oJywKICAgICAgICAgICAg
ICdsb2FkZXIvaWNvbi9JY29uRGF0YWJhc2VDbGllbnQuaCcsCiAgICAgICAgICAgICAnbG9hZGVy
L21hYy9Mb2FkZXJOU1VSTEV4dHJhcy5oJywKKyAgICAgICAgICAgICdub3RpZmljYXRpb25zL05v
dGlmaWNhdGlvbkNvbnRlbnRzLmgnLAogICAgICAgICAgICAgJ25vdGlmaWNhdGlvbnMvTm90aWZp
Y2F0aW9uUHJlc2VudGVyLmgnLAogICAgICAgICAgICAgJ3BhZ2UvQ2hyb21lLmgnLAogICAgICAg
ICAgICAgJ3BhZ2UvQ2hyb21lQ2xpZW50LmgnLApAQCAtMjk0OCw2ICsyOTUwLDggQEAKICAgICAg
ICAgICAgICdub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5jcHAnLAogICAgICAgICAg
ICAgJ25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmgnLAogICAgICAgICAgICAgJ25v
dGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ29udGVudHMuaCcsCisgICAgICAgICAgICAnbm90aWZp
Y2F0aW9ucy9Ob3RpZmljYXRpb25Db250cm9sbGVyLmgnLAorICAgICAgICAgICAgJ25vdGlmaWNh
dGlvbnMvTm90aWZpY2F0aW9uQ29udHJvbGxlci5oJywKICAgICAgICAgICAgICdwYWdlL0Jhcklu
Zm8uY3BwJywKICAgICAgICAgICAgICdwYWdlL0JhckluZm8uaCcsCiAgICAgICAgICAgICAncGFn
ZS9DaHJvbWUuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCAzM2MxNGJlYTVhZTgwNDQ5OTVjMDkwMWJhM2NiNmU5ZTM3OTY2
MzAyLi5hNTY5MjgyNmNiYmJlYzMzN2RjZTk5YmIwOTZjZWMzNjc5ZTE3MDZlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMTQs
NyArMjE0LDcgQEAKIAkJMEI5MDU2MTkwRjI1NzhCRTAwOTVGRjZBIC8qIERvY3VtZW50VGhyZWFk
YWJsZUxvYWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwQjkwNTYxNTBGMjU3OEJFMDA5NUZGNkEgLyogRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVy
LmNwcCAqLzsgfTsKIAkJMEI5MDU2MUEwRjI1NzhCRjAwOTVGRjZBIC8qIERvY3VtZW50VGhyZWFk
YWJsZUxvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEI5MDU2MTYwRjI1NzhCRTAwOTVGRjZBIC8qIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKCk7IH07IH07CiAJCTBCOTA1NjFCMEYyNTc4
QkYwMDk1RkY2QSAvKiBUaHJlYWRhYmxlTG9hZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwQjkwNTYxNzBGMjU3OEJFMDA5NUZGNkEgLyogVGhyZWFk
YWJsZUxvYWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07Ci0JCTBCOTA1NjFDMEYyNTc4QkYwMDk1RkY2QSAvKiBUaHJlYWRhYmxlTG9hZGVyQ2xpZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwQjkwNTYx
ODBGMjU3OEJFMDA5NUZGNkEgLyogVGhyZWFkYWJsZUxvYWRlckNsaWVudC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKCk7IH07IH07CisJCTBCOTA1NjFDMEYyNTc4QkYwMDk1RkY2QSAv
KiBUaHJlYWRhYmxlTG9hZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwQjkwNTYxODBGMjU3OEJFMDA5NUZGNkEgLyogVGhyZWFkYWJsZUxv
YWRlckNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTBCOTA1NjFFMEYyNTdFOTMwMDk1RkY2QSAvKiBUaHJlYWRhYmxlTG9hZGVyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBCOTA1NjFEMEYy
NTdFOTMwMDk1RkY2QSAvKiBUaHJlYWRhYmxlTG9hZGVyLmNwcCAqLzsgfTsKIAkJMEI5MDU2Rjgw
RjI2ODVGMzAwOTVGRjZBIC8qIFdvcmtlclRocmVhZGFibGVMb2FkZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEI5MDU2RjYwRjI2ODVGMzAwOTVG
RjZBIC8qIFdvcmtlclRocmVhZGFibGVMb2FkZXIuY3BwICovOyB9OwogCQkwQjkwNTZGOTBGMjY4
NUYzMDA5NUZGNkEgLyogV29ya2VyVGhyZWFkYWJsZUxvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEI5MDU2RjcwRjI2ODVGMzAwOTVGRjZBIC8q
IFdvcmtlclRocmVhZGFibGVMb2FkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9ICgp
OyB9OyB9OwpAQCAtODAyLDYgKzgwMiw5IEBACiAJCTMxMjg4RTczMEUzMDA1RDYwMDM2MTlBRSAv
KiBXZWJLaXRDU1NLZXlmcmFtZVJ1bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDMxMjg4RTZGMEUzMDA1RDYwMDM2MTlBRSAvKiBXZWJLaXRDU1NLZXlm
cmFtZVJ1bGUuaCAqLzsgfTsKIAkJMzEyODhFNzQwRTMwMDVENjAwMzYxOUFFIC8qIFdlYktpdENT
U0tleWZyYW1lc1J1bGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMzEyODhFNzAwRTMwMDVENjAwMzYxOUFFIC8qIFdlYktpdENTU0tleWZyYW1lc1J1
bGUuY3BwICovOyB9OwogCQkzMTI4OEU3NTBFMzAwNUQ2MDAzNjE5QUUgLyogV2ViS2l0Q1NTS2V5
ZnJhbWVzUnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMzEyODhFNzEwRTMwMDVENjAwMzYxOUFFIC8qIFdlYktpdENTU0tleWZyYW1lc1J1bGUuaCAq
LzsgfTsKKwkJMzEyOENBNjgxNDczMzE1MjAwNzRDNzJBIC8qIE5vdGlmaWNhdGlvbkNvbnRyb2xs
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEy
OENBNjcxNDczMzE1MjAwNzRDNzJBIC8qIE5vdGlmaWNhdGlvbkNvbnRyb2xsZXIuY3BwICovOyB9
OworCQkzMTI4Q0E2QjE0NzMzMTYzMDA3NEM3MkEgLyogTm90aWZpY2F0aW9uQ29udHJvbGxlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEyOENBNkEx
NDczMzE2MzAwNzRDNzJBIC8qIE5vdGlmaWNhdGlvbkNvbnRyb2xsZXIuaCAqLzsgfTsKKwkJMzEy
QzBDNDExNDZEQzZDQzAwMTZDOTExIC8qIE5vdGlmaWNhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzMzRjcwNEYwRkI0OUNBMjAwOEUxMkE2IC8q
IE5vdGlmaWNhdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTMxMzEzRjY1MTQ0M0IzNUYwMDZFMkE5MCAvKiBGaWx0ZXJFZmZlY3RSZW5kZXJl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTMx
M0Y2MzE0NDNCMzVFMDA2RTJBOTAgLyogRmlsdGVyRWZmZWN0UmVuZGVyZXIuY3BwICovOyB9Owog
CQkzMTMxM0Y2NjE0NDNCMzVGMDA2RTJBOTAgLyogRmlsdGVyRWZmZWN0UmVuZGVyZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMzEzRjY0MTQ0M0Iz
NUUwMDZFMkE5MCAvKiBGaWx0ZXJFZmZlY3RSZW5kZXJlci5oICovOyB9OwogCQkzMTM4QTlFNTE0
NzQ0MzQ2MDBCMEVEMTIgLyogU3R5bGVTaGFkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMzhBOUU0MTQ3NDQzNDYwMEIwRUQxMiAvKiBTdHlsZVNo
YWRlci5oICovOyB9OwpAQCAtODg1LDcgKzg4OCw3IEBACiAJCTMzNTAzQ0M3MTAxN0ExQjEwMDNC
NDdFMSAvKiBOb3RpZmljYXRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMzM1MDNDQzYxMDE3QTFCMTAwM0I0N0UxIC8qIE5vdGlmaWNhdGlvbi5j
cHAgKi87IH07CiAJCTMzOTBDQTU1MEZGQzE1N0IwMDkyMTk2MiAvKiBOb3RpZmljYXRpb25DZW50
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzM5
MENBNTEwRkZDMTU3QjAwOTIxOTYyIC8qIE5vdGlmaWNhdGlvbkNlbnRlci5jcHAgKi87IH07CiAJ
CTMzOTBDQTU2MEZGQzE1N0IwMDkyMTk2MiAvKiBOb3RpZmljYXRpb25DZW50ZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMzOTBDQTUyMEZGQzE1N0Iw
MDkyMTk2MiAvKiBOb3RpZmljYXRpb25DZW50ZXIuaCAqLzsgfTsKLQkJMzM5MENBNTgwRkZDMTU3
QjAwOTIxOTYyIC8qIE5vdGlmaWNhdGlvbkNvbnRlbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMzkwQ0E1NDBGRkMxNTdCMDA5MjE5NjIgLyogTm90
aWZpY2F0aW9uQ29udGVudHMuaCAqLzsgfTsKKwkJMzM5MENBNTgwRkZDMTU3QjAwOTIxOTYyIC8q
IE5vdGlmaWNhdGlvbkNvbnRlbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAzMzkwQ0E1NDBGRkMxNTdCMDA5MjE5NjIgLyogTm90aWZpY2F0aW9uQ29u
dGVudHMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQkzMzlCNUI2MzEzMURBQTMyMDBGNDhEMDIgLyogQ29va2llc1N0cmF0ZWd5LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMzlCNUI2MjEzMURBQTMyMDBG
NDhEMDIgLyogQ29va2llc1N0cmF0ZWd5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJMzNDMENDRDQxMTJDNUU2MjAwQ0UwNTdEIC8qIFNlY3VyZVRl
eHRJbnB1dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAzM0MwQ0NEMjExMkM1RTYyMDBDRTA1N0QgLyogU2VjdXJlVGV4dElucHV0LmNwcCAqLzsgfTsK
IAkJMzNDMENDRDUxMTJDNUU2MjAwQ0UwNTdEIC8qIFNlY3VyZVRleHRJbnB1dC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzNDMENDRDMxMTJDNUU2MjAw
Q0UwNTdEIC8qIFNlY3VyZVRleHRJbnB1dC5oICovOyB9OwpAQCAtNzk0NSw2ICs3OTQ4LDggQEAK
IAkJMzEyODhFNkYwRTMwMDVENjAwMzYxOUFFIC8qIFdlYktpdENTU0tleWZyYW1lUnVsZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJLaXRDU1NLZXlmcmFtZVJ1bGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzEyODhFNzAwRTMwMDVENjAwMzYxOUFFIC8q
IFdlYktpdENTU0tleWZyYW1lc1J1bGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTMxMjg4RTcxMEUzMDA1RDYwMDM2MTlBRSAvKiBXZWJLaXRDU1NLZXlmcmFtZXNS
dWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYktpdENTU0tleWZyYW1l
c1J1bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzEyOENBNjcxNDczMzE1MjAw
NzRDNzJBIC8qIE5vdGlmaWNhdGlvbkNvbnRyb2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBuYW1lID0gTm90aWZpY2F0aW9uQ29udHJvbGxlci5jcHA7IHBhdGggPSBub3Rp
ZmljYXRpb25zL05vdGlmaWNhdGlvbkNvbnRyb2xsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkzMTI4Q0E2QTE0NzMzMTYzMDA3NEM3MkEgLyogTm90aWZpY2F0aW9uQ29udHJv
bGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBOb3RpZmljYXRpb25Db250
cm9sbGVyLmg7IHBhdGggPSBub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNvbnRyb2xsZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzEzMTNGNjMxNDQzQjM1RTAwNkUyQTkwIC8q
IEZpbHRlckVmZmVjdFJlbmRlcmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEZpbHRlckVmZmVjdFJlbmRlcmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMzEzMTNGNjQxNDQzQjM1RTAwNkUyQTkwIC8qIEZpbHRlckVmZmVjdFJlbmRlcmVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZpbHRlckVmZmVjdFJlbmRlcmVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxMzhBOUU0MTQ3NDQzNDYwMEIwRUQxMiAv
KiBTdHlsZVNoYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBTdHlsZVNo
YWRlci5oOyBwYXRoID0gc3R5bGUvU3R5bGVTaGFkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTE0Nzk2LDYgKzE0ODAxLDggQEAKIAkJCQkzMzkwQ0E1MzBGRkMxNTdCMDA5MjE5
NjIgLyogTm90aWZpY2F0aW9uQ2VudGVyLmlkbCAqLywKIAkJCQkzMzkwQ0E1NDBGRkMxNTdCMDA5
MjE5NjIgLyogTm90aWZpY2F0aW9uQ29udGVudHMuaCAqLywKIAkJCQkzMzUwM0M5OTEwMTc5QTc0
MDAzQjQ3RTEgLyogTm90aWZpY2F0aW9uUHJlc2VudGVyLmggKi8sCisJCQkJMzEyOENBNjcxNDcz
MzE1MjAwNzRDNzJBIC8qIE5vdGlmaWNhdGlvbkNvbnRyb2xsZXIuY3BwICovLAorCQkJCTMxMjhD
QTZBMTQ3MzMxNjMwMDc0QzcyQSAvKiBOb3RpZmljYXRpb25Db250cm9sbGVyLmggKi8sCiAJCQkp
OwogCQkJbmFtZSA9IG5vdGlmaWNhdGlvbnM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpA
QCAtMjQ3OTQsNiArMjQ4MDEsOCBAQAogCQkJCTAzM0E2QTdDMTQ3RTA3RDIwMDUwOUIzNiAvKiBI
VE1MUHJvcGVydGllc0NvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTAzM0E2QTgzMTQ3
RTA4QTYwMDUwOUIzNiAvKiBKU0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJN0FBNTFCNkUxNDgzQjYxNjAwQUQyNzUyIC8qIEluc3BlY3RvckJhc2VBZ2VudC5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMzEyQzBDNDExNDZEQzZDQzAwMTZDOTExIC8qIE5vdGlmaWNh
dGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzEyOENBNkIxNDczMzE2MzAwNzRDNzJBIC8qIE5v
dGlmaWNhdGlvbkNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlG
b3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjc2NzYsNiArMjc2ODUs
NyBAQAogCQkJCTAzM0E2QTdFMTQ3RTA3RTcwMDUwOUIzNiAvKiBIVE1MUHJvcGVydGllc0NvbGxl
Y3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDMzQTZBODExNDdFMDg4NjAwNTA5QjM2IC8q
IEpTSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdBQTUx
QjZGMTQ4M0I2MTYwMEFEMjc1MiAvKiBJbnNwZWN0b3JCYXNlQWdlbnQuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJMzEyOENBNjgxNDczMzE1MjAwNzRDNzJBIC8qIE5vdGlmaWNhdGlvbkNvbnRyb2xs
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0
cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RW1wdHlDbGllbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKaW5k
ZXggM2Y4YThhNmFiNmEzNzExNjY2MTZmYWJmMzU1ZGM5ZjE1NzY0MWQ3My4uZGYxNWVkY2JkNDc0
YWFiMGY4MzE2OWQwMWQyOGI4YTczMDM1ZGY4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNs
aWVudHMuaApAQCAtMTg3LDEwICsxODcsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJl
YWNoZWRNYXhBcHBDYWNoZVNpemUoaW50NjRfdCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIHJlYWNo
ZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoU2VjdXJpdHlPcmlnaW4qLCBpbnQ2NF90KSB7
IH0KIAotI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQotICAgIHZpcnR1YWwgTm90aWZpY2F0aW9u
UHJlc2VudGVyKiBub3RpZmljYXRpb25QcmVzZW50ZXIoKSBjb25zdCB7IHJldHVybiAwOyB9Ci0j
ZW5kaWYKLQogI2lmIEVOQUJMRShESVJFQ1RPUllfVVBMT0FEKQogICAgIHZpcnR1YWwgdm9pZCBl
bnVtZXJhdGVDaG9zZW5EaXJlY3RvcnkoRmlsZUNob29zZXIqKSB7IH0KICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwIGIvU291
cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwCmluZGV4IGRkZGY3MWE3
Y2Y0ZWJkODlhNzIyNWQ2NWVmODJmMmUzMzNjMDRmN2EuLjM0NDQyNDJjYjVjMThmZjFiMDM0OWFi
YjgxNTA2OTgzOWE4ZDc0MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlv
bnMvTm90aWZpY2F0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05v
dGlmaWNhdGlvbi5jcHAKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA5
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA5LCAy
MDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKQEAgLTQ3LDYgKzQ3LDExIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAorTm90aWZpY2F0aW9uOjpOb3RpZmljYXRpb24oKQorICAgIDogQWN0aXZlRE9NT2JqZWN0KDAs
IHRoaXMpCit7Cit9CisKIE5vdGlmaWNhdGlvbjo6Tm90aWZpY2F0aW9uKGNvbnN0IEtVUkwmIHVy
bCwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgRXhjZXB0aW9uQ29kZSYgZWMsIFBh
c3NSZWZQdHI8Tm90aWZpY2F0aW9uQ2VudGVyPiBwcm92aWRlcikKICAgICA6IEFjdGl2ZURPTU9i
amVjdChjb250ZXh0LCB0aGlzKQogICAgICwgbV9pc0hUTUwodHJ1ZSkKQEAgLTgwLDcgKzg1LDcg
QEAgTm90aWZpY2F0aW9uOjpOb3RpZmljYXRpb24oY29uc3QgTm90aWZpY2F0aW9uQ29udGVudHMm
IGNvbnRlbnRzLCBTY3JpcHRFeGVjdXRpb24KICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAg
IGlmICghY29udGVudHMuaWNvbigpLmlzRW1wdHkoKSAmJiAhY29udGVudHMuaWNvbigpLmlzVmFs
aWQoKSkgeworICAgIGlmICghY29udGVudHMuaWNvbi5pc0VtcHR5KCkgJiYgIWNvbnRlbnRzLmlj
b24uaXNWYWxpZCgpKSB7CiAgICAgICAgIGVjID0gU1lOVEFYX0VSUjsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZp
Y2F0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5oCmlu
ZGV4IGE4MGVjNzRiY2ZhY2IxMjcyNzFlZTBiMDVkNzljNmY0OGYyMTQ5MGYuLmJiNDBhODA5NDgx
NDhjZmFhOTAwZjU2MWM5MjhhNGE1YTJjNzI5ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbm90aWZp
Y2F0aW9ucy9Ob3RpZmljYXRpb24uaApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQg
KEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAo
QykgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDksIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtNDksMTAyICs0OSwxMTAgQEAKICNpZiBFTkFCTEUo
Tk9USUZJQ0FUSU9OUykKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotICAgIGNsYXNzIE5vdGlmaWNh
dGlvbkNlbnRlcjsKLSAgICBjbGFzcyBSZXNvdXJjZUVycm9yOwotICAgIGNsYXNzIFJlc291cmNl
UmVzcG9uc2U7Ci0gICAgY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKLSAgICBjbGFzcyBU
aHJlYWRhYmxlTG9hZGVyOworY2xhc3MgTm90aWZpY2F0aW9uQ2VudGVyOworY2xhc3MgUmVzb3Vy
Y2VFcnJvcjsKK2NsYXNzIFJlc291cmNlUmVzcG9uc2U7CitjbGFzcyBTY3JpcHRFeGVjdXRpb25D
b250ZXh0OworY2xhc3MgVGhyZWFkYWJsZUxvYWRlcjsKIAotICAgIHR5cGVkZWYgaW50IEV4Y2Vw
dGlvbkNvZGU7Cit0eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOwogCi0gICAgY2xhc3MgTm90aWZp
Y2F0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8Tm90aWZpY2F0aW9uPiwgcHVibGljIEFjdGl2ZURP
TU9iamVjdCwgcHVibGljIFRocmVhZGFibGVMb2FkZXJDbGllbnQsIHB1YmxpYyBFdmVudFRhcmdl
dCB7Ci0gICAgICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotICAgIHB1YmxpYzoKLSAgICAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8Tm90aWZpY2F0aW9uPiBjcmVhdGUoY29uc3QgS1VSTCYgdXJs
LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBFeGNlcHRpb25Db2RlJiBlYywgUGFz
c1JlZlB0cjxOb3RpZmljYXRpb25DZW50ZXI+IHByb3ZpZGVyKTsKLSAgICAgICAgc3RhdGljIFBh
c3NSZWZQdHI8Tm90aWZpY2F0aW9uPiBjcmVhdGUoY29uc3QgTm90aWZpY2F0aW9uQ29udGVudHMm
IGNvbnRlbnRzLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBFeGNlcHRpb25Db2Rl
JiBlYywgUGFzc1JlZlB0cjxOb3RpZmljYXRpb25DZW50ZXI+IHByb3ZpZGVyKTsKLSAgICAgICAg
Ci0gICAgICAgIHZpcnR1YWwgfk5vdGlmaWNhdGlvbigpOworY2xhc3MgTm90aWZpY2F0aW9uIDog
cHVibGljIFJlZkNvdW50ZWQ8Tm90aWZpY2F0aW9uPiwgcHVibGljIEFjdGl2ZURPTU9iamVjdCwg
cHVibGljIFRocmVhZGFibGVMb2FkZXJDbGllbnQsIHB1YmxpYyBFdmVudFRhcmdldCB7CisgICAg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgTm90aWZpY2F0aW9uKCk7Cisg
ICAgc3RhdGljIFBhc3NSZWZQdHI8Tm90aWZpY2F0aW9uPiBjcmVhdGUoY29uc3QgS1VSTCYsIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBFeGNlcHRpb25Db2RlJiwgUGFzc1JlZlB0cjxOb3RpZmlj
YXRpb25DZW50ZXI+IHByb3ZpZGVyKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxOb3RpZmljYXRp
b24+IGNyZWF0ZShjb25zdCBOb3RpZmljYXRpb25Db250ZW50cyYsIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqLCBFeGNlcHRpb25Db2RlJiwgUGFzc1JlZlB0cjxOb3RpZmljYXRpb25DZW50ZXI+IHBy
b3ZpZGVyKTsKKyAgICAKKyAgICB2aXJ0dWFsIH5Ob3RpZmljYXRpb24oKTsKKworICAgIHZvaWQg
c2hvdygpOworICAgIHZvaWQgY2FuY2VsKCk7CiAKLSAgICAgICAgdm9pZCBzaG93KCk7Ci0gICAg
ICAgIHZvaWQgY2FuY2VsKCk7CisgICAgYm9vbCBpc0hUTUwoKSBjb25zdCB7IHJldHVybiBtX2lz
SFRNTDsgfQorICAgIHZvaWQgc2V0SFRNTChib29sIGlzSFRNTCkgeyBtX2lzSFRNTCA9IGlzSFRN
TDsgfQorICAgIAorICAgIEtVUkwgdXJsKCkgY29uc3QgeyByZXR1cm4gbV9ub3RpZmljYXRpb25V
Ukw7IH0KKyAgICB2b2lkIHNldFVSTChLVVJMIHVybCkgeyBtX25vdGlmaWNhdGlvblVSTCA9IHVy
bDsgfQorICAgIAorICAgIEtVUkwgaWNvblVSTCgpIHsgcmV0dXJuIG1fY29udGVudHMuaWNvbjsg
fQogICAgIAotICAgICAgICBib29sIGlzSFRNTCgpIHsgcmV0dXJuIG1faXNIVE1MOyB9Ci0gICAg
ICAgIEtVUkwgdXJsKCkgeyByZXR1cm4gbV9ub3RpZmljYXRpb25VUkw7IH0KLSAgICAgICAgS1VS
TCBpY29uVVJMKCkgeyByZXR1cm4gbV9jb250ZW50cy5pY29uKCk7IH0KLSAgICAgICAgTm90aWZp
Y2F0aW9uQ29udGVudHMmIGNvbnRlbnRzKCkgeyByZXR1cm4gbV9jb250ZW50czsgfQorICAgIGNv
bnN0IE5vdGlmaWNhdGlvbkNvbnRlbnRzJiBjb250ZW50cygpIGNvbnN0IHsgcmV0dXJuIG1fY29u
dGVudHM7IH0KKyAgICBOb3RpZmljYXRpb25Db250ZW50cyYgY29udGVudHMoKSB7IHJldHVybiBt
X2NvbnRlbnRzOyB9CiAKLSAgICAgICAgU3RyaW5nIGRpcigpIGNvbnN0IHsgcmV0dXJuIG1fZGly
ZWN0aW9uOyB9Ci0gICAgICAgIHZvaWQgc2V0RGlyKGNvbnN0IFN0cmluZyYgZGlyKSB7IG1fZGly
ZWN0aW9uID0gZGlyOyB9Ci0gICAgICAgIFN0cmluZyByZXBsYWNlSWQoKSBjb25zdCB7IHJldHVy
biBtX3JlcGxhY2VJZDsgfQotICAgICAgICB2b2lkIHNldFJlcGxhY2VJZChjb25zdCBTdHJpbmcm
IHJlcGxhY2VJZCkgeyBtX3JlcGxhY2VJZCA9IHJlcGxhY2VJZDsgfQorICAgIFN0cmluZyBkaXIo
KSBjb25zdCB7IHJldHVybiBtX2RpcmVjdGlvbjsgfQorICAgIHZvaWQgc2V0RGlyKGNvbnN0IFN0
cmluZyYgZGlyKSB7IG1fZGlyZWN0aW9uID0gZGlyOyB9CisgICAgCisgICAgU3RyaW5nIHJlcGxh
Y2VJZCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVwbGFjZUlkOyB9CisgICAgdm9pZCBzZXRSZXBsYWNl
SWQoY29uc3QgU3RyaW5nJiByZXBsYWNlSWQpIHsgbV9yZXBsYWNlSWQgPSByZXBsYWNlSWQ7IH0K
IAotICAgICAgICBUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIGRpcigp
ID09ICJydGwiID8gUlRMIDogTFRSOyB9CisgICAgVGV4dERpcmVjdGlvbiBkaXJlY3Rpb24oKSBj
b25zdCB7IHJldHVybiBkaXIoKSA9PSAicnRsIiA/IFJUTCA6IExUUjsgfQogCi0gICAgICAgIERF
RklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIoZGlzcGxheSk7Ci0gICAgICAgIERFRklORV9B
VFRSSUJVVEVfRVZFTlRfTElTVEVORVIoZXJyb3IpOwotICAgICAgICBERUZJTkVfQVRUUklCVVRF
X0VWRU5UX0xJU1RFTkVSKGNsb3NlKTsKLSAgICAgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9M
SVNURU5FUihjbGljayk7CisgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihkaXNw
bGF5KTsKKyAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGVycm9yKTsKKyAgICBE
RUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGNsb3NlKTsKKyAgICBERUZJTkVfQVRUUklC
VVRFX0VWRU5UX0xJU1RFTkVSKGNsaWNrKTsKIAotICAgICAgICB1c2luZyBSZWZDb3VudGVkPE5v
dGlmaWNhdGlvbj46OnJlZjsKLSAgICAgICAgdXNpbmcgUmVmQ291bnRlZDxOb3RpZmljYXRpb24+
OjpkZXJlZjsKKyAgICB1c2luZyBSZWZDb3VudGVkPE5vdGlmaWNhdGlvbj46OnJlZjsKKyAgICB1
c2luZyBSZWZDb3VudGVkPE5vdGlmaWNhdGlvbj46OmRlcmVmOwogCi0gICAgICAgIC8vIEV2ZW50
VGFyZ2V0IGludGVyZmFjZQotICAgICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgaW50
ZXJmYWNlTmFtZSgpIGNvbnN0OwotICAgICAgICB2aXJ0dWFsIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCB7IHJldHVybiBBY3RpdmVET01PYmpl
Y3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsgfQorICAgIC8vIEV2ZW50VGFyZ2V0IGludGVy
ZmFjZQorICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBpbnRlcmZhY2VOYW1lKCkgY29u
c3Q7CisgICAgdmlydHVhbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCkgY29uc3QgeyByZXR1cm4gQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCk7IH0KIAotICAgICAgICAvLyBBY3RpdmVET01PYmplY3QgaW50ZXJmYWNlCi0gICAg
ICAgIHZpcnR1YWwgdm9pZCBjb250ZXh0RGVzdHJveWVkKCk7CisgICAgLy8gQWN0aXZlRE9NT2Jq
ZWN0IGludGVyZmFjZQorICAgIHZpcnR1YWwgdm9pZCBjb250ZXh0RGVzdHJveWVkKCk7CiAKLSAg
ICAgICAgdm9pZCBzdG9wTG9hZGluZygpOworICAgIHZvaWQgc3RvcExvYWRpbmcoKTsKIAotICAg
ICAgICBTaGFyZWRCdWZmZXIqIGljb25EYXRhKCkgeyByZXR1cm4gbV9pY29uRGF0YS5nZXQoKTsg
fQotICAgICAgICB2b2lkIHJlbGVhc2VJY29uRGF0YSgpIHsgbV9pY29uRGF0YSA9IDA7IH0KKyAg
ICBTaGFyZWRCdWZmZXIqIGljb25EYXRhKCkgeyByZXR1cm4gbV9pY29uRGF0YS5nZXQoKTsgfQor
ICAgIHZvaWQgcmVsZWFzZUljb25EYXRhKCkgeyBtX2ljb25EYXRhID0gMDsgfQogCi0gICAgICAg
IC8vIERlcHJlY2F0ZWQuIFVzZSBmdW5jdGlvbnMgZnJvbSBOb3RpZmljYXRpb25DZW50ZXIuCi0g
ICAgICAgIHZvaWQgZGV0YWNoUHJlc2VudGVyKCkgeyB9CisgICAgLy8gRGVwcmVjYXRlZC4gVXNl
IGZ1bmN0aW9ucyBmcm9tIE5vdGlmaWNhdGlvbkNlbnRlci4KKyAgICB2b2lkIGRldGFjaFByZXNl
bnRlcigpIHsgfQogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UodW5z
aWduZWQgbG9uZywgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwotICAgICAgICB2aXJ0dWFsIHZv
aWQgZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGRhdGFMZW5ndGgpOwotICAg
ICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyh1bnNpZ25lZCBsb25nIGlkZW50aWZp
ZXIsIGRvdWJsZSBmaW5pc2hUaW1lKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGRpZEZhaWwoY29u
c3QgUmVzb3VyY2VFcnJvciYpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbFJlZGlyZWN0
Q2hlY2soKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKHVuc2lnbmVkIGxv
bmcsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2
ZURhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGRhdGFMZW5ndGgpOworICAgIHZpcnR1YWwgdm9p
ZCBkaWRGaW5pc2hMb2FkaW5nKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgZG91YmxlIGZpbmlz
aFRpbWUpOworICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKGNvbnN0IFJlc291cmNlRXJyb3ImKTsK
KyAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbFJlZGlyZWN0Q2hlY2soKTsKIAotICAgIHByaXZhdGU6
Ci0gICAgICAgIE5vdGlmaWNhdGlvbihjb25zdCBLVVJMJiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCosIEV4Y2VwdGlvbkNvZGUmLCBQYXNzUmVmUHRyPE5vdGlmaWNhdGlvbkNlbnRlcj4pOwotICAg
ICAgICBOb3RpZmljYXRpb24oY29uc3QgTm90aWZpY2F0aW9uQ29udGVudHMmLCBTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiwgRXhjZXB0aW9uQ29kZSYsIFBhc3NSZWZQdHI8Tm90aWZpY2F0aW9uQ2Vu
dGVyPik7Citwcml2YXRlOgorICAgIE5vdGlmaWNhdGlvbihjb25zdCBLVVJMJiwgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCosIEV4Y2VwdGlvbkNvZGUmLCBQYXNzUmVmUHRyPE5vdGlmaWNhdGlvbkNl
bnRlcj4pOworICAgIE5vdGlmaWNhdGlvbihjb25zdCBOb3RpZmljYXRpb25Db250ZW50cyYsIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBFeGNlcHRpb25Db2RlJiwgUGFzc1JlZlB0cjxOb3RpZmlj
YXRpb25DZW50ZXI+KTsKIAotICAgICAgICAvLyBFdmVudFRhcmdldCBpbnRlcmZhY2UKLSAgICAg
ICAgdmlydHVhbCB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgeyByZWYoKTsgfQotICAgICAgICB2aXJ0
dWFsIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIHsgZGVyZWYoKTsgfQotICAgICAgICB2aXJ0dWFs
IEV2ZW50VGFyZ2V0RGF0YSogZXZlbnRUYXJnZXREYXRhKCk7Ci0gICAgICAgIHZpcnR1YWwgRXZl
bnRUYXJnZXREYXRhKiBlbnN1cmVFdmVudFRhcmdldERhdGEoKTsKKyAgICAvLyBFdmVudFRhcmdl
dCBpbnRlcmZhY2UKKyAgICB2aXJ0dWFsIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSB7IHJlZigpOyB9
CisgICAgdmlydHVhbCB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSB7IGRlcmVmKCk7IH0KKyAgICB2
aXJ0dWFsIEV2ZW50VGFyZ2V0RGF0YSogZXZlbnRUYXJnZXREYXRhKCk7CisgICAgdmlydHVhbCBF
dmVudFRhcmdldERhdGEqIGVuc3VyZUV2ZW50VGFyZ2V0RGF0YSgpOwogCi0gICAgICAgIHZvaWQg
c3RhcnRMb2FkaW5nKCk7Ci0gICAgICAgIHZvaWQgZmluaXNoTG9hZGluZygpOworICAgIHZvaWQg
c3RhcnRMb2FkaW5nKCk7CisgICAgdm9pZCBmaW5pc2hMb2FkaW5nKCk7CiAKLSAgICAgICAgYm9v
bCBtX2lzSFRNTDsKLSAgICAgICAgS1VSTCBtX25vdGlmaWNhdGlvblVSTDsKLSAgICAgICAgTm90
aWZpY2F0aW9uQ29udGVudHMgbV9jb250ZW50czsKKyAgICBib29sIG1faXNIVE1MOworICAgIEtV
UkwgbV9ub3RpZmljYXRpb25VUkw7CisgICAgTm90aWZpY2F0aW9uQ29udGVudHMgbV9jb250ZW50
czsKIAotICAgICAgICBTdHJpbmcgbV9kaXJlY3Rpb247Ci0gICAgICAgIFN0cmluZyBtX3JlcGxh
Y2VJZDsKKyAgICBTdHJpbmcgbV9kaXJlY3Rpb247CisgICAgU3RyaW5nIG1fcmVwbGFjZUlkOwog
Ci0gICAgICAgIGVudW0gTm90aWZpY2F0aW9uU3RhdGUgewotICAgICAgICAgICAgSWRsZSA9IDAs
Ci0gICAgICAgICAgICBMb2FkaW5nID0gMSwKLSAgICAgICAgICAgIFNob3dpbmcgPSAyLAotICAg
ICAgICAgICAgQ2FuY2VsbGVkID0gMwotICAgICAgICB9OworICAgIGVudW0gTm90aWZpY2F0aW9u
U3RhdGUgeworICAgICAgICBJZGxlID0gMCwKKyAgICAgICAgTG9hZGluZyA9IDEsCisgICAgICAg
IFNob3dpbmcgPSAyLAorICAgICAgICBDYW5jZWxsZWQgPSAzCisgICAgfTsKIAotICAgICAgICBO
b3RpZmljYXRpb25TdGF0ZSBtX3N0YXRlOworICAgIE5vdGlmaWNhdGlvblN0YXRlIG1fc3RhdGU7
CiAKLSAgICAgICAgUmVmUHRyPE5vdGlmaWNhdGlvbkNlbnRlcj4gbV9ub3RpZmljYXRpb25DZW50
ZXI7Ci0gICAgICAgIAotICAgICAgICBFdmVudFRhcmdldERhdGEgbV9ldmVudFRhcmdldERhdGE7
CisgICAgUmVmUHRyPE5vdGlmaWNhdGlvbkNlbnRlcj4gbV9ub3RpZmljYXRpb25DZW50ZXI7Cisg
ICAgCisgICAgRXZlbnRUYXJnZXREYXRhIG1fZXZlbnRUYXJnZXREYXRhOwogCi0gICAgICAgIFJl
ZlB0cjxUaHJlYWRhYmxlTG9hZGVyPiBtX2xvYWRlcjsKLSAgICAgICAgUmVmUHRyPFNoYXJlZEJ1
ZmZlcj4gbV9pY29uRGF0YTsKLSAgICB9OworICAgIFJlZlB0cjxUaHJlYWRhYmxlTG9hZGVyPiBt
X2xvYWRlcjsKKyAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBtX2ljb25EYXRhOworfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9ub3RpZmlj
YXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5oIGIvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9u
cy9Ob3RpZmljYXRpb25DZW50ZXIuaAppbmRleCA4ZTRkZDk4MDNlZjcyMzRiODBmNzMzMDZmMWU1
MmNjNmI3MzU5MGQ0Li4yM2IzMWUwMzFmNmQ0MTNkZDkyNjlhZGFlOTg2NmIxMDQxMzEyMDJiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVy
LmgKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpA
QCAtNDMsNDkgKzQ0LDQ5IEBACiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKLSAgICAKLSAgICBjbGFzcyBOb3RpZmljYXRpb25QcmVzZW50ZXI7Ci0gICAg
Y2xhc3MgVm9pZENhbGxiYWNrOwotCi0gICAgY2xhc3MgTm90aWZpY2F0aW9uQ2VudGVyIDogcHVi
bGljIFJlZkNvdW50ZWQ8Tm90aWZpY2F0aW9uQ2VudGVyPiwgcHVibGljIEFjdGl2ZURPTU9iamVj
dCB7IAotICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8Tm90aWZpY2F0aW9u
Q2VudGVyPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgTm90aWZpY2F0
aW9uUHJlc2VudGVyKiBwcmVzZW50ZXIpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBOb3RpZmljYXRp
b25DZW50ZXIoY29udGV4dCwgcHJlc2VudGVyKSk7IH0KLQotICAgICAgICBQYXNzUmVmUHRyPE5v
dGlmaWNhdGlvbj4gY3JlYXRlSFRNTE5vdGlmaWNhdGlvbihjb25zdCBTdHJpbmcmIFVSSSwgRXhj
ZXB0aW9uQ29kZSYgZWMpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGlmICghcHJlc2VudGVyKCkp
IHsKLSAgICAgICAgICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOwotICAgICAgICAgICAg
ICAgIHJldHVybiAwOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKFVSSS5pc0VtcHR5
KCkpIHsKLSAgICAgICAgICAgICAgICBlYyA9IFNZTlRBWF9FUlI7Ci0gICAgICAgICAgICAgICAg
cmV0dXJuIDA7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gTm90aWZpY2F0aW9u
OjpjcmVhdGUoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5jb21wbGV0ZVVSTChVUkkpLCBzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCksIGVjLCB0aGlzKTsKKworY2xhc3MgTm90aWZpY2F0aW9uUHJl
c2VudGVyOworY2xhc3MgVm9pZENhbGxiYWNrOworCitjbGFzcyBOb3RpZmljYXRpb25DZW50ZXIg
OiBwdWJsaWMgUmVmQ291bnRlZDxOb3RpZmljYXRpb25DZW50ZXI+LCBwdWJsaWMgQWN0aXZlRE9N
T2JqZWN0IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxOb3RpZmljYXRpb25DZW50
ZXI+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBOb3RpZmljYXRpb25Q
cmVzZW50ZXIqIHByZXNlbnRlcikgeyByZXR1cm4gYWRvcHRSZWYobmV3IE5vdGlmaWNhdGlvbkNl
bnRlcihjb250ZXh0LCBwcmVzZW50ZXIpKTsgfQorCisgICAgUGFzc1JlZlB0cjxOb3RpZmljYXRp
b24+IGNyZWF0ZUhUTUxOb3RpZmljYXRpb24oY29uc3QgU3RyaW5nJiBVUkksIEV4Y2VwdGlvbkNv
ZGUmIGVjKQorICAgIHsKKyAgICAgICAgaWYgKCFwcmVzZW50ZXIoKSkgeworICAgICAgICAgICAg
ZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9
CisgICAgICAgIGlmIChVUkkuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICBlYyA9IFNZTlRBWF9F
UlI7CisgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgfQorICAgICAgICByZXR1cm4gTm90
aWZpY2F0aW9uOjpjcmVhdGUoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5jb21wbGV0ZVVSTChV
UkkpLCBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIGVjLCB0aGlzKTsKKyAgICB9CiAKLSAgICAg
ICAgUGFzc1JlZlB0cjxOb3RpZmljYXRpb24+IGNyZWF0ZU5vdGlmaWNhdGlvbihjb25zdCBTdHJp
bmcmIGljb25VUkksIGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgYm9keSwgRXhj
ZXB0aW9uQ29kZSYgZWMpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGlmICghcHJlc2VudGVyKCkp
IHsKLSAgICAgICAgICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOwotICAgICAgICAgICAg
ICAgIHJldHVybiAwOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgTm90aWZpY2F0aW9uQ29u
dGVudHMgY29udGVudHMoaWNvblVSSS5pc0VtcHR5KCkgPyBLVVJMKCkgOiBzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCktPmNvbXBsZXRlVVJMKGljb25VUkkpLCB0aXRsZSwgYm9keSk7Ci0gICAgICAg
ICAgICByZXR1cm4gTm90aWZpY2F0aW9uOjpjcmVhdGUoY29udGVudHMsIHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKSwgZWMsIHRoaXMpOworICAgIFBhc3NSZWZQdHI8Tm90aWZpY2F0aW9uPiBjcmVh
dGVOb3RpZmljYXRpb24oY29uc3QgU3RyaW5nJiBpY29uVVJJLCBjb25zdCBTdHJpbmcmIHRpdGxl
LCBjb25zdCBTdHJpbmcmIGJvZHksIEV4Y2VwdGlvbkNvZGUmIGVjKQorICAgIHsKKyAgICAgICAg
aWYgKCFwcmVzZW50ZXIoKSkgeworICAgICAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsK
KyAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICB9CisgICAgICAgIE5vdGlmaWNhdGlvbkNv
bnRlbnRzIGNvbnRlbnRzKGljb25VUkkuaXNFbXB0eSgpID8gS1VSTCgpIDogc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpLT5jb21wbGV0ZVVSTChpY29uVVJJKSwgdGl0bGUsIGJvZHkpOworICAgICAg
ICByZXR1cm4gTm90aWZpY2F0aW9uOjpjcmVhdGUoY29udGVudHMsIHNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKSwgZWMsIHRoaXMpOworICAgIH0KIAotICAgICAgICBOb3RpZmljYXRpb25QcmVzZW50
ZXIqIHByZXNlbnRlcigpIGNvbnN0IHsgcmV0dXJuIG1fbm90aWZpY2F0aW9uUHJlc2VudGVyOyB9
CisgICAgTm90aWZpY2F0aW9uUHJlc2VudGVyKiBwcmVzZW50ZXIoKSBjb25zdCB7IHJldHVybiBt
X25vdGlmaWNhdGlvblByZXNlbnRlcjsgfQogCi0gICAgICAgIGludCBjaGVja1Blcm1pc3Npb24o
KTsKLSAgICAgICAgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihQYXNzUmVmUHRyPFZvaWRDYWxsYmFj
az4gY2FsbGJhY2spOworICAgIGludCBjaGVja1Blcm1pc3Npb24oKTsKKyAgICB2b2lkIHJlcXVl
c3RQZXJtaXNzaW9uKFBhc3NSZWZQdHI8Vm9pZENhbGxiYWNrPik7CiAKLSAgICAgICAgdm9pZCBk
aXNjb25uZWN0RnJhbWUoKTsKKyAgICB2b2lkIGRpc2Nvbm5lY3RGcmFtZSgpOwogCi0gICAgcHJp
dmF0ZToKLSAgICAgICAgTm90aWZpY2F0aW9uQ2VudGVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
LCBOb3RpZmljYXRpb25QcmVzZW50ZXIqKTsKK3ByaXZhdGU6CisgICAgTm90aWZpY2F0aW9uQ2Vu
dGVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBOb3RpZmljYXRpb25QcmVzZW50ZXIqKTsKIAot
ICAgICAgICBOb3RpZmljYXRpb25QcmVzZW50ZXIqIG1fbm90aWZpY2F0aW9uUHJlc2VudGVyOwot
ICAgIH07CisgICAgTm90aWZpY2F0aW9uUHJlc2VudGVyKiBtX25vdGlmaWNhdGlvblByZXNlbnRl
cjsKK307CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25Db250ZW50cy5oIGIvU291cmNlL1dlYkNv
cmUvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25Db250ZW50cy5oCmluZGV4IDU4MDdmMzAzZjk1
NTlhNTAxNGI3NTA1NWE2YTVhNDEwNDNjMjVhNTMuLjExODZjMWM3ODIzZjJhMDUwMjQwYjc2MDA2
NTU2OTUyYmE0MjkxNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMv
Tm90aWZpY2F0aW9uQ29udGVudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25z
L05vdGlmaWNhdGlvbkNvbnRlbnRzLmgKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0
IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQpAQCAtMzMsMjUgKzM0LDI0IEBACiAKICNpZiBFTkFCTEUoTk9U
SUZJQ0FUSU9OUykKIAorI2luY2x1ZGUgIktVUkwuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0gICAgY2xhc3MgTm90aWZpY2F0aW9u
Q29udGVudHMgeyAKLSAgICBwdWJsaWM6Ci0gICAgICAgIE5vdGlmaWNhdGlvbkNvbnRlbnRzKCkg
e30KLSAgICAgICAgTm90aWZpY2F0aW9uQ29udGVudHMoY29uc3QgS1VSTCYgaWNvblVybCwgY29u
c3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiBib2R5KQotICAgICAgICAgICAgOiBtX2lj
b24oaWNvblVybCkKLSAgICAgICAgICAgICwgbV90aXRsZSh0aXRsZSkKLSAgICAgICAgICAgICwg
bV9ib2R5KGJvZHkpIHt9Ci0KLSAgICAgICAgS1VSTCBpY29uKCkgY29uc3QgeyByZXR1cm4gbV9p
Y29uOyB9Ci0gICAgICAgIFN0cmluZyB0aXRsZSgpIGNvbnN0IHsgcmV0dXJuIG1fdGl0bGU7IH0K
LSAgICAgICAgU3RyaW5nIGJvZHkoKSBjb25zdCB7IHJldHVybiBtX2JvZHk7IH0KLQotICAgIHBy
aXZhdGU6Ci0gICAgICAgIEtVUkwgbV9pY29uOwotICAgICAgICBTdHJpbmcgbV90aXRsZTsKLSAg
ICAgICAgU3RyaW5nIG1fYm9keTsKLSAgICB9Oworc3RydWN0IE5vdGlmaWNhdGlvbkNvbnRlbnRz
IHsgCitwdWJsaWM6CisgICAgTm90aWZpY2F0aW9uQ29udGVudHMoKSB7IH0KKyAgICBOb3RpZmlj
YXRpb25Db250ZW50cyhjb25zdCBLVVJMJiBpY29uVXJsLCBjb25zdCBTdHJpbmcmIG5vdGlmaWNh
dGlvblRpdGxlLCBjb25zdCBTdHJpbmcmIG5vdGlmaWNhdGlvbkJvZHkpCisgICAgICAgIDogaWNv
bihpY29uVXJsKQorICAgICAgICAsIHRpdGxlKG5vdGlmaWNhdGlvblRpdGxlKQorICAgICAgICAs
IGJvZHkobm90aWZpY2F0aW9uQm9keSkKKyAgICB7IH0KKworICAgIEtVUkwgaWNvbjsKKyAgICBT
dHJpbmcgdGl0bGU7CisgICAgU3RyaW5nIGJvZHk7Cit9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0
aW9uQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNh
dGlvbkNvbnRyb2xsZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkyZGQ1OWViNTQ3NGJkYjdiZGMyZGMxZjIz
OGMyODA4NGJjNDBjYWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9ub3RpZmlj
YXRpb25zL05vdGlmaWNhdGlvbkNvbnRyb2xsZXIuY3BwCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIs
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTm90aWZpY2F0aW9uQ29udHJvbGxl
ci5oIgorCisjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCisKKyNpbmNsdWRlICJOb3RpZmljYXRp
b25QcmVzZW50ZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitOb3RpZmljYXRpb25Db250
cm9sbGVyOjpOb3RpZmljYXRpb25Db250cm9sbGVyKFBhZ2UqIHBhZ2UsIE5vdGlmaWNhdGlvblBy
ZXNlbnRlciogY2xpZW50KQorOiBtX3BhZ2UocGFnZSkKKywgbV9jbGllbnQoY2xpZW50KQorewor
fQorCitOb3RpZmljYXRpb25Db250cm9sbGVyOjp+Tm90aWZpY2F0aW9uQ29udHJvbGxlcigpCit7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShOT1RJRklD
QVRJT05TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9Ob3RpZmlj
YXRpb25Db250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNh
dGlvbkNvbnRyb2xsZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZmFlYmNmMjIyZTlkYjJmZDU5NWRkZDUzMmJl
NWJhNmRkNjExNThiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0
aW9ucy9Ob3RpZmljYXRpb25Db250cm9sbGVyLmgKQEAgLTAsMCArMSw1NSBAQAorLyoKKyogQ29w
eXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyoKKyogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworKiBhcmUgbWV0OgorKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyoKKyogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisqLworCisjaWZuZGVmIE5vdGlmaWNhdGlvbkNv
bnRyb2xsZXJfaAorI2RlZmluZSBOb3RpZmljYXRpb25Db250cm9sbGVyX2gKKworI2lmIEVOQUJM
RShOT1RJRklDQVRJT05TKQorCisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgTm90aWZpY2F0aW9uUHJlc2VudGVyOworY2xhc3MgUGFn
ZTsKKworY2xhc3MgTm90aWZpY2F0aW9uQ29udHJvbGxlciB7CisgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoTm90aWZpY2F0aW9uQ29udHJvbGxlcik7CitwdWJsaWM6CisgICAgTm90aWZpY2F0aW9u
Q29udHJvbGxlcihQYWdlKiwgTm90aWZpY2F0aW9uUHJlc2VudGVyKik7CisgICAgfk5vdGlmaWNh
dGlvbkNvbnRyb2xsZXIoKTsKKyAgICAKKyAgICBOb3RpZmljYXRpb25QcmVzZW50ZXIqIGNsaWVu
dCgpIHsgcmV0dXJuIG1fY2xpZW50OyB9CisgICAgCitwcml2YXRlOgorICAgIFBhZ2UqIG1fcGFn
ZTsKKyAgICBOb3RpZmljYXRpb25QcmVzZW50ZXIqIG1fY2xpZW50OworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE5PVElGSUNBVElPTlMpCisKKyNlbmRp
ZiAvLyBOb3RpZmljYXRpb25Db250cm9sbGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUHJlc2VudGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9u
b3RpZmljYXRpb25zL05vdGlmaWNhdGlvblByZXNlbnRlci5oCmluZGV4IDk2MDIxOTk5OTA2ZThl
ZTEwM2ZhNjRjYWYxM2NiNmRjZTY3M2RmNWMuLjJjZmUwNjdiNWRkODNmOTc1OGZlZGYzZTIyMmQ0
NGZmZWI1MTdmZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90
aWZpY2F0aW9uUHJlc2VudGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9O
b3RpZmljYXRpb25QcmVzZW50ZXIuaApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQg
KEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0zNCw1MSArMzUsNDggQEAKICNpbmNsdWRlIDx3dGYvUGFz
c1JlZlB0ci5oPgogI2luY2x1ZGUgIlZvaWRDYWxsYmFjay5oIgogCi0jaWYgRU5BQkxFKE5PVElG
SUNBVElPTlMpCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotICAgIGNsYXNzIERvY3VtZW50Owot
ICAgIGNsYXNzIE5vdGlmaWNhdGlvbjsKLSAgICBjbGFzcyBLVVJMOwotICAgIGNsYXNzIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQ7CitjbGFzcyBEb2N1bWVudDsKK2NsYXNzIE5vdGlmaWNhdGlvbjsK
K2NsYXNzIEtVUkw7CitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogCi0gICAgY2xhc3Mg
Tm90aWZpY2F0aW9uUHJlc2VudGVyIHsKK2NsYXNzIE5vdGlmaWNhdGlvblByZXNlbnRlciB7CiAK
LSAgICBwdWJsaWM6Ci0gICAgICAgIGVudW0gUGVybWlzc2lvbiB7Ci0gICAgICAgICAgICBQZXJt
aXNzaW9uQWxsb3dlZCwgLy8gVXNlciBoYXMgYWxsb3dlZCBub3RpZmljYXRpb25zCi0gICAgICAg
ICAgICBQZXJtaXNzaW9uTm90QWxsb3dlZCwgLy8gVXNlciBoYXMgbm90IHlldCBhbGxvd2VkCi0g
ICAgICAgICAgICBQZXJtaXNzaW9uRGVuaWVkIC8vIFVzZXIgaGFzIGV4cGxpY2l0bHkgZGVuaWVk
IHBlcm1pc3Npb24KLSAgICAgICAgfTsKK3B1YmxpYzoKKyAgICBlbnVtIFBlcm1pc3Npb24gewor
ICAgICAgICBQZXJtaXNzaW9uQWxsb3dlZCwgLy8gVXNlciBoYXMgYWxsb3dlZCBub3RpZmljYXRp
b25zCisgICAgICAgIFBlcm1pc3Npb25Ob3RBbGxvd2VkLCAvLyBVc2VyIGhhcyBub3QgeWV0IGFs
bG93ZWQKKyAgICAgICAgUGVybWlzc2lvbkRlbmllZCAvLyBVc2VyIGhhcyBleHBsaWNpdGx5IGRl
bmllZCBwZXJtaXNzaW9uCisgICAgfTsKIAotICAgICAgICB2aXJ0dWFsIH5Ob3RpZmljYXRpb25Q
cmVzZW50ZXIoKSB7fQorICAgIC8vIFJlcXVlc3RzIHRoYXQgYSBub3RpZmljYXRpb24gYmUgc2hv
d24uCisgICAgdmlydHVhbCBib29sIHNob3coTm90aWZpY2F0aW9uKikgPSAwOwogCi0gICAgICAg
IC8vIFJlcXVlc3RzIHRoYXQgYSBub3RpZmljYXRpb24gYmUgc2hvd24uCi0gICAgICAgIHZpcnR1
YWwgYm9vbCBzaG93KE5vdGlmaWNhdGlvbiopID0gMDsKKyAgICAvLyBSZXF1ZXN0cyB0aGF0IGEg
bm90aWZpY2F0aW9uIHRoYXQgaGFzIGFscmVhZHkgYmVlbiBzaG93biBiZSBjYW5jZWxlZC4KKyAg
ICB2aXJ0dWFsIHZvaWQgY2FuY2VsKE5vdGlmaWNhdGlvbiopID0gMDsKIAotICAgICAgICAvLyBS
ZXF1ZXN0cyB0aGF0IGEgbm90aWZpY2F0aW9uIHRoYXQgaGFzIGFscmVhZHkgYmVlbiBzaG93biBi
ZSBjYW5jZWxlZC4KLSAgICAgICAgdmlydHVhbCB2b2lkIGNhbmNlbChOb3RpZmljYXRpb24qKSA9
IDA7CisgICAgLy8gSW5mb3JtcyB0aGUgcHJlc2VudGVyIHRoYXQgYSBOb3RpZmljYXRpb24gb2Jq
ZWN0IGhhcyBiZWVuIGRlc3Ryb3llZAorICAgIC8vIChzdWNoIGFzIGJ5IGEgcGFnZSB0cmFuc2l0
aW9uKS4gVGhlIHByZXNlbnRlciBtYXkgY29udGludWUgc2hvd2luZworICAgIC8vIHRoZSBub3Rp
ZmljYXRpb24sIGJ1dCBtdXN0IG5vdCBhdHRlbXB0IHRvIGNhbGwgdGhlIGV2ZW50IGhhbmRsZXJz
LgorICAgIHZpcnR1YWwgdm9pZCBub3RpZmljYXRpb25PYmplY3REZXN0cm95ZWQoTm90aWZpY2F0
aW9uKikgPSAwOwogCi0gICAgICAgIC8vIEluZm9ybXMgdGhlIHByZXNlbnRlciB0aGF0IGEgTm90
aWZpY2F0aW9uIG9iamVjdCBoYXMgYmVlbiBkZXN0cm95ZWQKLSAgICAgICAgLy8gKHN1Y2ggYXMg
YnkgYSBwYWdlIHRyYW5zaXRpb24pLiAgVGhlIHByZXNlbnRlciBtYXkgY29udGludWUgc2hvd2lu
ZwotICAgICAgICAvLyB0aGUgbm90aWZpY2F0aW9uLCBidXQgbXVzdCBub3QgYXR0ZW1wdCB0byBj
YWxsIHRoZSBldmVudCBoYW5kbGVycy4KLSAgICAgICAgdmlydHVhbCB2b2lkIG5vdGlmaWNhdGlv
bk9iamVjdERlc3Ryb3llZChOb3RpZmljYXRpb24qKSA9IDA7CisgICAgLy8gUmVxdWVzdHMgdXNl
ciBwZXJtaXNzaW9uIHRvIHNob3cgZGVza3RvcCBub3RpZmljYXRpb25zIGZyb20gYSBwYXJ0aWN1
bGFyCisgICAgLy8gc2NyaXB0IGNvbnRleHQuIFRoZSBjYWxsYmFjayBwYXJhbWV0ZXIgc2hvdWxk
IGJlIHJ1biB3aGVuIHRoZSB1c2VyIGhhcworICAgIC8vIG1hZGUgYSBkZWNpc2lvbi4KKyAgICB2
aXJ0dWFsIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBh
c3NSZWZQdHI8Vm9pZENhbGxiYWNrPikgPSAwOwogCi0gICAgICAgIC8vIFJlcXVlc3RzIHVzZXIg
cGVybWlzc2lvbiB0byBzaG93IGRlc2t0b3Agbm90aWZpY2F0aW9ucyBmcm9tIGEgcGFydGljdWxh
cgotICAgICAgICAvLyBzY3JpcHQgY29udGV4dC4gVGhlIGNhbGxiYWNrIHBhcmFtZXRlciBzaG91
bGQgYmUgcnVuIHdoZW4gdGhlIHVzZXIgaGFzCi0gICAgICAgIC8vIG1hZGUgYSBkZWNpc2lvbi4K
LSAgICAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqLCBQYXNzUmVmUHRyPFZvaWRDYWxsYmFjaz4pID0gMDsKKyAgICAvLyBDYW5jZWwgYWxs
IG91dHN0YW5kaW5nIHJlcXVlc3RzIGZvciB0aGUgU2NyaXB0RXhlY3V0aW9uQ29udGV4dAorICAg
IHZpcnR1YWwgdm9pZCBjYW5jZWxSZXF1ZXN0c0ZvclBlcm1pc3Npb24oU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCopID0gMDsKIAotICAgICAgICAvLyBDYW5jZWwgYWxsIG91dHN0YW5kaW5nIHJlcXVl
c3RzIGZvciB0aGUgU2NyaXB0RXhlY3V0aW9uQ29udGV4dAotICAgICAgICB2aXJ0dWFsIHZvaWQg
Y2FuY2VsUmVxdWVzdHNGb3JQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKSA9IDA7
CisgICAgLy8gQ2hlY2tzIHRoZSBjdXJyZW50IGxldmVsIG9mIHBlcm1pc3Npb24uCisgICAgdmly
dHVhbCBQZXJtaXNzaW9uIGNoZWNrUGVybWlzc2lvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0Kikg
PSAwOwogCi0gICAgICAgIC8vIENoZWNrcyB0aGUgY3VycmVudCBsZXZlbCBvZiBwZXJtaXNzaW9u
LgotICAgICAgICB2aXJ0dWFsIFBlcm1pc3Npb24gY2hlY2tQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqKSA9IDA7Ci0gICAgfTsKK3Byb3RlY3RlZDoKKyAgICB2aXJ0dWFsIH5Ob3Rp
ZmljYXRpb25QcmVzZW50ZXIoKSB7IH0KK307CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAot
I2VuZGlmIC8vIEVOQUJMRShOT1RJRklDQVRJT05TKQotCiAjZW5kaWYgLy8gTm90aWZpY2F0aW9u
UHJlc2VudGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAppbmRleCA0ZDkyYTViY2IyN2FhZjg1Yjc2
YTM1Y2RmYzUyOTliNGE0ZGQyNzFiLi45NGNkZDljNWZhYWUzYmU5NDRiZTkxOTE2YmE2OGFmYjY0
ODE0YTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCkBAIC01MDgsMTMgKzUwOCw2IEBAIHZvaWQg
Q2hyb21lOjpzY2hlZHVsZUFuaW1hdGlvbigpCiB9CiAjZW5kaWYKIAotI2lmIEVOQUJMRShOT1RJ
RklDQVRJT05TKQotTm90aWZpY2F0aW9uUHJlc2VudGVyKiBDaHJvbWU6Om5vdGlmaWNhdGlvblBy
ZXNlbnRlcigpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fY2xpZW50LT5ub3RpZmljYXRpb25QcmVz
ZW50ZXIoKTsKLX0KLSNlbmRpZgotCiAvLyAtLS0tLS0tLQogCiAjaWYgRU5BQkxFKERBU0hCT0FS
RF9TVVBQT1JUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKaW5kZXggODY0MzI2YzcxMzVlMmI0ZjlhYTVkMGNl
NjMxNDIxMTQ3OTU2NmU4Ni4uYjNmMDg3NDBmOTQ3NDkyOTMyMjA4ODNmZGEyZmRkYjU5YmU4NjU3
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0Nocm9tZS5oCkBAIC01MSw5ICs1MSw2IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICBjbGFzcyBQYWdlOwogICAgIGNsYXNzIFBvcHVwTWVudTsKICAgICBjbGFzcyBQb3B1
cE1lbnVDbGllbnQ7Ci0jaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCi0gICAgY2xhc3MgTm90aWZp
Y2F0aW9uUHJlc2VudGVyOwotI2VuZGlmCiAgICAgY2xhc3MgU2VhcmNoUG9wdXBNZW51OwogCiAg
ICAgc3RydWN0IEZyYW1lTG9hZFJlcXVlc3Q7CkBAIC0xNzUsMTAgKzE3Miw2IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBmb2N1c05TVmlldyhOU1ZpZXcqKTsKICNlbmRpZgog
Ci0jaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCi0gICAgICAgIE5vdGlmaWNhdGlvblByZXNlbnRl
ciogbm90aWZpY2F0aW9uUHJlc2VudGVyKCkgY29uc3Q7IAotI2VuZGlmCi0KICAgICAgICAgYm9v
bCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpOwogICAgICAgICBib29sIHNl
bGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24oKTsKICAgICAgICAg
UGFzc1JlZlB0cjxQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBj
b25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IGFkZGNjMGFlY2U1MjNjOGY5
MzJkNWQ4ZWM3NWQ4NmFjZDBiOGRkOGQuLjAxMGRhM2I0NjU1MDU0OTY2OTIzZjQwMjhlNzUzYTlj
ZGM4ZDQ3MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtNzUsMTAgKzc1LDYg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIENvbG9yQ2hvb3NlcjsKICNlbmRpZgog
Ci0jaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCi0gICAgY2xhc3MgTm90aWZpY2F0aW9uUHJlc2Vu
dGVyOwotI2VuZGlmCi0KICAgICBjbGFzcyBDaHJvbWVDbGllbnQgewogICAgIHB1YmxpYzoKICAg
ICAgICAgdmlydHVhbCB2b2lkIGNocm9tZURlc3Ryb3llZCgpID0gMDsKQEAgLTIwNCwxMCArMjAw
LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIHZvaWQgZGFzaGJvYXJk
UmVnaW9uc0NoYW5nZWQoKTsKICNlbmRpZgogCi0jaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCi0g
ICAgICAgIHZpcnR1YWwgTm90aWZpY2F0aW9uUHJlc2VudGVyKiBub3RpZmljYXRpb25QcmVzZW50
ZXIoKSBjb25zdCA9IDA7Ci0jZW5kaWYKLQogICAgICAgICB2aXJ0dWFsIHZvaWQgcG9wdWxhdGVW
aXNpdGVkTGlua3MoKTsKIAogICAgICAgICB2aXJ0dWFsIEZsb2F0UmVjdCBjdXN0b21IaWdobGln
aHRSZWN0KE5vZGUqLCBjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IEZsb2F0UmVjdCYg
bGluZVJlY3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IDk1OTllOGQ2YmEzYmM2
NDY5OWI4YzVhNzhjNDM0ZTNiNzczNWMwNTUuLjY5NDg4YzlhNDBhYzE2Yjg1MzkzMGZkNWJlYjhj
NWY3Yzg1ZjU4NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTc0LDYgKzc0LDcg
QEAKICNpbmNsdWRlICJNZXNzYWdlRXZlbnQuaCIKICNpbmNsdWRlICJOYXZpZ2F0b3IuaCIKICNp
bmNsdWRlICJOb3RpZmljYXRpb25DZW50ZXIuaCIKKyNpbmNsdWRlICJOb3RpZmljYXRpb25Db250
cm9sbGVyLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBhZ2VHcm91cC5oIgogI2lu
Y2x1ZGUgIlBhZ2VUcmFuc2l0aW9uRXZlbnQuaCIKQEAgLTc1MCw3ICs3NTEsNyBAQCBOb3RpZmlj
YXRpb25DZW50ZXIqIERPTVdpbmRvdzo6d2Via2l0Tm90aWZpY2F0aW9ucygpIGNvbnN0CiAgICAg
aWYgKCFwYWdlKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIE5vdGlmaWNhdGlvblByZXNlbnRl
ciogcHJvdmlkZXIgPSBwYWdlLT5jaHJvbWUoKS0+bm90aWZpY2F0aW9uUHJlc2VudGVyKCk7Cisg
ICAgTm90aWZpY2F0aW9uUHJlc2VudGVyKiBwcm92aWRlciA9IHBhZ2UtPm5vdGlmaWNhdGlvbkNv
bnRyb2xsZXIoKS0+Y2xpZW50KCk7CiAgICAgaWYgKHByb3ZpZGVyKSAKICAgICAgICAgbV9ub3Rp
ZmljYXRpb25zID0gTm90aWZpY2F0aW9uQ2VudGVyOjpjcmVhdGUoZG9jdW1lbnQsIHByb3ZpZGVy
KTsgICAgCiAgICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDBmNmMyYzM0MjY2MDlhNjc5ODEx
ZjIwOThiNWFmMTgzOWY2M2M2N2YuLjQ2NTk5ZmM0YzNmY2FiOTBlYjQ5Y2IwMjhjYjUwNmNjMjFk
NGZhYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtNTMsNiArNTMsOCBAQAogI2luY2x1ZGUgIk1l
ZGlhQ2FuU3RhcnRMaXN0ZW5lci5oIgogI2luY2x1ZGUgIk5hdmlnYXRvci5oIgogI2luY2x1ZGUg
Ik5ldHdvcmtTdGF0ZU5vdGlmaWVyLmgiCisjaW5jbHVkZSAiTm90aWZpY2F0aW9uQ29udHJvbGxl
ci5oIgorI2luY2x1ZGUgIk5vdGlmaWNhdGlvblByZXNlbnRlci5oIgogI2luY2x1ZGUgIlBhZ2VH
cm91cC5oIgogI2luY2x1ZGUgIlBsdWdpbkRhdGEuaCIKICNpbmNsdWRlICJQbHVnaW5WaWV3Lmgi
CkBAIC0xMzcsNiArMTM5LDkgQEAgUGFnZTo6UGFnZShQYWdlQ2xpZW50cyYgcGFnZUNsaWVudHMp
CiAgICAgLCBtX2RldmljZU1vdGlvbkNvbnRyb2xsZXIoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6
ZGV2aWNlTW90aW9uRW5hYmxlZCgpID8gYWRvcHRQdHIobmV3IERldmljZU1vdGlvbkNvbnRyb2xs
ZXIocGFnZUNsaWVudHMuZGV2aWNlTW90aW9uQ2xpZW50KSkgOiBudWxscHRyKQogICAgICwgbV9k
ZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6ZGV2aWNl
T3JpZW50YXRpb25FbmFibGVkKCkgPyBhZG9wdFB0cihuZXcgRGV2aWNlT3JpZW50YXRpb25Db250
cm9sbGVyKHRoaXMsIHBhZ2VDbGllbnRzLmRldmljZU9yaWVudGF0aW9uQ2xpZW50KSkgOiBudWxs
cHRyKQogI2VuZGlmCisjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCisgICAgLCBtX25vdGlmaWNh
dGlvbkNvbnRyb2xsZXIoYWRvcHRQdHIobmV3IE5vdGlmaWNhdGlvbkNvbnRyb2xsZXIodGhpcywg
cGFnZUNsaWVudHMubm90aWZpY2F0aW9uQ2xpZW50KSkpCisjZW5kaWYKICNpZiBFTkFCTEUoSU5Q
VVRfU1BFRUNIKQogICAgICwgbV9zcGVlY2hJbnB1dENsaWVudChwYWdlQ2xpZW50cy5zcGVlY2hJ
bnB1dENsaWVudCkKICNlbmRpZgpAQCAtMTA2Myw2ICsxMDY4LDcgQEAgUGFnZTo6UGFnZUNsaWVu
dHM6OlBhZ2VDbGllbnRzKCkKICAgICAsIGRldmljZU1vdGlvbkNsaWVudCgwKQogICAgICwgZGV2
aWNlT3JpZW50YXRpb25DbGllbnQoMCkKICAgICAsIHNwZWVjaElucHV0Q2xpZW50KDApCisgICAg
LCBub3RpZmljYXRpb25DbGllbnQoMCkKICAgICAsIHVzZXJNZWRpYUNsaWVudCgwKQogewogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuaAppbmRleCBhODM0N2U4NzgwMGU4ZTMzMDc5ZThjNDE0OWRkZjNiNjQyYWYwYjIx
Li4zZDBlZTdhOWJkNDVkNzg1ZmI2NjMxNGQ5YzlhMjgwZmU0ZGRkYzcwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2Uu
aApAQCAtNzIsNiArNzIsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgSW5zcGVj
dG9yQ29udHJvbGxlcjsKICAgICBjbGFzcyBNZWRpYUNhblN0YXJ0TGlzdGVuZXI7CiAgICAgY2xh
c3MgTm9kZTsKKyAgICBjbGFzcyBOb3RpZmljYXRpb25Db250cm9sbGVyOworICAgIGNsYXNzIE5v
dGlmaWNhdGlvblByZXNlbnRlcjsKICAgICBjbGFzcyBQYWdlR3JvdXA7CiAgICAgY2xhc3MgUGx1
Z2luRGF0YTsKICAgICBjbGFzcyBQcm9ncmVzc1RyYWNrZXI7CkBAIC0xMTcsNiArMTE5LDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgRGV2aWNlT3JpZW50YXRpb25DbGllbnQq
IGRldmljZU9yaWVudGF0aW9uQ2xpZW50OwogICAgICAgICAgICAgUmVmUHRyPEJhY2tGb3J3YXJk
TGlzdD4gYmFja0ZvcndhcmRDbGllbnQ7CiAgICAgICAgICAgICBTcGVlY2hJbnB1dENsaWVudCog
c3BlZWNoSW5wdXRDbGllbnQ7CisgICAgICAgICAgICBOb3RpZmljYXRpb25QcmVzZW50ZXIqIG5v
dGlmaWNhdGlvbkNsaWVudDsKICAgICAgICAgICAgIFVzZXJNZWRpYUNsaWVudCogdXNlck1lZGlh
Q2xpZW50OwogICAgICAgICB9OwogCkBAIC0xODMsNiArMTg2LDkgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICBEZXZpY2VNb3Rpb25Db250cm9sbGVyKiBkZXZpY2VNb3Rpb25Db250cm9s
bGVyKCkgY29uc3QgeyByZXR1cm4gbV9kZXZpY2VNb3Rpb25Db250cm9sbGVyLmdldCgpOyB9CiAg
ICAgICAgIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciogZGV2aWNlT3JpZW50YXRpb25Db250
cm9sbGVyKCkgY29uc3QgeyByZXR1cm4gbV9kZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuZ2V0
KCk7IH0KICNlbmRpZgorI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQorICAgICAgICBOb3RpZmlj
YXRpb25Db250cm9sbGVyKiBub3RpZmljYXRpb25Db250cm9sbGVyKCkgY29uc3QgeyByZXR1cm4g
bV9ub3RpZmljYXRpb25Db250cm9sbGVyLmdldCgpOyB9CisjZW5kaWYKICNpZiBFTkFCTEUoSU5Q
VVRfU1BFRUNIKQogICAgICAgICBTcGVlY2hJbnB1dCogc3BlZWNoSW5wdXQoKTsKICNlbmRpZgpA
QCAtMzY1LDYgKzM3MSw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgT3duUHRyPERl
dmljZU1vdGlvbkNvbnRyb2xsZXI+IG1fZGV2aWNlTW90aW9uQ29udHJvbGxlcjsKICAgICAgICAg
T3duUHRyPERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcj4gbV9kZXZpY2VPcmllbnRhdGlvbkNv
bnRyb2xsZXI7CiAjZW5kaWYKKyNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKKyAgICAgICAgT3du
UHRyPE5vdGlmaWNhdGlvbkNvbnRyb2xsZXI+IG1fbm90aWZpY2F0aW9uQ29udHJvbGxlcjsKKyNl
bmRpZgogI2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gpCiAgICAgICAgIFNwZWVjaElucHV0Q2xpZW50
KiBtX3NwZWVjaElucHV0Q2xpZW50OwogICAgICAgICBPd25QdHI8U3BlZWNoSW5wdXQ+IG1fc3Bl
ZWNoSW5wdXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCA1NDk5MDkwNDRhNDRjNjVjOTViODJiYTJhODM2YTE4YjBiNTFiNzFmLi5lMzZi
MWJmODdhMTZmMWI3ZWVjYWM5YjMzZjAxZGIwZjE4MjBiNzFhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTc0LDYgKzc0LDggQEAKIAkJ
MjI2RTlFNkIwOUQwQUE4MjAwRjNBMkJDIC8qIFdlYk5ldHNjYXBlRGVwcmVjYXRlZEZ1bmN0aW9u
cy5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjI2RTlF
NjkwOUQwQUE4MjAwRjNBMkJDIC8qIFdlYk5ldHNjYXBlRGVwcmVjYXRlZEZ1bmN0aW9ucy5jICov
OyBzZXR0aW5ncyA9IHtDT01QSUxFUl9GTEFHUyA9ICItV25vLWRlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIjsgfTsgfTsKIAkJMjJGMjE5Q0MwOEQyMzY3MzAwMzBFMDc4IC8qIFdlYkJhY2tGb3J3YXJk
TGlzdFByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDIyRjIxOUNCMDhEMjM2NzMwMDMwRTA3OCAvKiBXZWJCYWNrRm9yd2FyZExpc3RQcml2YXRl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMjlB
RUY5NjAxMzRDNzZGQjAwRkU1MDk2IC8qIE91dGxvb2tRdWlya3NVc2VyU2NyaXB0LmpzIGluIFJl
c291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOUFFRjk1RDEzNEM3
NTU0MDBGRTUwOTYgLyogT3V0bG9va1F1aXJrc1VzZXJTY3JpcHQuanMgKi87IH07CisJCTMxQzEx
QTZFMTQ3NjU1MkUwMDQ5QTRDQyAvKiBXZWJOb3RpZmljYXRpb25DbGllbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxQzExQTZDMTQ3NjU1MkUwMDQ5
QTRDQyAvKiBXZWJOb3RpZmljYXRpb25DbGllbnQuaCAqLzsgfTsKKwkJMzFDMTFBNkYxNDc2NTUy
RTAwNDlBNENDIC8qIFdlYk5vdGlmaWNhdGlvbkNsaWVudC5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxQzExQTZEMTQ3NjU1MkUwMDQ5QTRDQyAvKiBX
ZWJOb3RpZmljYXRpb25DbGllbnQubW0gKi87IH07CiAJCTM3QjZGQjRFMTA2MzUzMEMwMDBGREIz
QiAvKiBXZWJQREZEb2N1bWVudEV4dHJhcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMzdCNkZCNEMxMDYzNTMwQzAwMEZEQjNCIC8qIFdlYlBERkRvY3Vt
ZW50RXh0cmFzLmggKi87IH07CiAJCTM3QjZGQjRGMTA2MzUzMEMwMDBGREIzQiAvKiBXZWJQREZE
b2N1bWVudEV4dHJhcy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDM3QjZGQjREMTA2MzUzMEMwMDBGREIzQiAvKiBXZWJQREZEb2N1bWVudEV4dHJhcy5t
bSAqLzsgfTsKIAkJMzdEMURDQTgxMDY1OTI4QzAwNjhGN0VGIC8qIFdlYkpTUERGRG9jLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzN0QxRENBNjEwNjU5
MjhDMDA2OEY3RUYgLyogV2ViSlNQREZEb2MuaCAqLzsgfTsKQEAgLTQ1NCw2ICs0NTYsOCBAQAog
CQkyRDM2RkQ1RTAzRjc4RjlFMDBBODAxNjYgLyogV2ViRm9ybURlbGVnYXRlUHJpdmF0ZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRo
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkZvcm1E
ZWxlZ2F0ZVByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1
c2VzVGFicyA9IDA7IH07CiAJCTJEODFEQUIyMDNFQjBCMkQwMEE4MDE2NiAvKiBXZWJGb3JtRGVs
ZWdhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
aW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2ViRm9ybURlbGVnYXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0g
ODsgdXNlc1RhYnMgPSAwOyB9OwogCQkyRDgxREFCMzAzRUIwQjJEMDBBODAxNjYgLyogV2ViRm9y
bURlbGVnYXRlLm0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMub2Jq
YzsgcGF0aCA9IFdlYkZvcm1EZWxlZ2F0ZS5tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJX
aWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKKwkJMzFDMTFBNkMxNDc2NTUyRTAwNDlBNENDIC8q
IFdlYk5vdGlmaWNhdGlvbkNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJOb3RpZmljYXRpb25DbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MzFDMTFBNkQxNDc2NTUyRTAwNDlBNENDIC8qIFdlYk5vdGlmaWNhdGlvbkNsaWVudC5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYk5vdGlmaWNhdGlvbkNsaWVu
dC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzUwODFEOTIwMkI2RDREODBBQ0Ey
QUNBIC8qIFdlYkhUTUxSZXByZXNlbnRhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGV4cGxpY2l0RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgZmlsZUVuY29kaW5nID0gNDsg
aW5kZW50V2lkdGggPSA0OyBwYXRoID0gV2ViSFRNTFJlcHJlc2VudGF0aW9uLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQkzNTA4MUQ5
MzAyQjZENEQ4MEFDQTJBQ0EgLyogV2ViSFRNTFJlcHJlc2VudGF0aW9uLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJIVE1MUmVw
cmVzZW50YXRpb24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNl
c1RhYnMgPSAwOyB9OwogCQkzNTA4MUQ5NDAyQjZENEQ4MEFDQTJBQ0EgLyogV2ViSFRNTFZpZXcu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRX
aWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJI
VE1MVmlldy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJz
ID0gMDsgfTsKQEAgLTEzMTEsNiArMTMxNSw4IEBACiAJCQkJOTM0NUQ0RUIwMzY1QzVCMjAwODYz
NUNFIC8qIFdlYkphdmFTY3JpcHRUZXh0SW5wdXRQYW5lbC5tICovLAogCQkJCTg0NzIzQkUzMDU2
RDcxOUUwMDQ0QkZFQSAvKiBXZWJLZXlHZW5lcmF0b3IuaCAqLywKIAkJCQk4NDcyM0JFNDA1NkQ3
MTlFMDA0NEJGRUEgLyogV2ViS2V5R2VuZXJhdG9yLm1tICovLAorCQkJCTMxQzExQTZDMTQ3NjU1
MkUwMDQ5QTRDQyAvKiBXZWJOb3RpZmljYXRpb25DbGllbnQuaCAqLywKKwkJCQkzMUMxMUE2RDE0
NzY1NTJFMDA0OUE0Q0MgLyogV2ViTm90aWZpY2F0aW9uQ2xpZW50Lm1tICovLAogCQkJCUE1OEE1
Nzk3MTQzRTcyNzAwMDEyNUY1MCAvKiBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5oICovLAog
CQkJCUE1OEE1Nzk4MTQzRTcyNzAwMDEyNUY1MCAvKiBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5l
ci5tbSAqLywKIAkJCQkxQUE4NzlCNDExQ0JFOUJGMDAzQzY2NEYgLyogV2ViUGxhdGZvcm1TdHJh
dGVnaWVzLmggKi8sCkBAIC0xNjI1LDYgKzE2MzEsNyBAQAogCQkJCUI4Mjk1OEQzMTMyNzA3RDAw
MDBEMEU3OSAvKiBDb3JyZWN0aW9uUGFuZWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1Njg3QkRB
MTM1Qjc5MUEwMDc0Q0JDQiAvKiBXZWJOb2RlSGlnaGxpZ2h0ZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCUE1OEE1Nzk5MTQzRTcyNzAwMDEyNUY1MCAvKiBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5l
ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzFDMTFBNkUxNDc2NTUyRTAwNDlBNENDIC8qIFdlYk5v
dGlmaWNhdGlvbkNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRl
cGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yMDEwLDYgKzIwMTcsNyBAQAog
CQkJCUI4Mjk1OEQ0MTMyNzA3RDAwMDBEMEU3OSAvKiBDb3JyZWN0aW9uUGFuZWwubW0gaW4gU291
cmNlcyAqLywKIAkJCQlBNTY4N0JEQjEzNUI3OTFBMDA3NENCQ0IgLyogV2ViTm9kZUhpZ2hsaWdo
dGVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTU4QTU3OUExNDNFNzI3MDAwMTI1RjUwIC8qIFdl
Yk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJMzFDMTFBNkYx
NDc2NTUyRTAwNDlBNENDIC8qIFdlYk5vdGlmaWNhdGlvbkNsaWVudC5tbSBpbiBTb3VyY2VzICov
LAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1w
bC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcApp
bmRleCAxNDY1ODRiZDk1NzZjNjEwMjA3NjM3MDM1MjFkNjdkNmM1ZDk5OGViLi41Zjg0YTJmY2M3
YjRmNjgyMGYwNDY4MmZmNDY0NWZhODE1ZTcwMWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcApAQCAtNTQsNyArNTQsNiBAQAogI2luY2x1
ZGUgIkludFJlY3QuaCIKICNpbmNsdWRlICJOYXZpZ2F0aW9uQWN0aW9uLmgiCiAjaW5jbHVkZSAi
Tm9kZS5oIgotI2luY2x1ZGUgIk5vdGlmaWNhdGlvblByZXNlbnRlckltcGwuaCIKICNpbmNsdWRl
ICJQYWdlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdXBwb3J0LmgiCiAjaW5jbHVkZSAiUG9wdXBD
b250YWluZXIuaCIKQEAgLTc4NSwxMyArNzg0LDYgQEAgdm9pZCBDaHJvbWVDbGllbnRJbXBsOjpw
b3N0QWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEEK
ICAgICAgICAgbV93ZWJWaWV3LT5jbGllbnQoKS0+cG9zdEFjY2Vzc2liaWxpdHlOb3RpZmljYXRp
b24oV2ViQWNjZXNzaWJpbGl0eU9iamVjdChvYmopLCB0b1dlYkFjY2Vzc2liaWxpdHlOb3RpZmlj
YXRpb24obm90aWZpY2F0aW9uKSk7CiB9CiAKLSNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKLU5v
dGlmaWNhdGlvblByZXNlbnRlciogQ2hyb21lQ2xpZW50SW1wbDo6bm90aWZpY2F0aW9uUHJlc2Vu
dGVyKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV93ZWJWaWV3LT5ub3RpZmljYXRpb25QcmVzZW50
ZXJJbXBsKCk7Ci19Ci0jZW5kaWYKLQogYm9vbCBDaHJvbWVDbGllbnRJbXBsOjpwYWludEN1c3Rv
bU92ZXJoYW5nQXJlYShHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEludFJlY3QmIGhv
cml6b250YWxPdmVyaGFuZ0FyZWEsIGNvbnN0IEludFJlY3QmIHZlcnRpY2FsT3ZlcmhhbmdBcmVh
LCBjb25zdCBJbnRSZWN0JiBkaXJ0eVJlY3QpCiB7CiAgICAgRnJhbWUqIGZyYW1lID0gbV93ZWJW
aWV3LT5tYWluRnJhbWVJbXBsKCktPmZyYW1lKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9DaHJvbWVDbGllbnRJbXBsLmgKaW5kZXggMWE5ZjRkZmY2Zjc1ZDliMzg2OTM5ZDM3YzVj
YmVkMWYzYWU3NjQ2MC4uNzdmMjY0MWE0NDRkZjBjMGVjMDIzZDhjZTU2ZTFmYTlkMDQ5MTU1OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaApAQCAt
MTMwLDkgKzEzMCw2IEBAIHB1YmxpYzoKICAgICAgICAgV2ViQ29yZTo6RnJhbWUqLCBjb25zdCBX
VEY6OlN0cmluZyYgZGF0YWJhc2VOYW1lKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVhY2hlZE1heEFw
cENhY2hlU2l6ZShpbnQ2NF90IHNwYWNlTmVlZGVkKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVhY2hl
ZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiosIGlu
dDY0X3QgdG90YWxTcGFjZU5lZWRlZCk7Ci0jaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCi0gICAg
dmlydHVhbCBXZWJDb3JlOjpOb3RpZmljYXRpb25QcmVzZW50ZXIqIG5vdGlmaWNhdGlvblByZXNl
bnRlcigpIGNvbnN0OwotI2VuZGlmCiAgICAgdmlydHVhbCBib29sIHBhaW50Q3VzdG9tT3Zlcmhh
bmdBcmVhKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCosIGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOwogICAg
IHZpcnR1YWwgdm9pZCByZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUoV2ViQ29y
ZTo6RnJhbWUqLCBXZWJDb3JlOjpHZW9sb2NhdGlvbiopOwogICAgIHZpcnR1YWwgdm9pZCBjYW5j
ZWxHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWUqLCBX
ZWJDb3JlOjpHZW9sb2NhdGlvbiopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViTm90aWZpY2F0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
Yk5vdGlmaWNhdGlvbi5jcHAKaW5kZXggMTVkOTA1YzYwOTkxYzlkZWQ4MmM1OGM1YmNhNWQwYTkx
M2E0ODUyMC4uMTg5NDQ3MTYzZmZlYzE5MmQwNmM4YWMwYTViNThkZmUyNzM5ZmM4MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTm90aWZpY2F0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJOb3RpZmljYXRpb24uY3BwCkBAIC04OCwx
MyArODgsMTMgQEAgV2ViVVJMIFdlYk5vdGlmaWNhdGlvbjo6aWNvblVSTCgpIGNvbnN0CiBXZWJT
dHJpbmcgV2ViTm90aWZpY2F0aW9uOjp0aXRsZSgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKCFpc0hU
TUwoKSk7Ci0gICAgcmV0dXJuIG1fcHJpdmF0ZS0+Y29udGVudHMoKS50aXRsZSgpOworICAgIHJl
dHVybiBtX3ByaXZhdGUtPmNvbnRlbnRzKCkudGl0bGU7CiB9CiAKIFdlYlN0cmluZyBXZWJOb3Rp
ZmljYXRpb246OmJvZHkoKSBjb25zdAogewogICAgIEFTU0VSVCghaXNIVE1MKCkpOwotICAgIHJl
dHVybiBtX3ByaXZhdGUtPmNvbnRlbnRzKCkuYm9keSgpOworICAgIHJldHVybiBtX3ByaXZhdGUt
PmNvbnRlbnRzKCkuYm9keTsKIH0KIAogV2ViVGV4dERpcmVjdGlvbiBXZWJOb3RpZmljYXRpb246
OmRpcmVjdGlvbigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJWaWV3SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1w
bC5jcHAKaW5kZXggNzc3MmQ5ODNhZTBjODNlOTg0ZjBjYmFjYTIwNmFkNDBlY2YyMmRmZS4uMzFl
MWUwYzc2Mzk3MGE0YTVjMTEzMDQ4NTk3ZGZhZGNlMzk1M2QyNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcApAQCAtMzk0LDYgKzM5NCw5IEBAIFdlYlZpZXdJ
bXBsOjpXZWJWaWV3SW1wbChXZWJWaWV3Q2xpZW50KiBjbGllbnQpCiAjZW5kaWYKICAgICBwYWdl
Q2xpZW50cy5kZXZpY2VPcmllbnRhdGlvbkNsaWVudCA9IG1fZGV2aWNlT3JpZW50YXRpb25DbGll
bnRQcm94eS5nZXQoKTsKICAgICBwYWdlQ2xpZW50cy5nZW9sb2NhdGlvbkNsaWVudCA9IG1fZ2Vv
bG9jYXRpb25DbGllbnRQcm94eS5nZXQoKTsKKyNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKKyAg
ICBwYWdlQ2xpZW50cy5ub3RpZmljYXRpb25DbGllbnQgPSAmbV9ub3RpZmljYXRpb25QcmVzZW50
ZXI7CisjZW5kaWYKICAgICBwYWdlQ2xpZW50cy5iYWNrRm9yd2FyZENsaWVudCA9IEJhY2tGb3J3
YXJkTGlzdENocm9taXVtOjpjcmVhdGUodGhpcyk7CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
ICAgICBwYWdlQ2xpZW50cy51c2VyTWVkaWFDbGllbnQgPSAmbV91c2VyTWVkaWFDbGllbnRJbXBs
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURl
ZmluZXMueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJl
RGVmaW5lcy54Y2NvbmZpZwppbmRleCA1MmYwMDg2YmQ0ODM3MjI1ZDNhZGVlM2E3OWFjOTQ0MGJh
N2NhZjcyLi5iNmFjMmFiYTI4ZWM2ZGRmZjJhOTdmNTdhYmNmZDk3OGVmZmMyNDRhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2Nv
bmZpZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5l
cy54Y2NvbmZpZwpAQCAtOTQsNyArOTQsMTAgQEAgRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MgPSA7
CiBFTkFCTEVfTUVURVJfVEFHID0gRU5BQkxFX01FVEVSX1RBRzsKIEVOQUJMRV9NSFRNTCA9IDsK
IEVOQUJMRV9NVVRBVElPTl9PQlNFUlZFUlMgPSA7Ci1FTkFCTEVfTk9USUZJQ0FUSU9OUyA9IDsK
KworRU5BQkxFX05PVElGSUNBVElPTlMgPSAkKEVOQUJMRV9OT1RJRklDQVRJT05TXyQoUkVBTF9Q
TEFURk9STV9OQU1FKSk7CitFTkFCTEVfTk9USUZJQ0FUSU9OU19tYWNvc3ggPSA7CisKIEVOQUJM
RV9QQUdFX1ZJU0lCSUxJVFlfQVBJID0gOwogRU5BQkxFX1BST0dSRVNTX1RBRyA9IEVOQUJMRV9Q
Uk9HUkVTU19UQUc7CiBFTkFCTEVfUVVPVEEgPSA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuaCBiL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjU0ODAyYTZjMDU1N2QzZTRkMTM0NTMzOTE1NDNjYzI5NDY1NmZlZDkKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGll
bnQuaApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8V2ViQ29yZS9Ob3Rp
ZmljYXRpb25QcmVzZW50ZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dDsKK2NsYXNzIFZvaWRDYWxsYmFjazsKK30KKworQGNsYXNzIFdlYlZp
ZXc7CisKK2NsYXNzIFdlYk5vdGlmaWNhdGlvbkNsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpOb3Rp
ZmljYXRpb25QcmVzZW50ZXIgeworcHVibGljOgorICAgIFdlYk5vdGlmaWNhdGlvbkNsaWVudChX
ZWJWaWV3ICopOworICAgIFdlYlZpZXcgKndlYlZpZXcoKSB7IHJldHVybiBtX3dlYlZpZXc7IH0K
KworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdyhXZWJDb3JlOjpOb3RpZmljYXRpb24q
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsKFdlYkNvcmU6Ok5vdGlmaWNhdGlv
biopIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBub3RpZmljYXRpb25PYmplY3REZXN0cm95
ZWQoV2ViQ29yZTo6Tm90aWZpY2F0aW9uKikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHJl
cXVlc3RQZXJtaXNzaW9uKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVm
UHRyPFdlYkNvcmU6OlZvaWRDYWxsYmFjaz4pIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBj
YW5jZWxSZXF1ZXN0c0ZvclBlcm1pc3Npb24oV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4
dCopIE9WRVJSSURFOworICAgIHZpcnR1YWwgV2ViQ29yZTo6Tm90aWZpY2F0aW9uUHJlc2VudGVy
OjpQZXJtaXNzaW9uIGNoZWNrUGVybWlzc2lvbihXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250
ZXh0KikgT1ZFUlJJREU7CisKKyAgICBXZWJWaWV3ICptX3dlYlZpZXc7Cit9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50
Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xp
ZW50Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmU0Zjk4ODJiODQ1YjBjNzYxMWViYmRkMzY2NTcxYjVlNWQ1YmVl
NjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJOb3RpZmljYXRpb25DbGllbnQubW0KQEAgLTAsMCArMSw2OCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bXBvcnQgIldlYk5vdGlmaWNhdGlvbkNsaWVudC5oIgorCisjaW1wb3J0IDxXZWJDb3JlL05vdElt
cGxlbWVudGVkLmg+CisjaW1wb3J0IDxXZWJDb3JlL05vdGlmaWNhdGlvbi5oPgorCit1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKKworV2ViTm90aWZpY2F0aW9uQ2xpZW50OjpXZWJOb3RpZmljYXRp
b25DbGllbnQoV2ViVmlldyAqd2ViVmlldykKKyAgICA6IG1fd2ViVmlldyh3ZWJWaWV3KQorewor
fQorCitib29sIFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6c2hvdyhOb3RpZmljYXRpb24qKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIFdlYk5v
dGlmaWNhdGlvbkNsaWVudDo6Y2FuY2VsKE5vdGlmaWNhdGlvbiopCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKK30KKwordm9pZCBXZWJOb3RpZmljYXRpb25DbGllbnQ6Om5vdGlmaWNhdGlvbk9i
amVjdERlc3Ryb3llZChXZWJDb3JlOjpOb3RpZmljYXRpb24qKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7Cit9CisKK3ZvaWQgV2ViTm90aWZpY2F0aW9uQ2xpZW50OjpyZXF1ZXN0UGVybWlzc2lv
bihXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpW
b2lkQ2FsbGJhY2s+KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViTm90
aWZpY2F0aW9uQ2xpZW50OjpjYW5jZWxSZXF1ZXN0c0ZvclBlcm1pc3Npb24oV2ViQ29yZTo6U2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworTm90
aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJtaXNzaW9uIFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6Y2hl
Y2tQZXJtaXNzaW9uKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIE5vdGlmaWNhdGlvblByZXNlbnRlcjo6UGVybWlz
c2lvbkRlbmllZDsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
Vmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCBhNDkw
YThhOTQ5MTIyYWU2N2ZmNWJjZTIzMGE0ZTRiMDVjOWZiM2FkLi43OTU0NTE1MmZhZGY3M2E1Yjk5
MWEyYTVmMTUzNWJmMTJhZDA3YTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1t
CkBAIC04Nyw2ICs4Nyw3IEBACiAjaW1wb3J0ICJXZWJOU1VSTFJlcXVlc3RFeHRyYXMuaCIKICNp
bXBvcnQgIldlYk5TVmlld0V4dHJhcy5oIgogI2ltcG9ydCAiV2ViTm9kZUhpZ2hsaWdodC5oIgor
I2ltcG9ydCAiV2ViTm90aWZpY2F0aW9uQ2xpZW50LmgiCiAjaW1wb3J0ICJXZWJQREZWaWV3Lmgi
CiAjaW1wb3J0ICJXZWJQYW5lbEF1dGhlbnRpY2F0aW9uSGFuZGxlci5oIgogI2ltcG9ydCAiV2Vi
UGxhdGZvcm1TdHJhdGVnaWVzLmgiCkBAIC03MzksNiArNzQwLDkgQEAgc3RhdGljIE5TU3RyaW5n
ICpsZWFrT3V0bG9va1F1aXJrc1VzZXJTY3JpcHRDb250ZW50cygpCiAjaWYgRU5BQkxFKENMSUVO
VF9CQVNFRF9HRU9MT0NBVElPTikKICAgICBwYWdlQ2xpZW50cy5nZW9sb2NhdGlvbkNsaWVudCA9
IG5ldyBXZWJHZW9sb2NhdGlvbkNsaWVudChzZWxmKTsKICNlbmRpZgorI2lmIEVOQUJMRShOT1RJ
RklDQVRJT05TKQorICAgIHBhZ2VDbGllbnRzLm5vdGlmaWNhdGlvbkNsaWVudCA9IG5ldyBXZWJO
b3RpZmljYXRpb25DbGllbnQoc2VsZik7CisjZW5kaWYKICNpZiBFTkFCTEUoREVWSUNFX09SSUVO
VEFUSU9OKQogICAgIHBhZ2VDbGllbnRzLmRldmljZU9yaWVudGF0aW9uQ2xpZW50ID0gbmV3IFdl
YkRldmljZU9yaWVudGF0aW9uQ2xpZW50KHNlbGYpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2Vi
cGFnZS5jcHAKaW5kZXggYWZjMmM2MDhiNjZiMzc5YzliZGI3NWU4OTEyOWMxOWViYzhmZGU3Ni4u
MjFhMzIyMjJlY2JhM2I5ZDI3OWU5MDRkNmQzOGNkMjY0ZWQ5MmU2NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQXBp
L3F3ZWJwYWdlLmNwcApAQCAtMzQ2LDYgKzM0Niw5IEBAIFFXZWJQYWdlUHJpdmF0ZTo6UVdlYlBh
Z2VQcml2YXRlKFFXZWJQYWdlICpxcSkKICAgICBlbHNlCiAgICAgICAgIHBhZ2VDbGllbnRzLmdl
b2xvY2F0aW9uQ2xpZW50ID0gbmV3IEdlb2xvY2F0aW9uQ2xpZW50UXQocSk7CiAjZW5kaWYKKyNp
ZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKKyAgICBwYWdlQ2xpZW50cy5ub3RpZmljYXRpb25DbGll
bnQgPSBOb3RpZmljYXRpb25QcmVzZW50ZXJDbGllbnRRdDo6bm90aWZpY2F0aW9uUHJlc2VudGVy
KCk7CisjZW5kaWYKICAgICBwYWdlID0gbmV3IFBhZ2UocGFnZUNsaWVudHMpOwogCiAgICAgLy8g
QnkgZGVmYXVsdCBlYWNoIHBhZ2UgaXMgcHV0IGludG8gdGhlaXIgb3duIHVuaXF1ZSBwYWdlIGdy
b3VwLCB3aGljaCBhZmZlY3RzIHBvcHVwIHdpbmRvd3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwIGIvU291cmNlL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAKaW5kZXggNGE1MTUzZjNmZDYwMWIz
MDZhZDhmOGVkNjBlZDNiODNjM2RhYmNmZS4uYjQ1YTIzM2VjMDFmMDkzNzdkNWUwY2ExOGE4ZGFm
ZjY4OTBhYzZkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRRdC5jcHAKQEAgLTQ5LDcgKzQ5LDYgQEAKICNpbmNsdWRlICJOYXZpZ2F0aW9u
QWN0aW9uLmgiCiAjaW5jbHVkZSAiTmV0d29ya2luZ0NvbnRleHQuaCIKICNpbmNsdWRlICJOb3RJ
bXBsZW1lbnRlZC5oIgotI2luY2x1ZGUgIk5vdGlmaWNhdGlvblByZXNlbnRlckNsaWVudFF0Lmgi
CiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBhZ2VDbGllbnRRdC5oIgogI2luY2x1ZGUg
IlBvcHVwTWVudVF0LmgiCkBAIC01NTcsMTMgKzU1Niw2IEBAIHZvaWQgQ2hyb21lQ2xpZW50UXQ6
OnJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoU2VjdXJpdHlPcmlnaW4qIG9yaWdp
biwKICAgICBlbWl0IG1fd2ViUGFnZS0+YXBwbGljYXRpb25DYWNoZVF1b3RhRXhjZWVkZWQoc2Vj
dXJpdHlPcmlnaW4sIGRlZmF1bHRPcmlnaW5RdW90YSwgc3RhdGljX2Nhc3Q8cXVpbnQ2ND4odG90
YWxTcGFjZU5lZWRlZCkpOwogfQogCi0jaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCi1Ob3RpZmlj
YXRpb25QcmVzZW50ZXIqIENocm9tZUNsaWVudFF0Ojpub3RpZmljYXRpb25QcmVzZW50ZXIoKSBj
b25zdAotewotICAgIHJldHVybiBOb3RpZmljYXRpb25QcmVzZW50ZXJDbGllbnRRdDo6bm90aWZp
Y2F0aW9uUHJlc2VudGVyKCk7Ci19Ci0jZW5kaWYKLQogdm9pZCBDaHJvbWVDbGllbnRRdDo6cnVu
T3BlblBhbmVsKEZyYW1lKiBmcmFtZSwgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4gcHJwRmlsZUNo
b29zZXIpCiB7CiAgICAgUmVmUHRyPEZpbGVDaG9vc2VyPiBmaWxlQ2hvb3NlciA9IHBycEZpbGVD
aG9vc2VyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJv
bWVDbGllbnRRdC5oIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRRdC5oCmluZGV4IDI4MTU5OTA0OThhZjhlMGFlYWQwNWJkZDBkZjNjODc1NzA3ZjM4ZDIuLjVl
MjYzMTMzNjMxYjg5MGU2ZjUwMGMyODVmZDU2NThiZWJkZmRmMDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmgKQEAgLTE0MiwxMCArMTQy
LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzaG93Q29udGV4dE1lbnUoKSB7IH0KICNl
bmRpZgogCi0jaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCi0gICAgdmlydHVhbCBOb3RpZmljYXRp
b25QcmVzZW50ZXIqIG5vdGlmaWNhdGlvblByZXNlbnRlcigpIGNvbnN0OwotI2VuZGlmCi0KICNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgLy8gVGhpcyBpcyBhIGhvb2sgZm9y
IFdlYkNvcmUgdG8gdGVsbCB1cyB3aGF0IHdlIG5lZWQgdG8gZG8gd2l0aCB0aGUgR3JhcGhpY3NM
YXllcnMuCiAgICAgdmlydHVhbCB2b2lkIGF0dGFjaFJvb3RHcmFwaGljc0xheWVyKEZyYW1lKiwg
R3JhcGhpY3NMYXllciopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9Ob3RpZmljYXRpb25QcmVzZW50ZXJDbGllbnRRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0
L1dlYkNvcmVTdXBwb3J0L05vdGlmaWNhdGlvblByZXNlbnRlckNsaWVudFF0LmNwcAppbmRleCBl
YzdhYmFlNTU0MjA1MzdlNTZmZDQ2YzNmM2ViMjRkY2RmNDJmMjY4Li4wZGFjYzBmZDVkM2RmMzll
NWIyOTZhMTYyZmIwOTg3NzgxZDJiMjZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L05vdGlmaWNhdGlvblByZXNlbnRlckNsaWVudFF0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L05vdGlmaWNhdGlvblByZXNlbnRlckNsaWVudFF0
LmNwcApAQCAtOTEsNyArOTEsNyBAQCBjb25zdCBRU3RyaW5nIE5vdGlmaWNhdGlvbldyYXBwZXI6
OnRpdGxlKCkgY29uc3QKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKICAgICBOb3RpZmljYXRp
b24qIG5vdGlmaWNhdGlvbiA9IE5vdGlmaWNhdGlvblByZXNlbnRlckNsaWVudFF0Ojpub3RpZmlj
YXRpb25QcmVzZW50ZXIoKS0+bm90aWZpY2F0aW9uRm9yV3JhcHBlcih0aGlzKTsKICAgICBpZiAo
bm90aWZpY2F0aW9uKQotICAgICAgICByZXR1cm4gbm90aWZpY2F0aW9uLT5jb250ZW50cygpLnRp
dGxlKCk7CisgICAgICAgIHJldHVybiBub3RpZmljYXRpb24tPmNvbnRlbnRzKCkudGl0bGU7CiAj
ZW5kaWYKICAgICByZXR1cm4gUVN0cmluZygpOwogfQpAQCAtMTAxLDcgKzEwMSw3IEBAIGNvbnN0
IFFTdHJpbmcgTm90aWZpY2F0aW9uV3JhcHBlcjo6bWVzc2FnZSgpIGNvbnN0CiAjaWYgRU5BQkxF
KE5PVElGSUNBVElPTlMpCiAgICAgTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24gPSBOb3RpZmlj
YXRpb25QcmVzZW50ZXJDbGllbnRRdDo6bm90aWZpY2F0aW9uUHJlc2VudGVyKCktPm5vdGlmaWNh
dGlvbkZvcldyYXBwZXIodGhpcyk7CiAgICAgaWYgKG5vdGlmaWNhdGlvbikKLSAgICAgICAgcmV0
dXJuIG5vdGlmaWNhdGlvbi0+Y29udGVudHMoKS5ib2R5KCk7CisgICAgICAgIHJldHVybiBub3Rp
ZmljYXRpb24tPmNvbnRlbnRzKCkuYm9keTsKICNlbmRpZgogICAgIHJldHVybiBRU3RyaW5nKCk7
CiB9CkBAIC0xOTcsOCArMTk3LDggQEAgdm9pZCBOb3RpZmljYXRpb25QcmVzZW50ZXJDbGllbnRR
dDo6ZGlzcGxheU5vdGlmaWNhdGlvbihOb3RpZmljYXRpb24qIG5vdGlmaWNhdGkKICAgICBpZiAo
bm90aWZpY2F0aW9uLT5pc0hUTUwoKSkKICAgICAgICAgbWVzc2FnZSA9IG5vdGlmaWNhdGlvbi0+
dXJsKCkuc3RyaW5nKCk7CiAgICAgZWxzZSB7Ci0gICAgICAgIHRpdGxlID0gbm90aWZpY2F0aW9u
LT5jb250ZW50cygpLnRpdGxlKCk7Ci0gICAgICAgIG1lc3NhZ2UgPSBub3RpZmljYXRpb24tPmNv
bnRlbnRzKCkuYm9keSgpOworICAgICAgICB0aXRsZSA9IG5vdGlmaWNhdGlvbi0+Y29udGVudHMo
KS50aXRsZTsKKyAgICAgICAgbWVzc2FnZSA9IG5vdGlmaWNhdGlvbi0+Y29udGVudHMoKS5ib2R5
OwogICAgIH0KIAogICAgIGlmIChtX3BsYXRmb3JtUGx1Z2luLnBsdWdpbigpICYmIG1fcGxhdGZv
cm1QbHVnaW4ucGx1Z2luKCktPnN1cHBvcnRzRXh0ZW5zaW9uKFFXZWJLaXRQbGF0Zm9ybVBsdWdp
bjo6Tm90aWZpY2F0aW9ucykpCkBAIC0yMzMsNyArMjMzLDcgQEAgdm9pZCBOb3RpZmljYXRpb25Q
cmVzZW50ZXJDbGllbnRRdDo6ZGlzcGxheU5vdGlmaWNhdGlvbihOb3RpZmljYXRpb24qIG5vdGlm
aWNhdGkKICNpZm5kZWYgUVRfTk9fU1lTVEVNVFJBWUlDT04KICAgICB3cmFwcGVyLT5jb25uZWN0
KHdyYXBwZXItPm1fbm90aWZpY2F0aW9uSWNvbi5nZXQoKSwgU0lHTkFMKG1lc3NhZ2VDbGlja2Vk
KCkpLCB3cmFwcGVyLCBTTE9UKG5vdGlmaWNhdGlvbkNsaWNrZWQoKSkpOwogICAgIHdyYXBwZXIt
Pm1fbm90aWZpY2F0aW9uSWNvbi0+c2hvdygpOwotICAgIHdyYXBwZXItPm1fbm90aWZpY2F0aW9u
SWNvbi0+c2hvd01lc3NhZ2Uobm90aWZpY2F0aW9uLT5jb250ZW50cygpLnRpdGxlKCksIG5vdGlm
aWNhdGlvbi0+Y29udGVudHMoKS5ib2R5KCkpOworICAgIHdyYXBwZXItPm1fbm90aWZpY2F0aW9u
SWNvbi0+c2hvd01lc3NhZ2Uobm90aWZpY2F0aW9uLT5jb250ZW50cygpLnRpdGxlLCBub3RpZmlj
YXRpb24tPmNvbnRlbnRzKCkuYm9keSk7CiAjZW5kaWYKIH0KIApAQCAtMjQzLDcgKzI0Myw3IEBA
IHZvaWQgTm90aWZpY2F0aW9uUHJlc2VudGVyQ2xpZW50UXQ6OmNhbmNlbChOb3RpZmljYXRpb24q
IG5vdGlmaWNhdGlvbikKICAgICAgICAgaWYgKG5vdGlmaWNhdGlvbi0+aXNIVE1MKCkpCiAgICAg
ICAgICAgICBwcmludGYoIkRFU0tUT1AgTk9USUZJQ0FUSU9OIENMT1NFRDogJXNcbiIsIFFTdHJp
bmcobm90aWZpY2F0aW9uLT51cmwoKS5zdHJpbmcoKSkudG9VdGY4KCkuY29uc3REYXRhKCkpOwog
ICAgICAgICBlbHNlCi0gICAgICAgICAgICBwcmludGYoIkRFU0tUT1AgTk9USUZJQ0FUSU9OIENM
T1NFRDogJXNcbiIsIFFTdHJpbmcobm90aWZpY2F0aW9uLT5jb250ZW50cygpLnRpdGxlKCkpLnRv
VXRmOCgpLmNvbnN0RGF0YSgpKTsKKyAgICAgICAgICAgIHByaW50ZigiREVTS1RPUCBOT1RJRklD
QVRJT04gQ0xPU0VEOiAlc1xuIiwgUVN0cmluZyhub3RpZmljYXRpb24tPmNvbnRlbnRzKCkudGl0
bGUpLnRvVXRmOCgpLmNvbnN0RGF0YSgpKTsKICAgICB9CiAKICAgICBOb3RpZmljYXRpb25zUXVl
dWU6Okl0ZXJhdG9yIGl0ZXIgPSBtX25vdGlmaWNhdGlvbnMuZmluZChub3RpZmljYXRpb24pOwpA
QCAtMjgzLDcgKzI4Myw3IEBAIHZvaWQgTm90aWZpY2F0aW9uUHJlc2VudGVyQ2xpZW50UXQ6Om5v
dGlmaWNhdGlvbkNsaWNrZWQoY29uc3QgUVN0cmluZyYgdGl0bGUpCiAgICAgICAgIGlmIChub3Rp
ZmljYXRpb24tPmlzSFRNTCgpKQogICAgICAgICAgICAgbm90aWZpY2F0aW9uVGl0bGUgPSBub3Rp
ZmljYXRpb24tPnVybCgpLnN0cmluZygpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBub3Rp
ZmljYXRpb25UaXRsZSA9IG5vdGlmaWNhdGlvbi0+Y29udGVudHMoKS50aXRsZSgpOworICAgICAg
ICAgICAgbm90aWZpY2F0aW9uVGl0bGUgPSBub3RpZmljYXRpb24tPmNvbnRlbnRzKCkudGl0bGU7
CiAgICAgICAgIGlmIChub3RpZmljYXRpb25UaXRsZSA9PSB0aXRsZSkKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICBpdGVyKys7CkBAIC00MTksNyArNDE5LDcgQEAgdm9pZCBOb3RpZmljYXRp
b25QcmVzZW50ZXJDbGllbnRRdDo6ZGV0YWNoTm90aWZpY2F0aW9uKE5vdGlmaWNhdGlvbiogbm90
aWZpY2F0aW8KIHZvaWQgTm90aWZpY2F0aW9uUHJlc2VudGVyQ2xpZW50UXQ6OmR1bXBSZXBsYWNl
ZElkVGV4dChOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbikKIHsKICAgICBpZiAobm90aWZpY2F0
aW9uKQotICAgICAgICBwcmludGYoIlJFUExBQ0lORyBOT1RJRklDQVRJT04gJXNcbiIsIG5vdGlm
aWNhdGlvbi0+aXNIVE1MKCkgPyBRU3RyaW5nKG5vdGlmaWNhdGlvbi0+dXJsKCkuc3RyaW5nKCkp
LnRvVXRmOCgpLmNvbnN0RGF0YSgpIDogUVN0cmluZyhub3RpZmljYXRpb24tPmNvbnRlbnRzKCku
dGl0bGUoKSkudG9VdGY4KCkuY29uc3REYXRhKCkpOworICAgICAgICBwcmludGYoIlJFUExBQ0lO
RyBOT1RJRklDQVRJT04gJXNcbiIsIG5vdGlmaWNhdGlvbi0+aXNIVE1MKCkgPyBRU3RyaW5nKG5v
dGlmaWNhdGlvbi0+dXJsKCkuc3RyaW5nKCkpLnRvVXRmOCgpLmNvbnN0RGF0YSgpIDogUVN0cmlu
Zyhub3RpZmljYXRpb24tPmNvbnRlbnRzKCkudGl0bGUpLnRvVXRmOCgpLmNvbnN0RGF0YSgpKTsK
IH0KIAogdm9pZCBOb3RpZmljYXRpb25QcmVzZW50ZXJDbGllbnRRdDo6ZHVtcFNob3dUZXh0KE5v
dGlmaWNhdGlvbiogbm90aWZpY2F0aW9uKQpAQCAtNDI5LDggKzQyOSw4IEBAIHZvaWQgTm90aWZp
Y2F0aW9uUHJlc2VudGVyQ2xpZW50UXQ6OmR1bXBTaG93VGV4dChOb3RpZmljYXRpb24qIG5vdGlm
aWNhdGlvbikKICAgICBlbHNlIHsKICAgICAgICAgcHJpbnRmKCJERVNLVE9QIE5PVElGSUNBVElP
TjolcyBpY29uICVzLCB0aXRsZSAlcywgdGV4dCAlc1xuIiwKICAgICAgICAgICAgICAgICBub3Rp
ZmljYXRpb24tPmRpcigpID09ICJydGwiID8gIihSVEwpIiA6ICIiLAotICAgICAgICAgICAgUVN0
cmluZyhub3RpZmljYXRpb24tPmNvbnRlbnRzKCkuaWNvbigpLnN0cmluZygpKS50b1V0ZjgoKS5j
b25zdERhdGEoKSwgUVN0cmluZyhub3RpZmljYXRpb24tPmNvbnRlbnRzKCkudGl0bGUoKSkudG9V
dGY4KCkuY29uc3REYXRhKCksCi0gICAgICAgICAgICBRU3RyaW5nKG5vdGlmaWNhdGlvbi0+Y29u
dGVudHMoKS5ib2R5KCkpLnRvVXRmOCgpLmNvbnN0RGF0YSgpKTsKKyAgICAgICAgICAgIFFTdHJp
bmcobm90aWZpY2F0aW9uLT5jb250ZW50cygpLmljb24uc3RyaW5nKCkpLnRvVXRmOCgpLmNvbnN0
RGF0YSgpLCBRU3RyaW5nKG5vdGlmaWNhdGlvbi0+Y29udGVudHMoKS50aXRsZSkudG9VdGY4KCku
Y29uc3REYXRhKCksCisgICAgICAgICAgICBRU3RyaW5nKG5vdGlmaWNhdGlvbi0+Y29udGVudHMo
KS5ib2R5KS50b1V0ZjgoKS5jb25zdERhdGEoKSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1Nv
dXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4
IDUyZjAwODZiZDQ4MzcyMjVkM2FkZWUzYTc5YWM5NDQwYmE3Y2FmNzIuLmI2YWMyYWJhMjhlYzZk
ZGZmMmE5N2Y1N2FiY2ZkOTc4ZWZmYzI0NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0Nv
bmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJLaXQy
L0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC05NCw3ICs5NCwxMCBA
QCBFTkFCTEVfTUVESUFfU1RBVElTVElDUyA9IDsKIEVOQUJMRV9NRVRFUl9UQUcgPSBFTkFCTEVf
TUVURVJfVEFHOwogRU5BQkxFX01IVE1MID0gOwogRU5BQkxFX01VVEFUSU9OX09CU0VSVkVSUyA9
IDsKLUVOQUJMRV9OT1RJRklDQVRJT05TID0gOworCitFTkFCTEVfTk9USUZJQ0FUSU9OUyA9ICQo
RU5BQkxFX05PVElGSUNBVElPTlNfJChSRUFMX1BMQVRGT1JNX05BTUUpKTsKK0VOQUJMRV9OT1RJ
RklDQVRJT05TX21hY29zeCA9IDsKKwogRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkgPSA7CiBF
TkFCTEVfUFJPR1JFU1NfVEFHID0gRU5BQkxFX1BST0dSRVNTX1RBRzsKIEVOQUJMRV9RVU9UQSA9
IDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3Vy
Y2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDE4NTMyOTZlNDZiOTJhMWJhYWVm
MmZlMGMzOWY1ZjMzYjEwOTczMGEuLjk0ZTNmM2Q5ZGNmNGIyYjhlZTMwMGMxYTgwY2NlMmYzNGMx
MmI3ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysr
IGIvU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMzIsNiArMzIsNyBAQCBW
UEFUSCA9IFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvSWNvbkRhdGFiYXNlIFwKICAgICAk
KFdlYktpdDIpL1dlYlByb2Nlc3MvS2V5VmFsdWVTdG9yYWdlIFwKICAgICAkKFdlYktpdDIpL1dl
YlByb2Nlc3MvTWVkaWFDYWNoZSBcCisgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL05vdGlmaWNh
dGlvbnMgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9QbHVnaW5zIFwKICAgICAkKFdlYktp
dDIpL1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZSBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0IFwKQEAgLTcyLDYgKzczLDcgQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBc
CiAgICAgV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5IFwKICAgICBXZWJNZWRpYUNhY2hl
TWFuYWdlciBcCiAgICAgV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eSBcCisgICAgV2ViTm90aWZp
Y2F0aW9uTWFuYWdlclByb3h5IFwKICAgICBXZWJQYWdlIFwKICAgICBXZWJQYWdlUHJveHkgXAog
ICAgIFdlYlByb2Nlc3MgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29y
ZUlQQy9NZXNzYWdlSUQuaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2Fn
ZUlELmgKaW5kZXggNDU1MWQ3ZTg0MzA3MzU0ODUyOTZlOWE5OTc5NjhkZmU0MTMwMWY3NS4uMjk2
YzIyZjI1OWZmOWEzNjMwNjQ0NTZkZWM0NTU0NDgzMzNlYzVjOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlSUQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VJRC5oCkBAIC02Nyw2ICs2Nyw3IEBAIGVudW0gTWVz
c2FnZUNsYXNzIHsKICAgICBNZXNzYWdlQ2xhc3NXZWJJbnNwZWN0b3JQcm94eSwKICAgICBNZXNz
YWdlQ2xhc3NXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHksCiAgICAgTWVzc2FnZUNsYXNz
V2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eSwKKyAgICBNZXNzYWdlQ2xhc3NXZWJOb3RpZmljYXRp
b25NYW5hZ2VyUHJveHksCiAgICAgTWVzc2FnZUNsYXNzV2ViUGFnZVByb3h5LAogICAgIE1lc3Nh
Z2VDbGFzc1dlYlByb2Nlc3NQcm94eSwKICAgICBNZXNzYWdlQ2xhc3NXZWJSZXNvdXJjZUNhY2hl
TWFuYWdlclByb3h5LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQy
L21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5
CmluZGV4IDFiYTk5MmIwOTU5NGY3MTYwZTI5YWQ2MDdjOGQxNzI3MmQzZjk3ZWMuLmQzZmE1Yjcy
ZDkxMWQ3YzZiODZjNTBjNmZhM2UzNGZiMmRmNGU4Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TY3Jp
cHRzL3dlYmtpdDIvbWVzc2FnZXMucHkKQEAgLTE3OSw2ICsxNzksNyBAQCBkZWYgc3RydWN0X29y
X2NsYXNzKG5hbWVzcGFjZSwgdHlwZSk6CiAgICAgICAgICdXZWJDb3JlOjpMZW5ndGgnLAogICAg
ICAgICAnV2ViQ29yZTo6TWF0cml4VHJhbnNmb3JtT3BlcmF0aW9uJywKICAgICAgICAgJ1dlYkNv
cmU6Ok1hdHJpeDNEVHJhbnNmb3JtT3BlcmF0aW9uJywKKyAgICAgICAgJ1dlYkNvcmU6Ok5vdGlm
aWNhdGlvbkNvbnRlbnRzJywKICAgICAgICAgJ1dlYkNvcmU6OlBlcnNwZWN0aXZlVHJhbnNmb3Jt
T3BlcmF0aW9uJywKICAgICAgICAgJ1dlYkNvcmU6OlBsdWdpbkluZm8nLAogICAgICAgICAnV2Vi
Q29yZTo6UHJpbnRJbmZvJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkv
Yy9XS0Jhc2UuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAppbmRleCBh
MWZjNzkzZmY2YjM3OWZiZGRkOTE3MDBmZTczYWVhMjEwYjZhMjQzLi42Y2Y0ZjBmMDNiNzBhODc2
NTIwYmJlMjY3YzVkOGI4MjIyYzU5MTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQVBJL2MvV0tCYXNlLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFz
ZS5oCkBAIC05NSw2ICs5NSw5IEBAIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLSW5zcGVj
dG9yKiBXS0luc3BlY3RvclJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLS2V5VmFs
dWVTdG9yYWdlTWFuYWdlciogV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUmVmOwogdHlwZWRlZiBj
b25zdCBzdHJ1Y3QgT3BhcXVlV0tNZWRpYUNhY2hlTWFuYWdlciogV0tNZWRpYUNhY2hlTWFuYWdl
clJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLTmF2aWdhdGlvbkRhdGEqIFdLTmF2
aWdhdGlvbkRhdGFSZWY7Cit0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS05vdGlmaWNhdGlv
biogV0tOb3RpZmljYXRpb25SZWY7Cit0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS05vdGlm
aWNhdGlvbk1hbmFnZXIqIFdLTm90aWZpY2F0aW9uTWFuYWdlclJlZjsKK3R5cGVkZWYgY29uc3Qg
c3RydWN0IE9wYXF1ZVdLTm90aWZpY2F0aW9uUHJvdmlkZXIqIFdLTm90aWZpY2F0aW9uUHJvdmlk
ZXJSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS09wZW5QYW5lbFBhcmFtZXRlcnMq
IFdLT3BlblBhbmVsUGFyYW1ldGVyc1JlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdL
T3BlblBhbmVsUmVzdWx0TGlzdGVuZXIqIFdLT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJSZWY7CiB0
eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1BhZ2UqIFdLUGFnZVJlZjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9BUElPYmplY3QuaAppbmRleCBiZjQzOTYwZDUxM2QyYmE3NzgzNTUxNjQ3NWM2OWNkODNkNWU2
OGQ5Li5kZWNiZGI5N2E3YzY5MTIzMDE5NGIyYzE2OWIyNTE2MzA3ZDcyNTk3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL0FQSU9iamVjdC5oCkBAIC04OSw2ICs4OSw4IEBAIHB1YmxpYzoKICAgICAgICAgVHlw
ZUtleVZhbHVlU3RvcmFnZU1hbmFnZXIsCiAgICAgICAgIFR5cGVNZWRpYUNhY2hlTWFuYWdlciwK
ICAgICAgICAgVHlwZU5hdmlnYXRpb25EYXRhLAorICAgICAgICBUeXBlTm90aWZpY2F0aW9uLAor
ICAgICAgICBUeXBlTm90aWZpY2F0aW9uTWFuYWdlciwKICAgICAgICAgVHlwZU9wZW5QYW5lbFBh
cmFtZXRlcnMsCiAgICAgICAgIFR5cGVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lciwKICAgICAgICAg
VHlwZVBhZ2UsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVXNlck1lc3NhZ2VD
b2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Vc2VyTWVzc2FnZUNvZGVycy5oCmluZGV4
IGU3NDVjMzliYjBhNzkzNDE2MjBiZjdlODA5MWUwN2U0ZGM0ODRiM2MuLjczZWU2MzU2YWQ4YTRm
YjEwZmI4NDUxMTM1M2Y3ODFjZjliODg4NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9Vc2VyTWVzc2FnZUNvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Vc2Vy
TWVzc2FnZUNvZGVycy5oCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiV2ViRGF0YS5oIgog
I2luY2x1ZGUgIldlYkdlb21ldHJ5LmgiCiAjaW5jbHVkZSAiV2ViSW1hZ2UuaCIKKyNpbmNsdWRl
ICJXZWJOb3RpZmljYXRpb24uaCIKICNpbmNsdWRlICJXZWJOdW1iZXIuaCIKICNpbmNsdWRlICJX
ZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlICJXZWJTdHJpbmcuaCIKQEAgLTU1
LDYgKzU2LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAvLyAgIC0gV2ViRGF0YSAtPiBXZWJEYXRh
CiAvLyAgIC0gV2ViRG91YmxlIC0+IFdlYkRvdWJsZQogLy8gICAtIFdlYkltYWdlIC0+IFdlYklt
YWdlCisvLyAgIC0gV2ViTm90aWZpY2F0aW9uIC0+IFdlYk5vdGlmaWNhdGlvbgogLy8gICAtIFdl
YlVJbnQ2NCAtPiBXZWJVSW50NjQKIC8vICAgLSBXZWJVUkwgLT4gV2ViVVJMCiAKQEAgLTE3Myw2
ICsxNzUsMTIgQEAgcHVibGljOgogICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKGNlcnRpZmlj
YXRlSW5mby0+cGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8oKSk7CiAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICAgICAgfQorICAgICAgICBjYXNlIEFQSU9iamVjdDo6VHlwZU5vdGlmaWNhdGlv
bjogeworICAgICAgICAgICAgV2ViTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24gPSBzdGF0aWNf
Y2FzdDxXZWJOb3RpZmljYXRpb24qPihtX3Jvb3QpOworICAgICAgICAgICAgZW5jb2Rlci0+ZW5j
b2RlKG5vdGlmaWNhdGlvbi0+dGl0bGUoKSk7CisgICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGUo
bm90aWZpY2F0aW9uLT5ib2R5KCkpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAg
IH0KICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC0y
MDEsNiArMjA5LDcgQEAgcHJvdGVjdGVkOgogLy8gICAtIFdlYkRhdGEgLT4gV2ViRGF0YQogLy8g
ICAtIFdlYkRvdWJsZSAtPiBXZWJEb3VibGUKIC8vICAgLSBXZWJJbWFnZSAtPiBXZWJJbWFnZQor
Ly8gICAtIFdlYk5vdGlmaWNhdGlvbiAtPiBXZWJOb3RpZmljYXRpb24KIC8vICAgLSBXZWJVSW50
NjQgLT4gV2ViVUludDY0CiAvLyAgIC0gV2ViVVJMIC0+IFdlYlVSTAogCkBAIC0zNzMsNiArMzgy
LDE3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIGNvZGVyLm1fcm9vdCA9IFdlYkNlcnRpZmljYXRl
SW5mbzo6Y3JlYXRlKHBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvKTsKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICB9CisgICAgICAgIGNhc2UgQVBJT2JqZWN0OjpUeXBlTm90aWZpY2F0aW9uOiB7
CisgICAgICAgICAgICBTdHJpbmcgdGl0bGU7CisgICAgICAgICAgICBpZiAoIWRlY29kZXItPmRl
Y29kZSh0aXRsZSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAg
CisgICAgICAgICAgICBTdHJpbmcgYm9keTsKKyAgICAgICAgICAgIGlmICghZGVjb2Rlci0+ZGVj
b2RlKGJvZHkpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGNv
ZGVyLm1fcm9vdCA9IFdlYk5vdGlmaWNhdGlvbjo6Y3JlYXRlKHRpdGxlLCBib2R5KTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICB9CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNv
cmVBcmd1bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmNwcAppbmRleCA4Y2UzOTRlZTk3NzIyMjhhYjBmMWViNTM3M2I3YjA5OTNhMWVi
ODI4Li41MDU0NjZjNmIwM2U1N2FhN2I4OWIwNDAxZjc2YmExNjc5MjczODY4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApAQCAtMzcsNiAr
MzcsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Lmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9HcmFwaGljc0xheWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbWFnZS5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvS1VSTC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGx1Z2luRGF0YS5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvUHJvdGVjdGlvblNwYWNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9U
ZXh0Q2hlY2tlckNsaWVudC5oPgpAQCAtNjI0LDYgKzYyNSwyMCBAQCBib29sIEFyZ3VtZW50Q29k
ZXI8RHJhZ1Nlc3Npb24+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBEcmFnU2Vz
c2lvbiYgcgogICAgIHJldHVybiB0cnVlOwogfQogCit2b2lkIEFyZ3VtZW50Q29kZXI8S1VSTD46
OmVuY29kZShBcmd1bWVudEVuY29kZXIqIGVuY29kZXIsIGNvbnN0IEtVUkwmIHJlc3VsdCkKK3sK
KyAgICBlbmNvZGVyLT5lbmNvZGUocmVzdWx0LnN0cmluZygpKTsKK30KKyAgICAKK2Jvb2wgQXJn
dW1lbnRDb2RlcjxLVVJMPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgS1VSTCYg
cmVzdWx0KQoreworICAgIFN0cmluZyB1cmxBc1N0cmluZzsKKyAgICBpZiAoIWRlY29kZXItPmRl
Y29kZSh1cmxBc1N0cmluZykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXN1bHQgPSBL
VVJMKFdlYkNvcmU6OlBhcnNlZFVSTFN0cmluZywgdXJsQXNTdHJpbmcpOworICAgIHJldHVybiB0
cnVlOworfQorCiAjaWYgUExBVEZPUk0oUVQpCiAKIHZvaWQgQXJndW1lbnRDb2RlcjxGbG9hdFBv
aW50M0Q+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyLCBjb25zdCBGbG9hdFBvaW50
M0QmIGZsb2F0UG9pbnQzRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJD
b3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1l
bnRDb2RlcnMuaAppbmRleCAwNTUwNDFmOTUwNmNjZTBlYjU3OWM1ZTlhODFhODFkZmQ2NDBhYzdm
Li42Zjk3MDBjYzUwM2NhOTdlZThiN2FiZjI0ZWRlYWU3MzM4MGJkMzZkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC00Myw2ICs0Myw4IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBJbnRSZWN0OwogICAgIGNsYXNzIEludFNp
emU7CiAgICAgY2xhc3MgS2V5ZnJhbWVWYWx1ZUxpc3Q7CisgICAgY2xhc3MgS1VSTDsKKyAgICBj
bGFzcyBOb3RpZmljYXRpb247CiAgICAgY2xhc3MgUHJvdGVjdGlvblNwYWNlOwogICAgIGNsYXNz
IFJlc291cmNlRXJyb3I7CiAgICAgY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwpAQCAtMjIxLDYgKzIy
MywxMSBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkRyYWdTZXNz
aW9uPiB7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciosIFdlYkNvcmU6
OkRyYWdTZXNzaW9uJik7CiB9OwogCit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdl
YkNvcmU6OktVUkw+IHsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyKiwg
Y29uc3QgV2ViQ29yZTo6S1VSTCYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERl
Y29kZXIqLCBXZWJDb3JlOjpLVVJMJik7Cit9OworCiAjaWYgUExBVEZPUk0oUVQpCiB0ZW1wbGF0
ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkZsb2F0UG9pbnQzRD4gewogICAgIHN0
YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXIqLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBv
aW50M0QmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJOb3RpZmljYXRp
b24uY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYk5vdGlmaWNhdGlvbi5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMWQyOGMxNGY3NWQ1ZWI1YzRiYjZmMjJkZTk5MGNkZjJlN2RhYjA4ZgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJOb3RpZmljYXRpb24uY3BwCkBAIC0w
LDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
V2ViTm90aWZpY2F0aW9uLmgiCisKKyNpbmNsdWRlICJBcmd1bWVudENvZGVycy5oIgorI2luY2x1
ZGUgIkFyZ3VtZW50RGVjb2Rlci5oIgorI2luY2x1ZGUgIkFyZ3VtZW50RW5jb2Rlci5oIgorI2lu
Y2x1ZGUgIkFyZ3VtZW50cy5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViTm90aWZpY2F0
aW9uOjpXZWJOb3RpZmljYXRpb24oKQoreworfQorCitXZWJOb3RpZmljYXRpb246OldlYk5vdGlm
aWNhdGlvbihjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBTdHJpbmcmIGJvZHkpCisgICAgOiBt
X3RpdGxlKHRpdGxlKQorICAgICwgbV9ib2R5KGJvZHkpCit7Cit9CisKK1dlYk5vdGlmaWNhdGlv
bjo6fldlYk5vdGlmaWNhdGlvbigpCit7Cit9CisKK3ZvaWQgV2ViTm90aWZpY2F0aW9uOjplbmNv
ZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29k
ZXItPmVuY29kZShDb3JlSVBDOjpJbihtX3RpdGxlLCBtX2JvZHkpKTsKK30KKworYm9vbCBXZWJO
b3RpZmljYXRpb246OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIFdl
Yk5vdGlmaWNhdGlvbiYgbm90aWZpY2F0aW9uKQoreworICAgIHJldHVybiBkZWNvZGVyLT5kZWNv
ZGUoQ29yZUlQQzo6T3V0KG5vdGlmaWNhdGlvbi5tX3RpdGxlLCBub3RpZmljYXRpb24ubV9ib2R5
KSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYk5vdGlmaWNhdGlvbi5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYk5v
dGlmaWNhdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU2ODQ5ZGY1MmU4YzNiNjI1ZWI2OWMyMzVhMjVmNDcx
N2Y5ODdiYTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTm90
aWZpY2F0aW9uLmgKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViTm90
aWZpY2F0aW9uX2gKKyNkZWZpbmUgV2ViTm90aWZpY2F0aW9uX2gKKworI2luY2x1ZGUgIkFQSU9i
amVjdC5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBDb3JlSVBDIHsKKworY2xhc3MgQXJndW1lbnREZWNv
ZGVyOworY2xhc3MgQXJndW1lbnRFbmNvZGVyOworCit9IC8vIG5hbWVzcGFjZSBDb3JlSVBDCisK
K25hbWVzcGFjZSBXZWJLaXQgeworICAgIAorY2xhc3MgV2ViTm90aWZpY2F0aW9uIDogcHVibGlj
IEFQSU9iamVjdCB7CitwdWJsaWM6CisgICAgc3RhdGljIGNvbnN0IFR5cGUgQVBJVHlwZSA9IFR5
cGVOb3RpZmljYXRpb247CisgICAgCisgICAgV2ViTm90aWZpY2F0aW9uKCk7CisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8V2ViTm90aWZpY2F0aW9uPiBjcmVhdGUoY29uc3QgU3RyaW5nJiB0aXRsZSwg
Y29uc3QgU3RyaW5nJiBib2R5KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBX
ZWJOb3RpZmljYXRpb24odGl0bGUsIGJvZHkpKTsKKyAgICB9CisgICAgdmlydHVhbCB+V2ViTm90
aWZpY2F0aW9uKCk7CisgICAgCisgICAgY29uc3QgU3RyaW5nJiB0aXRsZSgpIGNvbnN0IHsgcmV0
dXJuIG1fdGl0bGU7IH0KKyAgICAKKyAgICBjb25zdCBTdHJpbmcmIGJvZHkoKSBjb25zdCB7IHJl
dHVybiBtX2JvZHk7IH0KKworICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rl
ciopIGNvbnN0OworICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29k
ZXIqLCBXZWJOb3RpZmljYXRpb24mKTsKKworcHJpdmF0ZToKKyAgICBXZWJOb3RpZmljYXRpb24o
Y29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiBib2R5KTsKKworICAgIHZpcnR1YWwg
VHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQorICAgIAorICAgIFN0cmluZyBt
X3RpdGxlOworICAgIFN0cmluZyBtX2JvZHk7Cit9OworICAgIAorfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CisKKyNlbmRpZiAvLyBXZWJOb3RpZmljYXRpb25faApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCmluZGV4IGYzYTFkMDVjZmU1MTIyNGRhNTEyZmY1NWUxYzhk
YTBkMDdmZTNiZWIuLjk3NzdjMWFjYWY0OGM5MGZmNDRlM2Y5NWMyYmM1YWRhMmMzNWIyZDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKQEAgLTcyLDYgKzcy
LDkgQEAgY2xhc3MgV2ViSW5zcGVjdG9yUHJveHk7CiBjbGFzcyBXZWJLZXlWYWx1ZVN0b3JhZ2VN
YW5hZ2VyUHJveHk7CiBjbGFzcyBXZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5OwogY2xhc3MgV2Vi
TmF2aWdhdGlvbkRhdGE7CitjbGFzcyBXZWJOb3RpZmljYXRpb247CitjbGFzcyBXZWJOb3RpZmlj
YXRpb25Qcm92aWRlcjsKK2NsYXNzIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTsKIGNsYXNz
IFdlYk9wZW5QYW5lbFBhcmFtZXRlcnM7CiBjbGFzcyBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5l
clByb3h5OwogY2xhc3MgV2ViUGFnZUdyb3VwOwpAQCAtMTA0LDYgKzEwNyw5IEBAIFdLX0FERF9B
UElfTUFQUElORyhXS0ljb25EYXRhYmFzZVJlZiwgV2ViSWNvbkRhdGFiYXNlKQogV0tfQUREX0FQ
SV9NQVBQSU5HKFdLS2V5VmFsdWVTdG9yYWdlTWFuYWdlclJlZiwgV2ViS2V5VmFsdWVTdG9yYWdl
TWFuYWdlclByb3h5KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLTWVkaWFDYWNoZU1hbmFnZXJSZWYs
IFdlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHkpCiBXS19BRERfQVBJX01BUFBJTkcoV0tOYXZpZ2F0
aW9uRGF0YVJlZiwgV2ViTmF2aWdhdGlvbkRhdGEpCitXS19BRERfQVBJX01BUFBJTkcoV0tOb3Rp
ZmljYXRpb25NYW5hZ2VyUmVmLCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkpCitXS19BRERf
QVBJX01BUFBJTkcoV0tOb3RpZmljYXRpb25Qcm92aWRlclJlZiwgV2ViTm90aWZpY2F0aW9uUHJv
dmlkZXIpCitXS19BRERfQVBJX01BUFBJTkcoV0tOb3RpZmljYXRpb25SZWYsIFdlYk5vdGlmaWNh
dGlvbikKIFdLX0FERF9BUElfTUFQUElORyhXS09wZW5QYW5lbFBhcmFtZXRlcnNSZWYsIFdlYk9w
ZW5QYW5lbFBhcmFtZXRlcnMpCiBXS19BRERfQVBJX01BUFBJTkcoV0tPcGVuUGFuZWxSZXN1bHRM
aXN0ZW5lclJlZiwgV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eSkKIFdLX0FERF9BUElf
TUFQUElORyhXS1BhZ2VHcm91cFJlZiwgV2ViUGFnZUdyb3VwKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcAppbmRleCA0NTgwM2NiZGVkY2VkNGU1NGI1Y2Vh
MjIzZWU5MDAzZDc5N2E3YzVhLi5jZWY4OTc3MTQ0MzliNjZhYWY3Nzc4MjAyN2NmNjU5MTRjZGRk
NzcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcApA
QCAtMTk1LDYgKzE5NSwxMSBAQCBXS01lZGlhQ2FjaGVNYW5hZ2VyUmVmIFdLQ29udGV4dEdldE1l
ZGlhQ2FjaGVNYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0UmVmKQogICAgIHJldHVybiB0b0FQ
SSh0b0ltcGwoY29udGV4dFJlZiktPm1lZGlhQ2FjaGVNYW5hZ2VyUHJveHkoKSk7CiB9CiAKK1dL
Tm90aWZpY2F0aW9uTWFuYWdlclJlZiBXS0NvbnRleHRHZXROb3RpZmljYXRpb25NYW5hZ2VyKFdL
Q29udGV4dFJlZiBjb250ZXh0UmVmKQoreworICAgIHJldHVybiB0b0FQSSh0b0ltcGwoY29udGV4
dFJlZiktPm5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eSgpKTsKK30KKwogV0tQbHVnaW5TaXRlRGF0
YU1hbmFnZXJSZWYgV0tDb250ZXh0R2V0UGx1Z2luU2l0ZURhdGFNYW5hZ2VyKFdLQ29udGV4dFJl
ZiBjb250ZXh0UmVmKQogewogICAgIHJldHVybiB0b0FQSSh0b0ltcGwoY29udGV4dFJlZiktPnBs
dWdpblNpdGVEYXRhTWFuYWdlcigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS0NvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S0NvbnRleHQuaAppbmRleCAxMWY5YWNkNjAwOTc0MTFhOTEzZjBhMWRiNDQ2NjRiM2Q5MzM4MzA2
Li5mMGFlNTk0NTY0MzcxMWExMDllNjM3MjZlYWI4Zjk3ODRhMDcyODBkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmgKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oCkBAIC0xNDgsNiArMTQ4LDcgQEAgV0tf
RVhQT1JUIFdLR2VvbG9jYXRpb25NYW5hZ2VyUmVmIFdLQ29udGV4dEdldEdlb2xvY2F0aW9uTWFu
YWdlcihXS0NvbnRleHRSZWYgY28KIFdLX0VYUE9SVCBXS0ljb25EYXRhYmFzZVJlZiBXS0NvbnRl
eHRHZXRJY29uRGF0YWJhc2UoV0tDb250ZXh0UmVmIGNvbnRleHQpOwogV0tfRVhQT1JUIFdLS2V5
VmFsdWVTdG9yYWdlTWFuYWdlclJlZiBXS0NvbnRleHRHZXRLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2Vy
KFdLQ29udGV4dFJlZiBjb250ZXh0KTsKIFdLX0VYUE9SVCBXS01lZGlhQ2FjaGVNYW5hZ2VyUmVm
IFdLQ29udGV4dEdldE1lZGlhQ2FjaGVNYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKK1dL
X0VYUE9SVCBXS05vdGlmaWNhdGlvbk1hbmFnZXJSZWYgV0tDb250ZXh0R2V0Tm90aWZpY2F0aW9u
TWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4dCk7CiBXS19FWFBPUlQgV0tQbHVnaW5TaXRlRGF0
YU1hbmFnZXJSZWYgV0tDb250ZXh0R2V0UGx1Z2luU2l0ZURhdGFNYW5hZ2VyKFdLQ29udGV4dFJl
ZiBjb250ZXh0KTsKIFdLX0VYUE9SVCBXS1Jlc291cmNlQ2FjaGVNYW5hZ2VyUmVmIFdLQ29udGV4
dEdldFJlc291cmNlQ2FjaGVNYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKICAgICAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNhdGlvbi5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tOb3RpZmljYXRpb24uY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmE5M2FmZTgyOTFhYzFmZWRkNjVjZWM5YWM0ODA0MzNjNzljYzI0YmIKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tOb3RpZmljYXRp
b24uY3BwCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiV0tOb3RpZmljYXRpb24uaCIKKworI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgor
I2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbi5oIgorI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbk1h
bmFnZXJQcm94eS5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCitXS1R5cGVJRCBXS05v
dGlmaWNhdGlvbkdldFR5cGVJRCgpCit7CisgICAgcmV0dXJuIHRvQVBJKFdlYk5vdGlmaWNhdGlv
bjo6QVBJVHlwZSk7Cit9CisKK1dLU3RyaW5nUmVmIFdLTm90aWZpY2F0aW9uQ29weVRpdGxlKFdL
Tm90aWZpY2F0aW9uUmVmIG5vdGlmaWNhdGlvbikKK3sKKyAgICByZXR1cm4gdG9Db3BpZWRBUEko
dG9JbXBsKG5vdGlmaWNhdGlvbiktPnRpdGxlKCkpOworfQorCitXS1N0cmluZ1JlZiBXS05vdGlm
aWNhdGlvbkNvcHlCb2R5KFdLTm90aWZpY2F0aW9uUmVmIG5vdGlmaWNhdGlvbikKK3sKKyAgICBy
ZXR1cm4gdG9Db3BpZWRBUEkodG9JbXBsKG5vdGlmaWNhdGlvbiktPmJvZHkoKSk7Cit9CisKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNhdGlvbi5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9uLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZjQxZjJjYmI2NTI1MDZiNjUwOWJjNmMyOGIzNTZjNGFlYWFhZWUwNwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNhdGlvbi5o
CkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdLTm90aWZpY2F0aW9uX2gK
KyNkZWZpbmUgV0tOb3RpZmljYXRpb25faAorCisjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4K
KworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCitXS19FWFBPUlQg
V0tUeXBlSUQgV0tOb3RpZmljYXRpb25HZXRUeXBlSUQoKTsKKworV0tfRVhQT1JUIFdLU3RyaW5n
UmVmIFdLTm90aWZpY2F0aW9uQ29weVRpdGxlKFdLTm90aWZpY2F0aW9uUmVmKTsKK1dLX0VYUE9S
VCBXS1N0cmluZ1JlZiBXS05vdGlmaWNhdGlvbkNvcHlCb2R5KFdLTm90aWZpY2F0aW9uUmVmKTsK
KyAgICAKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRpZiAvLyBXS05vdGlm
aWNhdGlvbl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tO
b3RpZmljYXRpb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S05vdGlmaWNhdGlvbk1hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEwMTJkZjE0NzI4YzA5MGUyNGQ0
NjQ2OWM3YjM1NjMwZTU5ZGVhM2IKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tOb3RpZmljYXRpb25NYW5hZ2VyLmNwcApAQCAtMCwwICsxLDQxIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldLTm90aWZpY2F0
aW9uTWFuYWdlci5oIgorCisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisjaW5jbHVkZSAiV2ViTm90
aWZpY2F0aW9uTWFuYWdlclByb3h5LmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKK1dL
VHlwZUlEIFdLTm90aWZpY2F0aW9uTWFuYWdlckdldFR5cGVJRCgpCit7CisgICAgcmV0dXJuIHRv
QVBJKFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6QVBJVHlwZSk7Cit9Cit2b2lkIFdLTm90
aWZpY2F0aW9uTWFuYWdlclNldFByb3ZpZGVyKFdLTm90aWZpY2F0aW9uTWFuYWdlclJlZiBtYW5h
Z2VyUmVmLCBjb25zdCBXS05vdGlmaWNhdGlvblByb3ZpZGVyKiB3a1Byb3ZpZGVyKQoreworICAg
IHRvSW1wbChtYW5hZ2VyUmVmKS0+aW5pdGlhbGl6ZVByb3ZpZGVyKHdrUHJvdmlkZXIpOworfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9u
TWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9u
TWFuYWdlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkwODFhYjdkZjNiMzRjZDdkMDEzMjA1ZTJlNzJjN2QzZGVm
ZmZkNGUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tOb3RpZmljYXRpb25NYW5hZ2VyLmgKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
Zm5kZWYgV0tOb3RpZmljYXRpb25NYW5hZ2VyX2gKKyNkZWZpbmUgV0tOb3RpZmljYXRpb25NYW5h
Z2VyX2gKKworI2luY2x1ZGUgIldLTm90aWZpY2F0aW9uUHJvdmlkZXIuaCIKKyNpbmNsdWRlIDxX
ZWJLaXQyL1dLQmFzZS5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2Vu
ZGlmCisKK1dLX0VYUE9SVCBXS1R5cGVJRCBXS05vdGlmaWNhdGlvbk1hbmFnZXJHZXRUeXBlSUQo
KTsKK1dLX0VYUE9SVCB2b2lkIFdLTm90aWZpY2F0aW9uTWFuYWdlclNldFByb3ZpZGVyKFdLTm90
aWZpY2F0aW9uTWFuYWdlclJlZiwgY29uc3QgV0tOb3RpZmljYXRpb25Qcm92aWRlciopOworCisj
aWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLy8gV0tOb3RpZmljYXRpb25N
YW5hZ2VyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS05v
dGlmaWNhdGlvblByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tO
b3RpZmljYXRpb25Qcm92aWRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRiYzNlZmE5NzU5MzE0MDdmMTZlYzZj
OGJmZDdkMTRlOGUyNzBhNTQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tOb3RpZmljYXRpb25Qcm92aWRlci5oCkBAIC0wLDAgKzEsNTMgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIFdLTm90aWZpY2F0aW9uUHJvdmlkZXJfaAorI2RlZmluZSBXS05v
dGlmaWNhdGlvblByb3ZpZGVyX2gKKworI2luY2x1ZGUgPFdlYktpdDIvV0tCYXNlLmg+CisKKyNp
ZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKwordHlwZWRlZiB2b2lkICgq
V0tOb3RpZmljYXRpb25Qcm92aWRlclNob3dDYWxsYmFjaykoV0tOb3RpZmljYXRpb25SZWYsIGNv
bnN0IHZvaWQqIGNsaWVudEluZm8pOwordHlwZWRlZiB2b2lkICgqV0tOb3RpZmljYXRpb25Qcm92
aWRlckNhbmNlbENhbGxiYWNrKShXS05vdGlmaWNhdGlvblJlZiwgY29uc3Qgdm9pZCogY2xpZW50
SW5mbyk7CisKK3N0cnVjdCBXS05vdGlmaWNhdGlvblByb3ZpZGVyIHsKKyAgICBpbnQgdmVyc2lv
bjsKKyAgICBjb25zdCB2b2lkKiBjbGllbnRJbmZvOworICAgIFdLTm90aWZpY2F0aW9uUHJvdmlk
ZXJTaG93Q2FsbGJhY2sgc2hvdzsKKyAgICBXS05vdGlmaWNhdGlvblByb3ZpZGVyQ2FuY2VsQ2Fs
bGJhY2sgY2FuY2VsOworfTsKK3R5cGVkZWYgc3RydWN0IFdLTm90aWZpY2F0aW9uUHJvdmlkZXIg
V0tOb3RpZmljYXRpb25Qcm92aWRlcjsKKworZW51bSB7IGtXS05vdGlmaWNhdGlvblByb3ZpZGVy
Q3VycmVudFZlcnNpb24gPSAwIH07CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisK
KworI2VuZGlmIC8vIFdLTm90aWZpY2F0aW9uUHJvdmlkZXJfaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYkNvbnRleHQuY3BwCmluZGV4IDljNGJhOWU1NGQ3Nzc2OWRiYTQwMThiMzMzNDNjY2U2
ZTYwNjlhZTguLjI3YjllZjMyNTUyZDRlOWNhNWZiZDBkMmIxNWVjNjA5ZDMyZmVkMzcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKQEAgLTQ2LDYgKzQ2LDcgQEAKICNp
bmNsdWRlICJXZWJJY29uRGF0YWJhc2UuaCIKICNpbmNsdWRlICJXZWJLZXlWYWx1ZVN0b3JhZ2VN
YW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJXZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5LmgiCisj
aW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViUGx1
Z2luU2l0ZURhdGFNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiV2ViUGFnZUdyb3VwLmgiCiAjaW5jbHVk
ZSAiV2ViTWVtb3J5U2FtcGxlci5oIgpAQCAtMTMxLDYgKzEzMiw3IEBAIFdlYkNvbnRleHQ6Oldl
YkNvbnRleHQoUHJvY2Vzc01vZGVsIHByb2Nlc3NNb2RlbCwgY29uc3QgU3RyaW5nJiBpbmplY3Rl
ZEJ1bmRsZVBhCiAgICAgLCBtX2ljb25EYXRhYmFzZShXZWJJY29uRGF0YWJhc2U6OmNyZWF0ZSh0
aGlzKSkKICAgICAsIG1fa2V5VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5KFdlYktleVZhbHVlU3Rv
cmFnZU1hbmFnZXJQcm94eTo6Y3JlYXRlKHRoaXMpKQogICAgICwgbV9tZWRpYUNhY2hlTWFuYWdl
clByb3h5KFdlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHk6OmNyZWF0ZSh0aGlzKSkKKyAgICAsIG1f
bm90aWZpY2F0aW9uTWFuYWdlclByb3h5KFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6Y3Jl
YXRlKHRoaXMpKQogICAgICwgbV9wbHVnaW5TaXRlRGF0YU1hbmFnZXIoV2ViUGx1Z2luU2l0ZURh
dGFNYW5hZ2VyOjpjcmVhdGUodGhpcykpCiAgICAgLCBtX3Jlc291cmNlQ2FjaGVNYW5hZ2VyUHJv
eHkoV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eTo6Y3JlYXRlKHRoaXMpKQogI2lmIFBMQVRG
T1JNKFdJTikKQEAgLTE4MSw2ICsxODMsOSBAQCBXZWJDb250ZXh0Ojp+V2ViQ29udGV4dCgpCiAK
ICAgICBtX21lZGlhQ2FjaGVNYW5hZ2VyUHJveHktPmludmFsaWRhdGUoKTsKICAgICBtX21lZGlh
Q2FjaGVNYW5hZ2VyUHJveHktPmNsZWFyQ29udGV4dCgpOworICAgIAorICAgIG1fbm90aWZpY2F0
aW9uTWFuYWdlclByb3h5LT5pbnZhbGlkYXRlKCk7CisgICAgbV9ub3RpZmljYXRpb25NYW5hZ2Vy
UHJveHktPmNsZWFyQ29udGV4dCgpOwogCiAgICAgbV9wbHVnaW5TaXRlRGF0YU1hbmFnZXItPmlu
dmFsaWRhdGUoKTsKICAgICBtX3BsdWdpblNpdGVEYXRhTWFuYWdlci0+Y2xlYXJDb250ZXh0KCk7
CkBAIC0zNjksNiArMzc0LDcgQEAgdm9pZCBXZWJDb250ZXh0OjpkaXNjb25uZWN0UHJvY2VzcyhX
ZWJQcm9jZXNzUHJveHkqIHByb2Nlc3MpCiAgICAgbV9nZW9sb2NhdGlvbk1hbmFnZXJQcm94eS0+
aW52YWxpZGF0ZSgpOwogICAgIG1fa2V5VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5LT5pbnZhbGlk
YXRlKCk7CiAgICAgbV9tZWRpYUNhY2hlTWFuYWdlclByb3h5LT5pbnZhbGlkYXRlKCk7CisgICAg
bV9ub3RpZmljYXRpb25NYW5hZ2VyUHJveHktPmludmFsaWRhdGUoKTsKICAgICBtX3Jlc291cmNl
Q2FjaGVNYW5hZ2VyUHJveHktPmludmFsaWRhdGUoKTsKIAogICAgIC8vIFdoZW4gb3V0IG9mIHBy
b2Nlc3MgcGx1Zy1pbnMgYXJlIGVuYWJsZWQsIHdlIGRvbid0IHdhbnQgdG8gaW52YWxpZGF0ZSB0
aGUgcGx1Zy1pbiBzaXRlIGRhdGEKQEAgLTY5NSw2ICs3MDEsMTEgQEAgdm9pZCBXZWJDb250ZXh0
OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3Jl
SVBDOjpNZXMKICAgICAgICAgbV9tZWRpYUNhY2hlTWFuYWdlclByb3h5LT5kaWRSZWNlaXZlTWVz
c2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CisgICAgCisgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NX
ZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk+KCkpIHsKKyAgICAgICAgbV9ub3RpZmljYXRpb25N
YW5hZ2VyUHJveHktPmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJn
dW1lbnRzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KIAogICAgIGlmIChtZXNzYWdlSUQuaXM8
Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eT4oKSkgewog
ICAgICAgICBtX3Jlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHktPmRpZFJlY2VpdmVXZWJSZXNvdXJj
ZUNhY2hlTWFuYWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50
cyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaAppbmRleCBjNTdhNjdiYzdmOTE4
MzUwZWJiZjk2YTc3NTg3YjhhOGJjYmY5MGUxLi43MDQyODVlZWU3NWZjMTZjMGI1M2M5ZmJiMGY3
NmY1MTMyNGViM2UyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29u
dGV4dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmgKQEAgLTU0
LDYgKzU0LDcgQEAgY2xhc3MgV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHk7CiBjbGFzcyBXZWJJ
Y29uRGF0YWJhc2U7CiBjbGFzcyBXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHk7CiBjbGFz
cyBXZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5OworY2xhc3MgV2ViTm90aWZpY2F0aW9uTWFuYWdl
clByb3h5OwogY2xhc3MgV2ViUGFnZUdyb3VwOwogY2xhc3MgV2ViUGFnZVByb3h5OwogY2xhc3Mg
V2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eTsKQEAgLTE1Nyw2ICsxNTgsNyBAQCBwdWJsaWM6
CiAgICAgV2ViSWNvbkRhdGFiYXNlKiBpY29uRGF0YWJhc2UoKSBjb25zdCB7IHJldHVybiBtX2lj
b25EYXRhYmFzZS5nZXQoKTsgfQogICAgIFdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eSog
a2V5VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5KCkgY29uc3QgeyByZXR1cm4gbV9rZXlWYWx1ZVN0
b3JhZ2VNYW5hZ2VyUHJveHkuZ2V0KCk7IH0KICAgICBXZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5
KiBtZWRpYUNhY2hlTWFuYWdlclByb3h5KCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYUNhY2hlTWFu
YWdlclByb3h5LmdldCgpOyB9CisgICAgV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5KiBub3Rp
ZmljYXRpb25NYW5hZ2VyUHJveHkoKSBjb25zdCB7IHJldHVybiBtX25vdGlmaWNhdGlvbk1hbmFn
ZXJQcm94eS5nZXQoKTsgfQogICAgIFdlYlBsdWdpblNpdGVEYXRhTWFuYWdlciogcGx1Z2luU2l0
ZURhdGFNYW5hZ2VyKCkgY29uc3QgeyByZXR1cm4gbV9wbHVnaW5TaXRlRGF0YU1hbmFnZXIuZ2V0
KCk7IH0KICAgICBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5KiByZXNvdXJjZUNhY2hlTWFu
YWdlclByb3h5KCkgY29uc3QgeyByZXR1cm4gbV9yZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5Lmdl
dCgpOyB9CiAKQEAgLTI4Miw2ICsyODQsNyBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxXZWJJY29u
RGF0YWJhc2U+IG1faWNvbkRhdGFiYXNlOwogICAgIFJlZlB0cjxXZWJLZXlWYWx1ZVN0b3JhZ2VN
YW5hZ2VyUHJveHk+IG1fa2V5VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5OwogICAgIFJlZlB0cjxX
ZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5PiBtX21lZGlhQ2FjaGVNYW5hZ2VyUHJveHk7CisgICAg
UmVmUHRyPFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eT4gbV9ub3RpZmljYXRpb25NYW5hZ2Vy
UHJveHk7CiAgICAgUmVmUHRyPFdlYlBsdWdpblNpdGVEYXRhTWFuYWdlcj4gbV9wbHVnaW5TaXRl
RGF0YU1hbmFnZXI7CiAgICAgUmVmUHRyPFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHk+IG1f
cmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5j
MmIwY2Q3NjA5OTc4ZTM1OTFmMzFiOWQ1MTU1YjMzNTkyYWM5NzY3Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5j
cHAKQEAgLTAsMCArMSw3NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaCIKKworI2luY2x1ZGUgIldlYkNv
bnRleHQuaCIKKyNpbmNsdWRlICJXZWJOb3RpZmljYXRpb24uaCIKKyNpbmNsdWRlIDxXZWJDb3Jl
L05vdGlmaWNhdGlvbkNvbnRlbnRzLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXVEY7Cit1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1Bhc3NSZWZQdHI8V2Vi
Tm90aWZpY2F0aW9uTWFuYWdlclByb3h5PiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OmNy
ZWF0ZShXZWJDb250ZXh0KiBjb250ZXh0KQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2Vi
Tm90aWZpY2F0aW9uTWFuYWdlclByb3h5KGNvbnRleHQpKTsKK30KKworV2ViTm90aWZpY2F0aW9u
TWFuYWdlclByb3h5OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkoV2ViQ29udGV4dCogY29u
dGV4dCkKKyAgICA6IG1fY29udGV4dChjb250ZXh0KQoreworfQorCitXZWJOb3RpZmljYXRpb25N
YW5hZ2VyUHJveHk6On5XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkoKQoreworfQorCit2b2lk
IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6aW52YWxpZGF0ZSgpCit7Cit9CisKK3ZvaWQg
V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5Ojppbml0aWFsaXplUHJvdmlkZXIoY29uc3QgV0tO
b3RpZmljYXRpb25Qcm92aWRlciAqcHJvdmlkZXIpCit7CisgICAgbV9wcm92aWRlci5pbml0aWFs
aXplKHByb3ZpZGVyKTsKK30KKwordm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OmRp
ZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6
Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRz
KQoreworICAgIGRpZFJlY2VpdmVXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHlNZXNzYWdlKGNv
bm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKK30KKwordm9pZCBXZWJOb3RpZmljYXRp
b25NYW5hZ2VyUHJveHk6OnNob3coY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiBi
b2R5LCB1aW50NjRfdCBub3RpZmljYXRpb25JRCkKK3sKKyAgICBSZWZQdHI8V2ViTm90aWZpY2F0
aW9uPiBub3RpZmljYXRpb24gPSBXZWJOb3RpZmljYXRpb246OmNyZWF0ZSh0aXRsZSwgYm9keSk7
CisgICAgbV9wcm92aWRlci5zaG93KG5vdGlmaWNhdGlvbi5nZXQoKSk7Cit9CisKK3ZvaWQgV2Vi
Tm90aWZpY2F0aW9uTWFuYWdlclByb3h5OjpjYW5jZWwodWludDY0X3Qgbm90aWZpY2F0aW9uSUQp
Cit7CisgICAgbV9wcm92aWRlci5jYW5jZWwoMCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5vdGlmaWNhdGlvbk1h
bmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5vdGlmaWNhdGlvbk1h
bmFnZXJQcm94eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNjNzc5YjlmZWJkZDQ2MmM1NjE3ZjMzMDNmZGM4ZGQ5
Y2E3NGYzOWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
Tm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmgKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZm5kZWYgV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5X2gKKyNkZWZpbmUgV2ViTm90aWZp
Y2F0aW9uTWFuYWdlclByb3h5X2gKKworI2luY2x1ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1ZGUg
Ik1lc3NhZ2VJRC5oIgorI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmgiCisjaW5j
bHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKworbmFtZXNwYWNlIENvcmVJUEMgeworY2xhc3MgQXJn
dW1lbnREZWNvZGVyOworY2xhc3MgQ29ubmVjdGlvbjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK2NsYXNzIFdlYkNvbnRleHQ7CisKK2NsYXNzIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94
eSA6IHB1YmxpYyBBUElPYmplY3QgeworcHVibGljOgorICAgIHN0YXRpYyBjb25zdCBUeXBlIEFQ
SVR5cGUgPSBUeXBlTm90aWZpY2F0aW9uTWFuYWdlcjsKKyAgICAKKyAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk+IGNyZWF0ZShXZWJDb250ZXh0Kik7Cisg
ICAgdmlydHVhbCB+V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5KCk7CisgICAgCisgICAgdm9p
ZCBpbnZhbGlkYXRlKCk7CisgICAgdm9pZCBjbGVhckNvbnRleHQoKSB7IG1fY29udGV4dCA9IDA7
IH0KKworICAgIHZvaWQgaW5pdGlhbGl6ZVByb3ZpZGVyKGNvbnN0IFdLTm90aWZpY2F0aW9uUHJv
dmlkZXIqKTsKKyAgICAKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwor
Citwcml2YXRlOgorICAgIGV4cGxpY2l0IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eShXZWJD
b250ZXh0Kik7CisgICAgCisgICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBB
UElUeXBlOyB9CisgICAgCisgICAgdm9pZCBkaWRSZWNlaXZlV2ViTm90aWZpY2F0aW9uTWFuYWdl
clByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICAKKyAgICAvLyBNZXNzYWdlIGhhbmRsZXJz
CisgICAgdm9pZCBzaG93KGNvbnN0IFdURjo6U3RyaW5nJiB0aXRsZSwgY29uc3QgV1RGOjpTdHJp
bmcmIGJvZHksIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKTsKKyAgICB2b2lkIGNhbmNlbCh1aW50
NjRfdCBub3RpZmljYXRpb25JRCk7CisgICAgCisgICAgV2ViQ29udGV4dCogbV9jb250ZXh0Owor
ICAgIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyIG1fcHJvdmlkZXI7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eV9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9uTWFuYWdl
clByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5vdGlmaWNh
dGlvbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNzY3OGE0YjIzNWRkNDVl
NzE2MmY0ZDI3MjdiNzdhYTVmYjgwNDRiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAt
MCwwICsxLDI2IEBACisjIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4g
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAg
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElN
UExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK21l
c3NhZ2VzIC0+IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eSB7CisgICAgU2hvdyhXVEY6OlN0
cmluZyB0aXRsZSwgV1RGOjpTdHJpbmcgYm9keSwgdWludDY0X3Qgbm90aWZpY2F0aW9uSUQpOwor
ICAgIENhbmNlbCh1aW50NjRfdCBub3RpZmljYXRpb25JRCk7Cit9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5mN2FjNWU3ODdkNmJjMjYzN2ZmMDczNzQxMTA1MGM2MjBlNzQ5ZmM5Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmNw
cApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIldlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmgiCisKKyNpbmNsdWRlICJXS0FQSUNhc3Qu
aCIKKyNpbmNsdWRlICJXZWJOb3RpZmljYXRpb24uaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K3ZvaWQgV2ViTm90aWZpY2F0aW9uUHJvdmlkZXI6OnNob3coV2ViTm90aWZpY2F0aW9uKiBub3Rp
ZmljYXRpb24pCit7CisgICAgaWYgKCFtX2NsaWVudC5zaG93KQorICAgICAgICByZXR1cm47Cisg
ICAgCisgICAgbV9jbGllbnQuc2hvdyh0b0FQSShub3RpZmljYXRpb24pLCBtX2NsaWVudC5jbGll
bnRJbmZvKTsKK30KKwordm9pZCBXZWJOb3RpZmljYXRpb25Qcm92aWRlcjo6Y2FuY2VsKFdlYk5v
dGlmaWNhdGlvbiogbm90aWZpY2F0aW9uKQoreworICAgIGlmICghbV9jbGllbnQuY2FuY2VsKQor
ICAgICAgICByZXR1cm47CisgICAgCisgICAgbV9jbGllbnQuY2FuY2VsKHRvQVBJKG5vdGlmaWNh
dGlvbiksIG1fY2xpZW50LmNsaWVudEluZm8pOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOb3RpZmljYXRpb25Qcm92
aWRlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5vdGlmaWNhdGlvblByb3ZpZGVy
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZWIyYmY0N2ViYmMxNWQzMGRkMTM4MThmNjljNDMzZGJlZTI4YzVhMgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOb3RpZmljYXRp
b25Qcm92aWRlci5oCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYk5v
dGlmaWNhdGlvblByb3ZpZGVyX2gKKyNkZWZpbmUgV2ViTm90aWZpY2F0aW9uUHJvdmlkZXJfaAor
CisjaW5jbHVkZSAiQVBJQ2xpZW50LmgiCisjaW5jbHVkZSAiV0tOb3RpZmljYXRpb25Qcm92aWRl
ci5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitj
bGFzcyBXZWJOb3RpZmljYXRpb247CisgICAgCitjbGFzcyBXZWJOb3RpZmljYXRpb25Qcm92aWRl
ciA6IHB1YmxpYyBBUElDbGllbnQ8V0tOb3RpZmljYXRpb25Qcm92aWRlciwga1dLTm90aWZpY2F0
aW9uUHJvdmlkZXJDdXJyZW50VmVyc2lvbj4geworcHVibGljOgorICAgIHZvaWQgc2hvdyhXZWJO
b3RpZmljYXRpb24qKTsKKyAgICB2b2lkIGNhbmNlbChXZWJOb3RpZmljYXRpb24qKTsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViTm90aWZpY2F0aW9uUHJvdmlk
ZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRl
eCAwNWVmN2MxZjgwMTRmMzY2ZDFiMzNkZjY0M2M0YzU2M2IzY2Y5YTQ2Li44NmJiYWE2Y2FjMjEw
M2Y0NTE1MzE5ZWE4YWNjMmRjZjkzNDkxYjlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtMzAyLDYgKzMwMiw3IEBAIHZvaWQgV2ViUHJvY2Vz
c1Byb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9u
LCBDb3JlSVBDCiAgICAgICAgIHx8IG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NX
ZWJJY29uRGF0YWJhc2U+KCkKICAgICAgICAgfHwgbWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3Nh
Z2VDbGFzc1dlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eT4oKQogICAgICAgICB8fCBtZXNz
YWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eT4o
KQorICAgICAgICB8fCBtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViTm90aWZp
Y2F0aW9uTWFuYWdlclByb3h5PigpCiAgICAgICAgIHx8IG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpN
ZXNzYWdlQ2xhc3NXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5PigpKSB7CiAgICAgICAgIG1f
Y29udGV4dC0+ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVu
dHMpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQy
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNTFhOTFmODVlMzY4N2I0MDVjYTAxZDk2NTJmMzA3
ODkwMDc5MDg5ZS4uZThmM2I0YjEyNTk0ZmY3MTgzMjFjMzAzNmVhOGViMzlmZDFmMzlhMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMjQ2LDYgKzI0NiwyMiBAQAogCQkxQ0E4Qjk1NDEyN0M4OTE1MDA1NzZDMkIgLyogV2ViSW5z
cGVjdG9yTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMUM4RTJEQUQxMjc4QzVCMjAwQkM3QkQwIC8qIFdlYkluc3BlY3Rvck1hYy5tbSAqLzsgfTsK
IAkJMjlDRDU1QUExMjhFMjk0RjAwMTMzQzg1IC8qIFdLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmpl
Y3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5Q0Q1
NUE4MTI4RTI5NEYwMDEzM0M4NSAvKiBXS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0LmggKi87
IH07CiAJCTI5Q0Q1NUFCMTI4RTI5NEYwMDEzM0M4NSAvKiBXS0FjY2Vzc2liaWxpdHlXZWJQYWdl
T2JqZWN0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MjlDRDU1QTkxMjhFMjk0RjAwMTMzQzg1IC8qIFdLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3Qu
bW0gKi87IH07CisJCTMxMDk5OTZGMTQ2Qzc0MUQwMDI5REVCOSAvKiBXZWJOb3RpZmljYXRpb25N
YW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDMxMDk5OTZBMTQ2QzczOTIwMDI5REVCOSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJv
eHkuaCAqLzsgfTsKKwkJMzEwOTk5NzAxNDZDNzQyMDAwMjlERUI5IC8qIFdlYk5vdGlmaWNhdGlv
bk1hbmFnZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAzMTA5OTk2QjE0NkM3M0IxMDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdl
clByb3h5LmNwcCAqLzsgfTsKKwkJMzEwOTk5NzMxNDZDNzVBMjAwMjlERUI5IC8qIFdlYk5vdGlm
aWNhdGlvbkNsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAzMTA5OTk3MTE0NkM3NTlCMDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uQ2xpZW50
LmNwcCAqLzsgfTsKKwkJMzEwOTk5N0ExNDZDOEIxNDAwMjlERUI5IC8qIFdlYk5vdGlmaWNhdGlv
bk1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMzEwOTk5NzgxNDZDOEIxNDAwMjlERUI5IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3Bw
ICovOyB9OworCQkzMTA5OTk3QjE0NkM4QjE0MDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uTWFu
YWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEw
OTk5NzkxNDZDOEIxNDAwMjlERUI5IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXIuaCAqLzsgfTsK
KwkJMzEwOTk5QzcxNDZDOUUzRDAwMjlERUI5IC8qIFdlYk5vdGlmaWNhdGlvbkNsaWVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEwOTk5NjgxNDZD
NzFGNTAwMjlERUI5IC8qIFdlYk5vdGlmaWNhdGlvbkNsaWVudC5oICovOyB9OworCQkzMTJDMEM0
NzE0NkREQkJEMDAxNkM5MTEgLyogV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEyQzBDNDYxNDZEREJCQzAw
MTZDOTExIC8qIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcCAqLzsgfTsKKwkJMzEyQzBDNEEx
NDZEREM4QTAwMTZDOTExIC8qIFdLTm90aWZpY2F0aW9uUHJvdmlkZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMkMwQzQ5MTQ2RERDOEEwMDE2Qzkx
MSAvKiBXS05vdGlmaWNhdGlvblByb3ZpZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMzE3OTJBNTQxNDcyRjc0MjAwM0Y4MzFBIC8qIFdlYk5v
dGlmaWNhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAzMTc5MkE1MjE0NzJGNzQwMDAzRjgzMUEgLyogV2ViTm90aWZpY2F0aW9uLmNwcCAqLzsg
fTsKKwkJMzE3OTJBNTUxNDcyRjc0MjAwM0Y4MzFBIC8qIFdlYk5vdGlmaWNhdGlvbi5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE3OTJBNTMxNDcyRjc0
MTAwM0Y4MzFBIC8qIFdlYk5vdGlmaWNhdGlvbi5oICovOyB9OworCQkzMThCRTE2NzE0NzM0MzM3
MDBBOEZCQjIgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxOEJFMTY1
MTQ3MzQzMzcwMEE4RkJCMiAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHlNZXNzYWdlUmVj
ZWl2ZXIuY3BwICovOyB9OworCQkzMThCRTE2ODE0NzM0MzM3MDBBOEZCQjIgLyogV2ViTm90aWZp
Y2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDMxOEJFMTY2MTQ3MzQzMzcwMEE4RkJCMiAvKiBXZWJOb3RpZmlj
YXRpb25NYW5hZ2VyUHJveHlNZXNzYWdlcy5oICovOyB9OworCQkzMThCRTE3MTE0NzQzREIxMDBB
OEZCQjIgLyogV0tOb3RpZmljYXRpb25NYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMThCRTE3MDE0NzQzREIxMDBBOEZCQjIgLyogV0tOb3Rp
ZmljYXRpb25NYW5hZ2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJMzE4QkUxNzUxNDc0M0RENzAwQThGQkIyIC8qIFdLTm90aWZpY2F0aW9uTWFu
YWdlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAz
MThCRTE3NDE0NzQzREQ2MDBBOEZCQjIgLyogV0tOb3RpZmljYXRpb25NYW5hZ2VyLmNwcCAqLzsg
fTsKKwkJMzE4QkUxNzcxNDc0M0U2MDAwQThGQkIyIC8qIFdLTm90aWZpY2F0aW9uLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxOEJFMTc2MTQ3NDNF
NjAwMEE4RkJCMiAvKiBXS05vdGlmaWNhdGlvbi5jcHAgKi87IH07CisJCTMxOEJFMTc5MTQ3NDNF
NkYwMEE4RkJCMiAvKiBXS05vdGlmaWNhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMzE4QkUxNzgxNDc0M0U2QTAwQThGQkIyIC8qIFdLTm90aWZp
Y2F0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJMzFFQTI1RDIxMzRGNzhDMDAwNUIxNDUyIC8qIE5hdGl2ZVdlYk1vdXNlRXZlbnRNYWMubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUVBMjVEMDEz
NEY3OEIyMDA1QjE0NTIgLyogTmF0aXZlV2ViTW91c2VFdmVudE1hYy5tbSAqLzsgfTsKIAkJMzMw
OTM0NDcxMzE1QjkyMjAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzMwOTM0
NDMxMzE1QjkyMjAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
ICovOyB9OwogCQkzMzA5MzQ0ODEzMTVCOTIyMDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlck1l
c3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAz
MzA5MzQ0NDEzMTVCOTIyMDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlck1lc3NhZ2VzLmggKi87
IH07CkBAIC0xMjAwLDYgKzEyMTYsMjQgQEAKIAkJMUNBOEI5NDQxMjdDODgyQTAwNTc2QzJCIC8q
IFdlYkluc3BlY3RvclByb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkyOUNENTVBODEyOEUyOTRGMDAxMzNDODUgLyogV0tBY2Nlc3NpYmlsaXR5V2ViUGFn
ZU9iamVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0FjY2Vzc2liaWxp
dHlXZWJQYWdlT2JqZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5Q0Q1NUE5
MTI4RTI5NEYwMDEzM0M4NSAvKiBXS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0Lm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tBY2Nlc3NpYmlsaXR5V2ViUGFn
ZU9iamVjdC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzEwOTk5NjgxNDZDNzFG
NTAwMjlERUI5IC8qIFdlYk5vdGlmaWNhdGlvbkNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJO
b3RpZmljYXRpb25DbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzEwOTk5
NkExNDZDNzM5MjAwMjlERUI5IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMzEwOTk5NkIxNDZDNzNCMTAwMjlERUI5IC8qIFdlYk5vdGlmaWNhdGlv
bk1hbmFnZXJQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBX
ZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkzMTA5OTk2RDE0NkM3M0M0MDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlclBy
b3h5Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYk5vdGlmaWNhdGlvbk1h
bmFnZXJQcm94eS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzEw
OTk5NzExNDZDNzU5QjAwMjlERUI5IC8qIFdlYk5vdGlmaWNhdGlvbkNsaWVudC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJOb3RpZmljYXRpb25DbGllbnQuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMTA5OTk3ODE0NkM4QjE0MDAyOURFQjkg
LyogV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBXZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcDsgcGF0aCA9IE5vdGlmaWNhdGlv
bnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTMxMDk5OTc5MTQ2QzhCMTQwMDI5REVCOSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXIu
aDsgcGF0aCA9IE5vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkzMTJDMEM0NjE0NkREQkJDMDAxNkM5MTEgLyogV2ViTm90
aWZpY2F0aW9uUHJvdmlkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkzMTJDMEM0ODE0NkREQkQzMDAxNkM5MTEgLyogV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMzEyQzBDNDkxNDZEREM4QTAwMTZDOTExIC8qIFdLTm90aWZpY2F0
aW9uUHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tOb3RpZmlj
YXRpb25Qcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMTc5MkE1MjE0
NzJGNzQwMDAzRjgzMUEgLyogV2ViTm90aWZpY2F0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdlYk5vdGlmaWNhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTMxNzkyQTUzMTQ3MkY3NDEwMDNGODMxQSAvKiBXZWJOb3RpZmljYXRpb24u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViTm90aWZpY2F0aW9uLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxOEJFMTY1MTQ3MzQzMzcwMEE4RkJCMiAvKiBX
ZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzE4QkUxNjYx
NDczNDMzNzAwQThGQkIyIC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eU1lc3NhZ2VzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQ
cm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxOEJFMTcwMTQ3
NDNEQjEwMEE4RkJCMiAvKiBXS05vdGlmaWNhdGlvbk1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV0tOb3RpZmljYXRpb25NYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTMxOEJFMTc0MTQ3NDNERDYwMEE4RkJCMiAvKiBXS05vdGlmaWNhdGlv
bk1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tOb3Rp
ZmljYXRpb25NYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzE4QkUx
NzYxNDc0M0U2MDAwQThGQkIyIC8qIFdLTm90aWZpY2F0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLTm90aWZpY2F0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMzE4QkUxNzgxNDc0M0U2QTAwQThGQkIyIC8qIFdLTm90aWZpY2F0aW9u
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdLTm90aWZpY2F0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTMxRUEyNUQwMTM0Rjc4QjIwMDVCMTQ1MiAvKiBOYXRpdmVXZWJNb3VzZUV2ZW50
TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTmF0aXZlV2ViTW91c2VFdmVudE1hYy5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzFFQTI1RDMxMzRGNzhENjAwNUIxNDUyIC8q
IE5hdGl2ZVdlYk1vdXNlRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
TmF0aXZlV2ViTW91c2VFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMkRC
Q0Y1RTAzNzBBREVFMDBDOTE3ODMgLyogV2ViS2l0MlByZWZpeC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXZWJLaXQyUHJlZml4Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0yMjk2LDYgKzIzMzAsOCBAQAogCQkJCTkwNTYyMEU5MTJCQzI0OEIwMDA3OTlCNiAv
KiBXZWJNZW1vcnlTYW1wbGVyLmggKi8sCiAJCQkJQzAzMzdEQUYxMjdBMjhEMDAwOEZGNEY0IC8q
IFdlYk1vdXNlRXZlbnQuY3BwICovLAogCQkJCUJDRjY5Rjk4MTE3NkNFRDYwMDQ3MUE1MiAvKiBX
ZWJOYXZpZ2F0aW9uRGF0YVN0b3JlLmggKi8sCisJCQkJMzE3OTJBNTIxNDcyRjc0MDAwM0Y4MzFB
IC8qIFdlYk5vdGlmaWNhdGlvbi5jcHAgKi8sCisJCQkJMzE3OTJBNTMxNDcyRjc0MTAwM0Y4MzFB
IC8qIFdlYk5vdGlmaWNhdGlvbi5oICovLAogCQkJCUJDMzNERDY3MTIzODQ2NDYwMDM2MEYzRiAv
KiBXZWJOdW1iZXIuaCAqLywKIAkJCQlCQzg1N0ZCNDEyQjgzMEU2MDBFREVCMkUgLyogV2ViT3Bl
blBhbmVsUGFyYW1ldGVycy5jcHAgKi8sCiAJCQkJQkM4NTdGQjMxMkI4MzBFNjAwRURFQjJFIC8q
IFdlYk9wZW5QYW5lbFBhcmFtZXRlcnMuaCAqLywKQEAgLTI0MjYsNiArMjQ2MiwxNSBAQAogCQkJ
cGF0aCA9IG1hYzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTMxMDk5OTc0
MTQ2QzhBQTgwMDI5REVCOSAvKiBOb3RpZmljYXRpb25zIChVc2VyKSAqLyA9IHsKKwkJCWlzYSA9
IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJMzEwOTk5NzgxNDZDOEIxNDAwMjlERUI5
IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwICovLAorCQkJCTMxMDk5OTc5MTQ2QzhCMTQw
MDI5REVCOSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyLmggKi8sCisJCQkpOworCQkJbmFtZSA9
ICJOb3RpZmljYXRpb25zIChVc2VyKSI7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9
OwogCQkzMkM4OERGRjAzNzFDMjQyMDBDOTE3ODMgLyogT3RoZXIgU291cmNlcyAqLyA9IHsKIAkJ
CWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0yNTkzLDYgKzI2MzgsNyBAQAog
CQkJCTUxQTlFMEZCMTMxNUNDMEUwMDlFNzAzMSAvKiBLZXlWYWx1ZVN0b3JhZ2UgKi8sCiAJCQkJ
MUE2RkEwMUMxMUUxNTI2MzAwREIxMzcxIC8qIG1hYyAqLywKIAkJCQkzM0QzQTNCRDEzMzk2MDk4
MDA3MDlCRTQgLyogTWVkaWFDYWNoZSAqLywKKwkJCQkzMTA5OTk3NDE0NkM4QUE4MDAyOURFQjkg
LyogTm90aWZpY2F0aW9ucyAoVXNlcikgKi8sCiAJCQkJMUE2RkI3QUExMUU2NEI0OTAwREIxMzcx
IC8qIFBsdWdpbnMgKi8sCiAJCQkJMzMzNjc2MkIxMzBDOTk3ODAwNkM5REUyIC8qIFJlc291cmNl
Q2FjaGUgKi8sCiAJCQkJQkMwMzJENUQxMEY0MzcyMjAwNThDMTVBIC8qIFdlYkNvcmVTdXBwb3J0
ICovLApAQCAtMjYzMiw2ICsyNjc4LDggQEAKIAkJCQlCQzAzMkQ2RDEwRjQzNzhEMDA1OEMxNUEg
LyogV2ViSW5zcGVjdG9yQ2xpZW50LmggKi8sCiAJCQkJMUM4RTI1NkIxMjcwREUzODAwQkM3QkQw
IC8qIFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50LmNwcCAqLywKIAkJCQkxQzhFMjU2QTEyNzBE
RTM4MDBCQzdCRDAgLyogV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQuaCAqLywKKwkJCQkzMTA5
OTk3MTE0NkM3NTlCMDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcCAqLywKKwkJ
CQkzMTA5OTk2ODE0NkM3MUY1MDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uQ2xpZW50LmggKi8s
CiAJCQkJMUEzRTczNjAxMUNDMjY1OTAwN0JENTM5IC8qIFdlYlBsYXRmb3JtU3RyYXRlZ2llcy5j
cHAgKi8sCiAJCQkJMUEzRTczNUYxMUNDMjY1OTAwN0JENTM5IC8qIFdlYlBsYXRmb3JtU3RyYXRl
Z2llcy5oICovLAogCQkJCUQzQjk0ODQyMTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJQb3B1cE1lbnUu
Y3BwICovLApAQCAtMjc4Miw2ICsyODMwLDExIEBACiAJCQkJMzNEM0EzQjkxMzM5NjA2MjAwNzA5
QkU0IC8qIFdlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gKi8sCiAJCQkJQkNG
NjlGQTExMTc2RDAxNDAwNDcxQTUyIC8qIFdlYk5hdmlnYXRpb25EYXRhLmNwcCAqLywKIAkJCQlC
Q0Y2OUZBMDExNzZEMDE0MDA0NzFBNTIgLyogV2ViTmF2aWdhdGlvbkRhdGEuaCAqLywKKwkJCQkz
MTA5OTk2QjE0NkM3M0IxMDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNw
cCAqLywKKwkJCQkzMTA5OTk2QTE0NkM3MzkyMDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uTWFu
YWdlclByb3h5LmggKi8sCisJCQkJMzEwOTk5NkQxNDZDNzNDNDAwMjlERUI5IC8qIFdlYk5vdGlm
aWNhdGlvbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiAqLywKKwkJCQkzMTJDMEM0NjE0NkREQkJD
MDAxNkM5MTEgLyogV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwICovLAorCQkJCTMxMkMwQzQ4
MTQ2RERCRDMwMDE2QzkxMSAvKiBXZWJOb3RpZmljYXRpb25Qcm92aWRlci5oICovLAogCQkJCUJD
MURGRUEzMTJCMzFGODcwMDVERjczMCAvKiBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5
LmNwcCAqLywKIAkJCQlCQzFERkVBMjEyQjMxRjg3MDA1REY3MzAgLyogV2ViT3BlblBhbmVsUmVz
dWx0TGlzdGVuZXJQcm94eS5oICovLAogCQkJCTUxNTM1NjlBMTI5MUIxRDIwMDA3NDlEQyAvKiBX
ZWJQYWdlQ29udGV4dE1lbnVDbGllbnQuY3BwICovLApAQCAtMjg3Niw2ICsyOTI5LDExIEBACiAJ
CQkJQzA5QUU1RTgxMjUyNTdDMjAwMjU4MjVEIC8qIFdLTmF0aXZlRXZlbnQuaCAqLywKIAkJCQlC
Q0Y2OUZBODExNzZEMUNCMDA0NzFBNTIgLyogV0tOYXZpZ2F0aW9uRGF0YS5jcHAgKi8sCiAJCQkJ
QkNGNjlGQTcxMTc2RDFDQjAwNDcxQTUyIC8qIFdLTmF2aWdhdGlvbkRhdGEuaCAqLywKKwkJCQkz
MThCRTE3NjE0NzQzRTYwMDBBOEZCQjIgLyogV0tOb3RpZmljYXRpb24uY3BwICovLAorCQkJCTMx
OEJFMTc4MTQ3NDNFNkEwMEE4RkJCMiAvKiBXS05vdGlmaWNhdGlvbi5oICovLAorCQkJCTMxOEJF
MTc0MTQ3NDNERDYwMEE4RkJCMiAvKiBXS05vdGlmaWNhdGlvbk1hbmFnZXIuY3BwICovLAorCQkJ
CTMxOEJFMTcwMTQ3NDNEQjEwMEE4RkJCMiAvKiBXS05vdGlmaWNhdGlvbk1hbmFnZXIuaCAqLywK
KwkJCQkzMTJDMEM0OTE0NkREQzhBMDAxNkM5MTEgLyogV0tOb3RpZmljYXRpb25Qcm92aWRlci5o
ICovLAogCQkJCUJDODU3RkU1MTJCODQzRDgwMEVERUIyRSAvKiBXS09wZW5QYW5lbFBhcmFtZXRl
cnMuY3BwICovLAogCQkJCUJDODU3RkU0MTJCODQzRDgwMEVERUIyRSAvKiBXS09wZW5QYW5lbFBh
cmFtZXRlcnMuaCAqLywKIAkJCQlCQzFERkU4RTEyQjMxQ0E4MDA1REY3MzAgLyogV0tPcGVuUGFu
ZWxSZXN1bHRMaXN0ZW5lci5jcHAgKi8sCkBAIC0zNDQ1LDYgKzM1MDMsOCBAQAogCQkJCTMzRDNB
M0M1MTMzOTYxNzkwMDcwOUJFNCAvKiBXZWJNZWRpYUNhY2hlTWFuYWdlck1lc3NhZ2VzLmggKi8s
CiAJCQkJMzNEM0EzQzYxMzM5NjE3OTAwNzA5QkU0IC8qIFdlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJv
eHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTMzRDNBM0M3MTMzOTYxNzkwMDcwOUJFNCAv
KiBXZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5TWVzc2FnZXMuaCAqLywKKwkJCQkzMThCRTE2NTE0
NzM0MzM3MDBBOEZCQjIgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZVJlY2Vp
dmVyLmNwcCAqLywKKwkJCQkzMThCRTE2NjE0NzM0MzM3MDBBOEZCQjIgLyogV2ViTm90aWZpY2F0
aW9uTWFuYWdlclByb3h5TWVzc2FnZXMuaCAqLywKIAkJCQlDMENFNzI5RTEyNDdFNzFEMDBCQzBF
QzQgLyogV2ViUGFnZU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJQzBDRTcyOUYxMjQ3RTcx
RDAwQkMwRUM0IC8qIFdlYlBhZ2VNZXNzYWdlcy5oICovLAogCQkJCUJDQkQzOTEyMTI1QkIxQTgw
MEQyQzI5RiAvKiBXZWJQYWdlUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLApAQCAtMzk2Niw2
ICs0MDI2LDE0IEBACiAJCQkJQkM0QTYyOTIxNDczMTJCRTAwNkM2ODFBIC8qIFdlYkNvbm5lY3Rp
b25DbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNEE2Mjk3MTQ3MzEzQTAwMDZDNjgxQSAv
KiBXS0Nvbm5lY3Rpb25SZWYuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3ODhBMDVDMTQ3NDNDOTAw
MDYzMTlFNSAvKiBXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXJQcml2YXRlLmggaW4gSGVhZGVy
cyAqLywKKwkJCQkzMTA5OTk2RjE0NkM3NDFEMDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uTWFu
YWdlclByb3h5LmggaW4gSGVhZGVycyAqLywKKwkJCQkzMTA5OTk3QjE0NkM4QjE0MDAyOURFQjkg
LyogV2ViTm90aWZpY2F0aW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzEwOTk5Qzcx
NDZDOUUzRDAwMjlERUI5IC8qIFdlYk5vdGlmaWNhdGlvbkNsaWVudC5oIGluIEhlYWRlcnMgKi8s
CisJCQkJMzEyQzBDNEExNDZEREM4QTAwMTZDOTExIC8qIFdLTm90aWZpY2F0aW9uUHJvdmlkZXIu
aCBpbiBIZWFkZXJzICovLAorCQkJCTMxNzkyQTU1MTQ3MkY3NDIwMDNGODMxQSAvKiBXZWJOb3Rp
ZmljYXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTMxOEJFMTY4MTQ3MzQzMzcwMEE4RkJCMiAv
KiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMzE4QkUxNzExNDc0M0RCMTAwQThGQkIyIC8qIFdLTm90aWZpY2F0aW9uTWFuYWdlci5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJMzE4QkUxNzkxNDc0M0U2RjAwQThGQkIyIC8qIFdLTm90aWZpY2F0
aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rw
cm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTQ2NjYsNiArNDczNCwxNCBAQAogCQkJCUJDNEE2MjhG
MTQ3MzEyQkUwMDZDNjgxQSAvKiBXZWJDb25uZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUJDNEE2MjkxMTQ3MzEyQkUwMDZDNjgxQSAvKiBXZWJDb25uZWN0aW9uQ2xpZW50LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUJDNEE2Mjk2MTQ3MzEzQTAwMDZDNjgxQSAvKiBXS0Nvbm5lY3Rpb25S
ZWYuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMzEwOTk5NzAxNDZDNzQyMDAwMjlERUI5IC8qIFdl
Yk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkzMTA5OTk3
MzE0NkM3NUEyMDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTMxMDk5OTdBMTQ2QzhCMTQwMDI5REVCOSAvKiBXZWJOb3RpZmljYXRpb25NYW5h
Z2VyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTMxMkMwQzQ3MTQ2RERCQkQwMDE2QzkxMSAvKiBX
ZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkzMTc5MkE1NDE0
NzJGNzQyMDAzRjgzMUEgLyogV2ViTm90aWZpY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTMxOEJFMTY3MTQ3MzQzMzcwMEE4RkJCMiAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHlN
ZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMzE4QkUxNzUxNDc0M0RENzAw
QThGQkIyIC8qIFdLTm90aWZpY2F0aW9uTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkz
MThCRTE3NzE0NzQzRTYwMDBBOEZCQjIgLyogV0tOb3RpZmljYXRpb24uY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJ
CX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMv
V2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05v
dGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWQ3NjNk
NTExOWE2MDc3YTA1NWUyYmRiNmE5NzBkMTRlMWEyNDM5ZgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5h
Z2VyLmNwcApAQCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbk1hbmFnZXIuaCIKKworI2lmIEVOQUJMRShOT1RJ
RklDQVRJT05TKQorI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eU1lc3NhZ2Vz
LmgiCisjZW5kaWYKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5o
IgorI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQorI2luY2x1ZGUgPFdlYkNvcmUvTm90aWZpY2F0
aW9uLmg+CisjZW5kaWYKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworICAgIAorV2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6V2ViTm90aWZpY2F0aW9uTWFu
YWdlcihXZWJQcm9jZXNzKiBwcm9jZXNzKQorICAgIDogbV9wcm9jZXNzKHByb2Nlc3MpCit7IH0K
KworV2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6fldlYk5vdGlmaWNhdGlvbk1hbmFnZXIoKQorewor
fQorCitib29sIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OnNob3coTm90aWZpY2F0aW9uKiBub3Rp
ZmljYXRpb24sIFdlYlBhZ2UqIHBhZ2UpCit7CisjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCisg
ICAgbV9wcm9jZXNzLT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYk5vdGlmaWNhdGlv
bk1hbmFnZXJQcm94eTo6U2hvdyhub3RpZmljYXRpb24tPmNvbnRlbnRzKCkudGl0bGUsIG5vdGlm
aWNhdGlvbi0+Y29udGVudHMoKS5ib2R5LCAwKSwgcGFnZS0+cGFnZUlEKCkpOworI2VuZGlmCisg
ICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6Y2FuY2Vs
KE5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uLCBXZWJQYWdlKiBwYWdlKQoreworI2lmIEVOQUJM
RShOT1RJRklDQVRJT05TKQorICAgIG1fcHJvY2Vzcy0+Y29ubmVjdGlvbigpLT5zZW5kKE1lc3Nh
Z2VzOjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OkNhbmNlbCgwKSwgcGFnZS0+cGFnZUlE
KCkpOworI2VuZGlmCit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFn
ZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmlj
YXRpb25NYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDAzM2FlMzhiNTI5OTAwMGRhZjg4OGMzZjRkZWUx
ZGVjNjc1ZmNiYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
Tm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmgKQEAgLTAsMCArMSw1NSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgV2ViTm90aWZpY2F0aW9uTWFuYWdlcl9oCisjZGVmaW5lIFdl
Yk5vdGlmaWNhdGlvbk1hbmFnZXJfaAorCisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIE5vdGlmaWNhdGlvbjsgICAgCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQYWdlOworY2xh
c3MgV2ViUHJvY2VzczsKKworY2xhc3MgV2ViTm90aWZpY2F0aW9uTWFuYWdlciB7CisgICAgV1RG
X01BS0VfTk9OQ09QWUFCTEUoV2ViTm90aWZpY2F0aW9uTWFuYWdlcik7CitwdWJsaWM6CisgICAg
ZXhwbGljaXQgV2ViTm90aWZpY2F0aW9uTWFuYWdlcihXZWJQcm9jZXNzKik7CisgICAgfldlYk5v
dGlmaWNhdGlvbk1hbmFnZXIoKTsKKworICAgIGJvb2wgc2hvdyhXZWJDb3JlOjpOb3RpZmljYXRp
b24qLCBXZWJQYWdlKik7CisgICAgdm9pZCBjYW5jZWwoV2ViQ29yZTo6Tm90aWZpY2F0aW9uKiwg
V2ViUGFnZSopOworCitwcml2YXRlOgorICAgIFdlYlByb2Nlc3MqIG1fcHJvY2VzczsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApp
bmRleCA3NTYzZmYzZjkxYWU4ODM4NmZhMzUxNjdjZDEzMmZhMzNkNGQzODE3Li5lOThiOTc2ZWM4
Njc3NjhlMTk5MjZhYzE0NjJlMDdhNDE1YzAxZjZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3Bw
CkBAIC02OTMsMTMgKzY5Myw2IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzY2hlZHVsZUNvbXBv
c2l0aW5nTGF5ZXJTeW5jKCkKIAogI2VuZGlmCiAKLSNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykK
LVdlYkNvcmU6Ok5vdGlmaWNhdGlvblByZXNlbnRlciogV2ViQ2hyb21lQ2xpZW50Ojpub3RpZmlj
YXRpb25QcmVzZW50ZXIoKSBjb25zdAotewotICAgIHJldHVybiAwOwotfQotI2VuZGlmCi0KICNp
ZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogdm9pZCBXZWJDaHJvbWVDbGllbnQ6Om5lZWRUb3VjaEV2
ZW50cyhib29sIG5lZWRUb3VjaEV2ZW50cykKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IGE4
MDMxYzNjMzg0YjgzNjNmNDczM2U5MDA3ZWQ4ODE0ZWVjNzhhOTMuLmI1NzBiMzdkNjA3NGYyYjVh
MTEwMWYxMDkxMzNiNjJmNDM5YjQ1YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMTgzLDEw
ICsxODMsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZUNvbXBvc2l0aW5n
TGF5ZXJTeW5jKCkgT1ZFUlJJREU7CiAjZW5kaWYKIAotI2lmIEVOQUJMRShOT1RJRklDQVRJT05T
KQotICAgIHZpcnR1YWwgV2ViQ29yZTo6Tm90aWZpY2F0aW9uUHJlc2VudGVyKiBub3RpZmljYXRp
b25QcmVzZW50ZXIoKSBjb25zdCBPVkVSUklERTsKLSNlbmRpZgotCiAjaWYgRU5BQkxFKFRPVUNI
X0VWRU5UUykKICAgICB2aXJ0dWFsIHZvaWQgbmVlZFRvdWNoRXZlbnRzKGJvb2wpIE9WRVJSSURF
OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MDU3MTdmZmRjZDBmNjQxNjIyNWQ4ODQzYmZjNzg4MjlkZmU1MTIxZAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0
aW9uQ2xpZW50LmNwcApAQCAtMCwwICsxLDkwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbkNsaWVudC5oIgorCisjaWYgRU5BQkxF
KE5PVElGSUNBVElPTlMpCisKKyNpbmNsdWRlICJXZWJOb3RpZmljYXRpb25NYW5hZ2VyLmgiCisj
aW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQu
aD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitX
ZWJOb3RpZmljYXRpb25DbGllbnQ6OldlYk5vdGlmaWNhdGlvbkNsaWVudChXZWJQYWdlKiBwYWdl
KQorICAgIDogbV9wYWdlKHBhZ2UpCit7Cit9CisKK1dlYk5vdGlmaWNhdGlvbkNsaWVudDo6fldl
Yk5vdGlmaWNhdGlvbkNsaWVudCgpCit7Cit9CisKK2Jvb2wgV2ViTm90aWZpY2F0aW9uQ2xpZW50
OjpzaG93KE5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uKQoreworI2lmIEVOQUJMRShOT1RJRklD
QVRJT05TKQorICAgIHJldHVybiBXZWJQcm9jZXNzOjpzaGFyZWQoKS5ub3RpZmljYXRpb25NYW5h
Z2VyKCkuc2hvdyhub3RpZmljYXRpb24sIG1fcGFnZSk7CisjZWxzZQorICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCit9CisKK3ZvaWQgV2ViTm90aWZpY2F0
aW9uQ2xpZW50OjpjYW5jZWwoTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24pCit7CisjaWYgRU5B
QkxFKE5PVElGSUNBVElPTlMpCisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkubm90aWZpY2F0aW9u
TWFuYWdlcigpLmNhbmNlbChub3RpZmljYXRpb24sIG1fcGFnZSk7CisjZWxzZQorICAgIG5vdElt
cGxlbWVudGVkKCk7CisjZW5kaWYKK30KKwordm9pZCBXZWJOb3RpZmljYXRpb25DbGllbnQ6Om5v
dGlmaWNhdGlvbk9iamVjdERlc3Ryb3llZChOb3RpZmljYXRpb24qKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViTm90aWZpY2F0aW9uQ2xpZW50OjpyZXF1ZXN0UGVybWlz
c2lvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxWb2lkQ2FsbGJhY2s+KQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViTm90aWZpY2F0aW9uQ2xpZW50
OjpjYW5jZWxSZXF1ZXN0c0ZvclBlcm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworTm90aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJt
aXNzaW9uIFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6Y2hlY2tQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIE5vdGlm
aWNhdGlvblByZXNlbnRlcjo6UGVybWlzc2lvbkRlbmllZDsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoTk9USUZJQ0FUSU9OUykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlm
aWNhdGlvbkNsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE5ZjAwN2Q5NThiYmM5ZGI5MWZmZjdiNzhjYTZk
ZDNmNzNhNTBmMjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5oCkBAIC0wLDAgKzEsNjIgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaWZuZGVmIFdlYk5vdGlmaWNhdGlvbkNsaWVudF9oCisjZGVmaW5lIFdl
Yk5vdGlmaWNhdGlvbkNsaWVudF9oCisKKyNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKKworI2lu
Y2x1ZGUgPFdlYkNvcmUvTm90aWZpY2F0aW9uUHJlc2VudGVyLmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKK2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CitjbGFzcyBWb2lkQ2FsbGJhY2s7
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBX
ZWJQYWdlOworCitjbGFzcyBXZWJOb3RpZmljYXRpb25DbGllbnQgOiBwdWJsaWMgV2ViQ29yZTo6
Tm90aWZpY2F0aW9uUHJlc2VudGVyIHsKK3B1YmxpYzoKKyAgICBXZWJOb3RpZmljYXRpb25DbGll
bnQoV2ViUGFnZSopOworICAgIHZpcnR1YWwgfldlYk5vdGlmaWNhdGlvbkNsaWVudCgpOworCitw
cml2YXRlOgorICAgIHZpcnR1YWwgYm9vbCBzaG93KFdlYkNvcmU6Ok5vdGlmaWNhdGlvbiopIE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBjYW5jZWwoV2ViQ29yZTo6Tm90aWZpY2F0aW9uKikg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIG5vdGlmaWNhdGlvbk9iamVjdERlc3Ryb3llZChX
ZWJDb3JlOjpOb3RpZmljYXRpb24qKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVz
dFBlcm1pc3Npb24oV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8
V2ViQ29yZTo6Vm9pZENhbGxiYWNrPikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGNhbmNl
bFJlcXVlc3RzRm9yUGVybWlzc2lvbihXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0Kikg
T1ZFUlJJREU7CisgICAgdmlydHVhbCBOb3RpZmljYXRpb25QcmVzZW50ZXI6OlBlcm1pc3Npb24g
Y2hlY2tQZXJtaXNzaW9uKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKSBPVkVSUklE
RTsKKyAgICAKKyAgICBXZWJQYWdlKiBtX3BhZ2U7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmIC8vIEVOQUJMRShOT1RJRklDQVRJT05TKQorCisjZW5kaWYgLy8gV2ViTm90
aWZpY2F0aW9uQ2xpZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcAppbmRleCBhZTA1MjQxNjBiMjRkMGIxM2FmYzk3MmZiNDQzY2VlNTRmNGNjZGNl
Li45NWMxY2QyYzMwNzcxYTlhNTk1ZGM4Nzg2MDBkY2U1OTJkYTI1NGU0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC02MSw2ICs2MSw3IEBA
CiAjaW5jbHVkZSAiV2ViSW1hZ2UuaCIKICNpbmNsdWRlICJXZWJJbnNwZWN0b3IuaCIKICNpbmNs
dWRlICJXZWJJbnNwZWN0b3JDbGllbnQuaCIKKyNpbmNsdWRlICJXZWJOb3RpZmljYXRpb25DbGll
bnQuaCIKICNpbmNsdWRlICJXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5oIgogI2luY2x1ZGUg
IldlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJXZWJQYWdlR3JvdXBQcm94
eS5oIgpAQCAtMjE2LDYgKzIxNywxMCBAQCBXZWJQYWdlOjpXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJ
RCwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKICNpZiBFTkFC
TEUoSU5TUEVDVE9SKQogICAgIHBhZ2VDbGllbnRzLmluc3BlY3RvckNsaWVudCA9IG5ldyBXZWJJ
bnNwZWN0b3JDbGllbnQodGhpcyk7CiAjZW5kaWYKKyNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykK
KyAgICBwYWdlQ2xpZW50cy5ub3RpZmljYXRpb25DbGllbnQgPSBuZXcgV2ViTm90aWZpY2F0aW9u
Q2xpZW50KHRoaXMpOworI2VuZGlmCisgICAgCiAgICAgbV9wYWdlID0gYWRvcHRQdHIobmV3IFBh
Z2UocGFnZUNsaWVudHMpKTsKIAogICAgIC8vIFF0IGRvZXMgbm90IHlldCBjYWxsIHNldElzSW5X
aW5kb3cuIFVudGlsIGl0IGRvZXMsIGp1c3QgbGVhdmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IGM5ZTkwY2U5ZTk4ZTBkOGE2MDAxNDViNDc0YzBh
OTVhZDk3NjYxZWUuLmNkZjE5NmRkNjFiNDk4YWIwM2M0MGM4NTFiYzMwNGY1N2IxNzcyNmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMTE0LDYg
KzExNCw3IEBAIGNsYXNzIFdlYkltYWdlOwogY2xhc3MgV2ViSW5zcGVjdG9yOwogY2xhc3MgV2Vi
S2V5Ym9hcmRFdmVudDsKIGNsYXNzIFdlYk1vdXNlRXZlbnQ7CitjbGFzcyBXZWJOb3RpZmljYXRp
b25DbGllbnQ7CiBjbGFzcyBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcjsKIGNsYXNzIFdlYlBh
Z2VHcm91cFByb3h5OwogY2xhc3MgV2ViUG9wdXBNZW51OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggYjIzMDBkOWJhYWY1ZGIxM2JhMDUwYTJjOWVjODhmN2My
NGNlMDhhNS4uZmMwZTNlMmRhZjJhOGQwNGQzMTdiZTBlZWU4N2QzMmNmYTJjNmE3MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC0xNDAsNiArMTQwLDkgQEAg
V2ViUHJvY2Vzczo6V2ViUHJvY2VzcygpCiAjZW5kaWYKICAgICAsIG1fdGV4dENoZWNrZXJTdGF0
ZSgpCiAgICAgLCBtX2dlb2xvY2F0aW9uTWFuYWdlcih0aGlzKQorI2lmIEVOQUJMRShOT1RJRklD
QVRJT05TKQorICAgICwgbV9ub3RpZmljYXRpb25NYW5hZ2VyKHRoaXMpCisjZW5kaWYKICAgICAs
IG1faWNvbkRhdGFiYXNlUHJveHkodGhpcykKICNpZiBFTkFCTEUoUExVR0lOX1BST0NFU1MpCiAg
ICAgLCBtX2Rpc2FibGVQbHVnaW5Qcm9jZXNzTWVzc2FnZVRpbWVvdXQoZmFsc2UpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4IDMyZDM4MmIxMzc4NmRiZDU4Y2IxNGE3
YzFhY2UzYWNlODMwZjM1MzYuLmI5YmQ4MjY3NmM1YjU4ZTFhODQyOTM2YTEwN2JhN2RjZGU0NTYy
NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC00Niw2ICs0Niwx
MCBAQAogY2xhc3MgUU5ldHdvcmtBY2Nlc3NNYW5hZ2VyOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUo
Tk9USUZJQ0FUSU9OUykKKyNpbmNsdWRlICJXZWJOb3RpZmljYXRpb25NYW5hZ2VyLmgiCisjZW5k
aWYKKwogI2lmIEVOQUJMRShQTFVHSU5fUFJPQ0VTUykKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNz
Q29ubmVjdGlvbk1hbmFnZXIuaCIKICNlbmRpZgpAQCAtMTE5LDYgKzEyMywxMCBAQCBwdWJsaWM6
CiAKICAgICAvLyBHZW9sb2NhdGlvbgogICAgIFdlYkdlb2xvY2F0aW9uTWFuYWdlciYgZ2VvbG9j
YXRpb25NYW5hZ2VyKCkgeyByZXR1cm4gbV9nZW9sb2NhdGlvbk1hbmFnZXI7IH0KKyAgICAKKyNp
ZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKKyAgICBXZWJOb3RpZmljYXRpb25NYW5hZ2VyJiBub3Rp
ZmljYXRpb25NYW5hZ2VyKCkgeyByZXR1cm4gbV9ub3RpZmljYXRpb25NYW5hZ2VyOyB9CisjZW5k
aWYKIAogICAgIHZvaWQgY2xlYXJSZXNvdXJjZUNhY2hlcyhSZXNvdXJjZUNhY2hlc1RvQ2xlYXIg
PSBBbGxSZXNvdXJjZUNhY2hlcyk7CiAgICAgCkBAIC0yNDEsNiArMjQ5LDkgQEAgcHJpdmF0ZToK
IAogICAgIFRleHRDaGVja2VyU3RhdGUgbV90ZXh0Q2hlY2tlclN0YXRlOwogICAgIFdlYkdlb2xv
Y2F0aW9uTWFuYWdlciBtX2dlb2xvY2F0aW9uTWFuYWdlcjsKKyNpZiBFTkFCTEUoTk9USUZJQ0FU
SU9OUykKKyAgICBXZWJOb3RpZmljYXRpb25NYW5hZ2VyIG1fbm90aWZpY2F0aW9uTWFuYWdlcjsK
KyNlbmRpZgogICAgIFdlYkljb25EYXRhYmFzZVByb3h5IG1faWNvbkRhdGFiYXNlUHJveHk7CiAg
ICAgCiAgICAgU3RyaW5nIG1fbG9jYWxTdG9yYWdlRGlyZWN0b3J5OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9qIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktp
dDIudmNwcm9qCmluZGV4IGJhY2Y3NzQ0NTViMTk3N2M0OTgwZDY2MDhlNzQ0NzRkOGU5ZTBhMGMu
LmVkMzNkMDdiYzk2NzdmN2YzODJmNTg4Yjc1ZmJhNjg0YTg0MmY3NTMgMTAwNzU1Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi93aW4v
V2ViS2l0Mi52Y3Byb2oKQEAgLTY5OSwxOSArNjk5LDE5IEBACiAJCQkJPgogCQkJPC9GaWxlPgog
CQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFNoYXJlZFxXZWJJbWFnZS5jcHAiCisJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxTaGFyZWRcV2ViSGl0VGVzdFJlc3VsdC5jcHAiCiAJCQkJPgogCQkJ
PC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFNoYXJlZFxXZWJJbWFnZS5o
IgorCQkJCVJlbGF0aXZlUGF0aD0iLi5cU2hhcmVkXFdlYkhpdFRlc3RSZXN1bHQuaCIKIAkJCQk+
CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cU2hhcmVkXFdlYkhp
dFRlc3RSZXN1bHQuY3BwIgorCQkJCVJlbGF0aXZlUGF0aD0iLi5cU2hhcmVkXFdlYkltYWdlLmNw
cCIKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cU2hh
cmVkXFdlYkhpdFRlc3RSZXN1bHQuaCIKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFNoYXJlZFxXZWJJ
bWFnZS5oIgogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCkBAIC03MjcsNiArNzI3LDE0IEBA
CiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFNoYXJl
ZFxXZWJOb3RpZmljYXRpb24uY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxTaGFyZWRcV2ViTm90aWZpY2F0aW9uLmgiCisJCQkJPgorCQkJPC9G
aWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFNoYXJlZFxXZWJOdW1iZXIuaCIK
IAkJCQk+CiAJCQk8L0ZpbGU+CkBAIC04NTQsMTkgKzg2MiwxOSBAQAogCQkJCQk+CiAJCQkJPC9G
aWxlPgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cU2hhcmVkXEFQSVxjXFdLQ29u
bmVjdGlvblJlZi5jcHAiCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cU2hhcmVkXEFQSVxjXHdpblxX
S0NlcnRpZmljYXRlSW5mb1dpbi5jcHAiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUK
LQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxTaGFyZWRcQVBJXGNcV0tDb25uZWN0aW9uUmVmLmgiCisJ
CQkJCVJlbGF0aXZlUGF0aD0iLi5cU2hhcmVkXEFQSVxjXHdpblxXS0NlcnRpZmljYXRlSW5mb1dp
bi5oIgogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0i
Li5cU2hhcmVkXEFQSVxjXHdpblxXS0NlcnRpZmljYXRlSW5mb1dpbi5jcHAiCisJCQkJCVJlbGF0
aXZlUGF0aD0iLi5cU2hhcmVkXEFQSVxjXFdLQ29ubmVjdGlvblJlZi5jcHAiCiAJCQkJCT4KIAkJ
CQk8L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxTaGFyZWRcQVBJXGNc
d2luXFdLQ2VydGlmaWNhdGVJbmZvV2luLmgiCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cU2hhcmVk
XEFQSVxjXFdLQ29ubmVjdGlvblJlZi5oIgogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxl
CkBAIC05MTQsMTEgKzkyMiwxMSBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCi0J
CQkJCVJlbGF0aXZlUGF0aD0iLi5cU2hhcmVkXEFQSVxjXFdLR2VvbWV0cnkuaCIKKwkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxTaGFyZWRcQVBJXGNcV0tHZW9tZXRyeS5jcHAiCiAJCQkJCT4KIAkJCQk8
L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxTaGFyZWRcQVBJXGNcV0tH
ZW9tZXRyeS5jcHAiCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cU2hhcmVkXEFQSVxjXFdLR2VvbWV0
cnkuaCIKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQpAQCAtMTg2Miw2ICsxODcwLDE0
IEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIu
LlxXZWJQcm9jZXNzXFdlYkNvcmVTdXBwb3J0XFdlYk5vdGlmaWNhdGlvbkNsaWVudC5jcHAiCisJ
CQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJQ
cm9jZXNzXFdlYkNvcmVTdXBwb3J0XFdlYk5vdGlmaWNhdGlvbkNsaWVudC5oIgorCQkJCQk+CisJ
CQkJPC9GaWxlPgorCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViUHJvY2Vzc1xX
ZWJDb3JlU3VwcG9ydFxXZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwIgogCQkJCQk+CiAJCQkJPC9G
aWxlPgpAQCAtMjY4Miw2ICsyNjk4LDE4IEBACiAJCQkJCTwvRmlsZT4KIAkJCQk8L0ZpbHRlcj4K
IAkJCTwvRmlsdGVyPgorCQkJPEZpbHRlcgorCQkJCU5hbWU9Ik5vdGlmaWNhdGlvbnMgKFVzZXIp
IgorCQkJCT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcTm90
aWZpY2F0aW9uc1xXZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcCIKKwkJCQkJPgorCQkJCTwvRmls
ZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcTm90aWZpY2F0
aW9uc1xXZWJOb3RpZmljYXRpb25NYW5hZ2VyLmgiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQk8
L0ZpbHRlcj4KIAkJPC9GaWx0ZXI+CiAJCTxGaWx0ZXIKIAkJCU5hbWU9IlVJUHJvY2VzcyIKQEAg
LTMwMzksNiArMzA2NywyNiBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVs
YXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcCIK
KwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9j
ZXNzXFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJ
CTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcV2ViTm90aWZpY2F0aW9uTWFu
YWdlclByb3h5Lm1lc3NhZ2VzLmluIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwIgor
CQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nl
c3NcV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8Rmls
ZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXFdlYk9wZW5QYW5lbFJlc3VsdExpc3Rl
bmVyUHJveHkuY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KQEAgLTMzMDUsMTkgKzMzNTMsMTkgQEAK
IAkJCQkJCT4KIAkJCQkJPC9GaWxlPgogCQkJCQk8RmlsZQotCQkJCQkJUmVsYXRpdmVQYXRoPSIu
LlxVSVByb2Nlc3NcQVBJXENcV0tIaXRUZXN0UmVzdWx0LmNwcCIKKwkJCQkJCVJlbGF0aXZlUGF0
aD0iLi5cVUlQcm9jZXNzXEFQSVxDXFdLR3JhbW1hckRldGFpbC5jcHAiCiAJCQkJCQk+CiAJCQkJ
CTwvRmlsZT4KIAkJCQkJPEZpbGUKLQkJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXEFQ
SVxDXFdLSGl0VGVzdFJlc3VsdC5oIgorCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3Nc
QVBJXENcV0tHcmFtbWFyRGV0YWlsLmgiCiAJCQkJCQk+CiAJCQkJCTwvRmlsZT4KIAkJCQkJPEZp
bGUKLQkJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXEFQSVxDXFdLR3JhbW1hckRldGFp
bC5jcHAiCisJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xBUElcQ1xXS0hpdFRlc3RS
ZXN1bHQuY3BwIgogCQkJCQkJPgogCQkJCQk8L0ZpbGU+CiAJCQkJCTxGaWxlCi0JCQkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xBUElcQ1xXS0dyYW1tYXJEZXRhaWwuaCIKKwkJCQkJCVJl
bGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXEFQSVxDXFdLSGl0VGVzdFJlc3VsdC5oIgogCQkJCQkJ
PgogCQkJCQk8L0ZpbGU+CiAJCQkJCTxGaWxlCkBAIC0zMzY1LDYgKzM0MTMsMjYgQEAKIAkJCQkJ
CT4KIAkJCQkJPC9GaWxlPgogCQkJCQk8RmlsZQorCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVBy
b2Nlc3NcQVBJXENcV0tOb3RpZmljYXRpb24uY3BwIgorCQkJCQkJPgorCQkJCQk8L0ZpbGU+CisJ
CQkJCTxGaWxlCisJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xBUElcQ1xXS05vdGlm
aWNhdGlvbi5oIgorCQkJCQkJPgorCQkJCQk8L0ZpbGU+CisJCQkJCTxGaWxlCisJCQkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xBUElcQ1xXS05vdGlmaWNhdGlvbk1hbmFnZXIuY3BwIgor
CQkJCQkJPgorCQkJCQk8L0ZpbGU+CisJCQkJCTxGaWxlCisJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XFVJUHJvY2Vzc1xBUElcQ1xXS05vdGlmaWNhdGlvbk1hbmFnZXIuaCIKKwkJCQkJCT4KKwkJCQkJ
PC9GaWxlPgorCQkJCQk8RmlsZQorCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcQVBJ
XENcV0tOb3RpZmljYXRpb25Qcm92aWRlci5oIgorCQkJCQkJPgorCQkJCQk8L0ZpbGU+CisJCQkJ
CTxGaWxlCiAJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xBUElcQ1xXS09wZW5QYW5l
bFBhcmFtZXRlcnMuY3BwIgogCQkJCQkJPgogCQkJCQk8L0ZpbGU+CkBAIC00MjExLDYgKzQyNzks
MTQgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5c
Li5cLi5cLi5cV2ViS2l0QnVpbGRcRGVidWdcb2JqXFdlYktpdFxEZXJpdmVkU291cmNlc1xXZWJO
b3RpZmljYXRpb25NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIgorCQkJCT4KKwkJCTwv
RmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlwuLlwuLlxXZWJLaXRCdWls
ZFxEZWJ1Z1xvYmpcV2ViS2l0XERlcml2ZWRTb3VyY2VzXFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQ
cm94eU1lc3NhZ2VzLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2
ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZl
ZFNvdXJjZXNcV2ViUGFnZU1lc3NhZ2VSZWNlaXZlci5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116843</attachid>
            <date>2011-11-28 15:58:06 -0800</date>
            <delta_ts>2011-11-28 16:11:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73253-20111128155920.patch</filename>
            <type>text/plain</type>
            <size>163453</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxMjczCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
NjAzZDUzYTU4M2JhZWM4Mzg2M2Q5NGE2MDZiNzc4NjgzNmY3N2YzLi4xMTkwODk3NGIwOTc3ZjUz
ZGMwNGFmNmIxODUyYTZkZTM2ZDA5OTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMSBAQAorMjAxMS0xMS0yOCAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CisKKyAg
ICAgICAgQ3JlYXRlIHNrZWxldG9uIGZyYW1ld29yayBmb3Igbm90aWZpY2F0aW9ucyBzdXBwb3J0
IGluIFdLMgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzMyNTMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEwMzU2OTQzPgorCisgICAgICAgICogQ29u
ZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6IFNwbGl0IG91dCBFTkFCTEVfTk9U
SUZJQ0FUSU9OUyBiYXNlZCBvbiBwbGF0Zm9ybS4KKwogMjAxMS0xMS0yOCAgU2ltb24gSGF1c21h
bm4gIDxzaW1vbi5oYXVzbWFubkBub2tpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBwcm9z
cGVjdGl2ZSBidWlsZCBmaXguIFRvdWNoIHRoZSBmaWxlIHRvIHRyaWdnZXIgY29ycmVjdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IGQ5YjdmNDVlZjk2Y2JlMDg2N2NjZWI1MDNkM2RhMzk2OGUxNTFhNTIuLjI5NWZj
MzM0ZmQ3ZjgyOTVlOWQ5MDhlYjkyZjFhMmUyYmVlNjY3MzkgMTAwNzU1Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSw1NyBAQAorMjAxMS0xMS0yOCAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CisKKyAgICAg
ICAgQ3JlYXRlIHNrZWxldG9uIGZyYW1ld29yayBmb3Igbm90aWZpY2F0aW9ucyBzdXBwb3J0IGlu
IFdLMgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMy
NTMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEwMzU2OTQzPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNvbWUgcmVmYWN0b3Jpbmcgd2FzIGRvbmUg
dG8gbWFrZSBub3RpZmljYXRpb25zIGZvbGxvdyBhIHNpbWlsYXIgcGF0dGVybiB0byBvdXIgb3Ro
ZXIgY2xpZW50cywgbGlrZQorICAgICAgICBnZW9sb2NhdGlvbiBhbmQgY29udGV4dCBtZW51Lgor
CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6IFNwbGl0
IG91dCBFTkFCTEVfTk9USUZJQ0FUSU9OUyBiYXNlZCBvbiBwbGF0Zm9ybS4KKyAgICAgICAgKiBX
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IEFkZGluZyBuZXcgTm90aWZpY2F0aW9u
Q29udHJvbGxlciBjbGFzcywgYW5kIGV4cG9zaW5nCisgICAgICAgIE5vdGlmaWNhdGlvbiBhbmQg
Tm90aWZpY2F0aW9uQ29udHJvbGxlciBhcyBwcml2YXRlIGhlYWRlcnMuCisgICAgICAgICogVGFy
Z2V0LnByaTogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS5neXBpOiBEaXR0by4KKworICAgICAg
ICAqIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ29udGVudHMuaDogQ29udmVydGVkIGNsYXNz
IHRvIHN0cnVjdC4gTWVtYmVycyBuZWVkIHRvIGJlIGFjY2Vzc2libGUKKyAgICAgICAgaW4gb3Jk
ZXIgdG8gZG8gV0syIGFyZ3VtZW50IGVuY29kaW5nLgorICAgICAgICAoV2ViQ29yZTo6Tm90aWZp
Y2F0aW9uQ29udGVudHM6Ok5vdGlmaWNhdGlvbkNvbnRlbnRzKToKKworICAgICAgICAqIG5vdGlm
aWNhdGlvbnMvTm90aWZpY2F0aW9uLmNwcDogVXBkYXRlIHN0eWxlIG9mIGVudGlyZSBmaWxlLgor
ICAgICAgICAoV2ViQ29yZTo6Tm90aWZpY2F0aW9uOjpOb3RpZmljYXRpb24pOiBBZGRlZCBkZWZh
dWx0IGNvbnN0cnVjdG9yIChmb3IgV0syKSwgYW5kIG1pbm9yIHJlZmFjdG9yaW5nCisgICAgICAg
IHdpdGggTm90aWZpY2F0aW9uQ29udGVudHMuCisgICAgICAgICogbm90aWZpY2F0aW9ucy9Ob3Rp
ZmljYXRpb24uaDogQWRkZWQgc2V0IG1ldGhvZHMgZm9yIFdLMiBzZXJpYWxpemF0aW9uLiBBbHNv
LCB1cGRhdGUgaW5kZW50aW5nLgorICAgICAgICAoV2ViQ29yZTo6Tm90aWZpY2F0aW9uOjpzZXRI
VE1MKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpOb3RpZmljYXRpb246OnNldFVSTCk6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6Tm90aWZpY2F0aW9uOjpjb250ZW50cyk6IEFkZGVkIGNv
bnN0IHZlcnNpb24gZm9yIFdLMi4KKyAgICAgICAgKiBub3RpZmljYXRpb25zL05vdGlmaWNhdGlv
bkNlbnRlci5oOiBVcGRhdGUgc3R5bGUuCisKKyAgICAgICAgKiBub3RpZmljYXRpb25zL05vdGlm
aWNhdGlvbkNvbnRyb2xsZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok5vdGlmaWNh
dGlvbkNvbnRyb2xsZXI6Ok5vdGlmaWNhdGlvbkNvbnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6Tm90aWZpY2F0aW9uQ29udHJvbGxlcjo6fk5vdGlmaWNhdGlvbkNvbnRyb2xsZXIpOgorICAg
ICAgICAqIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ29udHJvbGxlci5oOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNvbnRyb2xsZXI6OmNsaWVudCk6CisgICAgICAg
ICogbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QcmVzZW50ZXIuaDogVGhpcyBhY3RzIGxpa2Ug
YSBjbGllbnQsIGFuZCBzaG91bGQgcHJvYmFibHkgYmUgcmVuYW1lZCBhcyBzdWNoLgorICAgICAg
ICBSZW1vdmVkIGlmZGVmIGZvciBleHBvc3VyZSB0byBXSzIuCisgICAgICAgIChXZWJDb3JlOjpO
b3RpZmljYXRpb25QcmVzZW50ZXI6On5Ob3RpZmljYXRpb25QcmVzZW50ZXIpOiBNb3ZlZCBhcyBw
cm90ZWN0ZWQgaW5zdGVhZCBvZiBwdWJsaWMuCisKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OndlYmtpdE5vdGlmaWNhdGlvbnMpOiAg
V2UgbW92ZSB0aGUgcmVxdWVzdCBmb3IgdGhlIG5vdGlmaWNhdGlvbiBjbGllbnQgZnJvbSB0aGUg
Y2hyb21lCisgICAgICAgIHRvIHRoZSBjb250cm9sbGVyLgorICAgICAgICAqIHBhZ2UvUGFnZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlKTogVGhlIHBhZ2Ugbm93IG93bnMgYSBu
b3RpZmljYXRpb24gY29udHJvbGxlci4KKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2VDbGll
bnRzOjpQYWdlQ2xpZW50cyk6IEFkZCBub3RpZmljYXRpb24gY2xpZW50IGFzIGEgcGFnZSBjbGll
bnQuCisgICAgICAgICogcGFnZS9QYWdlLmg6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpub3Rp
ZmljYXRpb25Db250cm9sbGVyKTogUmV0cmlldmUgdGhlIG5vdGlmaWNhdGlvbiBjb250cm9sbGVy
LgorCisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDogV2UgbW92ZSB0aGUgcmVxdWVzdCBm
b3IgdGhlIG5vdGlmaWNhdGlvbiBjbGllbnQgZnJvbSB0aGUgY2hyb21lIHRvIHRoZSBjb250cm9s
bGVyLgorICAgICAgICBSZW1vdmUgbm90aWZpY2F0aW9uUHJlc2VudGVyKCkuCisgICAgICAgICog
cGFnZS9DaHJvbWUuY3BwOiBSZW1vdmUgbm90aWZpY2F0aW9uUHJlc2VudGVyKCkuCisgICAgICAg
ICogcGFnZS9DaHJvbWUuaDogUmVtb3ZlIG5vdGlmaWNhdGlvblByZXNlbnRlcigpLgorICAgICAg
ICAqIGxvYWRlci9FbXB0eUNsaWVudHMuaDogUmVtb3ZlIG5vdGlmaWNhdGlvblByZXNlbnRlcigp
LgorCiAyMDExLTExLTI4ICBLZW4gQnVjaGFuYW4gIDxrZW5yYkBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgQ3Jhc2ggZHVlIHRvIGJpZGkgc3R5bGUgaW4gaXNvbGF0ZWQgcnVuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4
IGUyZTA1NzY3ZDI0NDA0NjM3OWQ0NWFlMzZhZWQwNGUwMWU5ZmI1OTIuLmI0MjU1MGRlMGYyNjg5
MDUxMTU1YWYwZGE1MmVmNWIyOWYxZmQ3YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIw
MTEtMTEtMjggIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgorCisgICAgICAgIENyZWF0ZSBz
a2VsZXRvbiBmcmFtZXdvcmsgZm9yIG5vdGlmaWNhdGlvbnMgc3VwcG9ydCBpbiBXSzIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczMjUzCisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS8xMDM1Njk0Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBB
ZGQgV2ViTm90aWZpY2F0aW9uQ2xpZW50IGNsYXNzLgorCiAyMDExLTExLTI2ICBKb25hdGhhbiBE
b25nICA8am9uYXRoYW4uZG9uZ0B0b3JjaG1vYmlsZS5jb20uY24+CiAKICAgICAgICAgW0NNYWtl
XSBDbGVhbiB1cCBXZWIgSW5zcGVjdG9yIHRhcmdldCBpbiBTb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvQ01ha2VMaXN0c0JsYWNrQmVycnkudHh0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IGRiOWE1YTM3Njk3YWJlYjcxZDQ4MjEzMWIwOThlNDZkNTQ0YjkzZGUuLjM4MDQ4OWU1MjczNTYx
MzgwZDUzOWU0NjdhOWI2MGM3N2VhZDZmNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMTEtMTEtMjggIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgor
CisgICAgICAgIENyZWF0ZSBza2VsZXRvbiBmcmFtZXdvcmsgZm9yIG5vdGlmaWNhdGlvbnMgc3Vw
cG9ydCBpbiBXSzIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTczMjUzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMDM1Njk0Mz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgbm90aWZpY2F0aW9u
UHJlc2VudGVyKCkgZnJvbSB0aGUgY2hyb21lIGNsaWVudCwgc2luY2UgaXQgaXMgbm93IG1hbmFn
ZWQgYnkKKyAgICAgICAgdGhlIG5vdGlmaWNhdGlvbiBjb250cm9sbGVyLgorCisgICAgICAgICog
c3JjL0Nocm9tZUNsaWVudEltcGwuY3BwOgorICAgICAgICAqIHNyYy9DaHJvbWVDbGllbnRJbXBs
Lmg6CisgICAgICAgICogc3JjL1dlYk5vdGlmaWNhdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYk5vdGlmaWNhdGlvbjo6dGl0bGUpOiBSZWZhY3RvcmluZyB3aXRoIE5vdGlmaWNhdGlvbkNv
bnRlbnRzIGNvbnZlcnNpb24gdG8gc3RydWN0LgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmlj
YXRpb246OmJvZHkpOiBEaXR0by4KKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwpOiBTZXQgbm90aWZpY2F0aW9u
IGNsaWVudCBpbiB3ZWIgdmlldydzIHBhZ2UgY2xpZW50cy4KKwogMjAxMS0xMS0yOCAgRmFkeSBT
YW11ZWwgIDxmc2FtdWVsQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIEZpeCBi
cm9rZW4gRFJUIGJ1aWxkIGZvciBBdXJhIExpbnV4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggNzE0ZTJh
OGYwYzM2MmQzMjQzZDZkMzQxNmU5MWZiODU5Nzg4NGMyZi4uNzRkZjgxYmFhMjE1ZThjMzIyMTY4
MjRiODhjMTg1MDI4ZmU5OWI0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisy
MDExLTExLTI4ICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBDcmVhdGUg
c2tlbGV0b24gZnJhbWV3b3JrIGZvciBub3RpZmljYXRpb25zIHN1cHBvcnQgaW4gV0syCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzI1MworICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vMTAzNTY5NDM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2Nv
bmZpZzogU3BsaXQgb3V0IEVOQUJMRV9OT1RJRklDQVRJT05TIGJhc2VkIG9uIHBsYXRmb3JtLgor
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50Lmg6IEFkZGVk
LgorICAgICAgICAoV2ViTm90aWZpY2F0aW9uQ2xpZW50Ojp3ZWJWaWV3KToKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQubW06IEFkZGVkLiBJbXBsZW1lbnRl
ZCBhcyBzdHVicyBmb3Igbm93LgorICAgICAgICAoV2ViTm90aWZpY2F0aW9uQ2xpZW50OjpXZWJO
b3RpZmljYXRpb25DbGllbnQpOgorICAgICAgICAoV2ViTm90aWZpY2F0aW9uQ2xpZW50OjpzaG93
KToKKyAgICAgICAgKFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6Y2FuY2VsKToKKyAgICAgICAgKFdl
Yk5vdGlmaWNhdGlvbkNsaWVudDo6bm90aWZpY2F0aW9uT2JqZWN0RGVzdHJveWVkKToKKyAgICAg
ICAgKFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6cmVxdWVzdFBlcm1pc3Npb24pOgorICAgICAgICAo
V2ViTm90aWZpY2F0aW9uQ2xpZW50OjpjYW5jZWxSZXF1ZXN0c0ZvclBlcm1pc3Npb24pOgorICAg
ICAgICAoV2ViTm90aWZpY2F0aW9uQ2xpZW50OjpjaGVja1Blcm1pc3Npb24pOgorICAgICAgICAq
IFdlYlZpZXcvV2ViVmlldy5tbTogU2V0IFBhZ2VDbGllbnQncyBub3RpZmljYXRpb24gY2xpZW50
IHRvIGFuIGluc3RhbmNlIG9mIHRoaXMgc3R1YmJlZCBjbGFzcy4KKwogMjAxMS0xMS0yOCAgQWRh
bSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+CiAKICAgICAgICAgUHJvcGVybHkgcmV0YWluIHRo
ZSBPUyBYIHZlcnNpb24gc3RyaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IDMyNzYwZDZjMWM4MzRlNDg0
YzFmMTBkYmVhZDY0NzU5MzFhMjA0ODIuLjMzYjEyYmQ3ZWJiMGU1ZGI5ZTA1ZTNmNWU3YmU2YzFh
N2Q5OTE4OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTEtMTEtMjggIEpv
biBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgorCisgICAgICAgIENyZWF0ZSBza2VsZXRvbiBmcmFt
ZXdvcmsgZm9yIG5vdGlmaWNhdGlvbnMgc3VwcG9ydCBpbiBXSzIKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczMjUzCisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8xMDM1Njk0Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIEFwaS9xd2VicGFnZS5jcHA6IEFkZCBub3RpZmljYXRpb24gY2xpZW50IHRvIHBh
Z2VDbGllbnRzLgorICAgICAgICAoUVdlYlBhZ2VQcml2YXRlOjpRV2ViUGFnZVByaXZhdGUpOgor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcDogUmVtb3ZlIG5vdGlm
aWNhdGlvbiBjbGllbnQgZnJvbSBDaHJvbWVDbGllbnQgaW1wbGVtZW50YXRpb24uCisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9Ob3RpZmljYXRpb25QcmVzZW50ZXJDbGllbnRRdC5jcHA6IFJlZmFjdG9yIHdpdGggY2hh
bmdlIG9mIE5vdGlmaWNhdGlvbkNvbnRlbnRzIHRvIHN0cnVjdAorICAgICAgICAoV2ViQ29yZTo6
Tm90aWZpY2F0aW9uV3JhcHBlcjo6dGl0bGUpOgorICAgICAgICAoV2ViQ29yZTo6Tm90aWZpY2F0
aW9uV3JhcHBlcjo6bWVzc2FnZSk6CisgICAgICAgIChXZWJDb3JlOjpOb3RpZmljYXRpb25QcmVz
ZW50ZXJDbGllbnRRdDo6ZGlzcGxheU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpO
b3RpZmljYXRpb25QcmVzZW50ZXJDbGllbnRRdDo6Y2FuY2VsKToKKyAgICAgICAgKFdlYkNvcmU6
Ok5vdGlmaWNhdGlvblByZXNlbnRlckNsaWVudFF0Ojpub3RpZmljYXRpb25DbGlja2VkKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok5vdGlmaWNhdGlvblByZXNlbnRlckNsaWVudFF0OjpkdW1wUmVwbGFj
ZWRJZFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6Tm90aWZpY2F0aW9uUHJlc2VudGVyQ2xpZW50
UXQ6OmR1bXBTaG93VGV4dCk6CisKIDIwMTEtMTEtMjggIFNpbW9uIEhhdXNtYW5uICA8c2ltb24u
aGF1c21hbm5Abm9raWEuY29tPgogCiAgICAgICAgIFtRdF0gQnVpbGQgc3lzdGVtIGZpeGVzIGFn
YWluc3QgVjguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggM2I0YmYxZmI5NDhmNDQ0MTU4NGE0ODMxOGYyMzI1OTA0
MzU3ZDk3Yi4uMTMyYzZhNDhlMTJlNDQ3NjA5YTU5Y2YwYWRmMGRjZTc4Mzk1NWFkNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDExMCBAQAorMjAxMS0xMS0yOCAgSm9uIExlZSAgPGpvbmxlZUBhcHBs
ZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIHNrZWxldG9uIGZyYW1ld29yayBmb3Igbm90aWZpY2F0
aW9ucyBzdXBwb3J0IGluIFdLMgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzMyNTMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEwMzU2OTQzPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViS2l0Mi54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBBZGRlZCBjbGFzc2VzIGZvciBub3RpZmljYXRpb24g
c3VwcG9ydC4KKyAgICAgICAgKiB3aW4vV2ViS2l0Mi52Y3Byb2o6IERpdHRvLgorICAgICAgICAq
IENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOiBTcGxpdCBvdXQgRU5BQkxF
X05PVElGSUNBVElPTlMgYmFzZWQgb24gcGxhdGZvcm0uCisgICAgICAgICogRGVyaXZlZFNvdXJj
ZXMubWFrZTogQWRkIE5vdGlmaWNhdGlvbnMgdG8gVlBBVEguCisgICAgICAgICogUGxhdGZvcm0v
Q29yZUlQQy9NZXNzYWdlSUQuaDogTGlzdCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkgYXMg
YSBjbGFzcyB3aXRoIG1lc3NhZ2VzLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0Mi9tZXNzYWdl
cy5weTogTWFyayBXZWJDb3JlOjpOb3RpZmljYXRpb25Db250ZW50cyBhcyBhIHN0cnVjdC4KKwor
ICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS0Jhc2UuaDogTWFwIG9wYXF1ZSB0eXBlcyB0byBOb3Rp
ZmljYXRpb25Qcm92aWRlciwgTm90aWZpY2F0aW9uTWFuYWdlciwgYW5kIE5vdGlmaWNhdGlvbi4K
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0Lmg6IE1hcCBXSyB0eXBlcyB0b05v
dGlmaWNhdGlvblByb3ZpZGVyLCBOb3RpZmljYXRpb25NYW5hZ2VyLCBhbmQgTm90aWZpY2F0aW9u
LgorICAgICAgICAqIFNoYXJlZC9BUElPYmplY3QuaDogQWRkIE5vdGlmaWNhdGlvbiBhbmQgTm90
aWZpY2F0aW9uTWFuYWdlciBhcyBBUElPYmplY3RzLgorICAgICAgICAqIFNoYXJlZC9XZWJDb3Jl
QXJndW1lbnRDb2RlcnMuY3BwOiBBZGRlZCBjb2RlcnMgZm9yIEtVUkwuCisgICAgICAgIChDb3Jl
SVBDOjo6OmVuY29kZSk6CisgICAgICAgIChDb3JlSVBDOjo6OmRlY29kZSk6CisgICAgICAgICog
U2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgorCisgICAgICAgICogVUlQcm9jZXNzL1dl
Yk5vdGlmaWNhdGlvbi5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRp
b246OldlYk5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbjo6
fldlYk5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbjo6ZW5j
b2RlKToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uOjpkZWNvZGUpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJOb3RpZmljYXRpb24uaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6
OldlYk5vdGlmaWNhdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0
aW9uOjp0aXRsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbjo6Ym9keSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbjo6dHlwZSk6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9uLmNwcDogQWRkZWQgYXMgQVBJLgorICAgICAgICAoV0tO
b3RpZmljYXRpb25HZXRUeXBlSUQpOgorICAgICAgICAoV0tOb3RpZmljYXRpb25Db3B5VGl0bGUp
OgorICAgICAgICAoV0tOb3RpZmljYXRpb25Db3B5Qm9keSk6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9DL1dLTm90aWZpY2F0aW9uLmg6IEFkZGVkIGFzIEFQSS4KKworICAgICAgICAqIFdlYlBy
b2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmg6IEFkZGVkLiBDb250
YWlucyBmb3Igbm93IHNob3coKSBhbmQgY2FuY2VsKCkuCisgICAgICAgIFRoZSByZXN0IG9mIHRo
ZSBub3RpZmljYXRpb24gY2xpZW50IG1ldGhvZHMgd2lsbCBiZSBhZGRlZCBsYXRlci4gVGhlc2Ug
dHdvIGZ1bmN0aW9ucyBzZW5kIG1lc3NhZ2VzCisgICAgICAgIHRvIHRoZSBtYW5hZ2VyIHByb3h5
LgorICAgICAgICAqIFdlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5h
Z2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXI6
OldlYk5vdGlmaWNhdGlvbk1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRp
b25NYW5hZ2VyOjp+V2ViTm90aWZpY2F0aW9uTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6Oldl
Yk5vdGlmaWNhdGlvbk1hbmFnZXI6OnNob3cpOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmlj
YXRpb25NYW5hZ2VyOjpjYW5jZWwpOgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYk5vdGlmaWNh
dGlvbk1hbmFnZXJQcm94eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmlj
YXRpb25NYW5hZ2VyUHJveHk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNh
dGlvbk1hbmFnZXJQcm94eTo6V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5KToKKyAgICAgICAg
KFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5Ojp+V2ViTm90aWZpY2F0aW9uTWFu
YWdlclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5
OjppbnZhbGlkYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlclBy
b3h5Ojppbml0aWFsaXplUHJvdmlkZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRp
b25NYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Tm90aWZpY2F0aW9uTWFuYWdlclByb3h5OjpzaG93KToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90
aWZpY2F0aW9uTWFuYWdlclByb3h5OjpjYW5jZWwpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJO
b3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYk5v
dGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6Y2xlYXJDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6
V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5Ojp0eXBlKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0MvV0tOb3RpZmljYXRpb25NYW5hZ2VyLmNwcDogQWRkZWQuCisgICAg
ICAgIChXS05vdGlmaWNhdGlvbk1hbmFnZXJHZXRUeXBlSUQpOgorICAgICAgICAoV0tOb3RpZmlj
YXRpb25NYW5hZ2VyU2V0UHJvdmlkZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS05v
dGlmaWNhdGlvbk1hbmFnZXIuaDogQWRkZWQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29u
dGV4dC5oOiBBZGQgdGhlIG5vdGlmaWNhdGlvbiBtYW5hZ2VyIHRvIHRoZSB3ZWIgY29udGV4dC4K
KyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6bm90aWZpY2F0aW9uTWFuYWdlclByb3h5KTog
QWNjZXNzIHRoZSBtYW5hZ2VyLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6V2ViQ29udGV4dCk6IEJvaWxlcnBsYXRlIGZv
ciBtYW5hZ2Vycy4KKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6fldlYkNvbnRleHQpOiBC
b2lsZXJwbGF0ZSBmb3IgbWFuYWdlcnMuCisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OmRp
c2Nvbm5lY3RQcm9jZXNzKTogQm9pbGVycGxhdGUgZm9yIG1hbmFnZXJzLgorICAgICAgICAoV2Vi
S2l0OjpXZWJDb250ZXh0OjpkaWRSZWNlaXZlTWVzc2FnZSk6IEZvcndhcmQgbWVzc2FnZXMgdG8g
dGhlIG5vdGlmaWNhdGlvbiBtYW5hZ2VyLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0Nv
bnRleHQuY3BwOiBFeHBvc2UgYXMgQVBJLgorICAgICAgICAoV0tDb250ZXh0R2V0Tm90aWZpY2F0
aW9uTWFuYWdlcik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oOiBFeHBv
c2UgYXMgQVBJLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9uUHJv
dmlkZXIuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYk5vdGlmaWNhdGlvblByb3Zp
ZGVyLmg6IEFkZGVkIGFzIEFQSUNsaWVudC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViTm90aWZp
Y2F0aW9uUHJvdmlkZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0
aW9uUHJvdmlkZXI6OnNob3cpOiBGb3J3YXJkIGNhbGwgdG8gdGhlIGNsaWVudC4KKyAgICAgICAg
KFdlYktpdDo6V2ViTm90aWZpY2F0aW9uUHJvdmlkZXI6OmNhbmNlbCk6IEZvcndhcmQgY2FsbCB0
byB0aGUgY2xpZW50LgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKTogRm9y
d2FyZCBtZXNzYWdlcyBmb3Igbm90aWZpY2F0aW9uIG1hbmFnZXIgdG8gdGhlIGNvbnRleHQuCisK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6
IFJlbW92ZSBub3RpZmljYXRpb25QcmVzZW50ZXIoKS4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOiBSZW1vdmUgbm90aWZpY2F0aW9uUHJlc2Vu
dGVyKCkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNh
dGlvbkNsaWVudC5oOiBBZGRlZC4gRm9yd2FyZHMgY2xpZW50IG1ldGhvZHMgdG8gbWFuYWdlci4K
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVu
dC5jcHA6IEFkZGVkLiBNb3N0bHkgc3R1YiBpbXBsZW1lbnRhdGlvbiBmb3Igbm93LgorICAgICAg
ICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25DbGllbnQ6OldlYk5vdGlmaWNhdGlvbkNsaWVudCk6
CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbkNsaWVudDo6fldlYk5vdGlmaWNhdGlv
bkNsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbkNsaWVudDo6c2hvdyk6
CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbkNsaWVudDo6Y2FuY2VsKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uQ2xpZW50Ojpub3RpZmljYXRpb25PYmplY3REZXN0
cm95ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25DbGllbnQ6OnJlcXVlc3RQ
ZXJtaXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uQ2xpZW50OjpjYW5j
ZWxSZXF1ZXN0c0ZvclBlcm1pc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRp
b25DbGllbnQ6OmNoZWNrUGVybWlzc2lvbik6CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oOiBBZGRlZCBXZWJOb3RpZmljYXRpb25DbGllbnQgYXMgb25lIG9mIGl0cyBw
YWdlIGNsaWVudHMuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpXZWJQYWdlKTogU2V0IHRoZSBub3RpZmljYXRpb24g
Y2xpZW50IHRvIFdlYk5vdGlmaWNhdGlvbkNsaWVudC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlByb2Nlc3MuaDogQWRkZWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlci4KKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzczo6bm90aWZpY2F0aW9uTWFuYWdlcik6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6V2ViUHJvY2Vz
cyk6IEluaXRpYWxpemUgbm90aWZpY2F0b24gbWFuYWdlci4KKwogMjAxMS0xMS0yOCAgSmVzdXMg
U2FuY2hlei1QYWxlbmNpYSAgPGplc3VzLnBhbGVuY2lhQG9wZW5ib3NzYS5vcmc+CiAKICAgICAg
ICAgW1F0XVtXSzJdIEZpeCBwYW5uaW5nIGFmdGVyIHIxMDExNzkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2Nv
bmZpZwppbmRleCA1MmYwMDg2YmQ0ODM3MjI1ZDNhZGVlM2E3OWFjOTQ0MGJhN2NhZjcyLi5iNmFj
MmFiYTI4ZWM2ZGRmZjJhOTdmNTdhYmNmZDk3OGVmZmMyNDRhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhj
Y29uZmlnCkBAIC05NCw3ICs5NCwxMCBAQCBFTkFCTEVfTUVESUFfU1RBVElTVElDUyA9IDsKIEVO
QUJMRV9NRVRFUl9UQUcgPSBFTkFCTEVfTUVURVJfVEFHOwogRU5BQkxFX01IVE1MID0gOwogRU5B
QkxFX01VVEFUSU9OX09CU0VSVkVSUyA9IDsKLUVOQUJMRV9OT1RJRklDQVRJT05TID0gOworCitF
TkFCTEVfTk9USUZJQ0FUSU9OUyA9ICQoRU5BQkxFX05PVElGSUNBVElPTlNfJChSRUFMX1BMQVRG
T1JNX05BTUUpKTsKK0VOQUJMRV9OT1RJRklDQVRJT05TX21hY29zeCA9IDsKKwogRU5BQkxFX1BB
R0VfVklTSUJJTElUWV9BUEkgPSA7CiBFTkFCTEVfUFJPR1JFU1NfVEFHID0gRU5BQkxFX1BST0dS
RVNTX1RBRzsKIEVOQUJMRV9RVU9UQSA9IDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Nv
bmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL1dlYkNvcmUvQ29u
ZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKaW5kZXggNTJmMDA4NmJkNDgzNzIy
NWQzYWRlZTNhNzlhYzk0NDBiYTdjYWY3Mi4uYjZhYzJhYmEyOGVjNmRkZmYyYTk3ZjU3YWJjZmQ5
NzhlZmZjMjQ0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVh
dHVyZURlZmluZXMueGNjb25maWcKKysrIGIvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMv
RmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTk0LDcgKzk0LDEwIEBAIEVOQUJMRV9NRURJQV9T
VEFUSVNUSUNTID0gOwogRU5BQkxFX01FVEVSX1RBRyA9IEVOQUJMRV9NRVRFUl9UQUc7CiBFTkFC
TEVfTUhUTUwgPSA7CiBFTkFCTEVfTVVUQVRJT05fT0JTRVJWRVJTID0gOwotRU5BQkxFX05PVElG
SUNBVElPTlMgPSA7CisKK0VOQUJMRV9OT1RJRklDQVRJT05TID0gJChFTkFCTEVfTk9USUZJQ0FU
SU9OU18kKFJFQUxfUExBVEZPUk1fTkFNRSkpOworRU5BQkxFX05PVElGSUNBVElPTlNfbWFjb3N4
ID0gOworCiBFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSA9IDsKIEVOQUJMRV9QUk9HUkVTU19U
QUcgPSBFTkFCTEVfUFJPR1JFU1NfVEFHOwogRU5BQkxFX1FVT1RBID0gOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5k
ZXggYmYxMjAxYzBkMDc1NzFmNzkyNzAzOTFkMTAxYzQyZmNhNDUyZTZkOC4uYjVkNzk4NzIyODJi
Y2RjZTA5OTY1YWE5NmRkMjkwMTI1NmQyOWIxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
VGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC05NTQsNiArOTU0
LDcgQEAgU09VUkNFUyArPSBcCiAgICAgbG9hZGVyL1RocmVhZGFibGVMb2FkZXIuY3BwIFwKICAg
ICBub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHAgXAogICAgIG5vdGlmaWNhdGlvbnMvTm90
aWZpY2F0aW9uQ2VudGVyLmNwcCBcCisgICAgbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25Db250
cm9sbGVyLmNwcCBcCiAgICAgcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5jcHAgXAogICAg
IHBhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIuY3BwIFwKICAgICBwYWdlL2FuaW1h
dGlvbi9Db21wb3NpdGVBbmltYXRpb24uY3BwIFwKQEAgLTIwMDQsNiArMjAwNSw3IEBAIEhFQURF
UlMgKz0gXAogICAgIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmggXAogICAgIG5v
dGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUHJlc2VudGVyLmggXAogICAgIG5vdGlmaWNhdGlvbnMv
Tm90aWZpY2F0aW9uQ29udGVudHMuaCBcCisgICAgbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25D
b250cm9sbGVyLmggXAogICAgIHBhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuaCBcCiAgICAg
cGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxlci5oIFwKICAgICBwYWdlL2FuaW1hdGlv
bi9Db21wb3NpdGVBbmltYXRpb24uaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggM2QxMmE3OGJkMWUw
OWVkNmQ2NmMzZjMwNTAyZjgzMjkwOTAwMjhhYS4uOGQ1ODIzMWRiZDJhMjc1MGM3ZTJhNTUyOTc0
ZWMwNDNjOGQ5MDU5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNTgzLDYgKzU4Myw3IEBACiAgICAg
ICAgICAgICAnbG9hZGVyL1N1YnN0aXR1dGVSZXNvdXJjZS5oJywKICAgICAgICAgICAgICdsb2Fk
ZXIvVGV4dFJlc291cmNlRGVjb2Rlci5oJywKICAgICAgICAgICAgICdsb2FkZXIvVGhyZWFkYWJs
ZUxvYWRlci5oJywKKyAgICAgICAgICAgICdsb2FkZXIvVGhyZWFkYWJsZUxvYWRlckNsaWVudC5o
JywKICAgICAgICAgICAgICdsb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZS5oJywKICAg
ICAgICAgICAgICdsb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuaCcsCiAg
ICAgICAgICAgICAnbG9hZGVyL2FyY2hpdmUvQXJjaGl2ZS5oJywKQEAgLTYwNSw2ICs2MDYsNyBA
QAogICAgICAgICAgICAgJ2xvYWRlci9pY29uL0ljb25EYXRhYmFzZUJhc2UuaCcsCiAgICAgICAg
ICAgICAnbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlQ2xpZW50LmgnLAogICAgICAgICAgICAgJ2xv
YWRlci9tYWMvTG9hZGVyTlNVUkxFeHRyYXMuaCcsCisgICAgICAgICAgICAnbm90aWZpY2F0aW9u
cy9Ob3RpZmljYXRpb25Db250ZW50cy5oJywKICAgICAgICAgICAgICdub3RpZmljYXRpb25zL05v
dGlmaWNhdGlvblByZXNlbnRlci5oJywKICAgICAgICAgICAgICdwYWdlL0Nocm9tZS5oJywKICAg
ICAgICAgICAgICdwYWdlL0Nocm9tZUNsaWVudC5oJywKQEAgLTI5NDgsNiArMjk1MCw3IEBACiAg
ICAgICAgICAgICAnbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuY3BwJywKICAgICAg
ICAgICAgICdub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5oJywKICAgICAgICAgICAg
ICdub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNvbnRlbnRzLmgnLAorICAgICAgICAgICAgJ25v
dGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ29udHJvbGxlci5oJywKICAgICAgICAgICAgICdwYWdl
L0JhckluZm8uY3BwJywKICAgICAgICAgICAgICdwYWdlL0JhckluZm8uaCcsCiAgICAgICAgICAg
ICAncGFnZS9DaHJvbWUuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAzM2MxNGJlYTVhZTgwNDQ5OTVjMDkwMWJhM2NiNmU5
ZTM3OTY2MzAyLi5hNTY5MjgyNmNiYmJlYzMzN2RjZTk5YmIwOTZjZWMzNjc5ZTE3MDZlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC0yMTQsNyArMjE0LDcgQEAKIAkJMEI5MDU2MTkwRjI1NzhCRTAwOTVGRjZBIC8qIERvY3VtZW50
VGhyZWFkYWJsZUxvYWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwQjkwNTYxNTBGMjU3OEJFMDA5NUZGNkEgLyogRG9jdW1lbnRUaHJlYWRhYmxl
TG9hZGVyLmNwcCAqLzsgfTsKIAkJMEI5MDU2MUEwRjI1NzhCRjAwOTVGRjZBIC8qIERvY3VtZW50
VGhyZWFkYWJsZUxvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEI5MDU2MTYwRjI1NzhCRTAwOTVGRjZBIC8qIERvY3VtZW50VGhyZWFkYWJsZUxv
YWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKCk7IH07IH07CiAJCTBCOTA1NjFC
MEYyNTc4QkYwMDk1RkY2QSAvKiBUaHJlYWRhYmxlTG9hZGVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwQjkwNTYxNzBGMjU3OEJFMDA5NUZGNkEgLyog
VGhyZWFkYWJsZUxvYWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07Ci0JCTBCOTA1NjFDMEYyNTc4QkYwMDk1RkY2QSAvKiBUaHJlYWRhYmxlTG9hZGVy
Q2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
QjkwNTYxODBGMjU3OEJFMDA5NUZGNkEgLyogVGhyZWFkYWJsZUxvYWRlckNsaWVudC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKCk7IH07IH07CisJCTBCOTA1NjFDMEYyNTc4QkYwMDk1
RkY2QSAvKiBUaHJlYWRhYmxlTG9hZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwQjkwNTYxODBGMjU3OEJFMDA5NUZGNkEgLyogVGhyZWFk
YWJsZUxvYWRlckNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTBCOTA1NjFFMEYyNTdFOTMwMDk1RkY2QSAvKiBUaHJlYWRhYmxlTG9hZGVy
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBCOTA1
NjFEMEYyNTdFOTMwMDk1RkY2QSAvKiBUaHJlYWRhYmxlTG9hZGVyLmNwcCAqLzsgfTsKIAkJMEI5
MDU2RjgwRjI2ODVGMzAwOTVGRjZBIC8qIFdvcmtlclRocmVhZGFibGVMb2FkZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEI5MDU2RjYwRjI2ODVG
MzAwOTVGRjZBIC8qIFdvcmtlclRocmVhZGFibGVMb2FkZXIuY3BwICovOyB9OwogCQkwQjkwNTZG
OTBGMjY4NUYzMDA5NUZGNkEgLyogV29ya2VyVGhyZWFkYWJsZUxvYWRlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEI5MDU2RjcwRjI2ODVGMzAwOTVG
RjZBIC8qIFdvcmtlclRocmVhZGFibGVMb2FkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9ICgpOyB9OyB9OwpAQCAtODAyLDYgKzgwMiw5IEBACiAJCTMxMjg4RTczMEUzMDA1RDYwMDM2
MTlBRSAvKiBXZWJLaXRDU1NLZXlmcmFtZVJ1bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMjg4RTZGMEUzMDA1RDYwMDM2MTlBRSAvKiBXZWJLaXRD
U1NLZXlmcmFtZVJ1bGUuaCAqLzsgfTsKIAkJMzEyODhFNzQwRTMwMDVENjAwMzYxOUFFIC8qIFdl
YktpdENTU0tleWZyYW1lc1J1bGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMzEyODhFNzAwRTMwMDVENjAwMzYxOUFFIC8qIFdlYktpdENTU0tleWZy
YW1lc1J1bGUuY3BwICovOyB9OwogCQkzMTI4OEU3NTBFMzAwNUQ2MDAzNjE5QUUgLyogV2ViS2l0
Q1NTS2V5ZnJhbWVzUnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMzEyODhFNzEwRTMwMDVENjAwMzYxOUFFIC8qIFdlYktpdENTU0tleWZyYW1lc1J1
bGUuaCAqLzsgfTsKKwkJMzEyOENBNjgxNDczMzE1MjAwNzRDNzJBIC8qIE5vdGlmaWNhdGlvbkNv
bnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMzEyOENBNjcxNDczMzE1MjAwNzRDNzJBIC8qIE5vdGlmaWNhdGlvbkNvbnRyb2xsZXIuY3Bw
ICovOyB9OworCQkzMTI4Q0E2QjE0NzMzMTYzMDA3NEM3MkEgLyogTm90aWZpY2F0aW9uQ29udHJv
bGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEy
OENBNkExNDczMzE2MzAwNzRDNzJBIC8qIE5vdGlmaWNhdGlvbkNvbnRyb2xsZXIuaCAqLzsgfTsK
KwkJMzEyQzBDNDExNDZEQzZDQzAwMTZDOTExIC8qIE5vdGlmaWNhdGlvbi5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzMzRjcwNEYwRkI0OUNBMjAwOEUx
MkE2IC8qIE5vdGlmaWNhdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTMxMzEzRjY1MTQ0M0IzNUYwMDZFMkE5MCAvKiBGaWx0ZXJFZmZlY3RS
ZW5kZXJlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAzMTMxM0Y2MzE0NDNCMzVFMDA2RTJBOTAgLyogRmlsdGVyRWZmZWN0UmVuZGVyZXIuY3BwICov
OyB9OwogCQkzMTMxM0Y2NjE0NDNCMzVGMDA2RTJBOTAgLyogRmlsdGVyRWZmZWN0UmVuZGVyZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMzEzRjY0
MTQ0M0IzNUUwMDZFMkE5MCAvKiBGaWx0ZXJFZmZlY3RSZW5kZXJlci5oICovOyB9OwogCQkzMTM4
QTlFNTE0NzQ0MzQ2MDBCMEVEMTIgLyogU3R5bGVTaGFkZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMzhBOUU0MTQ3NDQzNDYwMEIwRUQxMiAvKiBT
dHlsZVNoYWRlci5oICovOyB9OwpAQCAtODg1LDcgKzg4OCw3IEBACiAJCTMzNTAzQ0M3MTAxN0Ex
QjEwMDNCNDdFMSAvKiBOb3RpZmljYXRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMzM1MDNDQzYxMDE3QTFCMTAwM0I0N0UxIC8qIE5vdGlmaWNh
dGlvbi5jcHAgKi87IH07CiAJCTMzOTBDQTU1MEZGQzE1N0IwMDkyMTk2MiAvKiBOb3RpZmljYXRp
b25DZW50ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMzM5MENBNTEwRkZDMTU3QjAwOTIxOTYyIC8qIE5vdGlmaWNhdGlvbkNlbnRlci5jcHAgKi87
IH07CiAJCTMzOTBDQTU2MEZGQzE1N0IwMDkyMTk2MiAvKiBOb3RpZmljYXRpb25DZW50ZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMzOTBDQTUyMEZG
QzE1N0IwMDkyMTk2MiAvKiBOb3RpZmljYXRpb25DZW50ZXIuaCAqLzsgfTsKLQkJMzM5MENBNTgw
RkZDMTU3QjAwOTIxOTYyIC8qIE5vdGlmaWNhdGlvbkNvbnRlbnRzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMzkwQ0E1NDBGRkMxNTdCMDA5MjE5NjIg
LyogTm90aWZpY2F0aW9uQ29udGVudHMuaCAqLzsgfTsKKwkJMzM5MENBNTgwRkZDMTU3QjAwOTIx
OTYyIC8qIE5vdGlmaWNhdGlvbkNvbnRlbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAzMzkwQ0E1NDBGRkMxNTdCMDA5MjE5NjIgLyogTm90aWZpY2F0
aW9uQ29udGVudHMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQkzMzlCNUI2MzEzMURBQTMyMDBGNDhEMDIgLyogQ29va2llc1N0cmF0ZWd5LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMzlCNUI2MjEzMURB
QTMyMDBGNDhEMDIgLyogQ29va2llc1N0cmF0ZWd5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMzNDMENDRDQxMTJDNUU2MjAwQ0UwNTdEIC8qIFNl
Y3VyZVRleHRJbnB1dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAzM0MwQ0NEMjExMkM1RTYyMDBDRTA1N0QgLyogU2VjdXJlVGV4dElucHV0LmNwcCAq
LzsgfTsKIAkJMzNDMENDRDUxMTJDNUU2MjAwQ0UwNTdEIC8qIFNlY3VyZVRleHRJbnB1dC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzNDMENDRDMxMTJD
NUU2MjAwQ0UwNTdEIC8qIFNlY3VyZVRleHRJbnB1dC5oICovOyB9OwpAQCAtNzk0NSw2ICs3OTQ4
LDggQEAKIAkJMzEyODhFNkYwRTMwMDVENjAwMzYxOUFFIC8qIFdlYktpdENTU0tleWZyYW1lUnVs
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJLaXRDU1NLZXlmcmFtZVJ1
bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzEyODhFNzAwRTMwMDVENjAwMzYx
OUFFIC8qIFdlYktpdENTU0tleWZyYW1lc1J1bGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTMxMjg4RTcxMEUzMDA1RDYwMDM2MTlBRSAvKiBXZWJLaXRDU1NLZXlm
cmFtZXNSdWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYktpdENTU0tl
eWZyYW1lc1J1bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzEyOENBNjcxNDcz
MzE1MjAwNzRDNzJBIC8qIE5vdGlmaWNhdGlvbkNvbnRyb2xsZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTm90aWZpY2F0aW9uQ29udHJvbGxlci5jcHA7IHBhdGgg
PSBub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNvbnRyb2xsZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkzMTI4Q0E2QTE0NzMzMTYzMDA3NEM3MkEgLyogTm90aWZpY2F0aW9u
Q29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBOb3RpZmljYXRp
b25Db250cm9sbGVyLmg7IHBhdGggPSBub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNvbnRyb2xs
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzEzMTNGNjMxNDQzQjM1RTAwNkUy
QTkwIC8qIEZpbHRlckVmZmVjdFJlbmRlcmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEZpbHRlckVmZmVjdFJlbmRlcmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMzEzMTNGNjQxNDQzQjM1RTAwNkUyQTkwIC8qIEZpbHRlckVmZmVjdFJlbmRl
cmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZpbHRlckVmZmVjdFJlbmRl
cmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxMzhBOUU0MTQ3NDQzNDYwMEIw
RUQxMiAvKiBTdHlsZVNoYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBT
dHlsZVNoYWRlci5oOyBwYXRoID0gc3R5bGUvU3R5bGVTaGFkZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTE0Nzk2LDYgKzE0ODAxLDggQEAKIAkJCQkzMzkwQ0E1MzBGRkMxNTdC
MDA5MjE5NjIgLyogTm90aWZpY2F0aW9uQ2VudGVyLmlkbCAqLywKIAkJCQkzMzkwQ0E1NDBGRkMx
NTdCMDA5MjE5NjIgLyogTm90aWZpY2F0aW9uQ29udGVudHMuaCAqLywKIAkJCQkzMzUwM0M5OTEw
MTc5QTc0MDAzQjQ3RTEgLyogTm90aWZpY2F0aW9uUHJlc2VudGVyLmggKi8sCisJCQkJMzEyOENB
NjcxNDczMzE1MjAwNzRDNzJBIC8qIE5vdGlmaWNhdGlvbkNvbnRyb2xsZXIuY3BwICovLAorCQkJ
CTMxMjhDQTZBMTQ3MzMxNjMwMDc0QzcyQSAvKiBOb3RpZmljYXRpb25Db250cm9sbGVyLmggKi8s
CiAJCQkpOwogCQkJbmFtZSA9IG5vdGlmaWNhdGlvbnM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOwpAQCAtMjQ3OTQsNiArMjQ4MDEsOCBAQAogCQkJCTAzM0E2QTdDMTQ3RTA3RDIwMDUwOUIz
NiAvKiBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTAzM0E2
QTgzMTQ3RTA4QTYwMDUwOUIzNiAvKiBKU0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJN0FBNTFCNkUxNDgzQjYxNjAwQUQyNzUyIC8qIEluc3BlY3RvckJhc2VB
Z2VudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzEyQzBDNDExNDZEQzZDQzAwMTZDOTExIC8qIE5v
dGlmaWNhdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzEyOENBNkIxNDczMzE2MzAwNzRDNzJB
IC8qIE5vdGlmaWNhdGlvbkNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1
bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjc2NzYsNiAr
Mjc2ODUsNyBAQAogCQkJCTAzM0E2QTdFMTQ3RTA3RTcwMDUwOUIzNiAvKiBIVE1MUHJvcGVydGll
c0NvbGxlY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDMzQTZBODExNDdFMDg4NjAwNTA5
QjM2IC8qIEpTSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTdBQTUxQjZGMTQ4M0I2MTYwMEFEMjc1MiAvKiBJbnNwZWN0b3JCYXNlQWdlbnQuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJMzEyOENBNjgxNDczMzE1MjAwNzRDNzJBIC8qIE5vdGlmaWNhdGlvbkNv
bnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1l
bnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRW1wdHlDbGllbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRz
LmgKaW5kZXggM2Y4YThhNmFiNmEzNzExNjY2MTZmYWJmMzU1ZGM5ZjE1NzY0MWQ3My4uZGYxNWVk
Y2JkNDc0YWFiMGY4MzE2OWQwMWQyOGI4YTczMDM1ZGY4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9F
bXB0eUNsaWVudHMuaApAQCAtMTg3LDEwICsxODcsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIHJlYWNoZWRNYXhBcHBDYWNoZVNpemUoaW50NjRfdCkgeyB9CiAgICAgdmlydHVhbCB2b2lk
IHJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoU2VjdXJpdHlPcmlnaW4qLCBpbnQ2
NF90KSB7IH0KIAotI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQotICAgIHZpcnR1YWwgTm90aWZp
Y2F0aW9uUHJlc2VudGVyKiBub3RpZmljYXRpb25QcmVzZW50ZXIoKSBjb25zdCB7IHJldHVybiAw
OyB9Ci0jZW5kaWYKLQogI2lmIEVOQUJMRShESVJFQ1RPUllfVVBMT0FEKQogICAgIHZpcnR1YWwg
dm9pZCBlbnVtZXJhdGVDaG9zZW5EaXJlY3RvcnkoRmlsZUNob29zZXIqKSB7IH0KICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwCmluZGV4IGRk
ZGY3MWE3Y2Y0ZWJkODlhNzIyNWQ2NWVmODJmMmUzMzNjMDRmN2EuLjM0NDQyNDJjYjVjMThmZjFi
MDM0OWFiYjgxNTA2OTgzOWE4ZDc0MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL25vdGlm
aWNhdGlvbnMvTm90aWZpY2F0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRp
b25zL05vdGlmaWNhdGlvbi5jcHAKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChD
KSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDA5LCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTQ3LDYgKzQ3LDExIEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAorTm90aWZpY2F0aW9uOjpOb3RpZmljYXRpb24oKQorICAgIDogQWN0aXZlRE9NT2Jq
ZWN0KDAsIHRoaXMpCit7Cit9CisKIE5vdGlmaWNhdGlvbjo6Tm90aWZpY2F0aW9uKGNvbnN0IEtV
UkwmIHVybCwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgRXhjZXB0aW9uQ29kZSYg
ZWMsIFBhc3NSZWZQdHI8Tm90aWZpY2F0aW9uQ2VudGVyPiBwcm92aWRlcikKICAgICA6IEFjdGl2
ZURPTU9iamVjdChjb250ZXh0LCB0aGlzKQogICAgICwgbV9pc0hUTUwodHJ1ZSkKQEAgLTgwLDcg
Kzg1LDcgQEAgTm90aWZpY2F0aW9uOjpOb3RpZmljYXRpb24oY29uc3QgTm90aWZpY2F0aW9uQ29u
dGVudHMmIGNvbnRlbnRzLCBTY3JpcHRFeGVjdXRpb24KICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIGlmICghY29udGVudHMuaWNvbigpLmlzRW1wdHkoKSAmJiAhY29udGVudHMuaWNvbigp
LmlzVmFsaWQoKSkgeworICAgIGlmICghY29udGVudHMuaWNvbi5pc0VtcHR5KCkgJiYgIWNvbnRl
bnRzLmljb24uaXNWYWxpZCgpKSB7CiAgICAgICAgIGVjID0gU1lOVEFYX0VSUjsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMv
Tm90aWZpY2F0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlv
bi5oCmluZGV4IGE4MGVjNzRiY2ZhY2IxMjcyNzFlZTBiMDVkNzljNmY0OGYyMTQ5MGYuLmJiNDBh
ODA5NDgxNDhjZmFhOTAwZjU2MWM5MjhhNGE1YTJjNzI5ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
bm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uaApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5
cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHly
aWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMDksIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtNDksMTAyICs0OSwxMTAgQEAKICNpZiBF
TkFCTEUoTk9USUZJQ0FUSU9OUykKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotICAgIGNsYXNzIE5v
dGlmaWNhdGlvbkNlbnRlcjsKLSAgICBjbGFzcyBSZXNvdXJjZUVycm9yOwotICAgIGNsYXNzIFJl
c291cmNlUmVzcG9uc2U7Ci0gICAgY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKLSAgICBj
bGFzcyBUaHJlYWRhYmxlTG9hZGVyOworY2xhc3MgTm90aWZpY2F0aW9uQ2VudGVyOworY2xhc3Mg
UmVzb3VyY2VFcnJvcjsKK2NsYXNzIFJlc291cmNlUmVzcG9uc2U7CitjbGFzcyBTY3JpcHRFeGVj
dXRpb25Db250ZXh0OworY2xhc3MgVGhyZWFkYWJsZUxvYWRlcjsKIAotICAgIHR5cGVkZWYgaW50
IEV4Y2VwdGlvbkNvZGU7Cit0eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOwogCi0gICAgY2xhc3Mg
Tm90aWZpY2F0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8Tm90aWZpY2F0aW9uPiwgcHVibGljIEFj
dGl2ZURPTU9iamVjdCwgcHVibGljIFRocmVhZGFibGVMb2FkZXJDbGllbnQsIHB1YmxpYyBFdmVu
dFRhcmdldCB7Ci0gICAgICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotICAgIHB1YmxpYzoK
LSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8Tm90aWZpY2F0aW9uPiBjcmVhdGUoY29uc3QgS1VS
TCYgdXJsLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBFeGNlcHRpb25Db2RlJiBl
YywgUGFzc1JlZlB0cjxOb3RpZmljYXRpb25DZW50ZXI+IHByb3ZpZGVyKTsKLSAgICAgICAgc3Rh
dGljIFBhc3NSZWZQdHI8Tm90aWZpY2F0aW9uPiBjcmVhdGUoY29uc3QgTm90aWZpY2F0aW9uQ29u
dGVudHMmIGNvbnRlbnRzLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBFeGNlcHRp
b25Db2RlJiBlYywgUGFzc1JlZlB0cjxOb3RpZmljYXRpb25DZW50ZXI+IHByb3ZpZGVyKTsKLSAg
ICAgICAgCi0gICAgICAgIHZpcnR1YWwgfk5vdGlmaWNhdGlvbigpOworY2xhc3MgTm90aWZpY2F0
aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8Tm90aWZpY2F0aW9uPiwgcHVibGljIEFjdGl2ZURPTU9i
amVjdCwgcHVibGljIFRocmVhZGFibGVMb2FkZXJDbGllbnQsIHB1YmxpYyBFdmVudFRhcmdldCB7
CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgTm90aWZpY2F0aW9u
KCk7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8Tm90aWZpY2F0aW9uPiBjcmVhdGUoY29uc3QgS1VS
TCYsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBFeGNlcHRpb25Db2RlJiwgUGFzc1JlZlB0cjxO
b3RpZmljYXRpb25DZW50ZXI+IHByb3ZpZGVyKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxOb3Rp
ZmljYXRpb24+IGNyZWF0ZShjb25zdCBOb3RpZmljYXRpb25Db250ZW50cyYsIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqLCBFeGNlcHRpb25Db2RlJiwgUGFzc1JlZlB0cjxOb3RpZmljYXRpb25DZW50
ZXI+IHByb3ZpZGVyKTsKKyAgICAKKyAgICB2aXJ0dWFsIH5Ob3RpZmljYXRpb24oKTsKKworICAg
IHZvaWQgc2hvdygpOworICAgIHZvaWQgY2FuY2VsKCk7CiAKLSAgICAgICAgdm9pZCBzaG93KCk7
Ci0gICAgICAgIHZvaWQgY2FuY2VsKCk7CisgICAgYm9vbCBpc0hUTUwoKSBjb25zdCB7IHJldHVy
biBtX2lzSFRNTDsgfQorICAgIHZvaWQgc2V0SFRNTChib29sIGlzSFRNTCkgeyBtX2lzSFRNTCA9
IGlzSFRNTDsgfQorICAgIAorICAgIEtVUkwgdXJsKCkgY29uc3QgeyByZXR1cm4gbV9ub3RpZmlj
YXRpb25VUkw7IH0KKyAgICB2b2lkIHNldFVSTChLVVJMIHVybCkgeyBtX25vdGlmaWNhdGlvblVS
TCA9IHVybDsgfQorICAgIAorICAgIEtVUkwgaWNvblVSTCgpIHsgcmV0dXJuIG1fY29udGVudHMu
aWNvbjsgfQogICAgIAotICAgICAgICBib29sIGlzSFRNTCgpIHsgcmV0dXJuIG1faXNIVE1MOyB9
Ci0gICAgICAgIEtVUkwgdXJsKCkgeyByZXR1cm4gbV9ub3RpZmljYXRpb25VUkw7IH0KLSAgICAg
ICAgS1VSTCBpY29uVVJMKCkgeyByZXR1cm4gbV9jb250ZW50cy5pY29uKCk7IH0KLSAgICAgICAg
Tm90aWZpY2F0aW9uQ29udGVudHMmIGNvbnRlbnRzKCkgeyByZXR1cm4gbV9jb250ZW50czsgfQor
ICAgIGNvbnN0IE5vdGlmaWNhdGlvbkNvbnRlbnRzJiBjb250ZW50cygpIGNvbnN0IHsgcmV0dXJu
IG1fY29udGVudHM7IH0KKyAgICBOb3RpZmljYXRpb25Db250ZW50cyYgY29udGVudHMoKSB7IHJl
dHVybiBtX2NvbnRlbnRzOyB9CiAKLSAgICAgICAgU3RyaW5nIGRpcigpIGNvbnN0IHsgcmV0dXJu
IG1fZGlyZWN0aW9uOyB9Ci0gICAgICAgIHZvaWQgc2V0RGlyKGNvbnN0IFN0cmluZyYgZGlyKSB7
IG1fZGlyZWN0aW9uID0gZGlyOyB9Ci0gICAgICAgIFN0cmluZyByZXBsYWNlSWQoKSBjb25zdCB7
IHJldHVybiBtX3JlcGxhY2VJZDsgfQotICAgICAgICB2b2lkIHNldFJlcGxhY2VJZChjb25zdCBT
dHJpbmcmIHJlcGxhY2VJZCkgeyBtX3JlcGxhY2VJZCA9IHJlcGxhY2VJZDsgfQorICAgIFN0cmlu
ZyBkaXIoKSBjb25zdCB7IHJldHVybiBtX2RpcmVjdGlvbjsgfQorICAgIHZvaWQgc2V0RGlyKGNv
bnN0IFN0cmluZyYgZGlyKSB7IG1fZGlyZWN0aW9uID0gZGlyOyB9CisgICAgCisgICAgU3RyaW5n
IHJlcGxhY2VJZCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVwbGFjZUlkOyB9CisgICAgdm9pZCBzZXRS
ZXBsYWNlSWQoY29uc3QgU3RyaW5nJiByZXBsYWNlSWQpIHsgbV9yZXBsYWNlSWQgPSByZXBsYWNl
SWQ7IH0KIAotICAgICAgICBUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbigpIGNvbnN0IHsgcmV0dXJu
IGRpcigpID09ICJydGwiID8gUlRMIDogTFRSOyB9CisgICAgVGV4dERpcmVjdGlvbiBkaXJlY3Rp
b24oKSBjb25zdCB7IHJldHVybiBkaXIoKSA9PSAicnRsIiA/IFJUTCA6IExUUjsgfQogCi0gICAg
ICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIoZGlzcGxheSk7Ci0gICAgICAgIERF
RklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIoZXJyb3IpOwotICAgICAgICBERUZJTkVfQVRU
UklCVVRFX0VWRU5UX0xJU1RFTkVSKGNsb3NlKTsKLSAgICAgICAgREVGSU5FX0FUVFJJQlVURV9F
VkVOVF9MSVNURU5FUihjbGljayk7CisgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5F
UihkaXNwbGF5KTsKKyAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGVycm9yKTsK
KyAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGNsb3NlKTsKKyAgICBERUZJTkVf
QVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGNsaWNrKTsKIAotICAgICAgICB1c2luZyBSZWZDb3Vu
dGVkPE5vdGlmaWNhdGlvbj46OnJlZjsKLSAgICAgICAgdXNpbmcgUmVmQ291bnRlZDxOb3RpZmlj
YXRpb24+OjpkZXJlZjsKKyAgICB1c2luZyBSZWZDb3VudGVkPE5vdGlmaWNhdGlvbj46OnJlZjsK
KyAgICB1c2luZyBSZWZDb3VudGVkPE5vdGlmaWNhdGlvbj46OmRlcmVmOwogCi0gICAgICAgIC8v
IEV2ZW50VGFyZ2V0IGludGVyZmFjZQotICAgICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmlu
ZyYgaW50ZXJmYWNlTmFtZSgpIGNvbnN0OwotICAgICAgICB2aXJ0dWFsIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCB7IHJldHVybiBBY3RpdmVE
T01PYmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsgfQorICAgIC8vIEV2ZW50VGFyZ2V0
IGludGVyZmFjZQorICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBpbnRlcmZhY2VOYW1l
KCkgY29uc3Q7CisgICAgdmlydHVhbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVj
dXRpb25Db250ZXh0KCkgY29uc3QgeyByZXR1cm4gQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVj
dXRpb25Db250ZXh0KCk7IH0KIAotICAgICAgICAvLyBBY3RpdmVET01PYmplY3QgaW50ZXJmYWNl
Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBjb250ZXh0RGVzdHJveWVkKCk7CisgICAgLy8gQWN0aXZl
RE9NT2JqZWN0IGludGVyZmFjZQorICAgIHZpcnR1YWwgdm9pZCBjb250ZXh0RGVzdHJveWVkKCk7
CiAKLSAgICAgICAgdm9pZCBzdG9wTG9hZGluZygpOworICAgIHZvaWQgc3RvcExvYWRpbmcoKTsK
IAotICAgICAgICBTaGFyZWRCdWZmZXIqIGljb25EYXRhKCkgeyByZXR1cm4gbV9pY29uRGF0YS5n
ZXQoKTsgfQotICAgICAgICB2b2lkIHJlbGVhc2VJY29uRGF0YSgpIHsgbV9pY29uRGF0YSA9IDA7
IH0KKyAgICBTaGFyZWRCdWZmZXIqIGljb25EYXRhKCkgeyByZXR1cm4gbV9pY29uRGF0YS5nZXQo
KTsgfQorICAgIHZvaWQgcmVsZWFzZUljb25EYXRhKCkgeyBtX2ljb25EYXRhID0gMDsgfQogCi0g
ICAgICAgIC8vIERlcHJlY2F0ZWQuIFVzZSBmdW5jdGlvbnMgZnJvbSBOb3RpZmljYXRpb25DZW50
ZXIuCi0gICAgICAgIHZvaWQgZGV0YWNoUHJlc2VudGVyKCkgeyB9CisgICAgLy8gRGVwcmVjYXRl
ZC4gVXNlIGZ1bmN0aW9ucyBmcm9tIE5vdGlmaWNhdGlvbkNlbnRlci4KKyAgICB2b2lkIGRldGFj
aFByZXNlbnRlcigpIHsgfQogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9u
c2UodW5zaWduZWQgbG9uZywgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwotICAgICAgICB2aXJ0
dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGRhdGFMZW5ndGgp
OwotICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyh1bnNpZ25lZCBsb25nIGlk
ZW50aWZpZXIsIGRvdWJsZSBmaW5pc2hUaW1lKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGRpZEZh
aWwoY29uc3QgUmVzb3VyY2VFcnJvciYpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbFJl
ZGlyZWN0Q2hlY2soKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKHVuc2ln
bmVkIGxvbmcsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlk
UmVjZWl2ZURhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGRhdGFMZW5ndGgpOworICAgIHZpcnR1
YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgZG91Ymxl
IGZpbmlzaFRpbWUpOworICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKGNvbnN0IFJlc291cmNlRXJy
b3ImKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbFJlZGlyZWN0Q2hlY2soKTsKIAotICAgIHBy
aXZhdGU6Ci0gICAgICAgIE5vdGlmaWNhdGlvbihjb25zdCBLVVJMJiwgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIEV4Y2VwdGlvbkNvZGUmLCBQYXNzUmVmUHRyPE5vdGlmaWNhdGlvbkNlbnRlcj4p
OwotICAgICAgICBOb3RpZmljYXRpb24oY29uc3QgTm90aWZpY2F0aW9uQ29udGVudHMmLCBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiwgRXhjZXB0aW9uQ29kZSYsIFBhc3NSZWZQdHI8Tm90aWZpY2F0
aW9uQ2VudGVyPik7Citwcml2YXRlOgorICAgIE5vdGlmaWNhdGlvbihjb25zdCBLVVJMJiwgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCosIEV4Y2VwdGlvbkNvZGUmLCBQYXNzUmVmUHRyPE5vdGlmaWNh
dGlvbkNlbnRlcj4pOworICAgIE5vdGlmaWNhdGlvbihjb25zdCBOb3RpZmljYXRpb25Db250ZW50
cyYsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBFeGNlcHRpb25Db2RlJiwgUGFzc1JlZlB0cjxO
b3RpZmljYXRpb25DZW50ZXI+KTsKIAotICAgICAgICAvLyBFdmVudFRhcmdldCBpbnRlcmZhY2UK
LSAgICAgICAgdmlydHVhbCB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgeyByZWYoKTsgfQotICAgICAg
ICB2aXJ0dWFsIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIHsgZGVyZWYoKTsgfQotICAgICAgICB2
aXJ0dWFsIEV2ZW50VGFyZ2V0RGF0YSogZXZlbnRUYXJnZXREYXRhKCk7Ci0gICAgICAgIHZpcnR1
YWwgRXZlbnRUYXJnZXREYXRhKiBlbnN1cmVFdmVudFRhcmdldERhdGEoKTsKKyAgICAvLyBFdmVu
dFRhcmdldCBpbnRlcmZhY2UKKyAgICB2aXJ0dWFsIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSB7IHJl
ZigpOyB9CisgICAgdmlydHVhbCB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSB7IGRlcmVmKCk7IH0K
KyAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0RGF0YSogZXZlbnRUYXJnZXREYXRhKCk7CisgICAgdmly
dHVhbCBFdmVudFRhcmdldERhdGEqIGVuc3VyZUV2ZW50VGFyZ2V0RGF0YSgpOwogCi0gICAgICAg
IHZvaWQgc3RhcnRMb2FkaW5nKCk7Ci0gICAgICAgIHZvaWQgZmluaXNoTG9hZGluZygpOworICAg
IHZvaWQgc3RhcnRMb2FkaW5nKCk7CisgICAgdm9pZCBmaW5pc2hMb2FkaW5nKCk7CiAKLSAgICAg
ICAgYm9vbCBtX2lzSFRNTDsKLSAgICAgICAgS1VSTCBtX25vdGlmaWNhdGlvblVSTDsKLSAgICAg
ICAgTm90aWZpY2F0aW9uQ29udGVudHMgbV9jb250ZW50czsKKyAgICBib29sIG1faXNIVE1MOwor
ICAgIEtVUkwgbV9ub3RpZmljYXRpb25VUkw7CisgICAgTm90aWZpY2F0aW9uQ29udGVudHMgbV9j
b250ZW50czsKIAotICAgICAgICBTdHJpbmcgbV9kaXJlY3Rpb247Ci0gICAgICAgIFN0cmluZyBt
X3JlcGxhY2VJZDsKKyAgICBTdHJpbmcgbV9kaXJlY3Rpb247CisgICAgU3RyaW5nIG1fcmVwbGFj
ZUlkOwogCi0gICAgICAgIGVudW0gTm90aWZpY2F0aW9uU3RhdGUgewotICAgICAgICAgICAgSWRs
ZSA9IDAsCi0gICAgICAgICAgICBMb2FkaW5nID0gMSwKLSAgICAgICAgICAgIFNob3dpbmcgPSAy
LAotICAgICAgICAgICAgQ2FuY2VsbGVkID0gMwotICAgICAgICB9OworICAgIGVudW0gTm90aWZp
Y2F0aW9uU3RhdGUgeworICAgICAgICBJZGxlID0gMCwKKyAgICAgICAgTG9hZGluZyA9IDEsCisg
ICAgICAgIFNob3dpbmcgPSAyLAorICAgICAgICBDYW5jZWxsZWQgPSAzCisgICAgfTsKIAotICAg
ICAgICBOb3RpZmljYXRpb25TdGF0ZSBtX3N0YXRlOworICAgIE5vdGlmaWNhdGlvblN0YXRlIG1f
c3RhdGU7CiAKLSAgICAgICAgUmVmUHRyPE5vdGlmaWNhdGlvbkNlbnRlcj4gbV9ub3RpZmljYXRp
b25DZW50ZXI7Ci0gICAgICAgIAotICAgICAgICBFdmVudFRhcmdldERhdGEgbV9ldmVudFRhcmdl
dERhdGE7CisgICAgUmVmUHRyPE5vdGlmaWNhdGlvbkNlbnRlcj4gbV9ub3RpZmljYXRpb25DZW50
ZXI7CisgICAgCisgICAgRXZlbnRUYXJnZXREYXRhIG1fZXZlbnRUYXJnZXREYXRhOwogCi0gICAg
ICAgIFJlZlB0cjxUaHJlYWRhYmxlTG9hZGVyPiBtX2xvYWRlcjsKLSAgICAgICAgUmVmUHRyPFNo
YXJlZEJ1ZmZlcj4gbV9pY29uRGF0YTsKLSAgICB9OworICAgIFJlZlB0cjxUaHJlYWRhYmxlTG9h
ZGVyPiBtX2xvYWRlcjsKKyAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBtX2ljb25EYXRhOworfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9u
b3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5oIGIvU291cmNlL1dlYkNvcmUvbm90aWZp
Y2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuaAppbmRleCA4ZTRkZDk4MDNlZjcyMzRiODBmNzMz
MDZmMWU1MmNjNmI3MzU5MGQ0Li4yM2IzMWUwMzFmNmQ0MTNkZDkyNjlhZGFlOTg2NmIxMDQxMzEy
MDJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlv
bkNlbnRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9u
Q2VudGVyLmgKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQpAQCAtNDMsNDkgKzQ0LDQ5IEBACiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKLSAgICAKLSAgICBjbGFzcyBOb3RpZmljYXRpb25QcmVzZW50ZXI7
Ci0gICAgY2xhc3MgVm9pZENhbGxiYWNrOwotCi0gICAgY2xhc3MgTm90aWZpY2F0aW9uQ2VudGVy
IDogcHVibGljIFJlZkNvdW50ZWQ8Tm90aWZpY2F0aW9uQ2VudGVyPiwgcHVibGljIEFjdGl2ZURP
TU9iamVjdCB7IAotICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8Tm90aWZp
Y2F0aW9uQ2VudGVyPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgTm90
aWZpY2F0aW9uUHJlc2VudGVyKiBwcmVzZW50ZXIpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBOb3Rp
ZmljYXRpb25DZW50ZXIoY29udGV4dCwgcHJlc2VudGVyKSk7IH0KLQotICAgICAgICBQYXNzUmVm
UHRyPE5vdGlmaWNhdGlvbj4gY3JlYXRlSFRNTE5vdGlmaWNhdGlvbihjb25zdCBTdHJpbmcmIFVS
SSwgRXhjZXB0aW9uQ29kZSYgZWMpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGlmICghcHJlc2Vu
dGVyKCkpIHsKLSAgICAgICAgICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOwotICAgICAg
ICAgICAgICAgIHJldHVybiAwOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKFVSSS5p
c0VtcHR5KCkpIHsKLSAgICAgICAgICAgICAgICBlYyA9IFNZTlRBWF9FUlI7Ci0gICAgICAgICAg
ICAgICAgcmV0dXJuIDA7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gTm90aWZp
Y2F0aW9uOjpjcmVhdGUoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5jb21wbGV0ZVVSTChVUkkp
LCBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIGVjLCB0aGlzKTsKKworY2xhc3MgTm90aWZpY2F0
aW9uUHJlc2VudGVyOworY2xhc3MgVm9pZENhbGxiYWNrOworCitjbGFzcyBOb3RpZmljYXRpb25D
ZW50ZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxOb3RpZmljYXRpb25DZW50ZXI+LCBwdWJsaWMgQWN0
aXZlRE9NT2JqZWN0IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxOb3RpZmljYXRp
b25DZW50ZXI+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBOb3RpZmlj
YXRpb25QcmVzZW50ZXIqIHByZXNlbnRlcikgeyByZXR1cm4gYWRvcHRSZWYobmV3IE5vdGlmaWNh
dGlvbkNlbnRlcihjb250ZXh0LCBwcmVzZW50ZXIpKTsgfQorCisgICAgUGFzc1JlZlB0cjxOb3Rp
ZmljYXRpb24+IGNyZWF0ZUhUTUxOb3RpZmljYXRpb24oY29uc3QgU3RyaW5nJiBVUkksIEV4Y2Vw
dGlvbkNvZGUmIGVjKQorICAgIHsKKyAgICAgICAgaWYgKCFwcmVzZW50ZXIoKSkgeworICAgICAg
ICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAgICAgIHJldHVybiAwOworICAg
ICAgICB9CisgICAgICAgIGlmIChVUkkuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICBlYyA9IFNZ
TlRBWF9FUlI7CisgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgfQorICAgICAgICByZXR1
cm4gTm90aWZpY2F0aW9uOjpjcmVhdGUoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5jb21wbGV0
ZVVSTChVUkkpLCBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIGVjLCB0aGlzKTsKKyAgICB9CiAK
LSAgICAgICAgUGFzc1JlZlB0cjxOb3RpZmljYXRpb24+IGNyZWF0ZU5vdGlmaWNhdGlvbihjb25z
dCBTdHJpbmcmIGljb25VUkksIGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgYm9k
eSwgRXhjZXB0aW9uQ29kZSYgZWMpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGlmICghcHJlc2Vu
dGVyKCkpIHsKLSAgICAgICAgICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOwotICAgICAg
ICAgICAgICAgIHJldHVybiAwOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgTm90aWZpY2F0
aW9uQ29udGVudHMgY29udGVudHMoaWNvblVSSS5pc0VtcHR5KCkgPyBLVVJMKCkgOiBzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCktPmNvbXBsZXRlVVJMKGljb25VUkkpLCB0aXRsZSwgYm9keSk7Ci0g
ICAgICAgICAgICByZXR1cm4gTm90aWZpY2F0aW9uOjpjcmVhdGUoY29udGVudHMsIHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSwgZWMsIHRoaXMpOworICAgIFBhc3NSZWZQdHI8Tm90aWZpY2F0aW9u
PiBjcmVhdGVOb3RpZmljYXRpb24oY29uc3QgU3RyaW5nJiBpY29uVVJJLCBjb25zdCBTdHJpbmcm
IHRpdGxlLCBjb25zdCBTdHJpbmcmIGJvZHksIEV4Y2VwdGlvbkNvZGUmIGVjKQorICAgIHsKKyAg
ICAgICAgaWYgKCFwcmVzZW50ZXIoKSkgeworICAgICAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRF
X0VSUjsKKyAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICB9CisgICAgICAgIE5vdGlmaWNh
dGlvbkNvbnRlbnRzIGNvbnRlbnRzKGljb25VUkkuaXNFbXB0eSgpID8gS1VSTCgpIDogc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpLT5jb21wbGV0ZVVSTChpY29uVVJJKSwgdGl0bGUsIGJvZHkpOwor
ICAgICAgICByZXR1cm4gTm90aWZpY2F0aW9uOjpjcmVhdGUoY29udGVudHMsIHNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSwgZWMsIHRoaXMpOworICAgIH0KIAotICAgICAgICBOb3RpZmljYXRpb25Q
cmVzZW50ZXIqIHByZXNlbnRlcigpIGNvbnN0IHsgcmV0dXJuIG1fbm90aWZpY2F0aW9uUHJlc2Vu
dGVyOyB9CisgICAgTm90aWZpY2F0aW9uUHJlc2VudGVyKiBwcmVzZW50ZXIoKSBjb25zdCB7IHJl
dHVybiBtX25vdGlmaWNhdGlvblByZXNlbnRlcjsgfQogCi0gICAgICAgIGludCBjaGVja1Blcm1p
c3Npb24oKTsKLSAgICAgICAgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihQYXNzUmVmUHRyPFZvaWRD
YWxsYmFjaz4gY2FsbGJhY2spOworICAgIGludCBjaGVja1Blcm1pc3Npb24oKTsKKyAgICB2b2lk
IHJlcXVlc3RQZXJtaXNzaW9uKFBhc3NSZWZQdHI8Vm9pZENhbGxiYWNrPik7CiAKLSAgICAgICAg
dm9pZCBkaXNjb25uZWN0RnJhbWUoKTsKKyAgICB2b2lkIGRpc2Nvbm5lY3RGcmFtZSgpOwogCi0g
ICAgcHJpdmF0ZToKLSAgICAgICAgTm90aWZpY2F0aW9uQ2VudGVyKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqLCBOb3RpZmljYXRpb25QcmVzZW50ZXIqKTsKK3ByaXZhdGU6CisgICAgTm90aWZpY2F0
aW9uQ2VudGVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBOb3RpZmljYXRpb25QcmVzZW50ZXIq
KTsKIAotICAgICAgICBOb3RpZmljYXRpb25QcmVzZW50ZXIqIG1fbm90aWZpY2F0aW9uUHJlc2Vu
dGVyOwotICAgIH07CisgICAgTm90aWZpY2F0aW9uUHJlc2VudGVyKiBtX25vdGlmaWNhdGlvblBy
ZXNlbnRlcjsKK307CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25Db250ZW50cy5oIGIvU291cmNl
L1dlYkNvcmUvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25Db250ZW50cy5oCmluZGV4IDU4MDdm
MzAzZjk1NTlhNTAxNGI3NTA1NWE2YTVhNDEwNDNjMjVhNTMuLjExODZjMWM3ODIzZjJhMDUwMjQw
Yjc2MDA2NTU2OTUyYmE0MjkxNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNh
dGlvbnMvTm90aWZpY2F0aW9uQ29udGVudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9ub3RpZmlj
YXRpb25zL05vdGlmaWNhdGlvbkNvbnRlbnRzLmgKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29w
eXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMzMsMjUgKzM0LDI0IEBACiAKICNpZiBFTkFC
TEUoTk9USUZJQ0FUSU9OUykKIAorI2luY2x1ZGUgIktVUkwuaCIKKyNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0gICAgY2xhc3MgTm90aWZp
Y2F0aW9uQ29udGVudHMgeyAKLSAgICBwdWJsaWM6Ci0gICAgICAgIE5vdGlmaWNhdGlvbkNvbnRl
bnRzKCkge30KLSAgICAgICAgTm90aWZpY2F0aW9uQ29udGVudHMoY29uc3QgS1VSTCYgaWNvblVy
bCwgY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiBib2R5KQotICAgICAgICAgICAg
OiBtX2ljb24oaWNvblVybCkKLSAgICAgICAgICAgICwgbV90aXRsZSh0aXRsZSkKLSAgICAgICAg
ICAgICwgbV9ib2R5KGJvZHkpIHt9Ci0KLSAgICAgICAgS1VSTCBpY29uKCkgY29uc3QgeyByZXR1
cm4gbV9pY29uOyB9Ci0gICAgICAgIFN0cmluZyB0aXRsZSgpIGNvbnN0IHsgcmV0dXJuIG1fdGl0
bGU7IH0KLSAgICAgICAgU3RyaW5nIGJvZHkoKSBjb25zdCB7IHJldHVybiBtX2JvZHk7IH0KLQot
ICAgIHByaXZhdGU6Ci0gICAgICAgIEtVUkwgbV9pY29uOwotICAgICAgICBTdHJpbmcgbV90aXRs
ZTsKLSAgICAgICAgU3RyaW5nIG1fYm9keTsKLSAgICB9Oworc3RydWN0IE5vdGlmaWNhdGlvbkNv
bnRlbnRzIHsgCitwdWJsaWM6CisgICAgTm90aWZpY2F0aW9uQ29udGVudHMoKSB7IH0KKyAgICBO
b3RpZmljYXRpb25Db250ZW50cyhjb25zdCBLVVJMJiBpY29uVXJsLCBjb25zdCBTdHJpbmcmIG5v
dGlmaWNhdGlvblRpdGxlLCBjb25zdCBTdHJpbmcmIG5vdGlmaWNhdGlvbkJvZHkpCisgICAgICAg
IDogaWNvbihpY29uVXJsKQorICAgICAgICAsIHRpdGxlKG5vdGlmaWNhdGlvblRpdGxlKQorICAg
ICAgICAsIGJvZHkobm90aWZpY2F0aW9uQm9keSkKKyAgICB7IH0KKworICAgIEtVUkwgaWNvbjsK
KyAgICBTdHJpbmcgdGl0bGU7CisgICAgU3RyaW5nIGJvZHk7Cit9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90
aWZpY2F0aW9uQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05v
dGlmaWNhdGlvbkNvbnRyb2xsZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFjODBhNTIwOWQ4MGEwZDEzODE4
NjJiZDgwZjYyMjBjYzI3OGQ2ZDgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9u
b3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNvbnRyb2xsZXIuY3BwCkBAIC0wLDAgKzEsNDcgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09N
UFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01Q
VVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTm90aWZpY2F0aW9uQ29u
dHJvbGxlci5oIgorCisjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCisKKyNpbmNsdWRlICJOb3Rp
ZmljYXRpb25QcmVzZW50ZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitOb3RpZmljYXRp
b25Db250cm9sbGVyOjpOb3RpZmljYXRpb25Db250cm9sbGVyKFBhZ2UqIHBhZ2UsIE5vdGlmaWNh
dGlvblByZXNlbnRlciogY2xpZW50KQorICAgIDogbV9wYWdlKHBhZ2UpCisgICAgLCBtX2NsaWVu
dChjbGllbnQpCit7Cit9CisKK05vdGlmaWNhdGlvbkNvbnRyb2xsZXI6On5Ob3RpZmljYXRpb25D
b250cm9sbGVyKCkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
RU5BQkxFKE5PVElGSUNBVElPTlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9ub3RpZmlj
YXRpb25zL05vdGlmaWNhdGlvbkNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNh
dGlvbnMvTm90aWZpY2F0aW9uQ29udHJvbGxlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNmYWViY2YyMjJlOWRi
MmZkNTk1ZGRkNTMyYmU1YmE2ZGQ2MTE1OGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNvbnRyb2xsZXIuaApAQCAtMCwwICsxLDU1
IEBACisvKgorKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorKgorKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisqIGFyZSBtZXQ6CisqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorKgorKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4g
T1IKKyogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyovCisKKyNpZm5kZWYg
Tm90aWZpY2F0aW9uQ29udHJvbGxlcl9oCisjZGVmaW5lIE5vdGlmaWNhdGlvbkNvbnRyb2xsZXJf
aAorCisjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCisKKyNpbmNsdWRlIDx3dGYvTm9uY29weWFi
bGUuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBOb3RpZmljYXRpb25QcmVzZW50
ZXI7CitjbGFzcyBQYWdlOworCitjbGFzcyBOb3RpZmljYXRpb25Db250cm9sbGVyIHsKKyAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShOb3RpZmljYXRpb25Db250cm9sbGVyKTsKK3B1YmxpYzoKKyAg
ICBOb3RpZmljYXRpb25Db250cm9sbGVyKFBhZ2UqLCBOb3RpZmljYXRpb25QcmVzZW50ZXIqKTsK
KyAgICB+Tm90aWZpY2F0aW9uQ29udHJvbGxlcigpOworICAgIAorICAgIE5vdGlmaWNhdGlvblBy
ZXNlbnRlciogY2xpZW50KCkgeyByZXR1cm4gbV9jbGllbnQ7IH0KKyAgICAKK3ByaXZhdGU6Cisg
ICAgUGFnZSogbV9wYWdlOworICAgIE5vdGlmaWNhdGlvblByZXNlbnRlciogbV9jbGllbnQ7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTk9USUZJQ0FU
SU9OUykKKworI2VuZGlmIC8vIE5vdGlmaWNhdGlvbkNvbnRyb2xsZXJfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QcmVzZW50ZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUHJlc2VudGVyLmgKaW5kZXgg
OTYwMjE5OTk5MDZlOGVlMTAzZmE2NGNhZjEzY2I2ZGNlNjczZGY1Yy4uMmNmZTA2N2I1ZGQ4M2Y5
NzU4ZmVkZjNlMjIyZDQ0ZmZlYjUxN2ZlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbm90
aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QcmVzZW50ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9u
b3RpZmljYXRpb25zL05vdGlmaWNhdGlvblByZXNlbnRlci5oCkBAIC0xLDUgKzEsNiBAQAogLyoK
ICAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTM0LDUxICszNSw0OCBAQAogI2lu
Y2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSAiVm9pZENhbGxiYWNrLmgiCiAKLSNp
ZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0gICAgY2xh
c3MgRG9jdW1lbnQ7Ci0gICAgY2xhc3MgTm90aWZpY2F0aW9uOwotICAgIGNsYXNzIEtVUkw7Ci0g
ICAgY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKK2NsYXNzIERvY3VtZW50OworY2xhc3Mg
Tm90aWZpY2F0aW9uOworY2xhc3MgS1VSTDsKK2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7
CiAKLSAgICBjbGFzcyBOb3RpZmljYXRpb25QcmVzZW50ZXIgeworY2xhc3MgTm90aWZpY2F0aW9u
UHJlc2VudGVyIHsKIAotICAgIHB1YmxpYzoKLSAgICAgICAgZW51bSBQZXJtaXNzaW9uIHsKLSAg
ICAgICAgICAgIFBlcm1pc3Npb25BbGxvd2VkLCAvLyBVc2VyIGhhcyBhbGxvd2VkIG5vdGlmaWNh
dGlvbnMKLSAgICAgICAgICAgIFBlcm1pc3Npb25Ob3RBbGxvd2VkLCAvLyBVc2VyIGhhcyBub3Qg
eWV0IGFsbG93ZWQKLSAgICAgICAgICAgIFBlcm1pc3Npb25EZW5pZWQgLy8gVXNlciBoYXMgZXhw
bGljaXRseSBkZW5pZWQgcGVybWlzc2lvbgotICAgICAgICB9OworcHVibGljOgorICAgIGVudW0g
UGVybWlzc2lvbiB7CisgICAgICAgIFBlcm1pc3Npb25BbGxvd2VkLCAvLyBVc2VyIGhhcyBhbGxv
d2VkIG5vdGlmaWNhdGlvbnMKKyAgICAgICAgUGVybWlzc2lvbk5vdEFsbG93ZWQsIC8vIFVzZXIg
aGFzIG5vdCB5ZXQgYWxsb3dlZAorICAgICAgICBQZXJtaXNzaW9uRGVuaWVkIC8vIFVzZXIgaGFz
IGV4cGxpY2l0bHkgZGVuaWVkIHBlcm1pc3Npb24KKyAgICB9OwogCi0gICAgICAgIHZpcnR1YWwg
fk5vdGlmaWNhdGlvblByZXNlbnRlcigpIHt9CisgICAgLy8gUmVxdWVzdHMgdGhhdCBhIG5vdGlm
aWNhdGlvbiBiZSBzaG93bi4KKyAgICB2aXJ0dWFsIGJvb2wgc2hvdyhOb3RpZmljYXRpb24qKSA9
IDA7CiAKLSAgICAgICAgLy8gUmVxdWVzdHMgdGhhdCBhIG5vdGlmaWNhdGlvbiBiZSBzaG93bi4K
LSAgICAgICAgdmlydHVhbCBib29sIHNob3coTm90aWZpY2F0aW9uKikgPSAwOworICAgIC8vIFJl
cXVlc3RzIHRoYXQgYSBub3RpZmljYXRpb24gdGhhdCBoYXMgYWxyZWFkeSBiZWVuIHNob3duIGJl
IGNhbmNlbGVkLgorICAgIHZpcnR1YWwgdm9pZCBjYW5jZWwoTm90aWZpY2F0aW9uKikgPSAwOwog
Ci0gICAgICAgIC8vIFJlcXVlc3RzIHRoYXQgYSBub3RpZmljYXRpb24gdGhhdCBoYXMgYWxyZWFk
eSBiZWVuIHNob3duIGJlIGNhbmNlbGVkLgotICAgICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsKE5v
dGlmaWNhdGlvbiopID0gMDsKKyAgICAvLyBJbmZvcm1zIHRoZSBwcmVzZW50ZXIgdGhhdCBhIE5v
dGlmaWNhdGlvbiBvYmplY3QgaGFzIGJlZW4gZGVzdHJveWVkCisgICAgLy8gKHN1Y2ggYXMgYnkg
YSBwYWdlIHRyYW5zaXRpb24pLiBUaGUgcHJlc2VudGVyIG1heSBjb250aW51ZSBzaG93aW5nCisg
ICAgLy8gdGhlIG5vdGlmaWNhdGlvbiwgYnV0IG11c3Qgbm90IGF0dGVtcHQgdG8gY2FsbCB0aGUg
ZXZlbnQgaGFuZGxlcnMuCisgICAgdmlydHVhbCB2b2lkIG5vdGlmaWNhdGlvbk9iamVjdERlc3Ry
b3llZChOb3RpZmljYXRpb24qKSA9IDA7CiAKLSAgICAgICAgLy8gSW5mb3JtcyB0aGUgcHJlc2Vu
dGVyIHRoYXQgYSBOb3RpZmljYXRpb24gb2JqZWN0IGhhcyBiZWVuIGRlc3Ryb3llZAotICAgICAg
ICAvLyAoc3VjaCBhcyBieSBhIHBhZ2UgdHJhbnNpdGlvbikuICBUaGUgcHJlc2VudGVyIG1heSBj
b250aW51ZSBzaG93aW5nCi0gICAgICAgIC8vIHRoZSBub3RpZmljYXRpb24sIGJ1dCBtdXN0IG5v
dCBhdHRlbXB0IHRvIGNhbGwgdGhlIGV2ZW50IGhhbmRsZXJzLgotICAgICAgICB2aXJ0dWFsIHZv
aWQgbm90aWZpY2F0aW9uT2JqZWN0RGVzdHJveWVkKE5vdGlmaWNhdGlvbiopID0gMDsKKyAgICAv
LyBSZXF1ZXN0cyB1c2VyIHBlcm1pc3Npb24gdG8gc2hvdyBkZXNrdG9wIG5vdGlmaWNhdGlvbnMg
ZnJvbSBhIHBhcnRpY3VsYXIKKyAgICAvLyBzY3JpcHQgY29udGV4dC4gVGhlIGNhbGxiYWNrIHBh
cmFtZXRlciBzaG91bGQgYmUgcnVuIHdoZW4gdGhlIHVzZXIgaGFzCisgICAgLy8gbWFkZSBhIGRl
Y2lzaW9uLgorICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiwgUGFzc1JlZlB0cjxWb2lkQ2FsbGJhY2s+KSA9IDA7CiAKLSAgICAgICAgLy8g
UmVxdWVzdHMgdXNlciBwZXJtaXNzaW9uIHRvIHNob3cgZGVza3RvcCBub3RpZmljYXRpb25zIGZy
b20gYSBwYXJ0aWN1bGFyCi0gICAgICAgIC8vIHNjcmlwdCBjb250ZXh0LiBUaGUgY2FsbGJhY2sg
cGFyYW1ldGVyIHNob3VsZCBiZSBydW4gd2hlbiB0aGUgdXNlciBoYXMKLSAgICAgICAgLy8gbWFk
ZSBhIGRlY2lzaW9uLgotICAgICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8Vm9pZENhbGxiYWNrPikgPSAwOworICAg
IC8vIENhbmNlbCBhbGwgb3V0c3RhbmRpbmcgcmVxdWVzdHMgZm9yIHRoZSBTY3JpcHRFeGVjdXRp
b25Db250ZXh0CisgICAgdmlydHVhbCB2b2lkIGNhbmNlbFJlcXVlc3RzRm9yUGVybWlzc2lvbihT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KikgPSAwOwogCi0gICAgICAgIC8vIENhbmNlbCBhbGwgb3V0
c3RhbmRpbmcgcmVxdWVzdHMgZm9yIHRoZSBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ci0gICAgICAg
IHZpcnR1YWwgdm9pZCBjYW5jZWxSZXF1ZXN0c0ZvclBlcm1pc3Npb24oU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCopID0gMDsKKyAgICAvLyBDaGVja3MgdGhlIGN1cnJlbnQgbGV2ZWwgb2YgcGVybWlz
c2lvbi4KKyAgICB2aXJ0dWFsIFBlcm1pc3Npb24gY2hlY2tQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqKSA9IDA7CiAKLSAgICAgICAgLy8gQ2hlY2tzIHRoZSBjdXJyZW50IGxldmVs
IG9mIHBlcm1pc3Npb24uCi0gICAgICAgIHZpcnR1YWwgUGVybWlzc2lvbiBjaGVja1Blcm1pc3Np
b24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopID0gMDsKLSAgICB9OworcHJvdGVjdGVkOgorICAg
IHZpcnR1YWwgfk5vdGlmaWNhdGlvblByZXNlbnRlcigpIHsgfQorfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCi0jZW5kaWYgLy8gRU5BQkxFKE5PVElGSUNBVElPTlMpCi0KICNlbmRpZiAv
LyBOb3RpZmljYXRpb25QcmVzZW50ZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9DaHJvbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCmluZGV4IDRkOTJh
NWJjYjI3YWFmODViNzZhMzVjZGZjNTI5OWI0YTRkZDI3MWIuLjk0Y2RkOWM1ZmFhZTNiZTk0NGJl
OTE5MTZiYTY4YWZiNjQ4MTRhOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hy
b21lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKQEAgLTUwOCwxMyAr
NTA4LDYgQEAgdm9pZCBDaHJvbWU6OnNjaGVkdWxlQW5pbWF0aW9uKCkKIH0KICNlbmRpZgogCi0j
aWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCi1Ob3RpZmljYXRpb25QcmVzZW50ZXIqIENocm9tZTo6
bm90aWZpY2F0aW9uUHJlc2VudGVyKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9jbGllbnQtPm5v
dGlmaWNhdGlvblByZXNlbnRlcigpOwotfQotI2VuZGlmCi0KIC8vIC0tLS0tLS0tCiAKICNpZiBF
TkFCTEUoREFTSEJPQVJEX1NVUFBPUlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0Nocm9tZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAppbmRleCA4NjQzMjZjNzEz
NWUyYjRmOWFhNWQwY2U2MzE0MjExNDc5NTY2ZTg2Li5iM2YwODc0MGY5NDc0OTI5MzIyMDg4M2Zk
YTJmZGRiNTliZTg2NTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKQEAgLTUxLDkgKzUxLDYgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIFBhZ2U7CiAgICAgY2xhc3MgUG9wdXBNZW51Owog
ICAgIGNsYXNzIFBvcHVwTWVudUNsaWVudDsKLSNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKLSAg
ICBjbGFzcyBOb3RpZmljYXRpb25QcmVzZW50ZXI7Ci0jZW5kaWYKICAgICBjbGFzcyBTZWFyY2hQ
b3B1cE1lbnU7CiAKICAgICBzdHJ1Y3QgRnJhbWVMb2FkUmVxdWVzdDsKQEAgLTE3NSwxMCArMTcy
LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIGZvY3VzTlNWaWV3KE5TVmll
dyopOwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKLSAgICAgICAgTm90aWZp
Y2F0aW9uUHJlc2VudGVyKiBub3RpZmljYXRpb25QcmVzZW50ZXIoKSBjb25zdDsgCi0jZW5kaWYK
LQogICAgICAgICBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCk7CiAg
ICAgICAgIGJvb2wgc2VsZWN0SXRlbUFsaWdubWVudEZvbGxvd3NNZW51V3JpdGluZ0RpcmVjdGlv
bigpOwogICAgICAgICBQYXNzUmVmUHRyPFBvcHVwTWVudT4gY3JlYXRlUG9wdXBNZW51KFBvcHVw
TWVudUNsaWVudCopIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJv
bWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggYWRk
Y2MwYWVjZTUyM2M4ZjkzMmQ1ZDhlYzc1ZDg2YWNkMGI4ZGQ4ZC4uMDEwZGEzYjQ2NTUwNTQ5NjY5
MjNmNDAyOGU3NTNhOWNkYzhkNDcyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9D
aHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBA
IC03NSwxMCArNzUsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgQ29sb3JDaG9v
c2VyOwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKLSAgICBjbGFzcyBOb3Rp
ZmljYXRpb25QcmVzZW50ZXI7Ci0jZW5kaWYKLQogICAgIGNsYXNzIENocm9tZUNsaWVudCB7CiAg
ICAgcHVibGljOgogICAgICAgICB2aXJ0dWFsIHZvaWQgY2hyb21lRGVzdHJveWVkKCkgPSAwOwpA
QCAtMjA0LDEwICsyMDAsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwg
dm9pZCBkYXNoYm9hcmRSZWdpb25zQ2hhbmdlZCgpOwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoTk9U
SUZJQ0FUSU9OUykKLSAgICAgICAgdmlydHVhbCBOb3RpZmljYXRpb25QcmVzZW50ZXIqIG5vdGlm
aWNhdGlvblByZXNlbnRlcigpIGNvbnN0ID0gMDsKLSNlbmRpZgotCiAgICAgICAgIHZpcnR1YWwg
dm9pZCBwb3B1bGF0ZVZpc2l0ZWRMaW5rcygpOwogCiAgICAgICAgIHZpcnR1YWwgRmxvYXRSZWN0
IGN1c3RvbUhpZ2hsaWdodFJlY3QoTm9kZSosIGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29u
c3QgRmxvYXRSZWN0JiBsaW5lUmVjdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXgg
OTU5OWU4ZDZiYTNiYzY0Njk5YjhjNWE3OGM0MzRlM2I3NzM1YzA1NS4uNjk0ODhjOWE0MGFjMTZi
ODUzOTMwZmQ1YmViOGM1ZjdjODVmNTg0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApA
QCAtNzQsNiArNzQsNyBAQAogI2luY2x1ZGUgIk1lc3NhZ2VFdmVudC5oIgogI2luY2x1ZGUgIk5h
dmlnYXRvci5oIgogI2luY2x1ZGUgIk5vdGlmaWNhdGlvbkNlbnRlci5oIgorI2luY2x1ZGUgIk5v
dGlmaWNhdGlvbkNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFn
ZUdyb3VwLmgiCiAjaW5jbHVkZSAiUGFnZVRyYW5zaXRpb25FdmVudC5oIgpAQCAtNzUwLDcgKzc1
MSw3IEBAIE5vdGlmaWNhdGlvbkNlbnRlciogRE9NV2luZG93Ojp3ZWJraXROb3RpZmljYXRpb25z
KCkgY29uc3QKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgTm90aWZp
Y2F0aW9uUHJlc2VudGVyKiBwcm92aWRlciA9IHBhZ2UtPmNocm9tZSgpLT5ub3RpZmljYXRpb25Q
cmVzZW50ZXIoKTsKKyAgICBOb3RpZmljYXRpb25QcmVzZW50ZXIqIHByb3ZpZGVyID0gcGFnZS0+
bm90aWZpY2F0aW9uQ29udHJvbGxlcigpLT5jbGllbnQoKTsKICAgICBpZiAocHJvdmlkZXIpIAog
ICAgICAgICBtX25vdGlmaWNhdGlvbnMgPSBOb3RpZmljYXRpb25DZW50ZXI6OmNyZWF0ZShkb2N1
bWVudCwgcHJvdmlkZXIpOyAgICAKICAgICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggMGY2YzJj
MzQyNjYwOWE2Nzk4MTFmMjA5OGI1YWYxODM5ZjYzYzY3Zi4uNDY1OTlmYzRjM2ZjYWI5MGViNDlj
YjAyOGNiNTA2Y2MyMWQ0ZmFiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC01Myw2ICs1Myw4IEBA
CiAjaW5jbHVkZSAiTWVkaWFDYW5TdGFydExpc3RlbmVyLmgiCiAjaW5jbHVkZSAiTmF2aWdhdG9y
LmgiCiAjaW5jbHVkZSAiTmV0d29ya1N0YXRlTm90aWZpZXIuaCIKKyNpbmNsdWRlICJOb3RpZmlj
YXRpb25Db250cm9sbGVyLmgiCisjaW5jbHVkZSAiTm90aWZpY2F0aW9uUHJlc2VudGVyLmgiCiAj
aW5jbHVkZSAiUGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAiUGx1Z2luRGF0YS5oIgogI2luY2x1ZGUg
IlBsdWdpblZpZXcuaCIKQEAgLTEzNyw2ICsxMzksOSBAQCBQYWdlOjpQYWdlKFBhZ2VDbGllbnRz
JiBwYWdlQ2xpZW50cykKICAgICAsIG1fZGV2aWNlTW90aW9uQ29udHJvbGxlcihSdW50aW1lRW5h
YmxlZEZlYXR1cmVzOjpkZXZpY2VNb3Rpb25FbmFibGVkKCkgPyBhZG9wdFB0cihuZXcgRGV2aWNl
TW90aW9uQ29udHJvbGxlcihwYWdlQ2xpZW50cy5kZXZpY2VNb3Rpb25DbGllbnQpKSA6IG51bGxw
dHIpCiAgICAgLCBtX2RldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcihSdW50aW1lRW5hYmxlZEZl
YXR1cmVzOjpkZXZpY2VPcmllbnRhdGlvbkVuYWJsZWQoKSA/IGFkb3B0UHRyKG5ldyBEZXZpY2VP
cmllbnRhdGlvbkNvbnRyb2xsZXIodGhpcywgcGFnZUNsaWVudHMuZGV2aWNlT3JpZW50YXRpb25D
bGllbnQpKSA6IG51bGxwdHIpCiAjZW5kaWYKKyNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKKyAg
ICAsIG1fbm90aWZpY2F0aW9uQ29udHJvbGxlcihhZG9wdFB0cihuZXcgTm90aWZpY2F0aW9uQ29u
dHJvbGxlcih0aGlzLCBwYWdlQ2xpZW50cy5ub3RpZmljYXRpb25DbGllbnQpKSkKKyNlbmRpZgog
I2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gpCiAgICAgLCBtX3NwZWVjaElucHV0Q2xpZW50KHBhZ2VD
bGllbnRzLnNwZWVjaElucHV0Q2xpZW50KQogI2VuZGlmCkBAIC0xMDYzLDYgKzEwNjgsNyBAQCBQ
YWdlOjpQYWdlQ2xpZW50czo6UGFnZUNsaWVudHMoKQogICAgICwgZGV2aWNlTW90aW9uQ2xpZW50
KDApCiAgICAgLCBkZXZpY2VPcmllbnRhdGlvbkNsaWVudCgwKQogICAgICwgc3BlZWNoSW5wdXRD
bGllbnQoMCkKKyAgICAsIG5vdGlmaWNhdGlvbkNsaWVudCgwKQogICAgICwgdXNlck1lZGlhQ2xp
ZW50KDApCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IGE4MzQ3ZTg3ODAwZThlMzMwNzllOGM0MTQ5
ZGRmM2I2NDJhZjBiMjEuLjNkMGVlN2E5YmQ0NWQ3ODVmYjY2MzE0ZDljOWEyODBmZTRkZGRjNzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5oCkBAIC03Miw2ICs3Miw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICBjbGFzcyBJbnNwZWN0b3JDb250cm9sbGVyOwogICAgIGNsYXNzIE1lZGlhQ2FuU3RhcnRMaXN0
ZW5lcjsKICAgICBjbGFzcyBOb2RlOworICAgIGNsYXNzIE5vdGlmaWNhdGlvbkNvbnRyb2xsZXI7
CisgICAgY2xhc3MgTm90aWZpY2F0aW9uUHJlc2VudGVyOwogICAgIGNsYXNzIFBhZ2VHcm91cDsK
ICAgICBjbGFzcyBQbHVnaW5EYXRhOwogICAgIGNsYXNzIFByb2dyZXNzVHJhY2tlcjsKQEAgLTEx
Nyw2ICsxMTksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICBEZXZpY2VPcmll
bnRhdGlvbkNsaWVudCogZGV2aWNlT3JpZW50YXRpb25DbGllbnQ7CiAgICAgICAgICAgICBSZWZQ
dHI8QmFja0ZvcndhcmRMaXN0PiBiYWNrRm9yd2FyZENsaWVudDsKICAgICAgICAgICAgIFNwZWVj
aElucHV0Q2xpZW50KiBzcGVlY2hJbnB1dENsaWVudDsKKyAgICAgICAgICAgIE5vdGlmaWNhdGlv
blByZXNlbnRlciogbm90aWZpY2F0aW9uQ2xpZW50OwogICAgICAgICAgICAgVXNlck1lZGlhQ2xp
ZW50KiB1c2VyTWVkaWFDbGllbnQ7CiAgICAgICAgIH07CiAKQEAgLTE4Myw2ICsxODYsOSBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIERldmljZU1vdGlvbkNvbnRyb2xsZXIqIGRldmlj
ZU1vdGlvbkNvbnRyb2xsZXIoKSBjb25zdCB7IHJldHVybiBtX2RldmljZU1vdGlvbkNvbnRyb2xs
ZXIuZ2V0KCk7IH0KICAgICAgICAgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKiBkZXZpY2VP
cmllbnRhdGlvbkNvbnRyb2xsZXIoKSBjb25zdCB7IHJldHVybiBtX2RldmljZU9yaWVudGF0aW9u
Q29udHJvbGxlci5nZXQoKTsgfQogI2VuZGlmCisjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCisg
ICAgICAgIE5vdGlmaWNhdGlvbkNvbnRyb2xsZXIqIG5vdGlmaWNhdGlvbkNvbnRyb2xsZXIoKSBj
b25zdCB7IHJldHVybiBtX25vdGlmaWNhdGlvbkNvbnRyb2xsZXIuZ2V0KCk7IH0KKyNlbmRpZgog
I2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gpCiAgICAgICAgIFNwZWVjaElucHV0KiBzcGVlY2hJbnB1
dCgpOwogI2VuZGlmCkBAIC0zNjUsNiArMzcxLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICBPd25QdHI8RGV2aWNlTW90aW9uQ29udHJvbGxlcj4gbV9kZXZpY2VNb3Rpb25Db250cm9s
bGVyOwogICAgICAgICBPd25QdHI8RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyPiBtX2Rldmlj
ZU9yaWVudGF0aW9uQ29udHJvbGxlcjsKICNlbmRpZgorI2lmIEVOQUJMRShOT1RJRklDQVRJT05T
KQorICAgICAgICBPd25QdHI8Tm90aWZpY2F0aW9uQ29udHJvbGxlcj4gbV9ub3RpZmljYXRpb25D
b250cm9sbGVyOworI2VuZGlmCiAjaWYgRU5BQkxFKElOUFVUX1NQRUVDSCkKICAgICAgICAgU3Bl
ZWNoSW5wdXRDbGllbnQqIG1fc3BlZWNoSW5wdXRDbGllbnQ7CiAgICAgICAgIE93blB0cjxTcGVl
Y2hJbnB1dD4gbV9zcGVlY2hJbnB1dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDU0OTkwOTA0NGE0NGM2NWM5NWI4MmJhMmE4MzZhMThi
MGI1MWI3MWYuLmUzNmIxYmY4N2ExNmYxYjdlZWNhYzliMzNmMDFkYjBmMTgyMGI3MWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNzQs
NiArNzQsOCBAQAogCQkyMjZFOUU2QjA5RDBBQTgyMDBGM0EyQkMgLyogV2ViTmV0c2NhcGVEZXBy
ZWNhdGVkRnVuY3Rpb25zLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAyMjZFOUU2OTA5RDBBQTgyMDBGM0EyQkMgLyogV2ViTmV0c2NhcGVEZXByZWNhdGVk
RnVuY3Rpb25zLmMgKi87IHNldHRpbmdzID0ge0NPTVBJTEVSX0ZMQUdTID0gIi1Xbm8tZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiOyB9OyB9OwogCQkyMkYyMTlDQzA4RDIzNjczMDAzMEUwNzggLyog
V2ViQmFja0ZvcndhcmRMaXN0UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMjJGMjE5Q0IwOEQyMzY3MzAwMzBFMDc4IC8qIFdlYkJhY2tGb3J3
YXJkTGlzdFByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQkyOUFFRjk2MDEzNEM3NkZCMDBGRTUwOTYgLyogT3V0bG9va1F1aXJrc1VzZXJT
Y3JpcHQuanMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDI5QUVGOTVEMTM0Qzc1NTQwMEZFNTA5NiAvKiBPdXRsb29rUXVpcmtzVXNlclNjcmlwdC5qcyAq
LzsgfTsKKwkJMzFDMTFBNkUxNDc2NTUyRTAwNDlBNENDIC8qIFdlYk5vdGlmaWNhdGlvbkNsaWVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFDMTFB
NkMxNDc2NTUyRTAwNDlBNENDIC8qIFdlYk5vdGlmaWNhdGlvbkNsaWVudC5oICovOyB9OworCQkz
MUMxMUE2RjE0NzY1NTJFMDA0OUE0Q0MgLyogV2ViTm90aWZpY2F0aW9uQ2xpZW50Lm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFDMTFBNkQxNDc2NTUy
RTAwNDlBNENDIC8qIFdlYk5vdGlmaWNhdGlvbkNsaWVudC5tbSAqLzsgfTsKIAkJMzdCNkZCNEUx
MDYzNTMwQzAwMEZEQjNCIC8qIFdlYlBERkRvY3VtZW50RXh0cmFzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzN0I2RkI0QzEwNjM1MzBDMDAwRkRCM0Ig
LyogV2ViUERGRG9jdW1lbnRFeHRyYXMuaCAqLzsgfTsKIAkJMzdCNkZCNEYxMDYzNTMwQzAwMEZE
QjNCIC8qIFdlYlBERkRvY3VtZW50RXh0cmFzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMzdCNkZCNEQxMDYzNTMwQzAwMEZEQjNCIC8qIFdlYlBERkRv
Y3VtZW50RXh0cmFzLm1tICovOyB9OwogCQkzN0QxRENBODEwNjU5MjhDMDA2OEY3RUYgLyogV2Vi
SlNQREZEb2MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDM3RDFEQ0E2MTA2NTkyOEMwMDY4RjdFRiAvKiBXZWJKU1BERkRvYy5oICovOyB9OwpAQCAtNDU0
LDYgKzQ1Niw4IEBACiAJCTJEMzZGRDVFMDNGNzhGOUUwMEE4MDE2NiAvKiBXZWJGb3JtRGVsZWdh
dGVQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV2ViRm9ybURlbGVnYXRlUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0
YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJMkQ4MURBQjIwM0VCMEIyRDAwQTgwMTY2
IC8qIFdlYkZvcm1EZWxlZ2F0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXZWJGb3JtRGVsZWdhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCTJEODFEQUIzMDNFQjBCMkQwMEE4
MDE2NiAvKiBXZWJGb3JtRGVsZWdhdGUubSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5vYmpjOyBwYXRoID0gV2ViRm9ybURlbGVnYXRlLm07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OworCQkzMUMxMUE2QzE0NzY1
NTJFMDA0OUE0Q0MgLyogV2ViTm90aWZpY2F0aW9uQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdlYk5vdGlmaWNhdGlvbkNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkzMUMxMUE2RDE0NzY1NTJFMDA0OUE0Q0MgLyogV2ViTm90aWZpY2F0aW9u
Q2xpZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViTm90
aWZpY2F0aW9uQ2xpZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzNTA4MUQ5
MjAyQjZENEQ4MEFDQTJBQ0EgLyogV2ViSFRNTFJlcHJlc2VudGF0aW9uLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBmaWxl
RW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IHBhdGggPSBXZWJIVE1MUmVwcmVzZW50YXRp
b24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7
IH07CiAJCTM1MDgxRDkzMDJCNkQ0RDgwQUNBMkFDQSAvKiBXZWJIVE1MUmVwcmVzZW50YXRpb24u
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50
V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IFdlYkhUTUxSZXByZXNlbnRhdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFi
V2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCTM1MDgxRDk0MDJCNkQ0RDgwQUNBMkFDQSAv
KiBXZWJIVE1MVmlldy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdlYkhUTUxWaWV3Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRo
ID0gODsgdXNlc1RhYnMgPSAwOyB9OwpAQCAtMTMxMSw2ICsxMzE1LDggQEAKIAkJCQk5MzQ1RDRF
QjAzNjVDNUIyMDA4NjM1Q0UgLyogV2ViSmF2YVNjcmlwdFRleHRJbnB1dFBhbmVsLm0gKi8sCiAJ
CQkJODQ3MjNCRTMwNTZENzE5RTAwNDRCRkVBIC8qIFdlYktleUdlbmVyYXRvci5oICovLAogCQkJ
CTg0NzIzQkU0MDU2RDcxOUUwMDQ0QkZFQSAvKiBXZWJLZXlHZW5lcmF0b3IubW0gKi8sCisJCQkJ
MzFDMTFBNkMxNDc2NTUyRTAwNDlBNENDIC8qIFdlYk5vdGlmaWNhdGlvbkNsaWVudC5oICovLAor
CQkJCTMxQzExQTZEMTQ3NjU1MkUwMDQ5QTRDQyAvKiBXZWJOb3RpZmljYXRpb25DbGllbnQubW0g
Ki8sCiAJCQkJQTU4QTU3OTcxNDNFNzI3MDAwMTI1RjUwIC8qIFdlYk9wZW5QYW5lbFJlc3VsdExp
c3RlbmVyLmggKi8sCiAJCQkJQTU4QTU3OTgxNDNFNzI3MDAwMTI1RjUwIC8qIFdlYk9wZW5QYW5l
bFJlc3VsdExpc3RlbmVyLm1tICovLAogCQkJCTFBQTg3OUI0MTFDQkU5QkYwMDNDNjY0RiAvKiBX
ZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCAqLywKQEAgLTE2MjUsNiArMTYzMSw3IEBACiAJCQkJQjgy
OTU4RDMxMzI3MDdEMDAwMEQwRTc5IC8qIENvcnJlY3Rpb25QYW5lbC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQTU2ODdCREExMzVCNzkxQTAwNzRDQkNCIC8qIFdlYk5vZGVIaWdobGlnaHRlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTU4QTU3OTkxNDNFNzI3MDAwMTI1RjUwIC8qIFdlYk9wZW5QYW5l
bFJlc3VsdExpc3RlbmVyLmggaW4gSGVhZGVycyAqLywKKwkJCQkzMUMxMUE2RTE0NzY1NTJFMDA0
OUE0Q0MgLyogV2ViTm90aWZpY2F0aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJ
CQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTIwMTAs
NiArMjAxNyw3IEBACiAJCQkJQjgyOTU4RDQxMzI3MDdEMDAwMEQwRTc5IC8qIENvcnJlY3Rpb25Q
YW5lbC5tbSBpbiBTb3VyY2VzICovLAogCQkJCUE1Njg3QkRCMTM1Qjc5MUEwMDc0Q0JDQiAvKiBX
ZWJOb2RlSGlnaGxpZ2h0ZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQlBNThBNTc5QTE0M0U3Mjcw
MDAxMjVGNTAgLyogV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIubW0gaW4gU291cmNlcyAqLywK
KwkJCQkzMUMxMUE2RjE0NzY1NTJFMDA0OUE0Q0MgLyogV2ViTm90aWZpY2F0aW9uQ2xpZW50Lm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9D
aHJvbWVDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNs
aWVudEltcGwuY3BwCmluZGV4IDE0NjU4NGJkOTU3NmM2MTAyMDc2MzcwMzUyMWQ2N2Q2YzVkOTk4
ZWIuLjVmODRhMmZjYzdiNGY2ODIwZjA0NjgyZmY0NjQ1ZmE4MTVlNzAxZDYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCkBAIC01NCw3ICs1
NCw2IEBACiAjaW5jbHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgIk5hdmlnYXRpb25BY3Rpb24u
aCIKICNpbmNsdWRlICJOb2RlLmgiCi0jaW5jbHVkZSAiTm90aWZpY2F0aW9uUHJlc2VudGVySW1w
bC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN1cHBvcnQuaCIKICNp
bmNsdWRlICJQb3B1cENvbnRhaW5lci5oIgpAQCAtNzg1LDEzICs3ODQsNiBAQCB2b2lkIENocm9t
ZUNsaWVudEltcGw6OnBvc3RBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlP
YmplY3QqIG9iaiwgQQogICAgICAgICBtX3dlYlZpZXctPmNsaWVudCgpLT5wb3N0QWNjZXNzaWJp
bGl0eU5vdGlmaWNhdGlvbihXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0KG9iaiksIHRvV2ViQWNjZXNz
aWJpbGl0eU5vdGlmaWNhdGlvbihub3RpZmljYXRpb24pKTsKIH0KIAotI2lmIEVOQUJMRShOT1RJ
RklDQVRJT05TKQotTm90aWZpY2F0aW9uUHJlc2VudGVyKiBDaHJvbWVDbGllbnRJbXBsOjpub3Rp
ZmljYXRpb25QcmVzZW50ZXIoKSBjb25zdAotewotICAgIHJldHVybiBtX3dlYlZpZXctPm5vdGlm
aWNhdGlvblByZXNlbnRlckltcGwoKTsKLX0KLSNlbmRpZgotCiBib29sIENocm9tZUNsaWVudElt
cGw6OnBhaW50Q3VzdG9tT3ZlcmhhbmdBcmVhKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29u
c3QgSW50UmVjdCYgaG9yaXpvbnRhbE92ZXJoYW5nQXJlYSwgY29uc3QgSW50UmVjdCYgdmVydGlj
YWxPdmVyaGFuZ0FyZWEsIGNvbnN0IEludFJlY3QmIGRpcnR5UmVjdCkKIHsKICAgICBGcmFtZSog
ZnJhbWUgPSBtX3dlYlZpZXctPm1haW5GcmFtZUltcGwoKS0+ZnJhbWUoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaAppbmRleCAxYTlmNGRmZjZmNzVk
OWIzODY5MzlkMzdjNWNiZWQxZjNhZTc2NDYwLi43N2YyNjQxYTQ0NGRmMGMwZWMwMjNkOGNlNTZl
MWZhOWQwNDkxNTU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJv
bWVDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xp
ZW50SW1wbC5oCkBAIC0xMzAsOSArMTMwLDYgQEAgcHVibGljOgogICAgICAgICBXZWJDb3JlOjpG
cmFtZSosIGNvbnN0IFdURjo6U3RyaW5nJiBkYXRhYmFzZU5hbWUpOwogICAgIHZpcnR1YWwgdm9p
ZCByZWFjaGVkTWF4QXBwQ2FjaGVTaXplKGludDY0X3Qgc3BhY2VOZWVkZWQpOwogICAgIHZpcnR1
YWwgdm9pZCByZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luKiwgaW50NjRfdCB0b3RhbFNwYWNlTmVlZGVkKTsKLSNpZiBFTkFCTEUoTk9USUZJ
Q0FUSU9OUykKLSAgICB2aXJ0dWFsIFdlYkNvcmU6Ok5vdGlmaWNhdGlvblByZXNlbnRlciogbm90
aWZpY2F0aW9uUHJlc2VudGVyKCkgY29uc3Q7Ci0jZW5kaWYKICAgICB2aXJ0dWFsIGJvb2wgcGFp
bnRDdXN0b21PdmVyaGFuZ0FyZWEoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0KiwgY29uc3QgV2Vi
Q29yZTo6SW50UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBjb25zdCBXZWJDb3JlOjpJ
bnRSZWN0Jik7CiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25G
b3JGcmFtZShXZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6Okdlb2xvY2F0aW9uKik7CiAgICAgdmly
dHVhbCB2b2lkIGNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RGb3JGcmFtZShXZWJD
b3JlOjpGcmFtZSosIFdlYkNvcmU6Okdlb2xvY2F0aW9uKik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJOb3RpZmljYXRpb24uY3BwIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViTm90aWZpY2F0aW9uLmNwcAppbmRleCAxNWQ5MDVjNjA5OTFjOWRlZDgy
YzU4YzViY2E1ZDBhOTEzYTQ4NTIwLi4xODk0NDcxNjNmZmVjMTkyZDA2YzhhYzBhNWI1OGRmZTI3
MzlmYzgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJOb3RpZmlj
YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk5vdGlmaWNhdGlv
bi5jcHAKQEAgLTg4LDEzICs4OCwxMyBAQCBXZWJVUkwgV2ViTm90aWZpY2F0aW9uOjppY29uVVJM
KCkgY29uc3QKIFdlYlN0cmluZyBXZWJOb3RpZmljYXRpb246OnRpdGxlKCkgY29uc3QKIHsKICAg
ICBBU1NFUlQoIWlzSFRNTCgpKTsKLSAgICByZXR1cm4gbV9wcml2YXRlLT5jb250ZW50cygpLnRp
dGxlKCk7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+Y29udGVudHMoKS50aXRsZTsKIH0KIAogV2Vi
U3RyaW5nIFdlYk5vdGlmaWNhdGlvbjo6Ym9keSgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKCFpc0hU
TUwoKSk7Ci0gICAgcmV0dXJuIG1fcHJpdmF0ZS0+Y29udGVudHMoKS5ib2R5KCk7CisgICAgcmV0
dXJuIG1fcHJpdmF0ZS0+Y29udGVudHMoKS5ib2R5OwogfQogCiBXZWJUZXh0RGlyZWN0aW9uIFdl
Yk5vdGlmaWNhdGlvbjo6ZGlyZWN0aW9uKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlZpZXdJbXBsLmNwcAppbmRleCA3NzcyZDk4M2FlMGM4M2U5ODRmMGNiYWNhMjA2YWQ0
MGVjZjIyZGZlLi4zMWUxZTBjNzYzOTcwYTRhNWMxMTMwNDg1OTdkZmFkY2UzOTUzZDI3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCkBAIC0zOTQsNiArMzk0
LDkgQEAgV2ViVmlld0ltcGw6OldlYlZpZXdJbXBsKFdlYlZpZXdDbGllbnQqIGNsaWVudCkKICNl
bmRpZgogICAgIHBhZ2VDbGllbnRzLmRldmljZU9yaWVudGF0aW9uQ2xpZW50ID0gbV9kZXZpY2VP
cmllbnRhdGlvbkNsaWVudFByb3h5LmdldCgpOwogICAgIHBhZ2VDbGllbnRzLmdlb2xvY2F0aW9u
Q2xpZW50ID0gbV9nZW9sb2NhdGlvbkNsaWVudFByb3h5LmdldCgpOworI2lmIEVOQUJMRShOT1RJ
RklDQVRJT05TKQorICAgIHBhZ2VDbGllbnRzLm5vdGlmaWNhdGlvbkNsaWVudCA9ICZtX25vdGlm
aWNhdGlvblByZXNlbnRlcjsKKyNlbmRpZgogICAgIHBhZ2VDbGllbnRzLmJhY2tGb3J3YXJkQ2xp
ZW50ID0gQmFja0ZvcndhcmRMaXN0Q2hyb21pdW06OmNyZWF0ZSh0aGlzKTsKICNpZiBFTkFCTEUo
TUVESUFfU1RSRUFNKQogICAgIHBhZ2VDbGllbnRzLnVzZXJNZWRpYUNsaWVudCA9ICZtX3VzZXJN
ZWRpYUNsaWVudEltcGw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9Db25maWd1cmF0
aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NvbmZpZ3Vy
YXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IDUyZjAwODZiZDQ4MzcyMjVkM2Fk
ZWUzYTc5YWM5NDQwYmE3Y2FmNzIuLmI2YWMyYWJhMjhlYzZkZGZmMmE5N2Y1N2FiY2ZkOTc4ZWZm
YzI0NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1
cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25z
L0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC05NCw3ICs5NCwxMCBAQCBFTkFCTEVfTUVESUFf
U1RBVElTVElDUyA9IDsKIEVOQUJMRV9NRVRFUl9UQUcgPSBFTkFCTEVfTUVURVJfVEFHOwogRU5B
QkxFX01IVE1MID0gOwogRU5BQkxFX01VVEFUSU9OX09CU0VSVkVSUyA9IDsKLUVOQUJMRV9OT1RJ
RklDQVRJT05TID0gOworCitFTkFCTEVfTk9USUZJQ0FUSU9OUyA9ICQoRU5BQkxFX05PVElGSUNB
VElPTlNfJChSRUFMX1BMQVRGT1JNX05BTUUpKTsKK0VOQUJMRV9OT1RJRklDQVRJT05TX21hY29z
eCA9IDsKKwogRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkgPSA7CiBFTkFCTEVfUFJPR1JFU1Nf
VEFHID0gRU5BQkxFX1BST0dSRVNTX1RBRzsKIEVOQUJMRV9RVU9UQSA9IDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5o
IGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNTQ4MDJhNmMwNTU3ZDNlNGQxMzQ1MzM5MTU0M2NjMjk0NjU2ZmVkOQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYk5v
dGlmaWNhdGlvbkNsaWVudC5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0
IDxXZWJDb3JlL05vdGlmaWNhdGlvblByZXNlbnRlci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OworY2xhc3MgVm9pZENhbGxiYWNrOworfQor
CitAY2xhc3MgV2ViVmlldzsKKworY2xhc3MgV2ViTm90aWZpY2F0aW9uQ2xpZW50IDogcHVibGlj
IFdlYkNvcmU6Ok5vdGlmaWNhdGlvblByZXNlbnRlciB7CitwdWJsaWM6CisgICAgV2ViTm90aWZp
Y2F0aW9uQ2xpZW50KFdlYlZpZXcgKik7CisgICAgV2ViVmlldyAqd2ViVmlldygpIHsgcmV0dXJu
IG1fd2ViVmlldzsgfQorCitwcml2YXRlOgorICAgIHZpcnR1YWwgYm9vbCBzaG93KFdlYkNvcmU6
Ok5vdGlmaWNhdGlvbiopIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBjYW5jZWwoV2ViQ29y
ZTo6Tm90aWZpY2F0aW9uKikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIG5vdGlmaWNhdGlv
bk9iamVjdERlc3Ryb3llZChXZWJDb3JlOjpOb3RpZmljYXRpb24qKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCosIFBhc3NSZWZQdHI8V2ViQ29yZTo6Vm9pZENhbGxiYWNrPikgT1ZFUlJJREU7CisgICAg
dmlydHVhbCB2b2lkIGNhbmNlbFJlcXVlc3RzRm9yUGVybWlzc2lvbihXZWJDb3JlOjpTY3JpcHRF
eGVjdXRpb25Db250ZXh0KikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBXZWJDb3JlOjpOb3RpZmlj
YXRpb25QcmVzZW50ZXI6OlBlcm1pc3Npb24gY2hlY2tQZXJtaXNzaW9uKFdlYkNvcmU6OlNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqKSBPVkVSUklERTsKKworICAgIFdlYlZpZXcgKm1fd2ViVmlldzsK
K307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJOb3Rp
ZmljYXRpb25DbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJO
b3RpZmljYXRpb25DbGllbnQubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTRmOTg4MmI4NDViMGM3NjExZWJiZGQz
NjY1NzFiNWU1ZDViZWU2NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5tbQpAQCAtMCwwICsxLDY4IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2ltcG9ydCAiV2ViTm90aWZpY2F0aW9uQ2xpZW50LmgiCisKKyNpbXBvcnQg
PFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKyNpbXBvcnQgPFdlYkNvcmUvTm90aWZpY2F0aW9u
Lmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitXZWJOb3RpZmljYXRpb25DbGllbnQ6
OldlYk5vdGlmaWNhdGlvbkNsaWVudChXZWJWaWV3ICp3ZWJWaWV3KQorICAgIDogbV93ZWJWaWV3
KHdlYlZpZXcpCit7Cit9CisKK2Jvb2wgV2ViTm90aWZpY2F0aW9uQ2xpZW50OjpzaG93KE5vdGlm
aWNhdGlvbiopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9
CisKK3ZvaWQgV2ViTm90aWZpY2F0aW9uQ2xpZW50OjpjYW5jZWwoTm90aWZpY2F0aW9uKikKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6
bm90aWZpY2F0aW9uT2JqZWN0RGVzdHJveWVkKFdlYkNvcmU6Ok5vdGlmaWNhdGlvbiopCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJOb3RpZmljYXRpb25DbGllbnQ6OnJl
cXVlc3RQZXJtaXNzaW9uKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVm
UHRyPFdlYkNvcmU6OlZvaWRDYWxsYmFjaz4pCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30K
Kwordm9pZCBXZWJOb3RpZmljYXRpb25DbGllbnQ6OmNhbmNlbFJlcXVlc3RzRm9yUGVybWlzc2lv
bihXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KikKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworfQorCitOb3RpZmljYXRpb25QcmVzZW50ZXI6OlBlcm1pc3Npb24gV2ViTm90aWZpY2F0
aW9uQ2xpZW50OjpjaGVja1Blcm1pc3Npb24oV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4
dCopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gTm90aWZpY2F0aW9uUHJl
c2VudGVyOjpQZXJtaXNzaW9uRGVuaWVkOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3
Lm1tCmluZGV4IGE0OTBhOGE5NDkxMjJhZTY3ZmY1YmNlMjMwYTRlNGIwNWM5ZmIzYWQuLjc5NTQ1
MTUyZmFkZjczYTViOTkxYTJhNWYxNTM1YmYxMmFkMDdhNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYlZpZXcubW0KQEAgLTg3LDYgKzg3LDcgQEAKICNpbXBvcnQgIldlYk5TVVJMUmVxdWVz
dEV4dHJhcy5oIgogI2ltcG9ydCAiV2ViTlNWaWV3RXh0cmFzLmgiCiAjaW1wb3J0ICJXZWJOb2Rl
SGlnaGxpZ2h0LmgiCisjaW1wb3J0ICJXZWJOb3RpZmljYXRpb25DbGllbnQuaCIKICNpbXBvcnQg
IldlYlBERlZpZXcuaCIKICNpbXBvcnQgIldlYlBhbmVsQXV0aGVudGljYXRpb25IYW5kbGVyLmgi
CiAjaW1wb3J0ICJXZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCIKQEAgLTczOSw2ICs3NDAsOSBAQCBz
dGF0aWMgTlNTdHJpbmcgKmxlYWtPdXRsb29rUXVpcmtzVXNlclNjcmlwdENvbnRlbnRzKCkKICNp
ZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogICAgIHBhZ2VDbGllbnRzLmdlb2xv
Y2F0aW9uQ2xpZW50ID0gbmV3IFdlYkdlb2xvY2F0aW9uQ2xpZW50KHNlbGYpOwogI2VuZGlmCisj
aWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCisgICAgcGFnZUNsaWVudHMubm90aWZpY2F0aW9uQ2xp
ZW50ID0gbmV3IFdlYk5vdGlmaWNhdGlvbkNsaWVudChzZWxmKTsKKyNlbmRpZgogI2lmIEVOQUJM
RShERVZJQ0VfT1JJRU5UQVRJT04pCiAgICAgcGFnZUNsaWVudHMuZGV2aWNlT3JpZW50YXRpb25D
bGllbnQgPSBuZXcgV2ViRGV2aWNlT3JpZW50YXRpb25DbGllbnQoc2VsZik7CiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcCBiL1NvdXJjZS9XZWJL
aXQvcXQvQXBpL3F3ZWJwYWdlLmNwcAppbmRleCBhZmMyYzYwOGI2NmIzNzljOWJkYjc1ZTg5MTI5
YzE5ZWJjOGZkZTc2Li4yMWEzMjIyMmVjYmEzYjlkMjc5ZTkwNGQ2ZDM4Y2QyNjRlZDkyZTY0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwCkBAIC0zNDYsNiArMzQ2LDkgQEAgUVdlYlBhZ2VQ
cml2YXRlOjpRV2ViUGFnZVByaXZhdGUoUVdlYlBhZ2UgKnFxKQogICAgIGVsc2UKICAgICAgICAg
cGFnZUNsaWVudHMuZ2VvbG9jYXRpb25DbGllbnQgPSBuZXcgR2VvbG9jYXRpb25DbGllbnRRdChx
KTsKICNlbmRpZgorI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQorICAgIHBhZ2VDbGllbnRzLm5v
dGlmaWNhdGlvbkNsaWVudCA9IE5vdGlmaWNhdGlvblByZXNlbnRlckNsaWVudFF0Ojpub3RpZmlj
YXRpb25QcmVzZW50ZXIoKTsKKyNlbmRpZgogICAgIHBhZ2UgPSBuZXcgUGFnZShwYWdlQ2xpZW50
cyk7CiAKICAgICAvLyBCeSBkZWZhdWx0IGVhY2ggcGFnZSBpcyBwdXQgaW50byB0aGVpciBvd24g
dW5pcXVlIHBhZ2UgZ3JvdXAsIHdoaWNoIGFmZmVjdHMgcG9wdXAgd2luZG93cwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAgYi9T
b3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcAppbmRleCA0
YTUxNTNmM2ZkNjAxYjMwNmFkOGY4ZWQ2MGVkM2I4M2MzZGFiY2ZlLi5iNDVhMjMzZWMwMWYwOTM3
N2Q1ZTBjYTE4YThkYWZmNjg5MGFjNmRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcApAQCAtNDksNyArNDksNiBAQAogI2luY2x1
ZGUgIk5hdmlnYXRpb25BY3Rpb24uaCIKICNpbmNsdWRlICJOZXR3b3JraW5nQ29udGV4dC5oIgog
I2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCi0jaW5jbHVkZSAiTm90aWZpY2F0aW9uUHJlc2Vu
dGVyQ2xpZW50UXQuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFnZUNsaWVudFF0
LmgiCiAjaW5jbHVkZSAiUG9wdXBNZW51UXQuaCIKQEAgLTU1NywxMyArNTU2LDYgQEAgdm9pZCBD
aHJvbWVDbGllbnRRdDo6cmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShTZWN1cml0
eU9yaWdpbiogb3JpZ2luLAogICAgIGVtaXQgbV93ZWJQYWdlLT5hcHBsaWNhdGlvbkNhY2hlUXVv
dGFFeGNlZWRlZChzZWN1cml0eU9yaWdpbiwgZGVmYXVsdE9yaWdpblF1b3RhLCBzdGF0aWNfY2Fz
dDxxdWludDY0Pih0b3RhbFNwYWNlTmVlZGVkKSk7CiB9CiAKLSNpZiBFTkFCTEUoTk9USUZJQ0FU
SU9OUykKLU5vdGlmaWNhdGlvblByZXNlbnRlciogQ2hyb21lQ2xpZW50UXQ6Om5vdGlmaWNhdGlv
blByZXNlbnRlcigpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIE5vdGlmaWNhdGlvblByZXNlbnRlckNs
aWVudFF0Ojpub3RpZmljYXRpb25QcmVzZW50ZXIoKTsKLX0KLSNlbmRpZgotCiB2b2lkIENocm9t
ZUNsaWVudFF0OjpydW5PcGVuUGFuZWwoRnJhbWUqIGZyYW1lLCBQYXNzUmVmUHRyPEZpbGVDaG9v
c2VyPiBwcnBGaWxlQ2hvb3NlcikKIHsKICAgICBSZWZQdHI8RmlsZUNob29zZXI+IGZpbGVDaG9v
c2VyID0gcHJwRmlsZUNob29zZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmggYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudFF0LmgKaW5kZXggMjgxNTk5MDQ5OGFmOGUwYWVhZDA1YmRkMGRmM2M4
NzU3MDdmMzhkMi4uNWUyNjMxMzM2MzFiODkwZTZmNTAwYzI4NWZkNTY1OGJlYmRmZGYwOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaApA
QCAtMTQyLDEwICsxNDIsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNob3dDb250ZXh0
TWVudSgpIHsgfQogI2VuZGlmCiAKLSNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKLSAgICB2aXJ0
dWFsIE5vdGlmaWNhdGlvblByZXNlbnRlciogbm90aWZpY2F0aW9uUHJlc2VudGVyKCkgY29uc3Q7
Ci0jZW5kaWYKLQogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAvLyBUaGlz
IGlzIGEgaG9vayBmb3IgV2ViQ29yZSB0byB0ZWxsIHVzIHdoYXQgd2UgbmVlZCB0byBkbyB3aXRo
IHRoZSBHcmFwaGljc0xheWVycy4KICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoUm9vdEdyYXBoaWNz
TGF5ZXIoRnJhbWUqLCBHcmFwaGljc0xheWVyKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L3F0L1dlYkNvcmVTdXBwb3J0L05vdGlmaWNhdGlvblByZXNlbnRlckNsaWVudFF0LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvTm90aWZpY2F0aW9uUHJlc2VudGVyQ2xpZW50
UXQuY3BwCmluZGV4IGVjN2FiYWU1NTQyMDUzN2U1NmZkNDZjM2YzZWIyNGRjZGY0MmYyNjguLjBk
YWNjMGZkNWQzZGYzOWU1YjI5NmExNjJmYjA5ODc3ODFkMmIyNmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvTm90aWZpY2F0aW9uUHJlc2VudGVyQ2xpZW50UXQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvTm90aWZpY2F0aW9uUHJl
c2VudGVyQ2xpZW50UXQuY3BwCkBAIC05MSw3ICs5MSw3IEBAIGNvbnN0IFFTdHJpbmcgTm90aWZp
Y2F0aW9uV3JhcHBlcjo6dGl0bGUoKSBjb25zdAogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQog
ICAgIE5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uID0gTm90aWZpY2F0aW9uUHJlc2VudGVyQ2xp
ZW50UXQ6Om5vdGlmaWNhdGlvblByZXNlbnRlcigpLT5ub3RpZmljYXRpb25Gb3JXcmFwcGVyKHRo
aXMpOwogICAgIGlmIChub3RpZmljYXRpb24pCi0gICAgICAgIHJldHVybiBub3RpZmljYXRpb24t
PmNvbnRlbnRzKCkudGl0bGUoKTsKKyAgICAgICAgcmV0dXJuIG5vdGlmaWNhdGlvbi0+Y29udGVu
dHMoKS50aXRsZTsKICNlbmRpZgogICAgIHJldHVybiBRU3RyaW5nKCk7CiB9CkBAIC0xMDEsNyAr
MTAxLDcgQEAgY29uc3QgUVN0cmluZyBOb3RpZmljYXRpb25XcmFwcGVyOjptZXNzYWdlKCkgY29u
c3QKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKICAgICBOb3RpZmljYXRpb24qIG5vdGlmaWNh
dGlvbiA9IE5vdGlmaWNhdGlvblByZXNlbnRlckNsaWVudFF0Ojpub3RpZmljYXRpb25QcmVzZW50
ZXIoKS0+bm90aWZpY2F0aW9uRm9yV3JhcHBlcih0aGlzKTsKICAgICBpZiAobm90aWZpY2F0aW9u
KQotICAgICAgICByZXR1cm4gbm90aWZpY2F0aW9uLT5jb250ZW50cygpLmJvZHkoKTsKKyAgICAg
ICAgcmV0dXJuIG5vdGlmaWNhdGlvbi0+Y29udGVudHMoKS5ib2R5OwogI2VuZGlmCiAgICAgcmV0
dXJuIFFTdHJpbmcoKTsKIH0KQEAgLTE5Nyw4ICsxOTcsOCBAQCB2b2lkIE5vdGlmaWNhdGlvblBy
ZXNlbnRlckNsaWVudFF0OjpkaXNwbGF5Tm90aWZpY2F0aW9uKE5vdGlmaWNhdGlvbiogbm90aWZp
Y2F0aQogICAgIGlmIChub3RpZmljYXRpb24tPmlzSFRNTCgpKQogICAgICAgICBtZXNzYWdlID0g
bm90aWZpY2F0aW9uLT51cmwoKS5zdHJpbmcoKTsKICAgICBlbHNlIHsKLSAgICAgICAgdGl0bGUg
PSBub3RpZmljYXRpb24tPmNvbnRlbnRzKCkudGl0bGUoKTsKLSAgICAgICAgbWVzc2FnZSA9IG5v
dGlmaWNhdGlvbi0+Y29udGVudHMoKS5ib2R5KCk7CisgICAgICAgIHRpdGxlID0gbm90aWZpY2F0
aW9uLT5jb250ZW50cygpLnRpdGxlOworICAgICAgICBtZXNzYWdlID0gbm90aWZpY2F0aW9uLT5j
b250ZW50cygpLmJvZHk7CiAgICAgfQogCiAgICAgaWYgKG1fcGxhdGZvcm1QbHVnaW4ucGx1Z2lu
KCkgJiYgbV9wbGF0Zm9ybVBsdWdpbi5wbHVnaW4oKS0+c3VwcG9ydHNFeHRlbnNpb24oUVdlYktp
dFBsYXRmb3JtUGx1Z2luOjpOb3RpZmljYXRpb25zKSkKQEAgLTIzMyw3ICsyMzMsNyBAQCB2b2lk
IE5vdGlmaWNhdGlvblByZXNlbnRlckNsaWVudFF0OjpkaXNwbGF5Tm90aWZpY2F0aW9uKE5vdGlm
aWNhdGlvbiogbm90aWZpY2F0aQogI2lmbmRlZiBRVF9OT19TWVNURU1UUkFZSUNPTgogICAgIHdy
YXBwZXItPmNvbm5lY3Qod3JhcHBlci0+bV9ub3RpZmljYXRpb25JY29uLmdldCgpLCBTSUdOQUwo
bWVzc2FnZUNsaWNrZWQoKSksIHdyYXBwZXIsIFNMT1Qobm90aWZpY2F0aW9uQ2xpY2tlZCgpKSk7
CiAgICAgd3JhcHBlci0+bV9ub3RpZmljYXRpb25JY29uLT5zaG93KCk7Ci0gICAgd3JhcHBlci0+
bV9ub3RpZmljYXRpb25JY29uLT5zaG93TWVzc2FnZShub3RpZmljYXRpb24tPmNvbnRlbnRzKCku
dGl0bGUoKSwgbm90aWZpY2F0aW9uLT5jb250ZW50cygpLmJvZHkoKSk7CisgICAgd3JhcHBlci0+
bV9ub3RpZmljYXRpb25JY29uLT5zaG93TWVzc2FnZShub3RpZmljYXRpb24tPmNvbnRlbnRzKCku
dGl0bGUsIG5vdGlmaWNhdGlvbi0+Y29udGVudHMoKS5ib2R5KTsKICNlbmRpZgogfQogCkBAIC0y
NDMsNyArMjQzLDcgQEAgdm9pZCBOb3RpZmljYXRpb25QcmVzZW50ZXJDbGllbnRRdDo6Y2FuY2Vs
KE5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uKQogICAgICAgICBpZiAobm90aWZpY2F0aW9uLT5p
c0hUTUwoKSkKICAgICAgICAgICAgIHByaW50ZigiREVTS1RPUCBOT1RJRklDQVRJT04gQ0xPU0VE
OiAlc1xuIiwgUVN0cmluZyhub3RpZmljYXRpb24tPnVybCgpLnN0cmluZygpKS50b1V0ZjgoKS5j
b25zdERhdGEoKSk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHByaW50ZigiREVTS1RPUCBO
T1RJRklDQVRJT04gQ0xPU0VEOiAlc1xuIiwgUVN0cmluZyhub3RpZmljYXRpb24tPmNvbnRlbnRz
KCkudGl0bGUoKSkudG9VdGY4KCkuY29uc3REYXRhKCkpOworICAgICAgICAgICAgcHJpbnRmKCJE
RVNLVE9QIE5PVElGSUNBVElPTiBDTE9TRUQ6ICVzXG4iLCBRU3RyaW5nKG5vdGlmaWNhdGlvbi0+
Y29udGVudHMoKS50aXRsZSkudG9VdGY4KCkuY29uc3REYXRhKCkpOwogICAgIH0KIAogICAgIE5v
dGlmaWNhdGlvbnNRdWV1ZTo6SXRlcmF0b3IgaXRlciA9IG1fbm90aWZpY2F0aW9ucy5maW5kKG5v
dGlmaWNhdGlvbik7CkBAIC0yODMsNyArMjgzLDcgQEAgdm9pZCBOb3RpZmljYXRpb25QcmVzZW50
ZXJDbGllbnRRdDo6bm90aWZpY2F0aW9uQ2xpY2tlZChjb25zdCBRU3RyaW5nJiB0aXRsZSkKICAg
ICAgICAgaWYgKG5vdGlmaWNhdGlvbi0+aXNIVE1MKCkpCiAgICAgICAgICAgICBub3RpZmljYXRp
b25UaXRsZSA9IG5vdGlmaWNhdGlvbi0+dXJsKCkuc3RyaW5nKCk7CiAgICAgICAgIGVsc2UKLSAg
ICAgICAgICAgIG5vdGlmaWNhdGlvblRpdGxlID0gbm90aWZpY2F0aW9uLT5jb250ZW50cygpLnRp
dGxlKCk7CisgICAgICAgICAgICBub3RpZmljYXRpb25UaXRsZSA9IG5vdGlmaWNhdGlvbi0+Y29u
dGVudHMoKS50aXRsZTsKICAgICAgICAgaWYgKG5vdGlmaWNhdGlvblRpdGxlID09IHRpdGxlKQog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGl0ZXIrKzsKQEAgLTQxOSw3ICs0MTksNyBAQCB2
b2lkIE5vdGlmaWNhdGlvblByZXNlbnRlckNsaWVudFF0OjpkZXRhY2hOb3RpZmljYXRpb24oTm90
aWZpY2F0aW9uKiBub3RpZmljYXRpbwogdm9pZCBOb3RpZmljYXRpb25QcmVzZW50ZXJDbGllbnRR
dDo6ZHVtcFJlcGxhY2VkSWRUZXh0KE5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uKQogewogICAg
IGlmIChub3RpZmljYXRpb24pCi0gICAgICAgIHByaW50ZigiUkVQTEFDSU5HIE5PVElGSUNBVElP
TiAlc1xuIiwgbm90aWZpY2F0aW9uLT5pc0hUTUwoKSA/IFFTdHJpbmcobm90aWZpY2F0aW9uLT51
cmwoKS5zdHJpbmcoKSkudG9VdGY4KCkuY29uc3REYXRhKCkgOiBRU3RyaW5nKG5vdGlmaWNhdGlv
bi0+Y29udGVudHMoKS50aXRsZSgpKS50b1V0ZjgoKS5jb25zdERhdGEoKSk7CisgICAgICAgIHBy
aW50ZigiUkVQTEFDSU5HIE5PVElGSUNBVElPTiAlc1xuIiwgbm90aWZpY2F0aW9uLT5pc0hUTUwo
KSA/IFFTdHJpbmcobm90aWZpY2F0aW9uLT51cmwoKS5zdHJpbmcoKSkudG9VdGY4KCkuY29uc3RE
YXRhKCkgOiBRU3RyaW5nKG5vdGlmaWNhdGlvbi0+Y29udGVudHMoKS50aXRsZSkudG9VdGY4KCku
Y29uc3REYXRhKCkpOwogfQogCiB2b2lkIE5vdGlmaWNhdGlvblByZXNlbnRlckNsaWVudFF0Ojpk
dW1wU2hvd1RleHQoTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24pCkBAIC00MjksOCArNDI5LDgg
QEAgdm9pZCBOb3RpZmljYXRpb25QcmVzZW50ZXJDbGllbnRRdDo6ZHVtcFNob3dUZXh0KE5vdGlm
aWNhdGlvbiogbm90aWZpY2F0aW9uKQogICAgIGVsc2UgewogICAgICAgICBwcmludGYoIkRFU0tU
T1AgTk9USUZJQ0FUSU9OOiVzIGljb24gJXMsIHRpdGxlICVzLCB0ZXh0ICVzXG4iLAogICAgICAg
ICAgICAgICAgIG5vdGlmaWNhdGlvbi0+ZGlyKCkgPT0gInJ0bCIgPyAiKFJUTCkiIDogIiIsCi0g
ICAgICAgICAgICBRU3RyaW5nKG5vdGlmaWNhdGlvbi0+Y29udGVudHMoKS5pY29uKCkuc3RyaW5n
KCkpLnRvVXRmOCgpLmNvbnN0RGF0YSgpLCBRU3RyaW5nKG5vdGlmaWNhdGlvbi0+Y29udGVudHMo
KS50aXRsZSgpKS50b1V0ZjgoKS5jb25zdERhdGEoKSwKLSAgICAgICAgICAgIFFTdHJpbmcobm90
aWZpY2F0aW9uLT5jb250ZW50cygpLmJvZHkoKSkudG9VdGY4KCkuY29uc3REYXRhKCkpOworICAg
ICAgICAgICAgUVN0cmluZyhub3RpZmljYXRpb24tPmNvbnRlbnRzKCkuaWNvbi5zdHJpbmcoKSku
dG9VdGY4KCkuY29uc3REYXRhKCksIFFTdHJpbmcobm90aWZpY2F0aW9uLT5jb250ZW50cygpLnRp
dGxlKS50b1V0ZjgoKS5jb25zdERhdGEoKSwKKyAgICAgICAgICAgIFFTdHJpbmcobm90aWZpY2F0
aW9uLT5jb250ZW50cygpLmJvZHkpLnRvVXRmOCgpLmNvbnN0RGF0YSgpKTsKICAgICB9CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVz
LnhjY29uZmlnIGIvU291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMu
eGNjb25maWcKaW5kZXggNTJmMDA4NmJkNDgzNzIyNWQzYWRlZTNhNzlhYzk0NDBiYTdjYWY3Mi4u
YjZhYzJhYmEyOGVjNmRkZmYyYTk3ZjU3YWJjZmQ5NzhlZmZjMjQ0YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIv
U291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAg
LTk0LDcgKzk0LDEwIEBAIEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTID0gOwogRU5BQkxFX01FVEVS
X1RBRyA9IEVOQUJMRV9NRVRFUl9UQUc7CiBFTkFCTEVfTUhUTUwgPSA7CiBFTkFCTEVfTVVUQVRJ
T05fT0JTRVJWRVJTID0gOwotRU5BQkxFX05PVElGSUNBVElPTlMgPSA7CisKK0VOQUJMRV9OT1RJ
RklDQVRJT05TID0gJChFTkFCTEVfTk9USUZJQ0FUSU9OU18kKFJFQUxfUExBVEZPUk1fTkFNRSkp
OworRU5BQkxFX05PVElGSUNBVElPTlNfbWFjb3N4ID0gOworCiBFTkFCTEVfUEFHRV9WSVNJQklM
SVRZX0FQSSA9IDsKIEVOQUJMRV9QUk9HUkVTU19UQUcgPSBFTkFCTEVfUFJPR1JFU1NfVEFHOwog
RU5BQkxFX1FVT1RBID0gOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJj
ZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggMTg1MzI5
NmU0NmI5MmExYmFhZWYyZmUwYzM5ZjVmMzNiMTA5NzMwYS4uOTRlM2YzZDlkY2Y0YjJiOGVlMzAw
YzFhODBjY2UyZjM0YzEyYjdmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGVyaXZlZFNv
dXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0z
Miw2ICszMiw3IEBAIFZQQVRIID0gXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9JY29uRGF0
YWJhc2UgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9LZXlWYWx1ZVN0b3JhZ2UgXAogICAg
ICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9NZWRpYUNhY2hlIFwKKyAgICAkKFdlYktpdDIpL1dlYlBy
b2Nlc3MvTm90aWZpY2F0aW9ucyBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL1BsdWdpbnMg
XAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hlIFwKICAgICAkKFdlYktp
dDIpL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQgXApAQCAtNzIsNiArNzMsNyBAQCBNRVNTQUdF
X1JFQ0VJVkVSUyA9IFwKICAgICBXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHkgXAogICAg
IFdlYk1lZGlhQ2FjaGVNYW5hZ2VyIFwKICAgICBXZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5IFwK
KyAgICBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkgXAogICAgIFdlYlBhZ2UgXAogICAgIFdl
YlBhZ2VQcm94eSBcCiAgICAgV2ViUHJvY2VzcyBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9EZXJpdmVkU291cmNlcy5wcmkgYi9Tb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5wcmkK
aW5kZXggYjBhNWMyNjNmNGMxMGNjYjViMzhiMzgxZDQxNDIzN2M0NGZmOTQ0NS4uODQyY2ZlZjQx
ZjFkZmU5MDBhZjI2NTI3NjcwNjQ1NmQ3YTk4YmM0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvRGVyaXZlZFNvdXJjZXMucHJpCisrKyBiL1NvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2Vz
LnByaQpAQCAtNDEsNiArNDEsNyBAQCBWUEFUSCA9IFwKICAgICBXZWJQcm9jZXNzL0ljb25EYXRh
YmFzZSBcCiAgICAgV2ViUHJvY2Vzcy9LZXlWYWx1ZVN0b3JhZ2UgXAogICAgIFdlYlByb2Nlc3Mv
TWVkaWFDYWNoZSBcCisgICAgV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zIFwKICAgICBXZWJQcm9j
ZXNzL1BsdWdpbnMgXAogICAgIFdlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZSBcCiAgICAgV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydCBcCkBAIC03Nyw2ICs3OCw3IEBAIE1FU1NBR0VfUkVDRUlWRVJT
ID0gXAogICAgIFdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBcCiAg
ICAgV2ViTWVkaWFDYWNoZU1hbmFnZXIubWVzc2FnZXMuaW4gXAogICAgIFdlYk1lZGlhQ2FjaGVN
YW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gXAorICAgIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94
eS5tZXNzYWdlcy5pbiBcCiAgICAgV2ViRnVsbFNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4gXAog
ICAgIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gXAogICAgIFdlYlBhZ2Uv
RHJhd2luZ0FyZWEubWVzc2FnZXMuaW4gXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vQ29yZUlQQy9NZXNzYWdlSUQuaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJ
UEMvTWVzc2FnZUlELmgKaW5kZXggNDU1MWQ3ZTg0MzA3MzU0ODUyOTZlOWE5OTc5NjhkZmU0MTMw
MWY3NS4uMjk2YzIyZjI1OWZmOWEzNjMwNjQ0NTZkZWM0NTU0NDgzMzNlYzVjOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlSUQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VJRC5oCkBAIC02Nyw2ICs2Nyw3IEBA
IGVudW0gTWVzc2FnZUNsYXNzIHsKICAgICBNZXNzYWdlQ2xhc3NXZWJJbnNwZWN0b3JQcm94eSwK
ICAgICBNZXNzYWdlQ2xhc3NXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHksCiAgICAgTWVz
c2FnZUNsYXNzV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eSwKKyAgICBNZXNzYWdlQ2xhc3NXZWJO
b3RpZmljYXRpb25NYW5hZ2VyUHJveHksCiAgICAgTWVzc2FnZUNsYXNzV2ViUGFnZVByb3h5LAog
ICAgIE1lc3NhZ2VDbGFzc1dlYlByb2Nlc3NQcm94eSwKICAgICBNZXNzYWdlQ2xhc3NXZWJSZXNv
dXJjZUNhY2hlTWFuYWdlclByb3h5LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2NyaXB0
cy93ZWJraXQyL21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL21l
c3NhZ2VzLnB5CmluZGV4IDFiYTk5MmIwOTU5NGY3MTYwZTI5YWQ2MDdjOGQxNzI3MmQzZjk3ZWMu
LmQzZmE1YjcyZDkxMWQ3YzZiODZjNTBjNmZhM2UzNGZiMmRmNGU4Y2YgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMucHkKQEAgLTE3OSw2ICsxNzksNyBAQCBkZWYg
c3RydWN0X29yX2NsYXNzKG5hbWVzcGFjZSwgdHlwZSk6CiAgICAgICAgICdXZWJDb3JlOjpMZW5n
dGgnLAogICAgICAgICAnV2ViQ29yZTo6TWF0cml4VHJhbnNmb3JtT3BlcmF0aW9uJywKICAgICAg
ICAgJ1dlYkNvcmU6Ok1hdHJpeDNEVHJhbnNmb3JtT3BlcmF0aW9uJywKKyAgICAgICAgJ1dlYkNv
cmU6Ok5vdGlmaWNhdGlvbkNvbnRlbnRzJywKICAgICAgICAgJ1dlYkNvcmU6OlBlcnNwZWN0aXZl
VHJhbnNmb3JtT3BlcmF0aW9uJywKICAgICAgICAgJ1dlYkNvcmU6OlBsdWdpbkluZm8nLAogICAg
ICAgICAnV2ViQ29yZTo6UHJpbnRJbmZvJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9BUEkvYy9XS0Jhc2UuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2Uu
aAppbmRleCBhMWZjNzkzZmY2YjM3OWZiZGRkOTE3MDBmZTczYWVhMjEwYjZhMjQzLi42Y2Y0ZjBm
MDNiNzBhODc2NTIwYmJlMjY3YzVkOGI4MjIyYzU5MTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQ
SS9jL1dLQmFzZS5oCkBAIC05NSw2ICs5NSw5IEBAIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1
ZVdLSW5zcGVjdG9yKiBXS0luc3BlY3RvclJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1
ZVdLS2V5VmFsdWVTdG9yYWdlTWFuYWdlciogV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUmVmOwog
dHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tNZWRpYUNhY2hlTWFuYWdlciogV0tNZWRpYUNh
Y2hlTWFuYWdlclJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLTmF2aWdhdGlvbkRh
dGEqIFdLTmF2aWdhdGlvbkRhdGFSZWY7Cit0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS05v
dGlmaWNhdGlvbiogV0tOb3RpZmljYXRpb25SZWY7Cit0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFx
dWVXS05vdGlmaWNhdGlvbk1hbmFnZXIqIFdLTm90aWZpY2F0aW9uTWFuYWdlclJlZjsKK3R5cGVk
ZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLTm90aWZpY2F0aW9uUHJvdmlkZXIqIFdLTm90aWZpY2F0
aW9uUHJvdmlkZXJSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS09wZW5QYW5lbFBh
cmFtZXRlcnMqIFdLT3BlblBhbmVsUGFyYW1ldGVyc1JlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0
IE9wYXF1ZVdLT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIqIFdLT3BlblBhbmVsUmVzdWx0TGlzdGVu
ZXJSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1BhZ2UqIFdLUGFnZVJlZjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaCBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9BUElPYmplY3QuaAppbmRleCBiZjQzOTYwZDUxM2QyYmE3NzgzNTUxNjQ3NWM2
OWNkODNkNWU2OGQ5Li5kZWNiZGI5N2E3YzY5MTIzMDE5NGIyYzE2OWIyNTE2MzA3ZDcyNTk3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgKKysrIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCkBAIC04OSw2ICs4OSw4IEBAIHB1YmxpYzoKICAg
ICAgICAgVHlwZUtleVZhbHVlU3RvcmFnZU1hbmFnZXIsCiAgICAgICAgIFR5cGVNZWRpYUNhY2hl
TWFuYWdlciwKICAgICAgICAgVHlwZU5hdmlnYXRpb25EYXRhLAorICAgICAgICBUeXBlTm90aWZp
Y2F0aW9uLAorICAgICAgICBUeXBlTm90aWZpY2F0aW9uTWFuYWdlciwKICAgICAgICAgVHlwZU9w
ZW5QYW5lbFBhcmFtZXRlcnMsCiAgICAgICAgIFR5cGVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lciwK
ICAgICAgICAgVHlwZVBhZ2UsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVXNl
ck1lc3NhZ2VDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Vc2VyTWVzc2FnZUNvZGVy
cy5oCmluZGV4IGU3NDVjMzliYjBhNzkzNDE2MjBiZjdlODA5MWUwN2U0ZGM0ODRiM2MuLmQ1YWIy
ZmQyOTNjNWQ1YmZiZjlkNjlkOGY3NjY1OWMxZjc5ZDQyOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9Vc2VyTWVzc2FnZUNvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9Vc2VyTWVzc2FnZUNvZGVycy5oCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiV2Vi
RGF0YS5oIgogI2luY2x1ZGUgIldlYkdlb21ldHJ5LmgiCiAjaW5jbHVkZSAiV2ViSW1hZ2UuaCIK
KyNpbmNsdWRlICJXZWJOb3RpZmljYXRpb24uaCIKICNpbmNsdWRlICJXZWJOdW1iZXIuaCIKICNp
bmNsdWRlICJXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlICJXZWJTdHJpbmcu
aCIKQEAgLTU1LDYgKzU2LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAvLyAgIC0gV2ViRGF0YSAt
PiBXZWJEYXRhCiAvLyAgIC0gV2ViRG91YmxlIC0+IFdlYkRvdWJsZQogLy8gICAtIFdlYkltYWdl
IC0+IFdlYkltYWdlCisvLyAgIC0gV2ViTm90aWZpY2F0aW9uIC0+IFdlYk5vdGlmaWNhdGlvbgog
Ly8gICAtIFdlYlVJbnQ2NCAtPiBXZWJVSW50NjQKIC8vICAgLSBXZWJVUkwgLT4gV2ViVVJMCiAK
QEAgLTIwMSw2ICsyMDMsNyBAQCBwcm90ZWN0ZWQ6CiAvLyAgIC0gV2ViRGF0YSAtPiBXZWJEYXRh
CiAvLyAgIC0gV2ViRG91YmxlIC0+IFdlYkRvdWJsZQogLy8gICAtIFdlYkltYWdlIC0+IFdlYklt
YWdlCisvLyAgIC0gV2ViTm90aWZpY2F0aW9uIC0+IFdlYk5vdGlmaWNhdGlvbgogLy8gICAtIFdl
YlVJbnQ2NCAtPiBXZWJVSW50NjQKIC8vICAgLSBXZWJVUkwgLT4gV2ViVVJMCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKaW5kZXggOGNlMzk0
ZWU5NzcyMjI4YWIwZjFlYjUzNzNiN2IwOTkzYTFlYjgyOC4uNTA1NDY2YzZiMDNlNTdhYTdiODli
MDQwMWY3NmJhMTY3OTI3Mzg2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNv
cmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlIDxXZWJDb3Jl
L0dyYXBoaWNzQ29udGV4dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NMYXllci5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0tVUkwuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1BsdWdpbkRhdGEuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Byb3RlY3Rp
b25TcGFjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVGV4dENoZWNrZXJDbGllbnQuaD4KQEAgLTYy
NCw2ICs2MjUsMjAgQEAgYm9vbCBBcmd1bWVudENvZGVyPERyYWdTZXNzaW9uPjo6ZGVjb2RlKEFy
Z3VtZW50RGVjb2RlciogZGVjb2RlciwgRHJhZ1Nlc3Npb24mIHIKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAordm9pZCBBcmd1bWVudENvZGVyPEtVUkw+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyKiBl
bmNvZGVyLCBjb25zdCBLVVJMJiByZXN1bHQpCit7CisgICAgZW5jb2Rlci0+ZW5jb2RlKHJlc3Vs
dC5zdHJpbmcoKSk7Cit9CisgICAgCitib29sIEFyZ3VtZW50Q29kZXI8S1VSTD46OmRlY29kZShB
cmd1bWVudERlY29kZXIqIGRlY29kZXIsIEtVUkwmIHJlc3VsdCkKK3sKKyAgICBTdHJpbmcgdXJs
QXNTdHJpbmc7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUodXJsQXNTdHJpbmcpKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgcmVzdWx0ID0gS1VSTChXZWJDb3JlOjpQYXJzZWRVUkxTdHJp
bmcsIHVybEFzU3RyaW5nKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogI2lmIFBMQVRGT1JNKFFU
KQogCiB2b2lkIEFyZ3VtZW50Q29kZXI8RmxvYXRQb2ludDNEPjo6ZW5jb2RlKEFyZ3VtZW50RW5j
b2RlciogZW5jb2RlciwgY29uc3QgRmxvYXRQb2ludDNEJiBmbG9hdFBvaW50M0QpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXggMDU1MDQxZjk1
MDZjY2UwZWI1NzljNWU5YTgxYTgxZGZkNjQwYWM3Zi4uNmY5NzAwY2M1MDNjYTk3ZWU4YjdhYmYy
NGVkZWFlNzMzODBiZDM2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNv
cmVBcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJn
dW1lbnRDb2RlcnMuaApAQCAtNDMsNiArNDMsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
Y2xhc3MgSW50UmVjdDsKICAgICBjbGFzcyBJbnRTaXplOwogICAgIGNsYXNzIEtleWZyYW1lVmFs
dWVMaXN0OworICAgIGNsYXNzIEtVUkw7CisgICAgY2xhc3MgTm90aWZpY2F0aW9uOwogICAgIGNs
YXNzIFByb3RlY3Rpb25TcGFjZTsKICAgICBjbGFzcyBSZXNvdXJjZUVycm9yOwogICAgIGNsYXNz
IFJlc291cmNlUmVxdWVzdDsKQEAgLTIyMSw2ICsyMjMsMTEgQEAgdGVtcGxhdGU8PiBzdHJ1Y3Qg
QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpEcmFnU2Vzc2lvbj4gewogICAgIHN0YXRpYyBib29sIGRl
Y29kZShBcmd1bWVudERlY29kZXIqLCBXZWJDb3JlOjpEcmFnU2Vzc2lvbiYpOwogfTsKIAordGVt
cGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpLVVJMPiB7CisgICAgc3RhdGlj
IHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciosIGNvbnN0IFdlYkNvcmU6OktVUkwmKTsKKyAg
ICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyKiwgV2ViQ29yZTo6S1VSTCYpOwor
fTsKKwogI2lmIFBMQVRGT1JNKFFUKQogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxX
ZWJDb3JlOjpGbG9hdFBvaW50M0Q+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRF
bmNvZGVyKiwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludDNEJik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9UYXJnZXQucHJpIGIvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQppbmRleCBm
NjU1NDU5N2ZlY2I5YjEzNDNlNjY5MmNjMGRlYWJiM2VmYjg3NmUyLi5mY2JmYjUzMmMxODczNTFm
ODc5MThjOThiMmE5MjBhNzUxMGZkOGRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9UYXJn
ZXQucHJpCisrKyBiL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKQEAgLTUwLDYgKzUwLDcgQEAg
V0VCS0lUMl9HRU5FUkFURURfSEVBREVSUyA9IFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NP
VVJDRVNfRElSL1dlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmggXAogICAg
ICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvV2ViTWVkaWFDYWNoZU1hbmFnZXJNZXNz
YWdlcy5oIFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dlYk1lZGlhQ2Fj
aGVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIFwKKyAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJD
RVNfRElSL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eU1lc3NhZ2VzLmggXAogICAgICQkV0VC
S0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvV2ViUGFnZU1lc3NhZ2VzLmggXAogICAgICQkV0VC
S0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvV2ViUGFnZVByb3h5TWVzc2FnZXMuaCBcCiAgICAg
JCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3Nh
Z2VzLmggXApAQCAtOTAsNiArOTEsNyBAQCBXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTID0gXAog
ICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvV2ViS2V5VmFsdWVTdG9yYWdlTWFu
YWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9T
T1VSQ0VTX0RJUi9XZWJNZWRpYUNhY2hlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgXAogICAg
ICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94
eU1lc3NhZ2VSZWNlaXZlci5jcHAgXAorICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19E
SVIvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBcCiAgICAg
JCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJQYWdlTWVzc2FnZVJlY2VpdmVyLmNw
cCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJQYWdlUHJveHlNZXNz
YWdlUmVjZWl2ZXIuY3BwIFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dl
YlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCBcCkBAIC0yMzIsNiArMjM0LDkg
QEAgSEVBREVSUyArPSBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLT3BlblBhbmVsUGFyYW1ldGVy
cy5oIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5oIFwK
ICAgICBVSVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0aW9uRGF0YS5oIFwKKyAgICBVSVByb2Nlc3Mv
QVBJL0MvV0tOb3RpZmljYXRpb24uaCBcCisgICAgVUlQcm9jZXNzL0FQSS9DL1dLTm90aWZpY2F0
aW9uTWFuYWdlci5oIFwKKyAgICBVSVByb2Nlc3MvQVBJL0MvV0tOb3RpZmljYXRpb25Qcm92aWRl
ci5oIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmggXAogICAgIFVJUHJvY2Vzcy9BUEkv
Qy9XS1BhZ2VHcm91cC5oIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlUHJpdmF0ZS5oIFwK
QEAgLTMwNCw2ICszMDksOSBAQCBIRUFERVJTICs9IFwKICAgICBVSVByb2Nlc3MvV2ViTG9hZGVy
Q2xpZW50LmggXAogICAgIFVJUHJvY2Vzcy9XZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5LmggXAog
ICAgIFVJUHJvY2Vzcy9XZWJOYXZpZ2F0aW9uRGF0YS5oIFwKKyAgICBVSVByb2Nlc3MvV2ViTm90
aWZpY2F0aW9uLmggXAorICAgIFVJUHJvY2Vzcy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHku
aCBcCisgICAgVUlQcm9jZXNzL1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmggXAogICAgIFVJUHJv
Y2Vzcy9XZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5LmggXAogICAgIFVJUHJvY2Vzcy9X
ZWJQYWdlQ29udGV4dE1lbnVDbGllbnQuaCBcCiAgICAgVUlQcm9jZXNzL1dlYlBhZ2VHcm91cC5o
IFwKQEAgLTM3Miw2ICszODAsNyBAQCBIRUFERVJTICs9IFwKICAgICBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VDb2RlcnMuaCBcCiAgICAgV2ViUHJv
Y2Vzcy9LZXlWYWx1ZVN0b3JhZ2UvV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlci5oIFwKICAgICBX
ZWJQcm9jZXNzL01lZGlhQ2FjaGUvV2ViTWVkaWFDYWNoZU1hbmFnZXIuaCBcCisgICAgV2ViUHJv
Y2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuaCBcCiAgICAgV2ViUHJv
Y2Vzcy9SZXNvdXJjZUNhY2hlL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyLmggXAogICAgIFdlYlBy
b2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QTWV0aG9kLmggXAogICAgIFdlYlByb2Nlc3MvUGx1
Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmggXApAQCAtMzk4LDYgKzQwNyw3IEBAIEhFQURFUlMg
Kz0gXAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR3JhcGhpY3NMYXllci5oIFwK
ICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5oIFwKICAg
ICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50Lmgg
XAorICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50Lmgg
XAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgg
XAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUG9wdXBNZW51LmggXAogICAgIFdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU2VhcmNoUG9wdXBNZW51LmggXApAQCAtNTM5LDYg
KzU0OSw4IEBAIFNPVVJDRVMgKz0gXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0hpdFRlc3RSZXN1
bHQuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tJY29uRGF0YWJhc2UuY3BwIFwKICAgICBV
SVByb2Nlc3MvQVBJL0MvV0tJbnNwZWN0b3IuY3BwIFwKKyAgICBVSVByb2Nlc3MvQVBJL0MvV0tO
b3RpZmljYXRpb24uY3BwIFwKKyAgICBVSVByb2Nlc3MvQVBJL0MvV0tOb3RpZmljYXRpb25NYW5h
Z2VyLmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLT3BlblBhbmVsUGFyYW1ldGVycy5jcHAg
XAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyLmNwcCBcCiAg
ICAgVUlQcm9jZXNzL0FQSS9DL1dLTmF2aWdhdGlvbkRhdGEuY3BwIFwKQEAgLTYwOCw2ICs2MjAs
OSBAQCBTT1VSQ0VTICs9IFwKICAgICBVSVByb2Nlc3MvV2ViTG9hZGVyQ2xpZW50LmNwcCBcCiAg
ICAgVUlQcm9jZXNzL1dlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHkuY3BwIFwKICAgICBVSVByb2Nl
c3MvV2ViTmF2aWdhdGlvbkRhdGEuY3BwIFwKKyAgICBVSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9u
LmNwcCBcCisgICAgVUlQcm9jZXNzL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAgXAor
ICAgIFVJUHJvY2Vzcy9XZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHAgXAogICAgIFVJUHJvY2Vz
cy9XZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5LmNwcCBcCiAgICAgVUlQcm9jZXNzL1dl
YlBhZ2VDb250ZXh0TWVudUNsaWVudC5jcHAgXAogICAgIFVJUHJvY2Vzcy9XZWJQYWdlR3JvdXAu
Y3BwIFwKQEAgLTY5Miw2ICs3MDcsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBXZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL3F0L0luamVjdGVkQnVuZGxlUXQuY3BwIFwKICAgICBXZWJQcm9jZXNzL0tl
eVZhbHVlU3RvcmFnZS9XZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmNwcCBcCiAgICAgV2ViUHJv
Y2Vzcy9NZWRpYUNhY2hlL1dlYk1lZGlhQ2FjaGVNYW5hZ2VyLmNwcCBcCisgICAgV2ViUHJvY2Vz
cy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwIFwKICAgICBXZWJQcm9j
ZXNzL1Jlc291cmNlQ2FjaGUvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXIuY3BwIFwKICAgICBXZWJQ
cm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE1ldGhvZC5jcHAgXAogICAgIFdlYlByb2Nlc3Mv
UGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcCBcCkBAIC03MTksNiArNzM1LDcgQEAgU09V
UkNFUyArPSBcCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHcmFwaGljc0xheWVy
LmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQu
Y3BwIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckZyb250ZW5k
Q2xpZW50LmNwcCBcCisgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRp
b25DbGllbnQuY3BwIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3Jt
U3RyYXRlZ2llcy5jcHAgXAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUG9wdXBN
ZW51LmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTZWFyY2hQb3B1cE1l
bnUuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQ
SUNhc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAppbmRl
eCBmM2ExZDA1Y2ZlNTEyMjRkYTUxMmZmNTVlMWM4ZGEwZDA3ZmUzYmViLi45Nzc3YzFhY2FmNDhj
OTBmZjQ0ZTNmOTVjMmJjNWFkYTJjMzViMmQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLQVBJQ2FzdC5oCkBAIC03Miw2ICs3Miw5IEBAIGNsYXNzIFdlYkluc3BlY3RvclBy
b3h5OwogY2xhc3MgV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5OwogY2xhc3MgV2ViTWVk
aWFDYWNoZU1hbmFnZXJQcm94eTsKIGNsYXNzIFdlYk5hdmlnYXRpb25EYXRhOworY2xhc3MgV2Vi
Tm90aWZpY2F0aW9uOworY2xhc3MgV2ViTm90aWZpY2F0aW9uUHJvdmlkZXI7CitjbGFzcyBXZWJO
b3RpZmljYXRpb25NYW5hZ2VyUHJveHk7CiBjbGFzcyBXZWJPcGVuUGFuZWxQYXJhbWV0ZXJzOwog
Y2xhc3MgV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eTsKIGNsYXNzIFdlYlBhZ2VHcm91
cDsKQEAgLTEwNCw2ICsxMDcsOSBAQCBXS19BRERfQVBJX01BUFBJTkcoV0tJY29uRGF0YWJhc2VS
ZWYsIFdlYkljb25EYXRhYmFzZSkKIFdLX0FERF9BUElfTUFQUElORyhXS0tleVZhbHVlU3RvcmFn
ZU1hbmFnZXJSZWYsIFdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eSkKIFdLX0FERF9BUElf
TUFQUElORyhXS01lZGlhQ2FjaGVNYW5hZ2VyUmVmLCBXZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5
KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLTmF2aWdhdGlvbkRhdGFSZWYsIFdlYk5hdmlnYXRpb25E
YXRhKQorV0tfQUREX0FQSV9NQVBQSU5HKFdLTm90aWZpY2F0aW9uTWFuYWdlclJlZiwgV2ViTm90
aWZpY2F0aW9uTWFuYWdlclByb3h5KQorV0tfQUREX0FQSV9NQVBQSU5HKFdLTm90aWZpY2F0aW9u
UHJvdmlkZXJSZWYsIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyKQorV0tfQUREX0FQSV9NQVBQSU5H
KFdLTm90aWZpY2F0aW9uUmVmLCBXZWJOb3RpZmljYXRpb24pCiBXS19BRERfQVBJX01BUFBJTkco
V0tPcGVuUGFuZWxQYXJhbWV0ZXJzUmVmLCBXZWJPcGVuUGFuZWxQYXJhbWV0ZXJzKQogV0tfQURE
X0FQSV9NQVBQSU5HKFdLT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJSZWYsIFdlYk9wZW5QYW5lbFJl
c3VsdExpc3RlbmVyUHJveHkpCiBXS19BRERfQVBJX01BUFBJTkcoV0tQYWdlR3JvdXBSZWYsIFdl
YlBhZ2VHcm91cCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S0NvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5j
cHAKaW5kZXggNDU4MDNjYmRlZGNlZDRlNTRiNWNlYTIyM2VlOTAwM2Q3OTdhN2M1YS4uY2VmODk3
NzE0NDM5YjY2YWFmNzc3ODIwMjdjZjY1OTE0Y2RkZDc3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKQEAgLTE5NSw2ICsxOTUsMTEgQEAgV0tNZWRp
YUNhY2hlTWFuYWdlclJlZiBXS0NvbnRleHRHZXRNZWRpYUNhY2hlTWFuYWdlcihXS0NvbnRleHRS
ZWYgY29udGV4dFJlZikKICAgICByZXR1cm4gdG9BUEkodG9JbXBsKGNvbnRleHRSZWYpLT5tZWRp
YUNhY2hlTWFuYWdlclByb3h5KCkpOwogfQogCitXS05vdGlmaWNhdGlvbk1hbmFnZXJSZWYgV0tD
b250ZXh0R2V0Tm90aWZpY2F0aW9uTWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4dFJlZikKK3sK
KyAgICByZXR1cm4gdG9BUEkodG9JbXBsKGNvbnRleHRSZWYpLT5ub3RpZmljYXRpb25NYW5hZ2Vy
UHJveHkoKSk7Cit9CisKIFdLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyUmVmIFdLQ29udGV4dEdldFBs
dWdpblNpdGVEYXRhTWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4dFJlZikKIHsKICAgICByZXR1
cm4gdG9BUEkodG9JbXBsKGNvbnRleHRSZWYpLT5wbHVnaW5TaXRlRGF0YU1hbmFnZXIoKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmgKaW5kZXggMTFmOWFjZDYw
MDk3NDExYTkxM2YwYTFkYjQ0NjY0YjNkOTMzODMwNi4uZjBhZTU5NDU2NDM3MTFhMTA5ZTYzNzI2
ZWFiOGY5Nzg0YTA3MjgwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0Nv
bnRleHQuaApAQCAtMTQ4LDYgKzE0OCw3IEBAIFdLX0VYUE9SVCBXS0dlb2xvY2F0aW9uTWFuYWdl
clJlZiBXS0NvbnRleHRHZXRHZW9sb2NhdGlvbk1hbmFnZXIoV0tDb250ZXh0UmVmIGNvCiBXS19F
WFBPUlQgV0tJY29uRGF0YWJhc2VSZWYgV0tDb250ZXh0R2V0SWNvbkRhdGFiYXNlKFdLQ29udGV4
dFJlZiBjb250ZXh0KTsKIFdLX0VYUE9SVCBXS0tleVZhbHVlU3RvcmFnZU1hbmFnZXJSZWYgV0tD
b250ZXh0R2V0S2V5VmFsdWVTdG9yYWdlTWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4dCk7CiBX
S19FWFBPUlQgV0tNZWRpYUNhY2hlTWFuYWdlclJlZiBXS0NvbnRleHRHZXRNZWRpYUNhY2hlTWFu
YWdlcihXS0NvbnRleHRSZWYgY29udGV4dCk7CitXS19FWFBPUlQgV0tOb3RpZmljYXRpb25NYW5h
Z2VyUmVmIFdLQ29udGV4dEdldE5vdGlmaWNhdGlvbk1hbmFnZXIoV0tDb250ZXh0UmVmIGNvbnRl
eHQpOwogV0tfRVhQT1JUIFdLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyUmVmIFdLQ29udGV4dEdldFBs
dWdpblNpdGVEYXRhTWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4dCk7CiBXS19FWFBPUlQgV0tS
ZXNvdXJjZUNhY2hlTWFuYWdlclJlZiBXS0NvbnRleHRHZXRSZXNvdXJjZUNhY2hlTWFuYWdlcihX
S0NvbnRleHRSZWYgY29udGV4dCk7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tOb3RpZmljYXRpb24uY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zOGM0NzJkZjc3MTk0NjBh
OGVlNzUzYzBjYjRhMjAxMDliNmQ4NWY3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9uLmNwcApAQCAtMCwwICsxLDQ4IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldLTm90aWZpY2F0aW9u
LmgiCisKKyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKyNpbmNsdWRlICJXZWJOb3RpZmljYXRpb24u
aCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworV0tUeXBlSUQgV0tOb3RpZmljYXRpb25H
ZXRUeXBlSUQoKQoreworICAgIHJldHVybiB0b0FQSShXZWJOb3RpZmljYXRpb246OkFQSVR5cGUp
OworfQorCitXS1N0cmluZ1JlZiBXS05vdGlmaWNhdGlvbkNvcHlUaXRsZShXS05vdGlmaWNhdGlv
blJlZiBub3RpZmljYXRpb24pCit7CisgICAgcmV0dXJuIHRvQ29waWVkQVBJKHRvSW1wbChub3Rp
ZmljYXRpb24pLT50aXRsZSgpKTsKK30KKworV0tTdHJpbmdSZWYgV0tOb3RpZmljYXRpb25Db3B5
Qm9keShXS05vdGlmaWNhdGlvblJlZiBub3RpZmljYXRpb24pCit7CisgICAgcmV0dXJuIHRvQ29w
aWVkQVBJKHRvSW1wbChub3RpZmljYXRpb24pLT5ib2R5KCkpOworfQorCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tOb3RpZmljYXRpb24uaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNhdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI4ZDJk
ZjU4OWNmNGZlNzM4YTA0OTM1ZTg2ZjllNzcxODBhNTZiOTIKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tOb3RpZmljYXRpb24uaApAQCAtMCwwICsx
LDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXS05vdGlmaWNhdGlvbl9oCisjZGVmaW5lIFdL
Tm90aWZpY2F0aW9uX2gKKworI2luY2x1ZGUgPFdlYktpdDIvV0tCYXNlLmg+CisKKyNpZmRlZiBf
X2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworV0tfRVhQT1JUIFdLVHlwZUlEIFdL
Tm90aWZpY2F0aW9uR2V0VHlwZUlEKCk7CisKK1dLX0VYUE9SVCBXS1N0cmluZ1JlZiBXS05vdGlm
aWNhdGlvbkNvcHlUaXRsZShXS05vdGlmaWNhdGlvblJlZiBub3RpZmljYXRpb24pOworV0tfRVhQ
T1JUIFdLU3RyaW5nUmVmIFdLTm90aWZpY2F0aW9uQ29weUJvZHkoV0tOb3RpZmljYXRpb25SZWYg
bm90aWZpY2F0aW9uKTsKKyAgICAKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNl
bmRpZiAvLyBXS05vdGlmaWNhdGlvbl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tOb3RpZmljYXRpb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNhdGlvbk1hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEwMTJk
ZjE0NzI4YzA5MGUyNGQ0NjQ2OWM3YjM1NjMwZTU5ZGVhM2IKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tOb3RpZmljYXRpb25NYW5hZ2VyLmNwcApA
QCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIldLTm90aWZpY2F0aW9uTWFuYWdlci5oIgorCisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisj
aW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmgiCisKK3VzaW5nIG5hbWVzcGFj
ZSBXZWJLaXQ7CisKK1dLVHlwZUlEIFdLTm90aWZpY2F0aW9uTWFuYWdlckdldFR5cGVJRCgpCit7
CisgICAgcmV0dXJuIHRvQVBJKFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6QVBJVHlwZSk7
Cit9Cit2b2lkIFdLTm90aWZpY2F0aW9uTWFuYWdlclNldFByb3ZpZGVyKFdLTm90aWZpY2F0aW9u
TWFuYWdlclJlZiBtYW5hZ2VyUmVmLCBjb25zdCBXS05vdGlmaWNhdGlvblByb3ZpZGVyKiB3a1By
b3ZpZGVyKQoreworICAgIHRvSW1wbChtYW5hZ2VyUmVmKS0+aW5pdGlhbGl6ZVByb3ZpZGVyKHdr
UHJvdmlkZXIpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLTm90aWZpY2F0aW9uTWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLTm90aWZpY2F0aW9uTWFuYWdlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNjNzQzNTE4MGE0ZGRkNGY2ZjVi
ZmNiYzZhOWM0NDJiMGU3NGI0NWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tOb3RpZmljYXRpb25NYW5hZ2VyLmgKQEAgLTAsMCArMSw0MyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgV0tOb3RpZmljYXRpb25NYW5hZ2VyX2gKKyNkZWZpbmUgV0tO
b3RpZmljYXRpb25NYW5hZ2VyX2gKKworI2luY2x1ZGUgIldLTm90aWZpY2F0aW9uUHJvdmlkZXIu
aCIKKyNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4
dGVybiAiQyIgeworI2VuZGlmCisKK1dLX0VYUE9SVCBXS1R5cGVJRCBXS05vdGlmaWNhdGlvbk1h
bmFnZXJHZXRUeXBlSUQoKTsKK1dLX0VYUE9SVCB2b2lkIFdLTm90aWZpY2F0aW9uTWFuYWdlclNl
dFByb3ZpZGVyKFdLTm90aWZpY2F0aW9uTWFuYWdlclJlZiBtYW5hZ2VyUmVmLCBjb25zdCBXS05v
dGlmaWNhdGlvblByb3ZpZGVyKiB3a1Byb3ZpZGVyKTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9
CisjZW5kaWYKKworI2VuZGlmIC8vIFdLTm90aWZpY2F0aW9uTWFuYWdlcl9oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tOb3RpZmljYXRpb25Qcm92aWRlci5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9uUHJvdmlkZXIu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4yN2JhNjJmY2ExOTVlYWEyMmM5Mzc5NjUxNmZkNDExMzkxNWI4YzgxCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTm90aWZp
Y2F0aW9uUHJvdmlkZXIuaApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBX
S05vdGlmaWNhdGlvblByb3ZpZGVyX2gKKyNkZWZpbmUgV0tOb3RpZmljYXRpb25Qcm92aWRlcl9o
CisKKyNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4
dGVybiAiQyIgeworI2VuZGlmCisKK3R5cGVkZWYgdm9pZCAoKldLTm90aWZpY2F0aW9uUHJvdmlk
ZXJTaG93Q2FsbGJhY2spKFdLTm90aWZpY2F0aW9uUmVmIG5vdGlmaWNhdGlvbiwgY29uc3Qgdm9p
ZCogY2xpZW50SW5mbyk7Cit0eXBlZGVmIHZvaWQgKCpXS05vdGlmaWNhdGlvblByb3ZpZGVyQ2Fu
Y2VsQ2FsbGJhY2spKFdLTm90aWZpY2F0aW9uUmVmIG5vdGlmaWNhdGlvbiwgY29uc3Qgdm9pZCog
Y2xpZW50SW5mbyk7CisKK3N0cnVjdCBXS05vdGlmaWNhdGlvblByb3ZpZGVyIHsKKyAgICBpbnQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVy
c2lvbjsKKyAgICBjb25zdCB2b2lkKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY2xpZW50SW5mbzsKKyAgICBXS05vdGlmaWNhdGlvblByb3ZpZGVyU2hvd0Nh
bGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgc2hvdzsKKyAgICBXS05vdGlmaWNhdGlvblBy
b3ZpZGVyQ2FuY2VsQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgY2FuY2VsOworfTsKK3R5
cGVkZWYgc3RydWN0IFdLTm90aWZpY2F0aW9uUHJvdmlkZXIgV0tOb3RpZmljYXRpb25Qcm92aWRl
cjsKKworZW51bSB7IGtXS05vdGlmaWNhdGlvblByb3ZpZGVyQ3VycmVudFZlcnNpb24gPSAwIH07
CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKworI2VuZGlmIC8vIFdLTm90aWZp
Y2F0aW9uUHJvdmlkZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YkNvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCmlu
ZGV4IDljNGJhOWU1NGQ3Nzc2OWRiYTQwMThiMzMzNDNjY2U2ZTYwNjlhZTguLjI3YjllZjMyNTUy
ZDRlOWNhNWZiZDBkMmIxNWVjNjA5ZDMyZmVkMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViQ29udGV4dC5jcHAKQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbmNsdWRlICJXZWJJY29uRGF0YWJh
c2UuaCIKICNpbmNsdWRlICJXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHkuaCIKICNpbmNs
dWRlICJXZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5LmgiCisjaW5jbHVkZSAiV2ViTm90aWZpY2F0
aW9uTWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmgi
CiAjaW5jbHVkZSAiV2ViUGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAiV2ViTWVtb3J5U2FtcGxlci5o
IgpAQCAtMTMxLDYgKzEzMiw3IEBAIFdlYkNvbnRleHQ6OldlYkNvbnRleHQoUHJvY2Vzc01vZGVs
IHByb2Nlc3NNb2RlbCwgY29uc3QgU3RyaW5nJiBpbmplY3RlZEJ1bmRsZVBhCiAgICAgLCBtX2lj
b25EYXRhYmFzZShXZWJJY29uRGF0YWJhc2U6OmNyZWF0ZSh0aGlzKSkKICAgICAsIG1fa2V5VmFs
dWVTdG9yYWdlTWFuYWdlclByb3h5KFdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eTo6Y3Jl
YXRlKHRoaXMpKQogICAgICwgbV9tZWRpYUNhY2hlTWFuYWdlclByb3h5KFdlYk1lZGlhQ2FjaGVN
YW5hZ2VyUHJveHk6OmNyZWF0ZSh0aGlzKSkKKyAgICAsIG1fbm90aWZpY2F0aW9uTWFuYWdlclBy
b3h5KFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6Y3JlYXRlKHRoaXMpKQogICAgICwgbV9w
bHVnaW5TaXRlRGF0YU1hbmFnZXIoV2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyOjpjcmVhdGUodGhp
cykpCiAgICAgLCBtX3Jlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkoV2ViUmVzb3VyY2VDYWNoZU1h
bmFnZXJQcm94eTo6Y3JlYXRlKHRoaXMpKQogI2lmIFBMQVRGT1JNKFdJTikKQEAgLTE4MSw2ICsx
ODMsOSBAQCBXZWJDb250ZXh0Ojp+V2ViQ29udGV4dCgpCiAKICAgICBtX21lZGlhQ2FjaGVNYW5h
Z2VyUHJveHktPmludmFsaWRhdGUoKTsKICAgICBtX21lZGlhQ2FjaGVNYW5hZ2VyUHJveHktPmNs
ZWFyQ29udGV4dCgpOworICAgIAorICAgIG1fbm90aWZpY2F0aW9uTWFuYWdlclByb3h5LT5pbnZh
bGlkYXRlKCk7CisgICAgbV9ub3RpZmljYXRpb25NYW5hZ2VyUHJveHktPmNsZWFyQ29udGV4dCgp
OwogCiAgICAgbV9wbHVnaW5TaXRlRGF0YU1hbmFnZXItPmludmFsaWRhdGUoKTsKICAgICBtX3Bs
dWdpblNpdGVEYXRhTWFuYWdlci0+Y2xlYXJDb250ZXh0KCk7CkBAIC0zNjksNiArMzc0LDcgQEAg
dm9pZCBXZWJDb250ZXh0OjpkaXNjb25uZWN0UHJvY2VzcyhXZWJQcm9jZXNzUHJveHkqIHByb2Nl
c3MpCiAgICAgbV9nZW9sb2NhdGlvbk1hbmFnZXJQcm94eS0+aW52YWxpZGF0ZSgpOwogICAgIG1f
a2V5VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5LT5pbnZhbGlkYXRlKCk7CiAgICAgbV9tZWRpYUNh
Y2hlTWFuYWdlclByb3h5LT5pbnZhbGlkYXRlKCk7CisgICAgbV9ub3RpZmljYXRpb25NYW5hZ2Vy
UHJveHktPmludmFsaWRhdGUoKTsKICAgICBtX3Jlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHktPmlu
dmFsaWRhdGUoKTsKIAogICAgIC8vIFdoZW4gb3V0IG9mIHByb2Nlc3MgcGx1Zy1pbnMgYXJlIGVu
YWJsZWQsIHdlIGRvbid0IHdhbnQgdG8gaW52YWxpZGF0ZSB0aGUgcGx1Zy1pbiBzaXRlIGRhdGEK
QEAgLTY5NSw2ICs3MDEsMTEgQEAgdm9pZCBXZWJDb250ZXh0OjpkaWRSZWNlaXZlTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXMKICAgICAgICAgbV9t
ZWRpYUNhY2hlTWFuYWdlclByb3h5LT5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNz
YWdlSUQsIGFyZ3VtZW50cyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CisgICAgCisgICAgaWYg
KG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJOb3RpZmljYXRpb25NYW5hZ2Vy
UHJveHk+KCkpIHsKKyAgICAgICAgbV9ub3RpZmljYXRpb25NYW5hZ2VyUHJveHktPmRpZFJlY2Vp
dmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KIAogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNz
V2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eT4oKSkgewogICAgICAgICBtX3Jlc291cmNlQ2Fj
aGVNYW5hZ2VyUHJveHktPmRpZFJlY2VpdmVXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5TWVz
c2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYkNvbnRleHQuaAppbmRleCBjNTdhNjdiYzdmOTE4MzUwZWJiZjk2YTc3NTg3YjhhOGJj
YmY5MGUxLi43MDQyODVlZWU3NWZjMTZjMGI1M2M5ZmJiMGY3NmY1MTMyNGViM2UyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmgKQEAgLTU0LDYgKzU0LDcgQEAgY2xhc3MgV2Vi
R2VvbG9jYXRpb25NYW5hZ2VyUHJveHk7CiBjbGFzcyBXZWJJY29uRGF0YWJhc2U7CiBjbGFzcyBX
ZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHk7CiBjbGFzcyBXZWJNZWRpYUNhY2hlTWFuYWdl
clByb3h5OworY2xhc3MgV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5OwogY2xhc3MgV2ViUGFn
ZUdyb3VwOwogY2xhc3MgV2ViUGFnZVByb3h5OwogY2xhc3MgV2ViUmVzb3VyY2VDYWNoZU1hbmFn
ZXJQcm94eTsKQEAgLTE1Nyw2ICsxNTgsNyBAQCBwdWJsaWM6CiAgICAgV2ViSWNvbkRhdGFiYXNl
KiBpY29uRGF0YWJhc2UoKSBjb25zdCB7IHJldHVybiBtX2ljb25EYXRhYmFzZS5nZXQoKTsgfQog
ICAgIFdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eSoga2V5VmFsdWVTdG9yYWdlTWFuYWdl
clByb3h5KCkgY29uc3QgeyByZXR1cm4gbV9rZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHkuZ2V0
KCk7IH0KICAgICBXZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5KiBtZWRpYUNhY2hlTWFuYWdlclBy
b3h5KCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYUNhY2hlTWFuYWdlclByb3h5LmdldCgpOyB9Cisg
ICAgV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5KiBub3RpZmljYXRpb25NYW5hZ2VyUHJveHko
KSBjb25zdCB7IHJldHVybiBtX25vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5nZXQoKTsgfQogICAg
IFdlYlBsdWdpblNpdGVEYXRhTWFuYWdlciogcGx1Z2luU2l0ZURhdGFNYW5hZ2VyKCkgY29uc3Qg
eyByZXR1cm4gbV9wbHVnaW5TaXRlRGF0YU1hbmFnZXIuZ2V0KCk7IH0KICAgICBXZWJSZXNvdXJj
ZUNhY2hlTWFuYWdlclByb3h5KiByZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5KCkgY29uc3QgeyBy
ZXR1cm4gbV9yZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LmdldCgpOyB9CiAKQEAgLTI4Miw2ICsy
ODQsNyBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxXZWJJY29uRGF0YWJhc2U+IG1faWNvbkRhdGFi
YXNlOwogICAgIFJlZlB0cjxXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHk+IG1fa2V5VmFs
dWVTdG9yYWdlTWFuYWdlclByb3h5OwogICAgIFJlZlB0cjxXZWJNZWRpYUNhY2hlTWFuYWdlclBy
b3h5PiBtX21lZGlhQ2FjaGVNYW5hZ2VyUHJveHk7CisgICAgUmVmUHRyPFdlYk5vdGlmaWNhdGlv
bk1hbmFnZXJQcm94eT4gbV9ub3RpZmljYXRpb25NYW5hZ2VyUHJveHk7CiAgICAgUmVmUHRyPFdl
YlBsdWdpblNpdGVEYXRhTWFuYWdlcj4gbV9wbHVnaW5TaXRlRGF0YU1hbmFnZXI7CiAgICAgUmVm
UHRyPFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHk+IG1fcmVzb3VyY2VDYWNoZU1hbmFnZXJQ
cm94eTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5vdGlmaWNh
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9uLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4xZDI4YzE0Zjc1ZDVlYjVjNGJiNmYyMmRlOTkwY2RmMmU3ZGFiMDhmCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5vdGlmaWNhdGlvbi5j
cHAKQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJXZWJOb3RpZmljYXRpb24uaCIKKworI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJzLmgi
CisjaW5jbHVkZSAiQXJndW1lbnREZWNvZGVyLmgiCisjaW5jbHVkZSAiQXJndW1lbnRFbmNvZGVy
LmgiCisjaW5jbHVkZSAiQXJndW1lbnRzLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJO
b3RpZmljYXRpb246OldlYk5vdGlmaWNhdGlvbigpCit7Cit9CisKK1dlYk5vdGlmaWNhdGlvbjo6
V2ViTm90aWZpY2F0aW9uKGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgYm9keSkK
KyAgICA6IG1fdGl0bGUodGl0bGUpCisgICAgLCBtX2JvZHkoYm9keSkKK3sKK30KKworV2ViTm90
aWZpY2F0aW9uOjp+V2ViTm90aWZpY2F0aW9uKCkKK3sKK30KKwordm9pZCBXZWJOb3RpZmljYXRp
b246OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0Cit7Cisg
ICAgZW5jb2Rlci0+ZW5jb2RlKENvcmVJUEM6OkluKG1fdGl0bGUsIG1fYm9keSkpOworfQorCiti
b29sIFdlYk5vdGlmaWNhdGlvbjo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVj
b2RlciwgV2ViTm90aWZpY2F0aW9uJiBub3RpZmljYXRpb24pCit7CisgICAgcmV0dXJuIGRlY29k
ZXItPmRlY29kZShDb3JlSVBDOjpPdXQobm90aWZpY2F0aW9uLm1fdGl0bGUsIG5vdGlmaWNhdGlv
bi5tX2JvZHkpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViTm90aWZpY2F0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTY4NDlkZjUyZThjM2I2MjVl
YjY5YzIzNWEyNWY0NzE3Zjk4N2JhMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJOb3RpZmljYXRpb24uaApAQCAtMCwwICsxLDcxIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBXZWJOb3RpZmljYXRpb25faAorI2RlZmluZSBXZWJOb3RpZmljYXRpb25faAor
CisjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIENvcmVJUEMgeworCitj
bGFzcyBBcmd1bWVudERlY29kZXI7CitjbGFzcyBBcmd1bWVudEVuY29kZXI7CisKK30gLy8gbmFt
ZXNwYWNlIENvcmVJUEMKKworbmFtZXNwYWNlIFdlYktpdCB7CisgICAgCitjbGFzcyBXZWJOb3Rp
ZmljYXRpb24gOiBwdWJsaWMgQVBJT2JqZWN0IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgY29uc3Qg
VHlwZSBBUElUeXBlID0gVHlwZU5vdGlmaWNhdGlvbjsKKyAgICAKKyAgICBXZWJOb3RpZmljYXRp
b24oKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJOb3RpZmljYXRpb24+IGNyZWF0ZShjb25z
dCBTdHJpbmcmIHRpdGxlLCBjb25zdCBTdHJpbmcmIGJvZHkpCisgICAgeworICAgICAgICByZXR1
cm4gYWRvcHRSZWYobmV3IFdlYk5vdGlmaWNhdGlvbih0aXRsZSwgYm9keSkpOworICAgIH0KKyAg
ICB2aXJ0dWFsIH5XZWJOb3RpZmljYXRpb24oKTsKKyAgICAKKyAgICBjb25zdCBTdHJpbmcmIHRp
dGxlKCkgY29uc3QgeyByZXR1cm4gbV90aXRsZTsgfQorICAgIAorICAgIGNvbnN0IFN0cmluZyYg
Ym9keSgpIGNvbnN0IHsgcmV0dXJuIG1fYm9keTsgfQorCisgICAgdm9pZCBlbmNvZGUoQ29yZUlQ
Qzo6QXJndW1lbnRFbmNvZGVyKikgY29uc3Q7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJ
UEM6OkFyZ3VtZW50RGVjb2RlciosIFdlYk5vdGlmaWNhdGlvbiYpOworCitwcml2YXRlOgorICAg
IFdlYk5vdGlmaWNhdGlvbihjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBTdHJpbmcmIGJvZHkp
OworCisgICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBBUElUeXBlOyB9Cisg
ICAgCisgICAgU3RyaW5nIG1fdGl0bGU7CisgICAgU3RyaW5nIG1fYm9keTsKK307CisgICAgCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYk5vdGlmaWNhdGlvbl9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9uTWFuYWdlclBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOb3RpZmljYXRpb25NYW5hZ2Vy
UHJveHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMyYjBjZDc2MDk5NzhlMzU5MWYzMWI5ZDUxNTViMzM1OTJh
Yzk3NjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTm90
aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcApAQCAtMCwwICsxLDc3IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94
eS5oIgorCisjaW5jbHVkZSAiV2ViQ29udGV4dC5oIgorI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlv
bi5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTm90aWZpY2F0aW9uQ29udGVudHMuaD4KKwordXNpbmcg
bmFtZXNwYWNlIFdURjsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworUGFzc1JlZlB0cjxXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk+IFdlYk5vdGlm
aWNhdGlvbk1hbmFnZXJQcm94eTo6Y3JlYXRlKFdlYkNvbnRleHQqIGNvbnRleHQpCit7CisgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkoY29udGV4dCkp
OworfQorCitXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OldlYk5vdGlmaWNhdGlvbk1hbmFn
ZXJQcm94eShXZWJDb250ZXh0KiBjb250ZXh0KQorICAgIDogbV9jb250ZXh0KGNvbnRleHQpCit7
Cit9CisKK1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6fldlYk5vdGlmaWNhdGlvbk1hbmFn
ZXJQcm94eSgpCit7Cit9CisKK3ZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5OjppbnZh
bGlkYXRlKCkKK3sKK30KKwordm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OmluaXRp
YWxpemVQcm92aWRlcihjb25zdCBXS05vdGlmaWNhdGlvblByb3ZpZGVyICpwcm92aWRlcikKK3sK
KyAgICBtX3Byb3ZpZGVyLmluaXRpYWxpemUocHJvdmlkZXIpOworfQorCit2b2lkIFdlYk5vdGlm
aWNhdGlvbk1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlv
biogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit7CisgICAgZGlkUmVjZWl2ZVdlYk5vdGlmaWNhdGlv
bk1hbmFnZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOwor
fQorCit2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6c2hvdyhjb25zdCBTdHJpbmcm
IHRpdGxlLCBjb25zdCBTdHJpbmcmIGJvZHksIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQorewor
ICAgIFJlZlB0cjxXZWJOb3RpZmljYXRpb24+IG5vdGlmaWNhdGlvbiA9IFdlYk5vdGlmaWNhdGlv
bjo6Y3JlYXRlKHRpdGxlLCBib2R5KTsKKyAgICBtX3Byb3ZpZGVyLnNob3cobm90aWZpY2F0aW9u
LmdldCgpKTsKK30KKwordm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OmNhbmNlbCh1
aW50NjRfdCBub3RpZmljYXRpb25JRCkKK3sKKyAgICBtX3Byb3ZpZGVyLmNhbmNlbCgwKTsKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2M3NzliOWZl
YmRkNDYyYzU2MTdmMzMwM2ZkYzhkZDljYTc0ZjM5YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaApAQCAtMCww
ICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJv
eHlfaAorI2RlZmluZSBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHlfaAorCisjaW5jbHVkZSAi
QVBJT2JqZWN0LmgiCisjaW5jbHVkZSAiTWVzc2FnZUlELmgiCisjaW5jbHVkZSAiV2ViTm90aWZp
Y2F0aW9uUHJvdmlkZXIuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorCituYW1lc3Bh
Y2UgQ29yZUlQQyB7CitjbGFzcyBBcmd1bWVudERlY29kZXI7CitjbGFzcyBDb25uZWN0aW9uOwor
fQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViQ29udGV4dDsKKworY2xhc3MgV2Vi
Tm90aWZpY2F0aW9uTWFuYWdlclByb3h5IDogcHVibGljIEFQSU9iamVjdCB7CitwdWJsaWM6Cisg
ICAgc3RhdGljIGNvbnN0IFR5cGUgQVBJVHlwZSA9IFR5cGVOb3RpZmljYXRpb25NYW5hZ2VyOwor
ICAgIAorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eT4g
Y3JlYXRlKFdlYkNvbnRleHQqKTsKKyAgICB2aXJ0dWFsIH5XZWJOb3RpZmljYXRpb25NYW5hZ2Vy
UHJveHkoKTsKKyAgICAKKyAgICB2b2lkIGludmFsaWRhdGUoKTsKKyAgICB2b2lkIGNsZWFyQ29u
dGV4dCgpIHsgbV9jb250ZXh0ID0gMDsgfQorCisgICAgdm9pZCBpbml0aWFsaXplUHJvdmlkZXIo
Y29uc3QgV0tOb3RpZmljYXRpb25Qcm92aWRlciopOworICAgIAorICAgIHZvaWQgZGlkUmVjZWl2
ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQ
Qzo6QXJndW1lbnREZWNvZGVyKik7CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgV2ViTm90aWZp
Y2F0aW9uTWFuYWdlclByb3h5KFdlYkNvbnRleHQqKTsKKyAgICAKKyAgICB2aXJ0dWFsIFR5cGUg
dHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KKyAgICAKKyAgICB2b2lkIGRpZFJlY2Vp
dmVXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
LCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIAor
ICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMKKyAgICB2b2lkIHNob3coY29uc3QgV1RGOjpTdHJpbmcm
IHRpdGxlLCBjb25zdCBXVEY6OlN0cmluZyYgYm9keSwgdWludDY0X3Qgbm90aWZpY2F0aW9uSUQp
OworICAgIHZvaWQgY2FuY2VsKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKTsKKyAgICAKKyAgICBX
ZWJDb250ZXh0KiBtX2NvbnRleHQ7CisgICAgV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIgbV9wcm92
aWRlcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViTm90aWZp
Y2F0aW9uTWFuYWdlclByb3h5X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmU3Njc4YTRiMjM1ZGQ0NWU3MTYyZjRkMjcyN2I3N2FhNWZiODA0NGIKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9uTWFuYWdl
clByb3h5Lm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMjYgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDEx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
IEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKworbWVzc2FnZXMgLT4gV2ViTm90aWZpY2F0aW9uTWFuYWdlclBy
b3h5IHsKKyAgICBTaG93KFdURjo6U3RyaW5nIHRpdGxlLCBXVEY6OlN0cmluZyBib2R5LCB1aW50
NjRfdCBub3RpZmljYXRpb25JRCk7CisgICAgQ2FuY2VsKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklE
KTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOb3RpZmljYXRp
b25Qcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9u
UHJvdmlkZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY3YWM1ZTc4N2Q2YmMyNjM3ZmYwNzM3NDExMDUwYzYy
MGU3NDlmYzkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
Tm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuaCIK
KworI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbi5oIgor
CituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBXZWJOb3RpZmljYXRpb25Qcm92aWRlcjo6c2hv
dyhXZWJOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbikKK3sKKyAgICBpZiAoIW1fY2xpZW50LnNo
b3cpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBtX2NsaWVudC5zaG93KHRvQVBJKG5vdGlm
aWNhdGlvbiksIG1fY2xpZW50LmNsaWVudEluZm8pOworfQorCit2b2lkIFdlYk5vdGlmaWNhdGlv
blByb3ZpZGVyOjpjYW5jZWwoV2ViTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24pCit7CisgICAg
aWYgKCFtX2NsaWVudC5jYW5jZWwpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBtX2NsaWVu
dC5jYW5jZWwodG9BUEkobm90aWZpY2F0aW9uKSwgbV9jbGllbnQuY2xpZW50SW5mbyk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYjJiZjQ3ZWJiYzE1ZDMwZGQx
MzgxOGY2OWM0MzNkYmVlMjhjNWEyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmgKQEAgLTAsMCArMSw0NSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpZm5kZWYgV2ViTm90aWZpY2F0aW9uUHJvdmlkZXJfaAorI2RlZmluZSBXZWJO
b3RpZmljYXRpb25Qcm92aWRlcl9oCisKKyNpbmNsdWRlICJBUElDbGllbnQuaCIKKyNpbmNsdWRl
ICJXS05vdGlmaWNhdGlvblByb3ZpZGVyLmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYk5vdGlmaWNhdGlvbjsKKyAgICAKK2NsYXNz
IFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyIDogcHVibGljIEFQSUNsaWVudDxXS05vdGlmaWNhdGlv
blByb3ZpZGVyLCBrV0tOb3RpZmljYXRpb25Qcm92aWRlckN1cnJlbnRWZXJzaW9uPiB7CitwdWJs
aWM6CisgICAgdm9pZCBzaG93KFdlYk5vdGlmaWNhdGlvbiopOworICAgIHZvaWQgY2FuY2VsKFdl
Yk5vdGlmaWNhdGlvbiopOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAv
LyBXZWJOb3RpZmljYXRpb25Qcm92aWRlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IDA1ZWY3YzFmODAxNGYzNjZkMWIzM2RmNjQzYzRjNTYz
YjNjZjlhNDYuLjg2YmJhYTZjYWMyMTAzZjQ1MTUzMTllYThhY2MyZGNmOTM0OTFiOWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC0zMDIsNiAr
MzAyLDcgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEMKICAgICAgICAgfHwgbWVzc2FnZUlELmlz
PENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYkljb25EYXRhYmFzZT4oKQogICAgICAgICB8fCBtZXNz
YWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlclBy
b3h5PigpCiAgICAgICAgIHx8IG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJN
ZWRpYUNhY2hlTWFuYWdlclByb3h5PigpCisgICAgICAgIHx8IG1lc3NhZ2VJRC5pczxDb3JlSVBD
OjpNZXNzYWdlQ2xhc3NXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk+KCkKICAgICAgICAgfHwg
bWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYlJlc291cmNlQ2FjaGVNYW5hZ2Vy
UHJveHk+KCkpIHsKICAgICAgICAgbV9jb250ZXh0LT5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0
aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1MWE5MWY4
NWUzNjg3YjQwNWNhMDFkOTY1MmYzMDc4OTAwNzkwODllLi45NTNlOWIwNGIzNDZkOTJkN2NkYzQ2
NWRhZjY4MTM2ODQyMjA5MzllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNDYsNiArMjQ2LDIyIEBACiAJCTFDQThCOTU0MTI3
Qzg5MTUwMDU3NkMyQiAvKiBXZWJJbnNwZWN0b3JNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzhFMkRBRDEyNzhDNUIyMDBCQzdCRDAgLyogV2Vi
SW5zcGVjdG9yTWFjLm1tICovOyB9OwogCQkyOUNENTVBQTEyOEUyOTRGMDAxMzNDODUgLyogV0tB
Y2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMjlDRDU1QTgxMjhFMjk0RjAwMTMzQzg1IC8qIFdLQWNjZXNzaWJp
bGl0eVdlYlBhZ2VPYmplY3QuaCAqLzsgfTsKIAkJMjlDRDU1QUIxMjhFMjk0RjAwMTMzQzg1IC8q
IFdLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOUNENTVBOTEyOEUyOTRGMDAxMzNDODUgLyogV0tBY2Nl
c3NpYmlsaXR5V2ViUGFnZU9iamVjdC5tbSAqLzsgfTsKKwkJMzEwOTk5NkYxNDZDNzQxRDAwMjlE
RUI5IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEwOTk5NkExNDZDNzM5MjAwMjlERUI5IC8qIFdl
Yk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oICovOyB9OworCQkzMTA5OTk3MDE0NkM3NDIwMDAy
OURFQjkgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMDk5OTZCMTQ2QzczQjEwMDI5REVCOSAv
KiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwICovOyB9OworCQkzMTA5OTk3MzE0NkM3
NUEyMDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMDk5OTcxMTQ2Qzc1OUIwMDI5REVCOSAv
KiBXZWJOb3RpZmljYXRpb25DbGllbnQuY3BwICovOyB9OworCQkzMTA5OTk3QTE0NkM4QjE0MDAy
OURFQjkgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTA5OTk3ODE0NkM4QjE0MDAyOURFQjkgLyogV2Vi
Tm90aWZpY2F0aW9uTWFuYWdlci5jcHAgKi87IH07CisJCTMxMDk5OTdCMTQ2QzhCMTQwMDI5REVC
OSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAzMTA5OTk3OTE0NkM4QjE0MDAyOURFQjkgLyogV2ViTm90aWZp
Y2F0aW9uTWFuYWdlci5oICovOyB9OworCQkzMTA5OTlDNzE0NkM5RTNEMDAyOURFQjkgLyogV2Vi
Tm90aWZpY2F0aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAzMTA5OTk2ODE0NkM3MUY1MDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uQ2xp
ZW50LmggKi87IH07CisJCTMxMkMwQzQ3MTQ2RERCQkQwMDE2QzkxMSAvKiBXZWJOb3RpZmljYXRp
b25Qcm92aWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAzMTJDMEM0NjE0NkREQkJDMDAxNkM5MTEgLyogV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIu
Y3BwICovOyB9OworCQkzMTJDMEM0QTE0NkREQzhBMDAxNkM5MTEgLyogV0tOb3RpZmljYXRpb25Q
cm92aWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MzEyQzBDNDkxNDZEREM4QTAwMTZDOTExIC8qIFdLTm90aWZpY2F0aW9uUHJvdmlkZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkzMThCRTE2NzE0
NzM0MzM3MDBBOEZCQjIgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZVJlY2Vp
dmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMx
OEJFMTY1MTQ3MzQzMzcwMEE4RkJCMiAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHlNZXNz
YWdlUmVjZWl2ZXIuY3BwICovOyB9OworCQkzMThCRTE2ODE0NzM0MzM3MDBBOEZCQjIgLyogV2Vi
Tm90aWZpY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxOEJFMTY2MTQ3MzQzMzcwMEE4RkJCMiAvKiBXZWJO
b3RpZmljYXRpb25NYW5hZ2VyUHJveHlNZXNzYWdlcy5oICovOyB9OworCQkzMThCRTE3MTE0NzQz
REIxMDBBOEZCQjIgLyogV0tOb3RpZmljYXRpb25NYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMThCRTE3MDE0NzQzREIxMDBBOEZCQjIgLyog
V0tOb3RpZmljYXRpb25NYW5hZ2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJMzE4QkUxNzUxNDc0M0RENzAwQThGQkIyIC8qIFdLTm90aWZpY2F0
aW9uTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAzMThCRTE3NDE0NzQzREQ2MDBBOEZCQjIgLyogV0tOb3RpZmljYXRpb25NYW5hZ2VyLmNw
cCAqLzsgfTsKKwkJMzE4QkUxNzcxNDc0M0U2MDAwQThGQkIyIC8qIFdLTm90aWZpY2F0aW9uLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxOEJFMTc2
MTQ3NDNFNjAwMEE4RkJCMiAvKiBXS05vdGlmaWNhdGlvbi5jcHAgKi87IH07CisJCTMxOEJFMTc5
MTQ3NDNFNkYwMEE4RkJCMiAvKiBXS05vdGlmaWNhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE4QkUxNzgxNDc0M0U2QTAwQThGQkIyIC8qIFdL
Tm90aWZpY2F0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKKwkJMzFDMTFBQjMxNDg0NTJFOTAwNDlBNENDIC8qIFdlYk5vdGlmaWNhdGlvbi5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUMxMUFCMTE0
ODQ1MkU5MDA0OUE0Q0MgLyogV2ViTm90aWZpY2F0aW9uLmNwcCAqLzsgfTsKKwkJMzFDMTFBQjQx
NDg0NTJFOTAwNDlBNENDIC8qIFdlYk5vdGlmaWNhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFDMTFBQjIxNDg0NTJFOTAwNDlBNENDIC8qIFdl
Yk5vdGlmaWNhdGlvbi5oICovOyB9OwogCQkzMUVBMjVEMjEzNEY3OEMwMDA1QjE0NTIgLyogTmF0
aXZlV2ViTW91c2VFdmVudE1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDMxRUEyNUQwMTM0Rjc4QjIwMDVCMTQ1MiAvKiBOYXRpdmVXZWJNb3VzZUV2
ZW50TWFjLm1tICovOyB9OwogCQkzMzA5MzQ0NzEzMTVCOTIyMDA5N0E3QkMgLyogV2ViQ29va2ll
TWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAzMzA5MzQ0MzEzMTVCOTIyMDA5N0E3QkMgLyogV2ViQ29va2llTWFu
YWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTMzMDkzNDQ4MTMxNUI5MjIwMDk3QTdC
QyAvKiBXZWJDb29raWVNYW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMzMDkzNDQ0MTMxNUI5MjIwMDk3QTdCQyAvKiBXZWJDb29r
aWVNYW5hZ2VyTWVzc2FnZXMuaCAqLzsgfTsKQEAgLTEyMDAsNiArMTIxNiwyNCBAQAogCQkxQ0E4
Qjk0NDEyN0M4ODJBMDA1NzZDMkIgLyogV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlcy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2VzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5Q0Q1NUE4MTI4RTI5NEYwMDEzM0M4NSAv
KiBXS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMjlDRDU1QTkxMjhFMjk0RjAwMTMzQzg1IC8qIFdLQWNjZXNzaWJpbGl0
eVdlYlBhZ2VPYmplY3QubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBXS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkzMTA5OTk2ODE0NkM3MUY1MDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uQ2xpZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYk5vdGlmaWNhdGlvbkNsaWVudC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkzMTA5OTk2QTE0NkM3MzkyMDAyOURFQjkgLyogV2ViTm90aWZpY2F0
aW9uTWFuYWdlclByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQ
cm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMTA5OTk2QjE0NkM3M0IxMDAy
OURFQjkgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxMDk5OTZEMTQ2QzczQzQwMDI5REVCOSAvKiBX
ZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkzMTA5OTk3MTE0NkM3NTlCMDAyOURFQjkgLyogV2ViTm90aWZp
Y2F0aW9uQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdl
Yk5vdGlmaWNhdGlvbkNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMx
MDk5OTc4MTQ2QzhCMTQwMDI5REVCOSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXIu
Y3BwOyBwYXRoID0gTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzEwOTk5NzkxNDZDOEIxNDAwMjlERUI5IC8qIFdl
Yk5vdGlmaWNhdGlvbk1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
V2ViTm90aWZpY2F0aW9uTWFuYWdlci5oOyBwYXRoID0gTm90aWZpY2F0aW9ucy9XZWJOb3RpZmlj
YXRpb25NYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxMkMwQzQ2MTQ2
RERCQkMwMDE2QzkxMSAvKiBXZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxMkMwQzQ4MTQ2RERCRDMwMDE2QzkxMSAvKiBX
ZWJOb3RpZmljYXRpb25Qcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJOb3RpZmljYXRpb25Q
cm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMTJDMEM0OTE0NkREQzhB
MDAxNkM5MTEgLyogV0tOb3RpZmljYXRpb25Qcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXS05vdGlmaWNhdGlvblByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTMxOEJFMTY1MTQ3MzQzMzcwMEE4RkJCMiAvKiBXZWJOb3RpZmljYXRpb25N
YW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzE4QkUxNjYxNDczNDMzNzAwQThGQkIy
IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eU1lc3NhZ2VzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxOEJFMTcwMTQ3NDNEQjEwMEE4RkJCMiAv
KiBXS05vdGlmaWNhdGlvbk1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV0tOb3RpZmljYXRpb25NYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTMxOEJFMTc0MTQ3NDNERDYwMEE4RkJCMiAvKiBXS05vdGlmaWNhdGlvbk1hbmFnZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tOb3RpZmljYXRpb25NYW5hZ2Vy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzE4QkUxNzYxNDc0M0U2MDAwQThG
QkIyIC8qIFdLTm90aWZpY2F0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFdLTm90aWZpY2F0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MzE4QkUxNzgxNDc0M0U2QTAwQThGQkIyIC8qIFdLTm90aWZpY2F0aW9uLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdLTm90aWZpY2F0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxQzEx
QUIxMTQ4NDUyRTkwMDQ5QTRDQyAvKiBXZWJOb3RpZmljYXRpb24uY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViTm90aWZpY2F0aW9uLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMzFDMTFBQjIxNDg0NTJFOTAwNDlBNENDIC8qIFdlYk5vdGlmaWNh
dGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJOb3RpZmljYXRpb24u
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzFFQTI1RDAxMzRGNzhCMjAwNUIxNDUy
IC8qIE5hdGl2ZVdlYk1vdXNlRXZlbnRNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBOYXRp
dmVXZWJNb3VzZUV2ZW50TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMUVB
MjVEMzEzNEY3OEQ2MDA1QjE0NTIgLyogTmF0aXZlV2ViTW91c2VFdmVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBOYXRpdmVXZWJNb3VzZUV2ZW50Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTMyREJDRjVFMDM3MEFERUUwMEM5MTc4MyAvKiBXZWJLaXQyUHJl
Zml4LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYktpdDJQcmVmaXguaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI0MjYsNiArMjQ2MCwxNSBAQAogCQkJcGF0
aCA9IG1hYzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTMxMDk5OTc0MTQ2
QzhBQTgwMDI5REVCOSAvKiBOb3RpZmljYXRpb25zIChVc2VyKSAqLyA9IHsKKwkJCWlzYSA9IFBC
WEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJMzEwOTk5NzgxNDZDOEIxNDAwMjlERUI5IC8q
IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwICovLAorCQkJCTMxMDk5OTc5MTQ2QzhCMTQwMDI5
REVCOSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyLmggKi8sCisJCQkpOworCQkJbmFtZSA9ICJO
b3RpZmljYXRpb25zIChVc2VyKSI7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9Owog
CQkzMkM4OERGRjAzNzFDMjQyMDBDOTE3ODMgLyogT3RoZXIgU291cmNlcyAqLyA9IHsKIAkJCWlz
YSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0yNTkzLDYgKzI2MzYsNyBAQAogCQkJ
CTUxQTlFMEZCMTMxNUNDMEUwMDlFNzAzMSAvKiBLZXlWYWx1ZVN0b3JhZ2UgKi8sCiAJCQkJMUE2
RkEwMUMxMUUxNTI2MzAwREIxMzcxIC8qIG1hYyAqLywKIAkJCQkzM0QzQTNCRDEzMzk2MDk4MDA3
MDlCRTQgLyogTWVkaWFDYWNoZSAqLywKKwkJCQkzMTA5OTk3NDE0NkM4QUE4MDAyOURFQjkgLyog
Tm90aWZpY2F0aW9ucyAoVXNlcikgKi8sCiAJCQkJMUE2RkI3QUExMUU2NEI0OTAwREIxMzcxIC8q
IFBsdWdpbnMgKi8sCiAJCQkJMzMzNjc2MkIxMzBDOTk3ODAwNkM5REUyIC8qIFJlc291cmNlQ2Fj
aGUgKi8sCiAJCQkJQkMwMzJENUQxMEY0MzcyMjAwNThDMTVBIC8qIFdlYkNvcmVTdXBwb3J0ICov
LApAQCAtMjYzMiw2ICsyNjc2LDggQEAKIAkJCQlCQzAzMkQ2RDEwRjQzNzhEMDA1OEMxNUEgLyog
V2ViSW5zcGVjdG9yQ2xpZW50LmggKi8sCiAJCQkJMUM4RTI1NkIxMjcwREUzODAwQkM3QkQwIC8q
IFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50LmNwcCAqLywKIAkJCQkxQzhFMjU2QTEyNzBERTM4
MDBCQzdCRDAgLyogV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQuaCAqLywKKwkJCQkzMTA5OTk3
MTE0NkM3NTlCMDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcCAqLywKKwkJCQkz
MTA5OTk2ODE0NkM3MUY1MDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uQ2xpZW50LmggKi8sCiAJ
CQkJMUEzRTczNjAxMUNDMjY1OTAwN0JENTM5IC8qIFdlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAg
Ki8sCiAJCQkJMUEzRTczNUYxMUNDMjY1OTAwN0JENTM5IC8qIFdlYlBsYXRmb3JtU3RyYXRlZ2ll
cy5oICovLAogCQkJCUQzQjk0ODQyMTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJQb3B1cE1lbnUuY3Bw
ICovLApAQCAtMjc4Miw2ICsyODI4LDEzIEBACiAJCQkJMzNEM0EzQjkxMzM5NjA2MjAwNzA5QkU0
IC8qIFdlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gKi8sCiAJCQkJQkNGNjlG
QTExMTc2RDAxNDAwNDcxQTUyIC8qIFdlYk5hdmlnYXRpb25EYXRhLmNwcCAqLywKIAkJCQlCQ0Y2
OUZBMDExNzZEMDE0MDA0NzFBNTIgLyogV2ViTmF2aWdhdGlvbkRhdGEuaCAqLywKKwkJCQkzMUMx
MUFCMTE0ODQ1MkU5MDA0OUE0Q0MgLyogV2ViTm90aWZpY2F0aW9uLmNwcCAqLywKKwkJCQkzMUMx
MUFCMjE0ODQ1MkU5MDA0OUE0Q0MgLyogV2ViTm90aWZpY2F0aW9uLmggKi8sCisJCQkJMzEwOTk5
NkIxNDZDNzNCMTAwMjlERUI5IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAgKi8s
CisJCQkJMzEwOTk5NkExNDZDNzM5MjAwMjlERUI5IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQ
cm94eS5oICovLAorCQkJCTMxMDk5OTZEMTQ2QzczQzQwMDI5REVCOSAvKiBXZWJOb3RpZmljYXRp
b25NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gKi8sCisJCQkJMzEyQzBDNDYxNDZEREJCQzAwMTZD
OTExIC8qIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcCAqLywKKwkJCQkzMTJDMEM0ODE0NkRE
QkQzMDAxNkM5MTEgLyogV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuaCAqLywKIAkJCQlCQzFERkVB
MzEyQjMxRjg3MDA1REY3MzAgLyogV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eS5jcHAg
Ki8sCiAJCQkJQkMxREZFQTIxMkIzMUY4NzAwNURGNzMwIC8qIFdlYk9wZW5QYW5lbFJlc3VsdExp
c3RlbmVyUHJveHkuaCAqLywKIAkJCQk1MTUzNTY5QTEyOTFCMUQyMDAwNzQ5REMgLyogV2ViUGFn
ZUNvbnRleHRNZW51Q2xpZW50LmNwcCAqLywKQEAgLTI4NzYsNiArMjkyOSwxMSBAQAogCQkJCUMw
OUFFNUU4MTI1MjU3QzIwMDI1ODI1RCAvKiBXS05hdGl2ZUV2ZW50LmggKi8sCiAJCQkJQkNGNjlG
QTgxMTc2RDFDQjAwNDcxQTUyIC8qIFdLTmF2aWdhdGlvbkRhdGEuY3BwICovLAogCQkJCUJDRjY5
RkE3MTE3NkQxQ0IwMDQ3MUE1MiAvKiBXS05hdmlnYXRpb25EYXRhLmggKi8sCisJCQkJMzE4QkUx
NzYxNDc0M0U2MDAwQThGQkIyIC8qIFdLTm90aWZpY2F0aW9uLmNwcCAqLywKKwkJCQkzMThCRTE3
ODE0NzQzRTZBMDBBOEZCQjIgLyogV0tOb3RpZmljYXRpb24uaCAqLywKKwkJCQkzMThCRTE3NDE0
NzQzREQ2MDBBOEZCQjIgLyogV0tOb3RpZmljYXRpb25NYW5hZ2VyLmNwcCAqLywKKwkJCQkzMThC
RTE3MDE0NzQzREIxMDBBOEZCQjIgLyogV0tOb3RpZmljYXRpb25NYW5hZ2VyLmggKi8sCisJCQkJ
MzEyQzBDNDkxNDZEREM4QTAwMTZDOTExIC8qIFdLTm90aWZpY2F0aW9uUHJvdmlkZXIuaCAqLywK
IAkJCQlCQzg1N0ZFNTEyQjg0M0Q4MDBFREVCMkUgLyogV0tPcGVuUGFuZWxQYXJhbWV0ZXJzLmNw
cCAqLywKIAkJCQlCQzg1N0ZFNDEyQjg0M0Q4MDBFREVCMkUgLyogV0tPcGVuUGFuZWxQYXJhbWV0
ZXJzLmggKi8sCiAJCQkJQkMxREZFOEUxMkIzMUNBODAwNURGNzMwIC8qIFdLT3BlblBhbmVsUmVz
dWx0TGlzdGVuZXIuY3BwICovLApAQCAtMzQ0NSw2ICszNTAzLDggQEAKIAkJCQkzM0QzQTNDNTEz
Mzk2MTc5MDA3MDlCRTQgLyogV2ViTWVkaWFDYWNoZU1hbmFnZXJNZXNzYWdlcy5oICovLAogCQkJ
CTMzRDNBM0M2MTMzOTYxNzkwMDcwOUJFNCAvKiBXZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQkzM0QzQTNDNzEzMzk2MTc5MDA3MDlCRTQgLyogV2Vi
TWVkaWFDYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmggKi8sCisJCQkJMzE4QkUxNjUxNDczNDMz
NzAwQThGQkIyIC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5j
cHAgKi8sCisJCQkJMzE4QkUxNjYxNDczNDMzNzAwQThGQkIyIC8qIFdlYk5vdGlmaWNhdGlvbk1h
bmFnZXJQcm94eU1lc3NhZ2VzLmggKi8sCiAJCQkJQzBDRTcyOUUxMjQ3RTcxRDAwQkMwRUM0IC8q
IFdlYlBhZ2VNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCUMwQ0U3MjlGMTI0N0U3MUQwMEJD
MEVDNCAvKiBXZWJQYWdlTWVzc2FnZXMuaCAqLywKIAkJCQlCQ0JEMzkxMjEyNUJCMUE4MDBEMkMy
OUYgLyogV2ViUGFnZVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKQEAgLTM5NjYsNiArNDAy
NiwxNCBAQAogCQkJCUJDNEE2MjkyMTQ3MzEyQkUwMDZDNjgxQSAvKiBXZWJDb25uZWN0aW9uQ2xp
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzRBNjI5NzE0NzMxM0EwMDA2QzY4MUEgLyogV0tD
b25uZWN0aW9uUmVmLmggaW4gSGVhZGVycyAqLywKIAkJCQkzNzg4QTA1QzE0NzQzQzkwMDA2MzE5
RTUgLyogV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJMzEwOTk5NkYxNDZDNzQxRDAwMjlERUI5IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQ
cm94eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzEwOTk5N0IxNDZDOEIxNDAwMjlERUI5IC8qIFdl
Yk5vdGlmaWNhdGlvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTMxMDk5OUM3MTQ2QzlF
M0QwMDI5REVCOSAvKiBXZWJOb3RpZmljYXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTMxMkMwQzRBMTQ2RERDOEEwMDE2QzkxMSAvKiBXS05vdGlmaWNhdGlvblByb3ZpZGVyLmggaW4g
SGVhZGVycyAqLywKKwkJCQkzMThCRTE2ODE0NzM0MzM3MDBBOEZCQjIgLyogV2ViTm90aWZpY2F0
aW9uTWFuYWdlclByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTMxOEJFMTcxMTQ3
NDNEQjEwMEE4RkJCMiAvKiBXS05vdGlmaWNhdGlvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAor
CQkJCTMxOEJFMTc5MTQ3NDNFNkYwMEE4RkJCMiAvKiBXS05vdGlmaWNhdGlvbi5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMzFDMTFBQjQxNDg0NTJFOTAwNDlBNENDIC8qIFdlYk5vdGlmaWNhdGlvbi5o
IGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7CiAJCX07CkBAIC00NjY2LDYgKzQ3MzQsMTQgQEAKIAkJCQlCQzRBNjI4RjE0NzMx
MkJFMDA2QzY4MUEgLyogV2ViQ29ubmVjdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzRB
NjI5MTE0NzMxMkJFMDA2QzY4MUEgLyogV2ViQ29ubmVjdGlvbkNsaWVudC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlCQzRBNjI5NjE0NzMxM0EwMDA2QzY4MUEgLyogV0tDb25uZWN0aW9uUmVmLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCTMxMDk5OTcwMTQ2Qzc0MjAwMDI5REVCOSAvKiBXZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMzEwOTk5NzMxNDZD
NzVBMjAwMjlERUI5IC8qIFdlYk5vdGlmaWNhdGlvbkNsaWVudC5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQkzMTA5OTk3QTE0NkM4QjE0MDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlci5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQkzMTJDMEM0NzE0NkREQkJEMDAxNkM5MTEgLyogV2ViTm90
aWZpY2F0aW9uUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMzE4QkUxNjcxNDczNDMz
NzAwQThGQkIyIC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQkzMThCRTE3NTE0NzQzREQ3MDBBOEZCQjIgLyogV0tOb3Rp
ZmljYXRpb25NYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTMxOEJFMTc3MTQ3NDNFNjAw
MEE4RkJCMiAvKiBXS05vdGlmaWNhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkzMUMxMUFC
MzE0ODQ1MkU5MDA0OUE0Q0MgLyogV2ViTm90aWZpY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5v
dGlmaWNhdGlvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmlj
YXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE0ZDZiZjAwMTk1
NzRlNjg3OGJlZGJiYjMyMTJkZWI3NmQwYjU3ZmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5j
cHAKQEAgLTAsMCArMSw2NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJXZWJOb3RpZmljYXRpb25NYW5hZ2VyLmgiCisKKyNpbmNsdWRlICJXZWJQYWdlLmgi
CisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorCisjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCisj
aW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRl
IDxXZWJDb3JlL05vdGlmaWNhdGlvbi5oPgorI2VuZGlmCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKyAgICAKK1dlYk5vdGlmaWNhdGlvbk1hbmFnZXI6
OldlYk5vdGlmaWNhdGlvbk1hbmFnZXIoV2ViUHJvY2VzcyogcHJvY2VzcykKKyAgICA6IG1fcHJv
Y2Vzcyhwcm9jZXNzKQoreworfQorCitXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjp+V2ViTm90aWZp
Y2F0aW9uTWFuYWdlcigpCit7Cit9CisKK2Jvb2wgV2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6c2hv
dyhOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbiwgV2ViUGFnZSogcGFnZSkKK3sKKyNpZiBFTkFC
TEUoTk9USUZJQ0FUSU9OUykKKyAgICBtX3Byb2Nlc3MtPmNvbm5lY3Rpb24oKS0+c2VuZChNZXNz
YWdlczo6V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5OjpTaG93KG5vdGlmaWNhdGlvbi0+Y29u
dGVudHMoKS50aXRsZSwgbm90aWZpY2F0aW9uLT5jb250ZW50cygpLmJvZHksIDApLCBwYWdlLT5w
YWdlSUQoKSk7CisjZW5kaWYKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBXZWJOb3RpZmlj
YXRpb25NYW5hZ2VyOjpjYW5jZWwoTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24sIFdlYlBhZ2Uq
IHBhZ2UpCit7CisjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCisgICAgbV9wcm9jZXNzLT5jb25u
ZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6Q2Fu
Y2VsKDApLCBwYWdlLT5wYWdlSUQoKSk7CisjZW5kaWYKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMv
V2ViTm90aWZpY2F0aW9uTWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3Rp
ZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMDMzYWUzOGI1
Mjk5MDAwZGFmODg4YzNmNGRlZTFkZWM2NzVmY2JjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIu
aApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJOb3RpZmljYXRpb25N
YW5hZ2VyX2gKKyNkZWZpbmUgV2ViTm90aWZpY2F0aW9uTWFuYWdlcl9oCisKKyNpbmNsdWRlIDx3
dGYvTm9uY29weWFibGUuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgTm90aWZpY2F0
aW9uOyAgICAKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K2NsYXNzIFdlYlBhZ2U7CitjbGFzcyBXZWJQcm9jZXNzOworCitjbGFzcyBXZWJOb3RpZmljYXRp
b25NYW5hZ2VyIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShXZWJOb3RpZmljYXRpb25NYW5h
Z2VyKTsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyKFdlYlBy
b2Nlc3MqKTsKKyAgICB+V2ViTm90aWZpY2F0aW9uTWFuYWdlcigpOworCisgICAgYm9vbCBzaG93
KFdlYkNvcmU6Ok5vdGlmaWNhdGlvbiosIFdlYlBhZ2UqKTsKKyAgICB2b2lkIGNhbmNlbChXZWJD
b3JlOjpOb3RpZmljYXRpb24qLCBXZWJQYWdlKik7CisKK3ByaXZhdGU6CisgICAgV2ViUHJvY2Vz
cyogbV9wcm9jZXNzOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDc1NjNmZjNmOTFhZTg4Mzg2ZmEzNTE2N2NkMTMyZmEz
M2Q0ZDM4MTcuLmU5OGI5NzZlYzg2Nzc2OGUxOTkyNmFjMTQ2MmUwN2E0MTVjMDFmNmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTY5MywxMyArNjkzLDYgQEAgdm9pZCBXZWJDaHJvbWVD
bGllbnQ6OnNjaGVkdWxlQ29tcG9zaXRpbmdMYXllclN5bmMoKQogCiAjZW5kaWYKIAotI2lmIEVO
QUJMRShOT1RJRklDQVRJT05TKQotV2ViQ29yZTo6Tm90aWZpY2F0aW9uUHJlc2VudGVyKiBXZWJD
aHJvbWVDbGllbnQ6Om5vdGlmaWNhdGlvblByZXNlbnRlcigpIGNvbnN0Ci17Ci0gICAgcmV0dXJu
IDA7Ci19Ci0jZW5kaWYKLQogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiB2b2lkIFdlYkNocm9t
ZUNsaWVudDo6bmVlZFRvdWNoRXZlbnRzKGJvb2wgbmVlZFRvdWNoRXZlbnRzKQogewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmgKaW5kZXggYTgwMzFjM2MzODRiODM2M2Y0NzMzZTkwMDdlZDg4MTRlZWM3OGE5
My4uYjU3MGIzN2Q2MDc0ZjJiNWExMTAxZjEwOTEzM2I2MmY0MzliNDVjMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5oCkBAIC0xODMsMTAgKzE4Myw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lk
IHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllclN5bmMoKSBPVkVSUklERTsKICNlbmRpZgogCi0jaWYg
RU5BQkxFKE5PVElGSUNBVElPTlMpCi0gICAgdmlydHVhbCBXZWJDb3JlOjpOb3RpZmljYXRpb25Q
cmVzZW50ZXIqIG5vdGlmaWNhdGlvblByZXNlbnRlcigpIGNvbnN0IE9WRVJSSURFOwotI2VuZGlm
Ci0KICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgIHZpcnR1YWwgdm9pZCBuZWVkVG91Y2hF
dmVudHMoYm9vbCkgT1ZFUlJJREU7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xp
ZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4wNTcxN2ZmZGNkMGY2NDE2MjI1ZDg4NDNiZmM3ODgyOWRmZTUx
MjFkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuY3BwCkBAIC0wLDAgKzEsOTAgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uQ2xp
ZW50LmgiCisKKyNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKKworI2luY2x1ZGUgIldlYk5vdGlm
aWNhdGlvbk1hbmFnZXIuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5jbHVkZSA8V2Vi
Q29yZS9Ob3RJbXBsZW1lbnRlZC5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK1dlYk5vdGlmaWNhdGlvbkNsaWVudDo6V2ViTm90aWZpY2F0aW9u
Q2xpZW50KFdlYlBhZ2UqIHBhZ2UpCisgICAgOiBtX3BhZ2UocGFnZSkKK3sKK30KKworV2ViTm90
aWZpY2F0aW9uQ2xpZW50Ojp+V2ViTm90aWZpY2F0aW9uQ2xpZW50KCkKK3sKK30KKworYm9vbCBX
ZWJOb3RpZmljYXRpb25DbGllbnQ6OnNob3coTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24pCit7
CisjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCisgICAgcmV0dXJuIFdlYlByb2Nlc3M6OnNoYXJl
ZCgpLm5vdGlmaWNhdGlvbk1hbmFnZXIoKS5zaG93KG5vdGlmaWNhdGlvbiwgbV9wYWdlKTsKKyNl
bHNlCisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKK30K
Kwordm9pZCBXZWJOb3RpZmljYXRpb25DbGllbnQ6OmNhbmNlbChOb3RpZmljYXRpb24qIG5vdGlm
aWNhdGlvbikKK3sKKyNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKKyAgICBXZWJQcm9jZXNzOjpz
aGFyZWQoKS5ub3RpZmljYXRpb25NYW5hZ2VyKCkuY2FuY2VsKG5vdGlmaWNhdGlvbiwgbV9wYWdl
KTsKKyNlbHNlCisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyNlbmRpZgorfQorCit2b2lkIFdlYk5v
dGlmaWNhdGlvbkNsaWVudDo6bm90aWZpY2F0aW9uT2JqZWN0RGVzdHJveWVkKE5vdGlmaWNhdGlv
biopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJOb3RpZmljYXRpb25D
bGllbnQ6OnJlcXVlc3RQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVm
UHRyPFZvaWRDYWxsYmFjaz4pCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBX
ZWJOb3RpZmljYXRpb25DbGllbnQ6OmNhbmNlbFJlcXVlc3RzRm9yUGVybWlzc2lvbihTY3JpcHRF
eGVjdXRpb25Db250ZXh0KikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitOb3RpZmlj
YXRpb25QcmVzZW50ZXI6OlBlcm1pc3Npb24gV2ViTm90aWZpY2F0aW9uQ2xpZW50OjpjaGVja1Bl
cm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gTm90aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJtaXNzaW9uRGVuaWVkOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShOT1RJRklDQVRJ
T05TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJOb3RpZmljYXRpb25DbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTlmMDA3ZDk1
OGJiYzlkYjkxZmZmN2I3OGNhNmRkM2Y3M2E1MGYyMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50
LmgKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViTm90aWZpY2F0aW9u
Q2xpZW50X2gKKyNkZWZpbmUgV2ViTm90aWZpY2F0aW9uQ2xpZW50X2gKKworI2lmIEVOQUJMRShO
T1RJRklDQVRJT05TKQorCisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RpZmljYXRpb25QcmVzZW50ZXIu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsK
K2NsYXNzIFZvaWRDYWxsYmFjazsKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2U7CisKK2NsYXNzIFdlYk5vdGlmaWNhdGlvbkNsaWVu
dCA6IHB1YmxpYyBXZWJDb3JlOjpOb3RpZmljYXRpb25QcmVzZW50ZXIgeworcHVibGljOgorICAg
IFdlYk5vdGlmaWNhdGlvbkNsaWVudChXZWJQYWdlKik7CisgICAgdmlydHVhbCB+V2ViTm90aWZp
Y2F0aW9uQ2xpZW50KCk7CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCBib29sIHNob3coV2ViQ29y
ZTo6Tm90aWZpY2F0aW9uKikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGNhbmNlbChXZWJD
b3JlOjpOb3RpZmljYXRpb24qKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZpY2F0
aW9uT2JqZWN0RGVzdHJveWVkKFdlYkNvcmU6Ok5vdGlmaWNhdGlvbiopIE9WRVJSSURFOworICAg
IHZpcnR1YWwgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpWb2lkQ2FsbGJhY2s+KSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgY2FuY2VsUmVxdWVzdHNGb3JQZXJtaXNzaW9uKFdlYkNvcmU6OlNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIE5vdGlmaWNhdGlvblBy
ZXNlbnRlcjo6UGVybWlzc2lvbiBjaGVja1Blcm1pc3Npb24oV2ViQ29yZTo6U2NyaXB0RXhlY3V0
aW9uQ29udGV4dCopIE9WRVJSSURFOworICAgIAorICAgIFdlYlBhZ2UqIG1fcGFnZTsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKE5PVElGSUNBVElPTlMp
CisKKyNlbmRpZiAvLyBXZWJOb3RpZmljYXRpb25DbGllbnRfaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGFlMDUyNDE2MGIyNGQwYjEzYWZj
OTcyZmI0NDNjZWU1NGY0Y2NkY2UuLjk1YzFjZDJjMzA3NzFhOWE1OTVkYzg3ODYwMGRjZTU5MmRh
MjU0ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKQEAgLTYxLDYgKzYxLDcgQEAKICNpbmNsdWRlICJXZWJJbWFnZS5oIgogI2luY2x1ZGUgIldl
Ykluc3BlY3Rvci5oIgogI2luY2x1ZGUgIldlYkluc3BlY3RvckNsaWVudC5oIgorI2luY2x1ZGUg
IldlYk5vdGlmaWNhdGlvbkNsaWVudC5oIgogI2luY2x1ZGUgIldlYk9wZW5QYW5lbFJlc3VsdExp
c3RlbmVyLmgiCiAjaW5jbHVkZSAiV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oIgogI2luY2x1
ZGUgIldlYlBhZ2VHcm91cFByb3h5LmgiCkBAIC0yMTYsNiArMjE3LDEwIEBAIFdlYlBhZ2U6Oldl
YlBhZ2UodWludDY0X3QgcGFnZUlELCBjb25zdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiBw
YXJhbWV0ZXJzKQogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgcGFnZUNsaWVudHMuaW5zcGVj
dG9yQ2xpZW50ID0gbmV3IFdlYkluc3BlY3RvckNsaWVudCh0aGlzKTsKICNlbmRpZgorI2lmIEVO
QUJMRShOT1RJRklDQVRJT05TKQorICAgIHBhZ2VDbGllbnRzLm5vdGlmaWNhdGlvbkNsaWVudCA9
IG5ldyBXZWJOb3RpZmljYXRpb25DbGllbnQodGhpcyk7CisjZW5kaWYKKyAgICAKICAgICBtX3Bh
Z2UgPSBhZG9wdFB0cihuZXcgUGFnZShwYWdlQ2xpZW50cykpOwogCiAgICAgLy8gUXQgZG9lcyBu
b3QgeWV0IGNhbGwgc2V0SXNJbldpbmRvdy4gVW50aWwgaXQgZG9lcywganVzdCBsZWF2ZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggYzllOTBjZTll
OThlMGQ4YTYwMDE0NWI0NzRjMGE5NWFkOTc2NjFlZS4uY2RmMTk2ZGQ2MWI0OThhYjAzYzQwYzg1
MWJjMzA0ZjU3YjE3NzI2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oCkBAIC0xMTQsNiArMTE0LDcgQEAgY2xhc3MgV2ViSW1hZ2U7CiBjbGFzcyBXZWJJ
bnNwZWN0b3I7CiBjbGFzcyBXZWJLZXlib2FyZEV2ZW50OwogY2xhc3MgV2ViTW91c2VFdmVudDsK
K2NsYXNzIFdlYk5vdGlmaWNhdGlvbkNsaWVudDsKIGNsYXNzIFdlYk9wZW5QYW5lbFJlc3VsdExp
c3RlbmVyOwogY2xhc3MgV2ViUGFnZUdyb3VwUHJveHk7CiBjbGFzcyBXZWJQb3B1cE1lbnU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCBiMjMwMGQ5YmFhZjVk
YjEzYmEwNTBhMmM5ZWM4OGY3YzI0Y2UwOGE1Li5mYzBlM2UyZGFmMmE4ZDA0ZDMxN2JlMGVlZTg3
ZDMyY2ZhMmM2YTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAK
QEAgLTE0MCw2ICsxNDAsOSBAQCBXZWJQcm9jZXNzOjpXZWJQcm9jZXNzKCkKICNlbmRpZgogICAg
ICwgbV90ZXh0Q2hlY2tlclN0YXRlKCkKICAgICAsIG1fZ2VvbG9jYXRpb25NYW5hZ2VyKHRoaXMp
CisjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCisgICAgLCBtX25vdGlmaWNhdGlvbk1hbmFnZXIo
dGhpcykKKyNlbmRpZgogICAgICwgbV9pY29uRGF0YWJhc2VQcm94eSh0aGlzKQogI2lmIEVOQUJM
RShQTFVHSU5fUFJPQ0VTUykKICAgICAsIG1fZGlzYWJsZVBsdWdpblByb2Nlc3NNZXNzYWdlVGlt
ZW91dChmYWxzZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXggMzJk
MzgyYjEzNzg2ZGJkNThjYjE0YTdjMWFjZTNhY2U4MzBmMzUzNi4uYjliZDgyNjc2YzViNThlMWE4
NDI5MzZhMTA3YmE3ZGNkZTQ1NjI0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmgKQEAgLTQ2LDYgKzQ2LDEwIEBACiBjbGFzcyBRTmV0d29ya0FjY2Vzc01hbmFnZXI7CiAj
ZW5kaWYKIAorI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQorI2luY2x1ZGUgIldlYk5vdGlmaWNh
dGlvbk1hbmFnZXIuaCIKKyNlbmRpZgorCiAjaWYgRU5BQkxFKFBMVUdJTl9QUk9DRVNTKQogI2lu
Y2x1ZGUgIlBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5oIgogI2VuZGlmCkBAIC0xMTks
NiArMTIzLDEwIEBAIHB1YmxpYzoKIAogICAgIC8vIEdlb2xvY2F0aW9uCiAgICAgV2ViR2VvbG9j
YXRpb25NYW5hZ2VyJiBnZW9sb2NhdGlvbk1hbmFnZXIoKSB7IHJldHVybiBtX2dlb2xvY2F0aW9u
TWFuYWdlcjsgfQorICAgIAorI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQorICAgIFdlYk5vdGlm
aWNhdGlvbk1hbmFnZXImIG5vdGlmaWNhdGlvbk1hbmFnZXIoKSB7IHJldHVybiBtX25vdGlmaWNh
dGlvbk1hbmFnZXI7IH0KKyNlbmRpZgogCiAgICAgdm9pZCBjbGVhclJlc291cmNlQ2FjaGVzKFJl
c291cmNlQ2FjaGVzVG9DbGVhciA9IEFsbFJlc291cmNlQ2FjaGVzKTsKICAgICAKQEAgLTI0MSw2
ICsyNDksOSBAQCBwcml2YXRlOgogCiAgICAgVGV4dENoZWNrZXJTdGF0ZSBtX3RleHRDaGVja2Vy
U3RhdGU7CiAgICAgV2ViR2VvbG9jYXRpb25NYW5hZ2VyIG1fZ2VvbG9jYXRpb25NYW5hZ2VyOwor
I2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQorICAgIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXIgbV9u
b3RpZmljYXRpb25NYW5hZ2VyOworI2VuZGlmCiAgICAgV2ViSWNvbkRhdGFiYXNlUHJveHkgbV9p
Y29uRGF0YWJhc2VQcm94eTsKICAgICAKICAgICBTdHJpbmcgbV9sb2NhbFN0b3JhZ2VEaXJlY3Rv
cnk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2ogYi9Tb3Vy
Y2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oKaW5kZXggYmFjZjc3NDQ1NWIxOTc3YzQ5ODBk
NjYwOGU3NDQ3NGQ4ZTllMGEwYy4uZGM2NDYyNDAwYmQ4NTM0MGU0Y2U3MTIzMTdlOTk3NGQwYTcy
MmVkMiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9qCisrKyBi
L1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagpAQCAtNjk5LDE5ICs2OTksMTkgQEAK
IAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cU2hhcmVk
XFdlYkltYWdlLmNwcCIKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFNoYXJlZFxXZWJIaXRUZXN0UmVz
dWx0LmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0i
Li5cU2hhcmVkXFdlYkltYWdlLmgiCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxTaGFyZWRcV2ViSGl0
VGVzdFJlc3VsdC5oIgogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQ
YXRoPSIuLlxTaGFyZWRcV2ViSGl0VGVzdFJlc3VsdC5jcHAiCisJCQkJUmVsYXRpdmVQYXRoPSIu
LlxTaGFyZWRcV2ViSW1hZ2UuY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCi0JCQkJ
UmVsYXRpdmVQYXRoPSIuLlxTaGFyZWRcV2ViSGl0VGVzdFJlc3VsdC5oIgorCQkJCVJlbGF0aXZl
UGF0aD0iLi5cU2hhcmVkXFdlYkltYWdlLmgiCiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUK
QEAgLTg1NCwxOSArODU0LDE5IEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKLQkJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxTaGFyZWRcQVBJXGNcV0tDb25uZWN0aW9uUmVmLmNwcCIKKwkJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxTaGFyZWRcQVBJXGNcd2luXFdLQ2VydGlmaWNhdGVJbmZvV2lu
LmNwcCIKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQotCQkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXFNoYXJlZFxBUElcY1xXS0Nvbm5lY3Rpb25SZWYuaCIKKwkJCQkJUmVsYXRpdmVQYXRoPSIu
LlxTaGFyZWRcQVBJXGNcd2luXFdLQ2VydGlmaWNhdGVJbmZvV2luLmgiCiAJCQkJCT4KIAkJCQk8
L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxTaGFyZWRcQVBJXGNcd2lu
XFdLQ2VydGlmaWNhdGVJbmZvV2luLmNwcCIKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxTaGFyZWRc
QVBJXGNcV0tDb25uZWN0aW9uUmVmLmNwcCIKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8Rmls
ZQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFNoYXJlZFxBUElcY1x3aW5cV0tDZXJ0aWZpY2F0ZUlu
Zm9XaW4uaCIKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxTaGFyZWRcQVBJXGNcV0tDb25uZWN0aW9u
UmVmLmgiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKQEAgLTkxNCwxMSArOTE0LDEx
IEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIu
LlxTaGFyZWRcQVBJXGNcV0tHZW9tZXRyeS5oIgorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFNoYXJl
ZFxBUElcY1xXS0dlb21ldHJ5LmNwcCIKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQot
CQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFNoYXJlZFxBUElcY1xXS0dlb21ldHJ5LmNwcCIKKwkJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxTaGFyZWRcQVBJXGNcV0tHZW9tZXRyeS5oIgogCQkJCQk+CiAJCQkJ
PC9GaWxlPgogCQkJCTxGaWxlCkBAIC0xODYyLDYgKzE4NjIsMTQgQEAKIAkJCQkJPgogCQkJCTwv
RmlsZT4KIAkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcV2ViQ29y
ZVN1cHBvcnRcV2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcCIKKwkJCQkJPgorCQkJCTwvRmlsZT4K
KwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcV2ViQ29yZVN1cHBv
cnRcV2ViTm90aWZpY2F0aW9uQ2xpZW50LmgiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZp
bGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJQcm9jZXNzXFdlYkNvcmVTdXBwb3J0XFdlYlBs
YXRmb3JtU3RyYXRlZ2llcy5jcHAiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CkBAIC0yNjgyLDYgKzI2
OTAsMTggQEAKIAkJCQkJPC9GaWxlPgogCQkJCTwvRmlsdGVyPgogCQkJPC9GaWx0ZXI+CisJCQk8
RmlsdGVyCisJCQkJTmFtZT0iTm90aWZpY2F0aW9ucyAoVXNlcikiCisJCQkJPgorCQkJCTxGaWxl
CisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViUHJvY2Vzc1xOb3RpZmljYXRpb25zXFdlYk5vdGlm
aWNhdGlvbk1hbmFnZXIuY3BwIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCisJCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cV2ViUHJvY2Vzc1xOb3RpZmljYXRpb25zXFdlYk5vdGlmaWNhdGlv
bk1hbmFnZXIuaCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCTwvRmlsdGVyPgogCQk8L0ZpbHRl
cj4KIAkJPEZpbHRlcgogCQkJTmFtZT0iVUlQcm9jZXNzIgpAQCAtMzAzOSw2ICszMDU5LDM0IEBA
CiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJv
Y2Vzc1xXZWJOb3RpZmljYXRpb24uY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcV2ViTm90aWZpY2F0aW9uLmgiCisJCQkJPgor
CQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xXZWJO
b3RpZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxl
CisJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcV2ViTm90aWZpY2F0aW9uTWFuYWdlclBy
b3h5LmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XFVJUHJvY2Vzc1xXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4iCisJCQkJ
PgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xX
ZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHAiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUK
KwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xXZWJOb3RpZmljYXRpb25Qcm92aWRlci5o
IgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVBy
b2Nlc3NcV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eS5jcHAiCiAJCQkJPgogCQkJPC9G
aWxlPgpAQCAtMzMwNSwxOSArMzM1MywxOSBAQAogCQkJCQkJPgogCQkJCQk8L0ZpbGU+CiAJCQkJ
CTxGaWxlCi0JCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xBUElcQ1xXS0hpdFRlc3RS
ZXN1bHQuY3BwIgorCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcQVBJXENcV0tHcmFt
bWFyRGV0YWlsLmNwcCIKIAkJCQkJCT4KIAkJCQkJPC9GaWxlPgogCQkJCQk8RmlsZQotCQkJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcQVBJXENcV0tIaXRUZXN0UmVzdWx0LmgiCisJCQkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xBUElcQ1xXS0dyYW1tYXJEZXRhaWwuaCIKIAkJ
CQkJCT4KIAkJCQkJPC9GaWxlPgogCQkJCQk8RmlsZQotCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxV
SVByb2Nlc3NcQVBJXENcV0tHcmFtbWFyRGV0YWlsLmNwcCIKKwkJCQkJCVJlbGF0aXZlUGF0aD0i
Li5cVUlQcm9jZXNzXEFQSVxDXFdLSGl0VGVzdFJlc3VsdC5jcHAiCiAJCQkJCQk+CiAJCQkJCTwv
RmlsZT4KIAkJCQkJPEZpbGUKLQkJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXEFQSVxD
XFdLR3JhbW1hckRldGFpbC5oIgorCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcQVBJ
XENcV0tIaXRUZXN0UmVzdWx0LmgiCiAJCQkJCQk+CiAJCQkJCTwvRmlsZT4KIAkJCQkJPEZpbGUK
QEAgLTMzNjUsNiArMzQxMywyNiBAQAogCQkJCQkJPgogCQkJCQk8L0ZpbGU+CiAJCQkJCTxGaWxl
CisJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xBUElcQ1xXS05vdGlmaWNhdGlvbi5j
cHAiCisJCQkJCQk+CisJCQkJCTwvRmlsZT4KKwkJCQkJPEZpbGUKKwkJCQkJCVJlbGF0aXZlUGF0
aD0iLi5cVUlQcm9jZXNzXEFQSVxDXFdLTm90aWZpY2F0aW9uLmgiCisJCQkJCQk+CisJCQkJCTwv
RmlsZT4KKwkJCQkJPEZpbGUKKwkJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXEFQSVxD
XFdLTm90aWZpY2F0aW9uTWFuYWdlci5jcHAiCisJCQkJCQk+CisJCQkJCTwvRmlsZT4KKwkJCQkJ
PEZpbGUKKwkJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXEFQSVxDXFdLTm90aWZpY2F0
aW9uTWFuYWdlci5oIgorCQkJCQkJPgorCQkJCQk8L0ZpbGU+CisJCQkJCTxGaWxlCisJCQkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xBUElcQ1xXS05vdGlmaWNhdGlvblByb3ZpZGVyLmgi
CisJCQkJCQk+CisJCQkJCTwvRmlsZT4KKwkJCQkJPEZpbGUKIAkJCQkJCVJlbGF0aXZlUGF0aD0i
Li5cVUlQcm9jZXNzXEFQSVxDXFdLT3BlblBhbmVsUGFyYW1ldGVycy5jcHAiCiAJCQkJCQk+CiAJ
CQkJCTwvRmlsZT4KQEAgLTQyMTEsNiArNDI3OSwxNCBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJ
CTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQo
UHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eU1l
c3NhZ2VSZWNlaXZlci5jcHAiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxh
dGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVy
aXZlZFNvdXJjZXNcV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKKwkJCQk+
CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9u
QnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xXZWJQYWdlTWVzc2Fn
ZVJlY2VpdmVyLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116848</attachid>
            <date>2011-11-28 16:11:14 -0800</date>
            <delta_ts>2011-11-28 16:54:28 -0800</delta_ts>
            <desc>Fix merge issues for EWS</desc>
            <filename>bug-73253-20111128161228.patch</filename>
            <type>text/plain</type>
            <size>163361</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxMjk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
ZDE2MmQxZDE1YTRkMTczYzU4OThkNDE2Njk4Yjc2ZmE5NTNhOTgxLi5lZmRiYTdlYWEzYTM5ZmY0
ZDk2M2EyODg1NDQyODAzZTAxMDhjNGUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMSBAQAorMjAxMS0xMS0yOCAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CisKKyAg
ICAgICAgQ3JlYXRlIHNrZWxldG9uIGZyYW1ld29yayBmb3Igbm90aWZpY2F0aW9ucyBzdXBwb3J0
IGluIFdLMgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzMyNTMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEwMzU2OTQzPgorCisgICAgICAgICogQ29u
ZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6IFNwbGl0IG91dCBFTkFCTEVfTk9U
SUZJQ0FUSU9OUyBiYXNlZCBvbiBwbGF0Zm9ybS4KKwogMjAxMS0xMS0yOCAgRmlsaXAgUGl6bG8g
IDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIEdldEJ5SWQgc2hvdWxkIG5vdCBhbHdheXMg
c3BlY3VsYXRlIGNlbGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkNDJmZTI2NzYwYzNkY2VhMmFhMTJjYWEyYTI0
ZTBmMDdlNDg4OWQ5Li43NjE3Mjc1YWQ4NjcxMGYzMmU2NmU1OTE0NTUwNDA4NGQ4MThiYjAzIDEw
MDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNTcgQEAKKzIwMTEtMTEtMjggIEpvbiBMZWUgIDxqb25sZWVA
YXBwbGUuY29tPgorCisgICAgICAgIENyZWF0ZSBza2VsZXRvbiBmcmFtZXdvcmsgZm9yIG5vdGlm
aWNhdGlvbnMgc3VwcG9ydCBpbiBXSzIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTczMjUzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMDM1Njk0Mz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTb21lIHJl
ZmFjdG9yaW5nIHdhcyBkb25lIHRvIG1ha2Ugbm90aWZpY2F0aW9ucyBmb2xsb3cgYSBzaW1pbGFy
IHBhdHRlcm4gdG8gb3VyIG90aGVyIGNsaWVudHMsIGxpa2UKKyAgICAgICAgZ2VvbG9jYXRpb24g
YW5kIGNvbnRleHQgbWVudS4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZp
bmVzLnhjY29uZmlnOiBTcGxpdCBvdXQgRU5BQkxFX05PVElGSUNBVElPTlMgYmFzZWQgb24gcGxh
dGZvcm0uCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBBZGRp
bmcgbmV3IE5vdGlmaWNhdGlvbkNvbnRyb2xsZXIgY2xhc3MsIGFuZCBleHBvc2luZworICAgICAg
ICBOb3RpZmljYXRpb24gYW5kIE5vdGlmaWNhdGlvbkNvbnRyb2xsZXIgYXMgcHJpdmF0ZSBoZWFk
ZXJzLgorICAgICAgICAqIFRhcmdldC5wcmk6IERpdHRvLgorICAgICAgICAqIFdlYkNvcmUuZ3lw
aTogRGl0dG8uCisKKyAgICAgICAgKiBub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNvbnRlbnRz
Lmg6IENvbnZlcnRlZCBjbGFzcyB0byBzdHJ1Y3QuIE1lbWJlcnMgbmVlZCB0byBiZSBhY2Nlc3Np
YmxlCisgICAgICAgIGluIG9yZGVyIHRvIGRvIFdLMiBhcmd1bWVudCBlbmNvZGluZy4KKyAgICAg
ICAgKFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNvbnRlbnRzOjpOb3RpZmljYXRpb25Db250ZW50cyk6
CisKKyAgICAgICAgKiBub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHA6IFVwZGF0ZSBzdHls
ZSBvZiBlbnRpcmUgZmlsZS4KKyAgICAgICAgKFdlYkNvcmU6Ok5vdGlmaWNhdGlvbjo6Tm90aWZp
Y2F0aW9uKTogQWRkZWQgZGVmYXVsdCBjb25zdHJ1Y3RvciAoZm9yIFdLMiksIGFuZCBtaW5vciBy
ZWZhY3RvcmluZworICAgICAgICB3aXRoIE5vdGlmaWNhdGlvbkNvbnRlbnRzLgorICAgICAgICAq
IG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmg6IEFkZGVkIHNldCBtZXRob2RzIGZvciBXSzIg
c2VyaWFsaXphdGlvbi4gQWxzbywgdXBkYXRlIGluZGVudGluZy4KKyAgICAgICAgKFdlYkNvcmU6
Ok5vdGlmaWNhdGlvbjo6c2V0SFRNTCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Tm90aWZp
Y2F0aW9uOjpzZXRVUkwpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok5vdGlmaWNhdGlvbjo6
Y29udGVudHMpOiBBZGRlZCBjb25zdCB2ZXJzaW9uIGZvciBXSzIuCisgICAgICAgICogbm90aWZp
Y2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuaDogVXBkYXRlIHN0eWxlLgorCisgICAgICAgICog
bm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25Db250cm9sbGVyLmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpOb3RpZmljYXRpb25Db250cm9sbGVyOjpOb3RpZmljYXRpb25Db250cm9sbGVy
KToKKyAgICAgICAgKFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNvbnRyb2xsZXI6On5Ob3RpZmljYXRp
b25Db250cm9sbGVyKToKKyAgICAgICAgKiBub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNvbnRy
b2xsZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpOb3RpZmljYXRpb25Db250cm9sbGVy
OjpjbGllbnQpOgorICAgICAgICAqIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUHJlc2VudGVy
Lmg6IFRoaXMgYWN0cyBsaWtlIGEgY2xpZW50LCBhbmQgc2hvdWxkIHByb2JhYmx5IGJlIHJlbmFt
ZWQgYXMgc3VjaC4KKyAgICAgICAgUmVtb3ZlZCBpZmRlZiBmb3IgZXhwb3N1cmUgdG8gV0syLgor
ICAgICAgICAoV2ViQ29yZTo6Tm90aWZpY2F0aW9uUHJlc2VudGVyOjp+Tm90aWZpY2F0aW9uUHJl
c2VudGVyKTogTW92ZWQgYXMgcHJvdGVjdGVkIGluc3RlYWQgb2YgcHVibGljLgorCisgICAgICAg
ICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Ojp3ZWJr
aXROb3RpZmljYXRpb25zKTogIFdlIG1vdmUgdGhlIHJlcXVlc3QgZm9yIHRoZSBub3RpZmljYXRp
b24gY2xpZW50IGZyb20gdGhlIGNocm9tZQorICAgICAgICB0byB0aGUgY29udHJvbGxlci4KKyAg
ICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6UGFnZSk6IFRo
ZSBwYWdlIG5vdyBvd25zIGEgbm90aWZpY2F0aW9uIGNvbnRyb2xsZXIuCisgICAgICAgIChXZWJD
b3JlOjpQYWdlOjpQYWdlQ2xpZW50czo6UGFnZUNsaWVudHMpOiBBZGQgbm90aWZpY2F0aW9uIGNs
aWVudCBhcyBhIHBhZ2UgY2xpZW50LgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAgICAo
V2ViQ29yZTo6UGFnZTo6bm90aWZpY2F0aW9uQ29udHJvbGxlcik6IFJldHJpZXZlIHRoZSBub3Rp
ZmljYXRpb24gY29udHJvbGxlci4KKworICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6IFdl
IG1vdmUgdGhlIHJlcXVlc3QgZm9yIHRoZSBub3RpZmljYXRpb24gY2xpZW50IGZyb20gdGhlIGNo
cm9tZSB0byB0aGUgY29udHJvbGxlci4KKyAgICAgICAgUmVtb3ZlIG5vdGlmaWNhdGlvblByZXNl
bnRlcigpLgorICAgICAgICAqIHBhZ2UvQ2hyb21lLmNwcDogUmVtb3ZlIG5vdGlmaWNhdGlvblBy
ZXNlbnRlcigpLgorICAgICAgICAqIHBhZ2UvQ2hyb21lLmg6IFJlbW92ZSBub3RpZmljYXRpb25Q
cmVzZW50ZXIoKS4KKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6IFJlbW92ZSBub3Rp
ZmljYXRpb25QcmVzZW50ZXIoKS4KKwogMjAxMS0xMS0yOCAgQmV0aCBEYWtpbiAgPGJkYWtpbkBh
cHBsZS5jb20+CiAKICAgICAgICAgU3BlY3VsYXRpdmUgQ2hyb21pdW0gYnVpbGQtZml4LgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwppbmRleCBlMmUwNTc2N2QyNDQwNDYzNzlkNDVhZTM2YWVkMDRlMDFlOWZiNTkyLi5iNDI1NTBk
ZTBmMjY4OTA1MTE1NWFmMGRhNTJlZjViMjlmMWZkN2M0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEz
IEBACisyMDExLTExLTI4ICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBD
cmVhdGUgc2tlbGV0b24gZnJhbWV3b3JrIGZvciBub3RpZmljYXRpb25zIHN1cHBvcnQgaW4gV0sy
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzI1Mwor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTAzNTY5NDM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajogQWRkIFdlYk5vdGlmaWNhdGlvbkNsaWVudCBjbGFzcy4KKwogMjAxMS0xMS0yNiAgSm9u
YXRoYW4gRG9uZyAgPGpvbmF0aGFuLmRvbmdAdG9yY2htb2JpbGUuY29tLmNuPgogCiAgICAgICAg
IFtDTWFrZV0gQ2xlYW4gdXAgV2ViIEluc3BlY3RvciB0YXJnZXQgaW4gU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L0NNYWtlTGlzdHNCbGFja0JlcnJ5LnR4dApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZwppbmRleCAyMTNkZmZkYjdlNWYwYjlhZGMxYzMzNTljYjI4YjIwMWUzODZmMWQ2Li4zMjY2ZmNh
M2Y1MzdjZGM0NzVjYjFhNzE0Yjg4MmM1ZjdkNDM5OGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDExLTExLTI4ICBKb24gTGVlICA8am9ubGVlQGFwcGxl
LmNvbT4KKworICAgICAgICBDcmVhdGUgc2tlbGV0b24gZnJhbWV3b3JrIGZvciBub3RpZmljYXRp
b25zIHN1cHBvcnQgaW4gV0syCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03MzI1MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTAzNTY5NDM+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIG5vdGlm
aWNhdGlvblByZXNlbnRlcigpIGZyb20gdGhlIGNocm9tZSBjbGllbnQsIHNpbmNlIGl0IGlzIG5v
dyBtYW5hZ2VkIGJ5CisgICAgICAgIHRoZSBub3RpZmljYXRpb24gY29udHJvbGxlci4KKworICAg
ICAgICAqIHNyYy9DaHJvbWVDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKiBzcmMvQ2hyb21lQ2xp
ZW50SW1wbC5oOgorICAgICAgICAqIHNyYy9XZWJOb3RpZmljYXRpb24uY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJOb3RpZmljYXRpb246OnRpdGxlKTogUmVmYWN0b3Jpbmcgd2l0aCBOb3RpZmlj
YXRpb25Db250ZW50cyBjb252ZXJzaW9uIHRvIHN0cnVjdC4KKyAgICAgICAgKFdlYktpdDo6V2Vi
Tm90aWZpY2F0aW9uOjpib2R5KTogRGl0dG8uCisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OldlYlZpZXdJbXBsKTogU2V0IG5vdGlm
aWNhdGlvbiBjbGllbnQgaW4gd2ViIHZpZXcncyBwYWdlIGNsaWVudHMuCisKIDIwMTEtMTEtMjgg
IFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVu
cmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMDEyNzMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggNzE0ZTJh
OGYwYzM2MmQzMjQzZDZkMzQxNmU5MWZiODU5Nzg4NGMyZi4uNzRkZjgxYmFhMjE1ZThjMzIyMTY4
MjRiODhjMTg1MDI4ZmU5OWI0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisy
MDExLTExLTI4ICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBDcmVhdGUg
c2tlbGV0b24gZnJhbWV3b3JrIGZvciBub3RpZmljYXRpb25zIHN1cHBvcnQgaW4gV0syCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzI1MworICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vMTAzNTY5NDM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2Nv
bmZpZzogU3BsaXQgb3V0IEVOQUJMRV9OT1RJRklDQVRJT05TIGJhc2VkIG9uIHBsYXRmb3JtLgor
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50Lmg6IEFkZGVk
LgorICAgICAgICAoV2ViTm90aWZpY2F0aW9uQ2xpZW50Ojp3ZWJWaWV3KToKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQubW06IEFkZGVkLiBJbXBsZW1lbnRl
ZCBhcyBzdHVicyBmb3Igbm93LgorICAgICAgICAoV2ViTm90aWZpY2F0aW9uQ2xpZW50OjpXZWJO
b3RpZmljYXRpb25DbGllbnQpOgorICAgICAgICAoV2ViTm90aWZpY2F0aW9uQ2xpZW50OjpzaG93
KToKKyAgICAgICAgKFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6Y2FuY2VsKToKKyAgICAgICAgKFdl
Yk5vdGlmaWNhdGlvbkNsaWVudDo6bm90aWZpY2F0aW9uT2JqZWN0RGVzdHJveWVkKToKKyAgICAg
ICAgKFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6cmVxdWVzdFBlcm1pc3Npb24pOgorICAgICAgICAo
V2ViTm90aWZpY2F0aW9uQ2xpZW50OjpjYW5jZWxSZXF1ZXN0c0ZvclBlcm1pc3Npb24pOgorICAg
ICAgICAoV2ViTm90aWZpY2F0aW9uQ2xpZW50OjpjaGVja1Blcm1pc3Npb24pOgorICAgICAgICAq
IFdlYlZpZXcvV2ViVmlldy5tbTogU2V0IFBhZ2VDbGllbnQncyBub3RpZmljYXRpb24gY2xpZW50
IHRvIGFuIGluc3RhbmNlIG9mIHRoaXMgc3R1YmJlZCBjbGFzcy4KKwogMjAxMS0xMS0yOCAgQWRh
bSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+CiAKICAgICAgICAgUHJvcGVybHkgcmV0YWluIHRo
ZSBPUyBYIHZlcnNpb24gc3RyaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IDMyNzYwZDZjMWM4MzRlNDg0
YzFmMTBkYmVhZDY0NzU5MzFhMjA0ODIuLjMzYjEyYmQ3ZWJiMGU1ZGI5ZTA1ZTNmNWU3YmU2YzFh
N2Q5OTE4OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTEtMTEtMjggIEpv
biBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgorCisgICAgICAgIENyZWF0ZSBza2VsZXRvbiBmcmFt
ZXdvcmsgZm9yIG5vdGlmaWNhdGlvbnMgc3VwcG9ydCBpbiBXSzIKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczMjUzCisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8xMDM1Njk0Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIEFwaS9xd2VicGFnZS5jcHA6IEFkZCBub3RpZmljYXRpb24gY2xpZW50IHRvIHBh
Z2VDbGllbnRzLgorICAgICAgICAoUVdlYlBhZ2VQcml2YXRlOjpRV2ViUGFnZVByaXZhdGUpOgor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcDogUmVtb3ZlIG5vdGlm
aWNhdGlvbiBjbGllbnQgZnJvbSBDaHJvbWVDbGllbnQgaW1wbGVtZW50YXRpb24uCisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9Ob3RpZmljYXRpb25QcmVzZW50ZXJDbGllbnRRdC5jcHA6IFJlZmFjdG9yIHdpdGggY2hh
bmdlIG9mIE5vdGlmaWNhdGlvbkNvbnRlbnRzIHRvIHN0cnVjdAorICAgICAgICAoV2ViQ29yZTo6
Tm90aWZpY2F0aW9uV3JhcHBlcjo6dGl0bGUpOgorICAgICAgICAoV2ViQ29yZTo6Tm90aWZpY2F0
aW9uV3JhcHBlcjo6bWVzc2FnZSk6CisgICAgICAgIChXZWJDb3JlOjpOb3RpZmljYXRpb25QcmVz
ZW50ZXJDbGllbnRRdDo6ZGlzcGxheU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpO
b3RpZmljYXRpb25QcmVzZW50ZXJDbGllbnRRdDo6Y2FuY2VsKToKKyAgICAgICAgKFdlYkNvcmU6
Ok5vdGlmaWNhdGlvblByZXNlbnRlckNsaWVudFF0Ojpub3RpZmljYXRpb25DbGlja2VkKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok5vdGlmaWNhdGlvblByZXNlbnRlckNsaWVudFF0OjpkdW1wUmVwbGFj
ZWRJZFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6Tm90aWZpY2F0aW9uUHJlc2VudGVyQ2xpZW50
UXQ6OmR1bXBTaG93VGV4dCk6CisKIDIwMTEtMTEtMjggIFNpbW9uIEhhdXNtYW5uICA8c2ltb24u
aGF1c21hbm5Abm9raWEuY29tPgogCiAgICAgICAgIFtRdF0gQnVpbGQgc3lzdGVtIGZpeGVzIGFn
YWluc3QgVjguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYWFhODA0NmU5MDRmZjY5OWYxNGVjMTY0ZmY2MTIwNDY2
NjkzNGJhNC4uMmMzNDZmZjVlZjgxZTNiM2E3ZDZiYzczODVmM2Q2ZjMyNjllNWFiZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDExMCBAQAorMjAxMS0xMS0yOCAgSm9uIExlZSAgPGpvbmxlZUBhcHBs
ZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIHNrZWxldG9uIGZyYW1ld29yayBmb3Igbm90aWZpY2F0
aW9ucyBzdXBwb3J0IGluIFdLMgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzMyNTMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEwMzU2OTQzPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViS2l0Mi54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBBZGRlZCBjbGFzc2VzIGZvciBub3RpZmljYXRpb24g
c3VwcG9ydC4KKyAgICAgICAgKiB3aW4vV2ViS2l0Mi52Y3Byb2o6IERpdHRvLgorICAgICAgICAq
IENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOiBTcGxpdCBvdXQgRU5BQkxF
X05PVElGSUNBVElPTlMgYmFzZWQgb24gcGxhdGZvcm0uCisgICAgICAgICogRGVyaXZlZFNvdXJj
ZXMubWFrZTogQWRkIE5vdGlmaWNhdGlvbnMgdG8gVlBBVEguCisgICAgICAgICogUGxhdGZvcm0v
Q29yZUlQQy9NZXNzYWdlSUQuaDogTGlzdCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkgYXMg
YSBjbGFzcyB3aXRoIG1lc3NhZ2VzLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0Mi9tZXNzYWdl
cy5weTogTWFyayBXZWJDb3JlOjpOb3RpZmljYXRpb25Db250ZW50cyBhcyBhIHN0cnVjdC4KKwor
ICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS0Jhc2UuaDogTWFwIG9wYXF1ZSB0eXBlcyB0byBOb3Rp
ZmljYXRpb25Qcm92aWRlciwgTm90aWZpY2F0aW9uTWFuYWdlciwgYW5kIE5vdGlmaWNhdGlvbi4K
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0Lmg6IE1hcCBXSyB0eXBlcyB0b05v
dGlmaWNhdGlvblByb3ZpZGVyLCBOb3RpZmljYXRpb25NYW5hZ2VyLCBhbmQgTm90aWZpY2F0aW9u
LgorICAgICAgICAqIFNoYXJlZC9BUElPYmplY3QuaDogQWRkIE5vdGlmaWNhdGlvbiBhbmQgTm90
aWZpY2F0aW9uTWFuYWdlciBhcyBBUElPYmplY3RzLgorICAgICAgICAqIFNoYXJlZC9XZWJDb3Jl
QXJndW1lbnRDb2RlcnMuY3BwOiBBZGRlZCBjb2RlcnMgZm9yIEtVUkwuCisgICAgICAgIChDb3Jl
SVBDOjo6OmVuY29kZSk6CisgICAgICAgIChDb3JlSVBDOjo6OmRlY29kZSk6CisgICAgICAgICog
U2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgorCisgICAgICAgICogVUlQcm9jZXNzL1dl
Yk5vdGlmaWNhdGlvbi5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRp
b246OldlYk5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbjo6
fldlYk5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbjo6ZW5j
b2RlKToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uOjpkZWNvZGUpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJOb3RpZmljYXRpb24uaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6
OldlYk5vdGlmaWNhdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0
aW9uOjp0aXRsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbjo6Ym9keSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbjo6dHlwZSk6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9uLmNwcDogQWRkZWQgYXMgQVBJLgorICAgICAgICAoV0tO
b3RpZmljYXRpb25HZXRUeXBlSUQpOgorICAgICAgICAoV0tOb3RpZmljYXRpb25Db3B5VGl0bGUp
OgorICAgICAgICAoV0tOb3RpZmljYXRpb25Db3B5Qm9keSk6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9DL1dLTm90aWZpY2F0aW9uLmg6IEFkZGVkIGFzIEFQSS4KKworICAgICAgICAqIFdlYlBy
b2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmg6IEFkZGVkLiBDb250
YWlucyBmb3Igbm93IHNob3coKSBhbmQgY2FuY2VsKCkuCisgICAgICAgIFRoZSByZXN0IG9mIHRo
ZSBub3RpZmljYXRpb24gY2xpZW50IG1ldGhvZHMgd2lsbCBiZSBhZGRlZCBsYXRlci4gVGhlc2Ug
dHdvIGZ1bmN0aW9ucyBzZW5kIG1lc3NhZ2VzCisgICAgICAgIHRvIHRoZSBtYW5hZ2VyIHByb3h5
LgorICAgICAgICAqIFdlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5h
Z2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXI6
OldlYk5vdGlmaWNhdGlvbk1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRp
b25NYW5hZ2VyOjp+V2ViTm90aWZpY2F0aW9uTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6Oldl
Yk5vdGlmaWNhdGlvbk1hbmFnZXI6OnNob3cpOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmlj
YXRpb25NYW5hZ2VyOjpjYW5jZWwpOgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYk5vdGlmaWNh
dGlvbk1hbmFnZXJQcm94eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmlj
YXRpb25NYW5hZ2VyUHJveHk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNh
dGlvbk1hbmFnZXJQcm94eTo6V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5KToKKyAgICAgICAg
KFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5Ojp+V2ViTm90aWZpY2F0aW9uTWFu
YWdlclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5
OjppbnZhbGlkYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlclBy
b3h5Ojppbml0aWFsaXplUHJvdmlkZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRp
b25NYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Tm90aWZpY2F0aW9uTWFuYWdlclByb3h5OjpzaG93KToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90
aWZpY2F0aW9uTWFuYWdlclByb3h5OjpjYW5jZWwpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJO
b3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYk5v
dGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6Y2xlYXJDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6
V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5Ojp0eXBlKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0MvV0tOb3RpZmljYXRpb25NYW5hZ2VyLmNwcDogQWRkZWQuCisgICAg
ICAgIChXS05vdGlmaWNhdGlvbk1hbmFnZXJHZXRUeXBlSUQpOgorICAgICAgICAoV0tOb3RpZmlj
YXRpb25NYW5hZ2VyU2V0UHJvdmlkZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS05v
dGlmaWNhdGlvbk1hbmFnZXIuaDogQWRkZWQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29u
dGV4dC5oOiBBZGQgdGhlIG5vdGlmaWNhdGlvbiBtYW5hZ2VyIHRvIHRoZSB3ZWIgY29udGV4dC4K
KyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6bm90aWZpY2F0aW9uTWFuYWdlclByb3h5KTog
QWNjZXNzIHRoZSBtYW5hZ2VyLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6V2ViQ29udGV4dCk6IEJvaWxlcnBsYXRlIGZv
ciBtYW5hZ2Vycy4KKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6fldlYkNvbnRleHQpOiBC
b2lsZXJwbGF0ZSBmb3IgbWFuYWdlcnMuCisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OmRp
c2Nvbm5lY3RQcm9jZXNzKTogQm9pbGVycGxhdGUgZm9yIG1hbmFnZXJzLgorICAgICAgICAoV2Vi
S2l0OjpXZWJDb250ZXh0OjpkaWRSZWNlaXZlTWVzc2FnZSk6IEZvcndhcmQgbWVzc2FnZXMgdG8g
dGhlIG5vdGlmaWNhdGlvbiBtYW5hZ2VyLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0Nv
bnRleHQuY3BwOiBFeHBvc2UgYXMgQVBJLgorICAgICAgICAoV0tDb250ZXh0R2V0Tm90aWZpY2F0
aW9uTWFuYWdlcik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oOiBFeHBv
c2UgYXMgQVBJLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9uUHJv
dmlkZXIuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYk5vdGlmaWNhdGlvblByb3Zp
ZGVyLmg6IEFkZGVkIGFzIEFQSUNsaWVudC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViTm90aWZp
Y2F0aW9uUHJvdmlkZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0
aW9uUHJvdmlkZXI6OnNob3cpOiBGb3J3YXJkIGNhbGwgdG8gdGhlIGNsaWVudC4KKyAgICAgICAg
KFdlYktpdDo6V2ViTm90aWZpY2F0aW9uUHJvdmlkZXI6OmNhbmNlbCk6IEZvcndhcmQgY2FsbCB0
byB0aGUgY2xpZW50LgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKTogRm9y
d2FyZCBtZXNzYWdlcyBmb3Igbm90aWZpY2F0aW9uIG1hbmFnZXIgdG8gdGhlIGNvbnRleHQuCisK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6
IFJlbW92ZSBub3RpZmljYXRpb25QcmVzZW50ZXIoKS4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOiBSZW1vdmUgbm90aWZpY2F0aW9uUHJlc2Vu
dGVyKCkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNh
dGlvbkNsaWVudC5oOiBBZGRlZC4gRm9yd2FyZHMgY2xpZW50IG1ldGhvZHMgdG8gbWFuYWdlci4K
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVu
dC5jcHA6IEFkZGVkLiBNb3N0bHkgc3R1YiBpbXBsZW1lbnRhdGlvbiBmb3Igbm93LgorICAgICAg
ICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25DbGllbnQ6OldlYk5vdGlmaWNhdGlvbkNsaWVudCk6
CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbkNsaWVudDo6fldlYk5vdGlmaWNhdGlv
bkNsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbkNsaWVudDo6c2hvdyk6
CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbkNsaWVudDo6Y2FuY2VsKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uQ2xpZW50Ojpub3RpZmljYXRpb25PYmplY3REZXN0
cm95ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25DbGllbnQ6OnJlcXVlc3RQ
ZXJtaXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uQ2xpZW50OjpjYW5j
ZWxSZXF1ZXN0c0ZvclBlcm1pc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRp
b25DbGllbnQ6OmNoZWNrUGVybWlzc2lvbik6CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oOiBBZGRlZCBXZWJOb3RpZmljYXRpb25DbGllbnQgYXMgb25lIG9mIGl0cyBw
YWdlIGNsaWVudHMuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpXZWJQYWdlKTogU2V0IHRoZSBub3RpZmljYXRpb24g
Y2xpZW50IHRvIFdlYk5vdGlmaWNhdGlvbkNsaWVudC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlByb2Nlc3MuaDogQWRkZWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlci4KKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzczo6bm90aWZpY2F0aW9uTWFuYWdlcik6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6V2ViUHJvY2Vz
cyk6IEluaXRpYWxpemUgbm90aWZpY2F0b24gbWFuYWdlci4KKwogMjAxMS0xMS0yOCAgQnJlbnQg
RnVsZ2hhbSAgPGJmdWxnaGFtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1dpbkNhaXJvXSBVbnJl
dmlld2VkIGJ1aWxkIGNvcnJlY3Rpb25zLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IDUy
ZjAwODZiZDQ4MzcyMjVkM2FkZWUzYTc5YWM5NDQwYmE3Y2FmNzIuLmI2YWMyYWJhMjhlYzZkZGZm
MmE5N2Y1N2FiY2ZkOTc4ZWZmYzI0NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTk0
LDcgKzk0LDEwIEBAIEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTID0gOwogRU5BQkxFX01FVEVSX1RB
RyA9IEVOQUJMRV9NRVRFUl9UQUc7CiBFTkFCTEVfTUhUTUwgPSA7CiBFTkFCTEVfTVVUQVRJT05f
T0JTRVJWRVJTID0gOwotRU5BQkxFX05PVElGSUNBVElPTlMgPSA7CisKK0VOQUJMRV9OT1RJRklD
QVRJT05TID0gJChFTkFCTEVfTk9USUZJQ0FUSU9OU18kKFJFQUxfUExBVEZPUk1fTkFNRSkpOwor
RU5BQkxFX05PVElGSUNBVElPTlNfbWFjb3N4ID0gOworCiBFTkFCTEVfUEFHRV9WSVNJQklMSVRZ
X0FQSSA9IDsKIEVOQUJMRV9QUk9HUkVTU19UQUcgPSBFTkFCTEVfUFJPR1JFU1NfVEFHOwogRU5B
QkxFX1FVT1RBID0gOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMv
RmVhdHVyZURlZmluZXMueGNjb25maWcgYi9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9G
ZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCA1MmYwMDg2YmQ0ODM3MjI1ZDNhZGVlM2E3OWFj
OTQ0MGJhN2NhZjcyLi5iNmFjMmFiYTI4ZWM2ZGRmZjJhOTdmNTdhYmNmZDk3OGVmZmMyNDRhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54
Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5l
cy54Y2NvbmZpZwpAQCAtOTQsNyArOTQsMTAgQEAgRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MgPSA7
CiBFTkFCTEVfTUVURVJfVEFHID0gRU5BQkxFX01FVEVSX1RBRzsKIEVOQUJMRV9NSFRNTCA9IDsK
IEVOQUJMRV9NVVRBVElPTl9PQlNFUlZFUlMgPSA7Ci1FTkFCTEVfTk9USUZJQ0FUSU9OUyA9IDsK
KworRU5BQkxFX05PVElGSUNBVElPTlMgPSAkKEVOQUJMRV9OT1RJRklDQVRJT05TXyQoUkVBTF9Q
TEFURk9STV9OQU1FKSk7CitFTkFCTEVfTk9USUZJQ0FUSU9OU19tYWNvc3ggPSA7CisKIEVOQUJM
RV9QQUdFX1ZJU0lCSUxJVFlfQVBJID0gOwogRU5BQkxFX1BST0dSRVNTX1RBRyA9IEVOQUJMRV9Q
Uk9HUkVTU19UQUc7CiBFTkFCTEVfUVVPVEEgPSA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCAzZDc2Yjg2YWVi
MTBiZGRhOGQ2NTdjZmIwOGZmMDhiNTAzY2MwYjdiLi4wMDMxMTY1MzQxMDJjNjczYmU1NjZjZDgy
N2NlNDY1NTNhZjMwY2JmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTk0NCw2ICs5NDQsNyBAQCBTT1VSQ0VT
ICs9IFwKICAgICBsb2FkZXIvVGhyZWFkYWJsZUxvYWRlci5jcHAgXAogICAgIG5vdGlmaWNhdGlv
bnMvTm90aWZpY2F0aW9uLmNwcCBcCiAgICAgbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50
ZXIuY3BwIFwKKyAgICBub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNvbnRyb2xsZXIuY3BwIFwK
ICAgICBwYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcCBcCiAgICAgcGFnZS9hbmltYXRp
b24vQW5pbWF0aW9uQ29udHJvbGxlci5jcHAgXAogICAgIHBhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0
ZUFuaW1hdGlvbi5jcHAgXApAQCAtMTk4NSw2ICsxOTg2LDcgQEAgSEVBREVSUyArPSBcCiAgICAg
bm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuaCBcCiAgICAgbm90aWZpY2F0aW9ucy9O
b3RpZmljYXRpb25QcmVzZW50ZXIuaCBcCiAgICAgbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25D
b250ZW50cy5oIFwKKyAgICBub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNvbnRyb2xsZXIuaCBc
CiAgICAgcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5oIFwKICAgICBwYWdlL2FuaW1hdGlv
bi9BbmltYXRpb25Db250cm9sbGVyLmggXAogICAgIHBhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFu
aW1hdGlvbi5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCAwMDQ3YTQxMzE0OTI0NDA0NmQ4ZTc5OGQ2
N2Y5Y2M4NmNkY2ViZTcxLi5kOThmNjhlMzYyMzBlY2Y3NTQ1YTRmYTUzOWFiZWRhMzdiMDcwNjY2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpCkBAIC01ODMsNiArNTgzLDcgQEAKICAgICAgICAgICAgICdsb2Fk
ZXIvU3Vic3RpdHV0ZVJlc291cmNlLmgnLAogICAgICAgICAgICAgJ2xvYWRlci9UZXh0UmVzb3Vy
Y2VEZWNvZGVyLmgnLAogICAgICAgICAgICAgJ2xvYWRlci9UaHJlYWRhYmxlTG9hZGVyLmgnLAor
ICAgICAgICAgICAgJ2xvYWRlci9UaHJlYWRhYmxlTG9hZGVyQ2xpZW50LmgnLAogICAgICAgICAg
ICAgJ2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlLmgnLAogICAgICAgICAgICAgJ2xv
YWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oJywKICAgICAgICAgICAgICds
b2FkZXIvYXJjaGl2ZS9BcmNoaXZlLmgnLApAQCAtNjA1LDYgKzYwNiw3IEBACiAgICAgICAgICAg
ICAnbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlQmFzZS5oJywKICAgICAgICAgICAgICdsb2FkZXIv
aWNvbi9JY29uRGF0YWJhc2VDbGllbnQuaCcsCiAgICAgICAgICAgICAnbG9hZGVyL21hYy9Mb2Fk
ZXJOU1VSTEV4dHJhcy5oJywKKyAgICAgICAgICAgICdub3RpZmljYXRpb25zL05vdGlmaWNhdGlv
bkNvbnRlbnRzLmgnLAogICAgICAgICAgICAgJ25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUHJl
c2VudGVyLmgnLAogICAgICAgICAgICAgJ3BhZ2UvQ2hyb21lLmgnLAogICAgICAgICAgICAgJ3Bh
Z2UvQ2hyb21lQ2xpZW50LmgnLApAQCAtMjk0OSw2ICsyOTUxLDcgQEAKICAgICAgICAgICAgICdu
b3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5jcHAnLAogICAgICAgICAgICAgJ25vdGlm
aWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmgnLAogICAgICAgICAgICAgJ25vdGlmaWNhdGlv
bnMvTm90aWZpY2F0aW9uQ29udGVudHMuaCcsCisgICAgICAgICAgICAnbm90aWZpY2F0aW9ucy9O
b3RpZmljYXRpb25Db250cm9sbGVyLmgnLAogICAgICAgICAgICAgJ3BhZ2UvQmFySW5mby5jcHAn
LAogICAgICAgICAgICAgJ3BhZ2UvQmFySW5mby5oJywKICAgICAgICAgICAgICdwYWdlL0Nocm9t
ZS5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDFjODU5ZTA2Nzc1ODlkYWUwZjlhODk2ZmIwNDBlZDZmNTQwYmEwZTQuLmQ2
MmU5ODg4M2JhNWIyNWJkNzgzMTVlMjNiYWU3ZmM2N2U5OTU4YTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIxNCw3ICsyMTQs
NyBAQAogCQkwQjkwNTYxOTBGMjU3OEJFMDA5NUZGNkEgLyogRG9jdW1lbnRUaHJlYWRhYmxlTG9h
ZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBC
OTA1NjE1MEYyNTc4QkUwMDk1RkY2QSAvKiBEb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwICov
OyB9OwogCQkwQjkwNTYxQTBGMjU3OEJGMDA5NUZGNkEgLyogRG9jdW1lbnRUaHJlYWRhYmxlTG9h
ZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwQjkw
NTYxNjBGMjU3OEJFMDA5NUZGNkEgLyogRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoKTsgfTsgfTsKIAkJMEI5MDU2MUIwRjI1NzhCRjAwOTVG
RjZBIC8qIFRocmVhZGFibGVMb2FkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBCOTA1NjE3MEYyNTc4QkUwMDk1RkY2QSAvKiBUaHJlYWRhYmxlTG9h
ZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJ
MEI5MDU2MUMwRjI1NzhCRjAwOTVGRjZBIC8qIFRocmVhZGFibGVMb2FkZXJDbGllbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBCOTA1NjE4MEYyNTc4
QkUwMDk1RkY2QSAvKiBUaHJlYWRhYmxlTG9hZGVyQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoKTsgfTsgfTsKKwkJMEI5MDU2MUMwRjI1NzhCRjAwOTVGRjZBIC8qIFRocmVh
ZGFibGVMb2FkZXJDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBCOTA1NjE4MEYyNTc4QkUwMDk1RkY2QSAvKiBUaHJlYWRhYmxlTG9hZGVyQ2xp
ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
MEI5MDU2MUUwRjI1N0U5MzAwOTVGRjZBIC8qIFRocmVhZGFibGVMb2FkZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEI5MDU2MUQwRjI1N0U5MzAw
OTVGRjZBIC8qIFRocmVhZGFibGVMb2FkZXIuY3BwICovOyB9OwogCQkwQjkwNTZGODBGMjY4NUYz
MDA5NUZGNkEgLyogV29ya2VyVGhyZWFkYWJsZUxvYWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwQjkwNTZGNjBGMjY4NUYzMDA5NUZGNkEgLyog
V29ya2VyVGhyZWFkYWJsZUxvYWRlci5jcHAgKi87IH07CiAJCTBCOTA1NkY5MEYyNjg1RjMwMDk1
RkY2QSAvKiBXb3JrZXJUaHJlYWRhYmxlTG9hZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwQjkwNTZGNzBGMjY4NUYzMDA5NUZGNkEgLyogV29ya2Vy
VGhyZWFkYWJsZUxvYWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKCk7IH07IH07
CkBAIC04MDIsNiArODAyLDkgQEAKIAkJMzEyODhFNzMwRTMwMDVENjAwMzYxOUFFIC8qIFdlYktp
dENTU0tleWZyYW1lUnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMzEyODhFNkYwRTMwMDVENjAwMzYxOUFFIC8qIFdlYktpdENTU0tleWZyYW1lUnVs
ZS5oICovOyB9OwogCQkzMTI4OEU3NDBFMzAwNUQ2MDAzNjE5QUUgLyogV2ViS2l0Q1NTS2V5ZnJh
bWVzUnVsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAzMTI4OEU3MDBFMzAwNUQ2MDAzNjE5QUUgLyogV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5jcHAg
Ki87IH07CiAJCTMxMjg4RTc1MEUzMDA1RDYwMDM2MTlBRSAvKiBXZWJLaXRDU1NLZXlmcmFtZXNS
dWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTI4
OEU3MTBFMzAwNUQ2MDAzNjE5QUUgLyogV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5oICovOyB9Owor
CQkzMTI4Q0E2ODE0NzMzMTUyMDA3NEM3MkEgLyogTm90aWZpY2F0aW9uQ29udHJvbGxlci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTI4Q0E2NzE0
NzMzMTUyMDA3NEM3MkEgLyogTm90aWZpY2F0aW9uQ29udHJvbGxlci5jcHAgKi87IH07CisJCTMx
MjhDQTZCMTQ3MzMxNjMwMDc0QzcyQSAvKiBOb3RpZmljYXRpb25Db250cm9sbGVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTI4Q0E2QTE0NzMzMTYz
MDA3NEM3MkEgLyogTm90aWZpY2F0aW9uQ29udHJvbGxlci5oICovOyB9OworCQkzMTJDMEM0MTE0
NkRDNkNDMDAxNkM5MTEgLyogTm90aWZpY2F0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMzNGNzA0RjBGQjQ5Q0EyMDA4RTEyQTYgLyogTm90aWZp
Y2F0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJMzEzMTNGNjUxNDQzQjM1RjAwNkUyQTkwIC8qIEZpbHRlckVmZmVjdFJlbmRlcmVyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMzEzRjYzMTQ0
M0IzNUUwMDZFMkE5MCAvKiBGaWx0ZXJFZmZlY3RSZW5kZXJlci5jcHAgKi87IH07CiAJCTMxMzEz
RjY2MTQ0M0IzNUYwMDZFMkE5MCAvKiBGaWx0ZXJFZmZlY3RSZW5kZXJlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEzMTNGNjQxNDQzQjM1RTAwNkUy
QTkwIC8qIEZpbHRlckVmZmVjdFJlbmRlcmVyLmggKi87IH07CiAJCTMxMzhBOUU1MTQ3NDQzNDYw
MEIwRUQxMiAvKiBTdHlsZVNoYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMzEzOEE5RTQxNDc0NDM0NjAwQjBFRDEyIC8qIFN0eWxlU2hhZGVyLmgg
Ki87IH07CkBAIC04ODUsNyArODg4LDcgQEAKIAkJMzM1MDNDQzcxMDE3QTFCMTAwM0I0N0UxIC8q
IE5vdGlmaWNhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAzMzUwM0NDNjEwMTdBMUIxMDAzQjQ3RTEgLyogTm90aWZpY2F0aW9uLmNwcCAqLzsg
fTsKIAkJMzM5MENBNTUwRkZDMTU3QjAwOTIxOTYyIC8qIE5vdGlmaWNhdGlvbkNlbnRlci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMzkwQ0E1MTBG
RkMxNTdCMDA5MjE5NjIgLyogTm90aWZpY2F0aW9uQ2VudGVyLmNwcCAqLzsgfTsKIAkJMzM5MENB
NTYwRkZDMTU3QjAwOTIxOTYyIC8qIE5vdGlmaWNhdGlvbkNlbnRlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzM5MENBNTIwRkZDMTU3QjAwOTIxOTYy
IC8qIE5vdGlmaWNhdGlvbkNlbnRlci5oICovOyB9OwotCQkzMzkwQ0E1ODBGRkMxNTdCMDA5MjE5
NjIgLyogTm90aWZpY2F0aW9uQ29udGVudHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDMzOTBDQTU0MEZGQzE1N0IwMDkyMTk2MiAvKiBOb3RpZmljYXRp
b25Db250ZW50cy5oICovOyB9OworCQkzMzkwQ0E1ODBGRkMxNTdCMDA5MjE5NjIgLyogTm90aWZp
Y2F0aW9uQ29udGVudHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDMzOTBDQTU0MEZGQzE1N0IwMDkyMTk2MiAvKiBOb3RpZmljYXRpb25Db250ZW50cy5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTMzOUI1
QjYzMTMxREFBMzIwMEY0OEQwMiAvKiBDb29raWVzU3RyYXRlZ3kuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMzOUI1QjYyMTMxREFBMzIwMEY0OEQwMiAv
KiBDb29raWVzU3RyYXRlZ3kuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQkzM0MwQ0NENDExMkM1RTYyMDBDRTA1N0QgLyogU2VjdXJlVGV4dElucHV0
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMzQzBD
Q0QyMTEyQzVFNjIwMENFMDU3RCAvKiBTZWN1cmVUZXh0SW5wdXQuY3BwICovOyB9OwogCQkzM0Mw
Q0NENTExMkM1RTYyMDBDRTA1N0QgLyogU2VjdXJlVGV4dElucHV0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzM0MwQ0NEMzExMkM1RTYyMDBDRTA1N0Qg
LyogU2VjdXJlVGV4dElucHV0LmggKi87IH07CkBAIC03OTI0LDYgKzc5MjcsOCBAQAogCQkzMTI4
OEU2RjBFMzAwNUQ2MDAzNjE5QUUgLyogV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYktpdENTU0tleWZyYW1lUnVsZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkzMTI4OEU3MDBFMzAwNUQ2MDAzNjE5QUUgLyogV2ViS2l0
Q1NTS2V5ZnJhbWVzUnVsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBXZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMzEyODhFNzEwRTMwMDVENjAwMzYxOUFFIC8qIFdlYktpdENTU0tleWZyYW1lc1J1bGUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMTI4Q0E2NzE0NzMzMTUyMDA3NEM3MkEg
LyogTm90aWZpY2F0aW9uQ29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBOb3RpZmljYXRpb25Db250cm9sbGVyLmNwcDsgcGF0aCA9IG5vdGlmaWNhdGlv
bnMvTm90aWZpY2F0aW9uQ29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTMxMjhDQTZBMTQ3MzMxNjMwMDc0QzcyQSAvKiBOb3RpZmljYXRpb25Db250cm9sbGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE5vdGlmaWNhdGlvbkNvbnRyb2xsZXIu
aDsgcGF0aCA9IG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ29udHJvbGxlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkzMTMxM0Y2MzE0NDNCMzVFMDA2RTJBOTAgLyogRmlsdGVy
RWZmZWN0UmVuZGVyZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
RmlsdGVyRWZmZWN0UmVuZGVyZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkz
MTMxM0Y2NDE0NDNCMzVFMDA2RTJBOTAgLyogRmlsdGVyRWZmZWN0UmVuZGVyZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmlsdGVyRWZmZWN0UmVuZGVyZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzEzOEE5RTQxNDc0NDM0NjAwQjBFRDEyIC8qIFN0eWxl
U2hhZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFN0eWxlU2hhZGVyLmg7
IHBhdGggPSBzdHlsZS9TdHlsZVNoYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTQ3NTUsNiArMTQ3NjAsOCBAQAogCQkJCTMzOTBDQTUzMEZGQzE1N0IwMDkyMTk2MiAvKiBO
b3RpZmljYXRpb25DZW50ZXIuaWRsICovLAogCQkJCTMzOTBDQTU0MEZGQzE1N0IwMDkyMTk2MiAv
KiBOb3RpZmljYXRpb25Db250ZW50cy5oICovLAogCQkJCTMzNTAzQzk5MTAxNzlBNzQwMDNCNDdF
MSAvKiBOb3RpZmljYXRpb25QcmVzZW50ZXIuaCAqLywKKwkJCQkzMTI4Q0E2NzE0NzMzMTUyMDA3
NEM3MkEgLyogTm90aWZpY2F0aW9uQ29udHJvbGxlci5jcHAgKi8sCisJCQkJMzEyOENBNkExNDcz
MzE2MzAwNzRDNzJBIC8qIE5vdGlmaWNhdGlvbkNvbnRyb2xsZXIuaCAqLywKIAkJCSk7CiAJCQlu
YW1lID0gbm90aWZpY2F0aW9uczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yNDcy
Miw2ICsyNDcyOSw4IEBACiAJCQkJMDMzQTZBODMxNDdFMDhBNjAwNTA5QjM2IC8qIEpTSFRNTFBy
b3BlcnRpZXNDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUE1MUI2RTE0ODNCNjE2
MDBBRDI3NTIgLyogSW5zcGVjdG9yQmFzZUFnZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTBE
Qzc2QjE0NzQ3QkFCMDA1RTI0NzEgLyogU3R5bGVHcmlkRGF0YS5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMzEyQzBDNDExNDZEQzZDQzAwMTZDOTExIC8qIE5vdGlmaWNhdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJMzEyOENBNkIxNDczMzE2MzAwNzRDNzJBIC8qIE5vdGlmaWNhdGlvbkNvbnRyb2xs
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHBy
b2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjc1OTUsNiArMjc2MDQsNyBAQAogCQkJCTAzM0E2QTgx
MTQ3RTA4ODYwMDUwOUIzNiAvKiBKU0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk3QUE1MUI2RjE0ODNCNjE2MDBBRDI3NTIgLyogSW5zcGVjdG9yQmFzZUFn
ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUExMERDNzZBMTQ3NDdCQUIwMDVFMjQ3MSAvKiBT
dHlsZUdyaWREYXRhLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTMxMjhDQTY4MTQ3MzMxNTIwMDc0
QzcyQSAvKiBOb3RpZmljYXRpb25Db250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsK
IAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4IDNmOGE4YTZhYjZhMzcxMTY2NjE2ZmFiZjM1
NWRjOWYxNTc2NDFkNzMuLmRmMTVlZGNiZDQ3NGFhYjBmODMxNjlkMDFkMjhiOGE3MzAzNWRmODAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAgLTE4NywxMCArMTg3LDYgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgdm9pZCByZWFjaGVkTWF4QXBwQ2FjaGVTaXplKGludDY0X3Qp
IHsgfQogICAgIHZpcnR1YWwgdm9pZCByZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3Rh
KFNlY3VyaXR5T3JpZ2luKiwgaW50NjRfdCkgeyB9CiAKLSNpZiBFTkFCTEUoTk9USUZJQ0FUSU9O
UykKLSAgICB2aXJ0dWFsIE5vdGlmaWNhdGlvblByZXNlbnRlciogbm90aWZpY2F0aW9uUHJlc2Vu
dGVyKCkgY29uc3QgeyByZXR1cm4gMDsgfQotI2VuZGlmCi0KICNpZiBFTkFCTEUoRElSRUNUT1JZ
X1VQTE9BRCkKICAgICB2aXJ0dWFsIHZvaWQgZW51bWVyYXRlQ2hvc2VuRGlyZWN0b3J5KEZpbGVD
aG9vc2VyKikgeyB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNh
dGlvbnMvTm90aWZpY2F0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90
aWZpY2F0aW9uLmNwcAppbmRleCBkZGRmNzFhN2NmNGViZDg5YTcyMjVkNjVlZjgyZjJlMzMzYzA0
ZjdhLi4zNDQ0MjQyY2I1YzE4ZmYxYjAzNDlhYmI4MTUwNjk4MzlhOGQ3NDMzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwCkBAIC0xLDYgKzEsNiBA
QAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOSwgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC00Nyw2ICs0Nywx
MSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK05vdGlmaWNhdGlvbjo6Tm90aWZpY2F0aW9u
KCkKKyAgICA6IEFjdGl2ZURPTU9iamVjdCgwLCB0aGlzKQoreworfQorCiBOb3RpZmljYXRpb246
Ok5vdGlmaWNhdGlvbihjb25zdCBLVVJMJiB1cmwsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNv
bnRleHQsIEV4Y2VwdGlvbkNvZGUmIGVjLCBQYXNzUmVmUHRyPE5vdGlmaWNhdGlvbkNlbnRlcj4g
cHJvdmlkZXIpCiAgICAgOiBBY3RpdmVET01PYmplY3QoY29udGV4dCwgdGhpcykKICAgICAsIG1f
aXNIVE1MKHRydWUpCkBAIC04MCw3ICs4NSw3IEBAIE5vdGlmaWNhdGlvbjo6Tm90aWZpY2F0aW9u
KGNvbnN0IE5vdGlmaWNhdGlvbkNvbnRlbnRzJiBjb250ZW50cywgU2NyaXB0RXhlY3V0aW9uCiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoIWNvbnRlbnRzLmljb24oKS5pc0VtcHR5
KCkgJiYgIWNvbnRlbnRzLmljb24oKS5pc1ZhbGlkKCkpIHsKKyAgICBpZiAoIWNvbnRlbnRzLmlj
b24uaXNFbXB0eSgpICYmICFjb250ZW50cy5pY29uLmlzVmFsaWQoKSkgewogICAgICAgICBlYyA9
IFNZTlRBWF9FUlI7CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvbm90
aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uaAppbmRleCBhODBlYzc0YmNmYWNiMTI3MjcxZWUwYjA1
ZDc5YzZmNDhmMjE0OTBmLi5iYjQwYTgwOTQ4MTQ4Y2ZhYTkwMGY1NjFjOTI4YTRhNWEyYzcyOWZj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmgKQEAgLTEs
NiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA5LCAyMDExIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTQ5
LDEwMiArNDksMTEwIEBACiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLSAgICBjbGFzcyBOb3RpZmljYXRpb25DZW50ZXI7Ci0gICAgY2xhc3MgUmVzb3Vy
Y2VFcnJvcjsKLSAgICBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOwotICAgIGNsYXNzIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQ7Ci0gICAgY2xhc3MgVGhyZWFkYWJsZUxvYWRlcjsKK2NsYXNzIE5vdGlm
aWNhdGlvbkNlbnRlcjsKK2NsYXNzIFJlc291cmNlRXJyb3I7CitjbGFzcyBSZXNvdXJjZVJlc3Bv
bnNlOworY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKK2NsYXNzIFRocmVhZGFibGVMb2Fk
ZXI7CiAKLSAgICB0eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOwordHlwZWRlZiBpbnQgRXhjZXB0
aW9uQ29kZTsKIAotICAgIGNsYXNzIE5vdGlmaWNhdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPE5v
dGlmaWNhdGlvbj4sIHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHB1YmxpYyBUaHJlYWRhYmxlTG9h
ZGVyQ2xpZW50LCBwdWJsaWMgRXZlbnRUYXJnZXQgewotICAgICAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKLSAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPE5vdGlmaWNh
dGlvbj4gY3JlYXRlKGNvbnN0IEtVUkwmIHVybCwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4dCwgRXhjZXB0aW9uQ29kZSYgZWMsIFBhc3NSZWZQdHI8Tm90aWZpY2F0aW9uQ2VudGVyPiBw
cm92aWRlcik7Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPE5vdGlmaWNhdGlvbj4gY3JlYXRl
KGNvbnN0IE5vdGlmaWNhdGlvbkNvbnRlbnRzJiBjb250ZW50cywgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCwgRXhjZXB0aW9uQ29kZSYgZWMsIFBhc3NSZWZQdHI8Tm90aWZpY2F0aW9u
Q2VudGVyPiBwcm92aWRlcik7Ci0gICAgICAgIAotICAgICAgICB2aXJ0dWFsIH5Ob3RpZmljYXRp
b24oKTsKK2NsYXNzIE5vdGlmaWNhdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPE5vdGlmaWNhdGlv
bj4sIHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHB1YmxpYyBUaHJlYWRhYmxlTG9hZGVyQ2xpZW50
LCBwdWJsaWMgRXZlbnRUYXJnZXQgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVi
bGljOgorICAgIE5vdGlmaWNhdGlvbigpOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPE5vdGlmaWNh
dGlvbj4gY3JlYXRlKGNvbnN0IEtVUkwmLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgRXhjZXB0
aW9uQ29kZSYsIFBhc3NSZWZQdHI8Tm90aWZpY2F0aW9uQ2VudGVyPiBwcm92aWRlcik7CisgICAg
c3RhdGljIFBhc3NSZWZQdHI8Tm90aWZpY2F0aW9uPiBjcmVhdGUoY29uc3QgTm90aWZpY2F0aW9u
Q29udGVudHMmLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgRXhjZXB0aW9uQ29kZSYsIFBhc3NS
ZWZQdHI8Tm90aWZpY2F0aW9uQ2VudGVyPiBwcm92aWRlcik7CisgICAgCisgICAgdmlydHVhbCB+
Tm90aWZpY2F0aW9uKCk7CisKKyAgICB2b2lkIHNob3coKTsKKyAgICB2b2lkIGNhbmNlbCgpOwog
Ci0gICAgICAgIHZvaWQgc2hvdygpOwotICAgICAgICB2b2lkIGNhbmNlbCgpOworICAgIGJvb2wg
aXNIVE1MKCkgY29uc3QgeyByZXR1cm4gbV9pc0hUTUw7IH0KKyAgICB2b2lkIHNldEhUTUwoYm9v
bCBpc0hUTUwpIHsgbV9pc0hUTUwgPSBpc0hUTUw7IH0KKyAgICAKKyAgICBLVVJMIHVybCgpIGNv
bnN0IHsgcmV0dXJuIG1fbm90aWZpY2F0aW9uVVJMOyB9CisgICAgdm9pZCBzZXRVUkwoS1VSTCB1
cmwpIHsgbV9ub3RpZmljYXRpb25VUkwgPSB1cmw7IH0KKyAgICAKKyAgICBLVVJMIGljb25VUkwo
KSB7IHJldHVybiBtX2NvbnRlbnRzLmljb247IH0KICAgICAKLSAgICAgICAgYm9vbCBpc0hUTUwo
KSB7IHJldHVybiBtX2lzSFRNTDsgfQotICAgICAgICBLVVJMIHVybCgpIHsgcmV0dXJuIG1fbm90
aWZpY2F0aW9uVVJMOyB9Ci0gICAgICAgIEtVUkwgaWNvblVSTCgpIHsgcmV0dXJuIG1fY29udGVu
dHMuaWNvbigpOyB9Ci0gICAgICAgIE5vdGlmaWNhdGlvbkNvbnRlbnRzJiBjb250ZW50cygpIHsg
cmV0dXJuIG1fY29udGVudHM7IH0KKyAgICBjb25zdCBOb3RpZmljYXRpb25Db250ZW50cyYgY29u
dGVudHMoKSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnRzOyB9CisgICAgTm90aWZpY2F0aW9uQ29u
dGVudHMmIGNvbnRlbnRzKCkgeyByZXR1cm4gbV9jb250ZW50czsgfQogCi0gICAgICAgIFN0cmlu
ZyBkaXIoKSBjb25zdCB7IHJldHVybiBtX2RpcmVjdGlvbjsgfQotICAgICAgICB2b2lkIHNldERp
cihjb25zdCBTdHJpbmcmIGRpcikgeyBtX2RpcmVjdGlvbiA9IGRpcjsgfQotICAgICAgICBTdHJp
bmcgcmVwbGFjZUlkKCkgY29uc3QgeyByZXR1cm4gbV9yZXBsYWNlSWQ7IH0KLSAgICAgICAgdm9p
ZCBzZXRSZXBsYWNlSWQoY29uc3QgU3RyaW5nJiByZXBsYWNlSWQpIHsgbV9yZXBsYWNlSWQgPSBy
ZXBsYWNlSWQ7IH0KKyAgICBTdHJpbmcgZGlyKCkgY29uc3QgeyByZXR1cm4gbV9kaXJlY3Rpb247
IH0KKyAgICB2b2lkIHNldERpcihjb25zdCBTdHJpbmcmIGRpcikgeyBtX2RpcmVjdGlvbiA9IGRp
cjsgfQorICAgIAorICAgIFN0cmluZyByZXBsYWNlSWQoKSBjb25zdCB7IHJldHVybiBtX3JlcGxh
Y2VJZDsgfQorICAgIHZvaWQgc2V0UmVwbGFjZUlkKGNvbnN0IFN0cmluZyYgcmVwbGFjZUlkKSB7
IG1fcmVwbGFjZUlkID0gcmVwbGFjZUlkOyB9CiAKLSAgICAgICAgVGV4dERpcmVjdGlvbiBkaXJl
Y3Rpb24oKSBjb25zdCB7IHJldHVybiBkaXIoKSA9PSAicnRsIiA/IFJUTCA6IExUUjsgfQorICAg
IFRleHREaXJlY3Rpb24gZGlyZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gZGlyKCkgPT0gInJ0bCIg
PyBSVEwgOiBMVFI7IH0KIAotICAgICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVS
KGRpc3BsYXkpOwotICAgICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGVycm9y
KTsKLSAgICAgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihjbG9zZSk7Ci0gICAg
ICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIoY2xpY2spOworICAgIERFRklORV9B
VFRSSUJVVEVfRVZFTlRfTElTVEVORVIoZGlzcGxheSk7CisgICAgREVGSU5FX0FUVFJJQlVURV9F
VkVOVF9MSVNURU5FUihlcnJvcik7CisgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5F
UihjbG9zZSk7CisgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihjbGljayk7CiAK
LSAgICAgICAgdXNpbmcgUmVmQ291bnRlZDxOb3RpZmljYXRpb24+OjpyZWY7Ci0gICAgICAgIHVz
aW5nIFJlZkNvdW50ZWQ8Tm90aWZpY2F0aW9uPjo6ZGVyZWY7CisgICAgdXNpbmcgUmVmQ291bnRl
ZDxOb3RpZmljYXRpb24+OjpyZWY7CisgICAgdXNpbmcgUmVmQ291bnRlZDxOb3RpZmljYXRpb24+
OjpkZXJlZjsKIAotICAgICAgICAvLyBFdmVudFRhcmdldCBpbnRlcmZhY2UKLSAgICAgICAgdmly
dHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGludGVyZmFjZU5hbWUoKSBjb25zdDsKLSAgICAgICAg
dmlydHVhbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkg
Y29uc3QgeyByZXR1cm4gQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7
IH0KKyAgICAvLyBFdmVudFRhcmdldCBpbnRlcmZhY2UKKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21p
Y1N0cmluZyYgaW50ZXJmYWNlTmFtZSgpIGNvbnN0OworICAgIHZpcnR1YWwgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIEFjdGl2
ZURPTU9iamVjdDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9CiAKLSAgICAgICAgLy8gQWN0
aXZlRE9NT2JqZWN0IGludGVyZmFjZQotICAgICAgICB2aXJ0dWFsIHZvaWQgY29udGV4dERlc3Ry
b3llZCgpOworICAgIC8vIEFjdGl2ZURPTU9iamVjdCBpbnRlcmZhY2UKKyAgICB2aXJ0dWFsIHZv
aWQgY29udGV4dERlc3Ryb3llZCgpOwogCi0gICAgICAgIHZvaWQgc3RvcExvYWRpbmcoKTsKKyAg
ICB2b2lkIHN0b3BMb2FkaW5nKCk7CiAKLSAgICAgICAgU2hhcmVkQnVmZmVyKiBpY29uRGF0YSgp
IHsgcmV0dXJuIG1faWNvbkRhdGEuZ2V0KCk7IH0KLSAgICAgICAgdm9pZCByZWxlYXNlSWNvbkRh
dGEoKSB7IG1faWNvbkRhdGEgPSAwOyB9CisgICAgU2hhcmVkQnVmZmVyKiBpY29uRGF0YSgpIHsg
cmV0dXJuIG1faWNvbkRhdGEuZ2V0KCk7IH0KKyAgICB2b2lkIHJlbGVhc2VJY29uRGF0YSgpIHsg
bV9pY29uRGF0YSA9IDA7IH0KIAotICAgICAgICAvLyBEZXByZWNhdGVkLiBVc2UgZnVuY3Rpb25z
IGZyb20gTm90aWZpY2F0aW9uQ2VudGVyLgotICAgICAgICB2b2lkIGRldGFjaFByZXNlbnRlcigp
IHsgfQorICAgIC8vIERlcHJlY2F0ZWQuIFVzZSBmdW5jdGlvbnMgZnJvbSBOb3RpZmljYXRpb25D
ZW50ZXIuCisgICAgdm9pZCBkZXRhY2hQcmVzZW50ZXIoKSB7IH0KIAotICAgICAgICB2aXJ0dWFs
IHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcsIGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKGNvbnN0IGNoYXIq
IGRhdGEsIGludCBkYXRhTGVuZ3RoKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExv
YWRpbmcodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBkb3VibGUgZmluaXNoVGltZSk7Ci0gICAg
ICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKGNvbnN0IFJlc291cmNlRXJyb3ImKTsKLSAgICAgICAg
dmlydHVhbCB2b2lkIGRpZEZhaWxSZWRpcmVjdENoZWNrKCk7CisgICAgdmlydHVhbCB2b2lkIGRp
ZFJlY2VpdmVSZXNwb25zZSh1bnNpZ25lZCBsb25nLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7
CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKGNvbnN0IGNoYXIqIGRhdGEsIGludCBk
YXRhTGVuZ3RoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyh1bnNpZ25lZCBs
b25nIGlkZW50aWZpZXIsIGRvdWJsZSBmaW5pc2hUaW1lKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlk
RmFpbChjb25zdCBSZXNvdXJjZUVycm9yJik7CisgICAgdmlydHVhbCB2b2lkIGRpZEZhaWxSZWRp
cmVjdENoZWNrKCk7CiAKLSAgICBwcml2YXRlOgotICAgICAgICBOb3RpZmljYXRpb24oY29uc3Qg
S1VSTCYsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBFeGNlcHRpb25Db2RlJiwgUGFzc1JlZlB0
cjxOb3RpZmljYXRpb25DZW50ZXI+KTsKLSAgICAgICAgTm90aWZpY2F0aW9uKGNvbnN0IE5vdGlm
aWNhdGlvbkNvbnRlbnRzJiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIEV4Y2VwdGlvbkNvZGUm
LCBQYXNzUmVmUHRyPE5vdGlmaWNhdGlvbkNlbnRlcj4pOworcHJpdmF0ZToKKyAgICBOb3RpZmlj
YXRpb24oY29uc3QgS1VSTCYsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBFeGNlcHRpb25Db2Rl
JiwgUGFzc1JlZlB0cjxOb3RpZmljYXRpb25DZW50ZXI+KTsKKyAgICBOb3RpZmljYXRpb24oY29u
c3QgTm90aWZpY2F0aW9uQ29udGVudHMmLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgRXhjZXB0
aW9uQ29kZSYsIFBhc3NSZWZQdHI8Tm90aWZpY2F0aW9uQ2VudGVyPik7CiAKLSAgICAgICAgLy8g
RXZlbnRUYXJnZXQgaW50ZXJmYWNlCi0gICAgICAgIHZpcnR1YWwgdm9pZCByZWZFdmVudFRhcmdl
dCgpIHsgcmVmKCk7IH0KLSAgICAgICAgdmlydHVhbCB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSB7
IGRlcmVmKCk7IH0KLSAgICAgICAgdmlydHVhbCBFdmVudFRhcmdldERhdGEqIGV2ZW50VGFyZ2V0
RGF0YSgpOwotICAgICAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0RGF0YSogZW5zdXJlRXZlbnRUYXJn
ZXREYXRhKCk7CisgICAgLy8gRXZlbnRUYXJnZXQgaW50ZXJmYWNlCisgICAgdmlydHVhbCB2b2lk
IHJlZkV2ZW50VGFyZ2V0KCkgeyByZWYoKTsgfQorICAgIHZpcnR1YWwgdm9pZCBkZXJlZkV2ZW50
VGFyZ2V0KCkgeyBkZXJlZigpOyB9CisgICAgdmlydHVhbCBFdmVudFRhcmdldERhdGEqIGV2ZW50
VGFyZ2V0RGF0YSgpOworICAgIHZpcnR1YWwgRXZlbnRUYXJnZXREYXRhKiBlbnN1cmVFdmVudFRh
cmdldERhdGEoKTsKIAotICAgICAgICB2b2lkIHN0YXJ0TG9hZGluZygpOwotICAgICAgICB2b2lk
IGZpbmlzaExvYWRpbmcoKTsKKyAgICB2b2lkIHN0YXJ0TG9hZGluZygpOworICAgIHZvaWQgZmlu
aXNoTG9hZGluZygpOwogCi0gICAgICAgIGJvb2wgbV9pc0hUTUw7Ci0gICAgICAgIEtVUkwgbV9u
b3RpZmljYXRpb25VUkw7Ci0gICAgICAgIE5vdGlmaWNhdGlvbkNvbnRlbnRzIG1fY29udGVudHM7
CisgICAgYm9vbCBtX2lzSFRNTDsKKyAgICBLVVJMIG1fbm90aWZpY2F0aW9uVVJMOworICAgIE5v
dGlmaWNhdGlvbkNvbnRlbnRzIG1fY29udGVudHM7CiAKLSAgICAgICAgU3RyaW5nIG1fZGlyZWN0
aW9uOwotICAgICAgICBTdHJpbmcgbV9yZXBsYWNlSWQ7CisgICAgU3RyaW5nIG1fZGlyZWN0aW9u
OworICAgIFN0cmluZyBtX3JlcGxhY2VJZDsKIAotICAgICAgICBlbnVtIE5vdGlmaWNhdGlvblN0
YXRlIHsKLSAgICAgICAgICAgIElkbGUgPSAwLAotICAgICAgICAgICAgTG9hZGluZyA9IDEsCi0g
ICAgICAgICAgICBTaG93aW5nID0gMiwKLSAgICAgICAgICAgIENhbmNlbGxlZCA9IDMKLSAgICAg
ICAgfTsKKyAgICBlbnVtIE5vdGlmaWNhdGlvblN0YXRlIHsKKyAgICAgICAgSWRsZSA9IDAsCisg
ICAgICAgIExvYWRpbmcgPSAxLAorICAgICAgICBTaG93aW5nID0gMiwKKyAgICAgICAgQ2FuY2Vs
bGVkID0gMworICAgIH07CiAKLSAgICAgICAgTm90aWZpY2F0aW9uU3RhdGUgbV9zdGF0ZTsKKyAg
ICBOb3RpZmljYXRpb25TdGF0ZSBtX3N0YXRlOwogCi0gICAgICAgIFJlZlB0cjxOb3RpZmljYXRp
b25DZW50ZXI+IG1fbm90aWZpY2F0aW9uQ2VudGVyOwotICAgICAgICAKLSAgICAgICAgRXZlbnRU
YXJnZXREYXRhIG1fZXZlbnRUYXJnZXREYXRhOworICAgIFJlZlB0cjxOb3RpZmljYXRpb25DZW50
ZXI+IG1fbm90aWZpY2F0aW9uQ2VudGVyOworICAgIAorICAgIEV2ZW50VGFyZ2V0RGF0YSBtX2V2
ZW50VGFyZ2V0RGF0YTsKIAotICAgICAgICBSZWZQdHI8VGhyZWFkYWJsZUxvYWRlcj4gbV9sb2Fk
ZXI7Ci0gICAgICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IG1faWNvbkRhdGE7Ci0gICAgfTsKKyAg
ICBSZWZQdHI8VGhyZWFkYWJsZUxvYWRlcj4gbV9sb2FkZXI7CisgICAgUmVmUHRyPFNoYXJlZEJ1
ZmZlcj4gbV9pY29uRGF0YTsKK307CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmgKaW5kZXgg
OGU0ZGQ5ODAzZWY3MjM0YjgwZjczMzA2ZjFlNTJjYzZiNzM1OTBkNC4uMjNiMzFlMDMxZjZkNDEz
ZGQ5MjY5YWRhZTk4NjZiMTA0MTMxMjAyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbm90
aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9ub3Rp
ZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5oCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENv
cHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTQzLDQ5ICs0NCw0OSBAQAogI2lmIEVOQUJM
RShOT1RJRklDQVRJT05TKQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci0gICAgCi0gICAgY2xhc3Mg
Tm90aWZpY2F0aW9uUHJlc2VudGVyOwotICAgIGNsYXNzIFZvaWRDYWxsYmFjazsKLQotICAgIGNs
YXNzIE5vdGlmaWNhdGlvbkNlbnRlciA6IHB1YmxpYyBSZWZDb3VudGVkPE5vdGlmaWNhdGlvbkNl
bnRlcj4sIHB1YmxpYyBBY3RpdmVET01PYmplY3QgeyAKLSAgICBwdWJsaWM6Ci0gICAgICAgIHN0
YXRpYyBQYXNzUmVmUHRyPE5vdGlmaWNhdGlvbkNlbnRlcj4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGNvbnRleHQsIE5vdGlmaWNhdGlvblByZXNlbnRlciogcHJlc2VudGVyKSB7IHJl
dHVybiBhZG9wdFJlZihuZXcgTm90aWZpY2F0aW9uQ2VudGVyKGNvbnRleHQsIHByZXNlbnRlcikp
OyB9Ci0KLSAgICAgICAgUGFzc1JlZlB0cjxOb3RpZmljYXRpb24+IGNyZWF0ZUhUTUxOb3RpZmlj
YXRpb24oY29uc3QgU3RyaW5nJiBVUkksIEV4Y2VwdGlvbkNvZGUmIGVjKQotICAgICAgICB7Ci0g
ICAgICAgICAgICBpZiAoIXByZXNlbnRlcigpKSB7Ci0gICAgICAgICAgICAgICAgZWMgPSBJTlZB
TElEX1NUQVRFX0VSUjsKLSAgICAgICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIGlmIChVUkkuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICAgICAgZWMgPSBT
WU5UQVhfRVJSOwotICAgICAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICAgICAgfQotICAg
ICAgICAgICAgcmV0dXJuIE5vdGlmaWNhdGlvbjo6Y3JlYXRlKHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKS0+Y29tcGxldGVVUkwoVVJJKSwgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBlYywgdGhp
cyk7CisKK2NsYXNzIE5vdGlmaWNhdGlvblByZXNlbnRlcjsKK2NsYXNzIFZvaWRDYWxsYmFjazsK
KworY2xhc3MgTm90aWZpY2F0aW9uQ2VudGVyIDogcHVibGljIFJlZkNvdW50ZWQ8Tm90aWZpY2F0
aW9uQ2VudGVyPiwgcHVibGljIEFjdGl2ZURPTU9iamVjdCB7CitwdWJsaWM6CisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8Tm90aWZpY2F0aW9uQ2VudGVyPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCwgTm90aWZpY2F0aW9uUHJlc2VudGVyKiBwcmVzZW50ZXIpIHsgcmV0dXJu
IGFkb3B0UmVmKG5ldyBOb3RpZmljYXRpb25DZW50ZXIoY29udGV4dCwgcHJlc2VudGVyKSk7IH0K
KworICAgIFBhc3NSZWZQdHI8Tm90aWZpY2F0aW9uPiBjcmVhdGVIVE1MTm90aWZpY2F0aW9uKGNv
bnN0IFN0cmluZyYgVVJJLCBFeGNlcHRpb25Db2RlJiBlYykKKyAgICB7CisgICAgICAgIGlmICgh
cHJlc2VudGVyKCkpIHsKKyAgICAgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CisgICAg
ICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgICAgICBpZiAoVVJJLmlzRW1wdHkoKSkg
eworICAgICAgICAgICAgZWMgPSBTWU5UQVhfRVJSOworICAgICAgICAgICAgcmV0dXJuIDA7CiAg
ICAgICAgIH0KKyAgICAgICAgcmV0dXJuIE5vdGlmaWNhdGlvbjo6Y3JlYXRlKHNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKS0+Y29tcGxldGVVUkwoVVJJKSwgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
LCBlYywgdGhpcyk7CisgICAgfQogCi0gICAgICAgIFBhc3NSZWZQdHI8Tm90aWZpY2F0aW9uPiBj
cmVhdGVOb3RpZmljYXRpb24oY29uc3QgU3RyaW5nJiBpY29uVVJJLCBjb25zdCBTdHJpbmcmIHRp
dGxlLCBjb25zdCBTdHJpbmcmIGJvZHksIEV4Y2VwdGlvbkNvZGUmIGVjKQotICAgICAgICB7Ci0g
ICAgICAgICAgICBpZiAoIXByZXNlbnRlcigpKSB7Ci0gICAgICAgICAgICAgICAgZWMgPSBJTlZB
TElEX1NUQVRFX0VSUjsKLSAgICAgICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIE5vdGlmaWNhdGlvbkNvbnRlbnRzIGNvbnRlbnRzKGljb25VUkkuaXNFbXB0
eSgpID8gS1VSTCgpIDogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5jb21wbGV0ZVVSTChpY29u
VVJJKSwgdGl0bGUsIGJvZHkpOwotICAgICAgICAgICAgcmV0dXJuIE5vdGlmaWNhdGlvbjo6Y3Jl
YXRlKGNvbnRlbnRzLCBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIGVjLCB0aGlzKTsKKyAgICBQ
YXNzUmVmUHRyPE5vdGlmaWNhdGlvbj4gY3JlYXRlTm90aWZpY2F0aW9uKGNvbnN0IFN0cmluZyYg
aWNvblVSSSwgY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiBib2R5LCBFeGNlcHRp
b25Db2RlJiBlYykKKyAgICB7CisgICAgICAgIGlmICghcHJlc2VudGVyKCkpIHsKKyAgICAgICAg
ICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CisgICAgICAgICAgICByZXR1cm4gMDsKICAgICAg
ICAgfQorICAgICAgICBOb3RpZmljYXRpb25Db250ZW50cyBjb250ZW50cyhpY29uVVJJLmlzRW1w
dHkoKSA/IEtVUkwoKSA6IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+Y29tcGxldGVVUkwoaWNv
blVSSSksIHRpdGxlLCBib2R5KTsKKyAgICAgICAgcmV0dXJuIE5vdGlmaWNhdGlvbjo6Y3JlYXRl
KGNvbnRlbnRzLCBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIGVjLCB0aGlzKTsKKyAgICB9CiAK
LSAgICAgICAgTm90aWZpY2F0aW9uUHJlc2VudGVyKiBwcmVzZW50ZXIoKSBjb25zdCB7IHJldHVy
biBtX25vdGlmaWNhdGlvblByZXNlbnRlcjsgfQorICAgIE5vdGlmaWNhdGlvblByZXNlbnRlciog
cHJlc2VudGVyKCkgY29uc3QgeyByZXR1cm4gbV9ub3RpZmljYXRpb25QcmVzZW50ZXI7IH0KIAot
ICAgICAgICBpbnQgY2hlY2tQZXJtaXNzaW9uKCk7Ci0gICAgICAgIHZvaWQgcmVxdWVzdFBlcm1p
c3Npb24oUGFzc1JlZlB0cjxWb2lkQ2FsbGJhY2s+IGNhbGxiYWNrKTsKKyAgICBpbnQgY2hlY2tQ
ZXJtaXNzaW9uKCk7CisgICAgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihQYXNzUmVmUHRyPFZvaWRD
YWxsYmFjaz4pOwogCi0gICAgICAgIHZvaWQgZGlzY29ubmVjdEZyYW1lKCk7CisgICAgdm9pZCBk
aXNjb25uZWN0RnJhbWUoKTsKIAotICAgIHByaXZhdGU6Ci0gICAgICAgIE5vdGlmaWNhdGlvbkNl
bnRlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgTm90aWZpY2F0aW9uUHJlc2VudGVyKik7Citw
cml2YXRlOgorICAgIE5vdGlmaWNhdGlvbkNlbnRlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0Kiwg
Tm90aWZpY2F0aW9uUHJlc2VudGVyKik7CiAKLSAgICAgICAgTm90aWZpY2F0aW9uUHJlc2VudGVy
KiBtX25vdGlmaWNhdGlvblByZXNlbnRlcjsKLSAgICB9OworICAgIE5vdGlmaWNhdGlvblByZXNl
bnRlciogbV9ub3RpZmljYXRpb25QcmVzZW50ZXI7Cit9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0
aW9uQ29udGVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9u
Q29udGVudHMuaAppbmRleCA1ODA3ZjMwM2Y5NTU5YTUwMTRiNzUwNTVhNmE1YTQxMDQzYzI1YTUz
Li4xMTg2YzFjNzgyM2YyYTA1MDI0MGI3NjAwNjU1Njk1MmJhNDI5MTczIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNvbnRlbnRzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25Db250ZW50cy5oCkBAIC0x
LDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTMzLDI1
ICszNCwyNCBAQAogCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCiAKKyNpbmNsdWRlICJLVVJM
LmgiCisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotICAgIGNsYXNzIE5vdGlmaWNhdGlvbkNvbnRlbnRzIHsgCi0gICAgcHVibGljOgotICAg
ICAgICBOb3RpZmljYXRpb25Db250ZW50cygpIHt9Ci0gICAgICAgIE5vdGlmaWNhdGlvbkNvbnRl
bnRzKGNvbnN0IEtVUkwmIGljb25VcmwsIGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmlu
ZyYgYm9keSkKLSAgICAgICAgICAgIDogbV9pY29uKGljb25VcmwpCi0gICAgICAgICAgICAsIG1f
dGl0bGUodGl0bGUpCi0gICAgICAgICAgICAsIG1fYm9keShib2R5KSB7fQotCi0gICAgICAgIEtV
UkwgaWNvbigpIGNvbnN0IHsgcmV0dXJuIG1faWNvbjsgfQotICAgICAgICBTdHJpbmcgdGl0bGUo
KSBjb25zdCB7IHJldHVybiBtX3RpdGxlOyB9Ci0gICAgICAgIFN0cmluZyBib2R5KCkgY29uc3Qg
eyByZXR1cm4gbV9ib2R5OyB9Ci0KLSAgICBwcml2YXRlOgotICAgICAgICBLVVJMIG1faWNvbjsK
LSAgICAgICAgU3RyaW5nIG1fdGl0bGU7Ci0gICAgICAgIFN0cmluZyBtX2JvZHk7Ci0gICAgfTsK
K3N0cnVjdCBOb3RpZmljYXRpb25Db250ZW50cyB7IAorcHVibGljOgorICAgIE5vdGlmaWNhdGlv
bkNvbnRlbnRzKCkgeyB9CisgICAgTm90aWZpY2F0aW9uQ29udGVudHMoY29uc3QgS1VSTCYgaWNv
blVybCwgY29uc3QgU3RyaW5nJiBub3RpZmljYXRpb25UaXRsZSwgY29uc3QgU3RyaW5nJiBub3Rp
ZmljYXRpb25Cb2R5KQorICAgICAgICA6IGljb24oaWNvblVybCkKKyAgICAgICAgLCB0aXRsZShu
b3RpZmljYXRpb25UaXRsZSkKKyAgICAgICAgLCBib2R5KG5vdGlmaWNhdGlvbkJvZHkpCisgICAg
eyB9CisKKyAgICBLVVJMIGljb247CisgICAgU3RyaW5nIHRpdGxlOworICAgIFN0cmluZyBib2R5
OworfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25Db250cm9sbGVyLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5hYzgwYTUyMDlkODBhMGQxMzgxODYyYmQ4MGY2MjIwY2MyNzhkNmQ4Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25Db250cm9sbGVy
LmNwcApAQCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIk5vdGlmaWNhdGlvbkNvbnRyb2xsZXIuaCIKKworI2lmIEVOQUJMRShOT1RJRklDQVRJ
T05TKQorCisjaW5jbHVkZSAiTm90aWZpY2F0aW9uUHJlc2VudGVyLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworTm90aWZpY2F0aW9uQ29udHJvbGxlcjo6Tm90aWZpY2F0aW9uQ29udHJvbGxl
cihQYWdlKiBwYWdlLCBOb3RpZmljYXRpb25QcmVzZW50ZXIqIGNsaWVudCkKKyAgICA6IG1fcGFn
ZShwYWdlKQorICAgICwgbV9jbGllbnQoY2xpZW50KQoreworfQorCitOb3RpZmljYXRpb25Db250
cm9sbGVyOjp+Tm90aWZpY2F0aW9uQ29udHJvbGxlcigpCit7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShOT1RJRklDQVRJT05TKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25Db250cm9sbGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNvbnRyb2xsZXIuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4zZmFlYmNmMjIyZTlkYjJmZDU5NWRkZDUzMmJlNWJhNmRkNjExNThiCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25Db250
cm9sbGVyLmgKQEAgLTAsMCArMSw1NSBAQAorLyoKKyogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyoKKyogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
KiBhcmUgbWV0OgorKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyoKKyogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCisqLworCisjaWZuZGVmIE5vdGlmaWNhdGlvbkNvbnRyb2xsZXJfaAorI2RlZmluZSBO
b3RpZmljYXRpb25Db250cm9sbGVyX2gKKworI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQorCisj
aW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgTm90aWZpY2F0aW9uUHJlc2VudGVyOworY2xhc3MgUGFnZTsKKworY2xhc3MgTm90aWZpY2F0
aW9uQ29udHJvbGxlciB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTm90aWZpY2F0aW9uQ29u
dHJvbGxlcik7CitwdWJsaWM6CisgICAgTm90aWZpY2F0aW9uQ29udHJvbGxlcihQYWdlKiwgTm90
aWZpY2F0aW9uUHJlc2VudGVyKik7CisgICAgfk5vdGlmaWNhdGlvbkNvbnRyb2xsZXIoKTsKKyAg
ICAKKyAgICBOb3RpZmljYXRpb25QcmVzZW50ZXIqIGNsaWVudCgpIHsgcmV0dXJuIG1fY2xpZW50
OyB9CisgICAgCitwcml2YXRlOgorICAgIFBhZ2UqIG1fcGFnZTsKKyAgICBOb3RpZmljYXRpb25Q
cmVzZW50ZXIqIG1fY2xpZW50OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gRU5BQkxFKE5PVElGSUNBVElPTlMpCisKKyNlbmRpZiAvLyBOb3RpZmljYXRpb25Db250
cm9sbGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZp
Y2F0aW9uUHJlc2VudGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNh
dGlvblByZXNlbnRlci5oCmluZGV4IDk2MDIxOTk5OTA2ZThlZTEwM2ZhNjRjYWYxM2NiNmRjZTY3
M2RmNWMuLjJjZmUwNjdiNWRkODNmOTc1OGZlZGYzZTIyMmQ0NGZmZWI1MTdmZTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUHJlc2VudGVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QcmVzZW50ZXIu
aApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBA
IC0zNCw1MSArMzUsNDggQEAKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUg
IlZvaWRDYWxsYmFjay5oIgogCi0jaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCi0KIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotICAgIGNsYXNzIERvY3VtZW50OwotICAgIGNsYXNzIE5vdGlmaWNhdGlv
bjsKLSAgICBjbGFzcyBLVVJMOwotICAgIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7Citj
bGFzcyBEb2N1bWVudDsKK2NsYXNzIE5vdGlmaWNhdGlvbjsKK2NsYXNzIEtVUkw7CitjbGFzcyBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0OwogCi0gICAgY2xhc3MgTm90aWZpY2F0aW9uUHJlc2VudGVy
IHsKK2NsYXNzIE5vdGlmaWNhdGlvblByZXNlbnRlciB7CiAKLSAgICBwdWJsaWM6Ci0gICAgICAg
IGVudW0gUGVybWlzc2lvbiB7Ci0gICAgICAgICAgICBQZXJtaXNzaW9uQWxsb3dlZCwgLy8gVXNl
ciBoYXMgYWxsb3dlZCBub3RpZmljYXRpb25zCi0gICAgICAgICAgICBQZXJtaXNzaW9uTm90QWxs
b3dlZCwgLy8gVXNlciBoYXMgbm90IHlldCBhbGxvd2VkCi0gICAgICAgICAgICBQZXJtaXNzaW9u
RGVuaWVkIC8vIFVzZXIgaGFzIGV4cGxpY2l0bHkgZGVuaWVkIHBlcm1pc3Npb24KLSAgICAgICAg
fTsKK3B1YmxpYzoKKyAgICBlbnVtIFBlcm1pc3Npb24geworICAgICAgICBQZXJtaXNzaW9uQWxs
b3dlZCwgLy8gVXNlciBoYXMgYWxsb3dlZCBub3RpZmljYXRpb25zCisgICAgICAgIFBlcm1pc3Np
b25Ob3RBbGxvd2VkLCAvLyBVc2VyIGhhcyBub3QgeWV0IGFsbG93ZWQKKyAgICAgICAgUGVybWlz
c2lvbkRlbmllZCAvLyBVc2VyIGhhcyBleHBsaWNpdGx5IGRlbmllZCBwZXJtaXNzaW9uCisgICAg
fTsKIAotICAgICAgICB2aXJ0dWFsIH5Ob3RpZmljYXRpb25QcmVzZW50ZXIoKSB7fQorICAgIC8v
IFJlcXVlc3RzIHRoYXQgYSBub3RpZmljYXRpb24gYmUgc2hvd24uCisgICAgdmlydHVhbCBib29s
IHNob3coTm90aWZpY2F0aW9uKikgPSAwOwogCi0gICAgICAgIC8vIFJlcXVlc3RzIHRoYXQgYSBu
b3RpZmljYXRpb24gYmUgc2hvd24uCi0gICAgICAgIHZpcnR1YWwgYm9vbCBzaG93KE5vdGlmaWNh
dGlvbiopID0gMDsKKyAgICAvLyBSZXF1ZXN0cyB0aGF0IGEgbm90aWZpY2F0aW9uIHRoYXQgaGFz
IGFscmVhZHkgYmVlbiBzaG93biBiZSBjYW5jZWxlZC4KKyAgICB2aXJ0dWFsIHZvaWQgY2FuY2Vs
KE5vdGlmaWNhdGlvbiopID0gMDsKIAotICAgICAgICAvLyBSZXF1ZXN0cyB0aGF0IGEgbm90aWZp
Y2F0aW9uIHRoYXQgaGFzIGFscmVhZHkgYmVlbiBzaG93biBiZSBjYW5jZWxlZC4KLSAgICAgICAg
dmlydHVhbCB2b2lkIGNhbmNlbChOb3RpZmljYXRpb24qKSA9IDA7CisgICAgLy8gSW5mb3JtcyB0
aGUgcHJlc2VudGVyIHRoYXQgYSBOb3RpZmljYXRpb24gb2JqZWN0IGhhcyBiZWVuIGRlc3Ryb3ll
ZAorICAgIC8vIChzdWNoIGFzIGJ5IGEgcGFnZSB0cmFuc2l0aW9uKS4gVGhlIHByZXNlbnRlciBt
YXkgY29udGludWUgc2hvd2luZworICAgIC8vIHRoZSBub3RpZmljYXRpb24sIGJ1dCBtdXN0IG5v
dCBhdHRlbXB0IHRvIGNhbGwgdGhlIGV2ZW50IGhhbmRsZXJzLgorICAgIHZpcnR1YWwgdm9pZCBu
b3RpZmljYXRpb25PYmplY3REZXN0cm95ZWQoTm90aWZpY2F0aW9uKikgPSAwOwogCi0gICAgICAg
IC8vIEluZm9ybXMgdGhlIHByZXNlbnRlciB0aGF0IGEgTm90aWZpY2F0aW9uIG9iamVjdCBoYXMg
YmVlbiBkZXN0cm95ZWQKLSAgICAgICAgLy8gKHN1Y2ggYXMgYnkgYSBwYWdlIHRyYW5zaXRpb24p
LiAgVGhlIHByZXNlbnRlciBtYXkgY29udGludWUgc2hvd2luZwotICAgICAgICAvLyB0aGUgbm90
aWZpY2F0aW9uLCBidXQgbXVzdCBub3QgYXR0ZW1wdCB0byBjYWxsIHRoZSBldmVudCBoYW5kbGVy
cy4KLSAgICAgICAgdmlydHVhbCB2b2lkIG5vdGlmaWNhdGlvbk9iamVjdERlc3Ryb3llZChOb3Rp
ZmljYXRpb24qKSA9IDA7CisgICAgLy8gUmVxdWVzdHMgdXNlciBwZXJtaXNzaW9uIHRvIHNob3cg
ZGVza3RvcCBub3RpZmljYXRpb25zIGZyb20gYSBwYXJ0aWN1bGFyCisgICAgLy8gc2NyaXB0IGNv
bnRleHQuIFRoZSBjYWxsYmFjayBwYXJhbWV0ZXIgc2hvdWxkIGJlIHJ1biB3aGVuIHRoZSB1c2Vy
IGhhcworICAgIC8vIG1hZGUgYSBkZWNpc2lvbi4KKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFBl
cm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8Vm9pZENhbGxiYWNr
PikgPSAwOwogCi0gICAgICAgIC8vIFJlcXVlc3RzIHVzZXIgcGVybWlzc2lvbiB0byBzaG93IGRl
c2t0b3Agbm90aWZpY2F0aW9ucyBmcm9tIGEgcGFydGljdWxhcgotICAgICAgICAvLyBzY3JpcHQg
Y29udGV4dC4gVGhlIGNhbGxiYWNrIHBhcmFtZXRlciBzaG91bGQgYmUgcnVuIHdoZW4gdGhlIHVz
ZXIgaGFzCi0gICAgICAgIC8vIG1hZGUgYSBkZWNpc2lvbi4KLSAgICAgICAgdmlydHVhbCB2b2lk
IHJlcXVlc3RQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPFZv
aWRDYWxsYmFjaz4pID0gMDsKKyAgICAvLyBDYW5jZWwgYWxsIG91dHN0YW5kaW5nIHJlcXVlc3Rz
IGZvciB0aGUgU2NyaXB0RXhlY3V0aW9uQ29udGV4dAorICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxS
ZXF1ZXN0c0ZvclBlcm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopID0gMDsKIAotICAg
ICAgICAvLyBDYW5jZWwgYWxsIG91dHN0YW5kaW5nIHJlcXVlc3RzIGZvciB0aGUgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dAotICAgICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsUmVxdWVzdHNGb3JQZXJt
aXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKSA9IDA7CisgICAgLy8gQ2hlY2tzIHRoZSBj
dXJyZW50IGxldmVsIG9mIHBlcm1pc3Npb24uCisgICAgdmlydHVhbCBQZXJtaXNzaW9uIGNoZWNr
UGVybWlzc2lvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KikgPSAwOwogCi0gICAgICAgIC8vIENo
ZWNrcyB0aGUgY3VycmVudCBsZXZlbCBvZiBwZXJtaXNzaW9uLgotICAgICAgICB2aXJ0dWFsIFBl
cm1pc3Npb24gY2hlY2tQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKSA9IDA7Ci0g
ICAgfTsKK3Byb3RlY3RlZDoKKyAgICB2aXJ0dWFsIH5Ob3RpZmljYXRpb25QcmVzZW50ZXIoKSB7
IH0KK307CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vIEVOQUJMRShOT1RJ
RklDQVRJT05TKQotCiAjZW5kaWYgLy8gTm90aWZpY2F0aW9uUHJlc2VudGVyX2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Q2hyb21lLmNwcAppbmRleCA0ZDkyYTViY2IyN2FhZjg1Yjc2YTM1Y2RmYzUyOTliNGE0ZGQyNzFi
Li45NGNkZDljNWZhYWUzYmU5NDRiZTkxOTE2YmE2OGFmYjY0ODE0YTkwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9D
aHJvbWUuY3BwCkBAIC01MDgsMTMgKzUwOCw2IEBAIHZvaWQgQ2hyb21lOjpzY2hlZHVsZUFuaW1h
dGlvbigpCiB9CiAjZW5kaWYKIAotI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQotTm90aWZpY2F0
aW9uUHJlc2VudGVyKiBDaHJvbWU6Om5vdGlmaWNhdGlvblByZXNlbnRlcigpIGNvbnN0Ci17Ci0g
ICAgcmV0dXJuIG1fY2xpZW50LT5ub3RpZmljYXRpb25QcmVzZW50ZXIoKTsKLX0KLSNlbmRpZgot
CiAvLyAtLS0tLS0tLQogCiAjaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hy
b21lLmgKaW5kZXggODY0MzI2YzcxMzVlMmI0ZjlhYTVkMGNlNjMxNDIxMTQ3OTU2NmU4Ni4uYjNm
MDg3NDBmOTQ3NDkyOTMyMjA4ODNmZGEyZmRkYjU5YmU4NjU3OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9DaHJvbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5o
CkBAIC01MSw5ICs1MSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBQYWdlOwog
ICAgIGNsYXNzIFBvcHVwTWVudTsKICAgICBjbGFzcyBQb3B1cE1lbnVDbGllbnQ7Ci0jaWYgRU5B
QkxFKE5PVElGSUNBVElPTlMpCi0gICAgY2xhc3MgTm90aWZpY2F0aW9uUHJlc2VudGVyOwotI2Vu
ZGlmCiAgICAgY2xhc3MgU2VhcmNoUG9wdXBNZW51OwogCiAgICAgc3RydWN0IEZyYW1lTG9hZFJl
cXVlc3Q7CkBAIC0xNzUsMTAgKzE3Miw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAg
dm9pZCBmb2N1c05TVmlldyhOU1ZpZXcqKTsKICNlbmRpZgogCi0jaWYgRU5BQkxFKE5PVElGSUNB
VElPTlMpCi0gICAgICAgIE5vdGlmaWNhdGlvblByZXNlbnRlciogbm90aWZpY2F0aW9uUHJlc2Vu
dGVyKCkgY29uc3Q7IAotI2VuZGlmCi0KICAgICAgICAgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0Rp
cmVjdGlvbklzTmF0dXJhbCgpOwogICAgICAgICBib29sIHNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xs
b3dzTWVudVdyaXRpbmdEaXJlY3Rpb24oKTsKICAgICAgICAgUGFzc1JlZlB0cjxQb3B1cE1lbnU+
IGNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0No
cm9tZUNsaWVudC5oCmluZGV4IGI2ZmRhNjgxZjZmZWMyZjNkZTFmNTg0NTAzMzNiZWNlNWE3MmVm
NDkuLjBiMWZkNTVmMjZjYjFjYzNjNDVhN2ExN2MwODEyOGIyZGU3YjBhN2QgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9DaHJvbWVDbGllbnQuaApAQCAtNzUsMTAgKzc1LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgIGNsYXNzIENvbG9yQ2hvb3NlcjsKICNlbmRpZgogCi0jaWYgRU5BQkxFKE5PVElGSUNB
VElPTlMpCi0gICAgY2xhc3MgTm90aWZpY2F0aW9uUHJlc2VudGVyOwotI2VuZGlmCi0KICAgICBj
bGFzcyBDaHJvbWVDbGllbnQgewogICAgIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB2b2lkIGNo
cm9tZURlc3Ryb3llZCgpID0gMDsKQEAgLTIwNCwxMCArMjAwLDYgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICB2aXJ0dWFsIHZvaWQgZGFzaGJvYXJkUmVnaW9uc0NoYW5nZWQoKTsKICNl
bmRpZgogCi0jaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCi0gICAgICAgIHZpcnR1YWwgTm90aWZp
Y2F0aW9uUHJlc2VudGVyKiBub3RpZmljYXRpb25QcmVzZW50ZXIoKSBjb25zdCA9IDA7Ci0jZW5k
aWYKLQogICAgICAgICB2aXJ0dWFsIHZvaWQgcG9wdWxhdGVWaXNpdGVkTGlua3MoKTsKIAogICAg
ICAgICB2aXJ0dWFsIEZsb2F0UmVjdCBjdXN0b21IaWdobGlnaHRSZWN0KE5vZGUqLCBjb25zdCBB
dG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IEZsb2F0UmVjdCYgbGluZVJlY3QpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuY3BwCmluZGV4IDk1OTllOGQ2YmEzYmM2NDY5OWI4YzVhNzhjNDM0ZTNiNzcz
NWMwNTUuLjY5NDg4YzlhNDBhYzE2Yjg1MzkzMGZkNWJlYjhjNWY3Yzg1ZjU4NGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTc0LDYgKzc0LDcgQEAKICNpbmNsdWRlICJNZXNzYWdl
RXZlbnQuaCIKICNpbmNsdWRlICJOYXZpZ2F0b3IuaCIKICNpbmNsdWRlICJOb3RpZmljYXRpb25D
ZW50ZXIuaCIKKyNpbmNsdWRlICJOb3RpZmljYXRpb25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAi
UGFnZS5oIgogI2luY2x1ZGUgIlBhZ2VHcm91cC5oIgogI2luY2x1ZGUgIlBhZ2VUcmFuc2l0aW9u
RXZlbnQuaCIKQEAgLTc1MCw3ICs3NTEsNyBAQCBOb3RpZmljYXRpb25DZW50ZXIqIERPTVdpbmRv
dzo6d2Via2l0Tm90aWZpY2F0aW9ucygpIGNvbnN0CiAgICAgaWYgKCFwYWdlKQogICAgICAgICBy
ZXR1cm4gMDsKIAotICAgIE5vdGlmaWNhdGlvblByZXNlbnRlciogcHJvdmlkZXIgPSBwYWdlLT5j
aHJvbWUoKS0+bm90aWZpY2F0aW9uUHJlc2VudGVyKCk7CisgICAgTm90aWZpY2F0aW9uUHJlc2Vu
dGVyKiBwcm92aWRlciA9IHBhZ2UtPm5vdGlmaWNhdGlvbkNvbnRyb2xsZXIoKS0+Y2xpZW50KCk7
CiAgICAgaWYgKHByb3ZpZGVyKSAKICAgICAgICAgbV9ub3RpZmljYXRpb25zID0gTm90aWZpY2F0
aW9uQ2VudGVyOjpjcmVhdGUoZG9jdW1lbnQsIHByb3ZpZGVyKTsgICAgCiAgICAgICAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuY3BwCmluZGV4IDBmNmMyYzM0MjY2MDlhNjc5ODExZjIwOThiNWFmMTgzOWY2M2M2N2Yu
LjQ2NTk5ZmM0YzNmY2FiOTBlYjQ5Y2IwMjhjYjUwNmNjMjFkNGZhYjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmNwcApAQCAtNTMsNiArNTMsOCBAQAogI2luY2x1ZGUgIk1lZGlhQ2FuU3RhcnRMaXN0ZW5lci5o
IgogI2luY2x1ZGUgIk5hdmlnYXRvci5oIgogI2luY2x1ZGUgIk5ldHdvcmtTdGF0ZU5vdGlmaWVy
LmgiCisjaW5jbHVkZSAiTm90aWZpY2F0aW9uQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIk5vdGlm
aWNhdGlvblByZXNlbnRlci5oIgogI2luY2x1ZGUgIlBhZ2VHcm91cC5oIgogI2luY2x1ZGUgIlBs
dWdpbkRhdGEuaCIKICNpbmNsdWRlICJQbHVnaW5WaWV3LmgiCkBAIC0xMzcsNiArMTM5LDkgQEAg
UGFnZTo6UGFnZShQYWdlQ2xpZW50cyYgcGFnZUNsaWVudHMpCiAgICAgLCBtX2RldmljZU1vdGlv
bkNvbnRyb2xsZXIoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6ZGV2aWNlTW90aW9uRW5hYmxlZCgp
ID8gYWRvcHRQdHIobmV3IERldmljZU1vdGlvbkNvbnRyb2xsZXIocGFnZUNsaWVudHMuZGV2aWNl
TW90aW9uQ2xpZW50KSkgOiBudWxscHRyKQogICAgICwgbV9kZXZpY2VPcmllbnRhdGlvbkNvbnRy
b2xsZXIoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6ZGV2aWNlT3JpZW50YXRpb25FbmFibGVkKCkg
PyBhZG9wdFB0cihuZXcgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKHRoaXMsIHBhZ2VDbGll
bnRzLmRldmljZU9yaWVudGF0aW9uQ2xpZW50KSkgOiBudWxscHRyKQogI2VuZGlmCisjaWYgRU5B
QkxFKE5PVElGSUNBVElPTlMpCisgICAgLCBtX25vdGlmaWNhdGlvbkNvbnRyb2xsZXIoYWRvcHRQ
dHIobmV3IE5vdGlmaWNhdGlvbkNvbnRyb2xsZXIodGhpcywgcGFnZUNsaWVudHMubm90aWZpY2F0
aW9uQ2xpZW50KSkpCisjZW5kaWYKICNpZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQogICAgICwgbV9z
cGVlY2hJbnB1dENsaWVudChwYWdlQ2xpZW50cy5zcGVlY2hJbnB1dENsaWVudCkKICNlbmRpZgpA
QCAtMTA2Myw2ICsxMDY4LDcgQEAgUGFnZTo6UGFnZUNsaWVudHM6OlBhZ2VDbGllbnRzKCkKICAg
ICAsIGRldmljZU1vdGlvbkNsaWVudCgwKQogICAgICwgZGV2aWNlT3JpZW50YXRpb25DbGllbnQo
MCkKICAgICAsIHNwZWVjaElucHV0Q2xpZW50KDApCisgICAgLCBub3RpZmljYXRpb25DbGllbnQo
MCkKICAgICAsIHVzZXJNZWRpYUNsaWVudCgwKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCBhODM0
N2U4NzgwMGU4ZTMzMDc5ZThjNDE0OWRkZjNiNjQyYWYwYjIxLi4zZDBlZTdhOWJkNDVkNzg1ZmI2
NjMxNGQ5YzlhMjgwZmU0ZGRkYzcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtNzIsNiArNzIsOCBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgSW5zcGVjdG9yQ29udHJvbGxlcjsKICAgICBj
bGFzcyBNZWRpYUNhblN0YXJ0TGlzdGVuZXI7CiAgICAgY2xhc3MgTm9kZTsKKyAgICBjbGFzcyBO
b3RpZmljYXRpb25Db250cm9sbGVyOworICAgIGNsYXNzIE5vdGlmaWNhdGlvblByZXNlbnRlcjsK
ICAgICBjbGFzcyBQYWdlR3JvdXA7CiAgICAgY2xhc3MgUGx1Z2luRGF0YTsKICAgICBjbGFzcyBQ
cm9ncmVzc1RyYWNrZXI7CkBAIC0xMTcsNiArMTE5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICAgICAgRGV2aWNlT3JpZW50YXRpb25DbGllbnQqIGRldmljZU9yaWVudGF0aW9uQ2xp
ZW50OwogICAgICAgICAgICAgUmVmUHRyPEJhY2tGb3J3YXJkTGlzdD4gYmFja0ZvcndhcmRDbGll
bnQ7CiAgICAgICAgICAgICBTcGVlY2hJbnB1dENsaWVudCogc3BlZWNoSW5wdXRDbGllbnQ7Cisg
ICAgICAgICAgICBOb3RpZmljYXRpb25QcmVzZW50ZXIqIG5vdGlmaWNhdGlvbkNsaWVudDsKICAg
ICAgICAgICAgIFVzZXJNZWRpYUNsaWVudCogdXNlck1lZGlhQ2xpZW50OwogICAgICAgICB9Owog
CkBAIC0xODMsNiArMTg2LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBEZXZpY2VN
b3Rpb25Db250cm9sbGVyKiBkZXZpY2VNb3Rpb25Db250cm9sbGVyKCkgY29uc3QgeyByZXR1cm4g
bV9kZXZpY2VNb3Rpb25Db250cm9sbGVyLmdldCgpOyB9CiAgICAgICAgIERldmljZU9yaWVudGF0
aW9uQ29udHJvbGxlciogZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKCkgY29uc3QgeyByZXR1
cm4gbV9kZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuZ2V0KCk7IH0KICNlbmRpZgorI2lmIEVO
QUJMRShOT1RJRklDQVRJT05TKQorICAgICAgICBOb3RpZmljYXRpb25Db250cm9sbGVyKiBub3Rp
ZmljYXRpb25Db250cm9sbGVyKCkgY29uc3QgeyByZXR1cm4gbV9ub3RpZmljYXRpb25Db250cm9s
bGVyLmdldCgpOyB9CisjZW5kaWYKICNpZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQogICAgICAgICBT
cGVlY2hJbnB1dCogc3BlZWNoSW5wdXQoKTsKICNlbmRpZgpAQCAtMzY1LDYgKzM3MSw5IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgT3duUHRyPERldmljZU1vdGlvbkNvbnRyb2xsZXI+
IG1fZGV2aWNlTW90aW9uQ29udHJvbGxlcjsKICAgICAgICAgT3duUHRyPERldmljZU9yaWVudGF0
aW9uQ29udHJvbGxlcj4gbV9kZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI7CiAjZW5kaWYKKyNp
ZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKKyAgICAgICAgT3duUHRyPE5vdGlmaWNhdGlvbkNvbnRy
b2xsZXI+IG1fbm90aWZpY2F0aW9uQ29udHJvbGxlcjsKKyNlbmRpZgogI2lmIEVOQUJMRShJTlBV
VF9TUEVFQ0gpCiAgICAgICAgIFNwZWVjaElucHV0Q2xpZW50KiBtX3NwZWVjaElucHV0Q2xpZW50
OwogICAgICAgICBPd25QdHI8U3BlZWNoSW5wdXQ+IG1fc3BlZWNoSW5wdXQ7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1NDk5MDkwNDRh
NDRjNjVjOTViODJiYTJhODM2YTE4YjBiNTFiNzFmLi5lMzZiMWJmODdhMTZmMWI3ZWVjYWM5YjMz
ZjAxZGIwZjE4MjBiNzFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTc0LDYgKzc0LDggQEAKIAkJMjI2RTlFNkIwOUQwQUE4MjAwRjNB
MkJDIC8qIFdlYk5ldHNjYXBlRGVwcmVjYXRlZEZ1bmN0aW9ucy5jIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjI2RTlFNjkwOUQwQUE4MjAwRjNBMkJDIC8q
IFdlYk5ldHNjYXBlRGVwcmVjYXRlZEZ1bmN0aW9ucy5jICovOyBzZXR0aW5ncyA9IHtDT01QSUxF
Ul9GTEFHUyA9ICItV25vLWRlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIjsgfTsgfTsKIAkJMjJGMjE5
Q0MwOEQyMzY3MzAwMzBFMDc4IC8qIFdlYkJhY2tGb3J3YXJkTGlzdFByaXZhdGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDIyRjIxOUNCMDhEMjM2NzMw
MDMwRTA3OCAvKiBXZWJCYWNrRm9yd2FyZExpc3RQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMjlBRUY5NjAxMzRDNzZGQjAwRkU1MDk2
IC8qIE91dGxvb2tRdWlya3NVc2VyU2NyaXB0LmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOUFFRjk1RDEzNEM3NTU0MDBGRTUwOTYgLyogT3V0bG9v
a1F1aXJrc1VzZXJTY3JpcHQuanMgKi87IH07CisJCTMxQzExQTZFMTQ3NjU1MkUwMDQ5QTRDQyAv
KiBXZWJOb3RpZmljYXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDMxQzExQTZDMTQ3NjU1MkUwMDQ5QTRDQyAvKiBXZWJOb3RpZmljYXRp
b25DbGllbnQuaCAqLzsgfTsKKwkJMzFDMTFBNkYxNDc2NTUyRTAwNDlBNENDIC8qIFdlYk5vdGlm
aWNhdGlvbkNsaWVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDMxQzExQTZEMTQ3NjU1MkUwMDQ5QTRDQyAvKiBXZWJOb3RpZmljYXRpb25DbGllbnQu
bW0gKi87IH07CiAJCTM3QjZGQjRFMTA2MzUzMEMwMDBGREIzQiAvKiBXZWJQREZEb2N1bWVudEV4
dHJhcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzdC
NkZCNEMxMDYzNTMwQzAwMEZEQjNCIC8qIFdlYlBERkRvY3VtZW50RXh0cmFzLmggKi87IH07CiAJ
CTM3QjZGQjRGMTA2MzUzMEMwMDBGREIzQiAvKiBXZWJQREZEb2N1bWVudEV4dHJhcy5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3QjZGQjREMTA2MzUz
MEMwMDBGREIzQiAvKiBXZWJQREZEb2N1bWVudEV4dHJhcy5tbSAqLzsgfTsKIAkJMzdEMURDQTgx
MDY1OTI4QzAwNjhGN0VGIC8qIFdlYkpTUERGRG9jLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzN0QxRENBNjEwNjU5MjhDMDA2OEY3RUYgLyogV2ViSlNQ
REZEb2MuaCAqLzsgfTsKQEAgLTQ1NCw2ICs0NTYsOCBAQAogCQkyRDM2RkQ1RTAzRjc4RjlFMDBB
ODAxNjYgLyogV2ViRm9ybURlbGVnYXRlUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkZvcm1EZWxlZ2F0ZVByaXZhdGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCTJE
ODFEQUIyMDNFQjBCMkQwMEE4MDE2NiAvKiBXZWJGb3JtRGVsZWdhdGUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViRm9ybURlbGVnYXRlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9Owog
CQkyRDgxREFCMzAzRUIwQjJEMDBBODAxNjYgLyogV2ViRm9ybURlbGVnYXRlLm0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMub2JqYzsgcGF0aCA9IFdlYkZvcm1EZWxl
Z2F0ZS5tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0g
MDsgfTsKKwkJMzFDMTFBNkMxNDc2NTUyRTAwNDlBNENDIC8qIFdlYk5vdGlmaWNhdGlvbkNsaWVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJOb3RpZmljYXRpb25DbGll
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzFDMTFBNkQxNDc2NTUyRTAwNDlB
NENDIC8qIFdlYk5vdGlmaWNhdGlvbkNsaWVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IFdlYk5vdGlmaWNhdGlvbkNsaWVudC5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMzUwODFEOTIwMkI2RDREODBBQ0EyQUNBIC8qIFdlYkhUTUxSZXByZXNl
bnRhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBwYXRo
ID0gV2ViSFRNTFJlcHJlc2VudGF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldp
ZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQkzNTA4MUQ5MzAyQjZENEQ4MEFDQTJBQ0EgLyog
V2ViSFRNTFJlcHJlc2VudGF0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJIVE1MUmVwcmVzZW50YXRpb24ubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQkzNTA4
MUQ5NDAyQjZENEQ4MEFDQTJBQ0EgLyogV2ViSFRNTFZpZXcuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJIVE1MVmlldy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKQEAgLTEzMTEsNiAr
MTMxNSw4IEBACiAJCQkJOTM0NUQ0RUIwMzY1QzVCMjAwODYzNUNFIC8qIFdlYkphdmFTY3JpcHRU
ZXh0SW5wdXRQYW5lbC5tICovLAogCQkJCTg0NzIzQkUzMDU2RDcxOUUwMDQ0QkZFQSAvKiBXZWJL
ZXlHZW5lcmF0b3IuaCAqLywKIAkJCQk4NDcyM0JFNDA1NkQ3MTlFMDA0NEJGRUEgLyogV2ViS2V5
R2VuZXJhdG9yLm1tICovLAorCQkJCTMxQzExQTZDMTQ3NjU1MkUwMDQ5QTRDQyAvKiBXZWJOb3Rp
ZmljYXRpb25DbGllbnQuaCAqLywKKwkJCQkzMUMxMUE2RDE0NzY1NTJFMDA0OUE0Q0MgLyogV2Vi
Tm90aWZpY2F0aW9uQ2xpZW50Lm1tICovLAogCQkJCUE1OEE1Nzk3MTQzRTcyNzAwMDEyNUY1MCAv
KiBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5oICovLAogCQkJCUE1OEE1Nzk4MTQzRTcyNzAw
MDEyNUY1MCAvKiBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5tbSAqLywKIAkJCQkxQUE4NzlC
NDExQ0JFOUJGMDAzQzY2NEYgLyogV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmggKi8sCkBAIC0xNjI1
LDYgKzE2MzEsNyBAQAogCQkJCUI4Mjk1OEQzMTMyNzA3RDAwMDBEMEU3OSAvKiBDb3JyZWN0aW9u
UGFuZWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1Njg3QkRBMTM1Qjc5MUEwMDc0Q0JDQiAvKiBX
ZWJOb2RlSGlnaGxpZ2h0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1OEE1Nzk5MTQzRTcyNzAw
MDEyNUY1MCAvKiBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMzFDMTFBNkUxNDc2NTUyRTAwNDlBNENDIC8qIFdlYk5vdGlmaWNhdGlvbkNsaWVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2lu
ZyA9IDA7CiAJCX07CkBAIC0yMDEwLDYgKzIwMTcsNyBAQAogCQkJCUI4Mjk1OEQ0MTMyNzA3RDAw
MDBEMEU3OSAvKiBDb3JyZWN0aW9uUGFuZWwubW0gaW4gU291cmNlcyAqLywKIAkJCQlBNTY4N0JE
QjEzNUI3OTFBMDA3NENCQ0IgLyogV2ViTm9kZUhpZ2hsaWdodGVyLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJQTU4QTU3OUExNDNFNzI3MDAwMTI1RjUwIC8qIFdlYk9wZW5QYW5lbFJlc3VsdExpc3Rl
bmVyLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJMzFDMTFBNkYxNDc2NTUyRTAwNDlBNENDIC8qIFdl
Yk5vdGlmaWNhdGlvbkNsaWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlG
b3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAppbmRleCAxNDY1ODRiZDk1NzZjNjEw
MjA3NjM3MDM1MjFkNjdkNmM1ZDk5OGViLi41Zjg0YTJmY2M3YjRmNjgyMGYwNDY4MmZmNDY0NWZh
ODE1ZTcwMWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVD
bGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGll
bnRJbXBsLmNwcApAQCAtNTQsNyArNTQsNiBAQAogI2luY2x1ZGUgIkludFJlY3QuaCIKICNpbmNs
dWRlICJOYXZpZ2F0aW9uQWN0aW9uLmgiCiAjaW5jbHVkZSAiTm9kZS5oIgotI2luY2x1ZGUgIk5v
dGlmaWNhdGlvblByZXNlbnRlckltcGwuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAi
UGxhdGZvcm1TdXBwb3J0LmgiCiAjaW5jbHVkZSAiUG9wdXBDb250YWluZXIuaCIKQEAgLTc4NSwx
MyArNzg0LDYgQEAgdm9pZCBDaHJvbWVDbGllbnRJbXBsOjpwb3N0QWNjZXNzaWJpbGl0eU5vdGlm
aWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEEKICAgICAgICAgbV93ZWJWaWV3LT5j
bGllbnQoKS0+cG9zdEFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb24oV2ViQWNjZXNzaWJpbGl0eU9i
amVjdChvYmopLCB0b1dlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb24obm90aWZpY2F0aW9uKSk7
CiB9CiAKLSNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKLU5vdGlmaWNhdGlvblByZXNlbnRlciog
Q2hyb21lQ2xpZW50SW1wbDo6bm90aWZpY2F0aW9uUHJlc2VudGVyKCkgY29uc3QKLXsKLSAgICBy
ZXR1cm4gbV93ZWJWaWV3LT5ub3RpZmljYXRpb25QcmVzZW50ZXJJbXBsKCk7Ci19Ci0jZW5kaWYK
LQogYm9vbCBDaHJvbWVDbGllbnRJbXBsOjpwYWludEN1c3RvbU92ZXJoYW5nQXJlYShHcmFwaGlj
c0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEludFJlY3QmIGhvcml6b250YWxPdmVyaGFuZ0FyZWEs
IGNvbnN0IEludFJlY3QmIHZlcnRpY2FsT3ZlcmhhbmdBcmVhLCBjb25zdCBJbnRSZWN0JiBkaXJ0
eVJlY3QpCiB7CiAgICAgRnJhbWUqIGZyYW1lID0gbV93ZWJWaWV3LT5tYWluRnJhbWVJbXBsKCkt
PmZyYW1lKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVD
bGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBs
LmgKaW5kZXggMWE5ZjRkZmY2Zjc1ZDliMzg2OTM5ZDM3YzVjYmVkMWYzYWU3NjQ2MC4uNzdmMjY0
MWE0NDRkZjBjMGVjMDIzZDhjZTU2ZTFmYTlkMDQ5MTU1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaApAQCAtMTMwLDkgKzEzMCw2IEBAIHB1Ymxp
YzoKICAgICAgICAgV2ViQ29yZTo6RnJhbWUqLCBjb25zdCBXVEY6OlN0cmluZyYgZGF0YWJhc2VO
YW1lKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVhY2hlZE1heEFwcENhY2hlU2l6ZShpbnQ2NF90IHNw
YWNlTmVlZGVkKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmln
aW5RdW90YShXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiosIGludDY0X3QgdG90YWxTcGFjZU5lZWRl
ZCk7Ci0jaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCi0gICAgdmlydHVhbCBXZWJDb3JlOjpOb3Rp
ZmljYXRpb25QcmVzZW50ZXIqIG5vdGlmaWNhdGlvblByZXNlbnRlcigpIGNvbnN0OwotI2VuZGlm
CiAgICAgdmlydHVhbCBib29sIHBhaW50Q3VzdG9tT3ZlcmhhbmdBcmVhKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dCosIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBjb25zdCBXZWJDb3JlOjpJbnRS
ZWN0JiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOwogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0
R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3JlOjpH
ZW9sb2NhdGlvbiopOwogICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxHZW9sb2NhdGlvblBlcm1pc3Np
b25SZXF1ZXN0Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3JlOjpHZW9sb2NhdGlvbiop
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTm90aWZpY2F0aW9u
LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk5vdGlmaWNhdGlvbi5jcHAKaW5k
ZXggMTVkOTA1YzYwOTkxYzlkZWQ4MmM1OGM1YmNhNWQwYTkxM2E0ODUyMC4uMTg5NDQ3MTYzZmZl
YzE5MmQwNmM4YWMwYTViNThkZmUyNzM5ZmM4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViTm90aWZpY2F0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJOb3RpZmljYXRpb24uY3BwCkBAIC04OCwxMyArODgsMTMgQEAgV2ViVVJMIFdl
Yk5vdGlmaWNhdGlvbjo6aWNvblVSTCgpIGNvbnN0CiBXZWJTdHJpbmcgV2ViTm90aWZpY2F0aW9u
Ojp0aXRsZSgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKCFpc0hUTUwoKSk7Ci0gICAgcmV0dXJuIG1f
cHJpdmF0ZS0+Y29udGVudHMoKS50aXRsZSgpOworICAgIHJldHVybiBtX3ByaXZhdGUtPmNvbnRl
bnRzKCkudGl0bGU7CiB9CiAKIFdlYlN0cmluZyBXZWJOb3RpZmljYXRpb246OmJvZHkoKSBjb25z
dAogewogICAgIEFTU0VSVCghaXNIVE1MKCkpOwotICAgIHJldHVybiBtX3ByaXZhdGUtPmNvbnRl
bnRzKCkuYm9keSgpOworICAgIHJldHVybiBtX3ByaXZhdGUtPmNvbnRlbnRzKCkuYm9keTsKIH0K
IAogV2ViVGV4dERpcmVjdGlvbiBXZWJOb3RpZmljYXRpb246OmRpcmVjdGlvbigpIGNvbnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5kZXggNzc3MmQ5ODNh
ZTBjODNlOTg0ZjBjYmFjYTIwNmFkNDBlY2YyMmRmZS4uMzFlMWUwYzc2Mzk3MGE0YTVjMTEzMDQ4
NTk3ZGZhZGNlMzk1M2QyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViVmlld0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJ
bXBsLmNwcApAQCAtMzk0LDYgKzM5NCw5IEBAIFdlYlZpZXdJbXBsOjpXZWJWaWV3SW1wbChXZWJW
aWV3Q2xpZW50KiBjbGllbnQpCiAjZW5kaWYKICAgICBwYWdlQ2xpZW50cy5kZXZpY2VPcmllbnRh
dGlvbkNsaWVudCA9IG1fZGV2aWNlT3JpZW50YXRpb25DbGllbnRQcm94eS5nZXQoKTsKICAgICBw
YWdlQ2xpZW50cy5nZW9sb2NhdGlvbkNsaWVudCA9IG1fZ2VvbG9jYXRpb25DbGllbnRQcm94eS5n
ZXQoKTsKKyNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKKyAgICBwYWdlQ2xpZW50cy5ub3RpZmlj
YXRpb25DbGllbnQgPSAmbV9ub3RpZmljYXRpb25QcmVzZW50ZXI7CisjZW5kaWYKICAgICBwYWdl
Q2xpZW50cy5iYWNrRm9yd2FyZENsaWVudCA9IEJhY2tGb3J3YXJkTGlzdENocm9taXVtOjpjcmVh
dGUodGhpcyk7CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBwYWdlQ2xpZW50cy51c2Vy
TWVkaWFDbGllbnQgPSAmbV91c2VyTWVkaWFDbGllbnRJbXBsOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcgYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRl
eCA1MmYwMDg2YmQ0ODM3MjI1ZDNhZGVlM2E3OWFjOTQ0MGJhN2NhZjcyLi5iNmFjMmFiYTI4ZWM2
ZGRmZjJhOTdmNTdhYmNmZDk3OGVmZmMyNDRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21h
Yy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2Vi
S2l0L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpAQCAtOTQsNyAr
OTQsMTAgQEAgRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MgPSA7CiBFTkFCTEVfTUVURVJfVEFHID0g
RU5BQkxFX01FVEVSX1RBRzsKIEVOQUJMRV9NSFRNTCA9IDsKIEVOQUJMRV9NVVRBVElPTl9PQlNF
UlZFUlMgPSA7Ci1FTkFCTEVfTk9USUZJQ0FUSU9OUyA9IDsKKworRU5BQkxFX05PVElGSUNBVElP
TlMgPSAkKEVOQUJMRV9OT1RJRklDQVRJT05TXyQoUkVBTF9QTEFURk9STV9OQU1FKSk7CitFTkFC
TEVfTk9USUZJQ0FUSU9OU19tYWNvc3ggPSA7CisKIEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJ
ID0gOwogRU5BQkxFX1BST0dSRVNTX1RBRyA9IEVOQUJMRV9QUk9HUkVTU19UQUc7CiBFTkFCTEVf
UVVPVEEgPSA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJOb3RpZmljYXRpb25DbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU0ODAyYTZjMDU1N2QzZTRkMTM0
NTMzOTE1NDNjYzI5NDY1NmZlZDkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuaApAQCAtMCwwICsxLDQ5IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2ltcG9ydCA8V2ViQ29yZS9Ob3RpZmljYXRpb25QcmVzZW50ZXIuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKK2Ns
YXNzIFZvaWRDYWxsYmFjazsKK30KKworQGNsYXNzIFdlYlZpZXc7CisKK2NsYXNzIFdlYk5vdGlm
aWNhdGlvbkNsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpOb3RpZmljYXRpb25QcmVzZW50ZXIgewor
cHVibGljOgorICAgIFdlYk5vdGlmaWNhdGlvbkNsaWVudChXZWJWaWV3ICopOworICAgIFdlYlZp
ZXcgKndlYlZpZXcoKSB7IHJldHVybiBtX3dlYlZpZXc7IH0KKworcHJpdmF0ZToKKyAgICB2aXJ0
dWFsIGJvb2wgc2hvdyhXZWJDb3JlOjpOb3RpZmljYXRpb24qKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIHZvaWQgY2FuY2VsKFdlYkNvcmU6Ok5vdGlmaWNhdGlvbiopIE9WRVJSSURFOworICAgIHZp
cnR1YWwgdm9pZCBub3RpZmljYXRpb25PYmplY3REZXN0cm95ZWQoV2ViQ29yZTo6Tm90aWZpY2F0
aW9uKikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKFdlYkNv
cmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPFdlYkNvcmU6OlZvaWRDYWxs
YmFjaz4pIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxSZXF1ZXN0c0ZvclBlcm1p
c3Npb24oV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCopIE9WRVJSSURFOworICAgIHZp
cnR1YWwgV2ViQ29yZTo6Tm90aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJtaXNzaW9uIGNoZWNrUGVy
bWlzc2lvbihXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KikgT1ZFUlJJREU7CisKKyAg
ICBXZWJWaWV3ICptX3dlYlZpZXc7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50Lm1tCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU0
Zjk4ODJiODQ1YjBjNzYxMWViYmRkMzY2NTcxYjVlNWQ1YmVlNjQKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQu
bW0KQEAgLTAsMCArMSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgIldlYk5vdGlmaWNhdGlv
bkNsaWVudC5oIgorCisjaW1wb3J0IDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisjaW1wb3J0
IDxXZWJDb3JlL05vdGlmaWNhdGlvbi5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwor
V2ViTm90aWZpY2F0aW9uQ2xpZW50OjpXZWJOb3RpZmljYXRpb25DbGllbnQoV2ViVmlldyAqd2Vi
VmlldykKKyAgICA6IG1fd2ViVmlldyh3ZWJWaWV3KQoreworfQorCitib29sIFdlYk5vdGlmaWNh
dGlvbkNsaWVudDo6c2hvdyhOb3RpZmljYXRpb24qKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6Y2Fu
Y2VsKE5vdGlmaWNhdGlvbiopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBX
ZWJOb3RpZmljYXRpb25DbGllbnQ6Om5vdGlmaWNhdGlvbk9iamVjdERlc3Ryb3llZChXZWJDb3Jl
OjpOb3RpZmljYXRpb24qKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2Vi
Tm90aWZpY2F0aW9uQ2xpZW50OjpyZXF1ZXN0UGVybWlzc2lvbihXZWJDb3JlOjpTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpWb2lkQ2FsbGJhY2s+KQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViTm90aWZpY2F0aW9uQ2xpZW50OjpjYW5j
ZWxSZXF1ZXN0c0ZvclBlcm1pc3Npb24oV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCop
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworTm90aWZpY2F0aW9uUHJlc2VudGVyOjpQ
ZXJtaXNzaW9uIFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6Y2hlY2tQZXJtaXNzaW9uKFdlYkNvcmU6
OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIE5vdGlmaWNhdGlvblByZXNlbnRlcjo6UGVybWlzc2lvbkRlbmllZDsKK30KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCBhNDkwYThhOTQ5MTIyYWU2N2ZmNWJjZTIz
MGE0ZTRiMDVjOWZiM2FkLi43OTU0NTE1MmZhZGY3M2E1Yjk5MWEyYTVmMTUzNWJmMTJhZDA3YTY3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIv
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC04Nyw2ICs4Nyw3IEBACiAj
aW1wb3J0ICJXZWJOU1VSTFJlcXVlc3RFeHRyYXMuaCIKICNpbXBvcnQgIldlYk5TVmlld0V4dHJh
cy5oIgogI2ltcG9ydCAiV2ViTm9kZUhpZ2hsaWdodC5oIgorI2ltcG9ydCAiV2ViTm90aWZpY2F0
aW9uQ2xpZW50LmgiCiAjaW1wb3J0ICJXZWJQREZWaWV3LmgiCiAjaW1wb3J0ICJXZWJQYW5lbEF1
dGhlbnRpY2F0aW9uSGFuZGxlci5oIgogI2ltcG9ydCAiV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgi
CkBAIC03MzksNiArNzQwLDkgQEAgc3RhdGljIE5TU3RyaW5nICpsZWFrT3V0bG9va1F1aXJrc1Vz
ZXJTY3JpcHRDb250ZW50cygpCiAjaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikK
ICAgICBwYWdlQ2xpZW50cy5nZW9sb2NhdGlvbkNsaWVudCA9IG5ldyBXZWJHZW9sb2NhdGlvbkNs
aWVudChzZWxmKTsKICNlbmRpZgorI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQorICAgIHBhZ2VD
bGllbnRzLm5vdGlmaWNhdGlvbkNsaWVudCA9IG5ldyBXZWJOb3RpZmljYXRpb25DbGllbnQoc2Vs
Zik7CisjZW5kaWYKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQogICAgIHBhZ2VDbGll
bnRzLmRldmljZU9yaWVudGF0aW9uQ2xpZW50ID0gbmV3IFdlYkRldmljZU9yaWVudGF0aW9uQ2xp
ZW50KHNlbGYpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2Vi
cGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAKaW5kZXggYWZjMmM2
MDhiNjZiMzc5YzliZGI3NWU4OTEyOWMxOWViYzhmZGU3Ni4uMjFhMzIyMjJlY2JhM2I5ZDI3OWU5
MDRkNmQzOGNkMjY0ZWQ5MmU2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9BcGkvcXdl
YnBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcApAQCAtMzQ2
LDYgKzM0Niw5IEBAIFFXZWJQYWdlUHJpdmF0ZTo6UVdlYlBhZ2VQcml2YXRlKFFXZWJQYWdlICpx
cSkKICAgICBlbHNlCiAgICAgICAgIHBhZ2VDbGllbnRzLmdlb2xvY2F0aW9uQ2xpZW50ID0gbmV3
IEdlb2xvY2F0aW9uQ2xpZW50UXQocSk7CiAjZW5kaWYKKyNpZiBFTkFCTEUoTk9USUZJQ0FUSU9O
UykKKyAgICBwYWdlQ2xpZW50cy5ub3RpZmljYXRpb25DbGllbnQgPSBOb3RpZmljYXRpb25QcmVz
ZW50ZXJDbGllbnRRdDo6bm90aWZpY2F0aW9uUHJlc2VudGVyKCk7CisjZW5kaWYKICAgICBwYWdl
ID0gbmV3IFBhZ2UocGFnZUNsaWVudHMpOwogCiAgICAgLy8gQnkgZGVmYXVsdCBlYWNoIHBhZ2Ug
aXMgcHV0IGludG8gdGhlaXIgb3duIHVuaXF1ZSBwYWdlIGdyb3VwLCB3aGljaCBhZmZlY3RzIHBv
cHVwIHdpbmRvd3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50UXQuY3BwIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJv
bWVDbGllbnRRdC5jcHAKaW5kZXggNGE1MTUzZjNmZDYwMWIzMDZhZDhmOGVkNjBlZDNiODNjM2Rh
YmNmZS4uYjQ1YTIzM2VjMDFmMDkzNzdkNWUwY2ExOGE4ZGFmZjY4OTBhYzZkZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAKQEAg
LTQ5LDcgKzQ5LDYgQEAKICNpbmNsdWRlICJOYXZpZ2F0aW9uQWN0aW9uLmgiCiAjaW5jbHVkZSAi
TmV0d29ya2luZ0NvbnRleHQuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgotI2luY2x1
ZGUgIk5vdGlmaWNhdGlvblByZXNlbnRlckNsaWVudFF0LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgog
I2luY2x1ZGUgIlBhZ2VDbGllbnRRdC5oIgogI2luY2x1ZGUgIlBvcHVwTWVudVF0LmgiCkBAIC01
NTcsMTMgKzU1Niw2IEBAIHZvaWQgQ2hyb21lQ2xpZW50UXQ6OnJlYWNoZWRBcHBsaWNhdGlvbkNh
Y2hlT3JpZ2luUXVvdGEoU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiwKICAgICBlbWl0IG1fd2ViUGFn
ZS0+YXBwbGljYXRpb25DYWNoZVF1b3RhRXhjZWVkZWQoc2VjdXJpdHlPcmlnaW4sIGRlZmF1bHRP
cmlnaW5RdW90YSwgc3RhdGljX2Nhc3Q8cXVpbnQ2ND4odG90YWxTcGFjZU5lZWRlZCkpOwogfQog
Ci0jaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCi1Ob3RpZmljYXRpb25QcmVzZW50ZXIqIENocm9t
ZUNsaWVudFF0Ojpub3RpZmljYXRpb25QcmVzZW50ZXIoKSBjb25zdAotewotICAgIHJldHVybiBO
b3RpZmljYXRpb25QcmVzZW50ZXJDbGllbnRRdDo6bm90aWZpY2F0aW9uUHJlc2VudGVyKCk7Ci19
Ci0jZW5kaWYKLQogdm9pZCBDaHJvbWVDbGllbnRRdDo6cnVuT3BlblBhbmVsKEZyYW1lKiBmcmFt
ZSwgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4gcHJwRmlsZUNob29zZXIpCiB7CiAgICAgUmVmUHRy
PEZpbGVDaG9vc2VyPiBmaWxlQ2hvb3NlciA9IHBycEZpbGVDaG9vc2VyOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oIGIvU291cmNl
L1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oCmluZGV4IDI4MTU5OTA0
OThhZjhlMGFlYWQwNWJkZDBkZjNjODc1NzA3ZjM4ZDIuLjVlMjYzMTMzNjMxYjg5MGU2ZjUwMGMy
ODVmZDU2NThiZWJkZmRmMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50UXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudFF0LmgKQEAgLTE0MiwxMCArMTQyLDYgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBzaG93Q29udGV4dE1lbnUoKSB7IH0KICNlbmRpZgogCi0jaWYgRU5BQkxFKE5P
VElGSUNBVElPTlMpCi0gICAgdmlydHVhbCBOb3RpZmljYXRpb25QcmVzZW50ZXIqIG5vdGlmaWNh
dGlvblByZXNlbnRlcigpIGNvbnN0OwotI2VuZGlmCi0KICNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCiAgICAgLy8gVGhpcyBpcyBhIGhvb2sgZm9yIFdlYkNvcmUgdG8gdGVsbCB1cyB3
aGF0IHdlIG5lZWQgdG8gZG8gd2l0aCB0aGUgR3JhcGhpY3NMYXllcnMuCiAgICAgdmlydHVhbCB2
b2lkIGF0dGFjaFJvb3RHcmFwaGljc0xheWVyKEZyYW1lKiwgR3JhcGhpY3NMYXllciopOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9Ob3RpZmljYXRpb25QcmVz
ZW50ZXJDbGllbnRRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L05vdGlm
aWNhdGlvblByZXNlbnRlckNsaWVudFF0LmNwcAppbmRleCBlYzdhYmFlNTU0MjA1MzdlNTZmZDQ2
YzNmM2ViMjRkY2RmNDJmMjY4Li4wZGFjYzBmZDVkM2RmMzllNWIyOTZhMTYyZmIwOTg3NzgxZDJi
MjZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L05vdGlmaWNh
dGlvblByZXNlbnRlckNsaWVudFF0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L05vdGlmaWNhdGlvblByZXNlbnRlckNsaWVudFF0LmNwcApAQCAtOTEsNyArOTEsNyBA
QCBjb25zdCBRU3RyaW5nIE5vdGlmaWNhdGlvbldyYXBwZXI6OnRpdGxlKCkgY29uc3QKICNpZiBF
TkFCTEUoTk9USUZJQ0FUSU9OUykKICAgICBOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbiA9IE5v
dGlmaWNhdGlvblByZXNlbnRlckNsaWVudFF0Ojpub3RpZmljYXRpb25QcmVzZW50ZXIoKS0+bm90
aWZpY2F0aW9uRm9yV3JhcHBlcih0aGlzKTsKICAgICBpZiAobm90aWZpY2F0aW9uKQotICAgICAg
ICByZXR1cm4gbm90aWZpY2F0aW9uLT5jb250ZW50cygpLnRpdGxlKCk7CisgICAgICAgIHJldHVy
biBub3RpZmljYXRpb24tPmNvbnRlbnRzKCkudGl0bGU7CiAjZW5kaWYKICAgICByZXR1cm4gUVN0
cmluZygpOwogfQpAQCAtMTAxLDcgKzEwMSw3IEBAIGNvbnN0IFFTdHJpbmcgTm90aWZpY2F0aW9u
V3JhcHBlcjo6bWVzc2FnZSgpIGNvbnN0CiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCiAgICAg
Tm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24gPSBOb3RpZmljYXRpb25QcmVzZW50ZXJDbGllbnRR
dDo6bm90aWZpY2F0aW9uUHJlc2VudGVyKCktPm5vdGlmaWNhdGlvbkZvcldyYXBwZXIodGhpcyk7
CiAgICAgaWYgKG5vdGlmaWNhdGlvbikKLSAgICAgICAgcmV0dXJuIG5vdGlmaWNhdGlvbi0+Y29u
dGVudHMoKS5ib2R5KCk7CisgICAgICAgIHJldHVybiBub3RpZmljYXRpb24tPmNvbnRlbnRzKCku
Ym9keTsKICNlbmRpZgogICAgIHJldHVybiBRU3RyaW5nKCk7CiB9CkBAIC0xOTcsOCArMTk3LDgg
QEAgdm9pZCBOb3RpZmljYXRpb25QcmVzZW50ZXJDbGllbnRRdDo6ZGlzcGxheU5vdGlmaWNhdGlv
bihOb3RpZmljYXRpb24qIG5vdGlmaWNhdGkKICAgICBpZiAobm90aWZpY2F0aW9uLT5pc0hUTUwo
KSkKICAgICAgICAgbWVzc2FnZSA9IG5vdGlmaWNhdGlvbi0+dXJsKCkuc3RyaW5nKCk7CiAgICAg
ZWxzZSB7Ci0gICAgICAgIHRpdGxlID0gbm90aWZpY2F0aW9uLT5jb250ZW50cygpLnRpdGxlKCk7
Ci0gICAgICAgIG1lc3NhZ2UgPSBub3RpZmljYXRpb24tPmNvbnRlbnRzKCkuYm9keSgpOworICAg
ICAgICB0aXRsZSA9IG5vdGlmaWNhdGlvbi0+Y29udGVudHMoKS50aXRsZTsKKyAgICAgICAgbWVz
c2FnZSA9IG5vdGlmaWNhdGlvbi0+Y29udGVudHMoKS5ib2R5OwogICAgIH0KIAogICAgIGlmICht
X3BsYXRmb3JtUGx1Z2luLnBsdWdpbigpICYmIG1fcGxhdGZvcm1QbHVnaW4ucGx1Z2luKCktPnN1
cHBvcnRzRXh0ZW5zaW9uKFFXZWJLaXRQbGF0Zm9ybVBsdWdpbjo6Tm90aWZpY2F0aW9ucykpCkBA
IC0yMzMsNyArMjMzLDcgQEAgdm9pZCBOb3RpZmljYXRpb25QcmVzZW50ZXJDbGllbnRRdDo6ZGlz
cGxheU5vdGlmaWNhdGlvbihOb3RpZmljYXRpb24qIG5vdGlmaWNhdGkKICNpZm5kZWYgUVRfTk9f
U1lTVEVNVFJBWUlDT04KICAgICB3cmFwcGVyLT5jb25uZWN0KHdyYXBwZXItPm1fbm90aWZpY2F0
aW9uSWNvbi5nZXQoKSwgU0lHTkFMKG1lc3NhZ2VDbGlja2VkKCkpLCB3cmFwcGVyLCBTTE9UKG5v
dGlmaWNhdGlvbkNsaWNrZWQoKSkpOwogICAgIHdyYXBwZXItPm1fbm90aWZpY2F0aW9uSWNvbi0+
c2hvdygpOwotICAgIHdyYXBwZXItPm1fbm90aWZpY2F0aW9uSWNvbi0+c2hvd01lc3NhZ2Uobm90
aWZpY2F0aW9uLT5jb250ZW50cygpLnRpdGxlKCksIG5vdGlmaWNhdGlvbi0+Y29udGVudHMoKS5i
b2R5KCkpOworICAgIHdyYXBwZXItPm1fbm90aWZpY2F0aW9uSWNvbi0+c2hvd01lc3NhZ2Uobm90
aWZpY2F0aW9uLT5jb250ZW50cygpLnRpdGxlLCBub3RpZmljYXRpb24tPmNvbnRlbnRzKCkuYm9k
eSk7CiAjZW5kaWYKIH0KIApAQCAtMjQzLDcgKzI0Myw3IEBAIHZvaWQgTm90aWZpY2F0aW9uUHJl
c2VudGVyQ2xpZW50UXQ6OmNhbmNlbChOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbikKICAgICAg
ICAgaWYgKG5vdGlmaWNhdGlvbi0+aXNIVE1MKCkpCiAgICAgICAgICAgICBwcmludGYoIkRFU0tU
T1AgTk9USUZJQ0FUSU9OIENMT1NFRDogJXNcbiIsIFFTdHJpbmcobm90aWZpY2F0aW9uLT51cmwo
KS5zdHJpbmcoKSkudG9VdGY4KCkuY29uc3REYXRhKCkpOwogICAgICAgICBlbHNlCi0gICAgICAg
ICAgICBwcmludGYoIkRFU0tUT1AgTk9USUZJQ0FUSU9OIENMT1NFRDogJXNcbiIsIFFTdHJpbmco
bm90aWZpY2F0aW9uLT5jb250ZW50cygpLnRpdGxlKCkpLnRvVXRmOCgpLmNvbnN0RGF0YSgpKTsK
KyAgICAgICAgICAgIHByaW50ZigiREVTS1RPUCBOT1RJRklDQVRJT04gQ0xPU0VEOiAlc1xuIiwg
UVN0cmluZyhub3RpZmljYXRpb24tPmNvbnRlbnRzKCkudGl0bGUpLnRvVXRmOCgpLmNvbnN0RGF0
YSgpKTsKICAgICB9CiAKICAgICBOb3RpZmljYXRpb25zUXVldWU6Okl0ZXJhdG9yIGl0ZXIgPSBt
X25vdGlmaWNhdGlvbnMuZmluZChub3RpZmljYXRpb24pOwpAQCAtMjgzLDcgKzI4Myw3IEBAIHZv
aWQgTm90aWZpY2F0aW9uUHJlc2VudGVyQ2xpZW50UXQ6Om5vdGlmaWNhdGlvbkNsaWNrZWQoY29u
c3QgUVN0cmluZyYgdGl0bGUpCiAgICAgICAgIGlmIChub3RpZmljYXRpb24tPmlzSFRNTCgpKQog
ICAgICAgICAgICAgbm90aWZpY2F0aW9uVGl0bGUgPSBub3RpZmljYXRpb24tPnVybCgpLnN0cmlu
ZygpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBub3RpZmljYXRpb25UaXRsZSA9IG5vdGlm
aWNhdGlvbi0+Y29udGVudHMoKS50aXRsZSgpOworICAgICAgICAgICAgbm90aWZpY2F0aW9uVGl0
bGUgPSBub3RpZmljYXRpb24tPmNvbnRlbnRzKCkudGl0bGU7CiAgICAgICAgIGlmIChub3RpZmlj
YXRpb25UaXRsZSA9PSB0aXRsZSkKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBpdGVyKys7
CkBAIC00MTksNyArNDE5LDcgQEAgdm9pZCBOb3RpZmljYXRpb25QcmVzZW50ZXJDbGllbnRRdDo6
ZGV0YWNoTm90aWZpY2F0aW9uKE5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW8KIHZvaWQgTm90aWZp
Y2F0aW9uUHJlc2VudGVyQ2xpZW50UXQ6OmR1bXBSZXBsYWNlZElkVGV4dChOb3RpZmljYXRpb24q
IG5vdGlmaWNhdGlvbikKIHsKICAgICBpZiAobm90aWZpY2F0aW9uKQotICAgICAgICBwcmludGYo
IlJFUExBQ0lORyBOT1RJRklDQVRJT04gJXNcbiIsIG5vdGlmaWNhdGlvbi0+aXNIVE1MKCkgPyBR
U3RyaW5nKG5vdGlmaWNhdGlvbi0+dXJsKCkuc3RyaW5nKCkpLnRvVXRmOCgpLmNvbnN0RGF0YSgp
IDogUVN0cmluZyhub3RpZmljYXRpb24tPmNvbnRlbnRzKCkudGl0bGUoKSkudG9VdGY4KCkuY29u
c3REYXRhKCkpOworICAgICAgICBwcmludGYoIlJFUExBQ0lORyBOT1RJRklDQVRJT04gJXNcbiIs
IG5vdGlmaWNhdGlvbi0+aXNIVE1MKCkgPyBRU3RyaW5nKG5vdGlmaWNhdGlvbi0+dXJsKCkuc3Ry
aW5nKCkpLnRvVXRmOCgpLmNvbnN0RGF0YSgpIDogUVN0cmluZyhub3RpZmljYXRpb24tPmNvbnRl
bnRzKCkudGl0bGUpLnRvVXRmOCgpLmNvbnN0RGF0YSgpKTsKIH0KIAogdm9pZCBOb3RpZmljYXRp
b25QcmVzZW50ZXJDbGllbnRRdDo6ZHVtcFNob3dUZXh0KE5vdGlmaWNhdGlvbiogbm90aWZpY2F0
aW9uKQpAQCAtNDI5LDggKzQyOSw4IEBAIHZvaWQgTm90aWZpY2F0aW9uUHJlc2VudGVyQ2xpZW50
UXQ6OmR1bXBTaG93VGV4dChOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbikKICAgICBlbHNlIHsK
ICAgICAgICAgcHJpbnRmKCJERVNLVE9QIE5PVElGSUNBVElPTjolcyBpY29uICVzLCB0aXRsZSAl
cywgdGV4dCAlc1xuIiwKICAgICAgICAgICAgICAgICBub3RpZmljYXRpb24tPmRpcigpID09ICJy
dGwiID8gIihSVEwpIiA6ICIiLAotICAgICAgICAgICAgUVN0cmluZyhub3RpZmljYXRpb24tPmNv
bnRlbnRzKCkuaWNvbigpLnN0cmluZygpKS50b1V0ZjgoKS5jb25zdERhdGEoKSwgUVN0cmluZyhu
b3RpZmljYXRpb24tPmNvbnRlbnRzKCkudGl0bGUoKSkudG9VdGY4KCkuY29uc3REYXRhKCksCi0g
ICAgICAgICAgICBRU3RyaW5nKG5vdGlmaWNhdGlvbi0+Y29udGVudHMoKS5ib2R5KCkpLnRvVXRm
OCgpLmNvbnN0RGF0YSgpKTsKKyAgICAgICAgICAgIFFTdHJpbmcobm90aWZpY2F0aW9uLT5jb250
ZW50cygpLmljb24uc3RyaW5nKCkpLnRvVXRmOCgpLmNvbnN0RGF0YSgpLCBRU3RyaW5nKG5vdGlm
aWNhdGlvbi0+Y29udGVudHMoKS50aXRsZSkudG9VdGY4KCkuY29uc3REYXRhKCksCisgICAgICAg
ICAgICBRU3RyaW5nKG5vdGlmaWNhdGlvbi0+Y29udGVudHMoKS5ib2R5KS50b1V0ZjgoKS5jb25z
dERhdGEoKSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9Db25maWd1
cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9XZWJLaXQyL0NvbmZpZ3Vy
YXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IDUyZjAwODZiZDQ4MzcyMjVkM2Fk
ZWUzYTc5YWM5NDQwYmE3Y2FmNzIuLmI2YWMyYWJhMjhlYzZkZGZmMmE5N2Y1N2FiY2ZkOTc4ZWZm
YzI0NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVE
ZWZpbmVzLnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL0ZlYXR1
cmVEZWZpbmVzLnhjY29uZmlnCkBAIC05NCw3ICs5NCwxMCBAQCBFTkFCTEVfTUVESUFfU1RBVElT
VElDUyA9IDsKIEVOQUJMRV9NRVRFUl9UQUcgPSBFTkFCTEVfTUVURVJfVEFHOwogRU5BQkxFX01I
VE1MID0gOwogRU5BQkxFX01VVEFUSU9OX09CU0VSVkVSUyA9IDsKLUVOQUJMRV9OT1RJRklDQVRJ
T05TID0gOworCitFTkFCTEVfTk9USUZJQ0FUSU9OUyA9ICQoRU5BQkxFX05PVElGSUNBVElPTlNf
JChSRUFMX1BMQVRGT1JNX05BTUUpKTsKK0VOQUJMRV9OT1RJRklDQVRJT05TX21hY29zeCA9IDsK
KwogRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkgPSA7CiBFTkFCTEVfUFJPR1JFU1NfVEFHID0g
RU5BQkxFX1BST0dSRVNTX1RBRzsKIEVOQUJMRV9RVU9UQSA9IDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291
cmNlcy5tYWtlCmluZGV4IDE4NTMyOTZlNDZiOTJhMWJhYWVmMmZlMGMzOWY1ZjMzYjEwOTczMGEu
Ljk0ZTNmM2Q5ZGNmNGIyYjhlZTMwMGMxYTgwY2NlMmYzNGMxMmI3ZmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYktpdDIvRGVy
aXZlZFNvdXJjZXMubWFrZQpAQCAtMzIsNiArMzIsNyBAQCBWUEFUSCA9IFwKICAgICAkKFdlYktp
dDIpL1dlYlByb2Nlc3MvSWNvbkRhdGFiYXNlIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3Mv
S2V5VmFsdWVTdG9yYWdlIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvTWVkaWFDYWNoZSBc
CisgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMgXAogICAgICQoV2ViS2l0
MikvV2ViUHJvY2Vzcy9QbHVnaW5zIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvUmVzb3Vy
Y2VDYWNoZSBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0IFwKQEAg
LTcyLDYgKzczLDcgQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAgICAgV2ViS2V5VmFsdWVTdG9y
YWdlTWFuYWdlclByb3h5IFwKICAgICBXZWJNZWRpYUNhY2hlTWFuYWdlciBcCiAgICAgV2ViTWVk
aWFDYWNoZU1hbmFnZXJQcm94eSBcCisgICAgV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5IFwK
ICAgICBXZWJQYWdlIFwKICAgICBXZWJQYWdlUHJveHkgXAogICAgIFdlYlByb2Nlc3MgXApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMucHJpIGIvU291cmNlL1dlYktp
dDIvRGVyaXZlZFNvdXJjZXMucHJpCmluZGV4IGIwYTVjMjYzZjRjMTBjY2I1YjM4YjM4MWQ0MTQy
MzdjNDRmZjk0NDUuLjg0MmNmZWY0MWYxZGZlOTAwYWYyNjUyNzY3MDY0NTZkN2E5OGJjNDYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLnByaQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9EZXJpdmVkU291cmNlcy5wcmkKQEAgLTQxLDYgKzQxLDcgQEAgVlBBVEggPSBcCiAg
ICAgV2ViUHJvY2Vzcy9JY29uRGF0YWJhc2UgXAogICAgIFdlYlByb2Nlc3MvS2V5VmFsdWVTdG9y
YWdlIFwKICAgICBXZWJQcm9jZXNzL01lZGlhQ2FjaGUgXAorICAgIFdlYlByb2Nlc3MvTm90aWZp
Y2F0aW9ucyBcCiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zIFwKICAgICBXZWJQcm9jZXNzL1Jlc291
cmNlQ2FjaGUgXAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQgXApAQCAtNzcsNiArNzgs
NyBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKICAgICBXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2Vy
UHJveHkubWVzc2FnZXMuaW4gXAogICAgIFdlYk1lZGlhQ2FjaGVNYW5hZ2VyLm1lc3NhZ2VzLmlu
IFwKICAgICBXZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIFwKKyAgICBXZWJO
b3RpZmljYXRpb25NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gXAogICAgIFdlYkZ1bGxTY3JlZW5N
YW5hZ2VyLm1lc3NhZ2VzLmluIFwKICAgICBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5Lm1lc3Nh
Z2VzLmluIFwKICAgICBXZWJQYWdlL0RyYXdpbmdBcmVhLm1lc3NhZ2VzLmluIFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZUlELmggYi9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VJRC5oCmluZGV4IDQ1NTFkN2U4NDMwNzM1
NDg1Mjk2ZTlhOTk3OTY4ZGZlNDEzMDFmNzUuLjI5NmMyMmYyNTlmZjlhMzYzMDY0NDU2ZGVjNDU1
NDQ4MzMzZWM1YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMv
TWVzc2FnZUlELmgKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdl
SUQuaApAQCAtNjcsNiArNjcsNyBAQCBlbnVtIE1lc3NhZ2VDbGFzcyB7CiAgICAgTWVzc2FnZUNs
YXNzV2ViSW5zcGVjdG9yUHJveHksCiAgICAgTWVzc2FnZUNsYXNzV2ViS2V5VmFsdWVTdG9yYWdl
TWFuYWdlclByb3h5LAogICAgIE1lc3NhZ2VDbGFzc1dlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHks
CisgICAgTWVzc2FnZUNsYXNzV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LAogICAgIE1lc3Nh
Z2VDbGFzc1dlYlBhZ2VQcm94eSwKICAgICBNZXNzYWdlQ2xhc3NXZWJQcm9jZXNzUHJveHksCiAg
ICAgTWVzc2FnZUNsYXNzV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eSwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJL
aXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weQppbmRleCAxYmE5OTJiMDk1OTRmNzE2MGUy
OWFkNjA3YzhkMTcyNzJkM2Y5N2VjLi5kM2ZhNWI3MmQ5MTFkN2M2Yjg2YzUwYzZmYTNlMzRmYjJk
ZjRlOGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2Fn
ZXMucHkKKysrIGIvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5CkBA
IC0xNzksNiArMTc5LDcgQEAgZGVmIHN0cnVjdF9vcl9jbGFzcyhuYW1lc3BhY2UsIHR5cGUpOgog
ICAgICAgICAnV2ViQ29yZTo6TGVuZ3RoJywKICAgICAgICAgJ1dlYkNvcmU6Ok1hdHJpeFRyYW5z
Zm9ybU9wZXJhdGlvbicsCiAgICAgICAgICdXZWJDb3JlOjpNYXRyaXgzRFRyYW5zZm9ybU9wZXJh
dGlvbicsCisgICAgICAgICdXZWJDb3JlOjpOb3RpZmljYXRpb25Db250ZW50cycsCiAgICAgICAg
ICdXZWJDb3JlOjpQZXJzcGVjdGl2ZVRyYW5zZm9ybU9wZXJhdGlvbicsCiAgICAgICAgICdXZWJD
b3JlOjpQbHVnaW5JbmZvJywKICAgICAgICAgJ1dlYkNvcmU6OlByaW50SW5mbycsCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmggYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKaW5kZXggYTFmYzc5M2ZmNmIzNzlmYmRkZDkxNzAwZmU3
M2FlYTIxMGI2YTI0My4uNmNmNGYwZjAzYjcwYTg3NjUyMGJiZTI2N2M1ZDhiODIyMmM1OTE5YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaApAQCAtOTUsNiArOTUsOSBAQCB0eXBl
ZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS0luc3BlY3RvciogV0tJbnNwZWN0b3JSZWY7CiB0eXBl
ZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS0tleVZhbHVlU3RvcmFnZU1hbmFnZXIqIFdLS2V5VmFs
dWVTdG9yYWdlTWFuYWdlclJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLTWVkaWFD
YWNoZU1hbmFnZXIqIFdLTWVkaWFDYWNoZU1hbmFnZXJSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVj
dCBPcGFxdWVXS05hdmlnYXRpb25EYXRhKiBXS05hdmlnYXRpb25EYXRhUmVmOwordHlwZWRlZiBj
b25zdCBzdHJ1Y3QgT3BhcXVlV0tOb3RpZmljYXRpb24qIFdLTm90aWZpY2F0aW9uUmVmOwordHlw
ZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tOb3RpZmljYXRpb25NYW5hZ2VyKiBXS05vdGlmaWNh
dGlvbk1hbmFnZXJSZWY7Cit0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS05vdGlmaWNhdGlv
blByb3ZpZGVyKiBXS05vdGlmaWNhdGlvblByb3ZpZGVyUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1
Y3QgT3BhcXVlV0tPcGVuUGFuZWxQYXJhbWV0ZXJzKiBXS09wZW5QYW5lbFBhcmFtZXRlcnNSZWY7
CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyKiBX
S09wZW5QYW5lbFJlc3VsdExpc3RlbmVyUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVl
V0tQYWdlKiBXS1BhZ2VSZWY7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJ
T2JqZWN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgKaW5kZXggYmY0Mzk2
MGQ1MTNkMmJhNzc4MzU1MTY0NzVjNjljZDgzZDVlNjhkOS4uZGVjYmRiOTdhN2M2OTEyMzAxOTRi
MmMxNjliMjUxNjMwN2Q3MjU5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQ
SU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaApAQCAtODks
NiArODksOCBAQCBwdWJsaWM6CiAgICAgICAgIFR5cGVLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLAog
ICAgICAgICBUeXBlTWVkaWFDYWNoZU1hbmFnZXIsCiAgICAgICAgIFR5cGVOYXZpZ2F0aW9uRGF0
YSwKKyAgICAgICAgVHlwZU5vdGlmaWNhdGlvbiwKKyAgICAgICAgVHlwZU5vdGlmaWNhdGlvbk1h
bmFnZXIsCiAgICAgICAgIFR5cGVPcGVuUGFuZWxQYXJhbWV0ZXJzLAogICAgICAgICBUeXBlT3Bl
blBhbmVsUmVzdWx0TGlzdGVuZXIsCiAgICAgICAgIFR5cGVQYWdlLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL1VzZXJNZXNzYWdlQ29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvVXNlck1lc3NhZ2VDb2RlcnMuaAppbmRleCBlNzQ1YzM5YmIwYTc5MzQxNjIwYmY3ZTgw
OTFlMDdlNGRjNDg0YjNjLi5kNWFiMmZkMjkzYzVkNWJmYmY5ZDY5ZDhmNzY2NTljMWY3OWQ0Mjkz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVXNlck1lc3NhZ2VDb2RlcnMuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVXNlck1lc3NhZ2VDb2RlcnMuaApAQCAtMzcsNiAr
MzcsNyBAQAogI2luY2x1ZGUgIldlYkRhdGEuaCIKICNpbmNsdWRlICJXZWJHZW9tZXRyeS5oIgog
I2luY2x1ZGUgIldlYkltYWdlLmgiCisjaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uLmgiCiAjaW5j
bHVkZSAiV2ViTnVtYmVyLmgiCiAjaW5jbHVkZSAiV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgi
CiAjaW5jbHVkZSAiV2ViU3RyaW5nLmgiCkBAIC01NSw2ICs1Niw3IEBAIG5hbWVzcGFjZSBXZWJL
aXQgewogLy8gICAtIFdlYkRhdGEgLT4gV2ViRGF0YQogLy8gICAtIFdlYkRvdWJsZSAtPiBXZWJE
b3VibGUKIC8vICAgLSBXZWJJbWFnZSAtPiBXZWJJbWFnZQorLy8gICAtIFdlYk5vdGlmaWNhdGlv
biAtPiBXZWJOb3RpZmljYXRpb24KIC8vICAgLSBXZWJVSW50NjQgLT4gV2ViVUludDY0CiAvLyAg
IC0gV2ViVVJMIC0+IFdlYlVSTAogCkBAIC0yMDEsNiArMjAzLDcgQEAgcHJvdGVjdGVkOgogLy8g
ICAtIFdlYkRhdGEgLT4gV2ViRGF0YQogLy8gICAtIFdlYkRvdWJsZSAtPiBXZWJEb3VibGUKIC8v
ICAgLSBXZWJJbWFnZSAtPiBXZWJJbWFnZQorLy8gICAtIFdlYk5vdGlmaWNhdGlvbiAtPiBXZWJO
b3RpZmljYXRpb24KIC8vICAgLSBXZWJVSW50NjQgLT4gV2ViVUludDY0CiAvLyAgIC0gV2ViVVJM
IC0+IFdlYlVSTAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRD
b2RlcnMuY3BwCmluZGV4IDhjZTM5NGVlOTc3MjIyOGFiMGYxZWI1MzczYjdiMDk5M2ExZWI4Mjgu
LjUwNTQ2NmM2YjAzZTU3YWE3Yjg5YjA0MDFmNzZiYTE2NzkyNzM4NjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCkBAIC0zNyw2ICszNyw3
IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0NvbnRleHQuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0dyYXBoaWNzTGF5ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlLmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9LVVJMLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbHVnaW5EYXRhLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9Qcm90ZWN0aW9uU3BhY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1RleHRD
aGVja2VyQ2xpZW50Lmg+CkBAIC02MjQsNiArNjI1LDIwIEBAIGJvb2wgQXJndW1lbnRDb2RlcjxE
cmFnU2Vzc2lvbj46OmRlY29kZShBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIERyYWdTZXNzaW9u
JiByCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3ZvaWQgQXJndW1lbnRDb2RlcjxLVVJMPjo6ZW5j
b2RlKEFyZ3VtZW50RW5jb2RlciogZW5jb2RlciwgY29uc3QgS1VSTCYgcmVzdWx0KQoreworICAg
IGVuY29kZXItPmVuY29kZShyZXN1bHQuc3RyaW5nKCkpOworfQorICAgIAorYm9vbCBBcmd1bWVu
dENvZGVyPEtVUkw+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBLVVJMJiByZXN1
bHQpCit7CisgICAgU3RyaW5nIHVybEFzU3RyaW5nOworICAgIGlmICghZGVjb2Rlci0+ZGVjb2Rl
KHVybEFzU3RyaW5nKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJlc3VsdCA9IEtVUkwo
V2ViQ29yZTo6UGFyc2VkVVJMU3RyaW5nLCB1cmxBc1N0cmluZyk7CisgICAgcmV0dXJuIHRydWU7
Cit9CisKICNpZiBQTEFURk9STShRVCkKIAogdm9pZCBBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQz
RD46OmVuY29kZShBcmd1bWVudEVuY29kZXIqIGVuY29kZXIsIGNvbnN0IEZsb2F0UG9pbnQzRCYg
ZmxvYXRQb2ludDNEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENv
ZGVycy5oCmluZGV4IDA1NTA0MWY5NTA2Y2NlMGViNTc5YzVlOWE4MWE4MWRmZDY0MGFjN2YuLjZm
OTcwMGNjNTAzY2E5N2VlOGI3YWJmMjRlZGVhZTczMzgwYmQzNmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKQEAgLTQzLDYgKzQzLDggQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIEludFJlY3Q7CiAgICAgY2xhc3MgSW50U2l6ZTsK
ICAgICBjbGFzcyBLZXlmcmFtZVZhbHVlTGlzdDsKKyAgICBjbGFzcyBLVVJMOworICAgIGNsYXNz
IE5vdGlmaWNhdGlvbjsKICAgICBjbGFzcyBQcm90ZWN0aW9uU3BhY2U7CiAgICAgY2xhc3MgUmVz
b3VyY2VFcnJvcjsKICAgICBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CkBAIC0yMjEsNiArMjIzLDEx
IEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6RHJhZ1Nlc3Npb24+
IHsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyKiwgV2ViQ29yZTo6RHJh
Z1Nlc3Npb24mKTsKIH07CiAKK3RlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29y
ZTo6S1VSTD4geworICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXIqLCBjb25z
dCBXZWJDb3JlOjpLVVJMJik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2Rl
ciosIFdlYkNvcmU6OktVUkwmKTsKK307CisKICNpZiBQTEFURk9STShRVCkKIHRlbXBsYXRlPD4g
c3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6RmxvYXRQb2ludDNEPiB7CiAgICAgc3RhdGlj
IHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciosIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQz
RCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJL
aXQyL1RhcmdldC5wcmkKaW5kZXggZjY1NTQ1OTdmZWNiOWIxMzQzZTY2OTJjYzBkZWFiYjNlZmI4
NzZlMi4uZmNiZmI1MzJjMTg3MzUxZjg3OTE4Yzk4YjJhOTIwYTc1MTBmZDhkZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQu
cHJpCkBAIC01MCw2ICs1MCw3IEBAIFdFQktJVDJfR0VORVJBVEVEX0hFQURFUlMgPSBcCiAgICAg
JCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2Vy
UHJveHlNZXNzYWdlcy5oIFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dl
Yk1lZGlhQ2FjaGVNYW5hZ2VyTWVzc2FnZXMuaCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9T
T1VSQ0VTX0RJUi9XZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5TWVzc2FnZXMuaCBcCisgICAgJCRX
RUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHlN
ZXNzYWdlcy5oIFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dlYlBhZ2VN
ZXNzYWdlcy5oIFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dlYlBhZ2VQ
cm94eU1lc3NhZ2VzLmggXAogICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oIFwKQEAgLTkwLDYgKzkxLDcgQEAgV0VCS0lUMl9H
RU5FUkFURURfU09VUkNFUyA9IFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElS
L1dlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgXAogICAg
ICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvV2ViTWVkaWFDYWNoZU1hbmFnZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwIFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dl
Yk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKKyAgICAkJFdFQktJ
VDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eU1lc3Nh
Z2VSZWNlaXZlci5jcHAgXAogICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvV2Vi
UGFnZU1lc3NhZ2VSZWNlaXZlci5jcHAgXAogICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNF
U19ESVIvV2ViUGFnZVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBcCiAgICAgJCRXRUJLSVQyX0dF
TkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5j
cHAgXApAQCAtMjMyLDYgKzIzNCw5IEBAIEhFQURFUlMgKz0gXAogICAgIFVJUHJvY2Vzcy9BUEkv
Qy9XS09wZW5QYW5lbFBhcmFtZXRlcnMuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLT3BlblBh
bmVsUmVzdWx0TGlzdGVuZXIuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLTmF2aWdhdGlvbkRh
dGEuaCBcCisgICAgVUlQcm9jZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9uLmggXAorICAgIFVJUHJv
Y2Vzcy9BUEkvQy9XS05vdGlmaWNhdGlvbk1hbmFnZXIuaCBcCisgICAgVUlQcm9jZXNzL0FQSS9D
L1dLTm90aWZpY2F0aW9uUHJvdmlkZXIuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5o
IFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXAuaCBcCiAgICAgVUlQcm9jZXNzL0FQ
SS9DL1dLUGFnZVByaXZhdGUuaCBcCkBAIC0zMDQsNiArMzA5LDkgQEAgSEVBREVSUyArPSBcCiAg
ICAgVUlQcm9jZXNzL1dlYkxvYWRlckNsaWVudC5oIFwKICAgICBVSVByb2Nlc3MvV2ViTWVkaWFD
YWNoZU1hbmFnZXJQcm94eS5oIFwKICAgICBVSVByb2Nlc3MvV2ViTmF2aWdhdGlvbkRhdGEuaCBc
CisgICAgVUlQcm9jZXNzL1dlYk5vdGlmaWNhdGlvbi5oIFwKKyAgICBVSVByb2Nlc3MvV2ViTm90
aWZpY2F0aW9uTWFuYWdlclByb3h5LmggXAorICAgIFVJUHJvY2Vzcy9XZWJOb3RpZmljYXRpb25Q
cm92aWRlci5oIFwKICAgICBVSVByb2Nlc3MvV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94
eS5oIFwKICAgICBVSVByb2Nlc3MvV2ViUGFnZUNvbnRleHRNZW51Q2xpZW50LmggXAogICAgIFVJ
UHJvY2Vzcy9XZWJQYWdlR3JvdXAuaCBcCkBAIC0zNzIsNiArMzgwLDcgQEAgSEVBREVSUyArPSBc
CiAgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdl
Q29kZXJzLmggXAogICAgIFdlYlByb2Nlc3MvS2V5VmFsdWVTdG9yYWdlL1dlYktleVZhbHVlU3Rv
cmFnZU1hbmFnZXIuaCBcCiAgICAgV2ViUHJvY2Vzcy9NZWRpYUNhY2hlL1dlYk1lZGlhQ2FjaGVN
YW5hZ2VyLmggXAorICAgIFdlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25N
YW5hZ2VyLmggXAogICAgIFdlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZS9XZWJSZXNvdXJjZUNhY2hl
TWFuYWdlci5oIFwKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE1ldGhvZC5o
IFwKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5oIFwKQEAgLTM5
OCw2ICs0MDcsNyBAQCBIRUFERVJTICs9IFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkdyYXBoaWNzTGF5ZXIuaCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJ
bnNwZWN0b3JDbGllbnQuaCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNw
ZWN0b3JGcm9udGVuZENsaWVudC5oIFwKKyAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
Yk5vdGlmaWNhdGlvbkNsaWVudC5oIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YlBsYXRmb3JtU3RyYXRlZ2llcy5oIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YlBvcHVwTWVudS5oIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNlYXJjaFBv
cHVwTWVudS5oIFwKQEAgLTUzOSw2ICs1NDksOCBAQCBTT1VSQ0VTICs9IFwKICAgICBVSVByb2Nl
c3MvQVBJL0MvV0tIaXRUZXN0UmVzdWx0LmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLSWNv
bkRhdGFiYXNlLmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLSW5zcGVjdG9yLmNwcCBcCisg
ICAgVUlQcm9jZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9uLmNwcCBcCisgICAgVUlQcm9jZXNzL0FQ
SS9DL1dLTm90aWZpY2F0aW9uTWFuYWdlci5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS09w
ZW5QYW5lbFBhcmFtZXRlcnMuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tPcGVuUGFuZWxS
ZXN1bHRMaXN0ZW5lci5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS05hdmlnYXRpb25EYXRh
LmNwcCBcCkBAIC02MDgsNiArNjIwLDkgQEAgU09VUkNFUyArPSBcCiAgICAgVUlQcm9jZXNzL1dl
YkxvYWRlckNsaWVudC5jcHAgXAogICAgIFVJUHJvY2Vzcy9XZWJNZWRpYUNhY2hlTWFuYWdlclBy
b3h5LmNwcCBcCiAgICAgVUlQcm9jZXNzL1dlYk5hdmlnYXRpb25EYXRhLmNwcCBcCisgICAgVUlQ
cm9jZXNzL1dlYk5vdGlmaWNhdGlvbi5jcHAgXAorICAgIFVJUHJvY2Vzcy9XZWJOb3RpZmljYXRp
b25NYW5hZ2VyUHJveHkuY3BwIFwKKyAgICBVSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9uUHJvdmlk
ZXIuY3BwIFwKICAgICBVSVByb2Nlc3MvV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eS5j
cHAgXAogICAgIFVJUHJvY2Vzcy9XZWJQYWdlQ29udGV4dE1lbnVDbGllbnQuY3BwIFwKICAgICBV
SVByb2Nlc3MvV2ViUGFnZUdyb3VwLmNwcCBcCkBAIC02OTIsNiArNzA3LDcgQEAgU09VUkNFUyAr
PSBcCiAgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9xdC9JbmplY3RlZEJ1bmRsZVF0LmNw
cCBcCiAgICAgV2ViUHJvY2Vzcy9LZXlWYWx1ZVN0b3JhZ2UvV2ViS2V5VmFsdWVTdG9yYWdlTWFu
YWdlci5jcHAgXAogICAgIFdlYlByb2Nlc3MvTWVkaWFDYWNoZS9XZWJNZWRpYUNhY2hlTWFuYWdl
ci5jcHAgXAorICAgIFdlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5h
Z2VyLmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hlL1dlYlJlc291cmNlQ2FjaGVN
YW5hZ2VyLmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBNZXRob2Qu
Y3BwIFwKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHAgXApA
QCAtNzE5LDYgKzczNSw3IEBAIFNPVVJDRVMgKz0gXAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViR3JhcGhpY3NMYXllci5jcHAgXAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudC5jcHAgXAorICAgIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwIFwKICAgICBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYlBvcHVwTWVudS5jcHAgXAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViU2VhcmNoUG9wdXBNZW51LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tBUElDYXN0LmgKaW5kZXggZjNhMWQwNWNmZTUxMjI0ZGE1MTJmZjU1ZTFjOGRhMGQw
N2ZlM2JlYi4uOTc3N2MxYWNhZjQ4YzkwZmY0NGUzZjk1YzJiYzVhZGEyYzM1YjJkOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaApAQCAtNzIsNiArNzIsOSBA
QCBjbGFzcyBXZWJJbnNwZWN0b3JQcm94eTsKIGNsYXNzIFdlYktleVZhbHVlU3RvcmFnZU1hbmFn
ZXJQcm94eTsKIGNsYXNzIFdlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHk7CiBjbGFzcyBXZWJOYXZp
Z2F0aW9uRGF0YTsKK2NsYXNzIFdlYk5vdGlmaWNhdGlvbjsKK2NsYXNzIFdlYk5vdGlmaWNhdGlv
blByb3ZpZGVyOworY2xhc3MgV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5OwogY2xhc3MgV2Vi
T3BlblBhbmVsUGFyYW1ldGVyczsKIGNsYXNzIFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJv
eHk7CiBjbGFzcyBXZWJQYWdlR3JvdXA7CkBAIC0xMDQsNiArMTA3LDkgQEAgV0tfQUREX0FQSV9N
QVBQSU5HKFdLSWNvbkRhdGFiYXNlUmVmLCBXZWJJY29uRGF0YWJhc2UpCiBXS19BRERfQVBJX01B
UFBJTkcoV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUmVmLCBXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5h
Z2VyUHJveHkpCiBXS19BRERfQVBJX01BUFBJTkcoV0tNZWRpYUNhY2hlTWFuYWdlclJlZiwgV2Vi
TWVkaWFDYWNoZU1hbmFnZXJQcm94eSkKIFdLX0FERF9BUElfTUFQUElORyhXS05hdmlnYXRpb25E
YXRhUmVmLCBXZWJOYXZpZ2F0aW9uRGF0YSkKK1dLX0FERF9BUElfTUFQUElORyhXS05vdGlmaWNh
dGlvbk1hbmFnZXJSZWYsIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eSkKK1dLX0FERF9BUElf
TUFQUElORyhXS05vdGlmaWNhdGlvblByb3ZpZGVyUmVmLCBXZWJOb3RpZmljYXRpb25Qcm92aWRl
cikKK1dLX0FERF9BUElfTUFQUElORyhXS05vdGlmaWNhdGlvblJlZiwgV2ViTm90aWZpY2F0aW9u
KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLT3BlblBhbmVsUGFyYW1ldGVyc1JlZiwgV2ViT3BlblBh
bmVsUGFyYW1ldGVycykKIFdLX0FERF9BUElfTUFQUElORyhXS09wZW5QYW5lbFJlc3VsdExpc3Rl
bmVyUmVmLCBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5KQogV0tfQUREX0FQSV9NQVBQ
SU5HKFdLUGFnZUdyb3VwUmVmLCBXZWJQYWdlR3JvdXApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCmluZGV4IDQ1ODAzY2JkZWRjZWQ0ZTU0YjVjZWEyMjNl
ZTkwMDNkNzk3YTdjNWEuLmNlZjg5NzcxNDQzOWI2NmFhZjc3NzgyMDI3Y2Y2NTkxNGNkZGQ3NzEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCkBAIC0x
OTUsNiArMTk1LDExIEBAIFdLTWVkaWFDYWNoZU1hbmFnZXJSZWYgV0tDb250ZXh0R2V0TWVkaWFD
YWNoZU1hbmFnZXIoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYpCiAgICAgcmV0dXJuIHRvQVBJKHRv
SW1wbChjb250ZXh0UmVmKS0+bWVkaWFDYWNoZU1hbmFnZXJQcm94eSgpKTsKIH0KIAorV0tOb3Rp
ZmljYXRpb25NYW5hZ2VyUmVmIFdLQ29udGV4dEdldE5vdGlmaWNhdGlvbk1hbmFnZXIoV0tDb250
ZXh0UmVmIGNvbnRleHRSZWYpCit7CisgICAgcmV0dXJuIHRvQVBJKHRvSW1wbChjb250ZXh0UmVm
KS0+bm90aWZpY2F0aW9uTWFuYWdlclByb3h5KCkpOworfQorCiBXS1BsdWdpblNpdGVEYXRhTWFu
YWdlclJlZiBXS0NvbnRleHRHZXRQbHVnaW5TaXRlRGF0YU1hbmFnZXIoV0tDb250ZXh0UmVmIGNv
bnRleHRSZWYpCiB7CiAgICAgcmV0dXJuIHRvQVBJKHRvSW1wbChjb250ZXh0UmVmKS0+cGx1Z2lu
U2l0ZURhdGFNYW5hZ2VyKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLQ29udGV4dC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29u
dGV4dC5oCmluZGV4IDExZjlhY2Q2MDA5NzQxMWE5MTNmMGExZGI0NDY2NGIzZDkzMzgzMDYuLmYw
YWU1OTQ1NjQzNzExYTEwOWU2MzcyNmVhYjhmOTc4NGEwNzI4MGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmgKQEAgLTE0OCw2ICsxNDgsNyBAQCBXS19FWFBP
UlQgV0tHZW9sb2NhdGlvbk1hbmFnZXJSZWYgV0tDb250ZXh0R2V0R2VvbG9jYXRpb25NYW5hZ2Vy
KFdLQ29udGV4dFJlZiBjbwogV0tfRVhQT1JUIFdLSWNvbkRhdGFiYXNlUmVmIFdLQ29udGV4dEdl
dEljb25EYXRhYmFzZShXS0NvbnRleHRSZWYgY29udGV4dCk7CiBXS19FWFBPUlQgV0tLZXlWYWx1
ZVN0b3JhZ2VNYW5hZ2VyUmVmIFdLQ29udGV4dEdldEtleVZhbHVlU3RvcmFnZU1hbmFnZXIoV0tD
b250ZXh0UmVmIGNvbnRleHQpOwogV0tfRVhQT1JUIFdLTWVkaWFDYWNoZU1hbmFnZXJSZWYgV0tD
b250ZXh0R2V0TWVkaWFDYWNoZU1hbmFnZXIoV0tDb250ZXh0UmVmIGNvbnRleHQpOworV0tfRVhQ
T1JUIFdLTm90aWZpY2F0aW9uTWFuYWdlclJlZiBXS0NvbnRleHRHZXROb3RpZmljYXRpb25NYW5h
Z2VyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKIFdLX0VYUE9SVCBXS1BsdWdpblNpdGVEYXRhTWFu
YWdlclJlZiBXS0NvbnRleHRHZXRQbHVnaW5TaXRlRGF0YU1hbmFnZXIoV0tDb250ZXh0UmVmIGNv
bnRleHQpOwogV0tfRVhQT1JUIFdLUmVzb3VyY2VDYWNoZU1hbmFnZXJSZWYgV0tDb250ZXh0R2V0
UmVzb3VyY2VDYWNoZU1hbmFnZXIoV0tDb250ZXh0UmVmIGNvbnRleHQpOwogICAgIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9uLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNhdGlvbi5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMzhjNDcyZGY3NzE5NDYwYThlZTc1M2MwY2I0YTIwMTA5YjZkODVmNwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNhdGlvbi5j
cHAKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJXS05vdGlmaWNhdGlvbi5oIgorCisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisjaW5j
bHVkZSAiV2ViTm90aWZpY2F0aW9uLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKK1dL
VHlwZUlEIFdLTm90aWZpY2F0aW9uR2V0VHlwZUlEKCkKK3sKKyAgICByZXR1cm4gdG9BUEkoV2Vi
Tm90aWZpY2F0aW9uOjpBUElUeXBlKTsKK30KKworV0tTdHJpbmdSZWYgV0tOb3RpZmljYXRpb25D
b3B5VGl0bGUoV0tOb3RpZmljYXRpb25SZWYgbm90aWZpY2F0aW9uKQoreworICAgIHJldHVybiB0
b0NvcGllZEFQSSh0b0ltcGwobm90aWZpY2F0aW9uKS0+dGl0bGUoKSk7Cit9CisKK1dLU3RyaW5n
UmVmIFdLTm90aWZpY2F0aW9uQ29weUJvZHkoV0tOb3RpZmljYXRpb25SZWYgbm90aWZpY2F0aW9u
KQoreworICAgIHJldHVybiB0b0NvcGllZEFQSSh0b0ltcGwobm90aWZpY2F0aW9uKS0+Ym9keSgp
KTsKK30KKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTm90
aWZpY2F0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tOb3RpZmljYXRp
b24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5iOGQyZGY1ODljZjRmZTczOGEwNDkzNWU4NmY5ZTc3MTgwYTU2Yjky
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTm90
aWZpY2F0aW9uLmgKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV0tOb3Rp
ZmljYXRpb25faAorI2RlZmluZSBXS05vdGlmaWNhdGlvbl9oCisKKyNpbmNsdWRlIDxXZWJLaXQy
L1dLQmFzZS5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisK
K1dLX0VYUE9SVCBXS1R5cGVJRCBXS05vdGlmaWNhdGlvbkdldFR5cGVJRCgpOworCitXS19FWFBP
UlQgV0tTdHJpbmdSZWYgV0tOb3RpZmljYXRpb25Db3B5VGl0bGUoV0tOb3RpZmljYXRpb25SZWYg
bm90aWZpY2F0aW9uKTsKK1dLX0VYUE9SVCBXS1N0cmluZ1JlZiBXS05vdGlmaWNhdGlvbkNvcHlC
b2R5KFdLTm90aWZpY2F0aW9uUmVmIG5vdGlmaWNhdGlvbik7CisgICAgCisjaWZkZWYgX19jcGx1
c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLy8gV0tOb3RpZmljYXRpb25faApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9uTWFuYWdlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tOb3RpZmljYXRpb25NYW5hZ2Vy
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4xMDEyZGYxNDcyOGMwOTBlMjRkNDY0NjljN2IzNTYzMGU1OWRlYTNi
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTm90
aWZpY2F0aW9uTWFuYWdlci5jcHAKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXS05vdGlmaWNhdGlvbk1hbmFnZXIuaCIKKworI2lu
Y2x1ZGUgIldLQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94
eS5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCitXS1R5cGVJRCBXS05vdGlmaWNhdGlv
bk1hbmFnZXJHZXRUeXBlSUQoKQoreworICAgIHJldHVybiB0b0FQSShXZWJOb3RpZmljYXRpb25N
YW5hZ2VyUHJveHk6OkFQSVR5cGUpOworfQordm9pZCBXS05vdGlmaWNhdGlvbk1hbmFnZXJTZXRQ
cm92aWRlcihXS05vdGlmaWNhdGlvbk1hbmFnZXJSZWYgbWFuYWdlclJlZiwgY29uc3QgV0tOb3Rp
ZmljYXRpb25Qcm92aWRlciogd2tQcm92aWRlcikKK3sKKyAgICB0b0ltcGwobWFuYWdlclJlZikt
PmluaXRpYWxpemVQcm92aWRlcih3a1Byb3ZpZGVyKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNhdGlvbk1hbmFnZXIuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNhdGlvbk1hbmFnZXIuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4zYzc0MzUxODBhNGRkZDRmNmY1YmZjYmM2YTljNDQyYjBlNzRiNDVlCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9uTWFuYWdl
ci5oCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdLTm90aWZpY2F0aW9u
TWFuYWdlcl9oCisjZGVmaW5lIFdLTm90aWZpY2F0aW9uTWFuYWdlcl9oCisKKyNpbmNsdWRlICJX
S05vdGlmaWNhdGlvblByb3ZpZGVyLmgiCisjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KKwor
I2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCitXS19FWFBPUlQgV0tU
eXBlSUQgV0tOb3RpZmljYXRpb25NYW5hZ2VyR2V0VHlwZUlEKCk7CitXS19FWFBPUlQgdm9pZCBX
S05vdGlmaWNhdGlvbk1hbmFnZXJTZXRQcm92aWRlcihXS05vdGlmaWNhdGlvbk1hbmFnZXJSZWYg
bWFuYWdlclJlZiwgY29uc3QgV0tOb3RpZmljYXRpb25Qcm92aWRlciogd2tQcm92aWRlcik7CisK
KyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRpZiAvLyBXS05vdGlmaWNhdGlv
bk1hbmFnZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
Tm90aWZpY2F0aW9uUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S05vdGlmaWNhdGlvblByb3ZpZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjdiYTYyZmNhMTk1ZWFhMjJjOTM3
OTY1MTZmZDQxMTM5MTViOGM4MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNhdGlvblByb3ZpZGVyLmgKQEAgLTAsMCArMSw1MyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgV0tOb3RpZmljYXRpb25Qcm92aWRlcl9oCisjZGVmaW5lIFdL
Tm90aWZpY2F0aW9uUHJvdmlkZXJfaAorCisjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KKwor
I2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCit0eXBlZGVmIHZvaWQg
KCpXS05vdGlmaWNhdGlvblByb3ZpZGVyU2hvd0NhbGxiYWNrKShXS05vdGlmaWNhdGlvblJlZiBu
b3RpZmljYXRpb24sIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwordHlwZWRlZiB2b2lkICgqV0tO
b3RpZmljYXRpb25Qcm92aWRlckNhbmNlbENhbGxiYWNrKShXS05vdGlmaWNhdGlvblJlZiBub3Rp
ZmljYXRpb24sIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOworCitzdHJ1Y3QgV0tOb3RpZmljYXRp
b25Qcm92aWRlciB7CisgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHZlcnNpb247CisgICAgY29uc3Qgdm9pZCogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudEluZm87CisgICAgV0tOb3Rp
ZmljYXRpb25Qcm92aWRlclNob3dDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgIHNob3c7
CisgICAgV0tOb3RpZmljYXRpb25Qcm92aWRlckNhbmNlbENhbGxiYWNrICAgICAgICAgICAgICAg
ICAgICAgIGNhbmNlbDsKK307Cit0eXBlZGVmIHN0cnVjdCBXS05vdGlmaWNhdGlvblByb3ZpZGVy
IFdLTm90aWZpY2F0aW9uUHJvdmlkZXI7CisKK2VudW0geyBrV0tOb3RpZmljYXRpb25Qcm92aWRl
ckN1cnJlbnRWZXJzaW9uID0gMCB9OworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgor
CisKKyNlbmRpZiAvLyBXS05vdGlmaWNhdGlvblByb3ZpZGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJDb250ZXh0LmNwcAppbmRleCA5YzRiYTllNTRkNzc3NjlkYmE0MDE4YjMzMzQzY2Nl
NmU2MDY5YWU4Li4yN2I5ZWYzMjU1MmQ0ZTljYTVmYmQwZDJiMTVlYzYwOWQzMmZlZDM3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCkBAIC00Niw2ICs0Niw3IEBACiAj
aW5jbHVkZSAiV2ViSWNvbkRhdGFiYXNlLmgiCiAjaW5jbHVkZSAiV2ViS2V5VmFsdWVTdG9yYWdl
TWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eS5oIgor
I2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYlBs
dWdpblNpdGVEYXRhTWFuYWdlci5oIgogI2luY2x1ZGUgIldlYlBhZ2VHcm91cC5oIgogI2luY2x1
ZGUgIldlYk1lbW9yeVNhbXBsZXIuaCIKQEAgLTEzMSw2ICsxMzIsNyBAQCBXZWJDb250ZXh0OjpX
ZWJDb250ZXh0KFByb2Nlc3NNb2RlbCBwcm9jZXNzTW9kZWwsIGNvbnN0IFN0cmluZyYgaW5qZWN0
ZWRCdW5kbGVQYQogICAgICwgbV9pY29uRGF0YWJhc2UoV2ViSWNvbkRhdGFiYXNlOjpjcmVhdGUo
dGhpcykpCiAgICAgLCBtX2tleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eShXZWJLZXlWYWx1ZVN0
b3JhZ2VNYW5hZ2VyUHJveHk6OmNyZWF0ZSh0aGlzKSkKICAgICAsIG1fbWVkaWFDYWNoZU1hbmFn
ZXJQcm94eShXZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5OjpjcmVhdGUodGhpcykpCisgICAgLCBt
X25vdGlmaWNhdGlvbk1hbmFnZXJQcm94eShXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OmNy
ZWF0ZSh0aGlzKSkKICAgICAsIG1fcGx1Z2luU2l0ZURhdGFNYW5hZ2VyKFdlYlBsdWdpblNpdGVE
YXRhTWFuYWdlcjo6Y3JlYXRlKHRoaXMpKQogICAgICwgbV9yZXNvdXJjZUNhY2hlTWFuYWdlclBy
b3h5KFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHk6OmNyZWF0ZSh0aGlzKSkKICNpZiBQTEFU
Rk9STShXSU4pCkBAIC0xODEsNiArMTgzLDkgQEAgV2ViQ29udGV4dDo6fldlYkNvbnRleHQoKQog
CiAgICAgbV9tZWRpYUNhY2hlTWFuYWdlclByb3h5LT5pbnZhbGlkYXRlKCk7CiAgICAgbV9tZWRp
YUNhY2hlTWFuYWdlclByb3h5LT5jbGVhckNvbnRleHQoKTsKKyAgICAKKyAgICBtX25vdGlmaWNh
dGlvbk1hbmFnZXJQcm94eS0+aW52YWxpZGF0ZSgpOworICAgIG1fbm90aWZpY2F0aW9uTWFuYWdl
clByb3h5LT5jbGVhckNvbnRleHQoKTsKIAogICAgIG1fcGx1Z2luU2l0ZURhdGFNYW5hZ2VyLT5p
bnZhbGlkYXRlKCk7CiAgICAgbV9wbHVnaW5TaXRlRGF0YU1hbmFnZXItPmNsZWFyQ29udGV4dCgp
OwpAQCAtMzY5LDYgKzM3NCw3IEBAIHZvaWQgV2ViQ29udGV4dDo6ZGlzY29ubmVjdFByb2Nlc3Mo
V2ViUHJvY2Vzc1Byb3h5KiBwcm9jZXNzKQogICAgIG1fZ2VvbG9jYXRpb25NYW5hZ2VyUHJveHkt
PmludmFsaWRhdGUoKTsKICAgICBtX2tleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eS0+aW52YWxp
ZGF0ZSgpOwogICAgIG1fbWVkaWFDYWNoZU1hbmFnZXJQcm94eS0+aW52YWxpZGF0ZSgpOworICAg
IG1fbm90aWZpY2F0aW9uTWFuYWdlclByb3h5LT5pbnZhbGlkYXRlKCk7CiAgICAgbV9yZXNvdXJj
ZUNhY2hlTWFuYWdlclByb3h5LT5pbnZhbGlkYXRlKCk7CiAKICAgICAvLyBXaGVuIG91dCBvZiBw
cm9jZXNzIHBsdWctaW5zIGFyZSBlbmFibGVkLCB3ZSBkb24ndCB3YW50IHRvIGludmFsaWRhdGUg
dGhlIHBsdWctaW4gc2l0ZSBkYXRhCkBAIC02OTUsNiArNzAxLDExIEBAIHZvaWQgV2ViQ29udGV4
dDo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29y
ZUlQQzo6TWVzCiAgICAgICAgIG1fbWVkaWFDYWNoZU1hbmFnZXJQcm94eS0+ZGlkUmVjZWl2ZU1l
c3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOwogICAgICAgICByZXR1cm47
CiAgICAgfQorICAgIAorICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNz
V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5PigpKSB7CisgICAgICAgIG1fbm90aWZpY2F0aW9u
TWFuYWdlclByb3h5LT5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFy
Z3VtZW50cyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBpZiAobWVzc2FnZUlELmlz
PENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHk+KCkpIHsK
ICAgICAgICAgbV9yZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LT5kaWRSZWNlaXZlV2ViUmVzb3Vy
Y2VDYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVu
dHMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmgKaW5kZXggYzU3YTY3YmM3Zjkx
ODM1MGViYmY5NmE3NzU4N2I4YThiY2JmOTBlMS4uNzA0Mjg1ZWVlNzVmYzE2YzBiNTNjOWZiYjBm
NzZmNTEzMjRlYjNlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNv
bnRleHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oCkBAIC01
NCw2ICs1NCw3IEBAIGNsYXNzIFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5OwogY2xhc3MgV2Vi
SWNvbkRhdGFiYXNlOwogY2xhc3MgV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5OwogY2xh
c3MgV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eTsKK2NsYXNzIFdlYk5vdGlmaWNhdGlvbk1hbmFn
ZXJQcm94eTsKIGNsYXNzIFdlYlBhZ2VHcm91cDsKIGNsYXNzIFdlYlBhZ2VQcm94eTsKIGNsYXNz
IFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHk7CkBAIC0xNTcsNiArMTU4LDcgQEAgcHVibGlj
OgogICAgIFdlYkljb25EYXRhYmFzZSogaWNvbkRhdGFiYXNlKCkgY29uc3QgeyByZXR1cm4gbV9p
Y29uRGF0YWJhc2UuZ2V0KCk7IH0KICAgICBXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHkq
IGtleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eSgpIGNvbnN0IHsgcmV0dXJuIG1fa2V5VmFsdWVT
dG9yYWdlTWFuYWdlclByb3h5LmdldCgpOyB9CiAgICAgV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94
eSogbWVkaWFDYWNoZU1hbmFnZXJQcm94eSgpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFDYWNoZU1h
bmFnZXJQcm94eS5nZXQoKTsgfQorICAgIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eSogbm90
aWZpY2F0aW9uTWFuYWdlclByb3h5KCkgY29uc3QgeyByZXR1cm4gbV9ub3RpZmljYXRpb25NYW5h
Z2VyUHJveHkuZ2V0KCk7IH0KICAgICBXZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXIqIHBsdWdpblNp
dGVEYXRhTWFuYWdlcigpIGNvbnN0IHsgcmV0dXJuIG1fcGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmdl
dCgpOyB9CiAgICAgV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eSogcmVzb3VyY2VDYWNoZU1h
bmFnZXJQcm94eSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5n
ZXQoKTsgfQogCkBAIC0yODIsNiArMjg0LDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8V2ViSWNv
bkRhdGFiYXNlPiBtX2ljb25EYXRhYmFzZTsKICAgICBSZWZQdHI8V2ViS2V5VmFsdWVTdG9yYWdl
TWFuYWdlclByb3h5PiBtX2tleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eTsKICAgICBSZWZQdHI8
V2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eT4gbV9tZWRpYUNhY2hlTWFuYWdlclByb3h5OworICAg
IFJlZlB0cjxXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk+IG1fbm90aWZpY2F0aW9uTWFuYWdl
clByb3h5OwogICAgIFJlZlB0cjxXZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXI+IG1fcGx1Z2luU2l0
ZURhdGFNYW5hZ2VyOwogICAgIFJlZlB0cjxXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5PiBt
X3Jlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJOb3RpZmljYXRpb24uY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYk5vdGlmaWNhdGlvbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWQyOGMxNGY3NWQ1ZWI1YzRiYjZmMjJk
ZTk5MGNkZjJlN2RhYjA4ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJOb3RpZmljYXRpb24uY3BwCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uLmgiCisKKyNpbmNs
dWRlICJBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgIkFyZ3VtZW50RGVjb2Rlci5oIgorI2lu
Y2x1ZGUgIkFyZ3VtZW50RW5jb2Rlci5oIgorI2luY2x1ZGUgIkFyZ3VtZW50cy5oIgorCituYW1l
c3BhY2UgV2ViS2l0IHsKKworV2ViTm90aWZpY2F0aW9uOjpXZWJOb3RpZmljYXRpb24oKQorewor
fQorCitXZWJOb3RpZmljYXRpb246OldlYk5vdGlmaWNhdGlvbihjb25zdCBTdHJpbmcmIHRpdGxl
LCBjb25zdCBTdHJpbmcmIGJvZHkpCisgICAgOiBtX3RpdGxlKHRpdGxlKQorICAgICwgbV9ib2R5
KGJvZHkpCit7Cit9CisKK1dlYk5vdGlmaWNhdGlvbjo6fldlYk5vdGlmaWNhdGlvbigpCit7Cit9
CisKK3ZvaWQgV2ViTm90aWZpY2F0aW9uOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVy
KiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXItPmVuY29kZShDb3JlSVBDOjpJbihtX3Rp
dGxlLCBtX2JvZHkpKTsKK30KKworYm9vbCBXZWJOb3RpZmljYXRpb246OmRlY29kZShDb3JlSVBD
OjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIFdlYk5vdGlmaWNhdGlvbiYgbm90aWZpY2F0aW9u
KQoreworICAgIHJldHVybiBkZWNvZGVyLT5kZWNvZGUoQ29yZUlQQzo6T3V0KG5vdGlmaWNhdGlv
bi5tX3RpdGxlLCBub3RpZmljYXRpb24ubV9ib2R5KSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5vdGlmaWNhdGlv
bi5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5vdGlmaWNhdGlvbi5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjU2ODQ5ZGY1MmU4YzNiNjI1ZWI2OWMyMzVhMjVmNDcxN2Y5ODdiYTMKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9uLmgKQEAgLTAs
MCArMSw3MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViTm90aWZpY2F0aW9uX2gKKyNkZWZp
bmUgV2ViTm90aWZpY2F0aW9uX2gKKworI2luY2x1ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1ZGUg
PHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25h
bWVzcGFjZSBDb3JlSVBDIHsKKworY2xhc3MgQXJndW1lbnREZWNvZGVyOworY2xhc3MgQXJndW1l
bnRFbmNvZGVyOworCit9IC8vIG5hbWVzcGFjZSBDb3JlSVBDCisKK25hbWVzcGFjZSBXZWJLaXQg
eworICAgIAorY2xhc3MgV2ViTm90aWZpY2F0aW9uIDogcHVibGljIEFQSU9iamVjdCB7CitwdWJs
aWM6CisgICAgc3RhdGljIGNvbnN0IFR5cGUgQVBJVHlwZSA9IFR5cGVOb3RpZmljYXRpb247Cisg
ICAgCisgICAgV2ViTm90aWZpY2F0aW9uKCk7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViTm90
aWZpY2F0aW9uPiBjcmVhdGUoY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiBib2R5
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJOb3RpZmljYXRpb24odGl0
bGUsIGJvZHkpKTsKKyAgICB9CisgICAgdmlydHVhbCB+V2ViTm90aWZpY2F0aW9uKCk7CisgICAg
CisgICAgY29uc3QgU3RyaW5nJiB0aXRsZSgpIGNvbnN0IHsgcmV0dXJuIG1fdGl0bGU7IH0KKyAg
ICAKKyAgICBjb25zdCBTdHJpbmcmIGJvZHkoKSBjb25zdCB7IHJldHVybiBtX2JvZHk7IH0KKwor
ICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciopIGNvbnN0OworICAgIHN0
YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBXZWJOb3RpZmljYXRp
b24mKTsKKworcHJpdmF0ZToKKyAgICBXZWJOb3RpZmljYXRpb24oY29uc3QgU3RyaW5nJiB0aXRs
ZSwgY29uc3QgU3RyaW5nJiBib2R5KTsKKworICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3Qg
eyByZXR1cm4gQVBJVHlwZTsgfQorICAgIAorICAgIFN0cmluZyBtX3RpdGxlOworICAgIFN0cmlu
ZyBtX2JvZHk7Cit9OworICAgIAorfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBX
ZWJOb3RpZmljYXRpb25faApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
Yk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMmIwY2Q3NjA5OTc4
ZTM1OTFmMzFiOWQ1MTU1YjMzNTkyYWM5NzY3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAKQEAgLTAsMCAr
MSw3NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJO
b3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaCIKKworI2luY2x1ZGUgIldlYkNvbnRleHQuaCIKKyNp
bmNsdWRlICJXZWJOb3RpZmljYXRpb24uaCIKKyNpbmNsdWRlIDxXZWJDb3JlL05vdGlmaWNhdGlv
bkNvbnRlbnRzLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXVEY7Cit1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1Bhc3NSZWZQdHI8V2ViTm90aWZpY2F0aW9u
TWFuYWdlclByb3h5PiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OmNyZWF0ZShXZWJDb250
ZXh0KiBjb250ZXh0KQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViTm90aWZpY2F0aW9u
TWFuYWdlclByb3h5KGNvbnRleHQpKTsKK30KKworV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5
OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkoV2ViQ29udGV4dCogY29udGV4dCkKKyAgICA6
IG1fY29udGV4dChjb250ZXh0KQoreworfQorCitXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6
On5XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkoKQoreworfQorCit2b2lkIFdlYk5vdGlmaWNh
dGlvbk1hbmFnZXJQcm94eTo6aW52YWxpZGF0ZSgpCit7Cit9CisKK3ZvaWQgV2ViTm90aWZpY2F0
aW9uTWFuYWdlclByb3h5Ojppbml0aWFsaXplUHJvdmlkZXIoY29uc3QgV0tOb3RpZmljYXRpb25Q
cm92aWRlciAqcHJvdmlkZXIpCit7CisgICAgbV9wcm92aWRlci5pbml0aWFsaXplKHByb3ZpZGVy
KTsKK30KKwordm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBt
ZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQoreworICAgIGRp
ZFJlY2VpdmVXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1l
c3NhZ2VJRCwgYXJndW1lbnRzKTsKK30KKwordm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJv
eHk6OnNob3coY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiBib2R5LCB1aW50NjRf
dCBub3RpZmljYXRpb25JRCkKK3sKKyAgICBSZWZQdHI8V2ViTm90aWZpY2F0aW9uPiBub3RpZmlj
YXRpb24gPSBXZWJOb3RpZmljYXRpb246OmNyZWF0ZSh0aXRsZSwgYm9keSk7CisgICAgbV9wcm92
aWRlci5zaG93KG5vdGlmaWNhdGlvbi5nZXQoKSk7Cit9CisKK3ZvaWQgV2ViTm90aWZpY2F0aW9u
TWFuYWdlclByb3h5OjpjYW5jZWwodWludDY0X3Qgbm90aWZpY2F0aW9uSUQpCit7CisgICAgbV9w
cm92aWRlci5jYW5jZWwoMCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmNjNzc5YjlmZWJkZDQ2MmM1NjE3ZjMzMDNmZGM4ZGQ5Y2E3NGYzOWIKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9u
TWFuYWdlclByb3h5LmgKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2Vi
Tm90aWZpY2F0aW9uTWFuYWdlclByb3h5X2gKKyNkZWZpbmUgV2ViTm90aWZpY2F0aW9uTWFuYWdl
clByb3h5X2gKKworI2luY2x1ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1ZGUgIk1lc3NhZ2VJRC5o
IgorI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmgiCisjaW5jbHVkZSA8d3RmL1Bh
c3NSZWZQdHIuaD4KKworbmFtZXNwYWNlIENvcmVJUEMgeworY2xhc3MgQXJndW1lbnREZWNvZGVy
OworY2xhc3MgQ29ubmVjdGlvbjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdl
YkNvbnRleHQ7CisKK2NsYXNzIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eSA6IHB1YmxpYyBB
UElPYmplY3QgeworcHVibGljOgorICAgIHN0YXRpYyBjb25zdCBUeXBlIEFQSVR5cGUgPSBUeXBl
Tm90aWZpY2F0aW9uTWFuYWdlcjsKKyAgICAKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyUHJveHk+IGNyZWF0ZShXZWJDb250ZXh0Kik7CisgICAgdmlydHVhbCB+
V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5KCk7CisgICAgCisgICAgdm9pZCBpbnZhbGlkYXRl
KCk7CisgICAgdm9pZCBjbGVhckNvbnRleHQoKSB7IG1fY29udGV4dCA9IDA7IH0KKworICAgIHZv
aWQgaW5pdGlhbGl6ZVByb3ZpZGVyKGNvbnN0IFdLTm90aWZpY2F0aW9uUHJvdmlkZXIqKTsKKyAg
ICAKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3Jl
SVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworCitwcml2YXRlOgor
ICAgIGV4cGxpY2l0IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eShXZWJDb250ZXh0Kik7Cisg
ICAgCisgICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBBUElUeXBlOyB9Cisg
ICAgCisgICAgdm9pZCBkaWRSZWNlaXZlV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5TWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1
bWVudERlY29kZXIqKTsKKyAgICAKKyAgICAvLyBNZXNzYWdlIGhhbmRsZXJzCisgICAgdm9pZCBz
aG93KGNvbnN0IFdURjo6U3RyaW5nJiB0aXRsZSwgY29uc3QgV1RGOjpTdHJpbmcmIGJvZHksIHVp
bnQ2NF90IG5vdGlmaWNhdGlvbklEKTsKKyAgICB2b2lkIGNhbmNlbCh1aW50NjRfdCBub3RpZmlj
YXRpb25JRCk7CisgICAgCisgICAgV2ViQ29udGV4dCogbV9jb250ZXh0OworICAgIFdlYk5vdGlm
aWNhdGlvblByb3ZpZGVyIG1fcHJvdmlkZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KworI2VuZGlmIC8vIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eV9oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5Lm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQ
cm94eS5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNzY3OGE0YjIzNWRkNDVlNzE2MmY0ZDI3Mjdi
NzdhYTVmYjgwNDRiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDI2IEBA
CisjIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisj
CisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
CisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK21lc3NhZ2VzIC0+IFdl
Yk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eSB7CisgICAgU2hvdyhXVEY6OlN0cmluZyB0aXRsZSwg
V1RGOjpTdHJpbmcgYm9keSwgdWludDY0X3Qgbm90aWZpY2F0aW9uSUQpOworICAgIENhbmNlbCh1
aW50NjRfdCBub3RpZmljYXRpb25JRCk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mN2FjNWU3ODdk
NmJjMjYzN2ZmMDczNzQxMTA1MGM2MjBlNzQ5ZmM5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcApAQCAtMCwwICsx
LDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYk5v
dGlmaWNhdGlvblByb3ZpZGVyLmgiCisKKyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKyNpbmNsdWRl
ICJXZWJOb3RpZmljYXRpb24uaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgV2ViTm90
aWZpY2F0aW9uUHJvdmlkZXI6OnNob3coV2ViTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24pCit7
CisgICAgaWYgKCFtX2NsaWVudC5zaG93KQorICAgICAgICByZXR1cm47CisgICAgCisgICAgbV9j
bGllbnQuc2hvdyh0b0FQSShub3RpZmljYXRpb24pLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKK30K
Kwordm9pZCBXZWJOb3RpZmljYXRpb25Qcm92aWRlcjo6Y2FuY2VsKFdlYk5vdGlmaWNhdGlvbiog
bm90aWZpY2F0aW9uKQoreworICAgIGlmICghbV9jbGllbnQuY2FuY2VsKQorICAgICAgICByZXR1
cm47CisgICAgCisgICAgbV9jbGllbnQuY2FuY2VsKHRvQVBJKG5vdGlmaWNhdGlvbiksIG1fY2xp
ZW50LmNsaWVudEluZm8pOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOb3RpZmljYXRpb25Qcm92aWRlci5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZWIyYmY0N2ViYmMxNWQzMGRkMTM4MThmNjljNDMzZGJlZTI4YzVhMgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOb3RpZmljYXRpb25Qcm92aWRlci5o
CkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYk5vdGlmaWNhdGlvblBy
b3ZpZGVyX2gKKyNkZWZpbmUgV2ViTm90aWZpY2F0aW9uUHJvdmlkZXJfaAorCisjaW5jbHVkZSAi
QVBJQ2xpZW50LmgiCisjaW5jbHVkZSAiV0tOb3RpZmljYXRpb25Qcm92aWRlci5oIgorI2luY2x1
ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJOb3Rp
ZmljYXRpb247CisgICAgCitjbGFzcyBXZWJOb3RpZmljYXRpb25Qcm92aWRlciA6IHB1YmxpYyBB
UElDbGllbnQ8V0tOb3RpZmljYXRpb25Qcm92aWRlciwga1dLTm90aWZpY2F0aW9uUHJvdmlkZXJD
dXJyZW50VmVyc2lvbj4geworcHVibGljOgorICAgIHZvaWQgc2hvdyhXZWJOb3RpZmljYXRpb24q
KTsKKyAgICB2b2lkIGNhbmNlbChXZWJOb3RpZmljYXRpb24qKTsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViTm90aWZpY2F0aW9uUHJvdmlkZXJfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAwNWVmN2MxZjgw
MTRmMzY2ZDFiMzNkZjY0M2M0YzU2M2IzY2Y5YTQ2Li44NmJiYWE2Y2FjMjEwM2Y0NTE1MzE5ZWE4
YWNjMmRjZjkzNDkxYjlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmNwcApAQCAtMzAyLDYgKzMwMiw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRS
ZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDCiAg
ICAgICAgIHx8IG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJJY29uRGF0YWJh
c2U+KCkKICAgICAgICAgfHwgbWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYktl
eVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eT4oKQogICAgICAgICB8fCBtZXNzYWdlSUQuaXM8Q29y
ZUlQQzo6TWVzc2FnZUNsYXNzV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eT4oKQorICAgICAgICB8
fCBtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViTm90aWZpY2F0aW9uTWFuYWdl
clByb3h5PigpCiAgICAgICAgIHx8IG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NX
ZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5PigpKSB7CiAgICAgICAgIG1fY29udGV4dC0+ZGlk
UmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOwogICAgICAg
ICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggNTFhOTFmODVlMzY4N2I0MDVjYTAxZDk2NTJmMzA3ODkwMDc5MDg5ZS4u
OTUzZTliMDRiMzQ2ZDkyZDdjZGM0NjVkYWY2ODEzNjg0MjIwOTM5ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjQ2LDYgKzI0
NiwyMiBAQAogCQkxQ0E4Qjk1NDEyN0M4OTE1MDA1NzZDMkIgLyogV2ViSW5zcGVjdG9yTWFjLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM4RTJEQUQx
Mjc4QzVCMjAwQkM3QkQwIC8qIFdlYkluc3BlY3Rvck1hYy5tbSAqLzsgfTsKIAkJMjlDRDU1QUEx
MjhFMjk0RjAwMTMzQzg1IC8qIFdLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5Q0Q1NUE4MTI4RTI5NEYw
MDEzM0M4NSAvKiBXS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0LmggKi87IH07CiAJCTI5Q0Q1
NUFCMTI4RTI5NEYwMDEzM0M4NSAvKiBXS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0Lm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjlDRDU1QTkxMjhF
Mjk0RjAwMTMzQzg1IC8qIFdLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QubW0gKi87IH07CisJ
CTMxMDk5OTZGMTQ2Qzc0MUQwMDI5REVCOSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHku
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMDk5OTZB
MTQ2QzczOTIwMDI5REVCOSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaCAqLzsgfTsK
KwkJMzEwOTk5NzAxNDZDNzQyMDAwMjlERUI5IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94
eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTA5
OTk2QjE0NkM3M0IxMDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcCAq
LzsgfTsKKwkJMzEwOTk5NzMxNDZDNzVBMjAwMjlERUI5IC8qIFdlYk5vdGlmaWNhdGlvbkNsaWVu
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTA5
OTk3MTE0NkM3NTlCMDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcCAqLzsgfTsK
KwkJMzEwOTk5N0ExNDZDOEIxNDAwMjlERUI5IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEwOTk5Nzgx
NDZDOEIxNDAwMjlERUI5IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwICovOyB9OworCQkz
MTA5OTk3QjE0NkM4QjE0MDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEwOTk5NzkxNDZDOEIx
NDAwMjlERUI5IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXIuaCAqLzsgfTsKKwkJMzEwOTk5Qzcx
NDZDOUUzRDAwMjlERUI5IC8qIFdlYk5vdGlmaWNhdGlvbkNsaWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEwOTk5NjgxNDZDNzFGNTAwMjlERUI5
IC8qIFdlYk5vdGlmaWNhdGlvbkNsaWVudC5oICovOyB9OworCQkzMTJDMEM0NzE0NkREQkJEMDAx
NkM5MTEgLyogV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEyQzBDNDYxNDZEREJCQzAwMTZDOTExIC8qIFdl
Yk5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcCAqLzsgfTsKKwkJMzEyQzBDNEExNDZEREM4QTAwMTZD
OTExIC8qIFdLTm90aWZpY2F0aW9uUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMkMwQzQ5MTQ2RERDOEEwMDE2QzkxMSAvKiBXS05vdGlm
aWNhdGlvblByb3ZpZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJMzE4QkUxNjcxNDczNDMzNzAwQThGQkIyIC8qIFdlYk5vdGlmaWNhdGlvbk1h
bmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAzMThCRTE2NTE0NzM0MzM3MDBBOEZCQjIgLyogV2ViTm90aWZp
Y2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJMzE4QkUxNjgx
NDczNDMzNzAwQThGQkIyIC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eU1lc3NhZ2VzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMThCRTE2NjE0
NzM0MzM3MDBBOEZCQjIgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZXMuaCAq
LzsgfTsKKwkJMzE4QkUxNzExNDc0M0RCMTAwQThGQkIyIC8qIFdLTm90aWZpY2F0aW9uTWFuYWdl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE4QkUx
NzAxNDc0M0RCMTAwQThGQkIyIC8qIFdLTm90aWZpY2F0aW9uTWFuYWdlci5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTMxOEJFMTc1MTQ3NDNERDcw
MEE4RkJCMiAvKiBXS05vdGlmaWNhdGlvbk1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE4QkUxNzQxNDc0M0RENjAwQThGQkIyIC8qIFdL
Tm90aWZpY2F0aW9uTWFuYWdlci5jcHAgKi87IH07CisJCTMxOEJFMTc3MTQ3NDNFNjAwMEE4RkJC
MiAvKiBXS05vdGlmaWNhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAzMThCRTE3NjE0NzQzRTYwMDBBOEZCQjIgLyogV0tOb3RpZmljYXRpb24u
Y3BwICovOyB9OworCQkzMThCRTE3OTE0NzQzRTZGMDBBOEZCQjIgLyogV0tOb3RpZmljYXRpb24u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxOEJFMTc4
MTQ3NDNFNkEwMEE4RkJCMiAvKiBXS05vdGlmaWNhdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTMxQzExQUIzMTQ4NDUyRTkwMDQ5QTRDQyAv
KiBXZWJOb3RpZmljYXRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMzFDMTFBQjExNDg0NTJFOTAwNDlBNENDIC8qIFdlYk5vdGlmaWNhdGlvbi5j
cHAgKi87IH07CisJCTMxQzExQUI0MTQ4NDUyRTkwMDQ5QTRDQyAvKiBXZWJOb3RpZmljYXRpb24u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxQzExQUIy
MTQ4NDUyRTkwMDQ5QTRDQyAvKiBXZWJOb3RpZmljYXRpb24uaCAqLzsgfTsKIAkJMzFFQTI1RDIx
MzRGNzhDMDAwNUIxNDUyIC8qIE5hdGl2ZVdlYk1vdXNlRXZlbnRNYWMubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUVBMjVEMDEzNEY3OEIyMDA1QjE0
NTIgLyogTmF0aXZlV2ViTW91c2VFdmVudE1hYy5tbSAqLzsgfTsKIAkJMzMwOTM0NDcxMzE1Qjky
MjAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzMwOTM0NDMxMzE1QjkyMjAw
OTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQkz
MzA5MzQ0ODEzMTVCOTIyMDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlck1lc3NhZ2VzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMzA5MzQ0NDEzMTVC
OTIyMDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlck1lc3NhZ2VzLmggKi87IH07CkBAIC0xMjAw
LDYgKzEyMTYsMjQgQEAKIAkJMUNBOEI5NDQxMjdDODgyQTAwNTc2QzJCIC8qIFdlYkluc3BlY3Rv
clByb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViSW5z
cGVjdG9yUHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyOUNE
NTVBODEyOEUyOTRGMDAxMzNDODUgLyogV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2Jq
ZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5Q0Q1NUE5MTI4RTI5NEYwMDEz
M0M4NSAvKiBXS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0Lm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdC5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzEwOTk5NjgxNDZDNzFGNTAwMjlERUI5IC8q
IFdlYk5vdGlmaWNhdGlvbkNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJOb3RpZmljYXRpb25D
bGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzEwOTk5NkExNDZDNzM5MjAw
MjlERUI5IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
ZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMzEwOTk5NkIxNDZDNzNCMTAwMjlERUI5IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94
eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJOb3RpZmljYXRp
b25NYW5hZ2VyUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMTA5OTk2
RDE0NkM3M0M0MDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5Lm1lc3NhZ2Vz
LmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5t
ZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzEwOTk5NzExNDZDNzU5
QjAwMjlERUI5IC8qIFdlYk5vdGlmaWNhdGlvbkNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBXZWJOb3RpZmljYXRpb25DbGllbnQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkzMTA5OTk3ODE0NkM4QjE0MDAyOURFQjkgLyogV2ViTm90aWZp
Y2F0aW9uTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBX
ZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcDsgcGF0aCA9IE5vdGlmaWNhdGlvbnMvV2ViTm90aWZp
Y2F0aW9uTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxMDk5OTc5
MTQ2QzhCMTQwMDI5REVCOSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXIuaDsgcGF0aCA9IE5v
dGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkzMTJDMEM0NjE0NkREQkJDMDAxNkM5MTEgLyogV2ViTm90aWZpY2F0aW9uUHJv
dmlkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViTm90aWZp
Y2F0aW9uUHJvdmlkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMTJDMEM0
ODE0NkREQkQzMDAxNkM5MTEgLyogV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMzEyQzBDNDkxNDZEREM4QTAwMTZDOTExIC8qIFdLTm90aWZpY2F0aW9uUHJvdmlkZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tOb3RpZmljYXRpb25Qcm92aWRl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMThCRTE2NTE0NzM0MzM3MDBBOEZC
QjIgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQ
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMx
OEJFMTY2MTQ3MzQzMzcwMEE4RkJCMiAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHlNZXNz
YWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJOb3RpZmljYXRpb25N
YW5hZ2VyUHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMThC
RTE3MDE0NzQzREIxMDBBOEZCQjIgLyogV0tOb3RpZmljYXRpb25NYW5hZ2VyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLTm90aWZpY2F0aW9uTWFuYWdlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkzMThCRTE3NDE0NzQzREQ2MDBBOEZCQjIgLyogV0tOb3Rp
ZmljYXRpb25NYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFdLTm90aWZpY2F0aW9uTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTMxOEJFMTc2MTQ3NDNFNjAwMEE4RkJCMiAvKiBXS05vdGlmaWNhdGlvbi5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS05vdGlmaWNhdGlvbi5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxOEJFMTc4MTQ3NDNFNkEwMEE4RkJCMiAvKiBXS05vdGlm
aWNhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS05vdGlmaWNhdGlvbi5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkzMUMxMUFCMTE0ODQ1MkU5MDA0OUE0Q0MgLyogV2ViTm90aWZpY2F0
aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYk5vdGlmaWNh
dGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxQzExQUIyMTQ4NDUyRTkw
MDQ5QTRDQyAvKiBXZWJOb3RpZmljYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV2ViTm90aWZpY2F0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMx
RUEyNUQwMTM0Rjc4QjIwMDVCMTQ1MiAvKiBOYXRpdmVXZWJNb3VzZUV2ZW50TWFjLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gTmF0aXZlV2ViTW91c2VFdmVudE1hYy5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMzFFQTI1RDMxMzRGNzhENjAwNUIxNDUyIC8qIE5hdGl2ZVdlYk1v
dXNlRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmF0aXZlV2ViTW91
c2VFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMkRCQ0Y1RTAzNzBBREVF
MDBDOTE3ODMgLyogV2ViS2l0MlByZWZpeC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJLaXQyUHJlZml4Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNDI2
LDYgKzI0NjAsMTUgQEAKIAkJCXBhdGggPSBtYWM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4i
OwogCQl9OworCQkzMTA5OTk3NDE0NkM4QUE4MDAyOURFQjkgLyogTm90aWZpY2F0aW9ucyAoVXNl
cikgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTMxMDk5
OTc4MTQ2QzhCMTQwMDI5REVCOSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcCAqLywKKwkJ
CQkzMTA5OTk3OTE0NkM4QjE0MDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlci5oICov
LAorCQkJKTsKKwkJCW5hbWUgPSAiTm90aWZpY2F0aW9ucyAoVXNlcikiOworCQkJc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJMzJDODhERkYwMzcxQzI0MjAwQzkxNzgzIC8qIE90aGVy
IFNvdXJjZXMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAt
MjU5Myw2ICsyNjM2LDcgQEAKIAkJCQk1MUE5RTBGQjEzMTVDQzBFMDA5RTcwMzEgLyogS2V5VmFs
dWVTdG9yYWdlICovLAogCQkJCTFBNkZBMDFDMTFFMTUyNjMwMERCMTM3MSAvKiBtYWMgKi8sCiAJ
CQkJMzNEM0EzQkQxMzM5NjA5ODAwNzA5QkU0IC8qIE1lZGlhQ2FjaGUgKi8sCisJCQkJMzEwOTk5
NzQxNDZDOEFBODAwMjlERUI5IC8qIE5vdGlmaWNhdGlvbnMgKFVzZXIpICovLAogCQkJCTFBNkZC
N0FBMTFFNjRCNDkwMERCMTM3MSAvKiBQbHVnaW5zICovLAogCQkJCTMzMzY3NjJCMTMwQzk5Nzgw
MDZDOURFMiAvKiBSZXNvdXJjZUNhY2hlICovLAogCQkJCUJDMDMyRDVEMTBGNDM3MjIwMDU4QzE1
QSAvKiBXZWJDb3JlU3VwcG9ydCAqLywKQEAgLTI2MzIsNiArMjY3Niw4IEBACiAJCQkJQkMwMzJE
NkQxMEY0Mzc4RDAwNThDMTVBIC8qIFdlYkluc3BlY3RvckNsaWVudC5oICovLAogCQkJCTFDOEUy
NTZCMTI3MERFMzgwMEJDN0JEMCAvKiBXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudC5jcHAgKi8s
CiAJCQkJMUM4RTI1NkExMjcwREUzODAwQkM3QkQwIC8qIFdlYkluc3BlY3RvckZyb250ZW5kQ2xp
ZW50LmggKi8sCisJCQkJMzEwOTk5NzExNDZDNzU5QjAwMjlERUI5IC8qIFdlYk5vdGlmaWNhdGlv
bkNsaWVudC5jcHAgKi8sCisJCQkJMzEwOTk5NjgxNDZDNzFGNTAwMjlERUI5IC8qIFdlYk5vdGlm
aWNhdGlvbkNsaWVudC5oICovLAogCQkJCTFBM0U3MzYwMTFDQzI2NTkwMDdCRDUzOSAvKiBXZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXMuY3BwICovLAogCQkJCTFBM0U3MzVGMTFDQzI2NTkwMDdCRDUzOSAv
KiBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCAqLywKIAkJCQlEM0I5NDg0MjExRkY0QjY1MDAwMzJC
MzkgLyogV2ViUG9wdXBNZW51LmNwcCAqLywKQEAgLTI3ODIsNiArMjgyOCwxMyBAQAogCQkJCTMz
RDNBM0I5MTMzOTYwNjIwMDcwOUJFNCAvKiBXZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5Lm1lc3Nh
Z2VzLmluICovLAogCQkJCUJDRjY5RkExMTE3NkQwMTQwMDQ3MUE1MiAvKiBXZWJOYXZpZ2F0aW9u
RGF0YS5jcHAgKi8sCiAJCQkJQkNGNjlGQTAxMTc2RDAxNDAwNDcxQTUyIC8qIFdlYk5hdmlnYXRp
b25EYXRhLmggKi8sCisJCQkJMzFDMTFBQjExNDg0NTJFOTAwNDlBNENDIC8qIFdlYk5vdGlmaWNh
dGlvbi5jcHAgKi8sCisJCQkJMzFDMTFBQjIxNDg0NTJFOTAwNDlBNENDIC8qIFdlYk5vdGlmaWNh
dGlvbi5oICovLAorCQkJCTMxMDk5OTZCMTQ2QzczQjEwMDI5REVCOSAvKiBXZWJOb3RpZmljYXRp
b25NYW5hZ2VyUHJveHkuY3BwICovLAorCQkJCTMxMDk5OTZBMTQ2QzczOTIwMDI5REVCOSAvKiBX
ZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaCAqLywKKwkJCQkzMTA5OTk2RDE0NkM3M0M0MDAy
OURFQjkgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluICovLAorCQkJ
CTMxMkMwQzQ2MTQ2RERCQkMwMDE2QzkxMSAvKiBXZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHAg
Ki8sCisJCQkJMzEyQzBDNDgxNDZEREJEMzAwMTZDOTExIC8qIFdlYk5vdGlmaWNhdGlvblByb3Zp
ZGVyLmggKi8sCiAJCQkJQkMxREZFQTMxMkIzMUY4NzAwNURGNzMwIC8qIFdlYk9wZW5QYW5lbFJl
c3VsdExpc3RlbmVyUHJveHkuY3BwICovLAogCQkJCUJDMURGRUEyMTJCMzFGODcwMDVERjczMCAv
KiBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5LmggKi8sCiAJCQkJNTE1MzU2OUExMjkx
QjFEMjAwMDc0OURDIC8qIFdlYlBhZ2VDb250ZXh0TWVudUNsaWVudC5jcHAgKi8sCkBAIC0yODc2
LDYgKzI5MjksMTEgQEAKIAkJCQlDMDlBRTVFODEyNTI1N0MyMDAyNTgyNUQgLyogV0tOYXRpdmVF
dmVudC5oICovLAogCQkJCUJDRjY5RkE4MTE3NkQxQ0IwMDQ3MUE1MiAvKiBXS05hdmlnYXRpb25E
YXRhLmNwcCAqLywKIAkJCQlCQ0Y2OUZBNzExNzZEMUNCMDA0NzFBNTIgLyogV0tOYXZpZ2F0aW9u
RGF0YS5oICovLAorCQkJCTMxOEJFMTc2MTQ3NDNFNjAwMEE4RkJCMiAvKiBXS05vdGlmaWNhdGlv
bi5jcHAgKi8sCisJCQkJMzE4QkUxNzgxNDc0M0U2QTAwQThGQkIyIC8qIFdLTm90aWZpY2F0aW9u
LmggKi8sCisJCQkJMzE4QkUxNzQxNDc0M0RENjAwQThGQkIyIC8qIFdLTm90aWZpY2F0aW9uTWFu
YWdlci5jcHAgKi8sCisJCQkJMzE4QkUxNzAxNDc0M0RCMTAwQThGQkIyIC8qIFdLTm90aWZpY2F0
aW9uTWFuYWdlci5oICovLAorCQkJCTMxMkMwQzQ5MTQ2RERDOEEwMDE2QzkxMSAvKiBXS05vdGlm
aWNhdGlvblByb3ZpZGVyLmggKi8sCiAJCQkJQkM4NTdGRTUxMkI4NDNEODAwRURFQjJFIC8qIFdL
T3BlblBhbmVsUGFyYW1ldGVycy5jcHAgKi8sCiAJCQkJQkM4NTdGRTQxMkI4NDNEODAwRURFQjJF
IC8qIFdLT3BlblBhbmVsUGFyYW1ldGVycy5oICovLAogCQkJCUJDMURGRThFMTJCMzFDQTgwMDVE
RjczMCAvKiBXS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyLmNwcCAqLywKQEAgLTM0NDUsNiArMzUw
Myw4IEBACiAJCQkJMzNEM0EzQzUxMzM5NjE3OTAwNzA5QkU0IC8qIFdlYk1lZGlhQ2FjaGVNYW5h
Z2VyTWVzc2FnZXMuaCAqLywKIAkJCQkzM0QzQTNDNjEzMzk2MTc5MDA3MDlCRTQgLyogV2ViTWVk
aWFDYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJMzNEM0EzQzcx
MzM5NjE3OTAwNzA5QkU0IC8qIFdlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oICov
LAorCQkJCTMxOEJFMTY1MTQ3MzQzMzcwMEE4RkJCMiAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2Vy
UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCTMxOEJFMTY2MTQ3MzQzMzcwMEE4RkJC
MiAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHlNZXNzYWdlcy5oICovLAogCQkJCUMwQ0U3
MjlFMTI0N0U3MUQwMEJDMEVDNCAvKiBXZWJQYWdlTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJ
CQlDMENFNzI5RjEyNDdFNzFEMDBCQzBFQzQgLyogV2ViUGFnZU1lc3NhZ2VzLmggKi8sCiAJCQkJ
QkNCRDM5MTIxMjVCQjFBODAwRDJDMjlGIC8qIFdlYlBhZ2VQcm94eU1lc3NhZ2VSZWNlaXZlci5j
cHAgKi8sCkBAIC0zOTY2LDYgKzQwMjYsMTQgQEAKIAkJCQlCQzRBNjI5MjE0NzMxMkJFMDA2QzY4
MUEgLyogV2ViQ29ubmVjdGlvbkNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM0QTYyOTcx
NDczMTNBMDAwNkM2ODFBIC8qIFdLQ29ubmVjdGlvblJlZi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
Mzc4OEEwNUMxNDc0M0M5MDAwNjMxOUU1IC8qIFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlclBy
aXZhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTMxMDk5OTZGMTQ2Qzc0MUQwMDI5REVCOSAvKiBX
ZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJzICovLAorCQkJCTMxMDk5OTdC
MTQ2QzhCMTQwMDI5REVCOSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyLmggaW4gSGVhZGVycyAq
LywKKwkJCQkzMTA5OTlDNzE0NkM5RTNEMDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uQ2xpZW50
LmggaW4gSGVhZGVycyAqLywKKwkJCQkzMTJDMEM0QTE0NkREQzhBMDAxNkM5MTEgLyogV0tOb3Rp
ZmljYXRpb25Qcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzE4QkUxNjgxNDczNDMzNzAw
QThGQkIyIC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVy
cyAqLywKKwkJCQkzMThCRTE3MTE0NzQzREIxMDBBOEZCQjIgLyogV0tOb3RpZmljYXRpb25NYW5h
Z2VyLmggaW4gSGVhZGVycyAqLywKKwkJCQkzMThCRTE3OTE0NzQzRTZGMDBBOEZCQjIgLyogV0tO
b3RpZmljYXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTMxQzExQUI0MTQ4NDUyRTkwMDQ5QTRD
QyAvKiBXZWJOb3RpZmljYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlG
b3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtNDY2Niw2ICs0NzM0LDE0
IEBACiAJCQkJQkM0QTYyOEYxNDczMTJCRTAwNkM2ODFBIC8qIFdlYkNvbm5lY3Rpb24uY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQkM0QTYyOTExNDczMTJCRTAwNkM2ODFBIC8qIFdlYkNvbm5lY3Rp
b25DbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM0QTYyOTYxNDczMTNBMDAwNkM2ODFB
IC8qIFdLQ29ubmVjdGlvblJlZi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkzMTA5OTk3MDE0NkM3
NDIwMDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTMxMDk5OTczMTQ2Qzc1QTIwMDI5REVCOSAvKiBXZWJOb3RpZmljYXRpb25DbGll
bnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMzEwOTk5N0ExNDZDOEIxNDAwMjlERUI5IC8qIFdl
Yk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMzEyQzBDNDcxNDZE
REJCRDAwMTZDOTExIC8qIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCTMxOEJFMTY3MTQ3MzQzMzcwMEE4RkJCMiAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2Vy
UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMzE4QkUxNzUxNDc0
M0RENzAwQThGQkIyIC8qIFdLTm90aWZpY2F0aW9uTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQkzMThCRTE3NzE0NzQzRTYwMDBBOEZCQjIgLyogV0tOb3RpZmljYXRpb24uY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJMzFDMTFBQjMxNDg0NTJFOTAwNDlBNENDIC8qIFdlYk5vdGlmaWNhdGlv
bi5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rw
cm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5hNGQ2YmYwMDE5NTc0ZTY4NzhiZWRiYmIzMjEyZGViNzZkMGI1N2ZjCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dl
Yk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uTWFuYWdlci5oIgor
CisjaW5jbHVkZSAiV2ViUGFnZS5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKworI2lmIEVO
QUJMRShOT1RJRklDQVRJT05TKQorI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94
eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RpZmljYXRpb24uaD4KKyNlbmRpZgor
Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisgICAgCitX
ZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyKFdlYlByb2Nlc3Mq
IHByb2Nlc3MpCisgICAgOiBtX3Byb2Nlc3MocHJvY2VzcykKK3sKK30KKworV2ViTm90aWZpY2F0
aW9uTWFuYWdlcjo6fldlYk5vdGlmaWNhdGlvbk1hbmFnZXIoKQoreworfQorCitib29sIFdlYk5v
dGlmaWNhdGlvbk1hbmFnZXI6OnNob3coTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24sIFdlYlBh
Z2UqIHBhZ2UpCit7CisjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCisgICAgbV9wcm9jZXNzLT5j
b25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6
U2hvdyhub3RpZmljYXRpb24tPmNvbnRlbnRzKCkudGl0bGUsIG5vdGlmaWNhdGlvbi0+Y29udGVu
dHMoKS5ib2R5LCAwKSwgcGFnZS0+cGFnZUlEKCkpOworI2VuZGlmCisgICAgcmV0dXJuIHRydWU7
Cit9CisKK3ZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6Y2FuY2VsKE5vdGlmaWNhdGlvbiog
bm90aWZpY2F0aW9uLCBXZWJQYWdlKiBwYWdlKQoreworI2lmIEVOQUJMRShOT1RJRklDQVRJT05T
KQorICAgIG1fcHJvY2Vzcy0+Y29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJOb3RpZmlj
YXRpb25NYW5hZ2VyUHJveHk6OkNhbmNlbCgwKSwgcGFnZS0+cGFnZUlEKCkpOworI2VuZGlmCit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuaCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMDAzM2FlMzhiNTI5OTAwMGRhZjg4OGMzZjRkZWUxZGVjNjc1ZmNiYwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9X
ZWJOb3RpZmljYXRpb25NYW5hZ2VyLmgKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
Zm5kZWYgV2ViTm90aWZpY2F0aW9uTWFuYWdlcl9oCisjZGVmaW5lIFdlYk5vdGlmaWNhdGlvbk1h
bmFnZXJfaAorCisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKK2NsYXNzIE5vdGlmaWNhdGlvbjsgICAgCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQYWdlOworY2xhc3MgV2ViUHJvY2VzczsK
KworY2xhc3MgV2ViTm90aWZpY2F0aW9uTWFuYWdlciB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoV2ViTm90aWZpY2F0aW9uTWFuYWdlcik7CitwdWJsaWM6CisgICAgZXhwbGljaXQgV2ViTm90
aWZpY2F0aW9uTWFuYWdlcihXZWJQcm9jZXNzKik7CisgICAgfldlYk5vdGlmaWNhdGlvbk1hbmFn
ZXIoKTsKKworICAgIGJvb2wgc2hvdyhXZWJDb3JlOjpOb3RpZmljYXRpb24qLCBXZWJQYWdlKik7
CisgICAgdm9pZCBjYW5jZWwoV2ViQ29yZTo6Tm90aWZpY2F0aW9uKiwgV2ViUGFnZSopOworCitw
cml2YXRlOgorICAgIFdlYlByb2Nlc3MqIG1fcHJvY2VzczsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCA3YzM2ODljYjQz
ZGQwNmI1OGZiMTM5ZGFmMjVlN2Y0NTUzODQ5NzIzLi5jMjExOGFkMDRmMWEzNjk4OGY4YTc1YzQ3
YjdjMDRjYjUxNjRkZTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC02OTMsMTMgKzY5
Myw2IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJTeW5j
KCkKIAogI2VuZGlmCiAKLSNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKLVdlYkNvcmU6Ok5vdGlm
aWNhdGlvblByZXNlbnRlciogV2ViQ2hyb21lQ2xpZW50Ojpub3RpZmljYXRpb25QcmVzZW50ZXIo
KSBjb25zdAotewotICAgIHJldHVybiAwOwotfQotI2VuZGlmCi0KICNpZiBFTkFCTEUoVE9VQ0hf
RVZFTlRTKQogdm9pZCBXZWJDaHJvbWVDbGllbnQ6Om5lZWRUb3VjaEV2ZW50cyhib29sIG5lZWRU
b3VjaEV2ZW50cykKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IGQwNzY3YmFkMTJjOGJmNWRh
NGU5YzQ3M2M4NmI3YjNkZTlmMjc0OWIuLjRlZDkwZGM4NDM4MTlmZTRlYTZhZWNiYmRhYzMyODcx
Y2Y0NWNlM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMTgzLDEwICsxODMsNiBAQCBwcml2
YXRlOgogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJTeW5jKCkgT1ZF
UlJJREU7CiAjZW5kaWYKIAotI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQotICAgIHZpcnR1YWwg
V2ViQ29yZTo6Tm90aWZpY2F0aW9uUHJlc2VudGVyKiBub3RpZmljYXRpb25QcmVzZW50ZXIoKSBj
b25zdCBPVkVSUklERTsKLSNlbmRpZgotCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKICAgICB2
aXJ0dWFsIHZvaWQgbmVlZFRvdWNoRXZlbnRzKGJvb2wpIE9WRVJSSURFOwogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlm
aWNhdGlvbkNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDU3MTdmZmRjZDBmNjQx
NjIyNWQ4ODQzYmZjNzg4MjlkZmU1MTIxZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcApA
QCAtMCwwICsxLDkwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIldlYk5vdGlmaWNhdGlvbkNsaWVudC5oIgorCisjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMp
CisKKyNpbmNsdWRlICJXZWJOb3RpZmljYXRpb25NYW5hZ2VyLmgiCisjaW5jbHVkZSAiV2ViUHJv
Y2Vzcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKwordXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJOb3RpZmljYXRpb25D
bGllbnQ6OldlYk5vdGlmaWNhdGlvbkNsaWVudChXZWJQYWdlKiBwYWdlKQorICAgIDogbV9wYWdl
KHBhZ2UpCit7Cit9CisKK1dlYk5vdGlmaWNhdGlvbkNsaWVudDo6fldlYk5vdGlmaWNhdGlvbkNs
aWVudCgpCit7Cit9CisKK2Jvb2wgV2ViTm90aWZpY2F0aW9uQ2xpZW50OjpzaG93KE5vdGlmaWNh
dGlvbiogbm90aWZpY2F0aW9uKQoreworI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQorICAgIHJl
dHVybiBXZWJQcm9jZXNzOjpzaGFyZWQoKS5ub3RpZmljYXRpb25NYW5hZ2VyKCkuc2hvdyhub3Rp
ZmljYXRpb24sIG1fcGFnZSk7CisjZWxzZQorICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuIGZhbHNlOworI2VuZGlmCit9CisKK3ZvaWQgV2ViTm90aWZpY2F0aW9uQ2xpZW50OjpjYW5j
ZWwoTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24pCit7CisjaWYgRU5BQkxFKE5PVElGSUNBVElP
TlMpCisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkubm90aWZpY2F0aW9uTWFuYWdlcigpLmNhbmNl
bChub3RpZmljYXRpb24sIG1fcGFnZSk7CisjZWxzZQorICAgIG5vdEltcGxlbWVudGVkKCk7Cisj
ZW5kaWYKK30KKwordm9pZCBXZWJOb3RpZmljYXRpb25DbGllbnQ6Om5vdGlmaWNhdGlvbk9iamVj
dERlc3Ryb3llZChOb3RpZmljYXRpb24qKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisK
K3ZvaWQgV2ViTm90aWZpY2F0aW9uQ2xpZW50OjpyZXF1ZXN0UGVybWlzc2lvbihTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxWb2lkQ2FsbGJhY2s+KQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViTm90aWZpY2F0aW9uQ2xpZW50OjpjYW5jZWxSZXF1ZXN0
c0ZvclBlcm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKK30KKworTm90aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJtaXNzaW9uIFdlYk5vdGlm
aWNhdGlvbkNsaWVudDo6Y2hlY2tQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIE5vdGlmaWNhdGlvblByZXNlbnRl
cjo6UGVybWlzc2lvbkRlbmllZDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRp
ZiAvLyBFTkFCTEUoTk9USUZJQ0FUSU9OUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjE5ZjAwN2Q5NThiYmM5ZGI5MWZmZjdiNzhjYTZkZDNmNzNhNTBmMjMKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5oCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIFdlYk5vdGlmaWNhdGlvbkNsaWVudF9oCisjZGVmaW5lIFdlYk5vdGlmaWNhdGlvbkNs
aWVudF9oCisKKyNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKKworI2luY2x1ZGUgPFdlYkNvcmUv
Tm90aWZpY2F0aW9uUHJlc2VudGVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQ7CitjbGFzcyBWb2lkQ2FsbGJhY2s7Cit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQYWdlOworCitjbGFz
cyBXZWJOb3RpZmljYXRpb25DbGllbnQgOiBwdWJsaWMgV2ViQ29yZTo6Tm90aWZpY2F0aW9uUHJl
c2VudGVyIHsKK3B1YmxpYzoKKyAgICBXZWJOb3RpZmljYXRpb25DbGllbnQoV2ViUGFnZSopOwor
ICAgIHZpcnR1YWwgfldlYk5vdGlmaWNhdGlvbkNsaWVudCgpOworCitwcml2YXRlOgorICAgIHZp
cnR1YWwgYm9vbCBzaG93KFdlYkNvcmU6Ok5vdGlmaWNhdGlvbiopIE9WRVJSSURFOworICAgIHZp
cnR1YWwgdm9pZCBjYW5jZWwoV2ViQ29yZTo6Tm90aWZpY2F0aW9uKikgT1ZFUlJJREU7CisgICAg
dmlydHVhbCB2b2lkIG5vdGlmaWNhdGlvbk9iamVjdERlc3Ryb3llZChXZWJDb3JlOjpOb3RpZmlj
YXRpb24qKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oV2Vi
Q29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8V2ViQ29yZTo6Vm9pZENh
bGxiYWNrPikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGNhbmNlbFJlcXVlc3RzRm9yUGVy
bWlzc2lvbihXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KikgT1ZFUlJJREU7CisgICAg
dmlydHVhbCBOb3RpZmljYXRpb25QcmVzZW50ZXI6OlBlcm1pc3Npb24gY2hlY2tQZXJtaXNzaW9u
KFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKSBPVkVSUklERTsKKyAgICAKKyAgICBX
ZWJQYWdlKiBtX3BhZ2U7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8v
IEVOQUJMRShOT1RJRklDQVRJT05TKQorCisjZW5kaWYgLy8gV2ViTm90aWZpY2F0aW9uQ2xpZW50
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRl
eCBhZTA1MjQxNjBiMjRkMGIxM2FmYzk3MmZiNDQzY2VlNTRmNGNjZGNlLi45NWMxY2QyYzMwNzcx
YTlhNTk1ZGM4Nzg2MDBkY2U1OTJkYTI1NGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC02MSw2ICs2MSw3IEBACiAjaW5jbHVkZSAiV2Vi
SW1hZ2UuaCIKICNpbmNsdWRlICJXZWJJbnNwZWN0b3IuaCIKICNpbmNsdWRlICJXZWJJbnNwZWN0
b3JDbGllbnQuaCIKKyNpbmNsdWRlICJXZWJOb3RpZmljYXRpb25DbGllbnQuaCIKICNpbmNsdWRl
ICJXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5oIgogI2luY2x1ZGUgIldlYlBhZ2VDcmVhdGlv
blBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJXZWJQYWdlR3JvdXBQcm94eS5oIgpAQCAtMjE2LDYg
KzIxNywxMCBAQCBXZWJQYWdlOjpXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgV2ViUGFn
ZUNyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQog
ICAgIHBhZ2VDbGllbnRzLmluc3BlY3RvckNsaWVudCA9IG5ldyBXZWJJbnNwZWN0b3JDbGllbnQo
dGhpcyk7CiAjZW5kaWYKKyNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKKyAgICBwYWdlQ2xpZW50
cy5ub3RpZmljYXRpb25DbGllbnQgPSBuZXcgV2ViTm90aWZpY2F0aW9uQ2xpZW50KHRoaXMpOwor
I2VuZGlmCisgICAgCiAgICAgbV9wYWdlID0gYWRvcHRQdHIobmV3IFBhZ2UocGFnZUNsaWVudHMp
KTsKIAogICAgIC8vIFF0IGRvZXMgbm90IHlldCBjYWxsIHNldElzSW5XaW5kb3cuIFVudGlsIGl0
IGRvZXMsIGp1c3QgbGVhdmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oCmluZGV4IGM5ZTkwY2U5ZTk4ZTBkOGE2MDAxNDViNDc0YzBhOTVhZDk3NjYxZWUuLmNk
ZjE5NmRkNjFiNDk4YWIwM2M0MGM4NTFiYzMwNGY1N2IxNzcyNmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMTE0LDYgKzExNCw3IEBAIGNsYXNz
IFdlYkltYWdlOwogY2xhc3MgV2ViSW5zcGVjdG9yOwogY2xhc3MgV2ViS2V5Ym9hcmRFdmVudDsK
IGNsYXNzIFdlYk1vdXNlRXZlbnQ7CitjbGFzcyBXZWJOb3RpZmljYXRpb25DbGllbnQ7CiBjbGFz
cyBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcjsKIGNsYXNzIFdlYlBhZ2VHcm91cFByb3h5Owog
Y2xhc3MgV2ViUG9wdXBNZW51OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5j
cHAKaW5kZXggYjIzMDBkOWJhYWY1ZGIxM2JhMDUwYTJjOWVjODhmN2MyNGNlMDhhNS4uZmMwZTNl
MmRhZjJhOGQwNGQzMTdiZTBlZWU4N2QzMmNmYTJjNmE3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC0xNDAsNiArMTQwLDkgQEAgV2ViUHJvY2Vzczo6V2Vi
UHJvY2VzcygpCiAjZW5kaWYKICAgICAsIG1fdGV4dENoZWNrZXJTdGF0ZSgpCiAgICAgLCBtX2dl
b2xvY2F0aW9uTWFuYWdlcih0aGlzKQorI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQorICAgICwg
bV9ub3RpZmljYXRpb25NYW5hZ2VyKHRoaXMpCisjZW5kaWYKICAgICAsIG1faWNvbkRhdGFiYXNl
UHJveHkodGhpcykKICNpZiBFTkFCTEUoUExVR0lOX1BST0NFU1MpCiAgICAgLCBtX2Rpc2FibGVQ
bHVnaW5Qcm9jZXNzTWVzc2FnZVRpbWVvdXQoZmFsc2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5oCmluZGV4IDMyZDM4MmIxMzc4NmRiZDU4Y2IxNGE3YzFhY2UzYWNlODMwZjM1
MzYuLmI5YmQ4MjY3NmM1YjU4ZTFhODQyOTM2YTEwN2JhN2RjZGU0NTYyNDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC00Niw2ICs0NiwxMCBAQAogY2xhc3MgUU5l
dHdvcmtBY2Nlc3NNYW5hZ2VyOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykK
KyNpbmNsdWRlICJXZWJOb3RpZmljYXRpb25NYW5hZ2VyLmgiCisjZW5kaWYKKwogI2lmIEVOQUJM
RShQTFVHSU5fUFJPQ0VTUykKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFn
ZXIuaCIKICNlbmRpZgpAQCAtMTE5LDYgKzEyMywxMCBAQCBwdWJsaWM6CiAKICAgICAvLyBHZW9s
b2NhdGlvbgogICAgIFdlYkdlb2xvY2F0aW9uTWFuYWdlciYgZ2VvbG9jYXRpb25NYW5hZ2VyKCkg
eyByZXR1cm4gbV9nZW9sb2NhdGlvbk1hbmFnZXI7IH0KKyAgICAKKyNpZiBFTkFCTEUoTk9USUZJ
Q0FUSU9OUykKKyAgICBXZWJOb3RpZmljYXRpb25NYW5hZ2VyJiBub3RpZmljYXRpb25NYW5hZ2Vy
KCkgeyByZXR1cm4gbV9ub3RpZmljYXRpb25NYW5hZ2VyOyB9CisjZW5kaWYKIAogICAgIHZvaWQg
Y2xlYXJSZXNvdXJjZUNhY2hlcyhSZXNvdXJjZUNhY2hlc1RvQ2xlYXIgPSBBbGxSZXNvdXJjZUNh
Y2hlcyk7CiAgICAgCkBAIC0yNDEsNiArMjQ5LDkgQEAgcHJpdmF0ZToKIAogICAgIFRleHRDaGVj
a2VyU3RhdGUgbV90ZXh0Q2hlY2tlclN0YXRlOwogICAgIFdlYkdlb2xvY2F0aW9uTWFuYWdlciBt
X2dlb2xvY2F0aW9uTWFuYWdlcjsKKyNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKKyAgICBXZWJO
b3RpZmljYXRpb25NYW5hZ2VyIG1fbm90aWZpY2F0aW9uTWFuYWdlcjsKKyNlbmRpZgogICAgIFdl
Ykljb25EYXRhYmFzZVByb3h5IG1faWNvbkRhdGFiYXNlUHJveHk7CiAgICAgCiAgICAgU3RyaW5n
IG1fbG9jYWxTdG9yYWdlRGlyZWN0b3J5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvd2lu
L1dlYktpdDIudmNwcm9qIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9qCmluZGV4
IGJhY2Y3NzQ0NTViMTk3N2M0OTgwZDY2MDhlNzQ0NzRkOGU5ZTBhMGMuLmRjNjQ2MjQwMGJkODUz
NDBlNGNlNzEyMzE3ZTk5NzRkMGE3MjJlZDIgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL3dp
bi9XZWJLaXQyLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oK
QEAgLTY5OSwxOSArNjk5LDE5IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXFNoYXJlZFxXZWJJbWFnZS5jcHAiCisJCQkJUmVsYXRpdmVQYXRoPSIu
LlxTaGFyZWRcV2ViSGl0VGVzdFJlc3VsdC5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZp
bGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFNoYXJlZFxXZWJJbWFnZS5oIgorCQkJCVJlbGF0aXZl
UGF0aD0iLi5cU2hhcmVkXFdlYkhpdFRlc3RSZXN1bHQuaCIKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJ
CQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cU2hhcmVkXFdlYkhpdFRlc3RSZXN1bHQuY3Bw
IgorCQkJCVJlbGF0aXZlUGF0aD0iLi5cU2hhcmVkXFdlYkltYWdlLmNwcCIKIAkJCQk+CiAJCQk8
L0ZpbGU+CiAJCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cU2hhcmVkXFdlYkhpdFRlc3RS
ZXN1bHQuaCIKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFNoYXJlZFxXZWJJbWFnZS5oIgogCQkJCT4K
IAkJCTwvRmlsZT4KIAkJCTxGaWxlCkBAIC04NTQsMTkgKzg1NCwxOSBAQAogCQkJCQk+CiAJCQkJ
PC9GaWxlPgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cU2hhcmVkXEFQSVxjXFdL
Q29ubmVjdGlvblJlZi5jcHAiCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cU2hhcmVkXEFQSVxjXHdp
blxXS0NlcnRpZmljYXRlSW5mb1dpbi5jcHAiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZp
bGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxTaGFyZWRcQVBJXGNcV0tDb25uZWN0aW9uUmVmLmgi
CisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cU2hhcmVkXEFQSVxjXHdpblxXS0NlcnRpZmljYXRlSW5m
b1dpbi5oIgogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0
aD0iLi5cU2hhcmVkXEFQSVxjXHdpblxXS0NlcnRpZmljYXRlSW5mb1dpbi5jcHAiCisJCQkJCVJl
bGF0aXZlUGF0aD0iLi5cU2hhcmVkXEFQSVxjXFdLQ29ubmVjdGlvblJlZi5jcHAiCiAJCQkJCT4K
IAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxTaGFyZWRcQVBJ
XGNcd2luXFdLQ2VydGlmaWNhdGVJbmZvV2luLmgiCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cU2hh
cmVkXEFQSVxjXFdLQ29ubmVjdGlvblJlZi5oIgogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxG
aWxlCkBAIC05MTQsMTEgKzkxNCwxMSBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxl
Ci0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cU2hhcmVkXEFQSVxjXFdLR2VvbWV0cnkuaCIKKwkJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxTaGFyZWRcQVBJXGNcV0tHZW9tZXRyeS5jcHAiCiAJCQkJCT4KIAkJ
CQk8L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxTaGFyZWRcQVBJXGNc
V0tHZW9tZXRyeS5jcHAiCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cU2hhcmVkXEFQSVxjXFdLR2Vv
bWV0cnkuaCIKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQpAQCAtMTg2Miw2ICsxODYy
LDE0IEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRo
PSIuLlxXZWJQcm9jZXNzXFdlYkNvcmVTdXBwb3J0XFdlYk5vdGlmaWNhdGlvbkNsaWVudC5jcHAi
CisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxX
ZWJQcm9jZXNzXFdlYkNvcmVTdXBwb3J0XFdlYk5vdGlmaWNhdGlvbkNsaWVudC5oIgorCQkJCQk+
CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViUHJvY2Vz
c1xXZWJDb3JlU3VwcG9ydFxXZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwIgogCQkJCQk+CiAJCQkJ
PC9GaWxlPgpAQCAtMjY4Miw2ICsyNjkwLDE4IEBACiAJCQkJCTwvRmlsZT4KIAkJCQk8L0ZpbHRl
cj4KIAkJCTwvRmlsdGVyPgorCQkJPEZpbHRlcgorCQkJCU5hbWU9Ik5vdGlmaWNhdGlvbnMgKFVz
ZXIpIgorCQkJCT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3Nc
Tm90aWZpY2F0aW9uc1xXZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcCIKKwkJCQkJPgorCQkJCTwv
RmlsZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcTm90aWZp
Y2F0aW9uc1xXZWJOb3RpZmljYXRpb25NYW5hZ2VyLmgiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJ
CQk8L0ZpbHRlcj4KIAkJPC9GaWx0ZXI+CiAJCTxGaWx0ZXIKIAkJCU5hbWU9IlVJUHJvY2VzcyIK
QEAgLTMwMzksNiArMzA1OSwzNCBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcV2ViTm90aWZpY2F0aW9uLmNwcCIKKwkJCQk+CisJ
CQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXFdlYk5v
dGlmaWNhdGlvbi5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxVSVByb2Nlc3NcV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcCIKKwkJCQk+
CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXFdl
Yk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxl
CisJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcV2ViTm90aWZpY2F0aW9uTWFuYWdlclBy
b3h5Lm1lc3NhZ2VzLmluIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRp
dmVQYXRoPSIuLlxVSVByb2Nlc3NcV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwIgorCQkJCT4K
KwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcV2Vi
Tm90aWZpY2F0aW9uUHJvdmlkZXIuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJv
eHkuY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KQEAgLTMzMDUsMTkgKzMzNTMsMTkgQEAKIAkJCQkJ
CT4KIAkJCQkJPC9GaWxlPgogCQkJCQk8RmlsZQotCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVBy
b2Nlc3NcQVBJXENcV0tIaXRUZXN0UmVzdWx0LmNwcCIKKwkJCQkJCVJlbGF0aXZlUGF0aD0iLi5c
VUlQcm9jZXNzXEFQSVxDXFdLR3JhbW1hckRldGFpbC5jcHAiCiAJCQkJCQk+CiAJCQkJCTwvRmls
ZT4KIAkJCQkJPEZpbGUKLQkJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXEFQSVxDXFdL
SGl0VGVzdFJlc3VsdC5oIgorCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcQVBJXENc
V0tHcmFtbWFyRGV0YWlsLmgiCiAJCQkJCQk+CiAJCQkJCTwvRmlsZT4KIAkJCQkJPEZpbGUKLQkJ
CQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXEFQSVxDXFdLR3JhbW1hckRldGFpbC5jcHAi
CisJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xBUElcQ1xXS0hpdFRlc3RSZXN1bHQu
Y3BwIgogCQkJCQkJPgogCQkJCQk8L0ZpbGU+CiAJCQkJCTxGaWxlCi0JCQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXFVJUHJvY2Vzc1xBUElcQ1xXS0dyYW1tYXJEZXRhaWwuaCIKKwkJCQkJCVJlbGF0aXZl
UGF0aD0iLi5cVUlQcm9jZXNzXEFQSVxDXFdLSGl0VGVzdFJlc3VsdC5oIgogCQkJCQkJPgogCQkJ
CQk8L0ZpbGU+CiAJCQkJCTxGaWxlCkBAIC0zMzY1LDYgKzM0MTMsMjYgQEAKIAkJCQkJCT4KIAkJ
CQkJPC9GaWxlPgogCQkJCQk8RmlsZQorCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3Nc
QVBJXENcV0tOb3RpZmljYXRpb24uY3BwIgorCQkJCQkJPgorCQkJCQk8L0ZpbGU+CisJCQkJCTxG
aWxlCisJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xBUElcQ1xXS05vdGlmaWNhdGlv
bi5oIgorCQkJCQkJPgorCQkJCQk8L0ZpbGU+CisJCQkJCTxGaWxlCisJCQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXFVJUHJvY2Vzc1xBUElcQ1xXS05vdGlmaWNhdGlvbk1hbmFnZXIuY3BwIgorCQkJCQkJ
PgorCQkJCQk8L0ZpbGU+CisJCQkJCTxGaWxlCisJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJv
Y2Vzc1xBUElcQ1xXS05vdGlmaWNhdGlvbk1hbmFnZXIuaCIKKwkJCQkJCT4KKwkJCQkJPC9GaWxl
PgorCQkJCQk8RmlsZQorCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcQVBJXENcV0tO
b3RpZmljYXRpb25Qcm92aWRlci5oIgorCQkJCQkJPgorCQkJCQk8L0ZpbGU+CisJCQkJCTxGaWxl
CiAJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xBUElcQ1xXS09wZW5QYW5lbFBhcmFt
ZXRlcnMuY3BwIgogCQkJCQkJPgogCQkJCQk8L0ZpbGU+CkBAIC00MjExLDYgKzQyNzksMTQgQEAK
IAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1
cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xXZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIgorCQkJCT4KKwkJCTwvRmls
ZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilc
b2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQ
cm94eU1lc3NhZ2VzLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2
ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZl
ZFNvdXJjZXNcV2ViUGFnZU1lc3NhZ2VSZWNlaXZlci5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgo=
</data>
<flag name="review"
          id="116128"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>