<?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>77584</bug_id>
          
          <creation_ts>2012-02-01 17:12:36 -0800</creation_ts>
          <short_desc>Refactoring: Share test drivers of shadow content tests.</short_desc>
          <delta_ts>2012-02-02 19:33:31 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>76261</dependson>
    
    <dependson>76262</dependson>
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Shinya Kawanaka">shinyak</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>dominicc</cc>
    
    <cc>hayato</cc>
    
    <cc>morrita</cc>
    
    <cc>rolandsteiner</cc>
    
    <cc>shinyak</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>547506</commentid>
    <comment_count>0</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-01 17:12:36 -0800</bug_when>
    <thetext>Currently we&apos;re using almost same test drivers in several shadow content tests.
Definitely we can share the code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547703</commentid>
    <comment_count>1</comment_count>
      <attachid>125087</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-02 00:12:12 -0800</bug_when>
    <thetext>Created attachment 125087
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547728</commentid>
    <comment_count>2</comment_count>
      <attachid>125087</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-02-02 01:21:17 -0800</bug_when>
    <thetext>Comment on attachment 125087
Patch

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

&gt; LayoutTests/ChangeLog:13
&gt; +        * fast/dom/shadow/shadow-test-driver.js: Added.

Could you move this under dom/resources/ ? That marks the file is not a test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548260</commentid>
    <comment_count>3</comment_count>
      <attachid>125211</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-02 16:55:53 -0800</bug_when>
    <thetext>Created attachment 125211
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548296</commentid>
    <comment_count>4</comment_count>
      <attachid>125211</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-02-02 17:52:25 -0800</bug_when>
    <thetext>Comment on attachment 125211
Patch

Nice!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548371</commentid>
    <comment_count>5</comment_count>
      <attachid>125211</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-02 19:33:26 -0800</bug_when>
    <thetext>Comment on attachment 125211
Patch

Clearing flags on attachment: 125211

Committed r106619: &lt;http://trac.webkit.org/changeset/106619&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548372</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-02 19:33:31 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125087</attachid>
            <date>2012-02-02 00:12:12 -0800</date>
            <delta_ts>2012-02-02 16:55:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77584-20120202171210.patch</filename>
            <type>text/plain</type>
            <size>14354</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2NTM3CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMGYwNzEzZjBjNDcyM2VjNTM2ZTcy
ZDIzNDAwMTY5ODhhNmNjMjQ5NS4uYTA2YWQ2ODZlZWFhMGRhMjNjYjJkZWU0NjhhYmM1MjA5MGM4
YTQxNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTAyLTAyICBTaGlueWEgS2F3YW5ha2Eg
IDxzaGlueWFrQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmVmYWN0b3Jpbmc6IFNoYXJlIHRlc3Qg
ZHJpdmVycyBvZiBzaGFkb3cgY29udGVudCB0ZXN0cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3NTg0CisKKyAgICAgICAgRXh0cmFjdHMgc2hhcmVk
IHRlc3QgY29kZSBmcm9tIGNvbnRlbnQtZWxlbWVudC1tb3ZlLmh0bWwgYW5kIGNvbnRlbnQtZWxl
bWVudC1zZWxlY3QtZHluYW1pYy5odG1sLgorICAgICAgICBUaGlzIHRlc3QgZnJhbWV3b3JrIHdp
bGwgYmUgdXNlZCBhIGZldyBtb3JlIHRpbWVzLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1t
b3ZlLmh0bWw6CisgICAgICAgICogZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1zZWxl
Y3QtZHluYW1pYy5odG1sOgorICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctdGVzdC1k
cml2ZXIuanM6IEFkZGVkLgorICAgICAgICAobG9nKToKKyAgICAgICAgKGNsZWFuVXApOgorICAg
ICAgICAocmVtb3ZlQ29udGFpbmVyTGluZXMpOgorICAgICAgICAoY2hlY2spOgorICAgICAgICAo
Y3JlYXRlU3BhbldpdGhUZXh0KToKKyAgICAgICAgKGNyZWF0ZUNvbnRlbnRXaXRoU2VsZWN0KToK
KyAgICAgICAgKGFwcGVuZFNoYWRvdyk6CisgICAgICAgIChhcHBlbmRTaGFkb3dEZWVwKToKKyAg
ICAgICAgKGRvVGVzdElmTGVmdC5jYWxsSWZEb25lKToKKyAgICAgICAgKGRvbmVUZXN0KToKKyAg
ICAgICAgKGRvVGVzdCk6CisKIDIwMTItMDItMDEgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFu
ZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHU3RyZWFtZXJdIEZGVEZyYW1lIGltcGxlbWVudGF0
aW9uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVt
ZW50LW1vdmUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1l
bnQtbW92ZS5odG1sCmluZGV4IDNkYTIyMzQwNTM1NzQ5OWIzZDllZmFhZWQ0MzhkYThjMTc3NTI4
MTUuLmNiNTliMTVkYTA5N2FlOWE1NGY4MzYyMDljNjZhZTU3MzVmODE3YzEgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtbW92ZS5odG1sCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtbW92ZS5odG1s
CkBAIC0xMyw5NCArMTMsOCBAQAogICAgIGJvcmRlcjogc29saWQ7CiB9CiA8L3N0eWxlPgorPHNj
cmlwdCBzcmM9InNoYWRvdy10ZXN0LWRyaXZlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotZnVu
Y3Rpb24gbG9nKG1lc3NhZ2UpIHsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29s
ZScpLmlubmVySFRNTCArPSAobWVzc2FnZSArICJcbiIpOwotfQotCi1mdW5jdGlvbiByZW1vdmVB
bGxDaGlsZHJlbihlbGVtKSB7Ci0gICAgd2hpbGUgKGVsZW0uZmlyc3RDaGlsZCkKLSAgICAgICAg
ZWxlbS5yZW1vdmVDaGlsZChlbGVtLmZpcnN0Q2hpbGQpOwotfQotCi1mdW5jdGlvbiBjbGVhblVw
KCkgewotICAgIHJlbW92ZUFsbENoaWxkcmVuKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3R1
YWwtY29udGFpbmVyJykpOwotICAgIHJlbW92ZUFsbENoaWxkcmVuKGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdleHBlY3QtY29udGFpbmVyJykpOwotfQotCi1mdW5jdGlvbiByZW1vdmVDb250YWlu
ZXJMaW5lcyh0ZXh0KSB7Ci0gICAgdmFyIGxpbmVzID0gdGV4dC5zcGxpdCgnXG4nKTsKLSAgICBs
aW5lcy5zcGxpY2UoMCwgMik7Ci0gICAgcmV0dXJuIGxpbmVzLmpvaW4oJ1xuJyk7Ci19Ci0KLWZ1
bmN0aW9uIGNoZWNrKCkgewotICAgIHZhciByZWZDb250YWluZXJSZW5kZXJUcmVlID0gaW50ZXJu
YWxzLmVsZW1lbnRSZW5kZXJUcmVlQXNUZXh0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleHBl
Y3QtY29udGFpbmVyJykpOwotICAgIHZhciByZWZSZW5kZXJUcmVlID0gcmVtb3ZlQ29udGFpbmVy
TGluZXMocmVmQ29udGFpbmVyUmVuZGVyVHJlZSk7Ci0KLSAgICB2YXIgdGFyZ2V0Q29udGFpbmVy
UmVuZGVyVHJlZSA9IGludGVybmFscy5lbGVtZW50UmVuZGVyVHJlZUFzVGV4dChkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnYWN0dWFsLWNvbnRhaW5lcicpKTsKLSAgICB2YXIgdGFyZ2V0UmVuZGVy
VHJlZSA9IHJlbW92ZUNvbnRhaW5lckxpbmVzKHRhcmdldENvbnRhaW5lclJlbmRlclRyZWUpOwot
Ci0gICAgaWYgKHRhcmdldFJlbmRlclRyZWUgPT0gcmVmUmVuZGVyVHJlZSkKLSAgICAgICAgbG9n
KCJQQVNTIik7Ci0gICAgZWxzZSB7Ci0gICAgICAgIGxvZygiRkFJTCIpOwotICAgICAgICBsb2co
IkV4cGVjdGVkOiAiKTsKLSAgICAgICAgbG9nKHJlZlJlbmRlclRyZWUpOwotICAgICAgICBsb2co
IkFjdHVhbDogIik7Ci0gICAgICAgIGxvZyh0YXJnZXRSZW5kZXJUcmVlKTsKLSAgICB9Ci19Ci0K
LWZ1bmN0aW9uIGNyZWF0ZVNwYW5XaXRoVGV4dCh0ZXh0KSB7Ci0gICAgdmFyIHNwYW4gPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7Ci0gICAgc3Bhbi5hcHBlbmRDaGlsZChkb2N1bWVu
dC5jcmVhdGVUZXh0Tm9kZSh0ZXh0KSk7Ci0gICAgcmV0dXJuIHNwYW47Ci19Ci0KLWZ1bmN0aW9u
IGNyZWF0ZUNvbnRlbnRXaXRoU2VsZWN0KHNlbGVjdCwgZmFsbGJhY2spIHsKLSAgICB2YXIgY29u
dGVudCA9IGludGVybmFscy5jcmVhdGVDb250ZW50RWxlbWVudChkb2N1bWVudCk7Ci0gICAgY29u
dGVudC5zZXRBdHRyaWJ1dGUoJ3NlbGVjdCcsIHNlbGVjdCk7Ci0gICAgaWYgKCFmYWxsYmFjaykK
LSAgICAgICAgY29udGVudC5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoIkZBTExCQUNL
IikpOwotCi0gICAgcmV0dXJuIGNvbnRlbnQ7Ci19Ci0KLWZ1bmN0aW9uIGFwcGVuZFNoYWRvdyh0
YXJnZXQsIHNlbGVjdCkgewotICAgIHZhciByb290ID0gaW50ZXJuYWxzLmVuc3VyZVNoYWRvd1Jv
b3QodGFyZ2V0KTsKLQotICAgIHZhciBjb250ZW50ID0gaW50ZXJuYWxzLmNyZWF0ZUNvbnRlbnRF
bGVtZW50KGRvY3VtZW50KTsKLSAgICBjb250ZW50LnNldEF0dHJpYnV0ZSgnc2VsZWN0Jywgc2Vs
ZWN0KTsKLSAgICBjb250ZW50LmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgiRkFMTEJB
Q0siKSk7Ci0KLSAgICByb290LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJ7
U0hBRE9XOiAiKSk7Ci0gICAgcm9vdC5hcHBlbmRDaGlsZChjb250ZW50KTsKLSAgICByb290LmFw
cGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJ9IikpOwotfQotCi1mdW5jdGlvbiBh
cHBlbmRTaGFkb3dEZWVwKHRhcmdldCwgc2VsZWN0KSB7Ci0gICAgdmFyIHJvb3QgPSBpbnRlcm5h
bHMuZW5zdXJlU2hhZG93Um9vdCh0YXJnZXQpOwotCi0gICAgdmFyIGNoaWxkID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgic3BhbiIpOwotICAgIHsKLSAgICAgICAgdmFyIGNvbnRlbnQgPSBpbnRl
cm5hbHMuY3JlYXRlQ29udGVudEVsZW1lbnQoZG9jdW1lbnQpOwotICAgICAgICBjb250ZW50LnNl
dEF0dHJpYnV0ZSgnc2VsZWN0Jywgc2VsZWN0KTsKLSAgICAgICAgY29udGVudC5hcHBlbmRDaGls
ZChjcmVhdGVTcGFuV2l0aFRleHQoIkZBTExCQUNLIikpOwotCi0gICAgICAgIGNoaWxkLmFwcGVu
ZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJ7SU5ORVI6ICIpKTsKLSAgICAgICAgY2hp
bGQuYXBwZW5kQ2hpbGQoY29udGVudCk7Ci0gICAgICAgIGNoaWxkLmFwcGVuZENoaWxkKGRvY3Vt
ZW50LmNyZWF0ZVRleHROb2RlKCJ9IikpOwotICAgIH0KLQotICAgIHJvb3QuYXBwZW5kQ2hpbGQo
ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIntTSEFET1c6ICIpKTsKLSAgICByb290LmFwcGVuZENo
aWxkKGNoaWxkKTsKLSAgICByb290LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2Rl
KCJ9IikpOwotfQotCi0vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0vLyBUZXN0IEZ1bmN0aW9ucy4KLQogZnVu
Y3Rpb24gdGVzdFJlbW92ZUNvbnRlbnQoY2FsbElmRG9uZSkgewogICAgIHZhciByb290ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAKQEAgLTQ0NCw5ICszNTgsNiBAQCBmdW5jdGlv
biB0ZXN0TW92ZUxpZ2h0Q2hpbGRPdXQoY2FsbElmRG9uZSkgewogICAgIHNldFRpbWVvdXQoZiwg
MCk7CiB9CiAKLS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS8vIFRlc3QgRHJpdmVycy4KLQogdmFyIHRlc3RG
dW5jcyA9IFsKICAgICB0ZXN0UmVtb3ZlQ29udGVudCwKICAgICB0ZXN0UmVtb3ZlQ29udGVudFRv
UmVjYWxjMSwKQEAgLTQ2MSw0MCArMzcyLDkgQEAgdmFyIHRlc3RGdW5jcyA9IFsKICAgICB0ZXN0
TW92ZUxpZ2h0Q2hpbGRPdXQKIF07CiAKLWZ1bmN0aW9uIGRvVGVzdElmTGVmdCgpIHsKLSAgICB2
YXIgdGVzdCA9IHRlc3RGdW5jcy5zaGlmdCgpOwotICAgIGlmICh0ZXN0ID09IG51bGwpCi0gICAg
ICAgIHJldHVybiBkb25lVGVzdCgpOwotCi0gICAgdmFyIGNhbGxJZkRvbmUgPSBmdW5jdGlvbigp
IHsKLSAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGNoZWNrKCk7
Ci0gICAgICAgICAgICBjbGVhblVwKCk7Ci0gICAgICAgICAgICBkb1Rlc3RJZkxlZnQoKTsKLSAg
ICAgICAgfSwgMCk7Ci0gICAgfTsKLQotICAgIGxvZyh0ZXN0Lm5hbWUpOwotICAgIHRlc3QoY2Fs
bElmRG9uZSk7Ci19Ci0KLWZ1bmN0aW9uIGRvbmVUZXN0KCkgewotICAgIGxvZygiVEVTVCBDT01Q
TEVURUQiKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Ci19Ci0KLWZ1
bmN0aW9uIGRvVGVzdCgpIHsKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7
Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKLSAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIH0KLQotICAgIGNsZWFuVXAo
KTsKLSAgICBkb1Rlc3RJZkxlZnQoKTsKLX0KIDwvc2NyaXB0PgogPC9oZWFkPgotPGJvZHkgb25s
b2FkPSJkb1Rlc3QoKSI+Cis8Ym9keSBvbmxvYWQ9ImRvVGVzdCh0ZXN0RnVuY3MpIj4KIAogPGRp
diBpZD0iYWN0dWFsLWNvbnRhaW5lciIgY2xhc3M9ImNvbnRhaW5lciI+PC9kaXY+CiA8ZGl2IGlk
PSJleHBlY3QtY29udGFpbmVyIiBjbGFzcz0iY29udGFpbmVyIj48L2Rpdj4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtc2VsZWN0LWR5bmFt
aWMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtc2Vs
ZWN0LWR5bmFtaWMuaHRtbAppbmRleCA3NWQ3MjRiOTUyODAyNTdlODUzZjQ0ZTcwODQ5NjU2MTNj
ZTMyOGY2Li43MGI1NWVjNWQ1M2NkODUwNmI3NzViZDI0MmE1MjNhMzM5ZDFlNDZjIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LXNlbGVjdC1k
eW5hbWljLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxl
bWVudC1zZWxlY3QtZHluYW1pYy5odG1sCkBAIC0xMyw5NCArMTMsOCBAQAogICAgIGJvcmRlcjog
c29saWQ7CiB9CiA8L3N0eWxlPgorPHNjcmlwdCBzcmM9InNoYWRvdy10ZXN0LWRyaXZlci5qcyI+
PC9zY3JpcHQ+CiA8c2NyaXB0PgotZnVuY3Rpb24gbG9nKG1lc3NhZ2UpIHsKLSAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmlubmVySFRNTCArPSAobWVzc2FnZSArICJcbiIp
OwotfQotCi1mdW5jdGlvbiByZW1vdmVBbGxDaGlsZHJlbihlbGVtKSB7Ci0gICAgd2hpbGUgKGVs
ZW0uZmlyc3RDaGlsZCkKLSAgICAgICAgZWxlbS5yZW1vdmVDaGlsZChlbGVtLmZpcnN0Q2hpbGQp
OwotfQotCi1mdW5jdGlvbiBjbGVhblVwKCkgewotICAgIHJlbW92ZUFsbENoaWxkcmVuKGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdhY3R1YWwtY29udGFpbmVyJykpOwotICAgIHJlbW92ZUFsbENo
aWxkcmVuKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleHBlY3QtY29udGFpbmVyJykpOwotfQot
Ci1mdW5jdGlvbiByZW1vdmVDb250YWluZXJMaW5lcyh0ZXh0KSB7Ci0gICAgdmFyIGxpbmVzID0g
dGV4dC5zcGxpdCgnXG4nKTsKLSAgICBsaW5lcy5zcGxpY2UoMCwgMik7Ci0gICAgcmV0dXJuIGxp
bmVzLmpvaW4oJ1xuJyk7Ci19Ci0KLWZ1bmN0aW9uIGNoZWNrKCkgewotICAgIHZhciByZWZDb250
YWluZXJSZW5kZXJUcmVlID0gaW50ZXJuYWxzLmVsZW1lbnRSZW5kZXJUcmVlQXNUZXh0KGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdleHBlY3QtY29udGFpbmVyJykpOwotICAgIHZhciByZWZSZW5k
ZXJUcmVlID0gcmVtb3ZlQ29udGFpbmVyTGluZXMocmVmQ29udGFpbmVyUmVuZGVyVHJlZSk7Ci0K
LSAgICB2YXIgdGFyZ2V0Q29udGFpbmVyUmVuZGVyVHJlZSA9IGludGVybmFscy5lbGVtZW50UmVu
ZGVyVHJlZUFzVGV4dChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0dWFsLWNvbnRhaW5lcicp
KTsKLSAgICB2YXIgdGFyZ2V0UmVuZGVyVHJlZSA9IHJlbW92ZUNvbnRhaW5lckxpbmVzKHRhcmdl
dENvbnRhaW5lclJlbmRlclRyZWUpOwotCi0gICAgaWYgKHRhcmdldFJlbmRlclRyZWUgPT0gcmVm
UmVuZGVyVHJlZSkKLSAgICAgICAgbG9nKCJQQVNTIik7Ci0gICAgZWxzZSB7Ci0gICAgICAgIGxv
ZygiRkFJTCIpOwotICAgICAgICBsb2coIkV4cGVjdGVkOiAiKTsKLSAgICAgICAgbG9nKHJlZlJl
bmRlclRyZWUpOwotICAgICAgICBsb2coIkFjdHVhbDogIik7Ci0gICAgICAgIGxvZyh0YXJnZXRS
ZW5kZXJUcmVlKTsKLSAgICB9Ci19Ci0KLWZ1bmN0aW9uIGNyZWF0ZVNwYW5XaXRoVGV4dCh0ZXh0
KSB7Ci0gICAgdmFyIHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7Ci0gICAg
c3Bhbi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0ZXh0KSk7Ci0gICAgcmV0
dXJuIHNwYW47Ci19Ci0KLWZ1bmN0aW9uIGNyZWF0ZUNvbnRlbnRXaXRoU2VsZWN0KHNlbGVjdCwg
ZmFsbGJhY2spIHsKLSAgICB2YXIgY29udGVudCA9IGludGVybmFscy5jcmVhdGVDb250ZW50RWxl
bWVudChkb2N1bWVudCk7Ci0gICAgY29udGVudC5zZXRBdHRyaWJ1dGUoJ3NlbGVjdCcsIHNlbGVj
dCk7Ci0gICAgaWYgKCFmYWxsYmFjaykKLSAgICAgICAgY29udGVudC5hcHBlbmRDaGlsZChjcmVh
dGVTcGFuV2l0aFRleHQoIkZBTExCQUNLIikpOwotCi0gICAgcmV0dXJuIGNvbnRlbnQ7Ci19Ci0K
LWZ1bmN0aW9uIGFwcGVuZFNoYWRvdyh0YXJnZXQsIHNlbGVjdCkgewotICAgIHZhciByb290ID0g
aW50ZXJuYWxzLmVuc3VyZVNoYWRvd1Jvb3QodGFyZ2V0KTsKLQotICAgIHZhciBjb250ZW50ID0g
aW50ZXJuYWxzLmNyZWF0ZUNvbnRlbnRFbGVtZW50KGRvY3VtZW50KTsKLSAgICBjb250ZW50LnNl
dEF0dHJpYnV0ZSgnc2VsZWN0Jywgc2VsZWN0KTsKLSAgICBjb250ZW50LmFwcGVuZENoaWxkKGNy
ZWF0ZVNwYW5XaXRoVGV4dCgiRkFMTEJBQ0siKSk7Ci0KLSAgICByb290LmFwcGVuZENoaWxkKGRv
Y3VtZW50LmNyZWF0ZVRleHROb2RlKCJ7U0hBRE9XOiAiKSk7Ci0gICAgcm9vdC5hcHBlbmRDaGls
ZChjb250ZW50KTsKLSAgICByb290LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2Rl
KCJ9IikpOwotfQotCi1mdW5jdGlvbiBhcHBlbmRTaGFkb3dEZWVwKHRhcmdldCwgc2VsZWN0KSB7
Ci0gICAgdmFyIHJvb3QgPSBpbnRlcm5hbHMuZW5zdXJlU2hhZG93Um9vdCh0YXJnZXQpOwotCi0g
ICAgdmFyIGNoaWxkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOwotICAgIHsKLSAg
ICAgICAgdmFyIGNvbnRlbnQgPSBpbnRlcm5hbHMuY3JlYXRlQ29udGVudEVsZW1lbnQoZG9jdW1l
bnQpOwotICAgICAgICBjb250ZW50LnNldEF0dHJpYnV0ZSgnc2VsZWN0Jywgc2VsZWN0KTsKLSAg
ICAgICAgY29udGVudC5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoIkZBTExCQUNLIikp
OwotCi0gICAgICAgIGNoaWxkLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJ7
SU5ORVI6ICIpKTsKLSAgICAgICAgY2hpbGQuYXBwZW5kQ2hpbGQoY29udGVudCk7Ci0gICAgICAg
IGNoaWxkLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJ9IikpOwotICAgIH0K
LQotICAgIHJvb3QuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIntTSEFET1c6
ICIpKTsKLSAgICByb290LmFwcGVuZENoaWxkKGNoaWxkKTsKLSAgICByb290LmFwcGVuZENoaWxk
KGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJ9IikpOwotfQotCi0vLyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0v
LyBUZXN0IEZ1bmN0aW9ucy4KLQogZnVuY3Rpb24gdGVzdENoYW5nZVNlbGVjdDEoY2FsbElmRG9u
ZSkgewogICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleHBlY3QtY29udGFpbmVyJykuaW5u
ZXJIVE1MID0KICAgICAgICAgIjxkaXY+PHNwYW4+QkVGT1JFPC9zcGFuPjxzcGFuPkxJR0hUIDI8
L3NwYW4+PHNwYW4+QUZURVI8L3NwYW4+PC9kaXY+IjsKQEAgLTI0NSw5ICsxNTksNiBAQCBmdW5j
dGlvbiB0ZXN0Q2hhbmdlU2VsZWN0RnJvbUZhbGxiYWNrKGNhbGxJZkRvbmUpIHsKICAgICBzZXRU
aW1lb3V0KGYsIDApOwogfQogCi0vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0vLyBUZXN0IERyaXZlcnMuCi0K
IHZhciB0ZXN0RnVuY3MgPSBbCiAgICAgdGVzdENoYW5nZVNlbGVjdDEsCiAgICAgdGVzdENoYW5n
ZVNlbGVjdDIsCkBAIC0yNTYsNDAgKzE2Nyw5IEBAIHZhciB0ZXN0RnVuY3MgPSBbCiAgICAgdGVz
dENoYW5nZVNlbGVjdEZyb21GYWxsYmFjaywKIF07CiAKLWZ1bmN0aW9uIGRvVGVzdElmTGVmdCgp
IHsKLSAgICB2YXIgdGVzdCA9IHRlc3RGdW5jcy5zaGlmdCgpOwotICAgIGlmICh0ZXN0ID09IG51
bGwpCi0gICAgICAgIHJldHVybiBkb25lVGVzdCgpOwotCi0gICAgdmFyIGNhbGxJZkRvbmUgPSBm
dW5jdGlvbigpIHsKLSAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgICAgICAg
IGNoZWNrKCk7Ci0gICAgICAgICAgICBjbGVhblVwKCk7Ci0gICAgICAgICAgICBkb1Rlc3RJZkxl
ZnQoKTsKLSAgICAgICAgfSwgMCk7Ci0gICAgfTsKLQotICAgIGxvZyh0ZXN0Lm5hbWUpOwotICAg
IHRlc3QoY2FsbElmRG9uZSk7Ci19Ci0KLWZ1bmN0aW9uIGRvbmVUZXN0KCkgewotICAgIGxvZygi
VEVTVCBDT01QTEVURUQiKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7
Ci19Ci0KLWZ1bmN0aW9uIGRvVGVzdCgpIHsKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKSB7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsK
LSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIH0KLQotICAg
IGNsZWFuVXAoKTsKLSAgICBkb1Rlc3RJZkxlZnQoKTsKLX0KIDwvc2NyaXB0PgogPC9oZWFkPgot
PGJvZHkgb25sb2FkPSJkb1Rlc3QoKSI+Cis8Ym9keSBvbmxvYWQ9ImRvVGVzdCh0ZXN0RnVuY3Mp
Ij4KIAogPGRpdiBpZD0iYWN0dWFsLWNvbnRhaW5lciIgY2xhc3M9ImNvbnRhaW5lciI+PC9kaXY+
CiA8ZGl2IGlkPSJleHBlY3QtY29udGFpbmVyIiBjbGFzcz0iY29udGFpbmVyIj48L2Rpdj4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctdGVzdC1kcml2ZXIu
anMgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXRlc3QtZHJpdmVyLmpzCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjk5ZTNlYmY2ZjdlNTJlZGRlYmI1YjMwZTQ4OWIwYjZlZGE0ZTBjYmUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXRlc3QtZHJp
dmVyLmpzCkBAIC0wLDAgKzEsMTMzIEBACisvLworLy8gc2hhZG93LXRlc3QtZHJpdmVyLmpzCisv
LworLy8gVG8gdXNlIHNoYWRvdy10ZXN0LWRyaXZlci5qcywgeW91IHNob3VsZCBoYXZlCisvLyAg
IDxkaXYgaWQ9ImFjdHVhbC1jb250YWluZXIiPjwvZGl2PgorLy8gICA8ZGl2IGlkPSJleHBlY3Qt
Y29udGFpbmVyIj48L2Rpdj4KKy8vICAgPHByZSBpZD0iY29uc29sZSI+PC9wcmU+CisvLyBpbiB5
b3VyIGJvZHkuCisvLworLy8gVGhlbiwgZGVmaW5lIHRlc3QgZnVuY3Rpb25zIGhhdmluZyBvbmUg
YXJndW1lbnQgJ2NhbGxJZkRvbmUnLgorLy8gY2FsbElmRG9uZSBzaG91bGQgYmUgY2FsbGVkIHdo
ZW4geW91ciB0ZXN0IGZ1bmN0aW9uIGZpbmlzaGVkLgorLy8KKy8vIEluIGJvZHkub25sb2FkLCBj
YWxsIGRvVGVzdCh0ZXN0RnVuY3MpIHdoZXJlIHRlc3RGdW5jcyBpcyBhbiBhcnJheSBvZiB0ZXN0
IGZ1bmN0aW9ucy4KKy8vCisvLyBTZWUgY29udGVudC1lbGVtZW50LW1vdmUuaHRtbCBhcyBhbiBl
eGFtcGxlLgorLy8KKworZnVuY3Rpb24gbG9nKG1lc3NhZ2UpIHsKKyAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnY29uc29sZScpLmlubmVySFRNTCArPSAobWVzc2FnZSArICJcbiIpOworfQor
CitmdW5jdGlvbiByZW1vdmVBbGxDaGlsZHJlbihlbGVtKSB7CisgICAgd2hpbGUgKGVsZW0uZmly
c3RDaGlsZCkKKyAgICAgICAgZWxlbS5yZW1vdmVDaGlsZChlbGVtLmZpcnN0Q2hpbGQpOworfQor
CitmdW5jdGlvbiBjbGVhblVwKCkgeworICAgIHJlbW92ZUFsbENoaWxkcmVuKGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdhY3R1YWwtY29udGFpbmVyJykpOworICAgIHJlbW92ZUFsbENoaWxkcmVu
KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleHBlY3QtY29udGFpbmVyJykpOworfQorCitmdW5j
dGlvbiByZW1vdmVDb250YWluZXJMaW5lcyh0ZXh0KSB7CisgICAgdmFyIGxpbmVzID0gdGV4dC5z
cGxpdCgnXG4nKTsKKyAgICBsaW5lcy5zcGxpY2UoMCwgMik7CisgICAgcmV0dXJuIGxpbmVzLmpv
aW4oJ1xuJyk7Cit9CisKK2Z1bmN0aW9uIGNoZWNrKCkgeworICAgIHZhciByZWZDb250YWluZXJS
ZW5kZXJUcmVlID0gaW50ZXJuYWxzLmVsZW1lbnRSZW5kZXJUcmVlQXNUZXh0KGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdleHBlY3QtY29udGFpbmVyJykpOworICAgIHZhciByZWZSZW5kZXJUcmVl
ID0gcmVtb3ZlQ29udGFpbmVyTGluZXMocmVmQ29udGFpbmVyUmVuZGVyVHJlZSk7CisKKyAgICB2
YXIgdGFyZ2V0Q29udGFpbmVyUmVuZGVyVHJlZSA9IGludGVybmFscy5lbGVtZW50UmVuZGVyVHJl
ZUFzVGV4dChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0dWFsLWNvbnRhaW5lcicpKTsKKyAg
ICB2YXIgdGFyZ2V0UmVuZGVyVHJlZSA9IHJlbW92ZUNvbnRhaW5lckxpbmVzKHRhcmdldENvbnRh
aW5lclJlbmRlclRyZWUpOworCisgICAgaWYgKHRhcmdldFJlbmRlclRyZWUgPT0gcmVmUmVuZGVy
VHJlZSkKKyAgICAgICAgbG9nKCJQQVNTIik7CisgICAgZWxzZSB7CisgICAgICAgIGxvZygiRkFJ
TCIpOworICAgICAgICBsb2coIkV4cGVjdGVkOiAiKTsKKyAgICAgICAgbG9nKHJlZlJlbmRlclRy
ZWUpOworICAgICAgICBsb2coIkFjdHVhbDogIik7CisgICAgICAgIGxvZyh0YXJnZXRSZW5kZXJU
cmVlKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGNyZWF0ZVNwYW5XaXRoVGV4dCh0ZXh0KSB7Cisg
ICAgdmFyIHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7CisgICAgc3Bhbi5h
cHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0ZXh0KSk7CisgICAgcmV0dXJuIHNw
YW47Cit9CisKK2Z1bmN0aW9uIGNyZWF0ZUNvbnRlbnRXaXRoU2VsZWN0KHNlbGVjdCwgZmFsbGJh
Y2spIHsKKyAgICB2YXIgY29udGVudCA9IGludGVybmFscy5jcmVhdGVDb250ZW50RWxlbWVudChk
b2N1bWVudCk7CisgICAgY29udGVudC5zZXRBdHRyaWJ1dGUoJ3NlbGVjdCcsIHNlbGVjdCk7Cisg
ICAgaWYgKCFmYWxsYmFjaykKKyAgICAgICAgY29udGVudC5hcHBlbmRDaGlsZChjcmVhdGVTcGFu
V2l0aFRleHQoIkZBTExCQUNLIikpOworCisgICAgcmV0dXJuIGNvbnRlbnQ7Cit9CisKK2Z1bmN0
aW9uIGFwcGVuZFNoYWRvdyh0YXJnZXQsIHNlbGVjdCkgeworICAgIHZhciByb290ID0gaW50ZXJu
YWxzLmVuc3VyZVNoYWRvd1Jvb3QodGFyZ2V0KTsKKworICAgIHZhciBjb250ZW50ID0gaW50ZXJu
YWxzLmNyZWF0ZUNvbnRlbnRFbGVtZW50KGRvY3VtZW50KTsKKyAgICBjb250ZW50LnNldEF0dHJp
YnV0ZSgnc2VsZWN0Jywgc2VsZWN0KTsKKyAgICBjb250ZW50LmFwcGVuZENoaWxkKGNyZWF0ZVNw
YW5XaXRoVGV4dCgiRkFMTEJBQ0siKSk7CisKKyAgICByb290LmFwcGVuZENoaWxkKGRvY3VtZW50
LmNyZWF0ZVRleHROb2RlKCJ7U0hBRE9XOiAiKSk7CisgICAgcm9vdC5hcHBlbmRDaGlsZChjb250
ZW50KTsKKyAgICByb290LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJ9Iikp
OworfQorCitmdW5jdGlvbiBhcHBlbmRTaGFkb3dEZWVwKHRhcmdldCwgc2VsZWN0KSB7CisgICAg
dmFyIHJvb3QgPSBpbnRlcm5hbHMuZW5zdXJlU2hhZG93Um9vdCh0YXJnZXQpOworCisgICAgdmFy
IGNoaWxkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOworICAgIHsKKyAgICAgICAg
dmFyIGNvbnRlbnQgPSBpbnRlcm5hbHMuY3JlYXRlQ29udGVudEVsZW1lbnQoZG9jdW1lbnQpOwor
ICAgICAgICBjb250ZW50LnNldEF0dHJpYnV0ZSgnc2VsZWN0Jywgc2VsZWN0KTsKKyAgICAgICAg
Y29udGVudC5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoIkZBTExCQUNLIikpOworCisg
ICAgICAgIGNoaWxkLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJ7SU5ORVI6
ICIpKTsKKyAgICAgICAgY2hpbGQuYXBwZW5kQ2hpbGQoY29udGVudCk7CisgICAgICAgIGNoaWxk
LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJ9IikpOworICAgIH0KKworICAg
IHJvb3QuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIntTSEFET1c6ICIpKTsK
KyAgICByb290LmFwcGVuZENoaWxkKGNoaWxkKTsKKyAgICByb290LmFwcGVuZENoaWxkKGRvY3Vt
ZW50LmNyZWF0ZVRleHROb2RlKCJ9IikpOworfQorCitmdW5jdGlvbiBkb1Rlc3RJZkxlZnQocmVz
dFRlc3RzKSB7CisgICAgdmFyIHRlc3QgPSByZXN0VGVzdHMuc2hpZnQoKTsKKyAgICBpZiAodGVz
dCA9PSBudWxsKQorICAgICAgICByZXR1cm4gZG9uZVRlc3QoKTsKKworICAgIHZhciBjYWxsSWZE
b25lID0gZnVuY3Rpb24oKSB7CisgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICBjaGVjaygpOworICAgICAgICAgICAgY2xlYW5VcCgpOworICAgICAgICAgICAgZG9U
ZXN0SWZMZWZ0KHJlc3RUZXN0cyk7CisgICAgICAgIH0sIDApOworICAgIH07CisKKyAgICBsb2co
dGVzdC5uYW1lKTsKKyAgICB0ZXN0KGNhbGxJZkRvbmUpOworfQorCitmdW5jdGlvbiBkb25lVGVz
dCgpIHsKKyAgICBsb2coIlRFU1QgQ09NUExFVEVEIik7CisgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIubm90aWZ5RG9uZSgpOworfQorCisvLyBBIHRlc3QgZHJpdmVyLiBDYWxsIHRoaXMgYm9keS5v
bmxvYWQuCitmdW5jdGlvbiBkb1Rlc3QodGVzdHMpIHsKKyAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKSB7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERv
bmUoKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIH0K
KworICAgIGNsZWFuVXAoKTsKKyAgICBkb1Rlc3RJZkxlZnQodGVzdHMpOworfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125211</attachid>
            <date>2012-02-02 16:55:53 -0800</date>
            <delta_ts>2012-02-02 19:33:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77584-20120203095551.patch</filename>
            <type>text/plain</type>
            <size>14401</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2NjAzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZjExZjczOGI4OGRlYTk0NTMwNGNl
NmM4MTA2ODE5YzA3NGQ1ZDA0NC4uMzlhOTg0ZjY3MThiN2RhYjllZjVmYmI2NDc2NDVhYzYxYWM1
ZjE2MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTAyLTAyICBTaGlueWEgS2F3YW5ha2Eg
IDxzaGlueWFrQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmVmYWN0b3Jpbmc6IFNoYXJlIHRlc3Qg
ZHJpdmVycyBvZiBzaGFkb3cgY29udGVudCB0ZXN0cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3NTg0CisKKyAgICAgICAgRXh0cmFjdHMgc2hhcmVk
IHRlc3QgY29kZSBmcm9tIGNvbnRlbnQtZWxlbWVudC1tb3ZlLmh0bWwgYW5kIGNvbnRlbnQtZWxl
bWVudC1zZWxlY3QtZHluYW1pYy5odG1sLgorICAgICAgICBUaGlzIHRlc3QgZnJhbWV3b3JrIHdp
bGwgYmUgdXNlZCBhIGZldyBtb3JlIHRpbWVzLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9kb20vcmVzb3VyY2VzL3NoYWRvdy10ZXN0LWRy
aXZlci5qczogQWRkZWQuCisgICAgICAgIChsb2cpOgorICAgICAgICAoY2xlYW5VcCk6CisgICAg
ICAgIChyZW1vdmVDb250YWluZXJMaW5lcyk6CisgICAgICAgIChjaGVjayk6CisgICAgICAgIChj
cmVhdGVTcGFuV2l0aFRleHQpOgorICAgICAgICAoY3JlYXRlQ29udGVudFdpdGhTZWxlY3QpOgor
ICAgICAgICAoYXBwZW5kU2hhZG93KToKKyAgICAgICAgKGFwcGVuZFNoYWRvd0RlZXApOgorICAg
ICAgICAoZG9UZXN0SWZMZWZ0LmNhbGxJZkRvbmUpOgorICAgICAgICAoZG9uZVRlc3QpOgorICAg
ICAgICAoZG9UZXN0KToKKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50
LW1vdmUuaHRtbDoKKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LXNl
bGVjdC1keW5hbWljLmh0bWw6CisKIDIwMTItMDItMDIgIFJheW1vbmQgVG95ICA8cnRveUBnb29n
bGUuY29tPgogCiAgICAgICAgIEZpeCB1cCB0ZXN0IGV4cGVjdGF0aW9ucyBmb3IgdHdvIHRlc3Rz
IHRoYXQgbm93IHBhc3MuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9yZXNvdXJj
ZXMvc2hhZG93LXRlc3QtZHJpdmVyLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcmVzb3VyY2Vz
L3NoYWRvdy10ZXN0LWRyaXZlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45OWUzZWJmNmY3ZTUyZWRkZWJiNWIz
MGU0ODliMGI2ZWRhNGUwY2JlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vcmVzb3VyY2VzL3NoYWRvdy10ZXN0LWRyaXZlci5qcwpAQCAtMCwwICsxLDEzMyBAQAorLy8K
Ky8vIHNoYWRvdy10ZXN0LWRyaXZlci5qcworLy8KKy8vIFRvIHVzZSBzaGFkb3ctdGVzdC1kcml2
ZXIuanMsIHlvdSBzaG91bGQgaGF2ZQorLy8gICA8ZGl2IGlkPSJhY3R1YWwtY29udGFpbmVyIj48
L2Rpdj4KKy8vICAgPGRpdiBpZD0iZXhwZWN0LWNvbnRhaW5lciI+PC9kaXY+CisvLyAgIDxwcmUg
aWQ9ImNvbnNvbGUiPjwvcHJlPgorLy8gaW4geW91ciBib2R5LgorLy8KKy8vIFRoZW4sIGRlZmlu
ZSB0ZXN0IGZ1bmN0aW9ucyBoYXZpbmcgb25lIGFyZ3VtZW50ICdjYWxsSWZEb25lJy4KKy8vIGNh
bGxJZkRvbmUgc2hvdWxkIGJlIGNhbGxlZCB3aGVuIHlvdXIgdGVzdCBmdW5jdGlvbiBmaW5pc2hl
ZC4KKy8vCisvLyBJbiBib2R5Lm9ubG9hZCwgY2FsbCBkb1Rlc3QodGVzdEZ1bmNzKSB3aGVyZSB0
ZXN0RnVuY3MgaXMgYW4gYXJyYXkgb2YgdGVzdCBmdW5jdGlvbnMuCisvLworLy8gU2VlIGNvbnRl
bnQtZWxlbWVudC1tb3ZlLmh0bWwgYXMgYW4gZXhhbXBsZS4KKy8vCisKK2Z1bmN0aW9uIGxvZyht
ZXNzYWdlKSB7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5pbm5lckhU
TUwgKz0gKG1lc3NhZ2UgKyAiXG4iKTsKK30KKworZnVuY3Rpb24gcmVtb3ZlQWxsQ2hpbGRyZW4o
ZWxlbSkgeworICAgIHdoaWxlIChlbGVtLmZpcnN0Q2hpbGQpCisgICAgICAgIGVsZW0ucmVtb3Zl
Q2hpbGQoZWxlbS5maXJzdENoaWxkKTsKK30KKworZnVuY3Rpb24gY2xlYW5VcCgpIHsKKyAgICBy
ZW1vdmVBbGxDaGlsZHJlbihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0dWFsLWNvbnRhaW5l
cicpKTsKKyAgICByZW1vdmVBbGxDaGlsZHJlbihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhw
ZWN0LWNvbnRhaW5lcicpKTsKK30KKworZnVuY3Rpb24gcmVtb3ZlQ29udGFpbmVyTGluZXModGV4
dCkgeworICAgIHZhciBsaW5lcyA9IHRleHQuc3BsaXQoJ1xuJyk7CisgICAgbGluZXMuc3BsaWNl
KDAsIDIpOworICAgIHJldHVybiBsaW5lcy5qb2luKCdcbicpOworfQorCitmdW5jdGlvbiBjaGVj
aygpIHsKKyAgICB2YXIgcmVmQ29udGFpbmVyUmVuZGVyVHJlZSA9IGludGVybmFscy5lbGVtZW50
UmVuZGVyVHJlZUFzVGV4dChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhwZWN0LWNvbnRhaW5l
cicpKTsKKyAgICB2YXIgcmVmUmVuZGVyVHJlZSA9IHJlbW92ZUNvbnRhaW5lckxpbmVzKHJlZkNv
bnRhaW5lclJlbmRlclRyZWUpOworCisgICAgdmFyIHRhcmdldENvbnRhaW5lclJlbmRlclRyZWUg
PSBpbnRlcm5hbHMuZWxlbWVudFJlbmRlclRyZWVBc1RleHQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2FjdHVhbC1jb250YWluZXInKSk7CisgICAgdmFyIHRhcmdldFJlbmRlclRyZWUgPSByZW1v
dmVDb250YWluZXJMaW5lcyh0YXJnZXRDb250YWluZXJSZW5kZXJUcmVlKTsKKworICAgIGlmICh0
YXJnZXRSZW5kZXJUcmVlID09IHJlZlJlbmRlclRyZWUpCisgICAgICAgIGxvZygiUEFTUyIpOwor
ICAgIGVsc2UgeworICAgICAgICBsb2coIkZBSUwiKTsKKyAgICAgICAgbG9nKCJFeHBlY3RlZDog
Iik7CisgICAgICAgIGxvZyhyZWZSZW5kZXJUcmVlKTsKKyAgICAgICAgbG9nKCJBY3R1YWw6ICIp
OworICAgICAgICBsb2codGFyZ2V0UmVuZGVyVHJlZSk7CisgICAgfQorfQorCitmdW5jdGlvbiBj
cmVhdGVTcGFuV2l0aFRleHQodGV4dCkgeworICAgIHZhciBzcGFuID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnc3BhbicpOworICAgIHNwYW4uYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4
dE5vZGUodGV4dCkpOworICAgIHJldHVybiBzcGFuOworfQorCitmdW5jdGlvbiBjcmVhdGVDb250
ZW50V2l0aFNlbGVjdChzZWxlY3QsIGZhbGxiYWNrKSB7CisgICAgdmFyIGNvbnRlbnQgPSBpbnRl
cm5hbHMuY3JlYXRlQ29udGVudEVsZW1lbnQoZG9jdW1lbnQpOworICAgIGNvbnRlbnQuc2V0QXR0
cmlidXRlKCdzZWxlY3QnLCBzZWxlY3QpOworICAgIGlmICghZmFsbGJhY2spCisgICAgICAgIGNv
bnRlbnQuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCJGQUxMQkFDSyIpKTsKKworICAg
IHJldHVybiBjb250ZW50OworfQorCitmdW5jdGlvbiBhcHBlbmRTaGFkb3codGFyZ2V0LCBzZWxl
Y3QpIHsKKyAgICB2YXIgcm9vdCA9IGludGVybmFscy5lbnN1cmVTaGFkb3dSb290KHRhcmdldCk7
CisKKyAgICB2YXIgY29udGVudCA9IGludGVybmFscy5jcmVhdGVDb250ZW50RWxlbWVudChkb2N1
bWVudCk7CisgICAgY29udGVudC5zZXRBdHRyaWJ1dGUoJ3NlbGVjdCcsIHNlbGVjdCk7CisgICAg
Y29udGVudC5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoIkZBTExCQUNLIikpOworCisg
ICAgcm9vdC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgie1NIQURPVzogIikp
OworICAgIHJvb3QuYXBwZW5kQ2hpbGQoY29udGVudCk7CisgICAgcm9vdC5hcHBlbmRDaGlsZChk
b2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgifSIpKTsKK30KKworZnVuY3Rpb24gYXBwZW5kU2hhZG93
RGVlcCh0YXJnZXQsIHNlbGVjdCkgeworICAgIHZhciByb290ID0gaW50ZXJuYWxzLmVuc3VyZVNo
YWRvd1Jvb3QodGFyZ2V0KTsKKworICAgIHZhciBjaGlsZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoInNwYW4iKTsKKyAgICB7CisgICAgICAgIHZhciBjb250ZW50ID0gaW50ZXJuYWxzLmNyZWF0
ZUNvbnRlbnRFbGVtZW50KGRvY3VtZW50KTsKKyAgICAgICAgY29udGVudC5zZXRBdHRyaWJ1dGUo
J3NlbGVjdCcsIHNlbGVjdCk7CisgICAgICAgIGNvbnRlbnQuYXBwZW5kQ2hpbGQoY3JlYXRlU3Bh
bldpdGhUZXh0KCJGQUxMQkFDSyIpKTsKKworICAgICAgICBjaGlsZC5hcHBlbmRDaGlsZChkb2N1
bWVudC5jcmVhdGVUZXh0Tm9kZSgie0lOTkVSOiAiKSk7CisgICAgICAgIGNoaWxkLmFwcGVuZENo
aWxkKGNvbnRlbnQpOworICAgICAgICBjaGlsZC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVU
ZXh0Tm9kZSgifSIpKTsKKyAgICB9CisKKyAgICByb290LmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZVRleHROb2RlKCJ7U0hBRE9XOiAiKSk7CisgICAgcm9vdC5hcHBlbmRDaGlsZChjaGlsZCk7
CisgICAgcm9vdC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgifSIpKTsKK30K
KworZnVuY3Rpb24gZG9UZXN0SWZMZWZ0KHJlc3RUZXN0cykgeworICAgIHZhciB0ZXN0ID0gcmVz
dFRlc3RzLnNoaWZ0KCk7CisgICAgaWYgKHRlc3QgPT0gbnVsbCkKKyAgICAgICAgcmV0dXJuIGRv
bmVUZXN0KCk7CisKKyAgICB2YXIgY2FsbElmRG9uZSA9IGZ1bmN0aW9uKCkgeworICAgICAgICBz
ZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgY2hlY2soKTsKKyAgICAgICAgICAg
IGNsZWFuVXAoKTsKKyAgICAgICAgICAgIGRvVGVzdElmTGVmdChyZXN0VGVzdHMpOworICAgICAg
ICB9LCAwKTsKKyAgICB9OworCisgICAgbG9nKHRlc3QubmFtZSk7CisgICAgdGVzdChjYWxsSWZE
b25lKTsKK30KKworZnVuY3Rpb24gZG9uZVRlc3QoKSB7CisgICAgbG9nKCJURVNUIENPTVBMRVRF
RCIpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKK30KKworLy8gQSB0
ZXN0IGRyaXZlci4gQ2FsbCB0aGlzIGJvZHkub25sb2FkLgorZnVuY3Rpb24gZG9UZXN0KHRlc3Rz
KSB7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICB9CisKKyAgICBjbGVhblVwKCk7CisgICAgZG9UZXN0
SWZMZWZ0KHRlc3RzKTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9jb250ZW50LWVsZW1lbnQtbW92ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L2NvbnRlbnQtZWxlbWVudC1tb3ZlLmh0bWwKaW5kZXggM2RhMjIzNDA1MzU3NDk5YjNkOWVmYWFl
ZDQzOGRhOGMxNzc1MjgxNS4uOThjNTIwNTc3N2U0MWI5OWYwYjRiZGNmMzExYTlkODNiNTMzMTQw
ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVu
dC1tb3ZlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxl
bWVudC1tb3ZlLmh0bWwKQEAgLTEzLDk0ICsxMyw4IEBACiAgICAgYm9yZGVyOiBzb2xpZDsKIH0K
IDwvc3R5bGU+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3NoYWRvdy10ZXN0LWRyaXZlci5q
cyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotZnVuY3Rpb24gbG9nKG1lc3NhZ2UpIHsKLSAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmlubmVySFRNTCArPSAobWVzc2FnZSArICJc
biIpOwotfQotCi1mdW5jdGlvbiByZW1vdmVBbGxDaGlsZHJlbihlbGVtKSB7Ci0gICAgd2hpbGUg
KGVsZW0uZmlyc3RDaGlsZCkKLSAgICAgICAgZWxlbS5yZW1vdmVDaGlsZChlbGVtLmZpcnN0Q2hp
bGQpOwotfQotCi1mdW5jdGlvbiBjbGVhblVwKCkgewotICAgIHJlbW92ZUFsbENoaWxkcmVuKGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3R1YWwtY29udGFpbmVyJykpOwotICAgIHJlbW92ZUFs
bENoaWxkcmVuKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleHBlY3QtY29udGFpbmVyJykpOwot
fQotCi1mdW5jdGlvbiByZW1vdmVDb250YWluZXJMaW5lcyh0ZXh0KSB7Ci0gICAgdmFyIGxpbmVz
ID0gdGV4dC5zcGxpdCgnXG4nKTsKLSAgICBsaW5lcy5zcGxpY2UoMCwgMik7Ci0gICAgcmV0dXJu
IGxpbmVzLmpvaW4oJ1xuJyk7Ci19Ci0KLWZ1bmN0aW9uIGNoZWNrKCkgewotICAgIHZhciByZWZD
b250YWluZXJSZW5kZXJUcmVlID0gaW50ZXJuYWxzLmVsZW1lbnRSZW5kZXJUcmVlQXNUZXh0KGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdleHBlY3QtY29udGFpbmVyJykpOwotICAgIHZhciByZWZS
ZW5kZXJUcmVlID0gcmVtb3ZlQ29udGFpbmVyTGluZXMocmVmQ29udGFpbmVyUmVuZGVyVHJlZSk7
Ci0KLSAgICB2YXIgdGFyZ2V0Q29udGFpbmVyUmVuZGVyVHJlZSA9IGludGVybmFscy5lbGVtZW50
UmVuZGVyVHJlZUFzVGV4dChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0dWFsLWNvbnRhaW5l
cicpKTsKLSAgICB2YXIgdGFyZ2V0UmVuZGVyVHJlZSA9IHJlbW92ZUNvbnRhaW5lckxpbmVzKHRh
cmdldENvbnRhaW5lclJlbmRlclRyZWUpOwotCi0gICAgaWYgKHRhcmdldFJlbmRlclRyZWUgPT0g
cmVmUmVuZGVyVHJlZSkKLSAgICAgICAgbG9nKCJQQVNTIik7Ci0gICAgZWxzZSB7Ci0gICAgICAg
IGxvZygiRkFJTCIpOwotICAgICAgICBsb2coIkV4cGVjdGVkOiAiKTsKLSAgICAgICAgbG9nKHJl
ZlJlbmRlclRyZWUpOwotICAgICAgICBsb2coIkFjdHVhbDogIik7Ci0gICAgICAgIGxvZyh0YXJn
ZXRSZW5kZXJUcmVlKTsKLSAgICB9Ci19Ci0KLWZ1bmN0aW9uIGNyZWF0ZVNwYW5XaXRoVGV4dCh0
ZXh0KSB7Ci0gICAgdmFyIHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7Ci0g
ICAgc3Bhbi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0ZXh0KSk7Ci0gICAg
cmV0dXJuIHNwYW47Ci19Ci0KLWZ1bmN0aW9uIGNyZWF0ZUNvbnRlbnRXaXRoU2VsZWN0KHNlbGVj
dCwgZmFsbGJhY2spIHsKLSAgICB2YXIgY29udGVudCA9IGludGVybmFscy5jcmVhdGVDb250ZW50
RWxlbWVudChkb2N1bWVudCk7Ci0gICAgY29udGVudC5zZXRBdHRyaWJ1dGUoJ3NlbGVjdCcsIHNl
bGVjdCk7Ci0gICAgaWYgKCFmYWxsYmFjaykKLSAgICAgICAgY29udGVudC5hcHBlbmRDaGlsZChj
cmVhdGVTcGFuV2l0aFRleHQoIkZBTExCQUNLIikpOwotCi0gICAgcmV0dXJuIGNvbnRlbnQ7Ci19
Ci0KLWZ1bmN0aW9uIGFwcGVuZFNoYWRvdyh0YXJnZXQsIHNlbGVjdCkgewotICAgIHZhciByb290
ID0gaW50ZXJuYWxzLmVuc3VyZVNoYWRvd1Jvb3QodGFyZ2V0KTsKLQotICAgIHZhciBjb250ZW50
ID0gaW50ZXJuYWxzLmNyZWF0ZUNvbnRlbnRFbGVtZW50KGRvY3VtZW50KTsKLSAgICBjb250ZW50
LnNldEF0dHJpYnV0ZSgnc2VsZWN0Jywgc2VsZWN0KTsKLSAgICBjb250ZW50LmFwcGVuZENoaWxk
KGNyZWF0ZVNwYW5XaXRoVGV4dCgiRkFMTEJBQ0siKSk7Ci0KLSAgICByb290LmFwcGVuZENoaWxk
KGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJ7U0hBRE9XOiAiKSk7Ci0gICAgcm9vdC5hcHBlbmRD
aGlsZChjb250ZW50KTsKLSAgICByb290LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHRO
b2RlKCJ9IikpOwotfQotCi1mdW5jdGlvbiBhcHBlbmRTaGFkb3dEZWVwKHRhcmdldCwgc2VsZWN0
KSB7Ci0gICAgdmFyIHJvb3QgPSBpbnRlcm5hbHMuZW5zdXJlU2hhZG93Um9vdCh0YXJnZXQpOwot
Ci0gICAgdmFyIGNoaWxkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOwotICAgIHsK
LSAgICAgICAgdmFyIGNvbnRlbnQgPSBpbnRlcm5hbHMuY3JlYXRlQ29udGVudEVsZW1lbnQoZG9j
dW1lbnQpOwotICAgICAgICBjb250ZW50LnNldEF0dHJpYnV0ZSgnc2VsZWN0Jywgc2VsZWN0KTsK
LSAgICAgICAgY29udGVudC5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoIkZBTExCQUNL
IikpOwotCi0gICAgICAgIGNoaWxkLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2Rl
KCJ7SU5ORVI6ICIpKTsKLSAgICAgICAgY2hpbGQuYXBwZW5kQ2hpbGQoY29udGVudCk7Ci0gICAg
ICAgIGNoaWxkLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJ9IikpOwotICAg
IH0KLQotICAgIHJvb3QuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIntTSEFE
T1c6ICIpKTsKLSAgICByb290LmFwcGVuZENoaWxkKGNoaWxkKTsKLSAgICByb290LmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJ9IikpOwotfQotCi0vLyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ci0vLyBUZXN0IEZ1bmN0aW9ucy4KLQogZnVuY3Rpb24gdGVzdFJlbW92ZUNvbnRlbnQoY2FsbElm
RG9uZSkgewogICAgIHZhciByb290ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAK
QEAgLTQ0NCw5ICszNTgsNiBAQCBmdW5jdGlvbiB0ZXN0TW92ZUxpZ2h0Q2hpbGRPdXQoY2FsbElm
RG9uZSkgewogICAgIHNldFRpbWVvdXQoZiwgMCk7CiB9CiAKLS8vIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS8v
IFRlc3QgRHJpdmVycy4KLQogdmFyIHRlc3RGdW5jcyA9IFsKICAgICB0ZXN0UmVtb3ZlQ29udGVu
dCwKICAgICB0ZXN0UmVtb3ZlQ29udGVudFRvUmVjYWxjMSwKQEAgLTQ2MSw0MCArMzcyLDkgQEAg
dmFyIHRlc3RGdW5jcyA9IFsKICAgICB0ZXN0TW92ZUxpZ2h0Q2hpbGRPdXQKIF07CiAKLWZ1bmN0
aW9uIGRvVGVzdElmTGVmdCgpIHsKLSAgICB2YXIgdGVzdCA9IHRlc3RGdW5jcy5zaGlmdCgpOwot
ICAgIGlmICh0ZXN0ID09IG51bGwpCi0gICAgICAgIHJldHVybiBkb25lVGVzdCgpOwotCi0gICAg
dmFyIGNhbGxJZkRvbmUgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgc2V0VGltZW91dChmdW5jdGlv
bigpIHsKLSAgICAgICAgICAgIGNoZWNrKCk7Ci0gICAgICAgICAgICBjbGVhblVwKCk7Ci0gICAg
ICAgICAgICBkb1Rlc3RJZkxlZnQoKTsKLSAgICAgICAgfSwgMCk7Ci0gICAgfTsKLQotICAgIGxv
Zyh0ZXN0Lm5hbWUpOwotICAgIHRlc3QoY2FsbElmRG9uZSk7Ci19Ci0KLWZ1bmN0aW9uIGRvbmVU
ZXN0KCkgewotICAgIGxvZygiVEVTVCBDT01QTEVURUQiKTsKLSAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5ub3RpZnlEb25lKCk7Ci19Ci0KLWZ1bmN0aW9uIGRvVGVzdCgpIHsKLSAgICBpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
LndhaXRVbnRpbERvbmUoKTsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCgpOwotICAgIH0KLQotICAgIGNsZWFuVXAoKTsKLSAgICBkb1Rlc3RJZkxlZnQoKTsKLX0KIDwv
c2NyaXB0PgogPC9oZWFkPgotPGJvZHkgb25sb2FkPSJkb1Rlc3QoKSI+Cis8Ym9keSBvbmxvYWQ9
ImRvVGVzdCh0ZXN0RnVuY3MpIj4KIAogPGRpdiBpZD0iYWN0dWFsLWNvbnRhaW5lciIgY2xhc3M9
ImNvbnRhaW5lciI+PC9kaXY+CiA8ZGl2IGlkPSJleHBlY3QtY29udGFpbmVyIiBjbGFzcz0iY29u
dGFpbmVyIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9j
b250ZW50LWVsZW1lbnQtc2VsZWN0LWR5bmFtaWMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9jb250ZW50LWVsZW1lbnQtc2VsZWN0LWR5bmFtaWMuaHRtbAppbmRleCA3NWQ3MjRi
OTUyODAyNTdlODUzZjQ0ZTcwODQ5NjU2MTNjZTMyOGY2Li5lNzIzMzVkNzM2ZWNkZDhmMTRlODg3
OTQzMWRiZDFiZjkxODU1ZDJjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvY29udGVudC1lbGVtZW50LXNlbGVjdC1keW5hbWljLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1zZWxlY3QtZHluYW1pYy5odG1sCkBAIC0x
Myw5NCArMTMsOCBAQAogICAgIGJvcmRlcjogc29saWQ7CiB9CiA8L3N0eWxlPgorPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy9zaGFkb3ctdGVzdC1kcml2ZXIuanMiPjwvc2NyaXB0PgogPHNjcmlw
dD4KLWZ1bmN0aW9uIGxvZyhtZXNzYWdlKSB7Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2NvbnNvbGUnKS5pbm5lckhUTUwgKz0gKG1lc3NhZ2UgKyAiXG4iKTsKLX0KLQotZnVuY3Rpb24g
cmVtb3ZlQWxsQ2hpbGRyZW4oZWxlbSkgewotICAgIHdoaWxlIChlbGVtLmZpcnN0Q2hpbGQpCi0g
ICAgICAgIGVsZW0ucmVtb3ZlQ2hpbGQoZWxlbS5maXJzdENoaWxkKTsKLX0KLQotZnVuY3Rpb24g
Y2xlYW5VcCgpIHsKLSAgICByZW1vdmVBbGxDaGlsZHJlbihkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnYWN0dWFsLWNvbnRhaW5lcicpKTsKLSAgICByZW1vdmVBbGxDaGlsZHJlbihkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnZXhwZWN0LWNvbnRhaW5lcicpKTsKLX0KLQotZnVuY3Rpb24gcmVtb3Zl
Q29udGFpbmVyTGluZXModGV4dCkgewotICAgIHZhciBsaW5lcyA9IHRleHQuc3BsaXQoJ1xuJyk7
Ci0gICAgbGluZXMuc3BsaWNlKDAsIDIpOwotICAgIHJldHVybiBsaW5lcy5qb2luKCdcbicpOwot
fQotCi1mdW5jdGlvbiBjaGVjaygpIHsKLSAgICB2YXIgcmVmQ29udGFpbmVyUmVuZGVyVHJlZSA9
IGludGVybmFscy5lbGVtZW50UmVuZGVyVHJlZUFzVGV4dChkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnZXhwZWN0LWNvbnRhaW5lcicpKTsKLSAgICB2YXIgcmVmUmVuZGVyVHJlZSA9IHJlbW92ZUNv
bnRhaW5lckxpbmVzKHJlZkNvbnRhaW5lclJlbmRlclRyZWUpOwotCi0gICAgdmFyIHRhcmdldENv
bnRhaW5lclJlbmRlclRyZWUgPSBpbnRlcm5hbHMuZWxlbWVudFJlbmRlclRyZWVBc1RleHQoZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdHVhbC1jb250YWluZXInKSk7Ci0gICAgdmFyIHRhcmdl
dFJlbmRlclRyZWUgPSByZW1vdmVDb250YWluZXJMaW5lcyh0YXJnZXRDb250YWluZXJSZW5kZXJU
cmVlKTsKLQotICAgIGlmICh0YXJnZXRSZW5kZXJUcmVlID09IHJlZlJlbmRlclRyZWUpCi0gICAg
ICAgIGxvZygiUEFTUyIpOwotICAgIGVsc2UgewotICAgICAgICBsb2coIkZBSUwiKTsKLSAgICAg
ICAgbG9nKCJFeHBlY3RlZDogIik7Ci0gICAgICAgIGxvZyhyZWZSZW5kZXJUcmVlKTsKLSAgICAg
ICAgbG9nKCJBY3R1YWw6ICIpOwotICAgICAgICBsb2codGFyZ2V0UmVuZGVyVHJlZSk7Ci0gICAg
fQotfQotCi1mdW5jdGlvbiBjcmVhdGVTcGFuV2l0aFRleHQodGV4dCkgewotICAgIHZhciBzcGFu
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOwotICAgIHNwYW4uYXBwZW5kQ2hpbGQo
ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUodGV4dCkpOwotICAgIHJldHVybiBzcGFuOwotfQotCi1m
dW5jdGlvbiBjcmVhdGVDb250ZW50V2l0aFNlbGVjdChzZWxlY3QsIGZhbGxiYWNrKSB7Ci0gICAg
dmFyIGNvbnRlbnQgPSBpbnRlcm5hbHMuY3JlYXRlQ29udGVudEVsZW1lbnQoZG9jdW1lbnQpOwot
ICAgIGNvbnRlbnQuc2V0QXR0cmlidXRlKCdzZWxlY3QnLCBzZWxlY3QpOwotICAgIGlmICghZmFs
bGJhY2spCi0gICAgICAgIGNvbnRlbnQuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCJG
QUxMQkFDSyIpKTsKLQotICAgIHJldHVybiBjb250ZW50OwotfQotCi1mdW5jdGlvbiBhcHBlbmRT
aGFkb3codGFyZ2V0LCBzZWxlY3QpIHsKLSAgICB2YXIgcm9vdCA9IGludGVybmFscy5lbnN1cmVT
aGFkb3dSb290KHRhcmdldCk7Ci0KLSAgICB2YXIgY29udGVudCA9IGludGVybmFscy5jcmVhdGVD
b250ZW50RWxlbWVudChkb2N1bWVudCk7Ci0gICAgY29udGVudC5zZXRBdHRyaWJ1dGUoJ3NlbGVj
dCcsIHNlbGVjdCk7Ci0gICAgY29udGVudC5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQo
IkZBTExCQUNLIikpOwotCi0gICAgcm9vdC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0
Tm9kZSgie1NIQURPVzogIikpOwotICAgIHJvb3QuYXBwZW5kQ2hpbGQoY29udGVudCk7Ci0gICAg
cm9vdC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgifSIpKTsKLX0KLQotZnVu
Y3Rpb24gYXBwZW5kU2hhZG93RGVlcCh0YXJnZXQsIHNlbGVjdCkgewotICAgIHZhciByb290ID0g
aW50ZXJuYWxzLmVuc3VyZVNoYWRvd1Jvb3QodGFyZ2V0KTsKLQotICAgIHZhciBjaGlsZCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKLSAgICB7Ci0gICAgICAgIHZhciBjb250ZW50
ID0gaW50ZXJuYWxzLmNyZWF0ZUNvbnRlbnRFbGVtZW50KGRvY3VtZW50KTsKLSAgICAgICAgY29u
dGVudC5zZXRBdHRyaWJ1dGUoJ3NlbGVjdCcsIHNlbGVjdCk7Ci0gICAgICAgIGNvbnRlbnQuYXBw
ZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCJGQUxMQkFDSyIpKTsKLQotICAgICAgICBjaGls
ZC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgie0lOTkVSOiAiKSk7Ci0gICAg
ICAgIGNoaWxkLmFwcGVuZENoaWxkKGNvbnRlbnQpOwotICAgICAgICBjaGlsZC5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgifSIpKTsKLSAgICB9Ci0KLSAgICByb290LmFwcGVu
ZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJ7U0hBRE9XOiAiKSk7Ci0gICAgcm9vdC5h
cHBlbmRDaGlsZChjaGlsZCk7Ci0gICAgcm9vdC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVU
ZXh0Tm9kZSgifSIpKTsKLX0KLQotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8gVGVzdCBGdW5jdGlvbnMu
Ci0KIGZ1bmN0aW9uIHRlc3RDaGFuZ2VTZWxlY3QxKGNhbGxJZkRvbmUpIHsKICAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnZXhwZWN0LWNvbnRhaW5lcicpLmlubmVySFRNTCA9CiAgICAgICAg
ICI8ZGl2PjxzcGFuPkJFRk9SRTwvc3Bhbj48c3Bhbj5MSUdIVCAyPC9zcGFuPjxzcGFuPkFGVEVS
PC9zcGFuPjwvZGl2PiI7CkBAIC0yNDUsOSArMTU5LDYgQEAgZnVuY3Rpb24gdGVzdENoYW5nZVNl
bGVjdEZyb21GYWxsYmFjayhjYWxsSWZEb25lKSB7CiAgICAgc2V0VGltZW91dChmLCAwKTsKIH0K
IAotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQotLy8gVGVzdCBEcml2ZXJzLgotCiB2YXIgdGVzdEZ1bmNzID0g
WwogICAgIHRlc3RDaGFuZ2VTZWxlY3QxLAogICAgIHRlc3RDaGFuZ2VTZWxlY3QyLApAQCAtMjU2
LDQwICsxNjcsOSBAQCB2YXIgdGVzdEZ1bmNzID0gWwogICAgIHRlc3RDaGFuZ2VTZWxlY3RGcm9t
RmFsbGJhY2ssCiBdOwogCi1mdW5jdGlvbiBkb1Rlc3RJZkxlZnQoKSB7Ci0gICAgdmFyIHRlc3Qg
PSB0ZXN0RnVuY3Muc2hpZnQoKTsKLSAgICBpZiAodGVzdCA9PSBudWxsKQotICAgICAgICByZXR1
cm4gZG9uZVRlc3QoKTsKLQotICAgIHZhciBjYWxsSWZEb25lID0gZnVuY3Rpb24oKSB7Ci0gICAg
ICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBjaGVjaygpOwotICAgICAg
ICAgICAgY2xlYW5VcCgpOwotICAgICAgICAgICAgZG9UZXN0SWZMZWZ0KCk7Ci0gICAgICAgIH0s
IDApOwotICAgIH07Ci0KLSAgICBsb2codGVzdC5uYW1lKTsKLSAgICB0ZXN0KGNhbGxJZkRvbmUp
OwotfQotCi1mdW5jdGlvbiBkb25lVGVzdCgpIHsKLSAgICBsb2coIlRFU1QgQ09NUExFVEVEIik7
Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOwotfQotCi1mdW5jdGlvbiBk
b1Rlc3QoKSB7Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Ci0gICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICB9Ci0KLSAgICBjbGVhblVwKCk7Ci0gICAg
ZG9UZXN0SWZMZWZ0KCk7Ci19CiA8L3NjcmlwdD4KIDwvaGVhZD4KLTxib2R5IG9ubG9hZD0iZG9U
ZXN0KCkiPgorPGJvZHkgb25sb2FkPSJkb1Rlc3QodGVzdEZ1bmNzKSI+CiAKIDxkaXYgaWQ9ImFj
dHVhbC1jb250YWluZXIiIGNsYXNzPSJjb250YWluZXIiPjwvZGl2PgogPGRpdiBpZD0iZXhwZWN0
LWNvbnRhaW5lciIgY2xhc3M9ImNvbnRhaW5lciI+PC9kaXY+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>