<?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>216584</bug_id>
          
          <creation_ts>2020-09-15 14:37:54 -0700</creation_ts>
          <short_desc>OfflineAudioContext constructor should not throw when given a bad buffer length</short_desc>
          <delta_ts>2020-09-16 09:01:26 -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>Web Audio</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>
          <dependson>216579</dependson>
    
    <dependson>216583</dependson>
    
    <dependson>216599</dependson>
          <blocked>212611</blocked>
    
    <blocked>216587</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>aperez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1688854</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-09-15 14:37:54 -0700</bug_when>
    <thetext>OfflineAudioContext constructor should not throw when given a bad buffer length. We should instead throw later on when trying to start rendering.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1688856</commentid>
    <comment_count>1</comment_count>
      <attachid>408864</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-09-15 14:40:25 -0700</bug_when>
    <thetext>Created attachment 408864
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1688902</commentid>
    <comment_count>2</comment_count>
      <attachid>408875</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-09-15 16:08:48 -0700</bug_when>
    <thetext>Created attachment 408875
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1688914</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-09-15 16:35:03 -0700</bug_when>
    <thetext>The GTK/WPE error does not make much sense to me. Maybe it needs a clean build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1689016</commentid>
    <comment_count>4</comment_count>
      <attachid>408875</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-09-15 23:56:41 -0700</bug_when>
    <thetext>Comment on attachment 408875
Patch

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

&gt; Source/WebCore/Modules/webaudio/OfflineAudioDestinationNode.cpp:44
&gt; +OfflineAudioDestinationNode::OfflineAudioDestinationNode(BaseAudioContext&amp; context, unsigned numberOfChannels, AudioBuffer* renderTarget)

could be a RefPtr&lt;AudioBuffer&gt;&amp;&amp;?

&gt; Source/WebCore/Modules/webaudio/WebKitOfflineAudioContext.cpp:39
&gt; +inline WebKitOfflineAudioContext::WebKitOfflineAudioContext(Document&amp; document, Ref&lt;AudioBuffer&gt;&amp;&amp; renderTarget)

inline not needed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1689017</commentid>
    <comment_count>5</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-09-15 23:57:09 -0700</bug_when>
    <thetext>retrying gtk build in case it works.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1689067</commentid>
    <comment_count>6</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2020-09-16 05:50:22 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #3)
&gt; The GTK/WPE error does not make much sense to me. Maybe it needs a clean
&gt; build.

It was a build issue masked by unified builds; after updating the patch
from bug #216599 it was possible for me to add this patch on top and have
builds complete for both the GTK and WPE ports.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1689071</commentid>
    <comment_count>7</comment_count>
      <attachid>408875</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-09-16 05:56:51 -0700</bug_when>
    <thetext>Comment on attachment 408875
Patch

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

&gt; Source/WebCore/Modules/webaudio/WebKitAudioContext.cpp:88
&gt; +WebKitAudioContext::WebKitAudioContext(Document&amp; document, Ref&lt;AudioBuffer&gt;&amp;&amp; renderTarget)
&gt; +    : BaseAudioContext(document, renderTarget-&gt;numberOfChannels(), WTFMove(renderTarget))

I think this could be problematic, is it defined that the move happens after the -&gt;numberOfChannels(). This has caused issues in the past with GCC. I think it would be safer if this receives the number of channels as a parameter too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1689089</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-09-16 08:03:49 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #7)
&gt; Comment on attachment 408875 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=408875&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/webaudio/WebKitAudioContext.cpp:88
&gt; &gt; +WebKitAudioContext::WebKitAudioContext(Document&amp; document, Ref&lt;AudioBuffer&gt;&amp;&amp; renderTarget)
&gt; &gt; +    : BaseAudioContext(document, renderTarget-&gt;numberOfChannels(), WTFMove(renderTarget))
&gt; 
&gt; I think this could be problematic, is it defined that the move happens after
&gt; the -&gt;numberOfChannels(). This has caused issues in the past with GCC. I
&gt; think it would be safer if this receives the number of channels as a
&gt; parameter too.

A WTFMove() is just a cast though so it should not matter, even if the order is not guaranteed. The parameter type is an rvalue reference so the move constructor will not run until the constructor actually saves it into its data member.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1689094</commentid>
    <comment_count>9</comment_count>
      <attachid>408923</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-09-16 08:28:31 -0700</bug_when>
    <thetext>Created attachment 408923
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1689100</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-09-16 08:37:06 -0700</bug_when>
    <thetext>(In reply to Adrian Perez from comment #6)
&gt; (In reply to Chris Dumez from comment #3)
&gt; &gt; The GTK/WPE error does not make much sense to me. Maybe it needs a clean
&gt; &gt; build.
&gt; 
&gt; It was a build issue masked by unified builds; after updating the patch
&gt; from bug #216599 it was possible for me to add this patch on top and have
&gt; builds complete for both the GTK and WPE ports.

It does not look like it did the trick. GTK/WPE bots still seem unhappy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1689103</commentid>
    <comment_count>11</comment_count>
      <attachid>408924</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-09-16 08:48:31 -0700</bug_when>
    <thetext>Created attachment 408924
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1689106</commentid>
    <comment_count>12</comment_count>
      <attachid>408924</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-09-16 08:53:44 -0700</bug_when>
    <thetext>Comment on attachment 408924
Patch

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

&gt; Source/WebCore/Modules/webaudio/WebKitOfflineAudioContext.h:35
&gt; +    ~WebKitOfflineAudioContext();

Looks like adding this destructor fixed the WPE build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1689112</commentid>
    <comment_count>13</comment_count>
      <attachid>408924</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-09-16 09:00:25 -0700</bug_when>
    <thetext>Comment on attachment 408924
Patch

Clearing flags on attachment: 408924

Committed r267147: &lt;https://trac.webkit.org/changeset/267147&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1689113</commentid>
    <comment_count>14</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-09-16 09:00:27 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1689114</commentid>
    <comment_count>15</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-09-16 09:01:26 -0700</bug_when>
    <thetext>&lt;rdar://problem/68992445&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408864</attachid>
            <date>2020-09-15 14:40:25 -0700</date>
            <delta_ts>2020-09-15 16:08:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216584-20200915144024.patch</filename>
            <type>text/plain</type>
            <size>10582</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3MDk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGI5MWM1MDYxOWFhNzdj
ZWIxMzhkNzM3NjYxMjQyZjZiNWY5M2FiYy4uMTkwOGUyOTgyNDE5ODdhN2ExMjJlN2RiYmM3NDE5
MTg5YmUwNTFlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIwLTA5LTE1ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgT2ZmbGluZUF1ZGlvQ29udGV4
dCBjb25zdHJ1Y3RvciBzaG91bGQgbm90IHRocm93IHdoZW4gZ2l2ZW4gYSBiYWQgYnVmZmVyIGxl
bmd0aAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE2
NTg0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgT2Zm
bGluZUF1ZGlvQ29udGV4dCBjb25zdHJ1Y3RvciBzaG91bGQgbm90IHRocm93IHdoZW4gZ2l2ZW4g
YSBiYWQgYnVmZmVyIGxlbmd0aC4gV2Ugc2hvdWxkCisgICAgICAgIGluc3RlYWQgdGhyb3cgbGF0
ZXIgb24gd2hlbiB0cnlpbmcgdG8gc3RhcnQgcmVuZGVyaW5nLgorCisgICAgICAgIE5vIG5ldyB0
ZXN0cywgcmViYXNlbGluZWQgZXhpc3RpbmcgdGVzdC4KKworICAgICAgICAqIE1vZHVsZXMvd2Vi
YXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCYXNlQXVkaW9D
b250ZXh0OjpCYXNlQXVkaW9Db250ZXh0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0Jh
c2VBdWRpb0NvbnRleHQuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRp
b0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6T2ZmbGluZUF1ZGlvQ29udGV4dDo6T2Zm
bGluZUF1ZGlvQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpPZmZsaW5lQXVkaW9Db250ZXh0
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6T2ZmbGluZUF1ZGlvQ29udGV4dDo6c3RhcnRP
ZmZsaW5lUmVuZGVyaW5nKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRp
b0NvbnRleHQuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rlc3Rp
bmF0aW9uTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpPZmZsaW5lQXVkaW9EZXN0aW5hdGlv
bk5vZGU6Ok9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpP
ZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGU6Om1heENoYW5uZWxDb3VudCBjb25zdCk6CisKIDIw
MjAtMDktMTUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBTY3Jp
cHRQcm9jZXNzb3JOb2RlIHNob3VsZCB0aHJvdyB3aGVuIHRyeWluZyB0byBjaGFuZ2UgaXRzIGNo
YW5uZWwgY291bnQgb3IgY2hhbm5lbCBjb3VudCBtb2RlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmNwcAppbmRleCBlMTJhNTQ5NDBl
MTU3ZGRlNzcyNDZhYmY5YmIwM2I0MjIyMzQ3MzA4Li44YTgyZTgzMWYxZmE2NzRlYzg5MzNiYWRi
NTNkNzk5MGI1NzdlMTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0Jhc2VBdWRpb0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5jcHAKQEAgLTE1Miw3ICsxNTIsNyBAQCBCYXNlQXVkaW9D
b250ZXh0OjpCYXNlQXVkaW9Db250ZXh0KERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgQXVkaW9D
b250ZXh0T3B0aW9ucwogfQogCiAvLyBDb25zdHJ1Y3RvciBmb3Igb2ZmbGluZSAobm9uLXJlYWx0
aW1lKSByZW5kZXJpbmcuCi1CYXNlQXVkaW9Db250ZXh0OjpCYXNlQXVkaW9Db250ZXh0KERvY3Vt
ZW50JiBkb2N1bWVudCwgQXVkaW9CdWZmZXIqIHJlbmRlclRhcmdldCkKK0Jhc2VBdWRpb0NvbnRl
eHQ6OkJhc2VBdWRpb0NvbnRleHQoRG9jdW1lbnQmIGRvY3VtZW50LCBSZWZQdHI8QXVkaW9CdWZm
ZXI+JiYgcmVuZGVyVGFyZ2V0KQogICAgIDogQWN0aXZlRE9NT2JqZWN0KGRvY3VtZW50KQogI2lm
ICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgICwgbV9sb2dnZXIoZG9jdW1lbnQubG9nZ2VyKCkp
CkBAIC0xNjAsNyArMTYwLDcgQEAgQmFzZUF1ZGlvQ29udGV4dDo6QmFzZUF1ZGlvQ29udGV4dChE
b2N1bWVudCYgZG9jdW1lbnQsIEF1ZGlvQnVmZmVyKiByZW5kZXJUYXJnZXQKICNlbmRpZgogICAg
ICwgbV9pc09mZmxpbmVDb250ZXh0KHRydWUpCiAgICAgLCBtX21lZGlhU2Vzc2lvbihQbGF0Zm9y
bU1lZGlhU2Vzc2lvbjo6Y3JlYXRlKFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVk
TWFuYWdlcigpLCAqdGhpcykpCi0gICAgLCBtX3JlbmRlclRhcmdldChyZW5kZXJUYXJnZXQpCisg
ICAgLCBtX3JlbmRlclRhcmdldChXVEZNb3ZlKHJlbmRlclRhcmdldCkpCiB7CiAgICAgY29uc3Ry
dWN0Q29tbW9uKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQmFzZUF1ZGlvQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9C
YXNlQXVkaW9Db250ZXh0LmgKaW5kZXggZGMxMmIwMTYxNjRlMzI2N2Y5NDYzMjg2NzcyZDY2ZWZk
OTk0Yjk2ZC4uOTE5ZjY1NDJlMjdhZmQzZjg2NzY1MzBiZDNhYTE1MjdkOGU4ZmUzNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmgK
QEAgLTMxNSw3ICszMTUsNyBAQCBwdWJsaWM6CiAKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBC
YXNlQXVkaW9Db250ZXh0KERvY3VtZW50JiwgY29uc3QgQXVkaW9Db250ZXh0T3B0aW9ucyYgPSB7
IH0pOwotICAgIEJhc2VBdWRpb0NvbnRleHQoRG9jdW1lbnQmLCBBdWRpb0J1ZmZlciogcmVuZGVy
VGFyZ2V0KTsKKyAgICBCYXNlQXVkaW9Db250ZXh0KERvY3VtZW50JiwgUmVmUHRyPEF1ZGlvQnVm
ZmVyPiYmIHJlbmRlclRhcmdldCk7CiAgICAgCiAgICAgdm9pZCBjbGVhclBlbmRpbmdBY3Rpdml0
eSgpOwogICAgIHZvaWQgbWFrZVBlbmRpbmdBY3Rpdml0eSgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9Db250ZXh0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4dC5jcHAKaW5kZXgg
N2M3NTQxYWY4MDlkMzBkMzJmOGE4YjlhMTg3YzdlYjlhZmFjMzZjMy4uMDZiNDYyNGI2OTFiYmE3
NzkzZDM2NjM1NzFmMDI0ODcyOWRjYTlmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9Db250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQuY3BwCkBAIC0zOCw4ICszOCw4
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKE9m
ZmxpbmVBdWRpb0NvbnRleHQpOwogCi1pbmxpbmUgT2ZmbGluZUF1ZGlvQ29udGV4dDo6T2ZmbGlu
ZUF1ZGlvQ29udGV4dChEb2N1bWVudCYgZG9jdW1lbnQsIEF1ZGlvQnVmZmVyKiByZW5kZXJUYXJn
ZXQpCi0gICAgOiBCYXNlQXVkaW9Db250ZXh0KGRvY3VtZW50LCByZW5kZXJUYXJnZXQpCitpbmxp
bmUgT2ZmbGluZUF1ZGlvQ29udGV4dDo6T2ZmbGluZUF1ZGlvQ29udGV4dChEb2N1bWVudCYgZG9j
dW1lbnQsIFJlZlB0cjxBdWRpb0J1ZmZlcj4mJiByZW5kZXJUYXJnZXQpCisgICAgOiBCYXNlQXVk
aW9Db250ZXh0KGRvY3VtZW50LCBXVEZNb3ZlKHJlbmRlclRhcmdldCkpCiB7CiB9CiAKQEAgLTU0
LDExICs1NCw5IEBAIEV4Y2VwdGlvbk9yPFJlZjxPZmZsaW5lQXVkaW9Db250ZXh0Pj4gT2ZmbGlu
ZUF1ZGlvQ29udGV4dDo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvCiAgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBTeW50YXhFcnJvciwgImxlbmd0aCBjYW5ub3QgYmUgMCJfcyB9OwogICAgIGlmICgh
aXNTdXBwb3J0ZWRTYW1wbGVSYXRlKHNhbXBsZVJhdGUpKQogICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgU3ludGF4RXJyb3IsICJzYW1wbGVSYXRlIGlzIG5vdCBpbiByYW5nZSJfcyB9OwotICAg
IGF1dG8gcmVuZGVyVGFyZ2V0ID0gQXVkaW9CdWZmZXI6OmNyZWF0ZShudW1iZXJPZkNoYW5uZWxz
LCBsZW5ndGgsIHNhbXBsZVJhdGUpOwotICAgIGlmICghcmVuZGVyVGFyZ2V0KQotICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgU3ludGF4RXJyb3IsICJVbmFibGUgdG8gY3JlYXRlIEF1ZGlvQnVm
ZmVyIl9zIH07CiAKLSAgICBhdXRvIGF1ZGlvQ29udGV4dCA9IGFkb3B0UmVmKCpuZXcgT2ZmbGlu
ZUF1ZGlvQ29udGV4dChkb3duY2FzdDxEb2N1bWVudD4oY29udGV4dCksIHJlbmRlclRhcmdldC5n
ZXQoKSkpOworICAgIGF1dG8gcmVuZGVyVGFyZ2V0ID0gQXVkaW9CdWZmZXI6OmNyZWF0ZShudW1i
ZXJPZkNoYW5uZWxzLCBsZW5ndGgsIHNhbXBsZVJhdGUpOworICAgIGF1dG8gYXVkaW9Db250ZXh0
ID0gYWRvcHRSZWYoKm5ldyBPZmZsaW5lQXVkaW9Db250ZXh0KGRvd25jYXN0PERvY3VtZW50Pihj
b250ZXh0KSwgV1RGTW92ZShyZW5kZXJUYXJnZXQpKSk7CiAgICAgYXVkaW9Db250ZXh0LT5zdXNw
ZW5kSWZOZWVkZWQoKTsKICAgICByZXR1cm4gYXVkaW9Db250ZXh0OwogfQpAQCAtMTA2LDYgKzEw
NCwxMSBAQCB2b2lkIE9mZmxpbmVBdWRpb0NvbnRleHQ6OnN0YXJ0T2ZmbGluZVJlbmRlcmluZyhS
ZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
KyAgICBpZiAoIXJlbmRlclRhcmdldCgpKSB7CisgICAgICAgIHByb21pc2UtPnJlamVjdChFeGNl
cHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkZhaWxlZCB0byBjcmVhdGUgYXVkaW8gYnVmZmVy
Il9zIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgbGF6eUluaXRpYWxpemUoKTsK
IAogICAgIGF1dG8gcmVzdWx0ID0gZGVzdGluYXRpb24oKS0+c3RhcnRSZW5kZXJpbmcoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29u
dGV4dC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9Db250
ZXh0LmgKaW5kZXggMzg3ZGE0ZTg3ZjgyNTQ2NzM0NDM3ZTMwNjk2MGFiOTM1NmExODVlOS4uNTE1
ZWUyNjFjOTg2ZjAzMTcwMzE4ZTFiOWQ1NTg2ODA2MGYzNWZhYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9Db250ZXh0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9Db250ZXh0LmgKQEAgLTcy
LDcgKzcyLDcgQEAgcHVibGljOgogICAgIH07CiAKIHByaXZhdGU6Ci0gICAgT2ZmbGluZUF1ZGlv
Q29udGV4dChEb2N1bWVudCYsIEF1ZGlvQnVmZmVyKiByZW5kZXJUYXJnZXQpOworICAgIE9mZmxp
bmVBdWRpb0NvbnRleHQoRG9jdW1lbnQmLCBSZWZQdHI8QXVkaW9CdWZmZXI+JiYgcmVuZGVyVGFy
Z2V0KTsKIAogICAgIHZvaWQgZGlkRmluaXNoT2ZmbGluZVJlbmRlcmluZyhFeGNlcHRpb25PcjxS
ZWY8QXVkaW9CdWZmZXI+PiYmKSBmaW5hbDsKICAgICB2b2lkIGRpZFN1c3BlbmRSZW5kZXJpbmco
c2l6ZV90IGZyYW1lKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcAppbmRleCAz
YzAxMTE0MzFiZjY4Njk3YmRkYjQ4MjM2NGUyNmYxYzU5YWRhYzAyLi5mNzIzY2NkZTE5ZTNkYTBj
MWQzNGE4OTdjMzVjN2Q2NDRkZjE0MzFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3Bw
CkBAIC00MCwxNCArNDAsMTYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogV1RGX01BS0VfSVNPX0FM
TE9DQVRFRF9JTVBMKE9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZSk7CiAgICAgCiBjb25zdCBz
aXplX3QgT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlOjpyZW5kZXJRdWFudHVtU2l6ZSA9IDEy
ODsKK2NvbnN0ZXhwciB1bnNpZ25lZCBkZWZhdWx0TnVtYmVyT2ZDaGFubmVscyB7IDIgfTsKIAog
T2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlOjpPZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUo
QmFzZUF1ZGlvQ29udGV4dCYgY29udGV4dCwgQXVkaW9CdWZmZXIqIHJlbmRlclRhcmdldCkKICAg
ICA6IEF1ZGlvRGVzdGluYXRpb25Ob2RlKGNvbnRleHQpCiAgICAgLCBtX3JlbmRlclRhcmdldChy
ZW5kZXJUYXJnZXQpCi0gICAgLCBtX2ZyYW1lc1RvUHJvY2VzcyhyZW5kZXJUYXJnZXQtPmxlbmd0
aCgpKQorICAgICwgbV9mcmFtZXNUb1Byb2Nlc3MocmVuZGVyVGFyZ2V0ID8gcmVuZGVyVGFyZ2V0
LT5sZW5ndGgoKSA6IDApCiB7Ci0gICAgbV9yZW5kZXJCdXMgPSBBdWRpb0J1czo6Y3JlYXRlKHJl
bmRlclRhcmdldC0+bnVtYmVyT2ZDaGFubmVscygpLCByZW5kZXJRdWFudHVtU2l6ZSk7Ci0gICAg
aW5pdGlhbGl6ZURlZmF1bHROb2RlT3B0aW9ucyhyZW5kZXJUYXJnZXQtPm51bWJlck9mQ2hhbm5l
bHMoKSwgQ2hhbm5lbENvdW50TW9kZTo6RXhwbGljaXQsIENoYW5uZWxJbnRlcnByZXRhdGlvbjo6
U3BlYWtlcnMpOworICAgIHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMgPSByZW5kZXJUYXJnZXQg
PyByZW5kZXJUYXJnZXQtPm51bWJlck9mQ2hhbm5lbHMoKSA6IGRlZmF1bHROdW1iZXJPZkNoYW5u
ZWxzOworICAgIG1fcmVuZGVyQnVzID0gQXVkaW9CdXM6OmNyZWF0ZShudW1iZXJPZkNoYW5uZWxz
LCByZW5kZXJRdWFudHVtU2l6ZSk7CisgICAgaW5pdGlhbGl6ZURlZmF1bHROb2RlT3B0aW9ucyhu
dW1iZXJPZkNoYW5uZWxzLCBDaGFubmVsQ291bnRNb2RlOjpFeHBsaWNpdCwgQ2hhbm5lbEludGVy
cHJldGF0aW9uOjpTcGVha2Vycyk7CiB9CiAKIE9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6
fk9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZSgpCkBAIC01Nyw3ICs1OSw3IEBAIE9mZmxpbmVB
dWRpb0Rlc3RpbmF0aW9uTm9kZTo6fk9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZSgpCiAKIHVu
c2lnbmVkIE9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6bWF4Q2hhbm5lbENvdW50KCkgY29u
c3QKIHsKLSAgICByZXR1cm4gbV9yZW5kZXJUYXJnZXQtPm51bWJlck9mQ2hhbm5lbHMoKTsKKyAg
ICByZXR1cm4gbV9yZW5kZXJUYXJnZXQgPyBtX3JlbmRlclRhcmdldC0+bnVtYmVyT2ZDaGFubmVs
cygpIDogZGVmYXVsdE51bWJlck9mQ2hhbm5lbHM7CiB9CiAKIHZvaWQgT2ZmbGluZUF1ZGlvRGVz
dGluYXRpb25Ob2RlOjppbml0aWFsaXplKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkMjE2YzliY2IzNmE3NDkwNWNhNWM3
MzAwZjM3Yjg2MzNhM2E4NThlLi4zYTMwOGUzYmJmNzlmMWZhMWJhN2IzMDJlYmM3ZDM5ZDVmNDdj
Y2I4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMDktMTUgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBPZmZsaW5lQXVkaW9Db250ZXh0IGNvbnN0cnVjdG9y
IHNob3VsZCBub3QgdGhyb3cgd2hlbiBnaXZlbiBhIGJhZCBidWZmZXIgbGVuZ3RoCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTY1ODQKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWJhc2VsaW5lIHRlc3Qg
bm93IHRoYXQgbW9yZSBjaGVja3MgYXJlIHBhc3NpbmcuCisKKyAgICAgICAgKiB3ZWJhdWRpby9k
b20tZXhjZXB0aW9ucy1leHBlY3RlZC50eHQ6CisKIDIwMjAtMDktMTUgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBTY3JpcHRQcm9jZXNzb3JOb2RlIHNob3VsZCB0
aHJvdyB3aGVuIHRyeWluZyB0byBjaGFuZ2UgaXRzIGNoYW5uZWwgY291bnQgb3IgY2hhbm5lbCBj
b3VudCBtb2RlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9kb20tZXhjZXB0aW9u
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9kb20tZXhjZXB0aW9ucy1leHBl
Y3RlZC50eHQKaW5kZXggZDY2NWMzZjE0ZjU4OGZhMjcxYTdhODY4ZDIyN2ZmNDBlMWEyZjMzZS4u
MDU2NTViZmNmMzAwMDY1NDVhZGZkMDFjZmZkYTAxMWRmZWRkMGQ2YSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvd2ViYXVkaW8vZG9tLWV4Y2VwdGlvbnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL3dlYmF1ZGlvL2RvbS1leGNlcHRpb25zLWV4cGVjdGVkLnR4dApAQCAtMTYsNyArMTYs
NyBAQCBQQVNTIEV4ZWN1dGluZyAiYXVkaW9wYXJhbSIKIFBBU1MgRXhlY3V0aW5nICJiaXF1YWQi
IAogUEFTUyBFeGVjdXRpbmcgIm9mZmxpbmUtYXVkaW8tY29udGV4dCIgCiBQQVNTIEV4ZWN1dGlu
ZyAiaW52YWxpZC1vZmZsaW5lLWF1ZGlvLWNvbnRleHQtcGFyYW1ldGVycyIgCi1GQUlMIEV4ZWN1
dGluZyAiaW52YWxpZC1mcmFtZS1sZW5ndGgiIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVj
dGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogdW5kZWZpbmVkIGlzIG5vdCBhbiBv
YmplY3QgKGV2YWx1YXRpbmcgJ3Rlc3RDb250ZXh0LnN0YXJ0UmVuZGVyaW5nJykiCitQQVNTIEV4
ZWN1dGluZyAiaW52YWxpZC1mcmFtZS1sZW5ndGgiIAogUEFTUyBFeGVjdXRpbmcgIndhdmVzaGFw
ZXIiIAogUEFTUyBFeGVjdXRpbmcgImF1ZGlvLWJ1ZmZlci1zb3VyY2UiIAogUEFTUyBFeGVjdXRp
bmcgIm9zY2lsbGF0b3IiIApAQCAtMTQzLDcgKzE0Myw5IEBAIFBBU1MgICBuZXcgT2ZmbGluZUF1
ZGlvQ29udGV4dCgxLCAxMDAsIDFlNikgdGhyZXcgU3ludGF4RXJyb3I6ICJzYW1wbGVSYXRlIGlz
IG5vCiBQQVNTICAgbmV3IE9mZmxpbmVBdWRpb0NvbnRleHQoMSwgMCwgNDQxMDApIHRocmV3IFN5
bnRheEVycm9yOiAibGVuZ3RoIGNhbm5vdCBiZSAwIi4gCiBQQVNTIDwgW2ludmFsaWQtb2ZmbGlu
ZS1hdWRpby1jb250ZXh0LXBhcmFtZXRlcnNdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFs
IDUgYXNzZXJ0aW9ucykgCiBQQVNTID4gW2ludmFsaWQtZnJhbWUtbGVuZ3RoXSAgCi1GQUlMIFgg
dGVzdENvbnRleHQgPSBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4dCgxLCAtODgyMDAwMDAwMDAwMDAs
IDQ0MTAwKSBpbmNvcnJlY3RseSB0aHJldyBTeW50YXhFcnJvcjogIlVuYWJsZSB0byBjcmVhdGUg
QXVkaW9CdWZmZXIiLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1Mg
ICB0ZXN0Q29udGV4dCA9IG5ldyBPZmZsaW5lQXVkaW9Db250ZXh0KDEsIC04ODIwMDAwMDAwMDAw
MCwgNDQxMDApIGRpZCBub3QgdGhyb3cgYW4gZXhjZXB0aW9uLiAKK1BBU1MgICB0ZXN0Q29udGV4
dC5zdGFydFJlbmRlcmluZygpIHJlamVjdGVkIGNvcnJlY3RseSB3aXRoIEludmFsaWRTdGF0ZUVy
cm9yOiBGYWlsZWQgdG8gY3JlYXRlIGF1ZGlvIGJ1ZmZlci4gCitQQVNTIDwgW2ludmFsaWQtZnJh
bWUtbGVuZ3RoXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAyIGFzc2VydGlvbnMpIAog
UEFTUyA+IFt3YXZlc2hhcGVyXSAgCiBQQVNTICAgbm9kZS5vdmVyc2FtcGxlID0gIjl4IiBkaWQg
bm90IHRocm93IGFuIGV4Y2VwdGlvbi4gCiBQQVNTICAgbm9kZS5vdmVyc2FtcGxlIGlzIGVxdWFs
IHRvIG5vbmUuIApAQCAtMjU4LDUgKzI2MCw1IEBAIFBBU1MgICBvc2Mubm90ZU9mZiBpcyBlcXVh
bCB0byB1bmRlZmluZWQuCiBQQVNTICAgc291cmNlLm5vdGVPbiBpcyBlcXVhbCB0byB1bmRlZmlu
ZWQuIAogUEFTUyAgIHNvdXJjZS5ub3RlT2ZmIGlzIGVxdWFsIHRvIHVuZGVmaW5lZC4gCiBQQVNT
IDwgW21pc2NdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDQgYXNzZXJ0aW9ucykgCi1G
QUlMICMgQVVESVQgVEFTSyBSVU5ORVIgRklOSVNIRUQ6IDIgb3V0IG9mIDI0IHRhc2tzIHdlcmUg
ZmFpbGVkLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgIyBBVURJ
VCBUQVNLIFJVTk5FUiBGSU5JU0hFRDogMSBvdXQgb2YgMjQgdGFza3Mgd2VyZSBmYWlsZWQuIGFz
c2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408875</attachid>
            <date>2020-09-15 16:08:48 -0700</date>
            <delta_ts>2020-09-16 08:28:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216584-20200915160847.patch</filename>
            <type>text/plain</type>
            <size>17182</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3MTA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzYxYjAwOTExNmIwMjBh
MjY1YWIxNWM1NGJhYjQxYWIzZWUzNDg3MS4uNmZjYjM2MjgxMzNkZWI4MGM1NzkzZWZkZDU0NDFh
YzgwMWEzZGNkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIwLTA5LTE1ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgT2ZmbGluZUF1ZGlvQ29udGV4
dCBjb25zdHJ1Y3RvciBzaG91bGQgbm90IHRocm93IHdoZW4gZ2l2ZW4gYSBiYWQgYnVmZmVyIGxl
bmd0aAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE2
NTg0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgT2Zm
bGluZUF1ZGlvQ29udGV4dCBjb25zdHJ1Y3RvciBzaG91bGQgbm90IHRocm93IHdoZW4gZ2l2ZW4g
YSBiYWQgYnVmZmVyIGxlbmd0aC4gV2Ugc2hvdWxkCisgICAgICAgIGluc3RlYWQgdGhyb3cgbGF0
ZXIgb24gd2hlbiB0cnlpbmcgdG8gc3RhcnQgcmVuZGVyaW5nLgorCisgICAgICAgIE5vIG5ldyB0
ZXN0cywgcmViYXNlbGluZWQgZXhpc3RpbmcgdGVzdC4KKworICAgICAgICAqIE1vZHVsZXMvd2Vi
YXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCYXNlQXVkaW9D
b250ZXh0OjpCYXNlQXVkaW9Db250ZXh0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0Jh
c2VBdWRpb0NvbnRleHQuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRp
b0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6T2ZmbGluZUF1ZGlvQ29udGV4dDo6T2Zm
bGluZUF1ZGlvQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpPZmZsaW5lQXVkaW9Db250ZXh0
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6T2ZmbGluZUF1ZGlvQ29udGV4dDo6c3RhcnRP
ZmZsaW5lUmVuZGVyaW5nKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRp
b0NvbnRleHQuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rlc3Rp
bmF0aW9uTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpPZmZsaW5lQXVkaW9EZXN0aW5hdGlv
bk5vZGU6Ok9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpP
ZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGU6Om1heENoYW5uZWxDb3VudCBjb25zdCk6CisKIDIw
MjAtMDktMTUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBTY3Jp
cHRQcm9jZXNzb3JOb2RlIHNob3VsZCB0aHJvdyB3aGVuIHRyeWluZyB0byBjaGFuZ2UgaXRzIGNo
YW5uZWwgY291bnQgb3IgY2hhbm5lbCBjb3VudCBtb2RlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAKaW5kZXggZmUwYWNlYzE5YjQxNjdkYjVh
YTY0ODVhMTQ2NTU3ZDA0MzljMzg4YS4uMWQ1MmZkZWZjMmNmNTM4OWE5NmMyYTViM2Y3N2VjNzk5
M2VhNmI0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9D
b250ZXh0LmNwcApAQCAtOTksMTIgKzk5LDYgQEAgQXVkaW9Db250ZXh0OjpBdWRpb0NvbnRleHQo
RG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBBdWRpb0NvbnRleHRPcHRpb25zJiBjb250ZXgKIHsK
IH0KIAotLy8gQ29uc3RydWN0b3IgZm9yIG9mZmxpbmUgKG5vbi1yZWFsdGltZSkgcmVuZGVyaW5n
LgotQXVkaW9Db250ZXh0OjpBdWRpb0NvbnRleHQoRG9jdW1lbnQmIGRvY3VtZW50LCBBdWRpb0J1
ZmZlciogcmVuZGVyVGFyZ2V0KQotICAgIDogQmFzZUF1ZGlvQ29udGV4dChkb2N1bWVudCwgcmVu
ZGVyVGFyZ2V0KQotewotfQotCiBkb3VibGUgQXVkaW9Db250ZXh0OjpiYXNlTGF0ZW5jeSgpCiB7
CiAgICAgbGF6eUluaXRpYWxpemUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvQ29udGV4dC5oCmluZGV4IGQwNjk1NzE0YTZhNTBjNGQxMmY5MWRhYjdmYzNlYzM0
Yzg4MTI1ZWMuLjY3OWNjYWQyOTAyODVlNzkyZmM5NDJmNDI1MDhlMTI3MjY2ZmUxMmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaApAQCAtNTks
NyArNTksNiBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgQXVkaW9Db250ZXh0KERvY3VtZW50
JiwgY29uc3QgQXVkaW9Db250ZXh0T3B0aW9ucyYpOwotICAgIEF1ZGlvQ29udGV4dChEb2N1bWVu
dCYsIEF1ZGlvQnVmZmVyKiByZW5kZXJUYXJnZXQpOwogfTsKIAogfSAvLyBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmNw
cAppbmRleCBlMTJhNTQ5NDBlMTU3ZGRlNzcyNDZhYmY5YmIwM2I0MjIyMzQ3MzA4Li40MjUzZjA1
MWRkYjcxMmFjOWNhMTUyMjIxMjE0MGQ1NjYzZDQ1NTFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5jcHAKQEAgLTE1Miw3ICsx
NTIsNyBAQCBCYXNlQXVkaW9Db250ZXh0OjpCYXNlQXVkaW9Db250ZXh0KERvY3VtZW50JiBkb2N1
bWVudCwgY29uc3QgQXVkaW9Db250ZXh0T3B0aW9ucwogfQogCiAvLyBDb25zdHJ1Y3RvciBmb3Ig
b2ZmbGluZSAobm9uLXJlYWx0aW1lKSByZW5kZXJpbmcuCi1CYXNlQXVkaW9Db250ZXh0OjpCYXNl
QXVkaW9Db250ZXh0KERvY3VtZW50JiBkb2N1bWVudCwgQXVkaW9CdWZmZXIqIHJlbmRlclRhcmdl
dCkKK0Jhc2VBdWRpb0NvbnRleHQ6OkJhc2VBdWRpb0NvbnRleHQoRG9jdW1lbnQmIGRvY3VtZW50
LCB1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxzLCBSZWZQdHI8QXVkaW9CdWZmZXI+JiYgcmVuZGVy
VGFyZ2V0KQogICAgIDogQWN0aXZlRE9NT2JqZWN0KGRvY3VtZW50KQogI2lmICFSRUxFQVNFX0xP
R19ESVNBQkxFRAogICAgICwgbV9sb2dnZXIoZG9jdW1lbnQubG9nZ2VyKCkpCkBAIC0xNjAsMTIg
KzE2MCwxMiBAQCBCYXNlQXVkaW9Db250ZXh0OjpCYXNlQXVkaW9Db250ZXh0KERvY3VtZW50JiBk
b2N1bWVudCwgQXVkaW9CdWZmZXIqIHJlbmRlclRhcmdldAogI2VuZGlmCiAgICAgLCBtX2lzT2Zm
bGluZUNvbnRleHQodHJ1ZSkKICAgICAsIG1fbWVkaWFTZXNzaW9uKFBsYXRmb3JtTWVkaWFTZXNz
aW9uOjpjcmVhdGUoUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCks
ICp0aGlzKSkKLSAgICAsIG1fcmVuZGVyVGFyZ2V0KHJlbmRlclRhcmdldCkKKyAgICAsIG1fcmVu
ZGVyVGFyZ2V0KFdURk1vdmUocmVuZGVyVGFyZ2V0KSkKIHsKICAgICBjb25zdHJ1Y3RDb21tb24o
KTsKIAogICAgIC8vIENyZWF0ZSBhIG5ldyBkZXN0aW5hdGlvbiBmb3Igb2ZmbGluZSByZW5kZXJp
bmcuCi0gICAgbV9kZXN0aW5hdGlvbk5vZGUgPSBPZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGU6
OmNyZWF0ZSgqdGhpcywgbV9yZW5kZXJUYXJnZXQuZ2V0KCkpOworICAgIG1fZGVzdGluYXRpb25O
b2RlID0gT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlOjpjcmVhdGUoKnRoaXMsIG51bWJlck9m
Q2hhbm5lbHMsIG1fcmVuZGVyVGFyZ2V0LmdldCgpKTsKIH0KIAogdm9pZCBCYXNlQXVkaW9Db250
ZXh0Ojpjb25zdHJ1Y3RDb21tb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuaAppbmRleCBkYzEyYjAxNjE2NGUzMjY3Zjk0NjMyODY3
NzJkNjZlZmQ5OTRiOTZkLi5iYzg4NTk2N2E3YTQzNWM0YjkxYjM5M2VlZWVmYzQ5MTkzNjUxNDJi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0Nv
bnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0Nv
bnRleHQuaApAQCAtMzE1LDcgKzMxNSw3IEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIGV4
cGxpY2l0IEJhc2VBdWRpb0NvbnRleHQoRG9jdW1lbnQmLCBjb25zdCBBdWRpb0NvbnRleHRPcHRp
b25zJiA9IHsgfSk7Ci0gICAgQmFzZUF1ZGlvQ29udGV4dChEb2N1bWVudCYsIEF1ZGlvQnVmZmVy
KiByZW5kZXJUYXJnZXQpOworICAgIEJhc2VBdWRpb0NvbnRleHQoRG9jdW1lbnQmLCB1bnNpZ25l
ZCBudW1iZXJPZkNoYW5uZWxzLCBSZWZQdHI8QXVkaW9CdWZmZXI+JiYgcmVuZGVyVGFyZ2V0KTsK
ICAgICAKICAgICB2b2lkIGNsZWFyUGVuZGluZ0FjdGl2aXR5KCk7CiAgICAgdm9pZCBtYWtlUGVu
ZGluZ0FjdGl2aXR5KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9PZmZsaW5lQXVkaW9Db250ZXh0LmNwcAppbmRleCA3Yzc1NDFhZjgwOWQzMGQzMmY4YThi
OWExODdjN2ViOWFmYWMzNmMzLi5iMmU4YTMyYjU2YmYxZjk2MzZlNGRkNzhkOGZlMzcyYjM3ZmZk
NDgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVB
dWRpb0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2Zm
bGluZUF1ZGlvQ29udGV4dC5jcHAKQEAgLTM4LDggKzM4LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoT2ZmbGluZUF1ZGlvQ29udGV4dCk7CiAK
LWlubGluZSBPZmZsaW5lQXVkaW9Db250ZXh0OjpPZmZsaW5lQXVkaW9Db250ZXh0KERvY3VtZW50
JiBkb2N1bWVudCwgQXVkaW9CdWZmZXIqIHJlbmRlclRhcmdldCkKLSAgICA6IEJhc2VBdWRpb0Nv
bnRleHQoZG9jdW1lbnQsIHJlbmRlclRhcmdldCkKK2lubGluZSBPZmZsaW5lQXVkaW9Db250ZXh0
OjpPZmZsaW5lQXVkaW9Db250ZXh0KERvY3VtZW50JiBkb2N1bWVudCwgdW5zaWduZWQgbnVtYmVy
T2ZDaGFubmVscywgUmVmUHRyPEF1ZGlvQnVmZmVyPiYmIHJlbmRlclRhcmdldCkKKyAgICA6IEJh
c2VBdWRpb0NvbnRleHQoZG9jdW1lbnQsIG51bWJlck9mQ2hhbm5lbHMsIFdURk1vdmUocmVuZGVy
VGFyZ2V0KSkKIHsKIH0KIApAQCAtNTQsMTEgKzU0LDkgQEAgRXhjZXB0aW9uT3I8UmVmPE9mZmxp
bmVBdWRpb0NvbnRleHQ+PiBPZmZsaW5lQXVkaW9Db250ZXh0OjpjcmVhdGUoU2NyaXB0RXhlY3V0
aW8KICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFN5bnRheEVycm9yLCAibGVuZ3RoIGNhbm5v
dCBiZSAwIl9zIH07CiAgICAgaWYgKCFpc1N1cHBvcnRlZFNhbXBsZVJhdGUoc2FtcGxlUmF0ZSkp
CiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBTeW50YXhFcnJvciwgInNhbXBsZVJhdGUgaXMg
bm90IGluIHJhbmdlIl9zIH07Ci0gICAgYXV0byByZW5kZXJUYXJnZXQgPSBBdWRpb0J1ZmZlcjo6
Y3JlYXRlKG51bWJlck9mQ2hhbm5lbHMsIGxlbmd0aCwgc2FtcGxlUmF0ZSk7Ci0gICAgaWYgKCFy
ZW5kZXJUYXJnZXQpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBTeW50YXhFcnJvciwgIlVu
YWJsZSB0byBjcmVhdGUgQXVkaW9CdWZmZXIiX3MgfTsKIAotICAgIGF1dG8gYXVkaW9Db250ZXh0
ID0gYWRvcHRSZWYoKm5ldyBPZmZsaW5lQXVkaW9Db250ZXh0KGRvd25jYXN0PERvY3VtZW50Pihj
b250ZXh0KSwgcmVuZGVyVGFyZ2V0LmdldCgpKSk7CisgICAgYXV0byByZW5kZXJUYXJnZXQgPSBB
dWRpb0J1ZmZlcjo6Y3JlYXRlKG51bWJlck9mQ2hhbm5lbHMsIGxlbmd0aCwgc2FtcGxlUmF0ZSk7
CisgICAgYXV0byBhdWRpb0NvbnRleHQgPSBhZG9wdFJlZigqbmV3IE9mZmxpbmVBdWRpb0NvbnRl
eHQoZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpLCBudW1iZXJPZkNoYW5uZWxzLCBXVEZNb3Zl
KHJlbmRlclRhcmdldCkpKTsKICAgICBhdWRpb0NvbnRleHQtPnN1c3BlbmRJZk5lZWRlZCgpOwog
ICAgIHJldHVybiBhdWRpb0NvbnRleHQ7CiB9CkBAIC0xMDYsNiArMTA0LDExIEBAIHZvaWQgT2Zm
bGluZUF1ZGlvQ29udGV4dDo6c3RhcnRPZmZsaW5lUmVuZGVyaW5nKFJlZjxEZWZlcnJlZFByb21p
c2U+JiYgcHJvbWlzZSkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIGlmICghcmVuZGVy
VGFyZ2V0KCkpIHsKKyAgICAgICAgcHJvbWlzZS0+cmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRT
dGF0ZUVycm9yLCAiRmFpbGVkIHRvIGNyZWF0ZSBhdWRpbyBidWZmZXIiX3MgfSk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKICAgICBsYXp5SW5pdGlhbGl6ZSgpOwogCiAgICAgYXV0byByZXN1
bHQgPSBkZXN0aW5hdGlvbigpLT5zdGFydFJlbmRlcmluZygpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9Db250ZXh0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQuaAppbmRleCAzODdk
YTRlODdmODI1NDY3MzQ0MzdlMzA2OTYwYWI5MzU2YTE4NWU5Li5iY2IxZDkyYjY4NDA2YWNjZmZi
NzExYjAyMGI3ZDI5NjMwZThlOTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQuaApAQCAtNzIsNyArNzIsNyBAQCBwdWJs
aWM6CiAgICAgfTsKIAogcHJpdmF0ZToKLSAgICBPZmZsaW5lQXVkaW9Db250ZXh0KERvY3VtZW50
JiwgQXVkaW9CdWZmZXIqIHJlbmRlclRhcmdldCk7CisgICAgT2ZmbGluZUF1ZGlvQ29udGV4dChE
b2N1bWVudCYsIHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMsIFJlZlB0cjxBdWRpb0J1ZmZlcj4m
JiByZW5kZXJUYXJnZXQpOwogCiAgICAgdm9pZCBkaWRGaW5pc2hPZmZsaW5lUmVuZGVyaW5nKEV4
Y2VwdGlvbk9yPFJlZjxBdWRpb0J1ZmZlcj4+JiYpIGZpbmFsOwogICAgIHZvaWQgZGlkU3VzcGVu
ZFJlbmRlcmluZyhzaXplX3QgZnJhbWUpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUu
Y3BwCmluZGV4IDNjMDExMTQzMWJmNjg2OTdiZGRiNDgyMzY0ZTI2ZjFjNTlhZGFjMDIuLmJlNjM2
YWE2ODQzNDRmZjhiYWQyNzc4NGQzNmI1NzY4ZGZiYWZjZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0
aW9uTm9kZS5jcHAKQEAgLTQxLDEzICs0MSwxNCBAQCBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lN
UEwoT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlKTsKICAgICAKIGNvbnN0IHNpemVfdCBPZmZs
aW5lQXVkaW9EZXN0aW5hdGlvbk5vZGU6OnJlbmRlclF1YW50dW1TaXplID0gMTI4OwogCi1PZmZs
aW5lQXVkaW9EZXN0aW5hdGlvbk5vZGU6Ok9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZShCYXNl
QXVkaW9Db250ZXh0JiBjb250ZXh0LCBBdWRpb0J1ZmZlciogcmVuZGVyVGFyZ2V0KQorT2ZmbGlu
ZUF1ZGlvRGVzdGluYXRpb25Ob2RlOjpPZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUoQmFzZUF1
ZGlvQ29udGV4dCYgY29udGV4dCwgdW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscywgQXVkaW9CdWZm
ZXIqIHJlbmRlclRhcmdldCkKICAgICA6IEF1ZGlvRGVzdGluYXRpb25Ob2RlKGNvbnRleHQpCisg
ICAgLCBtX251bWJlck9mQ2hhbm5lbHMobnVtYmVyT2ZDaGFubmVscykKICAgICAsIG1fcmVuZGVy
VGFyZ2V0KHJlbmRlclRhcmdldCkKLSAgICAsIG1fZnJhbWVzVG9Qcm9jZXNzKHJlbmRlclRhcmdl
dC0+bGVuZ3RoKCkpCisgICAgLCBtX2ZyYW1lc1RvUHJvY2VzcyhyZW5kZXJUYXJnZXQgPyByZW5k
ZXJUYXJnZXQtPmxlbmd0aCgpIDogMCkKIHsKLSAgICBtX3JlbmRlckJ1cyA9IEF1ZGlvQnVzOjpj
cmVhdGUocmVuZGVyVGFyZ2V0LT5udW1iZXJPZkNoYW5uZWxzKCksIHJlbmRlclF1YW50dW1TaXpl
KTsKLSAgICBpbml0aWFsaXplRGVmYXVsdE5vZGVPcHRpb25zKHJlbmRlclRhcmdldC0+bnVtYmVy
T2ZDaGFubmVscygpLCBDaGFubmVsQ291bnRNb2RlOjpFeHBsaWNpdCwgQ2hhbm5lbEludGVycHJl
dGF0aW9uOjpTcGVha2Vycyk7CisgICAgbV9yZW5kZXJCdXMgPSBBdWRpb0J1czo6Y3JlYXRlKG51
bWJlck9mQ2hhbm5lbHMsIHJlbmRlclF1YW50dW1TaXplKTsKKyAgICBpbml0aWFsaXplRGVmYXVs
dE5vZGVPcHRpb25zKG51bWJlck9mQ2hhbm5lbHMsIENoYW5uZWxDb3VudE1vZGU6OkV4cGxpY2l0
LCBDaGFubmVsSW50ZXJwcmV0YXRpb246OlNwZWFrZXJzKTsKIH0KIAogT2ZmbGluZUF1ZGlvRGVz
dGluYXRpb25Ob2RlOjp+T2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlKCkKQEAgLTU3LDcgKzU4
LDcgQEAgT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlOjp+T2ZmbGluZUF1ZGlvRGVzdGluYXRp
b25Ob2RlKCkKIAogdW5zaWduZWQgT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlOjptYXhDaGFu
bmVsQ291bnQoKSBjb25zdAogewotICAgIHJldHVybiBtX3JlbmRlclRhcmdldC0+bnVtYmVyT2ZD
aGFubmVscygpOworICAgIHJldHVybiBtX251bWJlck9mQ2hhbm5lbHM7CiB9CiAKIHZvaWQgT2Zm
bGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlOjppbml0aWFsaXplKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0aW9u
Tm9kZS5oCmluZGV4IGY1NGQyZDllN2RhOGRlMDcwOGRlMmQ4ZmFlYzI4MjBiNWFjOGQzZWEuLjc5
MzNmYTcwODk3ZjAzODk0MTRiNGQ2YWQ4MmViYzc4YWViMzkxY2IgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9EZXN0aW5h
dGlvbk5vZGUuaApAQCAtMzcsOSArMzcsOSBAQCBjbGFzcyBBdWRpb0NvbnRleHQ7CiBjbGFzcyBP
ZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUgZmluYWwgOiBwdWJsaWMgQXVkaW9EZXN0aW5hdGlv
bk5vZGUgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoT2ZmbGluZUF1ZGlvRGVzdGluYXRp
b25Ob2RlKTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPE9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9u
Tm9kZT4gY3JlYXRlKEJhc2VBdWRpb0NvbnRleHQmIGNvbnRleHQsIEF1ZGlvQnVmZmVyKiByZW5k
ZXJUYXJnZXQpCisgICAgc3RhdGljIFJlZjxPZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGU+IGNy
ZWF0ZShCYXNlQXVkaW9Db250ZXh0JiBjb250ZXh0LCB1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxz
LCBBdWRpb0J1ZmZlciogcmVuZGVyVGFyZ2V0KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlKGNvbnRleHQsIHJlbmRlclRhcmdl
dCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBPZmZsaW5lQXVkaW9EZXN0aW5hdGlv
bk5vZGUoY29udGV4dCwgbnVtYmVyT2ZDaGFubmVscywgcmVuZGVyVGFyZ2V0KSk7CiAgICAgfQog
CiAgICAgdmlydHVhbCB+T2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlKCk7CkBAIC01Nyw3ICs1
Nyw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IHJlbmRlclF1YW50dW1TaXpl
OwogCiBwcml2YXRlOgotICAgIE9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZShCYXNlQXVkaW9D
b250ZXh0JiwgQXVkaW9CdWZmZXIqIHJlbmRlclRhcmdldCk7CisgICAgT2ZmbGluZUF1ZGlvRGVz
dGluYXRpb25Ob2RlKEJhc2VBdWRpb0NvbnRleHQmLCB1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxz
LCBBdWRpb0J1ZmZlciogcmVuZGVyVGFyZ2V0KTsKIAogICAgIGVudW0gY2xhc3MgT2ZmbGluZVJl
bmRlclJlc3VsdCB7IEZhaWx1cmUsIFN1c3BlbmRlZCwgQ29tcGxldGUgfTsKICAgICBPZmZsaW5l
UmVuZGVyUmVzdWx0IG9mZmxpbmVSZW5kZXIoKTsKQEAgLTY3LDYgKzY3LDggQEAgcHJpdmF0ZToK
IAogICAgIHVuc2lnbmVkIG1heENoYW5uZWxDb3VudCgpIGNvbnN0IGZpbmFsOwogCisgICAgdW5z
aWduZWQgbV9udW1iZXJPZkNoYW5uZWxzOworCiAgICAgLy8gVGhpcyBBdWRpb05vZGUgcmVuZGVy
cyBpbnRvIHRoaXMgQXVkaW9CdWZmZXIuCiAgICAgUmVmUHRyPEF1ZGlvQnVmZmVyPiBtX3JlbmRl
clRhcmdldDsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vV2ViS2l0QXVkaW9Db250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vV2ViS2l0QXVkaW9Db250ZXh0LmNwcAppbmRleCBjODJiYTZhODY2NDMxNDM2ZGM1YTkyYWNi
MjcwY2QzNDNhMTUxM2VjLi5iMGM4NDBhOTUzMWFmZjNjZDA5MTIwNzY4NDIwZGQwZDczYmMzYzAz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dlYktpdEF1ZGlv
Q29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9XZWJLaXRB
dWRpb0NvbnRleHQuY3BwCkBAIC04NCw4ICs4NCw4IEBAIFdlYktpdEF1ZGlvQ29udGV4dDo6V2Vi
S2l0QXVkaW9Db250ZXh0KERvY3VtZW50JiBkb2N1bWVudCkKIH0KIAogLy8gQ29uc3RydWN0b3Ig
Zm9yIG9mZmxpbmUgKG5vbi1yZWFsdGltZSkgcmVuZGVyaW5nLgotV2ViS2l0QXVkaW9Db250ZXh0
OjpXZWJLaXRBdWRpb0NvbnRleHQoRG9jdW1lbnQmIGRvY3VtZW50LCBBdWRpb0J1ZmZlciogcmVu
ZGVyVGFyZ2V0KQotICAgIDogQmFzZUF1ZGlvQ29udGV4dChkb2N1bWVudCwgcmVuZGVyVGFyZ2V0
KQorV2ViS2l0QXVkaW9Db250ZXh0OjpXZWJLaXRBdWRpb0NvbnRleHQoRG9jdW1lbnQmIGRvY3Vt
ZW50LCBSZWY8QXVkaW9CdWZmZXI+JiYgcmVuZGVyVGFyZ2V0KQorICAgIDogQmFzZUF1ZGlvQ29u
dGV4dChkb2N1bWVudCwgcmVuZGVyVGFyZ2V0LT5udW1iZXJPZkNoYW5uZWxzKCksIFdURk1vdmUo
cmVuZGVyVGFyZ2V0KSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9XZWJLaXRBdWRpb0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vV2ViS2l0QXVkaW9Db250ZXh0LmgKaW5kZXggZWVlOGZhYTYyNTA2ZmFhMjVmMGVj
ZjFkY2MyYjMzMzdiM2JkNjhhOC4uOTg4MGM0ZTA4ZmYwN2I2NDNiYjgxYjI5MDk5YTE2ZmYxN2Iw
MmQ5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9XZWJLaXRB
dWRpb0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dlYktp
dEF1ZGlvQ29udGV4dC5oCkBAIC03NSw3ICs3NSw3IEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgog
ICAgIGV4cGxpY2l0IFdlYktpdEF1ZGlvQ29udGV4dChEb2N1bWVudCYpOwotICAgIFdlYktpdEF1
ZGlvQ29udGV4dChEb2N1bWVudCYsIEF1ZGlvQnVmZmVyKiByZW5kZXJUYXJnZXQpOworICAgIFdl
YktpdEF1ZGlvQ29udGV4dChEb2N1bWVudCYsIFJlZjxBdWRpb0J1ZmZlcj4mJiByZW5kZXJUYXJn
ZXQpOwogCiBwcml2YXRlOgogICAgIC8vIEFjdGl2ZURPTU9iamVjdCBBUEkuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dlYktpdE9mZmxpbmVBdWRpb0NvbnRl
eHQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9XZWJLaXRPZmZsaW5lQXVk
aW9Db250ZXh0LmNwcAppbmRleCA0Y2U2OGMyNmE3YmEwYWUyYjBmM2Y5ZTYxZTdjYTNiNWI3NzUz
NTE3Li5hMjY0NzNlYTAwOTcwMGVjMDBkMjM0ZTdiNWRhN2FhZTAwYjJlNzA1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dlYktpdE9mZmxpbmVBdWRpb0NvbnRl
eHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vV2ViS2l0T2ZmbGlu
ZUF1ZGlvQ29udGV4dC5jcHAKQEAgLTM2LDggKzM2LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoV2ViS2l0T2ZmbGluZUF1ZGlvQ29udGV4dCk7
CiAKLWlubGluZSBXZWJLaXRPZmZsaW5lQXVkaW9Db250ZXh0OjpXZWJLaXRPZmZsaW5lQXVkaW9D
b250ZXh0KERvY3VtZW50JiBkb2N1bWVudCwgQXVkaW9CdWZmZXIqIHJlbmRlclRhcmdldCkKLSAg
ICA6IFdlYktpdEF1ZGlvQ29udGV4dChkb2N1bWVudCwgcmVuZGVyVGFyZ2V0KQoraW5saW5lIFdl
YktpdE9mZmxpbmVBdWRpb0NvbnRleHQ6OldlYktpdE9mZmxpbmVBdWRpb0NvbnRleHQoRG9jdW1l
bnQmIGRvY3VtZW50LCBSZWY8QXVkaW9CdWZmZXI+JiYgcmVuZGVyVGFyZ2V0KQorICAgIDogV2Vi
S2l0QXVkaW9Db250ZXh0KGRvY3VtZW50LCBXVEZNb3ZlKHJlbmRlclRhcmdldCkpCiB7CiB9CiAK
QEAgLTUyLDcgKzUyLDcgQEAgRXhjZXB0aW9uT3I8UmVmPFdlYktpdE9mZmxpbmVBdWRpb0NvbnRl
eHQ+PiBXZWJLaXRPZmZsaW5lQXVkaW9Db250ZXh0OjpjcmVhdGUoU2MKICAgICBpZiAoIXJlbmRl
clRhcmdldCkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFN5bnRheEVycm9yIH07CiAKLSAg
ICBhdXRvIGF1ZGlvQ29udGV4dCA9IGFkb3B0UmVmKCpuZXcgV2ViS2l0T2ZmbGluZUF1ZGlvQ29u
dGV4dChkb3duY2FzdDxEb2N1bWVudD4oY29udGV4dCksIHJlbmRlclRhcmdldC5nZXQoKSkpOwor
ICAgIGF1dG8gYXVkaW9Db250ZXh0ID0gYWRvcHRSZWYoKm5ldyBXZWJLaXRPZmZsaW5lQXVkaW9D
b250ZXh0KGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KSwgcmVuZGVyVGFyZ2V0LnJlbGVhc2VO
b25OdWxsKCkpKTsKICAgICBhdWRpb0NvbnRleHQtPnN1c3BlbmRJZk5lZWRlZCgpOwogICAgIHJl
dHVybiBhdWRpb0NvbnRleHQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL1dlYktpdE9mZmxpbmVBdWRpb0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vV2ViS2l0T2ZmbGluZUF1ZGlvQ29udGV4dC5oCmluZGV4IGMyNTRlZDQx
ZmUwM2Q2MWU3ZWNiNTQ4N2UyYzc5YzQ3NDYxODJmOTQuLmJmMDkyMGYwNThlNmM4ZmQwYTljYWM1
MDE0NTdiYTI2Yzg3YzgzYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vV2ViS2l0T2ZmbGluZUF1ZGlvQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vV2ViS2l0T2ZmbGluZUF1ZGlvQ29udGV4dC5oCkBAIC0zNCw3ICszNCw3
IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmPFdlYktpdE9mZmxpbmVBdWRp
b0NvbnRleHQ+PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIHVuc2lnbmVkIG51bWJl
ck9mQ2hhbm5lbHMsIHNpemVfdCBudW1iZXJPZkZyYW1lcywgZmxvYXQgc2FtcGxlUmF0ZSk7CiAK
IHByaXZhdGU6Ci0gICAgV2ViS2l0T2ZmbGluZUF1ZGlvQ29udGV4dChEb2N1bWVudCYsIEF1ZGlv
QnVmZmVyKiByZW5kZXJUYXJnZXQpOworICAgIFdlYktpdE9mZmxpbmVBdWRpb0NvbnRleHQoRG9j
dW1lbnQmLCBSZWY8QXVkaW9CdWZmZXI+JiYgcmVuZGVyVGFyZ2V0KTsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhNGExMzM0ZWM2NGZlZDZmN2ExZjU1ZGIzZWEwZmU5ODk5
OTAxMTk3Li4wMjdkOTdmMWIyOWNjZjQ0ZWFjZGNhZjIyYWY1YmQxNmJmODUwZWFlIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMjAtMDktMTUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNv
bT4KKworICAgICAgICBPZmZsaW5lQXVkaW9Db250ZXh0IGNvbnN0cnVjdG9yIHNob3VsZCBub3Qg
dGhyb3cgd2hlbiBnaXZlbiBhIGJhZCBidWZmZXIgbGVuZ3RoCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTY1ODQKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWJhc2VsaW5lIHRlc3Qgbm93IHRoYXQgbW9y
ZSBjaGVja3MgYXJlIHBhc3NpbmcuCisKKyAgICAgICAgKiB3ZWJhdWRpby9kb20tZXhjZXB0aW9u
cy1leHBlY3RlZC50eHQ6CisKIDIwMjAtMDktMTUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KIAogICAgICAgICBTY3JpcHRQcm9jZXNzb3JOb2RlIHNob3VsZCB0aHJvdyB3aGVuIHRy
eWluZyB0byBjaGFuZ2UgaXRzIGNoYW5uZWwgY291bnQgb3IgY2hhbm5lbCBjb3VudCBtb2RlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9kb20tZXhjZXB0aW9ucy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9kb20tZXhjZXB0aW9ucy1leHBlY3RlZC50eHQKaW5k
ZXggZDY2NWMzZjE0ZjU4OGZhMjcxYTdhODY4ZDIyN2ZmNDBlMWEyZjMzZS4uMDU2NTViZmNmMzAw
MDY1NDVhZGZkMDFjZmZkYTAxMWRmZWRkMGQ2YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2Vi
YXVkaW8vZG9tLWV4Y2VwdGlvbnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3dlYmF1
ZGlvL2RvbS1leGNlcHRpb25zLWV4cGVjdGVkLnR4dApAQCAtMTYsNyArMTYsNyBAQCBQQVNTIEV4
ZWN1dGluZyAiYXVkaW9wYXJhbSIKIFBBU1MgRXhlY3V0aW5nICJiaXF1YWQiIAogUEFTUyBFeGVj
dXRpbmcgIm9mZmxpbmUtYXVkaW8tY29udGV4dCIgCiBQQVNTIEV4ZWN1dGluZyAiaW52YWxpZC1v
ZmZsaW5lLWF1ZGlvLWNvbnRleHQtcGFyYW1ldGVycyIgCi1GQUlMIEV4ZWN1dGluZyAiaW52YWxp
ZC1mcmFtZS1sZW5ndGgiIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZh
bHVlOiBvYmplY3QgIlR5cGVFcnJvcjogdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1
YXRpbmcgJ3Rlc3RDb250ZXh0LnN0YXJ0UmVuZGVyaW5nJykiCitQQVNTIEV4ZWN1dGluZyAiaW52
YWxpZC1mcmFtZS1sZW5ndGgiIAogUEFTUyBFeGVjdXRpbmcgIndhdmVzaGFwZXIiIAogUEFTUyBF
eGVjdXRpbmcgImF1ZGlvLWJ1ZmZlci1zb3VyY2UiIAogUEFTUyBFeGVjdXRpbmcgIm9zY2lsbGF0
b3IiIApAQCAtMTQzLDcgKzE0Myw5IEBAIFBBU1MgICBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4dCgx
LCAxMDAsIDFlNikgdGhyZXcgU3ludGF4RXJyb3I6ICJzYW1wbGVSYXRlIGlzIG5vCiBQQVNTICAg
bmV3IE9mZmxpbmVBdWRpb0NvbnRleHQoMSwgMCwgNDQxMDApIHRocmV3IFN5bnRheEVycm9yOiAi
bGVuZ3RoIGNhbm5vdCBiZSAwIi4gCiBQQVNTIDwgW2ludmFsaWQtb2ZmbGluZS1hdWRpby1jb250
ZXh0LXBhcmFtZXRlcnNdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDUgYXNzZXJ0aW9u
cykgCiBQQVNTID4gW2ludmFsaWQtZnJhbWUtbGVuZ3RoXSAgCi1GQUlMIFggdGVzdENvbnRleHQg
PSBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4dCgxLCAtODgyMDAwMDAwMDAwMDAsIDQ0MTAwKSBpbmNv
cnJlY3RseSB0aHJldyBTeW50YXhFcnJvcjogIlVuYWJsZSB0byBjcmVhdGUgQXVkaW9CdWZmZXIi
LiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgICB0ZXN0Q29udGV4
dCA9IG5ldyBPZmZsaW5lQXVkaW9Db250ZXh0KDEsIC04ODIwMDAwMDAwMDAwMCwgNDQxMDApIGRp
ZCBub3QgdGhyb3cgYW4gZXhjZXB0aW9uLiAKK1BBU1MgICB0ZXN0Q29udGV4dC5zdGFydFJlbmRl
cmluZygpIHJlamVjdGVkIGNvcnJlY3RseSB3aXRoIEludmFsaWRTdGF0ZUVycm9yOiBGYWlsZWQg
dG8gY3JlYXRlIGF1ZGlvIGJ1ZmZlci4gCitQQVNTIDwgW2ludmFsaWQtZnJhbWUtbGVuZ3RoXSBB
bGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAyIGFzc2VydGlvbnMpIAogUEFTUyA+IFt3YXZl
c2hhcGVyXSAgCiBQQVNTICAgbm9kZS5vdmVyc2FtcGxlID0gIjl4IiBkaWQgbm90IHRocm93IGFu
IGV4Y2VwdGlvbi4gCiBQQVNTICAgbm9kZS5vdmVyc2FtcGxlIGlzIGVxdWFsIHRvIG5vbmUuIApA
QCAtMjU4LDUgKzI2MCw1IEBAIFBBU1MgICBvc2Mubm90ZU9mZiBpcyBlcXVhbCB0byB1bmRlZmlu
ZWQuCiBQQVNTICAgc291cmNlLm5vdGVPbiBpcyBlcXVhbCB0byB1bmRlZmluZWQuIAogUEFTUyAg
IHNvdXJjZS5ub3RlT2ZmIGlzIGVxdWFsIHRvIHVuZGVmaW5lZC4gCiBQQVNTIDwgW21pc2NdIEFs
bCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDQgYXNzZXJ0aW9ucykgCi1GQUlMICMgQVVESVQg
VEFTSyBSVU5ORVIgRklOSVNIRUQ6IDIgb3V0IG9mIDI0IHRhc2tzIHdlcmUgZmFpbGVkLiBhc3Nl
cnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgIyBBVURJVCBUQVNLIFJVTk5F
UiBGSU5JU0hFRDogMSBvdXQgb2YgMjQgdGFza3Mgd2VyZSBmYWlsZWQuIGFzc2VydF90cnVlOiBl
eHBlY3RlZCB0cnVlIGdvdCBmYWxzZQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408923</attachid>
            <date>2020-09-16 08:28:31 -0700</date>
            <delta_ts>2020-09-16 08:50:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216584-20200916082830.patch</filename>
            <type>text/plain</type>
            <size>17301</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3MTA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzYxYjAwOTExNmIwMjBh
MjY1YWIxNWM1NGJhYjQxYWIzZWUzNDg3MS4uMDZjNzZkMTdjOGRlMDlmMzJmZTJjZTZkMzU1ZmQz
NTgwNGM2YzIyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIwLTA5LTE1ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgT2ZmbGluZUF1ZGlvQ29udGV4
dCBjb25zdHJ1Y3RvciBzaG91bGQgbm90IHRocm93IHdoZW4gZ2l2ZW4gYSBiYWQgYnVmZmVyIGxl
bmd0aAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE2
NTg0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAgICBPZmZs
aW5lQXVkaW9Db250ZXh0IGNvbnN0cnVjdG9yIHNob3VsZCBub3QgdGhyb3cgd2hlbiBnaXZlbiBh
IGJhZCBidWZmZXIgbGVuZ3RoLiBXZSBzaG91bGQKKyAgICAgICAgaW5zdGVhZCB0aHJvdyBsYXRl
ciBvbiB3aGVuIHRyeWluZyB0byBzdGFydCByZW5kZXJpbmcuCisKKyAgICAgICAgTm8gbmV3IHRl
c3RzLCByZWJhc2VsaW5lZCBleGlzdGluZyB0ZXN0LgorCisgICAgICAgICogTW9kdWxlcy93ZWJh
dWRpby9CYXNlQXVkaW9Db250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VBdWRpb0Nv
bnRleHQ6OkJhc2VBdWRpb0NvbnRleHQpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQmFz
ZUF1ZGlvQ29udGV4dC5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlv
Q29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpPZmZsaW5lQXVkaW9Db250ZXh0OjpPZmZs
aW5lQXVkaW9Db250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6Ok9mZmxpbmVBdWRpb0NvbnRleHQ6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpPZmZsaW5lQXVkaW9Db250ZXh0OjpzdGFydE9m
ZmxpbmVSZW5kZXJpbmcpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlv
Q29udGV4dC5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVzdGlu
YXRpb25Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9u
Tm9kZTo6T2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlKToKKyAgICAgICAgKFdlYkNvcmU6Ok9m
ZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6bWF4Q2hhbm5lbENvdW50IGNvbnN0KToKKwogMjAy
MC0wOS0xNSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFNjcmlw
dFByb2Nlc3Nvck5vZGUgc2hvdWxkIHRocm93IHdoZW4gdHJ5aW5nIHRvIGNoYW5nZSBpdHMgY2hh
bm5lbCBjb3VudCBvciBjaGFubmVsIGNvdW50IG1vZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcAppbmRleCBmZTBhY2VjMTliNDE2N2RiNWFh
NjQ4NWExNDY1NTdkMDQzOWMzODhhLi4xZDUyZmRlZmMyY2Y1Mzg5YTk2YzJhNWIzZjc3ZWM3OTkz
ZWE2YjRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
Q29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0Nv
bnRleHQuY3BwCkBAIC05OSwxMiArOTksNiBAQCBBdWRpb0NvbnRleHQ6OkF1ZGlvQ29udGV4dChE
b2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IEF1ZGlvQ29udGV4dE9wdGlvbnMmIGNvbnRleAogewog
fQogCi0vLyBDb25zdHJ1Y3RvciBmb3Igb2ZmbGluZSAobm9uLXJlYWx0aW1lKSByZW5kZXJpbmcu
Ci1BdWRpb0NvbnRleHQ6OkF1ZGlvQ29udGV4dChEb2N1bWVudCYgZG9jdW1lbnQsIEF1ZGlvQnVm
ZmVyKiByZW5kZXJUYXJnZXQpCi0gICAgOiBCYXNlQXVkaW9Db250ZXh0KGRvY3VtZW50LCByZW5k
ZXJUYXJnZXQpCi17Ci19Ci0KIGRvdWJsZSBBdWRpb0NvbnRleHQ6OmJhc2VMYXRlbmN5KCkKIHsK
ICAgICBsYXp5SW5pdGlhbGl6ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9Db250ZXh0LmgKaW5kZXggZDA2OTU3MTRhNmE1MGM0ZDEyZjkxZGFiN2ZjM2VjMzRj
ODgxMjVlYy4uNjc5Y2NhZDI5MDI4NWU3OTJmYzk0MmY0MjUwOGUxMjcyNjZmZTEyYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oCkBAIC01OSw3
ICs1OSw2IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBBdWRpb0NvbnRleHQoRG9jdW1lbnQm
LCBjb25zdCBBdWRpb0NvbnRleHRPcHRpb25zJik7Ci0gICAgQXVkaW9Db250ZXh0KERvY3VtZW50
JiwgQXVkaW9CdWZmZXIqIHJlbmRlclRhcmdldCk7CiB9OwogCiB9IC8vIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuY3Bw
CmluZGV4IGUxMmE1NDk0MGUxNTdkZGU3NzI0NmFiZjliYjAzYjQyMjIzNDczMDguLjMyOThjYTJk
YzI4YjNlOGQ5MTc3NzlmMmIxZjYwOGZlZjJmOWViY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmNwcApAQCAtMTUyLDcgKzE1
Miw3IEBAIEJhc2VBdWRpb0NvbnRleHQ6OkJhc2VBdWRpb0NvbnRleHQoRG9jdW1lbnQmIGRvY3Vt
ZW50LCBjb25zdCBBdWRpb0NvbnRleHRPcHRpb25zCiB9CiAKIC8vIENvbnN0cnVjdG9yIGZvciBv
ZmZsaW5lIChub24tcmVhbHRpbWUpIHJlbmRlcmluZy4KLUJhc2VBdWRpb0NvbnRleHQ6OkJhc2VB
dWRpb0NvbnRleHQoRG9jdW1lbnQmIGRvY3VtZW50LCBBdWRpb0J1ZmZlciogcmVuZGVyVGFyZ2V0
KQorQmFzZUF1ZGlvQ29udGV4dDo6QmFzZUF1ZGlvQ29udGV4dChEb2N1bWVudCYgZG9jdW1lbnQs
IHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMsIFJlZlB0cjxBdWRpb0J1ZmZlcj4mJiByZW5kZXJU
YXJnZXQpCiAgICAgOiBBY3RpdmVET01PYmplY3QoZG9jdW1lbnQpCiAjaWYgIVJFTEVBU0VfTE9H
X0RJU0FCTEVECiAgICAgLCBtX2xvZ2dlcihkb2N1bWVudC5sb2dnZXIoKSkKQEAgLTE2MCwxMiAr
MTYwLDEyIEBAIEJhc2VBdWRpb0NvbnRleHQ6OkJhc2VBdWRpb0NvbnRleHQoRG9jdW1lbnQmIGRv
Y3VtZW50LCBBdWRpb0J1ZmZlciogcmVuZGVyVGFyZ2V0CiAjZW5kaWYKICAgICAsIG1faXNPZmZs
aW5lQ29udGV4dCh0cnVlKQogICAgICwgbV9tZWRpYVNlc3Npb24oUGxhdGZvcm1NZWRpYVNlc3Np
b246OmNyZWF0ZShQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKSwg
KnRoaXMpKQotICAgICwgbV9yZW5kZXJUYXJnZXQocmVuZGVyVGFyZ2V0KQorICAgICwgbV9yZW5k
ZXJUYXJnZXQoV1RGTW92ZShyZW5kZXJUYXJnZXQpKQogewogICAgIGNvbnN0cnVjdENvbW1vbigp
OwogCiAgICAgLy8gQ3JlYXRlIGEgbmV3IGRlc3RpbmF0aW9uIGZvciBvZmZsaW5lIHJlbmRlcmlu
Zy4KLSAgICBtX2Rlc3RpbmF0aW9uTm9kZSA9IE9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6
Y3JlYXRlKCp0aGlzLCBtX3JlbmRlclRhcmdldC5nZXQoKSk7CisgICAgbV9kZXN0aW5hdGlvbk5v
ZGUgPSBPZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGU6OmNyZWF0ZSgqdGhpcywgbnVtYmVyT2ZD
aGFubmVscywgbV9yZW5kZXJUYXJnZXQuY29weVJlZigpKTsKIH0KIAogdm9pZCBCYXNlQXVkaW9D
b250ZXh0Ojpjb25zdHJ1Y3RDb21tb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuaAppbmRleCBkYzEyYjAxNjE2NGUzMjY3Zjk0NjMy
ODY3NzJkNjZlZmQ5OTRiOTZkLi5iYzg4NTk2N2E3YTQzNWM0YjkxYjM5M2VlZWVmYzQ5MTkzNjUx
NDJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRp
b0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRp
b0NvbnRleHQuaApAQCAtMzE1LDcgKzMxNSw3IEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAg
IGV4cGxpY2l0IEJhc2VBdWRpb0NvbnRleHQoRG9jdW1lbnQmLCBjb25zdCBBdWRpb0NvbnRleHRP
cHRpb25zJiA9IHsgfSk7Ci0gICAgQmFzZUF1ZGlvQ29udGV4dChEb2N1bWVudCYsIEF1ZGlvQnVm
ZmVyKiByZW5kZXJUYXJnZXQpOworICAgIEJhc2VBdWRpb0NvbnRleHQoRG9jdW1lbnQmLCB1bnNp
Z25lZCBudW1iZXJPZkNoYW5uZWxzLCBSZWZQdHI8QXVkaW9CdWZmZXI+JiYgcmVuZGVyVGFyZ2V0
KTsKICAgICAKICAgICB2b2lkIGNsZWFyUGVuZGluZ0FjdGl2aXR5KCk7CiAgICAgdm9pZCBtYWtl
UGVuZGluZ0FjdGl2aXR5KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9PZmZsaW5lQXVkaW9Db250ZXh0LmNwcAppbmRleCA3Yzc1NDFhZjgwOWQzMGQzMmY4
YThiOWExODdjN2ViOWFmYWMzNmMzLi5iMmU4YTMyYjU2YmYxZjk2MzZlNGRkNzhkOGZlMzcyYjM3
ZmZkNDgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxp
bmVBdWRpb0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
T2ZmbGluZUF1ZGlvQ29udGV4dC5jcHAKQEAgLTM4LDggKzM4LDggQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoT2ZmbGluZUF1ZGlvQ29udGV4dCk7
CiAKLWlubGluZSBPZmZsaW5lQXVkaW9Db250ZXh0OjpPZmZsaW5lQXVkaW9Db250ZXh0KERvY3Vt
ZW50JiBkb2N1bWVudCwgQXVkaW9CdWZmZXIqIHJlbmRlclRhcmdldCkKLSAgICA6IEJhc2VBdWRp
b0NvbnRleHQoZG9jdW1lbnQsIHJlbmRlclRhcmdldCkKK2lubGluZSBPZmZsaW5lQXVkaW9Db250
ZXh0OjpPZmZsaW5lQXVkaW9Db250ZXh0KERvY3VtZW50JiBkb2N1bWVudCwgdW5zaWduZWQgbnVt
YmVyT2ZDaGFubmVscywgUmVmUHRyPEF1ZGlvQnVmZmVyPiYmIHJlbmRlclRhcmdldCkKKyAgICA6
IEJhc2VBdWRpb0NvbnRleHQoZG9jdW1lbnQsIG51bWJlck9mQ2hhbm5lbHMsIFdURk1vdmUocmVu
ZGVyVGFyZ2V0KSkKIHsKIH0KIApAQCAtNTQsMTEgKzU0LDkgQEAgRXhjZXB0aW9uT3I8UmVmPE9m
ZmxpbmVBdWRpb0NvbnRleHQ+PiBPZmZsaW5lQXVkaW9Db250ZXh0OjpjcmVhdGUoU2NyaXB0RXhl
Y3V0aW8KICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFN5bnRheEVycm9yLCAibGVuZ3RoIGNh
bm5vdCBiZSAwIl9zIH07CiAgICAgaWYgKCFpc1N1cHBvcnRlZFNhbXBsZVJhdGUoc2FtcGxlUmF0
ZSkpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBTeW50YXhFcnJvciwgInNhbXBsZVJhdGUg
aXMgbm90IGluIHJhbmdlIl9zIH07Ci0gICAgYXV0byByZW5kZXJUYXJnZXQgPSBBdWRpb0J1ZmZl
cjo6Y3JlYXRlKG51bWJlck9mQ2hhbm5lbHMsIGxlbmd0aCwgc2FtcGxlUmF0ZSk7Ci0gICAgaWYg
KCFyZW5kZXJUYXJnZXQpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBTeW50YXhFcnJvciwg
IlVuYWJsZSB0byBjcmVhdGUgQXVkaW9CdWZmZXIiX3MgfTsKIAotICAgIGF1dG8gYXVkaW9Db250
ZXh0ID0gYWRvcHRSZWYoKm5ldyBPZmZsaW5lQXVkaW9Db250ZXh0KGRvd25jYXN0PERvY3VtZW50
Pihjb250ZXh0KSwgcmVuZGVyVGFyZ2V0LmdldCgpKSk7CisgICAgYXV0byByZW5kZXJUYXJnZXQg
PSBBdWRpb0J1ZmZlcjo6Y3JlYXRlKG51bWJlck9mQ2hhbm5lbHMsIGxlbmd0aCwgc2FtcGxlUmF0
ZSk7CisgICAgYXV0byBhdWRpb0NvbnRleHQgPSBhZG9wdFJlZigqbmV3IE9mZmxpbmVBdWRpb0Nv
bnRleHQoZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpLCBudW1iZXJPZkNoYW5uZWxzLCBXVEZN
b3ZlKHJlbmRlclRhcmdldCkpKTsKICAgICBhdWRpb0NvbnRleHQtPnN1c3BlbmRJZk5lZWRlZCgp
OwogICAgIHJldHVybiBhdWRpb0NvbnRleHQ7CiB9CkBAIC0xMDYsNiArMTA0LDExIEBAIHZvaWQg
T2ZmbGluZUF1ZGlvQ29udGV4dDo6c3RhcnRPZmZsaW5lUmVuZGVyaW5nKFJlZjxEZWZlcnJlZFBy
b21pc2U+JiYgcHJvbWlzZSkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIGlmICghcmVu
ZGVyVGFyZ2V0KCkpIHsKKyAgICAgICAgcHJvbWlzZS0+cmVqZWN0KEV4Y2VwdGlvbiB7IEludmFs
aWRTdGF0ZUVycm9yLCAiRmFpbGVkIHRvIGNyZWF0ZSBhdWRpbyBidWZmZXIiX3MgfSk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKICAgICBsYXp5SW5pdGlhbGl6ZSgpOwogCiAgICAgYXV0byBy
ZXN1bHQgPSBkZXN0aW5hdGlvbigpLT5zdGFydFJlbmRlcmluZygpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9Db250ZXh0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQuaAppbmRleCAz
ODdkYTRlODdmODI1NDY3MzQ0MzdlMzA2OTYwYWI5MzU2YTE4NWU5Li5iY2IxZDkyYjY4NDA2YWNj
ZmZiNzExYjAyMGI3ZDI5NjMwZThlOTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQuaApAQCAtNzIsNyArNzIsNyBAQCBw
dWJsaWM6CiAgICAgfTsKIAogcHJpdmF0ZToKLSAgICBPZmZsaW5lQXVkaW9Db250ZXh0KERvY3Vt
ZW50JiwgQXVkaW9CdWZmZXIqIHJlbmRlclRhcmdldCk7CisgICAgT2ZmbGluZUF1ZGlvQ29udGV4
dChEb2N1bWVudCYsIHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMsIFJlZlB0cjxBdWRpb0J1ZmZl
cj4mJiByZW5kZXJUYXJnZXQpOwogCiAgICAgdm9pZCBkaWRGaW5pc2hPZmZsaW5lUmVuZGVyaW5n
KEV4Y2VwdGlvbk9yPFJlZjxBdWRpb0J1ZmZlcj4+JiYpIGZpbmFsOwogICAgIHZvaWQgZGlkU3Vz
cGVuZFJlbmRlcmluZyhzaXplX3QgZnJhbWUpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5v
ZGUuY3BwCmluZGV4IDNjMDExMTQzMWJmNjg2OTdiZGRiNDgyMzY0ZTI2ZjFjNTlhZGFjMDIuLmZj
NDM5NTIxNjU3NzQzZmU4NGUxNzQyZmIzNGVkNTBiZjZmZTI5NTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rlc3Rp
bmF0aW9uTm9kZS5jcHAKQEAgLTQxLDEzICs0MSwxNCBAQCBXVEZfTUFLRV9JU09fQUxMT0NBVEVE
X0lNUEwoT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlKTsKICAgICAKIGNvbnN0IHNpemVfdCBP
ZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGU6OnJlbmRlclF1YW50dW1TaXplID0gMTI4OwogCi1P
ZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGU6Ok9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZShC
YXNlQXVkaW9Db250ZXh0JiBjb250ZXh0LCBBdWRpb0J1ZmZlciogcmVuZGVyVGFyZ2V0KQorT2Zm
bGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlOjpPZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUoQmFz
ZUF1ZGlvQ29udGV4dCYgY29udGV4dCwgdW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscywgUmVmUHRy
PEF1ZGlvQnVmZmVyPiYmIHJlbmRlclRhcmdldCkKICAgICA6IEF1ZGlvRGVzdGluYXRpb25Ob2Rl
KGNvbnRleHQpCi0gICAgLCBtX3JlbmRlclRhcmdldChyZW5kZXJUYXJnZXQpCi0gICAgLCBtX2Zy
YW1lc1RvUHJvY2VzcyhyZW5kZXJUYXJnZXQtPmxlbmd0aCgpKQorICAgICwgbV9udW1iZXJPZkNo
YW5uZWxzKG51bWJlck9mQ2hhbm5lbHMpCisgICAgLCBtX3JlbmRlclRhcmdldChXVEZNb3ZlKHJl
bmRlclRhcmdldCkpCisgICAgLCBtX2ZyYW1lc1RvUHJvY2VzcyhtX3JlbmRlclRhcmdldCA/IG1f
cmVuZGVyVGFyZ2V0LT5sZW5ndGgoKSA6IDApCiB7Ci0gICAgbV9yZW5kZXJCdXMgPSBBdWRpb0J1
czo6Y3JlYXRlKHJlbmRlclRhcmdldC0+bnVtYmVyT2ZDaGFubmVscygpLCByZW5kZXJRdWFudHVt
U2l6ZSk7Ci0gICAgaW5pdGlhbGl6ZURlZmF1bHROb2RlT3B0aW9ucyhyZW5kZXJUYXJnZXQtPm51
bWJlck9mQ2hhbm5lbHMoKSwgQ2hhbm5lbENvdW50TW9kZTo6RXhwbGljaXQsIENoYW5uZWxJbnRl
cnByZXRhdGlvbjo6U3BlYWtlcnMpOworICAgIG1fcmVuZGVyQnVzID0gQXVkaW9CdXM6OmNyZWF0
ZShudW1iZXJPZkNoYW5uZWxzLCByZW5kZXJRdWFudHVtU2l6ZSk7CisgICAgaW5pdGlhbGl6ZURl
ZmF1bHROb2RlT3B0aW9ucyhudW1iZXJPZkNoYW5uZWxzLCBDaGFubmVsQ291bnRNb2RlOjpFeHBs
aWNpdCwgQ2hhbm5lbEludGVycHJldGF0aW9uOjpTcGVha2Vycyk7CiB9CiAKIE9mZmxpbmVBdWRp
b0Rlc3RpbmF0aW9uTm9kZTo6fk9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZSgpCkBAIC01Nyw3
ICs1OCw3IEBAIE9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6fk9mZmxpbmVBdWRpb0Rlc3Rp
bmF0aW9uTm9kZSgpCiAKIHVuc2lnbmVkIE9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6bWF4
Q2hhbm5lbENvdW50KCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9yZW5kZXJUYXJnZXQtPm51bWJl
ck9mQ2hhbm5lbHMoKTsKKyAgICByZXR1cm4gbV9udW1iZXJPZkNoYW5uZWxzOwogfQogCiB2b2lk
IE9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6aW5pdGlhbGl6ZSgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9k
ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9EZXN0aW5h
dGlvbk5vZGUuaAppbmRleCBmNTRkMmQ5ZTdkYThkZTA3MDhkZTJkOGZhZWMyODIwYjVhYzhkM2Vh
Li41YzJlYmUwNmZmYWE2NTRiNzI2OWU1NThhOTQxZGYwYjZkZWQ0ZGE3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9k
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVz
dGluYXRpb25Ob2RlLmgKQEAgLTM3LDkgKzM3LDkgQEAgY2xhc3MgQXVkaW9Db250ZXh0OwogY2xh
c3MgT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlIGZpbmFsIDogcHVibGljIEF1ZGlvRGVzdGlu
YXRpb25Ob2RlIHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKE9mZmxpbmVBdWRpb0Rlc3Rp
bmF0aW9uTm9kZSk7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxPZmZsaW5lQXVkaW9EZXN0aW5h
dGlvbk5vZGU+IGNyZWF0ZShCYXNlQXVkaW9Db250ZXh0JiBjb250ZXh0LCBBdWRpb0J1ZmZlciog
cmVuZGVyVGFyZ2V0KQorICAgIHN0YXRpYyBSZWY8T2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2Rl
PiBjcmVhdGUoQmFzZUF1ZGlvQ29udGV4dCYgY29udGV4dCwgdW5zaWduZWQgbnVtYmVyT2ZDaGFu
bmVscywgUmVmUHRyPEF1ZGlvQnVmZmVyPiYmIHJlbmRlclRhcmdldCkKICAgICB7Ci0gICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IE9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZShjb250ZXh0
LCByZW5kZXJUYXJnZXQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgT2ZmbGluZUF1
ZGlvRGVzdGluYXRpb25Ob2RlKGNvbnRleHQsIG51bWJlck9mQ2hhbm5lbHMsIFdURk1vdmUocmVu
ZGVyVGFyZ2V0KSkpOwogICAgIH0KIAogICAgIHZpcnR1YWwgfk9mZmxpbmVBdWRpb0Rlc3RpbmF0
aW9uTm9kZSgpOwpAQCAtNTcsNyArNTcsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IHNp
emVfdCByZW5kZXJRdWFudHVtU2l6ZTsKIAogcHJpdmF0ZToKLSAgICBPZmZsaW5lQXVkaW9EZXN0
aW5hdGlvbk5vZGUoQmFzZUF1ZGlvQ29udGV4dCYsIEF1ZGlvQnVmZmVyKiByZW5kZXJUYXJnZXQp
OworICAgIE9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZShCYXNlQXVkaW9Db250ZXh0JiwgdW5z
aWduZWQgbnVtYmVyT2ZDaGFubmVscywgUmVmUHRyPEF1ZGlvQnVmZmVyPiYmIHJlbmRlclRhcmdl
dCk7CiAKICAgICBlbnVtIGNsYXNzIE9mZmxpbmVSZW5kZXJSZXN1bHQgeyBGYWlsdXJlLCBTdXNw
ZW5kZWQsIENvbXBsZXRlIH07CiAgICAgT2ZmbGluZVJlbmRlclJlc3VsdCBvZmZsaW5lUmVuZGVy
KCk7CkBAIC02Nyw2ICs2Nyw4IEBAIHByaXZhdGU6CiAKICAgICB1bnNpZ25lZCBtYXhDaGFubmVs
Q291bnQoKSBjb25zdCBmaW5hbDsKIAorICAgIHVuc2lnbmVkIG1fbnVtYmVyT2ZDaGFubmVsczsK
KwogICAgIC8vIFRoaXMgQXVkaW9Ob2RlIHJlbmRlcnMgaW50byB0aGlzIEF1ZGlvQnVmZmVyLgog
ICAgIFJlZlB0cjxBdWRpb0J1ZmZlcj4gbV9yZW5kZXJUYXJnZXQ7CiAgICAgCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dlYktpdEF1ZGlvQ29udGV4dC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dlYktpdEF1ZGlvQ29udGV4dC5jcHAK
aW5kZXggYzgyYmE2YTg2NjQzMTQzNmRjNWE5MmFjYjI3MGNkMzQzYTE1MTNlYy4uYjBjODQwYTk1
MzFhZmYzY2QwOTEyMDc2ODQyMGRkMGQ3M2JjM2MwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9XZWJLaXRBdWRpb0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vV2ViS2l0QXVkaW9Db250ZXh0LmNwcApAQCAtODQsOCAr
ODQsOCBAQCBXZWJLaXRBdWRpb0NvbnRleHQ6OldlYktpdEF1ZGlvQ29udGV4dChEb2N1bWVudCYg
ZG9jdW1lbnQpCiB9CiAKIC8vIENvbnN0cnVjdG9yIGZvciBvZmZsaW5lIChub24tcmVhbHRpbWUp
IHJlbmRlcmluZy4KLVdlYktpdEF1ZGlvQ29udGV4dDo6V2ViS2l0QXVkaW9Db250ZXh0KERvY3Vt
ZW50JiBkb2N1bWVudCwgQXVkaW9CdWZmZXIqIHJlbmRlclRhcmdldCkKLSAgICA6IEJhc2VBdWRp
b0NvbnRleHQoZG9jdW1lbnQsIHJlbmRlclRhcmdldCkKK1dlYktpdEF1ZGlvQ29udGV4dDo6V2Vi
S2l0QXVkaW9Db250ZXh0KERvY3VtZW50JiBkb2N1bWVudCwgUmVmPEF1ZGlvQnVmZmVyPiYmIHJl
bmRlclRhcmdldCkKKyAgICA6IEJhc2VBdWRpb0NvbnRleHQoZG9jdW1lbnQsIHJlbmRlclRhcmdl
dC0+bnVtYmVyT2ZDaGFubmVscygpLCBXVEZNb3ZlKHJlbmRlclRhcmdldCkpCiB7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vV2ViS2l0QXVkaW9Db250
ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dlYktpdEF1ZGlvQ29udGV4
dC5oCmluZGV4IGVlZThmYWE2MjUwNmZhYTI1ZjBlY2YxZGNjMmIzMzM3YjNiZDY4YTguLjk4ODBj
NGUwOGZmMDdiNjQzYmI4MWIyOTA5OWExNmZmMTdiMDJkOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vV2ViS2l0QXVkaW9Db250ZXh0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9XZWJLaXRBdWRpb0NvbnRleHQuaApAQCAtNzUsNyAr
NzUsNyBAQCBwdWJsaWM6CiAKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBXZWJLaXRBdWRpb0Nv
bnRleHQoRG9jdW1lbnQmKTsKLSAgICBXZWJLaXRBdWRpb0NvbnRleHQoRG9jdW1lbnQmLCBBdWRp
b0J1ZmZlciogcmVuZGVyVGFyZ2V0KTsKKyAgICBXZWJLaXRBdWRpb0NvbnRleHQoRG9jdW1lbnQm
LCBSZWY8QXVkaW9CdWZmZXI+JiYgcmVuZGVyVGFyZ2V0KTsKIAogcHJpdmF0ZToKICAgICAvLyBB
Y3RpdmVET01PYmplY3QgQVBJLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9XZWJLaXRPZmZsaW5lQXVkaW9Db250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vV2ViS2l0T2ZmbGluZUF1ZGlvQ29udGV4dC5jcHAKaW5kZXggNGNlNjhj
MjZhN2JhMGFlMmIwZjNmOWU2MWU3Y2EzYjViNzc1MzUxNy4uNDY5NGRhZTcyOWNlMTVhZWFjN2Nl
MWQ5NDc2ZGEzYzU0YWQ4ZTRmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9XZWJLaXRPZmZsaW5lQXVkaW9Db250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL1dlYktpdE9mZmxpbmVBdWRpb0NvbnRleHQuY3BwCkBAIC0zNiw4
ICszNiw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9J
TVBMKFdlYktpdE9mZmxpbmVBdWRpb0NvbnRleHQpOwogCi1pbmxpbmUgV2ViS2l0T2ZmbGluZUF1
ZGlvQ29udGV4dDo6V2ViS2l0T2ZmbGluZUF1ZGlvQ29udGV4dChEb2N1bWVudCYgZG9jdW1lbnQs
IEF1ZGlvQnVmZmVyKiByZW5kZXJUYXJnZXQpCi0gICAgOiBXZWJLaXRBdWRpb0NvbnRleHQoZG9j
dW1lbnQsIHJlbmRlclRhcmdldCkKK1dlYktpdE9mZmxpbmVBdWRpb0NvbnRleHQ6OldlYktpdE9m
ZmxpbmVBdWRpb0NvbnRleHQoRG9jdW1lbnQmIGRvY3VtZW50LCBSZWY8QXVkaW9CdWZmZXI+JiYg
cmVuZGVyVGFyZ2V0KQorICAgIDogV2ViS2l0QXVkaW9Db250ZXh0KGRvY3VtZW50LCBXVEZNb3Zl
KHJlbmRlclRhcmdldCkpCiB7CiB9CiAKQEAgLTUyLDcgKzUyLDcgQEAgRXhjZXB0aW9uT3I8UmVm
PFdlYktpdE9mZmxpbmVBdWRpb0NvbnRleHQ+PiBXZWJLaXRPZmZsaW5lQXVkaW9Db250ZXh0Ojpj
cmVhdGUoU2MKICAgICBpZiAoIXJlbmRlclRhcmdldCkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IFN5bnRheEVycm9yIH07CiAKLSAgICBhdXRvIGF1ZGlvQ29udGV4dCA9IGFkb3B0UmVmKCpu
ZXcgV2ViS2l0T2ZmbGluZUF1ZGlvQ29udGV4dChkb3duY2FzdDxEb2N1bWVudD4oY29udGV4dCks
IHJlbmRlclRhcmdldC5nZXQoKSkpOworICAgIGF1dG8gYXVkaW9Db250ZXh0ID0gYWRvcHRSZWYo
Km5ldyBXZWJLaXRPZmZsaW5lQXVkaW9Db250ZXh0KGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0
KSwgcmVuZGVyVGFyZ2V0LnJlbGVhc2VOb25OdWxsKCkpKTsKICAgICBhdWRpb0NvbnRleHQtPnN1
c3BlbmRJZk5lZWRlZCgpOwogICAgIHJldHVybiBhdWRpb0NvbnRleHQ7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dlYktpdE9mZmxpbmVBdWRpb0NvbnRl
eHQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vV2ViS2l0T2ZmbGluZUF1ZGlv
Q29udGV4dC5oCmluZGV4IGMyNTRlZDQxZmUwM2Q2MWU3ZWNiNTQ4N2UyYzc5YzQ3NDYxODJmOTQu
LmJmMDkyMGYwNThlNmM4ZmQwYTljYWM1MDE0NTdiYTI2Yzg3YzgzYWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vV2ViS2l0T2ZmbGluZUF1ZGlvQ29udGV4dC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vV2ViS2l0T2ZmbGluZUF1ZGlv
Q29udGV4dC5oCkBAIC0zNCw3ICszNCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgRXhjZXB0aW9u
T3I8UmVmPFdlYktpdE9mZmxpbmVBdWRpb0NvbnRleHQ+PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYsIHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMsIHNpemVfdCBudW1iZXJPZkZyYW1l
cywgZmxvYXQgc2FtcGxlUmF0ZSk7CiAKIHByaXZhdGU6Ci0gICAgV2ViS2l0T2ZmbGluZUF1ZGlv
Q29udGV4dChEb2N1bWVudCYsIEF1ZGlvQnVmZmVyKiByZW5kZXJUYXJnZXQpOworICAgIFdlYktp
dE9mZmxpbmVBdWRpb0NvbnRleHQoRG9jdW1lbnQmLCBSZWY8QXVkaW9CdWZmZXI+JiYgcmVuZGVy
VGFyZ2V0KTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkZjM3NjgyYjQ2
MjY1ZGM2N2Q1NTM0OTA1MDE0NzY1OGU2OTZiMWZiLi4wNGNmYzhlZDFjNmMxNjNjNTBmODczYTM5
MTU1MGQyYzNlZjZkNTFjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMDktMTUgIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBPZmZsaW5lQXVkaW9Db250ZXh0
IGNvbnN0cnVjdG9yIHNob3VsZCBub3QgdGhyb3cgd2hlbiBnaXZlbiBhIGJhZCBidWZmZXIgbGVu
Z3RoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTY1
ODQKKworICAgICAgICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgIFJlYmFz
ZWxpbmUgdGVzdCBub3cgdGhhdCBtb3JlIGNoZWNrcyBhcmUgcGFzc2luZy4KKworICAgICAgICAq
IHdlYmF1ZGlvL2RvbS1leGNlcHRpb25zLWV4cGVjdGVkLnR4dDoKKwogMjAyMC0wOS0xNSAgSGVj
dG9yIExvcGV6ICA8aGVjdG9yX2lfbG9wZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFsgbWFjT1Mg
aU9TIF0gaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8t
YXBpL3RoZS1hdWRpb3BhcmFtLWludGVyZmFjZS9rLXJhdGUtcGFubmVyLWNvbm5lY3Rpb25zLmh0
bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2RvbS1leGNlcHRpb25zLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2RvbS1leGNlcHRpb25zLWV4cGVjdGVkLnR4
dAppbmRleCBkNjY1YzNmMTRmNTg4ZmEyNzFhN2E4NjhkMjI3ZmY0MGUxYTJmMzNlLi4wNTY1NWJm
Y2YzMDAwNjU0NWFkZmQwMWNmZmRhMDExZGZlZGQwZDZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy93ZWJhdWRpby9kb20tZXhjZXB0aW9ucy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
d2ViYXVkaW8vZG9tLWV4Y2VwdGlvbnMtZXhwZWN0ZWQudHh0CkBAIC0xNiw3ICsxNiw3IEBAIFBB
U1MgRXhlY3V0aW5nICJhdWRpb3BhcmFtIgogUEFTUyBFeGVjdXRpbmcgImJpcXVhZCIgCiBQQVNT
IEV4ZWN1dGluZyAib2ZmbGluZS1hdWRpby1jb250ZXh0IiAKIFBBU1MgRXhlY3V0aW5nICJpbnZh
bGlkLW9mZmxpbmUtYXVkaW8tY29udGV4dC1wYXJhbWV0ZXJzIiAKLUZBSUwgRXhlY3V0aW5nICJp
bnZhbGlkLWZyYW1lLWxlbmd0aCIgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdp
dGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAo
ZXZhbHVhdGluZyAndGVzdENvbnRleHQuc3RhcnRSZW5kZXJpbmcnKSIKK1BBU1MgRXhlY3V0aW5n
ICJpbnZhbGlkLWZyYW1lLWxlbmd0aCIgCiBQQVNTIEV4ZWN1dGluZyAid2F2ZXNoYXBlciIgCiBQ
QVNTIEV4ZWN1dGluZyAiYXVkaW8tYnVmZmVyLXNvdXJjZSIgCiBQQVNTIEV4ZWN1dGluZyAib3Nj
aWxsYXRvciIgCkBAIC0xNDMsNyArMTQzLDkgQEAgUEFTUyAgIG5ldyBPZmZsaW5lQXVkaW9Db250
ZXh0KDEsIDEwMCwgMWU2KSB0aHJldyBTeW50YXhFcnJvcjogInNhbXBsZVJhdGUgaXMgbm8KIFBB
U1MgICBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4dCgxLCAwLCA0NDEwMCkgdGhyZXcgU3ludGF4RXJy
b3I6ICJsZW5ndGggY2Fubm90IGJlIDAiLiAKIFBBU1MgPCBbaW52YWxpZC1vZmZsaW5lLWF1ZGlv
LWNvbnRleHQtcGFyYW1ldGVyc10gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgNSBhc3Nl
cnRpb25zKSAKIFBBU1MgPiBbaW52YWxpZC1mcmFtZS1sZW5ndGhdICAKLUZBSUwgWCB0ZXN0Q29u
dGV4dCA9IG5ldyBPZmZsaW5lQXVkaW9Db250ZXh0KDEsIC04ODIwMDAwMDAwMDAwMCwgNDQxMDAp
IGluY29ycmVjdGx5IHRocmV3IFN5bnRheEVycm9yOiAiVW5hYmxlIHRvIGNyZWF0ZSBBdWRpb0J1
ZmZlciIuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyAgIHRlc3RD
b250ZXh0ID0gbmV3IE9mZmxpbmVBdWRpb0NvbnRleHQoMSwgLTg4MjAwMDAwMDAwMDAwLCA0NDEw
MCkgZGlkIG5vdCB0aHJvdyBhbiBleGNlcHRpb24uIAorUEFTUyAgIHRlc3RDb250ZXh0LnN0YXJ0
UmVuZGVyaW5nKCkgcmVqZWN0ZWQgY29ycmVjdGx5IHdpdGggSW52YWxpZFN0YXRlRXJyb3I6IEZh
aWxlZCB0byBjcmVhdGUgYXVkaW8gYnVmZmVyLiAKK1BBU1MgPCBbaW52YWxpZC1mcmFtZS1sZW5n
dGhdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDIgYXNzZXJ0aW9ucykgCiBQQVNTID4g
W3dhdmVzaGFwZXJdICAKIFBBU1MgICBub2RlLm92ZXJzYW1wbGUgPSAiOXgiIGRpZCBub3QgdGhy
b3cgYW4gZXhjZXB0aW9uLiAKIFBBU1MgICBub2RlLm92ZXJzYW1wbGUgaXMgZXF1YWwgdG8gbm9u
ZS4gCkBAIC0yNTgsNSArMjYwLDUgQEAgUEFTUyAgIG9zYy5ub3RlT2ZmIGlzIGVxdWFsIHRvIHVu
ZGVmaW5lZC4KIFBBU1MgICBzb3VyY2Uubm90ZU9uIGlzIGVxdWFsIHRvIHVuZGVmaW5lZC4gCiBQ
QVNTICAgc291cmNlLm5vdGVPZmYgaXMgZXF1YWwgdG8gdW5kZWZpbmVkLiAKIFBBU1MgPCBbbWlz
Y10gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgNCBhc3NlcnRpb25zKSAKLUZBSUwgIyBB
VURJVCBUQVNLIFJVTk5FUiBGSU5JU0hFRDogMiBvdXQgb2YgMjQgdGFza3Mgd2VyZSBmYWlsZWQu
IGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCAjIEFVRElUIFRBU0sg
UlVOTkVSIEZJTklTSEVEOiAxIG91dCBvZiAyNCB0YXNrcyB3ZXJlIGZhaWxlZC4gYXNzZXJ0X3Ry
dWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCiAK
</data>
<flag name="commit-queue"
          id="424457"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408924</attachid>
            <date>2020-09-16 08:48:31 -0700</date>
            <delta_ts>2020-09-16 08:48:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216584-20200916084830.patch</filename>
            <type>text/plain</type>
            <size>17899</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3MTQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2ZlNWE0NTg5ZTFlZWNi
ZDcwZDFjYmUyOTM4NjVhMmU4MDMzMGRmMS4uMzYxNDVjOGQzMGZhZmYzNzQyNWZkMmJjZWZjMGM3
YzcxNGFjYzBmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIwLTA5LTE2ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgT2ZmbGluZUF1ZGlvQ29udGV4
dCBjb25zdHJ1Y3RvciBzaG91bGQgbm90IHRocm93IHdoZW4gZ2l2ZW4gYSBiYWQgYnVmZmVyIGxl
bmd0aAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE2
NTg0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAgICBPZmZs
aW5lQXVkaW9Db250ZXh0IGNvbnN0cnVjdG9yIHNob3VsZCBub3QgdGhyb3cgd2hlbiBnaXZlbiBh
IGJhZCBidWZmZXIgbGVuZ3RoLiBXZSBzaG91bGQKKyAgICAgICAgaW5zdGVhZCB0aHJvdyBsYXRl
ciBvbiB3aGVuIHRyeWluZyB0byBzdGFydCByZW5kZXJpbmcuCisKKyAgICAgICAgTm8gbmV3IHRl
c3RzLCByZWJhc2VsaW5lZCBleGlzdGluZyB0ZXN0LgorCisgICAgICAgICogTW9kdWxlcy93ZWJh
dWRpby9CYXNlQXVkaW9Db250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VBdWRpb0Nv
bnRleHQ6OkJhc2VBdWRpb0NvbnRleHQpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQmFz
ZUF1ZGlvQ29udGV4dC5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlv
Q29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpPZmZsaW5lQXVkaW9Db250ZXh0OjpPZmZs
aW5lQXVkaW9Db250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6Ok9mZmxpbmVBdWRpb0NvbnRleHQ6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpPZmZsaW5lQXVkaW9Db250ZXh0OjpzdGFydE9m
ZmxpbmVSZW5kZXJpbmcpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlv
Q29udGV4dC5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVzdGlu
YXRpb25Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9u
Tm9kZTo6T2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlKToKKyAgICAgICAgKFdlYkNvcmU6Ok9m
ZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6bWF4Q2hhbm5lbENvdW50IGNvbnN0KToKKwogMjAy
MC0wOS0xNiAgQWRyaWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJlekBpZ2FsaWEuY29tPgogCiAg
ICAgICAgIE5vbi11bmlmaWVkIGJ1aWxkIGZpeGVzLCBlYXJseSBTZXB0ZW1iZXIgMjAyMCBlZGl0
aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29u
dGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5j
cHAKaW5kZXggZmUwYWNlYzE5YjQxNjdkYjVhYTY0ODVhMTQ2NTU3ZDA0MzljMzg4YS4uMWQ1MmZk
ZWZjMmNmNTM4OWE5NmMyYTViM2Y3N2VjNzk5M2VhNmI0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcApAQCAtOTksMTIgKzk5LDYgQEAg
QXVkaW9Db250ZXh0OjpBdWRpb0NvbnRleHQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBBdWRp
b0NvbnRleHRPcHRpb25zJiBjb250ZXgKIHsKIH0KIAotLy8gQ29uc3RydWN0b3IgZm9yIG9mZmxp
bmUgKG5vbi1yZWFsdGltZSkgcmVuZGVyaW5nLgotQXVkaW9Db250ZXh0OjpBdWRpb0NvbnRleHQo
RG9jdW1lbnQmIGRvY3VtZW50LCBBdWRpb0J1ZmZlciogcmVuZGVyVGFyZ2V0KQotICAgIDogQmFz
ZUF1ZGlvQ29udGV4dChkb2N1bWVudCwgcmVuZGVyVGFyZ2V0KQotewotfQotCiBkb3VibGUgQXVk
aW9Db250ZXh0OjpiYXNlTGF0ZW5jeSgpCiB7CiAgICAgbGF6eUluaXRpYWxpemUoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oCmluZGV4IGQwNjk1
NzE0YTZhNTBjNGQxMmY5MWRhYjdmYzNlYzM0Yzg4MTI1ZWMuLjY3OWNjYWQyOTAyODVlNzkyZmM5
NDJmNDI1MDhlMTI3MjY2ZmUxMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Db250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb0NvbnRleHQuaApAQCAtNTksNyArNTksNiBAQCBwdWJsaWM6CiAKIHByaXZhdGU6
CiAgICAgQXVkaW9Db250ZXh0KERvY3VtZW50JiwgY29uc3QgQXVkaW9Db250ZXh0T3B0aW9ucyYp
OwotICAgIEF1ZGlvQ29udGV4dChEb2N1bWVudCYsIEF1ZGlvQnVmZmVyKiByZW5kZXJUYXJnZXQp
OwogfTsKIAogfSAvLyBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmNwcAppbmRleCBlMTJhNTQ5NDBlMTU3ZGRlNzcyNDZh
YmY5YmIwM2I0MjIyMzQ3MzA4Li4zMjk4Y2EyZGMyOGIzZThkOTE3Nzc5ZjJiMWY2MDhmZWYyZjll
YmNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRp
b0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1
ZGlvQ29udGV4dC5jcHAKQEAgLTE1Miw3ICsxNTIsNyBAQCBCYXNlQXVkaW9Db250ZXh0OjpCYXNl
QXVkaW9Db250ZXh0KERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgQXVkaW9Db250ZXh0T3B0aW9u
cwogfQogCiAvLyBDb25zdHJ1Y3RvciBmb3Igb2ZmbGluZSAobm9uLXJlYWx0aW1lKSByZW5kZXJp
bmcuCi1CYXNlQXVkaW9Db250ZXh0OjpCYXNlQXVkaW9Db250ZXh0KERvY3VtZW50JiBkb2N1bWVu
dCwgQXVkaW9CdWZmZXIqIHJlbmRlclRhcmdldCkKK0Jhc2VBdWRpb0NvbnRleHQ6OkJhc2VBdWRp
b0NvbnRleHQoRG9jdW1lbnQmIGRvY3VtZW50LCB1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxzLCBS
ZWZQdHI8QXVkaW9CdWZmZXI+JiYgcmVuZGVyVGFyZ2V0KQogICAgIDogQWN0aXZlRE9NT2JqZWN0
KGRvY3VtZW50KQogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgICwgbV9sb2dnZXIoZG9j
dW1lbnQubG9nZ2VyKCkpCkBAIC0xNjAsMTIgKzE2MCwxMiBAQCBCYXNlQXVkaW9Db250ZXh0OjpC
YXNlQXVkaW9Db250ZXh0KERvY3VtZW50JiBkb2N1bWVudCwgQXVkaW9CdWZmZXIqIHJlbmRlclRh
cmdldAogI2VuZGlmCiAgICAgLCBtX2lzT2ZmbGluZUNvbnRleHQodHJ1ZSkKICAgICAsIG1fbWVk
aWFTZXNzaW9uKFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpjcmVhdGUoUGxhdGZvcm1NZWRpYVNlc3Np
b25NYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCksICp0aGlzKSkKLSAgICAsIG1fcmVuZGVyVGFyZ2V0
KHJlbmRlclRhcmdldCkKKyAgICAsIG1fcmVuZGVyVGFyZ2V0KFdURk1vdmUocmVuZGVyVGFyZ2V0
KSkKIHsKICAgICBjb25zdHJ1Y3RDb21tb24oKTsKIAogICAgIC8vIENyZWF0ZSBhIG5ldyBkZXN0
aW5hdGlvbiBmb3Igb2ZmbGluZSByZW5kZXJpbmcuCi0gICAgbV9kZXN0aW5hdGlvbk5vZGUgPSBP
ZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGU6OmNyZWF0ZSgqdGhpcywgbV9yZW5kZXJUYXJnZXQu
Z2V0KCkpOworICAgIG1fZGVzdGluYXRpb25Ob2RlID0gT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25O
b2RlOjpjcmVhdGUoKnRoaXMsIG51bWJlck9mQ2hhbm5lbHMsIG1fcmVuZGVyVGFyZ2V0LmNvcHlS
ZWYoKSk7CiB9CiAKIHZvaWQgQmFzZUF1ZGlvQ29udGV4dDo6Y29uc3RydWN0Q29tbW9uKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4
dC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmgK
aW5kZXggZGMxMmIwMTYxNjRlMzI2N2Y5NDYzMjg2NzcyZDY2ZWZkOTk0Yjk2ZC4uYmM4ODU5Njdh
N2E0MzVjNGI5MWIzOTNlZWVlZmM0OTE5MzY1MTQyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmgKQEAgLTMxNSw3ICszMTUsNyBA
QCBwdWJsaWM6CiAKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBCYXNlQXVkaW9Db250ZXh0KERv
Y3VtZW50JiwgY29uc3QgQXVkaW9Db250ZXh0T3B0aW9ucyYgPSB7IH0pOwotICAgIEJhc2VBdWRp
b0NvbnRleHQoRG9jdW1lbnQmLCBBdWRpb0J1ZmZlciogcmVuZGVyVGFyZ2V0KTsKKyAgICBCYXNl
QXVkaW9Db250ZXh0KERvY3VtZW50JiwgdW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscywgUmVmUHRy
PEF1ZGlvQnVmZmVyPiYmIHJlbmRlclRhcmdldCk7CiAgICAgCiAgICAgdm9pZCBjbGVhclBlbmRp
bmdBY3Rpdml0eSgpOwogICAgIHZvaWQgbWFrZVBlbmRpbmdBY3Rpdml0eSgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9Db250ZXh0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4dC5j
cHAKaW5kZXggN2M3NTQxYWY4MDlkMzBkMzJmOGE4YjlhMTg3YzdlYjlhZmFjMzZjMy4uYjJlOGEz
MmI1NmJmMWY5NjM2ZTRkZDc4ZDhmZTM3MmIzN2ZmZDQ4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9Db250ZXh0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQuY3BwCkBAIC0z
OCw4ICszOCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRF
RF9JTVBMKE9mZmxpbmVBdWRpb0NvbnRleHQpOwogCi1pbmxpbmUgT2ZmbGluZUF1ZGlvQ29udGV4
dDo6T2ZmbGluZUF1ZGlvQ29udGV4dChEb2N1bWVudCYgZG9jdW1lbnQsIEF1ZGlvQnVmZmVyKiBy
ZW5kZXJUYXJnZXQpCi0gICAgOiBCYXNlQXVkaW9Db250ZXh0KGRvY3VtZW50LCByZW5kZXJUYXJn
ZXQpCitpbmxpbmUgT2ZmbGluZUF1ZGlvQ29udGV4dDo6T2ZmbGluZUF1ZGlvQ29udGV4dChEb2N1
bWVudCYgZG9jdW1lbnQsIHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMsIFJlZlB0cjxBdWRpb0J1
ZmZlcj4mJiByZW5kZXJUYXJnZXQpCisgICAgOiBCYXNlQXVkaW9Db250ZXh0KGRvY3VtZW50LCBu
dW1iZXJPZkNoYW5uZWxzLCBXVEZNb3ZlKHJlbmRlclRhcmdldCkpCiB7CiB9CiAKQEAgLTU0LDEx
ICs1NCw5IEBAIEV4Y2VwdGlvbk9yPFJlZjxPZmZsaW5lQXVkaW9Db250ZXh0Pj4gT2ZmbGluZUF1
ZGlvQ29udGV4dDo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvCiAgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBTeW50YXhFcnJvciwgImxlbmd0aCBjYW5ub3QgYmUgMCJfcyB9OwogICAgIGlmICghaXNT
dXBwb3J0ZWRTYW1wbGVSYXRlKHNhbXBsZVJhdGUpKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgU3ludGF4RXJyb3IsICJzYW1wbGVSYXRlIGlzIG5vdCBpbiByYW5nZSJfcyB9OwotICAgIGF1
dG8gcmVuZGVyVGFyZ2V0ID0gQXVkaW9CdWZmZXI6OmNyZWF0ZShudW1iZXJPZkNoYW5uZWxzLCBs
ZW5ndGgsIHNhbXBsZVJhdGUpOwotICAgIGlmICghcmVuZGVyVGFyZ2V0KQotICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgU3ludGF4RXJyb3IsICJVbmFibGUgdG8gY3JlYXRlIEF1ZGlvQnVmZmVy
Il9zIH07CiAKLSAgICBhdXRvIGF1ZGlvQ29udGV4dCA9IGFkb3B0UmVmKCpuZXcgT2ZmbGluZUF1
ZGlvQ29udGV4dChkb3duY2FzdDxEb2N1bWVudD4oY29udGV4dCksIHJlbmRlclRhcmdldC5nZXQo
KSkpOworICAgIGF1dG8gcmVuZGVyVGFyZ2V0ID0gQXVkaW9CdWZmZXI6OmNyZWF0ZShudW1iZXJP
ZkNoYW5uZWxzLCBsZW5ndGgsIHNhbXBsZVJhdGUpOworICAgIGF1dG8gYXVkaW9Db250ZXh0ID0g
YWRvcHRSZWYoKm5ldyBPZmZsaW5lQXVkaW9Db250ZXh0KGRvd25jYXN0PERvY3VtZW50Pihjb250
ZXh0KSwgbnVtYmVyT2ZDaGFubmVscywgV1RGTW92ZShyZW5kZXJUYXJnZXQpKSk7CiAgICAgYXVk
aW9Db250ZXh0LT5zdXNwZW5kSWZOZWVkZWQoKTsKICAgICByZXR1cm4gYXVkaW9Db250ZXh0Owog
fQpAQCAtMTA2LDYgKzEwNCwxMSBAQCB2b2lkIE9mZmxpbmVBdWRpb0NvbnRleHQ6OnN0YXJ0T2Zm
bGluZVJlbmRlcmluZyhSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKKyAgICBpZiAoIXJlbmRlclRhcmdldCgpKSB7CisgICAgICAgIHByb21p
c2UtPnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkZhaWxlZCB0byBjcmVh
dGUgYXVkaW8gYnVmZmVyIl9zIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgbGF6
eUluaXRpYWxpemUoKTsKIAogICAgIGF1dG8gcmVzdWx0ID0gZGVzdGluYXRpb24oKS0+c3RhcnRS
ZW5kZXJpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
T2ZmbGluZUF1ZGlvQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9P
ZmZsaW5lQXVkaW9Db250ZXh0LmgKaW5kZXggMzg3ZGE0ZTg3ZjgyNTQ2NzM0NDM3ZTMwNjk2MGFi
OTM1NmExODVlOS4uYmNiMWQ5MmI2ODQwNmFjY2ZmYjcxMWIwMjBiN2QyOTYzMGU4ZTk2MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9Db250
ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9D
b250ZXh0LmgKQEAgLTcyLDcgKzcyLDcgQEAgcHVibGljOgogICAgIH07CiAKIHByaXZhdGU6Ci0g
ICAgT2ZmbGluZUF1ZGlvQ29udGV4dChEb2N1bWVudCYsIEF1ZGlvQnVmZmVyKiByZW5kZXJUYXJn
ZXQpOworICAgIE9mZmxpbmVBdWRpb0NvbnRleHQoRG9jdW1lbnQmLCB1bnNpZ25lZCBudW1iZXJP
ZkNoYW5uZWxzLCBSZWZQdHI8QXVkaW9CdWZmZXI+JiYgcmVuZGVyVGFyZ2V0KTsKIAogICAgIHZv
aWQgZGlkRmluaXNoT2ZmbGluZVJlbmRlcmluZyhFeGNlcHRpb25PcjxSZWY8QXVkaW9CdWZmZXI+
PiYmKSBmaW5hbDsKICAgICB2b2lkIGRpZFN1c3BlbmRSZW5kZXJpbmcoc2l6ZV90IGZyYW1lKSBm
aW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGlu
ZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcAppbmRleCAzYzAxMTE0MzFiZjY4Njk3
YmRkYjQ4MjM2NGUyNmYxYzU5YWRhYzAyLi5mYzQzOTUyMTY1Nzc0M2ZlODRlMTc0MmZiMzRlZDUw
YmY2ZmUyOTUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09m
ZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9PZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwCkBAIC00MSwxMyArNDEs
MTQgQEAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKE9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9u
Tm9kZSk7CiAgICAgCiBjb25zdCBzaXplX3QgT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlOjpy
ZW5kZXJRdWFudHVtU2l6ZSA9IDEyODsKIAotT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlOjpP
ZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUoQmFzZUF1ZGlvQ29udGV4dCYgY29udGV4dCwgQXVk
aW9CdWZmZXIqIHJlbmRlclRhcmdldCkKK09mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6T2Zm
bGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlKEJhc2VBdWRpb0NvbnRleHQmIGNvbnRleHQsIHVuc2ln
bmVkIG51bWJlck9mQ2hhbm5lbHMsIFJlZlB0cjxBdWRpb0J1ZmZlcj4mJiByZW5kZXJUYXJnZXQp
CiAgICAgOiBBdWRpb0Rlc3RpbmF0aW9uTm9kZShjb250ZXh0KQotICAgICwgbV9yZW5kZXJUYXJn
ZXQocmVuZGVyVGFyZ2V0KQotICAgICwgbV9mcmFtZXNUb1Byb2Nlc3MocmVuZGVyVGFyZ2V0LT5s
ZW5ndGgoKSkKKyAgICAsIG1fbnVtYmVyT2ZDaGFubmVscyhudW1iZXJPZkNoYW5uZWxzKQorICAg
ICwgbV9yZW5kZXJUYXJnZXQoV1RGTW92ZShyZW5kZXJUYXJnZXQpKQorICAgICwgbV9mcmFtZXNU
b1Byb2Nlc3MobV9yZW5kZXJUYXJnZXQgPyBtX3JlbmRlclRhcmdldC0+bGVuZ3RoKCkgOiAwKQog
ewotICAgIG1fcmVuZGVyQnVzID0gQXVkaW9CdXM6OmNyZWF0ZShyZW5kZXJUYXJnZXQtPm51bWJl
ck9mQ2hhbm5lbHMoKSwgcmVuZGVyUXVhbnR1bVNpemUpOwotICAgIGluaXRpYWxpemVEZWZhdWx0
Tm9kZU9wdGlvbnMocmVuZGVyVGFyZ2V0LT5udW1iZXJPZkNoYW5uZWxzKCksIENoYW5uZWxDb3Vu
dE1vZGU6OkV4cGxpY2l0LCBDaGFubmVsSW50ZXJwcmV0YXRpb246OlNwZWFrZXJzKTsKKyAgICBt
X3JlbmRlckJ1cyA9IEF1ZGlvQnVzOjpjcmVhdGUobnVtYmVyT2ZDaGFubmVscywgcmVuZGVyUXVh
bnR1bVNpemUpOworICAgIGluaXRpYWxpemVEZWZhdWx0Tm9kZU9wdGlvbnMobnVtYmVyT2ZDaGFu
bmVscywgQ2hhbm5lbENvdW50TW9kZTo6RXhwbGljaXQsIENoYW5uZWxJbnRlcnByZXRhdGlvbjo6
U3BlYWtlcnMpOwogfQogCiBPZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGU6On5PZmZsaW5lQXVk
aW9EZXN0aW5hdGlvbk5vZGUoKQpAQCAtNTcsNyArNTgsNyBAQCBPZmZsaW5lQXVkaW9EZXN0aW5h
dGlvbk5vZGU6On5PZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUoKQogCiB1bnNpZ25lZCBPZmZs
aW5lQXVkaW9EZXN0aW5hdGlvbk5vZGU6Om1heENoYW5uZWxDb3VudCgpIGNvbnN0CiB7Ci0gICAg
cmV0dXJuIG1fcmVuZGVyVGFyZ2V0LT5udW1iZXJPZkNoYW5uZWxzKCk7CisgICAgcmV0dXJuIG1f
bnVtYmVyT2ZDaGFubmVsczsKIH0KIAogdm9pZCBPZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGU6
OmluaXRpYWxpemUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9PZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmgKaW5kZXggZjU0ZDJkOWU3ZGE4
ZGUwNzA4ZGUyZDhmYWVjMjgyMGI1YWM4ZDNlYS4uNWMyZWJlMDZmZmFhNjU0YjcyNjllNTU4YTk0
MWRmMGI2ZGVkNGRhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9PZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5oCkBAIC0zNyw5ICszNyw5
IEBAIGNsYXNzIEF1ZGlvQ29udGV4dDsKIGNsYXNzIE9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9k
ZSBmaW5hbCA6IHB1YmxpYyBBdWRpb0Rlc3RpbmF0aW9uTm9kZSB7CiAgICAgV1RGX01BS0VfSVNP
X0FMTE9DQVRFRChPZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUpOwogcHVibGljOgotICAgIHN0
YXRpYyBSZWY8T2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlPiBjcmVhdGUoQmFzZUF1ZGlvQ29u
dGV4dCYgY29udGV4dCwgQXVkaW9CdWZmZXIqIHJlbmRlclRhcmdldCkKKyAgICBzdGF0aWMgUmVm
PE9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZT4gY3JlYXRlKEJhc2VBdWRpb0NvbnRleHQmIGNv
bnRleHQsIHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMsIFJlZlB0cjxBdWRpb0J1ZmZlcj4mJiBy
ZW5kZXJUYXJnZXQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBPZmZsaW5l
QXVkaW9EZXN0aW5hdGlvbk5vZGUoY29udGV4dCwgcmVuZGVyVGFyZ2V0KSk7CisgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IE9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZShjb250ZXh0LCBu
dW1iZXJPZkNoYW5uZWxzLCBXVEZNb3ZlKHJlbmRlclRhcmdldCkpKTsKICAgICB9CiAKICAgICB2
aXJ0dWFsIH5PZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUoKTsKQEAgLTU3LDcgKzU3LDcgQEAg
cHVibGljOgogICAgIHN0YXRpYyBjb25zdCBzaXplX3QgcmVuZGVyUXVhbnR1bVNpemU7CiAKIHBy
aXZhdGU6Ci0gICAgT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlKEJhc2VBdWRpb0NvbnRleHQm
LCBBdWRpb0J1ZmZlciogcmVuZGVyVGFyZ2V0KTsKKyAgICBPZmZsaW5lQXVkaW9EZXN0aW5hdGlv
bk5vZGUoQmFzZUF1ZGlvQ29udGV4dCYsIHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMsIFJlZlB0
cjxBdWRpb0J1ZmZlcj4mJiByZW5kZXJUYXJnZXQpOwogCiAgICAgZW51bSBjbGFzcyBPZmZsaW5l
UmVuZGVyUmVzdWx0IHsgRmFpbHVyZSwgU3VzcGVuZGVkLCBDb21wbGV0ZSB9OwogICAgIE9mZmxp
bmVSZW5kZXJSZXN1bHQgb2ZmbGluZVJlbmRlcigpOwpAQCAtNjcsNiArNjcsOCBAQCBwcml2YXRl
OgogCiAgICAgdW5zaWduZWQgbWF4Q2hhbm5lbENvdW50KCkgY29uc3QgZmluYWw7CiAKKyAgICB1
bnNpZ25lZCBtX251bWJlck9mQ2hhbm5lbHM7CisKICAgICAvLyBUaGlzIEF1ZGlvTm9kZSByZW5k
ZXJzIGludG8gdGhpcyBBdWRpb0J1ZmZlci4KICAgICBSZWZQdHI8QXVkaW9CdWZmZXI+IG1fcmVu
ZGVyVGFyZ2V0OwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9XZWJLaXRBdWRpb0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9XZWJLaXRBdWRpb0NvbnRleHQuY3BwCmluZGV4IGM4MmJhNmE4NjY0MzE0MzZkYzVhOTJh
Y2IyNzBjZDM0M2ExNTEzZWMuLmIwYzg0MGE5NTMxYWZmM2NkMDkxMjA3Njg0MjBkZDBkNzNiYzNj
MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vV2ViS2l0QXVk
aW9Db250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dlYktp
dEF1ZGlvQ29udGV4dC5jcHAKQEAgLTg0LDggKzg0LDggQEAgV2ViS2l0QXVkaW9Db250ZXh0OjpX
ZWJLaXRBdWRpb0NvbnRleHQoRG9jdW1lbnQmIGRvY3VtZW50KQogfQogCiAvLyBDb25zdHJ1Y3Rv
ciBmb3Igb2ZmbGluZSAobm9uLXJlYWx0aW1lKSByZW5kZXJpbmcuCi1XZWJLaXRBdWRpb0NvbnRl
eHQ6OldlYktpdEF1ZGlvQ29udGV4dChEb2N1bWVudCYgZG9jdW1lbnQsIEF1ZGlvQnVmZmVyKiBy
ZW5kZXJUYXJnZXQpCi0gICAgOiBCYXNlQXVkaW9Db250ZXh0KGRvY3VtZW50LCByZW5kZXJUYXJn
ZXQpCitXZWJLaXRBdWRpb0NvbnRleHQ6OldlYktpdEF1ZGlvQ29udGV4dChEb2N1bWVudCYgZG9j
dW1lbnQsIFJlZjxBdWRpb0J1ZmZlcj4mJiByZW5kZXJUYXJnZXQpCisgICAgOiBCYXNlQXVkaW9D
b250ZXh0KGRvY3VtZW50LCByZW5kZXJUYXJnZXQtPm51bWJlck9mQ2hhbm5lbHMoKSwgV1RGTW92
ZShyZW5kZXJUYXJnZXQpKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL1dlYktpdEF1ZGlvQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9XZWJLaXRBdWRpb0NvbnRleHQuaAppbmRleCBlZWU4ZmFhNjI1MDZmYWEyNWYw
ZWNmMWRjYzJiMzMzN2IzYmQ2OGE4Li45ODgwYzRlMDhmZjA3YjY0M2JiODFiMjkwOTlhMTZmZjE3
YjAyZDkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dlYktp
dEF1ZGlvQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vV2Vi
S2l0QXVkaW9Db250ZXh0LmgKQEAgLTc1LDcgKzc1LDcgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6
CiAgICAgZXhwbGljaXQgV2ViS2l0QXVkaW9Db250ZXh0KERvY3VtZW50Jik7Ci0gICAgV2ViS2l0
QXVkaW9Db250ZXh0KERvY3VtZW50JiwgQXVkaW9CdWZmZXIqIHJlbmRlclRhcmdldCk7CisgICAg
V2ViS2l0QXVkaW9Db250ZXh0KERvY3VtZW50JiwgUmVmPEF1ZGlvQnVmZmVyPiYmIHJlbmRlclRh
cmdldCk7CiAKIHByaXZhdGU6CiAgICAgLy8gQWN0aXZlRE9NT2JqZWN0IEFQSS4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vV2ViS2l0T2ZmbGluZUF1ZGlvQ29u
dGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dlYktpdE9mZmxpbmVB
dWRpb0NvbnRleHQuY3BwCmluZGV4IDRjZTY4YzI2YTdiYTBhZTJiMGYzZjllNjFlN2NhM2I1Yjc3
NTM1MTcuLmYyNWQ1OTRmMjE2ZmE2YjM1NjQyYjVmMDI2MjA5Yzk1OTU2YTg4MTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vV2ViS2l0T2ZmbGluZUF1ZGlvQ29u
dGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9XZWJLaXRPZmZs
aW5lQXVkaW9Db250ZXh0LmNwcApAQCAtMzYsMTEgKzM2LDEzIEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFdlYktpdE9mZmxpbmVBdWRpb0NvbnRl
eHQpOwogCi1pbmxpbmUgV2ViS2l0T2ZmbGluZUF1ZGlvQ29udGV4dDo6V2ViS2l0T2ZmbGluZUF1
ZGlvQ29udGV4dChEb2N1bWVudCYgZG9jdW1lbnQsIEF1ZGlvQnVmZmVyKiByZW5kZXJUYXJnZXQp
Ci0gICAgOiBXZWJLaXRBdWRpb0NvbnRleHQoZG9jdW1lbnQsIHJlbmRlclRhcmdldCkKK1dlYktp
dE9mZmxpbmVBdWRpb0NvbnRleHQ6OldlYktpdE9mZmxpbmVBdWRpb0NvbnRleHQoRG9jdW1lbnQm
IGRvY3VtZW50LCBSZWY8QXVkaW9CdWZmZXI+JiYgcmVuZGVyVGFyZ2V0KQorICAgIDogV2ViS2l0
QXVkaW9Db250ZXh0KGRvY3VtZW50LCBXVEZNb3ZlKHJlbmRlclRhcmdldCkpCiB7CiB9CiAKK1dl
YktpdE9mZmxpbmVBdWRpb0NvbnRleHQ6On5XZWJLaXRPZmZsaW5lQXVkaW9Db250ZXh0KCkgPSBk
ZWZhdWx0OworCiBFeGNlcHRpb25PcjxSZWY8V2ViS2l0T2ZmbGluZUF1ZGlvQ29udGV4dD4+IFdl
YktpdE9mZmxpbmVBdWRpb0NvbnRleHQ6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBj
b250ZXh0LCB1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxzLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMs
IGZsb2F0IHNhbXBsZVJhdGUpCiB7CiAgICAgLy8gRklYTUU6IEFkZCBzdXBwb3J0IGZvciB3b3Jr
ZXJzLgpAQCAtNTIsMTEgKzU0LDE2IEBAIEV4Y2VwdGlvbk9yPFJlZjxXZWJLaXRPZmZsaW5lQXVk
aW9Db250ZXh0Pj4gV2ViS2l0T2ZmbGluZUF1ZGlvQ29udGV4dDo6Y3JlYXRlKFNjCiAgICAgaWYg
KCFyZW5kZXJUYXJnZXQpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBTeW50YXhFcnJvciB9
OwogCi0gICAgYXV0byBhdWRpb0NvbnRleHQgPSBhZG9wdFJlZigqbmV3IFdlYktpdE9mZmxpbmVB
dWRpb0NvbnRleHQoZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpLCByZW5kZXJUYXJnZXQuZ2V0
KCkpKTsKKyAgICBhdXRvIGF1ZGlvQ29udGV4dCA9IGFkb3B0UmVmKCpuZXcgV2ViS2l0T2ZmbGlu
ZUF1ZGlvQ29udGV4dChkb3duY2FzdDxEb2N1bWVudD4oY29udGV4dCksIHJlbmRlclRhcmdldC5y
ZWxlYXNlTm9uTnVsbCgpKSk7CiAgICAgYXVkaW9Db250ZXh0LT5zdXNwZW5kSWZOZWVkZWQoKTsK
ICAgICByZXR1cm4gYXVkaW9Db250ZXh0OwogfQogCitjb25zdCBjaGFyKiBXZWJLaXRPZmZsaW5l
QXVkaW9Db250ZXh0OjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
IldlYktpdE9mZmxpbmVBdWRpb0NvbnRleHQiOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVRElPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9XZWJLaXRPZmZsaW5lQXVkaW9Db250ZXh0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dlYktpdE9mZmxpbmVBdWRpb0NvbnRleHQuaAppbmRl
eCBjMjU0ZWQ0MWZlMDNkNjFlN2VjYjU0ODdlMmM3OWM0NzQ2MTgyZjk0Li45ZWQ2ZTBlMzFjMGI5
YzU4MGQxMTdmMjVlYWIyNGIzNDU4YzA2NDJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL1dlYktpdE9mZmxpbmVBdWRpb0NvbnRleHQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dlYktpdE9mZmxpbmVBdWRpb0NvbnRleHQuaApAQCAt
MzIsOSArMzIsMTMgQEAgY2xhc3MgV2ViS2l0T2ZmbGluZUF1ZGlvQ29udGV4dCBmaW5hbCA6IHB1
YmxpYyBXZWJLaXRBdWRpb0NvbnRleHQgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoV2Vi
S2l0T2ZmbGluZUF1ZGlvQ29udGV4dCk7CiBwdWJsaWM6CiAgICAgc3RhdGljIEV4Y2VwdGlvbk9y
PFJlZjxXZWJLaXRPZmZsaW5lQXVkaW9Db250ZXh0Pj4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmLCB1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxzLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMs
IGZsb2F0IHNhbXBsZVJhdGUpOworICAgIH5XZWJLaXRPZmZsaW5lQXVkaW9Db250ZXh0KCk7CiAK
IHByaXZhdGU6Ci0gICAgV2ViS2l0T2ZmbGluZUF1ZGlvQ29udGV4dChEb2N1bWVudCYsIEF1ZGlv
QnVmZmVyKiByZW5kZXJUYXJnZXQpOworICAgIFdlYktpdE9mZmxpbmVBdWRpb0NvbnRleHQoRG9j
dW1lbnQmLCBSZWY8QXVkaW9CdWZmZXI+JiYgcmVuZGVyVGFyZ2V0KTsKKworICAgIC8vIEFjdGl2
ZURPTU9iamVjdCBBUEkuCisgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNv
bnN0IGZpbmFsOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDgxM2IwYjM0
MzZkMDg1YjFlMzQ2ZGUzYjY5OTIzOTBiODIxZGQwZDcuLmRkODkxYjk3MjdiMzE5MWI3ZjJiMTY0
NDM2MGViNWMwYzgzYjljZjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMC0wOS0xNiAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIE9mZmxpbmVBdWRpb0NvbnRl
eHQgY29uc3RydWN0b3Igc2hvdWxkIG5vdCB0aHJvdyB3aGVuIGdpdmVuIGEgYmFkIGJ1ZmZlciBs
ZW5ndGgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
NjU4NAorCisgICAgICAgIFJldmlld2VkIGJ5IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgUmVi
YXNlbGluZSB0ZXN0IG5vdyB0aGF0IG1vcmUgY2hlY2tzIGFyZSBwYXNzaW5nLgorCisgICAgICAg
ICogd2ViYXVkaW8vZG9tLWV4Y2VwdGlvbnMtZXhwZWN0ZWQudHh0OgorCiAyMDIwLTA5LTE2ICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wb3J0IE9zY2lsbGF0
b3JOb2RlIGxheW91dCB0ZXN0cyBmcm9tIEJsaW5rCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93
ZWJhdWRpby9kb20tZXhjZXB0aW9ucy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJhdWRp
by9kb20tZXhjZXB0aW9ucy1leHBlY3RlZC50eHQKaW5kZXggZDY2NWMzZjE0ZjU4OGZhMjcxYTdh
ODY4ZDIyN2ZmNDBlMWEyZjMzZS4uMDU2NTViZmNmMzAwMDY1NDVhZGZkMDFjZmZkYTAxMWRmZWRk
MGQ2YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZG9tLWV4Y2VwdGlvbnMtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2RvbS1leGNlcHRpb25zLWV4cGVj
dGVkLnR4dApAQCAtMTYsNyArMTYsNyBAQCBQQVNTIEV4ZWN1dGluZyAiYXVkaW9wYXJhbSIKIFBB
U1MgRXhlY3V0aW5nICJiaXF1YWQiIAogUEFTUyBFeGVjdXRpbmcgIm9mZmxpbmUtYXVkaW8tY29u
dGV4dCIgCiBQQVNTIEV4ZWN1dGluZyAiaW52YWxpZC1vZmZsaW5lLWF1ZGlvLWNvbnRleHQtcGFy
YW1ldGVycyIgCi1GQUlMIEV4ZWN1dGluZyAiaW52YWxpZC1mcmFtZS1sZW5ndGgiIHByb21pc2Vf
dGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjog
dW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ3Rlc3RDb250ZXh0LnN0YXJ0
UmVuZGVyaW5nJykiCitQQVNTIEV4ZWN1dGluZyAiaW52YWxpZC1mcmFtZS1sZW5ndGgiIAogUEFT
UyBFeGVjdXRpbmcgIndhdmVzaGFwZXIiIAogUEFTUyBFeGVjdXRpbmcgImF1ZGlvLWJ1ZmZlci1z
b3VyY2UiIAogUEFTUyBFeGVjdXRpbmcgIm9zY2lsbGF0b3IiIApAQCAtMTQzLDcgKzE0Myw5IEBA
IFBBU1MgICBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4dCgxLCAxMDAsIDFlNikgdGhyZXcgU3ludGF4
RXJyb3I6ICJzYW1wbGVSYXRlIGlzIG5vCiBQQVNTICAgbmV3IE9mZmxpbmVBdWRpb0NvbnRleHQo
MSwgMCwgNDQxMDApIHRocmV3IFN5bnRheEVycm9yOiAibGVuZ3RoIGNhbm5vdCBiZSAwIi4gCiBQ
QVNTIDwgW2ludmFsaWQtb2ZmbGluZS1hdWRpby1jb250ZXh0LXBhcmFtZXRlcnNdIEFsbCBhc3Nl
cnRpb25zIHBhc3NlZC4gKHRvdGFsIDUgYXNzZXJ0aW9ucykgCiBQQVNTID4gW2ludmFsaWQtZnJh
bWUtbGVuZ3RoXSAgCi1GQUlMIFggdGVzdENvbnRleHQgPSBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4
dCgxLCAtODgyMDAwMDAwMDAwMDAsIDQ0MTAwKSBpbmNvcnJlY3RseSB0aHJldyBTeW50YXhFcnJv
cjogIlVuYWJsZSB0byBjcmVhdGUgQXVkaW9CdWZmZXIiLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQg
dHJ1ZSBnb3QgZmFsc2UKK1BBU1MgICB0ZXN0Q29udGV4dCA9IG5ldyBPZmZsaW5lQXVkaW9Db250
ZXh0KDEsIC04ODIwMDAwMDAwMDAwMCwgNDQxMDApIGRpZCBub3QgdGhyb3cgYW4gZXhjZXB0aW9u
LiAKK1BBU1MgICB0ZXN0Q29udGV4dC5zdGFydFJlbmRlcmluZygpIHJlamVjdGVkIGNvcnJlY3Rs
eSB3aXRoIEludmFsaWRTdGF0ZUVycm9yOiBGYWlsZWQgdG8gY3JlYXRlIGF1ZGlvIGJ1ZmZlci4g
CitQQVNTIDwgW2ludmFsaWQtZnJhbWUtbGVuZ3RoXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0
b3RhbCAyIGFzc2VydGlvbnMpIAogUEFTUyA+IFt3YXZlc2hhcGVyXSAgCiBQQVNTICAgbm9kZS5v
dmVyc2FtcGxlID0gIjl4IiBkaWQgbm90IHRocm93IGFuIGV4Y2VwdGlvbi4gCiBQQVNTICAgbm9k
ZS5vdmVyc2FtcGxlIGlzIGVxdWFsIHRvIG5vbmUuIApAQCAtMjU4LDUgKzI2MCw1IEBAIFBBU1Mg
ICBvc2Mubm90ZU9mZiBpcyBlcXVhbCB0byB1bmRlZmluZWQuCiBQQVNTICAgc291cmNlLm5vdGVP
biBpcyBlcXVhbCB0byB1bmRlZmluZWQuIAogUEFTUyAgIHNvdXJjZS5ub3RlT2ZmIGlzIGVxdWFs
IHRvIHVuZGVmaW5lZC4gCiBQQVNTIDwgW21pc2NdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRv
dGFsIDQgYXNzZXJ0aW9ucykgCi1GQUlMICMgQVVESVQgVEFTSyBSVU5ORVIgRklOSVNIRUQ6IDIg
b3V0IG9mIDI0IHRhc2tzIHdlcmUgZmFpbGVkLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBn
b3QgZmFsc2UKK0ZBSUwgIyBBVURJVCBUQVNLIFJVTk5FUiBGSU5JU0hFRDogMSBvdXQgb2YgMjQg
dGFza3Mgd2VyZSBmYWlsZWQuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQog
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>