<?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>95567</bug_id>
          
          <creation_ts>2012-08-31 07:01:44 -0700</creation_ts>
          <short_desc>Web Inspector: get rid of context execution id fallback.</short_desc>
          <delta_ts>2012-09-03 01:54:27 -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>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>709584</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-08-31 07:01:44 -0700</bug_when>
    <thetext>We now assign execution id upon UI population.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>709671</commentid>
    <comment_count>1</comment_count>
      <attachid>161709</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-08-31 08:52:33 -0700</bug_when>
    <thetext>Created attachment 161709
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710477</commentid>
    <comment_count>2</comment_count>
      <attachid>161709</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-09-03 01:28:11 -0700</bug_when>
    <thetext>Comment on attachment 161709
Patch

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

&gt; Source/WebCore/inspector/front-end/ConsoleView.js:47
&gt; +    this._contextSelector = new WebInspector.StatusBarComboBox(this._updateExecutionContextSelector.bind(this), &quot;console-context&quot;);

Let&apos;s rename _contextSelector to _frameSelector or _contextListSelector.

&gt; Source/WebCore/inspector/front-end/JavaScriptContextManager.js:103
&gt; +        var cpmtextList = this._frameIdToContextList[context.frameId];

cpmtextList ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710485</commentid>
    <comment_count>3</comment_count>
      <attachid>161879</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-09-03 01:40:25 -0700</bug_when>
    <thetext>Created attachment 161879
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710493</commentid>
    <comment_count>4</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-09-03 01:54:27 -0700</bug_when>
    <thetext>Committed r127412: &lt;http://trac.webkit.org/changeset/127412&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161709</attachid>
            <date>2012-08-31 08:52:33 -0700</date>
            <delta_ts>2012-09-03 01:40:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95567-20120831195220.patch</filename>
            <type>text/plain</type>
            <size>23189</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3MjQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzFlNGI5ZmVjOGFjYzc0
MTNhOTA2N2Q3ZDMzZGJjNGYyNmU5MDk4My4uN2E1N2Q1YTNlMzg4NTc2YWFlMjJhN2VkY2U1ZTgz
Nzg4MWRkMjJkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEyLTA4LTMxICBQYXZl
bCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IGdldCByaWQgb2YgY29udGV4dCBleGVjdXRpb24gaWQgZmFsbGJhY2suCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTU2NworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIG5vdyBhc3NpZ24gZXhlY3V0
aW9uIGNvbnRleHQgaWQgdXBvbiBjaGFuZ2VzIGluIHRoZSBVSS4KKworICAgICAgICAqIGluc3Bl
Y3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29u
c29sZVZpZXcucHJvdG90eXBlLmdldCBzdGF0dXNCYXJJdGVtcyk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBlLl9jb250ZXh0QWRkZWQpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZS5fYWRkQ29udGV4dExpc3QpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZS5fY29udGV4dExpc3RSZW1vdmVk
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUuX3VwZGF0ZUV4
ZWN1dGlvbkNvbnRleHRTZWxlY3Rvcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZVZp
ZXcucHJvdG90eXBlLl9hcHBlbmRFeGVjdXRpb25Db250ZXh0T3B0aW9uKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUuX2V4ZWN1dGlvbkNvbnRleHRDaGFuZ2Vk
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUuX2NvbnRleHRM
aXN0VXBkYXRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBl
Ll9hZGRlZEV4ZWN1dGlvbkNvbnRleHQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVW
aWV3LnByb3RvdHlwZS5ldmFsSW5JbnNwZWN0ZWRXaW5kb3cuZXZhbENhbGxiYWNrKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUuZXZhbEluSW5zcGVjdGVkV2lu
ZG93KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUuX2VudGVy
S2V5UHJlc3NlZCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9KYXZhU2NyaXB0Q29u
dGV4dE1hbmFnZXIuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdENvbnRleHRN
YW5hZ2VyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0Q29udGV4dE1hbmFnZXIu
cHJvdG90eXBlLmNvbnRleHRMaXN0cyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSmF2YVNjcmlw
dENvbnRleHRNYW5hZ2VyLnByb3RvdHlwZS5jb250ZXh0QnlGcmFtZUFuZFNlY3VyaXR5T3JpZ2lu
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0Q29udGV4dE1hbmFnZXIucHJvdG90
eXBlLl9mcmFtZUFkZGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0Q29udGV4
dE1hbmFnZXIucHJvdG90eXBlLl9mcmFtZU5hdmlnYXRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuSmF2YVNjcmlwdENvbnRleHRNYW5hZ2VyLnByb3RvdHlwZS5fZnJhbWVEZXRhY2hlZCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdENvbnRleHRNYW5hZ2VyLnByb3RvdHlwZS5p
c29sYXRlZENvbnRleHRDcmVhdGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GcmFtZUV4ZWN1
dGlvbkNvbnRleHRMaXN0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GcmFtZUV4ZWN1dGlvbkNv
bnRleHRMaXN0LnByb3RvdHlwZS5fZnJhbWVOYXZpZ2F0ZWQpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkZyYW1lRXhlY3V0aW9uQ29udGV4dExpc3QucHJvdG90eXBlLl9hZGRFeGVjdXRpb25Db250
ZXh0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GcmFtZUV4ZWN1dGlvbkNvbnRleHRMaXN0LnBy
b3RvdHlwZS5leGVjdXRpb25Db250ZXh0cyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRnJhbWVF
eGVjdXRpb25Db250ZXh0TGlzdC5wcm90b3R5cGUuY29udGV4dEJ5U2VjdXJpdHlPcmlnaW4pOgor
CiAyMDEyLTA4LTMxICBUaGlhZ28gTWFyY29zIFAuIFNhbnRvcyAgPHRoaWFnby5zYW50b3NAaW50
ZWwuY29tPgogCiAgICAgICAgIFtDTWFrZV0gQ2hhbmdlcyBvbiB0aGUgYmluZGluZ3MgZ2VuZXJh
dG9yIGRvZXMgbm90IHRyaWdnZXIgZ2VuZXJhdGlvbiBvZiB0aGUgYmluZGluZ3MKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanMgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzCmluZGV4IDRh
OGQ3MmMzMWNiOGNhYjVjNDc3NmM2YzNlMTlhNDE4NDBiZTI4M2IuLjNmY2Y5M2I4ZTYxM2M2ZTMz
YjEwNjk0YjVlYjViNjg4M2ZiYjdmMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5qcwpAQCAtNDQsMTIgKzQ0LDEyIEBAIFdlYkluc3Bl
Y3Rvci5Db25zb2xlVmlldyA9IGZ1bmN0aW9uKGhpZGVDb250ZXh0U2VsZWN0b3IpCiAgICAgdGhp
cy5fY2xlYXJDb25zb2xlQnV0dG9uID0gbmV3IFdlYkluc3BlY3Rvci5TdGF0dXNCYXJCdXR0b24o
V2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDbGVhciBjb25zb2xlIGxvZy4iKSwgImNsZWFyLXN0YXR1
cy1iYXItaXRlbSIpOwogICAgIHRoaXMuX2NsZWFyQ29uc29sZUJ1dHRvbi5hZGRFdmVudExpc3Rl
bmVyKCJjbGljayIsIHRoaXMuX3JlcXVlc3RDbGVhck1lc3NhZ2VzLCB0aGlzKTsKIAotICAgIHRo
aXMuX2NvbnRleHRTZWxlY3RvciA9IG5ldyBXZWJJbnNwZWN0b3IuU3RhdHVzQmFyQ29tYm9Cb3go
dGhpcy5fdXBkYXRlSXNvbGF0ZWRXb3JsZFNlbGVjdG9yLmJpbmQodGhpcyksICJjb25zb2xlLWNv
bnRleHQiKTsKLSAgICB0aGlzLl9pc29sYXRlZFdvcmxkU2VsZWN0b3IgPSBuZXcgV2ViSW5zcGVj
dG9yLlN0YXR1c0JhckNvbWJvQm94KG51bGwsICJjb25zb2xlLWNvbnRleHQiKTsKKyAgICB0aGlz
Ll9jb250ZXh0U2VsZWN0b3IgPSBuZXcgV2ViSW5zcGVjdG9yLlN0YXR1c0JhckNvbWJvQm94KHRo
aXMuX3VwZGF0ZUV4ZWN1dGlvbkNvbnRleHRTZWxlY3Rvci5iaW5kKHRoaXMpLCAiY29uc29sZS1j
b250ZXh0Iik7CisgICAgdGhpcy5fZXhlY3V0aW9uQ29udGV4dFNlbGVjdG9yID0gbmV3IFdlYklu
c3BlY3Rvci5TdGF0dXNCYXJDb21ib0JveCh0aGlzLl9leGVjdXRpb25Db250ZXh0Q2hhbmdlZC5i
aW5kKHRoaXMpLCAiY29uc29sZS1jb250ZXh0Iik7CiAKICAgICBpZiAoaGlkZUNvbnRleHRTZWxl
Y3RvcikgewogICAgICAgICB0aGlzLl9jb250ZXh0U2VsZWN0b3IuZWxlbWVudC5hZGRTdHlsZUNs
YXNzKCJoaWRkZW4iKTsKLSAgICAgICAgdGhpcy5faXNvbGF0ZWRXb3JsZFNlbGVjdG9yLmVsZW1l
bnQuYWRkU3R5bGVDbGFzcygiaGlkZGVuIik7CisgICAgICAgIHRoaXMuX2V4ZWN1dGlvbkNvbnRl
eHRTZWxlY3Rvci5lbGVtZW50LmFkZFN0eWxlQ2xhc3MoImhpZGRlbiIpOwogICAgIH0KIAogICAg
IHRoaXMubWVzc2FnZXNFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CkBA
IC0xMTgsOSArMTE4LDkgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3ID0gZnVuY3Rpb24oaGlk
ZUNvbnRleHRTZWxlY3RvcikKICAgICB0aGlzLnByb21wdC5wcm94eUVsZW1lbnQuYWRkRXZlbnRM
aXN0ZW5lcigia2V5ZG93biIsIHRoaXMuX3Byb21wdEtleURvd24uYmluZCh0aGlzKSwgZmFsc2Up
OwogICAgIHRoaXMucHJvbXB0LnNldEhpc3RvcnlEYXRhKFdlYkluc3BlY3Rvci5zZXR0aW5ncy5j
b25zb2xlSGlzdG9yeS5nZXQoKSk7CiAKLSAgICBXZWJJbnNwZWN0b3IuamF2YVNjcmlwdENvbnRl
eHRNYW5hZ2VyLmNvbnRleHRzKCkuZm9yRWFjaCh0aGlzLl9hZGRDb250ZXh0LCB0aGlzKTsKLSAg
ICBXZWJJbnNwZWN0b3IuamF2YVNjcmlwdENvbnRleHRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIo
V2ViSW5zcGVjdG9yLkphdmFTY3JpcHRDb250ZXh0TWFuYWdlci5FdmVudHMuRnJhbWVDb250ZXh0
QWRkZWQsIHRoaXMuX2NvbnRleHRBZGRlZCwgdGhpcyk7Ci0gICAgV2ViSW5zcGVjdG9yLmphdmFT
Y3JpcHRDb250ZXh0TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5KYXZhU2Ny
aXB0Q29udGV4dE1hbmFnZXIuRXZlbnRzLkZyYW1lQ29udGV4dFJlbW92ZWQsIHRoaXMuX2NvbnRl
eHRSZW1vdmVkLCB0aGlzKTsKKyAgICBXZWJJbnNwZWN0b3IuamF2YVNjcmlwdENvbnRleHRNYW5h
Z2VyLmNvbnRleHRMaXN0cygpLmZvckVhY2godGhpcy5fYWRkQ29udGV4dExpc3QsIHRoaXMpOwor
ICAgIFdlYkluc3BlY3Rvci5qYXZhU2NyaXB0Q29udGV4dE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5l
cihXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdENvbnRleHRNYW5hZ2VyLkV2ZW50cy5GcmFtZUV4ZWN1
dGlvbkNvbnRleHRMaXN0QWRkZWQsIHRoaXMuX2NvbnRleHRBZGRlZCwgdGhpcyk7CisgICAgV2Vi
SW5zcGVjdG9yLmphdmFTY3JpcHRDb250ZXh0TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYklu
c3BlY3Rvci5KYXZhU2NyaXB0Q29udGV4dE1hbmFnZXIuRXZlbnRzLkZyYW1lRXhlY3V0aW9uQ29u
dGV4dExpc3RSZW1vdmVkLCB0aGlzLl9jb250ZXh0TGlzdFJlbW92ZWQsIHRoaXMpOwogfQogCiBX
ZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcuRXZlbnRzID0gewpAQCAtMTMxLDcgKzEzMSw3IEBAIFdl
Ykluc3BlY3Rvci5Db25zb2xlVmlldy5FdmVudHMgPSB7CiBXZWJJbnNwZWN0b3IuQ29uc29sZVZp
ZXcucHJvdG90eXBlID0gewogICAgIGdldCBzdGF0dXNCYXJJdGVtcygpCiAgICAgewotICAgICAg
ICByZXR1cm4gW3RoaXMuX2NsZWFyQ29uc29sZUJ1dHRvbi5lbGVtZW50LCB0aGlzLl9jb250ZXh0
U2VsZWN0b3IuZWxlbWVudCwgdGhpcy5faXNvbGF0ZWRXb3JsZFNlbGVjdG9yLmVsZW1lbnQsIHRo
aXMuX2ZpbHRlckJhckVsZW1lbnRdOworICAgICAgICByZXR1cm4gW3RoaXMuX2NsZWFyQ29uc29s
ZUJ1dHRvbi5lbGVtZW50LCB0aGlzLl9jb250ZXh0U2VsZWN0b3IuZWxlbWVudCwgdGhpcy5fZXhl
Y3V0aW9uQ29udGV4dFNlbGVjdG9yLmVsZW1lbnQsIHRoaXMuX2ZpbHRlckJhckVsZW1lbnRdOwog
ICAgIH0sCiAKICAgICAvKioKQEAgLTEzOSwxMDkgKzEzOSwxMTAgQEAgV2ViSW5zcGVjdG9yLkNv
bnNvbGVWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAgICBfY29udGV4dEFkZGVkOiBmdW5j
dGlvbihldmVudCkKICAgICB7Ci0gICAgICAgIHZhciBjb250ZXh0ID0gLyoqIEB0eXBlIHtXZWJJ
bnNwZWN0b3IuRnJhbWVFdmFsdWF0aW9uQ29udGV4dH0gKi8gZXZlbnQuZGF0YTsKLSAgICAgICAg
dGhpcy5fYWRkQ29udGV4dChjb250ZXh0KTsKKyAgICAgICAgdmFyIGNvbnRleHRMaXN0ID0gLyoq
IEB0eXBlIHtXZWJJbnNwZWN0b3IuRnJhbWVFeGVjdXRpb25Db250ZXh0TGlzdH0gKi8gZXZlbnQu
ZGF0YTsKKyAgICAgICAgdGhpcy5fYWRkQ29udGV4dExpc3QoY29udGV4dExpc3QpOwogICAgIH0s
CiAKICAgICAvKioKLSAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5GcmFtZUV2YWx1YXRpb25D
b250ZXh0fSBjb250ZXh0CisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuRnJhbWVFeGVjdXRp
b25Db250ZXh0TGlzdH0gY29udGV4dExpc3QKICAgICAgKi8KLSAgICBfYWRkQ29udGV4dDogZnVu
Y3Rpb24oY29udGV4dCkKKyAgICBfYWRkQ29udGV4dExpc3Q6IGZ1bmN0aW9uKGNvbnRleHRMaXN0
KQogICAgIHsKICAgICAgICAgdmFyIG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm9w
dGlvbiIpOwotICAgICAgICBvcHRpb24udGV4dCA9IGNvbnRleHQuZGlzcGxheU5hbWU7Ci0gICAg
ICAgIG9wdGlvbi50aXRsZSA9IGNvbnRleHQudXJsOwotICAgICAgICBvcHRpb24uX2NvbnRleHQg
PSBjb250ZXh0OwotICAgICAgICBjb250ZXh0Ll9jb25zb2xlT3B0aW9uID0gb3B0aW9uOworICAg
ICAgICBvcHRpb24udGV4dCA9IGNvbnRleHRMaXN0LmRpc3BsYXlOYW1lOworICAgICAgICBvcHRp
b24udGl0bGUgPSBjb250ZXh0TGlzdC51cmw7CisgICAgICAgIG9wdGlvbi5fY29udGV4dExpc3Qg
PSBjb250ZXh0TGlzdDsKKyAgICAgICAgY29udGV4dExpc3QuX2NvbnNvbGVPcHRpb24gPSBvcHRp
b247CiAgICAgICAgIHRoaXMuX2NvbnRleHRTZWxlY3Rvci5hZGRPcHRpb24ob3B0aW9uKTsKLSAg
ICAgICAgY29udGV4dC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5GcmFtZUV2YWx1YXRp
b25Db250ZXh0LkV2ZW50VHlwZXMuVXBkYXRlZCwgdGhpcy5fY29udGV4dFVwZGF0ZWQsIHRoaXMp
OwotICAgICAgICBjb250ZXh0LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkZyYW1lRXZh
bHVhdGlvbkNvbnRleHQuRXZlbnRUeXBlcy5BZGRlZEV4ZWN1dGlvbkNvbnRleHQsIHRoaXMuX2Fk
ZGVkRXhlY3V0aW9uQ29udGV4dCwgdGhpcyk7Ci0gICAgICAgIHRoaXMuX3VwZGF0ZUlzb2xhdGVk
V29ybGRTZWxlY3RvcigpOworICAgICAgICBjb250ZXh0TGlzdC5hZGRFdmVudExpc3RlbmVyKFdl
Ykluc3BlY3Rvci5GcmFtZUV4ZWN1dGlvbkNvbnRleHRMaXN0LkV2ZW50VHlwZXMuQ29udGV4dHNV
cGRhdGVkLCB0aGlzLl9jb250ZXh0TGlzdFVwZGF0ZWQsIHRoaXMpOworICAgICAgICBjb250ZXh0
TGlzdC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5GcmFtZUV4ZWN1dGlvbkNvbnRleHRM
aXN0LkV2ZW50VHlwZXMuQ29udGV4dEFkZGVkLCB0aGlzLl9hZGRlZEV4ZWN1dGlvbkNvbnRleHQs
IHRoaXMpOworICAgICAgICB0aGlzLl91cGRhdGVFeGVjdXRpb25Db250ZXh0U2VsZWN0b3IoKTsK
ICAgICB9LAogCiAgICAgLyoqCiAgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuRXZlbnR9IGV2
ZW50CiAgICAgICovCi0gICAgX2NvbnRleHRSZW1vdmVkOiBmdW5jdGlvbihldmVudCkKKyAgICBf
Y29udGV4dExpc3RSZW1vdmVkOiBmdW5jdGlvbihldmVudCkKICAgICB7Ci0gICAgICAgIHZhciBj
b250ZXh0ID0gLyoqIEB0eXBlIHtXZWJJbnNwZWN0b3IuRnJhbWVFdmFsdWF0aW9uQ29udGV4dH0g
Ki8gZXZlbnQuZGF0YTsKLSAgICAgICAgdGhpcy5fY29udGV4dFNlbGVjdG9yLnJlbW92ZU9wdGlv
bihjb250ZXh0Ll9jb25zb2xlT3B0aW9uKTsKLSAgICAgICAgdGhpcy5fdXBkYXRlSXNvbGF0ZWRX
b3JsZFNlbGVjdG9yKCk7CisgICAgICAgIHZhciBjb250ZXh0TGlzdCA9IC8qKiBAdHlwZSB7V2Vi
SW5zcGVjdG9yLkZyYW1lRXhlY3V0aW9uQ29udGV4dExpc3R9ICovIGV2ZW50LmRhdGE7CisgICAg
ICAgIHRoaXMuX2NvbnRleHRTZWxlY3Rvci5yZW1vdmVPcHRpb24oY29udGV4dExpc3QuX2NvbnNv
bGVPcHRpb24pOworICAgICAgICB0aGlzLl91cGRhdGVFeGVjdXRpb25Db250ZXh0U2VsZWN0b3Io
KTsKICAgICB9LAogCi0gICAgX3VwZGF0ZUlzb2xhdGVkV29ybGRTZWxlY3RvcjogZnVuY3Rpb24o
KQorICAgIF91cGRhdGVFeGVjdXRpb25Db250ZXh0U2VsZWN0b3I6IGZ1bmN0aW9uKCkKICAgICB7
Ci0gICAgICAgIHZhciBjb250ZXh0ID0gdGhpcy5fY3VycmVudEV2YWx1YXRpb25Db250ZXh0KCk7
CisgICAgICAgIHZhciBjb250ZXh0ID0gdGhpcy5fY3VycmVudENvbnRleHRMaXN0KCk7CiAgICAg
ICAgIGlmICghY29udGV4dCkgewotICAgICAgICAgICAgdGhpcy5faXNvbGF0ZWRXb3JsZFNlbGVj
dG9yLmVsZW1lbnQuYWRkU3R5bGVDbGFzcygiaGlkZGVuIik7CisgICAgICAgICAgICBkZWxldGUg
dGhpcy5fY3VycmVudEV4ZWN1dGlvbkNvbnRleHQ7CisgICAgICAgICAgICB0aGlzLl9leGVjdXRp
b25Db250ZXh0U2VsZWN0b3IuZWxlbWVudC5hZGRTdHlsZUNsYXNzKCJoaWRkZW4iKTsKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIHZhciBpc29sYXRlZENvbnRleHRz
ID0gY29udGV4dC5pc29sYXRlZENvbnRleHRzKCk7Ci0gICAgICAgIGlmICghaXNvbGF0ZWRDb250
ZXh0cy5sZW5ndGgpIHsKLSAgICAgICAgICAgIHRoaXMuX2lzb2xhdGVkV29ybGRTZWxlY3Rvci5l
bGVtZW50LmFkZFN0eWxlQ2xhc3MoImhpZGRlbiIpOworICAgICAgICB2YXIgZXhlY3V0aW9uQ29u
dGV4dHMgPSBjb250ZXh0LmV4ZWN1dGlvbkNvbnRleHRzKCk7CisgICAgICAgIGlmIChleGVjdXRp
b25Db250ZXh0cy5sZW5ndGgpCisgICAgICAgICAgICB0aGlzLl9jdXJyZW50RXhlY3V0aW9uQ29u
dGV4dCA9IGV4ZWN1dGlvbkNvbnRleHRzWzBdOworCisgICAgICAgIGlmIChleGVjdXRpb25Db250
ZXh0cy5sZW5ndGggPT09IDEpIHsKKyAgICAgICAgICAgIHRoaXMuX2V4ZWN1dGlvbkNvbnRleHRT
ZWxlY3Rvci5lbGVtZW50LmFkZFN0eWxlQ2xhc3MoImhpZGRlbiIpOwogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9Ci0gICAgICAgIHRoaXMuX2lzb2xhdGVkV29ybGRTZWxlY3Rvci5lbGVt
ZW50LnJlbW92ZVN0eWxlQ2xhc3MoImhpZGRlbiIpOwotICAgICAgICB0aGlzLl9pc29sYXRlZFdv
cmxkU2VsZWN0b3IucmVtb3ZlT3B0aW9ucygpOwotICAgICAgICB0aGlzLl9hcHBlbmRJc29sYXRl
ZENvbnRleHRPcHRpb24oY29udGV4dC5tYWluV29ybGRDb250ZXh0KCkpOwotICAgICAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IGlzb2xhdGVkQ29udGV4dHMubGVuZ3RoOyBpKyspCi0gICAgICAgICAg
ICB0aGlzLl9hcHBlbmRJc29sYXRlZENvbnRleHRPcHRpb24oaXNvbGF0ZWRDb250ZXh0c1tpXSk7
CisgICAgICAgIHRoaXMuX2V4ZWN1dGlvbkNvbnRleHRTZWxlY3Rvci5lbGVtZW50LnJlbW92ZVN0
eWxlQ2xhc3MoImhpZGRlbiIpOworICAgICAgICB0aGlzLl9leGVjdXRpb25Db250ZXh0U2VsZWN0
b3IucmVtb3ZlT3B0aW9ucygpOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGV4ZWN1dGlv
bkNvbnRleHRzLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgdGhpcy5fYXBwZW5kRXhlY3V0aW9u
Q29udGV4dE9wdGlvbihleGVjdXRpb25Db250ZXh0c1tpXSk7CiAgICAgfSwKIAotICAgIF9hcHBl
bmRJc29sYXRlZENvbnRleHRPcHRpb246IGZ1bmN0aW9uKGlzb2xhdGVkQ29udGV4dCkKKyAgICAv
KioKKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5FeGVjdXRpb25Db250ZXh0fSBleGVjdXRp
b25Db250ZXh0CisgICAgICovCisgICAgX2FwcGVuZEV4ZWN1dGlvbkNvbnRleHRPcHRpb246IGZ1
bmN0aW9uKGV4ZWN1dGlvbkNvbnRleHQpCiAgICAgewotICAgICAgICBpZiAoIWlzb2xhdGVkQ29u
dGV4dCkKLSAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgaWYgKCF0aGlzLl9jdXJyZW50RXhl
Y3V0aW9uQ29udGV4dCkKKyAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRFeGVjdXRpb25Db250ZXh0
ID0gZXhlY3V0aW9uQ29udGV4dDsKICAgICAgICAgdmFyIG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoIm9wdGlvbiIpOwotICAgICAgICBvcHRpb24udGV4dCA9IGlzb2xhdGVkQ29udGV4
dC5uYW1lOwotICAgICAgICBvcHRpb24udGl0bGUgPSBpc29sYXRlZENvbnRleHQuaWQ7Ci0gICAg
ICAgIG9wdGlvbi5fZXhlY3V0aW9uQ29udGV4dElkID0gaXNvbGF0ZWRDb250ZXh0LmlkOwotICAg
ICAgICB0aGlzLl9pc29sYXRlZFdvcmxkU2VsZWN0b3IuYWRkT3B0aW9uKG9wdGlvbik7CisgICAg
ICAgIG9wdGlvbi50ZXh0ID0gZXhlY3V0aW9uQ29udGV4dC5uYW1lOworICAgICAgICBvcHRpb24u
dGl0bGUgPSBleGVjdXRpb25Db250ZXh0LmlkOworICAgICAgICBvcHRpb24uX2V4ZWN1dGlvbkNv
bnRleHQgPSBleGVjdXRpb25Db250ZXh0OworICAgICAgICB0aGlzLl9leGVjdXRpb25Db250ZXh0
U2VsZWN0b3IuYWRkT3B0aW9uKG9wdGlvbik7CiAgICAgfSwKIAotICAgIF9jb250ZXh0VXBkYXRl
ZDogZnVuY3Rpb24oZXZlbnQpCisgICAgLyoqCisgICAgICogQHBhcmFtIHtFdmVudH0gZXZlbnQK
KyAgICAgKi8KKyAgICBfZXhlY3V0aW9uQ29udGV4dENoYW5nZWQ6IGZ1bmN0aW9uKGV2ZW50KQog
ICAgIHsKLSAgICAgICAgdmFyIGNvbnRleHQgPSBldmVudC5kYXRhOwotICAgICAgICB2YXIgb3B0
aW9uID0gY29udGV4dC5fY29uc29sZU9wdGlvbjsKLSAgICAgICAgb3B0aW9uLnRleHQgPSBjb250
ZXh0LmRpc3BsYXlOYW1lOwotICAgICAgICBvcHRpb24udGl0bGUgPSBjb250ZXh0LnVybDsKKyAg
ICAgICAgdmFyIG9wdGlvbiA9IHRoaXMuX2V4ZWN1dGlvbkNvbnRleHRTZWxlY3Rvci5zZWxlY3Rl
ZE9wdGlvbigpOworICAgICAgICB0aGlzLl9jdXJyZW50RXhlY3V0aW9uQ29udGV4dCA9IG9wdGlv
biA/IG9wdGlvbi5fZXhlY3V0aW9uQ29udGV4dCA6IHVuZGVmaW5lZDsKICAgICB9LAogCi0gICAg
X2FkZGVkRXhlY3V0aW9uQ29udGV4dDogZnVuY3Rpb24oZXZlbnQpCisgICAgLyoqCisgICAgICog
QHBhcmFtIHtXZWJJbnNwZWN0b3IuRXZlbnR9IGV2ZW50CisgICAgICovCisgICAgX2NvbnRleHRM
aXN0VXBkYXRlZDogZnVuY3Rpb24oZXZlbnQpCiAgICAgewotICAgICAgICB2YXIgY29udGV4dCA9
IGV2ZW50LmRhdGE7Ci0gICAgICAgIGlmIChjb250ZXh0ID09PSB0aGlzLl9jdXJyZW50RXZhbHVh
dGlvbkNvbnRleHQoKSkKLSAgICAgICAgICAgIHRoaXMuX3VwZGF0ZUlzb2xhdGVkV29ybGRTZWxl
Y3RvcigpOworICAgICAgICB2YXIgY29udGV4dExpc3QgPSAvKioge1dlYkluc3BlY3Rvci5GcmFt
ZUV4ZWN1dGlvbkNvbnRleHRMaXN0ICovIGV2ZW50LmRhdGE7CisgICAgICAgIHZhciBvcHRpb24g
PSBjb250ZXh0TGlzdC5fY29uc29sZU9wdGlvbjsKKyAgICAgICAgb3B0aW9uLnRleHQgPSBjb250
ZXh0TGlzdC5kaXNwbGF5TmFtZTsKKyAgICAgICAgb3B0aW9uLnRpdGxlID0gY29udGV4dExpc3Qu
dXJsOwogICAgIH0sCiAKLSAgICBfY3VycmVudEV2YWx1YXRpb25Db250ZXh0SWQ6IGZ1bmN0aW9u
KCkKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5FdmVudH0gZXZlbnQKKyAg
ICAgKi8KKyAgICBfYWRkZWRFeGVjdXRpb25Db250ZXh0OiBmdW5jdGlvbihldmVudCkKICAgICB7
Ci0gICAgICAgIHZhciByZXN1bHQgPSB0aGlzLl9jdXJyZW50SXNvbGF0ZWRDb250ZXh0SWQoKTsK
LSAgICAgICAgaWYgKHJlc3VsdCAhPT0gdW5kZWZpbmVkKQotICAgICAgICAgICAgcmV0dXJuIHJl
c3VsdDsKLSAgICAgICAgdmFyIGNvbnRleHQgPSB0aGlzLl9jdXJyZW50RXZhbHVhdGlvbkNvbnRl
eHQoKTsKLSAgICAgICAgaWYgKGNvbnRleHQgJiYgY29udGV4dC5tYWluV29ybGRDb250ZXh0KCkp
Ci0gICAgICAgICAgICByZXR1cm4gY29udGV4dC5tYWluV29ybGRDb250ZXh0KCkuaWQ7Ci0gICAg
ICAgIHJldHVybiB1bmRlZmluZWQ7CisgICAgICAgIHZhciBjb250ZXh0TGlzdCA9IC8qKiB7V2Vi
SW5zcGVjdG9yLkZyYW1lRXhlY3V0aW9uQ29udGV4dExpc3QgKi8gZXZlbnQuZGF0YTsKKyAgICAg
ICAgaWYgKGNvbnRleHRMaXN0ID09PSB0aGlzLl9jdXJyZW50Q29udGV4dExpc3QoKSkKKyAgICAg
ICAgICAgIHRoaXMuX3VwZGF0ZUV4ZWN1dGlvbkNvbnRleHRTZWxlY3RvcigpOwogICAgIH0sCiAK
LSAgICBfY3VycmVudEV2YWx1YXRpb25Db250ZXh0OiBmdW5jdGlvbigpCisgICAgLyoqCisgICAg
ICogQHJldHVybiB7V2ViSW5zcGVjdG9yLkZyYW1lRXhlY3V0aW9uQ29udGV4dExpc3R8dW5kZWZp
bmVkfQorICAgICAqLworICAgIF9jdXJyZW50Q29udGV4dExpc3Q6IGZ1bmN0aW9uKCkKICAgICB7
CiAgICAgICAgIHZhciBvcHRpb24gPSB0aGlzLl9jb250ZXh0U2VsZWN0b3Iuc2VsZWN0ZWRPcHRp
b24oKTsKLSAgICAgICAgaWYgKCFvcHRpb24pCi0gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVk
OwotICAgICAgICByZXR1cm4gb3B0aW9uLl9jb250ZXh0OwotICAgIH0sCi0KLSAgICBfY3VycmVu
dElzb2xhdGVkQ29udGV4dElkOiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICBpZiAodGhpcy5f
aXNvbGF0ZWRXb3JsZFNlbGVjdG9yLmVsZW1lbnQuaGFzU3R5bGVDbGFzcygiaGlkZGVuIikpCi0g
ICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkOwotICAgICAgICB2YXIgb3B0aW9uID0gdGhpcy5f
aXNvbGF0ZWRXb3JsZFNlbGVjdG9yLnNlbGVjdGVkT3B0aW9uKCk7Ci0gICAgICAgIGlmICghb3B0
aW9uKQotICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKLSAgICAgICAgcmV0dXJuIG9wdGlv
bi5fZXhlY3V0aW9uQ29udGV4dElkOworICAgICAgICByZXR1cm4gb3B0aW9uID8gb3B0aW9uLl9j
b250ZXh0TGlzdCA6IHVuZGVmaW5lZDsKICAgICB9LAogCiAgICAgX3VwZGF0ZUZpbHRlcjogZnVu
Y3Rpb24oZSkKQEAgLTcwNiw4ICs3MDcsNyBAQCBXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJv
dG90eXBlID0gewogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIGNhbGxiYWNrKFdl
Ykluc3BlY3Rvci5SZW1vdGVPYmplY3QuZnJvbVBheWxvYWQocmVzdWx0KSwgISF3YXNUaHJvd24p
OwogICAgICAgICB9Ci0gICAgICAgIHZhciBjb250ZXh0SWQgPSB0aGlzLl9jdXJyZW50RXZhbHVh
dGlvbkNvbnRleHRJZCgpOwotICAgICAgICBSdW50aW1lQWdlbnQuZXZhbHVhdGUoZXhwcmVzc2lv
biwgb2JqZWN0R3JvdXAsIGluY2x1ZGVDb21tYW5kTGluZUFQSSwgZG9Ob3RQYXVzZU9uRXhjZXB0
aW9uc0FuZE11dGVDb25zb2xlLCBjb250ZXh0SWQsIHJldHVybkJ5VmFsdWUsIGV2YWxDYWxsYmFj
ayk7CisgICAgICAgIFJ1bnRpbWVBZ2VudC5ldmFsdWF0ZShleHByZXNzaW9uLCBvYmplY3RHcm91
cCwgaW5jbHVkZUNvbW1hbmRMaW5lQVBJLCBkb05vdFBhdXNlT25FeGNlcHRpb25zQW5kTXV0ZUNv
bnNvbGUsIHRoaXMuX2N1cnJlbnRFeGVjdXRpb25Db250ZXh0ID8gdGhpcy5fY3VycmVudEV4ZWN1
dGlvbkNvbnRleHQuaWQgOiB1bmRlZmluZWQsIHJldHVybkJ5VmFsdWUsIGV2YWxDYWxsYmFjayk7
CiAgICAgfSwKIAogICAgIGV2YWx1YXRlVXNpbmdUZXh0UHJvbXB0OiBmdW5jdGlvbihleHByZXNz
aW9uLCBzaG93UmVzdWx0T25seSkKQEAgLTczMiw4ICs3MzIsNyBAQCBXZWJJbnNwZWN0b3IuQ29u
c29sZVZpZXcucHJvdG90eXBlID0gewogCiAgICAgcnVuU2NyaXB0OiBmdW5jdGlvbihzY3JpcHRJ
ZCkKICAgICB7Ci0gICAgICAgIHZhciBjb250ZXh0SWQgPSBXZWJJbnNwZWN0b3IuY29uc29sZVZp
ZXcuX2N1cnJlbnRFdmFsdWF0aW9uQ29udGV4dElkKCk7Ci0gICAgICAgIERlYnVnZ2VyQWdlbnQu
cnVuU2NyaXB0KHNjcmlwdElkLCBjb250ZXh0SWQsICJjb25zb2xlIiwgZmFsc2UsIHJ1bkNhbGxi
YWNrLmJpbmQodGhpcykpOworICAgICAgICBEZWJ1Z2dlckFnZW50LnJ1blNjcmlwdChzY3JpcHRJ
ZCwgdGhpcy5fY3VycmVudEV4ZWN1dGlvbkNvbnRleHQgPyB0aGlzLl9jdXJyZW50RXhlY3V0aW9u
Q29udGV4dC5pZCA6IHVuZGVmaW5lZCwgImNvbnNvbGUiLCBmYWxzZSwgcnVuQ2FsbGJhY2suYmlu
ZCh0aGlzKSk7CiAgICAgICAgIFdlYkluc3BlY3Rvci51c2VyTWV0cmljcy5Db25zb2xlRXZhbHVh
dGVkLnJlY29yZCgpOwogCiAgICAgICAgIC8qKgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9KYXZhU2NyaXB0Q29udGV4dE1hbmFnZXIuanMgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0phdmFTY3JpcHRDb250ZXh0TWFuYWdlci5qcwpp
bmRleCA4ZWFmM2JkNDVlMDIwZTFmZDQ0ZjgwNzNhYzM2NmMwNDJmZmU4NzRjLi41ZGE4NWYxODlj
ZmNhZDZmYmJmOTZhNmM1MjY2NzM3YzY1ZTQzMDViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0phdmFTY3JpcHRDb250ZXh0TWFuYWdlci5qcworKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0phdmFTY3JpcHRDb250ZXh0TWFuYWdl
ci5qcwpAQCAtMzksMjEgKzM5LDIxIEBAIFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0Q29udGV4dE1h
bmFnZXIgPSBmdW5jdGlvbihyZXNvdXJjZVRyZWVNb2RlbCkKICAgICByZXNvdXJjZVRyZWVNb2Rl
bC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5FdmVudFR5
cGVzLkZyYW1lTmF2aWdhdGVkLCB0aGlzLl9mcmFtZU5hdmlnYXRlZCwgdGhpcyk7CiAgICAgcmVz
b3VyY2VUcmVlTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVl
TW9kZWwuRXZlbnRUeXBlcy5GcmFtZURldGFjaGVkLCB0aGlzLl9mcmFtZURldGFjaGVkLCB0aGlz
KTsKICAgICByZXNvdXJjZVRyZWVNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5S
ZXNvdXJjZVRyZWVNb2RlbC5FdmVudFR5cGVzLkNhY2hlZFJlc291cmNlc0xvYWRlZCwgdGhpcy5f
ZGlkTG9hZENhY2hlZFJlc291cmNlcywgdGhpcyk7Ci0gICAgdGhpcy5fZnJhbWVJZFRvQ29udGV4
dCA9IHt9OworICAgIHRoaXMuX2ZyYW1lSWRUb0NvbnRleHRMaXN0ID0ge307CiB9CiAKIFdlYklu
c3BlY3Rvci5KYXZhU2NyaXB0Q29udGV4dE1hbmFnZXIuRXZlbnRzID0gewotICAgIEZyYW1lQ29u
dGV4dEFkZGVkOiAiRnJhbWVDb250ZXh0QWRkZWQiLAotICAgIEZyYW1lQ29udGV4dFJlbW92ZWQ6
ICJGcmFtZUNvbnRleHRSZW1vdmVkIiwKKyAgICBGcmFtZUV4ZWN1dGlvbkNvbnRleHRMaXN0QWRk
ZWQ6ICJGcmFtZUV4ZWN1dGlvbkNvbnRleHRMaXN0QWRkZWQiLAorICAgIEZyYW1lRXhlY3V0aW9u
Q29udGV4dExpc3RSZW1vdmVkOiAiRnJhbWVFeGVjdXRpb25Db250ZXh0TGlzdFJlbW92ZWQiLAog
fQogCiBXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdENvbnRleHRNYW5hZ2VyLnByb3RvdHlwZSA9IHsK
ICAgICAvKioKLSAgICAgKiBAcmV0dXJuIHtBcnJheS48V2ViSW5zcGVjdG9yLkZyYW1lRXZhbHVh
dGlvbkNvbnRleHQ+fQorICAgICAqIEByZXR1cm4ge0FycmF5LjxXZWJJbnNwZWN0b3IuRnJhbWVF
eGVjdXRpb25Db250ZXh0TGlzdD59CiAgICAgICovCi0gICAgY29udGV4dHM6IGZ1bmN0aW9uKCkK
KyAgICBjb250ZXh0TGlzdHM6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBPYmpl
Y3QudmFsdWVzKHRoaXMuX2ZyYW1lSWRUb0NvbnRleHQpOworICAgICAgICByZXR1cm4gT2JqZWN0
LnZhbHVlcyh0aGlzLl9mcmFtZUlkVG9Db250ZXh0TGlzdCk7CiAgICAgfSwKIAogICAgIC8qKgpA
QCAtNjIsMjIgKzYyLDIyIEBAIFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0Q29udGV4dE1hbmFnZXIu
cHJvdG90eXBlID0gewogICAgICAqLwogICAgIGNvbnRleHRCeUZyYW1lQW5kU2VjdXJpdHlPcmln
aW46IGZ1bmN0aW9uKGZyYW1lLCBzZWN1cml0eU9yaWdpbikKICAgICB7Ci0gICAgICAgIHZhciBm
cmFtZUNvbnRleHQgPSB0aGlzLl9mcmFtZUlkVG9Db250ZXh0W2ZyYW1lLmlkXTsKKyAgICAgICAg
dmFyIGZyYW1lQ29udGV4dCA9IHRoaXMuX2ZyYW1lSWRUb0NvbnRleHRMaXN0W2ZyYW1lLmlkXTsK
ICAgICAgICAgcmV0dXJuIGZyYW1lQ29udGV4dCAmJiBmcmFtZUNvbnRleHQuY29udGV4dEJ5U2Vj
dXJpdHlPcmlnaW4oc2VjdXJpdHlPcmlnaW4pOwogICAgIH0sCiAKICAgICBfZnJhbWVBZGRlZDog
ZnVuY3Rpb24oZXZlbnQpCiAgICAgewogICAgICAgICB2YXIgZnJhbWUgPSBldmVudC5kYXRhOwot
ICAgICAgICB2YXIgY29udGV4dCA9IG5ldyBXZWJJbnNwZWN0b3IuRnJhbWVFdmFsdWF0aW9uQ29u
dGV4dChmcmFtZSk7Ci0gICAgICAgIHRoaXMuX2ZyYW1lSWRUb0NvbnRleHRbZnJhbWUuaWRdID0g
Y29udGV4dDsKLSAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVj
dG9yLkphdmFTY3JpcHRDb250ZXh0TWFuYWdlci5FdmVudHMuRnJhbWVDb250ZXh0QWRkZWQsIGNv
bnRleHQpOworICAgICAgICB2YXIgY29udGV4dCA9IG5ldyBXZWJJbnNwZWN0b3IuRnJhbWVFeGVj
dXRpb25Db250ZXh0TGlzdChmcmFtZSk7CisgICAgICAgIHRoaXMuX2ZyYW1lSWRUb0NvbnRleHRM
aXN0W2ZyYW1lLmlkXSA9IGNvbnRleHQ7CisgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlz
dGVuZXJzKFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0Q29udGV4dE1hbmFnZXIuRXZlbnRzLkZyYW1l
RXhlY3V0aW9uQ29udGV4dExpc3RBZGRlZCwgY29udGV4dCk7CiAgICAgfSwKIAogICAgIF9mcmFt
ZU5hdmlnYXRlZDogZnVuY3Rpb24oZXZlbnQpCiAgICAgewogICAgICAgICB2YXIgZnJhbWUgPSBl
dmVudC5kYXRhOwotICAgICAgICB2YXIgY29udGV4dCA9IHRoaXMuX2ZyYW1lSWRUb0NvbnRleHRb
ZnJhbWUuaWRdOworICAgICAgICB2YXIgY29udGV4dCA9IHRoaXMuX2ZyYW1lSWRUb0NvbnRleHRM
aXN0W2ZyYW1lLmlkXTsKICAgICAgICAgaWYgKGNvbnRleHQpCiAgICAgICAgICAgICBjb250ZXh0
Ll9mcmFtZU5hdmlnYXRlZChmcmFtZSk7CiAgICAgfSwKQEAgLTg1LDExICs4NSwxMSBAQCBXZWJJ
bnNwZWN0b3IuSmF2YVNjcmlwdENvbnRleHRNYW5hZ2VyLnByb3RvdHlwZSA9IHsKICAgICBfZnJh
bWVEZXRhY2hlZDogZnVuY3Rpb24oZXZlbnQpCiAgICAgewogICAgICAgICB2YXIgZnJhbWUgPSBl
dmVudC5kYXRhOwotICAgICAgICB2YXIgY29udGV4dCA9IHRoaXMuX2ZyYW1lSWRUb0NvbnRleHRb
ZnJhbWUuaWRdOworICAgICAgICB2YXIgY29udGV4dCA9IHRoaXMuX2ZyYW1lSWRUb0NvbnRleHRM
aXN0W2ZyYW1lLmlkXTsKICAgICAgICAgaWYgKCFjb250ZXh0KQogICAgICAgICAgICAgcmV0dXJu
OwotICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuSmF2
YVNjcmlwdENvbnRleHRNYW5hZ2VyLkV2ZW50cy5GcmFtZUNvbnRleHRSZW1vdmVkLCBjb250ZXh0
KTsKLSAgICAgICAgZGVsZXRlIHRoaXMuX2ZyYW1lSWRUb0NvbnRleHRbZnJhbWUuaWRdOworICAg
ICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuSmF2YVNjcmlw
dENvbnRleHRNYW5hZ2VyLkV2ZW50cy5GcmFtZUV4ZWN1dGlvbkNvbnRleHRMaXN0UmVtb3ZlZCwg
Y29udGV4dCk7CisgICAgICAgIGRlbGV0ZSB0aGlzLl9mcmFtZUlkVG9Db250ZXh0TGlzdFtmcmFt
ZS5pZF07CiAgICAgfSwKIAogICAgIF9kaWRMb2FkQ2FjaGVkUmVzb3VyY2VzOiBmdW5jdGlvbigp
CkBAIC0xMDAsMTEgKzEwMCwxMSBAQCBXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdENvbnRleHRNYW5h
Z2VyLnByb3RvdHlwZSA9IHsKIAogICAgIGlzb2xhdGVkQ29udGV4dENyZWF0ZWQ6IGZ1bmN0aW9u
KGNvbnRleHQpCiAgICAgewotICAgICAgICB2YXIgZnJhbWVFdmFsdWF0aW9uQ29udGV4dCA9IHRo
aXMuX2ZyYW1lSWRUb0NvbnRleHRbY29udGV4dC5mcmFtZUlkXTsKKyAgICAgICAgdmFyIGNwbXRl
eHRMaXN0ID0gdGhpcy5fZnJhbWVJZFRvQ29udGV4dExpc3RbY29udGV4dC5mcmFtZUlkXTsKICAg
ICAgICAgLy8gRklYTUUoODU3MDgpOiB0aGlzIHNob3VsZCBuZXZlciBoYXBwZW4KLSAgICAgICAg
aWYgKCFmcmFtZUV2YWx1YXRpb25Db250ZXh0KQorICAgICAgICBpZiAoIWNwbXRleHRMaXN0KQog
ICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBmcmFtZUV2YWx1YXRpb25Db250ZXh0Ll9hZGRF
eGVjdXRpb25Db250ZXh0KG5ldyBXZWJJbnNwZWN0b3IuRXhlY3V0aW9uQ29udGV4dChjb250ZXh0
LmlkLCBjb250ZXh0Lm5hbWUsIGNvbnRleHQuaXNQYWdlQ29udGV4dCkpOworICAgICAgICBjcG10
ZXh0TGlzdC5fYWRkRXhlY3V0aW9uQ29udGV4dChuZXcgV2ViSW5zcGVjdG9yLkV4ZWN1dGlvbkNv
bnRleHQoY29udGV4dC5pZCwgY29udGV4dC5uYW1lLCBjb250ZXh0LmlzUGFnZUNvbnRleHQpKTsK
ICAgICB9CiB9CiAKQEAgLTE2MiwyNiArMTYyLDI0IEBAIFdlYkluc3BlY3Rvci5FeGVjdXRpb25D
b250ZXh0LmNvbXBhcmF0b3IgPSBmdW5jdGlvbihhLCBiKQogICogQGNvbnN0cnVjdG9yCiAgKiBA
ZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLk9iamVjdH0KICAqLwotV2ViSW5zcGVjdG9yLkZyYW1lRXZh
bHVhdGlvbkNvbnRleHQgPSBmdW5jdGlvbihmcmFtZSkKK1dlYkluc3BlY3Rvci5GcmFtZUV4ZWN1
dGlvbkNvbnRleHRMaXN0ID0gZnVuY3Rpb24oZnJhbWUpCiB7CiAgICAgdGhpcy5fZnJhbWUgPSBm
cmFtZTsKLSAgICB0aGlzLl9tYWluV29ybGRDb250ZXh0ID0gbnVsbDsKLSAgICB0aGlzLl9pc29s
YXRlZENvbnRleHRzID0gW107CisgICAgdGhpcy5fZXhlY3V0aW9uQ29udGV4dHMgPSBbXTsKIH0K
IAotV2ViSW5zcGVjdG9yLkZyYW1lRXZhbHVhdGlvbkNvbnRleHQuRXZlbnRUeXBlcyA9IHsKLSAg
ICBVcGRhdGVkOiAiVXBkYXRlZCIsCi0gICAgQWRkZWRFeGVjdXRpb25Db250ZXh0OiAiQWRkZWRF
eGVjdXRpb25Db250ZXh0IgorV2ViSW5zcGVjdG9yLkZyYW1lRXhlY3V0aW9uQ29udGV4dExpc3Qu
RXZlbnRUeXBlcyA9IHsKKyAgICBDb250ZXh0c1VwZGF0ZWQ6ICJDb250ZXh0c1VwZGF0ZWQiLAor
ICAgIENvbnRleHRBZGRlZDogIkNvbnRleHRBZGRlZCIKIH0KIAotV2ViSW5zcGVjdG9yLkZyYW1l
RXZhbHVhdGlvbkNvbnRleHQucHJvdG90eXBlID0KK1dlYkluc3BlY3Rvci5GcmFtZUV4ZWN1dGlv
bkNvbnRleHRMaXN0LnByb3RvdHlwZSA9CiB7CiAgICAgX2ZyYW1lTmF2aWdhdGVkOiBmdW5jdGlv
bihmcmFtZSkKICAgICB7CiAgICAgICAgIHRoaXMuX2ZyYW1lID0gZnJhbWU7Ci0gICAgICAgIHRo
aXMuX21haW5Xb3JsZENvbnRleHQgPSBudWxsOwotICAgICAgICB0aGlzLl9pc29sYXRlZENvbnRl
eHRzID0gW107Ci0gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3Bl
Y3Rvci5GcmFtZUV2YWx1YXRpb25Db250ZXh0LkV2ZW50VHlwZXMuVXBkYXRlZCwgdGhpcyk7Cisg
ICAgICAgIHRoaXMuX2V4ZWN1dGlvbkNvbnRleHRzID0gW107CisgICAgICAgIHRoaXMuZGlzcGF0
Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5GcmFtZUV4ZWN1dGlvbkNvbnRleHRMaXN0
LkV2ZW50VHlwZXMuQ29udGV4dHNVcGRhdGVkLCB0aGlzKTsKICAgICB9LAogCiAgICAgLyoqCkBA
IC0xODksMjMgKzE4NywxNCBAQCBXZWJJbnNwZWN0b3IuRnJhbWVFdmFsdWF0aW9uQ29udGV4dC5w
cm90b3R5cGUgPQogICAgICAqLwogICAgIF9hZGRFeGVjdXRpb25Db250ZXh0OiBmdW5jdGlvbihj
b250ZXh0KQogICAgIHsKLSAgICAgICAgaWYgKGNvbnRleHQuaXNNYWluV29ybGRDb250ZXh0KQot
ICAgICAgICAgICAgdGhpcy5fbWFpbldvcmxkQ29udGV4dCA9IGNvbnRleHQ7Ci0gICAgICAgIGVs
c2UgewotICAgICAgICAgICAgdmFyIGluc2VydEF0ID0gaW5zZXJ0aW9uSW5kZXhGb3JPYmplY3RJ
bkxpc3RTb3J0ZWRCeUZ1bmN0aW9uKGNvbnRleHQsIHRoaXMuX2lzb2xhdGVkQ29udGV4dHMsIFdl
Ykluc3BlY3Rvci5FeGVjdXRpb25Db250ZXh0LmNvbXBhcmF0b3IpOwotICAgICAgICAgICAgdGhp
cy5faXNvbGF0ZWRDb250ZXh0cy5zcGxpY2UoaW5zZXJ0QXQsIDAsIGNvbnRleHQpOwotICAgICAg
ICB9Ci0gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5G
cmFtZUV2YWx1YXRpb25Db250ZXh0LkV2ZW50VHlwZXMuQWRkZWRFeGVjdXRpb25Db250ZXh0LCB0
aGlzKTsKLSAgICB9LAotCi0gICAgbWFpbldvcmxkQ29udGV4dDogZnVuY3Rpb24oKQotICAgIHsK
LSAgICAgICAgcmV0dXJuIHRoaXMuX21haW5Xb3JsZENvbnRleHQ7CisgICAgICAgIHZhciBpbnNl
cnRBdCA9IGluc2VydGlvbkluZGV4Rm9yT2JqZWN0SW5MaXN0U29ydGVkQnlGdW5jdGlvbihjb250
ZXh0LCB0aGlzLl9leGVjdXRpb25Db250ZXh0cywgV2ViSW5zcGVjdG9yLkV4ZWN1dGlvbkNvbnRl
eHQuY29tcGFyYXRvcik7CisgICAgICAgIHRoaXMuX2V4ZWN1dGlvbkNvbnRleHRzLnNwbGljZShp
bnNlcnRBdCwgMCwgY29udGV4dCk7CisgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVu
ZXJzKFdlYkluc3BlY3Rvci5GcmFtZUV4ZWN1dGlvbkNvbnRleHRMaXN0LkV2ZW50VHlwZXMuQ29u
dGV4dEFkZGVkLCB0aGlzKTsKICAgICB9LAogCi0gICAgaXNvbGF0ZWRDb250ZXh0czogZnVuY3Rp
b24oKQorICAgIGV4ZWN1dGlvbkNvbnRleHRzOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBy
ZXR1cm4gdGhpcy5faXNvbGF0ZWRDb250ZXh0czsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2V4ZWN1
dGlvbkNvbnRleHRzOwogICAgIH0sCiAKICAgICAvKioKQEAgLTIxMyw4ICsyMDIsOCBAQCBXZWJJ
bnNwZWN0b3IuRnJhbWVFdmFsdWF0aW9uQ29udGV4dC5wcm90b3R5cGUgPQogICAgICAqLwogICAg
IGNvbnRleHRCeVNlY3VyaXR5T3JpZ2luOiBmdW5jdGlvbihzZWN1cml0eU9yaWdpbikKICAgICB7
Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5faXNvbGF0ZWRDb250ZXh0cy5sZW5n
dGg7ICsraSkgewotICAgICAgICAgICAgdmFyIGNvbnRleHQgPSB0aGlzLl9pc29sYXRlZENvbnRl
eHRzW2ldOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuX2V4ZWN1dGlvbkNvbnRl
eHRzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICB2YXIgY29udGV4dCA9IHRoaXMuX2V4ZWN1
dGlvbkNvbnRleHRzW2ldOwogICAgICAgICAgICAgaWYgKCFjb250ZXh0LmlzTWFpbldvcmxkQ29u
dGV4dCAmJiBjb250ZXh0Lm5hbWUgPT09IHNlY3VyaXR5T3JpZ2luKQogICAgICAgICAgICAgICAg
IHJldHVybiBjb250ZXh0OyAKICAgICAgICAgfQpAQCAtMjQ1LDQgKzIzNCw0IEBAIFdlYkluc3Bl
Y3Rvci5GcmFtZUV2YWx1YXRpb25Db250ZXh0LnByb3RvdHlwZSA9CiAgICAgfQogfQogCi1XZWJJ
bnNwZWN0b3IuRnJhbWVFdmFsdWF0aW9uQ29udGV4dC5wcm90b3R5cGUuX19wcm90b19fID0gV2Vi
SW5zcGVjdG9yLk9iamVjdC5wcm90b3R5cGU7CitXZWJJbnNwZWN0b3IuRnJhbWVFeGVjdXRpb25D
b250ZXh0TGlzdC5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLk9iamVjdC5wcm90
b3R5cGU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggMTdjN2FhMWY5NjIwNDcyZWZiYjk0NGE0OTdhMjljNzM0NWZmMzA0ZC4u
NWE1ZmQxNjk2Y2Y3NzUxM2UzMTAyNWM4ZmEwMDYyOTVjNzcxZjUxYyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDEzIEBACisyMDEyLTA4LTMxICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGdldCByaWQgb2YgY29udGV4dCBleGVjdXRpb24g
aWQgZmFsbGJhY2suCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD05NTU2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS1jZC1jb21wbGV0aW9ucy5odG1sOgor
ICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtY2QuaHRtbDoKKwogMjAxMi0w
OC0zMSAgU3VkYXJzYW5hIE5hZ2luZW5pICA8c3VkYXJzYW5hLm5hZ2luZW5pQGxpbnV4LmludGVs
LmNvbT4KIAogICAgICAgICBbRUZMXSBHYXJkZW5pbmcgb2YgZmFpbGluZyB0ZXN0cyBhbmQgbmV3
IHBhc3NlcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29u
c29sZS1jZC1jb21wbGV0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3IvY29uc29sZS1jZC1jb21wbGV0aW9ucy5odG1sCmluZGV4IGQ3NmZhYjM0MGVlMjk3NTNhYjIw
YjgzZjYxNzhjNzhjZTI2Mjk4YzIuLjM1OTU4Mzc3ZGRhYTIzY2M5YmI0ZDRiNGRhNDgxZTlkMWI3
NTA2MTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNv
bGUtY2QtY29tcGxldGlvbnMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9jb25zb2xlLWNkLWNvbXBsZXRpb25zLmh0bWwKQEAgLTIwLDcgKzIwLDcgQEAgZnVuY3Rp
b24gdGVzdCgpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgb3B0aW9uLnNlbGVjdGVkID0g
dHJ1ZTsKLQorICAgIFdlYkluc3BlY3Rvci5jb25zb2xlVmlldy5fdXBkYXRlRXhlY3V0aW9uQ29u
dGV4dFNlbGVjdG9yKCk7CiAKICAgICBXZWJJbnNwZWN0b3IuY29uc29sZVZpZXcuY29tcGxldGlv
bnNGb3JFeHByZXNzaW9uKCIiLCAibXlHbG9iIiwgZmFsc2UsIGNoZWNrQ29tcGxldGlvbnMuYmlu
ZCh0aGlzKSk7CiAgICAgZnVuY3Rpb24gY2hlY2tDb21wbGV0aW9ucyhjb21wbGV0aW9ucykKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtY2QuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtY2QuaHRtbAppbmRl
eCAyZjA0MDhmNjdjNDNkNmM4OTgxNGVjZjQxZGQ0NGNiNzI3OTMyMmM2Li5lZTI3MGY4YzEwMjZh
Y2I5Y2U4YmM1YWM5ZThjOTljZjNkZDg1MmYwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLWNkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3IvY29uc29sZS1jZC5odG1sCkBAIC0yMSw2ICsyMSw4IEBAIGZ1bmN0aW9u
IHRlc3QoKQogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIG9wdGlvbi5zZWxlY3RlZCA9IHRy
dWU7CisgICAgV2ViSW5zcGVjdG9yLmNvbnNvbGVWaWV3Ll91cGRhdGVFeGVjdXRpb25Db250ZXh0
U2VsZWN0b3IoKTsKKwogICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJbkNvbnNvbGVBbmREdW1w
KCJmb28iLCBmaW5pc2gpOwogICAgIGZ1bmN0aW9uIGZpbmlzaCgpCiAgICAgewo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161879</attachid>
            <date>2012-09-03 01:40:25 -0700</date>
            <delta_ts>2012-09-03 01:49:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95567-20120903124008.patch</filename>
            <type>text/plain</type>
            <size>24537</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3MjQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzFlNGI5ZmVjOGFjYzc0
MTNhOTA2N2Q3ZDMzZGJjNGYyNmU5MDk4My4uN2E1N2Q1YTNlMzg4NTc2YWFlMjJhN2VkY2U1ZTgz
Nzg4MWRkMjJkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEyLTA4LTMxICBQYXZl
bCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IGdldCByaWQgb2YgY29udGV4dCBleGVjdXRpb24gaWQgZmFsbGJhY2suCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTU2NworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIG5vdyBhc3NpZ24gZXhlY3V0
aW9uIGNvbnRleHQgaWQgdXBvbiBjaGFuZ2VzIGluIHRoZSBVSS4KKworICAgICAgICAqIGluc3Bl
Y3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29u
c29sZVZpZXcucHJvdG90eXBlLmdldCBzdGF0dXNCYXJJdGVtcyk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBlLl9jb250ZXh0QWRkZWQpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZS5fYWRkQ29udGV4dExpc3QpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZS5fY29udGV4dExpc3RSZW1vdmVk
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUuX3VwZGF0ZUV4
ZWN1dGlvbkNvbnRleHRTZWxlY3Rvcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZVZp
ZXcucHJvdG90eXBlLl9hcHBlbmRFeGVjdXRpb25Db250ZXh0T3B0aW9uKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUuX2V4ZWN1dGlvbkNvbnRleHRDaGFuZ2Vk
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUuX2NvbnRleHRM
aXN0VXBkYXRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBl
Ll9hZGRlZEV4ZWN1dGlvbkNvbnRleHQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVW
aWV3LnByb3RvdHlwZS5ldmFsSW5JbnNwZWN0ZWRXaW5kb3cuZXZhbENhbGxiYWNrKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUuZXZhbEluSW5zcGVjdGVkV2lu
ZG93KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUuX2VudGVy
S2V5UHJlc3NlZCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9KYXZhU2NyaXB0Q29u
dGV4dE1hbmFnZXIuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdENvbnRleHRN
YW5hZ2VyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0Q29udGV4dE1hbmFnZXIu
cHJvdG90eXBlLmNvbnRleHRMaXN0cyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSmF2YVNjcmlw
dENvbnRleHRNYW5hZ2VyLnByb3RvdHlwZS5jb250ZXh0QnlGcmFtZUFuZFNlY3VyaXR5T3JpZ2lu
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0Q29udGV4dE1hbmFnZXIucHJvdG90
eXBlLl9mcmFtZUFkZGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0Q29udGV4
dE1hbmFnZXIucHJvdG90eXBlLl9mcmFtZU5hdmlnYXRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuSmF2YVNjcmlwdENvbnRleHRNYW5hZ2VyLnByb3RvdHlwZS5fZnJhbWVEZXRhY2hlZCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdENvbnRleHRNYW5hZ2VyLnByb3RvdHlwZS5p
c29sYXRlZENvbnRleHRDcmVhdGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GcmFtZUV4ZWN1
dGlvbkNvbnRleHRMaXN0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GcmFtZUV4ZWN1dGlvbkNv
bnRleHRMaXN0LnByb3RvdHlwZS5fZnJhbWVOYXZpZ2F0ZWQpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkZyYW1lRXhlY3V0aW9uQ29udGV4dExpc3QucHJvdG90eXBlLl9hZGRFeGVjdXRpb25Db250
ZXh0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GcmFtZUV4ZWN1dGlvbkNvbnRleHRMaXN0LnBy
b3RvdHlwZS5leGVjdXRpb25Db250ZXh0cyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRnJhbWVF
eGVjdXRpb25Db250ZXh0TGlzdC5wcm90b3R5cGUuY29udGV4dEJ5U2VjdXJpdHlPcmlnaW4pOgor
CiAyMDEyLTA4LTMxICBUaGlhZ28gTWFyY29zIFAuIFNhbnRvcyAgPHRoaWFnby5zYW50b3NAaW50
ZWwuY29tPgogCiAgICAgICAgIFtDTWFrZV0gQ2hhbmdlcyBvbiB0aGUgYmluZGluZ3MgZ2VuZXJh
dG9yIGRvZXMgbm90IHRyaWdnZXIgZ2VuZXJhdGlvbiBvZiB0aGUgYmluZGluZ3MKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanMgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzCmluZGV4IDRh
OGQ3MmMzMWNiOGNhYjVjNDc3NmM2YzNlMTlhNDE4NDBiZTI4M2IuLjZmOWU4OGFhZjJiYWQ1ZjFk
NDg2MzI5NzhmN2U5ZTNkYWM0MGNkNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5qcwpAQCAtNDQsMTIgKzQ0LDEyIEBAIFdlYkluc3Bl
Y3Rvci5Db25zb2xlVmlldyA9IGZ1bmN0aW9uKGhpZGVDb250ZXh0U2VsZWN0b3IpCiAgICAgdGhp
cy5fY2xlYXJDb25zb2xlQnV0dG9uID0gbmV3IFdlYkluc3BlY3Rvci5TdGF0dXNCYXJCdXR0b24o
V2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDbGVhciBjb25zb2xlIGxvZy4iKSwgImNsZWFyLXN0YXR1
cy1iYXItaXRlbSIpOwogICAgIHRoaXMuX2NsZWFyQ29uc29sZUJ1dHRvbi5hZGRFdmVudExpc3Rl
bmVyKCJjbGljayIsIHRoaXMuX3JlcXVlc3RDbGVhck1lc3NhZ2VzLCB0aGlzKTsKIAotICAgIHRo
aXMuX2NvbnRleHRTZWxlY3RvciA9IG5ldyBXZWJJbnNwZWN0b3IuU3RhdHVzQmFyQ29tYm9Cb3go
dGhpcy5fdXBkYXRlSXNvbGF0ZWRXb3JsZFNlbGVjdG9yLmJpbmQodGhpcyksICJjb25zb2xlLWNv
bnRleHQiKTsKLSAgICB0aGlzLl9pc29sYXRlZFdvcmxkU2VsZWN0b3IgPSBuZXcgV2ViSW5zcGVj
dG9yLlN0YXR1c0JhckNvbWJvQm94KG51bGwsICJjb25zb2xlLWNvbnRleHQiKTsKKyAgICB0aGlz
Ll9mcmFtZVNlbGVjdG9yID0gbmV3IFdlYkluc3BlY3Rvci5TdGF0dXNCYXJDb21ib0JveCh0aGlz
Ll9mcmFtZUNoYW5nZWQuYmluZCh0aGlzKSwgImNvbnNvbGUtY29udGV4dCIpOworICAgIHRoaXMu
X2NvbnRleHRTZWxlY3RvciA9IG5ldyBXZWJJbnNwZWN0b3IuU3RhdHVzQmFyQ29tYm9Cb3godGhp
cy5fY29udGV4dENoYW5nZWQuYmluZCh0aGlzKSwgImNvbnNvbGUtY29udGV4dCIpOwogCiAgICAg
aWYgKGhpZGVDb250ZXh0U2VsZWN0b3IpIHsKKyAgICAgICAgdGhpcy5fZnJhbWVTZWxlY3Rvci5l
bGVtZW50LmFkZFN0eWxlQ2xhc3MoImhpZGRlbiIpOwogICAgICAgICB0aGlzLl9jb250ZXh0U2Vs
ZWN0b3IuZWxlbWVudC5hZGRTdHlsZUNsYXNzKCJoaWRkZW4iKTsKLSAgICAgICAgdGhpcy5faXNv
bGF0ZWRXb3JsZFNlbGVjdG9yLmVsZW1lbnQuYWRkU3R5bGVDbGFzcygiaGlkZGVuIik7CiAgICAg
fQogCiAgICAgdGhpcy5tZXNzYWdlc0VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJk
aXYiKTsKQEAgLTczLDE0ICs3MywxNyBAQCBXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcgPSBmdW5j
dGlvbihoaWRlQ29udGV4dFNlbGVjdG9yKQogICAgIHRoaXMuX2ZpbHRlckJhckVsZW1lbnQgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICAgICB0aGlzLl9maWx0ZXJCYXJFbGVtZW50
LmNsYXNzTmFtZSA9ICJzY29wZS1iYXIgc3RhdHVzLWJhci1pdGVtIjsKIAotICAgIGZ1bmN0aW9u
IGNyZWF0ZURpdmlkZXJFbGVtZW50KCkgeworICAgIGZ1bmN0aW9uIGNyZWF0ZURpdmlkZXJFbGVt
ZW50KCkKKyAgICB7CiAgICAgICAgIHZhciBkaXZpZGVyRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImRpdiIpOwogICAgICAgICBkaXZpZGVyRWxlbWVudC5hZGRTdHlsZUNsYXNzKCJz
Y29wZS1iYXItZGl2aWRlciIpOwogICAgICAgICB0aGlzLl9maWx0ZXJCYXJFbGVtZW50LmFwcGVu
ZENoaWxkKGRpdmlkZXJFbGVtZW50KTsKICAgICB9CiAKICAgICB2YXIgdXBkYXRlRmlsdGVySGFu
ZGxlciA9IHRoaXMuX3VwZGF0ZUZpbHRlci5iaW5kKHRoaXMpOwotICAgIGZ1bmN0aW9uIGNyZWF0
ZUZpbHRlckVsZW1lbnQoY2F0ZWdvcnksIGxhYmVsKSB7CisKKyAgICBmdW5jdGlvbiBjcmVhdGVG
aWx0ZXJFbGVtZW50KGNhdGVnb3J5LCBsYWJlbCkKKyAgICB7CiAgICAgICAgIHZhciBjYXRlZ29y
eUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaSIpOwogICAgICAgICBjYXRlZ29y
eUVsZW1lbnQuY2F0ZWdvcnkgPSBjYXRlZ29yeTsKICAgICAgICAgY2F0ZWdvcnlFbGVtZW50LmNs
YXNzTmFtZSA9IGNhdGVnb3J5OwpAQCAtMTE4LDkgKzEyMSw5IEBAIFdlYkluc3BlY3Rvci5Db25z
b2xlVmlldyA9IGZ1bmN0aW9uKGhpZGVDb250ZXh0U2VsZWN0b3IpCiAgICAgdGhpcy5wcm9tcHQu
cHJveHlFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLCB0aGlzLl9wcm9tcHRLZXlE
b3duLmJpbmQodGhpcyksIGZhbHNlKTsKICAgICB0aGlzLnByb21wdC5zZXRIaXN0b3J5RGF0YShX
ZWJJbnNwZWN0b3Iuc2V0dGluZ3MuY29uc29sZUhpc3RvcnkuZ2V0KCkpOwogCi0gICAgV2ViSW5z
cGVjdG9yLmphdmFTY3JpcHRDb250ZXh0TWFuYWdlci5jb250ZXh0cygpLmZvckVhY2godGhpcy5f
YWRkQ29udGV4dCwgdGhpcyk7Ci0gICAgV2ViSW5zcGVjdG9yLmphdmFTY3JpcHRDb250ZXh0TWFu
YWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0Q29udGV4dE1hbmFn
ZXIuRXZlbnRzLkZyYW1lQ29udGV4dEFkZGVkLCB0aGlzLl9jb250ZXh0QWRkZWQsIHRoaXMpOwot
ICAgIFdlYkluc3BlY3Rvci5qYXZhU2NyaXB0Q29udGV4dE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5l
cihXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdENvbnRleHRNYW5hZ2VyLkV2ZW50cy5GcmFtZUNvbnRl
eHRSZW1vdmVkLCB0aGlzLl9jb250ZXh0UmVtb3ZlZCwgdGhpcyk7CisgICAgV2ViSW5zcGVjdG9y
LmphdmFTY3JpcHRDb250ZXh0TWFuYWdlci5jb250ZXh0TGlzdHMoKS5mb3JFYWNoKHRoaXMuX2Fk
ZEZyYW1lLCB0aGlzKTsKKyAgICBXZWJJbnNwZWN0b3IuamF2YVNjcmlwdENvbnRleHRNYW5hZ2Vy
LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRDb250ZXh0TWFuYWdlci5F
dmVudHMuRnJhbWVFeGVjdXRpb25Db250ZXh0TGlzdEFkZGVkLCB0aGlzLl9mcmFtZUFkZGVkLCB0
aGlzKTsKKyAgICBXZWJJbnNwZWN0b3IuamF2YVNjcmlwdENvbnRleHRNYW5hZ2VyLmFkZEV2ZW50
TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRDb250ZXh0TWFuYWdlci5FdmVudHMuRnJh
bWVFeGVjdXRpb25Db250ZXh0TGlzdFJlbW92ZWQsIHRoaXMuX2ZyYW1lUmVtb3ZlZCwgdGhpcyk7
CiB9CiAKIFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5FdmVudHMgPSB7CkBAIC0xMzEsMTE3ICsx
MzQsMTE4IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5FdmVudHMgPSB7CiBXZWJJbnNwZWN0
b3IuQ29uc29sZVZpZXcucHJvdG90eXBlID0gewogICAgIGdldCBzdGF0dXNCYXJJdGVtcygpCiAg
ICAgewotICAgICAgICByZXR1cm4gW3RoaXMuX2NsZWFyQ29uc29sZUJ1dHRvbi5lbGVtZW50LCB0
aGlzLl9jb250ZXh0U2VsZWN0b3IuZWxlbWVudCwgdGhpcy5faXNvbGF0ZWRXb3JsZFNlbGVjdG9y
LmVsZW1lbnQsIHRoaXMuX2ZpbHRlckJhckVsZW1lbnRdOworICAgICAgICByZXR1cm4gW3RoaXMu
X2NsZWFyQ29uc29sZUJ1dHRvbi5lbGVtZW50LCB0aGlzLl9mcmFtZVNlbGVjdG9yLmVsZW1lbnQs
IHRoaXMuX2NvbnRleHRTZWxlY3Rvci5lbGVtZW50LCB0aGlzLl9maWx0ZXJCYXJFbGVtZW50XTsK
ICAgICB9LAogCiAgICAgLyoqCiAgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuRXZlbnR9IGV2
ZW50CiAgICAgICovCi0gICAgX2NvbnRleHRBZGRlZDogZnVuY3Rpb24oZXZlbnQpCisgICAgX2Zy
YW1lQWRkZWQ6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKLSAgICAgICAgdmFyIGNvbnRleHQgPSAv
KiogQHR5cGUge1dlYkluc3BlY3Rvci5GcmFtZUV2YWx1YXRpb25Db250ZXh0fSAqLyBldmVudC5k
YXRhOwotICAgICAgICB0aGlzLl9hZGRDb250ZXh0KGNvbnRleHQpOworICAgICAgICB2YXIgY29u
dGV4dExpc3QgPSAvKiogQHR5cGUge1dlYkluc3BlY3Rvci5GcmFtZUV4ZWN1dGlvbkNvbnRleHRM
aXN0fSAqLyBldmVudC5kYXRhOworICAgICAgICB0aGlzLl9hZGRGcmFtZShjb250ZXh0TGlzdCk7
CiAgICAgfSwKIAogICAgIC8qKgotICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLkZyYW1lRXZh
bHVhdGlvbkNvbnRleHR9IGNvbnRleHQKKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5GcmFt
ZUV4ZWN1dGlvbkNvbnRleHRMaXN0fSBjb250ZXh0TGlzdAogICAgICAqLwotICAgIF9hZGRDb250
ZXh0OiBmdW5jdGlvbihjb250ZXh0KQorICAgIF9hZGRGcmFtZTogZnVuY3Rpb24oY29udGV4dExp
c3QpCiAgICAgewogICAgICAgICB2YXIgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
b3B0aW9uIik7Ci0gICAgICAgIG9wdGlvbi50ZXh0ID0gY29udGV4dC5kaXNwbGF5TmFtZTsKLSAg
ICAgICAgb3B0aW9uLnRpdGxlID0gY29udGV4dC51cmw7Ci0gICAgICAgIG9wdGlvbi5fY29udGV4
dCA9IGNvbnRleHQ7Ci0gICAgICAgIGNvbnRleHQuX2NvbnNvbGVPcHRpb24gPSBvcHRpb247Ci0g
ICAgICAgIHRoaXMuX2NvbnRleHRTZWxlY3Rvci5hZGRPcHRpb24ob3B0aW9uKTsKLSAgICAgICAg
Y29udGV4dC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5GcmFtZUV2YWx1YXRpb25Db250
ZXh0LkV2ZW50VHlwZXMuVXBkYXRlZCwgdGhpcy5fY29udGV4dFVwZGF0ZWQsIHRoaXMpOwotICAg
ICAgICBjb250ZXh0LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkZyYW1lRXZhbHVhdGlv
bkNvbnRleHQuRXZlbnRUeXBlcy5BZGRlZEV4ZWN1dGlvbkNvbnRleHQsIHRoaXMuX2FkZGVkRXhl
Y3V0aW9uQ29udGV4dCwgdGhpcyk7Ci0gICAgICAgIHRoaXMuX3VwZGF0ZUlzb2xhdGVkV29ybGRT
ZWxlY3RvcigpOworICAgICAgICBvcHRpb24udGV4dCA9IGNvbnRleHRMaXN0LmRpc3BsYXlOYW1l
OworICAgICAgICBvcHRpb24udGl0bGUgPSBjb250ZXh0TGlzdC51cmw7CisgICAgICAgIG9wdGlv
bi5fY29udGV4dExpc3QgPSBjb250ZXh0TGlzdDsKKyAgICAgICAgY29udGV4dExpc3QuX2NvbnNv
bGVPcHRpb24gPSBvcHRpb247CisgICAgICAgIHRoaXMuX2ZyYW1lU2VsZWN0b3IuYWRkT3B0aW9u
KG9wdGlvbik7CisgICAgICAgIGNvbnRleHRMaXN0LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVj
dG9yLkZyYW1lRXhlY3V0aW9uQ29udGV4dExpc3QuRXZlbnRUeXBlcy5Db250ZXh0c1VwZGF0ZWQs
IHRoaXMuX2ZyYW1lVXBkYXRlZCwgdGhpcyk7CisgICAgICAgIGNvbnRleHRMaXN0LmFkZEV2ZW50
TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkZyYW1lRXhlY3V0aW9uQ29udGV4dExpc3QuRXZlbnRUeXBl
cy5Db250ZXh0QWRkZWQsIHRoaXMuX2NvbnRleHRBZGRlZCwgdGhpcyk7CisgICAgICAgIHRoaXMu
X2ZyYW1lQ2hhbmdlZCgpOwogICAgIH0sCiAKICAgICAvKioKICAgICAgKiBAcGFyYW0ge1dlYklu
c3BlY3Rvci5FdmVudH0gZXZlbnQKICAgICAgKi8KLSAgICBfY29udGV4dFJlbW92ZWQ6IGZ1bmN0
aW9uKGV2ZW50KQorICAgIF9mcmFtZVJlbW92ZWQ6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKLSAg
ICAgICAgdmFyIGNvbnRleHQgPSAvKiogQHR5cGUge1dlYkluc3BlY3Rvci5GcmFtZUV2YWx1YXRp
b25Db250ZXh0fSAqLyBldmVudC5kYXRhOwotICAgICAgICB0aGlzLl9jb250ZXh0U2VsZWN0b3Iu
cmVtb3ZlT3B0aW9uKGNvbnRleHQuX2NvbnNvbGVPcHRpb24pOwotICAgICAgICB0aGlzLl91cGRh
dGVJc29sYXRlZFdvcmxkU2VsZWN0b3IoKTsKKyAgICAgICAgdmFyIGNvbnRleHRMaXN0ID0gLyoq
IEB0eXBlIHtXZWJJbnNwZWN0b3IuRnJhbWVFeGVjdXRpb25Db250ZXh0TGlzdH0gKi8gZXZlbnQu
ZGF0YTsKKyAgICAgICAgdGhpcy5fZnJhbWVTZWxlY3Rvci5yZW1vdmVPcHRpb24oY29udGV4dExp
c3QuX2NvbnNvbGVPcHRpb24pOworICAgICAgICB0aGlzLl9mcmFtZUNoYW5nZWQoKTsKICAgICB9
LAogCi0gICAgX3VwZGF0ZUlzb2xhdGVkV29ybGRTZWxlY3RvcjogZnVuY3Rpb24oKQorICAgIF9m
cmFtZUNoYW5nZWQ6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIHZhciBjb250ZXh0ID0gdGhp
cy5fY3VycmVudEV2YWx1YXRpb25Db250ZXh0KCk7CisgICAgICAgIHZhciBjb250ZXh0ID0gdGhp
cy5fY3VycmVudEZyYW1lKCk7CiAgICAgICAgIGlmICghY29udGV4dCkgewotICAgICAgICAgICAg
dGhpcy5faXNvbGF0ZWRXb3JsZFNlbGVjdG9yLmVsZW1lbnQuYWRkU3R5bGVDbGFzcygiaGlkZGVu
Iik7CisgICAgICAgICAgICBkZWxldGUgdGhpcy5fY3VycmVudEV4ZWN1dGlvbkNvbnRleHQ7Cisg
ICAgICAgICAgICB0aGlzLl9jb250ZXh0U2VsZWN0b3IuZWxlbWVudC5hZGRTdHlsZUNsYXNzKCJo
aWRkZW4iKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIHZhciBp
c29sYXRlZENvbnRleHRzID0gY29udGV4dC5pc29sYXRlZENvbnRleHRzKCk7Ci0gICAgICAgIGlm
ICghaXNvbGF0ZWRDb250ZXh0cy5sZW5ndGgpIHsKLSAgICAgICAgICAgIHRoaXMuX2lzb2xhdGVk
V29ybGRTZWxlY3Rvci5lbGVtZW50LmFkZFN0eWxlQ2xhc3MoImhpZGRlbiIpOworICAgICAgICB2
YXIgZXhlY3V0aW9uQ29udGV4dHMgPSBjb250ZXh0LmV4ZWN1dGlvbkNvbnRleHRzKCk7CisgICAg
ICAgIGlmIChleGVjdXRpb25Db250ZXh0cy5sZW5ndGgpCisgICAgICAgICAgICB0aGlzLl9jdXJy
ZW50RXhlY3V0aW9uQ29udGV4dCA9IGV4ZWN1dGlvbkNvbnRleHRzWzBdOworCisgICAgICAgIGlm
IChleGVjdXRpb25Db250ZXh0cy5sZW5ndGggPT09IDEpIHsKKyAgICAgICAgICAgIHRoaXMuX2Nv
bnRleHRTZWxlY3Rvci5lbGVtZW50LmFkZFN0eWxlQ2xhc3MoImhpZGRlbiIpOwogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIHRoaXMuX2lzb2xhdGVkV29ybGRTZWxlY3Rv
ci5lbGVtZW50LnJlbW92ZVN0eWxlQ2xhc3MoImhpZGRlbiIpOwotICAgICAgICB0aGlzLl9pc29s
YXRlZFdvcmxkU2VsZWN0b3IucmVtb3ZlT3B0aW9ucygpOwotICAgICAgICB0aGlzLl9hcHBlbmRJ
c29sYXRlZENvbnRleHRPcHRpb24oY29udGV4dC5tYWluV29ybGRDb250ZXh0KCkpOwotICAgICAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IGlzb2xhdGVkQ29udGV4dHMubGVuZ3RoOyBpKyspCi0gICAg
ICAgICAgICB0aGlzLl9hcHBlbmRJc29sYXRlZENvbnRleHRPcHRpb24oaXNvbGF0ZWRDb250ZXh0
c1tpXSk7CisgICAgICAgIHRoaXMuX2NvbnRleHRTZWxlY3Rvci5lbGVtZW50LnJlbW92ZVN0eWxl
Q2xhc3MoImhpZGRlbiIpOworICAgICAgICB0aGlzLl9jb250ZXh0U2VsZWN0b3IucmVtb3ZlT3B0
aW9ucygpOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGV4ZWN1dGlvbkNvbnRleHRzLmxl
bmd0aDsgaSsrKQorICAgICAgICAgICAgdGhpcy5fYXBwZW5kQ29udGV4dE9wdGlvbihleGVjdXRp
b25Db250ZXh0c1tpXSk7CiAgICAgfSwKIAotICAgIF9hcHBlbmRJc29sYXRlZENvbnRleHRPcHRp
b246IGZ1bmN0aW9uKGlzb2xhdGVkQ29udGV4dCkKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge1dl
Ykluc3BlY3Rvci5FeGVjdXRpb25Db250ZXh0fSBleGVjdXRpb25Db250ZXh0CisgICAgICovCisg
ICAgX2FwcGVuZENvbnRleHRPcHRpb246IGZ1bmN0aW9uKGV4ZWN1dGlvbkNvbnRleHQpCiAgICAg
ewotICAgICAgICBpZiAoIWlzb2xhdGVkQ29udGV4dCkKLSAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgaWYgKCF0aGlzLl9jdXJyZW50RXhlY3V0aW9uQ29udGV4dCkKKyAgICAgICAgICAgIHRo
aXMuX2N1cnJlbnRFeGVjdXRpb25Db250ZXh0ID0gZXhlY3V0aW9uQ29udGV4dDsKICAgICAgICAg
dmFyIG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm9wdGlvbiIpOwotICAgICAgICBv
cHRpb24udGV4dCA9IGlzb2xhdGVkQ29udGV4dC5uYW1lOwotICAgICAgICBvcHRpb24udGl0bGUg
PSBpc29sYXRlZENvbnRleHQuaWQ7Ci0gICAgICAgIG9wdGlvbi5fZXhlY3V0aW9uQ29udGV4dElk
ID0gaXNvbGF0ZWRDb250ZXh0LmlkOwotICAgICAgICB0aGlzLl9pc29sYXRlZFdvcmxkU2VsZWN0
b3IuYWRkT3B0aW9uKG9wdGlvbik7Ci0gICAgfSwKLQotICAgIF9jb250ZXh0VXBkYXRlZDogZnVu
Y3Rpb24oZXZlbnQpCi0gICAgewotICAgICAgICB2YXIgY29udGV4dCA9IGV2ZW50LmRhdGE7Ci0g
ICAgICAgIHZhciBvcHRpb24gPSBjb250ZXh0Ll9jb25zb2xlT3B0aW9uOwotICAgICAgICBvcHRp
b24udGV4dCA9IGNvbnRleHQuZGlzcGxheU5hbWU7Ci0gICAgICAgIG9wdGlvbi50aXRsZSA9IGNv
bnRleHQudXJsOworICAgICAgICBvcHRpb24udGV4dCA9IGV4ZWN1dGlvbkNvbnRleHQubmFtZTsK
KyAgICAgICAgb3B0aW9uLnRpdGxlID0gZXhlY3V0aW9uQ29udGV4dC5pZDsKKyAgICAgICAgb3B0
aW9uLl9leGVjdXRpb25Db250ZXh0ID0gZXhlY3V0aW9uQ29udGV4dDsKKyAgICAgICAgdGhpcy5f
Y29udGV4dFNlbGVjdG9yLmFkZE9wdGlvbihvcHRpb24pOwogICAgIH0sCiAKLSAgICBfYWRkZWRF
eGVjdXRpb25Db250ZXh0OiBmdW5jdGlvbihldmVudCkKKyAgICAvKioKKyAgICAgKiBAcGFyYW0g
e0V2ZW50fSBldmVudAorICAgICAqLworICAgIF9jb250ZXh0Q2hhbmdlZDogZnVuY3Rpb24oZXZl
bnQpCiAgICAgewotICAgICAgICB2YXIgY29udGV4dCA9IGV2ZW50LmRhdGE7Ci0gICAgICAgIGlm
IChjb250ZXh0ID09PSB0aGlzLl9jdXJyZW50RXZhbHVhdGlvbkNvbnRleHQoKSkKLSAgICAgICAg
ICAgIHRoaXMuX3VwZGF0ZUlzb2xhdGVkV29ybGRTZWxlY3RvcigpOworICAgICAgICB2YXIgb3B0
aW9uID0gdGhpcy5fY29udGV4dFNlbGVjdG9yLnNlbGVjdGVkT3B0aW9uKCk7CisgICAgICAgIHRo
aXMuX2N1cnJlbnRFeGVjdXRpb25Db250ZXh0ID0gb3B0aW9uID8gb3B0aW9uLl9leGVjdXRpb25D
b250ZXh0IDogdW5kZWZpbmVkOwogICAgIH0sCiAKLSAgICBfY3VycmVudEV2YWx1YXRpb25Db250
ZXh0SWQ6IGZ1bmN0aW9uKCkKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5F
dmVudH0gZXZlbnQKKyAgICAgKi8KKyAgICBfZnJhbWVVcGRhdGVkOiBmdW5jdGlvbihldmVudCkK
ICAgICB7Ci0gICAgICAgIHZhciByZXN1bHQgPSB0aGlzLl9jdXJyZW50SXNvbGF0ZWRDb250ZXh0
SWQoKTsKLSAgICAgICAgaWYgKHJlc3VsdCAhPT0gdW5kZWZpbmVkKQotICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKLSAgICAgICAgdmFyIGNvbnRleHQgPSB0aGlzLl9jdXJyZW50RXZhbHVhdGlv
bkNvbnRleHQoKTsKLSAgICAgICAgaWYgKGNvbnRleHQgJiYgY29udGV4dC5tYWluV29ybGRDb250
ZXh0KCkpCi0gICAgICAgICAgICByZXR1cm4gY29udGV4dC5tYWluV29ybGRDb250ZXh0KCkuaWQ7
Ci0gICAgICAgIHJldHVybiB1bmRlZmluZWQ7CisgICAgICAgIHZhciBjb250ZXh0TGlzdCA9IC8q
KiB7V2ViSW5zcGVjdG9yLkZyYW1lRXhlY3V0aW9uQ29udGV4dExpc3QgKi8gZXZlbnQuZGF0YTsK
KyAgICAgICAgdmFyIG9wdGlvbiA9IGNvbnRleHRMaXN0Ll9jb25zb2xlT3B0aW9uOworICAgICAg
ICBvcHRpb24udGV4dCA9IGNvbnRleHRMaXN0LmRpc3BsYXlOYW1lOworICAgICAgICBvcHRpb24u
dGl0bGUgPSBjb250ZXh0TGlzdC51cmw7CiAgICAgfSwKIAotICAgIF9jdXJyZW50RXZhbHVhdGlv
bkNvbnRleHQ6IGZ1bmN0aW9uKCkKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rv
ci5FdmVudH0gZXZlbnQKKyAgICAgKi8KKyAgICBfY29udGV4dEFkZGVkOiBmdW5jdGlvbihldmVu
dCkKICAgICB7Ci0gICAgICAgIHZhciBvcHRpb24gPSB0aGlzLl9jb250ZXh0U2VsZWN0b3Iuc2Vs
ZWN0ZWRPcHRpb24oKTsKLSAgICAgICAgaWYgKCFvcHRpb24pCi0gICAgICAgICAgICByZXR1cm4g
dW5kZWZpbmVkOwotICAgICAgICByZXR1cm4gb3B0aW9uLl9jb250ZXh0OworICAgICAgICB2YXIg
Y29udGV4dExpc3QgPSAvKioge1dlYkluc3BlY3Rvci5GcmFtZUV4ZWN1dGlvbkNvbnRleHRMaXN0
ICovIGV2ZW50LmRhdGE7CisgICAgICAgIGlmIChjb250ZXh0TGlzdCA9PT0gdGhpcy5fY3VycmVu
dEZyYW1lKCkpCisgICAgICAgICAgICB0aGlzLl9mcmFtZUNoYW5nZWQoKTsKICAgICB9LAogCi0g
ICAgX2N1cnJlbnRJc29sYXRlZENvbnRleHRJZDogZnVuY3Rpb24oKQorICAgIC8qKgorICAgICAq
IEByZXR1cm4ge1dlYkluc3BlY3Rvci5GcmFtZUV4ZWN1dGlvbkNvbnRleHRMaXN0fHVuZGVmaW5l
ZH0KKyAgICAgKi8KKyAgICBfY3VycmVudEZyYW1lOiBmdW5jdGlvbigpCiAgICAgewotICAgICAg
ICBpZiAodGhpcy5faXNvbGF0ZWRXb3JsZFNlbGVjdG9yLmVsZW1lbnQuaGFzU3R5bGVDbGFzcygi
aGlkZGVuIikpCi0gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkOwotICAgICAgICB2YXIgb3B0
aW9uID0gdGhpcy5faXNvbGF0ZWRXb3JsZFNlbGVjdG9yLnNlbGVjdGVkT3B0aW9uKCk7Ci0gICAg
ICAgIGlmICghb3B0aW9uKQotICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKLSAgICAgICAg
cmV0dXJuIG9wdGlvbi5fZXhlY3V0aW9uQ29udGV4dElkOworICAgICAgICB2YXIgb3B0aW9uID0g
dGhpcy5fZnJhbWVTZWxlY3Rvci5zZWxlY3RlZE9wdGlvbigpOworICAgICAgICByZXR1cm4gb3B0
aW9uID8gb3B0aW9uLl9jb250ZXh0TGlzdCA6IHVuZGVmaW5lZDsKICAgICB9LAogCiAgICAgX3Vw
ZGF0ZUZpbHRlcjogZnVuY3Rpb24oZSkKQEAgLTcwNiw4ICs3MTAsNyBAQCBXZWJJbnNwZWN0b3Iu
Q29uc29sZVZpZXcucHJvdG90eXBlID0gewogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAg
ICAgIGNhbGxiYWNrKFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QuZnJvbVBheWxvYWQocmVzdWx0
KSwgISF3YXNUaHJvd24pOwogICAgICAgICB9Ci0gICAgICAgIHZhciBjb250ZXh0SWQgPSB0aGlz
Ll9jdXJyZW50RXZhbHVhdGlvbkNvbnRleHRJZCgpOwotICAgICAgICBSdW50aW1lQWdlbnQuZXZh
bHVhdGUoZXhwcmVzc2lvbiwgb2JqZWN0R3JvdXAsIGluY2x1ZGVDb21tYW5kTGluZUFQSSwgZG9O
b3RQYXVzZU9uRXhjZXB0aW9uc0FuZE11dGVDb25zb2xlLCBjb250ZXh0SWQsIHJldHVybkJ5VmFs
dWUsIGV2YWxDYWxsYmFjayk7CisgICAgICAgIFJ1bnRpbWVBZ2VudC5ldmFsdWF0ZShleHByZXNz
aW9uLCBvYmplY3RHcm91cCwgaW5jbHVkZUNvbW1hbmRMaW5lQVBJLCBkb05vdFBhdXNlT25FeGNl
cHRpb25zQW5kTXV0ZUNvbnNvbGUsIHRoaXMuX2N1cnJlbnRFeGVjdXRpb25Db250ZXh0ID8gdGhp
cy5fY3VycmVudEV4ZWN1dGlvbkNvbnRleHQuaWQgOiB1bmRlZmluZWQsIHJldHVybkJ5VmFsdWUs
IGV2YWxDYWxsYmFjayk7CiAgICAgfSwKIAogICAgIGV2YWx1YXRlVXNpbmdUZXh0UHJvbXB0OiBm
dW5jdGlvbihleHByZXNzaW9uLCBzaG93UmVzdWx0T25seSkKQEAgLTczMiw4ICs3MzUsNyBAQCBX
ZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBlID0gewogCiAgICAgcnVuU2NyaXB0OiBm
dW5jdGlvbihzY3JpcHRJZCkKICAgICB7Ci0gICAgICAgIHZhciBjb250ZXh0SWQgPSBXZWJJbnNw
ZWN0b3IuY29uc29sZVZpZXcuX2N1cnJlbnRFdmFsdWF0aW9uQ29udGV4dElkKCk7Ci0gICAgICAg
IERlYnVnZ2VyQWdlbnQucnVuU2NyaXB0KHNjcmlwdElkLCBjb250ZXh0SWQsICJjb25zb2xlIiwg
ZmFsc2UsIHJ1bkNhbGxiYWNrLmJpbmQodGhpcykpOworICAgICAgICBEZWJ1Z2dlckFnZW50LnJ1
blNjcmlwdChzY3JpcHRJZCwgdGhpcy5fY3VycmVudEV4ZWN1dGlvbkNvbnRleHQgPyB0aGlzLl9j
dXJyZW50RXhlY3V0aW9uQ29udGV4dC5pZCA6IHVuZGVmaW5lZCwgImNvbnNvbGUiLCBmYWxzZSwg
cnVuQ2FsbGJhY2suYmluZCh0aGlzKSk7CiAgICAgICAgIFdlYkluc3BlY3Rvci51c2VyTWV0cmlj
cy5Db25zb2xlRXZhbHVhdGVkLnJlY29yZCgpOwogCiAgICAgICAgIC8qKgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9KYXZhU2NyaXB0Q29udGV4dE1hbmFn
ZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0phdmFTY3JpcHRDb250
ZXh0TWFuYWdlci5qcwppbmRleCA4ZWFmM2JkNDVlMDIwZTFmZDQ0ZjgwNzNhYzM2NmMwNDJmZmU4
NzRjLi42ZWU3MzYyNzJhYzg4MWE1Yjg3YmQwMGRlY2E5ZmE3ZmQzOGRlYzRhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0phdmFTY3JpcHRDb250ZXh0TWFu
YWdlci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0phdmFTY3Jp
cHRDb250ZXh0TWFuYWdlci5qcwpAQCAtMzksMjEgKzM5LDIxIEBAIFdlYkluc3BlY3Rvci5KYXZh
U2NyaXB0Q29udGV4dE1hbmFnZXIgPSBmdW5jdGlvbihyZXNvdXJjZVRyZWVNb2RlbCkKICAgICBy
ZXNvdXJjZVRyZWVNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRy
ZWVNb2RlbC5FdmVudFR5cGVzLkZyYW1lTmF2aWdhdGVkLCB0aGlzLl9mcmFtZU5hdmlnYXRlZCwg
dGhpcyk7CiAgICAgcmVzb3VyY2VUcmVlTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0
b3IuUmVzb3VyY2VUcmVlTW9kZWwuRXZlbnRUeXBlcy5GcmFtZURldGFjaGVkLCB0aGlzLl9mcmFt
ZURldGFjaGVkLCB0aGlzKTsKICAgICByZXNvdXJjZVRyZWVNb2RlbC5hZGRFdmVudExpc3RlbmVy
KFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5FdmVudFR5cGVzLkNhY2hlZFJlc291cmNl
c0xvYWRlZCwgdGhpcy5fZGlkTG9hZENhY2hlZFJlc291cmNlcywgdGhpcyk7Ci0gICAgdGhpcy5f
ZnJhbWVJZFRvQ29udGV4dCA9IHt9OworICAgIHRoaXMuX2ZyYW1lSWRUb0NvbnRleHRMaXN0ID0g
e307CiB9CiAKIFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0Q29udGV4dE1hbmFnZXIuRXZlbnRzID0g
ewotICAgIEZyYW1lQ29udGV4dEFkZGVkOiAiRnJhbWVDb250ZXh0QWRkZWQiLAotICAgIEZyYW1l
Q29udGV4dFJlbW92ZWQ6ICJGcmFtZUNvbnRleHRSZW1vdmVkIiwKKyAgICBGcmFtZUV4ZWN1dGlv
bkNvbnRleHRMaXN0QWRkZWQ6ICJGcmFtZUV4ZWN1dGlvbkNvbnRleHRMaXN0QWRkZWQiLAorICAg
IEZyYW1lRXhlY3V0aW9uQ29udGV4dExpc3RSZW1vdmVkOiAiRnJhbWVFeGVjdXRpb25Db250ZXh0
TGlzdFJlbW92ZWQiLAogfQogCiBXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdENvbnRleHRNYW5hZ2Vy
LnByb3RvdHlwZSA9IHsKICAgICAvKioKLSAgICAgKiBAcmV0dXJuIHtBcnJheS48V2ViSW5zcGVj
dG9yLkZyYW1lRXZhbHVhdGlvbkNvbnRleHQ+fQorICAgICAqIEByZXR1cm4ge0FycmF5LjxXZWJJ
bnNwZWN0b3IuRnJhbWVFeGVjdXRpb25Db250ZXh0TGlzdD59CiAgICAgICovCi0gICAgY29udGV4
dHM6IGZ1bmN0aW9uKCkKKyAgICBjb250ZXh0TGlzdHM6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAg
ICAgIHJldHVybiBPYmplY3QudmFsdWVzKHRoaXMuX2ZyYW1lSWRUb0NvbnRleHQpOworICAgICAg
ICByZXR1cm4gT2JqZWN0LnZhbHVlcyh0aGlzLl9mcmFtZUlkVG9Db250ZXh0TGlzdCk7CiAgICAg
fSwKIAogICAgIC8qKgpAQCAtNjIsMjIgKzYyLDIyIEBAIFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0
Q29udGV4dE1hbmFnZXIucHJvdG90eXBlID0gewogICAgICAqLwogICAgIGNvbnRleHRCeUZyYW1l
QW5kU2VjdXJpdHlPcmlnaW46IGZ1bmN0aW9uKGZyYW1lLCBzZWN1cml0eU9yaWdpbikKICAgICB7
Ci0gICAgICAgIHZhciBmcmFtZUNvbnRleHQgPSB0aGlzLl9mcmFtZUlkVG9Db250ZXh0W2ZyYW1l
LmlkXTsKKyAgICAgICAgdmFyIGZyYW1lQ29udGV4dCA9IHRoaXMuX2ZyYW1lSWRUb0NvbnRleHRM
aXN0W2ZyYW1lLmlkXTsKICAgICAgICAgcmV0dXJuIGZyYW1lQ29udGV4dCAmJiBmcmFtZUNvbnRl
eHQuY29udGV4dEJ5U2VjdXJpdHlPcmlnaW4oc2VjdXJpdHlPcmlnaW4pOwogICAgIH0sCiAKICAg
ICBfZnJhbWVBZGRlZDogZnVuY3Rpb24oZXZlbnQpCiAgICAgewogICAgICAgICB2YXIgZnJhbWUg
PSBldmVudC5kYXRhOwotICAgICAgICB2YXIgY29udGV4dCA9IG5ldyBXZWJJbnNwZWN0b3IuRnJh
bWVFdmFsdWF0aW9uQ29udGV4dChmcmFtZSk7Ci0gICAgICAgIHRoaXMuX2ZyYW1lSWRUb0NvbnRl
eHRbZnJhbWUuaWRdID0gY29udGV4dDsKLSAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0
ZW5lcnMoV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRDb250ZXh0TWFuYWdlci5FdmVudHMuRnJhbWVD
b250ZXh0QWRkZWQsIGNvbnRleHQpOworICAgICAgICB2YXIgY29udGV4dCA9IG5ldyBXZWJJbnNw
ZWN0b3IuRnJhbWVFeGVjdXRpb25Db250ZXh0TGlzdChmcmFtZSk7CisgICAgICAgIHRoaXMuX2Zy
YW1lSWRUb0NvbnRleHRMaXN0W2ZyYW1lLmlkXSA9IGNvbnRleHQ7CisgICAgICAgIHRoaXMuZGlz
cGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0Q29udGV4dE1hbmFn
ZXIuRXZlbnRzLkZyYW1lRXhlY3V0aW9uQ29udGV4dExpc3RBZGRlZCwgY29udGV4dCk7CiAgICAg
fSwKIAogICAgIF9mcmFtZU5hdmlnYXRlZDogZnVuY3Rpb24oZXZlbnQpCiAgICAgewogICAgICAg
ICB2YXIgZnJhbWUgPSBldmVudC5kYXRhOwotICAgICAgICB2YXIgY29udGV4dCA9IHRoaXMuX2Zy
YW1lSWRUb0NvbnRleHRbZnJhbWUuaWRdOworICAgICAgICB2YXIgY29udGV4dCA9IHRoaXMuX2Zy
YW1lSWRUb0NvbnRleHRMaXN0W2ZyYW1lLmlkXTsKICAgICAgICAgaWYgKGNvbnRleHQpCiAgICAg
ICAgICAgICBjb250ZXh0Ll9mcmFtZU5hdmlnYXRlZChmcmFtZSk7CiAgICAgfSwKQEAgLTg1LDEx
ICs4NSwxMSBAQCBXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdENvbnRleHRNYW5hZ2VyLnByb3RvdHlw
ZSA9IHsKICAgICBfZnJhbWVEZXRhY2hlZDogZnVuY3Rpb24oZXZlbnQpCiAgICAgewogICAgICAg
ICB2YXIgZnJhbWUgPSBldmVudC5kYXRhOwotICAgICAgICB2YXIgY29udGV4dCA9IHRoaXMuX2Zy
YW1lSWRUb0NvbnRleHRbZnJhbWUuaWRdOworICAgICAgICB2YXIgY29udGV4dCA9IHRoaXMuX2Zy
YW1lSWRUb0NvbnRleHRMaXN0W2ZyYW1lLmlkXTsKICAgICAgICAgaWYgKCFjb250ZXh0KQogICAg
ICAgICAgICAgcmV0dXJuOwotICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhX
ZWJJbnNwZWN0b3IuSmF2YVNjcmlwdENvbnRleHRNYW5hZ2VyLkV2ZW50cy5GcmFtZUNvbnRleHRS
ZW1vdmVkLCBjb250ZXh0KTsKLSAgICAgICAgZGVsZXRlIHRoaXMuX2ZyYW1lSWRUb0NvbnRleHRb
ZnJhbWUuaWRdOworICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNw
ZWN0b3IuSmF2YVNjcmlwdENvbnRleHRNYW5hZ2VyLkV2ZW50cy5GcmFtZUV4ZWN1dGlvbkNvbnRl
eHRMaXN0UmVtb3ZlZCwgY29udGV4dCk7CisgICAgICAgIGRlbGV0ZSB0aGlzLl9mcmFtZUlkVG9D
b250ZXh0TGlzdFtmcmFtZS5pZF07CiAgICAgfSwKIAogICAgIF9kaWRMb2FkQ2FjaGVkUmVzb3Vy
Y2VzOiBmdW5jdGlvbigpCkBAIC0xMDAsMTEgKzEwMCwxMSBAQCBXZWJJbnNwZWN0b3IuSmF2YVNj
cmlwdENvbnRleHRNYW5hZ2VyLnByb3RvdHlwZSA9IHsKIAogICAgIGlzb2xhdGVkQ29udGV4dENy
ZWF0ZWQ6IGZ1bmN0aW9uKGNvbnRleHQpCiAgICAgewotICAgICAgICB2YXIgZnJhbWVFdmFsdWF0
aW9uQ29udGV4dCA9IHRoaXMuX2ZyYW1lSWRUb0NvbnRleHRbY29udGV4dC5mcmFtZUlkXTsKKyAg
ICAgICAgdmFyIGNvbnRleHRMaXN0ID0gdGhpcy5fZnJhbWVJZFRvQ29udGV4dExpc3RbY29udGV4
dC5mcmFtZUlkXTsKICAgICAgICAgLy8gRklYTUUoODU3MDgpOiB0aGlzIHNob3VsZCBuZXZlciBo
YXBwZW4KLSAgICAgICAgaWYgKCFmcmFtZUV2YWx1YXRpb25Db250ZXh0KQorICAgICAgICBpZiAo
IWNvbnRleHRMaXN0KQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBmcmFtZUV2YWx1YXRp
b25Db250ZXh0Ll9hZGRFeGVjdXRpb25Db250ZXh0KG5ldyBXZWJJbnNwZWN0b3IuRXhlY3V0aW9u
Q29udGV4dChjb250ZXh0LmlkLCBjb250ZXh0Lm5hbWUsIGNvbnRleHQuaXNQYWdlQ29udGV4dCkp
OworICAgICAgICBjb250ZXh0TGlzdC5fYWRkRXhlY3V0aW9uQ29udGV4dChuZXcgV2ViSW5zcGVj
dG9yLkV4ZWN1dGlvbkNvbnRleHQoY29udGV4dC5pZCwgY29udGV4dC5uYW1lLCBjb250ZXh0Lmlz
UGFnZUNvbnRleHQpKTsKICAgICB9CiB9CiAKQEAgLTE2MiwyNiArMTYyLDI0IEBAIFdlYkluc3Bl
Y3Rvci5FeGVjdXRpb25Db250ZXh0LmNvbXBhcmF0b3IgPSBmdW5jdGlvbihhLCBiKQogICogQGNv
bnN0cnVjdG9yCiAgKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLk9iamVjdH0KICAqLwotV2ViSW5z
cGVjdG9yLkZyYW1lRXZhbHVhdGlvbkNvbnRleHQgPSBmdW5jdGlvbihmcmFtZSkKK1dlYkluc3Bl
Y3Rvci5GcmFtZUV4ZWN1dGlvbkNvbnRleHRMaXN0ID0gZnVuY3Rpb24oZnJhbWUpCiB7CiAgICAg
dGhpcy5fZnJhbWUgPSBmcmFtZTsKLSAgICB0aGlzLl9tYWluV29ybGRDb250ZXh0ID0gbnVsbDsK
LSAgICB0aGlzLl9pc29sYXRlZENvbnRleHRzID0gW107CisgICAgdGhpcy5fZXhlY3V0aW9uQ29u
dGV4dHMgPSBbXTsKIH0KIAotV2ViSW5zcGVjdG9yLkZyYW1lRXZhbHVhdGlvbkNvbnRleHQuRXZl
bnRUeXBlcyA9IHsKLSAgICBVcGRhdGVkOiAiVXBkYXRlZCIsCi0gICAgQWRkZWRFeGVjdXRpb25D
b250ZXh0OiAiQWRkZWRFeGVjdXRpb25Db250ZXh0IgorV2ViSW5zcGVjdG9yLkZyYW1lRXhlY3V0
aW9uQ29udGV4dExpc3QuRXZlbnRUeXBlcyA9IHsKKyAgICBDb250ZXh0c1VwZGF0ZWQ6ICJDb250
ZXh0c1VwZGF0ZWQiLAorICAgIENvbnRleHRBZGRlZDogIkNvbnRleHRBZGRlZCIKIH0KIAotV2Vi
SW5zcGVjdG9yLkZyYW1lRXZhbHVhdGlvbkNvbnRleHQucHJvdG90eXBlID0KK1dlYkluc3BlY3Rv
ci5GcmFtZUV4ZWN1dGlvbkNvbnRleHRMaXN0LnByb3RvdHlwZSA9CiB7CiAgICAgX2ZyYW1lTmF2
aWdhdGVkOiBmdW5jdGlvbihmcmFtZSkKICAgICB7CiAgICAgICAgIHRoaXMuX2ZyYW1lID0gZnJh
bWU7Ci0gICAgICAgIHRoaXMuX21haW5Xb3JsZENvbnRleHQgPSBudWxsOwotICAgICAgICB0aGlz
Ll9pc29sYXRlZENvbnRleHRzID0gW107Ci0gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlz
dGVuZXJzKFdlYkluc3BlY3Rvci5GcmFtZUV2YWx1YXRpb25Db250ZXh0LkV2ZW50VHlwZXMuVXBk
YXRlZCwgdGhpcyk7CisgICAgICAgIHRoaXMuX2V4ZWN1dGlvbkNvbnRleHRzID0gW107CisgICAg
ICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5GcmFtZUV4ZWN1
dGlvbkNvbnRleHRMaXN0LkV2ZW50VHlwZXMuQ29udGV4dHNVcGRhdGVkLCB0aGlzKTsKICAgICB9
LAogCiAgICAgLyoqCkBAIC0xODksMjMgKzE4NywxNCBAQCBXZWJJbnNwZWN0b3IuRnJhbWVFdmFs
dWF0aW9uQ29udGV4dC5wcm90b3R5cGUgPQogICAgICAqLwogICAgIF9hZGRFeGVjdXRpb25Db250
ZXh0OiBmdW5jdGlvbihjb250ZXh0KQogICAgIHsKLSAgICAgICAgaWYgKGNvbnRleHQuaXNNYWlu
V29ybGRDb250ZXh0KQotICAgICAgICAgICAgdGhpcy5fbWFpbldvcmxkQ29udGV4dCA9IGNvbnRl
eHQ7Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgdmFyIGluc2VydEF0ID0gaW5zZXJ0aW9u
SW5kZXhGb3JPYmplY3RJbkxpc3RTb3J0ZWRCeUZ1bmN0aW9uKGNvbnRleHQsIHRoaXMuX2lzb2xh
dGVkQ29udGV4dHMsIFdlYkluc3BlY3Rvci5FeGVjdXRpb25Db250ZXh0LmNvbXBhcmF0b3IpOwot
ICAgICAgICAgICAgdGhpcy5faXNvbGF0ZWRDb250ZXh0cy5zcGxpY2UoaW5zZXJ0QXQsIDAsIGNv
bnRleHQpOwotICAgICAgICB9Ci0gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJz
KFdlYkluc3BlY3Rvci5GcmFtZUV2YWx1YXRpb25Db250ZXh0LkV2ZW50VHlwZXMuQWRkZWRFeGVj
dXRpb25Db250ZXh0LCB0aGlzKTsKLSAgICB9LAotCi0gICAgbWFpbldvcmxkQ29udGV4dDogZnVu
Y3Rpb24oKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX21haW5Xb3JsZENvbnRleHQ7Cisg
ICAgICAgIHZhciBpbnNlcnRBdCA9IGluc2VydGlvbkluZGV4Rm9yT2JqZWN0SW5MaXN0U29ydGVk
QnlGdW5jdGlvbihjb250ZXh0LCB0aGlzLl9leGVjdXRpb25Db250ZXh0cywgV2ViSW5zcGVjdG9y
LkV4ZWN1dGlvbkNvbnRleHQuY29tcGFyYXRvcik7CisgICAgICAgIHRoaXMuX2V4ZWN1dGlvbkNv
bnRleHRzLnNwbGljZShpbnNlcnRBdCwgMCwgY29udGV4dCk7CisgICAgICAgIHRoaXMuZGlzcGF0
Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5GcmFtZUV4ZWN1dGlvbkNvbnRleHRMaXN0
LkV2ZW50VHlwZXMuQ29udGV4dEFkZGVkLCB0aGlzKTsKICAgICB9LAogCi0gICAgaXNvbGF0ZWRD
b250ZXh0czogZnVuY3Rpb24oKQorICAgIGV4ZWN1dGlvbkNvbnRleHRzOiBmdW5jdGlvbigpCiAg
ICAgewotICAgICAgICByZXR1cm4gdGhpcy5faXNvbGF0ZWRDb250ZXh0czsKKyAgICAgICAgcmV0
dXJuIHRoaXMuX2V4ZWN1dGlvbkNvbnRleHRzOwogICAgIH0sCiAKICAgICAvKioKQEAgLTIxMyw4
ICsyMDIsOCBAQCBXZWJJbnNwZWN0b3IuRnJhbWVFdmFsdWF0aW9uQ29udGV4dC5wcm90b3R5cGUg
PQogICAgICAqLwogICAgIGNvbnRleHRCeVNlY3VyaXR5T3JpZ2luOiBmdW5jdGlvbihzZWN1cml0
eU9yaWdpbikKICAgICB7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5faXNvbGF0
ZWRDb250ZXh0cy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgdmFyIGNvbnRleHQgPSB0aGlz
Ll9pc29sYXRlZENvbnRleHRzW2ldOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMu
X2V4ZWN1dGlvbkNvbnRleHRzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICB2YXIgY29udGV4
dCA9IHRoaXMuX2V4ZWN1dGlvbkNvbnRleHRzW2ldOwogICAgICAgICAgICAgaWYgKCFjb250ZXh0
LmlzTWFpbldvcmxkQ29udGV4dCAmJiBjb250ZXh0Lm5hbWUgPT09IHNlY3VyaXR5T3JpZ2luKQog
ICAgICAgICAgICAgICAgIHJldHVybiBjb250ZXh0OyAKICAgICAgICAgfQpAQCAtMjQ1LDQgKzIz
NCw0IEBAIFdlYkluc3BlY3Rvci5GcmFtZUV2YWx1YXRpb25Db250ZXh0LnByb3RvdHlwZSA9CiAg
ICAgfQogfQogCi1XZWJJbnNwZWN0b3IuRnJhbWVFdmFsdWF0aW9uQ29udGV4dC5wcm90b3R5cGUu
X19wcm90b19fID0gV2ViSW5zcGVjdG9yLk9iamVjdC5wcm90b3R5cGU7CitXZWJJbnNwZWN0b3Iu
RnJhbWVFeGVjdXRpb25Db250ZXh0TGlzdC5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVj
dG9yLk9iamVjdC5wcm90b3R5cGU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMTdjN2FhMWY5NjIwNDcyZWZiYjk0NGE0OTdh
MjljNzM0NWZmMzA0ZC4uNWE1ZmQxNjk2Y2Y3NzUxM2UzMTAyNWM4ZmEwMDYyOTVjNzcxZjUxYyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTA4LTMxICBQYXZlbCBGZWxkbWFuICA8cGZlbGRt
YW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGdldCByaWQgb2YgY29u
dGV4dCBleGVjdXRpb24gaWQgZmFsbGJhY2suCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05NTU2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS1jZC1jb21w
bGV0aW9ucy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtY2Qu
aHRtbDoKKwogMjAxMi0wOC0zMSAgU3VkYXJzYW5hIE5hZ2luZW5pICA8c3VkYXJzYW5hLm5hZ2lu
ZW5pQGxpbnV4LmludGVsLmNvbT4KIAogICAgICAgICBbRUZMXSBHYXJkZW5pbmcgb2YgZmFpbGlu
ZyB0ZXN0cyBhbmQgbmV3IHBhc3NlcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9pbnNwZWN0b3IvY29uc29sZS1jZC1jb21wbGV0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS1jZC1jb21wbGV0aW9ucy5odG1sCmluZGV4IGQ3NmZh
YjM0MGVlMjk3NTNhYjIwYjgzZjYxNzhjNzhjZTI2Mjk4YzIuLjc2MTY0NTc5YmY0N2E5N2E3MGQz
NWQ4MmYwZWJmNWQ3ZmFiNWZkMzggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL2NvbnNvbGUtY2QtY29tcGxldGlvbnMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLWNkLWNvbXBsZXRpb25zLmh0bWwKQEAgLTcsNyAr
Nyw3IEBACiBmdW5jdGlvbiB0ZXN0KCkKIHsKICAgICBJbnNwZWN0b3JUZXN0LnNob3dDb25zb2xl
UGFuZWwoKTsKLSAgICB2YXIgc2VsZWN0b3IgPSBXZWJJbnNwZWN0b3IuY29uc29sZVZpZXcuX2Nv
bnRleHRTZWxlY3Rvci5fc2VsZWN0RWxlbWVudDsKKyAgICB2YXIgc2VsZWN0b3IgPSBXZWJJbnNw
ZWN0b3IuY29uc29sZVZpZXcuX2ZyYW1lU2VsZWN0b3IuX3NlbGVjdEVsZW1lbnQ7CiAgICAgdmFy
IG9wdGlvbiA9IHNlbGVjdG9yLmZpcnN0Q2hpbGQ7CiAgICAgd2hpbGUgKG9wdGlvbikgewogICAg
ICAgICBpZiAob3B0aW9uLnRleHRDb250ZW50ICYmIG9wdGlvbi50ZXh0Q29udGVudC5pbmRleE9m
KCJteUlGcmFtZSIpID09PSAwKQpAQCAtMjAsNyArMjAsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KICAgICBvcHRpb24uc2VsZWN0ZWQgPSB0cnVlOwotCisgICAg
V2ViSW5zcGVjdG9yLmNvbnNvbGVWaWV3Ll9mcmFtZUNoYW5nZWQoKTsKIAogICAgIFdlYkluc3Bl
Y3Rvci5jb25zb2xlVmlldy5jb21wbGV0aW9uc0ZvckV4cHJlc3Npb24oIiIsICJteUdsb2IiLCBm
YWxzZSwgY2hlY2tDb21wbGV0aW9ucy5iaW5kKHRoaXMpKTsKICAgICBmdW5jdGlvbiBjaGVja0Nv
bXBsZXRpb25zKGNvbXBsZXRpb25zKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9pbnNwZWN0b3IvY29uc29sZS1jZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvY29uc29sZS1jZC5odG1sCmluZGV4IDJmMDQwOGY2N2M0M2Q2Yzg5ODE0ZWNmNDFkZDQ0
Y2I3Mjc5MzIyYzYuLjE4Yjg2ZWE0ZWM2ZmJmODdmNDIzYzkyNGI5NTM3Y2M3YjZmZmZjMDkgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtY2QuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLWNkLmh0bWwK
QEAgLTgsNyArOCw3IEBACiBmdW5jdGlvbiB0ZXN0KCkKIHsKICAgICBJbnNwZWN0b3JUZXN0LnNo
b3dDb25zb2xlUGFuZWwoKTsKLSAgICB2YXIgc2VsZWN0b3IgPSBXZWJJbnNwZWN0b3IuY29uc29s
ZVZpZXcuX2NvbnRleHRTZWxlY3Rvci5fc2VsZWN0RWxlbWVudDsKKyAgICB2YXIgc2VsZWN0b3Ig
PSBXZWJJbnNwZWN0b3IuY29uc29sZVZpZXcuX2ZyYW1lU2VsZWN0b3IuX3NlbGVjdEVsZW1lbnQ7
CiAgICAgdmFyIG9wdGlvbiA9IHNlbGVjdG9yLmZpcnN0Q2hpbGQ7CiAgICAgd2hpbGUgKG9wdGlv
bikgewogICAgICAgICBpZiAob3B0aW9uLnRleHRDb250ZW50ICYmIG9wdGlvbi50ZXh0Q29udGVu
dC5pbmRleE9mKCJteUlGcmFtZSIpID09PSAwKQpAQCAtMjEsNiArMjEsOCBAQCBmdW5jdGlvbiB0
ZXN0KCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBvcHRpb24uc2VsZWN0ZWQgPSB0cnVl
OworICAgIFdlYkluc3BlY3Rvci5jb25zb2xlVmlldy5fZnJhbWVDaGFuZ2VkKCk7CisKICAgICBJ
bnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5Db25zb2xlQW5kRHVtcCgiZm9vIiwgZmluaXNoKTsKICAg
ICBmdW5jdGlvbiBmaW5pc2goKQogICAgIHsK
</data>
<flag name="review"
          id="172799"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>