<?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>227927</bug_id>
          
          <creation_ts>2021-07-13 16:05:09 -0700</creation_ts>
          <short_desc>libpas executable-allocator should reserve more than 256KB for non-fail region at least</short_desc>
          <delta_ts>2021-07-14 11:31:20 -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>JavaScriptCore</component>
          <version>Other</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=226404</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="Ryan Haddad">ryanhaddad</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bot-watchers-bugzilla</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1776788</commentid>
    <comment_count>0</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2021-07-13 16:05:09 -0700</bug_when>
    <thetext>~31 JSC tests are failing on Big Sur M1 bots after https://trac.webkit.org/changeset/279867/webkit

Release: https://build.webkit.org/#/builders/102/builds/2224
Debug: https://build.webkit.org/#/builders/100/builds/562

stress/fold-multi-get-by-offset-to-get-by-offset-without-folding-the-structure-check.js.ftl-no-cjit-small-pool: Ran out of executable memory while allocating 1120 bytes.
stress/SharedArrayBuffer-opt.js.ftl-no-cjit-small-pool: Ran out of executable memory while allocating 672 bytes.
stress/to-number-intrinsic-value-profiling.js.ftl-no-cjit-small-pool: Ran out of executable memory while allocating 1216 bytes.
stress/prune-multi-put-by-offset-replace-or-transition-variant.js.ftl-no-cjit-small-pool: Ran out of executable memory while allocating 1120 bytes.
stress/exit-from-getter.js.ftl-no-cjit-small-pool: Ran out of executable memory while allocating 1120 bytes.
stress/istypedarrayview-intrinsic.js.ftl-no-cjit-small-pool: Ran out of executable memory while allocating 96 bytes.
stress/inlined-constructor-this-liveness.js.ftl-no-cjit-small-pool: Ran out of executable memory while allocating 1184 bytes.
stress/poly-proto-setter-changes-setter-2.js.ftl-no-cjit-small-pool: Ran out of executable memory while allocating 7520 bytes.
stress/arguments-inlined-exit.js.ftl-no-cjit-small-pool: Ran out of executable memory while allocating 1344 bytes.
stress/sink-to-impossible-multi-get-by-offset-on-prototypes.js.ftl-no-cjit-small-pool: Ran out of executable memory while allocating 1184 bytes.
stress/private-method-check-structure-miss.js.ftl-no-cjit-small-pool: Ran out of executable memory while allocating 1024 bytes.
stress/get-private-name-cache-failure.js.ftl-no-cjit-small-pool: Ran out of executable memory while allocating 6944 bytes.
stress/arguments-inlined-exit-strict-mode-fixed.js.ftl-no-cjit-small-pool: Ran out of executable memory while allocating 1408 bytes.
stress/sink-multigetbyoffset.js.ftl-no-cjit-small-pool: Ran out of executable memory while allocating 1152 bytes.
stress/super-get-by-id.js.ftl-no-cjit-small-pool: Ran out of executable memory while allocating 1056 bytes.
stress/regexp-exec-effect-after-exception.js.ftl-no-cjit-small-pool: Ran out of executable memory while allocating 1024 bytes.
stress/poly-proto-setter-adds-setter-in-middle.js.ftl-no-cjit-small-pool: Ran out of executable memory while allocating 6336 bytes.
stress/poly-proto-setter-changes-setter.js.ftl-no-cjit-small-pool: Ran out of executable memory while allocating 7648 bytes.
stress/regress-189317.js.ftl-no-cjit-small-pool: Ran out of executable memory while allocating 288 bytes.
stress/proxy-set-prototype-of.js.ftl-no-cjit-small-pool: Ran out of executable memory while allocating 576 bytes.
stress/call-apply-exponential-bytecode-size.js.ftl-no-cjit-small-pool: Ran out of executable memory while allocating 1152 bytes.
stress/global-isNaN-basics.js.ftl-no-cjit-small-pool: Ran out of executable memory while allocating 1152 bytes.
stress/get-my-argument-by-val-inlined-no-formal-parameters.js.ftl-no-cjit-small-pool: Ran out of executable memory while allocating 1280 bytes.
stress/delete-property-poly-proto.js.ftl-no-cjit-small-pool: Ran out of executable memory while allocating 6976 bytes.
stress/simplify-varargs-mandatory-minimum-smaller-than-limit.js.ftl-no-cjit-small-pool: Ran out of executable memory while allocating 2080 bytes.
stress/Number-isNaN-basics.js.ftl-no-cjit-small-pool: Ran out of executable memory while allocating 1120 bytes.
stress/array-push-nan-to-double-array.js.ftl-no-cjit-small-pool: Ran out of executable memory while allocating 1120 bytes.
stress/private-in.js.ftl-no-cjit-small-pool: Ran out of executable memory while allocating 480 bytes.
stress/fold-multi-put-by-offset-to-put-by-offset-without-folding-the-structure-check.js.ftl-no-cjit-small-pool: Ran out of executable memory while allocating 1120 bytes.
microbenchmarks/load-varargs-elimination.js.ftl-no-cjit-small-pool: Ran out of executable memory while allocating 2208 bytes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776789</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-07-13 16:05:43 -0700</bug_when>
    <thetext>&lt;rdar://problem/80543573&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776858</commentid>
    <comment_count>2</comment_count>
      <attachid>433477</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-07-13 21:15:52 -0700</bug_when>
    <thetext>Created attachment 433477
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776862</commentid>
    <comment_count>3</comment_count>
      <attachid>433481</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-07-13 21:20:31 -0700</bug_when>
    <thetext>Created attachment 433481
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776863</commentid>
    <comment_count>4</comment_count>
      <attachid>433482</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-07-13 21:27:31 -0700</bug_when>
    <thetext>Created attachment 433482
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776864</commentid>
    <comment_count>5</comment_count>
      <attachid>433483</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-07-13 21:28:16 -0700</bug_when>
    <thetext>Created attachment 433483
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776865</commentid>
    <comment_count>6</comment_count>
      <attachid>433484</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-07-13 21:54:19 -0700</bug_when>
    <thetext>Created attachment 433484
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776866</commentid>
    <comment_count>7</comment_count>
      <attachid>433485</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-07-13 21:58:51 -0700</bug_when>
    <thetext>Created attachment 433485
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776982</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-07-14 11:31:18 -0700</bug_when>
    <thetext>Committed r279913 (239662@main): &lt;https://commits.webkit.org/239662@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 433485.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433477</attachid>
            <date>2021-07-13 21:15:52 -0700</date>
            <delta_ts>2021-07-13 21:21:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227927-20210713211551.patch</filename>
            <type>text/plain</type>
            <size>10744</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5ODkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
MDllY2I1MTIwMTFiZjFhY2QxNjhkZGYxZjVkNTc3Njc4NzlkMjYyLi42OGM1MzlkODViMGU5ZDJh
YzJjMGI4YmFhYjM2MzJmNjRiM2FkMjllIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMiBAQAorMjAyMS0wNy0xMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIGxpYnBhcyBleGVjdXRhYmxlLWFsbG9jYXRvciBzaG91bGQgcmVzZXJ2ZSBt
b3JlIHRoYW4gMjU2S0IgZm9yIG5vbi1mYWlsIHJlZ2lvbiBhdCBsZWFzdAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3OTI3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgbGlicGFzIGppdF9oZWFwIGhhcyBt
ZWRpYW0gYWxsb2NhdG9yIHdoaWNoIGFsbG9jYXRlcyAxMjhLQiBwYWdlcyBhdCBvbmNlLiBIb3dl
dmVyLCBvdXIgSlNDIHN0cmVzcyB0ZXN0cyBhcmUgc2V0dGluZyAxMDBLQgorICAgICAgICBmb3Ig
c21hbGwgZXhlY3V0YWJsZSBtZW1vcnkgdGVzdHMuIEFzIGEgcmVzdWx0LCB1bmRlciB0aGlzIGNv
bmZpZ3VyYXRpb24sIHdlIGZhaWwgaW1tZWRpYXRlbHkgYWZ0ZXIgdXNpbmcgbWVkaXVtIGFsbG9j
YXRvci4KKworICAgICAgICBCdXQgdGhpcyB0ZXN0J3MgInRvdGFsIHNpemUgb2YgZXhlY3V0YWJs
ZSBtZW1vcnkgaXMgMTAwS0IiIGlzIHVucmVhbGlzdGljOiBpdCBpcyBwb3NzaWJsZSB0aGF0IG9u
bHkgMTAwS0IgbWVtb3J5IHJlbWFpbnMsCisgICAgICAgIGJ1dCBpdCBpcyBpbXBvc3NpYmxlIHRo
YXQgd2UgcmVzZXJ2ZSBvbmx5IDI1S0IgZm9yIG5vbi1mYWlsIHJlc2VydmF0aW9uLiBJbiBwcm9k
dWN0aW9uLCB3ZSBhcmUgYWx3YXlzIHJlc2VydmluZyAxMjhNQi4gU28KKyAgICAgICAgdGhpcyBj
b25maWd1cmF0aW9uIGlzIG5vdCByZWFsaXN0aWMgYWN0dWFsbHkuCisKKyAgICAgICAgU28sIHRo
aXMgcGF0Y2ggY2hhbmdlcywKKworICAgICAgICAgICAgMS4gSWYgbm9uLWZhaWwgcmVnaW9uIGlz
IGxlc3MgdGhhbiAyNTZLQiwgdGhlbiB3ZSBhZGQgMjU2S0IgYW5kIGtlZXAgdGhpcyAyNTZLQiBh
cyBub24tZmFpbCBleGVjdXRhYmxlIGFsbG9jYXRpb24uIElmIG5vdCwKKyAgICAgICAgICAgICAg
IHVzZSAwLjI1IHJhdGlvIGFzIHdlIGFyZSBkb2luZy4gVGhpcyBtZWFucyB0aGF0IE9wdGlvbnM6
OmppdE1lbW9yeVJlc2VydmF0aW9uU2l6ZSBjb25maWd1cmVzIGZhaWxhYmxlIHJlZ2lvbiBvZgor
ICAgICAgICAgICAgICAgZXhlY3V0YWJsZSBtZW1vcnkuCisgICAgICAgICAgICAzLiBXZSBhbHNv
IHJldml2ZSBieXRlc1Jlc2VydmVkIGFuZCBieXRlc0FsbG9jYXRlZCB0byBtYWtlIG1lbW9yeVBy
ZXNzdXJlTXVsdGlwbGllciBhbmQgZWFybHktZmFpbCBhbGxvY2F0aW9uICh3aGVuIHRoZXJlIGlz
CisgICAgICAgICAgICAgICBub3QgZW5vdWdoIG1lbW9yeSBhbmQgYWxsb2NhdGlvbiBjYW4gZmFp
bCwgdGhlbiB3ZSBzaG91bGQgZmFpbCkuCisKKyAgICAgICAgKiBqaXQvRXhlY3V0YWJsZUFsbG9j
YXRvci5jcHA6CisgICAgICAgIChKU0M6OmluaXRpYWxpemVKSVRQYWdlUmVzZXJ2YXRpb24pOgor
ICAgICAgICAoSlNDOjpFeGVjdXRhYmxlQWxsb2NhdG9yOjp1bmRlck1lbW9yeVByZXNzdXJlKToK
KyAgICAgICAgKEpTQzo6RXhlY3V0YWJsZUFsbG9jYXRvcjo6bWVtb3J5UHJlc3N1cmVNdWx0aXBs
aWVyKToKKyAgICAgICAgKEpTQzo6RXhlY3V0YWJsZUFsbG9jYXRvcjo6YWxsb2NhdGUpOgorICAg
ICAgICAoSlNDOjpFeGVjdXRhYmxlTWVtb3J5SGFuZGxlOjp+RXhlY3V0YWJsZU1lbW9yeUhhbmRs
ZSk6CisKIDIwMjEtMDctMTMgIFlpamlhIEh1YW5nICA8eWlqaWFfaHVhbmdAYXBwbGUuY29tPgog
CiAgICAgICAgIEFkZCBhIG5ldyBBaXI6OkFyZyBraW5kIFplcm9SZWcgdG8gbGV0IEFJUiByZWNv
Z25pc2UgdGhlIG5ldyBpbnN0cnVjdGlvbnMvZm9ybXMgYWNjZXB0aW5nIHplcm8gcmVnaXN0ZXIg
aW4gQVJNNjQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJs
ZUFsbG9jYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVBbGxv
Y2F0b3IuY3BwCmluZGV4IGU2NmJiOWYyMWJhNTk3MTNjYzYyODQ1YmM5ZTgwOTc3ZWE4MWY3ZTMu
LjdlOGU4MGZkYzZlOWRkYWMzYmZhMzQ3MzJkMWNmNDkzN2E1YTljZTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9yLmNwcApAQCAtMTI0LDYg
KzEyNCwxMiBAQCBzdGF0aWMgY29uc3RleHByIGRvdWJsZSBleGVjdXRhYmxlUG9vbFJlc2VydmF0
aW9uRnJhY3Rpb24gPSAwLjE1Owogc3RhdGljIGNvbnN0ZXhwciBkb3VibGUgZXhlY3V0YWJsZVBv
b2xSZXNlcnZhdGlvbkZyYWN0aW9uID0gMC4yNTsKICNlbmRpZgogCisjaWYgVVNFKExJQlBBU19K
SVRfSEVBUCkKKy8vIFRoaXMgc2l6ZSBpcyBkZXJpdmVkIGZyb20gaml0X2NvbmZpZydzIG1lZGl1
bSB0YWJsZSBzaXplLgorc3RhdGljIGNvbnN0ZXhwciBzaXplX3QgbWluaW11bUV4ZWN1dGFibGVQ
b29sUmVzZXJ2YXRpb25TaXplID0gMjU2ICogS0I7CitzdGF0aWNfYXNzZXJ0KGZpeGVkRXhlY3V0
YWJsZU1lbW9yeVBvb2xTaXplICogZXhlY3V0YWJsZVBvb2xSZXNlcnZhdGlvbkZyYWN0aW9uID49
IG1pbmltdW1FeGVjdXRhYmxlUG9vbFJlc2VydmF0aW9uU2l6ZSk7CisjZW5kaWYKKwogc3RhdGlj
IGJvb2wgaXNKSVRFbmFibGVkKCkKIHsKICAgICBib29sIGppdEVuYWJsZWQgPSAhZ19qc2NDb25m
aWcuaml0RGlzYWJsZWQ7CkBAIC0zNDAsNiArMzQ2LDEwIEBAIHN0YXRpYyBBTFdBWVNfSU5MSU5F
IEpJVFJlc2VydmF0aW9uIGluaXRpYWxpemVKSVRQYWdlUmVzZXJ2YXRpb24oKQogCiAgICAgaWYg
KE9wdGlvbnM6OmppdE1lbW9yeVJlc2VydmF0aW9uU2l6ZSgpKSB7CiAgICAgICAgIHJlc2VydmF0
aW9uLnNpemUgPSBPcHRpb25zOjpqaXRNZW1vcnlSZXNlcnZhdGlvblNpemUoKTsKKyNpZiBVU0Uo
TElCUEFTX0pJVF9IRUFQKQorICAgICAgICBpZiAocmVzZXJ2YXRpb24uc2l6ZSAqIGV4ZWN1dGFi
bGVQb29sUmVzZXJ2YXRpb25GcmFjdGlvbiA8IG1pbmltdW1FeGVjdXRhYmxlUG9vbFJlc2VydmF0
aW9uU2l6ZSkKKyAgICAgICAgICAgIHJlc2VydmF0aW9uLnNpemUgKz0gbWluaW11bUV4ZWN1dGFi
bGVQb29sUmVzZXJ2YXRpb25TaXplOworI2VuZGlmCiAKICNpZiBFTkFCTEUoSlVNUF9JU0xBTkRT
KQogICAgICAgICAvLyBJZiBhc2tlZCBmb3IgYSByZXNlcnZhdGlvbiBzbWFsbGVyIHRoYW4gaXNs
YW5kIHNpemUsIGFzc3VtZSB0aGF0IHdlIHdhbnQgdGhhdCBzaXplIGFsbG9jYXRpb24KQEAgLTQ0
NCw3ICs0NTQsOSBAQCBjbGFzcyBGaXhlZFZNUG9vbEV4ZWN1dGFibGVBbGxvY2F0b3IgZmluYWwg
ewogICAgICAgICAgICAgICAgICAgICBtX2FsbG9jYXRvcnNbaV0ubV9lbmQgPSB0YWdDb2RlUHRy
PEV4ZWN1dGFibGVNZW1vcnlQdHJUYWc+KGJpdHdpc2VfY2FzdDx2b2lkKj4ocmVzZXJ2YXRpb25F
bmQpKTsKICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICBtX2FsbG9jYXRvcnNb
aV0uYWRkRnJlc2hGcmVlU3BhY2UoYml0d2lzZV9jYXN0PHZvaWQqPihtX2FsbG9jYXRvcnNbaV0u
c3RhcnQoKSksIG1fYWxsb2NhdG9yc1tpXS5hbGxvY2F0b3JTaXplKCkpOworICAgICAgICAgICAg
ICAgIHNpemVfdCBzaXplSW5CeXRlcyA9IG1fYWxsb2NhdG9yc1tpXS5hbGxvY2F0b3JTaXplKCk7
CisgICAgICAgICAgICAgICAgbV9hbGxvY2F0b3JzW2ldLmFkZEZyZXNoRnJlZVNwYWNlKGJpdHdp
c2VfY2FzdDx2b2lkKj4obV9hbGxvY2F0b3JzW2ldLnN0YXJ0KCkpLCBzaXplSW5CeXRlcyk7Cisg
ICAgICAgICAgICAgICAgbV9ieXRlc1Jlc2VydmVkICs9IHNpemVJbkJ5dGVzOwogCiAgICAgICAg
ICAgICAgICAgUkVMRUFTRV9BU1NFUlQobV9hbGxvY2F0b3JzW2ldLmFsbG9jYXRvclNpemUoKSA8
IHJlZ2lvblNpemUpOwogICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKG1fYWxsb2NhdG9y
c1tpXS5pc2xhbmRCZWdpbigpID4gbV9hbGxvY2F0b3JzW2ldLnN0YXJ0KCkpOwpAQCAtNDU0LDkg
KzQ2Niw3IEBAIGNsYXNzIEZpeGVkVk1Qb29sRXhlY3V0YWJsZUFsbG9jYXRvciBmaW5hbCB7CiAg
ICAgICAgICAgICB9CiAjZWxzZQogICAgICAgICAgICAgbV9hbGxvY2F0b3IuYWRkRnJlc2hGcmVl
U3BhY2UocmVzZXJ2YXRpb24uYmFzZSwgcmVzZXJ2YXRpb24uc2l6ZSk7Ci0jaWYgIVVTRShMSUJQ
QVNfSklUX0hFQVApCi0gICAgICAgICAgICBBU1NFUlQoYnl0ZXNSZXNlcnZlZCgpID09IHJlc2Vy
dmF0aW9uLnNpemUpOyAvLyBTaW5jZSBvdXIgZXhlY3V0YWJsZSBtZW1vcnkgaXMgZml4ZWQtc2l6
ZWQsIGJ5dGVzUmVzZXJ2ZWQgaXMgbmV2ZXIgY2hhbmdlZCBhZnRlciBpbml0aWFsaXphdGlvbi4K
LSNlbmRpZgorICAgICAgICAgICAgbV9ieXRlc1Jlc2VydmVkICs9IHJlc2VydmF0aW9uLnNpemU7
CiAjZW5kaWYKICAgICAgICAgfQogICAgIH0KQEAgLTQ3NCw3ICs0ODQsMTAgQEAgY2xhc3MgRml4
ZWRWTVBvb2xFeGVjdXRhYmxlQWxsb2NhdG9yIGZpbmFsIHsKICAgICBSZWZQdHI8RXhlY3V0YWJs
ZU1lbW9yeUhhbmRsZT4gYWxsb2NhdGUoc2l6ZV90IHNpemVJbkJ5dGVzKQogICAgIHsKICNpZiBV
U0UoTElCUEFTX0pJVF9IRUFQKQotICAgICAgICByZXR1cm4gRXhlY3V0YWJsZU1lbW9yeUhhbmRs
ZTo6Y3JlYXRlSW1wbChzaXplSW5CeXRlcyk7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gRXhlY3V0
YWJsZU1lbW9yeUhhbmRsZTo6Y3JlYXRlSW1wbChzaXplSW5CeXRlcyk7CisgICAgICAgIGlmIChM
SUtFTFkocmVzdWx0KSkKKyAgICAgICAgICAgIG1fYnl0ZXNBbGxvY2F0ZWQuZmV0Y2hfYWRkKHNp
emVJbkJ5dGVzLCBzdGQ6Om1lbW9yeV9vcmRlcl9yZWxheGVkKTsKKyAgICAgICAgcmV0dXJuIHJl
c3VsdDsKICNlbGlmIEVOQUJMRShKVU1QX0lTTEFORFMpCiAgICAgICAgIExvY2tlciBsb2NrZXIg
eyBnZXRMb2NrKCkgfTsKIApAQCAtNDk5LDI0ICs1MTIsNDcgQEAgY2xhc3MgRml4ZWRWTVBvb2xF
eGVjdXRhYmxlQWxsb2NhdG9yIGZpbmFsIHsKIAogICAgIExvY2smIGdldExvY2soKSBXVEZfUkVU
VVJOU19MT0NLKG1fbG9jaykgeyByZXR1cm4gbV9sb2NrOyB9CiAKLSNpZiAhVVNFKExJQlBBU19K
SVRfSEVBUCkKICAgICAvLyBOb24gYXRvbWljCi0gICAgc2l6ZV90IGJ5dGVzQWxsb2NhdGVkKCkg
CisgICAgc2l6ZV90IGJ5dGVzQWxsb2NhdGVkKCkKICAgICB7CisjaWYgVVNFKExJQlBBU19KSVRf
SEVBUCkKKyAgICAgICAgcmV0dXJuIG1fYnl0ZXNBbGxvY2F0ZWQubG9hZChzdGQ6Om1lbW9yeV9v
cmRlcl9yZWxheGVkKTsKKyNlbHNlCiAgICAgICAgIHNpemVfdCByZXN1bHQgPSAwOwogICAgICAg
ICBmb3JFYWNoQWxsb2NhdG9yKFsmXSAoQWxsb2NhdG9yJiBhbGxvY2F0b3IpIHsKICAgICAgICAg
ICAgIHJlc3VsdCArPSBhbGxvY2F0b3IuYnl0ZXNBbGxvY2F0ZWQoKTsKICAgICAgICAgfSk7CiAg
ICAgICAgIHJldHVybiByZXN1bHQ7CisjZW5kaWYKICAgICB9Ci0gICAgc2l6ZV90IGJ5dGVzUmVz
ZXJ2ZWQoKSAKKworICAgIHNpemVfdCBieXRlc1Jlc2VydmVkKCkKICAgICB7CisjaWYgVVNFKExJ
QlBBU19KSVRfSEVBUCkKKyAgICAgICAgcmV0dXJuIG1fYnl0ZXNSZXNlcnZlZDsKKyNlbHNlCiAg
ICAgICAgIHNpemVfdCByZXN1bHQgPSAwOwogICAgICAgICBmb3JFYWNoQWxsb2NhdG9yKFsmXSAo
QWxsb2NhdG9yJiBhbGxvY2F0b3IpIHsKICAgICAgICAgICAgIHJlc3VsdCArPSBhbGxvY2F0b3Iu
Ynl0ZXNSZXNlcnZlZCgpOwogICAgICAgICB9KTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyNl
bmRpZgorICAgIH0KKworICAgIHNpemVfdCBieXRlc0F2YWlsYWJsZSgpCisgICAgeworICAgICAg
ICBzaXplX3QgYnl0ZXNSZXNlcnZlZCA9IHRoaXMtPmJ5dGVzUmVzZXJ2ZWQoKTsKKyNpZiBVU0Uo
TElCUEFTX0pJVF9IRUFQKQorICAgICAgICBzaXplX3Qgbm9uQXZhaWxhYmxlU2l6ZSA9IHN0YXRp
Y19jYXN0PHNpemVfdD4oYnl0ZXNSZXNlcnZlZCAqIGV4ZWN1dGFibGVQb29sUmVzZXJ2YXRpb25G
cmFjdGlvbik7CisgICAgICAgIGlmIChub25BdmFpbGFibGVTaXplIDwgbWluaW11bUV4ZWN1dGFi
bGVQb29sUmVzZXJ2YXRpb25TaXplKQorICAgICAgICAgICAgcmV0dXJuIGJ5dGVzUmVzZXJ2ZWQg
LSBtaW5pbXVtRXhlY3V0YWJsZVBvb2xSZXNlcnZhdGlvblNpemU7CisgICAgICAgIHJldHVybiBi
eXRlc1Jlc2VydmVkIC0gbm9uQXZhaWxhYmxlU2l6ZTsKKyNlbHNlCisgICAgICAgIHJldHVybiBz
dGF0aWNfY2FzdDxzaXplX3Q+KGJ5dGVzUmVzZXJ2ZWQgKiAoMSAtIGV4ZWN1dGFibGVQb29sUmVz
ZXJ2YXRpb25GcmFjdGlvbikpOworI2VuZGlmCiAgICAgfQorCisjaWYgIVVTRShMSUJQQVNfSklU
X0hFQVApCiAgICAgc2l6ZV90IGJ5dGVzQ29tbWl0dGVkKCkKICAgICB7CiAgICAgICAgIHNpemVf
dCByZXN1bHQgPSAwOwpAQCAtNTYzLDggKzU5OSw5IEBAIGNsYXNzIEZpeGVkVk1Qb29sRXhlY3V0
YWJsZUFsbG9jYXRvciBmaW5hbCB7CiAjZW5kaWYgLy8gIVVTRShMSUJQQVNfSklUX0hFQVApCiAK
ICNpZiBVU0UoTElCUEFTX0pJVF9IRUFQKQotICAgIHZvaWQgaGFuZGxlV2lsbEJlUmVsZWFzZWQo
RXhlY3V0YWJsZU1lbW9yeUhhbmRsZSYgaGFuZGxlKQorICAgIHZvaWQgaGFuZGxlV2lsbEJlUmVs
ZWFzZWQoRXhlY3V0YWJsZU1lbW9yeUhhbmRsZSYgaGFuZGxlLCBzaXplX3Qgc2l6ZUluQnl0ZXMp
CiAgICAgeworICAgICAgICBtX2J5dGVzQWxsb2NhdGVkLmZldGNoX3N1YihzaXplSW5CeXRlcywg
c3RkOjptZW1vcnlfb3JkZXJfcmVsYXhlZCk7CiAjaWYgRU5BQkxFKEpVTVBfSVNMQU5EUykKICAg
ICAgICAgaWYgKG1faXNsYW5kc0Zvckp1bXBTb3VyY2VMb2NhdGlvbi5pc0VtcHR5KCkpCiAgICAg
ICAgICAgICByZXR1cm47CkBAIC05MjMsNiArOTYwLDEwIEBAIGNsYXNzIEZpeGVkVk1Qb29sRXhl
Y3V0YWJsZUFsbG9jYXRvciBmaW5hbCB7CiAjZWxzZQogICAgIEFsbG9jYXRvciBtX2FsbG9jYXRv
cjsKICNlbmRpZiAvLyBFTkFCTEUoSlVNUF9JU0xBTkRTKQorI2lmIFVTRShMSUJQQVNfSklUX0hF
QVApCisgICAgc2l6ZV90IG1fYnl0ZXNSZXNlcnZlZCB7IDAgfTsKKyAgICBzdGQ6OmF0b21pYzxz
aXplX3Q+IG1fYnl0ZXNBbGxvY2F0ZWQgeyAwIH07CisjZW5kaWYKIH07CiAKIC8vIEtlZXAgdGhp
cyBwb2ludGVyIGluIGEgbXV0YWJsZSBnbG9iYWwgdmFyaWFibGUgdG8gaGVscCBMZWFrcyBmaW5k
IGl0LgpAQCAtOTQ1LDI4ICs5ODYsMjAgQEAgYm9vbCBFeGVjdXRhYmxlQWxsb2NhdG9yOjppc1Zh
bGlkKCkgY29uc3QKIAogYm9vbCBFeGVjdXRhYmxlQWxsb2NhdG9yOjp1bmRlck1lbW9yeVByZXNz
dXJlKCkKIHsKLSNpZiBVU0UoTElCUEFTX0pJVF9IRUFQKQotICAgIHJldHVybiBCYXNlOjp1bmRl
ck1lbW9yeVByZXNzdXJlKCk7Ci0jZWxzZSAvLyBVU0UoTElCUEFTX0pJVF9IRUFQKSAtPiBzbyBz
dGFydCBvZiAhVVNFKExJQlBBU19KSVRfSEVBUCkKICAgICBGaXhlZFZNUG9vbEV4ZWN1dGFibGVB
bGxvY2F0b3IqIGFsbG9jYXRvciA9IGdfanNjQ29uZmlnLmZpeGVkVk1Qb29sRXhlY3V0YWJsZUFs
bG9jYXRvcjsKICAgICBpZiAoIWFsbG9jYXRvcikKICAgICAgICAgcmV0dXJuIEJhc2U6OnVuZGVy
TWVtb3J5UHJlc3N1cmUoKTsKICAgICByZXR1cm4gYWxsb2NhdG9yLT5ieXRlc0FsbG9jYXRlZCgp
ID4gYWxsb2NhdG9yLT5ieXRlc1Jlc2VydmVkKCkgLyAyOwotI2VuZGlmIC8vIFVTRShMSUJQQVNf
SklUX0hFQVApIC0+IHNvIGVuZCBvZiAhVVNFKExJQlBBU19KSVRfSEVBUCkKIH0KIAogZG91Ymxl
IEV4ZWN1dGFibGVBbGxvY2F0b3I6Om1lbW9yeVByZXNzdXJlTXVsdGlwbGllcihzaXplX3QgYWRk
ZWRNZW1vcnlVc2FnZSkKIHsKLSNpZiBVU0UoTElCUEFTX0pJVF9IRUFQKQotICAgIHJldHVybiBC
YXNlOjptZW1vcnlQcmVzc3VyZU11bHRpcGxpZXIoYWRkZWRNZW1vcnlVc2FnZSk7Ci0jZWxzZSAv
LyBVU0UoTElCUEFTX0pJVF9IRUFQKSAtPiBzbyBzdGFydCBvZiAhVVNFKExJQlBBU19KSVRfSEVB
UCkKICAgICBGaXhlZFZNUG9vbEV4ZWN1dGFibGVBbGxvY2F0b3IqIGFsbG9jYXRvciA9IGdfanNj
Q29uZmlnLmZpeGVkVk1Qb29sRXhlY3V0YWJsZUFsbG9jYXRvcjsKICAgICBpZiAoIWFsbG9jYXRv
cikKICAgICAgICAgcmV0dXJuIEJhc2U6Om1lbW9yeVByZXNzdXJlTXVsdGlwbGllcihhZGRlZE1l
bW9yeVVzYWdlKTsKICAgICBBU1NFUlQoYWxsb2NhdG9yLT5ieXRlc0FsbG9jYXRlZCgpIDw9IGFs
bG9jYXRvci0+Ynl0ZXNSZXNlcnZlZCgpKTsKICAgICBzaXplX3QgYnl0ZXNBbGxvY2F0ZWQgPSBh
bGxvY2F0b3ItPmJ5dGVzQWxsb2NhdGVkKCkgKyBhZGRlZE1lbW9yeVVzYWdlOwotICAgIHNpemVf
dCBieXRlc0F2YWlsYWJsZSA9IHN0YXRpY19jYXN0PHNpemVfdD4oCi0gICAgICAgIGFsbG9jYXRv
ci0+Ynl0ZXNSZXNlcnZlZCgpICogKDEgLSBleGVjdXRhYmxlUG9vbFJlc2VydmF0aW9uRnJhY3Rp
b24pKTsKKyAgICBzaXplX3QgYnl0ZXNBdmFpbGFibGUgPSBhbGxvY2F0b3ItPmJ5dGVzQXZhaWxh
YmxlKCk7CiAgICAgaWYgKGJ5dGVzQWxsb2NhdGVkID49IGJ5dGVzQXZhaWxhYmxlKQogICAgICAg
ICBieXRlc0FsbG9jYXRlZCA9IGJ5dGVzQXZhaWxhYmxlOwogICAgIGRvdWJsZSByZXN1bHQgPSAx
LjA7CkBAIC05NzYsNyArMTAwOSw2IEBAIGRvdWJsZSBFeGVjdXRhYmxlQWxsb2NhdG9yOjptZW1v
cnlQcmVzc3VyZU11bHRpcGxpZXIoc2l6ZV90IGFkZGVkTWVtb3J5VXNhZ2UpCiAgICAgaWYgKHJl
c3VsdCA8IDEuMCkKICAgICAgICAgcmVzdWx0ID0gMS4wOwogICAgIHJldHVybiByZXN1bHQ7Ci0j
ZW5kaWYgLy8gVVNFKExJQlBBU19KSVRfSEVBUCkgLT4gc28gZW5kIG9mICFVU0UoTElCUEFTX0pJ
VF9IRUFQKQogfQogCiBSZWZQdHI8RXhlY3V0YWJsZU1lbW9yeUhhbmRsZT4gRXhlY3V0YWJsZUFs
bG9jYXRvcjo6YWxsb2NhdGUoc2l6ZV90IHNpemVJbkJ5dGVzLCBKSVRDb21waWxhdGlvbkVmZm9y
dCBlZmZvcnQpCkBAIC0xMDAwLDE5ICsxMDMyLDE2IEBAIFJlZlB0cjxFeGVjdXRhYmxlTWVtb3J5
SGFuZGxlPiBFeGVjdXRhYmxlQWxsb2NhdG9yOjphbGxvY2F0ZShzaXplX3Qgc2l6ZUluQnl0ZXMs
CiAgICAgICAgICYmIGRvRXhlY3V0YWJsZUFsbG9jYXRpb25GdXp6aW5nSWZFbmFibGVkKCkgPT0g
UHJldGVuZFRvRmFpbEV4ZWN1dGFibGVBbGxvY2F0aW9uKQogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKIAotI2lmICFVU0UoTElCUEFTX0pJVF9IRUFQKQogICAgIGlmIChlZmZvcnQgPT0gSklUQ29t
cGlsYXRpb25DYW5GYWlsKSB7CiAgICAgICAgIC8vIERvbid0IGFsbG93IGFsbG9jYXRpb25zIGlm
IHdlIGFyZSBkb3duIHRvIHJlc2VydmUuCiAgICAgICAgIHNpemVfdCBieXRlc0FsbG9jYXRlZCA9
IGFsbG9jYXRvci0+Ynl0ZXNBbGxvY2F0ZWQoKSArIHNpemVJbkJ5dGVzOwotICAgICAgICBzaXpl
X3QgYnl0ZXNBdmFpbGFibGUgPSBzdGF0aWNfY2FzdDxzaXplX3Q+KAotICAgICAgICAgICAgYWxs
b2NhdG9yLT5ieXRlc1Jlc2VydmVkKCkgKiAoMSAtIGV4ZWN1dGFibGVQb29sUmVzZXJ2YXRpb25G
cmFjdGlvbikpOworICAgICAgICBzaXplX3QgYnl0ZXNBdmFpbGFibGUgPSBhbGxvY2F0b3ItPmJ5
dGVzQXZhaWxhYmxlKCk7CiAgICAgICAgIGlmIChieXRlc0FsbG9jYXRlZCA+IGJ5dGVzQXZhaWxh
YmxlKSB7CiAgICAgICAgICAgICBpZiAoT3B0aW9uczo6bG9nRXhlY3V0YWJsZUFsbG9jYXRpb24o
KSkKICAgICAgICAgICAgICAgICBkYXRhTG9nKCJBbGxvY2F0aW9uIGZhaWxlZCBiZWNhdXNlIGJ5
dGVzIGFsbG9jYXRlZCAiLCBieXRlc0FsbG9jYXRlZCwgICIgPiAiLCBieXRlc0F2YWlsYWJsZSwg
IiBieXRlcyBhdmFpbGFibGUuXG4iKTsKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAg
ICAgICB9CiAgICAgfQotI2VuZGlmIC8vICFVU0UoTElCUEFTX0pJVF9IRUFQKQogCiAgICAgUmVm
UHRyPEV4ZWN1dGFibGVNZW1vcnlIYW5kbGU+IHJlc3VsdCA9IGFsbG9jYXRvci0+YWxsb2NhdGUo
c2l6ZUluQnl0ZXMpOwogICAgIGlmICghcmVzdWx0KSB7CkBAIC0xMjAzLDcgKzEyMzIsNyBAQCBS
ZWZQdHI8RXhlY3V0YWJsZU1lbW9yeUhhbmRsZT4gRXhlY3V0YWJsZU1lbW9yeUhhbmRsZTo6Y3Jl
YXRlSW1wbChzaXplX3Qgc2l6ZUluQgogRXhlY3V0YWJsZU1lbW9yeUhhbmRsZTo6fkV4ZWN1dGFi
bGVNZW1vcnlIYW5kbGUoKQogewogICAgIEZpeGVkVk1Qb29sRXhlY3V0YWJsZUFsbG9jYXRvciog
YWxsb2NhdG9yID0gZ19qc2NDb25maWcuZml4ZWRWTVBvb2xFeGVjdXRhYmxlQWxsb2NhdG9yOwot
ICAgIGFsbG9jYXRvci0+aGFuZGxlV2lsbEJlUmVsZWFzZWQoKnRoaXMpOworICAgIGFsbG9jYXRv
ci0+aGFuZGxlV2lsbEJlUmVsZWFzZWQoKnRoaXMsIHNpemVJbkJ5dGVzKCkpOwogICAgIGppdF9o
ZWFwX2RlYWxsb2NhdGUoa2V5KCkpOwogfQogCg==
</data>
<flag name="commit-queue"
          id="455733"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433481</attachid>
            <date>2021-07-13 21:20:31 -0700</date>
            <delta_ts>2021-07-13 21:27:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227927-20210713212030.patch</filename>
            <type>text/plain</type>
            <size>10712</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5ODkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
MDllY2I1MTIwMTFiZjFhY2QxNjhkZGYxZjVkNTc3Njc4NzlkMjYyLi43ODFjMGE3ZWNjNjQyZTY1
OTBmMDAyNDI5ZDY1YmEyZGNhYTRkZWRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMiBAQAorMjAyMS0wNy0xMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIGxpYnBhcyBleGVjdXRhYmxlLWFsbG9jYXRvciBzaG91bGQgcmVzZXJ2ZSBt
b3JlIHRoYW4gMjU2S0IgZm9yIG5vbi1mYWlsIHJlZ2lvbiBhdCBsZWFzdAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3OTI3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgbGlicGFzIGppdF9oZWFwIGhhcyBt
ZWRpYW0gYWxsb2NhdG9yIHdoaWNoIGFsbG9jYXRlcyAxMjhLQiBwYWdlcyBhdCBvbmNlLiBIb3dl
dmVyLCBvdXIgSlNDIHN0cmVzcyB0ZXN0cyBhcmUgc2V0dGluZyAxMDBLQgorICAgICAgICBmb3Ig
c21hbGwgZXhlY3V0YWJsZSBtZW1vcnkgdGVzdHMuIEFzIGEgcmVzdWx0LCB1bmRlciB0aGlzIGNv
bmZpZ3VyYXRpb24sIHdlIGZhaWwgaW1tZWRpYXRlbHkgYWZ0ZXIgdXNpbmcgbWVkaXVtIGFsbG9j
YXRvci4KKworICAgICAgICBCdXQgdGhpcyB0ZXN0J3MgInRvdGFsIHNpemUgb2YgZXhlY3V0YWJs
ZSBtZW1vcnkgaXMgMTAwS0IiIGlzIHVucmVhbGlzdGljOiBpdCBpcyBwb3NzaWJsZSB0aGF0IG9u
bHkgMTAwS0IgbWVtb3J5IHJlbWFpbnMsCisgICAgICAgIGJ1dCBpdCBpcyBpbXBvc3NpYmxlIHRo
YXQgd2UgcmVzZXJ2ZSBvbmx5IDI1S0IgZm9yIG5vbi1mYWlsIHJlc2VydmF0aW9uLiBJbiBwcm9k
dWN0aW9uLCB3ZSBhcmUgYWx3YXlzIHJlc2VydmluZyAxMjhNQi4gU28KKyAgICAgICAgdGhpcyBj
b25maWd1cmF0aW9uIGlzIG5vdCByZWFsaXN0aWMgYWN0dWFsbHkuCisKKyAgICAgICAgU28sIHRo
aXMgcGF0Y2ggY2hhbmdlcywKKworICAgICAgICAgICAgMS4gSWYgbm9uLWZhaWwgcmVnaW9uIGlz
IGxlc3MgdGhhbiAyNTZLQiwgdGhlbiB3ZSBhZGQgMjU2S0IgYW5kIGtlZXAgdGhpcyAyNTZLQiBh
cyBub24tZmFpbCBleGVjdXRhYmxlIGFsbG9jYXRpb24uIElmIG5vdCwKKyAgICAgICAgICAgICAg
ICB1c2UgMC4yNSByYXRpbyBhcyB3ZSBhcmUgZG9pbmcuIFRoaXMgbWVhbnMgdGhhdCBPcHRpb25z
OjpqaXRNZW1vcnlSZXNlcnZhdGlvblNpemUgY29uZmlndXJlcyBmYWlsYWJsZSByZWdpb24gb2YK
KyAgICAgICAgICAgICAgICBleGVjdXRhYmxlIG1lbW9yeS4KKyAgICAgICAgICAgIDIuIFdlIGFs
c28gcmV2aXZlIGJ5dGVzUmVzZXJ2ZWQgYW5kIGJ5dGVzQWxsb2NhdGVkIHRvIG1ha2UgbWVtb3J5
UHJlc3N1cmVNdWx0aXBsaWVyIGFuZCBlYXJseS1mYWlsIGFsbG9jYXRpb24gKHdoZW4gdGhlcmUg
aXMKKyAgICAgICAgICAgICAgICBub3QgZW5vdWdoIG1lbW9yeSBhbmQgYWxsb2NhdGlvbiBjYW4g
ZmFpbCwgdGhlbiB3ZSBzaG91bGQgZmFpbCkuCisKKyAgICAgICAgKiBqaXQvRXhlY3V0YWJsZUFs
bG9jYXRvci5jcHA6CisgICAgICAgIChKU0M6OmluaXRpYWxpemVKSVRQYWdlUmVzZXJ2YXRpb24p
OgorICAgICAgICAoSlNDOjpFeGVjdXRhYmxlQWxsb2NhdG9yOjp1bmRlck1lbW9yeVByZXNzdXJl
KToKKyAgICAgICAgKEpTQzo6RXhlY3V0YWJsZUFsbG9jYXRvcjo6bWVtb3J5UHJlc3N1cmVNdWx0
aXBsaWVyKToKKyAgICAgICAgKEpTQzo6RXhlY3V0YWJsZUFsbG9jYXRvcjo6YWxsb2NhdGUpOgor
ICAgICAgICAoSlNDOjpFeGVjdXRhYmxlTWVtb3J5SGFuZGxlOjp+RXhlY3V0YWJsZU1lbW9yeUhh
bmRsZSk6CisKIDIwMjEtMDctMTMgIFlpamlhIEh1YW5nICA8eWlqaWFfaHVhbmdAYXBwbGUuY29t
PgogCiAgICAgICAgIEFkZCBhIG5ldyBBaXI6OkFyZyBraW5kIFplcm9SZWcgdG8gbGV0IEFJUiBy
ZWNvZ25pc2UgdGhlIG5ldyBpbnN0cnVjdGlvbnMvZm9ybXMgYWNjZXB0aW5nIHplcm8gcmVnaXN0
ZXIgaW4gQVJNNjQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0
YWJsZUFsbG9jYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVB
bGxvY2F0b3IuY3BwCmluZGV4IGU2NmJiOWYyMWJhNTk3MTNjYzYyODQ1YmM5ZTgwOTc3ZWE4MWY3
ZTMuLjkzYjYyZGQ4MDIwMjVlYzJiNjdiOGFiMzM1MTc1NThkZjAyZjAzNzcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9yLmNwcApAQCAtMTI0
LDYgKzEyNCwxMiBAQCBzdGF0aWMgY29uc3RleHByIGRvdWJsZSBleGVjdXRhYmxlUG9vbFJlc2Vy
dmF0aW9uRnJhY3Rpb24gPSAwLjE1Owogc3RhdGljIGNvbnN0ZXhwciBkb3VibGUgZXhlY3V0YWJs
ZVBvb2xSZXNlcnZhdGlvbkZyYWN0aW9uID0gMC4yNTsKICNlbmRpZgogCisjaWYgVVNFKExJQlBB
U19KSVRfSEVBUCkKKy8vIFRoaXMgc2l6ZSBpcyBkZXJpdmVkIGZyb20gaml0X2NvbmZpZydzIG1l
ZGl1bSB0YWJsZSBzaXplLgorc3RhdGljIGNvbnN0ZXhwciBzaXplX3QgbWluaW11bUV4ZWN1dGFi
bGVQb29sUmVzZXJ2YXRpb25TaXplID0gMjU2ICogS0I7CitzdGF0aWNfYXNzZXJ0KGZpeGVkRXhl
Y3V0YWJsZU1lbW9yeVBvb2xTaXplICogZXhlY3V0YWJsZVBvb2xSZXNlcnZhdGlvbkZyYWN0aW9u
ID49IG1pbmltdW1FeGVjdXRhYmxlUG9vbFJlc2VydmF0aW9uU2l6ZSk7CisjZW5kaWYKKwogc3Rh
dGljIGJvb2wgaXNKSVRFbmFibGVkKCkKIHsKICAgICBib29sIGppdEVuYWJsZWQgPSAhZ19qc2ND
b25maWcuaml0RGlzYWJsZWQ7CkBAIC0zNDAsNiArMzQ2LDEwIEBAIHN0YXRpYyBBTFdBWVNfSU5M
SU5FIEpJVFJlc2VydmF0aW9uIGluaXRpYWxpemVKSVRQYWdlUmVzZXJ2YXRpb24oKQogCiAgICAg
aWYgKE9wdGlvbnM6OmppdE1lbW9yeVJlc2VydmF0aW9uU2l6ZSgpKSB7CiAgICAgICAgIHJlc2Vy
dmF0aW9uLnNpemUgPSBPcHRpb25zOjpqaXRNZW1vcnlSZXNlcnZhdGlvblNpemUoKTsKKyNpZiBV
U0UoTElCUEFTX0pJVF9IRUFQKQorICAgICAgICBpZiAocmVzZXJ2YXRpb24uc2l6ZSAqIGV4ZWN1
dGFibGVQb29sUmVzZXJ2YXRpb25GcmFjdGlvbiA8IG1pbmltdW1FeGVjdXRhYmxlUG9vbFJlc2Vy
dmF0aW9uU2l6ZSkKKyAgICAgICAgICAgIHJlc2VydmF0aW9uLnNpemUgKz0gbWluaW11bUV4ZWN1
dGFibGVQb29sUmVzZXJ2YXRpb25TaXplOworI2VuZGlmCiAKICNpZiBFTkFCTEUoSlVNUF9JU0xB
TkRTKQogICAgICAgICAvLyBJZiBhc2tlZCBmb3IgYSByZXNlcnZhdGlvbiBzbWFsbGVyIHRoYW4g
aXNsYW5kIHNpemUsIGFzc3VtZSB0aGF0IHdlIHdhbnQgdGhhdCBzaXplIGFsbG9jYXRpb24KQEAg
LTQ0NCw3ICs0NTQsOSBAQCBjbGFzcyBGaXhlZFZNUG9vbEV4ZWN1dGFibGVBbGxvY2F0b3IgZmlu
YWwgewogICAgICAgICAgICAgICAgICAgICBtX2FsbG9jYXRvcnNbaV0ubV9lbmQgPSB0YWdDb2Rl
UHRyPEV4ZWN1dGFibGVNZW1vcnlQdHJUYWc+KGJpdHdpc2VfY2FzdDx2b2lkKj4ocmVzZXJ2YXRp
b25FbmQpKTsKICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICBtX2FsbG9jYXRv
cnNbaV0uYWRkRnJlc2hGcmVlU3BhY2UoYml0d2lzZV9jYXN0PHZvaWQqPihtX2FsbG9jYXRvcnNb
aV0uc3RhcnQoKSksIG1fYWxsb2NhdG9yc1tpXS5hbGxvY2F0b3JTaXplKCkpOworICAgICAgICAg
ICAgICAgIHNpemVfdCBzaXplSW5CeXRlcyA9IG1fYWxsb2NhdG9yc1tpXS5hbGxvY2F0b3JTaXpl
KCk7CisgICAgICAgICAgICAgICAgbV9hbGxvY2F0b3JzW2ldLmFkZEZyZXNoRnJlZVNwYWNlKGJp
dHdpc2VfY2FzdDx2b2lkKj4obV9hbGxvY2F0b3JzW2ldLnN0YXJ0KCkpLCBzaXplSW5CeXRlcyk7
CisgICAgICAgICAgICAgICAgbV9ieXRlc1Jlc2VydmVkICs9IHNpemVJbkJ5dGVzOwogCiAgICAg
ICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQobV9hbGxvY2F0b3JzW2ldLmFsbG9jYXRvclNpemUo
KSA8IHJlZ2lvblNpemUpOwogICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKG1fYWxsb2Nh
dG9yc1tpXS5pc2xhbmRCZWdpbigpID4gbV9hbGxvY2F0b3JzW2ldLnN0YXJ0KCkpOwpAQCAtNDU0
LDkgKzQ2Niw3IEBAIGNsYXNzIEZpeGVkVk1Qb29sRXhlY3V0YWJsZUFsbG9jYXRvciBmaW5hbCB7
CiAgICAgICAgICAgICB9CiAjZWxzZQogICAgICAgICAgICAgbV9hbGxvY2F0b3IuYWRkRnJlc2hG
cmVlU3BhY2UocmVzZXJ2YXRpb24uYmFzZSwgcmVzZXJ2YXRpb24uc2l6ZSk7Ci0jaWYgIVVTRShM
SUJQQVNfSklUX0hFQVApCi0gICAgICAgICAgICBBU1NFUlQoYnl0ZXNSZXNlcnZlZCgpID09IHJl
c2VydmF0aW9uLnNpemUpOyAvLyBTaW5jZSBvdXIgZXhlY3V0YWJsZSBtZW1vcnkgaXMgZml4ZWQt
c2l6ZWQsIGJ5dGVzUmVzZXJ2ZWQgaXMgbmV2ZXIgY2hhbmdlZCBhZnRlciBpbml0aWFsaXphdGlv
bi4KLSNlbmRpZgorICAgICAgICAgICAgbV9ieXRlc1Jlc2VydmVkICs9IHJlc2VydmF0aW9uLnNp
emU7CiAjZW5kaWYKICAgICAgICAgfQogICAgIH0KQEAgLTQ3NCw3ICs0ODQsMTAgQEAgY2xhc3Mg
Rml4ZWRWTVBvb2xFeGVjdXRhYmxlQWxsb2NhdG9yIGZpbmFsIHsKICAgICBSZWZQdHI8RXhlY3V0
YWJsZU1lbW9yeUhhbmRsZT4gYWxsb2NhdGUoc2l6ZV90IHNpemVJbkJ5dGVzKQogICAgIHsKICNp
ZiBVU0UoTElCUEFTX0pJVF9IRUFQKQotICAgICAgICByZXR1cm4gRXhlY3V0YWJsZU1lbW9yeUhh
bmRsZTo6Y3JlYXRlSW1wbChzaXplSW5CeXRlcyk7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gRXhl
Y3V0YWJsZU1lbW9yeUhhbmRsZTo6Y3JlYXRlSW1wbChzaXplSW5CeXRlcyk7CisgICAgICAgIGlm
IChMSUtFTFkocmVzdWx0KSkKKyAgICAgICAgICAgIG1fYnl0ZXNBbGxvY2F0ZWQuZmV0Y2hfYWRk
KHNpemVJbkJ5dGVzLCBzdGQ6Om1lbW9yeV9vcmRlcl9yZWxheGVkKTsKKyAgICAgICAgcmV0dXJu
IHJlc3VsdDsKICNlbGlmIEVOQUJMRShKVU1QX0lTTEFORFMpCiAgICAgICAgIExvY2tlciBsb2Nr
ZXIgeyBnZXRMb2NrKCkgfTsKIApAQCAtNDk5LDI0ICs1MTIsMzkgQEAgY2xhc3MgRml4ZWRWTVBv
b2xFeGVjdXRhYmxlQWxsb2NhdG9yIGZpbmFsIHsKIAogICAgIExvY2smIGdldExvY2soKSBXVEZf
UkVUVVJOU19MT0NLKG1fbG9jaykgeyByZXR1cm4gbV9sb2NrOyB9CiAKLSNpZiAhVVNFKExJQlBB
U19KSVRfSEVBUCkKICAgICAvLyBOb24gYXRvbWljCi0gICAgc2l6ZV90IGJ5dGVzQWxsb2NhdGVk
KCkgCisgICAgc2l6ZV90IGJ5dGVzQWxsb2NhdGVkKCkKICAgICB7CisjaWYgVVNFKExJQlBBU19K
SVRfSEVBUCkKKyAgICAgICAgcmV0dXJuIG1fYnl0ZXNBbGxvY2F0ZWQubG9hZChzdGQ6Om1lbW9y
eV9vcmRlcl9yZWxheGVkKTsKKyNlbHNlCiAgICAgICAgIHNpemVfdCByZXN1bHQgPSAwOwogICAg
ICAgICBmb3JFYWNoQWxsb2NhdG9yKFsmXSAoQWxsb2NhdG9yJiBhbGxvY2F0b3IpIHsKICAgICAg
ICAgICAgIHJlc3VsdCArPSBhbGxvY2F0b3IuYnl0ZXNBbGxvY2F0ZWQoKTsKICAgICAgICAgfSk7
CiAgICAgICAgIHJldHVybiByZXN1bHQ7CisjZW5kaWYKICAgICB9Ci0gICAgc2l6ZV90IGJ5dGVz
UmVzZXJ2ZWQoKSAKKworICAgIHNpemVfdCBieXRlc1Jlc2VydmVkKCkgY29uc3QKICAgICB7Ci0g
ICAgICAgIHNpemVfdCByZXN1bHQgPSAwOwotICAgICAgICBmb3JFYWNoQWxsb2NhdG9yKFsmXSAo
QWxsb2NhdG9yJiBhbGxvY2F0b3IpIHsKLSAgICAgICAgICAgIHJlc3VsdCArPSBhbGxvY2F0b3Iu
Ynl0ZXNSZXNlcnZlZCgpOwotICAgICAgICB9KTsKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAg
ICAgICAgcmV0dXJuIG1fYnl0ZXNSZXNlcnZlZDsKICAgICB9CisKKyAgICBzaXplX3QgYnl0ZXNB
dmFpbGFibGUoKQorICAgIHsKKyAgICAgICAgc2l6ZV90IGJ5dGVzUmVzZXJ2ZWQgPSB0aGlzLT5i
eXRlc1Jlc2VydmVkKCk7CisjaWYgVVNFKExJQlBBU19KSVRfSEVBUCkKKyAgICAgICAgc2l6ZV90
IG5vbkF2YWlsYWJsZVNpemUgPSBzdGF0aWNfY2FzdDxzaXplX3Q+KGJ5dGVzUmVzZXJ2ZWQgKiBl
eGVjdXRhYmxlUG9vbFJlc2VydmF0aW9uRnJhY3Rpb24pOworICAgICAgICBpZiAobm9uQXZhaWxh
YmxlU2l6ZSA8IG1pbmltdW1FeGVjdXRhYmxlUG9vbFJlc2VydmF0aW9uU2l6ZSkKKyAgICAgICAg
ICAgIHJldHVybiBieXRlc1Jlc2VydmVkIC0gbWluaW11bUV4ZWN1dGFibGVQb29sUmVzZXJ2YXRp
b25TaXplOworICAgICAgICByZXR1cm4gYnl0ZXNSZXNlcnZlZCAtIG5vbkF2YWlsYWJsZVNpemU7
CisjZWxzZQorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8c2l6ZV90PihieXRlc1Jlc2VydmVk
ICogKDEgLSBleGVjdXRhYmxlUG9vbFJlc2VydmF0aW9uRnJhY3Rpb24pKTsKKyNlbmRpZgorICAg
IH0KKworI2lmICFVU0UoTElCUEFTX0pJVF9IRUFQKQogICAgIHNpemVfdCBieXRlc0NvbW1pdHRl
ZCgpCiAgICAgewogICAgICAgICBzaXplX3QgcmVzdWx0ID0gMDsKQEAgLTU2Myw4ICs1OTEsOSBA
QCBjbGFzcyBGaXhlZFZNUG9vbEV4ZWN1dGFibGVBbGxvY2F0b3IgZmluYWwgewogI2VuZGlmIC8v
ICFVU0UoTElCUEFTX0pJVF9IRUFQKQogCiAjaWYgVVNFKExJQlBBU19KSVRfSEVBUCkKLSAgICB2
b2lkIGhhbmRsZVdpbGxCZVJlbGVhc2VkKEV4ZWN1dGFibGVNZW1vcnlIYW5kbGUmIGhhbmRsZSkK
KyAgICB2b2lkIGhhbmRsZVdpbGxCZVJlbGVhc2VkKEV4ZWN1dGFibGVNZW1vcnlIYW5kbGUmIGhh
bmRsZSwgc2l6ZV90IHNpemVJbkJ5dGVzKQogICAgIHsKKyAgICAgICAgbV9ieXRlc0FsbG9jYXRl
ZC5mZXRjaF9zdWIoc2l6ZUluQnl0ZXMsIHN0ZDo6bWVtb3J5X29yZGVyX3JlbGF4ZWQpOwogI2lm
IEVOQUJMRShKVU1QX0lTTEFORFMpCiAgICAgICAgIGlmIChtX2lzbGFuZHNGb3JKdW1wU291cmNl
TG9jYXRpb24uaXNFbXB0eSgpKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtOTIzLDYgKzk1Miwx
MCBAQCBjbGFzcyBGaXhlZFZNUG9vbEV4ZWN1dGFibGVBbGxvY2F0b3IgZmluYWwgewogI2Vsc2UK
ICAgICBBbGxvY2F0b3IgbV9hbGxvY2F0b3I7CiAjZW5kaWYgLy8gRU5BQkxFKEpVTVBfSVNMQU5E
UykKKyAgICBzaXplX3QgbV9ieXRlc1Jlc2VydmVkIHsgMCB9OworI2lmIFVTRShMSUJQQVNfSklU
X0hFQVApCisgICAgc3RkOjphdG9taWM8c2l6ZV90PiBtX2J5dGVzQWxsb2NhdGVkIHsgMCB9Owor
I2VuZGlmCiB9OwogCiAvLyBLZWVwIHRoaXMgcG9pbnRlciBpbiBhIG11dGFibGUgZ2xvYmFsIHZh
cmlhYmxlIHRvIGhlbHAgTGVha3MgZmluZCBpdC4KQEAgLTk0NSwyOCArOTc4LDIwIEBAIGJvb2wg
RXhlY3V0YWJsZUFsbG9jYXRvcjo6aXNWYWxpZCgpIGNvbnN0CiAKIGJvb2wgRXhlY3V0YWJsZUFs
bG9jYXRvcjo6dW5kZXJNZW1vcnlQcmVzc3VyZSgpCiB7Ci0jaWYgVVNFKExJQlBBU19KSVRfSEVB
UCkKLSAgICByZXR1cm4gQmFzZTo6dW5kZXJNZW1vcnlQcmVzc3VyZSgpOwotI2Vsc2UgLy8gVVNF
KExJQlBBU19KSVRfSEVBUCkgLT4gc28gc3RhcnQgb2YgIVVTRShMSUJQQVNfSklUX0hFQVApCiAg
ICAgRml4ZWRWTVBvb2xFeGVjdXRhYmxlQWxsb2NhdG9yKiBhbGxvY2F0b3IgPSBnX2pzY0NvbmZp
Zy5maXhlZFZNUG9vbEV4ZWN1dGFibGVBbGxvY2F0b3I7CiAgICAgaWYgKCFhbGxvY2F0b3IpCiAg
ICAgICAgIHJldHVybiBCYXNlOjp1bmRlck1lbW9yeVByZXNzdXJlKCk7CiAgICAgcmV0dXJuIGFs
bG9jYXRvci0+Ynl0ZXNBbGxvY2F0ZWQoKSA+IGFsbG9jYXRvci0+Ynl0ZXNSZXNlcnZlZCgpIC8g
MjsKLSNlbmRpZiAvLyBVU0UoTElCUEFTX0pJVF9IRUFQKSAtPiBzbyBlbmQgb2YgIVVTRShMSUJQ
QVNfSklUX0hFQVApCiB9CiAKIGRvdWJsZSBFeGVjdXRhYmxlQWxsb2NhdG9yOjptZW1vcnlQcmVz
c3VyZU11bHRpcGxpZXIoc2l6ZV90IGFkZGVkTWVtb3J5VXNhZ2UpCiB7Ci0jaWYgVVNFKExJQlBB
U19KSVRfSEVBUCkKLSAgICByZXR1cm4gQmFzZTo6bWVtb3J5UHJlc3N1cmVNdWx0aXBsaWVyKGFk
ZGVkTWVtb3J5VXNhZ2UpOwotI2Vsc2UgLy8gVVNFKExJQlBBU19KSVRfSEVBUCkgLT4gc28gc3Rh
cnQgb2YgIVVTRShMSUJQQVNfSklUX0hFQVApCiAgICAgRml4ZWRWTVBvb2xFeGVjdXRhYmxlQWxs
b2NhdG9yKiBhbGxvY2F0b3IgPSBnX2pzY0NvbmZpZy5maXhlZFZNUG9vbEV4ZWN1dGFibGVBbGxv
Y2F0b3I7CiAgICAgaWYgKCFhbGxvY2F0b3IpCiAgICAgICAgIHJldHVybiBCYXNlOjptZW1vcnlQ
cmVzc3VyZU11bHRpcGxpZXIoYWRkZWRNZW1vcnlVc2FnZSk7CiAgICAgQVNTRVJUKGFsbG9jYXRv
ci0+Ynl0ZXNBbGxvY2F0ZWQoKSA8PSBhbGxvY2F0b3ItPmJ5dGVzUmVzZXJ2ZWQoKSk7CiAgICAg
c2l6ZV90IGJ5dGVzQWxsb2NhdGVkID0gYWxsb2NhdG9yLT5ieXRlc0FsbG9jYXRlZCgpICsgYWRk
ZWRNZW1vcnlVc2FnZTsKLSAgICBzaXplX3QgYnl0ZXNBdmFpbGFibGUgPSBzdGF0aWNfY2FzdDxz
aXplX3Q+KAotICAgICAgICBhbGxvY2F0b3ItPmJ5dGVzUmVzZXJ2ZWQoKSAqICgxIC0gZXhlY3V0
YWJsZVBvb2xSZXNlcnZhdGlvbkZyYWN0aW9uKSk7CisgICAgc2l6ZV90IGJ5dGVzQXZhaWxhYmxl
ID0gYWxsb2NhdG9yLT5ieXRlc0F2YWlsYWJsZSgpOwogICAgIGlmIChieXRlc0FsbG9jYXRlZCA+
PSBieXRlc0F2YWlsYWJsZSkKICAgICAgICAgYnl0ZXNBbGxvY2F0ZWQgPSBieXRlc0F2YWlsYWJs
ZTsKICAgICBkb3VibGUgcmVzdWx0ID0gMS4wOwpAQCAtOTc2LDcgKzEwMDEsNiBAQCBkb3VibGUg
RXhlY3V0YWJsZUFsbG9jYXRvcjo6bWVtb3J5UHJlc3N1cmVNdWx0aXBsaWVyKHNpemVfdCBhZGRl
ZE1lbW9yeVVzYWdlKQogICAgIGlmIChyZXN1bHQgPCAxLjApCiAgICAgICAgIHJlc3VsdCA9IDEu
MDsKICAgICByZXR1cm4gcmVzdWx0OwotI2VuZGlmIC8vIFVTRShMSUJQQVNfSklUX0hFQVApIC0+
IHNvIGVuZCBvZiAhVVNFKExJQlBBU19KSVRfSEVBUCkKIH0KIAogUmVmUHRyPEV4ZWN1dGFibGVN
ZW1vcnlIYW5kbGU+IEV4ZWN1dGFibGVBbGxvY2F0b3I6OmFsbG9jYXRlKHNpemVfdCBzaXplSW5C
eXRlcywgSklUQ29tcGlsYXRpb25FZmZvcnQgZWZmb3J0KQpAQCAtMTAwMCwxOSArMTAyNCwxNiBA
QCBSZWZQdHI8RXhlY3V0YWJsZU1lbW9yeUhhbmRsZT4gRXhlY3V0YWJsZUFsbG9jYXRvcjo6YWxs
b2NhdGUoc2l6ZV90IHNpemVJbkJ5dGVzLAogICAgICAgICAmJiBkb0V4ZWN1dGFibGVBbGxvY2F0
aW9uRnV6emluZ0lmRW5hYmxlZCgpID09IFByZXRlbmRUb0ZhaWxFeGVjdXRhYmxlQWxsb2NhdGlv
bikKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSNpZiAhVVNFKExJQlBBU19KSVRfSEVBUCkK
ICAgICBpZiAoZWZmb3J0ID09IEpJVENvbXBpbGF0aW9uQ2FuRmFpbCkgewogICAgICAgICAvLyBE
b24ndCBhbGxvdyBhbGxvY2F0aW9ucyBpZiB3ZSBhcmUgZG93biB0byByZXNlcnZlLgogICAgICAg
ICBzaXplX3QgYnl0ZXNBbGxvY2F0ZWQgPSBhbGxvY2F0b3ItPmJ5dGVzQWxsb2NhdGVkKCkgKyBz
aXplSW5CeXRlczsKLSAgICAgICAgc2l6ZV90IGJ5dGVzQXZhaWxhYmxlID0gc3RhdGljX2Nhc3Q8
c2l6ZV90PigKLSAgICAgICAgICAgIGFsbG9jYXRvci0+Ynl0ZXNSZXNlcnZlZCgpICogKDEgLSBl
eGVjdXRhYmxlUG9vbFJlc2VydmF0aW9uRnJhY3Rpb24pKTsKKyAgICAgICAgc2l6ZV90IGJ5dGVz
QXZhaWxhYmxlID0gYWxsb2NhdG9yLT5ieXRlc0F2YWlsYWJsZSgpOwogICAgICAgICBpZiAoYnl0
ZXNBbGxvY2F0ZWQgPiBieXRlc0F2YWlsYWJsZSkgewogICAgICAgICAgICAgaWYgKE9wdGlvbnM6
OmxvZ0V4ZWN1dGFibGVBbGxvY2F0aW9uKCkpCiAgICAgICAgICAgICAgICAgZGF0YUxvZygiQWxs
b2NhdGlvbiBmYWlsZWQgYmVjYXVzZSBieXRlcyBhbGxvY2F0ZWQgIiwgYnl0ZXNBbGxvY2F0ZWQs
ICAiID4gIiwgYnl0ZXNBdmFpbGFibGUsICIgYnl0ZXMgYXZhaWxhYmxlLlxuIik7CiAgICAgICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgfQogICAgIH0KLSNlbmRpZiAvLyAhVVNFKExJ
QlBBU19KSVRfSEVBUCkKIAogICAgIFJlZlB0cjxFeGVjdXRhYmxlTWVtb3J5SGFuZGxlPiByZXN1
bHQgPSBhbGxvY2F0b3ItPmFsbG9jYXRlKHNpemVJbkJ5dGVzKTsKICAgICBpZiAoIXJlc3VsdCkg
ewpAQCAtMTIwMyw3ICsxMjI0LDcgQEAgUmVmUHRyPEV4ZWN1dGFibGVNZW1vcnlIYW5kbGU+IEV4
ZWN1dGFibGVNZW1vcnlIYW5kbGU6OmNyZWF0ZUltcGwoc2l6ZV90IHNpemVJbkIKIEV4ZWN1dGFi
bGVNZW1vcnlIYW5kbGU6On5FeGVjdXRhYmxlTWVtb3J5SGFuZGxlKCkKIHsKICAgICBGaXhlZFZN
UG9vbEV4ZWN1dGFibGVBbGxvY2F0b3IqIGFsbG9jYXRvciA9IGdfanNjQ29uZmlnLmZpeGVkVk1Q
b29sRXhlY3V0YWJsZUFsbG9jYXRvcjsKLSAgICBhbGxvY2F0b3ItPmhhbmRsZVdpbGxCZVJlbGVh
c2VkKCp0aGlzKTsKKyAgICBhbGxvY2F0b3ItPmhhbmRsZVdpbGxCZVJlbGVhc2VkKCp0aGlzLCBz
aXplSW5CeXRlcygpKTsKICAgICBqaXRfaGVhcF9kZWFsbG9jYXRlKGtleSgpKTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433482</attachid>
            <date>2021-07-13 21:27:31 -0700</date>
            <delta_ts>2021-07-13 21:28:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227927-20210713212730.patch</filename>
            <type>text/plain</type>
            <size>11513</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5ODkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
MDllY2I1MTIwMTFiZjFhY2QxNjhkZGYxZjVkNTc3Njc4NzlkMjYyLi5kZDUzNDlhODc2MTFmNDI3
MTMzNDk3NDdkYzU1MGQ1OGI4ZTliM2FmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMyBAQAorMjAyMS0wNy0xMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIGxpYnBhcyBleGVjdXRhYmxlLWFsbG9jYXRvciBzaG91bGQgcmVzZXJ2ZSBt
b3JlIHRoYW4gMjU2S0IgZm9yIG5vbi1mYWlsIHJlZ2lvbiBhdCBsZWFzdAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3OTI3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgbGlicGFzIGppdF9oZWFwIGhhcyBt
ZWRpYW0gYWxsb2NhdG9yIHdoaWNoIGFsbG9jYXRlcyAxMjhLQiBwYWdlcyBhdCBvbmNlLiBIb3dl
dmVyLCBvdXIgSlNDIHN0cmVzcyB0ZXN0cyBhcmUgc2V0dGluZyAxMDBLQgorICAgICAgICBmb3Ig
c21hbGwgZXhlY3V0YWJsZSBtZW1vcnkgdGVzdHMuIEFzIGEgcmVzdWx0LCB1bmRlciB0aGlzIGNv
bmZpZ3VyYXRpb24sIHdlIGZhaWwgaW1tZWRpYXRlbHkgYWZ0ZXIgdXNpbmcgbWVkaXVtIGFsbG9j
YXRvci4KKworICAgICAgICBCdXQgdGhpcyB0ZXN0J3MgInRvdGFsIHNpemUgb2YgZXhlY3V0YWJs
ZSBtZW1vcnkgaXMgMTAwS0IiIGlzIHVucmVhbGlzdGljOiBpdCBpcyBwb3NzaWJsZSB0aGF0IG9u
bHkgMTAwS0IgbWVtb3J5IHJlbWFpbnMsCisgICAgICAgIGJ1dCBpdCBpcyBpbXBvc3NpYmxlIHRo
YXQgd2UgcmVzZXJ2ZSBvbmx5IDI1S0IgZm9yIG5vbi1mYWlsIHJlc2VydmF0aW9uLiBJbiBwcm9k
dWN0aW9uLCB3ZSBhcmUgYWx3YXlzIHJlc2VydmluZyAxMjhNQi4gU28KKyAgICAgICAgdGhpcyBj
b25maWd1cmF0aW9uIGlzIG5vdCByZWFsaXN0aWMgYWN0dWFsbHkuCisKKyAgICAgICAgU28sIHRo
aXMgcGF0Y2ggY2hhbmdlcywKKworICAgICAgICAgICAgMS4gSWYgbm9uLWZhaWwgcmVnaW9uIGlz
IGxlc3MgdGhhbiAyNTZLQiwgdGhlbiB3ZSBhZGQgMjU2S0IgYW5kIGtlZXAgdGhpcyAyNTZLQiBh
cyBub24tZmFpbCBleGVjdXRhYmxlIGFsbG9jYXRpb24uIElmIG5vdCwKKyAgICAgICAgICAgICAg
ICB1c2UgMC4yNSByYXRpbyBhcyB3ZSBhcmUgZG9pbmcuIFRoaXMgbWVhbnMgdGhhdCBPcHRpb25z
OjpqaXRNZW1vcnlSZXNlcnZhdGlvblNpemUgY29uZmlndXJlcyBmYWlsYWJsZSByZWdpb24gb2YK
KyAgICAgICAgICAgICAgICBleGVjdXRhYmxlIG1lbW9yeS4KKyAgICAgICAgICAgIDIuIFdlIGFs
c28gcmV2aXZlIGJ5dGVzUmVzZXJ2ZWQgYW5kIGJ5dGVzQWxsb2NhdGVkIHRvIG1ha2UgbWVtb3J5
UHJlc3N1cmVNdWx0aXBsaWVyIGFuZCBlYXJseS1mYWlsIGFsbG9jYXRpb24gKHdoZW4gdGhlcmUg
aXMKKyAgICAgICAgICAgICAgICBub3QgZW5vdWdoIG1lbW9yeSBhbmQgYWxsb2NhdGlvbiBjYW4g
ZmFpbCwgdGhlbiB3ZSBzaG91bGQgZmFpbCkuCisKKyAgICAgICAgKiBqaXQvRXhlY3V0YWJsZUFs
bG9jYXRvci5jcHA6CisgICAgICAgIChKU0M6OmluaXRpYWxpemVKSVRQYWdlUmVzZXJ2YXRpb24p
OgorICAgICAgICAoSlNDOjpFeGVjdXRhYmxlQWxsb2NhdG9yOjp1bmRlck1lbW9yeVByZXNzdXJl
KToKKyAgICAgICAgKEpTQzo6RXhlY3V0YWJsZUFsbG9jYXRvcjo6bWVtb3J5UHJlc3N1cmVNdWx0
aXBsaWVyKToKKyAgICAgICAgKEpTQzo6RXhlY3V0YWJsZUFsbG9jYXRvcjo6YWxsb2NhdGUpOgor
ICAgICAgICAoSlNDOjpFeGVjdXRhYmxlTWVtb3J5SGFuZGxlOjp+RXhlY3V0YWJsZU1lbW9yeUhh
bmRsZSk6CisgICAgICAgIChKU0M6OkV4ZWN1dGFibGVNZW1vcnlIYW5kbGU6OnNocmluayk6CisK
IDIwMjEtMDctMTMgIFlpamlhIEh1YW5nICA8eWlqaWFfaHVhbmdAYXBwbGUuY29tPgogCiAgICAg
ICAgIEFkZCBhIG5ldyBBaXI6OkFyZyBraW5kIFplcm9SZWcgdG8gbGV0IEFJUiByZWNvZ25pc2Ug
dGhlIG5ldyBpbnN0cnVjdGlvbnMvZm9ybXMgYWNjZXB0aW5nIHplcm8gcmVnaXN0ZXIgaW4gQVJN
NjQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9j
YXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVBbGxvY2F0b3Iu
Y3BwCmluZGV4IGU2NmJiOWYyMWJhNTk3MTNjYzYyODQ1YmM5ZTgwOTc3ZWE4MWY3ZTMuLmI3MzYx
NzMzMjIxZjg5YjBmNDc4N2I2M2VjMTgyYTdiMmYzZTQ1NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9yLmNwcApAQCAtMTI0LDYgKzEyNCwx
MiBAQCBzdGF0aWMgY29uc3RleHByIGRvdWJsZSBleGVjdXRhYmxlUG9vbFJlc2VydmF0aW9uRnJh
Y3Rpb24gPSAwLjE1Owogc3RhdGljIGNvbnN0ZXhwciBkb3VibGUgZXhlY3V0YWJsZVBvb2xSZXNl
cnZhdGlvbkZyYWN0aW9uID0gMC4yNTsKICNlbmRpZgogCisjaWYgVVNFKExJQlBBU19KSVRfSEVB
UCkKKy8vIFRoaXMgc2l6ZSBpcyBkZXJpdmVkIGZyb20gaml0X2NvbmZpZydzIG1lZGl1bSB0YWJs
ZSBzaXplLgorc3RhdGljIGNvbnN0ZXhwciBzaXplX3QgbWluaW11bUV4ZWN1dGFibGVQb29sUmVz
ZXJ2YXRpb25TaXplID0gMjU2ICogS0I7CitzdGF0aWNfYXNzZXJ0KGZpeGVkRXhlY3V0YWJsZU1l
bW9yeVBvb2xTaXplICogZXhlY3V0YWJsZVBvb2xSZXNlcnZhdGlvbkZyYWN0aW9uID49IG1pbmlt
dW1FeGVjdXRhYmxlUG9vbFJlc2VydmF0aW9uU2l6ZSk7CisjZW5kaWYKKwogc3RhdGljIGJvb2wg
aXNKSVRFbmFibGVkKCkKIHsKICAgICBib29sIGppdEVuYWJsZWQgPSAhZ19qc2NDb25maWcuaml0
RGlzYWJsZWQ7CkBAIC0zNDAsNiArMzQ2LDEwIEBAIHN0YXRpYyBBTFdBWVNfSU5MSU5FIEpJVFJl
c2VydmF0aW9uIGluaXRpYWxpemVKSVRQYWdlUmVzZXJ2YXRpb24oKQogCiAgICAgaWYgKE9wdGlv
bnM6OmppdE1lbW9yeVJlc2VydmF0aW9uU2l6ZSgpKSB7CiAgICAgICAgIHJlc2VydmF0aW9uLnNp
emUgPSBPcHRpb25zOjpqaXRNZW1vcnlSZXNlcnZhdGlvblNpemUoKTsKKyNpZiBVU0UoTElCUEFT
X0pJVF9IRUFQKQorICAgICAgICBpZiAocmVzZXJ2YXRpb24uc2l6ZSAqIGV4ZWN1dGFibGVQb29s
UmVzZXJ2YXRpb25GcmFjdGlvbiA8IG1pbmltdW1FeGVjdXRhYmxlUG9vbFJlc2VydmF0aW9uU2l6
ZSkKKyAgICAgICAgICAgIHJlc2VydmF0aW9uLnNpemUgKz0gbWluaW11bUV4ZWN1dGFibGVQb29s
UmVzZXJ2YXRpb25TaXplOworI2VuZGlmCiAKICNpZiBFTkFCTEUoSlVNUF9JU0xBTkRTKQogICAg
ICAgICAvLyBJZiBhc2tlZCBmb3IgYSByZXNlcnZhdGlvbiBzbWFsbGVyIHRoYW4gaXNsYW5kIHNp
emUsIGFzc3VtZSB0aGF0IHdlIHdhbnQgdGhhdCBzaXplIGFsbG9jYXRpb24KQEAgLTQ0NCw3ICs0
NTQsOSBAQCBjbGFzcyBGaXhlZFZNUG9vbEV4ZWN1dGFibGVBbGxvY2F0b3IgZmluYWwgewogICAg
ICAgICAgICAgICAgICAgICBtX2FsbG9jYXRvcnNbaV0ubV9lbmQgPSB0YWdDb2RlUHRyPEV4ZWN1
dGFibGVNZW1vcnlQdHJUYWc+KGJpdHdpc2VfY2FzdDx2b2lkKj4ocmVzZXJ2YXRpb25FbmQpKTsK
ICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICBtX2FsbG9jYXRvcnNbaV0uYWRk
RnJlc2hGcmVlU3BhY2UoYml0d2lzZV9jYXN0PHZvaWQqPihtX2FsbG9jYXRvcnNbaV0uc3RhcnQo
KSksIG1fYWxsb2NhdG9yc1tpXS5hbGxvY2F0b3JTaXplKCkpOworICAgICAgICAgICAgICAgIHNp
emVfdCBzaXplSW5CeXRlcyA9IG1fYWxsb2NhdG9yc1tpXS5hbGxvY2F0b3JTaXplKCk7CisgICAg
ICAgICAgICAgICAgbV9hbGxvY2F0b3JzW2ldLmFkZEZyZXNoRnJlZVNwYWNlKGJpdHdpc2VfY2Fz
dDx2b2lkKj4obV9hbGxvY2F0b3JzW2ldLnN0YXJ0KCkpLCBzaXplSW5CeXRlcyk7CisgICAgICAg
ICAgICAgICAgbV9ieXRlc1Jlc2VydmVkICs9IHNpemVJbkJ5dGVzOwogCiAgICAgICAgICAgICAg
ICAgUkVMRUFTRV9BU1NFUlQobV9hbGxvY2F0b3JzW2ldLmFsbG9jYXRvclNpemUoKSA8IHJlZ2lv
blNpemUpOwogICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKG1fYWxsb2NhdG9yc1tpXS5p
c2xhbmRCZWdpbigpID4gbV9hbGxvY2F0b3JzW2ldLnN0YXJ0KCkpOwpAQCAtNDU0LDkgKzQ2Niw3
IEBAIGNsYXNzIEZpeGVkVk1Qb29sRXhlY3V0YWJsZUFsbG9jYXRvciBmaW5hbCB7CiAgICAgICAg
ICAgICB9CiAjZWxzZQogICAgICAgICAgICAgbV9hbGxvY2F0b3IuYWRkRnJlc2hGcmVlU3BhY2Uo
cmVzZXJ2YXRpb24uYmFzZSwgcmVzZXJ2YXRpb24uc2l6ZSk7Ci0jaWYgIVVTRShMSUJQQVNfSklU
X0hFQVApCi0gICAgICAgICAgICBBU1NFUlQoYnl0ZXNSZXNlcnZlZCgpID09IHJlc2VydmF0aW9u
LnNpemUpOyAvLyBTaW5jZSBvdXIgZXhlY3V0YWJsZSBtZW1vcnkgaXMgZml4ZWQtc2l6ZWQsIGJ5
dGVzUmVzZXJ2ZWQgaXMgbmV2ZXIgY2hhbmdlZCBhZnRlciBpbml0aWFsaXphdGlvbi4KLSNlbmRp
ZgorICAgICAgICAgICAgbV9ieXRlc1Jlc2VydmVkICs9IHJlc2VydmF0aW9uLnNpemU7CiAjZW5k
aWYKICAgICAgICAgfQogICAgIH0KQEAgLTQ3NCw3ICs0ODQsMTAgQEAgY2xhc3MgRml4ZWRWTVBv
b2xFeGVjdXRhYmxlQWxsb2NhdG9yIGZpbmFsIHsKICAgICBSZWZQdHI8RXhlY3V0YWJsZU1lbW9y
eUhhbmRsZT4gYWxsb2NhdGUoc2l6ZV90IHNpemVJbkJ5dGVzKQogICAgIHsKICNpZiBVU0UoTElC
UEFTX0pJVF9IRUFQKQotICAgICAgICByZXR1cm4gRXhlY3V0YWJsZU1lbW9yeUhhbmRsZTo6Y3Jl
YXRlSW1wbChzaXplSW5CeXRlcyk7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gRXhlY3V0YWJsZU1l
bW9yeUhhbmRsZTo6Y3JlYXRlSW1wbChzaXplSW5CeXRlcyk7CisgICAgICAgIGlmIChMSUtFTFko
cmVzdWx0KSkKKyAgICAgICAgICAgIG1fYnl0ZXNBbGxvY2F0ZWQuZmV0Y2hfYWRkKHJlc3VsdC0+
c2l6ZUluQnl0ZXMoKSwgc3RkOjptZW1vcnlfb3JkZXJfcmVsYXhlZCk7CisgICAgICAgIHJldHVy
biByZXN1bHQ7CiAjZWxpZiBFTkFCTEUoSlVNUF9JU0xBTkRTKQogICAgICAgICBMb2NrZXIgbG9j
a2VyIHsgZ2V0TG9jaygpIH07CiAKQEAgLTQ5OSwyNCArNTEyLDQ2IEBAIGNsYXNzIEZpeGVkVk1Q
b29sRXhlY3V0YWJsZUFsbG9jYXRvciBmaW5hbCB7CiAKICAgICBMb2NrJiBnZXRMb2NrKCkgV1RG
X1JFVFVSTlNfTE9DSyhtX2xvY2spIHsgcmV0dXJuIG1fbG9jazsgfQogCi0jaWYgIVVTRShMSUJQ
QVNfSklUX0hFQVApCisjaWYgVVNFKExJQlBBU19KSVRfSEVBUCkKKyAgICB2b2lkIHNocmlua0J5
dGVzQWxsb2NhdGVkKHNpemVfdCBvbGRTaXplSW5CeXRlcywgc2l6ZV90IG5ld1NpemVJbkJ5dGVz
KQorICAgIHsKKyAgICAgICAgbV9ieXRlc0FsbG9jYXRlZC5mZXRjaF9hZGQobmV3U2l6ZUluQnl0
ZXMgLSBvbGRTaXplSW5CeXRlcywgc3RkOjptZW1vcnlfb3JkZXJfcmVsYXhlZCk7CisgICAgfQor
I2VuZGlmCisKICAgICAvLyBOb24gYXRvbWljCi0gICAgc2l6ZV90IGJ5dGVzQWxsb2NhdGVkKCkg
CisgICAgc2l6ZV90IGJ5dGVzQWxsb2NhdGVkKCkKICAgICB7CisjaWYgVVNFKExJQlBBU19KSVRf
SEVBUCkKKyAgICAgICAgcmV0dXJuIG1fYnl0ZXNBbGxvY2F0ZWQubG9hZChzdGQ6Om1lbW9yeV9v
cmRlcl9yZWxheGVkKTsKKyNlbHNlCiAgICAgICAgIHNpemVfdCByZXN1bHQgPSAwOwogICAgICAg
ICBmb3JFYWNoQWxsb2NhdG9yKFsmXSAoQWxsb2NhdG9yJiBhbGxvY2F0b3IpIHsKICAgICAgICAg
ICAgIHJlc3VsdCArPSBhbGxvY2F0b3IuYnl0ZXNBbGxvY2F0ZWQoKTsKICAgICAgICAgfSk7CiAg
ICAgICAgIHJldHVybiByZXN1bHQ7CisjZW5kaWYKICAgICB9Ci0gICAgc2l6ZV90IGJ5dGVzUmVz
ZXJ2ZWQoKSAKKworICAgIHNpemVfdCBieXRlc1Jlc2VydmVkKCkgY29uc3QKICAgICB7Ci0gICAg
ICAgIHNpemVfdCByZXN1bHQgPSAwOwotICAgICAgICBmb3JFYWNoQWxsb2NhdG9yKFsmXSAoQWxs
b2NhdG9yJiBhbGxvY2F0b3IpIHsKLSAgICAgICAgICAgIHJlc3VsdCArPSBhbGxvY2F0b3IuYnl0
ZXNSZXNlcnZlZCgpOwotICAgICAgICB9KTsKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAg
ICAgcmV0dXJuIG1fYnl0ZXNSZXNlcnZlZDsKKyAgICB9CisKKyAgICBzaXplX3QgYnl0ZXNBdmFp
bGFibGUoKQorICAgIHsKKyAgICAgICAgc2l6ZV90IGJ5dGVzUmVzZXJ2ZWQgPSB0aGlzLT5ieXRl
c1Jlc2VydmVkKCk7CisjaWYgVVNFKExJQlBBU19KSVRfSEVBUCkKKyAgICAgICAgc2l6ZV90IG5v
bkF2YWlsYWJsZVNpemUgPSBzdGF0aWNfY2FzdDxzaXplX3Q+KGJ5dGVzUmVzZXJ2ZWQgKiBleGVj
dXRhYmxlUG9vbFJlc2VydmF0aW9uRnJhY3Rpb24pOworICAgICAgICBpZiAobm9uQXZhaWxhYmxl
U2l6ZSA8IG1pbmltdW1FeGVjdXRhYmxlUG9vbFJlc2VydmF0aW9uU2l6ZSkKKyAgICAgICAgICAg
IHJldHVybiBieXRlc1Jlc2VydmVkIC0gbWluaW11bUV4ZWN1dGFibGVQb29sUmVzZXJ2YXRpb25T
aXplOworICAgICAgICByZXR1cm4gYnl0ZXNSZXNlcnZlZCAtIG5vbkF2YWlsYWJsZVNpemU7Cisj
ZWxzZQorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8c2l6ZV90PihieXRlc1Jlc2VydmVkICog
KDEgLSBleGVjdXRhYmxlUG9vbFJlc2VydmF0aW9uRnJhY3Rpb24pKTsKKyNlbmRpZgogICAgIH0K
KworI2lmICFVU0UoTElCUEFTX0pJVF9IRUFQKQogICAgIHNpemVfdCBieXRlc0NvbW1pdHRlZCgp
CiAgICAgewogICAgICAgICBzaXplX3QgcmVzdWx0ID0gMDsKQEAgLTU2Myw4ICs1OTgsOSBAQCBj
bGFzcyBGaXhlZFZNUG9vbEV4ZWN1dGFibGVBbGxvY2F0b3IgZmluYWwgewogI2VuZGlmIC8vICFV
U0UoTElCUEFTX0pJVF9IRUFQKQogCiAjaWYgVVNFKExJQlBBU19KSVRfSEVBUCkKLSAgICB2b2lk
IGhhbmRsZVdpbGxCZVJlbGVhc2VkKEV4ZWN1dGFibGVNZW1vcnlIYW5kbGUmIGhhbmRsZSkKKyAg
ICB2b2lkIGhhbmRsZVdpbGxCZVJlbGVhc2VkKEV4ZWN1dGFibGVNZW1vcnlIYW5kbGUmIGhhbmRs
ZSwgc2l6ZV90IHNpemVJbkJ5dGVzKQogICAgIHsKKyAgICAgICAgbV9ieXRlc0FsbG9jYXRlZC5m
ZXRjaF9zdWIoc2l6ZUluQnl0ZXMsIHN0ZDo6bWVtb3J5X29yZGVyX3JlbGF4ZWQpOwogI2lmIEVO
QUJMRShKVU1QX0lTTEFORFMpCiAgICAgICAgIGlmIChtX2lzbGFuZHNGb3JKdW1wU291cmNlTG9j
YXRpb24uaXNFbXB0eSgpKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtOTIzLDYgKzk1OSwxMCBA
QCBjbGFzcyBGaXhlZFZNUG9vbEV4ZWN1dGFibGVBbGxvY2F0b3IgZmluYWwgewogI2Vsc2UKICAg
ICBBbGxvY2F0b3IgbV9hbGxvY2F0b3I7CiAjZW5kaWYgLy8gRU5BQkxFKEpVTVBfSVNMQU5EUykK
KyAgICBzaXplX3QgbV9ieXRlc1Jlc2VydmVkIHsgMCB9OworI2lmIFVTRShMSUJQQVNfSklUX0hF
QVApCisgICAgc3RkOjphdG9taWM8c2l6ZV90PiBtX2J5dGVzQWxsb2NhdGVkIHsgMCB9OworI2Vu
ZGlmCiB9OwogCiAvLyBLZWVwIHRoaXMgcG9pbnRlciBpbiBhIG11dGFibGUgZ2xvYmFsIHZhcmlh
YmxlIHRvIGhlbHAgTGVha3MgZmluZCBpdC4KQEAgLTk0NSwyOCArOTg1LDIwIEBAIGJvb2wgRXhl
Y3V0YWJsZUFsbG9jYXRvcjo6aXNWYWxpZCgpIGNvbnN0CiAKIGJvb2wgRXhlY3V0YWJsZUFsbG9j
YXRvcjo6dW5kZXJNZW1vcnlQcmVzc3VyZSgpCiB7Ci0jaWYgVVNFKExJQlBBU19KSVRfSEVBUCkK
LSAgICByZXR1cm4gQmFzZTo6dW5kZXJNZW1vcnlQcmVzc3VyZSgpOwotI2Vsc2UgLy8gVVNFKExJ
QlBBU19KSVRfSEVBUCkgLT4gc28gc3RhcnQgb2YgIVVTRShMSUJQQVNfSklUX0hFQVApCiAgICAg
Rml4ZWRWTVBvb2xFeGVjdXRhYmxlQWxsb2NhdG9yKiBhbGxvY2F0b3IgPSBnX2pzY0NvbmZpZy5m
aXhlZFZNUG9vbEV4ZWN1dGFibGVBbGxvY2F0b3I7CiAgICAgaWYgKCFhbGxvY2F0b3IpCiAgICAg
ICAgIHJldHVybiBCYXNlOjp1bmRlck1lbW9yeVByZXNzdXJlKCk7CiAgICAgcmV0dXJuIGFsbG9j
YXRvci0+Ynl0ZXNBbGxvY2F0ZWQoKSA+IGFsbG9jYXRvci0+Ynl0ZXNSZXNlcnZlZCgpIC8gMjsK
LSNlbmRpZiAvLyBVU0UoTElCUEFTX0pJVF9IRUFQKSAtPiBzbyBlbmQgb2YgIVVTRShMSUJQQVNf
SklUX0hFQVApCiB9CiAKIGRvdWJsZSBFeGVjdXRhYmxlQWxsb2NhdG9yOjptZW1vcnlQcmVzc3Vy
ZU11bHRpcGxpZXIoc2l6ZV90IGFkZGVkTWVtb3J5VXNhZ2UpCiB7Ci0jaWYgVVNFKExJQlBBU19K
SVRfSEVBUCkKLSAgICByZXR1cm4gQmFzZTo6bWVtb3J5UHJlc3N1cmVNdWx0aXBsaWVyKGFkZGVk
TWVtb3J5VXNhZ2UpOwotI2Vsc2UgLy8gVVNFKExJQlBBU19KSVRfSEVBUCkgLT4gc28gc3RhcnQg
b2YgIVVTRShMSUJQQVNfSklUX0hFQVApCiAgICAgRml4ZWRWTVBvb2xFeGVjdXRhYmxlQWxsb2Nh
dG9yKiBhbGxvY2F0b3IgPSBnX2pzY0NvbmZpZy5maXhlZFZNUG9vbEV4ZWN1dGFibGVBbGxvY2F0
b3I7CiAgICAgaWYgKCFhbGxvY2F0b3IpCiAgICAgICAgIHJldHVybiBCYXNlOjptZW1vcnlQcmVz
c3VyZU11bHRpcGxpZXIoYWRkZWRNZW1vcnlVc2FnZSk7CiAgICAgQVNTRVJUKGFsbG9jYXRvci0+
Ynl0ZXNBbGxvY2F0ZWQoKSA8PSBhbGxvY2F0b3ItPmJ5dGVzUmVzZXJ2ZWQoKSk7CiAgICAgc2l6
ZV90IGJ5dGVzQWxsb2NhdGVkID0gYWxsb2NhdG9yLT5ieXRlc0FsbG9jYXRlZCgpICsgYWRkZWRN
ZW1vcnlVc2FnZTsKLSAgICBzaXplX3QgYnl0ZXNBdmFpbGFibGUgPSBzdGF0aWNfY2FzdDxzaXpl
X3Q+KAotICAgICAgICBhbGxvY2F0b3ItPmJ5dGVzUmVzZXJ2ZWQoKSAqICgxIC0gZXhlY3V0YWJs
ZVBvb2xSZXNlcnZhdGlvbkZyYWN0aW9uKSk7CisgICAgc2l6ZV90IGJ5dGVzQXZhaWxhYmxlID0g
YWxsb2NhdG9yLT5ieXRlc0F2YWlsYWJsZSgpOwogICAgIGlmIChieXRlc0FsbG9jYXRlZCA+PSBi
eXRlc0F2YWlsYWJsZSkKICAgICAgICAgYnl0ZXNBbGxvY2F0ZWQgPSBieXRlc0F2YWlsYWJsZTsK
ICAgICBkb3VibGUgcmVzdWx0ID0gMS4wOwpAQCAtOTc2LDcgKzEwMDgsNiBAQCBkb3VibGUgRXhl
Y3V0YWJsZUFsbG9jYXRvcjo6bWVtb3J5UHJlc3N1cmVNdWx0aXBsaWVyKHNpemVfdCBhZGRlZE1l
bW9yeVVzYWdlKQogICAgIGlmIChyZXN1bHQgPCAxLjApCiAgICAgICAgIHJlc3VsdCA9IDEuMDsK
ICAgICByZXR1cm4gcmVzdWx0OwotI2VuZGlmIC8vIFVTRShMSUJQQVNfSklUX0hFQVApIC0+IHNv
IGVuZCBvZiAhVVNFKExJQlBBU19KSVRfSEVBUCkKIH0KIAogUmVmUHRyPEV4ZWN1dGFibGVNZW1v
cnlIYW5kbGU+IEV4ZWN1dGFibGVBbGxvY2F0b3I6OmFsbG9jYXRlKHNpemVfdCBzaXplSW5CeXRl
cywgSklUQ29tcGlsYXRpb25FZmZvcnQgZWZmb3J0KQpAQCAtMTAwMCwxOSArMTAzMSwxNiBAQCBS
ZWZQdHI8RXhlY3V0YWJsZU1lbW9yeUhhbmRsZT4gRXhlY3V0YWJsZUFsbG9jYXRvcjo6YWxsb2Nh
dGUoc2l6ZV90IHNpemVJbkJ5dGVzLAogICAgICAgICAmJiBkb0V4ZWN1dGFibGVBbGxvY2F0aW9u
RnV6emluZ0lmRW5hYmxlZCgpID09IFByZXRlbmRUb0ZhaWxFeGVjdXRhYmxlQWxsb2NhdGlvbikK
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSNpZiAhVVNFKExJQlBBU19KSVRfSEVBUCkKICAg
ICBpZiAoZWZmb3J0ID09IEpJVENvbXBpbGF0aW9uQ2FuRmFpbCkgewogICAgICAgICAvLyBEb24n
dCBhbGxvdyBhbGxvY2F0aW9ucyBpZiB3ZSBhcmUgZG93biB0byByZXNlcnZlLgogICAgICAgICBz
aXplX3QgYnl0ZXNBbGxvY2F0ZWQgPSBhbGxvY2F0b3ItPmJ5dGVzQWxsb2NhdGVkKCkgKyBzaXpl
SW5CeXRlczsKLSAgICAgICAgc2l6ZV90IGJ5dGVzQXZhaWxhYmxlID0gc3RhdGljX2Nhc3Q8c2l6
ZV90PigKLSAgICAgICAgICAgIGFsbG9jYXRvci0+Ynl0ZXNSZXNlcnZlZCgpICogKDEgLSBleGVj
dXRhYmxlUG9vbFJlc2VydmF0aW9uRnJhY3Rpb24pKTsKKyAgICAgICAgc2l6ZV90IGJ5dGVzQXZh
aWxhYmxlID0gYWxsb2NhdG9yLT5ieXRlc0F2YWlsYWJsZSgpOwogICAgICAgICBpZiAoYnl0ZXNB
bGxvY2F0ZWQgPiBieXRlc0F2YWlsYWJsZSkgewogICAgICAgICAgICAgaWYgKE9wdGlvbnM6Omxv
Z0V4ZWN1dGFibGVBbGxvY2F0aW9uKCkpCiAgICAgICAgICAgICAgICAgZGF0YUxvZygiQWxsb2Nh
dGlvbiBmYWlsZWQgYmVjYXVzZSBieXRlcyBhbGxvY2F0ZWQgIiwgYnl0ZXNBbGxvY2F0ZWQsICAi
ID4gIiwgYnl0ZXNBdmFpbGFibGUsICIgYnl0ZXMgYXZhaWxhYmxlLlxuIik7CiAgICAgICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgfQogICAgIH0KLSNlbmRpZiAvLyAhVVNFKExJQlBB
U19KSVRfSEVBUCkKIAogICAgIFJlZlB0cjxFeGVjdXRhYmxlTWVtb3J5SGFuZGxlPiByZXN1bHQg
PSBhbGxvY2F0b3ItPmFsbG9jYXRlKHNpemVJbkJ5dGVzKTsKICAgICBpZiAoIXJlc3VsdCkgewpA
QCAtMTIwMyw3ICsxMjMxLDcgQEAgUmVmUHRyPEV4ZWN1dGFibGVNZW1vcnlIYW5kbGU+IEV4ZWN1
dGFibGVNZW1vcnlIYW5kbGU6OmNyZWF0ZUltcGwoc2l6ZV90IHNpemVJbkIKIEV4ZWN1dGFibGVN
ZW1vcnlIYW5kbGU6On5FeGVjdXRhYmxlTWVtb3J5SGFuZGxlKCkKIHsKICAgICBGaXhlZFZNUG9v
bEV4ZWN1dGFibGVBbGxvY2F0b3IqIGFsbG9jYXRvciA9IGdfanNjQ29uZmlnLmZpeGVkVk1Qb29s
RXhlY3V0YWJsZUFsbG9jYXRvcjsKLSAgICBhbGxvY2F0b3ItPmhhbmRsZVdpbGxCZVJlbGVhc2Vk
KCp0aGlzKTsKKyAgICBhbGxvY2F0b3ItPmhhbmRsZVdpbGxCZVJlbGVhc2VkKCp0aGlzLCBzaXpl
SW5CeXRlcygpKTsKICAgICBqaXRfaGVhcF9kZWFsbG9jYXRlKGtleSgpKTsKIH0KIApAQCAtMTIx
NCw3ICsxMjQyLDEzIEBAIHNpemVfdCBFeGVjdXRhYmxlTWVtb3J5SGFuZGxlOjpzaXplSW5CeXRl
cygpIGNvbnN0CiAKIHZvaWQgRXhlY3V0YWJsZU1lbW9yeUhhbmRsZTo6c2hyaW5rKHNpemVfdCBu
ZXdTaXplSW5CeXRlcykKIHsKKyAgICBzaXplX3Qgb2xkU2l6ZUluQnl0ZXMgPSBzaXplSW5CeXRl
cygpOwogICAgIGppdF9oZWFwX3NocmluayhrZXkoKSwgbmV3U2l6ZUluQnl0ZXMpOworICAgIHNp
emVfdCBjdXJyZW50U2l6ZUluQnl0ZXMgPSBzaXplSW5CeXRlcygpOworICAgIGlmIChvbGRTaXpl
SW5CeXRlcyAhPSBjdXJyZW50U2l6ZUluQnl0ZXMpIHsKKyAgICAgICAgRml4ZWRWTVBvb2xFeGVj
dXRhYmxlQWxsb2NhdG9yKiBhbGxvY2F0b3IgPSBnX2pzY0NvbmZpZy5maXhlZFZNUG9vbEV4ZWN1
dGFibGVBbGxvY2F0b3I7CisgICAgICAgIGFsbG9jYXRvci5zaHJpbmtCeXRlc0FsbG9jYXRlZChv
bGRTaXplSW5CeXRlcywgY3VycmVudFNpemVJbkJ5dGVzKTsKKyAgICB9CiB9CiAjZW5kaWYKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433483</attachid>
            <date>2021-07-13 21:28:16 -0700</date>
            <delta_ts>2021-07-13 21:54:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227927-20210713212815.patch</filename>
            <type>text/plain</type>
            <size>11514</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5ODkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
MDllY2I1MTIwMTFiZjFhY2QxNjhkZGYxZjVkNTc3Njc4NzlkMjYyLi5kZDUzNDlhODc2MTFmNDI3
MTMzNDk3NDdkYzU1MGQ1OGI4ZTliM2FmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMyBAQAorMjAyMS0wNy0xMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIGxpYnBhcyBleGVjdXRhYmxlLWFsbG9jYXRvciBzaG91bGQgcmVzZXJ2ZSBt
b3JlIHRoYW4gMjU2S0IgZm9yIG5vbi1mYWlsIHJlZ2lvbiBhdCBsZWFzdAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3OTI3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgbGlicGFzIGppdF9oZWFwIGhhcyBt
ZWRpYW0gYWxsb2NhdG9yIHdoaWNoIGFsbG9jYXRlcyAxMjhLQiBwYWdlcyBhdCBvbmNlLiBIb3dl
dmVyLCBvdXIgSlNDIHN0cmVzcyB0ZXN0cyBhcmUgc2V0dGluZyAxMDBLQgorICAgICAgICBmb3Ig
c21hbGwgZXhlY3V0YWJsZSBtZW1vcnkgdGVzdHMuIEFzIGEgcmVzdWx0LCB1bmRlciB0aGlzIGNv
bmZpZ3VyYXRpb24sIHdlIGZhaWwgaW1tZWRpYXRlbHkgYWZ0ZXIgdXNpbmcgbWVkaXVtIGFsbG9j
YXRvci4KKworICAgICAgICBCdXQgdGhpcyB0ZXN0J3MgInRvdGFsIHNpemUgb2YgZXhlY3V0YWJs
ZSBtZW1vcnkgaXMgMTAwS0IiIGlzIHVucmVhbGlzdGljOiBpdCBpcyBwb3NzaWJsZSB0aGF0IG9u
bHkgMTAwS0IgbWVtb3J5IHJlbWFpbnMsCisgICAgICAgIGJ1dCBpdCBpcyBpbXBvc3NpYmxlIHRo
YXQgd2UgcmVzZXJ2ZSBvbmx5IDI1S0IgZm9yIG5vbi1mYWlsIHJlc2VydmF0aW9uLiBJbiBwcm9k
dWN0aW9uLCB3ZSBhcmUgYWx3YXlzIHJlc2VydmluZyAxMjhNQi4gU28KKyAgICAgICAgdGhpcyBj
b25maWd1cmF0aW9uIGlzIG5vdCByZWFsaXN0aWMgYWN0dWFsbHkuCisKKyAgICAgICAgU28sIHRo
aXMgcGF0Y2ggY2hhbmdlcywKKworICAgICAgICAgICAgMS4gSWYgbm9uLWZhaWwgcmVnaW9uIGlz
IGxlc3MgdGhhbiAyNTZLQiwgdGhlbiB3ZSBhZGQgMjU2S0IgYW5kIGtlZXAgdGhpcyAyNTZLQiBh
cyBub24tZmFpbCBleGVjdXRhYmxlIGFsbG9jYXRpb24uIElmIG5vdCwKKyAgICAgICAgICAgICAg
ICB1c2UgMC4yNSByYXRpbyBhcyB3ZSBhcmUgZG9pbmcuIFRoaXMgbWVhbnMgdGhhdCBPcHRpb25z
OjpqaXRNZW1vcnlSZXNlcnZhdGlvblNpemUgY29uZmlndXJlcyBmYWlsYWJsZSByZWdpb24gb2YK
KyAgICAgICAgICAgICAgICBleGVjdXRhYmxlIG1lbW9yeS4KKyAgICAgICAgICAgIDIuIFdlIGFs
c28gcmV2aXZlIGJ5dGVzUmVzZXJ2ZWQgYW5kIGJ5dGVzQWxsb2NhdGVkIHRvIG1ha2UgbWVtb3J5
UHJlc3N1cmVNdWx0aXBsaWVyIGFuZCBlYXJseS1mYWlsIGFsbG9jYXRpb24gKHdoZW4gdGhlcmUg
aXMKKyAgICAgICAgICAgICAgICBub3QgZW5vdWdoIG1lbW9yeSBhbmQgYWxsb2NhdGlvbiBjYW4g
ZmFpbCwgdGhlbiB3ZSBzaG91bGQgZmFpbCkuCisKKyAgICAgICAgKiBqaXQvRXhlY3V0YWJsZUFs
bG9jYXRvci5jcHA6CisgICAgICAgIChKU0M6OmluaXRpYWxpemVKSVRQYWdlUmVzZXJ2YXRpb24p
OgorICAgICAgICAoSlNDOjpFeGVjdXRhYmxlQWxsb2NhdG9yOjp1bmRlck1lbW9yeVByZXNzdXJl
KToKKyAgICAgICAgKEpTQzo6RXhlY3V0YWJsZUFsbG9jYXRvcjo6bWVtb3J5UHJlc3N1cmVNdWx0
aXBsaWVyKToKKyAgICAgICAgKEpTQzo6RXhlY3V0YWJsZUFsbG9jYXRvcjo6YWxsb2NhdGUpOgor
ICAgICAgICAoSlNDOjpFeGVjdXRhYmxlTWVtb3J5SGFuZGxlOjp+RXhlY3V0YWJsZU1lbW9yeUhh
bmRsZSk6CisgICAgICAgIChKU0M6OkV4ZWN1dGFibGVNZW1vcnlIYW5kbGU6OnNocmluayk6CisK
IDIwMjEtMDctMTMgIFlpamlhIEh1YW5nICA8eWlqaWFfaHVhbmdAYXBwbGUuY29tPgogCiAgICAg
ICAgIEFkZCBhIG5ldyBBaXI6OkFyZyBraW5kIFplcm9SZWcgdG8gbGV0IEFJUiByZWNvZ25pc2Ug
dGhlIG5ldyBpbnN0cnVjdGlvbnMvZm9ybXMgYWNjZXB0aW5nIHplcm8gcmVnaXN0ZXIgaW4gQVJN
NjQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9j
YXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVBbGxvY2F0b3Iu
Y3BwCmluZGV4IGU2NmJiOWYyMWJhNTk3MTNjYzYyODQ1YmM5ZTgwOTc3ZWE4MWY3ZTMuLmI5OTgw
MThlZDBkYTZjZjY2MTE2MzU1NmVlZjQ2YTBmNDRkODc3ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9yLmNwcApAQCAtMTI0LDYgKzEyNCwx
MiBAQCBzdGF0aWMgY29uc3RleHByIGRvdWJsZSBleGVjdXRhYmxlUG9vbFJlc2VydmF0aW9uRnJh
Y3Rpb24gPSAwLjE1Owogc3RhdGljIGNvbnN0ZXhwciBkb3VibGUgZXhlY3V0YWJsZVBvb2xSZXNl
cnZhdGlvbkZyYWN0aW9uID0gMC4yNTsKICNlbmRpZgogCisjaWYgVVNFKExJQlBBU19KSVRfSEVB
UCkKKy8vIFRoaXMgc2l6ZSBpcyBkZXJpdmVkIGZyb20gaml0X2NvbmZpZydzIG1lZGl1bSB0YWJs
ZSBzaXplLgorc3RhdGljIGNvbnN0ZXhwciBzaXplX3QgbWluaW11bUV4ZWN1dGFibGVQb29sUmVz
ZXJ2YXRpb25TaXplID0gMjU2ICogS0I7CitzdGF0aWNfYXNzZXJ0KGZpeGVkRXhlY3V0YWJsZU1l
bW9yeVBvb2xTaXplICogZXhlY3V0YWJsZVBvb2xSZXNlcnZhdGlvbkZyYWN0aW9uID49IG1pbmlt
dW1FeGVjdXRhYmxlUG9vbFJlc2VydmF0aW9uU2l6ZSk7CisjZW5kaWYKKwogc3RhdGljIGJvb2wg
aXNKSVRFbmFibGVkKCkKIHsKICAgICBib29sIGppdEVuYWJsZWQgPSAhZ19qc2NDb25maWcuaml0
RGlzYWJsZWQ7CkBAIC0zNDAsNiArMzQ2LDEwIEBAIHN0YXRpYyBBTFdBWVNfSU5MSU5FIEpJVFJl
c2VydmF0aW9uIGluaXRpYWxpemVKSVRQYWdlUmVzZXJ2YXRpb24oKQogCiAgICAgaWYgKE9wdGlv
bnM6OmppdE1lbW9yeVJlc2VydmF0aW9uU2l6ZSgpKSB7CiAgICAgICAgIHJlc2VydmF0aW9uLnNp
emUgPSBPcHRpb25zOjpqaXRNZW1vcnlSZXNlcnZhdGlvblNpemUoKTsKKyNpZiBVU0UoTElCUEFT
X0pJVF9IRUFQKQorICAgICAgICBpZiAocmVzZXJ2YXRpb24uc2l6ZSAqIGV4ZWN1dGFibGVQb29s
UmVzZXJ2YXRpb25GcmFjdGlvbiA8IG1pbmltdW1FeGVjdXRhYmxlUG9vbFJlc2VydmF0aW9uU2l6
ZSkKKyAgICAgICAgICAgIHJlc2VydmF0aW9uLnNpemUgKz0gbWluaW11bUV4ZWN1dGFibGVQb29s
UmVzZXJ2YXRpb25TaXplOworI2VuZGlmCiAKICNpZiBFTkFCTEUoSlVNUF9JU0xBTkRTKQogICAg
ICAgICAvLyBJZiBhc2tlZCBmb3IgYSByZXNlcnZhdGlvbiBzbWFsbGVyIHRoYW4gaXNsYW5kIHNp
emUsIGFzc3VtZSB0aGF0IHdlIHdhbnQgdGhhdCBzaXplIGFsbG9jYXRpb24KQEAgLTQ0NCw3ICs0
NTQsOSBAQCBjbGFzcyBGaXhlZFZNUG9vbEV4ZWN1dGFibGVBbGxvY2F0b3IgZmluYWwgewogICAg
ICAgICAgICAgICAgICAgICBtX2FsbG9jYXRvcnNbaV0ubV9lbmQgPSB0YWdDb2RlUHRyPEV4ZWN1
dGFibGVNZW1vcnlQdHJUYWc+KGJpdHdpc2VfY2FzdDx2b2lkKj4ocmVzZXJ2YXRpb25FbmQpKTsK
ICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICBtX2FsbG9jYXRvcnNbaV0uYWRk
RnJlc2hGcmVlU3BhY2UoYml0d2lzZV9jYXN0PHZvaWQqPihtX2FsbG9jYXRvcnNbaV0uc3RhcnQo
KSksIG1fYWxsb2NhdG9yc1tpXS5hbGxvY2F0b3JTaXplKCkpOworICAgICAgICAgICAgICAgIHNp
emVfdCBzaXplSW5CeXRlcyA9IG1fYWxsb2NhdG9yc1tpXS5hbGxvY2F0b3JTaXplKCk7CisgICAg
ICAgICAgICAgICAgbV9hbGxvY2F0b3JzW2ldLmFkZEZyZXNoRnJlZVNwYWNlKGJpdHdpc2VfY2Fz
dDx2b2lkKj4obV9hbGxvY2F0b3JzW2ldLnN0YXJ0KCkpLCBzaXplSW5CeXRlcyk7CisgICAgICAg
ICAgICAgICAgbV9ieXRlc1Jlc2VydmVkICs9IHNpemVJbkJ5dGVzOwogCiAgICAgICAgICAgICAg
ICAgUkVMRUFTRV9BU1NFUlQobV9hbGxvY2F0b3JzW2ldLmFsbG9jYXRvclNpemUoKSA8IHJlZ2lv
blNpemUpOwogICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKG1fYWxsb2NhdG9yc1tpXS5p
c2xhbmRCZWdpbigpID4gbV9hbGxvY2F0b3JzW2ldLnN0YXJ0KCkpOwpAQCAtNDU0LDkgKzQ2Niw3
IEBAIGNsYXNzIEZpeGVkVk1Qb29sRXhlY3V0YWJsZUFsbG9jYXRvciBmaW5hbCB7CiAgICAgICAg
ICAgICB9CiAjZWxzZQogICAgICAgICAgICAgbV9hbGxvY2F0b3IuYWRkRnJlc2hGcmVlU3BhY2Uo
cmVzZXJ2YXRpb24uYmFzZSwgcmVzZXJ2YXRpb24uc2l6ZSk7Ci0jaWYgIVVTRShMSUJQQVNfSklU
X0hFQVApCi0gICAgICAgICAgICBBU1NFUlQoYnl0ZXNSZXNlcnZlZCgpID09IHJlc2VydmF0aW9u
LnNpemUpOyAvLyBTaW5jZSBvdXIgZXhlY3V0YWJsZSBtZW1vcnkgaXMgZml4ZWQtc2l6ZWQsIGJ5
dGVzUmVzZXJ2ZWQgaXMgbmV2ZXIgY2hhbmdlZCBhZnRlciBpbml0aWFsaXphdGlvbi4KLSNlbmRp
ZgorICAgICAgICAgICAgbV9ieXRlc1Jlc2VydmVkICs9IHJlc2VydmF0aW9uLnNpemU7CiAjZW5k
aWYKICAgICAgICAgfQogICAgIH0KQEAgLTQ3NCw3ICs0ODQsMTAgQEAgY2xhc3MgRml4ZWRWTVBv
b2xFeGVjdXRhYmxlQWxsb2NhdG9yIGZpbmFsIHsKICAgICBSZWZQdHI8RXhlY3V0YWJsZU1lbW9y
eUhhbmRsZT4gYWxsb2NhdGUoc2l6ZV90IHNpemVJbkJ5dGVzKQogICAgIHsKICNpZiBVU0UoTElC
UEFTX0pJVF9IRUFQKQotICAgICAgICByZXR1cm4gRXhlY3V0YWJsZU1lbW9yeUhhbmRsZTo6Y3Jl
YXRlSW1wbChzaXplSW5CeXRlcyk7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gRXhlY3V0YWJsZU1l
bW9yeUhhbmRsZTo6Y3JlYXRlSW1wbChzaXplSW5CeXRlcyk7CisgICAgICAgIGlmIChMSUtFTFko
cmVzdWx0KSkKKyAgICAgICAgICAgIG1fYnl0ZXNBbGxvY2F0ZWQuZmV0Y2hfYWRkKHJlc3VsdC0+
c2l6ZUluQnl0ZXMoKSwgc3RkOjptZW1vcnlfb3JkZXJfcmVsYXhlZCk7CisgICAgICAgIHJldHVy
biByZXN1bHQ7CiAjZWxpZiBFTkFCTEUoSlVNUF9JU0xBTkRTKQogICAgICAgICBMb2NrZXIgbG9j
a2VyIHsgZ2V0TG9jaygpIH07CiAKQEAgLTQ5OSwyNCArNTEyLDQ2IEBAIGNsYXNzIEZpeGVkVk1Q
b29sRXhlY3V0YWJsZUFsbG9jYXRvciBmaW5hbCB7CiAKICAgICBMb2NrJiBnZXRMb2NrKCkgV1RG
X1JFVFVSTlNfTE9DSyhtX2xvY2spIHsgcmV0dXJuIG1fbG9jazsgfQogCi0jaWYgIVVTRShMSUJQ
QVNfSklUX0hFQVApCisjaWYgVVNFKExJQlBBU19KSVRfSEVBUCkKKyAgICB2b2lkIHNocmlua0J5
dGVzQWxsb2NhdGVkKHNpemVfdCBvbGRTaXplSW5CeXRlcywgc2l6ZV90IG5ld1NpemVJbkJ5dGVz
KQorICAgIHsKKyAgICAgICAgbV9ieXRlc0FsbG9jYXRlZC5mZXRjaF9hZGQobmV3U2l6ZUluQnl0
ZXMgLSBvbGRTaXplSW5CeXRlcywgc3RkOjptZW1vcnlfb3JkZXJfcmVsYXhlZCk7CisgICAgfQor
I2VuZGlmCisKICAgICAvLyBOb24gYXRvbWljCi0gICAgc2l6ZV90IGJ5dGVzQWxsb2NhdGVkKCkg
CisgICAgc2l6ZV90IGJ5dGVzQWxsb2NhdGVkKCkKICAgICB7CisjaWYgVVNFKExJQlBBU19KSVRf
SEVBUCkKKyAgICAgICAgcmV0dXJuIG1fYnl0ZXNBbGxvY2F0ZWQubG9hZChzdGQ6Om1lbW9yeV9v
cmRlcl9yZWxheGVkKTsKKyNlbHNlCiAgICAgICAgIHNpemVfdCByZXN1bHQgPSAwOwogICAgICAg
ICBmb3JFYWNoQWxsb2NhdG9yKFsmXSAoQWxsb2NhdG9yJiBhbGxvY2F0b3IpIHsKICAgICAgICAg
ICAgIHJlc3VsdCArPSBhbGxvY2F0b3IuYnl0ZXNBbGxvY2F0ZWQoKTsKICAgICAgICAgfSk7CiAg
ICAgICAgIHJldHVybiByZXN1bHQ7CisjZW5kaWYKICAgICB9Ci0gICAgc2l6ZV90IGJ5dGVzUmVz
ZXJ2ZWQoKSAKKworICAgIHNpemVfdCBieXRlc1Jlc2VydmVkKCkgY29uc3QKICAgICB7Ci0gICAg
ICAgIHNpemVfdCByZXN1bHQgPSAwOwotICAgICAgICBmb3JFYWNoQWxsb2NhdG9yKFsmXSAoQWxs
b2NhdG9yJiBhbGxvY2F0b3IpIHsKLSAgICAgICAgICAgIHJlc3VsdCArPSBhbGxvY2F0b3IuYnl0
ZXNSZXNlcnZlZCgpOwotICAgICAgICB9KTsKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAg
ICAgcmV0dXJuIG1fYnl0ZXNSZXNlcnZlZDsKKyAgICB9CisKKyAgICBzaXplX3QgYnl0ZXNBdmFp
bGFibGUoKQorICAgIHsKKyAgICAgICAgc2l6ZV90IGJ5dGVzUmVzZXJ2ZWQgPSB0aGlzLT5ieXRl
c1Jlc2VydmVkKCk7CisjaWYgVVNFKExJQlBBU19KSVRfSEVBUCkKKyAgICAgICAgc2l6ZV90IG5v
bkF2YWlsYWJsZVNpemUgPSBzdGF0aWNfY2FzdDxzaXplX3Q+KGJ5dGVzUmVzZXJ2ZWQgKiBleGVj
dXRhYmxlUG9vbFJlc2VydmF0aW9uRnJhY3Rpb24pOworICAgICAgICBpZiAobm9uQXZhaWxhYmxl
U2l6ZSA8IG1pbmltdW1FeGVjdXRhYmxlUG9vbFJlc2VydmF0aW9uU2l6ZSkKKyAgICAgICAgICAg
IHJldHVybiBieXRlc1Jlc2VydmVkIC0gbWluaW11bUV4ZWN1dGFibGVQb29sUmVzZXJ2YXRpb25T
aXplOworICAgICAgICByZXR1cm4gYnl0ZXNSZXNlcnZlZCAtIG5vbkF2YWlsYWJsZVNpemU7Cisj
ZWxzZQorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8c2l6ZV90PihieXRlc1Jlc2VydmVkICog
KDEgLSBleGVjdXRhYmxlUG9vbFJlc2VydmF0aW9uRnJhY3Rpb24pKTsKKyNlbmRpZgogICAgIH0K
KworI2lmICFVU0UoTElCUEFTX0pJVF9IRUFQKQogICAgIHNpemVfdCBieXRlc0NvbW1pdHRlZCgp
CiAgICAgewogICAgICAgICBzaXplX3QgcmVzdWx0ID0gMDsKQEAgLTU2Myw4ICs1OTgsOSBAQCBj
bGFzcyBGaXhlZFZNUG9vbEV4ZWN1dGFibGVBbGxvY2F0b3IgZmluYWwgewogI2VuZGlmIC8vICFV
U0UoTElCUEFTX0pJVF9IRUFQKQogCiAjaWYgVVNFKExJQlBBU19KSVRfSEVBUCkKLSAgICB2b2lk
IGhhbmRsZVdpbGxCZVJlbGVhc2VkKEV4ZWN1dGFibGVNZW1vcnlIYW5kbGUmIGhhbmRsZSkKKyAg
ICB2b2lkIGhhbmRsZVdpbGxCZVJlbGVhc2VkKEV4ZWN1dGFibGVNZW1vcnlIYW5kbGUmIGhhbmRs
ZSwgc2l6ZV90IHNpemVJbkJ5dGVzKQogICAgIHsKKyAgICAgICAgbV9ieXRlc0FsbG9jYXRlZC5m
ZXRjaF9zdWIoc2l6ZUluQnl0ZXMsIHN0ZDo6bWVtb3J5X29yZGVyX3JlbGF4ZWQpOwogI2lmIEVO
QUJMRShKVU1QX0lTTEFORFMpCiAgICAgICAgIGlmIChtX2lzbGFuZHNGb3JKdW1wU291cmNlTG9j
YXRpb24uaXNFbXB0eSgpKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtOTIzLDYgKzk1OSwxMCBA
QCBjbGFzcyBGaXhlZFZNUG9vbEV4ZWN1dGFibGVBbGxvY2F0b3IgZmluYWwgewogI2Vsc2UKICAg
ICBBbGxvY2F0b3IgbV9hbGxvY2F0b3I7CiAjZW5kaWYgLy8gRU5BQkxFKEpVTVBfSVNMQU5EUykK
KyAgICBzaXplX3QgbV9ieXRlc1Jlc2VydmVkIHsgMCB9OworI2lmIFVTRShMSUJQQVNfSklUX0hF
QVApCisgICAgc3RkOjphdG9taWM8c2l6ZV90PiBtX2J5dGVzQWxsb2NhdGVkIHsgMCB9OworI2Vu
ZGlmCiB9OwogCiAvLyBLZWVwIHRoaXMgcG9pbnRlciBpbiBhIG11dGFibGUgZ2xvYmFsIHZhcmlh
YmxlIHRvIGhlbHAgTGVha3MgZmluZCBpdC4KQEAgLTk0NSwyOCArOTg1LDIwIEBAIGJvb2wgRXhl
Y3V0YWJsZUFsbG9jYXRvcjo6aXNWYWxpZCgpIGNvbnN0CiAKIGJvb2wgRXhlY3V0YWJsZUFsbG9j
YXRvcjo6dW5kZXJNZW1vcnlQcmVzc3VyZSgpCiB7Ci0jaWYgVVNFKExJQlBBU19KSVRfSEVBUCkK
LSAgICByZXR1cm4gQmFzZTo6dW5kZXJNZW1vcnlQcmVzc3VyZSgpOwotI2Vsc2UgLy8gVVNFKExJ
QlBBU19KSVRfSEVBUCkgLT4gc28gc3RhcnQgb2YgIVVTRShMSUJQQVNfSklUX0hFQVApCiAgICAg
Rml4ZWRWTVBvb2xFeGVjdXRhYmxlQWxsb2NhdG9yKiBhbGxvY2F0b3IgPSBnX2pzY0NvbmZpZy5m
aXhlZFZNUG9vbEV4ZWN1dGFibGVBbGxvY2F0b3I7CiAgICAgaWYgKCFhbGxvY2F0b3IpCiAgICAg
ICAgIHJldHVybiBCYXNlOjp1bmRlck1lbW9yeVByZXNzdXJlKCk7CiAgICAgcmV0dXJuIGFsbG9j
YXRvci0+Ynl0ZXNBbGxvY2F0ZWQoKSA+IGFsbG9jYXRvci0+Ynl0ZXNSZXNlcnZlZCgpIC8gMjsK
LSNlbmRpZiAvLyBVU0UoTElCUEFTX0pJVF9IRUFQKSAtPiBzbyBlbmQgb2YgIVVTRShMSUJQQVNf
SklUX0hFQVApCiB9CiAKIGRvdWJsZSBFeGVjdXRhYmxlQWxsb2NhdG9yOjptZW1vcnlQcmVzc3Vy
ZU11bHRpcGxpZXIoc2l6ZV90IGFkZGVkTWVtb3J5VXNhZ2UpCiB7Ci0jaWYgVVNFKExJQlBBU19K
SVRfSEVBUCkKLSAgICByZXR1cm4gQmFzZTo6bWVtb3J5UHJlc3N1cmVNdWx0aXBsaWVyKGFkZGVk
TWVtb3J5VXNhZ2UpOwotI2Vsc2UgLy8gVVNFKExJQlBBU19KSVRfSEVBUCkgLT4gc28gc3RhcnQg
b2YgIVVTRShMSUJQQVNfSklUX0hFQVApCiAgICAgRml4ZWRWTVBvb2xFeGVjdXRhYmxlQWxsb2Nh
dG9yKiBhbGxvY2F0b3IgPSBnX2pzY0NvbmZpZy5maXhlZFZNUG9vbEV4ZWN1dGFibGVBbGxvY2F0
b3I7CiAgICAgaWYgKCFhbGxvY2F0b3IpCiAgICAgICAgIHJldHVybiBCYXNlOjptZW1vcnlQcmVz
c3VyZU11bHRpcGxpZXIoYWRkZWRNZW1vcnlVc2FnZSk7CiAgICAgQVNTRVJUKGFsbG9jYXRvci0+
Ynl0ZXNBbGxvY2F0ZWQoKSA8PSBhbGxvY2F0b3ItPmJ5dGVzUmVzZXJ2ZWQoKSk7CiAgICAgc2l6
ZV90IGJ5dGVzQWxsb2NhdGVkID0gYWxsb2NhdG9yLT5ieXRlc0FsbG9jYXRlZCgpICsgYWRkZWRN
ZW1vcnlVc2FnZTsKLSAgICBzaXplX3QgYnl0ZXNBdmFpbGFibGUgPSBzdGF0aWNfY2FzdDxzaXpl
X3Q+KAotICAgICAgICBhbGxvY2F0b3ItPmJ5dGVzUmVzZXJ2ZWQoKSAqICgxIC0gZXhlY3V0YWJs
ZVBvb2xSZXNlcnZhdGlvbkZyYWN0aW9uKSk7CisgICAgc2l6ZV90IGJ5dGVzQXZhaWxhYmxlID0g
YWxsb2NhdG9yLT5ieXRlc0F2YWlsYWJsZSgpOwogICAgIGlmIChieXRlc0FsbG9jYXRlZCA+PSBi
eXRlc0F2YWlsYWJsZSkKICAgICAgICAgYnl0ZXNBbGxvY2F0ZWQgPSBieXRlc0F2YWlsYWJsZTsK
ICAgICBkb3VibGUgcmVzdWx0ID0gMS4wOwpAQCAtOTc2LDcgKzEwMDgsNiBAQCBkb3VibGUgRXhl
Y3V0YWJsZUFsbG9jYXRvcjo6bWVtb3J5UHJlc3N1cmVNdWx0aXBsaWVyKHNpemVfdCBhZGRlZE1l
bW9yeVVzYWdlKQogICAgIGlmIChyZXN1bHQgPCAxLjApCiAgICAgICAgIHJlc3VsdCA9IDEuMDsK
ICAgICByZXR1cm4gcmVzdWx0OwotI2VuZGlmIC8vIFVTRShMSUJQQVNfSklUX0hFQVApIC0+IHNv
IGVuZCBvZiAhVVNFKExJQlBBU19KSVRfSEVBUCkKIH0KIAogUmVmUHRyPEV4ZWN1dGFibGVNZW1v
cnlIYW5kbGU+IEV4ZWN1dGFibGVBbGxvY2F0b3I6OmFsbG9jYXRlKHNpemVfdCBzaXplSW5CeXRl
cywgSklUQ29tcGlsYXRpb25FZmZvcnQgZWZmb3J0KQpAQCAtMTAwMCwxOSArMTAzMSwxNiBAQCBS
ZWZQdHI8RXhlY3V0YWJsZU1lbW9yeUhhbmRsZT4gRXhlY3V0YWJsZUFsbG9jYXRvcjo6YWxsb2Nh
dGUoc2l6ZV90IHNpemVJbkJ5dGVzLAogICAgICAgICAmJiBkb0V4ZWN1dGFibGVBbGxvY2F0aW9u
RnV6emluZ0lmRW5hYmxlZCgpID09IFByZXRlbmRUb0ZhaWxFeGVjdXRhYmxlQWxsb2NhdGlvbikK
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSNpZiAhVVNFKExJQlBBU19KSVRfSEVBUCkKICAg
ICBpZiAoZWZmb3J0ID09IEpJVENvbXBpbGF0aW9uQ2FuRmFpbCkgewogICAgICAgICAvLyBEb24n
dCBhbGxvdyBhbGxvY2F0aW9ucyBpZiB3ZSBhcmUgZG93biB0byByZXNlcnZlLgogICAgICAgICBz
aXplX3QgYnl0ZXNBbGxvY2F0ZWQgPSBhbGxvY2F0b3ItPmJ5dGVzQWxsb2NhdGVkKCkgKyBzaXpl
SW5CeXRlczsKLSAgICAgICAgc2l6ZV90IGJ5dGVzQXZhaWxhYmxlID0gc3RhdGljX2Nhc3Q8c2l6
ZV90PigKLSAgICAgICAgICAgIGFsbG9jYXRvci0+Ynl0ZXNSZXNlcnZlZCgpICogKDEgLSBleGVj
dXRhYmxlUG9vbFJlc2VydmF0aW9uRnJhY3Rpb24pKTsKKyAgICAgICAgc2l6ZV90IGJ5dGVzQXZh
aWxhYmxlID0gYWxsb2NhdG9yLT5ieXRlc0F2YWlsYWJsZSgpOwogICAgICAgICBpZiAoYnl0ZXNB
bGxvY2F0ZWQgPiBieXRlc0F2YWlsYWJsZSkgewogICAgICAgICAgICAgaWYgKE9wdGlvbnM6Omxv
Z0V4ZWN1dGFibGVBbGxvY2F0aW9uKCkpCiAgICAgICAgICAgICAgICAgZGF0YUxvZygiQWxsb2Nh
dGlvbiBmYWlsZWQgYmVjYXVzZSBieXRlcyBhbGxvY2F0ZWQgIiwgYnl0ZXNBbGxvY2F0ZWQsICAi
ID4gIiwgYnl0ZXNBdmFpbGFibGUsICIgYnl0ZXMgYXZhaWxhYmxlLlxuIik7CiAgICAgICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgfQogICAgIH0KLSNlbmRpZiAvLyAhVVNFKExJQlBB
U19KSVRfSEVBUCkKIAogICAgIFJlZlB0cjxFeGVjdXRhYmxlTWVtb3J5SGFuZGxlPiByZXN1bHQg
PSBhbGxvY2F0b3ItPmFsbG9jYXRlKHNpemVJbkJ5dGVzKTsKICAgICBpZiAoIXJlc3VsdCkgewpA
QCAtMTIwMyw3ICsxMjMxLDcgQEAgUmVmUHRyPEV4ZWN1dGFibGVNZW1vcnlIYW5kbGU+IEV4ZWN1
dGFibGVNZW1vcnlIYW5kbGU6OmNyZWF0ZUltcGwoc2l6ZV90IHNpemVJbkIKIEV4ZWN1dGFibGVN
ZW1vcnlIYW5kbGU6On5FeGVjdXRhYmxlTWVtb3J5SGFuZGxlKCkKIHsKICAgICBGaXhlZFZNUG9v
bEV4ZWN1dGFibGVBbGxvY2F0b3IqIGFsbG9jYXRvciA9IGdfanNjQ29uZmlnLmZpeGVkVk1Qb29s
RXhlY3V0YWJsZUFsbG9jYXRvcjsKLSAgICBhbGxvY2F0b3ItPmhhbmRsZVdpbGxCZVJlbGVhc2Vk
KCp0aGlzKTsKKyAgICBhbGxvY2F0b3ItPmhhbmRsZVdpbGxCZVJlbGVhc2VkKCp0aGlzLCBzaXpl
SW5CeXRlcygpKTsKICAgICBqaXRfaGVhcF9kZWFsbG9jYXRlKGtleSgpKTsKIH0KIApAQCAtMTIx
NCw3ICsxMjQyLDEzIEBAIHNpemVfdCBFeGVjdXRhYmxlTWVtb3J5SGFuZGxlOjpzaXplSW5CeXRl
cygpIGNvbnN0CiAKIHZvaWQgRXhlY3V0YWJsZU1lbW9yeUhhbmRsZTo6c2hyaW5rKHNpemVfdCBu
ZXdTaXplSW5CeXRlcykKIHsKKyAgICBzaXplX3Qgb2xkU2l6ZUluQnl0ZXMgPSBzaXplSW5CeXRl
cygpOwogICAgIGppdF9oZWFwX3NocmluayhrZXkoKSwgbmV3U2l6ZUluQnl0ZXMpOworICAgIHNp
emVfdCBjdXJyZW50U2l6ZUluQnl0ZXMgPSBzaXplSW5CeXRlcygpOworICAgIGlmIChvbGRTaXpl
SW5CeXRlcyAhPSBjdXJyZW50U2l6ZUluQnl0ZXMpIHsKKyAgICAgICAgRml4ZWRWTVBvb2xFeGVj
dXRhYmxlQWxsb2NhdG9yKiBhbGxvY2F0b3IgPSBnX2pzY0NvbmZpZy5maXhlZFZNUG9vbEV4ZWN1
dGFibGVBbGxvY2F0b3I7CisgICAgICAgIGFsbG9jYXRvci0+c2hyaW5rQnl0ZXNBbGxvY2F0ZWQo
b2xkU2l6ZUluQnl0ZXMsIGN1cnJlbnRTaXplSW5CeXRlcyk7CisgICAgfQogfQogI2VuZGlmCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433484</attachid>
            <date>2021-07-13 21:54:19 -0700</date>
            <delta_ts>2021-07-13 21:58:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227927-20210713215418.patch</filename>
            <type>text/plain</type>
            <size>13262</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5ODkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
MDllY2I1MTIwMTFiZjFhY2QxNjhkZGYxZjVkNTc3Njc4NzlkMjYyLi5lOGFiMjEwOGFmMzAxN2Jh
OTU2MzQzOTIwNTNjNDllMTUzOWExODA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzOCBAQAorMjAyMS0wNy0xMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIGxpYnBhcyBleGVjdXRhYmxlLWFsbG9jYXRvciBzaG91bGQgcmVzZXJ2ZSBt
b3JlIHRoYW4gMjU2S0IgZm9yIG5vbi1mYWlsIHJlZ2lvbiBhdCBsZWFzdAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3OTI3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgbGlicGFzIGppdF9oZWFwIGhhcyBt
ZWRpYW0gYWxsb2NhdG9yIHdoaWNoIGFsbG9jYXRlcyAxMjhLQiBwYWdlcyBhdCBvbmNlLiBIb3dl
dmVyLCBvdXIgSlNDIHN0cmVzcyB0ZXN0cyBhcmUgc2V0dGluZyAxMDBLQgorICAgICAgICBmb3Ig
c21hbGwgZXhlY3V0YWJsZSBtZW1vcnkgdGVzdHMuIEFzIGEgcmVzdWx0LCB1bmRlciB0aGlzIGNv
bmZpZ3VyYXRpb24sIHdlIGZhaWwgaW1tZWRpYXRlbHkgYWZ0ZXIgdXNpbmcgbWVkaXVtIGFsbG9j
YXRvci4KKworICAgICAgICBCdXQgdGhpcyB0ZXN0J3MgInRvdGFsIHNpemUgb2YgZXhlY3V0YWJs
ZSBtZW1vcnkgaXMgMTAwS0IiIGlzIHVucmVhbGlzdGljOiBpdCBpcyBwb3NzaWJsZSB0aGF0IG9u
bHkgMTAwS0IgbWVtb3J5IHJlbWFpbnMsCisgICAgICAgIGJ1dCBpdCBpcyBpbXBvc3NpYmxlIHRo
YXQgd2UgcmVzZXJ2ZSBvbmx5IDI1S0IgZm9yIG5vbi1mYWlsIHJlc2VydmF0aW9uLiBJbiBwcm9k
dWN0aW9uLCB3ZSBhcmUgYWx3YXlzIHJlc2VydmluZyAxMjhNQi4gU28KKyAgICAgICAgdGhpcyBj
b25maWd1cmF0aW9uIGlzIG5vdCByZWFsaXN0aWMgYWN0dWFsbHkuCisKKyAgICAgICAgU28sIHRo
aXMgcGF0Y2ggY2hhbmdlcywKKworICAgICAgICAgICAgMS4gSWYgbm9uLWZhaWwgcmVnaW9uIGlz
IGxlc3MgdGhhbiAyNTZLQiwgdGhlbiB3ZSBhZGQgMjU2S0IgYW5kIGtlZXAgdGhpcyAyNTZLQiBh
cyBub24tZmFpbCBleGVjdXRhYmxlIGFsbG9jYXRpb24uIElmIG5vdCwKKyAgICAgICAgICAgICAg
ICB1c2UgMC4yNSByYXRpbyBhcyB3ZSBhcmUgZG9pbmcuIFRoaXMgbWVhbnMgdGhhdCBPcHRpb25z
OjpqaXRNZW1vcnlSZXNlcnZhdGlvblNpemUgY29uZmlndXJlcyBmYWlsYWJsZSByZWdpb24gb2YK
KyAgICAgICAgICAgICAgICBleGVjdXRhYmxlIG1lbW9yeS4KKyAgICAgICAgICAgIDIuIFdlIGFs
c28gcmV2aXZlIGJ5dGVzUmVzZXJ2ZWQgYW5kIGJ5dGVzQWxsb2NhdGVkIHRvIG1ha2UgbWVtb3J5
UHJlc3N1cmVNdWx0aXBsaWVyIGFuZCBlYXJseS1mYWlsIGFsbG9jYXRpb24gKHdoZW4gdGhlcmUg
aXMKKyAgICAgICAgICAgICAgICBub3QgZW5vdWdoIG1lbW9yeSBhbmQgYWxsb2NhdGlvbiBjYW4g
ZmFpbCwgdGhlbiB3ZSBzaG91bGQgZmFpbCkuCisKKyAgICAgICAgKiBqaXQvRXhlY3V0YWJsZUFs
bG9jYXRvci5jcHA6CisgICAgICAgIChKU0M6OmluaXRpYWxpemVKSVRQYWdlUmVzZXJ2YXRpb24p
OgorICAgICAgICAoSlNDOjpFeGVjdXRhYmxlQWxsb2NhdG9yOjp1bmRlck1lbW9yeVByZXNzdXJl
KToKKyAgICAgICAgKEpTQzo6RXhlY3V0YWJsZUFsbG9jYXRvcjo6bWVtb3J5UHJlc3N1cmVNdWx0
aXBsaWVyKToKKyAgICAgICAgKEpTQzo6RXhlY3V0YWJsZUFsbG9jYXRvcjo6YWxsb2NhdGUpOgor
ICAgICAgICAoSlNDOjpFeGVjdXRhYmxlTWVtb3J5SGFuZGxlOjpjcmVhdGVJbXBsKToKKyAgICAg
ICAgKEpTQzo6RXhlY3V0YWJsZU1lbW9yeUhhbmRsZTo6fkV4ZWN1dGFibGVNZW1vcnlIYW5kbGUp
OgorICAgICAgICAoSlNDOjpFeGVjdXRhYmxlTWVtb3J5SGFuZGxlOjpzaHJpbmspOgorICAgICAg
ICAoSlNDOjpFeGVjdXRhYmxlTWVtb3J5SGFuZGxlOjpzaXplSW5CeXRlcyBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgICogaml0L0V4ZWN1dGFibGVNZW1vcnlIYW5kbGUuaDoKKyAgICAgICAgKEpT
Qzo6RXhlY3V0YWJsZU1lbW9yeUhhbmRsZTo6c2l6ZUluQnl0ZXMgY29uc3QpOgorICAgICAgICAo
SlNDOjpFeGVjdXRhYmxlTWVtb3J5SGFuZGxlOjpFeGVjdXRhYmxlTWVtb3J5SGFuZGxlKToKKwog
MjAyMS0wNy0xMyAgWWlqaWEgSHVhbmcgIDx5aWppYV9odWFuZ0BhcHBsZS5jb20+CiAKICAgICAg
ICAgQWRkIGEgbmV3IEFpcjo6QXJnIGtpbmQgWmVyb1JlZyB0byBsZXQgQUlSIHJlY29nbmlzZSB0
aGUgbmV3IGluc3RydWN0aW9ucy9mb3JtcyBhY2NlcHRpbmcgemVybyByZWdpc3RlciBpbiBBUk02
NApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2Nh
dG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5j
cHAKaW5kZXggZTY2YmI5ZjIxYmE1OTcxM2NjNjI4NDViYzllODA5NzdlYTgxZjdlMy4uMjA0N2Vl
OTc2MzI4MzFkMGNkYjI5MTA5MGYyYWE5ODllMTMxNGQzZCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuY3BwCkBAIC0xMjQsNiArMTI0LDEy
IEBAIHN0YXRpYyBjb25zdGV4cHIgZG91YmxlIGV4ZWN1dGFibGVQb29sUmVzZXJ2YXRpb25GcmFj
dGlvbiA9IDAuMTU7CiBzdGF0aWMgY29uc3RleHByIGRvdWJsZSBleGVjdXRhYmxlUG9vbFJlc2Vy
dmF0aW9uRnJhY3Rpb24gPSAwLjI1OwogI2VuZGlmCiAKKyNpZiBVU0UoTElCUEFTX0pJVF9IRUFQ
KQorLy8gVGhpcyBzaXplIGlzIGRlcml2ZWQgZnJvbSBqaXRfY29uZmlnJ3MgbWVkaXVtIHRhYmxl
IHNpemUuCitzdGF0aWMgY29uc3RleHByIHNpemVfdCBtaW5pbXVtRXhlY3V0YWJsZVBvb2xSZXNl
cnZhdGlvblNpemUgPSAyNTYgKiBLQjsKK3N0YXRpY19hc3NlcnQoZml4ZWRFeGVjdXRhYmxlTWVt
b3J5UG9vbFNpemUgKiBleGVjdXRhYmxlUG9vbFJlc2VydmF0aW9uRnJhY3Rpb24gPj0gbWluaW11
bUV4ZWN1dGFibGVQb29sUmVzZXJ2YXRpb25TaXplKTsKKyNlbmRpZgorCiBzdGF0aWMgYm9vbCBp
c0pJVEVuYWJsZWQoKQogewogICAgIGJvb2wgaml0RW5hYmxlZCA9ICFnX2pzY0NvbmZpZy5qaXRE
aXNhYmxlZDsKQEAgLTM0MCw2ICszNDYsMTAgQEAgc3RhdGljIEFMV0FZU19JTkxJTkUgSklUUmVz
ZXJ2YXRpb24gaW5pdGlhbGl6ZUpJVFBhZ2VSZXNlcnZhdGlvbigpCiAKICAgICBpZiAoT3B0aW9u
czo6aml0TWVtb3J5UmVzZXJ2YXRpb25TaXplKCkpIHsKICAgICAgICAgcmVzZXJ2YXRpb24uc2l6
ZSA9IE9wdGlvbnM6OmppdE1lbW9yeVJlc2VydmF0aW9uU2l6ZSgpOworI2lmIFVTRShMSUJQQVNf
SklUX0hFQVApCisgICAgICAgIGlmIChyZXNlcnZhdGlvbi5zaXplICogZXhlY3V0YWJsZVBvb2xS
ZXNlcnZhdGlvbkZyYWN0aW9uIDwgbWluaW11bUV4ZWN1dGFibGVQb29sUmVzZXJ2YXRpb25TaXpl
KQorICAgICAgICAgICAgcmVzZXJ2YXRpb24uc2l6ZSArPSBtaW5pbXVtRXhlY3V0YWJsZVBvb2xS
ZXNlcnZhdGlvblNpemU7CisjZW5kaWYKIAogI2lmIEVOQUJMRShKVU1QX0lTTEFORFMpCiAgICAg
ICAgIC8vIElmIGFza2VkIGZvciBhIHJlc2VydmF0aW9uIHNtYWxsZXIgdGhhbiBpc2xhbmQgc2l6
ZSwgYXNzdW1lIHRoYXQgd2Ugd2FudCB0aGF0IHNpemUgYWxsb2NhdGlvbgpAQCAtNDQ0LDcgKzQ1
NCw5IEBAIGNsYXNzIEZpeGVkVk1Qb29sRXhlY3V0YWJsZUFsbG9jYXRvciBmaW5hbCB7CiAgICAg
ICAgICAgICAgICAgICAgIG1fYWxsb2NhdG9yc1tpXS5tX2VuZCA9IHRhZ0NvZGVQdHI8RXhlY3V0
YWJsZU1lbW9yeVB0clRhZz4oYml0d2lzZV9jYXN0PHZvaWQqPihyZXNlcnZhdGlvbkVuZCkpOwog
ICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAgIG1fYWxsb2NhdG9yc1tpXS5hZGRG
cmVzaEZyZWVTcGFjZShiaXR3aXNlX2Nhc3Q8dm9pZCo+KG1fYWxsb2NhdG9yc1tpXS5zdGFydCgp
KSwgbV9hbGxvY2F0b3JzW2ldLmFsbG9jYXRvclNpemUoKSk7CisgICAgICAgICAgICAgICAgc2l6
ZV90IHNpemVJbkJ5dGVzID0gbV9hbGxvY2F0b3JzW2ldLmFsbG9jYXRvclNpemUoKTsKKyAgICAg
ICAgICAgICAgICBtX2FsbG9jYXRvcnNbaV0uYWRkRnJlc2hGcmVlU3BhY2UoYml0d2lzZV9jYXN0
PHZvaWQqPihtX2FsbG9jYXRvcnNbaV0uc3RhcnQoKSksIHNpemVJbkJ5dGVzKTsKKyAgICAgICAg
ICAgICAgICBtX2J5dGVzUmVzZXJ2ZWQgKz0gc2l6ZUluQnl0ZXM7CiAKICAgICAgICAgICAgICAg
ICBSRUxFQVNFX0FTU0VSVChtX2FsbG9jYXRvcnNbaV0uYWxsb2NhdG9yU2l6ZSgpIDwgcmVnaW9u
U2l6ZSk7CiAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQobV9hbGxvY2F0b3JzW2ldLmlz
bGFuZEJlZ2luKCkgPiBtX2FsbG9jYXRvcnNbaV0uc3RhcnQoKSk7CkBAIC00NTQsOSArNDY2LDcg
QEAgY2xhc3MgRml4ZWRWTVBvb2xFeGVjdXRhYmxlQWxsb2NhdG9yIGZpbmFsIHsKICAgICAgICAg
ICAgIH0KICNlbHNlCiAgICAgICAgICAgICBtX2FsbG9jYXRvci5hZGRGcmVzaEZyZWVTcGFjZShy
ZXNlcnZhdGlvbi5iYXNlLCByZXNlcnZhdGlvbi5zaXplKTsKLSNpZiAhVVNFKExJQlBBU19KSVRf
SEVBUCkKLSAgICAgICAgICAgIEFTU0VSVChieXRlc1Jlc2VydmVkKCkgPT0gcmVzZXJ2YXRpb24u
c2l6ZSk7IC8vIFNpbmNlIG91ciBleGVjdXRhYmxlIG1lbW9yeSBpcyBmaXhlZC1zaXplZCwgYnl0
ZXNSZXNlcnZlZCBpcyBuZXZlciBjaGFuZ2VkIGFmdGVyIGluaXRpYWxpemF0aW9uLgotI2VuZGlm
CisgICAgICAgICAgICBtX2J5dGVzUmVzZXJ2ZWQgKz0gcmVzZXJ2YXRpb24uc2l6ZTsKICNlbmRp
ZgogICAgICAgICB9CiAgICAgfQpAQCAtNDc0LDcgKzQ4NCwxMCBAQCBjbGFzcyBGaXhlZFZNUG9v
bEV4ZWN1dGFibGVBbGxvY2F0b3IgZmluYWwgewogICAgIFJlZlB0cjxFeGVjdXRhYmxlTWVtb3J5
SGFuZGxlPiBhbGxvY2F0ZShzaXplX3Qgc2l6ZUluQnl0ZXMpCiAgICAgewogI2lmIFVTRShMSUJQ
QVNfSklUX0hFQVApCi0gICAgICAgIHJldHVybiBFeGVjdXRhYmxlTWVtb3J5SGFuZGxlOjpjcmVh
dGVJbXBsKHNpemVJbkJ5dGVzKTsKKyAgICAgICAgYXV0byByZXN1bHQgPSBFeGVjdXRhYmxlTWVt
b3J5SGFuZGxlOjpjcmVhdGVJbXBsKHNpemVJbkJ5dGVzKTsKKyAgICAgICAgaWYgKExJS0VMWShy
ZXN1bHQpKQorICAgICAgICAgICAgbV9ieXRlc0FsbG9jYXRlZC5mZXRjaF9hZGQocmVzdWx0LT5z
aXplSW5CeXRlcygpLCBzdGQ6Om1lbW9yeV9vcmRlcl9yZWxheGVkKTsKKyAgICAgICAgcmV0dXJu
IHJlc3VsdDsKICNlbGlmIEVOQUJMRShKVU1QX0lTTEFORFMpCiAgICAgICAgIExvY2tlciBsb2Nr
ZXIgeyBnZXRMb2NrKCkgfTsKIApAQCAtNDk5LDI0ICs1MTIsNDYgQEAgY2xhc3MgRml4ZWRWTVBv
b2xFeGVjdXRhYmxlQWxsb2NhdG9yIGZpbmFsIHsKIAogICAgIExvY2smIGdldExvY2soKSBXVEZf
UkVUVVJOU19MT0NLKG1fbG9jaykgeyByZXR1cm4gbV9sb2NrOyB9CiAKLSNpZiAhVVNFKExJQlBB
U19KSVRfSEVBUCkKKyNpZiBVU0UoTElCUEFTX0pJVF9IRUFQKQorICAgIHZvaWQgc2hyaW5rQnl0
ZXNBbGxvY2F0ZWQoc2l6ZV90IG9sZFNpemVJbkJ5dGVzLCBzaXplX3QgbmV3U2l6ZUluQnl0ZXMp
CisgICAgeworICAgICAgICBtX2J5dGVzQWxsb2NhdGVkLmZldGNoX2FkZChuZXdTaXplSW5CeXRl
cyAtIG9sZFNpemVJbkJ5dGVzLCBzdGQ6Om1lbW9yeV9vcmRlcl9yZWxheGVkKTsKKyAgICB9Cisj
ZW5kaWYKKwogICAgIC8vIE5vbiBhdG9taWMKLSAgICBzaXplX3QgYnl0ZXNBbGxvY2F0ZWQoKSAK
KyAgICBzaXplX3QgYnl0ZXNBbGxvY2F0ZWQoKQogICAgIHsKKyNpZiBVU0UoTElCUEFTX0pJVF9I
RUFQKQorICAgICAgICByZXR1cm4gbV9ieXRlc0FsbG9jYXRlZC5sb2FkKHN0ZDo6bWVtb3J5X29y
ZGVyX3JlbGF4ZWQpOworI2Vsc2UKICAgICAgICAgc2l6ZV90IHJlc3VsdCA9IDA7CiAgICAgICAg
IGZvckVhY2hBbGxvY2F0b3IoWyZdIChBbGxvY2F0b3ImIGFsbG9jYXRvcikgewogICAgICAgICAg
ICAgcmVzdWx0ICs9IGFsbG9jYXRvci5ieXRlc0FsbG9jYXRlZCgpOwogICAgICAgICB9KTsKICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKKyNlbmRpZgogICAgIH0KLSAgICBzaXplX3QgYnl0ZXNSZXNl
cnZlZCgpIAorCisgICAgc2l6ZV90IGJ5dGVzUmVzZXJ2ZWQoKSBjb25zdAogICAgIHsKLSAgICAg
ICAgc2l6ZV90IHJlc3VsdCA9IDA7Ci0gICAgICAgIGZvckVhY2hBbGxvY2F0b3IoWyZdIChBbGxv
Y2F0b3ImIGFsbG9jYXRvcikgewotICAgICAgICAgICAgcmVzdWx0ICs9IGFsbG9jYXRvci5ieXRl
c1Jlc2VydmVkKCk7Ci0gICAgICAgIH0pOwotICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAg
ICByZXR1cm4gbV9ieXRlc1Jlc2VydmVkOwogICAgIH0KKworICAgIHNpemVfdCBieXRlc0F2YWls
YWJsZSgpCisgICAgeworICAgICAgICBzaXplX3QgYnl0ZXNSZXNlcnZlZCA9IHRoaXMtPmJ5dGVz
UmVzZXJ2ZWQoKTsKKyNpZiBVU0UoTElCUEFTX0pJVF9IRUFQKQorICAgICAgICBzaXplX3Qgbm9u
QXZhaWxhYmxlU2l6ZSA9IHN0YXRpY19jYXN0PHNpemVfdD4oYnl0ZXNSZXNlcnZlZCAqIGV4ZWN1
dGFibGVQb29sUmVzZXJ2YXRpb25GcmFjdGlvbik7CisgICAgICAgIGlmIChub25BdmFpbGFibGVT
aXplIDwgbWluaW11bUV4ZWN1dGFibGVQb29sUmVzZXJ2YXRpb25TaXplKQorICAgICAgICAgICAg
cmV0dXJuIGJ5dGVzUmVzZXJ2ZWQgLSBtaW5pbXVtRXhlY3V0YWJsZVBvb2xSZXNlcnZhdGlvblNp
emU7CisgICAgICAgIHJldHVybiBieXRlc1Jlc2VydmVkIC0gbm9uQXZhaWxhYmxlU2l6ZTsKKyNl
bHNlCisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxzaXplX3Q+KGJ5dGVzUmVzZXJ2ZWQgKiAo
MSAtIGV4ZWN1dGFibGVQb29sUmVzZXJ2YXRpb25GcmFjdGlvbikpOworI2VuZGlmCisgICAgfQor
CisjaWYgIVVTRShMSUJQQVNfSklUX0hFQVApCiAgICAgc2l6ZV90IGJ5dGVzQ29tbWl0dGVkKCkK
ICAgICB7CiAgICAgICAgIHNpemVfdCByZXN1bHQgPSAwOwpAQCAtNTYzLDggKzU5OCw5IEBAIGNs
YXNzIEZpeGVkVk1Qb29sRXhlY3V0YWJsZUFsbG9jYXRvciBmaW5hbCB7CiAjZW5kaWYgLy8gIVVT
RShMSUJQQVNfSklUX0hFQVApCiAKICNpZiBVU0UoTElCUEFTX0pJVF9IRUFQKQotICAgIHZvaWQg
aGFuZGxlV2lsbEJlUmVsZWFzZWQoRXhlY3V0YWJsZU1lbW9yeUhhbmRsZSYgaGFuZGxlKQorICAg
IHZvaWQgaGFuZGxlV2lsbEJlUmVsZWFzZWQoRXhlY3V0YWJsZU1lbW9yeUhhbmRsZSYgaGFuZGxl
LCBzaXplX3Qgc2l6ZUluQnl0ZXMpCiAgICAgeworICAgICAgICBtX2J5dGVzQWxsb2NhdGVkLmZl
dGNoX3N1YihzaXplSW5CeXRlcywgc3RkOjptZW1vcnlfb3JkZXJfcmVsYXhlZCk7CiAjaWYgRU5B
QkxFKEpVTVBfSVNMQU5EUykKICAgICAgICAgaWYgKG1faXNsYW5kc0Zvckp1bXBTb3VyY2VMb2Nh
dGlvbi5pc0VtcHR5KCkpCiAgICAgICAgICAgICByZXR1cm47CkBAIC05MjMsNiArOTU5LDEwIEBA
IGNsYXNzIEZpeGVkVk1Qb29sRXhlY3V0YWJsZUFsbG9jYXRvciBmaW5hbCB7CiAjZWxzZQogICAg
IEFsbG9jYXRvciBtX2FsbG9jYXRvcjsKICNlbmRpZiAvLyBFTkFCTEUoSlVNUF9JU0xBTkRTKQor
ICAgIHNpemVfdCBtX2J5dGVzUmVzZXJ2ZWQgeyAwIH07CisjaWYgVVNFKExJQlBBU19KSVRfSEVB
UCkKKyAgICBzdGQ6OmF0b21pYzxzaXplX3Q+IG1fYnl0ZXNBbGxvY2F0ZWQgeyAwIH07CisjZW5k
aWYKIH07CiAKIC8vIEtlZXAgdGhpcyBwb2ludGVyIGluIGEgbXV0YWJsZSBnbG9iYWwgdmFyaWFi
bGUgdG8gaGVscCBMZWFrcyBmaW5kIGl0LgpAQCAtOTQ1LDI4ICs5ODUsMjAgQEAgYm9vbCBFeGVj
dXRhYmxlQWxsb2NhdG9yOjppc1ZhbGlkKCkgY29uc3QKIAogYm9vbCBFeGVjdXRhYmxlQWxsb2Nh
dG9yOjp1bmRlck1lbW9yeVByZXNzdXJlKCkKIHsKLSNpZiBVU0UoTElCUEFTX0pJVF9IRUFQKQot
ICAgIHJldHVybiBCYXNlOjp1bmRlck1lbW9yeVByZXNzdXJlKCk7Ci0jZWxzZSAvLyBVU0UoTElC
UEFTX0pJVF9IRUFQKSAtPiBzbyBzdGFydCBvZiAhVVNFKExJQlBBU19KSVRfSEVBUCkKICAgICBG
aXhlZFZNUG9vbEV4ZWN1dGFibGVBbGxvY2F0b3IqIGFsbG9jYXRvciA9IGdfanNjQ29uZmlnLmZp
eGVkVk1Qb29sRXhlY3V0YWJsZUFsbG9jYXRvcjsKICAgICBpZiAoIWFsbG9jYXRvcikKICAgICAg
ICAgcmV0dXJuIEJhc2U6OnVuZGVyTWVtb3J5UHJlc3N1cmUoKTsKICAgICByZXR1cm4gYWxsb2Nh
dG9yLT5ieXRlc0FsbG9jYXRlZCgpID4gYWxsb2NhdG9yLT5ieXRlc1Jlc2VydmVkKCkgLyAyOwot
I2VuZGlmIC8vIFVTRShMSUJQQVNfSklUX0hFQVApIC0+IHNvIGVuZCBvZiAhVVNFKExJQlBBU19K
SVRfSEVBUCkKIH0KIAogZG91YmxlIEV4ZWN1dGFibGVBbGxvY2F0b3I6Om1lbW9yeVByZXNzdXJl
TXVsdGlwbGllcihzaXplX3QgYWRkZWRNZW1vcnlVc2FnZSkKIHsKLSNpZiBVU0UoTElCUEFTX0pJ
VF9IRUFQKQotICAgIHJldHVybiBCYXNlOjptZW1vcnlQcmVzc3VyZU11bHRpcGxpZXIoYWRkZWRN
ZW1vcnlVc2FnZSk7Ci0jZWxzZSAvLyBVU0UoTElCUEFTX0pJVF9IRUFQKSAtPiBzbyBzdGFydCBv
ZiAhVVNFKExJQlBBU19KSVRfSEVBUCkKICAgICBGaXhlZFZNUG9vbEV4ZWN1dGFibGVBbGxvY2F0
b3IqIGFsbG9jYXRvciA9IGdfanNjQ29uZmlnLmZpeGVkVk1Qb29sRXhlY3V0YWJsZUFsbG9jYXRv
cjsKICAgICBpZiAoIWFsbG9jYXRvcikKICAgICAgICAgcmV0dXJuIEJhc2U6Om1lbW9yeVByZXNz
dXJlTXVsdGlwbGllcihhZGRlZE1lbW9yeVVzYWdlKTsKICAgICBBU1NFUlQoYWxsb2NhdG9yLT5i
eXRlc0FsbG9jYXRlZCgpIDw9IGFsbG9jYXRvci0+Ynl0ZXNSZXNlcnZlZCgpKTsKICAgICBzaXpl
X3QgYnl0ZXNBbGxvY2F0ZWQgPSBhbGxvY2F0b3ItPmJ5dGVzQWxsb2NhdGVkKCkgKyBhZGRlZE1l
bW9yeVVzYWdlOwotICAgIHNpemVfdCBieXRlc0F2YWlsYWJsZSA9IHN0YXRpY19jYXN0PHNpemVf
dD4oCi0gICAgICAgIGFsbG9jYXRvci0+Ynl0ZXNSZXNlcnZlZCgpICogKDEgLSBleGVjdXRhYmxl
UG9vbFJlc2VydmF0aW9uRnJhY3Rpb24pKTsKKyAgICBzaXplX3QgYnl0ZXNBdmFpbGFibGUgPSBh
bGxvY2F0b3ItPmJ5dGVzQXZhaWxhYmxlKCk7CiAgICAgaWYgKGJ5dGVzQWxsb2NhdGVkID49IGJ5
dGVzQXZhaWxhYmxlKQogICAgICAgICBieXRlc0FsbG9jYXRlZCA9IGJ5dGVzQXZhaWxhYmxlOwog
ICAgIGRvdWJsZSByZXN1bHQgPSAxLjA7CkBAIC05NzYsNyArMTAwOCw2IEBAIGRvdWJsZSBFeGVj
dXRhYmxlQWxsb2NhdG9yOjptZW1vcnlQcmVzc3VyZU11bHRpcGxpZXIoc2l6ZV90IGFkZGVkTWVt
b3J5VXNhZ2UpCiAgICAgaWYgKHJlc3VsdCA8IDEuMCkKICAgICAgICAgcmVzdWx0ID0gMS4wOwog
ICAgIHJldHVybiByZXN1bHQ7Ci0jZW5kaWYgLy8gVVNFKExJQlBBU19KSVRfSEVBUCkgLT4gc28g
ZW5kIG9mICFVU0UoTElCUEFTX0pJVF9IRUFQKQogfQogCiBSZWZQdHI8RXhlY3V0YWJsZU1lbW9y
eUhhbmRsZT4gRXhlY3V0YWJsZUFsbG9jYXRvcjo6YWxsb2NhdGUoc2l6ZV90IHNpemVJbkJ5dGVz
LCBKSVRDb21waWxhdGlvbkVmZm9ydCBlZmZvcnQpCkBAIC0xMDAwLDE5ICsxMDMxLDE2IEBAIFJl
ZlB0cjxFeGVjdXRhYmxlTWVtb3J5SGFuZGxlPiBFeGVjdXRhYmxlQWxsb2NhdG9yOjphbGxvY2F0
ZShzaXplX3Qgc2l6ZUluQnl0ZXMsCiAgICAgICAgICYmIGRvRXhlY3V0YWJsZUFsbG9jYXRpb25G
dXp6aW5nSWZFbmFibGVkKCkgPT0gUHJldGVuZFRvRmFpbEV4ZWN1dGFibGVBbGxvY2F0aW9uKQog
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotI2lmICFVU0UoTElCUEFTX0pJVF9IRUFQKQogICAg
IGlmIChlZmZvcnQgPT0gSklUQ29tcGlsYXRpb25DYW5GYWlsKSB7CiAgICAgICAgIC8vIERvbid0
IGFsbG93IGFsbG9jYXRpb25zIGlmIHdlIGFyZSBkb3duIHRvIHJlc2VydmUuCiAgICAgICAgIHNp
emVfdCBieXRlc0FsbG9jYXRlZCA9IGFsbG9jYXRvci0+Ynl0ZXNBbGxvY2F0ZWQoKSArIHNpemVJ
bkJ5dGVzOwotICAgICAgICBzaXplX3QgYnl0ZXNBdmFpbGFibGUgPSBzdGF0aWNfY2FzdDxzaXpl
X3Q+KAotICAgICAgICAgICAgYWxsb2NhdG9yLT5ieXRlc1Jlc2VydmVkKCkgKiAoMSAtIGV4ZWN1
dGFibGVQb29sUmVzZXJ2YXRpb25GcmFjdGlvbikpOworICAgICAgICBzaXplX3QgYnl0ZXNBdmFp
bGFibGUgPSBhbGxvY2F0b3ItPmJ5dGVzQXZhaWxhYmxlKCk7CiAgICAgICAgIGlmIChieXRlc0Fs
bG9jYXRlZCA+IGJ5dGVzQXZhaWxhYmxlKSB7CiAgICAgICAgICAgICBpZiAoT3B0aW9uczo6bG9n
RXhlY3V0YWJsZUFsbG9jYXRpb24oKSkKICAgICAgICAgICAgICAgICBkYXRhTG9nKCJBbGxvY2F0
aW9uIGZhaWxlZCBiZWNhdXNlIGJ5dGVzIGFsbG9jYXRlZCAiLCBieXRlc0FsbG9jYXRlZCwgICIg
PiAiLCBieXRlc0F2YWlsYWJsZSwgIiBieXRlcyBhdmFpbGFibGUuXG4iKTsKICAgICAgICAgICAg
IHJldHVybiBudWxscHRyOwogICAgICAgICB9CiAgICAgfQotI2VuZGlmIC8vICFVU0UoTElCUEFT
X0pJVF9IRUFQKQogCiAgICAgUmVmUHRyPEV4ZWN1dGFibGVNZW1vcnlIYW5kbGU+IHJlc3VsdCA9
IGFsbG9jYXRvci0+YWxsb2NhdGUoc2l6ZUluQnl0ZXMpOwogICAgIGlmICghcmVzdWx0KSB7CkBA
IC0xMTk3LDI0ICsxMjI1LDI1IEBAIFJlZlB0cjxFeGVjdXRhYmxlTWVtb3J5SGFuZGxlPiBFeGVj
dXRhYmxlTWVtb3J5SGFuZGxlOjpjcmVhdGVJbXBsKHNpemVfdCBzaXplSW5CCiAgICAgdm9pZCog
a2V5ID0gaml0X2hlYXBfdHJ5X2FsbG9jYXRlKHNpemVJbkJ5dGVzKTsKICAgICBpZiAoIWtleSkK
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBFeGVjdXRh
YmxlTWVtb3J5SGFuZGxlKE1lbW9yeVB0cjo6bWFrZUZyb21SYXdQb2ludGVyKGtleSkpKTsKKyAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IEV4ZWN1dGFibGVNZW1vcnlIYW5kbGUoTWVtb3J5UHRyOjpt
YWtlRnJvbVJhd1BvaW50ZXIoa2V5KSwgaml0X2hlYXBfZ2V0X3NpemUoa2V5KSkpOwogfQogCiBF
eGVjdXRhYmxlTWVtb3J5SGFuZGxlOjp+RXhlY3V0YWJsZU1lbW9yeUhhbmRsZSgpCiB7CiAgICAg
Rml4ZWRWTVBvb2xFeGVjdXRhYmxlQWxsb2NhdG9yKiBhbGxvY2F0b3IgPSBnX2pzY0NvbmZpZy5m
aXhlZFZNUG9vbEV4ZWN1dGFibGVBbGxvY2F0b3I7Ci0gICAgYWxsb2NhdG9yLT5oYW5kbGVXaWxs
QmVSZWxlYXNlZCgqdGhpcyk7CisgICAgYWxsb2NhdG9yLT5oYW5kbGVXaWxsQmVSZWxlYXNlZCgq
dGhpcywgc2l6ZUluQnl0ZXMoKSk7CiAgICAgaml0X2hlYXBfZGVhbGxvY2F0ZShrZXkoKSk7CiB9
CiAKLXNpemVfdCBFeGVjdXRhYmxlTWVtb3J5SGFuZGxlOjpzaXplSW5CeXRlcygpIGNvbnN0Ci17
Ci0gICAgcmV0dXJuIGppdF9oZWFwX2dldF9zaXplKGtleSgpKTsKLX0KLQogdm9pZCBFeGVjdXRh
YmxlTWVtb3J5SGFuZGxlOjpzaHJpbmsoc2l6ZV90IG5ld1NpemVJbkJ5dGVzKQogeworICAgIHNp
emVfdCBvbGRTaXplSW5CeXRlcyA9IHNpemVJbkJ5dGVzKCk7CiAgICAgaml0X2hlYXBfc2hyaW5r
KGtleSgpLCBuZXdTaXplSW5CeXRlcyk7CisgICAgbV9zaXplSW5CeXRlcyA9IGppdF9oZWFwX2dl
dF9zaXplKGtleSgpKTsKKyAgICBpZiAob2xkU2l6ZUluQnl0ZXMgIT0gbV9zaXplSW5CeXRlcykg
eworICAgICAgICBGaXhlZFZNUG9vbEV4ZWN1dGFibGVBbGxvY2F0b3IqIGFsbG9jYXRvciA9IGdf
anNjQ29uZmlnLmZpeGVkVk1Qb29sRXhlY3V0YWJsZUFsbG9jYXRvcjsKKyAgICAgICAgYWxsb2Nh
dG9yLT5zaHJpbmtCeXRlc0FsbG9jYXRlZChvbGRTaXplSW5CeXRlcywgbV9zaXplSW5CeXRlcyk7
CisgICAgfQogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvRXhlY3V0YWJsZU1lbW9yeUhhbmRsZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9F
eGVjdXRhYmxlTWVtb3J5SGFuZGxlLmgKaW5kZXggZWZjNWE3YWY3ZjAxYWNmZmVmZGFjOTUxMzE0
MjczMWM3OWYzNmM4ZC4uNjc3NWFiODRjYWM4MjM0YWNjYjkxNTAyNjFlZWQxN2FkNmVhYjA2NyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlTWVtb3J5SGFu
ZGxlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlTWVtb3J5SGFu
ZGxlLmgKQEAgLTY4LDcgKzY4LDcgQEAgY2xhc3MgRXhlY3V0YWJsZU1lbW9yeUhhbmRsZSA6IHB1
YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxFeGVjdXRhYmxlTWVtb3J5SGFuZGwKICAgICAgICAg
cmV0dXJuIHN0YXJ0QXNJbnRlZ2VyKCkgKyBzaXplSW5CeXRlcygpOwogICAgIH0KIAotICAgIEpT
X0VYUE9SVF9QUklWQVRFIHNpemVfdCBzaXplSW5CeXRlcygpIGNvbnN0OworICAgIHNpemVfdCBz
aXplSW5CeXRlcygpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZUluQnl0ZXM7IH0KIAogICAgIGJvb2wg
Y29udGFpbnNJbnRlZ2VyQWRkcmVzcyh1aW50cHRyX3QgYWRkcmVzcykgY29uc3QKICAgICB7CkBA
IC05NSwxMiArOTUsMTQgQEAgY2xhc3MgRXhlY3V0YWJsZU1lbW9yeUhhbmRsZSA6IHB1YmxpYyBU
aHJlYWRTYWZlUmVmQ291bnRlZDxFeGVjdXRhYmxlTWVtb3J5SGFuZGwKICAgICB9CiAKIHByaXZh
dGU6Ci0gICAgRXhlY3V0YWJsZU1lbW9yeUhhbmRsZShNZW1vcnlQdHIgc3RhcnQpCisgICAgRXhl
Y3V0YWJsZU1lbW9yeUhhbmRsZShNZW1vcnlQdHIgc3RhcnQsIHNpemVfdCBzaXplSW5CeXRlcykK
ICAgICAgICAgOiBtX3N0YXJ0KHN0YXJ0KQorICAgICAgICAsIG1fc2l6ZUluQnl0ZXMoc2l6ZUlu
Qnl0ZXMpCiAgICAgewogICAgIH0KIAogICAgIE1lbW9yeVB0ciBtX3N0YXJ0OworICAgIHNpemVf
dCBtX3NpemVJbkJ5dGVzOwogfTsKICNlbHNlIC8vIFVTRShMSUJQQVNfSklUX0hFQVApIC0+IHNv
IHN0YXJ0IG9mICFVU0UoTElCUEFTX0pJVF9IRUFQKSBjYXNlCiB0eXBlZGVmIFdURjo6TWV0YUFs
bG9jYXRvckhhbmRsZSBFeGVjdXRhYmxlTWVtb3J5SGFuZGxlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433485</attachid>
            <date>2021-07-13 21:58:51 -0700</date>
            <delta_ts>2021-07-14 11:31:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227927-20210713215850.patch</filename>
            <type>text/plain</type>
            <size>13438</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5ODkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
MDllY2I1MTIwMTFiZjFhY2QxNjhkZGYxZjVkNTc3Njc4NzlkMjYyLi5lOGFiMjEwOGFmMzAxN2Jh
OTU2MzQzOTIwNTNjNDllMTUzOWExODA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzOCBAQAorMjAyMS0wNy0xMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIGxpYnBhcyBleGVjdXRhYmxlLWFsbG9jYXRvciBzaG91bGQgcmVzZXJ2ZSBt
b3JlIHRoYW4gMjU2S0IgZm9yIG5vbi1mYWlsIHJlZ2lvbiBhdCBsZWFzdAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3OTI3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgbGlicGFzIGppdF9oZWFwIGhhcyBt
ZWRpYW0gYWxsb2NhdG9yIHdoaWNoIGFsbG9jYXRlcyAxMjhLQiBwYWdlcyBhdCBvbmNlLiBIb3dl
dmVyLCBvdXIgSlNDIHN0cmVzcyB0ZXN0cyBhcmUgc2V0dGluZyAxMDBLQgorICAgICAgICBmb3Ig
c21hbGwgZXhlY3V0YWJsZSBtZW1vcnkgdGVzdHMuIEFzIGEgcmVzdWx0LCB1bmRlciB0aGlzIGNv
bmZpZ3VyYXRpb24sIHdlIGZhaWwgaW1tZWRpYXRlbHkgYWZ0ZXIgdXNpbmcgbWVkaXVtIGFsbG9j
YXRvci4KKworICAgICAgICBCdXQgdGhpcyB0ZXN0J3MgInRvdGFsIHNpemUgb2YgZXhlY3V0YWJs
ZSBtZW1vcnkgaXMgMTAwS0IiIGlzIHVucmVhbGlzdGljOiBpdCBpcyBwb3NzaWJsZSB0aGF0IG9u
bHkgMTAwS0IgbWVtb3J5IHJlbWFpbnMsCisgICAgICAgIGJ1dCBpdCBpcyBpbXBvc3NpYmxlIHRo
YXQgd2UgcmVzZXJ2ZSBvbmx5IDI1S0IgZm9yIG5vbi1mYWlsIHJlc2VydmF0aW9uLiBJbiBwcm9k
dWN0aW9uLCB3ZSBhcmUgYWx3YXlzIHJlc2VydmluZyAxMjhNQi4gU28KKyAgICAgICAgdGhpcyBj
b25maWd1cmF0aW9uIGlzIG5vdCByZWFsaXN0aWMgYWN0dWFsbHkuCisKKyAgICAgICAgU28sIHRo
aXMgcGF0Y2ggY2hhbmdlcywKKworICAgICAgICAgICAgMS4gSWYgbm9uLWZhaWwgcmVnaW9uIGlz
IGxlc3MgdGhhbiAyNTZLQiwgdGhlbiB3ZSBhZGQgMjU2S0IgYW5kIGtlZXAgdGhpcyAyNTZLQiBh
cyBub24tZmFpbCBleGVjdXRhYmxlIGFsbG9jYXRpb24uIElmIG5vdCwKKyAgICAgICAgICAgICAg
ICB1c2UgMC4yNSByYXRpbyBhcyB3ZSBhcmUgZG9pbmcuIFRoaXMgbWVhbnMgdGhhdCBPcHRpb25z
OjpqaXRNZW1vcnlSZXNlcnZhdGlvblNpemUgY29uZmlndXJlcyBmYWlsYWJsZSByZWdpb24gb2YK
KyAgICAgICAgICAgICAgICBleGVjdXRhYmxlIG1lbW9yeS4KKyAgICAgICAgICAgIDIuIFdlIGFs
c28gcmV2aXZlIGJ5dGVzUmVzZXJ2ZWQgYW5kIGJ5dGVzQWxsb2NhdGVkIHRvIG1ha2UgbWVtb3J5
UHJlc3N1cmVNdWx0aXBsaWVyIGFuZCBlYXJseS1mYWlsIGFsbG9jYXRpb24gKHdoZW4gdGhlcmUg
aXMKKyAgICAgICAgICAgICAgICBub3QgZW5vdWdoIG1lbW9yeSBhbmQgYWxsb2NhdGlvbiBjYW4g
ZmFpbCwgdGhlbiB3ZSBzaG91bGQgZmFpbCkuCisKKyAgICAgICAgKiBqaXQvRXhlY3V0YWJsZUFs
bG9jYXRvci5jcHA6CisgICAgICAgIChKU0M6OmluaXRpYWxpemVKSVRQYWdlUmVzZXJ2YXRpb24p
OgorICAgICAgICAoSlNDOjpFeGVjdXRhYmxlQWxsb2NhdG9yOjp1bmRlck1lbW9yeVByZXNzdXJl
KToKKyAgICAgICAgKEpTQzo6RXhlY3V0YWJsZUFsbG9jYXRvcjo6bWVtb3J5UHJlc3N1cmVNdWx0
aXBsaWVyKToKKyAgICAgICAgKEpTQzo6RXhlY3V0YWJsZUFsbG9jYXRvcjo6YWxsb2NhdGUpOgor
ICAgICAgICAoSlNDOjpFeGVjdXRhYmxlTWVtb3J5SGFuZGxlOjpjcmVhdGVJbXBsKToKKyAgICAg
ICAgKEpTQzo6RXhlY3V0YWJsZU1lbW9yeUhhbmRsZTo6fkV4ZWN1dGFibGVNZW1vcnlIYW5kbGUp
OgorICAgICAgICAoSlNDOjpFeGVjdXRhYmxlTWVtb3J5SGFuZGxlOjpzaHJpbmspOgorICAgICAg
ICAoSlNDOjpFeGVjdXRhYmxlTWVtb3J5SGFuZGxlOjpzaXplSW5CeXRlcyBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgICogaml0L0V4ZWN1dGFibGVNZW1vcnlIYW5kbGUuaDoKKyAgICAgICAgKEpT
Qzo6RXhlY3V0YWJsZU1lbW9yeUhhbmRsZTo6c2l6ZUluQnl0ZXMgY29uc3QpOgorICAgICAgICAo
SlNDOjpFeGVjdXRhYmxlTWVtb3J5SGFuZGxlOjpFeGVjdXRhYmxlTWVtb3J5SGFuZGxlKToKKwog
MjAyMS0wNy0xMyAgWWlqaWEgSHVhbmcgIDx5aWppYV9odWFuZ0BhcHBsZS5jb20+CiAKICAgICAg
ICAgQWRkIGEgbmV3IEFpcjo6QXJnIGtpbmQgWmVyb1JlZyB0byBsZXQgQUlSIHJlY29nbmlzZSB0
aGUgbmV3IGluc3RydWN0aW9ucy9mb3JtcyBhY2NlcHRpbmcgemVybyByZWdpc3RlciBpbiBBUk02
NApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2Nh
dG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5j
cHAKaW5kZXggZTY2YmI5ZjIxYmE1OTcxM2NjNjI4NDViYzllODA5NzdlYTgxZjdlMy4uNjNlMjY2
Nzg4NTIwMThhNzY4MGNhNWYwNzE0Njk2ODEwNTg4NGIzYiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuY3BwCkBAIC0xMjQsNiArMTI0LDEz
IEBAIHN0YXRpYyBjb25zdGV4cHIgZG91YmxlIGV4ZWN1dGFibGVQb29sUmVzZXJ2YXRpb25GcmFj
dGlvbiA9IDAuMTU7CiBzdGF0aWMgY29uc3RleHByIGRvdWJsZSBleGVjdXRhYmxlUG9vbFJlc2Vy
dmF0aW9uRnJhY3Rpb24gPSAwLjI1OwogI2VuZGlmCiAKKyNpZiBVU0UoTElCUEFTX0pJVF9IRUFQ
KQorLy8gVGhpcyBzaXplIGlzIGRlcml2ZWQgZnJvbSBqaXRfY29uZmlnJ3MgbWVkaXVtIHRhYmxl
IHNpemUuCitzdGF0aWMgY29uc3RleHByIHNpemVfdCBtaW5pbXVtRXhlY3V0YWJsZVBvb2xSZXNl
cnZhdGlvblNpemUgPSAyNTYgKiBLQjsKK3N0YXRpY19hc3NlcnQoZml4ZWRFeGVjdXRhYmxlTWVt
b3J5UG9vbFNpemUgKiBleGVjdXRhYmxlUG9vbFJlc2VydmF0aW9uRnJhY3Rpb24gPj0gbWluaW11
bUV4ZWN1dGFibGVQb29sUmVzZXJ2YXRpb25TaXplKTsKK3N0YXRpY19hc3NlcnQoZml4ZWRFeGVj
dXRhYmxlTWVtb3J5UG9vbFNpemUgPCA0ICogR0IsICJFeGVjdXRhYmxlTWVtb3J5SGFuZGxlIGFz
c3VtZXMgaXQgaXMgbGVzcyB0aGFuIDRHQiIpOworI2VuZGlmCisKIHN0YXRpYyBib29sIGlzSklU
RW5hYmxlZCgpCiB7CiAgICAgYm9vbCBqaXRFbmFibGVkID0gIWdfanNjQ29uZmlnLmppdERpc2Fi
bGVkOwpAQCAtMzQwLDYgKzM0NywxMCBAQCBzdGF0aWMgQUxXQVlTX0lOTElORSBKSVRSZXNlcnZh
dGlvbiBpbml0aWFsaXplSklUUGFnZVJlc2VydmF0aW9uKCkKIAogICAgIGlmIChPcHRpb25zOjpq
aXRNZW1vcnlSZXNlcnZhdGlvblNpemUoKSkgewogICAgICAgICByZXNlcnZhdGlvbi5zaXplID0g
T3B0aW9uczo6aml0TWVtb3J5UmVzZXJ2YXRpb25TaXplKCk7CisjaWYgVVNFKExJQlBBU19KSVRf
SEVBUCkKKyAgICAgICAgaWYgKHJlc2VydmF0aW9uLnNpemUgKiBleGVjdXRhYmxlUG9vbFJlc2Vy
dmF0aW9uRnJhY3Rpb24gPCBtaW5pbXVtRXhlY3V0YWJsZVBvb2xSZXNlcnZhdGlvblNpemUpCisg
ICAgICAgICAgICByZXNlcnZhdGlvbi5zaXplICs9IG1pbmltdW1FeGVjdXRhYmxlUG9vbFJlc2Vy
dmF0aW9uU2l6ZTsKKyNlbmRpZgogCiAjaWYgRU5BQkxFKEpVTVBfSVNMQU5EUykKICAgICAgICAg
Ly8gSWYgYXNrZWQgZm9yIGEgcmVzZXJ2YXRpb24gc21hbGxlciB0aGFuIGlzbGFuZCBzaXplLCBh
c3N1bWUgdGhhdCB3ZSB3YW50IHRoYXQgc2l6ZSBhbGxvY2F0aW9uCkBAIC00NDQsNyArNDU1LDkg
QEAgY2xhc3MgRml4ZWRWTVBvb2xFeGVjdXRhYmxlQWxsb2NhdG9yIGZpbmFsIHsKICAgICAgICAg
ICAgICAgICAgICAgbV9hbGxvY2F0b3JzW2ldLm1fZW5kID0gdGFnQ29kZVB0cjxFeGVjdXRhYmxl
TWVtb3J5UHRyVGFnPihiaXR3aXNlX2Nhc3Q8dm9pZCo+KHJlc2VydmF0aW9uRW5kKSk7CiAgICAg
ICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAgICAgbV9hbGxvY2F0b3JzW2ldLmFkZEZyZXNo
RnJlZVNwYWNlKGJpdHdpc2VfY2FzdDx2b2lkKj4obV9hbGxvY2F0b3JzW2ldLnN0YXJ0KCkpLCBt
X2FsbG9jYXRvcnNbaV0uYWxsb2NhdG9yU2l6ZSgpKTsKKyAgICAgICAgICAgICAgICBzaXplX3Qg
c2l6ZUluQnl0ZXMgPSBtX2FsbG9jYXRvcnNbaV0uYWxsb2NhdG9yU2l6ZSgpOworICAgICAgICAg
ICAgICAgIG1fYWxsb2NhdG9yc1tpXS5hZGRGcmVzaEZyZWVTcGFjZShiaXR3aXNlX2Nhc3Q8dm9p
ZCo+KG1fYWxsb2NhdG9yc1tpXS5zdGFydCgpKSwgc2l6ZUluQnl0ZXMpOworICAgICAgICAgICAg
ICAgIG1fYnl0ZXNSZXNlcnZlZCArPSBzaXplSW5CeXRlczsKIAogICAgICAgICAgICAgICAgIFJF
TEVBU0VfQVNTRVJUKG1fYWxsb2NhdG9yc1tpXS5hbGxvY2F0b3JTaXplKCkgPCByZWdpb25TaXpl
KTsKICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChtX2FsbG9jYXRvcnNbaV0uaXNsYW5k
QmVnaW4oKSA+IG1fYWxsb2NhdG9yc1tpXS5zdGFydCgpKTsKQEAgLTQ1NCw5ICs0NjcsNyBAQCBj
bGFzcyBGaXhlZFZNUG9vbEV4ZWN1dGFibGVBbGxvY2F0b3IgZmluYWwgewogICAgICAgICAgICAg
fQogI2Vsc2UKICAgICAgICAgICAgIG1fYWxsb2NhdG9yLmFkZEZyZXNoRnJlZVNwYWNlKHJlc2Vy
dmF0aW9uLmJhc2UsIHJlc2VydmF0aW9uLnNpemUpOwotI2lmICFVU0UoTElCUEFTX0pJVF9IRUFQ
KQotICAgICAgICAgICAgQVNTRVJUKGJ5dGVzUmVzZXJ2ZWQoKSA9PSByZXNlcnZhdGlvbi5zaXpl
KTsgLy8gU2luY2Ugb3VyIGV4ZWN1dGFibGUgbWVtb3J5IGlzIGZpeGVkLXNpemVkLCBieXRlc1Jl
c2VydmVkIGlzIG5ldmVyIGNoYW5nZWQgYWZ0ZXIgaW5pdGlhbGl6YXRpb24uCi0jZW5kaWYKKyAg
ICAgICAgICAgIG1fYnl0ZXNSZXNlcnZlZCArPSByZXNlcnZhdGlvbi5zaXplOwogI2VuZGlmCiAg
ICAgICAgIH0KICAgICB9CkBAIC00NzQsNyArNDg1LDEwIEBAIGNsYXNzIEZpeGVkVk1Qb29sRXhl
Y3V0YWJsZUFsbG9jYXRvciBmaW5hbCB7CiAgICAgUmVmUHRyPEV4ZWN1dGFibGVNZW1vcnlIYW5k
bGU+IGFsbG9jYXRlKHNpemVfdCBzaXplSW5CeXRlcykKICAgICB7CiAjaWYgVVNFKExJQlBBU19K
SVRfSEVBUCkKLSAgICAgICAgcmV0dXJuIEV4ZWN1dGFibGVNZW1vcnlIYW5kbGU6OmNyZWF0ZUlt
cGwoc2l6ZUluQnl0ZXMpOworICAgICAgICBhdXRvIHJlc3VsdCA9IEV4ZWN1dGFibGVNZW1vcnlI
YW5kbGU6OmNyZWF0ZUltcGwoc2l6ZUluQnl0ZXMpOworICAgICAgICBpZiAoTElLRUxZKHJlc3Vs
dCkpCisgICAgICAgICAgICBtX2J5dGVzQWxsb2NhdGVkLmZldGNoX2FkZChyZXN1bHQtPnNpemVJ
bkJ5dGVzKCksIHN0ZDo6bWVtb3J5X29yZGVyX3JlbGF4ZWQpOworICAgICAgICByZXR1cm4gcmVz
dWx0OwogI2VsaWYgRU5BQkxFKEpVTVBfSVNMQU5EUykKICAgICAgICAgTG9ja2VyIGxvY2tlciB7
IGdldExvY2soKSB9OwogCkBAIC00OTksMjQgKzUxMyw0NiBAQCBjbGFzcyBGaXhlZFZNUG9vbEV4
ZWN1dGFibGVBbGxvY2F0b3IgZmluYWwgewogCiAgICAgTG9jayYgZ2V0TG9jaygpIFdURl9SRVRV
Uk5TX0xPQ0sobV9sb2NrKSB7IHJldHVybiBtX2xvY2s7IH0KIAotI2lmICFVU0UoTElCUEFTX0pJ
VF9IRUFQKQorI2lmIFVTRShMSUJQQVNfSklUX0hFQVApCisgICAgdm9pZCBzaHJpbmtCeXRlc0Fs
bG9jYXRlZChzaXplX3Qgb2xkU2l6ZUluQnl0ZXMsIHNpemVfdCBuZXdTaXplSW5CeXRlcykKKyAg
ICB7CisgICAgICAgIG1fYnl0ZXNBbGxvY2F0ZWQuZmV0Y2hfYWRkKG5ld1NpemVJbkJ5dGVzIC0g
b2xkU2l6ZUluQnl0ZXMsIHN0ZDo6bWVtb3J5X29yZGVyX3JlbGF4ZWQpOworICAgIH0KKyNlbmRp
ZgorCiAgICAgLy8gTm9uIGF0b21pYwotICAgIHNpemVfdCBieXRlc0FsbG9jYXRlZCgpIAorICAg
IHNpemVfdCBieXRlc0FsbG9jYXRlZCgpCiAgICAgeworI2lmIFVTRShMSUJQQVNfSklUX0hFQVAp
CisgICAgICAgIHJldHVybiBtX2J5dGVzQWxsb2NhdGVkLmxvYWQoc3RkOjptZW1vcnlfb3JkZXJf
cmVsYXhlZCk7CisjZWxzZQogICAgICAgICBzaXplX3QgcmVzdWx0ID0gMDsKICAgICAgICAgZm9y
RWFjaEFsbG9jYXRvcihbJl0gKEFsbG9jYXRvciYgYWxsb2NhdG9yKSB7CiAgICAgICAgICAgICBy
ZXN1bHQgKz0gYWxsb2NhdG9yLmJ5dGVzQWxsb2NhdGVkKCk7CiAgICAgICAgIH0pOwogICAgICAg
ICByZXR1cm4gcmVzdWx0OworI2VuZGlmCiAgICAgfQotICAgIHNpemVfdCBieXRlc1Jlc2VydmVk
KCkgCisKKyAgICBzaXplX3QgYnl0ZXNSZXNlcnZlZCgpIGNvbnN0CiAgICAgewotICAgICAgICBz
aXplX3QgcmVzdWx0ID0gMDsKLSAgICAgICAgZm9yRWFjaEFsbG9jYXRvcihbJl0gKEFsbG9jYXRv
ciYgYWxsb2NhdG9yKSB7Ci0gICAgICAgICAgICByZXN1bHQgKz0gYWxsb2NhdG9yLmJ5dGVzUmVz
ZXJ2ZWQoKTsKLSAgICAgICAgfSk7Ci0gICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIHJl
dHVybiBtX2J5dGVzUmVzZXJ2ZWQ7CiAgICAgfQorCisgICAgc2l6ZV90IGJ5dGVzQXZhaWxhYmxl
KCkKKyAgICB7CisgICAgICAgIHNpemVfdCBieXRlc1Jlc2VydmVkID0gdGhpcy0+Ynl0ZXNSZXNl
cnZlZCgpOworI2lmIFVTRShMSUJQQVNfSklUX0hFQVApCisgICAgICAgIHNpemVfdCBub25BdmFp
bGFibGVTaXplID0gc3RhdGljX2Nhc3Q8c2l6ZV90PihieXRlc1Jlc2VydmVkICogZXhlY3V0YWJs
ZVBvb2xSZXNlcnZhdGlvbkZyYWN0aW9uKTsKKyAgICAgICAgaWYgKG5vbkF2YWlsYWJsZVNpemUg
PCBtaW5pbXVtRXhlY3V0YWJsZVBvb2xSZXNlcnZhdGlvblNpemUpCisgICAgICAgICAgICByZXR1
cm4gYnl0ZXNSZXNlcnZlZCAtIG1pbmltdW1FeGVjdXRhYmxlUG9vbFJlc2VydmF0aW9uU2l6ZTsK
KyAgICAgICAgcmV0dXJuIGJ5dGVzUmVzZXJ2ZWQgLSBub25BdmFpbGFibGVTaXplOworI2Vsc2UK
KyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHNpemVfdD4oYnl0ZXNSZXNlcnZlZCAqICgxIC0g
ZXhlY3V0YWJsZVBvb2xSZXNlcnZhdGlvbkZyYWN0aW9uKSk7CisjZW5kaWYKKyAgICB9CisKKyNp
ZiAhVVNFKExJQlBBU19KSVRfSEVBUCkKICAgICBzaXplX3QgYnl0ZXNDb21taXR0ZWQoKQogICAg
IHsKICAgICAgICAgc2l6ZV90IHJlc3VsdCA9IDA7CkBAIC01NjMsOCArNTk5LDkgQEAgY2xhc3Mg
Rml4ZWRWTVBvb2xFeGVjdXRhYmxlQWxsb2NhdG9yIGZpbmFsIHsKICNlbmRpZiAvLyAhVVNFKExJ
QlBBU19KSVRfSEVBUCkKIAogI2lmIFVTRShMSUJQQVNfSklUX0hFQVApCi0gICAgdm9pZCBoYW5k
bGVXaWxsQmVSZWxlYXNlZChFeGVjdXRhYmxlTWVtb3J5SGFuZGxlJiBoYW5kbGUpCisgICAgdm9p
ZCBoYW5kbGVXaWxsQmVSZWxlYXNlZChFeGVjdXRhYmxlTWVtb3J5SGFuZGxlJiBoYW5kbGUsIHNp
emVfdCBzaXplSW5CeXRlcykKICAgICB7CisgICAgICAgIG1fYnl0ZXNBbGxvY2F0ZWQuZmV0Y2hf
c3ViKHNpemVJbkJ5dGVzLCBzdGQ6Om1lbW9yeV9vcmRlcl9yZWxheGVkKTsKICNpZiBFTkFCTEUo
SlVNUF9JU0xBTkRTKQogICAgICAgICBpZiAobV9pc2xhbmRzRm9ySnVtcFNvdXJjZUxvY2F0aW9u
LmlzRW1wdHkoKSkKICAgICAgICAgICAgIHJldHVybjsKQEAgLTkyMyw2ICs5NjAsMTAgQEAgY2xh
c3MgRml4ZWRWTVBvb2xFeGVjdXRhYmxlQWxsb2NhdG9yIGZpbmFsIHsKICNlbHNlCiAgICAgQWxs
b2NhdG9yIG1fYWxsb2NhdG9yOwogI2VuZGlmIC8vIEVOQUJMRShKVU1QX0lTTEFORFMpCisgICAg
c2l6ZV90IG1fYnl0ZXNSZXNlcnZlZCB7IDAgfTsKKyNpZiBVU0UoTElCUEFTX0pJVF9IRUFQKQor
ICAgIHN0ZDo6YXRvbWljPHNpemVfdD4gbV9ieXRlc0FsbG9jYXRlZCB7IDAgfTsKKyNlbmRpZgog
fTsKIAogLy8gS2VlcCB0aGlzIHBvaW50ZXIgaW4gYSBtdXRhYmxlIGdsb2JhbCB2YXJpYWJsZSB0
byBoZWxwIExlYWtzIGZpbmQgaXQuCkBAIC05NDUsMjggKzk4NiwyMCBAQCBib29sIEV4ZWN1dGFi
bGVBbGxvY2F0b3I6OmlzVmFsaWQoKSBjb25zdAogCiBib29sIEV4ZWN1dGFibGVBbGxvY2F0b3I6
OnVuZGVyTWVtb3J5UHJlc3N1cmUoKQogewotI2lmIFVTRShMSUJQQVNfSklUX0hFQVApCi0gICAg
cmV0dXJuIEJhc2U6OnVuZGVyTWVtb3J5UHJlc3N1cmUoKTsKLSNlbHNlIC8vIFVTRShMSUJQQVNf
SklUX0hFQVApIC0+IHNvIHN0YXJ0IG9mICFVU0UoTElCUEFTX0pJVF9IRUFQKQogICAgIEZpeGVk
Vk1Qb29sRXhlY3V0YWJsZUFsbG9jYXRvciogYWxsb2NhdG9yID0gZ19qc2NDb25maWcuZml4ZWRW
TVBvb2xFeGVjdXRhYmxlQWxsb2NhdG9yOwogICAgIGlmICghYWxsb2NhdG9yKQogICAgICAgICBy
ZXR1cm4gQmFzZTo6dW5kZXJNZW1vcnlQcmVzc3VyZSgpOwogICAgIHJldHVybiBhbGxvY2F0b3It
PmJ5dGVzQWxsb2NhdGVkKCkgPiBhbGxvY2F0b3ItPmJ5dGVzUmVzZXJ2ZWQoKSAvIDI7Ci0jZW5k
aWYgLy8gVVNFKExJQlBBU19KSVRfSEVBUCkgLT4gc28gZW5kIG9mICFVU0UoTElCUEFTX0pJVF9I
RUFQKQogfQogCiBkb3VibGUgRXhlY3V0YWJsZUFsbG9jYXRvcjo6bWVtb3J5UHJlc3N1cmVNdWx0
aXBsaWVyKHNpemVfdCBhZGRlZE1lbW9yeVVzYWdlKQogewotI2lmIFVTRShMSUJQQVNfSklUX0hF
QVApCi0gICAgcmV0dXJuIEJhc2U6Om1lbW9yeVByZXNzdXJlTXVsdGlwbGllcihhZGRlZE1lbW9y
eVVzYWdlKTsKLSNlbHNlIC8vIFVTRShMSUJQQVNfSklUX0hFQVApIC0+IHNvIHN0YXJ0IG9mICFV
U0UoTElCUEFTX0pJVF9IRUFQKQogICAgIEZpeGVkVk1Qb29sRXhlY3V0YWJsZUFsbG9jYXRvciog
YWxsb2NhdG9yID0gZ19qc2NDb25maWcuZml4ZWRWTVBvb2xFeGVjdXRhYmxlQWxsb2NhdG9yOwog
ICAgIGlmICghYWxsb2NhdG9yKQogICAgICAgICByZXR1cm4gQmFzZTo6bWVtb3J5UHJlc3N1cmVN
dWx0aXBsaWVyKGFkZGVkTWVtb3J5VXNhZ2UpOwogICAgIEFTU0VSVChhbGxvY2F0b3ItPmJ5dGVz
QWxsb2NhdGVkKCkgPD0gYWxsb2NhdG9yLT5ieXRlc1Jlc2VydmVkKCkpOwogICAgIHNpemVfdCBi
eXRlc0FsbG9jYXRlZCA9IGFsbG9jYXRvci0+Ynl0ZXNBbGxvY2F0ZWQoKSArIGFkZGVkTWVtb3J5
VXNhZ2U7Ci0gICAgc2l6ZV90IGJ5dGVzQXZhaWxhYmxlID0gc3RhdGljX2Nhc3Q8c2l6ZV90PigK
LSAgICAgICAgYWxsb2NhdG9yLT5ieXRlc1Jlc2VydmVkKCkgKiAoMSAtIGV4ZWN1dGFibGVQb29s
UmVzZXJ2YXRpb25GcmFjdGlvbikpOworICAgIHNpemVfdCBieXRlc0F2YWlsYWJsZSA9IGFsbG9j
YXRvci0+Ynl0ZXNBdmFpbGFibGUoKTsKICAgICBpZiAoYnl0ZXNBbGxvY2F0ZWQgPj0gYnl0ZXNB
dmFpbGFibGUpCiAgICAgICAgIGJ5dGVzQWxsb2NhdGVkID0gYnl0ZXNBdmFpbGFibGU7CiAgICAg
ZG91YmxlIHJlc3VsdCA9IDEuMDsKQEAgLTk3Niw3ICsxMDA5LDYgQEAgZG91YmxlIEV4ZWN1dGFi
bGVBbGxvY2F0b3I6Om1lbW9yeVByZXNzdXJlTXVsdGlwbGllcihzaXplX3QgYWRkZWRNZW1vcnlV
c2FnZSkKICAgICBpZiAocmVzdWx0IDwgMS4wKQogICAgICAgICByZXN1bHQgPSAxLjA7CiAgICAg
cmV0dXJuIHJlc3VsdDsKLSNlbmRpZiAvLyBVU0UoTElCUEFTX0pJVF9IRUFQKSAtPiBzbyBlbmQg
b2YgIVVTRShMSUJQQVNfSklUX0hFQVApCiB9CiAKIFJlZlB0cjxFeGVjdXRhYmxlTWVtb3J5SGFu
ZGxlPiBFeGVjdXRhYmxlQWxsb2NhdG9yOjphbGxvY2F0ZShzaXplX3Qgc2l6ZUluQnl0ZXMsIEpJ
VENvbXBpbGF0aW9uRWZmb3J0IGVmZm9ydCkKQEAgLTEwMDAsMTkgKzEwMzIsMTYgQEAgUmVmUHRy
PEV4ZWN1dGFibGVNZW1vcnlIYW5kbGU+IEV4ZWN1dGFibGVBbGxvY2F0b3I6OmFsbG9jYXRlKHNp
emVfdCBzaXplSW5CeXRlcywKICAgICAgICAgJiYgZG9FeGVjdXRhYmxlQWxsb2NhdGlvbkZ1enpp
bmdJZkVuYWJsZWQoKSA9PSBQcmV0ZW5kVG9GYWlsRXhlY3V0YWJsZUFsbG9jYXRpb24pCiAgICAg
ICAgIHJldHVybiBudWxscHRyOwogCi0jaWYgIVVTRShMSUJQQVNfSklUX0hFQVApCiAgICAgaWYg
KGVmZm9ydCA9PSBKSVRDb21waWxhdGlvbkNhbkZhaWwpIHsKICAgICAgICAgLy8gRG9uJ3QgYWxs
b3cgYWxsb2NhdGlvbnMgaWYgd2UgYXJlIGRvd24gdG8gcmVzZXJ2ZS4KICAgICAgICAgc2l6ZV90
IGJ5dGVzQWxsb2NhdGVkID0gYWxsb2NhdG9yLT5ieXRlc0FsbG9jYXRlZCgpICsgc2l6ZUluQnl0
ZXM7Ci0gICAgICAgIHNpemVfdCBieXRlc0F2YWlsYWJsZSA9IHN0YXRpY19jYXN0PHNpemVfdD4o
Ci0gICAgICAgICAgICBhbGxvY2F0b3ItPmJ5dGVzUmVzZXJ2ZWQoKSAqICgxIC0gZXhlY3V0YWJs
ZVBvb2xSZXNlcnZhdGlvbkZyYWN0aW9uKSk7CisgICAgICAgIHNpemVfdCBieXRlc0F2YWlsYWJs
ZSA9IGFsbG9jYXRvci0+Ynl0ZXNBdmFpbGFibGUoKTsKICAgICAgICAgaWYgKGJ5dGVzQWxsb2Nh
dGVkID4gYnl0ZXNBdmFpbGFibGUpIHsKICAgICAgICAgICAgIGlmIChPcHRpb25zOjpsb2dFeGVj
dXRhYmxlQWxsb2NhdGlvbigpKQogICAgICAgICAgICAgICAgIGRhdGFMb2coIkFsbG9jYXRpb24g
ZmFpbGVkIGJlY2F1c2UgYnl0ZXMgYWxsb2NhdGVkICIsIGJ5dGVzQWxsb2NhdGVkLCAgIiA+ICIs
IGJ5dGVzQXZhaWxhYmxlLCAiIGJ5dGVzIGF2YWlsYWJsZS5cbiIpOwogICAgICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAgICAgICAgIH0KICAgICB9Ci0jZW5kaWYgLy8gIVVTRShMSUJQQVNfSklU
X0hFQVApCiAKICAgICBSZWZQdHI8RXhlY3V0YWJsZU1lbW9yeUhhbmRsZT4gcmVzdWx0ID0gYWxs
b2NhdG9yLT5hbGxvY2F0ZShzaXplSW5CeXRlcyk7CiAgICAgaWYgKCFyZXN1bHQpIHsKQEAgLTEx
OTcsMjQgKzEyMjYsMjUgQEAgUmVmUHRyPEV4ZWN1dGFibGVNZW1vcnlIYW5kbGU+IEV4ZWN1dGFi
bGVNZW1vcnlIYW5kbGU6OmNyZWF0ZUltcGwoc2l6ZV90IHNpemVJbkIKICAgICB2b2lkKiBrZXkg
PSBqaXRfaGVhcF90cnlfYWxsb2NhdGUoc2l6ZUluQnl0ZXMpOwogICAgIGlmICgha2V5KQogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEV4ZWN1dGFibGVN
ZW1vcnlIYW5kbGUoTWVtb3J5UHRyOjptYWtlRnJvbVJhd1BvaW50ZXIoa2V5KSkpOworICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgRXhlY3V0YWJsZU1lbW9yeUhhbmRsZShNZW1vcnlQdHI6Om1ha2VG
cm9tUmF3UG9pbnRlcihrZXkpLCBqaXRfaGVhcF9nZXRfc2l6ZShrZXkpKSk7CiB9CiAKIEV4ZWN1
dGFibGVNZW1vcnlIYW5kbGU6On5FeGVjdXRhYmxlTWVtb3J5SGFuZGxlKCkKIHsKICAgICBGaXhl
ZFZNUG9vbEV4ZWN1dGFibGVBbGxvY2F0b3IqIGFsbG9jYXRvciA9IGdfanNjQ29uZmlnLmZpeGVk
Vk1Qb29sRXhlY3V0YWJsZUFsbG9jYXRvcjsKLSAgICBhbGxvY2F0b3ItPmhhbmRsZVdpbGxCZVJl
bGVhc2VkKCp0aGlzKTsKKyAgICBhbGxvY2F0b3ItPmhhbmRsZVdpbGxCZVJlbGVhc2VkKCp0aGlz
LCBzaXplSW5CeXRlcygpKTsKICAgICBqaXRfaGVhcF9kZWFsbG9jYXRlKGtleSgpKTsKIH0KIAot
c2l6ZV90IEV4ZWN1dGFibGVNZW1vcnlIYW5kbGU6OnNpemVJbkJ5dGVzKCkgY29uc3QKLXsKLSAg
ICByZXR1cm4gaml0X2hlYXBfZ2V0X3NpemUoa2V5KCkpOwotfQotCiB2b2lkIEV4ZWN1dGFibGVN
ZW1vcnlIYW5kbGU6OnNocmluayhzaXplX3QgbmV3U2l6ZUluQnl0ZXMpCiB7CisgICAgc2l6ZV90
IG9sZFNpemVJbkJ5dGVzID0gc2l6ZUluQnl0ZXMoKTsKICAgICBqaXRfaGVhcF9zaHJpbmsoa2V5
KCksIG5ld1NpemVJbkJ5dGVzKTsKKyAgICBtX3NpemVJbkJ5dGVzID0gaml0X2hlYXBfZ2V0X3Np
emUoa2V5KCkpOworICAgIGlmIChvbGRTaXplSW5CeXRlcyAhPSBzaXplSW5CeXRlcygpKSB7Cisg
ICAgICAgIEZpeGVkVk1Qb29sRXhlY3V0YWJsZUFsbG9jYXRvciogYWxsb2NhdG9yID0gZ19qc2ND
b25maWcuZml4ZWRWTVBvb2xFeGVjdXRhYmxlQWxsb2NhdG9yOworICAgICAgICBhbGxvY2F0b3It
PnNocmlua0J5dGVzQWxsb2NhdGVkKG9sZFNpemVJbkJ5dGVzLCBzaXplSW5CeXRlcygpKTsKKyAg
ICB9CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9F
eGVjdXRhYmxlTWVtb3J5SGFuZGxlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1
dGFibGVNZW1vcnlIYW5kbGUuaAppbmRleCBlZmM1YTdhZjdmMDFhY2ZmZWZkYWM5NTEzMTQyNzMx
Yzc5ZjM2YzhkLi5kNGVjZmM2YjZlMjIxNmNkMjBmODE4NWIyYWMzNGUxNzAxYzM5MzU3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVNZW1vcnlIYW5kbGUu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVNZW1vcnlIYW5kbGUu
aApAQCAtNjgsNyArNjgsNyBAQCBjbGFzcyBFeGVjdXRhYmxlTWVtb3J5SGFuZGxlIDogcHVibGlj
IFRocmVhZFNhZmVSZWZDb3VudGVkPEV4ZWN1dGFibGVNZW1vcnlIYW5kbAogICAgICAgICByZXR1
cm4gc3RhcnRBc0ludGVnZXIoKSArIHNpemVJbkJ5dGVzKCk7CiAgICAgfQogCi0gICAgSlNfRVhQ
T1JUX1BSSVZBVEUgc2l6ZV90IHNpemVJbkJ5dGVzKCkgY29uc3Q7CisgICAgc2l6ZV90IHNpemVJ
bkJ5dGVzKCkgY29uc3QgeyByZXR1cm4gbV9zaXplSW5CeXRlczsgfQogCiAgICAgYm9vbCBjb250
YWluc0ludGVnZXJBZGRyZXNzKHVpbnRwdHJfdCBhZGRyZXNzKSBjb25zdAogICAgIHsKQEAgLTk1
LDExICs5NSwxNCBAQCBjbGFzcyBFeGVjdXRhYmxlTWVtb3J5SGFuZGxlIDogcHVibGljIFRocmVh
ZFNhZmVSZWZDb3VudGVkPEV4ZWN1dGFibGVNZW1vcnlIYW5kbAogICAgIH0KIAogcHJpdmF0ZToK
LSAgICBFeGVjdXRhYmxlTWVtb3J5SGFuZGxlKE1lbW9yeVB0ciBzdGFydCkKLSAgICAgICAgOiBt
X3N0YXJ0KHN0YXJ0KQorICAgIEV4ZWN1dGFibGVNZW1vcnlIYW5kbGUoTWVtb3J5UHRyIHN0YXJ0
LCBzaXplX3Qgc2l6ZUluQnl0ZXMpCisgICAgICAgIDogbV9zaXplSW5CeXRlcyhzaXplSW5CeXRl
cykKKyAgICAgICAgLCBtX3N0YXJ0KHN0YXJ0KQogICAgIHsKKyAgICAgICAgQVNTRVJUKHNpemVJ
bkJ5dGVzID09IG1fc2l6ZUluQnl0ZXMpOyAvLyBleGVjdXRhYmxlIG1lbW9yeSByZWdpb24gZG9l
cyBub3QgZXhjZWVkIDRHQi4KICAgICB9CiAKKyAgICB1bnNpZ25lZCBtX3NpemVJbkJ5dGVzOwog
ICAgIE1lbW9yeVB0ciBtX3N0YXJ0OwogfTsKICNlbHNlIC8vIFVTRShMSUJQQVNfSklUX0hFQVAp
IC0+IHNvIHN0YXJ0IG9mICFVU0UoTElCUEFTX0pJVF9IRUFQKSBjYXNlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>