<?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>23949</bug_id>
          
          <creation_ts>2009-02-13 08:22:28 -0800</creation_ts>
          <short_desc>HTMLSelectElement is in inconsistent state when handling mutation events</short_desc>
          <delta_ts>2009-03-15 01:43:37 -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>Forms</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>
          
          <blocked>13287</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>darin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>109684</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-02-13 08:22:28 -0800</bug_when>
    <thetext>HTMLSelectElement modification methods call setRecalcListItems() after the fact - but mutation event handlers need to see a consistent select state, too. This causes assertion failures.

Patch is forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109685</commentid>
    <comment_count>1</comment_count>
      <attachid>27662</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-02-13 08:25:28 -0800</bug_when>
    <thetext>Created attachment 27662
proposed fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109713</commentid>
    <comment_count>2</comment_count>
      <attachid>27662</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-02-13 11:37:39 -0800</bug_when>
    <thetext>Comment on attachment 27662
proposed fix

&gt;  bool HTMLOptGroupElement::insertBefore(PassRefPtr&lt;Node&gt; newChild, Node* refChild, ExceptionCode&amp; ec, bool shouldLazyAttach)
&gt;  {
&gt;      bool result = HTMLFormControlElement::insertBefore(newChild, refChild, ec, shouldLazyAttach);
&gt; -    if (result)
&gt; -        recalcSelectOptions();
&gt;      return result;
&gt;  }
&gt;  
&gt;  bool HTMLOptGroupElement::replaceChild(PassRefPtr&lt;Node&gt; newChild, Node* oldChild, ExceptionCode&amp; ec, bool shouldLazyAttach)
&gt;  {
&gt;      bool result = HTMLFormControlElement::replaceChild(newChild, oldChild, ec, shouldLazyAttach);
&gt; -    if (result)
&gt; -        recalcSelectOptions();
&gt;      return result;
&gt;  }
&gt;  
&gt;  bool HTMLOptGroupElement::removeChild(Node* oldChild, ExceptionCode&amp; ec)
&gt;  {
&gt;      bool result = HTMLFormControlElement::removeChild(oldChild, ec);
&gt; -    if (result)
&gt; -        recalcSelectOptions();
&gt;      return result;
&gt;  }
&gt;  
&gt;  bool HTMLOptGroupElement::appendChild(PassRefPtr&lt;Node&gt; newChild, ExceptionCode&amp; ec, bool shouldLazyAttach)
&gt;  {
&gt;      bool result = HTMLFormControlElement::appendChild(newChild, ec, shouldLazyAttach);
&gt; -    if (result)
&gt; -        recalcSelectOptions();
&gt;      return result;
&gt;  }
&gt;  
&gt;  bool HTMLOptGroupElement::removeChildren()
&gt;  {
&gt;      bool result = HTMLFormControlElement::removeChildren();
&gt; -    if (result)
&gt; -        recalcSelectOptions();
&gt;      return result;
&gt;  }

These overrides should all be removed entirely.

&gt; @@ -299,40 +295,30 @@ void HTMLSelectElement::restoreState(con
&gt;  bool HTMLSelectElement::insertBefore(PassRefPtr&lt;Node&gt; newChild, Node* refChild, ExceptionCode&amp; ec, bool shouldLazyAttach)
&gt;  {
&gt;      bool result = HTMLFormControlElementWithState::insertBefore(newChild, refChild, ec, shouldLazyAttach);
&gt; -    if (result)
&gt; -        setRecalcListItems();
&gt;      return result;
&gt;  }
&gt;  
&gt;  bool HTMLSelectElement::replaceChild(PassRefPtr&lt;Node&gt; newChild, Node *oldChild, ExceptionCode&amp; ec, bool shouldLazyAttach)
&gt;  {
&gt;      bool result = HTMLFormControlElementWithState::replaceChild(newChild, oldChild, ec, shouldLazyAttach);
&gt; -    if (result)
&gt; -        setRecalcListItems();
&gt;      return result;
&gt;  }
&gt;  
&gt;  bool HTMLSelectElement::removeChild(Node* oldChild, ExceptionCode&amp; ec)
&gt;  {
&gt;      bool result = HTMLFormControlElementWithState::removeChild(oldChild, ec);
&gt; -    if (result)
&gt; -        setRecalcListItems();
&gt;      return result;
&gt;  }
&gt;  
&gt;  bool HTMLSelectElement::appendChild(PassRefPtr&lt;Node&gt; newChild, ExceptionCode&amp; ec, bool shouldLazyAttach)
&gt;  {
&gt;      bool result = HTMLFormControlElementWithState::appendChild(newChild, ec, shouldLazyAttach);
&gt; -    if (result)
&gt; -        setRecalcListItems();
&gt;      return result;
&gt;  }
&gt;  
&gt;  bool HTMLSelectElement::removeChildren()
&gt;  {
&gt;      bool result = HTMLFormControlElementWithState::removeChildren();
&gt; -    if (result)
&gt; -        setRecalcListItems();
&gt;      return result;
&gt;  }

These too.

I haven&apos;t reviewed the rest of the patch yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109719</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-02-13 11:53:06 -0800</bug_when>
    <thetext>&gt; These overrides should all be removed entirely.

I&apos;m actually adding code in these in bug 13287. </thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>113809</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-03-15 01:43:37 -0700</bug_when>
    <thetext>Committed revision 41713.

</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>27662</attachid>
            <date>2009-02-13 08:25:28 -0800</date>
            <delta_ts>2009-03-13 12:10:18 -0700</delta_ts>
            <desc>proposed fix</desc>
            <filename>SelectMutationEvents.txt</filename>
            <type>text/plain</type>
            <size>13984</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MDk3NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzQgQEAKKzIwMDktMDItMTMgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEB3ZWJr
aXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzk0OQorICAgICAgICBI
VE1MU2VsZWN0RWxlbWVudCBpcyBpbiBpbmNvbnNpc3RlbnQgc3RhdGUgd2hlbiBoYW5kbGluZyBt
dXRhdGlvbiBldmVudHMKKworICAgICAgICBUZXN0OiBmYXN0L2Zvcm1zL211dGF0aW9uLWV2ZW50
LXJlY2FsYy5odG1sCisKKyAgICAgICAgKiBkb20vQ29udGFpbmVyTm9kZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDb250YWluZXJOb2RlOjppbnNlcnRCZWZvcmUpOgorICAgICAgICAoV2ViQ29y
ZTo6Q29udGFpbmVyTm9kZTo6YXBwZW5kQ2hpbGQpOgorICAgICAgICBDYWxsIGNoaWxkcmVuQ2hh
bmdlZCgpIGJlZm9yZSBkaXNwYXRjaGluZyBtb2RpZmljYXRpb24gZXZlbnRzLCBub3QgYWZ0ZXIu
CisKKyAgICAgICAgKiBodG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTE9wdEdyb3VwRWxlbWVudDo6aW5zZXJ0QmVmb3JlKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxPcHRHcm91cEVsZW1lbnQ6OnJlcGxhY2VDaGlsZCk6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MT3B0R3JvdXBFbGVtZW50OjpyZW1vdmVDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MT3B0R3JvdXBFbGVtZW50OjphcHBlbmRDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
T3B0R3JvdXBFbGVtZW50OjpyZW1vdmVDaGlsZHJlbik6CisgICAgICAgICogaHRtbC9IVE1MU2Vs
ZWN0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6YWRk
KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50OjpyZW1vdmUpOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6Omluc2VydEJlZm9yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6cmVwbGFjZUNoaWxkKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxTZWxlY3RFbGVtZW50OjpyZW1vdmVDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MU2VsZWN0RWxlbWVudDo6YXBwZW5kQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNl
bGVjdEVsZW1lbnQ6OnJlbW92ZUNoaWxkcmVuKToKKyAgICAgICAgUmVtb3ZlIGNhbGxzIHRvIHJl
Y2FsY1NlbGVjdE9wdGlvbnMoKS4gSXQgaXMgdG9vIGxhdGUgdG8gcmVjYWxjIG5vdywgYWZ0ZXIg
bXV0YXRpb24gZXZlbnRzCisgICAgICAgIHdlcmUgYWxyZWFkeSBkaXNwYXRjaGVkLgorCiAyMDA5
LTAyLTEyICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBPbGl2ZXIgSHVudC4KSW5kZXg6IFdlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCShyZXZpc2lvbiA0MDk2
OCkKKysrIFdlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05
MSw5ICs5MSw4IEBAIGJvb2wgQ29udGFpbmVyTm9kZTo6aW5zZXJ0QmVmb3JlKFBhc3NSZWYKICAg
ICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBSZWZQdHI8Tm9kZT4gbmV4dCA9IHJlZkNoaWxkOwot
ICAgIFJlZlB0cjxOb2RlPiBwcmV2ID0gcmVmQ2hpbGQtPnByZXZpb3VzU2libGluZygpOworICAg
IFJlZlB0cjxOb2RlPiByZWZDaGlsZFByZXZpb3VzU2libGluZyA9IHJlZkNoaWxkLT5wcmV2aW91
c1NpYmxpbmcoKTsKIAotICAgIGludCBjaGlsZENvdW50RGVsdGEgPSAwOwogICAgIFJlZlB0cjxO
b2RlPiBjaGlsZCA9IGlzRnJhZ21lbnQgPyBuZXdDaGlsZC0+Zmlyc3RDaGlsZCgpIDogbmV3Q2hp
bGQ7CiAgICAgd2hpbGUgKGNoaWxkKSB7CiAgICAgICAgIFJlZlB0cjxOb2RlPiBuZXh0Q2hpbGQg
PSBpc0ZyYWdtZW50ID8gY2hpbGQtPm5leHRTaWJsaW5nKCkgOiAwOwpAQCAtMTIxLDggKzEyMCw2
IEBAIGJvb2wgQ29udGFpbmVyTm9kZTo6aW5zZXJ0QmVmb3JlKFBhc3NSZWYKICAgICAgICAgQVNT
RVJUKCFjaGlsZC0+bmV4dFNpYmxpbmcoKSk7CiAgICAgICAgIEFTU0VSVCghY2hpbGQtPnByZXZp
b3VzU2libGluZygpKTsKIAotICAgICAgICBjaGlsZENvdW50RGVsdGErKzsKLQogICAgICAgICAv
LyBBZGQgY2hpbGQgYmVmb3JlICJuZXh0Ii4KICAgICAgICAgZm9yYmlkRXZlbnREaXNwYXRjaCgp
OwogICAgICAgICBOb2RlKiBwcmV2ID0gbmV4dC0+cHJldmlvdXNTaWJsaW5nKCk7CkBAIC0xNDIs
NiArMTM5LDcgQEAgYm9vbCBDb250YWluZXJOb2RlOjppbnNlcnRCZWZvcmUoUGFzc1JlZgogICAg
ICAgICBhbGxvd0V2ZW50RGlzcGF0Y2goKTsKIAogICAgICAgICAvLyBEaXNwYXRjaCB0aGUgbXV0
YXRpb24gZXZlbnRzLgorICAgICAgICBjaGlsZHJlbkNoYW5nZWQoZmFsc2UsIHJlZkNoaWxkUHJl
dmlvdXNTaWJsaW5nLmdldCgpLCBuZXh0LmdldCgpLCAxKTsKICAgICAgICAgZGlzcGF0Y2hDaGls
ZEluc2VydGlvbkV2ZW50cyhjaGlsZC5nZXQoKSwgZWMpOwogICAgICAgICAgICAgICAgIAogICAg
ICAgICAvLyBBZGQgY2hpbGQgdG8gdGhlIHJlbmRlcmluZyB0cmVlLgpAQCAtMTU2LDggKzE1NCw2
IEBAIGJvb2wgQ29udGFpbmVyTm9kZTo6aW5zZXJ0QmVmb3JlKFBhc3NSZWYKICAgICB9CiAKICAg
ICBkb2N1bWVudCgpLT5zZXREb2N1bWVudENoYW5nZWQodHJ1ZSk7Ci0gICAgaWYgKGNoaWxkQ291
bnREZWx0YSkKLSAgICAgICAgY2hpbGRyZW5DaGFuZ2VkKGZhbHNlLCBwcmV2LmdldCgpLCBuZXh0
LmdldCgpLCBjaGlsZENvdW50RGVsdGEpOwogICAgIGRpc3BhdGNoU3VidHJlZU1vZGlmaWVkRXZl
bnQoKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTQ1NCw3ICs0NTAsNiBAQCBib29sIENvbnRh
aW5lck5vZGU6OmFwcGVuZENoaWxkKFBhc3NSZWZQCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAg
ICAgLy8gTm93IGFjdHVhbGx5IGFkZCB0aGUgY2hpbGQocmVuKQotICAgIGludCBjaGlsZENvdW50
RGVsdGEgPSAwOwogICAgIFJlZlB0cjxOb2RlPiBwcmV2ID0gbGFzdENoaWxkKCk7CiAgICAgUmVm
UHRyPE5vZGU+IGNoaWxkID0gaXNGcmFnbWVudCA/IG5ld0NoaWxkLT5maXJzdENoaWxkKCkgOiBu
ZXdDaGlsZDsKICAgICB3aGlsZSAoY2hpbGQpIHsKQEAgLTQ3NSw3ICs0NzAsNiBAQCBib29sIENv
bnRhaW5lck5vZGU6OmFwcGVuZENoaWxkKFBhc3NSZWZQCiAgICAgICAgIH0KIAogICAgICAgICAv
LyBBcHBlbmQgY2hpbGQgdG8gdGhlIGVuZCBvZiB0aGUgbGlzdAotICAgICAgICBjaGlsZENvdW50
RGVsdGErKzsKICAgICAgICAgZm9yYmlkRXZlbnREaXNwYXRjaCgpOwogICAgICAgICBjaGlsZC0+
c2V0UGFyZW50KHRoaXMpOwogICAgICAgICBpZiAobV9sYXN0Q2hpbGQpIHsKQEAgLTQ4Nyw2ICs0
ODEsNyBAQCBib29sIENvbnRhaW5lck5vZGU6OmFwcGVuZENoaWxkKFBhc3NSZWZQCiAgICAgICAg
IGFsbG93RXZlbnREaXNwYXRjaCgpOwogCiAgICAgICAgIC8vIERpc3BhdGNoIHRoZSBtdXRhdGlv
biBldmVudHMKKyAgICAgICAgY2hpbGRyZW5DaGFuZ2VkKGZhbHNlLCBwcmV2LmdldCgpLCAwLCAx
KTsKICAgICAgICAgZGlzcGF0Y2hDaGlsZEluc2VydGlvbkV2ZW50cyhjaGlsZC5nZXQoKSwgZWMp
OwogCiAgICAgICAgIC8vIEFkZCBjaGlsZCB0byB0aGUgcmVuZGVyaW5nIHRyZWUKQEAgLTUwMSw3
ICs0OTYsNiBAQCBib29sIENvbnRhaW5lck5vZGU6OmFwcGVuZENoaWxkKFBhc3NSZWZQCiAgICAg
fQogCiAgICAgZG9jdW1lbnQoKS0+c2V0RG9jdW1lbnRDaGFuZ2VkKHRydWUpOwotICAgIGNoaWxk
cmVuQ2hhbmdlZChmYWxzZSwgcHJldi5nZXQoKSwgMCwgY2hpbGRDb3VudERlbHRhKTsKICAgICBk
aXNwYXRjaFN1YnRyZWVNb2RpZmllZEV2ZW50KCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CkluZGV4
OiBXZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuY3BwCShyZXZpc2lvbiA0MDk2OCkKKysrIFdl
YkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTgs
NDAgKzU4LDMwIEBAIGNvbnN0IEF0b21pY1N0cmluZyYgSFRNTE9wdEdyb3VwRWxlbWVudDoKIGJv
b2wgSFRNTE9wdEdyb3VwRWxlbWVudDo6aW5zZXJ0QmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4gbmV3
Q2hpbGQsIE5vZGUqIHJlZkNoaWxkLCBFeGNlcHRpb25Db2RlJiBlYywgYm9vbCBzaG91bGRMYXp5
QXR0YWNoKQogewogICAgIGJvb2wgcmVzdWx0ID0gSFRNTEZvcm1Db250cm9sRWxlbWVudDo6aW5z
ZXJ0QmVmb3JlKG5ld0NoaWxkLCByZWZDaGlsZCwgZWMsIHNob3VsZExhenlBdHRhY2gpOwotICAg
IGlmIChyZXN1bHQpCi0gICAgICAgIHJlY2FsY1NlbGVjdE9wdGlvbnMoKTsKICAgICByZXR1cm4g
cmVzdWx0OwogfQogCiBib29sIEhUTUxPcHRHcm91cEVsZW1lbnQ6OnJlcGxhY2VDaGlsZChQYXNz
UmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBOb2RlKiBvbGRDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMs
IGJvb2wgc2hvdWxkTGF6eUF0dGFjaCkKIHsKICAgICBib29sIHJlc3VsdCA9IEhUTUxGb3JtQ29u
dHJvbEVsZW1lbnQ6OnJlcGxhY2VDaGlsZChuZXdDaGlsZCwgb2xkQ2hpbGQsIGVjLCBzaG91bGRM
YXp5QXR0YWNoKTsKLSAgICBpZiAocmVzdWx0KQotICAgICAgICByZWNhbGNTZWxlY3RPcHRpb25z
KCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogYm9vbCBIVE1MT3B0R3JvdXBFbGVtZW50Ojpy
ZW1vdmVDaGlsZChOb2RlKiBvbGRDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgYm9v
bCByZXN1bHQgPSBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpyZW1vdmVDaGlsZChvbGRDaGlsZCwg
ZWMpOwotICAgIGlmIChyZXN1bHQpCi0gICAgICAgIHJlY2FsY1NlbGVjdE9wdGlvbnMoKTsKICAg
ICByZXR1cm4gcmVzdWx0OwogfQogCiBib29sIEhUTUxPcHRHcm91cEVsZW1lbnQ6OmFwcGVuZENo
aWxkKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjLCBib29sIHNo
b3VsZExhenlBdHRhY2gpCiB7CiAgICAgYm9vbCByZXN1bHQgPSBIVE1MRm9ybUNvbnRyb2xFbGVt
ZW50OjphcHBlbmRDaGlsZChuZXdDaGlsZCwgZWMsIHNob3VsZExhenlBdHRhY2gpOwotICAgIGlm
IChyZXN1bHQpCi0gICAgICAgIHJlY2FsY1NlbGVjdE9wdGlvbnMoKTsKICAgICByZXR1cm4gcmVz
dWx0OwogfQogCiBib29sIEhUTUxPcHRHcm91cEVsZW1lbnQ6OnJlbW92ZUNoaWxkcmVuKCkKIHsK
ICAgICBib29sIHJlc3VsdCA9IEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OnJlbW92ZUNoaWxkcmVu
KCk7Ci0gICAgaWYgKHJlc3VsdCkKLSAgICAgICAgcmVjYWxjU2VsZWN0T3B0aW9ucygpOwogICAg
IHJldHVybiByZXN1bHQ7CiB9CiAKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVu
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcAko
cmV2aXNpb24gNDA5NjgpCisrKyBXZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yMjAsOCArMjIwLDYgQEAgdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6
YWRkKEhUTUxFbGVtZW50IAogCiAgICAgZWMgPSAwOwogICAgIGluc2VydEJlZm9yZShlbGVtZW50
LCBiZWZvcmUsIGVjKTsKLSAgICBpZiAoIWVjKQotICAgICAgICBzZXRSZWNhbGNMaXN0SXRlbXMo
KTsKIH0KIAogdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6cmVtb3ZlKGludCBpbmRleCkKQEAgLTIz
Niw4ICsyMzQsNiBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpyZW1vdmUoaW50IGluZGV4CiAg
ICAgRWxlbWVudCAqaXRlbSA9IGl0ZW1zW2xpc3RJbmRleF07CiAgICAgQVNTRVJUKGl0ZW0tPnBh
cmVudE5vZGUoKSk7CiAgICAgaXRlbS0+cGFyZW50Tm9kZSgpLT5yZW1vdmVDaGlsZChpdGVtLCBl
Yyk7Ci0gICAgaWYgKCFlYykKLSAgICAgICAgc2V0UmVjYWxjTGlzdEl0ZW1zKCk7CiB9CiAKIFN0
cmluZyBIVE1MU2VsZWN0RWxlbWVudDo6dmFsdWUoKQpAQCAtMjk5LDQwICsyOTUsMzAgQEAgdm9p
ZCBIVE1MU2VsZWN0RWxlbWVudDo6cmVzdG9yZVN0YXRlKGNvbgogYm9vbCBIVE1MU2VsZWN0RWxl
bWVudDo6aW5zZXJ0QmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIE5vZGUqIHJlZkNo
aWxkLCBFeGNlcHRpb25Db2RlJiBlYywgYm9vbCBzaG91bGRMYXp5QXR0YWNoKQogewogICAgIGJv
b2wgcmVzdWx0ID0gSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZTo6aW5zZXJ0QmVmb3Jl
KG5ld0NoaWxkLCByZWZDaGlsZCwgZWMsIHNob3VsZExhenlBdHRhY2gpOwotICAgIGlmIChyZXN1
bHQpCi0gICAgICAgIHNldFJlY2FsY0xpc3RJdGVtcygpOwogICAgIHJldHVybiByZXN1bHQ7CiB9
CiAKIGJvb2wgSFRNTFNlbGVjdEVsZW1lbnQ6OnJlcGxhY2VDaGlsZChQYXNzUmVmUHRyPE5vZGU+
IG5ld0NoaWxkLCBOb2RlICpvbGRDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMsIGJvb2wgc2hvdWxk
TGF6eUF0dGFjaCkKIHsKICAgICBib29sIHJlc3VsdCA9IEhUTUxGb3JtQ29udHJvbEVsZW1lbnRX
aXRoU3RhdGU6OnJlcGxhY2VDaGlsZChuZXdDaGlsZCwgb2xkQ2hpbGQsIGVjLCBzaG91bGRMYXp5
QXR0YWNoKTsKLSAgICBpZiAocmVzdWx0KQotICAgICAgICBzZXRSZWNhbGNMaXN0SXRlbXMoKTsK
ICAgICByZXR1cm4gcmVzdWx0OwogfQogCiBib29sIEhUTUxTZWxlY3RFbGVtZW50OjpyZW1vdmVD
aGlsZChOb2RlKiBvbGRDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgYm9vbCByZXN1
bHQgPSBIVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlOjpyZW1vdmVDaGlsZChvbGRDaGls
ZCwgZWMpOwotICAgIGlmIChyZXN1bHQpCi0gICAgICAgIHNldFJlY2FsY0xpc3RJdGVtcygpOwog
ICAgIHJldHVybiByZXN1bHQ7CiB9CiAKIGJvb2wgSFRNTFNlbGVjdEVsZW1lbnQ6OmFwcGVuZENo
aWxkKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjLCBib29sIHNo
b3VsZExhenlBdHRhY2gpCiB7CiAgICAgYm9vbCByZXN1bHQgPSBIVE1MRm9ybUNvbnRyb2xFbGVt
ZW50V2l0aFN0YXRlOjphcHBlbmRDaGlsZChuZXdDaGlsZCwgZWMsIHNob3VsZExhenlBdHRhY2gp
OwotICAgIGlmIChyZXN1bHQpCi0gICAgICAgIHNldFJlY2FsY0xpc3RJdGVtcygpOwogICAgIHJl
dHVybiByZXN1bHQ7CiB9CiAKIGJvb2wgSFRNTFNlbGVjdEVsZW1lbnQ6OnJlbW92ZUNoaWxkcmVu
KCkKIHsKICAgICBib29sIHJlc3VsdCA9IEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGU6
OnJlbW92ZUNoaWxkcmVuKCk7Ci0gICAgaWYgKHJlc3VsdCkKLSAgICAgICAgc2V0UmVjYWxjTGlz
dEl0ZW1zKCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApJbmRleDogTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNDA5
NzYpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwx
MyBAQAorMjAwOS0wMi0xMyAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQHdlYmtpdC5vcmc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzOTQ5CisgICAgICAgIEhUTUxTZWxlY3RF
bGVtZW50IGlzIGluIGluY29uc2lzdGVudCBzdGF0ZSB3aGVuIGhhbmRsaW5nIG11dGF0aW9uIGV2
ZW50cworCisgICAgICAgICogZmFzdC9mb3Jtcy9tdXRhdGlvbi1ldmVudC1yZWNhbGMtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL211dGF0aW9uLWV2ZW50LXJlY2Fs
Yy5odG1sOiBBZGRlZC4KKwogMjAwOS0wMi0xMyAgQ2hyaXMgTWFycmluICA8Y21hcnJpbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9tdXRhdGlvbi1ldmVudC1yZWNhbGMtZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvbXV0YXRpb24tZXZlbnQtcmVjYWxjLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvbXV0YXRp
b24tZXZlbnQtcmVjYWxjLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0IEBA
CitUZXN0IHRoYXQgSFRNTFNlbGVjdEVsZW1lbnQgRE9NIGlzIGluIGEgY29uc2lzdGVudCBzdGF0
ZSB3aGVuIGhhbmRsaW5nIG11dGF0aW9uIGV2ZW50cy4KKworCitTVUNDRVNTCgpQcm9wZXJ0eSBj
aGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL211dGF0aW9uLWV2ZW50LXJlY2FsYy1l
eHBlY3RlZC50eHQKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46bWltZS10eXBlCiAgICsgdGV4dC9wbGFp
bgpOYW1lOiBzdm46ZW9sLXN0eWxlCiAgICsgbmF0aXZlCgpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy9tdXRhdGlvbi1ldmVudC1yZWNhbGMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL211dGF0aW9uLWV2ZW50LXJlY2FsYy5odG1sCShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9tdXRhdGlvbi1ldmVudC1yZWNhbGMuaHRtbAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSwxNDUgQEAKKzxib2R5PgorPHA+VGVzdCB0aGF0IEhUTUxTZWxl
Y3RFbGVtZW50IERPTSBpcyBpbiBhIGNvbnNpc3RlbnQgc3RhdGUgd2hlbiBoYW5kbGluZyBtdXRh
dGlvbiBldmVudHMuPC9wPgorPGZvcm0+Cis8c2VsZWN0IG11bHRpcGxlIHNpemU9NT48b3B0aW9u
PjE8L29wdGlvbj48b3B0aW9uPjI8L29wdGlvbj48L3NlbGVjdD4KKzwvZm9ybT4KKzxkaXYgaWQ9
cmVzPjwvZGl2PgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCit2YXIgc2VsZWN0ID0gZG9j
dW1lbnQuZm9ybXNbMF0uZWxlbWVudHNbMF07Cit2YXIgcmVzID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInJlcyIpOwordmFyIGhhZEZhaWx1cmUgPSBmYWxzZTsKKworZnVuY3Rpb24gbG9nRXJy
b3IobWVzc2FnZSkKK3sKKyAgICByZXMuaW5uZXJIVE1MICs9IG1lc3NhZ2UgKyAiPGJyPiI7Cisg
ICAgaGFkRmFpbHVyZSA9IHRydWU7Cit9CisKKy8vIHsgdGVzdCBudW1iZXIsIGV4cGVjdGVkIGxl
bmd0aCwgaXRlbSB0byBjaGVjaywgZXhwZWN0ZWQgcmVzdWx0IH0KK3ZhciB0ZXN0SW5mbzsKKwor
ZnVuY3Rpb24gY2hlY2tTZWxlY3QoZXZ0KQoreworICAgIC8vIEZvcmNlIGxheW91dCB0byB2ZXJp
ZnkgdGhhdCBET00gaXMgaW4gYSBjb25zaXN0ZW50IHN0YXRlLgorICAgIGRvY3VtZW50LmJvZHku
b2Zmc2V0VG9wOworCisgICAgaWYgKCF0ZXN0SW5mb1swXSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgaWYgKHNlbGVjdC5sZW5ndGggIT0gdGVzdEluZm9bMV0pCisgICAgICAgIGxvZ0Vycm9yKCJU
ZXN0ICIgKyB0ZXN0SW5mb1swXSArICIuICIgKyBldnQudHlwZSArICI6IEluY29ycmVjdCBsZW5n
dGguIFdhcyAiICsgc2VsZWN0Lmxlbmd0aCArICIsIGV4cGVjdGVkICIgKyB0ZXN0SW5mb1sxXSAr
ICIuIik7CisKKyAgICBpZiAodGVzdEluZm9bM10pIHsKKyAgICAgICAgaWYgKHNlbGVjdC5pdGVt
KHRlc3RJbmZvWzJdKS52YWx1ZSAhPSB0ZXN0SW5mb1szXSkKKyAgICAgICAgICAgIGxvZ0Vycm9y
KCJUZXN0ICIgKyB0ZXN0SW5mb1swXSArICIuICIgKyBldnQudHlwZSArICI6IEluY29ycmVjdCBp
dGVtICIgKyB0ZXN0SW5mb1syXSArICIgdmFsdWUuIFdhcyAiICsgc2VsZWN0Lml0ZW0odGVzdElu
Zm9bMl0pLnZhbHVlICsgIiwgZXhwZWN0ZWQgIiArIHRlc3RJbmZvWzNdICsgIi4iKTsKKyAgICB9
IGVsc2UgeworICAgICAgICBpZiAoc2VsZWN0Lml0ZW0odGVzdEluZm9bMl0pKQorICAgICAgICAg
ICAgbG9nRXJyb3IoIlRlc3QgIiArIHRlc3RJbmZvWzBdICsgIi4gIiArIGV2dC50eXBlICsgIjog
SXRlbSAiICsgdGVzdEluZm9bMl0gKyAiIGV4aXN0cyB3aGVuIGl0IHNob3VsZCBub3QuIik7Cisg
ICAgfQorfQorCitmdW5jdGlvbiBvbk5vZGVSZW1vdmVkKCkKK3sKKyAgICAvLyBGb3JjZSBsYXlv
dXQgdG8gdmVyaWZ5IHRoYXQgRE9NIGlzIGluIGEgY29uc2lzdGVudCBzdGF0ZS4KKyAgICBkb2N1
bWVudC5ib2R5Lm9mZnNldFRvcDsKKworICAgIGlmIChzZWxlY3QubGVuZ3RoICE9IDIpIHsKKyAg
ICAgICAgYWxlcnQoIkZBSUw6IEluY29ycmVjdCBsZW5ndGggYWZ0ZXIgcmVtb3ZpbmcgYW4gb3B0
aW9uLiIpOworICAgICAgICBoYWRGYWlsdXJlID0gdHJ1ZTsKKyAgICB9CisKKyAgICBpZiAoc2Vs
ZWN0Lml0ZW0oMikpIHsKKyAgICAgICAgYWxlcnQoIkZBSUw6IEEgcmVtb3ZlZCBvcHRpb24gaXMg
c3RpbGwgcHJlc2VudCB3aGVuIGhhbmRsaW5nIGEgRE9NTm9kZVJlbW92ZWQgZXZlbnQuIik7Cisg
ICAgICAgIGhhZEZhaWx1cmUgPSB0cnVlOworICAgIH0KK30KKworc2VsZWN0LmFkZEV2ZW50TGlz
dGVuZXIoIkRPTU5vZGVJbnNlcnRlZCIsIGNoZWNrU2VsZWN0LCB0cnVlKTsKK3NlbGVjdC5hZGRF
dmVudExpc3RlbmVyKCJET01Ob2RlSW5zZXJ0ZWRJbnRvRG9jdW1lbnQiLCBjaGVja1NlbGVjdCwg
dHJ1ZSk7CitzZWxlY3QuYWRkRXZlbnRMaXN0ZW5lcigiRE9NU3VidHJlZU1vZGlmaWVkIiwgY2hl
Y2tTZWxlY3QsIHRydWUpOworc2VsZWN0LmFkZEV2ZW50TGlzdGVuZXIoIkRPTVN1YnRyZWVNb2Rp
ZmllZCIsIGNoZWNrU2VsZWN0LCB0cnVlKTsKKwordGVzdEluZm8gPSBbMSwgMywgMiwgIjMiXTsK
K3NlbGVjdC5hcHBlbmRDaGlsZChuZXcgT3B0aW9uKCIzIiwgIjMiLCBmYWxzZSwgZmFsc2UpKTsK
K2NoZWNrU2VsZWN0KCk7CisKK3Rlc3RJbmZvID0gWzIsIDIsIDIsIHVuZGVmaW5lZF07CitzZWxl
Y3QucmVtb3ZlQ2hpbGQoc2VsZWN0Lmxhc3RDaGlsZCk7CitjaGVja1NlbGVjdCgpOworCit0ZXN0
SW5mbyA9IFtdOyAvLyBBIERPTVN1YnRyZWVNb2RpZmllZCBldmVudCBtYXkgYmUgZGlzcGF0Y2hl
ZCBiZXR3ZWVuIHJlbW92YWwgYW5kIGFkZGl0aW9uLCBza2lwIGNoZWNrcy4KK3NlbGVjdC5yZXBs
YWNlQ2hpbGQobmV3IE9wdGlvbigibmV3IiwgIm5ldyIsIGZhbHNlLCBmYWxzZSksIHNlbGVjdC5s
YXN0Q2hpbGQpOwordGVzdEluZm8gPSBbMywgMiwgMSwgIm5ldyJdOworY2hlY2tTZWxlY3QoKTsK
KwordGVzdEluZm8gPSBbNCwgMywgMCwgIjAiXTsKK3NlbGVjdC5hZGQobmV3IE9wdGlvbigiMCIs
ICIwIiwgZmFsc2UsIGZhbHNlKSwgc2VsZWN0LmZpcnN0Q2hpbGQpOwordGVzdEluZm8gPSBbNCwg
MywgMCwgIjAiXTsKK2NoZWNrU2VsZWN0KCk7CisKK3Rlc3RJbmZvID0gWzUsIDIsIDAsICIxIl07
CitzZWxlY3QucmVtb3ZlKDApOwordGVzdEluZm8gPSBbNSwgMiwgMCwgIjEiXTsKK2NoZWNrU2Vs
ZWN0KCk7CisKK3Rlc3RJbmZvID0gWzYsIDMsIDAsICItMSJdOworc2VsZWN0Lmluc2VydEJlZm9y
ZShuZXcgT3B0aW9uKCItMSIsICItMSIsIGZhbHNlLCBmYWxzZSksIHNlbGVjdC5maXJzdENoaWxk
KTsKK3Rlc3RJbmZvID0gWzYsIDMsIDAsICItMSJdOworY2hlY2tTZWxlY3QoKTsKKwordGVzdElu
Zm8gPSBbNywgMywgMCwgIi0iXTsKK3NlbGVjdC5maXJzdENoaWxkLnZhbHVlID0gIi0iOworc2Vs
ZWN0LmZpcnN0Q2hpbGQudGV4dCA9ICItIjsKK3Rlc3RJbmZvID0gWzcsIDMsIDAsICItIl07Citj
aGVja1NlbGVjdCgpOworCit0ZXN0SW5mbyA9IFtdOyAvLyBNdWx0aXBsZSBET01TdWJ0cmVlTW9k
aWZpZWQgZXZlbnQgbWF5IGJlIGRpc3BhdGNoZWQsIHNraXAgY2hlY2suCitzZWxlY3QuaW5uZXJI
VE1MID0gIjxvcHRncm91cD48b3B0aW9uPjE8L29wdGlvbj48b3B0aW9uPjI8L29wdGlvbj48L29w
dGdyb3VwPiI7Cit0ZXN0SW5mbyA9IFs4LCAyLCAwLCAxXTsKK2NoZWNrU2VsZWN0KCk7CisKK3Zh
ciBvcHRncm91cCA9IHNlbGVjdC5maXJzdENoaWxkOworCit0ZXN0SW5mbyA9IFs5LCAzLCAyLCAi
MyJdOworb3B0Z3JvdXAuYXBwZW5kQ2hpbGQobmV3IE9wdGlvbigiMyIsICIzIiwgZmFsc2UsIGZh
bHNlKSk7CitjaGVja1NlbGVjdCgpOworCit0ZXN0SW5mbyA9IFsxMCwgMiwgMiwgdW5kZWZpbmVk
XTsKK29wdGdyb3VwLnJlbW92ZUNoaWxkKG9wdGdyb3VwLmxhc3RDaGlsZCk7CitjaGVja1NlbGVj
dCgpOworCit0ZXN0SW5mbyA9IFtdOyAvLyBBIERPTVN1YnRyZWVNb2RpZmllZCBldmVudCBtYXkg
YmUgZGlzcGF0Y2hlZCBiZXR3ZWVuIHJlbW92YWwgYW5kIGFkZGl0aW9uLCBza2lwIGNoZWNrcy4K
K29wdGdyb3VwLnJlcGxhY2VDaGlsZChuZXcgT3B0aW9uKCJuZXciLCAibmV3IiwgZmFsc2UsIGZh
bHNlKSwgb3B0Z3JvdXAubGFzdENoaWxkKTsKK3Rlc3RJbmZvID0gWzExLCAyLCAxLCAibmV3Il07
CitjaGVja1NlbGVjdCgpOworCisvKiBXZWJLaXQgY2Fubm90IGFkZCBvcHRpb25zIHJpZ2h0IGlu
dG8gYSBncm91cCB2aWEgSFRNTFNlbGVjdEVsZW1lbnQuYWRkKCkuCit0ZXN0SW5mbyA9IFsxMiwg
MywgMCwgIjAiXTsKK3NlbGVjdC5hZGQobmV3IE9wdGlvbigiMCIsICIwIiwgZmFsc2UsIGZhbHNl
KSwgb3B0Z3JvdXAuZmlyc3RDaGlsZCk7Cit0ZXN0SW5mbyA9IFsxMiwgMywgMCwgIjAiXTsKK2No
ZWNrU2VsZWN0KCk7CisKK3Rlc3RJbmZvID0gWzEzLCAyLCAwLCAiMSJdOworc2VsZWN0LnJlbW92
ZSgwKTsKK2NoZWNrU2VsZWN0KCk7CisqLworCit0ZXN0SW5mbyA9IFsxNCwgMywgMCwgIi0xIl07
CitvcHRncm91cC5pbnNlcnRCZWZvcmUobmV3IE9wdGlvbigiLTEiLCAiLTEiLCBmYWxzZSwgZmFs
c2UpLCBvcHRncm91cC5maXJzdENoaWxkKTsKK2NoZWNrU2VsZWN0KCk7CisKK3Rlc3RJbmZvID0g
WzE1LCAzLCAwLCAiLSJdOworb3B0Z3JvdXAuZmlyc3RDaGlsZC52YWx1ZSA9ICItIjsKK29wdGdy
b3VwLmZpcnN0Q2hpbGQudGV4dCA9ICItIjsKK2NoZWNrU2VsZWN0KCk7CisKK3Rlc3RJbmZvID0g
WzE2LCAwLCAwLCB1bmRlZmluZWRdOworb3B0Z3JvdXAuaW5uZXJIVE1MID0gIiI7CitjaGVja1Nl
bGVjdCgpOworCitpZiAoIWhhZEZhaWx1cmUpCisgICAgcmVzLmlubmVySFRNTCA9ICJTVUNDRVNT
IjsKKzwvc2NyaXB0PgoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9tdXRhdGlvbi1ldmVudC1yZWNhbGMuaHRtbApfX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk5hbWU6IHN2bjptaW1lLXR5
cGUKICAgKyB0ZXh0L2h0bWwKCg==
</data>
<flag name="review"
          id="14010"
          type_id="1"
          status="+"
          setter="adele"
    />
          </attachment>
      

    </bug>

</bugzilla>