<?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>174861</bug_id>
          
          <creation_ts>2017-07-26 05:09:02 -0700</creation_ts>
          <short_desc>WebDriver: fix return value of close window command</short_desc>
          <delta_ts>2017-08-16 04:39:45 -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>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bburg</cc>
    
    <cc>buildbot</cc>
    
    <cc>joepeck</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1332324</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-07-26 05:09:02 -0700</bug_when>
    <thetext>10.2 Close Window
https://w3c.github.io/webdriver/webdriver-spec.html#close-window

Return the result of running the remote end steps for the Get Window Handles command.

We are currently returning null. We should also try to close the session if there aren&apos;t more browsing contexts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1332325</commentid>
    <comment_count>1</comment_count>
      <attachid>316445</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-07-26 05:20:03 -0700</bug_when>
    <thetext>Created attachment 316445
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1332326</commentid>
    <comment_count>2</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-07-26 05:21:25 -0700</bug_when>
    <thetext>Attachment 316445 did not pass style-queue:


ERROR: Source/WebDriver/Session.h:110:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebDriver/Session.h:111:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebDriver/Session.h:112:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebDriver/Session.cpp:60:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebDriver/Session.cpp:308:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebDriver/Session.cpp:336:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 6 in 9 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1332473</commentid>
    <comment_count>3</comment_count>
      <attachid>316445</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2017-07-26 15:19:57 -0700</bug_when>
    <thetext>Comment on attachment 316445
Patch

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

Absent a good justification, I don&apos;t want to add a redundant command. The web service parts look good.

&gt; Source/WebDriver/Session.cpp:308
&gt; +void Session::continueGetWindowHandles(const InspectorObject&amp; result, Function&lt;void (CommandResult&amp;&amp;)&gt;&amp;&amp; completionHandler)

Nit: I prefer &quot;fetchWindowHandles&quot; or just &quot;getWindowHandles&quot;.

&gt; Source/WebKit/UIProcess/Automation/Automation.json:250
&gt; +            &quot;returns&quot;: [

I don&apos;t like this. It&apos;s redundant with another command. Can you just compose the two Automation commands in the service implementation? That&apos;s what safaridriver does.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1332572</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-07-26 22:51:05 -0700</bug_when>
    <thetext>(In reply to Brian Burg from comment #3)
&gt; Comment on attachment 316445 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=316445&amp;action=review
&gt; 
&gt; Absent a good justification, I don&apos;t want to add a redundant command. The
&gt; web service parts look good.
&gt; 
&gt; &gt; Source/WebDriver/Session.cpp:308
&gt; &gt; +void Session::continueGetWindowHandles(const InspectorObject&amp; result, Function&lt;void (CommandResult&amp;&amp;)&gt;&amp;&amp; completionHandler)
&gt; 
&gt; Nit: I prefer &quot;fetchWindowHandles&quot; or just &quot;getWindowHandles&quot;.

There&apos;s already getWindowHandles, this is what we call when we get the response of getWindowHandles.

&gt; &gt; Source/WebKit/UIProcess/Automation/Automation.json:250
&gt; &gt; +            &quot;returns&quot;: [
&gt; 
&gt; I don&apos;t like this. It&apos;s redundant with another command. Can you just compose
&gt; the two Automation commands in the service implementation? That&apos;s what
&gt; safaridriver does.

Yes, I just thought it was more convenient, and it simplifies the implementation in the driver.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1332930</commentid>
    <comment_count>5</comment_count>
      <attachid>316630</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-07-28 02:46:50 -0700</bug_when>
    <thetext>Created attachment 316630
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1332931</commentid>
    <comment_count>6</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-07-28 02:48:47 -0700</bug_when>
    <thetext>Attachment 316630 did not pass style-queue:


ERROR: Source/WebDriver/Session.h:110:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebDriver/Session.h:111:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebDriver/Session.cpp:60:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebDriver/Session.cpp:308:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 4 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1335035</commentid>
    <comment_count>7</comment_count>
      <attachid>316630</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2017-08-03 17:06:51 -0700</bug_when>
    <thetext>Comment on attachment 316630
Patch

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

r=me with naming change

&gt; Source/WebDriver/ChangeLog:24
&gt; +        (WebDriver::Session::closeWindow): Call closeTopLevelBrowsingContext() passing the current toplvel browsing context.

Nit: toplvel

&gt; Source/WebDriver/Session.cpp:60
&gt; +void Session::closeNextToplevelBrowsingContext(const String&amp; toplevelBrowsingContext, Function&lt;void (CommandResult&amp;&amp;)&gt;&amp;&amp; completionHandler)

Shouldn&apos;t this entry point be closeAllToplevelBrowsingContexts? It closes more than just the next one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339141</commentid>
    <comment_count>8</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-08-16 04:38:33 -0700</bug_when>
    <thetext>Committed r220794: &lt;http://trac.webkit.org/changeset/220794&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339142</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-08-16 04:39:45 -0700</bug_when>
    <thetext>&lt;rdar://problem/33916648&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>316445</attachid>
            <date>2017-07-26 05:20:03 -0700</date>
            <delta_ts>2017-07-28 02:46:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wd-close-window.diff</filename>
            <type>text/plain</type>
            <size>18740</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkRyaXZl
ci9DaGFuZ2VMb2cKaW5kZXggMmNkMjgwODQ3ZDEuLjdiY2M3YmZhZDk2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViRHJpdmVyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViRHJpdmVyL0NoYW5nZUxv
ZwpAQCAtMSw1ICsxLDQyIEBACiAyMDE3LTA3LTI2ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNn
YXJjaWFAaWdhbGlhLmNvbT4KIAorICAgICAgICBXZWJEcml2ZXI6IGZpeCByZXR1cm4gdmFsdWUg
b2YgY2xvc2Ugd2luZG93IGNvbW1hbmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE3NDg2MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFdlIGFyZSBjdXJyZW50bHkgcmV0dXJuaW5nIG51bGwsIGJ1dCB3ZSBz
aG91bGQgcmV0dXJuIHRoZSBsaXN0IG9mIHdpbmRvdyBoYW5kbGVzLCBhbmQgdHJ5IHRvIGNsb3Nl
IHRoZSBzZXNzaW9uCisgICAgICAgIGlmIHRoZXJlIGFyZW4ndCBtb3JlIHdpbmRvdyBoYW5kbGVz
LgorCisgICAgICAgIDEwLjIgQ2xvc2UgV2luZG93CisgICAgICAgIGh0dHBzOi8vdzNjLmdpdGh1
Yi5pby93ZWJkcml2ZXIvd2ViZHJpdmVyLXNwZWMuaHRtbCNjbG9zZS13aW5kb3cKKworICAgICAg
ICAzLiBJZiB0aGVyZSBhcmUgbm8gbW9yZSBvcGVuIHRvcC1sZXZlbCBicm93c2luZyBjb250ZXh0
cywgdGhlbiB0cnkgdG8gY2xvc2UgdGhlIHNlc3Npb24uCisgICAgICAgIDQuIFJldHVybiB0aGUg
cmVzdWx0IG9mIHJ1bm5pbmcgdGhlIHJlbW90ZSBlbmQgc3RlcHMgZm9yIHRoZSBHZXQgV2luZG93
IEhhbmRsZXMgY29tbWFuZC4KKworICAgICAgICAqIFNlc3Npb24uY3BwOgorICAgICAgICAoV2Vi
RHJpdmVyOjpTZXNzaW9uOjpjbG9zZU5leHRUb3BsZXZlbEJyb3dzaW5nQ29udGV4dCk6IEhlbHBl
ciBmdW5jdGlvbiB0byBjbG9zZSB0aGUgZ2l2ZW4gdG9wbGV2ZWwgYnJvd3NpbmcKKyAgICAgICAg
Y29udGV4dCBhbmQgdGhlIG5leHQgb25lIGlmIHRoZXJlIGFyZSBtb3JlLgorICAgICAgICAoV2Vi
RHJpdmVyOjpTZXNzaW9uOjpjbG9zZSk6IENhbGwgY2xvc2VOZXh0VG9wbGV2ZWxCcm93c2luZ0Nv
bnRleHQoKSB0byBkZWxldGUgYWxsIHRvcGxldmVsIGJyb3dzaW5nIGNvbnRleHRzIG9mCisgICAg
ICAgIHRoZSBzZXNzaW9uLgorICAgICAgICAoV2ViRHJpdmVyOjpTZXNzaW9uOjpjb250aW51ZUdl
dFdpbmRvd0hhbmRsZXMpOiBIZWxwZXIgdG8gcHJvY2VzcyB0aGUgcmVzdWx0IG9mIGdldFdpbmRv
d0hhbmRsZXMoKSBub3cgdXNlZCBieQorICAgICAgICBjbG9zZVRvcExldmVsQnJvd3NpbmdDb250
ZXh0KCkgdG9vLgorICAgICAgICAoV2ViRHJpdmVyOjpTZXNzaW9uOjpjbG9zZVRvcExldmVsQnJv
d3NpbmdDb250ZXh0KTogQ2xvc2UgdGhlIGdpdmVuIHRvcGxldmVsIGJyb3dzaW5nIGNvbnRleHQu
CisgICAgICAgIChXZWJEcml2ZXI6OlNlc3Npb246OmNsb3NlV2luZG93KTogQ2FsbCBjbG9zZVRv
cExldmVsQnJvd3NpbmdDb250ZXh0KCkgcGFzc2luZyB0aGUgY3VycmVudCB0b3BsdmVsIGJyb3dz
aW5nCisgICAgICAgIGNvbnRleHQuCisgICAgICAgIChXZWJEcml2ZXI6OlNlc3Npb246OmdldFdp
bmRvd0hhbmRsZXMpOiBVc2UgY29udGludWVHZXRXaW5kb3dIYW5kbGVzKCkuCisgICAgICAgICog
U2Vzc2lvbi5oOgorICAgICAgICAqIFNlc3Npb25Ib3N0LmNwcDoKKyAgICAgICAgKFdlYkRyaXZl
cjo6U2Vzc2lvbkhvc3Q6Omluc3BlY3RvckRpc2Nvbm5lY3RlZCk6IENvbXBsZXRlIHRoZSBjbG9z
ZSBjb21tYW5kIHdpdGggYW4gZW1wdHkgbGlzdCBvZiB3aW5kb3cKKyAgICAgICAgaGFuZGxlcywg
c2luY2UgdGhlIGJyb3dzZXIgaGFzIGFscmVhZHkgYmVlbiBjbG9zZWQuCisgICAgICAgICogV2Vi
RHJpdmVyU2VydmljZS5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNlcnZpY2U6
OnJ1bik6IERpc2Nvbm5lY3QgdGhlIHNlcnZlciB3aGVuIG1haW4gbG9vcCBxdWl0cy4KKyAgICAg
ICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVyU2VydmljZTo6ZGVsZXRlU2Vzc2lvbik6IERvIG5vdCBm
YWlsIGlmIHRoZSBnaXZlbiBzZXNzaW9uIGlzIG5vdCBhY3RpdmUuCisgICAgICAgIChXZWJEcml2
ZXI6OldlYkRyaXZlclNlcnZpY2U6OmNsb3NlV2luZG93KTogUmVtb3ZlIHRoZSBzZXNzaW9uIGlm
IHRoZSBjbG9zZWQgd2luZG93IHdhcyB0aGUgbGFzdCBvbmUuCisgICAgICAgICogV2ViRHJpdmVy
U2VydmljZS5oOiBSZW1vdmUgdW51c2VkIHF1aXQoKSBtZXRob2QuCisKKzIwMTctMDctMjYgIENh
cmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCiAgICAgICAgIFVucmV2
aWV3ZWQuIEZpeCBHVEsgZGlzdGNoZWNrLgogCiAgICAgICAgIEVuc3VyZSBXZWJEcml2ZXIgZGVy
aXZlZCBzb3VyY2VzIGRpcmVjdG9yeSBpcyBjcmVhdGVkLCBXZWJLaXRGUy5jbWFrZSBpcyB1c2Vs
ZXNzIGZvciB0aGlzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcCBi
L1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbi5jcHAKaW5kZXggYjMzNWMxZDBmNGEuLjMxMzA5YzE0
Mjk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJEcml2ZXIvU2Vzc2lvbi5jcHAKQEAgLTU3LDYgKzU3LDI2IEBAIGNvbnN0IENhcGFiaWxp
dGllcyYgU2Vzc2lvbjo6Y2FwYWJpbGl0aWVzKCkgY29uc3QKICAgICByZXR1cm4gbV9ob3N0LT5j
YXBhYmlsaXRpZXMoKTsKIH0KIAordm9pZCBTZXNzaW9uOjpjbG9zZU5leHRUb3BsZXZlbEJyb3dz
aW5nQ29udGV4dChjb25zdCBTdHJpbmcmIHRvcGxldmVsQnJvd3NpbmdDb250ZXh0LCBGdW5jdGlv
bjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGNs
b3NlVG9wTGV2ZWxCcm93c2luZ0NvbnRleHQodG9wbGV2ZWxCcm93c2luZ0NvbnRleHQsIFt0aGlz
LCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcildKENvbW1hbmRSZXN1bHQmJiByZXN1bHQpIG11dGFibGUg
eworICAgICAgICBpZiAocmVzdWx0LmlzRXJyb3IoKSkgeworICAgICAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoV1RGTW92ZShyZXN1bHQpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorICAgICAgICBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+IGhhbmRsZXM7CisgICAgICAgIGlmIChy
ZXN1bHQucmVzdWx0KCktPmFzQXJyYXkoaGFuZGxlcykgJiYgaGFuZGxlcy0+bGVuZ3RoKCkpIHsK
KyAgICAgICAgICAgIGF1dG8gaGFuZGxlVmFsdWUgPSBoYW5kbGVzLT5nZXQoMCk7CisgICAgICAg
ICAgICBTdHJpbmcgaGFuZGxlOworICAgICAgICAgICAgaWYgKGhhbmRsZVZhbHVlLT5hc1N0cmlu
ZyhoYW5kbGUpKSB7CisgICAgICAgICAgICAgICAgY2xvc2VOZXh0VG9wbGV2ZWxCcm93c2luZ0Nv
bnRleHQoaGFuZGxlLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKENvbW1hbmRSZXN1bHQ6OnN1Y2Nlc3MoKSk7CisgICAgfSk7Cit9CisKIHZvaWQgU2Vz
c2lvbjo6Y2xvc2UoRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKIHsKICAgICBpZiAoIW1fdG9wbGV2ZWxCcm93c2luZ0NvbnRleHQpIHsKQEAgLTY0
LDE2ICs4NCw4IEBAIHZvaWQgU2Vzc2lvbjo6Y2xvc2UoRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJl
c3VsdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAot
ICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHBhcmFtZXRlcnMgPSBJbnNwZWN0b3JPYmplY3Q6
OmNyZWF0ZSgpOwotICAgIHBhcmFtZXRlcnMtPnNldFN0cmluZyhBU0NJSUxpdGVyYWwoImhhbmRs
ZSIpLCBtX3RvcGxldmVsQnJvd3NpbmdDb250ZXh0LnZhbHVlKCkpOwotICAgIG1faG9zdC0+c2Vu
ZENvbW1hbmRUb0JhY2tlbmQoQVNDSUlMaXRlcmFsKCJjbG9zZUJyb3dzaW5nQ29udGV4dCIpLCBX
VEZNb3ZlKHBhcmFtZXRlcnMpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMp
LCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShTZXNzaW9u
SG9zdDo6Q29tbWFuZFJlc3BvbnNlJiYgcmVzcG9uc2UpIHsKLSAgICAgICAgaWYgKHJlc3BvbnNl
LmlzRXJyb3IpIHsKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6
OmZhaWwoV1RGTW92ZShyZXNwb25zZS5yZXNwb25zZU9iamVjdCkpKTsKLSAgICAgICAgICAgIHJl
dHVybjsKLSAgICAgICAgfQotICAgICAgICBzd2l0Y2hUb1RvcExldmVsQnJvd3NpbmdDb250ZXh0
KHN0ZDo6bnVsbG9wdCk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6
OnN1Y2Nlc3MoKSk7Ci0gICAgfSk7CisgICAgYXV0byB0b3BsZXZlbEJyb3dzaW5nQ29udGV4dCA9
IHN0ZDo6ZXhjaGFuZ2UobV90b3BsZXZlbEJyb3dzaW5nQ29udGV4dCwgc3RkOjpudWxsb3B0KTsK
KyAgICBjbG9zZU5leHRUb3BsZXZlbEJyb3dzaW5nQ29udGV4dCh0b3BsZXZlbEJyb3dzaW5nQ29u
dGV4dC52YWx1ZSgpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKIHZvaWQgU2Vz
c2lvbjo6c2V0VGltZW91dHMoY29uc3QgVGltZW91dHMmIHRpbWVvdXRzLCBGdW5jdGlvbjx2b2lk
IChDb21tYW5kUmVzdWx0JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtMjkzLDYgKzMwNSw0
NyBAQCB2b2lkIFNlc3Npb246OmdldFdpbmRvd0hhbmRsZShGdW5jdGlvbjx2b2lkIChDb21tYW5k
UmVzdWx0JiYpPiYmIGNvbXBsZXRpb25IYW5kbAogICAgIH0pOwogfQogCit2b2lkIFNlc3Npb246
OmNvbnRpbnVlR2V0V2luZG93SGFuZGxlcyhjb25zdCBJbnNwZWN0b3JPYmplY3QmIHJlc3VsdCwg
RnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sK
KyAgICBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+IGJyb3dzaW5nQ29udGV4dEFycmF5OworICAgIGlm
ICghcmVzdWx0LmdldEFycmF5KEFTQ0lJTGl0ZXJhbCgiY29udGV4dHMiKSwgYnJvd3NpbmdDb250
ZXh0QXJyYXkpKSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZh
aWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpVbmtub3duRXJyb3IpKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4gd2luZG93SGFuZGxlcyA9
IEluc3BlY3RvckFycmF5OjpjcmVhdGUoKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
YnJvd3NpbmdDb250ZXh0QXJyYXktPmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgUmVmUHRyPElu
c3BlY3RvclZhbHVlPiBicm93c2luZ0NvbnRleHRWYWx1ZSA9IGJyb3dzaW5nQ29udGV4dEFycmF5
LT5nZXQoaSk7CisgICAgICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGJyb3dzaW5nQ29udGV4
dDsKKyAgICAgICAgaWYgKCFicm93c2luZ0NvbnRleHRWYWx1ZS0+YXNPYmplY3QoYnJvd3NpbmdD
b250ZXh0KSkgeworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6
ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OlVua25vd25FcnJvcikpOworICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nIGhhbmRsZTsKKyAgICAgICAg
aWYgKCFicm93c2luZ0NvbnRleHQtPmdldFN0cmluZyhBU0NJSUxpdGVyYWwoImhhbmRsZSIpLCBo
YW5kbGUpKSB7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0Ojpm
YWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6VW5rbm93bkVycm9yKSk7CisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICB3aW5kb3dIYW5kbGVzLT5wdXNoU3RyaW5n
KGhhbmRsZSk7CisgICAgfQorICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OnN1
Y2Nlc3MoV1RGTW92ZSh3aW5kb3dIYW5kbGVzKSkpOworfQorCit2b2lkIFNlc3Npb246OmNsb3Nl
VG9wTGV2ZWxCcm93c2luZ0NvbnRleHQoY29uc3QgU3RyaW5nJiB0b3BsZXZlbEJyb3dzaW5nQ29u
dGV4dCwgRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKK3sKKyAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBwYXJhbWV0ZXJzID0gSW5zcGVjdG9y
T2JqZWN0OjpjcmVhdGUoKTsKKyAgICBwYXJhbWV0ZXJzLT5zZXRTdHJpbmcoQVNDSUlMaXRlcmFs
KCJoYW5kbGUiKSwgdG9wbGV2ZWxCcm93c2luZ0NvbnRleHQpOworICAgIG1faG9zdC0+c2VuZENv
bW1hbmRUb0JhY2tlbmQoQVNDSUlMaXRlcmFsKCJjbG9zZUJyb3dzaW5nQ29udGV4dCIpLCBXVEZN
b3ZlKHBhcmFtZXRlcnMpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBj
b21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShTZXNzaW9uSG9z
dDo6Q29tbWFuZFJlc3BvbnNlJiYgcmVzcG9uc2UpIG11dGFibGUgeworICAgICAgICBpZiAocmVz
cG9uc2UuaXNFcnJvciB8fCAhcmVzcG9uc2UucmVzcG9uc2VPYmplY3QpIHsKKyAgICAgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoV1RGTW92ZShyZXNwb25zZS5y
ZXNwb25zZU9iamVjdCkpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAg
ICBjb250aW51ZUdldFdpbmRvd0hhbmRsZXMoKnJlc3BvbnNlLnJlc3BvbnNlT2JqZWN0LCBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgfSk7Cit9CisKIHZvaWQgU2Vzc2lvbjo6Y2xv
c2VXaW5kb3coRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKIHsKICAgICBpZiAoIW1fdG9wbGV2ZWxCcm93c2luZ0NvbnRleHQpIHsKQEAgLTMwMCw3
ICszNTMsOCBAQCB2b2lkIFNlc3Npb246OmNsb3NlV2luZG93KEZ1bmN0aW9uPHZvaWQgKENvbW1h
bmRSZXN1bHQmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKLSAgICBjbG9zZShXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgYXV0byB0b3Bs
ZXZlbEJyb3dzaW5nQ29udGV4dCA9IHN0ZDo6ZXhjaGFuZ2UobV90b3BsZXZlbEJyb3dzaW5nQ29u
dGV4dCwgc3RkOjpudWxsb3B0KTsKKyAgICBjbG9zZVRvcExldmVsQnJvd3NpbmdDb250ZXh0KHRv
cGxldmVsQnJvd3NpbmdDb250ZXh0LnZhbHVlKCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
KTsKIH0KIAogdm9pZCBTZXNzaW9uOjpzd2l0Y2hUb1dpbmRvdyhjb25zdCBTdHJpbmcmIHdpbmRv
d0hhbmRsZSwgRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKQEAgLTMyNCwzNCArMzc4LDEyIEBAIHZvaWQgU2Vzc2lvbjo6Z2V0V2luZG93SGFuZGxl
cyhGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmIGNvbXBsZXRpb25IYW5kCiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKLSAgICBtX2hvc3QtPnNlbmRDb21tYW5kVG9CYWNrZW5kKEFT
Q0lJTGl0ZXJhbCgiZ2V0QnJvd3NpbmdDb250ZXh0cyIpLCBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0
ZSgpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjb21wbGV0aW9uSGFu
ZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShTZXNzaW9uSG9zdDo6Q29tbWFuZFJl
c3BvbnNlJiYgcmVzcG9uc2UpIHsKKyAgICBtX2hvc3QtPnNlbmRDb21tYW5kVG9CYWNrZW5kKEFT
Q0lJTGl0ZXJhbCgiZ2V0QnJvd3NpbmdDb250ZXh0cyIpLCBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0
ZSgpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjb21wbGV0aW9uSGFu
ZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShTZXNzaW9uSG9zdDo6Q29tbWFuZFJl
c3BvbnNlJiYgcmVzcG9uc2UpIG11dGFibGUgewogICAgICAgICBpZiAocmVzcG9uc2UuaXNFcnJv
ciB8fCAhcmVzcG9uc2UucmVzcG9uc2VPYmplY3QpIHsKICAgICAgICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoV1RGTW92ZShyZXNwb25zZS5yZXNwb25zZU9iamVj
dCkpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAgICBSZWZQdHI8SW5z
cGVjdG9yQXJyYXk+IGJyb3dzaW5nQ29udGV4dEFycmF5OwotICAgICAgICBpZiAoIXJlc3BvbnNl
LnJlc3BvbnNlT2JqZWN0LT5nZXRBcnJheShBU0NJSUxpdGVyYWwoImNvbnRleHRzIiksIGJyb3dz
aW5nQ29udGV4dEFycmF5KSkgewotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFu
ZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OlVua25vd25FcnJvcikpOwot
ICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIFJlZlB0cjxJbnNwZWN0b3JB
cnJheT4gd2luZG93SGFuZGxlcyA9IEluc3BlY3RvckFycmF5OjpjcmVhdGUoKTsKLSAgICAgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGJyb3dzaW5nQ29udGV4dEFycmF5LT5sZW5ndGgoKTsg
KytpKSB7Ci0gICAgICAgICAgICBSZWZQdHI8SW5zcGVjdG9yVmFsdWU+IGJyb3dzaW5nQ29udGV4
dFZhbHVlID0gYnJvd3NpbmdDb250ZXh0QXJyYXktPmdldChpKTsKLSAgICAgICAgICAgIFJlZlB0
cjxJbnNwZWN0b3JPYmplY3Q+IGJyb3dzaW5nQ29udGV4dDsKLSAgICAgICAgICAgIGlmICghYnJv
d3NpbmdDb250ZXh0VmFsdWUtPmFzT2JqZWN0KGJyb3dzaW5nQ29udGV4dCkpIHsKLSAgICAgICAg
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1
bHQ6OkVycm9yQ29kZTo6VW5rbm93bkVycm9yKSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBTdHJpbmcgaGFuZGxlOwotICAgICAgICAgICAg
aWYgKCFicm93c2luZ0NvbnRleHQtPmdldFN0cmluZyhBU0NJSUxpdGVyYWwoImhhbmRsZSIpLCBo
YW5kbGUpKSB7Ci0gICAgICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3Vs
dDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OlVua25vd25FcnJvcikpOwotICAgICAg
ICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgd2luZG93SGFu
ZGxlcy0+cHVzaFN0cmluZyhoYW5kbGUpOwotICAgICAgICB9Ci0gICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKENvbW1hbmRSZXN1bHQ6OnN1Y2Nlc3MoV1RGTW92ZSh3aW5kb3dIYW5kbGVzKSkpOwor
ICAgICAgICBjb250aW51ZUdldFdpbmRvd0hhbmRsZXMoKnJlc3BvbnNlLnJlc3BvbnNlT2JqZWN0
LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbi5oIGIvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmgK
aW5kZXggMTQzZTllYTQ1MDkuLjI0MGM0MjU1MjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJp
dmVyL1Nlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24uaApAQCAtMTA3LDYg
KzEwNyw5IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHN3aXRjaFRvVG9wTGV2ZWxCcm93c2luZ0Nv
bnRleHQoc3RkOjpvcHRpb25hbDxTdHJpbmc+KTsKICAgICB2b2lkIHN3aXRjaFRvQnJvd3NpbmdD
b250ZXh0KHN0ZDo6b3B0aW9uYWw8U3RyaW5nPik7CisgICAgdm9pZCBjbG9zZVRvcExldmVsQnJv
d3NpbmdDb250ZXh0KGNvbnN0IFN0cmluZyYgdG9wbGV2ZWxCcm93c2luZ0NvbnRleHQsIEZ1bmN0
aW9uPHZvaWQgKENvbW1hbmRSZXN1bHQmJik+JiYpOworICAgIHZvaWQgY2xvc2VOZXh0VG9wbGV2
ZWxCcm93c2luZ0NvbnRleHQoY29uc3QgU3RyaW5nJiB0b3BsZXZlbEJyb3dzaW5nQ29udGV4dCwg
RnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJik7CisgICAgdm9pZCBjb250aW51ZUdl
dFdpbmRvd0hhbmRsZXMoY29uc3QgSW5zcGVjdG9yOjpJbnNwZWN0b3JPYmplY3QmLCBGdW5jdGlv
bjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmKTsKIAogICAgIFJlZlB0cjxJbnNwZWN0b3I6Oklu
c3BlY3Rvck9iamVjdD4gY3JlYXRlRWxlbWVudChSZWZQdHI8SW5zcGVjdG9yOjpJbnNwZWN0b3JW
YWx1ZT4mJik7CiAgICAgUmVmUHRyPEluc3BlY3Rvcjo6SW5zcGVjdG9yT2JqZWN0PiBjcmVhdGVF
bGVtZW50KGNvbnN0IFN0cmluZyYgZWxlbWVudElEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJE
cml2ZXIvU2Vzc2lvbkhvc3QuY3BwIGIvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uSG9zdC5jcHAK
aW5kZXggMTI0NzhiOWQwZDUuLmQyMDVlYzRmYzk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJp
dmVyL1Nlc3Npb25Ib3N0LmNwcAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb25Ib3N0LmNw
cApAQCAtNDEsNyArNDEsOSBAQCB2b2lkIFNlc3Npb25Ib3N0OjppbnNwZWN0b3JEaXNjb25uZWN0
ZWQoKQogICAgIC8vIENsb3NpbmcgdGhlIGJyb3dzaW5nIGNvbnRleHQgbWFkZSB0aGUgYnJvd3Nl
ciBxdWl0LgogICAgIGF1dG8gcmVzcG9uc2VIYW5kbGVyID0gbV9jb21tYW5kUmVxdWVzdHMudGFr
ZShtX2Nsb3NlTWVzc2FnZUlEKTsKICAgICBtX2Nsb3NlTWVzc2FnZUlEID0gMDsKLSAgICByZXNw
b25zZUhhbmRsZXIoeyB9KTsKKyAgICBhdXRvIHJlc3VsdCA9IEluc3BlY3Rvck9iamVjdDo6Y3Jl
YXRlKCk7CisgICAgcmVzdWx0LT5zZXRBcnJheShBU0NJSUxpdGVyYWwoImNvbnRleHRzIiksIElu
c3BlY3RvckFycmF5OjpjcmVhdGUoKSk7CisgICAgcmVzcG9uc2VIYW5kbGVyKHsgV1RGTW92ZShy
ZXN1bHQpLCBmYWxzZSB9KTsKIH0KIAogbG9uZyBTZXNzaW9uSG9zdDo6c2VuZENvbW1hbmRUb0Jh
Y2tlbmQoY29uc3QgU3RyaW5nJiBjb21tYW5kLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiYmIHBh
cmFtZXRlcnMsIEZ1bmN0aW9uPHZvaWQgKENvbW1hbmRSZXNwb25zZSYmKT4mJiByZXNwb25zZUhh
bmRsZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuY3Bw
IGIvU291cmNlL1dlYkRyaXZlci9XZWJEcml2ZXJTZXJ2aWNlLmNwcAppbmRleCBlYzEwMTNjYjlk
My4uNDJjNGU3MGJiYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvV2ViRHJpdmVyU2Vy
dmljZS5jcHAKKysrIGIvU291cmNlL1dlYkRyaXZlci9XZWJEcml2ZXJTZXJ2aWNlLmNwcApAQCAt
OTUsMTMgKzk1LDkgQEAgaW50IFdlYkRyaXZlclNlcnZpY2U6OnJ1bihpbnQgYXJnYywgY2hhcioq
IGFyZ3YpCiAKICAgICBSdW5Mb29wOjpydW4oKTsKIAotICAgIHJldHVybiBFWElUX1NVQ0NFU1M7
Ci19Ci0KLXZvaWQgV2ViRHJpdmVyU2VydmljZTo6cXVpdCgpCi17CiAgICAgbV9zZXJ2ZXIuZGlz
Y29ubmVjdCgpOwotICAgIFJ1bkxvb3A6Om1haW4oKS5zdG9wKCk7CisKKyAgICByZXR1cm4gRVhJ
VF9TVUNDRVNTOwogfQogCiBjb25zdCBXZWJEcml2ZXJTZXJ2aWNlOjpDb21tYW5kIFdlYkRyaXZl
clNlcnZpY2U6OnNfY29tbWFuZHNbXSA9IHsKQEAgLTM1MSwxNCArMzQ3LDE1IEBAIHZvaWQgV2Vi
RHJpdmVyU2VydmljZTo6ZGVsZXRlU2Vzc2lvbihSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiYmIHBh
cmFtZXRlcnMsIEZ1bmN0CiAKICAgICBhdXRvIHNlc3Npb24gPSBtX3Nlc3Npb25zLnRha2Uoc2Vz
c2lvbklEKTsKICAgICBpZiAoIXNlc3Npb24pIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
Q29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRTZXNz
aW9uSUQpKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6c3VjY2Vz
cygpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChtX2FjdGl2ZVNlc3Npb24g
PT0gc2Vzc2lvbi5nZXQoKSkKLSAgICAgICAgbV9hY3RpdmVTZXNzaW9uID0gbnVsbHB0cjsKLQot
ICAgIHNlc3Npb24tPmNsb3NlKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBzZXNz
aW9uLT5jbG9zZShbdGhpcywgc2Vzc2lvbiwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKV0oQ29tbWFuZFJlc3VsdCYmIHJlc3VsdCkgbXV0YWJsZSB7CisgICAg
ICAgIGlmIChtX2FjdGl2ZVNlc3Npb24gPT0gc2Vzc2lvbi5nZXQoKSkKKyAgICAgICAgICAgIG1f
YWN0aXZlU2Vzc2lvbiA9IG51bGxwdHI7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1v
dmUocmVzdWx0KSk7CisgICAgfSk7CiB9CiAKIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6c2V0VGlt
ZW91dHMoUmVmUHRyPEluc3BlY3Rvck9iamVjdD4mJiBwYXJhbWV0ZXJzLCBGdW5jdGlvbjx2b2lk
IChDb21tYW5kUmVzdWx0JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtNTcwLDggKzU2Nywy
NCBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OmNsb3NlV2luZG93KFJlZlB0cjxJbnNwZWN0b3JP
YmplY3Q+JiYgcGFyYW1ldGVycywgRnVuY3RpbwogewogICAgIC8vIMKnMTAuMiBDbG9zZSBXaW5k
b3cuCiAgICAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmRyaXZlci8jY2xvc2Utd2luZG93
Ci0gICAgaWYgKGF1dG8gc2Vzc2lvbiA9IGZpbmRTZXNzaW9uT3JDb21wbGV0ZVdpdGhFcnJvcigq
cGFyYW1ldGVycywgY29tcGxldGlvbkhhbmRsZXIpKQotICAgICAgICBzZXNzaW9uLT5jbG9zZVdp
bmRvdyhXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgYXV0byBzZXNzaW9uID0gZmlu
ZFNlc3Npb25PckNvbXBsZXRlV2l0aEVycm9yKCpwYXJhbWV0ZXJzLCBjb21wbGV0aW9uSGFuZGxl
cik7CisgICAgaWYgKCFzZXNzaW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBzZXNzaW9uLT5j
bG9zZVdpbmRvdyhbdGhpcywgc2Vzc2lvbiwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKV0oQ29tbWFuZFJlc3VsdCYmIHJlc3VsdCkgbXV0YWJsZSB7CisgICAg
ICAgIGlmIChyZXN1bHQuaXNFcnJvcigpKSB7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihXVEZNb3ZlKHJlc3VsdCkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAg
ICAgICAgUmVmUHRyPEluc3BlY3RvckFycmF5PiBoYW5kbGVzOworICAgICAgICBpZiAocmVzdWx0
LnJlc3VsdCgpLT5hc0FycmF5KGhhbmRsZXMpICYmICFoYW5kbGVzLT5sZW5ndGgoKSkgeworICAg
ICAgICAgICAgbV9zZXNzaW9ucy5yZW1vdmUoc2Vzc2lvbi0+aWQoKSk7CisgICAgICAgICAgICBp
ZiAobV9hY3RpdmVTZXNzaW9uID09IHNlc3Npb24uZ2V0KCkpCisgICAgICAgICAgICAgICAgbV9h
Y3RpdmVTZXNzaW9uID0gbnVsbHB0cjsKKyAgICAgICAgfQorICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihXVEZNb3ZlKHJlc3VsdCkpOworICAgIH0pOwogfQogCiB2b2lkIFdlYkRyaXZlclNlcnZp
Y2U6OnN3aXRjaFRvV2luZG93KFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+JiYgcGFyYW1ldGVycywg
RnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvV2ViRHJpdmVyU2VydmljZS5oIGIvU291cmNlL1dl
YkRyaXZlci9XZWJEcml2ZXJTZXJ2aWNlLmgKaW5kZXggNmI4YjYxZDc4ZGYuLjNmNTk0ODMwMjE1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuaAorKysgYi9T
b3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuaApAQCAtNDgsNyArNDgsNiBAQCBwdWJs
aWM6CiAgICAgfldlYkRyaXZlclNlcnZpY2UoKSA9IGRlZmF1bHQ7CiAKICAgICBpbnQgcnVuKGlu
dCBhcmdjLCBjaGFyKiogYXJndik7Ci0gICAgdm9pZCBxdWl0KCk7CiAKIHByaXZhdGU6CiAgICAg
ZW51bSBjbGFzcyBIVFRQTWV0aG9kIHsgR2V0LCBQb3N0LCBEZWxldGUgfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXgg
Y2RjMmVjZmQ4OTguLmQ0Nzc0NjI3NzczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE5IEBACiAyMDE3
LTA3LTI2ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAorICAg
ICAgICBXZWJEcml2ZXI6IGZpeCByZXR1cm4gdmFsdWUgb2YgY2xvc2Ugd2luZG93IGNvbW1hbmQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NDg2MQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENoYW5nZSBj
bG9zZUJyb3dzaW5nQ29udGV4dCgpIHRvIHJldHVybiB0aGUgbGlzdCBvZiB3aW5kb3cgaGFuZGxl
cy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BdXRvbWF0aW9uL0F1dG9tYXRpb24uanNvbjoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpjbG9zZUJyb3dzaW5nQ29udGV4
dCk6CisgICAgICAgICogVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24u
aDoKKworMjAxNy0wNy0yNiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5j
b20+CisKICAgICAgICAgVW5yZXZpZXdlZC4gVXBkYXRlIE9wdGlvbnNHVEsuY21ha2UgYW5kIE5F
V1MgZm9yIDIuMTcuNSByZWxlYXNlLgogCiAgICAgICAgICogZ3RrL05FV1M6IEFkZCByZWxlYXNl
IG5vdGVzIGZvciAyLjE3LjUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
dXRvbWF0aW9uL0F1dG9tYXRpb24uanNvbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9t
YXRpb24vQXV0b21hdGlvbi5qc29uCmluZGV4IDBmMjU5NjEyOGM2Li5lYmMzMWIwMTA1MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9BdXRvbWF0aW9uLmpz
b24KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9BdXRvbWF0aW9uLmpz
b24KQEAgLTI0Niw2ICsyNDYsOSBAQAogICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRyeSB0
byBjbG9zZSB0aGUgc3BlY2lmaWVkIGJyb3dzaW5nIGNvbnRleHQuIFRoaXMgY2FuIHRyaWdnZXIg
YW4gdW5sb2FkIHByb21wdCBhbmQgdGhlcmVhZnRlciBzdWNjZWVkIG9yIGZhaWwuIiwKICAgICAg
ICAgICAgICJwYXJhbWV0ZXJzIjogWwogICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaGFuZGxl
IiwgIiRyZWYiOiAiQnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgImRlc2NyaXB0aW9uIjogIlRoZSBo
YW5kbGUgZm9yIHRoZSBicm93c2luZyBjb250ZXh0IHRoYXQgc2hvdWxkIGJlIGNsb3NlZC4iIH0K
KyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAicmV0dXJucyI6IFsKKyAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogImNvbnRleHRzIiwgInR5cGUiOiAiYXJyYXkiLCAiaXRlbXMiOiB7ICIkcmVm
IjogIkJyb3dzaW5nQ29udGV4dCIgfSwgImRlc2NyaXB0aW9uIjogIkFsbCBrbm93biBicm93c2lu
ZyBjb250ZXh0cyBhdmFpbGFibGUgdG8gdGhlIHNlc3Npb24uIiB9CiAgICAgICAgICAgICBdCiAg
ICAgICAgIH0sCiAgICAgICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHAKaW5kZXggZWYyNjVhODkx
NTcuLjM0NGJkMGM5ZTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRv
bWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcApAQCAtMjY4LDcgKzI2OCw3
IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OmNyZWF0ZUJyb3dzaW5nQ29udGV4dChJbnNw
ZWN0b3I6OkVycm9yU3RyaW5nJiBlcnJvclN0CiAgICAgbV9hY3RpdmVCcm93c2luZ0NvbnRleHRI
YW5kbGUgPSAqaGFuZGxlID0gaGFuZGxlRm9yV2ViUGFnZVByb3h5KCpwYWdlKTsKIH0KIAotdm9p
ZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6Y2xvc2VCcm93c2luZ0NvbnRleHQoSW5zcGVjdG9yOjpF
cnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgaGFuZGxlKQordm9pZCBXZWJB
dXRvbWF0aW9uU2Vzc2lvbjo6Y2xvc2VCcm93c2luZ0NvbnRleHQoSW5zcGVjdG9yOjpFcnJvclN0
cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgaGFuZGxlLCBSZWZQdHI8SW5zcGVjdG9y
OjpQcm90b2NvbDo6QXJyYXk8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6QnJvd3Np
bmdDb250ZXh0Pj4mIGNvbnRleHRzKQogewogICAgIFdlYlBhZ2VQcm94eSogcGFnZSA9IHdlYlBh
Z2VQcm94eUZvckhhbmRsZShoYW5kbGUpOwogICAgIGlmICghcGFnZSkKQEAgLTI3OCw2ICsyNzgs
MTAgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6Y2xvc2VCcm93c2luZ0NvbnRleHQoSW5z
cGVjdG9yOjpFcnJvclN0cmluZyYgZXJyb3JTdHIKICAgICAgICAgbV9hY3RpdmVCcm93c2luZ0Nv
bnRleHRIYW5kbGUgPSBlbXB0eVN0cmluZygpOwogCiAgICAgcGFnZS0+Y2xvc2VQYWdlKGZhbHNl
KTsKKworICAgIC8vIMKnMTAuMiBDbG9zZSBXaW5kb3cuIFN0ZXAgNTogUmV0dXJuIHRoZSByZXN1
bHQgb2YgcnVubmluZyB0aGUgcmVtb3RlIGVuZCBzdGVwcyBmb3IgdGhlIEdldCBXaW5kb3cgSGFu
ZGxlcyBjb21tYW5kLgorICAgIC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJkcml2ZXIvI2Ns
b3NlLXdpbmRvdworICAgIGdldEJyb3dzaW5nQ29udGV4dHMoZXJyb3JTdHJpbmcsIGNvbnRleHRz
KTsKIH0KIAogdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6c3dpdGNoVG9Ccm93c2luZ0NvbnRl
eHQoSW5zcGVjdG9yOjpFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgYnJv
d3NpbmdDb250ZXh0SGFuZGxlLCBjb25zdCBTdHJpbmcqIG9wdGlvbmFsRnJhbWVIYW5kbGUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRp
b25TZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9t
YXRpb25TZXNzaW9uLmgKaW5kZXggNTIxYjQxOWIzMTAuLjdkYWY0ZGRiN2Y5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9u
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9u
U2Vzc2lvbi5oCkBAIC0xMTUsNyArMTE1LDcgQEAgcHVibGljOgogICAgIHZvaWQgZ2V0QnJvd3Np
bmdDb250ZXh0cyhJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiwgUmVmUHRyPEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkFycmF5PEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OkJyb3dzaW5nQ29u
dGV4dD4+Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBnZXRCcm93c2luZ0NvbnRleHQoSW5zcGVjdG9y
OjpFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYsIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29s
OjpBdXRvbWF0aW9uOjpCcm93c2luZ0NvbnRleHQ+Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBjcmVh
dGVCcm93c2luZ0NvbnRleHQoSW5zcGVjdG9yOjpFcnJvclN0cmluZyYsIFN0cmluZyopIG92ZXJy
aWRlOwotICAgIHZvaWQgY2xvc2VCcm93c2luZ0NvbnRleHQoSW5zcGVjdG9yOjpFcnJvclN0cmlu
ZyYsIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQgY2xvc2VCcm93c2luZ0NvbnRl
eHQoSW5zcGVjdG9yOjpFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYsIFJlZlB0cjxJbnNwZWN0
b3I6OlByb3RvY29sOjpBcnJheTxJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpCcm93
c2luZ0NvbnRleHQ+PiYpIG92ZXJyaWRlOwogICAgIHZvaWQgc3dpdGNoVG9Ccm93c2luZ0NvbnRl
eHQoSW5zcGVjdG9yOjpFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgYnJvd3NpbmdDb250ZXh0
SGFuZGxlLCBjb25zdCBTdHJpbmcqIG9wdGlvbmFsRnJhbWVIYW5kbGUpIG92ZXJyaWRlOwogICAg
IHZvaWQgcmVzaXplV2luZG93T2ZCcm93c2luZ0NvbnRleHQoSW5zcGVjdG9yOjpFcnJvclN0cmlu
ZyYsIGNvbnN0IFN0cmluZyYgaGFuZGxlLCBjb25zdCBJbnNwZWN0b3I6Okluc3BlY3Rvck9iamVj
dCYgc2l6ZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCBtb3ZlV2luZG93T2ZCcm93c2luZ0NvbnRleHQo
SW5zcGVjdG9yOjpFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgaGFuZGxlLCBjb25zdCBJbnNw
ZWN0b3I6Okluc3BlY3Rvck9iamVjdCYgcG9zaXRpb24pIG92ZXJyaWRlOwo=
</data>
<flag name="review"
          id="337139"
          type_id="1"
          status="-"
          setter="bburg"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>316630</attachid>
            <date>2017-07-28 02:46:50 -0700</date>
            <delta_ts>2017-08-03 17:06:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wd-close.diff</filename>
            <type>text/plain</type>
            <size>12186</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkRyaXZl
ci9DaGFuZ2VMb2cKaW5kZXggMmNkMjgwODQ3ZDEuLjAzYTc4MjZkNGQ0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViRHJpdmVyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViRHJpdmVyL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDQwIEBACisyMDE3LTA3LTI4ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNn
YXJjaWFAaWdhbGlhLmNvbT4KKworICAgICAgICBXZWJEcml2ZXI6IGZpeCByZXR1cm4gdmFsdWUg
b2YgY2xvc2Ugd2luZG93IGNvbW1hbmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE3NDg2MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFdlIGFyZSBjdXJyZW50bHkgcmV0dXJuaW5nIG51bGwsIGJ1dCB3ZSBz
aG91bGQgcmV0dXJuIHRoZSBsaXN0IG9mIHdpbmRvdyBoYW5kbGVzLCBhbmQgdHJ5IHRvIGNsb3Nl
IHRoZSBzZXNzaW9uCisgICAgICAgIGlmIHRoZXJlIGFyZW4ndCBtb3JlIHdpbmRvdyBoYW5kbGVz
LgorCisgICAgICAgIDEwLjIgQ2xvc2UgV2luZG93CisgICAgICAgIGh0dHBzOi8vdzNjLmdpdGh1
Yi5pby93ZWJkcml2ZXIvd2ViZHJpdmVyLXNwZWMuaHRtbCNjbG9zZS13aW5kb3cKKworICAgICAg
ICAzLiBJZiB0aGVyZSBhcmUgbm8gbW9yZSBvcGVuIHRvcC1sZXZlbCBicm93c2luZyBjb250ZXh0
cywgdGhlbiB0cnkgdG8gY2xvc2UgdGhlIHNlc3Npb24uCisgICAgICAgIDQuIFJldHVybiB0aGUg
cmVzdWx0IG9mIHJ1bm5pbmcgdGhlIHJlbW90ZSBlbmQgc3RlcHMgZm9yIHRoZSBHZXQgV2luZG93
IEhhbmRsZXMgY29tbWFuZC4KKworICAgICAgICAqIFNlc3Npb24uY3BwOgorICAgICAgICAoV2Vi
RHJpdmVyOjpTZXNzaW9uOjpjbG9zZU5leHRUb3BsZXZlbEJyb3dzaW5nQ29udGV4dCk6IEhlbHBl
ciBmdW5jdGlvbiB0byBjbG9zZSB0aGUgZ2l2ZW4gdG9wbGV2ZWwgYnJvd3NpbmcKKyAgICAgICAg
Y29udGV4dCBhbmQgdGhlIG5leHQgb25lIGlmIHRoZXJlIGFyZSBtb3JlLgorICAgICAgICAoV2Vi
RHJpdmVyOjpTZXNzaW9uOjpjbG9zZSk6IENhbGwgY2xvc2VOZXh0VG9wbGV2ZWxCcm93c2luZ0Nv
bnRleHQoKSB0byBkZWxldGUgYWxsIHRvcGxldmVsIGJyb3dzaW5nIGNvbnRleHRzIG9mCisgICAg
ICAgIHRoZSBzZXNzaW9uLgorICAgICAgICAoV2ViRHJpdmVyOjpTZXNzaW9uOjpjbG9zZVRvcExl
dmVsQnJvd3NpbmdDb250ZXh0KTogQ2xvc2UgdGhlIGdpdmVuIHRvcGxldmVsIGJyb3dzaW5nIGNv
bnRleHQgYW5kIGNhbGwKKyAgICAgICAgZ2V0V2luZG93SGFuZGxlcygpIHdoZW4gZG9uZS4KKyAg
ICAgICAgKFdlYkRyaXZlcjo6U2Vzc2lvbjo6Y2xvc2VXaW5kb3cpOiBDYWxsIGNsb3NlVG9wTGV2
ZWxCcm93c2luZ0NvbnRleHQoKSBwYXNzaW5nIHRoZSBjdXJyZW50IHRvcGx2ZWwgYnJvd3Npbmcg
Y29udGV4dC4KKyAgICAgICAgKFdlYkRyaXZlcjo6U2Vzc2lvbjo6Z2V0V2luZG93SGFuZGxlcyk6
IFJlbW92ZSB0aGUgZWFybHkgcmV0dXJuLCB0aGlzIGNvbW1hbmQgZG9lc24ndCBkZXBlbmQgb24g
YSBjdXJyZW50CisgICAgICAgIHRvcGxldmVsIGJyb3dzaW5nIGNvbnRleHQuCisgICAgICAgICog
U2Vzc2lvbi5oOgorICAgICAgICAqIFNlc3Npb25Ib3N0Lmg6CisgICAgICAgICogV2ViRHJpdmVy
U2VydmljZS5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNlcnZpY2U6OnJ1bik6
IERpc2Nvbm5lY3QgdGhlIHNlcnZlciB3aGVuIG1haW4gbG9vcCBxdWl0cy4KKyAgICAgICAgKFdl
YkRyaXZlcjo6V2ViRHJpdmVyU2VydmljZTo6ZGVsZXRlU2Vzc2lvbik6IERvIG5vdCBmYWlsIGlm
IHRoZSBnaXZlbiBzZXNzaW9uIGlzIG5vdCBhY3RpdmUuCisgICAgICAgIChXZWJEcml2ZXI6Oldl
YkRyaXZlclNlcnZpY2U6OmNsb3NlV2luZG93KTogUmVtb3ZlIHRoZSBzZXNzaW9uIGlmIHRoZSBj
bG9zZWQgd2luZG93IHdhcyB0aGUgbGFzdCBvbmUuCisgICAgICAgICogV2ViRHJpdmVyU2Vydmlj
ZS5oOiBSZW1vdmUgdW51c2VkIHF1aXQoKSBtZXRob2QuCisgICAgICAgICogZ2xpYi9TZXNzaW9u
SG9zdEdsaWIuY3BwOgorICAgICAgICAoV2ViRHJpdmVyOjpTZXNzaW9uSG9zdDo6aXNDb25uZWN0
ZWQpOiBSZXR1cm4gd2hldGhlciBob3N0IGlzIGNvbm5lY3RlZCB0byBhIGJyb3dzZXIgaW5zdGFu
Y2UuCisgICAgICAgIChXZWJEcml2ZXI6OlNlc3Npb25Ib3N0OjpkYnVzQ29ubmVjdGlvbkNsb3Nl
ZENhbGxiYWNrKTogRGVsZXRlIG1fYnJvd3Nlci4KKwogMjAxNy0wNy0yNiAgQ2FybG9zIEdhcmNp
YSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gRml4
IEdUSyBkaXN0Y2hlY2suCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24uY3Bw
IGIvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcAppbmRleCBiMzM1YzFkMGY0YS4uZTJlMzc1
YjJkZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbi5jcHAKKysrIGIvU291
cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcApAQCAtNTcsNiArNTcsMjYgQEAgY29uc3QgQ2FwYWJp
bGl0aWVzJiBTZXNzaW9uOjpjYXBhYmlsaXRpZXMoKSBjb25zdAogICAgIHJldHVybiBtX2hvc3Qt
PmNhcGFiaWxpdGllcygpOwogfQogCit2b2lkIFNlc3Npb246OmNsb3NlTmV4dFRvcGxldmVsQnJv
d3NpbmdDb250ZXh0KGNvbnN0IFN0cmluZyYgdG9wbGV2ZWxCcm93c2luZ0NvbnRleHQsIEZ1bmN0
aW9uPHZvaWQgKENvbW1hbmRSZXN1bHQmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAg
Y2xvc2VUb3BMZXZlbEJyb3dzaW5nQ29udGV4dCh0b3BsZXZlbEJyb3dzaW5nQ29udGV4dCwgW3Ro
aXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY29tcGxldGlvbkhhbmRsZXIgPSBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oQ29tbWFuZFJlc3VsdCYmIHJlc3VsdCkgbXV0YWJs
ZSB7CisgICAgICAgIGlmIChyZXN1bHQuaXNFcnJvcigpKSB7CisgICAgICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihXVEZNb3ZlKHJlc3VsdCkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisgICAgICAgIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4gaGFuZGxlczsKKyAgICAgICAgaWYg
KHJlc3VsdC5yZXN1bHQoKS0+YXNBcnJheShoYW5kbGVzKSAmJiBoYW5kbGVzLT5sZW5ndGgoKSkg
eworICAgICAgICAgICAgYXV0byBoYW5kbGVWYWx1ZSA9IGhhbmRsZXMtPmdldCgwKTsKKyAgICAg
ICAgICAgIFN0cmluZyBoYW5kbGU7CisgICAgICAgICAgICBpZiAoaGFuZGxlVmFsdWUtPmFzU3Ry
aW5nKGhhbmRsZSkpIHsKKyAgICAgICAgICAgICAgICBjbG9zZU5leHRUb3BsZXZlbEJyb3dzaW5n
Q29udGV4dChoYW5kbGUsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICAgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6c3VjY2VzcygpKTsKKyAgICB9KTsKK30KKwogdm9pZCBT
ZXNzaW9uOjpjbG9zZShGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQogewogICAgIGlmICghbV90b3BsZXZlbEJyb3dzaW5nQ29udGV4dCkgewpAQCAt
NjQsMTYgKzg0LDggQEAgdm9pZCBTZXNzaW9uOjpjbG9zZShGdW5jdGlvbjx2b2lkIChDb21tYW5k
UmVzdWx0JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogICAgICAgICByZXR1cm47CiAgICAgfQog
Ci0gICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcGFyYW1ldGVycyA9IEluc3BlY3Rvck9iamVj
dDo6Y3JlYXRlKCk7Ci0gICAgcGFyYW1ldGVycy0+c2V0U3RyaW5nKEFTQ0lJTGl0ZXJhbCgiaGFu
ZGxlIiksIG1fdG9wbGV2ZWxCcm93c2luZ0NvbnRleHQudmFsdWUoKSk7Ci0gICAgbV9ob3N0LT5z
ZW5kQ29tbWFuZFRvQmFja2VuZChBU0NJSUxpdGVyYWwoImNsb3NlQnJvd3NpbmdDb250ZXh0Iiks
IFdURk1vdmUocGFyYW1ldGVycyksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhp
cyksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKFNlc3Np
b25Ib3N0OjpDb21tYW5kUmVzcG9uc2UmJiByZXNwb25zZSkgewotICAgICAgICBpZiAocmVzcG9u
c2UuaXNFcnJvcikgewotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3Vs
dDo6ZmFpbChXVEZNb3ZlKHJlc3BvbnNlLnJlc3BvbnNlT2JqZWN0KSkpOwotICAgICAgICAgICAg
cmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIHN3aXRjaFRvVG9wTGV2ZWxCcm93c2luZ0NvbnRl
eHQoc3RkOjpudWxsb3B0KTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3Vs
dDo6c3VjY2VzcygpKTsKLSAgICB9KTsKKyAgICBhdXRvIHRvcGxldmVsQnJvd3NpbmdDb250ZXh0
ID0gc3RkOjpleGNoYW5nZShtX3RvcGxldmVsQnJvd3NpbmdDb250ZXh0LCBzdGQ6Om51bGxvcHQp
OworICAgIGNsb3NlTmV4dFRvcGxldmVsQnJvd3NpbmdDb250ZXh0KHRvcGxldmVsQnJvd3NpbmdD
b250ZXh0LnZhbHVlKCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAogdm9pZCBT
ZXNzaW9uOjpzZXRUaW1lb3V0cyhjb25zdCBUaW1lb3V0cyYgdGltZW91dHMsIEZ1bmN0aW9uPHZv
aWQgKENvbW1hbmRSZXN1bHQmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC0yOTMsNiArMzA1
LDI0IEBAIHZvaWQgU2Vzc2lvbjo6Z2V0V2luZG93SGFuZGxlKEZ1bmN0aW9uPHZvaWQgKENvbW1h
bmRSZXN1bHQmJik+JiYgY29tcGxldGlvbkhhbmRsCiAgICAgfSk7CiB9CiAKK3ZvaWQgU2Vzc2lv
bjo6Y2xvc2VUb3BMZXZlbEJyb3dzaW5nQ29udGV4dChjb25zdCBTdHJpbmcmIHRvcGxldmVsQnJv
d3NpbmdDb250ZXh0LCBGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQoreworICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHBhcmFtZXRlcnMgPSBJ
bnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOworICAgIHBhcmFtZXRlcnMtPnNldFN0cmluZyhBU0NJ
SUxpdGVyYWwoImhhbmRsZSIpLCB0b3BsZXZlbEJyb3dzaW5nQ29udGV4dCk7CisgICAgbV9ob3N0
LT5zZW5kQ29tbWFuZFRvQmFja2VuZChBU0NJSUxpdGVyYWwoImNsb3NlQnJvd3NpbmdDb250ZXh0
IiksIFdURk1vdmUocGFyYW1ldGVycyksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigq
dGhpcyksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKFNl
c3Npb25Ib3N0OjpDb21tYW5kUmVzcG9uc2UmJiByZXNwb25zZSkgbXV0YWJsZSB7CisgICAgICAg
IGlmIChyZXNwb25zZS5pc0Vycm9yKSB7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihD
b21tYW5kUmVzdWx0OjpmYWlsKFdURk1vdmUocmVzcG9uc2UucmVzcG9uc2VPYmplY3QpKSk7Cisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgaWYgKG1faG9zdC0+aXNDb25u
ZWN0ZWQoKSkKKyAgICAgICAgICAgIGdldFdpbmRvd0hhbmRsZXMoV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikpOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIC8vIENsb3NpbmcgdGhlIGJy
b3dzaW5nIGNvbnRleHQgbWFkZSB0aGUgYnJvd3NlciBxdWl0LgorICAgICAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6c3VjY2VzcygpKTsKKyAgICAgICAgfQorICAgIH0p
OworfQorCiB2b2lkIFNlc3Npb246OmNsb3NlV2luZG93KEZ1bmN0aW9uPHZvaWQgKENvbW1hbmRS
ZXN1bHQmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKCFtX3RvcGxldmVsQnJv
d3NpbmdDb250ZXh0KSB7CkBAIC0zMDAsNyArMzMwLDggQEAgdm9pZCBTZXNzaW9uOjpjbG9zZVdp
bmRvdyhGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgY2xvc2UoV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikpOworICAgIGF1dG8gdG9wbGV2ZWxCcm93c2luZ0NvbnRleHQgPSBzdGQ6OmV4Y2hh
bmdlKG1fdG9wbGV2ZWxCcm93c2luZ0NvbnRleHQsIHN0ZDo6bnVsbG9wdCk7CisgICAgY2xvc2VU
b3BMZXZlbEJyb3dzaW5nQ29udGV4dCh0b3BsZXZlbEJyb3dzaW5nQ29udGV4dC52YWx1ZSgpLCBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKIHZvaWQgU2Vzc2lvbjo6c3dpdGNoVG9X
aW5kb3coY29uc3QgU3RyaW5nJiB3aW5kb3dIYW5kbGUsIEZ1bmN0aW9uPHZvaWQgKENvbW1hbmRS
ZXN1bHQmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC0zMTksMTEgKzM1MCw2IEBAIHZvaWQg
U2Vzc2lvbjo6c3dpdGNoVG9XaW5kb3coY29uc3QgU3RyaW5nJiB3aW5kb3dIYW5kbGUsIEZ1bmN0
aW9uPHZvaWQgKENvbW1hbmRSCiAKIHZvaWQgU2Vzc2lvbjo6Z2V0V2luZG93SGFuZGxlcyhGdW5j
dGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAg
IGlmICghbV90b3BsZXZlbEJyb3dzaW5nQ29udGV4dCkgewotICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6Tm9TdWNo
V2luZG93KSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KICAgICBtX2hvc3QtPnNlbmRDb21t
YW5kVG9CYWNrZW5kKEFTQ0lJTGl0ZXJhbCgiZ2V0QnJvd3NpbmdDb250ZXh0cyIpLCBJbnNwZWN0
b3JPYmplY3Q6OmNyZWF0ZSgpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMp
LCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShTZXNzaW9u
SG9zdDo6Q29tbWFuZFJlc3BvbnNlJiYgcmVzcG9uc2UpIHsKICAgICAgICAgaWYgKHJlc3BvbnNl
LmlzRXJyb3IgfHwgIXJlc3BvbnNlLnJlc3BvbnNlT2JqZWN0KSB7CiAgICAgICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKFdURk1vdmUocmVzcG9uc2UucmVzcG9u
c2VPYmplY3QpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24uaCBiL1Nv
dXJjZS9XZWJEcml2ZXIvU2Vzc2lvbi5oCmluZGV4IDE0M2U5ZWE0NTA5Li40MGIxOTkxNTRkNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkRy
aXZlci9TZXNzaW9uLmgKQEAgLTEwNyw2ICsxMDcsOCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBz
d2l0Y2hUb1RvcExldmVsQnJvd3NpbmdDb250ZXh0KHN0ZDo6b3B0aW9uYWw8U3RyaW5nPik7CiAg
ICAgdm9pZCBzd2l0Y2hUb0Jyb3dzaW5nQ29udGV4dChzdGQ6Om9wdGlvbmFsPFN0cmluZz4pOwor
ICAgIHZvaWQgY2xvc2VUb3BMZXZlbEJyb3dzaW5nQ29udGV4dChjb25zdCBTdHJpbmcmIHRvcGxl
dmVsQnJvd3NpbmdDb250ZXh0LCBGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmKTsK
KyAgICB2b2lkIGNsb3NlTmV4dFRvcGxldmVsQnJvd3NpbmdDb250ZXh0KGNvbnN0IFN0cmluZyYg
dG9wbGV2ZWxCcm93c2luZ0NvbnRleHQsIEZ1bmN0aW9uPHZvaWQgKENvbW1hbmRSZXN1bHQmJik+
JiYpOwogCiAgICAgUmVmUHRyPEluc3BlY3Rvcjo6SW5zcGVjdG9yT2JqZWN0PiBjcmVhdGVFbGVt
ZW50KFJlZlB0cjxJbnNwZWN0b3I6Okluc3BlY3RvclZhbHVlPiYmKTsKICAgICBSZWZQdHI8SW5z
cGVjdG9yOjpJbnNwZWN0b3JPYmplY3Q+IGNyZWF0ZUVsZW1lbnQoY29uc3QgU3RyaW5nJiBlbGVt
ZW50SUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uSG9zdC5oIGIvU291
cmNlL1dlYkRyaXZlci9TZXNzaW9uSG9zdC5oCmluZGV4IDZhNzljN2U4OGY5Li5kOWM0NTEwYTk2
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uSG9zdC5oCisrKyBiL1NvdXJj
ZS9XZWJEcml2ZXIvU2Vzc2lvbkhvc3QuaApAQCAtNTIsNiArNTIsOCBAQCBwdWJsaWM6CiAgICAg
fQogICAgIH5TZXNzaW9uSG9zdCgpOwogCisgICAgYm9vbCBpc0Nvbm5lY3RlZCgpIGNvbnN0Owor
CiAgICAgY29uc3QgQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMoKSBjb25zdCB7IHJldHVybiBt
X2NhcGFiaWxpdGllczsgfQogCiAgICAgZW51bSBjbGFzcyBTdWNjZWVkZWQgeyBObywgWWVzIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuY3BwIGIvU291
cmNlL1dlYkRyaXZlci9XZWJEcml2ZXJTZXJ2aWNlLmNwcAppbmRleCBlYzEwMTNjYjlkMy4uNDJj
NGU3MGJiYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvV2ViRHJpdmVyU2VydmljZS5j
cHAKKysrIGIvU291cmNlL1dlYkRyaXZlci9XZWJEcml2ZXJTZXJ2aWNlLmNwcApAQCAtOTUsMTMg
Kzk1LDkgQEAgaW50IFdlYkRyaXZlclNlcnZpY2U6OnJ1bihpbnQgYXJnYywgY2hhcioqIGFyZ3Yp
CiAKICAgICBSdW5Mb29wOjpydW4oKTsKIAotICAgIHJldHVybiBFWElUX1NVQ0NFU1M7Ci19Ci0K
LXZvaWQgV2ViRHJpdmVyU2VydmljZTo6cXVpdCgpCi17CiAgICAgbV9zZXJ2ZXIuZGlzY29ubmVj
dCgpOwotICAgIFJ1bkxvb3A6Om1haW4oKS5zdG9wKCk7CisKKyAgICByZXR1cm4gRVhJVF9TVUND
RVNTOwogfQogCiBjb25zdCBXZWJEcml2ZXJTZXJ2aWNlOjpDb21tYW5kIFdlYkRyaXZlclNlcnZp
Y2U6OnNfY29tbWFuZHNbXSA9IHsKQEAgLTM1MSwxNCArMzQ3LDE1IEBAIHZvaWQgV2ViRHJpdmVy
U2VydmljZTo6ZGVsZXRlU2Vzc2lvbihSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiYmIHBhcmFtZXRl
cnMsIEZ1bmN0CiAKICAgICBhdXRvIHNlc3Npb24gPSBtX3Nlc3Npb25zLnRha2Uoc2Vzc2lvbklE
KTsKICAgICBpZiAoIXNlc3Npb24pIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFu
ZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRTZXNzaW9uSUQp
KTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6c3VjY2VzcygpKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChtX2FjdGl2ZVNlc3Npb24gPT0gc2Vz
c2lvbi5nZXQoKSkKLSAgICAgICAgbV9hY3RpdmVTZXNzaW9uID0gbnVsbHB0cjsKLQotICAgIHNl
c3Npb24tPmNsb3NlKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBzZXNzaW9uLT5j
bG9zZShbdGhpcywgc2Vzc2lvbiwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKV0oQ29tbWFuZFJlc3VsdCYmIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIGlm
IChtX2FjdGl2ZVNlc3Npb24gPT0gc2Vzc2lvbi5nZXQoKSkKKyAgICAgICAgICAgIG1fYWN0aXZl
U2Vzc2lvbiA9IG51bGxwdHI7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUocmVz
dWx0KSk7CisgICAgfSk7CiB9CiAKIHZvaWQgV2ViRHJpdmVyU2VydmljZTo6c2V0VGltZW91dHMo
UmVmUHRyPEluc3BlY3Rvck9iamVjdD4mJiBwYXJhbWV0ZXJzLCBGdW5jdGlvbjx2b2lkIChDb21t
YW5kUmVzdWx0JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtNTcwLDggKzU2NywyNCBAQCB2
b2lkIFdlYkRyaXZlclNlcnZpY2U6OmNsb3NlV2luZG93KFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+
JiYgcGFyYW1ldGVycywgRnVuY3RpbwogewogICAgIC8vIMKnMTAuMiBDbG9zZSBXaW5kb3cuCiAg
ICAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmRyaXZlci8jY2xvc2Utd2luZG93Ci0gICAg
aWYgKGF1dG8gc2Vzc2lvbiA9IGZpbmRTZXNzaW9uT3JDb21wbGV0ZVdpdGhFcnJvcigqcGFyYW1l
dGVycywgY29tcGxldGlvbkhhbmRsZXIpKQotICAgICAgICBzZXNzaW9uLT5jbG9zZVdpbmRvdyhX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgYXV0byBzZXNzaW9uID0gZmluZFNlc3Np
b25PckNvbXBsZXRlV2l0aEVycm9yKCpwYXJhbWV0ZXJzLCBjb21wbGV0aW9uSGFuZGxlcik7Cisg
ICAgaWYgKCFzZXNzaW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBzZXNzaW9uLT5jbG9zZVdp
bmRvdyhbdGhpcywgc2Vzc2lvbiwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKV0oQ29tbWFuZFJlc3VsdCYmIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIGlm
IChyZXN1bHQuaXNFcnJvcigpKSB7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZN
b3ZlKHJlc3VsdCkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAg
UmVmUHRyPEluc3BlY3RvckFycmF5PiBoYW5kbGVzOworICAgICAgICBpZiAocmVzdWx0LnJlc3Vs
dCgpLT5hc0FycmF5KGhhbmRsZXMpICYmICFoYW5kbGVzLT5sZW5ndGgoKSkgeworICAgICAgICAg
ICAgbV9zZXNzaW9ucy5yZW1vdmUoc2Vzc2lvbi0+aWQoKSk7CisgICAgICAgICAgICBpZiAobV9h
Y3RpdmVTZXNzaW9uID09IHNlc3Npb24uZ2V0KCkpCisgICAgICAgICAgICAgICAgbV9hY3RpdmVT
ZXNzaW9uID0gbnVsbHB0cjsKKyAgICAgICAgfQorICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihX
VEZNb3ZlKHJlc3VsdCkpOworICAgIH0pOwogfQogCiB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OnN3
aXRjaFRvV2luZG93KFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+JiYgcGFyYW1ldGVycywgRnVuY3Rp
b248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJEcml2ZXIvV2ViRHJpdmVyU2VydmljZS5oIGIvU291cmNlL1dlYkRyaXZl
ci9XZWJEcml2ZXJTZXJ2aWNlLmgKaW5kZXggNmI4YjYxZDc4ZGYuLjNmNTk0ODMwMjE1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuaAorKysgYi9Tb3VyY2Uv
V2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuaApAQCAtNDgsNyArNDgsNiBAQCBwdWJsaWM6CiAg
ICAgfldlYkRyaXZlclNlcnZpY2UoKSA9IGRlZmF1bHQ7CiAKICAgICBpbnQgcnVuKGludCBhcmdj
LCBjaGFyKiogYXJndik7Ci0gICAgdm9pZCBxdWl0KCk7CiAKIHByaXZhdGU6CiAgICAgZW51bSBj
bGFzcyBIVFRQTWV0aG9kIHsgR2V0LCBQb3N0LCBEZWxldGUgfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJEcml2ZXIvZ2xpYi9TZXNzaW9uSG9zdEdsaWIuY3BwIGIvU291cmNlL1dlYkRyaXZlci9n
bGliL1Nlc3Npb25Ib3N0R2xpYi5jcHAKaW5kZXggNTExMmU3N2Y2N2EuLmZjZGFmMjg0YTFkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL2dsaWIvU2Vzc2lvbkhvc3RHbGliLmNwcAorKysg
Yi9Tb3VyY2UvV2ViRHJpdmVyL2dsaWIvU2Vzc2lvbkhvc3RHbGliLmNwcApAQCAtMTAwLDYgKzEw
MCwxMSBAQCB2b2lkIFNlc3Npb25Ib3N0Ojpjb25uZWN0VG9Ccm93c2VyKEZ1bmN0aW9uPHZvaWQg
KFN1Y2NlZWRlZCk+JiYgY29tcGxldGlvbkhhbmRsZQogICAgIGxhdW5jaEJyb3dzZXIoV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCitib29sIFNlc3Npb25Ib3N0Ojppc0Nvbm5lY3Rl
ZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuICEhbV9icm93c2VyOworfQorCiBzdHJ1Y3QgQ29ubmVj
dFRvQnJvd3NlckFzeW5jRGF0YSB7CiAgICAgQ29ubmVjdFRvQnJvd3NlckFzeW5jRGF0YShTZXNz
aW9uSG9zdCogc2Vzc2lvbkhvc3QsIEdVbmlxdWVQdHI8Y2hhcj4mJiBkYnVzQWRkcmVzcywgR0Nh
bmNlbGxhYmxlKiBjYW5jZWxsYWJsZSwgRnVuY3Rpb248dm9pZCAoU2Vzc2lvbkhvc3Q6OlN1Y2Nl
ZWRlZCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiAgICAgICAgIDogc2Vzc2lvbkhvc3Qoc2Vzc2lv
bkhvc3QpCkBAIC0xOTEsNiArMTk2LDcgQEAgdm9pZCBTZXNzaW9uSG9zdDo6Y29ubmVjdFRvQnJv
d3NlcihzdGQ6OnVuaXF1ZV9wdHI8Q29ubmVjdFRvQnJvd3NlckFzeW5jRGF0YT4mJgogCiB2b2lk
IFNlc3Npb25Ib3N0OjpkYnVzQ29ubmVjdGlvbkNsb3NlZENhbGxiYWNrKFNlc3Npb25Ib3N0KiBz
ZXNzaW9uSG9zdCkKIHsKKyAgICBzZXNzaW9uSG9zdC0+bV9icm93c2VyID0gbnVsbHB0cjsKICAg
ICBzZXNzaW9uSG9zdC0+aW5zcGVjdG9yRGlzY29ubmVjdGVkKCk7CiB9CiAK
</data>
<flag name="review"
          id="337291"
          type_id="1"
          status="+"
          setter="bburg"
    />
          </attachment>
      

    </bug>

</bugzilla>