<?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>50679</bug_id>
          
          <creation_ts>2010-12-08 04:15:19 -0800</creation_ts>
          <short_desc>Web Inspector: eliminate SourceFrameDelegate by passing scripts to SourceFrame constructor</short_desc>
          <delta_ts>2010-12-15 03:35:37 -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>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>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>318722</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2010-12-08 04:15:19 -0800</bug_when>
    <thetext>Web Inspector: eliminate SourceFrameDelegate by passing scripts to SourceFrame constructor</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318723</commentid>
    <comment_count>1</comment_count>
      <attachid>75887</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2010-12-08 04:15:56 -0800</bug_when>
    <thetext>Created attachment 75887
Patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318724</commentid>
    <comment_count>2</comment_count>
      <attachid>75887</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-12-08 04:21:53 -0800</bug_when>
    <thetext>Comment on attachment 75887
Patch.

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

&gt; WebCore/inspector/front-end/Resource.js:512
&gt;          script.resource = this;

Do we actually use this link?

&gt; WebCore/inspector/front-end/Script.js:88
&gt; +        this.dispatchEventToListeners(WebInspector.Script.Events.SourceChanged, revertCallback || function() {});

callback should not be a part of the event data - what if there are several listeners? what should they do to callback? r- for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318818</commentid>
    <comment_count>3</comment_count>
      <attachid>75914</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2010-12-08 09:13:28 -0800</bug_when>
    <thetext>Created attachment 75914
Patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318822</commentid>
    <comment_count>4</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2010-12-08 09:15:57 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 75887 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=75887&amp;action=review
&gt; 
&gt; &gt; WebCore/inspector/front-end/Resource.js:512
&gt; &gt;          script.resource = this;
&gt; 
&gt; Do we actually use this link?
It&apos;s extensively used by ScriptsPanel.

&gt; 
&gt; &gt; WebCore/inspector/front-end/Script.js:88
&gt; &gt; +        this.dispatchEventToListeners(WebInspector.Script.Events.SourceChanged, revertCallback || function() {});
&gt; 
&gt; callback should not be a part of the event data - what if there are several listeners? what should they do to callback? r- for this.

In new patch resource is updated directly like it was done in original code. When we&apos;ll move scripts and live edit to DebuggerModel we may eliminate script.resource link.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320105</commentid>
    <comment_count>5</comment_count>
      <attachid>76186</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2010-12-10 05:39:50 -0800</bug_when>
    <thetext>Created attachment 76186
Do not regress live edit in ScriptView.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320167</commentid>
    <comment_count>6</comment_count>
      <attachid>76186</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-12-10 08:11:43 -0800</bug_when>
    <thetext>Comment on attachment 76186
Do not regress live edit in ScriptView.

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

&gt; WebCore/inspector/front-end/SourceFrame.js:811
&gt; +        if (script.resource)

I think this can be encapsulated in script.source setter.

&gt; WebCore/inspector/front-end/SourceFrame.js:826
&gt; +        return WebInspector.debuggerModel.findBreakpoints(function(b) { return b.sourceID in scripts; });

nit: findBreakpoints -&gt; queryBreakpoints.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320178</commentid>
    <comment_count>7</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2010-12-10 08:33:28 -0800</bug_when>
    <thetext>Committed r73730: &lt;http://trac.webkit.org/changeset/73730&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320180</commentid>
    <comment_count>8</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2010-12-10 08:35:52 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 76186 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=76186&amp;action=review
&gt; 
&gt; &gt; WebCore/inspector/front-end/SourceFrame.js:811
&gt; &gt; +        if (script.resource)
&gt; 
&gt; I think this can be encapsulated in script.source setter.
There is revertEditLineCallback argument, so we can&apos;t encapsulate this in setter.

&gt; 
&gt; &gt; WebCore/inspector/front-end/SourceFrame.js:826
&gt; &gt; +        return WebInspector.debuggerModel.findBreakpoints(function(b) { return b.sourceID in scripts; });
&gt; 
&gt; nit: findBreakpoints -&gt; queryBreakpoints.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322565</commentid>
    <comment_count>9</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-12-15 03:35:37 -0800</bug_when>
    <thetext>*** Bug 51101 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>75887</attachid>
            <date>2010-12-08 04:15:56 -0800</date>
            <delta_ts>2010-12-08 09:13:28 -0800</delta_ts>
            <desc>Patch.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>13377</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZDAyNDdkMS4uZGUyMGI1OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwzMyBAQAogMjAxMC0xMi0wOCAgUGF2ZWwgUG9kaXZp
bG92ICA8cG9kaXZpbG92QGNocm9taXVtLm9yZz4KIAorICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBlbGltaW5hdGUgU291cmNlRnJh
bWVEZWxlZ2F0ZSBieSBwYXNzaW5nIHNjcmlwdHMgdG8gU291cmNlRnJhbWUgY29uc3RydWN0b3Iu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MDY3OQor
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZS5qczoKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5SZXNvdXJjZS5wcm90b3R5cGUuYWRkU2NyaXB0KToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5SZXNvdXJjZS5wcm90b3R5cGUuX3NjcmlwdFNvdXJjZUNoYW5nZWQpOgorICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlNjcmlwdC5wcm90b3R5cGUuc2V0U291cmNlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL1NjcmlwdFZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0Vmlldyk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0Vmlldy5wcm90b3R5cGUuX2RpZEdldFNjcmlwdFNv
dXJjZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanM6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5yZXNldCk6CisgICAg
ICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGcmFtZS5qczoKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5Tb3VyY2VGcmFtZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUu
cHJvdG90eXBlLl9jcmVhdGVWaWV3ZXJJZk5lZWRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
U291cmNlRnJhbWUucHJvdG90eXBlLl9icmVha3BvaW50QWRkZWQpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlNvdXJjZUZyYW1lLnByb3RvdHlwZS5fZG9FZGl0TGluZSk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlLl9jb21taXRFZGl0TGluZSk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlLl9icmVha3BvaW50cyk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlLl9zb3VyY2VJREZvckxpbmUp
OgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU291cmNlVmlldy5qczoKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5Tb3VyY2VWaWV3KToKKworMjAxMC0xMi0wOCAgUGF2ZWwgUG9kaXZpbG92
ICA8cG9kaXZpbG92QGNocm9taXVtLm9yZz4KKwogICAgICAgICBSZXZpZXdlZCBieSBQYXZlbCBG
ZWxkbWFuLgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFNvdXJjZUZyYW1lIHJlZmFjdG9yaW5n
LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlLmpzIGIv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlLmpzCmluZGV4IGFlZmRkNmMuLjEw
YTNmZDcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZS5q
cworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2UuanMKQEAgLTYsMTMg
KzYsMTMgQEAKICAqIGFyZSBtZXQ6CiAgKgogICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLiAKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCiAgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKICAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4gCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KICAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9m
IEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCiAgKiAgICAg
aXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZAotICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4gCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgogICoKICAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQg
QU5ZCiAgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECkBAIC01MTAsNiArNTEwLDggQEAgV2ViSW5zcGVjdG9y
LlJlc291cmNlLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgdGhp
cy5zY3JpcHRzLnVuc2hpZnQoc2NyaXB0KTsKICAgICAgICAgc2NyaXB0LnJlc291cmNlID0gdGhp
czsKKyAgICAgICAgaWYgKHRoaXMudHlwZSA9PT0gV2ViSW5zcGVjdG9yLlJlc291cmNlLlR5cGUu
U2NyaXB0KQorICAgICAgICAgICAgc2NyaXB0LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9y
LlNjcmlwdC5FdmVudHMuU291cmNlQ2hhbmdlZCwgdGhpcy5fc2NyaXB0U291cmNlQ2hhbmdlZCwg
dGhpcyk7CiAgICAgfSwKIAogICAgIHJlbW92ZUFsbFNjcmlwdHM6IGZ1bmN0aW9uKCkKQEAgLTUz
OSw2ICs1NDEsMTEgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlLnByb3RvdHlwZSA9IHsKICAgICAg
ICAgdGhpcy5fc2NyaXB0cy5yZW1vdmUoc2NyaXB0KTsKICAgICB9LAogCisgICAgX3NjcmlwdFNv
dXJjZUNoYW5nZWQ6IGZ1bmN0aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAgdGhpcy5zZXRDb250
ZW50KGV2ZW50LnRhcmdldC5zb3VyY2UsIGV2ZW50LmRhdGEpOworICAgIH0sCisKICAgICBnZXQg
ZXJyb3JzKCkKICAgICB7CiAgICAgICAgIHJldHVybiB0aGlzLl9lcnJvcnMgfHwgMDsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHQuanMgYi9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0LmpzCmluZGV4IGNlMTRhNTkuLmMzYWUwYWUgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHQuanMKKysrIGIvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdC5qcwpAQCAtODIsMTAgKzgyLDEwIEBAIFdlYklu
c3BlY3Rvci5TY3JpcHQucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gdGhpcy5fc291cmNl
OwogICAgIH0sCiAKLSAgICBzZXQgc291cmNlKHNvdXJjZSkKKyAgICBzZXRTb3VyY2U6IGZ1bmN0
aW9uKHNvdXJjZSwgcmV2ZXJ0Q2FsbGJhY2spCiAgICAgewogICAgICAgICB0aGlzLl9zb3VyY2Ug
PSBzb3VyY2U7Ci0gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3Bl
Y3Rvci5TY3JpcHQuRXZlbnRzLlNvdXJjZUNoYW5nZWQpOworICAgICAgICB0aGlzLmRpc3BhdGNo
RXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuU2NyaXB0LkV2ZW50cy5Tb3VyY2VDaGFuZ2Vk
LCByZXZlcnRDYWxsYmFjayB8fCBmdW5jdGlvbigpIHt9KTsKICAgICB9CiB9CiAKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRWaWV3LmpzIGIvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdFZpZXcuanMKaW5kZXggMTk2MmZkZi4uYzk0MDYxMSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdFZpZXcuanMKKysr
IGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdFZpZXcuanMKQEAgLTMzLDEwICsz
Myw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRWaWV3ID0gZnVuY3Rpb24oc2NyaXB0KQogCiAgICAg
dGhpcy5fZnJhbWVOZWVkc1NldHVwID0gdHJ1ZTsKICAgICB0aGlzLl9zb3VyY2VGcmFtZVNldHVw
ID0gZmFsc2U7Ci0gICAgdmFyIGRlbGVnYXRlID0gbmV3IFdlYkluc3BlY3Rvci5TY3JpcHRGcmFt
ZURlbGVnYXRlSW1wbCh0aGlzLnNjcmlwdCk7Ci0gICAgdGhpcy5zb3VyY2VGcmFtZSA9IG5ldyBX
ZWJJbnNwZWN0b3IuU291cmNlRnJhbWUodGhpcy5lbGVtZW50LCBkZWxlZ2F0ZSk7Ci0KLSAgICB0
aGlzLnNjcmlwdC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5TY3JpcHQuRXZlbnRzLlNv
dXJjZUNoYW5nZWQsIHRoaXMuX3NjcmlwdFNvdXJjZUNoYW5nZWQsIHRoaXMpOworICAgIHRoaXMu
c291cmNlRnJhbWUgPSBuZXcgV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lKHRoaXMuZWxlbWVudCwg
W3NjcmlwdF0sIGZhbHNlKTsKIH0KIAogV2ViSW5zcGVjdG9yLlNjcmlwdFZpZXcucHJvdG90eXBl
ID0gewpAQCAtNjQsNyArNjEsNyBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0Vmlldy5wcm90b3R5cGUg
PSB7CiAKICAgICBfZGlkR2V0U2NyaXB0U291cmNlOiBmdW5jdGlvbihzb3VyY2UpCiAgICAgewot
ICAgICAgICB0aGlzLnNjcmlwdC5zb3VyY2UgPSBzb3VyY2UgfHwgV2ViSW5zcGVjdG9yLlVJU3Ry
aW5nKCI8c291cmNlIGlzIG5vdCBhdmFpbGFibGU+Iik7CisgICAgICAgIHRoaXMuc2NyaXB0LnNl
dFNvdXJjZShzb3VyY2UgfHwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCI8c291cmNlIGlzIG5vdCBh
dmFpbGFibGU+IikpOwogICAgICAgICB0aGlzLl9zb3VyY2VGcmFtZVNldHVwRmluaXNoZWQoKTsK
ICAgICB9LAogCkBAIC04NywxMSArODQsNiBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0Vmlldy5wcm90
b3R5cGUgPSB7CiAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2NyaXB0LXJl
c291cmNlLXZpZXdzIikuYXBwZW5kQ2hpbGQodGhpcy5lbGVtZW50KTsKICAgICB9LAogCi0gICAg
X3NjcmlwdFNvdXJjZUNoYW5nZWQ6IGZ1bmN0aW9uKGV2ZW50KQotICAgIHsKLSAgICAgICAgdGhp
cy5zb3VyY2VGcmFtZS51cGRhdGVDb250ZW50KHRoaXMuX3ByZXBlbmRXaGl0ZXNwYWNlKHRoaXMu
c2NyaXB0LnNvdXJjZSkpOwotICAgIH0sCi0KICAgICAvLyBUaGUgZm9sbG93aW5nIG1ldGhvZHMg
YXJlIHB1bGxlZCBmcm9tIFNvdXJjZVZpZXcsIHNpbmNlIHRoZXkgYXJlCiAgICAgLy8gZ2VuZXJp
YyBhbmQgd29yayB3aXRoIFNjcmlwdFZpZXcganVzdCBmaW5lLgogCkBAIC0xMTMsMjggKzEwNSwz
IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRWaWV3LnByb3RvdHlwZSA9IHsKIH0KIAogV2ViSW5zcGVj
dG9yLlNjcmlwdFZpZXcucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5WaWV3LnBy
b3RvdHlwZTsKLQotV2ViSW5zcGVjdG9yLlNjcmlwdEZyYW1lRGVsZWdhdGVJbXBsID0gZnVuY3Rp
b24oc2NyaXB0KQotewotICAgIFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZURlbGVnYXRlLmNhbGwo
dGhpcyk7Ci0gICAgdGhpcy5fc2NyaXB0ID0gc2NyaXB0OwotfQotCi1XZWJJbnNwZWN0b3IuU2Ny
aXB0RnJhbWVEZWxlZ2F0ZUltcGwucHJvdG90eXBlID0gewotICAgIGNhbkVkaXRTY3JpcHRzOiBm
dW5jdGlvbigpCi0gICAgewotICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLnBhbmVscy5zY3Jp
cHRzLmNhbkVkaXRTY3JpcHRzKCk7Ci0gICAgfSwKLQotICAgIGVkaXRMaW5lQ29tcGxldGU6IGZ1
bmN0aW9uKHJldmVydEVkaXRMaW5lQ2FsbGJhY2ssIG5ld0NvbnRlbnQpCi0gICAgewotICAgICAg
ICB0aGlzLl9zY3JpcHQuc291cmNlID0gbmV3Q29udGVudDsKLSAgICB9LAotCi0gICAgc2NyaXB0
czogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgcmV0dXJuIFt0aGlzLl9zY3JpcHRdOwotICAg
IH0KLX0KLQotV2ViSW5zcGVjdG9yLlNjcmlwdEZyYW1lRGVsZWdhdGVJbXBsLnByb3RvdHlwZS5f
X3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWVEZWxlZ2F0ZS5wcm90b3R5cGU7CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzIGIv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcwppbmRleCA5NDY1NzAy
Li5lMDFiZjJiIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0
c1BhbmVsLmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwu
anMKQEAgLTQyNyw4ICs0MjcsMTAgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5
cGUgPSB7CiAgICAgICAgIGlmICh0aGlzLl9zb3VyY2VJRE1hcCkgewogICAgICAgICAgICAgZm9y
ICh2YXIgc291cmNlSUQgaW4gdGhpcy5fc291cmNlSURNYXApIHsKICAgICAgICAgICAgICAgICB2
YXIgb2JqZWN0ID0gdGhpcy5fc291cmNlSURNYXBbc291cmNlSURdOwotICAgICAgICAgICAgICAg
IGlmIChvYmplY3QgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuUmVzb3VyY2UpCisgICAgICAgICAg
ICAgICAgaWYgKG9iamVjdCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5SZXNvdXJjZSkgewogICAg
ICAgICAgICAgICAgICAgICBvYmplY3QucmVtb3ZlQWxsU2NyaXB0cygpOworICAgICAgICAgICAg
ICAgICAgICBkZWxldGUgb2JqZWN0Ll9yZXNvdXJjZXNWaWV3OworICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIH0KICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvU291cmNlRnJhbWUuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
U291cmNlRnJhbWUuanMKaW5kZXggMjlmZGMxZi4uMTc3NWIyYSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZyYW1lLmpzCisrKyBiL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9Tb3VyY2VGcmFtZS5qcwpAQCAtMjgsMTAgKzI4LDEzIEBACiAgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgogICovCiAKLVdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZSA9IGZ1bmN0aW9uKHBhcmVu
dEVsZW1lbnQsIGRlbGVnYXRlKQorV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lID0gZnVuY3Rpb24o
cGFyZW50RWxlbWVudCwgc2NyaXB0cywgY2FuRWRpdFNjcmlwdHMpCiB7CiAgICAgdGhpcy5fcGFy
ZW50RWxlbWVudCA9IHBhcmVudEVsZW1lbnQ7Ci0gICAgdGhpcy5fZGVsZWdhdGUgPSBkZWxlZ2F0
ZTsKKyAgICB0aGlzLl9zY3JpcHRzID0ge307CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzY3Jp
cHRzLmxlbmd0aDsgKytpKQorICAgICAgICB0aGlzLl9zY3JpcHRzW3NjcmlwdHNbaV0uc291cmNl
SURdID0gc2NyaXB0c1tpXTsKKyAgICB0aGlzLl9jYW5FZGl0U2NyaXB0cyA9IGNhbkVkaXRTY3Jp
cHRzOwogCiAgICAgdGhpcy5fdGV4dE1vZGVsID0gbmV3IFdlYkluc3BlY3Rvci5UZXh0RWRpdG9y
TW9kZWwoKTsKICAgICB0aGlzLl90ZXh0TW9kZWwucmVwbGFjZVRhYnNXaXRoU3BhY2VzID0gdHJ1
ZTsKQEAgLTIyMSw3ICsyMjQsNyBAQCBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBl
ID0gewogCiAgICAgICAgIHRoaXMuX3RleHRWaWV3ZXIuZW5kVXBkYXRlcygpOwogCi0gICAgICAg
IGlmICh0aGlzLl9kZWxlZ2F0ZS5jYW5FZGl0U2NyaXB0cygpKQorICAgICAgICBpZiAodGhpcy5f
Y2FuRWRpdFNjcmlwdHMpCiAgICAgICAgICAgICB0aGlzLl90ZXh0Vmlld2VyLmVkaXRDYWxsYmFj
ayA9IHRoaXMuX2VkaXRMaW5lLmJpbmQodGhpcyk7CiAgICAgfSwKIApAQCAtNDE1LDcgKzQxOCw3
IEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUgPSB7CiAgICAgewogICAgICAg
ICB2YXIgYnJlYWtwb2ludCA9IGV2ZW50LmRhdGE7CiAKLSAgICAgICAgaWYgKHRoaXMuX3Nob3Vs
ZERpc3BsYXlCcmVha3BvaW50KGJyZWFrcG9pbnQpKQorICAgICAgICBpZiAoYnJlYWtwb2ludC5z
b3VyY2VJRCBpbiB0aGlzLl9zY3JpcHRzKQogICAgICAgICAgICAgdGhpcy5fYWRkQnJlYWtwb2lu
dChicmVha3BvaW50KTsKICAgICB9LAogCkBAIC03OTcsMTAgKzgwMCwxNiBAQCBXZWJJbnNwZWN0
b3IuU291cmNlRnJhbWUucHJvdG90eXBlID0gewogICAgIF9kb0VkaXRMaW5lOiBmdW5jdGlvbihl
ZGl0RGF0YSwgY2FuY2VsRWRpdGluZ0NhbGxiYWNrKQogICAgIHsKICAgICAgICAgdmFyIHJldmVy
dEVkaXRpbmdDYWxsYmFjayA9IHRoaXMuX3JldmVydEVkaXRMaW5lLmJpbmQodGhpcywgZWRpdERh
dGEpOwotICAgICAgICB2YXIgY29tbWl0RWRpdGluZ0NhbGxiYWNrID0gdGhpcy5fZGVsZWdhdGUu
ZWRpdExpbmVDb21wbGV0ZS5iaW5kKHRoaXMuX2RlbGVnYXRlLCByZXZlcnRFZGl0aW5nQ2FsbGJh
Y2spOworICAgICAgICB2YXIgY29tbWl0RWRpdGluZ0NhbGxiYWNrID0gdGhpcy5fY29tbWl0RWRp
dExpbmUuYmluZCh0aGlzLCBlZGl0RGF0YSwgcmV2ZXJ0RWRpdGluZ0NhbGxiYWNrKTsKICAgICAg
ICAgV2ViSW5zcGVjdG9yLnBhbmVscy5zY3JpcHRzLmVkaXRTY3JpcHRTb3VyY2UoZWRpdERhdGEs
IGNvbW1pdEVkaXRpbmdDYWxsYmFjaywgY2FuY2VsRWRpdGluZ0NhbGxiYWNrKTsKICAgICB9LAog
CisgICAgX2NvbW1pdEVkaXRMaW5lOiBmdW5jdGlvbihlZGl0RGF0YSwgcmV2ZXJ0RWRpdExpbmVD
YWxsYmFjaywgbmV3Q29udGVudCkKKyAgICB7CisgICAgICAgIHZhciBzY3JpcHQgPSB0aGlzLl9z
Y3JpcHRzW2VkaXREYXRhLnNvdXJjZUlEXTsKKyAgICAgICAgc2NyaXB0LnNldFNvdXJjZShuZXdD
b250ZW50LCByZXZlcnRFZGl0TGluZUNhbGxiYWNrKTsKKyAgICB9LAorCiAgICAgX3NldEJyZWFr
cG9pbnQ6IGZ1bmN0aW9uKGxpbmVOdW1iZXIpCiAgICAgewogICAgICAgICB2YXIgc291cmNlSUQg
PSB0aGlzLl9zb3VyY2VJREZvckxpbmUobGluZU51bWJlcik7CkBAIC04MTEsMTUgKzgyMCw4IEBA
IFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUgPSB7CiAKICAgICBfYnJlYWtwb2lu
dHM6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIHZhciBzb3VyY2VJRHMgPSB7fTsKLSAgICAg
ICAgdmFyIHNjcmlwdHMgPSB0aGlzLl9kZWxlZ2F0ZS5zY3JpcHRzKCk7Ci0gICAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgc2NyaXB0cy5sZW5ndGg7ICsraSkKLSAgICAgICAgICAgIHNvdXJjZUlE
c1tzY3JpcHRzW2ldLnNvdXJjZUlEXSA9IHRydWU7Ci0gICAgICAgIGZ1bmN0aW9uIGZpbHRlcihi
cmVha3BvaW50KQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYnJlYWtwb2ludC5zb3Vy
Y2VJRCBpbiBzb3VyY2VJRHM7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rv
ci5icmVha3BvaW50TWFuYWdlci5maW5kQnJlYWtwb2ludHMoZmlsdGVyKTsKKyAgICAgICAgdmFy
IHNjcmlwdHMgPSB0aGlzLl9zY3JpcHRzOworICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLmJy
ZWFrcG9pbnRNYW5hZ2VyLmZpbmRCcmVha3BvaW50cyhmdW5jdGlvbihiKSB7IHJldHVybiBiLnNv
dXJjZUlEIGluIHNjcmlwdHM7IH0pOwogICAgIH0sCiAKICAgICBfZmluZEJyZWFrcG9pbnQ6IGZ1
bmN0aW9uKGxpbmVOdW1iZXIpCkBAIC04MjgsNTEgKzgzMCwxOSBAQCBXZWJJbnNwZWN0b3IuU291
cmNlRnJhbWUucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLmJyZWFr
cG9pbnRNYW5hZ2VyLmZpbmRCcmVha3BvaW50KHNvdXJjZUlELCBsaW5lTnVtYmVyKTsKICAgICB9
LAogCi0gICAgX3Nob3VsZERpc3BsYXlCcmVha3BvaW50OiBmdW5jdGlvbihicmVha3BvaW50KQot
ICAgIHsKLSAgICAgICAgdmFyIHNjcmlwdHMgPSB0aGlzLl9kZWxlZ2F0ZS5zY3JpcHRzKCk7Ci0g
ICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2NyaXB0cy5sZW5ndGg7ICsraSkgewotICAgICAg
ICAgICAgaWYgKGJyZWFrcG9pbnQuc291cmNlSUQgPT09IHNjcmlwdHNbaV0uc291cmNlSUQpCi0g
ICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIH0sCi0KICAgICBfc291cmNlSURGb3JMaW5lOiBmdW5jdGlvbihsaW5lTnVtYmVy
KQogICAgIHsKLSAgICAgICAgdmFyIHNvdXJjZUlEID0gbnVsbDsKLSAgICAgICAgdmFyIHNjcmlw
dHMgPSB0aGlzLl9kZWxlZ2F0ZS5zY3JpcHRzKCk7CisgICAgICAgIHZhciBzb3VyY2VJREZvckxp
bmUgPSBudWxsOwogICAgICAgICB2YXIgY2xvc2VzdFN0YXJ0aW5nTGluZSA9IDA7Ci0gICAgICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgc2NyaXB0cy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAg
dmFyIHNjcmlwdCA9IHNjcmlwdHNbaV07CisgICAgICAgIGZvciAodmFyIHNvdXJjZUlEIGluIHRo
aXMuX3NjcmlwdHMpIHsKKyAgICAgICAgICAgIHZhciBzY3JpcHQgPSB0aGlzLl9zY3JpcHRzW3Nv
dXJjZUlEXTsKICAgICAgICAgICAgIGlmIChzY3JpcHQuc3RhcnRpbmdMaW5lIDw9IGxpbmVOdW1i
ZXIgJiYgc2NyaXB0LnN0YXJ0aW5nTGluZSA+PSBjbG9zZXN0U3RhcnRpbmdMaW5lKSB7CiAgICAg
ICAgICAgICAgICAgY2xvc2VzdFN0YXJ0aW5nTGluZSA9IHNjcmlwdC5zdGFydGluZ0xpbmU7Ci0g
ICAgICAgICAgICAgICAgc291cmNlSUQgPSBzY3JpcHQuc291cmNlSUQ7CisgICAgICAgICAgICAg
ICAgc291cmNlSURGb3JMaW5lID0gc291cmNlSUQ7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0K
LSAgICAgICAgcmV0dXJuIHNvdXJjZUlEOworICAgICAgICByZXR1cm4gc291cmNlSURGb3JMaW5l
OwogICAgIH0KIH0KIAogV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnByb3RvdHlwZS5fX3Byb3Rv
X18gPSBXZWJJbnNwZWN0b3IuT2JqZWN0LnByb3RvdHlwZTsKLQotV2ViSW5zcGVjdG9yLlNvdXJj
ZUZyYW1lRGVsZWdhdGUgPSBmdW5jdGlvbigpCi17Ci19Ci0KLVdlYkluc3BlY3Rvci5Tb3VyY2VG
cmFtZURlbGVnYXRlLnByb3RvdHlwZSA9IHsKLSAgICBjYW5FZGl0U2NyaXB0czogZnVuY3Rpb24o
KQotICAgIHsKLSAgICAgICAgLy8gSW1wbGVtZW50ZWQgYnkgc3ViY2xhc3Nlcy4KLSAgICB9LAot
Ci0gICAgZWRpdExpbmVDb21wbGV0ZTogZnVuY3Rpb24ocmV2ZXJ0RWRpdExpbmVDYWxsYmFjaywg
bmV3Q29udGVudCkKLSAgICB7Ci0gICAgICAgIC8vIEltcGxlbWVudGVkIGJ5IHN1YmNsYXNzZXMu
Ci0gICAgfSwKLQotICAgIHNjcmlwdHM6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIC8vIElt
cGxlbWVudGVkIGJ5IHN1YmNsYXNzZXMuCi0gICAgfQotfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZVZpZXcuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvU291cmNlVmlldy5qcwppbmRleCA4Y2NhZGQzLi5mZTlhN2UzIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlVmlldy5qcworKysgYi9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvU291cmNlVmlldy5qcwpAQCAtMzIsOCArMzIsOCBAQCBXZWJJbnNw
ZWN0b3IuU291cmNlVmlldyA9IGZ1bmN0aW9uKHJlc291cmNlKQogCiAgICAgdGhpcy5lbGVtZW50
LmFkZFN0eWxlQ2xhc3MoInNvdXJjZSIpOwogCi0gICAgdmFyIGRlbGVnYXRlID0gbmV3IFdlYklu
c3BlY3Rvci5SZXNvdXJjZUZyYW1lRGVsZWdhdGVJbXBsKHRoaXMucmVzb3VyY2UpOwotICAgIHRo
aXMuc291cmNlRnJhbWUgPSBuZXcgV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lKHRoaXMuZWxlbWVu
dCwgZGVsZWdhdGUpOworICAgIHZhciBjYW5FZGl0U2NyaXB0cyA9IFdlYkluc3BlY3Rvci5wYW5l
bHMuc2NyaXB0cy5jYW5FZGl0U2NyaXB0cygpICYmIHJlc291cmNlLnR5cGUgPT09IFdlYkluc3Bl
Y3Rvci5SZXNvdXJjZS5UeXBlLlNjcmlwdDsKKyAgICB0aGlzLnNvdXJjZUZyYW1lID0gbmV3IFdl
Ykluc3BlY3Rvci5Tb3VyY2VGcmFtZSh0aGlzLmVsZW1lbnQsIHJlc291cmNlLnNjcmlwdHMsIGNh
bkVkaXRTY3JpcHRzKTsKICAgICByZXNvdXJjZS5hZGRFdmVudExpc3RlbmVyKCJmaW5pc2hlZCIs
IHRoaXMuX3Jlc291cmNlTG9hZGluZ0ZpbmlzaGVkLCB0aGlzKTsKICAgICB0aGlzLl9mcmFtZU5l
ZWRzU2V0dXAgPSB0cnVlOwogfQpAQCAtMjM4LDI4ICsyMzgsMyBAQCBXZWJJbnNwZWN0b3IuU291
cmNlVmlldy5wcm90b3R5cGUgPSB7CiB9CiAKIFdlYkluc3BlY3Rvci5Tb3VyY2VWaWV3LnByb3Rv
dHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuUmVzb3VyY2VWaWV3LnByb3RvdHlwZTsKLQot
V2ViSW5zcGVjdG9yLlJlc291cmNlRnJhbWVEZWxlZ2F0ZUltcGwgPSBmdW5jdGlvbihyZXNvdXJj
ZSkKLXsKLSAgICBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWVEZWxlZ2F0ZS5jYWxsKHRoaXMpOwot
ICAgIHRoaXMuX3Jlc291cmNlID0gcmVzb3VyY2U7Ci19Ci0KLVdlYkluc3BlY3Rvci5SZXNvdXJj
ZUZyYW1lRGVsZWdhdGVJbXBsLnByb3RvdHlwZSA9IHsKLSAgICBjYW5FZGl0U2NyaXB0czogZnVu
Y3Rpb24oKQotICAgIHsKLSAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5wYW5lbHMuc2NyaXB0
cy5jYW5FZGl0U2NyaXB0cygpICYmIHRoaXMuX3Jlc291cmNlLnR5cGUgPT09IFdlYkluc3BlY3Rv
ci5SZXNvdXJjZS5UeXBlLlNjcmlwdDsKLSAgICB9LAotCi0gICAgZWRpdExpbmVDb21wbGV0ZTog
ZnVuY3Rpb24ocmV2ZXJ0RWRpdExpbmVDYWxsYmFjaywgbmV3Q29udGVudCkKLSAgICB7Ci0gICAg
ICAgIHRoaXMuX3Jlc291cmNlLnNldENvbnRlbnQobmV3Q29udGVudCwgcmV2ZXJ0RWRpdExpbmVD
YWxsYmFjayk7Ci0gICAgfSwKLQotICAgIHNjcmlwdHM6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAg
ICAgIHJldHVybiB0aGlzLl9yZXNvdXJjZS5zY3JpcHRzOwotICAgIH0KLX0KLQotV2ViSW5zcGVj
dG9yLlJlc291cmNlRnJhbWVEZWxlZ2F0ZUltcGwucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYklu
c3BlY3Rvci5Tb3VyY2VGcmFtZURlbGVnYXRlLnByb3RvdHlwZTsK
</data>
<flag name="review"
          id="66741"
          type_id="1"
          status="-"
          setter="pfeldman"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>75914</attachid>
            <date>2010-12-08 09:13:28 -0800</date>
            <delta_ts>2010-12-10 05:39:50 -0800</delta_ts>
            <desc>Patch.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>11520</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NjlhMTA2Mi4uMDg5Y2VlYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxMC0xMi0wOCAgUGF2ZWwgUG9kaXZp
bG92ICA8cG9kaXZpbG92QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBlbGltaW5hdGUgU291cmNlRnJh
bWVEZWxlZ2F0ZSBieSBwYXNzaW5nIHNjcmlwdHMgdG8gU291cmNlRnJhbWUgY29uc3RydWN0b3Iu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MDY3OQor
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHQuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuU2NyaXB0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHQucHJvdG90eXBl
LmdldCBsaW5lc0NvdW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdFZp
ZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0Vmlldyk6CisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
U2NyaXB0c1BhbmVsLnByb3RvdHlwZS5yZXNldCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250
LWVuZC9Tb3VyY2VGcmFtZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZSk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlLl9jcmVhdGVWaWV3
ZXJJZk5lZWRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBl
Ll9icmVha3BvaW50QWRkZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnBy
b3RvdHlwZS5fZG9FZGl0TGluZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUu
cHJvdG90eXBlLl9jb21taXRFZGl0TGluZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNl
RnJhbWUucHJvdG90eXBlLl9icmVha3BvaW50cyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291
cmNlRnJhbWUucHJvdG90eXBlLl9zb3VyY2VJREZvckxpbmUpOgorICAgICAgICAqIGluc3BlY3Rv
ci9mcm9udC1lbmQvU291cmNlVmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VW
aWV3KToKKwogMjAxMC0xMi0wOCAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBSZXZpZXdlZCBieSBQYXZlbCBGZWxkbWFuLgpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdC5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9TY3JpcHQuanMKaW5kZXggY2UxNGE1OS4uZjI5ZDM5MCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdC5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvU2NyaXB0LmpzCkBAIC0yNyw3ICsyNyw3IEBAIFdlYkluc3BlY3Rvci5TY3Jp
cHQgPSBmdW5jdGlvbihzb3VyY2VJRCwgc291cmNlVVJMLCBzb3VyY2UsIHN0YXJ0aW5nTGluZSwg
ZXJyb3JMCiB7CiAgICAgdGhpcy5zb3VyY2VJRCA9IHNvdXJjZUlEOwogICAgIHRoaXMuc291cmNl
VVJMID0gc291cmNlVVJMOwotICAgIHRoaXMuX3NvdXJjZSA9IHNvdXJjZTsKKyAgICB0aGlzLnNv
dXJjZSA9IHNvdXJjZTsKICAgICB0aGlzLnN0YXJ0aW5nTGluZSA9IHN0YXJ0aW5nTGluZTsKICAg
ICB0aGlzLmVycm9yTGluZSA9IGVycm9yTGluZTsKICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IGVy
cm9yTWVzc2FnZTsKQEAgLTU3LDEwICs1Nyw2IEBAIFdlYkluc3BlY3Rvci5TY3JpcHQuV29ybGRU
eXBlID0gewogICAgIEVYVEVOU0lPTlNfV09STEQ6IDEKIH0KIAotV2ViSW5zcGVjdG9yLlNjcmlw
dC5FdmVudHMgPSB7Ci0gICAgU291cmNlQ2hhbmdlZDogInNvdXJjZS1jaGFuZ2VkIgotfQotCiBX
ZWJJbnNwZWN0b3IuU2NyaXB0LnByb3RvdHlwZSA9IHsKICAgICBnZXQgbGluZXNDb3VudCgpCiAg
ICAgewpAQCAtNzUsMTkgKzcxLDcgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdC5wcm90b3R5cGUgPSB7
CiAgICAgICAgICAgICB0aGlzLl9saW5lc0NvdW50Kys7CiAgICAgICAgIH0KICAgICAgICAgcmV0
dXJuIHRoaXMuX2xpbmVzQ291bnQ7Ci0gICAgfSwKLQotICAgIGdldCBzb3VyY2UoKQotICAgIHsK
LSAgICAgICAgcmV0dXJuIHRoaXMuX3NvdXJjZTsKLSAgICB9LAotCi0gICAgc2V0IHNvdXJjZShz
b3VyY2UpCi0gICAgewotICAgICAgICB0aGlzLl9zb3VyY2UgPSBzb3VyY2U7Ci0gICAgICAgIHRo
aXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5TY3JpcHQuRXZlbnRzLlNv
dXJjZUNoYW5nZWQpOwogICAgIH0KIH0KIAogV2ViSW5zcGVjdG9yLlNjcmlwdC5wcm90b3R5cGUu
X19wcm90b19fID0gV2ViSW5zcGVjdG9yLk9iamVjdC5wcm90b3R5cGU7Ci0KZGlmZiAtLWdpdCBh
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRWaWV3LmpzIGIvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1NjcmlwdFZpZXcuanMKaW5kZXggMTk2MmZkZi4uMzE5MzkxYSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdFZpZXcuanMKKysrIGIv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdFZpZXcuanMKQEAgLTMzLDEwICszMyw3
IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRWaWV3ID0gZnVuY3Rpb24oc2NyaXB0KQogCiAgICAgdGhp
cy5fZnJhbWVOZWVkc1NldHVwID0gdHJ1ZTsKICAgICB0aGlzLl9zb3VyY2VGcmFtZVNldHVwID0g
ZmFsc2U7Ci0gICAgdmFyIGRlbGVnYXRlID0gbmV3IFdlYkluc3BlY3Rvci5TY3JpcHRGcmFtZURl
bGVnYXRlSW1wbCh0aGlzLnNjcmlwdCk7Ci0gICAgdGhpcy5zb3VyY2VGcmFtZSA9IG5ldyBXZWJJ
bnNwZWN0b3IuU291cmNlRnJhbWUodGhpcy5lbGVtZW50LCBkZWxlZ2F0ZSk7Ci0KLSAgICB0aGlz
LnNjcmlwdC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5TY3JpcHQuRXZlbnRzLlNvdXJj
ZUNoYW5nZWQsIHRoaXMuX3NjcmlwdFNvdXJjZUNoYW5nZWQsIHRoaXMpOworICAgIHRoaXMuc291
cmNlRnJhbWUgPSBuZXcgV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lKHRoaXMuZWxlbWVudCwgW3Nj
cmlwdF0sIGZhbHNlKTsKIH0KIAogV2ViSW5zcGVjdG9yLlNjcmlwdFZpZXcucHJvdG90eXBlID0g
ewpAQCAtODcsMTEgKzg0LDYgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdFZpZXcucHJvdG90eXBlID0g
ewogICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNjcmlwdC1yZXNvdXJjZS12
aWV3cyIpLmFwcGVuZENoaWxkKHRoaXMuZWxlbWVudCk7CiAgICAgfSwKIAotICAgIF9zY3JpcHRT
b3VyY2VDaGFuZ2VkOiBmdW5jdGlvbihldmVudCkKLSAgICB7Ci0gICAgICAgIHRoaXMuc291cmNl
RnJhbWUudXBkYXRlQ29udGVudCh0aGlzLl9wcmVwZW5kV2hpdGVzcGFjZSh0aGlzLnNjcmlwdC5z
b3VyY2UpKTsKLSAgICB9LAotCiAgICAgLy8gVGhlIGZvbGxvd2luZyBtZXRob2RzIGFyZSBwdWxs
ZWQgZnJvbSBTb3VyY2VWaWV3LCBzaW5jZSB0aGV5IGFyZQogICAgIC8vIGdlbmVyaWMgYW5kIHdv
cmsgd2l0aCBTY3JpcHRWaWV3IGp1c3QgZmluZS4KIApAQCAtMTEzLDI4ICsxMDUsMyBAQCBXZWJJ
bnNwZWN0b3IuU2NyaXB0Vmlldy5wcm90b3R5cGUgPSB7CiB9CiAKIFdlYkluc3BlY3Rvci5TY3Jp
cHRWaWV3LnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGU7
Ci0KLVdlYkluc3BlY3Rvci5TY3JpcHRGcmFtZURlbGVnYXRlSW1wbCA9IGZ1bmN0aW9uKHNjcmlw
dCkKLXsKLSAgICBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWVEZWxlZ2F0ZS5jYWxsKHRoaXMpOwot
ICAgIHRoaXMuX3NjcmlwdCA9IHNjcmlwdDsKLX0KLQotV2ViSW5zcGVjdG9yLlNjcmlwdEZyYW1l
RGVsZWdhdGVJbXBsLnByb3RvdHlwZSA9IHsKLSAgICBjYW5FZGl0U2NyaXB0czogZnVuY3Rpb24o
KQotICAgIHsKLSAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5wYW5lbHMuc2NyaXB0cy5jYW5F
ZGl0U2NyaXB0cygpOwotICAgIH0sCi0KLSAgICBlZGl0TGluZUNvbXBsZXRlOiBmdW5jdGlvbihy
ZXZlcnRFZGl0TGluZUNhbGxiYWNrLCBuZXdDb250ZW50KQotICAgIHsKLSAgICAgICAgdGhpcy5f
c2NyaXB0LnNvdXJjZSA9IG5ld0NvbnRlbnQ7Ci0gICAgfSwKLQotICAgIHNjcmlwdHM6IGZ1bmN0
aW9uKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBbdGhpcy5fc2NyaXB0XTsKLSAgICB9Ci19Ci0K
LVdlYkluc3BlY3Rvci5TY3JpcHRGcmFtZURlbGVnYXRlSW1wbC5wcm90b3R5cGUuX19wcm90b19f
ID0gV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lRGVsZWdhdGUucHJvdG90eXBlOwpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcyBiL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMKaW5kZXggMzM0Nzk4Yy4uZjQ0Yjc2
MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5q
cworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCkBAIC00
MzMsOCArNDMzLDEwIEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewog
ICAgICAgICBpZiAodGhpcy5fc291cmNlSURNYXApIHsKICAgICAgICAgICAgIGZvciAodmFyIHNv
dXJjZUlEIGluIHRoaXMuX3NvdXJjZUlETWFwKSB7CiAgICAgICAgICAgICAgICAgdmFyIG9iamVj
dCA9IHRoaXMuX3NvdXJjZUlETWFwW3NvdXJjZUlEXTsKLSAgICAgICAgICAgICAgICBpZiAob2Jq
ZWN0IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLlJlc291cmNlKQorICAgICAgICAgICAgICAgIGlm
IChvYmplY3QgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuUmVzb3VyY2UpIHsKICAgICAgICAgICAg
ICAgICAgICAgb2JqZWN0LnJlbW92ZUFsbFNjcmlwdHMoKTsKKyAgICAgICAgICAgICAgICAgICAg
ZGVsZXRlIG9iamVjdC5fcmVzb3VyY2VzVmlldzsKKyAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICB9CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1NvdXJjZUZyYW1lLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZy
YW1lLmpzCmluZGV4IDhmMTAxZTIuLjVmNjNmZDYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9Tb3VyY2VGcmFtZS5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvU291cmNlRnJhbWUuanMKQEAgLTI4LDEwICsyOCwxMyBAQAogICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
ICAqLwogCi1XZWJJbnNwZWN0b3IuU291cmNlRnJhbWUgPSBmdW5jdGlvbihwYXJlbnRFbGVtZW50
LCBkZWxlZ2F0ZSkKK1dlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZSA9IGZ1bmN0aW9uKHBhcmVudEVs
ZW1lbnQsIHNjcmlwdHMsIGNhbkVkaXRTY3JpcHRzKQogewogICAgIHRoaXMuX3BhcmVudEVsZW1l
bnQgPSBwYXJlbnRFbGVtZW50OwotICAgIHRoaXMuX2RlbGVnYXRlID0gZGVsZWdhdGU7CisgICAg
dGhpcy5fc2NyaXB0cyA9IHt9OworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2NyaXB0cy5sZW5n
dGg7ICsraSkKKyAgICAgICAgdGhpcy5fc2NyaXB0c1tzY3JpcHRzW2ldLnNvdXJjZUlEXSA9IHNj
cmlwdHNbaV07CisgICAgdGhpcy5fY2FuRWRpdFNjcmlwdHMgPSBjYW5FZGl0U2NyaXB0czsKIAog
ICAgIHRoaXMuX3RleHRNb2RlbCA9IG5ldyBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1vZGVsKCk7
CiAgICAgdGhpcy5fdGV4dE1vZGVsLnJlcGxhY2VUYWJzV2l0aFNwYWNlcyA9IHRydWU7CkBAIC0y
MjEsNyArMjI0LDcgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnByb3RvdHlwZSA9IHsKIAog
ICAgICAgICB0aGlzLl90ZXh0Vmlld2VyLmVuZFVwZGF0ZXMoKTsKIAotICAgICAgICBpZiAodGhp
cy5fZGVsZWdhdGUuY2FuRWRpdFNjcmlwdHMoKSkKKyAgICAgICAgaWYgKHRoaXMuX2NhbkVkaXRT
Y3JpcHRzKQogICAgICAgICAgICAgdGhpcy5fdGV4dFZpZXdlci5lZGl0Q2FsbGJhY2sgPSB0aGlz
Ll9lZGl0TGluZS5iaW5kKHRoaXMpOwogICAgIH0sCiAKQEAgLTQxNSw3ICs0MTgsNyBAQCBXZWJJ
bnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlID0gewogICAgIHsKICAgICAgICAgdmFyIGJy
ZWFrcG9pbnQgPSBldmVudC5kYXRhOwogCi0gICAgICAgIGlmICh0aGlzLl9zaG91bGREaXNwbGF5
QnJlYWtwb2ludChicmVha3BvaW50KSkKKyAgICAgICAgaWYgKGJyZWFrcG9pbnQuc291cmNlSUQg
aW4gdGhpcy5fc2NyaXB0cykKICAgICAgICAgICAgIHRoaXMuX2FkZEJyZWFrcG9pbnQoYnJlYWtw
b2ludCk7CiAgICAgfSwKIApAQCAtNzk3LDEwICs4MDAsMTcgQEAgV2ViSW5zcGVjdG9yLlNvdXJj
ZUZyYW1lLnByb3RvdHlwZSA9IHsKICAgICBfZG9FZGl0TGluZTogZnVuY3Rpb24oZWRpdERhdGEs
IGNhbmNlbEVkaXRpbmdDYWxsYmFjaykKICAgICB7CiAgICAgICAgIHZhciByZXZlcnRFZGl0aW5n
Q2FsbGJhY2sgPSB0aGlzLl9yZXZlcnRFZGl0TGluZS5iaW5kKHRoaXMsIGVkaXREYXRhKTsKLSAg
ICAgICAgdmFyIGNvbW1pdEVkaXRpbmdDYWxsYmFjayA9IHRoaXMuX2RlbGVnYXRlLmVkaXRMaW5l
Q29tcGxldGUuYmluZCh0aGlzLl9kZWxlZ2F0ZSwgcmV2ZXJ0RWRpdGluZ0NhbGxiYWNrKTsKKyAg
ICAgICAgdmFyIGNvbW1pdEVkaXRpbmdDYWxsYmFjayA9IHRoaXMuX2NvbW1pdEVkaXRMaW5lLmJp
bmQodGhpcywgZWRpdERhdGEsIHJldmVydEVkaXRpbmdDYWxsYmFjayk7CiAgICAgICAgIFdlYklu
c3BlY3Rvci5wYW5lbHMuc2NyaXB0cy5lZGl0U2NyaXB0U291cmNlKGVkaXREYXRhLCBjb21taXRF
ZGl0aW5nQ2FsbGJhY2ssIGNhbmNlbEVkaXRpbmdDYWxsYmFjayk7CiAgICAgfSwKIAorICAgIF9j
b21taXRFZGl0TGluZTogZnVuY3Rpb24oZWRpdERhdGEsIHJldmVydEVkaXRMaW5lQ2FsbGJhY2ss
IG5ld0NvbnRlbnQpCisgICAgeworICAgICAgICB2YXIgc2NyaXB0ID0gdGhpcy5fc2NyaXB0c1tl
ZGl0RGF0YS5zb3VyY2VJRF07CisgICAgICAgIGlmIChzY3JpcHQucmVzb3VyY2UpCisgICAgICAg
ICAgICBzY3JpcHQucmVzb3VyY2Uuc2V0Q29udGVudChuZXdDb250ZW50LCByZXZlcnRFZGl0TGlu
ZUNhbGxiYWNrKTsKKyAgICB9LAorCiAgICAgX3NldEJyZWFrcG9pbnQ6IGZ1bmN0aW9uKGxpbmVO
dW1iZXIpCiAgICAgewogICAgICAgICB2YXIgc291cmNlSUQgPSB0aGlzLl9zb3VyY2VJREZvckxp
bmUobGluZU51bWJlcik7CkBAIC04MTEsMTUgKzgyMSw4IEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VG
cmFtZS5wcm90b3R5cGUgPSB7CiAKICAgICBfYnJlYWtwb2ludHM6IGZ1bmN0aW9uKCkKICAgICB7
Ci0gICAgICAgIHZhciBzb3VyY2VJRHMgPSB7fTsKLSAgICAgICAgdmFyIHNjcmlwdHMgPSB0aGlz
Ll9kZWxlZ2F0ZS5zY3JpcHRzKCk7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2NyaXB0
cy5sZW5ndGg7ICsraSkKLSAgICAgICAgICAgIHNvdXJjZUlEc1tzY3JpcHRzW2ldLnNvdXJjZUlE
XSA9IHRydWU7Ci0gICAgICAgIGZ1bmN0aW9uIGZpbHRlcihicmVha3BvaW50KQotICAgICAgICB7
Ci0gICAgICAgICAgICByZXR1cm4gYnJlYWtwb2ludC5zb3VyY2VJRCBpbiBzb3VyY2VJRHM7Ci0g
ICAgICAgIH0KLSAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLmZpbmRC
cmVha3BvaW50cyhmaWx0ZXIpOworICAgICAgICB2YXIgc2NyaXB0cyA9IHRoaXMuX3NjcmlwdHM7
CisgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5maW5kQnJlYWtwb2lu
dHMoZnVuY3Rpb24oYikgeyByZXR1cm4gYi5zb3VyY2VJRCBpbiBzY3JpcHRzOyB9KTsKICAgICB9
LAogCiAgICAgX2ZpbmRCcmVha3BvaW50OiBmdW5jdGlvbihsaW5lTnVtYmVyKQpAQCAtODI4LDUx
ICs4MzEsMTkgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnByb3RvdHlwZSA9IHsKICAgICAg
ICAgcmV0dXJuIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLmZpbmRCcmVha3BvaW50KHNvdXJj
ZUlELCBsaW5lTnVtYmVyKTsKICAgICB9LAogCi0gICAgX3Nob3VsZERpc3BsYXlCcmVha3BvaW50
OiBmdW5jdGlvbihicmVha3BvaW50KQotICAgIHsKLSAgICAgICAgdmFyIHNjcmlwdHMgPSB0aGlz
Ll9kZWxlZ2F0ZS5zY3JpcHRzKCk7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2NyaXB0
cy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgaWYgKGJyZWFrcG9pbnQuc291cmNlSUQgPT09
IHNjcmlwdHNbaV0uc291cmNlSUQpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAg
ICAgIH0KLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0sCi0KICAgICBfc291cmNlSURGb3JM
aW5lOiBmdW5jdGlvbihsaW5lTnVtYmVyKQogICAgIHsKLSAgICAgICAgdmFyIHNvdXJjZUlEID0g
bnVsbDsKLSAgICAgICAgdmFyIHNjcmlwdHMgPSB0aGlzLl9kZWxlZ2F0ZS5zY3JpcHRzKCk7Cisg
ICAgICAgIHZhciBzb3VyY2VJREZvckxpbmUgPSBudWxsOwogICAgICAgICB2YXIgY2xvc2VzdFN0
YXJ0aW5nTGluZSA9IDA7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2NyaXB0cy5sZW5n
dGg7ICsraSkgewotICAgICAgICAgICAgdmFyIHNjcmlwdCA9IHNjcmlwdHNbaV07CisgICAgICAg
IGZvciAodmFyIHNvdXJjZUlEIGluIHRoaXMuX3NjcmlwdHMpIHsKKyAgICAgICAgICAgIHZhciBz
Y3JpcHQgPSB0aGlzLl9zY3JpcHRzW3NvdXJjZUlEXTsKICAgICAgICAgICAgIGlmIChzY3JpcHQu
c3RhcnRpbmdMaW5lIDw9IGxpbmVOdW1iZXIgJiYgc2NyaXB0LnN0YXJ0aW5nTGluZSA+PSBjbG9z
ZXN0U3RhcnRpbmdMaW5lKSB7CiAgICAgICAgICAgICAgICAgY2xvc2VzdFN0YXJ0aW5nTGluZSA9
IHNjcmlwdC5zdGFydGluZ0xpbmU7Ci0gICAgICAgICAgICAgICAgc291cmNlSUQgPSBzY3JpcHQu
c291cmNlSUQ7CisgICAgICAgICAgICAgICAgc291cmNlSURGb3JMaW5lID0gc291cmNlSUQ7CiAg
ICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHNvdXJjZUlEOworICAgICAg
ICByZXR1cm4gc291cmNlSURGb3JMaW5lOwogICAgIH0KIH0KIAogV2ViSW5zcGVjdG9yLlNvdXJj
ZUZyYW1lLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuT2JqZWN0LnByb3RvdHlw
ZTsKLQotV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lRGVsZWdhdGUgPSBmdW5jdGlvbigpCi17Ci19
Ci0KLVdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZURlbGVnYXRlLnByb3RvdHlwZSA9IHsKLSAgICBj
YW5FZGl0U2NyaXB0czogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgLy8gSW1wbGVtZW50ZWQg
Ynkgc3ViY2xhc3Nlcy4KLSAgICB9LAotCi0gICAgZWRpdExpbmVDb21wbGV0ZTogZnVuY3Rpb24o
cmV2ZXJ0RWRpdExpbmVDYWxsYmFjaywgbmV3Q29udGVudCkKLSAgICB7Ci0gICAgICAgIC8vIElt
cGxlbWVudGVkIGJ5IHN1YmNsYXNzZXMuCi0gICAgfSwKLQotICAgIHNjcmlwdHM6IGZ1bmN0aW9u
KCkKLSAgICB7Ci0gICAgICAgIC8vIEltcGxlbWVudGVkIGJ5IHN1YmNsYXNzZXMuCi0gICAgfQot
fQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZVZpZXcuanMg
Yi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlVmlldy5qcwppbmRleCA4Y2NhZGQz
Li5mZTlhN2UzIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNl
Vmlldy5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlVmlldy5qcwpA
QCAtMzIsOCArMzIsOCBAQCBXZWJJbnNwZWN0b3IuU291cmNlVmlldyA9IGZ1bmN0aW9uKHJlc291
cmNlKQogCiAgICAgdGhpcy5lbGVtZW50LmFkZFN0eWxlQ2xhc3MoInNvdXJjZSIpOwogCi0gICAg
dmFyIGRlbGVnYXRlID0gbmV3IFdlYkluc3BlY3Rvci5SZXNvdXJjZUZyYW1lRGVsZWdhdGVJbXBs
KHRoaXMucmVzb3VyY2UpOwotICAgIHRoaXMuc291cmNlRnJhbWUgPSBuZXcgV2ViSW5zcGVjdG9y
LlNvdXJjZUZyYW1lKHRoaXMuZWxlbWVudCwgZGVsZWdhdGUpOworICAgIHZhciBjYW5FZGl0U2Ny
aXB0cyA9IFdlYkluc3BlY3Rvci5wYW5lbHMuc2NyaXB0cy5jYW5FZGl0U2NyaXB0cygpICYmIHJl
c291cmNlLnR5cGUgPT09IFdlYkluc3BlY3Rvci5SZXNvdXJjZS5UeXBlLlNjcmlwdDsKKyAgICB0
aGlzLnNvdXJjZUZyYW1lID0gbmV3IFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZSh0aGlzLmVsZW1l
bnQsIHJlc291cmNlLnNjcmlwdHMsIGNhbkVkaXRTY3JpcHRzKTsKICAgICByZXNvdXJjZS5hZGRF
dmVudExpc3RlbmVyKCJmaW5pc2hlZCIsIHRoaXMuX3Jlc291cmNlTG9hZGluZ0ZpbmlzaGVkLCB0
aGlzKTsKICAgICB0aGlzLl9mcmFtZU5lZWRzU2V0dXAgPSB0cnVlOwogfQpAQCAtMjM4LDI4ICsy
MzgsMyBAQCBXZWJJbnNwZWN0b3IuU291cmNlVmlldy5wcm90b3R5cGUgPSB7CiB9CiAKIFdlYklu
c3BlY3Rvci5Tb3VyY2VWaWV3LnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuUmVz
b3VyY2VWaWV3LnByb3RvdHlwZTsKLQotV2ViSW5zcGVjdG9yLlJlc291cmNlRnJhbWVEZWxlZ2F0
ZUltcGwgPSBmdW5jdGlvbihyZXNvdXJjZSkKLXsKLSAgICBXZWJJbnNwZWN0b3IuU291cmNlRnJh
bWVEZWxlZ2F0ZS5jYWxsKHRoaXMpOwotICAgIHRoaXMuX3Jlc291cmNlID0gcmVzb3VyY2U7Ci19
Ci0KLVdlYkluc3BlY3Rvci5SZXNvdXJjZUZyYW1lRGVsZWdhdGVJbXBsLnByb3RvdHlwZSA9IHsK
LSAgICBjYW5FZGl0U2NyaXB0czogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgcmV0dXJuIFdl
Ykluc3BlY3Rvci5wYW5lbHMuc2NyaXB0cy5jYW5FZGl0U2NyaXB0cygpICYmIHRoaXMuX3Jlc291
cmNlLnR5cGUgPT09IFdlYkluc3BlY3Rvci5SZXNvdXJjZS5UeXBlLlNjcmlwdDsKLSAgICB9LAot
Ci0gICAgZWRpdExpbmVDb21wbGV0ZTogZnVuY3Rpb24ocmV2ZXJ0RWRpdExpbmVDYWxsYmFjaywg
bmV3Q29udGVudCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX3Jlc291cmNlLnNldENvbnRlbnQobmV3
Q29udGVudCwgcmV2ZXJ0RWRpdExpbmVDYWxsYmFjayk7Ci0gICAgfSwKLQotICAgIHNjcmlwdHM6
IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9yZXNvdXJjZS5zY3JpcHRz
OwotICAgIH0KLX0KLQotV2ViSW5zcGVjdG9yLlJlc291cmNlRnJhbWVEZWxlZ2F0ZUltcGwucHJv
dG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZURlbGVnYXRlLnByb3Rv
dHlwZTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76186</attachid>
            <date>2010-12-10 05:39:50 -0800</date>
            <delta_ts>2010-12-10 08:11:43 -0800</delta_ts>
            <desc>Do not regress live edit in ScriptView.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>10401</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NDg5YzVkOC4uOGUzNzIxNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMC0xMi0xMCAgUGF2ZWwgUG9kaXZp
bG92ICA8cG9kaXZpbG92QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBlbGltaW5hdGUgU291cmNlRnJh
bWVEZWxlZ2F0ZSBieSBwYXNzaW5nIHNjcmlwdHMgdG8gU291cmNlRnJhbWUgY29uc3RydWN0b3Iu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MDY3OQor
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHQuanM6CisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC9TY3JpcHRWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNj
cmlwdFZpZXcpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpz
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUucmVzZXQpOgor
ICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRnJhbWUuanM6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuU291cmNlRnJhbWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZUZy
YW1lLnByb3RvdHlwZS5fY3JlYXRlVmlld2VySWZOZWVkZWQpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlNvdXJjZUZyYW1lLnByb3RvdHlwZS5fYnJlYWtwb2ludEFkZGVkKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUuX2RvRWRpdExpbmUpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnByb3RvdHlwZS5fY29tbWl0RWRpdExpbmUpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnByb3RvdHlwZS5fYnJlYWtwb2ludHMpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnByb3RvdHlwZS5fc291cmNlSURGb3JM
aW5lKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZVZpZXcuanM6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuU291cmNlVmlldyk6CisKIDIwMTAtMTItMDkgIFNhbSBXZWluaWcg
IDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBHYXZpbiBCYXJyYWNsb3Vn
aC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHQuanMgYi9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0LmpzCmluZGV4IGNlMTRhNTkuLjE4NGZl
OTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHQuanMKKysr
IGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdC5qcwpAQCAtOTAsNCArOTAsMyBA
QCBXZWJJbnNwZWN0b3IuU2NyaXB0LnByb3RvdHlwZSA9IHsKIH0KIAogV2ViSW5zcGVjdG9yLlNj
cmlwdC5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLk9iamVjdC5wcm90b3R5cGU7
Ci0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRWaWV3Lmpz
IGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdFZpZXcuanMKaW5kZXggMTk2MmZk
Zi4uMzlkYWU1NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Njcmlw
dFZpZXcuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdFZpZXcuanMK
QEAgLTMwLDEzICszMCwxMSBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0VmlldyA9IGZ1bmN0aW9uKHNj
cmlwdCkKICAgICB0aGlzLmVsZW1lbnQuYWRkU3R5bGVDbGFzcygic2NyaXB0LXZpZXciKTsKIAog
ICAgIHRoaXMuc2NyaXB0ID0gc2NyaXB0OworICAgIHRoaXMuc2NyaXB0LmFkZEV2ZW50TGlzdGVu
ZXIoV2ViSW5zcGVjdG9yLlNjcmlwdC5FdmVudHMuU291cmNlQ2hhbmdlZCwgdGhpcy5fc2NyaXB0
U291cmNlQ2hhbmdlZCwgdGhpcyk7CiAKICAgICB0aGlzLl9mcmFtZU5lZWRzU2V0dXAgPSB0cnVl
OwogICAgIHRoaXMuX3NvdXJjZUZyYW1lU2V0dXAgPSBmYWxzZTsKLSAgICB2YXIgZGVsZWdhdGUg
PSBuZXcgV2ViSW5zcGVjdG9yLlNjcmlwdEZyYW1lRGVsZWdhdGVJbXBsKHRoaXMuc2NyaXB0KTsK
LSAgICB0aGlzLnNvdXJjZUZyYW1lID0gbmV3IFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZSh0aGlz
LmVsZW1lbnQsIGRlbGVnYXRlKTsKLQotICAgIHRoaXMuc2NyaXB0LmFkZEV2ZW50TGlzdGVuZXIo
V2ViSW5zcGVjdG9yLlNjcmlwdC5FdmVudHMuU291cmNlQ2hhbmdlZCwgdGhpcy5fc2NyaXB0U291
cmNlQ2hhbmdlZCwgdGhpcyk7CisgICAgdGhpcy5zb3VyY2VGcmFtZSA9IG5ldyBXZWJJbnNwZWN0
b3IuU291cmNlRnJhbWUodGhpcy5lbGVtZW50LCBbc2NyaXB0XSwgV2ViSW5zcGVjdG9yLnBhbmVs
cy5zY3JpcHRzLmNhbkVkaXRTY3JpcHRzKCkpOwogfQogCiBXZWJJbnNwZWN0b3IuU2NyaXB0Vmll
dy5wcm90b3R5cGUgPSB7CkBAIC0xMTMsMjggKzExMSwzIEBAIFdlYkluc3BlY3Rvci5TY3JpcHRW
aWV3LnByb3RvdHlwZSA9IHsKIH0KIAogV2ViSW5zcGVjdG9yLlNjcmlwdFZpZXcucHJvdG90eXBl
Ll9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZTsKLQotV2ViSW5zcGVjdG9y
LlNjcmlwdEZyYW1lRGVsZWdhdGVJbXBsID0gZnVuY3Rpb24oc2NyaXB0KQotewotICAgIFdlYklu
c3BlY3Rvci5Tb3VyY2VGcmFtZURlbGVnYXRlLmNhbGwodGhpcyk7Ci0gICAgdGhpcy5fc2NyaXB0
ID0gc2NyaXB0OwotfQotCi1XZWJJbnNwZWN0b3IuU2NyaXB0RnJhbWVEZWxlZ2F0ZUltcGwucHJv
dG90eXBlID0gewotICAgIGNhbkVkaXRTY3JpcHRzOiBmdW5jdGlvbigpCi0gICAgewotICAgICAg
ICByZXR1cm4gV2ViSW5zcGVjdG9yLnBhbmVscy5zY3JpcHRzLmNhbkVkaXRTY3JpcHRzKCk7Ci0g
ICAgfSwKLQotICAgIGVkaXRMaW5lQ29tcGxldGU6IGZ1bmN0aW9uKHJldmVydEVkaXRMaW5lQ2Fs
bGJhY2ssIG5ld0NvbnRlbnQpCi0gICAgewotICAgICAgICB0aGlzLl9zY3JpcHQuc291cmNlID0g
bmV3Q29udGVudDsKLSAgICB9LAotCi0gICAgc2NyaXB0czogZnVuY3Rpb24oKQotICAgIHsKLSAg
ICAgICAgcmV0dXJuIFt0aGlzLl9zY3JpcHRdOwotICAgIH0KLX0KLQotV2ViSW5zcGVjdG9yLlNj
cmlwdEZyYW1lRGVsZWdhdGVJbXBsLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3Iu
U291cmNlRnJhbWVEZWxlZ2F0ZS5wcm90b3R5cGU7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1NjcmlwdHNQYW5lbC5qcwppbmRleCAzMzQ3OThjLi5mNDRiNzYwIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCisrKyBiL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMKQEAgLTQzMyw4ICs0MzMsMTAgQEAg
V2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIGlmICh0aGlz
Ll9zb3VyY2VJRE1hcCkgewogICAgICAgICAgICAgZm9yICh2YXIgc291cmNlSUQgaW4gdGhpcy5f
c291cmNlSURNYXApIHsKICAgICAgICAgICAgICAgICB2YXIgb2JqZWN0ID0gdGhpcy5fc291cmNl
SURNYXBbc291cmNlSURdOwotICAgICAgICAgICAgICAgIGlmIChvYmplY3QgaW5zdGFuY2VvZiBX
ZWJJbnNwZWN0b3IuUmVzb3VyY2UpCisgICAgICAgICAgICAgICAgaWYgKG9iamVjdCBpbnN0YW5j
ZW9mIFdlYkluc3BlY3Rvci5SZXNvdXJjZSkgewogICAgICAgICAgICAgICAgICAgICBvYmplY3Qu
cmVtb3ZlQWxsU2NyaXB0cygpOworICAgICAgICAgICAgICAgICAgICBkZWxldGUgb2JqZWN0Ll9y
ZXNvdXJjZXNWaWV3OworICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAg
fQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRnJhbWUu
anMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRnJhbWUuanMKaW5kZXggOGYx
MDFlMi4uZjE3YTM4NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Nv
dXJjZUZyYW1lLmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGcmFt
ZS5qcwpAQCAtMjgsMTAgKzI4LDEzIEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLVdlYkluc3Bl
Y3Rvci5Tb3VyY2VGcmFtZSA9IGZ1bmN0aW9uKHBhcmVudEVsZW1lbnQsIGRlbGVnYXRlKQorV2Vi
SW5zcGVjdG9yLlNvdXJjZUZyYW1lID0gZnVuY3Rpb24ocGFyZW50RWxlbWVudCwgc2NyaXB0cywg
Y2FuRWRpdFNjcmlwdHMpCiB7CiAgICAgdGhpcy5fcGFyZW50RWxlbWVudCA9IHBhcmVudEVsZW1l
bnQ7Ci0gICAgdGhpcy5fZGVsZWdhdGUgPSBkZWxlZ2F0ZTsKKyAgICB0aGlzLl9zY3JpcHRzID0g
e307CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzY3JpcHRzLmxlbmd0aDsgKytpKQorICAgICAg
ICB0aGlzLl9zY3JpcHRzW3NjcmlwdHNbaV0uc291cmNlSURdID0gc2NyaXB0c1tpXTsKKyAgICB0
aGlzLl9jYW5FZGl0U2NyaXB0cyA9IGNhbkVkaXRTY3JpcHRzOwogCiAgICAgdGhpcy5fdGV4dE1v
ZGVsID0gbmV3IFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTW9kZWwoKTsKICAgICB0aGlzLl90ZXh0
TW9kZWwucmVwbGFjZVRhYnNXaXRoU3BhY2VzID0gdHJ1ZTsKQEAgLTIyMSw3ICsyMjQsNyBAQCBX
ZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlID0gewogCiAgICAgICAgIHRoaXMuX3Rl
eHRWaWV3ZXIuZW5kVXBkYXRlcygpOwogCi0gICAgICAgIGlmICh0aGlzLl9kZWxlZ2F0ZS5jYW5F
ZGl0U2NyaXB0cygpKQorICAgICAgICBpZiAodGhpcy5fY2FuRWRpdFNjcmlwdHMpCiAgICAgICAg
ICAgICB0aGlzLl90ZXh0Vmlld2VyLmVkaXRDYWxsYmFjayA9IHRoaXMuX2VkaXRMaW5lLmJpbmQo
dGhpcyk7CiAgICAgfSwKIApAQCAtNDE1LDcgKzQxOCw3IEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VG
cmFtZS5wcm90b3R5cGUgPSB7CiAgICAgewogICAgICAgICB2YXIgYnJlYWtwb2ludCA9IGV2ZW50
LmRhdGE7CiAKLSAgICAgICAgaWYgKHRoaXMuX3Nob3VsZERpc3BsYXlCcmVha3BvaW50KGJyZWFr
cG9pbnQpKQorICAgICAgICBpZiAoYnJlYWtwb2ludC5zb3VyY2VJRCBpbiB0aGlzLl9zY3JpcHRz
KQogICAgICAgICAgICAgdGhpcy5fYWRkQnJlYWtwb2ludChicmVha3BvaW50KTsKICAgICB9LAog
CkBAIC03OTcsMTAgKzgwMCwxOCBAQCBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBl
ID0gewogICAgIF9kb0VkaXRMaW5lOiBmdW5jdGlvbihlZGl0RGF0YSwgY2FuY2VsRWRpdGluZ0Nh
bGxiYWNrKQogICAgIHsKICAgICAgICAgdmFyIHJldmVydEVkaXRpbmdDYWxsYmFjayA9IHRoaXMu
X3JldmVydEVkaXRMaW5lLmJpbmQodGhpcywgZWRpdERhdGEpOwotICAgICAgICB2YXIgY29tbWl0
RWRpdGluZ0NhbGxiYWNrID0gdGhpcy5fZGVsZWdhdGUuZWRpdExpbmVDb21wbGV0ZS5iaW5kKHRo
aXMuX2RlbGVnYXRlLCByZXZlcnRFZGl0aW5nQ2FsbGJhY2spOworICAgICAgICB2YXIgY29tbWl0
RWRpdGluZ0NhbGxiYWNrID0gdGhpcy5fY29tbWl0RWRpdExpbmUuYmluZCh0aGlzLCBlZGl0RGF0
YSwgcmV2ZXJ0RWRpdGluZ0NhbGxiYWNrKTsKICAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5z
Y3JpcHRzLmVkaXRTY3JpcHRTb3VyY2UoZWRpdERhdGEsIGNvbW1pdEVkaXRpbmdDYWxsYmFjaywg
Y2FuY2VsRWRpdGluZ0NhbGxiYWNrKTsKICAgICB9LAogCisgICAgX2NvbW1pdEVkaXRMaW5lOiBm
dW5jdGlvbihlZGl0RGF0YSwgcmV2ZXJ0RWRpdExpbmVDYWxsYmFjaywgbmV3Q29udGVudCkKKyAg
ICB7CisgICAgICAgIHZhciBzY3JpcHQgPSB0aGlzLl9zY3JpcHRzW2VkaXREYXRhLnNvdXJjZUlE
XTsKKyAgICAgICAgc2NyaXB0LnNvdXJjZSA9IG5ld0NvbnRlbnQ7CisgICAgICAgIGlmIChzY3Jp
cHQucmVzb3VyY2UpCisgICAgICAgICAgICBzY3JpcHQucmVzb3VyY2Uuc2V0Q29udGVudChuZXdD
b250ZW50LCByZXZlcnRFZGl0TGluZUNhbGxiYWNrKTsKKyAgICB9LAorCiAgICAgX3NldEJyZWFr
cG9pbnQ6IGZ1bmN0aW9uKGxpbmVOdW1iZXIpCiAgICAgewogICAgICAgICB2YXIgc291cmNlSUQg
PSB0aGlzLl9zb3VyY2VJREZvckxpbmUobGluZU51bWJlcik7CkBAIC04MTEsMTUgKzgyMiw4IEBA
IFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUgPSB7CiAKICAgICBfYnJlYWtwb2lu
dHM6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIHZhciBzb3VyY2VJRHMgPSB7fTsKLSAgICAg
ICAgdmFyIHNjcmlwdHMgPSB0aGlzLl9kZWxlZ2F0ZS5zY3JpcHRzKCk7Ci0gICAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgc2NyaXB0cy5sZW5ndGg7ICsraSkKLSAgICAgICAgICAgIHNvdXJjZUlE
c1tzY3JpcHRzW2ldLnNvdXJjZUlEXSA9IHRydWU7Ci0gICAgICAgIGZ1bmN0aW9uIGZpbHRlcihi
cmVha3BvaW50KQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYnJlYWtwb2ludC5zb3Vy
Y2VJRCBpbiBzb3VyY2VJRHM7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rv
ci5kZWJ1Z2dlck1vZGVsLmZpbmRCcmVha3BvaW50cyhmaWx0ZXIpOworICAgICAgICB2YXIgc2Ny
aXB0cyA9IHRoaXMuX3NjcmlwdHM7CisgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuZGVidWdn
ZXJNb2RlbC5maW5kQnJlYWtwb2ludHMoZnVuY3Rpb24oYikgeyByZXR1cm4gYi5zb3VyY2VJRCBp
biBzY3JpcHRzOyB9KTsKICAgICB9LAogCiAgICAgX2ZpbmRCcmVha3BvaW50OiBmdW5jdGlvbihs
aW5lTnVtYmVyKQpAQCAtODI4LDUxICs4MzIsMTkgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1l
LnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVs
LmZpbmRCcmVha3BvaW50KHNvdXJjZUlELCBsaW5lTnVtYmVyKTsKICAgICB9LAogCi0gICAgX3No
b3VsZERpc3BsYXlCcmVha3BvaW50OiBmdW5jdGlvbihicmVha3BvaW50KQotICAgIHsKLSAgICAg
ICAgdmFyIHNjcmlwdHMgPSB0aGlzLl9kZWxlZ2F0ZS5zY3JpcHRzKCk7Ci0gICAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgc2NyaXB0cy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgaWYgKGJy
ZWFrcG9pbnQuc291cmNlSUQgPT09IHNjcmlwdHNbaV0uc291cmNlSUQpCi0gICAgICAgICAgICAg
ICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0s
Ci0KICAgICBfc291cmNlSURGb3JMaW5lOiBmdW5jdGlvbihsaW5lTnVtYmVyKQogICAgIHsKLSAg
ICAgICAgdmFyIHNvdXJjZUlEID0gbnVsbDsKLSAgICAgICAgdmFyIHNjcmlwdHMgPSB0aGlzLl9k
ZWxlZ2F0ZS5zY3JpcHRzKCk7CisgICAgICAgIHZhciBzb3VyY2VJREZvckxpbmUgPSBudWxsOwog
ICAgICAgICB2YXIgY2xvc2VzdFN0YXJ0aW5nTGluZSA9IDA7Ci0gICAgICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgc2NyaXB0cy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgdmFyIHNjcmlwdCA9
IHNjcmlwdHNbaV07CisgICAgICAgIGZvciAodmFyIHNvdXJjZUlEIGluIHRoaXMuX3NjcmlwdHMp
IHsKKyAgICAgICAgICAgIHZhciBzY3JpcHQgPSB0aGlzLl9zY3JpcHRzW3NvdXJjZUlEXTsKICAg
ICAgICAgICAgIGlmIChzY3JpcHQuc3RhcnRpbmdMaW5lIDw9IGxpbmVOdW1iZXIgJiYgc2NyaXB0
LnN0YXJ0aW5nTGluZSA+PSBjbG9zZXN0U3RhcnRpbmdMaW5lKSB7CiAgICAgICAgICAgICAgICAg
Y2xvc2VzdFN0YXJ0aW5nTGluZSA9IHNjcmlwdC5zdGFydGluZ0xpbmU7Ci0gICAgICAgICAgICAg
ICAgc291cmNlSUQgPSBzY3JpcHQuc291cmNlSUQ7CisgICAgICAgICAgICAgICAgc291cmNlSURG
b3JMaW5lID0gc291cmNlSUQ7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICAgICAgcmV0
dXJuIHNvdXJjZUlEOworICAgICAgICByZXR1cm4gc291cmNlSURGb3JMaW5lOwogICAgIH0KIH0K
IAogV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNw
ZWN0b3IuT2JqZWN0LnByb3RvdHlwZTsKLQotV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lRGVsZWdh
dGUgPSBmdW5jdGlvbigpCi17Ci19Ci0KLVdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZURlbGVnYXRl
LnByb3RvdHlwZSA9IHsKLSAgICBjYW5FZGl0U2NyaXB0czogZnVuY3Rpb24oKQotICAgIHsKLSAg
ICAgICAgLy8gSW1wbGVtZW50ZWQgYnkgc3ViY2xhc3Nlcy4KLSAgICB9LAotCi0gICAgZWRpdExp
bmVDb21wbGV0ZTogZnVuY3Rpb24ocmV2ZXJ0RWRpdExpbmVDYWxsYmFjaywgbmV3Q29udGVudCkK
LSAgICB7Ci0gICAgICAgIC8vIEltcGxlbWVudGVkIGJ5IHN1YmNsYXNzZXMuCi0gICAgfSwKLQot
ICAgIHNjcmlwdHM6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIC8vIEltcGxlbWVudGVkIGJ5
IHN1YmNsYXNzZXMuCi0gICAgfQotfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1NvdXJjZVZpZXcuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNl
Vmlldy5qcwppbmRleCA4Y2NhZGQzLi5mZTlhN2UzIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvU291cmNlVmlldy5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvU291cmNlVmlldy5qcwpAQCAtMzIsOCArMzIsOCBAQCBXZWJJbnNwZWN0b3IuU291cmNl
VmlldyA9IGZ1bmN0aW9uKHJlc291cmNlKQogCiAgICAgdGhpcy5lbGVtZW50LmFkZFN0eWxlQ2xh
c3MoInNvdXJjZSIpOwogCi0gICAgdmFyIGRlbGVnYXRlID0gbmV3IFdlYkluc3BlY3Rvci5SZXNv
dXJjZUZyYW1lRGVsZWdhdGVJbXBsKHRoaXMucmVzb3VyY2UpOwotICAgIHRoaXMuc291cmNlRnJh
bWUgPSBuZXcgV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lKHRoaXMuZWxlbWVudCwgZGVsZWdhdGUp
OworICAgIHZhciBjYW5FZGl0U2NyaXB0cyA9IFdlYkluc3BlY3Rvci5wYW5lbHMuc2NyaXB0cy5j
YW5FZGl0U2NyaXB0cygpICYmIHJlc291cmNlLnR5cGUgPT09IFdlYkluc3BlY3Rvci5SZXNvdXJj
ZS5UeXBlLlNjcmlwdDsKKyAgICB0aGlzLnNvdXJjZUZyYW1lID0gbmV3IFdlYkluc3BlY3Rvci5T
b3VyY2VGcmFtZSh0aGlzLmVsZW1lbnQsIHJlc291cmNlLnNjcmlwdHMsIGNhbkVkaXRTY3JpcHRz
KTsKICAgICByZXNvdXJjZS5hZGRFdmVudExpc3RlbmVyKCJmaW5pc2hlZCIsIHRoaXMuX3Jlc291
cmNlTG9hZGluZ0ZpbmlzaGVkLCB0aGlzKTsKICAgICB0aGlzLl9mcmFtZU5lZWRzU2V0dXAgPSB0
cnVlOwogfQpAQCAtMjM4LDI4ICsyMzgsMyBAQCBXZWJJbnNwZWN0b3IuU291cmNlVmlldy5wcm90
b3R5cGUgPSB7CiB9CiAKIFdlYkluc3BlY3Rvci5Tb3VyY2VWaWV3LnByb3RvdHlwZS5fX3Byb3Rv
X18gPSBXZWJJbnNwZWN0b3IuUmVzb3VyY2VWaWV3LnByb3RvdHlwZTsKLQotV2ViSW5zcGVjdG9y
LlJlc291cmNlRnJhbWVEZWxlZ2F0ZUltcGwgPSBmdW5jdGlvbihyZXNvdXJjZSkKLXsKLSAgICBX
ZWJJbnNwZWN0b3IuU291cmNlRnJhbWVEZWxlZ2F0ZS5jYWxsKHRoaXMpOwotICAgIHRoaXMuX3Jl
c291cmNlID0gcmVzb3VyY2U7Ci19Ci0KLVdlYkluc3BlY3Rvci5SZXNvdXJjZUZyYW1lRGVsZWdh
dGVJbXBsLnByb3RvdHlwZSA9IHsKLSAgICBjYW5FZGl0U2NyaXB0czogZnVuY3Rpb24oKQotICAg
IHsKLSAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5wYW5lbHMuc2NyaXB0cy5jYW5FZGl0U2Ny
aXB0cygpICYmIHRoaXMuX3Jlc291cmNlLnR5cGUgPT09IFdlYkluc3BlY3Rvci5SZXNvdXJjZS5U
eXBlLlNjcmlwdDsKLSAgICB9LAotCi0gICAgZWRpdExpbmVDb21wbGV0ZTogZnVuY3Rpb24ocmV2
ZXJ0RWRpdExpbmVDYWxsYmFjaywgbmV3Q29udGVudCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX3Jl
c291cmNlLnNldENvbnRlbnQobmV3Q29udGVudCwgcmV2ZXJ0RWRpdExpbmVDYWxsYmFjayk7Ci0g
ICAgfSwKLQotICAgIHNjcmlwdHM6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0
aGlzLl9yZXNvdXJjZS5zY3JpcHRzOwotICAgIH0KLX0KLQotV2ViSW5zcGVjdG9yLlJlc291cmNl
RnJhbWVEZWxlZ2F0ZUltcGwucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5Tb3Vy
Y2VGcmFtZURlbGVnYXRlLnByb3RvdHlwZTsK
</data>
<flag name="review"
          id="67085"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>