<?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>58231</bug_id>
          
          <creation_ts>2011-04-11 06:21:45 -0700</creation_ts>
          <short_desc>Web Inspector: fix source mapping for deobfuscated scripts.</short_desc>
          <delta_ts>2011-04-13 15:17:36 -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>Web Inspector (Deprecated)</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>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Pavel Podivilov">podivilov</reporter>
          <assigned_to name="Pavel Podivilov">podivilov</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>jberlin</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>383137</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-04-11 06:21:45 -0700</bug_when>
    <thetext>Web Inspector: fix source mapping for deobfuscated scripts.

Existing source mapping appears to be inaccurate in some cases. New regexp would have much more matches, thus providing more accurate mapping.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383138</commentid>
    <comment_count>1</comment_count>
      <attachid>89000</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-04-11 06:22:18 -0700</bug_when>
    <thetext>Created attachment 89000
Patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383814</commentid>
    <comment_count>2</comment_count>
      <attachid>89000</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-04-11 22:04:58 -0700</bug_when>
    <thetext>Comment on attachment 89000
Patch.

Can this be tested?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383954</commentid>
    <comment_count>3</comment_count>
      <attachid>89190</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-04-12 05:49:38 -0700</bug_when>
    <thetext>Created attachment 89190
Added test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>384080</commentid>
    <comment_count>4</comment_count>
      <attachid>89220</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-04-12 09:51:25 -0700</bug_when>
    <thetext>Created attachment 89220
Add test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>384961</commentid>
    <comment_count>5</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-04-13 09:46:26 -0700</bug_when>
    <thetext>Committed r83748: &lt;http://trac.webkit.org/changeset/83748&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>385293</commentid>
    <comment_count>6</comment_count>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2011-04-13 15:17:36 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Committed r83748: &lt;http://trac.webkit.org/changeset/83748&gt;

The new test broke on a bunch of platforms (definitely all the Apple ones).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>89000</attachid>
            <date>2011-04-11 06:22:18 -0700</date>
            <delta_ts>2011-04-12 05:49:38 -0700</delta_ts>
            <desc>Patch.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>6248</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAwMmZjNzU1Li40NDgzYjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEg
QEAKKzIwMTEtMDQtMTEgIFBhdmVsIFBvZGl2aWxvdiAgPHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIElu
c3BlY3RvcjogZml4IHNvdXJjZSBtYXBwaW5nIGZvciBkZW9iZnVzY2F0ZWQgc2NyaXB0cy4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU4MjMxCisKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdEZvcm1hdHRlcldvcmtlci5qczoKKyAg
ICAgICAgKGJ1aWxkTWFwcGluZyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3Vy
Y2VGaWxlLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZU1hcHBpbmcpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlNvdXJjZU1hcHBpbmcucHJvdG90eXBlLnNvdXJjZUxpbmVUb1Njcmlw
dExvY2F0aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VNYXBwaW5nLnByb3RvdHlw
ZS5fc291cmNlTG9jYXRpb25Ub1NjcmlwdExvY2F0aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
cik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRm9ybWF0dGVkU291cmNlTWFwcGluZyk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuRm9ybWF0dGVkU291cmNlTWFwcGluZy5wcm90b3R5cGUuc2NyaXB0
TG9jYXRpb25Ub1NvdXJjZUxpbmUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZvcm1hdHRlZFNv
dXJjZU1hcHBpbmcucHJvdG90eXBlLnNvdXJjZUxpbmVUb1NjcmlwdExvY2F0aW9uKToKKwogMjAx
MS0wNC0wNiAgUGF2ZWwgUG9kaXZpbG92ICA8cG9kaXZpbG92QGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0Rm9ybWF0dGVyV29ya2VyLmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRGb3JtYXR0ZXJXb3JrZXIuanMKaW5k
ZXggY2I1YjY4Ny4uNTM2ZWJkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9TY3JpcHRGb3JtYXR0ZXJXb3JrZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRGb3JtYXR0ZXJXb3JrZXIuanMKQEAgLTUwLDE2ICs1
MCwxOCBAQCBmdW5jdGlvbiBiZWF1dGlmeShzb3VyY2UpCiBmdW5jdGlvbiBidWlsZE1hcHBpbmco
c291cmNlLCBmb3JtYXR0ZWRTb3VyY2UpCiB7CiAgICAgdmFyIG1hcHBpbmcgPSB7IG9yaWdpbmFs
OiBbXSwgZm9ybWF0dGVkOiBbXSB9OwotICAgIHZhciBsYXN0Rm9ybWF0dGVkUG9zaXRpb24gPSAw
OwotICAgIHZhciByZWdleHAgPSAvXGIoPzpmdW5jdGlvbnx2YXJ8Y29uc3R8dHJ5fGNhdGNofHRo
cm93fG5ld3xzd2l0Y2h8YnJlYWt8Y29udGludWV8aWZ8Zm9yfHdoaWxlfGRvfHJldHVybnx3aXRo
fG51bGx8dW5kZWZpbmVkKVxiL2c7CisgICAgdmFyIGxhc3RQb3NpdGlvbiA9IDA7CisgICAgdmFy
IHJlZ2V4cCA9IC9bXlxcXVxiKCg/PVxEKVtcJFwuXHddKylcYi9nOwogICAgIHdoaWxlICh0cnVl
KSB7Ci0gICAgICAgIHZhciBtYXRjaCA9IHJlZ2V4cC5leGVjKHNvdXJjZSk7CisgICAgICAgIHZh
ciBtYXRjaCA9IHJlZ2V4cC5leGVjKGZvcm1hdHRlZFNvdXJjZSk7CiAgICAgICAgIGlmICghbWF0
Y2gpCiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgdmFyIGZvcm1hdHRlZFBvc2l0aW9uID0g
Zm9ybWF0dGVkU291cmNlLmluZGV4T2YobWF0Y2hbMF0sIGxhc3RGb3JtYXR0ZWRQb3NpdGlvbik7
Ci0gICAgICAgIG1hcHBpbmcub3JpZ2luYWwucHVzaChtYXRjaC5pbmRleCk7Ci0gICAgICAgIG1h
cHBpbmcuZm9ybWF0dGVkLnB1c2goZm9ybWF0dGVkUG9zaXRpb24pOwotICAgICAgICBsYXN0Rm9y
bWF0dGVkUG9zaXRpb24gPSBmb3JtYXR0ZWRQb3NpdGlvbiArIG1hdGNoWzBdLmxlbmd0aDsKKyAg
ICAgICAgdmFyIHBvc2l0aW9uID0gc291cmNlLmluZGV4T2YobWF0Y2hbMV0sIGxhc3RQb3NpdGlv
bik7CisgICAgICAgIGlmIChwb3NpdGlvbiA9PT0gLTEpCisgICAgICAgICAgICB0aHJvdyAiTm8g
bWF0Y2ggZm91bmQgaW4gb3JpZ2luYWwgc291cmNlIGZvciAiICsgbWF0Y2hbMV07CisgICAgICAg
IG1hcHBpbmcub3JpZ2luYWwucHVzaChwb3NpdGlvbik7CisgICAgICAgIG1hcHBpbmcuZm9ybWF0
dGVkLnB1c2gobWF0Y2guaW5kZXgpOworICAgICAgICBsYXN0UG9zaXRpb24gPSBwb3NpdGlvbiAr
IG1hdGNoWzBdLmxlbmd0aDsKICAgICB9CiAgICAgcmV0dXJuIG1hcHBpbmc7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZpbGUuanMgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZpbGUuanMKaW5kZXggNzA1
ZmJkYS4uZjVhZDg0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9Tb3VyY2VGaWxlLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvU291cmNlRmlsZS5qcwpAQCAtMjYzLDkgKzI2MywxMCBAQCBXZWJJbnNwZWN0b3IuRm9ybWF0
dGVkU291cmNlRmlsZS5wcm90b3R5cGUgPSB7CiAKIFdlYkluc3BlY3Rvci5Gb3JtYXR0ZWRTb3Vy
Y2VGaWxlLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuU291cmNlRmlsZS5wcm90
b3R5cGU7CiAKLVdlYkluc3BlY3Rvci5Tb3VyY2VNYXBwaW5nID0gZnVuY3Rpb24oc29ydGVkU2Ny
aXB0cykKK1dlYkluc3BlY3Rvci5Tb3VyY2VNYXBwaW5nID0gZnVuY3Rpb24oc2NyaXB0cykKIHsK
LSAgICB0aGlzLl9zb3J0ZWRTY3JpcHRzID0gc29ydGVkU2NyaXB0czsKKyAgICB0aGlzLl9zb3J0
ZWRTY3JpcHRzID0gc2NyaXB0cy5zbGljZSgpOworICAgIHRoaXMuX3NvcnRlZFNjcmlwdHMuc29y
dChmdW5jdGlvbih4LCB5KSB7IHJldHVybiB4LmxpbmVPZmZzZXQgLSB5LmxpbmVPZmZzZXQgfHwg
eC5jb2x1bW5PZmZzZXQgLSB5LmNvbHVtbk9mZnNldDsgfSk7CiB9CiAKIFdlYkluc3BlY3Rvci5T
b3VyY2VNYXBwaW5nLnByb3RvdHlwZSA9IHsKQEAgLTI3Niw3ICsyNzcsMTEgQEAgV2ViSW5zcGVj
dG9yLlNvdXJjZU1hcHBpbmcucHJvdG90eXBlID0gewogCiAgICAgc291cmNlTGluZVRvU2NyaXB0
TG9jYXRpb246IGZ1bmN0aW9uKGxpbmVOdW1iZXIpCiAgICAgewotICAgICAgICB2YXIgY29sdW1u
TnVtYmVyID0gMDsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3NvdXJjZUxvY2F0aW9uVG9TY3JpcHRM
b2NhdGlvbihsaW5lTnVtYmVyLCAwKTsKKyAgICB9LAorCisgICAgX3NvdXJjZUxvY2F0aW9uVG9T
Y3JpcHRMb2NhdGlvbjogZnVuY3Rpb24obGluZU51bWJlciwgY29sdW1uTnVtYmVyKQorICAgIHsK
ICAgICAgICAgdmFyIGNsb3Nlc3RTY3JpcHQgPSB0aGlzLl9zb3J0ZWRTY3JpcHRzWzBdOwogICAg
ICAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRoaXMuX3NvcnRlZFNjcmlwdHMubGVuZ3RoOyArK2kp
IHsKICAgICAgICAgICAgIHNjcmlwdCA9IHRoaXMuX3NvcnRlZFNjcmlwdHNbaV07CkBAIC0yODgs
OSArMjkzLDkgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZU1hcHBpbmcucHJvdG90eXBlID0gewogICAg
IH0KIH0KIAotV2ViSW5zcGVjdG9yLkZvcm1hdHRlZFNvdXJjZU1hcHBpbmcgPSBmdW5jdGlvbihz
b3J0ZWRTY3JpcHRzLCBvcmlnaW5hbFRleHQsIGZvcm1hdHRlZFRleHQsIG1hcHBpbmcpCitXZWJJ
bnNwZWN0b3IuRm9ybWF0dGVkU291cmNlTWFwcGluZyA9IGZ1bmN0aW9uKHNjcmlwdHMsIG9yaWdp
bmFsVGV4dCwgZm9ybWF0dGVkVGV4dCwgbWFwcGluZykKIHsKLSAgICBXZWJJbnNwZWN0b3IuU291
cmNlTWFwcGluZy5jYWxsKHRoaXMsIHNvcnRlZFNjcmlwdHMpOworICAgIFdlYkluc3BlY3Rvci5T
b3VyY2VNYXBwaW5nLmNhbGwodGhpcywgc2NyaXB0cyk7CiAgICAgdGhpcy5fb3JpZ2luYWxMaW5l
RW5kaW5ncyA9IG9yaWdpbmFsVGV4dC5saW5lRW5kaW5ncygpOwogICAgIHRoaXMuX2Zvcm1hdHRl
ZExpbmVFbmRpbmdzID0gZm9ybWF0dGVkVGV4dC5saW5lRW5kaW5ncygpOwogICAgIHRoaXMuX21h
cHBpbmcgPSBtYXBwaW5nOwpAQCAtMzAwLDI3ICszMDUsMTggQEAgV2ViSW5zcGVjdG9yLkZvcm1h
dHRlZFNvdXJjZU1hcHBpbmcucHJvdG90eXBlID0gewogICAgIHNjcmlwdExvY2F0aW9uVG9Tb3Vy
Y2VMaW5lOiBmdW5jdGlvbihsb2NhdGlvbikKICAgICB7CiAgICAgICAgIHZhciBvcmlnaW5hbFBv
c2l0aW9uID0gV2ViSW5zcGVjdG9yLlNjcmlwdEZvcm1hdHRlci5sb2NhdGlvblRvUG9zaXRpb24o
dGhpcy5fb3JpZ2luYWxMaW5lRW5kaW5ncywgbG9jYXRpb24pOwotICAgICAgICB2YXIgZm9ybWF0
dGVkUG9zaXRpb24gPSB0aGlzLl9jb252ZXJ0UG9zaXRpb24odGhpcy5fbWFwcGluZy5vcmlnaW5h
bCwgdGhpcy5fbWFwcGluZy5mb3JtYXR0ZWQsIG9yaWdpbmFsUG9zaXRpb24pOworICAgICAgICB2
YXIgaW5kZXggPSB0aGlzLl9tYXBwaW5nLm9yaWdpbmFsLnVwcGVyQm91bmQob3JpZ2luYWxQb3Np
dGlvbik7CisgICAgICAgIHZhciBmb3JtYXR0ZWRQb3NpdGlvbiA9IHRoaXMuX21hcHBpbmcuZm9y
bWF0dGVkW2luZGV4XTsKICAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5TY3JpcHRGb3JtYXR0
ZXIucG9zaXRpb25Ub0xvY2F0aW9uKHRoaXMuX2Zvcm1hdHRlZExpbmVFbmRpbmdzLCBmb3JtYXR0
ZWRQb3NpdGlvbikubGluZU51bWJlcjsKICAgICB9LAogCiAgICAgc291cmNlTGluZVRvU2NyaXB0
TG9jYXRpb246IGZ1bmN0aW9uKGxpbmVOdW1iZXIpCiAgICAgewogICAgICAgICB2YXIgZm9ybWF0
dGVkUG9zaXRpb24gPSBXZWJJbnNwZWN0b3IuU2NyaXB0Rm9ybWF0dGVyLmxpbmVUb1Bvc2l0aW9u
KHRoaXMuX2Zvcm1hdHRlZExpbmVFbmRpbmdzLCBsaW5lTnVtYmVyKTsKLSAgICAgICAgdmFyIG9y
aWdpbmFsUG9zaXRpb24gPSB0aGlzLl9jb252ZXJ0UG9zaXRpb24odGhpcy5fbWFwcGluZy5mb3Jt
YXR0ZWQsIHRoaXMuX21hcHBpbmcub3JpZ2luYWwsIGZvcm1hdHRlZFBvc2l0aW9uKTsKKyAgICAg
ICAgdmFyIGluZGV4ID0gdGhpcy5fbWFwcGluZy5mb3JtYXR0ZWQudXBwZXJCb3VuZChmb3JtYXR0
ZWRQb3NpdGlvbik7CisgICAgICAgIHZhciBvcmlnaW5hbFBvc2l0aW9uID0gdGhpcy5fbWFwcGlu
Zy5vcmlnaW5hbFtpbmRleF07CiAgICAgICAgIHZhciBvcmlnaW5hbExvY2F0aW9uID0gV2ViSW5z
cGVjdG9yLlNjcmlwdEZvcm1hdHRlci5wb3NpdGlvblRvTG9jYXRpb24odGhpcy5fb3JpZ2luYWxM
aW5lRW5kaW5ncywgb3JpZ2luYWxQb3NpdGlvbik7Ci0gICAgICAgIHJldHVybiBXZWJJbnNwZWN0
b3IuU291cmNlTWFwcGluZy5wcm90b3R5cGUuc291cmNlTGluZVRvU2NyaXB0TG9jYXRpb24uY2Fs
bCh0aGlzLCBvcmlnaW5hbExvY2F0aW9uLmxpbmVOdW1iZXIpOwotICAgIH0sCi0KLSAgICBfY29u
dmVydFBvc2l0aW9uOiBmdW5jdGlvbihwb3NpdGlvbnMxLCBwb3NpdGlvbnMyLCBwb3NpdGlvbikK
LSAgICB7Ci0gICAgICAgIHZhciBpbmRleCA9IHBvc2l0aW9uczEudXBwZXJCb3VuZChwb3NpdGlv
bik7Ci0gICAgICAgIHZhciByYW5nZTEgPSBwb3NpdGlvbnMxW2luZGV4XSAtIHBvc2l0aW9uczFb
aW5kZXggLSAxXTsKLSAgICAgICAgdmFyIHJhbmdlMiA9IHBvc2l0aW9uczJbaW5kZXhdIC0gcG9z
aXRpb25zMltpbmRleCAtIDFdOwotICAgICAgICB2YXIgcG9zaXRpb24yID0gcG9zaXRpb25zMltp
bmRleCAtIDFdOwotICAgICAgICBpZiAocmFuZ2UxKQotICAgICAgICAgICAgcG9zaXRpb24yICs9
IE1hdGgucm91bmQoKHBvc2l0aW9uIC0gcG9zaXRpb25zMVtpbmRleCAtIDFdKSAqIHJhbmdlMiAv
IHJhbmdlMSk7Ci0gICAgICAgIHJldHVybiBwb3NpdGlvbjI7CisgICAgICAgIHJldHVybiBXZWJJ
bnNwZWN0b3IuU291cmNlTWFwcGluZy5wcm90b3R5cGUuX3NvdXJjZUxvY2F0aW9uVG9TY3JpcHRM
b2NhdGlvbi5jYWxsKHRoaXMsIG9yaWdpbmFsTG9jYXRpb24ubGluZU51bWJlciwgb3JpZ2luYWxM
b2NhdGlvbi5jb2x1bW5OdW1iZXIpOwogICAgIH0KIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>89190</attachid>
            <date>2011-04-12 05:49:38 -0700</date>
            <delta_ts>2011-04-12 09:51:25 -0700</delta_ts>
            <desc>Added test.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>11533</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjNmE4OGJhLi4zNmZmZWUyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDQt
MTIgIFBhdmVsIFBvZGl2aWxvdiAgPHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogZml4
IHNvdXJjZSBtYXBwaW5nIGZvciBkZW9iZnVzY2F0ZWQgc2NyaXB0cy4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU4MjMxCisKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZGVidWdnZXIvcmVzb3VyY2VzL29iZnVzY2F0ZWQuanM6IEFkZGVkLgorICAgICAgICAq
IGluc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHQtZm9ybWF0dGVyLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0LWZvcm1hdHRlci5odG1sOgorCiAyMDExLTA0
LTEyICBBbmRyZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5y
ZXZpZXdlZC4gQWRqdXN0ZWQgY2hyb21pdW0gdGVzdCBleHBlY3RhdGlvbnMgKHdlYmdsLW5vbnBy
ZW11bHRpcGxpZWQtYmxlbmQuaHRtbCBjcmFzaGVzIG9uIE1hYyBPUyAxMC42IERFQlVHKQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Jlc291cmNlcy9vYmZ1c2Nh
dGVkLmpzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Jlc291cmNlcy9vYmZ1c2Nh
dGVkLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE1ZWFlNWIKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcmVzb3VyY2VzL29i
ZnVzY2F0ZWQuanMKQEAgLTAsMCArMSwzIEBACit0cnl7dmFyIEpTX1NUQVJUX1RJTUU9KG5ldyBE
YXRlKS5nZXRUaW1lKCksR0xPQkFMUz10b3AuR0xPQkFMUztpZigiWThNNFZINHdkQVkuZW4uIiE9
R0xPQkFMU1s0XSl0b3AubG9jYXRpb24ucmVwbGFjZSh0b3AubG9jYXRpb24uaHJlZi5zcGxpdCgi
IyIpWzBdKTtmdW5jdGlvbiBfQl9sb2coaW1wLG9wdF92YWwpe3ZhciBwPSJpbXA9IitpbXA7aWYo
YXJndW1lbnRzLmxlbmd0aD4xKXArPSImdmFsPSIrb3B0X3ZhbDtfQl9sb2dJbWdfKCJqc2xlIixw
KX12YXIgbG9hZFRpbWVzPVtHTE9CQUxTWzBdLEdMT0JBTFNbMV0sSlNfU1RBUlRfVElNRV07ZnVu
Y3Rpb24gX0JfcmVjb3JkKCl7bG9hZFRpbWVzLnB1c2goKG5ldyBEYXRlKS5nZXRUaW1lKCkpfXZh
ciBfQl90aHVtYlN0eWxlXzsKK2Z1bmN0aW9uIF9CX3Byb2cocGN0KXt0b3BbInByIl09cGN0O2lm
KF9CX3RodW1iU3R5bGVfPT09dW5kZWZpbmVkKXt2YXIgdGh1bWI9dG9wLmRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJscHQiKTtfQl90aHVtYlN0eWxlXz10aHVtYj90aHVtYi5zdHlsZTpudWxsfWlm
KF9CX3RodW1iU3R5bGVfKXtfQl90aHVtYlN0eWxlXy53aWR0aD1NYXRoLnJvdW5kKHBjdCowLjk5
KSsiJSI7aWYocGN0PT0xMDApX0JfdGh1bWJTdHlsZV89bnVsbH19ZnVuY3Rpb24gX0JfZXJyKGUp
e3ZhciBzdGF0ZT1sb2FkVGltZXMuam9pbigiLSIpO19CX2xvZ0ltZ18oImpzZXJyIiwianNzdGF0
ZT0iK2VuY29kZVVSSUNvbXBvbmVudChzdGF0ZSkrIiZqc21zZz0iK2VuY29kZVVSSUNvbXBvbmVu
dChlKSk7X0JfaGFuZGxlRXJyb3IoZSl9ZnVuY3Rpb24gX0JfaGFuZGxlRXJyb3IoZSl7dGhyb3cg
ZTt9CitmdW5jdGlvbiBfQl9sb2dJbWdfKHYscCl7KG5ldyBJbWFnZSkuc3JjPSI/dWk9MiZ2aWV3
PSIrdisiJiIrcCsiJmlrPSIrR0xPQkFMU1s5XSsiJnJhbmRvbT0iKyhuZXcgRGF0ZSkuZ2V0VGlt
ZSgpfXdpbmRvdy5vbmVycm9yPWZ1bmN0aW9uKG1lc3NhZ2UsdXJsLGxpbmUpe19CX2VycihtZXNz
YWdlKX07X0JfcHJvZygxKTt9Y2F0Y2goZSl7fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL3NjcmlwdC1mb3JtYXR0ZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdC1mb3JtYXR0ZXItZXhwZWN0ZWQudHh0CmluZGV4
IDM3OTA4MzcuLjY0ZjU4YzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1
Z2dlci9zY3JpcHQtZm9ybWF0dGVyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvc2NyaXB0LWZvcm1hdHRlci1leHBlY3RlZC50eHQKQEAgLTEsNSArMSw5
IEBACiBUZXN0cyB0aGUgc2NyaXB0IGZvcm1hdHRpbmcgZnVuY3Rpb25hbGl0eS4KIAorRGVidWdn
ZXIgd2FzIGVuYWJsZWQuCiAKIFJ1bm5pbmc6IHRlc3RTY3JpcHRGb3JtYXR0ZXJXb3JrZXIKIAor
UnVubmluZzogdGVzdFNvdXJjZU1hcHBpbmcKK0RlYnVnZ2VyIHdhcyBkaXNhYmxlZC4KKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdC1mb3JtYXR0ZXIu
aHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHQtZm9ybWF0dGVyLmh0
bWwKaW5kZXggNTYzYzdiZC4uZDVkMThlNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2RlYnVnZ2VyL3NjcmlwdC1mb3JtYXR0ZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvc2NyaXB0LWZvcm1hdHRlci5odG1sCkBAIC0yLDI5ICsyLDY4IEBACiA8
aGVhZD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3It
dGVzdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0
b3IvZGVidWdnZXItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL29i
ZnVzY2F0ZWQuanMiPjwvc2NyaXB0PgogCiA8c2NyaXB0PgogCiB2YXIgdGVzdCA9IGZ1bmN0aW9u
KCkKIHsKLSAgICBJbnNwZWN0b3JUZXN0LnJ1blRlc3RTdWl0ZShbCisgICAgdmFyIHdvcmtlciA9
IG5ldyBXb3JrZXIoIlNjcmlwdEZvcm1hdHRlcldvcmtlci5qcyIpOworCisgICAgSW5zcGVjdG9y
VGVzdC5ydW5EZWJ1Z2dlclRlc3RTdWl0ZShbCiAgICAgICAgIGZ1bmN0aW9uIHRlc3RTY3JpcHRG
b3JtYXR0ZXJXb3JrZXIobmV4dCkKICAgICAgICAgewotICAgICAgICAgICAgdmFyIHdvcmtlciA9
IG5ldyBXb3JrZXIoIlNjcmlwdEZvcm1hdHRlcldvcmtlci5qcyIpOwotCiAgICAgICAgICAgICB3
b3JrZXIub25tZXNzYWdlID0gSW5zcGVjdG9yVGVzdC5zYWZlV3JhcChmdW5jdGlvbihldmVudCkK
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFs
cygidmFyIHggPSAwOyIsIGV2ZW50LmRhdGEuZm9ybWF0dGVkU291cmNlKTsKLSAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAgICAgICAgICAgICAgIG5leHQo
KTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgICAgICB3b3JrZXIub25lcnJvciA9IGZ1bmN0
aW9uKGV2ZW50KQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkUmVzdWx0KCJFcnJvciBpbiB3b3JrZXI6ICIgKyBldmVudC5kYXRhKTsKLSAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAgICAgICAgICAgICAgIG5leHQo
KTsKICAgICAgICAgICAgIH07CiAKICAgICAgICAgICAgIHdvcmtlci5wb3N0TWVzc2FnZSgidmFy
IHg9MCIpOworICAgICAgICB9LAorCisgICAgICAgIGZ1bmN0aW9uIHRlc3RTb3VyY2VNYXBwaW5n
KG5leHQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHdvcmtlci5vbm1lc3NhZ2UgPSBJbnNwZWN0
b3JUZXN0LnNhZmVXcmFwKGZ1bmN0aW9uKGV2ZW50KQorICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgIHZhciBzb3VyY2UgPSBXZWJJbnNwZWN0b3IucGFuZWxzLnNjcmlwdHMudmlzaWJsZVZp
ZXcuX2NvbnRlbnQ7CisgICAgICAgICAgICAgICAgdmFyIGZvcm1hdHRlZFNvdXJjZSA9IGV2ZW50
LmRhdGEuZm9ybWF0dGVkU291cmNlOworICAgICAgICAgICAgICAgIHZhciBtYXBwaW5nID0gZXZl
bnQuZGF0YS5tYXBwaW5nOworCisgICAgICAgICAgICAgICAgZnVuY3Rpb24gdGVzdE1hcHBpbmco
c3RyaW5nKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgdmFyIHBvc2l0
aW9uID0gc291cmNlLmluZGV4T2Yoc3RyaW5nKTsKKyAgICAgICAgICAgICAgICAgICAgdmFyIGZv
cm1hdHRlZFBvc2l0aW9uID0gbWFwcGluZy5mb3JtYXR0ZWRbbWFwcGluZy5vcmlnaW5hbC51cHBl
ckJvdW5kKHBvc2l0aW9uIC0gMSldOworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFzc2VydEVxdWFscyhzdHJpbmcsIGZvcm1hdHRlZFNvdXJjZS5zdWJzdHIoZm9ybWF0dGVkUG9z
aXRpb24sIHN0cmluZy5sZW5ndGgpKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
ICAgICB0ZXN0TWFwcGluZygidHJ5Iik7CisgICAgICAgICAgICAgICAgdGVzdE1hcHBpbmcoIkpT
X1NUQVJUX1RJTUUiKTsKKyAgICAgICAgICAgICAgICB0ZXN0TWFwcGluZygiZnVuY3Rpb24gX0Jf
bG9nSW1nXyIpOworICAgICAgICAgICAgICAgIHRlc3RNYXBwaW5nKCJfQl90aHVtYlN0eWxlXy53
aWR0aCIpOworICAgICAgICAgICAgICAgIHRlc3RNYXBwaW5nKCJjYXRjaCIpOworCisgICAgICAg
ICAgICAgICAgbmV4dCgpOworICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIHdvcmtlci5v
bmVycm9yID0gZnVuY3Rpb24oZXZlbnQpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkVycm9yIGluIHdvcmtlcjogIiArIGV2ZW50LmRhdGEp
OworICAgICAgICAgICAgICAgIG5leHQoKTsKKyAgICAgICAgICAgIH07CisKKyAgICAgICAgICAg
IEluc3BlY3RvclRlc3Quc2hvd1NjcmlwdFNvdXJjZSgib2JmdXNjYXRlZC5qcyIsIGRpZFNob3dT
Y3JpcHRTb3VyY2UpOworCisgICAgICAgICAgICBmdW5jdGlvbiBkaWRTaG93U2NyaXB0U291cmNl
KHNvdXJjZUZyYW1lKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHdvcmtlci5wb3N0
TWVzc2FnZShzb3VyY2VGcmFtZS5fY29udGVudCk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0K
ICAgICBdKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiNWY2NmRlLi4wMjI1Zjg5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjEgQEAKKzIwMTEtMDQtMTIgIFBhdmVsIFBvZGl2aWxvdiAgPHBvZGl2aWxvdkBj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgV2ViIEluc3BlY3RvcjogZml4IHNvdXJjZSBtYXBwaW5nIGZvciBkZW9iZnVzY2F0ZWQg
c2NyaXB0cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTU4MjMxCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdEZvcm1hdHRlcldv
cmtlci5qczoKKyAgICAgICAgKGJ1aWxkTWFwcGluZyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9Tb3VyY2VGaWxlLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZU1hcHBp
bmcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZU1hcHBpbmcucHJvdG90eXBlLnNvdXJj
ZUxpbmVUb1NjcmlwdExvY2F0aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VNYXBw
aW5nLnByb3RvdHlwZS5fc291cmNlTG9jYXRpb25Ub1NjcmlwdExvY2F0aW9uKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRm9ybWF0dGVkU291cmNlTWFw
cGluZyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRm9ybWF0dGVkU291cmNlTWFwcGluZy5wcm90
b3R5cGUuc2NyaXB0TG9jYXRpb25Ub1NvdXJjZUxpbmUpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkZvcm1hdHRlZFNvdXJjZU1hcHBpbmcucHJvdG90eXBlLnNvdXJjZUxpbmVUb1NjcmlwdExvY2F0
aW9uKToKKwogMjAxMS0wNC0wNiAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRGb3JtYXR0ZXJXb3JrZXIu
anMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdEZvcm1hdHRlcldv
cmtlci5qcwppbmRleCBjYjViNjg3Li5hYjY4NTI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdEZvcm1hdHRlcldvcmtlci5qcworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdEZvcm1hdHRlcldvcmtlci5qcwpA
QCAtNTAsMTYgKzUwLDE4IEBAIGZ1bmN0aW9uIGJlYXV0aWZ5KHNvdXJjZSkKIGZ1bmN0aW9uIGJ1
aWxkTWFwcGluZyhzb3VyY2UsIGZvcm1hdHRlZFNvdXJjZSkKIHsKICAgICB2YXIgbWFwcGluZyA9
IHsgb3JpZ2luYWw6IFtdLCBmb3JtYXR0ZWQ6IFtdIH07Ci0gICAgdmFyIGxhc3RGb3JtYXR0ZWRQ
b3NpdGlvbiA9IDA7Ci0gICAgdmFyIHJlZ2V4cCA9IC9cYig/OmZ1bmN0aW9ufHZhcnxjb25zdHx0
cnl8Y2F0Y2h8dGhyb3d8bmV3fHN3aXRjaHxicmVha3xjb250aW51ZXxpZnxmb3J8d2hpbGV8ZG98
cmV0dXJufHdpdGh8bnVsbHx1bmRlZmluZWQpXGIvZzsKKyAgICB2YXIgbGFzdFBvc2l0aW9uID0g
MDsKKyAgICB2YXIgcmVnZXhwID0gLyhefFteXFxdKVxiKCg/PVxEKVtcJFwuXHddKylcYi9nOwog
ICAgIHdoaWxlICh0cnVlKSB7Ci0gICAgICAgIHZhciBtYXRjaCA9IHJlZ2V4cC5leGVjKHNvdXJj
ZSk7CisgICAgICAgIHZhciBtYXRjaCA9IHJlZ2V4cC5leGVjKGZvcm1hdHRlZFNvdXJjZSk7CiAg
ICAgICAgIGlmICghbWF0Y2gpCiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgdmFyIGZvcm1h
dHRlZFBvc2l0aW9uID0gZm9ybWF0dGVkU291cmNlLmluZGV4T2YobWF0Y2hbMF0sIGxhc3RGb3Jt
YXR0ZWRQb3NpdGlvbik7Ci0gICAgICAgIG1hcHBpbmcub3JpZ2luYWwucHVzaChtYXRjaC5pbmRl
eCk7Ci0gICAgICAgIG1hcHBpbmcuZm9ybWF0dGVkLnB1c2goZm9ybWF0dGVkUG9zaXRpb24pOwot
ICAgICAgICBsYXN0Rm9ybWF0dGVkUG9zaXRpb24gPSBmb3JtYXR0ZWRQb3NpdGlvbiArIG1hdGNo
WzBdLmxlbmd0aDsKKyAgICAgICAgdmFyIHBvc2l0aW9uID0gc291cmNlLmluZGV4T2YobWF0Y2hb
Ml0sIGxhc3RQb3NpdGlvbik7CisgICAgICAgIGlmIChwb3NpdGlvbiA9PT0gLTEpCisgICAgICAg
ICAgICB0aHJvdyAiTm8gbWF0Y2ggZm91bmQgaW4gb3JpZ2luYWwgc291cmNlIGZvciAiICsgbWF0
Y2hbMl07CisgICAgICAgIG1hcHBpbmcub3JpZ2luYWwucHVzaChwb3NpdGlvbik7CisgICAgICAg
IG1hcHBpbmcuZm9ybWF0dGVkLnB1c2gobWF0Y2guaW5kZXggKyBtYXRjaFsxXS5sZW5ndGgpOwor
ICAgICAgICBsYXN0UG9zaXRpb24gPSBwb3NpdGlvbiArIG1hdGNoWzJdLmxlbmd0aDsKICAgICB9
CiAgICAgcmV0dXJuIG1hcHBpbmc7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZpbGUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1NvdXJjZUZpbGUuanMKaW5kZXggNzA1ZmJkYS4uZmUwZDAyNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGaWxlLmpzCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRmlsZS5qcwpAQCAtMjYz
LDkgKzI2MywxMCBAQCBXZWJJbnNwZWN0b3IuRm9ybWF0dGVkU291cmNlRmlsZS5wcm90b3R5cGUg
PSB7CiAKIFdlYkluc3BlY3Rvci5Gb3JtYXR0ZWRTb3VyY2VGaWxlLnByb3RvdHlwZS5fX3Byb3Rv
X18gPSBXZWJJbnNwZWN0b3IuU291cmNlRmlsZS5wcm90b3R5cGU7CiAKLVdlYkluc3BlY3Rvci5T
b3VyY2VNYXBwaW5nID0gZnVuY3Rpb24oc29ydGVkU2NyaXB0cykKK1dlYkluc3BlY3Rvci5Tb3Vy
Y2VNYXBwaW5nID0gZnVuY3Rpb24oc2NyaXB0cykKIHsKLSAgICB0aGlzLl9zb3J0ZWRTY3JpcHRz
ID0gc29ydGVkU2NyaXB0czsKKyAgICB0aGlzLl9zb3J0ZWRTY3JpcHRzID0gc2NyaXB0cy5zbGlj
ZSgpOworICAgIHRoaXMuX3NvcnRlZFNjcmlwdHMuc29ydChmdW5jdGlvbih4LCB5KSB7IHJldHVy
biB4LmxpbmVPZmZzZXQgLSB5LmxpbmVPZmZzZXQgfHwgeC5jb2x1bW5PZmZzZXQgLSB5LmNvbHVt
bk9mZnNldDsgfSk7CiB9CiAKIFdlYkluc3BlY3Rvci5Tb3VyY2VNYXBwaW5nLnByb3RvdHlwZSA9
IHsKQEAgLTI3Niw3ICsyNzcsMTEgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZU1hcHBpbmcucHJvdG90
eXBlID0gewogCiAgICAgc291cmNlTGluZVRvU2NyaXB0TG9jYXRpb246IGZ1bmN0aW9uKGxpbmVO
dW1iZXIpCiAgICAgewotICAgICAgICB2YXIgY29sdW1uTnVtYmVyID0gMDsKKyAgICAgICAgcmV0
dXJuIHRoaXMuX3NvdXJjZUxvY2F0aW9uVG9TY3JpcHRMb2NhdGlvbihsaW5lTnVtYmVyLCAwKTsK
KyAgICB9LAorCisgICAgX3NvdXJjZUxvY2F0aW9uVG9TY3JpcHRMb2NhdGlvbjogZnVuY3Rpb24o
bGluZU51bWJlciwgY29sdW1uTnVtYmVyKQorICAgIHsKICAgICAgICAgdmFyIGNsb3Nlc3RTY3Jp
cHQgPSB0aGlzLl9zb3J0ZWRTY3JpcHRzWzBdOwogICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8
IHRoaXMuX3NvcnRlZFNjcmlwdHMubGVuZ3RoOyArK2kpIHsKICAgICAgICAgICAgIHNjcmlwdCA9
IHRoaXMuX3NvcnRlZFNjcmlwdHNbaV07CkBAIC0yODgsOSArMjkzLDkgQEAgV2ViSW5zcGVjdG9y
LlNvdXJjZU1hcHBpbmcucHJvdG90eXBlID0gewogICAgIH0KIH0KIAotV2ViSW5zcGVjdG9yLkZv
cm1hdHRlZFNvdXJjZU1hcHBpbmcgPSBmdW5jdGlvbihzb3J0ZWRTY3JpcHRzLCBvcmlnaW5hbFRl
eHQsIGZvcm1hdHRlZFRleHQsIG1hcHBpbmcpCitXZWJJbnNwZWN0b3IuRm9ybWF0dGVkU291cmNl
TWFwcGluZyA9IGZ1bmN0aW9uKHNjcmlwdHMsIG9yaWdpbmFsVGV4dCwgZm9ybWF0dGVkVGV4dCwg
bWFwcGluZykKIHsKLSAgICBXZWJJbnNwZWN0b3IuU291cmNlTWFwcGluZy5jYWxsKHRoaXMsIHNv
cnRlZFNjcmlwdHMpOworICAgIFdlYkluc3BlY3Rvci5Tb3VyY2VNYXBwaW5nLmNhbGwodGhpcywg
c2NyaXB0cyk7CiAgICAgdGhpcy5fb3JpZ2luYWxMaW5lRW5kaW5ncyA9IG9yaWdpbmFsVGV4dC5s
aW5lRW5kaW5ncygpOwogICAgIHRoaXMuX2Zvcm1hdHRlZExpbmVFbmRpbmdzID0gZm9ybWF0dGVk
VGV4dC5saW5lRW5kaW5ncygpOwogICAgIHRoaXMuX21hcHBpbmcgPSBtYXBwaW5nOwpAQCAtMzAw
LDI3ICszMDUsMTggQEAgV2ViSW5zcGVjdG9yLkZvcm1hdHRlZFNvdXJjZU1hcHBpbmcucHJvdG90
eXBlID0gewogICAgIHNjcmlwdExvY2F0aW9uVG9Tb3VyY2VMaW5lOiBmdW5jdGlvbihsb2NhdGlv
bikKICAgICB7CiAgICAgICAgIHZhciBvcmlnaW5hbFBvc2l0aW9uID0gV2ViSW5zcGVjdG9yLlNj
cmlwdEZvcm1hdHRlci5sb2NhdGlvblRvUG9zaXRpb24odGhpcy5fb3JpZ2luYWxMaW5lRW5kaW5n
cywgbG9jYXRpb24pOwotICAgICAgICB2YXIgZm9ybWF0dGVkUG9zaXRpb24gPSB0aGlzLl9jb252
ZXJ0UG9zaXRpb24odGhpcy5fbWFwcGluZy5vcmlnaW5hbCwgdGhpcy5fbWFwcGluZy5mb3JtYXR0
ZWQsIG9yaWdpbmFsUG9zaXRpb24pOworICAgICAgICB2YXIgaW5kZXggPSB0aGlzLl9tYXBwaW5n
Lm9yaWdpbmFsLnVwcGVyQm91bmQob3JpZ2luYWxQb3NpdGlvbiAtIDEpOworICAgICAgICB2YXIg
Zm9ybWF0dGVkUG9zaXRpb24gPSB0aGlzLl9tYXBwaW5nLmZvcm1hdHRlZFtpbmRleF07CiAgICAg
ICAgIHJldHVybiBXZWJJbnNwZWN0b3IuU2NyaXB0Rm9ybWF0dGVyLnBvc2l0aW9uVG9Mb2NhdGlv
bih0aGlzLl9mb3JtYXR0ZWRMaW5lRW5kaW5ncywgZm9ybWF0dGVkUG9zaXRpb24pLmxpbmVOdW1i
ZXI7CiAgICAgfSwKIAogICAgIHNvdXJjZUxpbmVUb1NjcmlwdExvY2F0aW9uOiBmdW5jdGlvbihs
aW5lTnVtYmVyKQogICAgIHsKICAgICAgICAgdmFyIGZvcm1hdHRlZFBvc2l0aW9uID0gV2ViSW5z
cGVjdG9yLlNjcmlwdEZvcm1hdHRlci5saW5lVG9Qb3NpdGlvbih0aGlzLl9mb3JtYXR0ZWRMaW5l
RW5kaW5ncywgbGluZU51bWJlcik7Ci0gICAgICAgIHZhciBvcmlnaW5hbFBvc2l0aW9uID0gdGhp
cy5fY29udmVydFBvc2l0aW9uKHRoaXMuX21hcHBpbmcuZm9ybWF0dGVkLCB0aGlzLl9tYXBwaW5n
Lm9yaWdpbmFsLCBmb3JtYXR0ZWRQb3NpdGlvbik7CisgICAgICAgIHZhciBpbmRleCA9IHRoaXMu
X21hcHBpbmcuZm9ybWF0dGVkLnVwcGVyQm91bmQoZm9ybWF0dGVkUG9zaXRpb24gLSAxKTsKKyAg
ICAgICAgdmFyIG9yaWdpbmFsUG9zaXRpb24gPSB0aGlzLl9tYXBwaW5nLm9yaWdpbmFsW2luZGV4
XTsKICAgICAgICAgdmFyIG9yaWdpbmFsTG9jYXRpb24gPSBXZWJJbnNwZWN0b3IuU2NyaXB0Rm9y
bWF0dGVyLnBvc2l0aW9uVG9Mb2NhdGlvbih0aGlzLl9vcmlnaW5hbExpbmVFbmRpbmdzLCBvcmln
aW5hbFBvc2l0aW9uKTsKLSAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5Tb3VyY2VNYXBwaW5n
LnByb3RvdHlwZS5zb3VyY2VMaW5lVG9TY3JpcHRMb2NhdGlvbi5jYWxsKHRoaXMsIG9yaWdpbmFs
TG9jYXRpb24ubGluZU51bWJlcik7Ci0gICAgfSwKLQotICAgIF9jb252ZXJ0UG9zaXRpb246IGZ1
bmN0aW9uKHBvc2l0aW9uczEsIHBvc2l0aW9uczIsIHBvc2l0aW9uKQotICAgIHsKLSAgICAgICAg
dmFyIGluZGV4ID0gcG9zaXRpb25zMS51cHBlckJvdW5kKHBvc2l0aW9uKTsKLSAgICAgICAgdmFy
IHJhbmdlMSA9IHBvc2l0aW9uczFbaW5kZXhdIC0gcG9zaXRpb25zMVtpbmRleCAtIDFdOwotICAg
ICAgICB2YXIgcmFuZ2UyID0gcG9zaXRpb25zMltpbmRleF0gLSBwb3NpdGlvbnMyW2luZGV4IC0g
MV07Ci0gICAgICAgIHZhciBwb3NpdGlvbjIgPSBwb3NpdGlvbnMyW2luZGV4IC0gMV07Ci0gICAg
ICAgIGlmIChyYW5nZTEpCi0gICAgICAgICAgICBwb3NpdGlvbjIgKz0gTWF0aC5yb3VuZCgocG9z
aXRpb24gLSBwb3NpdGlvbnMxW2luZGV4IC0gMV0pICogcmFuZ2UyIC8gcmFuZ2UxKTsKLSAgICAg
ICAgcmV0dXJuIHBvc2l0aW9uMjsKKyAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5Tb3VyY2VN
YXBwaW5nLnByb3RvdHlwZS5fc291cmNlTG9jYXRpb25Ub1NjcmlwdExvY2F0aW9uLmNhbGwodGhp
cywgb3JpZ2luYWxMb2NhdGlvbi5saW5lTnVtYmVyLCBvcmlnaW5hbExvY2F0aW9uLmNvbHVtbk51
bWJlcik7CiAgICAgfQogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>89220</attachid>
            <date>2011-04-12 09:51:25 -0700</date>
            <delta_ts>2011-04-12 09:53:37 -0700</delta_ts>
            <desc>Add test.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>11505</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwMWU1NThhLi44N2ZlNWJlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDQt
MTIgIFBhdmVsIFBvZGl2aWxvdiAgPHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogZml4
IHNvdXJjZSBtYXBwaW5nIGZvciBkZW9iZnVzY2F0ZWQgc2NyaXB0cy4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU4MjMxCisKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZGVidWdnZXIvcmVzb3VyY2VzL29iZnVzY2F0ZWQuanM6IEFkZGVkLgorICAgICAgICAq
IGluc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHQtZm9ybWF0dGVyLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0LWZvcm1hdHRlci5odG1sOgorCiAyMDExLTA0
LTEyICBBZGFtIFJvYmVuICA8YXJvYmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgV2luZG93
cyBleHBlY3RlZCBmYWlsdXJlIHJlc3VsdHMgZm9yIGEgbmV3IHRlc3QKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJjZXMvb2JmdXNjYXRlZC5qcyBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJjZXMvb2JmdXNjYXRlZC5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjZhNDczCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Jlc291cmNlcy9vYmZ1c2NhdGVkLmpz
CkBAIC0wLDAgKzEsNCBAQAorb25tZXNzYWdlPWZ1bmN0aW9uKGV2ZW50KXt2YXIgc291cmNlPWV2
ZW50LmRhdGE7dmFyIGZvcm1hdHRlZFNvdXJjZT1iZWF1dGlmeShzb3VyY2UpO3ZhciBtYXBwaW5n
PWJ1aWxkTWFwcGluZyhzb3VyY2UsZm9ybWF0dGVkU291cmNlKTtwb3N0TWVzc2FnZSh7Zm9ybWF0
dGVkU291cmNlOmZvcm1hdHRlZFNvdXJjZSxtYXBwaW5nOm1hcHBpbmd9KX07ZnVuY3Rpb24gYmVh
dXRpZnkoc291cmNlKXt2YXIgYXN0PXBhcnNlLnBhcnNlKHNvdXJjZSk7dmFyIGJlYXV0aWZ5T3B0
aW9ucz0KK3tpbmRlbnRfbGV2ZWw6NCxpbmRlbnRfc3RhcnQ6MCxxdW90ZV9rZXlzOmZhbHNlLHNw
YWNlX2NvbG9uOmZhbHNlfTtyZXR1cm4gcHJvY2Vzcy5nZW5fY29kZShhc3QsYmVhdXRpZnlPcHRp
b25zKX1mdW5jdGlvbiBidWlsZE1hcHBpbmcoc291cmNlLGZvcm1hdHRlZFNvdXJjZSl7dmFyIG1h
cHBpbmc9e29yaWdpbmFsOltdLGZvcm1hdHRlZDpbXX07dmFyIGxhc3RQb3NpdGlvbj0wO3ZhciBy
ZWdleHA9LyhefFteXFxdKVxiKCg/PVxEKVtcJFwuXHddKylcYi9nO3doaWxlKHRydWUpCit7dmFy
IG1hdGNoPXJlZ2V4cC5leGVjKGZvcm1hdHRlZFNvdXJjZSk7aWYoIW1hdGNoKWJyZWFrO3ZhciBw
b3NpdGlvbj1zb3VyY2UuaW5kZXhPZihtYXRjaFsyXSxsYXN0UG9zaXRpb24pO2lmKHBvc2l0aW9u
PT09LTEpdGhyb3ciTm8gbWF0Y2ggZm91bmQgaW4gb3JpZ2luYWwgc291cmNlIGZvciAiK21hdGNo
WzJdO21hcHBpbmcub3JpZ2luYWwucHVzaChwb3NpdGlvbik7bWFwcGluZy5mb3JtYXR0ZWQucHVz
aChtYXRjaC5pbmRleCttYXRjaFsxXS5sZW5ndGgpOworbGFzdFBvc2l0aW9uPXBvc2l0aW9uK21h
dGNoWzJdLmxlbmd0aH1yZXR1cm4gbWFwcGluZ31mdW5jdGlvbiByZXF1aXJlKCl7cmV0dXJuIHBh
cnNlfXZhciBleHBvcnRzPXt9O2ltcG9ydFNjcmlwdHMoIlVnbGlmeUpTL3BhcnNlLWpzLmpzIik7
dmFyIHBhcnNlPWV4cG9ydHM7dmFyIGV4cG9ydHM9e307aW1wb3J0U2NyaXB0cygiVWdsaWZ5SlMv
cHJvY2Vzcy5qcyIpO3ZhciBwcm9jZXNzPWV4cG9ydHM7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdC1m
b3JtYXR0ZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Nj
cmlwdC1mb3JtYXR0ZXItZXhwZWN0ZWQudHh0CmluZGV4IDM3OTA4MzcuLjY0ZjU4YzAgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHQtZm9ybWF0dGVyLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0LWZv
cm1hdHRlci1leHBlY3RlZC50eHQKQEAgLTEsNSArMSw5IEBACiBUZXN0cyB0aGUgc2NyaXB0IGZv
cm1hdHRpbmcgZnVuY3Rpb25hbGl0eS4KIAorRGVidWdnZXIgd2FzIGVuYWJsZWQuCiAKIFJ1bm5p
bmc6IHRlc3RTY3JpcHRGb3JtYXR0ZXJXb3JrZXIKIAorUnVubmluZzogdGVzdFNvdXJjZU1hcHBp
bmcKK0RlYnVnZ2VyIHdhcyBkaXNhYmxlZC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL3NjcmlwdC1mb3JtYXR0ZXIuaHRtbCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci9zY3JpcHQtZm9ybWF0dGVyLmh0bWwKaW5kZXggNTYzYzdiZC4uMzgxM2Zj
MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdC1mb3Jt
YXR0ZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0LWZv
cm1hdHRlci5odG1sCkBAIC0yLDI5ICsyLDY4IEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSIuLi8u
Li9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXItdGVzdC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL29iZnVzY2F0ZWQuanMiPjwvc2NyaXB0Pgog
CiA8c2NyaXB0PgogCiB2YXIgdGVzdCA9IGZ1bmN0aW9uKCkKIHsKLSAgICBJbnNwZWN0b3JUZXN0
LnJ1blRlc3RTdWl0ZShbCisgICAgdmFyIHdvcmtlciA9IG5ldyBXb3JrZXIoIlNjcmlwdEZvcm1h
dHRlcldvcmtlci5qcyIpOworCisgICAgSW5zcGVjdG9yVGVzdC5ydW5EZWJ1Z2dlclRlc3RTdWl0
ZShbCiAgICAgICAgIGZ1bmN0aW9uIHRlc3RTY3JpcHRGb3JtYXR0ZXJXb3JrZXIobmV4dCkKICAg
ICAgICAgewotICAgICAgICAgICAgdmFyIHdvcmtlciA9IG5ldyBXb3JrZXIoIlNjcmlwdEZvcm1h
dHRlcldvcmtlci5qcyIpOwotCiAgICAgICAgICAgICB3b3JrZXIub25tZXNzYWdlID0gSW5zcGVj
dG9yVGVzdC5zYWZlV3JhcChmdW5jdGlvbihldmVudCkKICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscygidmFyIHggPSAwOyIsIGV2ZW50LmRh
dGEuZm9ybWF0dGVkU291cmNlKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBs
ZXRlVGVzdCgpOworICAgICAgICAgICAgICAgIG5leHQoKTsKICAgICAgICAgICAgIH0pOwogCiAg
ICAgICAgICAgICB3b3JrZXIub25lcnJvciA9IGZ1bmN0aW9uKGV2ZW50KQogICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJFcnJvciBpbiB3b3Jr
ZXI6ICIgKyBldmVudC5kYXRhKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBs
ZXRlVGVzdCgpOworICAgICAgICAgICAgICAgIG5leHQoKTsKICAgICAgICAgICAgIH07CiAKICAg
ICAgICAgICAgIHdvcmtlci5wb3N0TWVzc2FnZSgidmFyIHg9MCIpOworICAgICAgICB9LAorCisg
ICAgICAgIGZ1bmN0aW9uIHRlc3RTb3VyY2VNYXBwaW5nKG5leHQpCisgICAgICAgIHsKKyAgICAg
ICAgICAgIHdvcmtlci5vbm1lc3NhZ2UgPSBJbnNwZWN0b3JUZXN0LnNhZmVXcmFwKGZ1bmN0aW9u
KGV2ZW50KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHZhciBzb3VyY2UgPSBXZWJJ
bnNwZWN0b3IucGFuZWxzLnNjcmlwdHMudmlzaWJsZVZpZXcuX2NvbnRlbnQ7CisgICAgICAgICAg
ICAgICAgdmFyIGZvcm1hdHRlZFNvdXJjZSA9IGV2ZW50LmRhdGEuZm9ybWF0dGVkU291cmNlOwor
ICAgICAgICAgICAgICAgIHZhciBtYXBwaW5nID0gZXZlbnQuZGF0YS5tYXBwaW5nOworCisgICAg
ICAgICAgICAgICAgZnVuY3Rpb24gdGVzdE1hcHBpbmcoc3RyaW5nKQorICAgICAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICAgICAgdmFyIHBvc2l0aW9uID0gc291cmNlLmluZGV4T2Yoc3Ry
aW5nKTsKKyAgICAgICAgICAgICAgICAgICAgdmFyIGZvcm1hdHRlZFBvc2l0aW9uID0gbWFwcGlu
Zy5mb3JtYXR0ZWRbbWFwcGluZy5vcmlnaW5hbC51cHBlckJvdW5kKHBvc2l0aW9uIC0gMSldOwor
ICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyhzdHJpbmcsIGZv
cm1hdHRlZFNvdXJjZS5zdWJzdHIoZm9ybWF0dGVkUG9zaXRpb24sIHN0cmluZy5sZW5ndGgpKTsK
KyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICB0ZXN0TWFwcGluZygib25tZXNz
YWdlIik7CisgICAgICAgICAgICAgICAgdGVzdE1hcHBpbmcoImluZGVudF9zdGFydCIpOworICAg
ICAgICAgICAgICAgIHRlc3RNYXBwaW5nKCJmdW5jdGlvbiByZXF1aXJlIik7CisgICAgICAgICAg
ICAgICAgdGVzdE1hcHBpbmcoInZhciByZWdleHAiKTsKKyAgICAgICAgICAgICAgICB0ZXN0TWFw
cGluZygiaW1wb3J0U2NyaXB0cyIpOworCisgICAgICAgICAgICAgICAgbmV4dCgpOworICAgICAg
ICAgICAgfSk7CisKKyAgICAgICAgICAgIHdvcmtlci5vbmVycm9yID0gZnVuY3Rpb24oZXZlbnQp
CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
IkVycm9yIGluIHdvcmtlcjogIiArIGV2ZW50LmRhdGEpOworICAgICAgICAgICAgICAgIG5leHQo
KTsKKyAgICAgICAgICAgIH07CisKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2hvd1Njcmlw
dFNvdXJjZSgib2JmdXNjYXRlZC5qcyIsIGRpZFNob3dTY3JpcHRTb3VyY2UpOworCisgICAgICAg
ICAgICBmdW5jdGlvbiBkaWRTaG93U2NyaXB0U291cmNlKHNvdXJjZUZyYW1lKQorICAgICAgICAg
ICAgeworICAgICAgICAgICAgICAgIHdvcmtlci5wb3N0TWVzc2FnZShzb3VyY2VGcmFtZS5fY29u
dGVudCk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICBdKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCA4NjM3NDIxLi4zNTY3MmJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDQt
MTIgIFBhdmVsIFBvZGl2aWxvdiAgPHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogZml4
IHNvdXJjZSBtYXBwaW5nIGZvciBkZW9iZnVzY2F0ZWQgc2NyaXB0cy4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU4MjMxCisKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZnJvbnQtZW5kL1NjcmlwdEZvcm1hdHRlcldvcmtlci5qczoKKyAgICAgICAgKGJ1aWxk
TWFwcGluZyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGaWxlLmpzOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZU1hcHBpbmcpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlNvdXJjZU1hcHBpbmcucHJvdG90eXBlLnNvdXJjZUxpbmVUb1NjcmlwdExvY2F0aW9uKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VNYXBwaW5nLnByb3RvdHlwZS5fc291cmNlTG9j
YXRpb25Ub1NjcmlwdExvY2F0aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvcik6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuRm9ybWF0dGVkU291cmNlTWFwcGluZyk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuRm9ybWF0dGVkU291cmNlTWFwcGluZy5wcm90b3R5cGUuc2NyaXB0TG9jYXRpb25Ub1Nv
dXJjZUxpbmUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZvcm1hdHRlZFNvdXJjZU1hcHBpbmcu
cHJvdG90eXBlLnNvdXJjZUxpbmVUb1NjcmlwdExvY2F0aW9uKToKKwogMjAxMS0wNC0xMiAgQ2hy
aXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IERhbiBCZXJuc3RlaW4uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1NjcmlwdEZvcm1hdHRlcldvcmtlci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvU2NyaXB0Rm9ybWF0dGVyV29ya2VyLmpzCmluZGV4IGNiNWI2ODcuLmFiNjg1
MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0
Rm9ybWF0dGVyV29ya2VyLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvU2NyaXB0Rm9ybWF0dGVyV29ya2VyLmpzCkBAIC01MCwxNiArNTAsMTggQEAgZnVuY3Rpb24g
YmVhdXRpZnkoc291cmNlKQogZnVuY3Rpb24gYnVpbGRNYXBwaW5nKHNvdXJjZSwgZm9ybWF0dGVk
U291cmNlKQogewogICAgIHZhciBtYXBwaW5nID0geyBvcmlnaW5hbDogW10sIGZvcm1hdHRlZDog
W10gfTsKLSAgICB2YXIgbGFzdEZvcm1hdHRlZFBvc2l0aW9uID0gMDsKLSAgICB2YXIgcmVnZXhw
ID0gL1xiKD86ZnVuY3Rpb258dmFyfGNvbnN0fHRyeXxjYXRjaHx0aHJvd3xuZXd8c3dpdGNofGJy
ZWFrfGNvbnRpbnVlfGlmfGZvcnx3aGlsZXxkb3xyZXR1cm58d2l0aHxudWxsfHVuZGVmaW5lZClc
Yi9nOworICAgIHZhciBsYXN0UG9zaXRpb24gPSAwOworICAgIHZhciByZWdleHAgPSAvKF58W15c
XF0pXGIoKD89XEQpW1wkXC5cd10rKVxiL2c7CiAgICAgd2hpbGUgKHRydWUpIHsKLSAgICAgICAg
dmFyIG1hdGNoID0gcmVnZXhwLmV4ZWMoc291cmNlKTsKKyAgICAgICAgdmFyIG1hdGNoID0gcmVn
ZXhwLmV4ZWMoZm9ybWF0dGVkU291cmNlKTsKICAgICAgICAgaWYgKCFtYXRjaCkKICAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICB2YXIgZm9ybWF0dGVkUG9zaXRpb24gPSBmb3JtYXR0ZWRTb3Vy
Y2UuaW5kZXhPZihtYXRjaFswXSwgbGFzdEZvcm1hdHRlZFBvc2l0aW9uKTsKLSAgICAgICAgbWFw
cGluZy5vcmlnaW5hbC5wdXNoKG1hdGNoLmluZGV4KTsKLSAgICAgICAgbWFwcGluZy5mb3JtYXR0
ZWQucHVzaChmb3JtYXR0ZWRQb3NpdGlvbik7Ci0gICAgICAgIGxhc3RGb3JtYXR0ZWRQb3NpdGlv
biA9IGZvcm1hdHRlZFBvc2l0aW9uICsgbWF0Y2hbMF0ubGVuZ3RoOworICAgICAgICB2YXIgcG9z
aXRpb24gPSBzb3VyY2UuaW5kZXhPZihtYXRjaFsyXSwgbGFzdFBvc2l0aW9uKTsKKyAgICAgICAg
aWYgKHBvc2l0aW9uID09PSAtMSkKKyAgICAgICAgICAgIHRocm93ICJObyBtYXRjaCBmb3VuZCBp
biBvcmlnaW5hbCBzb3VyY2UgZm9yICIgKyBtYXRjaFsyXTsKKyAgICAgICAgbWFwcGluZy5vcmln
aW5hbC5wdXNoKHBvc2l0aW9uKTsKKyAgICAgICAgbWFwcGluZy5mb3JtYXR0ZWQucHVzaChtYXRj
aC5pbmRleCArIG1hdGNoWzFdLmxlbmd0aCk7CisgICAgICAgIGxhc3RQb3NpdGlvbiA9IHBvc2l0
aW9uICsgbWF0Y2hbMl0ubGVuZ3RoOwogICAgIH0KICAgICByZXR1cm4gbWFwcGluZzsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRmlsZS5q
cyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRmlsZS5qcwppbmRl
eCA3MDVmYmRhLi5mZTBkMDI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1NvdXJjZUZpbGUuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9Tb3VyY2VGaWxlLmpzCkBAIC0yNjMsOSArMjYzLDEwIEBAIFdlYkluc3BlY3Rvci5G
b3JtYXR0ZWRTb3VyY2VGaWxlLnByb3RvdHlwZSA9IHsKIAogV2ViSW5zcGVjdG9yLkZvcm1hdHRl
ZFNvdXJjZUZpbGUucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5Tb3VyY2VGaWxl
LnByb3RvdHlwZTsKIAotV2ViSW5zcGVjdG9yLlNvdXJjZU1hcHBpbmcgPSBmdW5jdGlvbihzb3J0
ZWRTY3JpcHRzKQorV2ViSW5zcGVjdG9yLlNvdXJjZU1hcHBpbmcgPSBmdW5jdGlvbihzY3JpcHRz
KQogewotICAgIHRoaXMuX3NvcnRlZFNjcmlwdHMgPSBzb3J0ZWRTY3JpcHRzOworICAgIHRoaXMu
X3NvcnRlZFNjcmlwdHMgPSBzY3JpcHRzLnNsaWNlKCk7CisgICAgdGhpcy5fc29ydGVkU2NyaXB0
cy5zb3J0KGZ1bmN0aW9uKHgsIHkpIHsgcmV0dXJuIHgubGluZU9mZnNldCAtIHkubGluZU9mZnNl
dCB8fCB4LmNvbHVtbk9mZnNldCAtIHkuY29sdW1uT2Zmc2V0OyB9KTsKIH0KIAogV2ViSW5zcGVj
dG9yLlNvdXJjZU1hcHBpbmcucHJvdG90eXBlID0gewpAQCAtMjc2LDcgKzI3NywxMSBAQCBXZWJJ
bnNwZWN0b3IuU291cmNlTWFwcGluZy5wcm90b3R5cGUgPSB7CiAKICAgICBzb3VyY2VMaW5lVG9T
Y3JpcHRMb2NhdGlvbjogZnVuY3Rpb24obGluZU51bWJlcikKICAgICB7Ci0gICAgICAgIHZhciBj
b2x1bW5OdW1iZXIgPSAwOworICAgICAgICByZXR1cm4gdGhpcy5fc291cmNlTG9jYXRpb25Ub1Nj
cmlwdExvY2F0aW9uKGxpbmVOdW1iZXIsIDApOworICAgIH0sCisKKyAgICBfc291cmNlTG9jYXRp
b25Ub1NjcmlwdExvY2F0aW9uOiBmdW5jdGlvbihsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIpCisg
ICAgewogICAgICAgICB2YXIgY2xvc2VzdFNjcmlwdCA9IHRoaXMuX3NvcnRlZFNjcmlwdHNbMF07
CiAgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDwgdGhpcy5fc29ydGVkU2NyaXB0cy5sZW5ndGg7
ICsraSkgewogICAgICAgICAgICAgc2NyaXB0ID0gdGhpcy5fc29ydGVkU2NyaXB0c1tpXTsKQEAg
LTI4OCw5ICsyOTMsOSBAQCBXZWJJbnNwZWN0b3IuU291cmNlTWFwcGluZy5wcm90b3R5cGUgPSB7
CiAgICAgfQogfQogCi1XZWJJbnNwZWN0b3IuRm9ybWF0dGVkU291cmNlTWFwcGluZyA9IGZ1bmN0
aW9uKHNvcnRlZFNjcmlwdHMsIG9yaWdpbmFsVGV4dCwgZm9ybWF0dGVkVGV4dCwgbWFwcGluZykK
K1dlYkluc3BlY3Rvci5Gb3JtYXR0ZWRTb3VyY2VNYXBwaW5nID0gZnVuY3Rpb24oc2NyaXB0cywg
b3JpZ2luYWxUZXh0LCBmb3JtYXR0ZWRUZXh0LCBtYXBwaW5nKQogewotICAgIFdlYkluc3BlY3Rv
ci5Tb3VyY2VNYXBwaW5nLmNhbGwodGhpcywgc29ydGVkU2NyaXB0cyk7CisgICAgV2ViSW5zcGVj
dG9yLlNvdXJjZU1hcHBpbmcuY2FsbCh0aGlzLCBzY3JpcHRzKTsKICAgICB0aGlzLl9vcmlnaW5h
bExpbmVFbmRpbmdzID0gb3JpZ2luYWxUZXh0LmxpbmVFbmRpbmdzKCk7CiAgICAgdGhpcy5fZm9y
bWF0dGVkTGluZUVuZGluZ3MgPSBmb3JtYXR0ZWRUZXh0LmxpbmVFbmRpbmdzKCk7CiAgICAgdGhp
cy5fbWFwcGluZyA9IG1hcHBpbmc7CkBAIC0zMDAsMjcgKzMwNSwxOCBAQCBXZWJJbnNwZWN0b3Iu
Rm9ybWF0dGVkU291cmNlTWFwcGluZy5wcm90b3R5cGUgPSB7CiAgICAgc2NyaXB0TG9jYXRpb25U
b1NvdXJjZUxpbmU6IGZ1bmN0aW9uKGxvY2F0aW9uKQogICAgIHsKICAgICAgICAgdmFyIG9yaWdp
bmFsUG9zaXRpb24gPSBXZWJJbnNwZWN0b3IuU2NyaXB0Rm9ybWF0dGVyLmxvY2F0aW9uVG9Qb3Np
dGlvbih0aGlzLl9vcmlnaW5hbExpbmVFbmRpbmdzLCBsb2NhdGlvbik7Ci0gICAgICAgIHZhciBm
b3JtYXR0ZWRQb3NpdGlvbiA9IHRoaXMuX2NvbnZlcnRQb3NpdGlvbih0aGlzLl9tYXBwaW5nLm9y
aWdpbmFsLCB0aGlzLl9tYXBwaW5nLmZvcm1hdHRlZCwgb3JpZ2luYWxQb3NpdGlvbik7CisgICAg
ICAgIHZhciBpbmRleCA9IHRoaXMuX21hcHBpbmcub3JpZ2luYWwudXBwZXJCb3VuZChvcmlnaW5h
bFBvc2l0aW9uIC0gMSk7CisgICAgICAgIHZhciBmb3JtYXR0ZWRQb3NpdGlvbiA9IHRoaXMuX21h
cHBpbmcuZm9ybWF0dGVkW2luZGV4XTsKICAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5TY3Jp
cHRGb3JtYXR0ZXIucG9zaXRpb25Ub0xvY2F0aW9uKHRoaXMuX2Zvcm1hdHRlZExpbmVFbmRpbmdz
LCBmb3JtYXR0ZWRQb3NpdGlvbikubGluZU51bWJlcjsKICAgICB9LAogCiAgICAgc291cmNlTGlu
ZVRvU2NyaXB0TG9jYXRpb246IGZ1bmN0aW9uKGxpbmVOdW1iZXIpCiAgICAgewogICAgICAgICB2
YXIgZm9ybWF0dGVkUG9zaXRpb24gPSBXZWJJbnNwZWN0b3IuU2NyaXB0Rm9ybWF0dGVyLmxpbmVU
b1Bvc2l0aW9uKHRoaXMuX2Zvcm1hdHRlZExpbmVFbmRpbmdzLCBsaW5lTnVtYmVyKTsKLSAgICAg
ICAgdmFyIG9yaWdpbmFsUG9zaXRpb24gPSB0aGlzLl9jb252ZXJ0UG9zaXRpb24odGhpcy5fbWFw
cGluZy5mb3JtYXR0ZWQsIHRoaXMuX21hcHBpbmcub3JpZ2luYWwsIGZvcm1hdHRlZFBvc2l0aW9u
KTsKKyAgICAgICAgdmFyIGluZGV4ID0gdGhpcy5fbWFwcGluZy5mb3JtYXR0ZWQudXBwZXJCb3Vu
ZChmb3JtYXR0ZWRQb3NpdGlvbiAtIDEpOworICAgICAgICB2YXIgb3JpZ2luYWxQb3NpdGlvbiA9
IHRoaXMuX21hcHBpbmcub3JpZ2luYWxbaW5kZXhdOwogICAgICAgICB2YXIgb3JpZ2luYWxMb2Nh
dGlvbiA9IFdlYkluc3BlY3Rvci5TY3JpcHRGb3JtYXR0ZXIucG9zaXRpb25Ub0xvY2F0aW9uKHRo
aXMuX29yaWdpbmFsTGluZUVuZGluZ3MsIG9yaWdpbmFsUG9zaXRpb24pOwotICAgICAgICByZXR1
cm4gV2ViSW5zcGVjdG9yLlNvdXJjZU1hcHBpbmcucHJvdG90eXBlLnNvdXJjZUxpbmVUb1Njcmlw
dExvY2F0aW9uLmNhbGwodGhpcywgb3JpZ2luYWxMb2NhdGlvbi5saW5lTnVtYmVyKTsKLSAgICB9
LAotCi0gICAgX2NvbnZlcnRQb3NpdGlvbjogZnVuY3Rpb24ocG9zaXRpb25zMSwgcG9zaXRpb25z
MiwgcG9zaXRpb24pCi0gICAgewotICAgICAgICB2YXIgaW5kZXggPSBwb3NpdGlvbnMxLnVwcGVy
Qm91bmQocG9zaXRpb24pOwotICAgICAgICB2YXIgcmFuZ2UxID0gcG9zaXRpb25zMVtpbmRleF0g
LSBwb3NpdGlvbnMxW2luZGV4IC0gMV07Ci0gICAgICAgIHZhciByYW5nZTIgPSBwb3NpdGlvbnMy
W2luZGV4XSAtIHBvc2l0aW9uczJbaW5kZXggLSAxXTsKLSAgICAgICAgdmFyIHBvc2l0aW9uMiA9
IHBvc2l0aW9uczJbaW5kZXggLSAxXTsKLSAgICAgICAgaWYgKHJhbmdlMSkKLSAgICAgICAgICAg
IHBvc2l0aW9uMiArPSBNYXRoLnJvdW5kKChwb3NpdGlvbiAtIHBvc2l0aW9uczFbaW5kZXggLSAx
XSkgKiByYW5nZTIgLyByYW5nZTEpOwotICAgICAgICByZXR1cm4gcG9zaXRpb24yOworICAgICAg
ICByZXR1cm4gV2ViSW5zcGVjdG9yLlNvdXJjZU1hcHBpbmcucHJvdG90eXBlLl9zb3VyY2VMb2Nh
dGlvblRvU2NyaXB0TG9jYXRpb24uY2FsbCh0aGlzLCBvcmlnaW5hbExvY2F0aW9uLmxpbmVOdW1i
ZXIsIG9yaWdpbmFsTG9jYXRpb24uY29sdW1uTnVtYmVyKTsKICAgICB9CiB9CiAK
</data>
<flag name="review"
          id="81864"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>