<?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>70523</bug_id>
          
          <creation_ts>2011-10-20 10:39:01 -0700</creation_ts>
          <short_desc>Web Inspector: get rid of View::hide, View::set visible, View::attach.</short_desc>
          <delta_ts>2011-10-22 12:31:16 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Pavel Feldman">pfeldman</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>caseq</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>487700</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-10-20 10:39:01 -0700</bug_when>
    <thetext>This change streamlines the way we operate views.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487701</commentid>
    <comment_count>1</comment_count>
      <attachid>111806</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-10-20 10:40:34 -0700</bug_when>
    <thetext>Created attachment 111806
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>488246</commentid>
    <comment_count>2</comment_count>
      <attachid>111806</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-10-21 01:07:43 -0700</bug_when>
    <thetext>Comment on attachment 111806
Patch

Removing r? as pfeldman is still working on it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>488282</commentid>
    <comment_count>3</comment_count>
      <attachid>111928</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-10-21 02:44:15 -0700</bug_when>
    <thetext>Created attachment 111928
[Patch] same with asserions instead of DOM listeners</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>488338</commentid>
    <comment_count>4</comment_count>
      <attachid>111956</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-10-21 05:33:49 -0700</bug_when>
    <thetext>Created attachment 111956
[Patch] Same with the test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>488365</commentid>
    <comment_count>5</comment_count>
      <attachid>111956</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2011-10-21 07:14:38 -0700</bug_when>
    <thetext>Comment on attachment 111956
[Patch] Same with the test.

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

LGTM with a handful of nits. Some other considerations that may be addressed in the future patches:
- we now lack a method to dispose of a view that was marked with setHideOnDetach(). Such views would linger in DOM forever, as detach would not really detach them;
-- Managing isRoot is a bit obscure (we set it explicitly but may implicitly clear)
-- We never call base implementations of willHide/wasShown from Views, yet always call from Panels. This is inconsistent. We also have some logic in dispatchFoo methods, which is a bit confusing considering these names.

&gt; Source/WebCore/inspector/front-end/View.js:50
&gt; +        return this._isShowing || this._isRoot;

So does this mean that a view that was once marked as root will remain isShowing() after being detached?

&gt; Source/WebCore/inspector/front-end/View.js:69
&gt;          this.restoreScrollPositions();

Having logic like this in a method called dispatchSomething is a bit surprising.

&gt; Source/WebCore/inspector/front-end/View.js:82
&gt;          this.storeScrollPositions();

ditto.

&gt; Source/WebCore/inspector/front-end/View.js:141
&gt; +        while (parentElement &amp;&amp; !parentElement.__view)
&gt; +            parentElement = parentElement.parentElement;

Reusing input parameter is confusing. Consider var parentViewElement?

&gt; Source/WebCore/inspector/front-end/View.js:258
&gt; +    while (parentElement) {

nit: for seems more appropriate

&gt; Source/WebCore/inspector/front-end/View.js:264
&gt; +WebInspector.View._decrementViewCounter = function(parentElement, childElement)

nit: Generalize with _incrementViewCounter, e.g. adjustViewCounter?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>488385</commentid>
    <comment_count>6</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-10-21 07:57:43 -0700</bug_when>
    <thetext>&gt; So does this mean that a view that was once marked as root will remain isShowing() after being detached?

I don&apos;t see a better solution for now. Root is the main panels + drawer view. I&apos;ll figure something prettier out.

&gt; Having logic like this in a method called dispatchSomething is a bit surprising.

Done.

&gt; &gt; Source/WebCore/inspector/front-end/View.js:82
&gt; &gt;          this.storeScrollPositions();
&gt; 
Done.

&gt; &gt; Source/WebCore/inspector/front-end/View.js:141
&gt; &gt; +        while (parentElement &amp;&amp; !parentElement.__view)
&gt; &gt; +            parentElement = parentElement.parentElement;
&gt; 
&gt; Reusing input parameter is confusing. Consider var parentViewElement?


Done.

&gt; &gt; Source/WebCore/inspector/front-end/View.js:258
&gt; &gt; +    while (parentElement) {
&gt; 
&gt; nit: for seems more appropriate

Changed this code a bit.

&gt; &gt; Source/WebCore/inspector/front-end/View.js:264
&gt; &gt; +WebInspector.View._decrementViewCounter = function(parentElement, childElement)
&gt; 
&gt; nit: Generalize with _incrementViewCounter, e.g. adjustViewCounter?

I am not a fan of this :).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>488386</commentid>
    <comment_count>7</comment_count>
      <attachid>111966</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-10-21 08:00:01 -0700</bug_when>
    <thetext>Created attachment 111966
[Patch] Review comments addressed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>488401</commentid>
    <comment_count>8</comment_count>
      <attachid>111966</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2011-10-21 08:35:57 -0700</bug_when>
    <thetext>Comment on attachment 111966
[Patch] Review comments addressed.

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

&gt; Source/WebCore/inspector/front-end/View.js:277
&gt; +WebInspector.View._assert = function(condition, message)

This looks generic enough to be in utilities.js</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>488415</commentid>
    <comment_count>9</comment_count>
      <attachid>111966</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-10-21 08:50:53 -0700</bug_when>
    <thetext>Comment on attachment 111966
[Patch] Review comments addressed.

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

&gt; Source/WebCore/inspector/front-end/View.js:175
&gt; +            if (childIndex &lt; 0) {

Could be _assert</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>488957</commentid>
    <comment_count>10</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-10-22 12:31:16 -0700</bug_when>
    <thetext>Committed r98194: &lt;http://trac.webkit.org/changeset/98194&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111806</attachid>
            <date>2011-10-20 10:40:34 -0700</date>
            <delta_ts>2011-10-21 02:44:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70523-20111020214031.patch</filename>
            <type>text/plain</type>
            <size>45483</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTc5ODQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzNzAyMGQxYjY3NjVlMzMx
MzAyYjYwZGY5YjEzMTAzNzFmNmY2ZGYwLi5jYjk0Mzk2ZGM4NzY5N2VlYmUzOWQ1Y2UyNjFlY2Ex
YjQ2MWEwNTJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTA1IEBACiAyMDExLTEwLTIwICBQYXZl
bCBGZWxkbWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNvbT4KIAorICAgICAgICBXZWIgSW5zcGVjdG9y
OiBnZXQgcmlkIG9mIFZpZXc6OmhpZGUsIFZpZXc6OnNldCB2aXNpYmxlLCBWaWV3OjphdHRhY2gu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDUyMwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVj
dG9yL2Zyb250LWVuZC9BcHBsaWNhdGlvbkNhY2hlSXRlbXNWaWV3LmpzOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkFwcGxpY2F0aW9uQ2FjaGVJdGVtc1ZpZXcucHJvdG90eXBlLndhc1Nob3duKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5BcHBsaWNhdGlvbkNhY2hlSXRlbXNWaWV3LnByb3RvdHlw
ZS53aWxsSGlkZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXBwbGljYXRpb25DYWNoZUl0ZW1z
Vmlldy5wcm90b3R5cGUuX3VwZGF0ZUNhbGxiYWNrKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJv
bnQtZW5kL0F1ZGl0c1BhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkF1ZGl0c1BhbmVs
LnByb3RvdHlwZS53YXNTaG93bik6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Db25z
b2xlUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZVBhbmVsLnByb3RvdHlw
ZS53YXNTaG93bik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZVBhbmVsLnByb3RvdHlw
ZS53aWxsSGlkZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5q
czoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUud2FzU2hvd24p
OgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQ29va2llSXRlbXNWaWV3LmpzOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkNvb2tpZUl0ZW1zVmlldy5wcm90b3R5cGUud2FzU2hvd24pOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkNvb2tpZUl0ZW1zVmlldy5wcm90b3R5cGUud2lsbEhpZGUp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvb2tpZUl0ZW1zVmlldy5wcm90b3R5cGUuX3VwZGF0
ZVdpdGhDb29raWVzKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0RPTVN0b3JhZ2VJ
dGVtc1ZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZUl0ZW1zVmlldy5w
cm90b3R5cGUud2FzU2hvd24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VJdGVt
c1ZpZXcucHJvdG90eXBlLndpbGxIaWRlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L0RhdGFiYXNlUXVlcnlWaWV3LmpzOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRGF0
YWJhc2VUYWJsZVZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGF0YWJhc2VUYWJsZVZp
ZXcucHJvdG90eXBlLndhc1Nob3duKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0Rl
dGFpbGVkSGVhcHNob3RWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRldGFpbGVkSGVh
cHNob3RWaWV3LnByb3RvdHlwZS53aWxsSGlkZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGV0
YWlsZWRIZWFwc2hvdFZpZXcucHJvdG90eXBlLl9jaGFuZ2VWaWV3KToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZnJvbnQtZW5kL0RyYXdlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EcmF3ZXIu
cHJvdG90eXBlLmhpZGUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNQ
YW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50c1BhbmVsLnByb3RvdHlwZS53
YXNTaG93bik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90b3R5cGUu
d2lsbEhpZGUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRW1wdHlWaWV3LmpzOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkVtcHR5Vmlldy5wcm90b3R5cGUud2FzU2hvd24pOgorICAg
ICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRm9udFZpZXcuanM6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuRm9udFZpZXcucHJvdG90eXBlLndhc1Nob3duKToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZnJvbnQtZW5kL0lGcmFtZVZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSUZyYW1lVmll
dyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9JbWFnZVZpZXcuanM6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuSW1hZ2VWaWV3LnByb3RvdHlwZS53YXNTaG93bik6CisgICAgICAgICog
aW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrSXRlbVZpZXcuanM6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuTmV0d29ya0l0ZW1WaWV3LnByb3RvdHlwZS53YXNTaG93bik6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuUmVzb3VyY2VDb250ZW50Vmlldy5wcm90b3R5cGUud2FzU2hvd24pOgorICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya1BhbmVsLmpzOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLk5ldHdvcmtMb2dWaWV3LnByb3RvdHlwZS53YXNTaG93bik6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuTmV0d29ya0xvZ1ZpZXcucHJvdG90eXBlLndpbGxIaWRlKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5OZXR3b3JrUGFuZWwucHJvdG90eXBlLndhc1Nob3duKToKKyAgICAgICAgKiBp
bnNwZWN0b3IvZnJvbnQtZW5kL1BhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlBhbmVs
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5QYW5lbC5wcm90b3R5cGUuc2hvdyk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBlLndhc1Nob3duKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5QYW5lbC5wcm90b3R5cGUud2lsbEhpZGUpOgorICAgICAgICAqIGluc3BlY3Rvci9m
cm9udC1lbmQvUGFuZWxFbmFibGVyVmlldy5qczoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL1Byb2ZpbGVWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNQVVByb2ZpbGVWaWV3
LnByb3RvdHlwZS53aWxsSGlkZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9m
aWxlc1BhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90
eXBlLndhc1Nob3duKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3Rv
dHlwZS5fYWRkUHJvZmlsZUhlYWRlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvZmlsZXNQ
YW5lbC5wcm90b3R5cGUuX3VwZGF0ZUludGVyZmFjZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
UHJvZmlsZXNQYW5lbC5wcm90b3R5cGUuX2VuYWJsZURldGFpbGVkSGVhcFByb2ZpbGVzKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlQ29va2llc1ZpZXcuanM6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VDb29raWVzVmlldy5wcm90b3R5cGUud2FzU2hvd24p
OgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VIVE1MVmlldy5qczoKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZUhUTUxWaWV3LnByb3RvdHlwZS53YXNTaG93bik6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VIVE1MVmlldy5wcm90b3R5cGUud2lsbEhp
ZGUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VKU09OVmlldy5qczoK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZUpTT05WaWV3LnBhcnNlSlNPTi5XZWJJbnNw
ZWN0b3IuUmVzb3VyY2VKU09OVmlldy5wcm90b3R5cGUud2FzU2hvd24pOgorICAgICAgICAqIGlu
c3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VUaW1pbmdWaWV3LmpzOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlJlc291cmNlVGltaW5nVmlldy5wcm90b3R5cGUud2FzU2hvd24pOgorICAgICAgICAq
IGluc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VzUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuUmVzb3VyY2VzUGFuZWwucHJvdG90eXBlLndhc1Nob3duKToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5T
Y3JpcHRzUGFuZWwucHJvdG90eXBlLndhc1Nob3duKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5T
Y3JpcHRzUGFuZWwucHJvdG90eXBlLl91cGRhdGVEZWJ1Z2dlckJ1dHRvbnMpOgorICAgICAgICAq
IGluc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRnJhbWUuanM6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuU291cmNlRnJhbWUucHJvdG90eXBlLndhc1Nob3duKToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxp
bmVQYW5lbC5wcm90b3R5cGUud2FzU2hvd24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVs
aW5lUGFuZWwucHJvdG90eXBlLndpbGxIaWRlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL1ZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlldyk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuVmlldy5wcm90b3R5cGUuZ2V0IHZpc2libGUpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlZpZXcucHJvdG90eXBlLnNldEhpZGVPbkRldGFjaCk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuVmlldy5wcm90b3R5cGUuX3dhc1Nob3duKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaWV3
LnByb3RvdHlwZS5fd2lsbEhpZGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90
eXBlLl9vblJlc2l6ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUud2Fz
U2hvd24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLndpbGxIaWRlKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZS5vblJlc2l6ZSk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUuc2hvdyk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuVmlldy5wcm90b3R5cGUuZGV0YWNoKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaWV3LnBy
b3RvdHlwZS5kb1Jlc2l6ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUu
ZGlzcGF0Y2hUb1NlbGZBbmRDaGlsZHJlbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlldy5w
cm90b3R5cGUuZGlzcGF0Y2hUb0NoaWxkcmVuKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaWV3
LnByb3RvdHlwZS5faGFuZGxlSW5zZXJ0ZWRJbnRvRG9jdW1lbnQpOgorCisyMDExLTEwLTIwICBQ
YXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNvbT4KKwogICAgICAgICBXZWIgSW5zcGVj
dG9yOiBkZXRhY2ggc2hvdWxkIGNhbGwgaGlkZSBzbyB0aGF0IG92ZXJyaWRlcyBhcmUgcHJvY2Vz
c2VkLgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA1
MDMKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BcHBs
aWNhdGlvbkNhY2hlSXRlbXNWaWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9BcHBsaWNhdGlvbkNhY2hlSXRlbXNWaWV3LmpzCmluZGV4IDhjY2M4OGI2NGI5YjE5YWM4
NTM0YTc0NzI5N2Y1NWI0ZmEwYmVhZmEuLmM5ZDZlZGFjZTMzM2NmYjMwZmFjYjEyYjNjY2Q2YzNk
NmU5MjAwMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
QXBwbGljYXRpb25DYWNoZUl0ZW1zVmlldy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0FwcGxpY2F0aW9uQ2FjaGVJdGVtc1ZpZXcuanMKQEAgLTEwMywxNiArMTAz
LDE0IEBAIFdlYkluc3BlY3Rvci5BcHBsaWNhdGlvbkNhY2hlSXRlbXNWaWV3LnByb3RvdHlwZSA9
IHsKICAgICAgICAgfQogICAgIH0sCiAKLSAgICBzaG93OiBmdW5jdGlvbihwYXJlbnRFbGVtZW50
KQorICAgIHdhc1Nob3duOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBXZWJJbnNwZWN0b3Iu
Vmlldy5wcm90b3R5cGUuc2hvdy5jYWxsKHRoaXMsIHBhcmVudEVsZW1lbnQpOwogICAgICAgICB0
aGlzLnVwZGF0ZU5ldHdvcmtTdGF0ZShuYXZpZ2F0b3Iub25MaW5lKTsKICAgICAgICAgdGhpcy5f
dXBkYXRlKCk7CiAgICAgfSwKIAotICAgIGhpZGU6IGZ1bmN0aW9uKCkKKyAgICB3aWxsSGlkZTog
ZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLmhp
ZGUuY2FsbCh0aGlzKTsKICAgICAgICAgdGhpcy5kZWxldGVCdXR0b24udmlzaWJsZSA9IGZhbHNl
OwogICAgIH0sCiAKQEAgLTE3OSw3ICsxNzcsNyBAQCBXZWJJbnNwZWN0b3IuQXBwbGljYXRpb25D
YWNoZUl0ZW1zVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX3BvcHVsYXRlRGF0YUdy
aWQoKTsKICAgICAgICAgdGhpcy5fZGF0YUdyaWQuYXV0b1NpemVDb2x1bW5zKDIwLCA4MCk7CiAg
ICAgICAgIHRoaXMuX2RhdGFHcmlkLmVsZW1lbnQucmVtb3ZlU3R5bGVDbGFzcygiaGlkZGVuIik7
Ci0gICAgICAgIHRoaXMuX2VtcHR5Vmlldy5oaWRlKCk7CisgICAgICAgIHRoaXMuX2VtcHR5Vmll
dy5kZXRhY2goKTsKICAgICAgICAgdGhpcy5kZWxldGVCdXR0b24udmlzaWJsZSA9IHRydWU7CiAK
ICAgICAgICAgdmFyIHRvdGFsU2l6ZVN0cmluZyA9IE51bWJlci5ieXRlc1RvU3RyaW5nKHRoaXMu
X3NpemUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9B
dWRpdHNQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRz
UGFuZWwuanMKaW5kZXggNTdkZWJmMzAyYjNmYmIxMzY3ZmQ2OGE0OGVkNjVjOGU0MTI4NDk3OC4u
OTJiNTMxZjQ1ZGUzYjVkZTk4OGM3MDk5YzJiZmYzNzMyMTA3YzE2NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BdWRpdHNQYW5lbC5qcworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1ZGl0c1BhbmVsLmpzCkBAIC0yNDQsOSAr
MjQ0LDkgQEAgV2ViSW5zcGVjdG9yLkF1ZGl0c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAg
ICAgIHguc2hvdyh0aGlzLnZpZXdzQ29udGFpbmVyRWxlbWVudCk7CiAgICAgfSwKIAotICAgIHNo
b3c6IGZ1bmN0aW9uKCkKKyAgICB3YXNTaG93bjogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAg
V2ViSW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZS5zaG93LmNhbGwodGhpcyk7CisgICAgICAgIFdl
Ykluc3BlY3Rvci5QYW5lbC5wcm90b3R5cGUud2FzU2hvd24uY2FsbCh0aGlzKTsKICAgICAgICAg
aWYgKCF0aGlzLl92aXNpYmxlVmlldykKICAgICAgICAgICAgIHRoaXMuYXVkaXRzSXRlbVRyZWVF
bGVtZW50LnNlbGVjdCgpOwogICAgIH0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvQ29uc29sZVBhbmVsLmpzCmluZGV4IGY3NmU1YjY0NTQ1ZTEzZDZmODkzOWNk
MTU3OGExOGJiMmE5N2Y1OTUuLmNiYzEyZWYzYmFmYzg5ZjMwYWU1ODUzNzIyYzg2ZGU3ODk0NzQz
NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29s
ZVBhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29s
ZVBhbmVsLmpzCkBAIC01MCwyMyArNTAsMjMgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVQYW5lbC5w
cm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiB0aGlzLl92aWV3LnN0YXR1c0Jhckl0ZW1zOwog
ICAgIH0sCiAKLSAgICBzaG93OiBmdW5jdGlvbigpCisgICAgd2FzU2hvd246IGZ1bmN0aW9uKCkK
ICAgICB7CisgICAgICAgIFdlYkluc3BlY3Rvci5QYW5lbC5wcm90b3R5cGUud2FzU2hvd24uY2Fs
bCh0aGlzKTsKICAgICAgICAgaWYgKFdlYkluc3BlY3Rvci5kcmF3ZXIudmlzaWJsZSkgewogICAg
ICAgICAgICAgV2ViSW5zcGVjdG9yLmRyYXdlci5oaWRlKFdlYkluc3BlY3Rvci5EcmF3ZXIuQW5p
bWF0aW9uVHlwZS5JbW1lZGlhdGVseSk7CiAgICAgICAgICAgICB0aGlzLl9kcmF3ZXJXYXNWaXNp
YmxlID0gdHJ1ZTsKICAgICAgICAgfQotICAgICAgICBXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90
eXBlLnNob3cuY2FsbCh0aGlzKTsKICAgICAgICAgdGhpcy5fdmlldy5zaG93KHRoaXMuZWxlbWVu
dCk7CiAgICAgfSwKIAotICAgIGhpZGU6IGZ1bmN0aW9uKCkKKyAgICB3aWxsSGlkZTogZnVuY3Rp
b24oKQogICAgIHsKLSAgICAgICAgV2ViSW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZS5oaWRlLmNh
bGwodGhpcyk7CiAgICAgICAgIGlmICh0aGlzLl9kcmF3ZXJXYXNWaXNpYmxlKSB7CiAgICAgICAg
ICAgICBXZWJJbnNwZWN0b3IuZHJhd2VyLnNob3codGhpcy5fdmlldywgV2ViSW5zcGVjdG9yLkRy
YXdlci5BbmltYXRpb25UeXBlLkltbWVkaWF0ZWx5KTsKICAgICAgICAgICAgIGRlbGV0ZSB0aGlz
Ll9kcmF3ZXJXYXNWaXNpYmxlOwogICAgICAgICB9CisgICAgICAgIFdlYkluc3BlY3Rvci5QYW5l
bC5wcm90b3R5cGUud2lsbEhpZGUuY2FsbCh0aGlzKTsKICAgICB9LAogCiAgICAgc2VhcmNoQ2Fu
Y2VsZWQ6IGZ1bmN0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvQ29uc29sZVZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0NvbnNvbGVWaWV3LmpzCmluZGV4IDg0ZDAxMTEwN2Y5YTZiNDg4NmY2ZmJlMzk4ZWZjZTkz
NjYyNDQxYmIuLmY0Zjg0MzJjYTk4MWE4OTVkMGZhNDU1OTZkNjJiNTcxZTQwOTg4MmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanMK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5qcwpA
QCAtMjI2LDcgKzIyNiw2IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUgPSB7
CiAKICAgICB3YXNTaG93bjogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgV2ViSW5zcGVjdG9y
LlZpZXcucHJvdG90eXBlLndhc1Nob3duLmNhbGwodGhpcyk7CiAgICAgICAgIGlmICghdGhpcy5w
cm9tcHQuaXNDYXJldEluc2lkZVByb21wdCgpKQogICAgICAgICAgICAgdGhpcy5wcm9tcHQubW92
ZUNhcmV0VG9FbmRPZlByb21wdCgpOwogICAgIH0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0Nvb2tpZUl0ZW1zVmlldy5qcyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvQ29va2llSXRlbXNWaWV3LmpzCmluZGV4IGJlYTgzNjQ1NzIw
YzZlYjNlZWIxMjg4NjI0ZjdhZmJjZWRkMDZiMWMuLjQ4YWEyOTM0MTY5ZmM2NjdlN2Y1NjI1NjEy
M2FkYzJjNjUxZjdhYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvQ29va2llSXRlbXNWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvQ29va2llSXRlbXNWaWV3LmpzCkBAIC01OSwxNSArNTksMTMgQEAgV2ViSW5zcGVj
dG9yLkNvb2tpZUl0ZW1zVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiBbdGhpcy5f
cmVmcmVzaEJ1dHRvbi5lbGVtZW50LCB0aGlzLl9kZWxldGVCdXR0b24uZWxlbWVudF07CiAgICAg
fSwKIAotICAgIHNob3c6IGZ1bmN0aW9uKHBhcmVudEVsZW1lbnQpCisgICAgd2FzU2hvd246IGZ1
bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZS5zaG93
LmNhbGwodGhpcywgcGFyZW50RWxlbWVudCk7CiAgICAgICAgIHRoaXMuX3VwZGF0ZSgpOwogICAg
IH0sCiAKLSAgICBoaWRlOiBmdW5jdGlvbigpCisgICAgd2lsbEhpZGU6IGZ1bmN0aW9uKCkKICAg
ICB7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZS5oaWRlLmNhbGwodGhpcyk7
CiAgICAgICAgIHRoaXMuX2RlbGV0ZUJ1dHRvbi52aXNpYmxlID0gZmFsc2U7CiAgICAgfSwKIApA
QCAtMTAyLDcgKzEwMCw3IEBAIFdlYkluc3BlY3Rvci5Db29raWVJdGVtc1ZpZXcucHJvdG90eXBl
ID0gewogCiAgICAgICAgIHRoaXMuX2Nvb2tpZXNUYWJsZS5zZXRDb29raWVzKHRoaXMuX2Nvb2tp
ZXMpOwogICAgICAgICB0aGlzLl9jb29raWVzVGFibGUuZWxlbWVudC5yZW1vdmVTdHlsZUNsYXNz
KCJoaWRkZW4iKTsKLSAgICAgICAgdGhpcy5fZW1wdHlWaWV3LmhpZGUoKTsKKyAgICAgICAgdGhp
cy5fZW1wdHlWaWV3LmRldGFjaCgpOwogICAgICAgICBpZiAoaXNBZHZhbmNlZCkgewogICAgICAg
ICAgICAgdGhpcy5fdHJlZUVsZW1lbnQuc3VidGl0bGUgPSBTdHJpbmcuc3ByaW50ZihXZWJJbnNw
ZWN0b3IuVUlTdHJpbmcoIiVkIGNvb2tpZXMgKCVzKSIpLCB0aGlzLl9jb29raWVzLmxlbmd0aCwK
ICAgICAgICAgICAgICAgICBOdW1iZXIuYnl0ZXNUb1N0cmluZyh0aGlzLl90b3RhbFNpemUpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9NU3RvcmFn
ZUl0ZW1zVmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9NU3Rv
cmFnZUl0ZW1zVmlldy5qcwppbmRleCAxNWI0YzFiMDFkMjNmYjk2Zjk1MTM5NjIwZWE5MGUzYjll
M2E3ODk0Li5iODY5NGY3YzM5NDI5NWJmZjY2OTUzODA4M2QyYWQ1YTAyOWQ3YjkzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTVN0b3JhZ2VJdGVtc1Zp
ZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9ET01TdG9yYWdl
SXRlbXNWaWV3LmpzCkBAIC01MCwxNSArNTAsMTMgQEAgV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VJ
dGVtc1ZpZXcucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gW3RoaXMucmVmcmVzaEJ1dHRv
bi5lbGVtZW50LCB0aGlzLmRlbGV0ZUJ1dHRvbi5lbGVtZW50XTsKICAgICB9LAogCi0gICAgc2hv
dzogZnVuY3Rpb24ocGFyZW50RWxlbWVudCkKKyAgICB3YXNTaG93bjogZnVuY3Rpb24oKQogICAg
IHsKLSAgICAgICAgV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLnNob3cuY2FsbCh0aGlzLCBw
YXJlbnRFbGVtZW50KTsKICAgICAgICAgdGhpcy51cGRhdGUoKTsKICAgICB9LAogCi0gICAgaGlk
ZTogZnVuY3Rpb24oKQorICAgIHdpbGxIaWRlOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBX
ZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUuaGlkZS5jYWxsKHRoaXMpOwogICAgICAgICB0aGlz
LmRlbGV0ZUJ1dHRvbi52aXNpYmxlID0gZmFsc2U7CiAgICAgfSwKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EYXRhYmFzZVF1ZXJ5Vmlldy5qcyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGF0YWJhc2VRdWVyeVZpZXcuanMKaW5k
ZXggNjkyMDdjZjc2OTk5OTNkMWZhMGUwMDJhYTI2NTZkYTk4Y2M0NWRjZS4uZTA0MzU0YzBkYWY2
Y2ZiNTFmODM3NGUxMjAzNjBjZjg4MjFlZDkzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9EYXRhYmFzZVF1ZXJ5Vmlldy5qcworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RhdGFiYXNlUXVlcnlWaWV3LmpzCkBAIC01NCwxMCAr
NTQsOCBAQCBXZWJJbnNwZWN0b3IuRGF0YWJhc2VRdWVyeVZpZXcuRXZlbnRzID0gewogfQogCiBX
ZWJJbnNwZWN0b3IuRGF0YWJhc2VRdWVyeVZpZXcucHJvdG90eXBlID0gewotICAgIHNob3c6IGZ1
bmN0aW9uKHBhcmVudEVsZW1lbnQpCisgICAgd2FzU2hvd246IGZ1bmN0aW9uKCkKICAgICB7Ci0g
ICAgICAgIFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZS5zaG93LmNhbGwodGhpcywgcGFyZW50
RWxlbWVudCk7Ci0KICAgICAgICAgZnVuY3Rpb24gbW92ZUJhY2tJZk91dHNpZGUoKQogICAgICAg
ICB7CiAgICAgICAgICAgICBpZiAoIXRoaXMucHJvbXB0LmlzQ2FyZXRJbnNpZGVQcm9tcHQoKSAm
JiB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuaXNDb2xsYXBzZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RhdGFiYXNlVGFibGVWaWV3LmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EYXRhYmFzZVRhYmxlVmlldy5qcwppbmRleCAx
OGE1Y2FjNjQyM2NkYjNlZTBiMDE0NzJjMzIyMTEzZGNiYTk3YWZhLi41NzZlY2UzNTZmMWUzMzRm
ODBlMGFiNDQ5N2IyYWFhYWI2ZDU2ZTA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0RhdGFiYXNlVGFibGVWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvRGF0YWJhc2VUYWJsZVZpZXcuanMKQEAgLTQyLDkgKzQyLDgg
QEAgV2ViSW5zcGVjdG9yLkRhdGFiYXNlVGFibGVWaWV3ID0gZnVuY3Rpb24oZGF0YWJhc2UsIHRh
YmxlTmFtZSkKIH0KIAogV2ViSW5zcGVjdG9yLkRhdGFiYXNlVGFibGVWaWV3LnByb3RvdHlwZSA9
IHsKLSAgICBzaG93OiBmdW5jdGlvbihwYXJlbnRFbGVtZW50KQorICAgIHdhc1Nob3duOiBmdW5j
dGlvbigpCiAgICAgewotICAgICAgICBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUuc2hvdy5j
YWxsKHRoaXMsIHBhcmVudEVsZW1lbnQpOwogICAgICAgICB0aGlzLnVwZGF0ZSgpOwogICAgIH0s
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGV0YWls
ZWRIZWFwc2hvdFZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0Rl
dGFpbGVkSGVhcHNob3RWaWV3LmpzCmluZGV4IGI1Y2RjMDk4ZDRlZThkMWVmMGNmNGNmODI2N2Ux
ODhiMTg5MWJkNWIuLmI1Y2I5MTBhZmY2OGZjMDAzNzY1NTY4MWQwZDFhNDAzYmUwZGFlYjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGV0YWlsZWRIZWFw
c2hvdFZpZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZXRh
aWxlZEhlYXBzaG90Vmlldy5qcwpAQCAtNzM5LDkgKzczOSw4IEBAIFdlYkluc3BlY3Rvci5EZXRh
aWxlZEhlYXBzaG90Vmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiB0aGlzLmJhc2VQ
cm9maWxlLnByb3h5OwogICAgIH0sCiAKLSAgICBzaG93OiBmdW5jdGlvbihwYXJlbnRFbGVtZW50
KQorICAgIHdhc1Nob3duOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBXZWJJbnNwZWN0b3Iu
Vmlldy5wcm90b3R5cGUuc2hvdy5jYWxsKHRoaXMsIHBhcmVudEVsZW1lbnQpOwogICAgICAgICBp
ZiAoIXRoaXMucHJvZmlsZVdyYXBwZXIubG9hZGVkKQogICAgICAgICAgICAgdGhpcy5fbG9hZFBy
b2ZpbGUodGhpcy5fcHJvZmlsZVVpZCwgcHJvZmlsZUNhbGxiYWNrMS5iaW5kKHRoaXMpKTsKICAg
ICAgICAgZWxzZQpAQCAtNzYwLDkgKzc1OSw4IEBAIFdlYkluc3BlY3Rvci5EZXRhaWxlZEhlYXBz
aG90Vmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgIH0KICAgICB9LAogCi0gICAgaGlkZTogZnVu
Y3Rpb24oKQorICAgIHdpbGxIaWRlOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBXZWJJbnNw
ZWN0b3IuVmlldy5wcm90b3R5cGUuaGlkZS5jYWxsKHRoaXMpOwogICAgICAgICB0aGlzLl9jdXJy
ZW50U2VhcmNoUmVzdWx0SW5kZXggPSAtMTsKICAgICB9LAogCkBAIC0xMDY4LDcgKzEwNjYsNyBA
QCBXZWJJbnNwZWN0b3IuRGV0YWlsZWRIZWFwc2hvdFZpZXcucHJvdG90eXBlID0gewogICAgICAg
ICAgICAgcmV0dXJuOwogCiAgICAgICAgIHRoaXMudmlld3MuY3VycmVudCA9IGV2ZW50LnRhcmdl
dC5zZWxlY3RlZEluZGV4OwotICAgICAgICB0aGlzLmN1cnJlbnRWaWV3LmhpZGUoKTsKKyAgICAg
ICAgdGhpcy5jdXJyZW50Vmlldy5kZXRhY2goKTsKICAgICAgICAgdmFyIHZpZXcgPSB0aGlzLnZp
ZXdzW3RoaXMudmlld3MuY3VycmVudF07CiAgICAgICAgIHRoaXMuY3VycmVudFZpZXcgPSB2aWV3
LnZpZXc7CiAgICAgICAgIHRoaXMuZGF0YUdyaWQgPSB2aWV3LmdyaWQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RyYXdlci5qcyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRHJhd2VyLmpzCmluZGV4IGM4MzY3Y2ZmNjg0YTFlOWFi
ZjNiOTllMjUwODRkYjQ0YjY3NGUzNDQuLmVjNTZlYTM0M2NmZmYzNWE3NTUwZDk1M2FiZWE2NTQx
NmUxMThjMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
RHJhd2VyLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRHJhd2Vy
LmpzCkBAIC0xNzMsNyArMTczLDYgQEAgV2ViSW5zcGVjdG9yLkRyYXdlci5wcm90b3R5cGUgPSB7
CiAgICAgICAgICAgICAgICAgdGhpcy5fY291bnRlcnMuaW5zZXJ0QmVmb3JlKHRoaXMuX2N1cnJl
bnRQYW5lbENvdW50ZXJzLCB0aGlzLl9jb3VudGVycy5maXJzdENoaWxkKTsKICAgICAgICAgICAg
IH0KIAotICAgICAgICAgICAgdGhpcy5fdmlldy5oaWRlKCk7CiAgICAgICAgICAgICB0aGlzLl9k
cmF3ZXJDb250ZW50c0VsZW1lbnQucmVtb3ZlQ2hpbGRyZW4oKTsKICAgICAgICAgICAgIGRlbGV0
ZSB0aGlzLl92aWV3OwogICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVTdHlsZUNsYXNz
KCJkcmF3ZXItdmlzaWJsZSIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9FbGVtZW50c1BhbmVsLmpzCmluZGV4IGFhNmRlZDBhOGUwOTA2MDAwZWNkZTVkYjdi
NzA0YTcyMTEwZDk5NDYuLmUzZTViY2QzYzBjNTRiYmJkOWMxMzNlYmIwMDI3ZDc1OTQxMTNhY2Eg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNQ
YW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRz
UGFuZWwuanMKQEAgLTEyNCwxMyArMTI0LDE0IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1BhbmVs
LnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy51cGRhdGVCcmVhZGNydW1iU2l6ZXMoKTsKICAg
ICB9LAogCi0gICAgc2hvdzogZnVuY3Rpb24oKQorICAgIHdhc1Nob3duOiBmdW5jdGlvbigpCiAg
ICAgeworICAgICAgICBXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBlLndhc1Nob3duLmNhbGwo
dGhpcyk7CisKICAgICAgICAgLy8gQXR0YWNoIGhlYXZ5IGNvbXBvbmVudCBsYXppbHkKICAgICAg
ICAgaWYgKHRoaXMudHJlZU91dGxpbmUuZWxlbWVudC5wYXJlbnRFbGVtZW50ICE9PSB0aGlzLmNv
bnRlbnRFbGVtZW50KQogICAgICAgICAgICAgdGhpcy5jb250ZW50RWxlbWVudC5hcHBlbmRDaGls
ZCh0aGlzLnRyZWVPdXRsaW5lLmVsZW1lbnQpOwogCi0gICAgICAgIFdlYkluc3BlY3Rvci5QYW5l
bC5wcm90b3R5cGUuc2hvdy5jYWxsKHRoaXMpOwogICAgICAgICB0aGlzLnNpZGViYXJSZXNpemVF
bGVtZW50LnN0eWxlLnJpZ2h0ID0gKHRoaXMuc2lkZWJhckVsZW1lbnQub2Zmc2V0V2lkdGggLSAz
KSArICJweCI7CiAgICAgICAgIHRoaXMudXBkYXRlQnJlYWRjcnVtYigpOwogICAgICAgICB0aGlz
LnRyZWVPdXRsaW5lLnVwZGF0ZVNlbGVjdGlvbigpOwpAQCAtMTQwLDE2ICsxNDEsMTYgQEAgV2Vi
SW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAgdGhpcy5z
aWRlYmFyRWxlbWVudC5pbnNlcnRCZWZvcmUodGhpcy5zaWRlYmFyUGFuZXMuZG9tQnJlYWtwb2lu
dHMuZWxlbWVudCwgdGhpcy5zaWRlYmFyUGFuZXMuZXZlbnRMaXN0ZW5lcnMuZWxlbWVudCk7CiAg
ICAgfSwKIAotICAgIGhpZGU6IGZ1bmN0aW9uKCkKKyAgICB3aWxsSGlkZTogZnVuY3Rpb24oKQog
ICAgIHsKLSAgICAgICAgV2ViSW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZS5oaWRlLmNhbGwodGhp
cyk7Ci0KICAgICAgICAgV2ViSW5zcGVjdG9yLmRvbUFnZW50LmhpZGVET01Ob2RlSGlnaGxpZ2h0
KCk7CiAgICAgICAgIHRoaXMuc2V0U2VhcmNoaW5nRm9yTm9kZShmYWxzZSk7CiAgICAgICAgIHRo
aXMudHJlZU91dGxpbmUuc2V0VmlzaWJsZShmYWxzZSk7CiAKICAgICAgICAgLy8gRGV0YWNoIGhl
YXZ5IGNvbXBvbmVudCBvbiBoaWRlCiAgICAgICAgIHRoaXMuY29udGVudEVsZW1lbnQucmVtb3Zl
Q2hpbGQodGhpcy50cmVlT3V0bGluZS5lbGVtZW50KTsKKworICAgICAgICBXZWJJbnNwZWN0b3Iu
UGFuZWwucHJvdG90eXBlLndpbGxIaWRlLmNhbGwodGhpcyk7CiAgICAgfSwKIAogICAgIG9uUmVz
aXplOiBmdW5jdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0VtcHR5Vmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
RW1wdHlWaWV3LmpzCmluZGV4IGY5ODY2MTJkOTk4MDBlY2NhZWRiYWJkZTFhZTRmMGYwMDUwNzFl
YTcuLjFkNDRjOGFjNDBiYzgzNTQ2YjA2ZGRhNWM1MGE1MmE1OGVmNTlhNTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRW1wdHlWaWV3LmpzCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRW1wdHlWaWV3LmpzCkBAIC0zOSwxMyAr
MzksOCBAQCBXZWJJbnNwZWN0b3IuRW1wdHlWaWV3ID0gZnVuY3Rpb24odGV4dCkKIH0KIAogV2Vi
SW5zcGVjdG9yLkVtcHR5Vmlldy5wcm90b3R5cGUgPSB7Ci0gICAgLyoqCi0gICAgICogQHBhcmFt
IHtFbGVtZW50fSBwYXJlbnRFbGVtZW50Ci0gICAgICovCi0gICAgc2hvdzogZnVuY3Rpb24ocGFy
ZW50RWxlbWVudCkKKyAgICB3YXNTaG93bjogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgV2Vi
SW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLnNob3cuY2FsbCh0aGlzLCBwYXJlbnRFbGVtZW50KTsK
LQogICAgICAgICB0aGlzLmVsZW1lbnQuY2xhc3NOYW1lID0gInN0b3JhZ2UtZW1wdHktdmlldyI7
CiAgICAgICAgIHRoaXMuZWxlbWVudC50ZXh0Q29udGVudCA9IHRoaXMuX3RleHQ7CiAgICAgfSwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRm9udFZpZXcu
anMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ZvbnRWaWV3LmpzCmluZGV4
IDc2MGM3NWExODEwYjY3N2E2YmQ1ZGM5NzUwMGZlNzBmNjNmMGExMTYuLjVhN2NmYzFhMTkxODll
MWZjMzIxY2VhMGE1NDQyYjBkMmUwNjZjNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvRm9udFZpZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9Gb250Vmlldy5qcwpAQCAtNzcsOSArNzcsOCBAQCBXZWJJbnNwZWN0b3Iu
Rm9udFZpZXcucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQo
dGhpcy5mb250UHJldmlld0VsZW1lbnQpOwogICAgIH0sCiAKLSAgICBzaG93OiBmdW5jdGlvbihw
YXJlbnRFbGVtZW50KQorICAgIHdhc1Nob3duOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBX
ZWJJbnNwZWN0b3IuUmVzb3VyY2VWaWV3LnByb3RvdHlwZS5zaG93LmNhbGwodGhpcywgcGFyZW50
RWxlbWVudCk7CiAgICAgICAgIHRoaXMuX2NyZWF0ZUNvbnRlbnRJZk5lZWRlZCgpOwogCiAgICAg
ICAgIHRoaXMudXBkYXRlRm9udFByZXZpZXdTaXplKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0lGcmFtZVZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0lGcmFtZVZpZXcuanMKaW5kZXggZTIxMDFmNzE0ZTAzYzE1Mzkz
Y2JkZDgwM2U0YjAwZDQ5ZmNkZTVmZi4uNmRmNmE5ZWJkOGY2ZDBjZTI0NjRiZDY3YjU1ZjFmMWVh
MjRlZjQ1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9J
RnJhbWVWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSUZy
YW1lVmlldy5qcwpAQCAtMzgsMzYgKzM4LDEyIEBAIFdlYkluc3BlY3Rvci5JRnJhbWVWaWV3ID0g
ZnVuY3Rpb24oc3JjLCBjbGFzc05hbWUpCiB7CiAgICAgV2ViSW5zcGVjdG9yLlZpZXcuY2FsbCh0
aGlzKTsKICAgICB0aGlzLmVsZW1lbnQuY2xhc3NOYW1lID0gImZpbGwiOwotICAgIHRoaXMuX3Ny
YyA9IHNyYzsKLSAgICB0aGlzLl9jbGFzc05hbWUgPSBjbGFzc05hbWU7Ci19Ci0KLVdlYkluc3Bl
Y3Rvci5JRnJhbWVWaWV3LnByb3RvdHlwZSA9IHsKLSAgICB3aWxsRGV0YWNoOiBmdW5jdGlvbigp
Ci0gICAgewotICAgICAgICBpZiAodGhpcy5faWZyYW1lKSB7Ci0gICAgICAgICAgICBpZiAoIVdl
Ykluc3BlY3Rvci5JRnJhbWVWaWV3Ll9wYXJlbnRJZnJhbWUpIHsKLSAgICAgICAgICAgICAgICBX
ZWJJbnNwZWN0b3IuSUZyYW1lVmlldy5fcGFyZW50SWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiaWZyYW1lIik7Ci0gICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLklGcmFtZVZpZXcu
X3BhcmVudElmcmFtZS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwotICAgICAgICAgICAgICAgIGRv
Y3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoV2ViSW5zcGVjdG9yLklGcmFtZVZpZXcuX3BhcmVudElm
cmFtZSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBXZWJJbnNwZWN0b3IuSUZyYW1lVmll
dy5fcGFyZW50SWZyYW1lLmNvbnRlbnREb2N1bWVudC5hZG9wdE5vZGUodGhpcy5faWZyYW1lKTsK
LSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5JRnJhbWVWaWV3Ll9wYXJlbnRJZnJhbWUuY29udGVu
dERvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGhpcy5faWZyYW1lKTsKLSAgICAgICAgfQotICAg
IH0sCi0KLSAgICBvbkluc2VydGVkSW50b0RvY3VtZW50OiBmdW5jdGlvbigpCi0gICAgewotICAg
ICAgICBpZiAoIXRoaXMuX2lmcmFtZSkgewotICAgICAgICAgICAgdGhpcy5faWZyYW1lID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7Ci0gICAgICAgICAgICB0aGlzLl9pZnJhbWUu
c3JjID0gdGhpcy5fc3JjOwotICAgICAgICAgICAgaWYgKHRoaXMuX2NsYXNzTmFtZSkKLSAgICAg
ICAgICAgICAgICB0aGlzLl9pZnJhbWUuY2xhc3NOYW1lID0gdGhpcy5fY2xhc3NOYW1lOwotICAg
ICAgICB9CiAKLSAgICAgICAgZG9jdW1lbnQuYWRvcHROb2RlKHRoaXMuX2lmcmFtZSk7Ci0gICAg
ICAgIHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9pZnJhbWUpOwotICAgIH0KKyAgICB0
aGlzLl9pZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICB0aGlz
Ll9pZnJhbWUuc3JjID0gc3JjOworICAgIGlmIChjbGFzc05hbWUpCisgICAgICAgIHRoaXMuX2lm
cmFtZS5jbGFzc05hbWUgPSBjbGFzc05hbWU7CisgICAgdGhpcy5lbGVtZW50LmFwcGVuZENoaWxk
KHRoaXMuX2lmcmFtZSk7CiB9CiAKIFdlYkluc3BlY3Rvci5JRnJhbWVWaWV3LnByb3RvdHlwZS5f
X3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ltYWdlVmlldy5qcyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSW1hZ2VWaWV3LmpzCmluZGV4IDcwZmUwNDI5YjNjODc3
NTQ2YjM3ZWRiYjU4NmYzOWIwZjE3YTZiYmEuLmYwYmZmMWNjYzJlZmJkNDVkNWE1ZTUxNmQxYWNl
N2ExNDNjMzEwODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvSW1hZ2VWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
SW1hZ2VWaWV3LmpzCkBAIC00Myw5ICs0Myw4IEBAIFdlYkluc3BlY3Rvci5JbWFnZVZpZXcucHJv
dG90eXBlID0gewogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9LAogCi0gICAgc2hvdzogZnVu
Y3Rpb24ocGFyZW50RWxlbWVudCkKKyAgICB3YXNTaG93bjogZnVuY3Rpb24oKQogICAgIHsKLSAg
ICAgICAgV2ViSW5zcGVjdG9yLlJlc291cmNlVmlldy5wcm90b3R5cGUuc2hvdy5jYWxsKHRoaXMs
IHBhcmVudEVsZW1lbnQpOwogICAgICAgICB0aGlzLl9jcmVhdGVDb250ZW50SWZOZWVkZWQoKTsK
ICAgICB9LAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L05ldHdvcmtJdGVtVmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
TmV0d29ya0l0ZW1WaWV3LmpzCmluZGV4IDMxNTdkYTZkMjliYWUzZTViMjE2MDdkZmVlNWI0ZDA4
YzkzYTc2YjcuLjZmNjYxN2ZmNTFiOTU2ZGYwNThiYjVkOTcxOWZmYWYwYzcxZjE2MGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya0l0ZW1WaWV3
LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya0l0ZW1W
aWV3LmpzCkBAIC02MSw5ICs2MSw5IEBAIFdlYkluc3BlY3Rvci5OZXR3b3JrSXRlbVZpZXcgPSBm
dW5jdGlvbihyZXNvdXJjZSkKIH0KIAogV2ViSW5zcGVjdG9yLk5ldHdvcmtJdGVtVmlldy5wcm90
b3R5cGUgPSB7Ci0gICAgc2hvdzogZnVuY3Rpb24ocGFyZW50RWxlbWVudCkKKyAgICB3YXNTaG93
bjogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgV2ViSW5zcGVjdG9yLlRhYmJlZFBhbmUucHJv
dG90eXBlLnNob3cuY2FsbCh0aGlzLCBwYXJlbnRFbGVtZW50KTsKKyAgICAgICAgV2ViSW5zcGVj
dG9yLlRhYmJlZFBhbmUucHJvdG90eXBlLndhc1Nob3duLmNhbGwoKTsKICAgICAgICAgdGhpcy5f
c2VsZWN0VGFiKCk7CiAgICAgfSwKIApAQCAtMTE2LDE5ICsxMTYsMTEgQEAgV2ViSW5zcGVjdG9y
LlJlc291cmNlQ29udGVudFZpZXcucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9pbm5lclZp
ZXcgPSBpbm5lclZpZXc7CiAgICAgfSwKIAotICAgIHNob3c6IGZ1bmN0aW9uKHBhcmVudEVsZW1l
bnQpCisgICAgd2FzU2hvd246IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIFdlYkluc3BlY3Rv
ci5SZXNvdXJjZVZpZXcucHJvdG90eXBlLnNob3cuY2FsbCh0aGlzLCBwYXJlbnRFbGVtZW50KTsK
ICAgICAgICAgdGhpcy5fZW5zdXJlSW5uZXJWaWV3U2hvd24oKTsKICAgICB9LAogCi0gICAgaGlk
ZTogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX2lubmVyVmlldykKLSAgICAg
ICAgICAgIHRoaXMuX2lubmVyVmlldy5oaWRlKCk7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5SZXNv
dXJjZVZpZXcucHJvdG90eXBlLmhpZGUuY2FsbCh0aGlzKTsKLSAgICB9LAotCiAgICAgX2Vuc3Vy
ZUlubmVyVmlld1Nob3duOiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICBpZiAodGhpcy5faW5u
ZXJWaWV3U2hvd1JlcXVlc3RlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvTmV0d29ya1BhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9OZXR3b3JrUGFuZWwuanMKaW5kZXggZWQ4ZTc2NTU0ODQ1YWEwYWVjOTBhZGNlOGI0
ZTVmNjgzMGI5NDkzMi4uYWZiYjU3NWQzNDNmMmYzNjIzZDUxNTk2ZTMxNTJkYTIwNDU0YjAzNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrUGFu
ZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrUGFu
ZWwuanMKQEAgLTY0NiwxMyArNjQ2LDExIEBAIFdlYkluc3BlY3Rvci5OZXR3b3JrTG9nVmlldy5w
cm90b3R5cGUgPSB7CiAKICAgICB3YXNTaG93bjogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAg
V2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLndhc1Nob3duLmNhbGwodGhpcyk7CiAgICAgICAg
IHRoaXMuX3JlZnJlc2hJZk5lZWRlZCgpOwogICAgIH0sCiAKICAgICB3aWxsSGlkZTogZnVuY3Rp
b24oKQogICAgIHsKLSAgICAgICAgV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLndpbGxIaWRl
LmNhbGwodGhpcyk7CiAgICAgICAgIHRoaXMuX3BvcG92ZXJIZWxwZXIuaGlkZVBvcG92ZXIoKTsK
ICAgICB9LAogCkBAIC0xMjk3LDkgKzEyOTUsOSBAQCBXZWJJbnNwZWN0b3IuTmV0d29ya1BhbmVs
LnByb3RvdHlwZSA9IHsKICAgICAgICAgV2ViSW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZS5oYW5k
bGVTaG9ydGN1dC5jYWxsKHRoaXMsIGV2ZW50KTsKICAgICB9LAogCi0gICAgc2hvdzogZnVuY3Rp
b24oKQorICAgIHdhc1Nob3duOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBXZWJJbnNwZWN0
b3IuUGFuZWwucHJvdG90eXBlLnNob3cuY2FsbCh0aGlzKTsKKyAgICAgICAgV2ViSW5zcGVjdG9y
LlBhbmVsLnByb3RvdHlwZS53YXNTaG93bi5jYWxsKHRoaXMpOwogICAgICAgICB0aGlzLl9uZXR3
b3JrTG9nVmlldy5zaG93KHRoaXMuc2lkZWJhckVsZW1lbnQpOwogICAgIH0sCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUGFuZWwuanMgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1BhbmVsLmpzCmluZGV4IDk5NmUxMjhiMDBlNTk1
NjgwYWVhMzA2ZjYwNjE0Zjg1ZDVlM2I2NmQuLjMzNzI3NTY2MGM2MTliNjExYjY3ZmViZDA2NzE0
YWJiNDQ2ZWYyZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9QYW5l
bC5qcwpAQCAtNDEsNyArNDEsNiBAQCBXZWJJbnNwZWN0b3IuUGFuZWwgPSBmdW5jdGlvbihuYW1l
KQogICAgIHRoaXMuX3Nob3J0Y3V0cyA9IHt9OwogCiAgICAgV2ViSW5zcGVjdG9yLnNldHRpbmdz
W3RoaXMuX3NpZGViYXJXaWR0aFNldHRpbmdOYW1lKCldID0gV2ViSW5zcGVjdG9yLnNldHRpbmdz
LmNyZWF0ZVNldHRpbmcodGhpcy5fc2lkZWJhcldpZHRoU2V0dGluZ05hbWUoKSwgdW5kZWZpbmVk
KTsKLSAgICB0aGlzLl9oaWRlT25EZXRhY2ggPSBmYWxzZTsKIH0KIAogLy8gU2hvdWxkIGJ5IGlu
IHN5bmMgd2l0aCBzdHlsZSBkZWNsYXJhdGlvbnMuCkBAIC02MiwxOCArNjEsMTYgQEAgV2ViSW5z
cGVjdG9yLlBhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJuIHRoaXMuX3BhbmVsTmFt
ZTsKICAgICB9LAogCi0gICAgc2V0SGlkZU9uRGV0YWNoOiBmdW5jdGlvbigpCi0gICAgewotICAg
ICAgICB0aGlzLl9oaWRlT25EZXRhY2ggPSB0cnVlOwotICAgIH0sCi0KICAgICBzaG93OiBmdW5j
dGlvbigpCiAgICAgewogICAgICAgICBpZiAoIVdlYkluc3BlY3Rvci5QYW5lbC5fbWFpblBhbmVs
c0VsZW1lbnQpCiAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuUGFuZWwuX21haW5QYW5lbHNFbGVt
ZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4tcGFuZWxzIik7CiAgICAgCiAgICAg
ICAgIFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZS5zaG93LmNhbGwodGhpcywgV2ViSW5zcGVj
dG9yLlBhbmVsLl9tYWluUGFuZWxzRWxlbWVudCk7CisgICAgfSwKIAorICAgIHdhc1Nob3duOiBm
dW5jdGlvbigpCisgICAgewogICAgICAgICB2YXIgc3RhdHVzQmFySXRlbXMgPSB0aGlzLnN0YXR1
c0Jhckl0ZW1zOwogICAgICAgICBpZiAoc3RhdHVzQmFySXRlbXMpIHsKICAgICAgICAgICAgIHRo
aXMuX3N0YXR1c0Jhckl0ZW1Db250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYi
KTsKQEAgLTkxLDEzICs4OCw4IEBAIFdlYkluc3BlY3Rvci5QYW5lbC5wcm90b3R5cGUgPSB7CiAg
ICAgICAgIFdlYkluc3BlY3Rvci5leHRlbnNpb25TZXJ2ZXIubm90aWZ5UGFuZWxTaG93bih0aGlz
Lm5hbWUpOwogICAgIH0sCiAKLSAgICBkZXRhY2g6IGZ1bmN0aW9uKCkKKyAgICB3aWxsSGlkZTog
ZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX2hpZGVPbkRldGFjaCkKLSAgICAg
ICAgICAgIHRoaXMuaGlkZSgpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBXZWJJbnNwZWN0
b3IuVmlldy5wcm90b3R5cGUuZGV0YWNoLmNhbGwodGhpcyk7Ci0KICAgICAgICAgaWYgKHRoaXMu
X3N0YXR1c0Jhckl0ZW1Db250YWluZXIgJiYgdGhpcy5fc3RhdHVzQmFySXRlbUNvbnRhaW5lci5w
YXJlbnROb2RlKQogICAgICAgICAgICAgdGhpcy5fc3RhdHVzQmFySXRlbUNvbnRhaW5lci5wYXJl
bnROb2RlLnJlbW92ZUNoaWxkKHRoaXMuX3N0YXR1c0Jhckl0ZW1Db250YWluZXIpOwogICAgICAg
ICBkZWxldGUgdGhpcy5fc3RhdHVzQmFySXRlbUNvbnRhaW5lcjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUGFuZWxFbmFibGVyVmlldy5qcyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUGFuZWxFbmFibGVyVmlldy5qcwppbmRleCA0
NTllMGNjYzliYWU0ZDNkZTI0ODQ2MmQ5MWY3NTU4MTM1NGZmMWY0Li4zZWYwYzBjMGQyNTBiNzgw
YzI5MjgxODg1MTEyOTJhMmYwMDM5MTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1BhbmVsRW5hYmxlclZpZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9QYW5lbEVuYWJsZXJWaWV3LmpzCkBAIC04MywxMyArODMsNiBA
QCBXZWJJbnNwZWN0b3IuUGFuZWxFbmFibGVyVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRo
aXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKCJlbmFibGUgY2xpY2tlZCIpOwogICAgIH0sCiAK
LSAgICBzaG93OiBmdW5jdGlvbihwYXJlbnRFbGVtZW50KQotICAgIHsKLSAgICAgICAgV2ViSW5z
cGVjdG9yLlZpZXcucHJvdG90eXBlLnNob3cuY2FsbCh0aGlzLCBwYXJlbnRFbGVtZW50KTsKLQot
ICAgICAgICBzZXRUaW1lb3V0KHRoaXMuZG9SZXNpemUuYmluZCh0aGlzKSwgMCk7Ci0gICAgfSwK
LQogICAgIG9uUmVzaXplOiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICB0aGlzLmltYWdlRWxl
bWVudC5yZW1vdmVTdHlsZUNsYXNzKCJoaWRkZW4iKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZVZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVWaWV3LmpzCmluZGV4IDAxMWMwMWI2ZGY5ZmY1NTY1
OGJlOTA4YWNiMDM4ZDRiZWIxNjkwNWUuLjU5MDRhYzYzMWYxYzRjNTM3MWRmZDUxNzc4YjdmNTM0
ODQ0ZDAzZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
UHJvZmlsZVZpZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Q
cm9maWxlVmlldy5qcwpAQCAtMTY0LDkgKzE2NCw4IEBAIFdlYkluc3BlY3Rvci5DUFVQcm9maWxl
Vmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiB0aGlzLl9ib3R0b21VcFRyZWU7CiAg
ICAgfSwKIAotICAgIGhpZGU6IGZ1bmN0aW9uKCkKKyAgICB3aWxsSGlkZTogZnVuY3Rpb24oKQog
ICAgIHsKLSAgICAgICAgV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLmhpZGUuY2FsbCh0aGlz
KTsKICAgICAgICAgdGhpcy5fY3VycmVudFNlYXJjaFJlc3VsdEluZGV4ID0gLTE7CiAgICAgfSwK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxl
c1BhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1Bh
bmVsLmpzCmluZGV4IGVhMTQxY2Q2ZTFmZjYyMjIwNWFhNmY2MDM5YmFmZTRlNGI2MTc2ZTAuLjUy
M2M4YjA1NzdkNGI5ZGM0NWY3ZDFlZTNlMzQ3ZmZlMTMxZmUxODUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qcworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWwuanMKQEAgLTE3MSw5
ICsxNzEsOSBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAg
ICAgIHJldHVybiBpdGVtczsKICAgICB9LAogCi0gICAgc2hvdzogZnVuY3Rpb24oKQorICAgIHdh
c1Nob3duOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBXZWJJbnNwZWN0b3IuUGFuZWwucHJv
dG90eXBlLnNob3cuY2FsbCh0aGlzKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLlBhbmVsLnByb3Rv
dHlwZS53YXNTaG93bi5jYWxsKHRoaXMpOwogICAgICAgICB0aGlzLl9wb3B1bGF0ZVByb2ZpbGVz
KCk7CiAgICAgfSwKIApAQCAtMzQ2LDcgKzM0Niw3IEBAIFdlYkluc3BlY3Rvci5Qcm9maWxlc1Bh
bmVsLnByb3RvdHlwZSA9IHsKIAogICAgICAgICBzaWRlYmFyUGFyZW50LmFwcGVuZENoaWxkKHBy
b2ZpbGVUcmVlRWxlbWVudCk7CiAgICAgICAgIGlmICghcHJvZmlsZS5pc1RlbXBvcmFyeSkgewot
ICAgICAgICAgICAgdGhpcy53ZWxjb21lVmlldy5oaWRlKCk7CisgICAgICAgICAgICB0aGlzLndl
bGNvbWVWaWV3LmRldGFjaCgpOwogICAgICAgICAgICAgaWYgKCF0aGlzLnZpc2libGVWaWV3KQog
ICAgICAgICAgICAgICAgIHRoaXMuc2hvd1Byb2ZpbGUocHJvZmlsZSk7CiAgICAgICAgICAgICB0
aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycygicHJvZmlsZSBhZGRlZCIpOwpAQCAtNzUzLDcg
Kzc1Myw3IEBAIFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAg
ICAgICAgICAgICB0aGlzLl9wcm9maWxlVHlwZUJ1dHRvbnNCeUlkTWFwW3R5cGVJZF0ucmVtb3Zl
U3R5bGVDbGFzcygiaGlkZGVuIik7CiAgICAgICAgICAgICB0aGlzLnByb2ZpbGVWaWV3U3RhdHVz
QmFySXRlbXNDb250YWluZXIucmVtb3ZlU3R5bGVDbGFzcygiaGlkZGVuIik7CiAgICAgICAgICAg
ICB0aGlzLmNsZWFyUmVzdWx0c0J1dHRvbi5lbGVtZW50LnJlbW92ZVN0eWxlQ2xhc3MoImhpZGRl
biIpOwotICAgICAgICAgICAgdGhpcy5wYW5lbEVuYWJsZXJWaWV3LnZpc2libGUgPSBmYWxzZTsK
KyAgICAgICAgICAgIHRoaXMucGFuZWxFbmFibGVyVmlldy5kZXRhY2goKTsKICAgICAgICAgfSBl
bHNlIHsKICAgICAgICAgICAgIHRoaXMuZW5hYmxlVG9nZ2xlQnV0dG9uLnRpdGxlID0gV2ViSW5z
cGVjdG9yLlVJU3RyaW5nKCJQcm9maWxpbmcgZGlzYWJsZWQuIENsaWNrIHRvIGVuYWJsZS4iKTsK
ICAgICAgICAgICAgIHRoaXMuZW5hYmxlVG9nZ2xlQnV0dG9uLnRvZ2dsZWQgPSBmYWxzZTsKQEAg
LTc2MSw3ICs3NjEsNyBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUgPSB7
CiAgICAgICAgICAgICAgICAgdGhpcy5fcHJvZmlsZVR5cGVCdXR0b25zQnlJZE1hcFt0eXBlSWRd
LmFkZFN0eWxlQ2xhc3MoImhpZGRlbiIpOwogICAgICAgICAgICAgdGhpcy5wcm9maWxlVmlld1N0
YXR1c0Jhckl0ZW1zQ29udGFpbmVyLmFkZFN0eWxlQ2xhc3MoImhpZGRlbiIpOwogICAgICAgICAg
ICAgdGhpcy5jbGVhclJlc3VsdHNCdXR0b24uZWxlbWVudC5hZGRTdHlsZUNsYXNzKCJoaWRkZW4i
KTsKLSAgICAgICAgICAgIHRoaXMucGFuZWxFbmFibGVyVmlldy52aXNpYmxlID0gdHJ1ZTsKKyAg
ICAgICAgICAgIHRoaXMucGFuZWxFbmFibGVyVmlldy5zaG93KHRoaXMuZWxlbWVudCk7CiAgICAg
ICAgIH0KICAgICB9LAogCkBAIC04NzAsNyArODcwLDcgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVz
UGFuZWwucHJvdG90eXBlID0gewogICAgICAgICBwcm9maWxlVHlwZS50cmVlRWxlbWVudCA9IG9s
ZFByb2ZpbGVUeXBlLnRyZWVFbGVtZW50OwogICAgICAgICB0aGlzLl9wcm9maWxlVHlwZXNCeUlk
TWFwW3Byb2ZpbGVUeXBlLmlkXSA9IHByb2ZpbGVUeXBlOwogICAgICAgICBQcmVmZXJlbmNlcy5k
ZXRhaWxlZEhlYXBQcm9maWxlcyA9IHRydWU7Ci0gICAgICAgIHRoaXMuaGlkZSgpOworICAgICAg
ICB0aGlzLmRldGFjaCgpOwogICAgICAgICB0aGlzLnNob3coKTsKICAgICB9CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlQ29va2llc1Zp
ZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlQ29va2ll
c1ZpZXcuanMKaW5kZXggNWVmNTU5OGNlOWRhYzNhMmIxZmVjMWM2NjYxMDJjYzE1ZDA1MTVmNy4u
NThjOWMzYWIxMDRjYTM2NmE3M2UwZDhjMGJlMDRhMDNjZTM4OGI4ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZUNvb2tpZXNWaWV3LmpzCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VDb29raWVzVmll
dy5qcwpAQCAtNDQsMjEgKzQ0LDE4IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZUNvb2tpZXNWaWV3
ID0gZnVuY3Rpb24ocmVzb3VyY2UpCiB9CiAKIFdlYkluc3BlY3Rvci5SZXNvdXJjZUNvb2tpZXNW
aWV3LnByb3RvdHlwZSA9IHsKLSAgICBzaG93OiBmdW5jdGlvbihwYXJlbnRFbGVtZW50KQorICAg
IHdhc1Nob3duOiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICBpZiAoIXRoaXMuX2dvdENvb2tp
ZXMpIHsKICAgICAgICAgICAgIGlmICghdGhpcy5fZW1wdHlWaWV3KSB7CiAgICAgICAgICAgICAg
ICAgdGhpcy5fZW1wdHlWaWV3ID0gbmV3IFdlYkluc3BlY3Rvci5FbXB0eVZpZXcoV2ViSW5zcGVj
dG9yLlVJU3RyaW5nKCJUaGlzIHJlcXVlc3QgaGFzIG5vIGNvb2tpZXMuIikpOwogICAgICAgICAg
ICAgICAgIHRoaXMuX2VtcHR5Vmlldy5zaG93KHRoaXMuZWxlbWVudCk7CiAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUuc2hvdy5jYWxsKHRoaXMs
IHBhcmVudEVsZW1lbnQpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKICAgICAg
ICAgaWYgKCF0aGlzLl9jb29raWVzVGFibGUpCiAgICAgICAgICAgICB0aGlzLl9idWlsZENvb2tp
ZXNUYWJsZSgpOwotICAgICAgICBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUuc2hvdy5jYWxs
KHRoaXMsIHBhcmVudEVsZW1lbnQpOwotICAgICAgICB0aGlzLl9jb29raWVzVGFibGUudXBkYXRl
V2lkdGhzKCk7CiAgICAgfSwKIAogICAgIG9uUmVzaXplOiBmdW5jdGlvbigpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlSFRNTFZpZXcuanMg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlSFRNTFZpZXcuanMK
aW5kZXggOTMzZmY4NDczM2E5OGYwNjUyOGUzZTcwNDM1MTZhOWEyYmNiM2UxYi4uOWM0YjU1ZWUz
NmUyNWI5NTVhODMwNTViZmRlNmRiMDliYjZlY2QwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZUhUTUxWaWV3LmpzCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VIVE1MVmlldy5qcwpAQCAtNDQsMTUg
KzQ0LDEzIEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZUhUTUxWaWV3LnByb3RvdHlwZSA9IHsKICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgfSwKIAotICAgIHNob3c6IGZ1bmN0aW9uKHBhcmVudEVs
ZW1lbnQpCisgICAgd2FzU2hvd246IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIFdlYkluc3Bl
Y3Rvci5SZXNvdXJjZVZpZXcucHJvdG90eXBlLnNob3cuY2FsbCh0aGlzLCBwYXJlbnRFbGVtZW50
KTsKICAgICAgICAgdGhpcy5fY3JlYXRlSUZyYW1lKCk7CiAgICAgfSwKIAotICAgIGhpZGU6IGZ1
bmN0aW9uKHBhcmVudEVsZW1lbnQpCisgICAgd2lsbEhpZGU6IGZ1bmN0aW9uKHBhcmVudEVsZW1l
bnQpCiAgICAgewotICAgICAgICBXZWJJbnNwZWN0b3IuUmVzb3VyY2VWaWV3LnByb3RvdHlwZS5o
aWRlLmNhbGwodGhpcyk7CiAgICAgICAgIHRoaXMuZWxlbWVudC5yZW1vdmVDaGlsZHJlbigpOwog
ICAgIH0sCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
UmVzb3VyY2VKU09OVmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
UmVzb3VyY2VKU09OVmlldy5qcwppbmRleCBkZDM2ZGI5ZGUzOTViMmFkMjRiMTlkMmI2MDA3NDI0
YTdkNTM3OTJlLi40ZjIwZjJmOGRiYTIyZjgyOTEzZTM5MGI1NjVhOTI1NDE1MGM2YzIzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlSlNPTlZp
ZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZUpT
T05WaWV3LmpzCkBAIC04Miw5ICs4Miw4IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZUpTT05WaWV3
LnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfSwKIAotICAgIHNob3c6
IGZ1bmN0aW9uKHBhcmVudEVsZW1lbnQpCisgICAgd2FzU2hvd246IGZ1bmN0aW9uKCkKICAgICB7
Ci0gICAgICAgIFdlYkluc3BlY3Rvci5SZXNvdXJjZVZpZXcucHJvdG90eXBlLnNob3cuY2FsbCh0
aGlzLCBwYXJlbnRFbGVtZW50KTsKICAgICAgICAgdGhpcy5faW5pdGlhbGl6ZSgpOwogICAgIH0s
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3Vy
Y2VUaW1pbmdWaWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNv
dXJjZVRpbWluZ1ZpZXcuanMKaW5kZXggOWI5NWM2OWMwYWExMzIwN2IzZjk0NGNkZmRhZjg2Mzc4
MDZkOWYzYS4uZjFjODZkMTgzNTUwZDViYTY4ZGVlZGJkZTA4OGM3MTM4N2YxZTc0YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVRpbWluZ1Zp
ZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVRp
bWluZ1ZpZXcuanMKQEAgLTQzLDcgKzQzLDcgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlVGltaW5n
VmlldyA9IGZ1bmN0aW9uKHJlc291cmNlKQogfQogCiBXZWJJbnNwZWN0b3IuUmVzb3VyY2VUaW1p
bmdWaWV3LnByb3RvdHlwZSA9IHsKLSAgICBzaG93OiBmdW5jdGlvbihwYXJlbnRFbGVtZW50KQor
ICAgIHdhc1Nob3duOiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICBpZiAoIXRoaXMuX3Jlc291
cmNlLnRpbWluZykgewogICAgICAgICAgICAgaWYgKCF0aGlzLl9lbXB0eVZpZXcpIHsKQEAgLTUx
LDcgKzUxLDYgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlVGltaW5nVmlldy5wcm90b3R5cGUgPSB7
CiAgICAgICAgICAgICAgICAgdGhpcy5fZW1wdHlWaWV3LnNob3codGhpcy5lbGVtZW50KTsKICAg
ICAgICAgICAgICAgICB0aGlzLmlubmVyVmlldyA9IHRoaXMuX2VtcHR5VmlldzsKICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZS5zaG93LmNhbGwo
dGhpcywgcGFyZW50RWxlbWVudCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIApA
QCAtNjEsNyArNjAsNiBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VUaW1pbmdWaWV3LnByb3RvdHlw
ZSA9IHsKICAgICAgICAgfQogCiAgICAgICAgIHRoaXMuX3JlZnJlc2goKTsKLSAgICAgICAgV2Vi
SW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLnNob3cuY2FsbCh0aGlzLCBwYXJlbnRFbGVtZW50KTsK
ICAgICB9LAogCiAgICAgX3JlZnJlc2g6IGZ1bmN0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VzUGFuZWwuanMgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlc1BhbmVsLmpzCmluZGV4IDFjYzYwNDM2
OWZkMjhiZGVhOGE2ODFiNWZhMTQ2MDdjMjA1OTJjOTIuLjEzNzc5ZmM4Njg1NzU1MTg1MDA4OTUy
NTY3ZWE0ZDg0ODE2YjNiMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvUmVzb3VyY2VzUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5qcwpAQCAtMTA0LDEwICsxMDQsOSBAQCBXZWJJbnNw
ZWN0b3IuUmVzb3VyY2VzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gW3RoaXMu
c2lkZWJhckVsZW1lbnRdOwogICAgIH0sCiAKLSAgICBzaG93OiBmdW5jdGlvbigpCisgICAgd2Fz
U2hvd246IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5QYW5lbC5wcm90
b3R5cGUuc2hvdy5jYWxsKHRoaXMpOwotCisgICAgICAgIFdlYkluc3BlY3Rvci5QYW5lbC5wcm90
b3R5cGUud2FzU2hvd24uY2FsbCh0aGlzKTsKICAgICAgICAgdGhpcy5fcG9wdWxhdGVSZXNvdXJj
ZVRyZWUoKTsKICAgICB9LAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvU2NyaXB0c1BhbmVsLmpzCmluZGV4IDVjNDQ0ZTdhMWEyY2RmZTgwNTI0NTI0ZGRmMGY1
ODEzMDYzOWZlYjQuLmE1N2VjMTU5NjhhNmIzYTYzNDk0ZTE4ZWJiZGVjNmJmZmI2ODYwM2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVs
LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVs
LmpzCkBAIC0yMTgsOSArMjE4LDkgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5
cGUgPSB7CiAgICAgICAgIHJldHVybiB0aGlzLl9wYXVzZWQ7CiAgICAgfSwKIAotICAgIHNob3c6
IGZ1bmN0aW9uKCkKKyAgICB3YXNTaG93bjogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgV2Vi
SW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZS5zaG93LmNhbGwodGhpcyk7CisgICAgICAgIFdlYklu
c3BlY3Rvci5QYW5lbC5wcm90b3R5cGUud2FzU2hvd24uY2FsbCh0aGlzKTsKICAgICAgICAgdGhp
cy5zaWRlYmFyUmVzaXplRWxlbWVudC5zdHlsZS5yaWdodCA9ICh0aGlzLnNpZGViYXJFbGVtZW50
Lm9mZnNldFdpZHRoIC0gMykgKyAicHgiOwogICAgICAgICBpZiAoUHJlZmVyZW5jZXMubmF0aXZl
SW5zdHJ1bWVudGF0aW9uRW5hYmxlZCkKICAgICAgICAgICAgIHRoaXMuc2lkZWJhckVsZW1lbnQu
aW5zZXJ0QmVmb3JlKHRoaXMuc2lkZWJhclBhbmVzLmRvbUJyZWFrcG9pbnRzLmVsZW1lbnQsIHRo
aXMuc2lkZWJhclBhbmVzLnhockJyZWFrcG9pbnRzLmVsZW1lbnQpOwpAQCAtODU1LDEyICs4NTUs
MTIgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAg
ICB0aGlzLmVuYWJsZVRvZ2dsZUJ1dHRvbi50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygi
RGVidWdnaW5nIGVuYWJsZWQuIENsaWNrIHRvIGRpc2FibGUuIik7CiAgICAgICAgICAgICB0aGlz
LmVuYWJsZVRvZ2dsZUJ1dHRvbi50b2dnbGVkID0gdHJ1ZTsKICAgICAgICAgICAgIHRoaXMuX3Bh
dXNlT25FeGNlcHRpb25CdXR0b24udmlzaWJsZSA9IHRydWU7Ci0gICAgICAgICAgICB0aGlzLnBh
bmVsRW5hYmxlclZpZXcudmlzaWJsZSA9IGZhbHNlOworICAgICAgICAgICAgdGhpcy5wYW5lbEVu
YWJsZXJWaWV3LmRldGFjaCgpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgdGhpcy5l
bmFibGVUb2dnbGVCdXR0b24udGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkRlYnVnZ2lu
ZyBkaXNhYmxlZC4gQ2xpY2sgdG8gZW5hYmxlLiIpOwogICAgICAgICAgICAgdGhpcy5lbmFibGVU
b2dnbGVCdXR0b24udG9nZ2xlZCA9IGZhbHNlOwogICAgICAgICAgICAgdGhpcy5fcGF1c2VPbkV4
Y2VwdGlvbkJ1dHRvbi52aXNpYmxlID0gZmFsc2U7Ci0gICAgICAgICAgICB0aGlzLnBhbmVsRW5h
YmxlclZpZXcudmlzaWJsZSA9IHRydWU7CisgICAgICAgICAgICB0aGlzLnBhbmVsRW5hYmxlclZp
ZXcuc2hvdyh0aGlzLmVsZW1lbnQpOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKHRoaXMuX3Bh
dXNlZCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9T
b3VyY2VGcmFtZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNl
RnJhbWUuanMKaW5kZXggODc3OTA4YTU5NzVhZTZhOGY0ZjBhNTFlMDI0N2E0YmE0YjE0ZWQwYi4u
N2E2Yzc5YjlhOWUxYmEzYzY1ZmZmZTlhODRhODE2NTVkZmFjYzMzMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGcmFtZS5qcworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZyYW1lLmpzCkBAIC04OCw5ICs4
OCw4IEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5jcmVhdGVTZWFyY2hSZWdleCA9IGZ1bmN0
aW9uKHF1ZXJ5KQogCiAKIFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUgPSB7Ci0g
ICAgc2hvdzogZnVuY3Rpb24ocGFyZW50RWxlbWVudCkKKyAgICB3YXNTaG93bjogZnVuY3Rpb24o
KQogICAgIHsKLSAgICAgICAgV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLnNob3cuY2FsbCh0
aGlzLCBwYXJlbnRFbGVtZW50KTsKICAgICAgICAgdGhpcy5fZW5zdXJlQ29udGVudExvYWRlZCgp
OwogICAgICAgICB0aGlzLl90ZXh0Vmlld2VyLnNob3codGhpcy5lbGVtZW50KTsKICAgICB9LApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBh
bmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVs
LmpzCmluZGV4IGE4YTEyYzMzN2I2NTEzMTA4M2JhOTExNmQyNzk0MWYxNDNkODA5ZTAuLjk3Njdi
NTYzNThiODZlOTU0OTlmNmJjYWYyYjFiZGYyNzIyZmViOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKQEAgLTU1NCwxOCAr
NTU0LDE4IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZSA9IHsKICAgICAg
ICAgcmV0dXJuIFt0aGlzLl9jb250YWluZXJFbGVtZW50XTsKICAgICB9LAogCi0gICAgc2hvdzog
ZnVuY3Rpb24oKQorICAgIHdhc1Nob3duOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBXZWJJ
bnNwZWN0b3IuUGFuZWwucHJvdG90eXBlLnNob3cuY2FsbCh0aGlzKTsKKyAgICAgICAgV2ViSW5z
cGVjdG9yLlBhbmVsLnByb3RvdHlwZS53YXNTaG93bi5jYWxsKHRoaXMpOwogICAgICAgICB0aGlz
Ll9yZWZyZXNoKCk7CiAgICAgICAgIFdlYkluc3BlY3Rvci5kcmF3ZXIuY3VycmVudFBhbmVsQ291
bnRlcnMgPSB0aGlzLnJlY29yZHNDb3VudGVyOwogICAgIH0sCiAKLSAgICBoaWRlOiBmdW5jdGlv
bigpCisgICAgd2lsbEhpZGU6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIFdlYkluc3BlY3Rv
ci5QYW5lbC5wcm90b3R5cGUuaGlkZS5jYWxsKHRoaXMpOwogICAgICAgICB0aGlzLl9jbG9zZVJl
Y29yZERldGFpbHMoKTsKICAgICAgICAgV2ViSW5zcGVjdG9yLmRyYXdlci5jdXJyZW50UGFuZWxD
b3VudGVycyA9IG51bGw7CisgICAgICAgIFdlYkluc3BlY3Rvci5QYW5lbC5wcm90b3R5cGUud2ls
bEhpZGUuY2FsbCh0aGlzKTsKICAgICB9LAogCiAgICAgX29uU2Nyb2xsOiBmdW5jdGlvbihldmVu
dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVmlldy5q
cyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVmlldy5qcwppbmRleCA2MWI5
MmYyNjA4ODc1ZTE5YzhlNDE3OGQ0NzAwZjg0MzNkMzY1NDZlLi4yY2YzMDY0ZWU1M2RlMTM0OGI5
OWYyZjE5ODI2ZTYxYTI2ODExZmUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1ZpZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9WaWV3LmpzCkBAIC0zNCw4MyArMzQsODEgQEAgV2ViSW5zcGVjdG9yLlZpZXcgPSBmdW5j
dGlvbigpCiAgICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIkRPTU5vZGVJbnNlcnRl
ZEludG9Eb2N1bWVudCIsIHRoaXMuX2hhbmRsZUluc2VydGVkSW50b0RvY3VtZW50LmJpbmQodGhp
cyksIGZhbHNlKTsKICAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NTm9kZVJl
bW92ZWRGcm9tRG9jdW1lbnQiLCB0aGlzLl9oYW5kbGVSZW1vdmVkRnJvbURvY3VtZW50LmJpbmQo
dGhpcyksIGZhbHNlKTsKICAgICB0aGlzLmVsZW1lbnQuX192aWV3ID0gdGhpczsKLSAgICB0aGlz
Ll92aXNpYmxlID0gZmFsc2U7CisgICAgdGhpcy5fdmlzaWJsZSA9IHRydWU7CiAgICAgdGhpcy5f
Y2hpbGRyZW4gPSBbXTsKLSAgICB0aGlzLl9pbkRldGFjaCA9IGZhbHNlOworICAgIHRoaXMuX2hp
ZGVPbkRldGFjaCA9IGZhbHNlOwogfQogCiBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUgPSB7
CiAgICAgZ2V0IHZpc2libGUoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3Zpc2libGU7
CisgICAgICAgIHZhciBwYXJlbnRWaWV3ID0gdGhpczsKKyAgICAgICAgd2hpbGUgKHBhcmVudFZp
ZXcgJiYgcGFyZW50Vmlldy5fdmlzaWJsZSAmJiBwYXJlbnRWaWV3ICE9PSBXZWJJbnNwZWN0b3Iu
X3Jvb3RWaWV3KSB7CisgICAgICAgICAgICBpZiAocGFyZW50Vmlldy5hdHRhY2hlZEZvclRlc3Qp
CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICBwYXJlbnRWaWV3ID0g
cGFyZW50Vmlldy5fcGFyZW50VmlldzsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBwYXJl
bnRWaWV3ID09PSBXZWJJbnNwZWN0b3IuX3Jvb3RWaWV3OwogICAgIH0sCiAKLSAgICBzZXQgdmlz
aWJsZSh4KQorICAgIHNldEhpZGVPbkRldGFjaDogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAg
aWYgKHRoaXMuX3Zpc2libGUgPT09IHgpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAg
aWYgKHgpCi0gICAgICAgICAgICB0aGlzLnNob3codGhpcy5lbGVtZW50LnBhcmVudEVsZW1lbnQp
OwotICAgICAgICBlbHNlCi0gICAgICAgICAgICB0aGlzLmhpZGUoKTsKKyAgICAgICAgdGhpcy5f
aGlkZU9uRGV0YWNoID0gdHJ1ZTsKICAgICB9LAogCi0gICAgd2FzU2hvd246IGZ1bmN0aW9uKCkK
KyAgICBfd2FzU2hvd246IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIHRoaXMucmVzdG9yZVNj
cm9sbFBvc2l0aW9ucygpOworICAgICAgICB0aGlzLndhc1Nob3duKCk7CiAgICAgICAgIHRoaXMu
b25SZXNpemUoKTsKICAgICB9LAogCi0gICAgd2lsbEhpZGU6IGZ1bmN0aW9uKCkKKyAgICBfd2ls
bEhpZGU6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIHRoaXMuc3RvcmVTY3JvbGxQb3NpdGlv
bnMoKTsKKyAgICAgICAgdGhpcy53aWxsSGlkZSgpOwogICAgIH0sCiAKLSAgICB3aWxsRGV0YWNo
OiBmdW5jdGlvbigpCisgICAgX29uUmVzaXplOiBmdW5jdGlvbigpCiAgICAgeworICAgICAgICB0
aGlzLm9uUmVzaXplKCk7CiAgICAgfSwKIAotICAgIC8qKgotICAgICAqIEBwYXJhbSB7RWxlbWVu
dH0gcGFyZW50RWxlbWVudAotICAgICAqLwotICAgIHNob3c6IGZ1bmN0aW9uKHBhcmVudEVsZW1l
bnQpCisgICAgd2FzU2hvd246IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIHRoaXMuX3Zpc2li
bGUgPSB0cnVlOwotICAgICAgICB0aGlzLmVsZW1lbnQuYWRkU3R5bGVDbGFzcygidmlzaWJsZSIp
OwotICAgICAgICBpZiAocGFyZW50RWxlbWVudCAmJiB0aGlzLmVsZW1lbnQucGFyZW50RWxlbWVu
dCAhPSBwYXJlbnRFbGVtZW50KQotICAgICAgICAgICAgdGhpcy5hdHRhY2gocGFyZW50RWxlbWVu
dCk7Ci0gICAgICAgIHRoaXMuZGlzcGF0Y2hUb1NlbGZBbmRDaGlsZHJlbigid2FzU2hvd24iLCB0
cnVlKTsKICAgICB9LAogCi0gICAgaGlkZTogZnVuY3Rpb24oKQorICAgIHdpbGxIaWRlOiBmdW5j
dGlvbigpCisgICAgeworICAgIH0sCisKKyAgICBvblJlc2l6ZTogZnVuY3Rpb24oKQogICAgIHsK
LSAgICAgICAgdGhpcy5kaXNwYXRjaFRvU2VsZkFuZENoaWxkcmVuKCJ3aWxsSGlkZSIsIHRydWUp
OwotICAgICAgICBpZiAoIXRoaXMuX2luRGV0YWNoKQotICAgICAgICAgICAgdGhpcy5lbGVtZW50
LnJlbW92ZVN0eWxlQ2xhc3MoInZpc2libGUiKTsKLSAgICAgICAgdGhpcy5fdmlzaWJsZSA9IGZh
bHNlOwogICAgIH0sCiAKICAgICAvKioKICAgICAgKiBAcGFyYW0ge0VsZW1lbnR9IHBhcmVudEVs
ZW1lbnQKICAgICAgKi8KLSAgICBhdHRhY2g6IGZ1bmN0aW9uKHBhcmVudEVsZW1lbnQpCisgICAg
c2hvdzogZnVuY3Rpb24ocGFyZW50RWxlbWVudCkKICAgICB7Ci0gICAgICAgIHBhcmVudEVsZW1l
bnQuYXBwZW5kQ2hpbGQodGhpcy5lbGVtZW50KTsKKyAgICAgICAgdGhpcy5fdmlzaWJsZSA9IHRy
dWU7CisgICAgICAgIHRoaXMuZWxlbWVudC5hZGRTdHlsZUNsYXNzKCJ2aXNpYmxlIik7CisgICAg
ICAgIGlmIChwYXJlbnRFbGVtZW50ICYmIHRoaXMuZWxlbWVudC5wYXJlbnRFbGVtZW50ICE9IHBh
cmVudEVsZW1lbnQpCisgICAgICAgICAgICBwYXJlbnRFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMu
ZWxlbWVudCk7CisgICAgICAgIHRoaXMuZGlzcGF0Y2hUb1NlbGZBbmRDaGlsZHJlbihXZWJJbnNw
ZWN0b3IuVmlldy5wcm90b3R5cGUuX3dhc1Nob3duLCB0cnVlKTsKICAgICB9LAogCiAgICAgZGV0
YWNoOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBpZiAodGhpcy5fdmlzaWJsZSkgewotICAg
ICAgICAgICAgdGhpcy5faW5EZXRhY2ggPSB0cnVlOwotICAgICAgICAgICAgdGhpcy5oaWRlKCk7
Ci0gICAgICAgICAgICB0aGlzLl9pbkRldGFjaCA9IGZhbHNlOwotICAgICAgICB9CisgICAgICAg
IHRoaXMuZGlzcGF0Y2hUb1NlbGZBbmRDaGlsZHJlbihXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5
cGUuX3dpbGxIaWRlLCB0cnVlKTsKIAotICAgICAgICB0aGlzLmRpc3BhdGNoVG9TZWxmQW5kQ2hp
bGRyZW4oIndpbGxEZXRhY2giLCBmYWxzZSk7Ci0KLSAgICAgICAgaWYgKHRoaXMuZWxlbWVudC5w
YXJlbnRFbGVtZW50KQorICAgICAgICBpZiAodGhpcy5faGlkZU9uRGV0YWNoKQorICAgICAgICAg
ICAgdGhpcy5lbGVtZW50LnJlbW92ZVN0eWxlQ2xhc3MoInZpc2libGUiKTsKKyAgICAgICAgZWxz
ZSBpZiAodGhpcy5lbGVtZW50LnBhcmVudEVsZW1lbnQpCiAgICAgICAgICAgICB0aGlzLmVsZW1l
bnQucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzLmVsZW1lbnQpOworCisgICAgICAgIHRo
aXMuX3Zpc2libGUgPSBmYWxzZTsKICAgICB9LAogCiAgICAgZWxlbWVudHNUb1Jlc3RvcmVTY3Jv
bGxQb3NpdGlvbnNGb3I6IGZ1bmN0aW9uKCkKQEAgLTE1OCwxMCArMTU2LDYgQEAgV2ViSW5zcGVj
dG9yLlZpZXcucHJvdG90eXBlID0gewogICAgICAgICB2aWV3Ll9wYXJlbnRWaWV3ID0gbnVsbDsK
ICAgICB9LAogCi0gICAgb25SZXNpemU6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgfSwKLQogICAg
IGNhbkhpZ2hsaWdodExpbmU6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIHJldHVybiBmYWxz
ZTsKQEAgLTE3MywyNCArMTY3LDIzIEBAIFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZSA9IHsK
IAogICAgIGRvUmVzaXplOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICB0aGlzLmRpc3BhdGNo
VG9TZWxmQW5kQ2hpbGRyZW4oIm9uUmVzaXplIiwgdHJ1ZSk7CisgICAgICAgIHRoaXMuZGlzcGF0
Y2hUb1NlbGZBbmRDaGlsZHJlbihXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUuX29uUmVzaXpl
LCB0cnVlKTsKICAgICB9LAogCi0gICAgZGlzcGF0Y2hUb1NlbGZBbmRDaGlsZHJlbjogZnVuY3Rp
b24obWV0aG9kTmFtZSwgdmlzaWJsZU9ubHkpCisgICAgZGlzcGF0Y2hUb1NlbGZBbmRDaGlsZHJl
bjogZnVuY3Rpb24obWV0aG9kLCB2aXNpYmxlT25seSkKICAgICB7Ci0gICAgICAgIGlmICh2aXNp
YmxlT25seSAmJiAhdGhpcy52aXNpYmxlKQorICAgICAgICBpZiAodmlzaWJsZU9ubHkgJiYgIXRo
aXMuX3Zpc2libGUpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGlmICh0eXBlb2YgdGhp
c1ttZXRob2ROYW1lXSA9PT0gImZ1bmN0aW9uIikKLSAgICAgICAgICAgIHRoaXNbbWV0aG9kTmFt
ZV0uY2FsbCh0aGlzKTsKLSAgICAgICAgdGhpcy5kaXNwYXRjaFRvQ2hpbGRyZW4obWV0aG9kTmFt
ZSwgdmlzaWJsZU9ubHkpOworICAgICAgICBtZXRob2QuY2FsbCh0aGlzKTsKKyAgICAgICAgdGhp
cy5kaXNwYXRjaFRvQ2hpbGRyZW4obWV0aG9kLCB2aXNpYmxlT25seSk7CiAgICAgfSwKIAotICAg
IGRpc3BhdGNoVG9DaGlsZHJlbjogZnVuY3Rpb24obWV0aG9kTmFtZSwgdmlzaWJsZU9ubHkpCisg
ICAgZGlzcGF0Y2hUb0NoaWxkcmVuOiBmdW5jdGlvbihtZXRob2QsIHZpc2libGVPbmx5KQogICAg
IHsKLSAgICAgICAgaWYgKHZpc2libGVPbmx5ICYmICF0aGlzLnZpc2libGUpCisgICAgICAgIGlm
ICh2aXNpYmxlT25seSAmJiAhdGhpcy5fdmlzaWJsZSkKICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl9jaGlsZHJlbi5sZW5ndGg7ICsraSkKLSAg
ICAgICAgICAgIHRoaXMuX2NoaWxkcmVuW2ldLmRpc3BhdGNoVG9TZWxmQW5kQ2hpbGRyZW4obWV0
aG9kTmFtZSwgdmlzaWJsZU9ubHkpOworICAgICAgICAgICAgdGhpcy5fY2hpbGRyZW5baV0uZGlz
cGF0Y2hUb1NlbGZBbmRDaGlsZHJlbihtZXRob2QsIHZpc2libGVPbmx5KTsKICAgICB9LAogCiAg
ICAgX2hhbmRsZUluc2VydGVkSW50b0RvY3VtZW50OiBmdW5jdGlvbihldmVudCkKQEAgLTIwMSwx
MSArMTk0LDYgQEAgV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlID0gewogCiAgICAgICAgIHZh
ciBwYXJlbnRWaWV3ID0gcGFyZW50RWxlbWVudCA/IHBhcmVudEVsZW1lbnQuX192aWV3IDogV2Vi
SW5zcGVjdG9yLl9yb290VmlldzsKICAgICAgICAgcGFyZW50Vmlldy5fYWRkQ2hpbGRWaWV3KHRo
aXMpOwotICAgICAgICB0aGlzLm9uSW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKTsKLSAgICB9LAotCi0g
ICAgb25JbnNlcnRlZEludG9Eb2N1bWVudDogZnVuY3Rpb24oKQotICAgIHsKICAgICB9LAogCiAg
ICAgX2hhbmRsZVJlbW92ZWRGcm9tRG9jdW1lbnQ6IGZ1bmN0aW9uKGV2ZW50KQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDcx
NzExNzZhNWM5ZGNjOTQxZTY3YWI1ZjZhN2E5M2Q4MjRlNTg1ZWUuLmY0ZTkxNjU4M2Q4ZTFkZGRk
YmExNjA2MDJmODQ1NWZjN2YzZTQyZDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMS0xMC0y
MCAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGdvb2dsZS5jb20+CisKKyAgICAgICAgV2ViIElu
c3BlY3RvcjogZ2V0IHJpZCBvZiBWaWV3OjpoaWRlLCBWaWV3OjpzZXQgdmlzaWJsZSwgVmlldzo6
YXR0YWNoLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzA1MjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IGluc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLXBhbmVsLmh0bWw6CisgICAgICAgICogaW5zcGVj
dG9yL3ZpZXctZXZlbnRzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3Ivdmlldy1l
dmVudHMuaHRtbDoKKwogMjAxMS0xMC0yMCAgWm9sdGFuIEFydmFpICA8emFydmFpQGluZi51LXN6
ZWdlZC5odT4KIAogICAgICAgICBbUXRdIFJlbW92aW5nIHRlc3QgZnJvbSBTa2lwcGVkIGxpc3Qu
IFRlc3QgcGFzc2VzOiBmYXN0L3RleHQvanVzdGlmeS1wYWRkaW5nLWRpc3RyaWJ1dGlvbi5odG1s
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1wYW5l
bC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdHMtcGFuZWwuaHRt
bAppbmRleCBlMzEyMGZlYjA2NGU1MTRkMjU5NDY0OTk1YTIwZWU2MjgyNGUzZGE1Li5hYjkyNmYx
MDk3MGQ1MGY0ZTkyMTA0YjMxMWEzZjIyOTRlODRlNTYwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1wYW5lbC5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLXBhbmVsLmh0bWwKQEAgLTQ5LDYgKzQ5LDcgQEAg
ZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIHsKICAgICAgICAgICAgIHZhciBtb2RlbCA9IGNyZWF0
ZURlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWxNb2NrKCk7CiAgICAgICAgICAgICB2YXIgcGFuZWwg
PSBuZXcgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbChtb2RlbCk7CisgICAgICAgICAgICBwYW5l
bC5hdHRhY2hlZEZvclRlc3QgPSB0cnVlOwogCiAgICAgICAgICAgICBwYW5lbC5fdWlTb3VyY2VD
b2RlQWRkZWQoeyBkYXRhOiBjcmVhdGVVSVNvdWNlQ29kZSgiZm9vLmpzIikgfSk7CiAgICAgICAg
ICAgICBwYW5lbC5fdWlTb3VyY2VDb2RlQWRkZWQoeyBkYXRhOiBjcmVhdGVVSVNvdWNlQ29kZSgi
YmFyLmpzIikgfSk7CkBAIC03NCw2ICs3NSw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICB7
CiAgICAgICAgICAgICB2YXIgbW9kZWwgPSBjcmVhdGVEZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVs
TW9jaygpOwogICAgICAgICAgICAgdmFyIHBhbmVsID0gbmV3IFdlYkluc3BlY3Rvci5TY3JpcHRz
UGFuZWwobW9kZWwpOworICAgICAgICAgICAgcGFuZWwuYXR0YWNoZWRGb3JUZXN0ID0gdHJ1ZTsK
IAogICAgICAgICAgICAgdmFyIGZpbGVzID0gWyJpbmRleC5odG1sIiwgInNjcmlwdDEuanMiLCAi
c2NyaXB0Mi5qcyIsICJzY3JpcHQzLmpzIl07CiAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsg
aSA8IGZpbGVzLmxlbmd0aDsgKytpKQpAQCAtMTMwLDYgKzEzMiw3IEBAIGZ1bmN0aW9uIHRlc3Qo
KQogICAgICAgICB7CiAgICAgICAgICAgICB2YXIgbW9kZWwgPSBjcmVhdGVEZWJ1Z2dlclByZXNl
bnRhdGlvbk1vZGVsTW9jaygpOwogICAgICAgICAgICAgdmFyIHBhbmVsID0gbmV3IFdlYkluc3Bl
Y3Rvci5TY3JpcHRzUGFuZWwobW9kZWwpOworICAgICAgICAgICAgcGFuZWwuYXR0YWNoZWRGb3JU
ZXN0ID0gdHJ1ZTsKIAogICAgICAgICAgICAgdmFyIHJvb3RVUkwgPSAiaHR0cDovL2xvY2FsaG9z
dDo4MDgwL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci8iOwogICAgICAgICAgICAgdmFy
IG5leHRJZCA9IDA7CkBAIC0xNjMsNiArMTY2LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAg
IHsKICAgICAgICAgICAgIHZhciBtb2RlbCA9IGNyZWF0ZURlYnVnZ2VyUHJlc2VudGF0aW9uTW9k
ZWxNb2NrKCk7CiAgICAgICAgICAgICB2YXIgcGFuZWwgPSBuZXcgV2ViSW5zcGVjdG9yLlNjcmlw
dHNQYW5lbChtb2RlbCk7CisgICAgICAgICAgICBwYW5lbC5hdHRhY2hlZEZvclRlc3QgPSB0cnVl
OwogCiAgICAgICAgICAgICBwYW5lbC5fdWlTb3VyY2VDb2RlQWRkZWQoeyBkYXRhOiBjcmVhdGVV
SVNvdWNlQ29kZSgiZm9vLmpzIikgfSk7CiAgICAgICAgICAgICB2YXIgY29tcGlsZWRTb3VyY2VD
b2RlID0gY3JlYXRlVUlTb3VjZUNvZGUoImNvbXBpbGVkLmpzIik7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3Ivdmlldy1ldmVudHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3ZpZXctZXZlbnRzLWV4cGVjdGVkLnR4dAppbmRleCA2YzM3MWM4OTQ1NzY0NWJm
YWI3ZjE3NzQxMjc0M2I4MjMyYjY2NGY3Li5iMmFmNjk4OTc5ZTY1OTg0YWZjYTA0NDFkODMzZDc3
Y2E0ZmNmNDMzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivdmlldy1ldmVudHMt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci92aWV3LWV2ZW50cy1leHBl
Y3RlZC50eHQKQEAgLTExLDcgKzExLDcgQEAgY2hpbGRWaWV3LnNob3cocGFyZW50Vmlldy5lbGVt
ZW50KQogcGFyZW50Vmlldy5kb1Jlc2l6ZSgpCiA+IFBhcmVudFZpZXcub25SZXNpemUoKQogPiBD
aGlsZFZpZXcub25SZXNpemUoKQotcGFyZW50Vmlldy5oaWRlKCkKK3BhcmVudFZpZXcuZGV0YWNo
KCkKID4gUGFyZW50Vmlldy53aWxsSGlkZSgpCiA+IENoaWxkVmlldy53aWxsSGlkZSgpCiBwYXJl
bnRWaWV3LnNob3cocm9vdCkKQEAgLTE5LDggKzE5LDggQEAgcGFyZW50Vmlldy5zaG93KHJvb3Qp
CiA+IFBhcmVudFZpZXcub25SZXNpemUoKQogPiBDaGlsZFZpZXcud2FzU2hvd24oKQogPiBDaGls
ZFZpZXcub25SZXNpemUoKQotY2hpbGRWaWV3LmhpZGUoKQorY2hpbGRWaWV3LmRldGFjaCgpCiA+
IENoaWxkVmlldy53aWxsSGlkZSgpCi1wYXJlbnRWaWV3LmhpZGUoKQorcGFyZW50Vmlldy5kZXRh
Y2goKQogPiBQYXJlbnRWaWV3LndpbGxIaWRlKCkKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3ZpZXctZXZlbnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivdmlldy1l
dmVudHMuaHRtbAppbmRleCA3ODNmNzY4MTAxMjY2MGRhNmM3ZmYwMTdkNGQ5N2U4NTI3ODA2MTFh
Li5hNmM2MmM0Njc5ZTk2YzY2NTQ0YjY0ZTUwODAzYTIwMmVjNGQ2ZGQ2IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3Ivdmlldy1ldmVudHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3Ivdmlldy1ldmVudHMuaHRtbApAQCAtNDcsMTAgKzQ3LDEwIEBAIGZ1bmN0aW9uIHRl
c3QoKQogICAgICAgICAicGFyZW50Vmlldy5kb1Jlc2l6ZSgpIiwKICAgICAgICAgImNoaWxkVmll
dy5zaG93KHBhcmVudFZpZXcuZWxlbWVudCkiLAogICAgICAgICAicGFyZW50Vmlldy5kb1Jlc2l6
ZSgpIiwKLSAgICAgICAgInBhcmVudFZpZXcuaGlkZSgpIiwKKyAgICAgICAgInBhcmVudFZpZXcu
ZGV0YWNoKCkiLAogICAgICAgICAicGFyZW50Vmlldy5zaG93KHJvb3QpIiwKLSAgICAgICAgImNo
aWxkVmlldy5oaWRlKCkiLAotICAgICAgICAicGFyZW50Vmlldy5oaWRlKCkiCisgICAgICAgICJj
aGlsZFZpZXcuZGV0YWNoKCkiLAorICAgICAgICAicGFyZW50Vmlldy5kZXRhY2goKSIKICAgICBd
KTsKICAgICBjaGlsZFZpZXcuZGV0YWNoKCk7CiAgICAgcGFyZW50Vmlldy5kZXRhY2goKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111928</attachid>
            <date>2011-10-21 02:44:15 -0700</date>
            <delta_ts>2011-10-21 05:33:39 -0700</delta_ts>
            <desc>[Patch] same with asserions instead of DOM listeners</desc>
            <filename>bug-70523-20111021134412.patch</filename>
            <type>text/plain</type>
            <size>61127</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTc5ODQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzNzAyMGQxYjY3NjVlMzMx
MzAyYjYwZGY5YjEzMTAzNzFmNmY2ZGYwLi5jM2JkZTUxMzNhNWIzOTQ2ZjRkYWE3ZjMyNzI3Mzhl
Zjg0NzNkNWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTA5IEBACiAyMDExLTEwLTIwICBQYXZl
bCBGZWxkbWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNvbT4KIAorICAgICAgICBXZWIgSW5zcGVjdG9y
OiBnZXQgcmlkIG9mIFZpZXc6OmhpZGUsIFZpZXc6OnNldCB2aXNpYmxlLCBWaWV3OjphdHRhY2gs
CisgICAgICAgIFZpZXc6OnNldCB2aXNpYmxlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA1MjMKKworICAgICAgICBUaGlzIGNoYW5nZSBhbHNvIGlu
dHJvZHVjZXMgYXNzZXRpb25zIHRoYXQgZm9yY2VzIHZpZXcgYXR0YWNoIC8gZGV0YWNoIG9wZXJh
dGlvbnMKKyAgICAgICAgdG8gYmUgcGVyZm9ybWVkIGV4cGxpY2l0bHkuCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L0FwcGxpY2F0aW9uQ2FjaGVJdGVtc1ZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXBw
bGljYXRpb25DYWNoZUl0ZW1zVmlldy5wcm90b3R5cGUud2FzU2hvd24pOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkFwcGxpY2F0aW9uQ2FjaGVJdGVtc1ZpZXcucHJvdG90eXBlLndpbGxIaWRlKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5BcHBsaWNhdGlvbkNhY2hlSXRlbXNWaWV3LnByb3RvdHlw
ZS5fdXBkYXRlQ2FsbGJhY2spOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRz
UGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXVkaXRzUGFuZWwucHJvdG90eXBlLndh
c1Nob3duKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVQYW5lbC5qczoK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlUGFuZWwucHJvdG90eXBlLndhc1Nob3duKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlUGFuZWwucHJvdG90eXBlLndpbGxIaWRlKToK
KyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZS53YXNTaG93bik6CisgICAgICAgICog
aW5zcGVjdG9yL2Zyb250LWVuZC9Db29raWVJdGVtc1ZpZXcuanM6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuQ29va2llSXRlbXNWaWV3LnByb3RvdHlwZS53YXNTaG93bik6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuQ29va2llSXRlbXNWaWV3LnByb3RvdHlwZS53aWxsSGlkZSk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuQ29va2llSXRlbXNWaWV3LnByb3RvdHlwZS5fdXBkYXRlV2l0aENvb2tpZXMp
OgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRE9NU3RvcmFnZUl0ZW1zVmlldy5qczoK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01TdG9yYWdlSXRlbXNWaWV3LnByb3RvdHlwZS53YXNT
aG93bik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZUl0ZW1zVmlldy5wcm90b3R5
cGUud2lsbEhpZGUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRGF0YWJhc2VRdWVy
eVZpZXcuanM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9EYXRhYmFzZVRhYmxlVmll
dy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EYXRhYmFzZVRhYmxlVmlldy5wcm90b3R5cGUu
d2FzU2hvd24pOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRGV0YWlsZWRIZWFwc2hv
dFZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGV0YWlsZWRIZWFwc2hvdFZpZXcucHJv
dG90eXBlLndpbGxIaWRlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZXRhaWxlZEhlYXBzaG90
Vmlldy5wcm90b3R5cGUuX2NoYW5nZVZpZXcpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1l
bmQvRHJhd2VyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRyYXdlci5wcm90b3R5cGUuaGlk
ZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwucHJvdG90eXBlLndhc1Nob3duKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50c1BhbmVsLnByb3RvdHlwZS53aWxsSGlkZSk6Cisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9FbXB0eVZpZXcuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuRW1wdHlWaWV3LnByb3RvdHlwZS53YXNTaG93bik6CisgICAgICAgICogaW5zcGVj
dG9yL2Zyb250LWVuZC9Gb250Vmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Gb250Vmll
dy5wcm90b3R5cGUud2FzU2hvd24pOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvSUZy
YW1lVmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5JRnJhbWVWaWV3KToKKyAgICAgICAg
KiBpbnNwZWN0b3IvZnJvbnQtZW5kL0ltYWdlVmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5JbWFnZVZpZXcucHJvdG90eXBlLndhc1Nob3duKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJv
bnQtZW5kL05ldHdvcmtJdGVtVmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OZXR3b3Jr
SXRlbVZpZXcucHJvdG90eXBlLndhc1Nob3duKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNv
dXJjZUNvbnRlbnRWaWV3LnByb3RvdHlwZS53YXNTaG93bik6CisgICAgICAgICogaW5zcGVjdG9y
L2Zyb250LWVuZC9OZXR3b3JrUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmV0d29y
a0xvZ1ZpZXcucHJvdG90eXBlLndhc1Nob3duKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OZXR3
b3JrTG9nVmlldy5wcm90b3R5cGUud2lsbEhpZGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5l
dHdvcmtQYW5lbC5wcm90b3R5cGUud2FzU2hvd24pOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9u
dC1lbmQvUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUGFuZWwpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZS5zaG93KToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5QYW5lbC5wcm90b3R5cGUud2FzU2hvd24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlBhbmVs
LnByb3RvdHlwZS53aWxsSGlkZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9QYW5l
bEVuYWJsZXJWaWV3LmpzOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZVZp
ZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1BVUHJvZmlsZVZpZXcucHJvdG90eXBlLndp
bGxIaWRlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWwuanM6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUud2FzU2hvd24p
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlLl9hZGRQcm9m
aWxlSGVhZGVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlw
ZS5fdXBkYXRlSW50ZXJmYWNlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVs
LnByb3RvdHlwZS5fZW5hYmxlRGV0YWlsZWRIZWFwUHJvZmlsZXMpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9mcm9udC1lbmQvUmVzb3VyY2VDb29raWVzVmlldy5qczoKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5SZXNvdXJjZUNvb2tpZXNWaWV3LnByb3RvdHlwZS53YXNTaG93bik6CisgICAgICAgICog
aW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZUhUTUxWaWV3LmpzOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlJlc291cmNlSFRNTFZpZXcucHJvdG90eXBlLndhc1Nob3duKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5SZXNvdXJjZUhUTUxWaWV3LnByb3RvdHlwZS53aWxsSGlkZSk6CisgICAgICAg
ICogaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZUpTT05WaWV3LmpzOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlJlc291cmNlSlNPTlZpZXcucGFyc2VKU09OLldlYkluc3BlY3Rvci5SZXNvdXJj
ZUpTT05WaWV3LnByb3RvdHlwZS53YXNTaG93bik6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250
LWVuZC9SZXNvdXJjZVRpbWluZ1ZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3Vy
Y2VUaW1pbmdWaWV3LnByb3RvdHlwZS53YXNTaG93bik6CisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9SZXNvdXJjZXNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJj
ZXNQYW5lbC5wcm90b3R5cGUud2FzU2hvd24pOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1l
bmQvU2NyaXB0c1BhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5w
cm90b3R5cGUud2FzU2hvd24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5w
cm90b3R5cGUuX3VwZGF0ZURlYnVnZ2VyQnV0dG9ucyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9Tb3VyY2VGcmFtZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFt
ZS5wcm90b3R5cGUud2FzU2hvd24pOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVGlt
ZWxpbmVQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3Rv
dHlwZS53YXNTaG93bik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90
b3R5cGUud2lsbEhpZGUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVmlldy5qczoK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5WaWV3KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaWV3
LnByb3RvdHlwZS5nZXQgdmlzaWJsZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlldy5wcm90
b3R5cGUuc2V0SGlkZU9uRGV0YWNoKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaWV3LnByb3Rv
dHlwZS5fd2FzU2hvd24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLl93
aWxsSGlkZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUuX29uUmVzaXpl
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZS53YXNTaG93bik6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUud2lsbEhpZGUpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLm9uUmVzaXplKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5WaWV3LnByb3RvdHlwZS5zaG93KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaWV3LnByb3Rv
dHlwZS5kZXRhY2gpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLmRvUmVz
aXplKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZS5kaXNwYXRjaFRvU2Vs
ZkFuZENoaWxkcmVuKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZS5kaXNw
YXRjaFRvQ2hpbGRyZW4pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLl9o
YW5kbGVJbnNlcnRlZEludG9Eb2N1bWVudCk6CisKKzIwMTEtMTAtMjAgIFBhdmVsIEZlbGRtYW4g
IDxwZmVsZG1hbkBnb29nbGUuY29tPgorCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGRldGFjaCBz
aG91bGQgY2FsbCBoaWRlIHNvIHRoYXQgb3ZlcnJpZGVzIGFyZSBwcm9jZXNzZWQuCiAgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDUwMwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0FkdmFuY2VkU2VhcmNoQ29u
dHJvbGxlci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQWR2YW5jZWRT
ZWFyY2hDb250cm9sbGVyLmpzCmluZGV4IGNjYWE0YjczMzg0ZjY1MzBlNTU1NmVjZjNmYTFiN2I5
YzcwMzEyNGEuLjNlYzczN2FiMGM2ODExMThmNDhkNmY0NjViMGJlOGRiOGI2N2M0N2UgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQWR2YW5jZWRTZWFyY2hD
b250cm9sbGVyLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQWR2
YW5jZWRTZWFyY2hDb250cm9sbGVyLmpzCkBAIC02OCw3ICs2OCw3IEBAIFdlYkluc3BlY3Rvci5B
ZHZhbmNlZFNlYXJjaENvbnRyb2xsZXIucHJvdG90eXBlID0gewogICAgICAgICBpZiAoIXRoaXMu
X3NlYXJjaFZpZXcpCiAgICAgICAgICAgICB0aGlzLl9zZWFyY2hWaWV3ID0gbmV3IFdlYkluc3Bl
Y3Rvci5TZWFyY2hWaWV3KHRoaXMpOwogICAgICAgICAKLSAgICAgICAgaWYgKHRoaXMuX3NlYXJj
aFZpZXcudmlzaWJsZSkKKyAgICAgICAgaWYgKHRoaXMuX3NlYXJjaFZpZXcuaXNTaG93aW5nKCkp
CiAgICAgICAgICAgICB0aGlzLl9zZWFyY2hWaWV3LmZvY3VzKCk7CiAgICAgICAgIGVsc2UKICAg
ICAgICAgICAgIFdlYkluc3BlY3Rvci5zaG93Vmlld0luRHJhd2VyKHRoaXMuX3NlYXJjaFZpZXcp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BcHBsaWNh
dGlvbkNhY2hlSXRlbXNWaWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9BcHBsaWNhdGlvbkNhY2hlSXRlbXNWaWV3LmpzCmluZGV4IDhjY2M4OGI2NGI5YjE5YWM4NTM0
YTc0NzI5N2Y1NWI0ZmEwYmVhZmEuLmM5ZDZlZGFjZTMzM2NmYjMwZmFjYjEyYjNjY2Q2YzNkNmU5
MjAwMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQXBw
bGljYXRpb25DYWNoZUl0ZW1zVmlldy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0FwcGxpY2F0aW9uQ2FjaGVJdGVtc1ZpZXcuanMKQEAgLTEwMywxNiArMTAzLDE0
IEBAIFdlYkluc3BlY3Rvci5BcHBsaWNhdGlvbkNhY2hlSXRlbXNWaWV3LnByb3RvdHlwZSA9IHsK
ICAgICAgICAgfQogICAgIH0sCiAKLSAgICBzaG93OiBmdW5jdGlvbihwYXJlbnRFbGVtZW50KQor
ICAgIHdhc1Nob3duOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBXZWJJbnNwZWN0b3IuVmll
dy5wcm90b3R5cGUuc2hvdy5jYWxsKHRoaXMsIHBhcmVudEVsZW1lbnQpOwogICAgICAgICB0aGlz
LnVwZGF0ZU5ldHdvcmtTdGF0ZShuYXZpZ2F0b3Iub25MaW5lKTsKICAgICAgICAgdGhpcy5fdXBk
YXRlKCk7CiAgICAgfSwKIAotICAgIGhpZGU6IGZ1bmN0aW9uKCkKKyAgICB3aWxsSGlkZTogZnVu
Y3Rpb24oKQogICAgIHsKLSAgICAgICAgV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLmhpZGUu
Y2FsbCh0aGlzKTsKICAgICAgICAgdGhpcy5kZWxldGVCdXR0b24udmlzaWJsZSA9IGZhbHNlOwog
ICAgIH0sCiAKQEAgLTE3OSw3ICsxNzcsNyBAQCBXZWJJbnNwZWN0b3IuQXBwbGljYXRpb25DYWNo
ZUl0ZW1zVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX3BvcHVsYXRlRGF0YUdyaWQo
KTsKICAgICAgICAgdGhpcy5fZGF0YUdyaWQuYXV0b1NpemVDb2x1bW5zKDIwLCA4MCk7CiAgICAg
ICAgIHRoaXMuX2RhdGFHcmlkLmVsZW1lbnQucmVtb3ZlU3R5bGVDbGFzcygiaGlkZGVuIik7Ci0g
ICAgICAgIHRoaXMuX2VtcHR5Vmlldy5oaWRlKCk7CisgICAgICAgIHRoaXMuX2VtcHR5Vmlldy5k
ZXRhY2goKTsKICAgICAgICAgdGhpcy5kZWxldGVCdXR0b24udmlzaWJsZSA9IHRydWU7CiAKICAg
ICAgICAgdmFyIHRvdGFsU2l6ZVN0cmluZyA9IE51bWJlci5ieXRlc1RvU3RyaW5nKHRoaXMuX3Np
emUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BdWRp
dHNQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRzUGFu
ZWwuanMKaW5kZXggNTdkZWJmMzAyYjNmYmIxMzY3ZmQ2OGE0OGVkNjVjOGU0MTI4NDk3OC4uOTJi
NTMxZjQ1ZGUzYjVkZTk4OGM3MDk5YzJiZmYzNzMyMTA3YzE2NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BdWRpdHNQYW5lbC5qcworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1ZGl0c1BhbmVsLmpzCkBAIC0yNDQsOSArMjQ0
LDkgQEAgV2ViSW5zcGVjdG9yLkF1ZGl0c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAg
IHguc2hvdyh0aGlzLnZpZXdzQ29udGFpbmVyRWxlbWVudCk7CiAgICAgfSwKIAotICAgIHNob3c6
IGZ1bmN0aW9uKCkKKyAgICB3YXNTaG93bjogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgV2Vi
SW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZS5zaG93LmNhbGwodGhpcyk7CisgICAgICAgIFdlYklu
c3BlY3Rvci5QYW5lbC5wcm90b3R5cGUud2FzU2hvd24uY2FsbCh0aGlzKTsKICAgICAgICAgaWYg
KCF0aGlzLl92aXNpYmxlVmlldykKICAgICAgICAgICAgIHRoaXMuYXVkaXRzSXRlbVRyZWVFbGVt
ZW50LnNlbGVjdCgpOwogICAgIH0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0NvbnNvbGVQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvQ29uc29sZVBhbmVsLmpzCmluZGV4IGY3NmU1YjY0NTQ1ZTEzZDZmODkzOWNkMTU3
OGExOGJiMmE5N2Y1OTUuLjYyMTU3ZDI2YmM0ZTIzNDk2ZGUxYmNiZjk0MWUzMTFiZmZjYjVhYmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVBh
bmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVBh
bmVsLmpzCkBAIC01MCwyMyArNTAsMjMgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVQYW5lbC5wcm90
b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiB0aGlzLl92aWV3LnN0YXR1c0Jhckl0ZW1zOwogICAg
IH0sCiAKLSAgICBzaG93OiBmdW5jdGlvbigpCisgICAgd2FzU2hvd246IGZ1bmN0aW9uKCkKICAg
ICB7CisgICAgICAgIFdlYkluc3BlY3Rvci5QYW5lbC5wcm90b3R5cGUud2FzU2hvd24uY2FsbCh0
aGlzKTsKICAgICAgICAgaWYgKFdlYkluc3BlY3Rvci5kcmF3ZXIudmlzaWJsZSkgewogICAgICAg
ICAgICAgV2ViSW5zcGVjdG9yLmRyYXdlci5oaWRlKFdlYkluc3BlY3Rvci5EcmF3ZXIuQW5pbWF0
aW9uVHlwZS5JbW1lZGlhdGVseSk7CiAgICAgICAgICAgICB0aGlzLl9kcmF3ZXJXYXNWaXNpYmxl
ID0gdHJ1ZTsKICAgICAgICAgfQotICAgICAgICBXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBl
LnNob3cuY2FsbCh0aGlzKTsKICAgICAgICAgdGhpcy5fdmlldy5zaG93KHRoaXMuZWxlbWVudCk7
CiAgICAgfSwKIAotICAgIGhpZGU6IGZ1bmN0aW9uKCkKKyAgICB3aWxsSGlkZTogZnVuY3Rpb24o
KQogICAgIHsKLSAgICAgICAgV2ViSW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZS5oaWRlLmNhbGwo
dGhpcyk7CiAgICAgICAgIGlmICh0aGlzLl9kcmF3ZXJXYXNWaXNpYmxlKSB7CiAgICAgICAgICAg
ICBXZWJJbnNwZWN0b3IuZHJhd2VyLnNob3codGhpcy5fdmlldywgV2ViSW5zcGVjdG9yLkRyYXdl
ci5BbmltYXRpb25UeXBlLkltbWVkaWF0ZWx5KTsKICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9k
cmF3ZXJXYXNWaXNpYmxlOwogICAgICAgICB9CisgICAgICAgIFdlYkluc3BlY3Rvci5QYW5lbC5w
cm90b3R5cGUud2lsbEhpZGUuY2FsbCh0aGlzKTsKICAgICB9LAogCiAgICAgc2VhcmNoQ2FuY2Vs
ZWQ6IGZ1bmN0aW9uKCkKQEAgLTEzMiw3ICsxMzIsNyBAQCBXZWJJbnNwZWN0b3IuQ29uc29sZVBh
bmVsLnByb3RvdHlwZSA9IHsKIAogICAgIF9jb25zb2xlTWVzc2FnZUFkZGVkOiBmdW5jdGlvbihl
dmVudCkKICAgICB7Ci0gICAgICAgIGlmICghdGhpcy5fc2VhcmNoUmVnZXggfHwgIXRoaXMudmlz
aWJsZSkKKyAgICAgICAgaWYgKCF0aGlzLl9zZWFyY2hSZWdleCB8fCAhdGhpcy5pc1Nob3dpbmco
KSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgdmFyIG1lc3NhZ2UgPSBldmVudC5kYXRh
OwogICAgICAgICB0aGlzLl9zZWFyY2hSZWdleC5sYXN0SW5kZXggPSAwOwpAQCAtMTQ4LDcgKzE0
OCw3IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB0aGlzLl9jbGVhckN1cnJlbnRTZWFyY2hSZXN1bHRIaWdobGln
aHQoKTsKICAgICAgICAgdGhpcy5fc2VhcmNoUmVzdWx0cy5sZW5ndGggPSAwOwotICAgICAgICBp
ZiAodGhpcy52aXNpYmxlKQorICAgICAgICBpZiAodGhpcy5pc1Nob3dpbmcoKSkKICAgICAgICAg
ICAgIFdlYkluc3BlY3Rvci5zZWFyY2hDb250cm9sbGVyLnVwZGF0ZVNlYXJjaE1hdGNoZXNDb3Vu
dCgwLCB0aGlzKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9Db25zb2xlVmlldy5qcwppbmRleCA4NGQwMTExMDdmOWE2YjQ4ODZmNmZiZTM5OGVm
Y2U5MzY2MjQ0MWJiLi5mNGY4NDMyY2E5ODFhODk1ZDBmYTQ1NTk2ZDYyYjU3MWU0MDk4ODJhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3
LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcu
anMKQEAgLTIyNiw3ICsyMjYsNiBAQCBXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBl
ID0gewogCiAgICAgd2FzU2hvd246IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIFdlYkluc3Bl
Y3Rvci5WaWV3LnByb3RvdHlwZS53YXNTaG93bi5jYWxsKHRoaXMpOwogICAgICAgICBpZiAoIXRo
aXMucHJvbXB0LmlzQ2FyZXRJbnNpZGVQcm9tcHQoKSkKICAgICAgICAgICAgIHRoaXMucHJvbXB0
Lm1vdmVDYXJldFRvRW5kT2ZQcm9tcHQoKTsKICAgICB9LApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db29raWVJdGVtc1ZpZXcuanMgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0Nvb2tpZUl0ZW1zVmlldy5qcwppbmRleCBiZWE4MzY0
NTcyMGM2ZWIzZWViMTI4ODYyNGY3YWZiY2VkZDA2YjFjLi40OGFhMjkzNDE2OWZjNjY3ZTdmNTYy
NTYxMjNhZGMyYzY1MWY3YWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0Nvb2tpZUl0ZW1zVmlldy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0Nvb2tpZUl0ZW1zVmlldy5qcwpAQCAtNTksMTUgKzU5LDEzIEBAIFdlYklu
c3BlY3Rvci5Db29raWVJdGVtc1ZpZXcucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gW3Ro
aXMuX3JlZnJlc2hCdXR0b24uZWxlbWVudCwgdGhpcy5fZGVsZXRlQnV0dG9uLmVsZW1lbnRdOwog
ICAgIH0sCiAKLSAgICBzaG93OiBmdW5jdGlvbihwYXJlbnRFbGVtZW50KQorICAgIHdhc1Nob3du
OiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUu
c2hvdy5jYWxsKHRoaXMsIHBhcmVudEVsZW1lbnQpOwogICAgICAgICB0aGlzLl91cGRhdGUoKTsK
ICAgICB9LAogCi0gICAgaGlkZTogZnVuY3Rpb24oKQorICAgIHdpbGxIaWRlOiBmdW5jdGlvbigp
CiAgICAgewotICAgICAgICBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUuaGlkZS5jYWxsKHRo
aXMpOwogICAgICAgICB0aGlzLl9kZWxldGVCdXR0b24udmlzaWJsZSA9IGZhbHNlOwogICAgIH0s
CiAKQEAgLTEwMiw3ICsxMDAsNyBAQCBXZWJJbnNwZWN0b3IuQ29va2llSXRlbXNWaWV3LnByb3Rv
dHlwZSA9IHsKIAogICAgICAgICB0aGlzLl9jb29raWVzVGFibGUuc2V0Q29va2llcyh0aGlzLl9j
b29raWVzKTsKICAgICAgICAgdGhpcy5fY29va2llc1RhYmxlLmVsZW1lbnQucmVtb3ZlU3R5bGVD
bGFzcygiaGlkZGVuIik7Ci0gICAgICAgIHRoaXMuX2VtcHR5Vmlldy5oaWRlKCk7CisgICAgICAg
IHRoaXMuX2VtcHR5Vmlldy5kZXRhY2goKTsKICAgICAgICAgaWYgKGlzQWR2YW5jZWQpIHsKICAg
ICAgICAgICAgIHRoaXMuX3RyZWVFbGVtZW50LnN1YnRpdGxlID0gU3RyaW5nLnNwcmludGYoV2Vi
SW5zcGVjdG9yLlVJU3RyaW5nKCIlZCBjb29raWVzICglcykiKSwgdGhpcy5fY29va2llcy5sZW5n
dGgsCiAgICAgICAgICAgICAgICAgTnVtYmVyLmJ5dGVzVG9TdHJpbmcodGhpcy5fdG90YWxTaXpl
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTVN0
b3JhZ2VJdGVtc1ZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RP
TVN0b3JhZ2VJdGVtc1ZpZXcuanMKaW5kZXggMTViNGMxYjAxZDIzZmI5NmY5NTEzOTYyMGVhOTBl
M2I5ZTNhNzg5NC4uYjg2OTRmN2MzOTQyOTViZmY2Njk1MzgwODNkMmFkNWEwMjlkN2I5MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9ET01TdG9yYWdlSXRl
bXNWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9NU3Rv
cmFnZUl0ZW1zVmlldy5qcwpAQCAtNTAsMTUgKzUwLDEzIEBAIFdlYkluc3BlY3Rvci5ET01TdG9y
YWdlSXRlbXNWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJuIFt0aGlzLnJlZnJlc2hC
dXR0b24uZWxlbWVudCwgdGhpcy5kZWxldGVCdXR0b24uZWxlbWVudF07CiAgICAgfSwKIAotICAg
IHNob3c6IGZ1bmN0aW9uKHBhcmVudEVsZW1lbnQpCisgICAgd2FzU2hvd246IGZ1bmN0aW9uKCkK
ICAgICB7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZS5zaG93LmNhbGwodGhp
cywgcGFyZW50RWxlbWVudCk7CiAgICAgICAgIHRoaXMudXBkYXRlKCk7CiAgICAgfSwKIAotICAg
IGhpZGU6IGZ1bmN0aW9uKCkKKyAgICB3aWxsSGlkZTogZnVuY3Rpb24oKQogICAgIHsKLSAgICAg
ICAgV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLmhpZGUuY2FsbCh0aGlzKTsKICAgICAgICAg
dGhpcy5kZWxldGVCdXR0b24udmlzaWJsZSA9IGZhbHNlOwogICAgIH0sCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGF0YWJhc2VRdWVyeVZpZXcuanMg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RhdGFiYXNlUXVlcnlWaWV3Lmpz
CmluZGV4IDY5MjA3Y2Y3Njk5OTkzZDFmYTBlMDAyYWEyNjU2ZGE5OGNjNDVkY2UuLmUwNDM1NGMw
ZGFmNmNmYjUxZjgzNzRlMTIwMzYwY2Y4ODIxZWQ5MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGF0YWJhc2VRdWVyeVZpZXcuanMKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EYXRhYmFzZVF1ZXJ5Vmlldy5qcwpAQCAtNTQs
MTAgKzU0LDggQEAgV2ViSW5zcGVjdG9yLkRhdGFiYXNlUXVlcnlWaWV3LkV2ZW50cyA9IHsKIH0K
IAogV2ViSW5zcGVjdG9yLkRhdGFiYXNlUXVlcnlWaWV3LnByb3RvdHlwZSA9IHsKLSAgICBzaG93
OiBmdW5jdGlvbihwYXJlbnRFbGVtZW50KQorICAgIHdhc1Nob3duOiBmdW5jdGlvbigpCiAgICAg
ewotICAgICAgICBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUuc2hvdy5jYWxsKHRoaXMsIHBh
cmVudEVsZW1lbnQpOwotCiAgICAgICAgIGZ1bmN0aW9uIG1vdmVCYWNrSWZPdXRzaWRlKCkKICAg
ICAgICAgewogICAgICAgICAgICAgaWYgKCF0aGlzLnByb21wdC5pc0NhcmV0SW5zaWRlUHJvbXB0
KCkgJiYgd2luZG93LmdldFNlbGVjdGlvbigpLmlzQ29sbGFwc2VkKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EYXRhYmFzZVRhYmxlVmlldy5qcyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGF0YWJhc2VUYWJsZVZpZXcuanMKaW5k
ZXggMThhNWNhYzY0MjNjZGIzZWUwYjAxNDcyYzMyMjExM2RjYmE5N2FmYS4uNTc2ZWNlMzU2ZjFl
MzM0ZjgwZTBhYjQ0OTdiMmFhYWFiNmQ1NmUwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9EYXRhYmFzZVRhYmxlVmlldy5qcworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RhdGFiYXNlVGFibGVWaWV3LmpzCkBAIC00Miw5ICs0
Miw4IEBAIFdlYkluc3BlY3Rvci5EYXRhYmFzZVRhYmxlVmlldyA9IGZ1bmN0aW9uKGRhdGFiYXNl
LCB0YWJsZU5hbWUpCiB9CiAKIFdlYkluc3BlY3Rvci5EYXRhYmFzZVRhYmxlVmlldy5wcm90b3R5
cGUgPSB7Ci0gICAgc2hvdzogZnVuY3Rpb24ocGFyZW50RWxlbWVudCkKKyAgICB3YXNTaG93bjog
ZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLnNo
b3cuY2FsbCh0aGlzLCBwYXJlbnRFbGVtZW50KTsKICAgICAgICAgdGhpcy51cGRhdGUoKTsKICAg
ICB9LAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0Rl
dGFpbGVkSGVhcHNob3RWaWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9EZXRhaWxlZEhlYXBzaG90Vmlldy5qcwppbmRleCBiNWNkYzA5OGQ0ZWU4ZDFlZjBjZjRjZjgy
NjdlMTg4YjE4OTFiZDViLi42ODNmZmE3NWUzODkyOTJlYTMzM2MwOTc4OTM1MDZmYmVkMzk1OWI0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RldGFpbGVk
SGVhcHNob3RWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
RGV0YWlsZWRIZWFwc2hvdFZpZXcuanMKQEAgLTU4Niw3ICs1ODYsNiBAQCBXZWJJbnNwZWN0b3Iu
RGV0YWlsZWRIZWFwc2hvdFZpZXcgPSBmdW5jdGlvbihwYXJlbnQsIHByb2ZpbGUpCiAgICAgdGhp
cy5jb250YWlubWVudERhdGFHcmlkLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0
aGlzLl9tb3VzZUNsaWNrSW5Db250ZW50c0dyaWQuYmluZCh0aGlzKSwgdHJ1ZSk7CiAgICAgdGhp
cy5jb250YWlubWVudERhdGFHcmlkLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3du
IiwgdGhpcy5fbW91c2VEb3duSW5Db250ZW50c0dyaWQuYmluZCh0aGlzKSwgdHJ1ZSk7CiAgICAg
dGhpcy5jb250YWlubWVudFZpZXcuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLmNvbnRhaW5tZW50
RGF0YUdyaWQuZWxlbWVudCk7Ci0gICAgdGhpcy52aWV3c0NvbnRhaW5lci5hcHBlbmRDaGlsZCh0
aGlzLmNvbnRhaW5tZW50Vmlldy5lbGVtZW50KTsKIAogICAgIHRoaXMuY29uc3RydWN0b3JzVmll
dyA9IG5ldyBXZWJJbnNwZWN0b3IuVmlldygpOwogICAgIHRoaXMuY29uc3RydWN0b3JzVmlldy5l
bGVtZW50LmFkZFN0eWxlQ2xhc3MoInZpZXciKTsKQEAgLTU5NCwxNCArNTkzLDEyIEBAIFdlYklu
c3BlY3Rvci5EZXRhaWxlZEhlYXBzaG90VmlldyA9IGZ1bmN0aW9uKHBhcmVudCwgcHJvZmlsZSkK
ICAgICB0aGlzLmNvbnN0cnVjdG9yc0RhdGFHcmlkLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigi
Y2xpY2siLCB0aGlzLl9tb3VzZUNsaWNrSW5Db250ZW50c0dyaWQuYmluZCh0aGlzKSwgdHJ1ZSk7
CiAgICAgdGhpcy5jb25zdHJ1Y3RvcnNEYXRhR3JpZC5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIo
Im1vdXNlZG93biIsIHRoaXMuX21vdXNlRG93bkluQ29udGVudHNHcmlkLmJpbmQodGhpcyksIHRy
dWUpOwogICAgIHRoaXMuY29uc3RydWN0b3JzVmlldy5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMu
Y29uc3RydWN0b3JzRGF0YUdyaWQuZWxlbWVudCk7Ci0gICAgdGhpcy52aWV3c0NvbnRhaW5lci5h
cHBlbmRDaGlsZCh0aGlzLmNvbnN0cnVjdG9yc1ZpZXcuZWxlbWVudCk7CiAKICAgICB0aGlzLmRp
ZmZWaWV3ID0gbmV3IFdlYkluc3BlY3Rvci5WaWV3KCk7CiAgICAgdGhpcy5kaWZmVmlldy5lbGVt
ZW50LmFkZFN0eWxlQ2xhc3MoInZpZXciKTsKICAgICB0aGlzLmRpZmZEYXRhR3JpZCA9IG5ldyBX
ZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90RGlmZkRhdGFHcmlkKCk7CiAgICAgdGhpcy5kaWZmRGF0
YUdyaWQuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuX21vdXNlQ2xpY2tJ
bkNvbnRlbnRzR3JpZC5iaW5kKHRoaXMpLCB0cnVlKTsKICAgICB0aGlzLmRpZmZWaWV3LmVsZW1l
bnQuYXBwZW5kQ2hpbGQodGhpcy5kaWZmRGF0YUdyaWQuZWxlbWVudCk7Ci0gICAgdGhpcy52aWV3
c0NvbnRhaW5lci5hcHBlbmRDaGlsZCh0aGlzLmRpZmZWaWV3LmVsZW1lbnQpOwogCiAgICAgdGhp
cy5kb21pbmF0b3JWaWV3ID0gbmV3IFdlYkluc3BlY3Rvci5WaWV3KCk7CiAgICAgdGhpcy5kb21p
bmF0b3JWaWV3LmVsZW1lbnQuYWRkU3R5bGVDbGFzcygidmlldyIpOwpAQCAtNjA5LDcgKzYwNiw2
IEBAIFdlYkluc3BlY3Rvci5EZXRhaWxlZEhlYXBzaG90VmlldyA9IGZ1bmN0aW9uKHBhcmVudCwg
cHJvZmlsZSkKICAgICB0aGlzLmRvbWluYXRvckRhdGFHcmlkLmVsZW1lbnQuYWRkRXZlbnRMaXN0
ZW5lcigiY2xpY2siLCB0aGlzLl9tb3VzZUNsaWNrSW5Db250ZW50c0dyaWQuYmluZCh0aGlzKSwg
dHJ1ZSk7CiAgICAgdGhpcy5kb21pbmF0b3JEYXRhR3JpZC5lbGVtZW50LmFkZEV2ZW50TGlzdGVu
ZXIoIm1vdXNlZG93biIsIHRoaXMuX21vdXNlRG93bkluQ29udGVudHNHcmlkLmJpbmQodGhpcyks
IHRydWUpOwogICAgIHRoaXMuZG9taW5hdG9yVmlldy5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMu
ZG9taW5hdG9yRGF0YUdyaWQuZWxlbWVudCk7Ci0gICAgdGhpcy52aWV3c0NvbnRhaW5lci5hcHBl
bmRDaGlsZCh0aGlzLmRvbWluYXRvclZpZXcuZWxlbWVudCk7CiAKICAgICB0aGlzLnJldGFpbm1l
bnRWaWV3SGVhZGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgICAgdGhpcy5y
ZXRhaW5tZW50Vmlld0hlYWRlci5hZGRTdHlsZUNsYXNzKCJyZXRhaW5lcnMtdmlldy1oZWFkZXIi
KTsKQEAgLTczOSw5ICs3MzUsOCBAQCBXZWJJbnNwZWN0b3IuRGV0YWlsZWRIZWFwc2hvdFZpZXcu
cHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gdGhpcy5iYXNlUHJvZmlsZS5wcm94eTsKICAg
ICB9LAogCi0gICAgc2hvdzogZnVuY3Rpb24ocGFyZW50RWxlbWVudCkKKyAgICB3YXNTaG93bjog
ZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLnNo
b3cuY2FsbCh0aGlzLCBwYXJlbnRFbGVtZW50KTsKICAgICAgICAgaWYgKCF0aGlzLnByb2ZpbGVX
cmFwcGVyLmxvYWRlZCkKICAgICAgICAgICAgIHRoaXMuX2xvYWRQcm9maWxlKHRoaXMuX3Byb2Zp
bGVVaWQsIHByb2ZpbGVDYWxsYmFjazEuYmluZCh0aGlzKSk7CiAgICAgICAgIGVsc2UKQEAgLTc2
MCw5ICs3NTUsOCBAQCBXZWJJbnNwZWN0b3IuRGV0YWlsZWRIZWFwc2hvdFZpZXcucHJvdG90eXBl
ID0gewogICAgICAgICB9CiAgICAgfSwKIAotICAgIGhpZGU6IGZ1bmN0aW9uKCkKKyAgICB3aWxs
SGlkZTogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90
eXBlLmhpZGUuY2FsbCh0aGlzKTsKICAgICAgICAgdGhpcy5fY3VycmVudFNlYXJjaFJlc3VsdElu
ZGV4ID0gLTE7CiAgICAgfSwKIApAQCAtMTA2OCw3ICsxMDYyLDcgQEAgV2ViSW5zcGVjdG9yLkRl
dGFpbGVkSGVhcHNob3RWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHJldHVybjsKIAog
ICAgICAgICB0aGlzLnZpZXdzLmN1cnJlbnQgPSBldmVudC50YXJnZXQuc2VsZWN0ZWRJbmRleDsK
LSAgICAgICAgdGhpcy5jdXJyZW50Vmlldy5oaWRlKCk7CisgICAgICAgIHRoaXMuY3VycmVudFZp
ZXcuZGV0YWNoKCk7CiAgICAgICAgIHZhciB2aWV3ID0gdGhpcy52aWV3c1t0aGlzLnZpZXdzLmN1
cnJlbnRdOwogICAgICAgICB0aGlzLmN1cnJlbnRWaWV3ID0gdmlldy52aWV3OwogICAgICAgICB0
aGlzLmRhdGFHcmlkID0gdmlldy5ncmlkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9EcmF3ZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0RyYXdlci5qcwppbmRleCBjODM2N2NmZjY4NGExZTlhYmYzYjk5ZTI1MDg0ZGI0NGI2
NzRlMzQ0Li5lYzU2ZWEzNDNjZmZmMzVhNzU1MGQ5NTNhYmVhNjU0MTZlMTE4YzJhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RyYXdlci5qcworKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RyYXdlci5qcwpAQCAtMTczLDcgKzE3
Myw2IEBAIFdlYkluc3BlY3Rvci5EcmF3ZXIucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAg
IHRoaXMuX2NvdW50ZXJzLmluc2VydEJlZm9yZSh0aGlzLl9jdXJyZW50UGFuZWxDb3VudGVycywg
dGhpcy5fY291bnRlcnMuZmlyc3RDaGlsZCk7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAg
IHRoaXMuX3ZpZXcuaGlkZSgpOwogICAgICAgICAgICAgdGhpcy5fZHJhd2VyQ29udGVudHNFbGVt
ZW50LnJlbW92ZUNoaWxkcmVuKCk7CiAgICAgICAgICAgICBkZWxldGUgdGhpcy5fdmlldzsKICAg
ICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlU3R5bGVDbGFzcygiZHJhd2VyLXZpc2libGUi
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVu
dHNQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNQ
YW5lbC5qcwppbmRleCBhYTZkZWQwYThlMDkwNjAwMGVjZGU1ZGI3YjcwNGE3MjExMGQ5OTQ2Li5j
ODBiNjc2YWEwZmVjNGRjZjY3NWRlMWUyNDJhOTEwMzQ1OTkyMTMzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanMKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzCkBAIC0xMjQs
MTMgKzEyNCwxNCBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90b3R5cGUgPSB7CiAg
ICAgICAgIHRoaXMudXBkYXRlQnJlYWRjcnVtYlNpemVzKCk7CiAgICAgfSwKIAotICAgIHNob3c6
IGZ1bmN0aW9uKCkKKyAgICB3YXNTaG93bjogZnVuY3Rpb24oKQogICAgIHsKKyAgICAgICAgV2Vi
SW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZS53YXNTaG93bi5jYWxsKHRoaXMpOworCiAgICAgICAg
IC8vIEF0dGFjaCBoZWF2eSBjb21wb25lbnQgbGF6aWx5CiAgICAgICAgIGlmICh0aGlzLnRyZWVP
dXRsaW5lLmVsZW1lbnQucGFyZW50RWxlbWVudCAhPT0gdGhpcy5jb250ZW50RWxlbWVudCkKICAg
ICAgICAgICAgIHRoaXMuY29udGVudEVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy50cmVlT3V0bGlu
ZS5lbGVtZW50KTsKIAotICAgICAgICBXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBlLnNob3cu
Y2FsbCh0aGlzKTsKICAgICAgICAgdGhpcy5zaWRlYmFyUmVzaXplRWxlbWVudC5zdHlsZS5yaWdo
dCA9ICh0aGlzLnNpZGViYXJFbGVtZW50Lm9mZnNldFdpZHRoIC0gMykgKyAicHgiOwogICAgICAg
ICB0aGlzLnVwZGF0ZUJyZWFkY3J1bWIoKTsKICAgICAgICAgdGhpcy50cmVlT3V0bGluZS51cGRh
dGVTZWxlY3Rpb24oKTsKQEAgLTE0MCwxNiArMTQxLDE2IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50
c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHRoaXMuc2lkZWJhckVsZW1lbnQuaW5z
ZXJ0QmVmb3JlKHRoaXMuc2lkZWJhclBhbmVzLmRvbUJyZWFrcG9pbnRzLmVsZW1lbnQsIHRoaXMu
c2lkZWJhclBhbmVzLmV2ZW50TGlzdGVuZXJzLmVsZW1lbnQpOwogICAgIH0sCiAKLSAgICBoaWRl
OiBmdW5jdGlvbigpCisgICAgd2lsbEhpZGU6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIFdl
Ykluc3BlY3Rvci5QYW5lbC5wcm90b3R5cGUuaGlkZS5jYWxsKHRoaXMpOwotCiAgICAgICAgIFdl
Ykluc3BlY3Rvci5kb21BZ2VudC5oaWRlRE9NTm9kZUhpZ2hsaWdodCgpOwogICAgICAgICB0aGlz
LnNldFNlYXJjaGluZ0Zvck5vZGUoZmFsc2UpOwogICAgICAgICB0aGlzLnRyZWVPdXRsaW5lLnNl
dFZpc2libGUoZmFsc2UpOwogCiAgICAgICAgIC8vIERldGFjaCBoZWF2eSBjb21wb25lbnQgb24g
aGlkZQogICAgICAgICB0aGlzLmNvbnRlbnRFbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMudHJlZU91
dGxpbmUuZWxlbWVudCk7CisKKyAgICAgICAgV2ViSW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZS53
aWxsSGlkZS5jYWxsKHRoaXMpOwogICAgIH0sCiAKICAgICBvblJlc2l6ZTogZnVuY3Rpb24oKQpA
QCAtNDA2LDcgKzQwNyw3IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1BhbmVsLnByb3RvdHlwZSA9
IHsKIAogICAgIF9ub2RlUmVtb3ZlZDogZnVuY3Rpb24oZXZlbnQpCiAgICAgewotICAgICAgICBp
ZiAoIXRoaXMudmlzaWJsZSkKKyAgICAgICAgaWYgKCF0aGlzLmlzU2hvd2luZygpKQogICAgICAg
ICAgICAgcmV0dXJuOwogCiAgICAgICAgIHZhciBjcnVtYnMgPSB0aGlzLmNydW1ic0VsZW1lbnQ7
CkBAIC00NjEsNyArNDYyLDcgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwucHJvdG90eXBl
ID0gewogICAgICAqLwogICAgIHVwZGF0ZUJyZWFkY3J1bWI6IGZ1bmN0aW9uKGZvcmNlVXBkYXRl
KQogICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLnZpc2libGUpCisgICAgICAgIGlmICghdGhpcy5p
c1Nob3dpbmcoKSkKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICB2YXIgY3J1bWJzID0g
dGhpcy5jcnVtYnNFbGVtZW50OwpAQCAtNTg4LDcgKzU4OSw3IEBAIFdlYkluc3BlY3Rvci5FbGVt
ZW50c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAgICB1cGRhdGVCcmVhZGNydW1iU2l6
ZXM6IGZ1bmN0aW9uKGZvY3VzZWRDcnVtYikKICAgICB7Ci0gICAgICAgIGlmICghdGhpcy52aXNp
YmxlKQorICAgICAgICBpZiAoIXRoaXMuaXNTaG93aW5nKCkpCiAgICAgICAgICAgICByZXR1cm47
CiAKICAgICAgICAgaWYgKGRvY3VtZW50LmJvZHkub2Zmc2V0V2lkdGggPD0gMCkgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbXB0eVZpZXcuanMgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VtcHR5Vmlldy5qcwppbmRleCBmOTg2
NjEyZDk5ODAwZWNjYWVkYmFiZGUxYWU0ZjBmMDA1MDcxZWE3Li4xZDQ0YzhhYzQwYmM4MzU0NmIw
NmRkYTVjNTBhNTJhNThlZjU5YTUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0VtcHR5Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0VtcHR5Vmlldy5qcwpAQCAtMzksMTMgKzM5LDggQEAgV2ViSW5zcGVjdG9yLkVt
cHR5VmlldyA9IGZ1bmN0aW9uKHRleHQpCiB9CiAKIFdlYkluc3BlY3Rvci5FbXB0eVZpZXcucHJv
dG90eXBlID0gewotICAgIC8qKgotICAgICAqIEBwYXJhbSB7RWxlbWVudH0gcGFyZW50RWxlbWVu
dAotICAgICAqLwotICAgIHNob3c6IGZ1bmN0aW9uKHBhcmVudEVsZW1lbnQpCisgICAgd2FzU2hv
d246IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlw
ZS5zaG93LmNhbGwodGhpcywgcGFyZW50RWxlbWVudCk7Ci0KICAgICAgICAgdGhpcy5lbGVtZW50
LmNsYXNzTmFtZSA9ICJzdG9yYWdlLWVtcHR5LXZpZXciOwogICAgICAgICB0aGlzLmVsZW1lbnQu
dGV4dENvbnRlbnQgPSB0aGlzLl90ZXh0OwogICAgIH0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ZvbnRWaWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9Gb250Vmlldy5qcwppbmRleCA3NjBjNzVhMTgxMGI2NzdhNmJkNWRj
OTc1MDBmZTcwZjYzZjBhMTE2Li4zMWJjY2Y1N2ZiZWNjNDI2ODUwM2UxNzlkYTQ4OWZhYjI0N2Y2
YTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ZvbnRW
aWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRm9udFZpZXcu
anMKQEAgLTc3LDkgKzc3LDggQEAgV2ViSW5zcGVjdG9yLkZvbnRWaWV3LnByb3RvdHlwZSA9IHsK
ICAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuZm9udFByZXZpZXdFbGVtZW50
KTsKICAgICB9LAogCi0gICAgc2hvdzogZnVuY3Rpb24ocGFyZW50RWxlbWVudCkKKyAgICB3YXNT
aG93bjogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgV2ViSW5zcGVjdG9yLlJlc291cmNlVmll
dy5wcm90b3R5cGUuc2hvdy5jYWxsKHRoaXMsIHBhcmVudEVsZW1lbnQpOwogICAgICAgICB0aGlz
Ll9jcmVhdGVDb250ZW50SWZOZWVkZWQoKTsKIAogICAgICAgICB0aGlzLnVwZGF0ZUZvbnRQcmV2
aWV3U2l6ZSgpOwpAQCAtMTA5LDcgKzEwOCw3IEBAIFdlYkluc3BlY3Rvci5Gb250Vmlldy5wcm90
b3R5cGUgPSB7CiAKICAgICB1cGRhdGVGb250UHJldmlld1NpemU6IGZ1bmN0aW9uKCkKICAgICB7
Ci0gICAgICAgIGlmICghdGhpcy5mb250UHJldmlld0VsZW1lbnQgfHwgIXRoaXMudmlzaWJsZSkK
KyAgICAgICAgaWYgKCF0aGlzLmZvbnRQcmV2aWV3RWxlbWVudCB8fCAhdGhpcy5pc1Nob3dpbmco
KSkKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICB0aGlzLmZvbnRQcmV2aWV3RWxlbWVu
dC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgidmlzaWJpbGl0eSIpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9JRnJhbWVWaWV3LmpzIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9JRnJhbWVWaWV3LmpzCmluZGV4IGUyMTAxZjcxNGUwM2Mx
NTM5M2NiZGQ4MDNlNGIwMGQ0OWZjZGU1ZmYuLjZkZjZhOWViZDhmNmQwY2UyNDY0YmQ2N2I1NWYx
ZjFlYTI0ZWY0NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvSUZyYW1lVmlldy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L0lGcmFtZVZpZXcuanMKQEAgLTM4LDM2ICszOCwxMiBAQCBXZWJJbnNwZWN0b3IuSUZyYW1lVmll
dyA9IGZ1bmN0aW9uKHNyYywgY2xhc3NOYW1lKQogewogICAgIFdlYkluc3BlY3Rvci5WaWV3LmNh
bGwodGhpcyk7CiAgICAgdGhpcy5lbGVtZW50LmNsYXNzTmFtZSA9ICJmaWxsIjsKLSAgICB0aGlz
Ll9zcmMgPSBzcmM7Ci0gICAgdGhpcy5fY2xhc3NOYW1lID0gY2xhc3NOYW1lOwotfQotCi1XZWJJ
bnNwZWN0b3IuSUZyYW1lVmlldy5wcm90b3R5cGUgPSB7Ci0gICAgd2lsbERldGFjaDogZnVuY3Rp
b24oKQotICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX2lmcmFtZSkgewotICAgICAgICAgICAgaWYg
KCFXZWJJbnNwZWN0b3IuSUZyYW1lVmlldy5fcGFyZW50SWZyYW1lKSB7Ci0gICAgICAgICAgICAg
ICAgV2ViSW5zcGVjdG9yLklGcmFtZVZpZXcuX3BhcmVudElmcmFtZSA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImlmcmFtZSIpOwotICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5JRnJhbWVW
aWV3Ll9wYXJlbnRJZnJhbWUuc3R5bGUuZGlzcGxheSA9ICJub25lIjsKLSAgICAgICAgICAgICAg
ICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKFdlYkluc3BlY3Rvci5JRnJhbWVWaWV3Ll9wYXJl
bnRJZnJhbWUpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLklGcmFt
ZVZpZXcuX3BhcmVudElmcmFtZS5jb250ZW50RG9jdW1lbnQuYWRvcHROb2RlKHRoaXMuX2lmcmFt
ZSk7Ci0gICAgICAgICAgICBXZWJJbnNwZWN0b3IuSUZyYW1lVmlldy5fcGFyZW50SWZyYW1lLmNv
bnRlbnREb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMuX2lmcmFtZSk7Ci0gICAgICAgIH0K
LSAgICB9LAotCi0gICAgb25JbnNlcnRlZEludG9Eb2N1bWVudDogZnVuY3Rpb24oKQotICAgIHsK
LSAgICAgICAgaWYgKCF0aGlzLl9pZnJhbWUpIHsKLSAgICAgICAgICAgIHRoaXMuX2lmcmFtZSA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOwotICAgICAgICAgICAgdGhpcy5faWZy
YW1lLnNyYyA9IHRoaXMuX3NyYzsKLSAgICAgICAgICAgIGlmICh0aGlzLl9jbGFzc05hbWUpCi0g
ICAgICAgICAgICAgICAgdGhpcy5faWZyYW1lLmNsYXNzTmFtZSA9IHRoaXMuX2NsYXNzTmFtZTsK
LSAgICAgICAgfQogCi0gICAgICAgIGRvY3VtZW50LmFkb3B0Tm9kZSh0aGlzLl9pZnJhbWUpOwot
ICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5faWZyYW1lKTsKLSAgICB9Cisg
ICAgdGhpcy5faWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAg
dGhpcy5faWZyYW1lLnNyYyA9IHNyYzsKKyAgICBpZiAoY2xhc3NOYW1lKQorICAgICAgICB0aGlz
Ll9pZnJhbWUuY2xhc3NOYW1lID0gY2xhc3NOYW1lOworICAgIHRoaXMuZWxlbWVudC5hcHBlbmRD
aGlsZCh0aGlzLl9pZnJhbWUpOwogfQogCiBXZWJJbnNwZWN0b3IuSUZyYW1lVmlldy5wcm90b3R5
cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9JbWFnZVZpZXcuanMgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ltYWdlVmlldy5qcwppbmRleCA3MGZlMDQyOWIz
Yzg3NzU0NmIzN2VkYmI1ODZmMzliMGYxN2E2YmJhLi5mMGJmZjFjY2MyZWZiZDQ1ZDVhNWU1MTZk
MWFjZTdhMTQzYzMxMDgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0ltYWdlVmlldy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0ltYWdlVmlldy5qcwpAQCAtNDMsOSArNDMsOCBAQCBXZWJJbnNwZWN0b3IuSW1hZ2VWaWV3
LnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfSwKIAotICAgIHNob3c6
IGZ1bmN0aW9uKHBhcmVudEVsZW1lbnQpCisgICAgd2FzU2hvd246IGZ1bmN0aW9uKCkKICAgICB7
Ci0gICAgICAgIFdlYkluc3BlY3Rvci5SZXNvdXJjZVZpZXcucHJvdG90eXBlLnNob3cuY2FsbCh0
aGlzLCBwYXJlbnRFbGVtZW50KTsKICAgICAgICAgdGhpcy5fY3JlYXRlQ29udGVudElmTmVlZGVk
KCk7CiAgICAgfSwKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9OZXR3b3JrSXRlbVZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL05ldHdvcmtJdGVtVmlldy5qcwppbmRleCAzMTU3ZGE2ZDI5YmFlM2U1YjIxNjA3ZGZlZTVi
NGQwOGM5M2E3NmI3Li42ZjY2MTdmZjUxYjk1NmRmMDU4YmI1ZDk3MTlmZmFmMGM3MWYxNjBjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtJdGVt
Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtJ
dGVtVmlldy5qcwpAQCAtNjEsOSArNjEsOSBAQCBXZWJJbnNwZWN0b3IuTmV0d29ya0l0ZW1WaWV3
ID0gZnVuY3Rpb24ocmVzb3VyY2UpCiB9CiAKIFdlYkluc3BlY3Rvci5OZXR3b3JrSXRlbVZpZXcu
cHJvdG90eXBlID0gewotICAgIHNob3c6IGZ1bmN0aW9uKHBhcmVudEVsZW1lbnQpCisgICAgd2Fz
U2hvd246IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5UYWJiZWRQYW5l
LnByb3RvdHlwZS5zaG93LmNhbGwodGhpcywgcGFyZW50RWxlbWVudCk7CisgICAgICAgIFdlYklu
c3BlY3Rvci5UYWJiZWRQYW5lLnByb3RvdHlwZS53YXNTaG93bi5jYWxsKCk7CiAgICAgICAgIHRo
aXMuX3NlbGVjdFRhYigpOwogICAgIH0sCiAKQEAgLTExNiwxOSArMTE2LDExIEBAIFdlYkluc3Bl
Y3Rvci5SZXNvdXJjZUNvbnRlbnRWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5faW5u
ZXJWaWV3ID0gaW5uZXJWaWV3OwogICAgIH0sCiAKLSAgICBzaG93OiBmdW5jdGlvbihwYXJlbnRF
bGVtZW50KQorICAgIHdhc1Nob3duOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBXZWJJbnNw
ZWN0b3IuUmVzb3VyY2VWaWV3LnByb3RvdHlwZS5zaG93LmNhbGwodGhpcywgcGFyZW50RWxlbWVu
dCk7CiAgICAgICAgIHRoaXMuX2Vuc3VyZUlubmVyVmlld1Nob3duKCk7CiAgICAgfSwKIAotICAg
IGhpZGU6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIGlmICh0aGlzLl9pbm5lclZpZXcpCi0g
ICAgICAgICAgICB0aGlzLl9pbm5lclZpZXcuaGlkZSgpOwotICAgICAgICBXZWJJbnNwZWN0b3Iu
UmVzb3VyY2VWaWV3LnByb3RvdHlwZS5oaWRlLmNhbGwodGhpcyk7Ci0gICAgfSwKLQogICAgIF9l
bnN1cmVJbm5lclZpZXdTaG93bjogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgaWYgKHRoaXMu
X2lubmVyVmlld1Nob3dSZXF1ZXN0ZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvTmV0d29ya1BhbmVsLmpzCmluZGV4IGVkOGU3NjU1NDg0NWFhMGFlYzkwYWRj
ZThiNGU1ZjY4MzBiOTQ5MzIuLjgzYzgzZTZiMzFhNWQ1OTBmYWVjZGQ4MDc5MjMzOGIzM2JkYmM5
MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29y
a1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29y
a1BhbmVsLmpzCkBAIC01MDYsNyArNTA2LDcgQEAgV2ViSW5zcGVjdG9yLk5ldHdvcmtMb2dWaWV3
LnByb3RvdHlwZSA9IHsKIAogICAgICAgICB0aGlzLl9uZWVkc1JlZnJlc2ggPSB0cnVlOwogCi0g
ICAgICAgIGlmICh0aGlzLnZpc2libGUgJiYgISgiX3JlZnJlc2hUaW1lb3V0IiBpbiB0aGlzKSkK
KyAgICAgICAgaWYgKHRoaXMuaXNTaG93aW5nKCkgJiYgIXRoaXMuX3JlZnJlc2hUaW1lb3V0KQog
ICAgICAgICAgICAgdGhpcy5fcmVmcmVzaFRpbWVvdXQgPSBzZXRUaW1lb3V0KHRoaXMucmVmcmVz
aC5iaW5kKHRoaXMpLCB0aGlzLl9kZWZhdWx0UmVmcmVzaERlbGF5KTsKICAgICB9LAogCkBAIC01
MjQsNyArNTI0LDcgQEAgV2ViSW5zcGVjdG9yLk5ldHdvcmtMb2dWaWV3LnByb3RvdHlwZSA9IHsK
ICAgICAgICAgfQogCiAgICAgICAgIHZhciBwcm9jZWVkID0gdHJ1ZTsKLSAgICAgICAgaWYgKCF0
aGlzLnZpc2libGUpIHsKKyAgICAgICAgaWYgKCF0aGlzLmlzU2hvd2luZygpKSB7CiAgICAgICAg
ICAgICB0aGlzLl9zY2hlZHVsZVJlZnJlc2goKTsKICAgICAgICAgICAgIHByb2NlZWQgPSBmYWxz
ZTsKICAgICAgICAgfSBlbHNlCkBAIC02NDYsMjAgKzY0NiwxOCBAQCBXZWJJbnNwZWN0b3IuTmV0
d29ya0xvZ1ZpZXcucHJvdG90eXBlID0gewogCiAgICAgd2FzU2hvd246IGZ1bmN0aW9uKCkKICAg
ICB7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZS53YXNTaG93bi5jYWxsKHRo
aXMpOwogICAgICAgICB0aGlzLl9yZWZyZXNoSWZOZWVkZWQoKTsKICAgICB9LAogCiAgICAgd2ls
bEhpZGU6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5WaWV3LnByb3Rv
dHlwZS53aWxsSGlkZS5jYWxsKHRoaXMpOwogICAgICAgICB0aGlzLl9wb3BvdmVySGVscGVyLmhp
ZGVQb3BvdmVyKCk7CiAgICAgfSwKIAogICAgIHJlZnJlc2g6IGZ1bmN0aW9uKCkKICAgICB7CiAg
ICAgICAgIHRoaXMuX25lZWRzUmVmcmVzaCA9IGZhbHNlOwotICAgICAgICBpZiAoIl9yZWZyZXNo
VGltZW91dCIgaW4gdGhpcykgeworICAgICAgICBpZiAodGhpcy5fcmVmcmVzaFRpbWVvdXQpIHsK
ICAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLl9yZWZyZXNoVGltZW91dCk7CiAgICAgICAg
ICAgICBkZWxldGUgdGhpcy5fcmVmcmVzaFRpbWVvdXQ7CiAgICAgICAgIH0KQEAgLTEyOTcsOSAr
MTI5NSw5IEBAIFdlYkluc3BlY3Rvci5OZXR3b3JrUGFuZWwucHJvdG90eXBlID0gewogICAgICAg
ICBXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBlLmhhbmRsZVNob3J0Y3V0LmNhbGwodGhpcywg
ZXZlbnQpOwogICAgIH0sCiAKLSAgICBzaG93OiBmdW5jdGlvbigpCisgICAgd2FzU2hvd246IGZ1
bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5QYW5lbC5wcm90b3R5cGUuc2hv
dy5jYWxsKHRoaXMpOworICAgICAgICBXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBlLndhc1No
b3duLmNhbGwodGhpcyk7CiAgICAgICAgIHRoaXMuX25ldHdvcmtMb2dWaWV3LnNob3codGhpcy5z
aWRlYmFyRWxlbWVudCk7CiAgICAgfSwKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9QYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvUGFuZWwuanMKaW5kZXggOTk2ZTEyOGIwMGU1OTU2ODBhZWEzMDZmNjA2MTRmODVkNWUz
YjY2ZC4uMzM3Mjc1NjYwYzYxOWI2MTFiNjdmZWJkMDY3MTRhYmI0NDZlZjJlNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9QYW5lbC5qcworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1BhbmVsLmpzCkBAIC00MSw3ICs0MSw2IEBA
IFdlYkluc3BlY3Rvci5QYW5lbCA9IGZ1bmN0aW9uKG5hbWUpCiAgICAgdGhpcy5fc2hvcnRjdXRz
ID0ge307CiAKICAgICBXZWJJbnNwZWN0b3Iuc2V0dGluZ3NbdGhpcy5fc2lkZWJhcldpZHRoU2V0
dGluZ05hbWUoKV0gPSBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MuY3JlYXRlU2V0dGluZyh0aGlzLl9z
aWRlYmFyV2lkdGhTZXR0aW5nTmFtZSgpLCB1bmRlZmluZWQpOwotICAgIHRoaXMuX2hpZGVPbkRl
dGFjaCA9IGZhbHNlOwogfQogCiAvLyBTaG91bGQgYnkgaW4gc3luYyB3aXRoIHN0eWxlIGRlY2xh
cmF0aW9ucy4KQEAgLTYyLDE4ICs2MSwxNiBAQCBXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBl
ID0gewogICAgICAgICByZXR1cm4gdGhpcy5fcGFuZWxOYW1lOwogICAgIH0sCiAKLSAgICBzZXRI
aWRlT25EZXRhY2g6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2hpZGVPbkRldGFj
aCA9IHRydWU7Ci0gICAgfSwKLQogICAgIHNob3c6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAg
IGlmICghV2ViSW5zcGVjdG9yLlBhbmVsLl9tYWluUGFuZWxzRWxlbWVudCkKICAgICAgICAgICAg
IFdlYkluc3BlY3Rvci5QYW5lbC5fbWFpblBhbmVsc0VsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgibWFpbi1wYW5lbHMiKTsKICAgICAKICAgICAgICAgV2ViSW5zcGVjdG9yLlZpZXcu
cHJvdG90eXBlLnNob3cuY2FsbCh0aGlzLCBXZWJJbnNwZWN0b3IuUGFuZWwuX21haW5QYW5lbHNF
bGVtZW50KTsKKyAgICB9LAogCisgICAgd2FzU2hvd246IGZ1bmN0aW9uKCkKKyAgICB7CiAgICAg
ICAgIHZhciBzdGF0dXNCYXJJdGVtcyA9IHRoaXMuc3RhdHVzQmFySXRlbXM7CiAgICAgICAgIGlm
IChzdGF0dXNCYXJJdGVtcykgewogICAgICAgICAgICAgdGhpcy5fc3RhdHVzQmFySXRlbUNvbnRh
aW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwpAQCAtOTEsMTMgKzg4LDggQEAg
V2ViSW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgV2ViSW5zcGVjdG9yLmV4
dGVuc2lvblNlcnZlci5ub3RpZnlQYW5lbFNob3duKHRoaXMubmFtZSk7CiAgICAgfSwKIAotICAg
IGRldGFjaDogZnVuY3Rpb24oKQorICAgIHdpbGxIaWRlOiBmdW5jdGlvbigpCiAgICAgewotICAg
ICAgICBpZiAodGhpcy5faGlkZU9uRGV0YWNoKQotICAgICAgICAgICAgdGhpcy5oaWRlKCk7Ci0g
ICAgICAgIGVsc2UKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZS5kZXRh
Y2guY2FsbCh0aGlzKTsKLQogICAgICAgICBpZiAodGhpcy5fc3RhdHVzQmFySXRlbUNvbnRhaW5l
ciAmJiB0aGlzLl9zdGF0dXNCYXJJdGVtQ29udGFpbmVyLnBhcmVudE5vZGUpCiAgICAgICAgICAg
ICB0aGlzLl9zdGF0dXNCYXJJdGVtQ29udGFpbmVyLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhp
cy5fc3RhdHVzQmFySXRlbUNvbnRhaW5lcik7CiAgICAgICAgIGRlbGV0ZSB0aGlzLl9zdGF0dXNC
YXJJdGVtQ29udGFpbmVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9QYW5lbEVuYWJsZXJWaWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9QYW5lbEVuYWJsZXJWaWV3LmpzCmluZGV4IDQ1OWUwY2NjOWJhZTRkM2RlMjQ4NDYy
ZDkxZjc1NTgxMzU0ZmYxZjQuLjNlZjBjMGMwZDI1MGI3ODBjMjkyODE4ODUxMTI5MmEyZjAwMzkx
NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUGFuZWxF
bmFibGVyVmlldy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Bh
bmVsRW5hYmxlclZpZXcuanMKQEAgLTgzLDEzICs4Myw2IEBAIFdlYkluc3BlY3Rvci5QYW5lbEVu
YWJsZXJWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0
ZW5lcnMoImVuYWJsZSBjbGlja2VkIik7CiAgICAgfSwKIAotICAgIHNob3c6IGZ1bmN0aW9uKHBh
cmVudEVsZW1lbnQpCi0gICAgewotICAgICAgICBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUu
c2hvdy5jYWxsKHRoaXMsIHBhcmVudEVsZW1lbnQpOwotCi0gICAgICAgIHNldFRpbWVvdXQodGhp
cy5kb1Jlc2l6ZS5iaW5kKHRoaXMpLCAwKTsKLSAgICB9LAotCiAgICAgb25SZXNpemU6IGZ1bmN0
aW9uKCkKICAgICB7CiAgICAgICAgIHRoaXMuaW1hZ2VFbGVtZW50LnJlbW92ZVN0eWxlQ2xhc3Mo
ImhpZGRlbiIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9Qcm9maWxlVmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJv
ZmlsZVZpZXcuanMKaW5kZXggMDExYzAxYjZkZjlmZjU1NjU4YmU5MDhhY2IwMzhkNGJlYjE2OTA1
ZS4uNTkwNGFjNjMxZjFjNGM1MzcxZGZkNTE3NzhiN2Y1MzQ4NDRkMDNlZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlVmlldy5qcworKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVWaWV3LmpzCkBAIC0xNjQs
OSArMTY0LDggQEAgV2ViSW5zcGVjdG9yLkNQVVByb2ZpbGVWaWV3LnByb3RvdHlwZSA9IHsKICAg
ICAgICAgcmV0dXJuIHRoaXMuX2JvdHRvbVVwVHJlZTsKICAgICB9LAogCi0gICAgaGlkZTogZnVu
Y3Rpb24oKQorICAgIHdpbGxIaWRlOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBXZWJJbnNw
ZWN0b3IuVmlldy5wcm90b3R5cGUuaGlkZS5jYWxsKHRoaXMpOwogICAgICAgICB0aGlzLl9jdXJy
ZW50U2VhcmNoUmVzdWx0SW5kZXggPSAtMTsKICAgICB9LAogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWwuanMgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWwuanMKaW5kZXggZWExNDFjZDZl
MWZmNjIyMjA1YWE2ZjYwMzliYWZlNGU0YjYxNzZlMC4uZTRhYjkyOTcwMWVhMTRjNWI2MDI1Yjhl
NTBhMWVjM2VjN2ExMGVhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9Qcm9maWxlc1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qcwpAQCAtMTAzLDggKzEwMyw2IEBAIFdlYkluc3BlY3Rv
ci5Qcm9maWxlc1BhbmVsID0gZnVuY3Rpb24oKQogICAgIHRoaXMucGFuZWxFbmFibGVyVmlldyA9
IG5ldyBXZWJJbnNwZWN0b3IuUGFuZWxFbmFibGVyVmlldygicHJvZmlsZXMiLCBwYW5lbEVuYWJs
ZXJIZWFkaW5nLCBwYW5lbEVuYWJsZXJEaXNjbGFpbWVyLCBwYW5lbEVuYWJsZXJCdXR0b24pOwog
ICAgIHRoaXMucGFuZWxFbmFibGVyVmlldy5hZGRFdmVudExpc3RlbmVyKCJlbmFibGUgY2xpY2tl
ZCIsIHRoaXMuX2VuYWJsZVByb2ZpbGluZywgdGhpcyk7CiAKLSAgICB0aGlzLmVsZW1lbnQuYXBw
ZW5kQ2hpbGQodGhpcy5wYW5lbEVuYWJsZXJWaWV3LmVsZW1lbnQpOwotCiAgICAgdGhpcy5wcm9m
aWxlVmlld3MgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICAgICB0aGlzLnByb2Zp
bGVWaWV3cy5pZCA9ICJwcm9maWxlLXZpZXdzIjsKICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hp
bGQodGhpcy5wcm9maWxlVmlld3MpOwpAQCAtMTE5LDcgKzExNyw2IEBAIFdlYkluc3BlY3Rvci5Q
cm9maWxlc1BhbmVsID0gZnVuY3Rpb24oKQogICAgIHRoaXMucHJvZmlsZVZpZXdTdGF0dXNCYXJJ
dGVtc0NvbnRhaW5lci5jbGFzc05hbWUgPSAic3RhdHVzLWJhci1pdGVtcyI7CiAKICAgICB0aGlz
LndlbGNvbWVWaWV3ID0gbmV3IFdlYkluc3BlY3Rvci5XZWxjb21lVmlldygicHJvZmlsZXMiLCBX
ZWJJbnNwZWN0b3IuVUlTdHJpbmcoIldlbGNvbWUgdG8gdGhlIFByb2ZpbGVzIHBhbmVsIikpOwot
ICAgIHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLndlbGNvbWVWaWV3LmVsZW1lbnQpOwog
CiAgICAgdGhpcy5fcHJvZmlsZXMgPSBbXTsKICAgICB0aGlzLl9wcm9maWxlckVuYWJsZWQgPSBQ
cmVmZXJlbmNlcy5wcm9maWxlckFsd2F5c0VuYWJsZWQ7CkBAIC0xNzEsOSArMTY4LDkgQEAgV2Vi
SW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gaXRl
bXM7CiAgICAgfSwKIAotICAgIHNob3c6IGZ1bmN0aW9uKCkKKyAgICB3YXNTaG93bjogZnVuY3Rp
b24oKQogICAgIHsKLSAgICAgICAgV2ViSW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZS5zaG93LmNh
bGwodGhpcyk7CisgICAgICAgIFdlYkluc3BlY3Rvci5QYW5lbC5wcm90b3R5cGUud2FzU2hvd24u
Y2FsbCh0aGlzKTsKICAgICAgICAgdGhpcy5fcG9wdWxhdGVQcm9maWxlcygpOwogICAgIH0sCiAK
QEAgLTE4NSw3ICsxODIsNyBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUg
PSB7CiAgICAgICAgIHRoaXMuX3Byb2ZpbGVyRW5hYmxlZCA9IHRydWU7CiAKICAgICAgICAgdGhp
cy5fcmVzZXQoKTsKLSAgICAgICAgaWYgKHRoaXMudmlzaWJsZSkKKyAgICAgICAgaWYgKHRoaXMu
aXNTaG93aW5nKCkpCiAgICAgICAgICAgICB0aGlzLl9wb3B1bGF0ZVByb2ZpbGVzKCk7CiAgICAg
fSwKIApAQCAtMzQ2LDcgKzM0Myw3IEBAIFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3Rv
dHlwZSA9IHsKIAogICAgICAgICBzaWRlYmFyUGFyZW50LmFwcGVuZENoaWxkKHByb2ZpbGVUcmVl
RWxlbWVudCk7CiAgICAgICAgIGlmICghcHJvZmlsZS5pc1RlbXBvcmFyeSkgewotICAgICAgICAg
ICAgdGhpcy53ZWxjb21lVmlldy5oaWRlKCk7CisgICAgICAgICAgICB0aGlzLndlbGNvbWVWaWV3
LmRldGFjaCgpOwogICAgICAgICAgICAgaWYgKCF0aGlzLnZpc2libGVWaWV3KQogICAgICAgICAg
ICAgICAgIHRoaXMuc2hvd1Byb2ZpbGUocHJvZmlsZSk7CiAgICAgICAgICAgICB0aGlzLmRpc3Bh
dGNoRXZlbnRUb0xpc3RlbmVycygicHJvZmlsZSBhZGRlZCIpOwpAQCAtNzUzLDcgKzc1MCw3IEBA
IFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAg
ICB0aGlzLl9wcm9maWxlVHlwZUJ1dHRvbnNCeUlkTWFwW3R5cGVJZF0ucmVtb3ZlU3R5bGVDbGFz
cygiaGlkZGVuIik7CiAgICAgICAgICAgICB0aGlzLnByb2ZpbGVWaWV3U3RhdHVzQmFySXRlbXND
b250YWluZXIucmVtb3ZlU3R5bGVDbGFzcygiaGlkZGVuIik7CiAgICAgICAgICAgICB0aGlzLmNs
ZWFyUmVzdWx0c0J1dHRvbi5lbGVtZW50LnJlbW92ZVN0eWxlQ2xhc3MoImhpZGRlbiIpOwotICAg
ICAgICAgICAgdGhpcy5wYW5lbEVuYWJsZXJWaWV3LnZpc2libGUgPSBmYWxzZTsKKyAgICAgICAg
ICAgIHRoaXMucGFuZWxFbmFibGVyVmlldy5kZXRhY2goKTsKICAgICAgICAgfSBlbHNlIHsKICAg
ICAgICAgICAgIHRoaXMuZW5hYmxlVG9nZ2xlQnV0dG9uLnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJ
U3RyaW5nKCJQcm9maWxpbmcgZGlzYWJsZWQuIENsaWNrIHRvIGVuYWJsZS4iKTsKICAgICAgICAg
ICAgIHRoaXMuZW5hYmxlVG9nZ2xlQnV0dG9uLnRvZ2dsZWQgPSBmYWxzZTsKQEAgLTc2MSw3ICs3
NTgsNyBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAg
ICAgICAgICAgdGhpcy5fcHJvZmlsZVR5cGVCdXR0b25zQnlJZE1hcFt0eXBlSWRdLmFkZFN0eWxl
Q2xhc3MoImhpZGRlbiIpOwogICAgICAgICAgICAgdGhpcy5wcm9maWxlVmlld1N0YXR1c0Jhckl0
ZW1zQ29udGFpbmVyLmFkZFN0eWxlQ2xhc3MoImhpZGRlbiIpOwogICAgICAgICAgICAgdGhpcy5j
bGVhclJlc3VsdHNCdXR0b24uZWxlbWVudC5hZGRTdHlsZUNsYXNzKCJoaWRkZW4iKTsKLSAgICAg
ICAgICAgIHRoaXMucGFuZWxFbmFibGVyVmlldy52aXNpYmxlID0gdHJ1ZTsKKyAgICAgICAgICAg
IHRoaXMucGFuZWxFbmFibGVyVmlldy5zaG93KHRoaXMuZWxlbWVudCk7CiAgICAgICAgIH0KICAg
ICB9LAogCkBAIC04NzAsNyArODY3LDcgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJv
dG90eXBlID0gewogICAgICAgICBwcm9maWxlVHlwZS50cmVlRWxlbWVudCA9IG9sZFByb2ZpbGVU
eXBlLnRyZWVFbGVtZW50OwogICAgICAgICB0aGlzLl9wcm9maWxlVHlwZXNCeUlkTWFwW3Byb2Zp
bGVUeXBlLmlkXSA9IHByb2ZpbGVUeXBlOwogICAgICAgICBQcmVmZXJlbmNlcy5kZXRhaWxlZEhl
YXBQcm9maWxlcyA9IHRydWU7Ci0gICAgICAgIHRoaXMuaGlkZSgpOworICAgICAgICB0aGlzLmRl
dGFjaCgpOwogICAgICAgICB0aGlzLnNob3coKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlQ29va2llc1ZpZXcuanMgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlQ29va2llc1ZpZXcuanMK
aW5kZXggNWVmNTU5OGNlOWRhYzNhMmIxZmVjMWM2NjYxMDJjYzE1ZDA1MTVmNy4uNjUyNjkyZjk3
NjM5MmVhZTRkZDVjZmM0NTI5M2FlNTA3ZTdhMjUxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZUNvb2tpZXNWaWV3LmpzCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VDb29raWVzVmlldy5qcwpAQCAt
NDQsMjEgKzQ0LDE4IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZUNvb2tpZXNWaWV3ID0gZnVuY3Rp
b24ocmVzb3VyY2UpCiB9CiAKIFdlYkluc3BlY3Rvci5SZXNvdXJjZUNvb2tpZXNWaWV3LnByb3Rv
dHlwZSA9IHsKLSAgICBzaG93OiBmdW5jdGlvbihwYXJlbnRFbGVtZW50KQorICAgIHdhc1Nob3du
OiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICBpZiAoIXRoaXMuX2dvdENvb2tpZXMpIHsKICAg
ICAgICAgICAgIGlmICghdGhpcy5fZW1wdHlWaWV3KSB7CiAgICAgICAgICAgICAgICAgdGhpcy5f
ZW1wdHlWaWV3ID0gbmV3IFdlYkluc3BlY3Rvci5FbXB0eVZpZXcoV2ViSW5zcGVjdG9yLlVJU3Ry
aW5nKCJUaGlzIHJlcXVlc3QgaGFzIG5vIGNvb2tpZXMuIikpOwogICAgICAgICAgICAgICAgIHRo
aXMuX2VtcHR5Vmlldy5zaG93KHRoaXMuZWxlbWVudCk7CiAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUuc2hvdy5jYWxsKHRoaXMsIHBhcmVudEVs
ZW1lbnQpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKCF0
aGlzLl9jb29raWVzVGFibGUpCiAgICAgICAgICAgICB0aGlzLl9idWlsZENvb2tpZXNUYWJsZSgp
OwotICAgICAgICBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUuc2hvdy5jYWxsKHRoaXMsIHBh
cmVudEVsZW1lbnQpOwotICAgICAgICB0aGlzLl9jb29raWVzVGFibGUudXBkYXRlV2lkdGhzKCk7
CiAgICAgfSwKIAogICAgIG9uUmVzaXplOiBmdW5jdGlvbigpCkBAIC04NSw3ICs4Miw3IEBAIFdl
Ykluc3BlY3Rvci5SZXNvdXJjZUNvb2tpZXNWaWV3LnByb3RvdHlwZSA9IHsKICAgICBfcmVmcmVz
aENvb2tpZXM6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIGRlbGV0ZSB0aGlzLl9jb29raWVz
VGFibGU7Ci0gICAgICAgIGlmICghdGhpcy5fZ290Q29va2llcyB8fCAhdGhpcy52aXNpYmxlKQor
ICAgICAgICBpZiAoIXRoaXMuX2dvdENvb2tpZXMgfHwgIXRoaXMuaXNTaG93aW5nKCkpCiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIHRoaXMuX2J1aWxkQ29va2llc1RhYmxlKCk7CiAgICAg
ICAgIHRoaXMuX2Nvb2tpZXNUYWJsZS51cGRhdGVXaWR0aHMoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VIVE1MVmlldy5qcyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VIVE1MVmlldy5qcwppbmRleCA5
MzNmZjg0NzMzYTk4ZjA2NTI4ZTNlNzA0MzUxNmE5YTJiY2IzZTFiLi45YzRiNTVlZTM2ZTI1Yjk1
NWE4MzA1NWJmZGU2ZGIwOWJiNmVjZDAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlSFRNTFZpZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZUhUTUxWaWV3LmpzCkBAIC00NCwxNSArNDQsMTMg
QEAgV2ViSW5zcGVjdG9yLlJlc291cmNlSFRNTFZpZXcucHJvdG90eXBlID0gewogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9LAogCi0gICAgc2hvdzogZnVuY3Rpb24ocGFyZW50RWxlbWVudCkK
KyAgICB3YXNTaG93bjogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgV2ViSW5zcGVjdG9yLlJl
c291cmNlVmlldy5wcm90b3R5cGUuc2hvdy5jYWxsKHRoaXMsIHBhcmVudEVsZW1lbnQpOwogICAg
ICAgICB0aGlzLl9jcmVhdGVJRnJhbWUoKTsKICAgICB9LAogCi0gICAgaGlkZTogZnVuY3Rpb24o
cGFyZW50RWxlbWVudCkKKyAgICB3aWxsSGlkZTogZnVuY3Rpb24ocGFyZW50RWxlbWVudCkKICAg
ICB7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5SZXNvdXJjZVZpZXcucHJvdG90eXBlLmhpZGUuY2Fs
bCh0aGlzKTsKICAgICAgICAgdGhpcy5lbGVtZW50LnJlbW92ZUNoaWxkcmVuKCk7CiAgICAgfSwK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJj
ZUpTT05WaWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJj
ZUpTT05WaWV3LmpzCmluZGV4IGRkMzZkYjlkZTM5NWIyYWQyNGIxOWQyYjYwMDc0MjRhN2Q1Mzc5
MmUuLjRmMjBmMmY4ZGJhMjJmODI5MTNlMzkwYjU2NWE5MjU0MTUwYzZjMjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VKU09OVmlldy5qcwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlSlNPTlZpZXcu
anMKQEAgLTgyLDkgKzgyLDggQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlSlNPTlZpZXcucHJvdG90
eXBlID0gewogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9LAogCi0gICAgc2hvdzogZnVuY3Rp
b24ocGFyZW50RWxlbWVudCkKKyAgICB3YXNTaG93bjogZnVuY3Rpb24oKQogICAgIHsKLSAgICAg
ICAgV2ViSW5zcGVjdG9yLlJlc291cmNlVmlldy5wcm90b3R5cGUuc2hvdy5jYWxsKHRoaXMsIHBh
cmVudEVsZW1lbnQpOwogICAgICAgICB0aGlzLl9pbml0aWFsaXplKCk7CiAgICAgfSwKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVRpbWlu
Z1ZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlVGlt
aW5nVmlldy5qcwppbmRleCA5Yjk1YzY5YzBhYTEzMjA3YjNmOTQ0Y2RmZGFmODYzNzgwNmQ5ZjNh
Li5mMWM4NmQxODM1NTBkNWJhNjhkZWVkYmRlMDg4YzcxMzg3ZjFlNzRjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlVGltaW5nVmlldy5qcwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlVGltaW5nVmll
dy5qcwpAQCAtNDMsNyArNDMsNyBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VUaW1pbmdWaWV3ID0g
ZnVuY3Rpb24ocmVzb3VyY2UpCiB9CiAKIFdlYkluc3BlY3Rvci5SZXNvdXJjZVRpbWluZ1ZpZXcu
cHJvdG90eXBlID0gewotICAgIHNob3c6IGZ1bmN0aW9uKHBhcmVudEVsZW1lbnQpCisgICAgd2Fz
U2hvd246IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIGlmICghdGhpcy5fcmVzb3VyY2UudGlt
aW5nKSB7CiAgICAgICAgICAgICBpZiAoIXRoaXMuX2VtcHR5VmlldykgewpAQCAtNTEsNyArNTEs
NiBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VUaW1pbmdWaWV3LnByb3RvdHlwZSA9IHsKICAgICAg
ICAgICAgICAgICB0aGlzLl9lbXB0eVZpZXcuc2hvdyh0aGlzLmVsZW1lbnQpOwogICAgICAgICAg
ICAgICAgIHRoaXMuaW5uZXJWaWV3ID0gdGhpcy5fZW1wdHlWaWV3OwogICAgICAgICAgICAgfQot
ICAgICAgICAgICAgV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLnNob3cuY2FsbCh0aGlzLCBw
YXJlbnRFbGVtZW50KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCkBAIC02MSw3
ICs2MCw2IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZVRpbWluZ1ZpZXcucHJvdG90eXBlID0gewog
ICAgICAgICB9CiAKICAgICAgICAgdGhpcy5fcmVmcmVzaCgpOwotICAgICAgICBXZWJJbnNwZWN0
b3IuVmlldy5wcm90b3R5cGUuc2hvdy5jYWxsKHRoaXMsIHBhcmVudEVsZW1lbnQpOwogICAgIH0s
CiAKICAgICBfcmVmcmVzaDogZnVuY3Rpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VzUGFuZWwuanMKaW5kZXggMWNjNjA0MzY5ZmQyOGJk
ZWE4YTY4MWI1ZmExNDYwN2MyMDU5MmM5Mi4uODE3NjNhODk0ZTIzNzY4NTM5ODhlYzZmNTVjZjYy
ZGQwMzA4MTIxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9SZXNvdXJjZXNQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1Jlc291cmNlc1BhbmVsLmpzCkBAIC0xMDQsMTAgKzEwNCw5IEBAIFdlYkluc3BlY3Rvci5S
ZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiBbdGhpcy5zaWRlYmFy
RWxlbWVudF07CiAgICAgfSwKIAotICAgIHNob3c6IGZ1bmN0aW9uKCkKKyAgICB3YXNTaG93bjog
ZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgV2ViSW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZS5z
aG93LmNhbGwodGhpcyk7Ci0KKyAgICAgICAgV2ViSW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZS53
YXNTaG93bi5jYWxsKHRoaXMpOwogICAgICAgICB0aGlzLl9wb3B1bGF0ZVJlc291cmNlVHJlZSgp
OwogICAgIH0sCiAKQEAgLTEzMzUsNyArMTMzNCw3IEBAIFdlYkluc3BlY3Rvci5GcmFtZVJlc291
cmNlVHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogICAgICAgICB2YXIgb2xkVmlldyA9IHRoaXMu
X3NvdXJjZVZpZXc7CiAgICAgICAgIHZhciBuZXdWaWV3ID0gdGhpcy5fY3JlYXRlU291cmNlVmll
dygpOwogCi0gICAgICAgIHZhciBvbGRWaWV3UGFyZW50Tm9kZSA9IG9sZFZpZXcudmlzaWJsZSA/
IG9sZFZpZXcuZWxlbWVudC5wYXJlbnROb2RlIDogbnVsbDsKKyAgICAgICAgdmFyIG9sZFZpZXdQ
YXJlbnROb2RlID0gb2xkVmlldy5pc1Nob3dpbmcoKSA/IG9sZFZpZXcuZWxlbWVudC5wYXJlbnRO
b2RlIDogbnVsbDsKICAgICAgICAgbmV3Vmlldy5pbmhlcml0U2Nyb2xsUG9zaXRpb25zKG9sZFZp
ZXcpOwogCiAgICAgICAgIHRoaXMuX3NvdXJjZVZpZXcuZGV0YWNoKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCmluZGV4IDVjNDQ0
ZTdhMWEyY2RmZTgwNTI0NTI0ZGRmMGY1ODEzMDYzOWZlYjQuLjA4YmMzOTFlZTQ5ODEyODIzNTNh
ODMwNWY4MzQ3NTIzZDFlNjc2M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCkBAIC0xNDIsNyArMTQyLDYgQEAgV2ViSW5zcGVj
dG9yLlNjcmlwdHNQYW5lbCA9IGZ1bmN0aW9uKHByZXNlbnRhdGlvbk1vZGVsKQogICAgIHRoaXMu
cGFuZWxFbmFibGVyVmlldyA9IG5ldyBXZWJJbnNwZWN0b3IuUGFuZWxFbmFibGVyVmlldygic2Ny
aXB0cyIsIHBhbmVsRW5hYmxlckhlYWRpbmcsIHBhbmVsRW5hYmxlckRpc2NsYWltZXIsIHBhbmVs
RW5hYmxlckJ1dHRvbik7CiAgICAgdGhpcy5wYW5lbEVuYWJsZXJWaWV3LmFkZEV2ZW50TGlzdGVu
ZXIoImVuYWJsZSBjbGlja2VkIiwgdGhpcy5fZW5hYmxlRGVidWdnaW5nLCB0aGlzKTsKIAotICAg
IHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLnBhbmVsRW5hYmxlclZpZXcuZWxlbWVudCk7
CiAgICAgdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMudmlld3NDb250YWluZXJFbGVtZW50
KTsKICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5zaWRlYmFyRWxlbWVudCk7CiAg
ICAgdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuc2lkZWJhclJlc2l6ZUVsZW1lbnQpOwpA
QCAtMjE4LDkgKzIxNyw5IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0g
ewogICAgICAgICByZXR1cm4gdGhpcy5fcGF1c2VkOwogICAgIH0sCiAKLSAgICBzaG93OiBmdW5j
dGlvbigpCisgICAgd2FzU2hvd246IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIFdlYkluc3Bl
Y3Rvci5QYW5lbC5wcm90b3R5cGUuc2hvdy5jYWxsKHRoaXMpOworICAgICAgICBXZWJJbnNwZWN0
b3IuUGFuZWwucHJvdG90eXBlLndhc1Nob3duLmNhbGwodGhpcyk7CiAgICAgICAgIHRoaXMuc2lk
ZWJhclJlc2l6ZUVsZW1lbnQuc3R5bGUucmlnaHQgPSAodGhpcy5zaWRlYmFyRWxlbWVudC5vZmZz
ZXRXaWR0aCAtIDMpICsgInB4IjsKICAgICAgICAgaWYgKFByZWZlcmVuY2VzLm5hdGl2ZUluc3Ry
dW1lbnRhdGlvbkVuYWJsZWQpCiAgICAgICAgICAgICB0aGlzLnNpZGViYXJFbGVtZW50Lmluc2Vy
dEJlZm9yZSh0aGlzLnNpZGViYXJQYW5lcy5kb21CcmVha3BvaW50cy5lbGVtZW50LCB0aGlzLnNp
ZGViYXJQYW5lcy54aHJCcmVha3BvaW50cy5lbGVtZW50KTsKQEAgLTg1NSwxMiArODU0LDEyIEBA
IFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAgdGhp
cy5lbmFibGVUb2dnbGVCdXR0b24udGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkRlYnVn
Z2luZyBlbmFibGVkLiBDbGljayB0byBkaXNhYmxlLiIpOwogICAgICAgICAgICAgdGhpcy5lbmFi
bGVUb2dnbGVCdXR0b24udG9nZ2xlZCA9IHRydWU7CiAgICAgICAgICAgICB0aGlzLl9wYXVzZU9u
RXhjZXB0aW9uQnV0dG9uLnZpc2libGUgPSB0cnVlOwotICAgICAgICAgICAgdGhpcy5wYW5lbEVu
YWJsZXJWaWV3LnZpc2libGUgPSBmYWxzZTsKKyAgICAgICAgICAgIHRoaXMucGFuZWxFbmFibGVy
Vmlldy5kZXRhY2goKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIHRoaXMuZW5hYmxl
VG9nZ2xlQnV0dG9uLnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJEZWJ1Z2dpbmcgZGlz
YWJsZWQuIENsaWNrIHRvIGVuYWJsZS4iKTsKICAgICAgICAgICAgIHRoaXMuZW5hYmxlVG9nZ2xl
QnV0dG9uLnRvZ2dsZWQgPSBmYWxzZTsKICAgICAgICAgICAgIHRoaXMuX3BhdXNlT25FeGNlcHRp
b25CdXR0b24udmlzaWJsZSA9IGZhbHNlOwotICAgICAgICAgICAgdGhpcy5wYW5lbEVuYWJsZXJW
aWV3LnZpc2libGUgPSB0cnVlOworICAgICAgICAgICAgdGhpcy5wYW5lbEVuYWJsZXJWaWV3LnNo
b3codGhpcy5lbGVtZW50KTsKICAgICAgICAgfQogCiAgICAgICAgIGlmICh0aGlzLl9wYXVzZWQp
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNl
RnJhbWUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZyYW1l
LmpzCmluZGV4IDg3NzkwOGE1OTc1YWU2YThmNGYwYTUxZTAyNDdhNGJhNGIxNGVkMGIuLjY1ZmYy
ZTZjNGFkNmQyOWQ4OTlhNzEzNThmYjMwZTMwZGExYjY2MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRnJhbWUuanMKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGcmFtZS5qcwpAQCAtNDQsNyArNDQsNiBA
QCBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUgPSBmdW5jdGlvbihkZWxlZ2F0ZSwgdXJsKQogCiAg
ICAgdmFyIHRleHRWaWV3ZXJEZWxlZ2F0ZSA9IG5ldyBXZWJJbnNwZWN0b3IuVGV4dFZpZXdlckRl
bGVnYXRlRm9yU291cmNlRnJhbWUodGhpcyk7CiAgICAgdGhpcy5fdGV4dFZpZXdlciA9IG5ldyBX
ZWJJbnNwZWN0b3IuVGV4dFZpZXdlcih0aGlzLl90ZXh0TW9kZWwsIFdlYkluc3BlY3Rvci5wbGF0
Zm9ybSwgdGhpcy5fdXJsLCB0ZXh0Vmlld2VyRGVsZWdhdGUpOwotICAgIHRoaXMuZWxlbWVudC5h
cHBlbmRDaGlsZCh0aGlzLl90ZXh0Vmlld2VyLmVsZW1lbnQpOwogCiAgICAgdGhpcy5wb3BvdmVy
SGVscGVyID0gbmV3IFdlYkluc3BlY3Rvci5PYmplY3RQb3BvdmVySGVscGVyKHRoaXMuX3RleHRW
aWV3ZXIuZWxlbWVudCwKICAgICAgICAgICAgIHRoaXMuX2dldFBvcG92ZXJBbmNob3IuYmluZCh0
aGlzKSwgdGhpcy5vblNob3dQb3BvdmVyLmJpbmQodGhpcyksIHRoaXMub25IaWRlUG9wb3Zlci5i
aW5kKHRoaXMpLCB0cnVlKTsKQEAgLTg4LDkgKzg3LDggQEAgV2ViSW5zcGVjdG9yLlNvdXJjZUZy
YW1lLmNyZWF0ZVNlYXJjaFJlZ2V4ID0gZnVuY3Rpb24ocXVlcnkpCiAKIAogV2ViSW5zcGVjdG9y
LlNvdXJjZUZyYW1lLnByb3RvdHlwZSA9IHsKLSAgICBzaG93OiBmdW5jdGlvbihwYXJlbnRFbGVt
ZW50KQorICAgIHdhc1Nob3duOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBXZWJJbnNwZWN0
b3IuVmlldy5wcm90b3R5cGUuc2hvdy5jYWxsKHRoaXMsIHBhcmVudEVsZW1lbnQpOwogICAgICAg
ICB0aGlzLl9lbnN1cmVDb250ZW50TG9hZGVkKCk7CiAgICAgICAgIHRoaXMuX3RleHRWaWV3ZXIu
c2hvdyh0aGlzLmVsZW1lbnQpOwogICAgIH0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1RhYmJlZFBhbmUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1RhYmJlZFBhbmUuanMKaW5kZXggNTc5MDMzODhhNDZjNDVkMzViZWViOTc4
YzRhNzlkYWMwY2M0ZDEwMy4uYmUyYzhjMDVjZDQxYzRmM2M3YzkzNjQwZWEwMTE4ZThlNjFlZjFk
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UYWJiZWRQ
YW5lLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGFiYmVkUGFu
ZS5qcwpAQCAtNDksNyArNDksNiBAQCBXZWJJbnNwZWN0b3IuVGFiYmVkUGFuZS5wcm90b3R5cGUg
PSB7CiAgICAgICAgIHRhYkVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLnNl
bGVjdFRhYi5iaW5kKHRoaXMsIGlkLCB0cnVlKSwgZmFsc2UpOwogCiAgICAgICAgIHRoaXMuX3Rh
YnNFbGVtZW50LmFwcGVuZENoaWxkKHRhYkVsZW1lbnQpOwotICAgICAgICB0aGlzLl9jb250ZW50
RWxlbWVudC5hcHBlbmRDaGlsZCh2aWV3LmVsZW1lbnQpOwogCiAgICAgICAgIHRoaXMuX3RhYnNb
aWRdID0geyB0YWJFbGVtZW50OiB0YWJFbGVtZW50LCB2aWV3OiB2aWV3IH07CiAgICAgfSwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5l
bC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5q
cwppbmRleCBhOGExMmMzMzdiNjUxMzEwODNiYTkxMTZkMjc5NDFmMTQzZDgwOWUwLi5lOTJhZmNl
ODg0YWM3YTkxMDQ2MmI1OTk5MDExOWJlMjE1Yzc4MmEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzCkBAIC01NTQsMTggKzU1
NCwxOCBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAg
IHJldHVybiBbdGhpcy5fY29udGFpbmVyRWxlbWVudF07CiAgICAgfSwKIAotICAgIHNob3c6IGZ1
bmN0aW9uKCkKKyAgICB3YXNTaG93bjogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgV2ViSW5z
cGVjdG9yLlBhbmVsLnByb3RvdHlwZS5zaG93LmNhbGwodGhpcyk7CisgICAgICAgIFdlYkluc3Bl
Y3Rvci5QYW5lbC5wcm90b3R5cGUud2FzU2hvd24uY2FsbCh0aGlzKTsKICAgICAgICAgdGhpcy5f
cmVmcmVzaCgpOwogICAgICAgICBXZWJJbnNwZWN0b3IuZHJhd2VyLmN1cnJlbnRQYW5lbENvdW50
ZXJzID0gdGhpcy5yZWNvcmRzQ291bnRlcjsKICAgICB9LAogCi0gICAgaGlkZTogZnVuY3Rpb24o
KQorICAgIHdpbGxIaWRlOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBXZWJJbnNwZWN0b3Iu
UGFuZWwucHJvdG90eXBlLmhpZGUuY2FsbCh0aGlzKTsKICAgICAgICAgdGhpcy5fY2xvc2VSZWNv
cmREZXRhaWxzKCk7CiAgICAgICAgIFdlYkluc3BlY3Rvci5kcmF3ZXIuY3VycmVudFBhbmVsQ291
bnRlcnMgPSBudWxsOworICAgICAgICBXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBlLndpbGxI
aWRlLmNhbGwodGhpcyk7CiAgICAgfSwKIAogICAgIF9vblNjcm9sbDogZnVuY3Rpb24oZXZlbnQp
CkBAIC01ODgsNyArNTg4LDcgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBl
ID0gewogICAgICAgICB0aGlzLl9jbG9zZVJlY29yZERldGFpbHMoKTsKICAgICAgICAgdGhpcy5f
Ym91bmRhcmllc0FyZVZhbGlkICY9IHByZXNlcnZlQm91bmRhcmllczsKIAotICAgICAgICBpZiAo
IXRoaXMudmlzaWJsZSkKKyAgICAgICAgaWYgKCF0aGlzLmlzU2hvd2luZygpKQogICAgICAgICAg
ICAgcmV0dXJuOwogCiAgICAgICAgIGlmIChwcmVzZXJ2ZUJvdW5kYXJpZXMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1ZpZXcuanMgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1ZpZXcuanMKaW5kZXggNjFiOTJmMjYwODg3NWUxOWM4
ZTQxNzhkNDcwMGY4NDMzZDM2NTQ2ZS4uZTA3NDkxZjdjOGJiZTkzNTIwZGVhZDk1MTVmN2ZmN2E0
MmEwNmE3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9W
aWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVmlldy5qcwpA
QCAtMzEsODYgKzMxLDE1NCBAQAogV2ViSW5zcGVjdG9yLlZpZXcgPSBmdW5jdGlvbigpCiB7CiAg
ICAgdGhpcy5lbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0gICAgdGhp
cy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIkRPTU5vZGVJbnNlcnRlZEludG9Eb2N1bWVudCIs
IHRoaXMuX2hhbmRsZUluc2VydGVkSW50b0RvY3VtZW50LmJpbmQodGhpcyksIGZhbHNlKTsKLSAg
ICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NTm9kZVJlbW92ZWRGcm9tRG9jdW1l
bnQiLCB0aGlzLl9oYW5kbGVSZW1vdmVkRnJvbURvY3VtZW50LmJpbmQodGhpcyksIGZhbHNlKTsK
ICAgICB0aGlzLmVsZW1lbnQuX192aWV3ID0gdGhpczsKLSAgICB0aGlzLl92aXNpYmxlID0gZmFs
c2U7CisgICAgdGhpcy5fdmlzaWJsZSA9IHRydWU7CisgICAgdGhpcy5faXNTaG93aW5nID0gZmFs
c2U7CiAgICAgdGhpcy5fY2hpbGRyZW4gPSBbXTsKLSAgICB0aGlzLl9pbkRldGFjaCA9IGZhbHNl
OworICAgIHRoaXMuX2hpZGVPbkRldGFjaCA9IGZhbHNlOwogfQogCitXZWJJbnNwZWN0b3IuVmll
dy5fbGVnYWxBcHBlbmRDaGlsZE9wZXJhdGlvbiA9IGZhbHNlOworV2ViSW5zcGVjdG9yLlZpZXcu
X2xlZ2FsUmVtb3ZlQ2hpbGRPcGVyYXRpb24gPSBmYWxzZTsKKwogV2ViSW5zcGVjdG9yLlZpZXcu
cHJvdG90eXBlID0gewotICAgIGdldCB2aXNpYmxlKCkKKyAgICBpc1Nob3dpbmc6IGZ1bmN0aW9u
KCkKICAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl92aXNpYmxlOworICAgICAgICByZXR1cm4g
dGhpcy5faXNTaG93aW5nOwogICAgIH0sCiAKLSAgICBzZXQgdmlzaWJsZSh4KQorICAgIHNldEhp
ZGVPbkRldGFjaDogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX3Zpc2libGUg
PT09IHgpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgaWYgKHgpCi0gICAgICAgICAg
ICB0aGlzLnNob3codGhpcy5lbGVtZW50LnBhcmVudEVsZW1lbnQpOwotICAgICAgICBlbHNlCi0g
ICAgICAgICAgICB0aGlzLmhpZGUoKTsKKyAgICAgICAgdGhpcy5faGlkZU9uRGV0YWNoID0gdHJ1
ZTsKICAgICB9LAogCi0gICAgd2FzU2hvd246IGZ1bmN0aW9uKCkKKyAgICBfZGlzcGF0Y2hXYXNT
aG93bjogZnVuY3Rpb24oKQogICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLl9wYXJlbnRWaWV3Ll9p
c1Nob3dpbmcpIHsKKyAgICAgICAgICAgIC8vIERvIG5vdCBkaXNwYXRjaCBpbiBjYXNlIGJlaW5n
IGFkZGVkIGludG8gaGlkZGVuIGhpZXJhcmNoeQorICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisKKyAgICAgICAgaWYgKCF0aGlzLl92aXNpYmxlKSB7CisgICAgICAgICAgICAvLyBTdG9w
IGRpc3BhdGNoaW5nIG9uIGhpZGRlbiBlbGVtZW50cworICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICB9CisKKyAgICAgICAgdGhpcy5faXNTaG93aW5nID0gdHJ1ZTsKICAgICAgICAgdGhpcy5y
ZXN0b3JlU2Nyb2xsUG9zaXRpb25zKCk7CisKKyAgICAgICAgdGhpcy53YXNTaG93bigpOwogICAg
ICAgICB0aGlzLm9uUmVzaXplKCk7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5f
Y2hpbGRyZW4ubGVuZ3RoOyArK2kpCisgICAgICAgICAgICB0aGlzLl9jaGlsZHJlbltpXS5fZGlz
cGF0Y2hXYXNTaG93bigpOwogICAgIH0sCiAKLSAgICB3aWxsSGlkZTogZnVuY3Rpb24oKQorICAg
IF9kaXNwYXRjaFdpbGxIaWRlOiBmdW5jdGlvbigpCiAgICAgeworICAgICAgICBpZiAoIXRoaXMu
X3BhcmVudFZpZXcgfHwgIXRoaXMuX3BhcmVudFZpZXcuX2lzU2hvd2luZykgeworICAgICAgICAg
ICAgLy8gRG8gbm90IGRpc3BhdGNoIGluIGNhc2UgYmVpbmcgcmVtb3ZlZCBmcm9tIGhpZGRlbiBo
aWVyYXJjaHkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmICgh
dGhpcy5fdmlzaWJsZSkgeworICAgICAgICAgICAgLy8gU3RvcCBkaXNwYXRjaGluZyBvbiBoaWRk
ZW4gZWxlbWVudHMKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCiAgICAgICAgIHRo
aXMuc3RvcmVTY3JvbGxQb3NpdGlvbnMoKTsKKworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8
IHRoaXMuX2NoaWxkcmVuLmxlbmd0aDsgKytpKQorICAgICAgICAgICAgdGhpcy5fY2hpbGRyZW5b
aV0uX2Rpc3BhdGNoV2lsbEhpZGUoKTsKKworICAgICAgICB0aGlzLndpbGxIaWRlKCk7CisgICAg
ICAgIHRoaXMuX2lzU2hvd2luZyA9IGZhbHNlOwogICAgIH0sCiAKLSAgICB3aWxsRGV0YWNoOiBm
dW5jdGlvbigpCisgICAgX2Rpc3BhdGNoT25SZXNpemU6IGZ1bmN0aW9uKCkKICAgICB7CisgICAg
ICAgIHRoaXMub25SZXNpemUoKTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl9j
aGlsZHJlbi5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgIHRoaXMuX2NoaWxkcmVuW2ldLl9kaXNw
YXRjaE9uUmVzaXplKCk7CiAgICAgfSwKIAotICAgIC8qKgotICAgICAqIEBwYXJhbSB7RWxlbWVu
dH0gcGFyZW50RWxlbWVudAotICAgICAqLwotICAgIHNob3c6IGZ1bmN0aW9uKHBhcmVudEVsZW1l
bnQpCisgICAgd2FzU2hvd246IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIHRoaXMuX3Zpc2li
bGUgPSB0cnVlOwotICAgICAgICB0aGlzLmVsZW1lbnQuYWRkU3R5bGVDbGFzcygidmlzaWJsZSIp
OwotICAgICAgICBpZiAocGFyZW50RWxlbWVudCAmJiB0aGlzLmVsZW1lbnQucGFyZW50RWxlbWVu
dCAhPSBwYXJlbnRFbGVtZW50KQotICAgICAgICAgICAgdGhpcy5hdHRhY2gocGFyZW50RWxlbWVu
dCk7Ci0gICAgICAgIHRoaXMuZGlzcGF0Y2hUb1NlbGZBbmRDaGlsZHJlbigid2FzU2hvd24iLCB0
cnVlKTsKICAgICB9LAogCi0gICAgaGlkZTogZnVuY3Rpb24oKQorICAgIHdpbGxIaWRlOiBmdW5j
dGlvbigpCisgICAgeworICAgIH0sCisKKyAgICBvblJlc2l6ZTogZnVuY3Rpb24oKQogICAgIHsK
LSAgICAgICAgdGhpcy5kaXNwYXRjaFRvU2VsZkFuZENoaWxkcmVuKCJ3aWxsSGlkZSIsIHRydWUp
OwotICAgICAgICBpZiAoIXRoaXMuX2luRGV0YWNoKQotICAgICAgICAgICAgdGhpcy5lbGVtZW50
LnJlbW92ZVN0eWxlQ2xhc3MoInZpc2libGUiKTsKLSAgICAgICAgdGhpcy5fdmlzaWJsZSA9IGZh
bHNlOwogICAgIH0sCiAKICAgICAvKioKICAgICAgKiBAcGFyYW0ge0VsZW1lbnR9IHBhcmVudEVs
ZW1lbnQKICAgICAgKi8KLSAgICBhdHRhY2g6IGZ1bmN0aW9uKHBhcmVudEVsZW1lbnQpCisgICAg
c2hvdzogZnVuY3Rpb24ocGFyZW50RWxlbWVudCkKICAgICB7Ci0gICAgICAgIHBhcmVudEVsZW1l
bnQuYXBwZW5kQ2hpbGQodGhpcy5lbGVtZW50KTsKKyAgICAgICAgaWYgKCFwYXJlbnRFbGVtZW50
KSB7CisgICAgICAgICAgICBjb25zb2xlLnRyYWNlKCk7CisgICAgICAgICAgICB0aHJvdyBuZXcg
RXJyb3IoIkF0dGVtcHQgdG8gYXR0YWNoIHZpZXcgd2l0aCBubyBwYXJlbnQgZWxlbWVudCIpOwor
ICAgICAgICB9CisKKyAgICAgICAgdGhpcy5fdmlzaWJsZSA9IHRydWU7CisgICAgICAgIHRoaXMu
ZWxlbWVudC5hZGRTdHlsZUNsYXNzKCJ2aXNpYmxlIik7CisKKyAgICAgICAgaWYgKHRoaXMuZWxl
bWVudC5wYXJlbnRFbGVtZW50ID09PSBwYXJlbnRFbGVtZW50KSB7CisgICAgICAgICAgICB0aGlz
Ll9kaXNwYXRjaFdhc1Nob3duKCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKwor
ICAgICAgICAvLyBGb3JjZSBsZWdhbCBhcHBlbmQKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAg
IFdlYkluc3BlY3Rvci5WaWV3Ll9sZWdhbEFwcGVuZENoaWxkT3BlcmF0aW9uID0gdHJ1ZTsKKyAg
ICAgICAgICAgIHBhcmVudEVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5lbGVtZW50KTsKKyAgICAg
ICAgfSBmaW5hbGx5IHsKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5WaWV3Ll9sZWdhbEFwcGVu
ZENoaWxkT3BlcmF0aW9uID0gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICAvLyBVcGRhdGUg
dmlldyBoaWVyYXJjaHkKKyAgICAgICAgd2hpbGUgKHBhcmVudEVsZW1lbnQgJiYgIXBhcmVudEVs
ZW1lbnQuX192aWV3KQorICAgICAgICAgICAgcGFyZW50RWxlbWVudCA9IHBhcmVudEVsZW1lbnQu
cGFyZW50RWxlbWVudDsKKyAgICAgICAgdmFyIHBhcmVudFZpZXcgPSBwYXJlbnRFbGVtZW50ID8g
cGFyZW50RWxlbWVudC5fX3ZpZXcgOiBXZWJJbnNwZWN0b3IuX3Jvb3RWaWV3OworICAgICAgICBw
YXJlbnRWaWV3Ll9jaGlsZHJlbi5wdXNoKHRoaXMpOworICAgICAgICB0aGlzLl9wYXJlbnRWaWV3
ID0gcGFyZW50VmlldzsKKworICAgICAgICB0aGlzLl9kaXNwYXRjaFdhc1Nob3duKCk7CiAgICAg
fSwKIAogICAgIGRldGFjaDogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX3Zp
c2libGUpIHsKLSAgICAgICAgICAgIHRoaXMuX2luRGV0YWNoID0gdHJ1ZTsKLSAgICAgICAgICAg
IHRoaXMuaGlkZSgpOwotICAgICAgICAgICAgdGhpcy5faW5EZXRhY2ggPSBmYWxzZTsKLSAgICAg
ICAgfQorICAgICAgICBpZiAoIXRoaXMuZWxlbWVudC5wYXJlbnRFbGVtZW50KQorICAgICAgICAg
ICAgcmV0dXJuOworCisgICAgICAgIHRoaXMuX2Rpc3BhdGNoV2lsbEhpZGUoKTsKIAotICAgICAg
ICB0aGlzLmRpc3BhdGNoVG9TZWxmQW5kQ2hpbGRyZW4oIndpbGxEZXRhY2giLCBmYWxzZSk7Cisg
ICAgICAgIGlmICh0aGlzLl9oaWRlT25EZXRhY2gpIHsKKyAgICAgICAgICAgIHRoaXMuZWxlbWVu
dC5yZW1vdmVTdHlsZUNsYXNzKCJ2aXNpYmxlIik7CisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIH0KIAotICAgICAgICBpZiAodGhpcy5lbGVtZW50LnBhcmVudEVsZW1lbnQpCisgICAgICAg
IC8vIEZvcmNlIGxlZ2FsIHJlbW92YWwKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFdlYklu
c3BlY3Rvci5WaWV3Ll9sZWdhbFJlbW92ZUNoaWxkT3BlcmF0aW9uID0gdHJ1ZTsgCiAgICAgICAg
ICAgICB0aGlzLmVsZW1lbnQucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzLmVsZW1lbnQp
OworICAgICAgICB9IGZpbmFsbHkgeworICAgICAgICAgICAgV2ViSW5zcGVjdG9yLlZpZXcuX2xl
Z2FsUmVtb3ZlQ2hpbGRPcGVyYXRpb24gPSBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIC8v
IFVwZGF0ZSB2aWV3IGhpZXJhcmNoeQorICAgICAgICB2YXIgY2hpbGRJbmRleCA9IHRoaXMuX3Bh
cmVudFZpZXcuX2NoaWxkcmVuLmluZGV4T2YodGhpcyk7CisgICAgICAgIGlmIChjaGlsZEluZGV4
IDwgMCkgeworICAgICAgICAgICAgY29uc29sZS50cmFjZSgpOworICAgICAgICAgICAgdGhyb3cg
bmV3IEVycm9yKCJBdHRlbXB0IHRvIHJlbW92ZSBub24tY2hpbGQgdmlldyIpOworICAgICAgICB9
CisgICAgICAgIHRoaXMuX3BhcmVudFZpZXcuX2NoaWxkcmVuLnNwbGljZShjaGlsZEluZGV4LCAx
KTsKKyAgICAgICAgdGhpcy5fcGFyZW50VmlldyA9IG51bGw7CisKKyAgICAgICAgdGhpcy5fdmlz
aWJsZSA9IGZhbHNlOwogICAgIH0sCiAKICAgICBlbGVtZW50c1RvUmVzdG9yZVNjcm9sbFBvc2l0
aW9uc0ZvcjogZnVuY3Rpb24oKQpAQCAtMTQwLDI4ICsyMDgsNiBAQCBXZWJJbnNwZWN0b3IuVmll
dy5wcm90b3R5cGUgPSB7CiAgICAgICAgIH0KICAgICB9LAogCi0gICAgX2FkZENoaWxkVmlldzog
ZnVuY3Rpb24odmlldykKLSAgICB7Ci0gICAgICAgIHRoaXMuX2NoaWxkcmVuLnB1c2godmlldyk7
Ci0gICAgICAgIHZpZXcuX3BhcmVudFZpZXcgPSB0aGlzOwotICAgIH0sCi0KLSAgICBfcmVtb3Zl
Q2hpbGRWaWV3OiBmdW5jdGlvbih2aWV3KQotICAgIHsKLSAgICAgICAgdmFyIGNoaWxkSW5kZXgg
PSB0aGlzLl9jaGlsZHJlbi5pbmRleE9mKHZpZXcpOwotICAgICAgICBpZiAoY2hpbGRJbmRleCA8
IDApIHsKLSAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoIkF0dGVtcHQgdG8gcmVtb3ZlIG5vbi1j
aGlsZCB2aWV3Iik7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICB0
aGlzLl9jaGlsZHJlbi5zcGxpY2UoY2hpbGRJbmRleCwgMSk7Ci0gICAgICAgIHZpZXcuX3BhcmVu
dFZpZXcgPSBudWxsOwotICAgIH0sCi0KLSAgICBvblJlc2l6ZTogZnVuY3Rpb24oKQotICAgIHsK
LSAgICB9LAotCiAgICAgY2FuSGlnaGxpZ2h0TGluZTogZnVuY3Rpb24oKQogICAgIHsKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwpAQCAtMTczLDQ1ICsyMTksMjMgQEAgV2ViSW5zcGVjdG9yLlZpZXcu
cHJvdG90eXBlID0gewogCiAgICAgZG9SZXNpemU6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAg
IHRoaXMuZGlzcGF0Y2hUb1NlbGZBbmRDaGlsZHJlbigib25SZXNpemUiLCB0cnVlKTsKKyAgICAg
ICAgdGhpcy5fZGlzcGF0Y2hPblJlc2l6ZSgpOwogICAgIH0sCiAKLSAgICBkaXNwYXRjaFRvU2Vs
ZkFuZENoaWxkcmVuOiBmdW5jdGlvbihtZXRob2ROYW1lLCB2aXNpYmxlT25seSkKKyAgICBkaXNw
YXRjaFRvU2VsZkFuZENoaWxkcmVuOiBmdW5jdGlvbihtZXRob2QsIHZpc2libGVPbmx5KQogICAg
IHsKLSAgICAgICAgaWYgKHZpc2libGVPbmx5ICYmICF0aGlzLnZpc2libGUpCisgICAgICAgIGlm
ICh2aXNpYmxlT25seSAmJiAhdGhpcy5fdmlzaWJsZSkKICAgICAgICAgICAgIHJldHVybjsKLSAg
ICAgICAgaWYgKHR5cGVvZiB0aGlzW21ldGhvZE5hbWVdID09PSAiZnVuY3Rpb24iKQotICAgICAg
ICAgICAgdGhpc1ttZXRob2ROYW1lXS5jYWxsKHRoaXMpOwotICAgICAgICB0aGlzLmRpc3BhdGNo
VG9DaGlsZHJlbihtZXRob2ROYW1lLCB2aXNpYmxlT25seSk7CisgICAgICAgIG1ldGhvZC5jYWxs
KHRoaXMpOworICAgICAgICB0aGlzLmRpc3BhdGNoVG9DaGlsZHJlbihtZXRob2QsIHZpc2libGVP
bmx5KTsKICAgICB9LAogCi0gICAgZGlzcGF0Y2hUb0NoaWxkcmVuOiBmdW5jdGlvbihtZXRob2RO
YW1lLCB2aXNpYmxlT25seSkKKyAgICBkaXNwYXRjaFRvQ2hpbGRyZW46IGZ1bmN0aW9uKG1ldGhv
ZCwgdmlzaWJsZU9ubHkpCiAgICAgewotICAgICAgICBpZiAodmlzaWJsZU9ubHkgJiYgIXRoaXMu
dmlzaWJsZSkKKyAgICAgICAgaWYgKHZpc2libGVPbmx5ICYmICF0aGlzLl92aXNpYmxlKQogICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuX2NoaWxk
cmVuLmxlbmd0aDsgKytpKQotICAgICAgICAgICAgdGhpcy5fY2hpbGRyZW5baV0uZGlzcGF0Y2hU
b1NlbGZBbmRDaGlsZHJlbihtZXRob2ROYW1lLCB2aXNpYmxlT25seSk7Ci0gICAgfSwKLQotICAg
IF9oYW5kbGVJbnNlcnRlZEludG9Eb2N1bWVudDogZnVuY3Rpb24oZXZlbnQpCi0gICAgewotICAg
ICAgICB2YXIgcGFyZW50RWxlbWVudCA9IHRoaXMuZWxlbWVudC5wYXJlbnRFbGVtZW50OwotICAg
ICAgICB3aGlsZSAocGFyZW50RWxlbWVudCAmJiAhcGFyZW50RWxlbWVudC5fX3ZpZXcpCi0gICAg
ICAgICAgICBwYXJlbnRFbGVtZW50ID0gcGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50OwotCi0g
ICAgICAgIHZhciBwYXJlbnRWaWV3ID0gcGFyZW50RWxlbWVudCA/IHBhcmVudEVsZW1lbnQuX192
aWV3IDogV2ViSW5zcGVjdG9yLl9yb290VmlldzsKLSAgICAgICAgcGFyZW50Vmlldy5fYWRkQ2hp
bGRWaWV3KHRoaXMpOwotICAgICAgICB0aGlzLm9uSW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKTsKLSAg
ICB9LAotCi0gICAgb25JbnNlcnRlZEludG9Eb2N1bWVudDogZnVuY3Rpb24oKQotICAgIHsKLSAg
ICB9LAotCi0gICAgX2hhbmRsZVJlbW92ZWRGcm9tRG9jdW1lbnQ6IGZ1bmN0aW9uKGV2ZW50KQot
ICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX3BhcmVudFZpZXcpCi0gICAgICAgICAgICB0aGlzLl9w
YXJlbnRWaWV3Ll9yZW1vdmVDaGlsZFZpZXcodGhpcyk7CisgICAgICAgICAgICB0aGlzLl9jaGls
ZHJlbltpXS5kaXNwYXRjaFRvU2VsZkFuZENoaWxkcmVuKG1ldGhvZCwgdmlzaWJsZU9ubHkpOwog
ICAgIH0sCiAKICAgICBwcmludFZpZXdIaWVyYXJjaHk6IGZ1bmN0aW9uKCkKQEAgLTIzNSw0ICsy
NTksOTIgQEAgV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlID0gewogCiBXZWJJbnNwZWN0b3Iu
Vmlldy5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLk9iamVjdC5wcm90b3R5cGU7
CiAKKyhmdW5jdGlvbigpIHsKKworZnVuY3Rpb24gaW5jcmVtZW50Vmlld0NvdW50ZXIocGFyZW50
RWxlbWVudCwgY2hpbGRFbGVtZW50KQoreworICAgIHZhciBjb3VudCA9IChjaGlsZEVsZW1lbnQu
X192aWV3Q291bnRlciB8fCAwKSArIChjaGlsZEVsZW1lbnQuX192aWV3ID8gMSA6IDApOworICAg
IGlmICghY291bnQpCisgICAgICAgIHJldHVybjsKKworICAgIHdoaWxlIChwYXJlbnRFbGVtZW50
KSB7CisgICAgICAgIHBhcmVudEVsZW1lbnQuX192aWV3Q291bnRlciA9IChwYXJlbnRFbGVtZW50
Ll9fdmlld0NvdW50ZXIgfHwgMCkgKyBjb3VudDsKKyAgICAgICAgcGFyZW50RWxlbWVudCA9IHBh
cmVudEVsZW1lbnQucGFyZW50RWxlbWVudDsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGRlY3JlbWVu
dFZpZXdDb3VudGVyKHBhcmVudEVsZW1lbnQsIGNoaWxkRWxlbWVudCkKK3sKKyAgICB2YXIgY291
bnQgPSAoY2hpbGRFbGVtZW50Ll9fdmlld0NvdW50ZXIgfHwgMCkgKyAoY2hpbGRFbGVtZW50Ll9f
dmlldyA/IDEgOiAwKTsKKyAgICBpZiAoIWNvdW50KQorICAgICAgICByZXR1cm47CisKKyAgICB3
aGlsZSAocGFyZW50RWxlbWVudCkgeworICAgICAgICBwYXJlbnRFbGVtZW50Ll9fdmlld0NvdW50
ZXIgLT0gY291bnQ7CisgICAgICAgIHBhcmVudEVsZW1lbnQgPSBwYXJlbnRFbGVtZW50LnBhcmVu
dEVsZW1lbnQ7CisgICAgfQorfQorCit2YXIgb3JpZ2luYWxBcHBlbmRDaGlsZCA9IEVsZW1lbnQu
cHJvdG90eXBlLmFwcGVuZENoaWxkOworRWxlbWVudC5wcm90b3R5cGUuYXBwZW5kQ2hpbGQgPSBm
dW5jdGlvbihjaGlsZCkKK3sKKyAgICBpbmNyZW1lbnRWaWV3Q291bnRlcih0aGlzLCBjaGlsZCk7
CisKKyAgICBpZiAoY2hpbGQuX192aWV3ICYmICFXZWJJbnNwZWN0b3IuVmlldy5fbGVnYWxBcHBl
bmRDaGlsZE9wZXJhdGlvbikgeworICAgICAgICBjb25zb2xlLnRyYWNlKCk7CisgICAgICAgIHRo
cm93IG5ldyBFcnJvcigiQXR0ZW1wdCB0byBhZGQgdmlldyB2aWEgcmVndWxhciBET00gb3BlcmF0
aW9uOiAiICsgY2hpbGQuY2xhc3NOYW1lKTsKKyAgICB9CisKKyAgICByZXR1cm4gb3JpZ2luYWxB
cHBlbmRDaGlsZC5jYWxsKHRoaXMsIGNoaWxkKTsKK30KKwordmFyIG9yaWdpbmFsSW5zZXJ0QmVm
b3JlID0gRWxlbWVudC5wcm90b3R5cGUuaW5zZXJ0QmVmb3JlOworRWxlbWVudC5wcm90b3R5cGUu
aW5zZXJ0QmVmb3JlID0gZnVuY3Rpb24oY2hpbGQsIGFuY2hvcikKK3sKKyAgICBpbmNyZW1lbnRW
aWV3Q291bnRlcih0aGlzLCBjaGlsZCk7CisKKyAgICBpZiAoY2hpbGQuX192aWV3ICYmICFXZWJJ
bnNwZWN0b3IuVmlldy5fbGVnYWxBcHBlbmRDaGlsZE9wZXJhdGlvbikgeworICAgICAgICBjb25z
b2xlLnRyYWNlKCk7CisgICAgICAgIHRocm93IG5ldyBFcnJvcigiQXR0ZW1wdCB0byBhZGQgdmll
dyB2aWEgcmVndWxhciBET00gb3BlcmF0aW9uOiAiICsgY2hpbGQuY2xhc3NOYW1lKTsKKyAgICB9
CisKKyAgICByZXR1cm4gb3JpZ2luYWxJbnNlcnRCZWZvcmUuY2FsbCh0aGlzLCBjaGlsZCwgYW5j
aG9yKTsKK30KKwordmFyIG9yaWdpbmFsUmVtb3ZlQ2hpbGQgPSBFbGVtZW50LnByb3RvdHlwZS5y
ZW1vdmVDaGlsZDsKK0VsZW1lbnQucHJvdG90eXBlLnJlbW92ZUNoaWxkID0gZnVuY3Rpb24oY2hp
bGQpCit7CisgICAgZGVjcmVtZW50Vmlld0NvdW50ZXIodGhpcywgY2hpbGQpOworCisgICAgaWYg
KGNoaWxkLl9fY29udGFpbnNWaWV3ICYmICFXZWJJbnNwZWN0b3IuVmlldy5fbGVnYWxSZW1vdmVD
aGlsZE9wZXJhdGlvbikgeworICAgICAgICBjb25zb2xlLnRyYWNlKCk7CisgICAgICAgIHRocm93
IG5ldyBFcnJvcigiQXR0ZW1wdCB0byByZW1vdmUgZWxlbWVudCBjb250YWluaW5nIHZpZXcgdmlh
IHJlZ3VsYXIgRE9NIG9wZXJhdGlvbiIpOworICAgIH0KKworICAgIHJldHVybiBvcmlnaW5hbFJl
bW92ZUNoaWxkLmNhbGwodGhpcywgY2hpbGQpOworfQorCit2YXIgb3JpZ2luYWxSZW1vdmVDaGls
ZHJlbiA9IEVsZW1lbnQucHJvdG90eXBlLnJlbW92ZUNoaWxkcmVuOworRWxlbWVudC5wcm90b3R5
cGUucmVtb3ZlQ2hpbGRyZW4gPSBmdW5jdGlvbigpCit7CisgICAgaWYgKCF0aGlzLl9fdmlld0Nv
dW50ZXIpIHsKKyAgICAgICAgb3JpZ2luYWxSZW1vdmVDaGlsZHJlbi5jYWxsKHRoaXMpOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgZm9yICh2YXIgY2hpbGQgPSB0aGlzLmZpcnN0Q2hp
bGQ7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLm5leHRTaWJsaW5nKSB7CisgICAgICAgIGRlY3JlbWVu
dFZpZXdDb3VudGVyKHRoaXMsIGNoaWxkKTsKKworICAgICAgICBpZiAoY2hpbGQuX19jb250YWlu
c1ZpZXcgJiYgIVdlYkluc3BlY3Rvci5WaWV3Ll9sZWdhbFJlbW92ZUNoaWxkT3BlcmF0aW9uKSB7
CisgICAgICAgICAgICBjb25zb2xlLnRyYWNlKCk7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoIkF0dGVtcHQgdG8gcmVtb3ZlIGVsZW1lbnQgY29udGFpbmluZyB2aWV3IHZpYSByZWd1bGFy
IERPTSBvcGVyYXRpb24iKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIG9yaWdpbmFsUmVtb3Zl
Q2hpbGRyZW4uY2FsbCh0aGlzKTsKK30KKworfSkoKTsKKwogV2ViSW5zcGVjdG9yLl9yb290Vmll
dyA9IG5ldyBXZWJJbnNwZWN0b3IuVmlldygpOworV2ViSW5zcGVjdG9yLl9yb290Vmlldy5faXNT
aG93aW5nID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvZXh0ZXJucy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvZXh0
ZXJucy5qcwppbmRleCBkZjY4YzZiOTRiYjJjMGJiM2I1OGU0OTAzOWI0MGQwNzFlNDVkM2FkLi44
NjJjZGJhOTY0OWM0NDliZjFlMDMzZjU1MWQwYWM5MDhmZThhNjc1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2V4dGVybnMuanMKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9leHRlcm5zLmpzCkBAIC0zNSw2ICszNSw3IEBAIGNv
bnNvbGUud2FybiA9IGZ1bmN0aW9uKHZhcmFyZykge30KIGNvbnNvbGUuYXNzZXJ0ID0gZnVuY3Rp
b24odmFyYXJnKSB7fQogLyoqIEBwYXJhbSB7Li4uKn0gdmFyYXJnICovCiBjb25zb2xlLmVycm9y
ID0gZnVuY3Rpb24odmFyYXJnKSB7fQorY29uc29sZS50cmFjZSA9IGZ1bmN0aW9uKCkge30KIAog
dmFyIFdlYkluc3BlY3RvciA9IHt9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3MTcxMTc2YTVjOWRjYzk0MWU2N2FiNWY2
YTdhOTNkODI0ZTU4NWVlLi5mNGU5MTY1ODNkOGUxZGRkZGJhMTYwNjAyZjg0NTVmYzdmM2U0MmQz
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMTAtMjAgIFBhdmVsIEZlbGRtYW4gIDxwZmVs
ZG1hbkBnb29nbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGdldCByaWQgb2YgVmll
dzo6aGlkZSwgVmlldzo6c2V0IHZpc2libGUsIFZpZXc6OmF0dGFjaC4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwNTIzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvc2Ny
aXB0cy1wYW5lbC5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci92aWV3LWV2ZW50cy1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL3ZpZXctZXZlbnRzLmh0bWw6CisKIDIwMTEtMTAt
MjAgIFpvbHRhbiBBcnZhaSAgPHphcnZhaUBpbmYudS1zemVnZWQuaHU+CiAKICAgICAgICAgW1F0
XSBSZW1vdmluZyB0ZXN0IGZyb20gU2tpcHBlZCBsaXN0LiBUZXN0IHBhc3NlczogZmFzdC90ZXh0
L2p1c3RpZnktcGFkZGluZy1kaXN0cmlidXRpb24uaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdHMtcGFuZWwuaHRtbCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLXBhbmVsLmh0bWwKaW5kZXggZTMxMjBmZWIwNjRlNTE0
ZDI1OTQ2NDk5NWEyMGVlNjI4MjRlM2RhNS4uMzE1NDAxMjE1ODJmODlmOWRkOGIxNGU2NmQyNTY1
ZDYyMDA5Mzg2NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Nj
cmlwdHMtcGFuZWwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2Ny
aXB0cy1wYW5lbC5odG1sCkBAIC00OSw2ICs0OSw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAg
ICB7CiAgICAgICAgICAgICB2YXIgbW9kZWwgPSBjcmVhdGVEZWJ1Z2dlclByZXNlbnRhdGlvbk1v
ZGVsTW9jaygpOwogICAgICAgICAgICAgdmFyIHBhbmVsID0gbmV3IFdlYkluc3BlY3Rvci5TY3Jp
cHRzUGFuZWwobW9kZWwpOworICAgICAgICAgICAgcGFuZWwuX2lzU2hvd2luZyA9IHRydWU7CiAK
ICAgICAgICAgICAgIHBhbmVsLl91aVNvdXJjZUNvZGVBZGRlZCh7IGRhdGE6IGNyZWF0ZVVJU291
Y2VDb2RlKCJmb28uanMiKSB9KTsKICAgICAgICAgICAgIHBhbmVsLl91aVNvdXJjZUNvZGVBZGRl
ZCh7IGRhdGE6IGNyZWF0ZVVJU291Y2VDb2RlKCJiYXIuanMiKSB9KTsKQEAgLTc0LDYgKzc1LDcg
QEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIHsKICAgICAgICAgICAgIHZhciBtb2RlbCA9IGNy
ZWF0ZURlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWxNb2NrKCk7CiAgICAgICAgICAgICB2YXIgcGFu
ZWwgPSBuZXcgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbChtb2RlbCk7CisgICAgICAgICAgICBw
YW5lbC5faXNTaG93aW5nID0gdHJ1ZTsKIAogICAgICAgICAgICAgdmFyIGZpbGVzID0gWyJpbmRl
eC5odG1sIiwgInNjcmlwdDEuanMiLCAic2NyaXB0Mi5qcyIsICJzY3JpcHQzLmpzIl07CiAgICAg
ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGZpbGVzLmxlbmd0aDsgKytpKQpAQCAtMTMwLDYg
KzEzMiw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICB7CiAgICAgICAgICAgICB2YXIgbW9k
ZWwgPSBjcmVhdGVEZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsTW9jaygpOwogICAgICAgICAgICAg
dmFyIHBhbmVsID0gbmV3IFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwobW9kZWwpOworICAgICAg
ICAgICAgcGFuZWwuX2lzU2hvd2luZyA9IHRydWU7CiAKICAgICAgICAgICAgIHZhciByb290VVJM
ID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIv
IjsKICAgICAgICAgICAgIHZhciBuZXh0SWQgPSAwOwpAQCAtMTYzLDYgKzE2Niw3IEBAIGZ1bmN0
aW9uIHRlc3QoKQogICAgICAgICB7CiAgICAgICAgICAgICB2YXIgbW9kZWwgPSBjcmVhdGVEZWJ1
Z2dlclByZXNlbnRhdGlvbk1vZGVsTW9jaygpOwogICAgICAgICAgICAgdmFyIHBhbmVsID0gbmV3
IFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwobW9kZWwpOworICAgICAgICAgICAgcGFuZWwuX2lz
U2hvd2luZyA9IHRydWU7CiAKICAgICAgICAgICAgIHBhbmVsLl91aVNvdXJjZUNvZGVBZGRlZCh7
IGRhdGE6IGNyZWF0ZVVJU291Y2VDb2RlKCJmb28uanMiKSB9KTsKICAgICAgICAgICAgIHZhciBj
b21waWxlZFNvdXJjZUNvZGUgPSBjcmVhdGVVSVNvdWNlQ29kZSgiY29tcGlsZWQuanMiKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci92aWV3LWV2ZW50cy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivdmlldy1ldmVudHMtZXhwZWN0ZWQudHh0CmluZGV4IDZj
MzcxYzg5NDU3NjQ1YmZhYjdmMTc3NDEyNzQzYjgyMzJiNjY0ZjcuLmYzZmQ4Y2ZiMjA3NWU5MzEz
YWM5NmQyN2VhMjE3YzEzZWYyOWYzYTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci92aWV3LWV2ZW50cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Zp
ZXctZXZlbnRzLWV4cGVjdGVkLnR4dApAQCAtMTEsMTYgKzExLDE2IEBAIGNoaWxkVmlldy5zaG93
KHBhcmVudFZpZXcuZWxlbWVudCkKIHBhcmVudFZpZXcuZG9SZXNpemUoKQogPiBQYXJlbnRWaWV3
Lm9uUmVzaXplKCkKID4gQ2hpbGRWaWV3Lm9uUmVzaXplKCkKLXBhcmVudFZpZXcuaGlkZSgpCi0+
IFBhcmVudFZpZXcud2lsbEhpZGUoKQorcGFyZW50Vmlldy5kZXRhY2goKQogPiBDaGlsZFZpZXcu
d2lsbEhpZGUoKQorPiBQYXJlbnRWaWV3LndpbGxIaWRlKCkKIHBhcmVudFZpZXcuc2hvdyhyb290
KQogPiBQYXJlbnRWaWV3Lndhc1Nob3duKCkKID4gUGFyZW50Vmlldy5vblJlc2l6ZSgpCiA+IENo
aWxkVmlldy53YXNTaG93bigpCiA+IENoaWxkVmlldy5vblJlc2l6ZSgpCi1jaGlsZFZpZXcuaGlk
ZSgpCitjaGlsZFZpZXcuZGV0YWNoKCkKID4gQ2hpbGRWaWV3LndpbGxIaWRlKCkKLXBhcmVudFZp
ZXcuaGlkZSgpCitwYXJlbnRWaWV3LmRldGFjaCgpCiA+IFBhcmVudFZpZXcud2lsbEhpZGUoKQog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivdmlldy1ldmVudHMuaHRtbCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci92aWV3LWV2ZW50cy5odG1sCmluZGV4IDc4M2Y3NjgxMDEyNjYw
ZGE2YzdmZjAxN2Q0ZDk3ZTg1Mjc4MDYxMWEuLmE2YzYyYzQ2NzllOTZjNjY1NDRiNjRlNTA4MDNh
MjAyZWM0ZDZkZDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci92aWV3LWV2ZW50
cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci92aWV3LWV2ZW50cy5odG1sCkBAIC00
NywxMCArNDcsMTAgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgICJwYXJlbnRWaWV3LmRvUmVz
aXplKCkiLAogICAgICAgICAiY2hpbGRWaWV3LnNob3cocGFyZW50Vmlldy5lbGVtZW50KSIsCiAg
ICAgICAgICJwYXJlbnRWaWV3LmRvUmVzaXplKCkiLAotICAgICAgICAicGFyZW50Vmlldy5oaWRl
KCkiLAorICAgICAgICAicGFyZW50Vmlldy5kZXRhY2goKSIsCiAgICAgICAgICJwYXJlbnRWaWV3
LnNob3cocm9vdCkiLAotICAgICAgICAiY2hpbGRWaWV3LmhpZGUoKSIsCi0gICAgICAgICJwYXJl
bnRWaWV3LmhpZGUoKSIKKyAgICAgICAgImNoaWxkVmlldy5kZXRhY2goKSIsCisgICAgICAgICJw
YXJlbnRWaWV3LmRldGFjaCgpIgogICAgIF0pOwogICAgIGNoaWxkVmlldy5kZXRhY2goKTsKICAg
ICBwYXJlbnRWaWV3LmRldGFjaCgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111956</attachid>
            <date>2011-10-21 05:33:49 -0700</date>
            <delta_ts>2011-10-21 07:59:51 -0700</delta_ts>
            <desc>[Patch] Same with the test.</desc>
            <filename>bug-70523-20111021163346.patch</filename>
            <type>text/plain</type>
            <size>73419</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTc5ODQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzNzAyMGQxYjY3NjVlMzMx
MzAyYjYwZGY5YjEzMTAzNzFmNmY2ZGYwLi5jM2JkZTUxMzNhNWIzOTQ2ZjRkYWE3ZjMyNzI3Mzhl
Zjg0NzNkNWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTA5IEBACiAyMDExLTEwLTIwICBQYXZl
bCBGZWxkbWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNvbT4KIAorICAgICAgICBXZWIgSW5zcGVjdG9y
OiBnZXQgcmlkIG9mIFZpZXc6OmhpZGUsIFZpZXc6OnNldCB2aXNpYmxlLCBWaWV3OjphdHRhY2gs
CisgICAgICAgIFZpZXc6OnNldCB2aXNpYmxlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA1MjMKKworICAgICAgICBUaGlzIGNoYW5nZSBhbHNvIGlu
dHJvZHVjZXMgYXNzZXRpb25zIHRoYXQgZm9yY2VzIHZpZXcgYXR0YWNoIC8gZGV0YWNoIG9wZXJh
dGlvbnMKKyAgICAgICAgdG8gYmUgcGVyZm9ybWVkIGV4cGxpY2l0bHkuCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L0FwcGxpY2F0aW9uQ2FjaGVJdGVtc1ZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXBw
bGljYXRpb25DYWNoZUl0ZW1zVmlldy5wcm90b3R5cGUud2FzU2hvd24pOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkFwcGxpY2F0aW9uQ2FjaGVJdGVtc1ZpZXcucHJvdG90eXBlLndpbGxIaWRlKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5BcHBsaWNhdGlvbkNhY2hlSXRlbXNWaWV3LnByb3RvdHlw
ZS5fdXBkYXRlQ2FsbGJhY2spOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRz
UGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXVkaXRzUGFuZWwucHJvdG90eXBlLndh
c1Nob3duKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVQYW5lbC5qczoK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlUGFuZWwucHJvdG90eXBlLndhc1Nob3duKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlUGFuZWwucHJvdG90eXBlLndpbGxIaWRlKToK
KyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZS53YXNTaG93bik6CisgICAgICAgICog
aW5zcGVjdG9yL2Zyb250LWVuZC9Db29raWVJdGVtc1ZpZXcuanM6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuQ29va2llSXRlbXNWaWV3LnByb3RvdHlwZS53YXNTaG93bik6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuQ29va2llSXRlbXNWaWV3LnByb3RvdHlwZS53aWxsSGlkZSk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuQ29va2llSXRlbXNWaWV3LnByb3RvdHlwZS5fdXBkYXRlV2l0aENvb2tpZXMp
OgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRE9NU3RvcmFnZUl0ZW1zVmlldy5qczoK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01TdG9yYWdlSXRlbXNWaWV3LnByb3RvdHlwZS53YXNT
aG93bik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZUl0ZW1zVmlldy5wcm90b3R5
cGUud2lsbEhpZGUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRGF0YWJhc2VRdWVy
eVZpZXcuanM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9EYXRhYmFzZVRhYmxlVmll
dy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EYXRhYmFzZVRhYmxlVmlldy5wcm90b3R5cGUu
d2FzU2hvd24pOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRGV0YWlsZWRIZWFwc2hv
dFZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGV0YWlsZWRIZWFwc2hvdFZpZXcucHJv
dG90eXBlLndpbGxIaWRlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZXRhaWxlZEhlYXBzaG90
Vmlldy5wcm90b3R5cGUuX2NoYW5nZVZpZXcpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1l
bmQvRHJhd2VyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRyYXdlci5wcm90b3R5cGUuaGlk
ZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwucHJvdG90eXBlLndhc1Nob3duKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50c1BhbmVsLnByb3RvdHlwZS53aWxsSGlkZSk6Cisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9FbXB0eVZpZXcuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuRW1wdHlWaWV3LnByb3RvdHlwZS53YXNTaG93bik6CisgICAgICAgICogaW5zcGVj
dG9yL2Zyb250LWVuZC9Gb250Vmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Gb250Vmll
dy5wcm90b3R5cGUud2FzU2hvd24pOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvSUZy
YW1lVmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5JRnJhbWVWaWV3KToKKyAgICAgICAg
KiBpbnNwZWN0b3IvZnJvbnQtZW5kL0ltYWdlVmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5JbWFnZVZpZXcucHJvdG90eXBlLndhc1Nob3duKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJv
bnQtZW5kL05ldHdvcmtJdGVtVmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OZXR3b3Jr
SXRlbVZpZXcucHJvdG90eXBlLndhc1Nob3duKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNv
dXJjZUNvbnRlbnRWaWV3LnByb3RvdHlwZS53YXNTaG93bik6CisgICAgICAgICogaW5zcGVjdG9y
L2Zyb250LWVuZC9OZXR3b3JrUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmV0d29y
a0xvZ1ZpZXcucHJvdG90eXBlLndhc1Nob3duKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OZXR3
b3JrTG9nVmlldy5wcm90b3R5cGUud2lsbEhpZGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5l
dHdvcmtQYW5lbC5wcm90b3R5cGUud2FzU2hvd24pOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9u
dC1lbmQvUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUGFuZWwpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZS5zaG93KToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5QYW5lbC5wcm90b3R5cGUud2FzU2hvd24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlBhbmVs
LnByb3RvdHlwZS53aWxsSGlkZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9QYW5l
bEVuYWJsZXJWaWV3LmpzOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZVZp
ZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1BVUHJvZmlsZVZpZXcucHJvdG90eXBlLndp
bGxIaWRlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWwuanM6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUud2FzU2hvd24p
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlLl9hZGRQcm9m
aWxlSGVhZGVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlw
ZS5fdXBkYXRlSW50ZXJmYWNlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVs
LnByb3RvdHlwZS5fZW5hYmxlRGV0YWlsZWRIZWFwUHJvZmlsZXMpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9mcm9udC1lbmQvUmVzb3VyY2VDb29raWVzVmlldy5qczoKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5SZXNvdXJjZUNvb2tpZXNWaWV3LnByb3RvdHlwZS53YXNTaG93bik6CisgICAgICAgICog
aW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZUhUTUxWaWV3LmpzOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlJlc291cmNlSFRNTFZpZXcucHJvdG90eXBlLndhc1Nob3duKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5SZXNvdXJjZUhUTUxWaWV3LnByb3RvdHlwZS53aWxsSGlkZSk6CisgICAgICAg
ICogaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZUpTT05WaWV3LmpzOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlJlc291cmNlSlNPTlZpZXcucGFyc2VKU09OLldlYkluc3BlY3Rvci5SZXNvdXJj
ZUpTT05WaWV3LnByb3RvdHlwZS53YXNTaG93bik6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250
LWVuZC9SZXNvdXJjZVRpbWluZ1ZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3Vy
Y2VUaW1pbmdWaWV3LnByb3RvdHlwZS53YXNTaG93bik6CisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9SZXNvdXJjZXNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJj
ZXNQYW5lbC5wcm90b3R5cGUud2FzU2hvd24pOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1l
bmQvU2NyaXB0c1BhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5w
cm90b3R5cGUud2FzU2hvd24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5w
cm90b3R5cGUuX3VwZGF0ZURlYnVnZ2VyQnV0dG9ucyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9Tb3VyY2VGcmFtZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFt
ZS5wcm90b3R5cGUud2FzU2hvd24pOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVGlt
ZWxpbmVQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3Rv
dHlwZS53YXNTaG93bik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90
b3R5cGUud2lsbEhpZGUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVmlldy5qczoK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5WaWV3KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaWV3
LnByb3RvdHlwZS5nZXQgdmlzaWJsZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlldy5wcm90
b3R5cGUuc2V0SGlkZU9uRGV0YWNoKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaWV3LnByb3Rv
dHlwZS5fd2FzU2hvd24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLl93
aWxsSGlkZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUuX29uUmVzaXpl
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZS53YXNTaG93bik6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUud2lsbEhpZGUpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLm9uUmVzaXplKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5WaWV3LnByb3RvdHlwZS5zaG93KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaWV3LnByb3Rv
dHlwZS5kZXRhY2gpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLmRvUmVz
aXplKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZS5kaXNwYXRjaFRvU2Vs
ZkFuZENoaWxkcmVuKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZS5kaXNw
YXRjaFRvQ2hpbGRyZW4pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLl9o
YW5kbGVJbnNlcnRlZEludG9Eb2N1bWVudCk6CisKKzIwMTEtMTAtMjAgIFBhdmVsIEZlbGRtYW4g
IDxwZmVsZG1hbkBnb29nbGUuY29tPgorCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGRldGFjaCBz
aG91bGQgY2FsbCBoaWRlIHNvIHRoYXQgb3ZlcnJpZGVzIGFyZSBwcm9jZXNzZWQuCiAgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDUwMwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0FkdmFuY2VkU2VhcmNoQ29u
dHJvbGxlci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQWR2YW5jZWRT
ZWFyY2hDb250cm9sbGVyLmpzCmluZGV4IGNjYWE0YjczMzg0ZjY1MzBlNTU1NmVjZjNmYTFiN2I5
YzcwMzEyNGEuLjNlYzczN2FiMGM2ODExMThmNDhkNmY0NjViMGJlOGRiOGI2N2M0N2UgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQWR2YW5jZWRTZWFyY2hD
b250cm9sbGVyLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQWR2
YW5jZWRTZWFyY2hDb250cm9sbGVyLmpzCkBAIC02OCw3ICs2OCw3IEBAIFdlYkluc3BlY3Rvci5B
ZHZhbmNlZFNlYXJjaENvbnRyb2xsZXIucHJvdG90eXBlID0gewogICAgICAgICBpZiAoIXRoaXMu
X3NlYXJjaFZpZXcpCiAgICAgICAgICAgICB0aGlzLl9zZWFyY2hWaWV3ID0gbmV3IFdlYkluc3Bl
Y3Rvci5TZWFyY2hWaWV3KHRoaXMpOwogICAgICAgICAKLSAgICAgICAgaWYgKHRoaXMuX3NlYXJj
aFZpZXcudmlzaWJsZSkKKyAgICAgICAgaWYgKHRoaXMuX3NlYXJjaFZpZXcuaXNTaG93aW5nKCkp
CiAgICAgICAgICAgICB0aGlzLl9zZWFyY2hWaWV3LmZvY3VzKCk7CiAgICAgICAgIGVsc2UKICAg
ICAgICAgICAgIFdlYkluc3BlY3Rvci5zaG93Vmlld0luRHJhd2VyKHRoaXMuX3NlYXJjaFZpZXcp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BcHBsaWNh
dGlvbkNhY2hlSXRlbXNWaWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9BcHBsaWNhdGlvbkNhY2hlSXRlbXNWaWV3LmpzCmluZGV4IDhjY2M4OGI2NGI5YjE5YWM4NTM0
YTc0NzI5N2Y1NWI0ZmEwYmVhZmEuLmM5ZDZlZGFjZTMzM2NmYjMwZmFjYjEyYjNjY2Q2YzNkNmU5
MjAwMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQXBw
bGljYXRpb25DYWNoZUl0ZW1zVmlldy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0FwcGxpY2F0aW9uQ2FjaGVJdGVtc1ZpZXcuanMKQEAgLTEwMywxNiArMTAzLDE0
IEBAIFdlYkluc3BlY3Rvci5BcHBsaWNhdGlvbkNhY2hlSXRlbXNWaWV3LnByb3RvdHlwZSA9IHsK
ICAgICAgICAgfQogICAgIH0sCiAKLSAgICBzaG93OiBmdW5jdGlvbihwYXJlbnRFbGVtZW50KQor
ICAgIHdhc1Nob3duOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBXZWJJbnNwZWN0b3IuVmll
dy5wcm90b3R5cGUuc2hvdy5jYWxsKHRoaXMsIHBhcmVudEVsZW1lbnQpOwogICAgICAgICB0aGlz
LnVwZGF0ZU5ldHdvcmtTdGF0ZShuYXZpZ2F0b3Iub25MaW5lKTsKICAgICAgICAgdGhpcy5fdXBk
YXRlKCk7CiAgICAgfSwKIAotICAgIGhpZGU6IGZ1bmN0aW9uKCkKKyAgICB3aWxsSGlkZTogZnVu
Y3Rpb24oKQogICAgIHsKLSAgICAgICAgV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLmhpZGUu
Y2FsbCh0aGlzKTsKICAgICAgICAgdGhpcy5kZWxldGVCdXR0b24udmlzaWJsZSA9IGZhbHNlOwog
ICAgIH0sCiAKQEAgLTE3OSw3ICsxNzcsNyBAQCBXZWJJbnNwZWN0b3IuQXBwbGljYXRpb25DYWNo
ZUl0ZW1zVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX3BvcHVsYXRlRGF0YUdyaWQo
KTsKICAgICAgICAgdGhpcy5fZGF0YUdyaWQuYXV0b1NpemVDb2x1bW5zKDIwLCA4MCk7CiAgICAg
ICAgIHRoaXMuX2RhdGFHcmlkLmVsZW1lbnQucmVtb3ZlU3R5bGVDbGFzcygiaGlkZGVuIik7Ci0g
ICAgICAgIHRoaXMuX2VtcHR5Vmlldy5oaWRlKCk7CisgICAgICAgIHRoaXMuX2VtcHR5Vmlldy5k
ZXRhY2goKTsKICAgICAgICAgdGhpcy5kZWxldGVCdXR0b24udmlzaWJsZSA9IHRydWU7CiAKICAg
ICAgICAgdmFyIHRvdGFsU2l6ZVN0cmluZyA9IE51bWJlci5ieXRlc1RvU3RyaW5nKHRoaXMuX3Np
emUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BdWRp
dHNQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRzUGFu
ZWwuanMKaW5kZXggNTdkZWJmMzAyYjNmYmIxMzY3ZmQ2OGE0OGVkNjVjOGU0MTI4NDk3OC4uOTJi
NTMxZjQ1ZGUzYjVkZTk4OGM3MDk5YzJiZmYzNzMyMTA3YzE2NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BdWRpdHNQYW5lbC5qcworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1ZGl0c1BhbmVsLmpzCkBAIC0yNDQsOSArMjQ0
LDkgQEAgV2ViSW5zcGVjdG9yLkF1ZGl0c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAg
IHguc2hvdyh0aGlzLnZpZXdzQ29udGFpbmVyRWxlbWVudCk7CiAgICAgfSwKIAotICAgIHNob3c6
IGZ1bmN0aW9uKCkKKyAgICB3YXNTaG93bjogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgV2Vi
SW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZS5zaG93LmNhbGwodGhpcyk7CisgICAgICAgIFdlYklu
c3BlY3Rvci5QYW5lbC5wcm90b3R5cGUud2FzU2hvd24uY2FsbCh0aGlzKTsKICAgICAgICAgaWYg
KCF0aGlzLl92aXNpYmxlVmlldykKICAgICAgICAgICAgIHRoaXMuYXVkaXRzSXRlbVRyZWVFbGVt
ZW50LnNlbGVjdCgpOwogICAgIH0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0NvbnNvbGVQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvQ29uc29sZVBhbmVsLmpzCmluZGV4IGY3NmU1YjY0NTQ1ZTEzZDZmODkzOWNkMTU3
OGExOGJiMmE5N2Y1OTUuLjYyMTU3ZDI2YmM0ZTIzNDk2ZGUxYmNiZjk0MWUzMTFiZmZjYjVhYmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVBh
bmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVBh
bmVsLmpzCkBAIC01MCwyMyArNTAsMjMgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVQYW5lbC5wcm90
b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiB0aGlzLl92aWV3LnN0YXR1c0Jhckl0ZW1zOwogICAg
IH0sCiAKLSAgICBzaG93OiBmdW5jdGlvbigpCisgICAgd2FzU2hvd246IGZ1bmN0aW9uKCkKICAg
ICB7CisgICAgICAgIFdlYkluc3BlY3Rvci5QYW5lbC5wcm90b3R5cGUud2FzU2hvd24uY2FsbCh0
aGlzKTsKICAgICAgICAgaWYgKFdlYkluc3BlY3Rvci5kcmF3ZXIudmlzaWJsZSkgewogICAgICAg
ICAgICAgV2ViSW5zcGVjdG9yLmRyYXdlci5oaWRlKFdlYkluc3BlY3Rvci5EcmF3ZXIuQW5pbWF0
aW9uVHlwZS5JbW1lZGlhdGVseSk7CiAgICAgICAgICAgICB0aGlzLl9kcmF3ZXJXYXNWaXNpYmxl
ID0gdHJ1ZTsKICAgICAgICAgfQotICAgICAgICBXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBl
LnNob3cuY2FsbCh0aGlzKTsKICAgICAgICAgdGhpcy5fdmlldy5zaG93KHRoaXMuZWxlbWVudCk7
CiAgICAgfSwKIAotICAgIGhpZGU6IGZ1bmN0aW9uKCkKKyAgICB3aWxsSGlkZTogZnVuY3Rpb24o
KQogICAgIHsKLSAgICAgICAgV2ViSW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZS5oaWRlLmNhbGwo
dGhpcyk7CiAgICAgICAgIGlmICh0aGlzLl9kcmF3ZXJXYXNWaXNpYmxlKSB7CiAgICAgICAgICAg
ICBXZWJJbnNwZWN0b3IuZHJhd2VyLnNob3codGhpcy5fdmlldywgV2ViSW5zcGVjdG9yLkRyYXdl
ci5BbmltYXRpb25UeXBlLkltbWVkaWF0ZWx5KTsKICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9k
cmF3ZXJXYXNWaXNpYmxlOwogICAgICAgICB9CisgICAgICAgIFdlYkluc3BlY3Rvci5QYW5lbC5w
cm90b3R5cGUud2lsbEhpZGUuY2FsbCh0aGlzKTsKICAgICB9LAogCiAgICAgc2VhcmNoQ2FuY2Vs
ZWQ6IGZ1bmN0aW9uKCkKQEAgLTEzMiw3ICsxMzIsNyBAQCBXZWJJbnNwZWN0b3IuQ29uc29sZVBh
bmVsLnByb3RvdHlwZSA9IHsKIAogICAgIF9jb25zb2xlTWVzc2FnZUFkZGVkOiBmdW5jdGlvbihl
dmVudCkKICAgICB7Ci0gICAgICAgIGlmICghdGhpcy5fc2VhcmNoUmVnZXggfHwgIXRoaXMudmlz
aWJsZSkKKyAgICAgICAgaWYgKCF0aGlzLl9zZWFyY2hSZWdleCB8fCAhdGhpcy5pc1Nob3dpbmco
KSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgdmFyIG1lc3NhZ2UgPSBldmVudC5kYXRh
OwogICAgICAgICB0aGlzLl9zZWFyY2hSZWdleC5sYXN0SW5kZXggPSAwOwpAQCAtMTQ4LDcgKzE0
OCw3IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB0aGlzLl9jbGVhckN1cnJlbnRTZWFyY2hSZXN1bHRIaWdobGln
aHQoKTsKICAgICAgICAgdGhpcy5fc2VhcmNoUmVzdWx0cy5sZW5ndGggPSAwOwotICAgICAgICBp
ZiAodGhpcy52aXNpYmxlKQorICAgICAgICBpZiAodGhpcy5pc1Nob3dpbmcoKSkKICAgICAgICAg
ICAgIFdlYkluc3BlY3Rvci5zZWFyY2hDb250cm9sbGVyLnVwZGF0ZVNlYXJjaE1hdGNoZXNDb3Vu
dCgwLCB0aGlzKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9Db25zb2xlVmlldy5qcwppbmRleCA4NGQwMTExMDdmOWE2YjQ4ODZmNmZiZTM5OGVm
Y2U5MzY2MjQ0MWJiLi5mNGY4NDMyY2E5ODFhODk1ZDBmYTQ1NTk2ZDYyYjU3MWU0MDk4ODJhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3
LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcu
anMKQEAgLTIyNiw3ICsyMjYsNiBAQCBXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBl
ID0gewogCiAgICAgd2FzU2hvd246IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIFdlYkluc3Bl
Y3Rvci5WaWV3LnByb3RvdHlwZS53YXNTaG93bi5jYWxsKHRoaXMpOwogICAgICAgICBpZiAoIXRo
aXMucHJvbXB0LmlzQ2FyZXRJbnNpZGVQcm9tcHQoKSkKICAgICAgICAgICAgIHRoaXMucHJvbXB0
Lm1vdmVDYXJldFRvRW5kT2ZQcm9tcHQoKTsKICAgICB9LApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db29raWVJdGVtc1ZpZXcuanMgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0Nvb2tpZUl0ZW1zVmlldy5qcwppbmRleCBiZWE4MzY0
NTcyMGM2ZWIzZWViMTI4ODYyNGY3YWZiY2VkZDA2YjFjLi40OGFhMjkzNDE2OWZjNjY3ZTdmNTYy
NTYxMjNhZGMyYzY1MWY3YWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0Nvb2tpZUl0ZW1zVmlldy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0Nvb2tpZUl0ZW1zVmlldy5qcwpAQCAtNTksMTUgKzU5LDEzIEBAIFdlYklu
c3BlY3Rvci5Db29raWVJdGVtc1ZpZXcucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gW3Ro
aXMuX3JlZnJlc2hCdXR0b24uZWxlbWVudCwgdGhpcy5fZGVsZXRlQnV0dG9uLmVsZW1lbnRdOwog
ICAgIH0sCiAKLSAgICBzaG93OiBmdW5jdGlvbihwYXJlbnRFbGVtZW50KQorICAgIHdhc1Nob3du
OiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUu
c2hvdy5jYWxsKHRoaXMsIHBhcmVudEVsZW1lbnQpOwogICAgICAgICB0aGlzLl91cGRhdGUoKTsK
ICAgICB9LAogCi0gICAgaGlkZTogZnVuY3Rpb24oKQorICAgIHdpbGxIaWRlOiBmdW5jdGlvbigp
CiAgICAgewotICAgICAgICBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUuaGlkZS5jYWxsKHRo
aXMpOwogICAgICAgICB0aGlzLl9kZWxldGVCdXR0b24udmlzaWJsZSA9IGZhbHNlOwogICAgIH0s
CiAKQEAgLTEwMiw3ICsxMDAsNyBAQCBXZWJJbnNwZWN0b3IuQ29va2llSXRlbXNWaWV3LnByb3Rv
dHlwZSA9IHsKIAogICAgICAgICB0aGlzLl9jb29raWVzVGFibGUuc2V0Q29va2llcyh0aGlzLl9j
b29raWVzKTsKICAgICAgICAgdGhpcy5fY29va2llc1RhYmxlLmVsZW1lbnQucmVtb3ZlU3R5bGVD
bGFzcygiaGlkZGVuIik7Ci0gICAgICAgIHRoaXMuX2VtcHR5Vmlldy5oaWRlKCk7CisgICAgICAg
IHRoaXMuX2VtcHR5Vmlldy5kZXRhY2goKTsKICAgICAgICAgaWYgKGlzQWR2YW5jZWQpIHsKICAg
ICAgICAgICAgIHRoaXMuX3RyZWVFbGVtZW50LnN1YnRpdGxlID0gU3RyaW5nLnNwcmludGYoV2Vi
SW5zcGVjdG9yLlVJU3RyaW5nKCIlZCBjb29raWVzICglcykiKSwgdGhpcy5fY29va2llcy5sZW5n
dGgsCiAgICAgICAgICAgICAgICAgTnVtYmVyLmJ5dGVzVG9TdHJpbmcodGhpcy5fdG90YWxTaXpl
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTVN0
b3JhZ2VJdGVtc1ZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RP
TVN0b3JhZ2VJdGVtc1ZpZXcuanMKaW5kZXggMTViNGMxYjAxZDIzZmI5NmY5NTEzOTYyMGVhOTBl
M2I5ZTNhNzg5NC4uYjg2OTRmN2MzOTQyOTViZmY2Njk1MzgwODNkMmFkNWEwMjlkN2I5MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9ET01TdG9yYWdlSXRl
bXNWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9NU3Rv
cmFnZUl0ZW1zVmlldy5qcwpAQCAtNTAsMTUgKzUwLDEzIEBAIFdlYkluc3BlY3Rvci5ET01TdG9y
YWdlSXRlbXNWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJuIFt0aGlzLnJlZnJlc2hC
dXR0b24uZWxlbWVudCwgdGhpcy5kZWxldGVCdXR0b24uZWxlbWVudF07CiAgICAgfSwKIAotICAg
IHNob3c6IGZ1bmN0aW9uKHBhcmVudEVsZW1lbnQpCisgICAgd2FzU2hvd246IGZ1bmN0aW9uKCkK
ICAgICB7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZS5zaG93LmNhbGwodGhp
cywgcGFyZW50RWxlbWVudCk7CiAgICAgICAgIHRoaXMudXBkYXRlKCk7CiAgICAgfSwKIAotICAg
IGhpZGU6IGZ1bmN0aW9uKCkKKyAgICB3aWxsSGlkZTogZnVuY3Rpb24oKQogICAgIHsKLSAgICAg
ICAgV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLmhpZGUuY2FsbCh0aGlzKTsKICAgICAgICAg
dGhpcy5kZWxldGVCdXR0b24udmlzaWJsZSA9IGZhbHNlOwogICAgIH0sCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGF0YWJhc2VRdWVyeVZpZXcuanMg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RhdGFiYXNlUXVlcnlWaWV3Lmpz
CmluZGV4IDY5MjA3Y2Y3Njk5OTkzZDFmYTBlMDAyYWEyNjU2ZGE5OGNjNDVkY2UuLmUwNDM1NGMw
ZGFmNmNmYjUxZjgzNzRlMTIwMzYwY2Y4ODIxZWQ5MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGF0YWJhc2VRdWVyeVZpZXcuanMKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EYXRhYmFzZVF1ZXJ5Vmlldy5qcwpAQCAtNTQs
MTAgKzU0LDggQEAgV2ViSW5zcGVjdG9yLkRhdGFiYXNlUXVlcnlWaWV3LkV2ZW50cyA9IHsKIH0K
IAogV2ViSW5zcGVjdG9yLkRhdGFiYXNlUXVlcnlWaWV3LnByb3RvdHlwZSA9IHsKLSAgICBzaG93
OiBmdW5jdGlvbihwYXJlbnRFbGVtZW50KQorICAgIHdhc1Nob3duOiBmdW5jdGlvbigpCiAgICAg
ewotICAgICAgICBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUuc2hvdy5jYWxsKHRoaXMsIHBh
cmVudEVsZW1lbnQpOwotCiAgICAgICAgIGZ1bmN0aW9uIG1vdmVCYWNrSWZPdXRzaWRlKCkKICAg
ICAgICAgewogICAgICAgICAgICAgaWYgKCF0aGlzLnByb21wdC5pc0NhcmV0SW5zaWRlUHJvbXB0
KCkgJiYgd2luZG93LmdldFNlbGVjdGlvbigpLmlzQ29sbGFwc2VkKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EYXRhYmFzZVRhYmxlVmlldy5qcyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGF0YWJhc2VUYWJsZVZpZXcuanMKaW5k
ZXggMThhNWNhYzY0MjNjZGIzZWUwYjAxNDcyYzMyMjExM2RjYmE5N2FmYS4uNTc2ZWNlMzU2ZjFl
MzM0ZjgwZTBhYjQ0OTdiMmFhYWFiNmQ1NmUwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9EYXRhYmFzZVRhYmxlVmlldy5qcworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RhdGFiYXNlVGFibGVWaWV3LmpzCkBAIC00Miw5ICs0
Miw4IEBAIFdlYkluc3BlY3Rvci5EYXRhYmFzZVRhYmxlVmlldyA9IGZ1bmN0aW9uKGRhdGFiYXNl
LCB0YWJsZU5hbWUpCiB9CiAKIFdlYkluc3BlY3Rvci5EYXRhYmFzZVRhYmxlVmlldy5wcm90b3R5
cGUgPSB7Ci0gICAgc2hvdzogZnVuY3Rpb24ocGFyZW50RWxlbWVudCkKKyAgICB3YXNTaG93bjog
ZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLnNo
b3cuY2FsbCh0aGlzLCBwYXJlbnRFbGVtZW50KTsKICAgICAgICAgdGhpcy51cGRhdGUoKTsKICAg
ICB9LAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0Rl
dGFpbGVkSGVhcHNob3RWaWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9EZXRhaWxlZEhlYXBzaG90Vmlldy5qcwppbmRleCBiNWNkYzA5OGQ0ZWU4ZDFlZjBjZjRjZjgy
NjdlMTg4YjE4OTFiZDViLi42ODNmZmE3NWUzODkyOTJlYTMzM2MwOTc4OTM1MDZmYmVkMzk1OWI0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RldGFpbGVk
SGVhcHNob3RWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
RGV0YWlsZWRIZWFwc2hvdFZpZXcuanMKQEAgLTU4Niw3ICs1ODYsNiBAQCBXZWJJbnNwZWN0b3Iu
RGV0YWlsZWRIZWFwc2hvdFZpZXcgPSBmdW5jdGlvbihwYXJlbnQsIHByb2ZpbGUpCiAgICAgdGhp
cy5jb250YWlubWVudERhdGFHcmlkLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0
aGlzLl9tb3VzZUNsaWNrSW5Db250ZW50c0dyaWQuYmluZCh0aGlzKSwgdHJ1ZSk7CiAgICAgdGhp
cy5jb250YWlubWVudERhdGFHcmlkLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3du
IiwgdGhpcy5fbW91c2VEb3duSW5Db250ZW50c0dyaWQuYmluZCh0aGlzKSwgdHJ1ZSk7CiAgICAg
dGhpcy5jb250YWlubWVudFZpZXcuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLmNvbnRhaW5tZW50
RGF0YUdyaWQuZWxlbWVudCk7Ci0gICAgdGhpcy52aWV3c0NvbnRhaW5lci5hcHBlbmRDaGlsZCh0
aGlzLmNvbnRhaW5tZW50Vmlldy5lbGVtZW50KTsKIAogICAgIHRoaXMuY29uc3RydWN0b3JzVmll
dyA9IG5ldyBXZWJJbnNwZWN0b3IuVmlldygpOwogICAgIHRoaXMuY29uc3RydWN0b3JzVmlldy5l
bGVtZW50LmFkZFN0eWxlQ2xhc3MoInZpZXciKTsKQEAgLTU5NCwxNCArNTkzLDEyIEBAIFdlYklu
c3BlY3Rvci5EZXRhaWxlZEhlYXBzaG90VmlldyA9IGZ1bmN0aW9uKHBhcmVudCwgcHJvZmlsZSkK
ICAgICB0aGlzLmNvbnN0cnVjdG9yc0RhdGFHcmlkLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigi
Y2xpY2siLCB0aGlzLl9tb3VzZUNsaWNrSW5Db250ZW50c0dyaWQuYmluZCh0aGlzKSwgdHJ1ZSk7
CiAgICAgdGhpcy5jb25zdHJ1Y3RvcnNEYXRhR3JpZC5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIo
Im1vdXNlZG93biIsIHRoaXMuX21vdXNlRG93bkluQ29udGVudHNHcmlkLmJpbmQodGhpcyksIHRy
dWUpOwogICAgIHRoaXMuY29uc3RydWN0b3JzVmlldy5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMu
Y29uc3RydWN0b3JzRGF0YUdyaWQuZWxlbWVudCk7Ci0gICAgdGhpcy52aWV3c0NvbnRhaW5lci5h
cHBlbmRDaGlsZCh0aGlzLmNvbnN0cnVjdG9yc1ZpZXcuZWxlbWVudCk7CiAKICAgICB0aGlzLmRp
ZmZWaWV3ID0gbmV3IFdlYkluc3BlY3Rvci5WaWV3KCk7CiAgICAgdGhpcy5kaWZmVmlldy5lbGVt
ZW50LmFkZFN0eWxlQ2xhc3MoInZpZXciKTsKICAgICB0aGlzLmRpZmZEYXRhR3JpZCA9IG5ldyBX
ZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90RGlmZkRhdGFHcmlkKCk7CiAgICAgdGhpcy5kaWZmRGF0
YUdyaWQuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuX21vdXNlQ2xpY2tJ
bkNvbnRlbnRzR3JpZC5iaW5kKHRoaXMpLCB0cnVlKTsKICAgICB0aGlzLmRpZmZWaWV3LmVsZW1l
bnQuYXBwZW5kQ2hpbGQodGhpcy5kaWZmRGF0YUdyaWQuZWxlbWVudCk7Ci0gICAgdGhpcy52aWV3
c0NvbnRhaW5lci5hcHBlbmRDaGlsZCh0aGlzLmRpZmZWaWV3LmVsZW1lbnQpOwogCiAgICAgdGhp
cy5kb21pbmF0b3JWaWV3ID0gbmV3IFdlYkluc3BlY3Rvci5WaWV3KCk7CiAgICAgdGhpcy5kb21p
bmF0b3JWaWV3LmVsZW1lbnQuYWRkU3R5bGVDbGFzcygidmlldyIpOwpAQCAtNjA5LDcgKzYwNiw2
IEBAIFdlYkluc3BlY3Rvci5EZXRhaWxlZEhlYXBzaG90VmlldyA9IGZ1bmN0aW9uKHBhcmVudCwg
cHJvZmlsZSkKICAgICB0aGlzLmRvbWluYXRvckRhdGFHcmlkLmVsZW1lbnQuYWRkRXZlbnRMaXN0
ZW5lcigiY2xpY2siLCB0aGlzLl9tb3VzZUNsaWNrSW5Db250ZW50c0dyaWQuYmluZCh0aGlzKSwg
dHJ1ZSk7CiAgICAgdGhpcy5kb21pbmF0b3JEYXRhR3JpZC5lbGVtZW50LmFkZEV2ZW50TGlzdGVu
ZXIoIm1vdXNlZG93biIsIHRoaXMuX21vdXNlRG93bkluQ29udGVudHNHcmlkLmJpbmQodGhpcyks
IHRydWUpOwogICAgIHRoaXMuZG9taW5hdG9yVmlldy5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMu
ZG9taW5hdG9yRGF0YUdyaWQuZWxlbWVudCk7Ci0gICAgdGhpcy52aWV3c0NvbnRhaW5lci5hcHBl
bmRDaGlsZCh0aGlzLmRvbWluYXRvclZpZXcuZWxlbWVudCk7CiAKICAgICB0aGlzLnJldGFpbm1l
bnRWaWV3SGVhZGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgICAgdGhpcy5y
ZXRhaW5tZW50Vmlld0hlYWRlci5hZGRTdHlsZUNsYXNzKCJyZXRhaW5lcnMtdmlldy1oZWFkZXIi
KTsKQEAgLTczOSw5ICs3MzUsOCBAQCBXZWJJbnNwZWN0b3IuRGV0YWlsZWRIZWFwc2hvdFZpZXcu
cHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gdGhpcy5iYXNlUHJvZmlsZS5wcm94eTsKICAg
ICB9LAogCi0gICAgc2hvdzogZnVuY3Rpb24ocGFyZW50RWxlbWVudCkKKyAgICB3YXNTaG93bjog
ZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLnNo
b3cuY2FsbCh0aGlzLCBwYXJlbnRFbGVtZW50KTsKICAgICAgICAgaWYgKCF0aGlzLnByb2ZpbGVX
cmFwcGVyLmxvYWRlZCkKICAgICAgICAgICAgIHRoaXMuX2xvYWRQcm9maWxlKHRoaXMuX3Byb2Zp
bGVVaWQsIHByb2ZpbGVDYWxsYmFjazEuYmluZCh0aGlzKSk7CiAgICAgICAgIGVsc2UKQEAgLTc2
MCw5ICs3NTUsOCBAQCBXZWJJbnNwZWN0b3IuRGV0YWlsZWRIZWFwc2hvdFZpZXcucHJvdG90eXBl
ID0gewogICAgICAgICB9CiAgICAgfSwKIAotICAgIGhpZGU6IGZ1bmN0aW9uKCkKKyAgICB3aWxs
SGlkZTogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90
eXBlLmhpZGUuY2FsbCh0aGlzKTsKICAgICAgICAgdGhpcy5fY3VycmVudFNlYXJjaFJlc3VsdElu
ZGV4ID0gLTE7CiAgICAgfSwKIApAQCAtMTA2OCw3ICsxMDYyLDcgQEAgV2ViSW5zcGVjdG9yLkRl
dGFpbGVkSGVhcHNob3RWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHJldHVybjsKIAog
ICAgICAgICB0aGlzLnZpZXdzLmN1cnJlbnQgPSBldmVudC50YXJnZXQuc2VsZWN0ZWRJbmRleDsK
LSAgICAgICAgdGhpcy5jdXJyZW50Vmlldy5oaWRlKCk7CisgICAgICAgIHRoaXMuY3VycmVudFZp
ZXcuZGV0YWNoKCk7CiAgICAgICAgIHZhciB2aWV3ID0gdGhpcy52aWV3c1t0aGlzLnZpZXdzLmN1
cnJlbnRdOwogICAgICAgICB0aGlzLmN1cnJlbnRWaWV3ID0gdmlldy52aWV3OwogICAgICAgICB0
aGlzLmRhdGFHcmlkID0gdmlldy5ncmlkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9EcmF3ZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0RyYXdlci5qcwppbmRleCBjODM2N2NmZjY4NGExZTlhYmYzYjk5ZTI1MDg0ZGI0NGI2
NzRlMzQ0Li42YWRlZjcyOGY0ZWMxMzRlYmU3NjYzMDQyZDIzMzJjMDc2NDE4ZWZmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RyYXdlci5qcworKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RyYXdlci5qcwpAQCAtODgsNiArODgs
NyBAQCBXZWJJbnNwZWN0b3IuRHJhd2VyLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHRoaXMu
X3ZpZXdTdGF0dXNCYXIuYXBwZW5kQ2hpbGQoc3RhdHVzQmFySXRlbXNbaV0pOwogCiAgICAgICAg
IGRvY3VtZW50LmJvZHkuYWRkU3R5bGVDbGFzcygiZHJhd2VyLXZpc2libGUiKTsKKyAgICAgICAg
dGhpcy5fdmlldy5tYXJrQXNSb290KCk7CiAgICAgICAgIHRoaXMuX3ZpZXcuc2hvdyh0aGlzLl9k
cmF3ZXJDb250ZW50c0VsZW1lbnQpOwogCiAgICAgICAgIGlmIChkcmF3ZXJXYXNWaXNpYmxlKQpA
QCAtMTczLDcgKzE3NCw2IEBAIFdlYkluc3BlY3Rvci5EcmF3ZXIucHJvdG90eXBlID0gewogICAg
ICAgICAgICAgICAgIHRoaXMuX2NvdW50ZXJzLmluc2VydEJlZm9yZSh0aGlzLl9jdXJyZW50UGFu
ZWxDb3VudGVycywgdGhpcy5fY291bnRlcnMuZmlyc3RDaGlsZCk7CiAgICAgICAgICAgICB9CiAK
LSAgICAgICAgICAgIHRoaXMuX3ZpZXcuaGlkZSgpOwogICAgICAgICAgICAgdGhpcy5fZHJhd2Vy
Q29udGVudHNFbGVtZW50LnJlbW92ZUNoaWxkcmVuKCk7CiAgICAgICAgICAgICBkZWxldGUgdGhp
cy5fdmlldzsKICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlU3R5bGVDbGFzcygiZHJh
d2VyLXZpc2libGUiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvRWxlbWVudHNQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvRWxlbWVudHNQYW5lbC5qcwppbmRleCBhYTZkZWQwYThlMDkwNjAwMGVjZGU1ZGI3YjcwNGE3
MjExMGQ5OTQ2Li5jODBiNjc2YWEwZmVjNGRjZjY3NWRlMWUyNDJhOTEwMzQ1OTkyMTMzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwu
anMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1BhbmVs
LmpzCkBAIC0xMjQsMTMgKzEyNCwxNCBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90
b3R5cGUgPSB7CiAgICAgICAgIHRoaXMudXBkYXRlQnJlYWRjcnVtYlNpemVzKCk7CiAgICAgfSwK
IAotICAgIHNob3c6IGZ1bmN0aW9uKCkKKyAgICB3YXNTaG93bjogZnVuY3Rpb24oKQogICAgIHsK
KyAgICAgICAgV2ViSW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZS53YXNTaG93bi5jYWxsKHRoaXMp
OworCiAgICAgICAgIC8vIEF0dGFjaCBoZWF2eSBjb21wb25lbnQgbGF6aWx5CiAgICAgICAgIGlm
ICh0aGlzLnRyZWVPdXRsaW5lLmVsZW1lbnQucGFyZW50RWxlbWVudCAhPT0gdGhpcy5jb250ZW50
RWxlbWVudCkKICAgICAgICAgICAgIHRoaXMuY29udGVudEVsZW1lbnQuYXBwZW5kQ2hpbGQodGhp
cy50cmVlT3V0bGluZS5lbGVtZW50KTsKIAotICAgICAgICBXZWJJbnNwZWN0b3IuUGFuZWwucHJv
dG90eXBlLnNob3cuY2FsbCh0aGlzKTsKICAgICAgICAgdGhpcy5zaWRlYmFyUmVzaXplRWxlbWVu
dC5zdHlsZS5yaWdodCA9ICh0aGlzLnNpZGViYXJFbGVtZW50Lm9mZnNldFdpZHRoIC0gMykgKyAi
cHgiOwogICAgICAgICB0aGlzLnVwZGF0ZUJyZWFkY3J1bWIoKTsKICAgICAgICAgdGhpcy50cmVl
T3V0bGluZS51cGRhdGVTZWxlY3Rpb24oKTsKQEAgLTE0MCwxNiArMTQxLDE2IEBAIFdlYkluc3Bl
Y3Rvci5FbGVtZW50c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHRoaXMuc2lkZWJh
ckVsZW1lbnQuaW5zZXJ0QmVmb3JlKHRoaXMuc2lkZWJhclBhbmVzLmRvbUJyZWFrcG9pbnRzLmVs
ZW1lbnQsIHRoaXMuc2lkZWJhclBhbmVzLmV2ZW50TGlzdGVuZXJzLmVsZW1lbnQpOwogICAgIH0s
CiAKLSAgICBoaWRlOiBmdW5jdGlvbigpCisgICAgd2lsbEhpZGU6IGZ1bmN0aW9uKCkKICAgICB7
Ci0gICAgICAgIFdlYkluc3BlY3Rvci5QYW5lbC5wcm90b3R5cGUuaGlkZS5jYWxsKHRoaXMpOwot
CiAgICAgICAgIFdlYkluc3BlY3Rvci5kb21BZ2VudC5oaWRlRE9NTm9kZUhpZ2hsaWdodCgpOwog
ICAgICAgICB0aGlzLnNldFNlYXJjaGluZ0Zvck5vZGUoZmFsc2UpOwogICAgICAgICB0aGlzLnRy
ZWVPdXRsaW5lLnNldFZpc2libGUoZmFsc2UpOwogCiAgICAgICAgIC8vIERldGFjaCBoZWF2eSBj
b21wb25lbnQgb24gaGlkZQogICAgICAgICB0aGlzLmNvbnRlbnRFbGVtZW50LnJlbW92ZUNoaWxk
KHRoaXMudHJlZU91dGxpbmUuZWxlbWVudCk7CisKKyAgICAgICAgV2ViSW5zcGVjdG9yLlBhbmVs
LnByb3RvdHlwZS53aWxsSGlkZS5jYWxsKHRoaXMpOwogICAgIH0sCiAKICAgICBvblJlc2l6ZTog
ZnVuY3Rpb24oKQpAQCAtNDA2LDcgKzQwNyw3IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1BhbmVs
LnByb3RvdHlwZSA9IHsKIAogICAgIF9ub2RlUmVtb3ZlZDogZnVuY3Rpb24oZXZlbnQpCiAgICAg
ewotICAgICAgICBpZiAoIXRoaXMudmlzaWJsZSkKKyAgICAgICAgaWYgKCF0aGlzLmlzU2hvd2lu
ZygpKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIHZhciBjcnVtYnMgPSB0aGlzLmNy
dW1ic0VsZW1lbnQ7CkBAIC00NjEsNyArNDYyLDcgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFu
ZWwucHJvdG90eXBlID0gewogICAgICAqLwogICAgIHVwZGF0ZUJyZWFkY3J1bWI6IGZ1bmN0aW9u
KGZvcmNlVXBkYXRlKQogICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLnZpc2libGUpCisgICAgICAg
IGlmICghdGhpcy5pc1Nob3dpbmcoKSkKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICB2
YXIgY3J1bWJzID0gdGhpcy5jcnVtYnNFbGVtZW50OwpAQCAtNTg4LDcgKzU4OSw3IEBAIFdlYklu
c3BlY3Rvci5FbGVtZW50c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAgICB1cGRhdGVC
cmVhZGNydW1iU2l6ZXM6IGZ1bmN0aW9uKGZvY3VzZWRDcnVtYikKICAgICB7Ci0gICAgICAgIGlm
ICghdGhpcy52aXNpYmxlKQorICAgICAgICBpZiAoIXRoaXMuaXNTaG93aW5nKCkpCiAgICAgICAg
ICAgICByZXR1cm47CiAKICAgICAgICAgaWYgKGRvY3VtZW50LmJvZHkub2Zmc2V0V2lkdGggPD0g
MCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbXB0
eVZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VtcHR5Vmlldy5q
cwppbmRleCBmOTg2NjEyZDk5ODAwZWNjYWVkYmFiZGUxYWU0ZjBmMDA1MDcxZWE3Li4xZDQ0Yzhh
YzQwYmM4MzU0NmIwNmRkYTVjNTBhNTJhNThlZjU5YTUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VtcHR5Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VtcHR5Vmlldy5qcwpAQCAtMzksMTMgKzM5LDggQEAgV2Vi
SW5zcGVjdG9yLkVtcHR5VmlldyA9IGZ1bmN0aW9uKHRleHQpCiB9CiAKIFdlYkluc3BlY3Rvci5F
bXB0eVZpZXcucHJvdG90eXBlID0gewotICAgIC8qKgotICAgICAqIEBwYXJhbSB7RWxlbWVudH0g
cGFyZW50RWxlbWVudAotICAgICAqLwotICAgIHNob3c6IGZ1bmN0aW9uKHBhcmVudEVsZW1lbnQp
CisgICAgd2FzU2hvd246IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5W
aWV3LnByb3RvdHlwZS5zaG93LmNhbGwodGhpcywgcGFyZW50RWxlbWVudCk7Ci0KICAgICAgICAg
dGhpcy5lbGVtZW50LmNsYXNzTmFtZSA9ICJzdG9yYWdlLWVtcHR5LXZpZXciOwogICAgICAgICB0
aGlzLmVsZW1lbnQudGV4dENvbnRlbnQgPSB0aGlzLl90ZXh0OwogICAgIH0sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ZvbnRWaWV3LmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Gb250Vmlldy5qcwppbmRleCA3NjBjNzVhMTgx
MGI2NzdhNmJkNWRjOTc1MDBmZTcwZjYzZjBhMTE2Li4zMWJjY2Y1N2ZiZWNjNDI2ODUwM2UxNzlk
YTQ4OWZhYjI0N2Y2YTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0ZvbnRWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvRm9udFZpZXcuanMKQEAgLTc3LDkgKzc3LDggQEAgV2ViSW5zcGVjdG9yLkZvbnRWaWV3LnBy
b3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuZm9udFBy
ZXZpZXdFbGVtZW50KTsKICAgICB9LAogCi0gICAgc2hvdzogZnVuY3Rpb24ocGFyZW50RWxlbWVu
dCkKKyAgICB3YXNTaG93bjogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgV2ViSW5zcGVjdG9y
LlJlc291cmNlVmlldy5wcm90b3R5cGUuc2hvdy5jYWxsKHRoaXMsIHBhcmVudEVsZW1lbnQpOwog
ICAgICAgICB0aGlzLl9jcmVhdGVDb250ZW50SWZOZWVkZWQoKTsKIAogICAgICAgICB0aGlzLnVw
ZGF0ZUZvbnRQcmV2aWV3U2l6ZSgpOwpAQCAtMTA5LDcgKzEwOCw3IEBAIFdlYkluc3BlY3Rvci5G
b250Vmlldy5wcm90b3R5cGUgPSB7CiAKICAgICB1cGRhdGVGb250UHJldmlld1NpemU6IGZ1bmN0
aW9uKCkKICAgICB7Ci0gICAgICAgIGlmICghdGhpcy5mb250UHJldmlld0VsZW1lbnQgfHwgIXRo
aXMudmlzaWJsZSkKKyAgICAgICAgaWYgKCF0aGlzLmZvbnRQcmV2aWV3RWxlbWVudCB8fCAhdGhp
cy5pc1Nob3dpbmcoKSkKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICB0aGlzLmZvbnRQ
cmV2aWV3RWxlbWVudC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgidmlzaWJpbGl0eSIpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9JRnJhbWVWaWV3LmpzIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9JRnJhbWVWaWV3LmpzCmluZGV4IGUy
MTAxZjcxNGUwM2MxNTM5M2NiZGQ4MDNlNGIwMGQ0OWZjZGU1ZmYuLjZkZjZhOWViZDhmNmQwY2Uy
NDY0YmQ2N2I1NWYxZjFlYTI0ZWY0NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvSUZyYW1lVmlldy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0lGcmFtZVZpZXcuanMKQEAgLTM4LDM2ICszOCwxMiBAQCBXZWJJbnNwZWN0
b3IuSUZyYW1lVmlldyA9IGZ1bmN0aW9uKHNyYywgY2xhc3NOYW1lKQogewogICAgIFdlYkluc3Bl
Y3Rvci5WaWV3LmNhbGwodGhpcyk7CiAgICAgdGhpcy5lbGVtZW50LmNsYXNzTmFtZSA9ICJmaWxs
IjsKLSAgICB0aGlzLl9zcmMgPSBzcmM7Ci0gICAgdGhpcy5fY2xhc3NOYW1lID0gY2xhc3NOYW1l
OwotfQotCi1XZWJJbnNwZWN0b3IuSUZyYW1lVmlldy5wcm90b3R5cGUgPSB7Ci0gICAgd2lsbERl
dGFjaDogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX2lmcmFtZSkgewotICAg
ICAgICAgICAgaWYgKCFXZWJJbnNwZWN0b3IuSUZyYW1lVmlldy5fcGFyZW50SWZyYW1lKSB7Ci0g
ICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLklGcmFtZVZpZXcuX3BhcmVudElmcmFtZSA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOwotICAgICAgICAgICAgICAgIFdlYkluc3Bl
Y3Rvci5JRnJhbWVWaWV3Ll9wYXJlbnRJZnJhbWUuc3R5bGUuZGlzcGxheSA9ICJub25lIjsKLSAg
ICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKFdlYkluc3BlY3Rvci5JRnJh
bWVWaWV3Ll9wYXJlbnRJZnJhbWUpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgV2ViSW5z
cGVjdG9yLklGcmFtZVZpZXcuX3BhcmVudElmcmFtZS5jb250ZW50RG9jdW1lbnQuYWRvcHROb2Rl
KHRoaXMuX2lmcmFtZSk7Ci0gICAgICAgICAgICBXZWJJbnNwZWN0b3IuSUZyYW1lVmlldy5fcGFy
ZW50SWZyYW1lLmNvbnRlbnREb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMuX2lmcmFtZSk7
Ci0gICAgICAgIH0KLSAgICB9LAotCi0gICAgb25JbnNlcnRlZEludG9Eb2N1bWVudDogZnVuY3Rp
b24oKQotICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLl9pZnJhbWUpIHsKLSAgICAgICAgICAgIHRo
aXMuX2lmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOwotICAgICAgICAg
ICAgdGhpcy5faWZyYW1lLnNyYyA9IHRoaXMuX3NyYzsKLSAgICAgICAgICAgIGlmICh0aGlzLl9j
bGFzc05hbWUpCi0gICAgICAgICAgICAgICAgdGhpcy5faWZyYW1lLmNsYXNzTmFtZSA9IHRoaXMu
X2NsYXNzTmFtZTsKLSAgICAgICAgfQogCi0gICAgICAgIGRvY3VtZW50LmFkb3B0Tm9kZSh0aGlz
Ll9pZnJhbWUpOwotICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5faWZyYW1l
KTsKLSAgICB9CisgICAgdGhpcy5faWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZy
YW1lIik7CisgICAgdGhpcy5faWZyYW1lLnNyYyA9IHNyYzsKKyAgICBpZiAoY2xhc3NOYW1lKQor
ICAgICAgICB0aGlzLl9pZnJhbWUuY2xhc3NOYW1lID0gY2xhc3NOYW1lOworICAgIHRoaXMuZWxl
bWVudC5hcHBlbmRDaGlsZCh0aGlzLl9pZnJhbWUpOwogfQogCiBXZWJJbnNwZWN0b3IuSUZyYW1l
Vmlldy5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9JbWFnZVZpZXcu
anMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ltYWdlVmlldy5qcwppbmRl
eCA3MGZlMDQyOWIzYzg3NzU0NmIzN2VkYmI1ODZmMzliMGYxN2E2YmJhLi5mMGJmZjFjY2MyZWZi
ZDQ1ZDVhNWU1MTZkMWFjZTdhMTQzYzMxMDgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0ltYWdlVmlldy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0ltYWdlVmlldy5qcwpAQCAtNDMsOSArNDMsOCBAQCBXZWJJbnNwZWN0
b3IuSW1hZ2VWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfSwK
IAotICAgIHNob3c6IGZ1bmN0aW9uKHBhcmVudEVsZW1lbnQpCisgICAgd2FzU2hvd246IGZ1bmN0
aW9uKCkKICAgICB7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5SZXNvdXJjZVZpZXcucHJvdG90eXBl
LnNob3cuY2FsbCh0aGlzLCBwYXJlbnRFbGVtZW50KTsKICAgICAgICAgdGhpcy5fY3JlYXRlQ29u
dGVudElmTmVlZGVkKCk7CiAgICAgfSwKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrSXRlbVZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtJdGVtVmlldy5qcwppbmRleCAzMTU3ZGE2ZDI5YmFlM2U1
YjIxNjA3ZGZlZTViNGQwOGM5M2E3NmI3Li42ZjY2MTdmZjUxYjk1NmRmMDU4YmI1ZDk3MTlmZmFm
MGM3MWYxNjBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L05ldHdvcmtJdGVtVmlldy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL05ldHdvcmtJdGVtVmlldy5qcwpAQCAtNjEsOSArNjEsOSBAQCBXZWJJbnNwZWN0b3IuTmV0
d29ya0l0ZW1WaWV3ID0gZnVuY3Rpb24ocmVzb3VyY2UpCiB9CiAKIFdlYkluc3BlY3Rvci5OZXR3
b3JrSXRlbVZpZXcucHJvdG90eXBlID0gewotICAgIHNob3c6IGZ1bmN0aW9uKHBhcmVudEVsZW1l
bnQpCisgICAgd2FzU2hvd246IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIFdlYkluc3BlY3Rv
ci5UYWJiZWRQYW5lLnByb3RvdHlwZS5zaG93LmNhbGwodGhpcywgcGFyZW50RWxlbWVudCk7Cisg
ICAgICAgIFdlYkluc3BlY3Rvci5UYWJiZWRQYW5lLnByb3RvdHlwZS53YXNTaG93bi5jYWxsKCk7
CiAgICAgICAgIHRoaXMuX3NlbGVjdFRhYigpOwogICAgIH0sCiAKQEAgLTExNiwxOSArMTE2LDEx
IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZUNvbnRlbnRWaWV3LnByb3RvdHlwZSA9IHsKICAgICAg
ICAgdGhpcy5faW5uZXJWaWV3ID0gaW5uZXJWaWV3OwogICAgIH0sCiAKLSAgICBzaG93OiBmdW5j
dGlvbihwYXJlbnRFbGVtZW50KQorICAgIHdhc1Nob3duOiBmdW5jdGlvbigpCiAgICAgewotICAg
ICAgICBXZWJJbnNwZWN0b3IuUmVzb3VyY2VWaWV3LnByb3RvdHlwZS5zaG93LmNhbGwodGhpcywg
cGFyZW50RWxlbWVudCk7CiAgICAgICAgIHRoaXMuX2Vuc3VyZUlubmVyVmlld1Nob3duKCk7CiAg
ICAgfSwKIAotICAgIGhpZGU6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIGlmICh0aGlzLl9p
bm5lclZpZXcpCi0gICAgICAgICAgICB0aGlzLl9pbm5lclZpZXcuaGlkZSgpOwotICAgICAgICBX
ZWJJbnNwZWN0b3IuUmVzb3VyY2VWaWV3LnByb3RvdHlwZS5oaWRlLmNhbGwodGhpcyk7Ci0gICAg
fSwKLQogICAgIF9lbnN1cmVJbm5lclZpZXdTaG93bjogZnVuY3Rpb24oKQogICAgIHsKICAgICAg
ICAgaWYgKHRoaXMuX2lubmVyVmlld1Nob3dSZXF1ZXN0ZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtQYW5lbC5qcyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya1BhbmVsLmpzCmluZGV4IGVkOGU3NjU1NDg0
NWFhMGFlYzkwYWRjZThiNGU1ZjY4MzBiOTQ5MzIuLjgzYzgzZTZiMzFhNWQ1OTBmYWVjZGQ4MDc5
MjMzOGIzM2JkYmM5MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvTmV0d29ya1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvTmV0d29ya1BhbmVsLmpzCkBAIC01MDYsNyArNTA2LDcgQEAgV2ViSW5zcGVjdG9yLk5l
dHdvcmtMb2dWaWV3LnByb3RvdHlwZSA9IHsKIAogICAgICAgICB0aGlzLl9uZWVkc1JlZnJlc2gg
PSB0cnVlOwogCi0gICAgICAgIGlmICh0aGlzLnZpc2libGUgJiYgISgiX3JlZnJlc2hUaW1lb3V0
IiBpbiB0aGlzKSkKKyAgICAgICAgaWYgKHRoaXMuaXNTaG93aW5nKCkgJiYgIXRoaXMuX3JlZnJl
c2hUaW1lb3V0KQogICAgICAgICAgICAgdGhpcy5fcmVmcmVzaFRpbWVvdXQgPSBzZXRUaW1lb3V0
KHRoaXMucmVmcmVzaC5iaW5kKHRoaXMpLCB0aGlzLl9kZWZhdWx0UmVmcmVzaERlbGF5KTsKICAg
ICB9LAogCkBAIC01MjQsNyArNTI0LDcgQEAgV2ViSW5zcGVjdG9yLk5ldHdvcmtMb2dWaWV3LnBy
b3RvdHlwZSA9IHsKICAgICAgICAgfQogCiAgICAgICAgIHZhciBwcm9jZWVkID0gdHJ1ZTsKLSAg
ICAgICAgaWYgKCF0aGlzLnZpc2libGUpIHsKKyAgICAgICAgaWYgKCF0aGlzLmlzU2hvd2luZygp
KSB7CiAgICAgICAgICAgICB0aGlzLl9zY2hlZHVsZVJlZnJlc2goKTsKICAgICAgICAgICAgIHBy
b2NlZWQgPSBmYWxzZTsKICAgICAgICAgfSBlbHNlCkBAIC02NDYsMjAgKzY0NiwxOCBAQCBXZWJJ
bnNwZWN0b3IuTmV0d29ya0xvZ1ZpZXcucHJvdG90eXBlID0gewogCiAgICAgd2FzU2hvd246IGZ1
bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZS53YXNT
aG93bi5jYWxsKHRoaXMpOwogICAgICAgICB0aGlzLl9yZWZyZXNoSWZOZWVkZWQoKTsKICAgICB9
LAogCiAgICAgd2lsbEhpZGU6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIFdlYkluc3BlY3Rv
ci5WaWV3LnByb3RvdHlwZS53aWxsSGlkZS5jYWxsKHRoaXMpOwogICAgICAgICB0aGlzLl9wb3Bv
dmVySGVscGVyLmhpZGVQb3BvdmVyKCk7CiAgICAgfSwKIAogICAgIHJlZnJlc2g6IGZ1bmN0aW9u
KCkKICAgICB7CiAgICAgICAgIHRoaXMuX25lZWRzUmVmcmVzaCA9IGZhbHNlOwotICAgICAgICBp
ZiAoIl9yZWZyZXNoVGltZW91dCIgaW4gdGhpcykgeworICAgICAgICBpZiAodGhpcy5fcmVmcmVz
aFRpbWVvdXQpIHsKICAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLl9yZWZyZXNoVGltZW91
dCk7CiAgICAgICAgICAgICBkZWxldGUgdGhpcy5fcmVmcmVzaFRpbWVvdXQ7CiAgICAgICAgIH0K
QEAgLTEyOTcsOSArMTI5NSw5IEBAIFdlYkluc3BlY3Rvci5OZXR3b3JrUGFuZWwucHJvdG90eXBl
ID0gewogICAgICAgICBXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBlLmhhbmRsZVNob3J0Y3V0
LmNhbGwodGhpcywgZXZlbnQpOwogICAgIH0sCiAKLSAgICBzaG93OiBmdW5jdGlvbigpCisgICAg
d2FzU2hvd246IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5QYW5lbC5w
cm90b3R5cGUuc2hvdy5jYWxsKHRoaXMpOworICAgICAgICBXZWJJbnNwZWN0b3IuUGFuZWwucHJv
dG90eXBlLndhc1Nob3duLmNhbGwodGhpcyk7CiAgICAgICAgIHRoaXMuX25ldHdvcmtMb2dWaWV3
LnNob3codGhpcy5zaWRlYmFyRWxlbWVudCk7CiAgICAgfSwKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9QYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvUGFuZWwuanMKaW5kZXggOTk2ZTEyOGIwMGU1OTU2ODBhZWEzMDZm
NjA2MTRmODVkNWUzYjY2ZC4uZDg4MjMxZWQ2MGY3MjMwYTg4YzNlMWYwODcwNTFmMDkwMDdmMDlk
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9QYW5lbC5q
cworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1BhbmVsLmpzCkBAIC00
MSw3ICs0MSw2IEBAIFdlYkluc3BlY3Rvci5QYW5lbCA9IGZ1bmN0aW9uKG5hbWUpCiAgICAgdGhp
cy5fc2hvcnRjdXRzID0ge307CiAKICAgICBXZWJJbnNwZWN0b3Iuc2V0dGluZ3NbdGhpcy5fc2lk
ZWJhcldpZHRoU2V0dGluZ05hbWUoKV0gPSBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MuY3JlYXRlU2V0
dGluZyh0aGlzLl9zaWRlYmFyV2lkdGhTZXR0aW5nTmFtZSgpLCB1bmRlZmluZWQpOwotICAgIHRo
aXMuX2hpZGVPbkRldGFjaCA9IGZhbHNlOwogfQogCiAvLyBTaG91bGQgYnkgaW4gc3luYyB3aXRo
IHN0eWxlIGRlY2xhcmF0aW9ucy4KQEAgLTYyLDE4ICs2MSwxMyBAQCBXZWJJbnNwZWN0b3IuUGFu
ZWwucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gdGhpcy5fcGFuZWxOYW1lOwogICAgIH0s
CiAKLSAgICBzZXRIaWRlT25EZXRhY2g6IGZ1bmN0aW9uKCkKKyAgICBzaG93OiBmdW5jdGlvbigp
CiAgICAgewotICAgICAgICB0aGlzLl9oaWRlT25EZXRhY2ggPSB0cnVlOworICAgICAgICBXZWJJ
bnNwZWN0b3IuVmlldy5wcm90b3R5cGUuc2hvdy5jYWxsKHRoaXMsIFdlYkluc3BlY3Rvci5tYWlu
UGFuZWxzVmlldy5lbGVtZW50KTsKICAgICB9LAogCi0gICAgc2hvdzogZnVuY3Rpb24oKQorICAg
IHdhc1Nob3duOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBpZiAoIVdlYkluc3BlY3Rvci5Q
YW5lbC5fbWFpblBhbmVsc0VsZW1lbnQpCi0gICAgICAgICAgICBXZWJJbnNwZWN0b3IuUGFuZWwu
X21haW5QYW5lbHNFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4tcGFuZWxz
Iik7Ci0gICAgCi0gICAgICAgIFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZS5zaG93LmNhbGwo
dGhpcywgV2ViSW5zcGVjdG9yLlBhbmVsLl9tYWluUGFuZWxzRWxlbWVudCk7Ci0KICAgICAgICAg
dmFyIHN0YXR1c0Jhckl0ZW1zID0gdGhpcy5zdGF0dXNCYXJJdGVtczsKICAgICAgICAgaWYgKHN0
YXR1c0Jhckl0ZW1zKSB7CiAgICAgICAgICAgICB0aGlzLl9zdGF0dXNCYXJJdGVtQ29udGFpbmVy
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CkBAIC05MSwxMyArODUsOCBAQCBXZWJJ
bnNwZWN0b3IuUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICBXZWJJbnNwZWN0b3IuZXh0ZW5z
aW9uU2VydmVyLm5vdGlmeVBhbmVsU2hvd24odGhpcy5uYW1lKTsKICAgICB9LAogCi0gICAgZGV0
YWNoOiBmdW5jdGlvbigpCisgICAgd2lsbEhpZGU6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAg
IGlmICh0aGlzLl9oaWRlT25EZXRhY2gpCi0gICAgICAgICAgICB0aGlzLmhpZGUoKTsKLSAgICAg
ICAgZWxzZQotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLmRldGFjaC5j
YWxsKHRoaXMpOwotCiAgICAgICAgIGlmICh0aGlzLl9zdGF0dXNCYXJJdGVtQ29udGFpbmVyICYm
IHRoaXMuX3N0YXR1c0Jhckl0ZW1Db250YWluZXIucGFyZW50Tm9kZSkKICAgICAgICAgICAgIHRo
aXMuX3N0YXR1c0Jhckl0ZW1Db250YWluZXIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLl9z
dGF0dXNCYXJJdGVtQ29udGFpbmVyKTsKICAgICAgICAgZGVsZXRlIHRoaXMuX3N0YXR1c0Jhckl0
ZW1Db250YWluZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1BhbmVsRW5hYmxlclZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1BhbmVsRW5hYmxlclZpZXcuanMKaW5kZXggNDU5ZTBjY2M5YmFlNGQzZGUyNDg0NjJkOTFm
NzU1ODEzNTRmZjFmNC4uM2VmMGMwYzBkMjUwYjc4MGMyOTI4MTg4NTExMjkyYTJmMDAzOTE1NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9QYW5lbEVuYWJs
ZXJWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUGFuZWxF
bmFibGVyVmlldy5qcwpAQCAtODMsMTMgKzgzLDYgQEAgV2ViSW5zcGVjdG9yLlBhbmVsRW5hYmxl
clZpZXcucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVy
cygiZW5hYmxlIGNsaWNrZWQiKTsKICAgICB9LAogCi0gICAgc2hvdzogZnVuY3Rpb24ocGFyZW50
RWxlbWVudCkKLSAgICB7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZS5zaG93
LmNhbGwodGhpcywgcGFyZW50RWxlbWVudCk7Ci0KLSAgICAgICAgc2V0VGltZW91dCh0aGlzLmRv
UmVzaXplLmJpbmQodGhpcyksIDApOwotICAgIH0sCi0KICAgICBvblJlc2l6ZTogZnVuY3Rpb24o
KQogICAgIHsKICAgICAgICAgdGhpcy5pbWFnZUVsZW1lbnQucmVtb3ZlU3R5bGVDbGFzcygiaGlk
ZGVuIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1By
b2ZpbGVWaWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxl
Vmlldy5qcwppbmRleCAwMTFjMDFiNmRmOWZmNTU2NThiZTkwOGFjYjAzOGQ0YmViMTY5MDVlLi41
OTA0YWM2MzFmMWM0YzUzNzFkZmQ1MTc3OGI3ZjUzNDg0NGQwM2VlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVWaWV3LmpzCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZVZpZXcuanMKQEAgLTE2NCw5ICsx
NjQsOCBAQCBXZWJJbnNwZWN0b3IuQ1BVUHJvZmlsZVZpZXcucHJvdG90eXBlID0gewogICAgICAg
ICByZXR1cm4gdGhpcy5fYm90dG9tVXBUcmVlOwogICAgIH0sCiAKLSAgICBoaWRlOiBmdW5jdGlv
bigpCisgICAgd2lsbEhpZGU6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIFdlYkluc3BlY3Rv
ci5WaWV3LnByb3RvdHlwZS5oaWRlLmNhbGwodGhpcyk7CiAgICAgICAgIHRoaXMuX2N1cnJlbnRT
ZWFyY2hSZXN1bHRJbmRleCA9IC0xOwogICAgIH0sCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qcwppbmRleCBlYTE0MWNkNmUxZmY2
MjIyMDVhYTZmNjAzOWJhZmU0ZTRiNjE3NmUwLi5lNGFiOTI5NzAxZWExNGM1YjYwMjViOGU1MGEx
ZWMzZWM3YTEwZWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1Byb2ZpbGVzUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9Qcm9maWxlc1BhbmVsLmpzCkBAIC0xMDMsOCArMTAzLDYgQEAgV2ViSW5zcGVjdG9yLlBy
b2ZpbGVzUGFuZWwgPSBmdW5jdGlvbigpCiAgICAgdGhpcy5wYW5lbEVuYWJsZXJWaWV3ID0gbmV3
IFdlYkluc3BlY3Rvci5QYW5lbEVuYWJsZXJWaWV3KCJwcm9maWxlcyIsIHBhbmVsRW5hYmxlckhl
YWRpbmcsIHBhbmVsRW5hYmxlckRpc2NsYWltZXIsIHBhbmVsRW5hYmxlckJ1dHRvbik7CiAgICAg
dGhpcy5wYW5lbEVuYWJsZXJWaWV3LmFkZEV2ZW50TGlzdGVuZXIoImVuYWJsZSBjbGlja2VkIiwg
dGhpcy5fZW5hYmxlUHJvZmlsaW5nLCB0aGlzKTsKIAotICAgIHRoaXMuZWxlbWVudC5hcHBlbmRD
aGlsZCh0aGlzLnBhbmVsRW5hYmxlclZpZXcuZWxlbWVudCk7Ci0KICAgICB0aGlzLnByb2ZpbGVW
aWV3cyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgIHRoaXMucHJvZmlsZVZp
ZXdzLmlkID0gInByb2ZpbGUtdmlld3MiOwogICAgIHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZCh0
aGlzLnByb2ZpbGVWaWV3cyk7CkBAIC0xMTksNyArMTE3LDYgQEAgV2ViSW5zcGVjdG9yLlByb2Zp
bGVzUGFuZWwgPSBmdW5jdGlvbigpCiAgICAgdGhpcy5wcm9maWxlVmlld1N0YXR1c0Jhckl0ZW1z
Q29udGFpbmVyLmNsYXNzTmFtZSA9ICJzdGF0dXMtYmFyLWl0ZW1zIjsKIAogICAgIHRoaXMud2Vs
Y29tZVZpZXcgPSBuZXcgV2ViSW5zcGVjdG9yLldlbGNvbWVWaWV3KCJwcm9maWxlcyIsIFdlYklu
c3BlY3Rvci5VSVN0cmluZygiV2VsY29tZSB0byB0aGUgUHJvZmlsZXMgcGFuZWwiKSk7Ci0gICAg
dGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMud2VsY29tZVZpZXcuZWxlbWVudCk7CiAKICAg
ICB0aGlzLl9wcm9maWxlcyA9IFtdOwogICAgIHRoaXMuX3Byb2ZpbGVyRW5hYmxlZCA9IFByZWZl
cmVuY2VzLnByb2ZpbGVyQWx3YXlzRW5hYmxlZDsKQEAgLTE3MSw5ICsxNjgsOSBAQCBXZWJJbnNw
ZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiBpdGVtczsK
ICAgICB9LAogCi0gICAgc2hvdzogZnVuY3Rpb24oKQorICAgIHdhc1Nob3duOiBmdW5jdGlvbigp
CiAgICAgewotICAgICAgICBXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBlLnNob3cuY2FsbCh0
aGlzKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZS53YXNTaG93bi5jYWxs
KHRoaXMpOwogICAgICAgICB0aGlzLl9wb3B1bGF0ZVByb2ZpbGVzKCk7CiAgICAgfSwKIApAQCAt
MTg1LDcgKzE4Miw3IEBAIFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZSA9IHsK
ICAgICAgICAgdGhpcy5fcHJvZmlsZXJFbmFibGVkID0gdHJ1ZTsKIAogICAgICAgICB0aGlzLl9y
ZXNldCgpOwotICAgICAgICBpZiAodGhpcy52aXNpYmxlKQorICAgICAgICBpZiAodGhpcy5pc1No
b3dpbmcoKSkKICAgICAgICAgICAgIHRoaXMuX3BvcHVsYXRlUHJvZmlsZXMoKTsKICAgICB9LAog
CkBAIC0zNDYsNyArMzQzLDcgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBl
ID0gewogCiAgICAgICAgIHNpZGViYXJQYXJlbnQuYXBwZW5kQ2hpbGQocHJvZmlsZVRyZWVFbGVt
ZW50KTsKICAgICAgICAgaWYgKCFwcm9maWxlLmlzVGVtcG9yYXJ5KSB7Ci0gICAgICAgICAgICB0
aGlzLndlbGNvbWVWaWV3LmhpZGUoKTsKKyAgICAgICAgICAgIHRoaXMud2VsY29tZVZpZXcuZGV0
YWNoKCk7CiAgICAgICAgICAgICBpZiAoIXRoaXMudmlzaWJsZVZpZXcpCiAgICAgICAgICAgICAg
ICAgdGhpcy5zaG93UHJvZmlsZShwcm9maWxlKTsKICAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hF
dmVudFRvTGlzdGVuZXJzKCJwcm9maWxlIGFkZGVkIik7CkBAIC03NTMsNyArNzUwLDcgQEAgV2Vi
SW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgIHRo
aXMuX3Byb2ZpbGVUeXBlQnV0dG9uc0J5SWRNYXBbdHlwZUlkXS5yZW1vdmVTdHlsZUNsYXNzKCJo
aWRkZW4iKTsKICAgICAgICAgICAgIHRoaXMucHJvZmlsZVZpZXdTdGF0dXNCYXJJdGVtc0NvbnRh
aW5lci5yZW1vdmVTdHlsZUNsYXNzKCJoaWRkZW4iKTsKICAgICAgICAgICAgIHRoaXMuY2xlYXJS
ZXN1bHRzQnV0dG9uLmVsZW1lbnQucmVtb3ZlU3R5bGVDbGFzcygiaGlkZGVuIik7Ci0gICAgICAg
ICAgICB0aGlzLnBhbmVsRW5hYmxlclZpZXcudmlzaWJsZSA9IGZhbHNlOworICAgICAgICAgICAg
dGhpcy5wYW5lbEVuYWJsZXJWaWV3LmRldGFjaCgpOwogICAgICAgICB9IGVsc2UgewogICAgICAg
ICAgICAgdGhpcy5lbmFibGVUb2dnbGVCdXR0b24udGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJp
bmcoIlByb2ZpbGluZyBkaXNhYmxlZC4gQ2xpY2sgdG8gZW5hYmxlLiIpOwogICAgICAgICAgICAg
dGhpcy5lbmFibGVUb2dnbGVCdXR0b24udG9nZ2xlZCA9IGZhbHNlOwpAQCAtNzYxLDcgKzc1OCw3
IEBAIFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAg
ICAgICB0aGlzLl9wcm9maWxlVHlwZUJ1dHRvbnNCeUlkTWFwW3R5cGVJZF0uYWRkU3R5bGVDbGFz
cygiaGlkZGVuIik7CiAgICAgICAgICAgICB0aGlzLnByb2ZpbGVWaWV3U3RhdHVzQmFySXRlbXND
b250YWluZXIuYWRkU3R5bGVDbGFzcygiaGlkZGVuIik7CiAgICAgICAgICAgICB0aGlzLmNsZWFy
UmVzdWx0c0J1dHRvbi5lbGVtZW50LmFkZFN0eWxlQ2xhc3MoImhpZGRlbiIpOwotICAgICAgICAg
ICAgdGhpcy5wYW5lbEVuYWJsZXJWaWV3LnZpc2libGUgPSB0cnVlOworICAgICAgICAgICAgdGhp
cy5wYW5lbEVuYWJsZXJWaWV3LnNob3codGhpcy5lbGVtZW50KTsKICAgICAgICAgfQogICAgIH0s
CiAKQEAgLTg3MCw3ICs4NjcsNyBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5
cGUgPSB7CiAgICAgICAgIHByb2ZpbGVUeXBlLnRyZWVFbGVtZW50ID0gb2xkUHJvZmlsZVR5cGUu
dHJlZUVsZW1lbnQ7CiAgICAgICAgIHRoaXMuX3Byb2ZpbGVUeXBlc0J5SWRNYXBbcHJvZmlsZVR5
cGUuaWRdID0gcHJvZmlsZVR5cGU7CiAgICAgICAgIFByZWZlcmVuY2VzLmRldGFpbGVkSGVhcFBy
b2ZpbGVzID0gdHJ1ZTsKLSAgICAgICAgdGhpcy5oaWRlKCk7CisgICAgICAgIHRoaXMuZGV0YWNo
KCk7CiAgICAgICAgIHRoaXMuc2hvdygpOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VDb29raWVzVmlldy5qcyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VDb29raWVzVmlldy5qcwppbmRl
eCA1ZWY1NTk4Y2U5ZGFjM2EyYjFmZWMxYzY2NjEwMmNjMTVkMDUxNWY3Li42NTI2OTJmOTc2Mzky
ZWFlNGRkNWNmYzQ1MjkzYWU1MDdlN2EyNTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlQ29va2llc1ZpZXcuanMKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZUNvb2tpZXNWaWV3LmpzCkBAIC00NCwy
MSArNDQsMTggQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlQ29va2llc1ZpZXcgPSBmdW5jdGlvbihy
ZXNvdXJjZSkKIH0KIAogV2ViSW5zcGVjdG9yLlJlc291cmNlQ29va2llc1ZpZXcucHJvdG90eXBl
ID0gewotICAgIHNob3c6IGZ1bmN0aW9uKHBhcmVudEVsZW1lbnQpCisgICAgd2FzU2hvd246IGZ1
bmN0aW9uKCkKICAgICB7CiAgICAgICAgIGlmICghdGhpcy5fZ290Q29va2llcykgewogICAgICAg
ICAgICAgaWYgKCF0aGlzLl9lbXB0eVZpZXcpIHsKICAgICAgICAgICAgICAgICB0aGlzLl9lbXB0
eVZpZXcgPSBuZXcgV2ViSW5zcGVjdG9yLkVtcHR5VmlldyhXZWJJbnNwZWN0b3IuVUlTdHJpbmco
IlRoaXMgcmVxdWVzdCBoYXMgbm8gY29va2llcy4iKSk7CiAgICAgICAgICAgICAgICAgdGhpcy5f
ZW1wdHlWaWV3LnNob3codGhpcy5lbGVtZW50KTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZS5zaG93LmNhbGwodGhpcywgcGFyZW50RWxlbWVu
dCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAogICAgICAgICBpZiAoIXRoaXMu
X2Nvb2tpZXNUYWJsZSkKICAgICAgICAgICAgIHRoaXMuX2J1aWxkQ29va2llc1RhYmxlKCk7Ci0g
ICAgICAgIFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZS5zaG93LmNhbGwodGhpcywgcGFyZW50
RWxlbWVudCk7Ci0gICAgICAgIHRoaXMuX2Nvb2tpZXNUYWJsZS51cGRhdGVXaWR0aHMoKTsKICAg
ICB9LAogCiAgICAgb25SZXNpemU6IGZ1bmN0aW9uKCkKQEAgLTg1LDcgKzgyLDcgQEAgV2ViSW5z
cGVjdG9yLlJlc291cmNlQ29va2llc1ZpZXcucHJvdG90eXBlID0gewogICAgIF9yZWZyZXNoQ29v
a2llczogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgZGVsZXRlIHRoaXMuX2Nvb2tpZXNUYWJs
ZTsKLSAgICAgICAgaWYgKCF0aGlzLl9nb3RDb29raWVzIHx8ICF0aGlzLnZpc2libGUpCisgICAg
ICAgIGlmICghdGhpcy5fZ290Q29va2llcyB8fCAhdGhpcy5pc1Nob3dpbmcoKSkKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgdGhpcy5fYnVpbGRDb29raWVzVGFibGUoKTsKICAgICAgICAg
dGhpcy5fY29va2llc1RhYmxlLnVwZGF0ZVdpZHRocygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZUhUTUxWaWV3LmpzIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZUhUTUxWaWV3LmpzCmluZGV4IDkzM2Zm
ODQ3MzNhOThmMDY1MjhlM2U3MDQzNTE2YTlhMmJjYjNlMWIuLjljNGI1NWVlMzZlMjViOTU1YTgz
MDU1YmZkZTZkYjA5YmI2ZWNkMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvUmVzb3VyY2VIVE1MVmlldy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlSFRNTFZpZXcuanMKQEAgLTQ0LDE1ICs0NCwxMyBAQCBX
ZWJJbnNwZWN0b3IuUmVzb3VyY2VIVE1MVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVy
biB0cnVlOwogICAgIH0sCiAKLSAgICBzaG93OiBmdW5jdGlvbihwYXJlbnRFbGVtZW50KQorICAg
IHdhc1Nob3duOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBXZWJJbnNwZWN0b3IuUmVzb3Vy
Y2VWaWV3LnByb3RvdHlwZS5zaG93LmNhbGwodGhpcywgcGFyZW50RWxlbWVudCk7CiAgICAgICAg
IHRoaXMuX2NyZWF0ZUlGcmFtZSgpOwogICAgIH0sCiAKLSAgICBoaWRlOiBmdW5jdGlvbihwYXJl
bnRFbGVtZW50KQorICAgIHdpbGxIaWRlOiBmdW5jdGlvbihwYXJlbnRFbGVtZW50KQogICAgIHsK
LSAgICAgICAgV2ViSW5zcGVjdG9yLlJlc291cmNlVmlldy5wcm90b3R5cGUuaGlkZS5jYWxsKHRo
aXMpOwogICAgICAgICB0aGlzLmVsZW1lbnQucmVtb3ZlQ2hpbGRyZW4oKTsKICAgICB9LAogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlSlNP
TlZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlSlNP
TlZpZXcuanMKaW5kZXggZGQzNmRiOWRlMzk1YjJhZDI0YjE5ZDJiNjAwNzQyNGE3ZDUzNzkyZS4u
NGYyMGYyZjhkYmEyMmY4MjkxM2UzOTBiNTY1YTkyNTQxNTBjNmMyMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZUpTT05WaWV3LmpzCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VKU09OVmlldy5qcwpA
QCAtODIsOSArODIsOCBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VKU09OVmlldy5wcm90b3R5cGUg
PSB7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0sCiAKLSAgICBzaG93OiBmdW5jdGlvbihw
YXJlbnRFbGVtZW50KQorICAgIHdhc1Nob3duOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBX
ZWJJbnNwZWN0b3IuUmVzb3VyY2VWaWV3LnByb3RvdHlwZS5zaG93LmNhbGwodGhpcywgcGFyZW50
RWxlbWVudCk7CiAgICAgICAgIHRoaXMuX2luaXRpYWxpemUoKTsKICAgICB9LAogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlVGltaW5nVmll
dy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VUaW1pbmdW
aWV3LmpzCmluZGV4IDliOTVjNjljMGFhMTMyMDdiM2Y5NDRjZGZkYWY4NjM3ODA2ZDlmM2EuLmYx
Yzg2ZDE4MzU1MGQ1YmE2OGRlZWRiZGUwODhjNzEzODdmMWU3NGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VUaW1pbmdWaWV3LmpzCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VUaW1pbmdWaWV3Lmpz
CkBAIC00Myw3ICs0Myw3IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZVRpbWluZ1ZpZXcgPSBmdW5j
dGlvbihyZXNvdXJjZSkKIH0KIAogV2ViSW5zcGVjdG9yLlJlc291cmNlVGltaW5nVmlldy5wcm90
b3R5cGUgPSB7Ci0gICAgc2hvdzogZnVuY3Rpb24ocGFyZW50RWxlbWVudCkKKyAgICB3YXNTaG93
bjogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgaWYgKCF0aGlzLl9yZXNvdXJjZS50aW1pbmcp
IHsKICAgICAgICAgICAgIGlmICghdGhpcy5fZW1wdHlWaWV3KSB7CkBAIC01MSw3ICs1MSw2IEBA
IFdlYkluc3BlY3Rvci5SZXNvdXJjZVRpbWluZ1ZpZXcucHJvdG90eXBlID0gewogICAgICAgICAg
ICAgICAgIHRoaXMuX2VtcHR5Vmlldy5zaG93KHRoaXMuZWxlbWVudCk7CiAgICAgICAgICAgICAg
ICAgdGhpcy5pbm5lclZpZXcgPSB0aGlzLl9lbXB0eVZpZXc7CiAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUuc2hvdy5jYWxsKHRoaXMsIHBhcmVu
dEVsZW1lbnQpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKQEAgLTYxLDcgKzYw
LDYgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlVGltaW5nVmlldy5wcm90b3R5cGUgPSB7CiAgICAg
ICAgIH0KIAogICAgICAgICB0aGlzLl9yZWZyZXNoKCk7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5W
aWV3LnByb3RvdHlwZS5zaG93LmNhbGwodGhpcywgcGFyZW50RWxlbWVudCk7CiAgICAgfSwKIAog
ICAgIF9yZWZyZXNoOiBmdW5jdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlc1BhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5qcwppbmRleCAxY2M2MDQzNjlmZDI4YmRlYThh
NjgxYjVmYTE0NjA3YzIwNTkyYzkyLi44MTc2M2E4OTRlMjM3Njg1Mzk4OGVjNmY1NWNmNjJkZDAz
MDgxMjFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jl
c291cmNlc1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
UmVzb3VyY2VzUGFuZWwuanMKQEAgLTEwNCwxMCArMTA0LDkgQEAgV2ViSW5zcGVjdG9yLlJlc291
cmNlc1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJuIFt0aGlzLnNpZGViYXJFbGVt
ZW50XTsKICAgICB9LAogCi0gICAgc2hvdzogZnVuY3Rpb24oKQorICAgIHdhc1Nob3duOiBmdW5j
dGlvbigpCiAgICAgewotICAgICAgICBXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBlLnNob3cu
Y2FsbCh0aGlzKTsKLQorICAgICAgICBXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBlLndhc1No
b3duLmNhbGwodGhpcyk7CiAgICAgICAgIHRoaXMuX3BvcHVsYXRlUmVzb3VyY2VUcmVlKCk7CiAg
ICAgfSwKIApAQCAtMTMzNSw3ICsxMzM0LDcgQEAgV2ViSW5zcGVjdG9yLkZyYW1lUmVzb3VyY2VU
cmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHZhciBvbGRWaWV3ID0gdGhpcy5fc291
cmNlVmlldzsKICAgICAgICAgdmFyIG5ld1ZpZXcgPSB0aGlzLl9jcmVhdGVTb3VyY2VWaWV3KCk7
CiAKLSAgICAgICAgdmFyIG9sZFZpZXdQYXJlbnROb2RlID0gb2xkVmlldy52aXNpYmxlID8gb2xk
Vmlldy5lbGVtZW50LnBhcmVudE5vZGUgOiBudWxsOworICAgICAgICB2YXIgb2xkVmlld1BhcmVu
dE5vZGUgPSBvbGRWaWV3LmlzU2hvd2luZygpID8gb2xkVmlldy5lbGVtZW50LnBhcmVudE5vZGUg
OiBudWxsOwogICAgICAgICBuZXdWaWV3LmluaGVyaXRTY3JvbGxQb3NpdGlvbnMob2xkVmlldyk7
CiAKICAgICAgICAgdGhpcy5fc291cmNlVmlldy5kZXRhY2goKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMKaW5kZXggNWM0NDRlN2Ex
YTJjZGZlODA1MjQ1MjRkZGYwZjU4MTMwNjM5ZmViNC4uNzA2NzlkMDEwMGNhODBjZTQyZTg1ODg1
NjU4NTU4NDE1ZDExZGMzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9TY3JpcHRzUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9TY3JpcHRzUGFuZWwuanMKQEAgLTE0Miw3ICsxNDIsNiBAQCBXZWJJbnNwZWN0b3Iu
U2NyaXB0c1BhbmVsID0gZnVuY3Rpb24ocHJlc2VudGF0aW9uTW9kZWwpCiAgICAgdGhpcy5wYW5l
bEVuYWJsZXJWaWV3ID0gbmV3IFdlYkluc3BlY3Rvci5QYW5lbEVuYWJsZXJWaWV3KCJzY3JpcHRz
IiwgcGFuZWxFbmFibGVySGVhZGluZywgcGFuZWxFbmFibGVyRGlzY2xhaW1lciwgcGFuZWxFbmFi
bGVyQnV0dG9uKTsKICAgICB0aGlzLnBhbmVsRW5hYmxlclZpZXcuYWRkRXZlbnRMaXN0ZW5lcigi
ZW5hYmxlIGNsaWNrZWQiLCB0aGlzLl9lbmFibGVEZWJ1Z2dpbmcsIHRoaXMpOwogCi0gICAgdGhp
cy5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMucGFuZWxFbmFibGVyVmlldy5lbGVtZW50KTsKICAg
ICB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy52aWV3c0NvbnRhaW5lckVsZW1lbnQpOwog
ICAgIHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLnNpZGViYXJFbGVtZW50KTsKICAgICB0
aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5zaWRlYmFyUmVzaXplRWxlbWVudCk7CkBAIC0y
MTgsOSArMjE3LDkgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAg
ICAgICAgIHJldHVybiB0aGlzLl9wYXVzZWQ7CiAgICAgfSwKIAotICAgIHNob3c6IGZ1bmN0aW9u
KCkKKyAgICB3YXNTaG93bjogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgV2ViSW5zcGVjdG9y
LlBhbmVsLnByb3RvdHlwZS5zaG93LmNhbGwodGhpcyk7CisgICAgICAgIFdlYkluc3BlY3Rvci5Q
YW5lbC5wcm90b3R5cGUud2FzU2hvd24uY2FsbCh0aGlzKTsKICAgICAgICAgdGhpcy5zaWRlYmFy
UmVzaXplRWxlbWVudC5zdHlsZS5yaWdodCA9ICh0aGlzLnNpZGViYXJFbGVtZW50Lm9mZnNldFdp
ZHRoIC0gMykgKyAicHgiOwogICAgICAgICBpZiAoUHJlZmVyZW5jZXMubmF0aXZlSW5zdHJ1bWVu
dGF0aW9uRW5hYmxlZCkKICAgICAgICAgICAgIHRoaXMuc2lkZWJhckVsZW1lbnQuaW5zZXJ0QmVm
b3JlKHRoaXMuc2lkZWJhclBhbmVzLmRvbUJyZWFrcG9pbnRzLmVsZW1lbnQsIHRoaXMuc2lkZWJh
clBhbmVzLnhockJyZWFrcG9pbnRzLmVsZW1lbnQpOwpAQCAtODU1LDEyICs4NTQsMTIgQEAgV2Vi
SW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICB0aGlzLmVu
YWJsZVRvZ2dsZUJ1dHRvbi50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiRGVidWdnaW5n
IGVuYWJsZWQuIENsaWNrIHRvIGRpc2FibGUuIik7CiAgICAgICAgICAgICB0aGlzLmVuYWJsZVRv
Z2dsZUJ1dHRvbi50b2dnbGVkID0gdHJ1ZTsKICAgICAgICAgICAgIHRoaXMuX3BhdXNlT25FeGNl
cHRpb25CdXR0b24udmlzaWJsZSA9IHRydWU7Ci0gICAgICAgICAgICB0aGlzLnBhbmVsRW5hYmxl
clZpZXcudmlzaWJsZSA9IGZhbHNlOworICAgICAgICAgICAgdGhpcy5wYW5lbEVuYWJsZXJWaWV3
LmRldGFjaCgpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgdGhpcy5lbmFibGVUb2dn
bGVCdXR0b24udGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkRlYnVnZ2luZyBkaXNhYmxl
ZC4gQ2xpY2sgdG8gZW5hYmxlLiIpOwogICAgICAgICAgICAgdGhpcy5lbmFibGVUb2dnbGVCdXR0
b24udG9nZ2xlZCA9IGZhbHNlOwogICAgICAgICAgICAgdGhpcy5fcGF1c2VPbkV4Y2VwdGlvbkJ1
dHRvbi52aXNpYmxlID0gZmFsc2U7Ci0gICAgICAgICAgICB0aGlzLnBhbmVsRW5hYmxlclZpZXcu
dmlzaWJsZSA9IHRydWU7CisgICAgICAgICAgICB0aGlzLnBhbmVsRW5hYmxlclZpZXcuc2hvdyh0
aGlzLmVsZW1lbnQpOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKHRoaXMuX3BhdXNlZCkgewpA
QCAtMTAyNCwxMSArMTAyMywxMSBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlw
ZSA9IHsKICAgICAgICAgaWYgKHRoaXMudG9nZ2xlQnJlYWtwb2ludHNCdXR0b24udG9nZ2xlZCkg
ewogICAgICAgICAgICAgRGVidWdnZXJBZ2VudC5zZXRCcmVha3BvaW50c0FjdGl2ZSh0cnVlKTsK
ICAgICAgICAgICAgIHRoaXMudG9nZ2xlQnJlYWtwb2ludHNCdXR0b24udGl0bGUgPSBXZWJJbnNw
ZWN0b3IuVUlTdHJpbmcoIkRlYWN0aXZhdGUgYWxsIGJyZWFrcG9pbnRzLiIpOwotICAgICAgICAg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4tcGFuZWxzIikucmVtb3ZlU3R5bGVDbGFz
cygiYnJlYWtwb2ludHMtZGVhY3RpdmF0ZWQiKTsKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5t
YWluUGFuZWxzVmlldy5lbGVtZW50LnJlbW92ZVN0eWxlQ2xhc3MoImJyZWFrcG9pbnRzLWRlYWN0
aXZhdGVkIik7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBEZWJ1Z2dlckFnZW50LnNl
dEJyZWFrcG9pbnRzQWN0aXZlKGZhbHNlKTsKICAgICAgICAgICAgIHRoaXMudG9nZ2xlQnJlYWtw
b2ludHNCdXR0b24udGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkFjdGl2YXRlIGFsbCBi
cmVha3BvaW50cy4iKTsKLSAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWlu
LXBhbmVscyIpLmFkZFN0eWxlQ2xhc3MoImJyZWFrcG9pbnRzLWRlYWN0aXZhdGVkIik7CisgICAg
ICAgICAgICBXZWJJbnNwZWN0b3IubWFpblBhbmVsc1ZpZXcuZWxlbWVudC5hZGRTdHlsZUNsYXNz
KCJicmVha3BvaW50cy1kZWFjdGl2YXRlZCIpOwogICAgICAgICB9CiAgICAgfSwKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGcmFtZS5qcyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRnJhbWUuanMKaW5kZXgg
ODc3OTA4YTU5NzVhZTZhOGY0ZjBhNTFlMDI0N2E0YmE0YjE0ZWQwYi4uNjVmZjJlNmM0YWQ2ZDI5
ZDg5OWE3MTM1OGZiMzBlMzBkYTFiNjYyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGcmFtZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZyYW1lLmpzCkBAIC00NCw3ICs0NCw2IEBAIFdlYkluc3Bl
Y3Rvci5Tb3VyY2VGcmFtZSA9IGZ1bmN0aW9uKGRlbGVnYXRlLCB1cmwpCiAKICAgICB2YXIgdGV4
dFZpZXdlckRlbGVnYXRlID0gbmV3IFdlYkluc3BlY3Rvci5UZXh0Vmlld2VyRGVsZWdhdGVGb3JT
b3VyY2VGcmFtZSh0aGlzKTsKICAgICB0aGlzLl90ZXh0Vmlld2VyID0gbmV3IFdlYkluc3BlY3Rv
ci5UZXh0Vmlld2VyKHRoaXMuX3RleHRNb2RlbCwgV2ViSW5zcGVjdG9yLnBsYXRmb3JtLCB0aGlz
Ll91cmwsIHRleHRWaWV3ZXJEZWxlZ2F0ZSk7Ci0gICAgdGhpcy5lbGVtZW50LmFwcGVuZENoaWxk
KHRoaXMuX3RleHRWaWV3ZXIuZWxlbWVudCk7CiAKICAgICB0aGlzLnBvcG92ZXJIZWxwZXIgPSBu
ZXcgV2ViSW5zcGVjdG9yLk9iamVjdFBvcG92ZXJIZWxwZXIodGhpcy5fdGV4dFZpZXdlci5lbGVt
ZW50LAogICAgICAgICAgICAgdGhpcy5fZ2V0UG9wb3ZlckFuY2hvci5iaW5kKHRoaXMpLCB0aGlz
Lm9uU2hvd1BvcG92ZXIuYmluZCh0aGlzKSwgdGhpcy5vbkhpZGVQb3BvdmVyLmJpbmQodGhpcyks
IHRydWUpOwpAQCAtODgsOSArODcsOCBAQCBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUuY3JlYXRl
U2VhcmNoUmVnZXggPSBmdW5jdGlvbihxdWVyeSkKIAogCiBXZWJJbnNwZWN0b3IuU291cmNlRnJh
bWUucHJvdG90eXBlID0gewotICAgIHNob3c6IGZ1bmN0aW9uKHBhcmVudEVsZW1lbnQpCisgICAg
d2FzU2hvd246IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5WaWV3LnBy
b3RvdHlwZS5zaG93LmNhbGwodGhpcywgcGFyZW50RWxlbWVudCk7CiAgICAgICAgIHRoaXMuX2Vu
c3VyZUNvbnRlbnRMb2FkZWQoKTsKICAgICAgICAgdGhpcy5fdGV4dFZpZXdlci5zaG93KHRoaXMu
ZWxlbWVudCk7CiAgICAgfSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvVGFiYmVkUGFuZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvVGFiYmVkUGFuZS5qcwppbmRleCA1NzkwMzM4OGE0NmM0NWQzNWJlZWI5NzhjNGE3OWRhYzBj
YzRkMTAzLi5iZTJjOGMwNWNkNDFjNGYzYzdjOTM2NDBlYTAxMThlOGU2MWVmMWQ2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RhYmJlZFBhbmUuanMKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UYWJiZWRQYW5lLmpzCkBAIC00
OSw3ICs0OSw2IEBAIFdlYkluc3BlY3Rvci5UYWJiZWRQYW5lLnByb3RvdHlwZSA9IHsKICAgICAg
ICAgdGFiRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuc2VsZWN0VGFiLmJp
bmQodGhpcywgaWQsIHRydWUpLCBmYWxzZSk7CiAKICAgICAgICAgdGhpcy5fdGFic0VsZW1lbnQu
YXBwZW5kQ2hpbGQodGFiRWxlbWVudCk7Ci0gICAgICAgIHRoaXMuX2NvbnRlbnRFbGVtZW50LmFw
cGVuZENoaWxkKHZpZXcuZWxlbWVudCk7CiAKICAgICAgICAgdGhpcy5fdGFic1tpZF0gPSB7IHRh
YkVsZW1lbnQ6IHRhYkVsZW1lbnQsIHZpZXc6IHZpZXcgfTsKICAgICB9LApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzCmluZGV4IGE4
YTEyYzMzN2I2NTEzMTA4M2JhOTExNmQyNzk0MWYxNDNkODA5ZTAuLmU5MmFmY2U4ODRhYzdhOTEw
NDYyYjU5OTkwMTE5YmUyMTVjNzgyYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKQEAgLTU1NCwxOCArNTU0LDE4IEBAIFdl
Ykluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJuIFt0
aGlzLl9jb250YWluZXJFbGVtZW50XTsKICAgICB9LAogCi0gICAgc2hvdzogZnVuY3Rpb24oKQor
ICAgIHdhc1Nob3duOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBXZWJJbnNwZWN0b3IuUGFu
ZWwucHJvdG90eXBlLnNob3cuY2FsbCh0aGlzKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLlBhbmVs
LnByb3RvdHlwZS53YXNTaG93bi5jYWxsKHRoaXMpOwogICAgICAgICB0aGlzLl9yZWZyZXNoKCk7
CiAgICAgICAgIFdlYkluc3BlY3Rvci5kcmF3ZXIuY3VycmVudFBhbmVsQ291bnRlcnMgPSB0aGlz
LnJlY29yZHNDb3VudGVyOwogICAgIH0sCiAKLSAgICBoaWRlOiBmdW5jdGlvbigpCisgICAgd2ls
bEhpZGU6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5QYW5lbC5wcm90
b3R5cGUuaGlkZS5jYWxsKHRoaXMpOwogICAgICAgICB0aGlzLl9jbG9zZVJlY29yZERldGFpbHMo
KTsKICAgICAgICAgV2ViSW5zcGVjdG9yLmRyYXdlci5jdXJyZW50UGFuZWxDb3VudGVycyA9IG51
bGw7CisgICAgICAgIFdlYkluc3BlY3Rvci5QYW5lbC5wcm90b3R5cGUud2lsbEhpZGUuY2FsbCh0
aGlzKTsKICAgICB9LAogCiAgICAgX29uU2Nyb2xsOiBmdW5jdGlvbihldmVudCkKQEAgLTU4OCw3
ICs1ODgsNyBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAg
ICAgIHRoaXMuX2Nsb3NlUmVjb3JkRGV0YWlscygpOwogICAgICAgICB0aGlzLl9ib3VuZGFyaWVz
QXJlVmFsaWQgJj0gcHJlc2VydmVCb3VuZGFyaWVzOwogCi0gICAgICAgIGlmICghdGhpcy52aXNp
YmxlKQorICAgICAgICBpZiAoIXRoaXMuaXNTaG93aW5nKCkpCiAgICAgICAgICAgICByZXR1cm47
CiAKICAgICAgICAgaWYgKHByZXNlcnZlQm91bmRhcmllcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvVmlldy5qcwppbmRleCA2MWI5MmYyNjA4ODc1ZTE5YzhlNDE3OGQ0NzAw
Zjg0MzNkMzY1NDZlLi5kY2U3Mzk1NTg3OWM4Y2I4NGVlY2EyNDMyMDZjNWEzNDNiNWRjYTFkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1ZpZXcuanMKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9WaWV3LmpzCkBAIC0zMSw4NiAr
MzEsMTU1IEBACiBXZWJJbnNwZWN0b3IuVmlldyA9IGZ1bmN0aW9uKCkKIHsKICAgICB0aGlzLmVs
ZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKLSAgICB0aGlzLmVsZW1lbnQu
YWRkRXZlbnRMaXN0ZW5lcigiRE9NTm9kZUluc2VydGVkSW50b0RvY3VtZW50IiwgdGhpcy5faGFu
ZGxlSW5zZXJ0ZWRJbnRvRG9jdW1lbnQuYmluZCh0aGlzKSwgZmFsc2UpOwotICAgIHRoaXMuZWxl
bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Ob2RlUmVtb3ZlZEZyb21Eb2N1bWVudCIsIHRoaXMu
X2hhbmRsZVJlbW92ZWRGcm9tRG9jdW1lbnQuYmluZCh0aGlzKSwgZmFsc2UpOwogICAgIHRoaXMu
ZWxlbWVudC5fX3ZpZXcgPSB0aGlzOwotICAgIHRoaXMuX3Zpc2libGUgPSBmYWxzZTsKKyAgICB0
aGlzLl92aXNpYmxlID0gdHJ1ZTsKKyAgICB0aGlzLl9pc1Jvb3QgPSBmYWxzZTsKKyAgICB0aGlz
Ll9pc1Nob3dpbmcgPSBmYWxzZTsKICAgICB0aGlzLl9jaGlsZHJlbiA9IFtdOwotICAgIHRoaXMu
X2luRGV0YWNoID0gZmFsc2U7CisgICAgdGhpcy5faGlkZU9uRGV0YWNoID0gZmFsc2U7CiB9CiAK
IFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZSA9IHsKLSAgICBnZXQgdmlzaWJsZSgpCisgICAg
bWFya0FzUm9vdDogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3Zpc2li
bGU7CisgICAgICAgIHRoaXMuX2lzUm9vdCA9IHRydWU7CiAgICAgfSwKIAotICAgIHNldCB2aXNp
YmxlKHgpCisgICAgaXNTaG93aW5nOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBpZiAodGhp
cy5fdmlzaWJsZSA9PT0geCkKLSAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJuIHRo
aXMuX2lzU2hvd2luZyB8fCB0aGlzLl9pc1Jvb3Q7CisgICAgfSwKIAotICAgICAgICBpZiAoeCkK
LSAgICAgICAgICAgIHRoaXMuc2hvdyh0aGlzLmVsZW1lbnQucGFyZW50RWxlbWVudCk7Ci0gICAg
ICAgIGVsc2UKLSAgICAgICAgICAgIHRoaXMuaGlkZSgpOworICAgIHNldEhpZGVPbkRldGFjaDog
ZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdGhpcy5faGlkZU9uRGV0YWNoID0gdHJ1ZTsKICAg
ICB9LAogCi0gICAgd2FzU2hvd246IGZ1bmN0aW9uKCkKKyAgICBfcGFyZW50SXNTaG93aW5nOiBm
dW5jdGlvbigpCiAgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fcGFyZW50VmlldyAmJiB0aGlz
Ll9wYXJlbnRWaWV3LmlzU2hvd2luZygpOworICAgIH0sCisKKyAgICBfZGlzcGF0Y2hXYXNTaG93
bjogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLl9wYXJlbnRJc1Nob3dpbmco
KSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICB0aGlzLl9pc1Nob3dpbmcgPSB0cnVl
OwogICAgICAgICB0aGlzLnJlc3RvcmVTY3JvbGxQb3NpdGlvbnMoKTsKKworICAgICAgICB0aGlz
Lndhc1Nob3duKCk7CiAgICAgICAgIHRoaXMub25SZXNpemUoKTsKKyAgICAgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCB0aGlzLl9jaGlsZHJlbi5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgIHRoaXMu
X2NoaWxkcmVuW2ldLl9kaXNwYXRjaFdhc1Nob3duKCk7CiAgICAgfSwKIAotICAgIHdpbGxIaWRl
OiBmdW5jdGlvbigpCisgICAgX2Rpc3BhdGNoV2lsbEhpZGU6IGZ1bmN0aW9uKCkKICAgICB7Cisg
ICAgICAgIGlmICghdGhpcy5fcGFyZW50SXNTaG93aW5nKCkpCisgICAgICAgICAgICByZXR1cm47
CisKICAgICAgICAgdGhpcy5zdG9yZVNjcm9sbFBvc2l0aW9ucygpOworCisgICAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgdGhpcy5fY2hpbGRyZW4ubGVuZ3RoOyArK2kpCisgICAgICAgICAgICB0
aGlzLl9jaGlsZHJlbltpXS5fZGlzcGF0Y2hXaWxsSGlkZSgpOworCisgICAgICAgIHRoaXMud2ls
bEhpZGUoKTsKKyAgICAgICAgdGhpcy5faXNTaG93aW5nID0gZmFsc2U7CiAgICAgfSwKIAotICAg
IHdpbGxEZXRhY2g6IGZ1bmN0aW9uKCkKKyAgICBfZGlzcGF0Y2hPblJlc2l6ZTogZnVuY3Rpb24o
KQogICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLmlzU2hvd2luZygpKQorICAgICAgICAgICAgcmV0
dXJuOworCisgICAgICAgIHRoaXMub25SZXNpemUoKTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCB0aGlzLl9jaGlsZHJlbi5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgIHRoaXMuX2NoaWxk
cmVuW2ldLl9kaXNwYXRjaE9uUmVzaXplKCk7CiAgICAgfSwKIAotICAgIC8qKgotICAgICAqIEBw
YXJhbSB7RWxlbWVudH0gcGFyZW50RWxlbWVudAotICAgICAqLwotICAgIHNob3c6IGZ1bmN0aW9u
KHBhcmVudEVsZW1lbnQpCisgICAgd2FzU2hvd246IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAg
IHRoaXMuX3Zpc2libGUgPSB0cnVlOwotICAgICAgICB0aGlzLmVsZW1lbnQuYWRkU3R5bGVDbGFz
cygidmlzaWJsZSIpOwotICAgICAgICBpZiAocGFyZW50RWxlbWVudCAmJiB0aGlzLmVsZW1lbnQu
cGFyZW50RWxlbWVudCAhPSBwYXJlbnRFbGVtZW50KQotICAgICAgICAgICAgdGhpcy5hdHRhY2go
cGFyZW50RWxlbWVudCk7Ci0gICAgICAgIHRoaXMuZGlzcGF0Y2hUb1NlbGZBbmRDaGlsZHJlbigi
d2FzU2hvd24iLCB0cnVlKTsKICAgICB9LAogCi0gICAgaGlkZTogZnVuY3Rpb24oKQorICAgIHdp
bGxIaWRlOiBmdW5jdGlvbigpCisgICAgeworICAgIH0sCisKKyAgICBvblJlc2l6ZTogZnVuY3Rp
b24oKQogICAgIHsKLSAgICAgICAgdGhpcy5kaXNwYXRjaFRvU2VsZkFuZENoaWxkcmVuKCJ3aWxs
SGlkZSIsIHRydWUpOwotICAgICAgICBpZiAoIXRoaXMuX2luRGV0YWNoKQotICAgICAgICAgICAg
dGhpcy5lbGVtZW50LnJlbW92ZVN0eWxlQ2xhc3MoInZpc2libGUiKTsKLSAgICAgICAgdGhpcy5f
dmlzaWJsZSA9IGZhbHNlOwogICAgIH0sCiAKICAgICAvKioKICAgICAgKiBAcGFyYW0ge0VsZW1l
bnR9IHBhcmVudEVsZW1lbnQKKyAgICAgKiBAcGFyYW0ge0VsZW1lbnR9IGluc2VydEJlZm9yZQog
ICAgICAqLwotICAgIGF0dGFjaDogZnVuY3Rpb24ocGFyZW50RWxlbWVudCkKKyAgICBzaG93OiBm
dW5jdGlvbihwYXJlbnRFbGVtZW50LCBpbnNlcnRCZWZvcmUpCiAgICAgewotICAgICAgICBwYXJl
bnRFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuZWxlbWVudCk7CisgICAgICAgIGlmICghcGFyZW50
RWxlbWVudCkgeworICAgICAgICAgICAgY29uc29sZS50cmFjZSgpOworICAgICAgICAgICAgdGhy
b3cgbmV3IEVycm9yKCJBdHRlbXB0IHRvIGF0dGFjaCB2aWV3IHdpdGggbm8gcGFyZW50IGVsZW1l
bnQiKTsKKyAgICAgICAgfQorCisgICAgICAgIHRoaXMuX3Zpc2libGUgPSB0cnVlOworICAgICAg
ICB0aGlzLmVsZW1lbnQuYWRkU3R5bGVDbGFzcygidmlzaWJsZSIpOworCisgICAgICAgIGlmICh0
aGlzLmVsZW1lbnQucGFyZW50RWxlbWVudCA9PT0gcGFyZW50RWxlbWVudCkgeworICAgICAgICAg
ICAgdGhpcy5fZGlzcGF0Y2hXYXNTaG93bigpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisKKyAgICAgICAgLy8gRm9yY2UgbGVnYWwgYXBwZW5kCisgICAgICAgIFdlYkluc3BlY3Rv
ci5WaWV3Ll9pbmNyZW1lbnRWaWV3Q291bnRlcihwYXJlbnRFbGVtZW50LCB0aGlzLmVsZW1lbnQp
OworICAgICAgICBpZiAoaW5zZXJ0QmVmb3JlKQorICAgICAgICAgICAgV2ViSW5zcGVjdG9yLlZp
ZXcuX29yaWdpbmFsSW5zZXJ0QmVmb3JlLmNhbGwocGFyZW50RWxlbWVudCwgdGhpcy5lbGVtZW50
LCBpbnNlcnRCZWZvcmUpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBXZWJJbnNwZWN0b3Iu
Vmlldy5fb3JpZ2luYWxBcHBlbmRDaGlsZC5jYWxsKHBhcmVudEVsZW1lbnQsIHRoaXMuZWxlbWVu
dCk7CisKKyAgICAgICAgLy8gVXBkYXRlIHZpZXcgaGllcmFyY2h5CisgICAgICAgIHdoaWxlIChw
YXJlbnRFbGVtZW50ICYmICFwYXJlbnRFbGVtZW50Ll9fdmlldykKKyAgICAgICAgICAgIHBhcmVu
dEVsZW1lbnQgPSBwYXJlbnRFbGVtZW50LnBhcmVudEVsZW1lbnQ7CisKKyAgICAgICAgaWYgKHBh
cmVudEVsZW1lbnQpIHsKKyAgICAgICAgICAgIHRoaXMuX3BhcmVudFZpZXcgPSBwYXJlbnRFbGVt
ZW50Ll9fdmlldzsKKyAgICAgICAgICAgIHRoaXMuX3BhcmVudFZpZXcuX2NoaWxkcmVuLnB1c2go
dGhpcyk7CisgICAgICAgICAgICB0aGlzLl9pc1Jvb3QgPSBmYWxzZTsKKyAgICAgICAgICAgIHRo
aXMuX2Rpc3BhdGNoV2FzU2hvd24oKTsKKyAgICAgICAgfSBlbHNlIGlmICghdGhpcy5faXNSb290
KSB7CisgICAgICAgICAgICBjb25zb2xlLnRyYWNlKCk7CisgICAgICAgICAgICB0aHJvdyBuZXcg
RXJyb3IoIkF0dGVtcHQgdG8gYXR0YWNoIHZpZXcgdG8gb3JwaGFuIG5vZGUiKTsKKyAgICAgICAg
fQogICAgIH0sCiAKICAgICBkZXRhY2g6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIGlmICh0
aGlzLl92aXNpYmxlKSB7Ci0gICAgICAgICAgICB0aGlzLl9pbkRldGFjaCA9IHRydWU7Ci0gICAg
ICAgICAgICB0aGlzLmhpZGUoKTsKLSAgICAgICAgICAgIHRoaXMuX2luRGV0YWNoID0gZmFsc2U7
CisgICAgICAgIHZhciBwYXJlbnRFbGVtZW50ID0gdGhpcy5lbGVtZW50LnBhcmVudEVsZW1lbnQ7
CisgICAgICAgIGlmICghcGFyZW50RWxlbWVudCkKKyAgICAgICAgICAgIHJldHVybjsKKworICAg
ICAgICB0aGlzLl9kaXNwYXRjaFdpbGxIaWRlKCk7CisKKyAgICAgICAgaWYgKHRoaXMuX2hpZGVP
bkRldGFjaCkgeworICAgICAgICAgICAgdGhpcy5lbGVtZW50LnJlbW92ZVN0eWxlQ2xhc3MoInZp
c2libGUiKTsKKyAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIHRoaXMu
ZGlzcGF0Y2hUb1NlbGZBbmRDaGlsZHJlbigid2lsbERldGFjaCIsIGZhbHNlKTsKKyAgICAgICAg
Ly8gRm9yY2UgbGVnYWwgcmVtb3ZhbAorICAgICAgICBXZWJJbnNwZWN0b3IuVmlldy5fZGVjcmVt
ZW50Vmlld0NvdW50ZXIocGFyZW50RWxlbWVudCwgdGhpcy5lbGVtZW50KTsKKyAgICAgICAgV2Vi
SW5zcGVjdG9yLlZpZXcuX29yaWdpbmFsUmVtb3ZlQ2hpbGQuY2FsbChwYXJlbnRFbGVtZW50LCB0
aGlzLmVsZW1lbnQpOworCisgICAgICAgIC8vIFVwZGF0ZSB2aWV3IGhpZXJhcmNoeQorICAgICAg
ICBpZiAodGhpcy5fcGFyZW50VmlldykgeworICAgICAgICAgICAgdmFyIGNoaWxkSW5kZXggPSB0
aGlzLl9wYXJlbnRWaWV3Ll9jaGlsZHJlbi5pbmRleE9mKHRoaXMpOworICAgICAgICAgICAgaWYg
KGNoaWxkSW5kZXggPCAwKSB7CisgICAgICAgICAgICAgICAgY29uc29sZS50cmFjZSgpOworICAg
ICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQXR0ZW1wdCB0byByZW1vdmUgbm9uLWNoaWxk
IHZpZXciKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRoaXMuX3BhcmVudFZpZXcuX2No
aWxkcmVuLnNwbGljZShjaGlsZEluZGV4LCAxKTsKKyAgICAgICAgICAgIHRoaXMuX3BhcmVudFZp
ZXcgPSBudWxsOworICAgICAgICB9CiAKLSAgICAgICAgaWYgKHRoaXMuZWxlbWVudC5wYXJlbnRF
bGVtZW50KQotICAgICAgICAgICAgdGhpcy5lbGVtZW50LnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hp
bGQodGhpcy5lbGVtZW50KTsKKyAgICAgICAgdGhpcy5fdmlzaWJsZSA9IGZhbHNlOwogICAgIH0s
CiAKICAgICBlbGVtZW50c1RvUmVzdG9yZVNjcm9sbFBvc2l0aW9uc0ZvcjogZnVuY3Rpb24oKQpA
QCAtMTQwLDI4ICsyMDksNiBAQCBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUgPSB7CiAgICAg
ICAgIH0KICAgICB9LAogCi0gICAgX2FkZENoaWxkVmlldzogZnVuY3Rpb24odmlldykKLSAgICB7
Ci0gICAgICAgIHRoaXMuX2NoaWxkcmVuLnB1c2godmlldyk7Ci0gICAgICAgIHZpZXcuX3BhcmVu
dFZpZXcgPSB0aGlzOwotICAgIH0sCi0KLSAgICBfcmVtb3ZlQ2hpbGRWaWV3OiBmdW5jdGlvbih2
aWV3KQotICAgIHsKLSAgICAgICAgdmFyIGNoaWxkSW5kZXggPSB0aGlzLl9jaGlsZHJlbi5pbmRl
eE9mKHZpZXcpOwotICAgICAgICBpZiAoY2hpbGRJbmRleCA8IDApIHsKLSAgICAgICAgICAgIGNv
bnNvbGUuZXJyb3IoIkF0dGVtcHQgdG8gcmVtb3ZlIG5vbi1jaGlsZCB2aWV3Iik7Ci0gICAgICAg
ICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICB0aGlzLl9jaGlsZHJlbi5zcGxpY2Uo
Y2hpbGRJbmRleCwgMSk7Ci0gICAgICAgIHZpZXcuX3BhcmVudFZpZXcgPSBudWxsOwotICAgIH0s
Ci0KLSAgICBvblJlc2l6ZTogZnVuY3Rpb24oKQotICAgIHsKLSAgICB9LAotCiAgICAgY2FuSGln
aGxpZ2h0TGluZTogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAt
MTczLDQ1ICsyMjAsNyBAQCBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUgPSB7CiAKICAgICBk
b1Jlc2l6ZTogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgdGhpcy5kaXNwYXRjaFRvU2VsZkFu
ZENoaWxkcmVuKCJvblJlc2l6ZSIsIHRydWUpOwotICAgIH0sCi0KLSAgICBkaXNwYXRjaFRvU2Vs
ZkFuZENoaWxkcmVuOiBmdW5jdGlvbihtZXRob2ROYW1lLCB2aXNpYmxlT25seSkKLSAgICB7Ci0g
ICAgICAgIGlmICh2aXNpYmxlT25seSAmJiAhdGhpcy52aXNpYmxlKQotICAgICAgICAgICAgcmV0
dXJuOwotICAgICAgICBpZiAodHlwZW9mIHRoaXNbbWV0aG9kTmFtZV0gPT09ICJmdW5jdGlvbiIp
Ci0gICAgICAgICAgICB0aGlzW21ldGhvZE5hbWVdLmNhbGwodGhpcyk7Ci0gICAgICAgIHRoaXMu
ZGlzcGF0Y2hUb0NoaWxkcmVuKG1ldGhvZE5hbWUsIHZpc2libGVPbmx5KTsKLSAgICB9LAotCi0g
ICAgZGlzcGF0Y2hUb0NoaWxkcmVuOiBmdW5jdGlvbihtZXRob2ROYW1lLCB2aXNpYmxlT25seSkK
LSAgICB7Ci0gICAgICAgIGlmICh2aXNpYmxlT25seSAmJiAhdGhpcy52aXNpYmxlKQotICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuX2NoaWxkcmVu
Lmxlbmd0aDsgKytpKQotICAgICAgICAgICAgdGhpcy5fY2hpbGRyZW5baV0uZGlzcGF0Y2hUb1Nl
bGZBbmRDaGlsZHJlbihtZXRob2ROYW1lLCB2aXNpYmxlT25seSk7Ci0gICAgfSwKLQotICAgIF9o
YW5kbGVJbnNlcnRlZEludG9Eb2N1bWVudDogZnVuY3Rpb24oZXZlbnQpCi0gICAgewotICAgICAg
ICB2YXIgcGFyZW50RWxlbWVudCA9IHRoaXMuZWxlbWVudC5wYXJlbnRFbGVtZW50OwotICAgICAg
ICB3aGlsZSAocGFyZW50RWxlbWVudCAmJiAhcGFyZW50RWxlbWVudC5fX3ZpZXcpCi0gICAgICAg
ICAgICBwYXJlbnRFbGVtZW50ID0gcGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50OwotCi0gICAg
ICAgIHZhciBwYXJlbnRWaWV3ID0gcGFyZW50RWxlbWVudCA/IHBhcmVudEVsZW1lbnQuX192aWV3
IDogV2ViSW5zcGVjdG9yLl9yb290VmlldzsKLSAgICAgICAgcGFyZW50Vmlldy5fYWRkQ2hpbGRW
aWV3KHRoaXMpOwotICAgICAgICB0aGlzLm9uSW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKTsKLSAgICB9
LAotCi0gICAgb25JbnNlcnRlZEludG9Eb2N1bWVudDogZnVuY3Rpb24oKQotICAgIHsKLSAgICB9
LAotCi0gICAgX2hhbmRsZVJlbW92ZWRGcm9tRG9jdW1lbnQ6IGZ1bmN0aW9uKGV2ZW50KQotICAg
IHsKLSAgICAgICAgaWYgKHRoaXMuX3BhcmVudFZpZXcpCi0gICAgICAgICAgICB0aGlzLl9wYXJl
bnRWaWV3Ll9yZW1vdmVDaGlsZFZpZXcodGhpcyk7CisgICAgICAgIHRoaXMuX2Rpc3BhdGNoT25S
ZXNpemUoKTsKICAgICB9LAogCiAgICAgcHJpbnRWaWV3SGllcmFyY2h5OiBmdW5jdGlvbigpCkBA
IC0yMzUsNCArMjQ0LDk4IEBAIFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZSA9IHsKIAogV2Vi
SW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5PYmplY3Qu
cHJvdG90eXBlOwogCi1XZWJJbnNwZWN0b3IuX3Jvb3RWaWV3ID0gbmV3IFdlYkluc3BlY3Rvci5W
aWV3KCk7CitXZWJJbnNwZWN0b3IuVmlldy5fb3JpZ2luYWxBcHBlbmRDaGlsZCA9IEVsZW1lbnQu
cHJvdG90eXBlLmFwcGVuZENoaWxkOworV2ViSW5zcGVjdG9yLlZpZXcuX29yaWdpbmFsSW5zZXJ0
QmVmb3JlID0gRWxlbWVudC5wcm90b3R5cGUuaW5zZXJ0QmVmb3JlOworV2ViSW5zcGVjdG9yLlZp
ZXcuX29yaWdpbmFsUmVtb3ZlQ2hpbGQgPSBFbGVtZW50LnByb3RvdHlwZS5yZW1vdmVDaGlsZDsK
K1dlYkluc3BlY3Rvci5WaWV3Ll9vcmlnaW5hbFJlbW92ZUNoaWxkcmVuID0gRWxlbWVudC5wcm90
b3R5cGUucmVtb3ZlQ2hpbGRyZW47CisKK1dlYkluc3BlY3Rvci5WaWV3Ll9pbmNyZW1lbnRWaWV3
Q291bnRlciA9IGZ1bmN0aW9uKHBhcmVudEVsZW1lbnQsIGNoaWxkRWxlbWVudCkKK3sKKyAgICB2
YXIgY291bnQgPSAoY2hpbGRFbGVtZW50Ll9fdmlld0NvdW50ZXIgfHwgMCkgKyAoY2hpbGRFbGVt
ZW50Ll9fdmlldyA/IDEgOiAwKTsKKyAgICBpZiAoIWNvdW50KQorICAgICAgICByZXR1cm47CisK
KyAgICB3aGlsZSAocGFyZW50RWxlbWVudCkgeworICAgICAgICBwYXJlbnRFbGVtZW50Ll9fdmll
d0NvdW50ZXIgPSAocGFyZW50RWxlbWVudC5fX3ZpZXdDb3VudGVyIHx8IDApICsgY291bnQ7Cisg
ICAgICAgIHBhcmVudEVsZW1lbnQgPSBwYXJlbnRFbGVtZW50LnBhcmVudEVsZW1lbnQ7CisgICAg
fQorfQorCitXZWJJbnNwZWN0b3IuVmlldy5fZGVjcmVtZW50Vmlld0NvdW50ZXIgPSBmdW5jdGlv
bihwYXJlbnRFbGVtZW50LCBjaGlsZEVsZW1lbnQpCit7CisgICAgdmFyIGNvdW50ID0gKGNoaWxk
RWxlbWVudC5fX3ZpZXdDb3VudGVyIHx8IDApICsgKGNoaWxkRWxlbWVudC5fX3ZpZXcgPyAxIDog
MCk7CisgICAgaWYgKCFjb3VudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgd2hpbGUgKHBhcmVu
dEVsZW1lbnQpIHsKKyAgICAgICAgcGFyZW50RWxlbWVudC5fX3ZpZXdDb3VudGVyIC09IGNvdW50
OworICAgICAgICBwYXJlbnRFbGVtZW50ID0gcGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50Owor
ICAgIH0KK30KKworCitFbGVtZW50LnByb3RvdHlwZS5hcHBlbmRDaGlsZCA9IGZ1bmN0aW9uKGNo
aWxkKQoreworICAgIFdlYkluc3BlY3Rvci5WaWV3Ll9pbmNyZW1lbnRWaWV3Q291bnRlcih0aGlz
LCBjaGlsZCk7CisKKyAgICBpZiAoY2hpbGQuX192aWV3KSB7CisgICAgICAgIGNvbnNvbGUudHJh
Y2UoKTsKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJBdHRlbXB0IHRvIGFkZCB2aWV3IHZpYSBy
ZWd1bGFyIERPTSBvcGVyYXRpb246ICIgKyBjaGlsZC5jbGFzc05hbWUpOworICAgIH0KKworICAg
IHJldHVybiBXZWJJbnNwZWN0b3IuVmlldy5fb3JpZ2luYWxBcHBlbmRDaGlsZC5jYWxsKHRoaXMs
IGNoaWxkKTsKK30KKworRWxlbWVudC5wcm90b3R5cGUuaW5zZXJ0QmVmb3JlID0gZnVuY3Rpb24o
Y2hpbGQsIGFuY2hvcikKK3sKKyAgICBXZWJJbnNwZWN0b3IuVmlldy5faW5jcmVtZW50Vmlld0Nv
dW50ZXIodGhpcywgY2hpbGQpOworCisgICAgaWYgKGNoaWxkLl9fdmlldykgeworICAgICAgICBj
b25zb2xlLnRyYWNlKCk7CisgICAgICAgIHRocm93IG5ldyBFcnJvcigiQXR0ZW1wdCB0byBhZGQg
dmlldyB2aWEgcmVndWxhciBET00gb3BlcmF0aW9uOiAiICsgY2hpbGQuY2xhc3NOYW1lKTsKKyAg
ICB9CisKKyAgICByZXR1cm4gV2ViSW5zcGVjdG9yLlZpZXcuX29yaWdpbmFsSW5zZXJ0QmVmb3Jl
LmNhbGwodGhpcywgY2hpbGQsIGFuY2hvcik7Cit9CisKKworRWxlbWVudC5wcm90b3R5cGUucmVt
b3ZlQ2hpbGQgPSBmdW5jdGlvbihjaGlsZCkKK3sKKyAgICBpZiAoY2hpbGQuX192aWV3Q291bnRl
ciAmJiAhY2hpbGQuX192aWV3KSB7CisgICAgICAgIGNvbnNvbGUudHJhY2UoKTsKKyAgICAgICAg
dGhyb3cgbmV3IEVycm9yKCJBdHRlbXB0IHRvIHJlbW92ZSBlbGVtZW50IGNvbnRhaW5pbmcgdmll
dyB2aWEgcmVndWxhciBET00gb3BlcmF0aW9uIik7CisgICAgfQorCisgICAgaWYgKGNoaWxkLl9f
dmlldykgeworICAgICAgICBjaGlsZC5fX3ZpZXcuZGV0YWNoKCk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBXZWJJbnNwZWN0b3IuVmlldy5fZGVjcmVtZW50Vmlld0NvdW50ZXIodGhp
cywgY2hpbGQpOworICAgIHJldHVybiBXZWJJbnNwZWN0b3IuVmlldy5fb3JpZ2luYWxSZW1vdmVD
aGlsZC5jYWxsKHRoaXMsIGNoaWxkKTsKK30KKworRWxlbWVudC5wcm90b3R5cGUucmVtb3ZlQ2hp
bGRyZW4gPSBmdW5jdGlvbigpCit7CisgICAgaWYgKCF0aGlzLl9fdmlld0NvdW50ZXIpIHsKKyAg
ICAgICAgV2ViSW5zcGVjdG9yLlZpZXcuX29yaWdpbmFsUmVtb3ZlQ2hpbGRyZW4uY2FsbCh0aGlz
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHZhciB2aWV3cyA9IFtdOworCisgICAg
Zm9yICh2YXIgY2hpbGQgPSB0aGlzLmZpcnN0Q2hpbGQ7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLm5l
eHRTaWJsaW5nKSB7CisgICAgICAgIGlmIChjaGlsZC5fX3ZpZXdDb3VudGVyICYmICFjaGlsZC5f
X3ZpZXcpIHsKKyAgICAgICAgICAgIGNvbnNvbGUudHJhY2UoKTsKKyAgICAgICAgICAgIHRocm93
IG5ldyBFcnJvcigiQXR0ZW1wdCB0byByZW1vdmUgZWxlbWVudCBjb250YWluaW5nIHZpZXcgdmlh
IHJlZ3VsYXIgRE9NIG9wZXJhdGlvbiIpOworICAgICAgICB9CisgICAgICAgIGlmIChjaGlsZC5f
X3ZpZXcpCisgICAgICAgICAgICB2aWV3cy5wdXNoKGNoaWxkLl9fdmlldyk7CisgICAgfQorCisg
ICAgLy8gV2Ugb25seSBoYXZlIHRvcC1sZXZlbCB2aWV3cyBhbmQgbm9uLXZpZXcgY29udGFpbmlu
ZyBlbGVtZW50cy4gQWxsb3cgdGhlIG9wZXJhdGlvbi4KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8
IHZpZXdzLmxlbmd0aDsgKytpKQorICAgICAgICB2aWV3c1tpXS5kZXRhY2goKTsKKworICAgIFdl
Ykluc3BlY3Rvci5WaWV3Ll9vcmlnaW5hbFJlbW92ZUNoaWxkcmVuLmNhbGwodGhpcyk7Cit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2V4dGVybnMuanMg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2V4dGVybnMuanMKaW5kZXggZGY2
OGM2Yjk0YmIyYzBiYjNiNThlNDkwMzliNDBkMDcxZTQ1ZDNhZC4uODYyY2RiYTk2NDljNDQ5YmYx
ZTAzM2Y1NTFkMGFjOTA4ZmU4YTY3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9leHRlcm5zLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvZXh0ZXJucy5qcwpAQCAtMzUsNiArMzUsNyBAQCBjb25zb2xlLndhcm4gPSBmdW5j
dGlvbih2YXJhcmcpIHt9CiBjb25zb2xlLmFzc2VydCA9IGZ1bmN0aW9uKHZhcmFyZykge30KIC8q
KiBAcGFyYW0gey4uLip9IHZhcmFyZyAqLwogY29uc29sZS5lcnJvciA9IGZ1bmN0aW9uKHZhcmFy
Zykge30KK2NvbnNvbGUudHJhY2UgPSBmdW5jdGlvbigpIHt9CiAKIHZhciBXZWJJbnNwZWN0b3Ig
PSB7fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2lu
c3BlY3Rvci5odG1sIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0
b3IuaHRtbAppbmRleCBlMDY5NjE1ZjdiODYxNzkyMTY4MTRhOTlhNTg4YjJmMjIyYWNlOGJkLi5k
NTA5ZGVmNTkxNjg1ZGE5ZmQ5ZTJhMTRlNTU5NTU3ZmI4MTI3YWQ4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0bWwKQEAgLTE5OSw3ICsx
OTksNiBAQCBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgogICAgICAgICA8L2Rpdj4KICAgICA8L2Rpdj4KICAgICA8ZGl2IGlk
PSJtYWluIj4KLSAgICAgICAgPGRpdiBpZD0ibWFpbi1wYW5lbHMiIHNwZWxsY2hlY2s9ImZhbHNl
Ij48L2Rpdj4KICAgICAgICAgPGRpdiBpZD0ibWFpbi1zdGF0dXMtYmFyIiBjbGFzcz0ic3RhdHVz
LWJhciI+PGRpdiBpZD0iYW5jaG9yZWQtc3RhdHVzLWJhci1pdGVtcyI+PGRpdiBpZD0iY291bnRl
cnMiPjxkaXYgaWQ9ImVycm9yLXdhcm5pbmctY291bnQiIGNsYXNzPSJoaWRkZW4iPjwvZGl2Pjwv
ZGl2PjwvZGl2PjwvZGl2PgogICAgIDwvZGl2PgogICAgIDxkaXYgaWQ9ImRyYXdlciI+PC9kaXY+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rv
ci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCmlu
ZGV4IGYwYWNlOWM2MzhkNDg5Mjg5MWNiNGJkYTI4NDI3OWVjZjUwNjZlMWQuLjhmMjAzNzVkNTQ0
YjQxZWI2NzlhMWM0ODNiZDUzZGZiMDA4MzcxYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCkBAIC0xNTAsNiArMTUwLDEzIEBAIHZhciBX
ZWJJbnNwZWN0b3IgPSB7CiAKICAgICBfY3JlYXRlUGFuZWxzOiBmdW5jdGlvbigpCiAgICAgewor
ICAgICAgICBXZWJJbnNwZWN0b3IubWFpblBhbmVsc1ZpZXcgPSBuZXcgV2ViSW5zcGVjdG9yLlZp
ZXcoKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLm1haW5QYW5lbHNWaWV3Lm1hcmtBc1Jvb3QoKTsK
KyAgICAgICAgV2ViSW5zcGVjdG9yLm1haW5QYW5lbHNWaWV3LmVsZW1lbnQuaWQgPSAibWFpbi1w
YW5lbHMiOworICAgICAgICBXZWJJbnNwZWN0b3IubWFpblBhbmVsc1ZpZXcuZWxlbWVudC5zZXRB
dHRyaWJ1dGUoInNwZWxsY2hlY2siLCBmYWxzZSk7CisgICAgICAgIHZhciBwYXJlbnRFbGVtZW50
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4iKTsKKyAgICAgICAgV2ViSW5zcGVjdG9y
Lm1haW5QYW5lbHNWaWV3LnNob3cocGFyZW50RWxlbWVudCk7CisKICAgICAgICAgaWYgKFdlYklu
c3BlY3Rvci5Xb3JrZXJNYW5hZ2VyLmlzV29ya2VyRnJvbnRlbmQoKSkgewogICAgICAgICAgICAg
dGhpcy5wYW5lbHMuc2NyaXB0cyA9IG5ldyBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsKHRoaXMu
ZGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbCk7CiAgICAgICAgICAgICB0aGlzLnBhbmVscy5jb25z
b2xlID0gbmV3IFdlYkluc3BlY3Rvci5Db25zb2xlUGFuZWwoKTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3MTcxMTc2YTVj
OWRjYzk0MWU2N2FiNWY2YTdhOTNkODI0ZTU4NWVlLi5mNGU5MTY1ODNkOGUxZGRkZGJhMTYwNjAy
Zjg0NTVmYzdmM2U0MmQzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMTAtMjAgIFBhdmVs
IEZlbGRtYW4gIDxwZmVsZG1hbkBnb29nbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6
IGdldCByaWQgb2YgVmlldzo6aGlkZSwgVmlldzo6c2V0IHZpc2libGUsIFZpZXc6OmF0dGFjaC4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwNTIzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0
b3IvZGVidWdnZXIvc2NyaXB0cy1wYW5lbC5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci92aWV3
LWV2ZW50cy1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL3ZpZXctZXZlbnRzLmh0
bWw6CisKIDIwMTEtMTAtMjAgIFpvbHRhbiBBcnZhaSAgPHphcnZhaUBpbmYudS1zemVnZWQuaHU+
CiAKICAgICAgICAgW1F0XSBSZW1vdmluZyB0ZXN0IGZyb20gU2tpcHBlZCBsaXN0LiBUZXN0IHBh
c3NlczogZmFzdC90ZXh0L2p1c3RpZnktcGFkZGluZy1kaXN0cmlidXRpb24uaHRtbApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdHMtcGFuZWwuaHRtbCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLXBhbmVsLmh0bWwKaW5kZXgg
ZTMxMjBmZWIwNjRlNTE0ZDI1OTQ2NDk5NWEyMGVlNjI4MjRlM2RhNS4uZmE0NmI4MGNiNWNhNDc4
Y2NhNGFjN2E1ZmUyMzA0MTViNTY3YTE0YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2RlYnVnZ2VyL3NjcmlwdHMtcGFuZWwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZGVidWdnZXIvc2NyaXB0cy1wYW5lbC5odG1sCkBAIC00OSw2ICs0OSw3IEBAIGZ1bmN0aW9u
IHRlc3QoKQogICAgICAgICB7CiAgICAgICAgICAgICB2YXIgbW9kZWwgPSBjcmVhdGVEZWJ1Z2dl
clByZXNlbnRhdGlvbk1vZGVsTW9jaygpOwogICAgICAgICAgICAgdmFyIHBhbmVsID0gbmV3IFdl
Ykluc3BlY3Rvci5TY3JpcHRzUGFuZWwobW9kZWwpOworICAgICAgICAgICAgcGFuZWwubWFya0Fz
Um9vdCgpOwogCiAgICAgICAgICAgICBwYW5lbC5fdWlTb3VyY2VDb2RlQWRkZWQoeyBkYXRhOiBj
cmVhdGVVSVNvdWNlQ29kZSgiZm9vLmpzIikgfSk7CiAgICAgICAgICAgICBwYW5lbC5fdWlTb3Vy
Y2VDb2RlQWRkZWQoeyBkYXRhOiBjcmVhdGVVSVNvdWNlQ29kZSgiYmFyLmpzIikgfSk7CkBAIC03
NCw2ICs3NSw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICB7CiAgICAgICAgICAgICB2YXIg
bW9kZWwgPSBjcmVhdGVEZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsTW9jaygpOwogICAgICAgICAg
ICAgdmFyIHBhbmVsID0gbmV3IFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwobW9kZWwpOworICAg
ICAgICAgICAgcGFuZWwubWFya0FzUm9vdCgpOwogCiAgICAgICAgICAgICB2YXIgZmlsZXMgPSBb
ImluZGV4Lmh0bWwiLCAic2NyaXB0MS5qcyIsICJzY3JpcHQyLmpzIiwgInNjcmlwdDMuanMiXTsK
ICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZmlsZXMubGVuZ3RoOyArK2kpCkBAIC0x
MzAsNiArMTMyLDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIHsKICAgICAgICAgICAgIHZh
ciBtb2RlbCA9IGNyZWF0ZURlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWxNb2NrKCk7CiAgICAgICAg
ICAgICB2YXIgcGFuZWwgPSBuZXcgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbChtb2RlbCk7Cisg
ICAgICAgICAgICBwYW5lbC5tYXJrQXNSb290KCk7CiAKICAgICAgICAgICAgIHZhciByb290VVJM
ID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIv
IjsKICAgICAgICAgICAgIHZhciBuZXh0SWQgPSAwOwpAQCAtMTYzLDYgKzE2Niw3IEBAIGZ1bmN0
aW9uIHRlc3QoKQogICAgICAgICB7CiAgICAgICAgICAgICB2YXIgbW9kZWwgPSBjcmVhdGVEZWJ1
Z2dlclByZXNlbnRhdGlvbk1vZGVsTW9jaygpOwogICAgICAgICAgICAgdmFyIHBhbmVsID0gbmV3
IFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwobW9kZWwpOworICAgICAgICAgICAgcGFuZWwubWFy
a0FzUm9vdCgpOwogCiAgICAgICAgICAgICBwYW5lbC5fdWlTb3VyY2VDb2RlQWRkZWQoeyBkYXRh
OiBjcmVhdGVVSVNvdWNlQ29kZSgiZm9vLmpzIikgfSk7CiAgICAgICAgICAgICB2YXIgY29tcGls
ZWRTb3VyY2VDb2RlID0gY3JlYXRlVUlTb3VjZUNvZGUoImNvbXBpbGVkLmpzIik7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivdmlldy1ldmVudHMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3ZpZXctZXZlbnRzLWV4cGVjdGVkLnR4dAppbmRleCA2YzM3MWM4
OTQ1NzY0NWJmYWI3ZjE3NzQxMjc0M2I4MjMyYjY2NGY3Li5jNDRmMGM4Zjg2NzJhOTg4YjQwZmRl
ZTBjYTZlYzZiZDAzNGJhZDFlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivdmll
dy1ldmVudHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci92aWV3LWV2
ZW50cy1leHBlY3RlZC50eHQKQEAgLTEsMjYgKzEsMTA5IEBACiBUaGlzIHRlc3RzIHRoYXQgZXZl
bnRzIGFyZSBwcm9wZXJseSBwcm9wYWdhdGVkIHRocm91Z2ggVmlldyBoaWVyYXJjaHkuCiAKLXBh
cmVudFZpZXcuc2hvdyhyb290KQotPiBQYXJlbnRWaWV3Lndhc1Nob3duKCkKLT4gUGFyZW50Vmll
dy5vblJlc2l6ZSgpCi1wYXJlbnRWaWV3LmRvUmVzaXplKCkKLT4gUGFyZW50Vmlldy5vblJlc2l6
ZSgpCi1jaGlsZFZpZXcuc2hvdyhwYXJlbnRWaWV3LmVsZW1lbnQpCi0+IENoaWxkVmlldy53YXNT
aG93bigpCi0+IENoaWxkVmlldy5vblJlc2l6ZSgpCi1wYXJlbnRWaWV3LmRvUmVzaXplKCkKLT4g
UGFyZW50Vmlldy5vblJlc2l6ZSgpCi0+IENoaWxkVmlldy5vblJlc2l6ZSgpCi1wYXJlbnRWaWV3
LmhpZGUoKQotPiBQYXJlbnRWaWV3LndpbGxIaWRlKCkKLT4gQ2hpbGRWaWV3LndpbGxIaWRlKCkK
LXBhcmVudFZpZXcuc2hvdyhyb290KQotPiBQYXJlbnRWaWV3Lndhc1Nob3duKCkKLT4gUGFyZW50
Vmlldy5vblJlc2l6ZSgpCi0+IENoaWxkVmlldy53YXNTaG93bigpCi0+IENoaWxkVmlldy5vblJl
c2l6ZSgpCi1jaGlsZFZpZXcuaGlkZSgpCi0+IENoaWxkVmlldy53aWxsSGlkZSgpCi1wYXJlbnRW
aWV3LmhpZGUoKQotPiBQYXJlbnRWaWV3LndpbGxIaWRlKCkKKworUnVubmluZzogdGVzdFNob3dW
aWV3CitWaWV3KCkKK1ZpZXcuc2hvdygpCisgIFZpZXcud2FzU2hvd24oKQorICBWaWV3Lm9uUmVz
aXplKCkKK1ZpZXcuZGV0YWNoKCkKKyAgVmlldy53aWxsSGlkZSgpCisKK1J1bm5pbmc6IHRlc3RB
cHBlbmRWaWFET00KK1ZpZXcoKQorRXJyb3I6IEF0dGVtcHQgdG8gYWRkIHZpZXcgdmlhIHJlZ3Vs
YXIgRE9NIG9wZXJhdGlvbjogCisKK1J1bm5pbmc6IHRlc3RJbnNlcnRWaWFET00KK1ZpZXcoKQor
RXJyb3I6IEF0dGVtcHQgdG8gYWRkIHZpZXcgdmlhIHJlZ3VsYXIgRE9NIG9wZXJhdGlvbjogCisK
K1J1bm5pbmc6IHRlc3RBdHRhY2hUb09ycGhhbk5vZGUKK1ZpZXcoKQorVmlldy5zaG93KCkKK0Vy
cm9yOiBBdHRlbXB0IHRvIGF0dGFjaCB2aWV3IHRvIG9ycGhhbiBub2RlCisKK1J1bm5pbmc6IHRl
c3RJbW1lZGlhdGVQYXJlbnQKK1BhcmVudCgpCitDaGlsZCgpCitDaGlsZC5zaG93KCkKK09LCisK
K1J1bm5pbmc6IHRlc3REaXN0YW50UGFyZW50CitQYXJlbnQoKQorQ2hpbGQoKQorQ2hpbGQuc2hv
dygpCitPSworCitSdW5uaW5nOiB0ZXN0RXZlbnRzCitQYXJlbnQoKQorQ2hpbGQoKQorUGFyZW50
LnNob3coKQorICBQYXJlbnQud2FzU2hvd24oKQorICBQYXJlbnQub25SZXNpemUoKQorUGFyZW50
LmRvUmVzaXplKCkKKyAgUGFyZW50Lm9uUmVzaXplKCkKK0NoaWxkLnNob3coKQorICBDaGlsZC53
YXNTaG93bigpCisgIENoaWxkLm9uUmVzaXplKCkKK1BhcmVudC5kb1Jlc2l6ZSgpCisgIFBhcmVu
dC5vblJlc2l6ZSgpCisgIENoaWxkLm9uUmVzaXplKCkKK1BhcmVudC5kZXRhY2goKQorICBDaGls
ZC53aWxsSGlkZSgpCisgIFBhcmVudC53aWxsSGlkZSgpCitQYXJlbnQuc2hvdygpCisgIFBhcmVu
dC53YXNTaG93bigpCisgIFBhcmVudC5vblJlc2l6ZSgpCisgIENoaWxkLndhc1Nob3duKCkKKyAg
Q2hpbGQub25SZXNpemUoKQorQ2hpbGQuZGV0YWNoKCkKKyAgQ2hpbGQud2lsbEhpZGUoKQorUGFy
ZW50LmRldGFjaCgpCisgIFBhcmVudC53aWxsSGlkZSgpCisKK1J1bm5pbmc6IHRlc3RWaWV3Q291
bnRlcgorUGFyZW50KCkKK0NoaWxkKCkKK0NoaWxkLnNob3coKQorICBDaGlsZC53YXNTaG93bigp
CisgIENoaWxkLm9uUmVzaXplKCkKKyAgdmlldyBjb3VudGVyOiAxCitDaGlsZCAyKCkKK0NoaWxk
IDIuc2hvdygpCisgIENoaWxkIDIud2FzU2hvd24oKQorICBDaGlsZCAyLm9uUmVzaXplKCkKKyAg
dmlldyBjb3VudGVyOiAyCitDaGlsZC5kZXRhY2goKQorICBDaGlsZC53aWxsSGlkZSgpCisgIHZp
ZXcgY291bnRlcjogMQorQ2hpbGQgMi5kZXRhY2goKQorICBDaGlsZCAyLndpbGxIaWRlKCkKKyAg
dmlldyBjb3VudGVyOiAwCisKK1J1bm5pbmc6IHRlc3RSZW1vdmVDaGlsZAorUGFyZW50KCkKK0No
aWxkKCkKK0NoaWxkLnNob3coKQorICBDaGlsZC53YXNTaG93bigpCisgIENoaWxkLm9uUmVzaXpl
KCkKK0NoaWxkLmRldGFjaCgpCisgIENoaWxkLndpbGxIaWRlKCkKKworUnVubmluZzogdGVzdElt
cGxpY2l0UmVtb3ZlQ2hpbGQKK1BhcmVudCgpCitDaGlsZCgpCitDaGlsZC5zaG93KCkKK0Vycm9y
OiBBdHRlbXB0IHRvIHJlbW92ZSBlbGVtZW50IGNvbnRhaW5pbmcgdmlldyB2aWEgcmVndWxhciBE
T00gb3BlcmF0aW9uCisKK1J1bm5pbmc6IHRlc3RSZW1vdmVDaGlsZHJlbgorUGFyZW50KCkKK0No
aWxkKCkKK0NoaWxkLnNob3coKQorQ2hpbGQuZGV0YWNoKCkKKworUnVubmluZzogdGVzdEltcGxp
Y2l0UmVtb3ZlQ2hpbGRyZW4KK1BhcmVudCgpCitDaGlsZCgpCitDaGlsZC5zaG93KCkKK0Vycm9y
OiBBdHRlbXB0IHRvIHJlbW92ZSBlbGVtZW50IGNvbnRhaW5pbmcgdmlldyB2aWEgcmVndWxhciBE
T00gb3BlcmF0aW9uCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci92aWV3LWV2
ZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3ZpZXctZXZlbnRzLmh0bWwKaW5kZXgg
NzgzZjc2ODEwMTI2NjBkYTZjN2ZmMDE3ZDRkOTdlODUyNzgwNjExYS4uMmEzYmJjNDdmNGM5ZDYy
ZTUyMGIwYmJiMTkzZjA3M2NjZTVkMjhmZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3ZpZXctZXZlbnRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3ZpZXctZXZl
bnRzLmh0bWwKQEAgLTcsNTQgKzcsMjEyIEBAIGZ1bmN0aW9uIHRlc3QoKQogewogICAgIGZ1bmN0
aW9uIFRlc3RWaWV3KHZpZXdOYW1lKQogICAgIHsKLSAgICAgICAgdGhpcy5fdmlld05hbWUgPSB2
aWV3TmFtZTsKICAgICAgICAgV2ViSW5zcGVjdG9yLlZpZXcuY2FsbCh0aGlzKTsKKworICAgICAg
ICB0aGlzLl92aWV3TmFtZSA9IHZpZXdOYW1lOworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJl
c3VsdCh0aGlzLl92aWV3TmFtZSArICIoKSIpOwogICAgIH0KIAogICAgIFRlc3RWaWV3LnByb3Rv
dHlwZSA9IHsKKyAgICAgICAgc2hvdzogZnVuY3Rpb24ocGFyZW50RWxlbWVudCkKKyAgICAgICAg
eworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQodGhpcy5fdmlld05hbWUgKyAi
LnNob3coKSIpOworICAgICAgICAgICAgV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLnNob3cu
Y2FsbCh0aGlzLCBwYXJlbnRFbGVtZW50KTsKKyAgICAgICAgfSwKKworICAgICAgICBkZXRhY2g6
IGZ1bmN0aW9uKCkKKyAgICAgICAgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQodGhpcy5fdmlld05hbWUgKyAiLmRldGFjaCgpIik7CisgICAgICAgICAgICBXZWJJbnNwZWN0
b3IuVmlldy5wcm90b3R5cGUuZGV0YWNoLmNhbGwodGhpcyk7CisgICAgICAgIH0sCisKKyAgICAg
ICAgZG9SZXNpemU6IGZ1bmN0aW9uKCkKKyAgICAgICAgeworICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQodGhpcy5fdmlld05hbWUgKyAiLmRvUmVzaXplKCkiKTsKKyAgICAgICAg
ICAgIFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZS5kb1Jlc2l6ZS5jYWxsKHRoaXMpOworICAg
ICAgICB9LAorCiAgICAgICAgIHdhc1Nob3duOiBmdW5jdGlvbigpCiAgICAgICAgIHsKLSAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI+ICIgKyB0aGlzLl92aWV3TmFtZSArICIu
d2FzU2hvd24oKSIpOwotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLndh
c1Nob3duLmNhbGwodGhpcyk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgi
ICAiICsgdGhpcy5fdmlld05hbWUgKyAiLndhc1Nob3duKCkiKTsKICAgICAgICAgfSwKIAogICAg
ICAgICB3aWxsSGlkZTogZnVuY3Rpb24oKQogICAgICAgICB7Ci0gICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmFkZFJlc3VsdCgiPiAiICsgdGhpcy5fdmlld05hbWUgKyAiLndpbGxIaWRlKCkiKTsK
LSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZS53aWxsSGlkZS5jYWxsKHRo
aXMpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAgIiArIHRoaXMuX3Zp
ZXdOYW1lICsgIi53aWxsSGlkZSgpIik7CiAgICAgICAgIH0sCiAKICAgICAgICAgb25SZXNpemU6
IGZ1bmN0aW9uKCkKICAgICAgICAgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoIj4gIiArIHRoaXMuX3ZpZXdOYW1lICsgIi5vblJlc2l6ZSgpIik7CisgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiICAiICsgdGhpcy5fdmlld05hbWUgKyAiLm9uUmVzaXpl
KCkiKTsKICAgICAgICAgfQogICAgIH07CiAKICAgICBUZXN0Vmlldy5wcm90b3R5cGUuX19wcm90
b19fID0gV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlOwogCi0gICAgZnVuY3Rpb24gdHJhY2VF
dmFsKGV4cHJlc3Npb25zKQotICAgIHsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBleHBy
ZXNzaW9ucy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoZXhwcmVzc2lvbnNbaV0pOwotICAgICAgICAgICAgZXZhbChleHByZXNzaW9uc1tpXSk7Cisg
ICAgSW5zcGVjdG9yVGVzdC5ydW5UZXN0U3VpdGUoWworICAgICAgICBmdW5jdGlvbiB0ZXN0U2hv
d1ZpZXcobmV4dCkKKyAgICAgICAgeworICAgICAgICAgICAgdmFyIHZpZXcgPSBuZXcgVGVzdFZp
ZXcoIlZpZXciKTsKKyAgICAgICAgICAgIHZpZXcuc2hvdyhXZWJJbnNwZWN0b3IubWFpblBhbmVs
c1ZpZXcuZWxlbWVudCk7CisgICAgICAgICAgICB2aWV3LmRldGFjaCgpOworICAgICAgICAgICAg
bmV4dCgpOworICAgICAgICB9LAorCisgICAgICAgIGZ1bmN0aW9uIHRlc3RBcHBlbmRWaWFET00o
bmV4dCkKKyAgICAgICAgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICB2YXIg
dmlldyA9IG5ldyBUZXN0VmlldygiVmlldyIpOworICAgICAgICAgICAgICAgIGRvY3VtZW50LmJv
ZHkuYXBwZW5kQ2hpbGQodmlldy5lbGVtZW50KTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsK
KyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChlKTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIG5leHQoKTsKKyAgICAgICAgfSwKKworICAgICAgICBmdW5jdGlvbiB0
ZXN0SW5zZXJ0VmlhRE9NKG5leHQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAg
ICAgICAgICAgICAgdmFyIHZpZXcgPSBuZXcgVGVzdFZpZXcoIlZpZXciKTsKKyAgICAgICAgICAg
ICAgICBkb2N1bWVudC5ib2R5Lmluc2VydEJlZm9yZSh2aWV3LmVsZW1lbnQsIG51bGwpOworICAg
ICAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRk
UmVzdWx0KGUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbmV4dCgpOworICAgICAgICB9
LAorCisgICAgICAgIGZ1bmN0aW9uIHRlc3RBdHRhY2hUb09ycGhhbk5vZGUobmV4dCkKKyAgICAg
ICAgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICB2YXIgdmlldyA9IG5ldyBU
ZXN0VmlldygiVmlldyIpOworICAgICAgICAgICAgICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJkaXYiKTsKKyAgICAgICAgICAgICAgICB2aWV3LnNob3coZGl2KTsKKyAgICAg
ICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJl
c3VsdChlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG5leHQoKTsKKyAgICAgICAgfSwK
KworICAgICAgICBmdW5jdGlvbiB0ZXN0SW1tZWRpYXRlUGFyZW50KG5leHQpCisgICAgICAgIHsK
KyAgICAgICAgICAgIHZhciBwYXJlbnRWaWV3ID0gbmV3IFRlc3RWaWV3KCJQYXJlbnQiKTsKKyAg
ICAgICAgICAgIHZhciBjaGlsZFZpZXcgPSBuZXcgVGVzdFZpZXcoIkNoaWxkIik7CisgICAgICAg
ICAgICBjaGlsZFZpZXcuc2hvdyhwYXJlbnRWaWV3LmVsZW1lbnQpOworICAgICAgICAgICAgaWYg
KGNoaWxkVmlldy5fcGFyZW50VmlldyA9PT0gcGFyZW50VmlldykKKyAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiT0siKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRkFJTEVEIik7CisgICAgICAgICAgICBu
ZXh0KCk7CisgICAgICAgIH0sCisKKyAgICAgICAgZnVuY3Rpb24gdGVzdERpc3RhbnRQYXJlbnQo
bmV4dCkKKyAgICAgICAgeworICAgICAgICAgICAgdmFyIHBhcmVudFZpZXcgPSBuZXcgVGVzdFZp
ZXcoIlBhcmVudCIpOworICAgICAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoImRpdiIpOworICAgICAgICAgICAgcGFyZW50Vmlldy5lbGVtZW50LmFwcGVuZENoaWxkKGRp
dik7CisgICAgICAgICAgICB2YXIgY2hpbGRWaWV3ID0gbmV3IFRlc3RWaWV3KCJDaGlsZCIpOwor
ICAgICAgICAgICAgY2hpbGRWaWV3LnNob3coZGl2KTsKKworICAgICAgICAgICAgaWYgKGNoaWxk
Vmlldy5fcGFyZW50VmlldyA9PT0gcGFyZW50VmlldykKKyAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmFkZFJlc3VsdCgiT0siKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRkFJTEVEIik7CisgICAgICAgICAgICBuZXh0KCk7
CisgICAgICAgIH0sCisKKyAgICAgICAgZnVuY3Rpb24gdGVzdEV2ZW50cyhuZXh0KQorICAgICAg
ICB7CisgICAgICAgICAgICB2YXIgcGFyZW50VmlldyA9IG5ldyBUZXN0VmlldygiUGFyZW50Iik7
CisgICAgICAgICAgICBwYXJlbnRWaWV3Lm1hcmtBc1Jvb3QoKTsKKworICAgICAgICAgICAgdmFy
IGNoaWxkVmlldyA9IG5ldyBUZXN0VmlldygiQ2hpbGQiKTsKKyAgICAgICAgICAgIHBhcmVudFZp
ZXcuc2hvdyhXZWJJbnNwZWN0b3IubWFpblBhbmVsc1ZpZXcuZWxlbWVudCk7CisgICAgICAgICAg
ICBwYXJlbnRWaWV3LmRvUmVzaXplKCk7CisgICAgICAgICAgICBjaGlsZFZpZXcuc2hvdyhwYXJl
bnRWaWV3LmVsZW1lbnQpOworICAgICAgICAgICAgcGFyZW50Vmlldy5kb1Jlc2l6ZSgpOworICAg
ICAgICAgICAgcGFyZW50Vmlldy5kZXRhY2goKTsKKyAgICAgICAgICAgIHBhcmVudFZpZXcuc2hv
dyhXZWJJbnNwZWN0b3IubWFpblBhbmVsc1ZpZXcuZWxlbWVudCk7CisgICAgICAgICAgICBjaGls
ZFZpZXcuZGV0YWNoKCk7CisgICAgICAgICAgICBwYXJlbnRWaWV3LmRldGFjaCgpOworICAgICAg
ICAgICAgbmV4dCgpOworICAgICAgICB9LAorCisgICAgICAgIGZ1bmN0aW9uIHRlc3RWaWV3Q291
bnRlcihuZXh0KQorICAgICAgICB7CisgICAgICAgICAgICB2YXIgcGFyZW50VmlldyA9IG5ldyBU
ZXN0VmlldygiUGFyZW50Iik7CisgICAgICAgICAgICBwYXJlbnRWaWV3Lm1hcmtBc1Jvb3QoKTsK
KworICAgICAgICAgICAgdmFyIGNoaWxkVmlldyA9IG5ldyBUZXN0VmlldygiQ2hpbGQiKTsKKyAg
ICAgICAgICAgIGNoaWxkVmlldy5zaG93KHBhcmVudFZpZXcuZWxlbWVudCk7CisgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiICB2aWV3IGNvdW50ZXI6ICIgKyBwYXJlbnRWaWV3
LmVsZW1lbnQuX192aWV3Q291bnRlcik7CisKKyAgICAgICAgICAgIHZhciBjaGlsZFZpZXcyID0g
bmV3IFRlc3RWaWV3KCJDaGlsZCAyIik7CisgICAgICAgICAgICBjaGlsZFZpZXcyLnNob3cocGFy
ZW50Vmlldy5lbGVtZW50KTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIg
IHZpZXcgY291bnRlcjogIiArIHBhcmVudFZpZXcuZWxlbWVudC5fX3ZpZXdDb3VudGVyKTsKKwor
ICAgICAgICAgICAgY2hpbGRWaWV3LmRldGFjaCgpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5hZGRSZXN1bHQoIiAgdmlldyBjb3VudGVyOiAiICsgcGFyZW50Vmlldy5lbGVtZW50Ll9fdmll
d0NvdW50ZXIpOworCisgICAgICAgICAgICBjaGlsZFZpZXcyLmRldGFjaCgpOworICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAgdmlldyBjb3VudGVyOiAiICsgcGFyZW50Vmll
dy5lbGVtZW50Ll9fdmlld0NvdW50ZXIpOworCisgICAgICAgICAgICBuZXh0KCk7CisgICAgICAg
IH0sCisKKyAgICAgICAgZnVuY3Rpb24gdGVzdFJlbW92ZUNoaWxkKG5leHQpCisgICAgICAgIHsK
KyAgICAgICAgICAgIHZhciBwYXJlbnRWaWV3ID0gbmV3IFRlc3RWaWV3KCJQYXJlbnQiKTsKKyAg
ICAgICAgICAgIHBhcmVudFZpZXcubWFya0FzUm9vdCgpOworICAgICAgICAgICAgdmFyIGNoaWxk
VmlldyA9IG5ldyBUZXN0VmlldygiQ2hpbGQiKTsKKyAgICAgICAgICAgIGNoaWxkVmlldy5zaG93
KHBhcmVudFZpZXcuZWxlbWVudCk7CisgICAgICAgICAgICBwYXJlbnRWaWV3LmVsZW1lbnQucmVt
b3ZlQ2hpbGQoY2hpbGRWaWV3LmVsZW1lbnQpOworICAgICAgICAgICAgbmV4dCgpOworICAgICAg
ICB9LAorCisgICAgICAgIGZ1bmN0aW9uIHRlc3RJbXBsaWNpdFJlbW92ZUNoaWxkKG5leHQpCisg
ICAgICAgIHsKKyAgICAgICAgICAgIHZhciBwYXJlbnRWaWV3ID0gbmV3IFRlc3RWaWV3KCJQYXJl
bnQiKTsKKyAgICAgICAgICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYi
KTsKKyAgICAgICAgICAgIHBhcmVudFZpZXcuZWxlbWVudC5hcHBlbmRDaGlsZChkaXYpOworCisg
ICAgICAgICAgICB2YXIgY2hpbGRWaWV3ID0gbmV3IFRlc3RWaWV3KCJDaGlsZCIpOworICAgICAg
ICAgICAgY2hpbGRWaWV3LnNob3coZGl2KTsKKworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAg
ICAgICAgICBwYXJlbnRWaWV3LmVsZW1lbnQucmVtb3ZlQ2hpbGQoZGl2KTsKKyAgICAgICAgICAg
IH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChl
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG5leHQoKTsKKyAgICAgICAgfSwKKworICAg
ICAgICBmdW5jdGlvbiB0ZXN0UmVtb3ZlQ2hpbGRyZW4obmV4dCkKKyAgICAgICAgeworICAgICAg
ICAgICAgdmFyIHBhcmVudFZpZXcgPSBuZXcgVGVzdFZpZXcoIlBhcmVudCIpOworICAgICAgICAg
ICAgdmFyIGNoaWxkVmlldyA9IG5ldyBUZXN0VmlldygiQ2hpbGQiKTsKKyAgICAgICAgICAgIGNo
aWxkVmlldy5zaG93KHBhcmVudFZpZXcuZWxlbWVudCk7CisgICAgICAgICAgICBwYXJlbnRWaWV3
LmVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpOworICAg
ICAgICAgICAgcGFyZW50Vmlldy5lbGVtZW50LnJlbW92ZUNoaWxkcmVuKCk7CisgICAgICAgICAg
ICBuZXh0KCk7CisgICAgICAgIH0sCisKKyAgICAgICAgZnVuY3Rpb24gdGVzdEltcGxpY2l0UmVt
b3ZlQ2hpbGRyZW4obmV4dCkKKyAgICAgICAgeworICAgICAgICAgICAgdmFyIHBhcmVudFZpZXcg
PSBuZXcgVGVzdFZpZXcoIlBhcmVudCIpOworICAgICAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgICAgICAgICAgcGFyZW50Vmlldy5lbGVtZW50LmFw
cGVuZENoaWxkKGRpdik7CisKKyAgICAgICAgICAgIHZhciBjaGlsZFZpZXcgPSBuZXcgVGVzdFZp
ZXcoIkNoaWxkIik7CisgICAgICAgICAgICBjaGlsZFZpZXcuc2hvdyhkaXYpOworCisgICAgICAg
ICAgICB0cnkgeworICAgICAgICAgICAgICAgIHBhcmVudFZpZXcuZWxlbWVudC5yZW1vdmVDaGls
ZHJlbigpOworICAgICAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkUmVzdWx0KGUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbmV4dCgp
OwogICAgICAgICB9Ci0gICAgfQotICAgIHZhciBwYXJlbnRWaWV3ID0gbmV3IFRlc3RWaWV3KCJQ
YXJlbnRWaWV3Iik7Ci0gICAgdmFyIGNoaWxkVmlldyA9IG5ldyBUZXN0VmlldygiQ2hpbGRWaWV3
Iik7Ci0gICAgdmFyIHJvb3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWFpbi1wYW5lbHMi
KTsKLSAgICB0cmFjZUV2YWwoWwotICAgICAgICAicGFyZW50Vmlldy5zaG93KHJvb3QpIiwKLSAg
ICAgICAgInBhcmVudFZpZXcuZG9SZXNpemUoKSIsCi0gICAgICAgICJjaGlsZFZpZXcuc2hvdyhw
YXJlbnRWaWV3LmVsZW1lbnQpIiwKLSAgICAgICAgInBhcmVudFZpZXcuZG9SZXNpemUoKSIsCi0g
ICAgICAgICJwYXJlbnRWaWV3LmhpZGUoKSIsCi0gICAgICAgICJwYXJlbnRWaWV3LnNob3cocm9v
dCkiLAotICAgICAgICAiY2hpbGRWaWV3LmhpZGUoKSIsCi0gICAgICAgICJwYXJlbnRWaWV3Lmhp
ZGUoKSIKICAgICBdKTsKLSAgICBjaGlsZFZpZXcuZGV0YWNoKCk7Ci0gICAgcGFyZW50Vmlldy5k
ZXRhY2goKTsKLSAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwogfQogCiA8L3Njcmlw
dD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111966</attachid>
            <date>2011-10-21 08:00:01 -0700</date>
            <delta_ts>2011-10-21 08:50:53 -0700</delta_ts>
            <desc>[Patch] Review comments addressed.</desc>
            <filename>bug-70523-20111021185958.patch</filename>
            <type>text/plain</type>
            <size>73738</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTgwOTYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2ZmFjMGMxMjc5NTFhMDdl
NDE2NGFlNWE1OTU0OTE4ZjhhYTIxMmFlLi5mYTI1MTA1NWNlYTdmOGFmNjViYjZhMjIzMjY0YWRj
OWYxMmJmNWI1IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTA3IEBACisyMDExLTEwLTIwICBQYXZl
bCBGZWxkbWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9y
OiBnZXQgcmlkIG9mIFZpZXc6OmhpZGUsIFZpZXc6OnNldCB2aXNpYmxlLCBWaWV3OjphdHRhY2gs
CisgICAgICAgIFZpZXc6OnNldCB2aXNpYmxlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA1MjMKKworICAgICAgICBUaGlzIGNoYW5nZSBhbHNvIGlu
dHJvZHVjZXMgYXNzZXRpb25zIHRoYXQgZm9yY2VzIHZpZXcgYXR0YWNoIC8gZGV0YWNoIG9wZXJh
dGlvbnMKKyAgICAgICAgdG8gYmUgcGVyZm9ybWVkIGV4cGxpY2l0bHkuCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L0FwcGxpY2F0aW9uQ2FjaGVJdGVtc1ZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXBw
bGljYXRpb25DYWNoZUl0ZW1zVmlldy5wcm90b3R5cGUud2FzU2hvd24pOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkFwcGxpY2F0aW9uQ2FjaGVJdGVtc1ZpZXcucHJvdG90eXBlLndpbGxIaWRlKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5BcHBsaWNhdGlvbkNhY2hlSXRlbXNWaWV3LnByb3RvdHlw
ZS5fdXBkYXRlQ2FsbGJhY2spOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRz
UGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXVkaXRzUGFuZWwucHJvdG90eXBlLndh
c1Nob3duKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVQYW5lbC5qczoK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlUGFuZWwucHJvdG90eXBlLndhc1Nob3duKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlUGFuZWwucHJvdG90eXBlLndpbGxIaWRlKToK
KyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZS53YXNTaG93bik6CisgICAgICAgICog
aW5zcGVjdG9yL2Zyb250LWVuZC9Db29raWVJdGVtc1ZpZXcuanM6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuQ29va2llSXRlbXNWaWV3LnByb3RvdHlwZS53YXNTaG93bik6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuQ29va2llSXRlbXNWaWV3LnByb3RvdHlwZS53aWxsSGlkZSk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuQ29va2llSXRlbXNWaWV3LnByb3RvdHlwZS5fdXBkYXRlV2l0aENvb2tpZXMp
OgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRE9NU3RvcmFnZUl0ZW1zVmlldy5qczoK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01TdG9yYWdlSXRlbXNWaWV3LnByb3RvdHlwZS53YXNT
aG93bik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZUl0ZW1zVmlldy5wcm90b3R5
cGUud2lsbEhpZGUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRGF0YWJhc2VRdWVy
eVZpZXcuanM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9EYXRhYmFzZVRhYmxlVmll
dy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EYXRhYmFzZVRhYmxlVmlldy5wcm90b3R5cGUu
d2FzU2hvd24pOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRGV0YWlsZWRIZWFwc2hv
dFZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGV0YWlsZWRIZWFwc2hvdFZpZXcucHJv
dG90eXBlLndpbGxIaWRlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZXRhaWxlZEhlYXBzaG90
Vmlldy5wcm90b3R5cGUuX2NoYW5nZVZpZXcpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1l
bmQvRHJhd2VyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRyYXdlci5wcm90b3R5cGUuaGlk
ZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwucHJvdG90eXBlLndhc1Nob3duKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50c1BhbmVsLnByb3RvdHlwZS53aWxsSGlkZSk6Cisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9FbXB0eVZpZXcuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuRW1wdHlWaWV3LnByb3RvdHlwZS53YXNTaG93bik6CisgICAgICAgICogaW5zcGVj
dG9yL2Zyb250LWVuZC9Gb250Vmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Gb250Vmll
dy5wcm90b3R5cGUud2FzU2hvd24pOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvSUZy
YW1lVmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5JRnJhbWVWaWV3KToKKyAgICAgICAg
KiBpbnNwZWN0b3IvZnJvbnQtZW5kL0ltYWdlVmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5JbWFnZVZpZXcucHJvdG90eXBlLndhc1Nob3duKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJv
bnQtZW5kL05ldHdvcmtJdGVtVmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OZXR3b3Jr
SXRlbVZpZXcucHJvdG90eXBlLndhc1Nob3duKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNv
dXJjZUNvbnRlbnRWaWV3LnByb3RvdHlwZS53YXNTaG93bik6CisgICAgICAgICogaW5zcGVjdG9y
L2Zyb250LWVuZC9OZXR3b3JrUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmV0d29y
a0xvZ1ZpZXcucHJvdG90eXBlLndhc1Nob3duKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OZXR3
b3JrTG9nVmlldy5wcm90b3R5cGUud2lsbEhpZGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5l
dHdvcmtQYW5lbC5wcm90b3R5cGUud2FzU2hvd24pOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9u
dC1lbmQvUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUGFuZWwpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZS5zaG93KToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5QYW5lbC5wcm90b3R5cGUud2FzU2hvd24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlBhbmVs
LnByb3RvdHlwZS53aWxsSGlkZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9QYW5l
bEVuYWJsZXJWaWV3LmpzOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZVZp
ZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1BVUHJvZmlsZVZpZXcucHJvdG90eXBlLndp
bGxIaWRlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWwuanM6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUud2FzU2hvd24p
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlLl9hZGRQcm9m
aWxlSGVhZGVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlw
ZS5fdXBkYXRlSW50ZXJmYWNlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVs
LnByb3RvdHlwZS5fZW5hYmxlRGV0YWlsZWRIZWFwUHJvZmlsZXMpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9mcm9udC1lbmQvUmVzb3VyY2VDb29raWVzVmlldy5qczoKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5SZXNvdXJjZUNvb2tpZXNWaWV3LnByb3RvdHlwZS53YXNTaG93bik6CisgICAgICAgICog
aW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZUhUTUxWaWV3LmpzOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlJlc291cmNlSFRNTFZpZXcucHJvdG90eXBlLndhc1Nob3duKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5SZXNvdXJjZUhUTUxWaWV3LnByb3RvdHlwZS53aWxsSGlkZSk6CisgICAgICAg
ICogaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZUpTT05WaWV3LmpzOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlJlc291cmNlSlNPTlZpZXcucGFyc2VKU09OLldlYkluc3BlY3Rvci5SZXNvdXJj
ZUpTT05WaWV3LnByb3RvdHlwZS53YXNTaG93bik6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250
LWVuZC9SZXNvdXJjZVRpbWluZ1ZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3Vy
Y2VUaW1pbmdWaWV3LnByb3RvdHlwZS53YXNTaG93bik6CisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9SZXNvdXJjZXNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJj
ZXNQYW5lbC5wcm90b3R5cGUud2FzU2hvd24pOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1l
bmQvU2NyaXB0c1BhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5w
cm90b3R5cGUud2FzU2hvd24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5w
cm90b3R5cGUuX3VwZGF0ZURlYnVnZ2VyQnV0dG9ucyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9Tb3VyY2VGcmFtZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFt
ZS5wcm90b3R5cGUud2FzU2hvd24pOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVGlt
ZWxpbmVQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3Rv
dHlwZS53YXNTaG93bik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90
b3R5cGUud2lsbEhpZGUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVmlldy5qczoK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5WaWV3KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaWV3
LnByb3RvdHlwZS5nZXQgdmlzaWJsZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlldy5wcm90
b3R5cGUuc2V0SGlkZU9uRGV0YWNoKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaWV3LnByb3Rv
dHlwZS5fd2FzU2hvd24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLl93
aWxsSGlkZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUuX29uUmVzaXpl
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZS53YXNTaG93bik6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUud2lsbEhpZGUpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLm9uUmVzaXplKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5WaWV3LnByb3RvdHlwZS5zaG93KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaWV3LnByb3Rv
dHlwZS5kZXRhY2gpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLmRvUmVz
aXplKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZS5kaXNwYXRjaFRvU2Vs
ZkFuZENoaWxkcmVuKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZS5kaXNw
YXRjaFRvQ2hpbGRyZW4pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLl9o
YW5kbGVJbnNlcnRlZEludG9Eb2N1bWVudCk6CisKIDIwMTEtMTAtMjEgIEFsZWphbmRybyBHLiBD
YXN0cm8gIDxhbGV4QGlnYWxpYS5jb20+CiAKICAgICAgICAgW2NhaXJvXSBGb3J3YXJkIGRlY2xh
cmF0aW9uIG9mIEdyYXBoaWNzQ29udGV4dFN0YXRlIHVzZXMgY2xhc3MgaW5zdGVhZCBvZiBzdHJ1
Y3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQWR2YW5j
ZWRTZWFyY2hDb250cm9sbGVyLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9BZHZhbmNlZFNlYXJjaENvbnRyb2xsZXIuanMKaW5kZXggY2NhYTRiNzMzODRmNjUzMGU1NTU2
ZWNmM2ZhMWI3YjljNzAzMTI0YS4uM2VjNzM3YWIwYzY4MTExOGY0OGQ2ZjQ2NWIwYmU4ZGI4YjY3
YzQ3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BZHZh
bmNlZFNlYXJjaENvbnRyb2xsZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9BZHZhbmNlZFNlYXJjaENvbnRyb2xsZXIuanMKQEAgLTY4LDcgKzY4LDcgQEAgV2Vi
SW5zcGVjdG9yLkFkdmFuY2VkU2VhcmNoQ29udHJvbGxlci5wcm90b3R5cGUgPSB7CiAgICAgICAg
IGlmICghdGhpcy5fc2VhcmNoVmlldykKICAgICAgICAgICAgIHRoaXMuX3NlYXJjaFZpZXcgPSBu
ZXcgV2ViSW5zcGVjdG9yLlNlYXJjaFZpZXcodGhpcyk7CiAgICAgICAgIAotICAgICAgICBpZiAo
dGhpcy5fc2VhcmNoVmlldy52aXNpYmxlKQorICAgICAgICBpZiAodGhpcy5fc2VhcmNoVmlldy5p
c1Nob3dpbmcoKSkKICAgICAgICAgICAgIHRoaXMuX3NlYXJjaFZpZXcuZm9jdXMoKTsKICAgICAg
ICAgZWxzZQogICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnNob3dWaWV3SW5EcmF3ZXIodGhpcy5f
c2VhcmNoVmlldyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0FwcGxpY2F0aW9uQ2FjaGVJdGVtc1ZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0FwcGxpY2F0aW9uQ2FjaGVJdGVtc1ZpZXcuanMKaW5kZXggOGNjYzg4YjY0
YjliMTlhYzg1MzRhNzQ3Mjk3ZjU1YjRmYTBiZWFmYS4uYzlkNmVkYWNlMzMzY2ZiMzBmYWNiMTJi
M2NjZDZjM2Q2ZTkyMDAwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9BcHBsaWNhdGlvbkNhY2hlSXRlbXNWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvQXBwbGljYXRpb25DYWNoZUl0ZW1zVmlldy5qcwpAQCAtMTAz
LDE2ICsxMDMsMTQgQEAgV2ViSW5zcGVjdG9yLkFwcGxpY2F0aW9uQ2FjaGVJdGVtc1ZpZXcucHJv
dG90eXBlID0gewogICAgICAgICB9CiAgICAgfSwKIAotICAgIHNob3c6IGZ1bmN0aW9uKHBhcmVu
dEVsZW1lbnQpCisgICAgd2FzU2hvd246IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIFdlYklu
c3BlY3Rvci5WaWV3LnByb3RvdHlwZS5zaG93LmNhbGwodGhpcywgcGFyZW50RWxlbWVudCk7CiAg
ICAgICAgIHRoaXMudXBkYXRlTmV0d29ya1N0YXRlKG5hdmlnYXRvci5vbkxpbmUpOwogICAgICAg
ICB0aGlzLl91cGRhdGUoKTsKICAgICB9LAogCi0gICAgaGlkZTogZnVuY3Rpb24oKQorICAgIHdp
bGxIaWRlOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBXZWJJbnNwZWN0b3IuVmlldy5wcm90
b3R5cGUuaGlkZS5jYWxsKHRoaXMpOwogICAgICAgICB0aGlzLmRlbGV0ZUJ1dHRvbi52aXNpYmxl
ID0gZmFsc2U7CiAgICAgfSwKIApAQCAtMTc5LDcgKzE3Nyw3IEBAIFdlYkluc3BlY3Rvci5BcHBs
aWNhdGlvbkNhY2hlSXRlbXNWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fcG9wdWxh
dGVEYXRhR3JpZCgpOwogICAgICAgICB0aGlzLl9kYXRhR3JpZC5hdXRvU2l6ZUNvbHVtbnMoMjAs
IDgwKTsKICAgICAgICAgdGhpcy5fZGF0YUdyaWQuZWxlbWVudC5yZW1vdmVTdHlsZUNsYXNzKCJo
aWRkZW4iKTsKLSAgICAgICAgdGhpcy5fZW1wdHlWaWV3LmhpZGUoKTsKKyAgICAgICAgdGhpcy5f
ZW1wdHlWaWV3LmRldGFjaCgpOwogICAgICAgICB0aGlzLmRlbGV0ZUJ1dHRvbi52aXNpYmxlID0g
dHJ1ZTsKIAogICAgICAgICB2YXIgdG90YWxTaXplU3RyaW5nID0gTnVtYmVyLmJ5dGVzVG9TdHJp
bmcodGhpcy5fc2l6ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0F1ZGl0c1BhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9BdWRpdHNQYW5lbC5qcwppbmRleCA1N2RlYmYzMDJiM2ZiYjEzNjdmZDY4YTQ4ZWQ2NWM4ZTQx
Mjg0OTc4Li45MmI1MzFmNDVkZTNiNWRlOTg4YzcwOTljMmJmZjM3MzIxMDdjMTY1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1ZGl0c1BhbmVsLmpzCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRzUGFuZWwuanMKQEAg
LTI0NCw5ICsyNDQsOSBAQCBXZWJJbnNwZWN0b3IuQXVkaXRzUGFuZWwucHJvdG90eXBlID0gewog
ICAgICAgICAgICAgeC5zaG93KHRoaXMudmlld3NDb250YWluZXJFbGVtZW50KTsKICAgICB9LAog
Ci0gICAgc2hvdzogZnVuY3Rpb24oKQorICAgIHdhc1Nob3duOiBmdW5jdGlvbigpCiAgICAgewot
ICAgICAgICBXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBlLnNob3cuY2FsbCh0aGlzKTsKKyAg
ICAgICAgV2ViSW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZS53YXNTaG93bi5jYWxsKHRoaXMpOwog
ICAgICAgICBpZiAoIXRoaXMuX3Zpc2libGVWaWV3KQogICAgICAgICAgICAgdGhpcy5hdWRpdHNJ
dGVtVHJlZUVsZW1lbnQuc2VsZWN0KCk7CiAgICAgfSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVBhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlUGFuZWwuanMKaW5kZXggZjc2ZTViNjQ1NDVlMTNk
NmY4OTM5Y2QxNTc4YTE4YmIyYTk3ZjU5NS4uNjIxNTdkMjZiYzRlMjM0OTZkZTFiY2JmOTQxZTMx
MWJmZmNiNWFiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9Db25zb2xlUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9Db25zb2xlUGFuZWwuanMKQEAgLTUwLDIzICs1MCwyMyBAQCBXZWJJbnNwZWN0b3IuQ29uc29s
ZVBhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJuIHRoaXMuX3ZpZXcuc3RhdHVzQmFy
SXRlbXM7CiAgICAgfSwKIAotICAgIHNob3c6IGZ1bmN0aW9uKCkKKyAgICB3YXNTaG93bjogZnVu
Y3Rpb24oKQogICAgIHsKKyAgICAgICAgV2ViSW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZS53YXNT
aG93bi5jYWxsKHRoaXMpOwogICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLmRyYXdlci52aXNpYmxl
KSB7CiAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZHJhd2VyLmhpZGUoV2ViSW5zcGVjdG9yLkRy
YXdlci5BbmltYXRpb25UeXBlLkltbWVkaWF0ZWx5KTsKICAgICAgICAgICAgIHRoaXMuX2RyYXdl
cldhc1Zpc2libGUgPSB0cnVlOwogICAgICAgICB9Ci0gICAgICAgIFdlYkluc3BlY3Rvci5QYW5l
bC5wcm90b3R5cGUuc2hvdy5jYWxsKHRoaXMpOwogICAgICAgICB0aGlzLl92aWV3LnNob3codGhp
cy5lbGVtZW50KTsKICAgICB9LAogCi0gICAgaGlkZTogZnVuY3Rpb24oKQorICAgIHdpbGxIaWRl
OiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBl
LmhpZGUuY2FsbCh0aGlzKTsKICAgICAgICAgaWYgKHRoaXMuX2RyYXdlcldhc1Zpc2libGUpIHsK
ICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kcmF3ZXIuc2hvdyh0aGlzLl92aWV3LCBXZWJJbnNw
ZWN0b3IuRHJhd2VyLkFuaW1hdGlvblR5cGUuSW1tZWRpYXRlbHkpOwogICAgICAgICAgICAgZGVs
ZXRlIHRoaXMuX2RyYXdlcldhc1Zpc2libGU7CiAgICAgICAgIH0KKyAgICAgICAgV2ViSW5zcGVj
dG9yLlBhbmVsLnByb3RvdHlwZS53aWxsSGlkZS5jYWxsKHRoaXMpOwogICAgIH0sCiAKICAgICBz
ZWFyY2hDYW5jZWxlZDogZnVuY3Rpb24oKQpAQCAtMTMyLDcgKzEzMiw3IEBAIFdlYkluc3BlY3Rv
ci5Db25zb2xlUGFuZWwucHJvdG90eXBlID0gewogCiAgICAgX2NvbnNvbGVNZXNzYWdlQWRkZWQ6
IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLl9zZWFyY2hSZWdleCB8
fCAhdGhpcy52aXNpYmxlKQorICAgICAgICBpZiAoIXRoaXMuX3NlYXJjaFJlZ2V4IHx8ICF0aGlz
LmlzU2hvd2luZygpKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB2YXIgbWVzc2FnZSA9
IGV2ZW50LmRhdGE7CiAgICAgICAgIHRoaXMuX3NlYXJjaFJlZ2V4Lmxhc3RJbmRleCA9IDA7CkBA
IC0xNDgsNyArMTQ4LDcgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVQYW5lbC5wcm90b3R5cGUgPSB7
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIHRoaXMuX2NsZWFyQ3VycmVudFNlYXJjaFJl
c3VsdEhpZ2hsaWdodCgpOwogICAgICAgICB0aGlzLl9zZWFyY2hSZXN1bHRzLmxlbmd0aCA9IDA7
Ci0gICAgICAgIGlmICh0aGlzLnZpc2libGUpCisgICAgICAgIGlmICh0aGlzLmlzU2hvd2luZygp
KQogICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnNlYXJjaENvbnRyb2xsZXIudXBkYXRlU2VhcmNo
TWF0Y2hlc0NvdW50KDAsIHRoaXMpOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzCmluZGV4IDg0ZDAxMTEwN2Y5YTZiNDg4
NmY2ZmJlMzk4ZWZjZTkzNjYyNDQxYmIuLmY0Zjg0MzJjYTk4MWE4OTVkMGZhNDU1OTZkNjJiNTcx
ZTQwOTg4MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
Q29uc29sZVZpZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9D
b25zb2xlVmlldy5qcwpAQCAtMjI2LDcgKzIyNiw2IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlVmll
dy5wcm90b3R5cGUgPSB7CiAKICAgICB3YXNTaG93bjogZnVuY3Rpb24oKQogICAgIHsKLSAgICAg
ICAgV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLndhc1Nob3duLmNhbGwodGhpcyk7CiAgICAg
ICAgIGlmICghdGhpcy5wcm9tcHQuaXNDYXJldEluc2lkZVByb21wdCgpKQogICAgICAgICAgICAg
dGhpcy5wcm9tcHQubW92ZUNhcmV0VG9FbmRPZlByb21wdCgpOwogICAgIH0sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0Nvb2tpZUl0ZW1zVmlldy5qcyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29va2llSXRlbXNWaWV3LmpzCmlu
ZGV4IGJlYTgzNjQ1NzIwYzZlYjNlZWIxMjg4NjI0ZjdhZmJjZWRkMDZiMWMuLjQ4YWEyOTM0MTY5
ZmM2NjdlN2Y1NjI1NjEyM2FkYzJjNjUxZjdhYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvQ29va2llSXRlbXNWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29va2llSXRlbXNWaWV3LmpzCkBAIC01OSwxNSArNTks
MTMgQEAgV2ViSW5zcGVjdG9yLkNvb2tpZUl0ZW1zVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAg
IHJldHVybiBbdGhpcy5fcmVmcmVzaEJ1dHRvbi5lbGVtZW50LCB0aGlzLl9kZWxldGVCdXR0b24u
ZWxlbWVudF07CiAgICAgfSwKIAotICAgIHNob3c6IGZ1bmN0aW9uKHBhcmVudEVsZW1lbnQpCisg
ICAgd2FzU2hvd246IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5WaWV3
LnByb3RvdHlwZS5zaG93LmNhbGwodGhpcywgcGFyZW50RWxlbWVudCk7CiAgICAgICAgIHRoaXMu
X3VwZGF0ZSgpOwogICAgIH0sCiAKLSAgICBoaWRlOiBmdW5jdGlvbigpCisgICAgd2lsbEhpZGU6
IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZS5o
aWRlLmNhbGwodGhpcyk7CiAgICAgICAgIHRoaXMuX2RlbGV0ZUJ1dHRvbi52aXNpYmxlID0gZmFs
c2U7CiAgICAgfSwKIApAQCAtMTAyLDcgKzEwMCw3IEBAIFdlYkluc3BlY3Rvci5Db29raWVJdGVt
c1ZpZXcucHJvdG90eXBlID0gewogCiAgICAgICAgIHRoaXMuX2Nvb2tpZXNUYWJsZS5zZXRDb29r
aWVzKHRoaXMuX2Nvb2tpZXMpOwogICAgICAgICB0aGlzLl9jb29raWVzVGFibGUuZWxlbWVudC5y
ZW1vdmVTdHlsZUNsYXNzKCJoaWRkZW4iKTsKLSAgICAgICAgdGhpcy5fZW1wdHlWaWV3LmhpZGUo
KTsKKyAgICAgICAgdGhpcy5fZW1wdHlWaWV3LmRldGFjaCgpOwogICAgICAgICBpZiAoaXNBZHZh
bmNlZCkgewogICAgICAgICAgICAgdGhpcy5fdHJlZUVsZW1lbnQuc3VidGl0bGUgPSBTdHJpbmcu
c3ByaW50ZihXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIiVkIGNvb2tpZXMgKCVzKSIpLCB0aGlzLl9j
b29raWVzLmxlbmd0aCwKICAgICAgICAgICAgICAgICBOdW1iZXIuYnl0ZXNUb1N0cmluZyh0aGlz
Ll90b3RhbFNpemUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvRE9NU3RvcmFnZUl0ZW1zVmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvRE9NU3RvcmFnZUl0ZW1zVmlldy5qcwppbmRleCAxNWI0YzFiMDFkMjNmYjk2Zjk1
MTM5NjIwZWE5MGUzYjllM2E3ODk0Li5iODY5NGY3YzM5NDI5NWJmZjY2OTUzODA4M2QyYWQ1YTAy
OWQ3YjkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RP
TVN0b3JhZ2VJdGVtc1ZpZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9ET01TdG9yYWdlSXRlbXNWaWV3LmpzCkBAIC01MCwxNSArNTAsMTMgQEAgV2ViSW5zcGVj
dG9yLkRPTVN0b3JhZ2VJdGVtc1ZpZXcucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gW3Ro
aXMucmVmcmVzaEJ1dHRvbi5lbGVtZW50LCB0aGlzLmRlbGV0ZUJ1dHRvbi5lbGVtZW50XTsKICAg
ICB9LAogCi0gICAgc2hvdzogZnVuY3Rpb24ocGFyZW50RWxlbWVudCkKKyAgICB3YXNTaG93bjog
ZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLnNo
b3cuY2FsbCh0aGlzLCBwYXJlbnRFbGVtZW50KTsKICAgICAgICAgdGhpcy51cGRhdGUoKTsKICAg
ICB9LAogCi0gICAgaGlkZTogZnVuY3Rpb24oKQorICAgIHdpbGxIaWRlOiBmdW5jdGlvbigpCiAg
ICAgewotICAgICAgICBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUuaGlkZS5jYWxsKHRoaXMp
OwogICAgICAgICB0aGlzLmRlbGV0ZUJ1dHRvbi52aXNpYmxlID0gZmFsc2U7CiAgICAgfSwKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EYXRhYmFzZVF1
ZXJ5Vmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGF0YWJhc2VR
dWVyeVZpZXcuanMKaW5kZXggNjkyMDdjZjc2OTk5OTNkMWZhMGUwMDJhYTI2NTZkYTk4Y2M0NWRj
ZS4uZTA0MzU0YzBkYWY2Y2ZiNTFmODM3NGUxMjAzNjBjZjg4MjFlZDkzOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EYXRhYmFzZVF1ZXJ5Vmlldy5qcwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RhdGFiYXNlUXVlcnlWaWV3
LmpzCkBAIC01NCwxMCArNTQsOCBAQCBXZWJJbnNwZWN0b3IuRGF0YWJhc2VRdWVyeVZpZXcuRXZl
bnRzID0gewogfQogCiBXZWJJbnNwZWN0b3IuRGF0YWJhc2VRdWVyeVZpZXcucHJvdG90eXBlID0g
ewotICAgIHNob3c6IGZ1bmN0aW9uKHBhcmVudEVsZW1lbnQpCisgICAgd2FzU2hvd246IGZ1bmN0
aW9uKCkKICAgICB7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZS5zaG93LmNh
bGwodGhpcywgcGFyZW50RWxlbWVudCk7Ci0KICAgICAgICAgZnVuY3Rpb24gbW92ZUJhY2tJZk91
dHNpZGUoKQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAoIXRoaXMucHJvbXB0LmlzQ2FyZXRJ
bnNpZGVQcm9tcHQoKSAmJiB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuaXNDb2xsYXBzZWQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RhdGFiYXNlVGFibGVW
aWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EYXRhYmFzZVRhYmxl
Vmlldy5qcwppbmRleCAxOGE1Y2FjNjQyM2NkYjNlZTBiMDE0NzJjMzIyMTEzZGNiYTk3YWZhLi41
NzZlY2UzNTZmMWUzMzRmODBlMGFiNDQ5N2IyYWFhYWI2ZDU2ZTA0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RhdGFiYXNlVGFibGVWaWV3LmpzCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGF0YWJhc2VUYWJsZVZpZXcuanMK
QEAgLTQyLDkgKzQyLDggQEAgV2ViSW5zcGVjdG9yLkRhdGFiYXNlVGFibGVWaWV3ID0gZnVuY3Rp
b24oZGF0YWJhc2UsIHRhYmxlTmFtZSkKIH0KIAogV2ViSW5zcGVjdG9yLkRhdGFiYXNlVGFibGVW
aWV3LnByb3RvdHlwZSA9IHsKLSAgICBzaG93OiBmdW5jdGlvbihwYXJlbnRFbGVtZW50KQorICAg
IHdhc1Nob3duOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBXZWJJbnNwZWN0b3IuVmlldy5w
cm90b3R5cGUuc2hvdy5jYWxsKHRoaXMsIHBhcmVudEVsZW1lbnQpOwogICAgICAgICB0aGlzLnVw
ZGF0ZSgpOwogICAgIH0sCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvRGV0YWlsZWRIZWFwc2hvdFZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0RldGFpbGVkSGVhcHNob3RWaWV3LmpzCmluZGV4IGI1Y2RjMDk4ZDRlZThk
MWVmMGNmNGNmODI2N2UxODhiMTg5MWJkNWIuLjY4M2ZmYTc1ZTM4OTI5MmVhMzMzYzA5Nzg5MzUw
NmZiZWQzOTU5YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvRGV0YWlsZWRIZWFwc2hvdFZpZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9EZXRhaWxlZEhlYXBzaG90Vmlldy5qcwpAQCAtNTg2LDcgKzU4Niw2IEBAIFdl
Ykluc3BlY3Rvci5EZXRhaWxlZEhlYXBzaG90VmlldyA9IGZ1bmN0aW9uKHBhcmVudCwgcHJvZmls
ZSkKICAgICB0aGlzLmNvbnRhaW5tZW50RGF0YUdyaWQuZWxlbWVudC5hZGRFdmVudExpc3RlbmVy
KCJjbGljayIsIHRoaXMuX21vdXNlQ2xpY2tJbkNvbnRlbnRzR3JpZC5iaW5kKHRoaXMpLCB0cnVl
KTsKICAgICB0aGlzLmNvbnRhaW5tZW50RGF0YUdyaWQuZWxlbWVudC5hZGRFdmVudExpc3RlbmVy
KCJtb3VzZWRvd24iLCB0aGlzLl9tb3VzZURvd25JbkNvbnRlbnRzR3JpZC5iaW5kKHRoaXMpLCB0
cnVlKTsKICAgICB0aGlzLmNvbnRhaW5tZW50Vmlldy5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMu
Y29udGFpbm1lbnREYXRhR3JpZC5lbGVtZW50KTsKLSAgICB0aGlzLnZpZXdzQ29udGFpbmVyLmFw
cGVuZENoaWxkKHRoaXMuY29udGFpbm1lbnRWaWV3LmVsZW1lbnQpOwogCiAgICAgdGhpcy5jb25z
dHJ1Y3RvcnNWaWV3ID0gbmV3IFdlYkluc3BlY3Rvci5WaWV3KCk7CiAgICAgdGhpcy5jb25zdHJ1
Y3RvcnNWaWV3LmVsZW1lbnQuYWRkU3R5bGVDbGFzcygidmlldyIpOwpAQCAtNTk0LDE0ICs1OTMs
MTIgQEAgV2ViSW5zcGVjdG9yLkRldGFpbGVkSGVhcHNob3RWaWV3ID0gZnVuY3Rpb24ocGFyZW50
LCBwcm9maWxlKQogICAgIHRoaXMuY29uc3RydWN0b3JzRGF0YUdyaWQuZWxlbWVudC5hZGRFdmVu
dExpc3RlbmVyKCJjbGljayIsIHRoaXMuX21vdXNlQ2xpY2tJbkNvbnRlbnRzR3JpZC5iaW5kKHRo
aXMpLCB0cnVlKTsKICAgICB0aGlzLmNvbnN0cnVjdG9yc0RhdGFHcmlkLmVsZW1lbnQuYWRkRXZl
bnRMaXN0ZW5lcigibW91c2Vkb3duIiwgdGhpcy5fbW91c2VEb3duSW5Db250ZW50c0dyaWQuYmlu
ZCh0aGlzKSwgdHJ1ZSk7CiAgICAgdGhpcy5jb25zdHJ1Y3RvcnNWaWV3LmVsZW1lbnQuYXBwZW5k
Q2hpbGQodGhpcy5jb25zdHJ1Y3RvcnNEYXRhR3JpZC5lbGVtZW50KTsKLSAgICB0aGlzLnZpZXdz
Q29udGFpbmVyLmFwcGVuZENoaWxkKHRoaXMuY29uc3RydWN0b3JzVmlldy5lbGVtZW50KTsKIAog
ICAgIHRoaXMuZGlmZlZpZXcgPSBuZXcgV2ViSW5zcGVjdG9yLlZpZXcoKTsKICAgICB0aGlzLmRp
ZmZWaWV3LmVsZW1lbnQuYWRkU3R5bGVDbGFzcygidmlldyIpOwogICAgIHRoaXMuZGlmZkRhdGFH
cmlkID0gbmV3IFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3REaWZmRGF0YUdyaWQoKTsKICAgICB0
aGlzLmRpZmZEYXRhR3JpZC5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5f
bW91c2VDbGlja0luQ29udGVudHNHcmlkLmJpbmQodGhpcyksIHRydWUpOwogICAgIHRoaXMuZGlm
ZlZpZXcuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLmRpZmZEYXRhR3JpZC5lbGVtZW50KTsKLSAg
ICB0aGlzLnZpZXdzQ29udGFpbmVyLmFwcGVuZENoaWxkKHRoaXMuZGlmZlZpZXcuZWxlbWVudCk7
CiAKICAgICB0aGlzLmRvbWluYXRvclZpZXcgPSBuZXcgV2ViSW5zcGVjdG9yLlZpZXcoKTsKICAg
ICB0aGlzLmRvbWluYXRvclZpZXcuZWxlbWVudC5hZGRTdHlsZUNsYXNzKCJ2aWV3Iik7CkBAIC02
MDksNyArNjA2LDYgQEAgV2ViSW5zcGVjdG9yLkRldGFpbGVkSGVhcHNob3RWaWV3ID0gZnVuY3Rp
b24ocGFyZW50LCBwcm9maWxlKQogICAgIHRoaXMuZG9taW5hdG9yRGF0YUdyaWQuZWxlbWVudC5h
ZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuX21vdXNlQ2xpY2tJbkNvbnRlbnRzR3JpZC5i
aW5kKHRoaXMpLCB0cnVlKTsKICAgICB0aGlzLmRvbWluYXRvckRhdGFHcmlkLmVsZW1lbnQuYWRk
RXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIiwgdGhpcy5fbW91c2VEb3duSW5Db250ZW50c0dyaWQu
YmluZCh0aGlzKSwgdHJ1ZSk7CiAgICAgdGhpcy5kb21pbmF0b3JWaWV3LmVsZW1lbnQuYXBwZW5k
Q2hpbGQodGhpcy5kb21pbmF0b3JEYXRhR3JpZC5lbGVtZW50KTsKLSAgICB0aGlzLnZpZXdzQ29u
dGFpbmVyLmFwcGVuZENoaWxkKHRoaXMuZG9taW5hdG9yVmlldy5lbGVtZW50KTsKIAogICAgIHRo
aXMucmV0YWlubWVudFZpZXdIZWFkZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsK
ICAgICB0aGlzLnJldGFpbm1lbnRWaWV3SGVhZGVyLmFkZFN0eWxlQ2xhc3MoInJldGFpbmVycy12
aWV3LWhlYWRlciIpOwpAQCAtNzM5LDkgKzczNSw4IEBAIFdlYkluc3BlY3Rvci5EZXRhaWxlZEhl
YXBzaG90Vmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiB0aGlzLmJhc2VQcm9maWxl
LnByb3h5OwogICAgIH0sCiAKLSAgICBzaG93OiBmdW5jdGlvbihwYXJlbnRFbGVtZW50KQorICAg
IHdhc1Nob3duOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBXZWJJbnNwZWN0b3IuVmlldy5w
cm90b3R5cGUuc2hvdy5jYWxsKHRoaXMsIHBhcmVudEVsZW1lbnQpOwogICAgICAgICBpZiAoIXRo
aXMucHJvZmlsZVdyYXBwZXIubG9hZGVkKQogICAgICAgICAgICAgdGhpcy5fbG9hZFByb2ZpbGUo
dGhpcy5fcHJvZmlsZVVpZCwgcHJvZmlsZUNhbGxiYWNrMS5iaW5kKHRoaXMpKTsKICAgICAgICAg
ZWxzZQpAQCAtNzYwLDkgKzc1NSw4IEBAIFdlYkluc3BlY3Rvci5EZXRhaWxlZEhlYXBzaG90Vmll
dy5wcm90b3R5cGUgPSB7CiAgICAgICAgIH0KICAgICB9LAogCi0gICAgaGlkZTogZnVuY3Rpb24o
KQorICAgIHdpbGxIaWRlOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBXZWJJbnNwZWN0b3Iu
Vmlldy5wcm90b3R5cGUuaGlkZS5jYWxsKHRoaXMpOwogICAgICAgICB0aGlzLl9jdXJyZW50U2Vh
cmNoUmVzdWx0SW5kZXggPSAtMTsKICAgICB9LAogCkBAIC0xMDY4LDcgKzEwNjIsNyBAQCBXZWJJ
bnNwZWN0b3IuRGV0YWlsZWRIZWFwc2hvdFZpZXcucHJvdG90eXBlID0gewogICAgICAgICAgICAg
cmV0dXJuOwogCiAgICAgICAgIHRoaXMudmlld3MuY3VycmVudCA9IGV2ZW50LnRhcmdldC5zZWxl
Y3RlZEluZGV4OwotICAgICAgICB0aGlzLmN1cnJlbnRWaWV3LmhpZGUoKTsKKyAgICAgICAgdGhp
cy5jdXJyZW50Vmlldy5kZXRhY2goKTsKICAgICAgICAgdmFyIHZpZXcgPSB0aGlzLnZpZXdzW3Ro
aXMudmlld3MuY3VycmVudF07CiAgICAgICAgIHRoaXMuY3VycmVudFZpZXcgPSB2aWV3LnZpZXc7
CiAgICAgICAgIHRoaXMuZGF0YUdyaWQgPSB2aWV3LmdyaWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RyYXdlci5qcyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvRHJhd2VyLmpzCmluZGV4IGM4MzY3Y2ZmNjg0YTFlOWFiZjNiOTll
MjUwODRkYjQ0YjY3NGUzNDQuLmRkNjI1ZWQ3NzgwOWE1NjAxZDJlZjI5N2IyYjcwMjQ2YTY5YjAw
NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRHJhd2Vy
LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRHJhd2VyLmpzCkBA
IC04OCw2ICs4OCw3IEBAIFdlYkluc3BlY3Rvci5EcmF3ZXIucHJvdG90eXBlID0gewogICAgICAg
ICAgICAgdGhpcy5fdmlld1N0YXR1c0Jhci5hcHBlbmRDaGlsZChzdGF0dXNCYXJJdGVtc1tpXSk7
CiAKICAgICAgICAgZG9jdW1lbnQuYm9keS5hZGRTdHlsZUNsYXNzKCJkcmF3ZXItdmlzaWJsZSIp
OworICAgICAgICB0aGlzLl92aWV3Lm1hcmtBc1Jvb3QoKTsKICAgICAgICAgdGhpcy5fdmlldy5z
aG93KHRoaXMuX2RyYXdlckNvbnRlbnRzRWxlbWVudCk7CiAKICAgICAgICAgaWYgKGRyYXdlcldh
c1Zpc2libGUpCkBAIC0xNzMsOSArMTc0LDEwIEBAIFdlYkluc3BlY3Rvci5EcmF3ZXIucHJvdG90
eXBlID0gewogICAgICAgICAgICAgICAgIHRoaXMuX2NvdW50ZXJzLmluc2VydEJlZm9yZSh0aGlz
Ll9jdXJyZW50UGFuZWxDb3VudGVycywgdGhpcy5fY291bnRlcnMuZmlyc3RDaGlsZCk7CiAgICAg
ICAgICAgICB9CiAKLSAgICAgICAgICAgIHRoaXMuX3ZpZXcuaGlkZSgpOwotICAgICAgICAgICAg
dGhpcy5fZHJhd2VyQ29udGVudHNFbGVtZW50LnJlbW92ZUNoaWxkcmVuKCk7CisgICAgICAgICAg
ICBpZiAodGhpcy5fdmlldykKKyAgICAgICAgICAgICAgICB0aGlzLl92aWV3LmRldGFjaCgpOwog
ICAgICAgICAgICAgZGVsZXRlIHRoaXMuX3ZpZXc7CisgICAgICAgICAgICB0aGlzLl9kcmF3ZXJD
b250ZW50c0VsZW1lbnQucmVtb3ZlQ2hpbGRyZW4oKTsKICAgICAgICAgICAgIGRvY3VtZW50LmJv
ZHkucmVtb3ZlU3R5bGVDbGFzcygiZHJhd2VyLXZpc2libGUiKTsKICAgICAgICAgICAgIGRlbGV0
ZSB0aGlzLl9jdXJyZW50QW5pbWF0aW9uOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanMgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanMKaW5kZXggYWE2ZGVkMGE4
ZTA5MDYwMDBlY2RlNWRiN2I3MDRhNzIxMTBkOTk0Ni4uYzgwYjY3NmFhMGZlYzRkY2Y2NzVkZTFl
MjQyYTkxMDM0NTk5MjEzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9FbGVtZW50c1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvRWxlbWVudHNQYW5lbC5qcwpAQCAtMTI0LDEzICsxMjQsMTQgQEAgV2ViSW5zcGVj
dG9yLkVsZW1lbnRzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLnVwZGF0ZUJyZWFk
Y3J1bWJTaXplcygpOwogICAgIH0sCiAKLSAgICBzaG93OiBmdW5jdGlvbigpCisgICAgd2FzU2hv
d246IGZ1bmN0aW9uKCkKICAgICB7CisgICAgICAgIFdlYkluc3BlY3Rvci5QYW5lbC5wcm90b3R5
cGUud2FzU2hvd24uY2FsbCh0aGlzKTsKKwogICAgICAgICAvLyBBdHRhY2ggaGVhdnkgY29tcG9u
ZW50IGxhemlseQogICAgICAgICBpZiAodGhpcy50cmVlT3V0bGluZS5lbGVtZW50LnBhcmVudEVs
ZW1lbnQgIT09IHRoaXMuY29udGVudEVsZW1lbnQpCiAgICAgICAgICAgICB0aGlzLmNvbnRlbnRF
bGVtZW50LmFwcGVuZENoaWxkKHRoaXMudHJlZU91dGxpbmUuZWxlbWVudCk7CiAKLSAgICAgICAg
V2ViSW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZS5zaG93LmNhbGwodGhpcyk7CiAgICAgICAgIHRo
aXMuc2lkZWJhclJlc2l6ZUVsZW1lbnQuc3R5bGUucmlnaHQgPSAodGhpcy5zaWRlYmFyRWxlbWVu
dC5vZmZzZXRXaWR0aCAtIDMpICsgInB4IjsKICAgICAgICAgdGhpcy51cGRhdGVCcmVhZGNydW1i
KCk7CiAgICAgICAgIHRoaXMudHJlZU91dGxpbmUudXBkYXRlU2VsZWN0aW9uKCk7CkBAIC0xNDAs
MTYgKzE0MSwxNiBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90b3R5cGUgPSB7CiAg
ICAgICAgICAgICB0aGlzLnNpZGViYXJFbGVtZW50Lmluc2VydEJlZm9yZSh0aGlzLnNpZGViYXJQ
YW5lcy5kb21CcmVha3BvaW50cy5lbGVtZW50LCB0aGlzLnNpZGViYXJQYW5lcy5ldmVudExpc3Rl
bmVycy5lbGVtZW50KTsKICAgICB9LAogCi0gICAgaGlkZTogZnVuY3Rpb24oKQorICAgIHdpbGxI
aWRlOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90
eXBlLmhpZGUuY2FsbCh0aGlzKTsKLQogICAgICAgICBXZWJJbnNwZWN0b3IuZG9tQWdlbnQuaGlk
ZURPTU5vZGVIaWdobGlnaHQoKTsKICAgICAgICAgdGhpcy5zZXRTZWFyY2hpbmdGb3JOb2RlKGZh
bHNlKTsKICAgICAgICAgdGhpcy50cmVlT3V0bGluZS5zZXRWaXNpYmxlKGZhbHNlKTsKIAogICAg
ICAgICAvLyBEZXRhY2ggaGVhdnkgY29tcG9uZW50IG9uIGhpZGUKICAgICAgICAgdGhpcy5jb250
ZW50RWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzLnRyZWVPdXRsaW5lLmVsZW1lbnQpOworCisgICAg
ICAgIFdlYkluc3BlY3Rvci5QYW5lbC5wcm90b3R5cGUud2lsbEhpZGUuY2FsbCh0aGlzKTsKICAg
ICB9LAogCiAgICAgb25SZXNpemU6IGZ1bmN0aW9uKCkKQEAgLTQwNiw3ICs0MDcsNyBAQCBXZWJJ
bnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90b3R5cGUgPSB7CiAKICAgICBfbm9kZVJlbW92ZWQ6
IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLnZpc2libGUpCisgICAg
ICAgIGlmICghdGhpcy5pc1Nob3dpbmcoKSkKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAg
ICB2YXIgY3J1bWJzID0gdGhpcy5jcnVtYnNFbGVtZW50OwpAQCAtNDYxLDcgKzQ2Miw3IEBAIFdl
Ykluc3BlY3Rvci5FbGVtZW50c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAgICB1cGRh
dGVCcmVhZGNydW1iOiBmdW5jdGlvbihmb3JjZVVwZGF0ZSkKICAgICB7Ci0gICAgICAgIGlmICgh
dGhpcy52aXNpYmxlKQorICAgICAgICBpZiAoIXRoaXMuaXNTaG93aW5nKCkpCiAgICAgICAgICAg
ICByZXR1cm47CiAKICAgICAgICAgdmFyIGNydW1icyA9IHRoaXMuY3J1bWJzRWxlbWVudDsKQEAg
LTU4OCw3ICs1ODksNyBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90b3R5cGUgPSB7
CiAgICAgICovCiAgICAgdXBkYXRlQnJlYWRjcnVtYlNpemVzOiBmdW5jdGlvbihmb2N1c2VkQ3J1
bWIpCiAgICAgewotICAgICAgICBpZiAoIXRoaXMudmlzaWJsZSkKKyAgICAgICAgaWYgKCF0aGlz
LmlzU2hvd2luZygpKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIGlmIChkb2N1bWVu
dC5ib2R5Lm9mZnNldFdpZHRoIDw9IDApIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvRW1wdHlWaWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9FbXB0eVZpZXcuanMKaW5kZXggZjk4NjYxMmQ5OTgwMGVjY2FlZGJhYmRlMWFl
NGYwZjAwNTA3MWVhNy4uMWQ0NGM4YWM0MGJjODM1NDZiMDZkZGE1YzUwYTUyYTU4ZWY1OWE1MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbXB0eVZpZXcu
anMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbXB0eVZpZXcuanMK
QEAgLTM5LDEzICszOSw4IEBAIFdlYkluc3BlY3Rvci5FbXB0eVZpZXcgPSBmdW5jdGlvbih0ZXh0
KQogfQogCiBXZWJJbnNwZWN0b3IuRW1wdHlWaWV3LnByb3RvdHlwZSA9IHsKLSAgICAvKioKLSAg
ICAgKiBAcGFyYW0ge0VsZW1lbnR9IHBhcmVudEVsZW1lbnQKLSAgICAgKi8KLSAgICBzaG93OiBm
dW5jdGlvbihwYXJlbnRFbGVtZW50KQorICAgIHdhc1Nob3duOiBmdW5jdGlvbigpCiAgICAgewot
ICAgICAgICBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUuc2hvdy5jYWxsKHRoaXMsIHBhcmVu
dEVsZW1lbnQpOwotCiAgICAgICAgIHRoaXMuZWxlbWVudC5jbGFzc05hbWUgPSAic3RvcmFnZS1l
bXB0eS12aWV3IjsKICAgICAgICAgdGhpcy5lbGVtZW50LnRleHRDb250ZW50ID0gdGhpcy5fdGV4
dDsKICAgICB9LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9Gb250Vmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRm9udFZp
ZXcuanMKaW5kZXggNzYwYzc1YTE4MTBiNjc3YTZiZDVkYzk3NTAwZmU3MGY2M2YwYTExNi4uMzFi
Y2NmNTdmYmVjYzQyNjg1MDNlMTc5ZGE0ODlmYWIyNDdmNmExYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Gb250Vmlldy5qcworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ZvbnRWaWV3LmpzCkBAIC03Nyw5ICs3Nyw4IEBAIFdl
Ykluc3BlY3Rvci5Gb250Vmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuZWxlbWVudC5h
cHBlbmRDaGlsZCh0aGlzLmZvbnRQcmV2aWV3RWxlbWVudCk7CiAgICAgfSwKIAotICAgIHNob3c6
IGZ1bmN0aW9uKHBhcmVudEVsZW1lbnQpCisgICAgd2FzU2hvd246IGZ1bmN0aW9uKCkKICAgICB7
Ci0gICAgICAgIFdlYkluc3BlY3Rvci5SZXNvdXJjZVZpZXcucHJvdG90eXBlLnNob3cuY2FsbCh0
aGlzLCBwYXJlbnRFbGVtZW50KTsKICAgICAgICAgdGhpcy5fY3JlYXRlQ29udGVudElmTmVlZGVk
KCk7CiAKICAgICAgICAgdGhpcy51cGRhdGVGb250UHJldmlld1NpemUoKTsKQEAgLTEwOSw3ICsx
MDgsNyBAQCBXZWJJbnNwZWN0b3IuRm9udFZpZXcucHJvdG90eXBlID0gewogCiAgICAgdXBkYXRl
Rm9udFByZXZpZXdTaXplOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBpZiAoIXRoaXMuZm9u
dFByZXZpZXdFbGVtZW50IHx8ICF0aGlzLnZpc2libGUpCisgICAgICAgIGlmICghdGhpcy5mb250
UHJldmlld0VsZW1lbnQgfHwgIXRoaXMuaXNTaG93aW5nKCkpCiAgICAgICAgICAgICByZXR1cm47
CiAKICAgICAgICAgdGhpcy5mb250UHJldmlld0VsZW1lbnQuc3R5bGUucmVtb3ZlUHJvcGVydHko
InZpc2liaWxpdHkiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvSUZyYW1lVmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
SUZyYW1lVmlldy5qcwppbmRleCBlMjEwMWY3MTRlMDNjMTUzOTNjYmRkODAzZTRiMDBkNDlmY2Rl
NWZmLi42ZGY2YTllYmQ4ZjZkMGNlMjQ2NGJkNjdiNTVmMWYxZWEyNGVmNDVmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0lGcmFtZVZpZXcuanMKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9JRnJhbWVWaWV3LmpzCkBAIC0zOCwz
NiArMzgsMTIgQEAgV2ViSW5zcGVjdG9yLklGcmFtZVZpZXcgPSBmdW5jdGlvbihzcmMsIGNsYXNz
TmFtZSkKIHsKICAgICBXZWJJbnNwZWN0b3IuVmlldy5jYWxsKHRoaXMpOwogICAgIHRoaXMuZWxl
bWVudC5jbGFzc05hbWUgPSAiZmlsbCI7Ci0gICAgdGhpcy5fc3JjID0gc3JjOwotICAgIHRoaXMu
X2NsYXNzTmFtZSA9IGNsYXNzTmFtZTsKLX0KLQotV2ViSW5zcGVjdG9yLklGcmFtZVZpZXcucHJv
dG90eXBlID0gewotICAgIHdpbGxEZXRhY2g6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIGlm
ICh0aGlzLl9pZnJhbWUpIHsKLSAgICAgICAgICAgIGlmICghV2ViSW5zcGVjdG9yLklGcmFtZVZp
ZXcuX3BhcmVudElmcmFtZSkgewotICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5JRnJhbWVW
aWV3Ll9wYXJlbnRJZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKLSAg
ICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuSUZyYW1lVmlldy5fcGFyZW50SWZyYW1lLnN0eWxl
LmRpc3BsYXkgPSAibm9uZSI7Ci0gICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRD
aGlsZChXZWJJbnNwZWN0b3IuSUZyYW1lVmlldy5fcGFyZW50SWZyYW1lKTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5JRnJhbWVWaWV3Ll9wYXJlbnRJZnJhbWUuY29u
dGVudERvY3VtZW50LmFkb3B0Tm9kZSh0aGlzLl9pZnJhbWUpOwotICAgICAgICAgICAgV2ViSW5z
cGVjdG9yLklGcmFtZVZpZXcuX3BhcmVudElmcmFtZS5jb250ZW50RG9jdW1lbnQuYm9keS5hcHBl
bmRDaGlsZCh0aGlzLl9pZnJhbWUpOwotICAgICAgICB9Ci0gICAgfSwKLQotICAgIG9uSW5zZXJ0
ZWRJbnRvRG9jdW1lbnQ6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIGlmICghdGhpcy5faWZy
YW1lKSB7Ci0gICAgICAgICAgICB0aGlzLl9pZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJpZnJhbWUiKTsKLSAgICAgICAgICAgIHRoaXMuX2lmcmFtZS5zcmMgPSB0aGlzLl9zcmM7Ci0g
ICAgICAgICAgICBpZiAodGhpcy5fY2xhc3NOYW1lKQotICAgICAgICAgICAgICAgIHRoaXMuX2lm
cmFtZS5jbGFzc05hbWUgPSB0aGlzLl9jbGFzc05hbWU7Ci0gICAgICAgIH0KIAotICAgICAgICBk
b2N1bWVudC5hZG9wdE5vZGUodGhpcy5faWZyYW1lKTsKLSAgICAgICAgdGhpcy5lbGVtZW50LmFw
cGVuZENoaWxkKHRoaXMuX2lmcmFtZSk7Ci0gICAgfQorICAgIHRoaXMuX2lmcmFtZSA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAgIHRoaXMuX2lmcmFtZS5zcmMgPSBzcmM7
CisgICAgaWYgKGNsYXNzTmFtZSkKKyAgICAgICAgdGhpcy5faWZyYW1lLmNsYXNzTmFtZSA9IGNs
YXNzTmFtZTsKKyAgICB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5faWZyYW1lKTsKIH0K
IAogV2ViSW5zcGVjdG9yLklGcmFtZVZpZXcucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3Bl
Y3Rvci5WaWV3LnByb3RvdHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvSW1hZ2VWaWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9JbWFnZVZpZXcuanMKaW5kZXggNzBmZTA0MjliM2M4Nzc1NDZiMzdlZGJiNTg2ZjM5YjBm
MTdhNmJiYS4uZjBiZmYxY2NjMmVmYmQ0NWQ1YTVlNTE2ZDFhY2U3YTE0M2MzMTA4MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9JbWFnZVZpZXcuanMKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9JbWFnZVZpZXcuanMKQEAgLTQz
LDkgKzQzLDggQEAgV2ViSW5zcGVjdG9yLkltYWdlVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAg
IHJldHVybiB0cnVlOwogICAgIH0sCiAKLSAgICBzaG93OiBmdW5jdGlvbihwYXJlbnRFbGVtZW50
KQorICAgIHdhc1Nob3duOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBXZWJJbnNwZWN0b3Iu
UmVzb3VyY2VWaWV3LnByb3RvdHlwZS5zaG93LmNhbGwodGhpcywgcGFyZW50RWxlbWVudCk7CiAg
ICAgICAgIHRoaXMuX2NyZWF0ZUNvbnRlbnRJZk5lZWRlZCgpOwogICAgIH0sCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya0l0ZW1WaWV3Lmpz
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrSXRlbVZpZXcuanMK
aW5kZXggMzE1N2RhNmQyOWJhZTNlNWIyMTYwN2RmZWU1YjRkMDhjOTNhNzZiNy4uNmY2NjE3ZmY1
MWI5NTZkZjA1OGJiNWQ5NzE5ZmZhZjBjNzFmMTYwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrSXRlbVZpZXcuanMKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrSXRlbVZpZXcuanMKQEAgLTYxLDkgKzYx
LDkgQEAgV2ViSW5zcGVjdG9yLk5ldHdvcmtJdGVtVmlldyA9IGZ1bmN0aW9uKHJlc291cmNlKQog
fQogCiBXZWJJbnNwZWN0b3IuTmV0d29ya0l0ZW1WaWV3LnByb3RvdHlwZSA9IHsKLSAgICBzaG93
OiBmdW5jdGlvbihwYXJlbnRFbGVtZW50KQorICAgIHdhc1Nob3duOiBmdW5jdGlvbigpCiAgICAg
ewotICAgICAgICBXZWJJbnNwZWN0b3IuVGFiYmVkUGFuZS5wcm90b3R5cGUuc2hvdy5jYWxsKHRo
aXMsIHBhcmVudEVsZW1lbnQpOworICAgICAgICBXZWJJbnNwZWN0b3IuVGFiYmVkUGFuZS5wcm90
b3R5cGUud2FzU2hvd24uY2FsbCgpOwogICAgICAgICB0aGlzLl9zZWxlY3RUYWIoKTsKICAgICB9
LAogCkBAIC0xMTYsMTkgKzExNiwxMSBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VDb250ZW50Vmll
dy5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX2lubmVyVmlldyA9IGlubmVyVmlldzsKICAg
ICB9LAogCi0gICAgc2hvdzogZnVuY3Rpb24ocGFyZW50RWxlbWVudCkKKyAgICB3YXNTaG93bjog
ZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgV2ViSW5zcGVjdG9yLlJlc291cmNlVmlldy5wcm90
b3R5cGUuc2hvdy5jYWxsKHRoaXMsIHBhcmVudEVsZW1lbnQpOwogICAgICAgICB0aGlzLl9lbnN1
cmVJbm5lclZpZXdTaG93bigpOwogICAgIH0sCiAKLSAgICBoaWRlOiBmdW5jdGlvbigpCi0gICAg
ewotICAgICAgICBpZiAodGhpcy5faW5uZXJWaWV3KQotICAgICAgICAgICAgdGhpcy5faW5uZXJW
aWV3LmhpZGUoKTsKLSAgICAgICAgV2ViSW5zcGVjdG9yLlJlc291cmNlVmlldy5wcm90b3R5cGUu
aGlkZS5jYWxsKHRoaXMpOwotICAgIH0sCi0KICAgICBfZW5zdXJlSW5uZXJWaWV3U2hvd246IGZ1
bmN0aW9uKCkKICAgICB7CiAgICAgICAgIGlmICh0aGlzLl9pbm5lclZpZXdTaG93UmVxdWVzdGVk
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3Jr
UGFuZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtQYW5l
bC5qcwppbmRleCBlZDhlNzY1NTQ4NDVhYTBhZWM5MGFkY2U4YjRlNWY2ODMwYjk0OTMyLi44M2M4
M2U2YjMxYTVkNTkwZmFlY2RkODA3OTIzMzhiMzNiZGJjOTFhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtQYW5lbC5qcworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtQYW5lbC5qcwpAQCAtNTA2LDcgKzUw
Niw3IEBAIFdlYkluc3BlY3Rvci5OZXR3b3JrTG9nVmlldy5wcm90b3R5cGUgPSB7CiAKICAgICAg
ICAgdGhpcy5fbmVlZHNSZWZyZXNoID0gdHJ1ZTsKIAotICAgICAgICBpZiAodGhpcy52aXNpYmxl
ICYmICEoIl9yZWZyZXNoVGltZW91dCIgaW4gdGhpcykpCisgICAgICAgIGlmICh0aGlzLmlzU2hv
d2luZygpICYmICF0aGlzLl9yZWZyZXNoVGltZW91dCkKICAgICAgICAgICAgIHRoaXMuX3JlZnJl
c2hUaW1lb3V0ID0gc2V0VGltZW91dCh0aGlzLnJlZnJlc2guYmluZCh0aGlzKSwgdGhpcy5fZGVm
YXVsdFJlZnJlc2hEZWxheSk7CiAgICAgfSwKIApAQCAtNTI0LDcgKzUyNCw3IEBAIFdlYkluc3Bl
Y3Rvci5OZXR3b3JrTG9nVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgIH0KIAogICAgICAgICB2
YXIgcHJvY2VlZCA9IHRydWU7Ci0gICAgICAgIGlmICghdGhpcy52aXNpYmxlKSB7CisgICAgICAg
IGlmICghdGhpcy5pc1Nob3dpbmcoKSkgewogICAgICAgICAgICAgdGhpcy5fc2NoZWR1bGVSZWZy
ZXNoKCk7CiAgICAgICAgICAgICBwcm9jZWVkID0gZmFsc2U7CiAgICAgICAgIH0gZWxzZQpAQCAt
NjQ2LDIwICs2NDYsMTggQEAgV2ViSW5zcGVjdG9yLk5ldHdvcmtMb2dWaWV3LnByb3RvdHlwZSA9
IHsKIAogICAgIHdhc1Nob3duOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBXZWJJbnNwZWN0
b3IuVmlldy5wcm90b3R5cGUud2FzU2hvd24uY2FsbCh0aGlzKTsKICAgICAgICAgdGhpcy5fcmVm
cmVzaElmTmVlZGVkKCk7CiAgICAgfSwKIAogICAgIHdpbGxIaWRlOiBmdW5jdGlvbigpCiAgICAg
ewotICAgICAgICBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUud2lsbEhpZGUuY2FsbCh0aGlz
KTsKICAgICAgICAgdGhpcy5fcG9wb3ZlckhlbHBlci5oaWRlUG9wb3ZlcigpOwogICAgIH0sCiAK
ICAgICByZWZyZXNoOiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICB0aGlzLl9uZWVkc1JlZnJl
c2ggPSBmYWxzZTsKLSAgICAgICAgaWYgKCJfcmVmcmVzaFRpbWVvdXQiIGluIHRoaXMpIHsKKyAg
ICAgICAgaWYgKHRoaXMuX3JlZnJlc2hUaW1lb3V0KSB7CiAgICAgICAgICAgICBjbGVhclRpbWVv
dXQodGhpcy5fcmVmcmVzaFRpbWVvdXQpOwogICAgICAgICAgICAgZGVsZXRlIHRoaXMuX3JlZnJl
c2hUaW1lb3V0OwogICAgICAgICB9CkBAIC0xMjk3LDkgKzEyOTUsOSBAQCBXZWJJbnNwZWN0b3Iu
TmV0d29ya1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgV2ViSW5zcGVjdG9yLlBhbmVsLnBy
b3RvdHlwZS5oYW5kbGVTaG9ydGN1dC5jYWxsKHRoaXMsIGV2ZW50KTsKICAgICB9LAogCi0gICAg
c2hvdzogZnVuY3Rpb24oKQorICAgIHdhc1Nob3duOiBmdW5jdGlvbigpCiAgICAgewotICAgICAg
ICBXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBlLnNob3cuY2FsbCh0aGlzKTsKKyAgICAgICAg
V2ViSW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZS53YXNTaG93bi5jYWxsKHRoaXMpOwogICAgICAg
ICB0aGlzLl9uZXR3b3JrTG9nVmlldy5zaG93KHRoaXMuc2lkZWJhckVsZW1lbnQpOwogICAgIH0s
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUGFuZWwu
anMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1BhbmVsLmpzCmluZGV4IDk5
NmUxMjhiMDBlNTk1NjgwYWVhMzA2ZjYwNjE0Zjg1ZDVlM2I2NmQuLmQ4ODIzMWVkNjBmNzIzMGE4
OGMzZTFmMDg3MDUxZjA5MDA3ZjA5ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9QYW5lbC5qcwpAQCAtNDEsNyArNDEsNiBAQCBXZWJJbnNwZWN0b3IuUGFuZWwgPSBm
dW5jdGlvbihuYW1lKQogICAgIHRoaXMuX3Nob3J0Y3V0cyA9IHt9OwogCiAgICAgV2ViSW5zcGVj
dG9yLnNldHRpbmdzW3RoaXMuX3NpZGViYXJXaWR0aFNldHRpbmdOYW1lKCldID0gV2ViSW5zcGVj
dG9yLnNldHRpbmdzLmNyZWF0ZVNldHRpbmcodGhpcy5fc2lkZWJhcldpZHRoU2V0dGluZ05hbWUo
KSwgdW5kZWZpbmVkKTsKLSAgICB0aGlzLl9oaWRlT25EZXRhY2ggPSBmYWxzZTsKIH0KIAogLy8g
U2hvdWxkIGJ5IGluIHN5bmMgd2l0aCBzdHlsZSBkZWNsYXJhdGlvbnMuCkBAIC02MiwxOCArNjEs
MTMgQEAgV2ViSW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJuIHRo
aXMuX3BhbmVsTmFtZTsKICAgICB9LAogCi0gICAgc2V0SGlkZU9uRGV0YWNoOiBmdW5jdGlvbigp
CisgICAgc2hvdzogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgdGhpcy5faGlkZU9uRGV0YWNo
ID0gdHJ1ZTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLnNob3cuY2FsbCh0
aGlzLCBXZWJJbnNwZWN0b3IubWFpblBhbmVsc1ZpZXcuZWxlbWVudCk7CiAgICAgfSwKIAotICAg
IHNob3c6IGZ1bmN0aW9uKCkKKyAgICB3YXNTaG93bjogZnVuY3Rpb24oKQogICAgIHsKLSAgICAg
ICAgaWYgKCFXZWJJbnNwZWN0b3IuUGFuZWwuX21haW5QYW5lbHNFbGVtZW50KQotICAgICAgICAg
ICAgV2ViSW5zcGVjdG9yLlBhbmVsLl9tYWluUGFuZWxzRWxlbWVudCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJtYWluLXBhbmVscyIpOwotICAgIAotICAgICAgICBXZWJJbnNwZWN0b3IuVmll
dy5wcm90b3R5cGUuc2hvdy5jYWxsKHRoaXMsIFdlYkluc3BlY3Rvci5QYW5lbC5fbWFpblBhbmVs
c0VsZW1lbnQpOwotCiAgICAgICAgIHZhciBzdGF0dXNCYXJJdGVtcyA9IHRoaXMuc3RhdHVzQmFy
SXRlbXM7CiAgICAgICAgIGlmIChzdGF0dXNCYXJJdGVtcykgewogICAgICAgICAgICAgdGhpcy5f
c3RhdHVzQmFySXRlbUNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwpA
QCAtOTEsMTMgKzg1LDggQEAgV2ViSW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZSA9IHsKICAgICAg
ICAgV2ViSW5zcGVjdG9yLmV4dGVuc2lvblNlcnZlci5ub3RpZnlQYW5lbFNob3duKHRoaXMubmFt
ZSk7CiAgICAgfSwKIAotICAgIGRldGFjaDogZnVuY3Rpb24oKQorICAgIHdpbGxIaWRlOiBmdW5j
dGlvbigpCiAgICAgewotICAgICAgICBpZiAodGhpcy5faGlkZU9uRGV0YWNoKQotICAgICAgICAg
ICAgdGhpcy5oaWRlKCk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5W
aWV3LnByb3RvdHlwZS5kZXRhY2guY2FsbCh0aGlzKTsKLQogICAgICAgICBpZiAodGhpcy5fc3Rh
dHVzQmFySXRlbUNvbnRhaW5lciAmJiB0aGlzLl9zdGF0dXNCYXJJdGVtQ29udGFpbmVyLnBhcmVu
dE5vZGUpCiAgICAgICAgICAgICB0aGlzLl9zdGF0dXNCYXJJdGVtQ29udGFpbmVyLnBhcmVudE5v
ZGUucmVtb3ZlQ2hpbGQodGhpcy5fc3RhdHVzQmFySXRlbUNvbnRhaW5lcik7CiAgICAgICAgIGRl
bGV0ZSB0aGlzLl9zdGF0dXNCYXJJdGVtQ29udGFpbmVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9QYW5lbEVuYWJsZXJWaWV3LmpzIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9QYW5lbEVuYWJsZXJWaWV3LmpzCmluZGV4IDQ1OWUw
Y2NjOWJhZTRkM2RlMjQ4NDYyZDkxZjc1NTgxMzU0ZmYxZjQuLjNlZjBjMGMwZDI1MGI3ODBjMjky
ODE4ODUxMTI5MmEyZjAwMzkxNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvUGFuZWxFbmFibGVyVmlldy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1BhbmVsRW5hYmxlclZpZXcuanMKQEAgLTgzLDEzICs4Myw2IEBAIFdl
Ykluc3BlY3Rvci5QYW5lbEVuYWJsZXJWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5k
aXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoImVuYWJsZSBjbGlja2VkIik7CiAgICAgfSwKIAotICAg
IHNob3c6IGZ1bmN0aW9uKHBhcmVudEVsZW1lbnQpCi0gICAgewotICAgICAgICBXZWJJbnNwZWN0
b3IuVmlldy5wcm90b3R5cGUuc2hvdy5jYWxsKHRoaXMsIHBhcmVudEVsZW1lbnQpOwotCi0gICAg
ICAgIHNldFRpbWVvdXQodGhpcy5kb1Jlc2l6ZS5iaW5kKHRoaXMpLCAwKTsKLSAgICB9LAotCiAg
ICAgb25SZXNpemU6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIHRoaXMuaW1hZ2VFbGVtZW50
LnJlbW92ZVN0eWxlQ2xhc3MoImhpZGRlbiIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlVmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvUHJvZmlsZVZpZXcuanMKaW5kZXggMDExYzAxYjZkZjlmZjU1NjU4YmU5
MDhhY2IwMzhkNGJlYjE2OTA1ZS4uNTkwNGFjNjMxZjFjNGM1MzcxZGZkNTE3NzhiN2Y1MzQ4NDRk
MDNlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9m
aWxlVmlldy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2Zp
bGVWaWV3LmpzCkBAIC0xNjQsOSArMTY0LDggQEAgV2ViSW5zcGVjdG9yLkNQVVByb2ZpbGVWaWV3
LnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJuIHRoaXMuX2JvdHRvbVVwVHJlZTsKICAgICB9
LAogCi0gICAgaGlkZTogZnVuY3Rpb24oKQorICAgIHdpbGxIaWRlOiBmdW5jdGlvbigpCiAgICAg
ewotICAgICAgICBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUuaGlkZS5jYWxsKHRoaXMpOwog
ICAgICAgICB0aGlzLl9jdXJyZW50U2VhcmNoUmVzdWx0SW5kZXggPSAtMTsKICAgICB9LAogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFu
ZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWwu
anMKaW5kZXggZWExNDFjZDZlMWZmNjIyMjA1YWE2ZjYwMzliYWZlNGU0YjYxNzZlMC4uZTRhYjky
OTcwMWVhMTRjNWI2MDI1YjhlNTBhMWVjM2VjN2ExMGVhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpzCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qcwpAQCAtMTAzLDggKzEw
Myw2IEBAIFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsID0gZnVuY3Rpb24oKQogICAgIHRoaXMu
cGFuZWxFbmFibGVyVmlldyA9IG5ldyBXZWJJbnNwZWN0b3IuUGFuZWxFbmFibGVyVmlldygicHJv
ZmlsZXMiLCBwYW5lbEVuYWJsZXJIZWFkaW5nLCBwYW5lbEVuYWJsZXJEaXNjbGFpbWVyLCBwYW5l
bEVuYWJsZXJCdXR0b24pOwogICAgIHRoaXMucGFuZWxFbmFibGVyVmlldy5hZGRFdmVudExpc3Rl
bmVyKCJlbmFibGUgY2xpY2tlZCIsIHRoaXMuX2VuYWJsZVByb2ZpbGluZywgdGhpcyk7CiAKLSAg
ICB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5wYW5lbEVuYWJsZXJWaWV3LmVsZW1lbnQp
OwotCiAgICAgdGhpcy5wcm9maWxlVmlld3MgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYi
KTsKICAgICB0aGlzLnByb2ZpbGVWaWV3cy5pZCA9ICJwcm9maWxlLXZpZXdzIjsKICAgICB0aGlz
LmVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5wcm9maWxlVmlld3MpOwpAQCAtMTE5LDcgKzExNyw2
IEBAIFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsID0gZnVuY3Rpb24oKQogICAgIHRoaXMucHJv
ZmlsZVZpZXdTdGF0dXNCYXJJdGVtc0NvbnRhaW5lci5jbGFzc05hbWUgPSAic3RhdHVzLWJhci1p
dGVtcyI7CiAKICAgICB0aGlzLndlbGNvbWVWaWV3ID0gbmV3IFdlYkluc3BlY3Rvci5XZWxjb21l
VmlldygicHJvZmlsZXMiLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIldlbGNvbWUgdG8gdGhlIFBy
b2ZpbGVzIHBhbmVsIikpOwotICAgIHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLndlbGNv
bWVWaWV3LmVsZW1lbnQpOwogCiAgICAgdGhpcy5fcHJvZmlsZXMgPSBbXTsKICAgICB0aGlzLl9w
cm9maWxlckVuYWJsZWQgPSBQcmVmZXJlbmNlcy5wcm9maWxlckFsd2F5c0VuYWJsZWQ7CkBAIC0x
NzEsOSArMTY4LDkgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlID0gewog
ICAgICAgICByZXR1cm4gaXRlbXM7CiAgICAgfSwKIAotICAgIHNob3c6IGZ1bmN0aW9uKCkKKyAg
ICB3YXNTaG93bjogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgV2ViSW5zcGVjdG9yLlBhbmVs
LnByb3RvdHlwZS5zaG93LmNhbGwodGhpcyk7CisgICAgICAgIFdlYkluc3BlY3Rvci5QYW5lbC5w
cm90b3R5cGUud2FzU2hvd24uY2FsbCh0aGlzKTsKICAgICAgICAgdGhpcy5fcG9wdWxhdGVQcm9m
aWxlcygpOwogICAgIH0sCiAKQEAgLTE4NSw3ICsxODIsNyBAQCBXZWJJbnNwZWN0b3IuUHJvZmls
ZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX3Byb2ZpbGVyRW5hYmxlZCA9IHRy
dWU7CiAKICAgICAgICAgdGhpcy5fcmVzZXQoKTsKLSAgICAgICAgaWYgKHRoaXMudmlzaWJsZSkK
KyAgICAgICAgaWYgKHRoaXMuaXNTaG93aW5nKCkpCiAgICAgICAgICAgICB0aGlzLl9wb3B1bGF0
ZVByb2ZpbGVzKCk7CiAgICAgfSwKIApAQCAtMzQ2LDcgKzM0Myw3IEBAIFdlYkluc3BlY3Rvci5Q
cm9maWxlc1BhbmVsLnByb3RvdHlwZSA9IHsKIAogICAgICAgICBzaWRlYmFyUGFyZW50LmFwcGVu
ZENoaWxkKHByb2ZpbGVUcmVlRWxlbWVudCk7CiAgICAgICAgIGlmICghcHJvZmlsZS5pc1RlbXBv
cmFyeSkgewotICAgICAgICAgICAgdGhpcy53ZWxjb21lVmlldy5oaWRlKCk7CisgICAgICAgICAg
ICB0aGlzLndlbGNvbWVWaWV3LmRldGFjaCgpOwogICAgICAgICAgICAgaWYgKCF0aGlzLnZpc2li
bGVWaWV3KQogICAgICAgICAgICAgICAgIHRoaXMuc2hvd1Byb2ZpbGUocHJvZmlsZSk7CiAgICAg
ICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycygicHJvZmlsZSBhZGRlZCIpOwpA
QCAtNzUzLDcgKzc1MCw3IEBAIFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZSA9
IHsKICAgICAgICAgICAgICAgICB0aGlzLl9wcm9maWxlVHlwZUJ1dHRvbnNCeUlkTWFwW3R5cGVJ
ZF0ucmVtb3ZlU3R5bGVDbGFzcygiaGlkZGVuIik7CiAgICAgICAgICAgICB0aGlzLnByb2ZpbGVW
aWV3U3RhdHVzQmFySXRlbXNDb250YWluZXIucmVtb3ZlU3R5bGVDbGFzcygiaGlkZGVuIik7CiAg
ICAgICAgICAgICB0aGlzLmNsZWFyUmVzdWx0c0J1dHRvbi5lbGVtZW50LnJlbW92ZVN0eWxlQ2xh
c3MoImhpZGRlbiIpOwotICAgICAgICAgICAgdGhpcy5wYW5lbEVuYWJsZXJWaWV3LnZpc2libGUg
PSBmYWxzZTsKKyAgICAgICAgICAgIHRoaXMucGFuZWxFbmFibGVyVmlldy5kZXRhY2goKTsKICAg
ICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIHRoaXMuZW5hYmxlVG9nZ2xlQnV0dG9uLnRpdGxl
ID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJQcm9maWxpbmcgZGlzYWJsZWQuIENsaWNrIHRvIGVu
YWJsZS4iKTsKICAgICAgICAgICAgIHRoaXMuZW5hYmxlVG9nZ2xlQnV0dG9uLnRvZ2dsZWQgPSBm
YWxzZTsKQEAgLTc2MSw3ICs3NTgsNyBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90
b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgdGhpcy5fcHJvZmlsZVR5cGVCdXR0b25zQnlJZE1h
cFt0eXBlSWRdLmFkZFN0eWxlQ2xhc3MoImhpZGRlbiIpOwogICAgICAgICAgICAgdGhpcy5wcm9m
aWxlVmlld1N0YXR1c0Jhckl0ZW1zQ29udGFpbmVyLmFkZFN0eWxlQ2xhc3MoImhpZGRlbiIpOwog
ICAgICAgICAgICAgdGhpcy5jbGVhclJlc3VsdHNCdXR0b24uZWxlbWVudC5hZGRTdHlsZUNsYXNz
KCJoaWRkZW4iKTsKLSAgICAgICAgICAgIHRoaXMucGFuZWxFbmFibGVyVmlldy52aXNpYmxlID0g
dHJ1ZTsKKyAgICAgICAgICAgIHRoaXMucGFuZWxFbmFibGVyVmlldy5zaG93KHRoaXMuZWxlbWVu
dCk7CiAgICAgICAgIH0KICAgICB9LAogCkBAIC04NzAsNyArODY3LDcgQEAgV2ViSW5zcGVjdG9y
LlByb2ZpbGVzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICBwcm9maWxlVHlwZS50cmVlRWxl
bWVudCA9IG9sZFByb2ZpbGVUeXBlLnRyZWVFbGVtZW50OwogICAgICAgICB0aGlzLl9wcm9maWxl
VHlwZXNCeUlkTWFwW3Byb2ZpbGVUeXBlLmlkXSA9IHByb2ZpbGVUeXBlOwogICAgICAgICBQcmVm
ZXJlbmNlcy5kZXRhaWxlZEhlYXBQcm9maWxlcyA9IHRydWU7Ci0gICAgICAgIHRoaXMuaGlkZSgp
OworICAgICAgICB0aGlzLmRldGFjaCgpOwogICAgICAgICB0aGlzLnNob3coKTsKICAgICB9CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNl
Q29va2llc1ZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291
cmNlQ29va2llc1ZpZXcuanMKaW5kZXggNWVmNTU5OGNlOWRhYzNhMmIxZmVjMWM2NjYxMDJjYzE1
ZDA1MTVmNy4uNjUyNjkyZjk3NjM5MmVhZTRkZDVjZmM0NTI5M2FlNTA3ZTdhMjUxZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZUNvb2tpZXNW
aWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VD
b29raWVzVmlldy5qcwpAQCAtNDQsMjEgKzQ0LDE4IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZUNv
b2tpZXNWaWV3ID0gZnVuY3Rpb24ocmVzb3VyY2UpCiB9CiAKIFdlYkluc3BlY3Rvci5SZXNvdXJj
ZUNvb2tpZXNWaWV3LnByb3RvdHlwZSA9IHsKLSAgICBzaG93OiBmdW5jdGlvbihwYXJlbnRFbGVt
ZW50KQorICAgIHdhc1Nob3duOiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICBpZiAoIXRoaXMu
X2dvdENvb2tpZXMpIHsKICAgICAgICAgICAgIGlmICghdGhpcy5fZW1wdHlWaWV3KSB7CiAgICAg
ICAgICAgICAgICAgdGhpcy5fZW1wdHlWaWV3ID0gbmV3IFdlYkluc3BlY3Rvci5FbXB0eVZpZXco
V2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJUaGlzIHJlcXVlc3QgaGFzIG5vIGNvb2tpZXMuIikpOwog
ICAgICAgICAgICAgICAgIHRoaXMuX2VtcHR5Vmlldy5zaG93KHRoaXMuZWxlbWVudCk7CiAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUuc2hvdy5j
YWxsKHRoaXMsIHBhcmVudEVsZW1lbnQpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9
CiAKICAgICAgICAgaWYgKCF0aGlzLl9jb29raWVzVGFibGUpCiAgICAgICAgICAgICB0aGlzLl9i
dWlsZENvb2tpZXNUYWJsZSgpOwotICAgICAgICBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUu
c2hvdy5jYWxsKHRoaXMsIHBhcmVudEVsZW1lbnQpOwotICAgICAgICB0aGlzLl9jb29raWVzVGFi
bGUudXBkYXRlV2lkdGhzKCk7CiAgICAgfSwKIAogICAgIG9uUmVzaXplOiBmdW5jdGlvbigpCkBA
IC04NSw3ICs4Miw3IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZUNvb2tpZXNWaWV3LnByb3RvdHlw
ZSA9IHsKICAgICBfcmVmcmVzaENvb2tpZXM6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIGRl
bGV0ZSB0aGlzLl9jb29raWVzVGFibGU7Ci0gICAgICAgIGlmICghdGhpcy5fZ290Q29va2llcyB8
fCAhdGhpcy52aXNpYmxlKQorICAgICAgICBpZiAoIXRoaXMuX2dvdENvb2tpZXMgfHwgIXRoaXMu
aXNTaG93aW5nKCkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIHRoaXMuX2J1aWxkQ29v
a2llc1RhYmxlKCk7CiAgICAgICAgIHRoaXMuX2Nvb2tpZXNUYWJsZS51cGRhdGVXaWR0aHMoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VI
VE1MVmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VI
VE1MVmlldy5qcwppbmRleCA5MzNmZjg0NzMzYTk4ZjA2NTI4ZTNlNzA0MzUxNmE5YTJiY2IzZTFi
Li45YzRiNTVlZTM2ZTI1Yjk1NWE4MzA1NWJmZGU2ZGIwOWJiNmVjZDAxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlSFRNTFZpZXcuanMKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZUhUTUxWaWV3Lmpz
CkBAIC00NCwxNSArNDQsMTMgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlSFRNTFZpZXcucHJvdG90
eXBlID0gewogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9LAogCi0gICAgc2hvdzogZnVuY3Rp
b24ocGFyZW50RWxlbWVudCkKKyAgICB3YXNTaG93bjogZnVuY3Rpb24oKQogICAgIHsKLSAgICAg
ICAgV2ViSW5zcGVjdG9yLlJlc291cmNlVmlldy5wcm90b3R5cGUuc2hvdy5jYWxsKHRoaXMsIHBh
cmVudEVsZW1lbnQpOwogICAgICAgICB0aGlzLl9jcmVhdGVJRnJhbWUoKTsKICAgICB9LAogCi0g
ICAgaGlkZTogZnVuY3Rpb24ocGFyZW50RWxlbWVudCkKKyAgICB3aWxsSGlkZTogZnVuY3Rpb24o
cGFyZW50RWxlbWVudCkKICAgICB7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5SZXNvdXJjZVZpZXcu
cHJvdG90eXBlLmhpZGUuY2FsbCh0aGlzKTsKICAgICAgICAgdGhpcy5lbGVtZW50LnJlbW92ZUNo
aWxkcmVuKCk7CiAgICAgfSwKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9SZXNvdXJjZUpTT05WaWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9SZXNvdXJjZUpTT05WaWV3LmpzCmluZGV4IGRkMzZkYjlkZTM5NWIyYWQyNGIx
OWQyYjYwMDc0MjRhN2Q1Mzc5MmUuLjRmMjBmMmY4ZGJhMjJmODI5MTNlMzkwYjU2NWE5MjU0MTUw
YzZjMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVz
b3VyY2VKU09OVmlldy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1Jlc291cmNlSlNPTlZpZXcuanMKQEAgLTgyLDkgKzgyLDggQEAgV2ViSW5zcGVjdG9yLlJlc291
cmNlSlNPTlZpZXcucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9LAog
Ci0gICAgc2hvdzogZnVuY3Rpb24ocGFyZW50RWxlbWVudCkKKyAgICB3YXNTaG93bjogZnVuY3Rp
b24oKQogICAgIHsKLSAgICAgICAgV2ViSW5zcGVjdG9yLlJlc291cmNlVmlldy5wcm90b3R5cGUu
c2hvdy5jYWxsKHRoaXMsIHBhcmVudEVsZW1lbnQpOwogICAgICAgICB0aGlzLl9pbml0aWFsaXpl
KCk7CiAgICAgfSwKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9SZXNvdXJjZVRpbWluZ1ZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1Jlc291cmNlVGltaW5nVmlldy5qcwppbmRleCA5Yjk1YzY5YzBhYTEzMjA3YjNmOTQ0
Y2RmZGFmODYzNzgwNmQ5ZjNhLi5mMWM4NmQxODM1NTBkNWJhNjhkZWVkYmRlMDg4YzcxMzg3ZjFl
NzRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291
cmNlVGltaW5nVmlldy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1Jlc291cmNlVGltaW5nVmlldy5qcwpAQCAtNDMsNyArNDMsNyBAQCBXZWJJbnNwZWN0b3IuUmVz
b3VyY2VUaW1pbmdWaWV3ID0gZnVuY3Rpb24ocmVzb3VyY2UpCiB9CiAKIFdlYkluc3BlY3Rvci5S
ZXNvdXJjZVRpbWluZ1ZpZXcucHJvdG90eXBlID0gewotICAgIHNob3c6IGZ1bmN0aW9uKHBhcmVu
dEVsZW1lbnQpCisgICAgd2FzU2hvd246IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIGlmICgh
dGhpcy5fcmVzb3VyY2UudGltaW5nKSB7CiAgICAgICAgICAgICBpZiAoIXRoaXMuX2VtcHR5Vmll
dykgewpAQCAtNTEsNyArNTEsNiBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VUaW1pbmdWaWV3LnBy
b3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICB0aGlzLl9lbXB0eVZpZXcuc2hvdyh0aGlzLmVs
ZW1lbnQpOwogICAgICAgICAgICAgICAgIHRoaXMuaW5uZXJWaWV3ID0gdGhpcy5fZW1wdHlWaWV3
OwogICAgICAgICAgICAgfQotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBl
LnNob3cuY2FsbCh0aGlzLCBwYXJlbnRFbGVtZW50KTsKICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgfQogCkBAIC02MSw3ICs2MCw2IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZVRpbWluZ1Zp
ZXcucHJvdG90eXBlID0gewogICAgICAgICB9CiAKICAgICAgICAgdGhpcy5fcmVmcmVzaCgpOwot
ICAgICAgICBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUuc2hvdy5jYWxsKHRoaXMsIHBhcmVu
dEVsZW1lbnQpOwogICAgIH0sCiAKICAgICBfcmVmcmVzaDogZnVuY3Rpb24oKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5qcyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VzUGFuZWwuanMKaW5k
ZXggMWNjNjA0MzY5ZmQyOGJkZWE4YTY4MWI1ZmExNDYwN2MyMDU5MmM5Mi4uNTM4MGYyNmQyYjI2
ZGM4MTIwMTFhNWNjNjRmYzAzY2YwN2I5YzhjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlc1BhbmVsLmpzCkBAIC0xMDQsMTAgKzEwNCw5
IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJl
dHVybiBbdGhpcy5zaWRlYmFyRWxlbWVudF07CiAgICAgfSwKIAotICAgIHNob3c6IGZ1bmN0aW9u
KCkKKyAgICB3YXNTaG93bjogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgV2ViSW5zcGVjdG9y
LlBhbmVsLnByb3RvdHlwZS5zaG93LmNhbGwodGhpcyk7Ci0KKyAgICAgICAgV2ViSW5zcGVjdG9y
LlBhbmVsLnByb3RvdHlwZS53YXNTaG93bi5jYWxsKHRoaXMpOwogICAgICAgICB0aGlzLl9wb3B1
bGF0ZVJlc291cmNlVHJlZSgpOwogICAgIH0sCiAKQEAgLTE2NSw3ICsxNjQsOSBAQCBXZWJJbnNw
ZWN0b3IuUmVzb3VyY2VzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLnNlc3Npb25T
dG9yYWdlTGlzdFRyZWVFbGVtZW50LnJlbW92ZUNoaWxkcmVuKCk7CiAgICAgICAgIHRoaXMuY29v
a2llTGlzdFRyZWVFbGVtZW50LnJlbW92ZUNoaWxkcmVuKCk7CiAgICAgICAgIHRoaXMuYXBwbGlj
YXRpb25DYWNoZUxpc3RUcmVlRWxlbWVudC5yZW1vdmVDaGlsZHJlbigpOwotICAgICAgICB0aGlz
LnN0b3JhZ2VWaWV3cy5yZW1vdmVDaGlsZHJlbigpOworCisgICAgICAgIGlmICh0aGlzLnZpc2li
bGVWaWV3KQorICAgICAgICAgICAgdGhpcy52aXNpYmxlVmlldy5kZXRhY2goKTsKIAogICAgICAg
ICB0aGlzLnN0b3JhZ2VWaWV3U3RhdHVzQmFySXRlbXNDb250YWluZXIucmVtb3ZlQ2hpbGRyZW4o
KTsKIApAQCAtMTMzNSw3ICsxMzM2LDcgQEAgV2ViSW5zcGVjdG9yLkZyYW1lUmVzb3VyY2VUcmVl
RWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHZhciBvbGRWaWV3ID0gdGhpcy5fc291cmNl
VmlldzsKICAgICAgICAgdmFyIG5ld1ZpZXcgPSB0aGlzLl9jcmVhdGVTb3VyY2VWaWV3KCk7CiAK
LSAgICAgICAgdmFyIG9sZFZpZXdQYXJlbnROb2RlID0gb2xkVmlldy52aXNpYmxlID8gb2xkVmll
dy5lbGVtZW50LnBhcmVudE5vZGUgOiBudWxsOworICAgICAgICB2YXIgb2xkVmlld1BhcmVudE5v
ZGUgPSBvbGRWaWV3LmlzU2hvd2luZygpID8gb2xkVmlldy5lbGVtZW50LnBhcmVudE5vZGUgOiBu
dWxsOwogICAgICAgICBuZXdWaWV3LmluaGVyaXRTY3JvbGxQb3NpdGlvbnMob2xkVmlldyk7CiAK
ICAgICAgICAgdGhpcy5fc291cmNlVmlldy5kZXRhY2goKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMKaW5kZXggNWM0NDRlN2ExYTJj
ZGZlODA1MjQ1MjRkZGYwZjU4MTMwNjM5ZmViNC4uNzA2NzlkMDEwMGNhODBjZTQyZTg1ODg1NjU4
NTU4NDE1ZDExZGMzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9TY3JpcHRzUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9TY3JpcHRzUGFuZWwuanMKQEAgLTE0Miw3ICsxNDIsNiBAQCBXZWJJbnNwZWN0b3IuU2Ny
aXB0c1BhbmVsID0gZnVuY3Rpb24ocHJlc2VudGF0aW9uTW9kZWwpCiAgICAgdGhpcy5wYW5lbEVu
YWJsZXJWaWV3ID0gbmV3IFdlYkluc3BlY3Rvci5QYW5lbEVuYWJsZXJWaWV3KCJzY3JpcHRzIiwg
cGFuZWxFbmFibGVySGVhZGluZywgcGFuZWxFbmFibGVyRGlzY2xhaW1lciwgcGFuZWxFbmFibGVy
QnV0dG9uKTsKICAgICB0aGlzLnBhbmVsRW5hYmxlclZpZXcuYWRkRXZlbnRMaXN0ZW5lcigiZW5h
YmxlIGNsaWNrZWQiLCB0aGlzLl9lbmFibGVEZWJ1Z2dpbmcsIHRoaXMpOwogCi0gICAgdGhpcy5l
bGVtZW50LmFwcGVuZENoaWxkKHRoaXMucGFuZWxFbmFibGVyVmlldy5lbGVtZW50KTsKICAgICB0
aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy52aWV3c0NvbnRhaW5lckVsZW1lbnQpOwogICAg
IHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLnNpZGViYXJFbGVtZW50KTsKICAgICB0aGlz
LmVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5zaWRlYmFyUmVzaXplRWxlbWVudCk7CkBAIC0yMTgs
OSArMjE3LDkgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAg
ICAgIHJldHVybiB0aGlzLl9wYXVzZWQ7CiAgICAgfSwKIAotICAgIHNob3c6IGZ1bmN0aW9uKCkK
KyAgICB3YXNTaG93bjogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgV2ViSW5zcGVjdG9yLlBh
bmVsLnByb3RvdHlwZS5zaG93LmNhbGwodGhpcyk7CisgICAgICAgIFdlYkluc3BlY3Rvci5QYW5l
bC5wcm90b3R5cGUud2FzU2hvd24uY2FsbCh0aGlzKTsKICAgICAgICAgdGhpcy5zaWRlYmFyUmVz
aXplRWxlbWVudC5zdHlsZS5yaWdodCA9ICh0aGlzLnNpZGViYXJFbGVtZW50Lm9mZnNldFdpZHRo
IC0gMykgKyAicHgiOwogICAgICAgICBpZiAoUHJlZmVyZW5jZXMubmF0aXZlSW5zdHJ1bWVudGF0
aW9uRW5hYmxlZCkKICAgICAgICAgICAgIHRoaXMuc2lkZWJhckVsZW1lbnQuaW5zZXJ0QmVmb3Jl
KHRoaXMuc2lkZWJhclBhbmVzLmRvbUJyZWFrcG9pbnRzLmVsZW1lbnQsIHRoaXMuc2lkZWJhclBh
bmVzLnhockJyZWFrcG9pbnRzLmVsZW1lbnQpOwpAQCAtODU1LDEyICs4NTQsMTIgQEAgV2ViSW5z
cGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICB0aGlzLmVuYWJs
ZVRvZ2dsZUJ1dHRvbi50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiRGVidWdnaW5nIGVu
YWJsZWQuIENsaWNrIHRvIGRpc2FibGUuIik7CiAgICAgICAgICAgICB0aGlzLmVuYWJsZVRvZ2ds
ZUJ1dHRvbi50b2dnbGVkID0gdHJ1ZTsKICAgICAgICAgICAgIHRoaXMuX3BhdXNlT25FeGNlcHRp
b25CdXR0b24udmlzaWJsZSA9IHRydWU7Ci0gICAgICAgICAgICB0aGlzLnBhbmVsRW5hYmxlclZp
ZXcudmlzaWJsZSA9IGZhbHNlOworICAgICAgICAgICAgdGhpcy5wYW5lbEVuYWJsZXJWaWV3LmRl
dGFjaCgpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgdGhpcy5lbmFibGVUb2dnbGVC
dXR0b24udGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkRlYnVnZ2luZyBkaXNhYmxlZC4g
Q2xpY2sgdG8gZW5hYmxlLiIpOwogICAgICAgICAgICAgdGhpcy5lbmFibGVUb2dnbGVCdXR0b24u
dG9nZ2xlZCA9IGZhbHNlOwogICAgICAgICAgICAgdGhpcy5fcGF1c2VPbkV4Y2VwdGlvbkJ1dHRv
bi52aXNpYmxlID0gZmFsc2U7Ci0gICAgICAgICAgICB0aGlzLnBhbmVsRW5hYmxlclZpZXcudmlz
aWJsZSA9IHRydWU7CisgICAgICAgICAgICB0aGlzLnBhbmVsRW5hYmxlclZpZXcuc2hvdyh0aGlz
LmVsZW1lbnQpOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKHRoaXMuX3BhdXNlZCkgewpAQCAt
MTAyNCwxMSArMTAyMywxMSBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9
IHsKICAgICAgICAgaWYgKHRoaXMudG9nZ2xlQnJlYWtwb2ludHNCdXR0b24udG9nZ2xlZCkgewog
ICAgICAgICAgICAgRGVidWdnZXJBZ2VudC5zZXRCcmVha3BvaW50c0FjdGl2ZSh0cnVlKTsKICAg
ICAgICAgICAgIHRoaXMudG9nZ2xlQnJlYWtwb2ludHNCdXR0b24udGl0bGUgPSBXZWJJbnNwZWN0
b3IuVUlTdHJpbmcoIkRlYWN0aXZhdGUgYWxsIGJyZWFrcG9pbnRzLiIpOwotICAgICAgICAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4tcGFuZWxzIikucmVtb3ZlU3R5bGVDbGFzcygi
YnJlYWtwb2ludHMtZGVhY3RpdmF0ZWQiKTsKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5tYWlu
UGFuZWxzVmlldy5lbGVtZW50LnJlbW92ZVN0eWxlQ2xhc3MoImJyZWFrcG9pbnRzLWRlYWN0aXZh
dGVkIik7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBEZWJ1Z2dlckFnZW50LnNldEJy
ZWFrcG9pbnRzQWN0aXZlKGZhbHNlKTsKICAgICAgICAgICAgIHRoaXMudG9nZ2xlQnJlYWtwb2lu
dHNCdXR0b24udGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkFjdGl2YXRlIGFsbCBicmVh
a3BvaW50cy4iKTsKLSAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluLXBh
bmVscyIpLmFkZFN0eWxlQ2xhc3MoImJyZWFrcG9pbnRzLWRlYWN0aXZhdGVkIik7CisgICAgICAg
ICAgICBXZWJJbnNwZWN0b3IubWFpblBhbmVsc1ZpZXcuZWxlbWVudC5hZGRTdHlsZUNsYXNzKCJi
cmVha3BvaW50cy1kZWFjdGl2YXRlZCIpOwogICAgICAgICB9CiAgICAgfSwKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGcmFtZS5qcyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRnJhbWUuanMKaW5kZXggODc3
OTA4YTU5NzVhZTZhOGY0ZjBhNTFlMDI0N2E0YmE0YjE0ZWQwYi4uNjVmZjJlNmM0YWQ2ZDI5ZDg5
OWE3MTM1OGZiMzBlMzBkYTFiNjYyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9Tb3VyY2VGcmFtZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1NvdXJjZUZyYW1lLmpzCkBAIC00NCw3ICs0NCw2IEBAIFdlYkluc3BlY3Rv
ci5Tb3VyY2VGcmFtZSA9IGZ1bmN0aW9uKGRlbGVnYXRlLCB1cmwpCiAKICAgICB2YXIgdGV4dFZp
ZXdlckRlbGVnYXRlID0gbmV3IFdlYkluc3BlY3Rvci5UZXh0Vmlld2VyRGVsZWdhdGVGb3JTb3Vy
Y2VGcmFtZSh0aGlzKTsKICAgICB0aGlzLl90ZXh0Vmlld2VyID0gbmV3IFdlYkluc3BlY3Rvci5U
ZXh0Vmlld2VyKHRoaXMuX3RleHRNb2RlbCwgV2ViSW5zcGVjdG9yLnBsYXRmb3JtLCB0aGlzLl91
cmwsIHRleHRWaWV3ZXJEZWxlZ2F0ZSk7Ci0gICAgdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKHRo
aXMuX3RleHRWaWV3ZXIuZWxlbWVudCk7CiAKICAgICB0aGlzLnBvcG92ZXJIZWxwZXIgPSBuZXcg
V2ViSW5zcGVjdG9yLk9iamVjdFBvcG92ZXJIZWxwZXIodGhpcy5fdGV4dFZpZXdlci5lbGVtZW50
LAogICAgICAgICAgICAgdGhpcy5fZ2V0UG9wb3ZlckFuY2hvci5iaW5kKHRoaXMpLCB0aGlzLm9u
U2hvd1BvcG92ZXIuYmluZCh0aGlzKSwgdGhpcy5vbkhpZGVQb3BvdmVyLmJpbmQodGhpcyksIHRy
dWUpOwpAQCAtODgsOSArODcsOCBAQCBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUuY3JlYXRlU2Vh
cmNoUmVnZXggPSBmdW5jdGlvbihxdWVyeSkKIAogCiBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUu
cHJvdG90eXBlID0gewotICAgIHNob3c6IGZ1bmN0aW9uKHBhcmVudEVsZW1lbnQpCisgICAgd2Fz
U2hvd246IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5WaWV3LnByb3Rv
dHlwZS5zaG93LmNhbGwodGhpcywgcGFyZW50RWxlbWVudCk7CiAgICAgICAgIHRoaXMuX2Vuc3Vy
ZUNvbnRlbnRMb2FkZWQoKTsKICAgICAgICAgdGhpcy5fdGV4dFZpZXdlci5zaG93KHRoaXMuZWxl
bWVudCk7CiAgICAgfSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvVGFiYmVkUGFuZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
VGFiYmVkUGFuZS5qcwppbmRleCA1NzkwMzM4OGE0NmM0NWQzNWJlZWI5NzhjNGE3OWRhYzBjYzRk
MTAzLi5iZTJjOGMwNWNkNDFjNGYzYzdjOTM2NDBlYTAxMThlOGU2MWVmMWQ2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RhYmJlZFBhbmUuanMKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UYWJiZWRQYW5lLmpzCkBAIC00OSw3
ICs0OSw2IEBAIFdlYkluc3BlY3Rvci5UYWJiZWRQYW5lLnByb3RvdHlwZSA9IHsKICAgICAgICAg
dGFiRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuc2VsZWN0VGFiLmJpbmQo
dGhpcywgaWQsIHRydWUpLCBmYWxzZSk7CiAKICAgICAgICAgdGhpcy5fdGFic0VsZW1lbnQuYXBw
ZW5kQ2hpbGQodGFiRWxlbWVudCk7Ci0gICAgICAgIHRoaXMuX2NvbnRlbnRFbGVtZW50LmFwcGVu
ZENoaWxkKHZpZXcuZWxlbWVudCk7CiAKICAgICAgICAgdGhpcy5fdGFic1tpZF0gPSB7IHRhYkVs
ZW1lbnQ6IHRhYkVsZW1lbnQsIHZpZXc6IHZpZXcgfTsKICAgICB9LApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzCmluZGV4IGE4YTEy
YzMzN2I2NTEzMTA4M2JhOTExNmQyNzk0MWYxNDNkODA5ZTAuLmU5MmFmY2U4ODRhYzdhOTEwNDYy
YjU5OTkwMTE5YmUyMTVjNzgyYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKQEAgLTU1NCwxOCArNTU0LDE4IEBAIFdlYklu
c3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJuIFt0aGlz
Ll9jb250YWluZXJFbGVtZW50XTsKICAgICB9LAogCi0gICAgc2hvdzogZnVuY3Rpb24oKQorICAg
IHdhc1Nob3duOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBXZWJJbnNwZWN0b3IuUGFuZWwu
cHJvdG90eXBlLnNob3cuY2FsbCh0aGlzKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLlBhbmVsLnBy
b3RvdHlwZS53YXNTaG93bi5jYWxsKHRoaXMpOwogICAgICAgICB0aGlzLl9yZWZyZXNoKCk7CiAg
ICAgICAgIFdlYkluc3BlY3Rvci5kcmF3ZXIuY3VycmVudFBhbmVsQ291bnRlcnMgPSB0aGlzLnJl
Y29yZHNDb3VudGVyOwogICAgIH0sCiAKLSAgICBoaWRlOiBmdW5jdGlvbigpCisgICAgd2lsbEhp
ZGU6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5QYW5lbC5wcm90b3R5
cGUuaGlkZS5jYWxsKHRoaXMpOwogICAgICAgICB0aGlzLl9jbG9zZVJlY29yZERldGFpbHMoKTsK
ICAgICAgICAgV2ViSW5zcGVjdG9yLmRyYXdlci5jdXJyZW50UGFuZWxDb3VudGVycyA9IG51bGw7
CisgICAgICAgIFdlYkluc3BlY3Rvci5QYW5lbC5wcm90b3R5cGUud2lsbEhpZGUuY2FsbCh0aGlz
KTsKICAgICB9LAogCiAgICAgX29uU2Nyb2xsOiBmdW5jdGlvbihldmVudCkKQEAgLTU4OCw3ICs1
ODgsNyBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAg
IHRoaXMuX2Nsb3NlUmVjb3JkRGV0YWlscygpOwogICAgICAgICB0aGlzLl9ib3VuZGFyaWVzQXJl
VmFsaWQgJj0gcHJlc2VydmVCb3VuZGFyaWVzOwogCi0gICAgICAgIGlmICghdGhpcy52aXNpYmxl
KQorICAgICAgICBpZiAoIXRoaXMuaXNTaG93aW5nKCkpCiAgICAgICAgICAgICByZXR1cm47CiAK
ICAgICAgICAgaWYgKHByZXNlcnZlQm91bmRhcmllcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvVmlldy5qcwppbmRleCA2MWI5MmYyNjA4ODc1ZTE5YzhlNDE3OGQ0NzAwZjg0
MzNkMzY1NDZlLi5hMjA2MjUyMjM3ZjU2ZWE3Y2Y3YmIwYjRjM2FiYTlkYjA1YzM2MGUyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1ZpZXcuanMKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9WaWV3LmpzCkBAIC0zMSw4NiArMzEs
MTU2IEBACiBXZWJJbnNwZWN0b3IuVmlldyA9IGZ1bmN0aW9uKCkKIHsKICAgICB0aGlzLmVsZW1l
bnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKLSAgICB0aGlzLmVsZW1lbnQuYWRk
RXZlbnRMaXN0ZW5lcigiRE9NTm9kZUluc2VydGVkSW50b0RvY3VtZW50IiwgdGhpcy5faGFuZGxl
SW5zZXJ0ZWRJbnRvRG9jdW1lbnQuYmluZCh0aGlzKSwgZmFsc2UpOwotICAgIHRoaXMuZWxlbWVu
dC5hZGRFdmVudExpc3RlbmVyKCJET01Ob2RlUmVtb3ZlZEZyb21Eb2N1bWVudCIsIHRoaXMuX2hh
bmRsZVJlbW92ZWRGcm9tRG9jdW1lbnQuYmluZCh0aGlzKSwgZmFsc2UpOwogICAgIHRoaXMuZWxl
bWVudC5fX3ZpZXcgPSB0aGlzOwotICAgIHRoaXMuX3Zpc2libGUgPSBmYWxzZTsKKyAgICB0aGlz
Ll92aXNpYmxlID0gdHJ1ZTsKKyAgICB0aGlzLl9pc1Jvb3QgPSBmYWxzZTsKKyAgICB0aGlzLl9p
c1Nob3dpbmcgPSBmYWxzZTsKICAgICB0aGlzLl9jaGlsZHJlbiA9IFtdOwotICAgIHRoaXMuX2lu
RGV0YWNoID0gZmFsc2U7CisgICAgdGhpcy5faGlkZU9uRGV0YWNoID0gZmFsc2U7CiB9CiAKIFdl
Ykluc3BlY3Rvci5WaWV3LnByb3RvdHlwZSA9IHsKLSAgICBnZXQgdmlzaWJsZSgpCisgICAgbWFy
a0FzUm9vdDogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3Zpc2libGU7
CisgICAgICAgIHRoaXMuX2lzUm9vdCA9IHRydWU7CiAgICAgfSwKIAotICAgIHNldCB2aXNpYmxl
KHgpCisgICAgaXNTaG93aW5nOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBpZiAodGhpcy5f
dmlzaWJsZSA9PT0geCkKLSAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJuIHRoaXMu
X2lzU2hvd2luZyB8fCB0aGlzLl9pc1Jvb3Q7CisgICAgfSwKIAotICAgICAgICBpZiAoeCkKLSAg
ICAgICAgICAgIHRoaXMuc2hvdyh0aGlzLmVsZW1lbnQucGFyZW50RWxlbWVudCk7Ci0gICAgICAg
IGVsc2UKLSAgICAgICAgICAgIHRoaXMuaGlkZSgpOworICAgIHNldEhpZGVPbkRldGFjaDogZnVu
Y3Rpb24oKQorICAgIHsKKyAgICAgICAgdGhpcy5faGlkZU9uRGV0YWNoID0gdHJ1ZTsKICAgICB9
LAogCi0gICAgd2FzU2hvd246IGZ1bmN0aW9uKCkKKyAgICBfcGFyZW50SXNTaG93aW5nOiBmdW5j
dGlvbigpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fcGFyZW50VmlldyAmJiB0aGlzLl9w
YXJlbnRWaWV3LmlzU2hvd2luZygpOworICAgIH0sCisKKyAgICBfcHJvY2Vzc1dhc1Nob3duOiBm
dW5jdGlvbigpCiAgICAgeworICAgICAgICBpZiAoIXRoaXMuX3BhcmVudElzU2hvd2luZygpKQor
ICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHRoaXMuX2lzU2hvd2luZyA9IHRydWU7CiAg
ICAgICAgIHRoaXMucmVzdG9yZVNjcm9sbFBvc2l0aW9ucygpOworCisgICAgICAgIHRoaXMud2Fz
U2hvd24oKTsKICAgICAgICAgdGhpcy5vblJlc2l6ZSgpOworICAgICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IHRoaXMuX2NoaWxkcmVuLmxlbmd0aDsgKytpKQorICAgICAgICAgICAgdGhpcy5fY2hp
bGRyZW5baV0uX3Byb2Nlc3NXYXNTaG93bigpOwogICAgIH0sCiAKLSAgICB3aWxsSGlkZTogZnVu
Y3Rpb24oKQorICAgIF9wcm9jZXNzV2lsbEhpZGU6IGZ1bmN0aW9uKCkKICAgICB7CisgICAgICAg
IGlmICghdGhpcy5fcGFyZW50SXNTaG93aW5nKCkpCisgICAgICAgICAgICByZXR1cm47CisKICAg
ICAgICAgdGhpcy5zdG9yZVNjcm9sbFBvc2l0aW9ucygpOworCisgICAgICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgdGhpcy5fY2hpbGRyZW4ubGVuZ3RoOyArK2kpCisgICAgICAgICAgICB0aGlzLl9j
aGlsZHJlbltpXS5fcHJvY2Vzc1dpbGxIaWRlKCk7CisKKyAgICAgICAgdGhpcy53aWxsSGlkZSgp
OworICAgICAgICB0aGlzLl9pc1Nob3dpbmcgPSBmYWxzZTsKICAgICB9LAogCi0gICAgd2lsbERl
dGFjaDogZnVuY3Rpb24oKQorICAgIF9wcm9jZXNzT25SZXNpemU6IGZ1bmN0aW9uKCkKICAgICB7
CisgICAgICAgIGlmICghdGhpcy5pc1Nob3dpbmcoKSkKKyAgICAgICAgICAgIHJldHVybjsKKwor
ICAgICAgICB0aGlzLm9uUmVzaXplKCk7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhp
cy5fY2hpbGRyZW4ubGVuZ3RoOyArK2kpCisgICAgICAgICAgICB0aGlzLl9jaGlsZHJlbltpXS5f
cHJvY2Vzc09uUmVzaXplKCk7CiAgICAgfSwKIAotICAgIC8qKgotICAgICAqIEBwYXJhbSB7RWxl
bWVudH0gcGFyZW50RWxlbWVudAotICAgICAqLwotICAgIHNob3c6IGZ1bmN0aW9uKHBhcmVudEVs
ZW1lbnQpCisgICAgd2FzU2hvd246IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIHRoaXMuX3Zp
c2libGUgPSB0cnVlOwotICAgICAgICB0aGlzLmVsZW1lbnQuYWRkU3R5bGVDbGFzcygidmlzaWJs
ZSIpOwotICAgICAgICBpZiAocGFyZW50RWxlbWVudCAmJiB0aGlzLmVsZW1lbnQucGFyZW50RWxl
bWVudCAhPSBwYXJlbnRFbGVtZW50KQotICAgICAgICAgICAgdGhpcy5hdHRhY2gocGFyZW50RWxl
bWVudCk7Ci0gICAgICAgIHRoaXMuZGlzcGF0Y2hUb1NlbGZBbmRDaGlsZHJlbigid2FzU2hvd24i
LCB0cnVlKTsKICAgICB9LAogCi0gICAgaGlkZTogZnVuY3Rpb24oKQorICAgIHdpbGxIaWRlOiBm
dW5jdGlvbigpCisgICAgeworICAgIH0sCisKKyAgICBvblJlc2l6ZTogZnVuY3Rpb24oKQogICAg
IHsKLSAgICAgICAgdGhpcy5kaXNwYXRjaFRvU2VsZkFuZENoaWxkcmVuKCJ3aWxsSGlkZSIsIHRy
dWUpOwotICAgICAgICBpZiAoIXRoaXMuX2luRGV0YWNoKQotICAgICAgICAgICAgdGhpcy5lbGVt
ZW50LnJlbW92ZVN0eWxlQ2xhc3MoInZpc2libGUiKTsKLSAgICAgICAgdGhpcy5fdmlzaWJsZSA9
IGZhbHNlOwogICAgIH0sCiAKICAgICAvKioKICAgICAgKiBAcGFyYW0ge0VsZW1lbnR9IHBhcmVu
dEVsZW1lbnQKKyAgICAgKiBAcGFyYW0ge0VsZW1lbnQ9fSBpbnNlcnRCZWZvcmUKICAgICAgKi8K
LSAgICBhdHRhY2g6IGZ1bmN0aW9uKHBhcmVudEVsZW1lbnQpCisgICAgc2hvdzogZnVuY3Rpb24o
cGFyZW50RWxlbWVudCwgaW5zZXJ0QmVmb3JlKQogICAgIHsKLSAgICAgICAgcGFyZW50RWxlbWVu
dC5hcHBlbmRDaGlsZCh0aGlzLmVsZW1lbnQpOworICAgICAgICBpZiAoIXBhcmVudEVsZW1lbnQp
IHsKKyAgICAgICAgICAgIGNvbnNvbGUudHJhY2UoKTsKKyAgICAgICAgICAgIHRocm93IG5ldyBF
cnJvcigiQXR0ZW1wdCB0byBhdHRhY2ggdmlldyB3aXRoIG5vIHBhcmVudCBlbGVtZW50Iik7Cisg
ICAgICAgIH0KKworICAgICAgICB0aGlzLl92aXNpYmxlID0gdHJ1ZTsKKyAgICAgICAgdGhpcy5l
bGVtZW50LmFkZFN0eWxlQ2xhc3MoInZpc2libGUiKTsKKworICAgICAgICBpZiAodGhpcy5lbGVt
ZW50LnBhcmVudEVsZW1lbnQgPT09IHBhcmVudEVsZW1lbnQpIHsKKyAgICAgICAgICAgIHRoaXMu
X3Byb2Nlc3NXYXNTaG93bigpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAg
ICAgICAgLy8gRm9yY2UgbGVnYWwgYXBwZW5kCisgICAgICAgIFdlYkluc3BlY3Rvci5WaWV3Ll9p
bmNyZW1lbnRWaWV3Q291bnRlcihwYXJlbnRFbGVtZW50LCB0aGlzLmVsZW1lbnQpOworICAgICAg
ICBpZiAoaW5zZXJ0QmVmb3JlKQorICAgICAgICAgICAgV2ViSW5zcGVjdG9yLlZpZXcuX29yaWdp
bmFsSW5zZXJ0QmVmb3JlLmNhbGwocGFyZW50RWxlbWVudCwgdGhpcy5lbGVtZW50LCBpbnNlcnRC
ZWZvcmUpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBXZWJJbnNwZWN0b3IuVmlldy5fb3Jp
Z2luYWxBcHBlbmRDaGlsZC5jYWxsKHBhcmVudEVsZW1lbnQsIHRoaXMuZWxlbWVudCk7CisKKyAg
ICAgICAgLy8gVXBkYXRlIHZpZXcgaGllcmFyY2h5CisgICAgICAgIHZhciBjdXJyZW50UGFyZW50
ID0gcGFyZW50RWxlbWVudDsKKyAgICAgICAgd2hpbGUgKGN1cnJlbnRQYXJlbnQgJiYgIWN1cnJl
bnRQYXJlbnQuX192aWV3KQorICAgICAgICAgICAgY3VycmVudFBhcmVudCA9IGN1cnJlbnRQYXJl
bnQucGFyZW50RWxlbWVudDsKKworICAgICAgICBpZiAoY3VycmVudFBhcmVudCkgeworICAgICAg
ICAgICAgdGhpcy5fcGFyZW50VmlldyA9IGN1cnJlbnRQYXJlbnQuX192aWV3OworICAgICAgICAg
ICAgdGhpcy5fcGFyZW50Vmlldy5fY2hpbGRyZW4ucHVzaCh0aGlzKTsKKyAgICAgICAgICAgIHRo
aXMuX2lzUm9vdCA9IGZhbHNlOworICAgICAgICAgICAgdGhpcy5fcHJvY2Vzc1dhc1Nob3duKCk7
CisgICAgICAgIH0gZWxzZSBpZiAoIXRoaXMuX2lzUm9vdCkgeworICAgICAgICAgICAgY29uc29s
ZS50cmFjZSgpOworICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJBdHRlbXB0IHRvIGF0dGFj
aCB2aWV3IHRvIG9ycGhhbiBub2RlIik7CisgICAgICAgIH0KICAgICB9LAogCiAgICAgZGV0YWNo
OiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBpZiAodGhpcy5fdmlzaWJsZSkgewotICAgICAg
ICAgICAgdGhpcy5faW5EZXRhY2ggPSB0cnVlOwotICAgICAgICAgICAgdGhpcy5oaWRlKCk7Ci0g
ICAgICAgICAgICB0aGlzLl9pbkRldGFjaCA9IGZhbHNlOworICAgICAgICB2YXIgcGFyZW50RWxl
bWVudCA9IHRoaXMuZWxlbWVudC5wYXJlbnRFbGVtZW50OworICAgICAgICBpZiAoIXBhcmVudEVs
ZW1lbnQpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgdGhpcy5fcHJvY2Vzc1dpbGxI
aWRlKCk7CisKKyAgICAgICAgaWYgKHRoaXMuX2hpZGVPbkRldGFjaCkgeworICAgICAgICAgICAg
dGhpcy5lbGVtZW50LnJlbW92ZVN0eWxlQ2xhc3MoInZpc2libGUiKTsKKyAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgfQogCi0gICAgICAgIHRoaXMuZGlzcGF0Y2hUb1NlbGZBbmRDaGlsZHJl
bigid2lsbERldGFjaCIsIGZhbHNlKTsKKyAgICAgICAgLy8gRm9yY2UgbGVnYWwgcmVtb3ZhbAor
ICAgICAgICBXZWJJbnNwZWN0b3IuVmlldy5fZGVjcmVtZW50Vmlld0NvdW50ZXIocGFyZW50RWxl
bWVudCwgdGhpcy5lbGVtZW50KTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLlZpZXcuX29yaWdpbmFs
UmVtb3ZlQ2hpbGQuY2FsbChwYXJlbnRFbGVtZW50LCB0aGlzLmVsZW1lbnQpOworCisgICAgICAg
IC8vIFVwZGF0ZSB2aWV3IGhpZXJhcmNoeQorICAgICAgICBpZiAodGhpcy5fcGFyZW50Vmlldykg
eworICAgICAgICAgICAgdmFyIGNoaWxkSW5kZXggPSB0aGlzLl9wYXJlbnRWaWV3Ll9jaGlsZHJl
bi5pbmRleE9mKHRoaXMpOworICAgICAgICAgICAgaWYgKGNoaWxkSW5kZXggPCAwKSB7CisgICAg
ICAgICAgICAgICAgY29uc29sZS50cmFjZSgpOworICAgICAgICAgICAgICAgIHRocm93IG5ldyBF
cnJvcigiQXR0ZW1wdCB0byByZW1vdmUgbm9uLWNoaWxkIHZpZXciKTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIHRoaXMuX3BhcmVudFZpZXcuX2NoaWxkcmVuLnNwbGljZShjaGlsZEluZGV4
LCAxKTsKKyAgICAgICAgICAgIHRoaXMuX3BhcmVudFZpZXcgPSBudWxsOworICAgICAgICB9CiAK
LSAgICAgICAgaWYgKHRoaXMuZWxlbWVudC5wYXJlbnRFbGVtZW50KQotICAgICAgICAgICAgdGhp
cy5lbGVtZW50LnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcy5lbGVtZW50KTsKKyAgICAg
ICAgdGhpcy5fdmlzaWJsZSA9IGZhbHNlOwogICAgIH0sCiAKICAgICBlbGVtZW50c1RvUmVzdG9y
ZVNjcm9sbFBvc2l0aW9uc0ZvcjogZnVuY3Rpb24oKQpAQCAtMTQwLDI4ICsyMTAsNiBAQCBXZWJJ
bnNwZWN0b3IuVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgIH0KICAgICB9LAogCi0gICAgX2Fk
ZENoaWxkVmlldzogZnVuY3Rpb24odmlldykKLSAgICB7Ci0gICAgICAgIHRoaXMuX2NoaWxkcmVu
LnB1c2godmlldyk7Ci0gICAgICAgIHZpZXcuX3BhcmVudFZpZXcgPSB0aGlzOwotICAgIH0sCi0K
LSAgICBfcmVtb3ZlQ2hpbGRWaWV3OiBmdW5jdGlvbih2aWV3KQotICAgIHsKLSAgICAgICAgdmFy
IGNoaWxkSW5kZXggPSB0aGlzLl9jaGlsZHJlbi5pbmRleE9mKHZpZXcpOwotICAgICAgICBpZiAo
Y2hpbGRJbmRleCA8IDApIHsKLSAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoIkF0dGVtcHQgdG8g
cmVtb3ZlIG5vbi1jaGlsZCB2aWV3Iik7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0K
LQotICAgICAgICB0aGlzLl9jaGlsZHJlbi5zcGxpY2UoY2hpbGRJbmRleCwgMSk7Ci0gICAgICAg
IHZpZXcuX3BhcmVudFZpZXcgPSBudWxsOwotICAgIH0sCi0KLSAgICBvblJlc2l6ZTogZnVuY3Rp
b24oKQotICAgIHsKLSAgICB9LAotCiAgICAgY2FuSGlnaGxpZ2h0TGluZTogZnVuY3Rpb24oKQog
ICAgIHsKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTczLDQ1ICsyMjEsNyBAQCBXZWJJbnNw
ZWN0b3IuVmlldy5wcm90b3R5cGUgPSB7CiAKICAgICBkb1Jlc2l6ZTogZnVuY3Rpb24oKQogICAg
IHsKLSAgICAgICAgdGhpcy5kaXNwYXRjaFRvU2VsZkFuZENoaWxkcmVuKCJvblJlc2l6ZSIsIHRy
dWUpOwotICAgIH0sCi0KLSAgICBkaXNwYXRjaFRvU2VsZkFuZENoaWxkcmVuOiBmdW5jdGlvbiht
ZXRob2ROYW1lLCB2aXNpYmxlT25seSkKLSAgICB7Ci0gICAgICAgIGlmICh2aXNpYmxlT25seSAm
JiAhdGhpcy52aXNpYmxlKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBpZiAodHlwZW9m
IHRoaXNbbWV0aG9kTmFtZV0gPT09ICJmdW5jdGlvbiIpCi0gICAgICAgICAgICB0aGlzW21ldGhv
ZE5hbWVdLmNhbGwodGhpcyk7Ci0gICAgICAgIHRoaXMuZGlzcGF0Y2hUb0NoaWxkcmVuKG1ldGhv
ZE5hbWUsIHZpc2libGVPbmx5KTsKLSAgICB9LAotCi0gICAgZGlzcGF0Y2hUb0NoaWxkcmVuOiBm
dW5jdGlvbihtZXRob2ROYW1lLCB2aXNpYmxlT25seSkKLSAgICB7Ci0gICAgICAgIGlmICh2aXNp
YmxlT25seSAmJiAhdGhpcy52aXNpYmxlKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IHRoaXMuX2NoaWxkcmVuLmxlbmd0aDsgKytpKQotICAgICAgICAg
ICAgdGhpcy5fY2hpbGRyZW5baV0uZGlzcGF0Y2hUb1NlbGZBbmRDaGlsZHJlbihtZXRob2ROYW1l
LCB2aXNpYmxlT25seSk7Ci0gICAgfSwKLQotICAgIF9oYW5kbGVJbnNlcnRlZEludG9Eb2N1bWVu
dDogZnVuY3Rpb24oZXZlbnQpCi0gICAgewotICAgICAgICB2YXIgcGFyZW50RWxlbWVudCA9IHRo
aXMuZWxlbWVudC5wYXJlbnRFbGVtZW50OwotICAgICAgICB3aGlsZSAocGFyZW50RWxlbWVudCAm
JiAhcGFyZW50RWxlbWVudC5fX3ZpZXcpCi0gICAgICAgICAgICBwYXJlbnRFbGVtZW50ID0gcGFy
ZW50RWxlbWVudC5wYXJlbnRFbGVtZW50OwotCi0gICAgICAgIHZhciBwYXJlbnRWaWV3ID0gcGFy
ZW50RWxlbWVudCA/IHBhcmVudEVsZW1lbnQuX192aWV3IDogV2ViSW5zcGVjdG9yLl9yb290Vmll
dzsKLSAgICAgICAgcGFyZW50Vmlldy5fYWRkQ2hpbGRWaWV3KHRoaXMpOwotICAgICAgICB0aGlz
Lm9uSW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKTsKLSAgICB9LAotCi0gICAgb25JbnNlcnRlZEludG9E
b2N1bWVudDogZnVuY3Rpb24oKQotICAgIHsKLSAgICB9LAotCi0gICAgX2hhbmRsZVJlbW92ZWRG
cm9tRG9jdW1lbnQ6IGZ1bmN0aW9uKGV2ZW50KQotICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX3Bh
cmVudFZpZXcpCi0gICAgICAgICAgICB0aGlzLl9wYXJlbnRWaWV3Ll9yZW1vdmVDaGlsZFZpZXco
dGhpcyk7CisgICAgICAgIHRoaXMuX3Byb2Nlc3NPblJlc2l6ZSgpOwogICAgIH0sCiAKICAgICBw
cmludFZpZXdIaWVyYXJjaHk6IGZ1bmN0aW9uKCkKQEAgLTIzNSw0ICsyNDUsNjQgQEAgV2ViSW5z
cGVjdG9yLlZpZXcucHJvdG90eXBlID0gewogCiBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUu
X19wcm90b19fID0gV2ViSW5zcGVjdG9yLk9iamVjdC5wcm90b3R5cGU7CiAKLVdlYkluc3BlY3Rv
ci5fcm9vdFZpZXcgPSBuZXcgV2ViSW5zcGVjdG9yLlZpZXcoKTsKK1dlYkluc3BlY3Rvci5WaWV3
Ll9vcmlnaW5hbEFwcGVuZENoaWxkID0gRWxlbWVudC5wcm90b3R5cGUuYXBwZW5kQ2hpbGQ7CitX
ZWJJbnNwZWN0b3IuVmlldy5fb3JpZ2luYWxJbnNlcnRCZWZvcmUgPSBFbGVtZW50LnByb3RvdHlw
ZS5pbnNlcnRCZWZvcmU7CitXZWJJbnNwZWN0b3IuVmlldy5fb3JpZ2luYWxSZW1vdmVDaGlsZCA9
IEVsZW1lbnQucHJvdG90eXBlLnJlbW92ZUNoaWxkOworV2ViSW5zcGVjdG9yLlZpZXcuX29yaWdp
bmFsUmVtb3ZlQ2hpbGRyZW4gPSBFbGVtZW50LnByb3RvdHlwZS5yZW1vdmVDaGlsZHJlbjsKKwor
V2ViSW5zcGVjdG9yLlZpZXcuX2luY3JlbWVudFZpZXdDb3VudGVyID0gZnVuY3Rpb24ocGFyZW50
RWxlbWVudCwgY2hpbGRFbGVtZW50KQoreworICAgIHZhciBjb3VudCA9IChjaGlsZEVsZW1lbnQu
X192aWV3Q291bnRlciB8fCAwKSArIChjaGlsZEVsZW1lbnQuX192aWV3ID8gMSA6IDApOworICAg
IGlmICghY291bnQpCisgICAgICAgIHJldHVybjsKKworICAgIHdoaWxlIChwYXJlbnRFbGVtZW50
KSB7CisgICAgICAgIHBhcmVudEVsZW1lbnQuX192aWV3Q291bnRlciA9IChwYXJlbnRFbGVtZW50
Ll9fdmlld0NvdW50ZXIgfHwgMCkgKyBjb3VudDsKKyAgICAgICAgcGFyZW50RWxlbWVudCA9IHBh
cmVudEVsZW1lbnQucGFyZW50RWxlbWVudDsKKyAgICB9Cit9CisKK1dlYkluc3BlY3Rvci5WaWV3
Ll9kZWNyZW1lbnRWaWV3Q291bnRlciA9IGZ1bmN0aW9uKHBhcmVudEVsZW1lbnQsIGNoaWxkRWxl
bWVudCkKK3sKKyAgICB2YXIgY291bnQgPSAoY2hpbGRFbGVtZW50Ll9fdmlld0NvdW50ZXIgfHwg
MCkgKyAoY2hpbGRFbGVtZW50Ll9fdmlldyA/IDEgOiAwKTsKKyAgICBpZiAoIWNvdW50KQorICAg
ICAgICByZXR1cm47CisKKyAgICB3aGlsZSAocGFyZW50RWxlbWVudCkgeworICAgICAgICBwYXJl
bnRFbGVtZW50Ll9fdmlld0NvdW50ZXIgLT0gY291bnQ7CisgICAgICAgIHBhcmVudEVsZW1lbnQg
PSBwYXJlbnRFbGVtZW50LnBhcmVudEVsZW1lbnQ7CisgICAgfQorfQorCitXZWJJbnNwZWN0b3Iu
Vmlldy5fYXNzZXJ0ID0gZnVuY3Rpb24oY29uZGl0aW9uLCBtZXNzYWdlKQoreworICAgIGlmICgh
Y29uZGl0aW9uKSB7CisgICAgICAgIGNvbnNvbGUudHJhY2UoKTsKKyAgICAgICAgdGhyb3cgbmV3
IEVycm9yKG1lc3NhZ2UpOworICAgIH0KK30KKworRWxlbWVudC5wcm90b3R5cGUuYXBwZW5kQ2hp
bGQgPSBmdW5jdGlvbihjaGlsZCkKK3sKKyAgICBXZWJJbnNwZWN0b3IuVmlldy5fYXNzZXJ0KCFj
aGlsZC5fX3ZpZXcsICJBdHRlbXB0IHRvIGFkZCB2aWV3IHZpYSByZWd1bGFyIERPTSBvcGVyYXRp
b24uIik7CisgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5WaWV3Ll9vcmlnaW5hbEFwcGVuZENoaWxk
LmNhbGwodGhpcywgY2hpbGQpOworfQorCitFbGVtZW50LnByb3RvdHlwZS5pbnNlcnRCZWZvcmUg
PSBmdW5jdGlvbihjaGlsZCwgYW5jaG9yKQoreworICAgIFdlYkluc3BlY3Rvci5WaWV3Ll9hc3Nl
cnQoIWNoaWxkLl9fdmlldywgIkF0dGVtcHQgdG8gYWRkIHZpZXcgdmlhIHJlZ3VsYXIgRE9NIG9w
ZXJhdGlvbi4iKTsKKyAgICByZXR1cm4gV2ViSW5zcGVjdG9yLlZpZXcuX29yaWdpbmFsSW5zZXJ0
QmVmb3JlLmNhbGwodGhpcywgY2hpbGQsIGFuY2hvcik7Cit9CisKKworRWxlbWVudC5wcm90b3R5
cGUucmVtb3ZlQ2hpbGQgPSBmdW5jdGlvbihjaGlsZCkKK3sKKyAgICBXZWJJbnNwZWN0b3IuVmll
dy5fYXNzZXJ0KCFjaGlsZC5fX3ZpZXdDb3VudGVyICYmICFjaGlsZC5fX3ZpZXcsICJBdHRlbXB0
IHRvIHJlbW92ZSBlbGVtZW50IGNvbnRhaW5pbmcgdmlldyB2aWEgcmVndWxhciBET00gb3BlcmF0
aW9uIik7CisgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5WaWV3Ll9vcmlnaW5hbFJlbW92ZUNoaWxk
LmNhbGwodGhpcywgY2hpbGQpOworfQorCitFbGVtZW50LnByb3RvdHlwZS5yZW1vdmVDaGlsZHJl
biA9IGZ1bmN0aW9uKCkKK3sKKyAgICBXZWJJbnNwZWN0b3IuVmlldy5fYXNzZXJ0KCF0aGlzLl9f
dmlld0NvdW50ZXIsICJBdHRlbXB0IHRvIHJlbW92ZSBlbGVtZW50IGNvbnRhaW5pbmcgdmlldyB2
aWEgcmVndWxhciBET00gb3BlcmF0aW9uIik7CisgICAgV2ViSW5zcGVjdG9yLlZpZXcuX29yaWdp
bmFsUmVtb3ZlQ2hpbGRyZW4uY2FsbCh0aGlzKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvZXh0ZXJucy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvZXh0ZXJucy5qcwppbmRleCBkZjY4YzZiOTRiYjJjMGJiM2I1OGU0OTAz
OWI0MGQwNzFlNDVkM2FkLi45YWY4OWFhODM0ZjA3YjM3MTA1M2U1OTcyNjMzMmM1YjQ0OWU1NTdk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2V4dGVybnMu
anMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9leHRlcm5zLmpzCkBA
IC0zNSw2ICszNSw3IEBAIGNvbnNvbGUud2FybiA9IGZ1bmN0aW9uKHZhcmFyZykge30KIGNvbnNv
bGUuYXNzZXJ0ID0gZnVuY3Rpb24odmFyYXJnKSB7fQogLyoqIEBwYXJhbSB7Li4uKn0gdmFyYXJn
ICovCiBjb25zb2xlLmVycm9yID0gZnVuY3Rpb24odmFyYXJnKSB7fQorY29uc29sZS50cmFjZSA9
IGZ1bmN0aW9uKCkge30KIAogdmFyIFdlYkluc3BlY3RvciA9IHt9CiAKQEAgLTI3OCwzICsyNzks
OCBAQCBmdW5jdGlvbiBFeHRlbnNpb25EZXNjcmlwdG9yKCkgewogICogQHR5cGUge1dlYkluc3Bl
Y3Rvci5IYW5kbGVyUmVnaXN0cnl9CiAgKi8KIFdlYkluc3BlY3Rvci5vcGVuQW5jaG9yTG9jYXRp
b25SZWdpc3RyeSA9IG51bGw7CisKKy8qKgorICogQHR5cGUge1dlYkluc3BlY3Rvci5WaWV3fQor
ICovCitXZWJJbnNwZWN0b3IubWFpblBhbmVsc1ZpZXc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbAppbmRleCBlMDY5NjE1ZjdiODYxNzky
MTY4MTRhOTlhNTg4YjJmMjIyYWNlOGJkLi5kNTA5ZGVmNTkxNjg1ZGE5ZmQ5ZTJhMTRlNTU5NTU3
ZmI4MTI3YWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L2luc3BlY3Rvci5odG1sCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
aW5zcGVjdG9yLmh0bWwKQEAgLTE5OSw3ICsxOTksNiBAQCBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICAgICAgICA8L2Rp
dj4KICAgICA8L2Rpdj4KICAgICA8ZGl2IGlkPSJtYWluIj4KLSAgICAgICAgPGRpdiBpZD0ibWFp
bi1wYW5lbHMiIHNwZWxsY2hlY2s9ImZhbHNlIj48L2Rpdj4KICAgICAgICAgPGRpdiBpZD0ibWFp
bi1zdGF0dXMtYmFyIiBjbGFzcz0ic3RhdHVzLWJhciI+PGRpdiBpZD0iYW5jaG9yZWQtc3RhdHVz
LWJhci1pdGVtcyI+PGRpdiBpZD0iY291bnRlcnMiPjxkaXYgaWQ9ImVycm9yLXdhcm5pbmctY291
bnQiIGNsYXNzPSJoaWRkZW4iPjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PgogICAgIDwvZGl2Pgog
ICAgIDxkaXYgaWQ9ImRyYXdlciI+PC9kaXY+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCmluZGV4IGYwYWNlOWM2MzhkNDg5Mjg5MWNiNGJkYTI4
NDI3OWVjZjUwNjZlMWQuLjhmMjAzNzVkNTQ0YjQxZWI2NzlhMWM0ODNiZDUzZGZiMDA4MzcxYmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9y
LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpz
CkBAIC0xNTAsNiArMTUwLDEzIEBAIHZhciBXZWJJbnNwZWN0b3IgPSB7CiAKICAgICBfY3JlYXRl
UGFuZWxzOiBmdW5jdGlvbigpCiAgICAgeworICAgICAgICBXZWJJbnNwZWN0b3IubWFpblBhbmVs
c1ZpZXcgPSBuZXcgV2ViSW5zcGVjdG9yLlZpZXcoKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLm1h
aW5QYW5lbHNWaWV3Lm1hcmtBc1Jvb3QoKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLm1haW5QYW5l
bHNWaWV3LmVsZW1lbnQuaWQgPSAibWFpbi1wYW5lbHMiOworICAgICAgICBXZWJJbnNwZWN0b3Iu
bWFpblBhbmVsc1ZpZXcuZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNwZWxsY2hlY2siLCBmYWxzZSk7
CisgICAgICAgIHZhciBwYXJlbnRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1h
aW4iKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLm1haW5QYW5lbHNWaWV3LnNob3cocGFyZW50RWxl
bWVudCk7CisKICAgICAgICAgaWYgKFdlYkluc3BlY3Rvci5Xb3JrZXJNYW5hZ2VyLmlzV29ya2Vy
RnJvbnRlbmQoKSkgewogICAgICAgICAgICAgdGhpcy5wYW5lbHMuc2NyaXB0cyA9IG5ldyBXZWJJ
bnNwZWN0b3IuU2NyaXB0c1BhbmVsKHRoaXMuZGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbCk7CiAg
ICAgICAgICAgICB0aGlzLnBhbmVscy5jb25zb2xlID0gbmV3IFdlYkluc3BlY3Rvci5Db25zb2xl
UGFuZWwoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCBiMmU5MmZkNjc0NmY0MWI1YjZlYmFiNGUwMzJhNGQ5YjRjODE5OTIz
Li5lMWI3ZjBlYWY5YjljMGIwYWMzMzdjNWE0ZTk4Nzk3MTg5MThhZDk1IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTQgQEAKKzIwMTEtMTAtMjAgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBnb29nbGUuY29t
PgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGdldCByaWQgb2YgVmlldzo6aGlkZSwgVmlldzo6
c2V0IHZpc2libGUsIFZpZXc6OmF0dGFjaC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTcwNTIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1wYW5lbC5odG1s
OgorICAgICAgICAqIGluc3BlY3Rvci92aWV3LWV2ZW50cy1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogaW5zcGVjdG9yL3ZpZXctZXZlbnRzLmh0bWw6CisKIDIwMTEtMTAtMjEgIFpvbHRhbiBIb3J2
YXRoICA8em9sdGFuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1F0XSBmYXN0L2V2ZW50cy90b3Vj
aC9wYWdlLXNjYWxlZC10b3VjaC1nZXN0dXJlLWNsaWNrLmh0bWwgaXMgZmFpbGluZyAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLXBhbmVsLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1wYW5lbC5odG1sCmluZGV4
IGUzMTIwZmViMDY0ZTUxNGQyNTk0NjQ5OTVhMjBlZTYyODI0ZTNkYTUuLmZhNDZiODBjYjVjYTQ3
OGNjYTRhYzdhNWZlMjMwNDE1YjU2N2ExNGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci9zY3JpcHRzLXBhbmVsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2RlYnVnZ2VyL3NjcmlwdHMtcGFuZWwuaHRtbApAQCAtNDksNiArNDksNyBAQCBmdW5jdGlv
biB0ZXN0KCkKICAgICAgICAgewogICAgICAgICAgICAgdmFyIG1vZGVsID0gY3JlYXRlRGVidWdn
ZXJQcmVzZW50YXRpb25Nb2RlbE1vY2soKTsKICAgICAgICAgICAgIHZhciBwYW5lbCA9IG5ldyBX
ZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsKG1vZGVsKTsKKyAgICAgICAgICAgIHBhbmVsLm1hcmtB
c1Jvb3QoKTsKIAogICAgICAgICAgICAgcGFuZWwuX3VpU291cmNlQ29kZUFkZGVkKHsgZGF0YTog
Y3JlYXRlVUlTb3VjZUNvZGUoImZvby5qcyIpIH0pOwogICAgICAgICAgICAgcGFuZWwuX3VpU291
cmNlQ29kZUFkZGVkKHsgZGF0YTogY3JlYXRlVUlTb3VjZUNvZGUoImJhci5qcyIpIH0pOwpAQCAt
NzQsNiArNzUsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgewogICAgICAgICAgICAgdmFy
IG1vZGVsID0gY3JlYXRlRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbE1vY2soKTsKICAgICAgICAg
ICAgIHZhciBwYW5lbCA9IG5ldyBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsKG1vZGVsKTsKKyAg
ICAgICAgICAgIHBhbmVsLm1hcmtBc1Jvb3QoKTsKIAogICAgICAgICAgICAgdmFyIGZpbGVzID0g
WyJpbmRleC5odG1sIiwgInNjcmlwdDEuanMiLCAic2NyaXB0Mi5qcyIsICJzY3JpcHQzLmpzIl07
CiAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGZpbGVzLmxlbmd0aDsgKytpKQpAQCAt
MTMwLDYgKzEzMiw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICB7CiAgICAgICAgICAgICB2
YXIgbW9kZWwgPSBjcmVhdGVEZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsTW9jaygpOwogICAgICAg
ICAgICAgdmFyIHBhbmVsID0gbmV3IFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwobW9kZWwpOwor
ICAgICAgICAgICAgcGFuZWwubWFya0FzUm9vdCgpOwogCiAgICAgICAgICAgICB2YXIgcm9vdFVS
TCA9ICJodHRwOi8vbG9jYWxob3N0OjgwODAvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
LyI7CiAgICAgICAgICAgICB2YXIgbmV4dElkID0gMDsKQEAgLTE2Myw2ICsxNjYsNyBAQCBmdW5j
dGlvbiB0ZXN0KCkKICAgICAgICAgewogICAgICAgICAgICAgdmFyIG1vZGVsID0gY3JlYXRlRGVi
dWdnZXJQcmVzZW50YXRpb25Nb2RlbE1vY2soKTsKICAgICAgICAgICAgIHZhciBwYW5lbCA9IG5l
dyBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsKG1vZGVsKTsKKyAgICAgICAgICAgIHBhbmVsLm1h
cmtBc1Jvb3QoKTsKIAogICAgICAgICAgICAgcGFuZWwuX3VpU291cmNlQ29kZUFkZGVkKHsgZGF0
YTogY3JlYXRlVUlTb3VjZUNvZGUoImZvby5qcyIpIH0pOwogICAgICAgICAgICAgdmFyIGNvbXBp
bGVkU291cmNlQ29kZSA9IGNyZWF0ZVVJU291Y2VDb2RlKCJjb21waWxlZC5qcyIpOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3ZpZXctZXZlbnRzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci92aWV3LWV2ZW50cy1leHBlY3RlZC50eHQKaW5kZXggNmMzNzFj
ODk0NTc2NDViZmFiN2YxNzc0MTI3NDNiODIzMmI2NjRmNy4uMTU5OGU0MmMxMjkxNWNiZDBkMjZk
MzM0MjQzYTFkZDk0NjkzYWFlNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Zp
ZXctZXZlbnRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivdmlldy1l
dmVudHMtZXhwZWN0ZWQudHh0CkBAIC0xLDI2ICsxLDEwOCBAQAogVGhpcyB0ZXN0cyB0aGF0IGV2
ZW50cyBhcmUgcHJvcGVybHkgcHJvcGFnYXRlZCB0aHJvdWdoIFZpZXcgaGllcmFyY2h5LgogCi1w
YXJlbnRWaWV3LnNob3cocm9vdCkKLT4gUGFyZW50Vmlldy53YXNTaG93bigpCi0+IFBhcmVudFZp
ZXcub25SZXNpemUoKQotcGFyZW50Vmlldy5kb1Jlc2l6ZSgpCi0+IFBhcmVudFZpZXcub25SZXNp
emUoKQotY2hpbGRWaWV3LnNob3cocGFyZW50Vmlldy5lbGVtZW50KQotPiBDaGlsZFZpZXcud2Fz
U2hvd24oKQotPiBDaGlsZFZpZXcub25SZXNpemUoKQotcGFyZW50Vmlldy5kb1Jlc2l6ZSgpCi0+
IFBhcmVudFZpZXcub25SZXNpemUoKQotPiBDaGlsZFZpZXcub25SZXNpemUoKQotcGFyZW50Vmll
dy5oaWRlKCkKLT4gUGFyZW50Vmlldy53aWxsSGlkZSgpCi0+IENoaWxkVmlldy53aWxsSGlkZSgp
Ci1wYXJlbnRWaWV3LnNob3cocm9vdCkKLT4gUGFyZW50Vmlldy53YXNTaG93bigpCi0+IFBhcmVu
dFZpZXcub25SZXNpemUoKQotPiBDaGlsZFZpZXcud2FzU2hvd24oKQotPiBDaGlsZFZpZXcub25S
ZXNpemUoKQotY2hpbGRWaWV3LmhpZGUoKQotPiBDaGlsZFZpZXcud2lsbEhpZGUoKQotcGFyZW50
Vmlldy5oaWRlKCkKLT4gUGFyZW50Vmlldy53aWxsSGlkZSgpCisKK1J1bm5pbmc6IHRlc3RTaG93
VmlldworVmlldygpCitWaWV3LnNob3coKQorICBWaWV3Lndhc1Nob3duKCkKKyAgVmlldy5vblJl
c2l6ZSgpCitWaWV3LmRldGFjaCgpCisgIFZpZXcud2lsbEhpZGUoKQorCitSdW5uaW5nOiB0ZXN0
QXBwZW5kVmlhRE9NCitWaWV3KCkKK0Vycm9yOiBBdHRlbXB0IHRvIGFkZCB2aWV3IHZpYSByZWd1
bGFyIERPTSBvcGVyYXRpb24uCisKK1J1bm5pbmc6IHRlc3RJbnNlcnRWaWFET00KK1ZpZXcoKQor
RXJyb3I6IEF0dGVtcHQgdG8gYWRkIHZpZXcgdmlhIHJlZ3VsYXIgRE9NIG9wZXJhdGlvbi4KKwor
UnVubmluZzogdGVzdEF0dGFjaFRvT3JwaGFuTm9kZQorVmlldygpCitWaWV3LnNob3coKQorRXJy
b3I6IEF0dGVtcHQgdG8gYXR0YWNoIHZpZXcgdG8gb3JwaGFuIG5vZGUKKworUnVubmluZzogdGVz
dEltbWVkaWF0ZVBhcmVudAorUGFyZW50KCkKK0NoaWxkKCkKK0NoaWxkLnNob3coKQorT0sKKwor
UnVubmluZzogdGVzdERpc3RhbnRQYXJlbnQKK1BhcmVudCgpCitDaGlsZCgpCitDaGlsZC5zaG93
KCkKK09LCisKK1J1bm5pbmc6IHRlc3RFdmVudHMKK1BhcmVudCgpCitDaGlsZCgpCitQYXJlbnQu
c2hvdygpCisgIFBhcmVudC53YXNTaG93bigpCisgIFBhcmVudC5vblJlc2l6ZSgpCitQYXJlbnQu
ZG9SZXNpemUoKQorICBQYXJlbnQub25SZXNpemUoKQorQ2hpbGQuc2hvdygpCisgIENoaWxkLndh
c1Nob3duKCkKKyAgQ2hpbGQub25SZXNpemUoKQorUGFyZW50LmRvUmVzaXplKCkKKyAgUGFyZW50
Lm9uUmVzaXplKCkKKyAgQ2hpbGQub25SZXNpemUoKQorUGFyZW50LmRldGFjaCgpCisgIENoaWxk
LndpbGxIaWRlKCkKKyAgUGFyZW50LndpbGxIaWRlKCkKK1BhcmVudC5zaG93KCkKKyAgUGFyZW50
Lndhc1Nob3duKCkKKyAgUGFyZW50Lm9uUmVzaXplKCkKKyAgQ2hpbGQud2FzU2hvd24oKQorICBD
aGlsZC5vblJlc2l6ZSgpCitDaGlsZC5kZXRhY2goKQorICBDaGlsZC53aWxsSGlkZSgpCitQYXJl
bnQuZGV0YWNoKCkKKyAgUGFyZW50LndpbGxIaWRlKCkKKworUnVubmluZzogdGVzdFZpZXdDb3Vu
dGVyCitQYXJlbnQoKQorQ2hpbGQoKQorQ2hpbGQuc2hvdygpCisgIENoaWxkLndhc1Nob3duKCkK
KyAgQ2hpbGQub25SZXNpemUoKQorICB2aWV3IGNvdW50ZXI6IDEKK0NoaWxkIDIoKQorQ2hpbGQg
Mi5zaG93KCkKKyAgQ2hpbGQgMi53YXNTaG93bigpCisgIENoaWxkIDIub25SZXNpemUoKQorICB2
aWV3IGNvdW50ZXI6IDIKK0NoaWxkLmRldGFjaCgpCisgIENoaWxkLndpbGxIaWRlKCkKKyAgdmll
dyBjb3VudGVyOiAxCitDaGlsZCAyLmRldGFjaCgpCisgIENoaWxkIDIud2lsbEhpZGUoKQorICB2
aWV3IGNvdW50ZXI6IDAKKworUnVubmluZzogdGVzdFJlbW92ZUNoaWxkCitQYXJlbnQoKQorQ2hp
bGQoKQorQ2hpbGQuc2hvdygpCisgIENoaWxkLndhc1Nob3duKCkKKyAgQ2hpbGQub25SZXNpemUo
KQorRXJyb3I6IEF0dGVtcHQgdG8gcmVtb3ZlIGVsZW1lbnQgY29udGFpbmluZyB2aWV3IHZpYSBy
ZWd1bGFyIERPTSBvcGVyYXRpb24KKworUnVubmluZzogdGVzdEltcGxpY2l0UmVtb3ZlQ2hpbGQK
K1BhcmVudCgpCitDaGlsZCgpCitDaGlsZC5zaG93KCkKK0Vycm9yOiBBdHRlbXB0IHRvIHJlbW92
ZSBlbGVtZW50IGNvbnRhaW5pbmcgdmlldyB2aWEgcmVndWxhciBET00gb3BlcmF0aW9uCisKK1J1
bm5pbmc6IHRlc3RSZW1vdmVDaGlsZHJlbgorUGFyZW50KCkKK0NoaWxkKCkKK0NoaWxkLnNob3co
KQorRXJyb3I6IEF0dGVtcHQgdG8gcmVtb3ZlIGVsZW1lbnQgY29udGFpbmluZyB2aWV3IHZpYSBy
ZWd1bGFyIERPTSBvcGVyYXRpb24KKworUnVubmluZzogdGVzdEltcGxpY2l0UmVtb3ZlQ2hpbGRy
ZW4KK1BhcmVudCgpCitDaGlsZCgpCitDaGlsZC5zaG93KCkKK0Vycm9yOiBBdHRlbXB0IHRvIHJl
bW92ZSBlbGVtZW50IGNvbnRhaW5pbmcgdmlldyB2aWEgcmVndWxhciBET00gb3BlcmF0aW9uCiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci92aWV3LWV2ZW50cy5odG1sIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3ZpZXctZXZlbnRzLmh0bWwKaW5kZXggNzgzZjc2ODEwMTI2NjBk
YTZjN2ZmMDE3ZDRkOTdlODUyNzgwNjExYS4uNWM5ZTE4YWQ2N2Q4ZWZiMDU1YWZhZWFjNjlhMzA0
ODIxYjg0MDcwYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3ZpZXctZXZlbnRz
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3ZpZXctZXZlbnRzLmh0bWwKQEAgLTcs
NTQgKzcsMjIwIEBAIGZ1bmN0aW9uIHRlc3QoKQogewogICAgIGZ1bmN0aW9uIFRlc3RWaWV3KHZp
ZXdOYW1lKQogICAgIHsKLSAgICAgICAgdGhpcy5fdmlld05hbWUgPSB2aWV3TmFtZTsKICAgICAg
ICAgV2ViSW5zcGVjdG9yLlZpZXcuY2FsbCh0aGlzKTsKKworICAgICAgICB0aGlzLl92aWV3TmFt
ZSA9IHZpZXdOYW1lOworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCh0aGlzLl92aWV3
TmFtZSArICIoKSIpOwogICAgIH0KIAogICAgIFRlc3RWaWV3LnByb3RvdHlwZSA9IHsKKyAgICAg
ICAgc2hvdzogZnVuY3Rpb24ocGFyZW50RWxlbWVudCkKKyAgICAgICAgeworICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQodGhpcy5fdmlld05hbWUgKyAiLnNob3coKSIpOworICAg
ICAgICAgICAgV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLnNob3cuY2FsbCh0aGlzLCBwYXJl
bnRFbGVtZW50KTsKKyAgICAgICAgfSwKKworICAgICAgICBkZXRhY2g6IGZ1bmN0aW9uKCkKKyAg
ICAgICAgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQodGhpcy5fdmlld05h
bWUgKyAiLmRldGFjaCgpIik7CisgICAgICAgICAgICBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5
cGUuZGV0YWNoLmNhbGwodGhpcyk7CisgICAgICAgIH0sCisKKyAgICAgICAgZG9SZXNpemU6IGZ1
bmN0aW9uKCkKKyAgICAgICAgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
dGhpcy5fdmlld05hbWUgKyAiLmRvUmVzaXplKCkiKTsKKyAgICAgICAgICAgIFdlYkluc3BlY3Rv
ci5WaWV3LnByb3RvdHlwZS5kb1Jlc2l6ZS5jYWxsKHRoaXMpOworICAgICAgICB9LAorCiAgICAg
ICAgIHdhc1Nob3duOiBmdW5jdGlvbigpCiAgICAgICAgIHsKLSAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYWRkUmVzdWx0KCI+ICIgKyB0aGlzLl92aWV3TmFtZSArICIud2FzU2hvd24oKSIpOwot
ICAgICAgICAgICAgV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLndhc1Nob3duLmNhbGwodGhp
cyk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiICAiICsgdGhpcy5fdmll
d05hbWUgKyAiLndhc1Nob3duKCkiKTsKICAgICAgICAgfSwKIAogICAgICAgICB3aWxsSGlkZTog
ZnVuY3Rpb24oKQogICAgICAgICB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dCgiPiAiICsgdGhpcy5fdmlld05hbWUgKyAiLndpbGxIaWRlKCkiKTsKLSAgICAgICAgICAgIFdl
Ykluc3BlY3Rvci5WaWV3LnByb3RvdHlwZS53aWxsSGlkZS5jYWxsKHRoaXMpOworICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAgIiArIHRoaXMuX3ZpZXdOYW1lICsgIi53aWxs
SGlkZSgpIik7CiAgICAgICAgIH0sCiAKICAgICAgICAgb25SZXNpemU6IGZ1bmN0aW9uKCkKICAg
ICAgICAgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIj4gIiArIHRoaXMu
X3ZpZXdOYW1lICsgIi5vblJlc2l6ZSgpIik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdCgiICAiICsgdGhpcy5fdmlld05hbWUgKyAiLm9uUmVzaXplKCkiKTsKICAgICAgICAg
fQogICAgIH07CiAKICAgICBUZXN0Vmlldy5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVj
dG9yLlZpZXcucHJvdG90eXBlOwogCi0gICAgZnVuY3Rpb24gdHJhY2VFdmFsKGV4cHJlc3Npb25z
KQotICAgIHsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBleHByZXNzaW9ucy5sZW5ndGg7
ICsraSkgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoZXhwcmVzc2lvbnNb
aV0pOwotICAgICAgICAgICAgZXZhbChleHByZXNzaW9uc1tpXSk7CisgICAgSW5zcGVjdG9yVGVz
dC5ydW5UZXN0U3VpdGUoWworICAgICAgICBmdW5jdGlvbiB0ZXN0U2hvd1ZpZXcobmV4dCkKKyAg
ICAgICAgeworICAgICAgICAgICAgdmFyIHZpZXcgPSBuZXcgVGVzdFZpZXcoIlZpZXciKTsKKyAg
ICAgICAgICAgIHZpZXcuc2hvdyhXZWJJbnNwZWN0b3IubWFpblBhbmVsc1ZpZXcuZWxlbWVudCk7
CisgICAgICAgICAgICB2aWV3LmRldGFjaCgpOworICAgICAgICAgICAgbmV4dCgpOworICAgICAg
ICB9LAorCisgICAgICAgIGZ1bmN0aW9uIHRlc3RBcHBlbmRWaWFET00obmV4dCkKKyAgICAgICAg
eworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICB2YXIgdmlldyA9IG5ldyBUZXN0
VmlldygiVmlldyIpOworICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQo
dmlldy5lbGVtZW50KTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IG5leHQoKTsKKyAgICAgICAgfSwKKworICAgICAgICBmdW5jdGlvbiB0ZXN0SW5zZXJ0VmlhRE9N
KG5leHQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgdmFy
IHZpZXcgPSBuZXcgVGVzdFZpZXcoIlZpZXciKTsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5i
b2R5Lmluc2VydEJlZm9yZSh2aWV3LmVsZW1lbnQsIG51bGwpOworICAgICAgICAgICAgfSBjYXRj
aCAoZSkgeworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KGUpOworICAg
ICAgICAgICAgfQorICAgICAgICAgICAgbmV4dCgpOworICAgICAgICB9LAorCisgICAgICAgIGZ1
bmN0aW9uIHRlc3RBdHRhY2hUb09ycGhhbk5vZGUobmV4dCkKKyAgICAgICAgeworICAgICAgICAg
ICAgdHJ5IHsKKyAgICAgICAgICAgICAgICB2YXIgdmlldyA9IG5ldyBUZXN0VmlldygiVmlldyIp
OworICAgICAgICAgICAgICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYi
KTsKKyAgICAgICAgICAgICAgICB2aWV3LnNob3coZGl2KTsKKyAgICAgICAgICAgIH0gY2F0Y2gg
KGUpIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChlKTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIG5leHQoKTsKKyAgICAgICAgfSwKKworICAgICAgICBmdW5j
dGlvbiB0ZXN0SW1tZWRpYXRlUGFyZW50KG5leHQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHZh
ciBwYXJlbnRWaWV3ID0gbmV3IFRlc3RWaWV3KCJQYXJlbnQiKTsKKyAgICAgICAgICAgIHZhciBj
aGlsZFZpZXcgPSBuZXcgVGVzdFZpZXcoIkNoaWxkIik7CisgICAgICAgICAgICBjaGlsZFZpZXcu
c2hvdyhwYXJlbnRWaWV3LmVsZW1lbnQpOworICAgICAgICAgICAgaWYgKGNoaWxkVmlldy5fcGFy
ZW50VmlldyA9PT0gcGFyZW50VmlldykKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdCgiT0siKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmFkZFJlc3VsdCgiRkFJTEVEIik7CisgICAgICAgICAgICBuZXh0KCk7CisgICAgICAg
IH0sCisKKyAgICAgICAgZnVuY3Rpb24gdGVzdERpc3RhbnRQYXJlbnQobmV4dCkKKyAgICAgICAg
eworICAgICAgICAgICAgdmFyIHBhcmVudFZpZXcgPSBuZXcgVGVzdFZpZXcoIlBhcmVudCIpOwor
ICAgICAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAg
ICAgICAgICAgcGFyZW50Vmlldy5lbGVtZW50LmFwcGVuZENoaWxkKGRpdik7CisgICAgICAgICAg
ICB2YXIgY2hpbGRWaWV3ID0gbmV3IFRlc3RWaWV3KCJDaGlsZCIpOworICAgICAgICAgICAgY2hp
bGRWaWV3LnNob3coZGl2KTsKKworICAgICAgICAgICAgaWYgKGNoaWxkVmlldy5fcGFyZW50Vmll
dyA9PT0gcGFyZW50VmlldykKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dCgiT0siKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdCgiRkFJTEVEIik7CisgICAgICAgICAgICBuZXh0KCk7CisgICAgICAgIH0sCisK
KyAgICAgICAgZnVuY3Rpb24gdGVzdEV2ZW50cyhuZXh0KQorICAgICAgICB7CisgICAgICAgICAg
ICB2YXIgcGFyZW50VmlldyA9IG5ldyBUZXN0VmlldygiUGFyZW50Iik7CisgICAgICAgICAgICBw
YXJlbnRWaWV3Lm1hcmtBc1Jvb3QoKTsKKworICAgICAgICAgICAgdmFyIGNoaWxkVmlldyA9IG5l
dyBUZXN0VmlldygiQ2hpbGQiKTsKKyAgICAgICAgICAgIHBhcmVudFZpZXcuc2hvdyhXZWJJbnNw
ZWN0b3IubWFpblBhbmVsc1ZpZXcuZWxlbWVudCk7CisgICAgICAgICAgICBwYXJlbnRWaWV3LmRv
UmVzaXplKCk7CisgICAgICAgICAgICBjaGlsZFZpZXcuc2hvdyhwYXJlbnRWaWV3LmVsZW1lbnQp
OworICAgICAgICAgICAgcGFyZW50Vmlldy5kb1Jlc2l6ZSgpOworICAgICAgICAgICAgcGFyZW50
Vmlldy5kZXRhY2goKTsKKyAgICAgICAgICAgIHBhcmVudFZpZXcuc2hvdyhXZWJJbnNwZWN0b3Iu
bWFpblBhbmVsc1ZpZXcuZWxlbWVudCk7CisgICAgICAgICAgICBjaGlsZFZpZXcuZGV0YWNoKCk7
CisgICAgICAgICAgICBwYXJlbnRWaWV3LmRldGFjaCgpOworICAgICAgICAgICAgbmV4dCgpOwor
ICAgICAgICB9LAorCisgICAgICAgIGZ1bmN0aW9uIHRlc3RWaWV3Q291bnRlcihuZXh0KQorICAg
ICAgICB7CisgICAgICAgICAgICB2YXIgcGFyZW50VmlldyA9IG5ldyBUZXN0VmlldygiUGFyZW50
Iik7CisgICAgICAgICAgICBwYXJlbnRWaWV3Lm1hcmtBc1Jvb3QoKTsKKworICAgICAgICAgICAg
dmFyIGNoaWxkVmlldyA9IG5ldyBUZXN0VmlldygiQ2hpbGQiKTsKKyAgICAgICAgICAgIGNoaWxk
Vmlldy5zaG93KHBhcmVudFZpZXcuZWxlbWVudCk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdCgiICB2aWV3IGNvdW50ZXI6ICIgKyBwYXJlbnRWaWV3LmVsZW1lbnQuX192aWV3
Q291bnRlcik7CisKKyAgICAgICAgICAgIHZhciBjaGlsZFZpZXcyID0gbmV3IFRlc3RWaWV3KCJD
aGlsZCAyIik7CisgICAgICAgICAgICBjaGlsZFZpZXcyLnNob3cocGFyZW50Vmlldy5lbGVtZW50
KTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIgIHZpZXcgY291bnRlcjog
IiArIHBhcmVudFZpZXcuZWxlbWVudC5fX3ZpZXdDb3VudGVyKTsKKworICAgICAgICAgICAgY2hp
bGRWaWV3LmRldGFjaCgpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAg
dmlldyBjb3VudGVyOiAiICsgcGFyZW50Vmlldy5lbGVtZW50Ll9fdmlld0NvdW50ZXIpOworCisg
ICAgICAgICAgICBjaGlsZFZpZXcyLmRldGFjaCgpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5hZGRSZXN1bHQoIiAgdmlldyBjb3VudGVyOiAiICsgcGFyZW50Vmlldy5lbGVtZW50Ll9fdmll
d0NvdW50ZXIpOworCisgICAgICAgICAgICBuZXh0KCk7CisgICAgICAgIH0sCisKKyAgICAgICAg
ZnVuY3Rpb24gdGVzdFJlbW92ZUNoaWxkKG5leHQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHZh
ciBwYXJlbnRWaWV3ID0gbmV3IFRlc3RWaWV3KCJQYXJlbnQiKTsKKyAgICAgICAgICAgIHBhcmVu
dFZpZXcubWFya0FzUm9vdCgpOworICAgICAgICAgICAgdmFyIGNoaWxkVmlldyA9IG5ldyBUZXN0
VmlldygiQ2hpbGQiKTsKKyAgICAgICAgICAgIGNoaWxkVmlldy5zaG93KHBhcmVudFZpZXcuZWxl
bWVudCk7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHBhcmVudFZpZXcuZWxl
bWVudC5yZW1vdmVDaGlsZChjaGlsZFZpZXcuZWxlbWVudCk7CisgICAgICAgICAgICB9IGNhdGNo
IChlKSB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoZSk7CisgICAg
ICAgICAgICB9CisgICAgICAgICAgICBuZXh0KCk7CisgICAgICAgIH0sCisKKyAgICAgICAgZnVu
Y3Rpb24gdGVzdEltcGxpY2l0UmVtb3ZlQ2hpbGQobmV4dCkKKyAgICAgICAgeworICAgICAgICAg
ICAgdmFyIHBhcmVudFZpZXcgPSBuZXcgVGVzdFZpZXcoIlBhcmVudCIpOworICAgICAgICAgICAg
dmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgICAgICAgICAgcGFy
ZW50Vmlldy5lbGVtZW50LmFwcGVuZENoaWxkKGRpdik7CisKKyAgICAgICAgICAgIHZhciBjaGls
ZFZpZXcgPSBuZXcgVGVzdFZpZXcoIkNoaWxkIik7CisgICAgICAgICAgICBjaGlsZFZpZXcuc2hv
dyhkaXYpOworCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHBhcmVudFZpZXcu
ZWxlbWVudC5yZW1vdmVDaGlsZChkaXYpOworICAgICAgICAgICAgfSBjYXRjaCAoZSkgeworICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KGUpOworICAgICAgICAgICAgfQor
ICAgICAgICAgICAgbmV4dCgpOworICAgICAgICB9LAorCisgICAgICAgIGZ1bmN0aW9uIHRlc3RS
ZW1vdmVDaGlsZHJlbihuZXh0KQorICAgICAgICB7CisgICAgICAgICAgICB2YXIgcGFyZW50Vmll
dyA9IG5ldyBUZXN0VmlldygiUGFyZW50Iik7CisgICAgICAgICAgICB2YXIgY2hpbGRWaWV3ID0g
bmV3IFRlc3RWaWV3KCJDaGlsZCIpOworICAgICAgICAgICAgY2hpbGRWaWV3LnNob3cocGFyZW50
Vmlldy5lbGVtZW50KTsKKyAgICAgICAgICAgIHBhcmVudFZpZXcuZWxlbWVudC5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSk7CisgICAgICAgICAgICB0cnkgeworICAg
ICAgICAgICAgICAgIHBhcmVudFZpZXcuZWxlbWVudC5yZW1vdmVDaGlsZHJlbigpOworICAgICAg
ICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0KGUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbmV4dCgpOworICAgICAgICB9LAor
CisgICAgICAgIGZ1bmN0aW9uIHRlc3RJbXBsaWNpdFJlbW92ZUNoaWxkcmVuKG5leHQpCisgICAg
ICAgIHsKKyAgICAgICAgICAgIHZhciBwYXJlbnRWaWV3ID0gbmV3IFRlc3RWaWV3KCJQYXJlbnQi
KTsKKyAgICAgICAgICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsK
KyAgICAgICAgICAgIHBhcmVudFZpZXcuZWxlbWVudC5hcHBlbmRDaGlsZChkaXYpOworCisgICAg
ICAgICAgICB2YXIgY2hpbGRWaWV3ID0gbmV3IFRlc3RWaWV3KCJDaGlsZCIpOworICAgICAgICAg
ICAgY2hpbGRWaWV3LnNob3coZGl2KTsKKworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAg
ICAgICBwYXJlbnRWaWV3LmVsZW1lbnQucmVtb3ZlQ2hpbGRyZW4oKTsKKyAgICAgICAgICAgIH0g
Y2F0Y2ggKGUpIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChlKTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG5leHQoKTsKICAgICAgICAgfQotICAgIH0KLSAg
ICB2YXIgcGFyZW50VmlldyA9IG5ldyBUZXN0VmlldygiUGFyZW50VmlldyIpOwotICAgIHZhciBj
aGlsZFZpZXcgPSBuZXcgVGVzdFZpZXcoIkNoaWxkVmlldyIpOwotICAgIHZhciByb290ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4tcGFuZWxzIik7Ci0gICAgdHJhY2VFdmFsKFsKLSAg
ICAgICAgInBhcmVudFZpZXcuc2hvdyhyb290KSIsCi0gICAgICAgICJwYXJlbnRWaWV3LmRvUmVz
aXplKCkiLAotICAgICAgICAiY2hpbGRWaWV3LnNob3cocGFyZW50Vmlldy5lbGVtZW50KSIsCi0g
ICAgICAgICJwYXJlbnRWaWV3LmRvUmVzaXplKCkiLAotICAgICAgICAicGFyZW50Vmlldy5oaWRl
KCkiLAotICAgICAgICAicGFyZW50Vmlldy5zaG93KHJvb3QpIiwKLSAgICAgICAgImNoaWxkVmll
dy5oaWRlKCkiLAotICAgICAgICAicGFyZW50Vmlldy5oaWRlKCkiCiAgICAgXSk7Ci0gICAgY2hp
bGRWaWV3LmRldGFjaCgpOwotICAgIHBhcmVudFZpZXcuZGV0YWNoKCk7Ci0gICAgSW5zcGVjdG9y
VGVzdC5jb21wbGV0ZVRlc3QoKTsKIH0KIAogPC9zY3JpcHQ+Cg==
</data>
<flag name="review"
          id="109923"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>