<?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>217460</bug_id>
          
          <creation_ts>2020-10-07 18:12:47 -0700</creation_ts>
          <short_desc>[JSC] Restrict more ptr-tagging and avoid using OperationPtrTag for JIT code</short_desc>
          <delta_ts>2020-10-08 22:08:23 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>217502</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1695769</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-10-07 18:12:47 -0700</bug_when>
    <thetext>[JSC] Restrict more ptr-tagging and avoid using OperationPtrTag for JIT code</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1695770</commentid>
    <comment_count>1</comment_count>
      <attachid>410806</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-10-07 18:16:42 -0700</bug_when>
    <thetext>Created attachment 410806
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1695777</commentid>
    <comment_count>2</comment_count>
      <attachid>410806</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-10-07 18:49:16 -0700</bug_when>
    <thetext>Comment on attachment 410806
Patch

r=me too.  As per offline conversation, please remove extra () around callTarget in LLINT_CALL_END_IMPL, and use a new PtrValuePtrTag for m_putFunction in PutPropertySlot and re-sign as needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1695790</commentid>
    <comment_count>3</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-10-07 21:19:05 -0700</bug_when>
    <thetext>Committed r268170: &lt;https://trac.webkit.org/changeset/268170&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1695791</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-10-07 21:20:22 -0700</bug_when>
    <thetext>&lt;rdar://problem/70078652&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1695961</commentid>
    <comment_count>5</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-10-08 10:56:59 -0700</bug_when>
    <thetext>Committed r268190: &lt;https://trac.webkit.org/changeset/268190&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696098</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-10-08 18:16:49 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 217502</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696131</commentid>
    <comment_count>7</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-10-08 22:08:23 -0700</bug_when>
    <thetext>Committed r268247: &lt;https://trac.webkit.org/changeset/268247&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410806</attachid>
            <date>2020-10-07 18:16:42 -0700</date>
            <delta_ts>2020-10-07 18:18:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217460-20201007181641.patch</filename>
            <type>text/plain</type>
            <size>41926</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4MTM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
NzZlNjQwM2I3YTg0OTYzZjA2MjAyNzcxMzNjMWU3Yzk2OWQ4Zjk0Li5mNGM4MzBhMzFkZTc0OWNj
MzRhOWYwMTU1OWRjNjE2MTU2Y2M2NTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2NiBAQAorMjAyMC0xMC0wNyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFJlc3RyaWN0IG1vcmUgcHRyLXRhZ2dpbmcgYW5kIGF2b2lkIHVz
aW5nIE9wZXJhdGlvblB0clRhZyBmb3IgSklUIGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzQ2MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggbWFrZXMgdGFnZ2luZyAvIHVudGFn
Z2luZyBwb2ludGVyIGZ1bmN0aW9ucyBzb2xpZCBieSB1c2luZyBQdHJUYWcgaW4gdGVtcGxhdGUg
cGFyYW1ldGVyLgorICAgICAgICBMYXRlciwgd2Ugd2lsbCBpbnRyb2R1Y2UgY29tcGlsZSB0aW1l
IGJlaGF2aW9yIGNoYW5nZSBmb3IgZGlmZmVyZW50IGtpbmQgb2YgUHRyVGFnIHNvIHRoYXQgd2Ug
Y2FuIGluc2VydCBPcGVyYXRpb25QdHJUYWcgdmFsaWRhdGlvbgorICAgICAgICB3aGVuIHRhZ2dp
bmcgYSBmdW5jdGlvbiB3aXRoIE9wZXJhdGlvblB0clRhZy4KKworICAgICAgICBXZSBhbHNvIGZv
dW5kIHRoYXQgRlRMIGlzIHRhZ2dpbmcgSklUIGNvZGUgd2l0aCBPcGVyYXRpb25QdHJUYWcgd3Jv
bmdseS4gV2Ugc2hvdWxkIHRhZyBpdCB3aXRoIEpJVFRodW5rUHRyVGFnLgorCisgICAgICAgICog
YXNzZW1ibGVyL0Fic3RyYWN0TWFjcm9Bc3NlbWJsZXIuaDoKKyAgICAgICAgKEpTQzo6QWJzdHJh
Y3RNYWNyb0Fzc2VtYmxlcjo6Z2V0TGlua2VyQWRkcmVzcyk6CisgICAgICAgICogYXNzZW1ibGVy
L0Fzc2VtYmxlckJ1ZmZlci5oOgorICAgICAgICAoSlNDOjpBUk02NEVIYXNoOjp1cGRhdGUpOgor
ICAgICAgICAoSlNDOjpBUk02NEVIYXNoOjpmaW5hbEhhc2ggY29uc3QpOgorICAgICAgICAqIGFz
c2VtYmxlci9KSVRPcGVyYXRpb25MaXN0LmNwcDoKKyAgICAgICAgKEpTQzo6YWRkUG9pbnRlcnMp
OgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmNwcDoKKyAgICAgICAg
KEpTQzo6TWFjcm9Bc3NlbWJsZXI6OnByb2JlKToKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9B
c3NlbWJsZXJDb2RlUmVmLmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQ29kZVB0cjo6
TWFjcm9Bc3NlbWJsZXJDb2RlUHRyKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJDb2Rl
UHRyOjpjcmVhdGVGcm9tRXhlY3V0YWJsZUFkZHJlc3MpOgorICAgICAgICAqIGFzc2VtYmxlci90
ZXN0bWFzbS5jcHA6CisgICAgICAgIChKU0M6OnRlc3RQcm9iZU1vZGlmaWVzUHJvZ3JhbUNvdW50
ZXIpOgorICAgICAgICAqIGIzL2Fpci90ZXN0YWlyLmNwcDoKKyAgICAgICAgKiBmdGwvRlRMT3V0
cHV0Lmg6CisgICAgICAgIChKU0M6OkZUTDo6T3V0cHV0OjpjYWxsV2l0aG91dFNpZGVFZmZlY3Rz
KToKKyAgICAgICAgKEpTQzo6RlRMOjpPdXRwdXQ6Om9wZXJhdGlvbik6CisgICAgICAgICogZnRs
L0ZUTFNsb3dQYXRoQ2FsbC5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6U2xvd1BhdGhDYWxsQ29u
dGV4dDo6bWFrZUNhbGwpOgorICAgICAgICAqIGppdC9KSVRDb2RlLmNwcDoKKyAgICAgICAgKEpT
Qzo6SklUQ29kZVdpdGhDb2RlUmVmOjpleGVjdXRhYmxlQWRkcmVzc0F0T2Zmc2V0KToKKyAgICAg
ICAgKiBqaXQvSklURXhjZXB0aW9ucy5jcHA6CisgICAgICAgIChKU0M6OmdlbmVyaWNVbndpbmQp
OgorICAgICAgICAqIGppdC9KSVRPcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKiBqaXQvUmVwYXRj
aC5jcHA6CisgICAgICAgIChKU0M6OnJlYWRQdXRJQ0NhbGxUYXJnZXQpOgorICAgICAgICAoSlND
OjpmdGxUaHVua0F3YXJlUmVwYXRjaENhbGwpOgorICAgICAgICAoSlNDOjp0cnlDYWNoZUdldEJ5
KToKKyAgICAgICAgKEpTQzo6dHJ5Q2FjaGVQdXRCeUlEKToKKyAgICAgICAgKiBsbGludC9MTElu
dERhdGEuY3BwOgorICAgICAgICAoSlNDOjpMTEludDo6aW5pdGlhbGl6ZSk6CisgICAgICAgICog
bGxpbnQvTExJbnRQQ1Jhbmdlcy5oOgorICAgICAgICAoSlNDOjpMTEludDo6aXNMTEludFBDKToK
KyAgICAgICAgKiBsbGludC9MTEludFNsb3dQYXRocy5jcHA6CisgICAgICAgIChKU0M6OkxMSW50
OjpzZXRVcENhbGwpOgorICAgICAgICAqIGxsaW50L0xMSW50VGh1bmtzLmNwcDoKKyAgICAgICAg
KEpTQzo6TExJbnQ6OmdlbmVyYXRlVGh1bmtXaXRoSnVtcFRvKToKKyAgICAgICAgKiBydW50aW1l
L01hY2hpbmVDb250ZXh0Lmg6CisgICAgICAgIChKU0M6Ok1hY2hpbmVDb250ZXh0OjppbnN0cnVj
dGlvblBvaW50ZXIpOgorICAgICAgICAqIHJ1bnRpbWUvTmF0aXZlRXhlY3V0YWJsZS5jcHA6Cisg
ICAgICAgIChKU0M6Ok5hdGl2ZUV4ZWN1dGFibGU6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAg
KiBydW50aW1lL1B1dFByb3BlcnR5U2xvdC5oOgorICAgICAgICAoSlNDOjpQdXRQcm9wZXJ0eVNs
b3Q6OnNldEN1c3RvbVZhbHVlKToKKyAgICAgICAgKEpTQzo6UHV0UHJvcGVydHlTbG90OjpzZXRD
dXN0b21BY2Nlc3Nvcik6CisgICAgICAgIChKU0M6OlB1dFByb3BlcnR5U2xvdDo6Y3VzdG9tU2V0
dGVyIGNvbnN0KToKKyAgICAgICAgKiB3YXNtL1dhc21BaXJJUkdlbmVyYXRvci5jcHA6CisgICAg
ICAgIChKU0M6Oldhc206OkFpcklSR2VuZXJhdG9yOjplbWl0Q0NhbGwpOgorICAgICAgICAqIHdh
c20vV2FzbVNsb3dQYXRocy5jcHA6CisKIDIwMjAtMTAtMDUgIFl1c3VrZSBTdXp1a2kgIDx5c3V6
dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBNb3JlIGNvbnNpc3RlbnQgUHRyVGFnZ2lu
ZyBmb3IgY29kZSB0eXBlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV1RGL0NoYW5nZUxvZwppbmRleCA1ZjljODhlNTNjNWNlOWVjOWNmOTIxNjRmZWQ4YTNhMzgw
NTEyMzZmLi45OGRmNDg1Njc5YWEwMDdiZmY4NDVhZDE4Y2Q2YmQ1ODkyMmVhMmYzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDIyIEBACisyMDIwLTEwLTA3ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5j
b20+CisKKyAgICAgICAgW0pTQ10gUmVzdHJpY3QgbW9yZSBwdHItdGFnZ2luZyBhbmQgYXZvaWQg
dXNpbmcgT3BlcmF0aW9uUHRyVGFnIGZvciBKSVQgY29kZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NDYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1SZWdpc3RlcnMuY3BwOgor
ICAgICAgICAoV1RGOjp0aHJlYWRTdGF0ZUxSSW50ZXJuYWwpOgorICAgICAgICAoV1RGOjp0aHJl
YWRTdGF0ZVBDSW50ZXJuYWwpOgorICAgICAgICAqIHd0Zi9QdHJUYWcuaDoKKyAgICAgICAgKFdU
Rjo6dGFnQ0Z1bmN0aW9uUHRyKToKKyAgICAgICAgKFdURjo6dGFnQ0Z1bmN0aW9uKToKKyAgICAg
ICAgKFdURjo6dW50YWdDRnVuY3Rpb25QdHIpOgorICAgICAgICAoV1RGOjp0YWdJbnQpOgorICAg
ICAgICAoV1RGOjppc1RhZ2dlZFdpdGgpOgorICAgICAgICAoV1RGOjphc3NlcnRJc1RhZ2dlZFdp
dGgpOgorICAgICAgICAoV1RGOjphc3NlcnRJc051bGxPclRhZ2dlZFdpdGgpOgorCiAyMDIwLTEw
LTA3ICBUYWRldSBaYWdhbGxvICA8dHphZ2FsbG9AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBt
YXhpbXVtIGRlcHRoIGNoZWNrIHRvIFJlZEJsYWNrVHJlZQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BYnN0cmFjdE1hY3JvQXNzZW1ibGVyLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0Fic3RyYWN0TWFjcm9Bc3NlbWJsZXIuaAppbmRleCAx
MmRjZDZjOWU4M2Y4MzM1ODUzMGQ5NDdhODhjNjIwYmQ0YTlhNTE3Li44NWZhMmM3YTAyYzQzZDRl
OTNjNTZjZTM2Y2E3MDI1Y2I1NTU5MWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYXNzZW1ibGVyL0Fic3RyYWN0TWFjcm9Bc3NlbWJsZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYXNzZW1ibGVyL0Fic3RyYWN0TWFjcm9Bc3NlbWJsZXIuaApAQCAtODc3LDcgKzg3
Nyw3IEBAIGNsYXNzIEFic3RyYWN0TWFjcm9Bc3NlbWJsZXIgOiBwdWJsaWMgQWJzdHJhY3RNYWNy
b0Fzc2VtYmxlckJhc2UgewogICAgIHRlbXBsYXRlPFB0clRhZyB0YWc+CiAgICAgc3RhdGljIHZv
aWQqIGdldExpbmtlckFkZHJlc3Modm9pZCogY29kZSwgQXNzZW1ibGVyTGFiZWwgbGFiZWwpCiAg
ICAgewotICAgICAgICByZXR1cm4gdGFnQ29kZVB0cihBc3NlbWJsZXJUeXBlOjpnZXRSZWxvY2F0
ZWRBZGRyZXNzKGNvZGUsIGxhYmVsKSwgdGFnKTsKKyAgICAgICAgcmV0dXJuIHRhZ0NvZGVQdHI8
dGFnPihBc3NlbWJsZXJUeXBlOjpnZXRSZWxvY2F0ZWRBZGRyZXNzKGNvZGUsIGxhYmVsKSk7CiAg
ICAgfQogCiAgICAgc3RhdGljIHVuc2lnbmVkIGdldExpbmtlckNhbGxSZXR1cm5PZmZzZXQoQ2Fs
bCBjYWxsKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9Bc3Nl
bWJsZXJCdWZmZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQXNzZW1ibGVy
QnVmZmVyLmgKaW5kZXggMGMzOGE3ZWYyMjA2NTY4NjZkOTUzZDdjZmZmOWQ0ZWM5NjQ1ZWU3Ny4u
ZWY1YWRlYTFmMzFhNzAyNDdkMDJkZGQ5ODc2NzdlZjBjMTEwMWU1ZSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9Bc3NlbWJsZXJCdWZmZXIuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0Fzc2VtYmxlckJ1ZmZlci5oCkBAIC0xODcsMTUg
KzE4NywxNSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgQUxXQVlTX0lOTElORSB2b2lkIHVw
ZGF0ZSh1aW50MzJfdCB2YWx1ZSkKICAgICAgICAgewogICAgICAgICAgICAgdWludDY0X3QgaW5w
dXQgPSB2YWx1ZSBeIG1faGFzaDsKLSAgICAgICAgICAgIHVpbnQ2NF90IGEgPSBzdGF0aWNfY2Fz
dDx1aW50MzJfdD4odGFnSW50KGlucHV0LCBzdGF0aWNfY2FzdDxQdHJUYWc+KDApKSA+PiAzOSk7
Ci0gICAgICAgICAgICB1aW50NjRfdCBiID0gdGFnSW50KGlucHV0LCBzdGF0aWNfY2FzdDxQdHJU
YWc+KDB4YjdlMTUxNjI4YWVkMmE2YSkpID4+IDIzOworICAgICAgICAgICAgdWludDY0X3QgYSA9
IHN0YXRpY19jYXN0PHVpbnQzMl90Pih0YWdJbnQ8c3RhdGljX2Nhc3Q8UHRyVGFnPigwKT4oaW5w
dXQpID4+IDM5KTsKKyAgICAgICAgICAgIHVpbnQ2NF90IGIgPSB0YWdJbnQ8c3RhdGljX2Nhc3Q8
UHRyVGFnPigweGI3ZTE1MTYyOGFlZDJhNmEpPihpbnB1dCkgPj4gMjM7CiAgICAgICAgICAgICBt
X2hhc2ggPSBhIF4gYjsKICAgICAgICAgfQogICAgICAgICB1aW50MzJfdCBmaW5hbEhhc2goKSBj
b25zdAogICAgICAgICB7CiAgICAgICAgICAgICB1aW50NjRfdCBoYXNoID0gbV9oYXNoOwotICAg
ICAgICAgICAgdWludDY0X3QgYSA9IHN0YXRpY19jYXN0PHVpbnQzMl90Pih0YWdJbnQoaGFzaCwg
c3RhdGljX2Nhc3Q8UHRyVGFnPigweGJmNzE1ODgwOWNmNGYzYzcpKSA+PiAzOSk7Ci0gICAgICAg
ICAgICB1aW50NjRfdCBiID0gdGFnSW50KGhhc2gsIHN0YXRpY19jYXN0PFB0clRhZz4oMHg2MmU3
MTYwZjM4YjRkYTU2KSkgPj4gMjM7CisgICAgICAgICAgICB1aW50NjRfdCBhID0gc3RhdGljX2Nh
c3Q8dWludDMyX3Q+KHRhZ0ludDxzdGF0aWNfY2FzdDxQdHJUYWc+KDB4YmY3MTU4ODA5Y2Y0ZjNj
Nyk+KGhhc2gpID4+IDM5KTsKKyAgICAgICAgICAgIHVpbnQ2NF90IGIgPSB0YWdJbnQ8c3RhdGlj
X2Nhc3Q8UHRyVGFnPigweDYyZTcxNjBmMzhiNGRhNTYpPihoYXNoKSA+PiAyMzsKICAgICAgICAg
ICAgIHJldHVybiBzdGF0aWNfY2FzdDx1aW50MzJfdD4oYSBeIGIpOwogICAgICAgICB9CiAgICAg
cHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvSklU
T3BlcmF0aW9uTGlzdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0pJVE9w
ZXJhdGlvbkxpc3QuY3BwCmluZGV4IGUyYzE2MDdiMmYwNWE1ZGJiNTU5MmU5YWFiNTg2MjhjMmY3
MzIyNmYuLmU0YzM1NmIyN2QwYmE3MDA0ZWE5ZWY0YTVjZjMwOGJjNWIwM2M0NjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvSklUT3BlcmF0aW9uTGlzdC5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9KSVRPcGVyYXRpb25MaXN0LmNw
cApAQCAtNDgsMTQgKzQ4LDE0IEBAIHN0YXRpYyBTVVBQUkVTU19BU0FOIEFMV0FZU19JTkxJTkUg
dm9pZCBhZGRQb2ludGVycyhIYXNoTWFwPHZvaWQqLCB2b2lkKj4mIG1hcCwKICAgICBmb3IgKGNv
bnN0IHVpbnRwdHJfdCogY3VycmVudCA9IGJlZ2luSG9zdDsgY3VycmVudCAhPSBlbmRIb3N0OyAr
K2N1cnJlbnQpIHsKICAgICAgICAgdm9pZCogY29kZVB0ciA9IHJlbW92ZUNvZGVQdHJUYWcoYml0
d2lzZV9jYXN0PHZvaWQqPigqY3VycmVudCkpOwogICAgICAgICBpZiAoY29kZVB0cikgewotICAg
ICAgICAgICAgYXV0byByZXN1bHQgPSBtYXAuYWRkKGNvZGVQdHIsIHRhZ0NvZGVQdHIoY29kZVB0
ciwgSlNFbnRyeVB0clRhZykpOworICAgICAgICAgICAgYXV0byByZXN1bHQgPSBtYXAuYWRkKGNv
ZGVQdHIsIHRhZ0NvZGVQdHI8SlNFbnRyeVB0clRhZz4oY29kZVB0cikpOwogICAgICAgICAgICAg
QVNTRVJUKHJlc3VsdC5pc05ld0VudHJ5KTsKICAgICAgICAgfQogICAgIH0KICAgICBmb3IgKGNv
bnN0IHVpbnRwdHJfdCogY3VycmVudCA9IGJlZ2luT3BlcmF0aW9uczsgY3VycmVudCAhPSBlbmRP
cGVyYXRpb25zOyArK2N1cnJlbnQpIHsKICAgICAgICAgdm9pZCogY29kZVB0ciA9IHJlbW92ZUNv
ZGVQdHJUYWcoYml0d2lzZV9jYXN0PHZvaWQqPigqY3VycmVudCkpOwogICAgICAgICBpZiAoY29k
ZVB0cikgewotICAgICAgICAgICAgYXV0byByZXN1bHQgPSBtYXAuYWRkKGNvZGVQdHIsIHRhZ0Nv
ZGVQdHIoY29kZVB0ciwgT3BlcmF0aW9uUHRyVGFnKSk7CisgICAgICAgICAgICBhdXRvIHJlc3Vs
dCA9IG1hcC5hZGQoY29kZVB0ciwgdGFnQ29kZVB0cjxPcGVyYXRpb25QdHJUYWc+KGNvZGVQdHIp
KTsKICAgICAgICAgICAgIEFTU0VSVChyZXN1bHQuaXNOZXdFbnRyeSk7CiAgICAgICAgIH0KICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNz
ZW1ibGVyQVJNNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fz
c2VtYmxlckFSTTY0LmNwcAppbmRleCBmMWJhZDY2N2FlODYzNzJmYWM3YWYyMWMzNjYxMTA0MmIx
OGFiM2U4Li45ODcyNThhYTdkYzU0YWFhMmQzOGZkODIzODQ1YmQzZmQyMDljZmExIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJB
Uk02NC5jcHAKQEAgLTU0NSw3ICs1NDUsNyBAQCB2b2lkIE1hY3JvQXNzZW1ibGVyOjpwcm9iZShQ
cm9iZTo6RnVuY3Rpb24gZnVuY3Rpb24sIHZvaWQqIGFyZykKICAgICBtb3ZlKFRydXN0ZWRJbW1Q
dHIodGFnQ0Z1bmN0aW9uPE9wZXJhdGlvblB0clRhZz4oY3RpTWFzbVByb2JlVHJhbXBvbGluZSkp
LCB4MjYpOwogICAgIG1vdmUoVHJ1c3RlZEltbVB0cih0YWdDRnVuY3Rpb248SklUUHJvYmVFeGVj
dXRvclB0clRhZz4oUHJvYmU6OmV4ZWN1dGVQcm9iZSkpLCB4MjgpOwogI2lmIENQVShBUk02NEUp
Ci0gICAgQVNTRVJUKGlzVGFnZ2VkV2l0aChmdW5jdGlvbiwgSklUUHJvYmVQdHJUYWcpKTsKKyAg
ICBhc3NlcnRJc1RhZ2dlZFdpdGg8SklUUHJvYmVQdHJUYWc+KGZ1bmN0aW9uKTsKICNlbmRpZgog
ICAgIG1vdmUoVHJ1c3RlZEltbVB0cihyZWludGVycHJldF9jYXN0PHZvaWQqPihmdW5jdGlvbikp
LCB4MjQpOwogICAgIG1vdmUoVHJ1c3RlZEltbVB0cihhcmcpLCB4MjUpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckNvZGVSZWYuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJDb2RlUmVmLmgK
aW5kZXggNTM5OWU1OTM0NTRkNzI3N2FmZGJjYTE2YjhjNDJiMDMwZDU5OTRmZC4uYzVhNGZjYTJm
YTU5YzJiZDU4ZDc1NjkzOTAzMzRmYmMzZDNiOGQxMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckNvZGVSZWYuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQ29kZVJlZi5oCkBAIC0yNzgs
NyArMjc4LDcgQEAgY2xhc3MgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIDogcHJpdmF0ZSBNYWNyb0Fz
c2VtYmxlckNvZGVQdHJCYXNlIHsKICAgICAgICAgOiBtX3ZhbHVlKHZhbHVlKQogI2VuZGlmCiAg
ICAgewotICAgICAgICBhc3NlcnRJc1RhZ2dlZFdpdGgodmFsdWUsIHRhZyk7CisgICAgICAgIGFz
c2VydElzVGFnZ2VkV2l0aDx0YWc+KHZhbHVlKTsKICAgICAgICAgQVNTRVJUKHZhbHVlKTsKICNp
ZiBDUFUoQVJNX1RIVU1CMikKICAgICAgICAgQVNTRVJUKCEocmVpbnRlcnByZXRfY2FzdDx1aW50
cHRyX3Q+KHZhbHVlKSAmIDEpKTsKQEAgLTI5MCw3ICsyOTAsNyBAQCBjbGFzcyBNYWNyb0Fzc2Vt
YmxlckNvZGVQdHIgOiBwcml2YXRlIE1hY3JvQXNzZW1ibGVyQ29kZVB0ckJhc2UgewogICAgIHsK
ICAgICAgICAgQVNTRVJUKHZhbHVlKTsKICAgICAgICAgQVNTRVJUX1ZBTElEX0NPREVfUE9JTlRF
Uih2YWx1ZSk7Ci0gICAgICAgIGFzc2VydElzVGFnZ2VkV2l0aCh2YWx1ZSwgdGFnKTsKKyAgICAg
ICAgYXNzZXJ0SXNUYWdnZWRXaXRoPHRhZz4odmFsdWUpOwogICAgICAgICBNYWNyb0Fzc2VtYmxl
ckNvZGVQdHIgcmVzdWx0OwogICAgICAgICByZXN1bHQubV92YWx1ZSA9IHZhbHVlOwogICAgICAg
ICByZXR1cm4gcmVzdWx0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci90ZXN0bWFzbS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL3Rlc3Rt
YXNtLmNwcAppbmRleCA2Y2NiMTllMWQ0OTA2Yjg5NzAxZTFhY2IzZmUxODk0MTgwZmY0ZmRlLi5m
ZjFjODAyMmIyY2M4OTUzMzJhZDlkYjViODI1MWU2Yzc4ZjMxMDQzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcApAQCAtMjEyMyw3ICsyMTIzLDcgQEAg
dm9pZCB0ZXN0UHJvYmVNb2RpZmllc1Byb2dyYW1Db3VudGVyKCkKICAgICAgICAgLy8gV3JpdGUg
ZXhwZWN0ZWQgdmFsdWVzIGludG8gdGhlIHJlZ2lzdGVycy4KICAgICAgICAgaml0LnByb2JlKFsm
XSAoUHJvYmU6OkNvbnRleHQmIGNvbnRleHQpIHsKICAgICAgICAgICAgIHByb2JlQ2FsbENvdW50
Kys7Ci0gICAgICAgICAgICBjb250ZXh0LmNwdS5wYygpID0gdW50YWdDb2RlUHRyKGNvbnRpbnVh
dGlvbi5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSwgSlNFbnRyeVB0clRhZyk7CisgICAgICAg
ICAgICBjb250ZXh0LmNwdS5wYygpID0gdW50YWdDb2RlUHRyPEpTRW50cnlQdHJUYWc+KGNvbnRp
bnVhdGlvbi5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSk7CiAgICAgICAgIH0pOwogCiAgICAg
ICAgIGppdC5icmVha3BvaW50KCk7IC8vIFdlIHNob3VsZCBuZXZlciBnZXQgaGVyZS4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvdGVzdGFpci5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvYWlyL3Rlc3RhaXIuY3BwCmluZGV4IDM5YTNiYWYxYTk0M2RlNWZl
Zjk5ZDYxNzkyOGI4NWRmNzVlYTgxYjMuLmZlZmM3YTExOGE4ZjZmYzQxZjM4ZTlhMGZmNTMyY2Zm
MjZlNmMxZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvdGVzdGFp
ci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci90ZXN0YWlyLmNwcApAQCAt
OTksNyArOTksNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8QjM6OkNvbXBpbGF0aW9uPiBjb21waWxlKEIz
OjpQcm9jZWR1cmUmIHByb2MpCiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZS4uLiBBcmd1
bWVudHM+CiBUIGludm9rZShjb25zdCBCMzo6Q29tcGlsYXRpb24mIGNvZGUsIEFyZ3VtZW50cy4u
LiBhcmd1bWVudHMpCiB7Ci0gICAgdm9pZCogZXhlY3V0YWJsZUFkZHJlc3MgPSB1bnRhZ0NGdW5j
dGlvblB0cihjb2RlLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpLCBCM0NvbXBpbGF0aW9uUHRy
VGFnKTsKKyAgICB2b2lkKiBleGVjdXRhYmxlQWRkcmVzcyA9IHVudGFnQ0Z1bmN0aW9uUHRyPEIz
Q29tcGlsYXRpb25QdHJUYWc+KGNvZGUuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpOwogICAg
IFQgKCpmdW5jdGlvbikoQXJndW1lbnRzLi4uKSA9IGJpdHdpc2VfY2FzdDxUKCopKEFyZ3VtZW50
cy4uLik+KGV4ZWN1dGFibGVBZGRyZXNzKTsKICAgICByZXR1cm4gZnVuY3Rpb24oYXJndW1lbnRz
Li4uKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE91dHB1dC5oCmluZGV4IGYxNTVmNmM5
NjExZTg0ODJlN2Y2NmRkYzFiNmIzZDY4YWEyNjFlOWIuLmQwMzUzYzg3MWNmNTczNGM2YzVmNmVi
ZjUzMzEwODM3Nzc3YTA4NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMT3V0cHV0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPdXRwdXQuaApA
QCAtMzk1LDEzICszOTUsMTMgQEAgY2xhc3MgT3V0cHV0IDogcHVibGljIENvbW1vblZhbHVlcyB7
CiAgICAgewogICAgICAgICBzdGF0aWNfYXNzZXJ0KCFzdGQ6OmlzX3NhbWU8RnVuY3Rpb24sIExW
YWx1ZT46OnZhbHVlKTsKICAgICAgICAgcmV0dXJuIG1fYmxvY2stPmFwcGVuZE5ldzxCMzo6Q0Nh
bGxWYWx1ZT4obV9wcm9jLCB0eXBlLCBvcmlnaW4oKSwgQjM6OkVmZmVjdHM6Om5vbmUoKSwKLSAg
ICAgICAgICAgIGNvbnN0SW50UHRyKHRhZ0NGdW5jdGlvblB0cjx2b2lkKj4oZnVuY3Rpb24sIE9w
ZXJhdGlvblB0clRhZykpLCBhcmcxLCBhcmdzLi4uKTsKKyAgICAgICAgICAgIGNvbnN0SW50UHRy
KHRhZ0NGdW5jdGlvblB0cjx2b2lkKiwgT3BlcmF0aW9uUHRyVGFnPihmdW5jdGlvbikpLCBhcmcx
LCBhcmdzLi4uKTsKICAgICB9CiAKICAgICAvLyBGSVhNRTogQ29uc2lkZXIgZW5oYW5jaW5nIHRo
aXMgdG8gYWxsb3cgdGhlIGNsaWVudCB0byBjaG9vc2UgdGhlIHRhcmdldCBQdHJUYWcgdG8gdXNl
LgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODQzMjQK
ICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdGlvblR5cGU+Ci0gICAgTFZhbHVlIG9wZXJhdGlv
bihGdW5jdGlvblR5cGUgZnVuY3Rpb24pIHsgcmV0dXJuIGNvbnN0SW50UHRyKHRhZ0NGdW5jdGlv
blB0cjx2b2lkKj4oZnVuY3Rpb24sIE9wZXJhdGlvblB0clRhZykpOyB9CisgICAgTFZhbHVlIG9w
ZXJhdGlvbihGdW5jdGlvblR5cGUgZnVuY3Rpb24pIHsgcmV0dXJuIGNvbnN0SW50UHRyKHRhZ0NG
dW5jdGlvblB0cjx2b2lkKiwgT3BlcmF0aW9uUHRyVGFnPihmdW5jdGlvbikpOyB9CiAKICAgICB2
b2lkIGp1bXAoTEJhc2ljQmxvY2spOwogICAgIHZvaWQgYnJhbmNoKExWYWx1ZSBjb25kaXRpb24s
IExCYXNpY0Jsb2NrIHRha2VuLCBXZWlnaHQgdGFrZW5XZWlnaHQsIExCYXNpY0Jsb2NrIG5vdFRh
a2VuLCBXZWlnaHQgbm90VGFrZW5XZWlnaHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExTbG93UGF0aENhbGwuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExTbG93UGF0aENhbGwuY3BwCmluZGV4IDMyODRhZDJmYzVlZGIyNzBjOTc4OTA0ODViZWFm
NTdkYWU1MzY1MzYuLjJhZGQ0OTRjNTMyYWFlYThlZTNkMTFjZTEyMjc4MTE4OTM1NmFkNGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMU2xvd1BhdGhDYWxsLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFNsb3dQYXRoQ2FsbC5jcHAKQEAgLTEy
MCwxNCArMTIwLDE0IEBAIFNsb3dQYXRoQ2FsbEtleSBTbG93UGF0aENhbGxDb250ZXh0OjprZXlX
aXRoVGFyZ2V0KEZ1bmN0aW9uUHRyPENGdW5jdGlvblB0clRhZz4KIFNsb3dQYXRoQ2FsbCBTbG93
UGF0aENhbGxDb250ZXh0OjptYWtlQ2FsbChWTSYgdm0sIEZ1bmN0aW9uUHRyPENGdW5jdGlvblB0
clRhZz4gY2FsbFRhcmdldCkKIHsKICAgICBTbG93UGF0aENhbGxLZXkga2V5ID0ga2V5V2l0aFRh
cmdldChjYWxsVGFyZ2V0KTsKLSAgICBTbG93UGF0aENhbGwgcmVzdWx0ID0gU2xvd1BhdGhDYWxs
KG1faml0LmNhbGwoT3BlcmF0aW9uUHRyVGFnKSwga2V5KTsKKyAgICBTbG93UGF0aENhbGwgcmVz
dWx0ID0gU2xvd1BhdGhDYWxsKG1faml0LmNhbGwoSklUVGh1bmtQdHJUYWcpLCBrZXkpOwogCiAg
ICAgbV9qaXQuYWRkTGlua1Rhc2soCiAgICAgICAgIFtyZXN1bHQsICZ2bV0gKExpbmtCdWZmZXIm
IGxpbmtCdWZmZXIpIHsKICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRUaHVu
a1B0clRhZz4gdGh1bmsgPQogICAgICAgICAgICAgICAgIHZtLmZ0bFRodW5rcy0+Z2V0U2xvd1Bh
dGhDYWxsVGh1bmsodm0sIHJlc3VsdC5rZXkoKSk7CiAKLSAgICAgICAgICAgIGxpbmtCdWZmZXIu
bGluayhyZXN1bHQuY2FsbCgpLCBDb2RlTG9jYXRpb25MYWJlbDxPcGVyYXRpb25QdHJUYWc+KHRo
dW5rLnJldGFnZ2VkQ29kZTxPcGVyYXRpb25QdHJUYWc+KCkpKTsKKyAgICAgICAgICAgIGxpbmtC
dWZmZXIubGluayhyZXN1bHQuY2FsbCgpLCBDb2RlTG9jYXRpb25MYWJlbDxKSVRUaHVua1B0clRh
Zz4odGh1bmsuY29kZSgpKSk7CiAgICAgICAgIH0pOwogICAgIAogICAgIHJldHVybiByZXN1bHQ7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENvZGUuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDb2RlLmNwcAppbmRleCA5MjYzNjRmMTZiNjA0MDIw
MjAwYWE2YTc1YTFjM2ExYTRhNzc2Mjk1Li5iMmUzZGNjNzA4MjlhNDdlNzhlZGJlYjQyMDM4MGMw
MDhiNGM2OGYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENvZGUu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ29kZS5jcHAKQEAgLTExNiw3
ICsxMTYsNyBAQCBKSVRDb2RlV2l0aENvZGVSZWY6On5KSVRDb2RlV2l0aENvZGVSZWYoKQogdm9p
ZCogSklUQ29kZVdpdGhDb2RlUmVmOjpleGVjdXRhYmxlQWRkcmVzc0F0T2Zmc2V0KHNpemVfdCBv
ZmZzZXQpCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQobV9yZWYpOwotICAgIGFzc2VydElzVGFnZ2Vk
V2l0aChtX3JlZi5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSwgSlNFbnRyeVB0clRhZyk7Cisg
ICAgYXNzZXJ0SXNUYWdnZWRXaXRoPEpTRW50cnlQdHJUYWc+KG1fcmVmLmNvZGUoKS5leGVjdXRh
YmxlQWRkcmVzcygpKTsKICAgICBpZiAoIW9mZnNldCkKICAgICAgICAgcmV0dXJuIG1fcmVmLmNv
ZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVEV4Y2VwdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRFeGNlcHRpb25zLmNwcAppbmRleCBiYTgwNTc2NzU3NDExOTJiZmIwY2M3OWMyZmJiOTc1ZGIw
MThlNjgxLi42ZDU4M2E0ODllZDUzMDMxOGNlMzA5NmM2NmIwMmU3ZDFjNThhNGJjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEV4Y2VwdGlvbnMuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklURXhjZXB0aW9ucy5jcHAKQEAgLTgyLDcgKzgyLDcg
QEAgdm9pZCBnZW5lcmljVW53aW5kKFZNJiB2bSwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCiAKICAg
ICBBU1NFUlQoYml0d2lzZV9jYXN0PHVpbnRwdHJfdD4oY2FsbEZyYW1lKSA8IGJpdHdpc2VfY2Fz
dDx1aW50cHRyX3Q+KHZtLnRvcEVudHJ5RnJhbWUpKTsKIAotICAgIGFzc2VydElzVGFnZ2VkV2l0
aChjYXRjaFJvdXRpbmUsIEV4Y2VwdGlvbkhhbmRsZXJQdHJUYWcpOworICAgIGFzc2VydElzVGFn
Z2VkV2l0aDxFeGNlcHRpb25IYW5kbGVyUHRyVGFnPihjYXRjaFJvdXRpbmUpOwogICAgIHZtLmNh
bGxGcmFtZUZvckNhdGNoID0gY2FsbEZyYW1lOwogICAgIHZtLnRhcmdldE1hY2hpbmVQQ0ZvclRo
cm93ID0gY2F0Y2hSb3V0aW5lOwogICAgIHZtLnRhcmdldEludGVycHJldGVyUENGb3JUaHJvdyA9
IGNhdGNoUENGb3JJbnRlcnByZXRlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9w
ZXJhdGlvbnMuY3BwCmluZGV4IDE5MDZlNWQ3YmMyMjRmODQyMTkxOWNjMTUyOTVjYWQ5NjQ2NTRh
MmMuLjY4MTg0MDQ5OTQwOTVlYzAwZjAwYTNjY2Y2Njg1OWVkZmVlZTc4MTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcApAQCAtMjYyMyw3ICsyNjIzLDcg
QEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN3aXRjaENoYXJXaXRoVW5rbm93
bktleVR5cGUsIGNoYXIqLCAoSlNHbG9iYWwKICAgICAgICAgfQogICAgIH0KIAotICAgIGFzc2Vy
dElzVGFnZ2VkV2l0aChyZXN1bHQsIEpTU3dpdGNoUHRyVGFnKTsKKyAgICBhc3NlcnRJc1RhZ2dl
ZFdpdGg8SlNTd2l0Y2hQdHJUYWc+KHJlc3VsdCk7CiAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nh
c3Q8Y2hhcio+KHJlc3VsdCk7CiB9CiAKQEAgLTI2NDMsNyArMjY0Myw3IEBAIEpTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25Td2l0Y2hJbW1XaXRoVW5rbm93bktleVR5cGUsIGNoYXIq
LCAoVk0qIHZtUG9pCiAgICAgICAgIHJlc3VsdCA9IGp1bXBUYWJsZS5jdGlGb3JWYWx1ZShzdGF0
aWNfY2FzdDxpbnQzMl90PihrZXkuYXNEb3VibGUoKSkpLmV4ZWN1dGFibGVBZGRyZXNzKCk7CiAg
ICAgZWxzZQogICAgICAgICByZXN1bHQgPSBqdW1wVGFibGUuY3RpRGVmYXVsdC5leGVjdXRhYmxl
QWRkcmVzcygpOwotICAgIGFzc2VydElzVGFnZ2VkV2l0aChyZXN1bHQsIEpTU3dpdGNoUHRyVGFn
KTsKKyAgICBhc3NlcnRJc1RhZ2dlZFdpdGg8SlNTd2l0Y2hQdHJUYWc+KHJlc3VsdCk7CiAgICAg
cmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHJlc3VsdCk7CiB9CiAKQEAgLTI2NjgsNyAr
MjY2OCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Td2l0Y2hTdHJpbmdX
aXRoVW5rbm93bktleVR5cGUsIGNoYXIqLCAoSlNHbG9iCiAgICAgfSBlbHNlCiAgICAgICAgIHJl
c3VsdCA9IGp1bXBUYWJsZS5jdGlEZWZhdWx0LmV4ZWN1dGFibGVBZGRyZXNzKCk7CiAKLSAgICBh
c3NlcnRJc1RhZ2dlZFdpdGgocmVzdWx0LCBKU1N3aXRjaFB0clRhZyk7CisgICAgYXNzZXJ0SXNU
YWdnZWRXaXRoPEpTU3dpdGNoUHRyVGFnPihyZXN1bHQpOwogICAgIHJldHVybiByZWludGVycHJl
dF9jYXN0PGNoYXIqPihyZXN1bHQpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L1JlcGF0Y2guY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNo
LmNwcAppbmRleCBhMWE1MmRlNzdlNGZmNDAzZTI2NzY1Mzc0YmJjYWZkMDlmMGY2MzFlLi5lYTI0
OTJjNzE5YWQzYmU2YjE2ZDk5MTdmMzBmMzIxNDQ2YWE3ZGZhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvUmVwYXRjaC5jcHAKQEAgLTczLDE1ICs3MywxNiBAQCBuYW1lc3BhY2UgSlNDIHsKIAog
c3RhdGljIEZ1bmN0aW9uUHRyPENGdW5jdGlvblB0clRhZz4gcmVhZFB1dElDQ2FsbFRhcmdldChD
b2RlQmxvY2sqIGNvZGVCbG9jaywgQ29kZUxvY2F0aW9uQ2FsbDxKU0ludGVybmFsUHRyVGFnPiBj
YWxsKQogewotICAgIEZ1bmN0aW9uUHRyPE9wZXJhdGlvblB0clRhZz4gdGFyZ2V0ID0gTWFjcm9B
c3NlbWJsZXI6OnJlYWRDYWxsVGFyZ2V0PE9wZXJhdGlvblB0clRhZz4oY2FsbCk7CiAjaWYgRU5B
QkxFKEZUTF9KSVQpCiAgICAgaWYgKGNvZGVCbG9jay0+aml0VHlwZSgpID09IEpJVFR5cGU6OkZU
TEpJVCkgewotICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHI8SklUVGh1bmtQdHJUYWc+IHRo
dW5rID0gTWFjcm9Bc3NlbWJsZXJDb2RlUHRyPE9wZXJhdGlvblB0clRhZz46OmNyZWF0ZUZyb21F
eGVjdXRhYmxlQWRkcmVzcyh0YXJnZXQuZXhlY3V0YWJsZUFkZHJlc3MoKSkucmV0YWdnZWQ8SklU
VGh1bmtQdHJUYWc+KCk7CisgICAgICAgIEZ1bmN0aW9uUHRyPEpJVFRodW5rUHRyVGFnPiB0YXJn
ZXQgPSBNYWNyb0Fzc2VtYmxlcjo6cmVhZENhbGxUYXJnZXQ8SklUVGh1bmtQdHJUYWc+KGNhbGwp
OworICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHI8SklUVGh1bmtQdHJUYWc+IHRodW5rID0g
TWFjcm9Bc3NlbWJsZXJDb2RlUHRyPEpJVFRodW5rUHRyVGFnPjo6Y3JlYXRlRnJvbUV4ZWN1dGFi
bGVBZGRyZXNzKHRhcmdldC5leGVjdXRhYmxlQWRkcmVzcygpKTsKICAgICAgICAgcmV0dXJuIGNv
ZGVCbG9jay0+dm0oKS5mdGxUaHVua3MtPmtleUZvclNsb3dQYXRoQ2FsbFRodW5rKHRodW5rKS5j
YWxsVGFyZ2V0KCkucmV0YWdnZWQ8Q0Z1bmN0aW9uUHRyVGFnPigpOwogICAgIH0KICNlbHNlCiAg
ICAgVU5VU0VEX1BBUkFNKGNvZGVCbG9jayk7CiAjZW5kaWYgLy8gRU5BQkxFKEZUTF9KSVQpCisg
ICAgRnVuY3Rpb25QdHI8T3BlcmF0aW9uUHRyVGFnPiB0YXJnZXQgPSBNYWNyb0Fzc2VtYmxlcjo6
cmVhZENhbGxUYXJnZXQ8T3BlcmF0aW9uUHRyVGFnPihjYWxsKTsKICAgICByZXR1cm4gdGFyZ2V0
LnJldGFnZ2VkPENGdW5jdGlvblB0clRhZz4oKTsKIH0KIApAQCAtOTEsOCArOTIsOCBAQCB2b2lk
IGZ0bFRodW5rQXdhcmVSZXBhdGNoQ2FsbChDb2RlQmxvY2sqIGNvZGVCbG9jaywgQ29kZUxvY2F0
aW9uQ2FsbDxKU0ludGVybmFsUAogICAgIGlmIChjb2RlQmxvY2stPmppdFR5cGUoKSA9PSBKSVRU
eXBlOjpGVExKSVQpIHsKICAgICAgICAgVk0mIHZtID0gY29kZUJsb2NrLT52bSgpOwogICAgICAg
ICBGVEw6OlRodW5rcyYgdGh1bmtzID0gKnZtLmZ0bFRodW5rczsKLSAgICAgICAgRnVuY3Rpb25Q
dHI8T3BlcmF0aW9uUHRyVGFnPiB0YXJnZXQgPSBNYWNyb0Fzc2VtYmxlcjo6cmVhZENhbGxUYXJn
ZXQ8T3BlcmF0aW9uUHRyVGFnPihjYWxsKTsKLSAgICAgICAgYXV0byBzbG93UGF0aFRodW5rID0g
TWFjcm9Bc3NlbWJsZXJDb2RlUHRyPEpJVFRodW5rUHRyVGFnPjo6Y3JlYXRlRnJvbUV4ZWN1dGFi
bGVBZGRyZXNzKHRhcmdldC5yZXRhZ2dlZEV4ZWN1dGFibGVBZGRyZXNzPEpJVFRodW5rUHRyVGFn
PigpKTsKKyAgICAgICAgRnVuY3Rpb25QdHI8SklUVGh1bmtQdHJUYWc+IHRhcmdldCA9IE1hY3Jv
QXNzZW1ibGVyOjpyZWFkQ2FsbFRhcmdldDxKSVRUaHVua1B0clRhZz4oY2FsbCk7CisgICAgICAg
IGF1dG8gc2xvd1BhdGhUaHVuayA9IE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKSVRUaHVua1B0clRh
Zz46OmNyZWF0ZUZyb21FeGVjdXRhYmxlQWRkcmVzcyh0YXJnZXQuZXhlY3V0YWJsZUFkZHJlc3Mo
KSk7CiAgICAgICAgIEZUTDo6U2xvd1BhdGhDYWxsS2V5IGtleSA9IHRodW5rcy5rZXlGb3JTbG93
UGF0aENhbGxUaHVuayhzbG93UGF0aFRodW5rKTsKICAgICAgICAga2V5ID0ga2V5LndpdGhDYWxs
VGFyZ2V0KG5ld0NhbGxlZUZ1bmN0aW9uKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OnJlcGF0
Y2hDYWxsKGNhbGwsIEZ1bmN0aW9uUHRyPE9wZXJhdGlvblB0clRhZz4odGh1bmtzLmdldFNsb3dQ
YXRoQ2FsbFRodW5rKHZtLCBrZXkpLnJldGFnZ2VkQ29kZTxPcGVyYXRpb25QdHJUYWc+KCkpKTsK
QEAgLTQwNSw3ICs0MDYsNyBAQCBzdGF0aWMgSW5saW5lQ2FjaGVBY3Rpb24gdHJ5Q2FjaGVHZXRC
eShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDb2RlQmxvY2sqCiAKICAgICAgICAgICAg
ICAgICAgICAgbmV3Q2FzZSA9IEdldHRlclNldHRlckFjY2Vzc0Nhc2U6OmNyZWF0ZSgKICAgICAg
ICAgICAgICAgICAgICAgICAgIHZtLCBjb2RlQmxvY2ssIHR5cGUsIHByb3BlcnR5TmFtZSwgb2Zm
c2V0LCBzdHJ1Y3R1cmUsIGNvbmRpdGlvblNldCwgbG9hZFRhcmdldEZyb21Qcm94eSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgIHNsb3Qud2F0Y2hwb2ludFNldCgpLCBzbG90LmlzQ2FjaGVhYmxl
Q3VzdG9tKCkgPyBzbG90LmN1c3RvbUdldHRlcigpIDogbnVsbHB0ciwKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHNsb3Qud2F0Y2hwb2ludFNldCgpLCBzbG90LmlzQ2FjaGVhYmxlQ3VzdG9tKCkg
PyBGdW5jdGlvblB0cjxPcGVyYXRpb25QdHJUYWc+KHNsb3QuY3VzdG9tR2V0dGVyKCkpIDogbnVs
bHB0ciwKICAgICAgICAgICAgICAgICAgICAgICAgIHNsb3QuaXNDYWNoZWFibGVDdXN0b20oKSAm
JiBzbG90LnNsb3RCYXNlKCkgIT0gYmFzZVZhbHVlID8gc2xvdC5zbG90QmFzZSgpIDogbnVsbHB0
ciwKICAgICAgICAgICAgICAgICAgICAgICAgIGRvbUF0dHJpYnV0ZSwgV1RGTW92ZShwcm90b3R5
cGVBY2Nlc3NDaGFpbikpOwogICAgICAgICAgICAgICAgIH0KQEAgLTc0MSw3ICs3NDIsNyBAQCBz
dGF0aWMgSW5saW5lQ2FjaGVBY3Rpb24gdHJ5Q2FjaGVQdXRCeUlEKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENvZGVCbG9jawogCiAgICAgICAgICAgICAgICAgbmV3Q2FzZSA9IEdldHRl
clNldHRlckFjY2Vzc0Nhc2U6OmNyZWF0ZSgKICAgICAgICAgICAgICAgICAgICAgdm0sIGNvZGVC
bG9jaywgc2xvdC5pc0N1c3RvbUFjY2Vzc29yKCkgPyBBY2Nlc3NDYXNlOjpDdXN0b21BY2Nlc3Nv
clNldHRlciA6IEFjY2Vzc0Nhc2U6OkN1c3RvbVZhbHVlU2V0dGVyLCBvbGRTdHJ1Y3R1cmUsIHBy
b3BlcnR5TmFtZSwKLSAgICAgICAgICAgICAgICAgICAgaW52YWxpZE9mZnNldCwgY29uZGl0aW9u
U2V0LCBXVEZNb3ZlKHByb3RvdHlwZUFjY2Vzc0NoYWluKSwgaXNQcm94eSwgc2xvdC5jdXN0b21T
ZXR0ZXIoKSwgc2xvdC5iYXNlKCkgIT0gYmFzZVZhbHVlID8gc2xvdC5iYXNlKCkgOiBudWxscHRy
KTsKKyAgICAgICAgICAgICAgICAgICAgaW52YWxpZE9mZnNldCwgY29uZGl0aW9uU2V0LCBXVEZN
b3ZlKHByb3RvdHlwZUFjY2Vzc0NoYWluKSwgaXNQcm94eSwgRnVuY3Rpb25QdHI8T3BlcmF0aW9u
UHRyVGFnPihzbG90LmN1c3RvbVNldHRlcigpKSwgc2xvdC5iYXNlKCkgIT0gYmFzZVZhbHVlID8g
c2xvdC5iYXNlKCkgOiBudWxscHRyKTsKICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAg
ICAgICAgQVNTRVJUKHNsb3QuaXNDYWNoZWFibGVTZXR0ZXIoKSk7CiAgICAgICAgICAgICAgICAg
T2JqZWN0UHJvcGVydHlDb25kaXRpb25TZXQgY29uZGl0aW9uU2V0OwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RGF0YS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTExJbnREYXRhLmNwcAppbmRleCAwZGY0Y2EwYzJmYmViYWRhM2YyZjFjYzE5
MWUwNjJhOTNjYTMzZDkwLi5iZmE0ZjNiYzhlZTJiODlmNDFiOWNiOTg2MGY2ZjNiM2NjODFlNTIz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnREYXRhLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnREYXRhLmNwcApAQCAtNjIsOSAr
NjIsOSBAQCB2b2lkIGluaXRpYWxpemUoKQogI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkK
IAogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtT3Bjb2RlSURzICsgbnVtV2FzbU9wY29kZUlE
czsgKytpKSB7Ci0gICAgICAgIGdfanNjQ29uZmlnLmxsaW50Lm9wY29kZU1hcFtpXSA9IHRhZ0Nv
ZGVQdHIoZ19qc2NDb25maWcubGxpbnQub3Bjb2RlTWFwW2ldLCBCeXRlY29kZVB0clRhZyk7Ci0g
ICAgICAgIGdfanNjQ29uZmlnLmxsaW50Lm9wY29kZU1hcFdpZGUxNltpXSA9IHRhZ0NvZGVQdHIo
Z19qc2NDb25maWcubGxpbnQub3Bjb2RlTWFwV2lkZTE2W2ldLCBCeXRlY29kZVB0clRhZyk7Ci0g
ICAgICAgIGdfanNjQ29uZmlnLmxsaW50Lm9wY29kZU1hcFdpZGUzMltpXSA9IHRhZ0NvZGVQdHIo
Z19qc2NDb25maWcubGxpbnQub3Bjb2RlTWFwV2lkZTMyW2ldLCBCeXRlY29kZVB0clRhZyk7Cisg
ICAgICAgIGdfanNjQ29uZmlnLmxsaW50Lm9wY29kZU1hcFtpXSA9IHRhZ0NvZGVQdHI8Qnl0ZWNv
ZGVQdHJUYWc+KGdfanNjQ29uZmlnLmxsaW50Lm9wY29kZU1hcFtpXSk7CisgICAgICAgIGdfanNj
Q29uZmlnLmxsaW50Lm9wY29kZU1hcFdpZGUxNltpXSA9IHRhZ0NvZGVQdHI8Qnl0ZWNvZGVQdHJU
YWc+KGdfanNjQ29uZmlnLmxsaW50Lm9wY29kZU1hcFdpZGUxNltpXSk7CisgICAgICAgIGdfanNj
Q29uZmlnLmxsaW50Lm9wY29kZU1hcFdpZGUzMltpXSA9IHRhZ0NvZGVQdHI8Qnl0ZWNvZGVQdHJU
YWc+KGdfanNjQ29uZmlnLmxsaW50Lm9wY29kZU1hcFdpZGUzMltpXSk7CiAgICAgfQogCiAgICAg
QVNTRVJUKGxsaW50X3Rocm93X2Zyb21fc2xvd19wYXRoX3RyYW1wb2xpbmUgPCBVSU5UOF9NQVgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50UENSYW5nZXMu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFBDUmFuZ2VzLmgKaW5kZXggYWQ3
MTExYmUxMjRhNDI3ZDk0OTJiYjBmZTZhMDM4YmFiZjBkY2ZhOC4uNDRmNGVmOTEwM2Q3ZTIxNjI5
NTlkZmE1NjgyZWE2Y2IxYjUyODcxMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2xsaW50L0xMSW50UENSYW5nZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TExJbnRQQ1Jhbmdlcy5oCkBAIC00MCw4ICs0MCw4IEBAIGV4dGVybiAiQyIgewogQUxXQVlTX0lO
TElORSBib29sIGlzTExJbnRQQyh2b2lkKiBwYykKIHsKICAgICB1aW50cHRyX3QgcGNBc0ludCA9
IGJpdHdpc2VfY2FzdDx1aW50cHRyX3Q+KHBjKTsKLSAgICB1aW50cHRyX3QgbGxpbnRTdGFydCA9
IHVudGFnQ29kZVB0cjx1aW50cHRyX3Q+KGxsaW50UENSYW5nZVN0YXJ0LCBDRnVuY3Rpb25QdHJU
YWcpOwotICAgIHVpbnRwdHJfdCBsbGludEVuZCA9IHVudGFnQ29kZVB0cjx1aW50cHRyX3Q+KGxs
aW50UENSYW5nZUVuZCwgQ0Z1bmN0aW9uUHRyVGFnKTsKKyAgICB1aW50cHRyX3QgbGxpbnRTdGFy
dCA9IHVudGFnQ29kZVB0cjx1aW50cHRyX3QsIENGdW5jdGlvblB0clRhZz4obGxpbnRQQ1Jhbmdl
U3RhcnQpOworICAgIHVpbnRwdHJfdCBsbGludEVuZCA9IHVudGFnQ29kZVB0cjx1aW50cHRyX3Qs
IENGdW5jdGlvblB0clRhZz4obGxpbnRQQ1JhbmdlRW5kKTsKICAgICBSRUxFQVNFX0FTU0VSVChs
bGludFN0YXJ0IDwgbGxpbnRFbmQpOwogICAgIHJldHVybiBsbGludFN0YXJ0IDw9IHBjQXNJbnQg
JiYgcGNBc0ludCA8PSBsbGludEVuZDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxp
bnQvTExJbnRTbG93UGF0aHMuY3BwCmluZGV4IDQ4MDg2NTliNzI3ZDY0OTdlMGM2ODQ1ZDRmNWEx
NDNlMzg4NWNlMmQuLmNlNTkyNjlhOTM2N2Y5NjI4MTA5Mjc2Njg1ZDk0MTI3MTRiZjI4MzkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcApAQCAt
MTU1LDcgKzE1NSw3IEBAIGlubGluZSBKU1ZhbHVlIGdldE9wZXJhbmQoQ2FsbEZyYW1lKiBjYWxs
RnJhbWUsIFZpcnR1YWxSZWdpc3RlciBvcGVyYW5kKSB7IHJldHVyCiAgICAgfSB3aGlsZSAoZmFs
c2UpCiAKICNkZWZpbmUgTExJTlRfQ0FMTF9FTkRfSU1QTChjYWxsRnJhbWUsIGNhbGxUYXJnZXQs
IGNhbGxUYXJnZXRUYWcpIFwKLSAgICBMTElOVF9SRVRVUk5fVFdPKHJldGFnQ29kZVB0cigoY2Fs
bFRhcmdldCksIGNhbGxUYXJnZXRUYWcsIFNsb3dQYXRoUHRyVGFnKSwgKGNhbGxGcmFtZSkpCisg
ICAgTExJTlRfUkVUVVJOX1RXTygocmV0YWdDb2RlUHRyPGNhbGxUYXJnZXRUYWcsIFNsb3dQYXRo
UHRyVGFnPigoY2FsbFRhcmdldCkpKSwgKGNhbGxGcmFtZSkpCiAKICNkZWZpbmUgTExJTlRfQ0FM
TF9USFJPVyhnbG9iYWxPYmplY3QsIGV4Y2VwdGlvblRvVGhyb3cpIGRvIHsgICAgICAgICAgICAg
ICAgICAgXAogICAgICAgICBKU0dsb2JhbE9iamVjdCogX19jdF9nbG9iYWxPYmplY3QgPSAoZ2xv
YmFsT2JqZWN0KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXApAQCAtMTcyMiw3
ICsxNzIyLDcgQEAgaW5saW5lIFNsb3dQYXRoUmV0dXJuVHlwZSBzZXRVcENhbGwoQ2FsbEZyYW1l
KiBjYWxsZWVGcmFtZSwgQ29kZVNwZWNpYWxpemF0aW9uS2kKICAgICAgICAgICAgICAgICBjYWxs
TGlua0luZm8tPmxpbmsodm0sIGNhbGxlckNvZGVCbG9jaywgaW50ZXJuYWxGdW5jdGlvbiwgY29k
ZVB0cik7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGFzc2VydElzVGFnZ2VkV2l0aChj
b2RlUHRyLmV4ZWN1dGFibGVBZGRyZXNzKCksIEpTRW50cnlQdHJUYWcpOworICAgICAgICAgICAg
YXNzZXJ0SXNUYWdnZWRXaXRoPEpTRW50cnlQdHJUYWc+KGNvZGVQdHIuZXhlY3V0YWJsZUFkZHJl
c3MoKSk7CiAgICAgICAgICAgICBMTElOVF9DQUxMX1JFVFVSTihnbG9iYWxPYmplY3QsIGNhbGxl
ZUZyYW1lLCBjb2RlUHRyLmV4ZWN1dGFibGVBZGRyZXNzKCksIEpTRW50cnlQdHJUYWcpOwogICAg
ICAgICB9CiAgICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBoYW5kbGVIb3N0
Q2FsbChjYWxsZWVGcmFtZSwgY2FsbGVlQXNWYWx1ZSwga2luZCkpOwpAQCAtMTc2NSw3ICsxNzY1
LDcgQEAgaW5saW5lIFNsb3dQYXRoUmV0dXJuVHlwZSBzZXRVcENhbGwoQ2FsbEZyYW1lKiBjYWxs
ZWVGcmFtZSwgQ29kZVNwZWNpYWxpemF0aW9uS2kKICAgICAgICAgICAgIGNvZGVCbG9jay0+bGlu
a0luY29taW5nQ2FsbChjYWxsRnJhbWUsIGNhbGxMaW5rSW5mbyk7CiAgICAgfQogCi0gICAgYXNz
ZXJ0SXNUYWdnZWRXaXRoKGNvZGVQdHIuZXhlY3V0YWJsZUFkZHJlc3MoKSwgSlNFbnRyeVB0clRh
Zyk7CisgICAgYXNzZXJ0SXNUYWdnZWRXaXRoPEpTRW50cnlQdHJUYWc+KGNvZGVQdHIuZXhlY3V0
YWJsZUFkZHJlc3MoKSk7CiAgICAgTExJTlRfQ0FMTF9SRVRVUk4oZ2xvYmFsT2JqZWN0LCBjYWxs
ZWVGcmFtZSwgY29kZVB0ci5leGVjdXRhYmxlQWRkcmVzcygpLCBKU0VudHJ5UHRyVGFnKTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50VGh1bmtzLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFRodW5rcy5jcHAKaW5kZXggMDY2
ZTExZTRmZmMwZTAwMjA2Njc0YjA3ZDUzMTgxOTZkZDlkMmQ2My4uNzg1MzYwZjQ4NzYwNzFhZmQ2
NGFkMWNmZTFiYThiZWE4MzhhYjNkMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2xsaW50L0xMSW50VGh1bmtzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TExJbnRUaHVua3MuY3BwCkBAIC01Miw3ICs1Miw3IEBAIHN0YXRpYyBNYWNyb0Fzc2VtYmxlckNv
ZGVSZWY8dGFnPiBnZW5lcmF0ZVRodW5rV2l0aEp1bXBUbyhMTEludENvZGUgdGFyZ2V0LCBjb25z
CiB7CiAgICAgSlNJbnRlcmZhY2VKSVQgaml0OwogCi0gICAgYXNzZXJ0SXNUYWdnZWRXaXRoKHRh
cmdldCwgSlNFbnRyeVB0clRhZyk7CisgICAgYXNzZXJ0SXNUYWdnZWRXaXRoPEpTRW50cnlQdHJU
YWc+KHRhcmdldCk7CiAKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAgICAgQ0NhbGxIZWxwZXJz
OjpSZWdpc3RlcklEIHNjcmF0Y2ggPSBXYXNtOjp3YXNtQ2FsbGluZ0NvbnZlbnRpb24oKS5wcm9s
b2d1ZVNjcmF0Y2hHUFJzWzBdOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvTWFjaGluZUNvbnRleHQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01h
Y2hpbmVDb250ZXh0LmgKaW5kZXggZTU0NjYzM2I4ODQ1MmMwY2FjMjI0OThlZWFiZTNhYzM5NzA2
NDM5Mi4uZWFkOWNkZmQ3YjYzYmUwMjdkZjc4NGJhMDJlOWJiNjZiZDNiYjBhNiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFjaGluZUNvbnRleHQuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYWNoaW5lQ29udGV4dC5oCkBAIC00NTcsNyAr
NDU3LDcgQEAgaW5saW5lIE9wdGlvbmFsPE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxQbGF0Zm9ybVJl
Z2lzdGVyc1BDUHRyVGFnPj4gaW5zdHJ1Y3Rpb25Qb2kKICAgICAgICAgcmV0dXJuIG1ha2VPcHRp
b25hbChNYWNyb0Fzc2VtYmxlckNvZGVQdHI8UGxhdGZvcm1SZWdpc3RlcnNQQ1B0clRhZz4obnVs
bHB0cikpOwogICAgIGlmICghdXNlc1BvaW50ZXJUYWdnaW5nKCkpCiAgICAgICAgIHJldHVybiBt
YWtlT3B0aW9uYWwoTWFjcm9Bc3NlbWJsZXJDb2RlUHRyPFBsYXRmb3JtUmVnaXN0ZXJzUENQdHJU
YWc+KHZhbHVlKSk7Ci0gICAgaWYgKGlzVGFnZ2VkV2l0aCh2YWx1ZSwgUGxhdGZvcm1SZWdpc3Rl
cnNQQ1B0clRhZykpCisgICAgaWYgKGlzVGFnZ2VkV2l0aDxQbGF0Zm9ybVJlZ2lzdGVyc1BDUHRy
VGFnPih2YWx1ZSkpCiAgICAgICAgIHJldHVybiBtYWtlT3B0aW9uYWwoTWFjcm9Bc3NlbWJsZXJD
b2RlUHRyPFBsYXRmb3JtUmVnaXN0ZXJzUENQdHJUYWc+KHZhbHVlKSk7CiAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L05hdGl2ZUV4ZWN1dGFibGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0
aXZlRXhlY3V0YWJsZS5jcHAKaW5kZXggYWUwZmE5MWYzMDkyMGE5MzdkZjdiMTg4N2RlN2E2YTUx
ZDk4MmQ2MS4uZTkwMzlhNjg5NjZhZWNkNjUyZmI2ZDZjNzNiOTY5NzFmNjVjODJkNCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXhlY3V0YWJsZS5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXhlY3V0YWJsZS5jcHAK
QEAgLTYwLDEwICs2MCwxMCBAQCB2b2lkIE5hdGl2ZUV4ZWN1dGFibGU6OmZpbmlzaENyZWF0aW9u
KFZNJiB2bSwgUmVmPEpJVENvZGU+JiYgY2FsbFRodW5rLCBSZWY8SklUQwogICAgIG1faml0Q29k
ZUZvckNvbnN0cnVjdFdpdGhBcml0eUNoZWNrID0gbV9qaXRDb2RlRm9yQ29uc3RydWN0LT5hZGRy
ZXNzRm9yQ2FsbChNdXN0Q2hlY2tBcml0eSk7CiAgICAgbV9uYW1lID0gbmFtZTsKIAotICAgIGFz
c2VydElzVGFnZ2VkV2l0aChtX2ppdENvZGVGb3JDYWxsLT5hZGRyZXNzRm9yQ2FsbChBcml0eUNo
ZWNrTm90UmVxdWlyZWQpLmV4ZWN1dGFibGVBZGRyZXNzKCksIEpTRW50cnlQdHJUYWcpOwotICAg
IGFzc2VydElzVGFnZ2VkV2l0aChtX2ppdENvZGVGb3JDb25zdHJ1Y3QtPmFkZHJlc3NGb3JDYWxs
KEFyaXR5Q2hlY2tOb3RSZXF1aXJlZCkuZXhlY3V0YWJsZUFkZHJlc3MoKSwgSlNFbnRyeVB0clRh
Zyk7Ci0gICAgYXNzZXJ0SXNUYWdnZWRXaXRoKG1faml0Q29kZUZvckNhbGxXaXRoQXJpdHlDaGVj
ay5leGVjdXRhYmxlQWRkcmVzcygpLCBKU0VudHJ5UHRyVGFnKTsKLSAgICBhc3NlcnRJc1RhZ2dl
ZFdpdGgobV9qaXRDb2RlRm9yQ29uc3RydWN0V2l0aEFyaXR5Q2hlY2suZXhlY3V0YWJsZUFkZHJl
c3MoKSwgSlNFbnRyeVB0clRhZyk7CisgICAgYXNzZXJ0SXNUYWdnZWRXaXRoPEpTRW50cnlQdHJU
YWc+KG1faml0Q29kZUZvckNhbGwtPmFkZHJlc3NGb3JDYWxsKEFyaXR5Q2hlY2tOb3RSZXF1aXJl
ZCkuZXhlY3V0YWJsZUFkZHJlc3MoKSk7CisgICAgYXNzZXJ0SXNUYWdnZWRXaXRoPEpTRW50cnlQ
dHJUYWc+KG1faml0Q29kZUZvckNvbnN0cnVjdC0+YWRkcmVzc0ZvckNhbGwoQXJpdHlDaGVja05v
dFJlcXVpcmVkKS5leGVjdXRhYmxlQWRkcmVzcygpKTsKKyAgICBhc3NlcnRJc1RhZ2dlZFdpdGg8
SlNFbnRyeVB0clRhZz4obV9qaXRDb2RlRm9yQ2FsbFdpdGhBcml0eUNoZWNrLmV4ZWN1dGFibGVB
ZGRyZXNzKCkpOworICAgIGFzc2VydElzVGFnZ2VkV2l0aDxKU0VudHJ5UHRyVGFnPihtX2ppdENv
ZGVGb3JDb25zdHJ1Y3RXaXRoQXJpdHlDaGVjay5leGVjdXRhYmxlQWRkcmVzcygpKTsKIH0KIAog
TmF0aXZlRXhlY3V0YWJsZTo6TmF0aXZlRXhlY3V0YWJsZShWTSYgdm0sIFRhZ2dlZE5hdGl2ZUZ1
bmN0aW9uIGZ1bmN0aW9uLCBUYWdnZWROYXRpdmVGdW5jdGlvbiBjb25zdHJ1Y3RvcikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1B1dFByb3BlcnR5U2xvdC5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHV0UHJvcGVydHlTbG90LmgKaW5kZXggYzEw
ZmNkMWVjNTA1Njg2NjViNjZmOTIxNDZlODA3N2YxNTE5NzQ2Ni4uZjVjN2NjNjZlMDE5MzA1NmMy
ZWUwZjJmZTgyYzA5MzRiZDA5YjUzOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvUHV0UHJvcGVydHlTbG90LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUHV0UHJvcGVydHlTbG90LmgKQEAgLTY2LDE0ICs2NiwxNCBAQCBjbGFzcyBQdXRQcm9w
ZXJ0eVNsb3QgewogICAgICAgICBtX29mZnNldCA9IG9mZnNldDsKICAgICB9CiAKLSAgICB2b2lk
IHNldEN1c3RvbVZhbHVlKEpTT2JqZWN0KiBiYXNlLCBGdW5jdGlvblB0cjxPcGVyYXRpb25QdHJU
YWc+IGZ1bmN0aW9uKQorICAgIHZvaWQgc2V0Q3VzdG9tVmFsdWUoSlNPYmplY3QqIGJhc2UsIFB1
dFZhbHVlRnVuYyBmdW5jdGlvbikKICAgICB7CiAgICAgICAgIG1fdHlwZSA9IEN1c3RvbVZhbHVl
OwogICAgICAgICBtX2Jhc2UgPSBiYXNlOwogICAgICAgICBtX3B1dEZ1bmN0aW9uID0gZnVuY3Rp
b247CiAgICAgfQogCi0gICAgdm9pZCBzZXRDdXN0b21BY2Nlc3NvcihKU09iamVjdCogYmFzZSwg
RnVuY3Rpb25QdHI8T3BlcmF0aW9uUHRyVGFnPiBmdW5jdGlvbikKKyAgICB2b2lkIHNldEN1c3Rv
bUFjY2Vzc29yKEpTT2JqZWN0KiBiYXNlLCBQdXRWYWx1ZUZ1bmMgZnVuY3Rpb24pCiAgICAgewog
ICAgICAgICBtX3R5cGUgPSBDdXN0b21BY2Nlc3NvcjsKICAgICAgICAgbV9iYXNlID0gYmFzZTsK
QEAgLTk3LDcgKzk3LDcgQEAgY2xhc3MgUHV0UHJvcGVydHlTbG90IHsKICAgICAgICAgbV9pc1N0
cmljdE1vZGUgPSB2YWx1ZTsKICAgICB9CiAKLSAgICBGdW5jdGlvblB0cjxPcGVyYXRpb25QdHJU
YWc+IGN1c3RvbVNldHRlcigpIGNvbnN0CisgICAgUHV0VmFsdWVGdW5jIGN1c3RvbVNldHRlcigp
IGNvbnN0CiAgICAgewogICAgICAgICBBU1NFUlQoaXNDYWNoZWFibGVDdXN0b20oKSk7CiAgICAg
ICAgIHJldHVybiBtX3B1dEZ1bmN0aW9uOwpAQCAtMTM3LDcgKzEzNyw3IEBAIGNsYXNzIFB1dFBy
b3BlcnR5U2xvdCB7CiAgICAgVHlwZSBtX3R5cGU7CiAgICAgdWludDhfdCBtX2NvbnRleHQ7CiAg
ICAgQ2FjaGVhYmlsaXR5VHlwZSBtX2NhY2hlYWJpbGl0eTsKLSAgICBGdW5jdGlvblB0cjxPcGVy
YXRpb25QdHJUYWc+IG1fcHV0RnVuY3Rpb247CisgICAgUHV0VmFsdWVGdW5jIG1fcHV0RnVuY3Rp
b24geyBudWxscHRyIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21BaXJJUkdlbmVyYXRvci5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQWlySVJHZW5lcmF0b3IuY3BwCmluZGV4IGM1ZTBjNmRj
ODkzY2E2NjJlMjdhMWRhZDRlMzVmYzQ1Y2Y4NjI3NjguLjIyMmRmMDliMGQ0MTU1ODgyZTJmMGE5
ZWIxYTE1NzkwYmYwYTJiMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21BaXJJUkdlbmVyYXRvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbUFpcklSR2VuZXJhdG9yLmNwcApAQCAtNTk4LDcgKzU5OCw3IEBAIGNsYXNzIEFpcklSR2Vu
ZXJhdG9yIHsKICAgICAgICAgSW5zdCBpbnN0KENDYWxsLCBvcmlnaW4pOwogCiAgICAgICAgIFRt
cCBjYWxsZWUgPSBnNjQoKTsKLSAgICAgICAgYXBwZW5kKGJsb2NrLCBNb3ZlLCBBcmc6OmltbVB0
cih0YWdDRnVuY3Rpb25QdHI8dm9pZCo+KGZ1bmMsIE9wZXJhdGlvblB0clRhZykpLCBjYWxsZWUp
OworICAgICAgICBhcHBlbmQoYmxvY2ssIE1vdmUsIEFyZzo6aW1tUHRyKHRhZ0NGdW5jdGlvblB0
cjx2b2lkKiwgT3BlcmF0aW9uUHRyVGFnPihmdW5jKSksIGNhbGxlZSk7CiAgICAgICAgIGluc3Qu
YXJncy5hcHBlbmQoY2FsbGVlKTsKIAogICAgICAgICBpZiAocmVzdWx0KQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVNsb3dQYXRocy5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtU2xvd1BhdGhzLmNwcAppbmRleCAyMDA0M2ExZWE1MDVhOTVk
NGQ1ZjNlM2NlMzk1YzY5YWEyZTM1NThhLi45YzRiNTk1NDZlNmY5NjBhYjc1OGUzYTUzZjJiNjFk
YmI2NzRjMjFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2xv
d1BhdGhzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2xvd1BhdGhz
LmNwcApAQCAtNjQsNyArNjQsNyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIExMSW50IHsK
ICAgICB9IHdoaWxlIChmYWxzZSkKIAogI2RlZmluZSBXQVNNX0NBTExfUkVUVVJOKHRhcmdldElu
c3RhbmNlLCBjYWxsVGFyZ2V0LCBjYWxsVGFyZ2V0VGFnKSBkbyB7IFwKLSAgICAgICAgV0FTTV9S
RVRVUk5fVFdPKHJldGFnQ29kZVB0cihjYWxsVGFyZ2V0LCBjYWxsVGFyZ2V0VGFnLCBTbG93UGF0
aFB0clRhZyksIHRhcmdldEluc3RhbmNlKTsgXAorICAgICAgICBXQVNNX1JFVFVSTl9UV08oKHJl
dGFnQ29kZVB0cjxjYWxsVGFyZ2V0VGFnLCBTbG93UGF0aFB0clRhZz4oY2FsbFRhcmdldCkpLCB0
YXJnZXRJbnN0YW5jZSk7IFwKICAgICB9IHdoaWxlIChmYWxzZSkKIAogI2RlZmluZSBDT0RFX0JM
T0NLKCkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1SZWdpc3RlcnMuY3Bw
IGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1SZWdpc3RlcnMuY3BwCmluZGV4IDc3OWZhMmVkYmMy
MjZmMWQwZDE1NzgzMTgxZmQ3N2I4ZGM4NmFhYzIuLjEzNjk0MTc5MDczODMzZWFmOGFlNzJjN2Fi
ZWVhNjAwYTg2YjliMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtUmVnaXN0
ZXJzLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVJlZ2lzdGVycy5jcHAKQEAgLTM5
LDcgKzM5LDcgQEAgdm9pZCogdGhyZWFkU3RhdGVMUkludGVybmFsKFBsYXRmb3JtUmVnaXN0ZXJz
JiByZWdzKQogICAgIHZvaWQqIGNhbmRpZGF0ZUxSID0gYXJtX3RocmVhZF9zdGF0ZTY0X2dldF9s
cl9mcHRyKHJlZ3MpOwogCiAjaWYgVVNFKFVOVEFHR0VEX1RIUkVBRF9TVEFURV9QVFIpCi0gICAg
aWYgKGNhbmRpZGF0ZUxSICYmIGlzVGFnZ2VkV2l0aChjYW5kaWRhdGVMUiwgQ0Z1bmN0aW9uUHRy
VGFnKSkKKyAgICBpZiAoY2FuZGlkYXRlTFIgJiYgaXNUYWdnZWRXaXRoPENGdW5jdGlvblB0clRh
Zz4oY2FuZGlkYXRlTFIpKQogICAgICAgICByZXR1cm4gcmV0YWdDb2RlUHRyPENGdW5jdGlvblB0
clRhZywgUGxhdGZvcm1SZWdpc3RlcnNMUlB0clRhZz4oY2FuZGlkYXRlTFIpOwogICAgIGNhbmRp
ZGF0ZUxSID0gYml0d2lzZV9jYXN0PHZvaWQqPihhcm1fdGhyZWFkX3N0YXRlNjRfZ2V0X2xyKHJl
Z3MpKTsKICAgICBpZiAoIWNhbmRpZGF0ZUxSKQpAQCAtNTYsNyArNTYsNyBAQCB2b2lkKiB0aHJl
YWRTdGF0ZVBDSW50ZXJuYWwoUGxhdGZvcm1SZWdpc3RlcnMmIHJlZ3MpCiAgICAgdm9pZCogY2Fu
ZGlkYXRlUEMgPSBhcm1fdGhyZWFkX3N0YXRlNjRfZ2V0X3BjX2ZwdHIocmVncyk7CiAKICNpZiBV
U0UoVU5UQUdHRURfVEhSRUFEX1NUQVRFX1BUUikKLSAgICBpZiAoY2FuZGlkYXRlUEMgJiYgaXNU
YWdnZWRXaXRoKGNhbmRpZGF0ZVBDLCBDRnVuY3Rpb25QdHJUYWcpKQorICAgIGlmIChjYW5kaWRh
dGVQQyAmJiBpc1RhZ2dlZFdpdGg8Q0Z1bmN0aW9uUHRyVGFnPihjYW5kaWRhdGVQQykpCiAgICAg
ICAgIHJldHVybiByZXRhZ0NvZGVQdHI8Q0Z1bmN0aW9uUHRyVGFnLCBQbGF0Zm9ybVJlZ2lzdGVy
c1BDUHRyVGFnPihjYW5kaWRhdGVQQyk7CiAgICAgY2FuZGlkYXRlUEMgPSBiaXR3aXNlX2Nhc3Q8
dm9pZCo+KGFybV90aHJlYWRfc3RhdGU2NF9nZXRfcGMocmVncykpOwogICAgIGlmICghY2FuZGlk
YXRlUEMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QdHJUYWcuaCBiL1NvdXJjZS9XVEYv
d3RmL1B0clRhZy5oCmluZGV4IDY4ZWQ3ZDFkMjRmOTFhNDhlYjlhNmEwZjAyNTJhNzc1MGRkYWI1
NWYuLmQ4ZDI1MWEwMDg2NmQwZGUxYWM5ODY1N2YwYTY3NjVhYzM5ZmVhODkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL1B0clRhZy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1B0clRhZy5oCkBA
IC0xOTMsMjQgKzE5MywxMiBAQCBpbmxpbmUgUHRyVHlwZSB0YWdDb2RlUHRySW1wbChQdHJUeXBl
IHB0ciwgUHRyVGFnIHRhZykKICAgICByZXR1cm4gcHRyYXV0aF9zaWduX3VuYXV0aGVudGljYXRl
ZChwdHIsIHB0cmF1dGhfa2V5X3Byb2Nlc3NfZGVwZW5kZW50X2NvZGUsIHRhZyk7CiB9CiAKLXRl
bXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFB0clR5cGUsIHR5cGVuYW1lID0gc3RkOjplbmFi
bGVfaWZfdDxzdGQ6OmlzX3BvaW50ZXI8UHRyVHlwZT46OnZhbHVlICYmICFzdGQ6OmlzX3NhbWU8
VCwgUHRyVHlwZT46OnZhbHVlPj4KLWlubGluZSBUIHRhZ0NvZGVQdHIoUHRyVHlwZSBwdHIsIFB0
clRhZyB0YWcpCi17Ci0gICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxUPih0YWdDb2RlUHRySW1wbDxQ
dHJUYWdBY3Rpb246OkRlYnVnQXNzZXJ0PihwdHIsIHRhZykpOwotfQotCiB0ZW1wbGF0ZTx0eXBl
bmFtZSBULCBQdHJUYWcgdGFnLCB0eXBlbmFtZSBQdHJUeXBlLCB0eXBlbmFtZSA9IHN0ZDo6ZW5h
YmxlX2lmX3Q8c3RkOjppc19wb2ludGVyPFB0clR5cGU+Ojp2YWx1ZT4+CiBpbmxpbmUgVCB0YWdD
b2RlUHRyKFB0clR5cGUgcHRyKQogewogICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8VD4odGFnQ29k
ZVB0ckltcGw8UHRyVGFnQWN0aW9uOjpEZWJ1Z0Fzc2VydD4ocHRyLCB0YWcpKTsKIH0KIAotdGVt
cGxhdGU8dHlwZW5hbWUgUHRyVHlwZSwgdHlwZW5hbWUgPSBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6
aXNfcG9pbnRlcjxQdHJUeXBlPjo6dmFsdWU+PgotaW5saW5lIFB0clR5cGUgdGFnQ29kZVB0cihQ
dHJUeXBlIHB0ciwgUHRyVGFnIHRhZykKLXsKLSAgICByZXR1cm4gdGFnQ29kZVB0ckltcGw8UHRy
VGFnQWN0aW9uOjpEZWJ1Z0Fzc2VydD4ocHRyLCB0YWcpOwotfQotCiB0ZW1wbGF0ZTxQdHJUYWcg
dGFnLCB0eXBlbmFtZSBQdHJUeXBlLCB0eXBlbmFtZSA9IHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjpp
c19wb2ludGVyPFB0clR5cGU+Ojp2YWx1ZT4+CiBpbmxpbmUgUHRyVHlwZSB0YWdDb2RlUHRyKFB0
clR5cGUgcHRyKSB7IHJldHVybiB0YWdDb2RlUHRyKHB0ciwgdGFnKTsgfQogCkBAIC0yMzQsMjQg
KzIyMiwxMiBAQCBpbmxpbmUgUHRyVHlwZSB1bnRhZ0NvZGVQdHJJbXBsKFB0clR5cGUgcHRyLCBQ
dHJUYWcgdGFnKQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQs
IHR5cGVuYW1lIFB0clR5cGUsIHR5cGVuYW1lID0gc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX3Bv
aW50ZXI8UHRyVHlwZT46OnZhbHVlICYmICFzdGQ6OmlzX3NhbWU8VCwgUHRyVHlwZT46OnZhbHVl
Pj4KLWlubGluZSBUIHVudGFnQ29kZVB0cihQdHJUeXBlIHB0ciwgUHRyVGFnIHRhZykKLXsKLSAg
ICByZXR1cm4gYml0d2lzZV9jYXN0PFQ+KHVudGFnQ29kZVB0ckltcGw8UHRyVGFnQWN0aW9uOjpE
ZWJ1Z0Fzc2VydD4ocHRyLCB0YWcpKTsKLX0KLQogdGVtcGxhdGU8dHlwZW5hbWUgVCwgUHRyVGFn
IHRhZywgdHlwZW5hbWUgUHRyVHlwZSwgdHlwZW5hbWUgPSBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6
aXNfcG9pbnRlcjxQdHJUeXBlPjo6dmFsdWU+PgogaW5saW5lIFQgdW50YWdDb2RlUHRyKFB0clR5
cGUgcHRyKQogewogICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8VD4odW50YWdDb2RlUHRySW1wbDxQ
dHJUYWdBY3Rpb246OkRlYnVnQXNzZXJ0PihwdHIsIHRhZykpOwogfQogCi10ZW1wbGF0ZTx0eXBl
bmFtZSBQdHJUeXBlLCB0eXBlbmFtZSA9IHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19wb2ludGVy
PFB0clR5cGU+Ojp2YWx1ZT4+Ci1pbmxpbmUgUHRyVHlwZSB1bnRhZ0NvZGVQdHIoUHRyVHlwZSBw
dHIsIFB0clRhZyB0YWcpCi17Ci0gICAgcmV0dXJuIHVudGFnQ29kZVB0ckltcGw8UHRyVGFnQWN0
aW9uOjpEZWJ1Z0Fzc2VydD4ocHRyLCB0YWcpOwotfQotCiB0ZW1wbGF0ZTxQdHJUYWcgdGFnLCB0
eXBlbmFtZSBQdHJUeXBlLCB0eXBlbmFtZSA9IHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19wb2lu
dGVyPFB0clR5cGU+Ojp2YWx1ZT4+CiBpbmxpbmUgUHRyVHlwZSB1bnRhZ0NvZGVQdHIoUHRyVHlw
ZSBwdHIpIHsgcmV0dXJuIHVudGFnQ29kZVB0cihwdHIsIHRhZyk7IH0KIApAQCAtMzEyLDMxICsy
ODgsMTkgQEAgaW5saW5lIFB0clR5cGUgdGFnQ0Z1bmN0aW9uUHRySW1wbChQdHJUeXBlIHB0ciwg
UHRyVGFnIHRhZykKICAgICByZXR1cm4gcmV0YWdDb2RlUHRySW1wbDx0YWdBY3Rpb24+KHB0ciwg
Q0Z1bmN0aW9uUHRyVGFnLCB0YWcpOwogfQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFt
ZSBQdHJUeXBlLCB0eXBlbmFtZSA9IHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19wb2ludGVyPFB0
clR5cGU+Ojp2YWx1ZSAmJiAhc3RkOjppc19zYW1lPFQsIFB0clR5cGU+Ojp2YWx1ZT4+Ci1pbmxp
bmUgVCB0YWdDRnVuY3Rpb25QdHIoUHRyVHlwZSBwdHIsIFB0clRhZyB0YWcpCi17Ci0gICAgcmV0
dXJuIGJpdHdpc2VfY2FzdDxUPih0YWdDRnVuY3Rpb25QdHJJbXBsPFB0clRhZ0FjdGlvbjo6RGVi
dWdBc3NlcnQ+KHB0ciwgdGFnKSk7Ci19Ci0KIHRlbXBsYXRlPHR5cGVuYW1lIFQsIFB0clRhZyB0
YWcsIHR5cGVuYW1lIFB0clR5cGUsIHR5cGVuYW1lID0gc3RkOjplbmFibGVfaWZfdDxzdGQ6Omlz
X3BvaW50ZXI8UHRyVHlwZT46OnZhbHVlPj4KIGlubGluZSBUIHRhZ0NGdW5jdGlvblB0cihQdHJU
eXBlIHB0cikKIHsKICAgICByZXR1cm4gYml0d2lzZV9jYXN0PFQ+KHRhZ0NGdW5jdGlvblB0cklt
cGw8UHRyVGFnQWN0aW9uOjpEZWJ1Z0Fzc2VydD4ocHRyLCB0YWcpKTsKIH0KIAotdGVtcGxhdGU8
dHlwZW5hbWUgUHRyVHlwZSwgdHlwZW5hbWUgPSBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfcG9p
bnRlcjxQdHJUeXBlPjo6dmFsdWU+PgotaW5saW5lIFB0clR5cGUgdGFnQ0Z1bmN0aW9uUHRyKFB0
clR5cGUgcHRyLCBQdHJUYWcgdGFnKQotewotICAgIHJldHVybiB0YWdDRnVuY3Rpb25QdHJJbXBs
PFB0clRhZ0FjdGlvbjo6RGVidWdBc3NlcnQ+KHB0ciwgdGFnKTsKLX0KLQogdGVtcGxhdGU8UHRy
VGFnIHRhZywgdHlwZW5hbWUgUHRyVHlwZSwgdHlwZW5hbWUgPSBzdGQ6OmVuYWJsZV9pZl90PHN0
ZDo6aXNfcG9pbnRlcjxQdHJUeXBlPjo6dmFsdWU+PgotaW5saW5lIFB0clR5cGUgdGFnQ0Z1bmN0
aW9uUHRyKFB0clR5cGUgcHRyKSB7IHJldHVybiB0YWdDRnVuY3Rpb25QdHIocHRyLCB0YWcpOyB9
CitpbmxpbmUgUHRyVHlwZSB0YWdDRnVuY3Rpb25QdHIoUHRyVHlwZSBwdHIpIHsgcmV0dXJuIHRh
Z0NGdW5jdGlvblB0ckltcGw8UHRyVGFnQWN0aW9uOjpEZWJ1Z0Fzc2VydD4ocHRyLCB0YWcpOyB9
CiAKIHRlbXBsYXRlPFB0clRhZyBuZXdUYWcsIHR5cGVuYW1lIEZ1bmN0aW9uVHlwZSwgY2xhc3Mg
PSB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZjxzdGQ6OmlzX3BvaW50ZXI8RnVuY3Rpb25UeXBlPjo6
dmFsdWUgJiYgc3RkOjppc19mdW5jdGlvbjx0eXBlbmFtZSBzdGQ6OnJlbW92ZV9wb2ludGVyPEZ1
bmN0aW9uVHlwZT46OnR5cGU+Ojp2YWx1ZT46OnR5cGU+CiBpbmxpbmUgRnVuY3Rpb25UeXBlIHRh
Z0NGdW5jdGlvbihGdW5jdGlvblR5cGUgZnVuYykKIHsKLSAgICBBU1NFUlQoaXNUYWdnZWRXaXRo
KGZ1bmMsIENGdW5jdGlvblB0clRhZykpOworICAgIGFzc2VydElzVGFnZ2VkV2l0aDxDRnVuY3Rp
b25QdHJUYWc+KGZ1bmMpOwogICAgIEFTU0VSVChuZXdUYWcgIT0gQ0Z1bmN0aW9uUHRyVGFnKTsK
ICAgICByZXR1cm4gcHRyYXV0aF9hdXRoX2FuZF9yZXNpZ24oZnVuYywgcHRyYXV0aF9rZXlfZnVu
Y3Rpb25fcG9pbnRlciwgMCwgcHRyYXV0aF9rZXlfcHJvY2Vzc19kZXBlbmRlbnRfY29kZSwgbmV3
VGFnKTsKIH0KQEAgLTM1NiwxMiArMzIwLDYgQEAgaW5saW5lIFB0clR5cGUgdW50YWdDRnVuY3Rp
b25QdHJJbXBsKFB0clR5cGUgcHRyLCBQdHJUYWcgdGFnKQogICAgIHJldHVybiByZXRhZ0NvZGVQ
dHJJbXBsPHRhZ0FjdGlvbj4ocHRyLCB0YWcsIENGdW5jdGlvblB0clRhZyk7CiB9CiAKLXRlbXBs
YXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFB0clR5cGUsIHR5cGVuYW1lID0gc3RkOjplbmFibGVf
aWZfdDxzdGQ6OmlzX3BvaW50ZXI8UHRyVHlwZT46OnZhbHVlICYmICFzdGQ6OmlzX3NhbWU8VCwg
UHRyVHlwZT46OnZhbHVlPj4KLWlubGluZSBUIHVudGFnQ0Z1bmN0aW9uUHRyKFB0clR5cGUgcHRy
LCBQdHJUYWcgdGFnKQotewotICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8VD4odW50YWdDRnVuY3Rp
b25QdHJJbXBsPFB0clRhZ0FjdGlvbjo6RGVidWdBc3NlcnQ+KHB0ciwgdGFnKSk7Ci19Ci0KIHRl
bXBsYXRlPHR5cGVuYW1lIFQsIFB0clRhZyB0YWcsIHR5cGVuYW1lIFB0clR5cGUsIHR5cGVuYW1l
ID0gc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX3BvaW50ZXI8UHRyVHlwZT46OnZhbHVlPj4KIGlu
bGluZSBUIHVudGFnQ0Z1bmN0aW9uUHRyKFB0clR5cGUgcHRyKQogewpAQCAtMzc0LDE3ICszMzIs
MTEgQEAgaW5saW5lIFQgdW50YWdDRnVuY3Rpb25QdHIoUHRyVHlwZSBwdHIpCiAgICAgcmV0dXJu
IGJpdHdpc2VfY2FzdDxUPih1bnRhZ0NGdW5jdGlvblB0ckltcGw8dGFnQWN0aW9uPihwdHIsIHRh
ZykpOwogfQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBQdHJUeXBlLCB0eXBlbmFtZSA9IHN0ZDo6ZW5h
YmxlX2lmX3Q8c3RkOjppc19wb2ludGVyPFB0clR5cGU+Ojp2YWx1ZT4+Ci1pbmxpbmUgUHRyVHlw
ZSB1bnRhZ0NGdW5jdGlvblB0cihQdHJUeXBlIHB0ciwgUHRyVGFnIHRhZykKLXsKLSAgICByZXR1
cm4gdW50YWdDRnVuY3Rpb25QdHJJbXBsPFB0clRhZ0FjdGlvbjo6RGVidWdBc3NlcnQ+KHB0ciwg
dGFnKTsKLX0KLQogdGVtcGxhdGU8UHRyVGFnIHRhZywgdHlwZW5hbWUgUHRyVHlwZSwgdHlwZW5h
bWUgPSBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfcG9pbnRlcjxQdHJUeXBlPjo6dmFsdWU+Pgot
aW5saW5lIFB0clR5cGUgdW50YWdDRnVuY3Rpb25QdHIoUHRyVHlwZSBwdHIpIHsgcmV0dXJuIHVu
dGFnQ0Z1bmN0aW9uUHRyKHB0ciwgdGFnKTsgfQoraW5saW5lIFB0clR5cGUgdW50YWdDRnVuY3Rp
b25QdHIoUHRyVHlwZSBwdHIpIHsgcmV0dXJuIHVudGFnQ0Z1bmN0aW9uUHRySW1wbDxQdHJUYWdB
Y3Rpb246OkRlYnVnQXNzZXJ0PihwdHIsIHRhZyk7IH0KIAotdGVtcGxhdGUgPHR5cGVuYW1lIElu
dFR5cGU+Ci1pbmxpbmUgSW50VHlwZSB0YWdJbnQoSW50VHlwZSBwdHJJbnQsIFB0clRhZyB0YWcp
Cit0ZW1wbGF0ZSA8UHRyVGFnIHRhZywgdHlwZW5hbWUgSW50VHlwZT4KK2lubGluZSBJbnRUeXBl
IHRhZ0ludChJbnRUeXBlIHB0ckludCkKIHsKICAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihJbnRU
eXBlKSA9PSBzaXplb2YodWludHB0cl90KSwgIiIpOwogICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8
SW50VHlwZT4ocHRyYXV0aF9zaWduX3VuYXV0aGVudGljYXRlZChiaXR3aXNlX2Nhc3Q8dm9pZCo+
KHB0ckludCksIHB0cmF1dGhfa2V5X3Byb2Nlc3NfZGVwZW5kZW50X2RhdGEsIHRhZykpOwpAQCAt
NDI1LDggKzM3Nyw4IEBAIHZvaWQgYXNzZXJ0SXNOdWxsT3JUYWdnZWQoUHRyVHlwZSBwdHIpCiAg
ICAgICAgIGFzc2VydElzVGFnZ2VkKHB0cik7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFB0clR5
cGU+Ci1ib29sIGlzVGFnZ2VkV2l0aChQdHJUeXBlIHZhbHVlLCBQdHJUYWcgdGFnKQordGVtcGxh
dGU8UHRyVGFnIHRhZywgdHlwZW5hbWUgUHRyVHlwZT4KK2Jvb2wgaXNUYWdnZWRXaXRoKFB0clR5
cGUgdmFsdWUpCiB7CiAgICAgdm9pZCogcHRyID0gYml0d2lzZV9jYXN0PHZvaWQqPih2YWx1ZSk7
CiAgICAgaWYgKHRhZyA9PSBOb1B0clRhZykKQEAgLTQzNCwxNyArMzg2LDE3IEBAIGJvb2wgaXNU
YWdnZWRXaXRoKFB0clR5cGUgdmFsdWUsIFB0clRhZyB0YWcpCiAgICAgcmV0dXJuIHB0ciA9PSB0
YWdDb2RlUHRySW1wbDxQdHJUYWdBY3Rpb246Ok5vQXNzZXJ0PihyZW1vdmVDb2RlUHRyVGFnKHB0
ciksIHRhZyk7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFB0clR5cGU+Ci12b2lkIGFzc2VydElz
VGFnZ2VkV2l0aChQdHJUeXBlIHZhbHVlLCBQdHJUYWcgdGFnKQordGVtcGxhdGU8UHRyVGFnIHRh
ZywgdHlwZW5hbWUgUHRyVHlwZT4KK3ZvaWQgYXNzZXJ0SXNUYWdnZWRXaXRoKFB0clR5cGUgdmFs
dWUpCiB7CiAgICAgV1RGX1BUUlRBR19BU1NFUlQoUHRyVGFnQWN0aW9uOjpEZWJ1Z0Fzc2VydCwg
dmFsdWUsIHRhZywgaXNUYWdnZWRXaXRoKHZhbHVlLCB0YWcpKTsKIH0KIAotdGVtcGxhdGU8dHlw
ZW5hbWUgUHRyVHlwZT4KLXZvaWQgYXNzZXJ0SXNOdWxsT3JUYWdnZWRXaXRoKFB0clR5cGUgcHRy
LCBQdHJUYWcgdGFnKQordGVtcGxhdGU8UHRyVGFnIHRhZywgdHlwZW5hbWUgUHRyVHlwZT4KK3Zv
aWQgYXNzZXJ0SXNOdWxsT3JUYWdnZWRXaXRoKFB0clR5cGUgcHRyKQogewogICAgIGlmIChwdHIp
Ci0gICAgICAgIGFzc2VydElzVGFnZ2VkV2l0aChwdHIsIHRhZyk7CisgICAgICAgIGFzc2VydElz
VGFnZ2VkV2l0aDx0YWc+KHB0cik7CiB9CiAKIGlubGluZSBib29sIHVzZXNQb2ludGVyVGFnZ2lu
ZygpIHsgcmV0dXJuIHRydWU7IH0KQEAgLTQ5NCwyNyArNDQ2LDE1IEBAIGlubGluZSBUKiByZXRh
Z0FycmF5UHRyKFQqIHB0ciwgc2l6ZV90LCBzaXplX3QpCiB9CiAKIAotdGVtcGxhdGU8dHlwZW5h
bWUgVCwgdHlwZW5hbWUgUHRyVHlwZSwgdHlwZW5hbWUgPSBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6
aXNfcG9pbnRlcjxQdHJUeXBlPjo6dmFsdWUgJiYgIXN0ZDo6aXNfc2FtZTxULCBQdHJUeXBlPjo6
dmFsdWU+PgotY29uc3RleHByIFQgdGFnQ29kZVB0cihQdHJUeXBlIHB0ciwgUHRyVGFnKSB7IHJl
dHVybiBiaXR3aXNlX2Nhc3Q8VD4ocHRyKTsgfQotCiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBQdHJU
YWcsIHR5cGVuYW1lIFB0clR5cGUsIHR5cGVuYW1lID0gc3RkOjplbmFibGVfaWZfdDxzdGQ6Omlz
X3BvaW50ZXI8UHRyVHlwZT46OnZhbHVlPj4KIGlubGluZSBUIHRhZ0NvZGVQdHIoUHRyVHlwZSBw
dHIpIHsgcmV0dXJuIGJpdHdpc2VfY2FzdDxUPihwdHIpOyB9CiAKLXRlbXBsYXRlPHR5cGVuYW1l
IFB0clR5cGUsIHR5cGVuYW1lID0gc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX3BvaW50ZXI8UHRy
VHlwZT46OnZhbHVlPj4KLWNvbnN0ZXhwciBQdHJUeXBlIHRhZ0NvZGVQdHIoUHRyVHlwZSBwdHIs
IFB0clRhZykgeyByZXR1cm4gcHRyOyB9Ci0KIHRlbXBsYXRlPFB0clRhZywgdHlwZW5hbWUgUHRy
VHlwZSwgdHlwZW5hbWUgPSBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfcG9pbnRlcjxQdHJUeXBl
Pjo6dmFsdWU+PgogaW5saW5lIFB0clR5cGUgdGFnQ29kZVB0cihQdHJUeXBlIHB0cikgeyByZXR1
cm4gcHRyOyB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFB0clR5cGUsIHR5cGVu
YW1lID0gc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX3BvaW50ZXI8UHRyVHlwZT46OnZhbHVlICYm
ICFzdGQ6OmlzX3NhbWU8VCwgUHRyVHlwZT46OnZhbHVlPj4KLWNvbnN0ZXhwciBUIHVudGFnQ29k
ZVB0cihQdHJUeXBlIHB0ciwgUHRyVGFnKSB7IHJldHVybiBiaXR3aXNlX2Nhc3Q8VD4ocHRyKTsg
fQotCiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBQdHJUYWcsIHR5cGVuYW1lIFB0clR5cGUsIHR5cGVu
YW1lID0gc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX3BvaW50ZXI8UHRyVHlwZT46OnZhbHVlPj4K
IGlubGluZSBUIHVudGFnQ29kZVB0cihQdHJUeXBlIHB0cikgIHsgcmV0dXJuIGJpdHdpc2VfY2Fz
dDxUPihwdHIpOyB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFB0clR5cGUsIHR5cGVuYW1lID0gc3Rk
OjplbmFibGVfaWZfdDxzdGQ6OmlzX3BvaW50ZXI8UHRyVHlwZT46OnZhbHVlPj4KLWNvbnN0ZXhw
ciBQdHJUeXBlIHVudGFnQ29kZVB0cihQdHJUeXBlIHB0ciwgUHRyVGFnKSB7IHJldHVybiBwdHI7
IH0KLQogdGVtcGxhdGU8UHRyVGFnLCB0eXBlbmFtZSBQdHJUeXBlLCB0eXBlbmFtZSA9IHN0ZDo6
ZW5hYmxlX2lmX3Q8c3RkOjppc19wb2ludGVyPFB0clR5cGU+Ojp2YWx1ZT4+CiBpbmxpbmUgUHRy
VHlwZSB1bnRhZ0NvZGVQdHIoUHRyVHlwZSBwdHIpIHsgcmV0dXJuIHB0cjsgfQogCkBAIC01MzYs
MTUgKzQ3Niw5IEBAIGNvbnN0ZXhwciBUIHJlbW92ZUNvZGVQdHJUYWcoUHRyVHlwZSBwdHIpIHsg
cmV0dXJuIGJpdHdpc2VfY2FzdDxUPihwdHIpOyB9CiB0ZW1wbGF0ZTx0eXBlbmFtZSBQdHJUeXBl
LCB0eXBlbmFtZSA9IHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19wb2ludGVyPFB0clR5cGU+Ojp2
YWx1ZT4+CiBjb25zdGV4cHIgUHRyVHlwZSByZW1vdmVDb2RlUHRyVGFnKFB0clR5cGUgcHRyKSB7
IHJldHVybiBwdHI7IH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgUHRyVHlwZSwg
dHlwZW5hbWUgPSBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfcG9pbnRlcjxQdHJUeXBlPjo6dmFs
dWUgJiYgIXN0ZDo6aXNfc2FtZTxULCBQdHJUeXBlPjo6dmFsdWU+PgotaW5saW5lIFQgdGFnQ0Z1
bmN0aW9uUHRyKFB0clR5cGUgcHRyLCBQdHJUYWcpIHsgcmV0dXJuIGJpdHdpc2VfY2FzdDxUPihw
dHIpOyB9Ci0KIHRlbXBsYXRlPHR5cGVuYW1lIFQsIFB0clRhZywgdHlwZW5hbWUgUHRyVHlwZSwg
dHlwZW5hbWUgPSBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfcG9pbnRlcjxQdHJUeXBlPjo6dmFs
dWU+PgogaW5saW5lIFQgdGFnQ0Z1bmN0aW9uUHRyKFB0clR5cGUgcHRyKSB7IHJldHVybiBiaXR3
aXNlX2Nhc3Q8VD4ocHRyKTsgfQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBQdHJUeXBlLCB0eXBlbmFt
ZSA9IHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19wb2ludGVyPFB0clR5cGU+Ojp2YWx1ZT4+Ci1p
bmxpbmUgUHRyVHlwZSB0YWdDRnVuY3Rpb25QdHIoUHRyVHlwZSBwdHIsIFB0clRhZykgeyByZXR1
cm4gcHRyOyB9Ci0KIHRlbXBsYXRlPFB0clRhZywgdHlwZW5hbWUgUHRyVHlwZSwgdHlwZW5hbWUg
PSBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfcG9pbnRlcjxQdHJUeXBlPjo6dmFsdWU+PgogaW5s
aW5lIFB0clR5cGUgdGFnQ0Z1bmN0aW9uUHRyKFB0clR5cGUgcHRyKSB7IHJldHVybiBwdHI7IH0K
IApAQCAtNTU3LDIwICs0OTEsMTQgQEAgaW5saW5lIFJldHVyblR5cGUgdGFnQ0Z1bmN0aW9uKEZ1
bmN0aW9uVHlwZSBmdW5jKQogICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8UmV0dXJuVHlwZT4odGFn
Q0Z1bmN0aW9uPG5ld1RhZz4oZnVuYykpOwogfQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBl
bmFtZSBQdHJUeXBlLCB0eXBlbmFtZSA9IHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19wb2ludGVy
PFB0clR5cGU+Ojp2YWx1ZSAmJiAhc3RkOjppc19zYW1lPFQsIFB0clR5cGU+Ojp2YWx1ZT4+Ci1p
bmxpbmUgVCB1bnRhZ0NGdW5jdGlvblB0cihQdHJUeXBlIHB0ciwgUHRyVGFnKSB7IHJldHVybiBi
aXR3aXNlX2Nhc3Q8VD4ocHRyKTsgfQotCiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBQdHJUYWcsIHR5
cGVuYW1lIFB0clR5cGUsIHR5cGVuYW1lID0gc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX3BvaW50
ZXI8UHRyVHlwZT46OnZhbHVlPj4KIGlubGluZSBUIHVudGFnQ0Z1bmN0aW9uUHRyKFB0clR5cGUg
cHRyKSB7IHJldHVybiBiaXR3aXNlX2Nhc3Q8VD4ocHRyKTsgfQogCi10ZW1wbGF0ZTx0eXBlbmFt
ZSBQdHJUeXBlLCB0eXBlbmFtZSA9IHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19wb2ludGVyPFB0
clR5cGU+Ojp2YWx1ZT4+Ci1pbmxpbmUgUHRyVHlwZSB1bnRhZ0NGdW5jdGlvblB0cihQdHJUeXBl
IHB0ciwgUHRyVGFnKSB7IHJldHVybiBwdHI7IH0KLQogdGVtcGxhdGU8UHRyVGFnLCB0eXBlbmFt
ZSBQdHJUeXBlLCB0eXBlbmFtZSA9IHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19wb2ludGVyPFB0
clR5cGU+Ojp2YWx1ZT4+CiBpbmxpbmUgUHRyVHlwZSB1bnRhZ0NGdW5jdGlvblB0cihQdHJUeXBl
IHB0cikgeyByZXR1cm4gcHRyOyB9CiAKLXRlbXBsYXRlIDx0eXBlbmFtZSBJbnRUeXBlPgotaW5s
aW5lIEludFR5cGUgdGFnSW50KEludFR5cGUgcHRySW50LCBQdHJUYWcpCit0ZW1wbGF0ZSA8UHRy
VGFnLCB0eXBlbmFtZSBJbnRUeXBlPgoraW5saW5lIEludFR5cGUgdGFnSW50KEludFR5cGUgcHRy
SW50KQogewogICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKEludFR5cGUpID09IHNpemVvZih1aW50
cHRyX3QpLCAiIik7CiAgICAgcmV0dXJuIHB0ckludDsKQEAgLTU4MywxMCArNTExLDEwIEBAIHRl
bXBsYXRlPHR5cGVuYW1lIFB0clR5cGU+IHZvaWQgYXNzZXJ0SXNOb3RUYWdnZWQoUHRyVHlwZSkg
eyB9CiB0ZW1wbGF0ZTx0eXBlbmFtZSBQdHJUeXBlPiB2b2lkIGFzc2VydElzVGFnZ2VkKFB0clR5
cGUpIHsgfQogdGVtcGxhdGU8dHlwZW5hbWUgUHRyVHlwZT4gdm9pZCBhc3NlcnRJc051bGxPclRh
Z2dlZChQdHJUeXBlKSB7IH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgUHRyVHlwZT4gYm9vbCBpc1Rh
Z2dlZFdpdGgoUHRyVHlwZSwgUHRyVGFnKSB7IHJldHVybiBmYWxzZTsgfQordGVtcGxhdGU8UHRy
VGFnLCB0eXBlbmFtZSBQdHJUeXBlPiBib29sIGlzVGFnZ2VkV2l0aChQdHJUeXBlKSB7IHJldHVy
biBmYWxzZTsgfQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBQdHJUeXBlPiB2b2lkIGFzc2VydElzVGFn
Z2VkV2l0aChQdHJUeXBlLCBQdHJUYWcpIHsgfQotdGVtcGxhdGU8dHlwZW5hbWUgUHRyVHlwZT4g
dm9pZCBhc3NlcnRJc051bGxPclRhZ2dlZFdpdGgoUHRyVHlwZSwgUHRyVGFnKSB7IH0KK3RlbXBs
YXRlPFB0clRhZywgdHlwZW5hbWUgUHRyVHlwZT4gdm9pZCBhc3NlcnRJc1RhZ2dlZFdpdGgoUHRy
VHlwZSkgeyB9Cit0ZW1wbGF0ZTxQdHJUYWcsIHR5cGVuYW1lIFB0clR5cGU+IHZvaWQgYXNzZXJ0
SXNOdWxsT3JUYWdnZWRXaXRoKFB0clR5cGUpIHsgfQogCiBpbmxpbmUgYm9vbCB1c2VzUG9pbnRl
clRhZ2dpbmcoKSB7IHJldHVybiBmYWxzZTsgfQogCg==
</data>
<flag name="review"
          id="426856"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>