<?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>111298</bug_id>
          
          <creation_ts>2013-03-04 02:41:32 -0800</creation_ts>
          <short_desc>Web Inspector: allow each profiler panel to have own landing page</short_desc>
          <delta_ts>2013-03-05 06:00:20 -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>1</everconfirmed>
          <reporter name="Alexei Filippov">alph</reporter>
          <assigned_to name="Alexei Filippov">alph</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>846265</commentid>
    <comment_count>0</comment_count>
    <who name="Alexei Filippov">alph</who>
    <bug_when>2013-03-04 02:41:32 -0800</bug_when>
    <thetext>Refactor profiler landing page to allow different profiler panels to have own landing pages.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846269</commentid>
    <comment_count>1</comment_count>
      <attachid>191185</attachid>
    <who name="Alexei Filippov">alph</who>
    <bug_when>2013-03-04 02:46:49 -0800</bug_when>
    <thetext>Created attachment 191185
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846525</commentid>
    <comment_count>2</comment_count>
      <attachid>191185</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2013-03-04 08:35:51 -0800</bug_when>
    <thetext>Comment on attachment 191185
Patch

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

&gt; Source/WebCore/inspector/front-end/ProfileLauncherView.js:31
&gt; +

Revert this?

&gt; Source/WebCore/inspector/front-end/ProfileLauncherView.js:207
&gt; +    if (WebInspector.experimentsSettings.liveNativeMemoryChart.isEnabled()) {

I think we should instead hide the launcher along with corresponding panel when the profile type is disabled.

&gt; Source/WebCore/inspector/front-end/ProfilesPanel.js:1347
&gt; +    WebInspector.SidebarTreeElement.call(this, &quot;profile-launcher-view-tree-item&quot;, WebInspector.UIString(&quot;New Profile&quot;), &quot;&quot;, null, false);

Why did this change? Are you going to make it a button?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846566</commentid>
    <comment_count>3</comment_count>
      <attachid>191185</attachid>
    <who name="Alexei Filippov">alph</who>
    <bug_when>2013-03-04 09:29:36 -0800</bug_when>
    <thetext>Comment on attachment 191185
Patch

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

&gt;&gt; Source/WebCore/inspector/front-end/ProfileLauncherView.js:31
&gt;&gt; +
&gt; 
&gt; Revert this?

ok

&gt;&gt; Source/WebCore/inspector/front-end/ProfileLauncherView.js:207
&gt;&gt; +    if (WebInspector.experimentsSettings.liveNativeMemoryChart.isEnabled()) {
&gt; 
&gt; I think we should instead hide the launcher along with corresponding panel when the profile type is disabled.

If it is disabled the panel won&apos;t be added to the list of available panels.

&gt;&gt; Source/WebCore/inspector/front-end/ProfilesPanel.js:1347
&gt;&gt; +    WebInspector.SidebarTreeElement.call(this, &quot;profile-launcher-view-tree-item&quot;, WebInspector.UIString(&quot;New Profile&quot;), &quot;&quot;, null, false);
&gt; 
&gt; Why did this change? Are you going to make it a button?

No. I think this name is better describes the purpose of the landing page. Why it makes you think of a button? It does have a verb in the name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846567</commentid>
    <comment_count>4</comment_count>
      <attachid>191260</attachid>
    <who name="Alexei Filippov">alph</who>
    <bug_when>2013-03-04 09:30:04 -0800</bug_when>
    <thetext>Created attachment 191260
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846570</commentid>
    <comment_count>5</comment_count>
    <who name="Alexei Filippov">alph</who>
    <bug_when>2013-03-04 09:32:17 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; No. I think this name is better describes the purpose of the landing page. Why it makes you think of a button? It does have a verb in the name.
It does *not* have a verb in the name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847286</commentid>
    <comment_count>6</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2013-03-04 22:35:55 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #3)
&gt; &gt; No. I think this name is better describes the purpose of the landing page. Why it makes you think of a button? It does have a verb in the name.
&gt; It does *not* have a verb in the name.

Can you attach a screenshot? As far as I understand it changes the title of profiles sidebar to &quot;New Profile&quot; which doesn&apos;t make sense to me unless you turn the title into a button that does the same as the  &quot;o&quot; button in the status bar.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847418</commentid>
    <comment_count>7</comment_count>
    <who name="Alexei Filippov">alph</who>
    <bug_when>2013-03-05 01:25:20 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #5)
&gt; &gt; (In reply to comment #3)
&gt; &gt; &gt; No. I think this name is better describes the purpose of the landing page. Why it makes you think of a button? It does have a verb in the name.
&gt; &gt; It does *not* have a verb in the name.
&gt; 
&gt; Can you attach a screenshot? As far as I understand it changes the title of profiles sidebar to &quot;New Profile&quot; which doesn&apos;t make sense to me unless you turn the title into a button that does the same as the  &quot;o&quot; button in the status bar.

It is more like a &quot;New tab&quot; button in chromium.
Anyway I reverted this change as it is not really related to the main patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847420</commentid>
    <comment_count>8</comment_count>
      <attachid>191432</attachid>
    <who name="Alexei Filippov">alph</who>
    <bug_when>2013-03-05 01:26:54 -0800</bug_when>
    <thetext>Created attachment 191432
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847601</commentid>
    <comment_count>9</comment_count>
      <attachid>191432</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-05 06:00:16 -0800</bug_when>
    <thetext>Comment on attachment 191432
Patch

Clearing flags on attachment: 191432

Committed r144754: &lt;http://trac.webkit.org/changeset/144754&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847602</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-05 06:00:20 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191185</attachid>
            <date>2013-03-04 02:46:49 -0800</date>
            <delta_ts>2013-03-04 09:29:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-111298-20130304144256.patch</filename>
            <type>text/plain</type>
            <size>21761</size>
            <attacher name="Alexei Filippov">alph</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0NjA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDkwMzkxMjQxNWM5ZjMw
YzhjMzA4YTkwMDcyZWVjNGNlZWE1MDU3MC4uNDFmNWU4ZDk2NDMzODIwMWY2ODc3ZjFiNTAwYmJh
NzA5MTYxOWQzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDEzLTAzLTA0ICBBbGV4
ZWkgRmlsaXBwb3YgIDxhbHBoQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9y
OiBhbGxvdyBlYWNoIHByb2ZpbGVyIHBhbmVsIHRvIGhhdmUgb3duIGxhbmRpbmcgcGFnZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTExMjk4CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVmYWN0b3IgcHJv
ZmlsZXIgbGFuZGluZyBwYWdlIHRvIGFsbG93IGRpZmZlcmVudCBwcm9maWxlciBwYW5lbHMgdG8g
aGF2ZSBvd24gbGFuZGluZyBwYWdlcy4KKyAgICAgICAgICAtIE11bHRpUHJvZmlsZUxhdW5jaGVy
VmlldyBpcyBpbmhlcml0ZWQgZnJvbSBQcm9maWxlTGF1bmNoZXJWaWV3CisgICAgICAgICAgLSBO
YXRpdmUgbWVtb3J5IGRpc3RyaWJ1dGlvbiBwcm9maWxlciBoYXMgZ290IGEgY3VzdG9tIHBhZ2Uu
CisgICAgICAgICAgLSAiUHJvaWxlcyIgaXRlbSBoYXMgYmVlbiByZW5hbWVkIHRvICJOZXcgUHJv
ZmlsZSIKKworICAgICAgICBObyBuZXcgdGVzdHM6IGNvZGUgcmVmYWN0b3JpbmcuCisKKyAgICAg
ICAgKiBFbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanM6CisgICAgICAgICogaW5zcGVj
dG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3RWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkhlYXBTbmFwc2hvdFZpZXcucHJvdG90eXBlLmdldCBwcm9maWxlKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5IZWFwU25hcHNob3RWaWV3LnByb3RvdHlwZS5nZXQgYmFzZVByb2ZpbGUpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdFZpZXcucHJvdG90eXBlLl9wcm9maWxlcyk6
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9OYXRpdmVNZW1vcnlTbmFwc2hvdFZpZXcu
anM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlTGF1bmNoZXJWaWV3Lmpz
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVMYXVuY2hlclZpZXcpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlByb2ZpbGVMYXVuY2hlclZpZXcucHJvdG90eXBlLmFkZFByb2ZpbGVUeXBl
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlTGF1bmNoZXJWaWV3LnByb3RvdHlwZS5f
Y29udHJvbEJ1dHRvbkNsaWNrZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVMYXVu
Y2hlclZpZXcucHJvdG90eXBlLl91cGRhdGVDb250cm9scyk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuUHJvZmlsZUxhdW5jaGVyVmlldy5wcm90b3R5cGUucHJvZmlsZVN0YXJ0ZWQpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVMYXVuY2hlclZpZXcucHJvdG90eXBlLnByb2ZpbGVGaW5p
c2hlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTXVsdGlQcm9maWxlTGF1bmNoZXJWaWV3KToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5NdWx0aVByb2ZpbGVMYXVuY2hlclZpZXcucHJvdG90eXBl
LmFkZFByb2ZpbGVUeXBlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5NdWx0aVByb2ZpbGVMYXVu
Y2hlclZpZXcucHJvdG90eXBlLl9wcm9maWxlVHlwZUNoYW5nZWQpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLk5hdGl2ZVByb2ZpbGVMYXVuY2hlclZpZXcpOgorICAgICAgICAqIGluc3BlY3Rvci9m
cm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxl
c1BhbmVsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZS5f
Y3JlYXRlTGF1bmNoZXJWaWV3KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlc1NpZGVi
YXJUcmVlRWxlbWVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1BVUHJvZmlsZXJQYW5lbCk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTU2VsZWN0b3JQcm9maWxlclBhbmVsKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5IZWFwUHJvZmlsZXJQYW5lbCk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuQ2FudmFzUHJvZmlsZXJQYW5lbCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTWVtb3J5Q2hh
cnRQcm9maWxlclBhbmVsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5NZW1vcnlDaGFydFByb2Zp
bGVyUGFuZWwucHJvdG90eXBlLl9jcmVhdGVMYXVuY2hlclZpZXcpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLk5hdGl2ZU1lbW9yeVByb2ZpbGVyUGFuZWwpOgorICAgICAgICAqIGluc3BlY3Rvci9m
cm9udC1lbmQvcHJvZmlsZXNQYW5lbC5jc3M6CisgICAgICAgICgucGFuZWwtZW5hYmxlci12aWV3
LnByb2ZpbGUtbGF1bmNoZXItdmlldyBidXR0b246bm90KC5zdGF0dXMtYmFyLWl0ZW0pKToKKwog
MjAxMy0wMy0wNCAgQW5kcmV5IEx1c2huaWtvdiAgPGx1c2huaWtvdkBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgV2ViIEluc3BlY3RvcjogYWRkIHJ1bnRpbWUgZmxhZyB0byBkZXRlcm1pbmUgaWYg
aW5zcGVjdG9yJ3Mgc291cmNlIGZpbGVzIHdlcmUgZmxhdHRlbmVkLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzIGIvU291cmNlL1dl
YkNvcmUvRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCmluZGV4IGJjNTFkOGY0ZjJh
NGM3ZjU3NWUyYmFhMGMyYzVhMzk2NGQ3ZmJmNmYuLmZhNTY2NDYyZGE2MGQzMzJhZWZlMGVhZGRk
ZDI3ZWYxYjhiZjY3MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0VuZ2xpc2gubHByb2ov
bG9jYWxpemVkU3RyaW5ncy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9FbmdsaXNoLmxwcm9qL2xv
Y2FsaXplZFN0cmluZ3MuanMKQEAgLTI2NCw2ICsyNjQsNyBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJN
ZW1vcnkiXSA9ICJNZW1vcnkiOwogbG9jYWxpemVkU3RyaW5nc1siTWV0cmljcyJdID0gIk1ldHJp
Y3MiOwogbG9jYWxpemVkU3RyaW5nc1siTmFtZSJdID0gIk5hbWUiOwogbG9jYWxpemVkU3RyaW5n
c1siTmF2aWdhdGUgZWxlbWVudHMiXSA9ICJOYXZpZ2F0ZSBlbGVtZW50cyI7Citsb2NhbGl6ZWRT
dHJpbmdzWyJOZXcgUHJvZmlsZSJdID0gIk5ldyBQcm9maWxlIjsKIGxvY2FsaXplZFN0cmluZ3Nb
Ik5ldyBTdHlsZSBSdWxlIl0gPSAiTmV3IFN0eWxlIFJ1bGUiOwogbG9jYWxpemVkU3RyaW5nc1si
TmV4dC9wcmV2aW91cyBjYWxsIGZyYW1lIl0gPSAiTmV4dC9wcmV2aW91cyBjYWxsIGZyYW1lIjsK
IGxvY2FsaXplZFN0cmluZ3NbIk5leHQvcHJldmlvdXMgY29tbWFuZCJdID0gIk5leHQvcHJldmlv
dXMgY29tbWFuZCI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0hlYXBTbmFwc2hvdFZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0hlYXBTbmFwc2hvdFZpZXcuanMKaW5kZXggYTVhMDAwOTAwNTA0OTlhYTFmM2I0MjkxYWJk
YTQ0ZTM0MzUzMDBmOS4uZjE0ZGNhM2M5OTQwZWE5OWUzZjc1ZWI5ZDY0NTYyYmM4NGNmY2E3MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNo
b3RWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSGVhcFNu
YXBzaG90Vmlldy5qcwpAQCAtMzEsOCArMzEsOCBAQAogLyoqCiAgKiBAY29uc3RydWN0b3IKICAq
IEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuVmlld30KLSAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlBy
b2ZpbGVzUGFuZWx9IHBhcmVudAotICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuSGVhcFByb2ZpbGVI
ZWFkZXJ9IHByb2ZpbGUKKyAqIEBwYXJhbSB7IVdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsfSBw
YXJlbnQKKyAqIEBwYXJhbSB7IVdlYkluc3BlY3Rvci5IZWFwUHJvZmlsZUhlYWRlcn0gcHJvZmls
ZQogICovCiBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90VmlldyA9IGZ1bmN0aW9uKHBhcmVudCwg
cHJvZmlsZSkKIHsKQEAgLTE4OCwxMiArMTg4LDEyIEBAIFdlYkluc3BlY3Rvci5IZWFwU25hcHNo
b3RWaWV3LnByb3RvdHlwZSA9IHsKIAogICAgIGdldCBwcm9maWxlKCkKICAgICB7Ci0gICAgICAg
IHJldHVybiB0aGlzLnBhcmVudC5nZXRQcm9maWxlKFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RQ
cm9maWxlVHlwZS5UeXBlSWQsIHRoaXMuX3Byb2ZpbGVVaWQpOworICAgICAgICByZXR1cm4gdGhp
cy5wYXJlbnQuZ2V0UHJvZmlsZSh0aGlzLl9wcm9maWxlVHlwZUlkLCB0aGlzLl9wcm9maWxlVWlk
KTsKICAgICB9LAogCiAgICAgZ2V0IGJhc2VQcm9maWxlKCkKICAgICB7Ci0gICAgICAgIHJldHVy
biB0aGlzLnBhcmVudC5nZXRQcm9maWxlKFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RQcm9maWxl
VHlwZS5UeXBlSWQsIHRoaXMuX2Jhc2VQcm9maWxlVWlkKTsKKyAgICAgICAgcmV0dXJuIHRoaXMu
cGFyZW50LmdldFByb2ZpbGUodGhpcy5fcHJvZmlsZVR5cGVJZCwgdGhpcy5fYmFzZVByb2ZpbGVV
aWQpOwogICAgIH0sCiAKICAgICB3YXNTaG93bjogZnVuY3Rpb24oKQpAQCAtNDI3LDcgKzQyNyw3
IEBAIFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgKi8K
ICAgICBfcHJvZmlsZXM6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLnBh
cmVudC5nZXRQcm9maWxlVHlwZShXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90UHJvZmlsZVR5cGUu
VHlwZUlkKS5nZXRQcm9maWxlcygpOworICAgICAgICByZXR1cm4gdGhpcy5wYXJlbnQuZ2V0UHJv
ZmlsZVR5cGUodGhpcy5fcHJvZmlsZVR5cGVJZCkuZ2V0UHJvZmlsZXMoKTsKICAgICB9LAogCiAg
ICAgLyoqCkBAIC05MjgsNyArOTI4LDcgQEAgV2ViSW5zcGVjdG9yLkhlYXBQcm9maWxlSGVhZGVy
LnByb3RvdHlwZSA9IHsKIAogICAgIC8qKgogICAgICAqIEBvdmVycmlkZQotICAgICAqIEBwYXJh
bSB7V2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWx9IHByb2ZpbGVzUGFuZWwKKyAgICAgKiBAcGFy
YW0geyFXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbH0gcHJvZmlsZXNQYW5lbAogICAgICAqLwog
ICAgIGNyZWF0ZVZpZXc6IGZ1bmN0aW9uKHByb2ZpbGVzUGFuZWwpCiAgICAgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OYXRpdmVNZW1vcnlTbmFwc2hv
dFZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05hdGl2ZU1lbW9y
eVNuYXBzaG90Vmlldy5qcwppbmRleCBlMjEzZTJlMWMyYmE2ODFmYjllYzVhMjZiMzMyMTg1YTNh
NDhhYTBjLi4xMTVlNmQ3ZjUyOWQyYzk4ZDU1OWMxYjAxOWE3OWYyNThmMDRmNzkyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05hdGl2ZU1lbW9yeVNuYXBz
aG90Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05hdGl2
ZU1lbW9yeVNuYXBzaG90Vmlldy5qcwpAQCAtMzgyLDcgKzM4Miw3IEBAIFdlYkluc3BlY3Rvci5O
YXRpdmVTbmFwc2hvdFByb2ZpbGVIZWFkZXIgPSBmdW5jdGlvbih0eXBlLCB0aXRsZSwgdWlkKQog
V2ViSW5zcGVjdG9yLk5hdGl2ZVNuYXBzaG90UHJvZmlsZUhlYWRlci5wcm90b3R5cGUgPSB7CiAg
ICAgLyoqCiAgICAgICogQG92ZXJyaWRlCi0gICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuUHJv
ZmlsZXNQYW5lbH0gcHJvZmlsZXNQYW5lbAorICAgICAqIEBwYXJhbSB7IVdlYkluc3BlY3Rvci5Q
cm9maWxlc1BhbmVsfSBwcm9maWxlc1BhbmVsCiAgICAgICovCiAgICAgY3JlYXRlVmlldzogZnVu
Y3Rpb24ocHJvZmlsZXNQYW5lbCkKICAgICB7CkBAIC00MTMsOCArNDEzLDggQEAgV2ViSW5zcGVj
dG9yLk5hdGl2ZVNuYXBzaG90UHJvZmlsZUhlYWRlci5wcm90b3R5cGUgPSB7CiAvKioKICAqIEBj
b25zdHJ1Y3RvcgogICogQGV4dGVuZHMge1dlYkluc3BlY3Rvci5IZWFwU25hcHNob3RWaWV3fQot
ICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbH0gcGFyZW50Ci0gKiBAcGFyYW0g
e1dlYkluc3BlY3Rvci5OYXRpdmVTbmFwc2hvdFByb2ZpbGVIZWFkZXJ9IHByb2ZpbGUKKyAqIEBw
YXJhbSB7IVdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsfSBwYXJlbnQKKyAqIEBwYXJhbSB7IVdl
Ykluc3BlY3Rvci5OYXRpdmVTbmFwc2hvdFByb2ZpbGVIZWFkZXJ9IHByb2ZpbGUKICAqLwogV2Vi
SW5zcGVjdG9yLk5hdGl2ZUhlYXBTbmFwc2hvdFZpZXcgPSBmdW5jdGlvbihwYXJlbnQsIHByb2Zp
bGUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1By
b2ZpbGVMYXVuY2hlclZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1Byb2ZpbGVMYXVuY2hlclZpZXcuanMKaW5kZXggZWUzMjJiNTk5NmRkZjFlNmM0YzJmNzQzNjYx
NWY3YmM1MWI3YWRhYi4uMTM2ZmFkNWZkOTYxNzA3ZmFhYzQ1MTRkZjUyNWI2Mzc0NmU3NjYwYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlTGF1
bmNoZXJWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJv
ZmlsZUxhdW5jaGVyVmlldy5qcwpAQCAtMjgsODAgKzI4LDEyNiBAQAogICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
ICAqLwogCisKIC8qKgogICogQGNvbnN0cnVjdG9yCiAgKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9y
LlZpZXd9CiAgKiBAcGFyYW0geyFXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbH0gcHJvZmlsZXNQ
YW5lbAotICogQHBhcmFtIHtib29sZWFufSBzaW5nbGVQcm9maWxlTW9kZQogICovCi1XZWJJbnNw
ZWN0b3IuUHJvZmlsZUxhdW5jaGVyVmlldyA9IGZ1bmN0aW9uKHByb2ZpbGVzUGFuZWwsIHNpbmds
ZVByb2ZpbGVNb2RlKQorV2ViSW5zcGVjdG9yLlByb2ZpbGVMYXVuY2hlclZpZXcgPSBmdW5jdGlv
bihwcm9maWxlc1BhbmVsKQogewogICAgIFdlYkluc3BlY3Rvci5WaWV3LmNhbGwodGhpcyk7CiAK
ICAgICB0aGlzLl9wYW5lbCA9IHByb2ZpbGVzUGFuZWw7Ci0gICAgdGhpcy5fc2luZ2xlUHJvZmls
ZU1vZGUgPSBzaW5nbGVQcm9maWxlTW9kZTsKICAgICB0aGlzLl9wcm9maWxlUnVubmluZyA9IGZh
bHNlOwogCiAgICAgdGhpcy5lbGVtZW50LmFkZFN0eWxlQ2xhc3MoInByb2ZpbGUtbGF1bmNoZXIt
dmlldyIpOwogICAgIHRoaXMuZWxlbWVudC5hZGRTdHlsZUNsYXNzKCJwYW5lbC1lbmFibGVyLXZp
ZXciKTsKIAogICAgIHRoaXMuX2NvbnRlbnRFbGVtZW50ID0gdGhpcy5lbGVtZW50LmNyZWF0ZUNo
aWxkKCJkaXYiLCAicHJvZmlsZS1sYXVuY2hlci12aWV3LWNvbnRlbnQiKTsKKyAgICB0aGlzLl9p
bm5lckNvbnRlbnRFbGVtZW50ID0gdGhpcy5fY29udGVudEVsZW1lbnQuY3JlYXRlQ2hpbGQoImRp
diIpOwogCi0gICAgaWYgKCFzaW5nbGVQcm9maWxlTW9kZSkgewotICAgICAgICB2YXIgaGVhZGVy
ID0gdGhpcy5fY29udGVudEVsZW1lbnQuY3JlYXRlQ2hpbGQoImgxIik7Ci0gICAgICAgIGhlYWRl
ci50ZXh0Q29udGVudCA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiU2VsZWN0IHByb2ZpbGluZyB0
eXBlIik7Ci0gICAgfQorICAgIHRoaXMuX2NvbnRyb2xCdXR0b24gPSB0aGlzLl9jb250ZW50RWxl
bWVudC5jcmVhdGVDaGlsZCgiYnV0dG9uIiwgImNvbnRyb2wtcHJvZmlsaW5nIik7CisgICAgdGhp
cy5fY29udHJvbEJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuX2NvbnRyb2xC
dXR0b25DbGlja2VkLmJpbmQodGhpcyksIGZhbHNlKTsKK30KKworV2ViSW5zcGVjdG9yLlByb2Zp
bGVMYXVuY2hlclZpZXcucHJvdG90eXBlID0geworICAgIC8qKgorICAgICAqIEBwYXJhbSB7V2Vi
SW5zcGVjdG9yLlByb2ZpbGVUeXBlfSBwcm9maWxlVHlwZQorICAgICAqLworICAgIGFkZFByb2Zp
bGVUeXBlOiBmdW5jdGlvbihwcm9maWxlVHlwZSkKKyAgICB7CisgICAgICAgIHZhciBkZXNjcmlw
dGlvbkVsZW1lbnQgPSB0aGlzLl9pbm5lckNvbnRlbnRFbGVtZW50LmNyZWF0ZUNoaWxkKCJoMSIp
OworICAgICAgICBkZXNjcmlwdGlvbkVsZW1lbnQudGV4dENvbnRlbnQgPSBwcm9maWxlVHlwZS5k
ZXNjcmlwdGlvbjsKKyAgICAgICAgdmFyIGRlY29yYXRpb25FbGVtZW50ID0gcHJvZmlsZVR5cGUu
ZGVjb3JhdGlvbkVsZW1lbnQoKTsKKyAgICAgICAgaWYgKGRlY29yYXRpb25FbGVtZW50KQorICAg
ICAgICAgICAgdGhpcy5faW5uZXJDb250ZW50RWxlbWVudC5hcHBlbmRDaGlsZChkZWNvcmF0aW9u
RWxlbWVudCk7CisgICAgfSwKKworICAgIF9jb250cm9sQnV0dG9uQ2xpY2tlZDogZnVuY3Rpb24o
KQorICAgIHsKKyAgICAgICAgdGhpcy5fcGFuZWwudG9nZ2xlUmVjb3JkQnV0dG9uKCk7CisgICAg
fSwKIAotICAgIHRoaXMuX3Byb2ZpbGVUeXBlU2VsZWN0b3JGb3JtID0gdGhpcy5fY29udGVudEVs
ZW1lbnQuY3JlYXRlQ2hpbGQoImZvcm0iKTsKKyAgICBfdXBkYXRlQ29udHJvbHM6IGZ1bmN0aW9u
KCkKKyAgICB7CisgICAgICAgIGlmICh0aGlzLl9pc1Byb2ZpbGluZykgeworICAgICAgICAgICAg
dGhpcy5fY29udHJvbEJ1dHRvbi5hZGRTdHlsZUNsYXNzKCJydW5uaW5nIik7CisgICAgICAgICAg
ICB0aGlzLl9jb250cm9sQnV0dG9uLnRleHRDb250ZW50ID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5n
KCJTdG9wIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0aGlzLl9jb250cm9sQnV0
dG9uLnJlbW92ZVN0eWxlQ2xhc3MoInJ1bm5pbmciKTsKKyAgICAgICAgICAgIHRoaXMuX2NvbnRy
b2xCdXR0b24udGV4dENvbnRlbnQgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlN0YXJ0Iik7Cisg
ICAgICAgIH0KKyAgICB9LAorCisgICAgcHJvZmlsZVN0YXJ0ZWQ6IGZ1bmN0aW9uKCkKKyAgICB7
CisgICAgICAgIHRoaXMuX2lzUHJvZmlsaW5nID0gdHJ1ZTsKKyAgICAgICAgdGhpcy5fdXBkYXRl
Q29udHJvbHMoKTsKKyAgICB9LAorCisgICAgcHJvZmlsZUZpbmlzaGVkOiBmdW5jdGlvbigpCisg
ICAgeworICAgICAgICB0aGlzLl9pc1Byb2ZpbGluZyA9IGZhbHNlOworICAgICAgICB0aGlzLl91
cGRhdGVDb250cm9scygpOworICAgIH0sCisKKyAgICBfX3Byb3RvX186IFdlYkluc3BlY3Rvci5W
aWV3LnByb3RvdHlwZQorfQorCisKKy8qKgorICogQGNvbnN0cnVjdG9yCisgKiBAZXh0ZW5kcyB7
V2ViSW5zcGVjdG9yLlByb2ZpbGVMYXVuY2hlclZpZXd9CisgKiBAcGFyYW0geyFXZWJJbnNwZWN0
b3IuUHJvZmlsZXNQYW5lbH0gcHJvZmlsZXNQYW5lbAorICovCitXZWJJbnNwZWN0b3IuTXVsdGlQ
cm9maWxlTGF1bmNoZXJWaWV3ID0gZnVuY3Rpb24ocHJvZmlsZXNQYW5lbCkKK3sKKyAgICBXZWJJ
bnNwZWN0b3IuUHJvZmlsZUxhdW5jaGVyVmlldy5jYWxsKHRoaXMsIHByb2ZpbGVzUGFuZWwpOwor
CisgICAgdmFyIGhlYWRlciA9IHRoaXMuX2lubmVyQ29udGVudEVsZW1lbnQuY3JlYXRlQ2hpbGQo
ImgxIik7CisgICAgaGVhZGVyLnRleHRDb250ZW50ID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJT
ZWxlY3QgcHJvZmlsaW5nIHR5cGUiKTsKKworICAgIHRoaXMuX3Byb2ZpbGVUeXBlU2VsZWN0b3JG
b3JtID0gdGhpcy5faW5uZXJDb250ZW50RWxlbWVudC5jcmVhdGVDaGlsZCgiZm9ybSIpOwogCiAg
ICAgaWYgKFdlYkluc3BlY3Rvci5leHBlcmltZW50c1NldHRpbmdzLmxpdmVOYXRpdmVNZW1vcnlD
aGFydC5pc0VuYWJsZWQoKSkgewotICAgICAgICB0aGlzLl9uYXRpdmVNZW1vcnlFbGVtZW50ID0g
dGhpcy5fY29udGVudEVsZW1lbnQuY3JlYXRlQ2hpbGQoImRpdiIpOworICAgICAgICB0aGlzLl9u
YXRpdmVNZW1vcnlFbGVtZW50ID0gdGhpcy5faW5uZXJDb250ZW50RWxlbWVudC5jcmVhdGVDaGls
ZCgiZGl2Iik7CiAgICAgICAgIHRoaXMuX25hdGl2ZU1lbW9yeUxpdmVDaGFydCA9IG5ldyBXZWJJ
bnNwZWN0b3IuTmF0aXZlTWVtb3J5QmFyQ2hhcnQoKTsKICAgICAgICAgdGhpcy5fbmF0aXZlTWVt
b3J5TGl2ZUNoYXJ0LnNob3codGhpcy5fbmF0aXZlTWVtb3J5RWxlbWVudCk7CiAgICAgfQogCi0g
ICAgdGhpcy5fY29udGVudEVsZW1lbnQuY3JlYXRlQ2hpbGQoImRpdiIsICJmbGV4aWJsZS1zcGFj
ZSIpOwotCi0gICAgdGhpcy5fY29udHJvbEJ1dHRvbiA9IHRoaXMuX2NvbnRlbnRFbGVtZW50LmNy
ZWF0ZUNoaWxkKCJidXR0b24iLCAiY29udHJvbC1wcm9maWxpbmciKTsKLSAgICB0aGlzLl9jb250
cm9sQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5fY29udHJvbEJ1dHRvbkNs
aWNrZWQuYmluZCh0aGlzKSwgZmFsc2UpOwotICAgIHRoaXMuX3VwZGF0ZUNvbnRyb2xzKCk7Cisg
ICAgdGhpcy5faW5uZXJDb250ZW50RWxlbWVudC5jcmVhdGVDaGlsZCgiZGl2IiwgImZsZXhpYmxl
LXNwYWNlIik7CiB9CiAKLVdlYkluc3BlY3Rvci5Qcm9maWxlTGF1bmNoZXJWaWV3LkV2ZW50VHlw
ZXMgPSB7CitXZWJJbnNwZWN0b3IuTXVsdGlQcm9maWxlTGF1bmNoZXJWaWV3LkV2ZW50VHlwZXMg
PSB7CiAgICAgUHJvZmlsZVR5cGVTZWxlY3RlZDogInByb2ZpbGUtdHlwZS1zZWxlY3RlZCIKIH0K
IAotV2ViSW5zcGVjdG9yLlByb2ZpbGVMYXVuY2hlclZpZXcucHJvdG90eXBlID0geworV2ViSW5z
cGVjdG9yLk11bHRpUHJvZmlsZUxhdW5jaGVyVmlldy5wcm90b3R5cGUgPSB7CiAgICAgLyoqCisg
ICAgICogQG92ZXJyaWRlCiAgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuUHJvZmlsZVR5cGV9
IHByb2ZpbGVUeXBlCiAgICAgICovCiAgICAgYWRkUHJvZmlsZVR5cGU6IGZ1bmN0aW9uKHByb2Zp
bGVUeXBlKQogICAgIHsKICAgICAgICAgdmFyIGNoZWNrZWQgPSAhdGhpcy5fcHJvZmlsZVR5cGVT
ZWxlY3RvckZvcm0uY2hpbGRyZW4ubGVuZ3RoOwotICAgICAgICB2YXIgbGFiZWxFbGVtZW50Owot
ICAgICAgICBpZiAodGhpcy5fc2luZ2xlUHJvZmlsZU1vZGUpCi0gICAgICAgICAgICBsYWJlbEVs
ZW1lbnQgPSB0aGlzLl9wcm9maWxlVHlwZVNlbGVjdG9yRm9ybS5jcmVhdGVDaGlsZCgiaDEiKTsK
LSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBsYWJlbEVsZW1lbnQgPSB0aGlzLl9wcm9maWxl
VHlwZVNlbGVjdG9yRm9ybS5jcmVhdGVDaGlsZCgibGFiZWwiKTsKLSAgICAgICAgICAgIGxhYmVs
RWxlbWVudC50ZXh0Q29udGVudCA9IHByb2ZpbGVUeXBlLm5hbWU7Ci0gICAgICAgICAgICB2YXIg
b3B0aW9uRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7Ci0gICAgICAg
ICAgICBsYWJlbEVsZW1lbnQuaW5zZXJ0QmVmb3JlKG9wdGlvbkVsZW1lbnQsIGxhYmVsRWxlbWVu
dC5maXJzdENoaWxkKTsKLSAgICAgICAgICAgIG9wdGlvbkVsZW1lbnQudHlwZSA9ICJyYWRpbyI7
Ci0gICAgICAgICAgICBvcHRpb25FbGVtZW50Lm5hbWUgPSAicHJvZmlsZS10eXBlIjsKLSAgICAg
ICAgICAgIG9wdGlvbkVsZW1lbnQuc3R5bGUuaGlkZGVuID0gdHJ1ZTsKLSAgICAgICAgICAgIGlm
IChjaGVja2VkKSB7Ci0gICAgICAgICAgICAgICAgb3B0aW9uRWxlbWVudC5jaGVja2VkID0gY2hl
Y2tlZDsKLSAgICAgICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJ
bnNwZWN0b3IuUHJvZmlsZUxhdW5jaGVyVmlldy5FdmVudFR5cGVzLlByb2ZpbGVUeXBlU2VsZWN0
ZWQsIHByb2ZpbGVUeXBlKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIG9wdGlvbkVsZW1l
bnQuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwgdGhpcy5fcHJvZmlsZVR5cGVDaGFuZ2VkLmJp
bmQodGhpcywgcHJvZmlsZVR5cGUpLCBmYWxzZSk7CisgICAgICAgIHZhciBsYWJlbEVsZW1lbnQg
PSB0aGlzLl9wcm9maWxlVHlwZVNlbGVjdG9yRm9ybS5jcmVhdGVDaGlsZCgibGFiZWwiKTsKKyAg
ICAgICAgbGFiZWxFbGVtZW50LnRleHRDb250ZW50ID0gcHJvZmlsZVR5cGUubmFtZTsKKyAgICAg
ICAgdmFyIG9wdGlvbkVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpOwor
ICAgICAgICBsYWJlbEVsZW1lbnQuaW5zZXJ0QmVmb3JlKG9wdGlvbkVsZW1lbnQsIGxhYmVsRWxl
bWVudC5maXJzdENoaWxkKTsKKyAgICAgICAgb3B0aW9uRWxlbWVudC50eXBlID0gInJhZGlvIjsK
KyAgICAgICAgb3B0aW9uRWxlbWVudC5uYW1lID0gInByb2ZpbGUtdHlwZSI7CisgICAgICAgIG9w
dGlvbkVsZW1lbnQuc3R5bGUuaGlkZGVuID0gdHJ1ZTsKKyAgICAgICAgaWYgKGNoZWNrZWQpIHsK
KyAgICAgICAgICAgIG9wdGlvbkVsZW1lbnQuY2hlY2tlZCA9IGNoZWNrZWQ7CisgICAgICAgICAg
ICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuTXVsdGlQcm9maWxl
TGF1bmNoZXJWaWV3LkV2ZW50VHlwZXMuUHJvZmlsZVR5cGVTZWxlY3RlZCwgcHJvZmlsZVR5cGUp
OwogICAgICAgICB9CisgICAgICAgIG9wdGlvbkVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2hh
bmdlIiwgdGhpcy5fcHJvZmlsZVR5cGVDaGFuZ2VkLmJpbmQodGhpcywgcHJvZmlsZVR5cGUpLCBm
YWxzZSk7CiAgICAgICAgIHZhciBkZXNjcmlwdGlvbkVsZW1lbnQgPSBsYWJlbEVsZW1lbnQuY3Jl
YXRlQ2hpbGQoInAiKTsKICAgICAgICAgZGVzY3JpcHRpb25FbGVtZW50LnRleHRDb250ZW50ID0g
cHJvZmlsZVR5cGUuZGVzY3JpcHRpb247CiAgICAgICAgIHZhciBkZWNvcmF0aW9uRWxlbWVudCA9
IHByb2ZpbGVUeXBlLmRlY29yYXRpb25FbGVtZW50KCk7CiAgICAgICAgIGlmIChkZWNvcmF0aW9u
RWxlbWVudCkKICAgICAgICAgICAgIGxhYmVsRWxlbWVudC5hcHBlbmRDaGlsZChkZWNvcmF0aW9u
RWxlbWVudCk7Ci0gICAgICAgIGlmICh0aGlzLl9zaW5nbGVQcm9maWxlTW9kZSkKLSAgICAgICAg
ICAgIHRoaXMuX3Byb2ZpbGVUeXBlQ2hhbmdlZChwcm9maWxlVHlwZSwgbnVsbCk7CiAgICAgfSwK
IAogICAgIF9jb250cm9sQnV0dG9uQ2xpY2tlZDogZnVuY3Rpb24oKQpAQCAtMTMwLDcgKzE3Niw3
IEBAIFdlYkluc3BlY3Rvci5Qcm9maWxlTGF1bmNoZXJWaWV3LnByb3RvdHlwZSA9IHsKICAgICAg
Ki8KICAgICBfcHJvZmlsZVR5cGVDaGFuZ2VkOiBmdW5jdGlvbihwcm9maWxlVHlwZSwgZXZlbnQp
CiAgICAgewotICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0
b3IuUHJvZmlsZUxhdW5jaGVyVmlldy5FdmVudFR5cGVzLlByb2ZpbGVUeXBlU2VsZWN0ZWQsIHBy
b2ZpbGVUeXBlKTsKKyAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5z
cGVjdG9yLk11bHRpUHJvZmlsZUxhdW5jaGVyVmlldy5FdmVudFR5cGVzLlByb2ZpbGVUeXBlU2Vs
ZWN0ZWQsIHByb2ZpbGVUeXBlKTsKICAgICB9LAogCiAgICAgcHJvZmlsZVN0YXJ0ZWQ6IGZ1bmN0
aW9uKCkKQEAgLTE0NSw1ICsxOTEsMjcgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVMYXVuY2hlclZp
ZXcucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl91cGRhdGVDb250cm9scygpOwogICAgIH0s
CiAKLSAgICBfX3Byb3RvX186IFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZQorICAgIF9fcHJv
dG9fXzogV2ViSW5zcGVjdG9yLlByb2ZpbGVMYXVuY2hlclZpZXcucHJvdG90eXBlCit9CisKKwor
LyoqCisgKiBAY29uc3RydWN0b3IKKyAqIEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuUHJvZmlsZUxh
dW5jaGVyVmlld30KKyAqIEBwYXJhbSB7IVdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsfSBwcm9m
aWxlc1BhbmVsCisgKi8KK1dlYkluc3BlY3Rvci5OYXRpdmVQcm9maWxlTGF1bmNoZXJWaWV3ID0g
ZnVuY3Rpb24ocHJvZmlsZXNQYW5lbCkKK3sKKyAgICBXZWJJbnNwZWN0b3IuUHJvZmlsZUxhdW5j
aGVyVmlldy5jYWxsKHRoaXMsIHByb2ZpbGVzUGFuZWwpOworCisgICAgaWYgKFdlYkluc3BlY3Rv
ci5leHBlcmltZW50c1NldHRpbmdzLmxpdmVOYXRpdmVNZW1vcnlDaGFydC5pc0VuYWJsZWQoKSkg
eworICAgICAgICB0aGlzLl9uYXRpdmVNZW1vcnlFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiZGl2Iik7CisgICAgICAgIHRoaXMuX2NvbnRlbnRFbGVtZW50Lmluc2VydEJlZm9yZSh0
aGlzLl9uYXRpdmVNZW1vcnlFbGVtZW50LCB0aGlzLl9jb250cm9sQnV0dG9uKTsKKyAgICAgICAg
dGhpcy5fbmF0aXZlTWVtb3J5TGl2ZUNoYXJ0ID0gbmV3IFdlYkluc3BlY3Rvci5OYXRpdmVNZW1v
cnlCYXJDaGFydCgpOworICAgICAgICB0aGlzLl9uYXRpdmVNZW1vcnlMaXZlQ2hhcnQuc2hvdyh0
aGlzLl9uYXRpdmVNZW1vcnlFbGVtZW50KTsKKyAgICB9Cit9CisKK1dlYkluc3BlY3Rvci5OYXRp
dmVQcm9maWxlTGF1bmNoZXJWaWV3LnByb3RvdHlwZSA9IHsKKyAgICBfX3Byb3RvX186IFdlYklu
c3BlY3Rvci5Qcm9maWxlTGF1bmNoZXJWaWV3LnByb3RvdHlwZQogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpzCmluZGV4IDU3ODAw
ODY1ZDI3NzU5NjU3MmU5OWJkNjM5ZjhhNTFmZjVhZjQyNWMuLmY1MTQ2OTY0NTlmNTA5YmMyNWEz
YjRmY2Y1OWZmMDlhZGRjOTA1ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWwuanMKQEAgLTMzMyw4ICszMzMsOSBAQCBXZWJJbnNw
ZWN0b3IuUHJvZmlsZUhlYWRlci5wcm90b3R5cGUgPSB7CiAgKiBAZXh0ZW5kcyB7V2ViSW5zcGVj
dG9yLlBhbmVsfQogICogQGltcGxlbWVudHMge1dlYkluc3BlY3Rvci5Db250ZXh0TWVudS5Qcm92
aWRlcn0KICAqIEBwYXJhbSB7c3RyaW5nPX0gbmFtZQorICogQHBhcmFtIHtXZWJJbnNwZWN0b3Iu
UHJvZmlsZVR5cGU9fSB0eXBlCiAgKi8KLVdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsID0gZnVu
Y3Rpb24obmFtZSkKK1dlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsID0gZnVuY3Rpb24obmFtZSwg
dHlwZSkKIHsKICAgICAvLyBJZiB0aGUgbmFtZSBpcyBub3Qgc3BlY2lmaWVkIHRoZSBQcm9maWxl
c1BhbmVsIHdvcmtzIGluIG11bHRpLXByb2ZpbGUgbW9kZS4KICAgICB2YXIgc2luZ2xlUHJvZmls
ZU1vZGUgPSB0eXBlb2YgbmFtZSAhPT0gInVuZGVmaW5lZCI7CkBAIC0zOTEsMjQgKzM5MiwzMCBA
QCBXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbCA9IGZ1bmN0aW9uKG5hbWUpCiAKICAgICB0aGlz
Ll9wcm9maWxlckVuYWJsZWQgPSAhQ2FwYWJpbGl0aWVzLnByb2ZpbGVyQ2F1c2VzUmVjb21waWxh
dGlvbjsKIAotICAgIHRoaXMuX2xhdW5jaGVyVmlldyA9IG5ldyBXZWJJbnNwZWN0b3IuUHJvZmls
ZUxhdW5jaGVyVmlldyh0aGlzLCBzaW5nbGVQcm9maWxlTW9kZSk7Ci0gICAgdGhpcy5fbGF1bmNo
ZXJWaWV3LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlByb2ZpbGVMYXVuY2hlclZpZXcu
RXZlbnRUeXBlcy5Qcm9maWxlVHlwZVNlbGVjdGVkLCB0aGlzLl9vblByb2ZpbGVUeXBlU2VsZWN0
ZWQsIHRoaXMpOwotICAgIHRoaXMuX3Jlc2V0KCk7CisgICAgaWYgKHNpbmdsZVByb2ZpbGVNb2Rl
KSB7CisgICAgICAgIHRoaXMuX2xhdW5jaGVyVmlldyA9IHRoaXMuX2NyZWF0ZUxhdW5jaGVyVmll
dygpOworICAgICAgICB0aGlzLl9yZWdpc3RlclByb2ZpbGVUeXBlKC8qKiBAdHlwZSB7IVdlYklu
c3BlY3Rvci5Qcm9maWxlVHlwZX0gKi8gKHR5cGUpKTsKKyAgICAgICAgdGhpcy5fc2VsZWN0ZWRQ
cm9maWxlVHlwZSA9IHR5cGU7CisgICAgICAgIHRoaXMuX3VwZGF0ZVByb2ZpbGVUeXBlU3BlY2lm
aWNVSSgpOworICAgIH0gZWxzZSB7CisgICAgICAgIHRoaXMuX2xhdW5jaGVyVmlldyA9IG5ldyBX
ZWJJbnNwZWN0b3IuTXVsdGlQcm9maWxlTGF1bmNoZXJWaWV3KHRoaXMpOworICAgICAgICB0aGlz
Ll9sYXVuY2hlclZpZXcuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuTXVsdGlQcm9maWxl
TGF1bmNoZXJWaWV3LkV2ZW50VHlwZXMuUHJvZmlsZVR5cGVTZWxlY3RlZCwgdGhpcy5fb25Qcm9m
aWxlVHlwZVNlbGVjdGVkLCB0aGlzKTsKIAotICAgIGlmICghc2luZ2xlUHJvZmlsZU1vZGUpIHsK
ICAgICAgICAgdGhpcy5fcmVnaXN0ZXJQcm9maWxlVHlwZShuZXcgV2ViSW5zcGVjdG9yLkNQVVBy
b2ZpbGVUeXBlKCkpOwogICAgICAgICBpZiAoIVdlYkluc3BlY3Rvci5Xb3JrZXJNYW5hZ2VyLmlz
V29ya2VyRnJvbnRlbmQoKSkKICAgICAgICAgICAgIHRoaXMuX3JlZ2lzdGVyUHJvZmlsZVR5cGUo
bmV3IFdlYkluc3BlY3Rvci5DU1NTZWxlY3RvclByb2ZpbGVUeXBlKCkpOwogICAgICAgICBpZiAo
Q2FwYWJpbGl0aWVzLmhlYXBQcm9maWxlclByZXNlbnQpCiAgICAgICAgICAgICB0aGlzLl9yZWdp
c3RlclByb2ZpbGVUeXBlKG5ldyBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90UHJvZmlsZVR5cGUo
KSk7Ci0gICAgICAgIGlmIChXZWJJbnNwZWN0b3IuZXhwZXJpbWVudHNTZXR0aW5ncy5uYXRpdmVN
ZW1vcnlTbmFwc2hvdHMuaXNFbmFibGVkKCkpIHsKKyAgICAgICAgaWYgKCFXZWJJbnNwZWN0b3Iu
V29ya2VyTWFuYWdlci5pc1dvcmtlckZyb250ZW5kKCkgJiYgV2ViSW5zcGVjdG9yLmV4cGVyaW1l
bnRzU2V0dGluZ3MubmF0aXZlTWVtb3J5U25hcHNob3RzLmlzRW5hYmxlZCgpKSB7CiAgICAgICAg
ICAgICB0aGlzLl9yZWdpc3RlclByb2ZpbGVUeXBlKG5ldyBXZWJJbnNwZWN0b3IuTmF0aXZlU25h
cHNob3RQcm9maWxlVHlwZSgpKTsKICAgICAgICAgICAgIHRoaXMuX3JlZ2lzdGVyUHJvZmlsZVR5
cGUobmV3IFdlYkluc3BlY3Rvci5OYXRpdmVNZW1vcnlQcm9maWxlVHlwZSgpKTsKICAgICAgICAg
fQotICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLmV4cGVyaW1lbnRzU2V0dGluZ3MuY2FudmFzSW5z
cGVjdGlvbi5pc0VuYWJsZWQoKSkKKyAgICAgICAgaWYgKCFXZWJJbnNwZWN0b3IuV29ya2VyTWFu
YWdlci5pc1dvcmtlckZyb250ZW5kKCkgJiYgV2ViSW5zcGVjdG9yLmV4cGVyaW1lbnRzU2V0dGlu
Z3MuY2FudmFzSW5zcGVjdGlvbi5pc0VuYWJsZWQoKSkKICAgICAgICAgICAgIHRoaXMuX3JlZ2lz
dGVyUHJvZmlsZVR5cGUobmV3IFdlYkluc3BlY3Rvci5DYW52YXNQcm9maWxlVHlwZSgpKTsKICAg
ICB9CiAKKyAgICB0aGlzLl9yZXNldCgpOworCiAgICAgdGhpcy5fY3JlYXRlRmlsZVNlbGVjdG9y
RWxlbWVudCgpOwogICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjb250ZXh0bWVu
dSIsIHRoaXMuX2hhbmRsZUNvbnRleHRNZW51RXZlbnQuYmluZCh0aGlzKSwgdHJ1ZSk7CiAKQEAg
LTQyNSw2ICs0MzIsMTQgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlID0g
ewogICAgIH0sCiAKICAgICAvKioKKyAgICAgKiBAcmV0dXJuIHshV2ViSW5zcGVjdG9yLlByb2Zp
bGVMYXVuY2hlclZpZXd9CisgICAgICovCisgICAgX2NyZWF0ZUxhdW5jaGVyVmlldzogZnVuY3Rp
b24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuUHJvZmlsZUxhdW5j
aGVyVmlldyh0aGlzKTsKKyAgICB9LAorCisgICAgLyoqCiAgICAgICogQHBhcmFtIHshRmlsZX0g
ZmlsZQogICAgICAqLwogICAgIF9sb2FkRnJvbUZpbGU6IGZ1bmN0aW9uKGZpbGUpCkBAIC0xMzI5
LDcgKzEzNDQsNyBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZXNTaWRlYmFyVHJlZUVsZW1lbnQgPSBm
dW5jdGlvbihwYW5lbCkKICAgICB0aGlzLl9wYW5lbCA9IHBhbmVsOwogICAgIHRoaXMuc21hbGwg
PSBmYWxzZTsKIAotICAgIFdlYkluc3BlY3Rvci5TaWRlYmFyVHJlZUVsZW1lbnQuY2FsbCh0aGlz
LCAicHJvZmlsZS1sYXVuY2hlci12aWV3LXRyZWUtaXRlbSIsIFdlYkluc3BlY3Rvci5VSVN0cmlu
ZygiUHJvZmlsZXMiKSwgIiIsIG51bGwsIGZhbHNlKTsKKyAgICBXZWJJbnNwZWN0b3IuU2lkZWJh
clRyZWVFbGVtZW50LmNhbGwodGhpcywgInByb2ZpbGUtbGF1bmNoZXItdmlldy10cmVlLWl0ZW0i
LCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIk5ldyBQcm9maWxlIiksICIiLCBudWxsLCBmYWxzZSk7
CiB9CiAKIFdlYkluc3BlY3Rvci5Qcm9maWxlc1NpZGViYXJUcmVlRWxlbWVudC5wcm90b3R5cGUg
PSB7CkBAIC0xMzUzLDggKzEzNjgsNyBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZXNTaWRlYmFyVHJl
ZUVsZW1lbnQucHJvdG90eXBlID0gewogICovCiBXZWJJbnNwZWN0b3IuQ1BVUHJvZmlsZXJQYW5l
bCA9IGZ1bmN0aW9uKCkKIHsKLSAgICBXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5jYWxsKHRo
aXMsICJjcHUtcHJvZmlsZXIiKTsKLSAgICB0aGlzLl9yZWdpc3RlclByb2ZpbGVUeXBlKG5ldyBX
ZWJJbnNwZWN0b3IuQ1BVUHJvZmlsZVR5cGUoKSk7CisgICAgV2ViSW5zcGVjdG9yLlByb2ZpbGVz
UGFuZWwuY2FsbCh0aGlzLCAiY3B1LXByb2ZpbGVyIiwgbmV3IFdlYkluc3BlY3Rvci5DUFVQcm9m
aWxlVHlwZSgpKTsKIH0KIAogV2ViSW5zcGVjdG9yLkNQVVByb2ZpbGVyUGFuZWwucHJvdG90eXBl
ID0gewpAQCAtMTM2OCw4ICsxMzgyLDcgQEAgV2ViSW5zcGVjdG9yLkNQVVByb2ZpbGVyUGFuZWwu
cHJvdG90eXBlID0gewogICovCiBXZWJJbnNwZWN0b3IuQ1NTU2VsZWN0b3JQcm9maWxlclBhbmVs
ID0gZnVuY3Rpb24oKQogewotICAgIFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLmNhbGwodGhp
cywgImNzcy1wcm9maWxlciIpOwotICAgIHRoaXMuX3JlZ2lzdGVyUHJvZmlsZVR5cGUobmV3IFdl
Ykluc3BlY3Rvci5DU1NTZWxlY3RvclByb2ZpbGVUeXBlKCkpOworICAgIFdlYkluc3BlY3Rvci5Q
cm9maWxlc1BhbmVsLmNhbGwodGhpcywgImNzcy1wcm9maWxlciIsIG5ldyBXZWJJbnNwZWN0b3Iu
Q1NTU2VsZWN0b3JQcm9maWxlVHlwZSgpKTsKIH0KIAogV2ViSW5zcGVjdG9yLkNTU1NlbGVjdG9y
UHJvZmlsZXJQYW5lbC5wcm90b3R5cGUgPSB7CkBAIC0xMzgzLDggKzEzOTYsNyBAQCBXZWJJbnNw
ZWN0b3IuQ1NTU2VsZWN0b3JQcm9maWxlclBhbmVsLnByb3RvdHlwZSA9IHsKICAqLwogV2ViSW5z
cGVjdG9yLkhlYXBQcm9maWxlclBhbmVsID0gZnVuY3Rpb24oKQogewotICAgIFdlYkluc3BlY3Rv
ci5Qcm9maWxlc1BhbmVsLmNhbGwodGhpcywgImhlYXAtcHJvZmlsZXIiKTsKLSAgICB0aGlzLl9y
ZWdpc3RlclByb2ZpbGVUeXBlKG5ldyBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90UHJvZmlsZVR5
cGUoKSk7CisgICAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwuY2FsbCh0aGlzLCAiaGVhcC1w
cm9maWxlciIsIG5ldyBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90UHJvZmlsZVR5cGUoKSk7CiB9
CiAKIFdlYkluc3BlY3Rvci5IZWFwUHJvZmlsZXJQYW5lbC5wcm90b3R5cGUgPSB7CkBAIC0xMzk4
LDggKzE0MTAsNyBAQCBXZWJJbnNwZWN0b3IuSGVhcFByb2ZpbGVyUGFuZWwucHJvdG90eXBlID0g
ewogICovCiBXZWJJbnNwZWN0b3IuQ2FudmFzUHJvZmlsZXJQYW5lbCA9IGZ1bmN0aW9uKCkKIHsK
LSAgICBXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5jYWxsKHRoaXMsICJjYW52YXMtcHJvZmls
ZXIiKTsKLSAgICB0aGlzLl9yZWdpc3RlclByb2ZpbGVUeXBlKG5ldyBXZWJJbnNwZWN0b3IuQ2Fu
dmFzUHJvZmlsZVR5cGUoKSk7CisgICAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwuY2FsbCh0
aGlzLCAiY2FudmFzLXByb2ZpbGVyIiwgbmV3IFdlYkluc3BlY3Rvci5DYW52YXNQcm9maWxlVHlw
ZSgpKTsKIH0KIAogV2ViSW5zcGVjdG9yLkNhbnZhc1Byb2ZpbGVyUGFuZWwucHJvdG90eXBlID0g
ewpAQCAtMTQxMywxMSArMTQyNCwxOSBAQCBXZWJJbnNwZWN0b3IuQ2FudmFzUHJvZmlsZXJQYW5l
bC5wcm90b3R5cGUgPSB7CiAgKi8KIFdlYkluc3BlY3Rvci5NZW1vcnlDaGFydFByb2ZpbGVyUGFu
ZWwgPSBmdW5jdGlvbigpCiB7Ci0gICAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwuY2FsbCh0
aGlzLCAibWVtb3J5LWNoYXJ0LXByb2ZpbGVyIik7Ci0gICAgdGhpcy5fcmVnaXN0ZXJQcm9maWxl
VHlwZShuZXcgV2ViSW5zcGVjdG9yLk5hdGl2ZU1lbW9yeVByb2ZpbGVUeXBlKCkpOworICAgIFdl
Ykluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLmNhbGwodGhpcywgIm1lbW9yeS1jaGFydC1wcm9maWxl
ciIsIG5ldyBXZWJJbnNwZWN0b3IuTmF0aXZlTWVtb3J5UHJvZmlsZVR5cGUoKSk7CiB9CiAKIFdl
Ykluc3BlY3Rvci5NZW1vcnlDaGFydFByb2ZpbGVyUGFuZWwucHJvdG90eXBlID0geworICAgIC8q
KgorICAgICAqIEBvdmVycmlkZQorICAgICAqIEByZXR1cm4geyFXZWJJbnNwZWN0b3IuUHJvZmls
ZUxhdW5jaGVyVmlld30KKyAgICAgKi8KKyAgICBfY3JlYXRlTGF1bmNoZXJWaWV3OiBmdW5jdGlv
bigpCisgICAgeworICAgICAgICByZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5OYXRpdmVQcm9maWxl
TGF1bmNoZXJWaWV3KHRoaXMpOworICAgIH0sCisKICAgICBfX3Byb3RvX186IFdlYkluc3BlY3Rv
ci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZQogfQogCkBAIC0xNDI4LDggKzE0NDcsNyBAQCBXZWJJ
bnNwZWN0b3IuTWVtb3J5Q2hhcnRQcm9maWxlclBhbmVsLnByb3RvdHlwZSA9IHsKICAqLwogV2Vi
SW5zcGVjdG9yLk5hdGl2ZU1lbW9yeVByb2ZpbGVyUGFuZWwgPSBmdW5jdGlvbigpCiB7Ci0gICAg
V2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwuY2FsbCh0aGlzLCAibWVtb3J5LXNuYXBzaG90LXBy
b2ZpbGVyIik7Ci0gICAgdGhpcy5fcmVnaXN0ZXJQcm9maWxlVHlwZShuZXcgV2ViSW5zcGVjdG9y
Lk5hdGl2ZVNuYXBzaG90UHJvZmlsZVR5cGUoKSk7CisgICAgV2ViSW5zcGVjdG9yLlByb2ZpbGVz
UGFuZWwuY2FsbCh0aGlzLCAibWVtb3J5LXNuYXBzaG90LXByb2ZpbGVyIiwgbmV3IFdlYkluc3Bl
Y3Rvci5OYXRpdmVTbmFwc2hvdFByb2ZpbGVUeXBlKCkpOwogfQogCiBXZWJJbnNwZWN0b3IuTmF0
aXZlTWVtb3J5UHJvZmlsZXJQYW5lbC5wcm90b3R5cGUgPSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL3Byb2ZpbGVzUGFuZWwuY3NzIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9wcm9maWxlc1BhbmVsLmNzcwppbmRleCAyOTZkYWZl
N2E0MTk0YzQ0ZjEyMzQ4YTA1ZDNjOGMyOTU0YzUyM2JmLi43YTFkYjFjZTNhNGIzZTNhMmIyMDA3
N2Y3YjJlMGZmOTgwZTk2Mjc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL3Byb2ZpbGVzUGFuZWwuY3NzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvcHJvZmlsZXNQYW5lbC5jc3MKQEAgLTE4MCw3ICsxODAsNyBAQAogCiAucGFu
ZWwtZW5hYmxlci12aWV3LnByb2ZpbGUtbGF1bmNoZXItdmlldyBidXR0b246bm90KC5zdGF0dXMt
YmFyLWl0ZW0pIHsKICAgICBjb2xvcjogcmdiKDYsIDYsIDYpOwotICAgIG1hcmdpbjogMTZweCAw
OworICAgIG1hcmdpbjogMCAwIDE2cHg7CiB9CiAKIC5wcm9maWxlLWxhdW5jaGVyLXZpZXctY29u
dGVudCBidXR0b24ucnVubmluZzpub3QoLnN0YXR1cy1iYXItaXRlbSkgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191260</attachid>
            <date>2013-03-04 09:30:04 -0800</date>
            <delta_ts>2013-03-05 01:26:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-111298-20130304212611.patch</filename>
            <type>text/plain</type>
            <size>21674</size>
            <attacher name="Alexei Filippov">alph</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0NjA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDkwMzkxMjQxNWM5ZjMw
YzhjMzA4YTkwMDcyZWVjNGNlZWE1MDU3MC4uNDFmNWU4ZDk2NDMzODIwMWY2ODc3ZjFiNTAwYmJh
NzA5MTYxOWQzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDEzLTAzLTA0ICBBbGV4
ZWkgRmlsaXBwb3YgIDxhbHBoQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9y
OiBhbGxvdyBlYWNoIHByb2ZpbGVyIHBhbmVsIHRvIGhhdmUgb3duIGxhbmRpbmcgcGFnZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTExMjk4CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVmYWN0b3IgcHJv
ZmlsZXIgbGFuZGluZyBwYWdlIHRvIGFsbG93IGRpZmZlcmVudCBwcm9maWxlciBwYW5lbHMgdG8g
aGF2ZSBvd24gbGFuZGluZyBwYWdlcy4KKyAgICAgICAgICAtIE11bHRpUHJvZmlsZUxhdW5jaGVy
VmlldyBpcyBpbmhlcml0ZWQgZnJvbSBQcm9maWxlTGF1bmNoZXJWaWV3CisgICAgICAgICAgLSBO
YXRpdmUgbWVtb3J5IGRpc3RyaWJ1dGlvbiBwcm9maWxlciBoYXMgZ290IGEgY3VzdG9tIHBhZ2Uu
CisgICAgICAgICAgLSAiUHJvaWxlcyIgaXRlbSBoYXMgYmVlbiByZW5hbWVkIHRvICJOZXcgUHJv
ZmlsZSIKKworICAgICAgICBObyBuZXcgdGVzdHM6IGNvZGUgcmVmYWN0b3JpbmcuCisKKyAgICAg
ICAgKiBFbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanM6CisgICAgICAgICogaW5zcGVj
dG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3RWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkhlYXBTbmFwc2hvdFZpZXcucHJvdG90eXBlLmdldCBwcm9maWxlKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5IZWFwU25hcHNob3RWaWV3LnByb3RvdHlwZS5nZXQgYmFzZVByb2ZpbGUpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdFZpZXcucHJvdG90eXBlLl9wcm9maWxlcyk6
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9OYXRpdmVNZW1vcnlTbmFwc2hvdFZpZXcu
anM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlTGF1bmNoZXJWaWV3Lmpz
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVMYXVuY2hlclZpZXcpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlByb2ZpbGVMYXVuY2hlclZpZXcucHJvdG90eXBlLmFkZFByb2ZpbGVUeXBl
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlTGF1bmNoZXJWaWV3LnByb3RvdHlwZS5f
Y29udHJvbEJ1dHRvbkNsaWNrZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVMYXVu
Y2hlclZpZXcucHJvdG90eXBlLl91cGRhdGVDb250cm9scyk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuUHJvZmlsZUxhdW5jaGVyVmlldy5wcm90b3R5cGUucHJvZmlsZVN0YXJ0ZWQpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVMYXVuY2hlclZpZXcucHJvdG90eXBlLnByb2ZpbGVGaW5p
c2hlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTXVsdGlQcm9maWxlTGF1bmNoZXJWaWV3KToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5NdWx0aVByb2ZpbGVMYXVuY2hlclZpZXcucHJvdG90eXBl
LmFkZFByb2ZpbGVUeXBlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5NdWx0aVByb2ZpbGVMYXVu
Y2hlclZpZXcucHJvdG90eXBlLl9wcm9maWxlVHlwZUNoYW5nZWQpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLk5hdGl2ZVByb2ZpbGVMYXVuY2hlclZpZXcpOgorICAgICAgICAqIGluc3BlY3Rvci9m
cm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxl
c1BhbmVsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZS5f
Y3JlYXRlTGF1bmNoZXJWaWV3KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlc1NpZGVi
YXJUcmVlRWxlbWVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1BVUHJvZmlsZXJQYW5lbCk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTU2VsZWN0b3JQcm9maWxlclBhbmVsKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5IZWFwUHJvZmlsZXJQYW5lbCk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuQ2FudmFzUHJvZmlsZXJQYW5lbCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTWVtb3J5Q2hh
cnRQcm9maWxlclBhbmVsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5NZW1vcnlDaGFydFByb2Zp
bGVyUGFuZWwucHJvdG90eXBlLl9jcmVhdGVMYXVuY2hlclZpZXcpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLk5hdGl2ZU1lbW9yeVByb2ZpbGVyUGFuZWwpOgorICAgICAgICAqIGluc3BlY3Rvci9m
cm9udC1lbmQvcHJvZmlsZXNQYW5lbC5jc3M6CisgICAgICAgICgucGFuZWwtZW5hYmxlci12aWV3
LnByb2ZpbGUtbGF1bmNoZXItdmlldyBidXR0b246bm90KC5zdGF0dXMtYmFyLWl0ZW0pKToKKwog
MjAxMy0wMy0wNCAgQW5kcmV5IEx1c2huaWtvdiAgPGx1c2huaWtvdkBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgV2ViIEluc3BlY3RvcjogYWRkIHJ1bnRpbWUgZmxhZyB0byBkZXRlcm1pbmUgaWYg
aW5zcGVjdG9yJ3Mgc291cmNlIGZpbGVzIHdlcmUgZmxhdHRlbmVkLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzIGIvU291cmNlL1dl
YkNvcmUvRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCmluZGV4IGJjNTFkOGY0ZjJh
NGM3ZjU3NWUyYmFhMGMyYzVhMzk2NGQ3ZmJmNmYuLmZhNTY2NDYyZGE2MGQzMzJhZWZlMGVhZGRk
ZDI3ZWYxYjhiZjY3MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0VuZ2xpc2gubHByb2ov
bG9jYWxpemVkU3RyaW5ncy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9FbmdsaXNoLmxwcm9qL2xv
Y2FsaXplZFN0cmluZ3MuanMKQEAgLTI2NCw2ICsyNjQsNyBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJN
ZW1vcnkiXSA9ICJNZW1vcnkiOwogbG9jYWxpemVkU3RyaW5nc1siTWV0cmljcyJdID0gIk1ldHJp
Y3MiOwogbG9jYWxpemVkU3RyaW5nc1siTmFtZSJdID0gIk5hbWUiOwogbG9jYWxpemVkU3RyaW5n
c1siTmF2aWdhdGUgZWxlbWVudHMiXSA9ICJOYXZpZ2F0ZSBlbGVtZW50cyI7Citsb2NhbGl6ZWRT
dHJpbmdzWyJOZXcgUHJvZmlsZSJdID0gIk5ldyBQcm9maWxlIjsKIGxvY2FsaXplZFN0cmluZ3Nb
Ik5ldyBTdHlsZSBSdWxlIl0gPSAiTmV3IFN0eWxlIFJ1bGUiOwogbG9jYWxpemVkU3RyaW5nc1si
TmV4dC9wcmV2aW91cyBjYWxsIGZyYW1lIl0gPSAiTmV4dC9wcmV2aW91cyBjYWxsIGZyYW1lIjsK
IGxvY2FsaXplZFN0cmluZ3NbIk5leHQvcHJldmlvdXMgY29tbWFuZCJdID0gIk5leHQvcHJldmlv
dXMgY29tbWFuZCI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0hlYXBTbmFwc2hvdFZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0hlYXBTbmFwc2hvdFZpZXcuanMKaW5kZXggYTVhMDAwOTAwNTA0OTlhYTFmM2I0MjkxYWJk
YTQ0ZTM0MzUzMDBmOS4uZjE0ZGNhM2M5OTQwZWE5OWUzZjc1ZWI5ZDY0NTYyYmM4NGNmY2E3MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNo
b3RWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSGVhcFNu
YXBzaG90Vmlldy5qcwpAQCAtMzEsOCArMzEsOCBAQAogLyoqCiAgKiBAY29uc3RydWN0b3IKICAq
IEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuVmlld30KLSAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlBy
b2ZpbGVzUGFuZWx9IHBhcmVudAotICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuSGVhcFByb2ZpbGVI
ZWFkZXJ9IHByb2ZpbGUKKyAqIEBwYXJhbSB7IVdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsfSBw
YXJlbnQKKyAqIEBwYXJhbSB7IVdlYkluc3BlY3Rvci5IZWFwUHJvZmlsZUhlYWRlcn0gcHJvZmls
ZQogICovCiBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90VmlldyA9IGZ1bmN0aW9uKHBhcmVudCwg
cHJvZmlsZSkKIHsKQEAgLTE4OCwxMiArMTg4LDEyIEBAIFdlYkluc3BlY3Rvci5IZWFwU25hcHNo
b3RWaWV3LnByb3RvdHlwZSA9IHsKIAogICAgIGdldCBwcm9maWxlKCkKICAgICB7Ci0gICAgICAg
IHJldHVybiB0aGlzLnBhcmVudC5nZXRQcm9maWxlKFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RQ
cm9maWxlVHlwZS5UeXBlSWQsIHRoaXMuX3Byb2ZpbGVVaWQpOworICAgICAgICByZXR1cm4gdGhp
cy5wYXJlbnQuZ2V0UHJvZmlsZSh0aGlzLl9wcm9maWxlVHlwZUlkLCB0aGlzLl9wcm9maWxlVWlk
KTsKICAgICB9LAogCiAgICAgZ2V0IGJhc2VQcm9maWxlKCkKICAgICB7Ci0gICAgICAgIHJldHVy
biB0aGlzLnBhcmVudC5nZXRQcm9maWxlKFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RQcm9maWxl
VHlwZS5UeXBlSWQsIHRoaXMuX2Jhc2VQcm9maWxlVWlkKTsKKyAgICAgICAgcmV0dXJuIHRoaXMu
cGFyZW50LmdldFByb2ZpbGUodGhpcy5fcHJvZmlsZVR5cGVJZCwgdGhpcy5fYmFzZVByb2ZpbGVV
aWQpOwogICAgIH0sCiAKICAgICB3YXNTaG93bjogZnVuY3Rpb24oKQpAQCAtNDI3LDcgKzQyNyw3
IEBAIFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgKi8K
ICAgICBfcHJvZmlsZXM6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLnBh
cmVudC5nZXRQcm9maWxlVHlwZShXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90UHJvZmlsZVR5cGUu
VHlwZUlkKS5nZXRQcm9maWxlcygpOworICAgICAgICByZXR1cm4gdGhpcy5wYXJlbnQuZ2V0UHJv
ZmlsZVR5cGUodGhpcy5fcHJvZmlsZVR5cGVJZCkuZ2V0UHJvZmlsZXMoKTsKICAgICB9LAogCiAg
ICAgLyoqCkBAIC05MjgsNyArOTI4LDcgQEAgV2ViSW5zcGVjdG9yLkhlYXBQcm9maWxlSGVhZGVy
LnByb3RvdHlwZSA9IHsKIAogICAgIC8qKgogICAgICAqIEBvdmVycmlkZQotICAgICAqIEBwYXJh
bSB7V2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWx9IHByb2ZpbGVzUGFuZWwKKyAgICAgKiBAcGFy
YW0geyFXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbH0gcHJvZmlsZXNQYW5lbAogICAgICAqLwog
ICAgIGNyZWF0ZVZpZXc6IGZ1bmN0aW9uKHByb2ZpbGVzUGFuZWwpCiAgICAgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OYXRpdmVNZW1vcnlTbmFwc2hv
dFZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05hdGl2ZU1lbW9y
eVNuYXBzaG90Vmlldy5qcwppbmRleCBlMjEzZTJlMWMyYmE2ODFmYjllYzVhMjZiMzMyMTg1YTNh
NDhhYTBjLi4xMTVlNmQ3ZjUyOWQyYzk4ZDU1OWMxYjAxOWE3OWYyNThmMDRmNzkyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05hdGl2ZU1lbW9yeVNuYXBz
aG90Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05hdGl2
ZU1lbW9yeVNuYXBzaG90Vmlldy5qcwpAQCAtMzgyLDcgKzM4Miw3IEBAIFdlYkluc3BlY3Rvci5O
YXRpdmVTbmFwc2hvdFByb2ZpbGVIZWFkZXIgPSBmdW5jdGlvbih0eXBlLCB0aXRsZSwgdWlkKQog
V2ViSW5zcGVjdG9yLk5hdGl2ZVNuYXBzaG90UHJvZmlsZUhlYWRlci5wcm90b3R5cGUgPSB7CiAg
ICAgLyoqCiAgICAgICogQG92ZXJyaWRlCi0gICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuUHJv
ZmlsZXNQYW5lbH0gcHJvZmlsZXNQYW5lbAorICAgICAqIEBwYXJhbSB7IVdlYkluc3BlY3Rvci5Q
cm9maWxlc1BhbmVsfSBwcm9maWxlc1BhbmVsCiAgICAgICovCiAgICAgY3JlYXRlVmlldzogZnVu
Y3Rpb24ocHJvZmlsZXNQYW5lbCkKICAgICB7CkBAIC00MTMsOCArNDEzLDggQEAgV2ViSW5zcGVj
dG9yLk5hdGl2ZVNuYXBzaG90UHJvZmlsZUhlYWRlci5wcm90b3R5cGUgPSB7CiAvKioKICAqIEBj
b25zdHJ1Y3RvcgogICogQGV4dGVuZHMge1dlYkluc3BlY3Rvci5IZWFwU25hcHNob3RWaWV3fQot
ICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbH0gcGFyZW50Ci0gKiBAcGFyYW0g
e1dlYkluc3BlY3Rvci5OYXRpdmVTbmFwc2hvdFByb2ZpbGVIZWFkZXJ9IHByb2ZpbGUKKyAqIEBw
YXJhbSB7IVdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsfSBwYXJlbnQKKyAqIEBwYXJhbSB7IVdl
Ykluc3BlY3Rvci5OYXRpdmVTbmFwc2hvdFByb2ZpbGVIZWFkZXJ9IHByb2ZpbGUKICAqLwogV2Vi
SW5zcGVjdG9yLk5hdGl2ZUhlYXBTbmFwc2hvdFZpZXcgPSBmdW5jdGlvbihwYXJlbnQsIHByb2Zp
bGUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1By
b2ZpbGVMYXVuY2hlclZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1Byb2ZpbGVMYXVuY2hlclZpZXcuanMKaW5kZXggZWUzMjJiNTk5NmRkZjFlNmM0YzJmNzQzNjYx
NWY3YmM1MWI3YWRhYi4uMmMzZjcyZTFjODJkNjFkMGM2MDc4ZDkwZjY0ZDc4YTMwYjhjMTNiNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlTGF1
bmNoZXJWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJv
ZmlsZUxhdW5jaGVyVmlldy5qcwpAQCAtMzIsNzYgKzMyLDEyMSBAQAogICogQGNvbnN0cnVjdG9y
CiAgKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLlZpZXd9CiAgKiBAcGFyYW0geyFXZWJJbnNwZWN0
b3IuUHJvZmlsZXNQYW5lbH0gcHJvZmlsZXNQYW5lbAotICogQHBhcmFtIHtib29sZWFufSBzaW5n
bGVQcm9maWxlTW9kZQogICovCi1XZWJJbnNwZWN0b3IuUHJvZmlsZUxhdW5jaGVyVmlldyA9IGZ1
bmN0aW9uKHByb2ZpbGVzUGFuZWwsIHNpbmdsZVByb2ZpbGVNb2RlKQorV2ViSW5zcGVjdG9yLlBy
b2ZpbGVMYXVuY2hlclZpZXcgPSBmdW5jdGlvbihwcm9maWxlc1BhbmVsKQogewogICAgIFdlYklu
c3BlY3Rvci5WaWV3LmNhbGwodGhpcyk7CiAKICAgICB0aGlzLl9wYW5lbCA9IHByb2ZpbGVzUGFu
ZWw7Ci0gICAgdGhpcy5fc2luZ2xlUHJvZmlsZU1vZGUgPSBzaW5nbGVQcm9maWxlTW9kZTsKICAg
ICB0aGlzLl9wcm9maWxlUnVubmluZyA9IGZhbHNlOwogCiAgICAgdGhpcy5lbGVtZW50LmFkZFN0
eWxlQ2xhc3MoInByb2ZpbGUtbGF1bmNoZXItdmlldyIpOwogICAgIHRoaXMuZWxlbWVudC5hZGRT
dHlsZUNsYXNzKCJwYW5lbC1lbmFibGVyLXZpZXciKTsKIAogICAgIHRoaXMuX2NvbnRlbnRFbGVt
ZW50ID0gdGhpcy5lbGVtZW50LmNyZWF0ZUNoaWxkKCJkaXYiLCAicHJvZmlsZS1sYXVuY2hlci12
aWV3LWNvbnRlbnQiKTsKKyAgICB0aGlzLl9pbm5lckNvbnRlbnRFbGVtZW50ID0gdGhpcy5fY29u
dGVudEVsZW1lbnQuY3JlYXRlQ2hpbGQoImRpdiIpOwogCi0gICAgaWYgKCFzaW5nbGVQcm9maWxl
TW9kZSkgewotICAgICAgICB2YXIgaGVhZGVyID0gdGhpcy5fY29udGVudEVsZW1lbnQuY3JlYXRl
Q2hpbGQoImgxIik7Ci0gICAgICAgIGhlYWRlci50ZXh0Q29udGVudCA9IFdlYkluc3BlY3Rvci5V
SVN0cmluZygiU2VsZWN0IHByb2ZpbGluZyB0eXBlIik7Ci0gICAgfQorICAgIHRoaXMuX2NvbnRy
b2xCdXR0b24gPSB0aGlzLl9jb250ZW50RWxlbWVudC5jcmVhdGVDaGlsZCgiYnV0dG9uIiwgImNv
bnRyb2wtcHJvZmlsaW5nIik7CisgICAgdGhpcy5fY29udHJvbEJ1dHRvbi5hZGRFdmVudExpc3Rl
bmVyKCJjbGljayIsIHRoaXMuX2NvbnRyb2xCdXR0b25DbGlja2VkLmJpbmQodGhpcyksIGZhbHNl
KTsKK30KKworV2ViSW5zcGVjdG9yLlByb2ZpbGVMYXVuY2hlclZpZXcucHJvdG90eXBlID0gewor
ICAgIC8qKgorICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlByb2ZpbGVUeXBlfSBwcm9maWxl
VHlwZQorICAgICAqLworICAgIGFkZFByb2ZpbGVUeXBlOiBmdW5jdGlvbihwcm9maWxlVHlwZSkK
KyAgICB7CisgICAgICAgIHZhciBkZXNjcmlwdGlvbkVsZW1lbnQgPSB0aGlzLl9pbm5lckNvbnRl
bnRFbGVtZW50LmNyZWF0ZUNoaWxkKCJoMSIpOworICAgICAgICBkZXNjcmlwdGlvbkVsZW1lbnQu
dGV4dENvbnRlbnQgPSBwcm9maWxlVHlwZS5kZXNjcmlwdGlvbjsKKyAgICAgICAgdmFyIGRlY29y
YXRpb25FbGVtZW50ID0gcHJvZmlsZVR5cGUuZGVjb3JhdGlvbkVsZW1lbnQoKTsKKyAgICAgICAg
aWYgKGRlY29yYXRpb25FbGVtZW50KQorICAgICAgICAgICAgdGhpcy5faW5uZXJDb250ZW50RWxl
bWVudC5hcHBlbmRDaGlsZChkZWNvcmF0aW9uRWxlbWVudCk7CisgICAgfSwKKworICAgIF9jb250
cm9sQnV0dG9uQ2xpY2tlZDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdGhpcy5fcGFuZWwu
dG9nZ2xlUmVjb3JkQnV0dG9uKCk7CisgICAgfSwKKworICAgIF91cGRhdGVDb250cm9sczogZnVu
Y3Rpb24oKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX2lzUHJvZmlsaW5nKSB7CisgICAgICAg
ICAgICB0aGlzLl9jb250cm9sQnV0dG9uLmFkZFN0eWxlQ2xhc3MoInJ1bm5pbmciKTsKKyAgICAg
ICAgICAgIHRoaXMuX2NvbnRyb2xCdXR0b24udGV4dENvbnRlbnQgPSBXZWJJbnNwZWN0b3IuVUlT
dHJpbmcoIlN0b3AiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRoaXMuX2NvbnRy
b2xCdXR0b24ucmVtb3ZlU3R5bGVDbGFzcygicnVubmluZyIpOworICAgICAgICAgICAgdGhpcy5f
Y29udHJvbEJ1dHRvbi50ZXh0Q29udGVudCA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiU3RhcnQi
KTsKKyAgICAgICAgfQorICAgIH0sCisKKyAgICBwcm9maWxlU3RhcnRlZDogZnVuY3Rpb24oKQor
ICAgIHsKKyAgICAgICAgdGhpcy5faXNQcm9maWxpbmcgPSB0cnVlOworICAgICAgICB0aGlzLl91
cGRhdGVDb250cm9scygpOworICAgIH0sCiAKLSAgICB0aGlzLl9wcm9maWxlVHlwZVNlbGVjdG9y
Rm9ybSA9IHRoaXMuX2NvbnRlbnRFbGVtZW50LmNyZWF0ZUNoaWxkKCJmb3JtIik7CisgICAgcHJv
ZmlsZUZpbmlzaGVkOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB0aGlzLl9pc1Byb2ZpbGlu
ZyA9IGZhbHNlOworICAgICAgICB0aGlzLl91cGRhdGVDb250cm9scygpOworICAgIH0sCisKKyAg
ICBfX3Byb3RvX186IFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZQorfQorCisKKy8qKgorICog
QGNvbnN0cnVjdG9yCisgKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLlByb2ZpbGVMYXVuY2hlclZp
ZXd9CisgKiBAcGFyYW0geyFXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbH0gcHJvZmlsZXNQYW5l
bAorICovCitXZWJJbnNwZWN0b3IuTXVsdGlQcm9maWxlTGF1bmNoZXJWaWV3ID0gZnVuY3Rpb24o
cHJvZmlsZXNQYW5lbCkKK3sKKyAgICBXZWJJbnNwZWN0b3IuUHJvZmlsZUxhdW5jaGVyVmlldy5j
YWxsKHRoaXMsIHByb2ZpbGVzUGFuZWwpOworCisgICAgdmFyIGhlYWRlciA9IHRoaXMuX2lubmVy
Q29udGVudEVsZW1lbnQuY3JlYXRlQ2hpbGQoImgxIik7CisgICAgaGVhZGVyLnRleHRDb250ZW50
ID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTZWxlY3QgcHJvZmlsaW5nIHR5cGUiKTsKKworICAg
IHRoaXMuX3Byb2ZpbGVUeXBlU2VsZWN0b3JGb3JtID0gdGhpcy5faW5uZXJDb250ZW50RWxlbWVu
dC5jcmVhdGVDaGlsZCgiZm9ybSIpOwogCiAgICAgaWYgKFdlYkluc3BlY3Rvci5leHBlcmltZW50
c1NldHRpbmdzLmxpdmVOYXRpdmVNZW1vcnlDaGFydC5pc0VuYWJsZWQoKSkgewotICAgICAgICB0
aGlzLl9uYXRpdmVNZW1vcnlFbGVtZW50ID0gdGhpcy5fY29udGVudEVsZW1lbnQuY3JlYXRlQ2hp
bGQoImRpdiIpOworICAgICAgICB0aGlzLl9uYXRpdmVNZW1vcnlFbGVtZW50ID0gdGhpcy5faW5u
ZXJDb250ZW50RWxlbWVudC5jcmVhdGVDaGlsZCgiZGl2Iik7CiAgICAgICAgIHRoaXMuX25hdGl2
ZU1lbW9yeUxpdmVDaGFydCA9IG5ldyBXZWJJbnNwZWN0b3IuTmF0aXZlTWVtb3J5QmFyQ2hhcnQo
KTsKICAgICAgICAgdGhpcy5fbmF0aXZlTWVtb3J5TGl2ZUNoYXJ0LnNob3codGhpcy5fbmF0aXZl
TWVtb3J5RWxlbWVudCk7CiAgICAgfQogCi0gICAgdGhpcy5fY29udGVudEVsZW1lbnQuY3JlYXRl
Q2hpbGQoImRpdiIsICJmbGV4aWJsZS1zcGFjZSIpOwotCi0gICAgdGhpcy5fY29udHJvbEJ1dHRv
biA9IHRoaXMuX2NvbnRlbnRFbGVtZW50LmNyZWF0ZUNoaWxkKCJidXR0b24iLCAiY29udHJvbC1w
cm9maWxpbmciKTsKLSAgICB0aGlzLl9jb250cm9sQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoImNs
aWNrIiwgdGhpcy5fY29udHJvbEJ1dHRvbkNsaWNrZWQuYmluZCh0aGlzKSwgZmFsc2UpOwotICAg
IHRoaXMuX3VwZGF0ZUNvbnRyb2xzKCk7CisgICAgdGhpcy5faW5uZXJDb250ZW50RWxlbWVudC5j
cmVhdGVDaGlsZCgiZGl2IiwgImZsZXhpYmxlLXNwYWNlIik7CiB9CiAKLVdlYkluc3BlY3Rvci5Q
cm9maWxlTGF1bmNoZXJWaWV3LkV2ZW50VHlwZXMgPSB7CitXZWJJbnNwZWN0b3IuTXVsdGlQcm9m
aWxlTGF1bmNoZXJWaWV3LkV2ZW50VHlwZXMgPSB7CiAgICAgUHJvZmlsZVR5cGVTZWxlY3RlZDog
InByb2ZpbGUtdHlwZS1zZWxlY3RlZCIKIH0KIAotV2ViSW5zcGVjdG9yLlByb2ZpbGVMYXVuY2hl
clZpZXcucHJvdG90eXBlID0geworV2ViSW5zcGVjdG9yLk11bHRpUHJvZmlsZUxhdW5jaGVyVmll
dy5wcm90b3R5cGUgPSB7CiAgICAgLyoqCisgICAgICogQG92ZXJyaWRlCiAgICAgICogQHBhcmFt
IHtXZWJJbnNwZWN0b3IuUHJvZmlsZVR5cGV9IHByb2ZpbGVUeXBlCiAgICAgICovCiAgICAgYWRk
UHJvZmlsZVR5cGU6IGZ1bmN0aW9uKHByb2ZpbGVUeXBlKQogICAgIHsKICAgICAgICAgdmFyIGNo
ZWNrZWQgPSAhdGhpcy5fcHJvZmlsZVR5cGVTZWxlY3RvckZvcm0uY2hpbGRyZW4ubGVuZ3RoOwot
ICAgICAgICB2YXIgbGFiZWxFbGVtZW50OwotICAgICAgICBpZiAodGhpcy5fc2luZ2xlUHJvZmls
ZU1vZGUpCi0gICAgICAgICAgICBsYWJlbEVsZW1lbnQgPSB0aGlzLl9wcm9maWxlVHlwZVNlbGVj
dG9yRm9ybS5jcmVhdGVDaGlsZCgiaDEiKTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBs
YWJlbEVsZW1lbnQgPSB0aGlzLl9wcm9maWxlVHlwZVNlbGVjdG9yRm9ybS5jcmVhdGVDaGlsZCgi
bGFiZWwiKTsKLSAgICAgICAgICAgIGxhYmVsRWxlbWVudC50ZXh0Q29udGVudCA9IHByb2ZpbGVU
eXBlLm5hbWU7Ci0gICAgICAgICAgICB2YXIgb3B0aW9uRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImlucHV0Iik7Ci0gICAgICAgICAgICBsYWJlbEVsZW1lbnQuaW5zZXJ0QmVmb3Jl
KG9wdGlvbkVsZW1lbnQsIGxhYmVsRWxlbWVudC5maXJzdENoaWxkKTsKLSAgICAgICAgICAgIG9w
dGlvbkVsZW1lbnQudHlwZSA9ICJyYWRpbyI7Ci0gICAgICAgICAgICBvcHRpb25FbGVtZW50Lm5h
bWUgPSAicHJvZmlsZS10eXBlIjsKLSAgICAgICAgICAgIG9wdGlvbkVsZW1lbnQuc3R5bGUuaGlk
ZGVuID0gdHJ1ZTsKLSAgICAgICAgICAgIGlmIChjaGVja2VkKSB7Ci0gICAgICAgICAgICAgICAg
b3B0aW9uRWxlbWVudC5jaGVja2VkID0gY2hlY2tlZDsKLSAgICAgICAgICAgICAgICB0aGlzLmRp
c3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuUHJvZmlsZUxhdW5jaGVyVmlldy5F
dmVudFR5cGVzLlByb2ZpbGVUeXBlU2VsZWN0ZWQsIHByb2ZpbGVUeXBlKTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIG9wdGlvbkVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwg
dGhpcy5fcHJvZmlsZVR5cGVDaGFuZ2VkLmJpbmQodGhpcywgcHJvZmlsZVR5cGUpLCBmYWxzZSk7
CisgICAgICAgIHZhciBsYWJlbEVsZW1lbnQgPSB0aGlzLl9wcm9maWxlVHlwZVNlbGVjdG9yRm9y
bS5jcmVhdGVDaGlsZCgibGFiZWwiKTsKKyAgICAgICAgbGFiZWxFbGVtZW50LnRleHRDb250ZW50
ID0gcHJvZmlsZVR5cGUubmFtZTsKKyAgICAgICAgdmFyIG9wdGlvbkVsZW1lbnQgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpOworICAgICAgICBsYWJlbEVsZW1lbnQuaW5zZXJ0QmVm
b3JlKG9wdGlvbkVsZW1lbnQsIGxhYmVsRWxlbWVudC5maXJzdENoaWxkKTsKKyAgICAgICAgb3B0
aW9uRWxlbWVudC50eXBlID0gInJhZGlvIjsKKyAgICAgICAgb3B0aW9uRWxlbWVudC5uYW1lID0g
InByb2ZpbGUtdHlwZSI7CisgICAgICAgIG9wdGlvbkVsZW1lbnQuc3R5bGUuaGlkZGVuID0gdHJ1
ZTsKKyAgICAgICAgaWYgKGNoZWNrZWQpIHsKKyAgICAgICAgICAgIG9wdGlvbkVsZW1lbnQuY2hl
Y2tlZCA9IGNoZWNrZWQ7CisgICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVy
cyhXZWJJbnNwZWN0b3IuTXVsdGlQcm9maWxlTGF1bmNoZXJWaWV3LkV2ZW50VHlwZXMuUHJvZmls
ZVR5cGVTZWxlY3RlZCwgcHJvZmlsZVR5cGUpOwogICAgICAgICB9CisgICAgICAgIG9wdGlvbkVs
ZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwgdGhpcy5fcHJvZmlsZVR5cGVDaGFuZ2Vk
LmJpbmQodGhpcywgcHJvZmlsZVR5cGUpLCBmYWxzZSk7CiAgICAgICAgIHZhciBkZXNjcmlwdGlv
bkVsZW1lbnQgPSBsYWJlbEVsZW1lbnQuY3JlYXRlQ2hpbGQoInAiKTsKICAgICAgICAgZGVzY3Jp
cHRpb25FbGVtZW50LnRleHRDb250ZW50ID0gcHJvZmlsZVR5cGUuZGVzY3JpcHRpb247CiAgICAg
ICAgIHZhciBkZWNvcmF0aW9uRWxlbWVudCA9IHByb2ZpbGVUeXBlLmRlY29yYXRpb25FbGVtZW50
KCk7CiAgICAgICAgIGlmIChkZWNvcmF0aW9uRWxlbWVudCkKICAgICAgICAgICAgIGxhYmVsRWxl
bWVudC5hcHBlbmRDaGlsZChkZWNvcmF0aW9uRWxlbWVudCk7Ci0gICAgICAgIGlmICh0aGlzLl9z
aW5nbGVQcm9maWxlTW9kZSkKLSAgICAgICAgICAgIHRoaXMuX3Byb2ZpbGVUeXBlQ2hhbmdlZChw
cm9maWxlVHlwZSwgbnVsbCk7CiAgICAgfSwKIAogICAgIF9jb250cm9sQnV0dG9uQ2xpY2tlZDog
ZnVuY3Rpb24oKQpAQCAtMTMwLDcgKzE3NSw3IEBAIFdlYkluc3BlY3Rvci5Qcm9maWxlTGF1bmNo
ZXJWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAgICBfcHJvZmlsZVR5cGVDaGFuZ2VkOiBm
dW5jdGlvbihwcm9maWxlVHlwZSwgZXZlbnQpCiAgICAgewotICAgICAgICB0aGlzLmRpc3BhdGNo
RXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuUHJvZmlsZUxhdW5jaGVyVmlldy5FdmVudFR5
cGVzLlByb2ZpbGVUeXBlU2VsZWN0ZWQsIHByb2ZpbGVUeXBlKTsKKyAgICAgICAgdGhpcy5kaXNw
YXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLk11bHRpUHJvZmlsZUxhdW5jaGVyVmll
dy5FdmVudFR5cGVzLlByb2ZpbGVUeXBlU2VsZWN0ZWQsIHByb2ZpbGVUeXBlKTsKICAgICB9LAog
CiAgICAgcHJvZmlsZVN0YXJ0ZWQ6IGZ1bmN0aW9uKCkKQEAgLTE0NSw1ICsxOTAsMjcgQEAgV2Vi
SW5zcGVjdG9yLlByb2ZpbGVMYXVuY2hlclZpZXcucHJvdG90eXBlID0gewogICAgICAgICB0aGlz
Ll91cGRhdGVDb250cm9scygpOwogICAgIH0sCiAKLSAgICBfX3Byb3RvX186IFdlYkluc3BlY3Rv
ci5WaWV3LnByb3RvdHlwZQorICAgIF9fcHJvdG9fXzogV2ViSW5zcGVjdG9yLlByb2ZpbGVMYXVu
Y2hlclZpZXcucHJvdG90eXBlCit9CisKKworLyoqCisgKiBAY29uc3RydWN0b3IKKyAqIEBleHRl
bmRzIHtXZWJJbnNwZWN0b3IuUHJvZmlsZUxhdW5jaGVyVmlld30KKyAqIEBwYXJhbSB7IVdlYklu
c3BlY3Rvci5Qcm9maWxlc1BhbmVsfSBwcm9maWxlc1BhbmVsCisgKi8KK1dlYkluc3BlY3Rvci5O
YXRpdmVQcm9maWxlTGF1bmNoZXJWaWV3ID0gZnVuY3Rpb24ocHJvZmlsZXNQYW5lbCkKK3sKKyAg
ICBXZWJJbnNwZWN0b3IuUHJvZmlsZUxhdW5jaGVyVmlldy5jYWxsKHRoaXMsIHByb2ZpbGVzUGFu
ZWwpOworCisgICAgaWYgKFdlYkluc3BlY3Rvci5leHBlcmltZW50c1NldHRpbmdzLmxpdmVOYXRp
dmVNZW1vcnlDaGFydC5pc0VuYWJsZWQoKSkgeworICAgICAgICB0aGlzLl9uYXRpdmVNZW1vcnlF
bGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgICAgIHRoaXMuX2Nv
bnRlbnRFbGVtZW50Lmluc2VydEJlZm9yZSh0aGlzLl9uYXRpdmVNZW1vcnlFbGVtZW50LCB0aGlz
Ll9jb250cm9sQnV0dG9uKTsKKyAgICAgICAgdGhpcy5fbmF0aXZlTWVtb3J5TGl2ZUNoYXJ0ID0g
bmV3IFdlYkluc3BlY3Rvci5OYXRpdmVNZW1vcnlCYXJDaGFydCgpOworICAgICAgICB0aGlzLl9u
YXRpdmVNZW1vcnlMaXZlQ2hhcnQuc2hvdyh0aGlzLl9uYXRpdmVNZW1vcnlFbGVtZW50KTsKKyAg
ICB9Cit9CisKK1dlYkluc3BlY3Rvci5OYXRpdmVQcm9maWxlTGF1bmNoZXJWaWV3LnByb3RvdHlw
ZSA9IHsKKyAgICBfX3Byb3RvX186IFdlYkluc3BlY3Rvci5Qcm9maWxlTGF1bmNoZXJWaWV3LnBy
b3RvdHlwZQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9Qcm9maWxlc1BhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Q
cm9maWxlc1BhbmVsLmpzCmluZGV4IDU3ODAwODY1ZDI3NzU5NjU3MmU5OWJkNjM5ZjhhNTFmZjVh
ZjQyNWMuLmY1MTQ2OTY0NTlmNTA5YmMyNWEzYjRmY2Y1OWZmMDlhZGRjOTA1ZDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qcwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWwuanMK
QEAgLTMzMyw4ICszMzMsOSBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZUhlYWRlci5wcm90b3R5cGUg
PSB7CiAgKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLlBhbmVsfQogICogQGltcGxlbWVudHMge1dl
Ykluc3BlY3Rvci5Db250ZXh0TWVudS5Qcm92aWRlcn0KICAqIEBwYXJhbSB7c3RyaW5nPX0gbmFt
ZQorICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuUHJvZmlsZVR5cGU9fSB0eXBlCiAgKi8KLVdlYklu
c3BlY3Rvci5Qcm9maWxlc1BhbmVsID0gZnVuY3Rpb24obmFtZSkKK1dlYkluc3BlY3Rvci5Qcm9m
aWxlc1BhbmVsID0gZnVuY3Rpb24obmFtZSwgdHlwZSkKIHsKICAgICAvLyBJZiB0aGUgbmFtZSBp
cyBub3Qgc3BlY2lmaWVkIHRoZSBQcm9maWxlc1BhbmVsIHdvcmtzIGluIG11bHRpLXByb2ZpbGUg
bW9kZS4KICAgICB2YXIgc2luZ2xlUHJvZmlsZU1vZGUgPSB0eXBlb2YgbmFtZSAhPT0gInVuZGVm
aW5lZCI7CkBAIC0zOTEsMjQgKzM5MiwzMCBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbCA9
IGZ1bmN0aW9uKG5hbWUpCiAKICAgICB0aGlzLl9wcm9maWxlckVuYWJsZWQgPSAhQ2FwYWJpbGl0
aWVzLnByb2ZpbGVyQ2F1c2VzUmVjb21waWxhdGlvbjsKIAotICAgIHRoaXMuX2xhdW5jaGVyVmll
dyA9IG5ldyBXZWJJbnNwZWN0b3IuUHJvZmlsZUxhdW5jaGVyVmlldyh0aGlzLCBzaW5nbGVQcm9m
aWxlTW9kZSk7Ci0gICAgdGhpcy5fbGF1bmNoZXJWaWV3LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5z
cGVjdG9yLlByb2ZpbGVMYXVuY2hlclZpZXcuRXZlbnRUeXBlcy5Qcm9maWxlVHlwZVNlbGVjdGVk
LCB0aGlzLl9vblByb2ZpbGVUeXBlU2VsZWN0ZWQsIHRoaXMpOwotICAgIHRoaXMuX3Jlc2V0KCk7
CisgICAgaWYgKHNpbmdsZVByb2ZpbGVNb2RlKSB7CisgICAgICAgIHRoaXMuX2xhdW5jaGVyVmll
dyA9IHRoaXMuX2NyZWF0ZUxhdW5jaGVyVmlldygpOworICAgICAgICB0aGlzLl9yZWdpc3RlclBy
b2ZpbGVUeXBlKC8qKiBAdHlwZSB7IVdlYkluc3BlY3Rvci5Qcm9maWxlVHlwZX0gKi8gKHR5cGUp
KTsKKyAgICAgICAgdGhpcy5fc2VsZWN0ZWRQcm9maWxlVHlwZSA9IHR5cGU7CisgICAgICAgIHRo
aXMuX3VwZGF0ZVByb2ZpbGVUeXBlU3BlY2lmaWNVSSgpOworICAgIH0gZWxzZSB7CisgICAgICAg
IHRoaXMuX2xhdW5jaGVyVmlldyA9IG5ldyBXZWJJbnNwZWN0b3IuTXVsdGlQcm9maWxlTGF1bmNo
ZXJWaWV3KHRoaXMpOworICAgICAgICB0aGlzLl9sYXVuY2hlclZpZXcuYWRkRXZlbnRMaXN0ZW5l
cihXZWJJbnNwZWN0b3IuTXVsdGlQcm9maWxlTGF1bmNoZXJWaWV3LkV2ZW50VHlwZXMuUHJvZmls
ZVR5cGVTZWxlY3RlZCwgdGhpcy5fb25Qcm9maWxlVHlwZVNlbGVjdGVkLCB0aGlzKTsKIAotICAg
IGlmICghc2luZ2xlUHJvZmlsZU1vZGUpIHsKICAgICAgICAgdGhpcy5fcmVnaXN0ZXJQcm9maWxl
VHlwZShuZXcgV2ViSW5zcGVjdG9yLkNQVVByb2ZpbGVUeXBlKCkpOwogICAgICAgICBpZiAoIVdl
Ykluc3BlY3Rvci5Xb3JrZXJNYW5hZ2VyLmlzV29ya2VyRnJvbnRlbmQoKSkKICAgICAgICAgICAg
IHRoaXMuX3JlZ2lzdGVyUHJvZmlsZVR5cGUobmV3IFdlYkluc3BlY3Rvci5DU1NTZWxlY3RvclBy
b2ZpbGVUeXBlKCkpOwogICAgICAgICBpZiAoQ2FwYWJpbGl0aWVzLmhlYXBQcm9maWxlclByZXNl
bnQpCiAgICAgICAgICAgICB0aGlzLl9yZWdpc3RlclByb2ZpbGVUeXBlKG5ldyBXZWJJbnNwZWN0
b3IuSGVhcFNuYXBzaG90UHJvZmlsZVR5cGUoKSk7Ci0gICAgICAgIGlmIChXZWJJbnNwZWN0b3Iu
ZXhwZXJpbWVudHNTZXR0aW5ncy5uYXRpdmVNZW1vcnlTbmFwc2hvdHMuaXNFbmFibGVkKCkpIHsK
KyAgICAgICAgaWYgKCFXZWJJbnNwZWN0b3IuV29ya2VyTWFuYWdlci5pc1dvcmtlckZyb250ZW5k
KCkgJiYgV2ViSW5zcGVjdG9yLmV4cGVyaW1lbnRzU2V0dGluZ3MubmF0aXZlTWVtb3J5U25hcHNo
b3RzLmlzRW5hYmxlZCgpKSB7CiAgICAgICAgICAgICB0aGlzLl9yZWdpc3RlclByb2ZpbGVUeXBl
KG5ldyBXZWJJbnNwZWN0b3IuTmF0aXZlU25hcHNob3RQcm9maWxlVHlwZSgpKTsKICAgICAgICAg
ICAgIHRoaXMuX3JlZ2lzdGVyUHJvZmlsZVR5cGUobmV3IFdlYkluc3BlY3Rvci5OYXRpdmVNZW1v
cnlQcm9maWxlVHlwZSgpKTsKICAgICAgICAgfQotICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLmV4
cGVyaW1lbnRzU2V0dGluZ3MuY2FudmFzSW5zcGVjdGlvbi5pc0VuYWJsZWQoKSkKKyAgICAgICAg
aWYgKCFXZWJJbnNwZWN0b3IuV29ya2VyTWFuYWdlci5pc1dvcmtlckZyb250ZW5kKCkgJiYgV2Vi
SW5zcGVjdG9yLmV4cGVyaW1lbnRzU2V0dGluZ3MuY2FudmFzSW5zcGVjdGlvbi5pc0VuYWJsZWQo
KSkKICAgICAgICAgICAgIHRoaXMuX3JlZ2lzdGVyUHJvZmlsZVR5cGUobmV3IFdlYkluc3BlY3Rv
ci5DYW52YXNQcm9maWxlVHlwZSgpKTsKICAgICB9CiAKKyAgICB0aGlzLl9yZXNldCgpOworCiAg
ICAgdGhpcy5fY3JlYXRlRmlsZVNlbGVjdG9yRWxlbWVudCgpOwogICAgIHRoaXMuZWxlbWVudC5h
ZGRFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsIHRoaXMuX2hhbmRsZUNvbnRleHRNZW51RXZl
bnQuYmluZCh0aGlzKSwgdHJ1ZSk7CiAKQEAgLTQyNSw2ICs0MzIsMTQgQEAgV2ViSW5zcGVjdG9y
LlByb2ZpbGVzUGFuZWwucHJvdG90eXBlID0gewogICAgIH0sCiAKICAgICAvKioKKyAgICAgKiBA
cmV0dXJuIHshV2ViSW5zcGVjdG9yLlByb2ZpbGVMYXVuY2hlclZpZXd9CisgICAgICovCisgICAg
X2NyZWF0ZUxhdW5jaGVyVmlldzogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG5l
dyBXZWJJbnNwZWN0b3IuUHJvZmlsZUxhdW5jaGVyVmlldyh0aGlzKTsKKyAgICB9LAorCisgICAg
LyoqCiAgICAgICogQHBhcmFtIHshRmlsZX0gZmlsZQogICAgICAqLwogICAgIF9sb2FkRnJvbUZp
bGU6IGZ1bmN0aW9uKGZpbGUpCkBAIC0xMzI5LDcgKzEzNDQsNyBAQCBXZWJJbnNwZWN0b3IuUHJv
ZmlsZXNTaWRlYmFyVHJlZUVsZW1lbnQgPSBmdW5jdGlvbihwYW5lbCkKICAgICB0aGlzLl9wYW5l
bCA9IHBhbmVsOwogICAgIHRoaXMuc21hbGwgPSBmYWxzZTsKIAotICAgIFdlYkluc3BlY3Rvci5T
aWRlYmFyVHJlZUVsZW1lbnQuY2FsbCh0aGlzLCAicHJvZmlsZS1sYXVuY2hlci12aWV3LXRyZWUt
aXRlbSIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiUHJvZmlsZXMiKSwgIiIsIG51bGwsIGZhbHNl
KTsKKyAgICBXZWJJbnNwZWN0b3IuU2lkZWJhclRyZWVFbGVtZW50LmNhbGwodGhpcywgInByb2Zp
bGUtbGF1bmNoZXItdmlldy10cmVlLWl0ZW0iLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIk5ldyBQ
cm9maWxlIiksICIiLCBudWxsLCBmYWxzZSk7CiB9CiAKIFdlYkluc3BlY3Rvci5Qcm9maWxlc1Np
ZGViYXJUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CkBAIC0xMzUzLDggKzEzNjgsNyBAQCBXZWJJ
bnNwZWN0b3IuUHJvZmlsZXNTaWRlYmFyVHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogICovCiBX
ZWJJbnNwZWN0b3IuQ1BVUHJvZmlsZXJQYW5lbCA9IGZ1bmN0aW9uKCkKIHsKLSAgICBXZWJJbnNw
ZWN0b3IuUHJvZmlsZXNQYW5lbC5jYWxsKHRoaXMsICJjcHUtcHJvZmlsZXIiKTsKLSAgICB0aGlz
Ll9yZWdpc3RlclByb2ZpbGVUeXBlKG5ldyBXZWJJbnNwZWN0b3IuQ1BVUHJvZmlsZVR5cGUoKSk7
CisgICAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwuY2FsbCh0aGlzLCAiY3B1LXByb2ZpbGVy
IiwgbmV3IFdlYkluc3BlY3Rvci5DUFVQcm9maWxlVHlwZSgpKTsKIH0KIAogV2ViSW5zcGVjdG9y
LkNQVVByb2ZpbGVyUGFuZWwucHJvdG90eXBlID0gewpAQCAtMTM2OCw4ICsxMzgyLDcgQEAgV2Vi
SW5zcGVjdG9yLkNQVVByb2ZpbGVyUGFuZWwucHJvdG90eXBlID0gewogICovCiBXZWJJbnNwZWN0
b3IuQ1NTU2VsZWN0b3JQcm9maWxlclBhbmVsID0gZnVuY3Rpb24oKQogewotICAgIFdlYkluc3Bl
Y3Rvci5Qcm9maWxlc1BhbmVsLmNhbGwodGhpcywgImNzcy1wcm9maWxlciIpOwotICAgIHRoaXMu
X3JlZ2lzdGVyUHJvZmlsZVR5cGUobmV3IFdlYkluc3BlY3Rvci5DU1NTZWxlY3RvclByb2ZpbGVU
eXBlKCkpOworICAgIFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLmNhbGwodGhpcywgImNzcy1w
cm9maWxlciIsIG5ldyBXZWJJbnNwZWN0b3IuQ1NTU2VsZWN0b3JQcm9maWxlVHlwZSgpKTsKIH0K
IAogV2ViSW5zcGVjdG9yLkNTU1NlbGVjdG9yUHJvZmlsZXJQYW5lbC5wcm90b3R5cGUgPSB7CkBA
IC0xMzgzLDggKzEzOTYsNyBAQCBXZWJJbnNwZWN0b3IuQ1NTU2VsZWN0b3JQcm9maWxlclBhbmVs
LnByb3RvdHlwZSA9IHsKICAqLwogV2ViSW5zcGVjdG9yLkhlYXBQcm9maWxlclBhbmVsID0gZnVu
Y3Rpb24oKQogewotICAgIFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLmNhbGwodGhpcywgImhl
YXAtcHJvZmlsZXIiKTsKLSAgICB0aGlzLl9yZWdpc3RlclByb2ZpbGVUeXBlKG5ldyBXZWJJbnNw
ZWN0b3IuSGVhcFNuYXBzaG90UHJvZmlsZVR5cGUoKSk7CisgICAgV2ViSW5zcGVjdG9yLlByb2Zp
bGVzUGFuZWwuY2FsbCh0aGlzLCAiaGVhcC1wcm9maWxlciIsIG5ldyBXZWJJbnNwZWN0b3IuSGVh
cFNuYXBzaG90UHJvZmlsZVR5cGUoKSk7CiB9CiAKIFdlYkluc3BlY3Rvci5IZWFwUHJvZmlsZXJQ
YW5lbC5wcm90b3R5cGUgPSB7CkBAIC0xMzk4LDggKzE0MTAsNyBAQCBXZWJJbnNwZWN0b3IuSGVh
cFByb2ZpbGVyUGFuZWwucHJvdG90eXBlID0gewogICovCiBXZWJJbnNwZWN0b3IuQ2FudmFzUHJv
ZmlsZXJQYW5lbCA9IGZ1bmN0aW9uKCkKIHsKLSAgICBXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5l
bC5jYWxsKHRoaXMsICJjYW52YXMtcHJvZmlsZXIiKTsKLSAgICB0aGlzLl9yZWdpc3RlclByb2Zp
bGVUeXBlKG5ldyBXZWJJbnNwZWN0b3IuQ2FudmFzUHJvZmlsZVR5cGUoKSk7CisgICAgV2ViSW5z
cGVjdG9yLlByb2ZpbGVzUGFuZWwuY2FsbCh0aGlzLCAiY2FudmFzLXByb2ZpbGVyIiwgbmV3IFdl
Ykluc3BlY3Rvci5DYW52YXNQcm9maWxlVHlwZSgpKTsKIH0KIAogV2ViSW5zcGVjdG9yLkNhbnZh
c1Byb2ZpbGVyUGFuZWwucHJvdG90eXBlID0gewpAQCAtMTQxMywxMSArMTQyNCwxOSBAQCBXZWJJ
bnNwZWN0b3IuQ2FudmFzUHJvZmlsZXJQYW5lbC5wcm90b3R5cGUgPSB7CiAgKi8KIFdlYkluc3Bl
Y3Rvci5NZW1vcnlDaGFydFByb2ZpbGVyUGFuZWwgPSBmdW5jdGlvbigpCiB7Ci0gICAgV2ViSW5z
cGVjdG9yLlByb2ZpbGVzUGFuZWwuY2FsbCh0aGlzLCAibWVtb3J5LWNoYXJ0LXByb2ZpbGVyIik7
Ci0gICAgdGhpcy5fcmVnaXN0ZXJQcm9maWxlVHlwZShuZXcgV2ViSW5zcGVjdG9yLk5hdGl2ZU1l
bW9yeVByb2ZpbGVUeXBlKCkpOworICAgIFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLmNhbGwo
dGhpcywgIm1lbW9yeS1jaGFydC1wcm9maWxlciIsIG5ldyBXZWJJbnNwZWN0b3IuTmF0aXZlTWVt
b3J5UHJvZmlsZVR5cGUoKSk7CiB9CiAKIFdlYkluc3BlY3Rvci5NZW1vcnlDaGFydFByb2ZpbGVy
UGFuZWwucHJvdG90eXBlID0geworICAgIC8qKgorICAgICAqIEBvdmVycmlkZQorICAgICAqIEBy
ZXR1cm4geyFXZWJJbnNwZWN0b3IuUHJvZmlsZUxhdW5jaGVyVmlld30KKyAgICAgKi8KKyAgICBf
Y3JlYXRlTGF1bmNoZXJWaWV3OiBmdW5jdGlvbigpCisgICAgeworICAgICAgICByZXR1cm4gbmV3
IFdlYkluc3BlY3Rvci5OYXRpdmVQcm9maWxlTGF1bmNoZXJWaWV3KHRoaXMpOworICAgIH0sCisK
ICAgICBfX3Byb3RvX186IFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZQogfQog
CkBAIC0xNDI4LDggKzE0NDcsNyBAQCBXZWJJbnNwZWN0b3IuTWVtb3J5Q2hhcnRQcm9maWxlclBh
bmVsLnByb3RvdHlwZSA9IHsKICAqLwogV2ViSW5zcGVjdG9yLk5hdGl2ZU1lbW9yeVByb2ZpbGVy
UGFuZWwgPSBmdW5jdGlvbigpCiB7Ci0gICAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwuY2Fs
bCh0aGlzLCAibWVtb3J5LXNuYXBzaG90LXByb2ZpbGVyIik7Ci0gICAgdGhpcy5fcmVnaXN0ZXJQ
cm9maWxlVHlwZShuZXcgV2ViSW5zcGVjdG9yLk5hdGl2ZVNuYXBzaG90UHJvZmlsZVR5cGUoKSk7
CisgICAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwuY2FsbCh0aGlzLCAibWVtb3J5LXNuYXBz
aG90LXByb2ZpbGVyIiwgbmV3IFdlYkluc3BlY3Rvci5OYXRpdmVTbmFwc2hvdFByb2ZpbGVUeXBl
KCkpOwogfQogCiBXZWJJbnNwZWN0b3IuTmF0aXZlTWVtb3J5UHJvZmlsZXJQYW5lbC5wcm90b3R5
cGUgPSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL3By
b2ZpbGVzUGFuZWwuY3NzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9wcm9m
aWxlc1BhbmVsLmNzcwppbmRleCAyOTZkYWZlN2E0MTk0YzQ0ZjEyMzQ4YTA1ZDNjOGMyOTU0YzUy
M2JmLi43YTFkYjFjZTNhNGIzZTNhMmIyMDA3N2Y3YjJlMGZmOTgwZTk2Mjc4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL3Byb2ZpbGVzUGFuZWwuY3NzCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvcHJvZmlsZXNQYW5lbC5jc3MK
QEAgLTE4MCw3ICsxODAsNyBAQAogCiAucGFuZWwtZW5hYmxlci12aWV3LnByb2ZpbGUtbGF1bmNo
ZXItdmlldyBidXR0b246bm90KC5zdGF0dXMtYmFyLWl0ZW0pIHsKICAgICBjb2xvcjogcmdiKDYs
IDYsIDYpOwotICAgIG1hcmdpbjogMTZweCAwOworICAgIG1hcmdpbjogMCAwIDE2cHg7CiB9CiAK
IC5wcm9maWxlLWxhdW5jaGVyLXZpZXctY29udGVudCBidXR0b24ucnVubmluZzpub3QoLnN0YXR1
cy1iYXItaXRlbSkgewo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191432</attachid>
            <date>2013-03-05 01:26:54 -0800</date>
            <delta_ts>2013-03-05 06:00:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-111298-20130305132300.patch</filename>
            <type>text/plain</type>
            <size>20276</size>
            <attacher name="Alexei Filippov">alph</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0NjA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDkwMzkxMjQxNWM5ZjMw
YzhjMzA4YTkwMDcyZWVjNGNlZWE1MDU3MC4uNGM4NTU5NTJhYTQxMmVhYTNlNGFhNzJjYmQ0ZGUz
MjIzZDhjYWJhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDEzLTAzLTA1ICBBbGV4
ZWkgRmlsaXBwb3YgIDxhbHBoQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9y
OiBhbGxvdyBlYWNoIHByb2ZpbGVyIHBhbmVsIHRvIGhhdmUgb3duIGxhbmRpbmcgcGFnZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTExMjk4CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVmYWN0b3IgcHJv
ZmlsZXIgbGFuZGluZyBwYWdlIHRvIGFsbG93IGRpZmZlcmVudCBwcm9maWxlciBwYW5lbHMgdG8g
aGF2ZSBvd24gbGFuZGluZyBwYWdlcy4KKyAgICAgICAgICAtIE11bHRpUHJvZmlsZUxhdW5jaGVy
VmlldyBpcyBpbmhlcml0ZWQgZnJvbSBQcm9maWxlTGF1bmNoZXJWaWV3CisgICAgICAgICAgLSBO
YXRpdmUgbWVtb3J5IGRpc3RyaWJ1dGlvbiBwcm9maWxlciBoYXMgZ290IGEgY3VzdG9tIHBhZ2Uu
CisKKyAgICAgICAgTm8gbmV3IHRlc3RzOiBjb2RlIHJlZmFjdG9yaW5nLgorCisgICAgICAgICog
aW5zcGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3RWaWV3LmpzOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkhlYXBTbmFwc2hvdFZpZXcucHJvdG90eXBlLmdldCBwcm9maWxlKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RWaWV3LnByb3RvdHlwZS5nZXQgYmFzZVByb2ZpbGUp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdFZpZXcucHJvdG90eXBlLl9wcm9m
aWxlcyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9OYXRpdmVNZW1vcnlTbmFwc2hv
dFZpZXcuanM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlTGF1bmNoZXJW
aWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVMYXVuY2hlclZpZXcpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVMYXVuY2hlclZpZXcucHJvdG90eXBlLmFkZFByb2Zp
bGVUeXBlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlTGF1bmNoZXJWaWV3LnByb3Rv
dHlwZS5fY29udHJvbEJ1dHRvbkNsaWNrZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2Zp
bGVMYXVuY2hlclZpZXcucHJvdG90eXBlLl91cGRhdGVDb250cm9scyk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuUHJvZmlsZUxhdW5jaGVyVmlldy5wcm90b3R5cGUucHJvZmlsZVN0YXJ0ZWQpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVMYXVuY2hlclZpZXcucHJvdG90eXBlLnByb2Zp
bGVGaW5pc2hlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTXVsdGlQcm9maWxlTGF1bmNoZXJW
aWV3KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5NdWx0aVByb2ZpbGVMYXVuY2hlclZpZXcucHJv
dG90eXBlLmFkZFByb2ZpbGVUeXBlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5NdWx0aVByb2Zp
bGVMYXVuY2hlclZpZXcucHJvdG90eXBlLl9wcm9maWxlVHlwZUNoYW5nZWQpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLk5hdGl2ZVByb2ZpbGVMYXVuY2hlclZpZXcpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9mcm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Q
cm9maWxlc1BhbmVsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3Rv
dHlwZS5fY3JlYXRlTGF1bmNoZXJWaWV3KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DUFVQcm9m
aWxlclBhbmVsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NTZWxlY3RvclByb2ZpbGVyUGFu
ZWwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkhlYXBQcm9maWxlclBhbmVsKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5DYW52YXNQcm9maWxlclBhbmVsKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5NZW1vcnlDaGFydFByb2ZpbGVyUGFuZWwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk1lbW9y
eUNoYXJ0UHJvZmlsZXJQYW5lbC5wcm90b3R5cGUuX2NyZWF0ZUxhdW5jaGVyVmlldyk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuTmF0aXZlTWVtb3J5UHJvZmlsZXJQYW5lbCk6CisgICAgICAgICog
aW5zcGVjdG9yL2Zyb250LWVuZC9wcm9maWxlc1BhbmVsLmNzczoKKyAgICAgICAgKC5wYW5lbC1l
bmFibGVyLXZpZXcucHJvZmlsZS1sYXVuY2hlci12aWV3IGJ1dHRvbjpub3QoLnN0YXR1cy1iYXIt
aXRlbSkpOgorCiAyMDEzLTAzLTA0ICBBbmRyZXkgTHVzaG5pa292ICA8bHVzaG5pa292QGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBhZGQgcnVudGltZSBmbGFnIHRvIGRl
dGVybWluZSBpZiBpbnNwZWN0b3IncyBzb3VyY2UgZmlsZXMgd2VyZSBmbGF0dGVuZWQuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0hlYXBTbmFwc2hvdFZp
ZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0hlYXBTbmFwc2hvdFZp
ZXcuanMKaW5kZXggYTVhMDAwOTAwNTA0OTlhYTFmM2I0MjkxYWJkYTQ0ZTM0MzUzMDBmOS4uZjE0
ZGNhM2M5OTQwZWE5OWUzZjc1ZWI5ZDY0NTYyYmM4NGNmY2E3MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3RWaWV3LmpzCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSGVhcFNuYXBzaG90Vmlldy5qcwpAQCAt
MzEsOCArMzEsOCBAQAogLyoqCiAgKiBAY29uc3RydWN0b3IKICAqIEBleHRlbmRzIHtXZWJJbnNw
ZWN0b3IuVmlld30KLSAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWx9IHBhcmVu
dAotICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuSGVhcFByb2ZpbGVIZWFkZXJ9IHByb2ZpbGUKKyAq
IEBwYXJhbSB7IVdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsfSBwYXJlbnQKKyAqIEBwYXJhbSB7
IVdlYkluc3BlY3Rvci5IZWFwUHJvZmlsZUhlYWRlcn0gcHJvZmlsZQogICovCiBXZWJJbnNwZWN0
b3IuSGVhcFNuYXBzaG90VmlldyA9IGZ1bmN0aW9uKHBhcmVudCwgcHJvZmlsZSkKIHsKQEAgLTE4
OCwxMiArMTg4LDEyIEBAIFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RWaWV3LnByb3RvdHlwZSA9
IHsKIAogICAgIGdldCBwcm9maWxlKCkKICAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLnBhcmVu
dC5nZXRQcm9maWxlKFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RQcm9maWxlVHlwZS5UeXBlSWQs
IHRoaXMuX3Byb2ZpbGVVaWQpOworICAgICAgICByZXR1cm4gdGhpcy5wYXJlbnQuZ2V0UHJvZmls
ZSh0aGlzLl9wcm9maWxlVHlwZUlkLCB0aGlzLl9wcm9maWxlVWlkKTsKICAgICB9LAogCiAgICAg
Z2V0IGJhc2VQcm9maWxlKCkKICAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLnBhcmVudC5nZXRQ
cm9maWxlKFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RQcm9maWxlVHlwZS5UeXBlSWQsIHRoaXMu
X2Jhc2VQcm9maWxlVWlkKTsKKyAgICAgICAgcmV0dXJuIHRoaXMucGFyZW50LmdldFByb2ZpbGUo
dGhpcy5fcHJvZmlsZVR5cGVJZCwgdGhpcy5fYmFzZVByb2ZpbGVVaWQpOwogICAgIH0sCiAKICAg
ICB3YXNTaG93bjogZnVuY3Rpb24oKQpAQCAtNDI3LDcgKzQyNyw3IEBAIFdlYkluc3BlY3Rvci5I
ZWFwU25hcHNob3RWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAgICBfcHJvZmlsZXM6IGZ1
bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLnBhcmVudC5nZXRQcm9maWxlVHlw
ZShXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90UHJvZmlsZVR5cGUuVHlwZUlkKS5nZXRQcm9maWxl
cygpOworICAgICAgICByZXR1cm4gdGhpcy5wYXJlbnQuZ2V0UHJvZmlsZVR5cGUodGhpcy5fcHJv
ZmlsZVR5cGVJZCkuZ2V0UHJvZmlsZXMoKTsKICAgICB9LAogCiAgICAgLyoqCkBAIC05MjgsNyAr
OTI4LDcgQEAgV2ViSW5zcGVjdG9yLkhlYXBQcm9maWxlSGVhZGVyLnByb3RvdHlwZSA9IHsKIAog
ICAgIC8qKgogICAgICAqIEBvdmVycmlkZQotICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlBy
b2ZpbGVzUGFuZWx9IHByb2ZpbGVzUGFuZWwKKyAgICAgKiBAcGFyYW0geyFXZWJJbnNwZWN0b3Iu
UHJvZmlsZXNQYW5lbH0gcHJvZmlsZXNQYW5lbAogICAgICAqLwogICAgIGNyZWF0ZVZpZXc6IGZ1
bmN0aW9uKHByb2ZpbGVzUGFuZWwpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9OYXRpdmVNZW1vcnlTbmFwc2hvdFZpZXcuanMgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05hdGl2ZU1lbW9yeVNuYXBzaG90Vmlldy5qcwpp
bmRleCBlMjEzZTJlMWMyYmE2ODFmYjllYzVhMjZiMzMyMTg1YTNhNDhhYTBjLi4xMTVlNmQ3ZjUy
OWQyYzk4ZDU1OWMxYjAxOWE3OWYyNThmMDRmNzkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05hdGl2ZU1lbW9yeVNuYXBzaG90Vmlldy5qcworKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05hdGl2ZU1lbW9yeVNuYXBzaG90Vmll
dy5qcwpAQCAtMzgyLDcgKzM4Miw3IEBAIFdlYkluc3BlY3Rvci5OYXRpdmVTbmFwc2hvdFByb2Zp
bGVIZWFkZXIgPSBmdW5jdGlvbih0eXBlLCB0aXRsZSwgdWlkKQogV2ViSW5zcGVjdG9yLk5hdGl2
ZVNuYXBzaG90UHJvZmlsZUhlYWRlci5wcm90b3R5cGUgPSB7CiAgICAgLyoqCiAgICAgICogQG92
ZXJyaWRlCi0gICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbH0gcHJvZmls
ZXNQYW5lbAorICAgICAqIEBwYXJhbSB7IVdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsfSBwcm9m
aWxlc1BhbmVsCiAgICAgICovCiAgICAgY3JlYXRlVmlldzogZnVuY3Rpb24ocHJvZmlsZXNQYW5l
bCkKICAgICB7CkBAIC00MTMsOCArNDEzLDggQEAgV2ViSW5zcGVjdG9yLk5hdGl2ZVNuYXBzaG90
UHJvZmlsZUhlYWRlci5wcm90b3R5cGUgPSB7CiAvKioKICAqIEBjb25zdHJ1Y3RvcgogICogQGV4
dGVuZHMge1dlYkluc3BlY3Rvci5IZWFwU25hcHNob3RWaWV3fQotICogQHBhcmFtIHtXZWJJbnNw
ZWN0b3IuUHJvZmlsZXNQYW5lbH0gcGFyZW50Ci0gKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5OYXRp
dmVTbmFwc2hvdFByb2ZpbGVIZWFkZXJ9IHByb2ZpbGUKKyAqIEBwYXJhbSB7IVdlYkluc3BlY3Rv
ci5Qcm9maWxlc1BhbmVsfSBwYXJlbnQKKyAqIEBwYXJhbSB7IVdlYkluc3BlY3Rvci5OYXRpdmVT
bmFwc2hvdFByb2ZpbGVIZWFkZXJ9IHByb2ZpbGUKICAqLwogV2ViSW5zcGVjdG9yLk5hdGl2ZUhl
YXBTbmFwc2hvdFZpZXcgPSBmdW5jdGlvbihwYXJlbnQsIHByb2ZpbGUpCiB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVMYXVuY2hlclZpZXcu
anMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVMYXVuY2hlclZp
ZXcuanMKaW5kZXggZWUzMjJiNTk5NmRkZjFlNmM0YzJmNzQzNjYxNWY3YmM1MWI3YWRhYi4uMmMz
ZjcyZTFjODJkNjFkMGM2MDc4ZDkwZjY0ZDc4YTMwYjhjMTNiNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlTGF1bmNoZXJWaWV3LmpzCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZUxhdW5jaGVyVmlldy5q
cwpAQCAtMzIsNzYgKzMyLDEyMSBAQAogICogQGNvbnN0cnVjdG9yCiAgKiBAZXh0ZW5kcyB7V2Vi
SW5zcGVjdG9yLlZpZXd9CiAgKiBAcGFyYW0geyFXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbH0g
cHJvZmlsZXNQYW5lbAotICogQHBhcmFtIHtib29sZWFufSBzaW5nbGVQcm9maWxlTW9kZQogICov
Ci1XZWJJbnNwZWN0b3IuUHJvZmlsZUxhdW5jaGVyVmlldyA9IGZ1bmN0aW9uKHByb2ZpbGVzUGFu
ZWwsIHNpbmdsZVByb2ZpbGVNb2RlKQorV2ViSW5zcGVjdG9yLlByb2ZpbGVMYXVuY2hlclZpZXcg
PSBmdW5jdGlvbihwcm9maWxlc1BhbmVsKQogewogICAgIFdlYkluc3BlY3Rvci5WaWV3LmNhbGwo
dGhpcyk7CiAKICAgICB0aGlzLl9wYW5lbCA9IHByb2ZpbGVzUGFuZWw7Ci0gICAgdGhpcy5fc2lu
Z2xlUHJvZmlsZU1vZGUgPSBzaW5nbGVQcm9maWxlTW9kZTsKICAgICB0aGlzLl9wcm9maWxlUnVu
bmluZyA9IGZhbHNlOwogCiAgICAgdGhpcy5lbGVtZW50LmFkZFN0eWxlQ2xhc3MoInByb2ZpbGUt
bGF1bmNoZXItdmlldyIpOwogICAgIHRoaXMuZWxlbWVudC5hZGRTdHlsZUNsYXNzKCJwYW5lbC1l
bmFibGVyLXZpZXciKTsKIAogICAgIHRoaXMuX2NvbnRlbnRFbGVtZW50ID0gdGhpcy5lbGVtZW50
LmNyZWF0ZUNoaWxkKCJkaXYiLCAicHJvZmlsZS1sYXVuY2hlci12aWV3LWNvbnRlbnQiKTsKKyAg
ICB0aGlzLl9pbm5lckNvbnRlbnRFbGVtZW50ID0gdGhpcy5fY29udGVudEVsZW1lbnQuY3JlYXRl
Q2hpbGQoImRpdiIpOwogCi0gICAgaWYgKCFzaW5nbGVQcm9maWxlTW9kZSkgewotICAgICAgICB2
YXIgaGVhZGVyID0gdGhpcy5fY29udGVudEVsZW1lbnQuY3JlYXRlQ2hpbGQoImgxIik7Ci0gICAg
ICAgIGhlYWRlci50ZXh0Q29udGVudCA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiU2VsZWN0IHBy
b2ZpbGluZyB0eXBlIik7Ci0gICAgfQorICAgIHRoaXMuX2NvbnRyb2xCdXR0b24gPSB0aGlzLl9j
b250ZW50RWxlbWVudC5jcmVhdGVDaGlsZCgiYnV0dG9uIiwgImNvbnRyb2wtcHJvZmlsaW5nIik7
CisgICAgdGhpcy5fY29udHJvbEJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMu
X2NvbnRyb2xCdXR0b25DbGlja2VkLmJpbmQodGhpcyksIGZhbHNlKTsKK30KKworV2ViSW5zcGVj
dG9yLlByb2ZpbGVMYXVuY2hlclZpZXcucHJvdG90eXBlID0geworICAgIC8qKgorICAgICAqIEBw
YXJhbSB7V2ViSW5zcGVjdG9yLlByb2ZpbGVUeXBlfSBwcm9maWxlVHlwZQorICAgICAqLworICAg
IGFkZFByb2ZpbGVUeXBlOiBmdW5jdGlvbihwcm9maWxlVHlwZSkKKyAgICB7CisgICAgICAgIHZh
ciBkZXNjcmlwdGlvbkVsZW1lbnQgPSB0aGlzLl9pbm5lckNvbnRlbnRFbGVtZW50LmNyZWF0ZUNo
aWxkKCJoMSIpOworICAgICAgICBkZXNjcmlwdGlvbkVsZW1lbnQudGV4dENvbnRlbnQgPSBwcm9m
aWxlVHlwZS5kZXNjcmlwdGlvbjsKKyAgICAgICAgdmFyIGRlY29yYXRpb25FbGVtZW50ID0gcHJv
ZmlsZVR5cGUuZGVjb3JhdGlvbkVsZW1lbnQoKTsKKyAgICAgICAgaWYgKGRlY29yYXRpb25FbGVt
ZW50KQorICAgICAgICAgICAgdGhpcy5faW5uZXJDb250ZW50RWxlbWVudC5hcHBlbmRDaGlsZChk
ZWNvcmF0aW9uRWxlbWVudCk7CisgICAgfSwKKworICAgIF9jb250cm9sQnV0dG9uQ2xpY2tlZDog
ZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdGhpcy5fcGFuZWwudG9nZ2xlUmVjb3JkQnV0dG9u
KCk7CisgICAgfSwKKworICAgIF91cGRhdGVDb250cm9sczogZnVuY3Rpb24oKQorICAgIHsKKyAg
ICAgICAgaWYgKHRoaXMuX2lzUHJvZmlsaW5nKSB7CisgICAgICAgICAgICB0aGlzLl9jb250cm9s
QnV0dG9uLmFkZFN0eWxlQ2xhc3MoInJ1bm5pbmciKTsKKyAgICAgICAgICAgIHRoaXMuX2NvbnRy
b2xCdXR0b24udGV4dENvbnRlbnQgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlN0b3AiKTsKKyAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRoaXMuX2NvbnRyb2xCdXR0b24ucmVtb3ZlU3R5
bGVDbGFzcygicnVubmluZyIpOworICAgICAgICAgICAgdGhpcy5fY29udHJvbEJ1dHRvbi50ZXh0
Q29udGVudCA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiU3RhcnQiKTsKKyAgICAgICAgfQorICAg
IH0sCisKKyAgICBwcm9maWxlU3RhcnRlZDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdGhp
cy5faXNQcm9maWxpbmcgPSB0cnVlOworICAgICAgICB0aGlzLl91cGRhdGVDb250cm9scygpOwor
ICAgIH0sCiAKLSAgICB0aGlzLl9wcm9maWxlVHlwZVNlbGVjdG9yRm9ybSA9IHRoaXMuX2NvbnRl
bnRFbGVtZW50LmNyZWF0ZUNoaWxkKCJmb3JtIik7CisgICAgcHJvZmlsZUZpbmlzaGVkOiBmdW5j
dGlvbigpCisgICAgeworICAgICAgICB0aGlzLl9pc1Byb2ZpbGluZyA9IGZhbHNlOworICAgICAg
ICB0aGlzLl91cGRhdGVDb250cm9scygpOworICAgIH0sCisKKyAgICBfX3Byb3RvX186IFdlYklu
c3BlY3Rvci5WaWV3LnByb3RvdHlwZQorfQorCisKKy8qKgorICogQGNvbnN0cnVjdG9yCisgKiBA
ZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLlByb2ZpbGVMYXVuY2hlclZpZXd9CisgKiBAcGFyYW0geyFX
ZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbH0gcHJvZmlsZXNQYW5lbAorICovCitXZWJJbnNwZWN0
b3IuTXVsdGlQcm9maWxlTGF1bmNoZXJWaWV3ID0gZnVuY3Rpb24ocHJvZmlsZXNQYW5lbCkKK3sK
KyAgICBXZWJJbnNwZWN0b3IuUHJvZmlsZUxhdW5jaGVyVmlldy5jYWxsKHRoaXMsIHByb2ZpbGVz
UGFuZWwpOworCisgICAgdmFyIGhlYWRlciA9IHRoaXMuX2lubmVyQ29udGVudEVsZW1lbnQuY3Jl
YXRlQ2hpbGQoImgxIik7CisgICAgaGVhZGVyLnRleHRDb250ZW50ID0gV2ViSW5zcGVjdG9yLlVJ
U3RyaW5nKCJTZWxlY3QgcHJvZmlsaW5nIHR5cGUiKTsKKworICAgIHRoaXMuX3Byb2ZpbGVUeXBl
U2VsZWN0b3JGb3JtID0gdGhpcy5faW5uZXJDb250ZW50RWxlbWVudC5jcmVhdGVDaGlsZCgiZm9y
bSIpOwogCiAgICAgaWYgKFdlYkluc3BlY3Rvci5leHBlcmltZW50c1NldHRpbmdzLmxpdmVOYXRp
dmVNZW1vcnlDaGFydC5pc0VuYWJsZWQoKSkgewotICAgICAgICB0aGlzLl9uYXRpdmVNZW1vcnlF
bGVtZW50ID0gdGhpcy5fY29udGVudEVsZW1lbnQuY3JlYXRlQ2hpbGQoImRpdiIpOworICAgICAg
ICB0aGlzLl9uYXRpdmVNZW1vcnlFbGVtZW50ID0gdGhpcy5faW5uZXJDb250ZW50RWxlbWVudC5j
cmVhdGVDaGlsZCgiZGl2Iik7CiAgICAgICAgIHRoaXMuX25hdGl2ZU1lbW9yeUxpdmVDaGFydCA9
IG5ldyBXZWJJbnNwZWN0b3IuTmF0aXZlTWVtb3J5QmFyQ2hhcnQoKTsKICAgICAgICAgdGhpcy5f
bmF0aXZlTWVtb3J5TGl2ZUNoYXJ0LnNob3codGhpcy5fbmF0aXZlTWVtb3J5RWxlbWVudCk7CiAg
ICAgfQogCi0gICAgdGhpcy5fY29udGVudEVsZW1lbnQuY3JlYXRlQ2hpbGQoImRpdiIsICJmbGV4
aWJsZS1zcGFjZSIpOwotCi0gICAgdGhpcy5fY29udHJvbEJ1dHRvbiA9IHRoaXMuX2NvbnRlbnRF
bGVtZW50LmNyZWF0ZUNoaWxkKCJidXR0b24iLCAiY29udHJvbC1wcm9maWxpbmciKTsKLSAgICB0
aGlzLl9jb250cm9sQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5fY29udHJv
bEJ1dHRvbkNsaWNrZWQuYmluZCh0aGlzKSwgZmFsc2UpOwotICAgIHRoaXMuX3VwZGF0ZUNvbnRy
b2xzKCk7CisgICAgdGhpcy5faW5uZXJDb250ZW50RWxlbWVudC5jcmVhdGVDaGlsZCgiZGl2Iiwg
ImZsZXhpYmxlLXNwYWNlIik7CiB9CiAKLVdlYkluc3BlY3Rvci5Qcm9maWxlTGF1bmNoZXJWaWV3
LkV2ZW50VHlwZXMgPSB7CitXZWJJbnNwZWN0b3IuTXVsdGlQcm9maWxlTGF1bmNoZXJWaWV3LkV2
ZW50VHlwZXMgPSB7CiAgICAgUHJvZmlsZVR5cGVTZWxlY3RlZDogInByb2ZpbGUtdHlwZS1zZWxl
Y3RlZCIKIH0KIAotV2ViSW5zcGVjdG9yLlByb2ZpbGVMYXVuY2hlclZpZXcucHJvdG90eXBlID0g
eworV2ViSW5zcGVjdG9yLk11bHRpUHJvZmlsZUxhdW5jaGVyVmlldy5wcm90b3R5cGUgPSB7CiAg
ICAgLyoqCisgICAgICogQG92ZXJyaWRlCiAgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuUHJv
ZmlsZVR5cGV9IHByb2ZpbGVUeXBlCiAgICAgICovCiAgICAgYWRkUHJvZmlsZVR5cGU6IGZ1bmN0
aW9uKHByb2ZpbGVUeXBlKQogICAgIHsKICAgICAgICAgdmFyIGNoZWNrZWQgPSAhdGhpcy5fcHJv
ZmlsZVR5cGVTZWxlY3RvckZvcm0uY2hpbGRyZW4ubGVuZ3RoOwotICAgICAgICB2YXIgbGFiZWxF
bGVtZW50OwotICAgICAgICBpZiAodGhpcy5fc2luZ2xlUHJvZmlsZU1vZGUpCi0gICAgICAgICAg
ICBsYWJlbEVsZW1lbnQgPSB0aGlzLl9wcm9maWxlVHlwZVNlbGVjdG9yRm9ybS5jcmVhdGVDaGls
ZCgiaDEiKTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBsYWJlbEVsZW1lbnQgPSB0aGlz
Ll9wcm9maWxlVHlwZVNlbGVjdG9yRm9ybS5jcmVhdGVDaGlsZCgibGFiZWwiKTsKLSAgICAgICAg
ICAgIGxhYmVsRWxlbWVudC50ZXh0Q29udGVudCA9IHByb2ZpbGVUeXBlLm5hbWU7Ci0gICAgICAg
ICAgICB2YXIgb3B0aW9uRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7
Ci0gICAgICAgICAgICBsYWJlbEVsZW1lbnQuaW5zZXJ0QmVmb3JlKG9wdGlvbkVsZW1lbnQsIGxh
YmVsRWxlbWVudC5maXJzdENoaWxkKTsKLSAgICAgICAgICAgIG9wdGlvbkVsZW1lbnQudHlwZSA9
ICJyYWRpbyI7Ci0gICAgICAgICAgICBvcHRpb25FbGVtZW50Lm5hbWUgPSAicHJvZmlsZS10eXBl
IjsKLSAgICAgICAgICAgIG9wdGlvbkVsZW1lbnQuc3R5bGUuaGlkZGVuID0gdHJ1ZTsKLSAgICAg
ICAgICAgIGlmIChjaGVja2VkKSB7Ci0gICAgICAgICAgICAgICAgb3B0aW9uRWxlbWVudC5jaGVj
a2VkID0gY2hlY2tlZDsKLSAgICAgICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3Rl
bmVycyhXZWJJbnNwZWN0b3IuUHJvZmlsZUxhdW5jaGVyVmlldy5FdmVudFR5cGVzLlByb2ZpbGVU
eXBlU2VsZWN0ZWQsIHByb2ZpbGVUeXBlKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIG9w
dGlvbkVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwgdGhpcy5fcHJvZmlsZVR5cGVD
aGFuZ2VkLmJpbmQodGhpcywgcHJvZmlsZVR5cGUpLCBmYWxzZSk7CisgICAgICAgIHZhciBsYWJl
bEVsZW1lbnQgPSB0aGlzLl9wcm9maWxlVHlwZVNlbGVjdG9yRm9ybS5jcmVhdGVDaGlsZCgibGFi
ZWwiKTsKKyAgICAgICAgbGFiZWxFbGVtZW50LnRleHRDb250ZW50ID0gcHJvZmlsZVR5cGUubmFt
ZTsKKyAgICAgICAgdmFyIG9wdGlvbkVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJp
bnB1dCIpOworICAgICAgICBsYWJlbEVsZW1lbnQuaW5zZXJ0QmVmb3JlKG9wdGlvbkVsZW1lbnQs
IGxhYmVsRWxlbWVudC5maXJzdENoaWxkKTsKKyAgICAgICAgb3B0aW9uRWxlbWVudC50eXBlID0g
InJhZGlvIjsKKyAgICAgICAgb3B0aW9uRWxlbWVudC5uYW1lID0gInByb2ZpbGUtdHlwZSI7Cisg
ICAgICAgIG9wdGlvbkVsZW1lbnQuc3R5bGUuaGlkZGVuID0gdHJ1ZTsKKyAgICAgICAgaWYgKGNo
ZWNrZWQpIHsKKyAgICAgICAgICAgIG9wdGlvbkVsZW1lbnQuY2hlY2tlZCA9IGNoZWNrZWQ7Cisg
ICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuTXVs
dGlQcm9maWxlTGF1bmNoZXJWaWV3LkV2ZW50VHlwZXMuUHJvZmlsZVR5cGVTZWxlY3RlZCwgcHJv
ZmlsZVR5cGUpOwogICAgICAgICB9CisgICAgICAgIG9wdGlvbkVsZW1lbnQuYWRkRXZlbnRMaXN0
ZW5lcigiY2hhbmdlIiwgdGhpcy5fcHJvZmlsZVR5cGVDaGFuZ2VkLmJpbmQodGhpcywgcHJvZmls
ZVR5cGUpLCBmYWxzZSk7CiAgICAgICAgIHZhciBkZXNjcmlwdGlvbkVsZW1lbnQgPSBsYWJlbEVs
ZW1lbnQuY3JlYXRlQ2hpbGQoInAiKTsKICAgICAgICAgZGVzY3JpcHRpb25FbGVtZW50LnRleHRD
b250ZW50ID0gcHJvZmlsZVR5cGUuZGVzY3JpcHRpb247CiAgICAgICAgIHZhciBkZWNvcmF0aW9u
RWxlbWVudCA9IHByb2ZpbGVUeXBlLmRlY29yYXRpb25FbGVtZW50KCk7CiAgICAgICAgIGlmIChk
ZWNvcmF0aW9uRWxlbWVudCkKICAgICAgICAgICAgIGxhYmVsRWxlbWVudC5hcHBlbmRDaGlsZChk
ZWNvcmF0aW9uRWxlbWVudCk7Ci0gICAgICAgIGlmICh0aGlzLl9zaW5nbGVQcm9maWxlTW9kZSkK
LSAgICAgICAgICAgIHRoaXMuX3Byb2ZpbGVUeXBlQ2hhbmdlZChwcm9maWxlVHlwZSwgbnVsbCk7
CiAgICAgfSwKIAogICAgIF9jb250cm9sQnV0dG9uQ2xpY2tlZDogZnVuY3Rpb24oKQpAQCAtMTMw
LDcgKzE3NSw3IEBAIFdlYkluc3BlY3Rvci5Qcm9maWxlTGF1bmNoZXJWaWV3LnByb3RvdHlwZSA9
IHsKICAgICAgKi8KICAgICBfcHJvZmlsZVR5cGVDaGFuZ2VkOiBmdW5jdGlvbihwcm9maWxlVHlw
ZSwgZXZlbnQpCiAgICAgewotICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhX
ZWJJbnNwZWN0b3IuUHJvZmlsZUxhdW5jaGVyVmlldy5FdmVudFR5cGVzLlByb2ZpbGVUeXBlU2Vs
ZWN0ZWQsIHByb2ZpbGVUeXBlKTsKKyAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5l
cnMoV2ViSW5zcGVjdG9yLk11bHRpUHJvZmlsZUxhdW5jaGVyVmlldy5FdmVudFR5cGVzLlByb2Zp
bGVUeXBlU2VsZWN0ZWQsIHByb2ZpbGVUeXBlKTsKICAgICB9LAogCiAgICAgcHJvZmlsZVN0YXJ0
ZWQ6IGZ1bmN0aW9uKCkKQEAgLTE0NSw1ICsxOTAsMjcgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVM
YXVuY2hlclZpZXcucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl91cGRhdGVDb250cm9scygp
OwogICAgIH0sCiAKLSAgICBfX3Byb3RvX186IFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZQor
ICAgIF9fcHJvdG9fXzogV2ViSW5zcGVjdG9yLlByb2ZpbGVMYXVuY2hlclZpZXcucHJvdG90eXBl
Cit9CisKKworLyoqCisgKiBAY29uc3RydWN0b3IKKyAqIEBleHRlbmRzIHtXZWJJbnNwZWN0b3Iu
UHJvZmlsZUxhdW5jaGVyVmlld30KKyAqIEBwYXJhbSB7IVdlYkluc3BlY3Rvci5Qcm9maWxlc1Bh
bmVsfSBwcm9maWxlc1BhbmVsCisgKi8KK1dlYkluc3BlY3Rvci5OYXRpdmVQcm9maWxlTGF1bmNo
ZXJWaWV3ID0gZnVuY3Rpb24ocHJvZmlsZXNQYW5lbCkKK3sKKyAgICBXZWJJbnNwZWN0b3IuUHJv
ZmlsZUxhdW5jaGVyVmlldy5jYWxsKHRoaXMsIHByb2ZpbGVzUGFuZWwpOworCisgICAgaWYgKFdl
Ykluc3BlY3Rvci5leHBlcmltZW50c1NldHRpbmdzLmxpdmVOYXRpdmVNZW1vcnlDaGFydC5pc0Vu
YWJsZWQoKSkgeworICAgICAgICB0aGlzLl9uYXRpdmVNZW1vcnlFbGVtZW50ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgICAgIHRoaXMuX2NvbnRlbnRFbGVtZW50Lmluc2Vy
dEJlZm9yZSh0aGlzLl9uYXRpdmVNZW1vcnlFbGVtZW50LCB0aGlzLl9jb250cm9sQnV0dG9uKTsK
KyAgICAgICAgdGhpcy5fbmF0aXZlTWVtb3J5TGl2ZUNoYXJ0ID0gbmV3IFdlYkluc3BlY3Rvci5O
YXRpdmVNZW1vcnlCYXJDaGFydCgpOworICAgICAgICB0aGlzLl9uYXRpdmVNZW1vcnlMaXZlQ2hh
cnQuc2hvdyh0aGlzLl9uYXRpdmVNZW1vcnlFbGVtZW50KTsKKyAgICB9Cit9CisKK1dlYkluc3Bl
Y3Rvci5OYXRpdmVQcm9maWxlTGF1bmNoZXJWaWV3LnByb3RvdHlwZSA9IHsKKyAgICBfX3Byb3Rv
X186IFdlYkluc3BlY3Rvci5Qcm9maWxlTGF1bmNoZXJWaWV3LnByb3RvdHlwZQogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpz
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpzCmlu
ZGV4IDU3ODAwODY1ZDI3NzU5NjU3MmU5OWJkNjM5ZjhhNTFmZjVhZjQyNWMuLjA0NDc1YWVlOWRh
ZTI5OWViYzU1MDU1OTA3YmM5YTgyZWM3ZmU5ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWwuanMKQEAgLTMzMyw4ICszMzMsOSBA
QCBXZWJJbnNwZWN0b3IuUHJvZmlsZUhlYWRlci5wcm90b3R5cGUgPSB7CiAgKiBAZXh0ZW5kcyB7
V2ViSW5zcGVjdG9yLlBhbmVsfQogICogQGltcGxlbWVudHMge1dlYkluc3BlY3Rvci5Db250ZXh0
TWVudS5Qcm92aWRlcn0KICAqIEBwYXJhbSB7c3RyaW5nPX0gbmFtZQorICogQHBhcmFtIHtXZWJJ
bnNwZWN0b3IuUHJvZmlsZVR5cGU9fSB0eXBlCiAgKi8KLVdlYkluc3BlY3Rvci5Qcm9maWxlc1Bh
bmVsID0gZnVuY3Rpb24obmFtZSkKK1dlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsID0gZnVuY3Rp
b24obmFtZSwgdHlwZSkKIHsKICAgICAvLyBJZiB0aGUgbmFtZSBpcyBub3Qgc3BlY2lmaWVkIHRo
ZSBQcm9maWxlc1BhbmVsIHdvcmtzIGluIG11bHRpLXByb2ZpbGUgbW9kZS4KICAgICB2YXIgc2lu
Z2xlUHJvZmlsZU1vZGUgPSB0eXBlb2YgbmFtZSAhPT0gInVuZGVmaW5lZCI7CkBAIC0zOTEsMjQg
KzM5MiwzMCBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbCA9IGZ1bmN0aW9uKG5hbWUpCiAK
ICAgICB0aGlzLl9wcm9maWxlckVuYWJsZWQgPSAhQ2FwYWJpbGl0aWVzLnByb2ZpbGVyQ2F1c2Vz
UmVjb21waWxhdGlvbjsKIAotICAgIHRoaXMuX2xhdW5jaGVyVmlldyA9IG5ldyBXZWJJbnNwZWN0
b3IuUHJvZmlsZUxhdW5jaGVyVmlldyh0aGlzLCBzaW5nbGVQcm9maWxlTW9kZSk7Ci0gICAgdGhp
cy5fbGF1bmNoZXJWaWV3LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlByb2ZpbGVMYXVu
Y2hlclZpZXcuRXZlbnRUeXBlcy5Qcm9maWxlVHlwZVNlbGVjdGVkLCB0aGlzLl9vblByb2ZpbGVU
eXBlU2VsZWN0ZWQsIHRoaXMpOwotICAgIHRoaXMuX3Jlc2V0KCk7CisgICAgaWYgKHNpbmdsZVBy
b2ZpbGVNb2RlKSB7CisgICAgICAgIHRoaXMuX2xhdW5jaGVyVmlldyA9IHRoaXMuX2NyZWF0ZUxh
dW5jaGVyVmlldygpOworICAgICAgICB0aGlzLl9yZWdpc3RlclByb2ZpbGVUeXBlKC8qKiBAdHlw
ZSB7IVdlYkluc3BlY3Rvci5Qcm9maWxlVHlwZX0gKi8gKHR5cGUpKTsKKyAgICAgICAgdGhpcy5f
c2VsZWN0ZWRQcm9maWxlVHlwZSA9IHR5cGU7CisgICAgICAgIHRoaXMuX3VwZGF0ZVByb2ZpbGVU
eXBlU3BlY2lmaWNVSSgpOworICAgIH0gZWxzZSB7CisgICAgICAgIHRoaXMuX2xhdW5jaGVyVmll
dyA9IG5ldyBXZWJJbnNwZWN0b3IuTXVsdGlQcm9maWxlTGF1bmNoZXJWaWV3KHRoaXMpOworICAg
ICAgICB0aGlzLl9sYXVuY2hlclZpZXcuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuTXVs
dGlQcm9maWxlTGF1bmNoZXJWaWV3LkV2ZW50VHlwZXMuUHJvZmlsZVR5cGVTZWxlY3RlZCwgdGhp
cy5fb25Qcm9maWxlVHlwZVNlbGVjdGVkLCB0aGlzKTsKIAotICAgIGlmICghc2luZ2xlUHJvZmls
ZU1vZGUpIHsKICAgICAgICAgdGhpcy5fcmVnaXN0ZXJQcm9maWxlVHlwZShuZXcgV2ViSW5zcGVj
dG9yLkNQVVByb2ZpbGVUeXBlKCkpOwogICAgICAgICBpZiAoIVdlYkluc3BlY3Rvci5Xb3JrZXJN
YW5hZ2VyLmlzV29ya2VyRnJvbnRlbmQoKSkKICAgICAgICAgICAgIHRoaXMuX3JlZ2lzdGVyUHJv
ZmlsZVR5cGUobmV3IFdlYkluc3BlY3Rvci5DU1NTZWxlY3RvclByb2ZpbGVUeXBlKCkpOwogICAg
ICAgICBpZiAoQ2FwYWJpbGl0aWVzLmhlYXBQcm9maWxlclByZXNlbnQpCiAgICAgICAgICAgICB0
aGlzLl9yZWdpc3RlclByb2ZpbGVUeXBlKG5ldyBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90UHJv
ZmlsZVR5cGUoKSk7Ci0gICAgICAgIGlmIChXZWJJbnNwZWN0b3IuZXhwZXJpbWVudHNTZXR0aW5n
cy5uYXRpdmVNZW1vcnlTbmFwc2hvdHMuaXNFbmFibGVkKCkpIHsKKyAgICAgICAgaWYgKCFXZWJJ
bnNwZWN0b3IuV29ya2VyTWFuYWdlci5pc1dvcmtlckZyb250ZW5kKCkgJiYgV2ViSW5zcGVjdG9y
LmV4cGVyaW1lbnRzU2V0dGluZ3MubmF0aXZlTWVtb3J5U25hcHNob3RzLmlzRW5hYmxlZCgpKSB7
CiAgICAgICAgICAgICB0aGlzLl9yZWdpc3RlclByb2ZpbGVUeXBlKG5ldyBXZWJJbnNwZWN0b3Iu
TmF0aXZlU25hcHNob3RQcm9maWxlVHlwZSgpKTsKICAgICAgICAgICAgIHRoaXMuX3JlZ2lzdGVy
UHJvZmlsZVR5cGUobmV3IFdlYkluc3BlY3Rvci5OYXRpdmVNZW1vcnlQcm9maWxlVHlwZSgpKTsK
ICAgICAgICAgfQotICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLmV4cGVyaW1lbnRzU2V0dGluZ3Mu
Y2FudmFzSW5zcGVjdGlvbi5pc0VuYWJsZWQoKSkKKyAgICAgICAgaWYgKCFXZWJJbnNwZWN0b3Iu
V29ya2VyTWFuYWdlci5pc1dvcmtlckZyb250ZW5kKCkgJiYgV2ViSW5zcGVjdG9yLmV4cGVyaW1l
bnRzU2V0dGluZ3MuY2FudmFzSW5zcGVjdGlvbi5pc0VuYWJsZWQoKSkKICAgICAgICAgICAgIHRo
aXMuX3JlZ2lzdGVyUHJvZmlsZVR5cGUobmV3IFdlYkluc3BlY3Rvci5DYW52YXNQcm9maWxlVHlw
ZSgpKTsKICAgICB9CiAKKyAgICB0aGlzLl9yZXNldCgpOworCiAgICAgdGhpcy5fY3JlYXRlRmls
ZVNlbGVjdG9yRWxlbWVudCgpOwogICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJj
b250ZXh0bWVudSIsIHRoaXMuX2hhbmRsZUNvbnRleHRNZW51RXZlbnQuYmluZCh0aGlzKSwgdHJ1
ZSk7CiAKQEAgLTQyNSw2ICs0MzIsMTQgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJv
dG90eXBlID0gewogICAgIH0sCiAKICAgICAvKioKKyAgICAgKiBAcmV0dXJuIHshV2ViSW5zcGVj
dG9yLlByb2ZpbGVMYXVuY2hlclZpZXd9CisgICAgICovCisgICAgX2NyZWF0ZUxhdW5jaGVyVmll
dzogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuUHJv
ZmlsZUxhdW5jaGVyVmlldyh0aGlzKTsKKyAgICB9LAorCisgICAgLyoqCiAgICAgICogQHBhcmFt
IHshRmlsZX0gZmlsZQogICAgICAqLwogICAgIF9sb2FkRnJvbUZpbGU6IGZ1bmN0aW9uKGZpbGUp
CkBAIC0xMzUzLDggKzEzNjgsNyBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZXNTaWRlYmFyVHJlZUVs
ZW1lbnQucHJvdG90eXBlID0gewogICovCiBXZWJJbnNwZWN0b3IuQ1BVUHJvZmlsZXJQYW5lbCA9
IGZ1bmN0aW9uKCkKIHsKLSAgICBXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5jYWxsKHRoaXMs
ICJjcHUtcHJvZmlsZXIiKTsKLSAgICB0aGlzLl9yZWdpc3RlclByb2ZpbGVUeXBlKG5ldyBXZWJJ
bnNwZWN0b3IuQ1BVUHJvZmlsZVR5cGUoKSk7CisgICAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFu
ZWwuY2FsbCh0aGlzLCAiY3B1LXByb2ZpbGVyIiwgbmV3IFdlYkluc3BlY3Rvci5DUFVQcm9maWxl
VHlwZSgpKTsKIH0KIAogV2ViSW5zcGVjdG9yLkNQVVByb2ZpbGVyUGFuZWwucHJvdG90eXBlID0g
ewpAQCAtMTM2OCw4ICsxMzgyLDcgQEAgV2ViSW5zcGVjdG9yLkNQVVByb2ZpbGVyUGFuZWwucHJv
dG90eXBlID0gewogICovCiBXZWJJbnNwZWN0b3IuQ1NTU2VsZWN0b3JQcm9maWxlclBhbmVsID0g
ZnVuY3Rpb24oKQogewotICAgIFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLmNhbGwodGhpcywg
ImNzcy1wcm9maWxlciIpOwotICAgIHRoaXMuX3JlZ2lzdGVyUHJvZmlsZVR5cGUobmV3IFdlYklu
c3BlY3Rvci5DU1NTZWxlY3RvclByb2ZpbGVUeXBlKCkpOworICAgIFdlYkluc3BlY3Rvci5Qcm9m
aWxlc1BhbmVsLmNhbGwodGhpcywgImNzcy1wcm9maWxlciIsIG5ldyBXZWJJbnNwZWN0b3IuQ1NT
U2VsZWN0b3JQcm9maWxlVHlwZSgpKTsKIH0KIAogV2ViSW5zcGVjdG9yLkNTU1NlbGVjdG9yUHJv
ZmlsZXJQYW5lbC5wcm90b3R5cGUgPSB7CkBAIC0xMzgzLDggKzEzOTYsNyBAQCBXZWJJbnNwZWN0
b3IuQ1NTU2VsZWN0b3JQcm9maWxlclBhbmVsLnByb3RvdHlwZSA9IHsKICAqLwogV2ViSW5zcGVj
dG9yLkhlYXBQcm9maWxlclBhbmVsID0gZnVuY3Rpb24oKQogewotICAgIFdlYkluc3BlY3Rvci5Q
cm9maWxlc1BhbmVsLmNhbGwodGhpcywgImhlYXAtcHJvZmlsZXIiKTsKLSAgICB0aGlzLl9yZWdp
c3RlclByb2ZpbGVUeXBlKG5ldyBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90UHJvZmlsZVR5cGUo
KSk7CisgICAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwuY2FsbCh0aGlzLCAiaGVhcC1wcm9m
aWxlciIsIG5ldyBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90UHJvZmlsZVR5cGUoKSk7CiB9CiAK
IFdlYkluc3BlY3Rvci5IZWFwUHJvZmlsZXJQYW5lbC5wcm90b3R5cGUgPSB7CkBAIC0xMzk4LDgg
KzE0MTAsNyBAQCBXZWJJbnNwZWN0b3IuSGVhcFByb2ZpbGVyUGFuZWwucHJvdG90eXBlID0gewog
ICovCiBXZWJJbnNwZWN0b3IuQ2FudmFzUHJvZmlsZXJQYW5lbCA9IGZ1bmN0aW9uKCkKIHsKLSAg
ICBXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5jYWxsKHRoaXMsICJjYW52YXMtcHJvZmlsZXIi
KTsKLSAgICB0aGlzLl9yZWdpc3RlclByb2ZpbGVUeXBlKG5ldyBXZWJJbnNwZWN0b3IuQ2FudmFz
UHJvZmlsZVR5cGUoKSk7CisgICAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwuY2FsbCh0aGlz
LCAiY2FudmFzLXByb2ZpbGVyIiwgbmV3IFdlYkluc3BlY3Rvci5DYW52YXNQcm9maWxlVHlwZSgp
KTsKIH0KIAogV2ViSW5zcGVjdG9yLkNhbnZhc1Byb2ZpbGVyUGFuZWwucHJvdG90eXBlID0gewpA
QCAtMTQxMywxMSArMTQyNCwxOSBAQCBXZWJJbnNwZWN0b3IuQ2FudmFzUHJvZmlsZXJQYW5lbC5w
cm90b3R5cGUgPSB7CiAgKi8KIFdlYkluc3BlY3Rvci5NZW1vcnlDaGFydFByb2ZpbGVyUGFuZWwg
PSBmdW5jdGlvbigpCiB7Ci0gICAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwuY2FsbCh0aGlz
LCAibWVtb3J5LWNoYXJ0LXByb2ZpbGVyIik7Ci0gICAgdGhpcy5fcmVnaXN0ZXJQcm9maWxlVHlw
ZShuZXcgV2ViSW5zcGVjdG9yLk5hdGl2ZU1lbW9yeVByb2ZpbGVUeXBlKCkpOworICAgIFdlYklu
c3BlY3Rvci5Qcm9maWxlc1BhbmVsLmNhbGwodGhpcywgIm1lbW9yeS1jaGFydC1wcm9maWxlciIs
IG5ldyBXZWJJbnNwZWN0b3IuTmF0aXZlTWVtb3J5UHJvZmlsZVR5cGUoKSk7CiB9CiAKIFdlYklu
c3BlY3Rvci5NZW1vcnlDaGFydFByb2ZpbGVyUGFuZWwucHJvdG90eXBlID0geworICAgIC8qKgor
ICAgICAqIEBvdmVycmlkZQorICAgICAqIEByZXR1cm4geyFXZWJJbnNwZWN0b3IuUHJvZmlsZUxh
dW5jaGVyVmlld30KKyAgICAgKi8KKyAgICBfY3JlYXRlTGF1bmNoZXJWaWV3OiBmdW5jdGlvbigp
CisgICAgeworICAgICAgICByZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5OYXRpdmVQcm9maWxlTGF1
bmNoZXJWaWV3KHRoaXMpOworICAgIH0sCisKICAgICBfX3Byb3RvX186IFdlYkluc3BlY3Rvci5Q
cm9maWxlc1BhbmVsLnByb3RvdHlwZQogfQogCkBAIC0xNDI4LDggKzE0NDcsNyBAQCBXZWJJbnNw
ZWN0b3IuTWVtb3J5Q2hhcnRQcm9maWxlclBhbmVsLnByb3RvdHlwZSA9IHsKICAqLwogV2ViSW5z
cGVjdG9yLk5hdGl2ZU1lbW9yeVByb2ZpbGVyUGFuZWwgPSBmdW5jdGlvbigpCiB7Ci0gICAgV2Vi
SW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwuY2FsbCh0aGlzLCAibWVtb3J5LXNuYXBzaG90LXByb2Zp
bGVyIik7Ci0gICAgdGhpcy5fcmVnaXN0ZXJQcm9maWxlVHlwZShuZXcgV2ViSW5zcGVjdG9yLk5h
dGl2ZVNuYXBzaG90UHJvZmlsZVR5cGUoKSk7CisgICAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFu
ZWwuY2FsbCh0aGlzLCAibWVtb3J5LXNuYXBzaG90LXByb2ZpbGVyIiwgbmV3IFdlYkluc3BlY3Rv
ci5OYXRpdmVTbmFwc2hvdFByb2ZpbGVUeXBlKCkpOwogfQogCiBXZWJJbnNwZWN0b3IuTmF0aXZl
TWVtb3J5UHJvZmlsZXJQYW5lbC5wcm90b3R5cGUgPSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL3Byb2ZpbGVzUGFuZWwuY3NzIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9wcm9maWxlc1BhbmVsLmNzcwppbmRleCAyOTZkYWZlN2E0
MTk0YzQ0ZjEyMzQ4YTA1ZDNjOGMyOTU0YzUyM2JmLi43YTFkYjFjZTNhNGIzZTNhMmIyMDA3N2Y3
YjJlMGZmOTgwZTk2Mjc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL3Byb2ZpbGVzUGFuZWwuY3NzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvcHJvZmlsZXNQYW5lbC5jc3MKQEAgLTE4MCw3ICsxODAsNyBAQAogCiAucGFuZWwt
ZW5hYmxlci12aWV3LnByb2ZpbGUtbGF1bmNoZXItdmlldyBidXR0b246bm90KC5zdGF0dXMtYmFy
LWl0ZW0pIHsKICAgICBjb2xvcjogcmdiKDYsIDYsIDYpOwotICAgIG1hcmdpbjogMTZweCAwOwor
ICAgIG1hcmdpbjogMCAwIDE2cHg7CiB9CiAKIC5wcm9maWxlLWxhdW5jaGVyLXZpZXctY29udGVu
dCBidXR0b24ucnVubmluZzpub3QoLnN0YXR1cy1iYXItaXRlbSkgewo=
</data>

          </attachment>
      

    </bug>

</bugzilla>