<?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>91016</bug_id>
          
          <creation_ts>2012-07-11 14:26:48 -0700</creation_ts>
          <short_desc>Watchpoints and jump replacement should be decoupled</short_desc>
          <delta_ts>2012-07-11 16:12:58 -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>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>667060</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-07-11 14:26:48 -0700</bug_when>
    <thetext>Right now the only callback from a WatchpointSet you can get is a jump replacement.  It should be possible to get any kind of callback.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667072</commentid>
    <comment_count>1</comment_count>
      <attachid>151780</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-07-11 14:36:09 -0700</bug_when>
    <thetext>Created attachment 151780
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667188</commentid>
    <comment_count>2</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-07-11 16:12:58 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/122385</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151780</attachid>
            <date>2012-07-11 14:36:09 -0700</date>
            <delta_ts>2012-07-11 14:37:29 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>watchpoint_patch_1.diff</filename>
            <type>text/plain</type>
            <size>20738</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTIyMzcyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQwIEBA
CisyMDEyLTA3LTExICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
V2F0Y2hwb2ludHMgYW5kIGp1bXAgcmVwbGFjZW1lbnQgc2hvdWxkIGJlIGRlY291cGxlZAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTEwMTYKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENNYWtlTGlzdHMu
dHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogSmF2YVNjcmlw
dENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvajoKKyAgICAg
ICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IFRhcmdldC5wcmk6CisgICAgICAgICogYXNzZW1ibGVyL0Fic3RyYWN0TWFjcm9Bc3NlbWJsZXIu
aDoKKyAgICAgICAgKEpTQyk6CisgICAgICAgIChMYWJlbCk6CisgICAgICAgICogYnl0ZWNvZGUv
Q29kZUJsb2NrLmg6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6YXBwZW5kV2F0Y2hwb2ludCk6
CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6d2F0Y2hwb2ludCk6CisgICAgICAgIChERkdEYXRh
KToKKyAgICAgICAgKiBieXRlY29kZS9XYXRjaHBvaW50LmNwcDoKKyAgICAgICAgKEpTQyk6Cisg
ICAgICAgICogYnl0ZWNvZGUvV2F0Y2hwb2ludC5oOgorICAgICAgICAoSlNDOjpXYXRjaHBvaW50
OjpXYXRjaHBvaW50KToKKyAgICAgICAgKFdhdGNocG9pbnQpOgorICAgICAgICAoSlNDOjpXYXRj
aHBvaW50OjpmaXJlKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuaDoKKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRpb25XYXRjaHBvaW50KToKKyAg
ICAgICAgKiBqaXQvSnVtcFJlcGxhY2VtZW50V2F0Y2hwb2ludC5jcHA6IEFkZGVkLgorICAgICAg
ICAoSlNDKToKKyAgICAgICAgKEpTQzo6SnVtcFJlcGxhY2VtZW50V2F0Y2hwb2ludDo6Y29ycmVj
dExhYmVscyk6CisgICAgICAgIChKU0M6Okp1bXBSZXBsYWNlbWVudFdhdGNocG9pbnQ6OmZpcmVJ
bnRlcm5hbCk6CisgICAgICAgICogaml0L0p1bXBSZXBsYWNlbWVudFdhdGNocG9pbnQuaDogQWRk
ZWQuCisgICAgICAgIChKU0MpOgorICAgICAgICAoSnVtcFJlcGxhY2VtZW50V2F0Y2hwb2ludCk6
CisgICAgICAgIChKU0M6Okp1bXBSZXBsYWNlbWVudFdhdGNocG9pbnQ6Okp1bXBSZXBsYWNlbWVu
dFdhdGNocG9pbnQpOgorICAgICAgICAoSlNDOjpKdW1wUmVwbGFjZW1lbnRXYXRjaHBvaW50Ojpz
ZXREZXN0aW5hdGlvbik6CisKIDIwMTItMDctMTEgIEtldmluIE9sbGl2aWVyICA8a2V2aW5vQHRo
ZW9sbGl2aWVycy5jb20+CiAKICAgICAgICAgW3d4XSBVbnJldmlld2VkIGJ1aWxkIGZpeC4gRG9u
J3QgdHJ5IHRvIGJ1aWxkIHVkaXM4Nl9pdGFiLmMgc2luY2UgaXQncyBpbmNsdWRlZCBieSAKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDEyMjI5NikKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAt
MTQzLDYgKzE0Myw3IEBAIFNFVChKYXZhU2NyaXB0Q29yZV9TT1VSQ0VTCiAgICAgaml0L0pJVFBy
b3BlcnR5QWNjZXNzLmNwcAogICAgIGppdC9KSVRTdHViUm91dGluZS5jcHAKICAgICBqaXQvSklU
U3R1YnMuY3BwCisgICAgaml0L0p1bXBSZXBsYWNlbWVudFdhdGNocG9pbnQuY3BwCiAgICAgaml0
L1RodW5rR2VuZXJhdG9ycy5jcHAKIAogICAgIHBhcnNlci9MZXhlci5jcHAKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCShyZXZpc2lvbiAxMjIyOTYpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkod29ya2luZyBjb3B5
KQpAQCAtMzgzLDYgKzM4Myw4IEBAIGphdmFzY3JpcHRjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRXcml0ZUJhcnJpZXIuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KU0lu
dGVyZmFjZUpJVC5oIFwKKwlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0p1bXBSZXBsYWNlbWVu
dFdhdGNocG9pbnQuY3BwIFwKKwlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0p1bXBSZXBsYWNl
bWVudFdhdGNocG9pbnQuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9TcGVjaWFsaXpl
ZFRodW5rSklULmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3Jz
LmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuaCBcCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvVGFyZ2V0LnByaQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvVGFyZ2V0LnByaQkocmV2aXNpb24gMTIyMjk2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL1RhcmdldC5wcmkJKHdvcmtpbmcgY29weSkKQEAgLTE1MSw2ICsxNTEs
NyBAQCBTT1VSQ0VTICs9IFwKICAgICBqaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAgXAog
ICAgIGppdC9KSVRTdHViUm91dGluZS5jcHAgXAogICAgIGppdC9KSVRTdHVicy5jcHAgXAorICAg
IGppdC9KdW1wUmVwbGFjZW1lbnRXYXRjaHBvaW50LmNwcCBcCiAgICAgaml0L1RodW5rR2VuZXJh
dG9ycy5jcHAgXAogICAgIHBhcnNlci9MZXhlci5jcHAgXAogICAgIHBhcnNlci9Ob2Rlcy5jcHAg
XApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2oKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS52Y3Byb2oJKHJldmlzaW9uIDEyMjI5NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNw
cm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xOTQyLDYgKzE5NDIsMTQgQEAKIAkJCQk+CiAJCQk8L0Zp
bGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5caml0XEp1bXBSZXBsYWNlbWVu
dFdhdGNocG9pbnQuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRp
dmVQYXRoPSIuLlwuLlxqaXRcSnVtcFJlcGxhY2VtZW50V2F0Y2hwb2ludC5oIgorCQkJCT4KKwkJ
CTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxqaXRcSlNJbnRlcmZh
Y2VKSVQuaCIKIAkJCQk+CiAJCQk8L0ZpbGU+CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkocmV2aXNpb24gMTIyMjk2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTE0Niw2
ICsxNDYsOCBAQAogCQkwRjc2NkQyRjE1QThEQ0UwMDA4RjM2M0UgLyogR0NBd2FyZUpJVFN0dWJS
b3V0aW5lLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGNzY2RDJEMTVBOERDREQwMDhGMzYzRSAvKiBHQ0F3YXJlSklUU3R1YlJvdXRpbmUuY3BwICov
OyB9OwogCQkwRjc2NkQzMDE1QThEQ0UyMDA4RjM2M0UgLyogR0NBd2FyZUpJVFN0dWJSb3V0aW5l
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjc2NkQy
RTE1QThEQ0REMDA4RjM2M0UgLyogR0NBd2FyZUpJVFN0dWJSb3V0aW5lLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY3NjZEMzExNUFBODExMjAw
OEYzNjNFIC8qIEpJVFN0dWJSb3V0aW5lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRjc2NkQxQzE1QTUwMjhEMDA4RjM2M0UgLyogSklUU3R1YlJvdXRp
bmUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkw
Rjc2NkQzNDE1QUUyNTM4MDA4RjM2M0UgLyogSnVtcFJlcGxhY2VtZW50V2F0Y2hwb2ludC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjc2NkQzMjE1
QUUyNTM1MDA4RjM2M0UgLyogSnVtcFJlcGxhY2VtZW50V2F0Y2hwb2ludC5jcHAgKi87IH07CisJ
CTBGNzY2RDM1MTVBRTI1M0IwMDhGMzYzRSAvKiBKdW1wUmVwbGFjZW1lbnRXYXRjaHBvaW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjc2NkQzMzE1
QUUyNTM1MDA4RjM2M0UgLyogSnVtcFJlcGxhY2VtZW50V2F0Y2hwb2ludC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNzcwMDkyMTQwMkZGM0Mw
MDc4RUIzOSAvKiBTYW1wbGluZ0NvdW50ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMEY3NzAwOTExNDAyRkYyODAwNzhFQjM5IC8qIFNhbXBsaW5n
Q291bnRlci5jcHAgKi87IH07CiAJCTBGN0IyOTRBMTRDM0NEMjkwMDdDM0RCMSAvKiBERkdDQ2Fs
bEhlbHBlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGN0IyOTQ4MTRDM0NEMjMwMDdDM0RCMSAvKiBERkdDQ2FsbEhlbHBlcnMuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjdCMjk0QjE0QzNDRDJG
MDA3QzNEQjEgLyogREZHQ2FwYWJpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRkQ4MkUxRjE0MTcyQzJGMDAxNzlDOTQgLyogREZHQ2FwYWJp
bGl0aWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
QEAgLTg4Nyw2ICs4ODksOCBAQAogCQkwRjc2NkQyQTE1QThDQzM0MDA4RjM2M0UgLyogSklUU3R1
YlJvdXRpbmVTZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSklUU3R1YlJv
dXRpbmVTZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY3NjZEMkQxNUE4RENE
RDAwOEYzNjNFIC8qIEdDQXdhcmVKSVRTdHViUm91dGluZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBHQ0F3YXJlSklUU3R1YlJvdXRpbmUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkwRjc2NkQyRTE1QThEQ0REMDA4RjM2M0UgLyogR0NBd2FyZUpJ
VFN0dWJSb3V0aW5lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdDQXdhcmVK
SVRTdHViUm91dGluZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjc2NkQzMjE1
QUUyNTM1MDA4RjM2M0UgLyogSnVtcFJlcGxhY2VtZW50V2F0Y2hwb2ludC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKdW1wUmVwbGFjZW1lbnRXYXRjaHBvaW50LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY3NjZEMzMxNUFFMjUzNTAwOEYzNjNF
IC8qIEp1bXBSZXBsYWNlbWVudFdhdGNocG9pbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSnVtcFJlcGxhY2VtZW50V2F0Y2hwb2ludC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwRjc3MDA4RTE0MDJGREQ2MDA3OEVCMzkgLyogU2FtcGxpbmdDb3VudGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNhbXBsaW5nQ291bnRlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjc3MDA5MTE0MDJGRjI4MDA3OEVCMzkgLyogU2Ft
cGxpbmdDb3VudGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNh
bXBsaW5nQ291bnRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGN0IyOTQ4
MTRDM0NEMjMwMDdDM0RCMSAvKiBERkdDQ2FsbEhlbHBlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gREZHQ0NhbGxIZWxwZXJzLmg7IHBhdGggPSBkZmcvREZHQ0NhbGxIZWxw
ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzMxLDYgKzE3MzUsOCBAQAog
CQkJCTE0QTY1ODFBMEY0RTM2RjQwMDAxNTBGRCAvKiBKSVRTdHVicy5oICovLAogCQkJCUE3NkY1
NEEyMTNCMjhBQUIwMEVGMkJDRSAvKiBKSVRXcml0ZUJhcnJpZXIuaCAqLywKIAkJCQlBNzZDNTE3
NDExODI3NDhEMDA3MTVCMDUgLyogSlNJbnRlcmZhY2VKSVQuaCAqLywKKwkJCQkwRjc2NkQzMjE1
QUUyNTM1MDA4RjM2M0UgLyogSnVtcFJlcGxhY2VtZW50V2F0Y2hwb2ludC5jcHAgKi8sCisJCQkJ
MEY3NjZEMzMxNUFFMjUzNTAwOEYzNjNFIC8qIEp1bXBSZXBsYWNlbWVudFdhdGNocG9pbnQuaCAq
LywKIAkJCQlBNzM4NjU1MTExODY5N0I0MDA1NDAyNzkgLyogU3BlY2lhbGl6ZWRUaHVua0pJVC5o
ICovLAogCQkJCUE3Mzg2NTUyMTE4Njk3QjQwMDU0MDI3OSAvKiBUaHVua0dlbmVyYXRvcnMuY3Bw
ICovLAogCQkJCUE3Mzg2NTUzMTE4Njk3QjQwMDU0MDI3OSAvKiBUaHVua0dlbmVyYXRvcnMuaCAq
LywKQEAgLTI4MzYsNiArMjg0Miw3IEBACiAJCQkJMEY3NjZEMkMxNUE4Q0MzQTAwOEYzNjNFIC8q
IEpJVFN0dWJSb3V0aW5lU2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjc2NkQzMDE1QThEQ0Uy
MDA4RjM2M0UgLyogR0NBd2FyZUpJVFN0dWJSb3V0aW5lLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
Rjc2NkQzMTE1QUE4MTEyMDA4RjM2M0UgLyogSklUU3R1YlJvdXRpbmUuaCBpbiBIZWFkZXJzICov
LAorCQkJCTBGNzY2RDM1MTVBRTI1M0IwMDhGMzYzRSAvKiBKdW1wUmVwbGFjZW1lbnRXYXRjaHBv
aW50LmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rw
cm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTM0MzEsNiArMzQzOCw3IEBACiAJCQkJMEY3NjZEMjgx
NUE4Q0MxRTAwOEYzNjNFIC8qIEpJVFN0dWJSb3V0aW5lLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTBGNzY2RDJCMTVBOENDMzgwMDhGMzYzRSAvKiBKSVRTdHViUm91dGluZVNldC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkwRjc2NkQyRjE1QThEQ0UwMDA4RjM2M0UgLyogR0NBd2FyZUpJVFN0dWJS
b3V0aW5lLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGNzY2RDM0MTVBRTI1MzgwMDhGMzYzRSAv
KiBKdW1wUmVwbGFjZW1lbnRXYXRjaHBvaW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJ
CXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BYnN0cmFjdE1hY3JvQXNzZW1ibGVyLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BYnN0cmFjdE1hY3Jv
QXNzZW1ibGVyLmgJKHJldmlzaW9uIDEyMjI5NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9h
c3NlbWJsZXIvQWJzdHJhY3RNYWNyb0Fzc2VtYmxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC00Niw2
ICs0Niw3IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCitjbGFzcyBKdW1wUmVwbGFjZW1lbnRXYXRj
aHBvaW50OwogY2xhc3MgTGlua0J1ZmZlcjsKIGNsYXNzIFJlcGF0Y2hCdWZmZXI7CiBjbGFzcyBX
YXRjaHBvaW50OwpAQCAtMjc3LDYgKzI3OCw3IEBAIHB1YmxpYzoKICAgICAgICAgZnJpZW5kIGNs
YXNzIEFic3RyYWN0TWFjcm9Bc3NlbWJsZXI7CiAgICAgICAgIGZyaWVuZCBjbGFzcyBERkc6OkNv
cnJlY3RhYmxlSnVtcFBvaW50OwogICAgICAgICBmcmllbmQgY2xhc3MgSnVtcDsKKyAgICAgICAg
ZnJpZW5kIGNsYXNzIEp1bXBSZXBsYWNlbWVudFdhdGNocG9pbnQ7CiAgICAgICAgIGZyaWVuZCBj
bGFzcyBNYWNyb0Fzc2VtYmxlckNvZGVSZWY7CiAgICAgICAgIGZyaWVuZCBjbGFzcyBMaW5rQnVm
ZmVyOwogICAgICAgICBmcmllbmQgY2xhc3MgV2F0Y2hwb2ludDsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgJKHJldmlzaW9uIDEyMjI5NikKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAkod29ya2luZyBjb3B5KQpA
QCAtNTUsNiArNTUsNyBAQAogI2luY2x1ZGUgIkpJVENvZGUuaCIKICNpbmNsdWRlICJKSVRXcml0
ZUJhcnJpZXIuaCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIkp1bXBS
ZXBsYWNlbWVudFdhdGNocG9pbnQuaCIKICNpbmNsdWRlICJKdW1wVGFibGUuaCIKICNpbmNsdWRl
ICJMTEludENhbGxMaW5rSW5mby5oIgogI2luY2x1ZGUgIkxhenlPcGVyYW5kVmFsdWVQcm9maWxl
LmgiCkBAIC0zMjgsNyArMzI5LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICByZXR1
cm4gcmVzdWx0OwogICAgICAgICB9CiAgICAgICAgIAotICAgICAgICB1bnNpZ25lZCBhcHBlbmRX
YXRjaHBvaW50KGNvbnN0IFdhdGNocG9pbnQmIHdhdGNocG9pbnQpCisgICAgICAgIHVuc2lnbmVk
IGFwcGVuZFdhdGNocG9pbnQoY29uc3QgSnVtcFJlcGxhY2VtZW50V2F0Y2hwb2ludCYgd2F0Y2hw
b2ludCkKICAgICAgICAgewogICAgICAgICAgICAgY3JlYXRlREZHRGF0YUlmTmVjZXNzYXJ5KCk7
CiAgICAgICAgICAgICB1bnNpZ25lZCByZXN1bHQgPSBtX2RmZ0RhdGEtPndhdGNocG9pbnRzLnNp
emUoKTsKQEAgLTM2Nyw3ICszNjgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIHJl
dHVybiBtX2RmZ0RhdGEtPnNwZWN1bGF0aW9uUmVjb3ZlcnlbaW5kZXhdOwogICAgICAgICB9CiAg
ICAgICAgIAotICAgICAgICBXYXRjaHBvaW50JiB3YXRjaHBvaW50KHVuc2lnbmVkIGluZGV4KQor
ICAgICAgICBKdW1wUmVwbGFjZW1lbnRXYXRjaHBvaW50JiB3YXRjaHBvaW50KHVuc2lnbmVkIGlu
ZGV4KQogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4gbV9kZmdEYXRhLT53YXRjaHBvaW50
c1tpbmRleF07CiAgICAgICAgIH0KQEAgLTEyOTksNyArMTMwMCw3IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICAgICAgVmVjdG9yPERGRzo6T1NSRW50cnlEYXRhPiBvc3JFbnRyeTsKICAgICAg
ICAgICAgIFNlZ21lbnRlZFZlY3RvcjxERkc6Ok9TUkV4aXQsIDg+IG9zckV4aXQ7CiAgICAgICAg
ICAgICBWZWN0b3I8REZHOjpTcGVjdWxhdGlvblJlY292ZXJ5PiBzcGVjdWxhdGlvblJlY292ZXJ5
OwotICAgICAgICAgICAgU2VnbWVudGVkVmVjdG9yPFdhdGNocG9pbnQsIDEsIDA+IHdhdGNocG9p
bnRzOworICAgICAgICAgICAgU2VnbWVudGVkVmVjdG9yPEp1bXBSZXBsYWNlbWVudFdhdGNocG9p
bnQsIDEsIDA+IHdhdGNocG9pbnRzOwogICAgICAgICAgICAgVmVjdG9yPFdlYWtSZWZlcmVuY2VU
cmFuc2l0aW9uPiB0cmFuc2l0aW9uczsKICAgICAgICAgICAgIFZlY3RvcjxXcml0ZUJhcnJpZXI8
SlNDZWxsPiA+IHdlYWtSZWZlcmVuY2VzOwogICAgICAgICAgICAgREZHOjpWYXJpYWJsZUV2ZW50
U3RyZWFtIHZhcmlhYmxlRXZlbnRTdHJlYW07CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvV2F0Y2hwb2ludC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL1dhdGNocG9pbnQuY3BwCShyZXZpc2lvbiAxMjIyOTYpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvV2F0Y2hwb2ludC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTM5LDMwICszOSw2IEBAIFdhdGNocG9pbnQ6On5XYXRjaHBvaW50KCkKICAgICAgICAgcmVtb3Zl
KCk7CiB9CiAKLSNpZiBFTkFCTEUoSklUKQotdm9pZCBXYXRjaHBvaW50Ojpjb3JyZWN0TGFiZWxz
KExpbmtCdWZmZXImIGxpbmtCdWZmZXIpCi17Ci0gICAgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIGxh
YmVsOwotICAgIGxhYmVsLm1fbGFiZWwubV9vZmZzZXQgPSBtX3NvdXJjZTsKLSAgICBtX3NvdXJj
ZSA9IGJpdHdpc2VfY2FzdDx1aW50cHRyX3Q+KGxpbmtCdWZmZXIubG9jYXRpb25PZihsYWJlbCku
ZGF0YUxvY2F0aW9uKCkpOwotICAgIGxhYmVsLm1fbGFiZWwubV9vZmZzZXQgPSBtX2Rlc3RpbmF0
aW9uOwotICAgIG1fZGVzdGluYXRpb24gPSBiaXR3aXNlX2Nhc3Q8dWludHB0cl90PihsaW5rQnVm
ZmVyLmxvY2F0aW9uT2YobGFiZWwpLmRhdGFMb2NhdGlvbigpKTsKLX0KLSNlbmRpZgotCi12b2lk
IFdhdGNocG9pbnQ6OmZpcmUoKQotewotI2lmIEVOQUJMRShKSVQpCi0gICAgTWFjcm9Bc3NlbWJs
ZXI6OnJlcGxhY2VXaXRoSnVtcCgKLSAgICAgICAgQ29kZUxvY2F0aW9uTGFiZWwoYml0d2lzZV9j
YXN0PHZvaWQqPihtX3NvdXJjZSkpLAotICAgICAgICBDb2RlTG9jYXRpb25MYWJlbChiaXR3aXNl
X2Nhc3Q8dm9pZCo+KG1fZGVzdGluYXRpb24pKSk7Ci0gICAgaWYgKGlzT25MaXN0KCkpCi0gICAg
ICAgIHJlbW92ZSgpOwotI2Vsc2UKLSAgICBVTlJFQUNIQUJMRV9GT1JfUExBVEZPUk0oKTsKLSNl
bmRpZgotfQotCiBXYXRjaHBvaW50U2V0OjpXYXRjaHBvaW50U2V0KEluaXRpYWxXYXRjaHBvaW50
U2V0TW9kZSBtb2RlKQogICAgIDogbV9pc1dhdGNoZWQobW9kZSA9PSBJbml0aWFsaXplZFdhdGNo
aW5nKQogICAgICwgbV9pc0ludmFsaWRhdGVkKGZhbHNlKQpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL1dhdGNocG9pbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvV2F0Y2hwb2ludC5oCShyZXZpc2lvbiAxMjIyOTYpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvV2F0Y2hwb2ludC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yOSw4ICsyOSw2IEBACiAjaWZuZGVmIFdhdGNocG9pbnRfaAogI2RlZmluZSBXYXRjaHBvaW50
X2gKIAotI2luY2x1ZGUgIkNvZGVMb2NhdGlvbi5oIgotI2luY2x1ZGUgIk1hY3JvQXNzZW1ibGVy
LmgiCiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvU2VudGluZWxM
aW5rZWRMaXN0Lmg+CiAKQEAgLTM5LDMzICszNywxNSBAQCBuYW1lc3BhY2UgSlNDIHsKIGNsYXNz
IFdhdGNocG9pbnQgOiBwdWJsaWMgQmFzaWNSYXdTZW50aW5lbE5vZGU8V2F0Y2hwb2ludD4gewog
cHVibGljOgogICAgIFdhdGNocG9pbnQoKQotICAgICAgICA6IG1fc291cmNlKHN0ZDo6bnVtZXJp
Y19saW1pdHM8dWludHB0cl90Pjo6bWF4KCkpCi0gICAgICAgICwgbV9kZXN0aW5hdGlvbihzdGQ6
Om51bWVyaWNfbGltaXRzPHVpbnRwdHJfdD46Om1heCgpKQogICAgIHsKICAgICB9Ci0KLSNpZiBF
TkFCTEUoSklUKQotICAgIFdhdGNocG9pbnQoTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIHNvdXJjZSkK
LSAgICAgICAgOiBtX3NvdXJjZShzb3VyY2UubV9sYWJlbC5tX29mZnNldCkKLSAgICAgICAgLCBt
X2Rlc3RpbmF0aW9uKHN0ZDo6bnVtZXJpY19saW1pdHM8dWludHB0cl90Pjo6bWF4KCkpCi0gICAg
ewotICAgIH0KLSAgICAKLSAgICB2b2lkIHNldERlc3RpbmF0aW9uKE1hY3JvQXNzZW1ibGVyOjpM
YWJlbCBkZXN0aW5hdGlvbikKLSAgICB7Ci0gICAgICAgIG1fZGVzdGluYXRpb24gPSBkZXN0aW5h
dGlvbi5tX2xhYmVsLm1fb2Zmc2V0OwotICAgIH0KLSAgICAKLSAgICB2b2lkIGNvcnJlY3RMYWJl
bHMoTGlua0J1ZmZlciYpOwotI2VuZGlmCi0gICAgCi0gICAgfldhdGNocG9pbnQoKTsKICAgICAK
LSAgICB2b2lkIGZpcmUoKTsKKyAgICB2aXJ0dWFsIH5XYXRjaHBvaW50KCk7CisKKyAgICB2b2lk
IGZpcmUoKSB7IGZpcmVJbnRlcm5hbCgpOyB9CiAgICAgCi1wcml2YXRlOgotICAgIHVpbnRwdHJf
dCBtX3NvdXJjZTsKLSAgICB1aW50cHRyX3QgbV9kZXN0aW5hdGlvbjsKK3Byb3RlY3RlZDoKKyAg
ICB2aXJ0dWFsIHZvaWQgZmlyZUludGVybmFsKCkgPSAwOwogfTsKIAogZW51bSBJbml0aWFsV2F0
Y2hwb2ludFNldE1vZGUgeyBJbml0aWFsaXplZFdhdGNoaW5nLCBJbml0aWFsaXplZEJsaW5kIH07
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5o
CShyZXZpc2lvbiAxMjIyOTYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1
bGF0aXZlSklULmgJKHdvcmtpbmcgY29weSkKQEAgLTIxNjUsNyArMjE2NSw3IEBAIHB1YmxpYzoK
ICAgICAvLyBtdXN0IHJlZ2lzdGVyIHRoZSByZXR1cm5lZCBXYXRjaHBvaW50IHdpdGggc29tZXRo
aW5nIHJlbGV2YW50LiBJbiBnZW5lcmFsLCB0aGlzIHNob3VsZAogICAgIC8vIGJlIHVzZWQgd2l0
aCBleHRyZW1lIGNhcmUuIFVzZSBzcGVjdWxhdGlvbkNoZWNrKCkgdW5sZXNzIHlvdSd2ZSBnb3Qg
YW4gYW1hemluZyByZWFzb24KICAgICAvLyBub3QgdG8uCi0gICAgV2F0Y2hwb2ludCogc3BlY3Vs
YXRpb25XYXRjaHBvaW50KEV4aXRLaW5kIGtpbmQsIEpTVmFsdWVTb3VyY2UganNWYWx1ZVNvdXJj
ZSwgTm9kZUluZGV4IG5vZGVJbmRleCkKKyAgICBKdW1wUmVwbGFjZW1lbnRXYXRjaHBvaW50KiBz
cGVjdWxhdGlvbldhdGNocG9pbnQoRXhpdEtpbmQga2luZCwgSlNWYWx1ZVNvdXJjZSBqc1ZhbHVl
U291cmNlLCBOb2RlSW5kZXggbm9kZUluZGV4KQogICAgIHsKICAgICAgICAgaWYgKCFtX2NvbXBp
bGVPa2F5KQogICAgICAgICAgICAgcmV0dXJuIDA7CkBAIC0yMTc2LDEzICsyMTc2LDEzIEBAIHB1
YmxpYzoKICAgICAgICAgICAgICAgICAgICAgICAgIG1faml0LmdyYXBoKCkubWV0aG9kT2ZHZXR0
aW5nQVZhbHVlUHJvZmlsZUZvcihub2RlSW5kZXgpLAogICAgICAgICAgICAgICAgICAgICAgICAg
SklUQ29tcGlsZXI6Okp1bXAoKSwgdGhpcywgbV9zdHJlYW0tPnNpemUoKSkpKTsKICAgICAgICAg
ZXhpdC5tX3dhdGNocG9pbnRJbmRleCA9IG1faml0LmNvZGVCbG9jaygpLT5hcHBlbmRXYXRjaHBv
aW50KAotICAgICAgICAgICAgV2F0Y2hwb2ludChtX2ppdC53YXRjaHBvaW50TGFiZWwoKSkpOwor
ICAgICAgICAgICAgSnVtcFJlcGxhY2VtZW50V2F0Y2hwb2ludChtX2ppdC53YXRjaHBvaW50TGFi
ZWwoKSkpOwogICAgICAgICByZXR1cm4gJm1faml0LmNvZGVCbG9jaygpLT53YXRjaHBvaW50KGV4
aXQubV93YXRjaHBvaW50SW5kZXgpOwogICAgIH0KICAgICAvLyBUaGUgZGVmYXVsdCBmb3Igc3Bl
Y3VsYXRpb24gd2F0Y2hwb2ludHMgaXMgdGhhdCB0aGV5J3JlIHVuY291bnRlZCwgYmVjYXVzZSB0
aGUKICAgICAvLyBhY3Qgb2YgZmlyaW5nIGEgd2F0Y2hwb2ludCBpbnZhbGlkYXRlcyBpdC4gU28s
IGZ1dHVyZSByZWNvbXBpbGF0aW9ucyB3aWxsIG5vdAogICAgIC8vIGF0dGVtcHQgdG8gc2V0IHRo
aXMgd2F0Y2hwb2ludCBhZ2Fpbi4KLSAgICBXYXRjaHBvaW50KiBzcGVjdWxhdGlvbldhdGNocG9p
bnQoKQorICAgIEp1bXBSZXBsYWNlbWVudFdhdGNocG9pbnQqIHNwZWN1bGF0aW9uV2F0Y2hwb2lu
dCgpCiAgICAgewogICAgICAgICByZXR1cm4gc3BlY3VsYXRpb25XYXRjaHBvaW50KFVuY291bnRh
YmxlV2F0Y2hwb2ludCwgSlNWYWx1ZVNvdXJjZSgpLCBOb05vZGUpOwogICAgIH0KSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSnVtcFJlcGxhY2VtZW50V2F0Y2hwb2ludC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KdW1wUmVwbGFjZW1lbnRXYXRj
aHBvaW50LmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSnVt
cFJlcGxhY2VtZW50V2F0Y2hwb2ludC5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTkgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEu
ICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29t
cHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
CisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
QU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
CisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJKdW1wUmVwbGFjZW1lbnRXYXRjaHBvaW50
LmgiCisKKyNpZiBFTkFCTEUoSklUKQorCisjaW5jbHVkZSAiTGlua0J1ZmZlci5oIgorCituYW1l
c3BhY2UgSlNDIHsKKwordm9pZCBKdW1wUmVwbGFjZW1lbnRXYXRjaHBvaW50Ojpjb3JyZWN0TGFi
ZWxzKExpbmtCdWZmZXImIGxpbmtCdWZmZXIpCit7CisgICAgTWFjcm9Bc3NlbWJsZXI6OkxhYmVs
IGxhYmVsOworICAgIGxhYmVsLm1fbGFiZWwubV9vZmZzZXQgPSBtX3NvdXJjZTsKKyAgICBtX3Nv
dXJjZSA9IGJpdHdpc2VfY2FzdDx1aW50cHRyX3Q+KGxpbmtCdWZmZXIubG9jYXRpb25PZihsYWJl
bCkuZGF0YUxvY2F0aW9uKCkpOworICAgIGxhYmVsLm1fbGFiZWwubV9vZmZzZXQgPSBtX2Rlc3Rp
bmF0aW9uOworICAgIG1fZGVzdGluYXRpb24gPSBiaXR3aXNlX2Nhc3Q8dWludHB0cl90PihsaW5r
QnVmZmVyLmxvY2F0aW9uT2YobGFiZWwpLmRhdGFMb2NhdGlvbigpKTsKK30KKwordm9pZCBKdW1w
UmVwbGFjZW1lbnRXYXRjaHBvaW50OjpmaXJlSW50ZXJuYWwoKQoreworICAgIE1hY3JvQXNzZW1i
bGVyOjpyZXBsYWNlV2l0aEp1bXAoCisgICAgICAgIENvZGVMb2NhdGlvbkxhYmVsKGJpdHdpc2Vf
Y2FzdDx2b2lkKj4obV9zb3VyY2UpKSwKKyAgICAgICAgQ29kZUxvY2F0aW9uTGFiZWwoYml0d2lz
ZV9jYXN0PHZvaWQqPihtX2Rlc3RpbmF0aW9uKSkpOworICAgIGlmIChpc09uTGlzdCgpKQorICAg
ICAgICByZW1vdmUoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBFTkFC
TEUoSklUKQorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0p1bXBSZXBsYWNlbWVu
dFdhdGNocG9pbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0p1
bXBSZXBsYWNlbWVudFdhdGNocG9pbnQuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSnVtcFJlcGxhY2VtZW50V2F0Y2hwb2ludC5oCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1l
IG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAg
ICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICog
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaWZuZGVmIEp1bXBSZXBsYWNlbWVudFdhdGNocG9pbnRfaAorI2RlZmlu
ZSBKdW1wUmVwbGFjZW1lbnRXYXRjaHBvaW50X2gKKworI2luY2x1ZGUgIldhdGNocG9pbnQuaCIK
KworI2lmIEVOQUJMRShKSVQpCisKKyNpbmNsdWRlICJDb2RlTG9jYXRpb24uaCIKKyNpbmNsdWRl
ICJNYWNyb0Fzc2VtYmxlci5oIgorCituYW1lc3BhY2UgSlNDIHsKKworY2xhc3MgSnVtcFJlcGxh
Y2VtZW50V2F0Y2hwb2ludCA6IHB1YmxpYyBXYXRjaHBvaW50IHsKK3B1YmxpYzoKKyAgICBKdW1w
UmVwbGFjZW1lbnRXYXRjaHBvaW50KCkKKyAgICAgICAgOiBtX3NvdXJjZShzdGQ6Om51bWVyaWNf
bGltaXRzPHVpbnRwdHJfdD46Om1heCgpKQorICAgICAgICAsIG1fZGVzdGluYXRpb24oc3RkOjpu
dW1lcmljX2xpbWl0czx1aW50cHRyX3Q+OjptYXgoKSkKKyAgICB7CisgICAgfQorICAgIAorICAg
IEp1bXBSZXBsYWNlbWVudFdhdGNocG9pbnQoTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIHNvdXJjZSkK
KyAgICAgICAgOiBtX3NvdXJjZShzb3VyY2UubV9sYWJlbC5tX29mZnNldCkKKyAgICAgICAgLCBt
X2Rlc3RpbmF0aW9uKHN0ZDo6bnVtZXJpY19saW1pdHM8dWludHB0cl90Pjo6bWF4KCkpCisgICAg
eworICAgIH0KKyAgICAKKyAgICB2b2lkIHNldERlc3RpbmF0aW9uKE1hY3JvQXNzZW1ibGVyOjpM
YWJlbCBkZXN0aW5hdGlvbikKKyAgICB7CisgICAgICAgIG1fZGVzdGluYXRpb24gPSBkZXN0aW5h
dGlvbi5tX2xhYmVsLm1fb2Zmc2V0OworICAgIH0KKyAgICAKKyAgICB2b2lkIGNvcnJlY3RMYWJl
bHMoTGlua0J1ZmZlciYpOworCitwcm90ZWN0ZWQ6CisgICAgdm9pZCBmaXJlSW50ZXJuYWwoKTsK
KworcHJpdmF0ZToKKyAgICB1aW50cHRyX3QgbV9zb3VyY2U7CisgICAgdWludHB0cl90IG1fZGVz
dGluYXRpb247Cit9OworCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIEVOQUJMRShK
SVQpCisKKyNlbmRpZiAvLyBKdW1wUmVwbGFjZW1lbnRXYXRjaHBvaW50X2gKKwo=
</data>
<flag name="review"
          id="160312"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>