<?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>61853</bug_id>
          
          <creation_ts>2011-06-01 04:08:54 -0700</creation_ts>
          <short_desc>Web Inspector: allow opening inspector for existing workers</short_desc>
          <delta_ts>2011-06-01 07:35:14 -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>
          
          <blocked>58541</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Yury Semikhatsky">yurys</reporter>
          <assigned_to name="Yury Semikhatsky">yurys</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>dglazkov</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>413274</commentid>
    <comment_count>0</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-06-01 04:08:54 -0700</bug_when>
    <thetext>We need a sidebar pane that would enumerate all running workers and allow to open inspector for each of them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>413276</commentid>
    <comment_count>1</comment_count>
      <attachid>95582</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-06-01 04:11:35 -0700</bug_when>
    <thetext>Created attachment 95582
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>413285</commentid>
    <comment_count>2</comment_count>
      <attachid>95582</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-01 04:23:13 -0700</bug_when>
    <thetext>Comment on attachment 95582
Patch

Attachment 95582 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/8754499</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>413291</commentid>
    <comment_count>3</comment_count>
      <attachid>95585</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-06-01 04:36:23 -0700</bug_when>
    <thetext>Created attachment 95585
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>413347</commentid>
    <comment_count>4</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-06-01 06:59:21 -0700</bug_when>
    <thetext>Is there a screenshot? I was thinking that workers could be opened via clicking the links, not the checkboxes...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>413354</commentid>
    <comment_count>5</comment_count>
      <attachid>95585</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-06-01 07:04:21 -0700</bug_when>
    <thetext>Comment on attachment 95585
Patch

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

Overall looks good. r- for no constants, no screenshots. Btw, how do we test this?

&gt; Source/WebCore/inspector/front-end/WorkerManager.js:77
&gt; +        var win = this._workerIdToWindow[workerId];

please do not use abbreviations. workerWindow?

&gt; Source/WebCore/inspector/front-end/WorkerManager.js:85
&gt; +        url = url.replace(&quot;docked=true&amp;&quot;, &quot;&quot;);

I thought that &quot;docked&quot; was processed in /chromium/ only. Is it not so?

&gt; Source/WebCore/inspector/front-end/WorkersSidebarPane.js:119
&gt; +    workerManager.addEventListener(&quot;worker-added&quot;, this._workerAdded, this);

These should be constants.

&gt; Source/WebCore/inspector/front-end/WorkersSidebarPane.js:139
&gt; +        workerItem.checkbox.checked = false;

I&apos;d rather have a list of links.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>413365</commentid>
    <comment_count>6</comment_count>
      <attachid>95598</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-06-01 07:25:36 -0700</bug_when>
    <thetext>Created attachment 95598
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>413366</commentid>
    <comment_count>7</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-06-01 07:29:19 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 95585 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=95585&amp;action=review
&gt; 
&gt; Overall looks good. r- for no constants, no screenshots. Btw, how do we test this?
&gt; 
&gt; &gt; Source/WebCore/inspector/front-end/WorkerManager.js:77
&gt; &gt; +        var win = this._workerIdToWindow[workerId];
&gt; 
&gt; please do not use abbreviations. workerWindow?
&gt; 
Done.

&gt; &gt; Source/WebCore/inspector/front-end/WorkerManager.js:85
&gt; &gt; +        url = url.replace(&quot;docked=true&amp;&quot;, &quot;&quot;);
&gt; 
&gt; I thought that &quot;docked&quot; was processed in /chromium/ only. Is it not so?
&gt; 
Yes, it is. We can add platform-dependent hook here or try to refactor Chromium code to make it mimic other ports behavior.

&gt; &gt; Source/WebCore/inspector/front-end/WorkersSidebarPane.js:119
&gt; &gt; +    workerManager.addEventListener(&quot;worker-added&quot;, this._workerAdded, this);
&gt; 
&gt; These should be constants.
&gt; 
Done.

&gt; &gt; Source/WebCore/inspector/front-end/WorkersSidebarPane.js:139
&gt; &gt; +        workerItem.checkbox.checked = false;
&gt; 
&gt; I&apos;d rather have a list of links.

I started with a list of links but it doesn&apos;t give you an idea on which workers are already being inspected. So I&apos;d leave it as a list of checkboxes for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>413370</commentid>
    <comment_count>8</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-06-01 07:35:14 -0700</bug_when>
    <thetext>Committed r87803: &lt;http://trac.webkit.org/changeset/87803&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>95582</attachid>
            <date>2011-06-01 04:11:35 -0700</date>
            <delta_ts>2011-06-01 04:36:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-61853-20110601151133.patch</filename>
            <type>text/plain</type>
            <size>21163</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODc3OTIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzNzExNjFkMmM4MDI4ZDJh
ODhlMmIxY2ZkMTk3NWQ1M2U1ZTJjZGQ1Li4zN2YwNTVlODZlYWNkMmJjNTQxOTNhYTU2ZjhiNmY3
N2ZmYjFkODM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTQgQEAKKzIwMTEtMDYtMDEgIFl1cnkg
U2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogYWxsb3cgb3BlbmluZyBp
bnNwZWN0b3IgZm9yIGV4aXN0aW5nIHdvcmtlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTYxODUzCisKKyAgICAgICAgQWRkZWQgc2lkZWJhciBwYW5l
IHdpdGggYSBsaXN0IG9mIGFsbCB3b3JrZXJzLiBFYWNoIHdvcmtlciBoYXMgYSBjaGVjayBib3gK
KyAgICAgICAgdGhhdCBhbGxvd3Mgb3BlbmluZyBpbnNwZWN0b3IgZm9yIHRoZSB3b3JrZXIuCisK
KyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yLmpzb246CisgICAgICAgICogaW5zcGVjdG9y
L0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmRpZFN0YXJ0V29ya2VyQ29udGV4dEltcGwpOgorICAgICAgICAq
IGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkU3RhcnRXb3JrZXJDb250ZXh0KToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yV29ya2VyQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yV29ya2VyQWdlbnQ6OldvcmtlckZyb250ZW5kQ2hhbm5lbDo6V29ya2VyRnJv
bnRlbmRDaGFubmVsKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvcldvcmtlckFnZW50OjpX
b3JrZXJGcm9udGVuZENoYW5uZWw6On5Xb3JrZXJGcm9udGVuZENoYW5uZWwpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yV29ya2VyQWdlbnQ6OldvcmtlckZyb250ZW5kQ2hhbm5lbDo6Y29u
bmVjdFRvV29ya2VyQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JXb3JrZXJB
Z2VudDo6V29ya2VyRnJvbnRlbmRDaGFubmVsOjpkaXNjb25uZWN0RnJvbVdvcmtlckNvbnRleHQp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yV29ya2VyQWdlbnQ6OmNsZWFyRnJvbnRlbmQp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yV29ya2VyQWdlbnQ6OmNvbm5lY3RUb1dvcmtl
cik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JXb3JrZXJBZ2VudDo6ZGlzY29ubmVjdEZy
b21Xb3JrZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yV29ya2VyQWdlbnQ6OmRpZFN0
YXJ0V29ya2VyQ29udGV4dCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvcldvcmtlckFn
ZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanM6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsKToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZnJvbnQtZW5kL1NldHRpbmdzLmpzOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvV29y
a2VyTWFuYWdlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Xb3JrZXJNYW5hZ2VyKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5Xb3JrZXJNYW5hZ2VyLnByb3RvdHlwZS5fd29ya2VyQ3JlYXRl
ZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuV29ya2VyTWFuYWdlci5wcm90b3R5cGUuX3NlbmRN
ZXNzYWdlVG9Xb3JrZXJJbnNwZWN0b3IpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLldvcmtlck1h
bmFnZXIucHJvdG90eXBlLm9wZW5Xb3JrZXJJbnNwZWN0b3IpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLldvcmtlck1hbmFnZXIucHJvdG90eXBlLmNsb3NlV29ya2VySW5zcGVjdG9yKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5Xb3JrZXJNYW5hZ2VyLnByb3RvdHlwZS5fd29ya2VySW5zcGVjdG9y
Q2xvc2luZyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuV29ya2VyTWVzc2FnZUZvcndhcmRlcik6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuV29ya2VyTWVzc2FnZUZvcndhcmRlci5wcm90b3R5cGUu
d29ya2VyQ3JlYXRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuV29ya2VyTWVzc2FnZUZvcndh
cmRlci5wcm90b3R5cGUuZGlzcGF0Y2hNZXNzYWdlRnJvbVdvcmtlcik6CisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC9Xb3JrZXJzU2lkZWJhclBhbmUuanM6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuV29ya2Vyc1NpZGViYXJQYW5lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Xb3JrZXJz
U2lkZWJhclBhbmUucHJvdG90eXBlLmFkZFdvcmtlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
V29ya2VyTGlzdFNpZGViYXJQYW5lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Xb3JrZXJMaXN0
U2lkZWJhclBhbmUucHJvdG90eXBlLl93b3JrZXJBZGRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuV29ya2VyTGlzdFNpZGViYXJQYW5lLnByb3RvdHlwZS5fd29ya2VyUmVtb3ZlZCk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuV29ya2VyTGlzdFNpZGViYXJQYW5lLnByb3RvdHlwZS5fd29ya2Vy
SW5zcGVjdG9yQ2xvc2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Xb3JrZXJMaXN0U2lkZWJh
clBhbmUucHJvdG90eXBlLl9hZGRXb3JrZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLldvcmtl
ckxpc3RTaWRlYmFyUGFuZS5wcm90b3R5cGUuX2NyZWF0ZUNoZWNrYm94KToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5Xb3JrZXJMaXN0U2lkZWJhclBhbmUucHJvdG90eXBlLl93b3JrZXJJdGVtQ2xp
Y2tlZCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
V29ya2VyOjpub3RpZnlGaW5pc2hlZCk6CisKIDIwMTEtMDYtMDEgIEpheSBDaXZlbGxpICA8amNp
dmVsbGlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24gYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KaW5kZXggZDA4ODgxY2U2YmZlMjIw
MGY1YTlhZjBlMTkyOWViNTE4MjdjN2RjNi4uODBkNmMyN2MwNzcyYTQzNDBhMTU0ZjlmODA1Zjkx
MzBmZjJlNGQxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ci5qc29uCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgpAQCAt
MTcyNiwxMyArMTcyNiwyNiBAQAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIndvcmtl
cklkIiwgInR5cGUiOiAiaW50ZWdlciIgfSwKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJtZXNzYWdlIiwgInR5cGUiOiAib2JqZWN0IiB9CiAgICAgICAgICAgICAgICAgXQorICAgICAg
ICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAibmFtZSI6ICJjb25uZWN0
VG9Xb3JrZXIiLAorICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogIndvcmtlcklkIiwgInR5cGUiOiAiaW50ZWdlciIgfQorICAgICAg
ICAgICAgICAgIF0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAg
ICAgIm5hbWUiOiAiZGlzY29ubmVjdEZyb21Xb3JrZXIiLAorICAgICAgICAgICAgICAgICJwYXJh
bWV0ZXJzIjogWworICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIndvcmtlcklkIiwgInR5
cGUiOiAiaW50ZWdlciIgfQorICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgIH0KICAgICAg
ICAgXSwKICAgICAgICAgImV2ZW50cyI6IFsKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAibmFtZSI6ICJ3b3JrZXJDcmVhdGVkIiwKICAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6
IFsKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ3b3JrZXJJZCIsICJ0eXBlIjogImlu
dGVnZXIiIH0KKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ3b3JrZXJJZCIsICJ0eXBl
IjogImludGVnZXIiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidXJsIiwgInR5
cGUiOiAic3RyaW5nIiB9CiAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgfSwKICAgICAg
ICAgICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvcklu
c3RydW1lbnRhdGlvbi5jcHAKaW5kZXggMGNmMTlkMTU2ODU1ODJjN2FkMjgxYWJmMmE2ZGU0MDNi
M2VjMmRjMC4uMTM4OWM2ZTViNGNlOTUzODI3YmMwOTRiZGUxNTVmZTlmOTdiMjg4ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlv
bi5jcHAKQEAgLTcxNiwxMCArNzE2LDEwIEBAIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjpkaWRVc2VET01TdG9yYWdlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtCiAjZW5k
aWYKIAogI2lmIEVOQUJMRShXT1JLRVJTKQotdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OmRpZFN0YXJ0V29ya2VyQ29udGV4dEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVu
dGluZ0FnZW50cywgV29ya2VyQ29udGV4dFByb3h5KiB3b3JrZXJDb250ZXh0UHJveHkpCit2b2lk
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkU3RhcnRXb3JrZXJDb250ZXh0SW1wbChJbnN0
cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBXb3JrZXJDb250ZXh0UHJveHkq
IHdvcmtlckNvbnRleHRQcm94eSwgY29uc3QgS1VSTCYgdXJsKQogewogICAgIGlmIChJbnNwZWN0
b3JXb3JrZXJBZ2VudCogd29ya2VyQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0
b3JXb3JrZXJBZ2VudCgpKQotICAgICAgICB3b3JrZXJBZ2VudC0+ZGlkU3RhcnRXb3JrZXJDb250
ZXh0KHdvcmtlckNvbnRleHRQcm94eSk7CisgICAgICAgIHdvcmtlckFnZW50LT5kaWRTdGFydFdv
cmtlckNvbnRleHQod29ya2VyQ29udGV4dFByb3h5LCB1cmwpOwogfQogCiB2b2lkIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlV29ya2VySW1wbChJbnN0cnVtZW50aW5nQWdlbnRz
KiBpbnN0cnVtZW50aW5nQWdlbnRzLCBpbnRwdHJfdCBpZCwgY29uc3QgU3RyaW5nJiB1cmwsIGJv
b2wgaXNTaGFyZWRXb3JrZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKaW5kZXggNDQ1NzZiMGY0NWI1MDhkZjIwZWQ5M2JhOWFh
ZTRiYzExNDIxMTBkMi4uN2Y4NjA4ODY0ODdjYjQ5MjI2MzdhMzZjNjk2ZjkzZWVkMGJjMWMwMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRh
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50
YXRpb24uaApAQCAtMTYxLDcgKzE2MSw3IEBAIHB1YmxpYzoKIAogI2lmIEVOQUJMRShXT1JLRVJT
KQogICAgIHN0YXRpYyBib29sIHdpbGxTdGFydFdvcmtlckNvbnRleHQoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIFdvcmtlckNvbnRleHRQcm94eSopOwotICAgIHN0YXRpYyB2b2lkIGRpZFN0YXJ0
V29ya2VyQ29udGV4dChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgV29ya2VyQ29udGV4dFByb3h5
KiwgYm9vbCBwYXVzZWQpOworICAgIHN0YXRpYyB2b2lkIGRpZFN0YXJ0V29ya2VyQ29udGV4dChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiwgV29ya2VyQ29udGV4dFByb3h5KiwgYm9vbCBwYXVzZWQs
IGNvbnN0IEtVUkwmKTsKICAgICBzdGF0aWMgdm9pZCBkaWRDcmVhdGVXb3JrZXIoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCosIGludHB0cl90IGlkLCBjb25zdCBTdHJpbmcmIHVybCwgYm9vbCBpc1No
YXJlZFdvcmtlcik7CiAgICAgc3RhdGljIHZvaWQgZGlkRGVzdHJveVdvcmtlcihTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiwgaW50cHRyX3QgaWQpOwogI2VuZGlmCkBAIC0yODMsNyArMjgzLDcgQEAg
cHJpdmF0ZToKICNlbmRpZgogCiAjaWYgRU5BQkxFKFdPUktFUlMpCi0gICAgc3RhdGljIHZvaWQg
ZGlkU3RhcnRXb3JrZXJDb250ZXh0SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgV29ya2VyQ29u
dGV4dFByb3h5Kik7CisgICAgc3RhdGljIHZvaWQgZGlkU3RhcnRXb3JrZXJDb250ZXh0SW1wbChJ
bnN0cnVtZW50aW5nQWdlbnRzKiwgV29ya2VyQ29udGV4dFByb3h5KiwgY29uc3QgS1VSTCYpOwog
ICAgIHN0YXRpYyB2b2lkIGRpZENyZWF0ZVdvcmtlckltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyos
IGludHB0cl90IGlkLCBjb25zdCBTdHJpbmcmIHVybCwgYm9vbCBpc1NoYXJlZFdvcmtlcik7CiAg
ICAgc3RhdGljIHZvaWQgZGlkRGVzdHJveVdvcmtlckltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyos
IGludHB0cl90IGlkKTsKICNlbmRpZgpAQCAtODU2LDE0ICs4NTYsMTQgQEAgaW5saW5lIGJvb2wg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsU3RhcnRXb3JrZXJDb250ZXh0KFNjcmlwdEV4
ZWN1dGlvbkNvbnQKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWlubGluZSB2b2lkIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZGlkU3RhcnRXb3JrZXJDb250ZXh0KFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIGNvbnRleHQsIFdvcmtlckNvbnRleHRQcm94eSogcHJveHksIGJvb2wgcGF1c2VkKQor
aW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRTdGFydFdvcmtlckNvbnRl
eHQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgV29ya2VyQ29udGV4dFByb3h5KiBw
cm94eSwgYm9vbCBwYXVzZWQsIGNvbnN0IEtVUkwmIHVybCkKIHsKICNpZiBFTkFCTEUoSU5TUEVD
VE9SKQogICAgIGlmICghcGF1c2VkKQogICAgICAgICByZXR1cm47CiAgICAgRkFTVF9SRVRVUk5f
SUZfTk9fRlJPTlRFTkRTKHZvaWQoKSk7CiAgICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGlu
c3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yQ29udGV4dChjb250ZXh0
KSkKLSAgICAgICAgZGlkU3RhcnRXb3JrZXJDb250ZXh0SW1wbChpbnN0cnVtZW50aW5nQWdlbnRz
LCBwcm94eSk7CisgICAgICAgIGRpZFN0YXJ0V29ya2VyQ29udGV4dEltcGwoaW5zdHJ1bWVudGlu
Z0FnZW50cywgcHJveHksIHVybCk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvcldvcmtlckFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JXb3JrZXJBZ2VudC5jcHAKaW5kZXggOTBiNDFhNWUzYjhmZTQx
NGNkMTlkOGI0NDMxMjZjM2IyYTdmODY5My4uYjFkN2RjNGVmMjBkNWRlZDcxZGYxODRjYTZiZjcw
MjE5MzdhNDliOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
cldvcmtlckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
V29ya2VyQWdlbnQuY3BwCkBAIC01MCwxMyArNTAsMzMgQEAgcHVibGljOgogICAgICAgICA6IG1f
ZnJvbnRlbmQoZnJvbnRlbmQpCiAgICAgICAgICwgbV9wcm94eShwcm94eSkKICAgICAgICAgLCBt
X2lkKHNfbmV4dElkKyspCisgICAgICAgICwgbV9jb25uZWN0ZWQoZmFsc2UpCiAgICAgewogICAg
IH0KLSAgICB2aXJ0dWFsIH5Xb3JrZXJGcm9udGVuZENoYW5uZWwoKSB7IH0KKyAgICB2aXJ0dWFs
IH5Xb3JrZXJGcm9udGVuZENoYW5uZWwoKQorICAgIHsKKyAgICAgICAgZGlzY29ubmVjdEZyb21X
b3JrZXJDb250ZXh0KCk7CisgICAgfQogCiAgICAgaW50IGlkKCkgY29uc3QgeyByZXR1cm4gbV9p
ZDsgfQogICAgIFdvcmtlckNvbnRleHRQcm94eSogcHJveHkoKSBjb25zdCB7IHJldHVybiBtX3By
b3h5OyB9CiAKKyAgICB2b2lkIGNvbm5lY3RUb1dvcmtlckNvbnRleHQoKQorICAgIHsKKyAgICAg
ICAgaWYgKG1fY29ubmVjdGVkKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBtX2Nvbm5l
Y3RlZCA9IHRydWU7CisgICAgICAgIG1fcHJveHktPmNvbm5lY3RUb0luc3BlY3Rvcih0aGlzKTsK
KyAgICB9CisKKyAgICB2b2lkIGRpc2Nvbm5lY3RGcm9tV29ya2VyQ29udGV4dCgpCisgICAgewor
ICAgICAgICBpZiAoIW1fY29ubmVjdGVkKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBt
X2Nvbm5lY3RlZCA9IGZhbHNlOworICAgICAgICBtX3Byb3h5LT5kaXNjb25uZWN0RnJvbUluc3Bl
Y3RvcigpOworICAgIH0KKwogcHJpdmF0ZToKICAgICAvLyBXb3JrZXJDb250ZXh0UHJveHk6OlBh
Z2VJbnNwZWN0b3IgaW1wbGVtZW50YXRpb24KICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hNZXNz
YWdlRnJvbVdvcmtlcihjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCkBAIC03Myw2ICs5Myw3IEBAIHBy
aXZhdGU6CiAgICAgSW5zcGVjdG9yRnJvbnRlbmQqIG1fZnJvbnRlbmQ7CiAgICAgV29ya2VyQ29u
dGV4dFByb3h5KiBtX3Byb3h5OwogICAgIGludCBtX2lkOworICAgIGJvb2wgbV9jb25uZWN0ZWQ7
CiAgICAgc3RhdGljIGludCBzX25leHRJZDsKIH07CiAKQEAgLTEwNCw2ICsxMjUsMjYgQEAgdm9p
ZCBJbnNwZWN0b3JXb3JrZXJBZ2VudDo6Y2xlYXJGcm9udGVuZCgpCiB7CiAgICAgbV9pbnNwZWN0
b3JGcm9udGVuZCA9IDA7CiAgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLT5zZXRJbnNwZWN0b3JX
b3JrZXJBZ2VudCgwKTsKKyAgICBkZWxldGVBbGxWYWx1ZXMobV9pZFRvQ2hhbm5lbCk7CisgICAg
bV9pZFRvQ2hhbm5lbC5jbGVhcigpOworfQorCit2b2lkIEluc3BlY3RvcldvcmtlckFnZW50Ojpj
b25uZWN0VG9Xb3JrZXIoRXJyb3JTdHJpbmcqIGVycm9yLCBpbnQgd29ya2VySWQpCit7CisgICAg
V29ya2VyRnJvbnRlbmRDaGFubmVsKiBjaGFubmVsID0gbV9pZFRvQ2hhbm5lbC5nZXQod29ya2Vy
SWQpOworICAgIGlmIChjaGFubmVsKQorICAgICAgICBjaGFubmVsLT5jb25uZWN0VG9Xb3JrZXJD
b250ZXh0KCk7CisgICAgZWxzZQorICAgICAgICAqZXJyb3IgPSAiV29ya2VyIGlzIGdvbmUiOwor
fQorCit2b2lkIEluc3BlY3RvcldvcmtlckFnZW50OjpkaXNjb25uZWN0RnJvbVdvcmtlcihFcnJv
clN0cmluZyogZXJyb3IsIGludCB3b3JrZXJJZCkKK3sKKyAgICBXb3JrZXJGcm9udGVuZENoYW5u
ZWwqIGNoYW5uZWwgPSBtX2lkVG9DaGFubmVsLmdldCh3b3JrZXJJZCk7CisgICAgaWYgKGNoYW5u
ZWwpCisgICAgICAgIGNoYW5uZWwtPmRpc2Nvbm5lY3RGcm9tV29ya2VyQ29udGV4dCgpOworICAg
IGVsc2UKKyAgICAgICAgKmVycm9yID0gIldvcmtlciBpcyBnb25lIjsKIH0KIAogdm9pZCBJbnNw
ZWN0b3JXb3JrZXJBZ2VudDo6c2VuZE1lc3NhZ2VUb1dvcmtlcihFcnJvclN0cmluZyogZXJyb3Is
IGludCB3b3JrZXJJZCwgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IG1lc3NhZ2UpCkBAIC0x
MTUsMTQgKzE1NiwxMyBAQCB2b2lkIEluc3BlY3RvcldvcmtlckFnZW50OjpzZW5kTWVzc2FnZVRv
V29ya2VyKEVycm9yU3RyaW5nKiBlcnJvciwgaW50IHdvcmtlcklkLAogICAgICAgICAqZXJyb3Ig
PSAiV29ya2VyIGlzIGdvbmUiOwogfQogCi12b2lkIEluc3BlY3RvcldvcmtlckFnZW50OjpkaWRT
dGFydFdvcmtlckNvbnRleHQoV29ya2VyQ29udGV4dFByb3h5KiB3b3JrZXJDb250ZXh0UHJveHkp
Cit2b2lkIEluc3BlY3RvcldvcmtlckFnZW50OjpkaWRTdGFydFdvcmtlckNvbnRleHQoV29ya2Vy
Q29udGV4dFByb3h5KiB3b3JrZXJDb250ZXh0UHJveHksIGNvbnN0IEtVUkwmIHVybCkKIHsKICAg
ICBXb3JrZXJGcm9udGVuZENoYW5uZWwqIGNoYW5uZWwgPSBuZXcgV29ya2VyRnJvbnRlbmRDaGFu
bmVsKG1faW5zcGVjdG9yRnJvbnRlbmQsIHdvcmtlckNvbnRleHRQcm94eSk7CiAgICAgbV9pZFRv
Q2hhbm5lbC5zZXQoY2hhbm5lbC0+aWQoKSwgY2hhbm5lbCk7CiAKLSAgICB3b3JrZXJDb250ZXh0
UHJveHktPmNvbm5lY3RUb0luc3BlY3RvcihjaGFubmVsKTsKLSAgICBpZiAobV9pbnNwZWN0b3JG
cm9udGVuZCkKLSAgICAgICAgbV9pbnNwZWN0b3JGcm9udGVuZC0+d29ya2VyKCktPndvcmtlckNy
ZWF0ZWQoY2hhbm5lbC0+aWQoKSk7CisgICAgQVNTRVJUKG1faW5zcGVjdG9yRnJvbnRlbmQpOwor
ICAgIG1faW5zcGVjdG9yRnJvbnRlbmQtPndvcmtlcigpLT53b3JrZXJDcmVhdGVkKGNoYW5uZWwt
PmlkKCksIHVybC5zdHJpbmcoKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JXb3JrZXJBZ2VudC5oIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvcldvcmtlckFnZW50LmgKaW5kZXggNGEz
NGIxZmJjYjA3MWQ2ZmY0NWEyYWM3NTJkYjEwMDdmOWI1MDdjNS4uNzg3MWFmZjUxMjNiMWMyMTYy
N2I4MmQ1M2MyNDM5MmE2NzFlZmZiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvcldvcmtlckFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvcldvcmtlckFnZW50LmgKQEAgLTQwLDYgKzQwLDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmQ7CiBjbGFzcyBJbnNwZWN0b3JPYmplY3Q7CiBj
bGFzcyBJbnN0cnVtZW50aW5nQWdlbnRzOworY2xhc3MgS1VSTDsKIGNsYXNzIFdvcmtlckNvbnRl
eHRQcm94eTsKIAogdHlwZWRlZiBTdHJpbmcgRXJyb3JTdHJpbmc7CkBAIC01Myw5ICs1NCwxMSBA
QCBwdWJsaWM6CiAgICAgdm9pZCBjbGVhckZyb250ZW5kKCk7CiAKICAgICAvLyBDYWxsZWQgZnJv
bSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24KLSAgICB2b2lkIGRpZFN0YXJ0V29ya2VyQ29udGV4
dChXb3JrZXJDb250ZXh0UHJveHkqKTsKKyAgICB2b2lkIGRpZFN0YXJ0V29ya2VyQ29udGV4dChX
b3JrZXJDb250ZXh0UHJveHkqLCBjb25zdCBLVVJMJik7CiAKICAgICAvLyBDYWxsZWQgZnJvbSBJ
bnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcgorICAgIHZvaWQgY29ubmVjdFRvV29ya2VyKEVycm9y
U3RyaW5nKiwgaW50IHdvcmtlcklkKTsKKyAgICB2b2lkIGRpc2Nvbm5lY3RGcm9tV29ya2VyKEVy
cm9yU3RyaW5nKiwgaW50IHdvcmtlcklkKTsKICAgICB2b2lkIHNlbmRNZXNzYWdlVG9Xb3JrZXIo
RXJyb3JTdHJpbmcqLCBpbnQgd29ya2VySWQsIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBt
ZXNzYWdlKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9TY3JpcHRzUGFuZWwuanMKaW5kZXggM2FlMjU0MGEzN2Q5OWFlNTU4YmM5ODU1YjBl
ZWJhMDIzZjdmZmFlZC4uNGE3YWNlZWY4YzBkZmU3Y2NiZDQ5N2UzZDllM2JkZjZlZTQ1OTJlNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFu
ZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFu
ZWwuanMKQEAgLTEwNyw2ICsxMDcsOSBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsID0gZnVu
Y3Rpb24oKQogICAgIH0KIAogICAgIHRoaXMuc2lkZWJhclBhbmVzLndvcmtlcnMgPSBuZXcgV2Vi
SW5zcGVjdG9yLldvcmtlcnNTaWRlYmFyUGFuZSgpOworICAgIGlmIChQcmVmZXJlbmNlcy5jYW5J
bnNwZWN0V29ya2VycyAmJiBXZWJJbnNwZWN0b3Iud29ya2VyTWFuYWdlcikKKyAgICAgICAgdGhp
cy5zaWRlYmFyUGFuZXMud29ya2VyTGlzdCA9IG5ldyBXZWJJbnNwZWN0b3IuV29ya2VyTGlzdFNp
ZGViYXJQYW5lKFdlYkluc3BlY3Rvci53b3JrZXJNYW5hZ2VyKTsKKwogCiAgICAgZm9yICh2YXIg
cGFuZSBpbiB0aGlzLnNpZGViYXJQYW5lcykKICAgICAgICAgdGhpcy5zaWRlYmFyRWxlbWVudC5h
cHBlbmRDaGlsZCh0aGlzLnNpZGViYXJQYW5lc1twYW5lXS5lbGVtZW50KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3MuanMgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzLmpzCmluZGV4IDYyYmY4NGE3Mzk3
ZDg0Nzg0MTFiMWQ0ZTNkNTUxMjI4MjJjMjU3OGIuLjY4MzczNjNiMjNlYjY0NDA2NjU2MzlmOWFj
YzFkZDZjZWUyNzU3YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvU2V0dGluZ3MuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9TZXR0aW5ncy5qcwpAQCAtNTEsNyArNTEsOCBAQCB2YXIgUHJlZmVyZW5jZXMgPSB7CiAgICAg
aGVhcFByb2ZpbGVyUHJlc2VudDogZmFsc2UsCiAgICAgZGV0YWlsZWRIZWFwUHJvZmlsZXM6IGZh
bHNlLAogICAgIHNhdmVBc0F2YWlsYWJsZTogZmFsc2UsCi0gICAgdXNlTG93ZXJDYXNlTWVudVRp
dGxlc09uV2luZG93czogZmFsc2UKKyAgICB1c2VMb3dlckNhc2VNZW51VGl0bGVzT25XaW5kb3dz
OiBmYWxzZSwKKyAgICBjYW5JbnNwZWN0V29ya2VyczogZmFsc2UsCiB9CiAKIFdlYkluc3BlY3Rv
ci5TZXR0aW5ncyA9IGZ1bmN0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvV29ya2VyTWFuYWdlci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvV29ya2VyTWFuYWdlci5qcwppbmRleCBkMGI4ZTYzNDFmMTNlNjYyMzJjZjVi
NmYxMTYxNzdhZjU4M2Q0NWExLi40MjIwZDI3ZDk2ZmYzNGJiODE1MTczZTYzNmM1Yjk2MmZkNTUw
MTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dvcmtl
ck1hbmFnZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Xb3Jr
ZXJNYW5hZ2VyLmpzCkBAIC0zMCw2ICszMCw4IEBACiAKIFdlYkluc3BlY3Rvci5Xb3JrZXJNYW5h
Z2VyID0gZnVuY3Rpb24oKQogeworICAgIHRoaXMuX3dvcmtlcklkVG9XaW5kb3cgPSB7fTsKKyAg
ICBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyRG9tYWluRGlzcGF0Y2hlcigiV29ya2VyIiwgbmV3
IFdlYkluc3BlY3Rvci5Xb3JrZXJNZXNzYWdlRm9yd2FyZGVyKHRoaXMpKTsKIH0KIAogV2ViSW5z
cGVjdG9yLldvcmtlck1hbmFnZXIuaXNXb3JrZXJGcm9udGVuZCA9IGZ1bmN0aW9uKCkKQEAgLTQx
LDExICs0MywxMCBAQCBXZWJJbnNwZWN0b3IuV29ya2VyTWFuYWdlci5sb2FkZWQgPSBmdW5jdGlv
bigpCiB7CiAgICAgdmFyIHdvcmtlcklkID0gV2ViSW5zcGVjdG9yLnF1ZXJ5UGFyYW1zT2JqZWN0
WyJ3b3JrZXJJZCJdOwogICAgIGlmICghd29ya2VySWQpIHsKLSAgICAgICAgSW5zcGVjdG9yQmFj
a2VuZC5yZWdpc3RlckRvbWFpbkRpc3BhdGNoZXIoIldvcmtlciIsIG5ldyBXZWJJbnNwZWN0b3Iu
V29ya2VyTWVzc2FnZUZvcndhcmRlcigpKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLndvcmtlck1h
bmFnZXIgPSBuZXcgV2ViSW5zcGVjdG9yLldvcmtlck1hbmFnZXIoKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAotCiAgICAgZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQpCiAgICAgewog
ICAgICAgICB2YXIgbWVzc2FnZSA9IGV2ZW50LmRhdGE7CkBAIC02NSwxMSArNjYsNTAgQEAgV2Vi
SW5zcGVjdG9yLldvcmtlck1hbmFnZXIubG9hZGVkID0gZnVuY3Rpb24oKQogICAgIH0KIH0KIAor
V2ViSW5zcGVjdG9yLldvcmtlck1hbmFnZXIucHJvdG90eXBlID0geworICAgIF93b3JrZXJDcmVh
dGVkOiBmdW5jdGlvbih3b3JrZXJJZCwgdXJsKQorICAgIHsKKyAgICAgICAgdGhpcy5kaXNwYXRj
aEV2ZW50VG9MaXN0ZW5lcnMoIndvcmtlci1hZGRlZCIsIHt3b3JrZXJJZDogd29ya2VySWQsIHVy
bDogdXJsfSk7CisgICAgfSwKKworICAgIF9zZW5kTWVzc2FnZVRvV29ya2VySW5zcGVjdG9yOiBm
dW5jdGlvbih3b3JrZXJJZCwgbWVzc2FnZSkKKyAgICB7CisgICAgICAgIHZhciB3aW4gPSB0aGlz
Ll93b3JrZXJJZFRvV2luZG93W3dvcmtlcklkXTsKKyAgICAgICAgaWYgKHdpbikKKyAgICAgICAg
ICAgIHdpbi5wb3N0TWVzc2FnZShtZXNzYWdlLCAiKiIpOworICAgIH0sCisKKyAgICBvcGVuV29y
a2VySW5zcGVjdG9yOiBmdW5jdGlvbih3b3JrZXJJZCkKKyAgICB7CisgICAgICAgIHZhciB1cmwg
PSBsb2NhdGlvbi5ocmVmICsgIiZ3b3JrZXJJZD0iICsgd29ya2VySWQ7CisgICAgICAgIHVybCA9
IHVybC5yZXBsYWNlKCJkb2NrZWQ9dHJ1ZSYiLCAiIik7CisgICAgICAgIHZhciB3aW4gPSB3aW5k
b3cub3Blbih1cmwpOworICAgICAgICB0aGlzLl93b3JrZXJJZFRvV2luZG93W3dvcmtlcklkXSA9
IHdpbjsKKyAgICAgICAgd2luLmFkZEV2ZW50TGlzdGVuZXIoImJlZm9yZXVubG9hZCIsIHRoaXMu
X3dvcmtlckluc3BlY3RvckNsb3NpbmcuYmluZCh0aGlzLCB3b3JrZXJJZCksIHRydWUpOworICAg
ICAgICBXb3JrZXJBZ2VudC5jb25uZWN0VG9Xb3JrZXIod29ya2VySWQpOworICAgIH0sCiAKLVdl
Ykluc3BlY3Rvci5Xb3JrZXJNZXNzYWdlRm9yd2FyZGVyID0gZnVuY3Rpb24oKQorICAgIGNsb3Nl
V29ya2VySW5zcGVjdG9yOiBmdW5jdGlvbih3b3JrZXJJZCkKKyAgICB7CisgICAgICAgIHZhciB3
aW4gPSB0aGlzLl93b3JrZXJJZFRvV2luZG93W3dvcmtlcklkXTsKKyAgICAgICAgaWYgKHdpbikK
KyAgICAgICAgICAgIHdpbi5jbG9zZSgpOworICAgIH0sCisKKyAgICBfd29ya2VySW5zcGVjdG9y
Q2xvc2luZzogZnVuY3Rpb24od29ya2VySWQsIGV2ZW50KQorICAgIHsKKyAgICAgICAgZGVsZXRl
IHRoaXMuX3dvcmtlcklkVG9XaW5kb3dbd29ya2VySWRdOworICAgICAgICBXb3JrZXJBZ2VudC5k
aXNjb25uZWN0RnJvbVdvcmtlcih3b3JrZXJJZCk7CisgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVu
dFRvTGlzdGVuZXJzKCJ3b3JrZXItaW5zcGVjdG9yLWNsb3NlZCIsIHdvcmtlcklkKTsKKyAgICB9
Cit9CisKK1dlYkluc3BlY3Rvci5Xb3JrZXJNYW5hZ2VyLnByb3RvdHlwZS5fX3Byb3RvX18gPSBX
ZWJJbnNwZWN0b3IuT2JqZWN0LnByb3RvdHlwZTsKKworV2ViSW5zcGVjdG9yLldvcmtlck1lc3Nh
Z2VGb3J3YXJkZXIgPSBmdW5jdGlvbih3b3JrZXJNYW5hZ2VyKQogeworICAgIHRoaXMuX3dvcmtl
ck1hbmFnZXIgPSB3b3JrZXJNYW5hZ2VyOwogICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJt
ZXNzYWdlIiwgdGhpcy5fcmVjZWl2ZU1lc3NhZ2UuYmluZCh0aGlzKSwgdHJ1ZSk7Ci0gICAgdGhp
cy5fd29ya2VySWRUb1dpbmRvdyA9IHt9OwogfQogCiBXZWJJbnNwZWN0b3IuV29ya2VyTWVzc2Fn
ZUZvcndhcmRlci5wcm90b3R5cGUgPSB7CkBAIC04NCwxNyArMTI0LDEzIEBAIFdlYkluc3BlY3Rv
ci5Xb3JrZXJNZXNzYWdlRm9yd2FyZGVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIFdvcmtl
ckFnZW50LnNlbmRNZXNzYWdlVG9Xb3JrZXIod29ya2VySWQsIG1lc3NhZ2UpOwogICAgIH0sCiAK
LSAgICB3b3JrZXJDcmVhdGVkOiBmdW5jdGlvbih3b3JrZXJJZCkKKyAgICB3b3JrZXJDcmVhdGVk
OiBmdW5jdGlvbih3b3JrZXJJZCwgdXJsKQogICAgIHsKLSAgICAgICAgdmFyIHVybCA9IGxvY2F0
aW9uLmhyZWYgKyAiJndvcmtlcklkPSIgKyB3b3JrZXJJZDsKLSAgICAgICAgdXJsID0gdXJsLnJl
cGxhY2UoImRvY2tlZD10cnVlJiIsICIiKTsKLSAgICAgICAgdGhpcy5fd29ya2VySWRUb1dpbmRv
d1t3b3JrZXJJZF0gPSB3aW5kb3cub3Blbih1cmwpOworICAgICAgICB0aGlzLl93b3JrZXJNYW5h
Z2VyLl93b3JrZXJDcmVhdGVkKHdvcmtlcklkLCB1cmwpOwogICAgIH0sCiAKICAgICBkaXNwYXRj
aE1lc3NhZ2VGcm9tV29ya2VyOiBmdW5jdGlvbih3b3JrZXJJZCwgbWVzc2FnZSkKICAgICB7Ci0g
ICAgICAgIHZhciB3aW4gPSB0aGlzLl93b3JrZXJJZFRvV2luZG93W3dvcmtlcklkXTsKLSAgICAg
ICAgaWYgKHdpbikKLSAgICAgICAgICAgIHdpbi5wb3N0TWVzc2FnZShtZXNzYWdlLCAiKiIpOwor
ICAgICAgICB0aGlzLl93b3JrZXJNYW5hZ2VyLl9zZW5kTWVzc2FnZVRvV29ya2VySW5zcGVjdG9y
KHdvcmtlcklkLCBtZXNzYWdlKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dvcmtlcnNTaWRlYmFyUGFuZS5qcyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV29ya2Vyc1NpZGViYXJQYW5lLmpzCmluZGV4IGU3MGRi
NDQ5ZGI5YmYwYTcxODY1Yjc1NzcwOTdiNjVjYjdjMWNmMDQuLjNlZTBjNjExODZhYmRmMmY5YTM1
ODkwMzNhZjljOTg0ZWQzYzEyZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvV29ya2Vyc1NpZGViYXJQYW5lLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvV29ya2Vyc1NpZGViYXJQYW5lLmpzCkBAIC0zMSw3ICszMSw3IEBA
CiBXZWJJbnNwZWN0b3IuV29ya2Vyc1NpZGViYXJQYW5lID0gZnVuY3Rpb24oKQogewogICAgIFdl
Ykluc3BlY3Rvci5TaWRlYmFyUGFuZS5jYWxsKHRoaXMsIFdlYkluc3BlY3Rvci5VSVN0cmluZygi
V29ya2VycyIpKTsKLSAgICAKKwogICAgIHRoaXMuX3dvcmtlcnMgPSB7fTsKIAogICAgIHRoaXMu
X2VuYWJsZVdvcmtlcnNDaGVja2JveCA9IG5ldyBXZWJJbnNwZWN0b3IuQ2hlY2tib3goCkBAIC01
Myw3ICs1Myw3IEBAIFdlYkluc3BlY3Rvci5Xb3JrZXJzU2lkZWJhclBhbmUgPSBmdW5jdGlvbigp
CiBXZWJJbnNwZWN0b3IuV29ya2Vyc1NpZGViYXJQYW5lLnByb3RvdHlwZSA9IHsKICAgICBhZGRX
b3JrZXI6IGZ1bmN0aW9uKGlkLCB1cmwsIGlzU2hhcmVkKQogICAgIHsKLSAgICAgICAgaWYgKGlk
IGluIHRoaXMuX3dvcmtlcnMpIAorICAgICAgICBpZiAoaWQgaW4gdGhpcy5fd29ya2VycykKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgdmFyIHdvcmtlciA9IG5ldyBXZWJJbnNwZWN0b3Iu
V29ya2VyKGlkLCB1cmwsIGlzU2hhcmVkKTsKICAgICAgICAgdGhpcy5fd29ya2Vyc1tpZF0gPSB3
b3JrZXI7CkBAIC0xMDAsMyArMTAwLDc1IEBAIFdlYkluc3BlY3Rvci5Xb3JrZXIgPSBmdW5jdGlv
bihpZCwgdXJsLCBzaGFyZWQpCiAgICAgdGhpcy51cmwgPSB1cmw7CiAgICAgdGhpcy5zaGFyZWQg
PSBzaGFyZWQ7CiB9CisKKworCitXZWJJbnNwZWN0b3IuV29ya2VyTGlzdFNpZGViYXJQYW5lID0g
ZnVuY3Rpb24od29ya2VyTWFuYWdlcikKK3sKKyAgICBXZWJJbnNwZWN0b3IuU2lkZWJhclBhbmUu
Y2FsbCh0aGlzLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIldvcmtlciBpbnNwZWN0b3JzIikpOwor
CisgICAgdGhpcy5fd29ya2VyTGlzdEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJv
bCIpOworICAgIHRoaXMuX3dvcmtlckxpc3RFbGVtZW50LnRhYkluZGV4ID0gMDsKKyAgICB0aGlz
Ll93b3JrZXJMaXN0RWxlbWVudC5hZGRTdHlsZUNsYXNzKCJwcm9wZXJ0aWVzLXRyZWUiKTsKKyAg
ICB0aGlzLl93b3JrZXJMaXN0VHJlZU91dGxpbmUgPSBuZXcgVHJlZU91dGxpbmUodGhpcy5fd29y
a2VyTGlzdEVsZW1lbnQpOworICAgIHRoaXMuYm9keUVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5f
d29ya2VyTGlzdEVsZW1lbnQpOworCisgICAgdGhpcy5faWRUb1dvcmtlckl0ZW0gPSB7fTsKKyAg
ICB0aGlzLl93b3JrZXJNYW5hZ2VyID0gd29ya2VyTWFuYWdlcjsKKworICAgIHdvcmtlck1hbmFn
ZXIuYWRkRXZlbnRMaXN0ZW5lcigid29ya2VyLWFkZGVkIiwgdGhpcy5fd29ya2VyQWRkZWQsIHRo
aXMpOworICAgIHdvcmtlck1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcigid29ya2VyLXJlbW92ZWQi
LCB0aGlzLl93b3JrZXJSZW1vdmVkLCB0aGlzKTsKKyAgICB3b3JrZXJNYW5hZ2VyLmFkZEV2ZW50
TGlzdGVuZXIoIndvcmtlci1pbnNwZWN0b3ItY2xvc2VkIiwgdGhpcy5fd29ya2VySW5zcGVjdG9y
Q2xvc2VkLCB0aGlzKTsKK30KKworV2ViSW5zcGVjdG9yLldvcmtlckxpc3RTaWRlYmFyUGFuZS5w
cm90b3R5cGUgPSB7CisgICAgX3dvcmtlckFkZGVkOiBmdW5jdGlvbihldmVudCkKKyAgICB7Cisg
ICAgICAgIHRoaXMuX2FkZFdvcmtlcihldmVudC5kYXRhLndvcmtlcklkLCBldmVudC5kYXRhLnVy
bCk7CisgICAgfSwKKworICAgIF93b3JrZXJSZW1vdmVkOiBmdW5jdGlvbihldmVudCkKKyAgICB7
CisgICAgICAgIHZhciB3b3JrZXJJdGVtID0gdGhpcy5faWRUb1dvcmtlckl0ZW1bZXZlbnQuZGF0
YV07CisgICAgICAgIHdvcmtlckl0ZW0uZWxlbWVudC5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxk
KHdvcmtlckl0ZW0uZWxlbWVudCk7CisgICAgfSwKKworICAgIF93b3JrZXJJbnNwZWN0b3JDbG9z
ZWQ6IGZ1bmN0aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAgdmFyIHdvcmtlckl0ZW0gPSB0aGlz
Ll9pZFRvV29ya2VySXRlbVtldmVudC5kYXRhXTsKKyAgICAgICAgd29ya2VySXRlbS5jaGVja2Jv
eC5jaGVja2VkID0gZmFsc2U7CisgICAgfSwKKworICAgIF9hZGRXb3JrZXI6IGZ1bmN0aW9uKHdv
cmtlcklkLCB1cmwpCisgICAgeworICAgICAgICB2YXIgd29ya2VySXRlbSA9IHt9OworICAgICAg
ICB3b3JrZXJJdGVtLndvcmtlcklkID0gd29ya2VySWQ7CisgICAgICAgIHdvcmtlckl0ZW0uZWxl
bWVudCA9IG5ldyBUcmVlRWxlbWVudCh1cmwpOworICAgICAgICB0aGlzLl93b3JrZXJMaXN0VHJl
ZU91dGxpbmUuYXBwZW5kQ2hpbGQod29ya2VySXRlbS5lbGVtZW50KTsKKyAgICAgICAgd29ya2Vy
SXRlbS5lbGVtZW50LnNlbGVjdGFibGUgPSB0cnVlOworCisgICAgICAgIHdvcmtlckl0ZW0uY2hl
Y2tib3ggPSB0aGlzLl9jcmVhdGVDaGVja2JveCh3b3JrZXJJdGVtLmVsZW1lbnQpOworICAgICAg
ICB3b3JrZXJJdGVtLmNoZWNrYm94LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5fd29y
a2VySXRlbUNsaWNrZWQuYmluZCh0aGlzLCB3b3JrZXJJdGVtKSwgdHJ1ZSk7CisKKyAgICAgICAg
dGhpcy5faWRUb1dvcmtlckl0ZW1bd29ya2VySWRdID0gd29ya2VySXRlbTsKKyAgICB9LAorCisg
ICAgX2NyZWF0ZUNoZWNrYm94OiBmdW5jdGlvbih0cmVlRWxlbWVudCkKKyAgICB7CisgICAgICAg
IHZhciBjaGVja2JveCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7CisgICAgICAg
IGNoZWNrYm94LmNsYXNzTmFtZSA9ICJjaGVja2JveC1lbGVtIjsKKyAgICAgICAgY2hlY2tib3gu
dHlwZSA9ICJjaGVja2JveCI7CisgICAgICAgIHRyZWVFbGVtZW50Lmxpc3RJdGVtRWxlbWVudC5p
bnNlcnRCZWZvcmUoY2hlY2tib3gsIHRyZWVFbGVtZW50Lmxpc3RJdGVtRWxlbWVudC5maXJzdENo
aWxkKTsKKyAgICAgICAgcmV0dXJuIGNoZWNrYm94OworICAgIH0sCisKKyAgICBfd29ya2VySXRl
bUNsaWNrZWQ6IGZ1bmN0aW9uKHdvcmtlckl0ZW0sIGV2ZW50KQorICAgIHsKKyAgICAgICAgaWYg
KGV2ZW50LnRhcmdldC5jaGVja2VkKQorICAgICAgICAgICAgdGhpcy5fd29ya2VyTWFuYWdlci5v
cGVuV29ya2VySW5zcGVjdG9yKHdvcmtlckl0ZW0ud29ya2VySWQpOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICB0aGlzLl93b3JrZXJNYW5hZ2VyLmNsb3NlV29ya2VySW5zcGVjdG9yKHdvcmtl
ckl0ZW0ud29ya2VySWQpOworICAgIH0KK30KKworV2ViSW5zcGVjdG9yLldvcmtlckxpc3RTaWRl
YmFyUGFuZS5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLlNpZGViYXJQYW5lLnBy
b3RvdHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmNwcAppbmRleCAzM2FlYzRkNjJkMDc0ODdl
NmY3NDY5MDMwNzY3YTc3YWIzOTBlM2RhLi5kZWI3ODZmOWE0OTEwMzNiOTE2NWViM2YzZTY2YjI4
NmVlOTg3MDQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwCkBAIC0xMzMsNyArMTMzLDcg
QEAgdm9pZCBXb3JrZXI6Om5vdGlmeUZpbmlzaGVkKCkKICAgICBlbHNlIHsKICAgICAgICAgYm9v
bCBzaG91bGRTdGFydFBhdXNlZCA9IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFN0YXJ0
V29ya2VyQ29udGV4dChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIG1fY29udGV4dFByb3h5KTsK
ICAgICAgICAgbV9jb250ZXh0UHJveHktPnN0YXJ0V29ya2VyQ29udGV4dChtX3NjcmlwdExvYWRl
ci0+dXJsKCksIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXNlckFnZW50KG1fc2NyaXB0TG9h
ZGVyLT51cmwoKSksIG1fc2NyaXB0TG9hZGVyLT5zY3JpcHQoKSk7Ci0gICAgICAgIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZGlkU3RhcnRXb3JrZXJDb250ZXh0KHNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKSwgbV9jb250ZXh0UHJveHksIHNob3VsZFN0YXJ0UGF1c2VkKTsKKyAgICAgICAgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRTdGFydFdvcmtlckNvbnRleHQoc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpLCBtX2NvbnRleHRQcm94eSwgc2hvdWxkU3RhcnRQYXVzZWQsIG1fc2NyaXB0
TG9hZGVyLT51cmwoKSk7CiAgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c2NyaXB0
SW1wb3J0ZWQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBtX3NjcmlwdExvYWRlci0+aWRlbnRp
ZmllcigpLCBtX3NjcmlwdExvYWRlci0+c2NyaXB0KCkpOwogICAgIH0KICAgICBtX3NjcmlwdExv
YWRlciA9IG51bGxwdHI7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>95585</attachid>
            <date>2011-06-01 04:36:23 -0700</date>
            <delta_ts>2011-06-01 07:25:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-61853-20110601153621.patch</filename>
            <type>text/plain</type>
            <size>21390</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODc3OTIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzNzExNjFkMmM4MDI4ZDJh
ODhlMmIxY2ZkMTk3NWQ1M2U1ZTJjZGQ1Li4zN2YwNTVlODZlYWNkMmJjNTQxOTNhYTU2ZjhiNmY3
N2ZmYjFkODM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTQgQEAKKzIwMTEtMDYtMDEgIFl1cnkg
U2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogYWxsb3cgb3BlbmluZyBp
bnNwZWN0b3IgZm9yIGV4aXN0aW5nIHdvcmtlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTYxODUzCisKKyAgICAgICAgQWRkZWQgc2lkZWJhciBwYW5l
IHdpdGggYSBsaXN0IG9mIGFsbCB3b3JrZXJzLiBFYWNoIHdvcmtlciBoYXMgYSBjaGVjayBib3gK
KyAgICAgICAgdGhhdCBhbGxvd3Mgb3BlbmluZyBpbnNwZWN0b3IgZm9yIHRoZSB3b3JrZXIuCisK
KyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yLmpzb246CisgICAgICAgICogaW5zcGVjdG9y
L0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmRpZFN0YXJ0V29ya2VyQ29udGV4dEltcGwpOgorICAgICAgICAq
IGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkU3RhcnRXb3JrZXJDb250ZXh0KToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yV29ya2VyQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yV29ya2VyQWdlbnQ6OldvcmtlckZyb250ZW5kQ2hhbm5lbDo6V29ya2VyRnJv
bnRlbmRDaGFubmVsKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvcldvcmtlckFnZW50OjpX
b3JrZXJGcm9udGVuZENoYW5uZWw6On5Xb3JrZXJGcm9udGVuZENoYW5uZWwpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yV29ya2VyQWdlbnQ6OldvcmtlckZyb250ZW5kQ2hhbm5lbDo6Y29u
bmVjdFRvV29ya2VyQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JXb3JrZXJB
Z2VudDo6V29ya2VyRnJvbnRlbmRDaGFubmVsOjpkaXNjb25uZWN0RnJvbVdvcmtlckNvbnRleHQp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yV29ya2VyQWdlbnQ6OmNsZWFyRnJvbnRlbmQp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yV29ya2VyQWdlbnQ6OmNvbm5lY3RUb1dvcmtl
cik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JXb3JrZXJBZ2VudDo6ZGlzY29ubmVjdEZy
b21Xb3JrZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yV29ya2VyQWdlbnQ6OmRpZFN0
YXJ0V29ya2VyQ29udGV4dCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvcldvcmtlckFn
ZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanM6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsKToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZnJvbnQtZW5kL1NldHRpbmdzLmpzOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvV29y
a2VyTWFuYWdlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Xb3JrZXJNYW5hZ2VyKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5Xb3JrZXJNYW5hZ2VyLnByb3RvdHlwZS5fd29ya2VyQ3JlYXRl
ZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuV29ya2VyTWFuYWdlci5wcm90b3R5cGUuX3NlbmRN
ZXNzYWdlVG9Xb3JrZXJJbnNwZWN0b3IpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLldvcmtlck1h
bmFnZXIucHJvdG90eXBlLm9wZW5Xb3JrZXJJbnNwZWN0b3IpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLldvcmtlck1hbmFnZXIucHJvdG90eXBlLmNsb3NlV29ya2VySW5zcGVjdG9yKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5Xb3JrZXJNYW5hZ2VyLnByb3RvdHlwZS5fd29ya2VySW5zcGVjdG9y
Q2xvc2luZyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuV29ya2VyTWVzc2FnZUZvcndhcmRlcik6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuV29ya2VyTWVzc2FnZUZvcndhcmRlci5wcm90b3R5cGUu
d29ya2VyQ3JlYXRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuV29ya2VyTWVzc2FnZUZvcndh
cmRlci5wcm90b3R5cGUuZGlzcGF0Y2hNZXNzYWdlRnJvbVdvcmtlcik6CisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC9Xb3JrZXJzU2lkZWJhclBhbmUuanM6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuV29ya2Vyc1NpZGViYXJQYW5lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Xb3JrZXJz
U2lkZWJhclBhbmUucHJvdG90eXBlLmFkZFdvcmtlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
V29ya2VyTGlzdFNpZGViYXJQYW5lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Xb3JrZXJMaXN0
U2lkZWJhclBhbmUucHJvdG90eXBlLl93b3JrZXJBZGRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuV29ya2VyTGlzdFNpZGViYXJQYW5lLnByb3RvdHlwZS5fd29ya2VyUmVtb3ZlZCk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuV29ya2VyTGlzdFNpZGViYXJQYW5lLnByb3RvdHlwZS5fd29ya2Vy
SW5zcGVjdG9yQ2xvc2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Xb3JrZXJMaXN0U2lkZWJh
clBhbmUucHJvdG90eXBlLl9hZGRXb3JrZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLldvcmtl
ckxpc3RTaWRlYmFyUGFuZS5wcm90b3R5cGUuX2NyZWF0ZUNoZWNrYm94KToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5Xb3JrZXJMaXN0U2lkZWJhclBhbmUucHJvdG90eXBlLl93b3JrZXJJdGVtQ2xp
Y2tlZCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
V29ya2VyOjpub3RpZnlGaW5pc2hlZCk6CisKIDIwMTEtMDYtMDEgIEpheSBDaXZlbGxpICA8amNp
dmVsbGlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24gYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KaW5kZXggZDA4ODgxY2U2YmZlMjIw
MGY1YTlhZjBlMTkyOWViNTE4MjdjN2RjNi4uODBkNmMyN2MwNzcyYTQzNDBhMTU0ZjlmODA1Zjkx
MzBmZjJlNGQxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ci5qc29uCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgpAQCAt
MTcyNiwxMyArMTcyNiwyNiBAQAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIndvcmtl
cklkIiwgInR5cGUiOiAiaW50ZWdlciIgfSwKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJtZXNzYWdlIiwgInR5cGUiOiAib2JqZWN0IiB9CiAgICAgICAgICAgICAgICAgXQorICAgICAg
ICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAibmFtZSI6ICJjb25uZWN0
VG9Xb3JrZXIiLAorICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogIndvcmtlcklkIiwgInR5cGUiOiAiaW50ZWdlciIgfQorICAgICAg
ICAgICAgICAgIF0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAg
ICAgIm5hbWUiOiAiZGlzY29ubmVjdEZyb21Xb3JrZXIiLAorICAgICAgICAgICAgICAgICJwYXJh
bWV0ZXJzIjogWworICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIndvcmtlcklkIiwgInR5
cGUiOiAiaW50ZWdlciIgfQorICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgIH0KICAgICAg
ICAgXSwKICAgICAgICAgImV2ZW50cyI6IFsKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAibmFtZSI6ICJ3b3JrZXJDcmVhdGVkIiwKICAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6
IFsKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ3b3JrZXJJZCIsICJ0eXBlIjogImlu
dGVnZXIiIH0KKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ3b3JrZXJJZCIsICJ0eXBl
IjogImludGVnZXIiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidXJsIiwgInR5
cGUiOiAic3RyaW5nIiB9CiAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgfSwKICAgICAg
ICAgICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvcklu
c3RydW1lbnRhdGlvbi5jcHAKaW5kZXggMGNmMTlkMTU2ODU1ODJjN2FkMjgxYWJmMmE2ZGU0MDNi
M2VjMmRjMC4uMTM4OWM2ZTViNGNlOTUzODI3YmMwOTRiZGUxNTVmZTlmOTdiMjg4ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlv
bi5jcHAKQEAgLTcxNiwxMCArNzE2LDEwIEBAIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjpkaWRVc2VET01TdG9yYWdlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtCiAjZW5k
aWYKIAogI2lmIEVOQUJMRShXT1JLRVJTKQotdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OmRpZFN0YXJ0V29ya2VyQ29udGV4dEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVu
dGluZ0FnZW50cywgV29ya2VyQ29udGV4dFByb3h5KiB3b3JrZXJDb250ZXh0UHJveHkpCit2b2lk
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkU3RhcnRXb3JrZXJDb250ZXh0SW1wbChJbnN0
cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBXb3JrZXJDb250ZXh0UHJveHkq
IHdvcmtlckNvbnRleHRQcm94eSwgY29uc3QgS1VSTCYgdXJsKQogewogICAgIGlmIChJbnNwZWN0
b3JXb3JrZXJBZ2VudCogd29ya2VyQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0
b3JXb3JrZXJBZ2VudCgpKQotICAgICAgICB3b3JrZXJBZ2VudC0+ZGlkU3RhcnRXb3JrZXJDb250
ZXh0KHdvcmtlckNvbnRleHRQcm94eSk7CisgICAgICAgIHdvcmtlckFnZW50LT5kaWRTdGFydFdv
cmtlckNvbnRleHQod29ya2VyQ29udGV4dFByb3h5LCB1cmwpOwogfQogCiB2b2lkIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlV29ya2VySW1wbChJbnN0cnVtZW50aW5nQWdlbnRz
KiBpbnN0cnVtZW50aW5nQWdlbnRzLCBpbnRwdHJfdCBpZCwgY29uc3QgU3RyaW5nJiB1cmwsIGJv
b2wgaXNTaGFyZWRXb3JrZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKaW5kZXggNDQ1NzZiMGY0NWI1MDhkZjIwZWQ5M2JhOWFh
ZTRiYzExNDIxMTBkMi4uN2Y4NjA4ODY0ODdjYjQ5MjI2MzdhMzZjNjk2ZjkzZWVkMGJjMWMwMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRh
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50
YXRpb24uaApAQCAtMTYxLDcgKzE2MSw3IEBAIHB1YmxpYzoKIAogI2lmIEVOQUJMRShXT1JLRVJT
KQogICAgIHN0YXRpYyBib29sIHdpbGxTdGFydFdvcmtlckNvbnRleHQoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIFdvcmtlckNvbnRleHRQcm94eSopOwotICAgIHN0YXRpYyB2b2lkIGRpZFN0YXJ0
V29ya2VyQ29udGV4dChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgV29ya2VyQ29udGV4dFByb3h5
KiwgYm9vbCBwYXVzZWQpOworICAgIHN0YXRpYyB2b2lkIGRpZFN0YXJ0V29ya2VyQ29udGV4dChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiwgV29ya2VyQ29udGV4dFByb3h5KiwgYm9vbCBwYXVzZWQs
IGNvbnN0IEtVUkwmKTsKICAgICBzdGF0aWMgdm9pZCBkaWRDcmVhdGVXb3JrZXIoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCosIGludHB0cl90IGlkLCBjb25zdCBTdHJpbmcmIHVybCwgYm9vbCBpc1No
YXJlZFdvcmtlcik7CiAgICAgc3RhdGljIHZvaWQgZGlkRGVzdHJveVdvcmtlcihTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiwgaW50cHRyX3QgaWQpOwogI2VuZGlmCkBAIC0yODMsNyArMjgzLDcgQEAg
cHJpdmF0ZToKICNlbmRpZgogCiAjaWYgRU5BQkxFKFdPUktFUlMpCi0gICAgc3RhdGljIHZvaWQg
ZGlkU3RhcnRXb3JrZXJDb250ZXh0SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgV29ya2VyQ29u
dGV4dFByb3h5Kik7CisgICAgc3RhdGljIHZvaWQgZGlkU3RhcnRXb3JrZXJDb250ZXh0SW1wbChJ
bnN0cnVtZW50aW5nQWdlbnRzKiwgV29ya2VyQ29udGV4dFByb3h5KiwgY29uc3QgS1VSTCYpOwog
ICAgIHN0YXRpYyB2b2lkIGRpZENyZWF0ZVdvcmtlckltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyos
IGludHB0cl90IGlkLCBjb25zdCBTdHJpbmcmIHVybCwgYm9vbCBpc1NoYXJlZFdvcmtlcik7CiAg
ICAgc3RhdGljIHZvaWQgZGlkRGVzdHJveVdvcmtlckltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyos
IGludHB0cl90IGlkKTsKICNlbmRpZgpAQCAtODU2LDE0ICs4NTYsMTQgQEAgaW5saW5lIGJvb2wg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsU3RhcnRXb3JrZXJDb250ZXh0KFNjcmlwdEV4
ZWN1dGlvbkNvbnQKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWlubGluZSB2b2lkIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZGlkU3RhcnRXb3JrZXJDb250ZXh0KFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIGNvbnRleHQsIFdvcmtlckNvbnRleHRQcm94eSogcHJveHksIGJvb2wgcGF1c2VkKQor
aW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRTdGFydFdvcmtlckNvbnRl
eHQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgV29ya2VyQ29udGV4dFByb3h5KiBw
cm94eSwgYm9vbCBwYXVzZWQsIGNvbnN0IEtVUkwmIHVybCkKIHsKICNpZiBFTkFCTEUoSU5TUEVD
VE9SKQogICAgIGlmICghcGF1c2VkKQogICAgICAgICByZXR1cm47CiAgICAgRkFTVF9SRVRVUk5f
SUZfTk9fRlJPTlRFTkRTKHZvaWQoKSk7CiAgICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGlu
c3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yQ29udGV4dChjb250ZXh0
KSkKLSAgICAgICAgZGlkU3RhcnRXb3JrZXJDb250ZXh0SW1wbChpbnN0cnVtZW50aW5nQWdlbnRz
LCBwcm94eSk7CisgICAgICAgIGRpZFN0YXJ0V29ya2VyQ29udGV4dEltcGwoaW5zdHJ1bWVudGlu
Z0FnZW50cywgcHJveHksIHVybCk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvcldvcmtlckFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JXb3JrZXJBZ2VudC5jcHAKaW5kZXggOTBiNDFhNWUzYjhmZTQx
NGNkMTlkOGI0NDMxMjZjM2IyYTdmODY5My4uODllYjYzMGE4OTUwMTUyNGNlNDViZDcwOTYwNjA0
NmE1NGQwZGQxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
cldvcmtlckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
V29ya2VyQWdlbnQuY3BwCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiSW5zcGVjdG9yRnJv
bnRlbmRDaGFubmVsLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yVmFsdWVzLmgiCiAjaW5jbHVkZSAi
SW5zdHJ1bWVudGluZ0FnZW50cy5oIgorI2luY2x1ZGUgIktVUkwuaCIKICNpbmNsdWRlICJXb3Jr
ZXJDb250ZXh0UHJveHkuaCIKICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUg
PHd0Zi9SZWZQdHIuaD4KQEAgLTUwLDEzICs1MSwzMyBAQCBwdWJsaWM6CiAgICAgICAgIDogbV9m
cm9udGVuZChmcm9udGVuZCkKICAgICAgICAgLCBtX3Byb3h5KHByb3h5KQogICAgICAgICAsIG1f
aWQoc19uZXh0SWQrKykKKyAgICAgICAgLCBtX2Nvbm5lY3RlZChmYWxzZSkKICAgICB7CiAgICAg
fQotICAgIHZpcnR1YWwgfldvcmtlckZyb250ZW5kQ2hhbm5lbCgpIHsgfQorICAgIHZpcnR1YWwg
fldvcmtlckZyb250ZW5kQ2hhbm5lbCgpCisgICAgeworICAgICAgICBkaXNjb25uZWN0RnJvbVdv
cmtlckNvbnRleHQoKTsKKyAgICB9CiAKICAgICBpbnQgaWQoKSBjb25zdCB7IHJldHVybiBtX2lk
OyB9CiAgICAgV29ya2VyQ29udGV4dFByb3h5KiBwcm94eSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJv
eHk7IH0KIAorICAgIHZvaWQgY29ubmVjdFRvV29ya2VyQ29udGV4dCgpCisgICAgeworICAgICAg
ICBpZiAobV9jb25uZWN0ZWQpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG1fY29ubmVj
dGVkID0gdHJ1ZTsKKyAgICAgICAgbV9wcm94eS0+Y29ubmVjdFRvSW5zcGVjdG9yKHRoaXMpOwor
ICAgIH0KKworICAgIHZvaWQgZGlzY29ubmVjdEZyb21Xb3JrZXJDb250ZXh0KCkKKyAgICB7Cisg
ICAgICAgIGlmICghbV9jb25uZWN0ZWQpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG1f
Y29ubmVjdGVkID0gZmFsc2U7CisgICAgICAgIG1fcHJveHktPmRpc2Nvbm5lY3RGcm9tSW5zcGVj
dG9yKCk7CisgICAgfQorCiBwcml2YXRlOgogICAgIC8vIFdvcmtlckNvbnRleHRQcm94eTo6UGFn
ZUluc3BlY3RvciBpbXBsZW1lbnRhdGlvbgogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaE1lc3Nh
Z2VGcm9tV29ya2VyKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKQEAgLTczLDYgKzk0LDcgQEAgcHJp
dmF0ZToKICAgICBJbnNwZWN0b3JGcm9udGVuZCogbV9mcm9udGVuZDsKICAgICBXb3JrZXJDb250
ZXh0UHJveHkqIG1fcHJveHk7CiAgICAgaW50IG1faWQ7CisgICAgYm9vbCBtX2Nvbm5lY3RlZDsK
ICAgICBzdGF0aWMgaW50IHNfbmV4dElkOwogfTsKIApAQCAtMTA0LDYgKzEyNiwyNiBAQCB2b2lk
IEluc3BlY3RvcldvcmtlckFnZW50OjpjbGVhckZyb250ZW5kKCkKIHsKICAgICBtX2luc3BlY3Rv
ckZyb250ZW5kID0gMDsKICAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMtPnNldEluc3BlY3Rvcldv
cmtlckFnZW50KDApOworICAgIGRlbGV0ZUFsbFZhbHVlcyhtX2lkVG9DaGFubmVsKTsKKyAgICBt
X2lkVG9DaGFubmVsLmNsZWFyKCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yV29ya2VyQWdlbnQ6OmNv
bm5lY3RUb1dvcmtlcihFcnJvclN0cmluZyogZXJyb3IsIGludCB3b3JrZXJJZCkKK3sKKyAgICBX
b3JrZXJGcm9udGVuZENoYW5uZWwqIGNoYW5uZWwgPSBtX2lkVG9DaGFubmVsLmdldCh3b3JrZXJJ
ZCk7CisgICAgaWYgKGNoYW5uZWwpCisgICAgICAgIGNoYW5uZWwtPmNvbm5lY3RUb1dvcmtlckNv
bnRleHQoKTsKKyAgICBlbHNlCisgICAgICAgICplcnJvciA9ICJXb3JrZXIgaXMgZ29uZSI7Cit9
CisKK3ZvaWQgSW5zcGVjdG9yV29ya2VyQWdlbnQ6OmRpc2Nvbm5lY3RGcm9tV29ya2VyKEVycm9y
U3RyaW5nKiBlcnJvciwgaW50IHdvcmtlcklkKQoreworICAgIFdvcmtlckZyb250ZW5kQ2hhbm5l
bCogY2hhbm5lbCA9IG1faWRUb0NoYW5uZWwuZ2V0KHdvcmtlcklkKTsKKyAgICBpZiAoY2hhbm5l
bCkKKyAgICAgICAgY2hhbm5lbC0+ZGlzY29ubmVjdEZyb21Xb3JrZXJDb250ZXh0KCk7CisgICAg
ZWxzZQorICAgICAgICAqZXJyb3IgPSAiV29ya2VyIGlzIGdvbmUiOwogfQogCiB2b2lkIEluc3Bl
Y3RvcldvcmtlckFnZW50OjpzZW5kTWVzc2FnZVRvV29ya2VyKEVycm9yU3RyaW5nKiBlcnJvciwg
aW50IHdvcmtlcklkLCBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gbWVzc2FnZSkKQEAgLTEx
NSwxNCArMTU3LDEzIEBAIHZvaWQgSW5zcGVjdG9yV29ya2VyQWdlbnQ6OnNlbmRNZXNzYWdlVG9X
b3JrZXIoRXJyb3JTdHJpbmcqIGVycm9yLCBpbnQgd29ya2VySWQsCiAgICAgICAgICplcnJvciA9
ICJXb3JrZXIgaXMgZ29uZSI7CiB9CiAKLXZvaWQgSW5zcGVjdG9yV29ya2VyQWdlbnQ6OmRpZFN0
YXJ0V29ya2VyQ29udGV4dChXb3JrZXJDb250ZXh0UHJveHkqIHdvcmtlckNvbnRleHRQcm94eSkK
K3ZvaWQgSW5zcGVjdG9yV29ya2VyQWdlbnQ6OmRpZFN0YXJ0V29ya2VyQ29udGV4dChXb3JrZXJD
b250ZXh0UHJveHkqIHdvcmtlckNvbnRleHRQcm94eSwgY29uc3QgS1VSTCYgdXJsKQogewogICAg
IFdvcmtlckZyb250ZW5kQ2hhbm5lbCogY2hhbm5lbCA9IG5ldyBXb3JrZXJGcm9udGVuZENoYW5u
ZWwobV9pbnNwZWN0b3JGcm9udGVuZCwgd29ya2VyQ29udGV4dFByb3h5KTsKICAgICBtX2lkVG9D
aGFubmVsLnNldChjaGFubmVsLT5pZCgpLCBjaGFubmVsKTsKIAotICAgIHdvcmtlckNvbnRleHRQ
cm94eS0+Y29ubmVjdFRvSW5zcGVjdG9yKGNoYW5uZWwpOwotICAgIGlmIChtX2luc3BlY3RvckZy
b250ZW5kKQotICAgICAgICBtX2luc3BlY3RvckZyb250ZW5kLT53b3JrZXIoKS0+d29ya2VyQ3Jl
YXRlZChjaGFubmVsLT5pZCgpKTsKKyAgICBBU1NFUlQobV9pbnNwZWN0b3JGcm9udGVuZCk7Cisg
ICAgbV9pbnNwZWN0b3JGcm9udGVuZC0+d29ya2VyKCktPndvcmtlckNyZWF0ZWQoY2hhbm5lbC0+
aWQoKSwgdXJsLnN0cmluZygpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvcldvcmtlckFnZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yV29ya2VyQWdlbnQuaAppbmRleCA0YTM0
YjFmYmNiMDcxZDZmZjQ1YTJhYzc1MmRiMTAwN2Y5YjUwN2M1Li43ODcxYWZmNTEyM2IxYzIxNjI3
YjgyZDUzYzI0MzkyYTY3MWVmZmI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yV29ya2VyQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yV29ya2VyQWdlbnQuaApAQCAtNDAsNiArNDAsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiBjbGFzcyBJbnNwZWN0b3JGcm9udGVuZDsKIGNsYXNzIEluc3BlY3Rvck9iamVjdDsKIGNs
YXNzIEluc3RydW1lbnRpbmdBZ2VudHM7CitjbGFzcyBLVVJMOwogY2xhc3MgV29ya2VyQ29udGV4
dFByb3h5OwogCiB0eXBlZGVmIFN0cmluZyBFcnJvclN0cmluZzsKQEAgLTUzLDkgKzU0LDExIEBA
IHB1YmxpYzoKICAgICB2b2lkIGNsZWFyRnJvbnRlbmQoKTsKIAogICAgIC8vIENhbGxlZCBmcm9t
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbgotICAgIHZvaWQgZGlkU3RhcnRXb3JrZXJDb250ZXh0
KFdvcmtlckNvbnRleHRQcm94eSopOworICAgIHZvaWQgZGlkU3RhcnRXb3JrZXJDb250ZXh0KFdv
cmtlckNvbnRleHRQcm94eSosIGNvbnN0IEtVUkwmKTsKIAogICAgIC8vIENhbGxlZCBmcm9tIElu
c3BlY3RvckJhY2tlbmREaXNwYXRjaGVyCisgICAgdm9pZCBjb25uZWN0VG9Xb3JrZXIoRXJyb3JT
dHJpbmcqLCBpbnQgd29ya2VySWQpOworICAgIHZvaWQgZGlzY29ubmVjdEZyb21Xb3JrZXIoRXJy
b3JTdHJpbmcqLCBpbnQgd29ya2VySWQpOwogICAgIHZvaWQgc2VuZE1lc3NhZ2VUb1dvcmtlcihF
cnJvclN0cmluZyosIGludCB3b3JrZXJJZCwgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IG1l
c3NhZ2UpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1NjcmlwdHNQYW5lbC5qcwppbmRleCAzYWUyNTQwYTM3ZDk5YWU1NThiYzk4NTViMGVl
YmEwMjNmN2ZmYWVkLi40YTdhY2VlZjhjMGRmZTdjY2JkNDk3ZTNkOWUzYmRmNmVlNDU5MmU1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5l
bC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5l
bC5qcwpAQCAtMTA3LDYgKzEwNyw5IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwgPSBmdW5j
dGlvbigpCiAgICAgfQogCiAgICAgdGhpcy5zaWRlYmFyUGFuZXMud29ya2VycyA9IG5ldyBXZWJJ
bnNwZWN0b3IuV29ya2Vyc1NpZGViYXJQYW5lKCk7CisgICAgaWYgKFByZWZlcmVuY2VzLmNhbklu
c3BlY3RXb3JrZXJzICYmIFdlYkluc3BlY3Rvci53b3JrZXJNYW5hZ2VyKQorICAgICAgICB0aGlz
LnNpZGViYXJQYW5lcy53b3JrZXJMaXN0ID0gbmV3IFdlYkluc3BlY3Rvci5Xb3JrZXJMaXN0U2lk
ZWJhclBhbmUoV2ViSW5zcGVjdG9yLndvcmtlck1hbmFnZXIpOworCiAKICAgICBmb3IgKHZhciBw
YW5lIGluIHRoaXMuc2lkZWJhclBhbmVzKQogICAgICAgICB0aGlzLnNpZGViYXJFbGVtZW50LmFw
cGVuZENoaWxkKHRoaXMuc2lkZWJhclBhbmVzW3BhbmVdLmVsZW1lbnQpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5ncy5qcyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3MuanMKaW5kZXggNjJiZjg0YTczOTdk
ODQ3ODQxMWIxZDRlM2Q1NTEyMjgyMmMyNTc4Yi4uNjgzNzM2M2IyM2ViNjQ0MDY2NTYzOWY5YWNj
MWRkNmNlZTI3NTdjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9TZXR0aW5ncy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1NldHRpbmdzLmpzCkBAIC01MSw3ICs1MSw4IEBAIHZhciBQcmVmZXJlbmNlcyA9IHsKICAgICBo
ZWFwUHJvZmlsZXJQcmVzZW50OiBmYWxzZSwKICAgICBkZXRhaWxlZEhlYXBQcm9maWxlczogZmFs
c2UsCiAgICAgc2F2ZUFzQXZhaWxhYmxlOiBmYWxzZSwKLSAgICB1c2VMb3dlckNhc2VNZW51VGl0
bGVzT25XaW5kb3dzOiBmYWxzZQorICAgIHVzZUxvd2VyQ2FzZU1lbnVUaXRsZXNPbldpbmRvd3M6
IGZhbHNlLAorICAgIGNhbkluc3BlY3RXb3JrZXJzOiBmYWxzZSwKIH0KIAogV2ViSW5zcGVjdG9y
LlNldHRpbmdzID0gZnVuY3Rpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9Xb3JrZXJNYW5hZ2VyLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9Xb3JrZXJNYW5hZ2VyLmpzCmluZGV4IGQwYjhlNjM0MWYxM2U2NjIzMmNmNWI2
ZjExNjE3N2FmNTgzZDQ1YTEuLjQyMjBkMjdkOTZmZjM0YmI4MTUxNzNlNjM2YzViOTYyZmQ1NTAx
N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV29ya2Vy
TWFuYWdlci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dvcmtl
ck1hbmFnZXIuanMKQEAgLTMwLDYgKzMwLDggQEAKIAogV2ViSW5zcGVjdG9yLldvcmtlck1hbmFn
ZXIgPSBmdW5jdGlvbigpCiB7CisgICAgdGhpcy5fd29ya2VySWRUb1dpbmRvdyA9IHt9OworICAg
IEluc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJEb21haW5EaXNwYXRjaGVyKCJXb3JrZXIiLCBuZXcg
V2ViSW5zcGVjdG9yLldvcmtlck1lc3NhZ2VGb3J3YXJkZXIodGhpcykpOwogfQogCiBXZWJJbnNw
ZWN0b3IuV29ya2VyTWFuYWdlci5pc1dvcmtlckZyb250ZW5kID0gZnVuY3Rpb24oKQpAQCAtNDEs
MTEgKzQzLDEwIEBAIFdlYkluc3BlY3Rvci5Xb3JrZXJNYW5hZ2VyLmxvYWRlZCA9IGZ1bmN0aW9u
KCkKIHsKICAgICB2YXIgd29ya2VySWQgPSBXZWJJbnNwZWN0b3IucXVlcnlQYXJhbXNPYmplY3Rb
IndvcmtlcklkIl07CiAgICAgaWYgKCF3b3JrZXJJZCkgewotICAgICAgICBJbnNwZWN0b3JCYWNr
ZW5kLnJlZ2lzdGVyRG9tYWluRGlzcGF0Y2hlcigiV29ya2VyIiwgbmV3IFdlYkluc3BlY3Rvci5X
b3JrZXJNZXNzYWdlRm9yd2FyZGVyKCkpOworICAgICAgICBXZWJJbnNwZWN0b3Iud29ya2VyTWFu
YWdlciA9IG5ldyBXZWJJbnNwZWN0b3IuV29ya2VyTWFuYWdlcigpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCi0KICAgICBmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkKICAgICB7CiAg
ICAgICAgIHZhciBtZXNzYWdlID0gZXZlbnQuZGF0YTsKQEAgLTY1LDExICs2Niw1MCBAQCBXZWJJ
bnNwZWN0b3IuV29ya2VyTWFuYWdlci5sb2FkZWQgPSBmdW5jdGlvbigpCiAgICAgfQogfQogCitX
ZWJJbnNwZWN0b3IuV29ya2VyTWFuYWdlci5wcm90b3R5cGUgPSB7CisgICAgX3dvcmtlckNyZWF0
ZWQ6IGZ1bmN0aW9uKHdvcmtlcklkLCB1cmwpCisgICAgeworICAgICAgICB0aGlzLmRpc3BhdGNo
RXZlbnRUb0xpc3RlbmVycygid29ya2VyLWFkZGVkIiwge3dvcmtlcklkOiB3b3JrZXJJZCwgdXJs
OiB1cmx9KTsKKyAgICB9LAorCisgICAgX3NlbmRNZXNzYWdlVG9Xb3JrZXJJbnNwZWN0b3I6IGZ1
bmN0aW9uKHdvcmtlcklkLCBtZXNzYWdlKQorICAgIHsKKyAgICAgICAgdmFyIHdpbiA9IHRoaXMu
X3dvcmtlcklkVG9XaW5kb3dbd29ya2VySWRdOworICAgICAgICBpZiAod2luKQorICAgICAgICAg
ICAgd2luLnBvc3RNZXNzYWdlKG1lc3NhZ2UsICIqIik7CisgICAgfSwKKworICAgIG9wZW5Xb3Jr
ZXJJbnNwZWN0b3I6IGZ1bmN0aW9uKHdvcmtlcklkKQorICAgIHsKKyAgICAgICAgdmFyIHVybCA9
IGxvY2F0aW9uLmhyZWYgKyAiJndvcmtlcklkPSIgKyB3b3JrZXJJZDsKKyAgICAgICAgdXJsID0g
dXJsLnJlcGxhY2UoImRvY2tlZD10cnVlJiIsICIiKTsKKyAgICAgICAgdmFyIHdpbiA9IHdpbmRv
dy5vcGVuKHVybCk7CisgICAgICAgIHRoaXMuX3dvcmtlcklkVG9XaW5kb3dbd29ya2VySWRdID0g
d2luOworICAgICAgICB3aW4uYWRkRXZlbnRMaXN0ZW5lcigiYmVmb3JldW5sb2FkIiwgdGhpcy5f
d29ya2VySW5zcGVjdG9yQ2xvc2luZy5iaW5kKHRoaXMsIHdvcmtlcklkKSwgdHJ1ZSk7CisgICAg
ICAgIFdvcmtlckFnZW50LmNvbm5lY3RUb1dvcmtlcih3b3JrZXJJZCk7CisgICAgfSwKIAotV2Vi
SW5zcGVjdG9yLldvcmtlck1lc3NhZ2VGb3J3YXJkZXIgPSBmdW5jdGlvbigpCisgICAgY2xvc2VX
b3JrZXJJbnNwZWN0b3I6IGZ1bmN0aW9uKHdvcmtlcklkKQorICAgIHsKKyAgICAgICAgdmFyIHdp
biA9IHRoaXMuX3dvcmtlcklkVG9XaW5kb3dbd29ya2VySWRdOworICAgICAgICBpZiAod2luKQor
ICAgICAgICAgICAgd2luLmNsb3NlKCk7CisgICAgfSwKKworICAgIF93b3JrZXJJbnNwZWN0b3JD
bG9zaW5nOiBmdW5jdGlvbih3b3JrZXJJZCwgZXZlbnQpCisgICAgeworICAgICAgICBkZWxldGUg
dGhpcy5fd29ya2VySWRUb1dpbmRvd1t3b3JrZXJJZF07CisgICAgICAgIFdvcmtlckFnZW50LmRp
c2Nvbm5lY3RGcm9tV29ya2VyKHdvcmtlcklkKTsKKyAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50
VG9MaXN0ZW5lcnMoIndvcmtlci1pbnNwZWN0b3ItY2xvc2VkIiwgd29ya2VySWQpOworICAgIH0K
K30KKworV2ViSW5zcGVjdG9yLldvcmtlck1hbmFnZXIucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdl
Ykluc3BlY3Rvci5PYmplY3QucHJvdG90eXBlOworCitXZWJJbnNwZWN0b3IuV29ya2VyTWVzc2Fn
ZUZvcndhcmRlciA9IGZ1bmN0aW9uKHdvcmtlck1hbmFnZXIpCiB7CisgICAgdGhpcy5fd29ya2Vy
TWFuYWdlciA9IHdvcmtlck1hbmFnZXI7CiAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1l
c3NhZ2UiLCB0aGlzLl9yZWNlaXZlTWVzc2FnZS5iaW5kKHRoaXMpLCB0cnVlKTsKLSAgICB0aGlz
Ll93b3JrZXJJZFRvV2luZG93ID0ge307CiB9CiAKIFdlYkluc3BlY3Rvci5Xb3JrZXJNZXNzYWdl
Rm9yd2FyZGVyLnByb3RvdHlwZSA9IHsKQEAgLTg0LDE3ICsxMjQsMTMgQEAgV2ViSW5zcGVjdG9y
Lldvcmtlck1lc3NhZ2VGb3J3YXJkZXIucHJvdG90eXBlID0gewogICAgICAgICAgICAgV29ya2Vy
QWdlbnQuc2VuZE1lc3NhZ2VUb1dvcmtlcih3b3JrZXJJZCwgbWVzc2FnZSk7CiAgICAgfSwKIAot
ICAgIHdvcmtlckNyZWF0ZWQ6IGZ1bmN0aW9uKHdvcmtlcklkKQorICAgIHdvcmtlckNyZWF0ZWQ6
IGZ1bmN0aW9uKHdvcmtlcklkLCB1cmwpCiAgICAgewotICAgICAgICB2YXIgdXJsID0gbG9jYXRp
b24uaHJlZiArICImd29ya2VySWQ9IiArIHdvcmtlcklkOwotICAgICAgICB1cmwgPSB1cmwucmVw
bGFjZSgiZG9ja2VkPXRydWUmIiwgIiIpOwotICAgICAgICB0aGlzLl93b3JrZXJJZFRvV2luZG93
W3dvcmtlcklkXSA9IHdpbmRvdy5vcGVuKHVybCk7CisgICAgICAgIHRoaXMuX3dvcmtlck1hbmFn
ZXIuX3dvcmtlckNyZWF0ZWQod29ya2VySWQsIHVybCk7CiAgICAgfSwKIAogICAgIGRpc3BhdGNo
TWVzc2FnZUZyb21Xb3JrZXI6IGZ1bmN0aW9uKHdvcmtlcklkLCBtZXNzYWdlKQogICAgIHsKLSAg
ICAgICAgdmFyIHdpbiA9IHRoaXMuX3dvcmtlcklkVG9XaW5kb3dbd29ya2VySWRdOwotICAgICAg
ICBpZiAod2luKQotICAgICAgICAgICAgd2luLnBvc3RNZXNzYWdlKG1lc3NhZ2UsICIqIik7Cisg
ICAgICAgIHRoaXMuX3dvcmtlck1hbmFnZXIuX3NlbmRNZXNzYWdlVG9Xb3JrZXJJbnNwZWN0b3Io
d29ya2VySWQsIG1lc3NhZ2UpOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvV29ya2Vyc1NpZGViYXJQYW5lLmpzIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Xb3JrZXJzU2lkZWJhclBhbmUuanMKaW5kZXggZTcwZGI0
NDlkYjliZjBhNzE4NjViNzU3NzA5N2I2NWNiN2MxY2YwNC4uM2VlMGM2MTE4NmFiZGYyZjlhMzU4
OTAzM2FmOWM5ODRlZDNjMTJmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9Xb3JrZXJzU2lkZWJhclBhbmUuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9Xb3JrZXJzU2lkZWJhclBhbmUuanMKQEAgLTMxLDcgKzMxLDcgQEAK
IFdlYkluc3BlY3Rvci5Xb3JrZXJzU2lkZWJhclBhbmUgPSBmdW5jdGlvbigpCiB7CiAgICAgV2Vi
SW5zcGVjdG9yLlNpZGViYXJQYW5lLmNhbGwodGhpcywgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJX
b3JrZXJzIikpOwotICAgIAorCiAgICAgdGhpcy5fd29ya2VycyA9IHt9OwogCiAgICAgdGhpcy5f
ZW5hYmxlV29ya2Vyc0NoZWNrYm94ID0gbmV3IFdlYkluc3BlY3Rvci5DaGVja2JveCgKQEAgLTUz
LDcgKzUzLDcgQEAgV2ViSW5zcGVjdG9yLldvcmtlcnNTaWRlYmFyUGFuZSA9IGZ1bmN0aW9uKCkK
IFdlYkluc3BlY3Rvci5Xb3JrZXJzU2lkZWJhclBhbmUucHJvdG90eXBlID0gewogICAgIGFkZFdv
cmtlcjogZnVuY3Rpb24oaWQsIHVybCwgaXNTaGFyZWQpCiAgICAgewotICAgICAgICBpZiAoaWQg
aW4gdGhpcy5fd29ya2VycykgCisgICAgICAgIGlmIChpZCBpbiB0aGlzLl93b3JrZXJzKQogICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICB2YXIgd29ya2VyID0gbmV3IFdlYkluc3BlY3Rvci5X
b3JrZXIoaWQsIHVybCwgaXNTaGFyZWQpOwogICAgICAgICB0aGlzLl93b3JrZXJzW2lkXSA9IHdv
cmtlcjsKQEAgLTEwMCwzICsxMDAsNzUgQEAgV2ViSW5zcGVjdG9yLldvcmtlciA9IGZ1bmN0aW9u
KGlkLCB1cmwsIHNoYXJlZCkKICAgICB0aGlzLnVybCA9IHVybDsKICAgICB0aGlzLnNoYXJlZCA9
IHNoYXJlZDsKIH0KKworCisKK1dlYkluc3BlY3Rvci5Xb3JrZXJMaXN0U2lkZWJhclBhbmUgPSBm
dW5jdGlvbih3b3JrZXJNYW5hZ2VyKQoreworICAgIFdlYkluc3BlY3Rvci5TaWRlYmFyUGFuZS5j
YWxsKHRoaXMsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiV29ya2VyIGluc3BlY3RvcnMiKSk7CisK
KyAgICB0aGlzLl93b3JrZXJMaXN0RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm9s
Iik7CisgICAgdGhpcy5fd29ya2VyTGlzdEVsZW1lbnQudGFiSW5kZXggPSAwOworICAgIHRoaXMu
X3dvcmtlckxpc3RFbGVtZW50LmFkZFN0eWxlQ2xhc3MoInByb3BlcnRpZXMtdHJlZSIpOworICAg
IHRoaXMuX3dvcmtlckxpc3RUcmVlT3V0bGluZSA9IG5ldyBUcmVlT3V0bGluZSh0aGlzLl93b3Jr
ZXJMaXN0RWxlbWVudCk7CisgICAgdGhpcy5ib2R5RWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl93
b3JrZXJMaXN0RWxlbWVudCk7CisKKyAgICB0aGlzLl9pZFRvV29ya2VySXRlbSA9IHt9OworICAg
IHRoaXMuX3dvcmtlck1hbmFnZXIgPSB3b3JrZXJNYW5hZ2VyOworCisgICAgd29ya2VyTWFuYWdl
ci5hZGRFdmVudExpc3RlbmVyKCJ3b3JrZXItYWRkZWQiLCB0aGlzLl93b3JrZXJBZGRlZCwgdGhp
cyk7CisgICAgd29ya2VyTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKCJ3b3JrZXItcmVtb3ZlZCIs
IHRoaXMuX3dvcmtlclJlbW92ZWQsIHRoaXMpOworICAgIHdvcmtlck1hbmFnZXIuYWRkRXZlbnRM
aXN0ZW5lcigid29ya2VyLWluc3BlY3Rvci1jbG9zZWQiLCB0aGlzLl93b3JrZXJJbnNwZWN0b3JD
bG9zZWQsIHRoaXMpOworfQorCitXZWJJbnNwZWN0b3IuV29ya2VyTGlzdFNpZGViYXJQYW5lLnBy
b3RvdHlwZSA9IHsKKyAgICBfd29ya2VyQWRkZWQ6IGZ1bmN0aW9uKGV2ZW50KQorICAgIHsKKyAg
ICAgICAgdGhpcy5fYWRkV29ya2VyKGV2ZW50LmRhdGEud29ya2VySWQsIGV2ZW50LmRhdGEudXJs
KTsKKyAgICB9LAorCisgICAgX3dvcmtlclJlbW92ZWQ6IGZ1bmN0aW9uKGV2ZW50KQorICAgIHsK
KyAgICAgICAgdmFyIHdvcmtlckl0ZW0gPSB0aGlzLl9pZFRvV29ya2VySXRlbVtldmVudC5kYXRh
XTsKKyAgICAgICAgd29ya2VySXRlbS5lbGVtZW50LnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQo
d29ya2VySXRlbS5lbGVtZW50KTsKKyAgICB9LAorCisgICAgX3dvcmtlckluc3BlY3RvckNsb3Nl
ZDogZnVuY3Rpb24oZXZlbnQpCisgICAgeworICAgICAgICB2YXIgd29ya2VySXRlbSA9IHRoaXMu
X2lkVG9Xb3JrZXJJdGVtW2V2ZW50LmRhdGFdOworICAgICAgICB3b3JrZXJJdGVtLmNoZWNrYm94
LmNoZWNrZWQgPSBmYWxzZTsKKyAgICB9LAorCisgICAgX2FkZFdvcmtlcjogZnVuY3Rpb24od29y
a2VySWQsIHVybCkKKyAgICB7CisgICAgICAgIHZhciB3b3JrZXJJdGVtID0ge307CisgICAgICAg
IHdvcmtlckl0ZW0ud29ya2VySWQgPSB3b3JrZXJJZDsKKyAgICAgICAgd29ya2VySXRlbS5lbGVt
ZW50ID0gbmV3IFRyZWVFbGVtZW50KHVybCk7CisgICAgICAgIHRoaXMuX3dvcmtlckxpc3RUcmVl
T3V0bGluZS5hcHBlbmRDaGlsZCh3b3JrZXJJdGVtLmVsZW1lbnQpOworICAgICAgICB3b3JrZXJJ
dGVtLmVsZW1lbnQuc2VsZWN0YWJsZSA9IHRydWU7CisKKyAgICAgICAgd29ya2VySXRlbS5jaGVj
a2JveCA9IHRoaXMuX2NyZWF0ZUNoZWNrYm94KHdvcmtlckl0ZW0uZWxlbWVudCk7CisgICAgICAg
IHdvcmtlckl0ZW0uY2hlY2tib3guYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLl93b3Jr
ZXJJdGVtQ2xpY2tlZC5iaW5kKHRoaXMsIHdvcmtlckl0ZW0pLCB0cnVlKTsKKworICAgICAgICB0
aGlzLl9pZFRvV29ya2VySXRlbVt3b3JrZXJJZF0gPSB3b3JrZXJJdGVtOworICAgIH0sCisKKyAg
ICBfY3JlYXRlQ2hlY2tib3g6IGZ1bmN0aW9uKHRyZWVFbGVtZW50KQorICAgIHsKKyAgICAgICAg
dmFyIGNoZWNrYm94ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTsKKyAgICAgICAg
Y2hlY2tib3guY2xhc3NOYW1lID0gImNoZWNrYm94LWVsZW0iOworICAgICAgICBjaGVja2JveC50
eXBlID0gImNoZWNrYm94IjsKKyAgICAgICAgdHJlZUVsZW1lbnQubGlzdEl0ZW1FbGVtZW50Lmlu
c2VydEJlZm9yZShjaGVja2JveCwgdHJlZUVsZW1lbnQubGlzdEl0ZW1FbGVtZW50LmZpcnN0Q2hp
bGQpOworICAgICAgICByZXR1cm4gY2hlY2tib3g7CisgICAgfSwKKworICAgIF93b3JrZXJJdGVt
Q2xpY2tlZDogZnVuY3Rpb24od29ya2VySXRlbSwgZXZlbnQpCisgICAgeworICAgICAgICBpZiAo
ZXZlbnQudGFyZ2V0LmNoZWNrZWQpCisgICAgICAgICAgICB0aGlzLl93b3JrZXJNYW5hZ2VyLm9w
ZW5Xb3JrZXJJbnNwZWN0b3Iod29ya2VySXRlbS53b3JrZXJJZCk7CisgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgIHRoaXMuX3dvcmtlck1hbmFnZXIuY2xvc2VXb3JrZXJJbnNwZWN0b3Iod29ya2Vy
SXRlbS53b3JrZXJJZCk7CisgICAgfQorfQorCitXZWJJbnNwZWN0b3IuV29ya2VyTGlzdFNpZGVi
YXJQYW5lLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuU2lkZWJhclBhbmUucHJv
dG90eXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwCmluZGV4IDMzYWVjNGQ2MmQwNzQ4N2U2
Zjc0NjkwMzA3NjdhNzdhYjM5MGUzZGEuLmRlYjc4NmY5YTQ5MTAzM2I5MTY1ZWIzZjNlNjZiMjg2
ZWU5ODcwNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAKQEAgLTEzMyw3ICsxMzMsNyBA
QCB2b2lkIFdvcmtlcjo6bm90aWZ5RmluaXNoZWQoKQogICAgIGVsc2UgewogICAgICAgICBib29s
IHNob3VsZFN0YXJ0UGF1c2VkID0gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsU3RhcnRX
b3JrZXJDb250ZXh0KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgbV9jb250ZXh0UHJveHkpOwog
ICAgICAgICBtX2NvbnRleHRQcm94eS0+c3RhcnRXb3JrZXJDb250ZXh0KG1fc2NyaXB0TG9hZGVy
LT51cmwoKSwgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51c2VyQWdlbnQobV9zY3JpcHRMb2Fk
ZXItPnVybCgpKSwgbV9zY3JpcHRMb2FkZXItPnNjcmlwdCgpKTsKLSAgICAgICAgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjpkaWRTdGFydFdvcmtlckNvbnRleHQoc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpLCBtX2NvbnRleHRQcm94eSwgc2hvdWxkU3RhcnRQYXVzZWQpOworICAgICAgICBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFN0YXJ0V29ya2VyQ29udGV4dChzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCksIG1fY29udGV4dFByb3h5LCBzaG91bGRTdGFydFBhdXNlZCwgbV9zY3JpcHRM
b2FkZXItPnVybCgpKTsKICAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzY3JpcHRJ
bXBvcnRlZChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIG1fc2NyaXB0TG9hZGVyLT5pZGVudGlm
aWVyKCksIG1fc2NyaXB0TG9hZGVyLT5zY3JpcHQoKSk7CiAgICAgfQogICAgIG1fc2NyaXB0TG9h
ZGVyID0gbnVsbHB0cjsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>95598</attachid>
            <date>2011-06-01 07:25:36 -0700</date>
            <delta_ts>2011-06-01 07:28:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-61853-20110601182534.patch</filename>
            <type>text/plain</type>
            <size>21875</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODc3OTIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzNzExNjFkMmM4MDI4ZDJh
ODhlMmIxY2ZkMTk3NWQ1M2U1ZTJjZGQ1Li4zN2YwNTVlODZlYWNkMmJjNTQxOTNhYTU2ZjhiNmY3
N2ZmYjFkODM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTQgQEAKKzIwMTEtMDYtMDEgIFl1cnkg
U2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogYWxsb3cgb3BlbmluZyBp
bnNwZWN0b3IgZm9yIGV4aXN0aW5nIHdvcmtlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTYxODUzCisKKyAgICAgICAgQWRkZWQgc2lkZWJhciBwYW5l
IHdpdGggYSBsaXN0IG9mIGFsbCB3b3JrZXJzLiBFYWNoIHdvcmtlciBoYXMgYSBjaGVjayBib3gK
KyAgICAgICAgdGhhdCBhbGxvd3Mgb3BlbmluZyBpbnNwZWN0b3IgZm9yIHRoZSB3b3JrZXIuCisK
KyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yLmpzb246CisgICAgICAgICogaW5zcGVjdG9y
L0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmRpZFN0YXJ0V29ya2VyQ29udGV4dEltcGwpOgorICAgICAgICAq
IGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkU3RhcnRXb3JrZXJDb250ZXh0KToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yV29ya2VyQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yV29ya2VyQWdlbnQ6OldvcmtlckZyb250ZW5kQ2hhbm5lbDo6V29ya2VyRnJv
bnRlbmRDaGFubmVsKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvcldvcmtlckFnZW50OjpX
b3JrZXJGcm9udGVuZENoYW5uZWw6On5Xb3JrZXJGcm9udGVuZENoYW5uZWwpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yV29ya2VyQWdlbnQ6OldvcmtlckZyb250ZW5kQ2hhbm5lbDo6Y29u
bmVjdFRvV29ya2VyQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JXb3JrZXJB
Z2VudDo6V29ya2VyRnJvbnRlbmRDaGFubmVsOjpkaXNjb25uZWN0RnJvbVdvcmtlckNvbnRleHQp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yV29ya2VyQWdlbnQ6OmNsZWFyRnJvbnRlbmQp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yV29ya2VyQWdlbnQ6OmNvbm5lY3RUb1dvcmtl
cik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JXb3JrZXJBZ2VudDo6ZGlzY29ubmVjdEZy
b21Xb3JrZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yV29ya2VyQWdlbnQ6OmRpZFN0
YXJ0V29ya2VyQ29udGV4dCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvcldvcmtlckFn
ZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanM6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsKToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZnJvbnQtZW5kL1NldHRpbmdzLmpzOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvV29y
a2VyTWFuYWdlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Xb3JrZXJNYW5hZ2VyKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5Xb3JrZXJNYW5hZ2VyLnByb3RvdHlwZS5fd29ya2VyQ3JlYXRl
ZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuV29ya2VyTWFuYWdlci5wcm90b3R5cGUuX3NlbmRN
ZXNzYWdlVG9Xb3JrZXJJbnNwZWN0b3IpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLldvcmtlck1h
bmFnZXIucHJvdG90eXBlLm9wZW5Xb3JrZXJJbnNwZWN0b3IpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLldvcmtlck1hbmFnZXIucHJvdG90eXBlLmNsb3NlV29ya2VySW5zcGVjdG9yKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5Xb3JrZXJNYW5hZ2VyLnByb3RvdHlwZS5fd29ya2VySW5zcGVjdG9y
Q2xvc2luZyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuV29ya2VyTWVzc2FnZUZvcndhcmRlcik6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuV29ya2VyTWVzc2FnZUZvcndhcmRlci5wcm90b3R5cGUu
d29ya2VyQ3JlYXRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuV29ya2VyTWVzc2FnZUZvcndh
cmRlci5wcm90b3R5cGUuZGlzcGF0Y2hNZXNzYWdlRnJvbVdvcmtlcik6CisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC9Xb3JrZXJzU2lkZWJhclBhbmUuanM6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuV29ya2Vyc1NpZGViYXJQYW5lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Xb3JrZXJz
U2lkZWJhclBhbmUucHJvdG90eXBlLmFkZFdvcmtlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
V29ya2VyTGlzdFNpZGViYXJQYW5lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Xb3JrZXJMaXN0
U2lkZWJhclBhbmUucHJvdG90eXBlLl93b3JrZXJBZGRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuV29ya2VyTGlzdFNpZGViYXJQYW5lLnByb3RvdHlwZS5fd29ya2VyUmVtb3ZlZCk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuV29ya2VyTGlzdFNpZGViYXJQYW5lLnByb3RvdHlwZS5fd29ya2Vy
SW5zcGVjdG9yQ2xvc2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Xb3JrZXJMaXN0U2lkZWJh
clBhbmUucHJvdG90eXBlLl9hZGRXb3JrZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLldvcmtl
ckxpc3RTaWRlYmFyUGFuZS5wcm90b3R5cGUuX2NyZWF0ZUNoZWNrYm94KToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5Xb3JrZXJMaXN0U2lkZWJhclBhbmUucHJvdG90eXBlLl93b3JrZXJJdGVtQ2xp
Y2tlZCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
V29ya2VyOjpub3RpZnlGaW5pc2hlZCk6CisKIDIwMTEtMDYtMDEgIEpheSBDaXZlbGxpICA8amNp
dmVsbGlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24gYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KaW5kZXggZDA4ODgxY2U2YmZlMjIw
MGY1YTlhZjBlMTkyOWViNTE4MjdjN2RjNi4uODBkNmMyN2MwNzcyYTQzNDBhMTU0ZjlmODA1Zjkx
MzBmZjJlNGQxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ci5qc29uCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgpAQCAt
MTcyNiwxMyArMTcyNiwyNiBAQAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIndvcmtl
cklkIiwgInR5cGUiOiAiaW50ZWdlciIgfSwKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJtZXNzYWdlIiwgInR5cGUiOiAib2JqZWN0IiB9CiAgICAgICAgICAgICAgICAgXQorICAgICAg
ICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAibmFtZSI6ICJjb25uZWN0
VG9Xb3JrZXIiLAorICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogIndvcmtlcklkIiwgInR5cGUiOiAiaW50ZWdlciIgfQorICAgICAg
ICAgICAgICAgIF0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAg
ICAgIm5hbWUiOiAiZGlzY29ubmVjdEZyb21Xb3JrZXIiLAorICAgICAgICAgICAgICAgICJwYXJh
bWV0ZXJzIjogWworICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIndvcmtlcklkIiwgInR5
cGUiOiAiaW50ZWdlciIgfQorICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgIH0KICAgICAg
ICAgXSwKICAgICAgICAgImV2ZW50cyI6IFsKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAibmFtZSI6ICJ3b3JrZXJDcmVhdGVkIiwKICAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6
IFsKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ3b3JrZXJJZCIsICJ0eXBlIjogImlu
dGVnZXIiIH0KKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ3b3JrZXJJZCIsICJ0eXBl
IjogImludGVnZXIiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidXJsIiwgInR5
cGUiOiAic3RyaW5nIiB9CiAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgfSwKICAgICAg
ICAgICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvcklu
c3RydW1lbnRhdGlvbi5jcHAKaW5kZXggMGNmMTlkMTU2ODU1ODJjN2FkMjgxYWJmMmE2ZGU0MDNi
M2VjMmRjMC4uMTM4OWM2ZTViNGNlOTUzODI3YmMwOTRiZGUxNTVmZTlmOTdiMjg4ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlv
bi5jcHAKQEAgLTcxNiwxMCArNzE2LDEwIEBAIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjpkaWRVc2VET01TdG9yYWdlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtCiAjZW5k
aWYKIAogI2lmIEVOQUJMRShXT1JLRVJTKQotdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OmRpZFN0YXJ0V29ya2VyQ29udGV4dEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVu
dGluZ0FnZW50cywgV29ya2VyQ29udGV4dFByb3h5KiB3b3JrZXJDb250ZXh0UHJveHkpCit2b2lk
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkU3RhcnRXb3JrZXJDb250ZXh0SW1wbChJbnN0
cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBXb3JrZXJDb250ZXh0UHJveHkq
IHdvcmtlckNvbnRleHRQcm94eSwgY29uc3QgS1VSTCYgdXJsKQogewogICAgIGlmIChJbnNwZWN0
b3JXb3JrZXJBZ2VudCogd29ya2VyQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0
b3JXb3JrZXJBZ2VudCgpKQotICAgICAgICB3b3JrZXJBZ2VudC0+ZGlkU3RhcnRXb3JrZXJDb250
ZXh0KHdvcmtlckNvbnRleHRQcm94eSk7CisgICAgICAgIHdvcmtlckFnZW50LT5kaWRTdGFydFdv
cmtlckNvbnRleHQod29ya2VyQ29udGV4dFByb3h5LCB1cmwpOwogfQogCiB2b2lkIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlV29ya2VySW1wbChJbnN0cnVtZW50aW5nQWdlbnRz
KiBpbnN0cnVtZW50aW5nQWdlbnRzLCBpbnRwdHJfdCBpZCwgY29uc3QgU3RyaW5nJiB1cmwsIGJv
b2wgaXNTaGFyZWRXb3JrZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKaW5kZXggNDQ1NzZiMGY0NWI1MDhkZjIwZWQ5M2JhOWFh
ZTRiYzExNDIxMTBkMi4uN2Y4NjA4ODY0ODdjYjQ5MjI2MzdhMzZjNjk2ZjkzZWVkMGJjMWMwMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRh
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50
YXRpb24uaApAQCAtMTYxLDcgKzE2MSw3IEBAIHB1YmxpYzoKIAogI2lmIEVOQUJMRShXT1JLRVJT
KQogICAgIHN0YXRpYyBib29sIHdpbGxTdGFydFdvcmtlckNvbnRleHQoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIFdvcmtlckNvbnRleHRQcm94eSopOwotICAgIHN0YXRpYyB2b2lkIGRpZFN0YXJ0
V29ya2VyQ29udGV4dChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgV29ya2VyQ29udGV4dFByb3h5
KiwgYm9vbCBwYXVzZWQpOworICAgIHN0YXRpYyB2b2lkIGRpZFN0YXJ0V29ya2VyQ29udGV4dChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiwgV29ya2VyQ29udGV4dFByb3h5KiwgYm9vbCBwYXVzZWQs
IGNvbnN0IEtVUkwmKTsKICAgICBzdGF0aWMgdm9pZCBkaWRDcmVhdGVXb3JrZXIoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCosIGludHB0cl90IGlkLCBjb25zdCBTdHJpbmcmIHVybCwgYm9vbCBpc1No
YXJlZFdvcmtlcik7CiAgICAgc3RhdGljIHZvaWQgZGlkRGVzdHJveVdvcmtlcihTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiwgaW50cHRyX3QgaWQpOwogI2VuZGlmCkBAIC0yODMsNyArMjgzLDcgQEAg
cHJpdmF0ZToKICNlbmRpZgogCiAjaWYgRU5BQkxFKFdPUktFUlMpCi0gICAgc3RhdGljIHZvaWQg
ZGlkU3RhcnRXb3JrZXJDb250ZXh0SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgV29ya2VyQ29u
dGV4dFByb3h5Kik7CisgICAgc3RhdGljIHZvaWQgZGlkU3RhcnRXb3JrZXJDb250ZXh0SW1wbChJ
bnN0cnVtZW50aW5nQWdlbnRzKiwgV29ya2VyQ29udGV4dFByb3h5KiwgY29uc3QgS1VSTCYpOwog
ICAgIHN0YXRpYyB2b2lkIGRpZENyZWF0ZVdvcmtlckltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyos
IGludHB0cl90IGlkLCBjb25zdCBTdHJpbmcmIHVybCwgYm9vbCBpc1NoYXJlZFdvcmtlcik7CiAg
ICAgc3RhdGljIHZvaWQgZGlkRGVzdHJveVdvcmtlckltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyos
IGludHB0cl90IGlkKTsKICNlbmRpZgpAQCAtODU2LDE0ICs4NTYsMTQgQEAgaW5saW5lIGJvb2wg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsU3RhcnRXb3JrZXJDb250ZXh0KFNjcmlwdEV4
ZWN1dGlvbkNvbnQKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWlubGluZSB2b2lkIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZGlkU3RhcnRXb3JrZXJDb250ZXh0KFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIGNvbnRleHQsIFdvcmtlckNvbnRleHRQcm94eSogcHJveHksIGJvb2wgcGF1c2VkKQor
aW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRTdGFydFdvcmtlckNvbnRl
eHQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgV29ya2VyQ29udGV4dFByb3h5KiBw
cm94eSwgYm9vbCBwYXVzZWQsIGNvbnN0IEtVUkwmIHVybCkKIHsKICNpZiBFTkFCTEUoSU5TUEVD
VE9SKQogICAgIGlmICghcGF1c2VkKQogICAgICAgICByZXR1cm47CiAgICAgRkFTVF9SRVRVUk5f
SUZfTk9fRlJPTlRFTkRTKHZvaWQoKSk7CiAgICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGlu
c3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yQ29udGV4dChjb250ZXh0
KSkKLSAgICAgICAgZGlkU3RhcnRXb3JrZXJDb250ZXh0SW1wbChpbnN0cnVtZW50aW5nQWdlbnRz
LCBwcm94eSk7CisgICAgICAgIGRpZFN0YXJ0V29ya2VyQ29udGV4dEltcGwoaW5zdHJ1bWVudGlu
Z0FnZW50cywgcHJveHksIHVybCk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvcldvcmtlckFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JXb3JrZXJBZ2VudC5jcHAKaW5kZXggOTBiNDFhNWUzYjhmZTQx
NGNkMTlkOGI0NDMxMjZjM2IyYTdmODY5My4uODllYjYzMGE4OTUwMTUyNGNlNDViZDcwOTYwNjA0
NmE1NGQwZGQxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
cldvcmtlckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
V29ya2VyQWdlbnQuY3BwCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiSW5zcGVjdG9yRnJv
bnRlbmRDaGFubmVsLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yVmFsdWVzLmgiCiAjaW5jbHVkZSAi
SW5zdHJ1bWVudGluZ0FnZW50cy5oIgorI2luY2x1ZGUgIktVUkwuaCIKICNpbmNsdWRlICJXb3Jr
ZXJDb250ZXh0UHJveHkuaCIKICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUg
PHd0Zi9SZWZQdHIuaD4KQEAgLTUwLDEzICs1MSwzMyBAQCBwdWJsaWM6CiAgICAgICAgIDogbV9m
cm9udGVuZChmcm9udGVuZCkKICAgICAgICAgLCBtX3Byb3h5KHByb3h5KQogICAgICAgICAsIG1f
aWQoc19uZXh0SWQrKykKKyAgICAgICAgLCBtX2Nvbm5lY3RlZChmYWxzZSkKICAgICB7CiAgICAg
fQotICAgIHZpcnR1YWwgfldvcmtlckZyb250ZW5kQ2hhbm5lbCgpIHsgfQorICAgIHZpcnR1YWwg
fldvcmtlckZyb250ZW5kQ2hhbm5lbCgpCisgICAgeworICAgICAgICBkaXNjb25uZWN0RnJvbVdv
cmtlckNvbnRleHQoKTsKKyAgICB9CiAKICAgICBpbnQgaWQoKSBjb25zdCB7IHJldHVybiBtX2lk
OyB9CiAgICAgV29ya2VyQ29udGV4dFByb3h5KiBwcm94eSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJv
eHk7IH0KIAorICAgIHZvaWQgY29ubmVjdFRvV29ya2VyQ29udGV4dCgpCisgICAgeworICAgICAg
ICBpZiAobV9jb25uZWN0ZWQpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG1fY29ubmVj
dGVkID0gdHJ1ZTsKKyAgICAgICAgbV9wcm94eS0+Y29ubmVjdFRvSW5zcGVjdG9yKHRoaXMpOwor
ICAgIH0KKworICAgIHZvaWQgZGlzY29ubmVjdEZyb21Xb3JrZXJDb250ZXh0KCkKKyAgICB7Cisg
ICAgICAgIGlmICghbV9jb25uZWN0ZWQpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG1f
Y29ubmVjdGVkID0gZmFsc2U7CisgICAgICAgIG1fcHJveHktPmRpc2Nvbm5lY3RGcm9tSW5zcGVj
dG9yKCk7CisgICAgfQorCiBwcml2YXRlOgogICAgIC8vIFdvcmtlckNvbnRleHRQcm94eTo6UGFn
ZUluc3BlY3RvciBpbXBsZW1lbnRhdGlvbgogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaE1lc3Nh
Z2VGcm9tV29ya2VyKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKQEAgLTczLDYgKzk0LDcgQEAgcHJp
dmF0ZToKICAgICBJbnNwZWN0b3JGcm9udGVuZCogbV9mcm9udGVuZDsKICAgICBXb3JrZXJDb250
ZXh0UHJveHkqIG1fcHJveHk7CiAgICAgaW50IG1faWQ7CisgICAgYm9vbCBtX2Nvbm5lY3RlZDsK
ICAgICBzdGF0aWMgaW50IHNfbmV4dElkOwogfTsKIApAQCAtMTA0LDYgKzEyNiwyNiBAQCB2b2lk
IEluc3BlY3RvcldvcmtlckFnZW50OjpjbGVhckZyb250ZW5kKCkKIHsKICAgICBtX2luc3BlY3Rv
ckZyb250ZW5kID0gMDsKICAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMtPnNldEluc3BlY3Rvcldv
cmtlckFnZW50KDApOworICAgIGRlbGV0ZUFsbFZhbHVlcyhtX2lkVG9DaGFubmVsKTsKKyAgICBt
X2lkVG9DaGFubmVsLmNsZWFyKCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yV29ya2VyQWdlbnQ6OmNv
bm5lY3RUb1dvcmtlcihFcnJvclN0cmluZyogZXJyb3IsIGludCB3b3JrZXJJZCkKK3sKKyAgICBX
b3JrZXJGcm9udGVuZENoYW5uZWwqIGNoYW5uZWwgPSBtX2lkVG9DaGFubmVsLmdldCh3b3JrZXJJ
ZCk7CisgICAgaWYgKGNoYW5uZWwpCisgICAgICAgIGNoYW5uZWwtPmNvbm5lY3RUb1dvcmtlckNv
bnRleHQoKTsKKyAgICBlbHNlCisgICAgICAgICplcnJvciA9ICJXb3JrZXIgaXMgZ29uZSI7Cit9
CisKK3ZvaWQgSW5zcGVjdG9yV29ya2VyQWdlbnQ6OmRpc2Nvbm5lY3RGcm9tV29ya2VyKEVycm9y
U3RyaW5nKiBlcnJvciwgaW50IHdvcmtlcklkKQoreworICAgIFdvcmtlckZyb250ZW5kQ2hhbm5l
bCogY2hhbm5lbCA9IG1faWRUb0NoYW5uZWwuZ2V0KHdvcmtlcklkKTsKKyAgICBpZiAoY2hhbm5l
bCkKKyAgICAgICAgY2hhbm5lbC0+ZGlzY29ubmVjdEZyb21Xb3JrZXJDb250ZXh0KCk7CisgICAg
ZWxzZQorICAgICAgICAqZXJyb3IgPSAiV29ya2VyIGlzIGdvbmUiOwogfQogCiB2b2lkIEluc3Bl
Y3RvcldvcmtlckFnZW50OjpzZW5kTWVzc2FnZVRvV29ya2VyKEVycm9yU3RyaW5nKiBlcnJvciwg
aW50IHdvcmtlcklkLCBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gbWVzc2FnZSkKQEAgLTEx
NSwxNCArMTU3LDEzIEBAIHZvaWQgSW5zcGVjdG9yV29ya2VyQWdlbnQ6OnNlbmRNZXNzYWdlVG9X
b3JrZXIoRXJyb3JTdHJpbmcqIGVycm9yLCBpbnQgd29ya2VySWQsCiAgICAgICAgICplcnJvciA9
ICJXb3JrZXIgaXMgZ29uZSI7CiB9CiAKLXZvaWQgSW5zcGVjdG9yV29ya2VyQWdlbnQ6OmRpZFN0
YXJ0V29ya2VyQ29udGV4dChXb3JrZXJDb250ZXh0UHJveHkqIHdvcmtlckNvbnRleHRQcm94eSkK
K3ZvaWQgSW5zcGVjdG9yV29ya2VyQWdlbnQ6OmRpZFN0YXJ0V29ya2VyQ29udGV4dChXb3JrZXJD
b250ZXh0UHJveHkqIHdvcmtlckNvbnRleHRQcm94eSwgY29uc3QgS1VSTCYgdXJsKQogewogICAg
IFdvcmtlckZyb250ZW5kQ2hhbm5lbCogY2hhbm5lbCA9IG5ldyBXb3JrZXJGcm9udGVuZENoYW5u
ZWwobV9pbnNwZWN0b3JGcm9udGVuZCwgd29ya2VyQ29udGV4dFByb3h5KTsKICAgICBtX2lkVG9D
aGFubmVsLnNldChjaGFubmVsLT5pZCgpLCBjaGFubmVsKTsKIAotICAgIHdvcmtlckNvbnRleHRQ
cm94eS0+Y29ubmVjdFRvSW5zcGVjdG9yKGNoYW5uZWwpOwotICAgIGlmIChtX2luc3BlY3RvckZy
b250ZW5kKQotICAgICAgICBtX2luc3BlY3RvckZyb250ZW5kLT53b3JrZXIoKS0+d29ya2VyQ3Jl
YXRlZChjaGFubmVsLT5pZCgpKTsKKyAgICBBU1NFUlQobV9pbnNwZWN0b3JGcm9udGVuZCk7Cisg
ICAgbV9pbnNwZWN0b3JGcm9udGVuZC0+d29ya2VyKCktPndvcmtlckNyZWF0ZWQoY2hhbm5lbC0+
aWQoKSwgdXJsLnN0cmluZygpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvcldvcmtlckFnZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yV29ya2VyQWdlbnQuaAppbmRleCA0YTM0
YjFmYmNiMDcxZDZmZjQ1YTJhYzc1MmRiMTAwN2Y5YjUwN2M1Li43ODcxYWZmNTEyM2IxYzIxNjI3
YjgyZDUzYzI0MzkyYTY3MWVmZmI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yV29ya2VyQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yV29ya2VyQWdlbnQuaApAQCAtNDAsNiArNDAsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiBjbGFzcyBJbnNwZWN0b3JGcm9udGVuZDsKIGNsYXNzIEluc3BlY3Rvck9iamVjdDsKIGNs
YXNzIEluc3RydW1lbnRpbmdBZ2VudHM7CitjbGFzcyBLVVJMOwogY2xhc3MgV29ya2VyQ29udGV4
dFByb3h5OwogCiB0eXBlZGVmIFN0cmluZyBFcnJvclN0cmluZzsKQEAgLTUzLDkgKzU0LDExIEBA
IHB1YmxpYzoKICAgICB2b2lkIGNsZWFyRnJvbnRlbmQoKTsKIAogICAgIC8vIENhbGxlZCBmcm9t
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbgotICAgIHZvaWQgZGlkU3RhcnRXb3JrZXJDb250ZXh0
KFdvcmtlckNvbnRleHRQcm94eSopOworICAgIHZvaWQgZGlkU3RhcnRXb3JrZXJDb250ZXh0KFdv
cmtlckNvbnRleHRQcm94eSosIGNvbnN0IEtVUkwmKTsKIAogICAgIC8vIENhbGxlZCBmcm9tIElu
c3BlY3RvckJhY2tlbmREaXNwYXRjaGVyCisgICAgdm9pZCBjb25uZWN0VG9Xb3JrZXIoRXJyb3JT
dHJpbmcqLCBpbnQgd29ya2VySWQpOworICAgIHZvaWQgZGlzY29ubmVjdEZyb21Xb3JrZXIoRXJy
b3JTdHJpbmcqLCBpbnQgd29ya2VySWQpOwogICAgIHZvaWQgc2VuZE1lc3NhZ2VUb1dvcmtlcihF
cnJvclN0cmluZyosIGludCB3b3JrZXJJZCwgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IG1l
c3NhZ2UpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1NjcmlwdHNQYW5lbC5qcwppbmRleCAzYWUyNTQwYTM3ZDk5YWU1NThiYzk4NTViMGVl
YmEwMjNmN2ZmYWVkLi40YTdhY2VlZjhjMGRmZTdjY2JkNDk3ZTNkOWUzYmRmNmVlNDU5MmU1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5l
bC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5l
bC5qcwpAQCAtMTA3LDYgKzEwNyw5IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwgPSBmdW5j
dGlvbigpCiAgICAgfQogCiAgICAgdGhpcy5zaWRlYmFyUGFuZXMud29ya2VycyA9IG5ldyBXZWJJ
bnNwZWN0b3IuV29ya2Vyc1NpZGViYXJQYW5lKCk7CisgICAgaWYgKFByZWZlcmVuY2VzLmNhbklu
c3BlY3RXb3JrZXJzICYmIFdlYkluc3BlY3Rvci53b3JrZXJNYW5hZ2VyKQorICAgICAgICB0aGlz
LnNpZGViYXJQYW5lcy53b3JrZXJMaXN0ID0gbmV3IFdlYkluc3BlY3Rvci5Xb3JrZXJMaXN0U2lk
ZWJhclBhbmUoV2ViSW5zcGVjdG9yLndvcmtlck1hbmFnZXIpOworCiAKICAgICBmb3IgKHZhciBw
YW5lIGluIHRoaXMuc2lkZWJhclBhbmVzKQogICAgICAgICB0aGlzLnNpZGViYXJFbGVtZW50LmFw
cGVuZENoaWxkKHRoaXMuc2lkZWJhclBhbmVzW3BhbmVdLmVsZW1lbnQpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5ncy5qcyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3MuanMKaW5kZXggNjJiZjg0YTczOTdk
ODQ3ODQxMWIxZDRlM2Q1NTEyMjgyMmMyNTc4Yi4uNjgzNzM2M2IyM2ViNjQ0MDY2NTYzOWY5YWNj
MWRkNmNlZTI3NTdjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9TZXR0aW5ncy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1NldHRpbmdzLmpzCkBAIC01MSw3ICs1MSw4IEBAIHZhciBQcmVmZXJlbmNlcyA9IHsKICAgICBo
ZWFwUHJvZmlsZXJQcmVzZW50OiBmYWxzZSwKICAgICBkZXRhaWxlZEhlYXBQcm9maWxlczogZmFs
c2UsCiAgICAgc2F2ZUFzQXZhaWxhYmxlOiBmYWxzZSwKLSAgICB1c2VMb3dlckNhc2VNZW51VGl0
bGVzT25XaW5kb3dzOiBmYWxzZQorICAgIHVzZUxvd2VyQ2FzZU1lbnVUaXRsZXNPbldpbmRvd3M6
IGZhbHNlLAorICAgIGNhbkluc3BlY3RXb3JrZXJzOiBmYWxzZSwKIH0KIAogV2ViSW5zcGVjdG9y
LlNldHRpbmdzID0gZnVuY3Rpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9Xb3JrZXJNYW5hZ2VyLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9Xb3JrZXJNYW5hZ2VyLmpzCmluZGV4IGQwYjhlNjM0MWYxM2U2NjIzMmNmNWI2
ZjExNjE3N2FmNTgzZDQ1YTEuLjQ0NTQ4ZDdhZjhlNDk2Nzk2NDAxYTY0NzU2ZmM4ZDA2YWU1ODQ5
MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV29ya2Vy
TWFuYWdlci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dvcmtl
ck1hbmFnZXIuanMKQEAgLTMwLDYgKzMwLDggQEAKIAogV2ViSW5zcGVjdG9yLldvcmtlck1hbmFn
ZXIgPSBmdW5jdGlvbigpCiB7CisgICAgdGhpcy5fd29ya2VySWRUb1dpbmRvdyA9IHt9OworICAg
IEluc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJEb21haW5EaXNwYXRjaGVyKCJXb3JrZXIiLCBuZXcg
V2ViSW5zcGVjdG9yLldvcmtlck1lc3NhZ2VGb3J3YXJkZXIodGhpcykpOwogfQogCiBXZWJJbnNw
ZWN0b3IuV29ya2VyTWFuYWdlci5pc1dvcmtlckZyb250ZW5kID0gZnVuY3Rpb24oKQpAQCAtNDEs
MTEgKzQzLDEwIEBAIFdlYkluc3BlY3Rvci5Xb3JrZXJNYW5hZ2VyLmxvYWRlZCA9IGZ1bmN0aW9u
KCkKIHsKICAgICB2YXIgd29ya2VySWQgPSBXZWJJbnNwZWN0b3IucXVlcnlQYXJhbXNPYmplY3Rb
IndvcmtlcklkIl07CiAgICAgaWYgKCF3b3JrZXJJZCkgewotICAgICAgICBJbnNwZWN0b3JCYWNr
ZW5kLnJlZ2lzdGVyRG9tYWluRGlzcGF0Y2hlcigiV29ya2VyIiwgbmV3IFdlYkluc3BlY3Rvci5X
b3JrZXJNZXNzYWdlRm9yd2FyZGVyKCkpOworICAgICAgICBXZWJJbnNwZWN0b3Iud29ya2VyTWFu
YWdlciA9IG5ldyBXZWJJbnNwZWN0b3IuV29ya2VyTWFuYWdlcigpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCi0KICAgICBmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkKICAgICB7CiAg
ICAgICAgIHZhciBtZXNzYWdlID0gZXZlbnQuZGF0YTsKQEAgLTY1LDExICs2Niw1NiBAQCBXZWJJ
bnNwZWN0b3IuV29ya2VyTWFuYWdlci5sb2FkZWQgPSBmdW5jdGlvbigpCiAgICAgfQogfQogCitX
ZWJJbnNwZWN0b3IuV29ya2VyTWFuYWdlci5FdmVudHMgPSB7CisgICAgV29ya2VyQWRkZWQ6ICJ3
b3JrZXItYWRkZWQiLAorICAgIFdvcmtlclJlbW92ZWQ6ICJ3b3JrZXItcmVtb3ZlZCIsCisgICAg
V29ya2VySW5zcGVjdG9yQ2xvc2VkOiAid29ya2VyLWluc3BlY3Rvci1jbG9zZWQiCit9CiAKLVdl
Ykluc3BlY3Rvci5Xb3JrZXJNZXNzYWdlRm9yd2FyZGVyID0gZnVuY3Rpb24oKQorV2ViSW5zcGVj
dG9yLldvcmtlck1hbmFnZXIucHJvdG90eXBlID0geworICAgIF93b3JrZXJDcmVhdGVkOiBmdW5j
dGlvbih3b3JrZXJJZCwgdXJsKQorICAgIHsKKyAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9M
aXN0ZW5lcnMoV2ViSW5zcGVjdG9yLldvcmtlck1hbmFnZXIuRXZlbnRzLldvcmtlckFkZGVkLCB7
d29ya2VySWQ6IHdvcmtlcklkLCB1cmw6IHVybH0pOworICAgIH0sCisKKyAgICBfc2VuZE1lc3Nh
Z2VUb1dvcmtlckluc3BlY3RvcjogZnVuY3Rpb24od29ya2VySWQsIG1lc3NhZ2UpCisgICAgewor
ICAgICAgICB2YXIgd29ya2VySW5zcGVjdG9yV2luZG93ID0gdGhpcy5fd29ya2VySWRUb1dpbmRv
d1t3b3JrZXJJZF07CisgICAgICAgIGlmICh3b3JrZXJJbnNwZWN0b3JXaW5kb3cpCisgICAgICAg
ICAgICB3b3JrZXJJbnNwZWN0b3JXaW5kb3cucG9zdE1lc3NhZ2UobWVzc2FnZSwgIioiKTsKKyAg
ICB9LAorCisgICAgb3Blbldvcmtlckluc3BlY3RvcjogZnVuY3Rpb24od29ya2VySWQpCisgICAg
eworICAgICAgICB2YXIgdXJsID0gbG9jYXRpb24uaHJlZiArICImd29ya2VySWQ9IiArIHdvcmtl
cklkOworICAgICAgICB1cmwgPSB1cmwucmVwbGFjZSgiZG9ja2VkPXRydWUmIiwgIiIpOworICAg
ICAgICB2YXIgd29ya2VySW5zcGVjdG9yV2luZG93ID0gd2luZG93Lm9wZW4odXJsKTsKKyAgICAg
ICAgdGhpcy5fd29ya2VySWRUb1dpbmRvd1t3b3JrZXJJZF0gPSB3b3JrZXJJbnNwZWN0b3JXaW5k
b3c7CisgICAgICAgIHdvcmtlckluc3BlY3RvcldpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJiZWZv
cmV1bmxvYWQiLCB0aGlzLl93b3JrZXJJbnNwZWN0b3JDbG9zaW5nLmJpbmQodGhpcywgd29ya2Vy
SWQpLCB0cnVlKTsKKyAgICAgICAgV29ya2VyQWdlbnQuY29ubmVjdFRvV29ya2VyKHdvcmtlcklk
KTsKKyAgICB9LAorCisgICAgY2xvc2VXb3JrZXJJbnNwZWN0b3I6IGZ1bmN0aW9uKHdvcmtlcklk
KQorICAgIHsKKyAgICAgICAgdmFyIHdvcmtlckluc3BlY3RvcldpbmRvdyA9IHRoaXMuX3dvcmtl
cklkVG9XaW5kb3dbd29ya2VySWRdOworICAgICAgICBpZiAod29ya2VySW5zcGVjdG9yV2luZG93
KQorICAgICAgICAgICAgd29ya2VySW5zcGVjdG9yV2luZG93LmNsb3NlKCk7CisgICAgfSwKKwor
ICAgIF93b3JrZXJJbnNwZWN0b3JDbG9zaW5nOiBmdW5jdGlvbih3b3JrZXJJZCwgZXZlbnQpCisg
ICAgeworICAgICAgICBkZWxldGUgdGhpcy5fd29ya2VySWRUb1dpbmRvd1t3b3JrZXJJZF07Cisg
ICAgICAgIFdvcmtlckFnZW50LmRpc2Nvbm5lY3RGcm9tV29ya2VyKHdvcmtlcklkKTsKKyAgICAg
ICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLldvcmtlck1hbmFn
ZXIuRXZlbnRzLldvcmtlckluc3BlY3RvckNsb3NlZCwgd29ya2VySWQpOworICAgIH0KK30KKwor
V2ViSW5zcGVjdG9yLldvcmtlck1hbmFnZXIucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3Bl
Y3Rvci5PYmplY3QucHJvdG90eXBlOworCitXZWJJbnNwZWN0b3IuV29ya2VyTWVzc2FnZUZvcndh
cmRlciA9IGZ1bmN0aW9uKHdvcmtlck1hbmFnZXIpCiB7CisgICAgdGhpcy5fd29ya2VyTWFuYWdl
ciA9IHdvcmtlck1hbmFnZXI7CiAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2Ui
LCB0aGlzLl9yZWNlaXZlTWVzc2FnZS5iaW5kKHRoaXMpLCB0cnVlKTsKLSAgICB0aGlzLl93b3Jr
ZXJJZFRvV2luZG93ID0ge307CiB9CiAKIFdlYkluc3BlY3Rvci5Xb3JrZXJNZXNzYWdlRm9yd2Fy
ZGVyLnByb3RvdHlwZSA9IHsKQEAgLTg0LDE3ICsxMzAsMTMgQEAgV2ViSW5zcGVjdG9yLldvcmtl
ck1lc3NhZ2VGb3J3YXJkZXIucHJvdG90eXBlID0gewogICAgICAgICAgICAgV29ya2VyQWdlbnQu
c2VuZE1lc3NhZ2VUb1dvcmtlcih3b3JrZXJJZCwgbWVzc2FnZSk7CiAgICAgfSwKIAotICAgIHdv
cmtlckNyZWF0ZWQ6IGZ1bmN0aW9uKHdvcmtlcklkKQorICAgIHdvcmtlckNyZWF0ZWQ6IGZ1bmN0
aW9uKHdvcmtlcklkLCB1cmwpCiAgICAgewotICAgICAgICB2YXIgdXJsID0gbG9jYXRpb24uaHJl
ZiArICImd29ya2VySWQ9IiArIHdvcmtlcklkOwotICAgICAgICB1cmwgPSB1cmwucmVwbGFjZSgi
ZG9ja2VkPXRydWUmIiwgIiIpOwotICAgICAgICB0aGlzLl93b3JrZXJJZFRvV2luZG93W3dvcmtl
cklkXSA9IHdpbmRvdy5vcGVuKHVybCk7CisgICAgICAgIHRoaXMuX3dvcmtlck1hbmFnZXIuX3dv
cmtlckNyZWF0ZWQod29ya2VySWQsIHVybCk7CiAgICAgfSwKIAogICAgIGRpc3BhdGNoTWVzc2Fn
ZUZyb21Xb3JrZXI6IGZ1bmN0aW9uKHdvcmtlcklkLCBtZXNzYWdlKQogICAgIHsKLSAgICAgICAg
dmFyIHdpbiA9IHRoaXMuX3dvcmtlcklkVG9XaW5kb3dbd29ya2VySWRdOwotICAgICAgICBpZiAo
d2luKQotICAgICAgICAgICAgd2luLnBvc3RNZXNzYWdlKG1lc3NhZ2UsICIqIik7CisgICAgICAg
IHRoaXMuX3dvcmtlck1hbmFnZXIuX3NlbmRNZXNzYWdlVG9Xb3JrZXJJbnNwZWN0b3Iod29ya2Vy
SWQsIG1lc3NhZ2UpOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvV29ya2Vyc1NpZGViYXJQYW5lLmpzIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9Xb3JrZXJzU2lkZWJhclBhbmUuanMKaW5kZXggZTcwZGI0NDlkYjli
ZjBhNzE4NjViNzU3NzA5N2I2NWNiN2MxY2YwNC4uZGVlNTZhZTU3ZjdjNzFiNDBmMTcwMzZhMTU0
ZGU4ZTBiYTdhNGUyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9Xb3JrZXJzU2lkZWJhclBhbmUuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9Xb3JrZXJzU2lkZWJhclBhbmUuanMKQEAgLTMxLDcgKzMxLDcgQEAKIFdlYklu
c3BlY3Rvci5Xb3JrZXJzU2lkZWJhclBhbmUgPSBmdW5jdGlvbigpCiB7CiAgICAgV2ViSW5zcGVj
dG9yLlNpZGViYXJQYW5lLmNhbGwodGhpcywgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJXb3JrZXJz
IikpOwotICAgIAorCiAgICAgdGhpcy5fd29ya2VycyA9IHt9OwogCiAgICAgdGhpcy5fZW5hYmxl
V29ya2Vyc0NoZWNrYm94ID0gbmV3IFdlYkluc3BlY3Rvci5DaGVja2JveCgKQEAgLTUzLDcgKzUz
LDcgQEAgV2ViSW5zcGVjdG9yLldvcmtlcnNTaWRlYmFyUGFuZSA9IGZ1bmN0aW9uKCkKIFdlYklu
c3BlY3Rvci5Xb3JrZXJzU2lkZWJhclBhbmUucHJvdG90eXBlID0gewogICAgIGFkZFdvcmtlcjog
ZnVuY3Rpb24oaWQsIHVybCwgaXNTaGFyZWQpCiAgICAgewotICAgICAgICBpZiAoaWQgaW4gdGhp
cy5fd29ya2VycykgCisgICAgICAgIGlmIChpZCBpbiB0aGlzLl93b3JrZXJzKQogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB2YXIgd29ya2VyID0gbmV3IFdlYkluc3BlY3Rvci5Xb3JrZXIo
aWQsIHVybCwgaXNTaGFyZWQpOwogICAgICAgICB0aGlzLl93b3JrZXJzW2lkXSA9IHdvcmtlcjsK
QEAgLTEwMCwzICsxMDAsNzUgQEAgV2ViSW5zcGVjdG9yLldvcmtlciA9IGZ1bmN0aW9uKGlkLCB1
cmwsIHNoYXJlZCkKICAgICB0aGlzLnVybCA9IHVybDsKICAgICB0aGlzLnNoYXJlZCA9IHNoYXJl
ZDsKIH0KKworCisKK1dlYkluc3BlY3Rvci5Xb3JrZXJMaXN0U2lkZWJhclBhbmUgPSBmdW5jdGlv
bih3b3JrZXJNYW5hZ2VyKQoreworICAgIFdlYkluc3BlY3Rvci5TaWRlYmFyUGFuZS5jYWxsKHRo
aXMsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiV29ya2VyIGluc3BlY3RvcnMiKSk7CisKKyAgICB0
aGlzLl93b3JrZXJMaXN0RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm9sIik7Cisg
ICAgdGhpcy5fd29ya2VyTGlzdEVsZW1lbnQudGFiSW5kZXggPSAwOworICAgIHRoaXMuX3dvcmtl
ckxpc3RFbGVtZW50LmFkZFN0eWxlQ2xhc3MoInByb3BlcnRpZXMtdHJlZSIpOworICAgIHRoaXMu
X3dvcmtlckxpc3RUcmVlT3V0bGluZSA9IG5ldyBUcmVlT3V0bGluZSh0aGlzLl93b3JrZXJMaXN0
RWxlbWVudCk7CisgICAgdGhpcy5ib2R5RWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl93b3JrZXJM
aXN0RWxlbWVudCk7CisKKyAgICB0aGlzLl9pZFRvV29ya2VySXRlbSA9IHt9OworICAgIHRoaXMu
X3dvcmtlck1hbmFnZXIgPSB3b3JrZXJNYW5hZ2VyOworCisgICAgd29ya2VyTWFuYWdlci5hZGRF
dmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Xb3JrZXJNYW5hZ2VyLkV2ZW50cy5Xb3JrZXJBZGRl
ZCwgdGhpcy5fd29ya2VyQWRkZWQsIHRoaXMpOworICAgIHdvcmtlck1hbmFnZXIuYWRkRXZlbnRM
aXN0ZW5lcihXZWJJbnNwZWN0b3IuV29ya2VyTWFuYWdlci5FdmVudHMuV29ya2VyUmVtb3ZlZCwg
dGhpcy5fd29ya2VyUmVtb3ZlZCwgdGhpcyk7CisgICAgd29ya2VyTWFuYWdlci5hZGRFdmVudExp
c3RlbmVyKFdlYkluc3BlY3Rvci5Xb3JrZXJNYW5hZ2VyLkV2ZW50cy5Xb3JrZXJJbnNwZWN0b3JD
bG9zZWQsIHRoaXMuX3dvcmtlckluc3BlY3RvckNsb3NlZCwgdGhpcyk7Cit9CisKK1dlYkluc3Bl
Y3Rvci5Xb3JrZXJMaXN0U2lkZWJhclBhbmUucHJvdG90eXBlID0geworICAgIF93b3JrZXJBZGRl
ZDogZnVuY3Rpb24oZXZlbnQpCisgICAgeworICAgICAgICB0aGlzLl9hZGRXb3JrZXIoZXZlbnQu
ZGF0YS53b3JrZXJJZCwgZXZlbnQuZGF0YS51cmwpOworICAgIH0sCisKKyAgICBfd29ya2VyUmVt
b3ZlZDogZnVuY3Rpb24oZXZlbnQpCisgICAgeworICAgICAgICB2YXIgd29ya2VySXRlbSA9IHRo
aXMuX2lkVG9Xb3JrZXJJdGVtW2V2ZW50LmRhdGFdOworICAgICAgICB3b3JrZXJJdGVtLmVsZW1l
bnQucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZCh3b3JrZXJJdGVtLmVsZW1lbnQpOworICAgIH0s
CisKKyAgICBfd29ya2VySW5zcGVjdG9yQ2xvc2VkOiBmdW5jdGlvbihldmVudCkKKyAgICB7Cisg
ICAgICAgIHZhciB3b3JrZXJJdGVtID0gdGhpcy5faWRUb1dvcmtlckl0ZW1bZXZlbnQuZGF0YV07
CisgICAgICAgIHdvcmtlckl0ZW0uY2hlY2tib3guY2hlY2tlZCA9IGZhbHNlOworICAgIH0sCisK
KyAgICBfYWRkV29ya2VyOiBmdW5jdGlvbih3b3JrZXJJZCwgdXJsKQorICAgIHsKKyAgICAgICAg
dmFyIHdvcmtlckl0ZW0gPSB7fTsKKyAgICAgICAgd29ya2VySXRlbS53b3JrZXJJZCA9IHdvcmtl
cklkOworICAgICAgICB3b3JrZXJJdGVtLmVsZW1lbnQgPSBuZXcgVHJlZUVsZW1lbnQodXJsKTsK
KyAgICAgICAgdGhpcy5fd29ya2VyTGlzdFRyZWVPdXRsaW5lLmFwcGVuZENoaWxkKHdvcmtlckl0
ZW0uZWxlbWVudCk7CisgICAgICAgIHdvcmtlckl0ZW0uZWxlbWVudC5zZWxlY3RhYmxlID0gdHJ1
ZTsKKworICAgICAgICB3b3JrZXJJdGVtLmNoZWNrYm94ID0gdGhpcy5fY3JlYXRlQ2hlY2tib3go
d29ya2VySXRlbS5lbGVtZW50KTsKKyAgICAgICAgd29ya2VySXRlbS5jaGVja2JveC5hZGRFdmVu
dExpc3RlbmVyKCJjbGljayIsIHRoaXMuX3dvcmtlckl0ZW1DbGlja2VkLmJpbmQodGhpcywgd29y
a2VySXRlbSksIHRydWUpOworCisgICAgICAgIHRoaXMuX2lkVG9Xb3JrZXJJdGVtW3dvcmtlcklk
XSA9IHdvcmtlckl0ZW07CisgICAgfSwKKworICAgIF9jcmVhdGVDaGVja2JveDogZnVuY3Rpb24o
dHJlZUVsZW1lbnQpCisgICAgeworICAgICAgICB2YXIgY2hlY2tib3ggPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJpbnB1dCIpOworICAgICAgICBjaGVja2JveC5jbGFzc05hbWUgPSAiY2hlY2ti
b3gtZWxlbSI7CisgICAgICAgIGNoZWNrYm94LnR5cGUgPSAiY2hlY2tib3giOworICAgICAgICB0
cmVlRWxlbWVudC5saXN0SXRlbUVsZW1lbnQuaW5zZXJ0QmVmb3JlKGNoZWNrYm94LCB0cmVlRWxl
bWVudC5saXN0SXRlbUVsZW1lbnQuZmlyc3RDaGlsZCk7CisgICAgICAgIHJldHVybiBjaGVja2Jv
eDsKKyAgICB9LAorCisgICAgX3dvcmtlckl0ZW1DbGlja2VkOiBmdW5jdGlvbih3b3JrZXJJdGVt
LCBldmVudCkKKyAgICB7CisgICAgICAgIGlmIChldmVudC50YXJnZXQuY2hlY2tlZCkKKyAgICAg
ICAgICAgIHRoaXMuX3dvcmtlck1hbmFnZXIub3Blbldvcmtlckluc3BlY3Rvcih3b3JrZXJJdGVt
LndvcmtlcklkKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGhpcy5fd29ya2VyTWFuYWdl
ci5jbG9zZVdvcmtlckluc3BlY3Rvcih3b3JrZXJJdGVtLndvcmtlcklkKTsKKyAgICB9Cit9CisK
K1dlYkluc3BlY3Rvci5Xb3JrZXJMaXN0U2lkZWJhclBhbmUucHJvdG90eXBlLl9fcHJvdG9fXyA9
IFdlYkluc3BlY3Rvci5TaWRlYmFyUGFuZS5wcm90b3R5cGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ci5jcHAKaW5kZXggMzNhZWM0ZDYyZDA3NDg3ZTZmNzQ2OTAzMDc2N2E3N2FiMzkwZTNkYS4uZGVi
Nzg2ZjlhNDkxMDMzYjkxNjVlYjNmM2U2NmIyODZlZTk4NzA0NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyLmNwcApAQCAtMTMzLDcgKzEzMyw3IEBAIHZvaWQgV29ya2VyOjpub3RpZnlGaW5pc2hl
ZCgpCiAgICAgZWxzZSB7CiAgICAgICAgIGJvb2wgc2hvdWxkU3RhcnRQYXVzZWQgPSBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OndpbGxTdGFydFdvcmtlckNvbnRleHQoc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpLCBtX2NvbnRleHRQcm94eSk7CiAgICAgICAgIG1fY29udGV4dFByb3h5LT5zdGFy
dFdvcmtlckNvbnRleHQobV9zY3JpcHRMb2FkZXItPnVybCgpLCBzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCktPnVzZXJBZ2VudChtX3NjcmlwdExvYWRlci0+dXJsKCkpLCBtX3NjcmlwdExvYWRlci0+
c2NyaXB0KCkpOwotICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFN0YXJ0V29y
a2VyQ29udGV4dChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIG1fY29udGV4dFByb3h5LCBzaG91
bGRTdGFydFBhdXNlZCk7CisgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkU3Rh
cnRXb3JrZXJDb250ZXh0KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgbV9jb250ZXh0UHJveHks
IHNob3VsZFN0YXJ0UGF1c2VkLCBtX3NjcmlwdExvYWRlci0+dXJsKCkpOwogICAgICAgICBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OnNjcmlwdEltcG9ydGVkKHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSwgbV9zY3JpcHRMb2FkZXItPmlkZW50aWZpZXIoKSwgbV9zY3JpcHRMb2FkZXItPnNjcmlw
dCgpKTsKICAgICB9CiAgICAgbV9zY3JpcHRMb2FkZXIgPSBudWxscHRyOwo=
</data>
<flag name="review"
          id="89121"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>