<?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>238432</bug_id>
          
          <creation_ts>2022-03-27 19:23:03 -0700</creation_ts>
          <short_desc>[WebGPU] Implement Queue::writeTexture() according to the spec</short_desc>
          <delta_ts>2022-04-01 00:43:51 -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>WebGPU</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>dino</cc>
    
    <cc>djg</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1855482</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-03-27 19:23:03 -0700</bug_when>
    <thetext>.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1855483</commentid>
    <comment_count>1</comment_count>
      <attachid>455879</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-03-27 19:24:21 -0700</bug_when>
    <thetext>Created attachment 455879
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1855726</commentid>
    <comment_count>2</comment_count>
      <attachid>455942</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-03-28 12:23:52 -0700</bug_when>
    <thetext>Created attachment 455942
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1856748</commentid>
    <comment_count>3</comment_count>
      <attachid>456221</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-03-31 02:00:17 -0700</bug_when>
    <thetext>Created attachment 456221
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1857040</commentid>
    <comment_count>4</comment_count>
      <attachid>456221</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2022-03-31 16:36:31 -0700</bug_when>
    <thetext>Comment on attachment 456221
Patch

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

&gt; Source/WebGPU/WebGPU/Queue.mm:299
&gt; +    // file:///Users/mmaxfield/src/GPUWeb/spec/index.html#dom-gpuqueue-writetexture

Oops!

&gt; Source/WebGPU/WebGPU/Queue.mm:487
&gt; +    case WGPUTextureDimension_Force32:
&gt; +        return;

Is this intentionally blank?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1857148</commentid>
    <comment_count>5</comment_count>
      <attachid>456221</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-03-31 21:52:13 -0700</bug_when>
    <thetext>Comment on attachment 456221
Patch

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

&gt;&gt; Source/WebGPU/WebGPU/Queue.mm:487
&gt;&gt; +        return;
&gt; 
&gt; Is this intentionally blank?

Yes. See the explanation in https://bugs.webkit.org/attachment.cgi?id=455884&amp;action=prettypatch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1857153</commentid>
    <comment_count>6</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-03-31 22:01:00 -0700</bug_when>
    <thetext>Committed r292201 (249104@trunk): &lt;https://commits.webkit.org/249104@trunk&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1857154</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-03-31 22:01:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/91145076&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455879</attachid>
            <date>2022-03-27 19:24:21 -0700</date>
            <delta_ts>2022-03-28 12:23:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>14070</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">Y29tbWl0IDliNTZmZWJhYWZjOWNmMjUxN2EzMmIzZjJmNmY1OTI1ZmIzZGM5OTkKQXV0aG9yOiBN
eWxlcyBDLiBNYXhmaWVsZCA8bW1heGZpZWxkQGFwcGxlLmNvbT4KRGF0ZTogICBTdW4gTWFyIDI3
IDE5OjIzOjUzIDIwMjIgLTA3MDAKCiAgICBQYXJ0IDYKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
R1BVL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJHUFUvQ2hhbmdlTG9nCmluZGV4IGFhNjUzYTE0ZTA4
Ni4uZmE0NzZhNWQyMWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViR1BVL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViR1BVL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIyLTAzLTI3ICBN
eWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkdQ
VV0gSW1wbGVtZW50IFF1ZXVlOjp3cml0ZVRleHR1cmUoKSBhY2NvcmRpbmcgdG8gdGhlIHNwZWMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODQzMgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgaW1w
bGVtZW50cyBRdWV1ZTo6d3JpdGVUZXh0dXJlKCkgYWNjb3JkaW5nIHRvIHRoZSBzcGVjLgorICAg
ICAgICBJdCByZS11c2VzIG1hbnkgb2YgdGhlIGhlbHBlciBmdW5jdGlvbnMgYWRkZWQgaW4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODQyOC4gVGhl
cmUgYXJlIGxpbmtzIGFuZCBxdW90ZXMgZnJvbQorICAgICAgICB0aGUgc3BlYyB3aGVyZSBhcHBy
b3ByaWF0ZS4KKworICAgICAgICAqIFdlYkdQVS9RdWV1ZS5tbToKKyAgICAgICAgKFdlYkdQVTo6
UXVldWU6OndyaXRlQnVmZmVyKToKKyAgICAgICAgKFdlYkdQVTo6dmFsaWRhdGVXcml0ZVRleHR1
cmUpOgorICAgICAgICAoV2ViR1BVOjpRdWV1ZTo6d3JpdGVUZXh0dXJlKToKKwogMjAyMi0wMy0y
NyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIFtX
ZWJHUFVdIEltcGxlbWVudCBDb21tYW5kRW5jb2Rlcjo6Y29weVRleHR1cmVUb1RleHR1cmUoKSBh
Y2NvcmRpbmcgdG8gdGhlIHNwZWMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1F1
ZXVlLm1tIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvUXVldWUubW0KaW5kZXggMGQxYjM5YTg0ZjY0
Li4yMGVmOWNmZjM4NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1F1ZXVlLm1t
CisrKyBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1F1ZXVlLm1tCkBAIC0zMCw2ICszMCw3IEBACiAj
aW1wb3J0ICJCdWZmZXIuaCIKICNpbXBvcnQgIkNvbW1hbmRCdWZmZXIuaCIKICNpbXBvcnQgIkRl
dmljZS5oIgorI2ltcG9ydCAiVGV4dHVyZS5oIgogCiBuYW1lc3BhY2UgV2ViR1BVIHsKIApAQCAt
MjM2LDE5ICsyMzcsMjU1IEBAIHZvaWQgUXVldWU6OndyaXRlQnVmZmVyKGNvbnN0IEJ1ZmZlciYg
YnVmZmVyLCB1aW50NjRfdCBidWZmZXJPZmZzZXQsIGNvbnN0IHZvaWQqCiAKICAgICBlbnN1cmVC
bGl0Q29tbWFuZEVuY29kZXIoKTsKICAgICAvLyBGSVhNRShQRVJGT1JNQU5DRSk6IFN1YmFsbG9j
YXRlLCBzbyB0aGUgY29tbW9uIGNhc2UgZG9lc24ndCBuZWVkIHRvIGhpdCB0aGUga2VybmVsLgor
ICAgIC8vIEZJWE1FKFBFUkZPUk1BTkNFKTogU2hvdWxkIHRoaXMgdGVtcG9yYXJ5IGJ1ZmZlciBy
ZWFsbHkgYmUgc2hhcmVkPwogICAgIGlkPE1UTEJ1ZmZlcj4gdGVtcG9yYXJ5QnVmZmVyID0gW21f
ZGV2aWNlLmRldmljZSgpIG5ld0J1ZmZlcldpdGhCeXRlczpkYXRhIGxlbmd0aDpzdGF0aWNfY2Fz
dDxOU1VJbnRlZ2VyPihzaXplKSBvcHRpb25zOk1UTFJlc291cmNlU3RvcmFnZU1vZGVTaGFyZWRd
OwogICAgIGlmICghdGVtcG9yYXJ5QnVmZmVyKQogICAgICAgICByZXR1cm47Ci0gICAgW21fYmxp
dENvbW1hbmRFbmNvZGVyIGNvcHlGcm9tQnVmZmVyOnRlbXBvcmFyeUJ1ZmZlciBzb3VyY2VPZmZz
ZXQ6MCB0b0J1ZmZlcjpidWZmZXIuYnVmZmVyKCkgZGVzdGluYXRpb25PZmZzZXQ6c3RhdGljX2Nh
c3Q8TlNVSW50ZWdlcj4oYnVmZmVyT2Zmc2V0KSBzaXplOnN0YXRpY19jYXN0PE5TVUludGVnZXI+
KHNpemUpXTsKKyAgICBbbV9ibGl0Q29tbWFuZEVuY29kZXIKKyAgICAgICAgY29weUZyb21CdWZm
ZXI6dGVtcG9yYXJ5QnVmZmVyCisgICAgICAgIHNvdXJjZU9mZnNldDowCisgICAgICAgIHRvQnVm
ZmVyOmJ1ZmZlci5idWZmZXIoKQorICAgICAgICBkZXN0aW5hdGlvbk9mZnNldDpzdGF0aWNfY2Fz
dDxOU1VJbnRlZ2VyPihidWZmZXJPZmZzZXQpCisgICAgICAgIHNpemU6c3RhdGljX2Nhc3Q8TlNV
SW50ZWdlcj4oc2l6ZSldOwogfQogCi12b2lkIFF1ZXVlOjp3cml0ZVRleHR1cmUoY29uc3QgV0dQ
VUltYWdlQ29weVRleHR1cmUmIGRlc3RpbmF0aW9uLCBjb25zdCB2b2lkKiBkYXRhLCBzaXplX3Qg
ZGF0YVNpemUsIGNvbnN0IFdHUFVUZXh0dXJlRGF0YUxheW91dCYgZGF0YUxheW91dCwgY29uc3Qg
V0dQVUV4dGVudDNEJiB3cml0ZVNpemUpCitzdGF0aWMgYm9vbCB2YWxpZGF0ZVdyaXRlVGV4dHVy
ZShjb25zdCBXR1BVSW1hZ2VDb3B5VGV4dHVyZSYgZGVzdGluYXRpb24sIGNvbnN0IFdHUFVUZXh0
dXJlRGF0YUxheW91dCYgZGF0YUxheW91dCwgY29uc3QgV0dQVUV4dGVudDNEJiBzaXplLCBzaXpl
X3QgZGF0YUJ5dGVTaXplLCBjb25zdCBXR1BVVGV4dHVyZURlc2NyaXB0b3ImIHRleHR1cmVEZXNj
KQogewotICAgIFVOVVNFRF9QQVJBTShkZXN0aW5hdGlvbik7Ci0gICAgVU5VU0VEX1BBUkFNKGRh
dGEpOwotICAgIFVOVVNFRF9QQVJBTShkYXRhU2l6ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGRhdGFM
YXlvdXQpOwotICAgIFVOVVNFRF9QQVJBTSh3cml0ZVNpemUpOworICAgIC8vICJ2YWxpZGF0aW5n
IEdQVUltYWdlQ29weVRleHR1cmUoZGVzdGluYXRpb24sIHNpemUpIHJldHVybnMgdHJ1ZS4iCisg
ICAgaWYgKCFUZXh0dXJlOjp2YWxpZGF0ZUltYWdlQ29weVRleHR1cmUoZGVzdGluYXRpb24sIHNp
emUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyAidGV4dHVyZURlc2MudXNhZ2Ug
aW5jbHVkZXMgQ09QWV9EU1QuIgorICAgIGlmICghKHRleHR1cmVEZXNjLnVzYWdlICYgV0dQVVRl
eHR1cmVVc2FnZV9Db3B5RHN0KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gInRl
eHR1cmVEZXNjLnNhbXBsZUNvdW50IGlzIDEuIgorICAgIGlmICh0ZXh0dXJlRGVzYy5zYW1wbGVD
b3VudCAhPSAxKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyAidmFsaWRhdGluZyB0
ZXh0dXJlIGNvcHkgcmFuZ2UoZGVzdGluYXRpb24sIHNpemUpIHJldHVybiB0cnVlLiIKKyAgICBp
ZiAoIVRleHR1cmU6OnZhbGlkYXRlVGV4dHVyZUNvcHlSYW5nZShkZXN0aW5hdGlvbiwgc2l6ZSkp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIC8vICJkZXN0aW5hdGlvbi5hc3BlY3QgbXVz
dCByZWZlciB0byBhIHNpbmdsZSBhc3BlY3Qgb2YgdGV4dHVyZURlc2MuZm9ybWF0LiIKKyAgICBp
ZiAoIVRleHR1cmU6OnJlZmVyc1RvU2luZ2xlQXNwZWN0KHRleHR1cmVEZXNjLmZvcm1hdCwgZGVz
dGluYXRpb24uYXNwZWN0KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gIlRoYXQg
YXNwZWN0IG11c3QgYmUgYSB2YWxpZCBpbWFnZSBjb3B5IGRlc3RpbmF0aW9uIGFjY29yZGluZyB0
byDCp+KArzI1LjEuMiBEZXB0aC1zdGVuY2lsIGZvcm1hdHMuIgorICAgIGlmICghVGV4dHVyZTo6
aXNWYWxpZEltYWdlQ29weURlc3RpbmF0aW9uKHRleHR1cmVEZXNjLmZvcm1hdCwgZGVzdGluYXRp
b24uYXNwZWN0KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gIkxldCBhc3BlY3RT
cGVjaWZpY0Zvcm1hdCA9IHRleHR1cmVEZXNjLmZvcm1hdC4iCisgICAgYXV0byBhc3BlY3RTcGVj
aWZpY0Zvcm1hdCA9IHRleHR1cmVEZXNjLmZvcm1hdDsKKworICAgIC8vICJJZiB0ZXh0dXJlRGVz
Yy5mb3JtYXQgaXMgYSBkZXB0aC1vci1zdGVuY2lsIGZvcm1hdDoiCisgICAgaWYgKFRleHR1cmU6
OmlzRGVwdGhPclN0ZW5jaWxGb3JtYXQodGV4dHVyZURlc2MuZm9ybWF0KSkgeworICAgICAgICAv
LyAiU2V0IGFzcGVjdFNwZWNpZmljRm9ybWF0IHRvIHRoZSBhc3BlY3Qtc3BlY2lmaWMgZm9ybWF0
IG9mIHRleHR1cmVEZXNjLmZvcm1hdCBhY2NvcmRpbmcgdG8gwqfigK8yNS4xLjIgRGVwdGgtc3Rl
bmNpbCBmb3JtYXRzLiIKKyAgICAgICAgYXNwZWN0U3BlY2lmaWNGb3JtYXQgPSBUZXh0dXJlOjph
c3BlY3RTcGVjaWZpY0Zvcm1hdCh0ZXh0dXJlRGVzYy5mb3JtYXQsIGRlc3RpbmF0aW9uLmFzcGVj
dCk7CisgICAgfQorCisgICAgLy8gInZhbGlkYXRpbmcgbGluZWFyIHRleHR1cmUgZGF0YShkYXRh
TGF5b3V0LCBkYXRhQnl0ZVNpemUsIGFzcGVjdFNwZWNpZmljRm9ybWF0LCBzaXplKSBzdWNjZWVk
cy4iCisgICAgaWYgKCFUZXh0dXJlOjp2YWxpZGF0ZUxpbmVhclRleHR1cmVEYXRhKGRhdGFMYXlv
dXQsIGRhdGFCeXRlU2l6ZSwgYXNwZWN0U3BlY2lmaWNGb3JtYXQsIHNpemUpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBRdWV1ZTo6d3JpdGVU
ZXh0dXJlKGNvbnN0IFdHUFVJbWFnZUNvcHlUZXh0dXJlJiBkZXN0aW5hdGlvbiwgY29uc3Qgdm9p
ZCogZGF0YSwgc2l6ZV90IGRhdGFTaXplLCBjb25zdCBXR1BVVGV4dHVyZURhdGFMYXlvdXQmIGRh
dGFMYXlvdXQsIGNvbnN0IFdHUFVFeHRlbnQzRCYgc2l6ZSkKK3sKKyAgICBpZiAoZGVzdGluYXRp
b24ubmV4dEluQ2hhaW4gfHwgZGF0YUxheW91dC5uZXh0SW5DaGFpbikKKyAgICAgICAgcmV0dXJu
OworCisgICAgLy8gZmlsZTovLy9Vc2Vycy9tbWF4ZmllbGQvc3JjL0dQVVdlYi9zcGVjL2luZGV4
Lmh0bWwjZG9tLWdwdXF1ZXVlLXdyaXRldGV4dHVyZQorCisgICAgLy8gIkxldCBkYXRhQnl0ZXMg
YmUgYSBjb3B5IG9mIHRoZSBieXRlcyBoZWxkIGJ5IHRoZSBidWZmZXIgc291cmNlIGRhdGEuIgor
ICAgIC8vICJMZXQgZGF0YUJ5dGVTaXplIGJlIHRoZSBudW1iZXIgb2YgYnl0ZXMgaW4gZGF0YUJ5
dGVzLiIKKyAgICBhdXRvIGRhdGFCeXRlU2l6ZSA9IGRhdGFTaXplOworCisgICAgLy8gIkxldCB0
ZXh0dXJlRGVzYyBiZSBkZXN0aW5hdGlvbi50ZXh0dXJlLltbZGVzY3JpcHRvcl1dLiIKKyAgICBj
b25zdCBhdXRvJiB0ZXh0dXJlRGVzYyA9IGZyb21BUEkoZGVzdGluYXRpb24udGV4dHVyZSkuZGVz
Y3JpcHRvcigpOworCisgICAgLy8gIkxldCBjb250ZW50cyBiZSB0aGUgY29udGVudHMgb2YgdGhl
IGltYWdlcyBzZWVuIGJ5IHZpZXdpbmcgZGF0YUJ5dGVzIHdpdGggZGF0YUxheW91dCBhbmQgc2l6
ZS4iCisKKyAgICAvLyAiSWYgYW55IG9mIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgdW5z
YXRpc2ZpZWQiCisgICAgaWYgKCF2YWxpZGF0ZVdyaXRlVGV4dHVyZShkZXN0aW5hdGlvbiwgZGF0
YUxheW91dCwgc2l6ZSwgZGF0YUJ5dGVTaXplLCB0ZXh0dXJlRGVzYykpIHsKKyAgICAgICAgLy8g
ImdlbmVyYXRlIGEgdmFsaWRhdGlvbiBlcnJvciBhbmQgc3RvcC4iCisgICAgICAgIG1fZGV2aWNl
LmdlbmVyYXRlQVZhbGlkYXRpb25FcnJvcigiVmFsaWRhdGlvbiBmYWlsdXJlLiJfcyk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyAiV3JpdGUgY29udGVudHMgaW50byBkZXN0aW5h
dGlvbi4iCisgICAgaWYgKCFkYXRhU2l6ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgTlNVSW50
ZWdlciBieXRlc1BlclJvdyA9IGRhdGFMYXlvdXQuYnl0ZXNQZXJSb3c7CisKKyAgICAvLyBGSVhN
RTogVXNlIGNoZWNrZWQgYXJpdGhtZXRpYy4KKyAgICBOU1VJbnRlZ2VyIGJ5dGVzUGVySW1hZ2Ug
PSBkYXRhTGF5b3V0LmJ5dGVzUGVyUm93ICogZGF0YUxheW91dC5yb3dzUGVySW1hZ2U7CisKKyAg
ICBNVExCbGl0T3B0aW9uIG9wdGlvbnMgPSBNVExCbGl0T3B0aW9uTm9uZTsKKyAgICBzd2l0Y2gg
KGRlc3RpbmF0aW9uLmFzcGVjdCkgeworICAgIGNhc2UgV0dQVVRleHR1cmVBc3BlY3RfQWxsOgor
ICAgICAgICBvcHRpb25zID0gTVRMQmxpdE9wdGlvbk5vbmU7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgV0dQVVRleHR1cmVBc3BlY3RfU3RlbmNpbE9ubHk6CisgICAgICAgIG9wdGlvbnMgPSBN
VExCbGl0T3B0aW9uU3RlbmNpbEZyb21EZXB0aFN0ZW5jaWw7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgV0dQVVRleHR1cmVBc3BlY3RfRGVwdGhPbmx5OgorICAgICAgICBvcHRpb25zID0gTVRM
QmxpdE9wdGlvbkRlcHRoRnJvbURlcHRoU3RlbmNpbDsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBXR1BVVGV4dHVyZUFzcGVjdF9Gb3JjZTMyOgorICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgLy8gRklYTUUoUEVSRk9STUFOQ0UpOiBJbnN0ZWFkIG9mIGNoZWNraW5nIHdoZXRoZXIgb3Ig
bm90IHRoZSB3aG9sZSBxdWV1ZSBpcyBpZGxlLAorICAgIC8vIHdlIGNvdWxkIGRldGVjdCB3aGV0
aGVyIHRoaXMgc3BlY2lmaWMgcmVzb3VyY2UgaXMgaWRsZSwgaWYgd2UgdHJhY2tlZCBldmVyeSBy
ZXNvdXJjZS4KKyAgICBpZiAoaXNJZGxlKCkgJiYgb3B0aW9ucyA9PSBNVExCbGl0T3B0aW9uTm9u
ZSkgeworICAgICAgICBzd2l0Y2ggKGZyb21BUEkoZGVzdGluYXRpb24udGV4dHVyZSkudGV4dHVy
ZSgpLnN0b3JhZ2VNb2RlKSB7CisgICAgICAgIGNhc2UgTVRMU3RvcmFnZU1vZGVTaGFyZWQ6Cisj
aWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShNQUNDQVRBTFlTVCkKKyAgICAgICAgY2FzZSBN
VExTdG9yYWdlTW9kZU1hbmFnZWQ6CisjZW5kaWYKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICBzd2l0Y2ggKHRleHR1cmVEZXNjLmRpbWVuc2lvbikgeworICAgICAgICAgICAgICAgIGNh
c2UgV0dQVVRleHR1cmVEaW1lbnNpb25fMUQ6IHsKKyAgICAgICAgICAgICAgICAgICAgYXV0byBy
ZWdpb24gPSBNVExSZWdpb25NYWtlMUQoZGVzdGluYXRpb24ub3JpZ2luLngsIHNpemUud2lkdGgp
OworICAgICAgICAgICAgICAgICAgICBmb3IgKHVpbnQzMl90IGxheWVyID0gMDsgbGF5ZXIgPCBz
aXplLmRlcHRoT3JBcnJheUxheWVyczsgKytsYXllcikgeworICAgICAgICAgICAgICAgICAgICAg
ICAgLy8gRklYTUU6IFVzZSBjaGVja2VkIGFyaXRobWV0aWMuCisgICAgICAgICAgICAgICAgICAg
ICAgICBOU1VJbnRlZ2VyIHNvdXJjZU9mZnNldCA9IGRhdGFMYXlvdXQub2Zmc2V0ICsgbGF5ZXIg
KiBieXRlc1BlckltYWdlOworICAgICAgICAgICAgICAgICAgICAgICAgTlNVSW50ZWdlciBkZXN0
aW5hdGlvblNsaWNlID0gZGVzdGluYXRpb24ub3JpZ2luLnogKyBsYXllcjsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIFtmcm9tQVBJKGRlc3RpbmF0aW9uLnRleHR1cmUpLnRleHR1cmUoKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2VSZWdpb246cmVnaW9uCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbWlwbWFwTGV2ZWw6ZGVzdGluYXRpb24ubWlwTGV2ZWwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzbGljZTpkZXN0aW5hdGlvblNsaWNlCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgd2l0aEJ5dGVzOnN0YXRpY19jYXN0PGNvbnN0IGNoYXIqPihkYXRh
KSArIHNvdXJjZU9mZnNldAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVzUGVyUm93
OmJ5dGVzUGVyUm93CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZXNQZXJJbWFnZTpi
eXRlc1BlckltYWdlXTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2FzZSBXR1BVVGV4
dHVyZURpbWVuc2lvbl8yRDogeworICAgICAgICAgICAgICAgICAgICBhdXRvIHJlZ2lvbiA9IE1U
TFJlZ2lvbk1ha2UyRChkZXN0aW5hdGlvbi5vcmlnaW4ueCwgZGVzdGluYXRpb24ub3JpZ2luLnks
IHNpemUud2lkdGgsIHNpemUuaGVpZ2h0KTsKKyAgICAgICAgICAgICAgICAgICAgZm9yICh1aW50
MzJfdCBsYXllciA9IDA7IGxheWVyIDwgc2l6ZS5kZXB0aE9yQXJyYXlMYXllcnM7ICsrbGF5ZXIp
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBVc2UgY2hlY2tlZCBhcml0aG1l
dGljLgorICAgICAgICAgICAgICAgICAgICAgICAgTlNVSW50ZWdlciBzb3VyY2VPZmZzZXQgPSBk
YXRhTGF5b3V0Lm9mZnNldCArIGxheWVyICogYnl0ZXNQZXJJbWFnZTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIE5TVUludGVnZXIgZGVzdGluYXRpb25TbGljZSA9IGRlc3RpbmF0aW9uLm9yaWdp
bi56ICsgbGF5ZXI7CisgICAgICAgICAgICAgICAgICAgICAgICBbZnJvbUFQSShkZXN0aW5hdGlv
bi50ZXh0dXJlKS50ZXh0dXJlKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsYWNl
UmVnaW9uOnJlZ2lvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pcG1hcExldmVsOmRl
c3RpbmF0aW9uLm1pcExldmVsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xpY2U6ZGVz
dGluYXRpb25TbGljZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhCeXRlczpzdGF0
aWNfY2FzdDxjb25zdCBjaGFyKj4oZGF0YSkgKyBzb3VyY2VPZmZzZXQKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBieXRlc1BlclJvdzpieXRlc1BlclJvdworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGJ5dGVzUGVySW1hZ2U6Ynl0ZXNQZXJJbWFnZV07CisgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIGNhc2UgV0dQVVRleHR1cmVEaW1lbnNpb25fM0Q6IHsKKyAgICAgICAgICAg
ICAgICAgICAgYXV0byByZWdpb24gPSBNVExSZWdpb25NYWtlM0QoZGVzdGluYXRpb24ub3JpZ2lu
LngsIGRlc3RpbmF0aW9uLm9yaWdpbi55LCBkZXN0aW5hdGlvbi5vcmlnaW4ueiwgc2l6ZS53aWR0
aCwgc2l6ZS5oZWlnaHQsIHNpemUuZGVwdGhPckFycmF5TGF5ZXJzKTsKKyAgICAgICAgICAgICAg
ICAgICAgTlNVSW50ZWdlciBzb3VyY2VPZmZzZXQgPSBkYXRhTGF5b3V0Lm9mZnNldDsKKyAgICAg
ICAgICAgICAgICAgICAgW2Zyb21BUEkoZGVzdGluYXRpb24udGV4dHVyZSkudGV4dHVyZSgpCisg
ICAgICAgICAgICAgICAgICAgICAgICByZXBsYWNlUmVnaW9uOnJlZ2lvbgorICAgICAgICAgICAg
ICAgICAgICAgICAgbWlwbWFwTGV2ZWw6ZGVzdGluYXRpb24ubWlwTGV2ZWwKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHNsaWNlOjAKKyAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhCeXRlczpz
dGF0aWNfY2FzdDxjb25zdCBjaGFyKj4oZGF0YSkgKyBzb3VyY2VPZmZzZXQKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGJ5dGVzUGVyUm93OmJ5dGVzUGVyUm93CisgICAgICAgICAgICAgICAgICAg
ICAgICBieXRlc1BlckltYWdlOmJ5dGVzUGVySW1hZ2VdOworICAgICAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2FzZSBXR1BVVGV4dHVy
ZURpbWVuc2lvbl9Gb3JjZTMyOgorICAgICAgICAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIGNhc2UgTVRMU3Rv
cmFnZU1vZGVQcml2YXRlOgorICAgICAgICAgICAgLy8gVGhlIG9ubHkgd2F5IHRvIGdldCBkYXRh
IGludG8gYSBwcml2YXRlIHJlc291cmNlIGlzIHRvIHRlbGwgdGhlIEdQVSB0byBjb3B5IGl0IGlu
LgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0K
KworICAgIGVuc3VyZUJsaXRDb21tYW5kRW5jb2RlcigpOworICAgIC8vIEZJWE1FKFBFUkZPUk1B
TkNFKTogU3ViYWxsb2NhdGUsIHNvIHRoZSBjb21tb24gY2FzZSBkb2Vzbid0IG5lZWQgdG8gaGl0
IHRoZSBrZXJuZWwuCisgICAgLy8gRklYTUUoUEVSRk9STUFOQ0UpOiBTaG91bGQgdGhpcyB0ZW1w
b3JhcnkgYnVmZmVyIHJlYWxseSBiZSBzaGFyZWQ/CisgICAgaWQ8TVRMQnVmZmVyPiB0ZW1wb3Jh
cnlCdWZmZXIgPSBbbV9kZXZpY2UuZGV2aWNlKCkgbmV3QnVmZmVyV2l0aEJ5dGVzOnN0YXRpY19j
YXN0PGNvbnN0IGNoYXIqPihkYXRhKSArIGRhdGFMYXlvdXQub2Zmc2V0IGxlbmd0aDpzdGF0aWNf
Y2FzdDxOU1VJbnRlZ2VyPihkYXRhQnl0ZVNpemUpIG9wdGlvbnM6TVRMUmVzb3VyY2VTdG9yYWdl
TW9kZVNoYXJlZF07CisgICAgaWYgKCF0ZW1wb3JhcnlCdWZmZXIpCisgICAgICAgIHJldHVybjsK
KworICAgIGF1dG8gbG9naWNhbFNpemUgPSBmcm9tQVBJKGRlc3RpbmF0aW9uLnRleHR1cmUpLmxv
Z2ljYWxUZXh0dXJlU3VicmVzb3VyY2VFeHRlbnQoZGVzdGluYXRpb24ubWlwTGV2ZWwpOworICAg
IGF1dG8gd2lkdGhGb3JNZXRhbCA9IHN0ZDo6bWluKHNpemUud2lkdGgsIGxvZ2ljYWxTaXplLndp
ZHRoKTsKKyAgICBhdXRvIGhlaWdodEZvck1ldGFsID0gc3RkOjptaW4oc2l6ZS5oZWlnaHQsIGxv
Z2ljYWxTaXplLmhlaWdodCk7CisgICAgYXV0byBkZXB0aEZvck1ldGFsID0gc3RkOjptaW4oc2l6
ZS5kZXB0aE9yQXJyYXlMYXllcnMsIGxvZ2ljYWxTaXplLmRlcHRoT3JBcnJheUxheWVycyk7CisK
KyAgICBzd2l0Y2ggKHRleHR1cmVEZXNjLmRpbWVuc2lvbikgeworICAgIGNhc2UgV0dQVVRleHR1
cmVEaW1lbnNpb25fMUQ6IHsKKyAgICAgICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29t
L2RvY3VtZW50YXRpb24vbWV0YWwvbXRsYmxpdGNvbW1hbmRlbmNvZGVyLzE0MDA3NzEtY29weWZy
b21idWZmZXI/bGFuZ3VhZ2U9b2JqYworICAgICAgICAvLyAiV2hlbiB5b3UgY29weSB0byBhIDFE
IHRleHR1cmUsIGhlaWdodCBhbmQgZGVwdGggbXVzdCBiZSAxLiIKKyAgICAgICAgYXV0byBzb3Vy
Y2VTaXplID0gTVRMU2l6ZU1ha2Uod2lkdGhGb3JNZXRhbCwgMSwgMSk7CisgICAgICAgIGF1dG8g
ZGVzdGluYXRpb25PcmlnaW4gPSBNVExPcmlnaW5NYWtlKGRlc3RpbmF0aW9uLm9yaWdpbi54LCAx
LCAxKTsKKyAgICAgICAgZm9yICh1aW50MzJfdCBsYXllciA9IDA7IGxheWVyIDwgc2l6ZS5kZXB0
aE9yQXJyYXlMYXllcnM7ICsrbGF5ZXIpIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBVc2UgY2hl
Y2tlZCBhcml0aG1ldGljLgorICAgICAgICAgICAgTlNVSW50ZWdlciBzb3VyY2VPZmZzZXQgPSBs
YXllciAqIGJ5dGVzUGVySW1hZ2U7CisgICAgICAgICAgICBOU1VJbnRlZ2VyIGRlc3RpbmF0aW9u
U2xpY2UgPSBkZXN0aW5hdGlvbi5vcmlnaW4ueiArIGxheWVyOworICAgICAgICAgICAgW21fYmxp
dENvbW1hbmRFbmNvZGVyCisgICAgICAgICAgICAgICAgY29weUZyb21CdWZmZXI6dGVtcG9yYXJ5
QnVmZmVyCisgICAgICAgICAgICAgICAgc291cmNlT2Zmc2V0OnNvdXJjZU9mZnNldAorICAgICAg
ICAgICAgICAgIHNvdXJjZUJ5dGVzUGVyUm93OmJ5dGVzUGVyUm93CisgICAgICAgICAgICAgICAg
c291cmNlQnl0ZXNQZXJJbWFnZTpieXRlc1BlckltYWdlCisgICAgICAgICAgICAgICAgc291cmNl
U2l6ZTpzb3VyY2VTaXplCisgICAgICAgICAgICAgICAgdG9UZXh0dXJlOmZyb21BUEkoZGVzdGlu
YXRpb24udGV4dHVyZSkudGV4dHVyZSgpCisgICAgICAgICAgICAgICAgZGVzdGluYXRpb25TbGlj
ZTpkZXN0aW5hdGlvblNsaWNlCisgICAgICAgICAgICAgICAgZGVzdGluYXRpb25MZXZlbDpkZXN0
aW5hdGlvbi5taXBMZXZlbAorICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uT3JpZ2luOmRlc3Rp
bmF0aW9uT3JpZ2luCisgICAgICAgICAgICAgICAgb3B0aW9uczpvcHRpb25zXTsKKyAgICAgICAg
fQorICAgICAgICBicmVhazsKKyAgICB9CisgICAgY2FzZSBXR1BVVGV4dHVyZURpbWVuc2lvbl8y
RDogeworICAgICAgICAvLyBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlv
bi9tZXRhbC9tdGxibGl0Y29tbWFuZGVuY29kZXIvMTQwMDc3MS1jb3B5ZnJvbWJ1ZmZlcj9sYW5n
dWFnZT1vYmpjCisgICAgICAgIC8vICJXaGVuIHlvdSBjb3B5IHRvIGEgMkQgdGV4dHVyZSwgZGVw
dGggbXVzdCBiZSAxLiIKKyAgICAgICAgYXV0byBzb3VyY2VTaXplID0gTVRMU2l6ZU1ha2Uod2lk
dGhGb3JNZXRhbCwgaGVpZ2h0Rm9yTWV0YWwsIDEpOworICAgICAgICBhdXRvIGRlc3RpbmF0aW9u
T3JpZ2luID0gTVRMT3JpZ2luTWFrZShkZXN0aW5hdGlvbi5vcmlnaW4ueCwgZGVzdGluYXRpb24u
b3JpZ2luLnksIDEpOworICAgICAgICBmb3IgKHVpbnQzMl90IGxheWVyID0gMDsgbGF5ZXIgPCBz
aXplLmRlcHRoT3JBcnJheUxheWVyczsgKytsYXllcikgeworICAgICAgICAgICAgLy8gRklYTUU6
IFVzZSBjaGVja2VkIGFyaXRobWV0aWMuCisgICAgICAgICAgICBOU1VJbnRlZ2VyIHNvdXJjZU9m
ZnNldCA9IGxheWVyICogYnl0ZXNQZXJJbWFnZTsKKyAgICAgICAgICAgIE5TVUludGVnZXIgZGVz
dGluYXRpb25TbGljZSA9IGRlc3RpbmF0aW9uLm9yaWdpbi56ICsgbGF5ZXI7CisgICAgICAgICAg
ICBbbV9ibGl0Q29tbWFuZEVuY29kZXIKKyAgICAgICAgICAgICAgICBjb3B5RnJvbUJ1ZmZlcjp0
ZW1wb3JhcnlCdWZmZXIKKyAgICAgICAgICAgICAgICBzb3VyY2VPZmZzZXQ6c291cmNlT2Zmc2V0
CisgICAgICAgICAgICAgICAgc291cmNlQnl0ZXNQZXJSb3c6Ynl0ZXNQZXJSb3cKKyAgICAgICAg
ICAgICAgICBzb3VyY2VCeXRlc1BlckltYWdlOmJ5dGVzUGVySW1hZ2UKKyAgICAgICAgICAgICAg
ICBzb3VyY2VTaXplOnNvdXJjZVNpemUKKyAgICAgICAgICAgICAgICB0b1RleHR1cmU6ZnJvbUFQ
SShkZXN0aW5hdGlvbi50ZXh0dXJlKS50ZXh0dXJlKCkKKyAgICAgICAgICAgICAgICBkZXN0aW5h
dGlvblNsaWNlOmRlc3RpbmF0aW9uU2xpY2UKKyAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbkxl
dmVsOmRlc3RpbmF0aW9uLm1pcExldmVsCisgICAgICAgICAgICAgICAgZGVzdGluYXRpb25Pcmln
aW46ZGVzdGluYXRpb25PcmlnaW4KKyAgICAgICAgICAgICAgICBvcHRpb25zOm9wdGlvbnNdOwor
ICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIFdHUFVUZXh0dXJlRGlt
ZW5zaW9uXzNEOiB7CisgICAgICAgIGF1dG8gc291cmNlU2l6ZSA9IE1UTFNpemVNYWtlKHdpZHRo
Rm9yTWV0YWwsIGhlaWdodEZvck1ldGFsLCBkZXB0aEZvck1ldGFsKTsKKyAgICAgICAgYXV0byBk
ZXN0aW5hdGlvbk9yaWdpbiA9IE1UTE9yaWdpbk1ha2UoZGVzdGluYXRpb24ub3JpZ2luLngsIGRl
c3RpbmF0aW9uLm9yaWdpbi55LCBkZXN0aW5hdGlvbi5vcmlnaW4ueik7CisgICAgICAgIE5TVUlu
dGVnZXIgc291cmNlT2Zmc2V0ID0gMDsKKyAgICAgICAgW21fYmxpdENvbW1hbmRFbmNvZGVyCisg
ICAgICAgICAgICBjb3B5RnJvbUJ1ZmZlcjp0ZW1wb3JhcnlCdWZmZXIKKyAgICAgICAgICAgIHNv
dXJjZU9mZnNldDpzb3VyY2VPZmZzZXQKKyAgICAgICAgICAgIHNvdXJjZUJ5dGVzUGVyUm93OmJ5
dGVzUGVyUm93CisgICAgICAgICAgICBzb3VyY2VCeXRlc1BlckltYWdlOmJ5dGVzUGVySW1hZ2UK
KyAgICAgICAgICAgIHNvdXJjZVNpemU6c291cmNlU2l6ZQorICAgICAgICAgICAgdG9UZXh0dXJl
OmZyb21BUEkoZGVzdGluYXRpb24udGV4dHVyZSkudGV4dHVyZSgpCisgICAgICAgICAgICBkZXN0
aW5hdGlvblNsaWNlOjAKKyAgICAgICAgICAgIGRlc3RpbmF0aW9uTGV2ZWw6ZGVzdGluYXRpb24u
bWlwTGV2ZWwKKyAgICAgICAgICAgIGRlc3RpbmF0aW9uT3JpZ2luOmRlc3RpbmF0aW9uT3JpZ2lu
CisgICAgICAgICAgICBvcHRpb25zOm9wdGlvbnNdOworICAgICAgICBicmVhazsKKyAgICB9Cisg
ICAgY2FzZSBXR1BVVGV4dHVyZURpbWVuc2lvbl9Gb3JjZTMyOgorICAgICAgICByZXR1cm47Cisg
ICAgfQogfQogCiB2b2lkIFF1ZXVlOjpzZXRMYWJlbChTdHJpbmcmJiBsYWJlbCkK
</data>
<flag name="commit-queue"
          id="483998"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455942</attachid>
            <date>2022-03-28 12:23:52 -0700</date>
            <delta_ts>2022-03-31 02:00:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>14127</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">Y29tbWl0IDc5OGIyZTdlMWZmNzc1MGU3M2I3MTI4OWQ0Y2FkNjg1YmM3ZWUyY2EKQXV0aG9yOiBN
eWxlcyBDLiBNYXhmaWVsZCA8bW1heGZpZWxkQGFwcGxlLmNvbT4KRGF0ZTogICBNb24gTWFyIDI4
IDEyOjA4OjI0IDIwMjIgLTA3MDAKCiAgICBQYXJ0IDYKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
R1BVL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJHUFUvQ2hhbmdlTG9nCmluZGV4IGE1MDEzZjA1YzI5
ZS4uMGZhNWMzMjkxNDI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViR1BVL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViR1BVL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIyLTAzLTI4ICBN
eWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkdQ
VV0gSW1wbGVtZW50IFF1ZXVlOjp3cml0ZVRleHR1cmUoKSBhY2NvcmRpbmcgdG8gdGhlIHNwZWMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODQzMgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgaW1w
bGVtZW50cyBRdWV1ZTo6d3JpdGVUZXh0dXJlKCkgYWNjb3JkaW5nIHRvIHRoZSBzcGVjLgorICAg
ICAgICBJdCByZS11c2VzIG1hbnkgb2YgdGhlIGhlbHBlciBmdW5jdGlvbnMgYWRkZWQgaW4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODQyOC4gVGhl
cmUgYXJlIGxpbmtzIGFuZCBxdW90ZXMgZnJvbQorICAgICAgICB0aGUgc3BlYyB3aGVyZSBhcHBy
b3ByaWF0ZS4KKworICAgICAgICAqIFdlYkdQVS9RdWV1ZS5tbToKKyAgICAgICAgKFdlYkdQVTo6
UXVldWU6OndyaXRlQnVmZmVyKToKKyAgICAgICAgKFdlYkdQVTo6dmFsaWRhdGVXcml0ZVRleHR1
cmUpOgorICAgICAgICAoV2ViR1BVOjpRdWV1ZTo6d3JpdGVUZXh0dXJlKToKKwogMjAyMi0wMy0y
OCAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIFtX
ZWJHUFVdIEltcGxlbWVudCBDb21tYW5kRW5jb2Rlcjo6Y29weVRleHR1cmVUb1RleHR1cmUoKSBh
Y2NvcmRpbmcgdG8gdGhlIHNwZWMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1F1
ZXVlLm1tIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvUXVldWUubW0KaW5kZXggMGQxYjM5YTg0ZjY0
Li5mYjdiNDU2YjliYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1F1ZXVlLm1t
CisrKyBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1F1ZXVlLm1tCkBAIC0zMCw2ICszMCw3IEBACiAj
aW1wb3J0ICJCdWZmZXIuaCIKICNpbXBvcnQgIkNvbW1hbmRCdWZmZXIuaCIKICNpbXBvcnQgIkRl
dmljZS5oIgorI2ltcG9ydCAiVGV4dHVyZS5oIgogCiBuYW1lc3BhY2UgV2ViR1BVIHsKIApAQCAt
MjM2LDE5ICsyMzcsMjU1IEBAIHZvaWQgUXVldWU6OndyaXRlQnVmZmVyKGNvbnN0IEJ1ZmZlciYg
YnVmZmVyLCB1aW50NjRfdCBidWZmZXJPZmZzZXQsIGNvbnN0IHZvaWQqCiAKICAgICBlbnN1cmVC
bGl0Q29tbWFuZEVuY29kZXIoKTsKICAgICAvLyBGSVhNRShQRVJGT1JNQU5DRSk6IFN1YmFsbG9j
YXRlLCBzbyB0aGUgY29tbW9uIGNhc2UgZG9lc24ndCBuZWVkIHRvIGhpdCB0aGUga2VybmVsLgor
ICAgIC8vIEZJWE1FKFBFUkZPUk1BTkNFKTogU2hvdWxkIHRoaXMgdGVtcG9yYXJ5IGJ1ZmZlciBy
ZWFsbHkgYmUgc2hhcmVkPwogICAgIGlkPE1UTEJ1ZmZlcj4gdGVtcG9yYXJ5QnVmZmVyID0gW21f
ZGV2aWNlLmRldmljZSgpIG5ld0J1ZmZlcldpdGhCeXRlczpkYXRhIGxlbmd0aDpzdGF0aWNfY2Fz
dDxOU1VJbnRlZ2VyPihzaXplKSBvcHRpb25zOk1UTFJlc291cmNlU3RvcmFnZU1vZGVTaGFyZWRd
OwogICAgIGlmICghdGVtcG9yYXJ5QnVmZmVyKQogICAgICAgICByZXR1cm47Ci0gICAgW21fYmxp
dENvbW1hbmRFbmNvZGVyIGNvcHlGcm9tQnVmZmVyOnRlbXBvcmFyeUJ1ZmZlciBzb3VyY2VPZmZz
ZXQ6MCB0b0J1ZmZlcjpidWZmZXIuYnVmZmVyKCkgZGVzdGluYXRpb25PZmZzZXQ6c3RhdGljX2Nh
c3Q8TlNVSW50ZWdlcj4oYnVmZmVyT2Zmc2V0KSBzaXplOnN0YXRpY19jYXN0PE5TVUludGVnZXI+
KHNpemUpXTsKKyAgICBbbV9ibGl0Q29tbWFuZEVuY29kZXIKKyAgICAgICAgY29weUZyb21CdWZm
ZXI6dGVtcG9yYXJ5QnVmZmVyCisgICAgICAgIHNvdXJjZU9mZnNldDowCisgICAgICAgIHRvQnVm
ZmVyOmJ1ZmZlci5idWZmZXIoKQorICAgICAgICBkZXN0aW5hdGlvbk9mZnNldDpzdGF0aWNfY2Fz
dDxOU1VJbnRlZ2VyPihidWZmZXJPZmZzZXQpCisgICAgICAgIHNpemU6c3RhdGljX2Nhc3Q8TlNV
SW50ZWdlcj4oc2l6ZSldOwogfQogCi12b2lkIFF1ZXVlOjp3cml0ZVRleHR1cmUoY29uc3QgV0dQ
VUltYWdlQ29weVRleHR1cmUmIGRlc3RpbmF0aW9uLCBjb25zdCB2b2lkKiBkYXRhLCBzaXplX3Qg
ZGF0YVNpemUsIGNvbnN0IFdHUFVUZXh0dXJlRGF0YUxheW91dCYgZGF0YUxheW91dCwgY29uc3Qg
V0dQVUV4dGVudDNEJiB3cml0ZVNpemUpCitzdGF0aWMgYm9vbCB2YWxpZGF0ZVdyaXRlVGV4dHVy
ZShjb25zdCBXR1BVSW1hZ2VDb3B5VGV4dHVyZSYgZGVzdGluYXRpb24sIGNvbnN0IFdHUFVUZXh0
dXJlRGF0YUxheW91dCYgZGF0YUxheW91dCwgY29uc3QgV0dQVUV4dGVudDNEJiBzaXplLCBzaXpl
X3QgZGF0YUJ5dGVTaXplLCBjb25zdCBXR1BVVGV4dHVyZURlc2NyaXB0b3ImIHRleHR1cmVEZXNj
KQogewotICAgIFVOVVNFRF9QQVJBTShkZXN0aW5hdGlvbik7Ci0gICAgVU5VU0VEX1BBUkFNKGRh
dGEpOwotICAgIFVOVVNFRF9QQVJBTShkYXRhU2l6ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGRhdGFM
YXlvdXQpOwotICAgIFVOVVNFRF9QQVJBTSh3cml0ZVNpemUpOworICAgIC8vICJ2YWxpZGF0aW5n
IEdQVUltYWdlQ29weVRleHR1cmUoZGVzdGluYXRpb24sIHNpemUpIHJldHVybnMgdHJ1ZS4iCisg
ICAgaWYgKCFUZXh0dXJlOjp2YWxpZGF0ZUltYWdlQ29weVRleHR1cmUoZGVzdGluYXRpb24sIHNp
emUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyAidGV4dHVyZURlc2MudXNhZ2Ug
aW5jbHVkZXMgQ09QWV9EU1QuIgorICAgIGlmICghKHRleHR1cmVEZXNjLnVzYWdlICYgV0dQVVRl
eHR1cmVVc2FnZV9Db3B5RHN0KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gInRl
eHR1cmVEZXNjLnNhbXBsZUNvdW50IGlzIDEuIgorICAgIGlmICh0ZXh0dXJlRGVzYy5zYW1wbGVD
b3VudCAhPSAxKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyAidmFsaWRhdGluZyB0
ZXh0dXJlIGNvcHkgcmFuZ2UoZGVzdGluYXRpb24sIHNpemUpIHJldHVybiB0cnVlLiIKKyAgICBp
ZiAoIVRleHR1cmU6OnZhbGlkYXRlVGV4dHVyZUNvcHlSYW5nZShkZXN0aW5hdGlvbiwgc2l6ZSkp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIC8vICJkZXN0aW5hdGlvbi5hc3BlY3QgbXVz
dCByZWZlciB0byBhIHNpbmdsZSBhc3BlY3Qgb2YgdGV4dHVyZURlc2MuZm9ybWF0LiIKKyAgICBp
ZiAoIVRleHR1cmU6OnJlZmVyc1RvU2luZ2xlQXNwZWN0KHRleHR1cmVEZXNjLmZvcm1hdCwgZGVz
dGluYXRpb24uYXNwZWN0KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gIlRoYXQg
YXNwZWN0IG11c3QgYmUgYSB2YWxpZCBpbWFnZSBjb3B5IGRlc3RpbmF0aW9uIGFjY29yZGluZyB0
byDCp+KArzI1LjEuMiBEZXB0aC1zdGVuY2lsIGZvcm1hdHMuIgorICAgIGlmICghVGV4dHVyZTo6
aXNWYWxpZEltYWdlQ29weURlc3RpbmF0aW9uKHRleHR1cmVEZXNjLmZvcm1hdCwgZGVzdGluYXRp
b24uYXNwZWN0KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gIkxldCBhc3BlY3RT
cGVjaWZpY0Zvcm1hdCA9IHRleHR1cmVEZXNjLmZvcm1hdC4iCisgICAgYXV0byBhc3BlY3RTcGVj
aWZpY0Zvcm1hdCA9IHRleHR1cmVEZXNjLmZvcm1hdDsKKworICAgIC8vICJJZiB0ZXh0dXJlRGVz
Yy5mb3JtYXQgaXMgYSBkZXB0aC1vci1zdGVuY2lsIGZvcm1hdDoiCisgICAgaWYgKFRleHR1cmU6
OmlzRGVwdGhPclN0ZW5jaWxGb3JtYXQodGV4dHVyZURlc2MuZm9ybWF0KSkgeworICAgICAgICAv
LyAiU2V0IGFzcGVjdFNwZWNpZmljRm9ybWF0IHRvIHRoZSBhc3BlY3Qtc3BlY2lmaWMgZm9ybWF0
IG9mIHRleHR1cmVEZXNjLmZvcm1hdCBhY2NvcmRpbmcgdG8gwqfigK8yNS4xLjIgRGVwdGgtc3Rl
bmNpbCBmb3JtYXRzLiIKKyAgICAgICAgYXNwZWN0U3BlY2lmaWNGb3JtYXQgPSBUZXh0dXJlOjph
c3BlY3RTcGVjaWZpY0Zvcm1hdCh0ZXh0dXJlRGVzYy5mb3JtYXQsIGRlc3RpbmF0aW9uLmFzcGVj
dCk7CisgICAgfQorCisgICAgLy8gInZhbGlkYXRpbmcgbGluZWFyIHRleHR1cmUgZGF0YShkYXRh
TGF5b3V0LCBkYXRhQnl0ZVNpemUsIGFzcGVjdFNwZWNpZmljRm9ybWF0LCBzaXplKSBzdWNjZWVk
cy4iCisgICAgaWYgKCFUZXh0dXJlOjp2YWxpZGF0ZUxpbmVhclRleHR1cmVEYXRhKGRhdGFMYXlv
dXQsIGRhdGFCeXRlU2l6ZSwgYXNwZWN0U3BlY2lmaWNGb3JtYXQsIHNpemUpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBRdWV1ZTo6d3JpdGVU
ZXh0dXJlKGNvbnN0IFdHUFVJbWFnZUNvcHlUZXh0dXJlJiBkZXN0aW5hdGlvbiwgY29uc3Qgdm9p
ZCogZGF0YSwgc2l6ZV90IGRhdGFTaXplLCBjb25zdCBXR1BVVGV4dHVyZURhdGFMYXlvdXQmIGRh
dGFMYXlvdXQsIGNvbnN0IFdHUFVFeHRlbnQzRCYgc2l6ZSkKK3sKKyAgICBpZiAoZGVzdGluYXRp
b24ubmV4dEluQ2hhaW4gfHwgZGF0YUxheW91dC5uZXh0SW5DaGFpbikKKyAgICAgICAgcmV0dXJu
OworCisgICAgLy8gZmlsZTovLy9Vc2Vycy9tbWF4ZmllbGQvc3JjL0dQVVdlYi9zcGVjL2luZGV4
Lmh0bWwjZG9tLWdwdXF1ZXVlLXdyaXRldGV4dHVyZQorCisgICAgLy8gIkxldCBkYXRhQnl0ZXMg
YmUgYSBjb3B5IG9mIHRoZSBieXRlcyBoZWxkIGJ5IHRoZSBidWZmZXIgc291cmNlIGRhdGEuIgor
ICAgIC8vICJMZXQgZGF0YUJ5dGVTaXplIGJlIHRoZSBudW1iZXIgb2YgYnl0ZXMgaW4gZGF0YUJ5
dGVzLiIKKyAgICBhdXRvIGRhdGFCeXRlU2l6ZSA9IGRhdGFTaXplOworCisgICAgLy8gIkxldCB0
ZXh0dXJlRGVzYyBiZSBkZXN0aW5hdGlvbi50ZXh0dXJlLltbZGVzY3JpcHRvcl1dLiIKKyAgICBj
b25zdCBhdXRvJiB0ZXh0dXJlRGVzYyA9IGZyb21BUEkoZGVzdGluYXRpb24udGV4dHVyZSkuZGVz
Y3JpcHRvcigpOworCisgICAgLy8gIkxldCBjb250ZW50cyBiZSB0aGUgY29udGVudHMgb2YgdGhl
IGltYWdlcyBzZWVuIGJ5IHZpZXdpbmcgZGF0YUJ5dGVzIHdpdGggZGF0YUxheW91dCBhbmQgc2l6
ZS4iCisKKyAgICAvLyAiSWYgYW55IG9mIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgdW5z
YXRpc2ZpZWQiCisgICAgaWYgKCF2YWxpZGF0ZVdyaXRlVGV4dHVyZShkZXN0aW5hdGlvbiwgZGF0
YUxheW91dCwgc2l6ZSwgZGF0YUJ5dGVTaXplLCB0ZXh0dXJlRGVzYykpIHsKKyAgICAgICAgLy8g
ImdlbmVyYXRlIGEgdmFsaWRhdGlvbiBlcnJvciBhbmQgc3RvcC4iCisgICAgICAgIG1fZGV2aWNl
LmdlbmVyYXRlQVZhbGlkYXRpb25FcnJvcigiVmFsaWRhdGlvbiBmYWlsdXJlLiJfcyk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyAiV3JpdGUgY29udGVudHMgaW50byBkZXN0aW5h
dGlvbi4iCisgICAgaWYgKCFkYXRhU2l6ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgTlNVSW50
ZWdlciBieXRlc1BlclJvdyA9IGRhdGFMYXlvdXQuYnl0ZXNQZXJSb3c7CisKKyAgICAvLyBGSVhN
RTogVXNlIGNoZWNrZWQgYXJpdGhtZXRpYy4KKyAgICBOU1VJbnRlZ2VyIGJ5dGVzUGVySW1hZ2Ug
PSBkYXRhTGF5b3V0LmJ5dGVzUGVyUm93ICogZGF0YUxheW91dC5yb3dzUGVySW1hZ2U7CisKKyAg
ICBNVExCbGl0T3B0aW9uIG9wdGlvbnMgPSBNVExCbGl0T3B0aW9uTm9uZTsKKyAgICBzd2l0Y2gg
KGRlc3RpbmF0aW9uLmFzcGVjdCkgeworICAgIGNhc2UgV0dQVVRleHR1cmVBc3BlY3RfQWxsOgor
ICAgICAgICBvcHRpb25zID0gTVRMQmxpdE9wdGlvbk5vbmU7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgV0dQVVRleHR1cmVBc3BlY3RfU3RlbmNpbE9ubHk6CisgICAgICAgIG9wdGlvbnMgPSBN
VExCbGl0T3B0aW9uU3RlbmNpbEZyb21EZXB0aFN0ZW5jaWw7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgV0dQVVRleHR1cmVBc3BlY3RfRGVwdGhPbmx5OgorICAgICAgICBvcHRpb25zID0gTVRM
QmxpdE9wdGlvbkRlcHRoRnJvbURlcHRoU3RlbmNpbDsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBXR1BVVGV4dHVyZUFzcGVjdF9Gb3JjZTMyOgorICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgLy8gRklYTUUoUEVSRk9STUFOQ0UpOiBJbnN0ZWFkIG9mIGNoZWNraW5nIHdoZXRoZXIgb3Ig
bm90IHRoZSB3aG9sZSBxdWV1ZSBpcyBpZGxlLAorICAgIC8vIHdlIGNvdWxkIGRldGVjdCB3aGV0
aGVyIHRoaXMgc3BlY2lmaWMgcmVzb3VyY2UgaXMgaWRsZSwgaWYgd2UgdHJhY2tlZCBldmVyeSBy
ZXNvdXJjZS4KKyAgICBpZiAoaXNJZGxlKCkgJiYgb3B0aW9ucyA9PSBNVExCbGl0T3B0aW9uTm9u
ZSkgeworICAgICAgICBzd2l0Y2ggKGZyb21BUEkoZGVzdGluYXRpb24udGV4dHVyZSkudGV4dHVy
ZSgpLnN0b3JhZ2VNb2RlKSB7CisgICAgICAgIGNhc2UgTVRMU3RvcmFnZU1vZGVTaGFyZWQ6Cisj
aWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShNQUNDQVRBTFlTVCkKKyAgICAgICAgY2FzZSBN
VExTdG9yYWdlTW9kZU1hbmFnZWQ6CisjZW5kaWYKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICBzd2l0Y2ggKHRleHR1cmVEZXNjLmRpbWVuc2lvbikgeworICAgICAgICAgICAgICAgIGNh
c2UgV0dQVVRleHR1cmVEaW1lbnNpb25fMUQ6IHsKKyAgICAgICAgICAgICAgICAgICAgYXV0byBy
ZWdpb24gPSBNVExSZWdpb25NYWtlMUQoZGVzdGluYXRpb24ub3JpZ2luLngsIHNpemUud2lkdGgp
OworICAgICAgICAgICAgICAgICAgICBmb3IgKHVpbnQzMl90IGxheWVyID0gMDsgbGF5ZXIgPCBz
aXplLmRlcHRoT3JBcnJheUxheWVyczsgKytsYXllcikgeworICAgICAgICAgICAgICAgICAgICAg
ICAgLy8gRklYTUU6IFVzZSBjaGVja2VkIGFyaXRobWV0aWMuCisgICAgICAgICAgICAgICAgICAg
ICAgICBhdXRvIHNvdXJjZU9mZnNldCA9IHN0YXRpY19jYXN0PE5TVUludGVnZXI+KGRhdGFMYXlv
dXQub2Zmc2V0ICsgbGF5ZXIgKiBieXRlc1BlckltYWdlKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIE5TVUludGVnZXIgZGVzdGluYXRpb25TbGljZSA9IGRlc3RpbmF0aW9uLm9yaWdpbi56ICsg
bGF5ZXI7CisgICAgICAgICAgICAgICAgICAgICAgICBbZnJvbUFQSShkZXN0aW5hdGlvbi50ZXh0
dXJlKS50ZXh0dXJlKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsYWNlUmVnaW9u
OnJlZ2lvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pcG1hcExldmVsOmRlc3RpbmF0
aW9uLm1pcExldmVsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xpY2U6ZGVzdGluYXRp
b25TbGljZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhCeXRlczpzdGF0aWNfY2Fz
dDxjb25zdCBjaGFyKj4oZGF0YSkgKyBzb3VyY2VPZmZzZXQKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBieXRlc1BlclJvdzpieXRlc1BlclJvdworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGJ5dGVzUGVySW1hZ2U6Ynl0ZXNQZXJJbWFnZV07CisgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIGNhc2UgV0dQVVRleHR1cmVEaW1lbnNpb25fMkQ6IHsKKyAgICAgICAgICAgICAgICAg
ICAgYXV0byByZWdpb24gPSBNVExSZWdpb25NYWtlMkQoZGVzdGluYXRpb24ub3JpZ2luLngsIGRl
c3RpbmF0aW9uLm9yaWdpbi55LCBzaXplLndpZHRoLCBzaXplLmhlaWdodCk7CisgICAgICAgICAg
ICAgICAgICAgIGZvciAodWludDMyX3QgbGF5ZXIgPSAwOyBsYXllciA8IHNpemUuZGVwdGhPckFy
cmF5TGF5ZXJzOyArK2xheWVyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTog
VXNlIGNoZWNrZWQgYXJpdGhtZXRpYy4KKyAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gc291
cmNlT2Zmc2V0ID0gc3RhdGljX2Nhc3Q8TlNVSW50ZWdlcj4oZGF0YUxheW91dC5vZmZzZXQgKyBs
YXllciAqIGJ5dGVzUGVySW1hZ2UpOworICAgICAgICAgICAgICAgICAgICAgICAgTlNVSW50ZWdl
ciBkZXN0aW5hdGlvblNsaWNlID0gZGVzdGluYXRpb24ub3JpZ2luLnogKyBsYXllcjsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIFtmcm9tQVBJKGRlc3RpbmF0aW9uLnRleHR1cmUpLnRleHR1cmUo
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2VSZWdpb246cmVnaW9uCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbWlwbWFwTGV2ZWw6ZGVzdGluYXRpb24ubWlwTGV2ZWwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbGljZTpkZXN0aW5hdGlvblNsaWNlCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgd2l0aEJ5dGVzOnN0YXRpY19jYXN0PGNvbnN0IGNoYXIq
PihkYXRhKSArIHNvdXJjZU9mZnNldAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVz
UGVyUm93OmJ5dGVzUGVyUm93CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZXNQZXJJ
bWFnZTpieXRlc1BlckltYWdlXTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2FzZSBX
R1BVVGV4dHVyZURpbWVuc2lvbl8zRDogeworICAgICAgICAgICAgICAgICAgICBhdXRvIHJlZ2lv
biA9IE1UTFJlZ2lvbk1ha2UzRChkZXN0aW5hdGlvbi5vcmlnaW4ueCwgZGVzdGluYXRpb24ub3Jp
Z2luLnksIGRlc3RpbmF0aW9uLm9yaWdpbi56LCBzaXplLndpZHRoLCBzaXplLmhlaWdodCwgc2l6
ZS5kZXB0aE9yQXJyYXlMYXllcnMpOworICAgICAgICAgICAgICAgICAgICBhdXRvIHNvdXJjZU9m
ZnNldCA9IHN0YXRpY19jYXN0PE5TVUludGVnZXI+KGRhdGFMYXlvdXQub2Zmc2V0KTsKKyAgICAg
ICAgICAgICAgICAgICAgW2Zyb21BUEkoZGVzdGluYXRpb24udGV4dHVyZSkudGV4dHVyZSgpCisg
ICAgICAgICAgICAgICAgICAgICAgICByZXBsYWNlUmVnaW9uOnJlZ2lvbgorICAgICAgICAgICAg
ICAgICAgICAgICAgbWlwbWFwTGV2ZWw6ZGVzdGluYXRpb24ubWlwTGV2ZWwKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHNsaWNlOjAKKyAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhCeXRlczpz
dGF0aWNfY2FzdDxjb25zdCBjaGFyKj4oZGF0YSkgKyBzb3VyY2VPZmZzZXQKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGJ5dGVzUGVyUm93OmJ5dGVzUGVyUm93CisgICAgICAgICAgICAgICAgICAg
ICAgICBieXRlc1BlckltYWdlOmJ5dGVzUGVySW1hZ2VdOworICAgICAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2FzZSBXR1BVVGV4dHVy
ZURpbWVuc2lvbl9Gb3JjZTMyOgorICAgICAgICAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIGNhc2UgTVRMU3Rv
cmFnZU1vZGVQcml2YXRlOgorICAgICAgICAgICAgLy8gVGhlIG9ubHkgd2F5IHRvIGdldCBkYXRh
IGludG8gYSBwcml2YXRlIHJlc291cmNlIGlzIHRvIHRlbGwgdGhlIEdQVSB0byBjb3B5IGl0IGlu
LgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0K
KworICAgIGVuc3VyZUJsaXRDb21tYW5kRW5jb2RlcigpOworICAgIC8vIEZJWE1FKFBFUkZPUk1B
TkNFKTogU3ViYWxsb2NhdGUsIHNvIHRoZSBjb21tb24gY2FzZSBkb2Vzbid0IG5lZWQgdG8gaGl0
IHRoZSBrZXJuZWwuCisgICAgLy8gRklYTUUoUEVSRk9STUFOQ0UpOiBTaG91bGQgdGhpcyB0ZW1w
b3JhcnkgYnVmZmVyIHJlYWxseSBiZSBzaGFyZWQ/CisgICAgaWQ8TVRMQnVmZmVyPiB0ZW1wb3Jh
cnlCdWZmZXIgPSBbbV9kZXZpY2UuZGV2aWNlKCkgbmV3QnVmZmVyV2l0aEJ5dGVzOnN0YXRpY19j
YXN0PGNvbnN0IGNoYXIqPihkYXRhKSArIGRhdGFMYXlvdXQub2Zmc2V0IGxlbmd0aDpzdGF0aWNf
Y2FzdDxOU1VJbnRlZ2VyPihkYXRhQnl0ZVNpemUpIG9wdGlvbnM6TVRMUmVzb3VyY2VTdG9yYWdl
TW9kZVNoYXJlZF07CisgICAgaWYgKCF0ZW1wb3JhcnlCdWZmZXIpCisgICAgICAgIHJldHVybjsK
KworICAgIGF1dG8gbG9naWNhbFNpemUgPSBmcm9tQVBJKGRlc3RpbmF0aW9uLnRleHR1cmUpLmxv
Z2ljYWxUZXh0dXJlU3VicmVzb3VyY2VFeHRlbnQoZGVzdGluYXRpb24ubWlwTGV2ZWwpOworICAg
IGF1dG8gd2lkdGhGb3JNZXRhbCA9IHN0ZDo6bWluKHNpemUud2lkdGgsIGxvZ2ljYWxTaXplLndp
ZHRoKTsKKyAgICBhdXRvIGhlaWdodEZvck1ldGFsID0gc3RkOjptaW4oc2l6ZS5oZWlnaHQsIGxv
Z2ljYWxTaXplLmhlaWdodCk7CisgICAgYXV0byBkZXB0aEZvck1ldGFsID0gc3RkOjptaW4oc2l6
ZS5kZXB0aE9yQXJyYXlMYXllcnMsIGxvZ2ljYWxTaXplLmRlcHRoT3JBcnJheUxheWVycyk7CisK
KyAgICBzd2l0Y2ggKHRleHR1cmVEZXNjLmRpbWVuc2lvbikgeworICAgIGNhc2UgV0dQVVRleHR1
cmVEaW1lbnNpb25fMUQ6IHsKKyAgICAgICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29t
L2RvY3VtZW50YXRpb24vbWV0YWwvbXRsYmxpdGNvbW1hbmRlbmNvZGVyLzE0MDA3NzEtY29weWZy
b21idWZmZXI/bGFuZ3VhZ2U9b2JqYworICAgICAgICAvLyAiV2hlbiB5b3UgY29weSB0byBhIDFE
IHRleHR1cmUsIGhlaWdodCBhbmQgZGVwdGggbXVzdCBiZSAxLiIKKyAgICAgICAgYXV0byBzb3Vy
Y2VTaXplID0gTVRMU2l6ZU1ha2Uod2lkdGhGb3JNZXRhbCwgMSwgMSk7CisgICAgICAgIGF1dG8g
ZGVzdGluYXRpb25PcmlnaW4gPSBNVExPcmlnaW5NYWtlKGRlc3RpbmF0aW9uLm9yaWdpbi54LCAx
LCAxKTsKKyAgICAgICAgZm9yICh1aW50MzJfdCBsYXllciA9IDA7IGxheWVyIDwgc2l6ZS5kZXB0
aE9yQXJyYXlMYXllcnM7ICsrbGF5ZXIpIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBVc2UgY2hl
Y2tlZCBhcml0aG1ldGljLgorICAgICAgICAgICAgTlNVSW50ZWdlciBzb3VyY2VPZmZzZXQgPSBs
YXllciAqIGJ5dGVzUGVySW1hZ2U7CisgICAgICAgICAgICBOU1VJbnRlZ2VyIGRlc3RpbmF0aW9u
U2xpY2UgPSBkZXN0aW5hdGlvbi5vcmlnaW4ueiArIGxheWVyOworICAgICAgICAgICAgW21fYmxp
dENvbW1hbmRFbmNvZGVyCisgICAgICAgICAgICAgICAgY29weUZyb21CdWZmZXI6dGVtcG9yYXJ5
QnVmZmVyCisgICAgICAgICAgICAgICAgc291cmNlT2Zmc2V0OnNvdXJjZU9mZnNldAorICAgICAg
ICAgICAgICAgIHNvdXJjZUJ5dGVzUGVyUm93OmJ5dGVzUGVyUm93CisgICAgICAgICAgICAgICAg
c291cmNlQnl0ZXNQZXJJbWFnZTpieXRlc1BlckltYWdlCisgICAgICAgICAgICAgICAgc291cmNl
U2l6ZTpzb3VyY2VTaXplCisgICAgICAgICAgICAgICAgdG9UZXh0dXJlOmZyb21BUEkoZGVzdGlu
YXRpb24udGV4dHVyZSkudGV4dHVyZSgpCisgICAgICAgICAgICAgICAgZGVzdGluYXRpb25TbGlj
ZTpkZXN0aW5hdGlvblNsaWNlCisgICAgICAgICAgICAgICAgZGVzdGluYXRpb25MZXZlbDpkZXN0
aW5hdGlvbi5taXBMZXZlbAorICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uT3JpZ2luOmRlc3Rp
bmF0aW9uT3JpZ2luCisgICAgICAgICAgICAgICAgb3B0aW9uczpvcHRpb25zXTsKKyAgICAgICAg
fQorICAgICAgICBicmVhazsKKyAgICB9CisgICAgY2FzZSBXR1BVVGV4dHVyZURpbWVuc2lvbl8y
RDogeworICAgICAgICAvLyBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlv
bi9tZXRhbC9tdGxibGl0Y29tbWFuZGVuY29kZXIvMTQwMDc3MS1jb3B5ZnJvbWJ1ZmZlcj9sYW5n
dWFnZT1vYmpjCisgICAgICAgIC8vICJXaGVuIHlvdSBjb3B5IHRvIGEgMkQgdGV4dHVyZSwgZGVw
dGggbXVzdCBiZSAxLiIKKyAgICAgICAgYXV0byBzb3VyY2VTaXplID0gTVRMU2l6ZU1ha2Uod2lk
dGhGb3JNZXRhbCwgaGVpZ2h0Rm9yTWV0YWwsIDEpOworICAgICAgICBhdXRvIGRlc3RpbmF0aW9u
T3JpZ2luID0gTVRMT3JpZ2luTWFrZShkZXN0aW5hdGlvbi5vcmlnaW4ueCwgZGVzdGluYXRpb24u
b3JpZ2luLnksIDEpOworICAgICAgICBmb3IgKHVpbnQzMl90IGxheWVyID0gMDsgbGF5ZXIgPCBz
aXplLmRlcHRoT3JBcnJheUxheWVyczsgKytsYXllcikgeworICAgICAgICAgICAgLy8gRklYTUU6
IFVzZSBjaGVja2VkIGFyaXRobWV0aWMuCisgICAgICAgICAgICBOU1VJbnRlZ2VyIHNvdXJjZU9m
ZnNldCA9IGxheWVyICogYnl0ZXNQZXJJbWFnZTsKKyAgICAgICAgICAgIE5TVUludGVnZXIgZGVz
dGluYXRpb25TbGljZSA9IGRlc3RpbmF0aW9uLm9yaWdpbi56ICsgbGF5ZXI7CisgICAgICAgICAg
ICBbbV9ibGl0Q29tbWFuZEVuY29kZXIKKyAgICAgICAgICAgICAgICBjb3B5RnJvbUJ1ZmZlcjp0
ZW1wb3JhcnlCdWZmZXIKKyAgICAgICAgICAgICAgICBzb3VyY2VPZmZzZXQ6c291cmNlT2Zmc2V0
CisgICAgICAgICAgICAgICAgc291cmNlQnl0ZXNQZXJSb3c6Ynl0ZXNQZXJSb3cKKyAgICAgICAg
ICAgICAgICBzb3VyY2VCeXRlc1BlckltYWdlOmJ5dGVzUGVySW1hZ2UKKyAgICAgICAgICAgICAg
ICBzb3VyY2VTaXplOnNvdXJjZVNpemUKKyAgICAgICAgICAgICAgICB0b1RleHR1cmU6ZnJvbUFQ
SShkZXN0aW5hdGlvbi50ZXh0dXJlKS50ZXh0dXJlKCkKKyAgICAgICAgICAgICAgICBkZXN0aW5h
dGlvblNsaWNlOmRlc3RpbmF0aW9uU2xpY2UKKyAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbkxl
dmVsOmRlc3RpbmF0aW9uLm1pcExldmVsCisgICAgICAgICAgICAgICAgZGVzdGluYXRpb25Pcmln
aW46ZGVzdGluYXRpb25PcmlnaW4KKyAgICAgICAgICAgICAgICBvcHRpb25zOm9wdGlvbnNdOwor
ICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIFdHUFVUZXh0dXJlRGlt
ZW5zaW9uXzNEOiB7CisgICAgICAgIGF1dG8gc291cmNlU2l6ZSA9IE1UTFNpemVNYWtlKHdpZHRo
Rm9yTWV0YWwsIGhlaWdodEZvck1ldGFsLCBkZXB0aEZvck1ldGFsKTsKKyAgICAgICAgYXV0byBk
ZXN0aW5hdGlvbk9yaWdpbiA9IE1UTE9yaWdpbk1ha2UoZGVzdGluYXRpb24ub3JpZ2luLngsIGRl
c3RpbmF0aW9uLm9yaWdpbi55LCBkZXN0aW5hdGlvbi5vcmlnaW4ueik7CisgICAgICAgIE5TVUlu
dGVnZXIgc291cmNlT2Zmc2V0ID0gMDsKKyAgICAgICAgW21fYmxpdENvbW1hbmRFbmNvZGVyCisg
ICAgICAgICAgICBjb3B5RnJvbUJ1ZmZlcjp0ZW1wb3JhcnlCdWZmZXIKKyAgICAgICAgICAgIHNv
dXJjZU9mZnNldDpzb3VyY2VPZmZzZXQKKyAgICAgICAgICAgIHNvdXJjZUJ5dGVzUGVyUm93OmJ5
dGVzUGVyUm93CisgICAgICAgICAgICBzb3VyY2VCeXRlc1BlckltYWdlOmJ5dGVzUGVySW1hZ2UK
KyAgICAgICAgICAgIHNvdXJjZVNpemU6c291cmNlU2l6ZQorICAgICAgICAgICAgdG9UZXh0dXJl
OmZyb21BUEkoZGVzdGluYXRpb24udGV4dHVyZSkudGV4dHVyZSgpCisgICAgICAgICAgICBkZXN0
aW5hdGlvblNsaWNlOjAKKyAgICAgICAgICAgIGRlc3RpbmF0aW9uTGV2ZWw6ZGVzdGluYXRpb24u
bWlwTGV2ZWwKKyAgICAgICAgICAgIGRlc3RpbmF0aW9uT3JpZ2luOmRlc3RpbmF0aW9uT3JpZ2lu
CisgICAgICAgICAgICBvcHRpb25zOm9wdGlvbnNdOworICAgICAgICBicmVhazsKKyAgICB9Cisg
ICAgY2FzZSBXR1BVVGV4dHVyZURpbWVuc2lvbl9Gb3JjZTMyOgorICAgICAgICByZXR1cm47Cisg
ICAgfQogfQogCiB2b2lkIFF1ZXVlOjpzZXRMYWJlbChTdHJpbmcmJiBsYWJlbCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>456221</attachid>
            <date>2022-03-31 02:00:17 -0700</date>
            <delta_ts>2022-04-01 00:43:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238432-20220331020016.patch</filename>
            <type>text/plain</type>
            <size>14123</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyMTQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViR1BVL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJHUFUvQ2hhbmdlTG9nCmluZGV4IGY1NDU3N2MyZGJkZTI3ZmI2
ZDc0MmQ0NDE5MDAzNTA1ZDIzYzUzM2UuLmYxMjM2OTlhZjFkODA5ZTBiOGQxMTJiZThiYzNjMzJl
YTVjMDY0ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJHUFUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJHUFUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjItMDMtMzEgIE15bGVzIEMu
IE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViR1BVXSBJbXBs
ZW1lbnQgUXVldWU6OndyaXRlVGV4dHVyZSgpIGFjY29yZGluZyB0byB0aGUgc3BlYworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4NDMyCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBpbXBsZW1lbnRz
IFF1ZXVlOjp3cml0ZVRleHR1cmUoKSBhY2NvcmRpbmcgdG8gdGhlIHNwZWMuCisgICAgICAgIEl0
IHJlLXVzZXMgbWFueSBvZiB0aGUgaGVscGVyIGZ1bmN0aW9ucyBhZGRlZCBpbgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4NDI4LiBUaGVyZSBhcmUg
bGlua3MgYW5kIHF1b3RlcyBmcm9tCisgICAgICAgIHRoZSBzcGVjIHdoZXJlIGFwcHJvcHJpYXRl
LgorCisgICAgICAgICogV2ViR1BVL1F1ZXVlLm1tOgorICAgICAgICAoV2ViR1BVOjpRdWV1ZTo6
d3JpdGVCdWZmZXIpOgorICAgICAgICAoV2ViR1BVOjp2YWxpZGF0ZVdyaXRlVGV4dHVyZSk6Cisg
ICAgICAgIChXZWJHUFU6OlF1ZXVlOjp3cml0ZVRleHR1cmUpOgorCiAyMDIyLTAzLTMxICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYkdQVV0g
SW1wbGVtZW50IENvbW1hbmRFbmNvZGVyOjpjb3B5QnVmZmVyVG9UZXh0dXJlKCkgYWNjb3JkaW5n
IHRvIHRoZSBzcGVjCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9RdWV1ZS5tbSBi
L1NvdXJjZS9XZWJHUFUvV2ViR1BVL1F1ZXVlLm1tCmluZGV4IDBkMWIzOWE4NGY2NDIzNTc5YTll
YzAzYjVhYTI0MWJkZTYzMWQ2NjAuLmUyY2U2MTk4ZjIyMmY0NGU2ZmMyN2YwZWUwYWJmZGVmZDQ5
YzExMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1F1ZXVlLm1tCisrKyBiL1Nv
dXJjZS9XZWJHUFUvV2ViR1BVL1F1ZXVlLm1tCkBAIC0zMCw2ICszMCw3IEBACiAjaW1wb3J0ICJC
dWZmZXIuaCIKICNpbXBvcnQgIkNvbW1hbmRCdWZmZXIuaCIKICNpbXBvcnQgIkRldmljZS5oIgor
I2ltcG9ydCAiVGV4dHVyZS5oIgogCiBuYW1lc3BhY2UgV2ViR1BVIHsKIApAQCAtMjM2LDE5ICsy
MzcsMjU1IEBAIHZvaWQgUXVldWU6OndyaXRlQnVmZmVyKGNvbnN0IEJ1ZmZlciYgYnVmZmVyLCB1
aW50NjRfdCBidWZmZXJPZmZzZXQsIGNvbnN0IHZvaWQqCiAKICAgICBlbnN1cmVCbGl0Q29tbWFu
ZEVuY29kZXIoKTsKICAgICAvLyBGSVhNRShQRVJGT1JNQU5DRSk6IFN1YmFsbG9jYXRlLCBzbyB0
aGUgY29tbW9uIGNhc2UgZG9lc24ndCBuZWVkIHRvIGhpdCB0aGUga2VybmVsLgorICAgIC8vIEZJ
WE1FKFBFUkZPUk1BTkNFKTogU2hvdWxkIHRoaXMgdGVtcG9yYXJ5IGJ1ZmZlciByZWFsbHkgYmUg
c2hhcmVkPwogICAgIGlkPE1UTEJ1ZmZlcj4gdGVtcG9yYXJ5QnVmZmVyID0gW21fZGV2aWNlLmRl
dmljZSgpIG5ld0J1ZmZlcldpdGhCeXRlczpkYXRhIGxlbmd0aDpzdGF0aWNfY2FzdDxOU1VJbnRl
Z2VyPihzaXplKSBvcHRpb25zOk1UTFJlc291cmNlU3RvcmFnZU1vZGVTaGFyZWRdOwogICAgIGlm
ICghdGVtcG9yYXJ5QnVmZmVyKQogICAgICAgICByZXR1cm47Ci0gICAgW21fYmxpdENvbW1hbmRF
bmNvZGVyIGNvcHlGcm9tQnVmZmVyOnRlbXBvcmFyeUJ1ZmZlciBzb3VyY2VPZmZzZXQ6MCB0b0J1
ZmZlcjpidWZmZXIuYnVmZmVyKCkgZGVzdGluYXRpb25PZmZzZXQ6c3RhdGljX2Nhc3Q8TlNVSW50
ZWdlcj4oYnVmZmVyT2Zmc2V0KSBzaXplOnN0YXRpY19jYXN0PE5TVUludGVnZXI+KHNpemUpXTsK
KyAgICBbbV9ibGl0Q29tbWFuZEVuY29kZXIKKyAgICAgICAgY29weUZyb21CdWZmZXI6dGVtcG9y
YXJ5QnVmZmVyCisgICAgICAgIHNvdXJjZU9mZnNldDowCisgICAgICAgIHRvQnVmZmVyOmJ1ZmZl
ci5idWZmZXIoKQorICAgICAgICBkZXN0aW5hdGlvbk9mZnNldDpzdGF0aWNfY2FzdDxOU1VJbnRl
Z2VyPihidWZmZXJPZmZzZXQpCisgICAgICAgIHNpemU6c3RhdGljX2Nhc3Q8TlNVSW50ZWdlcj4o
c2l6ZSldOwogfQogCi12b2lkIFF1ZXVlOjp3cml0ZVRleHR1cmUoY29uc3QgV0dQVUltYWdlQ29w
eVRleHR1cmUmIGRlc3RpbmF0aW9uLCBjb25zdCB2b2lkKiBkYXRhLCBzaXplX3QgZGF0YVNpemUs
IGNvbnN0IFdHUFVUZXh0dXJlRGF0YUxheW91dCYgZGF0YUxheW91dCwgY29uc3QgV0dQVUV4dGVu
dDNEJiB3cml0ZVNpemUpCitzdGF0aWMgYm9vbCB2YWxpZGF0ZVdyaXRlVGV4dHVyZShjb25zdCBX
R1BVSW1hZ2VDb3B5VGV4dHVyZSYgZGVzdGluYXRpb24sIGNvbnN0IFdHUFVUZXh0dXJlRGF0YUxh
eW91dCYgZGF0YUxheW91dCwgY29uc3QgV0dQVUV4dGVudDNEJiBzaXplLCBzaXplX3QgZGF0YUJ5
dGVTaXplLCBjb25zdCBXR1BVVGV4dHVyZURlc2NyaXB0b3ImIHRleHR1cmVEZXNjKQogewotICAg
IFVOVVNFRF9QQVJBTShkZXN0aW5hdGlvbik7Ci0gICAgVU5VU0VEX1BBUkFNKGRhdGEpOwotICAg
IFVOVVNFRF9QQVJBTShkYXRhU2l6ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGRhdGFMYXlvdXQpOwot
ICAgIFVOVVNFRF9QQVJBTSh3cml0ZVNpemUpOworICAgIC8vICJ2YWxpZGF0aW5nIEdQVUltYWdl
Q29weVRleHR1cmUoZGVzdGluYXRpb24sIHNpemUpIHJldHVybnMgdHJ1ZS4iCisgICAgaWYgKCFU
ZXh0dXJlOjp2YWxpZGF0ZUltYWdlQ29weVRleHR1cmUoZGVzdGluYXRpb24sIHNpemUpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyAidGV4dHVyZURlc2MudXNhZ2UgaW5jbHVkZXMg
Q09QWV9EU1QuIgorICAgIGlmICghKHRleHR1cmVEZXNjLnVzYWdlICYgV0dQVVRleHR1cmVVc2Fn
ZV9Db3B5RHN0KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gInRleHR1cmVEZXNj
LnNhbXBsZUNvdW50IGlzIDEuIgorICAgIGlmICh0ZXh0dXJlRGVzYy5zYW1wbGVDb3VudCAhPSAx
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyAidmFsaWRhdGluZyB0ZXh0dXJlIGNv
cHkgcmFuZ2UoZGVzdGluYXRpb24sIHNpemUpIHJldHVybiB0cnVlLiIKKyAgICBpZiAoIVRleHR1
cmU6OnZhbGlkYXRlVGV4dHVyZUNvcHlSYW5nZShkZXN0aW5hdGlvbiwgc2l6ZSkpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgIC8vICJkZXN0aW5hdGlvbi5hc3BlY3QgbXVzdCByZWZlciB0
byBhIHNpbmdsZSBhc3BlY3Qgb2YgdGV4dHVyZURlc2MuZm9ybWF0LiIKKyAgICBpZiAoIVRleHR1
cmU6OnJlZmVyc1RvU2luZ2xlQXNwZWN0KHRleHR1cmVEZXNjLmZvcm1hdCwgZGVzdGluYXRpb24u
YXNwZWN0KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gIlRoYXQgYXNwZWN0IG11
c3QgYmUgYSB2YWxpZCBpbWFnZSBjb3B5IGRlc3RpbmF0aW9uIGFjY29yZGluZyB0byDCp+KArzI1
LjEuMiBEZXB0aC1zdGVuY2lsIGZvcm1hdHMuIgorICAgIGlmICghVGV4dHVyZTo6aXNWYWxpZElt
YWdlQ29weURlc3RpbmF0aW9uKHRleHR1cmVEZXNjLmZvcm1hdCwgZGVzdGluYXRpb24uYXNwZWN0
KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gIkxldCBhc3BlY3RTcGVjaWZpY0Zv
cm1hdCA9IHRleHR1cmVEZXNjLmZvcm1hdC4iCisgICAgYXV0byBhc3BlY3RTcGVjaWZpY0Zvcm1h
dCA9IHRleHR1cmVEZXNjLmZvcm1hdDsKKworICAgIC8vICJJZiB0ZXh0dXJlRGVzYy5mb3JtYXQg
aXMgYSBkZXB0aC1vci1zdGVuY2lsIGZvcm1hdDoiCisgICAgaWYgKFRleHR1cmU6OmlzRGVwdGhP
clN0ZW5jaWxGb3JtYXQodGV4dHVyZURlc2MuZm9ybWF0KSkgeworICAgICAgICAvLyAiU2V0IGFz
cGVjdFNwZWNpZmljRm9ybWF0IHRvIHRoZSBhc3BlY3Qtc3BlY2lmaWMgZm9ybWF0IG9mIHRleHR1
cmVEZXNjLmZvcm1hdCBhY2NvcmRpbmcgdG8gwqfigK8yNS4xLjIgRGVwdGgtc3RlbmNpbCBmb3Jt
YXRzLiIKKyAgICAgICAgYXNwZWN0U3BlY2lmaWNGb3JtYXQgPSBUZXh0dXJlOjphc3BlY3RTcGVj
aWZpY0Zvcm1hdCh0ZXh0dXJlRGVzYy5mb3JtYXQsIGRlc3RpbmF0aW9uLmFzcGVjdCk7CisgICAg
fQorCisgICAgLy8gInZhbGlkYXRpbmcgbGluZWFyIHRleHR1cmUgZGF0YShkYXRhTGF5b3V0LCBk
YXRhQnl0ZVNpemUsIGFzcGVjdFNwZWNpZmljRm9ybWF0LCBzaXplKSBzdWNjZWVkcy4iCisgICAg
aWYgKCFUZXh0dXJlOjp2YWxpZGF0ZUxpbmVhclRleHR1cmVEYXRhKGRhdGFMYXlvdXQsIGRhdGFC
eXRlU2l6ZSwgYXNwZWN0U3BlY2lmaWNGb3JtYXQsIHNpemUpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBRdWV1ZTo6d3JpdGVUZXh0dXJlKGNv
bnN0IFdHUFVJbWFnZUNvcHlUZXh0dXJlJiBkZXN0aW5hdGlvbiwgY29uc3Qgdm9pZCogZGF0YSwg
c2l6ZV90IGRhdGFTaXplLCBjb25zdCBXR1BVVGV4dHVyZURhdGFMYXlvdXQmIGRhdGFMYXlvdXQs
IGNvbnN0IFdHUFVFeHRlbnQzRCYgc2l6ZSkKK3sKKyAgICBpZiAoZGVzdGluYXRpb24ubmV4dElu
Q2hhaW4gfHwgZGF0YUxheW91dC5uZXh0SW5DaGFpbikKKyAgICAgICAgcmV0dXJuOworCisgICAg
Ly8gZmlsZTovLy9Vc2Vycy9tbWF4ZmllbGQvc3JjL0dQVVdlYi9zcGVjL2luZGV4Lmh0bWwjZG9t
LWdwdXF1ZXVlLXdyaXRldGV4dHVyZQorCisgICAgLy8gIkxldCBkYXRhQnl0ZXMgYmUgYSBjb3B5
IG9mIHRoZSBieXRlcyBoZWxkIGJ5IHRoZSBidWZmZXIgc291cmNlIGRhdGEuIgorICAgIC8vICJM
ZXQgZGF0YUJ5dGVTaXplIGJlIHRoZSBudW1iZXIgb2YgYnl0ZXMgaW4gZGF0YUJ5dGVzLiIKKyAg
ICBhdXRvIGRhdGFCeXRlU2l6ZSA9IGRhdGFTaXplOworCisgICAgLy8gIkxldCB0ZXh0dXJlRGVz
YyBiZSBkZXN0aW5hdGlvbi50ZXh0dXJlLltbZGVzY3JpcHRvcl1dLiIKKyAgICBjb25zdCBhdXRv
JiB0ZXh0dXJlRGVzYyA9IGZyb21BUEkoZGVzdGluYXRpb24udGV4dHVyZSkuZGVzY3JpcHRvcigp
OworCisgICAgLy8gIkxldCBjb250ZW50cyBiZSB0aGUgY29udGVudHMgb2YgdGhlIGltYWdlcyBz
ZWVuIGJ5IHZpZXdpbmcgZGF0YUJ5dGVzIHdpdGggZGF0YUxheW91dCBhbmQgc2l6ZS4iCisKKyAg
ICAvLyAiSWYgYW55IG9mIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgdW5zYXRpc2ZpZWQi
CisgICAgaWYgKCF2YWxpZGF0ZVdyaXRlVGV4dHVyZShkZXN0aW5hdGlvbiwgZGF0YUxheW91dCwg
c2l6ZSwgZGF0YUJ5dGVTaXplLCB0ZXh0dXJlRGVzYykpIHsKKyAgICAgICAgLy8gImdlbmVyYXRl
IGEgdmFsaWRhdGlvbiBlcnJvciBhbmQgc3RvcC4iCisgICAgICAgIG1fZGV2aWNlLmdlbmVyYXRl
QVZhbGlkYXRpb25FcnJvcigiVmFsaWRhdGlvbiBmYWlsdXJlLiJfcyk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICAvLyAiV3JpdGUgY29udGVudHMgaW50byBkZXN0aW5hdGlvbi4iCisg
ICAgaWYgKCFkYXRhU2l6ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgTlNVSW50ZWdlciBieXRl
c1BlclJvdyA9IGRhdGFMYXlvdXQuYnl0ZXNQZXJSb3c7CisKKyAgICAvLyBGSVhNRTogVXNlIGNo
ZWNrZWQgYXJpdGhtZXRpYy4KKyAgICBOU1VJbnRlZ2VyIGJ5dGVzUGVySW1hZ2UgPSBkYXRhTGF5
b3V0LmJ5dGVzUGVyUm93ICogZGF0YUxheW91dC5yb3dzUGVySW1hZ2U7CisKKyAgICBNVExCbGl0
T3B0aW9uIG9wdGlvbnMgPSBNVExCbGl0T3B0aW9uTm9uZTsKKyAgICBzd2l0Y2ggKGRlc3RpbmF0
aW9uLmFzcGVjdCkgeworICAgIGNhc2UgV0dQVVRleHR1cmVBc3BlY3RfQWxsOgorICAgICAgICBv
cHRpb25zID0gTVRMQmxpdE9wdGlvbk5vbmU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV0dQ
VVRleHR1cmVBc3BlY3RfU3RlbmNpbE9ubHk6CisgICAgICAgIG9wdGlvbnMgPSBNVExCbGl0T3B0
aW9uU3RlbmNpbEZyb21EZXB0aFN0ZW5jaWw7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV0dQ
VVRleHR1cmVBc3BlY3RfRGVwdGhPbmx5OgorICAgICAgICBvcHRpb25zID0gTVRMQmxpdE9wdGlv
bkRlcHRoRnJvbURlcHRoU3RlbmNpbDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXR1BVVGV4
dHVyZUFzcGVjdF9Gb3JjZTMyOgorICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gRklY
TUUoUEVSRk9STUFOQ0UpOiBJbnN0ZWFkIG9mIGNoZWNraW5nIHdoZXRoZXIgb3Igbm90IHRoZSB3
aG9sZSBxdWV1ZSBpcyBpZGxlLAorICAgIC8vIHdlIGNvdWxkIGRldGVjdCB3aGV0aGVyIHRoaXMg
c3BlY2lmaWMgcmVzb3VyY2UgaXMgaWRsZSwgaWYgd2UgdHJhY2tlZCBldmVyeSByZXNvdXJjZS4K
KyAgICBpZiAoaXNJZGxlKCkgJiYgb3B0aW9ucyA9PSBNVExCbGl0T3B0aW9uTm9uZSkgeworICAg
ICAgICBzd2l0Y2ggKGZyb21BUEkoZGVzdGluYXRpb24udGV4dHVyZSkudGV4dHVyZSgpLnN0b3Jh
Z2VNb2RlKSB7CisgICAgICAgIGNhc2UgTVRMU3RvcmFnZU1vZGVTaGFyZWQ6CisjaWYgUExBVEZP
Uk0oTUFDKSB8fCBQTEFURk9STShNQUNDQVRBTFlTVCkKKyAgICAgICAgY2FzZSBNVExTdG9yYWdl
TW9kZU1hbmFnZWQ6CisjZW5kaWYKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBzd2l0
Y2ggKHRleHR1cmVEZXNjLmRpbWVuc2lvbikgeworICAgICAgICAgICAgICAgIGNhc2UgV0dQVVRl
eHR1cmVEaW1lbnNpb25fMUQ6IHsKKyAgICAgICAgICAgICAgICAgICAgYXV0byByZWdpb24gPSBN
VExSZWdpb25NYWtlMUQoZGVzdGluYXRpb24ub3JpZ2luLngsIHNpemUud2lkdGgpOworICAgICAg
ICAgICAgICAgICAgICBmb3IgKHVpbnQzMl90IGxheWVyID0gMDsgbGF5ZXIgPCBzaXplLmRlcHRo
T3JBcnJheUxheWVyczsgKytsYXllcikgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklY
TUU6IFVzZSBjaGVja2VkIGFyaXRobWV0aWMuCisgICAgICAgICAgICAgICAgICAgICAgICBhdXRv
IHNvdXJjZU9mZnNldCA9IHN0YXRpY19jYXN0PE5TVUludGVnZXI+KGRhdGFMYXlvdXQub2Zmc2V0
ICsgbGF5ZXIgKiBieXRlc1BlckltYWdlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIE5TVUlu
dGVnZXIgZGVzdGluYXRpb25TbGljZSA9IGRlc3RpbmF0aW9uLm9yaWdpbi56ICsgbGF5ZXI7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBbZnJvbUFQSShkZXN0aW5hdGlvbi50ZXh0dXJlKS50ZXh0
dXJlKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsYWNlUmVnaW9uOnJlZ2lvbgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pcG1hcExldmVsOmRlc3RpbmF0aW9uLm1pcExl
dmVsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xpY2U6ZGVzdGluYXRpb25TbGljZQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhCeXRlczpzdGF0aWNfY2FzdDxjb25zdCBj
aGFyKj4oZGF0YSkgKyBzb3VyY2VPZmZzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBi
eXRlc1BlclJvdzpieXRlc1BlclJvdworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVz
UGVySW1hZ2U6Ynl0ZXNQZXJJbWFnZV07CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNh
c2UgV0dQVVRleHR1cmVEaW1lbnNpb25fMkQ6IHsKKyAgICAgICAgICAgICAgICAgICAgYXV0byBy
ZWdpb24gPSBNVExSZWdpb25NYWtlMkQoZGVzdGluYXRpb24ub3JpZ2luLngsIGRlc3RpbmF0aW9u
Lm9yaWdpbi55LCBzaXplLndpZHRoLCBzaXplLmhlaWdodCk7CisgICAgICAgICAgICAgICAgICAg
IGZvciAodWludDMyX3QgbGF5ZXIgPSAwOyBsYXllciA8IHNpemUuZGVwdGhPckFycmF5TGF5ZXJz
OyArK2xheWVyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogVXNlIGNoZWNr
ZWQgYXJpdGhtZXRpYy4KKyAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gc291cmNlT2Zmc2V0
ID0gc3RhdGljX2Nhc3Q8TlNVSW50ZWdlcj4oZGF0YUxheW91dC5vZmZzZXQgKyBsYXllciAqIGJ5
dGVzUGVySW1hZ2UpOworICAgICAgICAgICAgICAgICAgICAgICAgTlNVSW50ZWdlciBkZXN0aW5h
dGlvblNsaWNlID0gZGVzdGluYXRpb24ub3JpZ2luLnogKyBsYXllcjsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIFtmcm9tQVBJKGRlc3RpbmF0aW9uLnRleHR1cmUpLnRleHR1cmUoKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2VSZWdpb246cmVnaW9uCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbWlwbWFwTGV2ZWw6ZGVzdGluYXRpb24ubWlwTGV2ZWwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzbGljZTpkZXN0aW5hdGlvblNsaWNlCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgd2l0aEJ5dGVzOnN0YXRpY19jYXN0PGNvbnN0IGNoYXIqPihkYXRhKSAr
IHNvdXJjZU9mZnNldAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVzUGVyUm93OmJ5
dGVzUGVyUm93CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZXNQZXJJbWFnZTpieXRl
c1BlckltYWdlXTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2FzZSBXR1BVVGV4dHVy
ZURpbWVuc2lvbl8zRDogeworICAgICAgICAgICAgICAgICAgICBhdXRvIHJlZ2lvbiA9IE1UTFJl
Z2lvbk1ha2UzRChkZXN0aW5hdGlvbi5vcmlnaW4ueCwgZGVzdGluYXRpb24ub3JpZ2luLnksIGRl
c3RpbmF0aW9uLm9yaWdpbi56LCBzaXplLndpZHRoLCBzaXplLmhlaWdodCwgc2l6ZS5kZXB0aE9y
QXJyYXlMYXllcnMpOworICAgICAgICAgICAgICAgICAgICBhdXRvIHNvdXJjZU9mZnNldCA9IHN0
YXRpY19jYXN0PE5TVUludGVnZXI+KGRhdGFMYXlvdXQub2Zmc2V0KTsKKyAgICAgICAgICAgICAg
ICAgICAgW2Zyb21BUEkoZGVzdGluYXRpb24udGV4dHVyZSkudGV4dHVyZSgpCisgICAgICAgICAg
ICAgICAgICAgICAgICByZXBsYWNlUmVnaW9uOnJlZ2lvbgorICAgICAgICAgICAgICAgICAgICAg
ICAgbWlwbWFwTGV2ZWw6ZGVzdGluYXRpb24ubWlwTGV2ZWwKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHNsaWNlOjAKKyAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhCeXRlczpzdGF0aWNfY2Fz
dDxjb25zdCBjaGFyKj4oZGF0YSkgKyBzb3VyY2VPZmZzZXQKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGJ5dGVzUGVyUm93OmJ5dGVzUGVyUm93CisgICAgICAgICAgICAgICAgICAgICAgICBieXRl
c1BlckltYWdlOmJ5dGVzUGVySW1hZ2VdOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2FzZSBXR1BVVGV4dHVyZURpbWVuc2lv
bl9Gb3JjZTMyOgorICAgICAgICAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIGNhc2UgTVRMU3RvcmFnZU1vZGVQ
cml2YXRlOgorICAgICAgICAgICAgLy8gVGhlIG9ubHkgd2F5IHRvIGdldCBkYXRhIGludG8gYSBw
cml2YXRlIHJlc291cmNlIGlzIHRvIHRlbGwgdGhlIEdQVSB0byBjb3B5IGl0IGluLgorICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKworICAgIGVu
c3VyZUJsaXRDb21tYW5kRW5jb2RlcigpOworICAgIC8vIEZJWE1FKFBFUkZPUk1BTkNFKTogU3Vi
YWxsb2NhdGUsIHNvIHRoZSBjb21tb24gY2FzZSBkb2Vzbid0IG5lZWQgdG8gaGl0IHRoZSBrZXJu
ZWwuCisgICAgLy8gRklYTUUoUEVSRk9STUFOQ0UpOiBTaG91bGQgdGhpcyB0ZW1wb3JhcnkgYnVm
ZmVyIHJlYWxseSBiZSBzaGFyZWQ/CisgICAgaWQ8TVRMQnVmZmVyPiB0ZW1wb3JhcnlCdWZmZXIg
PSBbbV9kZXZpY2UuZGV2aWNlKCkgbmV3QnVmZmVyV2l0aEJ5dGVzOnN0YXRpY19jYXN0PGNvbnN0
IGNoYXIqPihkYXRhKSArIGRhdGFMYXlvdXQub2Zmc2V0IGxlbmd0aDpzdGF0aWNfY2FzdDxOU1VJ
bnRlZ2VyPihkYXRhQnl0ZVNpemUpIG9wdGlvbnM6TVRMUmVzb3VyY2VTdG9yYWdlTW9kZVNoYXJl
ZF07CisgICAgaWYgKCF0ZW1wb3JhcnlCdWZmZXIpCisgICAgICAgIHJldHVybjsKKworICAgIGF1
dG8gbG9naWNhbFNpemUgPSBmcm9tQVBJKGRlc3RpbmF0aW9uLnRleHR1cmUpLmxvZ2ljYWxNaXBs
ZXZlbFNwZWNpZmljVGV4dHVyZUV4dGVudChkZXN0aW5hdGlvbi5taXBMZXZlbCk7CisgICAgYXV0
byB3aWR0aEZvck1ldGFsID0gc3RkOjptaW4oc2l6ZS53aWR0aCwgbG9naWNhbFNpemUud2lkdGgp
OworICAgIGF1dG8gaGVpZ2h0Rm9yTWV0YWwgPSBzdGQ6Om1pbihzaXplLmhlaWdodCwgbG9naWNh
bFNpemUuaGVpZ2h0KTsKKyAgICBhdXRvIGRlcHRoRm9yTWV0YWwgPSBzdGQ6Om1pbihzaXplLmRl
cHRoT3JBcnJheUxheWVycywgbG9naWNhbFNpemUuZGVwdGhPckFycmF5TGF5ZXJzKTsKKworICAg
IHN3aXRjaCAodGV4dHVyZURlc2MuZGltZW5zaW9uKSB7CisgICAgY2FzZSBXR1BVVGV4dHVyZURp
bWVuc2lvbl8xRDogeworICAgICAgICAvLyBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9j
dW1lbnRhdGlvbi9tZXRhbC9tdGxibGl0Y29tbWFuZGVuY29kZXIvMTQwMDc3MS1jb3B5ZnJvbWJ1
ZmZlcj9sYW5ndWFnZT1vYmpjCisgICAgICAgIC8vICJXaGVuIHlvdSBjb3B5IHRvIGEgMUQgdGV4
dHVyZSwgaGVpZ2h0IGFuZCBkZXB0aCBtdXN0IGJlIDEuIgorICAgICAgICBhdXRvIHNvdXJjZVNp
emUgPSBNVExTaXplTWFrZSh3aWR0aEZvck1ldGFsLCAxLCAxKTsKKyAgICAgICAgYXV0byBkZXN0
aW5hdGlvbk9yaWdpbiA9IE1UTE9yaWdpbk1ha2UoZGVzdGluYXRpb24ub3JpZ2luLngsIDEsIDEp
OworICAgICAgICBmb3IgKHVpbnQzMl90IGxheWVyID0gMDsgbGF5ZXIgPCBzaXplLmRlcHRoT3JB
cnJheUxheWVyczsgKytsYXllcikgeworICAgICAgICAgICAgLy8gRklYTUU6IFVzZSBjaGVja2Vk
IGFyaXRobWV0aWMuCisgICAgICAgICAgICBOU1VJbnRlZ2VyIHNvdXJjZU9mZnNldCA9IGxheWVy
ICogYnl0ZXNQZXJJbWFnZTsKKyAgICAgICAgICAgIE5TVUludGVnZXIgZGVzdGluYXRpb25TbGlj
ZSA9IGRlc3RpbmF0aW9uLm9yaWdpbi56ICsgbGF5ZXI7CisgICAgICAgICAgICBbbV9ibGl0Q29t
bWFuZEVuY29kZXIKKyAgICAgICAgICAgICAgICBjb3B5RnJvbUJ1ZmZlcjp0ZW1wb3JhcnlCdWZm
ZXIKKyAgICAgICAgICAgICAgICBzb3VyY2VPZmZzZXQ6c291cmNlT2Zmc2V0CisgICAgICAgICAg
ICAgICAgc291cmNlQnl0ZXNQZXJSb3c6Ynl0ZXNQZXJSb3cKKyAgICAgICAgICAgICAgICBzb3Vy
Y2VCeXRlc1BlckltYWdlOmJ5dGVzUGVySW1hZ2UKKyAgICAgICAgICAgICAgICBzb3VyY2VTaXpl
OnNvdXJjZVNpemUKKyAgICAgICAgICAgICAgICB0b1RleHR1cmU6ZnJvbUFQSShkZXN0aW5hdGlv
bi50ZXh0dXJlKS50ZXh0dXJlKCkKKyAgICAgICAgICAgICAgICBkZXN0aW5hdGlvblNsaWNlOmRl
c3RpbmF0aW9uU2xpY2UKKyAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbkxldmVsOmRlc3RpbmF0
aW9uLm1pcExldmVsCisgICAgICAgICAgICAgICAgZGVzdGluYXRpb25PcmlnaW46ZGVzdGluYXRp
b25PcmlnaW4KKyAgICAgICAgICAgICAgICBvcHRpb25zOm9wdGlvbnNdOworICAgICAgICB9Cisg
ICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIFdHUFVUZXh0dXJlRGltZW5zaW9uXzJEOiB7
CisgICAgICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL21l
dGFsL210bGJsaXRjb21tYW5kZW5jb2Rlci8xNDAwNzcxLWNvcHlmcm9tYnVmZmVyP2xhbmd1YWdl
PW9iamMKKyAgICAgICAgLy8gIldoZW4geW91IGNvcHkgdG8gYSAyRCB0ZXh0dXJlLCBkZXB0aCBt
dXN0IGJlIDEuIgorICAgICAgICBhdXRvIHNvdXJjZVNpemUgPSBNVExTaXplTWFrZSh3aWR0aEZv
ck1ldGFsLCBoZWlnaHRGb3JNZXRhbCwgMSk7CisgICAgICAgIGF1dG8gZGVzdGluYXRpb25Pcmln
aW4gPSBNVExPcmlnaW5NYWtlKGRlc3RpbmF0aW9uLm9yaWdpbi54LCBkZXN0aW5hdGlvbi5vcmln
aW4ueSwgMSk7CisgICAgICAgIGZvciAodWludDMyX3QgbGF5ZXIgPSAwOyBsYXllciA8IHNpemUu
ZGVwdGhPckFycmF5TGF5ZXJzOyArK2xheWVyKSB7CisgICAgICAgICAgICAvLyBGSVhNRTogVXNl
IGNoZWNrZWQgYXJpdGhtZXRpYy4KKyAgICAgICAgICAgIE5TVUludGVnZXIgc291cmNlT2Zmc2V0
ID0gbGF5ZXIgKiBieXRlc1BlckltYWdlOworICAgICAgICAgICAgTlNVSW50ZWdlciBkZXN0aW5h
dGlvblNsaWNlID0gZGVzdGluYXRpb24ub3JpZ2luLnogKyBsYXllcjsKKyAgICAgICAgICAgIFtt
X2JsaXRDb21tYW5kRW5jb2RlcgorICAgICAgICAgICAgICAgIGNvcHlGcm9tQnVmZmVyOnRlbXBv
cmFyeUJ1ZmZlcgorICAgICAgICAgICAgICAgIHNvdXJjZU9mZnNldDpzb3VyY2VPZmZzZXQKKyAg
ICAgICAgICAgICAgICBzb3VyY2VCeXRlc1BlclJvdzpieXRlc1BlclJvdworICAgICAgICAgICAg
ICAgIHNvdXJjZUJ5dGVzUGVySW1hZ2U6Ynl0ZXNQZXJJbWFnZQorICAgICAgICAgICAgICAgIHNv
dXJjZVNpemU6c291cmNlU2l6ZQorICAgICAgICAgICAgICAgIHRvVGV4dHVyZTpmcm9tQVBJKGRl
c3RpbmF0aW9uLnRleHR1cmUpLnRleHR1cmUoKQorICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9u
U2xpY2U6ZGVzdGluYXRpb25TbGljZQorICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uTGV2ZWw6
ZGVzdGluYXRpb24ubWlwTGV2ZWwKKyAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbk9yaWdpbjpk
ZXN0aW5hdGlvbk9yaWdpbgorICAgICAgICAgICAgICAgIG9wdGlvbnM6b3B0aW9uc107CisgICAg
ICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgV0dQVVRleHR1cmVEaW1lbnNp
b25fM0Q6IHsKKyAgICAgICAgYXV0byBzb3VyY2VTaXplID0gTVRMU2l6ZU1ha2Uod2lkdGhGb3JN
ZXRhbCwgaGVpZ2h0Rm9yTWV0YWwsIGRlcHRoRm9yTWV0YWwpOworICAgICAgICBhdXRvIGRlc3Rp
bmF0aW9uT3JpZ2luID0gTVRMT3JpZ2luTWFrZShkZXN0aW5hdGlvbi5vcmlnaW4ueCwgZGVzdGlu
YXRpb24ub3JpZ2luLnksIGRlc3RpbmF0aW9uLm9yaWdpbi56KTsKKyAgICAgICAgTlNVSW50ZWdl
ciBzb3VyY2VPZmZzZXQgPSAwOworICAgICAgICBbbV9ibGl0Q29tbWFuZEVuY29kZXIKKyAgICAg
ICAgICAgIGNvcHlGcm9tQnVmZmVyOnRlbXBvcmFyeUJ1ZmZlcgorICAgICAgICAgICAgc291cmNl
T2Zmc2V0OnNvdXJjZU9mZnNldAorICAgICAgICAgICAgc291cmNlQnl0ZXNQZXJSb3c6Ynl0ZXNQ
ZXJSb3cKKyAgICAgICAgICAgIHNvdXJjZUJ5dGVzUGVySW1hZ2U6Ynl0ZXNQZXJJbWFnZQorICAg
ICAgICAgICAgc291cmNlU2l6ZTpzb3VyY2VTaXplCisgICAgICAgICAgICB0b1RleHR1cmU6ZnJv
bUFQSShkZXN0aW5hdGlvbi50ZXh0dXJlKS50ZXh0dXJlKCkKKyAgICAgICAgICAgIGRlc3RpbmF0
aW9uU2xpY2U6MAorICAgICAgICAgICAgZGVzdGluYXRpb25MZXZlbDpkZXN0aW5hdGlvbi5taXBM
ZXZlbAorICAgICAgICAgICAgZGVzdGluYXRpb25PcmlnaW46ZGVzdGluYXRpb25PcmlnaW4KKyAg
ICAgICAgICAgIG9wdGlvbnM6b3B0aW9uc107CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBj
YXNlIFdHUFVUZXh0dXJlRGltZW5zaW9uX0ZvcmNlMzI6CisgICAgICAgIHJldHVybjsKKyAgICB9
CiB9CiAKIHZvaWQgUXVldWU6OnNldExhYmVsKFN0cmluZyYmIGxhYmVsKQo=
</data>
<flag name="review"
          id="484451"
          type_id="1"
          status="+"
          setter="dino"
    />
    <flag name="commit-queue"
          id="484590"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>