<?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>234162</bug_id>
          
          <creation_ts>2021-12-10 11:37:41 -0800</creation_ts>
          <short_desc>Image does not update after Markup Pane is dismissed.</short_desc>
          <delta_ts>2021-12-10 16:49:19 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Megan Gardner">megan_gardner</reporter>
          <assigned_to name="Megan Gardner">megan_gardner</assigned_to>
          <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>kangil.han</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1822845</commentid>
    <comment_count>0</comment_count>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-12-10 11:37:41 -0800</bug_when>
    <thetext>Image does not update after Markup Pane is dismissed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822856</commentid>
    <comment_count>1</comment_count>
      <attachid>446773</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-12-10 11:47:26 -0800</bug_when>
    <thetext>Created attachment 446773
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822875</commentid>
    <comment_count>2</comment_count>
      <attachid>446773</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-12-10 12:09:15 -0800</bug_when>
    <thetext>Comment on attachment 446773
Patch

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

r=me

&gt; Source/WebCore/dom/mac/ImageControlsMac.cpp:133
&gt; +        if (!is&lt;HTMLImageElement&gt;(*shadowHost))

NIT: you can merge this with the above `if (!shadowHost)` since `is` checks for an invalid pointer
```
    if (!is&lt;HTMLImageElement&gt;(shadowHost))
        return false;
```

&gt; Source/WebCore/dom/mac/ImageControlsMac.cpp:135
&gt; +        HTMLImageElement&amp; imageElement = downcast&lt;HTMLImageElement&gt;(*shadowHost);

NIT: Chould we move this inside the `if` since it&apos;s not used outside?

&gt; Source/WebCore/page/ChromeClient.h:535
&gt; +    virtual void handleImageServiceClick(const IntPoint&amp;, Image&amp;, bool /*isEditable*/, const IntRect&amp;, const String&amp;) { }

I&apos;d include the name like `const String&amp; /* attachmentID */` as it&apos;s not really clear otherwise what it&apos;s for.

&gt; Source/WebKit/UIProcess/API/Cocoa/_WKAttachment.mm:153
&gt; +- (void)setData:(NSData *)data newContentType:(NSString *)newContentType

NIT: Do we actually need this?  Can&apos;t we just `[attachment setData:data newContentType:String(NSPasteboardTypeTIFF) newFilename:nil completion:nil];`?

&gt; Source/WebKit/UIProcess/mac/WKSharingServicePickerDelegate.mm:151
&gt; +        [itemProvider loadDataRepresentationForTypeIdentifier:(NSString *)kUTTypeData completionHandler:^(NSData *data, NSError *error) {

NIT: Is the `(NSString *)` cast necessary?

&gt; Source/WebKit/UIProcess/mac/WKSharingServicePickerDelegate.mm:155
&gt; +            auto apiAttachment = _menuProxy-&gt;page()-&gt;attachmentForIdentifier(_attachmentID);

Do we need to check that `_menuProxy` and/or `_menuProxy-&gt;page()` exist at this point?
```
    WebPageProxy* page = _menuProxy ? _menyProxy-&gt;page() : nullptr;
    if (!page)
        return;

    auto apiAttachment = page-&gt;attachmentForIdentifier(_attachmentID);
    ...
```

&gt; Source/WebKit/UIProcess/mac/WebContextMenuProxyMac.mm:247
&gt; +    [[WKSharingServicePickerDelegate sharedSharingServicePickerDelegate] setAttachmentID:m_context.controlledImageAttachmentID()];

```
    [WKSharingServicePickerDelegate.sharedSharingServicePickerDelegate setAttachmentID:m_context.controlledImageAttachmentID()];
```

&gt; Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.h:384
&gt; +    void handleImageServiceClick(const WebCore::IntPoint&amp;, WebCore::Image&amp;, bool isEditable, const WebCore::IntRect&amp;, const String&amp;) final;

ditto (Source/WebCore/page/ChromeClient.h:535)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822946</commentid>
    <comment_count>3</comment_count>
      <attachid>446773</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-12-10 13:32:01 -0800</bug_when>
    <thetext>Comment on attachment 446773
Patch

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

&gt;&gt; Source/WebKit/UIProcess/API/Cocoa/_WKAttachment.mm:153
&gt;&gt; +- (void)setData:(NSData *)data newContentType:(NSString *)newContentType
&gt; 
&gt; NIT: Do we actually need this?  Can&apos;t we just `[attachment setData:data newContentType:String(NSPasteboardTypeTIFF) newFilename:nil completion:nil];`?

Well, the old SPI is deprecated, so it&apos;s probably best to make this separate from that.

&gt;&gt; Source/WebKit/UIProcess/mac/WKSharingServicePickerDelegate.mm:155
&gt;&gt; +            auto apiAttachment = _menuProxy-&gt;page()-&gt;attachmentForIdentifier(_attachmentID);
&gt; 
&gt; Do we need to check that `_menuProxy` and/or `_menuProxy-&gt;page()` exist at this point?
&gt; ```
&gt;     WebPageProxy* page = _menuProxy ? _menyProxy-&gt;page() : nullptr;
&gt;     if (!page)
&gt;         return;
&gt; 
&gt;     auto apiAttachment = page-&gt;attachmentForIdentifier(_attachmentID);
&gt;     ...
&gt; ```

Well, we don&apos;t check about 10 lines down from this in pre-existing code, so if we should we should in both places.

&gt;&gt; Source/WebKit/UIProcess/mac/WebContextMenuProxyMac.mm:247
&gt;&gt; +    [[WKSharingServicePickerDelegate sharedSharingServicePickerDelegate] setAttachmentID:m_context.controlledImageAttachmentID()];
&gt; 
&gt; ```
&gt;     [WKSharingServicePickerDelegate.sharedSharingServicePickerDelegate setAttachmentID:m_context.controlledImageAttachmentID()];
&gt; ```

literally every other line in this file that calls something on the shared delegate uses the [] method, I&apos;d prefer it to be consistent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822956</commentid>
    <comment_count>4</comment_count>
      <attachid>446806</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-12-10 13:54:16 -0800</bug_when>
    <thetext>Created attachment 446806
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1823059</commentid>
    <comment_count>5</comment_count>
      <attachid>446835</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-12-10 15:57:26 -0800</bug_when>
    <thetext>Created attachment 446835
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1823100</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-12-10 16:48:05 -0800</bug_when>
    <thetext>Committed r286886 (245115@main): &lt;https://commits.webkit.org/245115@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 446835.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1823102</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-12-10 16:49:19 -0800</bug_when>
    <thetext>&lt;rdar://problem/86346270&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446773</attachid>
            <date>2021-12-10 11:47:26 -0800</date>
            <delta_ts>2021-12-10 15:57:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234162-20211210114725.patch</filename>
            <type>text/plain</type>
            <size>20042</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2ODU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmI4MWQzYTAwZmJiYTZh
YzExNjQwZGE5NDZmNTkyOTM3ODMwZDFiMC4uOTQwYWZiODhhYjY0NjI3ZWZkN2I1MGM5MTc2NzE0
ZGMzNTVhNzFjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTEyLTEwICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgSW1hZ2UgZG9l
cyBub3QgdXBkYXRlIGFmdGVyIE1hcmt1cCBQYW5lIGlzIGRpc21pc3NlZC4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDE2MgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE9uY2UgdGhlIGl0ZW0gaXMgcmV0
dXJlZCBmcm9tIHRoZSBTaGFyaW5nIFNlcnZpY2UsIHdlIG5lZWQgdG8gcGlwZSB0aGUgaW5mb3Jt
YXRpb24KKyAgICAgICAgYmFjayB0byB0aGUgYXR0YWNoZW1lbnQgZWxlbWVudCBzbyB0aGF0IGl0
IGNhbiBiZSBwcm9wZXJseSB1cGRhdGVkLgorICAgICAgICBUaGlzIGluY2x1ZGVzIGhvbGRpbmcg
b250byB0aGUgYXR0YWNobWVudCBJRCBvZiB0aGUgY29udHJvbGxlZCBpbWFnZSBzbyB0aGF0IGl0
IAorICAgICAgICBjYW4gbGF0ZXIgYmUgZm91bmQgYW5kIHVwZGF0ZWQuCisKKyAgICAgICAgKiBk
b20vbWFjL0ltYWdlQ29udHJvbHNNYWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VDb250
cm9sc01hYzo6aGFuZGxlRXZlbnQpOgorICAgICAgICAqIGh0bWwvSFRNTEltYWdlRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW1hZ2VFbGVtZW50OjpzZXRBdHRhY2htZW50RWxl
bWVudCk6CisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkNocm9tZUNsaWVudDo6aGFuZGxlSW1hZ2VTZXJ2aWNlQ2xpY2spOgorCiAyMDIxLTEyLTEwICBD
b21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmll
d2VkLCByZXZlcnRpbmcgcjI4NjgzNi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYmJiNDJmYWUxNjFiNGI5YzMxNTU5
MTI2NGNjZGU0ZmIzNGMzZTZlMy4uMDg4NGI2ZmU2ZmRmM2I2MTFkZTcwYjI0MGZkMmViY2FmOWZh
NTRmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MCBAQAorMjAyMS0xMi0xMCAgTWVnYW4gR2FyZG5l
ciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgorCisgICAgICAgIEltYWdlIGRvZXMgbm90IHVw
ZGF0ZSBhZnRlciBNYXJrdXAgUGFuZSBpcyBkaXNtaXNzZWQuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQxNjIKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBPbmNlIHRoZSBpdGVtIGlzIHJldHVyZWQgZnJv
bSB0aGUgU2hhcmluZyBTZXJ2aWNlLCB3ZSBuZWVkIHRvIHBpcGUgdGhlIGluZm9ybWF0aW9uCisg
ICAgICAgIGJhY2sgdG8gdGhlIGF0dGFjaGVtZW50IGVsZW1lbnQgc28gdGhhdCBpdCBjYW4gYmUg
cHJvcGVybHkgdXBkYXRlZC4KKyAgICAgICAgVGhpcyBpbmNsdWRlcyBob2xkaW5nIG9udG8gdGhl
IGF0dGFjaG1lbnQgSUQgb2YgdGhlIGNvbnRyb2xsZWQgaW1hZ2Ugc28gdGhhdCBpdCAKKyAgICAg
ICAgY2FuIGxhdGVyIGJlIGZvdW5kIGFuZCB1cGRhdGVkLgorCisgICAgICAgICogU2hhcmVkL0Nv
bnRleHRNZW51Q29udGV4dERhdGEuY3BwOgorICAgICAgICAoV2ViS2l0OjpDb250ZXh0TWVudUNv
bnRleHREYXRhOjpDb250ZXh0TWVudUNvbnRleHREYXRhKToKKyAgICAgICAgKFdlYktpdDo6Q29u
dGV4dE1lbnVDb250ZXh0RGF0YTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6Q29u
dGV4dE1lbnVDb250ZXh0RGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvQ29udGV4dE1l
bnVDb250ZXh0RGF0YS5oOgorICAgICAgICAoV2ViS2l0OjpDb250ZXh0TWVudUNvbnRleHREYXRh
Ojpjb250cm9sbGVkSW1hZ2VBdHRhY2htZW50SUQgY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbToKKyAgICAgICAgKC1bV0tXZWJW
aWV3Q29uZmlndXJhdGlvbiBpbml0XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tBdHRhY2htZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdHRhY2ht
ZW50Lm1tOgorICAgICAgICAoLVtfV0tBdHRhY2htZW50IHNldERhdGE6bmV3Q29udGVudFR5cGU6
XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdHRhY2htZW50SW50ZXJuYWwu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dLU2hhcmluZ1NlcnZpY2VQaWNrZXJEZWxlZ2F0
ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tTaGFyaW5nU2VydmljZVBpY2tlckRlbGVn
YXRlLm1tOgorICAgICAgICAoLVtXS1NoYXJpbmdTZXJ2aWNlUGlja2VyRGVsZWdhdGUgc2V0QXR0
YWNobWVudElEOl0pOgorICAgICAgICAoLVtXS1NoYXJpbmdTZXJ2aWNlUGlja2VyRGVsZWdhdGUg
c2hhcmluZ1NlcnZpY2U6ZGlkU2hhcmVJdGVtczpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFj
L1dlYkNvbnRleHRNZW51UHJveHlNYWMubW06CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRN
ZW51UHJveHlNYWM6OnNldHVwU2VydmljZXNNZW51KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNo
cm9tZUNsaWVudDo6aGFuZGxlSW1hZ2VTZXJ2aWNlQ2xpY2spOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dl
YlBhZ2VNYWMubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmhhbmRsZUltYWdlU2Vydmlj
ZUNsaWNrKToKKwogMjAyMS0xMi0xMCAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5j
b20+CiAKICAgICAgICAgRml4IHNhbmRib3ggYnVpbGQgZXJyb3IKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9tYWMvSW1hZ2VDb250cm9sc01hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vbWFjL0ltYWdlQ29udHJvbHNNYWMuY3BwCmluZGV4IDI3NGRlOThmMjQ4MGYzZjEwYzhhMzg4
NWE1NGY4ZDhlOTFlMGMzYTAuLjcxYjhjMjgyYTdlNzYwZDNlOWYwZDQwMDU2MzI1OTIyMTIzZDcw
YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9tYWMvSW1hZ2VDb250cm9sc01hYy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL21hYy9JbWFnZUNvbnRyb2xzTWFjLmNwcApAQCAt
MzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkNvbnRleHRNZW51Q29udHJvbGxlci5oIgogI2luY2x1
ZGUgIkVsZW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRXZlbnRIYW5kbGVyLmgiCisjaW5jbHVk
ZSAiSFRNTEF0dGFjaG1lbnRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEJ1dHRvbkVsZW1lbnQu
aCIKICNpbmNsdWRlICJIVE1MRGl2RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxJbWFnZUVsZW1l
bnQuaCIKQEAgLTEyNiwxMSArMTI3LDE1IEBAIGJvb2wgaGFuZGxlRXZlbnQoSFRNTEVsZW1lbnQm
IGVsZW1lbnQsIEV2ZW50JiBldmVudCkKICAgICBhdXRvJiBub2RlID0gZG93bmNhc3Q8Tm9kZT4o
Km1vdXNlRXZlbnQudGFyZ2V0KCkpOwogCiAgICAgaWYgKEltYWdlQ29udHJvbHNNYWM6OmlzSW1h
Z2VDb250cm9sc0J1dHRvbkVsZW1lbnQobm9kZSkpIHsKLSAgICAgICAgYXV0byBpbWFnZUVsZW1l
bnQgPSBub2RlLnNoYWRvd0hvc3QoKTsKLSAgICAgICAgaWYgKCFpbWFnZUVsZW1lbnQpCisgICAg
ICAgIGF1dG8gc2hhZG93SG9zdCA9IG5vZGUuc2hhZG93SG9zdCgpOworICAgICAgICBpZiAoIXNo
YWRvd0hvc3QpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGlmIChhdXRvKiBp
bWFnZSA9IGltYWdlRnJvbUltYWdlRWxlbWVudE5vZGUoKmltYWdlRWxlbWVudCkpIHsKLSAgICAg
ICAgICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLmhhbmRsZUltYWdlU2VydmljZUNsaWNrKHJv
dW5kZWRJbnRQb2ludChtb3VzZUV2ZW50LmFic29sdXRlTG9jYXRpb24oKSksICppbWFnZSwgaW1h
Z2VFbGVtZW50LT5pc0NvbnRlbnRFZGl0YWJsZSgpLCBpbWFnZUVsZW1lbnQtPnJlbmRlckJveCgp
LT5hYnNvbHV0ZUNvbnRlbnRRdWFkKCkuZW5jbG9zaW5nQm91bmRpbmdCb3goKSk7CisgICAgICAg
IGlmICghaXM8SFRNTEltYWdlRWxlbWVudD4oKnNoYWRvd0hvc3QpKQorICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgICAgICBIVE1MSW1hZ2VFbGVtZW50JiBpbWFnZUVsZW1lbnQgPSBkb3du
Y2FzdDxIVE1MSW1hZ2VFbGVtZW50Pigqc2hhZG93SG9zdCk7CisgICAgICAgIGlmIChhdXRvKiBp
bWFnZSA9IGltYWdlRnJvbUltYWdlRWxlbWVudE5vZGUoKnNoYWRvd0hvc3QpKSB7CisgICAgICAg
ICAgICBhdXRvIGF0dGFjaG1lbnRJRCA9IEhUTUxBdHRhY2htZW50RWxlbWVudDo6Z2V0QXR0YWNo
bWVudElkZW50aWZpZXIoaW1hZ2VFbGVtZW50KTsKKyAgICAgICAgICAgIHBhZ2UtPmNocm9tZSgp
LmNsaWVudCgpLmhhbmRsZUltYWdlU2VydmljZUNsaWNrKHJvdW5kZWRJbnRQb2ludChtb3VzZUV2
ZW50LmFic29sdXRlTG9jYXRpb24oKSksICppbWFnZSwgaW1hZ2VFbGVtZW50LmlzQ29udGVudEVk
aXRhYmxlKCksIGltYWdlRWxlbWVudC5yZW5kZXJCb3goKS0+YWJzb2x1dGVDb250ZW50UXVhZCgp
LmVuY2xvc2luZ0JvdW5kaW5nQm94KCksIGF0dGFjaG1lbnRJRCk7CiAgICAgICAgICAgICBldmVu
dC5zZXREZWZhdWx0SGFuZGxlZCgpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCmluZGV4IGQxMDhmYjE4
Yjc5ZjA5MTJjZTYxNzE1NDE3Yjc4YWMzMzhiYjhhYTguLjc3Yzk4ZjVlMDQ1OTc2Zjk5N2M1ODli
YTFhYzQzYzVmZGYxYWIyODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElt
YWdlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50
LmNwcApAQCAtNzQzLDYgKzc0Myw3IEBAIHZvaWQgSFRNTEltYWdlRWxlbWVudDo6c2V0QXR0YWNo
bWVudEVsZW1lbnQoUmVmPEhUTUxBdHRhY2htZW50RWxlbWVudD4mJiBhdHRhY2htCiAKICAgICBh
dHRhY2htZW50LT5zZXRJbmxpbmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5RGlzcGxheSwgQ1NT
VmFsdWVOb25lLCB0cnVlKTsKICAgICBlbnN1cmVVc2VyQWdlbnRTaGFkb3dSb290KCkuYXBwZW5k
Q2hpbGQoV1RGTW92ZShhdHRhY2htZW50KSk7CisgICAgc2V0QXR0cmlidXRlV2l0aG91dFN5bmNo
cm9uaXphdGlvbih3ZWJraXRpbWFnZW1lbnVBdHRyLCBlbXB0eVN0cmluZygpKTsKIH0KIAogUmVm
UHRyPEhUTUxBdHRhY2htZW50RWxlbWVudD4gSFRNTEltYWdlRWxlbWVudDo6YXR0YWNobWVudEVs
ZW1lbnQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGll
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggNmM3ODA1NjUy
NzJkMzhjMTU4NjgyZDIwZjc4YWIxMmExNDZjZjRhZS4uNGQ0MzcxZTlhMDk0YmNmMTIwZmEzNjli
ZTE4MmE2M2FjMGIzOGEyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC01MzIs
NyArNTMyLDcgQEAgcHVibGljOgogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQogICAgIHZp
cnR1YWwgdm9pZCBoYW5kbGVTZWxlY3Rpb25TZXJ2aWNlQ2xpY2soRnJhbWVTZWxlY3Rpb24mLCBj
b25zdCBWZWN0b3I8U3RyaW5nPiYsIGNvbnN0IEludFBvaW50JikgeyB9CiAgICAgdmlydHVhbCBi
b29sIGhhc1JlbGV2YW50U2VsZWN0aW9uU2VydmljZXMoYm9vbCAvKmlzVGV4dE9ubHkqLykgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlSW1hZ2VTZXJ2aWNl
Q2xpY2soY29uc3QgSW50UG9pbnQmLCBJbWFnZSYsIGJvb2wgLyppc0VkaXRhYmxlKi8sIGNvbnN0
IEludFJlY3QmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlSW1hZ2VTZXJ2aWNlQ2xpY2so
Y29uc3QgSW50UG9pbnQmLCBJbWFnZSYsIGJvb2wgLyppc0VkaXRhYmxlKi8sIGNvbnN0IEludFJl
Y3QmLCBjb25zdCBTdHJpbmcmKSB7IH0KICNlbmRpZgogCiAgICAgdmlydHVhbCBib29sIHNob3Vs
ZERpc3BhdGNoRmFrZU1vdXNlTW92ZUV2ZW50cygpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvbnRleHRNZW51Q29udGV4dERhdGEuY3Bw
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29udGV4dE1lbnVDb250ZXh0RGF0YS5jcHAKaW5kZXgg
NzA4MjdkMjZiOWE2MmVkMGM5NDM4MjM4Y2E1NDJmZjZjMTkzNmVkOS4uYWFlOTFhN2Q0M2M3YzA0
YWY3YzcwMGQyYTQ5ODk0ODBhZmU3YTlkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvQ29udGV4dE1lbnVDb250ZXh0RGF0YS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
Q29udGV4dE1lbnVDb250ZXh0RGF0YS5jcHAKQEAgLTY3LDExICs2NywxMiBAQCBDb250ZXh0TWVu
dUNvbnRleHREYXRhOjpDb250ZXh0TWVudUNvbnRleHREYXRhKGNvbnN0IFdlYkNvcmU6OkludFBv
aW50JiBtZW51TG9jYQogfQogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCi1Db250ZXh0
TWVudUNvbnRleHREYXRhOjpDb250ZXh0TWVudUNvbnRleHREYXRhKGNvbnN0IFdlYkNvcmU6Oklu
dFBvaW50JiBtZW51TG9jYXRpb24sIFdlYkNvcmU6OkltYWdlJiBpbWFnZSwgYm9vbCBpc0VkaXRh
YmxlLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBpbWFnZVJlY3QpCitDb250ZXh0TWVudUNvbnRl
eHREYXRhOjpDb250ZXh0TWVudUNvbnRleHREYXRhKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBt
ZW51TG9jYXRpb24sIFdlYkNvcmU6OkltYWdlJiBpbWFnZSwgYm9vbCBpc0VkaXRhYmxlLCBjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JiBpbWFnZVJlY3QsIGNvbnN0IFN0cmluZyYgYXR0YWNobWVudElE
KQogICAgIDogbV90eXBlKFR5cGU6OlNlcnZpY2VzTWVudSkKICAgICAsIG1fbWVudUxvY2F0aW9u
KG1lbnVMb2NhdGlvbikKICAgICAsIG1fc2VsZWN0aW9uSXNFZGl0YWJsZShpc0VkaXRhYmxlKQog
ICAgICwgbV9jb250cm9sbGVkSW1hZ2VCb3VuZHMoaW1hZ2VSZWN0KQorICAgICwgbV9jb250cm9s
bGVkSW1hZ2VBdHRhY2htZW50SUQoYXR0YWNobWVudElEKQogewogICAgIHNldEltYWdlKCZpbWFn
ZSk7CiB9CkBAIC0xMDQsNiArMTA1LDcgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRleHREYXRhOjpl
bmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgbV9zZWxl
Y3RlZFRlbGVwaG9uZU51bWJlcnM7CiAgICAgZW5jb2RlciA8PCBtX3NlbGVjdGlvbklzRWRpdGFi
bGU7CiAgICAgZW5jb2RlciA8PCBtX2NvbnRyb2xsZWRJbWFnZUJvdW5kczsKKyAgICBlbmNvZGVy
IDw8IG1fY29udHJvbGxlZEltYWdlQXR0YWNobWVudElEOwogI2VuZGlmCiB9CiAKQEAgLTE0MCw2
ICsxNDIsOCBAQCBib29sIENvbnRleHRNZW51Q29udGV4dERhdGE6OmRlY29kZShJUEM6OkRlY29k
ZXImIGRlY29kZXIsIENvbnRleHRNZW51Q29udGV4dERhdAogICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubV9jb250cm9sbGVkSW1hZ2VCb3VuZHMp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQu
bV9jb250cm9sbGVkSW1hZ2VBdHRhY2htZW50SUQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAj
ZW5kaWYKIAogICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvQ29udGV4dE1lbnVDb250ZXh0RGF0YS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29udGV4
dE1lbnVDb250ZXh0RGF0YS5oCmluZGV4IDI4ZjE3YTNjMTNhOGNhZWVlZTEzZjRjNjBjOWI3OTBj
MWQ3NGIxMzEuLjRjYzM1YzVmOWVkZGVlYmI0NTE4MDYwNjg4MmFmNWM4YzFkZTc0YzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvbnRleHRNZW51Q29udGV4dERhdGEuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db250ZXh0TWVudUNvbnRleHREYXRhLmgKQEAgLTY0LDcg
KzY0LDcgQEAgcHVibGljOgogICAgIHsKICAgICB9CiAgICAgCi0gICAgQ29udGV4dE1lbnVDb250
ZXh0RGF0YShjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgbWVudUxvY2F0aW9uLCBXZWJDb3JlOjpJ
bWFnZSYsIGJvb2wgaXNFZGl0YWJsZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgaW1hZ2VSZWN0
KTsKKyAgICBDb250ZXh0TWVudUNvbnRleHREYXRhKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBt
ZW51TG9jYXRpb24sIFdlYkNvcmU6OkltYWdlJiwgYm9vbCBpc0VkaXRhYmxlLCBjb25zdCBXZWJD
b3JlOjpJbnRSZWN0JiBpbWFnZVJlY3QsIGNvbnN0IFN0cmluZyYgYXR0YWNobWVudElEKTsKIAog
ICAgIFNoYXJlYWJsZUJpdG1hcCogY29udHJvbGxlZEltYWdlKCkgY29uc3QgeyByZXR1cm4gbV9j
b250cm9sbGVkSW1hZ2UuZ2V0KCk7IH0KICAgICBjb25zdCBWZWN0b3I8dWludDhfdD4mIGNvbnRy
b2xsZWRTZWxlY3Rpb25EYXRhKCkgY29uc3QgeyByZXR1cm4gbV9jb250cm9sbGVkU2VsZWN0aW9u
RGF0YTsgfQpAQCAtNzMsNiArNzMsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc1NlcnZpY2VzTWVu
dSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBDb250ZXh0TWVudUNvbnRleHREYXRhOjpUeXBl
OjpTZXJ2aWNlc01lbnU7IH0KICAgICBib29sIGNvbnRyb2xsZWREYXRhSXNFZGl0YWJsZSgpIGNv
bnN0OwogICAgIFdlYkNvcmU6OkludFJlY3QgY29udHJvbGxlZEltYWdlQm91bmRzKCkgY29uc3Qg
eyByZXR1cm4gbV9jb250cm9sbGVkSW1hZ2VCb3VuZHM7IH07CisgICAgU3RyaW5nIGNvbnRyb2xs
ZWRJbWFnZUF0dGFjaG1lbnRJRCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udHJvbGxlZEltYWdlQXR0
YWNobWVudElEOyB9OwogI2VuZGlmCiAKICAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBj
b25zdDsKQEAgLTk1LDYgKzk2LDcgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8U3RyaW5nPiBtX3Nl
bGVjdGVkVGVsZXBob25lTnVtYmVyczsKICAgICBib29sIG1fc2VsZWN0aW9uSXNFZGl0YWJsZTsK
ICAgICBXZWJDb3JlOjpJbnRSZWN0IG1fY29udHJvbGxlZEltYWdlQm91bmRzOworICAgIFN0cmlu
ZyBtX2NvbnRyb2xsZWRJbWFnZUF0dGFjaG1lbnRJRDsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F0dGFjaG1lbnQubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXR0YWNobWVudC5tbQppbmRleCAw
MjYzMjEzZTkwYzk4ZDdhZmMyZGQ4ZjE0ZDA5ZWE4ZmUxNjQ5NmYyLi41ZTlmMTYxNWVlOTVhNzQy
MGM3MDgwNzhkNzE3ZDQzZjFhNjZiMWIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLQXR0YWNobWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLQXR0YWNobWVudC5tbQpAQCAtMTUwLDYgKzE1MCwxMiBAQCAtICh2
b2lkKXNldEZpbGVXcmFwcGVyOihOU0ZpbGVXcmFwcGVyICopZmlsZVdyYXBwZXIgY29udGVudFR5
cGU6KE5TU3RyaW5nICopY29udAogICAgIH0pOwogfQogCistICh2b2lkKXNldERhdGE6KE5TRGF0
YSAqKWRhdGEgbmV3Q29udGVudFR5cGU6KE5TU3RyaW5nICopbmV3Q29udGVudFR5cGUKK3sKKyAg
ICBhdXRvIGZpbGVXcmFwcGVyID0gYWRvcHROUyhbW05TRmlsZVdyYXBwZXIgYWxsb2NdIGluaXRS
ZWd1bGFyRmlsZVdpdGhDb250ZW50czpkYXRhXSk7CisgICAgW3NlbGYgc2V0RmlsZVdyYXBwZXI6
ZmlsZVdyYXBwZXIuZ2V0KCkgY29udGVudFR5cGU6bmV3Q29udGVudFR5cGUgY29tcGxldGlvbjpu
aWxdOworfQorCiAtICh2b2lkKXNldERhdGE6KE5TRGF0YSAqKWRhdGEgbmV3Q29udGVudFR5cGU6
KE5TU3RyaW5nICopbmV3Q29udGVudFR5cGUgbmV3RmlsZW5hbWU6KE5TU3RyaW5nICopbmV3Rmls
ZW5hbWUgY29tcGxldGlvbjoodm9pZCheKShOU0Vycm9yICopKWNvbXBsZXRpb25IYW5kbGVyCiB7
CiAgICAgYXV0byBmaWxlV3JhcHBlciA9IGFkb3B0TlMoW1tOU0ZpbGVXcmFwcGVyIGFsbG9jXSBp
bml0UmVndWxhckZpbGVXaXRoQ29udGVudHM6ZGF0YV0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F0dGFjaG1lbnRJbnRlcm5hbC5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F0dGFjaG1lbnRJbnRlcm5hbC5oCmluZGV4
IDIxMTBiNDMwOGY5ODY4ZWUwMGQ2NWQ1ZWNhNjNiNjA3NjhjMDZmM2IuLjczOGQ0Njc1M2IyNzVl
MzVjNjQ5ZTRkOTc3OTU1YTEwZWU2MDQ2YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tBdHRhY2htZW50SW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXR0YWNobWVudEludGVybmFsLmgKQEAgLTM4LDQg
KzM4LDYgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgV3JhcHBlclRyYWl0czxBUEk6OkF0dGFjaG1lbnQ+
IHsKIEBwYWNrYWdlCiAgICAgQVBJOjpPYmplY3RTdG9yYWdlPEFQSTo6QXR0YWNobWVudD4gX2F0
dGFjaG1lbnQ7CiB9CisKKy0gKHZvaWQpc2V0RGF0YTooTlNEYXRhICopZGF0YSBuZXdDb250ZW50
VHlwZTooTlNTdHJpbmcgKiluZXdDb250ZW50VHlwZTsKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1NoYXJpbmdTZXJ2aWNlUGlja2VyRGVsZWdhdGUuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1NoYXJpbmdTZXJ2aWNlUGlja2VyRGVsZWdh
dGUuaAppbmRleCBiNDM0M2M4NGFmOTYxNzE5M2E0MmJjNTNhNDRiNWQ5ZTA2OGUxYTMzLi42ZDQ4
OTBjNTQ0OGZiMWVjZjQ0MWJmOTEyNmI3MjAyMGMwZTZmYWI2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tTaGFyaW5nU2VydmljZVBpY2tlckRlbGVnYXRlLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLU2hhcmluZ1NlcnZpY2VQaWNrZXJEZWxl
Z2F0ZS5oCkBAIC0zOSw2ICszOSw3IEBAIGNsYXNzIFdlYkNvbnRleHRNZW51UHJveHlNYWM7CiAg
ICAgQk9PTCBfZmlsdGVyRWRpdGluZ1NlcnZpY2VzOwogICAgIEJPT0wgX2hhbmRsZUVkaXRpbmdS
ZXBsYWNlbWVudDsKICAgICBOU1JlY3QgX3NvdXJjZUZyYW1lOworICAgIFN0cmluZyBfYXR0YWNo
bWVudElEOwogfQogCiArIChXS1NoYXJpbmdTZXJ2aWNlUGlja2VyRGVsZWdhdGUgKilzaGFyZWRT
aGFyaW5nU2VydmljZVBpY2tlckRlbGVnYXRlOwpAQCAtNDgsNiArNDksNyBAQCBjbGFzcyBXZWJD
b250ZXh0TWVudVByb3h5TWFjOwogLSAodm9pZClzZXRGaWx0ZXJzRWRpdGluZ1NlcnZpY2VzOihC
T09MKWZpbHRlcnNFZGl0aW5nU2VydmljZXM7CiAtICh2b2lkKXNldEhhbmRsZXNFZGl0aW5nUmVw
bGFjZW1lbnQ6KEJPT0wpaGFuZGxlc0VkaXRpbmdSZXBsYWNlbWVudDsKIC0gKHZvaWQpc2V0U291
cmNlRnJhbWU6KE5TUmVjdClzb3VyY2VGcmFtZTsKKy0gKHZvaWQpc2V0QXR0YWNobWVudElEOihT
dHJpbmcpYXR0YWNobWVudElEOwogCiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL21hYy9XS1NoYXJpbmdTZXJ2aWNlUGlja2VyRGVsZWdhdGUubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tTaGFyaW5nU2VydmljZVBpY2tlckRlbGVnYXRlLm1tCmlu
ZGV4IGQ4Y2NlNmQxZTVjZDQyOWMwODA4NTE5MDAyYWRmZjAyYTVjOGY3NDguLmZiZTk4YTA4Mzlh
ZGExYzQxZDVmMzIyMWQ0NDlhZGZmZjRmMjIwMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL21hYy9XS1NoYXJpbmdTZXJ2aWNlUGlja2VyRGVsZWdhdGUubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLU2hhcmluZ1NlcnZpY2VQaWNrZXJEZWxlZ2F0ZS5t
bQpAQCAtMjgsOSArMjgsMTIgQEAKIAogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQogCisj
aW1wb3J0ICJBUElBdHRhY2htZW50LmgiCiAjaW1wb3J0ICJEYXRhUmVmZXJlbmNlLmgiCisjaW1w
b3J0ICJXS09iamVjdC5oIgogI2ltcG9ydCAiV2ViQ29udGV4dE1lbnVQcm94eU1hYy5oIgogI2lt
cG9ydCAiV2ViUGFnZVByb3h5LmgiCisjaW1wb3J0ICJfV0tBdHRhY2htZW50SW50ZXJuYWwuaCIK
ICNpbXBvcnQgPFdlYkNvcmUvTGVnYWN5TlNQYXN0ZWJvYXJkVHlwZXMuaD4KICNpbXBvcnQgPHBh
bC9zcGkvbWFjL05TU2hhcmluZ1NlcnZpY2VQaWNrZXJTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkv
bWFjL05TU2hhcmluZ1NlcnZpY2VTUEkuaD4KQEAgLTc1LDYgKzc4LDExIEBAIC0gKHZvaWQpc2V0
U291cmNlRnJhbWU6KE5TUmVjdClzb3VyY2VGcmFtZQogICAgIF9zb3VyY2VGcmFtZSA9IHNvdXJj
ZUZyYW1lOwogfQogCistICh2b2lkKXNldEF0dGFjaG1lbnRJRDooU3RyaW5nKWF0dGFjaG1lbnRJ
RAoreworICAgIF9hdHRhY2htZW50SUQgPSBhdHRhY2htZW50SUQ7Cit9CisKIC0gKE5TQXJyYXkg
KilzaGFyaW5nU2VydmljZVBpY2tlcjooTlNTaGFyaW5nU2VydmljZVBpY2tlciAqKXNoYXJpbmdT
ZXJ2aWNlUGlja2VyIHNoYXJpbmdTZXJ2aWNlc0Zvckl0ZW1zOihOU0FycmF5ICopaXRlbXMgbWFz
azooTlNTaGFyaW5nU2VydmljZU1hc2spbWFzayBwcm9wb3NlZFNoYXJpbmdTZXJ2aWNlczooTlNB
cnJheSAqKXByb3Bvc2VkU2VydmljZXMKIHsKICAgICBpZiAoIV9maWx0ZXJFZGl0aW5nU2Vydmlj
ZXMpCkBAIC0xMDgsNyArMTE2LDcgQEAgLSAodm9pZClzaGFyaW5nU2VydmljZTooTlNTaGFyaW5n
U2VydmljZSAqKXNoYXJpbmdTZXJ2aWNlIHdpbGxTaGFyZUl0ZW1zOihOU0FycmEKIC0gKHZvaWQp
c2hhcmluZ1NlcnZpY2U6KE5TU2hhcmluZ1NlcnZpY2UgKilzaGFyaW5nU2VydmljZSBkaWRTaGFy
ZUl0ZW1zOihOU0FycmF5ICopaXRlbXMKIHsKICAgICAvLyBXZSBvbmx5IGNhcmUgYWJvdXQgd2hh
dCBpdGVtIHdhcyBzaGFyZWQgaWYgd2Ugd2VyZSBpbnRlcmVzdGVkIGluIGVkaXRvciBzZXJ2aWNl
cwotICAgIC8vIChpLmUuLCBpZiB3ZSBwbGFuIG9uIHJlcGxhY2luZyB0aGUgc2VsZWN0aW9uIHdp
dGggdGhlIHJldHVybmVkIGl0ZW0pCisgICAgLy8gKGkuZS4sIGlmIHdlIHBsYW4gb24gcmVwbGFj
aW5nIHRoZSBzZWxlY3Rpb24gb3IgY29udHJvbGxlZCBpbWFnZSB3aXRoIHRoZSByZXR1cm5lZCBp
dGVtKQogICAgIGlmICghX2hhbmRsZUVkaXRpbmdSZXBsYWNlbWVudCkKICAgICAgICAgcmV0dXJu
OwogCkBAIC0xMzYsNiArMTQ0LDIwIEBAIC0gKHZvaWQpc2hhcmluZ1NlcnZpY2U6KE5TU2hhcmlu
Z1NlcnZpY2UgKilzaGFyaW5nU2VydmljZSBkaWRTaGFyZUl0ZW1zOihOU0FycmF5CiAKICAgICAg
ICAgZGF0YVJlZmVyZW5jZSA9IElQQzo6RGF0YVJlZmVyZW5jZShzdGF0aWNfY2FzdDxjb25zdCB1
aW50OF90Kj4oW2RhdGEgYnl0ZXNdKSwgW2RhdGEgbGVuZ3RoXSk7CiAgICAgICAgIHR5cGVzLmFw
cGVuZChOU1Bhc3RlYm9hcmRUeXBlVElGRik7CisgICAgfSBlbHNlIGlmIChbaXRlbSBpc0tpbmRP
ZkNsYXNzOltOU0l0ZW1Qcm92aWRlciBjbGFzc11dKSB7CisgICAgICAgIE5TSXRlbVByb3ZpZGVy
ICppdGVtUHJvdmlkZXIgPSAoTlNJdGVtUHJvdmlkZXIgKilpdGVtOworICAgICAgICAKKyAgICAg
ICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KKyAgICAgICAgW2l0ZW1Qcm92
aWRlciBsb2FkRGF0YVJlcHJlc2VudGF0aW9uRm9yVHlwZUlkZW50aWZpZXI6KE5TU3RyaW5nICop
a1VUVHlwZURhdGEgY29tcGxldGlvbkhhbmRsZXI6XihOU0RhdGEgKmRhdGEsIE5TRXJyb3IgKmVy
cm9yKSB7CisgICAgICAgICAgICBpZiAoZXJyb3IpCisgICAgICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICAgICAgCisgICAgICAgICAgICBhdXRvIGFwaUF0dGFjaG1lbnQgPSBfbWVudVByb3h5
LT5wYWdlKCktPmF0dGFjaG1lbnRGb3JJZGVudGlmaWVyKF9hdHRhY2htZW50SUQpOworICAgICAg
ICAgICAgYXV0byBhdHRhY2htZW50ID0gd3JhcHBlcihhcGlBdHRhY2htZW50KTsKKyAgICAgICAg
ICAgIFthdHRhY2htZW50IHNldERhdGE6ZGF0YSBuZXdDb250ZW50VHlwZTpTdHJpbmcoTlNQYXN0
ZWJvYXJkVHlwZVRJRkYpXTsKKyAgICAgICAgfV07CisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0VORAorICAgICAgICByZXR1cm47CiAgICAgfSBlbHNlIHsKICAgICAgICAg
TE9HX0VSUk9SKCJzaGFyaW5nU2VydmljZTpkaWRTaGFyZUl0ZW1zOiAtIFVua25vd24gaXRlbSB0
eXBlIHJldHVybmVkXG4iKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbQppbmRleCA3ZDYxYTJj
OThlNjYxMmMxZWU0MDA5MGUxMjdjMDEyODNiMTNmODc2Li5kNTlmY2IxMmYyZDJhMGFkYzIyN2Iw
ZmRjMjU2ZjVjYWZlYTkzODRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9t
YWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYg
UExBVEZPUk0oTUFDKQogCisjaW1wb3J0ICJBUElBdHRhY2htZW50LmgiCiAjaW1wb3J0ICJBUElD
b250ZXh0TWVudUNsaWVudC5oIgogI2ltcG9ydCAiTWVudVV0aWxpdGllcy5oIgogI2ltcG9ydCAi
UGFnZUNsaWVudEltcGxNYWMuaCIKQEAgLTI0Myw2ICsyNDQsNyBAQCBBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19FTkQKICAgICBpbWFnZVJlY3QgPSBbbV93ZWJWaWV3IGNvbnZlcnRSZWN0
OmltYWdlUmVjdCB0b1ZpZXc6bmlsXTsKICAgICBpbWFnZVJlY3QgPSBbW21fd2ViVmlldyB3aW5k
b3ddIGNvbnZlcnRSZWN0VG9TY3JlZW46aW1hZ2VSZWN0XTsKICAgICBbW1dLU2hhcmluZ1NlcnZp
Y2VQaWNrZXJEZWxlZ2F0ZSBzaGFyZWRTaGFyaW5nU2VydmljZVBpY2tlckRlbGVnYXRlXSBzZXRT
b3VyY2VGcmFtZTppbWFnZVJlY3RdOworICAgIFtbV0tTaGFyaW5nU2VydmljZVBpY2tlckRlbGVn
YXRlIHNoYXJlZFNoYXJpbmdTZXJ2aWNlUGlja2VyRGVsZWdhdGVdIHNldEF0dGFjaG1lbnRJRDpt
X2NvbnRleHQuY29udHJvbGxlZEltYWdlQXR0YWNobWVudElEKCldOwogCiAgICAgbV9tZW51ID0g
YWRvcHROUyhbW3BpY2tlciBtZW51XSBjb3B5XSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5k
ZXggN2RhMzcyZjJmNjY4ZjcxMTg2NzBlYWU3MmFhZTAyMDllZGQ5NjdmZC4uM2UyZDQ3NWY4YzIw
Zjg4ZWVkNWYxZTljMTRmOGVlMmZlZTViZjA4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAg
LTEzNDcsOSArMTM0Nyw5IEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpoYXNSZWxldmFudFNlbGVj
dGlvblNlcnZpY2VzKGJvb2wgaXNUZXh0T25seSkgY29uc3QKICAgICByZXR1cm4gKGlzVGV4dE9u
bHkgJiYgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuaGFzU2VsZWN0aW9uU2VydmljZXMoKSkgfHwg
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuaGFzUmljaENvbnRlbnRTZXJ2aWNlcygpOwogfQogCi12
b2lkIFdlYkNocm9tZUNsaWVudDo6aGFuZGxlSW1hZ2VTZXJ2aWNlQ2xpY2soY29uc3QgSW50UG9p
bnQmIHBvaW50LCBJbWFnZSYgaW1hZ2UsIGJvb2wgaXNFZGl0YWJsZSwgY29uc3QgSW50UmVjdCYg
aW1hZ2VSZWN0KQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmhhbmRsZUltYWdlU2VydmljZUNsaWNr
KGNvbnN0IEludFBvaW50JiBwb2ludCwgSW1hZ2UmIGltYWdlLCBib29sIGlzRWRpdGFibGUsIGNv
bnN0IEludFJlY3QmIGltYWdlUmVjdCwgY29uc3QgU3RyaW5nJiBhdHRhY2htZW50SUQpCiB7Ci0g
ICAgbV9wYWdlLmhhbmRsZUltYWdlU2VydmljZUNsaWNrKHBvaW50LCBpbWFnZSwgaXNFZGl0YWJs
ZSwgaW1hZ2VSZWN0KTsKKyAgICBtX3BhZ2UuaGFuZGxlSW1hZ2VTZXJ2aWNlQ2xpY2socG9pbnQs
IGltYWdlLCBpc0VkaXRhYmxlLCBpbWFnZVJlY3QsIGF0dGFjaG1lbnRJRCk7CiB9CiAKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IGZmMTVjYTM5NzRiMDQzNmJhMjkyMzdiNDVjMTY4NTQy
ZTZlZTc4YzcuLmY5NTdlNDc0YjY0N2YxYWE1MTEyYjllMzJhNjI2NWI5YjAyMTliMzEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmgKQEAgLTM4MSw3ICszODEsNyBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShT
RVJWSUNFX0NPTlRST0xTKQogICAgIHZvaWQgaGFuZGxlU2VsZWN0aW9uU2VydmljZUNsaWNrKFdl
YkNvcmU6OkZyYW1lU2VsZWN0aW9uJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHRlbGVwaG9uZU51
bWJlcnMsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JikgZmluYWw7CiAgICAgYm9vbCBoYXNSZWxl
dmFudFNlbGVjdGlvblNlcnZpY2VzKGJvb2wgaXNUZXh0T25seSkgY29uc3QgZmluYWw7Ci0gICAg
dm9pZCBoYW5kbGVJbWFnZVNlcnZpY2VDbGljayhjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIFdl
YkNvcmU6OkltYWdlJiwgYm9vbCBpc0VkaXRhYmxlLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jikg
ZmluYWw7CisgICAgdm9pZCBoYW5kbGVJbWFnZVNlcnZpY2VDbGljayhjb25zdCBXZWJDb3JlOjpJ
bnRQb2ludCYsIFdlYkNvcmU6OkltYWdlJiwgYm9vbCBpc0VkaXRhYmxlLCBjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JiwgY29uc3QgU3RyaW5nJikgZmluYWw7CiAjZW5kaWYKIAogICAgIGJvb2wgc2hv
dWxkRGlzcGF0Y2hGYWtlTW91c2VNb3ZlRXZlbnRzKCkgY29uc3QgZmluYWw7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggZDhiODFhOWNlOTNkYTA3NmIz
OTc5ZTE3YTM3NmIyMjZlNjQ5NzRkNi4uOGI3NmI5MDBiNzhhMGY2YThhNzRkYjRiNDhlMTY5MjFj
NTllNjJmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApA
QCAtMTIwNCw3ICsxMjA0LDcgQEAgcHVibGljOgogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xT
KSB8fCBFTkFCTEUoVEVMRVBIT05FX05VTUJFUl9ERVRFQ1RJT04pCiAgICAgdm9pZCBoYW5kbGVU
ZWxlcGhvbmVOdW1iZXJDbGljayhjb25zdCBTdHJpbmcmIG51bWJlciwgY29uc3QgV2ViQ29yZTo6
SW50UG9pbnQmKTsKICAgICB2b2lkIGhhbmRsZVNlbGVjdGlvblNlcnZpY2VDbGljayhXZWJDb3Jl
OjpGcmFtZVNlbGVjdGlvbiYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB0ZWxlcGhvbmVOdW1iZXJz
LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpOwotICAgIHZvaWQgaGFuZGxlSW1hZ2VTZXJ2aWNl
Q2xpY2soY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBXZWJDb3JlOjpJbWFnZSYsIGJvb2wgaXNF
ZGl0YWJsZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOworICAgIHZvaWQgaGFuZGxlSW1hZ2VT
ZXJ2aWNlQ2xpY2soY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBXZWJDb3JlOjpJbWFnZSYsIGJv
b2wgaXNFZGl0YWJsZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFN0cmluZyYgYXR0
YWNobWVudElEKTsKICNlbmRpZgogCiAgICAgdm9pZCBkaWRDaGFuZ2VTY3JvbGxPZmZzZXRGb3JG
cmFtZShXZWJDb3JlOjpGcmFtZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQppbmRleCAxZGVjOWUxYjEzYjY4NzZjZDNhNjRhMWVh
Mjc5NjU2OTVlNDAzZmI3Li5lNDY3ZWZmZmQ3OTQ3Yjc4YTRiODA3MGQ0ODg4YjA2YWY4ZWI3ZGM1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFn
ZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFn
ZU1hYy5tbQpAQCAtODI4LDkgKzgyOCw5IEBAIHZvaWQgV2ViUGFnZTo6aGFuZGxlU2VsZWN0aW9u
U2VydmljZUNsaWNrKEZyYW1lU2VsZWN0aW9uJiBzZWxlY3Rpb24sIGNvbnN0IFZlY3RvCiAgICAg
c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTaG93Q29udGV4dE1lbnUoQ29udGV4dE1lbnVD
b250ZXh0RGF0YShwb2ludCwgc2VsZWN0aW9uRGF0YVZlY3RvciwgcGhvbmVOdW1iZXJzLCBzZWxl
Y3Rpb24uc2VsZWN0aW9uKCkuaXNDb250ZW50RWRpdGFibGUoKSksIFVzZXJEYXRhKCkpKTsKIH0K
IAotdm9pZCBXZWJQYWdlOjpoYW5kbGVJbWFnZVNlcnZpY2VDbGljayhjb25zdCBJbnRQb2ludCYg
cG9pbnQsIEltYWdlJiBpbWFnZSwgYm9vbCBpc0VkaXRhYmxlLCBjb25zdCBJbnRSZWN0JiBpbWFn
ZVJlY3QpCit2b2lkIFdlYlBhZ2U6OmhhbmRsZUltYWdlU2VydmljZUNsaWNrKGNvbnN0IEludFBv
aW50JiBwb2ludCwgSW1hZ2UmIGltYWdlLCBib29sIGlzRWRpdGFibGUsIGNvbnN0IEludFJlY3Qm
IGltYWdlUmVjdCwgY29uc3QgU3RyaW5nJiBhdHRhY2htZW50SUQpCiB7Ci0gICAgc2VuZChNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpTaG93Q29udGV4dE1lbnUoQ29udGV4dE1lbnVDb250ZXh0RGF0
YShwb2ludCwgaW1hZ2UsIGlzRWRpdGFibGUsIGltYWdlUmVjdCksIFVzZXJEYXRhKCkpKTsKKyAg
ICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNob3dDb250ZXh0TWVudShDb250ZXh0TWVu
dUNvbnRleHREYXRhKHBvaW50LCBpbWFnZSwgaXNFZGl0YWJsZSwgaW1hZ2VSZWN0LCBhdHRhY2ht
ZW50SUQpLCBVc2VyRGF0YSgpKSk7CiB9CiAKICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446806</attachid>
            <date>2021-12-10 13:54:16 -0800</date>
            <delta_ts>2021-12-10 15:57:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234162-20211210135415.patch</filename>
            <type>text/plain</type>
            <size>20027</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2ODU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmI4MWQzYTAwZmJiYTZh
YzExNjQwZGE5NDZmNTkyOTM3ODMwZDFiMC4uOTQwYWZiODhhYjY0NjI3ZWZkN2I1MGM5MTc2NzE0
ZGMzNTVhNzFjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTEyLTEwICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgSW1hZ2UgZG9l
cyBub3QgdXBkYXRlIGFmdGVyIE1hcmt1cCBQYW5lIGlzIGRpc21pc3NlZC4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDE2MgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE9uY2UgdGhlIGl0ZW0gaXMgcmV0
dXJlZCBmcm9tIHRoZSBTaGFyaW5nIFNlcnZpY2UsIHdlIG5lZWQgdG8gcGlwZSB0aGUgaW5mb3Jt
YXRpb24KKyAgICAgICAgYmFjayB0byB0aGUgYXR0YWNoZW1lbnQgZWxlbWVudCBzbyB0aGF0IGl0
IGNhbiBiZSBwcm9wZXJseSB1cGRhdGVkLgorICAgICAgICBUaGlzIGluY2x1ZGVzIGhvbGRpbmcg
b250byB0aGUgYXR0YWNobWVudCBJRCBvZiB0aGUgY29udHJvbGxlZCBpbWFnZSBzbyB0aGF0IGl0
IAorICAgICAgICBjYW4gbGF0ZXIgYmUgZm91bmQgYW5kIHVwZGF0ZWQuCisKKyAgICAgICAgKiBk
b20vbWFjL0ltYWdlQ29udHJvbHNNYWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VDb250
cm9sc01hYzo6aGFuZGxlRXZlbnQpOgorICAgICAgICAqIGh0bWwvSFRNTEltYWdlRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW1hZ2VFbGVtZW50OjpzZXRBdHRhY2htZW50RWxl
bWVudCk6CisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkNocm9tZUNsaWVudDo6aGFuZGxlSW1hZ2VTZXJ2aWNlQ2xpY2spOgorCiAyMDIxLTEyLTEwICBD
b21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmll
d2VkLCByZXZlcnRpbmcgcjI4NjgzNi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYmJiNDJmYWUxNjFiNGI5YzMxNTU5
MTI2NGNjZGU0ZmIzNGMzZTZlMy4uMDg4NGI2ZmU2ZmRmM2I2MTFkZTcwYjI0MGZkMmViY2FmOWZh
NTRmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MCBAQAorMjAyMS0xMi0xMCAgTWVnYW4gR2FyZG5l
ciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgorCisgICAgICAgIEltYWdlIGRvZXMgbm90IHVw
ZGF0ZSBhZnRlciBNYXJrdXAgUGFuZSBpcyBkaXNtaXNzZWQuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQxNjIKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBPbmNlIHRoZSBpdGVtIGlzIHJldHVyZWQgZnJv
bSB0aGUgU2hhcmluZyBTZXJ2aWNlLCB3ZSBuZWVkIHRvIHBpcGUgdGhlIGluZm9ybWF0aW9uCisg
ICAgICAgIGJhY2sgdG8gdGhlIGF0dGFjaGVtZW50IGVsZW1lbnQgc28gdGhhdCBpdCBjYW4gYmUg
cHJvcGVybHkgdXBkYXRlZC4KKyAgICAgICAgVGhpcyBpbmNsdWRlcyBob2xkaW5nIG9udG8gdGhl
IGF0dGFjaG1lbnQgSUQgb2YgdGhlIGNvbnRyb2xsZWQgaW1hZ2Ugc28gdGhhdCBpdCAKKyAgICAg
ICAgY2FuIGxhdGVyIGJlIGZvdW5kIGFuZCB1cGRhdGVkLgorCisgICAgICAgICogU2hhcmVkL0Nv
bnRleHRNZW51Q29udGV4dERhdGEuY3BwOgorICAgICAgICAoV2ViS2l0OjpDb250ZXh0TWVudUNv
bnRleHREYXRhOjpDb250ZXh0TWVudUNvbnRleHREYXRhKToKKyAgICAgICAgKFdlYktpdDo6Q29u
dGV4dE1lbnVDb250ZXh0RGF0YTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6Q29u
dGV4dE1lbnVDb250ZXh0RGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvQ29udGV4dE1l
bnVDb250ZXh0RGF0YS5oOgorICAgICAgICAoV2ViS2l0OjpDb250ZXh0TWVudUNvbnRleHREYXRh
Ojpjb250cm9sbGVkSW1hZ2VBdHRhY2htZW50SUQgY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbToKKyAgICAgICAgKC1bV0tXZWJW
aWV3Q29uZmlndXJhdGlvbiBpbml0XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tBdHRhY2htZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdHRhY2ht
ZW50Lm1tOgorICAgICAgICAoLVtfV0tBdHRhY2htZW50IHNldERhdGE6bmV3Q29udGVudFR5cGU6
XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdHRhY2htZW50SW50ZXJuYWwu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dLU2hhcmluZ1NlcnZpY2VQaWNrZXJEZWxlZ2F0
ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tTaGFyaW5nU2VydmljZVBpY2tlckRlbGVn
YXRlLm1tOgorICAgICAgICAoLVtXS1NoYXJpbmdTZXJ2aWNlUGlja2VyRGVsZWdhdGUgc2V0QXR0
YWNobWVudElEOl0pOgorICAgICAgICAoLVtXS1NoYXJpbmdTZXJ2aWNlUGlja2VyRGVsZWdhdGUg
c2hhcmluZ1NlcnZpY2U6ZGlkU2hhcmVJdGVtczpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFj
L1dlYkNvbnRleHRNZW51UHJveHlNYWMubW06CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRN
ZW51UHJveHlNYWM6OnNldHVwU2VydmljZXNNZW51KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNo
cm9tZUNsaWVudDo6aGFuZGxlSW1hZ2VTZXJ2aWNlQ2xpY2spOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dl
YlBhZ2VNYWMubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmhhbmRsZUltYWdlU2Vydmlj
ZUNsaWNrKToKKwogMjAyMS0xMi0xMCAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5j
b20+CiAKICAgICAgICAgRml4IHNhbmRib3ggYnVpbGQgZXJyb3IKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9tYWMvSW1hZ2VDb250cm9sc01hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vbWFjL0ltYWdlQ29udHJvbHNNYWMuY3BwCmluZGV4IDI3NGRlOThmMjQ4MGYzZjEwYzhhMzg4
NWE1NGY4ZDhlOTFlMGMzYTAuLmJiODg2MWQxMDcxNDRhNTgyOWU3OTdjNTYyZDA5Njg4YmU4Yjli
YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9tYWMvSW1hZ2VDb250cm9sc01hYy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL21hYy9JbWFnZUNvbnRyb2xzTWFjLmNwcApAQCAt
MzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkNvbnRleHRNZW51Q29udHJvbGxlci5oIgogI2luY2x1
ZGUgIkVsZW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRXZlbnRIYW5kbGVyLmgiCisjaW5jbHVk
ZSAiSFRNTEF0dGFjaG1lbnRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEJ1dHRvbkVsZW1lbnQu
aCIKICNpbmNsdWRlICJIVE1MRGl2RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxJbWFnZUVsZW1l
bnQuaCIKQEAgLTEyNiwxMSArMTI3LDEzIEBAIGJvb2wgaGFuZGxlRXZlbnQoSFRNTEVsZW1lbnQm
IGVsZW1lbnQsIEV2ZW50JiBldmVudCkKICAgICBhdXRvJiBub2RlID0gZG93bmNhc3Q8Tm9kZT4o
Km1vdXNlRXZlbnQudGFyZ2V0KCkpOwogCiAgICAgaWYgKEltYWdlQ29udHJvbHNNYWM6OmlzSW1h
Z2VDb250cm9sc0J1dHRvbkVsZW1lbnQobm9kZSkpIHsKLSAgICAgICAgYXV0byBpbWFnZUVsZW1l
bnQgPSBub2RlLnNoYWRvd0hvc3QoKTsKLSAgICAgICAgaWYgKCFpbWFnZUVsZW1lbnQpCisgICAg
ICAgIGF1dG8gc2hhZG93SG9zdCA9IG5vZGUuc2hhZG93SG9zdCgpOworICAgICAgICBpZiAoIWlz
PEhUTUxJbWFnZUVsZW1lbnQ+KCpzaGFkb3dIb3N0KSkKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICAgICAgaWYgKGF1dG8qIGltYWdlID0gaW1hZ2VGcm9tSW1hZ2VFbGVtZW50Tm9kZSgq
aW1hZ2VFbGVtZW50KSkgewotICAgICAgICAgICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuaGFu
ZGxlSW1hZ2VTZXJ2aWNlQ2xpY2socm91bmRlZEludFBvaW50KG1vdXNlRXZlbnQuYWJzb2x1dGVM
b2NhdGlvbigpKSwgKmltYWdlLCBpbWFnZUVsZW1lbnQtPmlzQ29udGVudEVkaXRhYmxlKCksIGlt
YWdlRWxlbWVudC0+cmVuZGVyQm94KCktPmFic29sdXRlQ29udGVudFF1YWQoKS5lbmNsb3NpbmdC
b3VuZGluZ0JveCgpKTsKKyAgICAgICAgaWYgKGF1dG8qIGltYWdlID0gaW1hZ2VGcm9tSW1hZ2VF
bGVtZW50Tm9kZSgqc2hhZG93SG9zdCkpIHsKKyAgICAgICAgICAgIEhUTUxJbWFnZUVsZW1lbnQm
IGltYWdlRWxlbWVudCA9IGRvd25jYXN0PEhUTUxJbWFnZUVsZW1lbnQ+KCpzaGFkb3dIb3N0KTsK
KyAgICAgICAgICAgIGF1dG8gYXR0YWNobWVudElEID0gSFRNTEF0dGFjaG1lbnRFbGVtZW50Ojpn
ZXRBdHRhY2htZW50SWRlbnRpZmllcihpbWFnZUVsZW1lbnQpOworICAgICAgICAgICAgcGFnZS0+
Y2hyb21lKCkuY2xpZW50KCkuaGFuZGxlSW1hZ2VTZXJ2aWNlQ2xpY2socm91bmRlZEludFBvaW50
KG1vdXNlRXZlbnQuYWJzb2x1dGVMb2NhdGlvbigpKSwgKmltYWdlLCBpbWFnZUVsZW1lbnQuaXND
b250ZW50RWRpdGFibGUoKSwgaW1hZ2VFbGVtZW50LnJlbmRlckJveCgpLT5hYnNvbHV0ZUNvbnRl
bnRRdWFkKCkuZW5jbG9zaW5nQm91bmRpbmdCb3goKSwgYXR0YWNobWVudElEKTsKICAgICAgICAg
ICAgIGV2ZW50LnNldERlZmF1bHRIYW5kbGVkKCk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAKaW5kZXgg
ZDEwOGZiMThiNzlmMDkxMmNlNjE3MTU0MTdiNzhhYzMzOGJiOGFhOC4uNzdjOThmNWUwNDU5NzZm
OTk3YzU4OWJhMWFjNDNjNWZkZjFhYjI4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFn
ZUVsZW1lbnQuY3BwCkBAIC03NDMsNiArNzQzLDcgQEAgdm9pZCBIVE1MSW1hZ2VFbGVtZW50Ojpz
ZXRBdHRhY2htZW50RWxlbWVudChSZWY8SFRNTEF0dGFjaG1lbnRFbGVtZW50PiYmIGF0dGFjaG0K
IAogICAgIGF0dGFjaG1lbnQtPnNldElubGluZVN0eWxlUHJvcGVydHkoQ1NTUHJvcGVydHlEaXNw
bGF5LCBDU1NWYWx1ZU5vbmUsIHRydWUpOwogICAgIGVuc3VyZVVzZXJBZ2VudFNoYWRvd1Jvb3Qo
KS5hcHBlbmRDaGlsZChXVEZNb3ZlKGF0dGFjaG1lbnQpKTsKKyAgICBzZXRBdHRyaWJ1dGVXaXRo
b3V0U3luY2hyb25pemF0aW9uKHdlYmtpdGltYWdlbWVudUF0dHIsIGVtcHR5U3RyaW5nKCkpOwog
fQogCiBSZWZQdHI8SFRNTEF0dGFjaG1lbnRFbGVtZW50PiBIVE1MSW1hZ2VFbGVtZW50OjphdHRh
Y2htZW50RWxlbWVudCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0No
cm9tZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCA2
Yzc4MDU2NTI3MmQzOGMxNTg2ODJkMjBmNzhhYjEyYTE0NmNmNGFlLi45OGFhYTkzZWQwZjM1NTU2
OThiMmQyY2Y3MGIzMTcwYTRhMTZiZGE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0Nocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgK
QEAgLTUzMiw3ICs1MzIsNyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMp
CiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZVNlbGVjdGlvblNlcnZpY2VDbGljayhGcmFtZVNlbGVj
dGlvbiYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgSW50UG9pbnQmKSB7IH0KICAgICB2
aXJ0dWFsIGJvb2wgaGFzUmVsZXZhbnRTZWxlY3Rpb25TZXJ2aWNlcyhib29sIC8qaXNUZXh0T25s
eSovKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVJbWFn
ZVNlcnZpY2VDbGljayhjb25zdCBJbnRQb2ludCYsIEltYWdlJiwgYm9vbCAvKmlzRWRpdGFibGUq
LywgY29uc3QgSW50UmVjdCYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVJbWFnZVNlcnZp
Y2VDbGljayhjb25zdCBJbnRQb2ludCYsIEltYWdlJiwgYm9vbCAvKmlzRWRpdGFibGUqLywgY29u
c3QgSW50UmVjdCYsIGNvbnN0IFN0cmluZyYgLyphdHRhY2htZW50SUQqLykgeyB9CiAjZW5kaWYK
IAogICAgIHZpcnR1YWwgYm9vbCBzaG91bGREaXNwYXRjaEZha2VNb3VzZU1vdmVFdmVudHMoKSBj
b25zdCB7IHJldHVybiB0cnVlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9D
b250ZXh0TWVudUNvbnRleHREYXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvbnRleHRN
ZW51Q29udGV4dERhdGEuY3BwCmluZGV4IDcwODI3ZDI2YjlhNjJlZDBjOTQzODIzOGNhNTQyZmY2
YzE5MzZlZDkuLmFhZTkxYTdkNDNjN2MwNGFmN2M3MDBkMmE0OTg5NDgwYWZlN2E5ZGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvbnRleHRNZW51Q29udGV4dERhdGEuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvbnRleHRNZW51Q29udGV4dERhdGEuY3BwCkBAIC02
NywxMSArNjcsMTIgQEAgQ29udGV4dE1lbnVDb250ZXh0RGF0YTo6Q29udGV4dE1lbnVDb250ZXh0
RGF0YShjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgbWVudUxvY2EKIH0KIAogI2lmIEVOQUJMRShT
RVJWSUNFX0NPTlRST0xTKQotQ29udGV4dE1lbnVDb250ZXh0RGF0YTo6Q29udGV4dE1lbnVDb250
ZXh0RGF0YShjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgbWVudUxvY2F0aW9uLCBXZWJDb3JlOjpJ
bWFnZSYgaW1hZ2UsIGJvb2wgaXNFZGl0YWJsZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgaW1h
Z2VSZWN0KQorQ29udGV4dE1lbnVDb250ZXh0RGF0YTo6Q29udGV4dE1lbnVDb250ZXh0RGF0YShj
b25zdCBXZWJDb3JlOjpJbnRQb2ludCYgbWVudUxvY2F0aW9uLCBXZWJDb3JlOjpJbWFnZSYgaW1h
Z2UsIGJvb2wgaXNFZGl0YWJsZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgaW1hZ2VSZWN0LCBj
b25zdCBTdHJpbmcmIGF0dGFjaG1lbnRJRCkKICAgICA6IG1fdHlwZShUeXBlOjpTZXJ2aWNlc01l
bnUpCiAgICAgLCBtX21lbnVMb2NhdGlvbihtZW51TG9jYXRpb24pCiAgICAgLCBtX3NlbGVjdGlv
bklzRWRpdGFibGUoaXNFZGl0YWJsZSkKICAgICAsIG1fY29udHJvbGxlZEltYWdlQm91bmRzKGlt
YWdlUmVjdCkKKyAgICAsIG1fY29udHJvbGxlZEltYWdlQXR0YWNobWVudElEKGF0dGFjaG1lbnRJ
RCkKIHsKICAgICBzZXRJbWFnZSgmaW1hZ2UpOwogfQpAQCAtMTA0LDYgKzEwNSw3IEBAIHZvaWQg
Q29udGV4dE1lbnVDb250ZXh0RGF0YTo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29u
c3QKICAgICBlbmNvZGVyIDw8IG1fc2VsZWN0ZWRUZWxlcGhvbmVOdW1iZXJzOwogICAgIGVuY29k
ZXIgPDwgbV9zZWxlY3Rpb25Jc0VkaXRhYmxlOwogICAgIGVuY29kZXIgPDwgbV9jb250cm9sbGVk
SW1hZ2VCb3VuZHM7CisgICAgZW5jb2RlciA8PCBtX2NvbnRyb2xsZWRJbWFnZUF0dGFjaG1lbnRJ
RDsKICNlbmRpZgogfQogCkBAIC0xNDAsNiArMTQyLDggQEAgYm9vbCBDb250ZXh0TWVudUNvbnRl
eHREYXRhOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBDb250ZXh0TWVudUNvbnRleHRE
YXQKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0
Lm1fY29udHJvbGxlZEltYWdlQm91bmRzKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm1fY29udHJvbGxlZEltYWdlQXR0YWNobWVudElEKSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCiAKICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvbnRleHRNZW51Q29udGV4dERhdGEuaCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0NvbnRleHRNZW51Q29udGV4dERhdGEuaAppbmRleCAyOGYxN2Ez
YzEzYThjYWVlZWUxM2Y0YzYwYzliNzkwYzFkNzRiMTMxLi40Y2MzNWM1ZjllZGRlZWJiNDUxODA2
MDY4ODJhZjVjOGMxZGU3NGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db250
ZXh0TWVudUNvbnRleHREYXRhLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29udGV4dE1l
bnVDb250ZXh0RGF0YS5oCkBAIC02NCw3ICs2NCw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQog
ICAgIAotICAgIENvbnRleHRNZW51Q29udGV4dERhdGEoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQm
IG1lbnVMb2NhdGlvbiwgV2ViQ29yZTo6SW1hZ2UmLCBib29sIGlzRWRpdGFibGUsIGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmIGltYWdlUmVjdCk7CisgICAgQ29udGV4dE1lbnVDb250ZXh0RGF0YShj
b25zdCBXZWJDb3JlOjpJbnRQb2ludCYgbWVudUxvY2F0aW9uLCBXZWJDb3JlOjpJbWFnZSYsIGJv
b2wgaXNFZGl0YWJsZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgaW1hZ2VSZWN0LCBjb25zdCBT
dHJpbmcmIGF0dGFjaG1lbnRJRCk7CiAKICAgICBTaGFyZWFibGVCaXRtYXAqIGNvbnRyb2xsZWRJ
bWFnZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29udHJvbGxlZEltYWdlLmdldCgpOyB9CiAgICAgY29u
c3QgVmVjdG9yPHVpbnQ4X3Q+JiBjb250cm9sbGVkU2VsZWN0aW9uRGF0YSgpIGNvbnN0IHsgcmV0
dXJuIG1fY29udHJvbGxlZFNlbGVjdGlvbkRhdGE7IH0KQEAgLTczLDYgKzczLDcgQEAgcHVibGlj
OgogICAgIGJvb2wgaXNTZXJ2aWNlc01lbnUoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gQ29u
dGV4dE1lbnVDb250ZXh0RGF0YTo6VHlwZTo6U2VydmljZXNNZW51OyB9CiAgICAgYm9vbCBjb250
cm9sbGVkRGF0YUlzRWRpdGFibGUoKSBjb25zdDsKICAgICBXZWJDb3JlOjpJbnRSZWN0IGNvbnRy
b2xsZWRJbWFnZUJvdW5kcygpIGNvbnN0IHsgcmV0dXJuIG1fY29udHJvbGxlZEltYWdlQm91bmRz
OyB9OworICAgIFN0cmluZyBjb250cm9sbGVkSW1hZ2VBdHRhY2htZW50SUQoKSBjb25zdCB7IHJl
dHVybiBtX2NvbnRyb2xsZWRJbWFnZUF0dGFjaG1lbnRJRDsgfTsKICNlbmRpZgogCiAgICAgdm9p
ZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7CkBAIC05NSw2ICs5Niw3IEBAIHByaXZhdGU6
CiAgICAgVmVjdG9yPFN0cmluZz4gbV9zZWxlY3RlZFRlbGVwaG9uZU51bWJlcnM7CiAgICAgYm9v
bCBtX3NlbGVjdGlvbklzRWRpdGFibGU7CiAgICAgV2ViQ29yZTo6SW50UmVjdCBtX2NvbnRyb2xs
ZWRJbWFnZUJvdW5kczsKKyAgICBTdHJpbmcgbV9jb250cm9sbGVkSW1hZ2VBdHRhY2htZW50SUQ7
CiAjZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tBdHRhY2htZW50Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L19XS0F0dGFjaG1lbnQubW0KaW5kZXggMDI2MzIxM2U5MGM5OGQ3YWZjMmRkOGYxNGQwOWVhOGZl
MTY0OTZmMi4uNWU5ZjE2MTVlZTk1YTc0MjBjNzA4MDc4ZDcxN2Q0M2YxYTY2YjFiMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F0dGFjaG1lbnQubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F0dGFjaG1lbnQubW0K
QEAgLTE1MCw2ICsxNTAsMTIgQEAgLSAodm9pZClzZXRGaWxlV3JhcHBlcjooTlNGaWxlV3JhcHBl
ciAqKWZpbGVXcmFwcGVyIGNvbnRlbnRUeXBlOihOU1N0cmluZyAqKWNvbnQKICAgICB9KTsKIH0K
IAorLSAodm9pZClzZXREYXRhOihOU0RhdGEgKilkYXRhIG5ld0NvbnRlbnRUeXBlOihOU1N0cmlu
ZyAqKW5ld0NvbnRlbnRUeXBlCit7CisgICAgYXV0byBmaWxlV3JhcHBlciA9IGFkb3B0TlMoW1tO
U0ZpbGVXcmFwcGVyIGFsbG9jXSBpbml0UmVndWxhckZpbGVXaXRoQ29udGVudHM6ZGF0YV0pOwor
ICAgIFtzZWxmIHNldEZpbGVXcmFwcGVyOmZpbGVXcmFwcGVyLmdldCgpIGNvbnRlbnRUeXBlOm5l
d0NvbnRlbnRUeXBlIGNvbXBsZXRpb246bmlsXTsKK30KKwogLSAodm9pZClzZXREYXRhOihOU0Rh
dGEgKilkYXRhIG5ld0NvbnRlbnRUeXBlOihOU1N0cmluZyAqKW5ld0NvbnRlbnRUeXBlIG5ld0Zp
bGVuYW1lOihOU1N0cmluZyAqKW5ld0ZpbGVuYW1lIGNvbXBsZXRpb246KHZvaWQoXikoTlNFcnJv
ciAqKSljb21wbGV0aW9uSGFuZGxlcgogewogICAgIGF1dG8gZmlsZVdyYXBwZXIgPSBhZG9wdE5T
KFtbTlNGaWxlV3JhcHBlciBhbGxvY10gaW5pdFJlZ3VsYXJGaWxlV2l0aENvbnRlbnRzOmRhdGFd
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdHRh
Y2htZW50SW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tB
dHRhY2htZW50SW50ZXJuYWwuaAppbmRleCAyMTEwYjQzMDhmOTg2OGVlMDBkNjVkNWVjYTYzYjYw
NzY4YzA2ZjNiLi43MzhkNDY3NTNiMjc1ZTM1YzY0OWU0ZDk3Nzk1NWExMGVlNjA0NmFiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXR0YWNobWVudElu
dGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F0dGFj
aG1lbnRJbnRlcm5hbC5oCkBAIC0zOCw0ICszOCw2IEBAIHRlbXBsYXRlPD4gc3RydWN0IFdyYXBw
ZXJUcmFpdHM8QVBJOjpBdHRhY2htZW50PiB7CiBAcGFja2FnZQogICAgIEFQSTo6T2JqZWN0U3Rv
cmFnZTxBUEk6OkF0dGFjaG1lbnQ+IF9hdHRhY2htZW50OwogfQorCistICh2b2lkKXNldERhdGE6
KE5TRGF0YSAqKWRhdGEgbmV3Q29udGVudFR5cGU6KE5TU3RyaW5nICopbmV3Q29udGVudFR5cGU7
CiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tTaGFyaW5n
U2VydmljZVBpY2tlckRlbGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tT
aGFyaW5nU2VydmljZVBpY2tlckRlbGVnYXRlLmgKaW5kZXggYjQzNDNjODRhZjk2MTcxOTNhNDJi
YzUzYTQ0YjVkOWUwNjhlMWEzMy4uNmQ0ODkwYzU0NDhmYjFlY2Y0NDFiZjkxMjZiNzIwMjBjMGU2
ZmFiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLU2hhcmluZ1Nl
cnZpY2VQaWNrZXJEZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9X
S1NoYXJpbmdTZXJ2aWNlUGlja2VyRGVsZWdhdGUuaApAQCAtMzksNiArMzksNyBAQCBjbGFzcyBX
ZWJDb250ZXh0TWVudVByb3h5TWFjOwogICAgIEJPT0wgX2ZpbHRlckVkaXRpbmdTZXJ2aWNlczsK
ICAgICBCT09MIF9oYW5kbGVFZGl0aW5nUmVwbGFjZW1lbnQ7CiAgICAgTlNSZWN0IF9zb3VyY2VG
cmFtZTsKKyAgICBTdHJpbmcgX2F0dGFjaG1lbnRJRDsKIH0KIAogKyAoV0tTaGFyaW5nU2Vydmlj
ZVBpY2tlckRlbGVnYXRlICopc2hhcmVkU2hhcmluZ1NlcnZpY2VQaWNrZXJEZWxlZ2F0ZTsKQEAg
LTQ4LDYgKzQ5LDcgQEAgY2xhc3MgV2ViQ29udGV4dE1lbnVQcm94eU1hYzsKIC0gKHZvaWQpc2V0
RmlsdGVyc0VkaXRpbmdTZXJ2aWNlczooQk9PTClmaWx0ZXJzRWRpdGluZ1NlcnZpY2VzOwogLSAo
dm9pZClzZXRIYW5kbGVzRWRpdGluZ1JlcGxhY2VtZW50OihCT09MKWhhbmRsZXNFZGl0aW5nUmVw
bGFjZW1lbnQ7CiAtICh2b2lkKXNldFNvdXJjZUZyYW1lOihOU1JlY3Qpc291cmNlRnJhbWU7Cist
ICh2b2lkKXNldEF0dGFjaG1lbnRJRDooU3RyaW5nKWF0dGFjaG1lbnRJRDsKIAogQGVuZAogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tTaGFyaW5nU2VydmljZVBp
Y2tlckRlbGVnYXRlLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLU2hhcmluZ1Nl
cnZpY2VQaWNrZXJEZWxlZ2F0ZS5tbQppbmRleCBkOGNjZTZkMWU1Y2Q0MjljMDgwODUxOTAwMmFk
ZmYwMmE1YzhmNzQ4Li5mYmU5OGEwODM5YWRhMWM0MWQ1ZjMyMjFkNDQ5YWRmZmY0ZjIyMDE0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tTaGFyaW5nU2VydmljZVBp
Y2tlckRlbGVnYXRlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1NoYXJp
bmdTZXJ2aWNlUGlja2VyRGVsZWdhdGUubW0KQEAgLTI4LDkgKzI4LDEyIEBACiAKICNpZiBFTkFC
TEUoU0VSVklDRV9DT05UUk9MUykKIAorI2ltcG9ydCAiQVBJQXR0YWNobWVudC5oIgogI2ltcG9y
dCAiRGF0YVJlZmVyZW5jZS5oIgorI2ltcG9ydCAiV0tPYmplY3QuaCIKICNpbXBvcnQgIldlYkNv
bnRleHRNZW51UHJveHlNYWMuaCIKICNpbXBvcnQgIldlYlBhZ2VQcm94eS5oIgorI2ltcG9ydCAi
X1dLQXR0YWNobWVudEludGVybmFsLmgiCiAjaW1wb3J0IDxXZWJDb3JlL0xlZ2FjeU5TUGFzdGVi
b2FyZFR5cGVzLmg+CiAjaW1wb3J0IDxwYWwvc3BpL21hYy9OU1NoYXJpbmdTZXJ2aWNlUGlja2Vy
U1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL21hYy9OU1NoYXJpbmdTZXJ2aWNlU1BJLmg+CkBAIC03
NSw2ICs3OCwxMSBAQCAtICh2b2lkKXNldFNvdXJjZUZyYW1lOihOU1JlY3Qpc291cmNlRnJhbWUK
ICAgICBfc291cmNlRnJhbWUgPSBzb3VyY2VGcmFtZTsKIH0KIAorLSAodm9pZClzZXRBdHRhY2ht
ZW50SUQ6KFN0cmluZylhdHRhY2htZW50SUQKK3sKKyAgICBfYXR0YWNobWVudElEID0gYXR0YWNo
bWVudElEOworfQorCiAtIChOU0FycmF5ICopc2hhcmluZ1NlcnZpY2VQaWNrZXI6KE5TU2hhcmlu
Z1NlcnZpY2VQaWNrZXIgKilzaGFyaW5nU2VydmljZVBpY2tlciBzaGFyaW5nU2VydmljZXNGb3JJ
dGVtczooTlNBcnJheSAqKWl0ZW1zIG1hc2s6KE5TU2hhcmluZ1NlcnZpY2VNYXNrKW1hc2sgcHJv
cG9zZWRTaGFyaW5nU2VydmljZXM6KE5TQXJyYXkgKilwcm9wb3NlZFNlcnZpY2VzCiB7CiAgICAg
aWYgKCFfZmlsdGVyRWRpdGluZ1NlcnZpY2VzKQpAQCAtMTA4LDcgKzExNiw3IEBAIC0gKHZvaWQp
c2hhcmluZ1NlcnZpY2U6KE5TU2hhcmluZ1NlcnZpY2UgKilzaGFyaW5nU2VydmljZSB3aWxsU2hh
cmVJdGVtczooTlNBcnJhCiAtICh2b2lkKXNoYXJpbmdTZXJ2aWNlOihOU1NoYXJpbmdTZXJ2aWNl
ICopc2hhcmluZ1NlcnZpY2UgZGlkU2hhcmVJdGVtczooTlNBcnJheSAqKWl0ZW1zCiB7CiAgICAg
Ly8gV2Ugb25seSBjYXJlIGFib3V0IHdoYXQgaXRlbSB3YXMgc2hhcmVkIGlmIHdlIHdlcmUgaW50
ZXJlc3RlZCBpbiBlZGl0b3Igc2VydmljZXMKLSAgICAvLyAoaS5lLiwgaWYgd2UgcGxhbiBvbiBy
ZXBsYWNpbmcgdGhlIHNlbGVjdGlvbiB3aXRoIHRoZSByZXR1cm5lZCBpdGVtKQorICAgIC8vIChp
LmUuLCBpZiB3ZSBwbGFuIG9uIHJlcGxhY2luZyB0aGUgc2VsZWN0aW9uIG9yIGNvbnRyb2xsZWQg
aW1hZ2Ugd2l0aCB0aGUgcmV0dXJuZWQgaXRlbSkKICAgICBpZiAoIV9oYW5kbGVFZGl0aW5nUmVw
bGFjZW1lbnQpCiAgICAgICAgIHJldHVybjsKIApAQCAtMTM2LDYgKzE0NCwyMCBAQCAtICh2b2lk
KXNoYXJpbmdTZXJ2aWNlOihOU1NoYXJpbmdTZXJ2aWNlICopc2hhcmluZ1NlcnZpY2UgZGlkU2hh
cmVJdGVtczooTlNBcnJheQogCiAgICAgICAgIGRhdGFSZWZlcmVuY2UgPSBJUEM6OkRhdGFSZWZl
cmVuY2Uoc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+KFtkYXRhIGJ5dGVzXSksIFtkYXRhIGxl
bmd0aF0pOwogICAgICAgICB0eXBlcy5hcHBlbmQoTlNQYXN0ZWJvYXJkVHlwZVRJRkYpOworICAg
IH0gZWxzZSBpZiAoW2l0ZW0gaXNLaW5kT2ZDbGFzczpbTlNJdGVtUHJvdmlkZXIgY2xhc3NdXSkg
eworICAgICAgICBOU0l0ZW1Qcm92aWRlciAqaXRlbVByb3ZpZGVyID0gKE5TSXRlbVByb3ZpZGVy
ICopaXRlbTsKKyAgICAgICAgCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0JFR0lOCisgICAgICAgIFtpdGVtUHJvdmlkZXIgbG9hZERhdGFSZXByZXNlbnRhdGlvbkZvclR5
cGVJZGVudGlmaWVyOihOU1N0cmluZyAqKWtVVFR5cGVEYXRhIGNvbXBsZXRpb25IYW5kbGVyOl4o
TlNEYXRhICpkYXRhLCBOU0Vycm9yICplcnJvcikgeworICAgICAgICAgICAgaWYgKGVycm9yKQor
ICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgYXV0byBh
cGlBdHRhY2htZW50ID0gX21lbnVQcm94eS0+cGFnZSgpLT5hdHRhY2htZW50Rm9ySWRlbnRpZmll
cihfYXR0YWNobWVudElEKTsKKyAgICAgICAgICAgIGF1dG8gYXR0YWNobWVudCA9IHdyYXBwZXIo
YXBpQXR0YWNobWVudCk7CisgICAgICAgICAgICBbYXR0YWNobWVudCBzZXREYXRhOmRhdGEgbmV3
Q29udGVudFR5cGU6U3RyaW5nKE5TUGFzdGVib2FyZFR5cGVUSUZGKV07CisgICAgICAgIH1dOwor
ICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKKyAgICAgICAgcmV0dXJu
OwogICAgIH0gZWxzZSB7CiAgICAgICAgIExPR19FUlJPUigic2hhcmluZ1NlcnZpY2U6ZGlkU2hh
cmVJdGVtczogLSBVbmtub3duIGl0ZW0gdHlwZSByZXR1cm5lZFxuIik7CiAgICAgICAgIHJldHVy
bjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVu
dVByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51
UHJveHlNYWMubW0KaW5kZXggN2Q2MWEyYzk4ZTY2MTJjMWVlNDAwOTBlMTI3YzAxMjgzYjEzZjg3
Ni4uZDU5ZmNiMTJmMmQyYTBhZGMyMjdiMGZkYzI1NmY1Y2FmZWE5Mzg0YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW0K
QEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIFBMQVRGT1JNKE1BQykKIAorI2ltcG9ydCAiQVBJQXR0
YWNobWVudC5oIgogI2ltcG9ydCAiQVBJQ29udGV4dE1lbnVDbGllbnQuaCIKICNpbXBvcnQgIk1l
bnVVdGlsaXRpZXMuaCIKICNpbXBvcnQgIlBhZ2VDbGllbnRJbXBsTWFjLmgiCkBAIC0yNDMsNiAr
MjQ0LDcgQEAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgaW1hZ2VSZWN0
ID0gW21fd2ViVmlldyBjb252ZXJ0UmVjdDppbWFnZVJlY3QgdG9WaWV3Om5pbF07CiAgICAgaW1h
Z2VSZWN0ID0gW1ttX3dlYlZpZXcgd2luZG93XSBjb252ZXJ0UmVjdFRvU2NyZWVuOmltYWdlUmVj
dF07CiAgICAgW1tXS1NoYXJpbmdTZXJ2aWNlUGlja2VyRGVsZWdhdGUgc2hhcmVkU2hhcmluZ1Nl
cnZpY2VQaWNrZXJEZWxlZ2F0ZV0gc2V0U291cmNlRnJhbWU6aW1hZ2VSZWN0XTsKKyAgICBbW1dL
U2hhcmluZ1NlcnZpY2VQaWNrZXJEZWxlZ2F0ZSBzaGFyZWRTaGFyaW5nU2VydmljZVBpY2tlckRl
bGVnYXRlXSBzZXRBdHRhY2htZW50SUQ6bV9jb250ZXh0LmNvbnRyb2xsZWRJbWFnZUF0dGFjaG1l
bnRJRCgpXTsKIAogICAgIG1fbWVudSA9IGFkb3B0TlMoW1twaWNrZXIgbWVudV0gY29weV0pOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDdkYTM3MmYyZjY2OGY3MTE4NjcwZWFlNzJhYWUw
MjA5ZWRkOTY3ZmQuLjNlMmQ0NzVmOGMyMGY4OGVlZDVmMWU5YzE0ZjhlZTJmZWU1YmYwODIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC0xMzQ3LDkgKzEzNDcsOSBAQCBib29sIFdlYkNocm9t
ZUNsaWVudDo6aGFzUmVsZXZhbnRTZWxlY3Rpb25TZXJ2aWNlcyhib29sIGlzVGV4dE9ubHkpIGNv
bnN0CiAgICAgcmV0dXJuIChpc1RleHRPbmx5ICYmIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmhh
c1NlbGVjdGlvblNlcnZpY2VzKCkpIHx8IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmhhc1JpY2hD
b250ZW50U2VydmljZXMoKTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmhhbmRsZUltYWdl
U2VydmljZUNsaWNrKGNvbnN0IEludFBvaW50JiBwb2ludCwgSW1hZ2UmIGltYWdlLCBib29sIGlz
RWRpdGFibGUsIGNvbnN0IEludFJlY3QmIGltYWdlUmVjdCkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50
OjpoYW5kbGVJbWFnZVNlcnZpY2VDbGljayhjb25zdCBJbnRQb2ludCYgcG9pbnQsIEltYWdlJiBp
bWFnZSwgYm9vbCBpc0VkaXRhYmxlLCBjb25zdCBJbnRSZWN0JiBpbWFnZVJlY3QsIGNvbnN0IFN0
cmluZyYgYXR0YWNobWVudElEKQogewotICAgIG1fcGFnZS5oYW5kbGVJbWFnZVNlcnZpY2VDbGlj
ayhwb2ludCwgaW1hZ2UsIGlzRWRpdGFibGUsIGltYWdlUmVjdCk7CisgICAgbV9wYWdlLmhhbmRs
ZUltYWdlU2VydmljZUNsaWNrKHBvaW50LCBpbWFnZSwgaXNFZGl0YWJsZSwgaW1hZ2VSZWN0LCBh
dHRhY2htZW50SUQpOwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCBmZjE1Y2Ez
OTc0YjA0MzZiYTI5MjM3YjQ1YzE2ODU0MmU2ZWU3OGM3Li44YjhmYjQxM2QwZjU5NTNiNWExOWYw
NjhiNDNjZmZlMDAzZGVhZDBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0zODEsNyArMzgxLDcg
QEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKICAgICB2b2lkIGhhbmRs
ZVNlbGVjdGlvblNlcnZpY2VDbGljayhXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbiYsIGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiB0ZWxlcGhvbmVOdW1iZXJzLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYp
IGZpbmFsOwogICAgIGJvb2wgaGFzUmVsZXZhbnRTZWxlY3Rpb25TZXJ2aWNlcyhib29sIGlzVGV4
dE9ubHkpIGNvbnN0IGZpbmFsOwotICAgIHZvaWQgaGFuZGxlSW1hZ2VTZXJ2aWNlQ2xpY2soY29u
c3QgV2ViQ29yZTo6SW50UG9pbnQmLCBXZWJDb3JlOjpJbWFnZSYsIGJvb2wgaXNFZGl0YWJsZSwg
Y29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIGZpbmFsOworICAgIHZvaWQgaGFuZGxlSW1hZ2VTZXJ2
aWNlQ2xpY2soY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBXZWJDb3JlOjpJbWFnZSYsIGJvb2wg
aXNFZGl0YWJsZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFN0cmluZyYgLyphdHRh
Y2htZW50SUQqLykgZmluYWw7CiAjZW5kaWYKIAogICAgIGJvb2wgc2hvdWxkRGlzcGF0Y2hGYWtl
TW91c2VNb3ZlRXZlbnRzKCkgY29uc3QgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggZDhiODFhOWNlOTNkYTA3NmIzOTc5ZTE3YTM3NmIyMjZl
NjQ5NzRkNi4uOGI3NmI5MDBiNzhhMGY2YThhNzRkYjRiNDhlMTY5MjFjNTllNjJmZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMTIwNCw3ICsxMjA0
LDcgQEAgcHVibGljOgogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKSB8fCBFTkFCTEUoVEVM
RVBIT05FX05VTUJFUl9ERVRFQ1RJT04pCiAgICAgdm9pZCBoYW5kbGVUZWxlcGhvbmVOdW1iZXJD
bGljayhjb25zdCBTdHJpbmcmIG51bWJlciwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKTsKICAg
ICB2b2lkIGhhbmRsZVNlbGVjdGlvblNlcnZpY2VDbGljayhXZWJDb3JlOjpGcmFtZVNlbGVjdGlv
biYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB0ZWxlcGhvbmVOdW1iZXJzLCBjb25zdCBXZWJDb3Jl
OjpJbnRQb2ludCYpOwotICAgIHZvaWQgaGFuZGxlSW1hZ2VTZXJ2aWNlQ2xpY2soY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmLCBXZWJDb3JlOjpJbWFnZSYsIGJvb2wgaXNFZGl0YWJsZSwgY29uc3Qg
V2ViQ29yZTo6SW50UmVjdCYpOworICAgIHZvaWQgaGFuZGxlSW1hZ2VTZXJ2aWNlQ2xpY2soY29u
c3QgV2ViQ29yZTo6SW50UG9pbnQmLCBXZWJDb3JlOjpJbWFnZSYsIGJvb2wgaXNFZGl0YWJsZSwg
Y29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFN0cmluZyYgYXR0YWNobWVudElEKTsKICNl
bmRpZgogCiAgICAgdm9pZCBkaWRDaGFuZ2VTY3JvbGxPZmZzZXRGb3JGcmFtZShXZWJDb3JlOjpG
cmFtZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFj
L1dlYlBhZ2VNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2Vi
UGFnZU1hYy5tbQppbmRleCAxZGVjOWUxYjEzYjY4NzZjZDNhNjRhMWVhMjc5NjU2OTVlNDAzZmI3
Li5lNDY3ZWZmZmQ3OTQ3Yjc4YTRiODA3MGQ0ODg4YjA2YWY4ZWI3ZGM1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQpAQCAtODI4
LDkgKzgyOCw5IEBAIHZvaWQgV2ViUGFnZTo6aGFuZGxlU2VsZWN0aW9uU2VydmljZUNsaWNrKEZy
YW1lU2VsZWN0aW9uJiBzZWxlY3Rpb24sIGNvbnN0IFZlY3RvCiAgICAgc2VuZChNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpTaG93Q29udGV4dE1lbnUoQ29udGV4dE1lbnVDb250ZXh0RGF0YShwb2lu
dCwgc2VsZWN0aW9uRGF0YVZlY3RvciwgcGhvbmVOdW1iZXJzLCBzZWxlY3Rpb24uc2VsZWN0aW9u
KCkuaXNDb250ZW50RWRpdGFibGUoKSksIFVzZXJEYXRhKCkpKTsKIH0KIAotdm9pZCBXZWJQYWdl
OjpoYW5kbGVJbWFnZVNlcnZpY2VDbGljayhjb25zdCBJbnRQb2ludCYgcG9pbnQsIEltYWdlJiBp
bWFnZSwgYm9vbCBpc0VkaXRhYmxlLCBjb25zdCBJbnRSZWN0JiBpbWFnZVJlY3QpCit2b2lkIFdl
YlBhZ2U6OmhhbmRsZUltYWdlU2VydmljZUNsaWNrKGNvbnN0IEludFBvaW50JiBwb2ludCwgSW1h
Z2UmIGltYWdlLCBib29sIGlzRWRpdGFibGUsIGNvbnN0IEludFJlY3QmIGltYWdlUmVjdCwgY29u
c3QgU3RyaW5nJiBhdHRhY2htZW50SUQpCiB7Ci0gICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpTaG93Q29udGV4dE1lbnUoQ29udGV4dE1lbnVDb250ZXh0RGF0YShwb2ludCwgaW1hZ2Us
IGlzRWRpdGFibGUsIGltYWdlUmVjdCksIFVzZXJEYXRhKCkpKTsKKyAgICBzZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OlNob3dDb250ZXh0TWVudShDb250ZXh0TWVudUNvbnRleHREYXRhKHBv
aW50LCBpbWFnZSwgaXNFZGl0YWJsZSwgaW1hZ2VSZWN0LCBhdHRhY2htZW50SUQpLCBVc2VyRGF0
YSgpKSk7CiB9CiAKICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446835</attachid>
            <date>2021-12-10 15:57:26 -0800</date>
            <delta_ts>2021-12-10 16:48:07 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-234162-20211210155725.patch</filename>
            <type>text/plain</type>
            <size>20023</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2ODU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmI4MWQzYTAwZmJiYTZh
YzExNjQwZGE5NDZmNTkyOTM3ODMwZDFiMC4uNjQwMGNiMWE0NGVjMjE3NmY4MDhmNTdkYjY1MGRk
NDJjM2UxZWIzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTEyLTEwICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgSW1hZ2UgZG9l
cyBub3QgdXBkYXRlIGFmdGVyIE1hcmt1cCBQYW5lIGlzIGRpc21pc3NlZC4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDE2MgorCisgICAgICAgIFJl
dmlld2VkIGJ5IERldmluIFJvdXNzby4KKworICAgICAgICBPbmNlIHRoZSBpdGVtIGlzIHJldHVy
ZWQgZnJvbSB0aGUgU2hhcmluZyBTZXJ2aWNlLCB3ZSBuZWVkIHRvIHBpcGUgdGhlIGluZm9ybWF0
aW9uCisgICAgICAgIGJhY2sgdG8gdGhlIGF0dGFjaGVtZW50IGVsZW1lbnQgc28gdGhhdCBpdCBj
YW4gYmUgcHJvcGVybHkgdXBkYXRlZC4KKyAgICAgICAgVGhpcyBpbmNsdWRlcyBob2xkaW5nIG9u
dG8gdGhlIGF0dGFjaG1lbnQgSUQgb2YgdGhlIGNvbnRyb2xsZWQgaW1hZ2Ugc28gdGhhdCBpdCAK
KyAgICAgICAgY2FuIGxhdGVyIGJlIGZvdW5kIGFuZCB1cGRhdGVkLgorCisgICAgICAgICogZG9t
L21hYy9JbWFnZUNvbnRyb2xzTWFjLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQ29udHJv
bHNNYWM6OmhhbmRsZUV2ZW50KToKKyAgICAgICAgKiBodG1sL0hUTUxJbWFnZUVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTEltYWdlRWxlbWVudDo6c2V0QXR0YWNobWVudEVsZW1l
bnQpOgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpD
aHJvbWVDbGllbnQ6OmhhbmRsZUltYWdlU2VydmljZUNsaWNrKToKKwogMjAyMS0xMi0xMCAgQ29t
bWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCwgcmV2ZXJ0aW5nIHIyODY4MzYuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGJiYjQyZmFlMTYxYjRiOWMzMTU1OTEy
NjRjY2RlNGZiMzRjM2U2ZTMuLjBmOTk5YzQyODY3ZTc3Y2E1MzUyOGI2YzYxNjNjOGZiYTFkZDJk
NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIwMjEtMTItMTAgIE1lZ2FuIEdhcmRuZXIg
IDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAgICAgICBJbWFnZSBkb2VzIG5vdCB1cGRh
dGUgYWZ0ZXIgTWFya3VwIFBhbmUgaXMgZGlzbWlzc2VkLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0MTYyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
RGV2aW4gUm91c3NvLgorCisgICAgICAgIE9uY2UgdGhlIGl0ZW0gaXMgcmV0dXJlZCBmcm9tIHRo
ZSBTaGFyaW5nIFNlcnZpY2UsIHdlIG5lZWQgdG8gcGlwZSB0aGUgaW5mb3JtYXRpb24KKyAgICAg
ICAgYmFjayB0byB0aGUgYXR0YWNoZW1lbnQgZWxlbWVudCBzbyB0aGF0IGl0IGNhbiBiZSBwcm9w
ZXJseSB1cGRhdGVkLgorICAgICAgICBUaGlzIGluY2x1ZGVzIGhvbGRpbmcgb250byB0aGUgYXR0
YWNobWVudCBJRCBvZiB0aGUgY29udHJvbGxlZCBpbWFnZSBzbyB0aGF0IGl0IAorICAgICAgICBj
YW4gbGF0ZXIgYmUgZm91bmQgYW5kIHVwZGF0ZWQuCisKKyAgICAgICAgKiBTaGFyZWQvQ29udGV4
dE1lbnVDb250ZXh0RGF0YS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNvbnRleHRNZW51Q29udGV4
dERhdGE6OkNvbnRleHRNZW51Q29udGV4dERhdGEpOgorICAgICAgICAoV2ViS2l0OjpDb250ZXh0
TWVudUNvbnRleHREYXRhOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpDb250ZXh0
TWVudUNvbnRleHREYXRhOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9Db250ZXh0TWVudUNv
bnRleHREYXRhLmg6CisgICAgICAgIChXZWJLaXQ6OkNvbnRleHRNZW51Q29udGV4dERhdGE6OmNv
bnRyb2xsZWRJbWFnZUF0dGFjaG1lbnRJRCBjb25zdCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tOgorICAgICAgICAoLVtXS1dlYlZpZXdD
b25maWd1cmF0aW9uIGluaXRdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0F0
dGFjaG1lbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0F0dGFjaG1lbnQu
bW06CisgICAgICAgICgtW19XS0F0dGFjaG1lbnQgc2V0RGF0YTpuZXdDb250ZW50VHlwZTpdKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0F0dGFjaG1lbnRJbnRlcm5hbC5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tTaGFyaW5nU2VydmljZVBpY2tlckRlbGVnYXRlLmg6
CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XS1NoYXJpbmdTZXJ2aWNlUGlja2VyRGVsZWdhdGUu
bW06CisgICAgICAgICgtW1dLU2hhcmluZ1NlcnZpY2VQaWNrZXJEZWxlZ2F0ZSBzZXRBdHRhY2ht
ZW50SUQ6XSk6CisgICAgICAgICgtW1dLU2hhcmluZ1NlcnZpY2VQaWNrZXJEZWxlZ2F0ZSBzaGFy
aW5nU2VydmljZTpkaWRTaGFyZUl0ZW1zOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2Vi
Q29udGV4dE1lbnVQcm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVQ
cm94eU1hYzo6c2V0dXBTZXJ2aWNlc01lbnUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21l
Q2xpZW50OjpoYW5kbGVJbWFnZVNlcnZpY2VDbGljayk6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFn
ZU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6aGFuZGxlSW1hZ2VTZXJ2aWNlQ2xp
Y2spOgorCiAyMDIxLTEyLTEwICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4K
IAogICAgICAgICBGaXggc2FuZGJveCBidWlsZCBlcnJvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL21hYy9JbWFnZUNvbnRyb2xzTWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9t
YWMvSW1hZ2VDb250cm9sc01hYy5jcHAKaW5kZXggMjc0ZGU5OGYyNDgwZjNmMTBjOGEzODg1YTU0
ZjhkOGU5MWUwYzNhMC4uYmI4ODYxZDEwNzE0NGE1ODI5ZTc5N2M1NjJkMDk2ODhiZThiOWJhMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL21hYy9JbWFnZUNvbnRyb2xzTWFjLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vbWFjL0ltYWdlQ29udHJvbHNNYWMuY3BwCkBAIC0zMSw2
ICszMSw3IEBACiAjaW5jbHVkZSAiQ29udGV4dE1lbnVDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAi
RWxlbWVudElubGluZXMuaCIKICNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKKyNpbmNsdWRlICJI
VE1MQXR0YWNobWVudEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MQnV0dG9uRWxlbWVudC5oIgog
I2luY2x1ZGUgIkhUTUxEaXZFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEltYWdlRWxlbWVudC5o
IgpAQCAtMTI2LDExICsxMjcsMTMgQEAgYm9vbCBoYW5kbGVFdmVudChIVE1MRWxlbWVudCYgZWxl
bWVudCwgRXZlbnQmIGV2ZW50KQogICAgIGF1dG8mIG5vZGUgPSBkb3duY2FzdDxOb2RlPigqbW91
c2VFdmVudC50YXJnZXQoKSk7CiAKICAgICBpZiAoSW1hZ2VDb250cm9sc01hYzo6aXNJbWFnZUNv
bnRyb2xzQnV0dG9uRWxlbWVudChub2RlKSkgewotICAgICAgICBhdXRvIGltYWdlRWxlbWVudCA9
IG5vZGUuc2hhZG93SG9zdCgpOwotICAgICAgICBpZiAoIWltYWdlRWxlbWVudCkKKyAgICAgICAg
YXV0byBzaGFkb3dIb3N0ID0gbm9kZS5zaGFkb3dIb3N0KCk7CisgICAgICAgIGlmICghaXM8SFRN
TEltYWdlRWxlbWVudD4oKnNoYWRvd0hvc3QpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgICAgICBpZiAoYXV0byogaW1hZ2UgPSBpbWFnZUZyb21JbWFnZUVsZW1lbnROb2RlKCppbWFn
ZUVsZW1lbnQpKSB7Ci0gICAgICAgICAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5oYW5kbGVJ
bWFnZVNlcnZpY2VDbGljayhyb3VuZGVkSW50UG9pbnQobW91c2VFdmVudC5hYnNvbHV0ZUxvY2F0
aW9uKCkpLCAqaW1hZ2UsIGltYWdlRWxlbWVudC0+aXNDb250ZW50RWRpdGFibGUoKSwgaW1hZ2VF
bGVtZW50LT5yZW5kZXJCb3goKS0+YWJzb2x1dGVDb250ZW50UXVhZCgpLmVuY2xvc2luZ0JvdW5k
aW5nQm94KCkpOworICAgICAgICBpZiAoYXV0byogaW1hZ2UgPSBpbWFnZUZyb21JbWFnZUVsZW1l
bnROb2RlKCpzaGFkb3dIb3N0KSkgeworICAgICAgICAgICAgSFRNTEltYWdlRWxlbWVudCYgaW1h
Z2VFbGVtZW50ID0gZG93bmNhc3Q8SFRNTEltYWdlRWxlbWVudD4oKnNoYWRvd0hvc3QpOworICAg
ICAgICAgICAgYXV0byBhdHRhY2htZW50SUQgPSBIVE1MQXR0YWNobWVudEVsZW1lbnQ6OmdldEF0
dGFjaG1lbnRJZGVudGlmaWVyKGltYWdlRWxlbWVudCk7CisgICAgICAgICAgICBwYWdlLT5jaHJv
bWUoKS5jbGllbnQoKS5oYW5kbGVJbWFnZVNlcnZpY2VDbGljayhyb3VuZGVkSW50UG9pbnQobW91
c2VFdmVudC5hYnNvbHV0ZUxvY2F0aW9uKCkpLCAqaW1hZ2UsIGltYWdlRWxlbWVudC5pc0NvbnRl
bnRFZGl0YWJsZSgpLCBpbWFnZUVsZW1lbnQucmVuZGVyQm94KCktPmFic29sdXRlQ29udGVudFF1
YWQoKS5lbmNsb3NpbmdCb3VuZGluZ0JveCgpLCBhdHRhY2htZW50SUQpOwogICAgICAgICAgICAg
ZXZlbnQuc2V0RGVmYXVsdEhhbmRsZWQoKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAg
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcAppbmRleCBkMTA4
ZmIxOGI3OWYwOTEyY2U2MTcxNTQxN2I3OGFjMzM4YmI4YWE4Li43N2M5OGY1ZTA0NTk3NmY5OTdj
NTg5YmExYWM0M2M1ZmRmMWFiMjgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxJbWFnZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxl
bWVudC5jcHAKQEAgLTc0Myw2ICs3NDMsNyBAQCB2b2lkIEhUTUxJbWFnZUVsZW1lbnQ6OnNldEF0
dGFjaG1lbnRFbGVtZW50KFJlZjxIVE1MQXR0YWNobWVudEVsZW1lbnQ+JiYgYXR0YWNobQogCiAg
ICAgYXR0YWNobWVudC0+c2V0SW5saW5lU3R5bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eURpc3BsYXks
IENTU1ZhbHVlTm9uZSwgdHJ1ZSk7CiAgICAgZW5zdXJlVXNlckFnZW50U2hhZG93Um9vdCgpLmFw
cGVuZENoaWxkKFdURk1vdmUoYXR0YWNobWVudCkpOworICAgIHNldEF0dHJpYnV0ZVdpdGhvdXRT
eW5jaHJvbml6YXRpb24od2Via2l0aW1hZ2VtZW51QXR0ciwgZW1wdHlTdHJpbmcoKSk7CiB9CiAK
IFJlZlB0cjxIVE1MQXR0YWNobWVudEVsZW1lbnQ+IEhUTUxJbWFnZUVsZW1lbnQ6OmF0dGFjaG1l
bnRFbGVtZW50KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21l
Q2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IDZjNzgw
NTY1MjcyZDM4YzE1ODY4MmQyMGY3OGFiMTJhMTQ2Y2Y0YWUuLjk4YWFhOTNlZDBmMzU1NTY5OGIy
ZDJjZjcwYjMxNzBhNGExNmJkYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hy
b21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAt
NTMyLDcgKzUzMiw3IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKICAg
ICB2aXJ0dWFsIHZvaWQgaGFuZGxlU2VsZWN0aW9uU2VydmljZUNsaWNrKEZyYW1lU2VsZWN0aW9u
JiwgY29uc3QgVmVjdG9yPFN0cmluZz4mLCBjb25zdCBJbnRQb2ludCYpIHsgfQogICAgIHZpcnR1
YWwgYm9vbCBoYXNSZWxldmFudFNlbGVjdGlvblNlcnZpY2VzKGJvb2wgLyppc1RleHRPbmx5Ki8p
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCB2b2lkIGhhbmRsZUltYWdlU2Vy
dmljZUNsaWNrKGNvbnN0IEludFBvaW50JiwgSW1hZ2UmLCBib29sIC8qaXNFZGl0YWJsZSovLCBj
b25zdCBJbnRSZWN0JikgeyB9CisgICAgdmlydHVhbCB2b2lkIGhhbmRsZUltYWdlU2VydmljZUNs
aWNrKGNvbnN0IEludFBvaW50JiwgSW1hZ2UmLCBib29sIC8qaXNFZGl0YWJsZSovLCBjb25zdCBJ
bnRSZWN0JiwgY29uc3QgU3RyaW5nJiAvKmF0dGFjaG1lbnRJRCovKSB7IH0KICNlbmRpZgogCiAg
ICAgdmlydHVhbCBib29sIHNob3VsZERpc3BhdGNoRmFrZU1vdXNlTW92ZUV2ZW50cygpIGNvbnN0
IHsgcmV0dXJuIHRydWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvbnRl
eHRNZW51Q29udGV4dERhdGEuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29udGV4dE1lbnVD
b250ZXh0RGF0YS5jcHAKaW5kZXggNzA4MjdkMjZiOWE2MmVkMGM5NDM4MjM4Y2E1NDJmZjZjMTkz
NmVkOS4uYWFlOTFhN2Q0M2M3YzA0YWY3YzcwMGQyYTQ5ODk0ODBhZmU3YTlkZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29udGV4dE1lbnVDb250ZXh0RGF0YS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvQ29udGV4dE1lbnVDb250ZXh0RGF0YS5jcHAKQEAgLTY3LDEx
ICs2NywxMiBAQCBDb250ZXh0TWVudUNvbnRleHREYXRhOjpDb250ZXh0TWVudUNvbnRleHREYXRh
KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBtZW51TG9jYQogfQogCiAjaWYgRU5BQkxFKFNFUlZJ
Q0VfQ09OVFJPTFMpCi1Db250ZXh0TWVudUNvbnRleHREYXRhOjpDb250ZXh0TWVudUNvbnRleHRE
YXRhKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBtZW51TG9jYXRpb24sIFdlYkNvcmU6OkltYWdl
JiBpbWFnZSwgYm9vbCBpc0VkaXRhYmxlLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBpbWFnZVJl
Y3QpCitDb250ZXh0TWVudUNvbnRleHREYXRhOjpDb250ZXh0TWVudUNvbnRleHREYXRhKGNvbnN0
IFdlYkNvcmU6OkludFBvaW50JiBtZW51TG9jYXRpb24sIFdlYkNvcmU6OkltYWdlJiBpbWFnZSwg
Ym9vbCBpc0VkaXRhYmxlLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBpbWFnZVJlY3QsIGNvbnN0
IFN0cmluZyYgYXR0YWNobWVudElEKQogICAgIDogbV90eXBlKFR5cGU6OlNlcnZpY2VzTWVudSkK
ICAgICAsIG1fbWVudUxvY2F0aW9uKG1lbnVMb2NhdGlvbikKICAgICAsIG1fc2VsZWN0aW9uSXNF
ZGl0YWJsZShpc0VkaXRhYmxlKQogICAgICwgbV9jb250cm9sbGVkSW1hZ2VCb3VuZHMoaW1hZ2VS
ZWN0KQorICAgICwgbV9jb250cm9sbGVkSW1hZ2VBdHRhY2htZW50SUQoYXR0YWNobWVudElEKQog
ewogICAgIHNldEltYWdlKCZpbWFnZSk7CiB9CkBAIC0xMDQsNiArMTA1LDcgQEAgdm9pZCBDb250
ZXh0TWVudUNvbnRleHREYXRhOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAog
ICAgIGVuY29kZXIgPDwgbV9zZWxlY3RlZFRlbGVwaG9uZU51bWJlcnM7CiAgICAgZW5jb2RlciA8
PCBtX3NlbGVjdGlvbklzRWRpdGFibGU7CiAgICAgZW5jb2RlciA8PCBtX2NvbnRyb2xsZWRJbWFn
ZUJvdW5kczsKKyAgICBlbmNvZGVyIDw8IG1fY29udHJvbGxlZEltYWdlQXR0YWNobWVudElEOwog
I2VuZGlmCiB9CiAKQEAgLTE0MCw2ICsxNDIsOCBAQCBib29sIENvbnRleHRNZW51Q29udGV4dERh
dGE6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIENvbnRleHRNZW51Q29udGV4dERhdAog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubV9j
b250cm9sbGVkSW1hZ2VCb3VuZHMpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShyZXN1bHQubV9jb250cm9sbGVkSW1hZ2VBdHRhY2htZW50SUQpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKIAogICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29udGV4dE1lbnVDb250ZXh0RGF0YS5oIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvQ29udGV4dE1lbnVDb250ZXh0RGF0YS5oCmluZGV4IDI4ZjE3YTNjMTNh
OGNhZWVlZTEzZjRjNjBjOWI3OTBjMWQ3NGIxMzEuLjRjYzM1YzVmOWVkZGVlYmI0NTE4MDYwNjg4
MmFmNWM4YzFkZTc0YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvbnRleHRN
ZW51Q29udGV4dERhdGEuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db250ZXh0TWVudUNv
bnRleHREYXRhLmgKQEAgLTY0LDcgKzY0LDcgQEAgcHVibGljOgogICAgIHsKICAgICB9CiAgICAg
Ci0gICAgQ29udGV4dE1lbnVDb250ZXh0RGF0YShjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgbWVu
dUxvY2F0aW9uLCBXZWJDb3JlOjpJbWFnZSYsIGJvb2wgaXNFZGl0YWJsZSwgY29uc3QgV2ViQ29y
ZTo6SW50UmVjdCYgaW1hZ2VSZWN0KTsKKyAgICBDb250ZXh0TWVudUNvbnRleHREYXRhKGNvbnN0
IFdlYkNvcmU6OkludFBvaW50JiBtZW51TG9jYXRpb24sIFdlYkNvcmU6OkltYWdlJiwgYm9vbCBp
c0VkaXRhYmxlLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBpbWFnZVJlY3QsIGNvbnN0IFN0cmlu
ZyYgYXR0YWNobWVudElEKTsKIAogICAgIFNoYXJlYWJsZUJpdG1hcCogY29udHJvbGxlZEltYWdl
KCkgY29uc3QgeyByZXR1cm4gbV9jb250cm9sbGVkSW1hZ2UuZ2V0KCk7IH0KICAgICBjb25zdCBW
ZWN0b3I8dWludDhfdD4mIGNvbnRyb2xsZWRTZWxlY3Rpb25EYXRhKCkgY29uc3QgeyByZXR1cm4g
bV9jb250cm9sbGVkU2VsZWN0aW9uRGF0YTsgfQpAQCAtNzMsNiArNzMsNyBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBpc1NlcnZpY2VzTWVudSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBDb250ZXh0
TWVudUNvbnRleHREYXRhOjpUeXBlOjpTZXJ2aWNlc01lbnU7IH0KICAgICBib29sIGNvbnRyb2xs
ZWREYXRhSXNFZGl0YWJsZSgpIGNvbnN0OwogICAgIFdlYkNvcmU6OkludFJlY3QgY29udHJvbGxl
ZEltYWdlQm91bmRzKCkgY29uc3QgeyByZXR1cm4gbV9jb250cm9sbGVkSW1hZ2VCb3VuZHM7IH07
CisgICAgU3RyaW5nIGNvbnRyb2xsZWRJbWFnZUF0dGFjaG1lbnRJRCgpIGNvbnN0IHsgcmV0dXJu
IG1fY29udHJvbGxlZEltYWdlQXR0YWNobWVudElEOyB9OwogI2VuZGlmCiAKICAgICB2b2lkIGVu
Y29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKQEAgLTk1LDYgKzk2LDcgQEAgcHJpdmF0ZToKICAg
ICBWZWN0b3I8U3RyaW5nPiBtX3NlbGVjdGVkVGVsZXBob25lTnVtYmVyczsKICAgICBib29sIG1f
c2VsZWN0aW9uSXNFZGl0YWJsZTsKICAgICBXZWJDb3JlOjpJbnRSZWN0IG1fY29udHJvbGxlZElt
YWdlQm91bmRzOworICAgIFN0cmluZyBtX2NvbnRyb2xsZWRJbWFnZUF0dGFjaG1lbnRJRDsKICNl
bmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L19XS0F0dGFjaG1lbnQubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
QXR0YWNobWVudC5tbQppbmRleCAwMjYzMjEzZTkwYzk4ZDdhZmMyZGQ4ZjE0ZDA5ZWE4ZmUxNjQ5
NmYyLi41ZTlmMTYxNWVlOTVhNzQyMGM3MDgwNzhkNzE3ZDQzZjFhNjZiMWIyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXR0YWNobWVudC5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXR0YWNobWVudC5tbQpAQCAt
MTUwLDYgKzE1MCwxMiBAQCAtICh2b2lkKXNldEZpbGVXcmFwcGVyOihOU0ZpbGVXcmFwcGVyICop
ZmlsZVdyYXBwZXIgY29udGVudFR5cGU6KE5TU3RyaW5nICopY29udAogICAgIH0pOwogfQogCist
ICh2b2lkKXNldERhdGE6KE5TRGF0YSAqKWRhdGEgbmV3Q29udGVudFR5cGU6KE5TU3RyaW5nICop
bmV3Q29udGVudFR5cGUKK3sKKyAgICBhdXRvIGZpbGVXcmFwcGVyID0gYWRvcHROUyhbW05TRmls
ZVdyYXBwZXIgYWxsb2NdIGluaXRSZWd1bGFyRmlsZVdpdGhDb250ZW50czpkYXRhXSk7CisgICAg
W3NlbGYgc2V0RmlsZVdyYXBwZXI6ZmlsZVdyYXBwZXIuZ2V0KCkgY29udGVudFR5cGU6bmV3Q29u
dGVudFR5cGUgY29tcGxldGlvbjpuaWxdOworfQorCiAtICh2b2lkKXNldERhdGE6KE5TRGF0YSAq
KWRhdGEgbmV3Q29udGVudFR5cGU6KE5TU3RyaW5nICopbmV3Q29udGVudFR5cGUgbmV3RmlsZW5h
bWU6KE5TU3RyaW5nICopbmV3RmlsZW5hbWUgY29tcGxldGlvbjoodm9pZCheKShOU0Vycm9yICop
KWNvbXBsZXRpb25IYW5kbGVyCiB7CiAgICAgYXV0byBmaWxlV3JhcHBlciA9IGFkb3B0TlMoW1tO
U0ZpbGVXcmFwcGVyIGFsbG9jXSBpbml0UmVndWxhckZpbGVXaXRoQ29udGVudHM6ZGF0YV0pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F0dGFjaG1l
bnRJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F0dGFj
aG1lbnRJbnRlcm5hbC5oCmluZGV4IDIxMTBiNDMwOGY5ODY4ZWUwMGQ2NWQ1ZWNhNjNiNjA3Njhj
MDZmM2IuLjczOGQ0Njc1M2IyNzVlMzVjNjQ5ZTRkOTc3OTU1YTEwZWU2MDQ2YWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdHRhY2htZW50SW50ZXJu
YWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXR0YWNobWVu
dEludGVybmFsLmgKQEAgLTM4LDQgKzM4LDYgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgV3JhcHBlclRy
YWl0czxBUEk6OkF0dGFjaG1lbnQ+IHsKIEBwYWNrYWdlCiAgICAgQVBJOjpPYmplY3RTdG9yYWdl
PEFQSTo6QXR0YWNobWVudD4gX2F0dGFjaG1lbnQ7CiB9CisKKy0gKHZvaWQpc2V0RGF0YTooTlNE
YXRhICopZGF0YSBuZXdDb250ZW50VHlwZTooTlNTdHJpbmcgKiluZXdDb250ZW50VHlwZTsKIEBl
bmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1NoYXJpbmdTZXJ2
aWNlUGlja2VyRGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1NoYXJp
bmdTZXJ2aWNlUGlja2VyRGVsZWdhdGUuaAppbmRleCBiNDM0M2M4NGFmOTYxNzE5M2E0MmJjNTNh
NDRiNWQ5ZTA2OGUxYTMzLi42ZDQ4OTBjNTQ0OGZiMWVjZjQ0MWJmOTEyNmI3MjAyMGMwZTZmYWI2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tTaGFyaW5nU2Vydmlj
ZVBpY2tlckRlbGVnYXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLU2hh
cmluZ1NlcnZpY2VQaWNrZXJEZWxlZ2F0ZS5oCkBAIC0zOSw2ICszOSw3IEBAIGNsYXNzIFdlYkNv
bnRleHRNZW51UHJveHlNYWM7CiAgICAgQk9PTCBfZmlsdGVyRWRpdGluZ1NlcnZpY2VzOwogICAg
IEJPT0wgX2hhbmRsZUVkaXRpbmdSZXBsYWNlbWVudDsKICAgICBOU1JlY3QgX3NvdXJjZUZyYW1l
OworICAgIFN0cmluZyBfYXR0YWNobWVudElEOwogfQogCiArIChXS1NoYXJpbmdTZXJ2aWNlUGlj
a2VyRGVsZWdhdGUgKilzaGFyZWRTaGFyaW5nU2VydmljZVBpY2tlckRlbGVnYXRlOwpAQCAtNDgs
NiArNDksNyBAQCBjbGFzcyBXZWJDb250ZXh0TWVudVByb3h5TWFjOwogLSAodm9pZClzZXRGaWx0
ZXJzRWRpdGluZ1NlcnZpY2VzOihCT09MKWZpbHRlcnNFZGl0aW5nU2VydmljZXM7CiAtICh2b2lk
KXNldEhhbmRsZXNFZGl0aW5nUmVwbGFjZW1lbnQ6KEJPT0wpaGFuZGxlc0VkaXRpbmdSZXBsYWNl
bWVudDsKIC0gKHZvaWQpc2V0U291cmNlRnJhbWU6KE5TUmVjdClzb3VyY2VGcmFtZTsKKy0gKHZv
aWQpc2V0QXR0YWNobWVudElEOihTdHJpbmcpYXR0YWNobWVudElEOwogCiBAZW5kCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1NoYXJpbmdTZXJ2aWNlUGlja2Vy
RGVsZWdhdGUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tTaGFyaW5nU2Vydmlj
ZVBpY2tlckRlbGVnYXRlLm1tCmluZGV4IGQ4Y2NlNmQxZTVjZDQyOWMwODA4NTE5MDAyYWRmZjAy
YTVjOGY3NDguLmZiZTk4YTA4MzlhZGExYzQxZDVmMzIyMWQ0NDlhZGZmZjRmMjIwMTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1NoYXJpbmdTZXJ2aWNlUGlja2Vy
RGVsZWdhdGUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLU2hhcmluZ1Nl
cnZpY2VQaWNrZXJEZWxlZ2F0ZS5tbQpAQCAtMjgsOSArMjgsMTIgQEAKIAogI2lmIEVOQUJMRShT
RVJWSUNFX0NPTlRST0xTKQogCisjaW1wb3J0ICJBUElBdHRhY2htZW50LmgiCiAjaW1wb3J0ICJE
YXRhUmVmZXJlbmNlLmgiCisjaW1wb3J0ICJXS09iamVjdC5oIgogI2ltcG9ydCAiV2ViQ29udGV4
dE1lbnVQcm94eU1hYy5oIgogI2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCisjaW1wb3J0ICJfV0tB
dHRhY2htZW50SW50ZXJuYWwuaCIKICNpbXBvcnQgPFdlYkNvcmUvTGVnYWN5TlNQYXN0ZWJvYXJk
VHlwZXMuaD4KICNpbXBvcnQgPHBhbC9zcGkvbWFjL05TU2hhcmluZ1NlcnZpY2VQaWNrZXJTUEku
aD4KICNpbXBvcnQgPHBhbC9zcGkvbWFjL05TU2hhcmluZ1NlcnZpY2VTUEkuaD4KQEAgLTc1LDYg
Kzc4LDExIEBAIC0gKHZvaWQpc2V0U291cmNlRnJhbWU6KE5TUmVjdClzb3VyY2VGcmFtZQogICAg
IF9zb3VyY2VGcmFtZSA9IHNvdXJjZUZyYW1lOwogfQogCistICh2b2lkKXNldEF0dGFjaG1lbnRJ
RDooU3RyaW5nKWF0dGFjaG1lbnRJRAoreworICAgIF9hdHRhY2htZW50SUQgPSBhdHRhY2htZW50
SUQ7Cit9CisKIC0gKE5TQXJyYXkgKilzaGFyaW5nU2VydmljZVBpY2tlcjooTlNTaGFyaW5nU2Vy
dmljZVBpY2tlciAqKXNoYXJpbmdTZXJ2aWNlUGlja2VyIHNoYXJpbmdTZXJ2aWNlc0Zvckl0ZW1z
OihOU0FycmF5ICopaXRlbXMgbWFzazooTlNTaGFyaW5nU2VydmljZU1hc2spbWFzayBwcm9wb3Nl
ZFNoYXJpbmdTZXJ2aWNlczooTlNBcnJheSAqKXByb3Bvc2VkU2VydmljZXMKIHsKICAgICBpZiAo
IV9maWx0ZXJFZGl0aW5nU2VydmljZXMpCkBAIC0xMDgsNyArMTE2LDcgQEAgLSAodm9pZClzaGFy
aW5nU2VydmljZTooTlNTaGFyaW5nU2VydmljZSAqKXNoYXJpbmdTZXJ2aWNlIHdpbGxTaGFyZUl0
ZW1zOihOU0FycmEKIC0gKHZvaWQpc2hhcmluZ1NlcnZpY2U6KE5TU2hhcmluZ1NlcnZpY2UgKilz
aGFyaW5nU2VydmljZSBkaWRTaGFyZUl0ZW1zOihOU0FycmF5ICopaXRlbXMKIHsKICAgICAvLyBX
ZSBvbmx5IGNhcmUgYWJvdXQgd2hhdCBpdGVtIHdhcyBzaGFyZWQgaWYgd2Ugd2VyZSBpbnRlcmVz
dGVkIGluIGVkaXRvciBzZXJ2aWNlcwotICAgIC8vIChpLmUuLCBpZiB3ZSBwbGFuIG9uIHJlcGxh
Y2luZyB0aGUgc2VsZWN0aW9uIHdpdGggdGhlIHJldHVybmVkIGl0ZW0pCisgICAgLy8gKGkuZS4s
IGlmIHdlIHBsYW4gb24gcmVwbGFjaW5nIHRoZSBzZWxlY3Rpb24gb3IgY29udHJvbGxlZCBpbWFn
ZSB3aXRoIHRoZSByZXR1cm5lZCBpdGVtKQogICAgIGlmICghX2hhbmRsZUVkaXRpbmdSZXBsYWNl
bWVudCkKICAgICAgICAgcmV0dXJuOwogCkBAIC0xMzYsNiArMTQ0LDIwIEBAIC0gKHZvaWQpc2hh
cmluZ1NlcnZpY2U6KE5TU2hhcmluZ1NlcnZpY2UgKilzaGFyaW5nU2VydmljZSBkaWRTaGFyZUl0
ZW1zOihOU0FycmF5CiAKICAgICAgICAgZGF0YVJlZmVyZW5jZSA9IElQQzo6RGF0YVJlZmVyZW5j
ZShzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4oW2RhdGEgYnl0ZXNdKSwgW2RhdGEgbGVuZ3Ro
XSk7CiAgICAgICAgIHR5cGVzLmFwcGVuZChOU1Bhc3RlYm9hcmRUeXBlVElGRik7CisgICAgfSBl
bHNlIGlmIChbaXRlbSBpc0tpbmRPZkNsYXNzOltOU0l0ZW1Qcm92aWRlciBjbGFzc11dKSB7Cisg
ICAgICAgIE5TSXRlbVByb3ZpZGVyICppdGVtUHJvdmlkZXIgPSAoTlNJdGVtUHJvdmlkZXIgKilp
dGVtOworICAgICAgICAKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVH
SU4KKyAgICAgICAgW2l0ZW1Qcm92aWRlciBsb2FkRGF0YVJlcHJlc2VudGF0aW9uRm9yVHlwZUlk
ZW50aWZpZXI6KE5TU3RyaW5nICopa1VUVHlwZURhdGEgY29tcGxldGlvbkhhbmRsZXI6XihOU0Rh
dGEgKmRhdGEsIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgICAgICBpZiAoZXJyb3IpCisgICAg
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgCisgICAgICAgICAgICBhdXRvIGFwaUF0
dGFjaG1lbnQgPSBfbWVudVByb3h5LT5wYWdlKCktPmF0dGFjaG1lbnRGb3JJZGVudGlmaWVyKF9h
dHRhY2htZW50SUQpOworICAgICAgICAgICAgYXV0byBhdHRhY2htZW50ID0gd3JhcHBlcihhcGlB
dHRhY2htZW50KTsKKyAgICAgICAgICAgIFthdHRhY2htZW50IHNldERhdGE6ZGF0YSBuZXdDb250
ZW50VHlwZTpTdHJpbmcoTlNQYXN0ZWJvYXJkVHlwZVRJRkYpXTsKKyAgICAgICAgfV07CisgICAg
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAorICAgICAgICByZXR1cm47CiAg
ICAgfSBlbHNlIHsKICAgICAgICAgTE9HX0VSUk9SKCJzaGFyaW5nU2VydmljZTpkaWRTaGFyZUl0
ZW1zOiAtIFVua25vd24gaXRlbSB0eXBlIHJldHVybmVkXG4iKTsKICAgICAgICAgcmV0dXJuOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJv
eHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94
eU1hYy5tbQppbmRleCA3ZDYxYTJjOThlNjYxMmMxZWU0MDA5MGUxMjdjMDEyODNiMTNmODc2Li5k
NTlmY2IxMmYyZDJhMGFkYzIyN2IwZmRjMjU2ZjVjYWZlYTkzODRjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbQpAQCAt
MjgsNiArMjgsNyBAQAogCiAjaWYgUExBVEZPUk0oTUFDKQogCisjaW1wb3J0ICJBUElBdHRhY2ht
ZW50LmgiCiAjaW1wb3J0ICJBUElDb250ZXh0TWVudUNsaWVudC5oIgogI2ltcG9ydCAiTWVudVV0
aWxpdGllcy5oIgogI2ltcG9ydCAiUGFnZUNsaWVudEltcGxNYWMuaCIKQEAgLTI0Myw2ICsyNDQs
NyBAQCBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBpbWFnZVJlY3QgPSBb
bV93ZWJWaWV3IGNvbnZlcnRSZWN0OmltYWdlUmVjdCB0b1ZpZXc6bmlsXTsKICAgICBpbWFnZVJl
Y3QgPSBbW21fd2ViVmlldyB3aW5kb3ddIGNvbnZlcnRSZWN0VG9TY3JlZW46aW1hZ2VSZWN0XTsK
ICAgICBbW1dLU2hhcmluZ1NlcnZpY2VQaWNrZXJEZWxlZ2F0ZSBzaGFyZWRTaGFyaW5nU2Vydmlj
ZVBpY2tlckRlbGVnYXRlXSBzZXRTb3VyY2VGcmFtZTppbWFnZVJlY3RdOworICAgIFtbV0tTaGFy
aW5nU2VydmljZVBpY2tlckRlbGVnYXRlIHNoYXJlZFNoYXJpbmdTZXJ2aWNlUGlja2VyRGVsZWdh
dGVdIHNldEF0dGFjaG1lbnRJRDptX2NvbnRleHQuY29udHJvbGxlZEltYWdlQXR0YWNobWVudElE
KCldOwogCiAgICAgbV9tZW51ID0gYWRvcHROUyhbW3BpY2tlciBtZW51XSBjb3B5XSk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5jcHAKaW5kZXggN2RhMzcyZjJmNjY4ZjcxMTg2NzBlYWU3MmFhZTAyMDll
ZGQ5NjdmZC4uM2UyZDQ3NWY4YzIwZjg4ZWVkNWYxZTljMTRmOGVlMmZlZTViZjA4MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5jcHAKQEAgLTEzNDcsOSArMTM0Nyw5IEBAIGJvb2wgV2ViQ2hyb21lQ2xp
ZW50OjpoYXNSZWxldmFudFNlbGVjdGlvblNlcnZpY2VzKGJvb2wgaXNUZXh0T25seSkgY29uc3QK
ICAgICByZXR1cm4gKGlzVGV4dE9ubHkgJiYgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuaGFzU2Vs
ZWN0aW9uU2VydmljZXMoKSkgfHwgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuaGFzUmljaENvbnRl
bnRTZXJ2aWNlcygpOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6aGFuZGxlSW1hZ2VTZXJ2
aWNlQ2xpY2soY29uc3QgSW50UG9pbnQmIHBvaW50LCBJbWFnZSYgaW1hZ2UsIGJvb2wgaXNFZGl0
YWJsZSwgY29uc3QgSW50UmVjdCYgaW1hZ2VSZWN0KQordm9pZCBXZWJDaHJvbWVDbGllbnQ6Omhh
bmRsZUltYWdlU2VydmljZUNsaWNrKGNvbnN0IEludFBvaW50JiBwb2ludCwgSW1hZ2UmIGltYWdl
LCBib29sIGlzRWRpdGFibGUsIGNvbnN0IEludFJlY3QmIGltYWdlUmVjdCwgY29uc3QgU3RyaW5n
JiBhdHRhY2htZW50SUQpCiB7Ci0gICAgbV9wYWdlLmhhbmRsZUltYWdlU2VydmljZUNsaWNrKHBv
aW50LCBpbWFnZSwgaXNFZGl0YWJsZSwgaW1hZ2VSZWN0KTsKKyAgICBtX3BhZ2UuaGFuZGxlSW1h
Z2VTZXJ2aWNlQ2xpY2socG9pbnQsIGltYWdlLCBpc0VkaXRhYmxlLCBpbWFnZVJlY3QsIGF0dGFj
aG1lbnRJRCk7CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IGZmMTVjYTM5NzRi
MDQzNmJhMjkyMzdiNDVjMTY4NTQyZTZlZTc4YzcuLjhiOGZiNDEzZDBmNTk1M2I1YTE5ZjA2OGI0
M2NmZmUwMDNkZWFkMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTM4MSw3ICszODEsNyBAQCBw
cml2YXRlOgogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQogICAgIHZvaWQgaGFuZGxlU2Vs
ZWN0aW9uU2VydmljZUNsaWNrKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uJiwgY29uc3QgVmVjdG9y
PFN0cmluZz4mIHRlbGVwaG9uZU51bWJlcnMsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JikgZmlu
YWw7CiAgICAgYm9vbCBoYXNSZWxldmFudFNlbGVjdGlvblNlcnZpY2VzKGJvb2wgaXNUZXh0T25s
eSkgY29uc3QgZmluYWw7Ci0gICAgdm9pZCBoYW5kbGVJbWFnZVNlcnZpY2VDbGljayhjb25zdCBX
ZWJDb3JlOjpJbnRQb2ludCYsIFdlYkNvcmU6OkltYWdlJiwgYm9vbCBpc0VkaXRhYmxlLCBjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JikgZmluYWw7CisgICAgdm9pZCBoYW5kbGVJbWFnZVNlcnZpY2VD
bGljayhjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIFdlYkNvcmU6OkltYWdlJiwgYm9vbCBpc0Vk
aXRhYmxlLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgY29uc3QgU3RyaW5nJiAvKmF0dGFjaG1l
bnRJRCovKSBmaW5hbDsKICNlbmRpZgogCiAgICAgYm9vbCBzaG91bGREaXNwYXRjaEZha2VNb3Vz
ZU1vdmVFdmVudHMoKSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuaAppbmRleCBkOGI4MWE5Y2U5M2RhMDc2YjM5NzllMTdhMzc2YjIyNmU2NDk3
NGQ2Li44Yjc2YjkwMGI3OGEwZjZhOGE3NGRiNGI0OGUxNjkyMWM1OWU2MmZkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xMjA0LDcgKzEyMDQsNyBA
QCBwdWJsaWM6CiAjaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpIHx8IEVOQUJMRShURUxFUEhP
TkVfTlVNQkVSX0RFVEVDVElPTikKICAgICB2b2lkIGhhbmRsZVRlbGVwaG9uZU51bWJlckNsaWNr
KGNvbnN0IFN0cmluZyYgbnVtYmVyLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpOwogICAgIHZv
aWQgaGFuZGxlU2VsZWN0aW9uU2VydmljZUNsaWNrKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uJiwg
Y29uc3QgVmVjdG9yPFN0cmluZz4mIHRlbGVwaG9uZU51bWJlcnMsIGNvbnN0IFdlYkNvcmU6Oklu
dFBvaW50Jik7Ci0gICAgdm9pZCBoYW5kbGVJbWFnZVNlcnZpY2VDbGljayhjb25zdCBXZWJDb3Jl
OjpJbnRQb2ludCYsIFdlYkNvcmU6OkltYWdlJiwgYm9vbCBpc0VkaXRhYmxlLCBjb25zdCBXZWJD
b3JlOjpJbnRSZWN0Jik7CisgICAgdm9pZCBoYW5kbGVJbWFnZVNlcnZpY2VDbGljayhjb25zdCBX
ZWJDb3JlOjpJbnRQb2ludCYsIFdlYkNvcmU6OkltYWdlJiwgYm9vbCBpc0VkaXRhYmxlLCBjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JiwgY29uc3QgU3RyaW5nJiBhdHRhY2htZW50SUQpOwogI2VuZGlm
CiAKICAgICB2b2lkIGRpZENoYW5nZVNjcm9sbE9mZnNldEZvckZyYW1lKFdlYkNvcmU6OkZyYW1l
Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2Vi
UGFnZU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdl
TWFjLm1tCmluZGV4IDFkZWM5ZTFiMTNiNjg3NmNkM2E2NGExZWEyNzk2NTY5NWU0MDNmYjcuLmU0
NjdlZmZmZDc5NDdiNzhhNGI4MDcwZDQ4ODhiMDZhZjhlYjdkYzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCkBAIC04MjgsOSAr
ODI4LDkgQEAgdm9pZCBXZWJQYWdlOjpoYW5kbGVTZWxlY3Rpb25TZXJ2aWNlQ2xpY2soRnJhbWVT
ZWxlY3Rpb24mIHNlbGVjdGlvbiwgY29uc3QgVmVjdG8KICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OlNob3dDb250ZXh0TWVudShDb250ZXh0TWVudUNvbnRleHREYXRhKHBvaW50LCBz
ZWxlY3Rpb25EYXRhVmVjdG9yLCBwaG9uZU51bWJlcnMsIHNlbGVjdGlvbi5zZWxlY3Rpb24oKS5p
c0NvbnRlbnRFZGl0YWJsZSgpKSwgVXNlckRhdGEoKSkpOwogfQogCi12b2lkIFdlYlBhZ2U6Omhh
bmRsZUltYWdlU2VydmljZUNsaWNrKGNvbnN0IEludFBvaW50JiBwb2ludCwgSW1hZ2UmIGltYWdl
LCBib29sIGlzRWRpdGFibGUsIGNvbnN0IEludFJlY3QmIGltYWdlUmVjdCkKK3ZvaWQgV2ViUGFn
ZTo6aGFuZGxlSW1hZ2VTZXJ2aWNlQ2xpY2soY29uc3QgSW50UG9pbnQmIHBvaW50LCBJbWFnZSYg
aW1hZ2UsIGJvb2wgaXNFZGl0YWJsZSwgY29uc3QgSW50UmVjdCYgaW1hZ2VSZWN0LCBjb25zdCBT
dHJpbmcmIGF0dGFjaG1lbnRJRCkKIHsKLSAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OlNob3dDb250ZXh0TWVudShDb250ZXh0TWVudUNvbnRleHREYXRhKHBvaW50LCBpbWFnZSwgaXNF
ZGl0YWJsZSwgaW1hZ2VSZWN0KSwgVXNlckRhdGEoKSkpOworICAgIHNlbmQoTWVzc2FnZXM6Oldl
YlBhZ2VQcm94eTo6U2hvd0NvbnRleHRNZW51KENvbnRleHRNZW51Q29udGV4dERhdGEocG9pbnQs
IGltYWdlLCBpc0VkaXRhYmxlLCBpbWFnZVJlY3QsIGF0dGFjaG1lbnRJRCksIFVzZXJEYXRhKCkp
KTsKIH0KIAogI2VuZGlmCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>