<?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>172244</bug_id>
          
          <creation_ts>2017-05-17 14:35:46 -0700</creation_ts>
          <short_desc>[WK2] Notify WebPageProxy client when an active process goes over the inactive memory limit</short_desc>
          <delta_ts>2017-05-19 10:25:07 -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>WebKit2</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>
          
          <blocked>172246</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Andreas Kling">kling</reporter>
          <assigned_to name="Andreas Kling">kling</assigned_to>
          <cc>benjamin</cc>
    
    <cc>buildbot</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>ggaren</cc>
    
    <cc>kling</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1309826</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2017-05-17 14:35:46 -0700</bug_when>
    <thetext>We should let the UI-side WK2 client know when the active process comes under memory pressure.

&lt;rdar://problem/31800943&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309827</commentid>
    <comment_count>1</comment_count>
      <attachid>310446</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2017-05-17 14:38:42 -0700</bug_when>
    <thetext>Created attachment 310446
Proposed patch

Ok here&apos;s a cut, pls roast.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309840</commentid>
    <comment_count>2</comment_count>
      <attachid>310446</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-17 14:56:20 -0700</bug_when>
    <thetext>Comment on attachment 310446
Proposed patch

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

&gt; Source/WebKit2/UIProcess/API/C/WKPageUIClient.h:930
&gt; +    WKPageDispatchMemoryPressureNotificationCallback                    dispatchMemoryPressureNotification;

When I discussed this with Geoff yesterday, my understanding was that the callback would be something like:
didExceededBackgroundResourceLimitWhileInForeground(ResourceLimit);
enum class ResourceLimit { Memory, CPU };

Otherwise, we&apos;ll end up with 2 separate callback for memory and CPU.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309844</commentid>
    <comment_count>3</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2017-05-17 14:57:43 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #2)
&gt; Comment on attachment 310446 [details]
&gt; Proposed patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=310446&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/C/WKPageUIClient.h:930
&gt; &gt; +    WKPageDispatchMemoryPressureNotificationCallback                    dispatchMemoryPressureNotification;
&gt; 
&gt; When I discussed this with Geoff yesterday, my understanding was that the
&gt; callback would be something like:
&gt; didExceededBackgroundResourceLimitWhileInForeground(ResourceLimit);
&gt; enum class ResourceLimit { Memory, CPU };
&gt; 
&gt; Otherwise, we&apos;ll end up with 2 separate callback for memory and CPU.

Oh, okay, that sounds p good too. I can certainly make it look like that instead!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309845</commentid>
    <comment_count>4</comment_count>
      <attachid>310446</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-17 14:58:27 -0700</bug_when>
    <thetext>Comment on attachment 310446
Proposed patch

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

&gt;&gt; Source/WebKit2/UIProcess/API/C/WKPageUIClient.h:930
&gt;&gt; +    WKPageDispatchMemoryPressureNotificationCallback                    dispatchMemoryPressureNotification;
&gt; 
&gt; When I discussed this with Geoff yesterday, my understanding was that the callback would be something like:
&gt; didExceededBackgroundResourceLimitWhileInForeground(ResourceLimit);
&gt; enum class ResourceLimit { Memory, CPU };
&gt; 
&gt; Otherwise, we&apos;ll end up with 2 separate callback for memory and CPU.

Also, does this patch rely on memory pressure notifications from the system rather than using our inactive memory limit?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1310113</commentid>
    <comment_count>5</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2017-05-18 09:38:25 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #4)
&gt; Comment on attachment 310446 [details]
&gt; Proposed patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=310446&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebKit2/UIProcess/API/C/WKPageUIClient.h:930
&gt; &gt;&gt; +    WKPageDispatchMemoryPressureNotificationCallback                    dispatchMemoryPressureNotification;
&gt; &gt; 
&gt; &gt; When I discussed this with Geoff yesterday, my understanding was that the callback would be something like:
&gt; &gt; didExceededBackgroundResourceLimitWhileInForeground(ResourceLimit);
&gt; &gt; enum class ResourceLimit { Memory, CPU };
&gt; &gt; 
&gt; &gt; Otherwise, we&apos;ll end up with 2 separate callback for memory and CPU.
&gt; 
&gt; Also, does this patch rely on memory pressure notifications from the system
&gt; rather than using our inactive memory limit?

No, but this patch had some architectural mistakes so I&apos;m redoing it to fit your suggested API name (which I love)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1310186</commentid>
    <comment_count>6</comment_count>
      <attachid>310527</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2017-05-18 12:07:03 -0700</bug_when>
    <thetext>Created attachment 310527
Proposed patch

New version with Chris&apos;s suggested API using ResourceLimit { Memory, CPU } enum.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1310294</commentid>
    <comment_count>7</comment_count>
      <attachid>310556</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2017-05-18 15:23:02 -0700</bug_when>
    <thetext>Created attachment 310556
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1310297</commentid>
    <comment_count>8</comment_count>
      <attachid>310556</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2017-05-18 15:25:59 -0700</bug_when>
    <thetext>Comment on attachment 310556
Proposed patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1310301</commentid>
    <comment_count>9</comment_count>
      <attachid>310559</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2017-05-18 15:33:48 -0700</bug_when>
    <thetext>Created attachment 310559
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1310497</commentid>
    <comment_count>10</comment_count>
      <attachid>310559</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-18 23:54:32 -0700</bug_when>
    <thetext>Comment on attachment 310559
Patch for landing

Clearing flags on attachment: 310559

Committed r217101: &lt;http://trac.webkit.org/changeset/217101&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1310498</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-18 23:54:34 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>310446</attachid>
            <date>2017-05-17 14:38:42 -0700</date>
            <delta_ts>2017-05-17 15:43:47 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>bug-172244.diff</filename>
            <type>text/plain</type>
            <size>11664</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggNDdiZDkwNTQ0ZDYuLmFiYjU2NWJkYjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE3
LTA1LTE3ICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxlLmNvbT4KKworICAgICAgICBbV2Vi
S2l0Ml0gTm90aWZ5IFdlYlBhZ2VQcm94eSBjbGllbnQgd2hlbiBhbiBhY3RpdmUgcHJvY2VzcyBp
cyB1bmRlciBtZW1vcnkgcHJlc3N1cmUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNzIyNDQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMxODAwOTQz
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBh
IGxpdHRsZSBwbHVtYmluZyB0byBpbmNsdWRlICJwcm9jZXNzIGlzIGFjdGl2ZSIgZmxhZyB3aXRo
IHRoZSBwcmVzc3VyZSBjaGFuZ2UgY2FsbGJhY2suCisKKyAgICAgICAgKiB3dGYvTWVtb3J5UHJl
c3N1cmVIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdURjo6TWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpt
ZW1vcnlQcmVzc3VyZVN0YXR1c0NoYW5nZWQpOgorICAgICAgICAqIHd0Zi9NZW1vcnlQcmVzc3Vy
ZUhhbmRsZXIuaDoKKyAgICAgICAgKFdURjo6TWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpzZXRNZW1v
cnlQcmVzc3VyZVN0YXR1c0NoYW5nZWRDYWxsYmFjayk6CisKIDIwMTctMDUtMTUgIE1hcmsgTGFt
ICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAgIFJvbGxpbmcgb3V0IHIyMTQwMzggYW5k
IHIyMTM2OTc6IENyYXNoZXMgd2hlbiB1c2luZyBjb21wdXRlZCBwcm9wZXJ0aWVzIHdpdGggcmVz
dCBkZXN0cnVjdHVyaW5nIGFuZCBvYmplY3Qgc3ByZWFkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcCBiL1NvdXJjZS9XVEYvd3RmL01lbW9yeVBy
ZXNzdXJlSGFuZGxlci5jcHAKaW5kZXggN2ZiODhmNGNjZDguLjg5M2UzNmQ2YzQ4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAKQEAgLTIyNCw3ICsyMjQsNyBAQCB2
b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6c2V0VW5kZXJNZW1vcnlQcmVzc3VyZShib29sIHVu
ZGVyTWVtb3J5UHJlc3N1cmUpCiB2b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6bWVtb3J5UHJl
c3N1cmVTdGF0dXNDaGFuZ2VkKCkKIHsKICAgICBpZiAobV9tZW1vcnlQcmVzc3VyZVN0YXR1c0No
YW5nZWRDYWxsYmFjaykKLSAgICAgICAgbV9tZW1vcnlQcmVzc3VyZVN0YXR1c0NoYW5nZWRDYWxs
YmFjayhpc1VuZGVyTWVtb3J5UHJlc3N1cmUoKSk7CisgICAgICAgIG1fbWVtb3J5UHJlc3N1cmVT
dGF0dXNDaGFuZ2VkQ2FsbGJhY2soaXNVbmRlck1lbW9yeVByZXNzdXJlKCksIHByb2Nlc3NTdGF0
ZSgpID09IFdlYnNhbVByb2Nlc3NTdGF0ZTo6QWN0aXZlKTsKIH0KIAogdm9pZCBNZW1vcnlQcmVz
c3VyZUhhbmRsZXI6OlJlbGllZkxvZ2dlcjo6bG9nTWVtb3J5VXNhZ2VDaGFuZ2UoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmggYi9Tb3VyY2UvV1RG
L3d0Zi9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuaAppbmRleCA0MTI4ZjVjZDcxYS4uNDczMjUwZTIy
MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL01lbW9yeVByZXNzdXJlSGFuZGxlci5oCisr
KyBiL1NvdXJjZS9XVEYvd3RmL01lbW9yeVByZXNzdXJlSGFuZGxlci5oCkBAIC03MSw3ICs3MSw3
IEBAIHB1YmxpYzoKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBzZXRTaG91bGRVc2VQZXJp
b2RpY01lbW9yeU1vbml0b3IoYm9vbCk7CiAKICAgICB2b2lkIHNldE1lbW9yeUtpbGxDYWxsYmFj
ayhXVEY6OkZ1bmN0aW9uPHZvaWQoKT4gZnVuY3Rpb24pIHsgbV9tZW1vcnlLaWxsQ2FsbGJhY2sg
PSBXVEZNb3ZlKGZ1bmN0aW9uKTsgfQotICAgIHZvaWQgc2V0TWVtb3J5UHJlc3N1cmVTdGF0dXND
aGFuZ2VkQ2FsbGJhY2soV1RGOjpGdW5jdGlvbjx2b2lkKGJvb2wpPiBmdW5jdGlvbikgeyBtX21l
bW9yeVByZXNzdXJlU3RhdHVzQ2hhbmdlZENhbGxiYWNrID0gV1RGTW92ZShmdW5jdGlvbik7IH0K
KyAgICB2b2lkIHNldE1lbW9yeVByZXNzdXJlU3RhdHVzQ2hhbmdlZENhbGxiYWNrKFdURjo6RnVu
Y3Rpb248dm9pZChib29sLCBib29sKT4gZnVuY3Rpb24pIHsgbV9tZW1vcnlQcmVzc3VyZVN0YXR1
c0NoYW5nZWRDYWxsYmFjayA9IFdURk1vdmUoZnVuY3Rpb24pOyB9CiAKICAgICB2b2lkIHNldExv
d01lbW9yeUhhbmRsZXIoTG93TWVtb3J5SGFuZGxlciYmIGhhbmRsZXIpCiAgICAgewpAQCAtMTg5
LDcgKzE4OSw3IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPFJ1bkxvb3A6OlRpbWVy
PE1lbW9yeVByZXNzdXJlSGFuZGxlcj4+IG1fbWVhc3VyZW1lbnRUaW1lcjsKICAgICBNZW1vcnlV
c2FnZVBvbGljeSBtX21lbW9yeVVzYWdlUG9saWN5IHsgTWVtb3J5VXNhZ2VQb2xpY3k6OlVucmVz
dHJpY3RlZCB9OwogICAgIFdURjo6RnVuY3Rpb248dm9pZCgpPiBtX21lbW9yeUtpbGxDYWxsYmFj
azsKLSAgICBXVEY6OkZ1bmN0aW9uPHZvaWQoYm9vbCk+IG1fbWVtb3J5UHJlc3N1cmVTdGF0dXND
aGFuZ2VkQ2FsbGJhY2s7CisgICAgV1RGOjpGdW5jdGlvbjx2b2lkKGJvb2wsIGJvb2wpPiBtX21l
bW9yeVByZXNzdXJlU3RhdHVzQ2hhbmdlZENhbGxiYWNrOwogCiAjaWYgT1MoV0lORE9XUykKICAg
ICB2b2lkIHdpbmRvd3NNZWFzdXJlbWVudFRpbWVyRmlyZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA1YTc2
MzJjZTMwYy4uN2Y1YmQ5OWQxNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAxNy0w
NS0xNyAgQW5kcmVhcyBLbGluZyAgPGFrbGluZ0BhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYktp
dDJdIE5vdGlmeSBXZWJQYWdlUHJveHkgY2xpZW50IHdoZW4gYW4gYWN0aXZlIHByb2Nlc3MgaXMg
dW5kZXIgbWVtb3J5IHByZXNzdXJlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTcyMjQ0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMTgwMDk0Mz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBX
S1BhZ2VVSUNsaWVudCBjYWxsYmFjayB0aGF0IGlzIGludm9rZWQgZm9yIGVhY2ggV0tQYWdlUmVm
IHRoYXQgaXMgbWFuYWdlZCBieQorICAgICAgICBhbiBhY3RpdmUgV2ViQ29udGVudCBwcm9jZXNz
IHRoYXQgaGFzIGNvbWUgdW5kZXIgbWVtb3J5IHByZXNzdXJlLgorCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9BUElVSUNsaWVudC5oOgorICAgICAgICAoQVBJOjpVSUNsaWVudDo6ZGlzcGF0Y2hN
ZW1vcnlQcmVzc3VyZU5vdGlmaWNhdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dL
UGFnZS5jcHA6CisgICAgICAgIChXS1BhZ2VTZXRQYWdlVUlDbGllbnQpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpc3BhdGNoTWVt
b3J5UHJlc3N1cmVOb3RpZmljYXRpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjptZW1vcnlQcmVzc3VyZVN0YXR1c0NoYW5nZWQpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzc1Byb3h5OjptZW1vcnlQcmVzc3VyZVN0YXR1c0NoYW5nZWQpOiBEZWxldGVkLgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW46CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
czo6aW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorCiAyMDE3LTA1LTE2ICBaYW4gRG9iZXJzZWsgIDx6
ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR0xpYl0gVXNlIFJ1bkxvb3BTb3VyY2VQ
cmlvcml0eTo6UnVuTG9vcERpc3BhdGNoZXIgYXMgdGhlIEdTb2NrZXRNb25pdG9yJ3MgR1NvdXJj
ZSBwcmlvcml0eQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElV
SUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCmlu
ZGV4IGM2YTgyN2Y2ZDAzLi5mZTRjNWQzNzExMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQVBJVUlDbGllbnQuaApAQCAtMTc3LDYgKzE3Nyw4IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgZGlkQ2xpY2tBdXRvRmlsbEJ1dHRvbihXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIEFQ
STo6T2JqZWN0KikgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgaW1hZ2VPck1lZGlhRG9jdW1lbnRT
aXplQ2hhbmdlZChjb25zdCBXZWJDb3JlOjpJbnRTaXplJikgeyB9CisKKyAgICB2aXJ0dWFsIHZv
aWQgZGlzcGF0Y2hNZW1vcnlQcmVzc3VyZU5vdGlmaWNhdGlvbihXZWJLaXQ6OldlYlBhZ2VQcm94
eSYpIHsgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS1BhZ2UuY3BwCmluZGV4IDI3OGY1YTY4MTAyLi4zYmVmOTNhMjY1ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKQEAgLTE3NzcsNiArMTc3Nywx
NCBAQCB2b2lkIFdLUGFnZVNldFBhZ2VVSUNsaWVudChXS1BhZ2VSZWYgcGFnZVJlZiwgY29uc3Qg
V0tQYWdlVUlDbGllbnRCYXNlKiB3a0NsaWVudAogICAgICAgICAgICAgbV9jbGllbnQuaGFzVmlk
ZW9JblBpY3R1cmVJblBpY3R1cmVEaWRDaGFuZ2UodG9BUEkocGFnZSksIGhhc1ZpZGVvSW5QaWN0
dXJlSW5QaWN0dXJlLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwogICAgICAgICB9CiAKKyAg
ICAgICAgdm9pZCBkaXNwYXRjaE1lbW9yeVByZXNzdXJlTm90aWZpY2F0aW9uKFdlYlBhZ2VQcm94
eSYgcGFnZSkgb3ZlcnJpZGUKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCFtX2NsaWVudC5k
aXNwYXRjaE1lbW9yeVByZXNzdXJlTm90aWZpY2F0aW9uKQorICAgICAgICAgICAgICAgIHJldHVy
bjsKKworICAgICAgICAgICAgbV9jbGllbnQuZGlzcGF0Y2hNZW1vcnlQcmVzc3VyZU5vdGlmaWNh
dGlvbih0b0FQSSgmcGFnZSksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgICAgIH0K
KwogICAgICAgICB2b2lkIGNsb3NlKFdlYlBhZ2VQcm94eSogcGFnZSkgb3ZlcnJpZGUKICAgICAg
ICAgewogICAgICAgICAgICAgaWYgKCFtX2NsaWVudC5jbG9zZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVudC5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50LmgKaW5kZXggZDk5YjE1MDE3ZTEuLjQ1
Y2NmN2ExZWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQ
YWdlVUlDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdl
VUlDbGllbnQuaApAQCAtMTIyLDYgKzEyMiw3IEBAIHR5cGVkZWYgdm9pZCAoKldLRnVsbHNjcmVl
bk1heVJldHVyblRvSW5saW5lQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkCiB0
eXBlZGVmIHZvaWQgKCpXS1JlcXVlc3RQb2ludGVyTG9ja0NhbGxiYWNrKShXS1BhZ2VSZWYgcGFn
ZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS0RpZExvc2VQb2lu
dGVyTG9ja0NhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7
CiB0eXBlZGVmIHZvaWQgKCpXS0hhc1ZpZGVvSW5QaWN0dXJlSW5QaWN0dXJlRGlkQ2hhbmdlQ2Fs
bGJhY2spKFdLUGFnZVJlZiBwYWdlLCBib29sIGhhc1ZpZGVvSW5QaWN0dXJlSW5QaWN0dXJlLCBj
b25zdCB2b2lkKiBjbGllbnRJbmZvKTsKK3R5cGVkZWYgdm9pZCAoKldLUGFnZURpc3BhdGNoTWVt
b3J5UHJlc3N1cmVOb3RpZmljYXRpb25DYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IHZv
aWQqIGNsaWVudEluZm8pOwogICAgIAogLy8gRGVwcmVjYXRlZAogdHlwZWRlZiBXS1BhZ2VSZWYg
KCpXS1BhZ2VDcmVhdGVOZXdQYWdlQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCkoV0tQ
YWdlUmVmIHBhZ2UsIFdLRGljdGlvbmFyeVJlZiBmZWF0dXJlcywgV0tFdmVudE1vZGlmaWVycyBt
b2RpZmllcnMsIFdLRXZlbnRNb3VzZUJ1dHRvbiBtb3VzZUJ1dHRvbiwgY29uc3Qgdm9pZCAqY2xp
ZW50SW5mbyk7CkBAIC05MjYsNiArOTI3LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgV0tQYWdlVUlDbGll
bnRWMTAgewogICAgIAogICAgIC8vIFZlcnNpb24gMTAuCiAgICAgV0tIYXNWaWRlb0luUGljdHVy
ZUluUGljdHVyZURpZENoYW5nZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICBo
YXNWaWRlb0luUGljdHVyZUluUGljdHVyZURpZENoYW5nZTsKKyAgICBXS1BhZ2VEaXNwYXRjaE1l
bW9yeVByZXNzdXJlTm90aWZpY2F0aW9uQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgIGRpc3Bh
dGNoTWVtb3J5UHJlc3N1cmVOb3RpZmljYXRpb247CiB9IFdLUGFnZVVJQ2xpZW50VjEwOwogICAg
IAogI2lmZGVmIF9fY3BsdXNwbHVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCmluZGV4IDQzOGRlYmQ4MmIxLi5kZmNmNTYzYmJiYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTY3MDYsNiArNjcwNiwxMSBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6c2V0U2hvdWxkUGxheVRvUGxheWJhY2tUYXJnZXQodWludDY0X3QgY29udGV4
dElkLCBib29sIHNob3VsZAogfQogI2VuZGlmCiAKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaXNwYXRj
aE1lbW9yeVByZXNzdXJlTm90aWZpY2F0aW9uKCkKK3sKKyAgICBtX3VpQ2xpZW50LT5kaXNwYXRj
aE1lbW9yeVByZXNzdXJlTm90aWZpY2F0aW9uKCp0aGlzKTsKK30KKwogdm9pZCBXZWJQYWdlUHJv
eHk6OmRpZENoYW5nZUJhY2tncm91bmRDb2xvcigpCiB7CiAgICAgbV9wYWdlQ2xpZW50LmRpZENo
YW5nZUJhY2tncm91bmRDb2xvcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCmluZGV4IDE4OGFjMzYxMjg1Li43MDc3ZmNhODJiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMzg0LDYgKzM4NCw4IEBAIHB1YmxpYzoKICAgICB2b2lk
IHNldElzVXNpbmdIaWdoUGVyZm9ybWFuY2VXZWJHTChib29sIHZhbHVlKSB7IG1faXNVc2luZ0hp
Z2hQZXJmb3JtYW5jZVdlYkdMID0gdmFsdWU7IH0KICAgICBib29sIGlzVXNpbmdIaWdoUGVyZm9y
bWFuY2VXZWJHTCgpIGNvbnN0IHsgcmV0dXJuIG1faXNVc2luZ0hpZ2hQZXJmb3JtYW5jZVdlYkdM
OyB9CiAKKyAgICB2b2lkIGRpc3BhdGNoTWVtb3J5UHJlc3N1cmVOb3RpZmljYXRpb24oKTsKKwog
ICAgIHZvaWQgY2xvc2VQYWdlKGJvb2wgc3RvcFJlc3BvbnNpdmVuZXNzVGltZXIpOwogCiAgICAg
dm9pZCBhZGRQbGF0Zm9ybUxvYWRQYXJhbWV0ZXJzKExvYWRQYXJhbWV0ZXJzJik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IDgzMDEzNWMxNTAw
Li4yMjM2NDBhZWUwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHAKQEAgLTExMzMsNiArMTEzMywxNiBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6bG9n
RGlhZ25vc3RpY01lc3NhZ2VGb3JSZXNvdXJjZUxpbWl0VGVybWluYXRpb24oY29uc3QgU3RyaQog
ICAgICAgICAoKnBhZ2VzKCkuYmVnaW4oKSktPmxvZ0RpYWdub3N0aWNNZXNzYWdlKERpYWdub3N0
aWNMb2dnaW5nS2V5czo6c2ltdWxhdGVkUGFnZUNyYXNoS2V5KCksIGxpbWl0S2V5LCBTaG91bGRT
YW1wbGU6Ok5vKTsKIH0KIAordm9pZCBXZWJQcm9jZXNzUHJveHk6Om1lbW9yeVByZXNzdXJlU3Rh
dHVzQ2hhbmdlZChib29sIGlzVW5kZXJNZW1vcnlQcmVzc3VyZSwgYm9vbCBwcm9jZXNzSXNBY3Rp
dmUpCit7CisgICAgbV9pc1VuZGVyTWVtb3J5UHJlc3N1cmUgPSBpc1VuZGVyTWVtb3J5UHJlc3N1
cmU7CisKKyAgICBpZiAoaXNVbmRlck1lbW9yeVByZXNzdXJlICYmIHByb2Nlc3NJc0FjdGl2ZSkg
eworICAgICAgICBmb3IgKGF1dG8mIHBhZ2UgOiBwYWdlcygpKQorICAgICAgICAgICAgcGFnZS0+
ZGlzcGF0Y2hNZW1vcnlQcmVzc3VyZU5vdGlmaWNhdGlvbigpOworICAgIH0KK30KKwogdm9pZCBX
ZWJQcm9jZXNzUHJveHk6OmRpZEV4Y2VlZEFjdGl2ZU1lbW9yeUxpbWl0KCkKIHsKICAgICBSRUxF
QVNFX0xPR19FUlJPUihQZXJmb3JtYW5jZUxvZ2dpbmcsICIlcCAtIFdlYlByb2Nlc3NQcm94eTo6
ZGlkRXhjZWVkQWN0aXZlTWVtb3J5TGltaXQoKSBUZXJtaW5hdGluZyBXZWJQcm9jZXNzIHRoYXQg
aGFzIGV4Y2VlZGVkIHRoZSBhY3RpdmUgbWVtb3J5IGxpbWl0IiwgdGhpcyk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXggNDE1ODJhNzliZTMuLmUyNzRl
ZWRmYzg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBA
IC0xNzIsNyArMTcyLDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlkUmVjZWl2ZU1haW5UaHJlYWRQ
aW5nKCk7CiAgICAgdm9pZCBkaWRSZWNlaXZlQmFja2dyb3VuZFJlc3BvbnNpdmVuZXNzUGluZygp
OwogCi0gICAgdm9pZCBtZW1vcnlQcmVzc3VyZVN0YXR1c0NoYW5nZWQoYm9vbCBpc1VuZGVyTWVt
b3J5UHJlc3N1cmUpIHsgbV9pc1VuZGVyTWVtb3J5UHJlc3N1cmUgPSBpc1VuZGVyTWVtb3J5UHJl
c3N1cmU7IH0KKyAgICB2b2lkIG1lbW9yeVByZXNzdXJlU3RhdHVzQ2hhbmdlZChib29sIGlzVW5k
ZXJNZW1vcnlQcmVzc3VyZSwgYm9vbCBwcm9jZXNzSXNBY3RpdmUpOwogICAgIGJvb2wgaXNVbmRl
ck1lbW9yeVByZXNzdXJlKCkgY29uc3QgeyByZXR1cm4gbV9pc1VuZGVyTWVtb3J5UHJlc3N1cmU7
IH0KIAogICAgIHZvaWQgcHJvY2Vzc1Rlcm1pbmF0ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDNkMGRiZjA2
MDEzLi44N2NiM2M5YWZhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC01NSw1ICs1NSw1IEBAIG1lc3NhZ2VzIC0+
IFdlYlByb2Nlc3NQcm94eSBMZWdhY3lSZWNlaXZlciB7CiAgICAgRGlkUmVjZWl2ZU1haW5UaHJl
YWRQaW5nKCkKICAgICBEaWRSZWNlaXZlQmFja2dyb3VuZFJlc3BvbnNpdmVuZXNzUGluZygpCiAK
LSAgICBNZW1vcnlQcmVzc3VyZVN0YXR1c0NoYW5nZWQoYm9vbCBpc1VuZGVyTWVtb3J5UHJlc3N1
cmUpCisgICAgTWVtb3J5UHJlc3N1cmVTdGF0dXNDaGFuZ2VkKGJvb2wgaXNVbmRlck1lbW9yeVBy
ZXNzdXJlLCBib29sIHByb2Nlc3NJc0FjdGl2ZSkKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuY3BwCmluZGV4IGU4N2NiZWM1NGEzLi5iMjJlZTI2OWVjNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC0yNzksOSArMjc5LDkgQEAgdm9p
ZCBXZWJQcm9jZXNzOjppbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzJiYgcGFyYW1ldGVycykKICAgICAgICAgICAgICAgICBwYXJlbnRQcm9jZXNzQ29ubmVj
dGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkRpZEV4Y2VlZEluYWN0aXZl
TWVtb3J5TGltaXQoKSwgMCk7CiAgICAgICAgIH0pOwogI2VuZGlmCi0gICAgICAgIG1lbW9yeVBy
ZXNzdXJlSGFuZGxlci5zZXRNZW1vcnlQcmVzc3VyZVN0YXR1c0NoYW5nZWRDYWxsYmFjayhbdGhp
c10oYm9vbCBpc1VuZGVyTWVtb3J5UHJlc3N1cmUpIHsKKyAgICAgICAgbWVtb3J5UHJlc3N1cmVI
YW5kbGVyLnNldE1lbW9yeVByZXNzdXJlU3RhdHVzQ2hhbmdlZENhbGxiYWNrKFt0aGlzXShib29s
IGlzVW5kZXJNZW1vcnlQcmVzc3VyZSwgYm9vbCBwcm9jZXNzSXNBY3RpdmUpIHsKICAgICAgICAg
ICAgIGlmIChwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpKQotICAgICAgICAgICAgICAgIHBhcmVu
dFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6TWVt
b3J5UHJlc3N1cmVTdGF0dXNDaGFuZ2VkKGlzVW5kZXJNZW1vcnlQcmVzc3VyZSksIDApOworICAg
ICAgICAgICAgICAgIHBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Oldl
YlByb2Nlc3NQcm94eTo6TWVtb3J5UHJlc3N1cmVTdGF0dXNDaGFuZ2VkKGlzVW5kZXJNZW1vcnlQ
cmVzc3VyZSwgcHJvY2Vzc0lzQWN0aXZlKSwgMCk7CiAgICAgICAgIH0pOwogICAgICAgICBtZW1v
cnlQcmVzc3VyZUhhbmRsZXIuaW5zdGFsbCgpOwogICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>310527</attachid>
            <date>2017-05-18 12:07:03 -0700</date>
            <delta_ts>2017-05-18 15:23:02 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>bug-172244-2.diff</filename>
            <type>text/plain</type>
            <size>14128</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggNDdiZDkwNTQ0ZDYuLmVjN2YzYzNkNDkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE3
LTA1LTE4ICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxlLmNvbT4KKworICAgICAgICBbV0sy
XSBOb3RpZnkgV2ViUGFnZVByb3h5IGNsaWVudCB3aGVuIGFuIGFjdGl2ZSBwcm9jZXNzIGdvZXMg
b3ZlciB0aGUgaW5hY3RpdmUgbWVtb3J5IGxpbWl0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzIyNDQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMx
ODAwOTQzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZCBhbiBpbnN0YWxsYWJsZSBjYWxsYmFjayB0byBNZW1vcnlQcmVzc3VyZUhhbmRsZXIgdGhh
dCBnZXRzIGludm9rZWQgd2hlbiBhbiBhY3RpdmUgcHJvY2VzcworICAgICAgICBleGNlZWRzIHRo
ZSBraWxsIGxpbWl0IGZvciBhbiBpbmFjdGl2ZSBwcm9jZXNzLgorCisgICAgICAgIFRoaXMgYWxs
b3dzIGEgVUkgY2xpZW50IHRvIGJlY29tZSBhd2FyZSB0aGF0IGJhY2tncm91bmRpbmcgYSB0YWIg
bWF5IGNhdXNlIGl0IHRvIGdldCBraWxsZWQuCisKKyAgICAgICAgKiB3dGYvTWVtb3J5UHJlc3N1
cmVIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdURjo6dGhyZXNob2xkRm9yTWVtb3J5S2lsbFdpdGhQ
cm9jZXNzU3RhdGUpOgorICAgICAgICAoV1RGOjpNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnRocmVz
aG9sZEZvck1lbW9yeUtpbGwpOgorICAgICAgICAoV1RGOjpNZW1vcnlQcmVzc3VyZUhhbmRsZXI6
Om1lYXN1cmVtZW50VGltZXJGaXJlZCk6CisgICAgICAgIChXVEY6Ok1lbW9yeVByZXNzdXJlSGFu
ZGxlcjo6ZG9lc0V4Y2VlZEluYWN0aXZlTGltaXRXaGlsZUFjdGl2ZSk6CisgICAgICAgIChXVEY6
Ok1lbW9yeVByZXNzdXJlSGFuZGxlcjo6ZG9lc05vdEV4Y2VlZEluYWN0aXZlTGltaXRXaGlsZUFj
dGl2ZSk6CisgICAgICAgICogd3RmL01lbW9yeVByZXNzdXJlSGFuZGxlci5oOgorICAgICAgICAo
V1RGOjpNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnNldERpZEV4Y2VlZEluYWN0aXZlTGltaXRXaGls
ZUFjdGl2ZUNhbGxiYWNrKToKKwogMjAxNy0wNS0xNSAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBs
ZS5jb20+CiAKICAgICAgICAgUm9sbGluZyBvdXQgcjIxNDAzOCBhbmQgcjIxMzY5NzogQ3Jhc2hl
cyB3aGVuIHVzaW5nIGNvbXB1dGVkIHByb3BlcnRpZXMgd2l0aCByZXN0IGRlc3RydWN0dXJpbmcg
YW5kIG9iamVjdCBzcHJlYWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlQcmVz
c3VyZUhhbmRsZXIuY3BwIGIvU291cmNlL1dURi93dGYvTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNw
cAppbmRleCA3ZmI4OGY0Y2NkOC4uZjkzYjBhYzNjNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dURi93dGYvTWVtb3J5
UHJlc3N1cmVIYW5kbGVyLmNwcApAQCAtNzUsMTAgKzc1LDEwIEBAIHN0YXRpYyBjb25zdCBjaGFy
KiB0b1N0cmluZyhNZW1vcnlVc2FnZVBvbGljeSBwb2xpY3kpCiB9CiAjZW5kaWYKIAotc2l6ZV90
IE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6dGhyZXNob2xkRm9yTWVtb3J5S2lsbCgpCitzdGF0aWMg
c2l6ZV90IHRocmVzaG9sZEZvck1lbW9yeUtpbGxXaXRoUHJvY2Vzc1N0YXRlKFdlYnNhbVByb2Nl
c3NTdGF0ZSBwcm9jZXNzU3RhdGUpCiB7CiAjaWYgQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTTY0KQot
ICAgIGlmIChtX3Byb2Nlc3NTdGF0ZSA9PSBXZWJzYW1Qcm9jZXNzU3RhdGU6OkFjdGl2ZSkKKyAg
ICBpZiAocHJvY2Vzc1N0YXRlID09IFdlYnNhbVByb2Nlc3NTdGF0ZTo6QWN0aXZlKQogICAgICAg
ICByZXR1cm4gNCAqIEdCOwogICAgIHJldHVybiAyICogR0I7CiAjZWxzZQpAQCAtODYsNiArODYs
MTEgQEAgc2l6ZV90IE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6dGhyZXNob2xkRm9yTWVtb3J5S2ls
bCgpCiAjZW5kaWYKIH0KIAorc2l6ZV90IE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6dGhyZXNob2xk
Rm9yTWVtb3J5S2lsbCgpCit7CisgICAgcmV0dXJuIHRocmVzaG9sZEZvck1lbW9yeUtpbGxXaXRo
UHJvY2Vzc1N0YXRlKG1fcHJvY2Vzc1N0YXRlKTsKK30KKwogc3RhdGljIHNpemVfdCB0aHJlc2hv
bGRGb3JQb2xpY3koTWVtb3J5VXNhZ2VQb2xpY3kgcG9saWN5KQogewogICAgIHN3aXRjaCAocG9s
aWN5KSB7CkBAIC0xNjMsNiArMTY4LDI1IEBAIHZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpt
ZWFzdXJlbWVudFRpbWVyRmlyZWQoKQogICAgICAgICByZWxlYXNlTWVtb3J5KENyaXRpY2FsOjpZ
ZXMsIFN5bmNocm9ub3VzOjpObyk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KKworICAgIGlmIChw
cm9jZXNzU3RhdGUoKSA9PSBXZWJzYW1Qcm9jZXNzU3RhdGU6OkFjdGl2ZSAmJiBmb290cHJpbnQu
dmFsdWUoKSA+IHRocmVzaG9sZEZvck1lbW9yeUtpbGxXaXRoUHJvY2Vzc1N0YXRlKFdlYnNhbVBy
b2Nlc3NTdGF0ZTo6SW5hY3RpdmUpKQorICAgICAgICBkb2VzRXhjZWVkSW5hY3RpdmVMaW1pdFdo
aWxlQWN0aXZlKCk7CisgICAgZWxzZQorICAgICAgICBkb2VzTm90RXhjZWVkSW5hY3RpdmVMaW1p
dFdoaWxlQWN0aXZlKCk7Cit9CisKK3ZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpkb2VzRXhj
ZWVkSW5hY3RpdmVMaW1pdFdoaWxlQWN0aXZlKCkKK3sKKyAgICBpZiAobV9oYXNJbnZva2VkRGlk
RXhjZWVkSW5hY3RpdmVMaW1pdFdoaWxlQWN0aXZlQ2FsbGJhY2spCisgICAgICAgIHJldHVybjsK
KyAgICBpZiAobV9kaWRFeGNlZWRJbmFjdGl2ZUxpbWl0V2hpbGVBY3RpdmVDYWxsYmFjaykKKyAg
ICAgICAgbV9kaWRFeGNlZWRJbmFjdGl2ZUxpbWl0V2hpbGVBY3RpdmVDYWxsYmFjaygpOworICAg
IG1faGFzSW52b2tlZERpZEV4Y2VlZEluYWN0aXZlTGltaXRXaGlsZUFjdGl2ZUNhbGxiYWNrID0g
dHJ1ZTsKK30KKwordm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OmRvZXNOb3RFeGNlZWRJbmFj
dGl2ZUxpbWl0V2hpbGVBY3RpdmUoKQoreworICAgIG1faGFzSW52b2tlZERpZEV4Y2VlZEluYWN0
aXZlTGltaXRXaGlsZUFjdGl2ZUNhbGxiYWNrID0gZmFsc2U7CiB9CiAKIHZvaWQgTWVtb3J5UHJl
c3N1cmVIYW5kbGVyOjpzZXRQcm9jZXNzU3RhdGUoV2Vic2FtUHJvY2Vzc1N0YXRlIHN0YXRlKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmggYi9Tb3Vy
Y2UvV1RGL3d0Zi9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuaAppbmRleCA0MTI4ZjVjZDcxYS4uYTE4
ODU2ZDE1YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL01lbW9yeVByZXNzdXJlSGFuZGxl
ci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL01lbW9yeVByZXNzdXJlSGFuZGxlci5oCkBAIC03Miw2
ICs3Miw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0TWVtb3J5S2lsbENhbGxiYWNrKFdURjo6
RnVuY3Rpb248dm9pZCgpPiBmdW5jdGlvbikgeyBtX21lbW9yeUtpbGxDYWxsYmFjayA9IFdURk1v
dmUoZnVuY3Rpb24pOyB9CiAgICAgdm9pZCBzZXRNZW1vcnlQcmVzc3VyZVN0YXR1c0NoYW5nZWRD
YWxsYmFjayhXVEY6OkZ1bmN0aW9uPHZvaWQoYm9vbCk+IGZ1bmN0aW9uKSB7IG1fbWVtb3J5UHJl
c3N1cmVTdGF0dXNDaGFuZ2VkQ2FsbGJhY2sgPSBXVEZNb3ZlKGZ1bmN0aW9uKTsgfQorICAgIHZv
aWQgc2V0RGlkRXhjZWVkSW5hY3RpdmVMaW1pdFdoaWxlQWN0aXZlQ2FsbGJhY2soV1RGOjpGdW5j
dGlvbjx2b2lkKCk+IGZ1bmN0aW9uKSB7IG1fZGlkRXhjZWVkSW5hY3RpdmVMaW1pdFdoaWxlQWN0
aXZlQ2FsbGJhY2sgPSBXVEZNb3ZlKGZ1bmN0aW9uKTsgfQogCiAgICAgdm9pZCBzZXRMb3dNZW1v
cnlIYW5kbGVyKExvd01lbW9yeUhhbmRsZXImJiBoYW5kbGVyKQogICAgIHsKQEAgLTE1Nyw2ICsx
NTgsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgbWVhc3VyZW1lbnRUaW1lckZpcmVkKCk7CiAgICAg
dm9pZCBzaHJpbmtPckRpZSgpOwogICAgIHZvaWQgc2V0TWVtb3J5VXNhZ2VQb2xpY3lCYXNlZE9u
Rm9vdHByaW50KHNpemVfdCk7CisgICAgdm9pZCBkb2VzRXhjZWVkSW5hY3RpdmVMaW1pdFdoaWxl
QWN0aXZlKCk7CisgICAgdm9pZCBkb2VzTm90RXhjZWVkSW5hY3RpdmVMaW1pdFdoaWxlQWN0aXZl
KCk7CiAKICNpZiBPUyhMSU5VWCkKICAgICBjbGFzcyBFdmVudEZEUG9sbGVyIHsKQEAgLTE5MCw2
ICsxOTMsOCBAQCBwcml2YXRlOgogICAgIE1lbW9yeVVzYWdlUG9saWN5IG1fbWVtb3J5VXNhZ2VQ
b2xpY3kgeyBNZW1vcnlVc2FnZVBvbGljeTo6VW5yZXN0cmljdGVkIH07CiAgICAgV1RGOjpGdW5j
dGlvbjx2b2lkKCk+IG1fbWVtb3J5S2lsbENhbGxiYWNrOwogICAgIFdURjo6RnVuY3Rpb248dm9p
ZChib29sKT4gbV9tZW1vcnlQcmVzc3VyZVN0YXR1c0NoYW5nZWRDYWxsYmFjazsKKyAgICBXVEY6
OkZ1bmN0aW9uPHZvaWQoKT4gbV9kaWRFeGNlZWRJbmFjdGl2ZUxpbWl0V2hpbGVBY3RpdmVDYWxs
YmFjazsKKyAgICBib29sIG1faGFzSW52b2tlZERpZEV4Y2VlZEluYWN0aXZlTGltaXRXaGlsZUFj
dGl2ZUNhbGxiYWNrIHsgZmFsc2UgfTsKIAogI2lmIE9TKFdJTkRPV1MpCiAgICAgdm9pZCB3aW5k
b3dzTWVhc3VyZW1lbnRUaW1lckZpcmVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNWE3NjMyY2UzMGMuLjMz
ZTNkYTYwY2E1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMTctMDUtMTggIEFuZHJl
YXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgorCisgICAgICAgIFtXSzJdIE5vdGlmeSBXZWJQ
YWdlUHJveHkgY2xpZW50IHdoZW4gYW4gYWN0aXZlIHByb2Nlc3MgZ29lcyBvdmVyIHRoZSBpbmFj
dGl2ZSBtZW1vcnkgbGltaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE3MjI0NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzE4MDA5NDM+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgV0tQYWdl
VUlDbGllbnQgY2FsbGJhY2sgdGhhdCBpcyBpbnZva2VkIHdoZW4gYW4gYWN0aXZlIHByb2Nlc3Mg
ZXhjZWVkcyB0aGUgaW5hY3RpdmUgbWVtb3J5IGxpbWl0LgorCisgICAgICAgIFdpdGggdGhlIGN1
cnJlbnQgc3RhdGUgb2YgdGhlIGltcGxlbWVudGF0aW9uLCB0aGlzIG1lYW5zIHRoYXQgYSBVSSBj
bGllbnQgY2FuIGxlYXJuIHRoYXQgYmFja2dyb3VuZGluZworICAgICAgICBhIG5vbi1hdWRpYmxl
LCBub24tY2FwdHVyaW5nIHRhYiBtYXkgY2F1c2UgaXQgdG8gZ2V0IGtpbGxlZCBvbmNlIHRoZSBh
Y3RpdmUvaW5hY3RpdmUgaHlzdGVyZXNpcyB0aW1lCisgICAgICAgIGlzIG92ZXIgKDggbWludXRl
cy4pCisKKyAgICAgICAgVGhlIGNhbGxiYWNrIGNhbiBiZSBpbnZva2VkIG11bHRpcGxlIHRpbWVz
IGlmIHdlIGV4Y2VlZCB0aGUgbGltaXQsIGFuZCB0aGVuIGdvIHVuZGVyLCBhbmQgZXhjZWVkIGFn
YWluLgorCisgICAgICAgIFRoaXMgaXMgdGhlIGNhbGxiYWNrOgorCisgICAgICAgICAgICBkaWRF
eGNlZWRCYWNrZ3JvdW5kUmVzb3VyY2VMaW1pdFdoaWxlSW5Gb3JlZ3JvdW5kKFdLUGFnZVJlZiwg
V0tSZXNvdXJjZUxpbWl0KQorCisgICAgICAgIFdoZXJlIFdLUmVzb3VyY2VMaW1pdCBpcyBvbmUg
b2YgeyBrV0tSZXNvdXJjZUxpbWl0TWVtb3J5LCBrV0tSZXNvdXJjZUxpbWl0Q1BVIH0KKyAgICAg
ICAgVGhlIENQVSBlbnVtIHZhbHVlIGlzIGEgcGxhY2Vob2xkZXIgcGVuZGluZyBpbXBsZW1lbnRh
dGlvbiBzb29uLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oOgorICAg
ICAgICAoQVBJOjpVSUNsaWVudDo6ZGlkRXhjZWVkQmFja2dyb3VuZFJlc291cmNlTGltaXRXaGls
ZUluRm9yZWdyb3VuZCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6Cisg
ICAgICAgIChXS1BhZ2VTZXRQYWdlVUlDbGllbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Qy9XS1BhZ2VVSUNsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZEV4Y2VlZEluYWN0aXZlTWVtb3J5
TGltaXRXaGlsZUFjdGl2ZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzUHJveHk6OmRpZEV4Y2VlZEluYWN0aXZlTWVtb3J5TGltaXRXaGlsZUFjdGl2
ZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6aW5pdGlhbGl6
ZVdlYlByb2Nlc3MpOgorCiAyMDE3LTA1LTE2ICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdh
bGlhLmNvbT4KIAogICAgICAgICBbR0xpYl0gVXNlIFJ1bkxvb3BTb3VyY2VQcmlvcml0eTo6UnVu
TG9vcERpc3BhdGNoZXIgYXMgdGhlIEdTb2NrZXRNb25pdG9yJ3MgR1NvdXJjZSBwcmlvcml0eQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCmluZGV4IGM2YTgyN2Y2
ZDAzLi4wYTI3MDlhZTlmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9BUElVSUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJVUlD
bGllbnQuaApAQCAtMTc3LDYgKzE3Nyw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlk
Q2xpY2tBdXRvRmlsbEJ1dHRvbihXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIEFQSTo6T2JqZWN0Kikg
eyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgaW1hZ2VPck1lZGlhRG9jdW1lbnRTaXplQ2hhbmdlZChj
b25zdCBXZWJDb3JlOjpJbnRTaXplJikgeyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRXhjZWVk
QmFja2dyb3VuZFJlc291cmNlTGltaXRXaGlsZUluRm9yZWdyb3VuZChXZWJLaXQ6OldlYlBhZ2VQ
cm94eSYsIFdLUmVzb3VyY2VMaW1pdCkgeyB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBBUEkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKaW5kZXggMjc4ZjVhNjgxMDIu
Ljc1NmM5NDllMWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNw
cApAQCAtMTc3Nyw2ICsxNzc3LDE0IEBAIHZvaWQgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KFdLUGFn
ZVJlZiBwYWdlUmVmLCBjb25zdCBXS1BhZ2VVSUNsaWVudEJhc2UqIHdrQ2xpZW50CiAgICAgICAg
ICAgICBtX2NsaWVudC5oYXNWaWRlb0luUGljdHVyZUluUGljdHVyZURpZENoYW5nZSh0b0FQSShw
YWdlKSwgaGFzVmlkZW9JblBpY3R1cmVJblBpY3R1cmUsIG1fY2xpZW50LmJhc2UuY2xpZW50SW5m
byk7CiAgICAgICAgIH0KIAorICAgICAgICB2b2lkIGRpZEV4Y2VlZEJhY2tncm91bmRSZXNvdXJj
ZUxpbWl0V2hpbGVJbkZvcmVncm91bmQoV2ViUGFnZVByb3h5JiBwYWdlLCBXS1Jlc291cmNlTGlt
aXQgbGltaXQpIG92ZXJyaWRlCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghbV9jbGllbnQu
ZGlkRXhjZWVkQmFja2dyb3VuZFJlc291cmNlTGltaXRXaGlsZUluRm9yZWdyb3VuZCkKKyAgICAg
ICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIG1fY2xpZW50LmRpZEV4Y2VlZEJhY2tn
cm91bmRSZXNvdXJjZUxpbWl0V2hpbGVJbkZvcmVncm91bmQodG9BUEkoJnBhZ2UpLCBsaW1pdCwg
bV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAgICAgICAgfQorCiAgICAgICAgIHZvaWQgY2xv
c2UoV2ViUGFnZVByb3h5KiBwYWdlKSBvdmVycmlkZQogICAgICAgICB7CiAgICAgICAgICAgICBp
ZiAoIW1fY2xpZW50LmNsb3NlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLUGFnZVVJQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tQYWdlVUlDbGllbnQuaAppbmRleCBkOTliMTUwMTdlMS4uMTQzNWUxOGZlYmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVudC5oCkBAIC02Myw2
ICs2MywxMiBAQCBlbnVtIHsKIH07CiB0eXBlZGVmIHVpbnQzMl90IFdLQXV0b3BsYXlFdmVudEZs
YWdzOwogCitlbnVtIHsKKyAgICBrV0tSZXNvdXJjZUxpbWl0TWVtb3J5LAorICAgIGtXS1Jlc291
cmNlTGltaXRDUFUsCit9OwordHlwZWRlZiB1aW50MzJfdCBXS1Jlc291cmNlTGltaXQ7CisKIFdL
X0VYUE9SVCBXS1R5cGVJRCBXS1BhZ2VSdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWxSZXN1bHRM
aXN0ZW5lckdldFR5cGVJRCgpOwogV0tfRVhQT1JUIHZvaWQgV0tQYWdlUnVuQmVmb3JlVW5sb2Fk
Q29uZmlybVBhbmVsUmVzdWx0TGlzdGVuZXJDYWxsKFdLUGFnZVJ1bkJlZm9yZVVubG9hZENvbmZp
cm1QYW5lbFJlc3VsdExpc3RlbmVyUmVmIGxpc3RlbmVyLCBib29sIHJlc3VsdCk7CiAKQEAgLTEy
Miw2ICsxMjgsNyBAQCB0eXBlZGVmIHZvaWQgKCpXS0Z1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGlu
ZUNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZAogdHlwZWRlZiB2b2lkICgqV0tS
ZXF1ZXN0UG9pbnRlckxvY2tDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IHZvaWQqIGNs
aWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tEaWRMb3NlUG9pbnRlckxvY2tDYWxsYmFjayko
V0tQYWdlUmVmIHBhZ2UsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgq
V0tIYXNWaWRlb0luUGljdHVyZUluUGljdHVyZURpZENoYW5nZUNhbGxiYWNrKShXS1BhZ2VSZWYg
cGFnZSwgYm9vbCBoYXNWaWRlb0luUGljdHVyZUluUGljdHVyZSwgY29uc3Qgdm9pZCogY2xpZW50
SW5mbyk7Cit0eXBlZGVmIHZvaWQgKCpXS0RpZEV4Y2VlZEJhY2tncm91bmRSZXNvdXJjZUxpbWl0
V2hpbGVJbkZvcmVncm91bmRDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLUmVzb3VyY2VMaW1p
dCBsaW1pdCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiAgICAgCiAvLyBEZXByZWNhdGVkCiB0
eXBlZGVmIFdLUGFnZVJlZiAoKldLUGFnZUNyZWF0ZU5ld1BhZ2VDYWxsYmFja19kZXByZWNhdGVk
Rm9yVXNlV2l0aFYwKShXS1BhZ2VSZWYgcGFnZSwgV0tEaWN0aW9uYXJ5UmVmIGZlYXR1cmVzLCBX
S0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9uIG1vdXNlQnV0dG9u
LCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKQEAgLTkyNiw2ICs5MzMsNyBAQCB0eXBlZGVmIHN0
cnVjdCBXS1BhZ2VVSUNsaWVudFYxMCB7CiAgICAgCiAgICAgLy8gVmVyc2lvbiAxMC4KICAgICBX
S0hhc1ZpZGVvSW5QaWN0dXJlSW5QaWN0dXJlRGlkQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGhhc1ZpZGVvSW5QaWN0dXJlSW5QaWN0dXJlRGlkQ2hhbmdlOworICAg
IFdLRGlkRXhjZWVkQmFja2dyb3VuZFJlc291cmNlTGltaXRXaGlsZUluRm9yZWdyb3VuZENhbGxi
YWNrICAgICAgICAgZGlkRXhjZWVkQmFja2dyb3VuZFJlc291cmNlTGltaXRXaGlsZUluRm9yZWdy
b3VuZDsKIH0gV0tQYWdlVUlDbGllbnRWMTA7CiAgICAgCiAjaWZkZWYgX19jcGx1c3BsdXMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggNDM4ZGViZDgyYjEu
LmY0YWJiMTFmYzc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cApAQCAtNjcwNiw2ICs2NzA2LDExIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRTaG91bGRQbGF5
VG9QbGF5YmFja1RhcmdldCh1aW50NjRfdCBjb250ZXh0SWQsIGJvb2wgc2hvdWxkCiB9CiAjZW5k
aWYKIAordm9pZCBXZWJQYWdlUHJveHk6OmRpZEV4Y2VlZEluYWN0aXZlTWVtb3J5TGltaXRXaGls
ZUFjdGl2ZSgpCit7CisgICAgbV91aUNsaWVudC0+ZGlkRXhjZWVkQmFja2dyb3VuZFJlc291cmNl
TGltaXRXaGlsZUluRm9yZWdyb3VuZCgqdGhpcywga1dLUmVzb3VyY2VMaW1pdE1lbW9yeSk7Cit9
CisKIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRDaGFuZ2VCYWNrZ3JvdW5kQ29sb3IoKQogewogICAg
IG1fcGFnZUNsaWVudC5kaWRDaGFuZ2VCYWNrZ3JvdW5kQ29sb3IoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCAxODhhYzM2MTI4NS4uOGM5MjQ4YmRlODUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTM4NCw2ICszODQsOCBA
QCBwdWJsaWM6CiAgICAgdm9pZCBzZXRJc1VzaW5nSGlnaFBlcmZvcm1hbmNlV2ViR0woYm9vbCB2
YWx1ZSkgeyBtX2lzVXNpbmdIaWdoUGVyZm9ybWFuY2VXZWJHTCA9IHZhbHVlOyB9CiAgICAgYm9v
bCBpc1VzaW5nSGlnaFBlcmZvcm1hbmNlV2ViR0woKSBjb25zdCB7IHJldHVybiBtX2lzVXNpbmdI
aWdoUGVyZm9ybWFuY2VXZWJHTDsgfQogCisgICAgdm9pZCBkaWRFeGNlZWRJbmFjdGl2ZU1lbW9y
eUxpbWl0V2hpbGVBY3RpdmUoKTsKKwogICAgIHZvaWQgY2xvc2VQYWdlKGJvb2wgc3RvcFJlc3Bv
bnNpdmVuZXNzVGltZXIpOwogCiAgICAgdm9pZCBhZGRQbGF0Zm9ybUxvYWRQYXJhbWV0ZXJzKExv
YWRQYXJhbWV0ZXJzJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkuY3BwCmluZGV4IDgzMDEzNWMxNTAwLi4wMWZhZGEwMjA0NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTExMzMsNiArMTEzMywxMiBAQCB2
b2lkIFdlYlByb2Nlc3NQcm94eTo6bG9nRGlhZ25vc3RpY01lc3NhZ2VGb3JSZXNvdXJjZUxpbWl0
VGVybWluYXRpb24oY29uc3QgU3RyaQogICAgICAgICAoKnBhZ2VzKCkuYmVnaW4oKSktPmxvZ0Rp
YWdub3N0aWNNZXNzYWdlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6c2ltdWxhdGVkUGFnZUNyYXNo
S2V5KCksIGxpbWl0S2V5LCBTaG91bGRTYW1wbGU6Ok5vKTsKIH0KIAordm9pZCBXZWJQcm9jZXNz
UHJveHk6OmRpZEV4Y2VlZEluYWN0aXZlTWVtb3J5TGltaXRXaGlsZUFjdGl2ZSgpCit7CisgICAg
Zm9yIChhdXRvJiBwYWdlIDogcGFnZXMoKSkKKyAgICAgICAgcGFnZS0+ZGlkRXhjZWVkSW5hY3Rp
dmVNZW1vcnlMaW1pdFdoaWxlQWN0aXZlKCk7Cit9CisKIHZvaWQgV2ViUHJvY2Vzc1Byb3h5Ojpk
aWRFeGNlZWRBY3RpdmVNZW1vcnlMaW1pdCgpCiB7CiAgICAgUkVMRUFTRV9MT0dfRVJST1IoUGVy
Zm9ybWFuY2VMb2dnaW5nLCAiJXAgLSBXZWJQcm9jZXNzUHJveHk6OmRpZEV4Y2VlZEFjdGl2ZU1l
bW9yeUxpbWl0KCkgVGVybWluYXRpbmcgV2ViUHJvY2VzcyB0aGF0IGhhcyBleGNlZWRlZCB0aGUg
YWN0aXZlIG1lbW9yeSBsaW1pdCIsIHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5oCmluZGV4IDQxNTgyYTc5YmUzLi42OTZlOWMwMjNiZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAtMTc0LDYgKzE3NCw3IEBA
IHB1YmxpYzoKIAogICAgIHZvaWQgbWVtb3J5UHJlc3N1cmVTdGF0dXNDaGFuZ2VkKGJvb2wgaXNV
bmRlck1lbW9yeVByZXNzdXJlKSB7IG1faXNVbmRlck1lbW9yeVByZXNzdXJlID0gaXNVbmRlck1l
bW9yeVByZXNzdXJlOyB9CiAgICAgYm9vbCBpc1VuZGVyTWVtb3J5UHJlc3N1cmUoKSBjb25zdCB7
IHJldHVybiBtX2lzVW5kZXJNZW1vcnlQcmVzc3VyZTsgfQorICAgIHZvaWQgZGlkRXhjZWVkSW5h
Y3RpdmVNZW1vcnlMaW1pdFdoaWxlQWN0aXZlKCk7CiAKICAgICB2b2lkIHByb2Nlc3NUZXJtaW5h
dGVkKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5Lm1lc3NhZ2VzLmluCmluZGV4IDNkMGRiZjA2MDEzLi4zNTY4MDljMGQwMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmlu
CkBAIC01Niw0ICs1Niw1IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3NQcm94eSBMZWdhY3lSZWNl
aXZlciB7CiAgICAgRGlkUmVjZWl2ZUJhY2tncm91bmRSZXNwb25zaXZlbmVzc1BpbmcoKQogCiAg
ICAgTWVtb3J5UHJlc3N1cmVTdGF0dXNDaGFuZ2VkKGJvb2wgaXNVbmRlck1lbW9yeVByZXNzdXJl
KQorICAgIERpZEV4Y2VlZEluYWN0aXZlTWVtb3J5TGltaXRXaGlsZUFjdGl2ZSgpCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCBlODdjYmVjNTRhMy4uNjAx
OThhM2ZiMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAt
Mjc4LDYgKzI3OCw5IEBAIHZvaWQgV2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiAgICAgICAgICAgICBlbHNl
CiAgICAgICAgICAgICAgICAgcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdl
czo6V2ViUHJvY2Vzc1Byb3h5OjpEaWRFeGNlZWRJbmFjdGl2ZU1lbW9yeUxpbWl0KCksIDApOwog
ICAgICAgICB9KTsKKyAgICAgICAgbWVtb3J5UHJlc3N1cmVIYW5kbGVyLnNldERpZEV4Y2VlZElu
YWN0aXZlTGltaXRXaGlsZUFjdGl2ZUNhbGxiYWNrKFt0aGlzXSAoKSB7CisgICAgICAgICAgICBw
YXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6
OkRpZEV4Y2VlZEluYWN0aXZlTWVtb3J5TGltaXRXaGlsZUFjdGl2ZSgpLCAwKTsKKyAgICAgICAg
fSk7CiAjZW5kaWYKICAgICAgICAgbWVtb3J5UHJlc3N1cmVIYW5kbGVyLnNldE1lbW9yeVByZXNz
dXJlU3RhdHVzQ2hhbmdlZENhbGxiYWNrKFt0aGlzXShib29sIGlzVW5kZXJNZW1vcnlQcmVzc3Vy
ZSkgewogICAgICAgICAgICAgaWYgKHBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCkpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>310556</attachid>
            <date>2017-05-18 15:23:02 -0700</date>
            <delta_ts>2017-05-18 15:33:48 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>bug-172244-3.diff</filename>
            <type>text/plain</type>
            <size>14106</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggNDdiZDkwNTQ0ZDYuLmVjN2YzYzNkNDkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE3
LTA1LTE4ICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxlLmNvbT4KKworICAgICAgICBbV0sy
XSBOb3RpZnkgV2ViUGFnZVByb3h5IGNsaWVudCB3aGVuIGFuIGFjdGl2ZSBwcm9jZXNzIGdvZXMg
b3ZlciB0aGUgaW5hY3RpdmUgbWVtb3J5IGxpbWl0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzIyNDQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMx
ODAwOTQzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZCBhbiBpbnN0YWxsYWJsZSBjYWxsYmFjayB0byBNZW1vcnlQcmVzc3VyZUhhbmRsZXIgdGhh
dCBnZXRzIGludm9rZWQgd2hlbiBhbiBhY3RpdmUgcHJvY2VzcworICAgICAgICBleGNlZWRzIHRo
ZSBraWxsIGxpbWl0IGZvciBhbiBpbmFjdGl2ZSBwcm9jZXNzLgorCisgICAgICAgIFRoaXMgYWxs
b3dzIGEgVUkgY2xpZW50IHRvIGJlY29tZSBhd2FyZSB0aGF0IGJhY2tncm91bmRpbmcgYSB0YWIg
bWF5IGNhdXNlIGl0IHRvIGdldCBraWxsZWQuCisKKyAgICAgICAgKiB3dGYvTWVtb3J5UHJlc3N1
cmVIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdURjo6dGhyZXNob2xkRm9yTWVtb3J5S2lsbFdpdGhQ
cm9jZXNzU3RhdGUpOgorICAgICAgICAoV1RGOjpNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnRocmVz
aG9sZEZvck1lbW9yeUtpbGwpOgorICAgICAgICAoV1RGOjpNZW1vcnlQcmVzc3VyZUhhbmRsZXI6
Om1lYXN1cmVtZW50VGltZXJGaXJlZCk6CisgICAgICAgIChXVEY6Ok1lbW9yeVByZXNzdXJlSGFu
ZGxlcjo6ZG9lc0V4Y2VlZEluYWN0aXZlTGltaXRXaGlsZUFjdGl2ZSk6CisgICAgICAgIChXVEY6
Ok1lbW9yeVByZXNzdXJlSGFuZGxlcjo6ZG9lc05vdEV4Y2VlZEluYWN0aXZlTGltaXRXaGlsZUFj
dGl2ZSk6CisgICAgICAgICogd3RmL01lbW9yeVByZXNzdXJlSGFuZGxlci5oOgorICAgICAgICAo
V1RGOjpNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnNldERpZEV4Y2VlZEluYWN0aXZlTGltaXRXaGls
ZUFjdGl2ZUNhbGxiYWNrKToKKwogMjAxNy0wNS0xNSAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBs
ZS5jb20+CiAKICAgICAgICAgUm9sbGluZyBvdXQgcjIxNDAzOCBhbmQgcjIxMzY5NzogQ3Jhc2hl
cyB3aGVuIHVzaW5nIGNvbXB1dGVkIHByb3BlcnRpZXMgd2l0aCByZXN0IGRlc3RydWN0dXJpbmcg
YW5kIG9iamVjdCBzcHJlYWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlQcmVz
c3VyZUhhbmRsZXIuY3BwIGIvU291cmNlL1dURi93dGYvTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNw
cAppbmRleCA3ZmI4OGY0Y2NkOC4uODExYmExZmQ1ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dURi93dGYvTWVtb3J5
UHJlc3N1cmVIYW5kbGVyLmNwcApAQCAtNzUsMTcgKzc1LDIzIEBAIHN0YXRpYyBjb25zdCBjaGFy
KiB0b1N0cmluZyhNZW1vcnlVc2FnZVBvbGljeSBwb2xpY3kpCiB9CiAjZW5kaWYKIAotc2l6ZV90
IE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6dGhyZXNob2xkRm9yTWVtb3J5S2lsbCgpCitzdGF0aWMg
c2l6ZV90IHRocmVzaG9sZEZvck1lbW9yeUtpbGxXaXRoUHJvY2Vzc1N0YXRlKFdlYnNhbVByb2Nl
c3NTdGF0ZSBwcm9jZXNzU3RhdGUpCiB7CiAjaWYgQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTTY0KQot
ICAgIGlmIChtX3Byb2Nlc3NTdGF0ZSA9PSBXZWJzYW1Qcm9jZXNzU3RhdGU6OkFjdGl2ZSkKKyAg
ICBpZiAocHJvY2Vzc1N0YXRlID09IFdlYnNhbVByb2Nlc3NTdGF0ZTo6QWN0aXZlKQogICAgICAg
ICByZXR1cm4gNCAqIEdCOwogICAgIHJldHVybiAyICogR0I7CiAjZWxzZQorICAgIFVOVVNEX1BB
UkFNKHByb2Nlc3NTdGF0ZSk7CiAgICAgcmV0dXJuIDMgKiBHQjsKICNlbmRpZgogfQogCitzaXpl
X3QgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjp0aHJlc2hvbGRGb3JNZW1vcnlLaWxsKCkKK3sKKyAg
ICByZXR1cm4gdGhyZXNob2xkRm9yTWVtb3J5S2lsbFdpdGhQcm9jZXNzU3RhdGUobV9wcm9jZXNz
U3RhdGUpOworfQorCiBzdGF0aWMgc2l6ZV90IHRocmVzaG9sZEZvclBvbGljeShNZW1vcnlVc2Fn
ZVBvbGljeSBwb2xpY3kpCiB7CiAgICAgc3dpdGNoIChwb2xpY3kpIHsKQEAgLTE2Myw2ICsxNjks
MjUgQEAgdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6Om1lYXN1cmVtZW50VGltZXJGaXJlZCgp
CiAgICAgICAgIHJlbGVhc2VNZW1vcnkoQ3JpdGljYWw6OlllcywgU3luY2hyb25vdXM6Ok5vKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgfQorCisgICAgaWYgKHByb2Nlc3NTdGF0ZSgpID09IFdlYnNh
bVByb2Nlc3NTdGF0ZTo6QWN0aXZlICYmIGZvb3RwcmludC52YWx1ZSgpID4gdGhyZXNob2xkRm9y
TWVtb3J5S2lsbFdpdGhQcm9jZXNzU3RhdGUoV2Vic2FtUHJvY2Vzc1N0YXRlOjpJbmFjdGl2ZSkp
CisgICAgICAgIGRvZXNFeGNlZWRJbmFjdGl2ZUxpbWl0V2hpbGVBY3RpdmUoKTsKKyAgICBlbHNl
CisgICAgICAgIGRvZXNOb3RFeGNlZWRJbmFjdGl2ZUxpbWl0V2hpbGVBY3RpdmUoKTsKK30KKwor
dm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OmRvZXNFeGNlZWRJbmFjdGl2ZUxpbWl0V2hpbGVB
Y3RpdmUoKQoreworICAgIGlmIChtX2hhc0ludm9rZWREaWRFeGNlZWRJbmFjdGl2ZUxpbWl0V2hp
bGVBY3RpdmVDYWxsYmFjaykKKyAgICAgICAgcmV0dXJuOworICAgIGlmIChtX2RpZEV4Y2VlZElu
YWN0aXZlTGltaXRXaGlsZUFjdGl2ZUNhbGxiYWNrKQorICAgICAgICBtX2RpZEV4Y2VlZEluYWN0
aXZlTGltaXRXaGlsZUFjdGl2ZUNhbGxiYWNrKCk7CisgICAgbV9oYXNJbnZva2VkRGlkRXhjZWVk
SW5hY3RpdmVMaW1pdFdoaWxlQWN0aXZlQ2FsbGJhY2sgPSB0cnVlOworfQorCit2b2lkIE1lbW9y
eVByZXNzdXJlSGFuZGxlcjo6ZG9lc05vdEV4Y2VlZEluYWN0aXZlTGltaXRXaGlsZUFjdGl2ZSgp
Cit7CisgICAgbV9oYXNJbnZva2VkRGlkRXhjZWVkSW5hY3RpdmVMaW1pdFdoaWxlQWN0aXZlQ2Fs
bGJhY2sgPSBmYWxzZTsKIH0KIAogdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnNldFByb2Nl
c3NTdGF0ZShXZWJzYW1Qcm9jZXNzU3RhdGUgc3RhdGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuaCBiL1NvdXJjZS9XVEYvd3RmL01lbW9yeVByZXNz
dXJlSGFuZGxlci5oCmluZGV4IDQxMjhmNWNkNzFhLi5hMTg4NTZkMTVjNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmgKKysrIGIvU291cmNlL1dURi93
dGYvTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmgKQEAgLTcyLDYgKzcyLDcgQEAgcHVibGljOgogCiAg
ICAgdm9pZCBzZXRNZW1vcnlLaWxsQ2FsbGJhY2soV1RGOjpGdW5jdGlvbjx2b2lkKCk+IGZ1bmN0
aW9uKSB7IG1fbWVtb3J5S2lsbENhbGxiYWNrID0gV1RGTW92ZShmdW5jdGlvbik7IH0KICAgICB2
b2lkIHNldE1lbW9yeVByZXNzdXJlU3RhdHVzQ2hhbmdlZENhbGxiYWNrKFdURjo6RnVuY3Rpb248
dm9pZChib29sKT4gZnVuY3Rpb24pIHsgbV9tZW1vcnlQcmVzc3VyZVN0YXR1c0NoYW5nZWRDYWxs
YmFjayA9IFdURk1vdmUoZnVuY3Rpb24pOyB9CisgICAgdm9pZCBzZXREaWRFeGNlZWRJbmFjdGl2
ZUxpbWl0V2hpbGVBY3RpdmVDYWxsYmFjayhXVEY6OkZ1bmN0aW9uPHZvaWQoKT4gZnVuY3Rpb24p
IHsgbV9kaWRFeGNlZWRJbmFjdGl2ZUxpbWl0V2hpbGVBY3RpdmVDYWxsYmFjayA9IFdURk1vdmUo
ZnVuY3Rpb24pOyB9CiAKICAgICB2b2lkIHNldExvd01lbW9yeUhhbmRsZXIoTG93TWVtb3J5SGFu
ZGxlciYmIGhhbmRsZXIpCiAgICAgewpAQCAtMTU3LDYgKzE1OCw4IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBtZWFzdXJlbWVudFRpbWVyRmlyZWQoKTsKICAgICB2b2lkIHNocmlua09yRGllKCk7CiAg
ICAgdm9pZCBzZXRNZW1vcnlVc2FnZVBvbGljeUJhc2VkT25Gb290cHJpbnQoc2l6ZV90KTsKKyAg
ICB2b2lkIGRvZXNFeGNlZWRJbmFjdGl2ZUxpbWl0V2hpbGVBY3RpdmUoKTsKKyAgICB2b2lkIGRv
ZXNOb3RFeGNlZWRJbmFjdGl2ZUxpbWl0V2hpbGVBY3RpdmUoKTsKIAogI2lmIE9TKExJTlVYKQog
ICAgIGNsYXNzIEV2ZW50RkRQb2xsZXIgewpAQCAtMTkwLDYgKzE5Myw4IEBAIHByaXZhdGU6CiAg
ICAgTWVtb3J5VXNhZ2VQb2xpY3kgbV9tZW1vcnlVc2FnZVBvbGljeSB7IE1lbW9yeVVzYWdlUG9s
aWN5OjpVbnJlc3RyaWN0ZWQgfTsKICAgICBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4gbV9tZW1vcnlL
aWxsQ2FsbGJhY2s7CiAgICAgV1RGOjpGdW5jdGlvbjx2b2lkKGJvb2wpPiBtX21lbW9yeVByZXNz
dXJlU3RhdHVzQ2hhbmdlZENhbGxiYWNrOworICAgIFdURjo6RnVuY3Rpb248dm9pZCgpPiBtX2Rp
ZEV4Y2VlZEluYWN0aXZlTGltaXRXaGlsZUFjdGl2ZUNhbGxiYWNrOworICAgIGJvb2wgbV9oYXNJ
bnZva2VkRGlkRXhjZWVkSW5hY3RpdmVMaW1pdFdoaWxlQWN0aXZlQ2FsbGJhY2sgeyBmYWxzZSB9
OwogCiAjaWYgT1MoV0lORE9XUykKICAgICB2b2lkIHdpbmRvd3NNZWFzdXJlbWVudFRpbWVyRmly
ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwppbmRleCA1YTc2MzJjZTMwYy4uMzNlM2RhNjBjYTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw0MSBAQAorMjAxNy0wNS0xOCAgQW5kcmVhcyBLbGluZyAgPGFrbGluZ0BhcHBs
ZS5jb20+CisKKyAgICAgICAgW1dLMl0gTm90aWZ5IFdlYlBhZ2VQcm94eSBjbGllbnQgd2hlbiBh
biBhY3RpdmUgcHJvY2VzcyBnb2VzIG92ZXIgdGhlIGluYWN0aXZlIG1lbW9yeSBsaW1pdAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcyMjQ0CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS8zMTgwMDk0Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBXS1BhZ2VVSUNsaWVudCBjYWxsYmFjayB0aGF0
IGlzIGludm9rZWQgd2hlbiBhbiBhY3RpdmUgcHJvY2VzcyBleGNlZWRzIHRoZSBpbmFjdGl2ZSBt
ZW1vcnkgbGltaXQuCisKKyAgICAgICAgV2l0aCB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgaW1w
bGVtZW50YXRpb24sIHRoaXMgbWVhbnMgdGhhdCBhIFVJIGNsaWVudCBjYW4gbGVhcm4gdGhhdCBi
YWNrZ3JvdW5kaW5nCisgICAgICAgIGEgbm9uLWF1ZGlibGUsIG5vbi1jYXB0dXJpbmcgdGFiIG1h
eSBjYXVzZSBpdCB0byBnZXQga2lsbGVkIG9uY2UgdGhlIGFjdGl2ZS9pbmFjdGl2ZSBoeXN0ZXJl
c2lzIHRpbWUKKyAgICAgICAgaXMgb3ZlciAoOCBtaW51dGVzLikKKworICAgICAgICBUaGUgY2Fs
bGJhY2sgY2FuIGJlIGludm9rZWQgbXVsdGlwbGUgdGltZXMgaWYgd2UgZXhjZWVkIHRoZSBsaW1p
dCwgYW5kIHRoZW4gZ28gdW5kZXIsIGFuZCBleGNlZWQgYWdhaW4uCisKKyAgICAgICAgVGhpcyBp
cyB0aGUgY2FsbGJhY2s6CisKKyAgICAgICAgICAgIGRpZEV4Y2VlZEJhY2tncm91bmRSZXNvdXJj
ZUxpbWl0V2hpbGVJbkZvcmVncm91bmQoV0tQYWdlUmVmLCBXS1Jlc291cmNlTGltaXQpCisKKyAg
ICAgICAgV2hlcmUgV0tSZXNvdXJjZUxpbWl0IGlzIG9uZSBvZiB7IGtXS1Jlc291cmNlTGltaXRN
ZW1vcnksIGtXS1Jlc291cmNlTGltaXRDUFUgfQorICAgICAgICBUaGUgQ1BVIGVudW0gdmFsdWUg
aXMgYSBwbGFjZWhvbGRlciBwZW5kaW5nIGltcGxlbWVudGF0aW9uIHNvb24uCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50Lmg6CisgICAgICAgIChBUEk6OlVJQ2xpZW50Ojpk
aWRFeGNlZWRCYWNrZ3JvdW5kUmVzb3VyY2VMaW1pdFdoaWxlSW5Gb3JlZ3JvdW5kKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcDoKKyAgICAgICAgKFdLUGFnZVNldFBhZ2VV
SUNsaWVudCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50Lmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6ZGlkRXhjZWVkSW5hY3RpdmVNZW1vcnlMaW1pdFdoaWxlQWN0aXZlKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6ZGlk
RXhjZWVkSW5hY3RpdmVNZW1vcnlMaW1pdFdoaWxlQWN0aXZlKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjppbml0aWFsaXplV2ViUHJvY2Vzcyk6CisKIDIwMTct
MDUtMTYgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtH
TGliXSBVc2UgUnVuTG9vcFNvdXJjZVByaW9yaXR5OjpSdW5Mb29wRGlzcGF0Y2hlciBhcyB0aGUg
R1NvY2tldE1vbml0b3IncyBHU291cmNlIHByaW9yaXR5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0FQSVVJQ2xpZW50LmgKaW5kZXggYzZhODI3ZjZkMDMuLjBhMjcwOWFlOWY4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCkBAIC0xNzcsNiArMTc3
LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWRDbGlja0F1dG9GaWxsQnV0dG9uKFdl
YktpdDo6V2ViUGFnZVByb3h5JiwgQVBJOjpPYmplY3QqKSB7IH0KIAogICAgIHZpcnR1YWwgdm9p
ZCBpbWFnZU9yTWVkaWFEb2N1bWVudFNpemVDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6OkludFNpemUm
KSB7IH0KKworICAgIHZpcnR1YWwgdm9pZCBkaWRFeGNlZWRCYWNrZ3JvdW5kUmVzb3VyY2VMaW1p
dFdoaWxlSW5Gb3JlZ3JvdW5kKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgV0tSZXNvdXJjZUxpbWl0
KSB7IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tQYWdlLmNwcAppbmRleCAyNzhmNWE2ODEwMi4uNzU2Yzk0OWUxYmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCkBAIC0xNzc3LDYgKzE3NzcsMTQg
QEAgdm9pZCBXS1BhZ2VTZXRQYWdlVUlDbGllbnQoV0tQYWdlUmVmIHBhZ2VSZWYsIGNvbnN0IFdL
UGFnZVVJQ2xpZW50QmFzZSogd2tDbGllbnQKICAgICAgICAgICAgIG1fY2xpZW50Lmhhc1ZpZGVv
SW5QaWN0dXJlSW5QaWN0dXJlRGlkQ2hhbmdlKHRvQVBJKHBhZ2UpLCBoYXNWaWRlb0luUGljdHVy
ZUluUGljdHVyZSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKICAgICAgICAgfQogCisgICAg
ICAgIHZvaWQgZGlkRXhjZWVkQmFja2dyb3VuZFJlc291cmNlTGltaXRXaGlsZUluRm9yZWdyb3Vu
ZChXZWJQYWdlUHJveHkmIHBhZ2UsIFdLUmVzb3VyY2VMaW1pdCBsaW1pdCkgb3ZlcnJpZGUKKyAg
ICAgICAgeworICAgICAgICAgICAgaWYgKCFtX2NsaWVudC5kaWRFeGNlZWRCYWNrZ3JvdW5kUmVz
b3VyY2VMaW1pdFdoaWxlSW5Gb3JlZ3JvdW5kKQorICAgICAgICAgICAgICAgIHJldHVybjsKKwor
ICAgICAgICAgICAgbV9jbGllbnQuZGlkRXhjZWVkQmFja2dyb3VuZFJlc291cmNlTGltaXRXaGls
ZUluRm9yZWdyb3VuZCh0b0FQSSgmcGFnZSksIGxpbWl0LCBtX2NsaWVudC5iYXNlLmNsaWVudElu
Zm8pOworICAgICAgICB9CisKICAgICAgICAgdm9pZCBjbG9zZShXZWJQYWdlUHJveHkqIHBhZ2Up
IG92ZXJyaWRlCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICghbV9jbGllbnQuY2xvc2UpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlVUlDbGllbnQu
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVudC5oCmluZGV4
IGQ5OWIxNTAxN2UxLi4xNDM1ZTE4ZmViYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50LmgKQEAgLTYzLDYgKzYzLDEyIEBAIGVudW0gewogfTsK
IHR5cGVkZWYgdWludDMyX3QgV0tBdXRvcGxheUV2ZW50RmxhZ3M7CiAKK2VudW0geworICAgIGtX
S1Jlc291cmNlTGltaXRNZW1vcnksCisgICAga1dLUmVzb3VyY2VMaW1pdENQVSwKK307Cit0eXBl
ZGVmIHVpbnQzMl90IFdLUmVzb3VyY2VMaW1pdDsKKwogV0tfRVhQT1JUIFdLVHlwZUlEIFdLUGFn
ZVJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbFJlc3VsdExpc3RlbmVyR2V0VHlwZUlEKCk7CiBX
S19FWFBPUlQgdm9pZCBXS1BhZ2VSdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWxSZXN1bHRMaXN0
ZW5lckNhbGwoV0tQYWdlUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsUmVzdWx0TGlzdGVuZXJS
ZWYgbGlzdGVuZXIsIGJvb2wgcmVzdWx0KTsKIApAQCAtMTIyLDYgKzEyOCw3IEBAIHR5cGVkZWYg
dm9pZCAoKldLRnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lQ2FsbGJhY2spKFdLUGFnZVJlZiBw
YWdlLCBjb25zdCB2b2lkCiB0eXBlZGVmIHZvaWQgKCpXS1JlcXVlc3RQb2ludGVyTG9ja0NhbGxi
YWNrKShXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZv
aWQgKCpXS0RpZExvc2VQb2ludGVyTG9ja0NhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgY29uc3Qg
dm9pZCogY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS0hhc1ZpZGVvSW5QaWN0dXJlSW5Q
aWN0dXJlRGlkQ2hhbmdlQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBib29sIGhhc1ZpZGVvSW5Q
aWN0dXJlSW5QaWN0dXJlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKK3R5cGVkZWYgdm9pZCAo
KldLRGlkRXhjZWVkQmFja2dyb3VuZFJlc291cmNlTGltaXRXaGlsZUluRm9yZWdyb3VuZENhbGxi
YWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tSZXNvdXJjZUxpbWl0IGxpbWl0LCBjb25zdCB2b2lkKiBj
bGllbnRJbmZvKTsKICAgICAKIC8vIERlcHJlY2F0ZWQKIHR5cGVkZWYgV0tQYWdlUmVmICgqV0tQ
YWdlQ3JlYXRlTmV3UGFnZUNhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjApKFdLUGFnZVJl
ZiBwYWdlLCBXS0RpY3Rpb25hcnlSZWYgZmVhdHVyZXMsIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZp
ZXJzLCBXS0V2ZW50TW91c2VCdXR0b24gbW91c2VCdXR0b24sIGNvbnN0IHZvaWQgKmNsaWVudElu
Zm8pOwpAQCAtOTI2LDYgKzkzMyw3IEBAIHR5cGVkZWYgc3RydWN0IFdLUGFnZVVJQ2xpZW50VjEw
IHsKICAgICAKICAgICAvLyBWZXJzaW9uIDEwLgogICAgIFdLSGFzVmlkZW9JblBpY3R1cmVJblBp
Y3R1cmVEaWRDaGFuZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzVmlk
ZW9JblBpY3R1cmVJblBpY3R1cmVEaWRDaGFuZ2U7CisgICAgV0tEaWRFeGNlZWRCYWNrZ3JvdW5k
UmVzb3VyY2VMaW1pdFdoaWxlSW5Gb3JlZ3JvdW5kQ2FsbGJhY2sgICAgICAgICBkaWRFeGNlZWRC
YWNrZ3JvdW5kUmVzb3VyY2VMaW1pdFdoaWxlSW5Gb3JlZ3JvdW5kOwogfSBXS1BhZ2VVSUNsaWVu
dFYxMDsKICAgICAKICNpZmRlZiBfX2NwbHVzcGx1cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcAppbmRleCA0MzhkZWJkODJiMS4uZjRhYmIxMWZjNzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC02NzA2LDYgKzY3MDYsMTEg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0KHVpbnQ2
NF90IGNvbnRleHRJZCwgYm9vbCBzaG91bGQKIH0KICNlbmRpZgogCit2b2lkIFdlYlBhZ2VQcm94
eTo6ZGlkRXhjZWVkSW5hY3RpdmVNZW1vcnlMaW1pdFdoaWxlQWN0aXZlKCkKK3sKKyAgICBtX3Vp
Q2xpZW50LT5kaWRFeGNlZWRCYWNrZ3JvdW5kUmVzb3VyY2VMaW1pdFdoaWxlSW5Gb3JlZ3JvdW5k
KCp0aGlzLCBrV0tSZXNvdXJjZUxpbWl0TWVtb3J5KTsKK30KKwogdm9pZCBXZWJQYWdlUHJveHk6
OmRpZENoYW5nZUJhY2tncm91bmRDb2xvcigpCiB7CiAgICAgbV9wYWdlQ2xpZW50LmRpZENoYW5n
ZUJhY2tncm91bmRDb2xvcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
CmluZGV4IDE4OGFjMzYxMjg1Li44YzkyNDhiZGU4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaApAQCAtMzg0LDYgKzM4NCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNl
dElzVXNpbmdIaWdoUGVyZm9ybWFuY2VXZWJHTChib29sIHZhbHVlKSB7IG1faXNVc2luZ0hpZ2hQ
ZXJmb3JtYW5jZVdlYkdMID0gdmFsdWU7IH0KICAgICBib29sIGlzVXNpbmdIaWdoUGVyZm9ybWFu
Y2VXZWJHTCgpIGNvbnN0IHsgcmV0dXJuIG1faXNVc2luZ0hpZ2hQZXJmb3JtYW5jZVdlYkdMOyB9
CiAKKyAgICB2b2lkIGRpZEV4Y2VlZEluYWN0aXZlTWVtb3J5TGltaXRXaGlsZUFjdGl2ZSgpOwor
CiAgICAgdm9pZCBjbG9zZVBhZ2UoYm9vbCBzdG9wUmVzcG9uc2l2ZW5lc3NUaW1lcik7CiAKICAg
ICB2b2lkIGFkZFBsYXRmb3JtTG9hZFBhcmFtZXRlcnMoTG9hZFBhcmFtZXRlcnMmKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXggODMwMTM1YzE1
MDAuLjAxZmFkYTAyMDQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmNwcApAQCAtMTEzMyw2ICsxMTMzLDEyIEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5Ojps
b2dEaWFnbm9zdGljTWVzc2FnZUZvclJlc291cmNlTGltaXRUZXJtaW5hdGlvbihjb25zdCBTdHJp
CiAgICAgICAgICgqcGFnZXMoKS5iZWdpbigpKS0+bG9nRGlhZ25vc3RpY01lc3NhZ2UoRGlhZ25v
c3RpY0xvZ2dpbmdLZXlzOjpzaW11bGF0ZWRQYWdlQ3Jhc2hLZXkoKSwgbGltaXRLZXksIFNob3Vs
ZFNhbXBsZTo6Tm8pOwogfQogCit2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkRXhjZWVkSW5hY3Rp
dmVNZW1vcnlMaW1pdFdoaWxlQWN0aXZlKCkKK3sKKyAgICBmb3IgKGF1dG8mIHBhZ2UgOiBwYWdl
cygpKQorICAgICAgICBwYWdlLT5kaWRFeGNlZWRJbmFjdGl2ZU1lbW9yeUxpbWl0V2hpbGVBY3Rp
dmUoKTsKK30KKwogdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZEV4Y2VlZEFjdGl2ZU1lbW9yeUxp
bWl0KCkKIHsKICAgICBSRUxFQVNFX0xPR19FUlJPUihQZXJmb3JtYW5jZUxvZ2dpbmcsICIlcCAt
IFdlYlByb2Nlc3NQcm94eTo6ZGlkRXhjZWVkQWN0aXZlTWVtb3J5TGltaXQoKSBUZXJtaW5hdGlu
ZyBXZWJQcm9jZXNzIHRoYXQgaGFzIGV4Y2VlZGVkIHRoZSBhY3RpdmUgbWVtb3J5IGxpbWl0Iiwg
dGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXgg
NDE1ODJhNzliZTMuLjY5NmU5YzAyM2JkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5oCkBAIC0xNzQsNiArMTc0LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBt
ZW1vcnlQcmVzc3VyZVN0YXR1c0NoYW5nZWQoYm9vbCBpc1VuZGVyTWVtb3J5UHJlc3N1cmUpIHsg
bV9pc1VuZGVyTWVtb3J5UHJlc3N1cmUgPSBpc1VuZGVyTWVtb3J5UHJlc3N1cmU7IH0KICAgICBi
b29sIGlzVW5kZXJNZW1vcnlQcmVzc3VyZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNVbmRlck1lbW9y
eVByZXNzdXJlOyB9CisgICAgdm9pZCBkaWRFeGNlZWRJbmFjdGl2ZU1lbW9yeUxpbWl0V2hpbGVB
Y3RpdmUoKTsKIAogICAgIHZvaWQgcHJvY2Vzc1Rlcm1pbmF0ZWQoKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KaW5kZXgg
M2QwZGJmMDYwMTMuLjM1NjgwOWMwZDAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KQEAgLTU2LDQgKzU2LDUgQEAgbWVz
c2FnZXMgLT4gV2ViUHJvY2Vzc1Byb3h5IExlZ2FjeVJlY2VpdmVyIHsKICAgICBEaWRSZWNlaXZl
QmFja2dyb3VuZFJlc3BvbnNpdmVuZXNzUGluZygpCiAKICAgICBNZW1vcnlQcmVzc3VyZVN0YXR1
c0NoYW5nZWQoYm9vbCBpc1VuZGVyTWVtb3J5UHJlc3N1cmUpCisgICAgRGlkRXhjZWVkSW5hY3Rp
dmVNZW1vcnlMaW1pdFdoaWxlQWN0aXZlKCkKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuY3BwCmluZGV4IGU4N2NiZWM1NGEzLi42MDE5OGEzZmIzOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC0yNzgsNiArMjc4LDkgQEAgdm9pZCBX
ZWJQcm9jZXNzOjppbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzJiYgcGFyYW1ldGVycykKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBwYXJl
bnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkRp
ZEV4Y2VlZEluYWN0aXZlTWVtb3J5TGltaXQoKSwgMCk7CiAgICAgICAgIH0pOworICAgICAgICBt
ZW1vcnlQcmVzc3VyZUhhbmRsZXIuc2V0RGlkRXhjZWVkSW5hY3RpdmVMaW1pdFdoaWxlQWN0aXZl
Q2FsbGJhY2soW3RoaXNdICgpIHsKKyAgICAgICAgICAgIHBhcmVudFByb2Nlc3NDb25uZWN0aW9u
KCktPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6RGlkRXhjZWVkSW5hY3RpdmVNZW1v
cnlMaW1pdFdoaWxlQWN0aXZlKCksIDApOworICAgICAgICB9KTsKICNlbmRpZgogICAgICAgICBt
ZW1vcnlQcmVzc3VyZUhhbmRsZXIuc2V0TWVtb3J5UHJlc3N1cmVTdGF0dXNDaGFuZ2VkQ2FsbGJh
Y2soW3RoaXNdKGJvb2wgaXNVbmRlck1lbW9yeVByZXNzdXJlKSB7CiAgICAgICAgICAgICBpZiAo
cGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKSkK
</data>
<flag name="review"
          id="331622"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>310559</attachid>
            <date>2017-05-18 15:33:48 -0700</date>
            <delta_ts>2017-05-18 23:54:32 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>land-172244.diff</filename>
            <type>text/plain</type>
            <size>14107</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggNDdiZDkwNTQ0ZDYuLmMwNmYyOTc0ZDZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE3
LTA1LTE4ICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxlLmNvbT4KKworICAgICAgICBbV0sy
XSBOb3RpZnkgV2ViUGFnZVByb3h5IGNsaWVudCB3aGVuIGFuIGFjdGl2ZSBwcm9jZXNzIGdvZXMg
b3ZlciB0aGUgaW5hY3RpdmUgbWVtb3J5IGxpbWl0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzIyNDQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMx
ODAwOTQzPgorCisgICAgICAgIFJldmlld2VkIGJ5IEdlb2ZmcmV5IEdhcmVuLgorCisgICAgICAg
IEFkZCBhbiBpbnN0YWxsYWJsZSBjYWxsYmFjayB0byBNZW1vcnlQcmVzc3VyZUhhbmRsZXIgdGhh
dCBnZXRzIGludm9rZWQgd2hlbiBhbiBhY3RpdmUgcHJvY2VzcworICAgICAgICBleGNlZWRzIHRo
ZSBraWxsIGxpbWl0IGZvciBhbiBpbmFjdGl2ZSBwcm9jZXNzLgorCisgICAgICAgIFRoaXMgYWxs
b3dzIGEgVUkgY2xpZW50IHRvIGJlY29tZSBhd2FyZSB0aGF0IGJhY2tncm91bmRpbmcgYSB0YWIg
bWF5IGNhdXNlIGl0IHRvIGdldCBraWxsZWQuCisKKyAgICAgICAgKiB3dGYvTWVtb3J5UHJlc3N1
cmVIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdURjo6dGhyZXNob2xkRm9yTWVtb3J5S2lsbFdpdGhQ
cm9jZXNzU3RhdGUpOgorICAgICAgICAoV1RGOjpNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnRocmVz
aG9sZEZvck1lbW9yeUtpbGwpOgorICAgICAgICAoV1RGOjpNZW1vcnlQcmVzc3VyZUhhbmRsZXI6
Om1lYXN1cmVtZW50VGltZXJGaXJlZCk6CisgICAgICAgIChXVEY6Ok1lbW9yeVByZXNzdXJlSGFu
ZGxlcjo6ZG9lc0V4Y2VlZEluYWN0aXZlTGltaXRXaGlsZUFjdGl2ZSk6CisgICAgICAgIChXVEY6
Ok1lbW9yeVByZXNzdXJlSGFuZGxlcjo6ZG9lc05vdEV4Y2VlZEluYWN0aXZlTGltaXRXaGlsZUFj
dGl2ZSk6CisgICAgICAgICogd3RmL01lbW9yeVByZXNzdXJlSGFuZGxlci5oOgorICAgICAgICAo
V1RGOjpNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnNldERpZEV4Y2VlZEluYWN0aXZlTGltaXRXaGls
ZUFjdGl2ZUNhbGxiYWNrKToKKwogMjAxNy0wNS0xNSAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBs
ZS5jb20+CiAKICAgICAgICAgUm9sbGluZyBvdXQgcjIxNDAzOCBhbmQgcjIxMzY5NzogQ3Jhc2hl
cyB3aGVuIHVzaW5nIGNvbXB1dGVkIHByb3BlcnRpZXMgd2l0aCByZXN0IGRlc3RydWN0dXJpbmcg
YW5kIG9iamVjdCBzcHJlYWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlQcmVz
c3VyZUhhbmRsZXIuY3BwIGIvU291cmNlL1dURi93dGYvTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNw
cAppbmRleCA3ZmI4OGY0Y2NkOC4uOTQyZWRjMzMwYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dURi93dGYvTWVtb3J5
UHJlc3N1cmVIYW5kbGVyLmNwcApAQCAtNzUsMTcgKzc1LDIzIEBAIHN0YXRpYyBjb25zdCBjaGFy
KiB0b1N0cmluZyhNZW1vcnlVc2FnZVBvbGljeSBwb2xpY3kpCiB9CiAjZW5kaWYKIAotc2l6ZV90
IE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6dGhyZXNob2xkRm9yTWVtb3J5S2lsbCgpCitzdGF0aWMg
c2l6ZV90IHRocmVzaG9sZEZvck1lbW9yeUtpbGxXaXRoUHJvY2Vzc1N0YXRlKFdlYnNhbVByb2Nl
c3NTdGF0ZSBwcm9jZXNzU3RhdGUpCiB7CiAjaWYgQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTTY0KQot
ICAgIGlmIChtX3Byb2Nlc3NTdGF0ZSA9PSBXZWJzYW1Qcm9jZXNzU3RhdGU6OkFjdGl2ZSkKKyAg
ICBpZiAocHJvY2Vzc1N0YXRlID09IFdlYnNhbVByb2Nlc3NTdGF0ZTo6QWN0aXZlKQogICAgICAg
ICByZXR1cm4gNCAqIEdCOwogICAgIHJldHVybiAyICogR0I7CiAjZWxzZQorICAgIFVOVVNFRF9Q
QVJBTShwcm9jZXNzU3RhdGUpOwogICAgIHJldHVybiAzICogR0I7CiAjZW5kaWYKIH0KIAorc2l6
ZV90IE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6dGhyZXNob2xkRm9yTWVtb3J5S2lsbCgpCit7Cisg
ICAgcmV0dXJuIHRocmVzaG9sZEZvck1lbW9yeUtpbGxXaXRoUHJvY2Vzc1N0YXRlKG1fcHJvY2Vz
c1N0YXRlKTsKK30KKwogc3RhdGljIHNpemVfdCB0aHJlc2hvbGRGb3JQb2xpY3koTWVtb3J5VXNh
Z2VQb2xpY3kgcG9saWN5KQogewogICAgIHN3aXRjaCAocG9saWN5KSB7CkBAIC0xNjMsNiArMTY5
LDI1IEBAIHZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjptZWFzdXJlbWVudFRpbWVyRmlyZWQo
KQogICAgICAgICByZWxlYXNlTWVtb3J5KENyaXRpY2FsOjpZZXMsIFN5bmNocm9ub3VzOjpObyk7
CiAgICAgICAgIGJyZWFrOwogICAgIH0KKworICAgIGlmIChwcm9jZXNzU3RhdGUoKSA9PSBXZWJz
YW1Qcm9jZXNzU3RhdGU6OkFjdGl2ZSAmJiBmb290cHJpbnQudmFsdWUoKSA+IHRocmVzaG9sZEZv
ck1lbW9yeUtpbGxXaXRoUHJvY2Vzc1N0YXRlKFdlYnNhbVByb2Nlc3NTdGF0ZTo6SW5hY3RpdmUp
KQorICAgICAgICBkb2VzRXhjZWVkSW5hY3RpdmVMaW1pdFdoaWxlQWN0aXZlKCk7CisgICAgZWxz
ZQorICAgICAgICBkb2VzTm90RXhjZWVkSW5hY3RpdmVMaW1pdFdoaWxlQWN0aXZlKCk7Cit9CisK
K3ZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpkb2VzRXhjZWVkSW5hY3RpdmVMaW1pdFdoaWxl
QWN0aXZlKCkKK3sKKyAgICBpZiAobV9oYXNJbnZva2VkRGlkRXhjZWVkSW5hY3RpdmVMaW1pdFdo
aWxlQWN0aXZlQ2FsbGJhY2spCisgICAgICAgIHJldHVybjsKKyAgICBpZiAobV9kaWRFeGNlZWRJ
bmFjdGl2ZUxpbWl0V2hpbGVBY3RpdmVDYWxsYmFjaykKKyAgICAgICAgbV9kaWRFeGNlZWRJbmFj
dGl2ZUxpbWl0V2hpbGVBY3RpdmVDYWxsYmFjaygpOworICAgIG1faGFzSW52b2tlZERpZEV4Y2Vl
ZEluYWN0aXZlTGltaXRXaGlsZUFjdGl2ZUNhbGxiYWNrID0gdHJ1ZTsKK30KKwordm9pZCBNZW1v
cnlQcmVzc3VyZUhhbmRsZXI6OmRvZXNOb3RFeGNlZWRJbmFjdGl2ZUxpbWl0V2hpbGVBY3RpdmUo
KQoreworICAgIG1faGFzSW52b2tlZERpZEV4Y2VlZEluYWN0aXZlTGltaXRXaGlsZUFjdGl2ZUNh
bGxiYWNrID0gZmFsc2U7CiB9CiAKIHZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpzZXRQcm9j
ZXNzU3RhdGUoV2Vic2FtUHJvY2Vzc1N0YXRlIHN0YXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmggYi9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlQcmVz
c3VyZUhhbmRsZXIuaAppbmRleCA0MTI4ZjVjZDcxYS4uYTE4ODU2ZDE1YzUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL01lbW9yeVByZXNzdXJlSGFuZGxlci5oCisrKyBiL1NvdXJjZS9XVEYv
d3RmL01lbW9yeVByZXNzdXJlSGFuZGxlci5oCkBAIC03Miw2ICs3Miw3IEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgc2V0TWVtb3J5S2lsbENhbGxiYWNrKFdURjo6RnVuY3Rpb248dm9pZCgpPiBmdW5j
dGlvbikgeyBtX21lbW9yeUtpbGxDYWxsYmFjayA9IFdURk1vdmUoZnVuY3Rpb24pOyB9CiAgICAg
dm9pZCBzZXRNZW1vcnlQcmVzc3VyZVN0YXR1c0NoYW5nZWRDYWxsYmFjayhXVEY6OkZ1bmN0aW9u
PHZvaWQoYm9vbCk+IGZ1bmN0aW9uKSB7IG1fbWVtb3J5UHJlc3N1cmVTdGF0dXNDaGFuZ2VkQ2Fs
bGJhY2sgPSBXVEZNb3ZlKGZ1bmN0aW9uKTsgfQorICAgIHZvaWQgc2V0RGlkRXhjZWVkSW5hY3Rp
dmVMaW1pdFdoaWxlQWN0aXZlQ2FsbGJhY2soV1RGOjpGdW5jdGlvbjx2b2lkKCk+IGZ1bmN0aW9u
KSB7IG1fZGlkRXhjZWVkSW5hY3RpdmVMaW1pdFdoaWxlQWN0aXZlQ2FsbGJhY2sgPSBXVEZNb3Zl
KGZ1bmN0aW9uKTsgfQogCiAgICAgdm9pZCBzZXRMb3dNZW1vcnlIYW5kbGVyKExvd01lbW9yeUhh
bmRsZXImJiBoYW5kbGVyKQogICAgIHsKQEAgLTE1Nyw2ICsxNTgsOCBAQCBwcml2YXRlOgogICAg
IHZvaWQgbWVhc3VyZW1lbnRUaW1lckZpcmVkKCk7CiAgICAgdm9pZCBzaHJpbmtPckRpZSgpOwog
ICAgIHZvaWQgc2V0TWVtb3J5VXNhZ2VQb2xpY3lCYXNlZE9uRm9vdHByaW50KHNpemVfdCk7Cisg
ICAgdm9pZCBkb2VzRXhjZWVkSW5hY3RpdmVMaW1pdFdoaWxlQWN0aXZlKCk7CisgICAgdm9pZCBk
b2VzTm90RXhjZWVkSW5hY3RpdmVMaW1pdFdoaWxlQWN0aXZlKCk7CiAKICNpZiBPUyhMSU5VWCkK
ICAgICBjbGFzcyBFdmVudEZEUG9sbGVyIHsKQEAgLTE5MCw2ICsxOTMsOCBAQCBwcml2YXRlOgog
ICAgIE1lbW9yeVVzYWdlUG9saWN5IG1fbWVtb3J5VXNhZ2VQb2xpY3kgeyBNZW1vcnlVc2FnZVBv
bGljeTo6VW5yZXN0cmljdGVkIH07CiAgICAgV1RGOjpGdW5jdGlvbjx2b2lkKCk+IG1fbWVtb3J5
S2lsbENhbGxiYWNrOwogICAgIFdURjo6RnVuY3Rpb248dm9pZChib29sKT4gbV9tZW1vcnlQcmVz
c3VyZVN0YXR1c0NoYW5nZWRDYWxsYmFjazsKKyAgICBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4gbV9k
aWRFeGNlZWRJbmFjdGl2ZUxpbWl0V2hpbGVBY3RpdmVDYWxsYmFjazsKKyAgICBib29sIG1faGFz
SW52b2tlZERpZEV4Y2VlZEluYWN0aXZlTGltaXRXaGlsZUFjdGl2ZUNhbGxiYWNrIHsgZmFsc2Ug
fTsKIAogI2lmIE9TKFdJTkRPV1MpCiAgICAgdm9pZCB3aW5kb3dzTWVhc3VyZW1lbnRUaW1lckZp
cmVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKaW5kZXggNWE3NjMyY2UzMGMuLjM5NTQxYmMzNmRhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsNDEgQEAKKzIwMTctMDUtMTggIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBw
bGUuY29tPgorCisgICAgICAgIFtXSzJdIE5vdGlmeSBXZWJQYWdlUHJveHkgY2xpZW50IHdoZW4g
YW4gYWN0aXZlIHByb2Nlc3MgZ29lcyBvdmVyIHRoZSBpbmFjdGl2ZSBtZW1vcnkgbGltaXQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MjI0NAorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vMzE4MDA5NDM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgR2Vv
ZmZyZXkgR2FyZW4uCisKKyAgICAgICAgQWRkIGEgV0tQYWdlVUlDbGllbnQgY2FsbGJhY2sgdGhh
dCBpcyBpbnZva2VkIHdoZW4gYW4gYWN0aXZlIHByb2Nlc3MgZXhjZWVkcyB0aGUgaW5hY3RpdmUg
bWVtb3J5IGxpbWl0LgorCisgICAgICAgIFdpdGggdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIGlt
cGxlbWVudGF0aW9uLCB0aGlzIG1lYW5zIHRoYXQgYSBVSSBjbGllbnQgY2FuIGxlYXJuIHRoYXQg
YmFja2dyb3VuZGluZworICAgICAgICBhIG5vbi1hdWRpYmxlLCBub24tY2FwdHVyaW5nIHRhYiBt
YXkgY2F1c2UgaXQgdG8gZ2V0IGtpbGxlZCBvbmNlIHRoZSBhY3RpdmUvaW5hY3RpdmUgaHlzdGVy
ZXNpcyB0aW1lCisgICAgICAgIGlzIG92ZXIgKDggbWludXRlcy4pCisKKyAgICAgICAgVGhlIGNh
bGxiYWNrIGNhbiBiZSBpbnZva2VkIG11bHRpcGxlIHRpbWVzIGlmIHdlIGV4Y2VlZCB0aGUgbGlt
aXQsIGFuZCB0aGVuIGdvIHVuZGVyLCBhbmQgZXhjZWVkIGFnYWluLgorCisgICAgICAgIFRoaXMg
aXMgdGhlIGNhbGxiYWNrOgorCisgICAgICAgICAgICBkaWRFeGNlZWRCYWNrZ3JvdW5kUmVzb3Vy
Y2VMaW1pdFdoaWxlSW5Gb3JlZ3JvdW5kKFdLUGFnZVJlZiwgV0tSZXNvdXJjZUxpbWl0KQorCisg
ICAgICAgIFdoZXJlIFdLUmVzb3VyY2VMaW1pdCBpcyBvbmUgb2YgeyBrV0tSZXNvdXJjZUxpbWl0
TWVtb3J5LCBrV0tSZXNvdXJjZUxpbWl0Q1BVIH0KKyAgICAgICAgVGhlIENQVSBlbnVtIHZhbHVl
IGlzIGEgcGxhY2Vob2xkZXIgcGVuZGluZyBpbXBsZW1lbnRhdGlvbiBzb29uLgorCisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oOgorICAgICAgICAoQVBJOjpVSUNsaWVudDo6
ZGlkRXhjZWVkQmFja2dyb3VuZFJlc291cmNlTGltaXRXaGlsZUluRm9yZWdyb3VuZCk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6CisgICAgICAgIChXS1BhZ2VTZXRQYWdl
VUlDbGllbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVudC5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmRpZEV4Y2VlZEluYWN0aXZlTWVtb3J5TGltaXRXaGlsZUFjdGl2ZSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmRp
ZEV4Y2VlZEluYWN0aXZlTWVtb3J5TGltaXRXaGlsZUFjdGl2ZSk6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorCiAyMDE3
LTA1LTE2ICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAogICAgICAgICBb
R0xpYl0gVXNlIFJ1bkxvb3BTb3VyY2VQcmlvcml0eTo6UnVuTG9vcERpc3BhdGNoZXIgYXMgdGhl
IEdTb2NrZXRNb25pdG9yJ3MgR1NvdXJjZSBwcmlvcml0eQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9BUElVSUNsaWVudC5oCmluZGV4IGM2YTgyN2Y2ZDAzLi4wYTI3MDlhZTlmOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaApAQCAtMTc3LDYgKzE3
Nyw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xpY2tBdXRvRmlsbEJ1dHRvbihX
ZWJLaXQ6OldlYlBhZ2VQcm94eSYsIEFQSTo6T2JqZWN0KikgeyB9CiAKICAgICB2aXJ0dWFsIHZv
aWQgaW1hZ2VPck1lZGlhRG9jdW1lbnRTaXplQ2hhbmdlZChjb25zdCBXZWJDb3JlOjpJbnRTaXpl
JikgeyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRXhjZWVkQmFja2dyb3VuZFJlc291cmNlTGlt
aXRXaGlsZUluRm9yZWdyb3VuZChXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdLUmVzb3VyY2VMaW1p
dCkgeyB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBBUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLUGFnZS5jcHAKaW5kZXggMjc4ZjVhNjgxMDIuLjc1NmM5NDllMWJhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApAQCAtMTc3Nyw2ICsxNzc3LDE0
IEBAIHZvaWQgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KFdLUGFnZVJlZiBwYWdlUmVmLCBjb25zdCBX
S1BhZ2VVSUNsaWVudEJhc2UqIHdrQ2xpZW50CiAgICAgICAgICAgICBtX2NsaWVudC5oYXNWaWRl
b0luUGljdHVyZUluUGljdHVyZURpZENoYW5nZSh0b0FQSShwYWdlKSwgaGFzVmlkZW9JblBpY3R1
cmVJblBpY3R1cmUsIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CiAgICAgICAgIH0KIAorICAg
ICAgICB2b2lkIGRpZEV4Y2VlZEJhY2tncm91bmRSZXNvdXJjZUxpbWl0V2hpbGVJbkZvcmVncm91
bmQoV2ViUGFnZVByb3h5JiBwYWdlLCBXS1Jlc291cmNlTGltaXQgbGltaXQpIG92ZXJyaWRlCisg
ICAgICAgIHsKKyAgICAgICAgICAgIGlmICghbV9jbGllbnQuZGlkRXhjZWVkQmFja2dyb3VuZFJl
c291cmNlTGltaXRXaGlsZUluRm9yZWdyb3VuZCkKKyAgICAgICAgICAgICAgICByZXR1cm47CisK
KyAgICAgICAgICAgIG1fY2xpZW50LmRpZEV4Y2VlZEJhY2tncm91bmRSZXNvdXJjZUxpbWl0V2hp
bGVJbkZvcmVncm91bmQodG9BUEkoJnBhZ2UpLCBsaW1pdCwgbV9jbGllbnQuYmFzZS5jbGllbnRJ
bmZvKTsKKyAgICAgICAgfQorCiAgICAgICAgIHZvaWQgY2xvc2UoV2ViUGFnZVByb3h5KiBwYWdl
KSBvdmVycmlkZQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAoIW1fY2xpZW50LmNsb3NlKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlVUlDbGllbnQuaAppbmRl
eCBkOTliMTUwMTdlMS4uMTQzNWUxOGZlYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVudC5oCkBAIC02Myw2ICs2MywxMiBAQCBlbnVtIHsKIH07
CiB0eXBlZGVmIHVpbnQzMl90IFdLQXV0b3BsYXlFdmVudEZsYWdzOwogCitlbnVtIHsKKyAgICBr
V0tSZXNvdXJjZUxpbWl0TWVtb3J5LAorICAgIGtXS1Jlc291cmNlTGltaXRDUFUsCit9OwordHlw
ZWRlZiB1aW50MzJfdCBXS1Jlc291cmNlTGltaXQ7CisKIFdLX0VYUE9SVCBXS1R5cGVJRCBXS1Bh
Z2VSdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWxSZXN1bHRMaXN0ZW5lckdldFR5cGVJRCgpOwog
V0tfRVhQT1JUIHZvaWQgV0tQYWdlUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsUmVzdWx0TGlz
dGVuZXJDYWxsKFdLUGFnZVJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbFJlc3VsdExpc3RlbmVy
UmVmIGxpc3RlbmVyLCBib29sIHJlc3VsdCk7CiAKQEAgLTEyMiw2ICsxMjgsNyBAQCB0eXBlZGVm
IHZvaWQgKCpXS0Z1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZUNhbGxiYWNrKShXS1BhZ2VSZWYg
cGFnZSwgY29uc3Qgdm9pZAogdHlwZWRlZiB2b2lkICgqV0tSZXF1ZXN0UG9pbnRlckxvY2tDYWxs
YmFjaykoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogdHlwZWRlZiB2
b2lkICgqV0tEaWRMb3NlUG9pbnRlckxvY2tDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0
IHZvaWQqIGNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tIYXNWaWRlb0luUGljdHVyZUlu
UGljdHVyZURpZENoYW5nZUNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgYm9vbCBoYXNWaWRlb0lu
UGljdHVyZUluUGljdHVyZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7Cit0eXBlZGVmIHZvaWQg
KCpXS0RpZEV4Y2VlZEJhY2tncm91bmRSZXNvdXJjZUxpbWl0V2hpbGVJbkZvcmVncm91bmRDYWxs
YmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLUmVzb3VyY2VMaW1pdCBsaW1pdCwgY29uc3Qgdm9pZCog
Y2xpZW50SW5mbyk7CiAgICAgCiAvLyBEZXByZWNhdGVkCiB0eXBlZGVmIFdLUGFnZVJlZiAoKldL
UGFnZUNyZWF0ZU5ld1BhZ2VDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwKShXS1BhZ2VS
ZWYgcGFnZSwgV0tEaWN0aW9uYXJ5UmVmIGZlYXR1cmVzLCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlm
aWVycywgV0tFdmVudE1vdXNlQnV0dG9uIG1vdXNlQnV0dG9uLCBjb25zdCB2b2lkICpjbGllbnRJ
bmZvKTsKQEAgLTkyNiw2ICs5MzMsNyBAQCB0eXBlZGVmIHN0cnVjdCBXS1BhZ2VVSUNsaWVudFYx
MCB7CiAgICAgCiAgICAgLy8gVmVyc2lvbiAxMC4KICAgICBXS0hhc1ZpZGVvSW5QaWN0dXJlSW5Q
aWN0dXJlRGlkQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc1Zp
ZGVvSW5QaWN0dXJlSW5QaWN0dXJlRGlkQ2hhbmdlOworICAgIFdLRGlkRXhjZWVkQmFja2dyb3Vu
ZFJlc291cmNlTGltaXRXaGlsZUluRm9yZWdyb3VuZENhbGxiYWNrICAgICAgICAgZGlkRXhjZWVk
QmFja2dyb3VuZFJlc291cmNlTGltaXRXaGlsZUluRm9yZWdyb3VuZDsKIH0gV0tQYWdlVUlDbGll
bnRWMTA7CiAgICAgCiAjaWZkZWYgX19jcGx1c3BsdXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggNDM4ZGViZDgyYjEuLmY0YWJiMTFmYzc4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNjcwNiw2ICs2NzA2LDEx
IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRTaG91bGRQbGF5VG9QbGF5YmFja1RhcmdldCh1aW50
NjRfdCBjb250ZXh0SWQsIGJvb2wgc2hvdWxkCiB9CiAjZW5kaWYKIAordm9pZCBXZWJQYWdlUHJv
eHk6OmRpZEV4Y2VlZEluYWN0aXZlTWVtb3J5TGltaXRXaGlsZUFjdGl2ZSgpCit7CisgICAgbV91
aUNsaWVudC0+ZGlkRXhjZWVkQmFja2dyb3VuZFJlc291cmNlTGltaXRXaGlsZUluRm9yZWdyb3Vu
ZCgqdGhpcywga1dLUmVzb3VyY2VMaW1pdE1lbW9yeSk7Cit9CisKIHZvaWQgV2ViUGFnZVByb3h5
OjpkaWRDaGFuZ2VCYWNrZ3JvdW5kQ29sb3IoKQogewogICAgIG1fcGFnZUNsaWVudC5kaWRDaGFu
Z2VCYWNrZ3JvdW5kQ29sb3IoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aAppbmRleCAxODhhYzM2MTI4NS4uOGM5MjQ4YmRlODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKQEAgLTM4NCw2ICszODQsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
ZXRJc1VzaW5nSGlnaFBlcmZvcm1hbmNlV2ViR0woYm9vbCB2YWx1ZSkgeyBtX2lzVXNpbmdIaWdo
UGVyZm9ybWFuY2VXZWJHTCA9IHZhbHVlOyB9CiAgICAgYm9vbCBpc1VzaW5nSGlnaFBlcmZvcm1h
bmNlV2ViR0woKSBjb25zdCB7IHJldHVybiBtX2lzVXNpbmdIaWdoUGVyZm9ybWFuY2VXZWJHTDsg
fQogCisgICAgdm9pZCBkaWRFeGNlZWRJbmFjdGl2ZU1lbW9yeUxpbWl0V2hpbGVBY3RpdmUoKTsK
KwogICAgIHZvaWQgY2xvc2VQYWdlKGJvb2wgc3RvcFJlc3BvbnNpdmVuZXNzVGltZXIpOwogCiAg
ICAgdm9pZCBhZGRQbGF0Zm9ybUxvYWRQYXJhbWV0ZXJzKExvYWRQYXJhbWV0ZXJzJik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IDgzMDEzNWMx
NTAwLi4wMWZhZGEwMjA0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5jcHAKQEAgLTExMzMsNiArMTEzMywxMiBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6
bG9nRGlhZ25vc3RpY01lc3NhZ2VGb3JSZXNvdXJjZUxpbWl0VGVybWluYXRpb24oY29uc3QgU3Ry
aQogICAgICAgICAoKnBhZ2VzKCkuYmVnaW4oKSktPmxvZ0RpYWdub3N0aWNNZXNzYWdlKERpYWdu
b3N0aWNMb2dnaW5nS2V5czo6c2ltdWxhdGVkUGFnZUNyYXNoS2V5KCksIGxpbWl0S2V5LCBTaG91
bGRTYW1wbGU6Ok5vKTsKIH0KIAordm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZEV4Y2VlZEluYWN0
aXZlTWVtb3J5TGltaXRXaGlsZUFjdGl2ZSgpCit7CisgICAgZm9yIChhdXRvJiBwYWdlIDogcGFn
ZXMoKSkKKyAgICAgICAgcGFnZS0+ZGlkRXhjZWVkSW5hY3RpdmVNZW1vcnlMaW1pdFdoaWxlQWN0
aXZlKCk7Cit9CisKIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRFeGNlZWRBY3RpdmVNZW1vcnlM
aW1pdCgpCiB7CiAgICAgUkVMRUFTRV9MT0dfRVJST1IoUGVyZm9ybWFuY2VMb2dnaW5nLCAiJXAg
LSBXZWJQcm9jZXNzUHJveHk6OmRpZEV4Y2VlZEFjdGl2ZU1lbW9yeUxpbWl0KCkgVGVybWluYXRp
bmcgV2ViUHJvY2VzcyB0aGF0IGhhcyBleGNlZWRlZCB0aGUgYWN0aXZlIG1lbW9yeSBsaW1pdCIs
IHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmluZGV4
IDQxNTgyYTc5YmUzLi42OTZlOWMwMjNiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuaApAQCAtMTc0LDYgKzE3NCw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQg
bWVtb3J5UHJlc3N1cmVTdGF0dXNDaGFuZ2VkKGJvb2wgaXNVbmRlck1lbW9yeVByZXNzdXJlKSB7
IG1faXNVbmRlck1lbW9yeVByZXNzdXJlID0gaXNVbmRlck1lbW9yeVByZXNzdXJlOyB9CiAgICAg
Ym9vbCBpc1VuZGVyTWVtb3J5UHJlc3N1cmUoKSBjb25zdCB7IHJldHVybiBtX2lzVW5kZXJNZW1v
cnlQcmVzc3VyZTsgfQorICAgIHZvaWQgZGlkRXhjZWVkSW5hY3RpdmVNZW1vcnlMaW1pdFdoaWxl
QWN0aXZlKCk7CiAKICAgICB2b2lkIHByb2Nlc3NUZXJtaW5hdGVkKCk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4gYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCmluZGV4
IDNkMGRiZjA2MDEzLi4zNTY4MDljMGQwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC01Niw0ICs1Niw1IEBAIG1l
c3NhZ2VzIC0+IFdlYlByb2Nlc3NQcm94eSBMZWdhY3lSZWNlaXZlciB7CiAgICAgRGlkUmVjZWl2
ZUJhY2tncm91bmRSZXNwb25zaXZlbmVzc1BpbmcoKQogCiAgICAgTWVtb3J5UHJlc3N1cmVTdGF0
dXNDaGFuZ2VkKGJvb2wgaXNVbmRlck1lbW9yeVByZXNzdXJlKQorICAgIERpZEV4Y2VlZEluYWN0
aXZlTWVtb3J5TGltaXRXaGlsZUFjdGl2ZSgpCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLmNwcAppbmRleCBlODdjYmVjNTRhMy4uNjAxOThhM2ZiMzkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtMjc4LDYgKzI3OCw5IEBAIHZvaWQg
V2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycyYmIHBhcmFtZXRlcnMpCiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgcGFy
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpE
aWRFeGNlZWRJbmFjdGl2ZU1lbW9yeUxpbWl0KCksIDApOwogICAgICAgICB9KTsKKyAgICAgICAg
bWVtb3J5UHJlc3N1cmVIYW5kbGVyLnNldERpZEV4Y2VlZEluYWN0aXZlTGltaXRXaGlsZUFjdGl2
ZUNhbGxiYWNrKFt0aGlzXSAoKSB7CisgICAgICAgICAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlv
bigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkRpZEV4Y2VlZEluYWN0aXZlTWVt
b3J5TGltaXRXaGlsZUFjdGl2ZSgpLCAwKTsKKyAgICAgICAgfSk7CiAjZW5kaWYKICAgICAgICAg
bWVtb3J5UHJlc3N1cmVIYW5kbGVyLnNldE1lbW9yeVByZXNzdXJlU3RhdHVzQ2hhbmdlZENhbGxi
YWNrKFt0aGlzXShib29sIGlzVW5kZXJNZW1vcnlQcmVzc3VyZSkgewogICAgICAgICAgICAgaWYg
KHBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCkpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>