<?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>12194</bug_id>
          
          <creation_ts>2007-01-10 04:01:22 -0800</creation_ts>
          <short_desc>Trying to access XMLHttpRequest.responseText or responseXML when they are not available should raise an exception</short_desc>
          <delta_ts>2007-11-19 04:31:19 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>XML</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>jchaffraix</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>35935</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2007-01-10 04:01:22 -0800</bug_when>
    <thetext>From XMLHttpRequest spec draft:

------------------------
responseText of type DOMString, readonly
If the state is not receiving or loaded, the user agent must raise an INVALID_STATE_ERR exception. 
...
responseXML of type Document, readonly
If the state is not loaded, user agents must raise an INVALID_STATE_ERR exception.
------------------------</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>61363</commentid>
    <comment_count>1</comment_count>
      <attachid>17309</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2007-11-15 19:09:34 -0800</bug_when>
    <thetext>Created attachment 17309
Patch + test cases

Tested other browsers&apos; behaviour :

IE 7:
raises an exception if readyState is not Loaded in both tests

Firefox:
does not raise any exception in both tests

Opera:
Fully implements the standard.

Judging from the results, I have sided with the specification (which is close to IE behaviour) and fully implemented it.

Patch tested on mac without any regression.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>61436</commentid>
    <comment_count>2</comment_count>
      <attachid>17309</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-11-16 20:08:44 -0800</bug_when>
    <thetext>Comment on attachment 17309
Patch + test cases

+            if (responseXML)
                 return toJS(exec, responseXML);
-            return jsNull();
+            else
+                return jsNull();

We normally do *not* do else after return in the WebKit project.

+    if (m_state &lt; Receiving) {
+        ec = INVALID_STATE_ERR;
+    }

We do not put braces around single-line bodies of if statements.

+Should see &quot;PASS&quot; four times:
+
+PASSED
+PASSED
+PASSED
+PASSED

Probably should say &quot;PASSED&quot; or &quot;PASS&quot; consistently.

Change looks good, so I&apos;ll say r=me, but it would be nice to fix these minor style issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>61507</commentid>
    <comment_count>3</comment_count>
      <attachid>17333</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2007-11-17 18:48:39 -0800</bug_when>
    <thetext>Created attachment 17333
Patches updated with Darin&apos;s comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>61543</commentid>
    <comment_count>4</comment_count>
      <attachid>17333</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2007-11-17 21:21:12 -0800</bug_when>
    <thetext>Comment on attachment 17333
Patches updated with Darin&apos;s comments

Please set the &quot;review?&quot; flag, not the &quot;review+&quot; flag.  Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>61555</commentid>
    <comment_count>5</comment_count>
      <attachid>17333</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-11-17 22:50:35 -0800</bug_when>
    <thetext>Comment on attachment 17333
Patches updated with Darin&apos;s comments

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>61660</commentid>
    <comment_count>6</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2007-11-19 04:31:19 -0800</bug_when>
    <thetext>Landed in r27898.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17309</attachid>
            <date>2007-11-15 19:09:34 -0800</date>
            <delta_ts>2007-11-17 18:48:39 -0800</delta_ts>
            <desc>Patch + test cases</desc>
            <filename>bug12194-updated.patch</filename>
            <type>text/plain</type>
            <size>14605</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNzgzNCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMDctMTEtMTUgIGp1bGllbiBDaGFmZnJhaXggIDxqdWxpZW4uY2hh
ZmZyYWl4QGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBCdWcgMTIxOTQ6IFRyeWluZyB0byBhY2Nlc3MgWE1MSHR0cFJlcXVlc3QucmVz
cG9uc2VUZXh0IG9yIHJlc3BvbnNlWE1MIHdoZW4gdGhleSAKKyAgICAgICAgYXJlIG5vdCBhdmFp
bGFibGUgc2hvdWxkIHJhaXNlIGFuIGV4Y2VwdGlvbgorCisgICAgICAgIFRlc3RzOiBodHRwL3Rl
c3RzL3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LXJlc3BvbnNlVGV4dC1leGNlcHRpb24u
aHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC94bWxodHRwcmVx
dWVzdC1yZXNwb25zZVhNTC1leGNlcHRpb24uaHRtbAorCisgICAgICAgICogYmluZGluZ3MvanMv
SlNYTUxIdHRwUmVxdWVzdC5jcHA6CisgICAgICAgIChLSlM6OkpTWE1MSHR0cFJlcXVlc3Q6Omdl
dFZhbHVlUHJvcGVydHkpOgorICAgICAgICAqIHhtbC9YTUxIdHRwUmVxdWVzdC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6Z2V0UmVzcG9uc2VUZXh0KToKKyAgICAgICAg
KFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpnZXRSZXNwb25zZVhNTCk6CisgICAgICAgICogeG1s
L1hNTEh0dHBSZXF1ZXN0Lmg6CisKIDIwMDctMTEtMTUgIFRpbW90aHkgSGF0Y2hlciAgPHRpbW90
aHlAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hcmsgUm93ZSBhbmQgU2FtLgpJ
bmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3QuY3BwCShyZXZpc2lvbiAy
NzgzNCkKKysrIFdlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEwMSwxMiArMTAxLDE5IEBAIEpTVmFsdWUqIEpTWE1MSHR0cFJlcXVlc3Q6
OmdldFZhbHVlUHJvcGUKICAgICBzd2l0Y2ggKHRva2VuKSB7CiAgICAgICAgIGNhc2UgUmVhZHlT
dGF0ZToKICAgICAgICAgICAgIHJldHVybiBqc051bWJlcihtX2ltcGwtPmdldFJlYWR5U3RhdGUo
KSk7Ci0gICAgICAgIGNhc2UgUmVzcG9uc2VUZXh0OgotICAgICAgICAgICAgcmV0dXJuIGpzT3du
ZWRTdHJpbmdPck51bGwobV9pbXBsLT5nZXRSZXNwb25zZVRleHQoKSk7Ci0gICAgICAgIGNhc2Ug
UmVzcG9uc2VYTUw6Ci0gICAgICAgICAgICBpZiAoRG9jdW1lbnQqIHJlc3BvbnNlWE1MID0gbV9p
bXBsLT5nZXRSZXNwb25zZVhNTCgpKQorICAgICAgICBjYXNlIFJlc3BvbnNlVGV4dDogeworICAg
ICAgICAgICAgSlNWYWx1ZSogcmVzdWx0ID0ganNPd25lZFN0cmluZ09yTnVsbChtX2ltcGwtPmdl
dFJlc3BvbnNlVGV4dChlYykpOworICAgICAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVj
KTsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBS
ZXNwb25zZVhNTDogeworICAgICAgICAgICAgRG9jdW1lbnQqIHJlc3BvbnNlWE1MID0gbV9pbXBs
LT5nZXRSZXNwb25zZVhNTChlYyk7CisgICAgICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywg
ZWMpOworICAgICAgICAgICAgaWYgKHJlc3BvbnNlWE1MKQogICAgICAgICAgICAgICAgIHJldHVy
biB0b0pTKGV4ZWMsIHJlc3BvbnNlWE1MKTsKLSAgICAgICAgICAgIHJldHVybiBqc051bGwoKTsK
KyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByZXR1cm4ganNOdWxsKCk7CisgICAg
ICAgIH0KICAgICAgICAgY2FzZSBTdGF0dXM6IHsKICAgICAgICAgICAgIEpTVmFsdWUqIHJlc3Vs
dCA9IGpzTnVtYmVyKG1faW1wbC0+Z2V0U3RhdHVzKGVjKSk7CiAgICAgICAgICAgICBzZXRET01F
eGNlcHRpb24oZXhlYywgZWMpOwpJbmRleDogV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAkocmV2aXNpb24g
Mjc4MzQpCisrKyBXZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTE0NSwxNSArMTQ1LDIxIEBAIFhNTEh0dHBSZXF1ZXN0U3RhdGUgWE1MSHR0cFJlcXVlc3Q6
OmdldFIKICAgICByZXR1cm4gbV9zdGF0ZTsKIH0KIAotY29uc3QgS0pTOjpVU3RyaW5nJiBYTUxI
dHRwUmVxdWVzdDo6Z2V0UmVzcG9uc2VUZXh0KCkgY29uc3QKK2NvbnN0IEtKUzo6VVN0cmluZyYg
WE1MSHR0cFJlcXVlc3Q6OmdldFJlc3BvbnNlVGV4dChFeGNlcHRpb25Db2RlJiBlYykgY29uc3QK
IHsKKyAgICBpZiAobV9zdGF0ZSA8IFJlY2VpdmluZykgeworICAgICAgICBlYyA9IElOVkFMSURf
U1RBVEVfRVJSOworICAgIH0KKwogICAgIHJldHVybiBtX3Jlc3BvbnNlVGV4dDsKIH0KIAotRG9j
dW1lbnQqIFhNTEh0dHBSZXF1ZXN0OjpnZXRSZXNwb25zZVhNTCgpIGNvbnN0CitEb2N1bWVudCog
WE1MSHR0cFJlcXVlc3Q6OmdldFJlc3BvbnNlWE1MKEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25zdAog
ewotICAgIGlmIChtX3N0YXRlICE9IExvYWRlZCkKKyAgICBpZiAobV9zdGF0ZSAhPSBMb2FkZWQp
IHsKKyAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKICAgICAgICAgcmV0dXJuIDA7Cisg
ICAgfQogCiAgICAgaWYgKCFtX2NyZWF0ZWREb2N1bWVudCkgewogICAgICAgICBpZiAobV9yZXNw
b25zZS5pc0hUVFAoKSAmJiAhcmVzcG9uc2VJc1hNTCgpKSB7CkluZGV4OiBXZWJDb3JlL3htbC9Y
TUxIdHRwUmVxdWVzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0
LmgJKHJldmlzaW9uIDI3ODM0KQorKysgV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaAkod29y
a2luZyBjb3B5KQpAQCAtODIsOCArODIsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBvdmVycmlkZU1J
TUVUeXBlKGNvbnN0IFN0cmluZyYgb3ZlcnJpZGUpOwogICAgIFN0cmluZyBnZXRBbGxSZXNwb25z
ZUhlYWRlcnMoRXhjZXB0aW9uQ29kZSYpIGNvbnN0OwogICAgIFN0cmluZyBnZXRSZXNwb25zZUhl
YWRlcihjb25zdCBTdHJpbmcmIG5hbWUsIEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKLSAgICBjb25z
dCBLSlM6OlVTdHJpbmcmIGdldFJlc3BvbnNlVGV4dCgpIGNvbnN0OwotICAgIERvY3VtZW50KiBn
ZXRSZXNwb25zZVhNTCgpIGNvbnN0OworICAgIGNvbnN0IEtKUzo6VVN0cmluZyYgZ2V0UmVzcG9u
c2VUZXh0KEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKKyAgICBEb2N1bWVudCogZ2V0UmVzcG9uc2VY
TUwoRXhjZXB0aW9uQ29kZSYpIGNvbnN0OwogCiAgICAgdm9pZCBzZXRPblJlYWR5U3RhdGVDaGFu
Z2VMaXN0ZW5lcihFdmVudExpc3RlbmVyKik7CiAgICAgRXZlbnRMaXN0ZW5lciogb25SZWFkeVN0
YXRlQ2hhbmdlTGlzdGVuZXIoKSBjb25zdDsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3ODM0KQorKysg
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIw
MDctMTEtMTUgIGp1bGllbiBDaGFmZnJhaXggIDxzanVsaWVuLmNoYWZmcmFpeEBnbWFpbC5jb20+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQnVnIDEy
MTk0OiBUcnlpbmcgdG8gYWNjZXNzIFhNTEh0dHBSZXF1ZXN0LnJlc3BvbnNlVGV4dCBvciByZXNw
b25zZVhNTCB3aGVuIHRoZXkgYXJlIG5vdCAKKyAgICAgICAgYXZhaWxhYmxlIHNob3VsZCByYWlz
ZSBhbiBleGNlcHRpb24KKworICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveG1s
aHR0cHJlcXVlc3QtcmVzcG9uc2VUZXh0LWV4Y2VwdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3QtcmVzcG9u
c2VUZXh0LWV4Y2VwdGlvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0
dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LXJlc3BvbnNlWE1MLWV4Y2VwdGlvbi1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveG1saHR0cHJl
cXVlc3QtcmVzcG9uc2VYTUwtZXhjZXB0aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMveG1saHR0cHJlcXVlc3QvemVyby1sZW5ndGgtcmVzcG9uc2UtZXhwZWN0ZWQudHh0OiBV
cGRhdGVkIHJlc3VsdAorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvemVyby1s
ZW5ndGgtcmVzcG9uc2Utc3luYy1leHBlY3RlZC50eHQ6IFVwZGF0ZWQgcmVzdWx0CisgICAgICAg
ICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC96ZXJvLWxlbmd0aC1yZXNwb25zZS1zeW5jLmh0
bWw6IEFkZGVkIGV4Y2VwdGlvbiBoYW5kbGluZyB0byB0ZXN0IGNhc2UKKwogMjAwNy0xMS0xNSAg
SnVzdGluIEdhcmNpYSAgPGp1c3Rpbi5nYXJjaWFAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IEFkZWxlIFBldGVyc29uLgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1yZXNwb25zZVRleHQtZXhjZXB0aW9uLWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0
L3htbGh0dHByZXF1ZXN0LXJlc3BvbnNlVGV4dC1leGNlcHRpb24tZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC94bWxodHRw
cmVxdWVzdC1yZXNwb25zZVRleHQtZXhjZXB0aW9uLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSw5IEBACitUZXN0IGJ1ZyAxMjkxNCA6IFRyeWluZyB0byBhY2Nlc3MgWE1MSHR0
cFJlcXVlc3QucmVzcG9uc2VUZXh0IG9yIHJlc3BvbnNlWE1MIHdoZW4gdGhleSBhcmUgbm90IGF2
YWlsYWJsZSBzaG91bGQgcmFpc2UgYW4gZXhjZXB0aW9uCisKK1Nob3VsZCBzZWUgIlBBU1MiIGZv
dXIgdGltZXM6CisKK1BBU1NFRAorUEFTU0VECitQQVNTRUQKK1BBU1NFRAorCkluZGV4OiBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LXJlc3BvbnNl
VGV4dC1leGNlcHRpb24uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LXJlc3BvbnNlVGV4dC1leGNlcHRpb24uaHRt
bAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qv
eG1saHR0cHJlcXVlc3QtcmVzcG9uc2VUZXh0LWV4Y2VwdGlvbi5odG1sCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDY5IEBACis8aHRtbD48aGVhZD48L2hlYWQ+PGJvZHk+CisKKzxwPlRlc3QgYnVn
IDEyOTE0IDogVHJ5aW5nIHRvIGFjY2VzcyBYTUxIdHRwUmVxdWVzdC5yZXNwb25zZVRleHQgb3IK
K3Jlc3BvbnNlWE1MIHdoZW4gdGhleSBhcmUgbm90IGF2YWlsYWJsZSBzaG91bGQgcmFpc2UgYW4g
ZXhjZXB0aW9uIDwvcD4KKzxwPlNob3VsZCBzZWUgIlBBU1MiIGZvdXIgdGltZXM6PC9wPgorPGRp
diBpZD0iYW5zIj48L2Rpdj4KKworPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorZnVu
Y3Rpb24gbG9nKG1lc3NhZ2UpIHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYW5zIiku
YXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobWVzc2FnZSkpOworICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJhbnMiKS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJiciIpKTsKK30KKworZnVuY3Rpb24gdGVzdChudW0pCit7CisgICAgdmFyIHhocjsKKwor
ICAgIGlmICh3aW5kb3cuWE1MSHR0cFJlcXVlc3QpIHsKKyAgICAgICAgeGhyID0gbmV3IFhNTEh0
dHBSZXF1ZXN0KCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHho
ciA9IG5ldyBBY3RpdmVYT2JqZWN0KCJNc3htbDIuWE1MSFRUUCIpOworICAgICAgICB9IGNhdGNo
IChleCkgeworICAgICAgICAgICAgeGhyID0gbmV3IEFjdGl2ZVhPYmplY3QoIk1pY3Jvc29mdC5Y
TUxIVFRQIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB4aHIub25yZWFkeXN0YXRlY2hhbmdl
ID0gZnVuY3Rpb24gKCkgeworICAgICAgICBpZiAodGhpcy5yZWFkeVN0YXRlID09IG51bSkgewor
ICAgICAgICAgICAgKytmaW5pc2hlZFRlc3RzOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAg
ICAgICAgICAvLyBmb3JjZSB0aGUgZXZhbHVhdGlvbiBmb3IgT3BlcmEKKyAgICAgICAgICAgICAg
ICB2YXIgcmVzcG9uc2UgPSB0aGlzLnJlc3BvbnNlVGV4dDsKKyAgICAgICAgICAgICAgICAvLyBp
ZiByZWFkeVN0YXRlIGlzIG5vdCBSZWNlaXZpbmcgb3IgTG9hZGVyLCByYWlzZSBhbiBleGNlcHRp
b24KKyAgICAgICAgICAgICAgICBpZiAodGhpcy5yZWFkeVN0YXRlIDwgMykKKyAgICAgICAgICAg
ICAgICAgICAgbG9nKCJGQUlMRUQgKCByZXNwb25zZSBcIiIgKyByZXNwb25zZSArICJcIiApIik7
CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBsb2coIlBBU1NFRCIp
OworICAgICAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgICAgICAgIGlmICh0aGlzLnJl
YWR5U3RhdGUgPCAzKQorICAgICAgICAgICAgICAgICAgICBsb2coIlBBU1NFRCIpOworICAgICAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgbG9nKCJGQUlMRUQiKTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKGZpbmlzaGVkVGVzdHMg
PT0gNCAmJiB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfQorCisgICAgeGhyLm9wZW4oIkdFVCIs
ICJyZXNvdXJjZXMvMTI1MS5odG1sIiwgdHJ1ZSk7CisgICAgaWYgKG51bSAhPSAxKQorICAgICAg
ICB4aHIuc2VuZChudWxsKTsKK30KKworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikg
eworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9CisKK3ZhciBmaW5pc2hlZFRlc3RzID0gMDsK
KworZm9yIChpID0gMTsgaSA8IDU7IGkrKykgeworICAgIHRlc3QoaSk7Cit9CisKKzwvc2NyaXB0
PgorCis8L2JvZHk+PC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IExh
eW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3QtcmVzcG9u
c2VYTUwtZXhjZXB0aW9uLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LXJlc3BvbnNlWE1MLWV4Y2Vw
dGlvbi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LXJlc3BvbnNlWE1MLWV4Y2VwdGlvbi1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsOSBAQAorVGVzdCBidWcgMTI5MTQgOiBU
cnlpbmcgdG8gYWNjZXNzIFhNTEh0dHBSZXF1ZXN0LnJlc3BvbnNlVGV4dCBvciByZXNwb25zZVhN
TCB3aGVuIHRoZXkgYXJlIG5vdCBhdmFpbGFibGUgc2hvdWxkIHJhaXNlIGFuIGV4Y2VwdGlvbgor
CitTaG91bGQgc2VlICJQQVNTIiBmb3VyIHRpbWVzOgorCitQQVNTRUQKK1BBU1NFRAorUEFTU0VE
CitQQVNTRUQKKwpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC94
bWxodHRwcmVxdWVzdC1yZXNwb25zZVhNTC1leGNlcHRpb24uaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LXJlc3Bv
bnNlWE1MLWV4Y2VwdGlvbi5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1yZXNwb25zZVhNTC1leGNlcHRpb24u
aHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2OSBAQAorPGh0bWw+Cis8aGVhZD48L2hlYWQ+
Cis8Ym9keT4KKworPHA+VGVzdCBidWcgMTI5MTQgOiAgVHJ5aW5nIHRvIGFjY2VzcyBYTUxIdHRw
UmVxdWVzdC5yZXNwb25zZVRleHQgb3IgcmVzcG9uc2VYTUwgd2hlbiB0aGV5IGFyZSBub3QgYXZh
aWxhYmxlIHNob3VsZCByYWlzZSBhbiBleGNlcHRpb24gPC9wPgorPHA+U2hvdWxkIHNlZSAiUEFT
UyIgZm91ciB0aW1lczo8L3A+Cis8ZGl2IGlkPSJhbnMiPjwvZGl2PgorCis8c2NyaXB0IHR5cGU9
InRleHQvamF2YXNjcmlwdCI+CitmdW5jdGlvbiBsb2cobWVzc2FnZSkgeworICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJhbnMiKS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9k
ZShtZXNzYWdlKSk7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFucyIpLmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJyIikpOworfQorCitmdW5jdGlvbiB0ZXN0KG51
bSkKK3sKKyAgICB2YXIgeGhyOworCisgICAgaWYgKHdpbmRvdy5YTUxIdHRwUmVxdWVzdCkgewor
ICAgICAgICB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKKyAgICB9IGVsc2UgeworICAgICAg
ICB0cnkgeworICAgICAgICAgICAgeGhyID0gbmV3IEFjdGl2ZVhPYmplY3QoIk1zeG1sMi5YTUxI
VFRQIik7CisgICAgICAgIH0gY2F0Y2ggKGV4KSB7CisgICAgICAgICAgICB4aHIgPSBuZXcgQWN0
aXZlWE9iamVjdCgiTWljcm9zb2Z0LlhNTEhUVFAiKTsKKyAgICAgICAgfQorICAgIH0KKworICAg
IHhoci5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbiAoKSB7CisgICAgICAgIGlmICh0aGlz
LnJlYWR5U3RhdGUgPT0gbnVtKSB7CisgICAgICAgICAgICArK2ZpbmlzaGVkVGVzdHM7CisgICAg
ICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIC8vIEZvcmNlIGV2YWx1YXRpb24gZm9yIE9w
ZXJhCisgICAgICAgICAgICAgICAgdmFyIHJlc3BvbnNlID0gdGhpcy5yZXNwb25zZVhNTDsKKyAg
ICAgICAgICAgICAgICBpZiAodGhpcy5yZWFkeVN0YXRlIDwgNCkKKyAgICAgICAgICAgICAgICAg
ICAgbG9nKCJGQUlMRUQgKCByZXNwb25zZSA6IFwiIiArIHJlc3BvbnNlICsgIlwiICkiKTsKKyAg
ICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGxvZygiUEFTU0VEIik7Cisg
ICAgICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgICAgICAgICAgaWYgKHRoaXMucmVhZHlT
dGF0ZSA8IDQpCisgICAgICAgICAgICAgICAgICAgIGxvZygiUEFTU0VEIik7CisgICAgICAgICAg
ICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBsb2coIkZBSUxFRCIpOworICAgICAgICAg
ICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAoZmluaXNoZWRUZXN0cyA9PSA0
ICYmIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICB9CisKKyAgICB4aHIub3BlbigiR0VUIiwgInJl
c291cmNlcy8xMjUxLmh0bWwiLCB0cnVlKTsKKyAgICBpZiAobnVtICE9IDEpCisgICAgICAgIHho
ci5zZW5kKG51bGwpOworfQorCitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Cisg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250
cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKK30KKwordmFyIGZpbmlzaGVkVGVzdHMgPSAwOworCitm
b3IgKGkgPSAxOyBpIDwgNTsgaSsrKSB7CisgICAgdGVzdChpKTsKK30KKworPC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1
ZXN0L3plcm8tbGVuZ3RoLXJlc3BvbnNlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3plcm8tbGVuZ3RoLXJlc3BvbnNlLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMjc4MzQpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ht
bGh0dHByZXF1ZXN0L3plcm8tbGVuZ3RoLXJlc3BvbnNlLWV4cGVjdGVkLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtMywzMCArMywzMCBAQCBUZXN0IGZvciBidWcgNTkyNCAtIHplcm8tbGVuZ3RoIHJl
c3BvbnNlCiBhZnRlciBjcmVhdGlvbjogVW5pbml0aWFsaXplZAogwqDCoFN0YXR1czogMAogwqDC
oFN0YXR1c1RleHQ6ICIiCi3CoMKgUmVzcG9uc2VUZXh0OiAiIgotwqDCoFJlc3BvbnNlWE1MOiBu
dWxsCi3CoMKgUmVzcG9uc2VYTUwgc2VyaWFsaXplZDogbi9hCivCoMKgRXhjZXB0aW9uIGdldHRp
bmcgUmVzcG9uc2VUZXh0OiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMQorwqDC
oEV4Y2VwdGlvbiBnZXR0aW5nIFJlc3BvbnNlWE1MOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4
Y2VwdGlvbiAxMQorwqDCoEV4Y2VwdGlvbiBzZXJpYWxpemluZyBSZXNwb25zZVhNTDogSU5WQUxJ
RF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEKIGFmdGVyIHNldHRpbmcgb25yZWFkeXN0YXRl
Y2hhbmdlOiBVbmluaXRpYWxpemVkCiBvbnJlYWR5c3RhdGVjaGFuZ2U6IE9wZW4KIMKgwqBFeGNl
cHRpb24gZ2V0dGluZyBzdGF0dXM6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDEx
CiDCoMKgRXhjZXB0aW9uIGdldHRpbmcgU3RhdHVzVGV4dDogSU5WQUxJRF9TVEFURV9FUlI6IERP
TSBFeGNlcHRpb24gMTEKLcKgwqBSZXNwb25zZVRleHQ6ICIiCi3CoMKgUmVzcG9uc2VYTUw6IG51
bGwKLcKgwqBSZXNwb25zZVhNTCBzZXJpYWxpemVkOiBuL2EKK8KgwqBFeGNlcHRpb24gZ2V0dGlu
ZyBSZXNwb25zZVRleHQ6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExCivCoMKg
RXhjZXB0aW9uIGdldHRpbmcgUmVzcG9uc2VYTUw6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhj
ZXB0aW9uIDExCivCoMKgRXhjZXB0aW9uIHNlcmlhbGl6aW5nIFJlc3BvbnNlWE1MOiBJTlZBTElE
X1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMQogYWZ0ZXIgb3BlbigpOiBPcGVuCiDCoMKgRXhj
ZXB0aW9uIGdldHRpbmcgc3RhdHVzOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAx
MQogwqDCoEV4Y2VwdGlvbiBnZXR0aW5nIFN0YXR1c1RleHQ6IElOVkFMSURfU1RBVEVfRVJSOiBE
T00gRXhjZXB0aW9uIDExCi3CoMKgUmVzcG9uc2VUZXh0OiAiIgotwqDCoFJlc3BvbnNlWE1MOiBu
dWxsCi3CoMKgUmVzcG9uc2VYTUwgc2VyaWFsaXplZDogbi9hCivCoMKgRXhjZXB0aW9uIGdldHRp
bmcgUmVzcG9uc2VUZXh0OiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMQorwqDC
oEV4Y2VwdGlvbiBnZXR0aW5nIFJlc3BvbnNlWE1MOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4
Y2VwdGlvbiAxMQorwqDCoEV4Y2VwdGlvbiBzZXJpYWxpemluZyBSZXNwb25zZVhNTDogSU5WQUxJ
RF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEKIGFmdGVyIG92ZXJyaWRlTWltZVR5cGUoKTog
T3BlbgogYWZ0ZXIgc2VuZCgpOiBPcGVuCiBvbnJlYWR5c3RhdGVjaGFuZ2U6IFNlbnQKIMKgwqBT
dGF0dXM6IDIwMAogwqDCoFN0YXR1c1RleHQ6ICJPSyIKLcKgwqBSZXNwb25zZVRleHQ6ICIiCi3C
oMKgUmVzcG9uc2VYTUw6IG51bGwKLcKgwqBSZXNwb25zZVhNTCBzZXJpYWxpemVkOiBuL2EKK8Kg
wqBFeGNlcHRpb24gZ2V0dGluZyBSZXNwb25zZVRleHQ6IElOVkFMSURfU1RBVEVfRVJSOiBET00g
RXhjZXB0aW9uIDExCivCoMKgRXhjZXB0aW9uIGdldHRpbmcgUmVzcG9uc2VYTUw6IElOVkFMSURf
U1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExCivCoMKgRXhjZXB0aW9uIHNlcmlhbGl6aW5nIFJl
c3BvbnNlWE1MOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMQogb25yZWFkeXN0
YXRlY2hhbmdlOiBMb2FkZWQKIMKgwqBTdGF0dXM6IDIwMAogwqDCoFN0YXR1c1RleHQ6ICJPSyIK
SW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvemVyby1sZW5ndGgt
cmVzcG9uc2Utc3luYy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy94bWxodHRwcmVxdWVzdC96ZXJvLWxlbmd0aC1yZXNwb25zZS1zeW5jLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMjc4MzQpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHBy
ZXF1ZXN0L3plcm8tbGVuZ3RoLXJlc3BvbnNlLXN5bmMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNv
cHkpCkBAIC0xLDcgKzEsNyBAQAogVGVzdCBmb3IgYnVnIDU5MjQgLSB6ZXJvLWxlbmd0aCByZXNw
b25zZXMgdG8gWE1MSFRUUFJlcXVlc3QgbWlzaGFuZGxlZC4KIAogYWZ0ZXIgY3JlYXRpb246IFVu
aW5pdGlhbGl6ZWQKLVJlc3BvbnNlVGV4dDogIiIKK0V4Y2VwdGlvbiBnZXR0aW5nIFN0YXR1c1Rl
eHQ6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExCiBhZnRlciBzZXR0aW5nIG9u
cmVhZHlzdGF0ZWNoYW5nZTogVW5pbml0aWFsaXplZAogYWZ0ZXIgb3BlbigpOiBPcGVuCiBhZnRl
ciBvdmVycmlkZU1pbWVUeXBlKCk6IE9wZW4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMv
eG1saHR0cHJlcXVlc3QvemVyby1sZW5ndGgtcmVzcG9uc2Utc3luYy5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvemVyby1sZW5ndGgtcmVz
cG9uc2Utc3luYy5odG1sCShyZXZpc2lvbiAyNzgzNCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVz
dHMveG1saHR0cHJlcXVlc3QvemVyby1sZW5ndGgtcmVzcG9uc2Utc3luYy5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0zLDcgKzMsNyBAQAogPHRpdGxlPlRlc3QgWE1MSHR0cFJlcXVlc3QgemVyby1s
ZW5ndGggcmVzcG9uc2UgaGFuZGxpbmcgKHN5bmMpPC90aXRsZT4KIDxtZXRhIGh0dHAtZXF1aXY9
ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sO2NoYXJzZXQ9dXRmLTgiPgogPGJvZHk+
Ci08cD5UZXN0IGZvciA8YSBocmVmPSJodHRwOi8vYnVnemlsbGEub3BlbmRhcndpbi5vcmcvc2hv
d19idWcuY2dpP2lkPTU5MjQiPmJ1ZyA1OTI0PC9hPgorPHA+VGVzdCBmb3IgPGEgaHJlZj0iaHR0
cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTkyNCI+YnVnIDU5MjQ8L2E+CiAt
IHplcm8tbGVuZ3RoIHJlc3BvbnNlcyB0byBYTUxIVFRQUmVxdWVzdCBtaXNoYW5kbGVkLjwvcD4K
IDxzY3JpcHQ+CiAKQEAgLTM0LDcgKzM0LDExIEBACiAgICAgICAgIAogICAgICAgICBsb2coImFm
dGVyIGNyZWF0aW9uOiAiICsgc3RhdGVOYW1lKHJlcS5yZWFkeVN0YXRlKSk7CiAgICAgICAgIAot
ICAgICAgICBsb2coIlJlc3BvbnNlVGV4dDogIiArIHByZXR0eVByaW50VGV4dChyZXEucmVzcG9u
c2VUZXh0KSk7CisJCXRyeSB7CisJCQlsb2coIlJlc3BvbnNlVGV4dDogIiArIHByZXR0eVByaW50
VGV4dChyZXEucmVzcG9uc2VUZXh0KSk7CisJCX0gY2F0Y2ggKGV4KSB7CisJCQlsb2coIkV4Y2Vw
dGlvbiBnZXR0aW5nIFN0YXR1c1RleHQ6ICIgKyBleC5tZXNzYWdlKTsKKwkJfQogCiAgICAgICAg
IGlmIChhc3luYykKICAgICAgICAgICAgIHJlcS5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBwcm9jZXNz
U3RhdGVDaGFuZ2U7Cg==
</data>
<flag name="review"
          id="7385"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17333</attachid>
            <date>2007-11-17 18:48:39 -0800</date>
            <delta_ts>2007-11-17 22:50:35 -0800</delta_ts>
            <desc>Patches updated with Darin&apos;s comments</desc>
            <filename>bug12194-expected.patch</filename>
            <type>text/plain</type>
            <size>14747</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNzg4MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMDctMTEtMTcgIGp1bGllbiBDaGFmZnJhaXggIDxqdWxpZW4uY2hh
ZmZyYWl4QGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbi4KKworICAgICAg
ICBCdWcgMTIxOTQ6IFRyeWluZyB0byBhY2Nlc3MgWE1MSHR0cFJlcXVlc3QucmVzcG9uc2VUZXh0
IG9yIHJlc3BvbnNlWE1MIHdoZW4gdGhleSAKKyAgICAgICAgYXJlIG5vdCBhdmFpbGFibGUgc2hv
dWxkIHJhaXNlIGFuIGV4Y2VwdGlvbgorCisgICAgICAgIFRlc3RzOiBodHRwL3Rlc3RzL3htbGh0
dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LXJlc3BvbnNlVGV4dC1leGNlcHRpb24uaHRtbAorICAg
ICAgICAgICAgICAgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1yZXNw
b25zZVhNTC1leGNlcHRpb24uaHRtbAorCisgICAgICAgICogYmluZGluZ3MvanMvSlNYTUxIdHRw
UmVxdWVzdC5jcHA6CisgICAgICAgIChLSlM6OkpTWE1MSHR0cFJlcXVlc3Q6OmdldFZhbHVlUHJv
cGVydHkpOgorICAgICAgICAqIHhtbC9YTUxIdHRwUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpYTUxIdHRwUmVxdWVzdDo6Z2V0UmVzcG9uc2VUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6
OlhNTEh0dHBSZXF1ZXN0OjpnZXRSZXNwb25zZVhNTCk6CisgICAgICAgICogeG1sL1hNTEh0dHBS
ZXF1ZXN0Lmg6CisKIDIwMDctMTEtMTcgIFRpbW90aHkgSGF0Y2hlciAgPHRpbW90aHlAYXBwbGUu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0uCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdz
L2pzL0pTWE1MSHR0cFJlcXVlc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mv
anMvSlNYTUxIdHRwUmVxdWVzdC5jcHAJKHJldmlzaW9uIDI3ODgwKQorKysgV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAxLDEyICsx
MDEsMTkgQEAgSlNWYWx1ZSogSlNYTUxIdHRwUmVxdWVzdDo6Z2V0VmFsdWVQcm9wZQogICAgIHN3
aXRjaCAodG9rZW4pIHsKICAgICAgICAgY2FzZSBSZWFkeVN0YXRlOgogICAgICAgICAgICAgcmV0
dXJuIGpzTnVtYmVyKG1faW1wbC0+Z2V0UmVhZHlTdGF0ZSgpKTsKLSAgICAgICAgY2FzZSBSZXNw
b25zZVRleHQ6Ci0gICAgICAgICAgICByZXR1cm4ganNPd25lZFN0cmluZ09yTnVsbChtX2ltcGwt
PmdldFJlc3BvbnNlVGV4dCgpKTsKLSAgICAgICAgY2FzZSBSZXNwb25zZVhNTDoKLSAgICAgICAg
ICAgIGlmIChEb2N1bWVudCogcmVzcG9uc2VYTUwgPSBtX2ltcGwtPmdldFJlc3BvbnNlWE1MKCkp
CisgICAgICAgIGNhc2UgUmVzcG9uc2VUZXh0OiB7CisgICAgICAgICAgICBKU1ZhbHVlKiByZXN1
bHQgPSBqc093bmVkU3RyaW5nT3JOdWxsKG1faW1wbC0+Z2V0UmVzcG9uc2VUZXh0KGVjKSk7Cisg
ICAgICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOworICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKKyAgICAgICAgfQorICAgICAgICBjYXNlIFJlc3BvbnNlWE1MOiB7CisgICAgICAg
ICAgICBEb2N1bWVudCogcmVzcG9uc2VYTUwgPSBtX2ltcGwtPmdldFJlc3BvbnNlWE1MKGVjKTsK
KyAgICAgICAgICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7CisgICAgICAgICAgICBpZiAo
cmVzcG9uc2VYTUwpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgcmVzcG9uc2VY
TUwpOworCiAgICAgICAgICAgICByZXR1cm4ganNOdWxsKCk7CisgICAgICAgIH0KICAgICAgICAg
Y2FzZSBTdGF0dXM6IHsKICAgICAgICAgICAgIEpTVmFsdWUqIHJlc3VsdCA9IGpzTnVtYmVyKG1f
aW1wbC0+Z2V0U3RhdHVzKGVjKSk7CiAgICAgICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywg
ZWMpOwpJbmRleDogV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAkocmV2aXNpb24gMjc4ODApCisrKyBXZWJD
b3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0NSwxNSArMTQ1
LDIwIEBAIFhNTEh0dHBSZXF1ZXN0U3RhdGUgWE1MSHR0cFJlcXVlc3Q6OmdldFIKICAgICByZXR1
cm4gbV9zdGF0ZTsKIH0KIAotY29uc3QgS0pTOjpVU3RyaW5nJiBYTUxIdHRwUmVxdWVzdDo6Z2V0
UmVzcG9uc2VUZXh0KCkgY29uc3QKK2NvbnN0IEtKUzo6VVN0cmluZyYgWE1MSHR0cFJlcXVlc3Q6
OmdldFJlc3BvbnNlVGV4dChFeGNlcHRpb25Db2RlJiBlYykgY29uc3QKIHsKKyAgICBpZiAobV9z
dGF0ZSA8IFJlY2VpdmluZykKKyAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKKwogICAg
IHJldHVybiBtX3Jlc3BvbnNlVGV4dDsKIH0KIAotRG9jdW1lbnQqIFhNTEh0dHBSZXF1ZXN0Ojpn
ZXRSZXNwb25zZVhNTCgpIGNvbnN0CitEb2N1bWVudCogWE1MSHR0cFJlcXVlc3Q6OmdldFJlc3Bv
bnNlWE1MKEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25zdAogewotICAgIGlmIChtX3N0YXRlICE9IExv
YWRlZCkKKyAgICBpZiAobV9zdGF0ZSAhPSBMb2FkZWQpIHsKKyAgICAgICAgZWMgPSBJTlZBTElE
X1NUQVRFX0VSUjsKICAgICAgICAgcmV0dXJuIDA7CisgICAgfQogCiAgICAgaWYgKCFtX2NyZWF0
ZWREb2N1bWVudCkgewogICAgICAgICBpZiAobV9yZXNwb25zZS5pc0hUVFAoKSAmJiAhcmVzcG9u
c2VJc1hNTCgpKSB7CkluZGV4OiBXZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmgJKHJldmlzaW9uIDI3ODgwKQorKysg
V2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaAkod29ya2luZyBjb3B5KQpAQCAtODIsOCArODIs
OCBAQCBwdWJsaWM6CiAgICAgdm9pZCBvdmVycmlkZU1JTUVUeXBlKGNvbnN0IFN0cmluZyYgb3Zl
cnJpZGUpOwogICAgIFN0cmluZyBnZXRBbGxSZXNwb25zZUhlYWRlcnMoRXhjZXB0aW9uQ29kZSYp
IGNvbnN0OwogICAgIFN0cmluZyBnZXRSZXNwb25zZUhlYWRlcihjb25zdCBTdHJpbmcmIG5hbWUs
IEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKLSAgICBjb25zdCBLSlM6OlVTdHJpbmcmIGdldFJlc3Bv
bnNlVGV4dCgpIGNvbnN0OwotICAgIERvY3VtZW50KiBnZXRSZXNwb25zZVhNTCgpIGNvbnN0Owor
ICAgIGNvbnN0IEtKUzo6VVN0cmluZyYgZ2V0UmVzcG9uc2VUZXh0KEV4Y2VwdGlvbkNvZGUmKSBj
b25zdDsKKyAgICBEb2N1bWVudCogZ2V0UmVzcG9uc2VYTUwoRXhjZXB0aW9uQ29kZSYpIGNvbnN0
OwogCiAgICAgdm9pZCBzZXRPblJlYWR5U3RhdGVDaGFuZ2VMaXN0ZW5lcihFdmVudExpc3RlbmVy
Kik7CiAgICAgRXZlbnRMaXN0ZW5lciogb25SZWFkeVN0YXRlQ2hhbmdlTGlzdGVuZXIoKSBjb25z
dDsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3ODgwKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMDctMTEtMTcgIGp1bGllbiBDaGFmZnJh
aXggIDxzanVsaWVuLmNoYWZmcmFpeEBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
RGFyaW4uCisKKyAgICAgICAgQnVnIDEyMTk0OiBUcnlpbmcgdG8gYWNjZXNzIFhNTEh0dHBSZXF1
ZXN0LnJlc3BvbnNlVGV4dCBvciByZXNwb25zZVhNTCB3aGVuIHRoZXkgYXJlIG5vdCAKKyAgICAg
ICAgYXZhaWxhYmxlIHNob3VsZCByYWlzZSBhbiBleGNlcHRpb24KKworICAgICAgICAqIGh0dHAv
dGVzdHMveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3QtcmVzcG9uc2VUZXh0LWV4Y2VwdGlv
bi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVl
c3QveG1saHR0cHJlcXVlc3QtcmVzcG9uc2VUZXh0LWV4Y2VwdGlvbi5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LXJlc3BvbnNl
WE1MLWV4Y2VwdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
eG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3QtcmVzcG9uc2VYTUwtZXhjZXB0aW9uLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvemVyby1sZW5ndGgt
cmVzcG9uc2UtZXhwZWN0ZWQudHh0OiBVcGRhdGVkIHJlc3VsdAorICAgICAgICAqIGh0dHAvdGVz
dHMveG1saHR0cHJlcXVlc3QvemVyby1sZW5ndGgtcmVzcG9uc2Utc3luYy1leHBlY3RlZC50eHQ6
IFVwZGF0ZWQgcmVzdWx0CisgICAgICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC96ZXJv
LWxlbmd0aC1yZXNwb25zZS1zeW5jLmh0bWw6IENvcnJlY3RlZCBVUkwgJiBhZGRlZAorICAgICAg
ICBleGNlcHRpb24gaGFuZGxpbmcgdG8gdGVzdCBjYXNlCisKIDIwMDctMTEtMTYgIERhbiBCZXJu
c3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxl
ci4KQEAgLTExMTYsNyArMTEzMiw2IEBACiAgICAgICAgICogZmFzdC94cGF0aC9wcmVjZWRpbmct
YXhpcy1leHBlY3RlZC50eHQ6IEFkZGVkLgogICAgICAgICAqIGZhc3QveHBhdGgvcHJlY2VkaW5n
LWF4aXMueGh0bWw6IEFkZGVkLgogCi0+Pj4+Pj4+IC5yMjc4NjIKIDIwMDctMTEtMTUgIEp1c3Rp
biBHYXJjaWEgIDxqdXN0aW4uZ2FyY2lhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBBZGVsZSBQZXRlcnNvbi4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJl
cXVlc3QveG1saHR0cHJlcXVlc3QtcmVzcG9uc2VUZXh0LWV4Y2VwdGlvbi1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC94bWxo
dHRwcmVxdWVzdC1yZXNwb25zZVRleHQtZXhjZXB0aW9uLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVl
c3QtcmVzcG9uc2VUZXh0LWV4Y2VwdGlvbi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsOSBAQAorVGVzdCBidWcgMTI5MTQgOiBUcnlpbmcgdG8gYWNjZXNzIFhNTEh0dHBSZXF1
ZXN0LnJlc3BvbnNlVGV4dCBvciByZXNwb25zZVhNTCB3aGVuIHRoZXkgYXJlIG5vdCBhdmFpbGFi
bGUgc2hvdWxkIHJhaXNlIGFuIGV4Y2VwdGlvbgorCitTaG91bGQgc2VlICJQQVNTIiBmb3VyIHRp
bWVzOgorCitQQVNTCitQQVNTCitQQVNTCitQQVNTCisKSW5kZXg6IExheW91dFRlc3RzL2h0dHAv
dGVzdHMveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3QtcmVzcG9uc2VUZXh0LWV4Y2VwdGlv
bi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVl
c3QveG1saHR0cHJlcXVlc3QtcmVzcG9uc2VUZXh0LWV4Y2VwdGlvbi5odG1sCShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVz
dC1yZXNwb25zZVRleHQtZXhjZXB0aW9uLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjkg
QEAKKzxodG1sPjxoZWFkPjwvaGVhZD48Ym9keT4KKworPHA+VGVzdCBidWcgMTI5MTQgOiBUcnlp
bmcgdG8gYWNjZXNzIFhNTEh0dHBSZXF1ZXN0LnJlc3BvbnNlVGV4dCBvcgorcmVzcG9uc2VYTUwg
d2hlbiB0aGV5IGFyZSBub3QgYXZhaWxhYmxlIHNob3VsZCByYWlzZSBhbiBleGNlcHRpb24gPC9w
PgorPHA+U2hvdWxkIHNlZSAiUEFTUyIgZm91ciB0aW1lczo8L3A+Cis8ZGl2IGlkPSJhbnMiPjwv
ZGl2PgorCis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CitmdW5jdGlvbiBsb2cobWVz
c2FnZSkgeworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbnMiKS5hcHBlbmRDaGlsZChk
b2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNzYWdlKSk7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImFucyIpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJyIikpOwor
fQorCitmdW5jdGlvbiB0ZXN0KG51bSkKK3sKKyAgICB2YXIgeGhyOworCisgICAgaWYgKHdpbmRv
dy5YTUxIdHRwUmVxdWVzdCkgeworICAgICAgICB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsK
KyAgICB9IGVsc2UgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgeGhyID0gbmV3IEFjdGl2
ZVhPYmplY3QoIk1zeG1sMi5YTUxIVFRQIik7CisgICAgICAgIH0gY2F0Y2ggKGV4KSB7CisgICAg
ICAgICAgICB4aHIgPSBuZXcgQWN0aXZlWE9iamVjdCgiTWljcm9zb2Z0LlhNTEhUVFAiKTsKKyAg
ICAgICAgfQorICAgIH0KKworICAgIHhoci5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbiAo
KSB7CisgICAgICAgIGlmICh0aGlzLnJlYWR5U3RhdGUgPT0gbnVtKSB7CisgICAgICAgICAgICAr
K2ZpbmlzaGVkVGVzdHM7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIC8vIGZv
cmNlIHRoZSBldmFsdWF0aW9uIGZvciBPcGVyYQorICAgICAgICAgICAgICAgIHZhciByZXNwb25z
ZSA9IHRoaXMucmVzcG9uc2VUZXh0OworICAgICAgICAgICAgICAgIC8vIGlmIHJlYWR5U3RhdGUg
aXMgbm90IFJlY2VpdmluZyBvciBMb2FkZXIsIHJhaXNlIGFuIGV4Y2VwdGlvbgorICAgICAgICAg
ICAgICAgIGlmICh0aGlzLnJlYWR5U3RhdGUgPCAzKQorICAgICAgICAgICAgICAgICAgICBsb2co
IkZBSUxFRCAoIHJlc3BvbnNlIFwiIiArIHJlc3BvbnNlICsgIlwiICkiKTsKKyAgICAgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGxvZygiUEFTUyIpOworICAgICAgICAgICAg
fSBjYXRjaCAoZSkgeworICAgICAgICAgICAgICAgIGlmICh0aGlzLnJlYWR5U3RhdGUgPCAzKQor
ICAgICAgICAgICAgICAgICAgICBsb2coIlBBU1MiKTsKKyAgICAgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgICAgICAgIGxvZygiRkFJTEVEIik7CisgICAgICAgICAgICB9CisgICAgICAg
IH0KKyAgICAgICAgCisgICAgICAgIGlmIChmaW5pc2hlZFRlc3RzID09IDQgJiYgd2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90
aWZ5RG9uZSgpOworICAgIH0KKworICAgIHhoci5vcGVuKCJHRVQiLCAicmVzb3VyY2VzLzEyNTEu
aHRtbCIsIHRydWUpOworICAgIGlmIChudW0gIT0gMSkKKyAgICAgICAgeGhyLnNlbmQobnVsbCk7
Cit9CisKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVu
dGlsRG9uZSgpOworfQorCit2YXIgZmluaXNoZWRUZXN0cyA9IDA7CisKK2ZvciAoaSA9IDE7IGkg
PCA1OyBpKyspIHsKKyAgICB0ZXN0KGkpOworfQorCis8L3NjcmlwdD4KKworPC9ib2R5PjwvaHRt
bD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LXJlc3BvbnNlWE1MLWV4Y2VwdGlvbi1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRw
cmVxdWVzdC94bWxodHRwcmVxdWVzdC1yZXNwb25zZVhNTC1leGNlcHRpb24tZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC94
bWxodHRwcmVxdWVzdC1yZXNwb25zZVhNTC1leGNlcHRpb24tZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDkgQEAKK1Rlc3QgYnVnIDEyOTE0IDogVHJ5aW5nIHRvIGFjY2VzcyBY
TUxIdHRwUmVxdWVzdC5yZXNwb25zZVRleHQgb3IgcmVzcG9uc2VYTUwgd2hlbiB0aGV5IGFyZSBu
b3QgYXZhaWxhYmxlIHNob3VsZCByYWlzZSBhbiBleGNlcHRpb24KKworU2hvdWxkIHNlZSAiUEFT
UyIgZm91ciB0aW1lczoKKworUEFTUworUEFTUworUEFTUworUEFTUworCkluZGV4OiBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LXJlc3BvbnNlWE1M
LWV4Y2VwdGlvbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1s
aHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3QtcmVzcG9uc2VYTUwtZXhjZXB0aW9uLmh0bWwJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3htbGh0
dHByZXF1ZXN0LXJlc3BvbnNlWE1MLWV4Y2VwdGlvbi5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDY5IEBACis8aHRtbD4KKzxoZWFkPjwvaGVhZD4KKzxib2R5PgorCis8cD5UZXN0IGJ1ZyAx
MjkxNCA6ICBUcnlpbmcgdG8gYWNjZXNzIFhNTEh0dHBSZXF1ZXN0LnJlc3BvbnNlVGV4dCBvciBy
ZXNwb25zZVhNTCB3aGVuIHRoZXkgYXJlIG5vdCBhdmFpbGFibGUgc2hvdWxkIHJhaXNlIGFuIGV4
Y2VwdGlvbiA8L3A+Cis8cD5TaG91bGQgc2VlICJQQVNTIiBmb3VyIHRpbWVzOjwvcD4KKzxkaXYg
aWQ9ImFucyI+PC9kaXY+CisKKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KK2Z1bmN0
aW9uIGxvZyhtZXNzYWdlKSB7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFucyIpLmFw
cGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG1lc3NhZ2UpKTsKKyAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiYW5zIikuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiYnIiKSk7Cit9CisKK2Z1bmN0aW9uIHRlc3QobnVtKQoreworICAgIHZhciB4aHI7CisKKyAg
ICBpZiAod2luZG93LlhNTEh0dHBSZXF1ZXN0KSB7CisgICAgICAgIHhociA9IG5ldyBYTUxIdHRw
UmVxdWVzdCgpOworICAgIH0gZWxzZSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICB4aHIg
PSBuZXcgQWN0aXZlWE9iamVjdCgiTXN4bWwyLlhNTEhUVFAiKTsKKyAgICAgICAgfSBjYXRjaCAo
ZXgpIHsKKyAgICAgICAgICAgIHhociA9IG5ldyBBY3RpdmVYT2JqZWN0KCJNaWNyb3NvZnQuWE1M
SFRUUCIpOworICAgICAgICB9CisgICAgfQorCisgICAgeGhyLm9ucmVhZHlzdGF0ZWNoYW5nZSA9
IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgaWYgKHRoaXMucmVhZHlTdGF0ZSA9PSBudW0pIHsKKyAg
ICAgICAgICAgICsrZmluaXNoZWRUZXN0czsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAg
ICAgICAgLy8gRm9yY2UgZXZhbHVhdGlvbiBmb3IgT3BlcmEKKyAgICAgICAgICAgICAgICB2YXIg
cmVzcG9uc2UgPSB0aGlzLnJlc3BvbnNlWE1MOworICAgICAgICAgICAgICAgIGlmICh0aGlzLnJl
YWR5U3RhdGUgPCA0KQorICAgICAgICAgICAgICAgICAgICBsb2coIkZBSUxFRCAoIHJlc3BvbnNl
IDogXCIiICsgcmVzcG9uc2UgKyAiXCIgKSIpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICAgICAgbG9nKCJQQVNTIik7CisgICAgICAgICAgICB9IGNhdGNoIChlKSB7Cisg
ICAgICAgICAgICAgICAgaWYgKHRoaXMucmVhZHlTdGF0ZSA8IDQpCisgICAgICAgICAgICAgICAg
ICAgIGxvZygiUEFTUyIpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAg
ICAgbG9nKCJGQUlMRUQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAg
ICAgICAgaWYgKGZpbmlzaGVkVGVzdHMgPT0gNCAmJiB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAg
fQorCisgICAgeGhyLm9wZW4oIkdFVCIsICJyZXNvdXJjZXMvMTI1MS5odG1sIiwgdHJ1ZSk7Cisg
ICAgaWYgKG51bSAhPSAxKQorICAgICAgICB4aHIuc2VuZChudWxsKTsKK30KKworaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBB
c1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9CisK
K3ZhciBmaW5pc2hlZFRlc3RzID0gMDsKKworZm9yIChpID0gMTsgaSA8IDU7IGkrKykgeworICAg
IHRlc3QoaSk7Cit9CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC96ZXJvLWxlbmd0aC1yZXNwb25zZS1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC96ZXJvLWxlbmd0aC1yZXNwb25zZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDI3ODgwKQor
KysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC96ZXJvLWxlbmd0aC1yZXNw
b25zZS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTMsMzAgKzMsMzAgQEAgVGVzdCBm
b3IgYnVnIDU5MjQgLSB6ZXJvLWxlbmd0aCByZXNwb25zZQogYWZ0ZXIgY3JlYXRpb246IFVuaW5p
dGlhbGl6ZWQKIMKgwqBTdGF0dXM6IDAKIMKgwqBTdGF0dXNUZXh0OiAiIgotwqDCoFJlc3BvbnNl
VGV4dDogIiIKLcKgwqBSZXNwb25zZVhNTDogbnVsbAotwqDCoFJlc3BvbnNlWE1MIHNlcmlhbGl6
ZWQ6IG4vYQorwqDCoEV4Y2VwdGlvbiBnZXR0aW5nIFJlc3BvbnNlVGV4dDogSU5WQUxJRF9TVEFU
RV9FUlI6IERPTSBFeGNlcHRpb24gMTEKK8KgwqBFeGNlcHRpb24gZ2V0dGluZyBSZXNwb25zZVhN
TDogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEKK8KgwqBFeGNlcHRpb24gc2Vy
aWFsaXppbmcgUmVzcG9uc2VYTUw6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDEx
CiBhZnRlciBzZXR0aW5nIG9ucmVhZHlzdGF0ZWNoYW5nZTogVW5pbml0aWFsaXplZAogb25yZWFk
eXN0YXRlY2hhbmdlOiBPcGVuCiDCoMKgRXhjZXB0aW9uIGdldHRpbmcgc3RhdHVzOiBJTlZBTElE
X1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMQogwqDCoEV4Y2VwdGlvbiBnZXR0aW5nIFN0YXR1
c1RleHQ6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExCi3CoMKgUmVzcG9uc2VU
ZXh0OiAiIgotwqDCoFJlc3BvbnNlWE1MOiBudWxsCi3CoMKgUmVzcG9uc2VYTUwgc2VyaWFsaXpl
ZDogbi9hCivCoMKgRXhjZXB0aW9uIGdldHRpbmcgUmVzcG9uc2VUZXh0OiBJTlZBTElEX1NUQVRF
X0VSUjogRE9NIEV4Y2VwdGlvbiAxMQorwqDCoEV4Y2VwdGlvbiBnZXR0aW5nIFJlc3BvbnNlWE1M
OiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMQorwqDCoEV4Y2VwdGlvbiBzZXJp
YWxpemluZyBSZXNwb25zZVhNTDogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEK
IGFmdGVyIG9wZW4oKTogT3BlbgogwqDCoEV4Y2VwdGlvbiBnZXR0aW5nIHN0YXR1czogSU5WQUxJ
RF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEKIMKgwqBFeGNlcHRpb24gZ2V0dGluZyBTdGF0
dXNUZXh0OiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMQotwqDCoFJlc3BvbnNl
VGV4dDogIiIKLcKgwqBSZXNwb25zZVhNTDogbnVsbAotwqDCoFJlc3BvbnNlWE1MIHNlcmlhbGl6
ZWQ6IG4vYQorwqDCoEV4Y2VwdGlvbiBnZXR0aW5nIFJlc3BvbnNlVGV4dDogSU5WQUxJRF9TVEFU
RV9FUlI6IERPTSBFeGNlcHRpb24gMTEKK8KgwqBFeGNlcHRpb24gZ2V0dGluZyBSZXNwb25zZVhN
TDogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEKK8KgwqBFeGNlcHRpb24gc2Vy
aWFsaXppbmcgUmVzcG9uc2VYTUw6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDEx
CiBhZnRlciBvdmVycmlkZU1pbWVUeXBlKCk6IE9wZW4KIGFmdGVyIHNlbmQoKTogT3Blbgogb25y
ZWFkeXN0YXRlY2hhbmdlOiBTZW50CiDCoMKgU3RhdHVzOiAyMDAKIMKgwqBTdGF0dXNUZXh0OiAi
T0siCi3CoMKgUmVzcG9uc2VUZXh0OiAiIgotwqDCoFJlc3BvbnNlWE1MOiBudWxsCi3CoMKgUmVz
cG9uc2VYTUwgc2VyaWFsaXplZDogbi9hCivCoMKgRXhjZXB0aW9uIGdldHRpbmcgUmVzcG9uc2VU
ZXh0OiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMQorwqDCoEV4Y2VwdGlvbiBn
ZXR0aW5nIFJlc3BvbnNlWE1MOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMQor
wqDCoEV4Y2VwdGlvbiBzZXJpYWxpemluZyBSZXNwb25zZVhNTDogSU5WQUxJRF9TVEFURV9FUlI6
IERPTSBFeGNlcHRpb24gMTEKIG9ucmVhZHlzdGF0ZWNoYW5nZTogTG9hZGVkCiDCoMKgU3RhdHVz
OiAyMDAKIMKgwqBTdGF0dXNUZXh0OiAiT0siCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3htbGh0dHByZXF1ZXN0L3plcm8tbGVuZ3RoLXJlc3BvbnNlLXN5bmMtZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvemVyby1s
ZW5ndGgtcmVzcG9uc2Utc3luYy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDI3ODgwKQorKysgTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC96ZXJvLWxlbmd0aC1yZXNwb25zZS1z
eW5jLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw3ICsxLDcgQEAKIFRlc3QgZm9y
IGJ1ZyA1OTI0IC0gemVyby1sZW5ndGggcmVzcG9uc2VzIHRvIFhNTEhUVFBSZXF1ZXN0IG1pc2hh
bmRsZWQuCiAKIGFmdGVyIGNyZWF0aW9uOiBVbmluaXRpYWxpemVkCi1SZXNwb25zZVRleHQ6ICIi
CitFeGNlcHRpb24gZ2V0dGluZyBTdGF0dXNUZXh0OiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4
Y2VwdGlvbiAxMQogYWZ0ZXIgc2V0dGluZyBvbnJlYWR5c3RhdGVjaGFuZ2U6IFVuaW5pdGlhbGl6
ZWQKIGFmdGVyIG9wZW4oKTogT3BlbgogYWZ0ZXIgb3ZlcnJpZGVNaW1lVHlwZSgpOiBPcGVuCklu
ZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3plcm8tbGVuZ3RoLXJl
c3BvbnNlLXN5bmMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ht
bGh0dHByZXF1ZXN0L3plcm8tbGVuZ3RoLXJlc3BvbnNlLXN5bmMuaHRtbAkocmV2aXNpb24gMjc4
ODApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3plcm8tbGVuZ3Ro
LXJlc3BvbnNlLXN5bmMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMyw3ICszLDcgQEAKIDx0aXRs
ZT5UZXN0IFhNTEh0dHBSZXF1ZXN0IHplcm8tbGVuZ3RoIHJlc3BvbnNlIGhhbmRsaW5nIChzeW5j
KTwvdGl0bGU+CiA8bWV0YSBodHRwLWVxdWl2PSJjb250ZW50LXR5cGUiIGNvbnRlbnQ9InRleHQv
aHRtbDtjaGFyc2V0PXV0Zi04Ij4KIDxib2R5PgotPHA+VGVzdCBmb3IgPGEgaHJlZj0iaHR0cDov
L2J1Z3ppbGxhLm9wZW5kYXJ3aW4ub3JnL3Nob3dfYnVnLmNnaT9pZD01OTI0Ij5idWcgNTkyNDwv
YT4KKzxwPlRlc3QgZm9yIDxhIGhyZWY9Imh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTU5MjQiPmJ1ZyA1OTI0PC9hPgogLSB6ZXJvLWxlbmd0aCByZXNwb25zZXMgdG8gWE1M
SFRUUFJlcXVlc3QgbWlzaGFuZGxlZC48L3A+CiA8c2NyaXB0PgogCkBAIC0zNCw3ICszNCwxMSBA
QAogICAgICAgICAKICAgICAgICAgbG9nKCJhZnRlciBjcmVhdGlvbjogIiArIHN0YXRlTmFtZShy
ZXEucmVhZHlTdGF0ZSkpOwogICAgICAgICAKLSAgICAgICAgbG9nKCJSZXNwb25zZVRleHQ6ICIg
KyBwcmV0dHlQcmludFRleHQocmVxLnJlc3BvbnNlVGV4dCkpOworCQl0cnkgeworCQkJbG9nKCJS
ZXNwb25zZVRleHQ6ICIgKyBwcmV0dHlQcmludFRleHQocmVxLnJlc3BvbnNlVGV4dCkpOworCQl9
IGNhdGNoIChleCkgeworCQkJbG9nKCJFeGNlcHRpb24gZ2V0dGluZyBTdGF0dXNUZXh0OiAiICsg
ZXgubWVzc2FnZSk7CisJCX0KIAogICAgICAgICBpZiAoYXN5bmMpCiAgICAgICAgICAgICByZXEu
b25yZWFkeXN0YXRlY2hhbmdlID0gcHJvY2Vzc1N0YXRlQ2hhbmdlOwo=
</data>
<flag name="review"
          id="7399"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>