<?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>209327</bug_id>
          
          <creation_ts>2020-03-20 00:53:30 -0700</creation_ts>
          <short_desc>[JSC] DFG OSR exit cannot find StructureStubInfo for put_by_val if CodeBlock is once converved from Baseline to LLInt</short_desc>
          <delta_ts>2020-03-23 14:09:27 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1632021</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-03-20 00:53:30 -0700</bug_when>
    <thetext>[JSC] DFG OSR exit cannot find StructureStubInfo for put_by_val if CodeBlock is once converved from Baseline to LLInt</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632022</commentid>
    <comment_count>1</comment_count>
      <attachid>394071</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-03-20 00:56:16 -0700</bug_when>
    <thetext>Created attachment 394071
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632023</commentid>
    <comment_count>2</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-03-20 00:56:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/60631061&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632987</commentid>
    <comment_count>3</comment_count>
      <attachid>394071</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-03-23 13:00:37 -0700</bug_when>
    <thetext>Comment on attachment 394071
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:15
&gt; +            3. Since (A) collects enough information for put_by_val, (B) can get StructureStubInfo from (A) and copmile it as inlined Setter call.

copmile =&gt; compile

&gt; Source/JavaScriptCore/ChangeLog:20
&gt; +        We should just link to doneTarget of ByValInfo when the SetterCall is generated by `op_put_by_val`. ByValInfo and its doneTarget always exists per op_put_by_val.

nice. Once we make put_by_val SSI based, this will just go away too

&gt; Source/JavaScriptCore/dfg/DFGOSRExitCompilerCommon.cpp:216
&gt; +            StructureStubInfo* stubInfo = baselineCodeBlockForCaller-&gt;findStubInfo(CodeOrigin(callBytecodeIndex));

move this after the if?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1633014</commentid>
    <comment_count>4</comment_count>
      <attachid>394071</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-03-23 14:06:51 -0700</bug_when>
    <thetext>Comment on attachment 394071
Patch

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

&gt;&gt; Source/JavaScriptCore/ChangeLog:15
&gt;&gt; +            3. Since (A) collects enough information for put_by_val, (B) can get StructureStubInfo from (A) and copmile it as inlined Setter call.
&gt; 
&gt; copmile =&gt; compile

Fixed.

&gt;&gt; Source/JavaScriptCore/ChangeLog:20
&gt;&gt; +        We should just link to doneTarget of ByValInfo when the SetterCall is generated by `op_put_by_val`. ByValInfo and its doneTarget always exists per op_put_by_val.
&gt; 
&gt; nice. Once we make put_by_val SSI based, this will just go away too

Yeah, right.

&gt;&gt; Source/JavaScriptCore/dfg/DFGOSRExitCompilerCommon.cpp:216
&gt;&gt; +            StructureStubInfo* stubInfo = baselineCodeBlockForCaller-&gt;findStubInfo(CodeOrigin(callBytecodeIndex));
&gt; 
&gt; move this after the if?

Nice catch. Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1633017</commentid>
    <comment_count>5</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-03-23 14:09:27 -0700</bug_when>
    <thetext>Committed r258874: &lt;https://trac.webkit.org/changeset/258874&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394071</attachid>
            <date>2020-03-20 00:56:16 -0700</date>
            <delta_ts>2020-03-23 13:00:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209327-20200320005615.patch</filename>
            <type>text/plain</type>
            <size>13798</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4NzMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
NDFlNmRhMWNhYmNiZDY3MTIxNjFlNTk1ZTUyYmU5YTI4ODYzOTVkLi5jNjMyZWMxN2IyYTczNmU3
ZjA4MmI2YzZhNjgzMmJlMDlkOGNjNjVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzOSBAQAorMjAyMC0wMy0yMCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIERGRyBPU1IgZXhpdCBjYW5ub3QgZmluZCBTdHJ1Y3R1cmVTdHVi
SW5mbyBmb3IgcHV0X2J5X3ZhbCBpZiBDb2RlQmxvY2sgaXMgb25jZSBjb252ZXJ2ZWQgZnJvbSBC
YXNlbGluZSB0byBMTEludAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjA5MzI3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MDYzMTA2MT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBERkcgY29tcGlsZXMg
b3BfcHV0X2J5X3ZhbCBhcyBQdXRCeUlkIGFuZCBpbmxpbmVzIFNldHRlckNhbGwgb25seSB3aGVu
IERGRyBmb3VuZCBTdHJ1Y3R1cmVTdHViSW5mbyBmb3IgdGhpcyBvcF9wdXRfYnlfdmFsLgorICAg
ICAgICBIb3dldmVyLCBpdCBpcyBzdGlsbCBwb3NzaWJsZSB0aGF0IERGRyBPU1IgZXhpdCBjYW5u
b3QgZmluZCBTdHJ1Y3R1cmVTdHViSW5mbyBmb3IgU2V0dGVyQ2FsbCBnZW5lcmF0ZWQgYnkgb3Bf
cHV0X2J5X3ZhbC4KKyAgICAgICAgTGV0J3MgY29uc2lkZXIgdGhlIGZvbGxvd2luZyBzY2VuYXJp
by4KKworICAgICAgICAgICAgMS4gQmFzZWxpbmUgQ29kZUJsb2NrIChBKSBpcyBjb21waWxlZC4K
KyAgICAgICAgICAgIDIuIChBKSBnZXRzIERGRyAoQikuCisgICAgICAgICAgICAzLiBTaW5jZSAo
QSkgY29sbGVjdHMgZW5vdWdoIGluZm9ybWF0aW9uIGZvciBwdXRfYnlfdmFsLCAoQikgY2FuIGdl
dCBTdHJ1Y3R1cmVTdHViSW5mbyBmcm9tIChBKSBhbmQgY29wbWlsZSBpdCBhcyBpbmxpbmVkIFNl
dHRlciBjYWxsLgorICAgICAgICAgICAgNC4gKEEpJ3MgSklURGF0YSBpcyBkZXN0cm95ZWQgc2lu
Y2UgaXQgaXMgbm90IGV4ZWN1dGVkLiBUaGVuLCAoQSkgYmVjb21lcyBMTEludC4KKyAgICAgICAg
ICAgIDUuIFRoZSBDb2RlQmxvY2sgaW5saW5pbmcgKEEpIGdldHMgT1NSIGV4aXQuIFNvIChBKSBp
cyBleGVjdXRlZCBhbmQgKEEpIGV2ZW50dWFsbHkgZ2V0cyBCYXNlbGluZSBDb2RlQmxvY2sgYWdh
aW4uCisgICAgICAgICAgICA2LiAoQikgZ2V0cyBPU1IgZXhpdC4gKEIpIGF0dGVtcHRzIHRvIHNl
YXJjaCBmb3IgU3RydWN0dXJlU3R1YkluZm8gaW4gKEEpIGZvciBQdXRCeUlkIChvcmlnaW5hbGx5
LCBwdXRfYnlfdmFsKS4gQnV0IGl0IGRvZXMgbm90IGV4aXN0IHNpbmNlIChBKSdzIEpJVERhdGEg
aXMgY2xlYXJlZCBvbmNlLgorCisgICAgICAgIFdlIHNob3VsZCBqdXN0IGxpbmsgdG8gZG9uZVRh
cmdldCBvZiBCeVZhbEluZm8gd2hlbiB0aGUgU2V0dGVyQ2FsbCBpcyBnZW5lcmF0ZWQgYnkgYG9w
X3B1dF9ieV92YWxgLiBCeVZhbEluZm8gYW5kIGl0cyBkb25lVGFyZ2V0IGFsd2F5cyBleGlzdHMg
cGVyIG9wX3B1dF9ieV92YWwuCisKKyAgICAgICAgKiBieXRlY29kZS9CeVZhbEluZm8uaDoKKyAg
ICAgICAgKEpTQzo6QnlWYWxJbmZvOjpCeVZhbEluZm8pOgorICAgICAgICAqIGJ5dGVjb2RlL0Nv
ZGVCbG9jay5jcHA6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6ZmluZEJ5VmFsSW5mbyk6Cisg
ICAgICAgICogYnl0ZWNvZGUvQ29kZUJsb2NrLmg6CisgICAgICAgICogZGZnL0RGR09TUkV4aXRD
b21waWxlckNvbW1vbi5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Y2FsbGVyUmV0dXJuUEMpOgor
ICAgICAgICAqIGppdC9KSVRPcGNvZGVzLmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjpwcml2YXRl
Q29tcGlsZUhhc0luZGV4ZWRQcm9wZXJ0eSk6CisgICAgICAgICogaml0L0pJVE9wY29kZXMzMl82
NC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGVIYXNJbmRleGVkUHJvcGVy
dHkpOgorICAgICAgICAqIGppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHA6CisgICAgICAgIChKU0M6
OkpJVDo6cHJpdmF0ZUNvbXBpbGVQdXRCeVZhbCk6CisgICAgICAgIChKU0M6OkpJVDo6cHJpdmF0
ZUNvbXBpbGVQdXRCeVZhbFdpdGhDYWNoZWRJZCk6CisKIDIwMjAtMDMtMTkgIFl1c3VrZSBTdXp1
a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBTdHJ1Y3R1cmVTdHViSW5m
bzo6YnVmZmVyZWRTdHJ1Y3R1cmVzIHNob3VsZCBub3QgcmVmL2RlcmVmIFVuaXF1ZWRTdHJpbmdJ
bXBsCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnlWYWxJbmZv
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnlWYWxJbmZvLmgKaW5kZXggMDU3
ZjAxMzg5MWFhMmI5MTRhOThiZWEyNTgwNTY0YmMxMWNmZGRlZS4uNjZlNGYyNDdmNDNjNjVlMGMw
YzQ0ZmVkZmFmODFlYzQ4ZWUwNWU0OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0J5VmFsSW5mby5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9CeVZhbEluZm8uaApAQCAtMjI3LDExICsyMjcsMTEgQEAgaW5saW5lIEpJVEFycmF5TW9kZSBq
aXRBcnJheU1vZGVGb3JTdHJ1Y3R1cmUoU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiBzdHJ1Y3QgQnlW
YWxJbmZvIHsKICAgICBCeVZhbEluZm8oKSB7IH0KIAotICAgIEJ5VmFsSW5mbyhCeXRlY29kZUlu
ZGV4IGJ5dGVjb2RlSW5kZXgsIENvZGVMb2NhdGlvbkp1bXA8SlNJbnRlcm5hbFB0clRhZz4gbm90
SW5kZXhKdW1wLCBDb2RlTG9jYXRpb25KdW1wPEpTSW50ZXJuYWxQdHJUYWc+IGJhZFR5cGVKdW1w
LCBDb2RlTG9jYXRpb25MYWJlbDxFeGNlcHRpb25IYW5kbGVyUHRyVGFnPiBleGNlcHRpb25IYW5k
bGVyLCBKSVRBcnJheU1vZGUgYXJyYXlNb2RlLCBBcnJheVByb2ZpbGUqIGFycmF5UHJvZmlsZSwg
Q29kZUxvY2F0aW9uTGFiZWw8SlNJbnRlcm5hbFB0clRhZz4gYmFkVHlwZURvbmVUYXJnZXQsIENv
ZGVMb2NhdGlvbkxhYmVsPEpTSW50ZXJuYWxQdHJUYWc+IGJhZFR5cGVOZXh0SG90UGF0aFRhcmdl
dCwgQ29kZUxvY2F0aW9uTGFiZWw8SlNJbnRlcm5hbFB0clRhZz4gc2xvd1BhdGhUYXJnZXQpCisg
ICAgQnlWYWxJbmZvKEJ5dGVjb2RlSW5kZXggYnl0ZWNvZGVJbmRleCwgQ29kZUxvY2F0aW9uSnVt
cDxKU0ludGVybmFsUHRyVGFnPiBub3RJbmRleEp1bXAsIENvZGVMb2NhdGlvbkp1bXA8SlNJbnRl
cm5hbFB0clRhZz4gYmFkVHlwZUp1bXAsIENvZGVMb2NhdGlvbkxhYmVsPEV4Y2VwdGlvbkhhbmRs
ZXJQdHJUYWc+IGV4Y2VwdGlvbkhhbmRsZXIsIEpJVEFycmF5TW9kZSBhcnJheU1vZGUsIEFycmF5
UHJvZmlsZSogYXJyYXlQcm9maWxlLCBDb2RlTG9jYXRpb25MYWJlbDxKU0ludGVybmFsUHRyVGFn
PiBkb25lVGFyZ2V0LCBDb2RlTG9jYXRpb25MYWJlbDxKU0ludGVybmFsUHRyVGFnPiBiYWRUeXBl
TmV4dEhvdFBhdGhUYXJnZXQsIENvZGVMb2NhdGlvbkxhYmVsPEpTSW50ZXJuYWxQdHJUYWc+IHNs
b3dQYXRoVGFyZ2V0KQogICAgICAgICA6IG5vdEluZGV4SnVtcChub3RJbmRleEp1bXApCiAgICAg
ICAgICwgYmFkVHlwZUp1bXAoYmFkVHlwZUp1bXApCiAgICAgICAgICwgZXhjZXB0aW9uSGFuZGxl
cihleGNlcHRpb25IYW5kbGVyKQotICAgICAgICAsIGJhZFR5cGVEb25lVGFyZ2V0KGJhZFR5cGVE
b25lVGFyZ2V0KQorICAgICAgICAsIGRvbmVUYXJnZXQoZG9uZVRhcmdldCkKICAgICAgICAgLCBi
YWRUeXBlTmV4dEhvdFBhdGhUYXJnZXQoYmFkVHlwZU5leHRIb3RQYXRoVGFyZ2V0KQogICAgICAg
ICAsIHNsb3dQYXRoVGFyZ2V0KHNsb3dQYXRoVGFyZ2V0KQogICAgICAgICAsIGFycmF5UHJvZmls
ZShhcnJheVByb2ZpbGUpCkBAIC0yNDksNyArMjQ5LDcgQEAgc3RydWN0IEJ5VmFsSW5mbyB7CiAg
ICAgQ29kZUxvY2F0aW9uSnVtcDxKU0ludGVybmFsUHRyVGFnPiBub3RJbmRleEp1bXA7CiAgICAg
Q29kZUxvY2F0aW9uSnVtcDxKU0ludGVybmFsUHRyVGFnPiBiYWRUeXBlSnVtcDsKICAgICBDb2Rl
TG9jYXRpb25MYWJlbDxFeGNlcHRpb25IYW5kbGVyUHRyVGFnPiBleGNlcHRpb25IYW5kbGVyOwot
ICAgIENvZGVMb2NhdGlvbkxhYmVsPEpTSW50ZXJuYWxQdHJUYWc+IGJhZFR5cGVEb25lVGFyZ2V0
OworICAgIENvZGVMb2NhdGlvbkxhYmVsPEpTSW50ZXJuYWxQdHJUYWc+IGRvbmVUYXJnZXQ7CiAg
ICAgQ29kZUxvY2F0aW9uTGFiZWw8SlNJbnRlcm5hbFB0clRhZz4gYmFkVHlwZU5leHRIb3RQYXRo
VGFyZ2V0OwogICAgIENvZGVMb2NhdGlvbkxhYmVsPEpTSW50ZXJuYWxQdHJUYWc+IHNsb3dQYXRo
VGFyZ2V0OwogICAgIEFycmF5UHJvZmlsZSogYXJyYXlQcm9maWxlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAppbmRleCA3NDM2OTUzNGU5MGVjNzdhMzE1
ZDVlOWMyMDA4ZjJmYzllYzEyNGZlLi5iODBmYjY1ZmQ3NmM3MzBiNmFjNjliZmNhN2Y2MDY2YTMw
NWIxZTM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJs
b2NrLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNw
cApAQCAtMTU1Nyw2ICsxNTU3LDE4IEBAIFN0cnVjdHVyZVN0dWJJbmZvKiBDb2RlQmxvY2s6OmZp
bmRTdHViSW5mbyhDb2RlT3JpZ2luIGNvZGVPcmlnaW4pCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9
CiAKK0J5VmFsSW5mbyogQ29kZUJsb2NrOjpmaW5kQnlWYWxJbmZvKENvZGVPcmlnaW4gY29kZU9y
aWdpbikKK3sKKyAgICBDb25jdXJyZW50SlNMb2NrZXIgbG9ja2VyKG1fbG9jayk7CisgICAgaWYg
KGF1dG8qIGppdERhdGEgPSBtX2ppdERhdGEuZ2V0KCkpIHsKKyAgICAgICAgZm9yIChCeVZhbElu
Zm8qIGJ5VmFsSW5mbyA6IGppdERhdGEtPm1fYnlWYWxJbmZvcykgeworICAgICAgICAgICAgaWYg
KGJ5VmFsSW5mby0+Ynl0ZWNvZGVJbmRleCA9PSBjb2RlT3JpZ2luLmJ5dGVjb2RlSW5kZXgoKSkK
KyAgICAgICAgICAgICAgICByZXR1cm4gYnlWYWxJbmZvOworICAgICAgICB9CisgICAgfQorICAg
IHJldHVybiBudWxscHRyOworfQorCiBCeVZhbEluZm8qIENvZGVCbG9jazo6YWRkQnlWYWxJbmZv
KCkKIHsKICAgICBDb25jdXJyZW50SlNMb2NrZXIgbG9ja2VyKG1fbG9jayk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgKaW5kZXggNjcxZmIzZTM3NTVhNDUzMzdk
Njg1YjI4NDk3NjM2ZTRiOThhZmQzYS4uZDNiMDZhODkxYWVmYzZjNzk0ZDc1ZTFjMGQwMDQ2ZTE5
MjM4ZTgyNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVC
bG9jay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaApA
QCAtMzEyLDkgKzMxMiwxMCBAQCBjbGFzcyBDb2RlQmxvY2sgOiBwdWJsaWMgSlNDZWxsIHsKIAog
ICAgIFN0cnVjdHVyZVN0dWJJbmZvKiBhZGRTdHViSW5mbyhBY2Nlc3NUeXBlKTsKIAotICAgIC8v
IE8obikgb3BlcmF0aW9uLiBVc2UgZ2V0U3R1YkluZm9NYXAoKSB1bmxlc3MgeW91IHJlYWxseSBv
bmx5IGludGVuZCB0byBnZXQgb25lCi0gICAgLy8gc3R1YiBpbmZvLgorICAgIC8vIE8obikgb3Bl
cmF0aW9uLiBVc2UgZ2V0SUNTdGF0dXNNYXAoKSB1bmxlc3MgeW91IHJlYWxseSBvbmx5IGludGVu
ZCB0byBnZXQgb25lIHN0dWIgaW5mby4KICAgICBTdHJ1Y3R1cmVTdHViSW5mbyogZmluZFN0dWJJ
bmZvKENvZGVPcmlnaW4pOworICAgIC8vIE8obikgb3BlcmF0aW9uLiBVc2UgZ2V0SUNTdGF0dXNN
YXAoKSB1bmxlc3MgeW91IHJlYWxseSBvbmx5IGludGVuZCB0byBnZXQgb25lIGJ5LXZhbC1pbmZv
LgorICAgIEJ5VmFsSW5mbyogZmluZEJ5VmFsSW5mbyhDb2RlT3JpZ2luKTsKIAogICAgIEJ5VmFs
SW5mbyogYWRkQnlWYWxJbmZvKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyQ29tbW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyQ29tbW9uLmNwcAppbmRleCA0ZWYyNjYxMDVhOTAxOTBh
NDNlZmIxMGQ2NGIyZjE4NGJiZGFjYTA3Li5jY2Q5ZjE1MWJjN2Y3Yjc0MjlhOTJmNGQ5ZDg2ZDY1
MGQyODVlNGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4
aXRDb21waWxlckNvbW1vbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdP
U1JFeGl0Q29tcGlsZXJDb21tb24uY3BwCkBAIC0xNTQsOCArMTU0LDggQEAgTWFjcm9Bc3NlbWJs
ZXJDb2RlUHRyPEpTRW50cnlQdHJUYWc+IGNhbGxlclJldHVyblBDKENvZGVCbG9jayogYmFzZWxp
bmVDb2RlQmxvY2sKIAogICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFnPiBq
dW1wVGFyZ2V0OwogCisgICAgY29uc3QgSW5zdHJ1Y3Rpb24mIGNhbGxJbnN0cnVjdGlvbiA9ICpi
YXNlbGluZUNvZGVCbG9ja0ZvckNhbGxlci0+aW5zdHJ1Y3Rpb25zKCkuYXQoY2FsbEJ5dGVjb2Rl
SW5kZXgpLnB0cigpOwogICAgIGlmIChjYWxsZXJJc0xMSW50KSB7Ci0gICAgICAgIGNvbnN0IElu
c3RydWN0aW9uJiBjYWxsSW5zdHJ1Y3Rpb24gPSAqYmFzZWxpbmVDb2RlQmxvY2tGb3JDYWxsZXIt
Pmluc3RydWN0aW9ucygpLmF0KGNhbGxCeXRlY29kZUluZGV4KS5wdHIoKTsKICNkZWZpbmUgTExJ
TlRfUkVUVVJOX0xPQ0FUSU9OKG5hbWUpIChjYWxsSW5zdHJ1Y3Rpb24uaXNXaWRlMTYoKSA/IExM
SW50OjpnZXRXaWRlMTZDb2RlUHRyPEpTRW50cnlQdHJUYWc+KG5hbWUjI19yZXR1cm5fbG9jYXRp
b24pIDogKGNhbGxJbnN0cnVjdGlvbi5pc1dpZGUzMigpID8gTExJbnQ6OmdldFdpZGUzMkNvZGVQ
dHI8SlNFbnRyeVB0clRhZz4obmFtZSMjX3JldHVybl9sb2NhdGlvbikgOiBMTEludDo6Z2V0Q29k
ZVB0cjxKU0VudHJ5UHRyVGFnPihuYW1lIyNfcmV0dXJuX2xvY2F0aW9uKSkpCiAKICAgICAgICAg
c3dpdGNoICh0cnVlQ2FsbGVyQ2FsbEtpbmQpIHsKQEAgLTIxMywxMCArMjEzLDIzIEBAIE1hY3Jv
QXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFnPiBjYWxsZXJSZXR1cm5QQyhDb2RlQmxvY2sq
IGJhc2VsaW5lQ29kZUJsb2NrCiAKICAgICAgICAgY2FzZSBJbmxpbmVDYWxsRnJhbWU6OkdldHRl
ckNhbGw6CiAgICAgICAgIGNhc2UgSW5saW5lQ2FsbEZyYW1lOjpTZXR0ZXJDYWxsOiB7Ci0gICAg
ICAgICAgICBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8gPQotICAgICAgICAgICAgICAgIGJh
c2VsaW5lQ29kZUJsb2NrRm9yQ2FsbGVyLT5maW5kU3R1YkluZm8oQ29kZU9yaWdpbihjYWxsQnl0
ZWNvZGVJbmRleCkpOwotICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoc3R1YkluZm8pOworICAg
ICAgICAgICAgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvID0gYmFzZWxpbmVDb2RlQmxvY2tG
b3JDYWxsZXItPmZpbmRTdHViSW5mbyhDb2RlT3JpZ2luKGNhbGxCeXRlY29kZUluZGV4KSk7Cisg
ICAgICAgICAgICBpZiAoY2FsbEluc3RydWN0aW9uLm9wY29kZUlEKCkgPT0gb3BfcHV0X2J5X3Zh
bCkgeworICAgICAgICAgICAgICAgIC8vIFdlIGNvbXBpbGUgb3BfcHV0X2J5X3ZhbCBhcyBQdXRC
eUlkIGFuZCBpbmxpbmVzIFNldHRlckNhbGwgb25seSB3aGVuIHdlIGZvdW5kIFN0cnVjdHVyZVN0
dWJJbmZvIGZvciB0aGlzIG9wX3B1dF9ieV92YWwuCisgICAgICAgICAgICAgICAgLy8gQnV0IHN0
aWxsIGl0IGlzIHBvc3NpYmxlIHRoYXQgd2UgY2Fubm90IGZpbmQgU3RydWN0dXJlU3R1YkluZm8g
aGVyZS4gTGV0J3MgY29uc2lkZXIgdGhlIGZvbGxvd2luZyBzY2VuYXJpby4KKyAgICAgICAgICAg
ICAgICAvLyAxLiBCYXNlbGluZSBDb2RlQmxvY2sgKEEpIGlzIGNvbXBpbGVkLgorICAgICAgICAg
ICAgICAgIC8vIDIuIChBKSBnZXRzIERGRyAoQikuCisgICAgICAgICAgICAgICAgLy8gMy4gU2lu
Y2UgKEEpIGNvbGxlY3RzIGVub3VnaCBpbmZvcm1hdGlvbiBmb3IgcHV0X2J5X3ZhbCwgKEIpIGNh
biBnZXQgU3RydWN0dXJlU3R1YkluZm8gZnJvbSAoQSkgYW5kIGNvcG1pbGUgaXQgYXMgaW5saW5l
ZCBTZXR0ZXIgY2FsbC4KKyAgICAgICAgICAgICAgICAvLyA0LiAoQSkncyBKSVREYXRhIGlzIGRl
c3Ryb3llZCBzaW5jZSBpdCBpcyBub3QgZXhlY3V0ZWQuIFRoZW4sIChBKSBiZWNvbWVzIExMSW50
LgorICAgICAgICAgICAgICAgIC8vIDUuIFRoZSBDb2RlQmxvY2sgaW5saW5pbmcgKEEpIGdldHMg
T1NSIGV4aXQuIFNvIChBKSBpcyBleGVjdXRlZCBhbmQgKEEpIGV2ZW50dWFsbHkgZ2V0cyBCYXNl
bGluZSBDb2RlQmxvY2sgYWdhaW4uCisgICAgICAgICAgICAgICAgLy8gNi4gKEIpIGdldHMgT1NS
IGV4aXQuIChCKSBhdHRlbXB0cyB0byBzZWFyY2ggZm9yIFN0cnVjdHVyZVN0dWJJbmZvIGluIChB
KSBmb3IgUHV0QnlJZCAob3JpZ2luYWxseSwgcHV0X2J5X3ZhbCkuIEJ1dCBpdCBkb2VzIG5vdCBl
eGlzdCBzaW5jZSAoQSkncyBKSVREYXRhIGlzIGNsZWFyZWQgb25jZS4KKyAgICAgICAgICAgICAg
ICBCeVZhbEluZm8qIGJ5VmFsSW5mbyA9IGJhc2VsaW5lQ29kZUJsb2NrRm9yQ2FsbGVyLT5maW5k
QnlWYWxJbmZvKENvZGVPcmlnaW4oY2FsbEJ5dGVjb2RlSW5kZXgpKTsKKyAgICAgICAgICAgICAg
ICBSRUxFQVNFX0FTU0VSVChieVZhbEluZm8pOworICAgICAgICAgICAgICAgIGp1bXBUYXJnZXQg
PSBieVZhbEluZm8tPmRvbmVUYXJnZXQucmV0YWdnZWQ8SlNFbnRyeVB0clRhZz4oKTsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KIAorICAgICAgICAgICAgUkVMRUFTRV9B
U1NFUlQoc3R1YkluZm8pOwogICAgICAgICAgICAganVtcFRhcmdldCA9IHN0dWJJbmZvLT5kb25l
TG9jYXRpb24ucmV0YWdnZWQ8SlNFbnRyeVB0clRhZz4oKTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29k
ZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcAppbmRleCBm
ZGUwMGJjYzhjOTA0NTljNzUzNDUwNjJhNjExZGMxZGU0MjljZmVmLi5jM2NiZmZhMmVkY2JmZjRi
ZjJiNGVmNTUxODczNjQ3N2RiNDA2YjBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVE9wY29kZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
T3Bjb2Rlcy5jcHAKQEAgLTEyODUsNyArMTI4NSw3IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGls
ZUhhc0luZGV4ZWRQcm9wZXJ0eShCeVZhbEluZm8qIGJ5VmFsSW5mbywgUmV0dXJuQWRkcmVzc1B0
CiAgICAgcGF0Y2hCdWZmZXIubGluayhiYWRUeXBlLCBieVZhbEluZm8tPnNsb3dQYXRoVGFyZ2V0
KTsKICAgICBwYXRjaEJ1ZmZlci5saW5rKHNsb3dDYXNlcywgYnlWYWxJbmZvLT5zbG93UGF0aFRh
cmdldCk7CiAKLSAgICBwYXRjaEJ1ZmZlci5saW5rKGRvbmUsIGJ5VmFsSW5mby0+YmFkVHlwZURv
bmVUYXJnZXQpOworICAgIHBhdGNoQnVmZmVyLmxpbmsoZG9uZSwgYnlWYWxJbmZvLT5kb25lVGFy
Z2V0KTsKIAogICAgIGJ5VmFsSW5mby0+c3R1YlJvdXRpbmUgPSBGSU5BTElaRV9DT0RFX0ZPUl9T
VFVCKAogICAgICAgICBtX2NvZGVCbG9jaywgcGF0Y2hCdWZmZXIsIEpJVFN0dWJSb3V0aW5lUHRy
VGFnLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJf
NjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwCmlu
ZGV4IGIxMWY2NTVmY2I2ZjY2MDU1Mjc5OWMxMmExMGNjYmY5MTkwZTg2MjAuLmE4YzIwMzY4YTQ1
NGY2ODc0OWJmOGU4NjhkYmNlY2VhYmNhZTg5NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAKQEAgLTExNTgsNyArMTE1OCw3IEBAIHZvaWQgSklU
Ojpwcml2YXRlQ29tcGlsZUhhc0luZGV4ZWRQcm9wZXJ0eShCeVZhbEluZm8qIGJ5VmFsSW5mbywg
UmV0dXJuQWRkcmVzc1B0CiAgICAgcGF0Y2hCdWZmZXIubGluayhiYWRUeXBlLCBieVZhbEluZm8t
PnNsb3dQYXRoVGFyZ2V0KTsKICAgICBwYXRjaEJ1ZmZlci5saW5rKHNsb3dDYXNlcywgYnlWYWxJ
bmZvLT5zbG93UGF0aFRhcmdldCk7CiAKLSAgICBwYXRjaEJ1ZmZlci5saW5rKGRvbmUsIGJ5VmFs
SW5mby0+YmFkVHlwZURvbmVUYXJnZXQpOworICAgIHBhdGNoQnVmZmVyLmxpbmsoZG9uZSwgYnlW
YWxJbmZvLT5kb25lVGFyZ2V0KTsKIAogICAgIGJ5VmFsSW5mby0+c3R1YlJvdXRpbmUgPSBGSU5B
TElaRV9DT0RFX0ZPUl9TVFVCKAogICAgICAgICBtX2NvZGVCbG9jaywgcGF0Y2hCdWZmZXIsIEpJ
VFN0dWJSb3V0aW5lUHRyVGFnLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFBy
b3BlcnR5QWNjZXNzLmNwcAppbmRleCBiNTNhNDkwZjVkZmIwOWZmNzJiM2U3YWUwNzQ3YzQxMjk1
NWU1ZmY0Li5mNTM1OGI2MTZhOTk5YTBjMDRkZjQwYmE5ODFlOTFjZjZlNGU5YWMzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcApAQCAtMTMz
Niw3ICsxMzM2LDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlUHV0QnlWYWwoY29uc3QgQ29u
Y3VycmVudEpTTG9ja2VyJiwgQnlWYWxJbmZvKiBieVZhbEluZm8KICAgICBMaW5rQnVmZmVyIHBh
dGNoQnVmZmVyKCp0aGlzLCBtX2NvZGVCbG9jayk7CiAgICAgcGF0Y2hCdWZmZXIubGluayhiYWRU
eXBlLCBieVZhbEluZm8tPnNsb3dQYXRoVGFyZ2V0KTsKICAgICBwYXRjaEJ1ZmZlci5saW5rKHNs
b3dDYXNlcywgYnlWYWxJbmZvLT5zbG93UGF0aFRhcmdldCk7Ci0gICAgcGF0Y2hCdWZmZXIubGlu
ayhkb25lLCBieVZhbEluZm8tPmJhZFR5cGVEb25lVGFyZ2V0KTsKKyAgICBwYXRjaEJ1ZmZlci5s
aW5rKGRvbmUsIGJ5VmFsSW5mby0+ZG9uZVRhcmdldCk7CiAgICAgaWYgKG5lZWRzTGlua0Zvcldy
aXRlQmFycmllcikgewogICAgICAgICBBU1NFUlQocmVtb3ZlQ29kZVB0clRhZyhtX2NhbGxzLmxh
c3QoKS5jYWxsZWUuZXhlY3V0YWJsZUFkZHJlc3MoKSkgPT0gcmVtb3ZlQ29kZVB0clRhZyhvcGVy
YXRpb25Xcml0ZUJhcnJpZXJTbG93UGF0aCkpOwogICAgICAgICBwYXRjaEJ1ZmZlci5saW5rKG1f
Y2FsbHMubGFzdCgpLmZyb20sIG1fY2FsbHMubGFzdCgpLmNhbGxlZSk7CkBAIC0xMzc2LDcgKzEz
NzYsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVQdXRCeVZhbFdpdGhDYWNoZWRJZChCeVZh
bEluZm8qIGJ5VmFsSW5mbywgUmV0dXJuQWRkcmVzcwogICAgIENvbmN1cnJlbnRKU0xvY2tlciBs
b2NrZXIobV9jb2RlQmxvY2stPm1fbG9jayk7CiAgICAgTGlua0J1ZmZlciBwYXRjaEJ1ZmZlcigq
dGhpcywgbV9jb2RlQmxvY2spOwogICAgIHBhdGNoQnVmZmVyLmxpbmsoc2xvd0Nhc2VzLCBieVZh
bEluZm8tPnNsb3dQYXRoVGFyZ2V0KTsKLSAgICBwYXRjaEJ1ZmZlci5saW5rKGRvbmVDYXNlcywg
YnlWYWxJbmZvLT5iYWRUeXBlRG9uZVRhcmdldCk7CisgICAgcGF0Y2hCdWZmZXIubGluayhkb25l
Q2FzZXMsIGJ5VmFsSW5mby0+ZG9uZVRhcmdldCk7CiAgICAgaWYgKCFtX2V4Y2VwdGlvbkNoZWNr
cy5lbXB0eSgpKQogICAgICAgICBwYXRjaEJ1ZmZlci5saW5rKG1fZXhjZXB0aW9uQ2hlY2tzLCBi
eVZhbEluZm8tPmV4Y2VwdGlvbkhhbmRsZXIpOwogCmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5n
ZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IDkxNzVjYjVkZGZjNDVmOWVhNjY5ODIzOTU2
OGZkZDViOTEyNzIzMzUuLjEwNDQzM2QwN2VhYTZhOTc1OWM1NWU0NGVkNDRhNmIzZDZhNDg1NTEg
MTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMjAtMDMtMjAgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxl
LmNvbT4KKworICAgICAgICBbSlNDXSBERkcgT1NSIGV4aXQgY2Fubm90IGZpbmQgU3RydWN0dXJl
U3R1YkluZm8gZm9yIHB1dF9ieV92YWwgaWYgQ29kZUJsb2NrIGlzIG9uY2UgY29udmVydmVkIGZy
b20gQmFzZWxpbmUgdG8gTExJbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwOTMyNworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjA2MzEwNjE+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdHJlc3Mv
b3NyLWV4aXQtYXR0ZW1wdHMtdG8tZmluZC1zdHViaW5mby13aGljaC1pcy1jbGVhcmVkLWJ5LXBy
ZXZpb3VzLWJhc2VsaW5lLXRvLWxsaW50LWNvbnZlcnNpb24uanM6IEFkZGVkLgorICAgICAgICAo
c2V0dGVyKToKKyAgICAgICAgKGZvbyk6CisKIDIwMjAtMDMtMTkgIFRvbWFzIFBvcGVsYSAgPHRw
b3BlbGFAcmVkaGF0LmNvbT4KIAogICAgICAgICBbSlNDXVtCaWdFbmRpYW5zXSBTZXZlcmFsIEpT
QyBzdHJlc3MgdGVzdHMgZmFpbGluZwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvb3NyLWV4
aXQtYXR0ZW1wdHMtdG8tZmluZC1zdHViaW5mby13aGljaC1pcy1jbGVhcmVkLWJ5LXByZXZpb3Vz
LWJhc2VsaW5lLXRvLWxsaW50LWNvbnZlcnNpb24uanMgYi9KU1Rlc3RzL3N0cmVzcy9vc3ItZXhp
dC1hdHRlbXB0cy10by1maW5kLXN0dWJpbmZvLXdoaWNoLWlzLWNsZWFyZWQtYnktcHJldmlvdXMt
YmFzZWxpbmUtdG8tbGxpbnQtY29udmVyc2lvbi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NjY2ZjJkYWMyNGI4
MDc2ZjAxMzJhYzZhYTFkMzQwMzZhZjA0OGM3Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9z
dHJlc3Mvb3NyLWV4aXQtYXR0ZW1wdHMtdG8tZmluZC1zdHViaW5mby13aGljaC1pcy1jbGVhcmVk
LWJ5LXByZXZpb3VzLWJhc2VsaW5lLXRvLWxsaW50LWNvbnZlcnNpb24uanMKQEAgLTAsMCArMSwx
OCBAQAorLy9AIHJ1bkRlZmF1bHQoIi0tc2xvd1BhdGhBbGxvY3NCZXR3ZWVuR0NzPTUwIiwgIi0t
aml0UG9saWN5U2NhbGU9MCIsICItLXdhdGNoZG9nPTEwMCIsICItLXdhdGNoZG9nLWV4Y2VwdGlv
bi1vayIpCitsZXQgbyA9IHt9OworbGV0IGVmZiA9ICdmJzsKKworZnVuY3Rpb24gc2V0dGVyKHMp
IHsKKyAgK3M7CisgIFthcmd1bWVudHNdOworfQorCitPYmplY3QuZGVmaW5lUHJvcGVydHkobywg
ZWZmLCB7IHNldDogc2V0dGVyIH0pOworCitmdW5jdGlvbiBmb28oKSB7CisgIG9bZWZmXSA9IG51
bGw7Cit9CisKK2ZvciAobGV0IGkgPSAwOyBpIDwgMTAwMDAwMDAwOyBpKyspIHsKKyAgZm9vKCk7
Cit9Cg==
</data>
<flag name="review"
          id="409488"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>