<?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>107129</bug_id>
          
          <creation_ts>2013-01-17 08:02:11 -0800</creation_ts>
          <short_desc>Web Inspector: Single column layout for the elements panel when docked right</short_desc>
          <delta_ts>2013-01-21 07:34:18 -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="Vladislav Kaznacheev">kaznacheev</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>apavlov</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>vsevik</cc>
    
    <cc>web-inspector-bugs</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>809335</commentid>
    <comment_count>0</comment_count>
    <who name="Vladislav Kaznacheev">kaznacheev</who>
    <bug_when>2013-01-17 08:02:11 -0800</bug_when>
    <thetext>Steps to reproduce the problem:
1. On a laptop or other small display, open DevTools and dock them to the right.
2. Notice HTML source and related panel sets are in separate columns.

On smaller displays, having three columns (content, source, and panel sets) makes things feel a bit cramped. Putting the HTML source and the panel sets in single column, there&apos;s a bit more breathing room.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>809348</commentid>
    <comment_count>1</comment_count>
      <attachid>183192</attachid>
    <who name="Vladislav Kaznacheev">kaznacheev</who>
    <bug_when>2013-01-17 08:21:53 -0800</bug_when>
    <thetext>Created attachment 183192
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>809372</commentid>
    <comment_count>2</comment_count>
      <attachid>183192</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2013-01-17 08:58:42 -0800</bug_when>
    <thetext>Comment on attachment 183192
Patch

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

&gt; Source/WebCore/inspector/front-end/DockController.js:187
&gt; +    __proto__: WebInspector.Object.prototype

You should also annotate constructor with @extends {WebInspector.Object}. Check out Source/WebCore/inspector/compile-front-end.py.

&gt; Source/WebCore/inspector/front-end/ElementsPanel.js:60
&gt; +    this.splitView.setMinimumMainWidthPercent(minimumContentHeightPercent);

setMinimalMainHeightPercent

&gt; Source/WebCore/inspector/front-end/ElementsPanel.js:62
&gt; +    // ElementsPanel never uses Top or Left sidebar position so it is safe to assume

We don&apos;t use comments unless absolutely necessary.

&gt; Source/WebCore/inspector/front-end/ElementsPanel.js:179
&gt; +    _onDockStateChanged: function(event) {

Please place { on the next line.

&gt; Source/WebCore/inspector/front-end/ElementsPanel.js:186
&gt; +    _sidebarPosition: function() {

ditto

&gt; Source/WebCore/inspector/front-end/SidebarView.js:43
&gt; +    WebInspector.SplitView.call(this, vertical, sidebarWidthSettingName, defaultSidebarWidth || 200, defaultSidebarHeight);

defaultSidebarHeight || 200

&gt; Source/WebCore/inspector/front-end/SidebarView.js:72
&gt; +    get mainElement()

We try to not use getters to improve compilability.

&gt; Source/WebCore/inspector/front-end/SidebarView.js:90
&gt; +      this.sidebarElement.removeStyleClass(&quot;split-view-sidebar-left&quot;);

You could use classList for batch operations.

&gt; Source/WebCore/inspector/front-end/SidebarView.js:103
&gt; +        if (this.sidebarPosition_ == sidebarPosition)

We use === when comparing primitive types.

&gt; Source/WebCore/inspector/front-end/SidebarView.js:200
&gt; +        var minMainWidthPercent = this.isVertical() ? this._minimumMainWidthPercent : this._minimumMainHeightPercent;

var minMainSizePercent ?

&gt; Source/WebCore/inspector/front-end/SplitView.js:37
&gt; +WebInspector.SplitView = function(isVertical, sidebarSizeSettingName, defaultSidebarSize, defaultSidebarSize2)

You should move this change into a separate bug. In fact, introducing a single &quot;swap&quot; method that would convert this split into another instance and simply re-style it might remove the necessity of the changes below.

&gt; Source/WebCore/inspector/front-end/SplitView.js:60
&gt; +      if (defaultSidebarSize2) {

Then we can drop this comment.

&gt; Source/WebCore/inspector/front-end/SplitView.js:63
&gt; +        this._sidebarWidthSettingName = sidebarSizeSettingName + &apos;Width&apos;;

We only use double quotes. WebKit JS style is easiest to remember as the opposite to Google Closure&apos;s.

&gt; Source/WebCore/inspector/front-end/SplitView.js:73
&gt; +      if (this._sidebarHeightSettingName != this._sidebarWidthSettingName) {

I would create settings for the given defaults.

&gt; Source/WebCore/inspector/front-end/SplitView.js:147
&gt; +    _updateLayout: function() {

{ on the next line.

&gt; Source/WebCore/inspector/front-end/SplitView.js:409
&gt; +        resizerElement.addEventListener(&quot;mousedown&quot;, this._onDragStart.bind(this), false);

Why did this change?

&gt; Source/WebCore/inspector/front-end/SplitView.js:416
&gt; +    _onDragStart: function(event) {

ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>812095</commentid>
    <comment_count>3</comment_count>
      <attachid>183771</attachid>
    <who name="Vladislav Kaznacheev">kaznacheev</who>
    <bug_when>2013-01-21 06:34:29 -0800</bug_when>
    <thetext>Created attachment 183771
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>812101</commentid>
    <comment_count>4</comment_count>
      <attachid>183771</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2013-01-21 06:42:03 -0800</bug_when>
    <thetext>Comment on attachment 183771
Patch

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

Please re-upload the the nits fixed prior to landing.

&gt; Source/WebCore/inspector/front-end/DockController.js:70
&gt; +    dockSide: function() {

{ goes to the next line

&gt; Source/WebCore/inspector/front-end/Settings.js:217
&gt; +  this._cleanUpSetting();

Accidental change</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>812114</commentid>
    <comment_count>5</comment_count>
      <attachid>183771</attachid>
    <who name="Andrey Adaikin">aandrey</who>
    <bug_when>2013-01-21 06:51:45 -0800</bug_when>
    <thetext>Comment on attachment 183771
Patch

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

&gt; Source/WebCore/inspector/front-end/DockController.js:68
&gt; +     * @return {string} dockSide

remove &quot;dockSide&quot;

&gt; Source/WebCore/inspector/front-end/SidebarView.js:116
&gt; +          case WebInspector.SidebarView.SidebarPosition.Left:

style: &quot;switch&quot; and &quot;case&quot; should have the same alignment</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>812125</commentid>
    <comment_count>6</comment_count>
      <attachid>183780</attachid>
    <who name="Vladislav Kaznacheev">kaznacheev</who>
    <bug_when>2013-01-21 07:08:00 -0800</bug_when>
    <thetext>Created attachment 183780
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>812127</commentid>
    <comment_count>7</comment_count>
      <attachid>183771</attachid>
    <who name="Vladislav Kaznacheev">kaznacheev</who>
    <bug_when>2013-01-21 07:12:34 -0800</bug_when>
    <thetext>Comment on attachment 183771
Patch

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

&gt;&gt; Source/WebCore/inspector/front-end/DockController.js:68
&gt;&gt; +     * @return {string} dockSide
&gt; 
&gt; remove &quot;dockSide&quot;

Done

&gt;&gt; Source/WebCore/inspector/front-end/DockController.js:70
&gt;&gt; +    dockSide: function() {
&gt; 
&gt; { goes to the next line

Done

&gt;&gt; Source/WebCore/inspector/front-end/Settings.js:217
&gt;&gt; +  this._cleanUpSetting();
&gt; 
&gt; Accidental change

done

&gt;&gt; Source/WebCore/inspector/front-end/SidebarView.js:116
&gt;&gt; +          case WebInspector.SidebarView.SidebarPosition.Left:
&gt; 
&gt; style: &quot;switch&quot; and &quot;case&quot; should have the same alignment

Done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>812136</commentid>
    <comment_count>8</comment_count>
      <attachid>183780</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-21 07:34:14 -0800</bug_when>
    <thetext>Comment on attachment 183780
Patch

Clearing flags on attachment: 183780

Committed r140333: &lt;http://trac.webkit.org/changeset/140333&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>812137</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-21 07:34:18 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>183192</attachid>
            <date>2013-01-17 08:21:53 -0800</date>
            <delta_ts>2013-01-21 06:34:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107129-20130117201853.patch</filename>
            <type>text/plain</type>
            <size>27726</size>
            <attacher name="Vladislav Kaznacheev">kaznacheev</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5ODU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjQ4NmJlYjdjMzhiNGM1
YWQyNGRiYjc2YWI3OTM0MjlhMzRkYmI5Mi4uYThmYzMwYjFhOTQwODQxOGNlYTNiNTZjNTIwY2Rm
YTc1MmNhN2FiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDEzLTAxLTE3ICBWbGFk
aXNsYXYgS2F6bmFjaGVldiAgPGthem5hY2hlZXZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtJ
bnNwZWN0b3JdIExheW91dCBFbGVtZW50cyBwYW5lbCBpbiBhIHNpbmdsZSBjb2x1bW4gd2hlbiBk
b2NrZWQgcmlnaHQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMDcxMjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBJZiB0aGUgSW5zcGVjdG9yIGlzIGRvY2tlZCByaWdodCwgdGhlIHN0eWxlIHBhbmVzIGlu
IHRoZSBFbGVtZW50cyBwYW5lbAorICAgICAgICBhcmUgcHV0IGJlbG93IHRoZSBET00gdHJlZSBw
YW5lLCBub3QgdG8gdGhlIHJpZ2h0LiBUaGlzIGJlaGF2aW9yCisgICAgICAgIGlzIGV4cGVyaW1l
bnRhbCAoaGlkZGVuIGJlaGluZCBhIG5ldyBmbGFnICJlbGVtZW50c1BhbmVsU2luZ2xlQ29sdW1u
IikuCisKKyAgICAgICAgVGhlIGltcGxlbWVudGFpb24gcmVxdWlyZXMgbmV3IGNhcGFiaWxpdGll
cyBmcm9tIFdlYkluc3BlY3Rvci5TcGxpdFZpZXcKKyAgICAgICAgKG5vdyBhYmxlIHRvIGNoYW5n
ZSB0aGUgb3JpZW50YXRpb24gYWZ0ZXIgaXQgaXMgY29uc3RydWN0ZWQpIGFuZAorICAgICAgICBX
ZXZJbnNwZWN0b3IuU2lkZWJhclZldyAobm93IGFibGUgdG8gdXNlIGhvcml6b250YWwgU3BsaXRW
aWV3IGFuZAorICAgICAgICBjaGFuZ2UgdGhlIG9yaWVudGF0aW9uKS4KKworICAgICAgICBObyBu
ZXcgdGVzdHMuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0RvY2tDb250cm9sbGVy
LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRvY2tDb250cm9sbGVyLnByb3RvdHlwZS5fdXBk
YXRlVUkpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRvY2tDb250cm9sbGVyLnByb3RvdHlwZS5f
dG9nZ2xlRG9ja1N0YXRlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRz
UGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90b3R5cGUu
X29uRG9ja1N0YXRlQ2hhbmdlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5l
bC5wcm90b3R5cGUuX3NpZGViYXJQb3NpdGlvbik6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250
LWVuZC9TZXR0aW5ncy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FeHBlcmltZW50c1NldHRp
bmdzKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NpZGViYXJWaWV3LmpzOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlNpZGViYXJWaWV3KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5T
aWRlYmFyVmlldy5wcm90b3R5cGUuZ2V0IG1haW5FbGVtZW50KToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5TaWRlYmFyVmlldy5wcm90b3R5cGUuZ2V0IHNpZGViYXJFbGVtZW50KToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5TaWRlYmFyVmlldy5wcm90b3R5cGUuX3NldFNpZGViYXJFbGVtZW50U3R5
bGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNpZGViYXJWaWV3LnByb3RvdHlwZS5zZXRTaWRl
YmFyUG9zaXRpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNpZGViYXJWaWV3LnByb3RvdHlw
ZS5faW5uZXJTZXRTaWRlYmFyUG9zaXRpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNpZGVi
YXJWaWV3LnByb3RvdHlwZS5zZXRNaW5pbXVtU2lkZWJhckhlaWdodCk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuU2lkZWJhclZpZXcucHJvdG90eXBlLnNldE1pbmltdW1NYWluSGVpZ2h0UGVyY2Vu
dCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2lkZWJhclZpZXcucHJvdG90eXBlLmFwcGx5Q29u
c3RyYWludHMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNpZGViYXJWaWV3LnByb3RvdHlwZS5o
aWRlTWFpbkVsZW1lbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNpZGViYXJWaWV3LnByb3Rv
dHlwZS5oaWRlU2lkZWJhckVsZW1lbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQv
U3BsaXRWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNwbGl0Vmlldyk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuU3BsaXRWaWV3LnByb3RvdHlwZS5pc1ZlcnRpY2FsKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5TcGxpdFZpZXcucHJvdG90eXBlLnNldElzVmVydGljYWwpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlNwbGl0Vmlldy5wcm90b3R5cGUuX2lubmVyU2V0SXNWZXJ0aWNhbCk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3BsaXRWaWV3LnByb3RvdHlwZS5fdXBkYXRlTGF5b3V0
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TcGxpdFZpZXcucHJvdG90eXBlLmlzU2lkZWJhclNl
Y29uZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3BsaXRWaWV3LnByb3RvdHlwZS5zaG93Qm90
aCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3BsaXRWaWV3LnByb3RvdHlwZS5fdXBkYXRlVG90
YWxTaXplKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TcGxpdFZpZXcucHJvdG90eXBlLl9pbm5l
clNldFNpZGViYXJTaXplKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TcGxpdFZpZXcucHJvdG90
eXBlLndhc1Nob3duKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TcGxpdFZpZXcucHJvdG90eXBl
Lm9uUmVzaXplKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TcGxpdFZpZXcucHJvdG90eXBlLmlu
c3RhbGxSZXNpemVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TcGxpdFZpZXcucHJvdG90eXBl
Ll9vbkRyYWdTdGFydCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3BsaXRWaWV3LnByb3RvdHlw
ZS5fc2F2ZVNpZGViYXJTaXplKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL3NwbGl0
Vmlldy5jc3M6CisgICAgICAgICguc3BsaXQtdmlldy1zaWRlYmFyLXRvcCk6CisgICAgICAgICgu
c3BsaXQtdmlldy1zaWRlYmFyLXRvcC5tYXhpbWl6ZWQpOgorICAgICAgICAoLnNwbGl0LXZpZXct
c2lkZWJhci1ib3R0b20pOgorICAgICAgICAoLnNwbGl0LXZpZXctc2lkZWJhci1ib3R0b20ubWF4
aW1pemVkKToKKwogMjAxMy0wMS0xNiAgS2VudGFybyBIYXJhICA8aGFyYWtlbkBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgW1Y4XSBNYWtlIGFuIElzb2xhdGUgcGFyYW1ldGVyIG1hbmRhdG9yeSBp
biBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmRlc2VyaWFsaXplKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRG9ja0NvbnRyb2xsZXIuanMgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RvY2tDb250cm9sbGVyLmpzCmluZGV4IDA3ZGVj
MmRhNWIzNDlmODZmNTU2YWE3YTc3NWUzM2M5NGM4NzJhNzkuLjYxMTdhNjZkNWY5YmYxYjE2MDc0
N2UwYzQ3ZTE1ZGVmY2VlMjY2ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvRG9ja0NvbnRyb2xsZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9Eb2NrQ29udHJvbGxlci5qcwpAQCAtNTAsNiArNTAsMTAgQEAgV2ViSW5z
cGVjdG9yLkRvY2tDb250cm9sbGVyLlN0YXRlID0gewogICAgIFVuZG9ja2VkOiAidW5kb2NrZWQi
CiB9CiAKK1dlYkluc3BlY3Rvci5Eb2NrQ29udHJvbGxlci5FdmVudFR5cGVzID0geworICAgIFN0
YXRlQ2hhbmdlZDogIlN0YXRlQ2hhbmdlZCIKK30KKwogV2ViSW5zcGVjdG9yLkRvY2tDb250cm9s
bGVyLnByb3RvdHlwZSA9IHsKICAgICAvKioKICAgICAgKiBAcmV0dXJuIHtFbGVtZW50fQpAQCAt
MTM1LDYgKzEzOSw4IEBAIFdlYkluc3BlY3Rvci5Eb2NrQ29udHJvbGxlci5wcm90b3R5cGUgPSB7
CiAgICAgICAgIH0KICAgICAgICAgdGhpcy5fZGVjb3JhdGVCdXR0b25Gb3JUYXJnZXRTdGF0ZSh0
aGlzLl9kb2NrVG9nZ2xlQnV0dG9uLCBsYXN0U3RhdGUpOwogICAgICAgICB0aGlzLl9kZWNvcmF0
ZUJ1dHRvbkZvclRhcmdldFN0YXRlKHRoaXMuX2RvY2tUb2dnbGVCdXR0b25PcHRpb24sIHNpZGVz
WzBdKTsKKworICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0
b3IuRG9ja0NvbnRyb2xsZXIuRXZlbnRUeXBlcy5TdGF0ZUNoYW5nZWQsIHRoaXMuX2RvY2tTaWRl
KTsKICAgICB9LAogCiAgICAgLyoqCkBAIC0xNzYsNSArMTgyLDcgQEAgV2ViSW5zcGVjdG9yLkRv
Y2tDb250cm9sbGVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgY2FzZSAidW5kb2NrIjogYWN0aW9u
ID0gInVuZG9ja2VkIjsgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgSW5zcGVjdG9yRnJvbnRl
bmRIb3N0LnJlcXVlc3RTZXREb2NrU2lkZShhY3Rpb24pOwotICAgIH0KKyAgICB9LAorCisgICAg
X19wcm90b19fOiBXZWJJbnNwZWN0b3IuT2JqZWN0LnByb3RvdHlwZQogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzCmluZGV4IGU1
OTdjNWM3MmQxMDg1N2Q5NGJiMWZmMWZlOWIxNzI1NTBhNTI3OWUuLmIwZGNlZTdlYzI1ZGU1NWIz
MWY0Nzc0NDk5MTEyZGQ0MjJiYjI0MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvRWxlbWVudHNQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanMKQEAgLTQ3LDEyICs0NywyMCBAQCBXZWJJ
bnNwZWN0b3IuRWxlbWVudHNQYW5lbCA9IGZ1bmN0aW9uKCkKICAgICB0aGlzLnJlZ2lzdGVyUmVx
dWlyZWRDU1MoInRleHRQcm9tcHQuY3NzIik7CiAgICAgdGhpcy5zZXRIaWRlT25EZXRhY2goKTsK
IAorICAgIFdlYkluc3BlY3Rvci5kb2NrQ29udHJvbGxlci5hZGRFdmVudExpc3RlbmVyKFdlYklu
c3BlY3Rvci5Eb2NrQ29udHJvbGxlci5FdmVudFR5cGVzLlN0YXRlQ2hhbmdlZCwgdGhpcy5fb25E
b2NrU3RhdGVDaGFuZ2VkLmJpbmQodGhpcykpOworCiAgICAgY29uc3QgaW5pdGlhbFNpZGViYXJX
aWR0aCA9IDMyNTsKICAgICBjb25zdCBtaW5pbXVtQ29udGVudFdpZHRoUGVyY2VudCA9IDM0Owot
ICAgIHRoaXMuY3JlYXRlU2lkZWJhclZpZXcodGhpcy5lbGVtZW50LCBXZWJJbnNwZWN0b3IuU2lk
ZWJhclZpZXcuU2lkZWJhclBvc2l0aW9uLlJpZ2h0LCBpbml0aWFsU2lkZWJhcldpZHRoKTsKKyAg
ICBjb25zdCBpbml0aWFsU2lkZWJhckhlaWdodCA9IDMyNTsKKyAgICBjb25zdCBtaW5pbXVtQ29u
dGVudEhlaWdodFBlcmNlbnQgPSAzNDsKKyAgICB0aGlzLmNyZWF0ZVNpZGViYXJWaWV3KHRoaXMu
ZWxlbWVudCwgdGhpcy5fc2lkZWJhclBvc2l0aW9uKCksIGluaXRpYWxTaWRlYmFyV2lkdGgsIGlu
aXRpYWxTaWRlYmFySGVpZ2h0KTsKICAgICB0aGlzLnNwbGl0Vmlldy5zZXRNaW5pbXVtU2lkZWJh
cldpZHRoKFByZWZlcmVuY2VzLm1pbkVsZW1lbnRzU2lkZWJhcldpZHRoKTsKICAgICB0aGlzLnNw
bGl0Vmlldy5zZXRNaW5pbXVtTWFpbldpZHRoUGVyY2VudChtaW5pbXVtQ29udGVudFdpZHRoUGVy
Y2VudCk7CisgICAgdGhpcy5zcGxpdFZpZXcuc2V0TWluaW11bVNpZGViYXJIZWlnaHQoUHJlZmVy
ZW5jZXMubWluRWxlbWVudHNTaWRlYmFySGVpZ2h0KTsKKyAgICB0aGlzLnNwbGl0Vmlldy5zZXRN
aW5pbXVtTWFpbldpZHRoUGVyY2VudChtaW5pbXVtQ29udGVudEhlaWdodFBlcmNlbnQpOwogCisg
ICAgLy8gRWxlbWVudHNQYW5lbCBuZXZlciB1c2VzIFRvcCBvciBMZWZ0IHNpZGViYXIgcG9zaXRp
b24gc28gaXQgaXMgc2FmZSB0byBhc3N1bWUKKyAgICAvLyB0aGF0IHRoaXMuc3BsaXRWaWV3Lm1h
aW5FbGVtZW50IGFuZCB0aGlzLnNpZGViYXJFbGVtZW50IG5ldmVyIGNoYW5nZS4KICAgICB0aGlz
LmNvbnRlbnRFbGVtZW50ID0gdGhpcy5zcGxpdFZpZXcubWFpbkVsZW1lbnQ7CiAgICAgdGhpcy5j
b250ZW50RWxlbWVudC5pZCA9ICJlbGVtZW50cy1jb250ZW50IjsKICAgICB0aGlzLmNvbnRlbnRF
bGVtZW50LmFkZFN0eWxlQ2xhc3MoIm91dGxpbmUtZGlzY2xvc3VyZSIpOwpAQCAtMTY4LDYgKzE3
NiwyMSBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAg
IHRoaXMudXBkYXRlQnJlYWRjcnVtYlNpemVzKCk7CiAgICAgfSwKIAorICAgIF9vbkRvY2tTdGF0
ZUNoYW5nZWQ6IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIHRoaXMuc3BsaXRWaWV3LnNldFNp
ZGViYXJQb3NpdGlvbih0aGlzLl9zaWRlYmFyUG9zaXRpb24oKSk7CisgICAgfSwKKworICAgIC8q
KgorICAgICAqIEByZXR1cm4ge3N0cmluZ30KKyAgICAgKi8KKyAgICBfc2lkZWJhclBvc2l0aW9u
OiBmdW5jdGlvbigpIHsKKyAgICAgICAgaWYgKFdlYkluc3BlY3Rvci5leHBlcmltZW50c1NldHRp
bmdzLmVsZW1lbnRzUGFuZWxTaW5nbGVDb2x1bW4uaXNFbmFibGVkKCkgJiYKKyAgICAgICAgICAg
IFdlYkluc3BlY3Rvci5kb2NrQ29udHJvbGxlci5fZG9ja1NpZGUgPT0gV2ViSW5zcGVjdG9yLkRv
Y2tDb250cm9sbGVyLlN0YXRlLkRvY2tlZFRvUmlnaHQpCisgICAgICAgICAgICByZXR1cm4gV2Vi
SW5zcGVjdG9yLlNpZGViYXJWaWV3LlNpZGViYXJQb3NpdGlvbi5Cb3R0b207CisKKyAgICAgICAg
cmV0dXJuIFdlYkluc3BlY3Rvci5TaWRlYmFyVmlldy5TaWRlYmFyUG9zaXRpb24uUmlnaHQ7Cisg
ICAgfSwKKwogICAgIC8qKgogICAgICAqIEBwYXJhbSB7RE9NQWdlbnQuTm9kZUlkfSBub2RlSWQK
ICAgICAgKiBAcGFyYW0ge3N0cmluZ30gcHNldWRvQ2xhc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3MuanMgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzLmpzCmluZGV4IDgzZjVmYjkyODQyMmUxNWFmNDhi
N2YxNzFhMTUyMmQ2OGJkYmE5NWYuLjgxZjNkN2UyNmZmMDQ1NmZhNWQ4MzJmYTVmMjNkNjY5OTIz
NTkyMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2V0
dGluZ3MuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5n
cy5qcwpAQCAtMzMsNyArMzMsOSBAQCB2YXIgUHJlZmVyZW5jZXMgPSB7CiAgICAgbWF4SW5saW5l
VGV4dENoaWxkTGVuZ3RoOiA4MCwKICAgICBtaW5Db25zb2xlSGVpZ2h0OiA3NSwKICAgICBtaW5T
aWRlYmFyV2lkdGg6IDEwMCwKKyAgICBtaW5TaWRlYmFySGVpZ2h0OiA3NSwKICAgICBtaW5FbGVt
ZW50c1NpZGViYXJXaWR0aDogMjAwLAorICAgIG1pbkVsZW1lbnRzU2lkZWJhckhlaWdodDogMjAw
LAogICAgIG1pblNjcmlwdHNTaWRlYmFyV2lkdGg6IDIwMCwKICAgICBzdHlsZVJ1bGVzRXhwYW5k
ZWRTdGF0ZToge30sCiAgICAgc2hvd01pc3NpbmdMb2NhbGl6ZWRTdHJpbmdzOiBmYWxzZSwKQEAg
LTIwOSw2ICsyMTEsNyBAQCBXZWJJbnNwZWN0b3IuRXhwZXJpbWVudHNTZXR0aW5ncyA9IGZ1bmN0
aW9uKCkKICAgICB0aGlzLmNvZGVtaXJyb3IgPSB0aGlzLl9jcmVhdGVFeHBlcmltZW50KCJjb2Rl
bWlycm9yIiwgIlVzZSBDb2RlTWlycm9yIGVkaXRvciIpOwogICAgIHRoaXMuY3NzUmVnaW9ucyA9
IHRoaXMuX2NyZWF0ZUV4cGVyaW1lbnQoImNzc1JlZ2lvbnMiLCAiQ1NTIFJlZ2lvbnMgU3VwcG9y
dCIpOwogICAgIHRoaXMuc2hvd092ZXJyaWRlc0luRHJhd2VyID0gdGhpcy5fY3JlYXRlRXhwZXJp
bWVudCgic2hvd092ZXJyaWRlc0luRHJhd2VyIiwgIlNob3cgT3ZlcnJpZGVzIGluIGRyYXdlciIp
OworICAgIHRoaXMuZWxlbWVudHNQYW5lbFNpbmdsZUNvbHVtbiA9IHRoaXMuX2NyZWF0ZUV4cGVy
aW1lbnQoImVsZW1lbnRzUGFuZWxTaW5nbGVDb2x1bW4iLCAiU2luZ2xlLWNvbHVtbiBlbGVtZW50
cyBwYW5lbCBsYXlvdXQgd2hlbiBkb2NrZWQgdG8gcmlnaHQiKTsKIAogICAgIHRoaXMuX2NsZWFu
VXBTZXR0aW5nKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1NpZGViYXJWaWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9TaWRlYmFyVmlldy5qcwppbmRleCAxODZjNGRiMzc4ZWNkMWIwYmM3YTRmM2QyZjgyMjMxMGFk
M2FlMzEzLi44MzE4YTk3YWY1MmRjZDQ4ZGI4Yzk4MzA3NGEwZDZlMjE0OWIyYjBkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NpZGViYXJWaWV3LmpzCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2lkZWJhclZpZXcuanMKQEAg
LTMyLDIyICszMiwyMyBAQAogICogQHBhcmFtIHtzdHJpbmc9fSBzaWRlYmFyUG9zaXRpb24KICAq
IEBwYXJhbSB7c3RyaW5nPX0gc2lkZWJhcldpZHRoU2V0dGluZ05hbWUKICAqIEBwYXJhbSB7bnVt
YmVyPX0gZGVmYXVsdFNpZGViYXJXaWR0aAorICogQHBhcmFtIHtudW1iZXI9fSBkZWZhdWx0U2lk
ZWJhckhlaWdodAogICovCi1XZWJJbnNwZWN0b3IuU2lkZWJhclZpZXcgPSBmdW5jdGlvbihzaWRl
YmFyUG9zaXRpb24sIHNpZGViYXJXaWR0aFNldHRpbmdOYW1lLCBkZWZhdWx0U2lkZWJhcldpZHRo
KQorV2ViSW5zcGVjdG9yLlNpZGViYXJWaWV3ID0gZnVuY3Rpb24oc2lkZWJhclBvc2l0aW9uLCBz
aWRlYmFyV2lkdGhTZXR0aW5nTmFtZSwgZGVmYXVsdFNpZGViYXJXaWR0aCwgZGVmYXVsdFNpZGVi
YXJIZWlnaHQpCiB7Ci0gICAgV2ViSW5zcGVjdG9yLlNwbGl0Vmlldy5jYWxsKHRoaXMsIHRydWUs
IHNpZGViYXJXaWR0aFNldHRpbmdOYW1lLCBkZWZhdWx0U2lkZWJhcldpZHRoIHx8IDIwMCk7Cisg
ICAgc2lkZWJhclBvc2l0aW9uID0gc2lkZWJhclBvc2l0aW9uIHx8IFdlYkluc3BlY3Rvci5TaWRl
YmFyVmlldy5TaWRlYmFyUG9zaXRpb24uTGVmdDsKKyAgICB2YXIgdmVydGljYWwgPSBzaWRlYmFy
UG9zaXRpb24gPT0gV2ViSW5zcGVjdG9yLlNpZGViYXJWaWV3LlNpZGViYXJQb3NpdGlvbi5MZWZ0
IHx8CisgICAgICAgIHNpZGViYXJQb3NpdGlvbiA9PSBXZWJJbnNwZWN0b3IuU2lkZWJhclZpZXcu
U2lkZWJhclBvc2l0aW9uLlJpZ2h0OwogCi0gICAgdGhpcy5fbGVmdEVsZW1lbnQgPSB0aGlzLmZp
cnN0RWxlbWVudCgpOwotICAgIHRoaXMuX3JpZ2h0RWxlbWVudCA9IHRoaXMuc2Vjb25kRWxlbWVu
dCgpOworICAgIFdlYkluc3BlY3Rvci5TcGxpdFZpZXcuY2FsbCh0aGlzLCB2ZXJ0aWNhbCwgc2lk
ZWJhcldpZHRoU2V0dGluZ05hbWUsIGRlZmF1bHRTaWRlYmFyV2lkdGggfHwgMjAwLCBkZWZhdWx0
U2lkZWJhckhlaWdodCk7CiAKICAgICB0aGlzLl9taW5pbXVtU2lkZWJhcldpZHRoID0gUHJlZmVy
ZW5jZXMubWluU2lkZWJhcldpZHRoOwogICAgIHRoaXMuX21pbmltdW1NYWluV2lkdGhQZXJjZW50
ID0gNTA7CiAKLSAgICB0aGlzLl9tYWluRWxlbWVudEhpZGRlbiA9IGZhbHNlOwotICAgIHRoaXMu
X3NpZGViYXJFbGVtZW50SGlkZGVuID0gZmFsc2U7CisgICAgdGhpcy5fbWluaW11bVNpZGViYXJI
ZWlnaHQgPSBQcmVmZXJlbmNlcy5taW5TaWRlYmFySGVpZ2h0OworICAgIHRoaXMuX21pbmltdW1N
YWluSGVpZ2h0UGVyY2VudCA9IDUwOwogCi0gICAgdGhpcy5faW5uZXJTZXRTaWRlYmFyUG9zaXRp
b24oc2lkZWJhclBvc2l0aW9uIHx8IFdlYkluc3BlY3Rvci5TaWRlYmFyVmlldy5TaWRlYmFyUG9z
aXRpb24uTGVmdCk7Ci0gICAgdGhpcy5zZXRTZWNvbmRJc1NpZGViYXIoc2lkZWJhclBvc2l0aW9u
ICE9PSBXZWJJbnNwZWN0b3IuU2lkZWJhclZpZXcuU2lkZWJhclBvc2l0aW9uLkxlZnQpOworICAg
IHRoaXMuX2lubmVyU2V0U2lkZWJhclBvc2l0aW9uKHNpZGViYXJQb3NpdGlvbik7CiB9CiAKIFdl
Ykluc3BlY3Rvci5TaWRlYmFyVmlldy5FdmVudFR5cGVzID0gewpAQCAtNTksNDcgKzYwLDgwIEBA
IFdlYkluc3BlY3Rvci5TaWRlYmFyVmlldy5FdmVudFR5cGVzID0gewogICovCiBXZWJJbnNwZWN0
b3IuU2lkZWJhclZpZXcuU2lkZWJhclBvc2l0aW9uID0gewogICAgIExlZnQ6ICJMZWZ0IiwKLSAg
ICBSaWdodDogIlJpZ2h0IgorICAgIFJpZ2h0OiAiUmlnaHQiLAorICAgIFRvcDogIlRvcCIsCisg
ICAgQm90dG9tOiAiQm90dG9tIgogfQogCiBXZWJJbnNwZWN0b3IuU2lkZWJhclZpZXcucHJvdG90
eXBlID0gewogICAgIC8qKgotICAgICAqIEByZXR1cm4ge2Jvb2xlYW59CisgICAgICogQHJldHVy
biB7RWxlbWVudH0KICAgICAgKi8KLSAgICBfaGFzTGVmdFNpZGViYXI6IGZ1bmN0aW9uKCkKKyAg
ICBnZXQgbWFpbkVsZW1lbnQoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3NpZGViYXJQ
b3NpdGlvbiA9PT0gV2ViSW5zcGVjdG9yLlNpZGViYXJWaWV3LlNpZGViYXJQb3NpdGlvbi5MZWZ0
OworICAgICAgICByZXR1cm4gdGhpcy5pc1NpZGViYXJTZWNvbmQoKSA/IHRoaXMuZmlyc3RFbGVt
ZW50KCkgOiB0aGlzLnNlY29uZEVsZW1lbnQoKTsKICAgICB9LAogCiAgICAgLyoqCiAgICAgICog
QHJldHVybiB7RWxlbWVudH0KICAgICAgKi8KLSAgICBnZXQgbWFpbkVsZW1lbnQoKQorICAgIGdl
dCBzaWRlYmFyRWxlbWVudCgpCiAgICAgewotICAgICAgICByZXR1cm4gdGhpcy5faGFzTGVmdFNp
ZGViYXIoKSA/IHRoaXMuX3JpZ2h0RWxlbWVudCA6IHRoaXMuX2xlZnRFbGVtZW50OworICAgICAg
ICByZXR1cm4gdGhpcy5pc1NpZGViYXJTZWNvbmQoKSA/IHRoaXMuc2Vjb25kRWxlbWVudCgpIDog
dGhpcy5maXJzdEVsZW1lbnQoKTsKICAgICB9LAogCiAgICAgLyoqCi0gICAgICogQHJldHVybiB7
RWxlbWVudH0KKyAgICAgKiBAcGFyYW0ge3N0cmluZ30gc3R5bGVDbGFzcwogICAgICAqLwotICAg
IGdldCBzaWRlYmFyRWxlbWVudCgpCisgICAgX3NldFNpZGViYXJFbGVtZW50U3R5bGU6IGZ1bmN0
aW9uKHN0eWxlQ2xhc3MpCiAgICAgewotICAgICAgICByZXR1cm4gdGhpcy5faGFzTGVmdFNpZGVi
YXIoKSA/IHRoaXMuX2xlZnRFbGVtZW50IDogdGhpcy5fcmlnaHRFbGVtZW50OworICAgICAgdGhp
cy5zaWRlYmFyRWxlbWVudC5yZW1vdmVTdHlsZUNsYXNzKCJzcGxpdC12aWV3LXNpZGViYXItbGVm
dCIpOworICAgICAgdGhpcy5zaWRlYmFyRWxlbWVudC5yZW1vdmVTdHlsZUNsYXNzKCJzcGxpdC12
aWV3LXNpZGViYXItcmlnaHQiKTsKKyAgICAgIHRoaXMuc2lkZWJhckVsZW1lbnQucmVtb3ZlU3R5
bGVDbGFzcygic3BsaXQtdmlldy1zaWRlYmFyLXRvcCIpOworICAgICAgdGhpcy5zaWRlYmFyRWxl
bWVudC5yZW1vdmVTdHlsZUNsYXNzKCJzcGxpdC12aWV3LXNpZGViYXItYm90dG9tIik7CisKKyAg
ICAgIHRoaXMuc2lkZWJhckVsZW1lbnQuYWRkU3R5bGVDbGFzcyhzdHlsZUNsYXNzKTsKICAgICB9
LAogCiAgICAgLyoqCiAgICAgICogQHBhcmFtIHtzdHJpbmd9IHNpZGViYXJQb3NpdGlvbgogICAg
ICAqLwotICAgIF9pbm5lclNldFNpZGViYXJQb3NpdGlvbjogZnVuY3Rpb24oc2lkZWJhclBvc2l0
aW9uKQorICAgIHNldFNpZGViYXJQb3NpdGlvbjogZnVuY3Rpb24oc2lkZWJhclBvc2l0aW9uKQog
ICAgIHsKLSAgICAgICAgdGhpcy5fc2lkZWJhclBvc2l0aW9uID0gc2lkZWJhclBvc2l0aW9uOwor
ICAgICAgICBpZiAodGhpcy5zaWRlYmFyUG9zaXRpb25fID09IHNpZGViYXJQb3NpdGlvbikKKyAg
ICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBpZiAodGhpcy5faGFzTGVmdFNpZGViYXIoKSkg
ewotICAgICAgICAgICAgdGhpcy5fbGVmdEVsZW1lbnQuYWRkU3R5bGVDbGFzcygic3BsaXQtdmll
dy1zaWRlYmFyLWxlZnQiKTsKLSAgICAgICAgICAgIHRoaXMuX3JpZ2h0RWxlbWVudC5yZW1vdmVT
dHlsZUNsYXNzKCJzcGxpdC12aWV3LXNpZGViYXItcmlnaHQiKTsKLSAgICAgICAgfSBlbHNlIHsK
LSAgICAgICAgICAgIHRoaXMuX3JpZ2h0RWxlbWVudC5hZGRTdHlsZUNsYXNzKCJzcGxpdC12aWV3
LXNpZGViYXItcmlnaHQiKTsKLSAgICAgICAgICAgIHRoaXMuX2xlZnRFbGVtZW50LnJlbW92ZVN0
eWxlQ2xhc3MoInNwbGl0LXZpZXctc2lkZWJhci1sZWZ0Iik7CisgICAgICAgIHRoaXMuX2lubmVy
U2V0U2lkZWJhclBvc2l0aW9uKHNpZGViYXJQb3NpdGlvbik7CisgICAgfSwKKworICAgIC8qKgor
ICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzaWRlYmFyUG9zaXRpb24KKyAgICAgKi8KKyAgICBfaW5u
ZXJTZXRTaWRlYmFyUG9zaXRpb246IGZ1bmN0aW9uKHNpZGViYXJQb3NpdGlvbikKKyAgICB7Cisg
ICAgICAgIHRoaXMuc2lkZWJhclBvc2l0aW9uXyA9IHNpZGViYXJQb3NpdGlvbjsKKworICAgICAg
ICBzd2l0Y2ggKHNpZGViYXJQb3NpdGlvbikgeworICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9y
LlNpZGViYXJWaWV3LlNpZGViYXJQb3NpdGlvbi5MZWZ0OgorICAgICAgICAgICAgdGhpcy5zZXRT
ZWNvbmRJc1NpZGViYXIoZmFsc2UpOworICAgICAgICAgICAgdGhpcy5fc2V0U2lkZWJhckVsZW1l
bnRTdHlsZSgic3BsaXQtdmlldy1zaWRlYmFyLWxlZnQiKTsKKyAgICAgICAgICAgIHRoaXMuc2V0
SXNWZXJ0aWNhbCh0cnVlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgIGNhc2UgV2Vi
SW5zcGVjdG9yLlNpZGViYXJWaWV3LlNpZGViYXJQb3NpdGlvbi5SaWdodDoKKyAgICAgICAgICAg
IHRoaXMuc2V0U2Vjb25kSXNTaWRlYmFyKHRydWUpOworICAgICAgICAgICAgdGhpcy5fc2V0U2lk
ZWJhckVsZW1lbnRTdHlsZSgic3BsaXQtdmlldy1zaWRlYmFyLXJpZ2h0Iik7CisgICAgICAgICAg
ICB0aGlzLnNldElzVmVydGljYWwodHJ1ZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICBjYXNlIFdlYkluc3BlY3Rvci5TaWRlYmFyVmlldy5TaWRlYmFyUG9zaXRpb24uVG9wOgorICAg
ICAgICAgICAgdGhpcy5zZXRTZWNvbmRJc1NpZGViYXIoZmFsc2UpOworICAgICAgICAgICAgdGhp
cy5fc2V0U2lkZWJhckVsZW1lbnRTdHlsZSgic3BsaXQtdmlldy1zaWRlYmFyLXRvcCIpOworICAg
ICAgICAgICAgdGhpcy5zZXRJc1ZlcnRpY2FsKGZhbHNlKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLlNpZGViYXJWaWV3LlNpZGViYXJQb3NpdGlvbi5C
b3R0b206CisgICAgICAgICAgICB0aGlzLnNldFNlY29uZElzU2lkZWJhcih0cnVlKTsKKyAgICAg
ICAgICAgIHRoaXMuX3NldFNpZGViYXJFbGVtZW50U3R5bGUoInNwbGl0LXZpZXctc2lkZWJhci1i
b3R0b20iKTsKKyAgICAgICAgICAgIHRoaXMuc2V0SXNWZXJ0aWNhbChmYWxzZSk7CisgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0sCiAKQEAgLTExMiw2ICsxNDYsMTQgQEAgV2Vi
SW5zcGVjdG9yLlNpZGViYXJWaWV3LnByb3RvdHlwZSA9IHsKICAgICB9LAogCiAgICAgLyoqCisg
ICAgICogQHBhcmFtIHtudW1iZXJ9IGhlaWdodAorICAgICAqLworICAgIHNldE1pbmltdW1TaWRl
YmFySGVpZ2h0OiBmdW5jdGlvbihoZWlnaHQpCisgICAgeworICAgICAgICB0aGlzLl9taW5pbXVt
U2lkZWJhckhlaWdodCA9IGhlaWdodDsKKyAgICB9LAorCisgICAgLyoqCiAgICAgICogQHBhcmFt
IHtudW1iZXJ9IHdpZHRoUGVyY2VudAogICAgICAqLwogICAgIHNldE1pbmltdW1NYWluV2lkdGhQ
ZXJjZW50OiBmdW5jdGlvbih3aWR0aFBlcmNlbnQpCkBAIC0xMjAsNiArMTYyLDE0IEBAIFdlYklu
c3BlY3Rvci5TaWRlYmFyVmlldy5wcm90b3R5cGUgPSB7CiAgICAgfSwKIAogICAgIC8qKgorICAg
ICAqIEBwYXJhbSB7bnVtYmVyfSBoZWlnaHRQZXJjZW50CisgICAgICovCisgICAgc2V0TWluaW11
bU1haW5IZWlnaHRQZXJjZW50OiBmdW5jdGlvbihoZWlnaHRQZXJjZW50KQorICAgIHsKKyAgICAg
ICAgdGhpcy5fbWluaW11bU1haW5IZWlnaHRQZXJjZW50ID0gaGVpZ2h0UGVyY2VudDsKKyAgICB9
LAorCisgICAgLyoqCiAgICAgICogQHBhcmFtIHtudW1iZXJ9IHdpZHRoCiAgICAgICovCiAgICAg
c2V0U2lkZWJhcldpZHRoOiBmdW5jdGlvbih3aWR0aCkKQEAgLTE0NiwxNSArMTk2LDE3IEBAIFdl
Ykluc3BlY3Rvci5TaWRlYmFyVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICovCiAgICAgYXBwbHlD
b25zdHJhaW50czogZnVuY3Rpb24oc2l6ZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBOdW1iZXIu
Y29uc3RyYWluKHNpemUsIHRoaXMuX21pbmltdW1TaWRlYmFyV2lkdGgsIHRoaXMuZWxlbWVudC5v
ZmZzZXRXaWR0aCAqICgxMDAgLSB0aGlzLl9taW5pbXVtTWFpbldpZHRoUGVyY2VudCkgLyAxMDAp
OworICAgICAgICB2YXIgbWluU2lkZWJhclNpemUgPSB0aGlzLmlzVmVydGljYWwoKSA/IHRoaXMu
X21pbmltdW1TaWRlYmFyV2lkdGggOiB0aGlzLl9taW5pbXVtU2lkZWJhckhlaWdodDsKKyAgICAg
ICAgdmFyIG1pbk1haW5XaWR0aFBlcmNlbnQgPSB0aGlzLmlzVmVydGljYWwoKSA/IHRoaXMuX21p
bmltdW1NYWluV2lkdGhQZXJjZW50IDogdGhpcy5fbWluaW11bU1haW5IZWlnaHRQZXJjZW50Owor
ICAgICAgICByZXR1cm4gTnVtYmVyLmNvbnN0cmFpbihzaXplLCBtaW5TaWRlYmFyU2l6ZSwgdGhp
cy50b3RhbFNpemUoKSAqICgxMDAgLSBtaW5NYWluV2lkdGhQZXJjZW50KSAvIDEwMCk7CiAgICAg
fSwKIAogICAgIGhpZGVNYWluRWxlbWVudDogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgaWYg
KHRoaXMuX2hhc0xlZnRTaWRlYmFyKCkpCi0gICAgICAgICAgICB0aGlzLnNob3dPbmx5Rmlyc3Qo
KTsKLSAgICAgICAgZWxzZQorICAgICAgICBpZiAodGhpcy5pc1NpZGViYXJTZWNvbmQoKSkKICAg
ICAgICAgICAgIHRoaXMuc2hvd09ubHlTZWNvbmQoKTsKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgdGhpcy5zaG93T25seUZpcnN0KCk7CiAgICAgfSwKIAogICAgIHNob3dNYWluRWxlbWVudDog
ZnVuY3Rpb24oKQpAQCAtMTY0LDEwICsyMTYsMTAgQEAgV2ViSW5zcGVjdG9yLlNpZGViYXJWaWV3
LnByb3RvdHlwZSA9IHsKIAogICAgIGhpZGVTaWRlYmFyRWxlbWVudDogZnVuY3Rpb24oKQogICAg
IHsKLSAgICAgICAgaWYgKHRoaXMuX2hhc0xlZnRTaWRlYmFyKCkpCi0gICAgICAgICAgICB0aGlz
LnNob3dPbmx5U2Vjb25kKCk7Ci0gICAgICAgIGVsc2UKKyAgICAgICAgaWYgKHRoaXMuaXNTaWRl
YmFyU2Vjb25kKCkpCiAgICAgICAgICAgICB0aGlzLnNob3dPbmx5Rmlyc3QoKTsKKyAgICAgICAg
ZWxzZQorICAgICAgICAgICAgdGhpcy5zaG93T25seVNlY29uZCgpOwogICAgIH0sCiAKICAgICBz
aG93U2lkZWJhckVsZW1lbnQ6IGZ1bmN0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvU3BsaXRWaWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9TcGxpdFZpZXcuanMKaW5kZXggYWRmYzk5NjczOWM2YWMyNmFmMzM2NzE0
NjM2M2Q4YmI4ODI2OTJhZi4uN2ZiY2RiNDhjZTNiYWRhMTQ2MjE4MjNmNWRlYjkxMjZkOWMxODJm
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TcGxpdFZp
ZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TcGxpdFZpZXcu
anMKQEAgLTMyLDUwICszMiwxMjYgQEAKICAqIEBwYXJhbSB7Ym9vbGVhbn0gaXNWZXJ0aWNhbAog
ICogQHBhcmFtIHtzdHJpbmc9fSBzaWRlYmFyU2l6ZVNldHRpbmdOYW1lCiAgKiBAcGFyYW0ge251
bWJlcj19IGRlZmF1bHRTaWRlYmFyU2l6ZQorICogQHBhcmFtIHtudW1iZXI9fSBkZWZhdWx0U2lk
ZWJhclNpemUyCiAgKi8KLVdlYkluc3BlY3Rvci5TcGxpdFZpZXcgPSBmdW5jdGlvbihpc1ZlcnRp
Y2FsLCBzaWRlYmFyU2l6ZVNldHRpbmdOYW1lLCBkZWZhdWx0U2lkZWJhclNpemUpCitXZWJJbnNw
ZWN0b3IuU3BsaXRWaWV3ID0gZnVuY3Rpb24oaXNWZXJ0aWNhbCwgc2lkZWJhclNpemVTZXR0aW5n
TmFtZSwgZGVmYXVsdFNpZGViYXJTaXplLCBkZWZhdWx0U2lkZWJhclNpemUyKQogewogICAgIFdl
Ykluc3BlY3Rvci5WaWV3LmNhbGwodGhpcyk7Ci0gICAgdGhpcy5faXNWZXJ0aWNhbCA9IGlzVmVy
dGljYWw7CiAKICAgICB0aGlzLnJlZ2lzdGVyUmVxdWlyZWRDU1MoInNwbGl0Vmlldy5jc3MiKTsK
IAogICAgIHRoaXMuZWxlbWVudC5jbGFzc05hbWUgPSAic3BsaXQtdmlldyI7CiAKICAgICB0aGlz
Ll9maXJzdEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKLSAgICB0aGlz
Ll9maXJzdEVsZW1lbnQuY2xhc3NOYW1lID0gInNwbGl0LXZpZXctY29udGVudHMgc3BsaXQtdmll
dy1jb250ZW50cy0iICsgKGlzVmVydGljYWwgPyAidmVydGljYWwiIDogImhvcml6b250YWwiKTsK
LSAgICBpZiAoaXNWZXJ0aWNhbCkKLSAgICAgICAgdGhpcy5fZmlyc3RFbGVtZW50LnN0eWxlLmxl
ZnQgPSAwOwotICAgIGVsc2UKLSAgICAgICAgdGhpcy5fZmlyc3RFbGVtZW50LnN0eWxlLnRvcCA9
IDA7CisgICAgdGhpcy5fZmlyc3RFbGVtZW50LmNsYXNzTmFtZSA9ICJzcGxpdC12aWV3LWNvbnRl
bnRzIjsKICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fZmlyc3RFbGVtZW50KTsK
IAogICAgIHRoaXMuX3NlY29uZEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYi
KTsKLSAgICB0aGlzLl9zZWNvbmRFbGVtZW50LmNsYXNzTmFtZSA9ICJzcGxpdC12aWV3LWNvbnRl
bnRzIHNwbGl0LXZpZXctY29udGVudHMtIiArIChpc1ZlcnRpY2FsID8gInZlcnRpY2FsIiA6ICJo
b3Jpem9udGFsIik7Ci0gICAgaWYgKGlzVmVydGljYWwpCi0gICAgICAgIHRoaXMuX3NlY29uZEVs
ZW1lbnQuc3R5bGUucmlnaHQgPSAwOwotICAgIGVsc2UKLSAgICAgICAgdGhpcy5fc2Vjb25kRWxl
bWVudC5zdHlsZS5ib3R0b20gPSAwOworICAgIHRoaXMuX3NlY29uZEVsZW1lbnQuY2xhc3NOYW1l
ID0gInNwbGl0LXZpZXctY29udGVudHMiOwogICAgIHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZCh0
aGlzLl9zZWNvbmRFbGVtZW50KTsKIAogICAgIHRoaXMuX3Jlc2l6ZXJFbGVtZW50ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0gICAgdGhpcy5fcmVzaXplckVsZW1lbnQuY2xhc3NO
YW1lID0gInNwbGl0LXZpZXctcmVzaXplciBzcGxpdC12aWV3LXJlc2l6ZXItIiArIChpc1ZlcnRp
Y2FsID8gInZlcnRpY2FsIiA6ICJob3Jpem9udGFsIik7CisgICAgdGhpcy5fcmVzaXplckVsZW1l
bnQuY2xhc3NOYW1lID0gInNwbGl0LXZpZXctcmVzaXplciI7CiAgICAgdGhpcy5pbnN0YWxsUmVz
aXplcih0aGlzLl9yZXNpemVyRWxlbWVudCk7CiAgICAgdGhpcy5fcmVzaXphYmxlID0gdHJ1ZTsK
ICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fcmVzaXplckVsZW1lbnQpOwogCi0g
ICAgZGVmYXVsdFNpZGViYXJTaXplID0gZGVmYXVsdFNpZGViYXJTaXplIHx8IDIwMDsKLSAgICB0
aGlzLl9zYXZlZFNpZGViYXJTaXplID0gZGVmYXVsdFNpZGViYXJTaXplOworICAgIGlmIChzaWRl
YmFyU2l6ZVNldHRpbmdOYW1lKSB7CisgICAgICBpZiAoZGVmYXVsdFNpZGViYXJTaXplMikgewor
ICAgICAgICAvLyBUd28gZGVmYXVsdCBzaXplcyBwcm92aWRlZCwgdGhlIGNsaWVudCBpcyBsaWtl
bHkgdG8gY2hhbmdlIHRoZQorICAgICAgICAvLyBvcmllbnRhdGlvbiBsYXRlciBvbi4gU3RvcmUg
dGhlIHR3byBzaXplcyBzZXBhcmF0ZWx5LgorICAgICAgICB0aGlzLl9zaWRlYmFyV2lkdGhTZXR0
aW5nTmFtZSA9IHNpZGViYXJTaXplU2V0dGluZ05hbWUgKyAnV2lkdGgnOworICAgICAgICB0aGlz
Ll9zaWRlYmFySGVpZ2h0U2V0dGluZ05hbWUgPSBzaWRlYmFyU2l6ZVNldHRpbmdOYW1lICsgJ0hl
aWdodCc7CisgICAgICB9IGVsc2UgeworICAgICAgICAvLyBTaW5nbGUgZGVmYXVsdCBwcm92aWRl
ZCwgdGhlIGNsaWVudCBpcyBub3QgbGlrZWx5IHRvIGNoYW5nZQorICAgICAgICAvLyB0aGUgb3Jp
ZW50YXRpb24uIFVzZSB0aGUgc2FtZSBzZXR0aW5nIG5hbWUuCisgICAgICAgIHRoaXMuX3NpZGVi
YXJXaWR0aFNldHRpbmdOYW1lID0gc2lkZWJhclNpemVTZXR0aW5nTmFtZTsKKyAgICAgICAgdGhp
cy5fc2lkZWJhckhlaWdodFNldHRpbmdOYW1lID0gc2lkZWJhclNpemVTZXR0aW5nTmFtZTsKKyAg
ICAgIH0KKyAgICAgIFdlYkluc3BlY3Rvci5zZXR0aW5nc1t0aGlzLl9zaWRlYmFyV2lkdGhTZXR0
aW5nTmFtZV0gPQorICAgICAgICAgIFdlYkluc3BlY3Rvci5zZXR0aW5ncy5jcmVhdGVTZXR0aW5n
KHRoaXMuX3NpZGViYXJXaWR0aFNldHRpbmdOYW1lLCB1bmRlZmluZWQpOworICAgICAgaWYgKHRo
aXMuX3NpZGViYXJIZWlnaHRTZXR0aW5nTmFtZSAhPSB0aGlzLl9zaWRlYmFyV2lkdGhTZXR0aW5n
TmFtZSkgeworICAgICAgICBXZWJJbnNwZWN0b3Iuc2V0dGluZ3NbdGhpcy5fc2lkZWJhckhlaWdo
dFNldHRpbmdOYW1lXSA9CisgICAgICAgICAgICBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MuY3JlYXRl
U2V0dGluZyh0aGlzLl9zaWRlYmFySGVpZ2h0U2V0dGluZ05hbWUsIHVuZGVmaW5lZCk7CisgICAg
ICB9CisgICAgfQogCi0gICAgdGhpcy5fc2lkZWJhclNpemVTZXR0aW5nTmFtZSA9IHNpZGViYXJT
aXplU2V0dGluZ05hbWU7Ci0gICAgaWYgKHRoaXMuX3NpZGViYXJTaXplU2V0dGluZ05hbWUpCi0g
ICAgICAgIFdlYkluc3BlY3Rvci5zZXR0aW5nc1t0aGlzLl9zaWRlYmFyU2l6ZVNldHRpbmdOYW1l
XSA9IFdlYkluc3BlY3Rvci5zZXR0aW5ncy5jcmVhdGVTZXR0aW5nKHRoaXMuX3NpZGViYXJTaXpl
U2V0dGluZ05hbWUsIHVuZGVmaW5lZCk7CisgICAgZGVmYXVsdFNpZGViYXJTaXplID0gZGVmYXVs
dFNpZGViYXJTaXplIHx8IDIwMDsKKyAgICBkZWZhdWx0U2lkZWJhclNpemUyID0gZGVmYXVsdFNp
ZGViYXJTaXplMiB8fCBkZWZhdWx0U2lkZWJhclNpemU7CisgICAgdGhpcy5fc2F2ZWRTaWRlYmFy
V2lkdGggPSBpc1ZlcnRpY2FsID8gZGVmYXVsdFNpZGViYXJTaXplIDogZGVmYXVsdFNpZGViYXJT
aXplMjsKKyAgICB0aGlzLl9zYXZlZFNpZGViYXJIZWlnaHQgPSBpc1ZlcnRpY2FsID8gZGVmYXVs
dFNpZGViYXJTaXplMiA6IGRlZmF1bHRTaWRlYmFyU2l6ZTsKIAogICAgIHRoaXMuX3NlY29uZElz
U2lkZWJhciA9IHRydWU7CisKKyAgICB0aGlzLl9pbm5lclNldElzVmVydGljYWwoaXNWZXJ0aWNh
bCk7CiB9CiAKIFdlYkluc3BlY3Rvci5TcGxpdFZpZXcucHJvdG90eXBlID0gewogICAgIC8qKgor
ICAgICAqIEByZXR1cm4ge2Jvb2xlYW59CisgICAgICovCisgICAgaXNWZXJ0aWNhbDogZnVuY3Rp
b24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2lzVmVydGljYWw7CisgICAgfSwKKwor
ICAgIC8qKgorICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gaXNWZXJ0aWNhbAorICAgICAqLworICAg
IHNldElzVmVydGljYWw6IGZ1bmN0aW9uKGlzVmVydGljYWwpCisgICAgeworICAgICAgICBpZiAo
dGhpcy5faXNWZXJ0aWNhbCA9PT0gaXNWZXJ0aWNhbCkKKyAgICAgICAgICAgIHJldHVybjsKKwor
ICAgICAgICB0aGlzLl9pbm5lclNldElzVmVydGljYWwoaXNWZXJ0aWNhbCk7CisKKyAgICAgICAg
aWYgKHRoaXMuaXNTaG93aW5nKCkpCisgICAgICAgICAgICB0aGlzLl91cGRhdGVMYXlvdXQoKTsK
KyAgICB9LAorCisgICAgLyoqCisgICAgICogQHBhcmFtIHtib29sZWFufSBpc1ZlcnRpY2FsCisg
ICAgICovCisgICAgX2lubmVyU2V0SXNWZXJ0aWNhbDogZnVuY3Rpb24oaXNWZXJ0aWNhbCkKKyAg
ICB7CisgICAgICAgIHRoaXMuX2lzVmVydGljYWwgPSBpc1ZlcnRpY2FsOworCisgICAgICAgIHRo
aXMuX3JlbW92ZUFsbExheW91dFByb3BlcnRpZXMoKTsKKworICAgICAgICBpZiAoaXNWZXJ0aWNh
bCkgeworICAgICAgICAgICAgdGhpcy5fZmlyc3RFbGVtZW50LnN0eWxlLmxlZnQgPSAwOworICAg
ICAgICAgICAgdGhpcy5fc2Vjb25kRWxlbWVudC5zdHlsZS5yaWdodCA9IDA7CisgICAgICAgICAg
ICB0aGlzLl9maXJzdEVsZW1lbnQuc3R5bGUucmVtb3ZlUHJvcGVydHkoInRvcCIpOworICAgICAg
ICAgICAgdGhpcy5fc2Vjb25kRWxlbWVudC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgiYm90dG9tIik7
CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB0aGlzLl9maXJzdEVsZW1l
bnQuc3R5bGUudG9wID0gMDsKKyAgICAgICAgICAgIHRoaXMuX3NlY29uZEVsZW1lbnQuc3R5bGUu
Ym90dG9tID0gMDsKKyAgICAgICAgICAgIHRoaXMuX2ZpcnN0RWxlbWVudC5zdHlsZS5yZW1vdmVQ
cm9wZXJ0eSgibGVmdCIpOworICAgICAgICAgICAgdGhpcy5fc2Vjb25kRWxlbWVudC5zdHlsZS5y
ZW1vdmVQcm9wZXJ0eSgicmlnaHQiKTsKKyAgICAgICAgfQorCisgICAgICAgIHZhciBvbGREaXJl
Y3Rpb24gPSAoaXNWZXJ0aWNhbCA/ICJob3Jpem9udGFsIiA6ICJ2ZXJ0aWNhbCIpOworICAgICAg
ICB2YXIgbmV3RGlyZWN0aW9uID0gKGlzVmVydGljYWwgPyAidmVydGljYWwiIDogImhvcml6b250
YWwiKTsKKworICAgICAgICB0aGlzLl9maXJzdEVsZW1lbnQucmVtb3ZlU3R5bGVDbGFzcygic3Bs
aXQtdmlldy1jb250ZW50cy0iICsgb2xkRGlyZWN0aW9uKTsKKyAgICAgICAgdGhpcy5fZmlyc3RF
bGVtZW50LmFkZFN0eWxlQ2xhc3MoInNwbGl0LXZpZXctY29udGVudHMtIiArIG5ld0RpcmVjdGlv
bik7CisKKyAgICAgICAgdGhpcy5fc2Vjb25kRWxlbWVudC5yZW1vdmVTdHlsZUNsYXNzKCJzcGxp
dC12aWV3LWNvbnRlbnRzLSIgKyBvbGREaXJlY3Rpb24pOworICAgICAgICB0aGlzLl9zZWNvbmRF
bGVtZW50LmFkZFN0eWxlQ2xhc3MoInNwbGl0LXZpZXctY29udGVudHMtIiArIG5ld0RpcmVjdGlv
bik7CisKKyAgICAgICAgdGhpcy5fcmVzaXplckVsZW1lbnQucmVtb3ZlU3R5bGVDbGFzcygic3Bs
aXQtdmlldy1yZXNpemVyLSIgKyBvbGREaXJlY3Rpb24pOworICAgICAgICB0aGlzLl9yZXNpemVy
RWxlbWVudC5hZGRTdHlsZUNsYXNzKCJzcGxpdC12aWV3LXJlc2l6ZXItIiArIG5ld0RpcmVjdGlv
bik7CisgICAgfSwKKyAgCisgICAgX3VwZGF0ZUxheW91dDogZnVuY3Rpb24oKSB7CisgICAgICB0
aGlzLl91cGRhdGVUb3RhbFNpemUoKTsKKworICAgICAgZGVsZXRlIHRoaXMuX3NpZGViYXJTaXpl
OyAgLy8gRm9yY2UgdXBkYXRlLgorICAgICAgdGhpcy5zZXRTaWRlYmFyU2l6ZSh0aGlzLl9sYXN0
U2lkZWJhclNpemUoKSk7CisgICAgfSwKKworICAgIC8qKgogICAgICAqIEByZXR1cm4ge0VsZW1l
bnR9CiAgICAgICovCiAgICAgZmlyc3RFbGVtZW50OiBmdW5jdGlvbigpCkBAIC05Miw2ICsxNjgs
MTQgQEAgV2ViSW5zcGVjdG9yLlNwbGl0Vmlldy5wcm90b3R5cGUgPSB7CiAgICAgfSwKIAogICAg
IC8qKgorICAgICAqIEByZXR1cm4ge2Jvb2xlYW59CisgICAgICovCisgICAgaXNTaWRlYmFyU2Vj
b25kOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fc2Vjb25kSXNTaWRl
YmFyOworICAgIH0sCisKKyAgICAvKioKICAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IHNlY29uZElz
U2lkZWJhcgogICAgICAqLwogICAgIHNldFNlY29uZElzU2lkZWJhcjogZnVuY3Rpb24oc2Vjb25k
SXNTaWRlYmFyKQpAQCAtMTY1LDkgKzI0OSw3IEBAIFdlYkluc3BlY3Rvci5TcGxpdFZpZXcucHJv
dG90eXBlID0gewogICAgICAgICB0aGlzLl9zZWNvbmRFbGVtZW50LnJlbW92ZVN0eWxlQ2xhc3Mo
ImhpZGRlbiIpOwogICAgICAgICB0aGlzLl9zZWNvbmRFbGVtZW50LnJlbW92ZVN0eWxlQ2xhc3Mo
Im1heGltaXplZCIpOwogCi0gICAgICAgIC8vIEZvcmNlIHVwZGF0ZQotICAgICAgICBkZWxldGUg
dGhpcy5fc2lkZWJhclNpemU7Ci0gICAgICAgIHRoaXMuc2V0U2lkZWJhclNpemUodGhpcy5fbGFz
dFNpZGViYXJTaXplKCkpOworICAgICAgICB0aGlzLl91cGRhdGVMYXlvdXQoKTsKIAogICAgICAg
ICB0aGlzLnNldFJlc2l6YWJsZSh0cnVlKTsKICAgICAgICAgdGhpcy5kb1Jlc2l6ZSgpOwpAQCAt
MjE2LDYgKzI5OCwxMCBAQCBXZWJJbnNwZWN0b3IuU3BsaXRWaWV3LnByb3RvdHlwZSA9IHsKICAg
ICAgICAgcmV0dXJuIHRoaXMuX3RvdGFsU2l6ZTsKICAgICB9LAogCisgICAgX3VwZGF0ZVRvdGFs
U2l6ZTogZnVuY3Rpb24oKSB7CisgICAgICAgIHRoaXMuX3RvdGFsU2l6ZSA9IHRoaXMuX2lzVmVy
dGljYWwgPyB0aGlzLmVsZW1lbnQub2Zmc2V0V2lkdGggOiB0aGlzLmVsZW1lbnQub2Zmc2V0SGVp
Z2h0OworICAgIH0sCisgIAogICAgIC8qKgogICAgICAqIEBwYXJhbSB7bnVtYmVyfSBzaXplCiAg
ICAgICovCkBAIC0yMjYsNiArMzEyLDExIEBAIFdlYkluc3BlY3Rvci5TcGxpdFZpZXcucHJvdG90
eXBlID0gewogCiAgICAgICAgIHRoaXMuX3JlbW92ZUFsbExheW91dFByb3BlcnRpZXMoKTsKIAor
ICAgICAgICB0aGlzLl9yZXNpemVyRWxlbWVudC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgibGVmdCIp
OworICAgICAgICB0aGlzLl9yZXNpemVyRWxlbWVudC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgicmln
aHQiKTsKKyAgICAgICAgdGhpcy5fcmVzaXplckVsZW1lbnQuc3R5bGUucmVtb3ZlUHJvcGVydHko
InRvcCIpOworICAgICAgICB0aGlzLl9yZXNpemVyRWxlbWVudC5zdHlsZS5yZW1vdmVQcm9wZXJ0
eSgiYm90dG9tIik7CisKICAgICAgICAgaWYgKHRoaXMuX2lzVmVydGljYWwpIHsKICAgICAgICAg
ICAgIHZhciByZXNpemVyV2lkdGggPSB0aGlzLl9yZXNpemVyRWxlbWVudC5vZmZzZXRXaWR0aDsK
ICAgICAgICAgICAgIGlmICh0aGlzLl9zZWNvbmRJc1NpZGViYXIpIHsKQEAgLTIzMywyMCArMzI0
LDIwIEBAIFdlYkluc3BlY3Rvci5TcGxpdFZpZXcucHJvdG90eXBlID0gewogICAgICAgICAgICAg
ICAgIHRoaXMuX3NlY29uZEVsZW1lbnQuc3R5bGUud2lkdGggPSBzaXplICsgInB4IjsKICAgICAg
ICAgICAgICAgICB0aGlzLl9yZXNpemVyRWxlbWVudC5zdHlsZS5yaWdodCA9IHNpemUgLSByZXNp
emVyV2lkdGggLyAyICsgInB4IjsKICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAg
ICAgdGhpcy5fZmlyc3RFbGVtZW50LnN0eWxlLndpZHRoID0gc2l6ZSArICJweCI7OwotICAgICAg
ICAgICAgICAgIHRoaXMuX3NlY29uZEVsZW1lbnQuc3R5bGUubGVmdCA9IHNpemUgKyAicHgiOzsK
KyAgICAgICAgICAgICAgICB0aGlzLl9maXJzdEVsZW1lbnQuc3R5bGUud2lkdGggPSBzaXplICsg
InB4IjsKKyAgICAgICAgICAgICAgICB0aGlzLl9zZWNvbmRFbGVtZW50LnN0eWxlLmxlZnQgPSBz
aXplICsgInB4IjsKICAgICAgICAgICAgICAgICB0aGlzLl9yZXNpemVyRWxlbWVudC5zdHlsZS5s
ZWZ0ID0gc2l6ZSAtIHJlc2l6ZXJXaWR0aCAvIDIgKyAicHgiOwogICAgICAgICAgICAgfQogICAg
ICAgICB9IGVsc2UgewogICAgICAgICAgICAgdmFyIHJlc2l6ZXJIZWlnaHQgPSB0aGlzLl9yZXNp
emVyRWxlbWVudC5vZmZzZXRIZWlnaHQ7CiAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKHRo
aXMuX3NlY29uZElzU2lkZWJhcikgewotICAgICAgICAgICAgICAgIHRoaXMuX2ZpcnN0RWxlbWVu
dC5zdHlsZS5ib3R0b20gPSBzaXplICsgInB4Ijs7Ci0gICAgICAgICAgICAgICAgdGhpcy5fc2Vj
b25kRWxlbWVudC5zdHlsZS5oZWlnaHQgPSBzaXplICsgInB4Ijs7CisgICAgICAgICAgICAgICAg
dGhpcy5fZmlyc3RFbGVtZW50LnN0eWxlLmJvdHRvbSA9IHNpemUgKyAicHgiOworICAgICAgICAg
ICAgICAgIHRoaXMuX3NlY29uZEVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gc2l6ZSArICJweCI7CiAg
ICAgICAgICAgICAgICAgdGhpcy5fcmVzaXplckVsZW1lbnQuc3R5bGUuYm90dG9tID0gc2l6ZSAt
IHJlc2l6ZXJIZWlnaHQgLyAyICsgInB4IjsKICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICAgICAgdGhpcy5fZmlyc3RFbGVtZW50LnN0eWxlLmhlaWdodCA9IHNpemUgKyAicHgiOzsK
LSAgICAgICAgICAgICAgICB0aGlzLl9zZWNvbmRFbGVtZW50LnN0eWxlLnRvcCA9IHNpemUgKyAi
cHgiOzsKKyAgICAgICAgICAgICAgICB0aGlzLl9maXJzdEVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0g
c2l6ZSArICJweCI7CisgICAgICAgICAgICAgICAgdGhpcy5fc2Vjb25kRWxlbWVudC5zdHlsZS50
b3AgPSBzaXplICsgInB4IjsKICAgICAgICAgICAgICAgICB0aGlzLl9yZXNpemVyRWxlbWVudC5z
dHlsZS50b3AgPSBzaXplIC0gcmVzaXplckhlaWdodCAvIDIgKyAicHgiOwogICAgICAgICAgICAg
fQogICAgICAgICB9CkBAIC0yNzAsMTQgKzM2MSwxMiBAQCBXZWJJbnNwZWN0b3IuU3BsaXRWaWV3
LnByb3RvdHlwZSA9IHsKIAogICAgIHdhc1Nob3duOiBmdW5jdGlvbigpCiAgICAgewotICAgICAg
ICB0aGlzLl90b3RhbFNpemUgPSB0aGlzLl9pc1ZlcnRpY2FsID8gdGhpcy5lbGVtZW50Lm9mZnNl
dFdpZHRoIDogdGhpcy5lbGVtZW50Lm9mZnNldEhlaWdodDsKLSAgICAgICAgdGhpcy5zZXRTaWRl
YmFyU2l6ZSh0aGlzLl9sYXN0U2lkZWJhclNpemUoKSk7CisgICAgICAgIHRoaXMuX3VwZGF0ZUxh
eW91dCgpOwogICAgIH0sCiAKICAgICBvblJlc2l6ZTogZnVuY3Rpb24oKQogICAgIHsKLSAgICAg
ICAgdmFyIG9sZFRvdGFsU2l6ZSA9IHRoaXMuX3RvdGFsU2l6ZTsKLSAgICAgICAgdGhpcy5fdG90
YWxTaXplID0gdGhpcy5faXNWZXJ0aWNhbCA/IHRoaXMuZWxlbWVudC5vZmZzZXRXaWR0aCA6IHRo
aXMuZWxlbWVudC5vZmZzZXRIZWlnaHQ7CisgICAgICAgIHRoaXMuX3VwZGF0ZVRvdGFsU2l6ZSgp
OwogICAgIH0sCiAKICAgICAvKioKQEAgLTMxNyw3ICs0MDYsMTUgQEAgV2ViSW5zcGVjdG9yLlNw
bGl0Vmlldy5wcm90b3R5cGUgPSB7CiAgICAgICovCiAgICAgaW5zdGFsbFJlc2l6ZXI6IGZ1bmN0
aW9uKHJlc2l6ZXJFbGVtZW50KQogICAgIHsKLSAgICAgICAgV2ViSW5zcGVjdG9yLmluc3RhbGxE
cmFnSGFuZGxlKHJlc2l6ZXJFbGVtZW50LCB0aGlzLl9zdGFydFJlc2l6ZXJEcmFnZ2luZy5iaW5k
KHRoaXMpLCB0aGlzLl9yZXNpemVyRHJhZ2dpbmcuYmluZCh0aGlzKSwgdGhpcy5fZW5kUmVzaXpl
ckRyYWdnaW5nLmJpbmQodGhpcyksIHRoaXMuX2lzVmVydGljYWwgPyAiZXctcmVzaXplIiA6ICJu
cy1yZXNpemUiKTsKKyAgICAgICAgcmVzaXplckVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91
c2Vkb3duIiwgdGhpcy5fb25EcmFnU3RhcnQuYmluZCh0aGlzKSwgZmFsc2UpOworICAgIH0sCisK
KyAgICAvKioKKyAgICAgKgorICAgICAqIEBwYXJhbSB7RXZlbnR9IGV2ZW50CisgICAgICovCisg
ICAgX29uRHJhZ1N0YXJ0OiBmdW5jdGlvbihldmVudCkgeworICAgICAgICBXZWJJbnNwZWN0b3Iu
X2VsZW1lbnREcmFnU3RhcnQodGhpcy5fc3RhcnRSZXNpemVyRHJhZ2dpbmcuYmluZCh0aGlzKSwg
dGhpcy5fcmVzaXplckRyYWdnaW5nLmJpbmQodGhpcyksIHRoaXMuX2VuZFJlc2l6ZXJEcmFnZ2lu
Zy5iaW5kKHRoaXMpLCB0aGlzLl9pc1ZlcnRpY2FsID8gImV3LXJlc2l6ZSIgOiAibnMtcmVzaXpl
IiwgZXZlbnQpOwogICAgIH0sCiAKICAgICAvKioKQEAgLTMyNSw3ICs0MjIsMTEgQEAgV2ViSW5z
cGVjdG9yLlNwbGl0Vmlldy5wcm90b3R5cGUgPSB7CiAgICAgICovCiAgICAgX2xhc3RTaWRlYmFy
U2l6ZTogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3NpZGViYXJTaXpl
U2V0dGluZ05hbWUgPyBXZWJJbnNwZWN0b3Iuc2V0dGluZ3NbdGhpcy5fc2lkZWJhclNpemVTZXR0
aW5nTmFtZV0uZ2V0KCkgfHwgdGhpcy5fc2F2ZWRTaWRlYmFyU2l6ZSA6IHRoaXMuX3NhdmVkU2lk
ZWJhclNpemU7CisgICAgICAgIGlmICh0aGlzLl9pc1ZlcnRpY2FsKSB7CisgICAgICAgICAgICBy
ZXR1cm4gKHRoaXMuX3NpZGViYXJXaWR0aFNldHRpbmdOYW1lID8gV2ViSW5zcGVjdG9yLnNldHRp
bmdzW3RoaXMuX3NpZGViYXJXaWR0aFNldHRpbmdOYW1lXS5nZXQoKSA6IDAgKSB8fCB0aGlzLl9z
YXZlZFNpZGViYXJXaWR0aDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiAo
dGhpcy5fc2lkZWJhckhlaWdodFNldHRpbmdOYW1lID8gV2ViSW5zcGVjdG9yLnNldHRpbmdzW3Ro
aXMuX3NpZGViYXJIZWlnaHRTZXR0aW5nTmFtZV0uZ2V0KCkgOiAwICkgfHwgdGhpcy5fc2F2ZWRT
aWRlYmFySGVpZ2h0OworICAgICAgICB9CiAgICAgfSwKIAogICAgIC8qKgpAQCAtMzMzLDExICs0
MzQsMTggQEAgV2ViSW5zcGVjdG9yLlNwbGl0Vmlldy5wcm90b3R5cGUgPSB7CiAgICAgICovCiAg
ICAgX3NhdmVTaWRlYmFyU2l6ZTogZnVuY3Rpb24oc2l6ZSkKICAgICB7Ci0gICAgICAgIHRoaXMu
X3NhdmVkU2lkZWJhclNpemUgPSBzaXplOwotICAgICAgICBpZiAoIXRoaXMuX3NpZGViYXJTaXpl
U2V0dGluZ05hbWUpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgV2ViSW5zcGVjdG9y
LnNldHRpbmdzW3RoaXMuX3NpZGViYXJTaXplU2V0dGluZ05hbWVdLnNldCh0aGlzLl9zYXZlZFNp
ZGViYXJTaXplKTsKKyAgICAgICAgdmFyIHNldHRpbmdOYW1lOworICAgICAgICBpZiAodGhpcy5f
aXNWZXJ0aWNhbCkgeworICAgICAgICAgICAgdGhpcy5fc2F2ZWRTaWRlYmFyV2lkdGggPSBzaXpl
OworICAgICAgICAgICAgc2V0dGluZ05hbWUgPSB0aGlzLl9zaWRlYmFyV2lkdGhTZXR0aW5nTmFt
ZTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHRoaXMuX3NhdmVkU2lk
ZWJhckhlaWdodCA9IHNpemU7CisgICAgICAgICAgICBzZXR0aW5nTmFtZSA9IHRoaXMuX3NpZGVi
YXJIZWlnaHRTZXR0aW5nTmFtZTsKKyAgICAgICAgfQorICAgICAgCisgICAgICAgIGlmIChzZXR0
aW5nTmFtZSkKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5zZXR0aW5nc1tzZXR0aW5nTmFtZV0u
c2V0KHNpemUpOwogICAgIH0sCiAKICAgICBfX3Byb3RvX186IFdlYkluc3BlY3Rvci5WaWV3LnBy
b3RvdHlwZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9z
cGxpdFZpZXcuY3NzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9zcGxpdFZp
ZXcuY3NzCmluZGV4IDhjMmQzODUzYWI5MDZjMDBkZjVlOTc3N2RmNjQwOWZlMWNiMjA4YzcuLjdi
MDhhN2UwNzZhNDBiNDhmYjZkYjBlOTczOTBmY2E0ZTgyZWRjOTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvc3BsaXRWaWV3LmNzcworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL3NwbGl0Vmlldy5jc3MKQEAgLTY3LDYgKzY3LDIy
IEBACiAgICAgYm9yZGVyLXJpZ2h0OiBub25lOwogfQogCisuc3BsaXQtdmlldy1zaWRlYmFyLXRv
cCB7CisgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYig2NCUsIDY0JSwgNjQlKTsKK30K
KworLnNwbGl0LXZpZXctc2lkZWJhci10b3AubWF4aW1pemVkIHsKKyAgICBib3JkZXItYm90dG9t
OiBub25lOworfQorCisuc3BsaXQtdmlldy1zaWRlYmFyLWJvdHRvbSB7CisgICAgYm9yZGVyLXRv
cDogMXB4IHNvbGlkIHJnYig2NCUsIDY0JSwgNjQlKTsKK30KKworLnNwbGl0LXZpZXctc2lkZWJh
ci1ib3R0b20ubWF4aW1pemVkIHsKKyAgICBib3JkZXItdG9wOiBub25lOworfQorCiAuc3BsaXQt
dmlldy1yZXNpemVyLnNwbGl0LXZpZXctcmVzaXplci12ZXJ0aWNhbCB7CiAgICAgcG9zaXRpb246
IGFic29sdXRlOwogICAgIHRvcDogMDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>183771</attachid>
            <date>2013-01-21 06:34:29 -0800</date>
            <delta_ts>2013-01-21 07:12:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107129-20130121183124.patch</filename>
            <type>text/plain</type>
            <size>17903</size>
            <attacher name="Vladislav Kaznacheev">kaznacheev</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwMzE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmM3YTJmYWIwYzUxOTFi
ZDM3NGFkMTE1ODBiNjY1OTk1YzIyNDgxMC4uM2VhNjk5OTE0YzU1MWY1ZTIyNGFlODM2ZTQ2MGM0
YTUxNWIwMGQ4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDEzLTAxLTIxICBWbGFk
aXNsYXYgS2F6bmFjaGVldiAgPGthem5hY2hlZXZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtJ
bnNwZWN0b3JdIExheW91dCBFbGVtZW50cyBwYW5lbCBpbiBhIHNpbmdsZSBjb2x1bW4gd2hlbiBk
b2NrZWQgcmlnaHQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMDcxMjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBJZiB0aGUgSW5zcGVjdG9yIGlzIGRvY2tlZCByaWdodCwgdGhlIHN0eWxlIHBhbmVzIGlu
IHRoZSBFbGVtZW50cyBwYW5lbAorICAgICAgICBhcmUgcHV0IGJlbG93IHRoZSBET00gdHJlZSBw
YW5lLCBub3QgdG8gdGhlIHJpZ2h0LiBUaGlzIGJlaGF2aW9yCisgICAgICAgIGlzIGV4cGVyaW1l
bnRhbCAoaGlkZGVuIGJlaGluZCBhIG5ldyBmbGFnICJlbGVtZW50c1BhbmVsU2luZ2xlQ29sdW1u
IikuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLgorCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250
LWVuZC9Eb2NrQ29udHJvbGxlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Eb2NrQ29udHJv
bGxlci5wcm90b3R5cGUuZG9ja1NpZGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRvY2tDb250
cm9sbGVyLnByb3RvdHlwZS5fdXBkYXRlVUkpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRvY2tD
b250cm9sbGVyLnByb3RvdHlwZS5fdG9nZ2xlRG9ja1N0YXRlKToKKyAgICAgICAgKiBpbnNwZWN0
b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxl
bWVudHNQYW5lbC5wcm90b3R5cGUub25SZXNpemUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVs
ZW1lbnRzUGFuZWwucHJvdG90eXBlLl9vbkRvY2tTdGF0ZUNoYW5nZWQpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwucHJvdG90eXBlLl9zaWRlYmFyUG9zaXRpb24pOgorICAg
ICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuUGFuZWwucHJvdG90eXBlLmNyZWF0ZVNpZGViYXJWaWV3KToKKyAgICAgICAgKiBpbnNwZWN0
b3IvZnJvbnQtZW5kL1NldHRpbmdzLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkV4cGVyaW1l
bnRzU2V0dGluZ3MpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU2lkZWJhclZpZXcu
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2lkZWJhclZpZXcpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlNpZGViYXJWaWV3LnByb3RvdHlwZS5nZXQgbWFpbkVsZW1lbnQpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlNpZGViYXJWaWV3LnByb3RvdHlwZS5nZXQgc2lkZWJhckVsZW1lbnQpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlNpZGViYXJWaWV3LnByb3RvdHlwZS5fc2V0U2lkZWJhckVs
ZW1lbnRTdHlsZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2lkZWJhclZpZXcucHJvdG90eXBl
LnNldFNpZGViYXJQb3NpdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2lkZWJhclZpZXcu
cHJvdG90eXBlLl9pbm5lclNldFNpZGViYXJQb3NpdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuU2lkZWJhclZpZXcucHJvdG90eXBlLnNldE1pbmltdW1TaWRlYmFySGVpZ2h0KToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5TaWRlYmFyVmlldy5wcm90b3R5cGUuc2V0TWluaW11bU1haW5IZWln
aHRQZXJjZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TaWRlYmFyVmlldy5wcm90b3R5cGUu
YXBwbHlDb25zdHJhaW50cyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2lkZWJhclZpZXcucHJv
dG90eXBlLmhpZGVNYWluRWxlbWVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2lkZWJhclZp
ZXcucHJvdG90eXBlLmhpZGVTaWRlYmFyRWxlbWVudCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9TcGxpdFZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3BsaXRWaWV3KToK
KyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL3NwbGl0Vmlldy5jc3M6CisgICAgICAgICgu
c3BsaXQtdmlldy1zaWRlYmFyLXRvcCk6CisgICAgICAgICguc3BsaXQtdmlldy1zaWRlYmFyLXRv
cC5tYXhpbWl6ZWQpOgorICAgICAgICAoLnNwbGl0LXZpZXctc2lkZWJhci1ib3R0b20pOgorICAg
ICAgICAoLnNwbGl0LXZpZXctc2lkZWJhci1ib3R0b20ubWF4aW1pemVkKToKKwogMjAxMy0wMS0y
MSAgVGFrYXNoaSBTYWthbW90byAgPHRhc2FrQGdvb2dsZS5jb20+CiAKICAgICAgICAgW1JlZmFj
dG9yaW5nXSByZW5hbWUgU3R5bGVSdWxlQmxvY2sgLT4gU3R5bGVSdWxlR3JvdXAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRG9ja0NvbnRyb2xsZXIuanMg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RvY2tDb250cm9sbGVyLmpzCmlu
ZGV4IDA3ZGVjMmRhNWIzNDlmODZmNTU2YWE3YTc3NWUzM2M5NGM4NzJhNzkuLjhhY2IyZGU0Mjdk
ZDQyNGMxZGRlMmI3ODgzNjcyOGZiYzQzOGIyYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvRG9ja0NvbnRyb2xsZXIuanMKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Eb2NrQ29udHJvbGxlci5qcwpAQCAtMzAsNiArMzAsNyBA
QAogCiAvKioKICAqIEBjb25zdHJ1Y3RvcgorICogQGV4dGVuZHMge1dlYkluc3BlY3Rvci5PYmpl
Y3R9CiAgKi8KIFdlYkluc3BlY3Rvci5Eb2NrQ29udHJvbGxlciA9IGZ1bmN0aW9uKCkKIHsKQEAg
LTUwLDYgKzUxLDEwIEBAIFdlYkluc3BlY3Rvci5Eb2NrQ29udHJvbGxlci5TdGF0ZSA9IHsKICAg
ICBVbmRvY2tlZDogInVuZG9ja2VkIgogfQogCitXZWJJbnNwZWN0b3IuRG9ja0NvbnRyb2xsZXIu
RXZlbnRUeXBlcyA9IHsKKyAgICBTdGF0ZUNoYW5nZWQ6ICJTdGF0ZUNoYW5nZWQiCit9CisKIFdl
Ykluc3BlY3Rvci5Eb2NrQ29udHJvbGxlci5wcm90b3R5cGUgPSB7CiAgICAgLyoqCiAgICAgICog
QHJldHVybiB7RWxlbWVudH0KQEAgLTYwLDYgKzY1LDEzIEBAIFdlYkluc3BlY3Rvci5Eb2NrQ29u
dHJvbGxlci5wcm90b3R5cGUgPSB7CiAgICAgfSwKIAogICAgIC8qKgorICAgICAqIEByZXR1cm4g
e3N0cmluZ30gZG9ja1NpZGUKKyAgICAgKi8KKyAgICBkb2NrU2lkZTogZnVuY3Rpb24oKSB7Cisg
ICAgICByZXR1cm4gdGhpcy5fZG9ja1NpZGU7CisgICAgfSwKKworICAgIC8qKgogICAgICAqIEBw
YXJhbSB7c3RyaW5nfSBkb2NrU2lkZQogICAgICAqLwogICAgIHNldERvY2tTaWRlOiBmdW5jdGlv
bihkb2NrU2lkZSkKQEAgLTEzNSw2ICsxNDcsOCBAQCBXZWJJbnNwZWN0b3IuRG9ja0NvbnRyb2xs
ZXIucHJvdG90eXBlID0gewogICAgICAgICB9CiAgICAgICAgIHRoaXMuX2RlY29yYXRlQnV0dG9u
Rm9yVGFyZ2V0U3RhdGUodGhpcy5fZG9ja1RvZ2dsZUJ1dHRvbiwgbGFzdFN0YXRlKTsKICAgICAg
ICAgdGhpcy5fZGVjb3JhdGVCdXR0b25Gb3JUYXJnZXRTdGF0ZSh0aGlzLl9kb2NrVG9nZ2xlQnV0
dG9uT3B0aW9uLCBzaWRlc1swXSk7CisKKyAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0
ZW5lcnMoV2ViSW5zcGVjdG9yLkRvY2tDb250cm9sbGVyLkV2ZW50VHlwZXMuU3RhdGVDaGFuZ2Vk
LCB0aGlzLl9kb2NrU2lkZSk7CiAgICAgfSwKIAogICAgIC8qKgpAQCAtMTc2LDUgKzE5MCwxMiBA
QCBXZWJJbnNwZWN0b3IuRG9ja0NvbnRyb2xsZXIucHJvdG90eXBlID0gewogICAgICAgICBjYXNl
ICJ1bmRvY2siOiBhY3Rpb24gPSAidW5kb2NrZWQiOyBicmVhazsKICAgICAgICAgfQogICAgICAg
ICBJbnNwZWN0b3JGcm9udGVuZEhvc3QucmVxdWVzdFNldERvY2tTaWRlKGFjdGlvbik7Ci0gICAg
fQorICAgIH0sCisKKyAgICBfX3Byb3RvX186IFdlYkluc3BlY3Rvci5PYmplY3QucHJvdG90eXBl
CiB9CisKKy8qKgorICogQHR5cGUgez9XZWJJbnNwZWN0b3IuRG9ja0NvbnRyb2xsZXJ9CisgKi8K
K1dlYkluc3BlY3Rvci5kb2NrQ29udHJvbGxlciA9IG51bGw7ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9F
bGVtZW50c1BhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVt
ZW50c1BhbmVsLmpzCmluZGV4IGU1OTdjNWM3MmQxMDg1N2Q5NGJiMWZmMWZlOWIxNzI1NTBhNTI3
OWUuLjczYmE1NjQ2ODkyNjY2MWJlM2QzMDJjY2QxZjkyNGM1ZDk4NjEyNWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNQYW5lbC5qcworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanMKQEAg
LTQ3LDExICs0NywxNyBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbCA9IGZ1bmN0aW9uKCkK
ICAgICB0aGlzLnJlZ2lzdGVyUmVxdWlyZWRDU1MoInRleHRQcm9tcHQuY3NzIik7CiAgICAgdGhp
cy5zZXRIaWRlT25EZXRhY2goKTsKIAorICAgIFdlYkluc3BlY3Rvci5kb2NrQ29udHJvbGxlci5h
ZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Eb2NrQ29udHJvbGxlci5FdmVudFR5cGVzLlN0
YXRlQ2hhbmdlZCwgdGhpcy5fb25Eb2NrU3RhdGVDaGFuZ2VkLmJpbmQodGhpcykpOworCiAgICAg
Y29uc3QgaW5pdGlhbFNpZGViYXJXaWR0aCA9IDMyNTsKICAgICBjb25zdCBtaW5pbXVtQ29udGVu
dFdpZHRoUGVyY2VudCA9IDM0OwotICAgIHRoaXMuY3JlYXRlU2lkZWJhclZpZXcodGhpcy5lbGVt
ZW50LCBXZWJJbnNwZWN0b3IuU2lkZWJhclZpZXcuU2lkZWJhclBvc2l0aW9uLlJpZ2h0LCBpbml0
aWFsU2lkZWJhcldpZHRoKTsKKyAgICBjb25zdCBpbml0aWFsU2lkZWJhckhlaWdodCA9IDMyNTsK
KyAgICBjb25zdCBtaW5pbXVtQ29udGVudEhlaWdodFBlcmNlbnQgPSAzNDsKKyAgICB0aGlzLmNy
ZWF0ZVNpZGViYXJWaWV3KHRoaXMuZWxlbWVudCwgdGhpcy5fc2lkZWJhclBvc2l0aW9uKCksIGlu
aXRpYWxTaWRlYmFyV2lkdGgsIGluaXRpYWxTaWRlYmFySGVpZ2h0KTsKICAgICB0aGlzLnNwbGl0
Vmlldy5zZXRNaW5pbXVtU2lkZWJhcldpZHRoKFByZWZlcmVuY2VzLm1pbkVsZW1lbnRzU2lkZWJh
cldpZHRoKTsKICAgICB0aGlzLnNwbGl0Vmlldy5zZXRNaW5pbXVtTWFpbldpZHRoUGVyY2VudCht
aW5pbXVtQ29udGVudFdpZHRoUGVyY2VudCk7CisgICAgdGhpcy5zcGxpdFZpZXcuc2V0TWluaW11
bVNpZGViYXJIZWlnaHQoUHJlZmVyZW5jZXMubWluRWxlbWVudHNTaWRlYmFySGVpZ2h0KTsKKyAg
ICB0aGlzLnNwbGl0Vmlldy5zZXRNaW5pbXVtTWFpbkhlaWdodFBlcmNlbnQobWluaW11bUNvbnRl
bnRIZWlnaHRQZXJjZW50KTsKIAogICAgIHRoaXMuY29udGVudEVsZW1lbnQgPSB0aGlzLnNwbGl0
Vmlldy5tYWluRWxlbWVudDsKICAgICB0aGlzLmNvbnRlbnRFbGVtZW50LmlkID0gImVsZW1lbnRz
LWNvbnRlbnQiOwpAQCAtMTY2LDYgKzE3MiwyNiBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5l
bC5wcm90b3R5cGUgPSB7CiAgICAgewogICAgICAgICB0aGlzLnRyZWVPdXRsaW5lLnVwZGF0ZVNl
bGVjdGlvbigpOwogICAgICAgICB0aGlzLnVwZGF0ZUJyZWFkY3J1bWJTaXplcygpOworICAgICAg
ICBpZiAoV2ViSW5zcGVjdG9yLmRvY2tDb250cm9sbGVyLmRvY2tTaWRlKCkgIT09IFdlYkluc3Bl
Y3Rvci5Eb2NrQ29udHJvbGxlci5TdGF0ZS5VbmRvY2tlZCkKKyAgICAgICAgICAgIHRoaXMuc3Bs
aXRWaWV3LnNldFNpZGViYXJQb3NpdGlvbih0aGlzLl9zaWRlYmFyUG9zaXRpb24oKSk7CisgICAg
fSwKKworICAgIF9vbkRvY2tTdGF0ZUNoYW5nZWQ6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAg
IGlmIChXZWJJbnNwZWN0b3IuZG9ja0NvbnRyb2xsZXIuZG9ja1NpZGUoKSA9PT0gV2ViSW5zcGVj
dG9yLkRvY2tDb250cm9sbGVyLlN0YXRlLlVuZG9ja2VkKQorICAgICAgICAgICAgdGhpcy5zcGxp
dFZpZXcuc2V0U2lkZWJhclBvc2l0aW9uKHRoaXMuX3NpZGViYXJQb3NpdGlvbigpKTsKKyAgICB9
LAorCisgICAgLyoqCisgICAgICogQHJldHVybiB7c3RyaW5nfQorICAgICAqLworICAgIF9zaWRl
YmFyUG9zaXRpb246IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIGlmIChXZWJJbnNwZWN0b3Iu
ZXhwZXJpbWVudHNTZXR0aW5ncy5lbGVtZW50c1BhbmVsU2luZ2xlQ29sdW1uLmlzRW5hYmxlZCgp
ICYmCisgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZG9ja0NvbnRyb2xsZXIuZG9ja1NpZGUoKSA9
PT0gV2ViSW5zcGVjdG9yLkRvY2tDb250cm9sbGVyLlN0YXRlLkRvY2tlZFRvUmlnaHQpCisgICAg
ICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLlNpZGViYXJWaWV3LlNpZGViYXJQb3NpdGlvbi5C
b3R0b207CisKKyAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5TaWRlYmFyVmlldy5TaWRlYmFy
UG9zaXRpb24uUmlnaHQ7CiAgICAgfSwKIAogICAgIC8qKgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9QYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvUGFuZWwuanMKaW5kZXggNTE4OWI3ZTQyZjVmYTQ5YmZiMzRkMDQyNTA5
NjQ1ZWFmOGE3ZGU2Ny4uYWUzYjM4ZGM0MTBkZjBkYzI4NjE1MDMyNDAzOTFmNjhiNGNhODgwYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9QYW5lbC5qcwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1BhbmVsLmpzCkBAIC0xNTIs
OCArMTUyLDkgQEAgV2ViSW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgKiBAcGFy
YW0ge0VsZW1lbnQ9fSBwYXJlbnRFbGVtZW50CiAgICAgICogQHBhcmFtIHtzdHJpbmc9fSBwb3Np
dGlvbgogICAgICAqIEBwYXJhbSB7bnVtYmVyPX0gZGVmYXVsdFdpZHRoCisgICAgICogQHBhcmFt
IHtudW1iZXI9fSBkZWZhdWx0SGVpZ2h0CiAgICAgICovCi0gICAgY3JlYXRlU2lkZWJhclZpZXc6
IGZ1bmN0aW9uKHBhcmVudEVsZW1lbnQsIHBvc2l0aW9uLCBkZWZhdWx0V2lkdGgpCisgICAgY3Jl
YXRlU2lkZWJhclZpZXc6IGZ1bmN0aW9uKHBhcmVudEVsZW1lbnQsIHBvc2l0aW9uLCBkZWZhdWx0
V2lkdGgsIGRlZmF1bHRIZWlnaHQpCiAgICAgewogICAgICAgICBpZiAodGhpcy5zcGxpdFZpZXcp
CiAgICAgICAgICAgICByZXR1cm47CkBAIC0xNjEsNyArMTYyLDcgQEAgV2ViSW5zcGVjdG9yLlBh
bmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgaWYgKCFwYXJlbnRFbGVtZW50KQogICAgICAgICAg
ICAgcGFyZW50RWxlbWVudCA9IHRoaXMuZWxlbWVudDsKIAotICAgICAgICB0aGlzLnNwbGl0Vmll
dyA9IG5ldyBXZWJJbnNwZWN0b3IuU2lkZWJhclZpZXcocG9zaXRpb24gfHwgV2ViSW5zcGVjdG9y
LlNpZGViYXJWaWV3LlNpZGViYXJQb3NpdGlvbi5MZWZ0LCB0aGlzLl9zaWRlYmFyV2lkdGhTZXR0
aW5nTmFtZSgpLCBkZWZhdWx0V2lkdGgpOworICAgICAgICB0aGlzLnNwbGl0VmlldyA9IG5ldyBX
ZWJJbnNwZWN0b3IuU2lkZWJhclZpZXcocG9zaXRpb24gfHwgV2ViSW5zcGVjdG9yLlNpZGViYXJW
aWV3LlNpZGViYXJQb3NpdGlvbi5MZWZ0LCB0aGlzLl9zaWRlYmFyV2lkdGhTZXR0aW5nTmFtZSgp
LCBkZWZhdWx0V2lkdGgsIGRlZmF1bHRIZWlnaHQpOwogICAgICAgICB0aGlzLnNwbGl0Vmlldy5z
aG93KHBhcmVudEVsZW1lbnQpOwogICAgICAgICB0aGlzLnNwbGl0Vmlldy5hZGRFdmVudExpc3Rl
bmVyKFdlYkluc3BlY3Rvci5TaWRlYmFyVmlldy5FdmVudFR5cGVzLlJlc2l6ZWQsIHRoaXMuc2lk
ZWJhclJlc2l6ZWQuYmluZCh0aGlzKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3MuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1NldHRpbmdzLmpzCmluZGV4IGI5ZTg2NGJlNzQ1YmI3MzcwOWQ2NjIwOWY2ZjEw
MWQ3YzFhOTgzNGMuLjVmZWJhZGQxYjlhYjE3M2FkZjU5NTc3Mjk3OGNmNDViMjJmYmQ5M2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3MuanMK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5ncy5qcwpAQCAt
MzMsNyArMzMsOSBAQCB2YXIgUHJlZmVyZW5jZXMgPSB7CiAgICAgbWF4SW5saW5lVGV4dENoaWxk
TGVuZ3RoOiA4MCwKICAgICBtaW5Db25zb2xlSGVpZ2h0OiA3NSwKICAgICBtaW5TaWRlYmFyV2lk
dGg6IDEwMCwKKyAgICBtaW5TaWRlYmFySGVpZ2h0OiA3NSwKICAgICBtaW5FbGVtZW50c1NpZGVi
YXJXaWR0aDogMjAwLAorICAgIG1pbkVsZW1lbnRzU2lkZWJhckhlaWdodDogMjAwLAogICAgIG1p
blNjcmlwdHNTaWRlYmFyV2lkdGg6IDIwMCwKICAgICBzdHlsZVJ1bGVzRXhwYW5kZWRTdGF0ZTog
e30sCiAgICAgc2hvd01pc3NpbmdMb2NhbGl6ZWRTdHJpbmdzOiBmYWxzZSwKQEAgLTIxMCw4ICsy
MTIsOSBAQCBXZWJJbnNwZWN0b3IuRXhwZXJpbWVudHNTZXR0aW5ncyA9IGZ1bmN0aW9uKCkKICAg
ICB0aGlzLmNzc1JlZ2lvbnMgPSB0aGlzLl9jcmVhdGVFeHBlcmltZW50KCJjc3NSZWdpb25zIiwg
IkNTUyBSZWdpb25zIFN1cHBvcnQiKTsKICAgICB0aGlzLnNob3dPdmVycmlkZXNJbkRyYXdlciA9
IHRoaXMuX2NyZWF0ZUV4cGVyaW1lbnQoInNob3dPdmVycmlkZXNJbkRyYXdlciIsICJTaG93IE92
ZXJyaWRlcyBpbiBkcmF3ZXIiKTsKICAgICB0aGlzLmZpbGVTeXN0ZW1Qcm9qZWN0ID0gdGhpcy5f
Y3JlYXRlRXhwZXJpbWVudCgiZmlsZVN5c3RlbVByb2plY3QiLCAiRmlsZSBzeXN0ZW0gZm9sZGVy
cyBpbiBTb3VyY2VzIFBhbmVsIik7CisgICAgdGhpcy5lbGVtZW50c1BhbmVsU2luZ2xlQ29sdW1u
ID0gdGhpcy5fY3JlYXRlRXhwZXJpbWVudCgiZWxlbWVudHNQYW5lbFNpbmdsZUNvbHVtbiIsICJT
aW5nbGUtY29sdW1uIGVsZW1lbnRzIHBhbmVsIGxheW91dCB3aGVuIGRvY2tlZCB0byByaWdodCIp
OwogCi0gICAgdGhpcy5fY2xlYW5VcFNldHRpbmcoKTsKKyAgdGhpcy5fY2xlYW5VcFNldHRpbmco
KTsKIH0KIAogV2ViSW5zcGVjdG9yLkV4cGVyaW1lbnRzU2V0dGluZ3MucHJvdG90eXBlID0gewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TaWRlYmFyVmll
dy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2lkZWJhclZpZXcuanMK
aW5kZXggNWM1OWViY2QzNDNkMjUyMjA2MmNjY2Y4NzZkOTcwN2M2Mzc3YzI2NC4uMDU2OTVmNTUy
NDdjYThjZThjMWI2MjkwY2Q4Y2QyNjdhNDQwNzIzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TaWRlYmFyVmlldy5qcworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NpZGViYXJWaWV3LmpzCkBAIC0zMiwxMCArMzIsMTEgQEAK
ICAqIEBwYXJhbSB7c3RyaW5nPX0gc2lkZWJhclBvc2l0aW9uCiAgKiBAcGFyYW0ge3N0cmluZz19
IHNpZGViYXJXaWR0aFNldHRpbmdOYW1lCiAgKiBAcGFyYW0ge251bWJlcj19IGRlZmF1bHRTaWRl
YmFyV2lkdGgKKyAqIEBwYXJhbSB7bnVtYmVyPX0gZGVmYXVsdFNpZGViYXJIZWlnaHQKICAqLwot
V2ViSW5zcGVjdG9yLlNpZGViYXJWaWV3ID0gZnVuY3Rpb24oc2lkZWJhclBvc2l0aW9uLCBzaWRl
YmFyV2lkdGhTZXR0aW5nTmFtZSwgZGVmYXVsdFNpZGViYXJXaWR0aCkKK1dlYkluc3BlY3Rvci5T
aWRlYmFyVmlldyA9IGZ1bmN0aW9uKHNpZGViYXJQb3NpdGlvbiwgc2lkZWJhcldpZHRoU2V0dGlu
Z05hbWUsIGRlZmF1bHRTaWRlYmFyV2lkdGgsIGRlZmF1bHRTaWRlYmFySGVpZ2h0KQogewotICAg
IFdlYkluc3BlY3Rvci5TcGxpdFZpZXcuY2FsbCh0aGlzLCB0cnVlLCBzaWRlYmFyV2lkdGhTZXR0
aW5nTmFtZSwgZGVmYXVsdFNpZGViYXJXaWR0aCB8fCAyMDApOworICAgIFdlYkluc3BlY3Rvci5T
cGxpdFZpZXcuY2FsbCh0aGlzLCB0cnVlLCBzaWRlYmFyV2lkdGhTZXR0aW5nTmFtZSwgZGVmYXVs
dFNpZGViYXJXaWR0aCwgZGVmYXVsdFNpZGViYXJIZWlnaHQpOwogCiAgICAgdGhpcy5fbGVmdEVs
ZW1lbnQgPSB0aGlzLmZpcnN0RWxlbWVudCgpOwogICAgIHRoaXMuX3JpZ2h0RWxlbWVudCA9IHRo
aXMuc2Vjb25kRWxlbWVudCgpOwpAQCAtNDMsMTEgKzQ0LDEwIEBAIFdlYkluc3BlY3Rvci5TaWRl
YmFyVmlldyA9IGZ1bmN0aW9uKHNpZGViYXJQb3NpdGlvbiwgc2lkZWJhcldpZHRoU2V0dGluZ05h
bWUsIGRlCiAgICAgdGhpcy5fbWluaW11bVNpZGViYXJXaWR0aCA9IFByZWZlcmVuY2VzLm1pblNp
ZGViYXJXaWR0aDsKICAgICB0aGlzLl9taW5pbXVtTWFpbldpZHRoUGVyY2VudCA9IDUwOwogCi0g
ICAgdGhpcy5fbWFpbkVsZW1lbnRIaWRkZW4gPSBmYWxzZTsKLSAgICB0aGlzLl9zaWRlYmFyRWxl
bWVudEhpZGRlbiA9IGZhbHNlOworICAgIHRoaXMuX21pbmltdW1TaWRlYmFySGVpZ2h0ID0gUHJl
ZmVyZW5jZXMubWluU2lkZWJhckhlaWdodDsKKyAgICB0aGlzLl9taW5pbXVtTWFpbkhlaWdodFBl
cmNlbnQgPSA1MDsKIAogICAgIHRoaXMuX2lubmVyU2V0U2lkZWJhclBvc2l0aW9uKHNpZGViYXJQ
b3NpdGlvbiB8fCBXZWJJbnNwZWN0b3IuU2lkZWJhclZpZXcuU2lkZWJhclBvc2l0aW9uLkxlZnQp
OwotICAgIHRoaXMuc2V0U2Vjb25kSXNTaWRlYmFyKHNpZGViYXJQb3NpdGlvbiAhPT0gV2ViSW5z
cGVjdG9yLlNpZGViYXJWaWV3LlNpZGViYXJQb3NpdGlvbi5MZWZ0KTsKIH0KIAogV2ViSW5zcGVj
dG9yLlNpZGViYXJWaWV3LkV2ZW50VHlwZXMgPSB7CkBAIC01OSw0NyArNTksODAgQEAgV2ViSW5z
cGVjdG9yLlNpZGViYXJWaWV3LkV2ZW50VHlwZXMgPSB7CiAgKi8KIFdlYkluc3BlY3Rvci5TaWRl
YmFyVmlldy5TaWRlYmFyUG9zaXRpb24gPSB7CiAgICAgTGVmdDogIkxlZnQiLAotICAgIFJpZ2h0
OiAiUmlnaHQiCisgICAgUmlnaHQ6ICJSaWdodCIsCisgICAgVG9wOiAiVG9wIiwKKyAgICBCb3R0
b206ICJCb3R0b20iCiB9CiAKIFdlYkluc3BlY3Rvci5TaWRlYmFyVmlldy5wcm90b3R5cGUgPSB7
CiAgICAgLyoqCi0gICAgICogQHJldHVybiB7Ym9vbGVhbn0KKyAgICAgKiBAcmV0dXJuIHtFbGVt
ZW50fQogICAgICAqLwotICAgIF9oYXNMZWZ0U2lkZWJhcjogZnVuY3Rpb24oKQorICAgIGdldCBt
YWluRWxlbWVudCgpCiAgICAgewotICAgICAgICByZXR1cm4gdGhpcy5fc2lkZWJhclBvc2l0aW9u
ID09PSBXZWJJbnNwZWN0b3IuU2lkZWJhclZpZXcuU2lkZWJhclBvc2l0aW9uLkxlZnQ7CisgICAg
ICAgIHJldHVybiB0aGlzLmlzU2lkZWJhclNlY29uZCgpID8gdGhpcy5maXJzdEVsZW1lbnQoKSA6
IHRoaXMuc2Vjb25kRWxlbWVudCgpOwogICAgIH0sCiAKICAgICAvKioKICAgICAgKiBAcmV0dXJu
IHtFbGVtZW50fQogICAgICAqLwotICAgIGdldCBtYWluRWxlbWVudCgpCisgICAgZ2V0IHNpZGVi
YXJFbGVtZW50KCkKICAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9oYXNMZWZ0U2lkZWJhcigp
ID8gdGhpcy5fcmlnaHRFbGVtZW50IDogdGhpcy5fbGVmdEVsZW1lbnQ7CisgICAgICAgIHJldHVy
biB0aGlzLmlzU2lkZWJhclNlY29uZCgpID8gdGhpcy5zZWNvbmRFbGVtZW50KCkgOiB0aGlzLmZp
cnN0RWxlbWVudCgpOwogICAgIH0sCiAKICAgICAvKioKLSAgICAgKiBAcmV0dXJuIHtFbGVtZW50
fQorICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzdHlsZUNsYXNzCiAgICAgICovCi0gICAgZ2V0IHNp
ZGViYXJFbGVtZW50KCkKKyAgICBfc2V0U2lkZWJhckVsZW1lbnRTdHlsZTogZnVuY3Rpb24oc3R5
bGVDbGFzcykKICAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9oYXNMZWZ0U2lkZWJhcigpID8g
dGhpcy5fbGVmdEVsZW1lbnQgOiB0aGlzLl9yaWdodEVsZW1lbnQ7CisgICAgICB0aGlzLnNpZGVi
YXJFbGVtZW50LnJlbW92ZVN0eWxlQ2xhc3MoInNwbGl0LXZpZXctc2lkZWJhci1sZWZ0Iik7Cisg
ICAgICB0aGlzLnNpZGViYXJFbGVtZW50LnJlbW92ZVN0eWxlQ2xhc3MoInNwbGl0LXZpZXctc2lk
ZWJhci1yaWdodCIpOworICAgICAgdGhpcy5zaWRlYmFyRWxlbWVudC5yZW1vdmVTdHlsZUNsYXNz
KCJzcGxpdC12aWV3LXNpZGViYXItdG9wIik7CisgICAgICB0aGlzLnNpZGViYXJFbGVtZW50LnJl
bW92ZVN0eWxlQ2xhc3MoInNwbGl0LXZpZXctc2lkZWJhci1ib3R0b20iKTsKKworICAgICAgdGhp
cy5zaWRlYmFyRWxlbWVudC5hZGRTdHlsZUNsYXNzKHN0eWxlQ2xhc3MpOwogICAgIH0sCiAKICAg
ICAvKioKICAgICAgKiBAcGFyYW0ge3N0cmluZ30gc2lkZWJhclBvc2l0aW9uCiAgICAgICovCi0g
ICAgX2lubmVyU2V0U2lkZWJhclBvc2l0aW9uOiBmdW5jdGlvbihzaWRlYmFyUG9zaXRpb24pCisg
ICAgc2V0U2lkZWJhclBvc2l0aW9uOiBmdW5jdGlvbihzaWRlYmFyUG9zaXRpb24pCiAgICAgewot
ICAgICAgICB0aGlzLl9zaWRlYmFyUG9zaXRpb24gPSBzaWRlYmFyUG9zaXRpb247CisgICAgICAg
IGlmICh0aGlzLnNpZGViYXJQb3NpdGlvbl8gPT09IHNpZGViYXJQb3NpdGlvbikKKyAgICAgICAg
ICAgIHJldHVybjsKIAotICAgICAgICBpZiAodGhpcy5faGFzTGVmdFNpZGViYXIoKSkgewotICAg
ICAgICAgICAgdGhpcy5fbGVmdEVsZW1lbnQuYWRkU3R5bGVDbGFzcygic3BsaXQtdmlldy1zaWRl
YmFyLWxlZnQiKTsKLSAgICAgICAgICAgIHRoaXMuX3JpZ2h0RWxlbWVudC5yZW1vdmVTdHlsZUNs
YXNzKCJzcGxpdC12aWV3LXNpZGViYXItcmlnaHQiKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgIHRoaXMuX3JpZ2h0RWxlbWVudC5hZGRTdHlsZUNsYXNzKCJzcGxpdC12aWV3LXNpZGVi
YXItcmlnaHQiKTsKLSAgICAgICAgICAgIHRoaXMuX2xlZnRFbGVtZW50LnJlbW92ZVN0eWxlQ2xh
c3MoInNwbGl0LXZpZXctc2lkZWJhci1sZWZ0Iik7CisgICAgICAgIHRoaXMuX2lubmVyU2V0U2lk
ZWJhclBvc2l0aW9uKHNpZGViYXJQb3NpdGlvbik7CisgICAgfSwKKworICAgIC8qKgorICAgICAq
IEBwYXJhbSB7c3RyaW5nfSBzaWRlYmFyUG9zaXRpb24KKyAgICAgKi8KKyAgICBfaW5uZXJTZXRT
aWRlYmFyUG9zaXRpb246IGZ1bmN0aW9uKHNpZGViYXJQb3NpdGlvbikKKyAgICB7CisgICAgICAg
IHRoaXMuc2lkZWJhclBvc2l0aW9uXyA9IHNpZGViYXJQb3NpdGlvbjsKKworICAgICAgICBzd2l0
Y2ggKHNpZGViYXJQb3NpdGlvbikgeworICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLlNpZGVi
YXJWaWV3LlNpZGViYXJQb3NpdGlvbi5MZWZ0OgorICAgICAgICAgICAgdGhpcy5zZXRTZWNvbmRJ
c1NpZGViYXIoZmFsc2UpOworICAgICAgICAgICAgdGhpcy5fc2V0U2lkZWJhckVsZW1lbnRTdHls
ZSgic3BsaXQtdmlldy1zaWRlYmFyLWxlZnQiKTsKKyAgICAgICAgICAgIHRoaXMuc2V0VmVydGlj
YWwodHJ1ZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICBjYXNlIFdlYkluc3BlY3Rv
ci5TaWRlYmFyVmlldy5TaWRlYmFyUG9zaXRpb24uUmlnaHQ6CisgICAgICAgICAgICB0aGlzLnNl
dFNlY29uZElzU2lkZWJhcih0cnVlKTsKKyAgICAgICAgICAgIHRoaXMuX3NldFNpZGViYXJFbGVt
ZW50U3R5bGUoInNwbGl0LXZpZXctc2lkZWJhci1yaWdodCIpOworICAgICAgICAgICAgdGhpcy5z
ZXRWZXJ0aWNhbCh0cnVlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgIGNhc2UgV2Vi
SW5zcGVjdG9yLlNpZGViYXJWaWV3LlNpZGViYXJQb3NpdGlvbi5Ub3A6CisgICAgICAgICAgICB0
aGlzLnNldFNlY29uZElzU2lkZWJhcihmYWxzZSk7CisgICAgICAgICAgICB0aGlzLl9zZXRTaWRl
YmFyRWxlbWVudFN0eWxlKCJzcGxpdC12aWV3LXNpZGViYXItdG9wIik7CisgICAgICAgICAgICB0
aGlzLnNldFZlcnRpY2FsKGZhbHNlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgIGNh
c2UgV2ViSW5zcGVjdG9yLlNpZGViYXJWaWV3LlNpZGViYXJQb3NpdGlvbi5Cb3R0b206CisgICAg
ICAgICAgICB0aGlzLnNldFNlY29uZElzU2lkZWJhcih0cnVlKTsKKyAgICAgICAgICAgIHRoaXMu
X3NldFNpZGViYXJFbGVtZW50U3R5bGUoInNwbGl0LXZpZXctc2lkZWJhci1ib3R0b20iKTsKKyAg
ICAgICAgICAgIHRoaXMuc2V0VmVydGljYWwoZmFsc2UpOworICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIH0KICAgICB9LAogCkBAIC0xMTIsNiArMTQ1LDE0IEBAIFdlYkluc3BlY3Rvci5TaWRl
YmFyVmlldy5wcm90b3R5cGUgPSB7CiAgICAgfSwKIAogICAgIC8qKgorICAgICAqIEBwYXJhbSB7
bnVtYmVyfSBoZWlnaHQKKyAgICAgKi8KKyAgICBzZXRNaW5pbXVtU2lkZWJhckhlaWdodDogZnVu
Y3Rpb24oaGVpZ2h0KQorICAgIHsKKyAgICAgICAgdGhpcy5fbWluaW11bVNpZGViYXJIZWlnaHQg
PSBoZWlnaHQ7CisgICAgfSwKKworICAgIC8qKgogICAgICAqIEBwYXJhbSB7bnVtYmVyfSB3aWR0
aFBlcmNlbnQKICAgICAgKi8KICAgICBzZXRNaW5pbXVtTWFpbldpZHRoUGVyY2VudDogZnVuY3Rp
b24od2lkdGhQZXJjZW50KQpAQCAtMTIwLDYgKzE2MSwxNCBAQCBXZWJJbnNwZWN0b3IuU2lkZWJh
clZpZXcucHJvdG90eXBlID0gewogICAgIH0sCiAKICAgICAvKioKKyAgICAgKiBAcGFyYW0ge251
bWJlcn0gaGVpZ2h0UGVyY2VudAorICAgICAqLworICAgIHNldE1pbmltdW1NYWluSGVpZ2h0UGVy
Y2VudDogZnVuY3Rpb24oaGVpZ2h0UGVyY2VudCkKKyAgICB7CisgICAgICAgIHRoaXMuX21pbmlt
dW1NYWluSGVpZ2h0UGVyY2VudCA9IGhlaWdodFBlcmNlbnQ7CisgICAgfSwKKworICAgIC8qKgog
ICAgICAqIEBwYXJhbSB7bnVtYmVyfSB3aWR0aAogICAgICAqLwogICAgIHNldFNpZGViYXJXaWR0
aDogZnVuY3Rpb24od2lkdGgpCkBAIC0xNDYsMTYgKzE5NSwxNyBAQCBXZWJJbnNwZWN0b3IuU2lk
ZWJhclZpZXcucHJvdG90eXBlID0gewogICAgICAqLwogICAgIGFwcGx5Q29uc3RyYWludHM6IGZ1
bmN0aW9uKHNpemUpCiAgICAgewotICAgICAgICB2YXIgb2Zmc2V0V2lkdGggPSB0aGlzLmVsZW1l
bnQub2Zmc2V0V2lkdGg7Ci0gICAgICAgIHJldHVybiBvZmZzZXRXaWR0aCA/IE51bWJlci5jb25z
dHJhaW4oc2l6ZSwgdGhpcy5fbWluaW11bVNpZGViYXJXaWR0aCwgb2Zmc2V0V2lkdGggKiAoMTAw
IC0gdGhpcy5fbWluaW11bU1haW5XaWR0aFBlcmNlbnQpIC8gMTAwKSA6IHNpemU7CisgICAgICAg
IHZhciBtaW5TaWRlYmFyU2l6ZSA9IHRoaXMuaXNWZXJ0aWNhbCgpID8gdGhpcy5fbWluaW11bVNp
ZGViYXJXaWR0aCA6IHRoaXMuX21pbmltdW1TaWRlYmFySGVpZ2h0OworICAgICAgICB2YXIgbWlu
TWFpblNpemVQZXJjZW50ID0gdGhpcy5pc1ZlcnRpY2FsKCkgPyB0aGlzLl9taW5pbXVtTWFpbldp
ZHRoUGVyY2VudCA6IHRoaXMuX21pbmltdW1NYWluSGVpZ2h0UGVyY2VudDsKKyAgICAgICAgcmV0
dXJuIE51bWJlci5jb25zdHJhaW4oc2l6ZSwgbWluU2lkZWJhclNpemUsIHRoaXMudG90YWxTaXpl
KCkgKiAoMTAwIC0gbWluTWFpblNpemVQZXJjZW50KSAvIDEwMCk7CiAgICAgfSwKIAogICAgIGhp
ZGVNYWluRWxlbWVudDogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX2hhc0xl
ZnRTaWRlYmFyKCkpCi0gICAgICAgICAgICB0aGlzLnNob3dPbmx5Rmlyc3QoKTsKLSAgICAgICAg
ZWxzZQorICAgICAgICBpZiAodGhpcy5pc1NpZGViYXJTZWNvbmQoKSkKICAgICAgICAgICAgIHRo
aXMuc2hvd09ubHlTZWNvbmQoKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGhpcy5zaG93
T25seUZpcnN0KCk7CiAgICAgfSwKIAogICAgIHNob3dNYWluRWxlbWVudDogZnVuY3Rpb24oKQpA
QCAtMTY1LDEwICsyMTUsMTAgQEAgV2ViSW5zcGVjdG9yLlNpZGViYXJWaWV3LnByb3RvdHlwZSA9
IHsKIAogICAgIGhpZGVTaWRlYmFyRWxlbWVudDogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAg
aWYgKHRoaXMuX2hhc0xlZnRTaWRlYmFyKCkpCi0gICAgICAgICAgICB0aGlzLnNob3dPbmx5U2Vj
b25kKCk7Ci0gICAgICAgIGVsc2UKKyAgICAgICAgaWYgKHRoaXMuaXNTaWRlYmFyU2Vjb25kKCkp
CiAgICAgICAgICAgICB0aGlzLnNob3dPbmx5Rmlyc3QoKTsKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgdGhpcy5zaG93T25seVNlY29uZCgpOwogICAgIH0sCiAKICAgICBzaG93U2lkZWJhckVs
ZW1lbnQ6IGZ1bmN0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvU3BsaXRWaWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9TcGxpdFZpZXcuanMKaW5kZXggZmU4YmFhYzEyNjczYTA1YTE1YmFjYmVlZDIzNjQ5MTk5YjVj
NmY5Yi4uMTc0M2JhZDkxNDExMzQ2NzZlNzJhOTQzYjczZmM0MjJhMDg3M2ZjYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TcGxpdFZpZXcuanMKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TcGxpdFZpZXcuanMKQEAgLTQzLDcg
KzQzLDYgQEAgV2ViSW5zcGVjdG9yLlNwbGl0VmlldyA9IGZ1bmN0aW9uKGlzVmVydGljYWwsIHNp
ZGViYXJTaXplU2V0dGluZ05hbWUsIGRlZmF1bHRTaWQKICAgICB0aGlzLmVsZW1lbnQuY2xhc3NO
YW1lID0gInNwbGl0LXZpZXciOwogCiAgICAgdGhpcy5fZmlyc3RFbGVtZW50ID0gdGhpcy5lbGVt
ZW50LmNyZWF0ZUNoaWxkKCJkaXYiLCAic3BsaXQtdmlldy1jb250ZW50cyIpOwotCiAgICAgdGhp
cy5fc2Vjb25kRWxlbWVudCA9IHRoaXMuZWxlbWVudC5jcmVhdGVDaGlsZCgiZGl2IiwgInNwbGl0
LXZpZXctY29udGVudHMiKTsKIAogICAgIHRoaXMuX3Jlc2l6ZXJFbGVtZW50ID0gdGhpcy5lbGVt
ZW50LmNyZWF0ZUNoaWxkKCJkaXYiLCAic3BsaXQtdmlldy1yZXNpemVyIik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL3NwbGl0Vmlldy5jc3MgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL3NwbGl0Vmlldy5jc3MKaW5kZXggOGMyZDM4
NTNhYjkwNmMwMGRmNWU5Nzc3ZGY2NDA5ZmUxY2IyMDhjNy4uN2IwOGE3ZTA3NmE0MGI0OGZiNmRi
MGU5NzM5MGZjYTRlODJlZGM5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9zcGxpdFZpZXcuY3NzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvc3BsaXRWaWV3LmNzcwpAQCAtNjcsNiArNjcsMjIgQEAKICAgICBib3JkZXItcmln
aHQ6IG5vbmU7CiB9CiAKKy5zcGxpdC12aWV3LXNpZGViYXItdG9wIHsKKyAgICBib3JkZXItYm90
dG9tOiAxcHggc29saWQgcmdiKDY0JSwgNjQlLCA2NCUpOworfQorCisuc3BsaXQtdmlldy1zaWRl
YmFyLXRvcC5tYXhpbWl6ZWQgeworICAgIGJvcmRlci1ib3R0b206IG5vbmU7Cit9CisKKy5zcGxp
dC12aWV3LXNpZGViYXItYm90dG9tIHsKKyAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiKDY0
JSwgNjQlLCA2NCUpOworfQorCisuc3BsaXQtdmlldy1zaWRlYmFyLWJvdHRvbS5tYXhpbWl6ZWQg
eworICAgIGJvcmRlci10b3A6IG5vbmU7Cit9CisKIC5zcGxpdC12aWV3LXJlc2l6ZXIuc3BsaXQt
dmlldy1yZXNpemVyLXZlcnRpY2FsIHsKICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgdG9w
OiAwOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>183780</attachid>
            <date>2013-01-21 07:08:00 -0800</date>
            <delta_ts>2013-01-21 07:34:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107129-20130121190455.patch</filename>
            <type>text/plain</type>
            <size>17814</size>
            <attacher name="Vladislav Kaznacheev">kaznacheev</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwMzE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmM3YTJmYWIwYzUxOTFi
ZDM3NGFkMTE1ODBiNjY1OTk1YzIyNDgxMC4uM2VhNjk5OTE0YzU1MWY1ZTIyNGFlODM2ZTQ2MGM0
YTUxNWIwMGQ4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDEzLTAxLTIxICBWbGFk
aXNsYXYgS2F6bmFjaGVldiAgPGthem5hY2hlZXZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtJ
bnNwZWN0b3JdIExheW91dCBFbGVtZW50cyBwYW5lbCBpbiBhIHNpbmdsZSBjb2x1bW4gd2hlbiBk
b2NrZWQgcmlnaHQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMDcxMjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBJZiB0aGUgSW5zcGVjdG9yIGlzIGRvY2tlZCByaWdodCwgdGhlIHN0eWxlIHBhbmVzIGlu
IHRoZSBFbGVtZW50cyBwYW5lbAorICAgICAgICBhcmUgcHV0IGJlbG93IHRoZSBET00gdHJlZSBw
YW5lLCBub3QgdG8gdGhlIHJpZ2h0LiBUaGlzIGJlaGF2aW9yCisgICAgICAgIGlzIGV4cGVyaW1l
bnRhbCAoaGlkZGVuIGJlaGluZCBhIG5ldyBmbGFnICJlbGVtZW50c1BhbmVsU2luZ2xlQ29sdW1u
IikuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLgorCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250
LWVuZC9Eb2NrQ29udHJvbGxlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Eb2NrQ29udHJv
bGxlci5wcm90b3R5cGUuZG9ja1NpZGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRvY2tDb250
cm9sbGVyLnByb3RvdHlwZS5fdXBkYXRlVUkpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRvY2tD
b250cm9sbGVyLnByb3RvdHlwZS5fdG9nZ2xlRG9ja1N0YXRlKToKKyAgICAgICAgKiBpbnNwZWN0
b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxl
bWVudHNQYW5lbC5wcm90b3R5cGUub25SZXNpemUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVs
ZW1lbnRzUGFuZWwucHJvdG90eXBlLl9vbkRvY2tTdGF0ZUNoYW5nZWQpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwucHJvdG90eXBlLl9zaWRlYmFyUG9zaXRpb24pOgorICAg
ICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuUGFuZWwucHJvdG90eXBlLmNyZWF0ZVNpZGViYXJWaWV3KToKKyAgICAgICAgKiBpbnNwZWN0
b3IvZnJvbnQtZW5kL1NldHRpbmdzLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkV4cGVyaW1l
bnRzU2V0dGluZ3MpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU2lkZWJhclZpZXcu
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2lkZWJhclZpZXcpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlNpZGViYXJWaWV3LnByb3RvdHlwZS5nZXQgbWFpbkVsZW1lbnQpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlNpZGViYXJWaWV3LnByb3RvdHlwZS5nZXQgc2lkZWJhckVsZW1lbnQpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlNpZGViYXJWaWV3LnByb3RvdHlwZS5fc2V0U2lkZWJhckVs
ZW1lbnRTdHlsZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2lkZWJhclZpZXcucHJvdG90eXBl
LnNldFNpZGViYXJQb3NpdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2lkZWJhclZpZXcu
cHJvdG90eXBlLl9pbm5lclNldFNpZGViYXJQb3NpdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuU2lkZWJhclZpZXcucHJvdG90eXBlLnNldE1pbmltdW1TaWRlYmFySGVpZ2h0KToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5TaWRlYmFyVmlldy5wcm90b3R5cGUuc2V0TWluaW11bU1haW5IZWln
aHRQZXJjZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TaWRlYmFyVmlldy5wcm90b3R5cGUu
YXBwbHlDb25zdHJhaW50cyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2lkZWJhclZpZXcucHJv
dG90eXBlLmhpZGVNYWluRWxlbWVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2lkZWJhclZp
ZXcucHJvdG90eXBlLmhpZGVTaWRlYmFyRWxlbWVudCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9TcGxpdFZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3BsaXRWaWV3KToK
KyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL3NwbGl0Vmlldy5jc3M6CisgICAgICAgICgu
c3BsaXQtdmlldy1zaWRlYmFyLXRvcCk6CisgICAgICAgICguc3BsaXQtdmlldy1zaWRlYmFyLXRv
cC5tYXhpbWl6ZWQpOgorICAgICAgICAoLnNwbGl0LXZpZXctc2lkZWJhci1ib3R0b20pOgorICAg
ICAgICAoLnNwbGl0LXZpZXctc2lkZWJhci1ib3R0b20ubWF4aW1pemVkKToKKwogMjAxMy0wMS0y
MSAgVGFrYXNoaSBTYWthbW90byAgPHRhc2FrQGdvb2dsZS5jb20+CiAKICAgICAgICAgW1JlZmFj
dG9yaW5nXSByZW5hbWUgU3R5bGVSdWxlQmxvY2sgLT4gU3R5bGVSdWxlR3JvdXAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRG9ja0NvbnRyb2xsZXIuanMg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RvY2tDb250cm9sbGVyLmpzCmlu
ZGV4IDA3ZGVjMmRhNWIzNDlmODZmNTU2YWE3YTc3NWUzM2M5NGM4NzJhNzkuLjIzYTEwMGY0MTYx
ODFjOGNlYzJhNGQ2YmQ3YmViMTIxY2JhN2YzMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvRG9ja0NvbnRyb2xsZXIuanMKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Eb2NrQ29udHJvbGxlci5qcwpAQCAtMzAsNiArMzAsNyBA
QAogCiAvKioKICAqIEBjb25zdHJ1Y3RvcgorICogQGV4dGVuZHMge1dlYkluc3BlY3Rvci5PYmpl
Y3R9CiAgKi8KIFdlYkluc3BlY3Rvci5Eb2NrQ29udHJvbGxlciA9IGZ1bmN0aW9uKCkKIHsKQEAg
LTUwLDYgKzUxLDEwIEBAIFdlYkluc3BlY3Rvci5Eb2NrQ29udHJvbGxlci5TdGF0ZSA9IHsKICAg
ICBVbmRvY2tlZDogInVuZG9ja2VkIgogfQogCitXZWJJbnNwZWN0b3IuRG9ja0NvbnRyb2xsZXIu
RXZlbnRUeXBlcyA9IHsKKyAgICBTdGF0ZUNoYW5nZWQ6ICJTdGF0ZUNoYW5nZWQiCit9CisKIFdl
Ykluc3BlY3Rvci5Eb2NrQ29udHJvbGxlci5wcm90b3R5cGUgPSB7CiAgICAgLyoqCiAgICAgICog
QHJldHVybiB7RWxlbWVudH0KQEAgLTYwLDYgKzY1LDE0IEBAIFdlYkluc3BlY3Rvci5Eb2NrQ29u
dHJvbGxlci5wcm90b3R5cGUgPSB7CiAgICAgfSwKIAogICAgIC8qKgorICAgICAqIEByZXR1cm4g
e3N0cmluZ30KKyAgICAgKi8KKyAgICBkb2NrU2lkZTogZnVuY3Rpb24oKQorICAgIHsKKyAgICAg
IHJldHVybiB0aGlzLl9kb2NrU2lkZTsKKyAgICB9LAorCisgICAgLyoqCiAgICAgICogQHBhcmFt
IHtzdHJpbmd9IGRvY2tTaWRlCiAgICAgICovCiAgICAgc2V0RG9ja1NpZGU6IGZ1bmN0aW9uKGRv
Y2tTaWRlKQpAQCAtMTM1LDYgKzE0OCw4IEBAIFdlYkluc3BlY3Rvci5Eb2NrQ29udHJvbGxlci5w
cm90b3R5cGUgPSB7CiAgICAgICAgIH0KICAgICAgICAgdGhpcy5fZGVjb3JhdGVCdXR0b25Gb3JU
YXJnZXRTdGF0ZSh0aGlzLl9kb2NrVG9nZ2xlQnV0dG9uLCBsYXN0U3RhdGUpOwogICAgICAgICB0
aGlzLl9kZWNvcmF0ZUJ1dHRvbkZvclRhcmdldFN0YXRlKHRoaXMuX2RvY2tUb2dnbGVCdXR0b25P
cHRpb24sIHNpZGVzWzBdKTsKKworICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVy
cyhXZWJJbnNwZWN0b3IuRG9ja0NvbnRyb2xsZXIuRXZlbnRUeXBlcy5TdGF0ZUNoYW5nZWQsIHRo
aXMuX2RvY2tTaWRlKTsKICAgICB9LAogCiAgICAgLyoqCkBAIC0xNzYsNSArMTkxLDEyIEBAIFdl
Ykluc3BlY3Rvci5Eb2NrQ29udHJvbGxlci5wcm90b3R5cGUgPSB7CiAgICAgICAgIGNhc2UgInVu
ZG9jayI6IGFjdGlvbiA9ICJ1bmRvY2tlZCI7IGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIElu
c3BlY3RvckZyb250ZW5kSG9zdC5yZXF1ZXN0U2V0RG9ja1NpZGUoYWN0aW9uKTsKLSAgICB9Cisg
ICAgfSwKKworICAgIF9fcHJvdG9fXzogV2ViSW5zcGVjdG9yLk9iamVjdC5wcm90b3R5cGUKIH0K
KworLyoqCisgKiBAdHlwZSB7P1dlYkluc3BlY3Rvci5Eb2NrQ29udHJvbGxlcn0KKyAqLworV2Vi
SW5zcGVjdG9yLmRvY2tDb250cm9sbGVyID0gbnVsbDsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1l
bnRzUGFuZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRz
UGFuZWwuanMKaW5kZXggZTU5N2M1YzcyZDEwODU3ZDk0YmIxZmYxZmU5YjE3MjU1MGE1Mjc5ZS4u
NzNiYTU2NDY4OTI2NjYxYmUzZDMwMmNjZDFmOTI0YzVkOTg2MTI1YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNQYW5lbC5qcwpAQCAtNDcs
MTEgKzQ3LDE3IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1BhbmVsID0gZnVuY3Rpb24oKQogICAg
IHRoaXMucmVnaXN0ZXJSZXF1aXJlZENTUygidGV4dFByb21wdC5jc3MiKTsKICAgICB0aGlzLnNl
dEhpZGVPbkRldGFjaCgpOwogCisgICAgV2ViSW5zcGVjdG9yLmRvY2tDb250cm9sbGVyLmFkZEV2
ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRvY2tDb250cm9sbGVyLkV2ZW50VHlwZXMuU3RhdGVD
aGFuZ2VkLCB0aGlzLl9vbkRvY2tTdGF0ZUNoYW5nZWQuYmluZCh0aGlzKSk7CisKICAgICBjb25z
dCBpbml0aWFsU2lkZWJhcldpZHRoID0gMzI1OwogICAgIGNvbnN0IG1pbmltdW1Db250ZW50V2lk
dGhQZXJjZW50ID0gMzQ7Ci0gICAgdGhpcy5jcmVhdGVTaWRlYmFyVmlldyh0aGlzLmVsZW1lbnQs
IFdlYkluc3BlY3Rvci5TaWRlYmFyVmlldy5TaWRlYmFyUG9zaXRpb24uUmlnaHQsIGluaXRpYWxT
aWRlYmFyV2lkdGgpOworICAgIGNvbnN0IGluaXRpYWxTaWRlYmFySGVpZ2h0ID0gMzI1OworICAg
IGNvbnN0IG1pbmltdW1Db250ZW50SGVpZ2h0UGVyY2VudCA9IDM0OworICAgIHRoaXMuY3JlYXRl
U2lkZWJhclZpZXcodGhpcy5lbGVtZW50LCB0aGlzLl9zaWRlYmFyUG9zaXRpb24oKSwgaW5pdGlh
bFNpZGViYXJXaWR0aCwgaW5pdGlhbFNpZGViYXJIZWlnaHQpOwogICAgIHRoaXMuc3BsaXRWaWV3
LnNldE1pbmltdW1TaWRlYmFyV2lkdGgoUHJlZmVyZW5jZXMubWluRWxlbWVudHNTaWRlYmFyV2lk
dGgpOwogICAgIHRoaXMuc3BsaXRWaWV3LnNldE1pbmltdW1NYWluV2lkdGhQZXJjZW50KG1pbmlt
dW1Db250ZW50V2lkdGhQZXJjZW50KTsKKyAgICB0aGlzLnNwbGl0Vmlldy5zZXRNaW5pbXVtU2lk
ZWJhckhlaWdodChQcmVmZXJlbmNlcy5taW5FbGVtZW50c1NpZGViYXJIZWlnaHQpOworICAgIHRo
aXMuc3BsaXRWaWV3LnNldE1pbmltdW1NYWluSGVpZ2h0UGVyY2VudChtaW5pbXVtQ29udGVudEhl
aWdodFBlcmNlbnQpOwogCiAgICAgdGhpcy5jb250ZW50RWxlbWVudCA9IHRoaXMuc3BsaXRWaWV3
Lm1haW5FbGVtZW50OwogICAgIHRoaXMuY29udGVudEVsZW1lbnQuaWQgPSAiZWxlbWVudHMtY29u
dGVudCI7CkBAIC0xNjYsNiArMTcyLDI2IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1BhbmVsLnBy
b3RvdHlwZSA9IHsKICAgICB7CiAgICAgICAgIHRoaXMudHJlZU91dGxpbmUudXBkYXRlU2VsZWN0
aW9uKCk7CiAgICAgICAgIHRoaXMudXBkYXRlQnJlYWRjcnVtYlNpemVzKCk7CisgICAgICAgIGlm
IChXZWJJbnNwZWN0b3IuZG9ja0NvbnRyb2xsZXIuZG9ja1NpZGUoKSAhPT0gV2ViSW5zcGVjdG9y
LkRvY2tDb250cm9sbGVyLlN0YXRlLlVuZG9ja2VkKQorICAgICAgICAgICAgdGhpcy5zcGxpdFZp
ZXcuc2V0U2lkZWJhclBvc2l0aW9uKHRoaXMuX3NpZGViYXJQb3NpdGlvbigpKTsKKyAgICB9LAor
CisgICAgX29uRG9ja1N0YXRlQ2hhbmdlZDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgaWYg
KFdlYkluc3BlY3Rvci5kb2NrQ29udHJvbGxlci5kb2NrU2lkZSgpID09PSBXZWJJbnNwZWN0b3Iu
RG9ja0NvbnRyb2xsZXIuU3RhdGUuVW5kb2NrZWQpCisgICAgICAgICAgICB0aGlzLnNwbGl0Vmll
dy5zZXRTaWRlYmFyUG9zaXRpb24odGhpcy5fc2lkZWJhclBvc2l0aW9uKCkpOworICAgIH0sCisK
KyAgICAvKioKKyAgICAgKiBAcmV0dXJuIHtzdHJpbmd9CisgICAgICovCisgICAgX3NpZGViYXJQ
b3NpdGlvbjogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgaWYgKFdlYkluc3BlY3Rvci5leHBl
cmltZW50c1NldHRpbmdzLmVsZW1lbnRzUGFuZWxTaW5nbGVDb2x1bW4uaXNFbmFibGVkKCkgJiYK
KyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kb2NrQ29udHJvbGxlci5kb2NrU2lkZSgpID09PSBX
ZWJJbnNwZWN0b3IuRG9ja0NvbnRyb2xsZXIuU3RhdGUuRG9ja2VkVG9SaWdodCkKKyAgICAgICAg
ICAgIHJldHVybiBXZWJJbnNwZWN0b3IuU2lkZWJhclZpZXcuU2lkZWJhclBvc2l0aW9uLkJvdHRv
bTsKKworICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLlNpZGViYXJWaWV3LlNpZGViYXJQb3Np
dGlvbi5SaWdodDsKICAgICB9LAogCiAgICAgLyoqCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1BhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9QYW5lbC5qcwppbmRleCA1MTg5YjdlNDJmNWZhNDliZmIzNGQwNDI1MDk2NDVl
YWY4YTdkZTY3Li5hZTNiMzhkYzQxMGRmMGRjMjg2MTUwMzI0MDM5MWY2OGI0Y2E4ODBjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1BhbmVsLmpzCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUGFuZWwuanMKQEAgLTE1Miw4ICsx
NTIsOSBAQCBXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBlID0gewogICAgICAqIEBwYXJhbSB7
RWxlbWVudD19IHBhcmVudEVsZW1lbnQKICAgICAgKiBAcGFyYW0ge3N0cmluZz19IHBvc2l0aW9u
CiAgICAgICogQHBhcmFtIHtudW1iZXI9fSBkZWZhdWx0V2lkdGgKKyAgICAgKiBAcGFyYW0ge251
bWJlcj19IGRlZmF1bHRIZWlnaHQKICAgICAgKi8KLSAgICBjcmVhdGVTaWRlYmFyVmlldzogZnVu
Y3Rpb24ocGFyZW50RWxlbWVudCwgcG9zaXRpb24sIGRlZmF1bHRXaWR0aCkKKyAgICBjcmVhdGVT
aWRlYmFyVmlldzogZnVuY3Rpb24ocGFyZW50RWxlbWVudCwgcG9zaXRpb24sIGRlZmF1bHRXaWR0
aCwgZGVmYXVsdEhlaWdodCkKICAgICB7CiAgICAgICAgIGlmICh0aGlzLnNwbGl0VmlldykKICAg
ICAgICAgICAgIHJldHVybjsKQEAgLTE2MSw3ICsxNjIsNyBAQCBXZWJJbnNwZWN0b3IuUGFuZWwu
cHJvdG90eXBlID0gewogICAgICAgICBpZiAoIXBhcmVudEVsZW1lbnQpCiAgICAgICAgICAgICBw
YXJlbnRFbGVtZW50ID0gdGhpcy5lbGVtZW50OwogCi0gICAgICAgIHRoaXMuc3BsaXRWaWV3ID0g
bmV3IFdlYkluc3BlY3Rvci5TaWRlYmFyVmlldyhwb3NpdGlvbiB8fCBXZWJJbnNwZWN0b3IuU2lk
ZWJhclZpZXcuU2lkZWJhclBvc2l0aW9uLkxlZnQsIHRoaXMuX3NpZGViYXJXaWR0aFNldHRpbmdO
YW1lKCksIGRlZmF1bHRXaWR0aCk7CisgICAgICAgIHRoaXMuc3BsaXRWaWV3ID0gbmV3IFdlYklu
c3BlY3Rvci5TaWRlYmFyVmlldyhwb3NpdGlvbiB8fCBXZWJJbnNwZWN0b3IuU2lkZWJhclZpZXcu
U2lkZWJhclBvc2l0aW9uLkxlZnQsIHRoaXMuX3NpZGViYXJXaWR0aFNldHRpbmdOYW1lKCksIGRl
ZmF1bHRXaWR0aCwgZGVmYXVsdEhlaWdodCk7CiAgICAgICAgIHRoaXMuc3BsaXRWaWV3LnNob3co
cGFyZW50RWxlbWVudCk7CiAgICAgICAgIHRoaXMuc3BsaXRWaWV3LmFkZEV2ZW50TGlzdGVuZXIo
V2ViSW5zcGVjdG9yLlNpZGViYXJWaWV3LkV2ZW50VHlwZXMuUmVzaXplZCwgdGhpcy5zaWRlYmFy
UmVzaXplZC5iaW5kKHRoaXMpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9TZXR0aW5ncy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvU2V0dGluZ3MuanMKaW5kZXggYjllODY0YmU3NDViYjczNzA5ZDY2MjA5ZjZmMTAxZDdj
MWE5ODM0Yy4uYjhiNjgwN2ZlMTRjZTc1NDU5Mzg2YmI2Njc1OTNlYWJhNGYyYjU4MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5ncy5qcworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzLmpzCkBAIC0zMyw3
ICszMyw5IEBAIHZhciBQcmVmZXJlbmNlcyA9IHsKICAgICBtYXhJbmxpbmVUZXh0Q2hpbGRMZW5n
dGg6IDgwLAogICAgIG1pbkNvbnNvbGVIZWlnaHQ6IDc1LAogICAgIG1pblNpZGViYXJXaWR0aDog
MTAwLAorICAgIG1pblNpZGViYXJIZWlnaHQ6IDc1LAogICAgIG1pbkVsZW1lbnRzU2lkZWJhcldp
ZHRoOiAyMDAsCisgICAgbWluRWxlbWVudHNTaWRlYmFySGVpZ2h0OiAyMDAsCiAgICAgbWluU2Ny
aXB0c1NpZGViYXJXaWR0aDogMjAwLAogICAgIHN0eWxlUnVsZXNFeHBhbmRlZFN0YXRlOiB7fSwK
ICAgICBzaG93TWlzc2luZ0xvY2FsaXplZFN0cmluZ3M6IGZhbHNlLApAQCAtMjEwLDYgKzIxMiw3
IEBAIFdlYkluc3BlY3Rvci5FeHBlcmltZW50c1NldHRpbmdzID0gZnVuY3Rpb24oKQogICAgIHRo
aXMuY3NzUmVnaW9ucyA9IHRoaXMuX2NyZWF0ZUV4cGVyaW1lbnQoImNzc1JlZ2lvbnMiLCAiQ1NT
IFJlZ2lvbnMgU3VwcG9ydCIpOwogICAgIHRoaXMuc2hvd092ZXJyaWRlc0luRHJhd2VyID0gdGhp
cy5fY3JlYXRlRXhwZXJpbWVudCgic2hvd092ZXJyaWRlc0luRHJhd2VyIiwgIlNob3cgT3ZlcnJp
ZGVzIGluIGRyYXdlciIpOwogICAgIHRoaXMuZmlsZVN5c3RlbVByb2plY3QgPSB0aGlzLl9jcmVh
dGVFeHBlcmltZW50KCJmaWxlU3lzdGVtUHJvamVjdCIsICJGaWxlIHN5c3RlbSBmb2xkZXJzIGlu
IFNvdXJjZXMgUGFuZWwiKTsKKyAgICB0aGlzLmVsZW1lbnRzUGFuZWxTaW5nbGVDb2x1bW4gPSB0
aGlzLl9jcmVhdGVFeHBlcmltZW50KCJlbGVtZW50c1BhbmVsU2luZ2xlQ29sdW1uIiwgIlNpbmds
ZS1jb2x1bW4gZWxlbWVudHMgcGFuZWwgbGF5b3V0IHdoZW4gZG9ja2VkIHRvIHJpZ2h0Iik7CiAK
ICAgICB0aGlzLl9jbGVhblVwU2V0dGluZygpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TaWRlYmFyVmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvU2lkZWJhclZpZXcuanMKaW5kZXggNWM1OWViY2QzNDNkMjUyMjA2
MmNjY2Y4NzZkOTcwN2M2Mzc3YzI2NC4uN2RmYWZhNjZhZmZkNGNkZTY0ZjEzZjJiZDMyMjIzNGJh
ZTQ5MWZiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9T
aWRlYmFyVmlldy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Np
ZGViYXJWaWV3LmpzCkBAIC0zMiwxMCArMzIsMTEgQEAKICAqIEBwYXJhbSB7c3RyaW5nPX0gc2lk
ZWJhclBvc2l0aW9uCiAgKiBAcGFyYW0ge3N0cmluZz19IHNpZGViYXJXaWR0aFNldHRpbmdOYW1l
CiAgKiBAcGFyYW0ge251bWJlcj19IGRlZmF1bHRTaWRlYmFyV2lkdGgKKyAqIEBwYXJhbSB7bnVt
YmVyPX0gZGVmYXVsdFNpZGViYXJIZWlnaHQKICAqLwotV2ViSW5zcGVjdG9yLlNpZGViYXJWaWV3
ID0gZnVuY3Rpb24oc2lkZWJhclBvc2l0aW9uLCBzaWRlYmFyV2lkdGhTZXR0aW5nTmFtZSwgZGVm
YXVsdFNpZGViYXJXaWR0aCkKK1dlYkluc3BlY3Rvci5TaWRlYmFyVmlldyA9IGZ1bmN0aW9uKHNp
ZGViYXJQb3NpdGlvbiwgc2lkZWJhcldpZHRoU2V0dGluZ05hbWUsIGRlZmF1bHRTaWRlYmFyV2lk
dGgsIGRlZmF1bHRTaWRlYmFySGVpZ2h0KQogewotICAgIFdlYkluc3BlY3Rvci5TcGxpdFZpZXcu
Y2FsbCh0aGlzLCB0cnVlLCBzaWRlYmFyV2lkdGhTZXR0aW5nTmFtZSwgZGVmYXVsdFNpZGViYXJX
aWR0aCB8fCAyMDApOworICAgIFdlYkluc3BlY3Rvci5TcGxpdFZpZXcuY2FsbCh0aGlzLCB0cnVl
LCBzaWRlYmFyV2lkdGhTZXR0aW5nTmFtZSwgZGVmYXVsdFNpZGViYXJXaWR0aCwgZGVmYXVsdFNp
ZGViYXJIZWlnaHQpOwogCiAgICAgdGhpcy5fbGVmdEVsZW1lbnQgPSB0aGlzLmZpcnN0RWxlbWVu
dCgpOwogICAgIHRoaXMuX3JpZ2h0RWxlbWVudCA9IHRoaXMuc2Vjb25kRWxlbWVudCgpOwpAQCAt
NDMsMTEgKzQ0LDEwIEBAIFdlYkluc3BlY3Rvci5TaWRlYmFyVmlldyA9IGZ1bmN0aW9uKHNpZGVi
YXJQb3NpdGlvbiwgc2lkZWJhcldpZHRoU2V0dGluZ05hbWUsIGRlCiAgICAgdGhpcy5fbWluaW11
bVNpZGViYXJXaWR0aCA9IFByZWZlcmVuY2VzLm1pblNpZGViYXJXaWR0aDsKICAgICB0aGlzLl9t
aW5pbXVtTWFpbldpZHRoUGVyY2VudCA9IDUwOwogCi0gICAgdGhpcy5fbWFpbkVsZW1lbnRIaWRk
ZW4gPSBmYWxzZTsKLSAgICB0aGlzLl9zaWRlYmFyRWxlbWVudEhpZGRlbiA9IGZhbHNlOworICAg
IHRoaXMuX21pbmltdW1TaWRlYmFySGVpZ2h0ID0gUHJlZmVyZW5jZXMubWluU2lkZWJhckhlaWdo
dDsKKyAgICB0aGlzLl9taW5pbXVtTWFpbkhlaWdodFBlcmNlbnQgPSA1MDsKIAogICAgIHRoaXMu
X2lubmVyU2V0U2lkZWJhclBvc2l0aW9uKHNpZGViYXJQb3NpdGlvbiB8fCBXZWJJbnNwZWN0b3Iu
U2lkZWJhclZpZXcuU2lkZWJhclBvc2l0aW9uLkxlZnQpOwotICAgIHRoaXMuc2V0U2Vjb25kSXNT
aWRlYmFyKHNpZGViYXJQb3NpdGlvbiAhPT0gV2ViSW5zcGVjdG9yLlNpZGViYXJWaWV3LlNpZGVi
YXJQb3NpdGlvbi5MZWZ0KTsKIH0KIAogV2ViSW5zcGVjdG9yLlNpZGViYXJWaWV3LkV2ZW50VHlw
ZXMgPSB7CkBAIC01OSw0NyArNTksODAgQEAgV2ViSW5zcGVjdG9yLlNpZGViYXJWaWV3LkV2ZW50
VHlwZXMgPSB7CiAgKi8KIFdlYkluc3BlY3Rvci5TaWRlYmFyVmlldy5TaWRlYmFyUG9zaXRpb24g
PSB7CiAgICAgTGVmdDogIkxlZnQiLAotICAgIFJpZ2h0OiAiUmlnaHQiCisgICAgUmlnaHQ6ICJS
aWdodCIsCisgICAgVG9wOiAiVG9wIiwKKyAgICBCb3R0b206ICJCb3R0b20iCiB9CiAKIFdlYklu
c3BlY3Rvci5TaWRlYmFyVmlldy5wcm90b3R5cGUgPSB7CiAgICAgLyoqCi0gICAgICogQHJldHVy
biB7Ym9vbGVhbn0KKyAgICAgKiBAcmV0dXJuIHtFbGVtZW50fQogICAgICAqLwotICAgIF9oYXNM
ZWZ0U2lkZWJhcjogZnVuY3Rpb24oKQorICAgIGdldCBtYWluRWxlbWVudCgpCiAgICAgewotICAg
ICAgICByZXR1cm4gdGhpcy5fc2lkZWJhclBvc2l0aW9uID09PSBXZWJJbnNwZWN0b3IuU2lkZWJh
clZpZXcuU2lkZWJhclBvc2l0aW9uLkxlZnQ7CisgICAgICAgIHJldHVybiB0aGlzLmlzU2lkZWJh
clNlY29uZCgpID8gdGhpcy5maXJzdEVsZW1lbnQoKSA6IHRoaXMuc2Vjb25kRWxlbWVudCgpOwog
ICAgIH0sCiAKICAgICAvKioKICAgICAgKiBAcmV0dXJuIHtFbGVtZW50fQogICAgICAqLwotICAg
IGdldCBtYWluRWxlbWVudCgpCisgICAgZ2V0IHNpZGViYXJFbGVtZW50KCkKICAgICB7Ci0gICAg
ICAgIHJldHVybiB0aGlzLl9oYXNMZWZ0U2lkZWJhcigpID8gdGhpcy5fcmlnaHRFbGVtZW50IDog
dGhpcy5fbGVmdEVsZW1lbnQ7CisgICAgICAgIHJldHVybiB0aGlzLmlzU2lkZWJhclNlY29uZCgp
ID8gdGhpcy5zZWNvbmRFbGVtZW50KCkgOiB0aGlzLmZpcnN0RWxlbWVudCgpOwogICAgIH0sCiAK
ICAgICAvKioKLSAgICAgKiBAcmV0dXJuIHtFbGVtZW50fQorICAgICAqIEBwYXJhbSB7c3RyaW5n
fSBzdHlsZUNsYXNzCiAgICAgICovCi0gICAgZ2V0IHNpZGViYXJFbGVtZW50KCkKKyAgICBfc2V0
U2lkZWJhckVsZW1lbnRTdHlsZTogZnVuY3Rpb24oc3R5bGVDbGFzcykKICAgICB7Ci0gICAgICAg
IHJldHVybiB0aGlzLl9oYXNMZWZ0U2lkZWJhcigpID8gdGhpcy5fbGVmdEVsZW1lbnQgOiB0aGlz
Ll9yaWdodEVsZW1lbnQ7CisgICAgICB0aGlzLnNpZGViYXJFbGVtZW50LnJlbW92ZVN0eWxlQ2xh
c3MoInNwbGl0LXZpZXctc2lkZWJhci1sZWZ0Iik7CisgICAgICB0aGlzLnNpZGViYXJFbGVtZW50
LnJlbW92ZVN0eWxlQ2xhc3MoInNwbGl0LXZpZXctc2lkZWJhci1yaWdodCIpOworICAgICAgdGhp
cy5zaWRlYmFyRWxlbWVudC5yZW1vdmVTdHlsZUNsYXNzKCJzcGxpdC12aWV3LXNpZGViYXItdG9w
Iik7CisgICAgICB0aGlzLnNpZGViYXJFbGVtZW50LnJlbW92ZVN0eWxlQ2xhc3MoInNwbGl0LXZp
ZXctc2lkZWJhci1ib3R0b20iKTsKKworICAgICAgdGhpcy5zaWRlYmFyRWxlbWVudC5hZGRTdHls
ZUNsYXNzKHN0eWxlQ2xhc3MpOwogICAgIH0sCiAKICAgICAvKioKICAgICAgKiBAcGFyYW0ge3N0
cmluZ30gc2lkZWJhclBvc2l0aW9uCiAgICAgICovCi0gICAgX2lubmVyU2V0U2lkZWJhclBvc2l0
aW9uOiBmdW5jdGlvbihzaWRlYmFyUG9zaXRpb24pCisgICAgc2V0U2lkZWJhclBvc2l0aW9uOiBm
dW5jdGlvbihzaWRlYmFyUG9zaXRpb24pCiAgICAgewotICAgICAgICB0aGlzLl9zaWRlYmFyUG9z
aXRpb24gPSBzaWRlYmFyUG9zaXRpb247CisgICAgICAgIGlmICh0aGlzLnNpZGViYXJQb3NpdGlv
bl8gPT09IHNpZGViYXJQb3NpdGlvbikKKyAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBp
ZiAodGhpcy5faGFzTGVmdFNpZGViYXIoKSkgewotICAgICAgICAgICAgdGhpcy5fbGVmdEVsZW1l
bnQuYWRkU3R5bGVDbGFzcygic3BsaXQtdmlldy1zaWRlYmFyLWxlZnQiKTsKLSAgICAgICAgICAg
IHRoaXMuX3JpZ2h0RWxlbWVudC5yZW1vdmVTdHlsZUNsYXNzKCJzcGxpdC12aWV3LXNpZGViYXIt
cmlnaHQiKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHRoaXMuX3JpZ2h0RWxlbWVu
dC5hZGRTdHlsZUNsYXNzKCJzcGxpdC12aWV3LXNpZGViYXItcmlnaHQiKTsKLSAgICAgICAgICAg
IHRoaXMuX2xlZnRFbGVtZW50LnJlbW92ZVN0eWxlQ2xhc3MoInNwbGl0LXZpZXctc2lkZWJhci1s
ZWZ0Iik7CisgICAgICAgIHRoaXMuX2lubmVyU2V0U2lkZWJhclBvc2l0aW9uKHNpZGViYXJQb3Np
dGlvbik7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzaWRlYmFy
UG9zaXRpb24KKyAgICAgKi8KKyAgICBfaW5uZXJTZXRTaWRlYmFyUG9zaXRpb246IGZ1bmN0aW9u
KHNpZGViYXJQb3NpdGlvbikKKyAgICB7CisgICAgICAgIHRoaXMuc2lkZWJhclBvc2l0aW9uXyA9
IHNpZGViYXJQb3NpdGlvbjsKKworICAgICAgICBzd2l0Y2ggKHNpZGViYXJQb3NpdGlvbikgewor
ICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5TaWRlYmFyVmlldy5TaWRlYmFyUG9zaXRpb24uTGVm
dDoKKyAgICAgICAgICAgIHRoaXMuc2V0U2Vjb25kSXNTaWRlYmFyKGZhbHNlKTsKKyAgICAgICAg
ICAgIHRoaXMuX3NldFNpZGViYXJFbGVtZW50U3R5bGUoInNwbGl0LXZpZXctc2lkZWJhci1sZWZ0
Iik7CisgICAgICAgICAgICB0aGlzLnNldFZlcnRpY2FsKHRydWUpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLlNpZGViYXJWaWV3LlNpZGViYXJQb3NpdGlv
bi5SaWdodDoKKyAgICAgICAgICAgIHRoaXMuc2V0U2Vjb25kSXNTaWRlYmFyKHRydWUpOworICAg
ICAgICAgICAgdGhpcy5fc2V0U2lkZWJhckVsZW1lbnRTdHlsZSgic3BsaXQtdmlldy1zaWRlYmFy
LXJpZ2h0Iik7CisgICAgICAgICAgICB0aGlzLnNldFZlcnRpY2FsKHRydWUpOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLlNpZGViYXJWaWV3LlNpZGViYXJQ
b3NpdGlvbi5Ub3A6CisgICAgICAgICAgICB0aGlzLnNldFNlY29uZElzU2lkZWJhcihmYWxzZSk7
CisgICAgICAgICAgICB0aGlzLl9zZXRTaWRlYmFyRWxlbWVudFN0eWxlKCJzcGxpdC12aWV3LXNp
ZGViYXItdG9wIik7CisgICAgICAgICAgICB0aGlzLnNldFZlcnRpY2FsKGZhbHNlKTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5TaWRlYmFyVmlldy5TaWRl
YmFyUG9zaXRpb24uQm90dG9tOgorICAgICAgICAgICAgdGhpcy5zZXRTZWNvbmRJc1NpZGViYXIo
dHJ1ZSk7CisgICAgICAgICAgICB0aGlzLl9zZXRTaWRlYmFyRWxlbWVudFN0eWxlKCJzcGxpdC12
aWV3LXNpZGViYXItYm90dG9tIik7CisgICAgICAgICAgICB0aGlzLnNldFZlcnRpY2FsKGZhbHNl
KTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgfSwKIApAQCAtMTEyLDYgKzE0
NSwxNCBAQCBXZWJJbnNwZWN0b3IuU2lkZWJhclZpZXcucHJvdG90eXBlID0gewogICAgIH0sCiAK
ICAgICAvKioKKyAgICAgKiBAcGFyYW0ge251bWJlcn0gaGVpZ2h0CisgICAgICovCisgICAgc2V0
TWluaW11bVNpZGViYXJIZWlnaHQ6IGZ1bmN0aW9uKGhlaWdodCkKKyAgICB7CisgICAgICAgIHRo
aXMuX21pbmltdW1TaWRlYmFySGVpZ2h0ID0gaGVpZ2h0OworICAgIH0sCisKKyAgICAvKioKICAg
ICAgKiBAcGFyYW0ge251bWJlcn0gd2lkdGhQZXJjZW50CiAgICAgICovCiAgICAgc2V0TWluaW11
bU1haW5XaWR0aFBlcmNlbnQ6IGZ1bmN0aW9uKHdpZHRoUGVyY2VudCkKQEAgLTEyMCw2ICsxNjEs
MTQgQEAgV2ViSW5zcGVjdG9yLlNpZGViYXJWaWV3LnByb3RvdHlwZSA9IHsKICAgICB9LAogCiAg
ICAgLyoqCisgICAgICogQHBhcmFtIHtudW1iZXJ9IGhlaWdodFBlcmNlbnQKKyAgICAgKi8KKyAg
ICBzZXRNaW5pbXVtTWFpbkhlaWdodFBlcmNlbnQ6IGZ1bmN0aW9uKGhlaWdodFBlcmNlbnQpCisg
ICAgeworICAgICAgICB0aGlzLl9taW5pbXVtTWFpbkhlaWdodFBlcmNlbnQgPSBoZWlnaHRQZXJj
ZW50OworICAgIH0sCisKKyAgICAvKioKICAgICAgKiBAcGFyYW0ge251bWJlcn0gd2lkdGgKICAg
ICAgKi8KICAgICBzZXRTaWRlYmFyV2lkdGg6IGZ1bmN0aW9uKHdpZHRoKQpAQCAtMTQ2LDE2ICsx
OTUsMTcgQEAgV2ViSW5zcGVjdG9yLlNpZGViYXJWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgKi8K
ICAgICBhcHBseUNvbnN0cmFpbnRzOiBmdW5jdGlvbihzaXplKQogICAgIHsKLSAgICAgICAgdmFy
IG9mZnNldFdpZHRoID0gdGhpcy5lbGVtZW50Lm9mZnNldFdpZHRoOwotICAgICAgICByZXR1cm4g
b2Zmc2V0V2lkdGggPyBOdW1iZXIuY29uc3RyYWluKHNpemUsIHRoaXMuX21pbmltdW1TaWRlYmFy
V2lkdGgsIG9mZnNldFdpZHRoICogKDEwMCAtIHRoaXMuX21pbmltdW1NYWluV2lkdGhQZXJjZW50
KSAvIDEwMCkgOiBzaXplOworICAgICAgICB2YXIgbWluU2lkZWJhclNpemUgPSB0aGlzLmlzVmVy
dGljYWwoKSA/IHRoaXMuX21pbmltdW1TaWRlYmFyV2lkdGggOiB0aGlzLl9taW5pbXVtU2lkZWJh
ckhlaWdodDsKKyAgICAgICAgdmFyIG1pbk1haW5TaXplUGVyY2VudCA9IHRoaXMuaXNWZXJ0aWNh
bCgpID8gdGhpcy5fbWluaW11bU1haW5XaWR0aFBlcmNlbnQgOiB0aGlzLl9taW5pbXVtTWFpbkhl
aWdodFBlcmNlbnQ7CisgICAgICAgIHJldHVybiBOdW1iZXIuY29uc3RyYWluKHNpemUsIG1pblNp
ZGViYXJTaXplLCB0aGlzLnRvdGFsU2l6ZSgpICogKDEwMCAtIG1pbk1haW5TaXplUGVyY2VudCkg
LyAxMDApOwogICAgIH0sCiAKICAgICBoaWRlTWFpbkVsZW1lbnQ6IGZ1bmN0aW9uKCkKICAgICB7
Ci0gICAgICAgIGlmICh0aGlzLl9oYXNMZWZ0U2lkZWJhcigpKQotICAgICAgICAgICAgdGhpcy5z
aG93T25seUZpcnN0KCk7Ci0gICAgICAgIGVsc2UKKyAgICAgICAgaWYgKHRoaXMuaXNTaWRlYmFy
U2Vjb25kKCkpCiAgICAgICAgICAgICB0aGlzLnNob3dPbmx5U2Vjb25kKCk7CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIHRoaXMuc2hvd09ubHlGaXJzdCgpOwogICAgIH0sCiAKICAgICBzaG93
TWFpbkVsZW1lbnQ6IGZ1bmN0aW9uKCkKQEAgLTE2NSwxMCArMjE1LDEwIEBAIFdlYkluc3BlY3Rv
ci5TaWRlYmFyVmlldy5wcm90b3R5cGUgPSB7CiAKICAgICBoaWRlU2lkZWJhckVsZW1lbnQ6IGZ1
bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIGlmICh0aGlzLl9oYXNMZWZ0U2lkZWJhcigpKQotICAg
ICAgICAgICAgdGhpcy5zaG93T25seVNlY29uZCgpOwotICAgICAgICBlbHNlCisgICAgICAgIGlm
ICh0aGlzLmlzU2lkZWJhclNlY29uZCgpKQogICAgICAgICAgICAgdGhpcy5zaG93T25seUZpcnN0
KCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMuc2hvd09ubHlTZWNvbmQoKTsKICAg
ICB9LAogCiAgICAgc2hvd1NpZGViYXJFbGVtZW50OiBmdW5jdGlvbigpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NwbGl0Vmlldy5qcyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3BsaXRWaWV3LmpzCmluZGV4IGZlOGJhYWMxMjY3
M2EwNWExNWJhY2JlZWQyMzY0OTE5OWI1YzZmOWIuLjE3NDNiYWQ5MTQxMTM0Njc2ZTcyYTk0M2I3
M2ZjNDIyYTA4NzNmY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvU3BsaXRWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvU3BsaXRWaWV3LmpzCkBAIC00Myw3ICs0Myw2IEBAIFdlYkluc3BlY3Rvci5TcGxpdFZpZXcg
PSBmdW5jdGlvbihpc1ZlcnRpY2FsLCBzaWRlYmFyU2l6ZVNldHRpbmdOYW1lLCBkZWZhdWx0U2lk
CiAgICAgdGhpcy5lbGVtZW50LmNsYXNzTmFtZSA9ICJzcGxpdC12aWV3IjsKIAogICAgIHRoaXMu
X2ZpcnN0RWxlbWVudCA9IHRoaXMuZWxlbWVudC5jcmVhdGVDaGlsZCgiZGl2IiwgInNwbGl0LXZp
ZXctY29udGVudHMiKTsKLQogICAgIHRoaXMuX3NlY29uZEVsZW1lbnQgPSB0aGlzLmVsZW1lbnQu
Y3JlYXRlQ2hpbGQoImRpdiIsICJzcGxpdC12aWV3LWNvbnRlbnRzIik7CiAKICAgICB0aGlzLl9y
ZXNpemVyRWxlbWVudCA9IHRoaXMuZWxlbWVudC5jcmVhdGVDaGlsZCgiZGl2IiwgInNwbGl0LXZp
ZXctcmVzaXplciIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9zcGxpdFZpZXcuY3NzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9z
cGxpdFZpZXcuY3NzCmluZGV4IDhjMmQzODUzYWI5MDZjMDBkZjVlOTc3N2RmNjQwOWZlMWNiMjA4
YzcuLjdiMDhhN2UwNzZhNDBiNDhmYjZkYjBlOTczOTBmY2E0ZTgyZWRjOTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvc3BsaXRWaWV3LmNzcworKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL3NwbGl0Vmlldy5jc3MKQEAgLTY3LDYg
KzY3LDIyIEBACiAgICAgYm9yZGVyLXJpZ2h0OiBub25lOwogfQogCisuc3BsaXQtdmlldy1zaWRl
YmFyLXRvcCB7CisgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYig2NCUsIDY0JSwgNjQl
KTsKK30KKworLnNwbGl0LXZpZXctc2lkZWJhci10b3AubWF4aW1pemVkIHsKKyAgICBib3JkZXIt
Ym90dG9tOiBub25lOworfQorCisuc3BsaXQtdmlldy1zaWRlYmFyLWJvdHRvbSB7CisgICAgYm9y
ZGVyLXRvcDogMXB4IHNvbGlkIHJnYig2NCUsIDY0JSwgNjQlKTsKK30KKworLnNwbGl0LXZpZXct
c2lkZWJhci1ib3R0b20ubWF4aW1pemVkIHsKKyAgICBib3JkZXItdG9wOiBub25lOworfQorCiAu
c3BsaXQtdmlldy1yZXNpemVyLnNwbGl0LXZpZXctcmVzaXplci12ZXJ0aWNhbCB7CiAgICAgcG9z
aXRpb246IGFic29sdXRlOwogICAgIHRvcDogMDsK
</data>

          </attachment>
      

    </bug>

</bugzilla>