<?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>61520</bug_id>
          
          <creation_ts>2011-05-26 06:23:04 -0700</creation_ts>
          <short_desc>TestFailures page should take advantage of LocalStorage APIs (or similar) to improve loading performance</short_desc>
          <delta_ts>2011-06-23 12:51:18 -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>Tools / Tests</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>http://build.webkit.org/TestFailures</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="Adam Roben (:aroben)">aroben</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>410385</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-05-26 06:23:04 -0700</bug_when>
    <thetext>The TestFailures page loads a bunch of data from build.webkit.org that doesn&apos;t change. If we were to cache some of this data in window.localStorage (or similar), we could avoid reloading the data every time the page is viewed by a particular user. This would probably speed up loading quite a bit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>410391</commentid>
    <comment_count>1</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-05-26 06:27:57 -0700</bug_when>
    <thetext>Data we might want to cache:

1) The list of old builds for each tester
2) The set of failing tests in each of those old builds

We&apos;d want to prune the cache from time to time. I think a strategy that would work well is:

* Whenever we finish finding revisions to blame for all currently failing tests, throw away all data for all revisions older than the oldest &quot;passing&quot; revision identified.

E.g., if all currently failing tests were passing in r12345, we could throw away all data for r12344 and older.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426365</commentid>
    <comment_count>2</comment_count>
      <attachid>98381</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-06-23 12:33:04 -0700</bug_when>
    <thetext>Created attachment 98381
Cache some of the TestFailures page&apos;s data in localStorage</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426377</commentid>
    <comment_count>3</comment_count>
      <attachid>98381</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2011-06-23 12:47:52 -0700</bug_when>
    <thetext>Comment on attachment 98381
Cache some of the TestFailures page&apos;s data in localStorage

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426379</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-06-23 12:51:18 -0700</bug_when>
    <thetext>Committed r89601: &lt;http://trac.webkit.org/changeset/89601&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>98381</attachid>
            <date>2011-06-23 12:33:04 -0700</date>
            <delta_ts>2011-06-23 12:47:52 -0700</delta_ts>
            <desc>Cache some of the TestFailures page&apos;s data in localStorage</desc>
            <filename>bug-61520-20110623153303.patch</filename>
            <type>text/plain</type>
            <size>14760</size>
            <attacher name="Adam Roben (:aroben)">aroben</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODk1ODgKZGlmZiAtLWdpdCBhL1Rvb2xzL0J1aWxkU2xhdmVT
dXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL1Rlc3RGYWlsdXJlcy9C
dWlsZGVyLmpzIGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25m
aWcvcHVibGljX2h0bWwvVGVzdEZhaWx1cmVzL0J1aWxkZXIuanMKaW5kZXggOTdkOWNlMDVmODI5
ZGIzNjdiODk0ZDBmMTc5MDc3ZWEwYTdlZmY5OC4uZjBlMDFlZTFhN2YyOTRlNWViMGZmMGJmYWY0
Y2ZhYTQyOTUxNjA4ZSAxMDA2NDQKLS0tIGEvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQu
d2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvVGVzdEZhaWx1cmVzL0J1aWxkZXIuanMKKysr
IGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGlj
X2h0bWwvVGVzdEZhaWx1cmVzL0J1aWxkZXIuanMKQEAgLTkxLDkgKzkxLDkgQEAgQnVpbGRlci5w
cm90b3R5cGUgPSB7CiAgICAgfSwKIAogICAgIGdldE51bWJlck9mRmFpbGluZ1Rlc3RzOiBmdW5j
dGlvbihidWlsZE51bWJlciwgY2FsbGJhY2spIHsKLSAgICAgICAgdmFyIGNhY2hlS2V5ID0gJ2dl
dE51bWJlck9mRmFpbGluZ1Rlc3RzXycgKyBidWlsZE51bWJlcjsKLSAgICAgICAgaWYgKGNhY2hl
S2V5IGluIHRoaXMuX2NhY2hlKSB7Ci0gICAgICAgICAgICBjYWxsYmFjayh0aGlzLl9jYWNoZVtj
YWNoZUtleV0pOworICAgICAgICB2YXIgY2FjaGVLZXkgPSB0aGlzLm5hbWUgKyAnX2dldE51bWJl
ck9mRmFpbGluZ1Rlc3RzXycgKyBidWlsZE51bWJlcjsKKyAgICAgICAgaWYgKFBlcnNpc3RlbnRD
YWNoZS5jb250YWlucyhjYWNoZUtleSkpIHsKKyAgICAgICAgICAgIGNhbGxiYWNrKFBlcnNpc3Rl
bnRDYWNoZS5nZXQoY2FjaGVLZXkpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQog
CkBAIC0xMDEsMjIgKzEwMSwyMiBAQCBCdWlsZGVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgc2Vs
Zi5fZ2V0QnVpbGRKU09OKGJ1aWxkTnVtYmVyLCBmdW5jdGlvbihkYXRhKSB7CiAgICAgICAgICAg
ICB2YXIgbGF5b3V0VGVzdFN0ZXAgPSBkYXRhLnN0ZXBzLmZpbmRGaXJzdChmdW5jdGlvbihzdGVw
KSB7IHJldHVybiBzdGVwLm5hbWUgPT09ICdsYXlvdXQtdGVzdCc7IH0pOwogICAgICAgICAgICAg
aWYgKCFsYXlvdXRUZXN0U3RlcCkgewotICAgICAgICAgICAgICAgIHNlbGYuX2NhY2hlW2NhY2hl
S2V5XSA9IC0xOwotICAgICAgICAgICAgICAgIGNhbGxiYWNrKHNlbGYuX2NhY2hlW2NhY2hlS2V5
XSwgZmFsc2UpOworICAgICAgICAgICAgICAgIFBlcnNpc3RlbnRDYWNoZS5zZXQoY2FjaGVLZXks
IC0xKTsKKyAgICAgICAgICAgICAgICBjYWxsYmFjayhQZXJzaXN0ZW50Q2FjaGUuZ2V0KGNhY2hl
S2V5KSwgZmFsc2UpOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KIAog
ICAgICAgICAgICAgaWYgKCEoJ2lzU3RhcnRlZCcgaW4gbGF5b3V0VGVzdFN0ZXApKSB7CiAgICAg
ICAgICAgICAgICAgLy8gcnVuLXdlYmtpdC10ZXN0cyBuZXZlciBldmVuIHJhbi4KLSAgICAgICAg
ICAgICAgICBzZWxmLl9jYWNoZVtjYWNoZUtleV0gPSAtMTsKLSAgICAgICAgICAgICAgICBjYWxs
YmFjayhzZWxmLl9jYWNoZVtjYWNoZUtleV0sIGZhbHNlKTsKKyAgICAgICAgICAgICAgICBQZXJz
aXN0ZW50Q2FjaGUuc2V0KGNhY2hlS2V5LCAtMSk7CisgICAgICAgICAgICAgICAgY2FsbGJhY2so
UGVyc2lzdGVudENhY2hlLmdldChjYWNoZUtleSksIGZhbHNlKTsKICAgICAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGlmICghKCdyZXN1bHRzJyBpbiBs
YXlvdXRUZXN0U3RlcCkgfHwgbGF5b3V0VGVzdFN0ZXAucmVzdWx0c1swXSA9PT0gMCkgewogICAg
ICAgICAgICAgICAgIC8vIEFsbCB0ZXN0cyBwYXNzZWQuCi0gICAgICAgICAgICAgICAgc2VsZi5f
Y2FjaGVbY2FjaGVLZXldID0gMDsKLSAgICAgICAgICAgICAgICBjYWxsYmFjayhzZWxmLl9jYWNo
ZVtjYWNoZUtleV0sIGZhbHNlKTsKKyAgICAgICAgICAgICAgICBQZXJzaXN0ZW50Q2FjaGUuc2V0
KGNhY2hlS2V5LCAtMSk7CisgICAgICAgICAgICAgICAgY2FsbGJhY2soUGVyc2lzdGVudENhY2hl
LmdldChjYWNoZUtleSksIGZhbHNlKTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
ICAgICB9CiAKQEAgLTEzNCw3ICsxMzQsNyBAQCBCdWlsZGVyLnByb3RvdHlwZSA9IHsKICAgICAg
ICAgICAgICAgICByZXR1cm4gc3VtICsgcGFyc2VJbnQobWF0Y2hbMV0sIDEwKTsKICAgICAgICAg
ICAgIH0sIDApOwogCi0gICAgICAgICAgICBzZWxmLl9jYWNoZVtjYWNoZUtleV0gPSBmYWlsdXJl
Q291bnQ7CisgICAgICAgICAgICBQZXJzaXN0ZW50Q2FjaGUuc2V0KGNhY2hlS2V5LCBmYWlsdXJl
Q291bnQpOwogICAgICAgICAgICAgY2FsbGJhY2soZmFpbHVyZUNvdW50LCB0b29NYW55RmFpbHVy
ZXMpOwogICAgICAgICB9KTsKICAgICB9LApAQCAtMTc0LDExICsxNzQsMTEgQEAgQnVpbGRlci5w
cm90b3R5cGUgPSB7CiAgICAgICAgIHNlbGYuX2dldEJ1aWxkTmFtZXMoZnVuY3Rpb24oYnVpbGRO
YW1lcykgewogICAgICAgICAgICAgZnVuY3Rpb24gaW5uZXIoYnVpbGRJbmRleCkgewogICAgICAg
ICAgICAgICAgIHNlbGYuX2luY29ycG9yYXRlQnVpbGRIaXN0b3J5KGJ1aWxkTmFtZXMsIGJ1aWxk
SW5kZXgsIGhpc3RvcnksIGZ1bmN0aW9uKGNhbGxBZ2FpbikgewotICAgICAgICAgICAgICAgICAg
ICBjYWxsYmFjayhoaXN0b3J5KTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKCFjYWxsQWdhaW4p
Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgICAgIHZh
ciBuZXh0SW5kZXggPSBidWlsZEluZGV4ICsgMTsKICAgICAgICAgICAgICAgICAgICAgaWYgKG5l
eHRJbmRleCA+PSBidWlsZE5hbWVzLmxlbmd0aCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGNh
bGxBZ2FpbiA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhoaXN0b3J5LCBj
YWxsQWdhaW4pOworICAgICAgICAgICAgICAgICAgICBpZiAoIWNhbGxBZ2FpbikKICAgICAgICAg
ICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChm
dW5jdGlvbigpIHsgaW5uZXIobmV4dEluZGV4KSB9LCAwKTsKICAgICAgICAgICAgICAgICB9KTsK
QEAgLTIzNSwxNCArMjM1LDEzIEBAIEJ1aWxkZXIucHJvdG90eXBlID0gewogICAgIH0sCiAKICAg
ICBfZ2V0RmFpbGluZ1Rlc3RzOiBmdW5jdGlvbihidWlsZE5hbWUsIGNhbGxiYWNrLCBlcnJvckNh
bGxiYWNrKSB7Ci0gICAgICAgIHZhciBjYWNoZUtleSA9ICdfZ2V0RmFpbGluZ1Rlc3RzXycgKyBi
dWlsZE5hbWU7Ci0gICAgICAgIGlmIChjYWNoZUtleSBpbiB0aGlzLl9jYWNoZSkgewotICAgICAg
ICAgICAgY2FsbGJhY2sodGhpcy5fY2FjaGVbY2FjaGVLZXldKTsKKyAgICAgICAgdmFyIGNhY2hl
S2V5ID0gdGhpcy5uYW1lICsgJ19fZ2V0RmFpbGluZ1Rlc3RzXycgKyBidWlsZE5hbWU7CisgICAg
ICAgIGlmIChQZXJzaXN0ZW50Q2FjaGUuY29udGFpbnMoY2FjaGVLZXkpKSB7CisgICAgICAgICAg
ICBjYWxsYmFjayhQZXJzaXN0ZW50Q2FjaGUuZ2V0KGNhY2hlS2V5KSk7CiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KIAogICAgICAgICB2YXIgdGVzdHMgPSB7fTsKLSAgICAgICAgdGhp
cy5fY2FjaGVbY2FjaGVLZXldID0gdGVzdHM7CiAKICAgICAgICAgdmFyIGJ1aWxkTnVtYmVyID0g
dGhpcy5idWlsZGJvdC5wYXJzZUJ1aWxkTmFtZShidWlsZE5hbWUpLmJ1aWxkTnVtYmVyOwogCkBA
IC0yNTAsMTIgKzI0OSwxNCBAQCBCdWlsZGVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgc2VsZi5n
ZXROdW1iZXJPZkZhaWxpbmdUZXN0cyhidWlsZE51bWJlciwgZnVuY3Rpb24oZmFpbGluZ1Rlc3RD
b3VudCwgdG9vTWFueUZhaWx1cmVzKSB7CiAgICAgICAgICAgICBpZiAoZmFpbGluZ1Rlc3RDb3Vu
dCA8IDApIHsKICAgICAgICAgICAgICAgICAvLyBUaGUgbnVtYmVyIG9mIGZhaWxpbmcgdGVzdHMg
Y291bGRuJ3QgYmUgZGV0ZXJtaW5lZC4KKyAgICAgICAgICAgICAgICBQZXJzaXN0ZW50Q2FjaGUu
c2V0KGNhY2hlS2V5LCB0ZXN0cyk7CiAgICAgICAgICAgICAgICAgZXJyb3JDYWxsYmFjayh0ZXN0
cywgdG9vTWFueUZhaWx1cmVzKTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAg
ICB9CiAKICAgICAgICAgICAgIGlmICghZmFpbGluZ1Rlc3RDb3VudCkgewogICAgICAgICAgICAg
ICAgIC8vIEFsbCB0ZXN0cyBwYXNzZWQuCisgICAgICAgICAgICAgICAgUGVyc2lzdGVudENhY2hl
LnNldChjYWNoZUtleSwgdGVzdHMpOwogICAgICAgICAgICAgICAgIGNhbGxiYWNrKHRlc3RzLCB0
b29NYW55RmFpbHVyZXMpOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0K
QEAgLTI5MSwxMCArMjkyLDEyIEBAIEJ1aWxkZXIucHJvdG90eXBlID0gewogICAgICAgICAgICAg
ICAgICAgICB0ZXN0c1tuYW1lXSA9ICd3ZWJwcm9jZXNzIGNyYXNoJzsKICAgICAgICAgICAgICAg
ICB9KTsKIAorICAgICAgICAgICAgICAgIFBlcnNpc3RlbnRDYWNoZS5zZXQoY2FjaGVLZXksIHRl
c3RzKTsKICAgICAgICAgICAgICAgICBjYWxsYmFjayh0ZXN0cywgdG9vTWFueUZhaWx1cmVzKTsK
ICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICBmdW5jdGlvbih4aHIpIHsKICAgICAgICAgICAg
ICAgICAvLyBXZSBmYWlsZWQgdG8gZmV0Y2ggcmVzdWx0cy5odG1sLiBydW4td2Via2l0LXRlc3Rz
IG11c3QgaGF2ZSBhYm9ydGVkIGVhcmx5LgorICAgICAgICAgICAgICAgIFBlcnNpc3RlbnRDYWNo
ZS5zZXQoY2FjaGVLZXksIHRlc3RzKTsKICAgICAgICAgICAgICAgICBlcnJvckNhbGxiYWNrKHRl
c3RzLCB0b29NYW55RmFpbHVyZXMpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcv
cHVibGljX2h0bWwvVGVzdEZhaWx1cmVzL1BlcnNpc3RlbnRDYWNoZS5qcyBiL1Rvb2xzL0J1aWxk
U2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL1Rlc3RGYWls
dXJlcy9QZXJzaXN0ZW50Q2FjaGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTc2YzkwY2IyM2I5NTI4YzRhYTY2
MDRlOGEwZjM4NGNhY2Q4YTQzOQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0J1aWxkU2xhdmVT
dXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL1Rlc3RGYWlsdXJlcy9Q
ZXJzaXN0ZW50Q2FjaGUuanMKQEAgLTAsMCArMSw4OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK3ZhciBQZXJz
aXN0ZW50Q2FjaGUgPSB7CisgICAgY29udGFpbnM6IGZ1bmN0aW9uKGtleSkgeworICAgICAgICBy
ZXR1cm4ga2V5IGluIGxvY2FsU3RvcmFnZTsKKyAgICB9LAorCisgICAgZ2V0OiBmdW5jdGlvbihr
ZXkpIHsKKyAgICAgICAgdmFyIHN0cmluZyA9IGxvY2FsU3RvcmFnZVtrZXldOworICAgICAgICBp
ZiAoIXN0cmluZykKKyAgICAgICAgICAgIHJldHVybiBzdHJpbmc7CisKKyAgICAgICAgLy8gRklY
TUU6IFdlIGNvdWxkIHVwZGF0ZSB0aGUgZGF0ZSBzdG9yZWQgd2l0aCB0aGUgdmFsdWUgaGVyZSB0
byBtYWtlIHRoaXMgbW9yZSBvZiBhbiBNUlUKKyAgICAgICAgLy8gY2FjaGUgKGluc3RlYWQgb2Yg
bW9zdC1yZWNlbnRseS1zdG9yZWQpLCBidXQgdGhhdCB3b3VsZCByZXN1bHQgaW4gZXh0cmEgZGlz
ayBhY2Nlc3MgdGhhdAorICAgICAgICAvLyBtaWdodCBub3QgYmUgc28gZ3JlYXQuCisgICAgICAg
IHJldHVybiBKU09OLnBhcnNlKHRoaXMuX3BhcnNlRGF0ZUFuZEpTT05Gcm9tU3RyaW5nKHN0cmlu
ZykuanNvbik7CisgICAgfSwKKworICAgIHNldDogZnVuY3Rpb24oa2V5LCB2YWx1ZSkgeworICAg
ICAgICB0cnkgeworICAgICAgICAgICAgbG9jYWxTdG9yYWdlW2tleV0gPSB0aGlzLl9hZGREYXRl
VG9KU09OU3RyaW5nKEpTT04uc3RyaW5naWZ5KHZhbHVlKSk7CisgICAgICAgIH0gY2F0Y2ggKGUp
IHsKKyAgICAgICAgICAgIGlmIChlLmNvZGUgIT09IDIyKSAvLyBRVU9UQV9FWENFRURFRF9FUlIK
KyAgICAgICAgICAgICAgICB0aHJvdyBlOworCisgICAgICAgICAgICAvLyBXZSd2ZSBydW4gb3V0
IG9mIHNwYWNlIGluIGxvY2FsU3RvcmFnZS4gTGV0J3MganVzdCB0aHJvdyBhd2F5IGV2ZXJ5dGhp
bmcgYW5kIHRyeQorICAgICAgICAgICAgLy8gYWdhaW4uCisgICAgICAgICAgICB0aGlzLl9lbXB0
eUNhY2hlKCk7CisgICAgICAgICAgICB0aGlzLnNldChrZXksIHZhbHVlKTsKKyAgICAgICAgfQor
ICAgIH0sCisKKyAgICBwcnVuZTogZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciBub3cgPSBEYXRl
Lm5vdygpOworICAgICAgICBmb3IgKHZhciBrZXkgaW4gbG9jYWxTdG9yYWdlKSB7CisgICAgICAg
ICAgICB2YXIgZGF0ZSA9IHRoaXMuX3BhcnNlRGF0ZUFuZEpTT05Gcm9tU3RyaW5nKGxvY2FsU3Rv
cmFnZVtrZXldKS5kYXRlOworICAgICAgICAgICAgaWYgKG5vdyAtIGRhdGUgPD0gdGhpcy5fZGF0
YUFnZUxpbWl0TVMpCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICBkZWxl
dGUgbG9jYWxTdG9yYWdlW2tleV07CisgICAgICAgIH0KKworICAgICAgICB0aGlzLnNldCh0aGlz
Ll9sYXN0UHJ1bmVEYXRlS2V5LCBub3cpOworICAgIH0sCisKKyAgICBfYWRkRGF0ZVRvSlNPTlN0
cmluZzogZnVuY3Rpb24oanNvblN0cmluZykgeworICAgICAgICByZXR1cm4gRGF0ZS5ub3coKSAr
IHRoaXMuX2RhdGVBbmRKU09OU2VwYXJhdG9yICsganNvblN0cmluZzsKKyAgICB9LAorCisgICAg
X2RhdGFBZ2VMaW1pdE1TOiAxMDAwICogNjAgKiA2MCAqIDI0ICogMS4xLCAvLyBKdXN0IG92ZXIg
b25lIGRheQorCisgICAgX2RhdGVBbmRKU09OU2VwYXJhdG9yOiAnOiAnLAorCisgICAgX2VtcHR5
Q2FjaGU6IGZ1bmN0aW9uKCkgeworICAgICAgICBmb3IgKHZhciBrZXkgaW4gbG9jYWxTdG9yYWdl
KQorICAgICAgICAgICAgZGVsZXRlIGxvY2FsU3RvcmFnZVtrZXldOworICAgIH0sCisKKyAgICBf
cGFyc2VEYXRlQW5kSlNPTkZyb21TdHJpbmc6IGZ1bmN0aW9uKHN0cmluZykgeworICAgICAgICB2
YXIgY29tcG9uZW50cyA9IHN0cmluZy5zcGxpdCh0aGlzLl9kYXRlQW5kSlNPTlNlcGFyYXRvcik7
CisgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICBkYXRlOiBuZXcgRGF0ZShwYXJzZUludChj
b21wb25lbnRzWzBdLCAxMCkpLAorICAgICAgICAgICAganNvbjogY29tcG9uZW50c1sxXSwKKyAg
ICAgICAgfTsKKyAgICB9LAorfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0
L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL1Rlc3RGYWlsdXJlcy9WaWV3Q29u
dHJvbGxlci5qcyBiL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29u
ZmlnL3B1YmxpY19odG1sL1Rlc3RGYWlsdXJlcy9WaWV3Q29udHJvbGxlci5qcwppbmRleCA0NzU3
YzJkN2NhZjEzOWMzMWY4ZDRkNGNmZWIxN2MzZmU5OWY2ZjE0Li5hODg1YmI5NWIxNWQ1ZjhiZmU5
OWJkNTQ4MTRiODBmYjY0ZDRlYTg1IDEwMDY0NAotLS0gYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9y
dC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9UZXN0RmFpbHVyZXMvVmlld0Nv
bnRyb2xsZXIuanMKKysrIGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9y
Zy1jb25maWcvcHVibGljX2h0bWwvVGVzdEZhaWx1cmVzL1ZpZXdDb250cm9sbGVyLmpzCkBAIC00
Nyw3ICs0Nyw3IEBAIFZpZXdDb250cm9sbGVyLnByb3RvdHlwZSA9IHsKIAogICAgIF9kaXNwbGF5
QnVpbGRlcjogZnVuY3Rpb24oYnVpbGRlcikgewogICAgICAgICB2YXIgc2VsZiA9IHRoaXM7Ci0g
ICAgICAgIGJ1aWxkZXIuc3RhcnRGZXRjaGluZ0J1aWxkSGlzdG9yeShmdW5jdGlvbihoaXN0b3J5
KSB7CisgICAgICAgIGJ1aWxkZXIuc3RhcnRGZXRjaGluZ0J1aWxkSGlzdG9yeShmdW5jdGlvbiho
aXN0b3J5LCBzdGlsbEZldGNoaW5nRGF0YSkgewogICAgICAgICAgICAgdmFyIGxpc3QgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdvbCcpOwogICAgICAgICAgICAgbGlzdC5pZCA9ICdmYWlsdXJl
LWhpc3RvcnknOwogICAgICAgICAgICAgT2JqZWN0LmtleXMoaGlzdG9yeSkuZm9yRWFjaChmdW5j
dGlvbihidWlsZE5hbWUsIGJ1aWxkSW5kZXgsIGJ1aWxkTmFtZUFycmF5KSB7CkBAIC04Niw3ICs4
Niw3IEBAIFZpZXdDb250cm9sbGVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICAgICAg
ZGxJdGVtcy5wdXNoKFtkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnUGFzc2VkJyksIHNlbGYuX2Rv
bUZvckJ1aWxkTmFtZShidWlsZGVyLCBidWlsZE5hbWVBcnJheVtidWlsZEluZGV4ICsgMV0pXSk7
CiAgICAgICAgICAgICAgICAgaXRlbS5hcHBlbmRDaGlsZChjcmVhdGVEZWZpbml0aW9uTGlzdChk
bEl0ZW1zKSk7CiAKLSAgICAgICAgICAgICAgICBpZiAocGFzc2luZ0J1aWxkTmFtZSkKKyAgICAg
ICAgICAgICAgICBpZiAocGFzc2luZ0J1aWxkTmFtZSB8fCAhc3RpbGxGZXRjaGluZ0RhdGEpCiAg
ICAgICAgICAgICAgICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQoc2VsZi5fZG9tRm9yTmV3QW5kRXhp
c3RpbmdCdWdzKGJ1aWxkZXIsIGJ1aWxkTmFtZSwgcGFzc2luZ0J1aWxkTmFtZSwgZmFpbGluZ1Rl
c3ROYW1lcykpOwogICAgICAgICAgICAgfSk7CiAKQEAgLTk2LDYgKzk2LDkgQEAgVmlld0NvbnRy
b2xsZXIucHJvdG90eXBlID0gewogICAgICAgICAgICAgZG9jdW1lbnQudGl0bGUgPSBidWlsZGVy
Lm5hbWU7CiAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGhlYWRlcik7CiAg
ICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxpc3QpOworCisgICAgICAgICAg
ICBpZiAoIXN0aWxsRmV0Y2hpbmdEYXRhKQorICAgICAgICAgICAgICAgIFBlcnNpc3RlbnRDYWNo
ZS5wcnVuZSgpOwogICAgICAgICB9KTsKICAgICB9LAogCmRpZmYgLS1naXQgYS9Ub29scy9CdWls
ZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9UZXN0RmFp
bHVyZXMvaW5kZXguaHRtbCBiL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5v
cmctY29uZmlnL3B1YmxpY19odG1sL1Rlc3RGYWlsdXJlcy9pbmRleC5odG1sCmluZGV4IDE1YzQ3
YmRkYWJmNmU5ZWQ1YWNlZmM5ODYyYzJkMWQ4MGFiMjNhYTUuLjVmYWQ5OGRkNWU5NzdmMzc0NmEw
NTdmNWQ5ZjMzNDFiYWNjZDgwMmUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0
L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL1Rlc3RGYWlsdXJlcy9pbmRleC5o
dG1sCisrKyBiL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmln
L3B1YmxpY19odG1sL1Rlc3RGYWlsdXJlcy9pbmRleC5odG1sCkBAIC0zMCw2ICszMCw3IEBAIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAgICA8c2NyaXB0IHNyYz0iQnVnemlsbGEu
anMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJCdWlsZGJvdC5qcyI+PC9zY3JpcHQ+CiAg
ICAgPHNjcmlwdCBzcmM9IkJ1aWxkZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJQ
ZXJzaXN0ZW50Q2FjaGUuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJVdGlsaXRpZXMu
anMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJWaWV3Q29udHJvbGxlci5qcyI+PC9zY3Jp
cHQ+CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRl
eCA4MTZmYzMwMmFhY2ZmZWEwMGI4YzA5ZjEzNmI4YTRjMmEzMjVmOGI5Li5lYzI0YzY5NmI3OGYw
NzlkYjI5NjdiNmZlNThhN2E1MjdkZWMyY2UzIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cK
KysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNTIgQEAKIDIwMTEtMDYtMjMgIEFkYW0g
Um9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgogCisgICAgICAgIENhY2hlIHNvbWUgb2YgdGhlIFRl
c3RGYWlsdXJlcyBwYWdlJ3MgZGF0YSBpbiBsb2NhbFN0b3JhZ2UKKworICAgICAgICBUaGlzIG1h
a2VzIHJlbG9hZGluZyBUZXN0RmFpbHVyZXMgbXVjaCBmYXN0ZXIuIFJpZ2h0IG5vdyB3ZSBvbmx5
IHN0b3JlIHRoZSBudW1iZXIgb2YgZmFpbGluZworICAgICAgICB0ZXN0cyBhbmQgdGhlIGxpc3Qg
b2YgZmFpbGluZyB0ZXN0cyBmb3IgZWFjaCBidWlsZC4gV2UgbWF5IGNob29zZSB0byBzdG9yZSBt
b3JlIGxhdGVyLCBidXQKKyAgICAgICAgaXQncyBlYXN5IHRvIHJ1biB1cCBhZ2FpbnN0IHF1b3Rh
IGxpbWl0cy4KKworICAgICAgICBGaXhlcyA8aHR0cDovL3dlYmtpdC5vcmcvYi82MTUyMD4gVGVz
dEZhaWx1cmVzIHBhZ2Ugc2hvdWxkIHRha2UgYWR2YW50YWdlIG9mIExvY2FsU3RvcmFnZQorICAg
ICAgICBBUElzIChvciBzaW1pbGFyKSB0byBpbXByb3ZlIGxvYWRpbmcgcGVyZm9ybWFuY2UKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEJ1aWxkU2xh
dmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL1Rlc3RGYWlsdXJl
cy9CdWlsZGVyLmpzOgorICAgICAgICAoQnVpbGRlci5wcm90b3R5cGUuZ2V0TnVtYmVyT2ZGYWls
aW5nVGVzdHMpOiBDaGFuZ2VkIHRvIHVzZSB0aGUgbmV3IFBlcnNpc3RlbnRDYWNoZSBvYmplY3Qu
CisgICAgICAgIChCdWlsZGVyLnByb3RvdHlwZS5zdGFydEZldGNoaW5nQnVpbGRIaXN0b3J5KTog
Q2hhbmdlZCB0byBwYXNzIHdoZXRoZXIgb3Igbm90IHdlJ3JlIHN0aWxsCisgICAgICAgIGZldGNo
aW5nIGRhdGEgdG8gdGhlIGNhbGxiYWNrLgorICAgICAgICAoQnVpbGRlci5wcm90b3R5cGUuX2dl
dEZhaWxpbmdUZXN0cyk6IENoYW5nZWQgdG8gdXNlIHRoZSBuZXcgUGVyc2lzdGVudENhY2hlIG9i
amVjdC4gV2Ugbm93CisgICAgICAgIHN0b3JlIHRoZSB0ZXN0cyBpbiB0aGUgY2FjaGUganVzdCBi
ZWZvcmUgY2FsbGluZyB0aGUgY2FsbGJhY2suIChUaGUgcHJldmlvdXMgY29kZSBpbiB0aGlzCisg
ICAgICAgIGZ1bmN0aW9uIHJlbGllZCBvbiBiZWluZyBhYmxlIHRvIG1vZGlmeSB0aGUgdGVzdHMg
b2JqZWN0IGFmdGVyIHN0b3JpbmcgaXQgaW4gdGhlIGNhY2hlIGFuZAorICAgICAgICBoYXZpbmcg
dGhlIGNhY2hlZCB2ZXJzaW9uIGJlIHVwZGF0ZWQuIFRoaXMgd29ya2VkIHdoaWxlIGl0IHdhcyBh
IG5vbi1zZXJpYWxpemVkIGNhY2hlLCBidXQKKyAgICAgICAgUGVyc2lzdGVudENhY2hlIHVzZXMg
c2VyaWFsaXphdGlvbi4pCisKKyAgICAgICAgKiBCdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJr
aXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9UZXN0RmFpbHVyZXMvUGVyc2lzdGVudENhY2hlLmpz
OiBBZGRlZC4KKyAgICAgICAgKFBlcnNpc3RlbnRDYWNoZSk6IFRoaXMgb2JqZWN0IHdyYXBzIGxv
Y2FsU3RvcmFnZS4gSXQgdXNlcyBKU09OIHRvIHNlcmlhbGl6ZS9kZXNlcmlhbGl6ZQorICAgICAg
ICB2YWx1ZXMsIGFuZCBzdG9yZXMgdGhlIGRhdGUgdGhhdCBlYWNoIHZhbHVlIHdhcyBpbml0aWFs
bHkgc3RvcmVkIGFsb25nIHdpdGggaXQuIFRoaXMgaXMKKyAgICAgICAgbGF0ZXIgdXNlZCBmb3Ig
cHJ1bmluZyB0aGUgY2FjaGUuCisgICAgICAgIChQZXJzaXN0ZW50Q2FjaGUuY29udGFpbnMpOiBD
aGVja3Mgd2hldGhlciB0aGUga2V5IGV4aXN0cyBpbiBsb2NhbFN0b3JhZ2UuCisgICAgICAgIChQ
ZXJzaXN0ZW50Q2FjaGUuZ2V0KTogRmV0Y2ggdGhlIHN0cmluZyB3ZSBzdG9yZWQgaW4gbG9jYWxT
dG9yYWdlIGFuZCBleHRyYWN0IHRoZSBvcmlnaW5hbAorICAgICAgICB2YWx1ZSBvdXQgb2YgaXQu
CisgICAgICAgIChQZXJzaXN0ZW50Q2FjaGUuc2V0KTogU2VyaWFsaXplIHRoZSB2YWx1ZSwgYWRk
IHRoZSBkYXRlIHRvIGl0LCBhbmQgc3RvcmUgaXQgaW4KKyAgICAgICAgbG9jYWxTdG9yYWdlLiBJ
ZiB0aGlzIGZhaWxzIGR1ZSB0byBxdW90YSBsaW1pdHMsIGVtcHR5IHRoZSB3aG9sZSBjYWNoZSBh
bmQgdHJ5IGFnYWluLgorICAgICAgICAoUGVyc2lzdGVudENhY2hlLnBydW5lKTogRGVsZXRlIGFu
eSBjYWNoZWQgZGF0YSB0aGF0IGlzIGRlZW1lZCBvbGQgZW5vdWdoLgorICAgICAgICAoUGVyc2lz
dGVudENhY2hlLl9hZGREYXRlVG9KU09OU3RyaW5nKTogUHJlcGVuZCB0aGUgY3VycmVudCBkYXRl
IHRvIHRoZSBzdHJpbmcuCisgICAgICAgIChQZXJzaXN0ZW50Q2FjaGUuX2VtcHR5Q2FjaGUpOiBE
ZWxldGUgZXZlcnl0aGluZyBmcm9tIGxvY2FsU3RvcmFnZS4KKyAgICAgICAgKFBlcnNpc3RlbnRD
YWNoZS5fcGFyc2VEYXRlQW5kSlNPTkZyb21TdHJpbmcpOiBTcGxpdCBhcGFydCB0aGUgZGF0ZSBh
bmQgdGhlIEpTT04gc3RyaW5nIGFuZAorICAgICAgICByZXR1cm4gdGhlbS4KKworICAgICAgICAq
IEJ1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL1Rl
c3RGYWlsdXJlcy9WaWV3Q29udHJvbGxlci5qczoKKyAgICAgICAgKFZpZXdDb250cm9sbGVyLnBy
b3RvdHlwZS5fZGlzcGxheUJ1aWxkZXIpOiBVcGRhdGVkIGZvciBjaGFuZ2UgdG8gY2FsbGJhY2sg
c2lnbmF0dXJlLiBXaGVuCisgICAgICAgIHdlIGZpbmlzaCBmZXRjaGluZyBkYXRhLCBwcnVuZSB0
aGUgUGVyc2lzdGVudENhY2hlLiBXaGlsZSBJIHdhcyBoZXJlIEkgYWxzbyBmaXhlZCBhIGJ1Zwor
ICAgICAgICB3aGVyZSB3ZSdkIG5ldmVyIHNob3cgdGhlIG5ldyBidWcgbGluayBmb3IgdGVzdHMg
Zm9yIHdoaWNoIHdlIGNvdWxkbid0IGRldGVybWluZSBhIHBhc3NpbmcKKyAgICAgICAgcmV2aXNp
b24uCisKKyAgICAgICAgKiBCdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZp
Zy9wdWJsaWNfaHRtbC9UZXN0RmFpbHVyZXMvaW5kZXguaHRtbDogUHVsbCBpbgorICAgICAgICBQ
ZXJzaXN0ZW50Q2FjaGUuanMuCisKKzIwMTEtMDYtMjMgIEFkYW0gUm9iZW4gIDxhcm9iZW5AYXBw
bGUuY29tPgorCiAgICAgICAgIE1ha2UgZmluZGluZyBleGlzdGluZyBidWdzIGFuZCBmaWxpbmcg
bmV3IGJ1Z3Mgd29yayBvbiBUZXN0RmFpbHVyZXMgZXZlbiB3aGVuIGxvdHMgb2YgdGVzdHMgYXJl
IGZhaWxpbmcKIAogICAgICAgICBPbmUgYnVnIHRoaXMgZml4ZXMgaXMgPGh0dHA6Ly93ZWJraXQu
b3JnL2IvNjE2NjA+IE5ldyBidWcgbGlua3Mgb24gVGVzdEZhaWx1cmVzIHBhZ2Ugb2Z0ZW4K
</data>
<flag name="review"
          id="92596"
          type_id="1"
          status="+"
          setter="ddkilzer"
    />
          </attachment>
      

    </bug>

</bugzilla>