<?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>211100</bug_id>
          
          <creation_ts>2020-04-27 15:40:48 -0700</creation_ts>
          <short_desc>[macOS, MacCatalyst] Dynamic access to accessibility services is incomplete</short_desc>
          <delta_ts>2020-04-27 17:30:09 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>Safari 13</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="Brent Fulgham">bfulgham</reporter>
          <assigned_to name="Brent Fulgham">bfulgham</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>cfleizach</cc>
    
    <cc>darin</cc>
    
    <cc>pvollan</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1646269</commentid>
    <comment_count>0</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2020-04-27 15:40:48 -0700</bug_when>
    <thetext>Testing of MacCatalyst-based apps shows that using dynamic sandbox extensions to support accessibility features is incomplete. In addition to the &apos;com.apple.cfprefsd.daemon&apos; process needed on macOS and iOS, we also need access to &apos;com.apple.cfprefsd.agent&apos;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646270</commentid>
    <comment_count>1</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2020-04-27 15:41:05 -0700</bug_when>
    <thetext>&lt;rdar://problem/62133491&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646275</commentid>
    <comment_count>2</comment_count>
      <attachid>397753</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2020-04-27 15:47:21 -0700</bug_when>
    <thetext>Created attachment 397753
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646276</commentid>
    <comment_count>3</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2020-04-27 15:47:44 -0700</bug_when>
    <thetext>I noticed some duplicate code needed when working with SandboxExtensions. I&apos;ll do that refactoring in a separate patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646277</commentid>
    <comment_count>4</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2020-04-27 15:49:21 -0700</bug_when>
    <thetext>(In reply to Brent Fulgham from comment #3)
&gt; I noticed some duplicate code needed when working with SandboxExtensions.
&gt; I&apos;ll do that refactoring in a separate patch.

Were you able to confirm that it does work on macOS (not just catalyst)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646282</commentid>
    <comment_count>5</comment_count>
      <attachid>397753</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-04-27 15:55:25 -0700</bug_when>
    <thetext>Comment on attachment 397753
Patch

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

&gt; Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm:461
&gt; +        static const char* services[] = {

Can make this more const like this:

    static constexpr const char* services [] {

The other way would result in less efficient code.

&gt; Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm:467
&gt; +        auto size = WTF_ARRAY_LENGTH(services);

Don’t need WTF_ARRAY_LENGTH any more in modern C++:

    auto size = std::size(services);

&gt; Source/WebKit/UIProcess/Cocoa/WebProcessProxyCocoa.mm:254
&gt; +    SandboxExtension::HandleArray handleArray;
&gt; +    static const char* services[] = {
&gt; +#if PLATFORM(MACCATALYST)
&gt; +        &quot;com.apple.cfprefsd.agent&quot;,
&gt; +#endif
&gt; +        &quot;com.apple.cfprefsd.daemon&quot;
&gt; +    };
&gt; +    auto size = WTF_ARRAY_LENGTH(services);
&gt; +    handleArray.allocate(size);
&gt; +    for (size_t i = 0; i &lt; size; ++i) {
&gt; +        if (!SandboxExtension::createHandleForMachLookup(services[i], connection() ? connection()-&gt;getAuditToken() : WTF::nullopt, handleArray[i]))
&gt; +            return;
&gt; +    }

Can we share this code? Comments above still apply.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646285</commentid>
    <comment_count>6</comment_count>
      <attachid>397753</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2020-04-27 16:04:41 -0700</bug_when>
    <thetext>Comment on attachment 397753
Patch

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

&gt;&gt; Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm:461
&gt;&gt; +        static const char* services[] = {
&gt; 
&gt; Can make this more const like this:
&gt; 
&gt;     static constexpr const char* services [] {
&gt; 
&gt; The other way would result in less efficient code.

Sure!

&gt;&gt; Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm:467
&gt;&gt; +        auto size = WTF_ARRAY_LENGTH(services);
&gt; 
&gt; Don’t need WTF_ARRAY_LENGTH any more in modern C++:
&gt; 
&gt;     auto size = std::size(services);

Oh, great! I&apos;ll change that.

&gt;&gt; Source/WebKit/UIProcess/Cocoa/WebProcessProxyCocoa.mm:254
&gt;&gt; +    }
&gt; 
&gt; Can we share this code? Comments above still apply.

Maybe. I want to do a separate patch to make SandboxExtension::HandleArray more useful, but I didn&apos;t want that more wide-spread change to clutter this patch. My proposed SandboxExtension change will address some of this repetitive boilerplate.

I&apos;m less user how to capture the knowledge that these two cfprefsd connections are needed. We need to know this when launching, or here when we toggle the process.

Maybe I could add a static method to WebProcessPool to give us the array of services, and use it in both places.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646286</commentid>
    <comment_count>7</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2020-04-27 16:05:39 -0700</bug_when>
    <thetext>(In reply to chris fleizach from comment #4)
&gt; (In reply to Brent Fulgham from comment #3)
&gt; &gt; I noticed some duplicate code needed when working with SandboxExtensions.
&gt; &gt; I&apos;ll do that refactoring in a separate patch.
&gt; 
&gt; Were you able to confirm that it does work on macOS (not just catalyst)?

I&apos;ll double-check. Do our AX unit tests not cover this case?

I&apos;m building locally and will do the manual test we do for MacCatalyst to confirm the same behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646302</commentid>
    <comment_count>8</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2020-04-27 16:41:23 -0700</bug_when>
    <thetext>&gt; (In reply to chris fleizach from comment #4)
&gt; Were you able to confirm that it does work on macOS (not just catalyst)?

Testing manually, I found that I needed the &apos;agent&apos; as well. I&apos;ve modified the patch to match.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646303</commentid>
    <comment_count>9</comment_count>
      <attachid>397763</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2020-04-27 16:41:41 -0700</bug_when>
    <thetext>Created attachment 397763
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646309</commentid>
    <comment_count>10</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2020-04-27 16:51:16 -0700</bug_when>
    <thetext>(In reply to Brent Fulgham from comment #7)
&gt; (In reply to chris fleizach from comment #4)
&gt; &gt; (In reply to Brent Fulgham from comment #3)
&gt; &gt; &gt; I noticed some duplicate code needed when working with SandboxExtensions.
&gt; &gt; &gt; I&apos;ll do that refactoring in a separate patch.
&gt; &gt; 
&gt; &gt; Were you able to confirm that it does work on macOS (not just catalyst)?
&gt; 
&gt; I&apos;ll double-check. Do our AX unit tests not cover this case?
&gt; 
&gt; I&apos;m building locally and will do the manual test we do for MacCatalyst to
&gt; confirm the same behavior.

We read the value with _AXSIsolatedTreeMode() but there&apos;s no test to check this value right now</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646315</commentid>
    <comment_count>11</comment_count>
      <attachid>397763</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-04-27 17:09:37 -0700</bug_when>
    <thetext>Comment on attachment 397763
Patch for landing

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

&gt; Source/WebKit/UIProcess/Cocoa/WebProcessProxyCocoa.mm:244
&gt; +        &quot;com.apple.cfprefsd.agent&quot;,

Is this needed on iOS?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646317</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-04-27 17:12:50 -0700</bug_when>
    <thetext>Committed r260798: &lt;https://trac.webkit.org/changeset/260798&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 397763.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646319</commentid>
    <comment_count>13</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2020-04-27 17:22:50 -0700</bug_when>
    <thetext>(In reply to Per Arne Vollan from comment #11)
&gt; Comment on attachment 397763 [details]
&gt; Patch for landing
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=397763&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/Cocoa/WebProcessProxyCocoa.mm:244
&gt; &gt; +        &quot;com.apple.cfprefsd.agent&quot;,
&gt; 
&gt; Is this needed on iOS?

We probably should -- I didn&apos;t debug on device to confirm, but since it&apos;s needed on macOS and macCatalyst it seems likely.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646322</commentid>
    <comment_count>14</comment_count>
      <attachid>397763</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-04-27 17:23:52 -0700</bug_when>
    <thetext>Comment on attachment 397763
Patch for landing

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

&gt; Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm:108
&gt; +#if !PLATFORM(IOS_FAMILY) || PLATFORM(MACCATALYST)
&gt;  static NSString *WebKitApplicationDidChangeAccessibilityEnhancedUserInterfaceNotification = @&quot;NSApplicationDidChangeAccessibilityEnhancedUserInterfaceNotification&quot;;
&gt;  #endif

It seems this string is unused on Catalyst, or perhaps I am mistaken?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646323</commentid>
    <comment_count>15</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2020-04-27 17:30:09 -0700</bug_when>
    <thetext>Committed r260801: &lt;https://trac.webkit.org/changeset/260801&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397753</attachid>
            <date>2020-04-27 15:47:21 -0700</date>
            <delta_ts>2020-04-27 16:41:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211100-20200427154720.patch</filename>
            <type>text/plain</type>
            <size>13192</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwNzY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGIwZjlkZTFkYmQ0NTBmN2Fm
MTQ1ZDhiNjAxMGNiYTBiZGRiMDhiYWYuLjNkYTRhZTFlNzRiMDYzZDg0YzBkYWU0N2VhYTA1N2I2
ZTIzYmE4MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMjAtMDQtMjcgIEJyZW50IEZ1
bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CisKKyAgICAgICAgW01hY0NhdGFseXN0XSBEeW5h
bWljIGFjY2VzcyB0byBhY2Nlc3NpYmlsaXR5IHNlcnZpY2VzIGlzIGluY29tcGxldGUgCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTExMDAKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzYyMTMzNDkxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRlc3Rpbmcgb2YgTWFjQ2F0YWx5c3QtYmFzZWQgYXBwcyBz
aG93cyB0aGF0IHVzaW5nIGR5bmFtaWMgc2FuZGJveCBleHRlbnNpb25zIHRvIHN1cHBvcnQgYWNj
ZXNzaWJpbGl0eQorICAgICAgICBmZWF0dXJlcyBpcyBpbmNvbXBsZXRlLiBJbiBhZGRpdGlvbiB0
byB0aGUgJ2NvbS5hcHBsZS5jZnByZWZzZC5kYWVtb24nIHByb2Nlc3MgbmVlZGVkIG9uIG1hY09T
IGFuZCBpT1MsCisgICAgICAgIHdlIGFsc28gbmVlZCBhY2Nlc3MgdG8gJ2NvbS5hcHBsZS5jZnBy
ZWZzZC5hZ2VudCcuCisKKyAgICAgICAgVGhpcyBjYW4gb25seSBiZSB0ZXN0ZWQgbWFudWFsbHkg
aW4gYSBNYWNDYXRseXN0IGJ1aWxkLCB0aG91Z2ggZXhpc3RpbmcgYWNjZXNzaWJpbGl0eSB0ZXN0
cyB3aWxsCisgICAgICAgIGNvbmZpcm0gbm8gcmVncmVzc2lvbnMgaW4gaU9TIGFuZCBtYWNPUy4K
KworICAgICAgICBUaGUgY2hhbmdlcyBhcmUgYXMgZm9sbG93czoKKyAgICAgICAgMS4gQ2hhbmdl
IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OnByZWZlcmVuY2VzRXh0ZW5zaW9uSGFuZGxl
IHRvIGEgaGFuZGxlIGFycmF5LgorICAgICAgICAyLiBSZWdpc3RlciAoYW5kIHVucmVnaXN0ZXIp
IGZvciB0aGUgYWNjZXNzaWJpbGl0eSBlbmFibGVkIG5vdGlmaWNhdGlvbiBpbiBNYWNDYXRhbHlz
dC4KKyAgICAgICAgMy4gT3BlbiBhIGNvbm5lY3Rpb24gJ2NvbS5hcHBsZS5jZnByZWZzZC5hZ2Vu
dCcgKGluIGFkZGl0aW9uIHRvIHRoZSBleGlzdGluZyAnY29tLmFwcGxlLmNmcHJlZnNkLmRhZW1v
bicpCisgICAgICAgICAgIGluIE1hY0NhdGFseXN0IGJ1aWxkcy4KKworICAgICAgICAqIFNoYXJl
ZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFy
ZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9D
b2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNz
UG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3NQb29sOjpyZWdpc3Rlck5vdGlmaWNhdGlvbk9ic2VydmVycyk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3NQb29sOjp1bnJlZ2lzdGVyTm90aWZpY2F0aW9uT2JzZXJ2ZXJzKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2EubW06CisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6dW5ibG9ja1ByZWZlcmVuY2VTZXJ2aWNlSWZO
ZWVkZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2Nv
Y29hL1dlYlByb2Nlc3NDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGxh
dGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6
OnVuYmxvY2tQcmVmZXJlbmNlU2VydmljZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb20uYXBw
bGUuV2ViUHJvY2Vzcy5zYi5pbjoKKwogMjAyMC0wNC0yNyAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxn
aGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIE1hY0NhdGFseXN0IGJ1aWxkIGZp
eCBhZnRlciByMjYwNzM5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRleCAxZTk3ODUzOGQ1Yzg1ODg3NWEzNGIyMjg3
OTFkY2MyYzNkYzA2ZTZkLi44YjJmODUzYzA4Y2YwOGQ3ODQyMGUxZGYzNGUzMmZiMmI4YWVlZmFk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmNwcApAQCAtMTk0LDcgKzE5NCw3IEBAIHZvaWQgV2ViUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICAvLyBG
SVhNRSgyMDc3MTYpOiBUaGUgZm9sbG93aW5nIHNob3VsZCBiZSByZW1vdmVkIHdoZW4gdGhlIEdQ
VSBwcm9jZXNzIGlzIGNvbXBsZXRlLgogICAgIGVuY29kZXIgPDwgbWVkaWFFeHRlbnNpb25IYW5k
bGVzOwogI2lmIEVOQUJMRShDRlBSRUZTX0RJUkVDVF9NT0RFKQotICAgIGVuY29kZXIgPDwgcHJl
ZmVyZW5jZXNFeHRlbnNpb25IYW5kbGU7CisgICAgZW5jb2RlciA8PCBwcmVmZXJlbmNlc0V4dGVu
c2lvbkhhbmRsZXM7CiAjZW5kaWYKICNlbmRpZgogCkBAIC01NDQsMTEgKzU0NCwxMSBAQCBib29s
IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29k
ZXIsIFdlYlByb2Nlc3NDcmVhdAogICAgIC8vIEZJWE1FKDIwNzcxNik6IEVuZCByZWdpb24gdG8g
cmVtb3ZlLgogCiAjaWYgRU5BQkxFKENGUFJFRlNfRElSRUNUX01PREUpCi0gICAgT3B0aW9uYWw8
T3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPj4gcHJlZmVyZW5jZXNFeHRlbnNpb25I
YW5kbGU7Ci0gICAgZGVjb2RlciA+PiBwcmVmZXJlbmNlc0V4dGVuc2lvbkhhbmRsZTsKLSAgICBp
ZiAoIXByZWZlcmVuY2VzRXh0ZW5zaW9uSGFuZGxlKQorICAgIE9wdGlvbmFsPE9wdGlvbmFsPFNh
bmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5Pj4gcHJlZmVyZW5jZXNFeHRlbnNpb25IYW5kbGVz
OworICAgIGRlY29kZXIgPj4gcHJlZmVyZW5jZXNFeHRlbnNpb25IYW5kbGVzOworICAgIGlmICgh
cHJlZmVyZW5jZXNFeHRlbnNpb25IYW5kbGVzKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
cGFyYW1ldGVycy5wcmVmZXJlbmNlc0V4dGVuc2lvbkhhbmRsZSA9IFdURk1vdmUoKnByZWZlcmVu
Y2VzRXh0ZW5zaW9uSGFuZGxlKTsKKyAgICBwYXJhbWV0ZXJzLnByZWZlcmVuY2VzRXh0ZW5zaW9u
SGFuZGxlcyA9IFdURk1vdmUoKnByZWZlcmVuY2VzRXh0ZW5zaW9uSGFuZGxlcyk7CiAjZW5kaWYK
ICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmgKaW5kZXggZjg2NGFiYzJmZGY5MmQ5MTNhNjVmNTgwYTA0YTIzODkxMGFi
NTliZS4uNGE1NWNkNWRkY2VmOTc4NWNhMzcxMGNhZmIyZWY4NjQ2ZmZiNGM4NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaApA
QCAtMjMxLDcgKzIzMSw3IEBAIHN0cnVjdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsK
ICNpZiBQTEFURk9STShDT0NPQSkKICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSBt
ZWRpYUV4dGVuc2lvbkhhbmRsZXM7IC8vIEZJWE1FKDIwNzcxNik6IFJlbW92ZSB3aGVuIEdQVSBw
cm9jZXNzIGlzIGNvbXBsZXRlLgogI2lmIEVOQUJMRShDRlBSRUZTX0RJUkVDVF9NT0RFKQotICAg
IE9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4gcHJlZmVyZW5jZXNFeHRlbnNpb25I
YW5kbGU7CisgICAgT3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXk+IHByZWZl
cmVuY2VzRXh0ZW5zaW9uSGFuZGxlczsKICNlbmRpZgogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCmluZGV4IDBj
ODVmODI5N2RjODcwNmNmZDk3MDZiNTBjNTdiZmM0NTViNWVkODAuLmM5MWU5MmRlZjBhN2U1NmY3
NDE2M2E3NTdkMDIwZDBjNzQyMDlmM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQpAQCAtMTAzLDcgKzEwMyw3IEBAIE5T
U3RyaW5nICpXZWJLaXRMb2NhbENhY2hlRGVmYXVsdHNLZXkgPSBAIldlYktpdExvY2FsQ2FjaGUi
OwogTlNTdHJpbmcgKldlYktpdEpTQ0pJVEVuYWJsZWREZWZhdWx0c0tleSA9IEAiV2ViS2l0SlND
SklURW5hYmxlZERlZmF1bHRzS2V5IjsKIE5TU3RyaW5nICpXZWJLaXRKU0NGVExKSVRFbmFibGVk
RGVmYXVsdHNLZXkgPSBAIldlYktpdEpTQ0ZUTEpJVEVuYWJsZWREZWZhdWx0c0tleSI7CiAKLSNp
ZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkgfHwgUExB
VEZPUk0oTUFDQ0FUQUxZU1QpCiBzdGF0aWMgTlNTdHJpbmcgKldlYktpdEFwcGxpY2F0aW9uRGlk
Q2hhbmdlQWNjZXNzaWJpbGl0eUVuaGFuY2VkVXNlckludGVyZmFjZU5vdGlmaWNhdGlvbiA9IEAi
TlNBcHBsaWNhdGlvbkRpZENoYW5nZUFjY2Vzc2liaWxpdHlFbmhhbmNlZFVzZXJJbnRlcmZhY2VO
b3RpZmljYXRpb24iOwogI2VuZGlmCiAKQEAgLTQ1Niw5ICs0NTYsMjIgQEAgdm9pZCBXZWJQcm9j
ZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzUHJv
eHkmIHByb2Nlc3MKIAogI2lmIEVOQUJMRShDRlBSRUZTX0RJUkVDVF9NT0RFKSAmJiBQTEFURk9S
TShJT1NfRkFNSUxZKQogICAgIGlmIChfQVhTQXBwbGljYXRpb25BY2Nlc3NpYmlsaXR5RW5hYmxl
ZCgpKSB7Ci0gICAgICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBwcmVmZXJlbmNlc0V4dGVu
c2lvbkhhbmRsZTsKLSAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFj
aExvb2t1cCgiY29tLmFwcGxlLmNmcHJlZnNkLmRhZW1vbiIsIFdURjo6bnVsbG9wdCwgcHJlZmVy
ZW5jZXNFeHRlbnNpb25IYW5kbGUpOwotICAgICAgICBwYXJhbWV0ZXJzLnByZWZlcmVuY2VzRXh0
ZW5zaW9uSGFuZGxlID0gV1RGTW92ZShwcmVmZXJlbmNlc0V4dGVuc2lvbkhhbmRsZSk7CisgICAg
ICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5IHByZWZlcmVuY2VzRXh0ZW5zaW9uSGFu
ZGxlczsKKyAgICAgICAgCisgICAgICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzZXJ2aWNlc1tdID0g
eworI2lmIFBMQVRGT1JNKE1BQ0NBVEFMWVNUKQorICAgICAgICAgICAgImNvbS5hcHBsZS5jZnBy
ZWZzZC5hZ2VudCIsCisjZW5kaWYKKyAgICAgICAgICAgICJjb20uYXBwbGUuY2ZwcmVmc2QuZGFl
bW9uIgorICAgICAgICB9OworICAgICAgICBhdXRvIHNpemUgPSBXVEZfQVJSQVlfTEVOR1RIKHNl
cnZpY2VzKTsKKyAgICAgICAgcHJlZmVyZW5jZXNFeHRlbnNpb25IYW5kbGVzLmFsbG9jYXRlKHNp
emUpOworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkgeworICAgICAg
ICAgICAgYm9vbCBvayA9IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29r
dXAoc2VydmljZXNbaV0sIFdURjo6bnVsbG9wdCwgcHJlZmVyZW5jZXNFeHRlbnNpb25IYW5kbGVz
W2ldKTsKKyAgICAgICAgICAgIEFTU0VSVF9VTlVTRUQob2ssIG9rKTsKKyAgICAgICAgfQorICAg
ICAgICAKKyAgICAgICAgcGFyYW1ldGVycy5wcmVmZXJlbmNlc0V4dGVuc2lvbkhhbmRsZXMgPSBX
VEZNb3ZlKHByZWZlcmVuY2VzRXh0ZW5zaW9uSGFuZGxlcyk7CiAgICAgfQogI2VuZGlmCiB9CkBA
IC02ODUsNiArNjk4LDkgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cmVnaXN0ZXJOb3RpZmljYXRp
b25PYnNlcnZlcnMoKQogICAgIENGTm90aWZpY2F0aW9uQ2VudGVyQWRkT2JzZXJ2ZXIoQ0ZOb3Rp
ZmljYXRpb25DZW50ZXJHZXREYXJ3aW5Ob3RpZnlDZW50ZXIoKSwgdGhpcywgcmVtb3RlV2ViSW5z
cGVjdG9yRW5hYmxlZENhbGxiYWNrLCBzdGF0aWNfY2FzdDxDRlN0cmluZ1JlZj4oQ0ZTVFIoV0lS
U2VydmljZUVuYWJsZWROb3RpZmljYXRpb24pKSwgbnVsbHB0ciwgQ0ZOb3RpZmljYXRpb25TdXNw
ZW5zaW9uQmVoYXZpb3JDb2FsZXNjZSk7CiAjZW5kaWYKICNlbmRpZiAvLyBQTEFURk9STShJT1Mp
CisjZW5kaWYgLy8gIVBMQVRGT1JNKElPU19GQU1JTFkpCisKKyNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQogICAgIG1fYWNjZXNzaWJpbGl0eUVuYWJsZWRPYnNlcnZlciA9IFtbTlNOb3RpZmljYXRp
b25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXJGb3JOYW1lOihfX2JyaWRnZSBpZClr
QVhTQXBwbGljYXRpb25BY2Nlc3NpYmlsaXR5RW5hYmxlZE5vdGlmaWNhdGlvbiBvYmplY3Q6bmls
IHF1ZXVlOltOU09wZXJhdGlvblF1ZXVlIGN1cnJlbnRRdWV1ZV0gdXNpbmdCbG9jazpeKE5TTm90
aWZpY2F0aW9uICopIHsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX3Byb2Nlc3Nl
cy5zaXplKCk7ICsraSkgewogI2lmIEVOQUJMRShDRlBSRUZTX0RJUkVDVF9NT0RFKQpAQCAtNjk4
LDcgKzcxNCw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnJlZ2lzdGVyTm90aWZpY2F0aW9uT2Jz
ZXJ2ZXJzKCkKICAgICAgICAgc3RhcnRPYnNlcnZpbmdQcmVmZXJlbmNlQ2hhbmdlcygpOwogICAg
IH1dOwogI2VuZGlmCi0jZW5kaWYgLy8gIVBMQVRGT1JNKElPU19GQU1JTFkpCisjZW5kaWYKIH0K
IAogdm9pZCBXZWJQcm9jZXNzUG9vbDo6dW5yZWdpc3Rlck5vdGlmaWNhdGlvbk9ic2VydmVycygp
CkBAIC03MjEsOCArNzM3LDEyIEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnVucmVnaXN0ZXJOb3Rp
ZmljYXRpb25PYnNlcnZlcnMoKQogICAgIENGTm90aWZpY2F0aW9uQ2VudGVyUmVtb3ZlT2JzZXJ2
ZXIoQ0ZOb3RpZmljYXRpb25DZW50ZXJHZXREYXJ3aW5Ob3RpZnlDZW50ZXIoKSwgdGhpcywgQ0ZT
VFIoV0lSU2VydmljZUVuYWJsZWROb3RpZmljYXRpb24pLCBudWxscHRyKTsKICNlbmRpZgogI2Vu
ZGlmIC8vIFBMQVRGT1JNKElPUykKLSAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRD
ZW50ZXJdIHJlbW92ZU9ic2VydmVyOm1fYWNjZXNzaWJpbGl0eUVuYWJsZWRPYnNlcnZlci5nZXQo
KV07CiAjZW5kaWYgLy8gIVBMQVRGT1JNKElPU19GQU1JTFkpCisKKyNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQorICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3Zl
T2JzZXJ2ZXI6bV9hY2Nlc3NpYmlsaXR5RW5hYmxlZE9ic2VydmVyLmdldCgpXTsKKyNlbmRpZgor
CiAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZl
cjptX2FjdGl2YXRpb25PYnNlcnZlci5nZXQoKV07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2EubW0KaW5kZXggNDU0OGFh
Mzc3YTRjNmVhZWE1YjZlOTdlNDU1NDE4ZGNiNTliNGYyMS4uMGViNTQ3ZDlkNDgwYmQ5Y2JkNjVl
YmQ0M2FhNDA0NzQxM2M1NWZmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2EubW0KQEAgLTIzOSwxMSArMjM5LDIxIEBAIHZv
aWQgV2ViUHJvY2Vzc1Byb3h5Ojp1bmJsb2NrUHJlZmVyZW5jZVNlcnZpY2VJZk5lZWRlZCgpCiAg
ICAgaWYgKCFjYW5TZW5kTWVzc2FnZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBTYW5kYm94
RXh0ZW5zaW9uOjpIYW5kbGUgaGFuZGxlOwotICAgIGlmICghU2FuZGJveEV4dGVuc2lvbjo6Y3Jl
YXRlSGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLmNmcHJlZnNkLmRhZW1vbiIsIGNvbm5l
Y3Rpb24oKSA/IGNvbm5lY3Rpb24oKS0+Z2V0QXVkaXRUb2tlbigpIDogV1RGOjpudWxsb3B0LCBo
YW5kbGUpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNz
OjpVbmJsb2NrUHJlZmVyZW5jZVNlcnZpY2UoaGFuZGxlKSwgMCk7CisgICAgU2FuZGJveEV4dGVu
c2lvbjo6SGFuZGxlQXJyYXkgaGFuZGxlQXJyYXk7CisgICAgc3RhdGljIGNvbnN0IGNoYXIqIHNl
cnZpY2VzW10gPSB7CisjaWYgUExBVEZPUk0oTUFDQ0FUQUxZU1QpCisgICAgICAgICJjb20uYXBw
bGUuY2ZwcmVmc2QuYWdlbnQiLAorI2VuZGlmCisgICAgICAgICJjb20uYXBwbGUuY2ZwcmVmc2Qu
ZGFlbW9uIgorICAgIH07CisgICAgYXV0byBzaXplID0gV1RGX0FSUkFZX0xFTkdUSChzZXJ2aWNl
cyk7CisgICAgaGFuZGxlQXJyYXkuYWxsb2NhdGUoc2l6ZSk7CisgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBzaXplOyArK2kpIHsKKyAgICAgICAgaWYgKCFTYW5kYm94RXh0ZW5zaW9uOjpjcmVh
dGVIYW5kbGVGb3JNYWNoTG9va3VwKHNlcnZpY2VzW2ldLCBjb25uZWN0aW9uKCkgPyBjb25uZWN0
aW9uKCktPmdldEF1ZGl0VG9rZW4oKSA6IFdURjo6bnVsbG9wdCwgaGFuZGxlQXJyYXlbaV0pKQor
ICAgICAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQ
cm9jZXNzOjpVbmJsb2NrUHJlZmVyZW5jZVNlcnZpY2UoaGFuZGxlQXJyYXkpLCAwKTsKICAgICBt
X2hhc1NlbnRNZXNzYWdlVG9VbmJsb2NrUHJlZmVyZW5jZVNlcnZpY2UgPSB0cnVlOwogfQogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAppbmRleCA0YTM3NmVjYWYzMTgx
YmQ1ZjY1MDRiZDZjYjA5ZjUwNDQ0MmQ1NTYzLi42YjM5OWMzYWUwMjRhNzc2MjI1NTM0ZGZjMjJh
ODM3YzVjMWQ5YmUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTMw
MSw3ICszMDEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCB1bmJsb2NrQWNjZXNzaWJpbGl0eVNlcnZl
cihjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmKTsKICNpZiBFTkFCTEUoQ0ZQUkVGU19E
SVJFQ1RfTU9ERSkKICAgICB2b2lkIG5vdGlmeVByZWZlcmVuY2VzQ2hhbmdlZChjb25zdCBTdHJp
bmcmIGRvbWFpbiwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IE9wdGlvbmFsPFN0cmluZz4mIGVu
Y29kZWRWYWx1ZSk7Ci0gICAgdm9pZCB1bmJsb2NrUHJlZmVyZW5jZVNlcnZpY2UoY29uc3QgU2Fu
ZGJveEV4dGVuc2lvbjo6SGFuZGxlJik7CisgICAgdm9pZCB1bmJsb2NrUHJlZmVyZW5jZVNlcnZp
Y2UoU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXkmJik7CiAjZW5kaWYKICNlbmRpZgogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4
IDFmNTgwZDU1Mjg5ZWVhZDY1ZTZlNWU1ZjBhM2E1NzkzY2Y3ODRmZDUuLjZmZmFmYTY2ZWNmMWRh
ODdkMTNjYjRiN2FlY2UxYTg4YzhlODFkNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0xNjksNyArMTY5LDcgQEAgbWVzc2FnZXMg
LT4gV2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZlciBOb3RSZWZDb3VudGVkIHsKICAgICBVbmJsb2Nr
QWNjZXNzaWJpbGl0eVNlcnZlcihXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBoYW5k
bGUpCiAjaWYgRU5BQkxFKENGUFJFRlNfRElSRUNUX01PREUpCiAgICAgTm90aWZ5UHJlZmVyZW5j
ZXNDaGFuZ2VkKFN0cmluZyBkb21haW4sIFN0cmluZyBrZXksIE9wdGlvbmFsPFN0cmluZz4gZW5j
b2RlZFZhbHVlKQotICAgIFVuYmxvY2tQcmVmZXJlbmNlU2VydmljZShXZWJLaXQ6OlNhbmRib3hF
eHRlbnNpb246OkhhbmRsZSBoYW5kbGUpCisgICAgVW5ibG9ja1ByZWZlcmVuY2VTZXJ2aWNlKFdl
YktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXkgaGFuZGxlQXJyYXkpCiAjZW5kaWYK
ICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2Vi
UHJvY2Vzc0NvY29hLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nl
c3NDb2NvYS5tbQppbmRleCA0ZmVlYTVkZDc3ZDI1OWJhYzFhMGMyMGU0ZDQwMGE3NjE3N2ExODcx
Li5lNmZmOGM5N2YzMTZiMTc3YWFiOGU4NjVmZTgwMmZiYjQ5Y2M3ODIxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KQEAgLTM0MCw4
ICszNDAsMTIgQEAgdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNz
KFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmEKICAgICAgICAgU2FuZGJveEV4dGVu
c2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5KHBhcmFtZXRlcnMubWVkaWFFeHRlbnNpb25IYW5kbGVz
W2ldKTsKIAogI2lmIEVOQUJMRShDRlBSRUZTX0RJUkVDVF9NT0RFKQotICAgIGlmIChwYXJhbWV0
ZXJzLnByZWZlcmVuY2VzRXh0ZW5zaW9uSGFuZGxlKSB7Ci0gICAgICAgIFNhbmRib3hFeHRlbnNp
b246OmNvbnN1bWVQZXJtYW5lbnRseSgqcGFyYW1ldGVycy5wcmVmZXJlbmNlc0V4dGVuc2lvbkhh
bmRsZSk7CisgICAgaWYgKHBhcmFtZXRlcnMucHJlZmVyZW5jZXNFeHRlbnNpb25IYW5kbGVzKSB7
CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcGFyYW1ldGVycy5wcmVmZXJlbmNlc0V4
dGVuc2lvbkhhbmRsZXMtPnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICBib29sIG9rID0gU2Fu
ZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5KHBhcmFtZXRlcnMucHJlZmVyZW5jZXNF
eHRlbnNpb25IYW5kbGVzLT5hdChpKSk7CisgICAgICAgICAgICBBU1NFUlRfVU5VU0VEKG9rLCBv
ayk7CisgICAgICAgIH0KKwogICAgICAgICBfQ0ZQcmVmc1NldERpcmVjdE1vZGVFbmFibGVkKGZh
bHNlKTsKICAgICB9CiAjZW5kaWYKQEAgLTk0OSwxMCArOTUzLDEzIEBAIHZvaWQgV2ViUHJvY2Vz
czo6bm90aWZ5UHJlZmVyZW5jZXNDaGFuZ2VkKGNvbnN0IFN0cmluZyYgZG9tYWluLCBjb25zdCBT
dHJpbmcmIGtlCiAgICAgW2RlZmF1bHRzIHNldE9iamVjdDpvYmplY3QgZm9yS2V5OmtleV07CiB9
CiAKLXZvaWQgV2ViUHJvY2Vzczo6dW5ibG9ja1ByZWZlcmVuY2VTZXJ2aWNlKGNvbnN0IFNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZSYgaGFuZGxlKQordm9pZCBXZWJQcm9jZXNzOjp1bmJsb2NrUHJl
ZmVyZW5jZVNlcnZpY2UoU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXkmJiBoYW5kbGVBcnJh
eSkKIHsKLSAgICBib29sIG9rID0gU2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5
KGhhbmRsZSk7Ci0gICAgQVNTRVJUX1VOVVNFRChvaywgb2spOworICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgaGFuZGxlQXJyYXkuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgYm9vbCBvayA9IFNh
bmRib3hFeHRlbnNpb246OmNvbnN1bWVQZXJtYW5lbnRseShoYW5kbGVBcnJheVtpXSk7CisgICAg
ICAgIEFTU0VSVF9VTlVTRUQob2ssIG9rKTsKKyAgICB9CisKICAgICBfQ0ZQcmVmc1NldERpcmVj
dE1vZGVFbmFibGVkKGZhbHNlKTsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluCmluZGV4IGE2MjRhNmRlOWZiNTBk
YjAzYTA3NTRmYWM4MmI0ZGVmZGNiOWMyNTcuLmE1ZGM4ZjJlMDIxOWI5NDkzYmY3NTU2YjRmNmM5
MWZkN2UxOGU2MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb20uYXBw
bGUuV2ViUHJvY2Vzcy5zYi5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29tLmFw
cGxlLldlYlByb2Nlc3Muc2IuaW4KQEAgLTkxMiw2ICs5MTIsOSBAQAogICAgICAgICAgICAgImNv
bS5hcHBsZS5uZXNlc3Npb25tYW5hZ2VyIgogI2VuZGlmCiAgICAgICAgICAgICAiY29tLmFwcGxl
LndlYmluc3BlY3RvciIKKyNpZiBQTEFURk9STShNQUNDQVRBTFlTVCkKKyAgICAgICAgICAgICJj
b20uYXBwbGUuY2ZwcmVmc2QuYWdlbnQiCisjZW5kaWYKICAgICAgICAgICAgICJjb20uYXBwbGUu
Y2ZwcmVmc2QuZGFlbW9uIgogICAgICAgICAgICAgImNvbS5hcHBsZS50Y2NkIgogICAgICAgICAg
ICAgImNvbS5hcHBsZS5sc2QubWFwZGIiCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397763</attachid>
            <date>2020-04-27 16:41:41 -0700</date>
            <delta_ts>2020-04-27 17:12:51 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-211100-20200427164140.patch</filename>
            <type>text/plain</type>
            <size>13090</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwNzY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGIwZjlkZTFkYmQ0NTBmN2Fm
MTQ1ZDhiNjAxMGNiYTBiZGRiMDhiYWYuLmRkZTY1NTY3MTUwMmQzOGUyZDM5OWY4NzczYmJjY2Jl
NDI3MWM3ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMjAtMDQtMjcgIEJyZW50IEZ1
bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CisKKyAgICAgICAgW01hY0NhdGFseXN0XSBEeW5h
bWljIGFjY2VzcyB0byBhY2Nlc3NpYmlsaXR5IHNlcnZpY2VzIGlzIGluY29tcGxldGUgCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTExMDAKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzYyMTMzNDkxPgorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmlu
IEFkbGVyLgorCisgICAgICAgIFRlc3Rpbmcgb2YgTWFjQ2F0YWx5c3QtYmFzZWQgYXBwcyBzaG93
cyB0aGF0IHVzaW5nIGR5bmFtaWMgc2FuZGJveCBleHRlbnNpb25zIHRvIHN1cHBvcnQgYWNjZXNz
aWJpbGl0eQorICAgICAgICBmZWF0dXJlcyBpcyBpbmNvbXBsZXRlLiBJbiBhZGRpdGlvbiB0byB0
aGUgJ2NvbS5hcHBsZS5jZnByZWZzZC5kYWVtb24nIHByb2Nlc3MgbmVlZGVkIG9uIG1hY09TIGFu
ZCBpT1MsCisgICAgICAgIHdlIGFsc28gbmVlZCBhY2Nlc3MgdG8gJ2NvbS5hcHBsZS5jZnByZWZz
ZC5hZ2VudCcuCisKKyAgICAgICAgVGhpcyBjYW4gb25seSBiZSB0ZXN0ZWQgbWFudWFsbHkgaW4g
YSBNYWNDYXRseXN0IGJ1aWxkLCB0aG91Z2ggZXhpc3RpbmcgYWNjZXNzaWJpbGl0eSB0ZXN0cyB3
aWxsCisgICAgICAgIGNvbmZpcm0gbm8gcmVncmVzc2lvbnMgaW4gaU9TIGFuZCBtYWNPUy4KKwor
ICAgICAgICBUaGUgY2hhbmdlcyBhcmUgYXMgZm9sbG93czoKKyAgICAgICAgMS4gQ2hhbmdlIFdl
YlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OnByZWZlcmVuY2VzRXh0ZW5zaW9uSGFuZGxlIHRv
IGEgaGFuZGxlIGFycmF5LgorICAgICAgICAyLiBSZWdpc3RlciAoYW5kIHVucmVnaXN0ZXIpIGZv
ciB0aGUgYWNjZXNzaWJpbGl0eSBlbmFibGVkIG5vdGlmaWNhdGlvbiBpbiBNYWNDYXRhbHlzdC4K
KyAgICAgICAgMy4gT3BlbiBhIGNvbm5lY3Rpb24gJ2NvbS5hcHBsZS5jZnByZWZzZC5hZ2VudCcg
KGluIGFkZGl0aW9uIHRvIHRoZSBleGlzdGluZyAnY29tLmFwcGxlLmNmcHJlZnNkLmRhZW1vbicp
CisgICAgICAgICAgIGluIE1hY0NhdGFseXN0IGJ1aWxkcy4KKworICAgICAgICAqIFNoYXJlZC9X
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQv
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2Nv
YS9XZWJQcm9jZXNzUG9vbENvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9v
bDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NQb29sOjpyZWdpc3Rlck5vdGlmaWNhdGlvbk9ic2VydmVycyk6CisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3NQb29sOjp1bnJlZ2lzdGVyTm90aWZpY2F0aW9uT2JzZXJ2ZXJzKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2EubW06CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6dW5ibG9ja1ByZWZlcmVuY2VTZXJ2aWNlSWZOZWVk
ZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29h
L1dlYlByb2Nlc3NDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZv
cm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnVu
YmxvY2tQcmVmZXJlbmNlU2VydmljZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb20uYXBwbGUu
V2ViUHJvY2Vzcy5zYi5pbjoKKwogMjAyMC0wNC0yNyAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFt
QGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIE1hY0NhdGFseXN0IGJ1aWxkIGZpeCBh
ZnRlciByMjYwNzM5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRleCAxZTk3ODUzOGQ1Yzg1ODg3NWEzNGIyMjg3OTFk
Y2MyYzNkYzA2ZTZkLi44YjJmODUzYzA4Y2YwOGQ3ODQyMGUxZGYzNGUzMmZiMmI4YWVlZmFkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmNwcApAQCAtMTk0LDcgKzE5NCw3IEBAIHZvaWQgV2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICAvLyBGSVhN
RSgyMDc3MTYpOiBUaGUgZm9sbG93aW5nIHNob3VsZCBiZSByZW1vdmVkIHdoZW4gdGhlIEdQVSBw
cm9jZXNzIGlzIGNvbXBsZXRlLgogICAgIGVuY29kZXIgPDwgbWVkaWFFeHRlbnNpb25IYW5kbGVz
OwogI2lmIEVOQUJMRShDRlBSRUZTX0RJUkVDVF9NT0RFKQotICAgIGVuY29kZXIgPDwgcHJlZmVy
ZW5jZXNFeHRlbnNpb25IYW5kbGU7CisgICAgZW5jb2RlciA8PCBwcmVmZXJlbmNlc0V4dGVuc2lv
bkhhbmRsZXM7CiAjZW5kaWYKICNlbmRpZgogCkBAIC01NDQsMTEgKzU0NCwxMSBAQCBib29sIFdl
YlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIs
IFdlYlByb2Nlc3NDcmVhdAogICAgIC8vIEZJWE1FKDIwNzcxNik6IEVuZCByZWdpb24gdG8gcmVt
b3ZlLgogCiAjaWYgRU5BQkxFKENGUFJFRlNfRElSRUNUX01PREUpCi0gICAgT3B0aW9uYWw8T3B0
aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPj4gcHJlZmVyZW5jZXNFeHRlbnNpb25IYW5k
bGU7Ci0gICAgZGVjb2RlciA+PiBwcmVmZXJlbmNlc0V4dGVuc2lvbkhhbmRsZTsKLSAgICBpZiAo
IXByZWZlcmVuY2VzRXh0ZW5zaW9uSGFuZGxlKQorICAgIE9wdGlvbmFsPE9wdGlvbmFsPFNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZUFycmF5Pj4gcHJlZmVyZW5jZXNFeHRlbnNpb25IYW5kbGVzOwor
ICAgIGRlY29kZXIgPj4gcHJlZmVyZW5jZXNFeHRlbnNpb25IYW5kbGVzOworICAgIGlmICghcHJl
ZmVyZW5jZXNFeHRlbnNpb25IYW5kbGVzKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcGFy
YW1ldGVycy5wcmVmZXJlbmNlc0V4dGVuc2lvbkhhbmRsZSA9IFdURk1vdmUoKnByZWZlcmVuY2Vz
RXh0ZW5zaW9uSGFuZGxlKTsKKyAgICBwYXJhbWV0ZXJzLnByZWZlcmVuY2VzRXh0ZW5zaW9uSGFu
ZGxlcyA9IFdURk1vdmUoKnByZWZlcmVuY2VzRXh0ZW5zaW9uSGFuZGxlcyk7CiAjZW5kaWYKICNl
bmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmgKaW5kZXggZjg2NGFiYzJmZGY5MmQ5MTNhNjVmNTgwYTA0YTIzODkxMGFiNTli
ZS4uNGE1NWNkNWRkY2VmOTc4NWNhMzcxMGNhZmIyZWY4NjQ2ZmZiNGM4NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAt
MjMxLDcgKzIzMSw3IEBAIHN0cnVjdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICNp
ZiBQTEFURk9STShDT0NPQSkKICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSBtZWRp
YUV4dGVuc2lvbkhhbmRsZXM7IC8vIEZJWE1FKDIwNzcxNik6IFJlbW92ZSB3aGVuIEdQVSBwcm9j
ZXNzIGlzIGNvbXBsZXRlLgogI2lmIEVOQUJMRShDRlBSRUZTX0RJUkVDVF9NT0RFKQotICAgIE9w
dGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4gcHJlZmVyZW5jZXNFeHRlbnNpb25IYW5k
bGU7CisgICAgT3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXk+IHByZWZlcmVu
Y2VzRXh0ZW5zaW9uSGFuZGxlczsKICNlbmRpZgogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCmluZGV4IDBjODVm
ODI5N2RjODcwNmNmZDk3MDZiNTBjNTdiZmM0NTViNWVkODAuLjZiODUwYzcxMzE1YzhhYTNiOGFl
OGI4NmNmNzVjYjI5NDg5ZTM2YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQpAQCAtMTAzLDcgKzEwMyw3IEBAIE5TU3Ry
aW5nICpXZWJLaXRMb2NhbENhY2hlRGVmYXVsdHNLZXkgPSBAIldlYktpdExvY2FsQ2FjaGUiOwog
TlNTdHJpbmcgKldlYktpdEpTQ0pJVEVuYWJsZWREZWZhdWx0c0tleSA9IEAiV2ViS2l0SlNDSklU
RW5hYmxlZERlZmF1bHRzS2V5IjsKIE5TU3RyaW5nICpXZWJLaXRKU0NGVExKSVRFbmFibGVkRGVm
YXVsdHNLZXkgPSBAIldlYktpdEpTQ0ZUTEpJVEVuYWJsZWREZWZhdWx0c0tleSI7CiAKLSNpZiAh
UExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkgfHwgUExBVEZP
Uk0oTUFDQ0FUQUxZU1QpCiBzdGF0aWMgTlNTdHJpbmcgKldlYktpdEFwcGxpY2F0aW9uRGlkQ2hh
bmdlQWNjZXNzaWJpbGl0eUVuaGFuY2VkVXNlckludGVyZmFjZU5vdGlmaWNhdGlvbiA9IEAiTlNB
cHBsaWNhdGlvbkRpZENoYW5nZUFjY2Vzc2liaWxpdHlFbmhhbmNlZFVzZXJJbnRlcmZhY2VOb3Rp
ZmljYXRpb24iOwogI2VuZGlmCiAKQEAgLTQ1Niw5ICs0NTYsMjAgQEAgdm9pZCBXZWJQcm9jZXNz
UG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzUHJveHkm
IHByb2Nlc3MKIAogI2lmIEVOQUJMRShDRlBSRUZTX0RJUkVDVF9NT0RFKSAmJiBQTEFURk9STShJ
T1NfRkFNSUxZKQogICAgIGlmIChfQVhTQXBwbGljYXRpb25BY2Nlc3NpYmlsaXR5RW5hYmxlZCgp
KSB7Ci0gICAgICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBwcmVmZXJlbmNlc0V4dGVuc2lv
bkhhbmRsZTsKLSAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExv
b2t1cCgiY29tLmFwcGxlLmNmcHJlZnNkLmRhZW1vbiIsIFdURjo6bnVsbG9wdCwgcHJlZmVyZW5j
ZXNFeHRlbnNpb25IYW5kbGUpOwotICAgICAgICBwYXJhbWV0ZXJzLnByZWZlcmVuY2VzRXh0ZW5z
aW9uSGFuZGxlID0gV1RGTW92ZShwcmVmZXJlbmNlc0V4dGVuc2lvbkhhbmRsZSk7CisgICAgICAg
IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5IHByZWZlcmVuY2VzRXh0ZW5zaW9uSGFuZGxl
czsKKyAgICAgICAgCisgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgY2hhciogc2Vydmlj
ZXNbXSA9IHsKKyAgICAgICAgICAgICJjb20uYXBwbGUuY2ZwcmVmc2QuYWdlbnQiLAorICAgICAg
ICAgICAgImNvbS5hcHBsZS5jZnByZWZzZC5kYWVtb24iCisgICAgICAgIH07CisgICAgICAgIGF1
dG8gc2l6ZSA9IHN0ZDo6c2l6ZShzZXJ2aWNlcyk7CisgICAgICAgIHByZWZlcmVuY2VzRXh0ZW5z
aW9uSGFuZGxlcy5hbGxvY2F0ZShzaXplKTsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBzaXplOyArK2kpIHsKKyAgICAgICAgICAgIGJvb2wgb2sgPSBTYW5kYm94RXh0ZW5zaW9uOjpj
cmVhdGVIYW5kbGVGb3JNYWNoTG9va3VwKHNlcnZpY2VzW2ldLCBXVEY6Om51bGxvcHQsIHByZWZl
cmVuY2VzRXh0ZW5zaW9uSGFuZGxlc1tpXSk7CisgICAgICAgICAgICBBU1NFUlRfVU5VU0VEKG9r
LCBvayk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHBhcmFtZXRlcnMucHJlZmVyZW5j
ZXNFeHRlbnNpb25IYW5kbGVzID0gV1RGTW92ZShwcmVmZXJlbmNlc0V4dGVuc2lvbkhhbmRsZXMp
OwogICAgIH0KICNlbmRpZgogfQpAQCAtNjg1LDYgKzY5Niw5IEBAIHZvaWQgV2ViUHJvY2Vzc1Bv
b2w6OnJlZ2lzdGVyTm90aWZpY2F0aW9uT2JzZXJ2ZXJzKCkKICAgICBDRk5vdGlmaWNhdGlvbkNl
bnRlckFkZE9ic2VydmVyKENGTm90aWZpY2F0aW9uQ2VudGVyR2V0RGFyd2luTm90aWZ5Q2VudGVy
KCksIHRoaXMsIHJlbW90ZVdlYkluc3BlY3RvckVuYWJsZWRDYWxsYmFjaywgc3RhdGljX2Nhc3Q8
Q0ZTdHJpbmdSZWY+KENGU1RSKFdJUlNlcnZpY2VFbmFibGVkTm90aWZpY2F0aW9uKSksIG51bGxw
dHIsIENGTm90aWZpY2F0aW9uU3VzcGVuc2lvbkJlaGF2aW9yQ29hbGVzY2UpOwogI2VuZGlmCiAj
ZW5kaWYgLy8gUExBVEZPUk0oSU9TKQorI2VuZGlmIC8vICFQTEFURk9STShJT1NfRkFNSUxZKQor
CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBtX2FjY2Vzc2liaWxpdHlFbmFibGVkT2Jz
ZXJ2ZXIgPSBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVy
Rm9yTmFtZTooX19icmlkZ2UgaWQpa0FYU0FwcGxpY2F0aW9uQWNjZXNzaWJpbGl0eUVuYWJsZWRO
b3RpZmljYXRpb24gb2JqZWN0Om5pbCBxdWV1ZTpbTlNPcGVyYXRpb25RdWV1ZSBjdXJyZW50UXVl
dWVdIHVzaW5nQmxvY2s6XihOU05vdGlmaWNhdGlvbiAqKSB7CiAgICAgICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgbV9wcm9jZXNzZXMuc2l6ZSgpOyArK2kpIHsKICNpZiBFTkFCTEUoQ0ZQUkVG
U19ESVJFQ1RfTU9ERSkKQEAgLTY5OCw3ICs3MTIsNyBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpy
ZWdpc3Rlck5vdGlmaWNhdGlvbk9ic2VydmVycygpCiAgICAgICAgIHN0YXJ0T2JzZXJ2aW5nUHJl
ZmVyZW5jZUNoYW5nZXMoKTsKICAgICB9XTsKICNlbmRpZgotI2VuZGlmIC8vICFQTEFURk9STShJ
T1NfRkFNSUxZKQorI2VuZGlmCiB9CiAKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnVucmVnaXN0ZXJO
b3RpZmljYXRpb25PYnNlcnZlcnMoKQpAQCAtNzIxLDggKzczNSwxMiBAQCB2b2lkIFdlYlByb2Nl
c3NQb29sOjp1bnJlZ2lzdGVyTm90aWZpY2F0aW9uT2JzZXJ2ZXJzKCkKICAgICBDRk5vdGlmaWNh
dGlvbkNlbnRlclJlbW92ZU9ic2VydmVyKENGTm90aWZpY2F0aW9uQ2VudGVyR2V0RGFyd2luTm90
aWZ5Q2VudGVyKCksIHRoaXMsIENGU1RSKFdJUlNlcnZpY2VFbmFibGVkTm90aWZpY2F0aW9uKSwg
bnVsbHB0cik7CiAjZW5kaWYKICNlbmRpZiAvLyBQTEFURk9STShJT1MpCi0gICAgW1tOU05vdGlm
aWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjptX2FjY2Vzc2liaWxp
dHlFbmFibGVkT2JzZXJ2ZXIuZ2V0KCldOwogI2VuZGlmIC8vICFQTEFURk9STShJT1NfRkFNSUxZ
KQorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVy
IGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOm1fYWNjZXNzaWJpbGl0eUVuYWJsZWRPYnNl
cnZlci5nZXQoKV07CisjZW5kaWYKKwogICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVs
dENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6bV9hY3RpdmF0aW9uT2JzZXJ2ZXIuZ2V0KCldOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUHJv
eHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94
eUNvY29hLm1tCmluZGV4IDQ1NDhhYTM3N2E0YzZlYWVhNWI2ZTk3ZTQ1NTQxOGRjYjU5YjRmMjEu
Ljk5ODI5YWJlMmI0NDRiMjEyZjBhMWZmZmFhODM0N2JiODdiY2RjMTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tCkBA
IC0yMzksMTEgKzIzOSwxOSBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6dW5ibG9ja1ByZWZlcmVu
Y2VTZXJ2aWNlSWZOZWVkZWQoKQogICAgIGlmICghY2FuU2VuZE1lc3NhZ2UoKSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGhhbmRsZTsKLSAgICBpZiAo
IVNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS5j
ZnByZWZzZC5kYWVtb24iLCBjb25uZWN0aW9uKCkgPyBjb25uZWN0aW9uKCktPmdldEF1ZGl0VG9r
ZW4oKSA6IFdURjo6bnVsbG9wdCwgaGFuZGxlKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgc2Vu
ZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6VW5ibG9ja1ByZWZlcmVuY2VTZXJ2aWNlKGhhbmRsZSks
IDApOworICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5IGhhbmRsZUFycmF5OworICAg
IHN0YXRpYyBjb25zdGV4cHIgY29uc3QgY2hhciogc2VydmljZXNbXSA9IHsKKyAgICAgICAgImNv
bS5hcHBsZS5jZnByZWZzZC5hZ2VudCIsCisgICAgICAgICJjb20uYXBwbGUuY2ZwcmVmc2QuZGFl
bW9uIgorICAgIH07CisgICAgYXV0byBzaXplID0gc3RkOjpzaXplKHNlcnZpY2VzKTsKKyAgICBo
YW5kbGVBcnJheS5hbGxvY2F0ZShzaXplKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNp
emU7ICsraSkgeworICAgICAgICBpZiAoIVNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZv
ck1hY2hMb29rdXAoc2VydmljZXNbaV0sIGNvbm5lY3Rpb24oKSA/IGNvbm5lY3Rpb24oKS0+Z2V0
QXVkaXRUb2tlbigpIDogV1RGOjpudWxsb3B0LCBoYW5kbGVBcnJheVtpXSkpCisgICAgICAgICAg
ICByZXR1cm47CisgICAgfQorICAgIAorICAgIHNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OlVu
YmxvY2tQcmVmZXJlbmNlU2VydmljZShoYW5kbGVBcnJheSksIDApOwogICAgIG1faGFzU2VudE1l
c3NhZ2VUb1VuYmxvY2tQcmVmZXJlbmNlU2VydmljZSA9IHRydWU7CiB9CiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4IDRhMzc2ZWNhZjMxODFiZDVmNjUwNGJk
NmNiMDlmNTA0NDQyZDU1NjMuLjZiMzk5YzNhZTAyNGE3NzYyMjU1MzRkZmMyMmE4MzdjNWMxZDli
ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtMzAxLDcgKzMwMSw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIHVuYmxvY2tBY2Nlc3NpYmlsaXR5U2VydmVyKGNvbnN0IFNh
bmRib3hFeHRlbnNpb246OkhhbmRsZSYpOwogI2lmIEVOQUJMRShDRlBSRUZTX0RJUkVDVF9NT0RF
KQogICAgIHZvaWQgbm90aWZ5UHJlZmVyZW5jZXNDaGFuZ2VkKGNvbnN0IFN0cmluZyYgZG9tYWlu
LCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgT3B0aW9uYWw8U3RyaW5nPiYgZW5jb2RlZFZhbHVl
KTsKLSAgICB2b2lkIHVuYmxvY2tQcmVmZXJlbmNlU2VydmljZShjb25zdCBTYW5kYm94RXh0ZW5z
aW9uOjpIYW5kbGUmKTsKKyAgICB2b2lkIHVuYmxvY2tQcmVmZXJlbmNlU2VydmljZShTYW5kYm94
RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSYmKTsKICNlbmRpZgogI2VuZGlmCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggMWY1ODBkNTUy
ODllZWFkNjVlNmU1ZTVmMGEzYTU3OTNjZjc4NGZkNS4uNmZmYWZhNjZlY2YxZGE4N2QxM2NiNGI3
YWVjZTFhODhjOGU4MWQ3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MubWVzc2FnZXMuaW4KQEAgLTE2OSw3ICsxNjksNyBAQCBtZXNzYWdlcyAtPiBXZWJQcm9j
ZXNzIExlZ2FjeVJlY2VpdmVyIE5vdFJlZkNvdW50ZWQgewogICAgIFVuYmxvY2tBY2Nlc3NpYmls
aXR5U2VydmVyKFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGhhbmRsZSkKICNpZiBF
TkFCTEUoQ0ZQUkVGU19ESVJFQ1RfTU9ERSkKICAgICBOb3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQo
U3RyaW5nIGRvbWFpbiwgU3RyaW5nIGtleSwgT3B0aW9uYWw8U3RyaW5nPiBlbmNvZGVkVmFsdWUp
Ci0gICAgVW5ibG9ja1ByZWZlcmVuY2VTZXJ2aWNlKFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6
SGFuZGxlIGhhbmRsZSkKKyAgICBVbmJsb2NrUHJlZmVyZW5jZVNlcnZpY2UoV2ViS2l0OjpTYW5k
Ym94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSBoYW5kbGVBcnJheSkKICNlbmRpZgogI2VuZGlmCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29j
b2EubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1t
CmluZGV4IDRmZWVhNWRkNzdkMjU5YmFjMWEwYzIwZTRkNDAwYTc2MTc3YTE4NzEuLmU2ZmY4Yzk3
ZjMxNmIxNzdhYWI4ZTg2NWZlODAyZmJiNDljYzc4MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQpAQCAtMzQwLDggKzM0MCwxMiBA
QCB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYQogICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjb25z
dW1lUGVybWFuZW50bHkocGFyYW1ldGVycy5tZWRpYUV4dGVuc2lvbkhhbmRsZXNbaV0pOwogCiAj
aWYgRU5BQkxFKENGUFJFRlNfRElSRUNUX01PREUpCi0gICAgaWYgKHBhcmFtZXRlcnMucHJlZmVy
ZW5jZXNFeHRlbnNpb25IYW5kbGUpIHsKLSAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y29uc3Vt
ZVBlcm1hbmVudGx5KCpwYXJhbWV0ZXJzLnByZWZlcmVuY2VzRXh0ZW5zaW9uSGFuZGxlKTsKKyAg
ICBpZiAocGFyYW1ldGVycy5wcmVmZXJlbmNlc0V4dGVuc2lvbkhhbmRsZXMpIHsKKyAgICAgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBwYXJhbWV0ZXJzLnByZWZlcmVuY2VzRXh0ZW5zaW9uSGFu
ZGxlcy0+c2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIGJvb2wgb2sgPSBTYW5kYm94RXh0ZW5z
aW9uOjpjb25zdW1lUGVybWFuZW50bHkocGFyYW1ldGVycy5wcmVmZXJlbmNlc0V4dGVuc2lvbkhh
bmRsZXMtPmF0KGkpKTsKKyAgICAgICAgICAgIEFTU0VSVF9VTlVTRUQob2ssIG9rKTsKKyAgICAg
ICAgfQorCiAgICAgICAgIF9DRlByZWZzU2V0RGlyZWN0TW9kZUVuYWJsZWQoZmFsc2UpOwogICAg
IH0KICNlbmRpZgpAQCAtOTQ5LDEwICs5NTMsMTMgQEAgdm9pZCBXZWJQcm9jZXNzOjpub3RpZnlQ
cmVmZXJlbmNlc0NoYW5nZWQoY29uc3QgU3RyaW5nJiBkb21haW4sIGNvbnN0IFN0cmluZyYga2UK
ICAgICBbZGVmYXVsdHMgc2V0T2JqZWN0Om9iamVjdCBmb3JLZXk6a2V5XTsKIH0KIAotdm9pZCBX
ZWJQcm9jZXNzOjp1bmJsb2NrUHJlZmVyZW5jZVNlcnZpY2UoY29uc3QgU2FuZGJveEV4dGVuc2lv
bjo6SGFuZGxlJiBoYW5kbGUpCit2b2lkIFdlYlByb2Nlc3M6OnVuYmxvY2tQcmVmZXJlbmNlU2Vy
dmljZShTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSYmIGhhbmRsZUFycmF5KQogewotICAg
IGJvb2wgb2sgPSBTYW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkoaGFuZGxlKTsK
LSAgICBBU1NFUlRfVU5VU0VEKG9rLCBvayk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBo
YW5kbGVBcnJheS5zaXplKCk7ICsraSkgeworICAgICAgICBib29sIG9rID0gU2FuZGJveEV4dGVu
c2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5KGhhbmRsZUFycmF5W2ldKTsKKyAgICAgICAgQVNTRVJU
X1VOVVNFRChvaywgb2spOworICAgIH0KKwogICAgIF9DRlByZWZzU2V0RGlyZWN0TW9kZUVuYWJs
ZWQoZmFsc2UpOwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvY29tLmFwcGxlLldlYlByb2Nlc3Muc2IuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29tLmFwcGxlLldlYlByb2Nlc3Muc2IuaW4KaW5kZXggYTYyNGE2ZGU5ZmI1MGRiMDNhMDc1NGZh
YzgyYjRkZWZkY2I5YzI1Ny4uNmJlZmY5ZDdiOTBkZjg1ZDYxNDRlYmVhOTJiYWNhYjc5NTRkOGJh
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9j
ZXNzLnNiLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJv
Y2Vzcy5zYi5pbgpAQCAtOTEyLDYgKzkxMiw3IEBACiAgICAgICAgICAgICAiY29tLmFwcGxlLm5l
c2Vzc2lvbm1hbmFnZXIiCiAjZW5kaWYKICAgICAgICAgICAgICJjb20uYXBwbGUud2ViaW5zcGVj
dG9yIgorICAgICAgICAgICAgImNvbS5hcHBsZS5jZnByZWZzZC5hZ2VudCIKICAgICAgICAgICAg
ICJjb20uYXBwbGUuY2ZwcmVmc2QuZGFlbW9uIgogICAgICAgICAgICAgImNvbS5hcHBsZS50Y2Nk
IgogICAgICAgICAgICAgImNvbS5hcHBsZS5sc2QubWFwZGIiCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>