<?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>160006</bug_id>
          
          <creation_ts>2016-07-20 20:05:04 -0700</creation_ts>
          <short_desc>Add success parameter to IOSurface::create() to indicate valid m_surface.</short_desc>
          <delta_ts>2016-07-22 18:57:35 -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>Layout and Rendering</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="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>manian</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1213009</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2016-07-20 20:05:04 -0700</bug_when>
    <thetext>see bug 160005</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213146</commentid>
    <comment_count>1</comment_count>
      <attachid>284218</attachid>
    <who name="alan">zalan</who>
    <bug_when>2016-07-21 09:16:30 -0700</bug_when>
    <thetext>Created attachment 284218
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213189</commentid>
    <comment_count>2</comment_count>
      <attachid>284218</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-07-21 10:47:16 -0700</bug_when>
    <thetext>Comment on attachment 284218
Patch

r-. I think you need to look at all the other callers of IOSurface::create()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213477</commentid>
    <comment_count>3</comment_count>
      <attachid>284301</attachid>
    <who name="alan">zalan</who>
    <bug_when>2016-07-21 20:20:57 -0700</bug_when>
    <thetext>Created attachment 284301
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213483</commentid>
    <comment_count>4</comment_count>
      <attachid>284303</attachid>
    <who name="alan">zalan</who>
    <bug_when>2016-07-21 20:37:11 -0700</bug_when>
    <thetext>Created attachment 284303
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213511</commentid>
    <comment_count>5</comment_count>
      <attachid>284303</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-07-22 00:17:21 -0700</bug_when>
    <thetext>Comment on attachment 284303
Patch

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

&gt; Source/WebCore/platform/graphics/cg/ImageBufferCG.cpp:157
&gt; +        if (m_data.surface) {

Someday we really need to figure out how to refactor this function, it&apos;s pretty crazy.

&gt; Source/WebCore/platform/graphics/cocoa/IOSurface.mm:68
&gt; +    auto iosurface = std::unique_ptr&lt;IOSurface&gt;(new IOSurface(size, contextSize, colorSpace, pixelFormat, success));

it&apos;s either IOSurface or ioSurface or maybe just surface (my favorite, I think), but surely not &apos;iosurface&apos;.

&gt; Source/WebCore/platform/graphics/cocoa/IOSurface.mm:189
&gt; +    ASSERT(!success);

??? why do you care what the initial value of the out arg is? Shouldn&apos;t you just store false to it right away? This makes it weird for callers.

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:1402
&gt; +                viewSnapshot-&gt;clearImage();

I don&apos;t think we want to clear the original snapshot just because we failed to compress; we should leave it alone.

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:4245
&gt; +            return;

It&apos;s definitely not OK to not call the completion handler.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213560</commentid>
    <comment_count>6</comment_count>
      <attachid>284330</attachid>
    <who name="alan">zalan</who>
    <bug_when>2016-07-22 07:29:17 -0700</bug_when>
    <thetext>Created attachment 284330
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213571</commentid>
    <comment_count>7</comment_count>
      <attachid>284334</attachid>
    <who name="alan">zalan</who>
    <bug_when>2016-07-22 08:24:44 -0700</bug_when>
    <thetext>Created attachment 284334
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213592</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-07-22 09:16:27 -0700</bug_when>
    <thetext>&lt;rdar://problem/27495102&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213594</commentid>
    <comment_count>9</comment_count>
      <attachid>284338</attachid>
    <who name="alan">zalan</who>
    <bug_when>2016-07-22 09:18:11 -0700</bug_when>
    <thetext>Created attachment 284338
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213596</commentid>
    <comment_count>10</comment_count>
      <attachid>284339</attachid>
    <who name="alan">zalan</who>
    <bug_when>2016-07-22 09:19:29 -0700</bug_when>
    <thetext>Created attachment 284339
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213623</commentid>
    <comment_count>11</comment_count>
      <attachid>284345</attachid>
    <who name="alan">zalan</who>
    <bug_when>2016-07-22 10:45:51 -0700</bug_when>
    <thetext>Created attachment 284345
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213625</commentid>
    <comment_count>12</comment_count>
      <attachid>284339</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-07-22 10:50:40 -0700</bug_when>
    <thetext>Comment on attachment 284339
Patch

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

&gt; Source/WebCore/platform/graphics/cocoa/IOSurface.mm:214
&gt;          NSLog(@&quot;Surface creation failed for options %@&quot;, options);

Let&apos;s use LOG_ALWAYS_ERROR here. Would be nice if we could also dump some stats about memory pressure (in a future patch).

&gt; Source/WebCore/platform/graphics/cocoa/IOSurface.mm:399
&gt; +        callback(nullptr);

Did you check that the callers&apos; callbacks are able to handle a null IOSurface?

&gt; Source/WebKit2/Shared/mac/RemoteLayerBackingStore.mm:410
&gt; +    if (acceleratesDrawing() &amp;&amp; m_frontBuffer.surface) {
&gt;          layer.contents = m_frontBuffer.surface-&gt;asLayerContents();
&gt;          return;
&gt;      }

Won&apos;t we fall through and ASSERT(!acceleratesDrawing()); on device here? I think we should set layer contents to nil and return.

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:4242
&gt; +            completionHandler(nullptr);

Same comment about the handlers being able to take null.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213627</commentid>
    <comment_count>13</comment_count>
      <attachid>284345</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-07-22 10:53:27 -0700</bug_when>
    <thetext>Comment on attachment 284345
Patch

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

&gt; Source/WebCore/platform/graphics/cocoa/IOSurface.mm:91
&gt;      size_t height = CGImageGetHeight(image);

Did you check the createFromImage callers?

&gt; Source/WebKit2/Shared/mac/RemoteLayerBackingStore.mm:407
&gt; +    if (acceleratesDrawing() &amp;&amp; m_frontBuffer.surface) {

Shouldn&apos;t the surface check be inside here? (and still return even if we don&apos;t have one) Otherwise we&apos;ll assert below (or maybe crash trying to retrieve the bitmap) if the allocation fails, right? We should probably clear the backing store in that case, instead. Probably should read like:

if (acceleratesDrawing()) {
    layer.contents = m_frontBuffer.surface ? m_frontBuffer.surface-&gt;asLayerContents() : nil;
    return;
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213629</commentid>
    <comment_count>14</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-07-22 10:55:52 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; Comment on attachment 284339 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=284339&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:4242
&gt; &gt; +            completionHandler(nullptr);
&gt; 
&gt; Same comment about the handlers being able to take null.

There are already lots of ways to call this completion handler with null.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213748</commentid>
    <comment_count>15</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2016-07-22 14:52:55 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; Comment on attachment 284339 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=284339&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/cocoa/IOSurface.mm:214
&gt; &gt;          NSLog(@&quot;Surface creation failed for options %@&quot;, options);
&gt; 
&gt; Let&apos;s use LOG_ALWAYS_ERROR here. Would be nice if we could also dump some
&gt; stats about memory pressure (in a future patch).
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/cocoa/IOSurface.mm:399
&gt; &gt; +        callback(nullptr);
&gt; 
&gt; Did you check that the callers&apos; callbacks are able to handle a null
&gt; IOSurface?
Yes, hence the 
            if (convertedSurface)
                viewSnapshot-&gt;setSurface(WTFMove(convertedSurface));
change.

&gt; 
&gt; &gt; Source/WebKit2/Shared/mac/RemoteLayerBackingStore.mm:410
&gt; &gt; +    if (acceleratesDrawing() &amp;&amp; m_frontBuffer.surface) {
&gt; &gt;          layer.contents = m_frontBuffer.surface-&gt;asLayerContents();
&gt; &gt;          return;
&gt; &gt;      }
&gt; 
&gt; Won&apos;t we fall through and ASSERT(!acceleratesDrawing()); on device here? I
&gt; think we should set layer contents to nil and return.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:4242
&gt; &gt; +            completionHandler(nullptr);
&gt; 
&gt; Same comment about the handlers being able to take null.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213749</commentid>
    <comment_count>16</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2016-07-22 14:55:06 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; Comment on attachment 284345 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=284345&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/cocoa/IOSurface.mm:91
&gt; &gt;      size_t height = CGImageGetHeight(image);
&gt; 
&gt; Did you check the createFromImage callers?
Yes I did. WebViewImpl::takeViewSnapshot() handles nullptr. (and IOSurface::createFromImage() already returns nullptr as an error case.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213761</commentid>
    <comment_count>17</comment_count>
      <attachid>284377</attachid>
    <who name="alan">zalan</who>
    <bug_when>2016-07-22 15:13:54 -0700</bug_when>
    <thetext>Created attachment 284377
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213810</commentid>
    <comment_count>18</comment_count>
      <attachid>284377</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-22 18:57:29 -0700</bug_when>
    <thetext>Comment on attachment 284377
Patch

Clearing flags on attachment: 284377

Committed r203631: &lt;http://trac.webkit.org/changeset/203631&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213811</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-22 18:57:35 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>284218</attachid>
            <date>2016-07-21 09:16:30 -0700</date>
            <delta_ts>2016-07-21 18:12:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160006-20160721091530.patch</filename>
            <type>text/plain</type>
            <size>6208</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAzNDU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDBlOTk0MjEwNjE4YmQ5
Mzk4NDM3Njg5ZDkyOGUzMjM0YmM0ZTZkNy4uNWNkZjhiNGI4YWI1MmMzODc3OTU3ODkyMjk3MDk5
MDliMzdhNDRhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE2LTA3LTIxICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1Y2Nlc3MgcGFyYW1l
dGVyIHRvIElPU3VyZmFjZSBjJ3RvciB0byBpbmRpY2F0ZWQgYSB2YWxpZCBtX3N1cmZhY2UuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjAwMDYKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGlzIGFu
IGFkZGl0aW9uYWwgZml4IHRvIHdlYmtpdC5vcmcvYi8xNjAwMDUgdG8gY2hlY2sgaWYgSU9TdXJm
YWNlIGluaXRpYWxpemF0aW9uIHdhcyBzdWNjZXNzZnVsLgorCisgICAgICAgIFVuYWJsZSB0byB0
ZXN0LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5oOiBNZXJnZSAyIGMndG9ycy4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW06IFJlbW92ZSByZWR1
bmRhbnQgSU9TdXJmYWNlOjpjcmVhdGUoKSBjb2RlLiAgCisgICAgICAgIChXZWJDb3JlOjpJT1N1
cmZhY2U6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJT1N1cmZhY2U6OklPU3VyZmFjZSk6
CisKIDIwMTYtMDctMjAgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAg
ICBQb3N0UmVzb2x1dGlvbkNhbGxiYWNrRGlzYWJsZXIgY2FuIHJlc3VtZSBwZW5kaW5nIHJlcXVl
c3RzIHdoaWxlIGEgUmVzb3VyY2VMb2FkU3VzcGVuZGVyIGlzIGFsaXZlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3BwCmluZGV4
IGRmN2E0MTYxYWY5OWUyOTE5NmQ0MjU0MDM3ZjJlODM4Y2YwYzRkNWYuLjE3NTNhMDQyOWYzZTYz
NDA1Yzg3ZDMyZTg2MmIxZDYyYzg0MGNmMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3BwCkBAIC0xNTUsOSArMTU1LDEy
IEBAIEltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihjb25zdCBGbG9hdFNpemUmIHNpemUsIGZsb2F0
IHJlc29sdXRpb25TY2FsZSwgQ0dDb2xvclNwCiAjaWYgVVNFKElPU1VSRkFDRV9DQU5WQVNfQkFD
S0lOR19TVE9SRSkKICAgICAgICAgRmxvYXRTaXplIHVzZXJCb3VuZHMgPSBzaXplRm9yRGVzdGlu
YXRpb25TaXplKEZsb2F0U2l6ZSh3aWR0aC51bnNhZmVHZXQoKSwgaGVpZ2h0LnVuc2FmZUdldCgp
KSk7CiAgICAgICAgIG1fZGF0YS5zdXJmYWNlID0gSU9TdXJmYWNlOjpjcmVhdGUobV9kYXRhLmJh
Y2tpbmdTdG9yZVNpemUsIEludFNpemUodXNlckJvdW5kcyksIGNvbG9yU3BhY2UpOwotICAgICAg
ICBjZ0NvbnRleHQgPSBtX2RhdGEuc3VyZmFjZS0+ZW5zdXJlUGxhdGZvcm1Db250ZXh0KCk7Ci0g
ICAgICAgIGlmIChjZ0NvbnRleHQpCi0gICAgICAgICAgICBDR0NvbnRleHRDbGVhclJlY3QoY2dD
b250ZXh0LmdldCgpLCBGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCB1c2VyQm91bmRzKSk7CisgICAg
ICAgIGlmIChtX2RhdGEuc3VyZmFjZSkgeworICAgICAgICAgICAgY2dDb250ZXh0ID0gbV9kYXRh
LnN1cmZhY2UtPmVuc3VyZVBsYXRmb3JtQ29udGV4dCgpOworICAgICAgICAgICAgaWYgKGNnQ29u
dGV4dCkKKyAgICAgICAgICAgICAgICBDR0NvbnRleHRDbGVhclJlY3QoY2dDb250ZXh0LmdldCgp
LCBGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCB1c2VyQm91bmRzKSk7CisgICAgICAgIH0gZWxzZQor
ICAgICAgICAgICAgYWNjZWxlcmF0ZVJlbmRlcmluZyA9IGZhbHNlOwogI2VuZGlmCiAKICAgICAg
ICAgaWYgKCFjZ0NvbnRleHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9JT1N1cmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL0lPU3VyZmFjZS5oCmluZGV4IDAyZWQxNzFiZTk0NWY2MTc0ZTU0MWIzZDgyOWQw
ZDRiM2Q3MmVjYTYuLmZhMzI2M2ZmZGViMTViMGRiMmFlZTExMGJjNDhmZDRmMTU2NWFmNDYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFj
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFj
ZS5oCkBAIC0xMDAsOCArMTAwLDcgQEAgcHVibGljOgogI2VuZGlmCiAKIHByaXZhdGU6Ci0gICAg
SU9TdXJmYWNlKEludFNpemUsIENHQ29sb3JTcGFjZVJlZiwgRm9ybWF0KTsKLSAgICBJT1N1cmZh
Y2UoSW50U2l6ZSwgSW50U2l6ZSBjb250ZXh0U2l6ZSwgQ0dDb2xvclNwYWNlUmVmLCBGb3JtYXQp
OworICAgIElPU3VyZmFjZShJbnRTaXplLCBJbnRTaXplIGNvbnRleHRTaXplLCBDR0NvbG9yU3Bh
Y2VSZWYsIEZvcm1hdCwgYm9vbCYgc3VjY2Vzcyk7CiAgICAgSU9TdXJmYWNlKElPU3VyZmFjZVJl
ZiwgQ0dDb2xvclNwYWNlUmVmKTsKIAogICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJm
YWNlPiBzdXJmYWNlRnJvbVBvb2woSW50U2l6ZSwgSW50U2l6ZSBjb250ZXh0U2l6ZSwgQ0dDb2xv
clNwYWNlUmVmLCBGb3JtYXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvSU9TdXJmYWNlLm1tCmluZGV4IDVmYmYzMGZkYTA3N2MyNGZiMDBlMzI0NTJj
YjE5OWJjMzUwNjBkMjUuLjI3OGVkNWE0M2JlZWE4ODhmMjA2NmMwMmI0MzkzNDNiYzE4NDE3NmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3Vy
ZmFjZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1
cmZhY2UubW0KQEAgLTU3LDE3ICs1NywxOCBAQCBpbmxpbmUgc3RkOjp1bmlxdWVfcHRyPFdlYkNv
cmU6OklPU3VyZmFjZT4gV2ViQ29yZTo6SU9TdXJmYWNlOjpzdXJmYWNlRnJvbVBvb2woSQogCiBz
dGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SU9TdXJmYWNlPiBXZWJDb3JlOjpJT1N1cmZhY2U6OmNy
ZWF0ZShJbnRTaXplIHNpemUsIENHQ29sb3JTcGFjZVJlZiBjb2xvclNwYWNlLCBGb3JtYXQgcGl4
ZWxGb3JtYXQpCiB7Ci0gICAgaWYgKGF1dG8gY2FjaGVkU3VyZmFjZSA9IHN1cmZhY2VGcm9tUG9v
bChzaXplLCBzaXplLCBjb2xvclNwYWNlLCBwaXhlbEZvcm1hdCkpCi0gICAgICAgIHJldHVybiBj
YWNoZWRTdXJmYWNlOwotCi0gICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+KG5l
dyBJT1N1cmZhY2Uoc2l6ZSwgY29sb3JTcGFjZSwgcGl4ZWxGb3JtYXQpKTsKKyAgICByZXR1cm4g
SU9TdXJmYWNlOjpjcmVhdGUoc2l6ZSwgc2l6ZSwgY29sb3JTcGFjZSwgcGl4ZWxGb3JtYXQpOwog
fQogCiBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SU9TdXJmYWNlPiBXZWJDb3JlOjpJT1N1cmZh
Y2U6OmNyZWF0ZShJbnRTaXplIHNpemUsIEludFNpemUgY29udGV4dFNpemUsIENHQ29sb3JTcGFj
ZVJlZiBjb2xvclNwYWNlLCBGb3JtYXQgcGl4ZWxGb3JtYXQpCiB7CiAgICAgaWYgKGF1dG8gY2Fj
aGVkU3VyZmFjZSA9IHN1cmZhY2VGcm9tUG9vbChzaXplLCBjb250ZXh0U2l6ZSwgY29sb3JTcGFj
ZSwgcGl4ZWxGb3JtYXQpKQogICAgICAgICByZXR1cm4gY2FjaGVkU3VyZmFjZTsKLSAgICByZXR1
cm4gc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4obmV3IElPU3VyZmFjZShzaXplLCBjb250ZXh0
U2l6ZSwgY29sb3JTcGFjZSwgcGl4ZWxGb3JtYXQpKTsKKyAgICBib29sIHN1Y2Nlc3MgPSBmYWxz
ZTsKKyAgICBhdXRvIGlvc3VyZmFjZSA9IHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+KG5ldyBJ
T1N1cmZhY2Uoc2l6ZSwgY29udGV4dFNpemUsIGNvbG9yU3BhY2UsIHBpeGVsRm9ybWF0LCBzdWNj
ZXNzKSk7CisgICAgaWYgKCFzdWNjZXNzKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBy
ZXR1cm4gaW9zdXJmYWNlOwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SU9TdXJmYWNl
PiBXZWJDb3JlOjpJT1N1cmZhY2U6OmNyZWF0ZUZyb21TZW5kUmlnaHQoY29uc3QgTWFjaFNlbmRS
aWdodCYgc2VuZFJpZ2h0LCBDR0NvbG9yU3BhY2VSZWYgY29sb3JTcGFjZSkKQEAgLTE3OSwxMSAr
MTgwLDE1IEBAIHN0YXRpYyBOU0RpY3Rpb25hcnkgKm9wdGlvbnNGb3IzMkJpdFN1cmZhY2UoSW50
U2l6ZSBzaXplLCB1bnNpZ25lZCBwaXhlbEZvcm1hdCkKIAogfQogCi1XZWJDb3JlOjpJT1N1cmZh
Y2U6OklPU3VyZmFjZShJbnRTaXplIHNpemUsIENHQ29sb3JTcGFjZVJlZiBjb2xvclNwYWNlLCBG
b3JtYXQgZm9ybWF0KQorV2ViQ29yZTo6SU9TdXJmYWNlOjpJT1N1cmZhY2UoSW50U2l6ZSBzaXpl
LCBJbnRTaXplIGNvbnRleHRTaXplLCBDR0NvbG9yU3BhY2VSZWYgY29sb3JTcGFjZSwgRm9ybWF0
IGZvcm1hdCwgYm9vbCYgc3VjY2VzcykKICAgICA6IG1fY29sb3JTcGFjZShjb2xvclNwYWNlKQog
ICAgICwgbV9zaXplKHNpemUpCi0gICAgLCBtX2NvbnRleHRTaXplKHNpemUpCisgICAgLCBtX2Nv
bnRleHRTaXplKGNvbnRleHRTaXplKQogeworICAgIEFTU0VSVCghc3VjY2Vzcyk7CisgICAgQVNT
RVJUKGNvbnRleHRTaXplLndpZHRoKCkgPD0gc2l6ZS53aWR0aCgpKTsKKyAgICBBU1NFUlQoY29u
dGV4dFNpemUuaGVpZ2h0KCkgPD0gc2l6ZS5oZWlnaHQoKSk7CisKICAgICBOU0RpY3Rpb25hcnkg
Km9wdGlvbnM7CiAKICAgICBzd2l0Y2ggKGZvcm1hdCkgewpAQCAtMjAwLDIxICsyMDUsMTQgQEAg
V2ViQ29yZTo6SU9TdXJmYWNlOjpJT1N1cmZhY2UoSW50U2l6ZSBzaXplLCBDR0NvbG9yU3BhY2VS
ZWYgY29sb3JTcGFjZSwgRm9ybWF0IGYKICAgICAgICAgb3B0aW9ucyA9IG9wdGlvbnNGb3JCaXBs
YW5hclN1cmZhY2Uoc2l6ZSwgJzQyMmYnLCAxLCAxKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQot
ICAgIAogICAgIG1fc3VyZmFjZSA9IGFkb3B0Q0YoSU9TdXJmYWNlQ3JlYXRlKChDRkRpY3Rpb25h
cnlSZWYpb3B0aW9ucykpOwotICAgIG1fdG90YWxCeXRlcyA9IElPU3VyZmFjZUdldEFsbG9jU2l6
ZShtX3N1cmZhY2UuZ2V0KCkpOwotICAgIGlmICghbV9zdXJmYWNlKQorICAgIHN1Y2Nlc3MgPSAh
IW1fc3VyZmFjZTsKKyAgICBpZiAoc3VjY2VzcykKKyAgICAgICAgbV90b3RhbEJ5dGVzID0gSU9T
dXJmYWNlR2V0QWxsb2NTaXplKG1fc3VyZmFjZS5nZXQoKSk7CisgICAgZWxzZQogICAgICAgICBO
U0xvZyhAIlN1cmZhY2UgY3JlYXRpb24gZmFpbGVkIGZvciBvcHRpb25zICVAIiwgb3B0aW9ucyk7
CiB9CiAKLVdlYkNvcmU6OklPU3VyZmFjZTo6SU9TdXJmYWNlKEludFNpemUgc2l6ZSwgSW50U2l6
ZSBjb250ZXh0U2l6ZSwgQ0dDb2xvclNwYWNlUmVmIGNvbG9yU3BhY2UsIEZvcm1hdCBwaXhlbEZv
cm1hdCkKLSAgICA6IElPU3VyZmFjZShzaXplLCBjb2xvclNwYWNlLCBwaXhlbEZvcm1hdCkKLXsK
LSAgICBBU1NFUlQoY29udGV4dFNpemUud2lkdGgoKSA8PSBzaXplLndpZHRoKCkpOwotICAgIEFT
U0VSVChjb250ZXh0U2l6ZS5oZWlnaHQoKSA8PSBzaXplLmhlaWdodCgpKTsKLSAgICBtX2NvbnRl
eHRTaXplID0gY29udGV4dFNpemU7Ci19Ci0KIFdlYkNvcmU6OklPU3VyZmFjZTo6SU9TdXJmYWNl
KElPU3VyZmFjZVJlZiBzdXJmYWNlLCBDR0NvbG9yU3BhY2VSZWYgY29sb3JTcGFjZSkKICAgICA6
IG1fY29sb3JTcGFjZShjb2xvclNwYWNlKQogICAgICwgbV9zdXJmYWNlKHN1cmZhY2UpCg==
</data>
<flag name="review"
          id="307867"
          type_id="1"
          status="-"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>284301</attachid>
            <date>2016-07-21 20:20:57 -0700</date>
            <delta_ts>2016-07-21 20:30:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160006-20160721201956.patch</filename>
            <type>text/plain</type>
            <size>12997</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAzNDU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDBlOTk0MjEwNjE4YmQ5
Mzk4NDM3Njg5ZDkyOGUzMjM0YmM0ZTZkNy4uMDVjNjRjYTU3YjFhNjE5ZmE1NjM1MzJiYzExMjE4
NDM2OGFlMzQ3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE2LTA3LTIxICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgSGFuZGxlIGNhc2VzIHdoZW4g
SU9TdXJmYWNlIGluaXRpYWxpemF0aW9uIGZhaWxzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwMDA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBpcyBhbiBhZGRpdGlvbmFsIGZpeCB0byByMjAz
NTE0IHRvIGNoZWNrIGlmIElPU3VyZmFjZSBpbml0aWFsaXphdGlvbiB3YXMgc3VjY2Vzc2Z1bC4K
KworICAgICAgICBVbmFibGUgdG8gdGVzdC4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2NnL0ltYWdlQnVmZmVyQ0cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6Oklt
YWdlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2Uu
aDogTWVyZ2UgMiBjJ3RvcnMuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9T
dXJmYWNlLm1tOiBSZW1vdmUgcmVkdW5kYW50IElPU3VyZmFjZTo6Y3JlYXRlKCkgY29kZS4gIAor
ICAgICAgICAoV2ViQ29yZTo6SU9TdXJmYWNlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
SU9TdXJmYWNlOjpjcmVhdGVGcm9tSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6SU9TdXJmYWNl
OjpJT1N1cmZhY2UpOgorICAgICAgICAoV2ViQ29yZTo6SU9TdXJmYWNlOjpjb252ZXJ0VG9Gb3Jt
YXQpOgorCiAyMDE2LTA3LTIwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAg
ICAgICAgUG9zdFJlc29sdXRpb25DYWxsYmFja0Rpc2FibGVyIGNhbiByZXN1bWUgcGVuZGluZyBy
ZXF1ZXN0cyB3aGlsZSBhIFJlc291cmNlTG9hZFN1c3BlbmRlciBpcyBhbGl2ZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmlu
ZGV4IGVmNGRmM2FjYzIxOTQzYjNmZTYzMjY5ZjhlYzEzZjZiMmI1M2YzMzcuLjk1ZTNmYWMzNTFl
ZDM5NTI3ZjVmMzU2NzQ5NDEyMDhjODEwOTAwZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBA
QAorMjAxNi0wNy0yMSAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgorCisgICAgICAg
IEhhbmRsZSBjYXNlcyB3aGVuIElPU3VyZmFjZSBpbml0aWFsaXphdGlvbiBmYWlscy4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MDAwNgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgaXMgYW4gYWRk
aXRpb25hbCBmaXggdG8gcjIwMzUxNCB0byBjaGVjayBpZiBJT1N1cmZhY2UgaW5pdGlhbGl6YXRp
b24gd2FzIHN1Y2Nlc3NmdWwuCisKKyAgICAgICAgVW5hYmxlIHRvIHRlc3QuCisKKyAgICAgICAg
KiBTaGFyZWQvbWFjL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLm1tOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlTGF5ZXJCYWNraW5nU3RvcmU6OmRpc3BsYXkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVM
YXllckJhY2tpbmdTdG9yZTo6YXBwbHlCYWNraW5nU3RvcmVUb0xheWVyKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF90
YWtlVmlld1NuYXBzaG90XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfc25hcHNob3RSZWN0Omlu
dG9JbWFnZU9mV2lkdGg6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisKIDIwMTYtMDctMjAgIENhcmxv
cyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtMaW51eF0g
TWVtb3J5UHJlc3N1cmVNb25pdG9yIGZhbGxiYWNrIGNvZGUgdG8gZ2V0IG1lbW9yeSBhdmFpbGFi
bGUgaW4gb2xkZXIgbGludXgga2VybmVscyBkb2Vzbid0IHdvcmsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHAKaW5kZXggZGY3
YTQxNjFhZjk5ZTI5MTk2ZDQyNTQwMzdmMmU4MzhjZjBjNGQ1Zi4uMTc1M2EwNDI5ZjNlNjM0MDVj
ODdkMzJlODYyYjFkNjJjODQwY2YxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHAKQEAgLTE1NSw5ICsxNTUsMTIgQEAg
SW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgZmxvYXQgcmVz
b2x1dGlvblNjYWxlLCBDR0NvbG9yU3AKICNpZiBVU0UoSU9TVVJGQUNFX0NBTlZBU19CQUNLSU5H
X1NUT1JFKQogICAgICAgICBGbG9hdFNpemUgdXNlckJvdW5kcyA9IHNpemVGb3JEZXN0aW5hdGlv
blNpemUoRmxvYXRTaXplKHdpZHRoLnVuc2FmZUdldCgpLCBoZWlnaHQudW5zYWZlR2V0KCkpKTsK
ICAgICAgICAgbV9kYXRhLnN1cmZhY2UgPSBJT1N1cmZhY2U6OmNyZWF0ZShtX2RhdGEuYmFja2lu
Z1N0b3JlU2l6ZSwgSW50U2l6ZSh1c2VyQm91bmRzKSwgY29sb3JTcGFjZSk7Ci0gICAgICAgIGNn
Q29udGV4dCA9IG1fZGF0YS5zdXJmYWNlLT5lbnN1cmVQbGF0Zm9ybUNvbnRleHQoKTsKLSAgICAg
ICAgaWYgKGNnQ29udGV4dCkKLSAgICAgICAgICAgIENHQ29udGV4dENsZWFyUmVjdChjZ0NvbnRl
eHQuZ2V0KCksIEZsb2F0UmVjdChGbG9hdFBvaW50KCksIHVzZXJCb3VuZHMpKTsKKyAgICAgICAg
aWYgKG1fZGF0YS5zdXJmYWNlKSB7CisgICAgICAgICAgICBjZ0NvbnRleHQgPSBtX2RhdGEuc3Vy
ZmFjZS0+ZW5zdXJlUGxhdGZvcm1Db250ZXh0KCk7CisgICAgICAgICAgICBpZiAoY2dDb250ZXh0
KQorICAgICAgICAgICAgICAgIENHQ29udGV4dENsZWFyUmVjdChjZ0NvbnRleHQuZ2V0KCksIEZs
b2F0UmVjdChGbG9hdFBvaW50KCksIHVzZXJCb3VuZHMpKTsKKyAgICAgICAgfSBlbHNlCisgICAg
ICAgICAgICBhY2NlbGVyYXRlUmVuZGVyaW5nID0gZmFsc2U7CiAjZW5kaWYKIAogICAgICAgICBp
ZiAoIWNnQ29udGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL0lPU3VyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvSU9TdXJmYWNlLmgKaW5kZXggMDJlZDE3MWJlOTQ1ZjYxNzRlNTQxYjNkODI5ZDBkNGIz
ZDcyZWNhNi4uZmEzMjYzZmZkZWIxNWIwZGIyYWVlMTEwYmM0OGZkNGYxNTY1YWY0NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLmgK
QEAgLTEwMCw4ICsxMDAsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogcHJpdmF0ZToKLSAgICBJT1N1
cmZhY2UoSW50U2l6ZSwgQ0dDb2xvclNwYWNlUmVmLCBGb3JtYXQpOwotICAgIElPU3VyZmFjZShJ
bnRTaXplLCBJbnRTaXplIGNvbnRleHRTaXplLCBDR0NvbG9yU3BhY2VSZWYsIEZvcm1hdCk7Cisg
ICAgSU9TdXJmYWNlKEludFNpemUsIEludFNpemUgY29udGV4dFNpemUsIENHQ29sb3JTcGFjZVJl
ZiwgRm9ybWF0LCBib29sJiBzdWNjZXNzKTsKICAgICBJT1N1cmZhY2UoSU9TdXJmYWNlUmVmLCBD
R0NvbG9yU3BhY2VSZWYpOwogCiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+
IHN1cmZhY2VGcm9tUG9vbChJbnRTaXplLCBJbnRTaXplIGNvbnRleHRTaXplLCBDR0NvbG9yU3Bh
Y2VSZWYsIEZvcm1hdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9JT1N1cmZhY2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9JT1N1cmZhY2UubW0KaW5kZXggNWZiZjMwZmRhMDc3YzI0ZmIwMGUzMjQ1MmNiMTk5
YmMzNTA2MGQyNS4uZmMwZDAzMzhkOTJlNmNkMTIzMDBlZmU0Yzk5ZTE5YzUxNDAxY2Y1MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNl
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFj
ZS5tbQpAQCAtNTcsMTcgKzU3LDE4IEBAIGlubGluZSBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6
SU9TdXJmYWNlPiBXZWJDb3JlOjpJT1N1cmZhY2U6OnN1cmZhY2VGcm9tUG9vbChJCiAKIHN0ZDo6
dW5pcXVlX3B0cjxXZWJDb3JlOjpJT1N1cmZhY2U+IFdlYkNvcmU6OklPU3VyZmFjZTo6Y3JlYXRl
KEludFNpemUgc2l6ZSwgQ0dDb2xvclNwYWNlUmVmIGNvbG9yU3BhY2UsIEZvcm1hdCBwaXhlbEZv
cm1hdCkKIHsKLSAgICBpZiAoYXV0byBjYWNoZWRTdXJmYWNlID0gc3VyZmFjZUZyb21Qb29sKHNp
emUsIHNpemUsIGNvbG9yU3BhY2UsIHBpeGVsRm9ybWF0KSkKLSAgICAgICAgcmV0dXJuIGNhY2hl
ZFN1cmZhY2U7Ci0KLSAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4obmV3IElP
U3VyZmFjZShzaXplLCBjb2xvclNwYWNlLCBwaXhlbEZvcm1hdCkpOworICAgIHJldHVybiBJT1N1
cmZhY2U6OmNyZWF0ZShzaXplLCBzaXplLCBjb2xvclNwYWNlLCBwaXhlbEZvcm1hdCk7CiB9CiAK
IHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJT1N1cmZhY2U+IFdlYkNvcmU6OklPU3VyZmFjZTo6
Y3JlYXRlKEludFNpemUgc2l6ZSwgSW50U2l6ZSBjb250ZXh0U2l6ZSwgQ0dDb2xvclNwYWNlUmVm
IGNvbG9yU3BhY2UsIEZvcm1hdCBwaXhlbEZvcm1hdCkKIHsKICAgICBpZiAoYXV0byBjYWNoZWRT
dXJmYWNlID0gc3VyZmFjZUZyb21Qb29sKHNpemUsIGNvbnRleHRTaXplLCBjb2xvclNwYWNlLCBw
aXhlbEZvcm1hdCkpCiAgICAgICAgIHJldHVybiBjYWNoZWRTdXJmYWNlOwotICAgIHJldHVybiBz
dGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPihuZXcgSU9TdXJmYWNlKHNpemUsIGNvbnRleHRTaXpl
LCBjb2xvclNwYWNlLCBwaXhlbEZvcm1hdCkpOworICAgIGJvb2wgc3VjY2VzcyA9IGZhbHNlOwor
ICAgIGF1dG8gaW9zdXJmYWNlID0gc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4obmV3IElPU3Vy
ZmFjZShzaXplLCBjb250ZXh0U2l6ZSwgY29sb3JTcGFjZSwgcGl4ZWxGb3JtYXQsIHN1Y2Nlc3Mp
KTsKKyAgICBpZiAoIXN1Y2Nlc3MpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVy
biBpb3N1cmZhY2U7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJT1N1cmZhY2U+IFdl
YkNvcmU6OklPU3VyZmFjZTo6Y3JlYXRlRnJvbVNlbmRSaWdodChjb25zdCBNYWNoU2VuZFJpZ2h0
JiBzZW5kUmlnaHQsIENHQ29sb3JTcGFjZVJlZiBjb2xvclNwYWNlKQpAQCAtOTAsMTAgKzkxLDEx
IEBAIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJT1N1cmZhY2U+IFdlYkNvcmU6OklPU3VyZmFj
ZTo6Y3JlYXRlRnJvbUltYWdlKENHSW1hZ2VSCiAgICAgc2l6ZV90IGhlaWdodCA9IENHSW1hZ2VH
ZXRIZWlnaHQoaW1hZ2UpOwogCiAgICAgYXV0byBzdXJmYWNlID0gSU9TdXJmYWNlOjpjcmVhdGUo
SW50U2l6ZSh3aWR0aCwgaGVpZ2h0KSwgc1JHQkNvbG9yU3BhY2VSZWYoKSk7CisgICAgaWYgKCFz
dXJmYWNlKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBhdXRvIHN1cmZhY2VDb250ZXh0
ID0gc3VyZmFjZS0+ZW5zdXJlUGxhdGZvcm1Db250ZXh0KCk7CiAgICAgQ0dDb250ZXh0RHJhd0lt
YWdlKHN1cmZhY2VDb250ZXh0LCBDR1JlY3RNYWtlKDAsIDAsIHdpZHRoLCBoZWlnaHQpLCBpbWFn
ZSk7CiAgICAgQ0dDb250ZXh0Rmx1c2goc3VyZmFjZUNvbnRleHQpOwotCiAgICAgcmV0dXJuIHN1
cmZhY2U7CiB9CiAKQEAgLTE3OSwxMSArMTgxLDE1IEBAIHN0YXRpYyBOU0RpY3Rpb25hcnkgKm9w
dGlvbnNGb3IzMkJpdFN1cmZhY2UoSW50U2l6ZSBzaXplLCB1bnNpZ25lZCBwaXhlbEZvcm1hdCkK
IAogfQogCi1XZWJDb3JlOjpJT1N1cmZhY2U6OklPU3VyZmFjZShJbnRTaXplIHNpemUsIENHQ29s
b3JTcGFjZVJlZiBjb2xvclNwYWNlLCBGb3JtYXQgZm9ybWF0KQorV2ViQ29yZTo6SU9TdXJmYWNl
OjpJT1N1cmZhY2UoSW50U2l6ZSBzaXplLCBJbnRTaXplIGNvbnRleHRTaXplLCBDR0NvbG9yU3Bh
Y2VSZWYgY29sb3JTcGFjZSwgRm9ybWF0IGZvcm1hdCwgYm9vbCYgc3VjY2VzcykKICAgICA6IG1f
Y29sb3JTcGFjZShjb2xvclNwYWNlKQogICAgICwgbV9zaXplKHNpemUpCi0gICAgLCBtX2NvbnRl
eHRTaXplKHNpemUpCisgICAgLCBtX2NvbnRleHRTaXplKGNvbnRleHRTaXplKQogeworICAgIEFT
U0VSVCghc3VjY2Vzcyk7CisgICAgQVNTRVJUKGNvbnRleHRTaXplLndpZHRoKCkgPD0gc2l6ZS53
aWR0aCgpKTsKKyAgICBBU1NFUlQoY29udGV4dFNpemUuaGVpZ2h0KCkgPD0gc2l6ZS5oZWlnaHQo
KSk7CisKICAgICBOU0RpY3Rpb25hcnkgKm9wdGlvbnM7CiAKICAgICBzd2l0Y2ggKGZvcm1hdCkg
ewpAQCAtMjAwLDIxICsyMDYsMTQgQEAgV2ViQ29yZTo6SU9TdXJmYWNlOjpJT1N1cmZhY2UoSW50
U2l6ZSBzaXplLCBDR0NvbG9yU3BhY2VSZWYgY29sb3JTcGFjZSwgRm9ybWF0IGYKICAgICAgICAg
b3B0aW9ucyA9IG9wdGlvbnNGb3JCaXBsYW5hclN1cmZhY2Uoc2l6ZSwgJzQyMmYnLCAxLCAxKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgfQotICAgIAogICAgIG1fc3VyZmFjZSA9IGFkb3B0Q0YoSU9T
dXJmYWNlQ3JlYXRlKChDRkRpY3Rpb25hcnlSZWYpb3B0aW9ucykpOwotICAgIG1fdG90YWxCeXRl
cyA9IElPU3VyZmFjZUdldEFsbG9jU2l6ZShtX3N1cmZhY2UuZ2V0KCkpOwotICAgIGlmICghbV9z
dXJmYWNlKQorICAgIHN1Y2Nlc3MgPSAhIW1fc3VyZmFjZTsKKyAgICBpZiAoc3VjY2VzcykKKyAg
ICAgICAgbV90b3RhbEJ5dGVzID0gSU9TdXJmYWNlR2V0QWxsb2NTaXplKG1fc3VyZmFjZS5nZXQo
KSk7CisgICAgZWxzZQogICAgICAgICBOU0xvZyhAIlN1cmZhY2UgY3JlYXRpb24gZmFpbGVkIGZv
ciBvcHRpb25zICVAIiwgb3B0aW9ucyk7CiB9CiAKLVdlYkNvcmU6OklPU3VyZmFjZTo6SU9TdXJm
YWNlKEludFNpemUgc2l6ZSwgSW50U2l6ZSBjb250ZXh0U2l6ZSwgQ0dDb2xvclNwYWNlUmVmIGNv
bG9yU3BhY2UsIEZvcm1hdCBwaXhlbEZvcm1hdCkKLSAgICA6IElPU3VyZmFjZShzaXplLCBjb2xv
clNwYWNlLCBwaXhlbEZvcm1hdCkKLXsKLSAgICBBU1NFUlQoY29udGV4dFNpemUud2lkdGgoKSA8
PSBzaXplLndpZHRoKCkpOwotICAgIEFTU0VSVChjb250ZXh0U2l6ZS5oZWlnaHQoKSA8PSBzaXpl
LmhlaWdodCgpKTsKLSAgICBtX2NvbnRleHRTaXplID0gY29udGV4dFNpemU7Ci19Ci0KIFdlYkNv
cmU6OklPU3VyZmFjZTo6SU9TdXJmYWNlKElPU3VyZmFjZVJlZiBzdXJmYWNlLCBDR0NvbG9yU3Bh
Y2VSZWYgY29sb3JTcGFjZSkKICAgICA6IG1fY29sb3JTcGFjZShjb2xvclNwYWNlKQogICAgICwg
bV9zdXJmYWNlKHN1cmZhY2UpCkBAIC0zOTYsOCArMzk1LDEyIEBAIHZvaWQgV2ViQ29yZTo6SU9T
dXJmYWNlOjpjb252ZXJ0VG9Gb3JtYXQoc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OklPU3VyZmFj
ZT4mJiBpCiAgICAgfQogCiAgICAgYXV0byBkZXN0aW5hdGlvblN1cmZhY2UgPSBJT1N1cmZhY2U6
OmNyZWF0ZShpblN1cmZhY2UtPnNpemUoKSwgaW5TdXJmYWNlLT5jb2xvclNwYWNlKCksIGZvcm1h
dCk7Ci0gICAgSU9TdXJmYWNlUmVmIGRlc3RpbmF0aW9uSU9TdXJmYWNlUmVmID0gZGVzdGluYXRp
b25TdXJmYWNlLT5zdXJmYWNlKCk7CisgICAgaWYgKCFkZXN0aW5hdGlvblN1cmZhY2UpIHsKKyAg
ICAgICAgY2FsbGJhY2sobnVsbHB0cik7CisgICAgICAgIHJldHVybjsKKyAgICB9CiAKKyAgICBJ
T1N1cmZhY2VSZWYgZGVzdGluYXRpb25JT1N1cmZhY2VSZWYgPSBkZXN0aW5hdGlvblN1cmZhY2Ut
PnN1cmZhY2UoKTsKICAgICBJT1N1cmZhY2VBY2NlbGVyYXRvckNvbXBsZXRpb24gY29tcGxldGlv
bjsKICAgICBjb21wbGV0aW9uLmNvbXBsZXRpb25SZWZDb24gPSBuZXcgc3RkOjpmdW5jdGlvbjx2
b2lkKHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJT1N1cmZhY2U+KT4gKFdURk1vdmUoY2FsbGJh
Y2spKTsKICAgICBjb21wbGV0aW9uLmNvbXBsZXRpb25SZWZDb24yID0gZGVzdGluYXRpb25TdXJm
YWNlLnJlbGVhc2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVt
b3RlTGF5ZXJCYWNraW5nU3RvcmUubW0gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90
ZUxheWVyQmFja2luZ1N0b3JlLm1tCmluZGV4IGQyOTM0YmU3NmI2NzQ4MjY1Zjk1YWVlYjZjZGU4
YTVmODU2OGY4MjAuLjI1YjNmYjU0Njc1MWQ0NzdkZDQ1MzBmOGQ1OTkwZmZmMzBkMTM5ZTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJCYWNraW5nU3Rv
cmUubW0KKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllckJhY2tpbmdT
dG9yZS5tbQpAQCAtMTE5LDcgKzExOSwxMCBAQCB2b2lkIFJlbW90ZUxheWVyQmFja2luZ1N0b3Jl
OjplbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAKICNpZiBVU0Uo
SU9TVVJGQUNFKQogICAgIGlmIChtX2FjY2VsZXJhdGVzRHJhd2luZykgewotICAgICAgICBlbmNv
ZGVyIDw8IG1fZnJvbnRCdWZmZXIuc3VyZmFjZS0+Y3JlYXRlU2VuZFJpZ2h0KCk7CisgICAgICAg
IGlmIChtX2Zyb250QnVmZmVyLnN1cmZhY2UpCisgICAgICAgICAgICBlbmNvZGVyIDw8IG1fZnJv
bnRCdWZmZXIuc3VyZmFjZS0+Y3JlYXRlU2VuZFJpZ2h0KCk7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIGVuY29kZXIgPDwgV2ViQ29yZTo6TWFjaFNlbmRSaWdodCgpOwogICAgICAgICByZXR1
cm47CiAgICAgfQogI2VuZGlmCkBAIC0yNjIsMTMgKzI2NSwxNSBAQCBib29sIFJlbW90ZUxheWVy
QmFja2luZ1N0b3JlOjpkaXNwbGF5KCkKICAgICAgICAgaWYgKG1fYmFja0J1ZmZlci5zdXJmYWNl
ICYmICF3aWxsUGFpbnRFbnRpcmVCYWNraW5nU3RvcmUpCiAgICAgICAgICAgICBiYWNrSW1hZ2Ug
PSBtX2JhY2tCdWZmZXIuc3VyZmFjZS0+Y3JlYXRlSW1hZ2UoKTsKIAotICAgICAgICBHcmFwaGlj
c0NvbnRleHQmIGNvbnRleHQgPSBtX2Zyb250QnVmZmVyLnN1cmZhY2UtPmVuc3VyZUdyYXBoaWNz
Q29udGV4dCgpOworICAgICAgICBpZiAobV9mcm9udEJ1ZmZlci5zdXJmYWNlKSB7CisgICAgICAg
ICAgICBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQgPSBtX2Zyb250QnVmZmVyLnN1cmZhY2UtPmVu
c3VyZUdyYXBoaWNzQ29udGV4dCgpOwogCi0gICAgICAgIGNvbnRleHQuc2NhbGUoRmxvYXRTaXpl
KDEsIC0xKSk7Ci0gICAgICAgIGNvbnRleHQudHJhbnNsYXRlKDAsIC1leHBhbmRlZFNjYWxlZFNp
emUuaGVpZ2h0KCkpOwotICAgICAgICBkcmF3SW5Db250ZXh0KGNvbnRleHQsIGJhY2tJbWFnZS5n
ZXQoKSk7CisgICAgICAgICAgICBjb250ZXh0LnNjYWxlKEZsb2F0U2l6ZSgxLCAtMSkpOworICAg
ICAgICAgICAgY29udGV4dC50cmFuc2xhdGUoMCwgLWV4cGFuZGVkU2NhbGVkU2l6ZS5oZWlnaHQo
KSk7CisgICAgICAgICAgICBkcmF3SW5Db250ZXh0KGNvbnRleHQsIGJhY2tJbWFnZS5nZXQoKSk7
CiAKLSAgICAgICAgbV9mcm9udEJ1ZmZlci5zdXJmYWNlLT5yZWxlYXNlR3JhcGhpY3NDb250ZXh0
KCk7CisgICAgICAgICAgICBtX2Zyb250QnVmZmVyLnN1cmZhY2UtPnJlbGVhc2VHcmFwaGljc0Nv
bnRleHQoKTsKKyAgICAgICAgfQogICAgIH0gZWxzZQogI2VuZGlmCiAgICAgewpAQCAtMzk5LDcg
KzQwNCw3IEBAIHZvaWQgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OmFwcGx5QmFja2luZ1N0b3Jl
VG9MYXllcihDQUxheWVyICpsYXllcikKICAgICBsYXllci5jb250ZW50c09wYXF1ZSA9IG1faXNP
cGFxdWU7CiAKICNpZiBVU0UoSU9TVVJGQUNFKQotICAgIGlmIChhY2NlbGVyYXRlc0RyYXdpbmco
KSkgeworICAgIGlmIChhY2NlbGVyYXRlc0RyYXdpbmcoKSAmJiBtX2Zyb250QnVmZmVyLnN1cmZh
Y2UpIHsKICAgICAgICAgbGF5ZXIuY29udGVudHMgPSBtX2Zyb250QnVmZmVyLnN1cmZhY2UtPmFz
TGF5ZXJDb250ZW50cygpOwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCBiYjgyNjE3ZmI4OTE1
Y2EyZjNlMDY3ZDkxNWMwOTRjNzViYTEwNWVjLi5mNzJhMzNjZTQxMDA5Y2RjOTNmMGFhMGE5MTFh
ZTMxM2NmMjhlYjc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlldy5tbQpAQCAtMTM4NywxMyArMTM4NywxOSBAQCAtIChQYXNzUmVmUHRyPFdlYktp
dDo6Vmlld1NuYXBzaG90PilfdGFrZVZpZXdTbmFwc2hvdAogI2lmIFVTRShJT1NVUkZBQ0UpCiAg
ICAgV2ViQ29yZTo6SU9TdXJmYWNlOjpGb3JtYXQgc25hcHNob3RGb3JtYXQgPSBXZWJDb3JlOjpz
Y3JlZW5TdXBwb3J0c0V4dGVuZGVkQ29sb3IoKSA/IFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0
OjpSR0IxMCA6IFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0OjpSR0JBOwogICAgIGF1dG8gc3Vy
ZmFjZSA9IFdlYkNvcmU6OklPU3VyZmFjZTo6Y3JlYXRlKFdlYkNvcmU6OmV4cGFuZGVkSW50U2l6
ZShzbmFwc2hvdFNpemUpLCBXZWJDb3JlOjpzUkdCQ29sb3JTcGFjZVJlZigpLCBzbmFwc2hvdEZv
cm1hdCk7CisgICAgaWYgKCFzdXJmYWNlKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBD
QVJlbmRlclNlcnZlclJlbmRlckxheWVyV2l0aFRyYW5zZm9ybShNQUNIX1BPUlRfTlVMTCwgc2Vs
Zi5sYXllci5jb250ZXh0LmNvbnRleHRJZCwgcmVpbnRlcnByZXRfY2FzdDx1aW50NjRfdD4oc2Vs
Zi5sYXllciksIHN1cmZhY2UtPnN1cmZhY2UoKSwgMCwgMCwgJnRyYW5zZm9ybSk7CiAKICAgICBX
ZWJDb3JlOjpJT1N1cmZhY2U6OkZvcm1hdCBjb21wcmVzc2VkRm9ybWF0ID0gV2ViQ29yZTo6SU9T
dXJmYWNlOjpGb3JtYXQ6OllVVjQyMjsKICAgICBpZiAoV2ViQ29yZTo6SU9TdXJmYWNlOjphbGxv
d0NvbnZlcnNpb25Gcm9tRm9ybWF0VG9Gb3JtYXQoc25hcHNob3RGb3JtYXQsIGNvbXByZXNzZWRG
b3JtYXQpKSB7CiAgICAgICAgIFJlZlB0cjxXZWJLaXQ6OlZpZXdTbmFwc2hvdD4gdmlld1NuYXBz
aG90ID0gV2ViS2l0OjpWaWV3U25hcHNob3Q6OmNyZWF0ZShudWxscHRyKTsKICAgICAgICAgV2Vi
Q29yZTo6SU9TdXJmYWNlOjpjb252ZXJ0VG9Gb3JtYXQoV1RGTW92ZShzdXJmYWNlKSwgV2ViQ29y
ZTo6SU9TdXJmYWNlOjpGb3JtYXQ6OllVVjQyMiwgW3ZpZXdTbmFwc2hvdF0oc3RkOjp1bmlxdWVf
cHRyPFdlYkNvcmU6OklPU3VyZmFjZT4gY29udmVydGVkU3VyZmFjZSkgewotICAgICAgICAgICAg
dmlld1NuYXBzaG90LT5zZXRTdXJmYWNlKFdURk1vdmUoY29udmVydGVkU3VyZmFjZSkpOworICAg
ICAgICAgICAgaWYgKGNvbnZlcnRlZFN1cmZhY2UpCisgICAgICAgICAgICAgICAgdmlld1NuYXBz
aG90LT5zZXRTdXJmYWNlKFdURk1vdmUoY29udmVydGVkU3VyZmFjZSkpOworICAgICAgICAgICAg
ZWxzZQorICAgICAgICAgICAgICAgIHZpZXdTbmFwc2hvdC0+Y2xlYXJJbWFnZSgpOworCiAgICAg
ICAgIH0pOwogCiAgICAgICAgIHJldHVybiB2aWV3U25hcHNob3Q7CkBAIC00MjMxLDYgKzQyMzcs
OCBAQCAtICh2b2lkKV9zbmFwc2hvdFJlY3Q6KENHUmVjdClyZWN0SW5WaWV3Q29vcmRpbmF0ZXMg
aW50b0ltYWdlT2ZXaWR0aDooQ0dGbG9hdClpbQogICAgIC8vIElmIHdlIGFyZSBwYXJlbnRlZCBh
bmQgdGh1cyB3b24ndCBpbmN1ciBhIHNpZ25pZmljYW50IHBlbmFsdHkgZnJvbSBwYWdpbmcgaW4g
dGlsZXMsIHNuYXBzaG90IHRoZSB2aWV3IGhpZXJhcmNoeSBkaXJlY3RseS4KICAgICBpZiAoQ0FE
aXNwbGF5ICpkaXNwbGF5ID0gc2VsZi53aW5kb3cuc2NyZWVuLl9kaXNwbGF5KSB7CiAgICAgICAg
IGF1dG8gc3VyZmFjZSA9IFdlYkNvcmU6OklPU3VyZmFjZTo6Y3JlYXRlKFdlYkNvcmU6OmV4cGFu
ZGVkSW50U2l6ZShXZWJDb3JlOjpGbG9hdFNpemUoaW1hZ2VTaXplKSksIFdlYkNvcmU6OnNSR0JD
b2xvclNwYWNlUmVmKCkpOworICAgICAgICBpZiAoIXN1cmZhY2UpCisgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIENHRmxvYXQgaW1hZ2VTY2FsZUluVmlld0Nvb3JkaW5hdGVzID0gaW1hZ2VX
aWR0aCAvIHJlY3RJblZpZXdDb29yZGluYXRlcy5zaXplLndpZHRoOwogICAgICAgICBDQVRyYW5z
Zm9ybTNEIHRyYW5zZm9ybSA9IENBVHJhbnNmb3JtM0RNYWtlU2NhbGUoaW1hZ2VTY2FsZUluVmll
d0Nvb3JkaW5hdGVzLCBpbWFnZVNjYWxlSW5WaWV3Q29vcmRpbmF0ZXMsIDEpOwogICAgICAgICB0
cmFuc2Zvcm0gPSBDQVRyYW5zZm9ybTNEVHJhbnNsYXRlKHRyYW5zZm9ybSwgLXJlY3RJblZpZXdD
b29yZGluYXRlcy5vcmlnaW4ueCwgLXJlY3RJblZpZXdDb29yZGluYXRlcy5vcmlnaW4ueSwgMCk7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>284303</attachid>
            <date>2016-07-21 20:37:11 -0700</date>
            <delta_ts>2016-07-22 07:29:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160006-20160721203611.patch</filename>
            <type>text/plain</type>
            <size>13107</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAzNTUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWRmNDczMDFjZGJmNTBl
ODE2ZDcwYzY4MmM5YzMxZDJjZmI1NTQ5Yi4uYzNkYmZlYzRkMjU0MzFkNjgwMWFiNzI0YTNlZjZh
MjNmZmUyY2QzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE2LTA3LTIxICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgSGFuZGxlIGNhc2VzIHdoZW4g
SU9TdXJmYWNlIGluaXRpYWxpemF0aW9uIGZhaWxzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwMDA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBpcyBhbiBhZGRpdGlvbmFsIGZpeCB0byByMjAz
NTE0IHRvIGNoZWNrIGlmIElPU3VyZmFjZSBpbml0aWFsaXphdGlvbiB3YXMgc3VjY2Vzc2Z1bC4K
KworICAgICAgICBVbmFibGUgdG8gdGVzdC4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2NnL0ltYWdlQnVmZmVyQ0cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6Oklt
YWdlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2Uu
aDogTWVyZ2UgMiBjJ3RvcnMuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9T
dXJmYWNlLm1tOiBSZW1vdmUgcmVkdW5kYW50IElPU3VyZmFjZTo6Y3JlYXRlKCkgY29kZS4gIAor
ICAgICAgICAoV2ViQ29yZTo6SU9TdXJmYWNlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
SU9TdXJmYWNlOjpjcmVhdGVGcm9tSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6SU9TdXJmYWNl
OjpJT1N1cmZhY2UpOgorICAgICAgICAoV2ViQ29yZTo6SU9TdXJmYWNlOjpjb252ZXJ0VG9Gb3Jt
YXQpOgorCiAyMDE2LTA3LTIxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAg
ICAgICAgUGFyYW1ldGVyIHRvIERvY3VtZW50LmNyZWF0ZUV2ZW50KCkgc2hvdWxkIGJlIG1hbmRh
dG9yeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCmluZGV4IDNlY2ZhOTBlOTQ1MDBkNmVkMjIwMTM0MWNmMjk0YmFkZmM0MTdk
YzUuLmY4MDE2NzQ2OGFmZTI1MjM5MzUyOTc3NDQ4MmNkMTg2ZmVlODdhMzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyMiBAQAorMjAxNi0wNy0yMSAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUu
Y29tPgorCisgICAgICAgIEhhbmRsZSBjYXNlcyB3aGVuIElPU3VyZmFjZSBpbml0aWFsaXphdGlv
biBmYWlscy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE2MDAwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRoaXMgaXMgYW4gYWRkaXRpb25hbCBmaXggdG8gcjIwMzUxNCB0byBjaGVjayBpZiBJT1N1cmZh
Y2UgaW5pdGlhbGl6YXRpb24gd2FzIHN1Y2Nlc3NmdWwuCisKKyAgICAgICAgVW5hYmxlIHRvIHRl
c3QuCisKKyAgICAgICAgKiBTaGFyZWQvbWFjL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLm1tOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6ZW5jb2RlKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OmRpc3BsYXkpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6YXBwbHlCYWNraW5nU3RvcmVUb0xheWVy
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAg
KC1bV0tXZWJWaWV3IF90YWtlVmlld1NuYXBzaG90XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBf
c25hcHNob3RSZWN0OmludG9JbWFnZU9mV2lkdGg6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisKIDIw
MTYtMDctMjEgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZW1vdmUgc3VwcG9ydCBmb3IgZGVwcmVjYXRlZCBTUEkgaW5saW5lTWVkaWFQbGF5YmFj
a1JlcXVpcmVzUGxheXNJbmxpbmVBdHRyaWJ1dGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHAKaW5kZXggZjUzOTcxMDJhNmEw
Yzk5NDJlOWYzM2U1ZjlhNjE4MjAwNjM4YTUzMi4uNWUzNGJjMGFiNjc3MWEyYTJhMDgxZDc4MmFj
ZTdhZWFiMDIwM2I1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHAKQEAgLTE1NCwxMyArMTU0LDE0IEBAIEltYWdlQnVm
ZmVyOjpJbWFnZUJ1ZmZlcihjb25zdCBGbG9hdFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25T
Y2FsZSwgQ0dDb2xvclNwCiAjaWYgVVNFKElPU1VSRkFDRV9DQU5WQVNfQkFDS0lOR19TVE9SRSkK
ICAgICAgICAgRmxvYXRTaXplIHVzZXJCb3VuZHMgPSBzaXplRm9yRGVzdGluYXRpb25TaXplKEZs
b2F0U2l6ZSh3aWR0aC51bnNhZmVHZXQoKSwgaGVpZ2h0LnVuc2FmZUdldCgpKSk7CiAgICAgICAg
IG1fZGF0YS5zdXJmYWNlID0gSU9TdXJmYWNlOjpjcmVhdGUobV9kYXRhLmJhY2tpbmdTdG9yZVNp
emUsIEludFNpemUodXNlckJvdW5kcyksIGNvbG9yU3BhY2UpOwotICAgICAgICBjZ0NvbnRleHQg
PSBtX2RhdGEuc3VyZmFjZS0+ZW5zdXJlUGxhdGZvcm1Db250ZXh0KCk7Ci0gICAgICAgIGlmIChj
Z0NvbnRleHQpCi0gICAgICAgICAgICBDR0NvbnRleHRDbGVhclJlY3QoY2dDb250ZXh0LmdldCgp
LCBGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCB1c2VyQm91bmRzKSk7Ci0gICAgICAgIGVsc2UKLSAg
ICAgICAgICAgIG1fZGF0YS5zdXJmYWNlID0gbnVsbHB0cjsKKyAgICAgICAgaWYgKG1fZGF0YS5z
dXJmYWNlKSB7CisgICAgICAgICAgICBjZ0NvbnRleHQgPSBtX2RhdGEuc3VyZmFjZS0+ZW5zdXJl
UGxhdGZvcm1Db250ZXh0KCk7CisgICAgICAgICAgICBpZiAoY2dDb250ZXh0KQorICAgICAgICAg
ICAgICAgIENHQ29udGV4dENsZWFyUmVjdChjZ0NvbnRleHQuZ2V0KCksIEZsb2F0UmVjdChGbG9h
dFBvaW50KCksIHVzZXJCb3VuZHMpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAg
ICBtX2RhdGEuc3VyZmFjZSA9IG51bGxwdHI7CisgICAgICAgIH0KICNlbmRpZgotCiAgICAgICAg
IGlmICghY2dDb250ZXh0KQogICAgICAgICAgICAgYWNjZWxlcmF0ZVJlbmRlcmluZyA9IGZhbHNl
OyAvLyBJZiBhbGxvY2F0aW9uIGZhaWxzLCBmYWxsIGJhY2sgdG8gbm9uLWFjY2VsZXJhdGVkIHBh
dGguCiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvSU9TdXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9JT1N1cmZhY2UuaAppbmRleCAwMmVkMTcxYmU5NDVmNjE3NGU1NDFiM2Q4MjlkMGQ0YjNkNzJl
Y2E2Li5mYTMyNjNmZmRlYjE1YjBkYjJhZWUxMTBiYzQ4ZmQ0ZjE1NjVhZjQ2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UuaApAQCAt
MTAwLDggKzEwMCw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiBwcml2YXRlOgotICAgIElPU3VyZmFj
ZShJbnRTaXplLCBDR0NvbG9yU3BhY2VSZWYsIEZvcm1hdCk7Ci0gICAgSU9TdXJmYWNlKEludFNp
emUsIEludFNpemUgY29udGV4dFNpemUsIENHQ29sb3JTcGFjZVJlZiwgRm9ybWF0KTsKKyAgICBJ
T1N1cmZhY2UoSW50U2l6ZSwgSW50U2l6ZSBjb250ZXh0U2l6ZSwgQ0dDb2xvclNwYWNlUmVmLCBG
b3JtYXQsIGJvb2wmIHN1Y2Nlc3MpOwogICAgIElPU3VyZmFjZShJT1N1cmZhY2VSZWYsIENHQ29s
b3JTcGFjZVJlZik7CiAKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4gc3Vy
ZmFjZUZyb21Qb29sKEludFNpemUsIEludFNpemUgY29udGV4dFNpemUsIENHQ29sb3JTcGFjZVJl
ZiwgRm9ybWF0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL0lPU3VyZmFjZS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL0lPU3VyZmFjZS5tbQppbmRleCA1ZmJmMzBmZGEwNzdjMjRmYjAwZTMyNDUyY2IxOTliYzM1
MDYwZDI1Li5mYzBkMDMzOGQ5MmU2Y2QxMjMwMGVmZTRjOTllMTljNTE0MDFjZjUxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLm1t
CkBAIC01NywxNyArNTcsMTggQEAgaW5saW5lIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJT1N1
cmZhY2U+IFdlYkNvcmU6OklPU3VyZmFjZTo6c3VyZmFjZUZyb21Qb29sKEkKIAogc3RkOjp1bmlx
dWVfcHRyPFdlYkNvcmU6OklPU3VyZmFjZT4gV2ViQ29yZTo6SU9TdXJmYWNlOjpjcmVhdGUoSW50
U2l6ZSBzaXplLCBDR0NvbG9yU3BhY2VSZWYgY29sb3JTcGFjZSwgRm9ybWF0IHBpeGVsRm9ybWF0
KQogewotICAgIGlmIChhdXRvIGNhY2hlZFN1cmZhY2UgPSBzdXJmYWNlRnJvbVBvb2woc2l6ZSwg
c2l6ZSwgY29sb3JTcGFjZSwgcGl4ZWxGb3JtYXQpKQotICAgICAgICByZXR1cm4gY2FjaGVkU3Vy
ZmFjZTsKLQotICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPihuZXcgSU9TdXJm
YWNlKHNpemUsIGNvbG9yU3BhY2UsIHBpeGVsRm9ybWF0KSk7CisgICAgcmV0dXJuIElPU3VyZmFj
ZTo6Y3JlYXRlKHNpemUsIHNpemUsIGNvbG9yU3BhY2UsIHBpeGVsRm9ybWF0KTsKIH0KIAogc3Rk
Ojp1bmlxdWVfcHRyPFdlYkNvcmU6OklPU3VyZmFjZT4gV2ViQ29yZTo6SU9TdXJmYWNlOjpjcmVh
dGUoSW50U2l6ZSBzaXplLCBJbnRTaXplIGNvbnRleHRTaXplLCBDR0NvbG9yU3BhY2VSZWYgY29s
b3JTcGFjZSwgRm9ybWF0IHBpeGVsRm9ybWF0KQogewogICAgIGlmIChhdXRvIGNhY2hlZFN1cmZh
Y2UgPSBzdXJmYWNlRnJvbVBvb2woc2l6ZSwgY29udGV4dFNpemUsIGNvbG9yU3BhY2UsIHBpeGVs
Rm9ybWF0KSkKICAgICAgICAgcmV0dXJuIGNhY2hlZFN1cmZhY2U7Ci0gICAgcmV0dXJuIHN0ZDo6
dW5pcXVlX3B0cjxJT1N1cmZhY2U+KG5ldyBJT1N1cmZhY2Uoc2l6ZSwgY29udGV4dFNpemUsIGNv
bG9yU3BhY2UsIHBpeGVsRm9ybWF0KSk7CisgICAgYm9vbCBzdWNjZXNzID0gZmFsc2U7CisgICAg
YXV0byBpb3N1cmZhY2UgPSBzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPihuZXcgSU9TdXJmYWNl
KHNpemUsIGNvbnRleHRTaXplLCBjb2xvclNwYWNlLCBwaXhlbEZvcm1hdCwgc3VjY2VzcykpOwor
ICAgIGlmICghc3VjY2VzcykKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIGlv
c3VyZmFjZTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OklPU3VyZmFjZT4gV2ViQ29y
ZTo6SU9TdXJmYWNlOjpjcmVhdGVGcm9tU2VuZFJpZ2h0KGNvbnN0IE1hY2hTZW5kUmlnaHQmIHNl
bmRSaWdodCwgQ0dDb2xvclNwYWNlUmVmIGNvbG9yU3BhY2UpCkBAIC05MCwxMCArOTEsMTEgQEAg
c3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OklPU3VyZmFjZT4gV2ViQ29yZTo6SU9TdXJmYWNlOjpj
cmVhdGVGcm9tSW1hZ2UoQ0dJbWFnZVIKICAgICBzaXplX3QgaGVpZ2h0ID0gQ0dJbWFnZUdldEhl
aWdodChpbWFnZSk7CiAKICAgICBhdXRvIHN1cmZhY2UgPSBJT1N1cmZhY2U6OmNyZWF0ZShJbnRT
aXplKHdpZHRoLCBoZWlnaHQpLCBzUkdCQ29sb3JTcGFjZVJlZigpKTsKKyAgICBpZiAoIXN1cmZh
Y2UpCisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGF1dG8gc3VyZmFjZUNvbnRleHQgPSBz
dXJmYWNlLT5lbnN1cmVQbGF0Zm9ybUNvbnRleHQoKTsKICAgICBDR0NvbnRleHREcmF3SW1hZ2Uo
c3VyZmFjZUNvbnRleHQsIENHUmVjdE1ha2UoMCwgMCwgd2lkdGgsIGhlaWdodCksIGltYWdlKTsK
ICAgICBDR0NvbnRleHRGbHVzaChzdXJmYWNlQ29udGV4dCk7Ci0KICAgICByZXR1cm4gc3VyZmFj
ZTsKIH0KIApAQCAtMTc5LDExICsxODEsMTUgQEAgc3RhdGljIE5TRGljdGlvbmFyeSAqb3B0aW9u
c0ZvcjMyQml0U3VyZmFjZShJbnRTaXplIHNpemUsIHVuc2lnbmVkIHBpeGVsRm9ybWF0KQogCiB9
CiAKLVdlYkNvcmU6OklPU3VyZmFjZTo6SU9TdXJmYWNlKEludFNpemUgc2l6ZSwgQ0dDb2xvclNw
YWNlUmVmIGNvbG9yU3BhY2UsIEZvcm1hdCBmb3JtYXQpCitXZWJDb3JlOjpJT1N1cmZhY2U6OklP
U3VyZmFjZShJbnRTaXplIHNpemUsIEludFNpemUgY29udGV4dFNpemUsIENHQ29sb3JTcGFjZVJl
ZiBjb2xvclNwYWNlLCBGb3JtYXQgZm9ybWF0LCBib29sJiBzdWNjZXNzKQogICAgIDogbV9jb2xv
clNwYWNlKGNvbG9yU3BhY2UpCiAgICAgLCBtX3NpemUoc2l6ZSkKLSAgICAsIG1fY29udGV4dFNp
emUoc2l6ZSkKKyAgICAsIG1fY29udGV4dFNpemUoY29udGV4dFNpemUpCiB7CisgICAgQVNTRVJU
KCFzdWNjZXNzKTsKKyAgICBBU1NFUlQoY29udGV4dFNpemUud2lkdGgoKSA8PSBzaXplLndpZHRo
KCkpOworICAgIEFTU0VSVChjb250ZXh0U2l6ZS5oZWlnaHQoKSA8PSBzaXplLmhlaWdodCgpKTsK
KwogICAgIE5TRGljdGlvbmFyeSAqb3B0aW9uczsKIAogICAgIHN3aXRjaCAoZm9ybWF0KSB7CkBA
IC0yMDAsMjEgKzIwNiwxNCBAQCBXZWJDb3JlOjpJT1N1cmZhY2U6OklPU3VyZmFjZShJbnRTaXpl
IHNpemUsIENHQ29sb3JTcGFjZVJlZiBjb2xvclNwYWNlLCBGb3JtYXQgZgogICAgICAgICBvcHRp
b25zID0gb3B0aW9uc0ZvckJpcGxhbmFyU3VyZmFjZShzaXplLCAnNDIyZicsIDEsIDEpOwogICAg
ICAgICBicmVhazsKICAgICB9Ci0gICAgCiAgICAgbV9zdXJmYWNlID0gYWRvcHRDRihJT1N1cmZh
Y2VDcmVhdGUoKENGRGljdGlvbmFyeVJlZilvcHRpb25zKSk7Ci0gICAgbV90b3RhbEJ5dGVzID0g
SU9TdXJmYWNlR2V0QWxsb2NTaXplKG1fc3VyZmFjZS5nZXQoKSk7Ci0gICAgaWYgKCFtX3N1cmZh
Y2UpCisgICAgc3VjY2VzcyA9ICEhbV9zdXJmYWNlOworICAgIGlmIChzdWNjZXNzKQorICAgICAg
ICBtX3RvdGFsQnl0ZXMgPSBJT1N1cmZhY2VHZXRBbGxvY1NpemUobV9zdXJmYWNlLmdldCgpKTsK
KyAgICBlbHNlCiAgICAgICAgIE5TTG9nKEAiU3VyZmFjZSBjcmVhdGlvbiBmYWlsZWQgZm9yIG9w
dGlvbnMgJUAiLCBvcHRpb25zKTsKIH0KIAotV2ViQ29yZTo6SU9TdXJmYWNlOjpJT1N1cmZhY2Uo
SW50U2l6ZSBzaXplLCBJbnRTaXplIGNvbnRleHRTaXplLCBDR0NvbG9yU3BhY2VSZWYgY29sb3JT
cGFjZSwgRm9ybWF0IHBpeGVsRm9ybWF0KQotICAgIDogSU9TdXJmYWNlKHNpemUsIGNvbG9yU3Bh
Y2UsIHBpeGVsRm9ybWF0KQotewotICAgIEFTU0VSVChjb250ZXh0U2l6ZS53aWR0aCgpIDw9IHNp
emUud2lkdGgoKSk7Ci0gICAgQVNTRVJUKGNvbnRleHRTaXplLmhlaWdodCgpIDw9IHNpemUuaGVp
Z2h0KCkpOwotICAgIG1fY29udGV4dFNpemUgPSBjb250ZXh0U2l6ZTsKLX0KLQogV2ViQ29yZTo6
SU9TdXJmYWNlOjpJT1N1cmZhY2UoSU9TdXJmYWNlUmVmIHN1cmZhY2UsIENHQ29sb3JTcGFjZVJl
ZiBjb2xvclNwYWNlKQogICAgIDogbV9jb2xvclNwYWNlKGNvbG9yU3BhY2UpCiAgICAgLCBtX3N1
cmZhY2Uoc3VyZmFjZSkKQEAgLTM5Niw4ICszOTUsMTIgQEAgdm9pZCBXZWJDb3JlOjpJT1N1cmZh
Y2U6OmNvbnZlcnRUb0Zvcm1hdChzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SU9TdXJmYWNlPiYm
IGkKICAgICB9CiAKICAgICBhdXRvIGRlc3RpbmF0aW9uU3VyZmFjZSA9IElPU3VyZmFjZTo6Y3Jl
YXRlKGluU3VyZmFjZS0+c2l6ZSgpLCBpblN1cmZhY2UtPmNvbG9yU3BhY2UoKSwgZm9ybWF0KTsK
LSAgICBJT1N1cmZhY2VSZWYgZGVzdGluYXRpb25JT1N1cmZhY2VSZWYgPSBkZXN0aW5hdGlvblN1
cmZhY2UtPnN1cmZhY2UoKTsKKyAgICBpZiAoIWRlc3RpbmF0aW9uU3VyZmFjZSkgeworICAgICAg
ICBjYWxsYmFjayhudWxscHRyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KIAorICAgIElPU3Vy
ZmFjZVJlZiBkZXN0aW5hdGlvbklPU3VyZmFjZVJlZiA9IGRlc3RpbmF0aW9uU3VyZmFjZS0+c3Vy
ZmFjZSgpOwogICAgIElPU3VyZmFjZUFjY2VsZXJhdG9yQ29tcGxldGlvbiBjb21wbGV0aW9uOwog
ICAgIGNvbXBsZXRpb24uY29tcGxldGlvblJlZkNvbiA9IG5ldyBzdGQ6OmZ1bmN0aW9uPHZvaWQo
c3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OklPU3VyZmFjZT4pPiAoV1RGTW92ZShjYWxsYmFjaykp
OwogICAgIGNvbXBsZXRpb24uY29tcGxldGlvblJlZkNvbjIgPSBkZXN0aW5hdGlvblN1cmZhY2Uu
cmVsZWFzZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVM
YXllckJhY2tpbmdTdG9yZS5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5
ZXJCYWNraW5nU3RvcmUubW0KaW5kZXggZDI5MzRiZTc2YjY3NDgyNjVmOTVhZWViNmNkZThhNWY4
NTY4ZjgyMC4uMjViM2ZiNTQ2NzUxZDQ3N2RkNDUzMGY4ZDU5OTBmZmYzMGQxMzllMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyQmFja2luZ1N0b3Jl
Lm1tCkBAIC0xMTksNyArMTE5LDEwIEBAIHZvaWQgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OmVu
Y29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIAogI2lmIFVTRShJT1NV
UkZBQ0UpCiAgICAgaWYgKG1fYWNjZWxlcmF0ZXNEcmF3aW5nKSB7Ci0gICAgICAgIGVuY29kZXIg
PDwgbV9mcm9udEJ1ZmZlci5zdXJmYWNlLT5jcmVhdGVTZW5kUmlnaHQoKTsKKyAgICAgICAgaWYg
KG1fZnJvbnRCdWZmZXIuc3VyZmFjZSkKKyAgICAgICAgICAgIGVuY29kZXIgPDwgbV9mcm9udEJ1
ZmZlci5zdXJmYWNlLT5jcmVhdGVTZW5kUmlnaHQoKTsKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgZW5jb2RlciA8PCBXZWJDb3JlOjpNYWNoU2VuZFJpZ2h0KCk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAjZW5kaWYKQEAgLTI2MiwxMyArMjY1LDE1IEBAIGJvb2wgUmVtb3RlTGF5ZXJCYWNr
aW5nU3RvcmU6OmRpc3BsYXkoKQogICAgICAgICBpZiAobV9iYWNrQnVmZmVyLnN1cmZhY2UgJiYg
IXdpbGxQYWludEVudGlyZUJhY2tpbmdTdG9yZSkKICAgICAgICAgICAgIGJhY2tJbWFnZSA9IG1f
YmFja0J1ZmZlci5zdXJmYWNlLT5jcmVhdGVJbWFnZSgpOwogCi0gICAgICAgIEdyYXBoaWNzQ29u
dGV4dCYgY29udGV4dCA9IG1fZnJvbnRCdWZmZXIuc3VyZmFjZS0+ZW5zdXJlR3JhcGhpY3NDb250
ZXh0KCk7CisgICAgICAgIGlmIChtX2Zyb250QnVmZmVyLnN1cmZhY2UpIHsKKyAgICAgICAgICAg
IEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCA9IG1fZnJvbnRCdWZmZXIuc3VyZmFjZS0+ZW5zdXJl
R3JhcGhpY3NDb250ZXh0KCk7CiAKLSAgICAgICAgY29udGV4dC5zY2FsZShGbG9hdFNpemUoMSwg
LTEpKTsKLSAgICAgICAgY29udGV4dC50cmFuc2xhdGUoMCwgLWV4cGFuZGVkU2NhbGVkU2l6ZS5o
ZWlnaHQoKSk7Ci0gICAgICAgIGRyYXdJbkNvbnRleHQoY29udGV4dCwgYmFja0ltYWdlLmdldCgp
KTsKKyAgICAgICAgICAgIGNvbnRleHQuc2NhbGUoRmxvYXRTaXplKDEsIC0xKSk7CisgICAgICAg
ICAgICBjb250ZXh0LnRyYW5zbGF0ZSgwLCAtZXhwYW5kZWRTY2FsZWRTaXplLmhlaWdodCgpKTsK
KyAgICAgICAgICAgIGRyYXdJbkNvbnRleHQoY29udGV4dCwgYmFja0ltYWdlLmdldCgpKTsKIAot
ICAgICAgICBtX2Zyb250QnVmZmVyLnN1cmZhY2UtPnJlbGVhc2VHcmFwaGljc0NvbnRleHQoKTsK
KyAgICAgICAgICAgIG1fZnJvbnRCdWZmZXIuc3VyZmFjZS0+cmVsZWFzZUdyYXBoaWNzQ29udGV4
dCgpOworICAgICAgICB9CiAgICAgfSBlbHNlCiAjZW5kaWYKICAgICB7CkBAIC0zOTksNyArNDA0
LDcgQEAgdm9pZCBSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6YXBwbHlCYWNraW5nU3RvcmVUb0xh
eWVyKENBTGF5ZXIgKmxheWVyKQogICAgIGxheWVyLmNvbnRlbnRzT3BhcXVlID0gbV9pc09wYXF1
ZTsKIAogI2lmIFVTRShJT1NVUkZBQ0UpCi0gICAgaWYgKGFjY2VsZXJhdGVzRHJhd2luZygpKSB7
CisgICAgaWYgKGFjY2VsZXJhdGVzRHJhd2luZygpICYmIG1fZnJvbnRCdWZmZXIuc3VyZmFjZSkg
ewogICAgICAgICBsYXllci5jb250ZW50cyA9IG1fZnJvbnRCdWZmZXIuc3VyZmFjZS0+YXNMYXll
ckNvbnRlbnRzKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDBiMTdiY2M0NmQ2NjJjYWEz
MzZjNjdjMjMwNzE4YmU1YzE3YzIzMTYuLmVkZGZlZjg4OThkOGE1ODYwOThlNTkxZDcxMTg0M2Yx
YzE0YjIyZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3Lm1tCkBAIC0xMzg4LDEzICsxMzg4LDE5IEBAIC0gKFBhc3NSZWZQdHI8V2ViS2l0OjpW
aWV3U25hcHNob3Q+KV90YWtlVmlld1NuYXBzaG90CiAjaWYgVVNFKElPU1VSRkFDRSkKICAgICBX
ZWJDb3JlOjpJT1N1cmZhY2U6OkZvcm1hdCBzbmFwc2hvdEZvcm1hdCA9IFdlYkNvcmU6OnNjcmVl
blN1cHBvcnRzRXh0ZW5kZWRDb2xvcigpID8gV2ViQ29yZTo6SU9TdXJmYWNlOjpGb3JtYXQ6OlJH
QjEwIDogV2ViQ29yZTo6SU9TdXJmYWNlOjpGb3JtYXQ6OlJHQkE7CiAgICAgYXV0byBzdXJmYWNl
ID0gV2ViQ29yZTo6SU9TdXJmYWNlOjpjcmVhdGUoV2ViQ29yZTo6ZXhwYW5kZWRJbnRTaXplKHNu
YXBzaG90U2l6ZSksIFdlYkNvcmU6OnNSR0JDb2xvclNwYWNlUmVmKCksIHNuYXBzaG90Rm9ybWF0
KTsKKyAgICBpZiAoIXN1cmZhY2UpCisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIENBUmVu
ZGVyU2VydmVyUmVuZGVyTGF5ZXJXaXRoVHJhbnNmb3JtKE1BQ0hfUE9SVF9OVUxMLCBzZWxmLmxh
eWVyLmNvbnRleHQuY29udGV4dElkLCByZWludGVycHJldF9jYXN0PHVpbnQ2NF90PihzZWxmLmxh
eWVyKSwgc3VyZmFjZS0+c3VyZmFjZSgpLCAwLCAwLCAmdHJhbnNmb3JtKTsKIAogICAgIFdlYkNv
cmU6OklPU3VyZmFjZTo6Rm9ybWF0IGNvbXByZXNzZWRGb3JtYXQgPSBXZWJDb3JlOjpJT1N1cmZh
Y2U6OkZvcm1hdDo6WVVWNDIyOwogICAgIGlmIChXZWJDb3JlOjpJT1N1cmZhY2U6OmFsbG93Q29u
dmVyc2lvbkZyb21Gb3JtYXRUb0Zvcm1hdChzbmFwc2hvdEZvcm1hdCwgY29tcHJlc3NlZEZvcm1h
dCkpIHsKICAgICAgICAgUmVmUHRyPFdlYktpdDo6Vmlld1NuYXBzaG90PiB2aWV3U25hcHNob3Qg
PSBXZWJLaXQ6OlZpZXdTbmFwc2hvdDo6Y3JlYXRlKG51bGxwdHIpOwogICAgICAgICBXZWJDb3Jl
OjpJT1N1cmZhY2U6OmNvbnZlcnRUb0Zvcm1hdChXVEZNb3ZlKHN1cmZhY2UpLCBXZWJDb3JlOjpJ
T1N1cmZhY2U6OkZvcm1hdDo6WVVWNDIyLCBbdmlld1NuYXBzaG90XShzdGQ6OnVuaXF1ZV9wdHI8
V2ViQ29yZTo6SU9TdXJmYWNlPiBjb252ZXJ0ZWRTdXJmYWNlKSB7Ci0gICAgICAgICAgICB2aWV3
U25hcHNob3QtPnNldFN1cmZhY2UoV1RGTW92ZShjb252ZXJ0ZWRTdXJmYWNlKSk7CisgICAgICAg
ICAgICBpZiAoY29udmVydGVkU3VyZmFjZSkKKyAgICAgICAgICAgICAgICB2aWV3U25hcHNob3Qt
PnNldFN1cmZhY2UoV1RGTW92ZShjb252ZXJ0ZWRTdXJmYWNlKSk7CisgICAgICAgICAgICBlbHNl
CisgICAgICAgICAgICAgICAgdmlld1NuYXBzaG90LT5jbGVhckltYWdlKCk7CisKICAgICAgICAg
fSk7CiAKICAgICAgICAgcmV0dXJuIHZpZXdTbmFwc2hvdDsKQEAgLTQyMzUsNiArNDI0MSw4IEBA
IC0gKHZvaWQpX3NuYXBzaG90UmVjdDooQ0dSZWN0KXJlY3RJblZpZXdDb29yZGluYXRlcyBpbnRv
SW1hZ2VPZldpZHRoOihDR0Zsb2F0KWltCiAgICAgLy8gSWYgd2UgYXJlIHBhcmVudGVkIGFuZCB0
aHVzIHdvbid0IGluY3VyIGEgc2lnbmlmaWNhbnQgcGVuYWx0eSBmcm9tIHBhZ2luZyBpbiB0aWxl
cywgc25hcHNob3QgdGhlIHZpZXcgaGllcmFyY2h5IGRpcmVjdGx5LgogICAgIGlmIChDQURpc3Bs
YXkgKmRpc3BsYXkgPSBzZWxmLndpbmRvdy5zY3JlZW4uX2Rpc3BsYXkpIHsKICAgICAgICAgYXV0
byBzdXJmYWNlID0gV2ViQ29yZTo6SU9TdXJmYWNlOjpjcmVhdGUoV2ViQ29yZTo6ZXhwYW5kZWRJ
bnRTaXplKFdlYkNvcmU6OkZsb2F0U2l6ZShpbWFnZVNpemUpKSwgV2ViQ29yZTo6c1JHQkNvbG9y
U3BhY2VSZWYoKSk7CisgICAgICAgIGlmICghc3VyZmFjZSkKKyAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgQ0dGbG9hdCBpbWFnZVNjYWxlSW5WaWV3Q29vcmRpbmF0ZXMgPSBpbWFnZVdpZHRo
IC8gcmVjdEluVmlld0Nvb3JkaW5hdGVzLnNpemUud2lkdGg7CiAgICAgICAgIENBVHJhbnNmb3Jt
M0QgdHJhbnNmb3JtID0gQ0FUcmFuc2Zvcm0zRE1ha2VTY2FsZShpbWFnZVNjYWxlSW5WaWV3Q29v
cmRpbmF0ZXMsIGltYWdlU2NhbGVJblZpZXdDb29yZGluYXRlcywgMSk7CiAgICAgICAgIHRyYW5z
Zm9ybSA9IENBVHJhbnNmb3JtM0RUcmFuc2xhdGUodHJhbnNmb3JtLCAtcmVjdEluVmlld0Nvb3Jk
aW5hdGVzLm9yaWdpbi54LCAtcmVjdEluVmlld0Nvb3JkaW5hdGVzLm9yaWdpbi55LCAwKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>284330</attachid>
            <date>2016-07-22 07:29:17 -0700</date>
            <delta_ts>2016-07-22 08:22:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160006-20160722072815.patch</filename>
            <type>text/plain</type>
            <size>13146</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAzNTUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWRmNDczMDFjZGJmNTBl
ODE2ZDcwYzY4MmM5YzMxZDJjZmI1NTQ5Yi4uYzNkYmZlYzRkMjU0MzFkNjgwMWFiNzI0YTNlZjZh
MjNmZmUyY2QzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE2LTA3LTIxICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgSGFuZGxlIGNhc2VzIHdoZW4g
SU9TdXJmYWNlIGluaXRpYWxpemF0aW9uIGZhaWxzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwMDA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBpcyBhbiBhZGRpdGlvbmFsIGZpeCB0byByMjAz
NTE0IHRvIGNoZWNrIGlmIElPU3VyZmFjZSBpbml0aWFsaXphdGlvbiB3YXMgc3VjY2Vzc2Z1bC4K
KworICAgICAgICBVbmFibGUgdG8gdGVzdC4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2NnL0ltYWdlQnVmZmVyQ0cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6Oklt
YWdlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2Uu
aDogTWVyZ2UgMiBjJ3RvcnMuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9T
dXJmYWNlLm1tOiBSZW1vdmUgcmVkdW5kYW50IElPU3VyZmFjZTo6Y3JlYXRlKCkgY29kZS4gIAor
ICAgICAgICAoV2ViQ29yZTo6SU9TdXJmYWNlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
SU9TdXJmYWNlOjpjcmVhdGVGcm9tSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6SU9TdXJmYWNl
OjpJT1N1cmZhY2UpOgorICAgICAgICAoV2ViQ29yZTo6SU9TdXJmYWNlOjpjb252ZXJ0VG9Gb3Jt
YXQpOgorCiAyMDE2LTA3LTIxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAg
ICAgICAgUGFyYW1ldGVyIHRvIERvY3VtZW50LmNyZWF0ZUV2ZW50KCkgc2hvdWxkIGJlIG1hbmRh
dG9yeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCmluZGV4IDNlY2ZhOTBlOTQ1MDBkNmVkMjIwMTM0MWNmMjk0YmFkZmM0MTdk
YzUuLmY4MDE2NzQ2OGFmZTI1MjM5MzUyOTc3NDQ4MmNkMTg2ZmVlODdhMzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyMiBAQAorMjAxNi0wNy0yMSAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUu
Y29tPgorCisgICAgICAgIEhhbmRsZSBjYXNlcyB3aGVuIElPU3VyZmFjZSBpbml0aWFsaXphdGlv
biBmYWlscy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE2MDAwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRoaXMgaXMgYW4gYWRkaXRpb25hbCBmaXggdG8gcjIwMzUxNCB0byBjaGVjayBpZiBJT1N1cmZh
Y2UgaW5pdGlhbGl6YXRpb24gd2FzIHN1Y2Nlc3NmdWwuCisKKyAgICAgICAgVW5hYmxlIHRvIHRl
c3QuCisKKyAgICAgICAgKiBTaGFyZWQvbWFjL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLm1tOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6ZW5jb2RlKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OmRpc3BsYXkpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6YXBwbHlCYWNraW5nU3RvcmVUb0xheWVy
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAg
KC1bV0tXZWJWaWV3IF90YWtlVmlld1NuYXBzaG90XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBf
c25hcHNob3RSZWN0OmludG9JbWFnZU9mV2lkdGg6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisKIDIw
MTYtMDctMjEgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZW1vdmUgc3VwcG9ydCBmb3IgZGVwcmVjYXRlZCBTUEkgaW5saW5lTWVkaWFQbGF5YmFj
a1JlcXVpcmVzUGxheXNJbmxpbmVBdHRyaWJ1dGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHAKaW5kZXggZjUzOTcxMDJhNmEw
Yzk5NDJlOWYzM2U1ZjlhNjE4MjAwNjM4YTUzMi4uNWUzNGJjMGFiNjc3MWEyYTJhMDgxZDc4MmFj
ZTdhZWFiMDIwM2I1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHAKQEAgLTE1NCwxMyArMTU0LDE0IEBAIEltYWdlQnVm
ZmVyOjpJbWFnZUJ1ZmZlcihjb25zdCBGbG9hdFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25T
Y2FsZSwgQ0dDb2xvclNwCiAjaWYgVVNFKElPU1VSRkFDRV9DQU5WQVNfQkFDS0lOR19TVE9SRSkK
ICAgICAgICAgRmxvYXRTaXplIHVzZXJCb3VuZHMgPSBzaXplRm9yRGVzdGluYXRpb25TaXplKEZs
b2F0U2l6ZSh3aWR0aC51bnNhZmVHZXQoKSwgaGVpZ2h0LnVuc2FmZUdldCgpKSk7CiAgICAgICAg
IG1fZGF0YS5zdXJmYWNlID0gSU9TdXJmYWNlOjpjcmVhdGUobV9kYXRhLmJhY2tpbmdTdG9yZVNp
emUsIEludFNpemUodXNlckJvdW5kcyksIGNvbG9yU3BhY2UpOwotICAgICAgICBjZ0NvbnRleHQg
PSBtX2RhdGEuc3VyZmFjZS0+ZW5zdXJlUGxhdGZvcm1Db250ZXh0KCk7Ci0gICAgICAgIGlmIChj
Z0NvbnRleHQpCi0gICAgICAgICAgICBDR0NvbnRleHRDbGVhclJlY3QoY2dDb250ZXh0LmdldCgp
LCBGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCB1c2VyQm91bmRzKSk7Ci0gICAgICAgIGVsc2UKLSAg
ICAgICAgICAgIG1fZGF0YS5zdXJmYWNlID0gbnVsbHB0cjsKKyAgICAgICAgaWYgKG1fZGF0YS5z
dXJmYWNlKSB7CisgICAgICAgICAgICBjZ0NvbnRleHQgPSBtX2RhdGEuc3VyZmFjZS0+ZW5zdXJl
UGxhdGZvcm1Db250ZXh0KCk7CisgICAgICAgICAgICBpZiAoY2dDb250ZXh0KQorICAgICAgICAg
ICAgICAgIENHQ29udGV4dENsZWFyUmVjdChjZ0NvbnRleHQuZ2V0KCksIEZsb2F0UmVjdChGbG9h
dFBvaW50KCksIHVzZXJCb3VuZHMpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAg
ICBtX2RhdGEuc3VyZmFjZSA9IG51bGxwdHI7CisgICAgICAgIH0KICNlbmRpZgotCiAgICAgICAg
IGlmICghY2dDb250ZXh0KQogICAgICAgICAgICAgYWNjZWxlcmF0ZVJlbmRlcmluZyA9IGZhbHNl
OyAvLyBJZiBhbGxvY2F0aW9uIGZhaWxzLCBmYWxsIGJhY2sgdG8gbm9uLWFjY2VsZXJhdGVkIHBh
dGguCiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvSU9TdXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9JT1N1cmZhY2UuaAppbmRleCAwMmVkMTcxYmU5NDVmNjE3NGU1NDFiM2Q4MjlkMGQ0YjNkNzJl
Y2E2Li5mYTMyNjNmZmRlYjE1YjBkYjJhZWUxMTBiYzQ4ZmQ0ZjE1NjVhZjQ2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UuaApAQCAt
MTAwLDggKzEwMCw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiBwcml2YXRlOgotICAgIElPU3VyZmFj
ZShJbnRTaXplLCBDR0NvbG9yU3BhY2VSZWYsIEZvcm1hdCk7Ci0gICAgSU9TdXJmYWNlKEludFNp
emUsIEludFNpemUgY29udGV4dFNpemUsIENHQ29sb3JTcGFjZVJlZiwgRm9ybWF0KTsKKyAgICBJ
T1N1cmZhY2UoSW50U2l6ZSwgSW50U2l6ZSBjb250ZXh0U2l6ZSwgQ0dDb2xvclNwYWNlUmVmLCBG
b3JtYXQsIGJvb2wmIHN1Y2Nlc3MpOwogICAgIElPU3VyZmFjZShJT1N1cmZhY2VSZWYsIENHQ29s
b3JTcGFjZVJlZik7CiAKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4gc3Vy
ZmFjZUZyb21Qb29sKEludFNpemUsIEludFNpemUgY29udGV4dFNpemUsIENHQ29sb3JTcGFjZVJl
ZiwgRm9ybWF0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL0lPU3VyZmFjZS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL0lPU3VyZmFjZS5tbQppbmRleCA1ZmJmMzBmZGEwNzdjMjRmYjAwZTMyNDUyY2IxOTliYzM1
MDYwZDI1Li4yYjBlYjYxMzlkMDk3NWMwYzY5OGI5ZDQ4ODRlOWM5ZTY2Y2EwZjBlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLm1t
CkBAIC01NywxNyArNTcsMTggQEAgaW5saW5lIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJT1N1
cmZhY2U+IFdlYkNvcmU6OklPU3VyZmFjZTo6c3VyZmFjZUZyb21Qb29sKEkKIAogc3RkOjp1bmlx
dWVfcHRyPFdlYkNvcmU6OklPU3VyZmFjZT4gV2ViQ29yZTo6SU9TdXJmYWNlOjpjcmVhdGUoSW50
U2l6ZSBzaXplLCBDR0NvbG9yU3BhY2VSZWYgY29sb3JTcGFjZSwgRm9ybWF0IHBpeGVsRm9ybWF0
KQogewotICAgIGlmIChhdXRvIGNhY2hlZFN1cmZhY2UgPSBzdXJmYWNlRnJvbVBvb2woc2l6ZSwg
c2l6ZSwgY29sb3JTcGFjZSwgcGl4ZWxGb3JtYXQpKQotICAgICAgICByZXR1cm4gY2FjaGVkU3Vy
ZmFjZTsKLQotICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPihuZXcgSU9TdXJm
YWNlKHNpemUsIGNvbG9yU3BhY2UsIHBpeGVsRm9ybWF0KSk7CisgICAgcmV0dXJuIElPU3VyZmFj
ZTo6Y3JlYXRlKHNpemUsIHNpemUsIGNvbG9yU3BhY2UsIHBpeGVsRm9ybWF0KTsKIH0KIAogc3Rk
Ojp1bmlxdWVfcHRyPFdlYkNvcmU6OklPU3VyZmFjZT4gV2ViQ29yZTo6SU9TdXJmYWNlOjpjcmVh
dGUoSW50U2l6ZSBzaXplLCBJbnRTaXplIGNvbnRleHRTaXplLCBDR0NvbG9yU3BhY2VSZWYgY29s
b3JTcGFjZSwgRm9ybWF0IHBpeGVsRm9ybWF0KQogewogICAgIGlmIChhdXRvIGNhY2hlZFN1cmZh
Y2UgPSBzdXJmYWNlRnJvbVBvb2woc2l6ZSwgY29udGV4dFNpemUsIGNvbG9yU3BhY2UsIHBpeGVs
Rm9ybWF0KSkKICAgICAgICAgcmV0dXJuIGNhY2hlZFN1cmZhY2U7Ci0gICAgcmV0dXJuIHN0ZDo6
dW5pcXVlX3B0cjxJT1N1cmZhY2U+KG5ldyBJT1N1cmZhY2Uoc2l6ZSwgY29udGV4dFNpemUsIGNv
bG9yU3BhY2UsIHBpeGVsRm9ybWF0KSk7CisgICAgYm9vbCBzdWNjZXNzID0gZmFsc2U7CisgICAg
YXV0byBzdXJmYWNlID0gc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4obmV3IElPU3VyZmFjZShz
aXplLCBjb250ZXh0U2l6ZSwgY29sb3JTcGFjZSwgcGl4ZWxGb3JtYXQsIHN1Y2Nlc3MpKTsKKyAg
ICBpZiAoIXN1Y2Nlc3MpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBzdXJm
YWNlOwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SU9TdXJmYWNlPiBXZWJDb3JlOjpJ
T1N1cmZhY2U6OmNyZWF0ZUZyb21TZW5kUmlnaHQoY29uc3QgTWFjaFNlbmRSaWdodCYgc2VuZFJp
Z2h0LCBDR0NvbG9yU3BhY2VSZWYgY29sb3JTcGFjZSkKQEAgLTkwLDEwICs5MSwxMSBAQCBzdGQ6
OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SU9TdXJmYWNlPiBXZWJDb3JlOjpJT1N1cmZhY2U6OmNyZWF0
ZUZyb21JbWFnZShDR0ltYWdlUgogICAgIHNpemVfdCBoZWlnaHQgPSBDR0ltYWdlR2V0SGVpZ2h0
KGltYWdlKTsKIAogICAgIGF1dG8gc3VyZmFjZSA9IElPU3VyZmFjZTo6Y3JlYXRlKEludFNpemUo
d2lkdGgsIGhlaWdodCksIHNSR0JDb2xvclNwYWNlUmVmKCkpOworICAgIGlmICghc3VyZmFjZSkK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgYXV0byBzdXJmYWNlQ29udGV4dCA9IHN1cmZh
Y2UtPmVuc3VyZVBsYXRmb3JtQ29udGV4dCgpOwogICAgIENHQ29udGV4dERyYXdJbWFnZShzdXJm
YWNlQ29udGV4dCwgQ0dSZWN0TWFrZSgwLCAwLCB3aWR0aCwgaGVpZ2h0KSwgaW1hZ2UpOwogICAg
IENHQ29udGV4dEZsdXNoKHN1cmZhY2VDb250ZXh0KTsKLQogICAgIHJldHVybiBzdXJmYWNlOwog
fQogCkBAIC0xNzksMTEgKzE4MSwxNSBAQCBzdGF0aWMgTlNEaWN0aW9uYXJ5ICpvcHRpb25zRm9y
MzJCaXRTdXJmYWNlKEludFNpemUgc2l6ZSwgdW5zaWduZWQgcGl4ZWxGb3JtYXQpCiAKIH0KIAot
V2ViQ29yZTo6SU9TdXJmYWNlOjpJT1N1cmZhY2UoSW50U2l6ZSBzaXplLCBDR0NvbG9yU3BhY2VS
ZWYgY29sb3JTcGFjZSwgRm9ybWF0IGZvcm1hdCkKK1dlYkNvcmU6OklPU3VyZmFjZTo6SU9TdXJm
YWNlKEludFNpemUgc2l6ZSwgSW50U2l6ZSBjb250ZXh0U2l6ZSwgQ0dDb2xvclNwYWNlUmVmIGNv
bG9yU3BhY2UsIEZvcm1hdCBmb3JtYXQsIGJvb2wmIHN1Y2Nlc3MpCiAgICAgOiBtX2NvbG9yU3Bh
Y2UoY29sb3JTcGFjZSkKICAgICAsIG1fc2l6ZShzaXplKQotICAgICwgbV9jb250ZXh0U2l6ZShz
aXplKQorICAgICwgbV9jb250ZXh0U2l6ZShjb250ZXh0U2l6ZSkKIHsKKyAgICBzdWNjZXNzID0g
ZmFsc2U7CisgICAgQVNTRVJUKGNvbnRleHRTaXplLndpZHRoKCkgPD0gc2l6ZS53aWR0aCgpKTsK
KyAgICBBU1NFUlQoY29udGV4dFNpemUuaGVpZ2h0KCkgPD0gc2l6ZS5oZWlnaHQoKSk7CisKICAg
ICBOU0RpY3Rpb25hcnkgKm9wdGlvbnM7CiAKICAgICBzd2l0Y2ggKGZvcm1hdCkgewpAQCAtMjAw
LDIxICsyMDYsMTQgQEAgV2ViQ29yZTo6SU9TdXJmYWNlOjpJT1N1cmZhY2UoSW50U2l6ZSBzaXpl
LCBDR0NvbG9yU3BhY2VSZWYgY29sb3JTcGFjZSwgRm9ybWF0IGYKICAgICAgICAgb3B0aW9ucyA9
IG9wdGlvbnNGb3JCaXBsYW5hclN1cmZhY2Uoc2l6ZSwgJzQyMmYnLCAxLCAxKTsKICAgICAgICAg
YnJlYWs7CiAgICAgfQotICAgIAogICAgIG1fc3VyZmFjZSA9IGFkb3B0Q0YoSU9TdXJmYWNlQ3Jl
YXRlKChDRkRpY3Rpb25hcnlSZWYpb3B0aW9ucykpOwotICAgIG1fdG90YWxCeXRlcyA9IElPU3Vy
ZmFjZUdldEFsbG9jU2l6ZShtX3N1cmZhY2UuZ2V0KCkpOwotICAgIGlmICghbV9zdXJmYWNlKQor
ICAgIHN1Y2Nlc3MgPSAhIW1fc3VyZmFjZTsKKyAgICBpZiAoc3VjY2VzcykKKyAgICAgICAgbV90
b3RhbEJ5dGVzID0gSU9TdXJmYWNlR2V0QWxsb2NTaXplKG1fc3VyZmFjZS5nZXQoKSk7CisgICAg
ZWxzZQogICAgICAgICBOU0xvZyhAIlN1cmZhY2UgY3JlYXRpb24gZmFpbGVkIGZvciBvcHRpb25z
ICVAIiwgb3B0aW9ucyk7CiB9CiAKLVdlYkNvcmU6OklPU3VyZmFjZTo6SU9TdXJmYWNlKEludFNp
emUgc2l6ZSwgSW50U2l6ZSBjb250ZXh0U2l6ZSwgQ0dDb2xvclNwYWNlUmVmIGNvbG9yU3BhY2Us
IEZvcm1hdCBwaXhlbEZvcm1hdCkKLSAgICA6IElPU3VyZmFjZShzaXplLCBjb2xvclNwYWNlLCBw
aXhlbEZvcm1hdCkKLXsKLSAgICBBU1NFUlQoY29udGV4dFNpemUud2lkdGgoKSA8PSBzaXplLndp
ZHRoKCkpOwotICAgIEFTU0VSVChjb250ZXh0U2l6ZS5oZWlnaHQoKSA8PSBzaXplLmhlaWdodCgp
KTsKLSAgICBtX2NvbnRleHRTaXplID0gY29udGV4dFNpemU7Ci19Ci0KIFdlYkNvcmU6OklPU3Vy
ZmFjZTo6SU9TdXJmYWNlKElPU3VyZmFjZVJlZiBzdXJmYWNlLCBDR0NvbG9yU3BhY2VSZWYgY29s
b3JTcGFjZSkKICAgICA6IG1fY29sb3JTcGFjZShjb2xvclNwYWNlKQogICAgICwgbV9zdXJmYWNl
KHN1cmZhY2UpCkBAIC0zOTYsOCArMzk1LDEyIEBAIHZvaWQgV2ViQ29yZTo6SU9TdXJmYWNlOjpj
b252ZXJ0VG9Gb3JtYXQoc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OklPU3VyZmFjZT4mJiBpCiAg
ICAgfQogCiAgICAgYXV0byBkZXN0aW5hdGlvblN1cmZhY2UgPSBJT1N1cmZhY2U6OmNyZWF0ZShp
blN1cmZhY2UtPnNpemUoKSwgaW5TdXJmYWNlLT5jb2xvclNwYWNlKCksIGZvcm1hdCk7Ci0gICAg
SU9TdXJmYWNlUmVmIGRlc3RpbmF0aW9uSU9TdXJmYWNlUmVmID0gZGVzdGluYXRpb25TdXJmYWNl
LT5zdXJmYWNlKCk7CisgICAgaWYgKCFkZXN0aW5hdGlvblN1cmZhY2UpIHsKKyAgICAgICAgY2Fs
bGJhY2sobnVsbHB0cik7CisgICAgICAgIHJldHVybjsKKyAgICB9CiAKKyAgICBJT1N1cmZhY2VS
ZWYgZGVzdGluYXRpb25JT1N1cmZhY2VSZWYgPSBkZXN0aW5hdGlvblN1cmZhY2UtPnN1cmZhY2Uo
KTsKICAgICBJT1N1cmZhY2VBY2NlbGVyYXRvckNvbXBsZXRpb24gY29tcGxldGlvbjsKICAgICBj
b21wbGV0aW9uLmNvbXBsZXRpb25SZWZDb24gPSBuZXcgc3RkOjpmdW5jdGlvbjx2b2lkKHN0ZDo6
dW5pcXVlX3B0cjxXZWJDb3JlOjpJT1N1cmZhY2U+KT4gKFdURk1vdmUoY2FsbGJhY2spKTsKICAg
ICBjb21wbGV0aW9uLmNvbXBsZXRpb25SZWZDb24yID0gZGVzdGluYXRpb25TdXJmYWNlLnJlbGVh
c2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJC
YWNraW5nU3RvcmUubW0gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyQmFj
a2luZ1N0b3JlLm1tCmluZGV4IGQyOTM0YmU3NmI2NzQ4MjY1Zjk1YWVlYjZjZGU4YTVmODU2OGY4
MjAuLjI1YjNmYjU0Njc1MWQ0NzdkZDQ1MzBmOGQ1OTkwZmZmMzBkMTM5ZTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW0KKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5tbQpA
QCAtMTE5LDcgKzExOSwxMCBAQCB2b2lkIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjplbmNvZGUo
SVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAKICNpZiBVU0UoSU9TVVJGQUNF
KQogICAgIGlmIChtX2FjY2VsZXJhdGVzRHJhd2luZykgewotICAgICAgICBlbmNvZGVyIDw8IG1f
ZnJvbnRCdWZmZXIuc3VyZmFjZS0+Y3JlYXRlU2VuZFJpZ2h0KCk7CisgICAgICAgIGlmIChtX2Zy
b250QnVmZmVyLnN1cmZhY2UpCisgICAgICAgICAgICBlbmNvZGVyIDw8IG1fZnJvbnRCdWZmZXIu
c3VyZmFjZS0+Y3JlYXRlU2VuZFJpZ2h0KCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGVu
Y29kZXIgPDwgV2ViQ29yZTo6TWFjaFNlbmRSaWdodCgpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogI2VuZGlmCkBAIC0yNjIsMTMgKzI2NSwxNSBAQCBib29sIFJlbW90ZUxheWVyQmFja2luZ1N0
b3JlOjpkaXNwbGF5KCkKICAgICAgICAgaWYgKG1fYmFja0J1ZmZlci5zdXJmYWNlICYmICF3aWxs
UGFpbnRFbnRpcmVCYWNraW5nU3RvcmUpCiAgICAgICAgICAgICBiYWNrSW1hZ2UgPSBtX2JhY2tC
dWZmZXIuc3VyZmFjZS0+Y3JlYXRlSW1hZ2UoKTsKIAotICAgICAgICBHcmFwaGljc0NvbnRleHQm
IGNvbnRleHQgPSBtX2Zyb250QnVmZmVyLnN1cmZhY2UtPmVuc3VyZUdyYXBoaWNzQ29udGV4dCgp
OworICAgICAgICBpZiAobV9mcm9udEJ1ZmZlci5zdXJmYWNlKSB7CisgICAgICAgICAgICBHcmFw
aGljc0NvbnRleHQmIGNvbnRleHQgPSBtX2Zyb250QnVmZmVyLnN1cmZhY2UtPmVuc3VyZUdyYXBo
aWNzQ29udGV4dCgpOwogCi0gICAgICAgIGNvbnRleHQuc2NhbGUoRmxvYXRTaXplKDEsIC0xKSk7
Ci0gICAgICAgIGNvbnRleHQudHJhbnNsYXRlKDAsIC1leHBhbmRlZFNjYWxlZFNpemUuaGVpZ2h0
KCkpOwotICAgICAgICBkcmF3SW5Db250ZXh0KGNvbnRleHQsIGJhY2tJbWFnZS5nZXQoKSk7Cisg
ICAgICAgICAgICBjb250ZXh0LnNjYWxlKEZsb2F0U2l6ZSgxLCAtMSkpOworICAgICAgICAgICAg
Y29udGV4dC50cmFuc2xhdGUoMCwgLWV4cGFuZGVkU2NhbGVkU2l6ZS5oZWlnaHQoKSk7CisgICAg
ICAgICAgICBkcmF3SW5Db250ZXh0KGNvbnRleHQsIGJhY2tJbWFnZS5nZXQoKSk7CiAKLSAgICAg
ICAgbV9mcm9udEJ1ZmZlci5zdXJmYWNlLT5yZWxlYXNlR3JhcGhpY3NDb250ZXh0KCk7CisgICAg
ICAgICAgICBtX2Zyb250QnVmZmVyLnN1cmZhY2UtPnJlbGVhc2VHcmFwaGljc0NvbnRleHQoKTsK
KyAgICAgICAgfQogICAgIH0gZWxzZQogI2VuZGlmCiAgICAgewpAQCAtMzk5LDcgKzQwNCw3IEBA
IHZvaWQgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OmFwcGx5QmFja2luZ1N0b3JlVG9MYXllcihD
QUxheWVyICpsYXllcikKICAgICBsYXllci5jb250ZW50c09wYXF1ZSA9IG1faXNPcGFxdWU7CiAK
ICNpZiBVU0UoSU9TVVJGQUNFKQotICAgIGlmIChhY2NlbGVyYXRlc0RyYXdpbmcoKSkgeworICAg
IGlmIChhY2NlbGVyYXRlc0RyYXdpbmcoKSAmJiBtX2Zyb250QnVmZmVyLnN1cmZhY2UpIHsKICAg
ICAgICAgbGF5ZXIuY29udGVudHMgPSBtX2Zyb250QnVmZmVyLnN1cmZhY2UtPmFzTGF5ZXJDb250
ZW50cygpOwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCAwYjE3YmNjNDZkNjYyY2FhMzM2YzY3
YzIzMDcxOGJlNWMxN2MyMzE2Li4xYWI0MjhjY2ZhMzhjMTNhZDViZTM4NjljZjU3YTI4MGMzYjU2
MDdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
dy5tbQpAQCAtMTM4OCwxMyArMTM4OCwxNiBAQCAtIChQYXNzUmVmUHRyPFdlYktpdDo6Vmlld1Nu
YXBzaG90PilfdGFrZVZpZXdTbmFwc2hvdAogI2lmIFVTRShJT1NVUkZBQ0UpCiAgICAgV2ViQ29y
ZTo6SU9TdXJmYWNlOjpGb3JtYXQgc25hcHNob3RGb3JtYXQgPSBXZWJDb3JlOjpzY3JlZW5TdXBw
b3J0c0V4dGVuZGVkQ29sb3IoKSA/IFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0OjpSR0IxMCA6
IFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0OjpSR0JBOwogICAgIGF1dG8gc3VyZmFjZSA9IFdl
YkNvcmU6OklPU3VyZmFjZTo6Y3JlYXRlKFdlYkNvcmU6OmV4cGFuZGVkSW50U2l6ZShzbmFwc2hv
dFNpemUpLCBXZWJDb3JlOjpzUkdCQ29sb3JTcGFjZVJlZigpLCBzbmFwc2hvdEZvcm1hdCk7Cisg
ICAgaWYgKCFzdXJmYWNlKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBDQVJlbmRlclNl
cnZlclJlbmRlckxheWVyV2l0aFRyYW5zZm9ybShNQUNIX1BPUlRfTlVMTCwgc2VsZi5sYXllci5j
b250ZXh0LmNvbnRleHRJZCwgcmVpbnRlcnByZXRfY2FzdDx1aW50NjRfdD4oc2VsZi5sYXllciks
IHN1cmZhY2UtPnN1cmZhY2UoKSwgMCwgMCwgJnRyYW5zZm9ybSk7CiAKICAgICBXZWJDb3JlOjpJ
T1N1cmZhY2U6OkZvcm1hdCBjb21wcmVzc2VkRm9ybWF0ID0gV2ViQ29yZTo6SU9TdXJmYWNlOjpG
b3JtYXQ6OllVVjQyMjsKICAgICBpZiAoV2ViQ29yZTo6SU9TdXJmYWNlOjphbGxvd0NvbnZlcnNp
b25Gcm9tRm9ybWF0VG9Gb3JtYXQoc25hcHNob3RGb3JtYXQsIGNvbXByZXNzZWRGb3JtYXQpKSB7
CiAgICAgICAgIFJlZlB0cjxXZWJLaXQ6OlZpZXdTbmFwc2hvdD4gdmlld1NuYXBzaG90ID0gV2Vi
S2l0OjpWaWV3U25hcHNob3Q6OmNyZWF0ZShudWxscHRyKTsKICAgICAgICAgV2ViQ29yZTo6SU9T
dXJmYWNlOjpjb252ZXJ0VG9Gb3JtYXQoV1RGTW92ZShzdXJmYWNlKSwgV2ViQ29yZTo6SU9TdXJm
YWNlOjpGb3JtYXQ6OllVVjQyMiwgW3ZpZXdTbmFwc2hvdF0oc3RkOjp1bmlxdWVfcHRyPFdlYkNv
cmU6OklPU3VyZmFjZT4gY29udmVydGVkU3VyZmFjZSkgewotICAgICAgICAgICAgdmlld1NuYXBz
aG90LT5zZXRTdXJmYWNlKFdURk1vdmUoY29udmVydGVkU3VyZmFjZSkpOworICAgICAgICAgICAg
aWYgKGNvbnZlcnRlZFN1cmZhY2UpCisgICAgICAgICAgICAgICAgdmlld1NuYXBzaG90LT5zZXRT
dXJmYWNlKFdURk1vdmUoY29udmVydGVkU3VyZmFjZSkpOwogICAgICAgICB9KTsKIAogICAgICAg
ICByZXR1cm4gdmlld1NuYXBzaG90OwpAQCAtNDIzNSw2ICs0MjM4LDExIEBAIC0gKHZvaWQpX3Nu
YXBzaG90UmVjdDooQ0dSZWN0KXJlY3RJblZpZXdDb29yZGluYXRlcyBpbnRvSW1hZ2VPZldpZHRo
OihDR0Zsb2F0KWltCiAgICAgLy8gSWYgd2UgYXJlIHBhcmVudGVkIGFuZCB0aHVzIHdvbid0IGlu
Y3VyIGEgc2lnbmlmaWNhbnQgcGVuYWx0eSBmcm9tIHBhZ2luZyBpbiB0aWxlcywgc25hcHNob3Qg
dGhlIHZpZXcgaGllcmFyY2h5IGRpcmVjdGx5LgogICAgIGlmIChDQURpc3BsYXkgKmRpc3BsYXkg
PSBzZWxmLndpbmRvdy5zY3JlZW4uX2Rpc3BsYXkpIHsKICAgICAgICAgYXV0byBzdXJmYWNlID0g
V2ViQ29yZTo6SU9TdXJmYWNlOjpjcmVhdGUoV2ViQ29yZTo6ZXhwYW5kZWRJbnRTaXplKFdlYkNv
cmU6OkZsb2F0U2l6ZShpbWFnZVNpemUpKSwgV2ViQ29yZTo6c1JHQkNvbG9yU3BhY2VSZWYoKSk7
CisgICAgICAgIGlmICghc3VyZmFjZSkgeworICAgICAgICAgICAgY29waWVkQ29tcGxldGlvbkhh
bmRsZXIobnVsbHB0cik7CisgICAgICAgICAgICBbY29waWVkQ29tcGxldGlvbkhhbmRsZXIgcmVs
ZWFzZV07CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KICAgICAgICAgQ0dGbG9hdCBp
bWFnZVNjYWxlSW5WaWV3Q29vcmRpbmF0ZXMgPSBpbWFnZVdpZHRoIC8gcmVjdEluVmlld0Nvb3Jk
aW5hdGVzLnNpemUud2lkdGg7CiAgICAgICAgIENBVHJhbnNmb3JtM0QgdHJhbnNmb3JtID0gQ0FU
cmFuc2Zvcm0zRE1ha2VTY2FsZShpbWFnZVNjYWxlSW5WaWV3Q29vcmRpbmF0ZXMsIGltYWdlU2Nh
bGVJblZpZXdDb29yZGluYXRlcywgMSk7CiAgICAgICAgIHRyYW5zZm9ybSA9IENBVHJhbnNmb3Jt
M0RUcmFuc2xhdGUodHJhbnNmb3JtLCAtcmVjdEluVmlld0Nvb3JkaW5hdGVzLm9yaWdpbi54LCAt
cmVjdEluVmlld0Nvb3JkaW5hdGVzLm9yaWdpbi55LCAwKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>284334</attachid>
            <date>2016-07-22 08:24:44 -0700</date>
            <delta_ts>2016-07-22 09:18:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160006-20160722082346.patch</filename>
            <type>text/plain</type>
            <size>13092</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAzNTUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWRmNDczMDFjZGJmNTBl
ODE2ZDcwYzY4MmM5YzMxZDJjZmI1NTQ5Yi4uYzNkYmZlYzRkMjU0MzFkNjgwMWFiNzI0YTNlZjZh
MjNmZmUyY2QzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE2LTA3LTIxICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgSGFuZGxlIGNhc2VzIHdoZW4g
SU9TdXJmYWNlIGluaXRpYWxpemF0aW9uIGZhaWxzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwMDA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBpcyBhbiBhZGRpdGlvbmFsIGZpeCB0byByMjAz
NTE0IHRvIGNoZWNrIGlmIElPU3VyZmFjZSBpbml0aWFsaXphdGlvbiB3YXMgc3VjY2Vzc2Z1bC4K
KworICAgICAgICBVbmFibGUgdG8gdGVzdC4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2NnL0ltYWdlQnVmZmVyQ0cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6Oklt
YWdlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2Uu
aDogTWVyZ2UgMiBjJ3RvcnMuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9T
dXJmYWNlLm1tOiBSZW1vdmUgcmVkdW5kYW50IElPU3VyZmFjZTo6Y3JlYXRlKCkgY29kZS4gIAor
ICAgICAgICAoV2ViQ29yZTo6SU9TdXJmYWNlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
SU9TdXJmYWNlOjpjcmVhdGVGcm9tSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6SU9TdXJmYWNl
OjpJT1N1cmZhY2UpOgorICAgICAgICAoV2ViQ29yZTo6SU9TdXJmYWNlOjpjb252ZXJ0VG9Gb3Jt
YXQpOgorCiAyMDE2LTA3LTIxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAg
ICAgICAgUGFyYW1ldGVyIHRvIERvY3VtZW50LmNyZWF0ZUV2ZW50KCkgc2hvdWxkIGJlIG1hbmRh
dG9yeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCmluZGV4IDNlY2ZhOTBlOTQ1MDBkNmVkMjIwMTM0MWNmMjk0YmFkZmM0MTdk
YzUuLmY4MDE2NzQ2OGFmZTI1MjM5MzUyOTc3NDQ4MmNkMTg2ZmVlODdhMzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyMiBAQAorMjAxNi0wNy0yMSAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUu
Y29tPgorCisgICAgICAgIEhhbmRsZSBjYXNlcyB3aGVuIElPU3VyZmFjZSBpbml0aWFsaXphdGlv
biBmYWlscy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE2MDAwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRoaXMgaXMgYW4gYWRkaXRpb25hbCBmaXggdG8gcjIwMzUxNCB0byBjaGVjayBpZiBJT1N1cmZh
Y2UgaW5pdGlhbGl6YXRpb24gd2FzIHN1Y2Nlc3NmdWwuCisKKyAgICAgICAgVW5hYmxlIHRvIHRl
c3QuCisKKyAgICAgICAgKiBTaGFyZWQvbWFjL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLm1tOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6ZW5jb2RlKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OmRpc3BsYXkpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6YXBwbHlCYWNraW5nU3RvcmVUb0xheWVy
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAg
KC1bV0tXZWJWaWV3IF90YWtlVmlld1NuYXBzaG90XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBf
c25hcHNob3RSZWN0OmludG9JbWFnZU9mV2lkdGg6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisKIDIw
MTYtMDctMjEgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZW1vdmUgc3VwcG9ydCBmb3IgZGVwcmVjYXRlZCBTUEkgaW5saW5lTWVkaWFQbGF5YmFj
a1JlcXVpcmVzUGxheXNJbmxpbmVBdHRyaWJ1dGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHAKaW5kZXggZjUzOTcxMDJhNmEw
Yzk5NDJlOWYzM2U1ZjlhNjE4MjAwNjM4YTUzMi4uNWUzNGJjMGFiNjc3MWEyYTJhMDgxZDc4MmFj
ZTdhZWFiMDIwM2I1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHAKQEAgLTE1NCwxMyArMTU0LDE0IEBAIEltYWdlQnVm
ZmVyOjpJbWFnZUJ1ZmZlcihjb25zdCBGbG9hdFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25T
Y2FsZSwgQ0dDb2xvclNwCiAjaWYgVVNFKElPU1VSRkFDRV9DQU5WQVNfQkFDS0lOR19TVE9SRSkK
ICAgICAgICAgRmxvYXRTaXplIHVzZXJCb3VuZHMgPSBzaXplRm9yRGVzdGluYXRpb25TaXplKEZs
b2F0U2l6ZSh3aWR0aC51bnNhZmVHZXQoKSwgaGVpZ2h0LnVuc2FmZUdldCgpKSk7CiAgICAgICAg
IG1fZGF0YS5zdXJmYWNlID0gSU9TdXJmYWNlOjpjcmVhdGUobV9kYXRhLmJhY2tpbmdTdG9yZVNp
emUsIEludFNpemUodXNlckJvdW5kcyksIGNvbG9yU3BhY2UpOwotICAgICAgICBjZ0NvbnRleHQg
PSBtX2RhdGEuc3VyZmFjZS0+ZW5zdXJlUGxhdGZvcm1Db250ZXh0KCk7Ci0gICAgICAgIGlmIChj
Z0NvbnRleHQpCi0gICAgICAgICAgICBDR0NvbnRleHRDbGVhclJlY3QoY2dDb250ZXh0LmdldCgp
LCBGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCB1c2VyQm91bmRzKSk7Ci0gICAgICAgIGVsc2UKLSAg
ICAgICAgICAgIG1fZGF0YS5zdXJmYWNlID0gbnVsbHB0cjsKKyAgICAgICAgaWYgKG1fZGF0YS5z
dXJmYWNlKSB7CisgICAgICAgICAgICBjZ0NvbnRleHQgPSBtX2RhdGEuc3VyZmFjZS0+ZW5zdXJl
UGxhdGZvcm1Db250ZXh0KCk7CisgICAgICAgICAgICBpZiAoY2dDb250ZXh0KQorICAgICAgICAg
ICAgICAgIENHQ29udGV4dENsZWFyUmVjdChjZ0NvbnRleHQuZ2V0KCksIEZsb2F0UmVjdChGbG9h
dFBvaW50KCksIHVzZXJCb3VuZHMpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAg
ICBtX2RhdGEuc3VyZmFjZSA9IG51bGxwdHI7CisgICAgICAgIH0KICNlbmRpZgotCiAgICAgICAg
IGlmICghY2dDb250ZXh0KQogICAgICAgICAgICAgYWNjZWxlcmF0ZVJlbmRlcmluZyA9IGZhbHNl
OyAvLyBJZiBhbGxvY2F0aW9uIGZhaWxzLCBmYWxsIGJhY2sgdG8gbm9uLWFjY2VsZXJhdGVkIHBh
dGguCiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvSU9TdXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9JT1N1cmZhY2UuaAppbmRleCAwMmVkMTcxYmU5NDVmNjE3NGU1NDFiM2Q4MjlkMGQ0YjNkNzJl
Y2E2Li5mYTMyNjNmZmRlYjE1YjBkYjJhZWUxMTBiYzQ4ZmQ0ZjE1NjVhZjQ2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UuaApAQCAt
MTAwLDggKzEwMCw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiBwcml2YXRlOgotICAgIElPU3VyZmFj
ZShJbnRTaXplLCBDR0NvbG9yU3BhY2VSZWYsIEZvcm1hdCk7Ci0gICAgSU9TdXJmYWNlKEludFNp
emUsIEludFNpemUgY29udGV4dFNpemUsIENHQ29sb3JTcGFjZVJlZiwgRm9ybWF0KTsKKyAgICBJ
T1N1cmZhY2UoSW50U2l6ZSwgSW50U2l6ZSBjb250ZXh0U2l6ZSwgQ0dDb2xvclNwYWNlUmVmLCBG
b3JtYXQsIGJvb2wmIHN1Y2Nlc3MpOwogICAgIElPU3VyZmFjZShJT1N1cmZhY2VSZWYsIENHQ29s
b3JTcGFjZVJlZik7CiAKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4gc3Vy
ZmFjZUZyb21Qb29sKEludFNpemUsIEludFNpemUgY29udGV4dFNpemUsIENHQ29sb3JTcGFjZVJl
ZiwgRm9ybWF0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL0lPU3VyZmFjZS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL0lPU3VyZmFjZS5tbQppbmRleCA1ZmJmMzBmZGEwNzdjMjRmYjAwZTMyNDUyY2IxOTliYzM1
MDYwZDI1Li4yYjBlYjYxMzlkMDk3NWMwYzY5OGI5ZDQ4ODRlOWM5ZTY2Y2EwZjBlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLm1t
CkBAIC01NywxNyArNTcsMTggQEAgaW5saW5lIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJT1N1
cmZhY2U+IFdlYkNvcmU6OklPU3VyZmFjZTo6c3VyZmFjZUZyb21Qb29sKEkKIAogc3RkOjp1bmlx
dWVfcHRyPFdlYkNvcmU6OklPU3VyZmFjZT4gV2ViQ29yZTo6SU9TdXJmYWNlOjpjcmVhdGUoSW50
U2l6ZSBzaXplLCBDR0NvbG9yU3BhY2VSZWYgY29sb3JTcGFjZSwgRm9ybWF0IHBpeGVsRm9ybWF0
KQogewotICAgIGlmIChhdXRvIGNhY2hlZFN1cmZhY2UgPSBzdXJmYWNlRnJvbVBvb2woc2l6ZSwg
c2l6ZSwgY29sb3JTcGFjZSwgcGl4ZWxGb3JtYXQpKQotICAgICAgICByZXR1cm4gY2FjaGVkU3Vy
ZmFjZTsKLQotICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPihuZXcgSU9TdXJm
YWNlKHNpemUsIGNvbG9yU3BhY2UsIHBpeGVsRm9ybWF0KSk7CisgICAgcmV0dXJuIElPU3VyZmFj
ZTo6Y3JlYXRlKHNpemUsIHNpemUsIGNvbG9yU3BhY2UsIHBpeGVsRm9ybWF0KTsKIH0KIAogc3Rk
Ojp1bmlxdWVfcHRyPFdlYkNvcmU6OklPU3VyZmFjZT4gV2ViQ29yZTo6SU9TdXJmYWNlOjpjcmVh
dGUoSW50U2l6ZSBzaXplLCBJbnRTaXplIGNvbnRleHRTaXplLCBDR0NvbG9yU3BhY2VSZWYgY29s
b3JTcGFjZSwgRm9ybWF0IHBpeGVsRm9ybWF0KQogewogICAgIGlmIChhdXRvIGNhY2hlZFN1cmZh
Y2UgPSBzdXJmYWNlRnJvbVBvb2woc2l6ZSwgY29udGV4dFNpemUsIGNvbG9yU3BhY2UsIHBpeGVs
Rm9ybWF0KSkKICAgICAgICAgcmV0dXJuIGNhY2hlZFN1cmZhY2U7Ci0gICAgcmV0dXJuIHN0ZDo6
dW5pcXVlX3B0cjxJT1N1cmZhY2U+KG5ldyBJT1N1cmZhY2Uoc2l6ZSwgY29udGV4dFNpemUsIGNv
bG9yU3BhY2UsIHBpeGVsRm9ybWF0KSk7CisgICAgYm9vbCBzdWNjZXNzID0gZmFsc2U7CisgICAg
YXV0byBzdXJmYWNlID0gc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4obmV3IElPU3VyZmFjZShz
aXplLCBjb250ZXh0U2l6ZSwgY29sb3JTcGFjZSwgcGl4ZWxGb3JtYXQsIHN1Y2Nlc3MpKTsKKyAg
ICBpZiAoIXN1Y2Nlc3MpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBzdXJm
YWNlOwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SU9TdXJmYWNlPiBXZWJDb3JlOjpJ
T1N1cmZhY2U6OmNyZWF0ZUZyb21TZW5kUmlnaHQoY29uc3QgTWFjaFNlbmRSaWdodCYgc2VuZFJp
Z2h0LCBDR0NvbG9yU3BhY2VSZWYgY29sb3JTcGFjZSkKQEAgLTkwLDEwICs5MSwxMSBAQCBzdGQ6
OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SU9TdXJmYWNlPiBXZWJDb3JlOjpJT1N1cmZhY2U6OmNyZWF0
ZUZyb21JbWFnZShDR0ltYWdlUgogICAgIHNpemVfdCBoZWlnaHQgPSBDR0ltYWdlR2V0SGVpZ2h0
KGltYWdlKTsKIAogICAgIGF1dG8gc3VyZmFjZSA9IElPU3VyZmFjZTo6Y3JlYXRlKEludFNpemUo
d2lkdGgsIGhlaWdodCksIHNSR0JDb2xvclNwYWNlUmVmKCkpOworICAgIGlmICghc3VyZmFjZSkK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgYXV0byBzdXJmYWNlQ29udGV4dCA9IHN1cmZh
Y2UtPmVuc3VyZVBsYXRmb3JtQ29udGV4dCgpOwogICAgIENHQ29udGV4dERyYXdJbWFnZShzdXJm
YWNlQ29udGV4dCwgQ0dSZWN0TWFrZSgwLCAwLCB3aWR0aCwgaGVpZ2h0KSwgaW1hZ2UpOwogICAg
IENHQ29udGV4dEZsdXNoKHN1cmZhY2VDb250ZXh0KTsKLQogICAgIHJldHVybiBzdXJmYWNlOwog
fQogCkBAIC0xNzksMTEgKzE4MSwxNSBAQCBzdGF0aWMgTlNEaWN0aW9uYXJ5ICpvcHRpb25zRm9y
MzJCaXRTdXJmYWNlKEludFNpemUgc2l6ZSwgdW5zaWduZWQgcGl4ZWxGb3JtYXQpCiAKIH0KIAot
V2ViQ29yZTo6SU9TdXJmYWNlOjpJT1N1cmZhY2UoSW50U2l6ZSBzaXplLCBDR0NvbG9yU3BhY2VS
ZWYgY29sb3JTcGFjZSwgRm9ybWF0IGZvcm1hdCkKK1dlYkNvcmU6OklPU3VyZmFjZTo6SU9TdXJm
YWNlKEludFNpemUgc2l6ZSwgSW50U2l6ZSBjb250ZXh0U2l6ZSwgQ0dDb2xvclNwYWNlUmVmIGNv
bG9yU3BhY2UsIEZvcm1hdCBmb3JtYXQsIGJvb2wmIHN1Y2Nlc3MpCiAgICAgOiBtX2NvbG9yU3Bh
Y2UoY29sb3JTcGFjZSkKICAgICAsIG1fc2l6ZShzaXplKQotICAgICwgbV9jb250ZXh0U2l6ZShz
aXplKQorICAgICwgbV9jb250ZXh0U2l6ZShjb250ZXh0U2l6ZSkKIHsKKyAgICBzdWNjZXNzID0g
ZmFsc2U7CisgICAgQVNTRVJUKGNvbnRleHRTaXplLndpZHRoKCkgPD0gc2l6ZS53aWR0aCgpKTsK
KyAgICBBU1NFUlQoY29udGV4dFNpemUuaGVpZ2h0KCkgPD0gc2l6ZS5oZWlnaHQoKSk7CisKICAg
ICBOU0RpY3Rpb25hcnkgKm9wdGlvbnM7CiAKICAgICBzd2l0Y2ggKGZvcm1hdCkgewpAQCAtMjAw
LDIxICsyMDYsMTQgQEAgV2ViQ29yZTo6SU9TdXJmYWNlOjpJT1N1cmZhY2UoSW50U2l6ZSBzaXpl
LCBDR0NvbG9yU3BhY2VSZWYgY29sb3JTcGFjZSwgRm9ybWF0IGYKICAgICAgICAgb3B0aW9ucyA9
IG9wdGlvbnNGb3JCaXBsYW5hclN1cmZhY2Uoc2l6ZSwgJzQyMmYnLCAxLCAxKTsKICAgICAgICAg
YnJlYWs7CiAgICAgfQotICAgIAogICAgIG1fc3VyZmFjZSA9IGFkb3B0Q0YoSU9TdXJmYWNlQ3Jl
YXRlKChDRkRpY3Rpb25hcnlSZWYpb3B0aW9ucykpOwotICAgIG1fdG90YWxCeXRlcyA9IElPU3Vy
ZmFjZUdldEFsbG9jU2l6ZShtX3N1cmZhY2UuZ2V0KCkpOwotICAgIGlmICghbV9zdXJmYWNlKQor
ICAgIHN1Y2Nlc3MgPSAhIW1fc3VyZmFjZTsKKyAgICBpZiAoc3VjY2VzcykKKyAgICAgICAgbV90
b3RhbEJ5dGVzID0gSU9TdXJmYWNlR2V0QWxsb2NTaXplKG1fc3VyZmFjZS5nZXQoKSk7CisgICAg
ZWxzZQogICAgICAgICBOU0xvZyhAIlN1cmZhY2UgY3JlYXRpb24gZmFpbGVkIGZvciBvcHRpb25z
ICVAIiwgb3B0aW9ucyk7CiB9CiAKLVdlYkNvcmU6OklPU3VyZmFjZTo6SU9TdXJmYWNlKEludFNp
emUgc2l6ZSwgSW50U2l6ZSBjb250ZXh0U2l6ZSwgQ0dDb2xvclNwYWNlUmVmIGNvbG9yU3BhY2Us
IEZvcm1hdCBwaXhlbEZvcm1hdCkKLSAgICA6IElPU3VyZmFjZShzaXplLCBjb2xvclNwYWNlLCBw
aXhlbEZvcm1hdCkKLXsKLSAgICBBU1NFUlQoY29udGV4dFNpemUud2lkdGgoKSA8PSBzaXplLndp
ZHRoKCkpOwotICAgIEFTU0VSVChjb250ZXh0U2l6ZS5oZWlnaHQoKSA8PSBzaXplLmhlaWdodCgp
KTsKLSAgICBtX2NvbnRleHRTaXplID0gY29udGV4dFNpemU7Ci19Ci0KIFdlYkNvcmU6OklPU3Vy
ZmFjZTo6SU9TdXJmYWNlKElPU3VyZmFjZVJlZiBzdXJmYWNlLCBDR0NvbG9yU3BhY2VSZWYgY29s
b3JTcGFjZSkKICAgICA6IG1fY29sb3JTcGFjZShjb2xvclNwYWNlKQogICAgICwgbV9zdXJmYWNl
KHN1cmZhY2UpCkBAIC0zOTYsOCArMzk1LDEyIEBAIHZvaWQgV2ViQ29yZTo6SU9TdXJmYWNlOjpj
b252ZXJ0VG9Gb3JtYXQoc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OklPU3VyZmFjZT4mJiBpCiAg
ICAgfQogCiAgICAgYXV0byBkZXN0aW5hdGlvblN1cmZhY2UgPSBJT1N1cmZhY2U6OmNyZWF0ZShp
blN1cmZhY2UtPnNpemUoKSwgaW5TdXJmYWNlLT5jb2xvclNwYWNlKCksIGZvcm1hdCk7Ci0gICAg
SU9TdXJmYWNlUmVmIGRlc3RpbmF0aW9uSU9TdXJmYWNlUmVmID0gZGVzdGluYXRpb25TdXJmYWNl
LT5zdXJmYWNlKCk7CisgICAgaWYgKCFkZXN0aW5hdGlvblN1cmZhY2UpIHsKKyAgICAgICAgY2Fs
bGJhY2sobnVsbHB0cik7CisgICAgICAgIHJldHVybjsKKyAgICB9CiAKKyAgICBJT1N1cmZhY2VS
ZWYgZGVzdGluYXRpb25JT1N1cmZhY2VSZWYgPSBkZXN0aW5hdGlvblN1cmZhY2UtPnN1cmZhY2Uo
KTsKICAgICBJT1N1cmZhY2VBY2NlbGVyYXRvckNvbXBsZXRpb24gY29tcGxldGlvbjsKICAgICBj
b21wbGV0aW9uLmNvbXBsZXRpb25SZWZDb24gPSBuZXcgc3RkOjpmdW5jdGlvbjx2b2lkKHN0ZDo6
dW5pcXVlX3B0cjxXZWJDb3JlOjpJT1N1cmZhY2U+KT4gKFdURk1vdmUoY2FsbGJhY2spKTsKICAg
ICBjb21wbGV0aW9uLmNvbXBsZXRpb25SZWZDb24yID0gZGVzdGluYXRpb25TdXJmYWNlLnJlbGVh
c2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJC
YWNraW5nU3RvcmUubW0gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyQmFj
a2luZ1N0b3JlLm1tCmluZGV4IGQyOTM0YmU3NmI2NzQ4MjY1Zjk1YWVlYjZjZGU4YTVmODU2OGY4
MjAuLjI1YjNmYjU0Njc1MWQ0NzdkZDQ1MzBmOGQ1OTkwZmZmMzBkMTM5ZTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW0KKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5tbQpA
QCAtMTE5LDcgKzExOSwxMCBAQCB2b2lkIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjplbmNvZGUo
SVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAKICNpZiBVU0UoSU9TVVJGQUNF
KQogICAgIGlmIChtX2FjY2VsZXJhdGVzRHJhd2luZykgewotICAgICAgICBlbmNvZGVyIDw8IG1f
ZnJvbnRCdWZmZXIuc3VyZmFjZS0+Y3JlYXRlU2VuZFJpZ2h0KCk7CisgICAgICAgIGlmIChtX2Zy
b250QnVmZmVyLnN1cmZhY2UpCisgICAgICAgICAgICBlbmNvZGVyIDw8IG1fZnJvbnRCdWZmZXIu
c3VyZmFjZS0+Y3JlYXRlU2VuZFJpZ2h0KCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGVu
Y29kZXIgPDwgV2ViQ29yZTo6TWFjaFNlbmRSaWdodCgpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogI2VuZGlmCkBAIC0yNjIsMTMgKzI2NSwxNSBAQCBib29sIFJlbW90ZUxheWVyQmFja2luZ1N0
b3JlOjpkaXNwbGF5KCkKICAgICAgICAgaWYgKG1fYmFja0J1ZmZlci5zdXJmYWNlICYmICF3aWxs
UGFpbnRFbnRpcmVCYWNraW5nU3RvcmUpCiAgICAgICAgICAgICBiYWNrSW1hZ2UgPSBtX2JhY2tC
dWZmZXIuc3VyZmFjZS0+Y3JlYXRlSW1hZ2UoKTsKIAotICAgICAgICBHcmFwaGljc0NvbnRleHQm
IGNvbnRleHQgPSBtX2Zyb250QnVmZmVyLnN1cmZhY2UtPmVuc3VyZUdyYXBoaWNzQ29udGV4dCgp
OworICAgICAgICBpZiAobV9mcm9udEJ1ZmZlci5zdXJmYWNlKSB7CisgICAgICAgICAgICBHcmFw
aGljc0NvbnRleHQmIGNvbnRleHQgPSBtX2Zyb250QnVmZmVyLnN1cmZhY2UtPmVuc3VyZUdyYXBo
aWNzQ29udGV4dCgpOwogCi0gICAgICAgIGNvbnRleHQuc2NhbGUoRmxvYXRTaXplKDEsIC0xKSk7
Ci0gICAgICAgIGNvbnRleHQudHJhbnNsYXRlKDAsIC1leHBhbmRlZFNjYWxlZFNpemUuaGVpZ2h0
KCkpOwotICAgICAgICBkcmF3SW5Db250ZXh0KGNvbnRleHQsIGJhY2tJbWFnZS5nZXQoKSk7Cisg
ICAgICAgICAgICBjb250ZXh0LnNjYWxlKEZsb2F0U2l6ZSgxLCAtMSkpOworICAgICAgICAgICAg
Y29udGV4dC50cmFuc2xhdGUoMCwgLWV4cGFuZGVkU2NhbGVkU2l6ZS5oZWlnaHQoKSk7CisgICAg
ICAgICAgICBkcmF3SW5Db250ZXh0KGNvbnRleHQsIGJhY2tJbWFnZS5nZXQoKSk7CiAKLSAgICAg
ICAgbV9mcm9udEJ1ZmZlci5zdXJmYWNlLT5yZWxlYXNlR3JhcGhpY3NDb250ZXh0KCk7CisgICAg
ICAgICAgICBtX2Zyb250QnVmZmVyLnN1cmZhY2UtPnJlbGVhc2VHcmFwaGljc0NvbnRleHQoKTsK
KyAgICAgICAgfQogICAgIH0gZWxzZQogI2VuZGlmCiAgICAgewpAQCAtMzk5LDcgKzQwNCw3IEBA
IHZvaWQgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OmFwcGx5QmFja2luZ1N0b3JlVG9MYXllcihD
QUxheWVyICpsYXllcikKICAgICBsYXllci5jb250ZW50c09wYXF1ZSA9IG1faXNPcGFxdWU7CiAK
ICNpZiBVU0UoSU9TVVJGQUNFKQotICAgIGlmIChhY2NlbGVyYXRlc0RyYXdpbmcoKSkgeworICAg
IGlmIChhY2NlbGVyYXRlc0RyYXdpbmcoKSAmJiBtX2Zyb250QnVmZmVyLnN1cmZhY2UpIHsKICAg
ICAgICAgbGF5ZXIuY29udGVudHMgPSBtX2Zyb250QnVmZmVyLnN1cmZhY2UtPmFzTGF5ZXJDb250
ZW50cygpOwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCAwYjE3YmNjNDZkNjYyY2FhMzM2YzY3
YzIzMDcxOGJlNWMxN2MyMzE2Li40MjY2MzFlZmZjNmYyODNkNjgxNzBkYzdmYzVmY2NhMWI4OThk
MjA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
dy5tbQpAQCAtMTM4OCwxMyArMTM4OCwxNiBAQCAtIChQYXNzUmVmUHRyPFdlYktpdDo6Vmlld1Nu
YXBzaG90PilfdGFrZVZpZXdTbmFwc2hvdAogI2lmIFVTRShJT1NVUkZBQ0UpCiAgICAgV2ViQ29y
ZTo6SU9TdXJmYWNlOjpGb3JtYXQgc25hcHNob3RGb3JtYXQgPSBXZWJDb3JlOjpzY3JlZW5TdXBw
b3J0c0V4dGVuZGVkQ29sb3IoKSA/IFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0OjpSR0IxMCA6
IFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0OjpSR0JBOwogICAgIGF1dG8gc3VyZmFjZSA9IFdl
YkNvcmU6OklPU3VyZmFjZTo6Y3JlYXRlKFdlYkNvcmU6OmV4cGFuZGVkSW50U2l6ZShzbmFwc2hv
dFNpemUpLCBXZWJDb3JlOjpzUkdCQ29sb3JTcGFjZVJlZigpLCBzbmFwc2hvdEZvcm1hdCk7Cisg
ICAgaWYgKCFzdXJmYWNlKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBDQVJlbmRlclNl
cnZlclJlbmRlckxheWVyV2l0aFRyYW5zZm9ybShNQUNIX1BPUlRfTlVMTCwgc2VsZi5sYXllci5j
b250ZXh0LmNvbnRleHRJZCwgcmVpbnRlcnByZXRfY2FzdDx1aW50NjRfdD4oc2VsZi5sYXllciks
IHN1cmZhY2UtPnN1cmZhY2UoKSwgMCwgMCwgJnRyYW5zZm9ybSk7CiAKICAgICBXZWJDb3JlOjpJ
T1N1cmZhY2U6OkZvcm1hdCBjb21wcmVzc2VkRm9ybWF0ID0gV2ViQ29yZTo6SU9TdXJmYWNlOjpG
b3JtYXQ6OllVVjQyMjsKICAgICBpZiAoV2ViQ29yZTo6SU9TdXJmYWNlOjphbGxvd0NvbnZlcnNp
b25Gcm9tRm9ybWF0VG9Gb3JtYXQoc25hcHNob3RGb3JtYXQsIGNvbXByZXNzZWRGb3JtYXQpKSB7
CiAgICAgICAgIFJlZlB0cjxXZWJLaXQ6OlZpZXdTbmFwc2hvdD4gdmlld1NuYXBzaG90ID0gV2Vi
S2l0OjpWaWV3U25hcHNob3Q6OmNyZWF0ZShudWxscHRyKTsKICAgICAgICAgV2ViQ29yZTo6SU9T
dXJmYWNlOjpjb252ZXJ0VG9Gb3JtYXQoV1RGTW92ZShzdXJmYWNlKSwgV2ViQ29yZTo6SU9TdXJm
YWNlOjpGb3JtYXQ6OllVVjQyMiwgW3ZpZXdTbmFwc2hvdF0oc3RkOjp1bmlxdWVfcHRyPFdlYkNv
cmU6OklPU3VyZmFjZT4gY29udmVydGVkU3VyZmFjZSkgewotICAgICAgICAgICAgdmlld1NuYXBz
aG90LT5zZXRTdXJmYWNlKFdURk1vdmUoY29udmVydGVkU3VyZmFjZSkpOworICAgICAgICAgICAg
aWYgKGNvbnZlcnRlZFN1cmZhY2UpCisgICAgICAgICAgICAgICAgdmlld1NuYXBzaG90LT5zZXRT
dXJmYWNlKFdURk1vdmUoY29udmVydGVkU3VyZmFjZSkpOwogICAgICAgICB9KTsKIAogICAgICAg
ICByZXR1cm4gdmlld1NuYXBzaG90OwpAQCAtNDIzNSw2ICs0MjM4LDEwIEBAIC0gKHZvaWQpX3Nu
YXBzaG90UmVjdDooQ0dSZWN0KXJlY3RJblZpZXdDb29yZGluYXRlcyBpbnRvSW1hZ2VPZldpZHRo
OihDR0Zsb2F0KWltCiAgICAgLy8gSWYgd2UgYXJlIHBhcmVudGVkIGFuZCB0aHVzIHdvbid0IGlu
Y3VyIGEgc2lnbmlmaWNhbnQgcGVuYWx0eSBmcm9tIHBhZ2luZyBpbiB0aWxlcywgc25hcHNob3Qg
dGhlIHZpZXcgaGllcmFyY2h5IGRpcmVjdGx5LgogICAgIGlmIChDQURpc3BsYXkgKmRpc3BsYXkg
PSBzZWxmLndpbmRvdy5zY3JlZW4uX2Rpc3BsYXkpIHsKICAgICAgICAgYXV0byBzdXJmYWNlID0g
V2ViQ29yZTo6SU9TdXJmYWNlOjpjcmVhdGUoV2ViQ29yZTo6ZXhwYW5kZWRJbnRTaXplKFdlYkNv
cmU6OkZsb2F0U2l6ZShpbWFnZVNpemUpKSwgV2ViQ29yZTo6c1JHQkNvbG9yU3BhY2VSZWYoKSk7
CisgICAgICAgIGlmICghc3VyZmFjZSkgeworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
bnVsbHB0cik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KICAgICAgICAgQ0dGbG9h
dCBpbWFnZVNjYWxlSW5WaWV3Q29vcmRpbmF0ZXMgPSBpbWFnZVdpZHRoIC8gcmVjdEluVmlld0Nv
b3JkaW5hdGVzLnNpemUud2lkdGg7CiAgICAgICAgIENBVHJhbnNmb3JtM0QgdHJhbnNmb3JtID0g
Q0FUcmFuc2Zvcm0zRE1ha2VTY2FsZShpbWFnZVNjYWxlSW5WaWV3Q29vcmRpbmF0ZXMsIGltYWdl
U2NhbGVJblZpZXdDb29yZGluYXRlcywgMSk7CiAgICAgICAgIHRyYW5zZm9ybSA9IENBVHJhbnNm
b3JtM0RUcmFuc2xhdGUodHJhbnNmb3JtLCAtcmVjdEluVmlld0Nvb3JkaW5hdGVzLm9yaWdpbi54
LCAtcmVjdEluVmlld0Nvb3JkaW5hdGVzLm9yaWdpbi55LCAwKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>284338</attachid>
            <date>2016-07-22 09:18:11 -0700</date>
            <delta_ts>2016-07-22 09:19:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160006-20160722091709.patch</filename>
            <type>text/plain</type>
            <size>13162</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAzNTUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWRmNDczMDFjZGJmNTBl
ODE2ZDcwYzY4MmM5YzMxZDJjZmI1NTQ5Yi4uOTM1Y2JhMWEzYzBhMWNjYzMzZTE5MzQwZTA2NWQz
YmE5YTZlNTRmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE2LTA3LTIxICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgSGFuZGxlIGNhc2VzIHdoZW4g
SU9TdXJmYWNlIGluaXRpYWxpemF0aW9uIGZhaWxzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwMDA2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8y
NDYwNjU1Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUaGlzIGlzIGFuIGFkZGl0aW9uYWwgZml4IHRvIHIyMDM1MTQgdG8gY2hlY2sgaWYgSU9TdXJm
YWNlIGluaXRpYWxpemF0aW9uIHdhcyBzdWNjZXNzZnVsLgorCisgICAgICAgIFVuYWJsZSB0byB0
ZXN0LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5oOiBNZXJnZSAyIGMndG9ycy4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW06IFJlbW92ZSByZWR1
bmRhbnQgSU9TdXJmYWNlOjpjcmVhdGUoKSBjb2RlLiAgCisgICAgICAgIChXZWJDb3JlOjpJT1N1
cmZhY2U6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJT1N1cmZhY2U6OmNyZWF0ZUZyb21J
bWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpJT1N1cmZhY2U6OklPU3VyZmFjZSk6CisgICAgICAg
IChXZWJDb3JlOjpJT1N1cmZhY2U6OmNvbnZlcnRUb0Zvcm1hdCk6CisKIDIwMTYtMDctMjEgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBQYXJhbWV0ZXIgdG8gRG9j
dW1lbnQuY3JlYXRlRXZlbnQoKSBzaG91bGQgYmUgbWFuZGF0b3J5CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggM2Vj
ZmE5MGU5NDUwMGQ2ZWQyMjAxMzQxY2YyOTRiYWRmYzQxN2RjNS4uNWY5Yzg1Y2FmMzZmNmZhNDE3
MmNkZjBlYzFjOWM4MTRmMjI0M2VlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE2
LTA3LTIxICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgSGFuZGxl
IGNhc2VzIHdoZW4gSU9TdXJmYWNlIGluaXRpYWxpemF0aW9uIGZhaWxzLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwMDA2CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS8yNDYwNjU1Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaGlzIGlzIGFuIGFkZGl0aW9uYWwgZml4IHRvIHIyMDM1MTQgdG8gY2hl
Y2sgaWYgSU9TdXJmYWNlIGluaXRpYWxpemF0aW9uIHdhcyBzdWNjZXNzZnVsLgorCisgICAgICAg
IFVuYWJsZSB0byB0ZXN0LgorCisgICAgICAgICogU2hhcmVkL21hYy9SZW1vdGVMYXllckJhY2tp
bmdTdG9yZS5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OmVu
Y29kZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpkaXNwbGF5
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OmFwcGx5QmFja2lu
Z1N0b3JlVG9MYXllcik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcu
bW06CisgICAgICAgICgtW1dLV2ViVmlldyBfdGFrZVZpZXdTbmFwc2hvdF0pOgorICAgICAgICAo
LVtXS1dlYlZpZXcgX3NuYXBzaG90UmVjdDppbnRvSW1hZ2VPZldpZHRoOmNvbXBsZXRpb25IYW5k
bGVyOl0pOgorCiAyMDE2LTA3LTIxICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHN1cHBvcnQgZm9yIGRlcHJlY2F0ZWQgU1BJIGlubGlu
ZU1lZGlhUGxheWJhY2tSZXF1aXJlc1BsYXlzSW5saW5lQXR0cmlidXRlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3BwCmluZGV4
IGY1Mzk3MTAyYTZhMGM5OTQyZTlmMzNlNWY5YTYxODIwMDYzOGE1MzIuLjVlMzRiYzBhYjY3NzFh
MmEyYTA4MWQ3ODJhY2U3YWVhYjAyMDNiNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3BwCkBAIC0xNTQsMTMgKzE1NCwx
NCBAQCBJbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiBzaXplLCBmbG9h
dCByZXNvbHV0aW9uU2NhbGUsIENHQ29sb3JTcAogI2lmIFVTRShJT1NVUkZBQ0VfQ0FOVkFTX0JB
Q0tJTkdfU1RPUkUpCiAgICAgICAgIEZsb2F0U2l6ZSB1c2VyQm91bmRzID0gc2l6ZUZvckRlc3Rp
bmF0aW9uU2l6ZShGbG9hdFNpemUod2lkdGgudW5zYWZlR2V0KCksIGhlaWdodC51bnNhZmVHZXQo
KSkpOwogICAgICAgICBtX2RhdGEuc3VyZmFjZSA9IElPU3VyZmFjZTo6Y3JlYXRlKG1fZGF0YS5i
YWNraW5nU3RvcmVTaXplLCBJbnRTaXplKHVzZXJCb3VuZHMpLCBjb2xvclNwYWNlKTsKLSAgICAg
ICAgY2dDb250ZXh0ID0gbV9kYXRhLnN1cmZhY2UtPmVuc3VyZVBsYXRmb3JtQ29udGV4dCgpOwot
ICAgICAgICBpZiAoY2dDb250ZXh0KQotICAgICAgICAgICAgQ0dDb250ZXh0Q2xlYXJSZWN0KGNn
Q29udGV4dC5nZXQoKSwgRmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgdXNlckJvdW5kcykpOwotICAg
ICAgICBlbHNlCi0gICAgICAgICAgICBtX2RhdGEuc3VyZmFjZSA9IG51bGxwdHI7CisgICAgICAg
IGlmIChtX2RhdGEuc3VyZmFjZSkgeworICAgICAgICAgICAgY2dDb250ZXh0ID0gbV9kYXRhLnN1
cmZhY2UtPmVuc3VyZVBsYXRmb3JtQ29udGV4dCgpOworICAgICAgICAgICAgaWYgKGNnQ29udGV4
dCkKKyAgICAgICAgICAgICAgICBDR0NvbnRleHRDbGVhclJlY3QoY2dDb250ZXh0LmdldCgpLCBG
bG9hdFJlY3QoRmxvYXRQb2ludCgpLCB1c2VyQm91bmRzKSk7CisgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgICAgbV9kYXRhLnN1cmZhY2UgPSBudWxscHRyOworICAgICAgICB9CiAjZW5k
aWYKLQogICAgICAgICBpZiAoIWNnQ29udGV4dCkKICAgICAgICAgICAgIGFjY2VsZXJhdGVSZW5k
ZXJpbmcgPSBmYWxzZTsgLy8gSWYgYWxsb2NhdGlvbiBmYWlscywgZmFsbCBiYWNrIHRvIG5vbi1h
Y2NlbGVyYXRlZCBwYXRoLgogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLmgKaW5kZXggMDJlZDE3MWJlOTQ1ZjYxNzRlNTQxYjNk
ODI5ZDBkNGIzZDcyZWNhNi4uZmEzMjYzZmZkZWIxNWIwZGIyYWVlMTEwYmM0OGZkNGYxNTY1YWY0
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9T
dXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9T
dXJmYWNlLmgKQEAgLTEwMCw4ICsxMDAsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogcHJpdmF0ZToK
LSAgICBJT1N1cmZhY2UoSW50U2l6ZSwgQ0dDb2xvclNwYWNlUmVmLCBGb3JtYXQpOwotICAgIElP
U3VyZmFjZShJbnRTaXplLCBJbnRTaXplIGNvbnRleHRTaXplLCBDR0NvbG9yU3BhY2VSZWYsIEZv
cm1hdCk7CisgICAgSU9TdXJmYWNlKEludFNpemUsIEludFNpemUgY29udGV4dFNpemUsIENHQ29s
b3JTcGFjZVJlZiwgRm9ybWF0LCBib29sJiBzdWNjZXNzKTsKICAgICBJT1N1cmZhY2UoSU9TdXJm
YWNlUmVmLCBDR0NvbG9yU3BhY2VSZWYpOwogCiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJ
T1N1cmZhY2U+IHN1cmZhY2VGcm9tUG9vbChJbnRTaXplLCBJbnRTaXplIGNvbnRleHRTaXplLCBD
R0NvbG9yU3BhY2VSZWYsIEZvcm1hdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW0KaW5kZXggNWZiZjMwZmRhMDc3YzI0ZmIwMGUz
MjQ1MmNiMTk5YmMzNTA2MGQyNS4uMmIwZWI2MTM5ZDA5NzVjMGM2OThiOWQ0ODg0ZTljOWU2NmNh
MGYwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
SU9TdXJmYWNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L0lPU3VyZmFjZS5tbQpAQCAtNTcsMTcgKzU3LDE4IEBAIGlubGluZSBzdGQ6OnVuaXF1ZV9wdHI8
V2ViQ29yZTo6SU9TdXJmYWNlPiBXZWJDb3JlOjpJT1N1cmZhY2U6OnN1cmZhY2VGcm9tUG9vbChJ
CiAKIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJT1N1cmZhY2U+IFdlYkNvcmU6OklPU3VyZmFj
ZTo6Y3JlYXRlKEludFNpemUgc2l6ZSwgQ0dDb2xvclNwYWNlUmVmIGNvbG9yU3BhY2UsIEZvcm1h
dCBwaXhlbEZvcm1hdCkKIHsKLSAgICBpZiAoYXV0byBjYWNoZWRTdXJmYWNlID0gc3VyZmFjZUZy
b21Qb29sKHNpemUsIHNpemUsIGNvbG9yU3BhY2UsIHBpeGVsRm9ybWF0KSkKLSAgICAgICAgcmV0
dXJuIGNhY2hlZFN1cmZhY2U7Ci0KLSAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFj
ZT4obmV3IElPU3VyZmFjZShzaXplLCBjb2xvclNwYWNlLCBwaXhlbEZvcm1hdCkpOworICAgIHJl
dHVybiBJT1N1cmZhY2U6OmNyZWF0ZShzaXplLCBzaXplLCBjb2xvclNwYWNlLCBwaXhlbEZvcm1h
dCk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJT1N1cmZhY2U+IFdlYkNvcmU6OklP
U3VyZmFjZTo6Y3JlYXRlKEludFNpemUgc2l6ZSwgSW50U2l6ZSBjb250ZXh0U2l6ZSwgQ0dDb2xv
clNwYWNlUmVmIGNvbG9yU3BhY2UsIEZvcm1hdCBwaXhlbEZvcm1hdCkKIHsKICAgICBpZiAoYXV0
byBjYWNoZWRTdXJmYWNlID0gc3VyZmFjZUZyb21Qb29sKHNpemUsIGNvbnRleHRTaXplLCBjb2xv
clNwYWNlLCBwaXhlbEZvcm1hdCkpCiAgICAgICAgIHJldHVybiBjYWNoZWRTdXJmYWNlOwotICAg
IHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPihuZXcgSU9TdXJmYWNlKHNpemUsIGNv
bnRleHRTaXplLCBjb2xvclNwYWNlLCBwaXhlbEZvcm1hdCkpOworICAgIGJvb2wgc3VjY2VzcyA9
IGZhbHNlOworICAgIGF1dG8gc3VyZmFjZSA9IHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+KG5l
dyBJT1N1cmZhY2Uoc2l6ZSwgY29udGV4dFNpemUsIGNvbG9yU3BhY2UsIHBpeGVsRm9ybWF0LCBz
dWNjZXNzKSk7CisgICAgaWYgKCFzdWNjZXNzKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAg
ICByZXR1cm4gc3VyZmFjZTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OklPU3VyZmFj
ZT4gV2ViQ29yZTo6SU9TdXJmYWNlOjpjcmVhdGVGcm9tU2VuZFJpZ2h0KGNvbnN0IE1hY2hTZW5k
UmlnaHQmIHNlbmRSaWdodCwgQ0dDb2xvclNwYWNlUmVmIGNvbG9yU3BhY2UpCkBAIC05MCwxMCAr
OTEsMTEgQEAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OklPU3VyZmFjZT4gV2ViQ29yZTo6SU9T
dXJmYWNlOjpjcmVhdGVGcm9tSW1hZ2UoQ0dJbWFnZVIKICAgICBzaXplX3QgaGVpZ2h0ID0gQ0dJ
bWFnZUdldEhlaWdodChpbWFnZSk7CiAKICAgICBhdXRvIHN1cmZhY2UgPSBJT1N1cmZhY2U6OmNy
ZWF0ZShJbnRTaXplKHdpZHRoLCBoZWlnaHQpLCBzUkdCQ29sb3JTcGFjZVJlZigpKTsKKyAgICBp
ZiAoIXN1cmZhY2UpCisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGF1dG8gc3VyZmFjZUNv
bnRleHQgPSBzdXJmYWNlLT5lbnN1cmVQbGF0Zm9ybUNvbnRleHQoKTsKICAgICBDR0NvbnRleHRE
cmF3SW1hZ2Uoc3VyZmFjZUNvbnRleHQsIENHUmVjdE1ha2UoMCwgMCwgd2lkdGgsIGhlaWdodCks
IGltYWdlKTsKICAgICBDR0NvbnRleHRGbHVzaChzdXJmYWNlQ29udGV4dCk7Ci0KICAgICByZXR1
cm4gc3VyZmFjZTsKIH0KIApAQCAtMTc5LDExICsxODEsMTUgQEAgc3RhdGljIE5TRGljdGlvbmFy
eSAqb3B0aW9uc0ZvcjMyQml0U3VyZmFjZShJbnRTaXplIHNpemUsIHVuc2lnbmVkIHBpeGVsRm9y
bWF0KQogCiB9CiAKLVdlYkNvcmU6OklPU3VyZmFjZTo6SU9TdXJmYWNlKEludFNpemUgc2l6ZSwg
Q0dDb2xvclNwYWNlUmVmIGNvbG9yU3BhY2UsIEZvcm1hdCBmb3JtYXQpCitXZWJDb3JlOjpJT1N1
cmZhY2U6OklPU3VyZmFjZShJbnRTaXplIHNpemUsIEludFNpemUgY29udGV4dFNpemUsIENHQ29s
b3JTcGFjZVJlZiBjb2xvclNwYWNlLCBGb3JtYXQgZm9ybWF0LCBib29sJiBzdWNjZXNzKQogICAg
IDogbV9jb2xvclNwYWNlKGNvbG9yU3BhY2UpCiAgICAgLCBtX3NpemUoc2l6ZSkKLSAgICAsIG1f
Y29udGV4dFNpemUoc2l6ZSkKKyAgICAsIG1fY29udGV4dFNpemUoY29udGV4dFNpemUpCiB7Cisg
ICAgc3VjY2VzcyA9IGZhbHNlOworICAgIEFTU0VSVChjb250ZXh0U2l6ZS53aWR0aCgpIDw9IHNp
emUud2lkdGgoKSk7CisgICAgQVNTRVJUKGNvbnRleHRTaXplLmhlaWdodCgpIDw9IHNpemUuaGVp
Z2h0KCkpOworCiAgICAgTlNEaWN0aW9uYXJ5ICpvcHRpb25zOwogCiAgICAgc3dpdGNoIChmb3Jt
YXQpIHsKQEAgLTIwMCwyMSArMjA2LDE0IEBAIFdlYkNvcmU6OklPU3VyZmFjZTo6SU9TdXJmYWNl
KEludFNpemUgc2l6ZSwgQ0dDb2xvclNwYWNlUmVmIGNvbG9yU3BhY2UsIEZvcm1hdCBmCiAgICAg
ICAgIG9wdGlvbnMgPSBvcHRpb25zRm9yQmlwbGFuYXJTdXJmYWNlKHNpemUsICc0MjJmJywgMSwg
MSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KLSAgICAKICAgICBtX3N1cmZhY2UgPSBhZG9wdENG
KElPU3VyZmFjZUNyZWF0ZSgoQ0ZEaWN0aW9uYXJ5UmVmKW9wdGlvbnMpKTsKLSAgICBtX3RvdGFs
Qnl0ZXMgPSBJT1N1cmZhY2VHZXRBbGxvY1NpemUobV9zdXJmYWNlLmdldCgpKTsKLSAgICBpZiAo
IW1fc3VyZmFjZSkKKyAgICBzdWNjZXNzID0gISFtX3N1cmZhY2U7CisgICAgaWYgKHN1Y2Nlc3Mp
CisgICAgICAgIG1fdG90YWxCeXRlcyA9IElPU3VyZmFjZUdldEFsbG9jU2l6ZShtX3N1cmZhY2Uu
Z2V0KCkpOworICAgIGVsc2UKICAgICAgICAgTlNMb2coQCJTdXJmYWNlIGNyZWF0aW9uIGZhaWxl
ZCBmb3Igb3B0aW9ucyAlQCIsIG9wdGlvbnMpOwogfQogCi1XZWJDb3JlOjpJT1N1cmZhY2U6OklP
U3VyZmFjZShJbnRTaXplIHNpemUsIEludFNpemUgY29udGV4dFNpemUsIENHQ29sb3JTcGFjZVJl
ZiBjb2xvclNwYWNlLCBGb3JtYXQgcGl4ZWxGb3JtYXQpCi0gICAgOiBJT1N1cmZhY2Uoc2l6ZSwg
Y29sb3JTcGFjZSwgcGl4ZWxGb3JtYXQpCi17Ci0gICAgQVNTRVJUKGNvbnRleHRTaXplLndpZHRo
KCkgPD0gc2l6ZS53aWR0aCgpKTsKLSAgICBBU1NFUlQoY29udGV4dFNpemUuaGVpZ2h0KCkgPD0g
c2l6ZS5oZWlnaHQoKSk7Ci0gICAgbV9jb250ZXh0U2l6ZSA9IGNvbnRleHRTaXplOwotfQotCiBX
ZWJDb3JlOjpJT1N1cmZhY2U6OklPU3VyZmFjZShJT1N1cmZhY2VSZWYgc3VyZmFjZSwgQ0dDb2xv
clNwYWNlUmVmIGNvbG9yU3BhY2UpCiAgICAgOiBtX2NvbG9yU3BhY2UoY29sb3JTcGFjZSkKICAg
ICAsIG1fc3VyZmFjZShzdXJmYWNlKQpAQCAtMzk2LDggKzM5NSwxMiBAQCB2b2lkIFdlYkNvcmU6
OklPU3VyZmFjZTo6Y29udmVydFRvRm9ybWF0KHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJT1N1
cmZhY2U+JiYgaQogICAgIH0KIAogICAgIGF1dG8gZGVzdGluYXRpb25TdXJmYWNlID0gSU9TdXJm
YWNlOjpjcmVhdGUoaW5TdXJmYWNlLT5zaXplKCksIGluU3VyZmFjZS0+Y29sb3JTcGFjZSgpLCBm
b3JtYXQpOwotICAgIElPU3VyZmFjZVJlZiBkZXN0aW5hdGlvbklPU3VyZmFjZVJlZiA9IGRlc3Rp
bmF0aW9uU3VyZmFjZS0+c3VyZmFjZSgpOworICAgIGlmICghZGVzdGluYXRpb25TdXJmYWNlKSB7
CisgICAgICAgIGNhbGxiYWNrKG51bGxwdHIpOworICAgICAgICByZXR1cm47CisgICAgfQogCisg
ICAgSU9TdXJmYWNlUmVmIGRlc3RpbmF0aW9uSU9TdXJmYWNlUmVmID0gZGVzdGluYXRpb25TdXJm
YWNlLT5zdXJmYWNlKCk7CiAgICAgSU9TdXJmYWNlQWNjZWxlcmF0b3JDb21wbGV0aW9uIGNvbXBs
ZXRpb247CiAgICAgY29tcGxldGlvbi5jb21wbGV0aW9uUmVmQ29uID0gbmV3IHN0ZDo6ZnVuY3Rp
b248dm9pZChzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SU9TdXJmYWNlPik+IChXVEZNb3ZlKGNh
bGxiYWNrKSk7CiAgICAgY29tcGxldGlvbi5jb21wbGV0aW9uUmVmQ29uMiA9IGRlc3RpbmF0aW9u
U3VyZmFjZS5yZWxlYXNlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFj
L1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9S
ZW1vdGVMYXllckJhY2tpbmdTdG9yZS5tbQppbmRleCBkMjkzNGJlNzZiNjc0ODI2NWY5NWFlZWI2
Y2RlOGE1Zjg1NjhmODIwLi4yNWIzZmI1NDY3NTFkNDc3ZGQ0NTMwZjhkNTk5MGZmZjMwZDEzOWUw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyQmFja2lu
Z1N0b3JlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJCYWNr
aW5nU3RvcmUubW0KQEAgLTExOSw3ICsxMTksMTAgQEAgdm9pZCBSZW1vdGVMYXllckJhY2tpbmdT
dG9yZTo6ZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogCiAjaWYg
VVNFKElPU1VSRkFDRSkKICAgICBpZiAobV9hY2NlbGVyYXRlc0RyYXdpbmcpIHsKLSAgICAgICAg
ZW5jb2RlciA8PCBtX2Zyb250QnVmZmVyLnN1cmZhY2UtPmNyZWF0ZVNlbmRSaWdodCgpOworICAg
ICAgICBpZiAobV9mcm9udEJ1ZmZlci5zdXJmYWNlKQorICAgICAgICAgICAgZW5jb2RlciA8PCBt
X2Zyb250QnVmZmVyLnN1cmZhY2UtPmNyZWF0ZVNlbmRSaWdodCgpOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICBlbmNvZGVyIDw8IFdlYkNvcmU6Ok1hY2hTZW5kUmlnaHQoKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KICNlbmRpZgpAQCAtMjYyLDEzICsyNjUsMTUgQEAgYm9vbCBSZW1vdGVM
YXllckJhY2tpbmdTdG9yZTo6ZGlzcGxheSgpCiAgICAgICAgIGlmIChtX2JhY2tCdWZmZXIuc3Vy
ZmFjZSAmJiAhd2lsbFBhaW50RW50aXJlQmFja2luZ1N0b3JlKQogICAgICAgICAgICAgYmFja0lt
YWdlID0gbV9iYWNrQnVmZmVyLnN1cmZhY2UtPmNyZWF0ZUltYWdlKCk7CiAKLSAgICAgICAgR3Jh
cGhpY3NDb250ZXh0JiBjb250ZXh0ID0gbV9mcm9udEJ1ZmZlci5zdXJmYWNlLT5lbnN1cmVHcmFw
aGljc0NvbnRleHQoKTsKKyAgICAgICAgaWYgKG1fZnJvbnRCdWZmZXIuc3VyZmFjZSkgeworICAg
ICAgICAgICAgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0ID0gbV9mcm9udEJ1ZmZlci5zdXJmYWNl
LT5lbnN1cmVHcmFwaGljc0NvbnRleHQoKTsKIAotICAgICAgICBjb250ZXh0LnNjYWxlKEZsb2F0
U2l6ZSgxLCAtMSkpOwotICAgICAgICBjb250ZXh0LnRyYW5zbGF0ZSgwLCAtZXhwYW5kZWRTY2Fs
ZWRTaXplLmhlaWdodCgpKTsKLSAgICAgICAgZHJhd0luQ29udGV4dChjb250ZXh0LCBiYWNrSW1h
Z2UuZ2V0KCkpOworICAgICAgICAgICAgY29udGV4dC5zY2FsZShGbG9hdFNpemUoMSwgLTEpKTsK
KyAgICAgICAgICAgIGNvbnRleHQudHJhbnNsYXRlKDAsIC1leHBhbmRlZFNjYWxlZFNpemUuaGVp
Z2h0KCkpOworICAgICAgICAgICAgZHJhd0luQ29udGV4dChjb250ZXh0LCBiYWNrSW1hZ2UuZ2V0
KCkpOwogCi0gICAgICAgIG1fZnJvbnRCdWZmZXIuc3VyZmFjZS0+cmVsZWFzZUdyYXBoaWNzQ29u
dGV4dCgpOworICAgICAgICAgICAgbV9mcm9udEJ1ZmZlci5zdXJmYWNlLT5yZWxlYXNlR3JhcGhp
Y3NDb250ZXh0KCk7CisgICAgICAgIH0KICAgICB9IGVsc2UKICNlbmRpZgogICAgIHsKQEAgLTM5
OSw3ICs0MDQsNyBAQCB2b2lkIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjphcHBseUJhY2tpbmdT
dG9yZVRvTGF5ZXIoQ0FMYXllciAqbGF5ZXIpCiAgICAgbGF5ZXIuY29udGVudHNPcGFxdWUgPSBt
X2lzT3BhcXVlOwogCiAjaWYgVVNFKElPU1VSRkFDRSkKLSAgICBpZiAoYWNjZWxlcmF0ZXNEcmF3
aW5nKCkpIHsKKyAgICBpZiAoYWNjZWxlcmF0ZXNEcmF3aW5nKCkgJiYgbV9mcm9udEJ1ZmZlci5z
dXJmYWNlKSB7CiAgICAgICAgIGxheWVyLmNvbnRlbnRzID0gbV9mcm9udEJ1ZmZlci5zdXJmYWNl
LT5hc0xheWVyQ29udGVudHMoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggMGIxN2JjYzQ2
ZDY2MmNhYTMzNmM2N2MyMzA3MThiZTVjMTdjMjMxNi4uNDI2NjMxZWZmYzZmMjgzZDY4MTcwZGM3
ZmM1ZmNjYTFiODk4ZDIwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXcubW0KQEAgLTEzODgsMTMgKzEzODgsMTYgQEAgLSAoUGFzc1JlZlB0cjxX
ZWJLaXQ6OlZpZXdTbmFwc2hvdD4pX3Rha2VWaWV3U25hcHNob3QKICNpZiBVU0UoSU9TVVJGQUNF
KQogICAgIFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0IHNuYXBzaG90Rm9ybWF0ID0gV2ViQ29y
ZTo6c2NyZWVuU3VwcG9ydHNFeHRlbmRlZENvbG9yKCkgPyBXZWJDb3JlOjpJT1N1cmZhY2U6OkZv
cm1hdDo6UkdCMTAgOiBXZWJDb3JlOjpJT1N1cmZhY2U6OkZvcm1hdDo6UkdCQTsKICAgICBhdXRv
IHN1cmZhY2UgPSBXZWJDb3JlOjpJT1N1cmZhY2U6OmNyZWF0ZShXZWJDb3JlOjpleHBhbmRlZElu
dFNpemUoc25hcHNob3RTaXplKSwgV2ViQ29yZTo6c1JHQkNvbG9yU3BhY2VSZWYoKSwgc25hcHNo
b3RGb3JtYXQpOworICAgIGlmICghc3VyZmFjZSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAg
ICAgQ0FSZW5kZXJTZXJ2ZXJSZW5kZXJMYXllcldpdGhUcmFuc2Zvcm0oTUFDSF9QT1JUX05VTEws
IHNlbGYubGF5ZXIuY29udGV4dC5jb250ZXh0SWQsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludDY0X3Q+
KHNlbGYubGF5ZXIpLCBzdXJmYWNlLT5zdXJmYWNlKCksIDAsIDAsICZ0cmFuc2Zvcm0pOwogCiAg
ICAgV2ViQ29yZTo6SU9TdXJmYWNlOjpGb3JtYXQgY29tcHJlc3NlZEZvcm1hdCA9IFdlYkNvcmU6
OklPU3VyZmFjZTo6Rm9ybWF0OjpZVVY0MjI7CiAgICAgaWYgKFdlYkNvcmU6OklPU3VyZmFjZTo6
YWxsb3dDb252ZXJzaW9uRnJvbUZvcm1hdFRvRm9ybWF0KHNuYXBzaG90Rm9ybWF0LCBjb21wcmVz
c2VkRm9ybWF0KSkgewogICAgICAgICBSZWZQdHI8V2ViS2l0OjpWaWV3U25hcHNob3Q+IHZpZXdT
bmFwc2hvdCA9IFdlYktpdDo6Vmlld1NuYXBzaG90OjpjcmVhdGUobnVsbHB0cik7CiAgICAgICAg
IFdlYkNvcmU6OklPU3VyZmFjZTo6Y29udmVydFRvRm9ybWF0KFdURk1vdmUoc3VyZmFjZSksIFdl
YkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0OjpZVVY0MjIsIFt2aWV3U25hcHNob3RdKHN0ZDo6dW5p
cXVlX3B0cjxXZWJDb3JlOjpJT1N1cmZhY2U+IGNvbnZlcnRlZFN1cmZhY2UpIHsKLSAgICAgICAg
ICAgIHZpZXdTbmFwc2hvdC0+c2V0U3VyZmFjZShXVEZNb3ZlKGNvbnZlcnRlZFN1cmZhY2UpKTsK
KyAgICAgICAgICAgIGlmIChjb252ZXJ0ZWRTdXJmYWNlKQorICAgICAgICAgICAgICAgIHZpZXdT
bmFwc2hvdC0+c2V0U3VyZmFjZShXVEZNb3ZlKGNvbnZlcnRlZFN1cmZhY2UpKTsKICAgICAgICAg
fSk7CiAKICAgICAgICAgcmV0dXJuIHZpZXdTbmFwc2hvdDsKQEAgLTQyMzUsNiArNDIzOCwxMCBA
QCAtICh2b2lkKV9zbmFwc2hvdFJlY3Q6KENHUmVjdClyZWN0SW5WaWV3Q29vcmRpbmF0ZXMgaW50
b0ltYWdlT2ZXaWR0aDooQ0dGbG9hdClpbQogICAgIC8vIElmIHdlIGFyZSBwYXJlbnRlZCBhbmQg
dGh1cyB3b24ndCBpbmN1ciBhIHNpZ25pZmljYW50IHBlbmFsdHkgZnJvbSBwYWdpbmcgaW4gdGls
ZXMsIHNuYXBzaG90IHRoZSB2aWV3IGhpZXJhcmNoeSBkaXJlY3RseS4KICAgICBpZiAoQ0FEaXNw
bGF5ICpkaXNwbGF5ID0gc2VsZi53aW5kb3cuc2NyZWVuLl9kaXNwbGF5KSB7CiAgICAgICAgIGF1
dG8gc3VyZmFjZSA9IFdlYkNvcmU6OklPU3VyZmFjZTo6Y3JlYXRlKFdlYkNvcmU6OmV4cGFuZGVk
SW50U2l6ZShXZWJDb3JlOjpGbG9hdFNpemUoaW1hZ2VTaXplKSksIFdlYkNvcmU6OnNSR0JDb2xv
clNwYWNlUmVmKCkpOworICAgICAgICBpZiAoIXN1cmZhY2UpIHsKKyAgICAgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKG51bGxwdHIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CiAg
ICAgICAgIENHRmxvYXQgaW1hZ2VTY2FsZUluVmlld0Nvb3JkaW5hdGVzID0gaW1hZ2VXaWR0aCAv
IHJlY3RJblZpZXdDb29yZGluYXRlcy5zaXplLndpZHRoOwogICAgICAgICBDQVRyYW5zZm9ybTNE
IHRyYW5zZm9ybSA9IENBVHJhbnNmb3JtM0RNYWtlU2NhbGUoaW1hZ2VTY2FsZUluVmlld0Nvb3Jk
aW5hdGVzLCBpbWFnZVNjYWxlSW5WaWV3Q29vcmRpbmF0ZXMsIDEpOwogICAgICAgICB0cmFuc2Zv
cm0gPSBDQVRyYW5zZm9ybTNEVHJhbnNsYXRlKHRyYW5zZm9ybSwgLXJlY3RJblZpZXdDb29yZGlu
YXRlcy5vcmlnaW4ueCwgLXJlY3RJblZpZXdDb29yZGluYXRlcy5vcmlnaW4ueSwgMCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>284339</attachid>
            <date>2016-07-22 09:19:29 -0700</date>
            <delta_ts>2016-07-22 10:44:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160006-20160722091827.patch</filename>
            <type>text/plain</type>
            <size>13162</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAzNTUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWRmNDczMDFjZGJmNTBl
ODE2ZDcwYzY4MmM5YzMxZDJjZmI1NTQ5Yi4uMDRkNDc3MzRiNGRiOTgzNjgwNmM5NTE1YTUyOTc5
YjFmNWY0ZDAxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE2LTA3LTIxICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgSGFuZGxlIGNhc2VzIHdoZW4g
SU9TdXJmYWNlIGluaXRpYWxpemF0aW9uIGZhaWxzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwMDA2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8y
NzQ5NTEwMj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUaGlzIGlzIGFuIGFkZGl0aW9uYWwgZml4IHRvIHIyMDM1MTQgdG8gY2hlY2sgaWYgSU9TdXJm
YWNlIGluaXRpYWxpemF0aW9uIHdhcyBzdWNjZXNzZnVsLgorCisgICAgICAgIFVuYWJsZSB0byB0
ZXN0LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5oOiBNZXJnZSAyIGMndG9ycy4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW06IFJlbW92ZSByZWR1
bmRhbnQgSU9TdXJmYWNlOjpjcmVhdGUoKSBjb2RlLiAgCisgICAgICAgIChXZWJDb3JlOjpJT1N1
cmZhY2U6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJT1N1cmZhY2U6OmNyZWF0ZUZyb21J
bWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpJT1N1cmZhY2U6OklPU3VyZmFjZSk6CisgICAgICAg
IChXZWJDb3JlOjpJT1N1cmZhY2U6OmNvbnZlcnRUb0Zvcm1hdCk6CisKIDIwMTYtMDctMjEgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBQYXJhbWV0ZXIgdG8gRG9j
dW1lbnQuY3JlYXRlRXZlbnQoKSBzaG91bGQgYmUgbWFuZGF0b3J5CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggM2Vj
ZmE5MGU5NDUwMGQ2ZWQyMjAxMzQxY2YyOTRiYWRmYzQxN2RjNS4uMmU3YWQ0YTNhMDFhYmZlOTRh
MTZiNGZhYjhmNmE2Yjg4MjcxZGExMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE2
LTA3LTIxICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgSGFuZGxl
IGNhc2VzIHdoZW4gSU9TdXJmYWNlIGluaXRpYWxpemF0aW9uIGZhaWxzLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwMDA2CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS8yNzQ5NTEwMj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaGlzIGlzIGFuIGFkZGl0aW9uYWwgZml4IHRvIHIyMDM1MTQgdG8gY2hl
Y2sgaWYgSU9TdXJmYWNlIGluaXRpYWxpemF0aW9uIHdhcyBzdWNjZXNzZnVsLgorCisgICAgICAg
IFVuYWJsZSB0byB0ZXN0LgorCisgICAgICAgICogU2hhcmVkL21hYy9SZW1vdGVMYXllckJhY2tp
bmdTdG9yZS5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OmVu
Y29kZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpkaXNwbGF5
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OmFwcGx5QmFja2lu
Z1N0b3JlVG9MYXllcik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcu
bW06CisgICAgICAgICgtW1dLV2ViVmlldyBfdGFrZVZpZXdTbmFwc2hvdF0pOgorICAgICAgICAo
LVtXS1dlYlZpZXcgX3NuYXBzaG90UmVjdDppbnRvSW1hZ2VPZldpZHRoOmNvbXBsZXRpb25IYW5k
bGVyOl0pOgorCiAyMDE2LTA3LTIxICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHN1cHBvcnQgZm9yIGRlcHJlY2F0ZWQgU1BJIGlubGlu
ZU1lZGlhUGxheWJhY2tSZXF1aXJlc1BsYXlzSW5saW5lQXR0cmlidXRlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3BwCmluZGV4
IGY1Mzk3MTAyYTZhMGM5OTQyZTlmMzNlNWY5YTYxODIwMDYzOGE1MzIuLjVlMzRiYzBhYjY3NzFh
MmEyYTA4MWQ3ODJhY2U3YWVhYjAyMDNiNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3BwCkBAIC0xNTQsMTMgKzE1NCwx
NCBAQCBJbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiBzaXplLCBmbG9h
dCByZXNvbHV0aW9uU2NhbGUsIENHQ29sb3JTcAogI2lmIFVTRShJT1NVUkZBQ0VfQ0FOVkFTX0JB
Q0tJTkdfU1RPUkUpCiAgICAgICAgIEZsb2F0U2l6ZSB1c2VyQm91bmRzID0gc2l6ZUZvckRlc3Rp
bmF0aW9uU2l6ZShGbG9hdFNpemUod2lkdGgudW5zYWZlR2V0KCksIGhlaWdodC51bnNhZmVHZXQo
KSkpOwogICAgICAgICBtX2RhdGEuc3VyZmFjZSA9IElPU3VyZmFjZTo6Y3JlYXRlKG1fZGF0YS5i
YWNraW5nU3RvcmVTaXplLCBJbnRTaXplKHVzZXJCb3VuZHMpLCBjb2xvclNwYWNlKTsKLSAgICAg
ICAgY2dDb250ZXh0ID0gbV9kYXRhLnN1cmZhY2UtPmVuc3VyZVBsYXRmb3JtQ29udGV4dCgpOwot
ICAgICAgICBpZiAoY2dDb250ZXh0KQotICAgICAgICAgICAgQ0dDb250ZXh0Q2xlYXJSZWN0KGNn
Q29udGV4dC5nZXQoKSwgRmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgdXNlckJvdW5kcykpOwotICAg
ICAgICBlbHNlCi0gICAgICAgICAgICBtX2RhdGEuc3VyZmFjZSA9IG51bGxwdHI7CisgICAgICAg
IGlmIChtX2RhdGEuc3VyZmFjZSkgeworICAgICAgICAgICAgY2dDb250ZXh0ID0gbV9kYXRhLnN1
cmZhY2UtPmVuc3VyZVBsYXRmb3JtQ29udGV4dCgpOworICAgICAgICAgICAgaWYgKGNnQ29udGV4
dCkKKyAgICAgICAgICAgICAgICBDR0NvbnRleHRDbGVhclJlY3QoY2dDb250ZXh0LmdldCgpLCBG
bG9hdFJlY3QoRmxvYXRQb2ludCgpLCB1c2VyQm91bmRzKSk7CisgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgICAgbV9kYXRhLnN1cmZhY2UgPSBudWxscHRyOworICAgICAgICB9CiAjZW5k
aWYKLQogICAgICAgICBpZiAoIWNnQ29udGV4dCkKICAgICAgICAgICAgIGFjY2VsZXJhdGVSZW5k
ZXJpbmcgPSBmYWxzZTsgLy8gSWYgYWxsb2NhdGlvbiBmYWlscywgZmFsbCBiYWNrIHRvIG5vbi1h
Y2NlbGVyYXRlZCBwYXRoLgogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLmgKaW5kZXggMDJlZDE3MWJlOTQ1ZjYxNzRlNTQxYjNk
ODI5ZDBkNGIzZDcyZWNhNi4uZmEzMjYzZmZkZWIxNWIwZGIyYWVlMTEwYmM0OGZkNGYxNTY1YWY0
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9T
dXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9T
dXJmYWNlLmgKQEAgLTEwMCw4ICsxMDAsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogcHJpdmF0ZToK
LSAgICBJT1N1cmZhY2UoSW50U2l6ZSwgQ0dDb2xvclNwYWNlUmVmLCBGb3JtYXQpOwotICAgIElP
U3VyZmFjZShJbnRTaXplLCBJbnRTaXplIGNvbnRleHRTaXplLCBDR0NvbG9yU3BhY2VSZWYsIEZv
cm1hdCk7CisgICAgSU9TdXJmYWNlKEludFNpemUsIEludFNpemUgY29udGV4dFNpemUsIENHQ29s
b3JTcGFjZVJlZiwgRm9ybWF0LCBib29sJiBzdWNjZXNzKTsKICAgICBJT1N1cmZhY2UoSU9TdXJm
YWNlUmVmLCBDR0NvbG9yU3BhY2VSZWYpOwogCiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJ
T1N1cmZhY2U+IHN1cmZhY2VGcm9tUG9vbChJbnRTaXplLCBJbnRTaXplIGNvbnRleHRTaXplLCBD
R0NvbG9yU3BhY2VSZWYsIEZvcm1hdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW0KaW5kZXggNWZiZjMwZmRhMDc3YzI0ZmIwMGUz
MjQ1MmNiMTk5YmMzNTA2MGQyNS4uMmIwZWI2MTM5ZDA5NzVjMGM2OThiOWQ0ODg0ZTljOWU2NmNh
MGYwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
SU9TdXJmYWNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L0lPU3VyZmFjZS5tbQpAQCAtNTcsMTcgKzU3LDE4IEBAIGlubGluZSBzdGQ6OnVuaXF1ZV9wdHI8
V2ViQ29yZTo6SU9TdXJmYWNlPiBXZWJDb3JlOjpJT1N1cmZhY2U6OnN1cmZhY2VGcm9tUG9vbChJ
CiAKIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJT1N1cmZhY2U+IFdlYkNvcmU6OklPU3VyZmFj
ZTo6Y3JlYXRlKEludFNpemUgc2l6ZSwgQ0dDb2xvclNwYWNlUmVmIGNvbG9yU3BhY2UsIEZvcm1h
dCBwaXhlbEZvcm1hdCkKIHsKLSAgICBpZiAoYXV0byBjYWNoZWRTdXJmYWNlID0gc3VyZmFjZUZy
b21Qb29sKHNpemUsIHNpemUsIGNvbG9yU3BhY2UsIHBpeGVsRm9ybWF0KSkKLSAgICAgICAgcmV0
dXJuIGNhY2hlZFN1cmZhY2U7Ci0KLSAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFj
ZT4obmV3IElPU3VyZmFjZShzaXplLCBjb2xvclNwYWNlLCBwaXhlbEZvcm1hdCkpOworICAgIHJl
dHVybiBJT1N1cmZhY2U6OmNyZWF0ZShzaXplLCBzaXplLCBjb2xvclNwYWNlLCBwaXhlbEZvcm1h
dCk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJT1N1cmZhY2U+IFdlYkNvcmU6OklP
U3VyZmFjZTo6Y3JlYXRlKEludFNpemUgc2l6ZSwgSW50U2l6ZSBjb250ZXh0U2l6ZSwgQ0dDb2xv
clNwYWNlUmVmIGNvbG9yU3BhY2UsIEZvcm1hdCBwaXhlbEZvcm1hdCkKIHsKICAgICBpZiAoYXV0
byBjYWNoZWRTdXJmYWNlID0gc3VyZmFjZUZyb21Qb29sKHNpemUsIGNvbnRleHRTaXplLCBjb2xv
clNwYWNlLCBwaXhlbEZvcm1hdCkpCiAgICAgICAgIHJldHVybiBjYWNoZWRTdXJmYWNlOwotICAg
IHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPihuZXcgSU9TdXJmYWNlKHNpemUsIGNv
bnRleHRTaXplLCBjb2xvclNwYWNlLCBwaXhlbEZvcm1hdCkpOworICAgIGJvb2wgc3VjY2VzcyA9
IGZhbHNlOworICAgIGF1dG8gc3VyZmFjZSA9IHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+KG5l
dyBJT1N1cmZhY2Uoc2l6ZSwgY29udGV4dFNpemUsIGNvbG9yU3BhY2UsIHBpeGVsRm9ybWF0LCBz
dWNjZXNzKSk7CisgICAgaWYgKCFzdWNjZXNzKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAg
ICByZXR1cm4gc3VyZmFjZTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OklPU3VyZmFj
ZT4gV2ViQ29yZTo6SU9TdXJmYWNlOjpjcmVhdGVGcm9tU2VuZFJpZ2h0KGNvbnN0IE1hY2hTZW5k
UmlnaHQmIHNlbmRSaWdodCwgQ0dDb2xvclNwYWNlUmVmIGNvbG9yU3BhY2UpCkBAIC05MCwxMCAr
OTEsMTEgQEAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OklPU3VyZmFjZT4gV2ViQ29yZTo6SU9T
dXJmYWNlOjpjcmVhdGVGcm9tSW1hZ2UoQ0dJbWFnZVIKICAgICBzaXplX3QgaGVpZ2h0ID0gQ0dJ
bWFnZUdldEhlaWdodChpbWFnZSk7CiAKICAgICBhdXRvIHN1cmZhY2UgPSBJT1N1cmZhY2U6OmNy
ZWF0ZShJbnRTaXplKHdpZHRoLCBoZWlnaHQpLCBzUkdCQ29sb3JTcGFjZVJlZigpKTsKKyAgICBp
ZiAoIXN1cmZhY2UpCisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGF1dG8gc3VyZmFjZUNv
bnRleHQgPSBzdXJmYWNlLT5lbnN1cmVQbGF0Zm9ybUNvbnRleHQoKTsKICAgICBDR0NvbnRleHRE
cmF3SW1hZ2Uoc3VyZmFjZUNvbnRleHQsIENHUmVjdE1ha2UoMCwgMCwgd2lkdGgsIGhlaWdodCks
IGltYWdlKTsKICAgICBDR0NvbnRleHRGbHVzaChzdXJmYWNlQ29udGV4dCk7Ci0KICAgICByZXR1
cm4gc3VyZmFjZTsKIH0KIApAQCAtMTc5LDExICsxODEsMTUgQEAgc3RhdGljIE5TRGljdGlvbmFy
eSAqb3B0aW9uc0ZvcjMyQml0U3VyZmFjZShJbnRTaXplIHNpemUsIHVuc2lnbmVkIHBpeGVsRm9y
bWF0KQogCiB9CiAKLVdlYkNvcmU6OklPU3VyZmFjZTo6SU9TdXJmYWNlKEludFNpemUgc2l6ZSwg
Q0dDb2xvclNwYWNlUmVmIGNvbG9yU3BhY2UsIEZvcm1hdCBmb3JtYXQpCitXZWJDb3JlOjpJT1N1
cmZhY2U6OklPU3VyZmFjZShJbnRTaXplIHNpemUsIEludFNpemUgY29udGV4dFNpemUsIENHQ29s
b3JTcGFjZVJlZiBjb2xvclNwYWNlLCBGb3JtYXQgZm9ybWF0LCBib29sJiBzdWNjZXNzKQogICAg
IDogbV9jb2xvclNwYWNlKGNvbG9yU3BhY2UpCiAgICAgLCBtX3NpemUoc2l6ZSkKLSAgICAsIG1f
Y29udGV4dFNpemUoc2l6ZSkKKyAgICAsIG1fY29udGV4dFNpemUoY29udGV4dFNpemUpCiB7Cisg
ICAgc3VjY2VzcyA9IGZhbHNlOworICAgIEFTU0VSVChjb250ZXh0U2l6ZS53aWR0aCgpIDw9IHNp
emUud2lkdGgoKSk7CisgICAgQVNTRVJUKGNvbnRleHRTaXplLmhlaWdodCgpIDw9IHNpemUuaGVp
Z2h0KCkpOworCiAgICAgTlNEaWN0aW9uYXJ5ICpvcHRpb25zOwogCiAgICAgc3dpdGNoIChmb3Jt
YXQpIHsKQEAgLTIwMCwyMSArMjA2LDE0IEBAIFdlYkNvcmU6OklPU3VyZmFjZTo6SU9TdXJmYWNl
KEludFNpemUgc2l6ZSwgQ0dDb2xvclNwYWNlUmVmIGNvbG9yU3BhY2UsIEZvcm1hdCBmCiAgICAg
ICAgIG9wdGlvbnMgPSBvcHRpb25zRm9yQmlwbGFuYXJTdXJmYWNlKHNpemUsICc0MjJmJywgMSwg
MSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KLSAgICAKICAgICBtX3N1cmZhY2UgPSBhZG9wdENG
KElPU3VyZmFjZUNyZWF0ZSgoQ0ZEaWN0aW9uYXJ5UmVmKW9wdGlvbnMpKTsKLSAgICBtX3RvdGFs
Qnl0ZXMgPSBJT1N1cmZhY2VHZXRBbGxvY1NpemUobV9zdXJmYWNlLmdldCgpKTsKLSAgICBpZiAo
IW1fc3VyZmFjZSkKKyAgICBzdWNjZXNzID0gISFtX3N1cmZhY2U7CisgICAgaWYgKHN1Y2Nlc3Mp
CisgICAgICAgIG1fdG90YWxCeXRlcyA9IElPU3VyZmFjZUdldEFsbG9jU2l6ZShtX3N1cmZhY2Uu
Z2V0KCkpOworICAgIGVsc2UKICAgICAgICAgTlNMb2coQCJTdXJmYWNlIGNyZWF0aW9uIGZhaWxl
ZCBmb3Igb3B0aW9ucyAlQCIsIG9wdGlvbnMpOwogfQogCi1XZWJDb3JlOjpJT1N1cmZhY2U6OklP
U3VyZmFjZShJbnRTaXplIHNpemUsIEludFNpemUgY29udGV4dFNpemUsIENHQ29sb3JTcGFjZVJl
ZiBjb2xvclNwYWNlLCBGb3JtYXQgcGl4ZWxGb3JtYXQpCi0gICAgOiBJT1N1cmZhY2Uoc2l6ZSwg
Y29sb3JTcGFjZSwgcGl4ZWxGb3JtYXQpCi17Ci0gICAgQVNTRVJUKGNvbnRleHRTaXplLndpZHRo
KCkgPD0gc2l6ZS53aWR0aCgpKTsKLSAgICBBU1NFUlQoY29udGV4dFNpemUuaGVpZ2h0KCkgPD0g
c2l6ZS5oZWlnaHQoKSk7Ci0gICAgbV9jb250ZXh0U2l6ZSA9IGNvbnRleHRTaXplOwotfQotCiBX
ZWJDb3JlOjpJT1N1cmZhY2U6OklPU3VyZmFjZShJT1N1cmZhY2VSZWYgc3VyZmFjZSwgQ0dDb2xv
clNwYWNlUmVmIGNvbG9yU3BhY2UpCiAgICAgOiBtX2NvbG9yU3BhY2UoY29sb3JTcGFjZSkKICAg
ICAsIG1fc3VyZmFjZShzdXJmYWNlKQpAQCAtMzk2LDggKzM5NSwxMiBAQCB2b2lkIFdlYkNvcmU6
OklPU3VyZmFjZTo6Y29udmVydFRvRm9ybWF0KHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJT1N1
cmZhY2U+JiYgaQogICAgIH0KIAogICAgIGF1dG8gZGVzdGluYXRpb25TdXJmYWNlID0gSU9TdXJm
YWNlOjpjcmVhdGUoaW5TdXJmYWNlLT5zaXplKCksIGluU3VyZmFjZS0+Y29sb3JTcGFjZSgpLCBm
b3JtYXQpOwotICAgIElPU3VyZmFjZVJlZiBkZXN0aW5hdGlvbklPU3VyZmFjZVJlZiA9IGRlc3Rp
bmF0aW9uU3VyZmFjZS0+c3VyZmFjZSgpOworICAgIGlmICghZGVzdGluYXRpb25TdXJmYWNlKSB7
CisgICAgICAgIGNhbGxiYWNrKG51bGxwdHIpOworICAgICAgICByZXR1cm47CisgICAgfQogCisg
ICAgSU9TdXJmYWNlUmVmIGRlc3RpbmF0aW9uSU9TdXJmYWNlUmVmID0gZGVzdGluYXRpb25TdXJm
YWNlLT5zdXJmYWNlKCk7CiAgICAgSU9TdXJmYWNlQWNjZWxlcmF0b3JDb21wbGV0aW9uIGNvbXBs
ZXRpb247CiAgICAgY29tcGxldGlvbi5jb21wbGV0aW9uUmVmQ29uID0gbmV3IHN0ZDo6ZnVuY3Rp
b248dm9pZChzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SU9TdXJmYWNlPik+IChXVEZNb3ZlKGNh
bGxiYWNrKSk7CiAgICAgY29tcGxldGlvbi5jb21wbGV0aW9uUmVmQ29uMiA9IGRlc3RpbmF0aW9u
U3VyZmFjZS5yZWxlYXNlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFj
L1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9S
ZW1vdGVMYXllckJhY2tpbmdTdG9yZS5tbQppbmRleCBkMjkzNGJlNzZiNjc0ODI2NWY5NWFlZWI2
Y2RlOGE1Zjg1NjhmODIwLi4yNWIzZmI1NDY3NTFkNDc3ZGQ0NTMwZjhkNTk5MGZmZjMwZDEzOWUw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyQmFja2lu
Z1N0b3JlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJCYWNr
aW5nU3RvcmUubW0KQEAgLTExOSw3ICsxMTksMTAgQEAgdm9pZCBSZW1vdGVMYXllckJhY2tpbmdT
dG9yZTo6ZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogCiAjaWYg
VVNFKElPU1VSRkFDRSkKICAgICBpZiAobV9hY2NlbGVyYXRlc0RyYXdpbmcpIHsKLSAgICAgICAg
ZW5jb2RlciA8PCBtX2Zyb250QnVmZmVyLnN1cmZhY2UtPmNyZWF0ZVNlbmRSaWdodCgpOworICAg
ICAgICBpZiAobV9mcm9udEJ1ZmZlci5zdXJmYWNlKQorICAgICAgICAgICAgZW5jb2RlciA8PCBt
X2Zyb250QnVmZmVyLnN1cmZhY2UtPmNyZWF0ZVNlbmRSaWdodCgpOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICBlbmNvZGVyIDw8IFdlYkNvcmU6Ok1hY2hTZW5kUmlnaHQoKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KICNlbmRpZgpAQCAtMjYyLDEzICsyNjUsMTUgQEAgYm9vbCBSZW1vdGVM
YXllckJhY2tpbmdTdG9yZTo6ZGlzcGxheSgpCiAgICAgICAgIGlmIChtX2JhY2tCdWZmZXIuc3Vy
ZmFjZSAmJiAhd2lsbFBhaW50RW50aXJlQmFja2luZ1N0b3JlKQogICAgICAgICAgICAgYmFja0lt
YWdlID0gbV9iYWNrQnVmZmVyLnN1cmZhY2UtPmNyZWF0ZUltYWdlKCk7CiAKLSAgICAgICAgR3Jh
cGhpY3NDb250ZXh0JiBjb250ZXh0ID0gbV9mcm9udEJ1ZmZlci5zdXJmYWNlLT5lbnN1cmVHcmFw
aGljc0NvbnRleHQoKTsKKyAgICAgICAgaWYgKG1fZnJvbnRCdWZmZXIuc3VyZmFjZSkgeworICAg
ICAgICAgICAgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0ID0gbV9mcm9udEJ1ZmZlci5zdXJmYWNl
LT5lbnN1cmVHcmFwaGljc0NvbnRleHQoKTsKIAotICAgICAgICBjb250ZXh0LnNjYWxlKEZsb2F0
U2l6ZSgxLCAtMSkpOwotICAgICAgICBjb250ZXh0LnRyYW5zbGF0ZSgwLCAtZXhwYW5kZWRTY2Fs
ZWRTaXplLmhlaWdodCgpKTsKLSAgICAgICAgZHJhd0luQ29udGV4dChjb250ZXh0LCBiYWNrSW1h
Z2UuZ2V0KCkpOworICAgICAgICAgICAgY29udGV4dC5zY2FsZShGbG9hdFNpemUoMSwgLTEpKTsK
KyAgICAgICAgICAgIGNvbnRleHQudHJhbnNsYXRlKDAsIC1leHBhbmRlZFNjYWxlZFNpemUuaGVp
Z2h0KCkpOworICAgICAgICAgICAgZHJhd0luQ29udGV4dChjb250ZXh0LCBiYWNrSW1hZ2UuZ2V0
KCkpOwogCi0gICAgICAgIG1fZnJvbnRCdWZmZXIuc3VyZmFjZS0+cmVsZWFzZUdyYXBoaWNzQ29u
dGV4dCgpOworICAgICAgICAgICAgbV9mcm9udEJ1ZmZlci5zdXJmYWNlLT5yZWxlYXNlR3JhcGhp
Y3NDb250ZXh0KCk7CisgICAgICAgIH0KICAgICB9IGVsc2UKICNlbmRpZgogICAgIHsKQEAgLTM5
OSw3ICs0MDQsNyBAQCB2b2lkIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjphcHBseUJhY2tpbmdT
dG9yZVRvTGF5ZXIoQ0FMYXllciAqbGF5ZXIpCiAgICAgbGF5ZXIuY29udGVudHNPcGFxdWUgPSBt
X2lzT3BhcXVlOwogCiAjaWYgVVNFKElPU1VSRkFDRSkKLSAgICBpZiAoYWNjZWxlcmF0ZXNEcmF3
aW5nKCkpIHsKKyAgICBpZiAoYWNjZWxlcmF0ZXNEcmF3aW5nKCkgJiYgbV9mcm9udEJ1ZmZlci5z
dXJmYWNlKSB7CiAgICAgICAgIGxheWVyLmNvbnRlbnRzID0gbV9mcm9udEJ1ZmZlci5zdXJmYWNl
LT5hc0xheWVyQ29udGVudHMoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggMGIxN2JjYzQ2
ZDY2MmNhYTMzNmM2N2MyMzA3MThiZTVjMTdjMjMxNi4uNDI2NjMxZWZmYzZmMjgzZDY4MTcwZGM3
ZmM1ZmNjYTFiODk4ZDIwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXcubW0KQEAgLTEzODgsMTMgKzEzODgsMTYgQEAgLSAoUGFzc1JlZlB0cjxX
ZWJLaXQ6OlZpZXdTbmFwc2hvdD4pX3Rha2VWaWV3U25hcHNob3QKICNpZiBVU0UoSU9TVVJGQUNF
KQogICAgIFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0IHNuYXBzaG90Rm9ybWF0ID0gV2ViQ29y
ZTo6c2NyZWVuU3VwcG9ydHNFeHRlbmRlZENvbG9yKCkgPyBXZWJDb3JlOjpJT1N1cmZhY2U6OkZv
cm1hdDo6UkdCMTAgOiBXZWJDb3JlOjpJT1N1cmZhY2U6OkZvcm1hdDo6UkdCQTsKICAgICBhdXRv
IHN1cmZhY2UgPSBXZWJDb3JlOjpJT1N1cmZhY2U6OmNyZWF0ZShXZWJDb3JlOjpleHBhbmRlZElu
dFNpemUoc25hcHNob3RTaXplKSwgV2ViQ29yZTo6c1JHQkNvbG9yU3BhY2VSZWYoKSwgc25hcHNo
b3RGb3JtYXQpOworICAgIGlmICghc3VyZmFjZSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAg
ICAgQ0FSZW5kZXJTZXJ2ZXJSZW5kZXJMYXllcldpdGhUcmFuc2Zvcm0oTUFDSF9QT1JUX05VTEws
IHNlbGYubGF5ZXIuY29udGV4dC5jb250ZXh0SWQsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludDY0X3Q+
KHNlbGYubGF5ZXIpLCBzdXJmYWNlLT5zdXJmYWNlKCksIDAsIDAsICZ0cmFuc2Zvcm0pOwogCiAg
ICAgV2ViQ29yZTo6SU9TdXJmYWNlOjpGb3JtYXQgY29tcHJlc3NlZEZvcm1hdCA9IFdlYkNvcmU6
OklPU3VyZmFjZTo6Rm9ybWF0OjpZVVY0MjI7CiAgICAgaWYgKFdlYkNvcmU6OklPU3VyZmFjZTo6
YWxsb3dDb252ZXJzaW9uRnJvbUZvcm1hdFRvRm9ybWF0KHNuYXBzaG90Rm9ybWF0LCBjb21wcmVz
c2VkRm9ybWF0KSkgewogICAgICAgICBSZWZQdHI8V2ViS2l0OjpWaWV3U25hcHNob3Q+IHZpZXdT
bmFwc2hvdCA9IFdlYktpdDo6Vmlld1NuYXBzaG90OjpjcmVhdGUobnVsbHB0cik7CiAgICAgICAg
IFdlYkNvcmU6OklPU3VyZmFjZTo6Y29udmVydFRvRm9ybWF0KFdURk1vdmUoc3VyZmFjZSksIFdl
YkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0OjpZVVY0MjIsIFt2aWV3U25hcHNob3RdKHN0ZDo6dW5p
cXVlX3B0cjxXZWJDb3JlOjpJT1N1cmZhY2U+IGNvbnZlcnRlZFN1cmZhY2UpIHsKLSAgICAgICAg
ICAgIHZpZXdTbmFwc2hvdC0+c2V0U3VyZmFjZShXVEZNb3ZlKGNvbnZlcnRlZFN1cmZhY2UpKTsK
KyAgICAgICAgICAgIGlmIChjb252ZXJ0ZWRTdXJmYWNlKQorICAgICAgICAgICAgICAgIHZpZXdT
bmFwc2hvdC0+c2V0U3VyZmFjZShXVEZNb3ZlKGNvbnZlcnRlZFN1cmZhY2UpKTsKICAgICAgICAg
fSk7CiAKICAgICAgICAgcmV0dXJuIHZpZXdTbmFwc2hvdDsKQEAgLTQyMzUsNiArNDIzOCwxMCBA
QCAtICh2b2lkKV9zbmFwc2hvdFJlY3Q6KENHUmVjdClyZWN0SW5WaWV3Q29vcmRpbmF0ZXMgaW50
b0ltYWdlT2ZXaWR0aDooQ0dGbG9hdClpbQogICAgIC8vIElmIHdlIGFyZSBwYXJlbnRlZCBhbmQg
dGh1cyB3b24ndCBpbmN1ciBhIHNpZ25pZmljYW50IHBlbmFsdHkgZnJvbSBwYWdpbmcgaW4gdGls
ZXMsIHNuYXBzaG90IHRoZSB2aWV3IGhpZXJhcmNoeSBkaXJlY3RseS4KICAgICBpZiAoQ0FEaXNw
bGF5ICpkaXNwbGF5ID0gc2VsZi53aW5kb3cuc2NyZWVuLl9kaXNwbGF5KSB7CiAgICAgICAgIGF1
dG8gc3VyZmFjZSA9IFdlYkNvcmU6OklPU3VyZmFjZTo6Y3JlYXRlKFdlYkNvcmU6OmV4cGFuZGVk
SW50U2l6ZShXZWJDb3JlOjpGbG9hdFNpemUoaW1hZ2VTaXplKSksIFdlYkNvcmU6OnNSR0JDb2xv
clNwYWNlUmVmKCkpOworICAgICAgICBpZiAoIXN1cmZhY2UpIHsKKyAgICAgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKG51bGxwdHIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CiAg
ICAgICAgIENHRmxvYXQgaW1hZ2VTY2FsZUluVmlld0Nvb3JkaW5hdGVzID0gaW1hZ2VXaWR0aCAv
IHJlY3RJblZpZXdDb29yZGluYXRlcy5zaXplLndpZHRoOwogICAgICAgICBDQVRyYW5zZm9ybTNE
IHRyYW5zZm9ybSA9IENBVHJhbnNmb3JtM0RNYWtlU2NhbGUoaW1hZ2VTY2FsZUluVmlld0Nvb3Jk
aW5hdGVzLCBpbWFnZVNjYWxlSW5WaWV3Q29vcmRpbmF0ZXMsIDEpOwogICAgICAgICB0cmFuc2Zv
cm0gPSBDQVRyYW5zZm9ybTNEVHJhbnNsYXRlKHRyYW5zZm9ybSwgLXJlY3RJblZpZXdDb29yZGlu
YXRlcy5vcmlnaW4ueCwgLXJlY3RJblZpZXdDb29yZGluYXRlcy5vcmlnaW4ueSwgMCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>284345</attachid>
            <date>2016-07-22 10:45:51 -0700</date>
            <delta_ts>2016-07-22 15:13:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160006-20160722104450.patch</filename>
            <type>text/plain</type>
            <size>13163</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAzNTUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWRmNDczMDFjZGJmNTBl
ODE2ZDcwYzY4MmM5YzMxZDJjZmI1NTQ5Yi4uMDRkNDc3MzRiNGRiOTgzNjgwNmM5NTE1YTUyOTc5
YjFmNWY0ZDAxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE2LTA3LTIxICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgSGFuZGxlIGNhc2VzIHdoZW4g
SU9TdXJmYWNlIGluaXRpYWxpemF0aW9uIGZhaWxzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwMDA2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8y
NzQ5NTEwMj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUaGlzIGlzIGFuIGFkZGl0aW9uYWwgZml4IHRvIHIyMDM1MTQgdG8gY2hlY2sgaWYgSU9TdXJm
YWNlIGluaXRpYWxpemF0aW9uIHdhcyBzdWNjZXNzZnVsLgorCisgICAgICAgIFVuYWJsZSB0byB0
ZXN0LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5oOiBNZXJnZSAyIGMndG9ycy4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW06IFJlbW92ZSByZWR1
bmRhbnQgSU9TdXJmYWNlOjpjcmVhdGUoKSBjb2RlLiAgCisgICAgICAgIChXZWJDb3JlOjpJT1N1
cmZhY2U6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJT1N1cmZhY2U6OmNyZWF0ZUZyb21J
bWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpJT1N1cmZhY2U6OklPU3VyZmFjZSk6CisgICAgICAg
IChXZWJDb3JlOjpJT1N1cmZhY2U6OmNvbnZlcnRUb0Zvcm1hdCk6CisKIDIwMTYtMDctMjEgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBQYXJhbWV0ZXIgdG8gRG9j
dW1lbnQuY3JlYXRlRXZlbnQoKSBzaG91bGQgYmUgbWFuZGF0b3J5CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggM2Vj
ZmE5MGU5NDUwMGQ2ZWQyMjAxMzQxY2YyOTRiYWRmYzQxN2RjNS4uMmU3YWQ0YTNhMDFhYmZlOTRh
MTZiNGZhYjhmNmE2Yjg4MjcxZGExMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE2
LTA3LTIxICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgSGFuZGxl
IGNhc2VzIHdoZW4gSU9TdXJmYWNlIGluaXRpYWxpemF0aW9uIGZhaWxzLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwMDA2CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS8yNzQ5NTEwMj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaGlzIGlzIGFuIGFkZGl0aW9uYWwgZml4IHRvIHIyMDM1MTQgdG8gY2hl
Y2sgaWYgSU9TdXJmYWNlIGluaXRpYWxpemF0aW9uIHdhcyBzdWNjZXNzZnVsLgorCisgICAgICAg
IFVuYWJsZSB0byB0ZXN0LgorCisgICAgICAgICogU2hhcmVkL21hYy9SZW1vdGVMYXllckJhY2tp
bmdTdG9yZS5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OmVu
Y29kZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpkaXNwbGF5
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OmFwcGx5QmFja2lu
Z1N0b3JlVG9MYXllcik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcu
bW06CisgICAgICAgICgtW1dLV2ViVmlldyBfdGFrZVZpZXdTbmFwc2hvdF0pOgorICAgICAgICAo
LVtXS1dlYlZpZXcgX3NuYXBzaG90UmVjdDppbnRvSW1hZ2VPZldpZHRoOmNvbXBsZXRpb25IYW5k
bGVyOl0pOgorCiAyMDE2LTA3LTIxICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHN1cHBvcnQgZm9yIGRlcHJlY2F0ZWQgU1BJIGlubGlu
ZU1lZGlhUGxheWJhY2tSZXF1aXJlc1BsYXlzSW5saW5lQXR0cmlidXRlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3BwCmluZGV4
IGY1Mzk3MTAyYTZhMGM5OTQyZTlmMzNlNWY5YTYxODIwMDYzOGE1MzIuLjVlMzRiYzBhYjY3NzFh
MmEyYTA4MWQ3ODJhY2U3YWVhYjAyMDNiNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3BwCkBAIC0xNTQsMTMgKzE1NCwx
NCBAQCBJbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiBzaXplLCBmbG9h
dCByZXNvbHV0aW9uU2NhbGUsIENHQ29sb3JTcAogI2lmIFVTRShJT1NVUkZBQ0VfQ0FOVkFTX0JB
Q0tJTkdfU1RPUkUpCiAgICAgICAgIEZsb2F0U2l6ZSB1c2VyQm91bmRzID0gc2l6ZUZvckRlc3Rp
bmF0aW9uU2l6ZShGbG9hdFNpemUod2lkdGgudW5zYWZlR2V0KCksIGhlaWdodC51bnNhZmVHZXQo
KSkpOwogICAgICAgICBtX2RhdGEuc3VyZmFjZSA9IElPU3VyZmFjZTo6Y3JlYXRlKG1fZGF0YS5i
YWNraW5nU3RvcmVTaXplLCBJbnRTaXplKHVzZXJCb3VuZHMpLCBjb2xvclNwYWNlKTsKLSAgICAg
ICAgY2dDb250ZXh0ID0gbV9kYXRhLnN1cmZhY2UtPmVuc3VyZVBsYXRmb3JtQ29udGV4dCgpOwot
ICAgICAgICBpZiAoY2dDb250ZXh0KQotICAgICAgICAgICAgQ0dDb250ZXh0Q2xlYXJSZWN0KGNn
Q29udGV4dC5nZXQoKSwgRmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgdXNlckJvdW5kcykpOwotICAg
ICAgICBlbHNlCi0gICAgICAgICAgICBtX2RhdGEuc3VyZmFjZSA9IG51bGxwdHI7CisgICAgICAg
IGlmIChtX2RhdGEuc3VyZmFjZSkgeworICAgICAgICAgICAgY2dDb250ZXh0ID0gbV9kYXRhLnN1
cmZhY2UtPmVuc3VyZVBsYXRmb3JtQ29udGV4dCgpOworICAgICAgICAgICAgaWYgKGNnQ29udGV4
dCkKKyAgICAgICAgICAgICAgICBDR0NvbnRleHRDbGVhclJlY3QoY2dDb250ZXh0LmdldCgpLCBG
bG9hdFJlY3QoRmxvYXRQb2ludCgpLCB1c2VyQm91bmRzKSk7CisgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgICAgbV9kYXRhLnN1cmZhY2UgPSBudWxscHRyOworICAgICAgICB9CiAjZW5k
aWYKLQogICAgICAgICBpZiAoIWNnQ29udGV4dCkKICAgICAgICAgICAgIGFjY2VsZXJhdGVSZW5k
ZXJpbmcgPSBmYWxzZTsgLy8gSWYgYWxsb2NhdGlvbiBmYWlscywgZmFsbCBiYWNrIHRvIG5vbi1h
Y2NlbGVyYXRlZCBwYXRoLgogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLmgKaW5kZXggMDJlZDE3MWJlOTQ1ZjYxNzRlNTQxYjNk
ODI5ZDBkNGIzZDcyZWNhNi4uZmEzMjYzZmZkZWIxNWIwZGIyYWVlMTEwYmM0OGZkNGYxNTY1YWY0
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9T
dXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9T
dXJmYWNlLmgKQEAgLTEwMCw4ICsxMDAsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogcHJpdmF0ZToK
LSAgICBJT1N1cmZhY2UoSW50U2l6ZSwgQ0dDb2xvclNwYWNlUmVmLCBGb3JtYXQpOwotICAgIElP
U3VyZmFjZShJbnRTaXplLCBJbnRTaXplIGNvbnRleHRTaXplLCBDR0NvbG9yU3BhY2VSZWYsIEZv
cm1hdCk7CisgICAgSU9TdXJmYWNlKEludFNpemUsIEludFNpemUgY29udGV4dFNpemUsIENHQ29s
b3JTcGFjZVJlZiwgRm9ybWF0LCBib29sJiBzdWNjZXNzKTsKICAgICBJT1N1cmZhY2UoSU9TdXJm
YWNlUmVmLCBDR0NvbG9yU3BhY2VSZWYpOwogCiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJ
T1N1cmZhY2U+IHN1cmZhY2VGcm9tUG9vbChJbnRTaXplLCBJbnRTaXplIGNvbnRleHRTaXplLCBD
R0NvbG9yU3BhY2VSZWYsIEZvcm1hdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW0KaW5kZXggNWZiZjMwZmRhMDc3YzI0ZmIwMGUz
MjQ1MmNiMTk5YmMzNTA2MGQyNS4uYWRiNTYzODEzZjA1M2ZjYjkwMmFlOTZhYmM3OTU0OTU1NDNj
OTVhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
SU9TdXJmYWNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L0lPU3VyZmFjZS5tbQpAQCAtNTcsMTcgKzU3LDE4IEBAIGlubGluZSBzdGQ6OnVuaXF1ZV9wdHI8
V2ViQ29yZTo6SU9TdXJmYWNlPiBXZWJDb3JlOjpJT1N1cmZhY2U6OnN1cmZhY2VGcm9tUG9vbChJ
CiAKIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJT1N1cmZhY2U+IFdlYkNvcmU6OklPU3VyZmFj
ZTo6Y3JlYXRlKEludFNpemUgc2l6ZSwgQ0dDb2xvclNwYWNlUmVmIGNvbG9yU3BhY2UsIEZvcm1h
dCBwaXhlbEZvcm1hdCkKIHsKLSAgICBpZiAoYXV0byBjYWNoZWRTdXJmYWNlID0gc3VyZmFjZUZy
b21Qb29sKHNpemUsIHNpemUsIGNvbG9yU3BhY2UsIHBpeGVsRm9ybWF0KSkKLSAgICAgICAgcmV0
dXJuIGNhY2hlZFN1cmZhY2U7Ci0KLSAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFj
ZT4obmV3IElPU3VyZmFjZShzaXplLCBjb2xvclNwYWNlLCBwaXhlbEZvcm1hdCkpOworICAgIHJl
dHVybiBJT1N1cmZhY2U6OmNyZWF0ZShzaXplLCBzaXplLCBjb2xvclNwYWNlLCBwaXhlbEZvcm1h
dCk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJT1N1cmZhY2U+IFdlYkNvcmU6OklP
U3VyZmFjZTo6Y3JlYXRlKEludFNpemUgc2l6ZSwgSW50U2l6ZSBjb250ZXh0U2l6ZSwgQ0dDb2xv
clNwYWNlUmVmIGNvbG9yU3BhY2UsIEZvcm1hdCBwaXhlbEZvcm1hdCkKIHsKICAgICBpZiAoYXV0
byBjYWNoZWRTdXJmYWNlID0gc3VyZmFjZUZyb21Qb29sKHNpemUsIGNvbnRleHRTaXplLCBjb2xv
clNwYWNlLCBwaXhlbEZvcm1hdCkpCiAgICAgICAgIHJldHVybiBjYWNoZWRTdXJmYWNlOwotICAg
IHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPihuZXcgSU9TdXJmYWNlKHNpemUsIGNv
bnRleHRTaXplLCBjb2xvclNwYWNlLCBwaXhlbEZvcm1hdCkpOworICAgIGJvb2wgc3VjY2VzcyA9
IGZhbHNlOworICAgIGF1dG8gc3VyZmFjZSA9IHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+KG5l
dyBJT1N1cmZhY2Uoc2l6ZSwgY29udGV4dFNpemUsIGNvbG9yU3BhY2UsIHBpeGVsRm9ybWF0LCBz
dWNjZXNzKSk7CisgICAgaWYgKCFzdWNjZXNzKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAg
ICByZXR1cm4gc3VyZmFjZTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OklPU3VyZmFj
ZT4gV2ViQ29yZTo6SU9TdXJmYWNlOjpjcmVhdGVGcm9tU2VuZFJpZ2h0KGNvbnN0IE1hY2hTZW5k
UmlnaHQmIHNlbmRSaWdodCwgQ0dDb2xvclNwYWNlUmVmIGNvbG9yU3BhY2UpCkBAIC05MCwxMCAr
OTEsMTEgQEAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OklPU3VyZmFjZT4gV2ViQ29yZTo6SU9T
dXJmYWNlOjpjcmVhdGVGcm9tSW1hZ2UoQ0dJbWFnZVIKICAgICBzaXplX3QgaGVpZ2h0ID0gQ0dJ
bWFnZUdldEhlaWdodChpbWFnZSk7CiAKICAgICBhdXRvIHN1cmZhY2UgPSBJT1N1cmZhY2U6OmNy
ZWF0ZShJbnRTaXplKHdpZHRoLCBoZWlnaHQpLCBzUkdCQ29sb3JTcGFjZVJlZigpKTsKKyAgICBp
ZiAoIXN1cmZhY2UpCisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGF1dG8gc3VyZmFjZUNv
bnRleHQgPSBzdXJmYWNlLT5lbnN1cmVQbGF0Zm9ybUNvbnRleHQoKTsKICAgICBDR0NvbnRleHRE
cmF3SW1hZ2Uoc3VyZmFjZUNvbnRleHQsIENHUmVjdE1ha2UoMCwgMCwgd2lkdGgsIGhlaWdodCks
IGltYWdlKTsKICAgICBDR0NvbnRleHRGbHVzaChzdXJmYWNlQ29udGV4dCk7Ci0KICAgICByZXR1
cm4gc3VyZmFjZTsKIH0KIApAQCAtMTc5LDExICsxODEsMTUgQEAgc3RhdGljIE5TRGljdGlvbmFy
eSAqb3B0aW9uc0ZvcjMyQml0U3VyZmFjZShJbnRTaXplIHNpemUsIHVuc2lnbmVkIHBpeGVsRm9y
bWF0KQogCiB9CiAKLVdlYkNvcmU6OklPU3VyZmFjZTo6SU9TdXJmYWNlKEludFNpemUgc2l6ZSwg
Q0dDb2xvclNwYWNlUmVmIGNvbG9yU3BhY2UsIEZvcm1hdCBmb3JtYXQpCitXZWJDb3JlOjpJT1N1
cmZhY2U6OklPU3VyZmFjZShJbnRTaXplIHNpemUsIEludFNpemUgY29udGV4dFNpemUsIENHQ29s
b3JTcGFjZVJlZiBjb2xvclNwYWNlLCBGb3JtYXQgZm9ybWF0LCBib29sJiBzdWNjZXNzKQogICAg
IDogbV9jb2xvclNwYWNlKGNvbG9yU3BhY2UpCiAgICAgLCBtX3NpemUoc2l6ZSkKLSAgICAsIG1f
Y29udGV4dFNpemUoc2l6ZSkKKyAgICAsIG1fY29udGV4dFNpemUoY29udGV4dFNpemUpCiB7Cisg
ICAgQVNTRVJUKCFzdWNjZXNzKTsKKyAgICBBU1NFUlQoY29udGV4dFNpemUud2lkdGgoKSA8PSBz
aXplLndpZHRoKCkpOworICAgIEFTU0VSVChjb250ZXh0U2l6ZS5oZWlnaHQoKSA8PSBzaXplLmhl
aWdodCgpKTsKKwogICAgIE5TRGljdGlvbmFyeSAqb3B0aW9uczsKIAogICAgIHN3aXRjaCAoZm9y
bWF0KSB7CkBAIC0yMDAsMjEgKzIwNiwxNCBAQCBXZWJDb3JlOjpJT1N1cmZhY2U6OklPU3VyZmFj
ZShJbnRTaXplIHNpemUsIENHQ29sb3JTcGFjZVJlZiBjb2xvclNwYWNlLCBGb3JtYXQgZgogICAg
ICAgICBvcHRpb25zID0gb3B0aW9uc0ZvckJpcGxhbmFyU3VyZmFjZShzaXplLCAnNDIyZicsIDEs
IDEpOwogICAgICAgICBicmVhazsKICAgICB9Ci0gICAgCiAgICAgbV9zdXJmYWNlID0gYWRvcHRD
RihJT1N1cmZhY2VDcmVhdGUoKENGRGljdGlvbmFyeVJlZilvcHRpb25zKSk7Ci0gICAgbV90b3Rh
bEJ5dGVzID0gSU9TdXJmYWNlR2V0QWxsb2NTaXplKG1fc3VyZmFjZS5nZXQoKSk7Ci0gICAgaWYg
KCFtX3N1cmZhY2UpCisgICAgc3VjY2VzcyA9ICEhbV9zdXJmYWNlOworICAgIGlmIChzdWNjZXNz
KQorICAgICAgICBtX3RvdGFsQnl0ZXMgPSBJT1N1cmZhY2VHZXRBbGxvY1NpemUobV9zdXJmYWNl
LmdldCgpKTsKKyAgICBlbHNlCiAgICAgICAgIE5TTG9nKEAiU3VyZmFjZSBjcmVhdGlvbiBmYWls
ZWQgZm9yIG9wdGlvbnMgJUAiLCBvcHRpb25zKTsKIH0KIAotV2ViQ29yZTo6SU9TdXJmYWNlOjpJ
T1N1cmZhY2UoSW50U2l6ZSBzaXplLCBJbnRTaXplIGNvbnRleHRTaXplLCBDR0NvbG9yU3BhY2VS
ZWYgY29sb3JTcGFjZSwgRm9ybWF0IHBpeGVsRm9ybWF0KQotICAgIDogSU9TdXJmYWNlKHNpemUs
IGNvbG9yU3BhY2UsIHBpeGVsRm9ybWF0KQotewotICAgIEFTU0VSVChjb250ZXh0U2l6ZS53aWR0
aCgpIDw9IHNpemUud2lkdGgoKSk7Ci0gICAgQVNTRVJUKGNvbnRleHRTaXplLmhlaWdodCgpIDw9
IHNpemUuaGVpZ2h0KCkpOwotICAgIG1fY29udGV4dFNpemUgPSBjb250ZXh0U2l6ZTsKLX0KLQog
V2ViQ29yZTo6SU9TdXJmYWNlOjpJT1N1cmZhY2UoSU9TdXJmYWNlUmVmIHN1cmZhY2UsIENHQ29s
b3JTcGFjZVJlZiBjb2xvclNwYWNlKQogICAgIDogbV9jb2xvclNwYWNlKGNvbG9yU3BhY2UpCiAg
ICAgLCBtX3N1cmZhY2Uoc3VyZmFjZSkKQEAgLTM5Niw4ICszOTUsMTIgQEAgdm9pZCBXZWJDb3Jl
OjpJT1N1cmZhY2U6OmNvbnZlcnRUb0Zvcm1hdChzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SU9T
dXJmYWNlPiYmIGkKICAgICB9CiAKICAgICBhdXRvIGRlc3RpbmF0aW9uU3VyZmFjZSA9IElPU3Vy
ZmFjZTo6Y3JlYXRlKGluU3VyZmFjZS0+c2l6ZSgpLCBpblN1cmZhY2UtPmNvbG9yU3BhY2UoKSwg
Zm9ybWF0KTsKLSAgICBJT1N1cmZhY2VSZWYgZGVzdGluYXRpb25JT1N1cmZhY2VSZWYgPSBkZXN0
aW5hdGlvblN1cmZhY2UtPnN1cmZhY2UoKTsKKyAgICBpZiAoIWRlc3RpbmF0aW9uU3VyZmFjZSkg
eworICAgICAgICBjYWxsYmFjayhudWxscHRyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KIAor
ICAgIElPU3VyZmFjZVJlZiBkZXN0aW5hdGlvbklPU3VyZmFjZVJlZiA9IGRlc3RpbmF0aW9uU3Vy
ZmFjZS0+c3VyZmFjZSgpOwogICAgIElPU3VyZmFjZUFjY2VsZXJhdG9yQ29tcGxldGlvbiBjb21w
bGV0aW9uOwogICAgIGNvbXBsZXRpb24uY29tcGxldGlvblJlZkNvbiA9IG5ldyBzdGQ6OmZ1bmN0
aW9uPHZvaWQoc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OklPU3VyZmFjZT4pPiAoV1RGTW92ZShj
YWxsYmFjaykpOwogICAgIGNvbXBsZXRpb24uY29tcGxldGlvblJlZkNvbjIgPSBkZXN0aW5hdGlv
blN1cmZhY2UucmVsZWFzZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21h
Yy9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMv
UmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW0KaW5kZXggZDI5MzRiZTc2YjY3NDgyNjVmOTVhZWVi
NmNkZThhNWY4NTY4ZjgyMC4uMjViM2ZiNTQ2NzUxZDQ3N2RkNDUzMGY4ZDU5OTBmZmYzMGQxMzll
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllckJhY2tp
bmdTdG9yZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyQmFj
a2luZ1N0b3JlLm1tCkBAIC0xMTksNyArMTE5LDEwIEBAIHZvaWQgUmVtb3RlTGF5ZXJCYWNraW5n
U3RvcmU6OmVuY29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIAogI2lm
IFVTRShJT1NVUkZBQ0UpCiAgICAgaWYgKG1fYWNjZWxlcmF0ZXNEcmF3aW5nKSB7Ci0gICAgICAg
IGVuY29kZXIgPDwgbV9mcm9udEJ1ZmZlci5zdXJmYWNlLT5jcmVhdGVTZW5kUmlnaHQoKTsKKyAg
ICAgICAgaWYgKG1fZnJvbnRCdWZmZXIuc3VyZmFjZSkKKyAgICAgICAgICAgIGVuY29kZXIgPDwg
bV9mcm9udEJ1ZmZlci5zdXJmYWNlLT5jcmVhdGVTZW5kUmlnaHQoKTsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgZW5jb2RlciA8PCBXZWJDb3JlOjpNYWNoU2VuZFJpZ2h0KCk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAjZW5kaWYKQEAgLTI2MiwxMyArMjY1LDE1IEBAIGJvb2wgUmVtb3Rl
TGF5ZXJCYWNraW5nU3RvcmU6OmRpc3BsYXkoKQogICAgICAgICBpZiAobV9iYWNrQnVmZmVyLnN1
cmZhY2UgJiYgIXdpbGxQYWludEVudGlyZUJhY2tpbmdTdG9yZSkKICAgICAgICAgICAgIGJhY2tJ
bWFnZSA9IG1fYmFja0J1ZmZlci5zdXJmYWNlLT5jcmVhdGVJbWFnZSgpOwogCi0gICAgICAgIEdy
YXBoaWNzQ29udGV4dCYgY29udGV4dCA9IG1fZnJvbnRCdWZmZXIuc3VyZmFjZS0+ZW5zdXJlR3Jh
cGhpY3NDb250ZXh0KCk7CisgICAgICAgIGlmIChtX2Zyb250QnVmZmVyLnN1cmZhY2UpIHsKKyAg
ICAgICAgICAgIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCA9IG1fZnJvbnRCdWZmZXIuc3VyZmFj
ZS0+ZW5zdXJlR3JhcGhpY3NDb250ZXh0KCk7CiAKLSAgICAgICAgY29udGV4dC5zY2FsZShGbG9h
dFNpemUoMSwgLTEpKTsKLSAgICAgICAgY29udGV4dC50cmFuc2xhdGUoMCwgLWV4cGFuZGVkU2Nh
bGVkU2l6ZS5oZWlnaHQoKSk7Ci0gICAgICAgIGRyYXdJbkNvbnRleHQoY29udGV4dCwgYmFja0lt
YWdlLmdldCgpKTsKKyAgICAgICAgICAgIGNvbnRleHQuc2NhbGUoRmxvYXRTaXplKDEsIC0xKSk7
CisgICAgICAgICAgICBjb250ZXh0LnRyYW5zbGF0ZSgwLCAtZXhwYW5kZWRTY2FsZWRTaXplLmhl
aWdodCgpKTsKKyAgICAgICAgICAgIGRyYXdJbkNvbnRleHQoY29udGV4dCwgYmFja0ltYWdlLmdl
dCgpKTsKIAotICAgICAgICBtX2Zyb250QnVmZmVyLnN1cmZhY2UtPnJlbGVhc2VHcmFwaGljc0Nv
bnRleHQoKTsKKyAgICAgICAgICAgIG1fZnJvbnRCdWZmZXIuc3VyZmFjZS0+cmVsZWFzZUdyYXBo
aWNzQ29udGV4dCgpOworICAgICAgICB9CiAgICAgfSBlbHNlCiAjZW5kaWYKICAgICB7CkBAIC0z
OTksNyArNDA0LDcgQEAgdm9pZCBSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6YXBwbHlCYWNraW5n
U3RvcmVUb0xheWVyKENBTGF5ZXIgKmxheWVyKQogICAgIGxheWVyLmNvbnRlbnRzT3BhcXVlID0g
bV9pc09wYXF1ZTsKIAogI2lmIFVTRShJT1NVUkZBQ0UpCi0gICAgaWYgKGFjY2VsZXJhdGVzRHJh
d2luZygpKSB7CisgICAgaWYgKGFjY2VsZXJhdGVzRHJhd2luZygpICYmIG1fZnJvbnRCdWZmZXIu
c3VyZmFjZSkgewogICAgICAgICBsYXllci5jb250ZW50cyA9IG1fZnJvbnRCdWZmZXIuc3VyZmFj
ZS0+YXNMYXllckNvbnRlbnRzKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDBiMTdiY2M0
NmQ2NjJjYWEzMzZjNjdjMjMwNzE4YmU1YzE3YzIzMTYuLjQyNjYzMWVmZmM2ZjI4M2Q2ODE3MGRj
N2ZjNWZjY2ExYjg5OGQyMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Lm1tCkBAIC0xMzg4LDEzICsxMzg4LDE2IEBAIC0gKFBhc3NSZWZQdHI8
V2ViS2l0OjpWaWV3U25hcHNob3Q+KV90YWtlVmlld1NuYXBzaG90CiAjaWYgVVNFKElPU1VSRkFD
RSkKICAgICBXZWJDb3JlOjpJT1N1cmZhY2U6OkZvcm1hdCBzbmFwc2hvdEZvcm1hdCA9IFdlYkNv
cmU6OnNjcmVlblN1cHBvcnRzRXh0ZW5kZWRDb2xvcigpID8gV2ViQ29yZTo6SU9TdXJmYWNlOjpG
b3JtYXQ6OlJHQjEwIDogV2ViQ29yZTo6SU9TdXJmYWNlOjpGb3JtYXQ6OlJHQkE7CiAgICAgYXV0
byBzdXJmYWNlID0gV2ViQ29yZTo6SU9TdXJmYWNlOjpjcmVhdGUoV2ViQ29yZTo6ZXhwYW5kZWRJ
bnRTaXplKHNuYXBzaG90U2l6ZSksIFdlYkNvcmU6OnNSR0JDb2xvclNwYWNlUmVmKCksIHNuYXBz
aG90Rm9ybWF0KTsKKyAgICBpZiAoIXN1cmZhY2UpCisgICAgICAgIHJldHVybiBudWxscHRyOwog
ICAgIENBUmVuZGVyU2VydmVyUmVuZGVyTGF5ZXJXaXRoVHJhbnNmb3JtKE1BQ0hfUE9SVF9OVUxM
LCBzZWxmLmxheWVyLmNvbnRleHQuY29udGV4dElkLCByZWludGVycHJldF9jYXN0PHVpbnQ2NF90
PihzZWxmLmxheWVyKSwgc3VyZmFjZS0+c3VyZmFjZSgpLCAwLCAwLCAmdHJhbnNmb3JtKTsKIAog
ICAgIFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0IGNvbXByZXNzZWRGb3JtYXQgPSBXZWJDb3Jl
OjpJT1N1cmZhY2U6OkZvcm1hdDo6WVVWNDIyOwogICAgIGlmIChXZWJDb3JlOjpJT1N1cmZhY2U6
OmFsbG93Q29udmVyc2lvbkZyb21Gb3JtYXRUb0Zvcm1hdChzbmFwc2hvdEZvcm1hdCwgY29tcHJl
c3NlZEZvcm1hdCkpIHsKICAgICAgICAgUmVmUHRyPFdlYktpdDo6Vmlld1NuYXBzaG90PiB2aWV3
U25hcHNob3QgPSBXZWJLaXQ6OlZpZXdTbmFwc2hvdDo6Y3JlYXRlKG51bGxwdHIpOwogICAgICAg
ICBXZWJDb3JlOjpJT1N1cmZhY2U6OmNvbnZlcnRUb0Zvcm1hdChXVEZNb3ZlKHN1cmZhY2UpLCBX
ZWJDb3JlOjpJT1N1cmZhY2U6OkZvcm1hdDo6WVVWNDIyLCBbdmlld1NuYXBzaG90XShzdGQ6OnVu
aXF1ZV9wdHI8V2ViQ29yZTo6SU9TdXJmYWNlPiBjb252ZXJ0ZWRTdXJmYWNlKSB7Ci0gICAgICAg
ICAgICB2aWV3U25hcHNob3QtPnNldFN1cmZhY2UoV1RGTW92ZShjb252ZXJ0ZWRTdXJmYWNlKSk7
CisgICAgICAgICAgICBpZiAoY29udmVydGVkU3VyZmFjZSkKKyAgICAgICAgICAgICAgICB2aWV3
U25hcHNob3QtPnNldFN1cmZhY2UoV1RGTW92ZShjb252ZXJ0ZWRTdXJmYWNlKSk7CiAgICAgICAg
IH0pOwogCiAgICAgICAgIHJldHVybiB2aWV3U25hcHNob3Q7CkBAIC00MjM1LDYgKzQyMzgsMTAg
QEAgLSAodm9pZClfc25hcHNob3RSZWN0OihDR1JlY3QpcmVjdEluVmlld0Nvb3JkaW5hdGVzIGlu
dG9JbWFnZU9mV2lkdGg6KENHRmxvYXQpaW0KICAgICAvLyBJZiB3ZSBhcmUgcGFyZW50ZWQgYW5k
IHRodXMgd29uJ3QgaW5jdXIgYSBzaWduaWZpY2FudCBwZW5hbHR5IGZyb20gcGFnaW5nIGluIHRp
bGVzLCBzbmFwc2hvdCB0aGUgdmlldyBoaWVyYXJjaHkgZGlyZWN0bHkuCiAgICAgaWYgKENBRGlz
cGxheSAqZGlzcGxheSA9IHNlbGYud2luZG93LnNjcmVlbi5fZGlzcGxheSkgewogICAgICAgICBh
dXRvIHN1cmZhY2UgPSBXZWJDb3JlOjpJT1N1cmZhY2U6OmNyZWF0ZShXZWJDb3JlOjpleHBhbmRl
ZEludFNpemUoV2ViQ29yZTo6RmxvYXRTaXplKGltYWdlU2l6ZSkpLCBXZWJDb3JlOjpzUkdCQ29s
b3JTcGFjZVJlZigpKTsKKyAgICAgICAgaWYgKCFzdXJmYWNlKSB7CisgICAgICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcihudWxscHRyKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQog
ICAgICAgICBDR0Zsb2F0IGltYWdlU2NhbGVJblZpZXdDb29yZGluYXRlcyA9IGltYWdlV2lkdGgg
LyByZWN0SW5WaWV3Q29vcmRpbmF0ZXMuc2l6ZS53aWR0aDsKICAgICAgICAgQ0FUcmFuc2Zvcm0z
RCB0cmFuc2Zvcm0gPSBDQVRyYW5zZm9ybTNETWFrZVNjYWxlKGltYWdlU2NhbGVJblZpZXdDb29y
ZGluYXRlcywgaW1hZ2VTY2FsZUluVmlld0Nvb3JkaW5hdGVzLCAxKTsKICAgICAgICAgdHJhbnNm
b3JtID0gQ0FUcmFuc2Zvcm0zRFRyYW5zbGF0ZSh0cmFuc2Zvcm0sIC1yZWN0SW5WaWV3Q29vcmRp
bmF0ZXMub3JpZ2luLngsIC1yZWN0SW5WaWV3Q29vcmRpbmF0ZXMub3JpZ2luLnksIDApOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>284377</attachid>
            <date>2016-07-22 15:13:54 -0700</date>
            <delta_ts>2016-07-22 18:57:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160006-20160722151252.patch</filename>
            <type>text/plain</type>
            <size>13271</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAzNTUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWRmNDczMDFjZGJmNTBl
ODE2ZDcwYzY4MmM5YzMxZDJjZmI1NTQ5Yi4uNWNhYTNiMDY3ZWUyOWU1ODdkNTdhYzI5MWE3YjNj
NWZjMGQ3NDNlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE2LTA3LTIxICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgSGFuZGxlIGNhc2VzIHdoZW4g
SU9TdXJmYWNlIGluaXRpYWxpemF0aW9uIGZhaWxzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwMDA2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8y
NzQ5NTEwMj4KKworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uIGFuZCBTaW1vbiBGcmFz
ZXIuCisKKyAgICAgICAgVGhpcyBpcyBhbiBhZGRpdGlvbmFsIGZpeCB0byByMjAzNTE0IHRvIGNo
ZWNrIGlmIElPU3VyZmFjZSBpbml0aWFsaXphdGlvbiB3YXMgc3VjY2Vzc2Z1bC4KKworICAgICAg
ICBVbmFibGUgdG8gdGVzdC4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdl
QnVmZmVyQ0cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVy
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UuaDogTWVyZ2Ug
MiBjJ3RvcnMuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLm1t
OiBSZW1vdmUgcmVkdW5kYW50IElPU3VyZmFjZTo6Y3JlYXRlKCkgY29kZS4gIAorICAgICAgICAo
V2ViQ29yZTo6SU9TdXJmYWNlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SU9TdXJmYWNl
OjpjcmVhdGVGcm9tSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6SU9TdXJmYWNlOjpJT1N1cmZh
Y2UpOgorICAgICAgICAoV2ViQ29yZTo6SU9TdXJmYWNlOjpjb252ZXJ0VG9Gb3JtYXQpOgorCiAy
MDE2LTA3LTIxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgUGFy
YW1ldGVyIHRvIERvY3VtZW50LmNyZWF0ZUV2ZW50KCkgc2hvdWxkIGJlIG1hbmRhdG9yeQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCmluZGV4IDNlY2ZhOTBlOTQ1MDBkNmVkMjIwMTM0MWNmMjk0YmFkZmM0MTdkYzUuLmIzMzQ5
Yjk1MzdiYmU0YzdlZjIzMjljMTFjYTRjNWUyZTUzODQ0NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyMyBAQAorMjAxNi0wNy0yMSAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgorCisg
ICAgICAgIEhhbmRsZSBjYXNlcyB3aGVuIElPU3VyZmFjZSBpbml0aWFsaXphdGlvbiBmYWlscy4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MDAwNgor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjc0OTUxMDI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
VGltIEhvcnRvbiBhbmQgU2ltb24gRnJhc2VyLgorCisgICAgICAgIFRoaXMgaXMgYW4gYWRkaXRp
b25hbCBmaXggdG8gcjIwMzUxNCB0byBjaGVjayBpZiBJT1N1cmZhY2UgaW5pdGlhbGl6YXRpb24g
d2FzIHN1Y2Nlc3NmdWwuCisKKyAgICAgICAgVW5hYmxlIHRvIHRlc3QuCisKKyAgICAgICAgKiBT
aGFyZWQvbWFjL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLm1tOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
TGF5ZXJCYWNraW5nU3RvcmU6OmRpc3BsYXkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXll
ckJhY2tpbmdTdG9yZTo6YXBwbHlCYWNraW5nU3RvcmVUb0xheWVyKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF90YWtl
Vmlld1NuYXBzaG90XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfc25hcHNob3RSZWN0OmludG9J
bWFnZU9mV2lkdGg6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisKIDIwMTYtMDctMjEgIE15bGVzIEMu
IE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgc3VwcG9y
dCBmb3IgZGVwcmVjYXRlZCBTUEkgaW5saW5lTWVkaWFQbGF5YmFja1JlcXVpcmVzUGxheXNJbmxp
bmVBdHRyaWJ1dGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NnL0ltYWdlQnVmZmVyQ0cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvSW1hZ2VCdWZmZXJDRy5jcHAKaW5kZXggZjUzOTcxMDJhNmEwYzk5NDJlOWYzM2U1ZjlhNjE4
MjAwNjM4YTUzMi4uNWUzNGJjMGFiNjc3MWEyYTJhMDgxZDc4MmFjZTdhZWFiMDIwM2I1NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJD
Ry5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZm
ZXJDRy5jcHAKQEAgLTE1NCwxMyArMTU0LDE0IEBAIEltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihj
b25zdCBGbG9hdFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ0dDb2xvclNwCiAj
aWYgVVNFKElPU1VSRkFDRV9DQU5WQVNfQkFDS0lOR19TVE9SRSkKICAgICAgICAgRmxvYXRTaXpl
IHVzZXJCb3VuZHMgPSBzaXplRm9yRGVzdGluYXRpb25TaXplKEZsb2F0U2l6ZSh3aWR0aC51bnNh
ZmVHZXQoKSwgaGVpZ2h0LnVuc2FmZUdldCgpKSk7CiAgICAgICAgIG1fZGF0YS5zdXJmYWNlID0g
SU9TdXJmYWNlOjpjcmVhdGUobV9kYXRhLmJhY2tpbmdTdG9yZVNpemUsIEludFNpemUodXNlckJv
dW5kcyksIGNvbG9yU3BhY2UpOwotICAgICAgICBjZ0NvbnRleHQgPSBtX2RhdGEuc3VyZmFjZS0+
ZW5zdXJlUGxhdGZvcm1Db250ZXh0KCk7Ci0gICAgICAgIGlmIChjZ0NvbnRleHQpCi0gICAgICAg
ICAgICBDR0NvbnRleHRDbGVhclJlY3QoY2dDb250ZXh0LmdldCgpLCBGbG9hdFJlY3QoRmxvYXRQ
b2ludCgpLCB1c2VyQm91bmRzKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIG1fZGF0YS5z
dXJmYWNlID0gbnVsbHB0cjsKKyAgICAgICAgaWYgKG1fZGF0YS5zdXJmYWNlKSB7CisgICAgICAg
ICAgICBjZ0NvbnRleHQgPSBtX2RhdGEuc3VyZmFjZS0+ZW5zdXJlUGxhdGZvcm1Db250ZXh0KCk7
CisgICAgICAgICAgICBpZiAoY2dDb250ZXh0KQorICAgICAgICAgICAgICAgIENHQ29udGV4dENs
ZWFyUmVjdChjZ0NvbnRleHQuZ2V0KCksIEZsb2F0UmVjdChGbG9hdFBvaW50KCksIHVzZXJCb3Vu
ZHMpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBtX2RhdGEuc3VyZmFjZSA9
IG51bGxwdHI7CisgICAgICAgIH0KICNlbmRpZgotCiAgICAgICAgIGlmICghY2dDb250ZXh0KQog
ICAgICAgICAgICAgYWNjZWxlcmF0ZVJlbmRlcmluZyA9IGZhbHNlOyAvLyBJZiBhbGxvY2F0aW9u
IGZhaWxzLCBmYWxsIGJhY2sgdG8gbm9uLWFjY2VsZXJhdGVkIHBhdGguCiAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UuaAppbmRl
eCAwMmVkMTcxYmU5NDVmNjE3NGU1NDFiM2Q4MjlkMGQ0YjNkNzJlY2E2Li5mYTMyNjNmZmRlYjE1
YjBkYjJhZWUxMTBiYzQ4ZmQ0ZjE1NjVhZjQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UuaApAQCAtMTAwLDggKzEwMCw3IEBAIHB1
YmxpYzoKICNlbmRpZgogCiBwcml2YXRlOgotICAgIElPU3VyZmFjZShJbnRTaXplLCBDR0NvbG9y
U3BhY2VSZWYsIEZvcm1hdCk7Ci0gICAgSU9TdXJmYWNlKEludFNpemUsIEludFNpemUgY29udGV4
dFNpemUsIENHQ29sb3JTcGFjZVJlZiwgRm9ybWF0KTsKKyAgICBJT1N1cmZhY2UoSW50U2l6ZSwg
SW50U2l6ZSBjb250ZXh0U2l6ZSwgQ0dDb2xvclNwYWNlUmVmLCBGb3JtYXQsIGJvb2wmIHN1Y2Nl
c3MpOwogICAgIElPU3VyZmFjZShJT1N1cmZhY2VSZWYsIENHQ29sb3JTcGFjZVJlZik7CiAKICAg
ICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4gc3VyZmFjZUZyb21Qb29sKEludFNp
emUsIEludFNpemUgY29udGV4dFNpemUsIENHQ29sb3JTcGFjZVJlZiwgRm9ybWF0KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5tbQpp
bmRleCA1ZmJmMzBmZGEwNzdjMjRmYjAwZTMyNDUyY2IxOTliYzM1MDYwZDI1Li4xYjRiNjY4MTM4
MWYzOGQ0OWQ5ZmIyMTJmMGE1NGU4YzE0MDEzOWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLm1tCkBAIC01NywxNyArNTcsMTgg
QEAgaW5saW5lIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJT1N1cmZhY2U+IFdlYkNvcmU6OklP
U3VyZmFjZTo6c3VyZmFjZUZyb21Qb29sKEkKIAogc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OklP
U3VyZmFjZT4gV2ViQ29yZTo6SU9TdXJmYWNlOjpjcmVhdGUoSW50U2l6ZSBzaXplLCBDR0NvbG9y
U3BhY2VSZWYgY29sb3JTcGFjZSwgRm9ybWF0IHBpeGVsRm9ybWF0KQogewotICAgIGlmIChhdXRv
IGNhY2hlZFN1cmZhY2UgPSBzdXJmYWNlRnJvbVBvb2woc2l6ZSwgc2l6ZSwgY29sb3JTcGFjZSwg
cGl4ZWxGb3JtYXQpKQotICAgICAgICByZXR1cm4gY2FjaGVkU3VyZmFjZTsKLQotICAgIHJldHVy
biBzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPihuZXcgSU9TdXJmYWNlKHNpemUsIGNvbG9yU3Bh
Y2UsIHBpeGVsRm9ybWF0KSk7CisgICAgcmV0dXJuIElPU3VyZmFjZTo6Y3JlYXRlKHNpemUsIHNp
emUsIGNvbG9yU3BhY2UsIHBpeGVsRm9ybWF0KTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPFdlYkNv
cmU6OklPU3VyZmFjZT4gV2ViQ29yZTo6SU9TdXJmYWNlOjpjcmVhdGUoSW50U2l6ZSBzaXplLCBJ
bnRTaXplIGNvbnRleHRTaXplLCBDR0NvbG9yU3BhY2VSZWYgY29sb3JTcGFjZSwgRm9ybWF0IHBp
eGVsRm9ybWF0KQogewogICAgIGlmIChhdXRvIGNhY2hlZFN1cmZhY2UgPSBzdXJmYWNlRnJvbVBv
b2woc2l6ZSwgY29udGV4dFNpemUsIGNvbG9yU3BhY2UsIHBpeGVsRm9ybWF0KSkKICAgICAgICAg
cmV0dXJuIGNhY2hlZFN1cmZhY2U7Ci0gICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZh
Y2U+KG5ldyBJT1N1cmZhY2Uoc2l6ZSwgY29udGV4dFNpemUsIGNvbG9yU3BhY2UsIHBpeGVsRm9y
bWF0KSk7CisgICAgYm9vbCBzdWNjZXNzID0gZmFsc2U7CisgICAgYXV0byBzdXJmYWNlID0gc3Rk
Ojp1bmlxdWVfcHRyPElPU3VyZmFjZT4obmV3IElPU3VyZmFjZShzaXplLCBjb250ZXh0U2l6ZSwg
Y29sb3JTcGFjZSwgcGl4ZWxGb3JtYXQsIHN1Y2Nlc3MpKTsKKyAgICBpZiAoIXN1Y2Nlc3MpCisg
ICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBzdXJmYWNlOwogfQogCiBzdGQ6OnVu
aXF1ZV9wdHI8V2ViQ29yZTo6SU9TdXJmYWNlPiBXZWJDb3JlOjpJT1N1cmZhY2U6OmNyZWF0ZUZy
b21TZW5kUmlnaHQoY29uc3QgTWFjaFNlbmRSaWdodCYgc2VuZFJpZ2h0LCBDR0NvbG9yU3BhY2VS
ZWYgY29sb3JTcGFjZSkKQEAgLTkwLDEwICs5MSwxMSBAQCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29y
ZTo6SU9TdXJmYWNlPiBXZWJDb3JlOjpJT1N1cmZhY2U6OmNyZWF0ZUZyb21JbWFnZShDR0ltYWdl
UgogICAgIHNpemVfdCBoZWlnaHQgPSBDR0ltYWdlR2V0SGVpZ2h0KGltYWdlKTsKIAogICAgIGF1
dG8gc3VyZmFjZSA9IElPU3VyZmFjZTo6Y3JlYXRlKEludFNpemUod2lkdGgsIGhlaWdodCksIHNS
R0JDb2xvclNwYWNlUmVmKCkpOworICAgIGlmICghc3VyZmFjZSkKKyAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAgICAgYXV0byBzdXJmYWNlQ29udGV4dCA9IHN1cmZhY2UtPmVuc3VyZVBsYXRmb3Jt
Q29udGV4dCgpOwogICAgIENHQ29udGV4dERyYXdJbWFnZShzdXJmYWNlQ29udGV4dCwgQ0dSZWN0
TWFrZSgwLCAwLCB3aWR0aCwgaGVpZ2h0KSwgaW1hZ2UpOwogICAgIENHQ29udGV4dEZsdXNoKHN1
cmZhY2VDb250ZXh0KTsKLQogICAgIHJldHVybiBzdXJmYWNlOwogfQogCkBAIC0xNzksMTEgKzE4
MSwxNSBAQCBzdGF0aWMgTlNEaWN0aW9uYXJ5ICpvcHRpb25zRm9yMzJCaXRTdXJmYWNlKEludFNp
emUgc2l6ZSwgdW5zaWduZWQgcGl4ZWxGb3JtYXQpCiAKIH0KIAotV2ViQ29yZTo6SU9TdXJmYWNl
OjpJT1N1cmZhY2UoSW50U2l6ZSBzaXplLCBDR0NvbG9yU3BhY2VSZWYgY29sb3JTcGFjZSwgRm9y
bWF0IGZvcm1hdCkKK1dlYkNvcmU6OklPU3VyZmFjZTo6SU9TdXJmYWNlKEludFNpemUgc2l6ZSwg
SW50U2l6ZSBjb250ZXh0U2l6ZSwgQ0dDb2xvclNwYWNlUmVmIGNvbG9yU3BhY2UsIEZvcm1hdCBm
b3JtYXQsIGJvb2wmIHN1Y2Nlc3MpCiAgICAgOiBtX2NvbG9yU3BhY2UoY29sb3JTcGFjZSkKICAg
ICAsIG1fc2l6ZShzaXplKQotICAgICwgbV9jb250ZXh0U2l6ZShzaXplKQorICAgICwgbV9jb250
ZXh0U2l6ZShjb250ZXh0U2l6ZSkKIHsKKyAgICBBU1NFUlQoIXN1Y2Nlc3MpOworICAgIEFTU0VS
VChjb250ZXh0U2l6ZS53aWR0aCgpIDw9IHNpemUud2lkdGgoKSk7CisgICAgQVNTRVJUKGNvbnRl
eHRTaXplLmhlaWdodCgpIDw9IHNpemUuaGVpZ2h0KCkpOworCiAgICAgTlNEaWN0aW9uYXJ5ICpv
cHRpb25zOwogCiAgICAgc3dpdGNoIChmb3JtYXQpIHsKQEAgLTIwMCwxOSArMjA2LDEyIEBAIFdl
YkNvcmU6OklPU3VyZmFjZTo6SU9TdXJmYWNlKEludFNpemUgc2l6ZSwgQ0dDb2xvclNwYWNlUmVm
IGNvbG9yU3BhY2UsIEZvcm1hdCBmCiAgICAgICAgIG9wdGlvbnMgPSBvcHRpb25zRm9yQmlwbGFu
YXJTdXJmYWNlKHNpemUsICc0MjJmJywgMSwgMSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KLSAg
ICAKICAgICBtX3N1cmZhY2UgPSBhZG9wdENGKElPU3VyZmFjZUNyZWF0ZSgoQ0ZEaWN0aW9uYXJ5
UmVmKW9wdGlvbnMpKTsKLSAgICBtX3RvdGFsQnl0ZXMgPSBJT1N1cmZhY2VHZXRBbGxvY1NpemUo
bV9zdXJmYWNlLmdldCgpKTsKLSAgICBpZiAoIW1fc3VyZmFjZSkKLSAgICAgICAgTlNMb2coQCJT
dXJmYWNlIGNyZWF0aW9uIGZhaWxlZCBmb3Igb3B0aW9ucyAlQCIsIG9wdGlvbnMpOwotfQotCi1X
ZWJDb3JlOjpJT1N1cmZhY2U6OklPU3VyZmFjZShJbnRTaXplIHNpemUsIEludFNpemUgY29udGV4
dFNpemUsIENHQ29sb3JTcGFjZVJlZiBjb2xvclNwYWNlLCBGb3JtYXQgcGl4ZWxGb3JtYXQpCi0g
ICAgOiBJT1N1cmZhY2Uoc2l6ZSwgY29sb3JTcGFjZSwgcGl4ZWxGb3JtYXQpCi17Ci0gICAgQVNT
RVJUKGNvbnRleHRTaXplLndpZHRoKCkgPD0gc2l6ZS53aWR0aCgpKTsKLSAgICBBU1NFUlQoY29u
dGV4dFNpemUuaGVpZ2h0KCkgPD0gc2l6ZS5oZWlnaHQoKSk7Ci0gICAgbV9jb250ZXh0U2l6ZSA9
IGNvbnRleHRTaXplOworICAgIHN1Y2Nlc3MgPSAhIW1fc3VyZmFjZTsKKyAgICBpZiAoc3VjY2Vz
cykKKyAgICAgICAgbV90b3RhbEJ5dGVzID0gSU9TdXJmYWNlR2V0QWxsb2NTaXplKG1fc3VyZmFj
ZS5nZXQoKSk7CisgICAgZWxzZQorICAgICAgICBMT0dfQUxXQVlTX0VSUk9SKHRydWUsICJTdXJm
YWNlIGNyZWF0aW9uIGZhaWxlZCBmb3Igc2l6ZTogKCVkICVkKSBhbmQgZm9ybWF0OiAoJWQpIiwg
c2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpLCBmb3JtYXQpOwogfQogCiBXZWJDb3JlOjpJT1N1
cmZhY2U6OklPU3VyZmFjZShJT1N1cmZhY2VSZWYgc3VyZmFjZSwgQ0dDb2xvclNwYWNlUmVmIGNv
bG9yU3BhY2UpCkBAIC0zOTYsOCArMzk1LDEyIEBAIHZvaWQgV2ViQ29yZTo6SU9TdXJmYWNlOjpj
b252ZXJ0VG9Gb3JtYXQoc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OklPU3VyZmFjZT4mJiBpCiAg
ICAgfQogCiAgICAgYXV0byBkZXN0aW5hdGlvblN1cmZhY2UgPSBJT1N1cmZhY2U6OmNyZWF0ZShp
blN1cmZhY2UtPnNpemUoKSwgaW5TdXJmYWNlLT5jb2xvclNwYWNlKCksIGZvcm1hdCk7Ci0gICAg
SU9TdXJmYWNlUmVmIGRlc3RpbmF0aW9uSU9TdXJmYWNlUmVmID0gZGVzdGluYXRpb25TdXJmYWNl
LT5zdXJmYWNlKCk7CisgICAgaWYgKCFkZXN0aW5hdGlvblN1cmZhY2UpIHsKKyAgICAgICAgY2Fs
bGJhY2sobnVsbHB0cik7CisgICAgICAgIHJldHVybjsKKyAgICB9CiAKKyAgICBJT1N1cmZhY2VS
ZWYgZGVzdGluYXRpb25JT1N1cmZhY2VSZWYgPSBkZXN0aW5hdGlvblN1cmZhY2UtPnN1cmZhY2Uo
KTsKICAgICBJT1N1cmZhY2VBY2NlbGVyYXRvckNvbXBsZXRpb24gY29tcGxldGlvbjsKICAgICBj
b21wbGV0aW9uLmNvbXBsZXRpb25SZWZDb24gPSBuZXcgc3RkOjpmdW5jdGlvbjx2b2lkKHN0ZDo6
dW5pcXVlX3B0cjxXZWJDb3JlOjpJT1N1cmZhY2U+KT4gKFdURk1vdmUoY2FsbGJhY2spKTsKICAg
ICBjb21wbGV0aW9uLmNvbXBsZXRpb25SZWZDb24yID0gZGVzdGluYXRpb25TdXJmYWNlLnJlbGVh
c2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJC
YWNraW5nU3RvcmUubW0gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyQmFj
a2luZ1N0b3JlLm1tCmluZGV4IGQyOTM0YmU3NmI2NzQ4MjY1Zjk1YWVlYjZjZGU4YTVmODU2OGY4
MjAuLmVlMTkwZTM1YWZlYmU5ODc5ZTIzYzhmZjZkYzZjYTAyYjk1NGNjZmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW0KKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5tbQpA
QCAtMTE5LDcgKzExOSwxMCBAQCB2b2lkIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjplbmNvZGUo
SVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAKICNpZiBVU0UoSU9TVVJGQUNF
KQogICAgIGlmIChtX2FjY2VsZXJhdGVzRHJhd2luZykgewotICAgICAgICBlbmNvZGVyIDw8IG1f
ZnJvbnRCdWZmZXIuc3VyZmFjZS0+Y3JlYXRlU2VuZFJpZ2h0KCk7CisgICAgICAgIGlmIChtX2Zy
b250QnVmZmVyLnN1cmZhY2UpCisgICAgICAgICAgICBlbmNvZGVyIDw8IG1fZnJvbnRCdWZmZXIu
c3VyZmFjZS0+Y3JlYXRlU2VuZFJpZ2h0KCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGVu
Y29kZXIgPDwgV2ViQ29yZTo6TWFjaFNlbmRSaWdodCgpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogI2VuZGlmCkBAIC0yNjIsMTMgKzI2NSwxNSBAQCBib29sIFJlbW90ZUxheWVyQmFja2luZ1N0
b3JlOjpkaXNwbGF5KCkKICAgICAgICAgaWYgKG1fYmFja0J1ZmZlci5zdXJmYWNlICYmICF3aWxs
UGFpbnRFbnRpcmVCYWNraW5nU3RvcmUpCiAgICAgICAgICAgICBiYWNrSW1hZ2UgPSBtX2JhY2tC
dWZmZXIuc3VyZmFjZS0+Y3JlYXRlSW1hZ2UoKTsKIAotICAgICAgICBHcmFwaGljc0NvbnRleHQm
IGNvbnRleHQgPSBtX2Zyb250QnVmZmVyLnN1cmZhY2UtPmVuc3VyZUdyYXBoaWNzQ29udGV4dCgp
OworICAgICAgICBpZiAobV9mcm9udEJ1ZmZlci5zdXJmYWNlKSB7CisgICAgICAgICAgICBHcmFw
aGljc0NvbnRleHQmIGNvbnRleHQgPSBtX2Zyb250QnVmZmVyLnN1cmZhY2UtPmVuc3VyZUdyYXBo
aWNzQ29udGV4dCgpOwogCi0gICAgICAgIGNvbnRleHQuc2NhbGUoRmxvYXRTaXplKDEsIC0xKSk7
Ci0gICAgICAgIGNvbnRleHQudHJhbnNsYXRlKDAsIC1leHBhbmRlZFNjYWxlZFNpemUuaGVpZ2h0
KCkpOwotICAgICAgICBkcmF3SW5Db250ZXh0KGNvbnRleHQsIGJhY2tJbWFnZS5nZXQoKSk7Cisg
ICAgICAgICAgICBjb250ZXh0LnNjYWxlKEZsb2F0U2l6ZSgxLCAtMSkpOworICAgICAgICAgICAg
Y29udGV4dC50cmFuc2xhdGUoMCwgLWV4cGFuZGVkU2NhbGVkU2l6ZS5oZWlnaHQoKSk7CisgICAg
ICAgICAgICBkcmF3SW5Db250ZXh0KGNvbnRleHQsIGJhY2tJbWFnZS5nZXQoKSk7CiAKLSAgICAg
ICAgbV9mcm9udEJ1ZmZlci5zdXJmYWNlLT5yZWxlYXNlR3JhcGhpY3NDb250ZXh0KCk7CisgICAg
ICAgICAgICBtX2Zyb250QnVmZmVyLnN1cmZhY2UtPnJlbGVhc2VHcmFwaGljc0NvbnRleHQoKTsK
KyAgICAgICAgfQogICAgIH0gZWxzZQogI2VuZGlmCiAgICAgewpAQCAtNDAwLDcgKzQwNSw3IEBA
IHZvaWQgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OmFwcGx5QmFja2luZ1N0b3JlVG9MYXllcihD
QUxheWVyICpsYXllcikKIAogI2lmIFVTRShJT1NVUkZBQ0UpCiAgICAgaWYgKGFjY2VsZXJhdGVz
RHJhd2luZygpKSB7Ci0gICAgICAgIGxheWVyLmNvbnRlbnRzID0gbV9mcm9udEJ1ZmZlci5zdXJm
YWNlLT5hc0xheWVyQ29udGVudHMoKTsKKyAgICAgICAgbGF5ZXIuY29udGVudHMgPSBtX2Zyb250
QnVmZmVyLnN1cmZhY2UgPyBtX2Zyb250QnVmZmVyLnN1cmZhY2UtPmFzTGF5ZXJDb250ZW50cygp
IDogbmlsOwogICAgICAgICByZXR1cm47CiAgICAgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDBiMTdiY2M0NmQ2NjJj
YWEzMzZjNjdjMjMwNzE4YmU1YzE3YzIzMTYuLjQyNjYzMWVmZmM2ZjI4M2Q2ODE3MGRjN2ZjNWZj
Y2ExYjg5OGQyMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Lm1tCkBAIC0xMzg4LDEzICsxMzg4LDE2IEBAIC0gKFBhc3NSZWZQdHI8V2ViS2l0
OjpWaWV3U25hcHNob3Q+KV90YWtlVmlld1NuYXBzaG90CiAjaWYgVVNFKElPU1VSRkFDRSkKICAg
ICBXZWJDb3JlOjpJT1N1cmZhY2U6OkZvcm1hdCBzbmFwc2hvdEZvcm1hdCA9IFdlYkNvcmU6OnNj
cmVlblN1cHBvcnRzRXh0ZW5kZWRDb2xvcigpID8gV2ViQ29yZTo6SU9TdXJmYWNlOjpGb3JtYXQ6
OlJHQjEwIDogV2ViQ29yZTo6SU9TdXJmYWNlOjpGb3JtYXQ6OlJHQkE7CiAgICAgYXV0byBzdXJm
YWNlID0gV2ViQ29yZTo6SU9TdXJmYWNlOjpjcmVhdGUoV2ViQ29yZTo6ZXhwYW5kZWRJbnRTaXpl
KHNuYXBzaG90U2l6ZSksIFdlYkNvcmU6OnNSR0JDb2xvclNwYWNlUmVmKCksIHNuYXBzaG90Rm9y
bWF0KTsKKyAgICBpZiAoIXN1cmZhY2UpCisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIENB
UmVuZGVyU2VydmVyUmVuZGVyTGF5ZXJXaXRoVHJhbnNmb3JtKE1BQ0hfUE9SVF9OVUxMLCBzZWxm
LmxheWVyLmNvbnRleHQuY29udGV4dElkLCByZWludGVycHJldF9jYXN0PHVpbnQ2NF90PihzZWxm
LmxheWVyKSwgc3VyZmFjZS0+c3VyZmFjZSgpLCAwLCAwLCAmdHJhbnNmb3JtKTsKIAogICAgIFdl
YkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0IGNvbXByZXNzZWRGb3JtYXQgPSBXZWJDb3JlOjpJT1N1
cmZhY2U6OkZvcm1hdDo6WVVWNDIyOwogICAgIGlmIChXZWJDb3JlOjpJT1N1cmZhY2U6OmFsbG93
Q29udmVyc2lvbkZyb21Gb3JtYXRUb0Zvcm1hdChzbmFwc2hvdEZvcm1hdCwgY29tcHJlc3NlZEZv
cm1hdCkpIHsKICAgICAgICAgUmVmUHRyPFdlYktpdDo6Vmlld1NuYXBzaG90PiB2aWV3U25hcHNo
b3QgPSBXZWJLaXQ6OlZpZXdTbmFwc2hvdDo6Y3JlYXRlKG51bGxwdHIpOwogICAgICAgICBXZWJD
b3JlOjpJT1N1cmZhY2U6OmNvbnZlcnRUb0Zvcm1hdChXVEZNb3ZlKHN1cmZhY2UpLCBXZWJDb3Jl
OjpJT1N1cmZhY2U6OkZvcm1hdDo6WVVWNDIyLCBbdmlld1NuYXBzaG90XShzdGQ6OnVuaXF1ZV9w
dHI8V2ViQ29yZTo6SU9TdXJmYWNlPiBjb252ZXJ0ZWRTdXJmYWNlKSB7Ci0gICAgICAgICAgICB2
aWV3U25hcHNob3QtPnNldFN1cmZhY2UoV1RGTW92ZShjb252ZXJ0ZWRTdXJmYWNlKSk7CisgICAg
ICAgICAgICBpZiAoY29udmVydGVkU3VyZmFjZSkKKyAgICAgICAgICAgICAgICB2aWV3U25hcHNo
b3QtPnNldFN1cmZhY2UoV1RGTW92ZShjb252ZXJ0ZWRTdXJmYWNlKSk7CiAgICAgICAgIH0pOwog
CiAgICAgICAgIHJldHVybiB2aWV3U25hcHNob3Q7CkBAIC00MjM1LDYgKzQyMzgsMTAgQEAgLSAo
dm9pZClfc25hcHNob3RSZWN0OihDR1JlY3QpcmVjdEluVmlld0Nvb3JkaW5hdGVzIGludG9JbWFn
ZU9mV2lkdGg6KENHRmxvYXQpaW0KICAgICAvLyBJZiB3ZSBhcmUgcGFyZW50ZWQgYW5kIHRodXMg
d29uJ3QgaW5jdXIgYSBzaWduaWZpY2FudCBwZW5hbHR5IGZyb20gcGFnaW5nIGluIHRpbGVzLCBz
bmFwc2hvdCB0aGUgdmlldyBoaWVyYXJjaHkgZGlyZWN0bHkuCiAgICAgaWYgKENBRGlzcGxheSAq
ZGlzcGxheSA9IHNlbGYud2luZG93LnNjcmVlbi5fZGlzcGxheSkgewogICAgICAgICBhdXRvIHN1
cmZhY2UgPSBXZWJDb3JlOjpJT1N1cmZhY2U6OmNyZWF0ZShXZWJDb3JlOjpleHBhbmRlZEludFNp
emUoV2ViQ29yZTo6RmxvYXRTaXplKGltYWdlU2l6ZSkpLCBXZWJDb3JlOjpzUkdCQ29sb3JTcGFj
ZVJlZigpKTsKKyAgICAgICAgaWYgKCFzdXJmYWNlKSB7CisgICAgICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihudWxscHRyKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQogICAgICAg
ICBDR0Zsb2F0IGltYWdlU2NhbGVJblZpZXdDb29yZGluYXRlcyA9IGltYWdlV2lkdGggLyByZWN0
SW5WaWV3Q29vcmRpbmF0ZXMuc2l6ZS53aWR0aDsKICAgICAgICAgQ0FUcmFuc2Zvcm0zRCB0cmFu
c2Zvcm0gPSBDQVRyYW5zZm9ybTNETWFrZVNjYWxlKGltYWdlU2NhbGVJblZpZXdDb29yZGluYXRl
cywgaW1hZ2VTY2FsZUluVmlld0Nvb3JkaW5hdGVzLCAxKTsKICAgICAgICAgdHJhbnNmb3JtID0g
Q0FUcmFuc2Zvcm0zRFRyYW5zbGF0ZSh0cmFuc2Zvcm0sIC1yZWN0SW5WaWV3Q29vcmRpbmF0ZXMu
b3JpZ2luLngsIC1yZWN0SW5WaWV3Q29vcmRpbmF0ZXMub3JpZ2luLnksIDApOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>