<?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>63712</bug_id>
          
          <creation_ts>2011-06-30 06:34:57 -0700</creation_ts>
          <short_desc>Web Inspector: Preflight OPTIONS requests are not shown on network panel for asynchronous XHRs.</short_desc>
          <delta_ts>2021-10-17 22:12:15 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Vsevolod Vlasov">vsevik</reporter>
          <assigned_to name="Vsevolod Vlasov">vsevik</assigned_to>
          <cc>apavlov</cc>
    
    <cc>ap</cc>
    
    <cc>bweinstein</cc>
    
    <cc>caseq</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>osvaldo.rivera1994</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>430363</commentid>
    <comment_count>0</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-06-30 06:34:57 -0700</bug_when>
    <thetext>Preflight OPTIONS requests are not shown on network panel for asynchronous XHRs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>430395</commentid>
    <comment_count>1</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-06-30 07:24:13 -0700</bug_when>
    <thetext>Chromium bug: http://crbug.com/71361</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>430436</commentid>
    <comment_count>2</comment_count>
      <attachid>99308</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-06-30 08:32:07 -0700</bug_when>
    <thetext>Created attachment 99308
Suggested patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>430675</commentid>
    <comment_count>3</comment_count>
      <attachid>99308</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-06-30 14:09:12 -0700</bug_when>
    <thetext>Comment on attachment 99308
Suggested patch

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

r- for boolean arguments, and for lack of ChangeLog explanation. I may have further comments once there is a better ChangeLog, and I actually understand the fix.

&gt; Source/WebCore/ChangeLog:7
&gt; +        Web Inspector: Preflight OPTIONS requests are not shown on network panel for asynchronous XHRs.
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=63712
&gt; +

ChangeLog needs an explanation of what the fix is. I can&apos;t easily understand that from the patch.

&gt; Source/WebCore/loader/MainResourceLoader.cpp:94
&gt; +        frameLoader()-&gt;notifier()-&gt;didFailToLoad(true, this, error);

This is the reason why we prefer named enum values for such arguments - &quot;true&quot; and &quot;false&quot; at call sites don&apos;t tell you what they mean.

Also, why is this the first argument? Is it somehow the most important one?

&gt; Source/WebCore/loader/ResourceLoadNotifier.cpp:127
&gt; +        if (!request.isNull() &amp;&amp; oldRequestURL != request.url().string().impl())

This is nonsense code (I see that you are not adding it, but nonetheless). One should never compare StringImpls by pointer, that doesn&apos;t mean anything.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>431103</commentid>
    <comment_count>4</comment_count>
      <attachid>99462</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-07-01 05:28:47 -0700</bug_when>
    <thetext>Created attachment 99462
Patch with different approach</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>431104</commentid>
    <comment_count>5</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-07-01 05:31:04 -0700</bug_when>
    <thetext>After discussion on IRC I rewrote this patch.
I just added InspectorInstrumentation calls to DocumentThreadableLoader.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>431167</commentid>
    <comment_count>6</comment_count>
      <attachid>99462</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-07-01 08:36:04 -0700</bug_when>
    <thetext>Comment on attachment 99462
Patch with different approach

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

Makes sense to me. Would you be willing to file a bug and possibly make a patch for incorrect StringImpl usage?

&gt; LayoutTests/http/tests/inspector/network-preflight-options.html:46
&gt; +        //if (resource.requestMethod === &quot;POST&quot; &amp;&amp; !/\?deny=yes/.test(resource.url))
&gt; +            //InspectorTest.completeTest();

Commented out code?

&gt; Source/WebCore/loader/DocumentThreadableLoader.cpp:266
&gt; +    // m_actualRequest might have been reset to null in preflightFailure();
&gt; +    if (m_preflightRequestIdentifier)
&gt; +        InspectorInstrumentation::didFinishLoading(m_document-&gt;frame(), m_document-&gt;frame()-&gt;loader()-&gt;documentLoader(), m_preflightRequestIdentifier, finishTime);

How does this comment relate to code?

&gt; Source/WebCore/loader/DocumentThreadableLoader.cpp:362
&gt; +            // Because willSendRequest only gets called during redirects, we initialize
&gt; +            // the identifier and the first willSendRequest here.

No need to wrap this line - there are longer lines just below it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>431245</commentid>
    <comment_count>7</comment_count>
      <attachid>99462</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-07-01 10:17:38 -0700</bug_when>
    <thetext>Comment on attachment 99462
Patch with different approach

Still no useful information in ChangeLog. You should add it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>431694</commentid>
    <comment_count>8</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-07-03 04:45:59 -0700</bug_when>
    <thetext>&gt; Makes sense to me. Would you be willing to file a bug and possibly make a patch for incorrect StringImpl usage?
I filed https://bugs.webkit.org/show_bug.cgi?id=63873 and will upload patch soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>431695</commentid>
    <comment_count>9</comment_count>
      <attachid>99572</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-07-03 04:47:43 -0700</bug_when>
    <thetext>Created attachment 99572
Patchi with fixes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>431705</commentid>
    <comment_count>10</comment_count>
      <attachid>99572</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-03 08:58:51 -0700</bug_when>
    <thetext>Comment on attachment 99572
Patchi with fixes

Clearing flags on attachment: 99572

Committed r90340: &lt;http://trac.webkit.org/changeset/90340&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>431706</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-03 08:58:56 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>99308</attachid>
            <date>2011-06-30 08:32:07 -0700</date>
            <delta_ts>2011-07-01 05:28:39 -0700</delta_ts>
            <desc>Suggested patch</desc>
            <filename>bug-63712-20110630193205.patch</filename>
            <type>text/plain</type>
            <size>26680</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTAxMDAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAwM2MwN2VkM2MyYjVmOTY1MTM3ZDk5
MGVkNWZjMDg5NWE5NTAxYmUwLi4yZGZiYzdjNDA3ZGExZDc0ZDdlNjI1OWFmNTdlNjdmZTU0M2Vh
NzhlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDYtMzAgIFZzZXZvbG9kIFZsYXNvdiAg
PHZzZXZpa0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogUHJlZmxpZ2h0IE9QVElPTlMgcmVxdWVzdHMg
YXJlIG5vdCBzaG93biBvbiBuZXR3b3JrIHBhbmVsIGZvciBhc3luY2hyb25vdXMgWEhScy4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYzNzEyCisKKyAg
ICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrLXByZWZsaWdodC1vcHRpb25zLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrLXByZWZs
aWdodC1vcHRpb25zLmh0bWw6CisKIDIwMTEtMDYtMzAgIFl1dGEgS2l0YW11cmEgIDx5dXRha0Bj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VudCBUYW11cmEuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrLXByZWZsaWdodC1v
cHRpb25zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25l
dHdvcmstcHJlZmxpZ2h0LW9wdGlvbnMtZXhwZWN0ZWQudHh0CmluZGV4IDIxOTQwYjVmZjg2Y2Zi
YmEwMDU5OGQwZjlmZjE3MjNlZDQ0NjE5YTcuLjgzNmQzNzIzOTliMWYzNzFhMTNhNGE3MjA2ZGFm
YTI3MmU1YTA0ODcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L25ldHdvcmstcHJlZmxpZ2h0LW9wdGlvbnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmstcHJlZmxpZ2h0LW9wdGlvbnMtZXhwZWN0ZWQu
dHh0CkBAIC0xLDkgKzEsMTUgQEAKIENPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBYTUxIdHRwUmVx
dWVzdCBjYW5ub3QgbG9hZCBodHRwOi8vbG9jYWxob3N0OjgwMDAvaW5zcGVjdG9yL3Jlc291cmNl
cy9jb3JzLXRhcmdldC5waHA/ZGVueT15ZXMuIE9yaWdpbiBodHRwOi8vMTI3LjAuMC4xOjgwMDAg
aXMgbm90IGFsbG93ZWQgYnkgQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luLgogQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDE6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzL2NvcnMtdGFyZ2V0LnBocD9kZW55PXllcy4gT3Jp
Z2luIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMCBpcyBub3QgYWxsb3dlZCBieSBBY2Nlc3MtQ29udHJv
bC1BbGxvdy1PcmlnaW4uCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogWE1MSHR0cFJlcXVlc3Qg
Y2Fubm90IGxvYWQgaHR0cDovL2xvY2FsaG9zdDo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMvY29y
cy10YXJnZXQucGhwP2Rlbnk9eWVzLiBPcmlnaW4gaHR0cDovLzEyNy4wLjAuMTo4MDAwIGlzIG5v
dCBhbGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4KK0NPTlNPTEUgTUVTU0FH
RTogbGluZSAxOiBYTUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9hZCBodHRwOi8vbG9jYWxob3N0Ojgw
MDAvaW5zcGVjdG9yL3Jlc291cmNlcy9jb3JzLXRhcmdldC5waHA/ZGVueT15ZXMuIE9yaWdpbiBo
dHRwOi8vMTI3LjAuMC4xOjgwMDAgaXMgbm90IGFsbG93ZWQgYnkgQWNjZXNzLUNvbnRyb2wtQWxs
b3ctT3JpZ2luLgogVGVzdHMgdGhhdCBwcmVmbGlnaHQgT1BUSU9OUyByZXF1ZXN0cyBhcHBlYXIg
aW4gTmV0d29yayByZXNvdXJjZXMKIAogUE9TVCBodHRwOi8vbG9jYWxob3N0OjgwMDAvaW5zcGVj
dG9yL3Jlc291cmNlcy9jb3JzLXRhcmdldC5waHA/ZGVueT15ZXMKIE9QVElPTlMgaHR0cDovL2xv
Y2FsaG9zdDo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMvY29ycy10YXJnZXQucGhwP2Rlbnk9eWVz
CiBPUFRJT05TIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzL2NvcnMt
dGFyZ2V0LnBocAogUE9TVCBodHRwOi8vbG9jYWxob3N0OjgwMDAvaW5zcGVjdG9yL3Jlc291cmNl
cy9jb3JzLXRhcmdldC5waHAKK1BPU1QgaHR0cDovL2xvY2FsaG9zdDo4MDAwL2luc3BlY3Rvci9y
ZXNvdXJjZXMvY29ycy10YXJnZXQucGhwP2Rlbnk9eWVzCitPUFRJT05TIGh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzL2NvcnMtdGFyZ2V0LnBocD9kZW55PXllcworT1BU
SU9OUyBodHRwOi8vbG9jYWxob3N0OjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy9jb3JzLXRhcmdl
dC5waHA/YXN5bmM9eWVzCitQT1NUIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9pbnNwZWN0b3IvcmVz
b3VyY2VzL2NvcnMtdGFyZ2V0LnBocD9hc3luYz15ZXMKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay1wcmVmbGlnaHQtb3B0aW9ucy5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay1wcmVmbGlnaHQtb3B0aW9u
cy5odG1sCmluZGV4IDY1ZGMxM2QyZWFhNjZjYTYzMjUxY2NjOGVjY2MxNzdlZTk2MGRiOGUuLjdh
MzNkZmUwOTRiYjY2MmFhOGExNjFmNjc5NTQ3ZmI1NTcxMDg0YTcgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmstcHJlZmxpZ2h0LW9wdGlvbnMuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrLXByZWZsaWdo
dC1vcHRpb25zLmh0bWwKQEAgLTMsMTAgKzMsMTAgQEAKIDxzY3JpcHQgc3JjPSJpbnNwZWN0b3It
dGVzdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiAKLWZ1
bmN0aW9uIHNlbmRYSFIodXJsLCBmb3JjZVByZWZsaWdodCkKK2Z1bmN0aW9uIHNlbmRYSFIodXJs
LCBmb3JjZVByZWZsaWdodCwgYXN5bmMpCiB7CiAgICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVx
dWVzdCgpOwotICAgIHhoci5vcGVuKCJQT1NUIiwgdXJsLCBmYWxzZSk7CisgICAgeGhyLm9wZW4o
IlBPU1QiLCB1cmwsIGFzeW5jKTsKICAgICB4aHIuc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC1U
eXBlIiwgZm9yY2VQcmVmbGlnaHQgPyAiYXBwbGljYXRpb24veG1sIiA6ICJ0ZXh0L3BsYWluIik7
CiAgICAgdHJ5IHsKICAgICAgICAgeGhyLnNlbmQoIjx4bWw+PC94bWw+Iik7ICAvLyBEZW5pZWQg
cmVxdWVzdHMgd2lsbCBjYXVzZSBleGNlcHRpb25zLgpAQCAtMTcsMjMgKzE3LDMzIEBAIGZ1bmN0
aW9uIHNlbmRYSFIodXJsLCBmb3JjZVByZWZsaWdodCkKIGZ1bmN0aW9uIGRvQ3Jvc3NPcmlnaW5Y
SFIoKQogewogICAgIHZhciB0YXJnZXRVUkwgPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL2luc3Bl
Y3Rvci9yZXNvdXJjZXMvY29ycy10YXJnZXQucGhwIjsKKwogICAgIC8vIEZhaWxlZCBQT1NUcyB3
aXRoIG5vIHByZWZsaWdodCBjaGVjayBzaG91bGQgcmVzdWx0IGluIGEgUE9TVCByZXF1ZXN0IGJl
aW5nIGxvZ2dlZAotICAgIHNlbmRYSFIodGFyZ2V0VVJMICsgIj9kZW55PXllcyIsIGZhbHNlKTsK
KyAgICBzZW5kWEhSKHRhcmdldFVSTCArICI/ZGVueT15ZXMiLCBmYWxzZSwgZmFsc2UpOwogICAg
IC8vIEZhaWxlZCBQT1NUcyB3aXRoIHByZWZsaWdodCBjaGVjayBzaG91bGQgcmVzdWx0IGluIGFu
IE9QVElPTlMgcmVxdWVzdCBiZWluZyBsb2dnZWQKLSAgICBzZW5kWEhSKHRhcmdldFVSTCArICI/
ZGVueT15ZXMiLCB0cnVlKTsKKyAgICBzZW5kWEhSKHRhcmdldFVSTCArICI/ZGVueT15ZXMiLCB0
cnVlLCBmYWxzZSk7CiAgICAgLy8gU3VjY2Vzc2Z1bCBQT1NUcyB3aXRoIHByZWZsaWdodCBjaGVj
ayBzaG91bGQgcmVzdWx0IGluIGFuIE9QVElPTlMgcmVxdWVzdCBmb2xsb3dlZCBieSBQT1NUIHJl
cXVlc3QgYmVpbmcgbG9nZ2VkCi0gICAgLy8gR2VuZXJhdGUgcmVxdWVzdCBuYW1lIGJhc2VkIG9u
IHRpbWVzdGFtcCB0byBkZWZlYXQgY2FjaGluZyAodGhpcyBpcyBvbmx5IHJlbGV2YW50IGZvciBy
ZXBlYXRlZCBpbnZvY2F0aW9ucyBvZiB0aGUgdGVzdCBpbiBzaWdubGUgaW5zdGFuY2Ugb2YgRFJU
KQotICAgIHNlbmRYSFIodGFyZ2V0VVJMICsgIj9kYXRlPSIgKyBEYXRlLm5vdygpLCB0cnVlKTsK
KyAgICAvLyBHZW5lcmF0ZSByZXF1ZXN0IG5hbWUgYmFzZWQgb24gdGltZXN0YW1wIHRvIGRlZmVh
dCBPUFRJT05TIHJlcXVlc3QgY2FjaGluZyAodGhpcyBpcyBvbmx5IHJlbGV2YW50IGZvciByZXBl
YXRlZCBpbnZvY2F0aW9ucyBvZiB0aGUgdGVzdCBpbiBzaWdubGUgaW5zdGFuY2Ugb2YgRFJUKQor
ICAgIHNlbmRYSFIodGFyZ2V0VVJMICsgIj9kYXRlPSIgKyBEYXRlLm5vdygpLCB0cnVlLCBmYWxz
ZSk7CisKKyAgICAvLyBBbmQgbm93IHNlbmQgdGhlIHNhbWUgcmVxdWVzdHMgYXN5bmNocm9ub3Vz
bHkKKyAgICBzZW5kWEhSKHRhcmdldFVSTCArICI/ZGVueT15ZXMiLCBmYWxzZSwgdHJ1ZSk7Cisg
ICAgc2VuZFhIUih0YXJnZXRVUkwgKyAiP2Rlbnk9eWVzIiwgdHJ1ZSwgdHJ1ZSk7CisgICAgLy8g
QWRkIHJlZHVuZGFudCBhc3luYyBwYXJhbWV0ZXIgdG8gZW5zdXJlIHRoaXMgcmVxdWVzdCBkaWZm
ZXJzIGZyb20gdGhlIG9uZSBhYm92ZS4KKyAgICBzZW5kWEhSKHRhcmdldFVSTCArICI/YXN5bmM9
eWVzJmRhdGU9IiArIERhdGUubm93KCksIHRydWUsIHRydWUpOwogfQogCiB2YXIgdGVzdCA9IGZ1
bmN0aW9uKCkKIHsKKyAgICB2YXIgcG9zdFJlcXVlc3RzQ291bnQgPSAwOwogICAgIGZ1bmN0aW9u
IG9uUmVzb3VyY2UoZXZlbnQpCiAgICAgewogICAgICAgICB2YXIgcmVzb3VyY2UgPSBldmVudC5k
YXRhOwogICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChyZXNvdXJjZS5yZXF1ZXN0TWV0
aG9kICsgIiAiICsgIHJlc291cmNlLnVybC5yZXBsYWNlKC9bJj9dZGF0ZT1cZCsvLCAiIikpOwot
ICAgICAgICBpZiAocmVzb3VyY2UucmVxdWVzdE1ldGhvZCA9PT0gIlBPU1QiICYmICEvXD9kZW55
PXllcy8udGVzdChyZXNvdXJjZS51cmwpKQorICAgICAgICBpZiAocmVzb3VyY2UucmVxdWVzdE1l
dGhvZCA9PT0gIlBPU1QiICYmICsrcG9zdFJlcXVlc3RzQ291bnQgPT0gNCkKICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CisgICAgICAgIC8vaWYgKHJlc291cmNlLnJl
cXVlc3RNZXRob2QgPT09ICJQT1NUIiAmJiAhL1w/ZGVueT15ZXMvLnRlc3QocmVzb3VyY2UudXJs
KSkKKyAgICAgICAgICAgIC8vSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKICAgICB9CiAg
ICAgV2ViSW5zcGVjdG9yLm5ldHdvcmtNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVj
dG9yLk5ldHdvcmtNYW5hZ2VyLkV2ZW50VHlwZXMuUmVzb3VyY2VGaW5pc2hlZCwgb25SZXNvdXJj
ZSk7CiAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgiZG9Dcm9zc09yaWdpblhIUigp
OyIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IGM0NDFkZjMwMzljODM3YjJkZDQyMmI0NDQxN2YyZjNjMGVkOTBm
YjkuLjg1YjI4YmY0ZDY1Yjk4NWNiN2YwZjVkZDM1NTgxZGZiNmRmNTNkMDEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwzNiBAQAorMjAxMS0wNi0zMCAgVnNldm9sb2QgVmxhc292ICA8dnNldmlrQGNo
cm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBXZWIgSW5zcGVjdG9yOiBQcmVmbGlnaHQgT1BUSU9OUyByZXF1ZXN0cyBhcmUgbm90IHNo
b3duIG9uIG5ldHdvcmsgcGFuZWwgZm9yIGFzeW5jaHJvbm91cyBYSFJzLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM3MTIKKworICAgICAgICAqIGxv
YWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6cmVx
dWVzdEZyb21EZWxlZ2F0ZSk6CisgICAgICAgICogbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OnJlY2VpdmVkRXJyb3Ip
OgorICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUxvYWROb3RpZmllci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZXNvdXJjZUxvYWROb3RpZmllcjo6d2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlJlc291cmNlTG9hZE5vdGlmaWVyOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkTm90aWZpZXI6OmRpZFJlY2VpdmVEYXRhKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZE5vdGlmaWVyOjpkaWRGaW5pc2hMb2FkKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZE5vdGlmaWVyOjpkaWRGYWlsVG9Mb2FkKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZE5vdGlmaWVyOjpkaXNwYXRjaFdpbGxTZW5kUmVx
dWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWROb3RpZmllcjo6ZGlzcGF0Y2hE
aWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkTm90aWZp
ZXI6OmRpc3BhdGNoRGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgpOgorICAgICAgICAoV2ViQ29yZTo6
UmVzb3VyY2VMb2FkTm90aWZpZXI6OmRpc3BhdGNoRGlkRmluaXNoTG9hZGluZyk6CisgICAgICAg
IChXZWJDb3JlOjpSZXNvdXJjZUxvYWROb3RpZmllcjo6c2VuZFJlbWFpbmluZ0RlbGVnYXRlTWVz
c2FnZXMpOgorICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUxvYWROb3RpZmllci5oOgorICAgICAg
ICAqIGxvYWRlci9SZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJj
ZUxvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9h
ZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2Fk
ZXI6OmRpZFJlY2VpdmVEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjpk
aWRGaW5pc2hMb2FkaW5nT25lUGFydCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRl
cjo6ZGlkRmFpbCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6Y2FuY2VsKToK
KyAgICAgICAgKiBsb2FkZXIvbWFjL1Jlc291cmNlTG9hZGVyTWFjLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6UmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhQXJyYXkpOgorCiAyMDExLTA2LTMw
ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IEtlbnQgVGFtdXJhLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggMGE2
MmIwNmZkZjc5NjYwY2JhMzE4MmMyYzAxZTliMjMyMTRlZjM3NS4uNjVjNDZlOTIyMDc0NTU5OTJl
NmUxMGZjMTJlYmJiNTQ5MzNlYmNkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIu
Y3BwCkBAIC0yODQ0LDcgKzI4NDQsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpyZXF1ZXN0RnJvbURl
bGVnYXRlKFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgdW5zaWduZWQgbG9uZyYgaQogICAgIH0K
IAogICAgIFJlc291cmNlUmVxdWVzdCBuZXdSZXF1ZXN0KHJlcXVlc3QpOwotICAgIG5vdGlmaWVy
KCktPmRpc3BhdGNoV2lsbFNlbmRSZXF1ZXN0KG1fZG9jdW1lbnRMb2FkZXIuZ2V0KCksIGlkZW50
aWZpZXIsIG5ld1JlcXVlc3QsIFJlc291cmNlUmVzcG9uc2UoKSk7CisgICAgbm90aWZpZXIoKS0+
ZGlzcGF0Y2hXaWxsU2VuZFJlcXVlc3QodHJ1ZSwgbV9kb2N1bWVudExvYWRlci5nZXQoKSwgaWRl
bnRpZmllciwgbmV3UmVxdWVzdCwgUmVzb3VyY2VSZXNwb25zZSgpKTsKIAogICAgIGlmIChuZXdS
ZXF1ZXN0LmlzTnVsbCgpKQogICAgICAgICBlcnJvciA9IGNhbmNlbGxlZEVycm9yKHJlcXVlc3Qp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcAppbmRleCBh
MWY5OTE4ZWJiZGU1NjY4NTNlNzUxNmNiZmZmODQ2MjkxMGNkNDhkLi4wMjlmYWU4OTgwNDk2YTcx
NmMwNGU5NjgyNmI4YTlhYmFjOGYwYjkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWFp
blJlc291cmNlTG9hZGVyLmNwcApAQCAtOTEsNyArOTEsNyBAQCB2b2lkIE1haW5SZXNvdXJjZUxv
YWRlcjo6cmVjZWl2ZWRFcnJvcihjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKIAogICAgIGlm
ICghY2FuY2VsbGVkKCkpIHsKICAgICAgICAgQVNTRVJUKCFyZWFjaGVkVGVybWluYWxTdGF0ZSgp
KTsKLSAgICAgICAgZnJhbWVMb2FkZXIoKS0+bm90aWZpZXIoKS0+ZGlkRmFpbFRvTG9hZCh0aGlz
LCBlcnJvcik7CisgICAgICAgIGZyYW1lTG9hZGVyKCktPm5vdGlmaWVyKCktPmRpZEZhaWxUb0xv
YWQodHJ1ZSwgdGhpcywgZXJyb3IpOwogICAgICAgICAKICAgICAgICAgcmVsZWFzZVJlc291cmNl
cygpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxv
YWROb3RpZmllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkTm90aWZp
ZXIuY3BwCmluZGV4IGFjNDZhOTQ0N2ZlNWMzNjI4ZjQ3MzUyZThjMmNjYTIyYmRlODNhNDguLjZj
ZGRmN2FlMjJjYmMyN2E5YjVkN2I4MjM2YjJmZGNkYjc2Y2JjMWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWROb3RpZmllci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZE5vdGlmaWVyLmNwcApAQCAtNTcsNDUgKzU3LDU1IEBA
IHZvaWQgUmVzb3VyY2VMb2FkTm90aWZpZXI6OmRpZENhbmNlbEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlKFJlc291cmNlTG9hZGVyKiBsb2FkCiAgICAgbV9mcmFtZS0+bG9hZGVyKCktPmNsaWVudCgp
LT5kaXNwYXRjaERpZENhbmNlbEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKGxvYWRlci0+ZG9jdW1l
bnRMb2FkZXIoKSwgbG9hZGVyLT5pZGVudGlmaWVyKCksIGN1cnJlbnRXZWJDaGFsbGVuZ2UpOwog
fQogCi12b2lkIFJlc291cmNlTG9hZE5vdGlmaWVyOjp3aWxsU2VuZFJlcXVlc3QoUmVzb3VyY2VM
b2FkZXIqIGxvYWRlciwgUmVzb3VyY2VSZXF1ZXN0JiBjbGllbnRSZXF1ZXN0LCBjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKQordm9pZCBSZXNvdXJjZUxvYWROb3RpZmll
cjo6d2lsbFNlbmRSZXF1ZXN0KGJvb2wgc2VuZFJlc291cmNlTG9hZENhbGxiYWNrcywgUmVzb3Vy
Y2VMb2FkZXIqIGxvYWRlciwgUmVzb3VyY2VSZXF1ZXN0JiBjbGllbnRSZXF1ZXN0LCBjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKQogewotICAgIG1fZnJhbWUtPmxvYWRl
cigpLT5hcHBseVVzZXJBZ2VudChjbGllbnRSZXF1ZXN0KTsKKyAgICBpZiAoc2VuZFJlc291cmNl
TG9hZENhbGxiYWNrcykKKyAgICAgICAgbV9mcmFtZS0+bG9hZGVyKCktPmFwcGx5VXNlckFnZW50
KGNsaWVudFJlcXVlc3QpOwogCi0gICAgZGlzcGF0Y2hXaWxsU2VuZFJlcXVlc3QobG9hZGVyLT5k
b2N1bWVudExvYWRlcigpLCBsb2FkZXItPmlkZW50aWZpZXIoKSwgY2xpZW50UmVxdWVzdCwgcmVk
aXJlY3RSZXNwb25zZSk7CisgICAgZGlzcGF0Y2hXaWxsU2VuZFJlcXVlc3Qoc2VuZFJlc291cmNl
TG9hZENhbGxiYWNrcywgbG9hZGVyLT5kb2N1bWVudExvYWRlcigpLCBsb2FkZXItPmlkZW50aWZp
ZXIoKSwgY2xpZW50UmVxdWVzdCwgcmVkaXJlY3RSZXNwb25zZSk7CiB9CiAKLXZvaWQgUmVzb3Vy
Y2VMb2FkTm90aWZpZXI6OmRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUxvYWRlciogbG9hZGVy
LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByKQordm9pZCBSZXNvdXJjZUxvYWROb3RpZmllcjo6
ZGlkUmVjZWl2ZVJlc3BvbnNlKGJvb2wgc2VuZFJlc291cmNlTG9hZENhbGxiYWNrcywgUmVzb3Vy
Y2VMb2FkZXIqIGxvYWRlciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcikKIHsKLSAgICBsb2Fk
ZXItPmRvY3VtZW50TG9hZGVyKCktPmFkZFJlc3BvbnNlKHIpOworICAgIGlmIChzZW5kUmVzb3Vy
Y2VMb2FkQ2FsbGJhY2tzKSB7CisgICAgICAgIGxvYWRlci0+ZG9jdW1lbnRMb2FkZXIoKS0+YWRk
UmVzcG9uc2Uocik7CiAKLSAgICBpZiAoUGFnZSogcGFnZSA9IG1fZnJhbWUtPnBhZ2UoKSkKLSAg
ICAgICAgcGFnZS0+cHJvZ3Jlc3MoKS0+aW5jcmVtZW50UHJvZ3Jlc3MobG9hZGVyLT5pZGVudGlm
aWVyKCksIHIpOworICAgICAgICBpZiAoUGFnZSogcGFnZSA9IG1fZnJhbWUtPnBhZ2UoKSkKKyAg
ICAgICAgICAgIHBhZ2UtPnByb2dyZXNzKCktPmluY3JlbWVudFByb2dyZXNzKGxvYWRlci0+aWRl
bnRpZmllcigpLCByKTsKKyAgICB9CiAKLSAgICBkaXNwYXRjaERpZFJlY2VpdmVSZXNwb25zZShs
b2FkZXItPmRvY3VtZW50TG9hZGVyKCksIGxvYWRlci0+aWRlbnRpZmllcigpLCByKTsKKyAgICBk
aXNwYXRjaERpZFJlY2VpdmVSZXNwb25zZShzZW5kUmVzb3VyY2VMb2FkQ2FsbGJhY2tzLCBsb2Fk
ZXItPmRvY3VtZW50TG9hZGVyKCksIGxvYWRlci0+aWRlbnRpZmllcigpLCByKTsKIH0KIAotdm9p
ZCBSZXNvdXJjZUxvYWROb3RpZmllcjo6ZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VMb2FkZXIqIGxv
YWRlciwgY29uc3QgY2hhciogZGF0YSwgaW50IGRhdGFMZW5ndGgsIGludCBlbmNvZGVkRGF0YUxl
bmd0aCkKK3ZvaWQgUmVzb3VyY2VMb2FkTm90aWZpZXI6OmRpZFJlY2VpdmVEYXRhKGJvb2wgc2Vu
ZFJlc291cmNlTG9hZENhbGxiYWNrcywgUmVzb3VyY2VMb2FkZXIqIGxvYWRlciwgY29uc3QgY2hh
ciogZGF0YSwgaW50IGRhdGFMZW5ndGgsIGludCBlbmNvZGVkRGF0YUxlbmd0aCkKIHsKLSAgICBp
ZiAoUGFnZSogcGFnZSA9IG1fZnJhbWUtPnBhZ2UoKSkKLSAgICAgICAgcGFnZS0+cHJvZ3Jlc3Mo
KS0+aW5jcmVtZW50UHJvZ3Jlc3MobG9hZGVyLT5pZGVudGlmaWVyKCksIGRhdGEsIGRhdGFMZW5n
dGgpOworICAgIGlmIChzZW5kUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKSB7CisgICAgICAgIGlmIChQ
YWdlKiBwYWdlID0gbV9mcmFtZS0+cGFnZSgpKQorICAgICAgICAgICAgcGFnZS0+cHJvZ3Jlc3Mo
KS0+aW5jcmVtZW50UHJvZ3Jlc3MobG9hZGVyLT5pZGVudGlmaWVyKCksIGRhdGEsIGRhdGFMZW5n
dGgpOworICAgIH0KIAotICAgIGRpc3BhdGNoRGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgobG9hZGVy
LT5kb2N1bWVudExvYWRlcigpLCBsb2FkZXItPmlkZW50aWZpZXIoKSwgZGF0YUxlbmd0aCwgZW5j
b2RlZERhdGFMZW5ndGgpOworICAgIGRpc3BhdGNoRGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgoc2Vu
ZFJlc291cmNlTG9hZENhbGxiYWNrcywgbG9hZGVyLT5kb2N1bWVudExvYWRlcigpLCBsb2FkZXIt
PmlkZW50aWZpZXIoKSwgZGF0YUxlbmd0aCwgZW5jb2RlZERhdGFMZW5ndGgpOwogfQogCi12b2lk
IFJlc291cmNlTG9hZE5vdGlmaWVyOjpkaWRGaW5pc2hMb2FkKFJlc291cmNlTG9hZGVyKiBsb2Fk
ZXIsIGRvdWJsZSBmaW5pc2hUaW1lKQordm9pZCBSZXNvdXJjZUxvYWROb3RpZmllcjo6ZGlkRmlu
aXNoTG9hZChib29sIHNlbmRSZXNvdXJjZUxvYWRDYWxsYmFja3MsIFJlc291cmNlTG9hZGVyKiBs
b2FkZXIsIGRvdWJsZSBmaW5pc2hUaW1lKQogeyAgICAKLSAgICBpZiAoUGFnZSogcGFnZSA9IG1f
ZnJhbWUtPnBhZ2UoKSkKLSAgICAgICAgcGFnZS0+cHJvZ3Jlc3MoKS0+Y29tcGxldGVQcm9ncmVz
cyhsb2FkZXItPmlkZW50aWZpZXIoKSk7Ci0gICAgZGlzcGF0Y2hEaWRGaW5pc2hMb2FkaW5nKGxv
YWRlci0+ZG9jdW1lbnRMb2FkZXIoKSwgbG9hZGVyLT5pZGVudGlmaWVyKCksIGZpbmlzaFRpbWUp
OworICAgIGlmIChzZW5kUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKSB7CisgICAgICAgIGlmIChQYWdl
KiBwYWdlID0gbV9mcmFtZS0+cGFnZSgpKQorICAgICAgICAgICAgcGFnZS0+cHJvZ3Jlc3MoKS0+
Y29tcGxldGVQcm9ncmVzcyhsb2FkZXItPmlkZW50aWZpZXIoKSk7CisgICAgfQorCisgICAgZGlz
cGF0Y2hEaWRGaW5pc2hMb2FkaW5nKHNlbmRSZXNvdXJjZUxvYWRDYWxsYmFja3MsIGxvYWRlci0+
ZG9jdW1lbnRMb2FkZXIoKSwgbG9hZGVyLT5pZGVudGlmaWVyKCksIGZpbmlzaFRpbWUpOwogfQog
Ci12b2lkIFJlc291cmNlTG9hZE5vdGlmaWVyOjpkaWRGYWlsVG9Mb2FkKFJlc291cmNlTG9hZGVy
KiBsb2FkZXIsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQordm9pZCBSZXNvdXJjZUxvYWRO
b3RpZmllcjo6ZGlkRmFpbFRvTG9hZChib29sIHNlbmRSZXNvdXJjZUxvYWRDYWxsYmFja3MsIFJl
c291cmNlTG9hZGVyKiBsb2FkZXIsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogewotICAg
IGlmIChQYWdlKiBwYWdlID0gbV9mcmFtZS0+cGFnZSgpKQotICAgICAgICBwYWdlLT5wcm9ncmVz
cygpLT5jb21wbGV0ZVByb2dyZXNzKGxvYWRlci0+aWRlbnRpZmllcigpKTsKKyAgICBpZiAoc2Vu
ZFJlc291cmNlTG9hZENhbGxiYWNrcykgeworICAgICAgICBpZiAoUGFnZSogcGFnZSA9IG1fZnJh
bWUtPnBhZ2UoKSkKKyAgICAgICAgICAgIHBhZ2UtPnByb2dyZXNzKCktPmNvbXBsZXRlUHJvZ3Jl
c3MobG9hZGVyLT5pZGVudGlmaWVyKCkpOwogCi0gICAgaWYgKCFlcnJvci5pc051bGwoKSkKLSAg
ICAgICAgbV9mcmFtZS0+bG9hZGVyKCktPmNsaWVudCgpLT5kaXNwYXRjaERpZEZhaWxMb2FkaW5n
KGxvYWRlci0+ZG9jdW1lbnRMb2FkZXIoKSwgbG9hZGVyLT5pZGVudGlmaWVyKCksIGVycm9yKTsK
KyAgICAgICAgaWYgKCFlcnJvci5pc051bGwoKSkKKyAgICAgICAgICAgIG1fZnJhbWUtPmxvYWRl
cigpLT5jbGllbnQoKS0+ZGlzcGF0Y2hEaWRGYWlsTG9hZGluZyhsb2FkZXItPmRvY3VtZW50TG9h
ZGVyKCksIGxvYWRlci0+aWRlbnRpZmllcigpLCBlcnJvcik7CisgICAgfQogCiAgICAgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRGYWlsTG9hZGluZyhtX2ZyYW1lLCBsb2FkZXItPmRvY3Vt
ZW50TG9hZGVyKCksIGxvYWRlci0+aWRlbnRpZmllcigpLCBlcnJvcik7CiB9CkBAIC0xMDUsNDEg
KzExNSw1MSBAQCB2b2lkIFJlc291cmNlTG9hZE5vdGlmaWVyOjphc3NpZ25JZGVudGlmaWVyVG9J
bml0aWFsUmVxdWVzdCh1bnNpZ25lZCBsb25nIGlkZW50aQogICAgIG1fZnJhbWUtPmxvYWRlcigp
LT5jbGllbnQoKS0+YXNzaWduSWRlbnRpZmllclRvSW5pdGlhbFJlcXVlc3QoaWRlbnRpZmllciwg
bG9hZGVyLCByZXF1ZXN0KTsKIH0KIAotdm9pZCBSZXNvdXJjZUxvYWROb3RpZmllcjo6ZGlzcGF0
Y2hXaWxsU2VuZFJlcXVlc3QoRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgdW5zaWduZWQgbG9uZyBp
ZGVudGlmaWVyLCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmIHJlZGlyZWN0UmVzcG9uc2UpCit2b2lkIFJlc291cmNlTG9hZE5vdGlmaWVyOjpkaXNwYXRj
aFdpbGxTZW5kUmVxdWVzdChib29sIHNlbmRSZXNvdXJjZUxvYWRDYWxsYmFja3MsIERvY3VtZW50
TG9hZGVyKiBsb2FkZXIsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgUmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKQogewot
ICAgIFN0cmluZ0ltcGwqIG9sZFJlcXVlc3RVUkwgPSByZXF1ZXN0LnVybCgpLnN0cmluZygpLmlt
cGwoKTsKLSAgICBtX2ZyYW1lLT5sb2FkZXIoKS0+ZG9jdW1lbnRMb2FkZXIoKS0+ZGlkVGVsbENs
aWVudEFib3V0TG9hZChyZXF1ZXN0LnVybCgpKTsKKyAgICBpZiAoc2VuZFJlc291cmNlTG9hZENh
bGxiYWNrcykgeworICAgICAgICBTdHJpbmdJbXBsKiBvbGRSZXF1ZXN0VVJMID0gcmVxdWVzdC51
cmwoKS5zdHJpbmcoKS5pbXBsKCk7CisgICAgICAgIG1fZnJhbWUtPmxvYWRlcigpLT5kb2N1bWVu
dExvYWRlcigpLT5kaWRUZWxsQ2xpZW50QWJvdXRMb2FkKHJlcXVlc3QudXJsKCkpOwogCi0gICAg
bV9mcmFtZS0+bG9hZGVyKCktPmNsaWVudCgpLT5kaXNwYXRjaFdpbGxTZW5kUmVxdWVzdChsb2Fk
ZXIsIGlkZW50aWZpZXIsIHJlcXVlc3QsIHJlZGlyZWN0UmVzcG9uc2UpOworICAgICAgICBtX2Zy
YW1lLT5sb2FkZXIoKS0+Y2xpZW50KCktPmRpc3BhdGNoV2lsbFNlbmRSZXF1ZXN0KGxvYWRlciwg
aWRlbnRpZmllciwgcmVxdWVzdCwgcmVkaXJlY3RSZXNwb25zZSk7CiAKLSAgICAvLyBJZiB0aGUg
VVJMIGNoYW5nZWQsIHRoZW4gd2Ugd2FudCB0byBwdXQgdGhhdCBuZXcgVVJMIGluIHRoZSAiZGlk
IHRlbGwgY2xpZW50IiBzZXQgdG9vLgotICAgIGlmICghcmVxdWVzdC5pc051bGwoKSAmJiBvbGRS
ZXF1ZXN0VVJMICE9IHJlcXVlc3QudXJsKCkuc3RyaW5nKCkuaW1wbCgpKQotICAgICAgICBtX2Zy
YW1lLT5sb2FkZXIoKS0+ZG9jdW1lbnRMb2FkZXIoKS0+ZGlkVGVsbENsaWVudEFib3V0TG9hZChy
ZXF1ZXN0LnVybCgpKTsKKyAgICAgICAgLy8gSWYgdGhlIFVSTCBjaGFuZ2VkLCB0aGVuIHdlIHdh
bnQgdG8gcHV0IHRoYXQgbmV3IFVSTCBpbiB0aGUgImRpZCB0ZWxsIGNsaWVudCIgc2V0IHRvby4K
KyAgICAgICAgaWYgKCFyZXF1ZXN0LmlzTnVsbCgpICYmIG9sZFJlcXVlc3RVUkwgIT0gcmVxdWVz
dC51cmwoKS5zdHJpbmcoKS5pbXBsKCkpCisgICAgICAgICAgICBtX2ZyYW1lLT5sb2FkZXIoKS0+
ZG9jdW1lbnRMb2FkZXIoKS0+ZGlkVGVsbENsaWVudEFib3V0TG9hZChyZXF1ZXN0LnVybCgpKTsK
IAotICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFNlbmRSZXF1ZXN0KG1fZnJhbWUs
IGlkZW50aWZpZXIsIGxvYWRlciwgcmVxdWVzdCwgcmVkaXJlY3RSZXNwb25zZSk7CisgICAgICAg
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFNlbmRSZXF1ZXN0KG1fZnJhbWUsIGlkZW50
aWZpZXIsIGxvYWRlciwgcmVxdWVzdCwgcmVkaXJlY3RSZXNwb25zZSk7CiAKLSAgICAvLyBSZXBv
cnQgV2ViVGltaW5nIGZvciBhbGwgZnJhbWVzLgotICAgIGlmIChsb2FkZXIgJiYgIXJlcXVlc3Qu
aXNOdWxsKCkgJiYgcmVxdWVzdC51cmwoKSA9PSBsb2FkZXItPnJlcXVlc3RVUkwoKSkKLSAgICAg
ICAgcmVxdWVzdC5zZXRSZXBvcnRMb2FkVGltaW5nKHRydWUpOworICAgICAgICBpZiAoc2VuZFJl
c291cmNlTG9hZENhbGxiYWNrcykgeworICAgICAgICAgICAgLy8gUmVwb3J0IFdlYlRpbWluZyBm
b3IgYWxsIGZyYW1lcy4KKyAgICAgICAgICAgIGlmIChsb2FkZXIgJiYgIXJlcXVlc3QuaXNOdWxs
KCkgJiYgcmVxdWVzdC51cmwoKSA9PSBsb2FkZXItPnJlcXVlc3RVUkwoKSkKKyAgICAgICAgICAg
ICAgICByZXF1ZXN0LnNldFJlcG9ydExvYWRUaW1pbmcodHJ1ZSk7CisgICAgICAgIH0KKyAgICB9
IGVsc2UKKyAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsU2VuZFJlcXVlc3Qo
bV9mcmFtZSwgaWRlbnRpZmllciwgbG9hZGVyLCByZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlKTsK
IH0KIAotdm9pZCBSZXNvdXJjZUxvYWROb3RpZmllcjo6ZGlzcGF0Y2hEaWRSZWNlaXZlUmVzcG9u
c2UoRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJiByKQordm9pZCBSZXNvdXJjZUxvYWROb3RpZmllcjo6ZGlzcGF0
Y2hEaWRSZWNlaXZlUmVzcG9uc2UoYm9vbCBzZW5kUmVzb3VyY2VMb2FkQ2FsbGJhY2tzLCBEb2N1
bWVudExvYWRlciogbG9hZGVyLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmIHIpCiB7CiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIGNv
b2tpZSA9IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFJlY2VpdmVSZXNvdXJjZVJlc3Bv
bnNlKG1fZnJhbWUsIGlkZW50aWZpZXIsIHIpOwotICAgIG1fZnJhbWUtPmxvYWRlcigpLT5jbGll
bnQoKS0+ZGlzcGF0Y2hEaWRSZWNlaXZlUmVzcG9uc2UobG9hZGVyLCBpZGVudGlmaWVyLCByKTsK
KworICAgIGlmIChzZW5kUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKQorICAgICAgICBtX2ZyYW1lLT5s
b2FkZXIoKS0+Y2xpZW50KCktPmRpc3BhdGNoRGlkUmVjZWl2ZVJlc3BvbnNlKGxvYWRlciwgaWRl
bnRpZmllciwgcik7CisKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJlY2VpdmVS
ZXNvdXJjZVJlc3BvbnNlKGNvb2tpZSwgaWRlbnRpZmllciwgbG9hZGVyLCByKTsKIH0KIAotdm9p
ZCBSZXNvdXJjZUxvYWROb3RpZmllcjo6ZGlzcGF0Y2hEaWRSZWNlaXZlQ29udGVudExlbmd0aChE
b2N1bWVudExvYWRlciogbG9hZGVyLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGludCBkYXRh
TGVuZ3RoLCBpbnQgZW5jb2RlZERhdGFMZW5ndGgpCit2b2lkIFJlc291cmNlTG9hZE5vdGlmaWVy
OjpkaXNwYXRjaERpZFJlY2VpdmVDb250ZW50TGVuZ3RoKGJvb2wgc2VuZFJlc291cmNlTG9hZENh
bGxiYWNrcywgRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVy
LCBpbnQgZGF0YUxlbmd0aCwgaW50IGVuY29kZWREYXRhTGVuZ3RoKQogewotICAgIG1fZnJhbWUt
PmxvYWRlcigpLT5jbGllbnQoKS0+ZGlzcGF0Y2hEaWRSZWNlaXZlQ29udGVudExlbmd0aChsb2Fk
ZXIsIGlkZW50aWZpZXIsIGRhdGFMZW5ndGgpOworICAgIGlmIChzZW5kUmVzb3VyY2VMb2FkQ2Fs
bGJhY2tzKQorICAgICAgICBtX2ZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCktPmRpc3BhdGNoRGlk
UmVjZWl2ZUNvbnRlbnRMZW5ndGgobG9hZGVyLCBpZGVudGlmaWVyLCBkYXRhTGVuZ3RoKTsKIAog
ICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgobV9m
cmFtZSwgaWRlbnRpZmllciwgZGF0YUxlbmd0aCwgZW5jb2RlZERhdGFMZW5ndGgpOwogfQogCi12
b2lkIFJlc291cmNlTG9hZE5vdGlmaWVyOjpkaXNwYXRjaERpZEZpbmlzaExvYWRpbmcoRG9jdW1l
bnRMb2FkZXIqIGxvYWRlciwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBkb3VibGUgZmluaXNo
VGltZSkKK3ZvaWQgUmVzb3VyY2VMb2FkTm90aWZpZXI6OmRpc3BhdGNoRGlkRmluaXNoTG9hZGlu
Zyhib29sIHNlbmRSZXNvdXJjZUxvYWRDYWxsYmFja3MsIERvY3VtZW50TG9hZGVyKiBsb2FkZXIs
IHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgZG91YmxlIGZpbmlzaFRpbWUpCiB7Ci0gICAgbV9m
cmFtZS0+bG9hZGVyKCktPmNsaWVudCgpLT5kaXNwYXRjaERpZEZpbmlzaExvYWRpbmcobG9hZGVy
LCBpZGVudGlmaWVyKTsKKyAgICBpZiAoc2VuZFJlc291cmNlTG9hZENhbGxiYWNrcykKKyAgICAg
ICAgbV9mcmFtZS0+bG9hZGVyKCktPmNsaWVudCgpLT5kaXNwYXRjaERpZEZpbmlzaExvYWRpbmco
bG9hZGVyLCBpZGVudGlmaWVyKTsKIAogICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlk
RmluaXNoTG9hZGluZyhtX2ZyYW1lLCBsb2FkZXIsIGlkZW50aWZpZXIsIGZpbmlzaFRpbWUpOwog
fQpAQCAtMTU1LDEzICsxNzUsMTMgQEAgdm9pZCBSZXNvdXJjZUxvYWROb3RpZmllcjo6ZGlzcGF0
Y2hUcmFuc2ZlckxvYWRpbmdSZXNvdXJjZUZyb21QYWdlKHVuc2lnbmVkIGxvbmcKIHZvaWQgUmVz
b3VyY2VMb2FkTm90aWZpZXI6OnNlbmRSZW1haW5pbmdEZWxlZ2F0ZU1lc3NhZ2VzKERvY3VtZW50
TG9hZGVyKiBsb2FkZXIsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYgcmVzcG9uc2UsIGludCBkYXRhTGVuZ3RoLCBpbnQgZW5jb2RlZERhdGFMZW5ndGgs
IGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogewogICAgIGlmICghcmVzcG9uc2UuaXNOdWxs
KCkpCi0gICAgICAgIGRpc3BhdGNoRGlkUmVjZWl2ZVJlc3BvbnNlKGxvYWRlciwgaWRlbnRpZmll
ciwgcmVzcG9uc2UpOworICAgICAgICBkaXNwYXRjaERpZFJlY2VpdmVSZXNwb25zZSh0cnVlLCBs
b2FkZXIsIGlkZW50aWZpZXIsIHJlc3BvbnNlKTsKIAogICAgIGlmIChkYXRhTGVuZ3RoID4gMCkK
LSAgICAgICAgZGlzcGF0Y2hEaWRSZWNlaXZlQ29udGVudExlbmd0aChsb2FkZXIsIGlkZW50aWZp
ZXIsIGRhdGFMZW5ndGgsIGVuY29kZWREYXRhTGVuZ3RoKTsKKyAgICAgICAgZGlzcGF0Y2hEaWRS
ZWNlaXZlQ29udGVudExlbmd0aCh0cnVlLCBsb2FkZXIsIGlkZW50aWZpZXIsIGRhdGFMZW5ndGgs
IGVuY29kZWREYXRhTGVuZ3RoKTsKIAogICAgIGlmIChlcnJvci5pc051bGwoKSkKLSAgICAgICAg
ZGlzcGF0Y2hEaWRGaW5pc2hMb2FkaW5nKGxvYWRlciwgaWRlbnRpZmllciwgMCk7CisgICAgICAg
IGRpc3BhdGNoRGlkRmluaXNoTG9hZGluZyh0cnVlLCBsb2FkZXIsIGlkZW50aWZpZXIsIDApOwog
ICAgIGVsc2UKICAgICAgICAgbV9mcmFtZS0+bG9hZGVyKCktPmNsaWVudCgpLT5kaXNwYXRjaERp
ZEZhaWxMb2FkaW5nKGxvYWRlciwgaWRlbnRpZmllciwgZXJyb3IpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZE5vdGlmaWVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkTm90aWZpZXIuaAppbmRleCBkYWZkNjE5NGNjZWM4MzI0
NWUyOGEyY2I4YWJiODk2YTI1MmJjMDM1Li5kY2M5YmFiZTBmY2U1ODUzMDdmOWY2NThiZWRiYjE2
N2M1NzZhMmY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2Fk
Tm90aWZpZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkTm90aWZp
ZXIuaApAQCAtNTEsMTcgKzUxLDE3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZFJlY2VpdmVBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZShSZXNvdXJjZUxvYWRlciosIGNvbnN0IEF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlJik7CiAgICAgdm9pZCBkaWRDYW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShS
ZXNvdXJjZUxvYWRlciosIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJik7CiAKLSAgICB2
b2lkIHdpbGxTZW5kUmVxdWVzdChSZXNvdXJjZUxvYWRlciosIFJlc291cmNlUmVxdWVzdCYsIGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpOwotICAgIHZvaWQgZGlkUmVj
ZWl2ZVJlc3BvbnNlKFJlc291cmNlTG9hZGVyKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwot
ICAgIHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VMb2FkZXIqLCBjb25zdCBjaGFyKiwgaW50
IGRhdGFMZW5ndGgsIGludCBlbmNvZGVkRGF0YUxlbmd0aCk7Ci0gICAgdm9pZCBkaWRGaW5pc2hM
b2FkKFJlc291cmNlTG9hZGVyKiwgZG91YmxlIGZpbmlzaFRpbWUpOwotICAgIHZvaWQgZGlkRmFp
bFRvTG9hZChSZXNvdXJjZUxvYWRlciosIGNvbnN0IFJlc291cmNlRXJyb3ImKTsKKyAgICB2b2lk
IHdpbGxTZW5kUmVxdWVzdChib29sIHNlbmRSZXNvdXJjZUxvYWRDYWxsYmFja3MsIFJlc291cmNl
TG9hZGVyKiwgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJl
Y3RSZXNwb25zZSk7CisgICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoYm9vbCBzZW5kUmVzb3Vy
Y2VMb2FkQ2FsbGJhY2tzLCBSZXNvdXJjZUxvYWRlciosIGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
KTsKKyAgICB2b2lkIGRpZFJlY2VpdmVEYXRhKGJvb2wgc2VuZFJlc291cmNlTG9hZENhbGxiYWNr
cywgUmVzb3VyY2VMb2FkZXIqLCBjb25zdCBjaGFyKiwgaW50IGRhdGFMZW5ndGgsIGludCBlbmNv
ZGVkRGF0YUxlbmd0aCk7CisgICAgdm9pZCBkaWRGaW5pc2hMb2FkKGJvb2wgc2VuZFJlc291cmNl
TG9hZENhbGxiYWNrcywgUmVzb3VyY2VMb2FkZXIqLCBkb3VibGUgZmluaXNoVGltZSk7CisgICAg
dm9pZCBkaWRGYWlsVG9Mb2FkKGJvb2wgc2VuZFJlc291cmNlTG9hZENhbGxiYWNrcywgUmVzb3Vy
Y2VMb2FkZXIqLCBjb25zdCBSZXNvdXJjZUVycm9yJik7CiAKICAgICB2b2lkIGFzc2lnbklkZW50
aWZpZXJUb0luaXRpYWxSZXF1ZXN0KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRM
b2FkZXIqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKLSAgICB2b2lkIGRpc3BhdGNoV2lsbFNl
bmRSZXF1ZXN0KERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBSZXNv
dXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKTsK
LSAgICB2b2lkIGRpc3BhdGNoRGlkUmVjZWl2ZVJlc3BvbnNlKERvY3VtZW50TG9hZGVyKiwgdW5z
aWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7Ci0gICAgdm9p
ZCBkaXNwYXRjaERpZFJlY2VpdmVDb250ZW50TGVuZ3RoKERvY3VtZW50TG9hZGVyKiwgdW5zaWdu
ZWQgbG9uZyBpZGVudGlmaWVyLCBpbnQgZGF0YUxlbmd0aCwgaW50IGVuY29kZWREYXRhTGVuZ3Ro
KTsKLSAgICB2b2lkIGRpc3BhdGNoRGlkRmluaXNoTG9hZGluZyhEb2N1bWVudExvYWRlciosIHVu
c2lnbmVkIGxvbmcgaWRlbnRpZmllciwgZG91YmxlIGZpbmlzaFRpbWUpOworICAgIHZvaWQgZGlz
cGF0Y2hXaWxsU2VuZFJlcXVlc3QoYm9vbCBzZW5kUmVzb3VyY2VMb2FkQ2FsbGJhY2tzLCBEb2N1
bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgUmVzb3VyY2VSZXF1ZXN0Jiwg
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSk7CisgICAgdm9pZCBkaXNw
YXRjaERpZFJlY2VpdmVSZXNwb25zZShib29sIHNlbmRSZXNvdXJjZUxvYWRDYWxsYmFja3MsIERv
Y3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJik7CisgICAgdm9pZCBkaXNwYXRjaERpZFJlY2VpdmVDb250ZW50TGVuZ3RoKGJvb2wg
c2VuZFJlc291cmNlTG9hZENhbGxiYWNrcywgRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25n
IGlkZW50aWZpZXIsIGludCBkYXRhTGVuZ3RoLCBpbnQgZW5jb2RlZERhdGFMZW5ndGgpOworICAg
IHZvaWQgZGlzcGF0Y2hEaWRGaW5pc2hMb2FkaW5nKGJvb2wgc2VuZFJlc291cmNlTG9hZENhbGxi
YWNrcywgRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGRvdWJsZSBm
aW5pc2hUaW1lKTsKICAgICB2b2lkIGRpc3BhdGNoVHJhbnNmZXJMb2FkaW5nUmVzb3VyY2VGcm9t
UGFnZSh1bnNpZ25lZCBsb25nLCBEb2N1bWVudExvYWRlciosIGNvbnN0IFJlc291cmNlUmVxdWVz
dCYsIFBhZ2UqKTsKIAogICAgIHZvaWQgc2VuZFJlbWFpbmluZ0RlbGVnYXRlTWVzc2FnZXMoRG9j
dW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmLCBpbnQgZGF0YUxlbmd0aCwgaW50IGVuY29kZWREYXRhTGVuZ3RoLCBjb25zdCBSZXNv
dXJjZUVycm9yJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VM
b2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcAppbmRl
eCBmOTJhNmQ1NTc3Y2ZmOTgyYzQ1YzQxZGQxYzEwMTUxMmEwOGRkYmVmLi42MDY1YmIwODJiYmQ5
NzZiNjg5YWYyMTQwNDM0NWU1YjIyZjA4OGE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNv
dXJjZUxvYWRlci5jcHAKQEAgLTIzMCwxNCArMjMwLDEyIEBAIHZvaWQgUmVzb3VyY2VMb2FkZXI6
OndpbGxTZW5kUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNl
UmVzCiAKICAgICBBU1NFUlQoIW1fcmVhY2hlZFRlcm1pbmFsU3RhdGUpOwogCi0gICAgaWYgKG1f
c2VuZFJlc291cmNlTG9hZENhbGxiYWNrcykgewotICAgICAgICBpZiAoIW1faWRlbnRpZmllcikg
ewotICAgICAgICAgICAgbV9pZGVudGlmaWVyID0gbV9mcmFtZS0+cGFnZSgpLT5wcm9ncmVzcygp
LT5jcmVhdGVVbmlxdWVJZGVudGlmaWVyKCk7CisgICAgaWYgKCFtX2lkZW50aWZpZXIpIHsKKyAg
ICAgICAgbV9pZGVudGlmaWVyID0gbV9mcmFtZS0+cGFnZSgpLT5wcm9ncmVzcygpLT5jcmVhdGVV
bmlxdWVJZGVudGlmaWVyKCk7CisgICAgICAgIGlmIChtX3NlbmRSZXNvdXJjZUxvYWRDYWxsYmFj
a3MpCiAgICAgICAgICAgICBmcmFtZUxvYWRlcigpLT5ub3RpZmllcigpLT5hc3NpZ25JZGVudGlm
aWVyVG9Jbml0aWFsUmVxdWVzdChtX2lkZW50aWZpZXIsIGRvY3VtZW50TG9hZGVyKCksIHJlcXVl
c3QpOwotICAgICAgICB9Ci0KLSAgICAgICAgZnJhbWVMb2FkZXIoKS0+bm90aWZpZXIoKS0+d2ls
bFNlbmRSZXF1ZXN0KHRoaXMsIHJlcXVlc3QsIHJlZGlyZWN0UmVzcG9uc2UpOwogICAgIH0KKyAg
ICBmcmFtZUxvYWRlcigpLT5ub3RpZmllcigpLT53aWxsU2VuZFJlcXVlc3QobV9zZW5kUmVzb3Vy
Y2VMb2FkQ2FsbGJhY2tzLCB0aGlzLCByZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlKTsKIAogICAg
IGlmICghcmVkaXJlY3RSZXNwb25zZS5pc051bGwoKSkKICAgICAgICAgcmVzb3VyY2VMb2FkU2No
ZWR1bGVyKCktPmNyb3NzT3JpZ2luUmVkaXJlY3RSZWNlaXZlZCh0aGlzLCByZXF1ZXN0LnVybCgp
KTsKQEAgLTI2MSw4ICsyNTksNyBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVz
cG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcikKICAgICBpZiAoRm9ybURhdGEqIGRhdGEg
PSBtX3JlcXVlc3QuaHR0cEJvZHkoKSkKICAgICAgICAgZGF0YS0+cmVtb3ZlR2VuZXJhdGVkRmls
ZXNJZk5lZWRlZCgpOwogICAgICAgICAKLSAgICBpZiAobV9zZW5kUmVzb3VyY2VMb2FkQ2FsbGJh
Y2tzKQotICAgICAgICBmcmFtZUxvYWRlcigpLT5ub3RpZmllcigpLT5kaWRSZWNlaXZlUmVzcG9u
c2UodGhpcywgbV9yZXNwb25zZSk7CisgICAgZnJhbWVMb2FkZXIoKS0+bm90aWZpZXIoKS0+ZGlk
UmVjZWl2ZVJlc3BvbnNlKG1fc2VuZFJlc291cmNlTG9hZENhbGxiYWNrcywgdGhpcywgbV9yZXNw
b25zZSk7CiB9CiAKIHZvaWQgUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKGNvbnN0IGNo
YXIqIGRhdGEsIGludCBsZW5ndGgsIGxvbmcgbG9uZyBlbmNvZGVkRGF0YUxlbmd0aCwgYm9vbCBh
bGxBdE9uY2UpCkBAIC0yODEsOCArMjc4LDggQEAgdm9pZCBSZXNvdXJjZUxvYWRlcjo6ZGlkUmVj
ZWl2ZURhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCwgbG9uZyBsb25nIGVuY28KICAg
ICAvLyBGSVhNRTogSWYgd2UgZ2V0IGEgcmVzb3VyY2Ugd2l0aCBtb3JlIHRoYW4gMkIgYnl0ZXMs
IHRoaXMgY29kZSB3b24ndCBkbyB0aGUgcmlnaHQgdGhpbmcuCiAgICAgLy8gSG93ZXZlciwgd2l0
aCB0b2RheSdzIGNvbXB1dGVycyBhbmQgbmV0d29ya2luZyBzcGVlZHMsIHRoaXMgd29uJ3QgaGFw
cGVuIGluIHByYWN0aWNlLgogICAgIC8vIENvdWxkIGJlIGFuIGlzc3VlIHdpdGggYSBnaWFudCBs
b2NhbCBmaWxlLgotICAgIGlmIChtX3NlbmRSZXNvdXJjZUxvYWRDYWxsYmFja3MgJiYgbV9mcmFt
ZSkKLSAgICAgICAgZnJhbWVMb2FkZXIoKS0+bm90aWZpZXIoKS0+ZGlkUmVjZWl2ZURhdGEodGhp
cywgZGF0YSwgbGVuZ3RoLCBzdGF0aWNfY2FzdDxpbnQ+KGVuY29kZWREYXRhTGVuZ3RoKSk7Cisg
ICAgaWYgKG1fZnJhbWUpCisgICAgICAgIGZyYW1lTG9hZGVyKCktPm5vdGlmaWVyKCktPmRpZFJl
Y2VpdmVEYXRhKG1fc2VuZFJlc291cmNlTG9hZENhbGxiYWNrcywgdGhpcywgZGF0YSwgbGVuZ3Ro
LCBzdGF0aWNfY2FzdDxpbnQ+KGVuY29kZWREYXRhTGVuZ3RoKSk7CiB9CiAKIHZvaWQgUmVzb3Vy
Y2VMb2FkZXI6OndpbGxTdG9wQnVmZmVyaW5nRGF0YShjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVu
Z3RoKQpAQCAtMzE1LDggKzMxMiw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkZXI6OmRpZEZpbmlzaExv
YWRpbmdPbmVQYXJ0KGRvdWJsZSBmaW5pc2hUaW1lKQogICAgIGlmIChtX2NhbGxlZERpZEZpbmlz
aExvYWQpCiAgICAgICAgIHJldHVybjsKICAgICBtX2NhbGxlZERpZEZpbmlzaExvYWQgPSB0cnVl
OwotICAgIGlmIChtX3NlbmRSZXNvdXJjZUxvYWRDYWxsYmFja3MpCi0gICAgICAgIGZyYW1lTG9h
ZGVyKCktPm5vdGlmaWVyKCktPmRpZEZpbmlzaExvYWQodGhpcywgZmluaXNoVGltZSk7CisgICAg
ZnJhbWVMb2FkZXIoKS0+bm90aWZpZXIoKS0+ZGlkRmluaXNoTG9hZChtX3NlbmRSZXNvdXJjZUxv
YWRDYWxsYmFja3MsIHRoaXMsIGZpbmlzaFRpbWUpOwogfQogCiB2b2lkIFJlc291cmNlTG9hZGVy
OjpkaWRGYWlsKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQpAQCAtMzMyLDggKzMyOCw4IEBA
IHZvaWQgUmVzb3VyY2VMb2FkZXI6OmRpZEZhaWwoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3Ip
CiAgICAgaWYgKEZvcm1EYXRhKiBkYXRhID0gbV9yZXF1ZXN0Lmh0dHBCb2R5KCkpCiAgICAgICAg
IGRhdGEtPnJlbW92ZUdlbmVyYXRlZEZpbGVzSWZOZWVkZWQoKTsKIAotICAgIGlmIChtX3NlbmRS
ZXNvdXJjZUxvYWRDYWxsYmFja3MgJiYgIW1fY2FsbGVkRGlkRmluaXNoTG9hZCkKLSAgICAgICAg
ZnJhbWVMb2FkZXIoKS0+bm90aWZpZXIoKS0+ZGlkRmFpbFRvTG9hZCh0aGlzLCBlcnJvcik7Cisg
ICAgaWYgKCFtX2NhbGxlZERpZEZpbmlzaExvYWQpCisgICAgICAgIGZyYW1lTG9hZGVyKCktPm5v
dGlmaWVyKCktPmRpZEZhaWxUb0xvYWQobV9zZW5kUmVzb3VyY2VMb2FkQ2FsbGJhY2tzLCB0aGlz
LCBlcnJvcik7CiAKICAgICByZWxlYXNlUmVzb3VyY2VzKCk7CiB9CkBAIC0zODAsOCArMzc2LDgg
QEAgdm9pZCBSZXNvdXJjZUxvYWRlcjo6Y2FuY2VsKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9y
KQogICAgICAgICAgICAgbV9oYW5kbGUgPSAwOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKG1f
c2VuZFJlc291cmNlTG9hZENhbGxiYWNrcyAmJiBtX2lkZW50aWZpZXIgJiYgIW1fY2FsbGVkRGlk
RmluaXNoTG9hZCkKLSAgICAgICAgICAgIGZyYW1lTG9hZGVyKCktPm5vdGlmaWVyKCktPmRpZEZh
aWxUb0xvYWQodGhpcywgbm9uTnVsbEVycm9yKTsKKyAgICAgICAgaWYgKG1faWRlbnRpZmllciAm
JiAhbV9jYWxsZWREaWRGaW5pc2hMb2FkKQorICAgICAgICAgICAgZnJhbWVMb2FkZXIoKS0+bm90
aWZpZXIoKS0+ZGlkRmFpbFRvTG9hZChtX3NlbmRSZXNvdXJjZUxvYWRDYWxsYmFja3MsIHRoaXMs
IG5vbk51bGxFcnJvcik7CiAgICAgfQogCiAgICAgLy8gSWYgY2FuY2VsKCkgY29tcGxldGVkIGZy
b20gd2l0aGluIHRoZSBjYWxsIHRvIHdpbGxDYW5jZWwoKSBvciBkaWRGYWlsVG9Mb2FkKCksCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvbWFjL1Jlc291cmNlTG9hZGVyTWFjLm1t
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL21hYy9SZXNvdXJjZUxvYWRlck1hYy5tbQppbmRleCAz
MmYzYmY0MjM5NWViZmZiZDAzNzAzMjBjMDhhNGE4YWNjODZlNDQzLi4yY2U0MDRhZjE0MTU4MzJm
NTgyOTdhMDQyYWYyZTM0ZjA3YzA1OWRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvbWFjL1Jlc291cmNlTG9hZGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9t
YWMvUmVzb3VyY2VMb2FkZXJNYWMubW0KQEAgLTkyLDggKzkyLDggQEAgdm9pZCBSZXNvdXJjZUxv
YWRlcjo6ZGlkUmVjZWl2ZURhdGFBcnJheShDRkFycmF5UmVmIGRhdGFBcnJheSkKICAgICAgICAg
Ly8gRklYTUU6IElmIHdlIGdldCBhIHJlc291cmNlIHdpdGggbW9yZSB0aGFuIDJCIGJ5dGVzLCB0
aGlzIGNvZGUgd29uJ3QgZG8gdGhlIHJpZ2h0IHRoaW5nLgogICAgICAgICAvLyBIb3dldmVyLCB3
aXRoIHRvZGF5J3MgY29tcHV0ZXJzIGFuZCBuZXR3b3JraW5nIHNwZWVkcywgdGhpcyB3b24ndCBo
YXBwZW4gaW4gcHJhY3RpY2UuCiAgICAgICAgIC8vIENvdWxkIGJlIGFuIGlzc3VlIHdpdGggYSBn
aWFudCBsb2NhbCBmaWxlLgotICAgICAgICBpZiAobV9zZW5kUmVzb3VyY2VMb2FkQ2FsbGJhY2tz
ICYmIG1fZnJhbWUpCi0gICAgICAgICAgICBmcmFtZUxvYWRlcigpLT5ub3RpZmllcigpLT5kaWRS
ZWNlaXZlRGF0YSh0aGlzLCByZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihDRkRhdGFHZXRC
eXRlUHRyKGRhdGEpKSwgZGF0YUxlbiwgZGF0YUxlbik7CisgICAgICAgIGlmIChtX2ZyYW1lKQor
ICAgICAgICAgICAgZnJhbWVMb2FkZXIoKS0+bm90aWZpZXIoKS0+ZGlkUmVjZWl2ZURhdGEobV9z
ZW5kUmVzb3VyY2VMb2FkQ2FsbGJhY2tzLCB0aGlzLCByZWludGVycHJldF9jYXN0PGNvbnN0IGNo
YXIqPihDRkRhdGFHZXRCeXRlUHRyKGRhdGEpKSwgZGF0YUxlbiwgZGF0YUxlbik7CiAgICAgfQog
fQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>99462</attachid>
            <date>2011-07-01 05:28:47 -0700</date>
            <delta_ts>2011-07-03 04:47:35 -0700</delta_ts>
            <desc>Patch with different approach</desc>
            <filename>bug-63712-20110701162845.patch</filename>
            <type>text/plain</type>
            <size>12076</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTAyMjAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBiNzkxMjk5NzY1MjhhMjAyNzg4MGYz
NTM0YzA3ZTI2YzRmMzI0NGRjLi5lMTMwY2U2NjExZWJhZTc2NjVjOTJlMDM2YjJmNDQzNjhkNTgy
ZjAxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDctMDEgIFZzZXZvbG9kIFZsYXNvdiAg
PHZzZXZpa0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogUHJlZmxpZ2h0IE9QVElPTlMgcmVxdWVzdHMg
YXJlIG5vdCBzaG93biBvbiBuZXR3b3JrIHBhbmVsIGZvciBhc3luY2hyb25vdXMgWEhScy4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYzNzEyCisKKyAg
ICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrLXByZWZsaWdodC1vcHRpb25zLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrLXByZWZs
aWdodC1vcHRpb25zLmh0bWw6CisKIDIwMTEtMDctMDEgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gVXBkYXRlIHRleHQgZXhwZWN0YXRpb24g
Zm9yIFZpc3RhLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
bmV0d29yay1wcmVmbGlnaHQtb3B0aW9ucy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrLXByZWZsaWdodC1vcHRpb25zLWV4cGVjdGVkLnR4dApp
bmRleCAyMTk0MGI1ZmY4NmNmYmJhMDA1OThkMGY5ZmYxNzIzZWQ0NDYxOWE3Li44MzZkMzcyMzk5
YjFmMzcxYTEzYTRhNzIwNmRhZmEyNzJlNWEwNDg3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrLXByZWZsaWdodC1vcHRpb25zLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrLXByZWZsaWdo
dC1vcHRpb25zLWV4cGVjdGVkLnR4dApAQCAtMSw5ICsxLDE1IEBACiBDT05TT0xFIE1FU1NBR0U6
IGxpbmUgMTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cDovL2xvY2FsaG9zdDo4MDAw
L2luc3BlY3Rvci9yZXNvdXJjZXMvY29ycy10YXJnZXQucGhwP2Rlbnk9eWVzLiBPcmlnaW4gaHR0
cDovLzEyNy4wLjAuMTo4MDAwIGlzIG5vdCBhbGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93
LU9yaWdpbi4KIENPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBYTUxIdHRwUmVxdWVzdCBjYW5ub3Qg
bG9hZCBodHRwOi8vbG9jYWxob3N0OjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy9jb3JzLXRhcmdl
dC5waHA/ZGVueT15ZXMuIE9yaWdpbiBodHRwOi8vMTI3LjAuMC4xOjgwMDAgaXMgbm90IGFsbG93
ZWQgYnkgQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luLgorQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDE6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9pbnNw
ZWN0b3IvcmVzb3VyY2VzL2NvcnMtdGFyZ2V0LnBocD9kZW55PXllcy4gT3JpZ2luIGh0dHA6Ly8x
MjcuMC4wLjE6ODAwMCBpcyBub3QgYWxsb3dlZCBieSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1Pcmln
aW4uCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQg
aHR0cDovL2xvY2FsaG9zdDo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMvY29ycy10YXJnZXQucGhw
P2Rlbnk9eWVzLiBPcmlnaW4gaHR0cDovLzEyNy4wLjAuMTo4MDAwIGlzIG5vdCBhbGxvd2VkIGJ5
IEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4KIFRlc3RzIHRoYXQgcHJlZmxpZ2h0IE9QVElP
TlMgcmVxdWVzdHMgYXBwZWFyIGluIE5ldHdvcmsgcmVzb3VyY2VzCiAKIFBPU1QgaHR0cDovL2xv
Y2FsaG9zdDo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMvY29ycy10YXJnZXQucGhwP2Rlbnk9eWVz
CiBPUFRJT05TIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzL2NvcnMt
dGFyZ2V0LnBocD9kZW55PXllcwogT1BUSU9OUyBodHRwOi8vbG9jYWxob3N0OjgwMDAvaW5zcGVj
dG9yL3Jlc291cmNlcy9jb3JzLXRhcmdldC5waHAKIFBPU1QgaHR0cDovL2xvY2FsaG9zdDo4MDAw
L2luc3BlY3Rvci9yZXNvdXJjZXMvY29ycy10YXJnZXQucGhwCitQT1NUIGh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzL2NvcnMtdGFyZ2V0LnBocD9kZW55PXllcworT1BU
SU9OUyBodHRwOi8vbG9jYWxob3N0OjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy9jb3JzLXRhcmdl
dC5waHA/ZGVueT15ZXMKK09QVElPTlMgaHR0cDovL2xvY2FsaG9zdDo4MDAwL2luc3BlY3Rvci9y
ZXNvdXJjZXMvY29ycy10YXJnZXQucGhwP2FzeW5jPXllcworUE9TVCBodHRwOi8vbG9jYWxob3N0
OjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy9jb3JzLXRhcmdldC5waHA/YXN5bmM9eWVzCiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmstcHJlZmxp
Z2h0LW9wdGlvbnMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdv
cmstcHJlZmxpZ2h0LW9wdGlvbnMuaHRtbAppbmRleCA2NWRjMTNkMmVhYTY2Y2E2MzI1MWNjYzhl
Y2NjMTc3ZWU5NjBkYjhlLi5jZWVkZTg3MWI5ZDVhNjg1Zjg4ZWFkYzhhYWNhZWJiMTBlNjk5MDlj
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrLXBy
ZWZsaWdodC1vcHRpb25zLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3IvbmV0d29yay1wcmVmbGlnaHQtb3B0aW9ucy5odG1sCkBAIC0zLDEwICszLDEwIEBACiA8c2Ny
aXB0IHNyYz0iaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiPgogCi1mdW5jdGlvbiBzZW5kWEhSKHVybCwgZm9yY2VQcmVmbGlnaHQpCitm
dW5jdGlvbiBzZW5kWEhSKHVybCwgZm9yY2VQcmVmbGlnaHQsIGFzeW5jKQogewogICAgIHZhciB4
aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKLSAgICB4aHIub3BlbigiUE9TVCIsIHVybCwgZmFs
c2UpOworICAgIHhoci5vcGVuKCJQT1NUIiwgdXJsLCBhc3luYyk7CiAgICAgeGhyLnNldFJlcXVl
c3RIZWFkZXIoIkNvbnRlbnQtVHlwZSIsIGZvcmNlUHJlZmxpZ2h0ID8gImFwcGxpY2F0aW9uL3ht
bCIgOiAidGV4dC9wbGFpbiIpOwogICAgIHRyeSB7CiAgICAgICAgIHhoci5zZW5kKCI8eG1sPjwv
eG1sPiIpOyAgLy8gRGVuaWVkIHJlcXVlc3RzIHdpbGwgY2F1c2UgZXhjZXB0aW9ucy4KQEAgLTE3
LDIzICsxNywzMyBAQCBmdW5jdGlvbiBzZW5kWEhSKHVybCwgZm9yY2VQcmVmbGlnaHQpCiBmdW5j
dGlvbiBkb0Nyb3NzT3JpZ2luWEhSKCkKIHsKICAgICB2YXIgdGFyZ2V0VVJMID0gImh0dHA6Ly9s
b2NhbGhvc3Q6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzL2NvcnMtdGFyZ2V0LnBocCI7CisKICAg
ICAvLyBGYWlsZWQgUE9TVHMgd2l0aCBubyBwcmVmbGlnaHQgY2hlY2sgc2hvdWxkIHJlc3VsdCBp
biBhIFBPU1QgcmVxdWVzdCBiZWluZyBsb2dnZWQKLSAgICBzZW5kWEhSKHRhcmdldFVSTCArICI/
ZGVueT15ZXMiLCBmYWxzZSk7CisgICAgc2VuZFhIUih0YXJnZXRVUkwgKyAiP2Rlbnk9eWVzIiwg
ZmFsc2UsIGZhbHNlKTsKICAgICAvLyBGYWlsZWQgUE9TVHMgd2l0aCBwcmVmbGlnaHQgY2hlY2sg
c2hvdWxkIHJlc3VsdCBpbiBhbiBPUFRJT05TIHJlcXVlc3QgYmVpbmcgbG9nZ2VkCi0gICAgc2Vu
ZFhIUih0YXJnZXRVUkwgKyAiP2Rlbnk9eWVzIiwgdHJ1ZSk7CisgICAgc2VuZFhIUih0YXJnZXRV
UkwgKyAiP2Rlbnk9eWVzIiwgdHJ1ZSwgZmFsc2UpOwogICAgIC8vIFN1Y2Nlc3NmdWwgUE9TVHMg
d2l0aCBwcmVmbGlnaHQgY2hlY2sgc2hvdWxkIHJlc3VsdCBpbiBhbiBPUFRJT05TIHJlcXVlc3Qg
Zm9sbG93ZWQgYnkgUE9TVCByZXF1ZXN0IGJlaW5nIGxvZ2dlZAotICAgIC8vIEdlbmVyYXRlIHJl
cXVlc3QgbmFtZSBiYXNlZCBvbiB0aW1lc3RhbXAgdG8gZGVmZWF0IGNhY2hpbmcgKHRoaXMgaXMg
b25seSByZWxldmFudCBmb3IgcmVwZWF0ZWQgaW52b2NhdGlvbnMgb2YgdGhlIHRlc3QgaW4gc2ln
bmxlIGluc3RhbmNlIG9mIERSVCkKLSAgICBzZW5kWEhSKHRhcmdldFVSTCArICI/ZGF0ZT0iICsg
RGF0ZS5ub3coKSwgdHJ1ZSk7CisgICAgLy8gR2VuZXJhdGUgcmVxdWVzdCBuYW1lIGJhc2VkIG9u
IHRpbWVzdGFtcCB0byBkZWZlYXQgT1BUSU9OUyByZXF1ZXN0IGNhY2hpbmcgKHRoaXMgaXMgb25s
eSByZWxldmFudCBmb3IgcmVwZWF0ZWQgaW52b2NhdGlvbnMgb2YgdGhlIHRlc3QgaW4gc2lnbmxl
IGluc3RhbmNlIG9mIERSVCkKKyAgICBzZW5kWEhSKHRhcmdldFVSTCArICI/ZGF0ZT0iICsgRGF0
ZS5ub3coKSwgdHJ1ZSwgZmFsc2UpOworCisgICAgLy8gQW5kIG5vdyBzZW5kIHRoZSBzYW1lIHJl
cXVlc3RzIGFzeW5jaHJvbm91c2x5CisgICAgLy8gQWRkIHJlZHVuZGFudCBhc3luYyBwYXJhbWV0
ZXIgdG8gZW5zdXJlIHRoaXMgcmVxdWVzdCBkaWZmZXJzIGZyb20gdGhlIG9uZSBhYm92ZS4KKyAg
ICBzZW5kWEhSKHRhcmdldFVSTCArICI/ZGVueT15ZXMiLCBmYWxzZSwgdHJ1ZSk7CisgICAgc2Vu
ZFhIUih0YXJnZXRVUkwgKyAiP2Rlbnk9eWVzIiwgdHJ1ZSwgdHJ1ZSk7CisgICAgc2VuZFhIUih0
YXJnZXRVUkwgKyAiP2FzeW5jPXllcyZkYXRlPSIgKyBEYXRlLm5vdygpLCB0cnVlLCB0cnVlKTsK
IH0KIAogdmFyIHRlc3QgPSBmdW5jdGlvbigpCiB7CisgICAgdmFyIHBvc3RSZXF1ZXN0c0NvdW50
ID0gMDsKICAgICBmdW5jdGlvbiBvblJlc291cmNlKGV2ZW50KQogICAgIHsKICAgICAgICAgdmFy
IHJlc291cmNlID0gZXZlbnQuZGF0YTsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
cmVzb3VyY2UucmVxdWVzdE1ldGhvZCArICIgIiArICByZXNvdXJjZS51cmwucmVwbGFjZSgvWyY/
XWRhdGU9XGQrLywgIiIpKTsKLSAgICAgICAgaWYgKHJlc291cmNlLnJlcXVlc3RNZXRob2QgPT09
ICJQT1NUIiAmJiAhL1w/ZGVueT15ZXMvLnRlc3QocmVzb3VyY2UudXJsKSkKKyAgICAgICAgaWYg
KHJlc291cmNlLnJlcXVlc3RNZXRob2QgPT09ICJQT1NUIiAmJiArK3Bvc3RSZXF1ZXN0c0NvdW50
ID09IDQpCiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAgICAg
ICAvL2lmIChyZXNvdXJjZS5yZXF1ZXN0TWV0aG9kID09PSAiUE9TVCIgJiYgIS9cP2Rlbnk9eWVz
Ly50ZXN0KHJlc291cmNlLnVybCkpCisgICAgICAgICAgICAvL0luc3BlY3RvclRlc3QuY29tcGxl
dGVUZXN0KCk7CiAgICAgfQogICAgIFdlYkluc3BlY3Rvci5uZXR3b3JrTWFuYWdlci5hZGRFdmVu
dExpc3RlbmVyKFdlYkluc3BlY3Rvci5OZXR3b3JrTWFuYWdlci5FdmVudFR5cGVzLlJlc291cmNl
RmluaXNoZWQsIG9uUmVzb3VyY2UpOwogICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2Uo
ImRvQ3Jvc3NPcmlnaW5YSFIoKTsiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxOTNkZjBkNDczMTA3NjFlOGMw
Mjk4OTgwNzk5MzIyNWVmNjdiYjRiLi41ZWRiMDc2Yzk5MWFiYjJkZTQ3ODhmZGY2OGIyYmQ4Yzgx
YzE4YTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMDctMDEgIFZzZXZvbG9k
IFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogUHJlZmxpZ2h0IE9QVElPTlMg
cmVxdWVzdHMgYXJlIG5vdCBzaG93biBvbiBuZXR3b3JrIHBhbmVsIGZvciBhc3luY2hyb25vdXMg
WEhScy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYz
NzEyCisKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6RG9jdW1lbnRUaHJlYWRh
YmxlTG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6
ZGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50VGhyZWFkYWJs
ZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRUaHJl
YWRhYmxlTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50VGhyZWFkYWJsZUxvYWRlcjo6ZGlkRmFpbCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dFRocmVhZGFibGVMb2FkZXI6OmxvYWRSZXF1ZXN0KToKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1l
bnRUaHJlYWRhYmxlTG9hZGVyLmg6CisKIDIwMTEtMDctMDEgIERpcmsgU2NodWx6ZSAgPGtyaXRA
d2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBOaWtvbGFzIFppbW1lcm1hbm4uCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3Bw
CmluZGV4IDUzZTJjZjI0MDFmZmU0YmIyYzk0MjA2Y2EyZDIzMTE3ODNiMTEzNTMuLmJhNzUyNGUy
ZjlmMDgwZTllM2EwNzY4YmFhNjA1N2ViY2Q3NjE3OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwCkBAIC00Niw2ICs0NiwxMSBA
QAogI2luY2x1ZGUgIlRocmVhZGFibGVMb2FkZXJDbGllbnQuaCIKICNpbmNsdWRlIDx3dGYvVW51
c2VkUGFyYW0uaD4KIAorI2lmIEVOQUJMRShJTlNQRUNUT1IpCisjaW5jbHVkZSAiSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uLmgiCisjaW5jbHVkZSAiUHJvZ3Jlc3NUcmFja2VyLmgiCisjZW5kaWYK
KwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiB2b2lkIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6
bG9hZFJlc291cmNlU3luY2hyb25vdXNseShEb2N1bWVudCogZG9jdW1lbnQsIGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCwgVGhyZWFkYWJsZUxvYWRlckNsaWVudCYgY2xpZW50LCBjb25z
dCBUaHJlYWRhYmxlTG9hZGVyT3B0aW9ucyYgb3B0aW9ucykKQEAgLTY5LDYgKzc0LDkgQEAgRG9j
dW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpEb2N1bWVudFRocmVhZGFibGVMb2FkZXIoRG9jdW1lbnQq
IGRvY3VtZW50LCBUaHJlYWRhYmwKICAgICAsIG1fb3B0aW9ucyhvcHRpb25zKQogICAgICwgbV9z
YW1lT3JpZ2luUmVxdWVzdChzZWN1cml0eU9yaWdpbigpLT5jYW5SZXF1ZXN0KHJlcXVlc3QudXJs
KCkpKQogICAgICwgbV9hc3luYyhibG9ja2luZ0JlaGF2aW9yID09IExvYWRBc3luY2hyb25vdXNs
eSkKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQorICAgICwgbV9wcmVmbGlnaHRSZXF1ZXN0SWRlbnRp
ZmllcigwKQorI2VuZGlmCiB7CiAgICAgQVNTRVJUKGRvY3VtZW50KTsKICAgICBBU1NFUlQoY2xp
ZW50KTsKQEAgLTE3OCw2ICsxODYsMTQgQEAgdm9pZCBEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6
OmRpZFJlY2VpdmVSZXNwb25zZSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnMKIHsKICAg
ICBBU1NFUlQobV9jbGllbnQpOwogCisjaWYgRU5BQkxFKElOU1BFQ1RPUikKKyAgICBpZiAobV9w
cmVmbGlnaHRSZXF1ZXN0SWRlbnRpZmllcikgeworICAgICAgICBEb2N1bWVudExvYWRlciogbG9h
ZGVyID0gbV9kb2N1bWVudC0+ZnJhbWUoKS0+bG9hZGVyKCktPmRvY3VtZW50TG9hZGVyKCk7Cisg
ICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBjb29raWUgPSBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OndpbGxSZWNlaXZlUmVzb3VyY2VSZXNwb25zZShtX2RvY3VtZW50LT5m
cmFtZSgpLCBtX3ByZWZsaWdodFJlcXVlc3RJZGVudGlmaWVyLCByZXNwb25zZSk7CisgICAgICAg
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZVJlc291cmNlUmVzcG9uc2UoY29v
a2llLCBtX3ByZWZsaWdodFJlcXVlc3RJZGVudGlmaWVyLCBsb2FkZXIsIHJlc3BvbnNlKTsKKyAg
ICB9CisjZW5kaWYKKwogICAgIFN0cmluZyBhY2Nlc3NDb250cm9sRXJyb3JEZXNjcmlwdGlvbjsK
ICAgICBpZiAobV9hY3R1YWxSZXF1ZXN0KSB7CiAgICAgICAgIGlmICghcGFzc2VzQWNjZXNzQ29u
dHJvbENoZWNrKHJlc3BvbnNlLCBtX29wdGlvbnMuYWxsb3dDcmVkZW50aWFscywgc2VjdXJpdHlP
cmlnaW4oKSwgYWNjZXNzQ29udHJvbEVycm9yRGVzY3JpcHRpb24pKSB7CkBAIC0yMTEsNiArMjI3
LDExIEBAIHZvaWQgRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpkaWRSZWNlaXZlRGF0YShTdWJy
ZXNvdXJjZUxvYWRlciogbG9hZGVyLCBjb25zdCBjCiAgICAgQVNTRVJUKG1fY2xpZW50KTsKICAg
ICBBU1NFUlRfVU5VU0VEKGxvYWRlciwgbG9hZGVyID09IG1fbG9hZGVyKTsKIAorI2lmIEVOQUJM
RShJTlNQRUNUT1IpCisgICAgaWYgKG1fcHJlZmxpZ2h0UmVxdWVzdElkZW50aWZpZXIpCisgICAg
ICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgobV9k
b2N1bWVudC0+ZnJhbWUoKSwgbV9wcmVmbGlnaHRSZXF1ZXN0SWRlbnRpZmllciwgMCwgZGF0YUxl
bmd0aCk7CisjZW5kaWYKKwogICAgIC8vIFByZWZsaWdodCBkYXRhIHNob3VsZCBiZSBpbnZpc2li
bGUgdG8gY2xpZW50cy4KICAgICBpZiAobV9hY3R1YWxSZXF1ZXN0KQogICAgICAgICByZXR1cm47
CkBAIC0yMzksNiArMjYwLDEyIEBAIHZvaWQgRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpkaWRG
aW5pc2hMb2FkaW5nKFN1YnJlc291cmNlTG9hZGVyKiBsb2FkZXIsIGRvdWJsCiAKIHZvaWQgRG9j
dW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKHVuc2lnbmVkIGxvbmcgaWRl
bnRpZmllciwgZG91YmxlIGZpbmlzaFRpbWUpCiB7CisjaWYgRU5BQkxFKElOU1BFQ1RPUikKKyAg
ICAvLyBtX2FjdHVhbFJlcXVlc3QgbWlnaHQgaGF2ZSBiZWVuIHJlc2V0IHRvIG51bGwgaW4gcHJl
ZmxpZ2h0RmFpbHVyZSgpOworICAgIGlmIChtX3ByZWZsaWdodFJlcXVlc3RJZGVudGlmaWVyKQor
ICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZEZpbmlzaExvYWRpbmcobV9kb2N1
bWVudC0+ZnJhbWUoKSwgbV9kb2N1bWVudC0+ZnJhbWUoKS0+bG9hZGVyKCktPmRvY3VtZW50TG9h
ZGVyKCksIG1fcHJlZmxpZ2h0UmVxdWVzdElkZW50aWZpZXIsIGZpbmlzaFRpbWUpOworI2VuZGlm
CisKICAgICBpZiAobV9hY3R1YWxSZXF1ZXN0KSB7CiAgICAgICAgIEFTU0VSVCghbV9zYW1lT3Jp
Z2luUmVxdWVzdCk7CiAgICAgICAgIEFTU0VSVChtX29wdGlvbnMuY3Jvc3NPcmlnaW5SZXF1ZXN0
UG9saWN5ID09IFVzZUFjY2Vzc0NvbnRyb2wpOwpAQCAtMjUzLDYgKzI4MCwxMSBAQCB2b2lkIERv
Y3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6ZGlkRmFpbChTdWJyZXNvdXJjZUxvYWRlciogbG9hZGVy
LCBjb25zdCBSZXNvdXJjZQogICAgIC8vIG1fbG9hZGVyIG1heSBiZSBudWxsIGlmIHdlIGFycml2
ZSBoZXJlIHZpYSBTdWJyZXNvdXJjZUxvYWRlcjo6Y3JlYXRlIGluIHRoZSBjdG9yCiAgICAgQVNT
RVJUX1VOVVNFRChsb2FkZXIsIGxvYWRlciA9PSBtX2xvYWRlciB8fCAhbV9sb2FkZXIpOwogCisj
aWYgRU5BQkxFKElOU1BFQ1RPUikKKyAgICBpZiAobV9wcmVmbGlnaHRSZXF1ZXN0SWRlbnRpZmll
cikKKyAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRGYWlsTG9hZGluZyhtX2Rv
Y3VtZW50LT5mcmFtZSgpLCBtX2RvY3VtZW50LT5mcmFtZSgpLT5sb2FkZXIoKS0+ZG9jdW1lbnRM
b2FkZXIoKSwgbV9wcmVmbGlnaHRSZXF1ZXN0SWRlbnRpZmllciwgZXJyb3IpOworI2VuZGlmCisK
ICAgICBtX2NsaWVudC0+ZGlkRmFpbChlcnJvcik7CiB9CiAKQEAgLTMyMyw2ICszNTUsMTcgQEAg
dm9pZCBEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6OmxvYWRSZXF1ZXN0KGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCwgU2VjdXIKICAgICAgICAgLy8gS2VlcCBidWZmZXJpbmcgdGhlIGRh
dGEgZm9yIHRoZSBwcmVmbGlnaHQgcmVxdWVzdC4KICAgICAgICAgYm9vbCBzaG91bGRCdWZmZXJE
YXRhID0gbV9vcHRpb25zLnNob3VsZEJ1ZmZlckRhdGEgfHwgbV9hY3R1YWxSZXF1ZXN0OwogCisj
aWYgRU5BQkxFKElOU1BFQ1RPUikKKyAgICAgICAgaWYgKG1fYWN0dWFsUmVxdWVzdCkgeworICAg
ICAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IG5ld1JlcXVlc3QocmVxdWVzdCk7CisgICAgICAgICAg
ICAvLyBCZWNhdXNlIHdpbGxTZW5kUmVxdWVzdCBvbmx5IGdldHMgY2FsbGVkIGR1cmluZyByZWRp
cmVjdHMsIHdlIGluaXRpYWxpemUKKyAgICAgICAgICAgIC8vIHRoZSBpZGVudGlmaWVyIGFuZCB0
aGUgZmlyc3Qgd2lsbFNlbmRSZXF1ZXN0IGhlcmUuCisgICAgICAgICAgICBtX3ByZWZsaWdodFJl
cXVlc3RJZGVudGlmaWVyID0gbV9kb2N1bWVudC0+ZnJhbWUoKS0+cGFnZSgpLT5wcm9ncmVzcygp
LT5jcmVhdGVVbmlxdWVJZGVudGlmaWVyKCk7CisgICAgICAgICAgICBSZXNvdXJjZVJlc3BvbnNl
IHJlZGlyZWN0UmVzcG9uc2UgPSBSZXNvdXJjZVJlc3BvbnNlKCk7CisgICAgICAgICAgICBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxTZW5kUmVxdWVzdChtX2RvY3VtZW50LT5mcmFtZSgp
LCBtX3ByZWZsaWdodFJlcXVlc3RJZGVudGlmaWVyLCBtX2RvY3VtZW50LT5mcmFtZSgpLT5sb2Fk
ZXIoKS0+ZG9jdW1lbnRMb2FkZXIoKSwgbmV3UmVxdWVzdCwgcmVkaXJlY3RSZXNwb25zZSk7Cisg
ICAgICAgIH0KKyNlbmRpZgorCiAgICAgICAgIC8vIENsZWFyIHRoZSBsb2FkZXIgc28gdGhhdCBh
bnkgY2FsbGJhY2tzIGZyb20gU3VicmVzb3VyY2VMb2FkZXI6OmNyZWF0ZSB3aWxsIG5vdCBoYXZl
IHRoZSBvbGQgbG9hZGVyLgogICAgICAgICBtX2xvYWRlciA9IDA7CiAgICAgICAgIG1fbG9hZGVy
ID0gcmVzb3VyY2VMb2FkU2NoZWR1bGVyKCktPnNjaGVkdWxlU3VicmVzb3VyY2VMb2FkKG1fZG9j
dW1lbnQtPmZyYW1lKCksIHRoaXMsIHJlcXVlc3QsIFJlc291cmNlTG9hZFByaW9yaXR5TWVkaXVt
LCBzZWN1cml0eUNoZWNrLCBzZW5kTG9hZENhbGxiYWNrcywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuaAppbmRleCA0Yzc3MjdlY2I2MmFiZjhm
YzBlODlkYzIyMDUxYmVhYTg3YWRkOTJmLi42OTZlMmU1OWRkZTE5YTJmNmFjMzBiMjQ3NTc1ZjZl
NmI2MDJiOGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJl
YWRhYmxlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFk
YWJsZUxvYWRlci5oCkBAIC0xMDUsNiArMTA1LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgYm9vbCBtX3NhbWVPcmlnaW5SZXF1ZXN0OwogICAgICAgICBib29sIG1fYXN5bmM7CiAg
ICAgICAgIE93blB0cjxSZXNvdXJjZVJlcXVlc3Q+IG1fYWN0dWFsUmVxdWVzdDsgIC8vIG5vbi1u
dWxsIGR1cmluZyBBY2Nlc3MgQ29udHJvbCBwcmVmbGlnaHQgY2hlY2tzCisKKyNpZiBFTkFCTEUo
SU5TUEVDVE9SKQorICAgICAgICB1bnNpZ25lZCBsb25nIG1fcHJlZmxpZ2h0UmVxdWVzdElkZW50
aWZpZXI7CisjZW5kaWYKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>99572</attachid>
            <date>2011-07-03 04:47:43 -0700</date>
            <delta_ts>2011-07-03 08:58:51 -0700</delta_ts>
            <desc>Patchi with fixes</desc>
            <filename>bug-63712-20110703154741.patch</filename>
            <type>text/plain</type>
            <size>11918</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTAyMjQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBiNzkxMjk5NzY1MjhhMjAyNzg4MGYz
NTM0YzA3ZTI2YzRmMzI0NGRjLi5lMTMwY2U2NjExZWJhZTc2NjVjOTJlMDM2YjJmNDQzNjhkNTgy
ZjAxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDctMDEgIFZzZXZvbG9kIFZsYXNvdiAg
PHZzZXZpa0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogUHJlZmxpZ2h0IE9QVElPTlMgcmVxdWVzdHMg
YXJlIG5vdCBzaG93biBvbiBuZXR3b3JrIHBhbmVsIGZvciBhc3luY2hyb25vdXMgWEhScy4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYzNzEyCisKKyAg
ICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrLXByZWZsaWdodC1vcHRpb25zLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrLXByZWZs
aWdodC1vcHRpb25zLmh0bWw6CisKIDIwMTEtMDctMDEgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gVXBkYXRlIHRleHQgZXhwZWN0YXRpb24g
Zm9yIFZpc3RhLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
bmV0d29yay1wcmVmbGlnaHQtb3B0aW9ucy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrLXByZWZsaWdodC1vcHRpb25zLWV4cGVjdGVkLnR4dApp
bmRleCAyMTk0MGI1ZmY4NmNmYmJhMDA1OThkMGY5ZmYxNzIzZWQ0NDYxOWE3Li44MzZkMzcyMzk5
YjFmMzcxYTEzYTRhNzIwNmRhZmEyNzJlNWEwNDg3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrLXByZWZsaWdodC1vcHRpb25zLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrLXByZWZsaWdo
dC1vcHRpb25zLWV4cGVjdGVkLnR4dApAQCAtMSw5ICsxLDE1IEBACiBDT05TT0xFIE1FU1NBR0U6
IGxpbmUgMTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cDovL2xvY2FsaG9zdDo4MDAw
L2luc3BlY3Rvci9yZXNvdXJjZXMvY29ycy10YXJnZXQucGhwP2Rlbnk9eWVzLiBPcmlnaW4gaHR0
cDovLzEyNy4wLjAuMTo4MDAwIGlzIG5vdCBhbGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93
LU9yaWdpbi4KIENPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBYTUxIdHRwUmVxdWVzdCBjYW5ub3Qg
bG9hZCBodHRwOi8vbG9jYWxob3N0OjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy9jb3JzLXRhcmdl
dC5waHA/ZGVueT15ZXMuIE9yaWdpbiBodHRwOi8vMTI3LjAuMC4xOjgwMDAgaXMgbm90IGFsbG93
ZWQgYnkgQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luLgorQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDE6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9pbnNw
ZWN0b3IvcmVzb3VyY2VzL2NvcnMtdGFyZ2V0LnBocD9kZW55PXllcy4gT3JpZ2luIGh0dHA6Ly8x
MjcuMC4wLjE6ODAwMCBpcyBub3QgYWxsb3dlZCBieSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1Pcmln
aW4uCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQg
aHR0cDovL2xvY2FsaG9zdDo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMvY29ycy10YXJnZXQucGhw
P2Rlbnk9eWVzLiBPcmlnaW4gaHR0cDovLzEyNy4wLjAuMTo4MDAwIGlzIG5vdCBhbGxvd2VkIGJ5
IEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4KIFRlc3RzIHRoYXQgcHJlZmxpZ2h0IE9QVElP
TlMgcmVxdWVzdHMgYXBwZWFyIGluIE5ldHdvcmsgcmVzb3VyY2VzCiAKIFBPU1QgaHR0cDovL2xv
Y2FsaG9zdDo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMvY29ycy10YXJnZXQucGhwP2Rlbnk9eWVz
CiBPUFRJT05TIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzL2NvcnMt
dGFyZ2V0LnBocD9kZW55PXllcwogT1BUSU9OUyBodHRwOi8vbG9jYWxob3N0OjgwMDAvaW5zcGVj
dG9yL3Jlc291cmNlcy9jb3JzLXRhcmdldC5waHAKIFBPU1QgaHR0cDovL2xvY2FsaG9zdDo4MDAw
L2luc3BlY3Rvci9yZXNvdXJjZXMvY29ycy10YXJnZXQucGhwCitQT1NUIGh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzL2NvcnMtdGFyZ2V0LnBocD9kZW55PXllcworT1BU
SU9OUyBodHRwOi8vbG9jYWxob3N0OjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy9jb3JzLXRhcmdl
dC5waHA/ZGVueT15ZXMKK09QVElPTlMgaHR0cDovL2xvY2FsaG9zdDo4MDAwL2luc3BlY3Rvci9y
ZXNvdXJjZXMvY29ycy10YXJnZXQucGhwP2FzeW5jPXllcworUE9TVCBodHRwOi8vbG9jYWxob3N0
OjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy9jb3JzLXRhcmdldC5waHA/YXN5bmM9eWVzCiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmstcHJlZmxp
Z2h0LW9wdGlvbnMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdv
cmstcHJlZmxpZ2h0LW9wdGlvbnMuaHRtbAppbmRleCA2NWRjMTNkMmVhYTY2Y2E2MzI1MWNjYzhl
Y2NjMTc3ZWU5NjBkYjhlLi5lNzJiY2YxODkyZjE1OGRhZjU4YTMwM2IxM2NkYzRmMzg4ODJjZTc5
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrLXBy
ZWZsaWdodC1vcHRpb25zLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3IvbmV0d29yay1wcmVmbGlnaHQtb3B0aW9ucy5odG1sCkBAIC0zLDEwICszLDEwIEBACiA8c2Ny
aXB0IHNyYz0iaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiPgogCi1mdW5jdGlvbiBzZW5kWEhSKHVybCwgZm9yY2VQcmVmbGlnaHQpCitm
dW5jdGlvbiBzZW5kWEhSKHVybCwgZm9yY2VQcmVmbGlnaHQsIGFzeW5jKQogewogICAgIHZhciB4
aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKLSAgICB4aHIub3BlbigiUE9TVCIsIHVybCwgZmFs
c2UpOworICAgIHhoci5vcGVuKCJQT1NUIiwgdXJsLCBhc3luYyk7CiAgICAgeGhyLnNldFJlcXVl
c3RIZWFkZXIoIkNvbnRlbnQtVHlwZSIsIGZvcmNlUHJlZmxpZ2h0ID8gImFwcGxpY2F0aW9uL3ht
bCIgOiAidGV4dC9wbGFpbiIpOwogICAgIHRyeSB7CiAgICAgICAgIHhoci5zZW5kKCI8eG1sPjwv
eG1sPiIpOyAgLy8gRGVuaWVkIHJlcXVlc3RzIHdpbGwgY2F1c2UgZXhjZXB0aW9ucy4KQEAgLTE3
LDIyICsxNywzMCBAQCBmdW5jdGlvbiBzZW5kWEhSKHVybCwgZm9yY2VQcmVmbGlnaHQpCiBmdW5j
dGlvbiBkb0Nyb3NzT3JpZ2luWEhSKCkKIHsKICAgICB2YXIgdGFyZ2V0VVJMID0gImh0dHA6Ly9s
b2NhbGhvc3Q6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzL2NvcnMtdGFyZ2V0LnBocCI7CisKICAg
ICAvLyBGYWlsZWQgUE9TVHMgd2l0aCBubyBwcmVmbGlnaHQgY2hlY2sgc2hvdWxkIHJlc3VsdCBp
biBhIFBPU1QgcmVxdWVzdCBiZWluZyBsb2dnZWQKLSAgICBzZW5kWEhSKHRhcmdldFVSTCArICI/
ZGVueT15ZXMiLCBmYWxzZSk7CisgICAgc2VuZFhIUih0YXJnZXRVUkwgKyAiP2Rlbnk9eWVzIiwg
ZmFsc2UsIGZhbHNlKTsKICAgICAvLyBGYWlsZWQgUE9TVHMgd2l0aCBwcmVmbGlnaHQgY2hlY2sg
c2hvdWxkIHJlc3VsdCBpbiBhbiBPUFRJT05TIHJlcXVlc3QgYmVpbmcgbG9nZ2VkCi0gICAgc2Vu
ZFhIUih0YXJnZXRVUkwgKyAiP2Rlbnk9eWVzIiwgdHJ1ZSk7CisgICAgc2VuZFhIUih0YXJnZXRV
UkwgKyAiP2Rlbnk9eWVzIiwgdHJ1ZSwgZmFsc2UpOwogICAgIC8vIFN1Y2Nlc3NmdWwgUE9TVHMg
d2l0aCBwcmVmbGlnaHQgY2hlY2sgc2hvdWxkIHJlc3VsdCBpbiBhbiBPUFRJT05TIHJlcXVlc3Qg
Zm9sbG93ZWQgYnkgUE9TVCByZXF1ZXN0IGJlaW5nIGxvZ2dlZAotICAgIC8vIEdlbmVyYXRlIHJl
cXVlc3QgbmFtZSBiYXNlZCBvbiB0aW1lc3RhbXAgdG8gZGVmZWF0IGNhY2hpbmcgKHRoaXMgaXMg
b25seSByZWxldmFudCBmb3IgcmVwZWF0ZWQgaW52b2NhdGlvbnMgb2YgdGhlIHRlc3QgaW4gc2ln
bmxlIGluc3RhbmNlIG9mIERSVCkKLSAgICBzZW5kWEhSKHRhcmdldFVSTCArICI/ZGF0ZT0iICsg
RGF0ZS5ub3coKSwgdHJ1ZSk7CisgICAgLy8gR2VuZXJhdGUgcmVxdWVzdCBuYW1lIGJhc2VkIG9u
IHRpbWVzdGFtcCB0byBkZWZlYXQgT1BUSU9OUyByZXF1ZXN0IGNhY2hpbmcgKHRoaXMgaXMgb25s
eSByZWxldmFudCBmb3IgcmVwZWF0ZWQgaW52b2NhdGlvbnMgb2YgdGhlIHRlc3QgaW4gc2lnbmxl
IGluc3RhbmNlIG9mIERSVCkKKyAgICBzZW5kWEhSKHRhcmdldFVSTCArICI/ZGF0ZT0iICsgRGF0
ZS5ub3coKSwgdHJ1ZSwgZmFsc2UpOworCisgICAgLy8gQW5kIG5vdyBzZW5kIHRoZSBzYW1lIHJl
cXVlc3RzIGFzeW5jaHJvbm91c2x5CisgICAgLy8gQWRkIHJlZHVuZGFudCBhc3luYyBwYXJhbWV0
ZXIgdG8gZW5zdXJlIHRoaXMgcmVxdWVzdCBkaWZmZXJzIGZyb20gdGhlIG9uZSBhYm92ZS4KKyAg
ICBzZW5kWEhSKHRhcmdldFVSTCArICI/ZGVueT15ZXMiLCBmYWxzZSwgdHJ1ZSk7CisgICAgc2Vu
ZFhIUih0YXJnZXRVUkwgKyAiP2Rlbnk9eWVzIiwgdHJ1ZSwgdHJ1ZSk7CisgICAgc2VuZFhIUih0
YXJnZXRVUkwgKyAiP2FzeW5jPXllcyZkYXRlPSIgKyBEYXRlLm5vdygpLCB0cnVlLCB0cnVlKTsK
IH0KIAogdmFyIHRlc3QgPSBmdW5jdGlvbigpCiB7CisgICAgdmFyIHBvc3RSZXF1ZXN0c0NvdW50
ID0gMDsKICAgICBmdW5jdGlvbiBvblJlc291cmNlKGV2ZW50KQogICAgIHsKICAgICAgICAgdmFy
IHJlc291cmNlID0gZXZlbnQuZGF0YTsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
cmVzb3VyY2UucmVxdWVzdE1ldGhvZCArICIgIiArICByZXNvdXJjZS51cmwucmVwbGFjZSgvWyY/
XWRhdGU9XGQrLywgIiIpKTsKLSAgICAgICAgaWYgKHJlc291cmNlLnJlcXVlc3RNZXRob2QgPT09
ICJQT1NUIiAmJiAhL1w/ZGVueT15ZXMvLnRlc3QocmVzb3VyY2UudXJsKSkKKyAgICAgICAgaWYg
KHJlc291cmNlLnJlcXVlc3RNZXRob2QgPT09ICJQT1NUIiAmJiArK3Bvc3RSZXF1ZXN0c0NvdW50
ID09IDQpCiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwogICAgIH0K
ICAgICBXZWJJbnNwZWN0b3IubmV0d29ya01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNw
ZWN0b3IuTmV0d29ya01hbmFnZXIuRXZlbnRUeXBlcy5SZXNvdXJjZUZpbmlzaGVkLCBvblJlc291
cmNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCAyNzFiYmY0NzAxYWMwOWNiZjBkMTkwNmExYzQ0ZjM1ZDM1MDJh
NGU4Li45NTBlNjViNzNjNDhkMTFlY2FkNmExM2VlNjg4ODYwODg4OThlNjQ3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDctMDEgIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0Bj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgV2ViIEluc3BlY3RvcjogUHJlZmxpZ2h0IE9QVElPTlMgcmVxdWVzdHMgYXJlIG5vdCBz
aG93biBvbiBuZXR3b3JrIHBhbmVsIGZvciBhc3luY2hyb25vdXMgWEhScy4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYzNzEyCisKKyAgICAgICAgQWRk
ZWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uIGNhbGxzIHRvIHByZWZsaWdodCBPUFRJT05TIHJl
cXVlc3RzIGNhbGxiYWNrcyBpbiBEb2N1bWVudFRocmVhZGFibGVMb2FkZXIuCisKKyAgICAgICAg
KiBsb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkRvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3Bv
bnNlKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6ZGlkUmVj
ZWl2ZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpk
aWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50VGhyZWFkYWJsZUxv
YWRlcjo6ZGlkRmFpbCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRocmVhZGFibGVMb2Fk
ZXI6OmxvYWRSZXF1ZXN0KToKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9h
ZGVyLmg6CisKIDIwMTEtMDYtMzAgIE1pa2hhaWwgTmFnYW5vdiAgPG1uYWdhbm92QGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBZdXJ5IFNlbWlraGF0c2t5LgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcAppbmRleCA1
M2UyY2YyNDAxZmZlNGJiMmM5NDIwNmNhMmQyMzExNzgzYjExMzUzLi5lZmY2Mzk5NmRhYTFmZWE4
YWM1MWMxMmQyYTk2ZWFlZDA2OTI0NjliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcApAQCAtNDYsNiArNDYsMTEgQEAKICNpbmNs
dWRlICJUaHJlYWRhYmxlTG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSA8d3RmL1VudXNlZFBhcmFt
Lmg+CiAKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQorI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5oIgorI2luY2x1ZGUgIlByb2dyZXNzVHJhY2tlci5oIgorI2VuZGlmCisKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogdm9pZCBEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6OmxvYWRSZXNv
dXJjZVN5bmNocm9ub3VzbHkoRG9jdW1lbnQqIGRvY3VtZW50LCBjb25zdCBSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QsIFRocmVhZGFibGVMb2FkZXJDbGllbnQmIGNsaWVudCwgY29uc3QgVGhyZWFk
YWJsZUxvYWRlck9wdGlvbnMmIG9wdGlvbnMpCkBAIC02OSw2ICs3NCw5IEBAIERvY3VtZW50VGhy
ZWFkYWJsZUxvYWRlcjo6RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyKERvY3VtZW50KiBkb2N1bWVu
dCwgVGhyZWFkYWJsCiAgICAgLCBtX29wdGlvbnMob3B0aW9ucykKICAgICAsIG1fc2FtZU9yaWdp
blJlcXVlc3Qoc2VjdXJpdHlPcmlnaW4oKS0+Y2FuUmVxdWVzdChyZXF1ZXN0LnVybCgpKSkKICAg
ICAsIG1fYXN5bmMoYmxvY2tpbmdCZWhhdmlvciA9PSBMb2FkQXN5bmNocm9ub3VzbHkpCisjaWYg
RU5BQkxFKElOU1BFQ1RPUikKKyAgICAsIG1fcHJlZmxpZ2h0UmVxdWVzdElkZW50aWZpZXIoMCkK
KyNlbmRpZgogewogICAgIEFTU0VSVChkb2N1bWVudCk7CiAgICAgQVNTRVJUKGNsaWVudCk7CkBA
IC0xNzgsNiArMTg2LDE0IEBAIHZvaWQgRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpkaWRSZWNl
aXZlUmVzcG9uc2UodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zCiB7CiAgICAgQVNTRVJU
KG1fY2xpZW50KTsKIAorI2lmIEVOQUJMRShJTlNQRUNUT1IpCisgICAgaWYgKG1fcHJlZmxpZ2h0
UmVxdWVzdElkZW50aWZpZXIpIHsKKyAgICAgICAgRG9jdW1lbnRMb2FkZXIqIGxvYWRlciA9IG1f
ZG9jdW1lbnQtPmZyYW1lKCktPmxvYWRlcigpLT5kb2N1bWVudExvYWRlcigpOworICAgICAgICBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgY29va2llID0gSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjp3aWxsUmVjZWl2ZVJlc291cmNlUmVzcG9uc2UobV9kb2N1bWVudC0+ZnJhbWUoKSwg
bV9wcmVmbGlnaHRSZXF1ZXN0SWRlbnRpZmllciwgcmVzcG9uc2UpOworICAgICAgICBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmRpZFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNlKGNvb2tpZSwgbV9w
cmVmbGlnaHRSZXF1ZXN0SWRlbnRpZmllciwgbG9hZGVyLCByZXNwb25zZSk7CisgICAgfQorI2Vu
ZGlmCisKICAgICBTdHJpbmcgYWNjZXNzQ29udHJvbEVycm9yRGVzY3JpcHRpb247CiAgICAgaWYg
KG1fYWN0dWFsUmVxdWVzdCkgewogICAgICAgICBpZiAoIXBhc3Nlc0FjY2Vzc0NvbnRyb2xDaGVj
ayhyZXNwb25zZSwgbV9vcHRpb25zLmFsbG93Q3JlZGVudGlhbHMsIHNlY3VyaXR5T3JpZ2luKCks
IGFjY2Vzc0NvbnRyb2xFcnJvckRlc2NyaXB0aW9uKSkgewpAQCAtMjExLDYgKzIyNywxMSBAQCB2
b2lkIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoU3VicmVzb3VyY2VM
b2FkZXIqIGxvYWRlciwgY29uc3QgYwogICAgIEFTU0VSVChtX2NsaWVudCk7CiAgICAgQVNTRVJU
X1VOVVNFRChsb2FkZXIsIGxvYWRlciA9PSBtX2xvYWRlcik7CiAKKyNpZiBFTkFCTEUoSU5TUEVD
VE9SKQorICAgIGlmIChtX3ByZWZsaWdodFJlcXVlc3RJZGVudGlmaWVyKQorICAgICAgICBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJlY2VpdmVDb250ZW50TGVuZ3RoKG1fZG9jdW1lbnQt
PmZyYW1lKCksIG1fcHJlZmxpZ2h0UmVxdWVzdElkZW50aWZpZXIsIDAsIGRhdGFMZW5ndGgpOwor
I2VuZGlmCisKICAgICAvLyBQcmVmbGlnaHQgZGF0YSBzaG91bGQgYmUgaW52aXNpYmxlIHRvIGNs
aWVudHMuCiAgICAgaWYgKG1fYWN0dWFsUmVxdWVzdCkKICAgICAgICAgcmV0dXJuOwpAQCAtMjM5
LDYgKzI2MCwxMSBAQCB2b2lkIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6ZGlkRmluaXNoTG9h
ZGluZyhTdWJyZXNvdXJjZUxvYWRlciogbG9hZGVyLCBkb3VibAogCiB2b2lkIERvY3VtZW50VGhy
ZWFkYWJsZUxvYWRlcjo6ZGlkRmluaXNoTG9hZGluZyh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIs
IGRvdWJsZSBmaW5pc2hUaW1lKQogeworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisgICAgaWYgKG1f
cHJlZmxpZ2h0UmVxdWVzdElkZW50aWZpZXIpCisgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6ZGlkRmluaXNoTG9hZGluZyhtX2RvY3VtZW50LT5mcmFtZSgpLCBtX2RvY3VtZW50LT5m
cmFtZSgpLT5sb2FkZXIoKS0+ZG9jdW1lbnRMb2FkZXIoKSwgbV9wcmVmbGlnaHRSZXF1ZXN0SWRl
bnRpZmllciwgZmluaXNoVGltZSk7CisjZW5kaWYKKwogICAgIGlmIChtX2FjdHVhbFJlcXVlc3Qp
IHsKICAgICAgICAgQVNTRVJUKCFtX3NhbWVPcmlnaW5SZXF1ZXN0KTsKICAgICAgICAgQVNTRVJU
KG1fb3B0aW9ucy5jcm9zc09yaWdpblJlcXVlc3RQb2xpY3kgPT0gVXNlQWNjZXNzQ29udHJvbCk7
CkBAIC0yNTMsNiArMjc5LDExIEBAIHZvaWQgRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpkaWRG
YWlsKFN1YnJlc291cmNlTG9hZGVyKiBsb2FkZXIsIGNvbnN0IFJlc291cmNlCiAgICAgLy8gbV9s
b2FkZXIgbWF5IGJlIG51bGwgaWYgd2UgYXJyaXZlIGhlcmUgdmlhIFN1YnJlc291cmNlTG9hZGVy
OjpjcmVhdGUgaW4gdGhlIGN0b3IKICAgICBBU1NFUlRfVU5VU0VEKGxvYWRlciwgbG9hZGVyID09
IG1fbG9hZGVyIHx8ICFtX2xvYWRlcik7CiAKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQorICAgIGlm
IChtX3ByZWZsaWdodFJlcXVlc3RJZGVudGlmaWVyKQorICAgICAgICBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmRpZEZhaWxMb2FkaW5nKG1fZG9jdW1lbnQtPmZyYW1lKCksIG1fZG9jdW1lbnQt
PmZyYW1lKCktPmxvYWRlcigpLT5kb2N1bWVudExvYWRlcigpLCBtX3ByZWZsaWdodFJlcXVlc3RJ
ZGVudGlmaWVyLCBlcnJvcik7CisjZW5kaWYKKwogICAgIG1fY2xpZW50LT5kaWRGYWlsKGVycm9y
KTsKIH0KIApAQCAtMzIzLDYgKzM1NCwxNiBAQCB2b2lkIERvY3VtZW50VGhyZWFkYWJsZUxvYWRl
cjo6bG9hZFJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTZWN1cgogICAg
ICAgICAvLyBLZWVwIGJ1ZmZlcmluZyB0aGUgZGF0YSBmb3IgdGhlIHByZWZsaWdodCByZXF1ZXN0
LgogICAgICAgICBib29sIHNob3VsZEJ1ZmZlckRhdGEgPSBtX29wdGlvbnMuc2hvdWxkQnVmZmVy
RGF0YSB8fCBtX2FjdHVhbFJlcXVlc3Q7CiAKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQorICAgICAg
ICBpZiAobV9hY3R1YWxSZXF1ZXN0KSB7CisgICAgICAgICAgICBSZXNvdXJjZVJlcXVlc3QgbmV3
UmVxdWVzdChyZXF1ZXN0KTsKKyAgICAgICAgICAgIC8vIEJlY2F1c2Ugd2lsbFNlbmRSZXF1ZXN0
IG9ubHkgZ2V0cyBjYWxsZWQgZHVyaW5nIHJlZGlyZWN0cywgd2UgaW5pdGlhbGl6ZSB0aGUgaWRl
bnRpZmllciBhbmQgdGhlIGZpcnN0IHdpbGxTZW5kUmVxdWVzdCBoZXJlLgorICAgICAgICAgICAg
bV9wcmVmbGlnaHRSZXF1ZXN0SWRlbnRpZmllciA9IG1fZG9jdW1lbnQtPmZyYW1lKCktPnBhZ2Uo
KS0+cHJvZ3Jlc3MoKS0+Y3JlYXRlVW5pcXVlSWRlbnRpZmllcigpOworICAgICAgICAgICAgUmVz
b3VyY2VSZXNwb25zZSByZWRpcmVjdFJlc3BvbnNlID0gUmVzb3VyY2VSZXNwb25zZSgpOworICAg
ICAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsU2VuZFJlcXVlc3QobV9kb2N1
bWVudC0+ZnJhbWUoKSwgbV9wcmVmbGlnaHRSZXF1ZXN0SWRlbnRpZmllciwgbV9kb2N1bWVudC0+
ZnJhbWUoKS0+bG9hZGVyKCktPmRvY3VtZW50TG9hZGVyKCksIG5ld1JlcXVlc3QsIHJlZGlyZWN0
UmVzcG9uc2UpOworICAgICAgICB9CisjZW5kaWYKKwogICAgICAgICAvLyBDbGVhciB0aGUgbG9h
ZGVyIHNvIHRoYXQgYW55IGNhbGxiYWNrcyBmcm9tIFN1YnJlc291cmNlTG9hZGVyOjpjcmVhdGUg
d2lsbCBub3QgaGF2ZSB0aGUgb2xkIGxvYWRlci4KICAgICAgICAgbV9sb2FkZXIgPSAwOwogICAg
ICAgICBtX2xvYWRlciA9IHJlc291cmNlTG9hZFNjaGVkdWxlcigpLT5zY2hlZHVsZVN1YnJlc291
cmNlTG9hZChtX2RvY3VtZW50LT5mcmFtZSgpLCB0aGlzLCByZXF1ZXN0LCBSZXNvdXJjZUxvYWRQ
cmlvcml0eU1lZGl1bSwgc2VjdXJpdHlDaGVjaywgc2VuZExvYWRDYWxsYmFja3MsCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmgKaW5kZXggNGM3
NzI3ZWNiNjJhYmY4ZmMwZTg5ZGMyMjA1MWJlYWE4N2FkZDkyZi4uNjk2ZTJlNTlkZGUxOWEyZjZh
YzMwYjI0NzU3NWY2ZTZiNjAyYjhmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9E
b2N1bWVudFRocmVhZGFibGVMb2FkZXIuaApAQCAtMTA1LDYgKzEwNSwxMCBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgICAgIGJvb2wgbV9zYW1lT3JpZ2luUmVxdWVzdDsKICAgICAgICAgYm9v
bCBtX2FzeW5jOwogICAgICAgICBPd25QdHI8UmVzb3VyY2VSZXF1ZXN0PiBtX2FjdHVhbFJlcXVl
c3Q7ICAvLyBub24tbnVsbCBkdXJpbmcgQWNjZXNzIENvbnRyb2wgcHJlZmxpZ2h0IGNoZWNrcwor
CisjaWYgRU5BQkxFKElOU1BFQ1RPUikKKyAgICAgICAgdW5zaWduZWQgbG9uZyBtX3ByZWZsaWdo
dFJlcXVlc3RJZGVudGlmaWVyOworI2VuZGlmCiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>