<?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>163224</bug_id>
          
          <creation_ts>2016-10-10 11:02:56 -0700</creation_ts>
          <short_desc>[DOMJIT] DOMJIT::Patchpoint should have a way to receive constant folded arguments</short_desc>
          <delta_ts>2016-10-11 22:33:15 -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>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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>163005</dependson>
          <blocked>162544</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1238387</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-10-10 11:02:56 -0700</bug_when>
    <thetext>DOMJIT::Patchpoint for CallDOM takes JSGlobalObject to use it when creating wrapper object.
Currently, DOMJIT::Patchpoint always receives it as GPRReg. However, sometimes, we can get a constant value for that (I&apos;m now assuming `document.getElementById(&quot;...&quot;)`)
In that case, we can emit more efficient code since we can drop some of checks (&quot;World is normal&quot; check).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1238388</commentid>
    <comment_count>1</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-10-10 11:04:00 -0700</bug_when>
    <thetext>Currently, I&apos;m considering the design like,

DOMJIT::Value = DOMJIT::Reg | JSValue (constant)
DOMJIT::Reg = GPRReg | FPRReg | JSValueRegs

And DOMJIT::PatchpointParams stores DOMJIT::Value instead of DOMJIT::Reg.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239007</commentid>
    <comment_count>2</comment_count>
      <attachid>291297</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-10-11 14:21:43 -0700</bug_when>
    <thetext>Created attachment 291297
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239009</commentid>
    <comment_count>3</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-10-11 14:23:15 -0700</bug_when>
    <thetext>In the final design, DOMJIT::Value becomes,

DOMJIT::Value = DOMJIT::Reg x JSValue (constant)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239014</commentid>
    <comment_count>4</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-10-11 14:30:57 -0700</bug_when>
    <thetext>LGTM too</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239017</commentid>
    <comment_count>5</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-10-11 14:35:55 -0700</bug_when>
    <thetext>Committed r207166: &lt;http://trac.webkit.org/changeset/207166&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>291297</attachid>
            <date>2016-10-11 14:21:43 -0700</date>
            <delta_ts>2016-10-11 14:24:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-163224-20161011141820.patch</filename>
            <type>text/plain</type>
            <size>20310</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA3MTU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
ZDAwMDllNGI4OWMyMmQyMDg4OTU3NGY0ZjlhZDgyMmUyMGI3MjljLi4zY2RlMzVmYzlhM2Q1OGM0
NDM3Y2I2Y2NkMzdiY2NjM2NjNTg4NGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OSBAQAorMjAxNi0xMC0xMSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbRE9NSklUXSBET01KSVQ6OlBhdGNocG9pbnQgc2hvdWxkIGhhdmUg
YSB3YXkgdG8gcmVjZWl2ZSBjb25zdGFudCBmb2xkZWQgYXJndW1lbnRzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjMyMjQKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZSB1c2UgdGhlIEdldEdsb2JhbE9i
amVjdCBERkcgbm9kZSB0byByZXRyaWV2ZSBhIGdsb2JhbCBvYmplY3QgZnJvbSBhIERPTSBub2Rl
LgorICAgICAgICBUaGlzIGdsb2JhbCBvYmplY3QgaXMgbmVjZXNzYXJ5IHRvIGNoZWNrIHdoZXRo
ZXIgdGhlIHdvcmxkIGlzIG5vcm1hbCBiZWZvcmUgZW50ZXJpbmcKKyAgICAgICAgdGhlIGZhc3Qg
cGF0aCBvZiBsb29raW5nIHVwIHRoZSBET00gd3JhcHBlciBjYWNoZS4KKyAgICAgICAgV2UgY2Fu
IHNvbWV0aW1lcyBjb25zdGFudC1mb2xkIHRoaXMgR2V0R2xvYmFsT2JqZWN0LiBGb3IgZXhhbXBs
ZSwgaWYgd2UgcGVyZm9ybWVkCisgICAgICAgIENoZWNrU3RydWN0dXJlLCB0aGUgc3RydWN0dXJl
IGNhbiBvZmZlciB0aGUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHBvc3NpYmxlIHJlc3VsdAorICAg
ICAgICBvZiBHZXRHbG9iYWxPYmplY3QuIEJ5IHVzaW5nIHRoaXMgY29uc3RhbnQtZm9sZGVkIGds
b2JhbCBvYmplY3QsIHdlIGNhbiBkcm9wIHNvbWUKKyAgICAgICAgY2hlY2tzLgorCisgICAgICAg
IFRoaXMgcGF0Y2ggaW50cm9kdWNlcyB0aGUgd2F5IHRvIHRlbGwgdGhlIGNvbnN0YW50LWZvbGRl
ZCB2YWx1ZXMgdG8gRE9NSklUOjpQYXRjaHBvaW50LgorICAgICAgICBXZSBwYXNzIERPTUpJVDo6
VmFsdWUgaW5zdGVhZCBvZiBET01KSVQ6OlJlZyBhcyBhIHBhcmFtZXRlciBvZiBET01KSVQ6OlBh
dGNocG9pbnRQYXJhbXMuCisgICAgICAgIFRoaXMgRE9NSklUOjpWYWx1ZSBpcyBhIHBhaXIgb2Yg
RE9NSklUOjpSZWcgYW5kIEpTVmFsdWUuIElmIHRoZSBnaXZlbiBwYXJhbWV0ZXIgaGFzIGEKKyAg
ICAgICAgY29uc3RhbnQgdmFsdWUsIHRoaXMgSlNWYWx1ZSBpcyBmaWxsZWQgd2l0aCBpdC4KKwor
ICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogZGZnL0RGR0RPTUpJVFBhdGNocG9pbnRQYXJhbXMuaDoKKyAgICAgICAgKEpTQzo6REZH
OjpET01KSVRQYXRjaHBvaW50UGFyYW1zOjpET01KSVRQYXRjaHBvaW50UGFyYW1zKToKKyAgICAg
ICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpjb21waWxlQ2FsbERPTSk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVDaGVja0RPTSk6CisgICAgICAgICogZG9taml0L0RPTUpJVFBhdGNocG9p
bnRQYXJhbXMuaDoKKyAgICAgICAgKEpTQzo6RE9NSklUOjpQYXRjaHBvaW50UGFyYW1zOjphdCk6
CisgICAgICAgIChKU0M6OkRPTUpJVDo6UGF0Y2hwb2ludFBhcmFtczo6b3BlcmF0b3JbXSk6Cisg
ICAgICAgIChKU0M6OkRPTUpJVDo6UGF0Y2hwb2ludFBhcmFtczo6UGF0Y2hwb2ludFBhcmFtcyk6
CisgICAgICAgICogZG9taml0L0RPTUpJVFZhbHVlLmg6IENvcGllZCBmcm9tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHRE9NSklUUGF0Y2hwb2ludFBhcmFtcy5oLgorICAgICAgICAoSlND
OjpET01KSVQ6OlZhbHVlOjpWYWx1ZSk6CisgICAgICAgIChKU0M6OkRPTUpJVDo6VmFsdWU6Omlz
R1BSKToKKyAgICAgICAgKEpTQzo6RE9NSklUOjpWYWx1ZTo6aXNGUFIpOgorICAgICAgICAoSlND
OjpET01KSVQ6OlZhbHVlOjppc0pTVmFsdWVSZWdzKToKKyAgICAgICAgKEpTQzo6RE9NSklUOjpW
YWx1ZTo6Z3ByKToKKyAgICAgICAgKEpTQzo6RE9NSklUOjpWYWx1ZTo6ZnByKToKKyAgICAgICAg
KEpTQzo6RE9NSklUOjpWYWx1ZTo6anNWYWx1ZVJlZ3MpOgorICAgICAgICAoSlNDOjpET01KSVQ6
OlZhbHVlOjpyZWcpOgorICAgICAgICAoSlNDOjpET01KSVQ6OlZhbHVlOjp2YWx1ZSk6CisgICAg
ICAgICogZnRsL0ZUTERPTUpJVFBhdGNocG9pbnRQYXJhbXMuaDoKKyAgICAgICAgKEpTQzo6RlRM
OjpET01KSVRQYXRjaHBvaW50UGFyYW1zOjpET01KSVRQYXRjaHBvaW50UGFyYW1zKToKKyAgICAg
ICAgKiBmdGwvRlRMTG93ZXJERkdUb0IzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxv
d2VyREZHVG9CMzo6Y29tcGlsZUNoZWNrRE9NKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxv
d2VyREZHVG9CMzo6Y29tcGlsZUNhbGxET00pOgorCiAyMDE2LTEwLTExICBTYWFtIEJhcmF0aSAg
PHNiYXJhdGlAYXBwbGUuY29tPgogCiAgICAgICAgIFZhbHVlQWRkIHNob3VsZCBiZSBjb25zdGFu
dCBmb2xkZWQgaWYgdGhlIG9wZXJhbmRzIGFyZSBjb25zdGFudCBTdHJpbmcsUHJpbWl0aXZlIG9y
IFByaW1pdGl2ZSxTdHJpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5MzJhN2UzNTA2ZTcwY2I5NWMyN2YwZjcy
NThjZDk2YzA0MjBjMmJkLi5lMGI4ZDIxYTk5ZThjNWQ3MjAwNjI5NTA2NjRhMjc3ZTgzZDRkNzMy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTYtMTAtMTEgIFl1c3VrZSBTdXp1a2kg
IDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgW0RPTUpJVF0gRE9NSklUOjpQYXRj
aHBvaW50IHNob3VsZCBoYXZlIGEgd2F5IHRvIHJlY2VpdmUgY29uc3RhbnQgZm9sZGVkIGFyZ3Vt
ZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYz
MjI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBk
b21qaXQvRE9NSklUSGVscGVycy5oOgorICAgICAgICAoV2ViQ29yZTo6RE9NSklUSGVscGVyczo6
dG9XcmFwcGVyKToKKyAgICAgICAgKiBkb21qaXQvSlNOb2RlRE9NSklULmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmNyZWF0ZUNhbGxET01Gb3JPZmZzZXRBY2Nlc3MpOgorCiAyMDE2LTEwLTExICBE
YW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBTYW5kYm94
IFF1aWNrTG9vayBwcmV2aWV3cwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBlNTcy
N2Y1NDE1MmM2OGNiOWY3MWRjMGU1NmY4NjgyY2JlY2QyY2NkLi44ZTdiZTY3MmY0MThiYmJjNjQz
MjUzMGFlNmJlNjZiYjgyY2ZhZDhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
MjExNSw2ICsyMTE1LDcgQEAKIAkJRTNFRjg4NzQxQjY2REYyMzAwM0YyNkNCIC8qIEpTUHJvcGVy
dHlOYW1lSXRlcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTNFRjg4NzIxQjY2REYyMzAwM0YyNkNCIC8qIEpTUHJvcGVydHlOYW1lSXRlcmF0
b3IuY3BwICovOyB9OwogCQlFM0VGODg3NTFCNjZERjIzMDAzRjI2Q0IgLyogSlNQcm9wZXJ0eU5h
bWVJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTNFRjg4NzMxQjY2REYyMzAwM0YyNkNCIC8qIEpTUHJvcGVydHlOYW1lSXRlcmF0b3IuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFM0ZGNzUz
MzFEOUNFQTE4MDBDN0UxNkQgLyogRE9NSklUR2V0dGVyU2V0dGVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0ZGNzUyRjFEOUNFQTEyMDBDN0UxNkQg
LyogRE9NSklUR2V0dGVyU2V0dGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJRTNGRkM4NTMxREFEN0QxNTAwREVBNTNFIC8qIERPTUpJVFZhbHVl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0ZGQzg1
MjFEQUQ3RDEwMDBERUE1M0UgLyogRE9NSklUVmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFNDlEQzE2QjEyRUYyOTNFMDAxODRBMUYgLyog
U291cmNlUHJvdmlkZXJDYWNoZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFNDlEQzE1NTEyRUYyNzcyMDAxODRBMUYgLyogU291cmNlUHJvdmlkZXJD
YWNoZS5jcHAgKi87IH07CiAJCUU0OURDMTZDMTJFRjI5NEUwMDE4NEExRiAvKiBTb3VyY2VQcm92
aWRlckNhY2hlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFNDlEQzE1MTEyRUYyNzIyMDAxODRBMUYgLyogU291cmNlUHJvdmlkZXJDYWNoZS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUU0OURDMTZEMTJF
RjI5NTMwMDE4NEExRiAvKiBTb3VyY2VQcm92aWRlckNhY2hlSXRlbS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ5REMxNDkxMkVGMjYxQTAwMTg0QTFG
IC8qIFNvdXJjZVByb3ZpZGVyQ2FjaGVJdGVtLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTQ0MjQsNiArNDQyNSw3IEBACiAJCUUzRUY4ODcyMUI2
NkRGMjMwMDNGMjZDQiAvKiBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUHJvcGVydHlOYW1lSXRlcmF0b3IuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFM0VGODg3MzFCNjZERjIzMDAzRjI2Q0IgLyogSlNQ
cm9wZXJ0eU5hbWVJdGVyYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBK
U1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUz
RkY3NTJGMUQ5Q0VBMTIwMEM3RTE2RCAvKiBET01KSVRHZXR0ZXJTZXR0ZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSklUR2V0dGVyU2V0dGVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUUzRkZDODUyMURBRDdEMTAwMERFQTUzRSAvKiBET01KSVRWYWx1
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01KSVRWYWx1ZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDlEQzE0OTEyRUYyNjFBMDAxODRBMUYgLyogU291
cmNlUHJvdmlkZXJDYWNoZUl0ZW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U291cmNlUHJvdmlkZXJDYWNoZUl0ZW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RTQ5REMxNTExMkVGMjcyMjAwMTg0QTFGIC8qIFNvdXJjZVByb3ZpZGVyQ2FjaGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU291cmNlUHJvdmlkZXJDYWNoZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFNDlEQzE1NTEyRUYyNzcyMDAxODRBMUYgLyogU291cmNl
UHJvdmlkZXJDYWNoZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBT
b3VyY2VQcm92aWRlckNhY2hlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTcx
OTgsNiArNzIwMCw3IEBACiAJCQkJRTM3QUQ4M0ExREE0OTI4MDAwRjNENDEyIC8qIERPTUpJVFBh
dGNocG9pbnRQYXJhbXMuaCAqLywKIAkJCQlFMzdBRDgzQjFEQTQ5MjgwMDBGM0Q0MTIgLyogRE9N
SklUUmVnLmggKi8sCiAJCQkJRTNDQjFFMjQxREE3NTQwQTAwRkExRTU2IC8qIERPTUpJVFNsb3dQ
YXRoQ2FsbHMuaCAqLywKKwkJCQlFM0ZGQzg1MjFEQUQ3RDEwMDBERUE1M0UgLyogRE9NSklUVmFs
dWUuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gZG9taml0OwogCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKQEAgLTc1MTIsNiArNzUxNSw3IEBACiAJCQkJMEZGRkM5NTgxNEVGOTBBMjAwQzcyNTMy
IC8qIERGR0NGQVBoYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjMzOERGRTFCRUQ1MTI3MDAx
M0M4OEYgLyogQWlyU2ltcGxpZnlDRkcuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGM0IzQTI4MTU0
NEM5OTcwMDNFRDBGRiAvKiBERkdDRkdTaW1wbGlmaWNhdGlvblBoYXNlLmggaW4gSGVhZGVycyAq
LywKKwkJCQlFM0ZGQzg1MzFEQUQ3RDE1MDBERUE1M0UgLyogRE9NSklUVmFsdWUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGOUQzNjk1MUFFOUNDMzMwMDBENERGQiAvKiBERkdDbGVhblVwUGhhc2Uu
aCBpbiBIZWFkZXJzICovLAogCQkJCUE3N0E0MjQwMTdBMEJCRkQwMEE4REI4MSAvKiBERkdDbG9i
YmVyaXplLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjM3MzA4RDFDMEJEMjkxMDAwNTJCRkEgLyog
QjNQaGlDaGlsZHJlbi5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0RPTUpJVFBhdGNocG9pbnRQYXJhbXMuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHRE9NSklUUGF0Y2hwb2ludFBhcmFtcy5oCmluZGV4IDM0NmQwZGExMDQ5
Y2RmMjZhZmZjYmU3YjcyNmJkODYxYjhkMjJiZGYuLjQ2ZmRkNGJlNjAwNGYzMzFkN2E5OTZjYTE2
NmJhNjEzMDAyMDlmODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
RE9NSklUUGF0Y2hwb2ludFBhcmFtcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHRE9NSklUUGF0Y2hwb2ludFBhcmFtcy5oCkBAIC0zNSw3ICszNSw3IEBAIGNsYXNzIFNwZWN1
bGF0aXZlSklUOwogCiBjbGFzcyBET01KSVRQYXRjaHBvaW50UGFyYW1zIDogcHVibGljIERPTUpJ
VDo6UGF0Y2hwb2ludFBhcmFtcyB7CiBwdWJsaWM6Ci0gICAgRE9NSklUUGF0Y2hwb2ludFBhcmFt
cyhTcGVjdWxhdGl2ZUpJVCogaml0LCBWZWN0b3I8RE9NSklUOjpSZWc+JiYgcmVncywgVmVjdG9y
PEdQUlJlZz4mJiBncFNjcmF0Y2gsIFZlY3RvcjxGUFJSZWc+JiYgZnBTY3JhdGNoKQorICAgIERP
TUpJVFBhdGNocG9pbnRQYXJhbXMoU3BlY3VsYXRpdmVKSVQqIGppdCwgVmVjdG9yPERPTUpJVDo6
VmFsdWU+JiYgcmVncywgVmVjdG9yPEdQUlJlZz4mJiBncFNjcmF0Y2gsIFZlY3RvcjxGUFJSZWc+
JiYgZnBTY3JhdGNoKQogICAgICAgICA6IERPTUpJVDo6UGF0Y2hwb2ludFBhcmFtcyhXVEZNb3Zl
KHJlZ3MpLCBXVEZNb3ZlKGdwU2NyYXRjaCksIFdURk1vdmUoZnBTY3JhdGNoKSkKICAgICAgICAg
LCBtX2ppdChqaXQpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklULmNwcAppbmRleCA4NDQyMWVmY2QzZDk4YzE4MjJhZGE5NWUwZDcxZWYzMjA2
MTYzNmZlLi44ZGY1MTQwODhlMzJlYWNiMzVmOTJjMmNlMjU3M2E4ZjYxYTgwYWEyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcApAQCAtNzEz
NCw3ICs3MTM0LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNhbGxET00oTm9kZSog
bm9kZSkKIAogICAgIFZlY3RvcjxHUFJSZWc+IGdwU2NyYXRjaDsKICAgICBWZWN0b3I8RlBSUmVn
PiBmcFNjcmF0Y2g7Ci0gICAgVmVjdG9yPERPTUpJVDo6UmVnPiByZWdzOworICAgIFZlY3RvcjxE
T01KSVQ6OlZhbHVlPiByZWdzOwogCiAgICAgLy8gRklYTUU6IHBhdGNocG9pbnQgc2hvdWxkIGhh
dmUgYSB3YXkgdG8gdGVsbCB0aGlzIGNhbiByZXVzZSAiYmFzZSIgcmVnaXN0ZXIuCiAgICAgLy8g
VGVhY2hpbmcgREZHIGFib3V0IERPTUpJVDo6UGF0Y2hwb2ludCBjbG9iYmVyIGluZm9ybWF0aW9u
IGlzIG5pY2UuCkBAIC03MTQzLDggKzcxNDMsOCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21w
aWxlQ2FsbERPTShOb2RlKiBub2RlKQogICAgIEpTVmFsdWVSZWdzVGVtcG9yYXJ5IHJlc3VsdCh0
aGlzKTsKIAogICAgIHJlZ3MuYXBwZW5kKHJlc3VsdC5yZWdzKCkpOwotICAgIHJlZ3MuYXBwZW5k
KGdsb2JhbE9iamVjdC5ncHIoKSk7Ci0gICAgcmVncy5hcHBlbmQoYmFzZS5ncHIoKSk7CisgICAg
cmVncy5hcHBlbmQoRE9NSklUOjpWYWx1ZShnbG9iYWxPYmplY3QuZ3ByKCksIG1fc3RhdGUuZm9y
Tm9kZShtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDApKS52YWx1ZSgpKSk7CisgICAg
cmVncy5hcHBlbmQoRE9NSklUOjpWYWx1ZShiYXNlLmdwcigpLCBtX3N0YXRlLmZvck5vZGUobV9q
aXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAxKSkudmFsdWUoKSkpOwogI2lmIFVTRShKU1ZB
TFVFNjQpCiAgICAgcmVncy5hcHBlbmQoc3RhdGljX2Nhc3Q8R1BSUmVnPihHUFJJbmZvOjp0YWdN
YXNrUmVnaXN0ZXIpKTsKICAgICByZWdzLmFwcGVuZChzdGF0aWNfY2FzdDxHUFJSZWc+KEdQUklu
Zm86OnRhZ1R5cGVOdW1iZXJSZWdpc3RlcikpOwpAQCAtNzE2NSwxMSArNzE2NSwxMSBAQCB2b2lk
IFNwZWN1bGF0aXZlSklUOjpjb21waWxlQ2hlY2tET00oTm9kZSogbm9kZSkKIAogICAgIFZlY3Rv
cjxHUFJSZWc+IGdwU2NyYXRjaDsKICAgICBWZWN0b3I8RlBSUmVnPiBmcFNjcmF0Y2g7Ci0gICAg
VmVjdG9yPERPTUpJVDo6UmVnPiByZWdzOworICAgIFZlY3RvcjxET01KSVQ6OlZhbHVlPiByZWdz
OwogCiAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7
CiAgICAgR1BSUmVnIGJhc2VHUFIgPSBiYXNlLmdwcigpOwotICAgIHJlZ3MuYXBwZW5kKGJhc2VH
UFIpOworICAgIHJlZ3MuYXBwZW5kKERPTUpJVDo6VmFsdWUoYmFzZUdQUiwgbV9zdGF0ZS5mb3JO
b2RlKG5vZGUtPmNoaWxkMSgpKS52YWx1ZSgpKSk7CiAKICAgICBWZWN0b3I8R1BSVGVtcG9yYXJ5
PiBncFRlbXByYXJpZXM7CiAgICAgVmVjdG9yPEZQUlRlbXBvcmFyeT4gZnBUZW1wcmFyaWVzOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RvbWppdC9ET01KSVRQYXRjaHBvaW50
UGFyYW1zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZG9taml0L0RPTUpJVFBhdGNocG9pbnRQ
YXJhbXMuaAppbmRleCBhMDRlZDFiYjg1MTRmYjhjMDZmM2FjODIyZDRmYmI0MjBlNzc1OTRkLi5h
ZWVjZTFiN2UyOTZlZDE0YjQ2ZTRlZDY5MDg3MWQwMmEwNzY4MjM0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZG9taml0L0RPTUpJVFBhdGNocG9pbnRQYXJhbXMuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZG9taml0L0RPTUpJVFBhdGNocG9pbnRQYXJhbXMuaApAQCAt
MjgsOCArMjgsOCBAQAogI2lmIEVOQUJMRShKSVQpCiAKICNpbmNsdWRlICJDQ2FsbEhlbHBlcnMu
aCIKLSNpbmNsdWRlICJET01KSVRSZWcuaCIKICNpbmNsdWRlICJET01KSVRTbG93UGF0aENhbGxz
LmgiCisjaW5jbHVkZSAiRE9NSklUVmFsdWUuaCIKICNpbmNsdWRlICJKSVRPcGVyYXRpb25zLmgi
CiAjaW5jbHVkZSAiUmVnaXN0ZXJTZXQuaCIKIApAQCAtNDEsMTMgKzQxLDEzIEBAIFdURl9NQUtF
X05PTkNPUFlBQkxFKFBhdGNocG9pbnRQYXJhbXMpOwogICAgIHZpcnR1YWwgflBhdGNocG9pbnRQ
YXJhbXMoKSB7IH0KIAogICAgIHVuc2lnbmVkIHNpemUoKSBjb25zdCB7IHJldHVybiBtX3JlZ3Mu
c2l6ZSgpOyB9Ci0gICAgY29uc3QgUmVnJiBhdCh1bnNpZ25lZCBpbmRleCkgY29uc3QgeyByZXR1
cm4gbV9yZWdzW2luZGV4XTsgfQotICAgIGNvbnN0IFJlZyYgb3BlcmF0b3JbXSh1bnNpZ25lZCBp
bmRleCkgY29uc3QgeyByZXR1cm4gYXQoaW5kZXgpOyB9CisgICAgY29uc3QgVmFsdWUmIGF0KHVu
c2lnbmVkIGluZGV4KSBjb25zdCB7IHJldHVybiBtX3JlZ3NbaW5kZXhdOyB9CisgICAgY29uc3Qg
VmFsdWUmIG9wZXJhdG9yW10odW5zaWduZWQgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIGF0KGluZGV4
KTsgfQogCiAgICAgR1BSUmVnIGdwU2NyYXRjaCh1bnNpZ25lZCBpbmRleCkgY29uc3QgeyByZXR1
cm4gbV9ncFNjcmF0Y2hbaW5kZXhdOyB9CiAgICAgRlBSUmVnIGZwU2NyYXRjaCh1bnNpZ25lZCBp
bmRleCkgY29uc3QgeyByZXR1cm4gbV9mcFNjcmF0Y2hbaW5kZXhdOyB9CiAKLSAgICBQYXRjaHBv
aW50UGFyYW1zKFZlY3RvcjxSZWc+JiYgcmVncywgVmVjdG9yPEdQUlJlZz4mJiBncFNjcmF0Y2gs
IFZlY3RvcjxGUFJSZWc+JiYgZnBTY3JhdGNoKQorICAgIFBhdGNocG9pbnRQYXJhbXMoVmVjdG9y
PFZhbHVlPiYmIHJlZ3MsIFZlY3RvcjxHUFJSZWc+JiYgZ3BTY3JhdGNoLCBWZWN0b3I8RlBSUmVn
PiYmIGZwU2NyYXRjaCkKICAgICAgICAgOiBtX3JlZ3MoV1RGTW92ZShyZWdzKSkKICAgICAgICAg
LCBtX2dwU2NyYXRjaChXVEZNb3ZlKGdwU2NyYXRjaCkpCiAgICAgICAgICwgbV9mcFNjcmF0Y2go
V1RGTW92ZShmcFNjcmF0Y2gpKQpAQCAtNjUsNyArNjUsNyBAQCBXVEZfTUFLRV9OT05DT1BZQUJM
RShQYXRjaHBvaW50UGFyYW1zKTsKICAgICBET01KSVRfU0xPV19QQVRIX0NBTExTKEpTQ19ERUZJ
TkVfQ0FMTF9PUEVSQVRJT05TKQogI3VuZGVmIEpTQ19ERUZJTkVfQ0FMTF9PUEVSQVRJT05TCiAK
LSAgICBWZWN0b3I8UmVnPiBtX3JlZ3M7CisgICAgVmVjdG9yPFZhbHVlPiBtX3JlZ3M7CiAgICAg
VmVjdG9yPEdQUlJlZz4gbV9ncFNjcmF0Y2g7CiAgICAgVmVjdG9yPEZQUlJlZz4gbV9mcFNjcmF0
Y2g7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RvbWppdC9ET01KSVRW
YWx1ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RvbWppdC9ET01KSVRWYWx1ZS5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmRlNmNiOTNmZTVhZDQ5MzM0ZDI2ZWQ4NjNjZmNlM2Y2ZjhkMWM4NTEKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZG9taml0L0RPTUpJVFZhbHVlLmgKQEAg
LTAsMCArMSw3MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiRE9NSklUUmVnLmgiCisKKyNpZiBFTkFCTEUo
SklUKQorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERPTUpJVCB7CisKK2NsYXNzIFZhbHVl
IHsKK3B1YmxpYzoKKyAgICBWYWx1ZShSZWcgcmVnKQorICAgICAgICA6IG1fcmVnKHJlZykKKyAg
ICB7CisgICAgfQorCisgICAgVmFsdWUoUmVnIHJlZywgSlNWYWx1ZSB2YWx1ZSkKKyAgICAgICAg
OiBtX3JlZyhyZWcpCisgICAgICAgICwgbV92YWx1ZSh2YWx1ZSkKKyAgICB7CisgICAgfQorCisg
ICAgYm9vbCBpc0dQUigpIGNvbnN0IHsgcmV0dXJuIG1fcmVnLmlzR1BSKCk7IH0KKyAgICBib29s
IGlzRlBSKCkgY29uc3QgeyByZXR1cm4gbV9yZWcuaXNGUFIoKTsgfQorICAgIGJvb2wgaXNKU1Zh
bHVlUmVncygpIGNvbnN0IHsgcmV0dXJuIG1fcmVnLmlzSlNWYWx1ZVJlZ3MoKTsgfQorICAgIEdQ
UlJlZyBncHIoKSBjb25zdCB7IHJldHVybiBtX3JlZy5ncHIoKTsgfQorICAgIEZQUlJlZyBmcHIo
KSBjb25zdCB7IHJldHVybiBtX3JlZy5mcHIoKTsgfQorICAgIEpTVmFsdWVSZWdzIGpzVmFsdWVS
ZWdzKCkgY29uc3QgeyByZXR1cm4gbV9yZWcuanNWYWx1ZVJlZ3MoKTsgfQorCisgICAgUmVnIHJl
ZygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9yZWc7CisgICAgfQorCisgICAgSlNW
YWx1ZSB2YWx1ZSgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbV92YWx1ZTsKKyAgICB9
CisKK3ByaXZhdGU6CisgICAgUmVnIG1fcmVnOworICAgIEpTVmFsdWUgbV92YWx1ZTsKK307CisK
K30gfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
RE9NSklUUGF0Y2hwb2ludFBhcmFtcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExE
T01KSVRQYXRjaHBvaW50UGFyYW1zLmgKaW5kZXggNWQwZjViNjhjODBkZTNiODNlNTg3YTk0Zjk2
ZmI1NmZkYTliYmEyMC4uMmQxM2VlYWE3ZDU4N2NiNDdlOTM3NzMxMjZmZjcwNTkzNjQ0M2Y3YSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExET01KSVRQYXRjaHBvaW50
UGFyYW1zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExET01KSVRQYXRjaHBv
aW50UGFyYW1zLmgKQEAgLTM2LDcgKzM2LDcgQEAgY2xhc3MgU3RhdGU7CiAKIGNsYXNzIERPTUpJ
VFBhdGNocG9pbnRQYXJhbXMgOiBwdWJsaWMgRE9NSklUOjpQYXRjaHBvaW50UGFyYW1zIHsKIHB1
YmxpYzoKLSAgICBET01KSVRQYXRjaHBvaW50UGFyYW1zKFN0YXRlJiBzdGF0ZSwgY29uc3QgQjM6
OlN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYgcGFyYW1zLCBERkc6Ok5vZGUqIG5vZGUsIEJveDxD
Q2FsbEhlbHBlcnM6Okp1bXBMaXN0PiBleGNlcHRpb25zLCBWZWN0b3I8RE9NSklUOjpSZWc+JiYg
cmVncywgVmVjdG9yPEdQUlJlZz4mJiBncFNjcmF0Y2gsIFZlY3RvcjxGUFJSZWc+JiYgZnBTY3Jh
dGNoKQorICAgIERPTUpJVFBhdGNocG9pbnRQYXJhbXMoU3RhdGUmIHN0YXRlLCBjb25zdCBCMzo6
U3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJiBwYXJhbXMsIERGRzo6Tm9kZSogbm9kZSwgQm94PEND
YWxsSGVscGVyczo6SnVtcExpc3Q+IGV4Y2VwdGlvbnMsIFZlY3RvcjxET01KSVQ6OlZhbHVlPiYm
IHJlZ3MsIFZlY3RvcjxHUFJSZWc+JiYgZ3BTY3JhdGNoLCBWZWN0b3I8RlBSUmVnPiYmIGZwU2Ny
YXRjaCkKICAgICAgICAgOiBET01KSVQ6OlBhdGNocG9pbnRQYXJhbXMoV1RGTW92ZShyZWdzKSwg
V1RGTW92ZShncFNjcmF0Y2gpLCBXVEZNb3ZlKGZwU2NyYXRjaCkpCiAgICAgICAgICwgbV9zdGF0
ZShzdGF0ZSkKICAgICAgICAgLCBtX3BhcmFtcyhwYXJhbXMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKaW5kZXggYjViNmZjNjk0Mzg0NDMxMGQ3NWZh
YzI4M2FkNWNiYzRlYjJlZDk3My4uNmU3OTcxNzNjMWM2MzZmNjIzNzdlZWI0MjJiNzMyZjE0YWYx
YzM1MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1Rv
QjMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNw
cApAQCAtODczOSwxNCArODczOSwxNSBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgICAgICB1
bnNpZ25lZCBvc3JFeGl0QXJndW1lbnRPZmZzZXQgPSBwYXRjaHBvaW50LT5udW1DaGlsZHJlbigp
OwogICAgICAgICBPU1JFeGl0RGVzY3JpcHRvciogZXhpdERlc2NyaXB0b3IgPSBhcHBlbmRPU1JF
eGl0RGVzY3JpcHRvcihqc1ZhbHVlVmFsdWUoY2VsbCksIG1fbm9kZS0+Y2hpbGQxKCkubm9kZSgp
KTsKICAgICAgICAgcGF0Y2hwb2ludC0+YXBwZW5kQ29sZEFueXMoYnVpbGRFeGl0QXJndW1lbnRz
KGV4aXREZXNjcmlwdG9yLCBvcmlnaW4uZm9yRXhpdCwganNWYWx1ZVZhbHVlKGNlbGwpKSk7Cisg
ICAgICAgIEpTVmFsdWUgY2hpbGQxQ29uc3RhbnQgPSBtX3N0YXRlLmZvck5vZGUobV9ub2RlLT5j
aGlsZDEoKSkudmFsdWUoKTsKIAogICAgICAgICBwYXRjaHBvaW50LT5zZXRHZW5lcmF0b3IoCiAg
ICAgICAgICAgICBbPV0gKENDYWxsSGVscGVycyYgaml0LCBjb25zdCBTdGFja21hcEdlbmVyYXRp
b25QYXJhbXMmIHBhcmFtcykgewogICAgICAgICAgICAgICAgIFZlY3RvcjxHUFJSZWc+IGdwU2Ny
YXRjaDsKICAgICAgICAgICAgICAgICBWZWN0b3I8RlBSUmVnPiBmcFNjcmF0Y2g7Ci0gICAgICAg
ICAgICAgICAgVmVjdG9yPERPTUpJVDo6UmVnPiByZWdzOworICAgICAgICAgICAgICAgIFZlY3Rv
cjxET01KSVQ6OlZhbHVlPiByZWdzOwogCi0gICAgICAgICAgICAgICAgcmVncy5hcHBlbmQocGFy
YW1zWzBdLmdwcigpKTsKKyAgICAgICAgICAgICAgICByZWdzLmFwcGVuZChET01KSVQ6OlZhbHVl
KHBhcmFtc1swXS5ncHIoKSwgY2hpbGQxQ29uc3RhbnQpKTsKIAogICAgICAgICAgICAgICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCBkb21KSVQtPm51bUdQU2NyYXRjaFJlZ2lzdGVyczsgKytp
KQogICAgICAgICAgICAgICAgICAgICBncFNjcmF0Y2guYXBwZW5kKHBhcmFtcy5ncFNjcmF0Y2go
aSkpOwpAQCAtODc4NSwxOSArODc4NiwyMSBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogCiAgICAg
ICAgIFN0YXRlKiBzdGF0ZSA9ICZtX2Z0bFN0YXRlOwogICAgICAgICBOb2RlKiBub2RlID0gbV9u
b2RlOworICAgICAgICBKU1ZhbHVlIGNoaWxkMUNvbnN0YW50ID0gbV9zdGF0ZS5mb3JOb2RlKG1f
Z3JhcGgudmFyQXJnQ2hpbGQobV9ub2RlLCAwKSkudmFsdWUoKTsKKyAgICAgICAgSlNWYWx1ZSBj
aGlsZDJDb25zdGFudCA9IG1fc3RhdGUuZm9yTm9kZShtX2dyYXBoLnZhckFyZ0NoaWxkKG1fbm9k
ZSwgMSkpLnZhbHVlKCk7CiAgICAgICAgIHBhdGNocG9pbnQtPnNldEdlbmVyYXRvcigKICAgICAg
ICAgICAgIFs9XSAoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBh
cmFtcyYgcGFyYW1zKSB7CiAgICAgICAgICAgICAgICAgQWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3Rl
clVzYWdlIGFsbG93U2NyYXRjaChqaXQpOwogCiAgICAgICAgICAgICAgICAgVmVjdG9yPEdQUlJl
Zz4gZ3BTY3JhdGNoOwogICAgICAgICAgICAgICAgIFZlY3RvcjxGUFJSZWc+IGZwU2NyYXRjaDsK
LSAgICAgICAgICAgICAgICBWZWN0b3I8RE9NSklUOjpSZWc+IHJlZ3M7CisgICAgICAgICAgICAg
ICAgVmVjdG9yPERPTUpJVDo6VmFsdWU+IHJlZ3M7CiAKICAgICAgICAgICAgICAgICAvLyBGSVhN
RTogcGF0Y2hwb2ludCBzaG91bGQgaGF2ZSBhIHdheSB0byB0ZWxsIHRoaXMgY2FuIHJldXNlICJi
YXNlIiByZWdpc3Rlci4KICAgICAgICAgICAgICAgICAvLyBUZWFjaGluZyBERkcgYWJvdXQgRE9N
SklUOjpQYXRjaHBvaW50IGNsb2JiZXIgaW5mb3JtYXRpb24gaXMgbmljZS4KICAgICAgICAgICAg
ICAgICByZWdzLmFwcGVuZChKU1ZhbHVlUmVncyhwYXJhbXNbMF0uZ3ByKCkpKTsKLSAgICAgICAg
ICAgICAgICByZWdzLmFwcGVuZChwYXJhbXNbMV0uZ3ByKCkpOwotICAgICAgICAgICAgICAgIHJl
Z3MuYXBwZW5kKHBhcmFtc1syXS5ncHIoKSk7CisgICAgICAgICAgICAgICAgcmVncy5hcHBlbmQo
RE9NSklUOjpWYWx1ZShwYXJhbXNbMV0uZ3ByKCksIGNoaWxkMUNvbnN0YW50KSk7CisgICAgICAg
ICAgICAgICAgcmVncy5hcHBlbmQoRE9NSklUOjpWYWx1ZShwYXJhbXNbMl0uZ3ByKCksIGNoaWxk
MkNvbnN0YW50KSk7CiAKICAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
ZG9tSklULT5udW1HUFNjcmF0Y2hSZWdpc3RlcnM7ICsraSkKICAgICAgICAgICAgICAgICAgICAg
Z3BTY3JhdGNoLmFwcGVuZChwYXJhbXMuZ3BTY3JhdGNoKGkpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbWppdC9ET01KSVRIZWxwZXJzLmggYi9Tb3VyY2UvV2ViQ29yZS9kb21qaXQv
RE9NSklUSGVscGVycy5oCmluZGV4IDg5OTE2MjRlNWNjZDIyZjQ4Yjk1ZTNhZWIyYmE5MmRhNmI1
ZTc3MzEuLmRiZTUzNjVmODZmZWNkMWJjMmU3Mjc2MTNmNzU2MDViMTZmMzgyNTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbWppdC9ET01KSVRIZWxwZXJzLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9taml0L0RPTUpJVEhlbHBlcnMuaApAQCAtNTksMTMgKzU5LDIyIEBAIHZvaWQgdHJ5
TG9va1VwV3JhcHBlckNhY2hlKENDYWxsSGVscGVycyYgaml0LCBDQ2FsbEhlbHBlcnM6Okp1bXBM
aXN0JiBmYWlsdXJlQ2FzCiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFdyYXBwZWRUeXBlLCB0eXBl
bmFtZSBUb0pTRnVuY3Rpb24+Ci12b2lkIHRvV3JhcHBlcihDQ2FsbEhlbHBlcnMmIGppdCwgY29u
c3QgSlNDOjpET01KSVQ6OlBhdGNocG9pbnRQYXJhbXMmIHBhcmFtcywgR1BSUmVnIHdyYXBwZWQs
IEdQUlJlZyBnbG9iYWxPYmplY3QsIEpTVmFsdWVSZWdzIHJlc3VsdCwgVG9KU0Z1bmN0aW9uIGZ1
bmN0aW9uKQordm9pZCB0b1dyYXBwZXIoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IEpTQzo6RE9N
SklUOjpQYXRjaHBvaW50UGFyYW1zJiBwYXJhbXMsIEdQUlJlZyB3cmFwcGVkLCBHUFJSZWcgZ2xv
YmFsT2JqZWN0LCBKU1ZhbHVlUmVncyByZXN1bHQsIFRvSlNGdW5jdGlvbiBmdW5jdGlvbiwgSlND
OjpKU1ZhbHVlIGdsb2JhbE9iamVjdENvbnN0YW50KQogewogICAgIEFTU0VSVCh3cmFwcGVkICE9
IHJlc3VsdC5wYXlsb2FkR1BSKCkpOwogICAgIEFTU0VSVChnbG9iYWxPYmplY3QgIT0gcmVzdWx0
LnBheWxvYWRHUFIoKSk7CiAgICAgR1BSUmVnIHBheWxvYWRHUFIgPSByZXN1bHQucGF5bG9hZEdQ
UigpOwogICAgIENDYWxsSGVscGVyczo6SnVtcExpc3Qgc2xvd0Nhc2VzOwotICAgIHNsb3dDYXNl
cy5hcHBlbmQoYnJhbmNoSWZOb3RXb3JsZElzTm9ybWFsKGppdCwgZ2xvYmFsT2JqZWN0KSk7CisK
KyAgICBpZiAoZ2xvYmFsT2JqZWN0Q29uc3RhbnQpIHsKKyAgICAgICAgaWYgKCFKU0M6OmpzQ2Fz
dDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdENvbnN0YW50KS0+d29ybGRJc05vcm1h
bCgpKSB7CisgICAgICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKGppdC5qdW1wKCkpOworICAgICAg
ICAgICAgcGFyYW1zLmFkZFNsb3dQYXRoQ2FsbChzbG93Q2FzZXMsIGppdCwgZnVuY3Rpb24sIHJl
c3VsdCwgZ2xvYmFsT2JqZWN0LCB3cmFwcGVkKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgfQorICAgIH0gZWxzZQorICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKGJyYW5jaElmTm90V29y
bGRJc05vcm1hbChqaXQsIGdsb2JhbE9iamVjdCkpOworCiAgICAgdHJ5TG9va1VwV3JhcHBlckNh
Y2hlPFdyYXBwZWRUeXBlPihqaXQsIHNsb3dDYXNlcywgd3JhcHBlZCwgcGF5bG9hZEdQUik7CiAg
ICAgaml0LmJveENlbGwocGF5bG9hZEdQUiwgcmVzdWx0KTsKICAgICBwYXJhbXMuYWRkU2xvd1Bh
dGhDYWxsKHNsb3dDYXNlcywgaml0LCBmdW5jdGlvbiwgcmVzdWx0LCBnbG9iYWxPYmplY3QsIHdy
YXBwZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9taml0L0pTTm9kZURPTUpJVC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb21qaXQvSlNOb2RlRE9NSklULmNwcAppbmRleCBmMzYwNjYz
OWUzMzlkMmU0YmUzNzI5YTg2ODdkMDlhZWRhNGRhNDViLi5hNzlmMDk1MTI2ZDQ1ZmZiYmFmODQ1
MGI2ZjhkODBhMDU4OTVmZjRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb21qaXQvSlNO
b2RlRE9NSklULmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb21qaXQvSlNOb2RlRE9NSklULmNw
cApAQCAtNzAsNyArNzAsNyBAQCBzdGF0aWMgUmVmPERPTUpJVDo6UGF0Y2hwb2ludD4gY3JlYXRl
Q2FsbERPTUZvck9mZnNldEFjY2VzcyhwdHJkaWZmX3Qgb2Zmc2V0LCBJcwogICAgICAgICBqaXQu
bG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRjaCwgb2Zmc2V0KSwgc2NyYXRjaCk7
CiAgICAgICAgIG51bGxDYXNlcy5hcHBlbmQoaml0LmJyYW5jaFRlc3RQdHIoQ0NhbGxIZWxwZXJz
OjpaZXJvLCBzY3JhdGNoKSk7CiAKLSAgICAgICAgRE9NSklUSGVscGVyczo6dG9XcmFwcGVyPFdy
YXBwZWROb2RlPihqaXQsIHBhcmFtcywgc2NyYXRjaCwgZ2xvYmFsT2JqZWN0LCByZXN1bHQsIHRv
V3JhcHBlclNsb3c8V3JhcHBlZE5vZGU+KTsKKyAgICAgICAgRE9NSklUSGVscGVyczo6dG9XcmFw
cGVyPFdyYXBwZWROb2RlPihqaXQsIHBhcmFtcywgc2NyYXRjaCwgZ2xvYmFsT2JqZWN0LCByZXN1
bHQsIHRvV3JhcHBlclNsb3c8V3JhcHBlZE5vZGU+LCBwYXJhbXNbMV0udmFsdWUoKSk7CiAgICAg
ICAgIENDYWxsSGVscGVyczo6SnVtcCBkb25lID0gaml0Lmp1bXAoKTsKIAogICAgICAgICBudWxs
Q2FzZXMubGluaygmaml0KTsK
</data>
<flag name="review"
          id="314434"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
          </attachment>
      

    </bug>

</bugzilla>