<?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>200138</bug_id>
          
          <creation_ts>2019-07-25 14:58:32 -0700</creation_ts>
          <short_desc>[iOS] WebPage::TouchEventSync() &amp; WebPage::GetPositionInformation() sync IPC causes UIProcess hangs</short_desc>
          <delta_ts>2019-09-10 08:39:43 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=200126</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=201644</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1555904</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-07-25 14:58:32 -0700</bug_when>
    <thetext>WebPage::TouchEventSync() &amp; WebPage::GetPositionInformation() sync IPC causes UIProcess hangs on iOS when the WebContent process is unresponsive due to a sync IPC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1555911</commentid>
    <comment_count>1</comment_count>
      <attachid>374906</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-07-25 15:05:10 -0700</bug_when>
    <thetext>Created attachment 374906
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1555912</commentid>
    <comment_count>2</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-07-25 15:05:31 -0700</bug_when>
    <thetext>&lt;rdar://problem/52698157&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1555914</commentid>
    <comment_count>3</comment_count>
      <attachid>374907</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-07-25 15:06:23 -0700</bug_when>
    <thetext>Created attachment 374907
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1555916</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-07-25 15:10:14 -0700</bug_when>
    <thetext>This is an alternative to Bug 200126 &amp; Bug 200107.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1555953</commentid>
    <comment_count>5</comment_count>
      <attachid>374921</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-07-25 16:17:13 -0700</bug_when>
    <thetext>Created attachment 374921
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556111</commentid>
    <comment_count>6</comment_count>
      <attachid>374965</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-07-26 08:53:56 -0700</bug_when>
    <thetext>Created attachment 374965
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556136</commentid>
    <comment_count>7</comment_count>
      <attachid>374970</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-07-26 10:07:15 -0700</bug_when>
    <thetext>Created attachment 374970
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556138</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-07-26 10:07:36 -0700</bug_when>
    <thetext>*** Bug 200126 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556152</commentid>
    <comment_count>9</comment_count>
      <attachid>374970</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-07-26 10:50:42 -0700</bug_when>
    <thetext>Comment on attachment 374970
Patch

Patch is ready for review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556160</commentid>
    <comment_count>10</comment_count>
      <attachid>374970</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2019-07-26 11:14:04 -0700</bug_when>
    <thetext>Comment on attachment 374970
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556169</commentid>
    <comment_count>11</comment_count>
      <attachid>374970</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-07-26 11:27:34 -0700</bug_when>
    <thetext>Comment on attachment 374970
Patch

Clearing flags on attachment: 374970

Committed r247868: &lt;https://trac.webkit.org/changeset/247868&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556170</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-07-26 11:27:36 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>374906</attachid>
            <date>2019-07-25 15:05:10 -0700</date>
            <delta_ts>2019-07-25 15:06:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200138-20190725150509.patch</filename>
            <type>text/plain</type>
            <size>24263</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3ODM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGVlOTAxYzMzMzI2MDRlMWYz
Y2EzYTg3YjA5NjAyMGU0Zjc5OTE2Y2QuLjA4MTU4ZjkwNGYzODNiZmJkMDBmZTdjZWU2ZmJjMjA5
YzBlZTczMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTMgQEAKKzIwMTktMDctMjUgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBXZWJQYWdlOjpUb3VjaEV2
ZW50U3luYygpICYgV2ViUGFnZTo6R2V0UG9zaXRpb25JbmZvcm1hdGlvbigpIHN5bmMgSVBDIGNh
dXNlcyBVSVByb2Nlc3MgaGFuZ3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwMDEzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFJldmVydCBtb3N0IG9mIHIyNDc4MjIgYW5kIHVzZSBhbiBhbHRlcm5hdGl2
ZSBhcHByb2FjaCB0byBhZGRyZXNzIGhhbmdzLiBJbiB0aGlzIHBhdGNoLCB0aGUgcHJvcG9zYWwK
KyAgICAgICAgaXMgdG8gYWRkIGEgU2VuZFN5bmNPcHRpb246OkZvcmNlRGlzcGF0Y2hFdmVuSWZE
ZXN0aW5hdGlvbklzV2FpdGluZ0ZvclN5bmNSZXBseSBmbGFnIG9uIHRoZQorICAgICAgICBXZWJQ
YWdlOjpUb3VjaEV2ZW50U3luYygpICYgV2ViUGFnZTo6R2V0UG9zaXRpb25JbmZvcm1hdGlvbigp
IHNlbmRTeW5jKCkgY2FsbHMgaW4gdGhlIFVJUHJvY2Vzcy4KKyAgICAgICAgVGhvc2Ugd2lsbCBj
YXVzZSB0aGlzIElQQ3MgdG8gZ2V0IGRpc3BhdGNoZWQgaW4gdGhlIFdlYkNvbnRlbnQgcHJvY2Vz
cywgZXZlbiBpZiB0aGUgV2ViQ29udGVudCBwcm9jZXNzCisgICAgICAgIGlzIGl0c2VsZiBjdXJy
ZW50bHkgc3R1Y2sgb24gc3luY2hyb25vdXMgSVBDLiBCZWNhdXNlIHJlLWVudGVyaW5nIFdlYkNv
cmUgb24gc3luYyBJUEMgaXMgZ2VuZXJhbGx5CisgICAgICAgIHVuc2FmZSwgdGhpcyBwYXRjaCBh
bHNvIHVwZGF0ZXMgdGhlIFdlYlBhZ2U6OmdldFBvc2l0aW9uSW5mb3JtYXRpb24oKSAmIFdlYlBh
Z2U6OnRvdWNoRXZlbnRTeW5jKCkKKyAgICAgICAgdG8gcmV0dXJuIGVhcmx5IChpLmUuIGNhbmNl
bGxlZCkgaWYgdGhleSBnZXQgY2FsbGVkIHdoaWxlIHRoZSBXZWJDb250ZW50IHByb2Nlc3MgaXMg
c3R1Y2sgb24gYQorICAgICAgICBzZW5kU3luYy4KKworICAgICAgICBUaGlzIGFwcHJvYWNoIHNo
b3VsZCBhZGRyZXNzIHRoZSBVSVByb2Nlc3MgaGFuZ3MgY2F1c2VkIGJ5IHRoZSBXZWJQYWdlOjpU
b3VjaEV2ZW50U3luYygpIGFuZAorICAgICAgICBXZWJQYWdlOjpHZXRQb3NpdGlvbkluZm9ybWF0
aW9uKCkgc3luYyBJUEMgbWVzc2FnZXMuIEl0IHNob3VsZCBiZSBzYWZlIGJlY2F1c2Ugd2UgZG8g
bm90IHJlLWVudGVyCisgICAgICAgIFdlYkNvcmUuIFRoZSBvbmx5IGRyYXdiYWNrIGlzIHRoYXQg
dGhvc2UgSVBDcyB3aWxsIGJlIGNhbmNlbGxlZCAoZWFybHkgcmV0dXJuIHdpdGggZGVmYXVsdCB2
YWx1ZSkKKyAgICAgICAgd2hlbiB0aGUgV2ViQ29udGVudCBwcm9jZXNzIGlzIGJ1c3kuIEhvd2V2
ZXIsIEkgYW0gYmVpbmcgdG9sZCB0aGF0IHRoaXMgaXMgbGlrZWx5IGFjY2VwdGFibGUgaW4KKyAg
ICAgICAgcHJhY3RpY2UuCisKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHA6
CisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246OlN5bmNNZXNzYWdlU3RhdGU6OmluY3JlbWVudFdh
aXRpbmdGb3JTeW5jUmVwbHlDb3VudCk6CisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246OlN5bmNN
ZXNzYWdlU3RhdGU6OmRlY3JlbWVudFdhaXRpbmdGb3JTeW5jUmVwbHlDb3VudCk6CisgICAgICAg
IChJUEM6OkNvbm5lY3Rpb246OlN5bmNNZXNzYWdlU3RhdGU6OmlzV2FpdGluZ0ZvclN5bmNSZXBs
eSBjb25zdCk6CisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246OlN5bmNNZXNzYWdlU3RhdGU6OnBy
b2Nlc3NJbmNvbWluZ01lc3NhZ2UpOgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjpzZW5kTWVz
c2FnZSk6CisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246OmlzV2FpdGluZ0ZvclN5bmNSZXBseSk6
CisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246OnNlbmRTeW5jTWVzc2FnZSk6CisgICAgICAgICog
UGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQ
cm94eTo6dGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1Jl
cGx5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5OjpoYW5kbGVUb3VjaEV2ZW50U3luY2hyb25vdXNseSk6CisgICAg
ICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAg
ICgtW1dLQ29udGVudFZpZXcgZW5zdXJlUG9zaXRpb25JbmZvcm1hdGlvbklzVXBUb0RhdGU6XSk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnRlc3RQcm9jZXNzSW5jb21pbmdT
eW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdEFsZXJ0KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Q2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0Q29uZmlybSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdFByb21wdCk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp0b3VjaEV2
ZW50U3luYyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnRlc3RQcm9jZXNzSW5jb21pbmdT
eW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2VuZFN5bmNX
aXRoRGVsYXllZFJlcGx5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBh
Z2VJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmdldFBvc2l0aW9uSW5mb3JtYXRp
b24pOgorCiAyMDE5LTA3LTI1ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAog
ICAgICAgICBNYWtlIE5ldHdvcmtTZXNzaW9uIG5vIGxvbmdlciBSZWZDb3VudGVkCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwCmluZGV4IDZjYmViYTlmMDQyZjJiNGQ0
YjA1YTBjZGRhZjRkMGJiOGQ3YjVlMjMuLjc4ZWI0MmI5YjU0YjE3ZGE0MjY0YTdkZDA4YWE0MDUz
ZDdjZDU0YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwCkBA
IC05OCw4ICs5OCwyMyBAQCBwdWJsaWM6CiAgICAgLy8gZnJvbSB0aGF0IGNvbm5lY3Rpb24gYW5k
IHB1dCB0aGUgb3RoZXIgbWVzc2FnZXMgYmFjayBpbiB0aGUgcXVldWUuCiAgICAgdm9pZCBkaXNw
YXRjaE1lc3NhZ2VzKENvbm5lY3Rpb24qIGFsbG93ZWRDb25uZWN0aW9uKTsKIAotICAgIHZvaWQg
aW5jcmVtZW50UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVw
bHlDb3VudCgpIHsgKyttX3Byb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9y
U3luY1JlcGx5Q291bnQ7IH0KLSAgICB2b2lkIGRlY3JlbWVudFByb2Nlc3NJbmNvbWluZ1N5bmNN
ZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5Q291bnQoKSB7IC0tbV9wcm9jZXNzSW5jb21p
bmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseUNvdW50OyB9CisgICAgdm9pZCBp
bmNyZW1lbnRXYWl0aW5nRm9yU3luY1JlcGx5Q291bnQoKQorICAgIHsKKyAgICAgICAgQVNTRVJU
KFJ1bkxvb3A6OmlzTWFpbigpKTsKKyAgICAgICAgKyttX3dhaXRpbmdGb3JTeW5jUmVwbHlDb3Vu
dDsKKyAgICB9CisgICAgdm9pZCBkZWNyZW1lbnRXYWl0aW5nRm9yU3luY1JlcGx5Q291bnQoKQor
ICAgIHsKKyAgICAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKKyAgICAgICAgQVNTRVJU
KG1fd2FpdGluZ0ZvclN5bmNSZXBseUNvdW50KTsKKyAgICAgICAgLS1tX3dhaXRpbmdGb3JTeW5j
UmVwbHlDb3VudDsKKyAgICB9CisgICAgCisgICAgYm9vbCBpc1dhaXRpbmdGb3JTeW5jUmVwbHko
KSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKKyAgICAg
ICAgcmV0dXJuIG1fd2FpdGluZ0ZvclN5bmNSZXBseUNvdW50ID4gMDsKKyAgICB9CiAKIHByaXZh
dGU6CiAgICAgdm9pZCBkaXNwYXRjaE1lc3NhZ2VBbmRSZXNldERpZFNjaGVkdWxlRGlzcGF0Y2hN
ZXNzYWdlc0ZvckNvbm5lY3Rpb24oQ29ubmVjdGlvbiYpOwpAQCAtMTE4LDcgKzEzMyw3IEBAIHBy
aXZhdGU6CiAgICAgfTsKICAgICBWZWN0b3I8Q29ubmVjdGlvbkFuZEluY29taW5nTWVzc2FnZT4g
bV9tZXNzYWdlc1RvRGlzcGF0Y2hXaGlsZVdhaXRpbmdGb3JTeW5jUmVwbHk7CiAKLSAgICBzdGQ6
OmF0b21pYzx1bnNpZ25lZD4gbV9wcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGlu
Z0ZvclN5bmNSZXBseUNvdW50IHsgMCB9OworICAgIHVuc2lnbmVkIG1fd2FpdGluZ0ZvclN5bmNS
ZXBseUNvdW50IHsgMCB9OwogfTsKIAogQ29ubmVjdGlvbjo6U3luY01lc3NhZ2VTdGF0ZSYgQ29u
bmVjdGlvbjo6U3luY01lc3NhZ2VTdGF0ZTo6c2luZ2xldG9uKCkKQEAgLTEzOSwxNiArMTU0LDcg
QEAgQ29ubmVjdGlvbjo6U3luY01lc3NhZ2VTdGF0ZTo6U3luY01lc3NhZ2VTdGF0ZSgpCiAKIGJv
b2wgQ29ubmVjdGlvbjo6U3luY01lc3NhZ2VTdGF0ZTo6cHJvY2Vzc0luY29taW5nTWVzc2FnZShD
b25uZWN0aW9uJiBjb25uZWN0aW9uLCBzdGQ6OnVuaXF1ZV9wdHI8RGVjb2Rlcj4mIG1lc3NhZ2Up
CiB7Ci0gICAgYm9vbCBzaG91bGREaXNwYXRjaE1lc3NhZ2VXaGVuV2FpdGluZ0ZvclN5bmNSZXBs
eSA9IG1lc3NhZ2UtPnNob3VsZERpc3BhdGNoTWVzc2FnZVdoZW5XYWl0aW5nRm9yU3luY1JlcGx5
KCk7Ci0KLSAgICAvLyBXZSBkaXNwYXRjaCBzeW5jaHJvbm91cyBtZXNzYWdlcyBldmVuIGlmIHNo
b3VsZERpc3BhdGNoTWVzc2FnZVdoZW5XYWl0aW5nRm9yU3luY1JlcGx5IHJldHVybnMgZmFsc2Ug
aWYgdGhlCi0gICAgLy8gc2VuZFN5bmMoKSB1c2VkIFNlbmRTeW5jT3B0aW9uOjpQcm9jZXNzSW5j
b21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseS4gVGhpcyBpcyB1c2VkIGZv
ciBzb21lIG1lc3NhZ2VzCi0gICAgLy8gaW4gdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyAod2hpY2gg
bm9ybWFsbHkgZG9lcyBub3QgZGlzcGF0Y2ggbWVzc2FnZXMgd2hlbiB3YWl0aW5nIGZvciBhIHN5
bmMgcmVwbHkpLCB0byBhdm9pZAotICAgIC8vIGhhbmdzLgotICAgIGlmICghc2hvdWxkRGlzcGF0
Y2hNZXNzYWdlV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkgJiYgbWVzc2FnZS0+aXNTeW5jTWVzc2Fn
ZSgpICYmIG1fcHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVw
bHlDb3VudC5sb2FkKCkpCi0gICAgICAgIHNob3VsZERpc3BhdGNoTWVzc2FnZVdoZW5XYWl0aW5n
Rm9yU3luY1JlcGx5ID0gdHJ1ZTsKLQotICAgIGlmICghc2hvdWxkRGlzcGF0Y2hNZXNzYWdlV2hl
bldhaXRpbmdGb3JTeW5jUmVwbHkpCisgICAgaWYgKCFtZXNzYWdlLT5zaG91bGREaXNwYXRjaE1l
c3NhZ2VXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
ICAgICBDb25uZWN0aW9uQW5kSW5jb21pbmdNZXNzYWdlIGNvbm5lY3Rpb25BbmRJbmNvbWluZ01l
c3NhZ2UgeyBjb25uZWN0aW9uLCBXVEZNb3ZlKG1lc3NhZ2UpIH07CkBAIC00MTcsNyArNDIzLDcg
QEAgc3RkOjp1bmlxdWVfcHRyPEVuY29kZXI+IENvbm5lY3Rpb246OmNyZWF0ZVN5bmNNZXNzYWdl
RW5jb2RlcihTdHJpbmdSZWZlcmVuY2UgbWUKICAgICByZXR1cm4gZW5jb2RlcjsKIH0KIAotYm9v
bCBDb25uZWN0aW9uOjpzZW5kTWVzc2FnZShzdGQ6OnVuaXF1ZV9wdHI8RW5jb2Rlcj4gZW5jb2Rl
ciwgT3B0aW9uU2V0PFNlbmRPcHRpb24+IHNlbmRPcHRpb25zKQorYm9vbCBDb25uZWN0aW9uOjpz
ZW5kTWVzc2FnZShzdGQ6OnVuaXF1ZV9wdHI8RW5jb2Rlcj4gZW5jb2RlciwgT3B0aW9uU2V0PFNl
bmRPcHRpb24+IHNlbmRPcHRpb25zLCBTaG91bGRGb3JjZURpc3BhdGNoRXZlbklmRGVzdGluYXRp
b25Jc1dhaXRpbmdGb3JTeW5jUmVwbHkgc2hvdWxkRm9yY2VEaXNwYXRjaEV2ZW5JZkRlc3RpbmF0
aW9uSXNXYWl0aW5nRm9yU3luY1JlcGx5KQogewogICAgIGlmICghaXNWYWxpZCgpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CkBAIC00MzIsNyArNDM4LDggQEAgYm9vbCBDb25uZWN0aW9uOjpzZW5k
TWVzc2FnZShzdGQ6OnVuaXF1ZV9wdHI8RW5jb2Rlcj4gZW5jb2RlciwgT3B0aW9uU2V0PFNlbmRP
cHQKIAogICAgIGlmIChzZW5kT3B0aW9ucy5jb250YWlucyhTZW5kT3B0aW9uOjpEaXNwYXRjaE1l
c3NhZ2VFdmVuV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkpCiAgICAgICAgICYmICghbV9vbmx5U2Vu
ZE1lc3NhZ2VzQXNEaXNwYXRjaFdoZW5XYWl0aW5nRm9yU3luY1JlcGx5V2hlblByb2Nlc3NpbmdT
dWNoQU1lc3NhZ2UKLSAgICAgICAgICAgIHx8IG1faW5EaXNwYXRjaE1lc3NhZ2VNYXJrZWREaXNw
YXRjaFdoZW5XYWl0aW5nRm9yU3luY1JlcGx5Q291bnQpKQorICAgICAgICAgICAgfHwgbV9pbkRp
c3BhdGNoTWVzc2FnZU1hcmtlZERpc3BhdGNoV2hlbldhaXRpbmdGb3JTeW5jUmVwbHlDb3VudAor
ICAgICAgICAgICAgfHwgc2hvdWxkRm9yY2VEaXNwYXRjaEV2ZW5JZkRlc3RpbmF0aW9uSXNXYWl0
aW5nRm9yU3luY1JlcGx5ID09IFNob3VsZEZvcmNlRGlzcGF0Y2hFdmVuSWZEZXN0aW5hdGlvbklz
V2FpdGluZ0ZvclN5bmNSZXBseTo6WWVzKSkKICAgICAgICAgZW5jb2Rlci0+c2V0U2hvdWxkRGlz
cGF0Y2hNZXNzYWdlV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkodHJ1ZSk7CiAKICAgICB7CkBAIC01
NTQsNiArNTYxLDExIEBAIHN0ZDo6dW5pcXVlX3B0cjxEZWNvZGVyPiBDb25uZWN0aW9uOjp3YWl0
Rm9yTWVzc2FnZShTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpCiAgICAgcmV0dXJuIG51bGxw
dHI7CiB9CiAKK2Jvb2wgQ29ubmVjdGlvbjo6aXNXYWl0aW5nRm9yU3luY1JlcGx5KCkKK3sKKyAg
ICByZXR1cm4gU3luY01lc3NhZ2VTdGF0ZTo6c2luZ2xldG9uKCkuaXNXYWl0aW5nRm9yU3luY1Jl
cGx5KCk7Cit9CisKIHN0ZDo6dW5pcXVlX3B0cjxEZWNvZGVyPiBDb25uZWN0aW9uOjpzZW5kU3lu
Y01lc3NhZ2UodWludDY0X3Qgc3luY1JlcXVlc3RJRCwgc3RkOjp1bmlxdWVfcHRyPEVuY29kZXI+
IGVuY29kZXIsIFNlY29uZHMgdGltZW91dCwgT3B0aW9uU2V0PFNlbmRTeW5jT3B0aW9uPiBzZW5k
U3luY09wdGlvbnMpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKQEAgLTU3Nywx
OCArNTg5LDE3IEBAIHN0ZDo6dW5pcXVlX3B0cjxEZWNvZGVyPiBDb25uZWN0aW9uOjpzZW5kU3lu
Y01lc3NhZ2UodWludDY0X3Qgc3luY1JlcXVlc3RJRCwgc3RkCiAgICAgKyttX2luU2VuZFN5bmND
b3VudDsKIAogICAgIC8vIEZpcnN0IHNlbmQgdGhlIG1lc3NhZ2UuCi0gICAgc2VuZE1lc3NhZ2Uo
V1RGTW92ZShlbmNvZGVyKSwgSVBDOjpTZW5kT3B0aW9uOjpEaXNwYXRjaE1lc3NhZ2VFdmVuV2hl
bldhaXRpbmdGb3JTeW5jUmVwbHkpOworICAgIGF1dG8gc2hvdWxkRm9yY2VEaXNwYXRjaEV2ZW5J
ZkRlc3RpbmF0aW9uSXNXYWl0aW5nRm9yU3luY1JlcGx5ID0gc2VuZFN5bmNPcHRpb25zLmNvbnRh
aW5zKFNlbmRTeW5jT3B0aW9uOjpGb3JjZURpc3BhdGNoRXZlbklmRGVzdGluYXRpb25Jc1dhaXRp
bmdGb3JTeW5jUmVwbHkpID8gU2hvdWxkRm9yY2VEaXNwYXRjaEV2ZW5JZkRlc3RpbmF0aW9uSXNX
YWl0aW5nRm9yU3luY1JlcGx5OjpZZXMgOiBTaG91bGRGb3JjZURpc3BhdGNoRXZlbklmRGVzdGlu
YXRpb25Jc1dhaXRpbmdGb3JTeW5jUmVwbHk6Ok5vOworICAgIHNlbmRNZXNzYWdlKFdURk1vdmUo
ZW5jb2RlciksIElQQzo6U2VuZE9wdGlvbjo6RGlzcGF0Y2hNZXNzYWdlRXZlbldoZW5XYWl0aW5n
Rm9yU3luY1JlcGx5LCBzaG91bGRGb3JjZURpc3BhdGNoRXZlbklmRGVzdGluYXRpb25Jc1dhaXRp
bmdGb3JTeW5jUmVwbHkpOwogCi0gICAgaWYgKHNlbmRTeW5jT3B0aW9ucy5jb250YWlucyhTZW5k
U3luY09wdGlvbjo6UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5j
UmVwbHkpKQotICAgICAgICBTeW5jTWVzc2FnZVN0YXRlOjpzaW5nbGV0b24oKS5pbmNyZW1lbnRQ
cm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseUNvdW50KCk7
CisgICAgU3luY01lc3NhZ2VTdGF0ZTo6c2luZ2xldG9uKCkuaW5jcmVtZW50V2FpdGluZ0ZvclN5
bmNSZXBseUNvdW50KCk7CiAKICAgICAvLyBUaGVuIHdhaXQgZm9yIGEgcmVwbHkuIFdhaXRpbmcg
Zm9yIGEgcmVwbHkgY291bGQgaW52b2x2ZSBkaXNwYXRjaGluZyBpbmNvbWluZyBzeW5jIG1lc3Nh
Z2VzLCBzbwogICAgIC8vIGtlZXAgYW4gZXh0cmEgcmVmZXJlbmNlIHRvIHRoZSBjb25uZWN0aW9u
IGhlcmUgaW4gY2FzZSBpdCdzIGludmFsaWRhdGVkLgogICAgIFJlZjxDb25uZWN0aW9uPiBwcm90
ZWN0KCp0aGlzKTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGVjb2Rlcj4gcmVwbHkgPSB3YWl0Rm9y
U3luY1JlcGx5KHN5bmNSZXF1ZXN0SUQsIHRpbWVvdXQsIHNlbmRTeW5jT3B0aW9ucyk7CiAKLSAg
ICBpZiAoc2VuZFN5bmNPcHRpb25zLmNvbnRhaW5zKFNlbmRTeW5jT3B0aW9uOjpQcm9jZXNzSW5j
b21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSkpCi0gICAgICAgIFN5bmNN
ZXNzYWdlU3RhdGU6OnNpbmdsZXRvbigpLmRlY3JlbWVudFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNz
YWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5Q291bnQoKTsKKyAgICBTeW5jTWVzc2FnZVN0YXRl
OjpzaW5nbGV0b24oKS5kZWNyZW1lbnRXYWl0aW5nRm9yU3luY1JlcGx5Q291bnQoKTsKIAogICAg
IC0tbV9pblNlbmRTeW5jQ291bnQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm0vSVBDL0Nvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rp
b24uaAppbmRleCBhNDkwN2QxNzE1MGI1MWE4OGQ2NzE1ZWI1OTUwOTg1YTE3NTQ3Mzc5Li41MjUx
ZDg5MjdjNjZhZDM1MTk0ZDQyNDJhODUzZjYyMTQ0NjVjN2IzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0
Zm9ybS9JUEMvQ29ubmVjdGlvbi5oCkBAIC02OCw3ICs2OCw3IEBAIGVudW0gY2xhc3MgU2VuZFN5
bmNPcHRpb24gewogICAgIC8vIFVzZSB0aGlzIHRvIGluZm9ybSB0aGF0IHRoaXMgc3luYyBjYWxs
IHdpbGwgc3VzcGVuZCB0aGlzIHByb2Nlc3MgdW50aWwgdGhlIHVzZXIgcmVzcG9uZHMgd2l0aCBp
bnB1dC4KICAgICBJbmZvcm1QbGF0Zm9ybVByb2Nlc3NXaWxsU3VzcGVuZCA9IDEgPDwgMCwKICAg
ICBVc2VGdWxseVN5bmNocm9ub3VzTW9kZUZvclRlc3RpbmcgPSAxIDw8IDEsCi0gICAgUHJvY2Vz
c0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkgPSAxIDw8IDIsCisg
ICAgRm9yY2VEaXNwYXRjaEV2ZW5JZkRlc3RpbmF0aW9uSXNXYWl0aW5nRm9yU3luY1JlcGx5ID0g
MSA8PCAyLAogfTsKIAogZW51bSBjbGFzcyBXYWl0Rm9yT3B0aW9uIHsKQEAgLTE2NCw2ICsxNjQs
OCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldE9ubHlTZW5kTWVzc2FnZXNBc0Rpc3BhdGNoV2hl
bldhaXRpbmdGb3JTeW5jUmVwbHlXaGVuUHJvY2Vzc2luZ1N1Y2hBTWVzc2FnZShib29sKTsKICAg
ICB2b2lkIHNldFNob3VsZEV4aXRPblN5bmNNZXNzYWdlU2VuZEZhaWx1cmUoYm9vbCk7CisgICAg
CisgICAgc3RhdGljIGJvb2wgaXNXYWl0aW5nRm9yU3luY1JlcGx5KCk7CiAKICAgICAvLyBUaGUg
c2V0IGNhbGxiYWNrIHdpbGwgYmUgY2FsbGVkIG9uIHRoZSBjb25uZWN0aW9uIHdvcmsgcXVldWUg
d2hlbiB0aGUgY29ubmVjdGlvbiBpcyBjbG9zZWQsIAogICAgIC8vIGJlZm9yZSBkaWRDYWxsIGlz
IGNhbGxlZCBvbiB0aGUgY2xpZW50IHRocmVhZC4gTXVzdCBiZSBjYWxsZWQgYmVmb3JlIHRoZSBj
b25uZWN0aW9uIGlzIG9wZW5lZC4KQEAgLTIxOCw3ICsyMjAsOCBAQCBwdWJsaWM6CiAgICAgICAg
IHJldHVybiB3YWl0Rm9yQW5kRGlzcGF0Y2hJbW1lZGlhdGVseTxUPihkZXN0aW5hdGlvbklELnRv
VUludDY0KCksIHRpbWVvdXQsIHdhaXRGb3JPcHRpb25zKTsKICAgICB9CiAKLSAgICBib29sIHNl
bmRNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0cjxFbmNvZGVyPiwgT3B0aW9uU2V0PFNlbmRPcHRpb24+
IHNlbmRPcHRpb25zKTsKKyAgICBlbnVtIGNsYXNzIFNob3VsZEZvcmNlRGlzcGF0Y2hFdmVuSWZE
ZXN0aW5hdGlvbklzV2FpdGluZ0ZvclN5bmNSZXBseSB7IE5vLCBZZXMgfTsKKyAgICBib29sIHNl
bmRNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0cjxFbmNvZGVyPiwgT3B0aW9uU2V0PFNlbmRPcHRpb24+
IHNlbmRPcHRpb25zLCBTaG91bGRGb3JjZURpc3BhdGNoRXZlbklmRGVzdGluYXRpb25Jc1dhaXRp
bmdGb3JTeW5jUmVwbHkgPSBTaG91bGRGb3JjZURpc3BhdGNoRXZlbklmRGVzdGluYXRpb25Jc1dh
aXRpbmdGb3JTeW5jUmVwbHk6Ok5vKTsKICAgICB2b2lkIHNlbmRNZXNzYWdlV2l0aFJlcGx5KHVp
bnQ2NF90IHJlcXVlc3RJRCwgc3RkOjp1bmlxdWVfcHRyPEVuY29kZXI+LCBGdW5jdGlvbkRpc3Bh
dGNoZXImIHJlcGx5RGlzcGF0Y2hlciwgRnVuY3Rpb248dm9pZChzdGQ6OnVuaXF1ZV9wdHI8RGVj
b2Rlcj4pPiYmIHJlcGx5SGFuZGxlcik7CiAgICAgc3RkOjp1bmlxdWVfcHRyPEVuY29kZXI+IGNy
ZWF0ZVN5bmNNZXNzYWdlRW5jb2RlcihTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFt
ZSwgU3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lLCB1aW50NjRfdCBkZXN0aW5hdGlvbklELCB1
aW50NjRfdCYgc3luY1JlcXVlc3RJRCk7CiAgICAgc3RkOjp1bmlxdWVfcHRyPERlY29kZXI+IHNl
bmRTeW5jTWVzc2FnZSh1aW50NjRfdCBzeW5jUmVxdWVzdElELCBzdGQ6OnVuaXF1ZV9wdHI8RW5j
b2Rlcj4sIFNlY29uZHMgdGltZW91dCwgT3B0aW9uU2V0PFNlbmRTeW5jT3B0aW9uPiBzZW5kU3lu
Y09wdGlvbnMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggYTlkYzMyNzgwMTNkNjMwNTk0ZTljZGI3N2Y5
YjNiY2ZkN2YyMTU2OC4uMTQwZjQ5NDEyNzg2OWU5NDVkNzc0ZDY4YTFhMDYyNmI0Zjc3YzcyMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHkuY3BwCkBAIC0xMjExLDcgKzEyMTEsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNz
UHJveHk6OnRlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNS
ZXBseQogICAgICAgICByZXR1cm4gcmVwbHkoZmFsc2UpOwogCiAgICAgYm9vbCBoYW5kbGVkID0g
ZmFsc2U7Ci0gICAgaWYgKCFwYWdlLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZTo6VGVzdFBy
b2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5KCksIE1lc3Nh
Z2VzOjpXZWJQYWdlOjpUZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdG
b3JTeW5jUmVwbHk6OlJlcGx5KGhhbmRsZWQpKSkKKyAgICBpZiAoIXBhZ2UtPnNlbmRTeW5jKE1l
c3NhZ2VzOjpXZWJQYWdlOjpUZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRp
bmdGb3JTeW5jUmVwbHkoKSwgTWVzc2FnZXM6OldlYlBhZ2U6OlRlc3RQcm9jZXNzSW5jb21pbmdT
eW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseTo6UmVwbHkoaGFuZGxlZCksIFNlY29u
ZHM6OmluZmluaXR5KCksIElQQzo6U2VuZFN5bmNPcHRpb246OkZvcmNlRGlzcGF0Y2hFdmVuSWZE
ZXN0aW5hdGlvbklzV2FpdGluZ0ZvclN5bmNSZXBseSkpCiAgICAgICAgIHJldHVybiByZXBseShm
YWxzZSk7CiAgICAgcmVwbHkoaGFuZGxlZCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcAppbmRleCAyNmQ5ZjJkZWJmZTE0YTk1YzQyYjBkNmE5ZGQ4MjdjOTIyY2Zj
OGRjLi5hMDUyNmQwOGI4Zjg5ZmVlNGM0MWE2OWYyMDNhY2JjZWFiMjdlMTkwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTI2NjIsNyArMjY2Miw3IEBAIHZv
aWQgV2ViUGFnZVByb3h5OjpoYW5kbGVUb3VjaEV2ZW50U3luY2hyb25vdXNseShOYXRpdmVXZWJU
b3VjaEV2ZW50JiBldmVudCkKIAogICAgIG1fcHJvY2Vzcy0+cmVzcG9uc2l2ZW5lc3NUaW1lcigp
LnN0YXJ0KCk7CiAgICAgYm9vbCBoYW5kbGVkID0gZmFsc2U7Ci0gICAgYm9vbCByZXBseVJlY2Vp
dmVkID0gbV9wcm9jZXNzLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZTo6VG91Y2hFdmVudFN5
bmMoZXZlbnQpLCBNZXNzYWdlczo6V2ViUGFnZTo6VG91Y2hFdmVudFN5bmM6OlJlcGx5KGhhbmRs
ZWQpLCBtX3BhZ2VJRCwgMV9zKTsKKyAgICBib29sIHJlcGx5UmVjZWl2ZWQgPSBtX3Byb2Nlc3Mt
PnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlOjpUb3VjaEV2ZW50U3luYyhldmVudCksIE1lc3Nh
Z2VzOjpXZWJQYWdlOjpUb3VjaEV2ZW50U3luYzo6UmVwbHkoaGFuZGxlZCksIG1fcGFnZUlELCAx
X3MsIElQQzo6U2VuZFN5bmNPcHRpb246OkZvcmNlRGlzcGF0Y2hFdmVuSWZEZXN0aW5hdGlvbklz
V2FpdGluZ0ZvclN5bmNSZXBseSk7CiAgICAgLy8gSWYgdGhlIHN5bmMgcmVxdWVzdCBoYXMgdGlt
ZWQgb3V0LCB3ZSBzaG91bGQgY29uc2lkZXIgdGhlIGV2ZW50IGhhbmRsZWQuIFRoZSBXZWIgUHJv
Y2VzcyBpcyB0b28gYnVzeSB0byBhbnN3ZXIgYW55IHF1ZXN0aW9ucywgc28gdGhlIGRlZmF1bHQg
YWN0aW9uIGlzIGFsc28gbGlrZWx5IHRvIGhhdmUgaXNzdWVzLgogICAgIGlmICghcmVwbHlSZWNl
aXZlZCkKICAgICAgICAgaGFuZGxlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCA2NzVhZjdi
MjZlOTY1ZDg2ODdiZWUyODMyODdlOWM2ZDIyOGJjNTU3Li42YWFiYjBkNzZjZmE1YWVkNzA0NThj
ZjQ0NzYwN2FhYTMxM2M3ZmFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTE5OTAsNyArMTk5MCw3IEBA
IC0gKEJPT0wpZW5zdXJlUG9zaXRpb25JbmZvcm1hdGlvbklzVXBUb0RhdGU6KFdlYktpdDo6SW50
ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlCiAgICAgaWYgKFtzZWxmIF9oYXNWYWxpZE91dHN0YW5k
aW5nUG9zaXRpb25JbmZvcm1hdGlvblJlcXVlc3Q6cmVxdWVzdF0pCiAgICAgICAgIHJldHVybiBj
b25uZWN0aW9uLT53YWl0Rm9yQW5kRGlzcGF0Y2hJbW1lZGlhdGVseTxNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpEaWRSZWNlaXZlUG9zaXRpb25JbmZvcm1hdGlvbj4oX3BhZ2UtPnBhZ2VJRCgpLCAx
X3MsIElQQzo6V2FpdEZvck9wdGlvbjo6SW50ZXJydXB0V2FpdGluZ0lmU3luY01lc3NhZ2VBcnJp
dmVzKTsKIAotICAgIGJvb2wgcmVjZWl2ZWRSZXNwb25zZSA9IF9wYWdlLT5wcm9jZXNzKCkuc2Vu
ZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2U6OkdldFBvc2l0aW9uSW5mb3JtYXRpb24ocmVxdWVzdCks
IE1lc3NhZ2VzOjpXZWJQYWdlOjpHZXRQb3NpdGlvbkluZm9ybWF0aW9uOjpSZXBseShfcG9zaXRp
b25JbmZvcm1hdGlvbiksIF9wYWdlLT5wYWdlSUQoKSwgMV9zKTsKKyAgICBib29sIHJlY2VpdmVk
UmVzcG9uc2UgPSBfcGFnZS0+cHJvY2VzcygpLnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlOjpH
ZXRQb3NpdGlvbkluZm9ybWF0aW9uKHJlcXVlc3QpLCBNZXNzYWdlczo6V2ViUGFnZTo6R2V0UG9z
aXRpb25JbmZvcm1hdGlvbjo6UmVwbHkoX3Bvc2l0aW9uSW5mb3JtYXRpb24pLCBfcGFnZS0+cGFn
ZUlEKCksIDFfcywgSVBDOjpTZW5kU3luY09wdGlvbjo6Rm9yY2VEaXNwYXRjaEV2ZW5JZkRlc3Rp
bmF0aW9uSXNXYWl0aW5nRm9yU3luY1JlcGx5KTsKICAgICBfaGFzVmFsaWRQb3NpdGlvbkluZm9y
bWF0aW9uID0gcmVjZWl2ZWRSZXNwb25zZSAmJiBfcG9zaXRpb25JbmZvcm1hdGlvbi5jYW5CZVZh
bGlkOwogICAgIAogICAgIC8vIEZJWE1FOiBXZSBuZWVkIHRvIGNsZWFuIHVwIHRoZXNlIGhhbmRs
ZXJzIGluIHRoZSBldmVudCB0aGF0IHdlIGFyZSBub3QgYWJsZSB0byBjb2xsZWN0IGRhdGEsIG9y
IGlmIHRoZSBXZWJQcm9jZXNzIGNyYXNoZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDk5
MjFkZmIwZDRiYTFhYjY0ZDUwZmU5MGY2MjY4NTZlMzdiMzFmOGQuLjkzZTNlYTBlZGM3NjI5MTEx
NjIyZjdjOTk0YjJlMjIxZTE1YzI5YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC0zMDgs
NyArMzA4LDcgQEAgUGFnZSogV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVXaW5kb3coRnJhbWUmIGZy
YW1lLCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiByZXF1ZXMKIGJvb2wgV2ViQ2hyb21lQ2xpZW50
Ojp0ZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHko
KQogewogICAgIGJvb2wgaGFuZGxlZCA9IGZhbHNlOwotICAgIGlmICghV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNl
bmRTeW5jKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6VGVzdFByb2Nl
c3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5KG1fcGFnZS5wYWdl
SUQoKSksIE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6VGVzdFByb2Nl
c3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5OjpSZXBseShoYW5k
bGVkKSwgMCwgU2Vjb25kczo6aW5maW5pdHkoKSwgSVBDOjpTZW5kU3luY09wdGlvbjo6UHJvY2Vz
c0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkpKQorICAgIGlmICgh
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCku
Y29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6VGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1Jl
cGx5KG1fcGFnZS5wYWdlSUQoKSksIE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6VGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1Jl
cGx5OjpSZXBseShoYW5kbGVkKSwgMCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICByZXR1
cm4gaGFuZGxlZDsKIH0KQEAgLTQ2OCw3ICs0NjgsNyBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6
cnVuSmF2YVNjcmlwdEFsZXJ0KEZyYW1lJiBmcmFtZSwgY29uc3QgU3RyaW5nJiBhbGVydFRleHQp
CiAKICAgICBIYW5nRGV0ZWN0aW9uRGlzYWJsZXIgaGFuZ0RldGVjdGlvbkRpc2FibGVyOwogCi0g
ICAgbV9wYWdlLnNlbmRTeW5jV2l0aERlbGF5ZWRSZXBseShNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpSdW5KYXZhU2NyaXB0QWxlcnQod2ViRnJhbWUtPmZyYW1lSUQoKSwgU2VjdXJpdHlPcmlnaW5E
YXRhOjpmcm9tRnJhbWUoJmZyYW1lKSwgYWxlcnRUZXh0KSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6UnVuSmF2YVNjcmlwdEFsZXJ0OjpSZXBseSgpLCBJUEM6OlNlbmRTeW5jT3B0aW9uOjpQcm9j
ZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSk7CisgICAgbV9w
YWdlLnNlbmRTeW5jV2l0aERlbGF5ZWRSZXBseShNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5K
YXZhU2NyaXB0QWxlcnQod2ViRnJhbWUtPmZyYW1lSUQoKSwgU2VjdXJpdHlPcmlnaW5EYXRhOjpm
cm9tRnJhbWUoJmZyYW1lKSwgYWxlcnRUZXh0KSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVu
SmF2YVNjcmlwdEFsZXJ0OjpSZXBseSgpKTsKIH0KIAogYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJ1
bkphdmFTY3JpcHRDb25maXJtKEZyYW1lJiBmcmFtZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQpA
QCAtNDg1LDcgKzQ4NSw3IEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0Q29u
ZmlybShGcmFtZSYgZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKICAgICBIYW5nRGV0ZWN0
aW9uRGlzYWJsZXIgaGFuZ0RldGVjdGlvbkRpc2FibGVyOwogCiAgICAgYm9vbCByZXN1bHQgPSBm
YWxzZTsKLSAgICBpZiAoIW1fcGFnZS5zZW5kU3luY1dpdGhEZWxheWVkUmVwbHkoTWVzc2FnZXM6
OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdENvbmZpcm0od2ViRnJhbWUtPmZyYW1lSUQoKSwg
U2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tRnJhbWUoJmZyYW1lKSwgbWVzc2FnZSksIE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRDb25maXJtOjpSZXBseShyZXN1bHQpLCBJUEM6
OlNlbmRTeW5jT3B0aW9uOjpQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0Zv
clN5bmNSZXBseSkpCisgICAgaWYgKCFtX3BhZ2Uuc2VuZFN5bmNXaXRoRGVsYXllZFJlcGx5KE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRDb25maXJtKHdlYkZyYW1lLT5mcmFt
ZUlEKCksIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbUZyYW1lKCZmcmFtZSksIG1lc3NhZ2UpLCBN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0Q29uZmlybTo6UmVwbHkocmVzdWx0
KSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJldHVybiByZXN1bHQ7CkBAIC01MDQs
NyArNTA0LDcgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRQcm9tcHQoRnJh
bWUmIGZyYW1lLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGMKIAogICAgIEhhbmdEZXRlY3Rpb25E
aXNhYmxlciBoYW5nRGV0ZWN0aW9uRGlzYWJsZXI7CiAKLSAgICBpZiAoIW1fcGFnZS5zZW5kU3lu
Y1dpdGhEZWxheWVkUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdFBy
b21wdCh3ZWJGcmFtZS0+ZnJhbWVJRCgpLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21GcmFtZSgm
ZnJhbWUpLCBtZXNzYWdlLCBkZWZhdWx0VmFsdWUpLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpS
dW5KYXZhU2NyaXB0UHJvbXB0OjpSZXBseShyZXN1bHQpLCBJUEM6OlNlbmRTeW5jT3B0aW9uOjpQ
cm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSkpCisgICAg
aWYgKCFtX3BhZ2Uuc2VuZFN5bmNXaXRoRGVsYXllZFJlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OlJ1bkphdmFTY3JpcHRQcm9tcHQod2ViRnJhbWUtPmZyYW1lSUQoKSwgU2VjdXJpdHlPcmln
aW5EYXRhOjpmcm9tRnJhbWUoJmZyYW1lKSwgbWVzc2FnZSwgZGVmYXVsdFZhbHVlKSwgTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdFByb21wdDo6UmVwbHkocmVzdWx0KSkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJldHVybiAhcmVzdWx0LmlzTnVsbCgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA4MDA2N2Nl
OWM1NDFiZDI0NTAwNWFlMTkxNTlkOTVkNzc2ZDgyZGIwLi40OTZkNjQyNDBhNGRlMTdlN2U2MjMx
Nzg5ZTQ0OTFkMmEwZjYwYzA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcApAQCAtMjkxMiw2ICsyOTEyLDEwIEBAIHZvaWQgV2ViUGFnZTo6ZGlzcGF0
Y2hUb3VjaEV2ZW50KGNvbnN0IFdlYlRvdWNoRXZlbnQmIHRvdWNoRXZlbnQsIGJvb2wmIGhhbmRs
ZWQpCiAKIHZvaWQgV2ViUGFnZTo6dG91Y2hFdmVudFN5bmMoY29uc3QgV2ViVG91Y2hFdmVudCYg
dG91Y2hFdmVudCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiByZXBseSkKIHsKKyAg
ICAvLyBBdm9pZCBVSVByb2Nlc3MgaGFuZ3Mgd2hlbiB0aGUgV2ViQ29udGVudCBwcm9jZXNzIGlz
IHN0dWNrIG9uIGEgc3luYyBJUEMuCisgICAgaWYgKElQQzo6Q29ubmVjdGlvbjo6aXNXYWl0aW5n
Rm9yU3luY1JlcGx5KCkpCisgICAgICAgIHJldHVybiByZXBseSh0cnVlKTsKKwogICAgIG1fcGVu
ZGluZ1N5bmNocm9ub3VzVG91Y2hFdmVudFJlcGx5ID0gV1RGTW92ZShyZXBseSk7CiAKICAgICBF
dmVudERpc3BhdGNoZXI6OlRvdWNoRXZlbnRRdWV1ZSBxdWV1ZWRFdmVudHM7CkBAIC01ODg3LDYg
KzU4OTEsNyBAQCB2b2lkIFdlYlBhZ2U6OmRpZFJlbW92ZU1lbnVJdGVtRWxlbWVudChIVE1MTWVu
dUl0ZW1FbGVtZW50JiBlbGVtZW50KQogCiB2b2lkIFdlYlBhZ2U6OnRlc3RQcm9jZXNzSW5jb21p
bmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZTo6
VGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5OjpE
ZWxheWVkUmVwbHkmJiByZXBseSkKIHsKKyAgICBSRUxFQVNFX0FTU0VSVChJUEM6OkNvbm5lY3Rp
b246OmlzV2FpdGluZ0ZvclN5bmNSZXBseSgpKTsKICAgICByZXBseSh0cnVlKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IGM1YmM4Y2M5YTQ0
MzI0OGExNGYxZmUzYWYxYWZhNTAxNDk5NjlhNWEuLjg4NjFhZTYyNTYyYTcxODk1MGFjMWEwNWI4
NmRkYWRlZjgxNWUzNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmgKQEAgLTExNjcsMTAgKzExNjcsMTAgQEAgcHVibGljOgogICAgIHZvaWQgZGlkUmVjZWl2
ZVdlYlBhZ2VNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOwogCiAgICAg
dGVtcGxhdGU8dHlwZW5hbWUgVD4KLSAgICBib29sIHNlbmRTeW5jV2l0aERlbGF5ZWRSZXBseShU
JiYgbWVzc2FnZSwgdHlwZW5hbWUgVDo6UmVwbHkmJiByZXBseSwgT3B0aW9uU2V0PElQQzo6U2Vu
ZFN5bmNPcHRpb24+IHNlbmRTeW5jT3B0aW9ucyA9IHsgfSkKKyAgICBib29sIHNlbmRTeW5jV2l0
aERlbGF5ZWRSZXBseShUJiYgbWVzc2FnZSwgdHlwZW5hbWUgVDo6UmVwbHkmJiByZXBseSkKICAg
ICB7CiAgICAgICAgIGNhbmNlbEdlc3R1cmVzQmxvY2tlZE9uU3luY2hyb25vdXNSZXBsaWVzKCk7
Ci0gICAgICAgIHJldHVybiBzZW5kU3luYyhXVEZNb3ZlKG1lc3NhZ2UpLCBXVEZNb3ZlKHJlcGx5
KSwgU2Vjb25kczo6aW5maW5pdHkoKSwgc2VuZFN5bmNPcHRpb25zIHwgSVBDOjpTZW5kU3luY09w
dGlvbjo6SW5mb3JtUGxhdGZvcm1Qcm9jZXNzV2lsbFN1c3BlbmQpOworICAgICAgICByZXR1cm4g
c2VuZFN5bmMoV1RGTW92ZShtZXNzYWdlKSwgV1RGTW92ZShyZXBseSksIFNlY29uZHM6OmluZmlu
aXR5KCksIElQQzo6U2VuZFN5bmNPcHRpb246OkluZm9ybVBsYXRmb3JtUHJvY2Vzc1dpbGxTdXNw
ZW5kKTsKICAgICB9CiAKICAgICBXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlIHJlcXVl
c3RET01QYXN0ZUFjY2Vzcyhjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0g
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRl
eCAyMzIyNDMyNjQxNzcxMDQ5Nzk1MmI5NmI2NmY0MDRlNTZkNjUxZGY1Li4xNzUxMTlhZTg2NjM0
Zjk0MjNjNTA0MTY2ZGNjNWYxZmViZDBmMDJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtMjU0Miw2ICsyNTQyLDEwIEBA
IHN0YXRpYyBpbmxpbmUgYm9vbCBpc0Fzc2lzdGFibGVFbGVtZW50KEVsZW1lbnQmIGVsZW1lbnQp
CiAKIHZvaWQgV2ViUGFnZTo6Z2V0UG9zaXRpb25JbmZvcm1hdGlvbihjb25zdCBJbnRlcmFjdGlv
bkluZm9ybWF0aW9uUmVxdWVzdCYgcmVxdWVzdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChJbnRl
cmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiYmKT4mJiByZXBseSkKIHsKKyAgICAvLyBBdm9p
ZCBVSVByb2Nlc3MgaGFuZ3Mgd2hlbiB0aGUgV2ViQ29udGVudCBwcm9jZXNzIGlzIHN0dWNrIG9u
IGEgc3luYyBJUEMuCisgICAgaWYgKElQQzo6Q29ubmVjdGlvbjo6aXNXYWl0aW5nRm9yU3luY1Jl
cGx5KCkpCisgICAgICAgIHJldHVybiByZXBseSh7IH0pOworCiAgICAgbV9wZW5kaW5nU3luY2hy
b25vdXNQb3NpdGlvbkluZm9ybWF0aW9uUmVwbHkgPSBXVEZNb3ZlKHJlcGx5KTsKIAogICAgIGF1
dG8gaW5mb3JtYXRpb24gPSBwb3NpdGlvbkluZm9ybWF0aW9uKHJlcXVlc3QpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGVl
NWI1ZWI5M2FhZWFjYjRmN2RkNWJmMjBjOWQyYmVkMzJhNTZiYWUuLjViMTczZDdmYzQxOGUxNjQz
MGE0YWM3ZDczNDAyYTc3YThiYzYyODYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxOS0wNy0y
NSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIFdlYlBh
Z2U6OlRvdWNoRXZlbnRTeW5jKCkgJiBXZWJQYWdlOjpHZXRQb3NpdGlvbkluZm9ybWF0aW9uKCkg
c3luYyBJUEMgY2F1c2VzIFVJUHJvY2VzcyBoYW5ncworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAwMTM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIGxheW91dCB0ZXN0IGFjY29yZGluZ2x5Lgor
CisgICAgICAgICogZmFzdC9taXNjL3Rlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVu
V2FpdGluZ0ZvclN5bmNSZXBseS1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9taXNjL3Rl
c3RQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseS5odG1s
OgorCiAyMDE5LTA3LTI1ICBSdXNzZWxsIEVwc3RlaW4gIDxyZXBzdGVpbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgcmRhcjovLzUzNTUxNzM2IChMYXlvdXQgVGVzdCBlZGl0aW5nL3Bhc3RlYm9hcmQv
cGFzdGUtYW5kLXNhbml0aXplLmh0bWwgaXMgYSBGbGFreSBGYWlsdXJlIG9uIGlPUyAxMykuCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21pc2MvdGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNN
ZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvbWlzYy90ZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JT
eW5jUmVwbHktZXhwZWN0ZWQudHh0CmluZGV4IGMwYzhjMjU4ZTY4YjhjOGY4YmJiNTRjZjM3NDFk
ZTI4ZjVmOWNjODAuLjZlYzJjZDc0MTcyOTg2OTgyNDQ3MDI0OGU4Y2U4ODFjOTg0M2JmZmEgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbWlzYy90ZXN0UHJvY2Vzc0luY29taW5nU3luY01l
c3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvbWlzYy90ZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdG
b3JTeW5jUmVwbHktZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAotVGVzdCBmb3IgdGhlIFNl
bmRTeW5jT3B0aW9uOjpQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5
bmNSZXBseSBzZW5kU3luYyBmbGFnCitUZXN0IGZvciB0aGUgU2VuZFN5bmNPcHRpb246OkZvcmNl
RGlzcGF0Y2hFdmVuSWZEZXN0aW5hdGlvbklzV2FpdGluZ0ZvclN5bmNSZXBseSBzZW5kU3luYyBm
bGFnCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9taXNjL3Rlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0Zv
clN5bmNSZXBseS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9taXNjL3Rlc3RQcm9jZXNzSW5jb21p
bmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseS5odG1sCmluZGV4IGI2NDNlYmI2
NDZhNDlkMGY5ODY1NWNkOGI1YTA2YTc2NTBhOTNhNGUuLjc3ODMyYzE2MGNhOTU4ZmFjZWE2NTMw
MzFkOWVhOThlMjAzMjc4ZGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbWlzYy90ZXN0
UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L21pc2MvdGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdl
c1doZW5XYWl0aW5nRm9yU3luY1JlcGx5Lmh0bWwKQEAgLTMsNyArMyw3IEBACiA8Ym9keT4KIDxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0
PgotZGVzY3JpcHRpb24oIlRlc3QgZm9yIHRoZSBTZW5kU3luY09wdGlvbjo6UHJvY2Vzc0luY29t
aW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkgc2VuZFN5bmMgZmxhZyIpOwor
ZGVzY3JpcHRpb24oIlRlc3QgZm9yIHRoZSBTZW5kU3luY09wdGlvbjo6Rm9yY2VEaXNwYXRjaEV2
ZW5JZkRlc3RpbmF0aW9uSXNXYWl0aW5nRm9yU3luY1JlcGx5IHNlbmRTeW5jIGZsYWciKTsKIAog
c2hvdWxkQmVUcnVlKCJpbnRlcm5hbHMudGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1do
ZW5XYWl0aW5nRm9yU3luY1JlcGx5KCkiKTsKIDwvc2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>374907</attachid>
            <date>2019-07-25 15:06:23 -0700</date>
            <delta_ts>2019-07-25 16:17:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200138-20190725150622.patch</filename>
            <type>text/plain</type>
            <size>24333</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3ODM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGVlOTAxYzMzMzI2MDRlMWYz
Y2EzYTg3YjA5NjAyMGU0Zjc5OTE2Y2QuLmYwMzM2NGFmNjY1MTcyNWQ3ZjJiNTdlNGExMjRhYzM5
MGFhMDc0NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTQgQEAKKzIwMTktMDctMjUgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBXZWJQYWdlOjpUb3VjaEV2
ZW50U3luYygpICYgV2ViUGFnZTo6R2V0UG9zaXRpb25JbmZvcm1hdGlvbigpIHN5bmMgSVBDIGNh
dXNlcyBVSVByb2Nlc3MgaGFuZ3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwMDEzOAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTI2OTgxNTc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmV2ZXJ0IG1v
c3Qgb2YgcjI0NzgyMiBhbmQgdXNlIGFuIGFsdGVybmF0aXZlIGFwcHJvYWNoIHRvIGFkZHJlc3Mg
aGFuZ3MuIEluIHRoaXMgcGF0Y2gsIHRoZSBwcm9wb3NhbAorICAgICAgICBpcyB0byBhZGQgYSBT
ZW5kU3luY09wdGlvbjo6Rm9yY2VEaXNwYXRjaEV2ZW5JZkRlc3RpbmF0aW9uSXNXYWl0aW5nRm9y
U3luY1JlcGx5IGZsYWcgb24gdGhlCisgICAgICAgIFdlYlBhZ2U6OlRvdWNoRXZlbnRTeW5jKCkg
JiBXZWJQYWdlOjpHZXRQb3NpdGlvbkluZm9ybWF0aW9uKCkgc2VuZFN5bmMoKSBjYWxscyBpbiB0
aGUgVUlQcm9jZXNzLgorICAgICAgICBUaG9zZSB3aWxsIGNhdXNlIHRoaXMgSVBDcyB0byBnZXQg
ZGlzcGF0Y2hlZCBpbiB0aGUgV2ViQ29udGVudCBwcm9jZXNzLCBldmVuIGlmIHRoZSBXZWJDb250
ZW50IHByb2Nlc3MKKyAgICAgICAgaXMgaXRzZWxmIGN1cnJlbnRseSBzdHVjayBvbiBzeW5jaHJv
bm91cyBJUEMuIEJlY2F1c2UgcmUtZW50ZXJpbmcgV2ViQ29yZSBvbiBzeW5jIElQQyBpcyBnZW5l
cmFsbHkKKyAgICAgICAgdW5zYWZlLCB0aGlzIHBhdGNoIGFsc28gdXBkYXRlcyB0aGUgV2ViUGFn
ZTo6Z2V0UG9zaXRpb25JbmZvcm1hdGlvbigpICYgV2ViUGFnZTo6dG91Y2hFdmVudFN5bmMoKQor
ICAgICAgICB0byByZXR1cm4gZWFybHkgKGkuZS4gY2FuY2VsbGVkKSBpZiB0aGV5IGdldCBjYWxs
ZWQgd2hpbGUgdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBpcyBzdHVjayBvbiBhCisgICAgICAgIHNl
bmRTeW5jLgorCisgICAgICAgIFRoaXMgYXBwcm9hY2ggc2hvdWxkIGFkZHJlc3MgdGhlIFVJUHJv
Y2VzcyBoYW5ncyBjYXVzZWQgYnkgdGhlIFdlYlBhZ2U6OlRvdWNoRXZlbnRTeW5jKCkgYW5kCisg
ICAgICAgIFdlYlBhZ2U6OkdldFBvc2l0aW9uSW5mb3JtYXRpb24oKSBzeW5jIElQQyBtZXNzYWdl
cy4gSXQgc2hvdWxkIGJlIHNhZmUgYmVjYXVzZSB3ZSBkbyBub3QgcmUtZW50ZXIKKyAgICAgICAg
V2ViQ29yZS4gVGhlIG9ubHkgZHJhd2JhY2sgaXMgdGhhdCB0aG9zZSBJUENzIHdpbGwgYmUgY2Fu
Y2VsbGVkIChlYXJseSByZXR1cm4gd2l0aCBkZWZhdWx0IHZhbHVlKQorICAgICAgICB3aGVuIHRo
ZSBXZWJDb250ZW50IHByb2Nlc3MgaXMgYnVzeS4gSG93ZXZlciwgSSBhbSBiZWluZyB0b2xkIHRo
YXQgdGhpcyBpcyBsaWtlbHkgYWNjZXB0YWJsZSBpbgorICAgICAgICBwcmFjdGljZS4KKworICAg
ICAgICAqIFBsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcDoKKyAgICAgICAgKElQQzo6Q29ubmVj
dGlvbjo6U3luY01lc3NhZ2VTdGF0ZTo6aW5jcmVtZW50V2FpdGluZ0ZvclN5bmNSZXBseUNvdW50
KToKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6U3luY01lc3NhZ2VTdGF0ZTo6ZGVjcmVtZW50
V2FpdGluZ0ZvclN5bmNSZXBseUNvdW50KToKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6U3lu
Y01lc3NhZ2VTdGF0ZTo6aXNXYWl0aW5nRm9yU3luY1JlcGx5IGNvbnN0KToKKyAgICAgICAgKElQ
Qzo6Q29ubmVjdGlvbjo6U3luY01lc3NhZ2VTdGF0ZTo6cHJvY2Vzc0luY29taW5nTWVzc2FnZSk6
CisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246OnNlbmRNZXNzYWdlKToKKyAgICAgICAgKElQQzo6
Q29ubmVjdGlvbjo6aXNXYWl0aW5nRm9yU3luY1JlcGx5KToKKyAgICAgICAgKElQQzo6Q29ubmVj
dGlvbjo6c2VuZFN5bmNNZXNzYWdlKToKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvQ29ubmVjdGlv
bi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5Ojp0ZXN0UHJvY2Vzc0luY29t
aW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6Omhh
bmRsZVRvdWNoRXZlbnRTeW5jaHJvbm91c2x5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBlbnN1
cmVQb3NpdGlvbkluZm9ybWF0aW9uSXNVcFRvRGF0ZTpdKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YkNocm9tZUNsaWVudDo6dGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5n
Rm9yU3luY1JlcGx5KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpydW5KYXZh
U2NyaXB0QWxlcnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFT
Y3JpcHRDb25maXJtKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpydW5KYXZh
U2NyaXB0UHJvbXB0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnRvdWNoRXZlbnRTeW5jKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6dGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5n
Rm9yU3luY1JlcGx5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzZW5kU3luY1dpdGhEZWxheWVkUmVwbHkpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6Z2V0UG9zaXRpb25JbmZvcm1hdGlvbik6CisKIDIwMTktMDctMjUgIFlv
dWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgTmV0d29ya1Nl
c3Npb24gbm8gbG9uZ2VyIFJlZkNvdW50ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxh
dGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQ29u
bmVjdGlvbi5jcHAKaW5kZXggNmNiZWJhOWYwNDJmMmI0ZDRiMDVhMGNkZGFmNGQwYmI4ZDdiNWUy
My4uNzhlYjQyYjliNTRiMTdkYTQyNjRhN2RkMDhhYTQwNTNkN2NkNTRhZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHAKQEAgLTk4LDggKzk4LDIzIEBAIHB1Ymxp
YzoKICAgICAvLyBmcm9tIHRoYXQgY29ubmVjdGlvbiBhbmQgcHV0IHRoZSBvdGhlciBtZXNzYWdl
cyBiYWNrIGluIHRoZSBxdWV1ZS4KICAgICB2b2lkIGRpc3BhdGNoTWVzc2FnZXMoQ29ubmVjdGlv
biogYWxsb3dlZENvbm5lY3Rpb24pOwogCi0gICAgdm9pZCBpbmNyZW1lbnRQcm9jZXNzSW5jb21p
bmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseUNvdW50KCkgeyArK21fcHJvY2Vz
c0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHlDb3VudDsgfQotICAg
IHZvaWQgZGVjcmVtZW50UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JT
eW5jUmVwbHlDb3VudCgpIHsgLS1tX3Byb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0
aW5nRm9yU3luY1JlcGx5Q291bnQ7IH0KKyAgICB2b2lkIGluY3JlbWVudFdhaXRpbmdGb3JTeW5j
UmVwbHlDb3VudCgpCisgICAgeworICAgICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwor
ICAgICAgICArK21fd2FpdGluZ0ZvclN5bmNSZXBseUNvdW50OworICAgIH0KKyAgICB2b2lkIGRl
Y3JlbWVudFdhaXRpbmdGb3JTeW5jUmVwbHlDb3VudCgpCisgICAgeworICAgICAgICBBU1NFUlQo
UnVuTG9vcDo6aXNNYWluKCkpOworICAgICAgICBBU1NFUlQobV93YWl0aW5nRm9yU3luY1JlcGx5
Q291bnQpOworICAgICAgICAtLW1fd2FpdGluZ0ZvclN5bmNSZXBseUNvdW50OworICAgIH0KKyAg
ICAKKyAgICBib29sIGlzV2FpdGluZ0ZvclN5bmNSZXBseSgpIGNvbnN0CisgICAgeworICAgICAg
ICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOworICAgICAgICByZXR1cm4gbV93YWl0aW5nRm9y
U3luY1JlcGx5Q291bnQgPiAwOworICAgIH0KIAogcHJpdmF0ZToKICAgICB2b2lkIGRpc3BhdGNo
TWVzc2FnZUFuZFJlc2V0RGlkU2NoZWR1bGVEaXNwYXRjaE1lc3NhZ2VzRm9yQ29ubmVjdGlvbihD
b25uZWN0aW9uJik7CkBAIC0xMTgsNyArMTMzLDcgQEAgcHJpdmF0ZToKICAgICB9OwogICAgIFZl
Y3RvcjxDb25uZWN0aW9uQW5kSW5jb21pbmdNZXNzYWdlPiBtX21lc3NhZ2VzVG9EaXNwYXRjaFdo
aWxlV2FpdGluZ0ZvclN5bmNSZXBseTsKIAotICAgIHN0ZDo6YXRvbWljPHVuc2lnbmVkPiBtX3By
b2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5Q291bnQgeyAw
IH07CisgICAgdW5zaWduZWQgbV93YWl0aW5nRm9yU3luY1JlcGx5Q291bnQgeyAwIH07CiB9Owog
CiBDb25uZWN0aW9uOjpTeW5jTWVzc2FnZVN0YXRlJiBDb25uZWN0aW9uOjpTeW5jTWVzc2FnZVN0
YXRlOjpzaW5nbGV0b24oKQpAQCAtMTM5LDE2ICsxNTQsNyBAQCBDb25uZWN0aW9uOjpTeW5jTWVz
c2FnZVN0YXRlOjpTeW5jTWVzc2FnZVN0YXRlKCkKIAogYm9vbCBDb25uZWN0aW9uOjpTeW5jTWVz
c2FnZVN0YXRlOjpwcm9jZXNzSW5jb21pbmdNZXNzYWdlKENvbm5lY3Rpb24mIGNvbm5lY3Rpb24s
IHN0ZDo6dW5pcXVlX3B0cjxEZWNvZGVyPiYgbWVzc2FnZSkKIHsKLSAgICBib29sIHNob3VsZERp
c3BhdGNoTWVzc2FnZVdoZW5XYWl0aW5nRm9yU3luY1JlcGx5ID0gbWVzc2FnZS0+c2hvdWxkRGlz
cGF0Y2hNZXNzYWdlV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkoKTsKLQotICAgIC8vIFdlIGRpc3Bh
dGNoIHN5bmNocm9ub3VzIG1lc3NhZ2VzIGV2ZW4gaWYgc2hvdWxkRGlzcGF0Y2hNZXNzYWdlV2hl
bldhaXRpbmdGb3JTeW5jUmVwbHkgcmV0dXJucyBmYWxzZSBpZiB0aGUKLSAgICAvLyBzZW5kU3lu
YygpIHVzZWQgU2VuZFN5bmNPcHRpb246OlByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5X
YWl0aW5nRm9yU3luY1JlcGx5LiBUaGlzIGlzIHVzZWQgZm9yIHNvbWUgbWVzc2FnZXMKLSAgICAv
LyBpbiB0aGUgV2ViQ29udGVudCBwcm9jZXNzICh3aGljaCBub3JtYWxseSBkb2VzIG5vdCBkaXNw
YXRjaCBtZXNzYWdlcyB3aGVuIHdhaXRpbmcgZm9yIGEgc3luYyByZXBseSksIHRvIGF2b2lkCi0g
ICAgLy8gaGFuZ3MuCi0gICAgaWYgKCFzaG91bGREaXNwYXRjaE1lc3NhZ2VXaGVuV2FpdGluZ0Zv
clN5bmNSZXBseSAmJiBtZXNzYWdlLT5pc1N5bmNNZXNzYWdlKCkgJiYgbV9wcm9jZXNzSW5jb21p
bmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseUNvdW50LmxvYWQoKSkKLSAgICAg
ICAgc2hvdWxkRGlzcGF0Y2hNZXNzYWdlV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkgPSB0cnVlOwot
Ci0gICAgaWYgKCFzaG91bGREaXNwYXRjaE1lc3NhZ2VXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSkK
KyAgICBpZiAoIW1lc3NhZ2UtPnNob3VsZERpc3BhdGNoTWVzc2FnZVdoZW5XYWl0aW5nRm9yU3lu
Y1JlcGx5KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIENvbm5lY3Rpb25BbmRJbmNv
bWluZ01lc3NhZ2UgY29ubmVjdGlvbkFuZEluY29taW5nTWVzc2FnZSB7IGNvbm5lY3Rpb24sIFdU
Rk1vdmUobWVzc2FnZSkgfTsKQEAgLTQxNyw3ICs0MjMsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8RW5j
b2Rlcj4gQ29ubmVjdGlvbjo6Y3JlYXRlU3luY01lc3NhZ2VFbmNvZGVyKFN0cmluZ1JlZmVyZW5j
ZSBtZQogICAgIHJldHVybiBlbmNvZGVyOwogfQogCi1ib29sIENvbm5lY3Rpb246OnNlbmRNZXNz
YWdlKHN0ZDo6dW5pcXVlX3B0cjxFbmNvZGVyPiBlbmNvZGVyLCBPcHRpb25TZXQ8U2VuZE9wdGlv
bj4gc2VuZE9wdGlvbnMpCitib29sIENvbm5lY3Rpb246OnNlbmRNZXNzYWdlKHN0ZDo6dW5pcXVl
X3B0cjxFbmNvZGVyPiBlbmNvZGVyLCBPcHRpb25TZXQ8U2VuZE9wdGlvbj4gc2VuZE9wdGlvbnMs
IFNob3VsZEZvcmNlRGlzcGF0Y2hFdmVuSWZEZXN0aW5hdGlvbklzV2FpdGluZ0ZvclN5bmNSZXBs
eSBzaG91bGRGb3JjZURpc3BhdGNoRXZlbklmRGVzdGluYXRpb25Jc1dhaXRpbmdGb3JTeW5jUmVw
bHkpCiB7CiAgICAgaWYgKCFpc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTQz
Miw3ICs0MzgsOCBAQCBib29sIENvbm5lY3Rpb246OnNlbmRNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0
cjxFbmNvZGVyPiBlbmNvZGVyLCBPcHRpb25TZXQ8U2VuZE9wdAogCiAgICAgaWYgKHNlbmRPcHRp
b25zLmNvbnRhaW5zKFNlbmRPcHRpb246OkRpc3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2FpdGluZ0Zv
clN5bmNSZXBseSkKICAgICAgICAgJiYgKCFtX29ubHlTZW5kTWVzc2FnZXNBc0Rpc3BhdGNoV2hl
bldhaXRpbmdGb3JTeW5jUmVwbHlXaGVuUHJvY2Vzc2luZ1N1Y2hBTWVzc2FnZQotICAgICAgICAg
ICAgfHwgbV9pbkRpc3BhdGNoTWVzc2FnZU1hcmtlZERpc3BhdGNoV2hlbldhaXRpbmdGb3JTeW5j
UmVwbHlDb3VudCkpCisgICAgICAgICAgICB8fCBtX2luRGlzcGF0Y2hNZXNzYWdlTWFya2VkRGlz
cGF0Y2hXaGVuV2FpdGluZ0ZvclN5bmNSZXBseUNvdW50CisgICAgICAgICAgICB8fCBzaG91bGRG
b3JjZURpc3BhdGNoRXZlbklmRGVzdGluYXRpb25Jc1dhaXRpbmdGb3JTeW5jUmVwbHkgPT0gU2hv
dWxkRm9yY2VEaXNwYXRjaEV2ZW5JZkRlc3RpbmF0aW9uSXNXYWl0aW5nRm9yU3luY1JlcGx5OjpZ
ZXMpKQogICAgICAgICBlbmNvZGVyLT5zZXRTaG91bGREaXNwYXRjaE1lc3NhZ2VXaGVuV2FpdGlu
Z0ZvclN5bmNSZXBseSh0cnVlKTsKIAogICAgIHsKQEAgLTU1NCw2ICs1NjEsMTEgQEAgc3RkOjp1
bmlxdWVfcHRyPERlY29kZXI+IENvbm5lY3Rpb246OndhaXRGb3JNZXNzYWdlKFN0cmluZ1JlZmVy
ZW5jZSBtZXNzYWdlUmVjZWkKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAorYm9vbCBDb25uZWN0
aW9uOjppc1dhaXRpbmdGb3JTeW5jUmVwbHkoKQoreworICAgIHJldHVybiBTeW5jTWVzc2FnZVN0
YXRlOjpzaW5nbGV0b24oKS5pc1dhaXRpbmdGb3JTeW5jUmVwbHkoKTsKK30KKwogc3RkOjp1bmlx
dWVfcHRyPERlY29kZXI+IENvbm5lY3Rpb246OnNlbmRTeW5jTWVzc2FnZSh1aW50NjRfdCBzeW5j
UmVxdWVzdElELCBzdGQ6OnVuaXF1ZV9wdHI8RW5jb2Rlcj4gZW5jb2RlciwgU2Vjb25kcyB0aW1l
b3V0LCBPcHRpb25TZXQ8U2VuZFN5bmNPcHRpb24+IHNlbmRTeW5jT3B0aW9ucykKIHsKICAgICBB
U1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwpAQCAtNTc3LDE4ICs1ODksMTcgQEAgc3RkOjp1bmlx
dWVfcHRyPERlY29kZXI+IENvbm5lY3Rpb246OnNlbmRTeW5jTWVzc2FnZSh1aW50NjRfdCBzeW5j
UmVxdWVzdElELCBzdGQKICAgICArK21faW5TZW5kU3luY0NvdW50OwogCiAgICAgLy8gRmlyc3Qg
c2VuZCB0aGUgbWVzc2FnZS4KLSAgICBzZW5kTWVzc2FnZShXVEZNb3ZlKGVuY29kZXIpLCBJUEM6
OlNlbmRPcHRpb246OkRpc3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2FpdGluZ0ZvclN5bmNSZXBseSk7
CisgICAgYXV0byBzaG91bGRGb3JjZURpc3BhdGNoRXZlbklmRGVzdGluYXRpb25Jc1dhaXRpbmdG
b3JTeW5jUmVwbHkgPSBzZW5kU3luY09wdGlvbnMuY29udGFpbnMoU2VuZFN5bmNPcHRpb246OkZv
cmNlRGlzcGF0Y2hFdmVuSWZEZXN0aW5hdGlvbklzV2FpdGluZ0ZvclN5bmNSZXBseSkgPyBTaG91
bGRGb3JjZURpc3BhdGNoRXZlbklmRGVzdGluYXRpb25Jc1dhaXRpbmdGb3JTeW5jUmVwbHk6Olll
cyA6IFNob3VsZEZvcmNlRGlzcGF0Y2hFdmVuSWZEZXN0aW5hdGlvbklzV2FpdGluZ0ZvclN5bmNS
ZXBseTo6Tm87CisgICAgc2VuZE1lc3NhZ2UoV1RGTW92ZShlbmNvZGVyKSwgSVBDOjpTZW5kT3B0
aW9uOjpEaXNwYXRjaE1lc3NhZ2VFdmVuV2hlbldhaXRpbmdGb3JTeW5jUmVwbHksIHNob3VsZEZv
cmNlRGlzcGF0Y2hFdmVuSWZEZXN0aW5hdGlvbklzV2FpdGluZ0ZvclN5bmNSZXBseSk7CiAKLSAg
ICBpZiAoc2VuZFN5bmNPcHRpb25zLmNvbnRhaW5zKFNlbmRTeW5jT3B0aW9uOjpQcm9jZXNzSW5j
b21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSkpCi0gICAgICAgIFN5bmNN
ZXNzYWdlU3RhdGU6OnNpbmdsZXRvbigpLmluY3JlbWVudFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNz
YWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5Q291bnQoKTsKKyAgICBTeW5jTWVzc2FnZVN0YXRl
OjpzaW5nbGV0b24oKS5pbmNyZW1lbnRXYWl0aW5nRm9yU3luY1JlcGx5Q291bnQoKTsKIAogICAg
IC8vIFRoZW4gd2FpdCBmb3IgYSByZXBseS4gV2FpdGluZyBmb3IgYSByZXBseSBjb3VsZCBpbnZv
bHZlIGRpc3BhdGNoaW5nIGluY29taW5nIHN5bmMgbWVzc2FnZXMsIHNvCiAgICAgLy8ga2VlcCBh
biBleHRyYSByZWZlcmVuY2UgdG8gdGhlIGNvbm5lY3Rpb24gaGVyZSBpbiBjYXNlIGl0J3MgaW52
YWxpZGF0ZWQuCiAgICAgUmVmPENvbm5lY3Rpb24+IHByb3RlY3QoKnRoaXMpOwogICAgIHN0ZDo6
dW5pcXVlX3B0cjxEZWNvZGVyPiByZXBseSA9IHdhaXRGb3JTeW5jUmVwbHkoc3luY1JlcXVlc3RJ
RCwgdGltZW91dCwgc2VuZFN5bmNPcHRpb25zKTsKIAotICAgIGlmIChzZW5kU3luY09wdGlvbnMu
Y29udGFpbnMoU2VuZFN5bmNPcHRpb246OlByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5X
YWl0aW5nRm9yU3luY1JlcGx5KSkKLSAgICAgICAgU3luY01lc3NhZ2VTdGF0ZTo6c2luZ2xldG9u
KCkuZGVjcmVtZW50UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5j
UmVwbHlDb3VudCgpOworICAgIFN5bmNNZXNzYWdlU3RhdGU6OnNpbmdsZXRvbigpLmRlY3JlbWVu
dFdhaXRpbmdGb3JTeW5jUmVwbHlDb3VudCgpOwogCiAgICAgLS1tX2luU2VuZFN5bmNDb3VudDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5oIGIv
U291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5oCmluZGV4IGE0OTA3ZDE3MTUw
YjUxYTg4ZDY3MTVlYjU5NTA5ODVhMTc1NDczNzkuLjUyNTFkODkyN2M2NmFkMzUxOTRkNDI0MmE4
NTNmNjIxNDQ2NWM3YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Nv
bm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmgK
QEAgLTY4LDcgKzY4LDcgQEAgZW51bSBjbGFzcyBTZW5kU3luY09wdGlvbiB7CiAgICAgLy8gVXNl
IHRoaXMgdG8gaW5mb3JtIHRoYXQgdGhpcyBzeW5jIGNhbGwgd2lsbCBzdXNwZW5kIHRoaXMgcHJv
Y2VzcyB1bnRpbCB0aGUgdXNlciByZXNwb25kcyB3aXRoIGlucHV0LgogICAgIEluZm9ybVBsYXRm
b3JtUHJvY2Vzc1dpbGxTdXNwZW5kID0gMSA8PCAwLAogICAgIFVzZUZ1bGx5U3luY2hyb25vdXNN
b2RlRm9yVGVzdGluZyA9IDEgPDwgMSwKLSAgICBQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNX
aGVuV2FpdGluZ0ZvclN5bmNSZXBseSA9IDEgPDwgMiwKKyAgICBGb3JjZURpc3BhdGNoRXZlbklm
RGVzdGluYXRpb25Jc1dhaXRpbmdGb3JTeW5jUmVwbHkgPSAxIDw8IDIsCiB9OwogCiBlbnVtIGNs
YXNzIFdhaXRGb3JPcHRpb24gewpAQCAtMTY0LDYgKzE2NCw4IEBAIHB1YmxpYzoKIAogICAgIHZv
aWQgc2V0T25seVNlbmRNZXNzYWdlc0FzRGlzcGF0Y2hXaGVuV2FpdGluZ0ZvclN5bmNSZXBseVdo
ZW5Qcm9jZXNzaW5nU3VjaEFNZXNzYWdlKGJvb2wpOwogICAgIHZvaWQgc2V0U2hvdWxkRXhpdE9u
U3luY01lc3NhZ2VTZW5kRmFpbHVyZShib29sKTsKKyAgICAKKyAgICBzdGF0aWMgYm9vbCBpc1dh
aXRpbmdGb3JTeW5jUmVwbHkoKTsKIAogICAgIC8vIFRoZSBzZXQgY2FsbGJhY2sgd2lsbCBiZSBj
YWxsZWQgb24gdGhlIGNvbm5lY3Rpb24gd29yayBxdWV1ZSB3aGVuIHRoZSBjb25uZWN0aW9uIGlz
IGNsb3NlZCwgCiAgICAgLy8gYmVmb3JlIGRpZENhbGwgaXMgY2FsbGVkIG9uIHRoZSBjbGllbnQg
dGhyZWFkLiBNdXN0IGJlIGNhbGxlZCBiZWZvcmUgdGhlIGNvbm5lY3Rpb24gaXMgb3BlbmVkLgpA
QCAtMjE4LDcgKzIyMCw4IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHdhaXRGb3JBbmREaXNw
YXRjaEltbWVkaWF0ZWx5PFQ+KGRlc3RpbmF0aW9uSUQudG9VSW50NjQoKSwgdGltZW91dCwgd2Fp
dEZvck9wdGlvbnMpOwogICAgIH0KIAotICAgIGJvb2wgc2VuZE1lc3NhZ2Uoc3RkOjp1bmlxdWVf
cHRyPEVuY29kZXI+LCBPcHRpb25TZXQ8U2VuZE9wdGlvbj4gc2VuZE9wdGlvbnMpOworICAgIGVu
dW0gY2xhc3MgU2hvdWxkRm9yY2VEaXNwYXRjaEV2ZW5JZkRlc3RpbmF0aW9uSXNXYWl0aW5nRm9y
U3luY1JlcGx5IHsgTm8sIFllcyB9OworICAgIGJvb2wgc2VuZE1lc3NhZ2Uoc3RkOjp1bmlxdWVf
cHRyPEVuY29kZXI+LCBPcHRpb25TZXQ8U2VuZE9wdGlvbj4gc2VuZE9wdGlvbnMsIFNob3VsZEZv
cmNlRGlzcGF0Y2hFdmVuSWZEZXN0aW5hdGlvbklzV2FpdGluZ0ZvclN5bmNSZXBseSA9IFNob3Vs
ZEZvcmNlRGlzcGF0Y2hFdmVuSWZEZXN0aW5hdGlvbklzV2FpdGluZ0ZvclN5bmNSZXBseTo6Tm8p
OwogICAgIHZvaWQgc2VuZE1lc3NhZ2VXaXRoUmVwbHkodWludDY0X3QgcmVxdWVzdElELCBzdGQ6
OnVuaXF1ZV9wdHI8RW5jb2Rlcj4sIEZ1bmN0aW9uRGlzcGF0Y2hlciYgcmVwbHlEaXNwYXRjaGVy
LCBGdW5jdGlvbjx2b2lkKHN0ZDo6dW5pcXVlX3B0cjxEZWNvZGVyPik+JiYgcmVwbHlIYW5kbGVy
KTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RW5jb2Rlcj4gY3JlYXRlU3luY01lc3NhZ2VFbmNvZGVy
KFN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBTdHJpbmdSZWZlcmVuY2UgbWVz
c2FnZU5hbWUsIHVpbnQ2NF90IGRlc3RpbmF0aW9uSUQsIHVpbnQ2NF90JiBzeW5jUmVxdWVzdElE
KTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGVjb2Rlcj4gc2VuZFN5bmNNZXNzYWdlKHVpbnQ2NF90
IHN5bmNSZXF1ZXN0SUQsIHN0ZDo6dW5pcXVlX3B0cjxFbmNvZGVyPiwgU2Vjb25kcyB0aW1lb3V0
LCBPcHRpb25TZXQ8U2VuZFN5bmNPcHRpb24+IHNlbmRTeW5jT3B0aW9ucyk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNw
cAppbmRleCBhOWRjMzI3ODAxM2Q2MzA1OTRlOWNkYjc3ZjliM2JjZmQ3ZjIxNTY4Li4xNDBmNDk0
MTI3ODY5ZTk0NWQ3NzRkNjhhMWEwNjI2YjRmNzdjNzIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTEy
MTEsNyArMTIxMSw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6dGVzdFByb2Nlc3NJbmNv
bWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5CiAgICAgICAgIHJldHVybiBy
ZXBseShmYWxzZSk7CiAKICAgICBib29sIGhhbmRsZWQgPSBmYWxzZTsKLSAgICBpZiAoIXBhZ2Ut
PnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlOjpUZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3Nh
Z2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkoKSwgTWVzc2FnZXM6OldlYlBhZ2U6OlRlc3RQcm9j
ZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseTo6UmVwbHkoaGFu
ZGxlZCkpKQorICAgIGlmICghcGFnZS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2U6OlRlc3RQ
cm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSgpLCBNZXNz
YWdlczo6V2ViUGFnZTo6VGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5n
Rm9yU3luY1JlcGx5OjpSZXBseShoYW5kbGVkKSwgU2Vjb25kczo6aW5maW5pdHkoKSwgSVBDOjpT
ZW5kU3luY09wdGlvbjo6Rm9yY2VEaXNwYXRjaEV2ZW5JZkRlc3RpbmF0aW9uSXNXYWl0aW5nRm9y
U3luY1JlcGx5KSkKICAgICAgICAgcmV0dXJuIHJlcGx5KGZhbHNlKTsKICAgICByZXBseShoYW5k
bGVkKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDI2
ZDlmMmRlYmZlMTRhOTVjNDJiMGQ2YTlkZDgyN2M5MjJjZmM4ZGMuLmEwNTI2ZDA4YjhmODlmZWU0
YzQxYTY5ZjIwM2FjYmNlYWIyN2UxOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcApAQCAtMjY2Miw3ICsyNjYyLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmhhbmRs
ZVRvdWNoRXZlbnRTeW5jaHJvbm91c2x5KE5hdGl2ZVdlYlRvdWNoRXZlbnQmIGV2ZW50KQogCiAg
ICAgbV9wcm9jZXNzLT5yZXNwb25zaXZlbmVzc1RpbWVyKCkuc3RhcnQoKTsKICAgICBib29sIGhh
bmRsZWQgPSBmYWxzZTsKLSAgICBib29sIHJlcGx5UmVjZWl2ZWQgPSBtX3Byb2Nlc3MtPnNlbmRT
eW5jKE1lc3NhZ2VzOjpXZWJQYWdlOjpUb3VjaEV2ZW50U3luYyhldmVudCksIE1lc3NhZ2VzOjpX
ZWJQYWdlOjpUb3VjaEV2ZW50U3luYzo6UmVwbHkoaGFuZGxlZCksIG1fcGFnZUlELCAxX3MpOwor
ICAgIGJvb2wgcmVwbHlSZWNlaXZlZCA9IG1fcHJvY2Vzcy0+c2VuZFN5bmMoTWVzc2FnZXM6Oldl
YlBhZ2U6OlRvdWNoRXZlbnRTeW5jKGV2ZW50KSwgTWVzc2FnZXM6OldlYlBhZ2U6OlRvdWNoRXZl
bnRTeW5jOjpSZXBseShoYW5kbGVkKSwgbV9wYWdlSUQsIDFfcywgSVBDOjpTZW5kU3luY09wdGlv
bjo6Rm9yY2VEaXNwYXRjaEV2ZW5JZkRlc3RpbmF0aW9uSXNXYWl0aW5nRm9yU3luY1JlcGx5KTsK
ICAgICAvLyBJZiB0aGUgc3luYyByZXF1ZXN0IGhhcyB0aW1lZCBvdXQsIHdlIHNob3VsZCBjb25z
aWRlciB0aGUgZXZlbnQgaGFuZGxlZC4gVGhlIFdlYiBQcm9jZXNzIGlzIHRvbyBidXN5IHRvIGFu
c3dlciBhbnkgcXVlc3Rpb25zLCBzbyB0aGUgZGVmYXVsdCBhY3Rpb24gaXMgYWxzbyBsaWtlbHkg
dG8gaGF2ZSBpc3N1ZXMuCiAgICAgaWYgKCFyZXBseVJlY2VpdmVkKQogICAgICAgICBoYW5kbGVk
ID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IDY3NWFmN2IyNmU5NjVkODY4N2JlZTI4MzI4N2U5
YzZkMjI4YmM1NTcuLjZhYWJiMGQ3NmNmYTVhZWQ3MDQ1OGNmNDQ3NjA3YWFhMzEzYzdmYWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJh
Y3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5tbQpAQCAtMTk5MCw3ICsxOTkwLDcgQEAgLSAoQk9PTCllbnN1cmVQb3NpdGlv
bkluZm9ybWF0aW9uSXNVcFRvRGF0ZTooV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVx
dWUKICAgICBpZiAoW3NlbGYgX2hhc1ZhbGlkT3V0c3RhbmRpbmdQb3NpdGlvbkluZm9ybWF0aW9u
UmVxdWVzdDpyZXF1ZXN0XSkKICAgICAgICAgcmV0dXJuIGNvbm5lY3Rpb24tPndhaXRGb3JBbmRE
aXNwYXRjaEltbWVkaWF0ZWx5PE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZFJlY2VpdmVQb3Np
dGlvbkluZm9ybWF0aW9uPihfcGFnZS0+cGFnZUlEKCksIDFfcywgSVBDOjpXYWl0Rm9yT3B0aW9u
OjpJbnRlcnJ1cHRXYWl0aW5nSWZTeW5jTWVzc2FnZUFycml2ZXMpOwogCi0gICAgYm9vbCByZWNl
aXZlZFJlc3BvbnNlID0gX3BhZ2UtPnByb2Nlc3MoKS5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFn
ZTo6R2V0UG9zaXRpb25JbmZvcm1hdGlvbihyZXF1ZXN0KSwgTWVzc2FnZXM6OldlYlBhZ2U6Okdl
dFBvc2l0aW9uSW5mb3JtYXRpb246OlJlcGx5KF9wb3NpdGlvbkluZm9ybWF0aW9uKSwgX3BhZ2Ut
PnBhZ2VJRCgpLCAxX3MpOworICAgIGJvb2wgcmVjZWl2ZWRSZXNwb25zZSA9IF9wYWdlLT5wcm9j
ZXNzKCkuc2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2U6OkdldFBvc2l0aW9uSW5mb3JtYXRpb24o
cmVxdWVzdCksIE1lc3NhZ2VzOjpXZWJQYWdlOjpHZXRQb3NpdGlvbkluZm9ybWF0aW9uOjpSZXBs
eShfcG9zaXRpb25JbmZvcm1hdGlvbiksIF9wYWdlLT5wYWdlSUQoKSwgMV9zLCBJUEM6OlNlbmRT
eW5jT3B0aW9uOjpGb3JjZURpc3BhdGNoRXZlbklmRGVzdGluYXRpb25Jc1dhaXRpbmdGb3JTeW5j
UmVwbHkpOwogICAgIF9oYXNWYWxpZFBvc2l0aW9uSW5mb3JtYXRpb24gPSByZWNlaXZlZFJlc3Bv
bnNlICYmIF9wb3NpdGlvbkluZm9ybWF0aW9uLmNhbkJlVmFsaWQ7CiAgICAgCiAgICAgLy8gRklY
TUU6IFdlIG5lZWQgdG8gY2xlYW4gdXAgdGhlc2UgaGFuZGxlcnMgaW4gdGhlIGV2ZW50IHRoYXQg
d2UgYXJlIG5vdCBhYmxlIHRvIGNvbGxlY3QgZGF0YSwgb3IgaWYgdGhlIFdlYlByb2Nlc3MgY3Jh
c2hlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggOTkyMWRmYjBkNGJhMWFiNjRkNTBmZTkw
ZjYyNjg1NmUzN2IzMWY4ZC4uOTNlM2VhMGVkYzc2MjkxMTE2MjJmN2M5OTRiMmUyMjFlMTVjMjlh
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTMwOCw3ICszMDgsNyBAQCBQYWdlKiBXZWJD
aHJvbWVDbGllbnQ6OmNyZWF0ZVdpbmRvdyhGcmFtZSYgZnJhbWUsIGNvbnN0IEZyYW1lTG9hZFJl
cXVlc3QmIHJlcXVlcwogYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnRlc3RQcm9jZXNzSW5jb21pbmdT
eW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSgpCiB7CiAgICAgYm9vbCBoYW5kbGVk
ID0gZmFsc2U7Ci0gICAgaWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFN5bmMoTWVzc2FnZXM6Ok5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpUZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2Vz
V2hlbldhaXRpbmdGb3JTeW5jUmVwbHkobV9wYWdlLnBhZ2VJRCgpKSwgTWVzc2FnZXM6Ok5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpUZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2Vz
V2hlbldhaXRpbmdGb3JTeW5jUmVwbHk6OlJlcGx5KGhhbmRsZWQpLCAwLCBTZWNvbmRzOjppbmZp
bml0eSgpLCBJUEM6OlNlbmRTeW5jT3B0aW9uOjpQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNX
aGVuV2FpdGluZ0ZvclN5bmNSZXBseSkpCisgICAgaWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFN5bmMo
TWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpUZXN0UHJvY2Vzc0luY29t
aW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkobV9wYWdlLnBhZ2VJRCgpKSwg
TWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpUZXN0UHJvY2Vzc0luY29t
aW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHk6OlJlcGx5KGhhbmRsZWQpLCAw
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIHJldHVybiBoYW5kbGVkOwogfQpAQCAtNDY4
LDcgKzQ2OCw3IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0QWxlcnQoRnJh
bWUmIGZyYW1lLCBjb25zdCBTdHJpbmcmIGFsZXJ0VGV4dCkKIAogICAgIEhhbmdEZXRlY3Rpb25E
aXNhYmxlciBoYW5nRGV0ZWN0aW9uRGlzYWJsZXI7CiAKLSAgICBtX3BhZ2Uuc2VuZFN5bmNXaXRo
RGVsYXllZFJlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRBbGVydCh3
ZWJGcmFtZS0+ZnJhbWVJRCgpLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21GcmFtZSgmZnJhbWUp
LCBhbGVydFRleHQpLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0QWxlcnQ6
OlJlcGx5KCksIElQQzo6U2VuZFN5bmNPcHRpb246OlByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdl
c1doZW5XYWl0aW5nRm9yU3luY1JlcGx5KTsKKyAgICBtX3BhZ2Uuc2VuZFN5bmNXaXRoRGVsYXll
ZFJlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRBbGVydCh3ZWJGcmFt
ZS0+ZnJhbWVJRCgpLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21GcmFtZSgmZnJhbWUpLCBhbGVy
dFRleHQpLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0QWxlcnQ6OlJlcGx5
KCkpOwogfQogCiBib29sIFdlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdENvbmZpcm0oRnJh
bWUmIGZyYW1lLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCkBAIC00ODUsNyArNDg1LDcgQEAgYm9v
bCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRDb25maXJtKEZyYW1lJiBmcmFtZSwgY29u
c3QgU3RyaW5nJiBtZXNzYWdlKQogICAgIEhhbmdEZXRlY3Rpb25EaXNhYmxlciBoYW5nRGV0ZWN0
aW9uRGlzYWJsZXI7CiAKICAgICBib29sIHJlc3VsdCA9IGZhbHNlOwotICAgIGlmICghbV9wYWdl
LnNlbmRTeW5jV2l0aERlbGF5ZWRSZXBseShNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZh
U2NyaXB0Q29uZmlybSh3ZWJGcmFtZS0+ZnJhbWVJRCgpLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZy
b21GcmFtZSgmZnJhbWUpLCBtZXNzYWdlKSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2
YVNjcmlwdENvbmZpcm06OlJlcGx5KHJlc3VsdCksIElQQzo6U2VuZFN5bmNPcHRpb246OlByb2Nl
c3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5KSkKKyAgICBpZiAo
IW1fcGFnZS5zZW5kU3luY1dpdGhEZWxheWVkUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
UnVuSmF2YVNjcmlwdENvbmZpcm0od2ViRnJhbWUtPmZyYW1lSUQoKSwgU2VjdXJpdHlPcmlnaW5E
YXRhOjpmcm9tRnJhbWUoJmZyYW1lKSwgbWVzc2FnZSksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OlJ1bkphdmFTY3JpcHRDb25maXJtOjpSZXBseShyZXN1bHQpKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTUwNCw3ICs1MDQsNyBAQCBib29sIFdlYkNo
cm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdFByb21wdChGcmFtZSYgZnJhbWUsIGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSwgYwogCiAgICAgSGFuZ0RldGVjdGlvbkRpc2FibGVyIGhhbmdEZXRlY3Rpb25E
aXNhYmxlcjsKIAotICAgIGlmICghbV9wYWdlLnNlbmRTeW5jV2l0aERlbGF5ZWRSZXBseShNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0UHJvbXB0KHdlYkZyYW1lLT5mcmFtZUlE
KCksIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbUZyYW1lKCZmcmFtZSksIG1lc3NhZ2UsIGRlZmF1
bHRWYWx1ZSksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRQcm9tcHQ6OlJl
cGx5KHJlc3VsdCksIElQQzo6U2VuZFN5bmNPcHRpb246OlByb2Nlc3NJbmNvbWluZ1N5bmNNZXNz
YWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5KSkKKyAgICBpZiAoIW1fcGFnZS5zZW5kU3luY1dp
dGhEZWxheWVkUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdFByb21w
dCh3ZWJGcmFtZS0+ZnJhbWVJRCgpLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21GcmFtZSgmZnJh
bWUpLCBtZXNzYWdlLCBkZWZhdWx0VmFsdWUpLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5K
YXZhU2NyaXB0UHJvbXB0OjpSZXBseShyZXN1bHQpKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CiAgICAgcmV0dXJuICFyZXN1bHQuaXNOdWxsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDgwMDY3Y2U5YzU0MWJkMjQ1MDA1YWUxOTE1OWQ5
NWQ3NzZkODJkYjAuLjQ5NmQ2NDI0MGE0ZGUxN2U3ZTYyMzE3ODllNDQ5MWQyYTBmNjBjMDkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0yOTEy
LDYgKzI5MTIsMTAgQEAgdm9pZCBXZWJQYWdlOjpkaXNwYXRjaFRvdWNoRXZlbnQoY29uc3QgV2Vi
VG91Y2hFdmVudCYgdG91Y2hFdmVudCwgYm9vbCYgaGFuZGxlZCkKIAogdm9pZCBXZWJQYWdlOjp0
b3VjaEV2ZW50U3luYyhjb25zdCBXZWJUb3VjaEV2ZW50JiB0b3VjaEV2ZW50LCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGJvb2wpPiYmIHJlcGx5KQogeworICAgIC8vIEF2b2lkIFVJUHJvY2VzcyBo
YW5ncyB3aGVuIHRoZSBXZWJDb250ZW50IHByb2Nlc3MgaXMgc3R1Y2sgb24gYSBzeW5jIElQQy4K
KyAgICBpZiAoSVBDOjpDb25uZWN0aW9uOjppc1dhaXRpbmdGb3JTeW5jUmVwbHkoKSkKKyAgICAg
ICAgcmV0dXJuIHJlcGx5KHRydWUpOworCiAgICAgbV9wZW5kaW5nU3luY2hyb25vdXNUb3VjaEV2
ZW50UmVwbHkgPSBXVEZNb3ZlKHJlcGx5KTsKIAogICAgIEV2ZW50RGlzcGF0Y2hlcjo6VG91Y2hF
dmVudFF1ZXVlIHF1ZXVlZEV2ZW50czsKQEAgLTU4ODcsNiArNTg5MSw3IEBAIHZvaWQgV2ViUGFn
ZTo6ZGlkUmVtb3ZlTWVudUl0ZW1FbGVtZW50KEhUTUxNZW51SXRlbUVsZW1lbnQmIGVsZW1lbnQp
CiAKIHZvaWQgV2ViUGFnZTo6dGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0
aW5nRm9yU3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlOjpUZXN0UHJvY2Vzc0luY29taW5nU3lu
Y01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHk6OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQog
eworICAgIFJFTEVBU0VfQVNTRVJUKElQQzo6Q29ubmVjdGlvbjo6aXNXYWl0aW5nRm9yU3luY1Jl
cGx5KCkpOwogICAgIHJlcGx5KHRydWUpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggYzViYzhjYzlhNDQzMjQ4YTE0ZjFmZTNhZjFhZmE1MDE0
OTk2OWE1YS4uODg2MWFlNjI1NjJhNzE4OTUwYWMxYTA1Yjg2ZGRhZGVmODE1ZTM1YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMTE2NywxMCArMTE2
NywxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRSZWNlaXZlV2ViUGFnZU1lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgot
ICAgIGJvb2wgc2VuZFN5bmNXaXRoRGVsYXllZFJlcGx5KFQmJiBtZXNzYWdlLCB0eXBlbmFtZSBU
OjpSZXBseSYmIHJlcGx5LCBPcHRpb25TZXQ8SVBDOjpTZW5kU3luY09wdGlvbj4gc2VuZFN5bmNP
cHRpb25zID0geyB9KQorICAgIGJvb2wgc2VuZFN5bmNXaXRoRGVsYXllZFJlcGx5KFQmJiBtZXNz
YWdlLCB0eXBlbmFtZSBUOjpSZXBseSYmIHJlcGx5KQogICAgIHsKICAgICAgICAgY2FuY2VsR2Vz
dHVyZXNCbG9ja2VkT25TeW5jaHJvbm91c1JlcGxpZXMoKTsKLSAgICAgICAgcmV0dXJuIHNlbmRT
eW5jKFdURk1vdmUobWVzc2FnZSksIFdURk1vdmUocmVwbHkpLCBTZWNvbmRzOjppbmZpbml0eSgp
LCBzZW5kU3luY09wdGlvbnMgfCBJUEM6OlNlbmRTeW5jT3B0aW9uOjpJbmZvcm1QbGF0Zm9ybVBy
b2Nlc3NXaWxsU3VzcGVuZCk7CisgICAgICAgIHJldHVybiBzZW5kU3luYyhXVEZNb3ZlKG1lc3Nh
Z2UpLCBXVEZNb3ZlKHJlcGx5KSwgU2Vjb25kczo6aW5maW5pdHkoKSwgSVBDOjpTZW5kU3luY09w
dGlvbjo6SW5mb3JtUGxhdGZvcm1Qcm9jZXNzV2lsbFN1c3BlbmQpOwogICAgIH0KIAogICAgIFdl
YkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2UgcmVxdWVzdERPTVBhc3RlQWNjZXNzKGNvbnN0
IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4IDIzMjI0MzI2NDE3NzEwNDk3OTUy
Yjk2YjY2ZjQwNGU1NmQ2NTFkZjUuLjE3NTExOWFlODY2MzRmOTQyM2M1MDQxNjZkY2M1ZjFmZWJk
MGYwMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9X
ZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9X
ZWJQYWdlSU9TLm1tCkBAIC0yNTQyLDYgKzI1NDIsMTAgQEAgc3RhdGljIGlubGluZSBib29sIGlz
QXNzaXN0YWJsZUVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCkKIAogdm9pZCBXZWJQYWdlOjpnZXRQ
b3NpdGlvbkluZm9ybWF0aW9uKGNvbnN0IEludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0JiBy
ZXF1ZXN0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBv
c2l0aW9uJiYpPiYmIHJlcGx5KQogeworICAgIC8vIEF2b2lkIFVJUHJvY2VzcyBoYW5ncyB3aGVu
IHRoZSBXZWJDb250ZW50IHByb2Nlc3MgaXMgc3R1Y2sgb24gYSBzeW5jIElQQy4KKyAgICBpZiAo
SVBDOjpDb25uZWN0aW9uOjppc1dhaXRpbmdGb3JTeW5jUmVwbHkoKSkKKyAgICAgICAgcmV0dXJu
IHJlcGx5KHsgfSk7CisKICAgICBtX3BlbmRpbmdTeW5jaHJvbm91c1Bvc2l0aW9uSW5mb3JtYXRp
b25SZXBseSA9IFdURk1vdmUocmVwbHkpOwogCiAgICAgYXV0byBpbmZvcm1hdGlvbiA9IHBvc2l0
aW9uSW5mb3JtYXRpb24ocmVxdWVzdCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZWU1YjVlYjkzYWFlYWNiNGY3ZGQ1YmYy
MGM5ZDJiZWQzMmE1NmJhZS4uYjk4ODYxMmY0ODE2NjA3OTM3NjkyNjI1ZGJiMjhkYzlhOTI1NzU2
YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE5LTA3LTI1ICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gV2ViUGFnZTo6VG91Y2hFdmVudFN5bmMoKSAm
IFdlYlBhZ2U6OkdldFBvc2l0aW9uSW5mb3JtYXRpb24oKSBzeW5jIElQQyBjYXVzZXMgVUlQcm9j
ZXNzIGhhbmdzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDAxMzgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUyNjk4MTU3PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSBsYXlvdXQgdGVzdCBh
Y2NvcmRpbmdseS4KKworICAgICAgICAqIGZhc3QvbWlzYy90ZXN0UHJvY2Vzc0luY29taW5nU3lu
Y01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHktZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IGZhc3QvbWlzYy90ZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JT
eW5jUmVwbHkuaHRtbDoKKwogMjAxOS0wNy0yNSAgUnVzc2VsbCBFcHN0ZWluICA8cmVwc3RlaW5A
YXBwbGUuY29tPgogCiAgICAgICAgIHJkYXI6Ly81MzU1MTczNiAoTGF5b3V0IFRlc3QgZWRpdGlu
Zy9wYXN0ZWJvYXJkL3Bhc3RlLWFuZC1zYW5pdGl6ZS5odG1sIGlzIGEgRmxha3kgRmFpbHVyZSBv
biBpT1MgMTMpLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9taXNjL3Rlc3RQcm9jZXNz
SW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L21pc2MvdGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1do
ZW5XYWl0aW5nRm9yU3luY1JlcGx5LWV4cGVjdGVkLnR4dAppbmRleCBjMGM4YzI1OGU2OGI4Yzhm
OGJiYjU0Y2YzNzQxZGUyOGY1ZjljYzgwLi42ZWMyY2Q3NDE3Mjk4Njk4MjQ0NzAyNDhlOGNlODgx
Yzk4NDNiZmZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L21pc2MvdGVzdFByb2Nlc3NJ
bmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5LWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L21pc2MvdGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdl
c1doZW5XYWl0aW5nRm9yU3luY1JlcGx5LWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKLVRl
c3QgZm9yIHRoZSBTZW5kU3luY09wdGlvbjo6UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hl
bldhaXRpbmdGb3JTeW5jUmVwbHkgc2VuZFN5bmMgZmxhZworVGVzdCBmb3IgdGhlIFNlbmRTeW5j
T3B0aW9uOjpGb3JjZURpc3BhdGNoRXZlbklmRGVzdGluYXRpb25Jc1dhaXRpbmdGb3JTeW5jUmVw
bHkgc2VuZFN5bmMgZmxhZwogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvbWlzYy90ZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2Vz
V2hlbldhaXRpbmdGb3JTeW5jUmVwbHkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWlzYy90ZXN0
UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkuaHRtbApp
bmRleCBiNjQzZWJiNjQ2YTQ5ZDBmOTg2NTVjZDhiNWEwNmE3NjUwYTkzYTRlLi43NzgzMmMxNjBj
YTk1OGZhY2VhNjUzMDMxZDllYTk4ZTIwMzI3OGRlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L21pc2MvdGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3lu
Y1JlcGx5Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9taXNjL3Rlc3RQcm9jZXNzSW5jb21p
bmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseS5odG1sCkBAIC0zLDcgKzMsNyBA
QAogPGJvZHk+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2Ny
aXB0PgogPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0IGZvciB0aGUgU2VuZFN5bmNPcHRpb246
OlByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5IHNlbmRT
eW5jIGZsYWciKTsKK2Rlc2NyaXB0aW9uKCJUZXN0IGZvciB0aGUgU2VuZFN5bmNPcHRpb246OkZv
cmNlRGlzcGF0Y2hFdmVuSWZEZXN0aW5hdGlvbklzV2FpdGluZ0ZvclN5bmNSZXBseSBzZW5kU3lu
YyBmbGFnIik7CiAKIHNob3VsZEJlVHJ1ZSgiaW50ZXJuYWxzLnRlc3RQcm9jZXNzSW5jb21pbmdT
eW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSgpIik7CiA8L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>374921</attachid>
            <date>2019-07-25 16:17:13 -0700</date>
            <delta_ts>2019-07-26 08:53:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200138-20190725161713.patch</filename>
            <type>text/plain</type>
            <size>30351</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3ODM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGVlOTAxYzMzMzI2MDRlMWYz
Y2EzYTg3YjA5NjAyMGU0Zjc5OTE2Y2QuLmYwMzM2NGFmNjY1MTcyNWQ3ZjJiNTdlNGExMjRhYzM5
MGFhMDc0NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTQgQEAKKzIwMTktMDctMjUgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBXZWJQYWdlOjpUb3VjaEV2
ZW50U3luYygpICYgV2ViUGFnZTo6R2V0UG9zaXRpb25JbmZvcm1hdGlvbigpIHN5bmMgSVBDIGNh
dXNlcyBVSVByb2Nlc3MgaGFuZ3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwMDEzOAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTI2OTgxNTc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmV2ZXJ0IG1v
c3Qgb2YgcjI0NzgyMiBhbmQgdXNlIGFuIGFsdGVybmF0aXZlIGFwcHJvYWNoIHRvIGFkZHJlc3Mg
aGFuZ3MuIEluIHRoaXMgcGF0Y2gsIHRoZSBwcm9wb3NhbAorICAgICAgICBpcyB0byBhZGQgYSBT
ZW5kU3luY09wdGlvbjo6Rm9yY2VEaXNwYXRjaEV2ZW5JZkRlc3RpbmF0aW9uSXNXYWl0aW5nRm9y
U3luY1JlcGx5IGZsYWcgb24gdGhlCisgICAgICAgIFdlYlBhZ2U6OlRvdWNoRXZlbnRTeW5jKCkg
JiBXZWJQYWdlOjpHZXRQb3NpdGlvbkluZm9ybWF0aW9uKCkgc2VuZFN5bmMoKSBjYWxscyBpbiB0
aGUgVUlQcm9jZXNzLgorICAgICAgICBUaG9zZSB3aWxsIGNhdXNlIHRoaXMgSVBDcyB0byBnZXQg
ZGlzcGF0Y2hlZCBpbiB0aGUgV2ViQ29udGVudCBwcm9jZXNzLCBldmVuIGlmIHRoZSBXZWJDb250
ZW50IHByb2Nlc3MKKyAgICAgICAgaXMgaXRzZWxmIGN1cnJlbnRseSBzdHVjayBvbiBzeW5jaHJv
bm91cyBJUEMuIEJlY2F1c2UgcmUtZW50ZXJpbmcgV2ViQ29yZSBvbiBzeW5jIElQQyBpcyBnZW5l
cmFsbHkKKyAgICAgICAgdW5zYWZlLCB0aGlzIHBhdGNoIGFsc28gdXBkYXRlcyB0aGUgV2ViUGFn
ZTo6Z2V0UG9zaXRpb25JbmZvcm1hdGlvbigpICYgV2ViUGFnZTo6dG91Y2hFdmVudFN5bmMoKQor
ICAgICAgICB0byByZXR1cm4gZWFybHkgKGkuZS4gY2FuY2VsbGVkKSBpZiB0aGV5IGdldCBjYWxs
ZWQgd2hpbGUgdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBpcyBzdHVjayBvbiBhCisgICAgICAgIHNl
bmRTeW5jLgorCisgICAgICAgIFRoaXMgYXBwcm9hY2ggc2hvdWxkIGFkZHJlc3MgdGhlIFVJUHJv
Y2VzcyBoYW5ncyBjYXVzZWQgYnkgdGhlIFdlYlBhZ2U6OlRvdWNoRXZlbnRTeW5jKCkgYW5kCisg
ICAgICAgIFdlYlBhZ2U6OkdldFBvc2l0aW9uSW5mb3JtYXRpb24oKSBzeW5jIElQQyBtZXNzYWdl
cy4gSXQgc2hvdWxkIGJlIHNhZmUgYmVjYXVzZSB3ZSBkbyBub3QgcmUtZW50ZXIKKyAgICAgICAg
V2ViQ29yZS4gVGhlIG9ubHkgZHJhd2JhY2sgaXMgdGhhdCB0aG9zZSBJUENzIHdpbGwgYmUgY2Fu
Y2VsbGVkIChlYXJseSByZXR1cm4gd2l0aCBkZWZhdWx0IHZhbHVlKQorICAgICAgICB3aGVuIHRo
ZSBXZWJDb250ZW50IHByb2Nlc3MgaXMgYnVzeS4gSG93ZXZlciwgSSBhbSBiZWluZyB0b2xkIHRo
YXQgdGhpcyBpcyBsaWtlbHkgYWNjZXB0YWJsZSBpbgorICAgICAgICBwcmFjdGljZS4KKworICAg
ICAgICAqIFBsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcDoKKyAgICAgICAgKElQQzo6Q29ubmVj
dGlvbjo6U3luY01lc3NhZ2VTdGF0ZTo6aW5jcmVtZW50V2FpdGluZ0ZvclN5bmNSZXBseUNvdW50
KToKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6U3luY01lc3NhZ2VTdGF0ZTo6ZGVjcmVtZW50
V2FpdGluZ0ZvclN5bmNSZXBseUNvdW50KToKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6U3lu
Y01lc3NhZ2VTdGF0ZTo6aXNXYWl0aW5nRm9yU3luY1JlcGx5IGNvbnN0KToKKyAgICAgICAgKElQ
Qzo6Q29ubmVjdGlvbjo6U3luY01lc3NhZ2VTdGF0ZTo6cHJvY2Vzc0luY29taW5nTWVzc2FnZSk6
CisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246OnNlbmRNZXNzYWdlKToKKyAgICAgICAgKElQQzo6
Q29ubmVjdGlvbjo6aXNXYWl0aW5nRm9yU3luY1JlcGx5KToKKyAgICAgICAgKElQQzo6Q29ubmVj
dGlvbjo6c2VuZFN5bmNNZXNzYWdlKToKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvQ29ubmVjdGlv
bi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5Ojp0ZXN0UHJvY2Vzc0luY29t
aW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6Omhh
bmRsZVRvdWNoRXZlbnRTeW5jaHJvbm91c2x5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBlbnN1
cmVQb3NpdGlvbkluZm9ybWF0aW9uSXNVcFRvRGF0ZTpdKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YkNocm9tZUNsaWVudDo6dGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5n
Rm9yU3luY1JlcGx5KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpydW5KYXZh
U2NyaXB0QWxlcnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFT
Y3JpcHRDb25maXJtKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpydW5KYXZh
U2NyaXB0UHJvbXB0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnRvdWNoRXZlbnRTeW5jKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6dGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5n
Rm9yU3luY1JlcGx5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzZW5kU3luY1dpdGhEZWxheWVkUmVwbHkpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6Z2V0UG9zaXRpb25JbmZvcm1hdGlvbik6CisKIDIwMTktMDctMjUgIFlv
dWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgTmV0d29ya1Nl
c3Npb24gbm8gbG9uZ2VyIFJlZkNvdW50ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxh
dGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQ29u
bmVjdGlvbi5jcHAKaW5kZXggNmNiZWJhOWYwNDJmMmI0ZDRiMDVhMGNkZGFmNGQwYmI4ZDdiNWUy
My4uNzhlYjQyYjliNTRiMTdkYTQyNjRhN2RkMDhhYTQwNTNkN2NkNTRhZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHAKQEAgLTk4LDggKzk4LDIzIEBAIHB1Ymxp
YzoKICAgICAvLyBmcm9tIHRoYXQgY29ubmVjdGlvbiBhbmQgcHV0IHRoZSBvdGhlciBtZXNzYWdl
cyBiYWNrIGluIHRoZSBxdWV1ZS4KICAgICB2b2lkIGRpc3BhdGNoTWVzc2FnZXMoQ29ubmVjdGlv
biogYWxsb3dlZENvbm5lY3Rpb24pOwogCi0gICAgdm9pZCBpbmNyZW1lbnRQcm9jZXNzSW5jb21p
bmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseUNvdW50KCkgeyArK21fcHJvY2Vz
c0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHlDb3VudDsgfQotICAg
IHZvaWQgZGVjcmVtZW50UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JT
eW5jUmVwbHlDb3VudCgpIHsgLS1tX3Byb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0
aW5nRm9yU3luY1JlcGx5Q291bnQ7IH0KKyAgICB2b2lkIGluY3JlbWVudFdhaXRpbmdGb3JTeW5j
UmVwbHlDb3VudCgpCisgICAgeworICAgICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwor
ICAgICAgICArK21fd2FpdGluZ0ZvclN5bmNSZXBseUNvdW50OworICAgIH0KKyAgICB2b2lkIGRl
Y3JlbWVudFdhaXRpbmdGb3JTeW5jUmVwbHlDb3VudCgpCisgICAgeworICAgICAgICBBU1NFUlQo
UnVuTG9vcDo6aXNNYWluKCkpOworICAgICAgICBBU1NFUlQobV93YWl0aW5nRm9yU3luY1JlcGx5
Q291bnQpOworICAgICAgICAtLW1fd2FpdGluZ0ZvclN5bmNSZXBseUNvdW50OworICAgIH0KKyAg
ICAKKyAgICBib29sIGlzV2FpdGluZ0ZvclN5bmNSZXBseSgpIGNvbnN0CisgICAgeworICAgICAg
ICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOworICAgICAgICByZXR1cm4gbV93YWl0aW5nRm9y
U3luY1JlcGx5Q291bnQgPiAwOworICAgIH0KIAogcHJpdmF0ZToKICAgICB2b2lkIGRpc3BhdGNo
TWVzc2FnZUFuZFJlc2V0RGlkU2NoZWR1bGVEaXNwYXRjaE1lc3NhZ2VzRm9yQ29ubmVjdGlvbihD
b25uZWN0aW9uJik7CkBAIC0xMTgsNyArMTMzLDcgQEAgcHJpdmF0ZToKICAgICB9OwogICAgIFZl
Y3RvcjxDb25uZWN0aW9uQW5kSW5jb21pbmdNZXNzYWdlPiBtX21lc3NhZ2VzVG9EaXNwYXRjaFdo
aWxlV2FpdGluZ0ZvclN5bmNSZXBseTsKIAotICAgIHN0ZDo6YXRvbWljPHVuc2lnbmVkPiBtX3By
b2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5Q291bnQgeyAw
IH07CisgICAgdW5zaWduZWQgbV93YWl0aW5nRm9yU3luY1JlcGx5Q291bnQgeyAwIH07CiB9Owog
CiBDb25uZWN0aW9uOjpTeW5jTWVzc2FnZVN0YXRlJiBDb25uZWN0aW9uOjpTeW5jTWVzc2FnZVN0
YXRlOjpzaW5nbGV0b24oKQpAQCAtMTM5LDE2ICsxNTQsNyBAQCBDb25uZWN0aW9uOjpTeW5jTWVz
c2FnZVN0YXRlOjpTeW5jTWVzc2FnZVN0YXRlKCkKIAogYm9vbCBDb25uZWN0aW9uOjpTeW5jTWVz
c2FnZVN0YXRlOjpwcm9jZXNzSW5jb21pbmdNZXNzYWdlKENvbm5lY3Rpb24mIGNvbm5lY3Rpb24s
IHN0ZDo6dW5pcXVlX3B0cjxEZWNvZGVyPiYgbWVzc2FnZSkKIHsKLSAgICBib29sIHNob3VsZERp
c3BhdGNoTWVzc2FnZVdoZW5XYWl0aW5nRm9yU3luY1JlcGx5ID0gbWVzc2FnZS0+c2hvdWxkRGlz
cGF0Y2hNZXNzYWdlV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkoKTsKLQotICAgIC8vIFdlIGRpc3Bh
dGNoIHN5bmNocm9ub3VzIG1lc3NhZ2VzIGV2ZW4gaWYgc2hvdWxkRGlzcGF0Y2hNZXNzYWdlV2hl
bldhaXRpbmdGb3JTeW5jUmVwbHkgcmV0dXJucyBmYWxzZSBpZiB0aGUKLSAgICAvLyBzZW5kU3lu
YygpIHVzZWQgU2VuZFN5bmNPcHRpb246OlByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5X
YWl0aW5nRm9yU3luY1JlcGx5LiBUaGlzIGlzIHVzZWQgZm9yIHNvbWUgbWVzc2FnZXMKLSAgICAv
LyBpbiB0aGUgV2ViQ29udGVudCBwcm9jZXNzICh3aGljaCBub3JtYWxseSBkb2VzIG5vdCBkaXNw
YXRjaCBtZXNzYWdlcyB3aGVuIHdhaXRpbmcgZm9yIGEgc3luYyByZXBseSksIHRvIGF2b2lkCi0g
ICAgLy8gaGFuZ3MuCi0gICAgaWYgKCFzaG91bGREaXNwYXRjaE1lc3NhZ2VXaGVuV2FpdGluZ0Zv
clN5bmNSZXBseSAmJiBtZXNzYWdlLT5pc1N5bmNNZXNzYWdlKCkgJiYgbV9wcm9jZXNzSW5jb21p
bmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseUNvdW50LmxvYWQoKSkKLSAgICAg
ICAgc2hvdWxkRGlzcGF0Y2hNZXNzYWdlV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkgPSB0cnVlOwot
Ci0gICAgaWYgKCFzaG91bGREaXNwYXRjaE1lc3NhZ2VXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSkK
KyAgICBpZiAoIW1lc3NhZ2UtPnNob3VsZERpc3BhdGNoTWVzc2FnZVdoZW5XYWl0aW5nRm9yU3lu
Y1JlcGx5KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIENvbm5lY3Rpb25BbmRJbmNv
bWluZ01lc3NhZ2UgY29ubmVjdGlvbkFuZEluY29taW5nTWVzc2FnZSB7IGNvbm5lY3Rpb24sIFdU
Rk1vdmUobWVzc2FnZSkgfTsKQEAgLTQxNyw3ICs0MjMsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8RW5j
b2Rlcj4gQ29ubmVjdGlvbjo6Y3JlYXRlU3luY01lc3NhZ2VFbmNvZGVyKFN0cmluZ1JlZmVyZW5j
ZSBtZQogICAgIHJldHVybiBlbmNvZGVyOwogfQogCi1ib29sIENvbm5lY3Rpb246OnNlbmRNZXNz
YWdlKHN0ZDo6dW5pcXVlX3B0cjxFbmNvZGVyPiBlbmNvZGVyLCBPcHRpb25TZXQ8U2VuZE9wdGlv
bj4gc2VuZE9wdGlvbnMpCitib29sIENvbm5lY3Rpb246OnNlbmRNZXNzYWdlKHN0ZDo6dW5pcXVl
X3B0cjxFbmNvZGVyPiBlbmNvZGVyLCBPcHRpb25TZXQ8U2VuZE9wdGlvbj4gc2VuZE9wdGlvbnMs
IFNob3VsZEZvcmNlRGlzcGF0Y2hFdmVuSWZEZXN0aW5hdGlvbklzV2FpdGluZ0ZvclN5bmNSZXBs
eSBzaG91bGRGb3JjZURpc3BhdGNoRXZlbklmRGVzdGluYXRpb25Jc1dhaXRpbmdGb3JTeW5jUmVw
bHkpCiB7CiAgICAgaWYgKCFpc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTQz
Miw3ICs0MzgsOCBAQCBib29sIENvbm5lY3Rpb246OnNlbmRNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0
cjxFbmNvZGVyPiBlbmNvZGVyLCBPcHRpb25TZXQ8U2VuZE9wdAogCiAgICAgaWYgKHNlbmRPcHRp
b25zLmNvbnRhaW5zKFNlbmRPcHRpb246OkRpc3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2FpdGluZ0Zv
clN5bmNSZXBseSkKICAgICAgICAgJiYgKCFtX29ubHlTZW5kTWVzc2FnZXNBc0Rpc3BhdGNoV2hl
bldhaXRpbmdGb3JTeW5jUmVwbHlXaGVuUHJvY2Vzc2luZ1N1Y2hBTWVzc2FnZQotICAgICAgICAg
ICAgfHwgbV9pbkRpc3BhdGNoTWVzc2FnZU1hcmtlZERpc3BhdGNoV2hlbldhaXRpbmdGb3JTeW5j
UmVwbHlDb3VudCkpCisgICAgICAgICAgICB8fCBtX2luRGlzcGF0Y2hNZXNzYWdlTWFya2VkRGlz
cGF0Y2hXaGVuV2FpdGluZ0ZvclN5bmNSZXBseUNvdW50CisgICAgICAgICAgICB8fCBzaG91bGRG
b3JjZURpc3BhdGNoRXZlbklmRGVzdGluYXRpb25Jc1dhaXRpbmdGb3JTeW5jUmVwbHkgPT0gU2hv
dWxkRm9yY2VEaXNwYXRjaEV2ZW5JZkRlc3RpbmF0aW9uSXNXYWl0aW5nRm9yU3luY1JlcGx5OjpZ
ZXMpKQogICAgICAgICBlbmNvZGVyLT5zZXRTaG91bGREaXNwYXRjaE1lc3NhZ2VXaGVuV2FpdGlu
Z0ZvclN5bmNSZXBseSh0cnVlKTsKIAogICAgIHsKQEAgLTU1NCw2ICs1NjEsMTEgQEAgc3RkOjp1
bmlxdWVfcHRyPERlY29kZXI+IENvbm5lY3Rpb246OndhaXRGb3JNZXNzYWdlKFN0cmluZ1JlZmVy
ZW5jZSBtZXNzYWdlUmVjZWkKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAorYm9vbCBDb25uZWN0
aW9uOjppc1dhaXRpbmdGb3JTeW5jUmVwbHkoKQoreworICAgIHJldHVybiBTeW5jTWVzc2FnZVN0
YXRlOjpzaW5nbGV0b24oKS5pc1dhaXRpbmdGb3JTeW5jUmVwbHkoKTsKK30KKwogc3RkOjp1bmlx
dWVfcHRyPERlY29kZXI+IENvbm5lY3Rpb246OnNlbmRTeW5jTWVzc2FnZSh1aW50NjRfdCBzeW5j
UmVxdWVzdElELCBzdGQ6OnVuaXF1ZV9wdHI8RW5jb2Rlcj4gZW5jb2RlciwgU2Vjb25kcyB0aW1l
b3V0LCBPcHRpb25TZXQ8U2VuZFN5bmNPcHRpb24+IHNlbmRTeW5jT3B0aW9ucykKIHsKICAgICBB
U1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwpAQCAtNTc3LDE4ICs1ODksMTcgQEAgc3RkOjp1bmlx
dWVfcHRyPERlY29kZXI+IENvbm5lY3Rpb246OnNlbmRTeW5jTWVzc2FnZSh1aW50NjRfdCBzeW5j
UmVxdWVzdElELCBzdGQKICAgICArK21faW5TZW5kU3luY0NvdW50OwogCiAgICAgLy8gRmlyc3Qg
c2VuZCB0aGUgbWVzc2FnZS4KLSAgICBzZW5kTWVzc2FnZShXVEZNb3ZlKGVuY29kZXIpLCBJUEM6
OlNlbmRPcHRpb246OkRpc3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2FpdGluZ0ZvclN5bmNSZXBseSk7
CisgICAgYXV0byBzaG91bGRGb3JjZURpc3BhdGNoRXZlbklmRGVzdGluYXRpb25Jc1dhaXRpbmdG
b3JTeW5jUmVwbHkgPSBzZW5kU3luY09wdGlvbnMuY29udGFpbnMoU2VuZFN5bmNPcHRpb246OkZv
cmNlRGlzcGF0Y2hFdmVuSWZEZXN0aW5hdGlvbklzV2FpdGluZ0ZvclN5bmNSZXBseSkgPyBTaG91
bGRGb3JjZURpc3BhdGNoRXZlbklmRGVzdGluYXRpb25Jc1dhaXRpbmdGb3JTeW5jUmVwbHk6Olll
cyA6IFNob3VsZEZvcmNlRGlzcGF0Y2hFdmVuSWZEZXN0aW5hdGlvbklzV2FpdGluZ0ZvclN5bmNS
ZXBseTo6Tm87CisgICAgc2VuZE1lc3NhZ2UoV1RGTW92ZShlbmNvZGVyKSwgSVBDOjpTZW5kT3B0
aW9uOjpEaXNwYXRjaE1lc3NhZ2VFdmVuV2hlbldhaXRpbmdGb3JTeW5jUmVwbHksIHNob3VsZEZv
cmNlRGlzcGF0Y2hFdmVuSWZEZXN0aW5hdGlvbklzV2FpdGluZ0ZvclN5bmNSZXBseSk7CiAKLSAg
ICBpZiAoc2VuZFN5bmNPcHRpb25zLmNvbnRhaW5zKFNlbmRTeW5jT3B0aW9uOjpQcm9jZXNzSW5j
b21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSkpCi0gICAgICAgIFN5bmNN
ZXNzYWdlU3RhdGU6OnNpbmdsZXRvbigpLmluY3JlbWVudFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNz
YWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5Q291bnQoKTsKKyAgICBTeW5jTWVzc2FnZVN0YXRl
OjpzaW5nbGV0b24oKS5pbmNyZW1lbnRXYWl0aW5nRm9yU3luY1JlcGx5Q291bnQoKTsKIAogICAg
IC8vIFRoZW4gd2FpdCBmb3IgYSByZXBseS4gV2FpdGluZyBmb3IgYSByZXBseSBjb3VsZCBpbnZv
bHZlIGRpc3BhdGNoaW5nIGluY29taW5nIHN5bmMgbWVzc2FnZXMsIHNvCiAgICAgLy8ga2VlcCBh
biBleHRyYSByZWZlcmVuY2UgdG8gdGhlIGNvbm5lY3Rpb24gaGVyZSBpbiBjYXNlIGl0J3MgaW52
YWxpZGF0ZWQuCiAgICAgUmVmPENvbm5lY3Rpb24+IHByb3RlY3QoKnRoaXMpOwogICAgIHN0ZDo6
dW5pcXVlX3B0cjxEZWNvZGVyPiByZXBseSA9IHdhaXRGb3JTeW5jUmVwbHkoc3luY1JlcXVlc3RJ
RCwgdGltZW91dCwgc2VuZFN5bmNPcHRpb25zKTsKIAotICAgIGlmIChzZW5kU3luY09wdGlvbnMu
Y29udGFpbnMoU2VuZFN5bmNPcHRpb246OlByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5X
YWl0aW5nRm9yU3luY1JlcGx5KSkKLSAgICAgICAgU3luY01lc3NhZ2VTdGF0ZTo6c2luZ2xldG9u
KCkuZGVjcmVtZW50UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5j
UmVwbHlDb3VudCgpOworICAgIFN5bmNNZXNzYWdlU3RhdGU6OnNpbmdsZXRvbigpLmRlY3JlbWVu
dFdhaXRpbmdGb3JTeW5jUmVwbHlDb3VudCgpOwogCiAgICAgLS1tX2luU2VuZFN5bmNDb3VudDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5oIGIv
U291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5oCmluZGV4IGE0OTA3ZDE3MTUw
YjUxYTg4ZDY3MTVlYjU5NTA5ODVhMTc1NDczNzkuLjUyNTFkODkyN2M2NmFkMzUxOTRkNDI0MmE4
NTNmNjIxNDQ2NWM3YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Nv
bm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmgK
QEAgLTY4LDcgKzY4LDcgQEAgZW51bSBjbGFzcyBTZW5kU3luY09wdGlvbiB7CiAgICAgLy8gVXNl
IHRoaXMgdG8gaW5mb3JtIHRoYXQgdGhpcyBzeW5jIGNhbGwgd2lsbCBzdXNwZW5kIHRoaXMgcHJv
Y2VzcyB1bnRpbCB0aGUgdXNlciByZXNwb25kcyB3aXRoIGlucHV0LgogICAgIEluZm9ybVBsYXRm
b3JtUHJvY2Vzc1dpbGxTdXNwZW5kID0gMSA8PCAwLAogICAgIFVzZUZ1bGx5U3luY2hyb25vdXNN
b2RlRm9yVGVzdGluZyA9IDEgPDwgMSwKLSAgICBQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNX
aGVuV2FpdGluZ0ZvclN5bmNSZXBseSA9IDEgPDwgMiwKKyAgICBGb3JjZURpc3BhdGNoRXZlbklm
RGVzdGluYXRpb25Jc1dhaXRpbmdGb3JTeW5jUmVwbHkgPSAxIDw8IDIsCiB9OwogCiBlbnVtIGNs
YXNzIFdhaXRGb3JPcHRpb24gewpAQCAtMTY0LDYgKzE2NCw4IEBAIHB1YmxpYzoKIAogICAgIHZv
aWQgc2V0T25seVNlbmRNZXNzYWdlc0FzRGlzcGF0Y2hXaGVuV2FpdGluZ0ZvclN5bmNSZXBseVdo
ZW5Qcm9jZXNzaW5nU3VjaEFNZXNzYWdlKGJvb2wpOwogICAgIHZvaWQgc2V0U2hvdWxkRXhpdE9u
U3luY01lc3NhZ2VTZW5kRmFpbHVyZShib29sKTsKKyAgICAKKyAgICBzdGF0aWMgYm9vbCBpc1dh
aXRpbmdGb3JTeW5jUmVwbHkoKTsKIAogICAgIC8vIFRoZSBzZXQgY2FsbGJhY2sgd2lsbCBiZSBj
YWxsZWQgb24gdGhlIGNvbm5lY3Rpb24gd29yayBxdWV1ZSB3aGVuIHRoZSBjb25uZWN0aW9uIGlz
IGNsb3NlZCwgCiAgICAgLy8gYmVmb3JlIGRpZENhbGwgaXMgY2FsbGVkIG9uIHRoZSBjbGllbnQg
dGhyZWFkLiBNdXN0IGJlIGNhbGxlZCBiZWZvcmUgdGhlIGNvbm5lY3Rpb24gaXMgb3BlbmVkLgpA
QCAtMjE4LDcgKzIyMCw4IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHdhaXRGb3JBbmREaXNw
YXRjaEltbWVkaWF0ZWx5PFQ+KGRlc3RpbmF0aW9uSUQudG9VSW50NjQoKSwgdGltZW91dCwgd2Fp
dEZvck9wdGlvbnMpOwogICAgIH0KIAotICAgIGJvb2wgc2VuZE1lc3NhZ2Uoc3RkOjp1bmlxdWVf
cHRyPEVuY29kZXI+LCBPcHRpb25TZXQ8U2VuZE9wdGlvbj4gc2VuZE9wdGlvbnMpOworICAgIGVu
dW0gY2xhc3MgU2hvdWxkRm9yY2VEaXNwYXRjaEV2ZW5JZkRlc3RpbmF0aW9uSXNXYWl0aW5nRm9y
U3luY1JlcGx5IHsgTm8sIFllcyB9OworICAgIGJvb2wgc2VuZE1lc3NhZ2Uoc3RkOjp1bmlxdWVf
cHRyPEVuY29kZXI+LCBPcHRpb25TZXQ8U2VuZE9wdGlvbj4gc2VuZE9wdGlvbnMsIFNob3VsZEZv
cmNlRGlzcGF0Y2hFdmVuSWZEZXN0aW5hdGlvbklzV2FpdGluZ0ZvclN5bmNSZXBseSA9IFNob3Vs
ZEZvcmNlRGlzcGF0Y2hFdmVuSWZEZXN0aW5hdGlvbklzV2FpdGluZ0ZvclN5bmNSZXBseTo6Tm8p
OwogICAgIHZvaWQgc2VuZE1lc3NhZ2VXaXRoUmVwbHkodWludDY0X3QgcmVxdWVzdElELCBzdGQ6
OnVuaXF1ZV9wdHI8RW5jb2Rlcj4sIEZ1bmN0aW9uRGlzcGF0Y2hlciYgcmVwbHlEaXNwYXRjaGVy
LCBGdW5jdGlvbjx2b2lkKHN0ZDo6dW5pcXVlX3B0cjxEZWNvZGVyPik+JiYgcmVwbHlIYW5kbGVy
KTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RW5jb2Rlcj4gY3JlYXRlU3luY01lc3NhZ2VFbmNvZGVy
KFN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBTdHJpbmdSZWZlcmVuY2UgbWVz
c2FnZU5hbWUsIHVpbnQ2NF90IGRlc3RpbmF0aW9uSUQsIHVpbnQ2NF90JiBzeW5jUmVxdWVzdElE
KTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGVjb2Rlcj4gc2VuZFN5bmNNZXNzYWdlKHVpbnQ2NF90
IHN5bmNSZXF1ZXN0SUQsIHN0ZDo6dW5pcXVlX3B0cjxFbmNvZGVyPiwgU2Vjb25kcyB0aW1lb3V0
LCBPcHRpb25TZXQ8U2VuZFN5bmNPcHRpb24+IHNlbmRTeW5jT3B0aW9ucyk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNw
cAppbmRleCBhOWRjMzI3ODAxM2Q2MzA1OTRlOWNkYjc3ZjliM2JjZmQ3ZjIxNTY4Li4xNDBmNDk0
MTI3ODY5ZTk0NWQ3NzRkNjhhMWEwNjI2YjRmNzdjNzIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTEy
MTEsNyArMTIxMSw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6dGVzdFByb2Nlc3NJbmNv
bWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5CiAgICAgICAgIHJldHVybiBy
ZXBseShmYWxzZSk7CiAKICAgICBib29sIGhhbmRsZWQgPSBmYWxzZTsKLSAgICBpZiAoIXBhZ2Ut
PnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlOjpUZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3Nh
Z2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkoKSwgTWVzc2FnZXM6OldlYlBhZ2U6OlRlc3RQcm9j
ZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseTo6UmVwbHkoaGFu
ZGxlZCkpKQorICAgIGlmICghcGFnZS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2U6OlRlc3RQ
cm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSgpLCBNZXNz
YWdlczo6V2ViUGFnZTo6VGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5n
Rm9yU3luY1JlcGx5OjpSZXBseShoYW5kbGVkKSwgU2Vjb25kczo6aW5maW5pdHkoKSwgSVBDOjpT
ZW5kU3luY09wdGlvbjo6Rm9yY2VEaXNwYXRjaEV2ZW5JZkRlc3RpbmF0aW9uSXNXYWl0aW5nRm9y
U3luY1JlcGx5KSkKICAgICAgICAgcmV0dXJuIHJlcGx5KGZhbHNlKTsKICAgICByZXBseShoYW5k
bGVkKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDI2
ZDlmMmRlYmZlMTRhOTVjNDJiMGQ2YTlkZDgyN2M5MjJjZmM4ZGMuLmEwNTI2ZDA4YjhmODlmZWU0
YzQxYTY5ZjIwM2FjYmNlYWIyN2UxOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcApAQCAtMjY2Miw3ICsyNjYyLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmhhbmRs
ZVRvdWNoRXZlbnRTeW5jaHJvbm91c2x5KE5hdGl2ZVdlYlRvdWNoRXZlbnQmIGV2ZW50KQogCiAg
ICAgbV9wcm9jZXNzLT5yZXNwb25zaXZlbmVzc1RpbWVyKCkuc3RhcnQoKTsKICAgICBib29sIGhh
bmRsZWQgPSBmYWxzZTsKLSAgICBib29sIHJlcGx5UmVjZWl2ZWQgPSBtX3Byb2Nlc3MtPnNlbmRT
eW5jKE1lc3NhZ2VzOjpXZWJQYWdlOjpUb3VjaEV2ZW50U3luYyhldmVudCksIE1lc3NhZ2VzOjpX
ZWJQYWdlOjpUb3VjaEV2ZW50U3luYzo6UmVwbHkoaGFuZGxlZCksIG1fcGFnZUlELCAxX3MpOwor
ICAgIGJvb2wgcmVwbHlSZWNlaXZlZCA9IG1fcHJvY2Vzcy0+c2VuZFN5bmMoTWVzc2FnZXM6Oldl
YlBhZ2U6OlRvdWNoRXZlbnRTeW5jKGV2ZW50KSwgTWVzc2FnZXM6OldlYlBhZ2U6OlRvdWNoRXZl
bnRTeW5jOjpSZXBseShoYW5kbGVkKSwgbV9wYWdlSUQsIDFfcywgSVBDOjpTZW5kU3luY09wdGlv
bjo6Rm9yY2VEaXNwYXRjaEV2ZW5JZkRlc3RpbmF0aW9uSXNXYWl0aW5nRm9yU3luY1JlcGx5KTsK
ICAgICAvLyBJZiB0aGUgc3luYyByZXF1ZXN0IGhhcyB0aW1lZCBvdXQsIHdlIHNob3VsZCBjb25z
aWRlciB0aGUgZXZlbnQgaGFuZGxlZC4gVGhlIFdlYiBQcm9jZXNzIGlzIHRvbyBidXN5IHRvIGFu
c3dlciBhbnkgcXVlc3Rpb25zLCBzbyB0aGUgZGVmYXVsdCBhY3Rpb24gaXMgYWxzbyBsaWtlbHkg
dG8gaGF2ZSBpc3N1ZXMuCiAgICAgaWYgKCFyZXBseVJlY2VpdmVkKQogICAgICAgICBoYW5kbGVk
ID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IDY3NWFmN2IyNmU5NjVkODY4N2JlZTI4MzI4N2U5
YzZkMjI4YmM1NTcuLjZhYWJiMGQ3NmNmYTVhZWQ3MDQ1OGNmNDQ3NjA3YWFhMzEzYzdmYWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJh
Y3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5tbQpAQCAtMTk5MCw3ICsxOTkwLDcgQEAgLSAoQk9PTCllbnN1cmVQb3NpdGlv
bkluZm9ybWF0aW9uSXNVcFRvRGF0ZTooV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVx
dWUKICAgICBpZiAoW3NlbGYgX2hhc1ZhbGlkT3V0c3RhbmRpbmdQb3NpdGlvbkluZm9ybWF0aW9u
UmVxdWVzdDpyZXF1ZXN0XSkKICAgICAgICAgcmV0dXJuIGNvbm5lY3Rpb24tPndhaXRGb3JBbmRE
aXNwYXRjaEltbWVkaWF0ZWx5PE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZFJlY2VpdmVQb3Np
dGlvbkluZm9ybWF0aW9uPihfcGFnZS0+cGFnZUlEKCksIDFfcywgSVBDOjpXYWl0Rm9yT3B0aW9u
OjpJbnRlcnJ1cHRXYWl0aW5nSWZTeW5jTWVzc2FnZUFycml2ZXMpOwogCi0gICAgYm9vbCByZWNl
aXZlZFJlc3BvbnNlID0gX3BhZ2UtPnByb2Nlc3MoKS5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFn
ZTo6R2V0UG9zaXRpb25JbmZvcm1hdGlvbihyZXF1ZXN0KSwgTWVzc2FnZXM6OldlYlBhZ2U6Okdl
dFBvc2l0aW9uSW5mb3JtYXRpb246OlJlcGx5KF9wb3NpdGlvbkluZm9ybWF0aW9uKSwgX3BhZ2Ut
PnBhZ2VJRCgpLCAxX3MpOworICAgIGJvb2wgcmVjZWl2ZWRSZXNwb25zZSA9IF9wYWdlLT5wcm9j
ZXNzKCkuc2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2U6OkdldFBvc2l0aW9uSW5mb3JtYXRpb24o
cmVxdWVzdCksIE1lc3NhZ2VzOjpXZWJQYWdlOjpHZXRQb3NpdGlvbkluZm9ybWF0aW9uOjpSZXBs
eShfcG9zaXRpb25JbmZvcm1hdGlvbiksIF9wYWdlLT5wYWdlSUQoKSwgMV9zLCBJUEM6OlNlbmRT
eW5jT3B0aW9uOjpGb3JjZURpc3BhdGNoRXZlbklmRGVzdGluYXRpb25Jc1dhaXRpbmdGb3JTeW5j
UmVwbHkpOwogICAgIF9oYXNWYWxpZFBvc2l0aW9uSW5mb3JtYXRpb24gPSByZWNlaXZlZFJlc3Bv
bnNlICYmIF9wb3NpdGlvbkluZm9ybWF0aW9uLmNhbkJlVmFsaWQ7CiAgICAgCiAgICAgLy8gRklY
TUU6IFdlIG5lZWQgdG8gY2xlYW4gdXAgdGhlc2UgaGFuZGxlcnMgaW4gdGhlIGV2ZW50IHRoYXQg
d2UgYXJlIG5vdCBhYmxlIHRvIGNvbGxlY3QgZGF0YSwgb3IgaWYgdGhlIFdlYlByb2Nlc3MgY3Jh
c2hlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggOTkyMWRmYjBkNGJhMWFiNjRkNTBmZTkw
ZjYyNjg1NmUzN2IzMWY4ZC4uOTNlM2VhMGVkYzc2MjkxMTE2MjJmN2M5OTRiMmUyMjFlMTVjMjlh
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTMwOCw3ICszMDgsNyBAQCBQYWdlKiBXZWJD
aHJvbWVDbGllbnQ6OmNyZWF0ZVdpbmRvdyhGcmFtZSYgZnJhbWUsIGNvbnN0IEZyYW1lTG9hZFJl
cXVlc3QmIHJlcXVlcwogYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnRlc3RQcm9jZXNzSW5jb21pbmdT
eW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSgpCiB7CiAgICAgYm9vbCBoYW5kbGVk
ID0gZmFsc2U7Ci0gICAgaWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFN5bmMoTWVzc2FnZXM6Ok5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpUZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2Vz
V2hlbldhaXRpbmdGb3JTeW5jUmVwbHkobV9wYWdlLnBhZ2VJRCgpKSwgTWVzc2FnZXM6Ok5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpUZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2Vz
V2hlbldhaXRpbmdGb3JTeW5jUmVwbHk6OlJlcGx5KGhhbmRsZWQpLCAwLCBTZWNvbmRzOjppbmZp
bml0eSgpLCBJUEM6OlNlbmRTeW5jT3B0aW9uOjpQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNX
aGVuV2FpdGluZ0ZvclN5bmNSZXBseSkpCisgICAgaWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFN5bmMo
TWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpUZXN0UHJvY2Vzc0luY29t
aW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkobV9wYWdlLnBhZ2VJRCgpKSwg
TWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpUZXN0UHJvY2Vzc0luY29t
aW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHk6OlJlcGx5KGhhbmRsZWQpLCAw
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIHJldHVybiBoYW5kbGVkOwogfQpAQCAtNDY4
LDcgKzQ2OCw3IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0QWxlcnQoRnJh
bWUmIGZyYW1lLCBjb25zdCBTdHJpbmcmIGFsZXJ0VGV4dCkKIAogICAgIEhhbmdEZXRlY3Rpb25E
aXNhYmxlciBoYW5nRGV0ZWN0aW9uRGlzYWJsZXI7CiAKLSAgICBtX3BhZ2Uuc2VuZFN5bmNXaXRo
RGVsYXllZFJlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRBbGVydCh3
ZWJGcmFtZS0+ZnJhbWVJRCgpLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21GcmFtZSgmZnJhbWUp
LCBhbGVydFRleHQpLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0QWxlcnQ6
OlJlcGx5KCksIElQQzo6U2VuZFN5bmNPcHRpb246OlByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdl
c1doZW5XYWl0aW5nRm9yU3luY1JlcGx5KTsKKyAgICBtX3BhZ2Uuc2VuZFN5bmNXaXRoRGVsYXll
ZFJlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRBbGVydCh3ZWJGcmFt
ZS0+ZnJhbWVJRCgpLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21GcmFtZSgmZnJhbWUpLCBhbGVy
dFRleHQpLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0QWxlcnQ6OlJlcGx5
KCkpOwogfQogCiBib29sIFdlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdENvbmZpcm0oRnJh
bWUmIGZyYW1lLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCkBAIC00ODUsNyArNDg1LDcgQEAgYm9v
bCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRDb25maXJtKEZyYW1lJiBmcmFtZSwgY29u
c3QgU3RyaW5nJiBtZXNzYWdlKQogICAgIEhhbmdEZXRlY3Rpb25EaXNhYmxlciBoYW5nRGV0ZWN0
aW9uRGlzYWJsZXI7CiAKICAgICBib29sIHJlc3VsdCA9IGZhbHNlOwotICAgIGlmICghbV9wYWdl
LnNlbmRTeW5jV2l0aERlbGF5ZWRSZXBseShNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZh
U2NyaXB0Q29uZmlybSh3ZWJGcmFtZS0+ZnJhbWVJRCgpLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZy
b21GcmFtZSgmZnJhbWUpLCBtZXNzYWdlKSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2
YVNjcmlwdENvbmZpcm06OlJlcGx5KHJlc3VsdCksIElQQzo6U2VuZFN5bmNPcHRpb246OlByb2Nl
c3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5KSkKKyAgICBpZiAo
IW1fcGFnZS5zZW5kU3luY1dpdGhEZWxheWVkUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
UnVuSmF2YVNjcmlwdENvbmZpcm0od2ViRnJhbWUtPmZyYW1lSUQoKSwgU2VjdXJpdHlPcmlnaW5E
YXRhOjpmcm9tRnJhbWUoJmZyYW1lKSwgbWVzc2FnZSksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OlJ1bkphdmFTY3JpcHRDb25maXJtOjpSZXBseShyZXN1bHQpKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTUwNCw3ICs1MDQsNyBAQCBib29sIFdlYkNo
cm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdFByb21wdChGcmFtZSYgZnJhbWUsIGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSwgYwogCiAgICAgSGFuZ0RldGVjdGlvbkRpc2FibGVyIGhhbmdEZXRlY3Rpb25E
aXNhYmxlcjsKIAotICAgIGlmICghbV9wYWdlLnNlbmRTeW5jV2l0aERlbGF5ZWRSZXBseShNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0UHJvbXB0KHdlYkZyYW1lLT5mcmFtZUlE
KCksIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbUZyYW1lKCZmcmFtZSksIG1lc3NhZ2UsIGRlZmF1
bHRWYWx1ZSksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRQcm9tcHQ6OlJl
cGx5KHJlc3VsdCksIElQQzo6U2VuZFN5bmNPcHRpb246OlByb2Nlc3NJbmNvbWluZ1N5bmNNZXNz
YWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5KSkKKyAgICBpZiAoIW1fcGFnZS5zZW5kU3luY1dp
dGhEZWxheWVkUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdFByb21w
dCh3ZWJGcmFtZS0+ZnJhbWVJRCgpLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21GcmFtZSgmZnJh
bWUpLCBtZXNzYWdlLCBkZWZhdWx0VmFsdWUpLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5K
YXZhU2NyaXB0UHJvbXB0OjpSZXBseShyZXN1bHQpKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CiAgICAgcmV0dXJuICFyZXN1bHQuaXNOdWxsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDgwMDY3Y2U5YzU0MWJkMjQ1MDA1YWUxOTE1OWQ5
NWQ3NzZkODJkYjAuLmE0Yzc0NWVjNmMwMDQzODQzZGUwOTI2MWI1NjliZTAyZmU4YjY2ZDkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0zMTYs
OCArMzE2LDggQEAgc3RhdGljIGNvbnN0IFNlY29uZHMgcGFnZVNjcm9sbEh5c3RlcmVzaXNEdXJh
dGlvbiB7IDMwMF9tcyB9Owogc3RhdGljIGNvbnN0IFNlY29uZHMgaW5pdGlhbExheWVyVm9sYXRp
bGl0eVRpbWVySW50ZXJ2YWwgeyAyMF9tcyB9Owogc3RhdGljIGNvbnN0IFNlY29uZHMgbWF4aW11
bUxheWVyVm9sYXRpbGl0eVRpbWVySW50ZXJ2YWwgeyAyX3MgfTsKIAotI2RlZmluZSBSRUxFQVNF
X0xPR19JRl9BTExPV0VEKC4uLikgUkVMRUFTRV9MT0dfSUYoaXNBbHdheXNPbkxvZ2dpbmdBbGxv
d2VkKCksIExheWVycywgX19WQV9BUkdTX18pCi0jZGVmaW5lIFJFTEVBU0VfTE9HX0VSUk9SX0lG
X0FMTE9XRUQoLi4uKSBSRUxFQVNFX0xPR19FUlJPUl9JRihpc0Fsd2F5c09uTG9nZ2luZ0FsbG93
ZWQoKSwgTGF5ZXJzLCBfX1ZBX0FSR1NfXykKKyNkZWZpbmUgUkVMRUFTRV9MT0dfSUZfQUxMT1dF
RChjaGFubmVsLCBmbXQsIC4uLikgUkVMRUFTRV9MT0dfSUYoaXNBbHdheXNPbkxvZ2dpbmdBbGxv
d2VkKCksIGNoYW5uZWwsICIlcCAtIFdlYlBhZ2U6OiIgZm10LCB0aGlzLCAjI19fVkFfQVJHU19f
KQorI2RlZmluZSBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKGNoYW5uZWwsIGZtdCwgLi4u
KSBSRUxFQVNFX0xPR19FUlJPUl9JRihpc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgY2hhbm5l
bCwgIiVwIC0gV2ViUGFnZTo6IiBmbXQsIHRoaXMsICMjX19WQV9BUkdTX18pCiAKIGNsYXNzIFNl
bmRTdG9wUmVzcG9uc2l2ZW5lc3NUaW1lciB7CiBwdWJsaWM6CkBAIC0yNTU4LDE0ICsyNTU4LDE0
IEBAIHZvaWQgV2ViUGFnZTo6bGF5ZXJWb2xhdGlsaXR5VGltZXJGaXJlZCgpCiAgICAgaWYgKGRp
ZFN1Y2NlZWQgfHwgbmV3SW50ZXJ2YWwgPiBtYXhpbXVtTGF5ZXJWb2xhdGlsaXR5VGltZXJJbnRl
cnZhbCkgewogICAgICAgICBtX2xheWVyVm9sYXRpbGl0eVRpbWVyLnN0b3AoKTsKICAgICAgICAg
aWYgKGRpZFN1Y2NlZWQpCi0gICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCIlcCAt
IFdlYlBhZ2UgLSBTdWNjZWVkZWQgaW4gbWFya2luZyBsYXllcnMgYXMgdm9sYXRpbGUiLCB0aGlz
KTsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTGF5ZXJzLCAibGF5ZXJWb2xh
dGlsaXR5VGltZXJGaXJlZDogU3VjY2VlZGVkIGluIG1hcmtpbmcgbGF5ZXJzIGFzIHZvbGF0aWxl
Iik7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoIiVw
IC0gV2ViUGFnZSAtIEZhaWxlZCB0byBtYXJrIGxheWVycyBhcyB2b2xhdGlsZSB3aXRoaW4gJWdt
cyIsIHRoaXMsIG1heGltdW1MYXllclZvbGF0aWxpdHlUaW1lckludGVydmFsLm1pbGxpc2Vjb25k
cygpKTsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTGF5ZXJzLCAibGF5ZXJW
b2xhdGlsaXR5VGltZXJGaXJlZDogRmFpbGVkIHRvIG1hcmsgbGF5ZXJzIGFzIHZvbGF0aWxlIHdp
dGhpbiAlZ21zIiwgbWF4aW11bUxheWVyVm9sYXRpbGl0eVRpbWVySW50ZXJ2YWwubWlsbGlzZWNv
bmRzKCkpOwogICAgICAgICBjYWxsVm9sYXRpbGl0eUNvbXBsZXRpb25IYW5kbGVycyhkaWRTdWNj
ZWVkKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lG
X0FMTE9XRUQoIiVwIC0gV2ViUGFnZSAtIEZhaWxlZCB0byBtYXJrIGFsbCBsYXllcnMgYXMgdm9s
YXRpbGUsIHdpbGwgcmV0cnkgaW4gJWcgbXMiLCB0aGlzLCBuZXdJbnRlcnZhbC5taWxsaXNlY29u
ZHMoKSk7CisgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChMYXllcnMsICJsYXllclZv
bGF0aWxpdHlUaW1lckZpcmVkOiBGYWlsZWQgdG8gbWFyayBhbGwgbGF5ZXJzIGFzIHZvbGF0aWxl
LCB3aWxsIHJldHJ5IGluICVnIG1zIiwgbmV3SW50ZXJ2YWwubWlsbGlzZWNvbmRzKCkpOwogICAg
IG1fbGF5ZXJWb2xhdGlsaXR5VGltZXIuc3RhcnRSZXBlYXRpbmcobmV3SW50ZXJ2YWwpOwogfQog
CkBAIC0yNTc2LDcgKzI1NzYsNyBAQCBib29sIFdlYlBhZ2U6Om1hcmtMYXllcnNWb2xhdGlsZUlt
bWVkaWF0ZWx5SWZQb3NzaWJsZSgpCiAKIHZvaWQgV2ViUGFnZTo6bWFya0xheWVyc1ZvbGF0aWxl
KFdURjo6RnVuY3Rpb248dm9pZCAoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAg
UkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiJXAgLSBXZWJQYWdlOjptYXJrTGF5ZXJzVm9sYXRpbGUo
KSIsIHRoaXMpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTGF5ZXJzLCAibWFya0xheWVy
c1ZvbGF0aWxlIik7CiAKICAgICBpZiAobV9sYXllclZvbGF0aWxpdHlUaW1lci5pc0FjdGl2ZSgp
KQogICAgICAgICBtX2xheWVyVm9sYXRpbGl0eVRpbWVyLnN0b3AoKTsKQEAgLTI1ODcsMjIgKzI1
ODcsMjIgQEAgdm9pZCBXZWJQYWdlOjptYXJrTGF5ZXJzVm9sYXRpbGUoV1RGOjpGdW5jdGlvbjx2
b2lkIChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKICAgICBib29sIGRpZFN1Y2NlZWQgPSBt
YXJrTGF5ZXJzVm9sYXRpbGVJbW1lZGlhdGVseUlmUG9zc2libGUoKTsKICAgICBpZiAoZGlkU3Vj
Y2VlZCB8fCBtX2lzU3VzcGVuZGVkVW5kZXJMb2NrKSB7CiAgICAgICAgIGlmIChkaWRTdWNjZWVk
KQotICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiJXAgLSBXZWJQYWdlIC0gU3Vj
Y2Vzc2Z1bGx5IG1hcmtlZCBsYXllcnMgYXMgdm9sYXRpbGUiLCB0aGlzKTsKKyAgICAgICAgICAg
IFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTGF5ZXJzLCAibWFya0xheWVyc1ZvbGF0aWxlOiBTdWNj
ZXNzZnVsbHkgbWFya2VkIGxheWVycyBhcyB2b2xhdGlsZSIpOwogICAgICAgICBlbHNlIHsKICAg
ICAgICAgICAgIC8vIElmIHdlIGdldCBzdXNwZW5kZWQgd2hlbiBsb2NraW5nIHRoZSBzY3JlZW4s
IGl0IGlzIGV4cGVjdGVkIHRoYXQgc29tZSBJT1N1cmZhY2VzIGNhbm5vdCBiZSBtYXJrZWQgYXMg
cHVyZ2VhYmxlIHNvIHdlIGRvIG5vdCBrZWVwIHJldHJ5aW5nLgotICAgICAgICAgICAgUkVMRUFT
RV9MT0dfSUZfQUxMT1dFRCgiJXAgLSBXZWJQYWdlIC0gRGlkIHdoYXQgd2UgY291bGQgdG8gbWFy
ayBJT1N1cmZhY2VzIGFzIHB1cmdlYWJsZSBhZnRlciBsb2NraW5nIHRoZSBzY3JlZW4iLCB0aGlz
KTsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTGF5ZXJzLCAibWFya0xheWVy
c1ZvbGF0aWxlOiBEaWQgd2hhdCB3ZSBjb3VsZCB0byBtYXJrIElPU3VyZmFjZXMgYXMgcHVyZ2Vh
YmxlIGFmdGVyIGxvY2tpbmcgdGhlIHNjcmVlbiIpOwogICAgICAgICB9CiAgICAgICAgIGNhbGxW
b2xhdGlsaXR5Q29tcGxldGlvbkhhbmRsZXJzKGRpZFN1Y2NlZWQpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCi0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiJXAgLSBGYWlsZWQgdG8gbWFy
ayBhbGwgbGF5ZXJzIGFzIHZvbGF0aWxlLCB3aWxsIHJldHJ5IGluICVnIG1zIiwgdGhpcywgaW5p
dGlhbExheWVyVm9sYXRpbGl0eVRpbWVySW50ZXJ2YWwubWlsbGlzZWNvbmRzKCkpOworICAgIFJF
TEVBU0VfTE9HX0lGX0FMTE9XRUQoTGF5ZXJzLCAibWFya0xheWVyc1ZvbGF0aWxlOiBGYWlsZWQg
dG8gbWFyayBhbGwgbGF5ZXJzIGFzIHZvbGF0aWxlLCB3aWxsIHJldHJ5IGluICVnIG1zIiwgaW5p
dGlhbExheWVyVm9sYXRpbGl0eVRpbWVySW50ZXJ2YWwubWlsbGlzZWNvbmRzKCkpOwogICAgIG1f
bGF5ZXJWb2xhdGlsaXR5VGltZXIuc3RhcnRSZXBlYXRpbmcoaW5pdGlhbExheWVyVm9sYXRpbGl0
eVRpbWVySW50ZXJ2YWwpOwogfQogCiB2b2lkIFdlYlBhZ2U6OmNhbmNlbE1hcmtMYXllcnNWb2xh
dGlsZSgpCiB7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiJXAgLSBXZWJQYWdlOjpjYW5j
ZWxNYXJrTGF5ZXJzVm9sYXRpbGUoKSIsIHRoaXMpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9X
RUQoTGF5ZXJzLCAiY2FuY2VsTWFya0xheWVyc1ZvbGF0aWxlIik7CiAgICAgbV9sYXllclZvbGF0
aWxpdHlUaW1lci5zdG9wKCk7CiAgICAgbV9tYXJrTGF5ZXJzQXNWb2xhdGlsZUNvbXBsZXRpb25I
YW5kbGVycy5jbGVhcigpOwogfQpAQCAtMjkxMiw2ICsyOTEyLDEyIEBAIHZvaWQgV2ViUGFnZTo6
ZGlzcGF0Y2hUb3VjaEV2ZW50KGNvbnN0IFdlYlRvdWNoRXZlbnQmIHRvdWNoRXZlbnQsIGJvb2wm
IGhhbmRsZWQpCiAKIHZvaWQgV2ViUGFnZTo6dG91Y2hFdmVudFN5bmMoY29uc3QgV2ViVG91Y2hF
dmVudCYgdG91Y2hFdmVudCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiByZXBseSkK
IHsKKyAgICAvLyBBdm9pZCBVSVByb2Nlc3MgaGFuZ3Mgd2hlbiB0aGUgV2ViQ29udGVudCBwcm9j
ZXNzIGlzIHN0dWNrIG9uIGEgc3luYyBJUEMuCisgICAgaWYgKElQQzo6Q29ubmVjdGlvbjo6aXNX
YWl0aW5nRm9yU3luY1JlcGx5KCkpIHsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxM
T1dFRChQcm9jZXNzLCAidG91Y2hFdmVudFN5bmMgLSBOb3QgcHJvY2Vzc2luZyBiZWNhdXNlIHRo
ZSBwcm9jZXNzIGlzIHN0dWNrIG9uIHN5bmMgSVBDIik7CisgICAgICAgIHJldHVybiByZXBseSh0
cnVlKTsKKyAgICB9CisKICAgICBtX3BlbmRpbmdTeW5jaHJvbm91c1RvdWNoRXZlbnRSZXBseSA9
IFdURk1vdmUocmVwbHkpOwogCiAgICAgRXZlbnREaXNwYXRjaGVyOjpUb3VjaEV2ZW50UXVldWUg
cXVldWVkRXZlbnRzOwpAQCAtMzI4MSw3ICszMjg3LDcgQEAgdm9pZCBXZWJQYWdlOjpkaWRDb21w
bGV0ZVBhZ2VUcmFuc2l0aW9uKCkKIHsKICAgICB1bmZyZWV6ZUxheWVyVHJlZShMYXllclRyZWVG
cmVlemVSZWFzb246OlBhZ2VUcmFuc2l0aW9uKTsKIAotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9X
RUQoIiVwIC0gV2ViUGFnZSAtIERpZCBjb21wbGV0ZSBwYWdlIHRyYW5zaXRpb24iLCB0aGlzKTsK
KyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExheWVycywgImRpZENvbXBsZXRlUGFnZVRyYW5z
aXRpb246IERpZCBjb21wbGV0ZSBwYWdlIHRyYW5zaXRpb24iKTsKIAogICAgIGJvb2wgaXNJbml0
aWFsRW1wdHlEb2N1bWVudCA9ICFtX21haW5GcmFtZTsKICAgICBpZiAoIWlzSW5pdGlhbEVtcHR5
RG9jdW1lbnQpCkBAIC0zNTQ2LDcgKzM1NTIsNyBAQCB2b2lkIFdlYlBhZ2U6OnVwZGF0ZVByZWZl
cmVuY2VzKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmIHN0b3JlKQogCiAjaWYgIVBMQVRGT1JN
KEdUSykgJiYgIVBMQVRGT1JNKFdJTikKICAgICBpZiAoIXNldHRpbmdzLmFjY2VsZXJhdGVkQ29t
cG9zaXRpbmdFbmFibGVkKCkpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiJXAg
LSBXZWJQYWdlIC0gYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQgc2V0dGluZyB3YXMgZmFs
c2UuIFdlYktpdCBjYW5ub3QgZnVuY3Rpb24gaW4gdGhpcyBtb2RlOyBjaGFuZ2luZyBzZXR0aW5n
IHRvIHRydWUiLCB0aGlzKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMYXllcnMs
ICJ1cGRhdGVQcmVmZXJlbmNlczogYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQgc2V0dGlu
ZyB3YXMgZmFsc2UuIFdlYktpdCBjYW5ub3QgZnVuY3Rpb24gaW4gdGhpcyBtb2RlOyBjaGFuZ2lu
ZyBzZXR0aW5nIHRvIHRydWUiKTsKICAgICAgICAgc2V0dGluZ3Muc2V0QWNjZWxlcmF0ZWRDb21w
b3NpdGluZ0VuYWJsZWQodHJ1ZSk7CiAgICAgfQogI2VuZGlmCkBAIC01ODg3LDYgKzU4OTMsNyBA
QCB2b2lkIFdlYlBhZ2U6OmRpZFJlbW92ZU1lbnVJdGVtRWxlbWVudChIVE1MTWVudUl0ZW1FbGVt
ZW50JiBlbGVtZW50KQogCiB2b2lkIFdlYlBhZ2U6OnRlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVz
c2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZTo6VGVzdFByb2Nl
c3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5OjpEZWxheWVkUmVw
bHkmJiByZXBseSkKIHsKKyAgICBSRUxFQVNFX0FTU0VSVChJUEM6OkNvbm5lY3Rpb246OmlzV2Fp
dGluZ0ZvclN5bmNSZXBseSgpKTsKICAgICByZXBseSh0cnVlKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IGM1YmM4Y2M5YTQ0MzI0OGExNGYx
ZmUzYWYxYWZhNTAxNDk5NjlhNWEuLjg4NjFhZTYyNTYyYTcxODk1MGFjMWEwNWI4NmRkYWRlZjgx
NWUzNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAg
LTExNjcsMTAgKzExNjcsMTAgQEAgcHVibGljOgogICAgIHZvaWQgZGlkUmVjZWl2ZVdlYlBhZ2VN
ZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOwogCiAgICAgdGVtcGxhdGU8
dHlwZW5hbWUgVD4KLSAgICBib29sIHNlbmRTeW5jV2l0aERlbGF5ZWRSZXBseShUJiYgbWVzc2Fn
ZSwgdHlwZW5hbWUgVDo6UmVwbHkmJiByZXBseSwgT3B0aW9uU2V0PElQQzo6U2VuZFN5bmNPcHRp
b24+IHNlbmRTeW5jT3B0aW9ucyA9IHsgfSkKKyAgICBib29sIHNlbmRTeW5jV2l0aERlbGF5ZWRS
ZXBseShUJiYgbWVzc2FnZSwgdHlwZW5hbWUgVDo6UmVwbHkmJiByZXBseSkKICAgICB7CiAgICAg
ICAgIGNhbmNlbEdlc3R1cmVzQmxvY2tlZE9uU3luY2hyb25vdXNSZXBsaWVzKCk7Ci0gICAgICAg
IHJldHVybiBzZW5kU3luYyhXVEZNb3ZlKG1lc3NhZ2UpLCBXVEZNb3ZlKHJlcGx5KSwgU2Vjb25k
czo6aW5maW5pdHkoKSwgc2VuZFN5bmNPcHRpb25zIHwgSVBDOjpTZW5kU3luY09wdGlvbjo6SW5m
b3JtUGxhdGZvcm1Qcm9jZXNzV2lsbFN1c3BlbmQpOworICAgICAgICByZXR1cm4gc2VuZFN5bmMo
V1RGTW92ZShtZXNzYWdlKSwgV1RGTW92ZShyZXBseSksIFNlY29uZHM6OmluZmluaXR5KCksIElQ
Qzo6U2VuZFN5bmNPcHRpb246OkluZm9ybVBsYXRmb3JtUHJvY2Vzc1dpbGxTdXNwZW5kKTsKICAg
ICB9CiAKICAgICBXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlIHJlcXVlc3RET01QYXN0
ZUFjY2Vzcyhjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRleCAyMzIyNDMy
NjQxNzcxMDQ5Nzk1MmI5NmI2NmY0MDRlNTZkNjUxZGY1Li5mYTcwNWM5MGQ0MGQwZDc3NmM3MDEw
NzhkNDRjZDUxZTFiYWRlMTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtMTMyLDYgKzEzMiw5IEBACiAjaW1wb3J0IDx3
dGYvY29jb2EvRW50aXRsZW1lbnRzLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9UZXh0U3RyZWFtLmg+
CiAKKyNkZWZpbmUgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChjaGFubmVsLCBmbXQsIC4uLikgUkVM
RUFTRV9MT0dfSUYoaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIGNoYW5uZWwsICIlcCAtIFdl
YlBhZ2U6OiIgZm10LCB0aGlzLCAjI19fVkFfQVJHU19fKQorI2RlZmluZSBSRUxFQVNFX0xPR19F
UlJPUl9JRl9BTExPV0VEKGNoYW5uZWwsIGZtdCwgLi4uKSBSRUxFQVNFX0xPR19FUlJPUl9JRihp
c0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgY2hhbm5lbCwgIiVwIC0gV2ViUGFnZTo6IiBmbXQs
IHRoaXMsICMjX19WQV9BUkdTX18pCisKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiAKQEAgLTI1NDIsNiArMjU0NSwxMiBAQCBzdGF0aWMgaW5saW5lIGJvb2wg
aXNBc3Npc3RhYmxlRWxlbWVudChFbGVtZW50JiBlbGVtZW50KQogCiB2b2lkIFdlYlBhZ2U6Omdl
dFBvc2l0aW9uSW5mb3JtYXRpb24oY29uc3QgSW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3Qm
IHJlcXVlc3QsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0
UG9zaXRpb24mJik+JiYgcmVwbHkpCiB7CisgICAgLy8gQXZvaWQgVUlQcm9jZXNzIGhhbmdzIHdo
ZW4gdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBpcyBzdHVjayBvbiBhIHN5bmMgSVBDLgorICAgIGlm
IChJUEM6OkNvbm5lY3Rpb246OmlzV2FpdGluZ0ZvclN5bmNSZXBseSgpKSB7CisgICAgICAgIFJF
TEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoUHJvY2VzcywgImdldFBvc2l0aW9uSW5mb3JtYXRp
b24gLSBOb3QgcHJvY2Vzc2luZyBiZWNhdXNlIHRoZSBwcm9jZXNzIGlzIHN0dWNrIG9uIHN5bmMg
SVBDIik7CisgICAgICAgIHJldHVybiByZXBseSh7IH0pOworICAgIH0KKwogICAgIG1fcGVuZGlu
Z1N5bmNocm9ub3VzUG9zaXRpb25JbmZvcm1hdGlvblJlcGx5ID0gV1RGTW92ZShyZXBseSk7CiAK
ICAgICBhdXRvIGluZm9ybWF0aW9uID0gcG9zaXRpb25JbmZvcm1hdGlvbihyZXF1ZXN0KTsKQEAg
LTQwNDEsNCArNDA1MCw3IEBAIHZvaWQgV2ViUGFnZTo6cmVxdWVzdERvY3VtZW50RWRpdGluZ0Nv
bnRleHQoRG9jdW1lbnRFZGl0aW5nQ29udGV4dFJlcXVlc3QgcmVxdWVzCiAKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdAogCisjdW5kZWYgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRAorI3VuZGVmIFJFTEVB
U0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQKKwogI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkp
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggZWU1YjVlYjkzYWFlYWNiNGY3ZGQ1YmYyMGM5ZDJiZWQzMmE1NmJhZS4uYjk4ODYx
MmY0ODE2NjA3OTM3NjkyNjI1ZGJiMjhkYzlhOTI1NzU2YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBA
CisyMDE5LTA3LTI1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAg
W2lPU10gV2ViUGFnZTo6VG91Y2hFdmVudFN5bmMoKSAmIFdlYlBhZ2U6OkdldFBvc2l0aW9uSW5m
b3JtYXRpb24oKSBzeW5jIElQQyBjYXVzZXMgVUlQcm9jZXNzIGhhbmdzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDAxMzgKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzUyNjk4MTU3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFVwZGF0ZSBsYXlvdXQgdGVzdCBhY2NvcmRpbmdseS4KKworICAgICAgICAq
IGZhc3QvbWlzYy90ZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JT
eW5jUmVwbHktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvbWlzYy90ZXN0UHJvY2Vzc0lu
Y29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkuaHRtbDoKKwogMjAxOS0w
Ny0yNSAgUnVzc2VsbCBFcHN0ZWluICA8cmVwc3RlaW5AYXBwbGUuY29tPgogCiAgICAgICAgIHJk
YXI6Ly81MzU1MTczNiAoTGF5b3V0IFRlc3QgZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLWFuZC1z
YW5pdGl6ZS5odG1sIGlzIGEgRmxha3kgRmFpbHVyZSBvbiBpT1MgMTMpLgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9taXNjL3Rlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVu
V2FpdGluZ0ZvclN5bmNSZXBseS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21pc2Mv
dGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5LWV4
cGVjdGVkLnR4dAppbmRleCBjMGM4YzI1OGU2OGI4YzhmOGJiYjU0Y2YzNzQxZGUyOGY1ZjljYzgw
Li42ZWMyY2Q3NDE3Mjk4Njk4MjQ0NzAyNDhlOGNlODgxYzk4NDNiZmZhIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L21pc2MvdGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5X
YWl0aW5nRm9yU3luY1JlcGx5LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21p
c2MvdGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5
LWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKLVRlc3QgZm9yIHRoZSBTZW5kU3luY09wdGlv
bjo6UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkgc2Vu
ZFN5bmMgZmxhZworVGVzdCBmb3IgdGhlIFNlbmRTeW5jT3B0aW9uOjpGb3JjZURpc3BhdGNoRXZl
bklmRGVzdGluYXRpb25Jc1dhaXRpbmdGb3JTeW5jUmVwbHkgc2VuZFN5bmMgZmxhZwogCiBPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWlz
Yy90ZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHku
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWlzYy90ZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3Nh
Z2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkuaHRtbAppbmRleCBiNjQzZWJiNjQ2YTQ5ZDBmOTg2
NTVjZDhiNWEwNmE3NjUwYTkzYTRlLi43NzgzMmMxNjBjYTk1OGZhY2VhNjUzMDMxZDllYTk4ZTIw
MzI3OGRlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L21pc2MvdGVzdFByb2Nlc3NJbmNv
bWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5Lmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9taXNjL3Rlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGlu
Z0ZvclN5bmNSZXBseS5odG1sCkBAIC0zLDcgKzMsNyBAQAogPGJvZHk+CiA8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWRlc2NyaXB0
aW9uKCJUZXN0IGZvciB0aGUgU2VuZFN5bmNPcHRpb246OlByb2Nlc3NJbmNvbWluZ1N5bmNNZXNz
YWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5IHNlbmRTeW5jIGZsYWciKTsKK2Rlc2NyaXB0aW9u
KCJUZXN0IGZvciB0aGUgU2VuZFN5bmNPcHRpb246OkZvcmNlRGlzcGF0Y2hFdmVuSWZEZXN0aW5h
dGlvbklzV2FpdGluZ0ZvclN5bmNSZXBseSBzZW5kU3luYyBmbGFnIik7CiAKIHNob3VsZEJlVHJ1
ZSgiaW50ZXJuYWxzLnRlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0Zv
clN5bmNSZXBseSgpIik7CiA8L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>374965</attachid>
            <date>2019-07-26 08:53:56 -0700</date>
            <delta_ts>2019-07-26 10:07:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200138-20190726085355.patch</filename>
            <type>text/plain</type>
            <size>40403</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3ODYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDYwZGVhZGJmNGY1NmE0NTgy
NjJkYzRkMDc0MTE3NzU2OWFkODU0YTcuLjc5YzAwM2YxZGRjODZmNjlkZGZmZTJjMThmYjFjODE3
YTdjNmFmZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzAgQEAKKzIwMTktMDctMjYgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBXZWJQYWdlOjpUb3VjaEV2
ZW50U3luYygpICYgV2ViUGFnZTo6R2V0UG9zaXRpb25JbmZvcm1hdGlvbigpIHN5bmMgSVBDIGNh
dXNlcyBVSVByb2Nlc3MgaGFuZ3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwMDEzOAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTI2OTgxNTc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmV2ZXJ0IG1v
c3Qgb2YgcjI0NzgyMiBhbmQgdXNlIGFuIGFsdGVybmF0aXZlIGFwcHJvYWNoIHRvIGFkZHJlc3Mg
aGFuZ3MuIEluIHRoaXMgcGF0Y2gsIHRoZSBwcm9wb3NhbAorICAgICAgICBpcyB0byBhZGQgYSBT
ZW5kU3luY09wdGlvbjo6Rm9yY2VEaXNwYXRjaFdoZW5EZXN0aW5hdGlvbklzV2FpdGluZ0ZvclN5
bmNSZXBseSBmbGFnIG9uIHRoZQorICAgICAgICBXZWJQYWdlOjpUb3VjaEV2ZW50U3luYygpICYg
V2ViUGFnZTo6R2V0UG9zaXRpb25JbmZvcm1hdGlvbigpIHNlbmRTeW5jKCkgY2FsbHMgaW4gdGhl
IFVJUHJvY2Vzcy4KKyAgICAgICAgVGhvc2Ugd2lsbCBjYXVzZSB0aGlzIElQQ3MgdG8gZ2V0IGRp
c3BhdGNoZWQgcmlnaHQgYXdheSBpbiB0aGUgV2ViQ29udGVudCBwcm9jZXNzLCBldmVuIGlmIHRo
ZQorICAgICAgICBXZWJDb250ZW50IHByb2Nlc3MgaXMgaXRzZWxmIGN1cnJlbnRseSBzdHVjayBv
biBwb3RlbnRpYWxseSBzbG93IHN5bmNocm9ub3VzIElQQyAoSlMgYWxlcnRzIC8gcHJvbXB0cwor
ICAgICAgICAmIHN5bmMgWEhSKS4gQmVjYXVzZSByZS1lbnRlcmluZyBXZWJDb3JlIG9uIHN5bmMg
SVBDIGlzIGdlbmVyYWxseSB1bnNhZmUsIHRoaXMgcGF0Y2ggYWxzbyB1cGRhdGVzIHRoZQorICAg
ICAgICBXZWJQYWdlOjpnZXRQb3NpdGlvbkluZm9ybWF0aW9uKCkgJiBXZWJQYWdlOjp0b3VjaEV2
ZW50U3luYygpIHRvIHJldHVybiBlYXJseSAoaS5lLiBjYW5jZWxsZWQpIGlmCisgICAgICAgIHRo
ZXkgZ2V0IGNhbGxlZCB3aGlsZSB0aGUgV2ViQ29udGVudCBwcm9jZXNzIGlzIHN0dWNrIG9uIGEg
c2xvdyBzZW5kU3luYy4KKworICAgICAgICBUaGlzIGFwcHJvYWNoIHNob3VsZCBhZGRyZXNzIHRo
ZSBVSVByb2Nlc3MgaGFuZ3MgY2F1c2VkIGJ5IHRoZSBXZWJQYWdlOjpUb3VjaEV2ZW50U3luYygp
IGFuZAorICAgICAgICBXZWJQYWdlOjpHZXRQb3NpdGlvbkluZm9ybWF0aW9uKCkgc3luYyBJUEMg
bWVzc2FnZXMgd2hlbiB0aGUgV2ViQ29udGVudCBwcm9jZXNzIGlzIGJ1c3kgb24gYSBzbG93IFhI
UgorICAgICAgICBvciBhIEpTIHByb21wdCAvIGFsZXJ0LiBJdCBzaG91bGQgYmUgc2FmZSBiZWNh
dXNlIHdlIGRvIG5vdCByZS1lbnRlciBXZWJDb3JlLiBUaGUgb25seSBkcmF3YmFjayBpcyB0aGF0
CisgICAgICAgIHRob3NlIElQQ3Mgd2lsbCBiZSBjYW5jZWxsZWQgKGVhcmx5IHJldHVybiB3aXRo
IGRlZmF1bHQgdmFsdWUpIHdoZW4gdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBpcyBidXN5LgorICAg
ICAgICBIb3dldmVyLCBJIGFtIGJlaW5nIHRvbGQgdGhhdCB0aGlzIGlzIGxpa2VseSBhY2NlcHRh
YmxlIGluIHByYWN0aWNlLgorCisgICAgICAgICogUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3Bw
OgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjpTeW5jTWVzc2FnZVN0YXRlOjpwcm9jZXNzSW5j
b21pbmdNZXNzYWdlKToKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6c2VuZE1lc3NhZ2UpOgor
ICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjpzZW5kU3luY01lc3NhZ2UpOgorICAgICAgICAoSVBD
OjpDb25uZWN0aW9uOjpkaXNwYXRjaE1lc3NhZ2UpOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9D
b25uZWN0aW9uLmg6CisgICAgICAgIChJUEM6OlNsb3dTeW5jaHJvbm91c0lQQ1Njb3BlOjpTbG93
U3luY2hyb25vdXNJUENTY29wZSk6CisgICAgICAgIChJUEM6OlNsb3dTeW5jaHJvbm91c0lQQ1Nj
b3BlOjp+U2xvd1N5bmNocm9ub3VzSVBDU2NvcGUpOgorICAgICAgICAoSVBDOjpTbG93U3luY2hy
b25vdXNJUENTY29wZTo6aGFzT25nb2luZ1Nsb3dTeW5jSVBDKToKKyAgICAgICAgKiBQbGF0Zm9y
bS9JUEMvRGVjb2Rlci5jcHA6CisgICAgICAgIChJUEM6OkRlY29kZXI6OnNob3VsZERpc3BhdGNo
TWVzc2FnZVdoZW5XYWl0aW5nRm9yU3luY1JlcGx5IGNvbnN0KToKKyAgICAgICAgKiBQbGF0Zm9y
bS9JUEMvRGVjb2Rlci5oOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9FbmNvZGVyLmNwcDoKKyAg
ICAgICAgKElQQzo6RW5jb2Rlcjo6c2hvdWxkRGlzcGF0Y2hNZXNzYWdlV2hlbldhaXRpbmdGb3JT
eW5jUmVwbHkgY29uc3QpOgorICAgICAgICAoSVBDOjpFbmNvZGVyOjpzZXRTaG91bGREaXNwYXRj
aE1lc3NhZ2VXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSk6CisgICAgICAgIChJUEM6OkVuY29kZXI6
OndyYXBGb3JUZXN0aW5nKToKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvRW5jb2Rlci5oOgorICAg
ICAgICAqIFBsYXRmb3JtL0lQQy9NZXNzYWdlRmxhZ3MuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Byb2Nlc3NQcm94eTo6dGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5n
Rm9yU3luY1JlcGx5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpoYW5kbGVUb3VjaEV2ZW50U3luY2hyb25vdXNs
eSk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06
CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgZW5zdXJlUG9zaXRpb25JbmZvcm1hdGlvbklzVXBU
b0RhdGU6XSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTG9hZGVyU3RyYXRlZ3k6OmxvYWRSZXNvdXJjZVN5
bmNocm9ub3VzbHkpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojp0ZXN0UHJv
Y2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRBbGVydCk6CisgICAgICAg
IChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdENvbmZpcm0pOgorICAgICAg
ICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRQcm9tcHQpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6bGF5ZXJWb2xhdGlsaXR5VGltZXJGaXJlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6Om1hcmtMYXllcnNWb2xhdGlsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmNhbmNl
bE1hcmtMYXllcnNWb2xhdGlsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnRvdWNoRXZl
bnRTeW5jKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkQ29tcGxldGVQYWdlVHJhbnNp
dGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1do
ZW5XYWl0aW5nRm9yU3luY1JlcGx5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzZW5kU3luY1dpdGhEZWxheWVkUmVw
bHkpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Z2V0UG9zaXRpb25JbmZvcm1hdGlvbik6CisKIDIwMTkt
MDctMjYgIEFsZXhhbmRlciBNaWtoYXlsZW5rbyAgPGV4YWxtNzY1OUBnbWFpbC5jb20+CiAKICAg
ICAgICAgUkVHUkVTU0lPTihyMjQ2NDk2KTogW0dUS10gVGFwcGluZyB0aGUgd2ViIHZpZXcgc2Ny
b2xscyB1cCBhIGJpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQ29u
bmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcApp
bmRleCA2Y2JlYmE5ZjA0MmYyYjRkNGIwNWEwY2RkYWY0ZDBiYjhkN2I1ZTIzLi5lNDBiODY4OGM1
M2Q3OTA0NmUwZTZjNjcyZjQ0MDU1NWQyYzg3NzdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
L0lQQy9Db25uZWN0aW9uLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIkNvbm5lY3Rp
b24uaCIKIAogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJNZXNzYWdlRmxhZ3MuaCIK
ICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3
dGYvTmV2ZXJEZXN0cm95ZWQuaD4KQEAgLTQ5LDYgKzUwLDggQEAgbmFtZXNwYWNlIElQQyB7CiBj
b25zdCBzaXplX3QgbWF4UGVuZGluZ0luY29taW5nTWVzc2FnZXNLaWxsaW5nVGhyZXNob2xkIHsg
NTAwMDAgfTsKICNlbmRpZgogCitzdGQ6OmF0b21pYzx1bnNpZ25lZD4gU2xvd1N5bmNocm9ub3Vz
SVBDU2NvcGU6OnNsb3dTeW5jaHJvbm91c0lQQ0NvdW50ID0gMDsKKwogc3RydWN0IENvbm5lY3Rp
b246OlJlcGx5SGFuZGxlciB7CiAgICAgUmVmUHRyPEZ1bmN0aW9uRGlzcGF0Y2hlcj4gZGlzcGF0
Y2hlcjsKICAgICBGdW5jdGlvbjx2b2lkIChzdGQ6OnVuaXF1ZV9wdHI8RGVjb2Rlcj4pPiBoYW5k
bGVyOwpAQCAtOTgsOSArMTAxLDYgQEAgcHVibGljOgogICAgIC8vIGZyb20gdGhhdCBjb25uZWN0
aW9uIGFuZCBwdXQgdGhlIG90aGVyIG1lc3NhZ2VzIGJhY2sgaW4gdGhlIHF1ZXVlLgogICAgIHZv
aWQgZGlzcGF0Y2hNZXNzYWdlcyhDb25uZWN0aW9uKiBhbGxvd2VkQ29ubmVjdGlvbik7CiAKLSAg
ICB2b2lkIGluY3JlbWVudFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9y
U3luY1JlcGx5Q291bnQoKSB7ICsrbV9wcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2Fp
dGluZ0ZvclN5bmNSZXBseUNvdW50OyB9Ci0gICAgdm9pZCBkZWNyZW1lbnRQcm9jZXNzSW5jb21p
bmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseUNvdW50KCkgeyAtLW1fcHJvY2Vz
c0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHlDb3VudDsgfQotCiBw
cml2YXRlOgogICAgIHZvaWQgZGlzcGF0Y2hNZXNzYWdlQW5kUmVzZXREaWRTY2hlZHVsZURpc3Bh
dGNoTWVzc2FnZXNGb3JDb25uZWN0aW9uKENvbm5lY3Rpb24mKTsKIApAQCAtMTE3LDggKzExNyw2
IEBAIHByaXZhdGU6CiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxEZWNvZGVyPiBtZXNzYWdlOwog
ICAgIH07CiAgICAgVmVjdG9yPENvbm5lY3Rpb25BbmRJbmNvbWluZ01lc3NhZ2U+IG1fbWVzc2Fn
ZXNUb0Rpc3BhdGNoV2hpbGVXYWl0aW5nRm9yU3luY1JlcGx5OwotCi0gICAgc3RkOjphdG9taWM8
dW5zaWduZWQ+IG1fcHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5j
UmVwbHlDb3VudCB7IDAgfTsKIH07CiAKIENvbm5lY3Rpb246OlN5bmNNZXNzYWdlU3RhdGUmIENv
bm5lY3Rpb246OlN5bmNNZXNzYWdlU3RhdGU6OnNpbmdsZXRvbigpCkBAIC0xMzksMTcgKzEzNywx
NiBAQCBDb25uZWN0aW9uOjpTeW5jTWVzc2FnZVN0YXRlOjpTeW5jTWVzc2FnZVN0YXRlKCkKIAog
Ym9vbCBDb25uZWN0aW9uOjpTeW5jTWVzc2FnZVN0YXRlOjpwcm9jZXNzSW5jb21pbmdNZXNzYWdl
KENvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIHN0ZDo6dW5pcXVlX3B0cjxEZWNvZGVyPiYgbWVzc2Fn
ZSkKIHsKLSAgICBib29sIHNob3VsZERpc3BhdGNoTWVzc2FnZVdoZW5XYWl0aW5nRm9yU3luY1Jl
cGx5ID0gbWVzc2FnZS0+c2hvdWxkRGlzcGF0Y2hNZXNzYWdlV2hlbldhaXRpbmdGb3JTeW5jUmVw
bHkoKTsKLQotICAgIC8vIFdlIGRpc3BhdGNoIHN5bmNocm9ub3VzIG1lc3NhZ2VzIGV2ZW4gaWYg
c2hvdWxkRGlzcGF0Y2hNZXNzYWdlV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkgcmV0dXJucyBmYWxz
ZSBpZiB0aGUKLSAgICAvLyBzZW5kU3luYygpIHVzZWQgU2VuZFN5bmNPcHRpb246OlByb2Nlc3NJ
bmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5LiBUaGlzIGlzIHVzZWQg
Zm9yIHNvbWUgbWVzc2FnZXMKLSAgICAvLyBpbiB0aGUgV2ViQ29udGVudCBwcm9jZXNzICh3aGlj
aCBub3JtYWxseSBkb2VzIG5vdCBkaXNwYXRjaCBtZXNzYWdlcyB3aGVuIHdhaXRpbmcgZm9yIGEg
c3luYyByZXBseSksIHRvIGF2b2lkCi0gICAgLy8gaGFuZ3MuCi0gICAgaWYgKCFzaG91bGREaXNw
YXRjaE1lc3NhZ2VXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSAmJiBtZXNzYWdlLT5pc1N5bmNNZXNz
YWdlKCkgJiYgbV9wcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNS
ZXBseUNvdW50LmxvYWQoKSkKLSAgICAgICAgc2hvdWxkRGlzcGF0Y2hNZXNzYWdlV2hlbldhaXRp
bmdGb3JTeW5jUmVwbHkgPSB0cnVlOwotCi0gICAgaWYgKCFzaG91bGREaXNwYXRjaE1lc3NhZ2VX
aGVuV2FpdGluZ0ZvclN5bmNSZXBseSkKKyAgICBzd2l0Y2ggKG1lc3NhZ2UtPnNob3VsZERpc3Bh
dGNoTWVzc2FnZVdoZW5XYWl0aW5nRm9yU3luY1JlcGx5KCkpIHsKKyAgICBjYXNlIFNob3VsZERp
c3BhdGNoV2hlbldhaXRpbmdGb3JTeW5jUmVwbHk6Ok5vOgogICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgY2FzZSBTaG91bGREaXNwYXRjaFdoZW5XYWl0aW5nRm9yU3luY1JlcGx5OjpPbmx5U2xv
d0lQQzoKKyAgICAgICAgaWYgKCFTbG93U3luY2hyb25vdXNJUENTY29wZTo6aGFzT25nb2luZ1Ns
b3dTeW5jSVBDKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgU2hvdWxkRGlzcGF0Y2hXaGVuV2FpdGluZ0ZvclN5bmNSZXBseTo6WWVzOgorICAg
ICAgICBicmVhazsKKyAgICB9CiAKICAgICBDb25uZWN0aW9uQW5kSW5jb21pbmdNZXNzYWdlIGNv
bm5lY3Rpb25BbmRJbmNvbWluZ01lc3NhZ2UgeyBjb25uZWN0aW9uLCBXVEZNb3ZlKG1lc3NhZ2Up
IH07CiAKQEAgLTQzMyw3ICs0MzAsOSBAQCBib29sIENvbm5lY3Rpb246OnNlbmRNZXNzYWdlKHN0
ZDo6dW5pcXVlX3B0cjxFbmNvZGVyPiBlbmNvZGVyLCBPcHRpb25TZXQ8U2VuZE9wdAogICAgIGlm
IChzZW5kT3B0aW9ucy5jb250YWlucyhTZW5kT3B0aW9uOjpEaXNwYXRjaE1lc3NhZ2VFdmVuV2hl
bldhaXRpbmdGb3JTeW5jUmVwbHkpCiAgICAgICAgICYmICghbV9vbmx5U2VuZE1lc3NhZ2VzQXNE
aXNwYXRjaFdoZW5XYWl0aW5nRm9yU3luY1JlcGx5V2hlblByb2Nlc3NpbmdTdWNoQU1lc3NhZ2UK
ICAgICAgICAgICAgIHx8IG1faW5EaXNwYXRjaE1lc3NhZ2VNYXJrZWREaXNwYXRjaFdoZW5XYWl0
aW5nRm9yU3luY1JlcGx5Q291bnQpKQotICAgICAgICBlbmNvZGVyLT5zZXRTaG91bGREaXNwYXRj
aE1lc3NhZ2VXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSh0cnVlKTsKKyAgICAgICAgZW5jb2Rlci0+
c2V0U2hvdWxkRGlzcGF0Y2hNZXNzYWdlV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkoU2hvdWxkRGlz
cGF0Y2hXaGVuV2FpdGluZ0ZvclN5bmNSZXBseTo6WWVzKTsKKyAgICBlbHNlIGlmIChzZW5kT3B0
aW9ucy5jb250YWlucyhTZW5kT3B0aW9uOjpEaXNwYXRjaE1lc3NhZ2VFdmVuV2hlbldhaXRpbmdG
b3JTbG93U3luY1JlcGx5KSkKKyAgICAgICAgZW5jb2Rlci0+c2V0U2hvdWxkRGlzcGF0Y2hNZXNz
YWdlV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkoU2hvdWxkRGlzcGF0Y2hXaGVuV2FpdGluZ0ZvclN5
bmNSZXBseTo6T25seVNsb3dJUEMpOwogCiAgICAgewogICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8
TG9jaz4gbG9jayhtX291dGdvaW5nTWVzc2FnZXNNdXRleCk7CkBAIC01NzcsMTkgKzU3NiwxNyBA
QCBzdGQ6OnVuaXF1ZV9wdHI8RGVjb2Rlcj4gQ29ubmVjdGlvbjo6c2VuZFN5bmNNZXNzYWdlKHVp
bnQ2NF90IHN5bmNSZXF1ZXN0SUQsIHN0ZAogICAgICsrbV9pblNlbmRTeW5jQ291bnQ7CiAKICAg
ICAvLyBGaXJzdCBzZW5kIHRoZSBtZXNzYWdlLgotICAgIHNlbmRNZXNzYWdlKFdURk1vdmUoZW5j
b2RlciksIElQQzo6U2VuZE9wdGlvbjo6RGlzcGF0Y2hNZXNzYWdlRXZlbldoZW5XYWl0aW5nRm9y
U3luY1JlcGx5KTsKKyAgICBPcHRpb25TZXQ8U2VuZE9wdGlvbj4gc2VuZE9wdGlvbnMgPSBJUEM6
OlNlbmRPcHRpb246OkRpc3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2FpdGluZ0ZvclN5bmNSZXBseTsK
KyAgICBpZiAoc2VuZFN5bmNPcHRpb25zLmNvbnRhaW5zKFNlbmRTeW5jT3B0aW9uOjpGb3JjZURp
c3BhdGNoV2hlbkRlc3RpbmF0aW9uSXNXYWl0aW5nRm9yU2xvd1N5bmNSZXBseSkpCisgICAgICAg
IHNlbmRPcHRpb25zID0gc2VuZE9wdGlvbnMgfCBJUEM6OlNlbmRPcHRpb246OkRpc3BhdGNoTWVz
c2FnZUV2ZW5XaGVuV2FpdGluZ0ZvclNsb3dTeW5jUmVwbHk7CiAKLSAgICBpZiAoc2VuZFN5bmNP
cHRpb25zLmNvbnRhaW5zKFNlbmRTeW5jT3B0aW9uOjpQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2Fn
ZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSkpCi0gICAgICAgIFN5bmNNZXNzYWdlU3RhdGU6OnNp
bmdsZXRvbigpLmluY3JlbWVudFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5n
Rm9yU3luY1JlcGx5Q291bnQoKTsKKyAgICBzZW5kTWVzc2FnZShXVEZNb3ZlKGVuY29kZXIpLCBz
ZW5kT3B0aW9ucyk7CiAKICAgICAvLyBUaGVuIHdhaXQgZm9yIGEgcmVwbHkuIFdhaXRpbmcgZm9y
IGEgcmVwbHkgY291bGQgaW52b2x2ZSBkaXNwYXRjaGluZyBpbmNvbWluZyBzeW5jIG1lc3NhZ2Vz
LCBzbwogICAgIC8vIGtlZXAgYW4gZXh0cmEgcmVmZXJlbmNlIHRvIHRoZSBjb25uZWN0aW9uIGhl
cmUgaW4gY2FzZSBpdCdzIGludmFsaWRhdGVkLgogICAgIFJlZjxDb25uZWN0aW9uPiBwcm90ZWN0
KCp0aGlzKTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGVjb2Rlcj4gcmVwbHkgPSB3YWl0Rm9yU3lu
Y1JlcGx5KHN5bmNSZXF1ZXN0SUQsIHRpbWVvdXQsIHNlbmRTeW5jT3B0aW9ucyk7CiAKLSAgICBp
ZiAoc2VuZFN5bmNPcHRpb25zLmNvbnRhaW5zKFNlbmRTeW5jT3B0aW9uOjpQcm9jZXNzSW5jb21p
bmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSkpCi0gICAgICAgIFN5bmNNZXNz
YWdlU3RhdGU6OnNpbmdsZXRvbigpLmRlY3JlbWVudFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdl
c1doZW5XYWl0aW5nRm9yU3luY1JlcGx5Q291bnQoKTsKLQogICAgIC0tbV9pblNlbmRTeW5jQ291
bnQ7CiAKICAgICAvLyBGaW5hbGx5LCBwb3AgdGhlIHBlbmRpbmcgc3luYyByZXBseSBpbmZvcm1h
dGlvbi4KQEAgLTEwNDAsOCArMTAzNywxMSBAQCB2b2lkIENvbm5lY3Rpb246OmRpc3BhdGNoTWVz
c2FnZShzdGQ6OnVuaXF1ZV9wdHI8RGVjb2Rlcj4gbWVzc2FnZSkKICAgICB9CiAKICAgICBtX2lu
RGlzcGF0Y2hNZXNzYWdlQ291bnQrKzsKKyAgICAKKyAgICBib29sIGlzRGlzcGF0Y2hpbmdNZXNz
YWdlV2hpbGVXYWl0aW5nRm9yU3luY1JlcGx5ID0gKG1lc3NhZ2UtPnNob3VsZERpc3BhdGNoTWVz
c2FnZVdoZW5XYWl0aW5nRm9yU3luY1JlcGx5KCkgPT0gU2hvdWxkRGlzcGF0Y2hXaGVuV2FpdGlu
Z0ZvclN5bmNSZXBseTo6WWVzKQorICAgICAgICB8fCAobWVzc2FnZS0+c2hvdWxkRGlzcGF0Y2hN
ZXNzYWdlV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkoKSA9PSBTaG91bGREaXNwYXRjaFdoZW5XYWl0
aW5nRm9yU3luY1JlcGx5OjpPbmx5U2xvd0lQQyAmJiBTbG93U3luY2hyb25vdXNJUENTY29wZTo6
aGFzT25nb2luZ1Nsb3dTeW5jSVBDKCkpOwogCi0gICAgaWYgKG1lc3NhZ2UtPnNob3VsZERpc3Bh
dGNoTWVzc2FnZVdoZW5XYWl0aW5nRm9yU3luY1JlcGx5KCkpCisgICAgaWYgKGlzRGlzcGF0Y2hp
bmdNZXNzYWdlV2hpbGVXYWl0aW5nRm9yU3luY1JlcGx5KQogICAgICAgICBtX2luRGlzcGF0Y2hN
ZXNzYWdlTWFya2VkRGlzcGF0Y2hXaGVuV2FpdGluZ0ZvclN5bmNSZXBseUNvdW50Kys7CiAKICAg
ICBib29sIG9sZERpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZSA9IG1fZGlkUmVjZWl2ZUludmFsaWRN
ZXNzYWdlOwpAQCAtMTA1Nyw3ICsxMDU3LDcgQEAgdm9pZCBDb25uZWN0aW9uOjpkaXNwYXRjaE1l
c3NhZ2Uoc3RkOjp1bmlxdWVfcHRyPERlY29kZXI+IG1lc3NhZ2UpCiAKICAgICAvLyBGSVhNRTog
Rm9yIHN5bmNocm9ub3VzIG1lc3NhZ2VzLCB3ZSBzaG91bGQgbm90IGRlY3JlbWVudCB0aGUgY291
bnRlciB1bnRpbCB3ZSBzZW5kIGEgcmVzcG9uc2UuCiAgICAgLy8gT3RoZXJ3aXNlLCB3ZSB3b3Vs
ZCBkZWFkbG9jayBpZiBwcm9jZXNzaW5nIHRoZSBtZXNzYWdlIHJlc3VsdHMgaW4gYSBzeW5jIG1l
c3NhZ2UgYmFjayBhZnRlciB3ZSBleGl0IHRoaXMgZnVuY3Rpb24uCi0gICAgaWYgKG1lc3NhZ2Ut
PnNob3VsZERpc3BhdGNoTWVzc2FnZVdoZW5XYWl0aW5nRm9yU3luY1JlcGx5KCkpCisgICAgaWYg
KGlzRGlzcGF0Y2hpbmdNZXNzYWdlV2hpbGVXYWl0aW5nRm9yU3luY1JlcGx5KQogICAgICAgICBt
X2luRGlzcGF0Y2hNZXNzYWdlTWFya2VkRGlzcGF0Y2hXaGVuV2FpdGluZ0ZvclN5bmNSZXBseUNv
dW50LS07CiAKICAgICBpZiAobWVzc2FnZS0+c2hvdWxkVXNlRnVsbHlTeW5jaHJvbm91c01vZGVG
b3JUZXN0aW5nKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Db25u
ZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmgKaW5kZXgg
YTQ5MDdkMTcxNTBiNTFhODhkNjcxNWViNTk1MDk4NWExNzU0NzM3OS4uYjA2ZGI4MGExZmQyMTFm
ZDc3ZWRmMmIwMWE5NDg4MmZmOTYyMGQ5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0
Zm9ybS9JUEMvQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Nv
bm5lY3Rpb24uaApAQCAtNjEsMTQgKzYxLDE1IEBAIGVudW0gY2xhc3MgU2VuZE9wdGlvbiB7CiAg
ICAgLy8gV2hldGhlciB0aGlzIG1lc3NhZ2Ugc2hvdWxkIGJlIGRpc3BhdGNoZWQgd2hlbiB3YWl0
aW5nIGZvciBhIHN5bmMgcmVwbHkuCiAgICAgLy8gVGhpcyBpcyB0aGUgZGVmYXVsdCBmb3Igc3lu
Y2hyb25vdXMgbWVzc2FnZXMuCiAgICAgRGlzcGF0Y2hNZXNzYWdlRXZlbldoZW5XYWl0aW5nRm9y
U3luY1JlcGx5ID0gMSA8PCAwLAotICAgIElnbm9yZUZ1bGx5U3luY2hyb25vdXNNb2RlID0gMSA8
PCAxLAorICAgIERpc3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2FpdGluZ0ZvclNsb3dTeW5jUmVwbHkg
PSAxIDw8IDEsCisgICAgSWdub3JlRnVsbHlTeW5jaHJvbm91c01vZGUgPSAxIDw8IDIsCiB9Owog
CiBlbnVtIGNsYXNzIFNlbmRTeW5jT3B0aW9uIHsKICAgICAvLyBVc2UgdGhpcyB0byBpbmZvcm0g
dGhhdCB0aGlzIHN5bmMgY2FsbCB3aWxsIHN1c3BlbmQgdGhpcyBwcm9jZXNzIHVudGlsIHRoZSB1
c2VyIHJlc3BvbmRzIHdpdGggaW5wdXQuCiAgICAgSW5mb3JtUGxhdGZvcm1Qcm9jZXNzV2lsbFN1
c3BlbmQgPSAxIDw8IDAsCiAgICAgVXNlRnVsbHlTeW5jaHJvbm91c01vZGVGb3JUZXN0aW5nID0g
MSA8PCAxLAotICAgIFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3lu
Y1JlcGx5ID0gMSA8PCAyLAorICAgIEZvcmNlRGlzcGF0Y2hXaGVuRGVzdGluYXRpb25Jc1dhaXRp
bmdGb3JTbG93U3luY1JlcGx5ID0gMSA8PCAyLAogfTsKIAogZW51bSBjbGFzcyBXYWl0Rm9yT3B0
aW9uIHsKQEAgLTU1NCw0ICs1NTUsMjggQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gYm9vbCBDb25u
ZWN0aW9uOjp3YWl0Rm9yQW5kRGlzcGF0Y2hJbW1lZGlhdGVseSh1aW50NjRfdCBkZXMKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAorY2xhc3MgU2xvd1N5bmNocm9ub3VzSVBDU2NvcGUgeworcHVibGlj
OgorICAgIFNsb3dTeW5jaHJvbm91c0lQQ1Njb3BlKCkKKyAgICB7CisgICAgICAgIEFTU0VSVChS
dW5Mb29wOjppc01haW4oKSk7CisgICAgICAgICsrc2xvd1N5bmNocm9ub3VzSVBDQ291bnQ7Cisg
ICAgfQorCisgICAgflNsb3dTeW5jaHJvbm91c0lQQ1Njb3BlKCkKKyAgICB7CisgICAgICAgIEFT
U0VSVChSdW5Mb29wOjppc01haW4oKSk7CisgICAgICAgIEFTU0VSVChzbG93U3luY2hyb25vdXNJ
UENDb3VudCk7CisgICAgICAgIC0tc2xvd1N5bmNocm9ub3VzSVBDQ291bnQ7CisgICAgfQorCisg
ICAgc3RhdGljIGJvb2wgaGFzT25nb2luZ1Nsb3dTeW5jSVBDKCkKKyAgICB7CisgICAgICAgIHJl
dHVybiBzbG93U3luY2hyb25vdXNJUENDb3VudC5sb2FkKCkgPiAwOworICAgIH0KKworcHJpdmF0
ZToKKyAgICBzdGF0aWMgc3RkOjphdG9taWM8dW5zaWduZWQ+IHNsb3dTeW5jaHJvbm91c0lQQ0Nv
dW50OworfTsKKwogfSAvLyBuYW1lc3BhY2UgSVBDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtL0lQQy9EZWNvZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Rl
Y29kZXIuY3BwCmluZGV4IDE1NGMzZDlkYTkwMWVmNzMzOGMwOWE2NWNiMDZhZjBiZjkyMDdjOTMu
LjkwMTc2NmQzZGRiMjA1ZDdhMTdmYjc2MjgwMTU2MDQ2NWFlOTBmM2YgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0RlY29kZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
UGxhdGZvcm0vSVBDL0RlY29kZXIuY3BwCkBAIC04OCw5ICs4OCwxMyBAQCBib29sIERlY29kZXI6
OmlzU3luY01lc3NhZ2UoKSBjb25zdAogICAgIHJldHVybiBtX21lc3NhZ2VGbGFncyAmIFN5bmNN
ZXNzYWdlOwogfQogCi1ib29sIERlY29kZXI6OnNob3VsZERpc3BhdGNoTWVzc2FnZVdoZW5XYWl0
aW5nRm9yU3luY1JlcGx5KCkgY29uc3QKK1Nob3VsZERpc3BhdGNoV2hlbldhaXRpbmdGb3JTeW5j
UmVwbHkgRGVjb2Rlcjo6c2hvdWxkRGlzcGF0Y2hNZXNzYWdlV2hlbldhaXRpbmdGb3JTeW5jUmVw
bHkoKSBjb25zdAogewotICAgIHJldHVybiBtX21lc3NhZ2VGbGFncyAmIERpc3BhdGNoTWVzc2Fn
ZVdoZW5XYWl0aW5nRm9yU3luY1JlcGx5OworICAgIGlmIChtX21lc3NhZ2VGbGFncyAmIERpc3Bh
dGNoTWVzc2FnZVdoZW5XYWl0aW5nRm9yU3luY1JlcGx5KQorICAgICAgICByZXR1cm4gU2hvdWxk
RGlzcGF0Y2hXaGVuV2FpdGluZ0ZvclN5bmNSZXBseTo6WWVzOworICAgIGlmIChtX21lc3NhZ2VG
bGFncyAmIERpc3BhdGNoTWVzc2FnZVdoZW5XYWl0aW5nRm9yU2xvd1N5bmNSZXBseSkKKyAgICAg
ICAgcmV0dXJuIFNob3VsZERpc3BhdGNoV2hlbldhaXRpbmdGb3JTeW5jUmVwbHk6Ok9ubHlTbG93
SVBDOworICAgIHJldHVybiBTaG91bGREaXNwYXRjaFdoZW5XYWl0aW5nRm9yU3luY1JlcGx5OjpO
bzsKIH0KIAogYm9vbCBEZWNvZGVyOjpzaG91bGRVc2VGdWxseVN5bmNocm9ub3VzTW9kZUZvclRl
c3RpbmcoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRGVj
b2Rlci5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRGVjb2Rlci5oCmluZGV4IDRlMDE1
NGI0Zjg2NmFjYjFhYjNmMTA1NjhkMjVmOGNkMjAyMmE0ZGIuLmIzZTY0MWQxMzU1YWZmMTZhOWUw
NWFmYjFlMjkwODUzZmE4ZjMzMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0v
SVBDL0RlY29kZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9EZWNvZGVyLmgK
QEAgLTM5LDYgKzM5LDcgQEAgbmFtZXNwYWNlIElQQyB7CiAKIGNsYXNzIERhdGFSZWZlcmVuY2U7
CiBjbGFzcyBJbXBvcnRhbmNlQXNzZXJ0aW9uOworZW51bSBjbGFzcyBTaG91bGREaXNwYXRjaFdo
ZW5XYWl0aW5nRm9yU3luY1JlcGx5OwogCiBjbGFzcyBEZWNvZGVyIHsKICAgICBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKQEAgLTU0LDcgKzU1LDcgQEAgcHVibGljOgogICAgIHVpbnQ2NF90IGRl
c3RpbmF0aW9uSUQoKSBjb25zdCB7IHJldHVybiBtX2Rlc3RpbmF0aW9uSUQ7IH0KIAogICAgIGJv
b2wgaXNTeW5jTWVzc2FnZSgpIGNvbnN0OwotICAgIGJvb2wgc2hvdWxkRGlzcGF0Y2hNZXNzYWdl
V2hlbldhaXRpbmdGb3JTeW5jUmVwbHkoKSBjb25zdDsKKyAgICBTaG91bGREaXNwYXRjaFdoZW5X
YWl0aW5nRm9yU3luY1JlcGx5IHNob3VsZERpc3BhdGNoTWVzc2FnZVdoZW5XYWl0aW5nRm9yU3lu
Y1JlcGx5KCkgY29uc3Q7CiAgICAgYm9vbCBzaG91bGRVc2VGdWxseVN5bmNocm9ub3VzTW9kZUZv
clRlc3RpbmcoKSBjb25zdDsKIAogI2lmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0VuY29kZXIuY3BwIGIvU291cmNlL1dlYktpdC9QbGF0Zm9y
bS9JUEMvRW5jb2Rlci5jcHAKaW5kZXggYjU4NjE2MmVhYjQ0MjQ1YTI3YmVkYTczYTU4NTNmZTdm
MzYyZjEyOC4uODk5OWMxMTIyNGI0ZjZiZDI3MThiZDJmZjU1NGJmYmRlYWIzYWI5OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRW5jb2Rlci5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9JUEMvRW5jb2Rlci5jcHAKQEAgLTg1LDkgKzg1LDEzIEBAIGJvb2wg
RW5jb2Rlcjo6aXNTeW5jTWVzc2FnZSgpIGNvbnN0CiAgICAgcmV0dXJuICpidWZmZXIoKSAmIFN5
bmNNZXNzYWdlOwogfQogCi1ib29sIEVuY29kZXI6OnNob3VsZERpc3BhdGNoTWVzc2FnZVdoZW5X
YWl0aW5nRm9yU3luY1JlcGx5KCkgY29uc3QKK1Nob3VsZERpc3BhdGNoV2hlbldhaXRpbmdGb3JT
eW5jUmVwbHkgRW5jb2Rlcjo6c2hvdWxkRGlzcGF0Y2hNZXNzYWdlV2hlbldhaXRpbmdGb3JTeW5j
UmVwbHkoKSBjb25zdAogewotICAgIHJldHVybiAqYnVmZmVyKCkgJiBEaXNwYXRjaE1lc3NhZ2VX
aGVuV2FpdGluZ0ZvclN5bmNSZXBseTsKKyAgICBpZiAoKmJ1ZmZlcigpICYgRGlzcGF0Y2hNZXNz
YWdlV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkpCisgICAgICAgIHJldHVybiBTaG91bGREaXNwYXRj
aFdoZW5XYWl0aW5nRm9yU3luY1JlcGx5OjpZZXM7CisgICAgaWYgKCpidWZmZXIoKSAmIERpc3Bh
dGNoTWVzc2FnZVdoZW5XYWl0aW5nRm9yU2xvd1N5bmNSZXBseSkKKyAgICAgICAgcmV0dXJuIFNo
b3VsZERpc3BhdGNoV2hlbldhaXRpbmdGb3JTeW5jUmVwbHk6Ok9ubHlTbG93SVBDOworICAgIHJl
dHVybiBTaG91bGREaXNwYXRjaFdoZW5XYWl0aW5nRm9yU3luY1JlcGx5OjpObzsKIH0KIAogdm9p
ZCBFbmNvZGVyOjpzZXRJc1N5bmNNZXNzYWdlKGJvb2wgaXNTeW5jTWVzc2FnZSkKQEAgLTk4LDEy
ICsxMDIsMjEgQEAgdm9pZCBFbmNvZGVyOjpzZXRJc1N5bmNNZXNzYWdlKGJvb2wgaXNTeW5jTWVz
c2FnZSkKICAgICAgICAgKmJ1ZmZlcigpICY9IH5TeW5jTWVzc2FnZTsKIH0KIAotdm9pZCBFbmNv
ZGVyOjpzZXRTaG91bGREaXNwYXRjaE1lc3NhZ2VXaGVuV2FpdGluZ0ZvclN5bmNSZXBseShib29s
IHNob3VsZERpc3BhdGNoTWVzc2FnZVdoZW5XYWl0aW5nRm9yU3luY1JlcGx5KQordm9pZCBFbmNv
ZGVyOjpzZXRTaG91bGREaXNwYXRjaE1lc3NhZ2VXaGVuV2FpdGluZ0ZvclN5bmNSZXBseShTaG91
bGREaXNwYXRjaFdoZW5XYWl0aW5nRm9yU3luY1JlcGx5IHNob3VsZERpc3BhdGNoV2hlbldhaXRp
bmdGb3JTeW5jUmVwbHkpCiB7Ci0gICAgaWYgKHNob3VsZERpc3BhdGNoTWVzc2FnZVdoZW5XYWl0
aW5nRm9yU3luY1JlcGx5KQorICAgIHN3aXRjaCAoc2hvdWxkRGlzcGF0Y2hXaGVuV2FpdGluZ0Zv
clN5bmNSZXBseSkgeworICAgIGNhc2UgU2hvdWxkRGlzcGF0Y2hXaGVuV2FpdGluZ0ZvclN5bmNS
ZXBseTo6Tm86CisgICAgICAgICpidWZmZXIoKSAmPSB+KERpc3BhdGNoTWVzc2FnZVdoZW5XYWl0
aW5nRm9yU3luY1JlcGx5IHwgRGlzcGF0Y2hNZXNzYWdlV2hlbldhaXRpbmdGb3JTbG93U3luY1Jl
cGx5KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTaG91bGREaXNwYXRjaFdoZW5XYWl0aW5n
Rm9yU3luY1JlcGx5OjpZZXM6CiAgICAgICAgICpidWZmZXIoKSB8PSBEaXNwYXRjaE1lc3NhZ2VX
aGVuV2FpdGluZ0ZvclN5bmNSZXBseTsKLSAgICBlbHNlCisgICAgICAgICpidWZmZXIoKSAmPSB+
RGlzcGF0Y2hNZXNzYWdlV2hlbldhaXRpbmdGb3JTbG93U3luY1JlcGx5OworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFNob3VsZERpc3BhdGNoV2hlbldhaXRpbmdGb3JTeW5jUmVwbHk6Ok9ubHlT
bG93SVBDOgorICAgICAgICAqYnVmZmVyKCkgfD0gRGlzcGF0Y2hNZXNzYWdlV2hlbldhaXRpbmdG
b3JTbG93U3luY1JlcGx5OwogICAgICAgICAqYnVmZmVyKCkgJj0gfkRpc3BhdGNoTWVzc2FnZVdo
ZW5XYWl0aW5nRm9yU3luY1JlcGx5OworICAgICAgICBicmVhazsKKyAgICB9CiB9CiAKIHZvaWQg
RW5jb2Rlcjo6c2V0RnVsbHlTeW5jaHJvbm91c01vZGVGb3JUZXN0aW5nKCkKQEAgLTExNiw3ICsx
MjksNyBAQCB2b2lkIEVuY29kZXI6OndyYXBGb3JUZXN0aW5nKHN0ZDo6dW5pcXVlX3B0cjxFbmNv
ZGVyPiBvcmlnaW5hbCkKICAgICBBU1NFUlQoaXNTeW5jTWVzc2FnZSgpKTsKICAgICBBU1NFUlQo
IW9yaWdpbmFsLT5pc1N5bmNNZXNzYWdlKCkpOwogCi0gICAgb3JpZ2luYWwtPnNldFNob3VsZERp
c3BhdGNoTWVzc2FnZVdoZW5XYWl0aW5nRm9yU3luY1JlcGx5KHRydWUpOworICAgIG9yaWdpbmFs
LT5zZXRTaG91bGREaXNwYXRjaE1lc3NhZ2VXaGVuV2FpdGluZ0ZvclN5bmNSZXBseShTaG91bGRE
aXNwYXRjaFdoZW5XYWl0aW5nRm9yU3luY1JlcGx5OjpZZXMpOwogCiAgICAgZW5jb2RlVmFyaWFi
bGVMZW5ndGhCeXRlQXJyYXkoRGF0YVJlZmVyZW5jZShvcmlnaW5hbC0+YnVmZmVyKCksIG9yaWdp
bmFsLT5idWZmZXJTaXplKCkpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9y
bS9JUEMvRW5jb2Rlci5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRW5jb2Rlci5oCmlu
ZGV4IDI5NDc5NmJmNTk1NjA4Yjg4NTVhNTY4NTQzMDJkZmU0ZDNkZWMyYzkuLjgxM2EyN2ZjMDJi
YWNkZjAyMWQ4ODgyMmFiODUwYzBiY2U1OWNkYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
UGxhdGZvcm0vSVBDL0VuY29kZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9F
bmNvZGVyLmgKQEAgLTM0LDYgKzM0LDcgQEAKIG5hbWVzcGFjZSBJUEMgewogCiBjbGFzcyBEYXRh
UmVmZXJlbmNlOworZW51bSBjbGFzcyBTaG91bGREaXNwYXRjaFdoZW5XYWl0aW5nRm9yU3luY1Jl
cGx5OwogCiBjbGFzcyBFbmNvZGVyIGZpbmFsIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKQEAgLTQ4LDggKzQ5LDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0SXNTeW5jTWVzc2FnZShi
b29sKTsKICAgICBib29sIGlzU3luY01lc3NhZ2UoKSBjb25zdDsKIAotICAgIHZvaWQgc2V0U2hv
dWxkRGlzcGF0Y2hNZXNzYWdlV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkoYm9vbCk7Ci0gICAgYm9v
bCBzaG91bGREaXNwYXRjaE1lc3NhZ2VXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSgpIGNvbnN0Owor
ICAgIHZvaWQgc2V0U2hvdWxkRGlzcGF0Y2hNZXNzYWdlV2hlbldhaXRpbmdGb3JTeW5jUmVwbHko
U2hvdWxkRGlzcGF0Y2hXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSk7CisgICAgU2hvdWxkRGlzcGF0
Y2hXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSBzaG91bGREaXNwYXRjaE1lc3NhZ2VXaGVuV2FpdGlu
Z0ZvclN5bmNSZXBseSgpIGNvbnN0OwogCiAgICAgdm9pZCBzZXRGdWxseVN5bmNocm9ub3VzTW9k
ZUZvclRlc3RpbmcoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMv
TWVzc2FnZUZsYWdzLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9NZXNzYWdlRmxhZ3Mu
aAppbmRleCBlOGQzZTVlMzdiYzRlNzc2NzczNDUwZWYyY2E5NmViNDhhZTljZDc1Li42YWY5Y2I0
ZTZiMWQ1NGY4Njg5ZjM3ZWY5YWRjZGEwZDkzZTA0MGJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtL0lQQy9NZXNzYWdlRmxhZ3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRm
b3JtL0lQQy9NZXNzYWdlRmxhZ3MuaApAQCAtMzEsOSArMzEsMTIgQEAgbmFtZXNwYWNlIElQQyB7
CiBlbnVtIE1lc3NhZ2VGbGFncyB7CiAgICAgU3luY01lc3NhZ2UgPSAxIDw8IDAsCiAgICAgRGlz
cGF0Y2hNZXNzYWdlV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkgPSAxIDw8IDEsCi0gICAgVXNlRnVs
bHlTeW5jaHJvbm91c01vZGVGb3JUZXN0aW5nID0gMSA8PCAyLAorICAgIERpc3BhdGNoTWVzc2Fn
ZVdoZW5XYWl0aW5nRm9yU2xvd1N5bmNSZXBseSA9IDEgPDwgMiwKKyAgICBVc2VGdWxseVN5bmNo
cm9ub3VzTW9kZUZvclRlc3RpbmcgPSAxIDw8IDMsCiB9OwogCitlbnVtIGNsYXNzIFNob3VsZERp
c3BhdGNoV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkgeyBObywgWWVzLCBPbmx5U2xvd0lQQyB9Owor
CiB9IC8vIG5hbWVzcGFjZSBJUEMKIAogI2VuZGlmIC8vIE1lc3NhZ2VGbGFnc19oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5
LmNwcAppbmRleCBhOWRjMzI3ODAxM2Q2MzA1OTRlOWNkYjc3ZjliM2JjZmQ3ZjIxNTY4Li4zMTNi
NDllYTc2MTY0YmZkNjlhZGJhNzcyZjI4OWZhYzRjZTJiOTkxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAg
LTEyMTEsNyArMTIxMSw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6dGVzdFByb2Nlc3NJ
bmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5CiAgICAgICAgIHJldHVy
biByZXBseShmYWxzZSk7CiAKICAgICBib29sIGhhbmRsZWQgPSBmYWxzZTsKLSAgICBpZiAoIXBh
Z2UtPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlOjpUZXN0UHJvY2Vzc0luY29taW5nU3luY01l
c3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkoKSwgTWVzc2FnZXM6OldlYlBhZ2U6OlRlc3RQ
cm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseTo6UmVwbHko
aGFuZGxlZCkpKQorICAgIGlmICghcGFnZS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2U6OlRl
c3RQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSgpLCBN
ZXNzYWdlczo6V2ViUGFnZTo6VGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0
aW5nRm9yU3luY1JlcGx5OjpSZXBseShoYW5kbGVkKSwgU2Vjb25kczo6aW5maW5pdHkoKSwgSVBD
OjpTZW5kU3luY09wdGlvbjo6Rm9yY2VEaXNwYXRjaFdoZW5EZXN0aW5hdGlvbklzV2FpdGluZ0Zv
clNsb3dTeW5jUmVwbHkpKQogICAgICAgICByZXR1cm4gcmVwbHkoZmFsc2UpOwogICAgIHJlcGx5
KGhhbmRsZWQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5k
ZXggNTEzZTA5MmNjOTg2YTlhYjRhYTFhM2U5NTI0ODI4MzNjZWM5MTg5OS4uNzZmZjk4NmI2OWRj
Y2VjMGNmNmM2NWM3ZGY4NDE0MTA5MDVkMjYzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCkBAIC0yNjY5LDcgKzI2NjksNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
aGFuZGxlVG91Y2hFdmVudFN5bmNocm9ub3VzbHkoTmF0aXZlV2ViVG91Y2hFdmVudCYgZXZlbnQp
CiAKICAgICBtX3Byb2Nlc3MtPnJlc3BvbnNpdmVuZXNzVGltZXIoKS5zdGFydCgpOwogICAgIGJv
b2wgaGFuZGxlZCA9IGZhbHNlOwotICAgIGJvb2wgcmVwbHlSZWNlaXZlZCA9IG1fcHJvY2Vzcy0+
c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2U6OlRvdWNoRXZlbnRTeW5jKGV2ZW50KSwgTWVzc2Fn
ZXM6OldlYlBhZ2U6OlRvdWNoRXZlbnRTeW5jOjpSZXBseShoYW5kbGVkKSwgbV9wYWdlSUQsIDFf
cyk7CisgICAgYm9vbCByZXBseVJlY2VpdmVkID0gbV9wcm9jZXNzLT5zZW5kU3luYyhNZXNzYWdl
czo6V2ViUGFnZTo6VG91Y2hFdmVudFN5bmMoZXZlbnQpLCBNZXNzYWdlczo6V2ViUGFnZTo6VG91
Y2hFdmVudFN5bmM6OlJlcGx5KGhhbmRsZWQpLCBtX3BhZ2VJRCwgMV9zLCBJUEM6OlNlbmRTeW5j
T3B0aW9uOjpGb3JjZURpc3BhdGNoV2hlbkRlc3RpbmF0aW9uSXNXYWl0aW5nRm9yU2xvd1N5bmNS
ZXBseSk7CiAgICAgLy8gSWYgdGhlIHN5bmMgcmVxdWVzdCBoYXMgdGltZWQgb3V0LCB3ZSBzaG91
bGQgY29uc2lkZXIgdGhlIGV2ZW50IGhhbmRsZWQuIFRoZSBXZWIgUHJvY2VzcyBpcyB0b28gYnVz
eSB0byBhbnN3ZXIgYW55IHF1ZXN0aW9ucywgc28gdGhlIGRlZmF1bHQgYWN0aW9uIGlzIGFsc28g
bGlrZWx5IHRvIGhhdmUgaXNzdWVzLgogICAgIGlmICghcmVwbHlSZWNlaXZlZCkKICAgICAgICAg
aGFuZGxlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
V0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCBiYjQ5NGExZThjYTJiYmYyMTcyZThi
ZjJiOGE3MDY2Y2ZhZDk0ZGRmLi5lNWVmZmU1YzI0ZjhjZWYxYTgzYTdkYjVlN2MzMmU2ZmZhZGVm
YTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmll
d0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTE5OTAsNyArMTk5MCw3IEBAIC0gKEJPT0wpZW5zdXJl
UG9zaXRpb25JbmZvcm1hdGlvbklzVXBUb0RhdGU6KFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1h
dGlvblJlcXVlCiAgICAgaWYgKFtzZWxmIF9oYXNWYWxpZE91dHN0YW5kaW5nUG9zaXRpb25JbmZv
cm1hdGlvblJlcXVlc3Q6cmVxdWVzdF0pCiAgICAgICAgIHJldHVybiBjb25uZWN0aW9uLT53YWl0
Rm9yQW5kRGlzcGF0Y2hJbW1lZGlhdGVseTxNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRSZWNl
aXZlUG9zaXRpb25JbmZvcm1hdGlvbj4oX3BhZ2UtPnBhZ2VJRCgpLCAxX3MsIElQQzo6V2FpdEZv
ck9wdGlvbjo6SW50ZXJydXB0V2FpdGluZ0lmU3luY01lc3NhZ2VBcnJpdmVzKTsKIAotICAgIGJv
b2wgcmVjZWl2ZWRSZXNwb25zZSA9IF9wYWdlLT5wcm9jZXNzKCkuc2VuZFN5bmMoTWVzc2FnZXM6
OldlYlBhZ2U6OkdldFBvc2l0aW9uSW5mb3JtYXRpb24ocmVxdWVzdCksIE1lc3NhZ2VzOjpXZWJQ
YWdlOjpHZXRQb3NpdGlvbkluZm9ybWF0aW9uOjpSZXBseShfcG9zaXRpb25JbmZvcm1hdGlvbiks
IF9wYWdlLT5wYWdlSUQoKSwgMV9zKTsKKyAgICBib29sIHJlY2VpdmVkUmVzcG9uc2UgPSBfcGFn
ZS0+cHJvY2VzcygpLnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlOjpHZXRQb3NpdGlvbkluZm9y
bWF0aW9uKHJlcXVlc3QpLCBNZXNzYWdlczo6V2ViUGFnZTo6R2V0UG9zaXRpb25JbmZvcm1hdGlv
bjo6UmVwbHkoX3Bvc2l0aW9uSW5mb3JtYXRpb24pLCBfcGFnZS0+cGFnZUlEKCksIDFfcywgSVBD
OjpTZW5kU3luY09wdGlvbjo6Rm9yY2VEaXNwYXRjaFdoZW5EZXN0aW5hdGlvbklzV2FpdGluZ0Zv
clNsb3dTeW5jUmVwbHkpOwogICAgIF9oYXNWYWxpZFBvc2l0aW9uSW5mb3JtYXRpb24gPSByZWNl
aXZlZFJlc3BvbnNlICYmIF9wb3NpdGlvbkluZm9ybWF0aW9uLmNhbkJlVmFsaWQ7CiAgICAgCiAg
ICAgLy8gRklYTUU6IFdlIG5lZWQgdG8gY2xlYW4gdXAgdGhlc2UgaGFuZGxlcnMgaW4gdGhlIGV2
ZW50IHRoYXQgd2UgYXJlIG5vdCBhYmxlIHRvIGNvbGxlY3QgZGF0YSwgb3IgaWYgdGhlIFdlYlBy
b2Nlc3MgY3Jhc2hlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3
b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3
b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcAppbmRleCBlMjFmNGExMzk1N2M0ZGU5ODdhZTQ3YjNl
MjA2YjhiY2QxOWM4MDY2Li5jNDAxMmY4NmEyZjY4ZjExYTcyOTc1Mzk3ZGNkNTA2Nzc2NzAxNmI2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJT
dHJhdGVneS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9h
ZGVyU3RyYXRlZ3kuY3BwCkBAIC01NjQsNiArNTY0LDcgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVn
eTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShGcmFtZUxvYWRlciYgZnJhbWVMb2FkZXIsIHVu
c2kKICAgICBkYXRhLnNocmluaygwKTsKIAogICAgIEhhbmdEZXRlY3Rpb25EaXNhYmxlciBoYW5n
RGV0ZWN0aW9uRGlzYWJsZXI7CisgICAgSVBDOjpTbG93U3luY2hyb25vdXNJUENTY29wZSBzbG93
U3luY2hyb25vdXNJUENTY29wZTsKIAogICAgIGJvb2wgc2hvdWxkTm90aWZ5T2ZVcGxvYWQgPSBy
ZXF1ZXN0Lmhhc1VwbG9hZCgpICYmIG1fbG9hZGVyc1dpdGhVcGxvYWRzLmlzRW1wdHkoKTsKICAg
ICBpZiAoc2hvdWxkTm90aWZ5T2ZVcGxvYWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDk5
MjFkZmIwZDRiYTFhYjY0ZDUwZmU5MGY2MjY4NTZlMzdiMzFmOGQuLmU1YWMyMzhhODNiMDBkNjg1
NTViMzc3MTJjMjY1ZjgzMjRlOWQyYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC0zMDcs
OCArMzA3LDkgQEAgUGFnZSogV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVXaW5kb3coRnJhbWUmIGZy
YW1lLCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiByZXF1ZXMKIAogYm9vbCBXZWJDaHJvbWVDbGll
bnQ6OnRlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBs
eSgpCiB7CisgICAgSVBDOjpTbG93U3luY2hyb25vdXNJUENTY29wZSBzbG93U3luY2hyb25vdXNJ
UENTY29wZTsKICAgICBib29sIGhhbmRsZWQgPSBmYWxzZTsKLSAgICBpZiAoIVdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24o
KS5zZW5kU3luYyhNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlRlc3RQ
cm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseShtX3BhZ2Uu
cGFnZUlEKCkpLCBNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlRlc3RQ
cm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseTo6UmVwbHko
aGFuZGxlZCksIDAsIFNlY29uZHM6OmluZmluaXR5KCksIElQQzo6U2VuZFN5bmNPcHRpb246OlBy
b2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5KSkKKyAgICBp
ZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
bigpLmNvbm5lY3Rpb24oKS5zZW5kU3luYyhNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M6OlRlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5
bmNSZXBseShtX3BhZ2UucGFnZUlEKCkpLCBNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M6OlRlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5
bmNSZXBseTo6UmVwbHkoaGFuZGxlZCksIDApKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
cmV0dXJuIGhhbmRsZWQ7CiB9CkBAIC00NjcsOCArNDY4LDkgQEAgdm9pZCBXZWJDaHJvbWVDbGll
bnQ6OnJ1bkphdmFTY3JpcHRBbGVydChGcmFtZSYgZnJhbWUsIGNvbnN0IFN0cmluZyYgYWxlcnRU
ZXh0KQogICAgIG1fcGFnZS5pbmplY3RlZEJ1bmRsZVVJQ2xpZW50KCkud2lsbFJ1bkphdmFTY3Jp
cHRBbGVydCgmbV9wYWdlLCBhbGVydFRleHQsIHdlYkZyYW1lKTsKIAogICAgIEhhbmdEZXRlY3Rp
b25EaXNhYmxlciBoYW5nRGV0ZWN0aW9uRGlzYWJsZXI7CisgICAgSVBDOjpTbG93U3luY2hyb25v
dXNJUENTY29wZSBzbG93U3luY2hyb25vdXNJUENTY29wZTsKIAotICAgIG1fcGFnZS5zZW5kU3lu
Y1dpdGhEZWxheWVkUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdEFs
ZXJ0KHdlYkZyYW1lLT5mcmFtZUlEKCksIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbUZyYW1lKCZm
cmFtZSksIGFsZXJ0VGV4dCksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRB
bGVydDo6UmVwbHkoKSwgSVBDOjpTZW5kU3luY09wdGlvbjo6UHJvY2Vzc0luY29taW5nU3luY01l
c3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkpOworICAgIG1fcGFnZS5zZW5kU3luY1dpdGhE
ZWxheWVkUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdEFsZXJ0KHdl
YkZyYW1lLT5mcmFtZUlEKCksIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbUZyYW1lKCZmcmFtZSks
IGFsZXJ0VGV4dCksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRBbGVydDo6
UmVwbHkoKSk7CiB9CiAKIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0Q29uZmly
bShGcmFtZSYgZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKQEAgLTQ4Myw5ICs0ODUsMTAg
QEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRDb25maXJtKEZyYW1lJiBmcmFt
ZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogICAgIG1fcGFnZS5pbmplY3RlZEJ1bmRsZVVJQ2xp
ZW50KCkud2lsbFJ1bkphdmFTY3JpcHRDb25maXJtKCZtX3BhZ2UsIG1lc3NhZ2UsIHdlYkZyYW1l
KTsKIAogICAgIEhhbmdEZXRlY3Rpb25EaXNhYmxlciBoYW5nRGV0ZWN0aW9uRGlzYWJsZXI7Cisg
ICAgSVBDOjpTbG93U3luY2hyb25vdXNJUENTY29wZSBzbG93U3luY2hyb25vdXNJUENTY29wZTsK
IAogICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7Ci0gICAgaWYgKCFtX3BhZ2Uuc2VuZFN5bmNXaXRo
RGVsYXllZFJlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRDb25maXJt
KHdlYkZyYW1lLT5mcmFtZUlEKCksIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbUZyYW1lKCZmcmFt
ZSksIG1lc3NhZ2UpLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0Q29uZmly
bTo6UmVwbHkocmVzdWx0KSwgSVBDOjpTZW5kU3luY09wdGlvbjo6UHJvY2Vzc0luY29taW5nU3lu
Y01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkpKQorICAgIGlmICghbV9wYWdlLnNlbmRT
eW5jV2l0aERlbGF5ZWRSZXBseShNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0
Q29uZmlybSh3ZWJGcmFtZS0+ZnJhbWVJRCgpLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21GcmFt
ZSgmZnJhbWUpLCBtZXNzYWdlKSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlw
dENvbmZpcm06OlJlcGx5KHJlc3VsdCkpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBy
ZXR1cm4gcmVzdWx0OwpAQCAtNTAzLDggKzUwNiw5IEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50Ojpy
dW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1lJiBmcmFtZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBj
CiAgICAgbV9wYWdlLmluamVjdGVkQnVuZGxlVUlDbGllbnQoKS53aWxsUnVuSmF2YVNjcmlwdFBy
b21wdCgmbV9wYWdlLCBtZXNzYWdlLCBkZWZhdWx0VmFsdWUsIHdlYkZyYW1lKTsKIAogICAgIEhh
bmdEZXRlY3Rpb25EaXNhYmxlciBoYW5nRGV0ZWN0aW9uRGlzYWJsZXI7CisgICAgSVBDOjpTbG93
U3luY2hyb25vdXNJUENTY29wZSBzbG93U3luY2hyb25vdXNJUENTY29wZTsKIAotICAgIGlmICgh
bV9wYWdlLnNlbmRTeW5jV2l0aERlbGF5ZWRSZXBseShNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpS
dW5KYXZhU2NyaXB0UHJvbXB0KHdlYkZyYW1lLT5mcmFtZUlEKCksIFNlY3VyaXR5T3JpZ2luRGF0
YTo6ZnJvbUZyYW1lKCZmcmFtZSksIG1lc3NhZ2UsIGRlZmF1bHRWYWx1ZSksIE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRQcm9tcHQ6OlJlcGx5KHJlc3VsdCksIElQQzo6U2Vu
ZFN5bmNPcHRpb246OlByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3lu
Y1JlcGx5KSkKKyAgICBpZiAoIW1fcGFnZS5zZW5kU3luY1dpdGhEZWxheWVkUmVwbHkoTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdFByb21wdCh3ZWJGcmFtZS0+ZnJhbWVJRCgp
LCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21GcmFtZSgmZnJhbWUpLCBtZXNzYWdlLCBkZWZhdWx0
VmFsdWUpLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0UHJvbXB0OjpSZXBs
eShyZXN1bHQpKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuICFyZXN1bHQu
aXNOdWxsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CmluZGV4IDgwMDY3Y2U5YzU0MWJkMjQ1MDA1YWUxOTE1OWQ5NWQ3NzZkODJkYjAuLjk0NjQwNmZh
OTk2M2FlZjZkNWYyOTFhM2Y0OGYyNTVkNzM5ZjViNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0zMTYsOCArMzE2LDggQEAgc3RhdGljIGNv
bnN0IFNlY29uZHMgcGFnZVNjcm9sbEh5c3RlcmVzaXNEdXJhdGlvbiB7IDMwMF9tcyB9Owogc3Rh
dGljIGNvbnN0IFNlY29uZHMgaW5pdGlhbExheWVyVm9sYXRpbGl0eVRpbWVySW50ZXJ2YWwgeyAy
MF9tcyB9Owogc3RhdGljIGNvbnN0IFNlY29uZHMgbWF4aW11bUxheWVyVm9sYXRpbGl0eVRpbWVy
SW50ZXJ2YWwgeyAyX3MgfTsKIAotI2RlZmluZSBSRUxFQVNFX0xPR19JRl9BTExPV0VEKC4uLikg
UkVMRUFTRV9MT0dfSUYoaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIExheWVycywgX19WQV9B
UkdTX18pCi0jZGVmaW5lIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoLi4uKSBSRUxFQVNF
X0xPR19FUlJPUl9JRihpc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgTGF5ZXJzLCBfX1ZBX0FS
R1NfXykKKyNkZWZpbmUgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChjaGFubmVsLCBmbXQsIC4uLikg
UkVMRUFTRV9MT0dfSUYoaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIGNoYW5uZWwsICIlcCAt
IFdlYlBhZ2U6OiIgZm10LCB0aGlzLCAjI19fVkFfQVJHU19fKQorI2RlZmluZSBSRUxFQVNFX0xP
R19FUlJPUl9JRl9BTExPV0VEKGNoYW5uZWwsIGZtdCwgLi4uKSBSRUxFQVNFX0xPR19FUlJPUl9J
Rihpc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgY2hhbm5lbCwgIiVwIC0gV2ViUGFnZTo6IiBm
bXQsIHRoaXMsICMjX19WQV9BUkdTX18pCiAKIGNsYXNzIFNlbmRTdG9wUmVzcG9uc2l2ZW5lc3NU
aW1lciB7CiBwdWJsaWM6CkBAIC0yNTU4LDE0ICsyNTU4LDE0IEBAIHZvaWQgV2ViUGFnZTo6bGF5
ZXJWb2xhdGlsaXR5VGltZXJGaXJlZCgpCiAgICAgaWYgKGRpZFN1Y2NlZWQgfHwgbmV3SW50ZXJ2
YWwgPiBtYXhpbXVtTGF5ZXJWb2xhdGlsaXR5VGltZXJJbnRlcnZhbCkgewogICAgICAgICBtX2xh
eWVyVm9sYXRpbGl0eVRpbWVyLnN0b3AoKTsKICAgICAgICAgaWYgKGRpZFN1Y2NlZWQpCi0gICAg
ICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCIlcCAtIFdlYlBhZ2UgLSBTdWNjZWVkZWQg
aW4gbWFya2luZyBsYXllcnMgYXMgdm9sYXRpbGUiLCB0aGlzKTsKKyAgICAgICAgICAgIFJFTEVB
U0VfTE9HX0lGX0FMTE9XRUQoTGF5ZXJzLCAibGF5ZXJWb2xhdGlsaXR5VGltZXJGaXJlZDogU3Vj
Y2VlZGVkIGluIG1hcmtpbmcgbGF5ZXJzIGFzIHZvbGF0aWxlIik7CiAgICAgICAgIGVsc2UKLSAg
ICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoIiVwIC0gV2ViUGFnZSAtIEZhaWxlZCB0
byBtYXJrIGxheWVycyBhcyB2b2xhdGlsZSB3aXRoaW4gJWdtcyIsIHRoaXMsIG1heGltdW1MYXll
clZvbGF0aWxpdHlUaW1lckludGVydmFsLm1pbGxpc2Vjb25kcygpKTsKKyAgICAgICAgICAgIFJF
TEVBU0VfTE9HX0lGX0FMTE9XRUQoTGF5ZXJzLCAibGF5ZXJWb2xhdGlsaXR5VGltZXJGaXJlZDog
RmFpbGVkIHRvIG1hcmsgbGF5ZXJzIGFzIHZvbGF0aWxlIHdpdGhpbiAlZ21zIiwgbWF4aW11bUxh
eWVyVm9sYXRpbGl0eVRpbWVySW50ZXJ2YWwubWlsbGlzZWNvbmRzKCkpOwogICAgICAgICBjYWxs
Vm9sYXRpbGl0eUNvbXBsZXRpb25IYW5kbGVycyhkaWRTdWNjZWVkKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAotICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoIiVwIC0gV2ViUGFn
ZSAtIEZhaWxlZCB0byBtYXJrIGFsbCBsYXllcnMgYXMgdm9sYXRpbGUsIHdpbGwgcmV0cnkgaW4g
JWcgbXMiLCB0aGlzLCBuZXdJbnRlcnZhbC5taWxsaXNlY29uZHMoKSk7CisgICAgUkVMRUFTRV9M
T0dfRVJST1JfSUZfQUxMT1dFRChMYXllcnMsICJsYXllclZvbGF0aWxpdHlUaW1lckZpcmVkOiBG
YWlsZWQgdG8gbWFyayBhbGwgbGF5ZXJzIGFzIHZvbGF0aWxlLCB3aWxsIHJldHJ5IGluICVnIG1z
IiwgbmV3SW50ZXJ2YWwubWlsbGlzZWNvbmRzKCkpOwogICAgIG1fbGF5ZXJWb2xhdGlsaXR5VGlt
ZXIuc3RhcnRSZXBlYXRpbmcobmV3SW50ZXJ2YWwpOwogfQogCkBAIC0yNTc2LDcgKzI1NzYsNyBA
QCBib29sIFdlYlBhZ2U6Om1hcmtMYXllcnNWb2xhdGlsZUltbWVkaWF0ZWx5SWZQb3NzaWJsZSgp
CiAKIHZvaWQgV2ViUGFnZTo6bWFya0xheWVyc1ZvbGF0aWxlKFdURjo6RnVuY3Rpb248dm9pZCAo
Ym9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dF
RCgiJXAgLSBXZWJQYWdlOjptYXJrTGF5ZXJzVm9sYXRpbGUoKSIsIHRoaXMpOworICAgIFJFTEVB
U0VfTE9HX0lGX0FMTE9XRUQoTGF5ZXJzLCAibWFya0xheWVyc1ZvbGF0aWxlIik7CiAKICAgICBp
ZiAobV9sYXllclZvbGF0aWxpdHlUaW1lci5pc0FjdGl2ZSgpKQogICAgICAgICBtX2xheWVyVm9s
YXRpbGl0eVRpbWVyLnN0b3AoKTsKQEAgLTI1ODcsMjIgKzI1ODcsMjIgQEAgdm9pZCBXZWJQYWdl
OjptYXJrTGF5ZXJzVm9sYXRpbGUoV1RGOjpGdW5jdGlvbjx2b2lkIChib29sKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKICAgICBib29sIGRpZFN1Y2NlZWQgPSBtYXJrTGF5ZXJzVm9sYXRpbGVJbW1l
ZGlhdGVseUlmUG9zc2libGUoKTsKICAgICBpZiAoZGlkU3VjY2VlZCB8fCBtX2lzU3VzcGVuZGVk
VW5kZXJMb2NrKSB7CiAgICAgICAgIGlmIChkaWRTdWNjZWVkKQotICAgICAgICAgICAgUkVMRUFT
RV9MT0dfSUZfQUxMT1dFRCgiJXAgLSBXZWJQYWdlIC0gU3VjY2Vzc2Z1bGx5IG1hcmtlZCBsYXll
cnMgYXMgdm9sYXRpbGUiLCB0aGlzKTsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9X
RUQoTGF5ZXJzLCAibWFya0xheWVyc1ZvbGF0aWxlOiBTdWNjZXNzZnVsbHkgbWFya2VkIGxheWVy
cyBhcyB2b2xhdGlsZSIpOwogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIC8vIElmIHdlIGdl
dCBzdXNwZW5kZWQgd2hlbiBsb2NraW5nIHRoZSBzY3JlZW4sIGl0IGlzIGV4cGVjdGVkIHRoYXQg
c29tZSBJT1N1cmZhY2VzIGNhbm5vdCBiZSBtYXJrZWQgYXMgcHVyZ2VhYmxlIHNvIHdlIGRvIG5v
dCBrZWVwIHJldHJ5aW5nLgotICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiJXAg
LSBXZWJQYWdlIC0gRGlkIHdoYXQgd2UgY291bGQgdG8gbWFyayBJT1N1cmZhY2VzIGFzIHB1cmdl
YWJsZSBhZnRlciBsb2NraW5nIHRoZSBzY3JlZW4iLCB0aGlzKTsKKyAgICAgICAgICAgIFJFTEVB
U0VfTE9HX0lGX0FMTE9XRUQoTGF5ZXJzLCAibWFya0xheWVyc1ZvbGF0aWxlOiBEaWQgd2hhdCB3
ZSBjb3VsZCB0byBtYXJrIElPU3VyZmFjZXMgYXMgcHVyZ2VhYmxlIGFmdGVyIGxvY2tpbmcgdGhl
IHNjcmVlbiIpOwogICAgICAgICB9CiAgICAgICAgIGNhbGxWb2xhdGlsaXR5Q29tcGxldGlvbkhh
bmRsZXJzKGRpZFN1Y2NlZWQpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgUkVMRUFT
RV9MT0dfSUZfQUxMT1dFRCgiJXAgLSBGYWlsZWQgdG8gbWFyayBhbGwgbGF5ZXJzIGFzIHZvbGF0
aWxlLCB3aWxsIHJldHJ5IGluICVnIG1zIiwgdGhpcywgaW5pdGlhbExheWVyVm9sYXRpbGl0eVRp
bWVySW50ZXJ2YWwubWlsbGlzZWNvbmRzKCkpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQo
TGF5ZXJzLCAibWFya0xheWVyc1ZvbGF0aWxlOiBGYWlsZWQgdG8gbWFyayBhbGwgbGF5ZXJzIGFz
IHZvbGF0aWxlLCB3aWxsIHJldHJ5IGluICVnIG1zIiwgaW5pdGlhbExheWVyVm9sYXRpbGl0eVRp
bWVySW50ZXJ2YWwubWlsbGlzZWNvbmRzKCkpOwogICAgIG1fbGF5ZXJWb2xhdGlsaXR5VGltZXIu
c3RhcnRSZXBlYXRpbmcoaW5pdGlhbExheWVyVm9sYXRpbGl0eVRpbWVySW50ZXJ2YWwpOwogfQog
CiB2b2lkIFdlYlBhZ2U6OmNhbmNlbE1hcmtMYXllcnNWb2xhdGlsZSgpCiB7Ci0gICAgUkVMRUFT
RV9MT0dfSUZfQUxMT1dFRCgiJXAgLSBXZWJQYWdlOjpjYW5jZWxNYXJrTGF5ZXJzVm9sYXRpbGUo
KSIsIHRoaXMpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTGF5ZXJzLCAiY2FuY2VsTWFy
a0xheWVyc1ZvbGF0aWxlIik7CiAgICAgbV9sYXllclZvbGF0aWxpdHlUaW1lci5zdG9wKCk7CiAg
ICAgbV9tYXJrTGF5ZXJzQXNWb2xhdGlsZUNvbXBsZXRpb25IYW5kbGVycy5jbGVhcigpOwogfQpA
QCAtMjkxMiw2ICsyOTEyLDEyIEBAIHZvaWQgV2ViUGFnZTo6ZGlzcGF0Y2hUb3VjaEV2ZW50KGNv
bnN0IFdlYlRvdWNoRXZlbnQmIHRvdWNoRXZlbnQsIGJvb2wmIGhhbmRsZWQpCiAKIHZvaWQgV2Vi
UGFnZTo6dG91Y2hFdmVudFN5bmMoY29uc3QgV2ViVG91Y2hFdmVudCYgdG91Y2hFdmVudCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiByZXBseSkKIHsKKyAgICAvLyBBdm9pZCBVSVBy
b2Nlc3MgaGFuZ3Mgd2hlbiB0aGUgV2ViQ29udGVudCBwcm9jZXNzIGlzIHN0dWNrIG9uIGEgc3lu
YyBJUEMuCisgICAgaWYgKElQQzo6U2xvd1N5bmNocm9ub3VzSVBDU2NvcGU6Omhhc09uZ29pbmdT
bG93U3luY0lQQygpKSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoUHJv
Y2VzcywgInRvdWNoRXZlbnRTeW5jIC0gTm90IHByb2Nlc3NpbmcgYmVjYXVzZSB0aGUgcHJvY2Vz
cyBpcyBzdHVjayBvbiBzbG93IHN5bmMgSVBDIik7CisgICAgICAgIHJldHVybiByZXBseSh0cnVl
KTsKKyAgICB9CisKICAgICBtX3BlbmRpbmdTeW5jaHJvbm91c1RvdWNoRXZlbnRSZXBseSA9IFdU
Rk1vdmUocmVwbHkpOwogCiAgICAgRXZlbnREaXNwYXRjaGVyOjpUb3VjaEV2ZW50UXVldWUgcXVl
dWVkRXZlbnRzOwpAQCAtMzI4MSw3ICszMjg3LDcgQEAgdm9pZCBXZWJQYWdlOjpkaWRDb21wbGV0
ZVBhZ2VUcmFuc2l0aW9uKCkKIHsKICAgICB1bmZyZWV6ZUxheWVyVHJlZShMYXllclRyZWVGcmVl
emVSZWFzb246OlBhZ2VUcmFuc2l0aW9uKTsKIAotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQo
IiVwIC0gV2ViUGFnZSAtIERpZCBjb21wbGV0ZSBwYWdlIHRyYW5zaXRpb24iLCB0aGlzKTsKKyAg
ICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExheWVycywgImRpZENvbXBsZXRlUGFnZVRyYW5zaXRp
b246IERpZCBjb21wbGV0ZSBwYWdlIHRyYW5zaXRpb24iKTsKIAogICAgIGJvb2wgaXNJbml0aWFs
RW1wdHlEb2N1bWVudCA9ICFtX21haW5GcmFtZTsKICAgICBpZiAoIWlzSW5pdGlhbEVtcHR5RG9j
dW1lbnQpCkBAIC0zNTQ2LDcgKzM1NTIsNyBAQCB2b2lkIFdlYlBhZ2U6OnVwZGF0ZVByZWZlcmVu
Y2VzKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmIHN0b3JlKQogCiAjaWYgIVBMQVRGT1JNKEdU
SykgJiYgIVBMQVRGT1JNKFdJTikKICAgICBpZiAoIXNldHRpbmdzLmFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdFbmFibGVkKCkpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiJXAgLSBX
ZWJQYWdlIC0gYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQgc2V0dGluZyB3YXMgZmFsc2Uu
IFdlYktpdCBjYW5ub3QgZnVuY3Rpb24gaW4gdGhpcyBtb2RlOyBjaGFuZ2luZyBzZXR0aW5nIHRv
IHRydWUiLCB0aGlzKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMYXllcnMsICJ1
cGRhdGVQcmVmZXJlbmNlczogYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQgc2V0dGluZyB3
YXMgZmFsc2UuIFdlYktpdCBjYW5ub3QgZnVuY3Rpb24gaW4gdGhpcyBtb2RlOyBjaGFuZ2luZyBz
ZXR0aW5nIHRvIHRydWUiKTsKICAgICAgICAgc2V0dGluZ3Muc2V0QWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0VuYWJsZWQodHJ1ZSk7CiAgICAgfQogI2VuZGlmCkBAIC01ODg3LDYgKzU4OTMsNyBAQCB2
b2lkIFdlYlBhZ2U6OmRpZFJlbW92ZU1lbnVJdGVtRWxlbWVudChIVE1MTWVudUl0ZW1FbGVtZW50
JiBlbGVtZW50KQogCiB2b2lkIFdlYlBhZ2U6OnRlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2Fn
ZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZTo6VGVzdFByb2Nlc3NJ
bmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5OjpEZWxheWVkUmVwbHkm
JiByZXBseSkKIHsKKyAgICBSRUxFQVNFX0FTU0VSVChJUEM6OlNsb3dTeW5jaHJvbm91c0lQQ1Nj
b3BlOjpoYXNPbmdvaW5nU2xvd1N5bmNJUEMoKSk7CiAgICAgcmVwbHkodHJ1ZSk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBjNWJjOGNjOWE0
NDMyNDhhMTRmMWZlM2FmMWFmYTUwMTQ5OTY5YTVhLi44ODYxYWU2MjU2MmE3MTg5NTBhYzFhMDVi
ODZkZGFkZWY4MTVlMzViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oCkBAIC0xMTY3LDEwICsxMTY3LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZFJlY2Vp
dmVXZWJQYWdlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKIAogICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci0gICAgYm9vbCBzZW5kU3luY1dpdGhEZWxheWVkUmVwbHko
VCYmIG1lc3NhZ2UsIHR5cGVuYW1lIFQ6OlJlcGx5JiYgcmVwbHksIE9wdGlvblNldDxJUEM6OlNl
bmRTeW5jT3B0aW9uPiBzZW5kU3luY09wdGlvbnMgPSB7IH0pCisgICAgYm9vbCBzZW5kU3luY1dp
dGhEZWxheWVkUmVwbHkoVCYmIG1lc3NhZ2UsIHR5cGVuYW1lIFQ6OlJlcGx5JiYgcmVwbHkpCiAg
ICAgewogICAgICAgICBjYW5jZWxHZXN0dXJlc0Jsb2NrZWRPblN5bmNocm9ub3VzUmVwbGllcygp
OwotICAgICAgICByZXR1cm4gc2VuZFN5bmMoV1RGTW92ZShtZXNzYWdlKSwgV1RGTW92ZShyZXBs
eSksIFNlY29uZHM6OmluZmluaXR5KCksIHNlbmRTeW5jT3B0aW9ucyB8IElQQzo6U2VuZFN5bmNP
cHRpb246OkluZm9ybVBsYXRmb3JtUHJvY2Vzc1dpbGxTdXNwZW5kKTsKKyAgICAgICAgcmV0dXJu
IHNlbmRTeW5jKFdURk1vdmUobWVzc2FnZSksIFdURk1vdmUocmVwbHkpLCBTZWNvbmRzOjppbmZp
bml0eSgpLCBJUEM6OlNlbmRTeW5jT3B0aW9uOjpJbmZvcm1QbGF0Zm9ybVByb2Nlc3NXaWxsU3Vz
cGVuZCk7CiAgICAgfQogCiAgICAgV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSByZXF1
ZXN0RE9NUGFzdGVBY2Nlc3MoY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1t
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5k
ZXggMjMyMjQzMjY0MTc3MTA0OTc5NTJiOTZiNjZmNDA0ZTU2ZDY1MWRmNS4uMjgwZDFhZmNkZThi
YTE5YWM0ODM2MjQyMGQ1ZDUzMDQ5M2Y3YjE1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAgLTEzMiw2ICsxMzIsOSBAQAog
I2ltcG9ydCA8d3RmL2NvY29hL0VudGl0bGVtZW50cy5oPgogI2ltcG9ydCA8d3RmL3RleHQvVGV4
dFN0cmVhbS5oPgogCisjZGVmaW5lIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoY2hhbm5lbCwgZm10
LCAuLi4pIFJFTEVBU0VfTE9HX0lGKGlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBjaGFubmVs
LCAiJXAgLSBXZWJQYWdlOjoiIGZtdCwgdGhpcywgIyNfX1ZBX0FSR1NfXykKKyNkZWZpbmUgUkVM
RUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChjaGFubmVsLCBmbXQsIC4uLikgUkVMRUFTRV9MT0df
RVJST1JfSUYoaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIGNoYW5uZWwsICIlcCAtIFdlYlBh
Z2U6OiIgZm10LCB0aGlzLCAjI19fVkFfQVJHU19fKQorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC0yNTQyLDYgKzI1NDUsMTIgQEAgc3RhdGljIGlu
bGluZSBib29sIGlzQXNzaXN0YWJsZUVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCkKIAogdm9pZCBX
ZWJQYWdlOjpnZXRQb3NpdGlvbkluZm9ybWF0aW9uKGNvbnN0IEludGVyYWN0aW9uSW5mb3JtYXRp
b25SZXF1ZXN0JiByZXF1ZXN0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEludGVyYWN0aW9uSW5m
b3JtYXRpb25BdFBvc2l0aW9uJiYpPiYmIHJlcGx5KQogeworICAgIC8vIEF2b2lkIFVJUHJvY2Vz
cyBoYW5ncyB3aGVuIHRoZSBXZWJDb250ZW50IHByb2Nlc3MgaXMgc3R1Y2sgb24gYSBzeW5jIElQ
Qy4KKyAgICBpZiAoSVBDOjpTbG93U3luY2hyb25vdXNJUENTY29wZTo6aGFzT25nb2luZ1Nsb3dT
eW5jSVBDKCkpIHsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChQcm9jZXNz
LCAiZ2V0UG9zaXRpb25JbmZvcm1hdGlvbiAtIE5vdCBwcm9jZXNzaW5nIGJlY2F1c2UgdGhlIHBy
b2Nlc3MgaXMgc3R1Y2sgb24gYSBzbG93IHN5bmMgSVBDIik7CisgICAgICAgIHJldHVybiByZXBs
eSh7IH0pOworICAgIH0KKwogICAgIG1fcGVuZGluZ1N5bmNocm9ub3VzUG9zaXRpb25JbmZvcm1h
dGlvblJlcGx5ID0gV1RGTW92ZShyZXBseSk7CiAKICAgICBhdXRvIGluZm9ybWF0aW9uID0gcG9z
aXRpb25JbmZvcm1hdGlvbihyZXF1ZXN0KTsKQEAgLTQwNDEsNCArNDA1MCw3IEBAIHZvaWQgV2Vi
UGFnZTo6cmVxdWVzdERvY3VtZW50RWRpdGluZ0NvbnRleHQoRG9jdW1lbnRFZGl0aW5nQ29udGV4
dFJlcXVlc3QgcmVxdWVzCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCisjdW5kZWYgUkVMRUFT
RV9MT0dfSUZfQUxMT1dFRAorI3VuZGVmIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQKKwog
I2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNGVhOGQ3MGEzZWZmY2YxYzEz
N2Q0NGRkYjYyZmQxOWIzZDQ4NmJjNy4uNDQzNDZkZDlhNmM5ZTlhYzEzMTEzZDIyYTBlOTlkMzVj
ZDYyZTJkNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE5LTA3LTI2ICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gV2ViUGFnZTo6VG91Y2hFdmVudFN5
bmMoKSAmIFdlYlBhZ2U6OkdldFBvc2l0aW9uSW5mb3JtYXRpb24oKSBzeW5jIElQQyBjYXVzZXMg
VUlQcm9jZXNzIGhhbmdzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDAxMzgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUyNjk4MTU3PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSBleGlzdGlu
ZyBsYXlvdXQgdGVzdCBhY2NvcmRpbmdseS4KKworICAgICAgICAqIGZhc3QvbWlzYy90ZXN0UHJv
Y2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTbG93U3luY1JlcGx5LWV4cGVj
dGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvbWlzYy90ZXN0UHJvY2Vzc0lu
Y29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHktZXhwZWN0ZWQudHh0Lgor
ICAgICAgICAqIGZhc3QvbWlzYy90ZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldh
aXRpbmdGb3JTbG93U3luY1JlcGx5Lmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0
L21pc2MvdGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1Jl
cGx5Lmh0bWwuCisKIDIwMTktMDctMjYgIFJvYiBCdWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4KIAog
ICAgICAgICBNYWtlIHN0b3JpbmcgY3Jvc3Mtb3JpZ2luIHRvcC1sZXZlbCBwcmVmZXRjaGVzIGlu
IEhUVFAgY2FjaGUgb3B0aW9uYWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWlzYy90
ZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTbG93U3luY1JlcGx5
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWlzYy90ZXN0UHJvY2Vzc0luY29taW5n
U3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTbG93U3luY1JlcGx5LWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi41ZmY3YzI0YzdmOGQ1ODkyYjQ4YWVlOGFlNzJhNTZmM2I0ODlkMjhmCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9taXNjL3Rlc3RQcm9jZXNzSW5jb21pbmdTeW5j
TWVzc2FnZXNXaGVuV2FpdGluZ0ZvclNsb3dTeW5jUmVwbHktZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMTAgQEAKK1Rlc3QgZm9yIHRoZSBTZW5kU3luY09wdGlvbjo6Rm9yY2VEaXNwYXRjaFdoZW5E
ZXN0aW5hdGlvbklzV2FpdGluZ0ZvclN5bmNSZXBseSBzZW5kU3luYyBmbGFnCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGludGVybmFscy50ZXN0UHJvY2Vzc0luY29taW5n
U3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkoKSBpcyB0cnVlCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9taXNjL3Rlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2Fp
dGluZ0ZvclNsb3dTeW5jUmVwbHkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWlzYy90ZXN0UHJv
Y2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTbG93U3luY1JlcGx5Lmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYWVhODg4NjllNTk0ZDFmMGMxNGZkYmFlZTc2MmE3MTUxN2U5ZDExNgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWlzYy90ZXN0UHJvY2Vzc0luY29taW5n
U3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTbG93U3luY1JlcGx5Lmh0bWwKQEAgLTAsMCArMSwx
MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigi
VGVzdCBmb3IgdGhlIFNlbmRTeW5jT3B0aW9uOjpGb3JjZURpc3BhdGNoV2hlbkRlc3RpbmF0aW9u
SXNXYWl0aW5nRm9yU3luY1JlcGx5IHNlbmRTeW5jIGZsYWciKTsKKworc2hvdWxkQmVUcnVlKCJp
bnRlcm5hbHMudGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3lu
Y1JlcGx5KCkiKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9taXNjL3Rlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2Fp
dGluZ0ZvclN5bmNSZXBseS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21pc2MvdGVz
dFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5LWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzBjOGMyNThlNjhiOGM4Zjhi
YmI1NGNmMzc0MWRlMjhmNWY5Y2M4MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L21pc2MvdGVzdFByb2Nlc3NJbmNvbWluZ1N5
bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5LWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDEwICswLDAgQEAKLVRlc3QgZm9yIHRoZSBTZW5kU3luY09wdGlvbjo6UHJvY2Vz
c0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkgc2VuZFN5bmMgZmxh
ZwotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBpbnRlcm5hbHMudGVzdFBy
b2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5KCkgaXMgdHJ1
ZQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWlzYy90ZXN0UHJvY2Vzc0luY29taW5nU3luY01l
c3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWlz
Yy90ZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHku
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjY0M2ViYjY0NmE0OWQwZjk4NjU1
Y2Q4YjVhMDZhNzY1MGE5M2E0ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L21pc2MvdGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNN
ZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwx
MSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGJvZHk+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWRlc2NyaXB0
aW9uKCJUZXN0IGZvciB0aGUgU2VuZFN5bmNPcHRpb246OlByb2Nlc3NJbmNvbWluZ1N5bmNNZXNz
YWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5IHNlbmRTeW5jIGZsYWciKTsKLQotc2hvdWxkQmVU
cnVlKCJpbnRlcm5hbHMudGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5n
Rm9yU3luY1JlcGx5KCkiKTsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>374970</attachid>
            <date>2019-07-26 10:07:15 -0700</date>
            <delta_ts>2019-07-26 11:27:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200138-20190726100714.patch</filename>
            <type>text/plain</type>
            <size>40804</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3ODYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDYwZGVhZGJmNGY1NmE0NTgy
NjJkYzRkMDc0MTE3NzU2OWFkODU0YTcuLjQ3YTRlZjAxMDhiZmEwMGUyZTQ5NTViNzBmYTc4ODlm
OGI5YmM2ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzAgQEAKKzIwMTktMDctMjYgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBXZWJQYWdlOjpUb3VjaEV2
ZW50U3luYygpICYgV2ViUGFnZTo6R2V0UG9zaXRpb25JbmZvcm1hdGlvbigpIHN5bmMgSVBDIGNh
dXNlcyBVSVByb2Nlc3MgaGFuZ3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwMDEzOAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTI2OTgxNTc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmV2ZXJ0IG1v
c3Qgb2YgcjI0NzgyMiBhbmQgdXNlIGFuIGFsdGVybmF0aXZlIGFwcHJvYWNoIHRvIGFkZHJlc3Mg
aGFuZ3MuIEluIHRoaXMgcGF0Y2gsIHRoZSBwcm9wb3NhbAorICAgICAgICBpcyB0byBhZGQgYSBT
ZW5kU3luY09wdGlvbjo6Rm9yY2VEaXNwYXRjaFdoZW5EZXN0aW5hdGlvbklzV2FpdGluZ0ZvclVu
Ym91bmRlZFN5bmNSZXBseSBmbGFnIG9uIHRoZQorICAgICAgICBXZWJQYWdlOjpUb3VjaEV2ZW50
U3luYygpICYgV2ViUGFnZTo6R2V0UG9zaXRpb25JbmZvcm1hdGlvbigpIHNlbmRTeW5jKCkgY2Fs
bHMgaW4gdGhlIFVJUHJvY2Vzcy4KKyAgICAgICAgVGhvc2Ugd2lsbCBjYXVzZSB0aGlzIElQQ3Mg
dG8gZ2V0IGRpc3BhdGNoZWQgcmlnaHQgYXdheSBpbiB0aGUgV2ViQ29udGVudCBwcm9jZXNzLCBl
dmVuIGlmIHRoZQorICAgICAgICBXZWJDb250ZW50IHByb2Nlc3MgaXMgaXRzZWxmIGN1cnJlbnRs
eSBzdHVjayBvbiB1bmJvdW5kZWQgKGkuZS4gcG90ZW50aWFsbHkgc2xvdykgc3luY2hyb25vdXMg
SVBDCisgICAgICAgIChKUyBhbGVydHMgLyBwcm9tcHRzICYgc3luYyBYSFIpLiBCZWNhdXNlIHJl
LWVudGVyaW5nIFdlYkNvcmUgb24gc3luYyBJUEMgaXMgZ2VuZXJhbGx5IHVuc2FmZSwgdGhpcwor
ICAgICAgICBwYXRjaCBhbHNvIHVwZGF0ZXMgdGhlIFdlYlBhZ2U6OmdldFBvc2l0aW9uSW5mb3Jt
YXRpb24oKSAmIFdlYlBhZ2U6OnRvdWNoRXZlbnRTeW5jKCkgdG8gcmV0dXJuIGVhcmx5CisgICAg
ICAgIChpLmUuIGNhbmNlbGxlZCkgaWYgdGhleSBnZXQgY2FsbGVkIHdoaWxlIHRoZSBXZWJDb250
ZW50IHByb2Nlc3MgaXMgc3R1Y2sgb24gYSBzbG93IHNlbmRTeW5jLgorCisgICAgICAgIFRoaXMg
YXBwcm9hY2ggc2hvdWxkIGFkZHJlc3MgdGhlIFVJUHJvY2VzcyBoYW5ncyBjYXVzZWQgYnkgdGhl
IFdlYlBhZ2U6OlRvdWNoRXZlbnRTeW5jKCkgYW5kCisgICAgICAgIFdlYlBhZ2U6OkdldFBvc2l0
aW9uSW5mb3JtYXRpb24oKSBzeW5jIElQQyBtZXNzYWdlcyB3aGVuIHRoZSBXZWJDb250ZW50IHBy
b2Nlc3MgaXMgYnVzeSBvbiBhIHNsb3cgWEhSCisgICAgICAgIG9yIGEgSlMgcHJvbXB0IC8gYWxl
cnQuIEl0IHNob3VsZCBiZSBzYWZlIGJlY2F1c2Ugd2UgZG8gbm90IHJlLWVudGVyIFdlYkNvcmUu
IFRoZSBvbmx5IGRyYXdiYWNrIGlzIHRoYXQKKyAgICAgICAgdGhvc2UgSVBDcyB3aWxsIGJlIGNh
bmNlbGxlZCAoZWFybHkgcmV0dXJuIHdpdGggZGVmYXVsdCB2YWx1ZSkgd2hlbiB0aGUgV2ViQ29u
dGVudCBwcm9jZXNzIGlzIGJ1c3kuCisgICAgICAgIEhvd2V2ZXIsIEkgYW0gYmVpbmcgdG9sZCB0
aGF0IHRoaXMgaXMgbGlrZWx5IGFjY2VwdGFibGUgaW4gcHJhY3RpY2UuICAgICAgICAKKworICAg
ICAgICAqIFBsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcDoKKyAgICAgICAgKElQQzo6Q29ubmVj
dGlvbjo6U3luY01lc3NhZ2VTdGF0ZTo6cHJvY2Vzc0luY29taW5nTWVzc2FnZSk6CisgICAgICAg
IChJUEM6OkNvbm5lY3Rpb246OnNlbmRNZXNzYWdlKToKKyAgICAgICAgKElQQzo6Q29ubmVjdGlv
bjo6c2VuZFN5bmNNZXNzYWdlKToKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6ZGlzcGF0Y2hN
ZXNzYWdlKToKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5oOgorICAgICAgICAo
SVBDOjpVbmJvdW5kZWRTeW5jaHJvbm91c0lQQ1Njb3BlOjpVbmJvdW5kZWRTeW5jaHJvbm91c0lQ
Q1Njb3BlKToKKyAgICAgICAgKElQQzo6VW5ib3VuZGVkU3luY2hyb25vdXNJUENTY29wZTo6flVu
Ym91bmRlZFN5bmNocm9ub3VzSVBDU2NvcGUpOgorICAgICAgICAoSVBDOjpVbmJvdW5kZWRTeW5j
aHJvbm91c0lQQ1Njb3BlOjpoYXNPbmdvaW5nVW5ib3VuZGVkU3luY0lQQyk6CisgICAgICAgICog
UGxhdGZvcm0vSVBDL0RlY29kZXIuY3BwOgorICAgICAgICAoSVBDOjpEZWNvZGVyOjpzaG91bGRE
aXNwYXRjaE1lc3NhZ2VXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSBjb25zdCk6CisgICAgICAgICog
UGxhdGZvcm0vSVBDL0RlY29kZXIuaDoKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvRW5jb2Rlci5j
cHA6CisgICAgICAgIChJUEM6OkVuY29kZXI6OnNob3VsZERpc3BhdGNoTWVzc2FnZVdoZW5XYWl0
aW5nRm9yU3luY1JlcGx5IGNvbnN0KToKKyAgICAgICAgKElQQzo6RW5jb2Rlcjo6c2V0U2hvdWxk
RGlzcGF0Y2hNZXNzYWdlV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkpOgorICAgICAgICAoSVBDOjpF
bmNvZGVyOjp3cmFwRm9yVGVzdGluZyk6CisgICAgICAgICogUGxhdGZvcm0vSVBDL0VuY29kZXIu
aDoKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvTWVzc2FnZUZsYWdzLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtQcm9jZXNzUHJveHk6OnRlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVu
V2FpdGluZ0ZvclN5bmNSZXBseSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6aGFuZGxlVG91Y2hFdmVudFN5bmNo
cm9ub3VzbHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0
aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGVuc3VyZVBvc2l0aW9uSW5mb3JtYXRp
b25Jc1VwVG9EYXRlOl0pOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJT
dHJhdGVneS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0cmF0ZWd5Ojpsb2FkUmVz
b3VyY2VTeW5jaHJvbm91c2x5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6
dGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5KToK
KyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0QWxlcnQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRDb25maXJtKToK
KyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0UHJvbXB0KToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2U6OmxheWVyVm9sYXRpbGl0eVRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlOjptYXJrTGF5ZXJzVm9sYXRpbGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
OjpjYW5jZWxNYXJrTGF5ZXJzVm9sYXRpbGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp0
b3VjaEV2ZW50U3luYyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRpZENvbXBsZXRlUGFn
ZVRyYW5zaXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNl
cyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnRlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVz
c2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2VuZFN5bmNXaXRoRGVs
YXllZFJlcGx5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1Mu
bW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmdldFBvc2l0aW9uSW5mb3JtYXRpb24pOgor
CiAyMDE5LTA3LTI2ICBBbGV4YW5kZXIgTWlraGF5bGVua28gIDxleGFsbTc2NTlAZ21haWwuY29t
PgogCiAgICAgICAgIFJFR1JFU1NJT04ocjI0NjQ5Nik6IFtHVEtdIFRhcHBpbmcgdGhlIHdlYiB2
aWV3IHNjcm9sbHMgdXAgYSBiaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0v
SVBDL0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlv
bi5jcHAKaW5kZXggNmNiZWJhOWYwNDJmMmI0ZDRiMDVhMGNkZGFmNGQwYmI4ZDdiNWUyMy4uMTRh
ZmVhMDQzZGY0NjJmMDQ1OWMyMDUxZDg0YWViMWVmNGNhNmYzOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9Q
bGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJD
b25uZWN0aW9uLmgiCiAKICNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiTWVzc2FnZUZs
YWdzLmgiCiAjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5j
bHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CkBAIC00OSw2ICs1MCw4IEBAIG5hbWVzcGFjZSBJ
UEMgewogY29uc3Qgc2l6ZV90IG1heFBlbmRpbmdJbmNvbWluZ01lc3NhZ2VzS2lsbGluZ1RocmVz
aG9sZCB7IDUwMDAwIH07CiAjZW5kaWYKIAorc3RkOjphdG9taWM8dW5zaWduZWQ+IFVuYm91bmRl
ZFN5bmNocm9ub3VzSVBDU2NvcGU6OnVuYm91bmRlZFN5bmNocm9ub3VzSVBDQ291bnQgPSAwOwor
CiBzdHJ1Y3QgQ29ubmVjdGlvbjo6UmVwbHlIYW5kbGVyIHsKICAgICBSZWZQdHI8RnVuY3Rpb25E
aXNwYXRjaGVyPiBkaXNwYXRjaGVyOwogICAgIEZ1bmN0aW9uPHZvaWQgKHN0ZDo6dW5pcXVlX3B0
cjxEZWNvZGVyPik+IGhhbmRsZXI7CkBAIC05OCw5ICsxMDEsNiBAQCBwdWJsaWM6CiAgICAgLy8g
ZnJvbSB0aGF0IGNvbm5lY3Rpb24gYW5kIHB1dCB0aGUgb3RoZXIgbWVzc2FnZXMgYmFjayBpbiB0
aGUgcXVldWUuCiAgICAgdm9pZCBkaXNwYXRjaE1lc3NhZ2VzKENvbm5lY3Rpb24qIGFsbG93ZWRD
b25uZWN0aW9uKTsKIAotICAgIHZvaWQgaW5jcmVtZW50UHJvY2Vzc0luY29taW5nU3luY01lc3Nh
Z2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHlDb3VudCgpIHsgKyttX3Byb2Nlc3NJbmNvbWluZ1N5
bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5Q291bnQ7IH0KLSAgICB2b2lkIGRlY3Jl
bWVudFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5Q291
bnQoKSB7IC0tbV9wcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNS
ZXBseUNvdW50OyB9Ci0KIHByaXZhdGU6CiAgICAgdm9pZCBkaXNwYXRjaE1lc3NhZ2VBbmRSZXNl
dERpZFNjaGVkdWxlRGlzcGF0Y2hNZXNzYWdlc0ZvckNvbm5lY3Rpb24oQ29ubmVjdGlvbiYpOwog
CkBAIC0xMTcsOCArMTE3LDYgQEAgcHJpdmF0ZToKICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPERl
Y29kZXI+IG1lc3NhZ2U7CiAgICAgfTsKICAgICBWZWN0b3I8Q29ubmVjdGlvbkFuZEluY29taW5n
TWVzc2FnZT4gbV9tZXNzYWdlc1RvRGlzcGF0Y2hXaGlsZVdhaXRpbmdGb3JTeW5jUmVwbHk7Ci0K
LSAgICBzdGQ6OmF0b21pYzx1bnNpZ25lZD4gbV9wcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNX
aGVuV2FpdGluZ0ZvclN5bmNSZXBseUNvdW50IHsgMCB9OwogfTsKIAogQ29ubmVjdGlvbjo6U3lu
Y01lc3NhZ2VTdGF0ZSYgQ29ubmVjdGlvbjo6U3luY01lc3NhZ2VTdGF0ZTo6c2luZ2xldG9uKCkK
QEAgLTEzOSwxNyArMTM3LDE2IEBAIENvbm5lY3Rpb246OlN5bmNNZXNzYWdlU3RhdGU6OlN5bmNN
ZXNzYWdlU3RhdGUoKQogCiBib29sIENvbm5lY3Rpb246OlN5bmNNZXNzYWdlU3RhdGU6OnByb2Nl
c3NJbmNvbWluZ01lc3NhZ2UoQ29ubmVjdGlvbiYgY29ubmVjdGlvbiwgc3RkOjp1bmlxdWVfcHRy
PERlY29kZXI+JiBtZXNzYWdlKQogewotICAgIGJvb2wgc2hvdWxkRGlzcGF0Y2hNZXNzYWdlV2hl
bldhaXRpbmdGb3JTeW5jUmVwbHkgPSBtZXNzYWdlLT5zaG91bGREaXNwYXRjaE1lc3NhZ2VXaGVu
V2FpdGluZ0ZvclN5bmNSZXBseSgpOwotCi0gICAgLy8gV2UgZGlzcGF0Y2ggc3luY2hyb25vdXMg
bWVzc2FnZXMgZXZlbiBpZiBzaG91bGREaXNwYXRjaE1lc3NhZ2VXaGVuV2FpdGluZ0ZvclN5bmNS
ZXBseSByZXR1cm5zIGZhbHNlIGlmIHRoZQotICAgIC8vIHNlbmRTeW5jKCkgdXNlZCBTZW5kU3lu
Y09wdGlvbjo6UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVw
bHkuIFRoaXMgaXMgdXNlZCBmb3Igc29tZSBtZXNzYWdlcwotICAgIC8vIGluIHRoZSBXZWJDb250
ZW50IHByb2Nlc3MgKHdoaWNoIG5vcm1hbGx5IGRvZXMgbm90IGRpc3BhdGNoIG1lc3NhZ2VzIHdo
ZW4gd2FpdGluZyBmb3IgYSBzeW5jIHJlcGx5KSwgdG8gYXZvaWQKLSAgICAvLyBoYW5ncy4KLSAg
ICBpZiAoIXNob3VsZERpc3BhdGNoTWVzc2FnZVdoZW5XYWl0aW5nRm9yU3luY1JlcGx5ICYmIG1l
c3NhZ2UtPmlzU3luY01lc3NhZ2UoKSAmJiBtX3Byb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1do
ZW5XYWl0aW5nRm9yU3luY1JlcGx5Q291bnQubG9hZCgpKQotICAgICAgICBzaG91bGREaXNwYXRj
aE1lc3NhZ2VXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSA9IHRydWU7Ci0KLSAgICBpZiAoIXNob3Vs
ZERpc3BhdGNoTWVzc2FnZVdoZW5XYWl0aW5nRm9yU3luY1JlcGx5KQorICAgIHN3aXRjaCAobWVz
c2FnZS0+c2hvdWxkRGlzcGF0Y2hNZXNzYWdlV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkoKSkgewor
ICAgIGNhc2UgU2hvdWxkRGlzcGF0Y2hXaGVuV2FpdGluZ0ZvclN5bmNSZXBseTo6Tm86CiAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICBjYXNlIFNob3VsZERpc3BhdGNoV2hlbldhaXRpbmdGb3JT
eW5jUmVwbHk6Olllc0R1cmluZ1VuYm91bmRlZElQQzoKKyAgICAgICAgaWYgKCFVbmJvdW5kZWRT
eW5jaHJvbm91c0lQQ1Njb3BlOjpoYXNPbmdvaW5nVW5ib3VuZGVkU3luY0lQQygpKQorICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNob3VsZERpc3Bh
dGNoV2hlbldhaXRpbmdGb3JTeW5jUmVwbHk6OlllczoKKyAgICAgICAgYnJlYWs7CisgICAgfQog
CiAgICAgQ29ubmVjdGlvbkFuZEluY29taW5nTWVzc2FnZSBjb25uZWN0aW9uQW5kSW5jb21pbmdN
ZXNzYWdlIHsgY29ubmVjdGlvbiwgV1RGTW92ZShtZXNzYWdlKSB9OwogCkBAIC00MzMsNyArNDMw
LDkgQEAgYm9vbCBDb25uZWN0aW9uOjpzZW5kTWVzc2FnZShzdGQ6OnVuaXF1ZV9wdHI8RW5jb2Rl
cj4gZW5jb2RlciwgT3B0aW9uU2V0PFNlbmRPcHQKICAgICBpZiAoc2VuZE9wdGlvbnMuY29udGFp
bnMoU2VuZE9wdGlvbjo6RGlzcGF0Y2hNZXNzYWdlRXZlbldoZW5XYWl0aW5nRm9yU3luY1JlcGx5
KQogICAgICAgICAmJiAoIW1fb25seVNlbmRNZXNzYWdlc0FzRGlzcGF0Y2hXaGVuV2FpdGluZ0Zv
clN5bmNSZXBseVdoZW5Qcm9jZXNzaW5nU3VjaEFNZXNzYWdlCiAgICAgICAgICAgICB8fCBtX2lu
RGlzcGF0Y2hNZXNzYWdlTWFya2VkRGlzcGF0Y2hXaGVuV2FpdGluZ0ZvclN5bmNSZXBseUNvdW50
KSkKLSAgICAgICAgZW5jb2Rlci0+c2V0U2hvdWxkRGlzcGF0Y2hNZXNzYWdlV2hlbldhaXRpbmdG
b3JTeW5jUmVwbHkodHJ1ZSk7CisgICAgICAgIGVuY29kZXItPnNldFNob3VsZERpc3BhdGNoTWVz
c2FnZVdoZW5XYWl0aW5nRm9yU3luY1JlcGx5KFNob3VsZERpc3BhdGNoV2hlbldhaXRpbmdGb3JT
eW5jUmVwbHk6Olllcyk7CisgICAgZWxzZSBpZiAoc2VuZE9wdGlvbnMuY29udGFpbnMoU2VuZE9w
dGlvbjo6RGlzcGF0Y2hNZXNzYWdlRXZlbldoZW5XYWl0aW5nRm9yVW5ib3VuZGVkU3luY1JlcGx5
KSkKKyAgICAgICAgZW5jb2Rlci0+c2V0U2hvdWxkRGlzcGF0Y2hNZXNzYWdlV2hlbldhaXRpbmdG
b3JTeW5jUmVwbHkoU2hvdWxkRGlzcGF0Y2hXaGVuV2FpdGluZ0ZvclN5bmNSZXBseTo6WWVzRHVy
aW5nVW5ib3VuZGVkSVBDKTsKIAogICAgIHsKICAgICAgICAgc3RkOjpsb2NrX2d1YXJkPExvY2s+
IGxvY2sobV9vdXRnb2luZ01lc3NhZ2VzTXV0ZXgpOwpAQCAtNTc3LDE5ICs1NzYsMTcgQEAgc3Rk
Ojp1bmlxdWVfcHRyPERlY29kZXI+IENvbm5lY3Rpb246OnNlbmRTeW5jTWVzc2FnZSh1aW50NjRf
dCBzeW5jUmVxdWVzdElELCBzdGQKICAgICArK21faW5TZW5kU3luY0NvdW50OwogCiAgICAgLy8g
Rmlyc3Qgc2VuZCB0aGUgbWVzc2FnZS4KLSAgICBzZW5kTWVzc2FnZShXVEZNb3ZlKGVuY29kZXIp
LCBJUEM6OlNlbmRPcHRpb246OkRpc3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2FpdGluZ0ZvclN5bmNS
ZXBseSk7CisgICAgT3B0aW9uU2V0PFNlbmRPcHRpb24+IHNlbmRPcHRpb25zID0gSVBDOjpTZW5k
T3B0aW9uOjpEaXNwYXRjaE1lc3NhZ2VFdmVuV2hlbldhaXRpbmdGb3JTeW5jUmVwbHk7CisgICAg
aWYgKHNlbmRTeW5jT3B0aW9ucy5jb250YWlucyhTZW5kU3luY09wdGlvbjo6Rm9yY2VEaXNwYXRj
aFdoZW5EZXN0aW5hdGlvbklzV2FpdGluZ0ZvclVuYm91bmRlZFN5bmNSZXBseSkpCisgICAgICAg
IHNlbmRPcHRpb25zID0gc2VuZE9wdGlvbnMgfCBJUEM6OlNlbmRPcHRpb246OkRpc3BhdGNoTWVz
c2FnZUV2ZW5XaGVuV2FpdGluZ0ZvclVuYm91bmRlZFN5bmNSZXBseTsKIAotICAgIGlmIChzZW5k
U3luY09wdGlvbnMuY29udGFpbnMoU2VuZFN5bmNPcHRpb246OlByb2Nlc3NJbmNvbWluZ1N5bmNN
ZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5KSkKLSAgICAgICAgU3luY01lc3NhZ2VTdGF0
ZTo6c2luZ2xldG9uKCkuaW5jcmVtZW50UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldh
aXRpbmdGb3JTeW5jUmVwbHlDb3VudCgpOworICAgIHNlbmRNZXNzYWdlKFdURk1vdmUoZW5jb2Rl
ciksIHNlbmRPcHRpb25zKTsKIAogICAgIC8vIFRoZW4gd2FpdCBmb3IgYSByZXBseS4gV2FpdGlu
ZyBmb3IgYSByZXBseSBjb3VsZCBpbnZvbHZlIGRpc3BhdGNoaW5nIGluY29taW5nIHN5bmMgbWVz
c2FnZXMsIHNvCiAgICAgLy8ga2VlcCBhbiBleHRyYSByZWZlcmVuY2UgdG8gdGhlIGNvbm5lY3Rp
b24gaGVyZSBpbiBjYXNlIGl0J3MgaW52YWxpZGF0ZWQuCiAgICAgUmVmPENvbm5lY3Rpb24+IHBy
b3RlY3QoKnRoaXMpOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxEZWNvZGVyPiByZXBseSA9IHdhaXRG
b3JTeW5jUmVwbHkoc3luY1JlcXVlc3RJRCwgdGltZW91dCwgc2VuZFN5bmNPcHRpb25zKTsKIAot
ICAgIGlmIChzZW5kU3luY09wdGlvbnMuY29udGFpbnMoU2VuZFN5bmNPcHRpb246OlByb2Nlc3NJ
bmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5KSkKLSAgICAgICAgU3lu
Y01lc3NhZ2VTdGF0ZTo6c2luZ2xldG9uKCkuZGVjcmVtZW50UHJvY2Vzc0luY29taW5nU3luY01l
c3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHlDb3VudCgpOwotCiAgICAgLS1tX2luU2VuZFN5
bmNDb3VudDsKIAogICAgIC8vIEZpbmFsbHksIHBvcCB0aGUgcGVuZGluZyBzeW5jIHJlcGx5IGlu
Zm9ybWF0aW9uLgpAQCAtMTA0MCw4ICsxMDM3LDExIEBAIHZvaWQgQ29ubmVjdGlvbjo6ZGlzcGF0
Y2hNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0cjxEZWNvZGVyPiBtZXNzYWdlKQogICAgIH0KIAogICAg
IG1faW5EaXNwYXRjaE1lc3NhZ2VDb3VudCsrOworICAgIAorICAgIGJvb2wgaXNEaXNwYXRjaGlu
Z01lc3NhZ2VXaGlsZVdhaXRpbmdGb3JTeW5jUmVwbHkgPSAobWVzc2FnZS0+c2hvdWxkRGlzcGF0
Y2hNZXNzYWdlV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkoKSA9PSBTaG91bGREaXNwYXRjaFdoZW5X
YWl0aW5nRm9yU3luY1JlcGx5OjpZZXMpCisgICAgICAgIHx8IChtZXNzYWdlLT5zaG91bGREaXNw
YXRjaE1lc3NhZ2VXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSgpID09IFNob3VsZERpc3BhdGNoV2hl
bldhaXRpbmdGb3JTeW5jUmVwbHk6Olllc0R1cmluZ1VuYm91bmRlZElQQyAmJiBVbmJvdW5kZWRT
eW5jaHJvbm91c0lQQ1Njb3BlOjpoYXNPbmdvaW5nVW5ib3VuZGVkU3luY0lQQygpKTsKIAotICAg
IGlmIChtZXNzYWdlLT5zaG91bGREaXNwYXRjaE1lc3NhZ2VXaGVuV2FpdGluZ0ZvclN5bmNSZXBs
eSgpKQorICAgIGlmIChpc0Rpc3BhdGNoaW5nTWVzc2FnZVdoaWxlV2FpdGluZ0ZvclN5bmNSZXBs
eSkKICAgICAgICAgbV9pbkRpc3BhdGNoTWVzc2FnZU1hcmtlZERpc3BhdGNoV2hlbldhaXRpbmdG
b3JTeW5jUmVwbHlDb3VudCsrOwogCiAgICAgYm9vbCBvbGREaWRSZWNlaXZlSW52YWxpZE1lc3Nh
Z2UgPSBtX2RpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZTsKQEAgLTEwNTcsNyArMTA1Nyw3IEBAIHZv
aWQgQ29ubmVjdGlvbjo6ZGlzcGF0Y2hNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0cjxEZWNvZGVyPiBt
ZXNzYWdlKQogCiAgICAgLy8gRklYTUU6IEZvciBzeW5jaHJvbm91cyBtZXNzYWdlcywgd2Ugc2hv
dWxkIG5vdCBkZWNyZW1lbnQgdGhlIGNvdW50ZXIgdW50aWwgd2Ugc2VuZCBhIHJlc3BvbnNlLgog
ICAgIC8vIE90aGVyd2lzZSwgd2Ugd291bGQgZGVhZGxvY2sgaWYgcHJvY2Vzc2luZyB0aGUgbWVz
c2FnZSByZXN1bHRzIGluIGEgc3luYyBtZXNzYWdlIGJhY2sgYWZ0ZXIgd2UgZXhpdCB0aGlzIGZ1
bmN0aW9uLgotICAgIGlmIChtZXNzYWdlLT5zaG91bGREaXNwYXRjaE1lc3NhZ2VXaGVuV2FpdGlu
Z0ZvclN5bmNSZXBseSgpKQorICAgIGlmIChpc0Rpc3BhdGNoaW5nTWVzc2FnZVdoaWxlV2FpdGlu
Z0ZvclN5bmNSZXBseSkKICAgICAgICAgbV9pbkRpc3BhdGNoTWVzc2FnZU1hcmtlZERpc3BhdGNo
V2hlbldhaXRpbmdGb3JTeW5jUmVwbHlDb3VudC0tOwogCiAgICAgaWYgKG1lc3NhZ2UtPnNob3Vs
ZFVzZUZ1bGx5U3luY2hyb25vdXNNb2RlRm9yVGVzdGluZygpKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9y
bS9JUEMvQ29ubmVjdGlvbi5oCmluZGV4IGE0OTA3ZDE3MTUwYjUxYTg4ZDY3MTVlYjU5NTA5ODVh
MTc1NDczNzkuLjM1NzdlMDRlOTYwYWZjMDFiMmUzZWJjYjYyY2ZkNTE3YTliMmYwY2EgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmgKQEAgLTYxLDE0ICs2MSwxNSBAQCBl
bnVtIGNsYXNzIFNlbmRPcHRpb24gewogICAgIC8vIFdoZXRoZXIgdGhpcyBtZXNzYWdlIHNob3Vs
ZCBiZSBkaXNwYXRjaGVkIHdoZW4gd2FpdGluZyBmb3IgYSBzeW5jIHJlcGx5LgogICAgIC8vIFRo
aXMgaXMgdGhlIGRlZmF1bHQgZm9yIHN5bmNocm9ub3VzIG1lc3NhZ2VzLgogICAgIERpc3BhdGNo
TWVzc2FnZUV2ZW5XaGVuV2FpdGluZ0ZvclN5bmNSZXBseSA9IDEgPDwgMCwKLSAgICBJZ25vcmVG
dWxseVN5bmNocm9ub3VzTW9kZSA9IDEgPDwgMSwKKyAgICBEaXNwYXRjaE1lc3NhZ2VFdmVuV2hl
bldhaXRpbmdGb3JVbmJvdW5kZWRTeW5jUmVwbHkgPSAxIDw8IDEsCisgICAgSWdub3JlRnVsbHlT
eW5jaHJvbm91c01vZGUgPSAxIDw8IDIsCiB9OwogCiBlbnVtIGNsYXNzIFNlbmRTeW5jT3B0aW9u
IHsKICAgICAvLyBVc2UgdGhpcyB0byBpbmZvcm0gdGhhdCB0aGlzIHN5bmMgY2FsbCB3aWxsIHN1
c3BlbmQgdGhpcyBwcm9jZXNzIHVudGlsIHRoZSB1c2VyIHJlc3BvbmRzIHdpdGggaW5wdXQuCiAg
ICAgSW5mb3JtUGxhdGZvcm1Qcm9jZXNzV2lsbFN1c3BlbmQgPSAxIDw8IDAsCiAgICAgVXNlRnVs
bHlTeW5jaHJvbm91c01vZGVGb3JUZXN0aW5nID0gMSA8PCAxLAotICAgIFByb2Nlc3NJbmNvbWlu
Z1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5ID0gMSA8PCAyLAorICAgIEZvcmNl
RGlzcGF0Y2hXaGVuRGVzdGluYXRpb25Jc1dhaXRpbmdGb3JVbmJvdW5kZWRTeW5jUmVwbHkgPSAx
IDw8IDIsCiB9OwogCiBlbnVtIGNsYXNzIFdhaXRGb3JPcHRpb24gewpAQCAtNTU0LDQgKzU1NSwy
OCBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBib29sIENvbm5lY3Rpb246OndhaXRGb3JBbmREaXNw
YXRjaEltbWVkaWF0ZWx5KHVpbnQ2NF90IGRlcwogICAgIHJldHVybiB0cnVlOwogfQogCitjbGFz
cyBVbmJvdW5kZWRTeW5jaHJvbm91c0lQQ1Njb3BlIHsKK3B1YmxpYzoKKyAgICBVbmJvdW5kZWRT
eW5jaHJvbm91c0lQQ1Njb3BlKCkKKyAgICB7CisgICAgICAgIEFTU0VSVChSdW5Mb29wOjppc01h
aW4oKSk7CisgICAgICAgICsrdW5ib3VuZGVkU3luY2hyb25vdXNJUENDb3VudDsKKyAgICB9CisK
KyAgICB+VW5ib3VuZGVkU3luY2hyb25vdXNJUENTY29wZSgpCisgICAgeworICAgICAgICBBU1NF
UlQoUnVuTG9vcDo6aXNNYWluKCkpOworICAgICAgICBBU1NFUlQodW5ib3VuZGVkU3luY2hyb25v
dXNJUENDb3VudCk7CisgICAgICAgIC0tdW5ib3VuZGVkU3luY2hyb25vdXNJUENDb3VudDsKKyAg
ICB9CisKKyAgICBzdGF0aWMgYm9vbCBoYXNPbmdvaW5nVW5ib3VuZGVkU3luY0lQQygpCisgICAg
eworICAgICAgICByZXR1cm4gdW5ib3VuZGVkU3luY2hyb25vdXNJUENDb3VudC5sb2FkKCkgPiAw
OworICAgIH0KKworcHJpdmF0ZToKKyAgICBzdGF0aWMgc3RkOjphdG9taWM8dW5zaWduZWQ+IHVu
Ym91bmRlZFN5bmNocm9ub3VzSVBDQ291bnQ7Cit9OworCiB9IC8vIG5hbWVzcGFjZSBJUEMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0RlY29kZXIuY3BwIGIvU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9JUEMvRGVjb2Rlci5jcHAKaW5kZXggMTU0YzNkOWRhOTAxZWY3MzM4
YzA5YTY1Y2IwNmFmMGJmOTIwN2M5My4uY2NhMDczOTBhZGVjNDQ2ZGU3NDY2Y2Y4ZTEwMTIzYzI3
OTM4NTM1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRGVjb2Rlci5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRGVjb2Rlci5jcHAKQEAgLTg4LDkg
Kzg4LDEzIEBAIGJvb2wgRGVjb2Rlcjo6aXNTeW5jTWVzc2FnZSgpIGNvbnN0CiAgICAgcmV0dXJu
IG1fbWVzc2FnZUZsYWdzICYgU3luY01lc3NhZ2U7CiB9CiAKLWJvb2wgRGVjb2Rlcjo6c2hvdWxk
RGlzcGF0Y2hNZXNzYWdlV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkoKSBjb25zdAorU2hvdWxkRGlz
cGF0Y2hXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSBEZWNvZGVyOjpzaG91bGREaXNwYXRjaE1lc3Nh
Z2VXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fbWVzc2Fn
ZUZsYWdzICYgRGlzcGF0Y2hNZXNzYWdlV2hlbldhaXRpbmdGb3JTeW5jUmVwbHk7CisgICAgaWYg
KG1fbWVzc2FnZUZsYWdzICYgRGlzcGF0Y2hNZXNzYWdlV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkp
CisgICAgICAgIHJldHVybiBTaG91bGREaXNwYXRjaFdoZW5XYWl0aW5nRm9yU3luY1JlcGx5OjpZ
ZXM7CisgICAgaWYgKG1fbWVzc2FnZUZsYWdzICYgRGlzcGF0Y2hNZXNzYWdlV2hlbldhaXRpbmdG
b3JVbmJvdW5kZWRTeW5jUmVwbHkpCisgICAgICAgIHJldHVybiBTaG91bGREaXNwYXRjaFdoZW5X
YWl0aW5nRm9yU3luY1JlcGx5OjpZZXNEdXJpbmdVbmJvdW5kZWRJUEM7CisgICAgcmV0dXJuIFNo
b3VsZERpc3BhdGNoV2hlbldhaXRpbmdGb3JTeW5jUmVwbHk6Ok5vOwogfQogCiBib29sIERlY29k
ZXI6OnNob3VsZFVzZUZ1bGx5U3luY2hyb25vdXNNb2RlRm9yVGVzdGluZygpIGNvbnN0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9EZWNvZGVyLmggYi9Tb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtL0lQQy9EZWNvZGVyLmgKaW5kZXggNGUwMTU0YjRmODY2YWNiMWFiM2YxMDU2
OGQyNWY4Y2QyMDIyYTRkYi4uYjNlNjQxZDEzNTVhZmYxNmE5ZTA1YWZiMWUyOTA4NTNmYThmMzMx
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRGVjb2Rlci5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0RlY29kZXIuaApAQCAtMzksNiArMzksNyBAQCBu
YW1lc3BhY2UgSVBDIHsKIAogY2xhc3MgRGF0YVJlZmVyZW5jZTsKIGNsYXNzIEltcG9ydGFuY2VB
c3NlcnRpb247CitlbnVtIGNsYXNzIFNob3VsZERpc3BhdGNoV2hlbldhaXRpbmdGb3JTeW5jUmVw
bHk7CiAKIGNsYXNzIERlY29kZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwpAQCAt
NTQsNyArNTUsNyBAQCBwdWJsaWM6CiAgICAgdWludDY0X3QgZGVzdGluYXRpb25JRCgpIGNvbnN0
IHsgcmV0dXJuIG1fZGVzdGluYXRpb25JRDsgfQogCiAgICAgYm9vbCBpc1N5bmNNZXNzYWdlKCkg
Y29uc3Q7Ci0gICAgYm9vbCBzaG91bGREaXNwYXRjaE1lc3NhZ2VXaGVuV2FpdGluZ0ZvclN5bmNS
ZXBseSgpIGNvbnN0OworICAgIFNob3VsZERpc3BhdGNoV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkg
c2hvdWxkRGlzcGF0Y2hNZXNzYWdlV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkoKSBjb25zdDsKICAg
ICBib29sIHNob3VsZFVzZUZ1bGx5U3luY2hyb25vdXNNb2RlRm9yVGVzdGluZygpIGNvbnN0Owog
CiAjaWYgUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9J
UEMvRW5jb2Rlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9FbmNvZGVyLmNwcApp
bmRleCBiNTg2MTYyZWFiNDQyNDVhMjdiZWRhNzNhNTg1M2ZlN2YzNjJmMTI4Li4xYzQ1YmM3YTE2
M2YzODY3OWI4OTgxYTg0YTU3MDkwNjBkNDQ2M2QzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtL0lQQy9FbmNvZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQ
Qy9FbmNvZGVyLmNwcApAQCAtODUsOSArODUsMTMgQEAgYm9vbCBFbmNvZGVyOjppc1N5bmNNZXNz
YWdlKCkgY29uc3QKICAgICByZXR1cm4gKmJ1ZmZlcigpICYgU3luY01lc3NhZ2U7CiB9CiAKLWJv
b2wgRW5jb2Rlcjo6c2hvdWxkRGlzcGF0Y2hNZXNzYWdlV2hlbldhaXRpbmdGb3JTeW5jUmVwbHko
KSBjb25zdAorU2hvdWxkRGlzcGF0Y2hXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSBFbmNvZGVyOjpz
aG91bGREaXNwYXRjaE1lc3NhZ2VXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSgpIGNvbnN0CiB7Ci0g
ICAgcmV0dXJuICpidWZmZXIoKSAmIERpc3BhdGNoTWVzc2FnZVdoZW5XYWl0aW5nRm9yU3luY1Jl
cGx5OworICAgIGlmICgqYnVmZmVyKCkgJiBEaXNwYXRjaE1lc3NhZ2VXaGVuV2FpdGluZ0ZvclN5
bmNSZXBseSkKKyAgICAgICAgcmV0dXJuIFNob3VsZERpc3BhdGNoV2hlbldhaXRpbmdGb3JTeW5j
UmVwbHk6OlllczsKKyAgICBpZiAoKmJ1ZmZlcigpICYgRGlzcGF0Y2hNZXNzYWdlV2hlbldhaXRp
bmdGb3JVbmJvdW5kZWRTeW5jUmVwbHkpCisgICAgICAgIHJldHVybiBTaG91bGREaXNwYXRjaFdo
ZW5XYWl0aW5nRm9yU3luY1JlcGx5OjpZZXNEdXJpbmdVbmJvdW5kZWRJUEM7CisgICAgcmV0dXJu
IFNob3VsZERpc3BhdGNoV2hlbldhaXRpbmdGb3JTeW5jUmVwbHk6Ok5vOwogfQogCiB2b2lkIEVu
Y29kZXI6OnNldElzU3luY01lc3NhZ2UoYm9vbCBpc1N5bmNNZXNzYWdlKQpAQCAtOTgsMTIgKzEw
MiwyMSBAQCB2b2lkIEVuY29kZXI6OnNldElzU3luY01lc3NhZ2UoYm9vbCBpc1N5bmNNZXNzYWdl
KQogICAgICAgICAqYnVmZmVyKCkgJj0gflN5bmNNZXNzYWdlOwogfQogCi12b2lkIEVuY29kZXI6
OnNldFNob3VsZERpc3BhdGNoTWVzc2FnZVdoZW5XYWl0aW5nRm9yU3luY1JlcGx5KGJvb2wgc2hv
dWxkRGlzcGF0Y2hNZXNzYWdlV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkpCit2b2lkIEVuY29kZXI6
OnNldFNob3VsZERpc3BhdGNoTWVzc2FnZVdoZW5XYWl0aW5nRm9yU3luY1JlcGx5KFNob3VsZERp
c3BhdGNoV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkgc2hvdWxkRGlzcGF0Y2hXaGVuV2FpdGluZ0Zv
clN5bmNSZXBseSkKIHsKLSAgICBpZiAoc2hvdWxkRGlzcGF0Y2hNZXNzYWdlV2hlbldhaXRpbmdG
b3JTeW5jUmVwbHkpCisgICAgc3dpdGNoIChzaG91bGREaXNwYXRjaFdoZW5XYWl0aW5nRm9yU3lu
Y1JlcGx5KSB7CisgICAgY2FzZSBTaG91bGREaXNwYXRjaFdoZW5XYWl0aW5nRm9yU3luY1JlcGx5
OjpObzoKKyAgICAgICAgKmJ1ZmZlcigpICY9IH4oRGlzcGF0Y2hNZXNzYWdlV2hlbldhaXRpbmdG
b3JTeW5jUmVwbHkgfCBEaXNwYXRjaE1lc3NhZ2VXaGVuV2FpdGluZ0ZvclVuYm91bmRlZFN5bmNS
ZXBseSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2hvdWxkRGlzcGF0Y2hXaGVuV2FpdGlu
Z0ZvclN5bmNSZXBseTo6WWVzOgogICAgICAgICAqYnVmZmVyKCkgfD0gRGlzcGF0Y2hNZXNzYWdl
V2hlbldhaXRpbmdGb3JTeW5jUmVwbHk7Ci0gICAgZWxzZQorICAgICAgICAqYnVmZmVyKCkgJj0g
fkRpc3BhdGNoTWVzc2FnZVdoZW5XYWl0aW5nRm9yVW5ib3VuZGVkU3luY1JlcGx5OworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFNob3VsZERpc3BhdGNoV2hlbldhaXRpbmdGb3JTeW5jUmVwbHk6
Olllc0R1cmluZ1VuYm91bmRlZElQQzoKKyAgICAgICAgKmJ1ZmZlcigpIHw9IERpc3BhdGNoTWVz
c2FnZVdoZW5XYWl0aW5nRm9yVW5ib3VuZGVkU3luY1JlcGx5OwogICAgICAgICAqYnVmZmVyKCkg
Jj0gfkRpc3BhdGNoTWVzc2FnZVdoZW5XYWl0aW5nRm9yU3luY1JlcGx5OworICAgICAgICBicmVh
azsKKyAgICB9CiB9CiAKIHZvaWQgRW5jb2Rlcjo6c2V0RnVsbHlTeW5jaHJvbm91c01vZGVGb3JU
ZXN0aW5nKCkKQEAgLTExNiw3ICsxMjksNyBAQCB2b2lkIEVuY29kZXI6OndyYXBGb3JUZXN0aW5n
KHN0ZDo6dW5pcXVlX3B0cjxFbmNvZGVyPiBvcmlnaW5hbCkKICAgICBBU1NFUlQoaXNTeW5jTWVz
c2FnZSgpKTsKICAgICBBU1NFUlQoIW9yaWdpbmFsLT5pc1N5bmNNZXNzYWdlKCkpOwogCi0gICAg
b3JpZ2luYWwtPnNldFNob3VsZERpc3BhdGNoTWVzc2FnZVdoZW5XYWl0aW5nRm9yU3luY1JlcGx5
KHRydWUpOworICAgIG9yaWdpbmFsLT5zZXRTaG91bGREaXNwYXRjaE1lc3NhZ2VXaGVuV2FpdGlu
Z0ZvclN5bmNSZXBseShTaG91bGREaXNwYXRjaFdoZW5XYWl0aW5nRm9yU3luY1JlcGx5OjpZZXMp
OwogCiAgICAgZW5jb2RlVmFyaWFibGVMZW5ndGhCeXRlQXJyYXkoRGF0YVJlZmVyZW5jZShvcmln
aW5hbC0+YnVmZmVyKCksIG9yaWdpbmFsLT5idWZmZXJTaXplKCkpKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRW5jb2Rlci5oIGIvU291cmNlL1dlYktpdC9QbGF0
Zm9ybS9JUEMvRW5jb2Rlci5oCmluZGV4IDI5NDc5NmJmNTk1NjA4Yjg4NTVhNTY4NTQzMDJkZmU0
ZDNkZWMyYzkuLjgxM2EyN2ZjMDJiYWNkZjAyMWQ4ODgyMmFiODUwYzBiY2U1OWNkYTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0VuY29kZXIuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtL0lQQy9FbmNvZGVyLmgKQEAgLTM0LDYgKzM0LDcgQEAKIG5hbWVzcGFj
ZSBJUEMgewogCiBjbGFzcyBEYXRhUmVmZXJlbmNlOworZW51bSBjbGFzcyBTaG91bGREaXNwYXRj
aFdoZW5XYWl0aW5nRm9yU3luY1JlcGx5OwogCiBjbGFzcyBFbmNvZGVyIGZpbmFsIHsKICAgICBX
VEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKQEAgLTQ4LDggKzQ5LDggQEAgcHVibGljOgogICAgIHZv
aWQgc2V0SXNTeW5jTWVzc2FnZShib29sKTsKICAgICBib29sIGlzU3luY01lc3NhZ2UoKSBjb25z
dDsKIAotICAgIHZvaWQgc2V0U2hvdWxkRGlzcGF0Y2hNZXNzYWdlV2hlbldhaXRpbmdGb3JTeW5j
UmVwbHkoYm9vbCk7Ci0gICAgYm9vbCBzaG91bGREaXNwYXRjaE1lc3NhZ2VXaGVuV2FpdGluZ0Zv
clN5bmNSZXBseSgpIGNvbnN0OworICAgIHZvaWQgc2V0U2hvdWxkRGlzcGF0Y2hNZXNzYWdlV2hl
bldhaXRpbmdGb3JTeW5jUmVwbHkoU2hvdWxkRGlzcGF0Y2hXaGVuV2FpdGluZ0ZvclN5bmNSZXBs
eSk7CisgICAgU2hvdWxkRGlzcGF0Y2hXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSBzaG91bGREaXNw
YXRjaE1lc3NhZ2VXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSgpIGNvbnN0OwogCiAgICAgdm9pZCBz
ZXRGdWxseVN5bmNocm9ub3VzTW9kZUZvclRlc3RpbmcoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9JUEMvTWVzc2FnZUZsYWdzLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRm
b3JtL0lQQy9NZXNzYWdlRmxhZ3MuaAppbmRleCBlOGQzZTVlMzdiYzRlNzc2NzczNDUwZWYyY2E5
NmViNDhhZTljZDc1Li45N2YwNzgyY2M1M2IzNzc0NDc0NWI5N2I5MzJkMjk0YmZiYjU1NjZiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9NZXNzYWdlRmxhZ3MuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9NZXNzYWdlRmxhZ3MuaApAQCAtMzEsOSArMzEs
MTIgQEAgbmFtZXNwYWNlIElQQyB7CiBlbnVtIE1lc3NhZ2VGbGFncyB7CiAgICAgU3luY01lc3Nh
Z2UgPSAxIDw8IDAsCiAgICAgRGlzcGF0Y2hNZXNzYWdlV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkg
PSAxIDw8IDEsCi0gICAgVXNlRnVsbHlTeW5jaHJvbm91c01vZGVGb3JUZXN0aW5nID0gMSA8PCAy
LAorICAgIERpc3BhdGNoTWVzc2FnZVdoZW5XYWl0aW5nRm9yVW5ib3VuZGVkU3luY1JlcGx5ID0g
MSA8PCAyLAorICAgIFVzZUZ1bGx5U3luY2hyb25vdXNNb2RlRm9yVGVzdGluZyA9IDEgPDwgMywK
IH07CiAKK2VudW0gY2xhc3MgU2hvdWxkRGlzcGF0Y2hXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSB7
IE5vLCBZZXMsIFllc0R1cmluZ1VuYm91bmRlZElQQyB9OworCiB9IC8vIG5hbWVzcGFjZSBJUEMK
IAogI2VuZGlmIC8vIE1lc3NhZ2VGbGFnc19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAppbmRleCBhOWRjMzI3ODAx
M2Q2MzA1OTRlOWNkYjc3ZjliM2JjZmQ3ZjIxNTY4Li42ZDY2NmM5YjY1NmQyY2NlY2M2Y2Q4MGE3
ZmQ3ZDljYTk2ZDQxZjYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTEyMTEsNyArMTIxMSw3IEBAIHZv
aWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6dGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1do
ZW5XYWl0aW5nRm9yU3luY1JlcGx5CiAgICAgICAgIHJldHVybiByZXBseShmYWxzZSk7CiAKICAg
ICBib29sIGhhbmRsZWQgPSBmYWxzZTsKLSAgICBpZiAoIXBhZ2UtPnNlbmRTeW5jKE1lc3NhZ2Vz
OjpXZWJQYWdlOjpUZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JT
eW5jUmVwbHkoKSwgTWVzc2FnZXM6OldlYlBhZ2U6OlRlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVz
c2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseTo6UmVwbHkoaGFuZGxlZCkpKQorICAgIGlmICgh
cGFnZS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2U6OlRlc3RQcm9jZXNzSW5jb21pbmdTeW5j
TWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSgpLCBNZXNzYWdlczo6V2ViUGFnZTo6VGVz
dFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5OjpSZXBs
eShoYW5kbGVkKSwgU2Vjb25kczo6aW5maW5pdHkoKSwgSVBDOjpTZW5kU3luY09wdGlvbjo6Rm9y
Y2VEaXNwYXRjaFdoZW5EZXN0aW5hdGlvbklzV2FpdGluZ0ZvclVuYm91bmRlZFN5bmNSZXBseSkp
CiAgICAgICAgIHJldHVybiByZXBseShmYWxzZSk7CiAgICAgcmVwbHkoaGFuZGxlZCk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA1MTNlMDkyY2M5ODZh
OWFiNGFhMWEzZTk1MjQ4MjgzM2NlYzkxODk5Li44MGMyNjNhMjI4YjFhOWZjOWZjZjZiMWQ4NTRh
N2E2YmJkNTgyMWFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
QEAgLTI2NjksNyArMjY2OSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpoYW5kbGVUb3VjaEV2ZW50
U3luY2hyb25vdXNseShOYXRpdmVXZWJUb3VjaEV2ZW50JiBldmVudCkKIAogICAgIG1fcHJvY2Vz
cy0+cmVzcG9uc2l2ZW5lc3NUaW1lcigpLnN0YXJ0KCk7CiAgICAgYm9vbCBoYW5kbGVkID0gZmFs
c2U7Ci0gICAgYm9vbCByZXBseVJlY2VpdmVkID0gbV9wcm9jZXNzLT5zZW5kU3luYyhNZXNzYWdl
czo6V2ViUGFnZTo6VG91Y2hFdmVudFN5bmMoZXZlbnQpLCBNZXNzYWdlczo6V2ViUGFnZTo6VG91
Y2hFdmVudFN5bmM6OlJlcGx5KGhhbmRsZWQpLCBtX3BhZ2VJRCwgMV9zKTsKKyAgICBib29sIHJl
cGx5UmVjZWl2ZWQgPSBtX3Byb2Nlc3MtPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlOjpUb3Vj
aEV2ZW50U3luYyhldmVudCksIE1lc3NhZ2VzOjpXZWJQYWdlOjpUb3VjaEV2ZW50U3luYzo6UmVw
bHkoaGFuZGxlZCksIG1fcGFnZUlELCAxX3MsIElQQzo6U2VuZFN5bmNPcHRpb246OkZvcmNlRGlz
cGF0Y2hXaGVuRGVzdGluYXRpb25Jc1dhaXRpbmdGb3JVbmJvdW5kZWRTeW5jUmVwbHkpOwogICAg
IC8vIElmIHRoZSBzeW5jIHJlcXVlc3QgaGFzIHRpbWVkIG91dCwgd2Ugc2hvdWxkIGNvbnNpZGVy
IHRoZSBldmVudCBoYW5kbGVkLiBUaGUgV2ViIFByb2Nlc3MgaXMgdG9vIGJ1c3kgdG8gYW5zd2Vy
IGFueSBxdWVzdGlvbnMsIHNvIHRoZSBkZWZhdWx0IGFjdGlvbiBpcyBhbHNvIGxpa2VseSB0byBo
YXZlIGlzc3Vlcy4KICAgICBpZiAoIXJlcGx5UmVjZWl2ZWQpCiAgICAgICAgIGhhbmRsZWQgPSB0
cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZp
ZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggYmI0OTRhMWU4Y2EyYmJmMjE3MmU4YmYyYjhhNzA2NmNm
YWQ5NGRkZi4uZTRlMTg4NzBjNmI2YzZiYmExZDYwNzFhYjY3MDc5ZTQzNjhmOGY4MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlv
bi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLm1tCkBAIC0xOTkwLDcgKzE5OTAsNyBAQCAtIChCT09MKWVuc3VyZVBvc2l0aW9uSW5m
b3JtYXRpb25Jc1VwVG9EYXRlOihXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZQog
ICAgIGlmIChbc2VsZiBfaGFzVmFsaWRPdXRzdGFuZGluZ1Bvc2l0aW9uSW5mb3JtYXRpb25SZXF1
ZXN0OnJlcXVlc3RdKQogICAgICAgICByZXR1cm4gY29ubmVjdGlvbi0+d2FpdEZvckFuZERpc3Bh
dGNoSW1tZWRpYXRlbHk8TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkUmVjZWl2ZVBvc2l0aW9u
SW5mb3JtYXRpb24+KF9wYWdlLT5wYWdlSUQoKSwgMV9zLCBJUEM6OldhaXRGb3JPcHRpb246Oklu
dGVycnVwdFdhaXRpbmdJZlN5bmNNZXNzYWdlQXJyaXZlcyk7CiAKLSAgICBib29sIHJlY2VpdmVk
UmVzcG9uc2UgPSBfcGFnZS0+cHJvY2VzcygpLnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlOjpH
ZXRQb3NpdGlvbkluZm9ybWF0aW9uKHJlcXVlc3QpLCBNZXNzYWdlczo6V2ViUGFnZTo6R2V0UG9z
aXRpb25JbmZvcm1hdGlvbjo6UmVwbHkoX3Bvc2l0aW9uSW5mb3JtYXRpb24pLCBfcGFnZS0+cGFn
ZUlEKCksIDFfcyk7CisgICAgYm9vbCByZWNlaXZlZFJlc3BvbnNlID0gX3BhZ2UtPnByb2Nlc3Mo
KS5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZTo6R2V0UG9zaXRpb25JbmZvcm1hdGlvbihyZXF1
ZXN0KSwgTWVzc2FnZXM6OldlYlBhZ2U6OkdldFBvc2l0aW9uSW5mb3JtYXRpb246OlJlcGx5KF9w
b3NpdGlvbkluZm9ybWF0aW9uKSwgX3BhZ2UtPnBhZ2VJRCgpLCAxX3MsIElQQzo6U2VuZFN5bmNP
cHRpb246OkZvcmNlRGlzcGF0Y2hXaGVuRGVzdGluYXRpb25Jc1dhaXRpbmdGb3JVbmJvdW5kZWRT
eW5jUmVwbHkpOwogICAgIF9oYXNWYWxpZFBvc2l0aW9uSW5mb3JtYXRpb24gPSByZWNlaXZlZFJl
c3BvbnNlICYmIF9wb3NpdGlvbkluZm9ybWF0aW9uLmNhbkJlVmFsaWQ7CiAgICAgCiAgICAgLy8g
RklYTUU6IFdlIG5lZWQgdG8gY2xlYW4gdXAgdGhlc2UgaGFuZGxlcnMgaW4gdGhlIGV2ZW50IHRo
YXQgd2UgYXJlIG5vdCBhYmxlIHRvIGNvbGxlY3QgZGF0YSwgb3IgaWYgdGhlIFdlYlByb2Nlc3Mg
Y3Jhc2hlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dl
YkxvYWRlclN0cmF0ZWd5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dl
YkxvYWRlclN0cmF0ZWd5LmNwcAppbmRleCBlMjFmNGExMzk1N2M0ZGU5ODdhZTQ3YjNlMjA2Yjhi
Y2QxOWM4MDY2Li41MDI2OTU0N2I5OTVkZjI1ODYzYTBjZDk0MmNjMjk1Yzg3MDNiZmQ2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVn
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3Ry
YXRlZ3kuY3BwCkBAIC01NjQsNiArNTY0LDcgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6bG9h
ZFJlc291cmNlU3luY2hyb25vdXNseShGcmFtZUxvYWRlciYgZnJhbWVMb2FkZXIsIHVuc2kKICAg
ICBkYXRhLnNocmluaygwKTsKIAogICAgIEhhbmdEZXRlY3Rpb25EaXNhYmxlciBoYW5nRGV0ZWN0
aW9uRGlzYWJsZXI7CisgICAgSVBDOjpVbmJvdW5kZWRTeW5jaHJvbm91c0lQQ1Njb3BlIHVuYm91
bmRlZFN5bmNocm9ub3VzSVBDU2NvcGU7CiAKICAgICBib29sIHNob3VsZE5vdGlmeU9mVXBsb2Fk
ID0gcmVxdWVzdC5oYXNVcGxvYWQoKSAmJiBtX2xvYWRlcnNXaXRoVXBsb2Fkcy5pc0VtcHR5KCk7
CiAgICAgaWYgKHNob3VsZE5vdGlmeU9mVXBsb2FkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRl
eCA5OTIxZGZiMGQ0YmExYWI2NGQ1MGZlOTBmNjI2ODU2ZTM3YjMxZjhkLi4xYTAyNGY3MTAxNTk2
Nzc1ZWQ4NDE5YmE1NjEwMjNmZDgwYjYwNDAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAt
MzA3LDggKzMwNyw5IEBAIFBhZ2UqIFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlV2luZG93KEZyYW1l
JiBmcmFtZSwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYgcmVxdWVzCiAKIGJvb2wgV2ViQ2hyb21l
Q2xpZW50Ojp0ZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5j
UmVwbHkoKQogeworICAgIElQQzo6VW5ib3VuZGVkU3luY2hyb25vdXNJUENTY29wZSB1bmJvdW5k
ZWRTeW5jaHJvbm91c0lQQ1Njb3BlOwogICAgIGJvb2wgaGFuZGxlZCA9IGZhbHNlOwotICAgIGlm
ICghV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
KCkuY29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6VGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3lu
Y1JlcGx5KG1fcGFnZS5wYWdlSUQoKSksIE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6VGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3lu
Y1JlcGx5OjpSZXBseShoYW5kbGVkKSwgMCwgU2Vjb25kczo6aW5maW5pdHkoKSwgSVBDOjpTZW5k
U3luY09wdGlvbjo6UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5j
UmVwbHkpKQorICAgIGlmICghV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6VGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1do
ZW5XYWl0aW5nRm9yU3luY1JlcGx5KG1fcGFnZS5wYWdlSUQoKSksIE1lc3NhZ2VzOjpOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6VGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1do
ZW5XYWl0aW5nRm9yU3luY1JlcGx5OjpSZXBseShoYW5kbGVkKSwgMCkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICByZXR1cm4gaGFuZGxlZDsKIH0KQEAgLTQ2Nyw4ICs0NjgsOSBAQCB2b2lk
IFdlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdEFsZXJ0KEZyYW1lJiBmcmFtZSwgY29uc3Qg
U3RyaW5nJiBhbGVydFRleHQpCiAgICAgbV9wYWdlLmluamVjdGVkQnVuZGxlVUlDbGllbnQoKS53
aWxsUnVuSmF2YVNjcmlwdEFsZXJ0KCZtX3BhZ2UsIGFsZXJ0VGV4dCwgd2ViRnJhbWUpOwogCiAg
ICAgSGFuZ0RldGVjdGlvbkRpc2FibGVyIGhhbmdEZXRlY3Rpb25EaXNhYmxlcjsKKyAgICBJUEM6
OlVuYm91bmRlZFN5bmNocm9ub3VzSVBDU2NvcGUgdW5ib3VuZGVkU3luY2hyb25vdXNJUENTY29w
ZTsKIAotICAgIG1fcGFnZS5zZW5kU3luY1dpdGhEZWxheWVkUmVwbHkoTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6UnVuSmF2YVNjcmlwdEFsZXJ0KHdlYkZyYW1lLT5mcmFtZUlEKCksIFNlY3VyaXR5
T3JpZ2luRGF0YTo6ZnJvbUZyYW1lKCZmcmFtZSksIGFsZXJ0VGV4dCksIE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OlJ1bkphdmFTY3JpcHRBbGVydDo6UmVwbHkoKSwgSVBDOjpTZW5kU3luY09wdGlv
bjo6UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkpOwor
ICAgIG1fcGFnZS5zZW5kU3luY1dpdGhEZWxheWVkUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6UnVuSmF2YVNjcmlwdEFsZXJ0KHdlYkZyYW1lLT5mcmFtZUlEKCksIFNlY3VyaXR5T3JpZ2lu
RGF0YTo6ZnJvbUZyYW1lKCZmcmFtZSksIGFsZXJ0VGV4dCksIE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OlJ1bkphdmFTY3JpcHRBbGVydDo6UmVwbHkoKSk7CiB9CiAKIGJvb2wgV2ViQ2hyb21lQ2xp
ZW50OjpydW5KYXZhU2NyaXB0Q29uZmlybShGcmFtZSYgZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVz
c2FnZSkKQEAgLTQ4Myw5ICs0ODUsMTAgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFT
Y3JpcHRDb25maXJtKEZyYW1lJiBmcmFtZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogICAgIG1f
cGFnZS5pbmplY3RlZEJ1bmRsZVVJQ2xpZW50KCkud2lsbFJ1bkphdmFTY3JpcHRDb25maXJtKCZt
X3BhZ2UsIG1lc3NhZ2UsIHdlYkZyYW1lKTsKIAogICAgIEhhbmdEZXRlY3Rpb25EaXNhYmxlciBo
YW5nRGV0ZWN0aW9uRGlzYWJsZXI7CisgICAgSVBDOjpVbmJvdW5kZWRTeW5jaHJvbm91c0lQQ1Nj
b3BlIHVuYm91bmRlZFN5bmNocm9ub3VzSVBDU2NvcGU7CiAKICAgICBib29sIHJlc3VsdCA9IGZh
bHNlOwotICAgIGlmICghbV9wYWdlLnNlbmRTeW5jV2l0aERlbGF5ZWRSZXBseShNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0Q29uZmlybSh3ZWJGcmFtZS0+ZnJhbWVJRCgpLCBT
ZWN1cml0eU9yaWdpbkRhdGE6OmZyb21GcmFtZSgmZnJhbWUpLCBtZXNzYWdlKSwgTWVzc2FnZXM6
OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdENvbmZpcm06OlJlcGx5KHJlc3VsdCksIElQQzo6
U2VuZFN5bmNPcHRpb246OlByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9y
U3luY1JlcGx5KSkKKyAgICBpZiAoIW1fcGFnZS5zZW5kU3luY1dpdGhEZWxheWVkUmVwbHkoTWVz
c2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdENvbmZpcm0od2ViRnJhbWUtPmZyYW1l
SUQoKSwgU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tRnJhbWUoJmZyYW1lKSwgbWVzc2FnZSksIE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRDb25maXJtOjpSZXBseShyZXN1bHQp
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTUwMyw4
ICs1MDYsOSBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdFByb21wdChGcmFt
ZSYgZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgYwogICAgIG1fcGFnZS5pbmplY3RlZEJ1
bmRsZVVJQ2xpZW50KCkud2lsbFJ1bkphdmFTY3JpcHRQcm9tcHQoJm1fcGFnZSwgbWVzc2FnZSwg
ZGVmYXVsdFZhbHVlLCB3ZWJGcmFtZSk7CiAKICAgICBIYW5nRGV0ZWN0aW9uRGlzYWJsZXIgaGFu
Z0RldGVjdGlvbkRpc2FibGVyOworICAgIElQQzo6VW5ib3VuZGVkU3luY2hyb25vdXNJUENTY29w
ZSB1bmJvdW5kZWRTeW5jaHJvbm91c0lQQ1Njb3BlOwogCi0gICAgaWYgKCFtX3BhZ2Uuc2VuZFN5
bmNXaXRoRGVsYXllZFJlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRQ
cm9tcHQod2ViRnJhbWUtPmZyYW1lSUQoKSwgU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tRnJhbWUo
JmZyYW1lKSwgbWVzc2FnZSwgZGVmYXVsdFZhbHVlKSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
UnVuSmF2YVNjcmlwdFByb21wdDo6UmVwbHkocmVzdWx0KSwgSVBDOjpTZW5kU3luY09wdGlvbjo6
UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkpKQorICAg
IGlmICghbV9wYWdlLnNlbmRTeW5jV2l0aERlbGF5ZWRSZXBseShNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpSdW5KYXZhU2NyaXB0UHJvbXB0KHdlYkZyYW1lLT5mcmFtZUlEKCksIFNlY3VyaXR5T3Jp
Z2luRGF0YTo6ZnJvbUZyYW1lKCZmcmFtZSksIG1lc3NhZ2UsIGRlZmF1bHRWYWx1ZSksIE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRQcm9tcHQ6OlJlcGx5KHJlc3VsdCkpKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gIXJlc3VsdC5pc051bGwoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggODAwNjdj
ZTljNTQxYmQyNDUwMDVhZTE5MTU5ZDk1ZDc3NmQ4MmRiMC4uOWZmMTNhZDJjN2UyMzNiMWEzNGNm
NmNjMTEwZTEzYWUzM2FmYjUyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAKQEAgLTMxNiw4ICszMTYsOCBAQCBzdGF0aWMgY29uc3QgU2Vjb25kcyBw
YWdlU2Nyb2xsSHlzdGVyZXNpc0R1cmF0aW9uIHsgMzAwX21zIH07CiBzdGF0aWMgY29uc3QgU2Vj
b25kcyBpbml0aWFsTGF5ZXJWb2xhdGlsaXR5VGltZXJJbnRlcnZhbCB7IDIwX21zIH07CiBzdGF0
aWMgY29uc3QgU2Vjb25kcyBtYXhpbXVtTGF5ZXJWb2xhdGlsaXR5VGltZXJJbnRlcnZhbCB7IDJf
cyB9OwogCi0jZGVmaW5lIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoLi4uKSBSRUxFQVNFX0xPR19J
Rihpc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgTGF5ZXJzLCBfX1ZBX0FSR1NfXykKLSNkZWZp
bmUgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRCguLi4pIFJFTEVBU0VfTE9HX0VSUk9SX0lG
KGlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBMYXllcnMsIF9fVkFfQVJHU19fKQorI2RlZmlu
ZSBSRUxFQVNFX0xPR19JRl9BTExPV0VEKGNoYW5uZWwsIGZtdCwgLi4uKSBSRUxFQVNFX0xPR19J
Rihpc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgY2hhbm5lbCwgIiVwIC0gV2ViUGFnZTo6IiBm
bXQsIHRoaXMsICMjX19WQV9BUkdTX18pCisjZGVmaW5lIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FM
TE9XRUQoY2hhbm5lbCwgZm10LCAuLi4pIFJFTEVBU0VfTE9HX0VSUk9SX0lGKGlzQWx3YXlzT25M
b2dnaW5nQWxsb3dlZCgpLCBjaGFubmVsLCAiJXAgLSBXZWJQYWdlOjoiIGZtdCwgdGhpcywgIyNf
X1ZBX0FSR1NfXykKIAogY2xhc3MgU2VuZFN0b3BSZXNwb25zaXZlbmVzc1RpbWVyIHsKIHB1Ymxp
YzoKQEAgLTI1NTgsMTQgKzI1NTgsMTQgQEAgdm9pZCBXZWJQYWdlOjpsYXllclZvbGF0aWxpdHlU
aW1lckZpcmVkKCkKICAgICBpZiAoZGlkU3VjY2VlZCB8fCBuZXdJbnRlcnZhbCA+IG1heGltdW1M
YXllclZvbGF0aWxpdHlUaW1lckludGVydmFsKSB7CiAgICAgICAgIG1fbGF5ZXJWb2xhdGlsaXR5
VGltZXIuc3RvcCgpOwogICAgICAgICBpZiAoZGlkU3VjY2VlZCkKLSAgICAgICAgICAgIFJFTEVB
U0VfTE9HX0lGX0FMTE9XRUQoIiVwIC0gV2ViUGFnZSAtIFN1Y2NlZWRlZCBpbiBtYXJraW5nIGxh
eWVycyBhcyB2b2xhdGlsZSIsIHRoaXMpOworICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxM
T1dFRChMYXllcnMsICJsYXllclZvbGF0aWxpdHlUaW1lckZpcmVkOiBTdWNjZWVkZWQgaW4gbWFy
a2luZyBsYXllcnMgYXMgdm9sYXRpbGUiKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgUkVM
RUFTRV9MT0dfSUZfQUxMT1dFRCgiJXAgLSBXZWJQYWdlIC0gRmFpbGVkIHRvIG1hcmsgbGF5ZXJz
IGFzIHZvbGF0aWxlIHdpdGhpbiAlZ21zIiwgdGhpcywgbWF4aW11bUxheWVyVm9sYXRpbGl0eVRp
bWVySW50ZXJ2YWwubWlsbGlzZWNvbmRzKCkpOworICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZf
QUxMT1dFRChMYXllcnMsICJsYXllclZvbGF0aWxpdHlUaW1lckZpcmVkOiBGYWlsZWQgdG8gbWFy
ayBsYXllcnMgYXMgdm9sYXRpbGUgd2l0aGluICVnbXMiLCBtYXhpbXVtTGF5ZXJWb2xhdGlsaXR5
VGltZXJJbnRlcnZhbC5taWxsaXNlY29uZHMoKSk7CiAgICAgICAgIGNhbGxWb2xhdGlsaXR5Q29t
cGxldGlvbkhhbmRsZXJzKGRpZFN1Y2NlZWQpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0g
ICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRCgiJXAgLSBXZWJQYWdlIC0gRmFpbGVkIHRv
IG1hcmsgYWxsIGxheWVycyBhcyB2b2xhdGlsZSwgd2lsbCByZXRyeSBpbiAlZyBtcyIsIHRoaXMs
IG5ld0ludGVydmFsLm1pbGxpc2Vjb25kcygpKTsKKyAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9B
TExPV0VEKExheWVycywgImxheWVyVm9sYXRpbGl0eVRpbWVyRmlyZWQ6IEZhaWxlZCB0byBtYXJr
IGFsbCBsYXllcnMgYXMgdm9sYXRpbGUsIHdpbGwgcmV0cnkgaW4gJWcgbXMiLCBuZXdJbnRlcnZh
bC5taWxsaXNlY29uZHMoKSk7CiAgICAgbV9sYXllclZvbGF0aWxpdHlUaW1lci5zdGFydFJlcGVh
dGluZyhuZXdJbnRlcnZhbCk7CiB9CiAKQEAgLTI1NzYsNyArMjU3Niw3IEBAIGJvb2wgV2ViUGFn
ZTo6bWFya0xheWVyc1ZvbGF0aWxlSW1tZWRpYXRlbHlJZlBvc3NpYmxlKCkKIAogdm9pZCBXZWJQ
YWdlOjptYXJrTGF5ZXJzVm9sYXRpbGUoV1RGOjpGdW5jdGlvbjx2b2lkIChib29sKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKIHsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCIlcCAtIFdlYlBh
Z2U6Om1hcmtMYXllcnNWb2xhdGlsZSgpIiwgdGhpcyk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxM
T1dFRChMYXllcnMsICJtYXJrTGF5ZXJzVm9sYXRpbGUiKTsKIAogICAgIGlmIChtX2xheWVyVm9s
YXRpbGl0eVRpbWVyLmlzQWN0aXZlKCkpCiAgICAgICAgIG1fbGF5ZXJWb2xhdGlsaXR5VGltZXIu
c3RvcCgpOwpAQCAtMjU4NywyMiArMjU4NywyMiBAQCB2b2lkIFdlYlBhZ2U6Om1hcmtMYXllcnNW
b2xhdGlsZShXVEY6OkZ1bmN0aW9uPHZvaWQgKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQog
ICAgIGJvb2wgZGlkU3VjY2VlZCA9IG1hcmtMYXllcnNWb2xhdGlsZUltbWVkaWF0ZWx5SWZQb3Nz
aWJsZSgpOwogICAgIGlmIChkaWRTdWNjZWVkIHx8IG1faXNTdXNwZW5kZWRVbmRlckxvY2spIHsK
ICAgICAgICAgaWYgKGRpZFN1Y2NlZWQpCi0gICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExP
V0VEKCIlcCAtIFdlYlBhZ2UgLSBTdWNjZXNzZnVsbHkgbWFya2VkIGxheWVycyBhcyB2b2xhdGls
ZSIsIHRoaXMpOworICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMYXllcnMsICJt
YXJrTGF5ZXJzVm9sYXRpbGU6IFN1Y2Nlc3NmdWxseSBtYXJrZWQgbGF5ZXJzIGFzIHZvbGF0aWxl
Iik7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgLy8gSWYgd2UgZ2V0IHN1c3BlbmRlZCB3
aGVuIGxvY2tpbmcgdGhlIHNjcmVlbiwgaXQgaXMgZXhwZWN0ZWQgdGhhdCBzb21lIElPU3VyZmFj
ZXMgY2Fubm90IGJlIG1hcmtlZCBhcyBwdXJnZWFibGUgc28gd2UgZG8gbm90IGtlZXAgcmV0cnlp
bmcuCi0gICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCIlcCAtIFdlYlBhZ2UgLSBE
aWQgd2hhdCB3ZSBjb3VsZCB0byBtYXJrIElPU3VyZmFjZXMgYXMgcHVyZ2VhYmxlIGFmdGVyIGxv
Y2tpbmcgdGhlIHNjcmVlbiIsIHRoaXMpOworICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxM
T1dFRChMYXllcnMsICJtYXJrTGF5ZXJzVm9sYXRpbGU6IERpZCB3aGF0IHdlIGNvdWxkIHRvIG1h
cmsgSU9TdXJmYWNlcyBhcyBwdXJnZWFibGUgYWZ0ZXIgbG9ja2luZyB0aGUgc2NyZWVuIik7CiAg
ICAgICAgIH0KICAgICAgICAgY2FsbFZvbGF0aWxpdHlDb21wbGV0aW9uSGFuZGxlcnMoZGlkU3Vj
Y2VlZCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBSRUxFQVNFX0xPR19JRl9BTExP
V0VEKCIlcCAtIEZhaWxlZCB0byBtYXJrIGFsbCBsYXllcnMgYXMgdm9sYXRpbGUsIHdpbGwgcmV0
cnkgaW4gJWcgbXMiLCB0aGlzLCBpbml0aWFsTGF5ZXJWb2xhdGlsaXR5VGltZXJJbnRlcnZhbC5t
aWxsaXNlY29uZHMoKSk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMYXllcnMsICJtYXJr
TGF5ZXJzVm9sYXRpbGU6IEZhaWxlZCB0byBtYXJrIGFsbCBsYXllcnMgYXMgdm9sYXRpbGUsIHdp
bGwgcmV0cnkgaW4gJWcgbXMiLCBpbml0aWFsTGF5ZXJWb2xhdGlsaXR5VGltZXJJbnRlcnZhbC5t
aWxsaXNlY29uZHMoKSk7CiAgICAgbV9sYXllclZvbGF0aWxpdHlUaW1lci5zdGFydFJlcGVhdGlu
Zyhpbml0aWFsTGF5ZXJWb2xhdGlsaXR5VGltZXJJbnRlcnZhbCk7CiB9CiAKIHZvaWQgV2ViUGFn
ZTo6Y2FuY2VsTWFya0xheWVyc1ZvbGF0aWxlKCkKIHsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExP
V0VEKCIlcCAtIFdlYlBhZ2U6OmNhbmNlbE1hcmtMYXllcnNWb2xhdGlsZSgpIiwgdGhpcyk7Cisg
ICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMYXllcnMsICJjYW5jZWxNYXJrTGF5ZXJzVm9sYXRp
bGUiKTsKICAgICBtX2xheWVyVm9sYXRpbGl0eVRpbWVyLnN0b3AoKTsKICAgICBtX21hcmtMYXll
cnNBc1ZvbGF0aWxlQ29tcGxldGlvbkhhbmRsZXJzLmNsZWFyKCk7CiB9CkBAIC0yOTEyLDYgKzI5
MTIsMTIgQEAgdm9pZCBXZWJQYWdlOjpkaXNwYXRjaFRvdWNoRXZlbnQoY29uc3QgV2ViVG91Y2hF
dmVudCYgdG91Y2hFdmVudCwgYm9vbCYgaGFuZGxlZCkKIAogdm9pZCBXZWJQYWdlOjp0b3VjaEV2
ZW50U3luYyhjb25zdCBXZWJUb3VjaEV2ZW50JiB0b3VjaEV2ZW50LCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPiYmIHJlcGx5KQogeworICAgIC8vIEF2b2lkIFVJUHJvY2VzcyBoYW5ncyB3
aGVuIHRoZSBXZWJDb250ZW50IHByb2Nlc3MgaXMgc3R1Y2sgb24gYSBzeW5jIElQQy4KKyAgICBp
ZiAoSVBDOjpVbmJvdW5kZWRTeW5jaHJvbm91c0lQQ1Njb3BlOjpoYXNPbmdvaW5nVW5ib3VuZGVk
U3luY0lQQygpKSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoUHJvY2Vz
cywgInRvdWNoRXZlbnRTeW5jIC0gTm90IHByb2Nlc3NpbmcgYmVjYXVzZSB0aGUgcHJvY2VzcyBp
cyBzdHVjayBvbiB1bmJvdW5kZWQgc3luYyBJUEMiKTsKKyAgICAgICAgcmV0dXJuIHJlcGx5KHRy
dWUpOworICAgIH0KKwogICAgIG1fcGVuZGluZ1N5bmNocm9ub3VzVG91Y2hFdmVudFJlcGx5ID0g
V1RGTW92ZShyZXBseSk7CiAKICAgICBFdmVudERpc3BhdGNoZXI6OlRvdWNoRXZlbnRRdWV1ZSBx
dWV1ZWRFdmVudHM7CkBAIC0zMjgxLDcgKzMyODcsNyBAQCB2b2lkIFdlYlBhZ2U6OmRpZENvbXBs
ZXRlUGFnZVRyYW5zaXRpb24oKQogewogICAgIHVuZnJlZXplTGF5ZXJUcmVlKExheWVyVHJlZUZy
ZWV6ZVJlYXNvbjo6UGFnZVRyYW5zaXRpb24pOwogCi0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dF
RCgiJXAgLSBXZWJQYWdlIC0gRGlkIGNvbXBsZXRlIHBhZ2UgdHJhbnNpdGlvbiIsIHRoaXMpOwor
ICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTGF5ZXJzLCAiZGlkQ29tcGxldGVQYWdlVHJhbnNp
dGlvbjogRGlkIGNvbXBsZXRlIHBhZ2UgdHJhbnNpdGlvbiIpOwogCiAgICAgYm9vbCBpc0luaXRp
YWxFbXB0eURvY3VtZW50ID0gIW1fbWFpbkZyYW1lOwogICAgIGlmICghaXNJbml0aWFsRW1wdHlE
b2N1bWVudCkKQEAgLTM1NDYsNyArMzU1Miw3IEBAIHZvaWQgV2ViUGFnZTo6dXBkYXRlUHJlZmVy
ZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUpCiAKICNpZiAhUExBVEZPUk0o
R1RLKSAmJiAhUExBVEZPUk0oV0lOKQogICAgIGlmICghc2V0dGluZ3MuYWNjZWxlcmF0ZWRDb21w
b3NpdGluZ0VuYWJsZWQoKSkgewotICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCIlcCAt
IFdlYlBhZ2UgLSBhY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCBzZXR0aW5nIHdhcyBmYWxz
ZS4gV2ViS2l0IGNhbm5vdCBmdW5jdGlvbiBpbiB0aGlzIG1vZGU7IGNoYW5naW5nIHNldHRpbmcg
dG8gdHJ1ZSIsIHRoaXMpOworICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExheWVycywg
InVwZGF0ZVByZWZlcmVuY2VzOiBhY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCBzZXR0aW5n
IHdhcyBmYWxzZS4gV2ViS2l0IGNhbm5vdCBmdW5jdGlvbiBpbiB0aGlzIG1vZGU7IGNoYW5naW5n
IHNldHRpbmcgdG8gdHJ1ZSIpOwogICAgICAgICBzZXR0aW5ncy5zZXRBY2NlbGVyYXRlZENvbXBv
c2l0aW5nRW5hYmxlZCh0cnVlKTsKICAgICB9CiAjZW5kaWYKQEAgLTU4ODcsNiArNTg5Myw3IEBA
IHZvaWQgV2ViUGFnZTo6ZGlkUmVtb3ZlTWVudUl0ZW1FbGVtZW50KEhUTUxNZW51SXRlbUVsZW1l
bnQmIGVsZW1lbnQpCiAKIHZvaWQgV2ViUGFnZTo6dGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNz
YWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlOjpUZXN0UHJvY2Vz
c0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHk6OkRlbGF5ZWRSZXBs
eSYmIHJlcGx5KQogeworICAgIFJFTEVBU0VfQVNTRVJUKElQQzo6VW5ib3VuZGVkU3luY2hyb25v
dXNJUENTY29wZTo6aGFzT25nb2luZ1VuYm91bmRlZFN5bmNJUEMoKSk7CiAgICAgcmVwbHkodHJ1
ZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRl
eCBjNWJjOGNjOWE0NDMyNDhhMTRmMWZlM2FmMWFmYTUwMTQ5OTY5YTVhLi44ODYxYWU2MjU2MmE3
MTg5NTBhYzFhMDViODZkZGFkZWY4MTVlMzViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xMTY3LDEwICsxMTY3LDEwIEBAIHB1YmxpYzoKICAgICB2
b2lkIGRpZFJlY2VpdmVXZWJQYWdlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29k
ZXImKTsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci0gICAgYm9vbCBzZW5kU3luY1dpdGhE
ZWxheWVkUmVwbHkoVCYmIG1lc3NhZ2UsIHR5cGVuYW1lIFQ6OlJlcGx5JiYgcmVwbHksIE9wdGlv
blNldDxJUEM6OlNlbmRTeW5jT3B0aW9uPiBzZW5kU3luY09wdGlvbnMgPSB7IH0pCisgICAgYm9v
bCBzZW5kU3luY1dpdGhEZWxheWVkUmVwbHkoVCYmIG1lc3NhZ2UsIHR5cGVuYW1lIFQ6OlJlcGx5
JiYgcmVwbHkpCiAgICAgewogICAgICAgICBjYW5jZWxHZXN0dXJlc0Jsb2NrZWRPblN5bmNocm9u
b3VzUmVwbGllcygpOwotICAgICAgICByZXR1cm4gc2VuZFN5bmMoV1RGTW92ZShtZXNzYWdlKSwg
V1RGTW92ZShyZXBseSksIFNlY29uZHM6OmluZmluaXR5KCksIHNlbmRTeW5jT3B0aW9ucyB8IElQ
Qzo6U2VuZFN5bmNPcHRpb246OkluZm9ybVBsYXRmb3JtUHJvY2Vzc1dpbGxTdXNwZW5kKTsKKyAg
ICAgICAgcmV0dXJuIHNlbmRTeW5jKFdURk1vdmUobWVzc2FnZSksIFdURk1vdmUocmVwbHkpLCBT
ZWNvbmRzOjppbmZpbml0eSgpLCBJUEM6OlNlbmRTeW5jT3B0aW9uOjpJbmZvcm1QbGF0Zm9ybVBy
b2Nlc3NXaWxsU3VzcGVuZCk7CiAgICAgfQogCiAgICAgV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NS
ZXNwb25zZSByZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlm
aWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9X
ZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBh
Z2VJT1MubW0KaW5kZXggMjMyMjQzMjY0MTc3MTA0OTc5NTJiOTZiNjZmNDA0ZTU2ZDY1MWRmNS4u
MjhkY2Y1ZTkwZTc0ZmJjZTAwYzc5NDYzZDMyZjU0M2FhZjI3MjBhMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAgLTEzMiw2
ICsxMzIsOSBAQAogI2ltcG9ydCA8d3RmL2NvY29hL0VudGl0bGVtZW50cy5oPgogI2ltcG9ydCA8
d3RmL3RleHQvVGV4dFN0cmVhbS5oPgogCisjZGVmaW5lIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQo
Y2hhbm5lbCwgZm10LCAuLi4pIFJFTEVBU0VfTE9HX0lGKGlzQWx3YXlzT25Mb2dnaW5nQWxsb3dl
ZCgpLCBjaGFubmVsLCAiJXAgLSBXZWJQYWdlOjoiIGZtdCwgdGhpcywgIyNfX1ZBX0FSR1NfXykK
KyNkZWZpbmUgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChjaGFubmVsLCBmbXQsIC4uLikg
UkVMRUFTRV9MT0dfRVJST1JfSUYoaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIGNoYW5uZWws
ICIlcCAtIFdlYlBhZ2U6OiIgZm10LCB0aGlzLCAjI19fVkFfQVJHU19fKQorCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC0yNTQyLDYgKzI1NDUsMTIg
QEAgc3RhdGljIGlubGluZSBib29sIGlzQXNzaXN0YWJsZUVsZW1lbnQoRWxlbWVudCYgZWxlbWVu
dCkKIAogdm9pZCBXZWJQYWdlOjpnZXRQb3NpdGlvbkluZm9ybWF0aW9uKGNvbnN0IEludGVyYWN0
aW9uSW5mb3JtYXRpb25SZXF1ZXN0JiByZXF1ZXN0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKElu
dGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uJiYpPiYmIHJlcGx5KQogeworICAgIC8vIEF2
b2lkIFVJUHJvY2VzcyBoYW5ncyB3aGVuIHRoZSBXZWJDb250ZW50IHByb2Nlc3MgaXMgc3R1Y2sg
b24gYSBzeW5jIElQQy4KKyAgICBpZiAoSVBDOjpVbmJvdW5kZWRTeW5jaHJvbm91c0lQQ1Njb3Bl
OjpoYXNPbmdvaW5nVW5ib3VuZGVkU3luY0lQQygpKSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0VS
Uk9SX0lGX0FMTE9XRUQoUHJvY2VzcywgImdldFBvc2l0aW9uSW5mb3JtYXRpb24gLSBOb3QgcHJv
Y2Vzc2luZyBiZWNhdXNlIHRoZSBwcm9jZXNzIGlzIHN0dWNrIG9uIHVuYm91bmRlZCBzeW5jIElQ
QyIpOworICAgICAgICByZXR1cm4gcmVwbHkoeyB9KTsKKyAgICB9CisKICAgICBtX3BlbmRpbmdT
eW5jaHJvbm91c1Bvc2l0aW9uSW5mb3JtYXRpb25SZXBseSA9IFdURk1vdmUocmVwbHkpOwogCiAg
ICAgYXV0byBpbmZvcm1hdGlvbiA9IHBvc2l0aW9uSW5mb3JtYXRpb24ocmVxdWVzdCk7CkBAIC00
MDQxLDQgKzQwNTAsNyBAQCB2b2lkIFdlYlBhZ2U6OnJlcXVlc3REb2N1bWVudEVkaXRpbmdDb250
ZXh0KERvY3VtZW50RWRpdGluZ0NvbnRleHRSZXF1ZXN0IHJlcXVlcwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKIAorI3VuZGVmIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQKKyN1bmRlZiBSRUxFQVNF
X0xPR19FUlJPUl9JRl9BTExPV0VECisKICNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IDRlYThkNzBhM2VmZmNmMWMxMzdkNDRkZGI2MmZkMTliM2Q0ODZiYzcuLjI5YjFlNzFj
NzBlZTdlMjdjNWUwYTc3M2YzNmU2OTM4N2MzM2VkMjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAor
MjAxOS0wNy0yNiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFtp
T1NdIFdlYlBhZ2U6OlRvdWNoRXZlbnRTeW5jKCkgJiBXZWJQYWdlOjpHZXRQb3NpdGlvbkluZm9y
bWF0aW9uKCkgc3luYyBJUEMgY2F1c2VzIFVJUHJvY2VzcyBoYW5ncworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAwMTM4CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS81MjY5ODE1Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBVcGRhdGUgZXhpc3RpbmcgbGF5b3V0IHRlc3QgYWNjb3JkaW5nbHkuCisKKyAg
ICAgICAgKiBmYXN0L21pc2Mve3Rlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2Fp
dGluZ0ZvclVuYm91bmRlZFJlcGx5LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRl
c3RzL2Zhc3QvbWlzYy90ZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdG
b3JTeW5jUmVwbHktZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGZhc3QvbWlzYy97dGVzdFByb2Nl
c3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yVW5ib3VuZGVkUmVwbHkuaHRtbDog
UmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvbWlzYy90ZXN0UHJvY2Vzc0luY29taW5nU3lu
Y01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkuaHRtbC4KKwogMjAxOS0wNy0yNiAgUm9i
IEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgogCiAgICAgICAgIE1ha2Ugc3RvcmluZyBjcm9zcy1v
cmlnaW4gdG9wLWxldmVsIHByZWZldGNoZXMgaW4gSFRUUCBjYWNoZSBvcHRpb25hbApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9taXNjL3Rlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2Fn
ZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L21pc2MvdGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1Jl
cGx5LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzBjOGMyNThl
NjhiOGM4ZjhiYmI1NGNmMzc0MWRlMjhmNWY5Y2M4MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L21pc2MvdGVzdFByb2Nlc3NJ
bmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5LWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLVRlc3QgZm9yIHRoZSBTZW5kU3luY09wdGlv
bjo6UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkgc2Vu
ZFN5bmMgZmxhZwotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBpbnRlcm5h
bHMudGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5
KCkgaXMgdHJ1ZQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBM
RVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWlzYy90ZXN0UHJvY2Vzc0luY29t
aW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvbWlzYy90ZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JT
eW5jUmVwbHkuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjY0M2ViYjY0NmE0
OWQwZjk4NjU1Y2Q4YjVhMDZhNzY1MGE5M2E0ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L21pc2MvdGVzdFByb2Nlc3NJbmNv
bWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5Lmh0bWwKKysrIC9kZXYvbnVs
bApAQCAtMSwxMSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGJvZHk+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4K
LWRlc2NyaXB0aW9uKCJUZXN0IGZvciB0aGUgU2VuZFN5bmNPcHRpb246OlByb2Nlc3NJbmNvbWlu
Z1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5IHNlbmRTeW5jIGZsYWciKTsKLQot
c2hvdWxkQmVUcnVlKCJpbnRlcm5hbHMudGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1do
ZW5XYWl0aW5nRm9yU3luY1JlcGx5KCkiKTsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9taXNjL3t0ZXN0UHJvY2Vzc0luY29taW5nU3lu
Y01lc3NhZ2VzV2hlbldhaXRpbmdGb3JVbmJvdW5kZWRSZXBseS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L21pc2Mve3Rlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2Fp
dGluZ0ZvclVuYm91bmRlZFJlcGx5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44N2JjNDAwMTU3
MTg2MDU3MTZkYmNiOTFmYTQzNTlhNjk0ZGQ4NWI3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9taXNjL3t0ZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRp
bmdGb3JVbmJvdW5kZWRSZXBseS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGVzdCBm
b3IgdGhlIFNlbmRTeW5jT3B0aW9uOjpGb3JjZURpc3BhdGNoV2hlbkRlc3RpbmF0aW9uSXNXYWl0
aW5nRm9yVW5ib3VuZGVkU3luY1JlcGx5IHNlbmRTeW5jIGZsYWcKKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKK1BBU1MgaW50ZXJuYWxzLnRlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVz
c2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSgpIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L21pc2Mve3Rlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0Zv
clVuYm91bmRlZFJlcGx5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21pc2Mve3Rlc3RQcm9jZXNz
SW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclVuYm91bmRlZFJlcGx5Lmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNTVhYjQ0OGExODk4NDQ2OGEzMTJiMzBmY2UwOWQ5N2VlMjU4OThiZQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWlzYy97dGVzdFByb2Nlc3NJbmNvbWluZ1N5
bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yVW5ib3VuZGVkUmVwbHkuaHRtbApAQCAtMCwwICsxLDEx
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJU
ZXN0IGZvciB0aGUgU2VuZFN5bmNPcHRpb246OkZvcmNlRGlzcGF0Y2hXaGVuRGVzdGluYXRpb25J
c1dhaXRpbmdGb3JVbmJvdW5kZWRTeW5jUmVwbHkgc2VuZFN5bmMgZmxhZyIpOworCitzaG91bGRC
ZVRydWUoImludGVybmFscy50ZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRp
bmdGb3JTeW5jUmVwbHkoKSIpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>