<?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>181353</bug_id>
          
          <creation_ts>2018-01-05 15:56:14 -0800</creation_ts>
          <short_desc>Show Keyboard when re-launching WKWebView with a previously focused element</short_desc>
          <delta_ts>2018-01-05 17:55:01 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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="Megan Gardner">megan_gardner</reporter>
          <assigned_to name="Megan Gardner">megan_gardner</assigned_to>
          <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1386346</commentid>
    <comment_count>0</comment_count>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2018-01-05 15:56:14 -0800</bug_when>
    <thetext>Show Keyboard when re-launching WKWebView with a previously focused element</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1386348</commentid>
    <comment_count>1</comment_count>
      <attachid>330603</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2018-01-05 16:01:03 -0800</bug_when>
    <thetext>Created attachment 330603
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1386379</commentid>
    <comment_count>2</comment_count>
      <attachid>330603</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2018-01-05 17:03:20 -0800</bug_when>
    <thetext>Comment on attachment 330603
Patch

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

&gt; Source/WebKit/UIProcess/PageClient.h:291
&gt; +    virtual void startAssistingNode(const AssistedNodeInformation&amp;, bool userIsInteracting, bool blurPreviousNode, API::Object* userData, bool changingActivityState) = 0;

Should stick this before the userData, that is traditionally the last argument

&gt; Source/WebKit/UIProcess/ios/WKContentView.h:30
&gt; -#import &lt;UIKit/UIKit.h&gt;
&gt; +#import &lt;UIKit/UIKitCore.h&gt;

Definitely not.

&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.h:285
&gt; +- (void)_startAssistingNode:(const WebKit::AssistedNodeInformation&amp;)information userIsInteracting:(BOOL)userIsInteracting blurPreviousNode:(BOOL)blurPreviousNode userObject:(NSObject &lt;NSSecureCoding&gt; *)userObject changingActivityState:(bool)changingActivityState;

Ditto the move-it-before-userObject thing

&gt; Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm:716
&gt; +void WebPageProxy::startAutoscrollAtPosition(const WebCore::FloatPoint&amp; positionInWidow)

Is this relevant? Also, widow?

&gt; Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm:896
&gt; +        m_deferredNodeAssistanceArguments = std::make_unique&lt;NodeAssistanceArguments&gt;(NodeAssistanceArguments { information, userIsInteracting, blurPreviousNode, userDataObject , changingActivityState});

Weird extraneous space

&gt; Source/WebKit/WebProcess/WebPage/WebPage.cpp:2717
&gt; +    SetForScope&lt;bool&gt; changingActivityStateChange { m_changingActivityState, true };

You may want to scope this more closely to the activity state change? Can any of these other things call into script? Actually, can /any/ of these things synchronously call into script?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1386416</commentid>
    <comment_count>3</comment_count>
      <attachid>330623</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2018-01-05 17:43:34 -0800</bug_when>
    <thetext>Created attachment 330623
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1386419</commentid>
    <comment_count>4</comment_count>
      <attachid>330623</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2018-01-05 17:46:31 -0800</bug_when>
    <thetext>Comment on attachment 330623
Patch

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

&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:3868
&gt; +- (void)_startAssistingNode:(const AssistedNodeInformation&amp;)information userIsInteracting:(BOOL)userIsInteracting blurPreviousNode:(BOOL)blurPreviousNode changingActivityState:(BOOL)changingActivityState userObject:(NSObject &lt;NSSecureCoding&gt; *)userObject 

You added a space at the end for some reason.

&gt; Source/WebKit/WebProcess/WebPage/WebPage.cpp:2727
&gt; +        SetForScope&lt;bool&gt; changingActivityStateChange { m_changingActivityState, true };

I see the logic in the name of the local but I also don’t know that it reads so great :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1386421</commentid>
    <comment_count>5</comment_count>
      <attachid>330625</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2018-01-05 17:49:21 -0800</bug_when>
    <thetext>Created attachment 330625
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1386423</commentid>
    <comment_count>6</comment_count>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2018-01-05 17:54:47 -0800</bug_when>
    <thetext>https://webkit.org/b/181353</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1386424</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-01-05 17:55:01 -0800</bug_when>
    <thetext>&lt;rdar://problem/36331806&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>330603</attachid>
            <date>2018-01-05 16:01:03 -0800</date>
            <delta_ts>2018-01-05 17:43:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-181353-20180105160102.patch</filename>
            <type>text/plain</type>
            <size>15610</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMjY0NzApCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBACisyMDE4LTAxLTA1ICBNZWdhbiBHYXJk
bmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgU2hvdyBLZXlib2FyZCB3
aGVuIHJlLWxhdW5jaGluZyBXS1dlYlZpZXcgd2l0aCBhIHByZXZpb3VzbHkgZm9jdXNlZCBlbGVt
ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODEz
NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVu
IHJlbGF1bmNoaW5nIGFuIGFwcCB3aXRoIGEgV0tXZWJWaWV3LCByZXN0b3JlIHRoZSBrZXlib2Fy
ZCBpZiB0aGVyZSB3YXMgYSBwcmV2aW91c2x5CisgICAgICAgIGZvY3VzZWQgZWxlbWVudCB0aGF0
IHdhcyBiZWluZyBhc3Npc3RlZC4gVGhlIGVsZW1lbnQgd2FzIGFscmVhZHkgYmVpbmcgdHJhY2tl
ZCwgd2UganVzdAorICAgICAgICBuZWVkZWQgdG8gbm90IGJhaWwgb24gc2hvd2luZyB0aGUga2V5
Ym9hcmQgZm9yIGluc3RhbmNlcyB3aGVyZSBpdCB3YXMgYSBzdGF0ZSBjaGFuZ2UgdGhhdAorICAg
ICAgICBjYXVzZWQgdGhlIGVsZW1lbnQgdG8gYmUgcmVmb2N1c2VkLgorCisgICAgICAgICogVUlQ
cm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAg
KiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmg6CisgICAgICAgICogVUlQcm9jZXNz
L2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudElt
cGw6OnN0YXJ0QXNzaXN0aW5nTm9kZSk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5t
bToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfc3RhcnRBc3Npc3RpbmdOb2RlOnVzZXJJc0lu
dGVyYWN0aW5nOmJsdXJQcmV2aW91c05vZGU6dXNlck9iamVjdDpjaGFuZ2luZ0FjdGl2aXR5U3Rh
dGU6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX3N0YXJ0QXNzaXN0aW5nTm9kZTp1c2Vy
SXNJbnRlcmFjdGluZzpibHVyUHJldmlvdXNOb2RlOnVzZXJPYmplY3Q6XSk6IERlbGV0ZWQuCisg
ICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW06CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6ZGlkQ29tbWl0TGF5ZXJUcmVlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpzdGFydEF1dG9zY3JvbGxBdFBvc2l0aW9uKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5OjpzdGFydEFzc2lzdGluZ05vZGUpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2V0QWN0
aXZpdHlTdGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmVsZW1lbnREaWRGb2N1cyk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKwogMjAxOC0wMS0wNSAg
V2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbQXR0YWNo
bWVudCBTdXBwb3J0XSBBZGQgYSB3YXkgdG8gd3JpdGUgYmxvYiBkYXRhIHRvIGEgZmlsZSBVUkwg
ZnJvbSB0aGUgVUkgcHJvY2VzcwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNs
aWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQu
aAkocmV2aXNpb24gMjI2MzcxKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVu
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yODgsNyArMjg4LDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCByZXN0b3JlUGFnZVN0YXRlKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRQb2lu
dD4gc2Nyb2xsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbE9yaWdp
biwgY29uc3QgV2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQmIG9ic2N1cmVkSW5zZXRzT25TYXZlLCBk
b3VibGUgc2NhbGUpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcmVzdG9yZVBhZ2VDZW50ZXJBbmRT
Y2FsZShzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UG9pbnQ+IGNlbnRlciwgZG91YmxlIHNj
YWxlKSA9IDA7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc3RhcnRBc3Npc3RpbmdOb2RlKGNvbnN0IEFz
c2lzdGVkTm9kZUluZm9ybWF0aW9uJiwgYm9vbCB1c2VySXNJbnRlcmFjdGluZywgYm9vbCBibHVy
UHJldmlvdXNOb2RlLCBBUEk6Ok9iamVjdCogdXNlckRhdGEpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgc3RhcnRBc3Npc3RpbmdOb2RlKGNvbnN0IEFzc2lzdGVkTm9kZUluZm9ybWF0aW9uJiwgYm9v
bCB1c2VySXNJbnRlcmFjdGluZywgYm9vbCBibHVyUHJldmlvdXNOb2RlLCBBUEk6Ok9iamVjdCog
dXNlckRhdGEsIGJvb2wgY2hhbmdpbmdBY3Rpdml0eVN0YXRlKSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIHN0b3BBc3Npc3RpbmdOb2RlKCkgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBpc0Fzc2lzdGlu
Z05vZGUoKSA9IDA7CiAgICAgdmlydHVhbCBib29sIGludGVycHJldEtleUV2ZW50KGNvbnN0IE5h
dGl2ZVdlYktleWJvYXJkRXZlbnQmLCBib29sIGlzQ2hhckV2ZW50KSA9IDA7CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAkocmV2aXNpb24gMjI2MzcxKQorKysgU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTI4
NSw2ICsyODUsNyBAQCBzdHJ1Y3QgTm9kZUFzc2lzdGFuY2VBcmd1bWVudHMgewogICAgIGJvb2wg
bV91c2VySXNJbnRlcmFjdGluZzsKICAgICBib29sIG1fYmx1clByZXZpb3VzTm9kZTsKICAgICBS
ZWZQdHI8QVBJOjpPYmplY3Q+IG1fdXNlckRhdGE7CisgICAgYm9vbCBtX2NoYW5naW5nQWN0aXZp
dHlTdGF0ZTsKIH07CiAKIHVzaW5nIERyYXdUb1BERkNhbGxiYWNrID0gR2VuZXJpY0NhbGxiYWNr
PGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSY+OwpAQCAtMTU5Nyw3ICsxNTk4LDcgQEAgcHJpdmF0
ZToKIAogICAgIHZvaWQgZGlkR2V0VGFwSGlnaGxpZ2h0R2VvbWV0cmllcyh1aW50NjRfdCByZXF1
ZXN0SUQsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBjb2xvciwgY29uc3QgVmVjdG9yPFdlYkNvcmU6
OkZsb2F0UXVhZD4mIGdlb21ldHJpZXMsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHRvcExlZnRS
YWRpdXMsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHRvcFJpZ2h0UmFkaXVzLCBjb25zdCBXZWJD
b3JlOjpJbnRTaXplJiBib3R0b21MZWZ0UmFkaXVzLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBi
b3R0b21SaWdodFJhZGl1cyk7CiAKLSAgICB2b2lkIHN0YXJ0QXNzaXN0aW5nTm9kZShjb25zdCBB
c3Npc3RlZE5vZGVJbmZvcm1hdGlvbiYsIGJvb2wgdXNlcklzSW50ZXJhY3RpbmcsIGJvb2wgYmx1
clByZXZpb3VzTm9kZSwgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIHN0YXJ0QXNzaXN0aW5n
Tm9kZShjb25zdCBBc3Npc3RlZE5vZGVJbmZvcm1hdGlvbiYsIGJvb2wgdXNlcklzSW50ZXJhY3Rp
bmcsIGJvb2wgYmx1clByZXZpb3VzTm9kZSwgY29uc3QgVXNlckRhdGEmLCBib29sIGNoYW5naW5n
QWN0aXZpdHlTdGF0ZSk7CiAgICAgdm9pZCBzdG9wQXNzaXN0aW5nTm9kZSgpOwogCiAgICAgdm9p
ZCBzaG93SW5zcGVjdG9ySGlnaGxpZ2h0KGNvbnN0IFdlYkNvcmU6OkhpZ2hsaWdodCYpOwpJbmRl
eDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5p
bgkocmV2aXNpb24gMjI2MzcxKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0zOTIsNyArMzkyLDcgQEAgbWVzc2Fn
ZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBSZXN0b3JlUGFnZUNlbnRlckFuZFNjYWxlKHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRQb2ludD4gdW5vYnNjdXJlZENlbnRlciwgZG91YmxlIHNj
YWxlKQogICAgIERpZEdldFRhcEhpZ2hsaWdodEdlb21ldHJpZXModWludDY0X3QgcmVxdWVzdElE
LCBXZWJDb3JlOjpDb2xvciBjb2xvciwgVmVjdG9yPFdlYkNvcmU6OkZsb2F0UXVhZD4gZ2VvbWV0
cmllcywgV2ViQ29yZTo6SW50U2l6ZSB0b3BMZWZ0UmFkaXVzLCBXZWJDb3JlOjpJbnRTaXplIHRv
cFJpZ2h0UmFkaXVzLCBXZWJDb3JlOjpJbnRTaXplIGJvdHRvbUxlZnRSYWRpdXMsIFdlYkNvcmU6
OkludFNpemUgYm90dG9tUmlnaHRSYWRpdXMpCiAKLSAgICBTdGFydEFzc2lzdGluZ05vZGUoc3Ry
dWN0IFdlYktpdDo6QXNzaXN0ZWROb2RlSW5mb3JtYXRpb24gaW5mb3JtYXRpb24sIGJvb2wgdXNl
cklzSW50ZXJhY3RpbmcsIGJvb2wgYmx1clByZXZpb3VzTm9kZSwgV2ViS2l0OjpVc2VyRGF0YSB1
c2VyRGF0YSkKKyAgICBTdGFydEFzc2lzdGluZ05vZGUoc3RydWN0IFdlYktpdDo6QXNzaXN0ZWRO
b2RlSW5mb3JtYXRpb24gaW5mb3JtYXRpb24sIGJvb2wgdXNlcklzSW50ZXJhY3RpbmcsIGJvb2wg
Ymx1clByZXZpb3VzTm9kZSwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSwgYm9vbCBjaGFuZ2lu
Z0FjdGl2aXR5U3RhdGUpCiAgICAgU3RvcEFzc2lzdGluZ05vZGUoKQogICAgIE92ZXJmbG93U2Ny
b2xsV2lsbFN0YXJ0U2Nyb2xsKCkKICAgICBPdmVyZmxvd1Njcm9sbERpZEVuZFNjcm9sbCgpCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1Mu
aAkocmV2aXNpb24gMjI2MzcxKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VD
bGllbnRJbXBsSU9TLmgJKHdvcmtpbmcgY29weSkKQEAgLTEyMSw3ICsxMjEsNyBAQCBwcml2YXRl
OgogICAgIHZvaWQgcmVzdG9yZVBhZ2VTdGF0ZShzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0
UG9pbnQ+LCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRC
b3hFeHRlbnQmLCBkb3VibGUpIG92ZXJyaWRlOwogICAgIHZvaWQgcmVzdG9yZVBhZ2VDZW50ZXJB
bmRTY2FsZShzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UG9pbnQ+LCBkb3VibGUpIG92ZXJy
aWRlOwogCi0gICAgdm9pZCBzdGFydEFzc2lzdGluZ05vZGUoY29uc3QgQXNzaXN0ZWROb2RlSW5m
b3JtYXRpb24mLCBib29sIHVzZXJJc0ludGVyYWN0aW5nLCBib29sIGJsdXJQcmV2aW91c05vZGUs
IEFQSTo6T2JqZWN0KiB1c2VyRGF0YSkgb3ZlcnJpZGU7CisgICAgdm9pZCBzdGFydEFzc2lzdGlu
Z05vZGUoY29uc3QgQXNzaXN0ZWROb2RlSW5mb3JtYXRpb24mLCBib29sIHVzZXJJc0ludGVyYWN0
aW5nLCBib29sIGJsdXJQcmV2aW91c05vZGUsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgYm9vbCBj
aGFuZ2luZ0FjdGl2aXR5U3RhdGUpIG92ZXJyaWRlOwogICAgIHZvaWQgc3RvcEFzc2lzdGluZ05v
ZGUoKSBvdmVycmlkZTsKICAgICBib29sIGlzQXNzaXN0aW5nTm9kZSgpIG92ZXJyaWRlOwogICAg
IHZvaWQgc2VsZWN0aW9uRGlkQ2hhbmdlKCkgb3ZlcnJpZGU7CkluZGV4OiBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCShyZXZpc2lvbiAyMjYz
NzEpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0J
KHdvcmtpbmcgY29weSkKQEAgLTUzNCw3ICs1MzQsNyBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpy
ZXN0b3JlUGFnZUNlbnRlckFuCiAgICAgW21fd2ViVmlldyBfcmVzdG9yZVBhZ2VTdGF0ZVRvVW5v
YnNjdXJlZENlbnRlcjpjZW50ZXIgc2NhbGU6c2NhbGVdOwogfQogCi12b2lkIFBhZ2VDbGllbnRJ
bXBsOjpzdGFydEFzc2lzdGluZ05vZGUoY29uc3QgQXNzaXN0ZWROb2RlSW5mb3JtYXRpb24mIG5v
ZGVJbmZvcm1hdGlvbiwgYm9vbCB1c2VySXNJbnRlcmFjdGluZywgYm9vbCBibHVyUHJldmlvdXNO
b2RlLCBBUEk6Ok9iamVjdCogdXNlckRhdGEpCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpzdGFydEFz
c2lzdGluZ05vZGUoY29uc3QgQXNzaXN0ZWROb2RlSW5mb3JtYXRpb24mIG5vZGVJbmZvcm1hdGlv
biwgYm9vbCB1c2VySXNJbnRlcmFjdGluZywgYm9vbCBibHVyUHJldmlvdXNOb2RlLCBBUEk6Ok9i
amVjdCogdXNlckRhdGEsIGJvb2wgY2hhbmdpbmdBY3Rpdml0eVN0YXRlKQogewogICAgIE1FU1NB
R0VfQ0hFQ0soIXVzZXJEYXRhIHx8IHVzZXJEYXRhLT50eXBlKCkgPT0gQVBJOjpPYmplY3Q6OlR5
cGU6OkRhdGEpOwogCkBAIC01NDksNyArNTQ5LDcgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6c3Rh
cnRBc3Npc3RpbmdOb2RlKAogICAgICAgICB9CiAgICAgfQogCi0gICAgW21fY29udGVudFZpZXcg
X3N0YXJ0QXNzaXN0aW5nTm9kZTpub2RlSW5mb3JtYXRpb24gdXNlcklzSW50ZXJhY3Rpbmc6dXNl
cklzSW50ZXJhY3RpbmcgYmx1clByZXZpb3VzTm9kZTpibHVyUHJldmlvdXNOb2RlIHVzZXJPYmpl
Y3Q6dXNlck9iamVjdF07CisgICAgW21fY29udGVudFZpZXcgX3N0YXJ0QXNzaXN0aW5nTm9kZTpu
b2RlSW5mb3JtYXRpb24gdXNlcklzSW50ZXJhY3Rpbmc6dXNlcklzSW50ZXJhY3RpbmcgYmx1clBy
ZXZpb3VzTm9kZTpibHVyUHJldmlvdXNOb2RlIHVzZXJPYmplY3Q6dXNlck9iamVjdCBjaGFuZ2lu
Z0FjdGl2aXR5U3RhdGU6Y2hhbmdpbmdBY3Rpdml0eVN0YXRlXTsKIH0KIAogYm9vbCBQYWdlQ2xp
ZW50SW1wbDo6aXNBc3Npc3RpbmdOb2RlKCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dLQ29udGVudFZpZXcuaAkocmV2aXNpb24gMjI2MzcxKQorKysgU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsNyAr
MjcsNyBAQAogI2ltcG9ydCAiV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyLmgiCiAjaW1wb3J0
ICJXS0Jyb3dzaW5nQ29udGV4dEdyb3VwLmgiCiAjaW1wb3J0ICJXS1Byb2Nlc3NHcm91cC5oIgot
I2ltcG9ydCA8VUlLaXQvVUlLaXQuaD4KKyNpbXBvcnQgPFVJS2l0L1VJS2l0Q29yZS5oPgogI2lt
cG9ydCA8d3RmL1JldGFpblB0ci5oPgogCiBAY2xhc3MgV0tDb250ZW50VmlldzsKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLmgJKHJldmlzaW9uIDIyNjM3MSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMjgyLDcgKzI4
Miw3IEBAIEZPUl9FQUNIX1dLQ09OVEVOVFZJRVdfQUNUSU9OKERFQ0xBUkVfV0sKIAogLSAoQk9P
TClfbWF5RGlzYWJsZURvdWJsZVRhcEdlc3R1cmVzRHVyaW5nU2luZ2xlVGFwOwogLSAodm9pZClf
ZGlzYWJsZURvdWJsZVRhcEdlc3R1cmVzRHVyaW5nVGFwSWZOZWNlc3Nhcnk6KHVpbnQ2NF90KXJl
cXVlc3RJRDsKLS0gKHZvaWQpX3N0YXJ0QXNzaXN0aW5nTm9kZTooY29uc3QgV2ViS2l0OjpBc3Np
c3RlZE5vZGVJbmZvcm1hdGlvbiYpaW5mb3JtYXRpb24gdXNlcklzSW50ZXJhY3Rpbmc6KEJPT0wp
dXNlcklzSW50ZXJhY3RpbmcgYmx1clByZXZpb3VzTm9kZTooQk9PTClibHVyUHJldmlvdXNOb2Rl
IHVzZXJPYmplY3Q6KE5TT2JqZWN0IDxOU1NlY3VyZUNvZGluZz4gKil1c2VyT2JqZWN0OworLSAo
dm9pZClfc3RhcnRBc3Npc3RpbmdOb2RlOihjb25zdCBXZWJLaXQ6OkFzc2lzdGVkTm9kZUluZm9y
bWF0aW9uJilpbmZvcm1hdGlvbiB1c2VySXNJbnRlcmFjdGluZzooQk9PTCl1c2VySXNJbnRlcmFj
dGluZyBibHVyUHJldmlvdXNOb2RlOihCT09MKWJsdXJQcmV2aW91c05vZGUgdXNlck9iamVjdDoo
TlNPYmplY3QgPE5TU2VjdXJlQ29kaW5nPiAqKXVzZXJPYmplY3QgY2hhbmdpbmdBY3Rpdml0eVN0
YXRlOihib29sKWNoYW5naW5nQWN0aXZpdHlTdGF0ZTsKIC0gKHZvaWQpX3N0b3BBc3Npc3RpbmdO
b2RlOwogLSAodm9pZClfc2VsZWN0aW9uQ2hhbmdlZDsKIC0gKHZvaWQpX3VwZGF0ZUNoYW5nZWRT
ZWxlY3Rpb247CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmll
d0ludGVyYWN0aW9uLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0JKHJldmlzaW9uIDIyNjM3MSkKKysrIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0JKHdvcmtp
bmcgY29weSkKQEAgLTM4NjQsNyArMzg2NCw3IEBAIHN0YXRpYyBib29sIGlzQXNzaXN0YWJsZUlu
cHV0VHlwZShJbnB1dFQKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLS0gKHZvaWQpX3N0YXJ0QXNz
aXN0aW5nTm9kZTooY29uc3QgQXNzaXN0ZWROb2RlSW5mb3JtYXRpb24mKWluZm9ybWF0aW9uIHVz
ZXJJc0ludGVyYWN0aW5nOihCT09MKXVzZXJJc0ludGVyYWN0aW5nIGJsdXJQcmV2aW91c05vZGU6
KEJPT0wpYmx1clByZXZpb3VzTm9kZSB1c2VyT2JqZWN0OihOU09iamVjdCA8TlNTZWN1cmVDb2Rp
bmc+ICopdXNlck9iamVjdAorLSAodm9pZClfc3RhcnRBc3Npc3RpbmdOb2RlOihjb25zdCBBc3Np
c3RlZE5vZGVJbmZvcm1hdGlvbiYpaW5mb3JtYXRpb24gdXNlcklzSW50ZXJhY3Rpbmc6KEJPT0wp
dXNlcklzSW50ZXJhY3RpbmcgYmx1clByZXZpb3VzTm9kZTooQk9PTClibHVyUHJldmlvdXNOb2Rl
IHVzZXJPYmplY3Q6KE5TT2JqZWN0IDxOU1NlY3VyZUNvZGluZz4gKil1c2VyT2JqZWN0IGNoYW5n
aW5nQWN0aXZpdHlTdGF0ZTooQk9PTCljaGFuZ2luZ0FjdGl2aXR5U3RhdGUKIHsKICAgICBfaW5w
dXRWaWV3VXBkYXRlRGVmZXJyZXIgPSBudWxscHRyOwogCkBAIC0zODc2LDcgKzM4NzYsNyBAQCAt
ICh2b2lkKV9zdGFydEFzc2lzdGluZ05vZGU6KGNvbnN0IEFzc2lzCiAgICAgICAgIHNob3VsZFNo
b3dLZXlib2FyZCA9IFtpbnB1dERlbGVnYXRlIF93ZWJWaWV3Ol93ZWJWaWV3IGZvY3VzU2hvdWxk
U3RhcnRJbnB1dFNlc3Npb246Zm9jdXNlZEVsZW1lbnRJbmZvLmdldCgpXTsKICAgICBlbHNlIHsK
ICAgICAgICAgLy8gVGhlIGRlZmF1bHQgYmVoYXZpb3IgaXMgdG8gYWxsb3cgbm9kZSBhc3Npc3Rh
bmNlIGlmIHRoZSB1c2VyIGlzIGludGVyYWN0aW5nIG9yIHRoZSBrZXlib2FyZCBpcyBhbHJlYWR5
IGFjdGl2ZS4KLSAgICAgICAgc2hvdWxkU2hvd0tleWJvYXJkID0gdXNlcklzSW50ZXJhY3Rpbmcg
fHwgX3RleHRTZWxlY3Rpb25Bc3Npc3RhbnQ7CisgICAgICAgIHNob3VsZFNob3dLZXlib2FyZCA9
IHVzZXJJc0ludGVyYWN0aW5nIHx8IF90ZXh0U2VsZWN0aW9uQXNzaXN0YW50IHx8IGNoYW5naW5n
QWN0aXZpdHlTdGF0ZTsKICNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikKICAgICAgICAgc2hv
dWxkU2hvd0tleWJvYXJkIHw9IF9kcmFnRHJvcEludGVyYWN0aW9uU3RhdGUuaXNQZXJmb3JtaW5n
RHJvcCgpOwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFn
ZVByb3h5SU9TLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
ZWJQYWdlUHJveHlJT1MubW0JKHJldmlzaW9uIDIyNjM3MSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0JKHdvcmtpbmcgY29weSkKQEAgLTM5MCw3ICsz
OTAsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ29tbWl0TGF5ZXJUcmVlKGNvCiAgICAgfQog
CiAgICAgaWYgKG1faGFzRGVmZXJyZWRTdGFydEFzc2lzdGluZ05vZGUpIHsKLSAgICAgICAgbV9w
YWdlQ2xpZW50LnN0YXJ0QXNzaXN0aW5nTm9kZShtX2RlZmVycmVkTm9kZUFzc2lzdGFuY2VBcmd1
bWVudHMtPm1fbm9kZUluZm9ybWF0aW9uLCBtX2RlZmVycmVkTm9kZUFzc2lzdGFuY2VBcmd1bWVu
dHMtPm1fdXNlcklzSW50ZXJhY3RpbmcsIG1fZGVmZXJyZWROb2RlQXNzaXN0YW5jZUFyZ3VtZW50
cy0+bV9ibHVyUHJldmlvdXNOb2RlLCBtX2RlZmVycmVkTm9kZUFzc2lzdGFuY2VBcmd1bWVudHMt
Pm1fdXNlckRhdGEuZ2V0KCkpOworICAgICAgICBtX3BhZ2VDbGllbnQuc3RhcnRBc3Npc3RpbmdO
b2RlKG1fZGVmZXJyZWROb2RlQXNzaXN0YW5jZUFyZ3VtZW50cy0+bV9ub2RlSW5mb3JtYXRpb24s
IG1fZGVmZXJyZWROb2RlQXNzaXN0YW5jZUFyZ3VtZW50cy0+bV91c2VySXNJbnRlcmFjdGluZywg
bV9kZWZlcnJlZE5vZGVBc3Npc3RhbmNlQXJndW1lbnRzLT5tX2JsdXJQcmV2aW91c05vZGUsIG1f
ZGVmZXJyZWROb2RlQXNzaXN0YW5jZUFyZ3VtZW50cy0+bV91c2VyRGF0YS5nZXQoKSwgbV9kZWZl
cnJlZE5vZGVBc3Npc3RhbmNlQXJndW1lbnRzLT5tX2NoYW5naW5nQWN0aXZpdHlTdGF0ZSk7CiAg
ICAgICAgIG1faGFzRGVmZXJyZWRTdGFydEFzc2lzdGluZ05vZGUgPSBmYWxzZTsKICAgICAgICAg
bV9kZWZlcnJlZE5vZGVBc3Npc3RhbmNlQXJndW1lbnRzID0gbnVsbHB0cjsKICAgICB9CkBAIC03
MTMsOSArNzEzLDkgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnN0b3JlU2VsZWN0aW9uRm9yQWNjZQog
ICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U3RvcmVTZWxlY3Rpb25Gb3JB
Y2Nlc3NpYmlsaXR5KHNob3VsZFN0b3JlKSwgbV9wYWdlSUQpOwogfQogCi12b2lkIFdlYlBhZ2VQ
cm94eTo6c3RhcnRBdXRvc2Nyb2xsQXRQb3NpdGlvbihjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50
JiBwb3NpdGlvbikKK3ZvaWQgV2ViUGFnZVByb3h5OjpzdGFydEF1dG9zY3JvbGxBdFBvc2l0aW9u
KGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHBvc2l0aW9uSW5XaWRvdykKIHsKLSAgICBtX3By
b2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlN0YXJ0QXV0b3Njcm9sbEF0UG9zaXRpb24o
cG9zaXRpb24pLCBtX3BhZ2VJRCk7CisgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQ
YWdlOjpTdGFydEF1dG9zY3JvbGxBdFBvc2l0aW9uKHBvc2l0aW9uSW5XaWRvdyksIG1fcGFnZUlE
KTsKIH0KICAgICAKIHZvaWQgV2ViUGFnZVByb3h5OjpjYW5jZWxBdXRvc2Nyb2xsKCkKQEAgLTg4
OSwxNiArODg5LDE2IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRHZXRUYXBIaWdobGlnaHRHZW8K
ICAgICBtX3BhZ2VDbGllbnQuZGlkR2V0VGFwSGlnaGxpZ2h0R2VvbWV0cmllcyhyZXF1ZXN0SUQs
IGNvbG9yLCBoaWdobGlnaHRlZFF1YWRzLCB0b3BMZWZ0UmFkaXVzLCB0b3BSaWdodFJhZGl1cywg
Ym90dG9tTGVmdFJhZGl1cywgYm90dG9tUmlnaHRSYWRpdXMpOwogfQogCi12b2lkIFdlYlBhZ2VQ
cm94eTo6c3RhcnRBc3Npc3RpbmdOb2RlKGNvbnN0IEFzc2lzdGVkTm9kZUluZm9ybWF0aW9uJiBp
bmZvcm1hdGlvbiwgYm9vbCB1c2VySXNJbnRlcmFjdGluZywgYm9vbCBibHVyUHJldmlvdXNOb2Rl
LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6c3RhcnRBc3Np
c3RpbmdOb2RlKGNvbnN0IEFzc2lzdGVkTm9kZUluZm9ybWF0aW9uJiBpbmZvcm1hdGlvbiwgYm9v
bCB1c2VySXNJbnRlcmFjdGluZywgYm9vbCBibHVyUHJldmlvdXNOb2RlLCBjb25zdCBVc2VyRGF0
YSYgdXNlckRhdGEsIGJvb2wgY2hhbmdpbmdBY3Rpdml0eVN0YXRlKQogewogICAgIEFQSTo6T2Jq
ZWN0KiB1c2VyRGF0YU9iamVjdCA9IHByb2Nlc3MoKS50cmFuc2Zvcm1IYW5kbGVzVG9PYmplY3Rz
KHVzZXJEYXRhLm9iamVjdCgpKS5nZXQoKTsKICAgICBpZiAobV9lZGl0b3JTdGF0ZS5pc01pc3Np
bmdQb3N0TGF5b3V0RGF0YSkgewotICAgICAgICBtX2RlZmVycmVkTm9kZUFzc2lzdGFuY2VBcmd1
bWVudHMgPSBzdGQ6Om1ha2VfdW5pcXVlPE5vZGVBc3Npc3RhbmNlQXJndW1lbnRzPihOb2RlQXNz
aXN0YW5jZUFyZ3VtZW50cyB7IGluZm9ybWF0aW9uLCB1c2VySXNJbnRlcmFjdGluZywgYmx1clBy
ZXZpb3VzTm9kZSwgdXNlckRhdGFPYmplY3QgfSk7CisgICAgICAgIG1fZGVmZXJyZWROb2RlQXNz
aXN0YW5jZUFyZ3VtZW50cyA9IHN0ZDo6bWFrZV91bmlxdWU8Tm9kZUFzc2lzdGFuY2VBcmd1bWVu
dHM+KE5vZGVBc3Npc3RhbmNlQXJndW1lbnRzIHsgaW5mb3JtYXRpb24sIHVzZXJJc0ludGVyYWN0
aW5nLCBibHVyUHJldmlvdXNOb2RlLCB1c2VyRGF0YU9iamVjdCAsIGNoYW5naW5nQWN0aXZpdHlT
dGF0ZX0pOwogICAgICAgICBtX2hhc0RlZmVycmVkU3RhcnRBc3Npc3RpbmdOb2RlID0gdHJ1ZTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1fcGFnZUNsaWVudC5zdGFydEFzc2lzdGlu
Z05vZGUoaW5mb3JtYXRpb24sIHVzZXJJc0ludGVyYWN0aW5nLCBibHVyUHJldmlvdXNOb2RlLCB1
c2VyRGF0YU9iamVjdCk7CisgICAgbV9wYWdlQ2xpZW50LnN0YXJ0QXNzaXN0aW5nTm9kZShpbmZv
cm1hdGlvbiwgdXNlcklzSW50ZXJhY3RpbmcsIGJsdXJQcmV2aW91c05vZGUsIHVzZXJEYXRhT2Jq
ZWN0LCBjaGFuZ2luZ0FjdGl2aXR5U3RhdGUpOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6c3Rv
cEFzc2lzdGluZ05vZGUoKQpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAJKHJldmlzaW9uIDIyNjM3MSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNzEzLDYgKzI3MTMs
OCBAQCB2b2lkIFdlYlBhZ2U6OnNldEFjdGl2aXR5U3RhdGUoQWN0aXZpdHlTCiB7CiAgICAgQWN0
aXZpdHlTdGF0ZTo6RmxhZ3MgY2hhbmdlZCA9IG1fYWN0aXZpdHlTdGF0ZSBeIGFjdGl2aXR5U3Rh
dGU7CiAgICAgbV9hY3Rpdml0eVN0YXRlID0gYWN0aXZpdHlTdGF0ZTsKKyAgICAKKyAgICBTZXRG
b3JTY29wZTxib29sPiBjaGFuZ2luZ0FjdGl2aXR5U3RhdGVDaGFuZ2UgeyBtX2NoYW5naW5nQWN0
aXZpdHlTdGF0ZSwgdHJ1ZSB9OwogCiAgICAgaWYgKGNoYW5nZWQpCiAgICAgICAgIHVwZGF0ZVRo
cm90dGxlU3RhdGUoKTsKQEAgLTQ4NjMsNyArNDg2NSw3IEBAIHZvaWQgV2ViUGFnZTo6ZWxlbWVu
dERpZEZvY3VzKFdlYkNvcmU6Ok4KIAogICAgICAgICBtX2Zvcm1DbGllbnQtPndpbGxCZWdpbklu
cHV0U2Vzc2lvbih0aGlzLCBkb3duY2FzdDxFbGVtZW50Pihub2RlKSwgV2ViRnJhbWU6OmZyb21D
b3JlRnJhbWUoKm5vZGUtPmRvY3VtZW50KCkuZnJhbWUoKSksIG1fdXNlcklzSW50ZXJhY3Rpbmcs
IHVzZXJEYXRhKTsKIAotICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlN0YXJ0
QXNzaXN0aW5nTm9kZShpbmZvcm1hdGlvbiwgbV91c2VySXNJbnRlcmFjdGluZywgbV9oYXNQZW5k
aW5nQmx1ck5vdGlmaWNhdGlvbiwgVXNlckRhdGEoV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkudHJh
bnNmb3JtT2JqZWN0c1RvSGFuZGxlcyh1c2VyRGF0YS5nZXQoKSkuZ2V0KCkpKSk7CisgICAgICAg
IHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U3RhcnRBc3Npc3RpbmdOb2RlKGluZm9ybWF0
aW9uLCBtX3VzZXJJc0ludGVyYWN0aW5nLCBtX2hhc1BlbmRpbmdCbHVyTm90aWZpY2F0aW9uLCBV
c2VyRGF0YShXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS50cmFuc2Zvcm1PYmplY3RzVG9IYW5kbGVz
KHVzZXJEYXRhLmdldCgpKS5nZXQoKSksIG1fY2hhbmdpbmdBY3Rpdml0eVN0YXRlKSk7CiAjZWxp
ZiBQTEFURk9STShNQUMpCiAgICAgICAgIGlmIChub2RlLT5oYXNUYWdOYW1lKFdlYkNvcmU6OkhU
TUxOYW1lczo6c2VsZWN0VGFnKSkKICAgICAgICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6U2V0RWRpdGFibGVFbGVtZW50SXNGb2N1c2VkKGZhbHNlKSk7CkluZGV4OiBTb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCShyZXZpc2lvbiAyMjYzNzEpCisr
KyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTE1NjQsNiArMTU2NCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2hhc0V2ZXJGb2N1
c2VkRWxlbWVudER1ZVRvVXNlckludGVyYWN0aW9uU2luY2VQYWdlVHJhbnNpdGlvbiB7IGZhbHNl
IH07CiAgICAgYm9vbCBtX25lZWRzSGlkZGVuQ29udGVudEVkaXRhYmxlUXVpcmsgeyBmYWxzZSB9
OwogICAgIGJvb2wgbV9uZWVkc1BsYWluVGV4dFF1aXJrIHsgZmFsc2UgfTsKKyAgICBib29sIG1f
Y2hhbmdpbmdBY3Rpdml0eVN0YXRlIHsgZmFsc2UgfTsKIAogI2lmIEVOQUJMRShDT05URVhUX01F
TlVTKQogICAgIGJvb2wgbV9pc1Nob3dpbmdDb250ZXh0TWVudSB7IGZhbHNlIH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>330623</attachid>
            <date>2018-01-05 17:43:34 -0800</date>
            <delta_ts>2018-01-05 17:49:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-181353-20180105174333.patch</filename>
            <type>text/plain</type>
            <size>14607</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMjY0NzQpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBACisyMDE4LTAxLTA1ICBNZWdhbiBHYXJk
bmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgU2hvdyBLZXlib2FyZCB3
aGVuIHJlLWxhdW5jaGluZyBXS1dlYlZpZXcgd2l0aCBhIHByZXZpb3VzbHkgZm9jdXNlZCBlbGVt
ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODEz
NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVu
IHJlbGF1bmNoaW5nIGFuIGFwcCB3aXRoIGEgV0tXZWJWaWV3LCByZXN0b3JlIHRoZSBrZXlib2Fy
ZCBpZiB0aGVyZSB3YXMgYSBwcmV2aW91c2x5CisgICAgICAgIGZvY3VzZWQgZWxlbWVudCB0aGF0
IHdhcyBiZWluZyBhc3Npc3RlZC4gVGhlIGVsZW1lbnQgd2FzIGFscmVhZHkgYmVpbmcgdHJhY2tl
ZCwgd2UganVzdAorICAgICAgICBuZWVkZWQgdG8gbm90IGJhaWwgb24gc2hvd2luZyB0aGUga2V5
Ym9hcmQgZm9yIGluc3RhbmNlcyB3aGVyZSBpdCB3YXMgYSBzdGF0ZSBjaGFuZ2UgdGhhdAorICAg
ICAgICBjYXVzZWQgdGhlIGVsZW1lbnQgdG8gYmUgcmVmb2N1c2VkLgorCisgICAgICAgICogVUlQ
cm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAg
KiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmg6CisgICAgICAgICogVUlQcm9jZXNz
L2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudElt
cGw6OnN0YXJ0QXNzaXN0aW5nTm9kZSk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5t
bToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfc3RhcnRBc3Npc3RpbmdOb2RlOnVzZXJJc0lu
dGVyYWN0aW5nOmJsdXJQcmV2aW91c05vZGU6Y2hhbmdpbmdBY3Rpdml0eVN0YXRlOnVzZXJPYmpl
Y3Q6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX3N0YXJ0QXNzaXN0aW5nTm9kZTp1c2Vy
SXNJbnRlcmFjdGluZzpibHVyUHJldmlvdXNOb2RlOnVzZXJPYmplY3Q6XSk6IERlbGV0ZWQuCisg
ICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW06CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6c3RhcnRBdXRvc2Nyb2xsQXRQb3NpdGlvbik6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6c3RhcnRBc3Npc3RpbmdOb2RlKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNl
dEFjdGl2aXR5U3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjplbGVtZW50RGlkRm9j
dXMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisKIDIwMTgtMDEt
MDUgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAg
ICBSZXN0cmljdCBuYXZpZ2F0aW9uLXRpbWUgV0tXZWJzaXRlRGF0YVN0b3JlIHN3YXBwaW5nIHRv
IG1haW4gZnJhbWUgbmF2aWdhdGlvbnMKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Bh
Z2VDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xp
ZW50LmgJKHJldmlzaW9uIDIyNjQ3NCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VD
bGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjkwLDcgKzI5MCw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgcmVzdG9yZVBhZ2VTdGF0ZShzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0
UG9pbnQ+IHNjcm9sbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxP
cmlnaW4sIGNvbnN0IFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50JiBvYnNjdXJlZEluc2V0c09uU2F2
ZSwgZG91YmxlIHNjYWxlKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlc3RvcmVQYWdlQ2VudGVy
QW5kU2NhbGUoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGbG9hdFBvaW50PiBjZW50ZXIsIGRvdWJs
ZSBzY2FsZSkgPSAwOwogCi0gICAgdmlydHVhbCB2b2lkIHN0YXJ0QXNzaXN0aW5nTm9kZShjb25z
dCBBc3Npc3RlZE5vZGVJbmZvcm1hdGlvbiYsIGJvb2wgdXNlcklzSW50ZXJhY3RpbmcsIGJvb2wg
Ymx1clByZXZpb3VzTm9kZSwgQVBJOjpPYmplY3QqIHVzZXJEYXRhKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIHN0YXJ0QXNzaXN0aW5nTm9kZShjb25zdCBBc3Npc3RlZE5vZGVJbmZvcm1hdGlvbiYs
IGJvb2wgdXNlcklzSW50ZXJhY3RpbmcsIGJvb2wgYmx1clByZXZpb3VzTm9kZSwgYm9vbCBjaGFu
Z2luZ0FjdGl2aXR5U3RhdGUsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSkgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBzdG9wQXNzaXN0aW5nTm9kZSgpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgaXNBc3Np
c3RpbmdOb2RlKCkgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBpbnRlcnByZXRLZXlFdmVudChjb25z
dCBOYXRpdmVXZWJLZXlib2FyZEV2ZW50JiwgYm9vbCBpc0NoYXJFdmVudCkgPSAwOwpJbmRleDog
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgJKHJldmlzaW9uIDIyNjQ3NCkKKysr
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yODQsNiArMjg0LDcgQEAgc3RydWN0IE5vZGVBc3Npc3RhbmNlQXJndW1lbnRzIHsKICAgICBB
c3Npc3RlZE5vZGVJbmZvcm1hdGlvbiBtX25vZGVJbmZvcm1hdGlvbjsKICAgICBib29sIG1fdXNl
cklzSW50ZXJhY3Rpbmc7CiAgICAgYm9vbCBtX2JsdXJQcmV2aW91c05vZGU7CisgICAgYm9vbCBt
X2NoYW5naW5nQWN0aXZpdHlTdGF0ZTsKICAgICBSZWZQdHI8QVBJOjpPYmplY3Q+IG1fdXNlckRh
dGE7CiB9OwogCkBAIC0xNjAwLDcgKzE2MDEsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBkaWRH
ZXRUYXBIaWdobGlnaHRHZW9tZXRyaWVzKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgV2ViQ29y
ZTo6Q29sb3ImIGNvbG9yLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6RmxvYXRRdWFkPiYgZ2VvbWV0
cmllcywgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgdG9wTGVmdFJhZGl1cywgY29uc3QgV2ViQ29y
ZTo6SW50U2l6ZSYgdG9wUmlnaHRSYWRpdXMsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGJvdHRv
bUxlZnRSYWRpdXMsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGJvdHRvbVJpZ2h0UmFkaXVzKTsK
IAotICAgIHZvaWQgc3RhcnRBc3Npc3RpbmdOb2RlKGNvbnN0IEFzc2lzdGVkTm9kZUluZm9ybWF0
aW9uJiwgYm9vbCB1c2VySXNJbnRlcmFjdGluZywgYm9vbCBibHVyUHJldmlvdXNOb2RlLCBjb25z
dCBVc2VyRGF0YSYpOworICAgIHZvaWQgc3RhcnRBc3Npc3RpbmdOb2RlKGNvbnN0IEFzc2lzdGVk
Tm9kZUluZm9ybWF0aW9uJiwgYm9vbCB1c2VySXNJbnRlcmFjdGluZywgYm9vbCBibHVyUHJldmlv
dXNOb2RlLCBib29sIGNoYW5naW5nQWN0aXZpdHlTdGF0ZSwgY29uc3QgVXNlckRhdGEmKTsKICAg
ICB2b2lkIHN0b3BBc3Npc3RpbmdOb2RlKCk7CiAKICAgICB2b2lkIHNob3dJbnNwZWN0b3JIaWdo
bGlnaHQoY29uc3QgV2ViQ29yZTo6SGlnaGxpZ2h0Jik7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiAyMjY0NzQp
CisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4JKHdv
cmtpbmcgY29weSkKQEAgLTM5Miw3ICszOTIsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkg
ewogICAgIFJlc3RvcmVQYWdlQ2VudGVyQW5kU2NhbGUoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpG
bG9hdFBvaW50PiB1bm9ic2N1cmVkQ2VudGVyLCBkb3VibGUgc2NhbGUpCiAgICAgRGlkR2V0VGFw
SGlnaGxpZ2h0R2VvbWV0cmllcyh1aW50NjRfdCByZXF1ZXN0SUQsIFdlYkNvcmU6OkNvbG9yIGNv
bG9yLCBWZWN0b3I8V2ViQ29yZTo6RmxvYXRRdWFkPiBnZW9tZXRyaWVzLCBXZWJDb3JlOjpJbnRT
aXplIHRvcExlZnRSYWRpdXMsIFdlYkNvcmU6OkludFNpemUgdG9wUmlnaHRSYWRpdXMsIFdlYkNv
cmU6OkludFNpemUgYm90dG9tTGVmdFJhZGl1cywgV2ViQ29yZTo6SW50U2l6ZSBib3R0b21SaWdo
dFJhZGl1cykKIAotICAgIFN0YXJ0QXNzaXN0aW5nTm9kZShzdHJ1Y3QgV2ViS2l0OjpBc3Npc3Rl
ZE5vZGVJbmZvcm1hdGlvbiBpbmZvcm1hdGlvbiwgYm9vbCB1c2VySXNJbnRlcmFjdGluZywgYm9v
bCBibHVyUHJldmlvdXNOb2RlLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQorICAgIFN0YXJ0
QXNzaXN0aW5nTm9kZShzdHJ1Y3QgV2ViS2l0OjpBc3Npc3RlZE5vZGVJbmZvcm1hdGlvbiBpbmZv
cm1hdGlvbiwgYm9vbCB1c2VySXNJbnRlcmFjdGluZywgYm9vbCBibHVyUHJldmlvdXNOb2RlLCBi
b29sIGNoYW5naW5nQWN0aXZpdHlTdGF0ZSwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKICAg
ICBTdG9wQXNzaXN0aW5nTm9kZSgpCiAgICAgT3ZlcmZsb3dTY3JvbGxXaWxsU3RhcnRTY3JvbGwo
KQogICAgIE92ZXJmbG93U2Nyb2xsRGlkRW5kU2Nyb2xsKCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCShyZXZpc2lvbiAyMjY0NzQp
CisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAkod29y
a2luZyBjb3B5KQpAQCAtMTI1LDcgKzEyNSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZXN0b3Jl
UGFnZVN0YXRlKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRQb2ludD4sIGNvbnN0IFdlYkNv
cmU6OkZsb2F0UG9pbnQmLCBjb25zdCBXZWJDb3JlOjpGbG9hdEJveEV4dGVudCYsIGRvdWJsZSkg
b3ZlcnJpZGU7CiAgICAgdm9pZCByZXN0b3JlUGFnZUNlbnRlckFuZFNjYWxlKHN0ZDo6b3B0aW9u
YWw8V2ViQ29yZTo6RmxvYXRQb2ludD4sIGRvdWJsZSkgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIHN0
YXJ0QXNzaXN0aW5nTm9kZShjb25zdCBBc3Npc3RlZE5vZGVJbmZvcm1hdGlvbiYsIGJvb2wgdXNl
cklzSW50ZXJhY3RpbmcsIGJvb2wgYmx1clByZXZpb3VzTm9kZSwgQVBJOjpPYmplY3QqIHVzZXJE
YXRhKSBvdmVycmlkZTsKKyAgICB2b2lkIHN0YXJ0QXNzaXN0aW5nTm9kZShjb25zdCBBc3Npc3Rl
ZE5vZGVJbmZvcm1hdGlvbiYsIGJvb2wgdXNlcklzSW50ZXJhY3RpbmcsIGJvb2wgYmx1clByZXZp
b3VzTm9kZSwgYm9vbCBjaGFuZ2luZ0FjdGl2aXR5U3RhdGUsIEFQSTo6T2JqZWN0KiB1c2VyRGF0
YSkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdG9wQXNzaXN0aW5nTm9kZSgpIG92ZXJyaWRlOwogICAg
IGJvb2wgaXNBc3Npc3RpbmdOb2RlKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZWxlY3Rpb25EaWRD
aGFuZ2UoKSBvdmVycmlkZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdl
Q2xpZW50SW1wbElPUy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvUGFnZUNsaWVudEltcGxJT1MubW0JKHJldmlzaW9uIDIyNjQ3NCkKKysrIFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQkod29ya2luZyBjb3B5KQpAQCAt
NTM0LDcgKzUzNCw3IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OnJlc3RvcmVQYWdlQ2VudGVyQW4K
ICAgICBbbV93ZWJWaWV3IF9yZXN0b3JlUGFnZVN0YXRlVG9Vbm9ic2N1cmVkQ2VudGVyOmNlbnRl
ciBzY2FsZTpzY2FsZV07CiB9CiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OnN0YXJ0QXNzaXN0aW5n
Tm9kZShjb25zdCBBc3Npc3RlZE5vZGVJbmZvcm1hdGlvbiYgbm9kZUluZm9ybWF0aW9uLCBib29s
IHVzZXJJc0ludGVyYWN0aW5nLCBib29sIGJsdXJQcmV2aW91c05vZGUsIEFQSTo6T2JqZWN0KiB1
c2VyRGF0YSkKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnN0YXJ0QXNzaXN0aW5nTm9kZShjb25zdCBB
c3Npc3RlZE5vZGVJbmZvcm1hdGlvbiYgbm9kZUluZm9ybWF0aW9uLCBib29sIHVzZXJJc0ludGVy
YWN0aW5nLCBib29sIGJsdXJQcmV2aW91c05vZGUsIGJvb2wgY2hhbmdpbmdBY3Rpdml0eVN0YXRl
LCBBUEk6Ok9iamVjdCogdXNlckRhdGEpCiB7CiAgICAgTUVTU0FHRV9DSEVDSyghdXNlckRhdGEg
fHwgdXNlckRhdGEtPnR5cGUoKSA9PSBBUEk6Ok9iamVjdDo6VHlwZTo6RGF0YSk7CiAKQEAgLTU0
OSw3ICs1NDksNyBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpzdGFydEFzc2lzdGluZ05vZGUoCiAg
ICAgICAgIH0KICAgICB9CiAKLSAgICBbbV9jb250ZW50VmlldyBfc3RhcnRBc3Npc3RpbmdOb2Rl
Om5vZGVJbmZvcm1hdGlvbiB1c2VySXNJbnRlcmFjdGluZzp1c2VySXNJbnRlcmFjdGluZyBibHVy
UHJldmlvdXNOb2RlOmJsdXJQcmV2aW91c05vZGUgdXNlck9iamVjdDp1c2VyT2JqZWN0XTsKKyAg
ICBbbV9jb250ZW50VmlldyBfc3RhcnRBc3Npc3RpbmdOb2RlOm5vZGVJbmZvcm1hdGlvbiB1c2Vy
SXNJbnRlcmFjdGluZzp1c2VySXNJbnRlcmFjdGluZyBibHVyUHJldmlvdXNOb2RlOmJsdXJQcmV2
aW91c05vZGUgY2hhbmdpbmdBY3Rpdml0eVN0YXRlOmNoYW5naW5nQWN0aXZpdHlTdGF0ZSB1c2Vy
T2JqZWN0OnVzZXJPYmplY3RdOwogfQogCiBib29sIFBhZ2VDbGllbnRJbXBsOjppc0Fzc2lzdGlu
Z05vZGUoKQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAkocmV2aXNpb24gMjI2NDc0KQorKysgU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yODMsNyArMjgzLDcgQEAgRk9SX0VBQ0hfV0tDT05URU5UVklFV19BQ1RJT04oREVD
TEFSRV9XSwogCiAtIChCT09MKV9tYXlEaXNhYmxlRG91YmxlVGFwR2VzdHVyZXNEdXJpbmdTaW5n
bGVUYXA7CiAtICh2b2lkKV9kaXNhYmxlRG91YmxlVGFwR2VzdHVyZXNEdXJpbmdUYXBJZk5lY2Vz
c2FyeToodWludDY0X3QpcmVxdWVzdElEOwotLSAodm9pZClfc3RhcnRBc3Npc3RpbmdOb2RlOihj
b25zdCBXZWJLaXQ6OkFzc2lzdGVkTm9kZUluZm9ybWF0aW9uJilpbmZvcm1hdGlvbiB1c2VySXNJ
bnRlcmFjdGluZzooQk9PTCl1c2VySXNJbnRlcmFjdGluZyBibHVyUHJldmlvdXNOb2RlOihCT09M
KWJsdXJQcmV2aW91c05vZGUgdXNlck9iamVjdDooTlNPYmplY3QgPE5TU2VjdXJlQ29kaW5nPiAq
KXVzZXJPYmplY3Q7CistICh2b2lkKV9zdGFydEFzc2lzdGluZ05vZGU6KGNvbnN0IFdlYktpdDo6
QXNzaXN0ZWROb2RlSW5mb3JtYXRpb24mKWluZm9ybWF0aW9uIHVzZXJJc0ludGVyYWN0aW5nOihC
T09MKXVzZXJJc0ludGVyYWN0aW5nIGJsdXJQcmV2aW91c05vZGU6KEJPT0wpYmx1clByZXZpb3Vz
Tm9kZSBjaGFuZ2luZ0FjdGl2aXR5U3RhdGU6KGJvb2wpY2hhbmdpbmdBY3Rpdml0eVN0YXRlIHVz
ZXJPYmplY3Q6KE5TT2JqZWN0IDxOU1NlY3VyZUNvZGluZz4gKil1c2VyT2JqZWN0OwogLSAodm9p
ZClfc3RvcEFzc2lzdGluZ05vZGU7CiAtICh2b2lkKV9zZWxlY3Rpb25DaGFuZ2VkOwogLSAodm9p
ZClfdXBkYXRlQ2hhbmdlZFNlbGVjdGlvbjsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQkocmV2aXNpb24g
MjI2NDc0KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRl
cmFjdGlvbi5tbQkod29ya2luZyBjb3B5KQpAQCAtMzg2NSw3ICszODY1LDcgQEAgc3RhdGljIGJv
b2wgaXNBc3Npc3RhYmxlSW5wdXRUeXBlKElucHV0VAogICAgIHJldHVybiBmYWxzZTsKIH0KIAot
LSAodm9pZClfc3RhcnRBc3Npc3RpbmdOb2RlOihjb25zdCBBc3Npc3RlZE5vZGVJbmZvcm1hdGlv
biYpaW5mb3JtYXRpb24gdXNlcklzSW50ZXJhY3Rpbmc6KEJPT0wpdXNlcklzSW50ZXJhY3Rpbmcg
Ymx1clByZXZpb3VzTm9kZTooQk9PTClibHVyUHJldmlvdXNOb2RlIHVzZXJPYmplY3Q6KE5TT2Jq
ZWN0IDxOU1NlY3VyZUNvZGluZz4gKil1c2VyT2JqZWN0CistICh2b2lkKV9zdGFydEFzc2lzdGlu
Z05vZGU6KGNvbnN0IEFzc2lzdGVkTm9kZUluZm9ybWF0aW9uJilpbmZvcm1hdGlvbiB1c2VySXNJ
bnRlcmFjdGluZzooQk9PTCl1c2VySXNJbnRlcmFjdGluZyBibHVyUHJldmlvdXNOb2RlOihCT09M
KWJsdXJQcmV2aW91c05vZGUgY2hhbmdpbmdBY3Rpdml0eVN0YXRlOihCT09MKWNoYW5naW5nQWN0
aXZpdHlTdGF0ZSB1c2VyT2JqZWN0OihOU09iamVjdCA8TlNTZWN1cmVDb2Rpbmc+ICopdXNlck9i
amVjdCAKIHsKICAgICBfaW5wdXRWaWV3VXBkYXRlRGVmZXJyZXIgPSBudWxscHRyOwogCkBAIC0z
ODc3LDcgKzM4NzcsNyBAQCAtICh2b2lkKV9zdGFydEFzc2lzdGluZ05vZGU6KGNvbnN0IEFzc2lz
CiAgICAgICAgIHNob3VsZFNob3dLZXlib2FyZCA9IFtpbnB1dERlbGVnYXRlIF93ZWJWaWV3Ol93
ZWJWaWV3IGZvY3VzU2hvdWxkU3RhcnRJbnB1dFNlc3Npb246Zm9jdXNlZEVsZW1lbnRJbmZvLmdl
dCgpXTsKICAgICBlbHNlIHsKICAgICAgICAgLy8gVGhlIGRlZmF1bHQgYmVoYXZpb3IgaXMgdG8g
YWxsb3cgbm9kZSBhc3Npc3RhbmNlIGlmIHRoZSB1c2VyIGlzIGludGVyYWN0aW5nIG9yIHRoZSBr
ZXlib2FyZCBpcyBhbHJlYWR5IGFjdGl2ZS4KLSAgICAgICAgc2hvdWxkU2hvd0tleWJvYXJkID0g
dXNlcklzSW50ZXJhY3RpbmcgfHwgX3RleHRTZWxlY3Rpb25Bc3Npc3RhbnQ7CisgICAgICAgIHNo
b3VsZFNob3dLZXlib2FyZCA9IHVzZXJJc0ludGVyYWN0aW5nIHx8IF90ZXh0U2VsZWN0aW9uQXNz
aXN0YW50IHx8IGNoYW5naW5nQWN0aXZpdHlTdGF0ZTsKICNpZiBFTkFCTEUoREFUQV9JTlRFUkFD
VElPTikKICAgICAgICAgc2hvdWxkU2hvd0tleWJvYXJkIHw9IF9kcmFnRHJvcEludGVyYWN0aW9u
U3RhdGUuaXNQZXJmb3JtaW5nRHJvcCgpOwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0JKHJldmlzaW9uIDIyNjQ3NCkKKysr
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTM5OCw3ICszOTgsOCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ29tbWl0TGF5
ZXJUcmVlKGNvCiAgICAgfQogCiAgICAgaWYgKG1faGFzRGVmZXJyZWRTdGFydEFzc2lzdGluZ05v
ZGUpIHsKLSAgICAgICAgbV9wYWdlQ2xpZW50LnN0YXJ0QXNzaXN0aW5nTm9kZShtX2RlZmVycmVk
Tm9kZUFzc2lzdGFuY2VBcmd1bWVudHMtPm1fbm9kZUluZm9ybWF0aW9uLCBtX2RlZmVycmVkTm9k
ZUFzc2lzdGFuY2VBcmd1bWVudHMtPm1fdXNlcklzSW50ZXJhY3RpbmcsIG1fZGVmZXJyZWROb2Rl
QXNzaXN0YW5jZUFyZ3VtZW50cy0+bV9ibHVyUHJldmlvdXNOb2RlLCBtX2RlZmVycmVkTm9kZUFz
c2lzdGFuY2VBcmd1bWVudHMtPm1fdXNlckRhdGEuZ2V0KCkpOworICAgICAgICBtX3BhZ2VDbGll
bnQuc3RhcnRBc3Npc3RpbmdOb2RlKG1fZGVmZXJyZWROb2RlQXNzaXN0YW5jZUFyZ3VtZW50cy0+
bV9ub2RlSW5mb3JtYXRpb24sIG1fZGVmZXJyZWROb2RlQXNzaXN0YW5jZUFyZ3VtZW50cy0+bV91
c2VySXNJbnRlcmFjdGluZywgbV9kZWZlcnJlZE5vZGVBc3Npc3RhbmNlQXJndW1lbnRzLT5tX2Js
dXJQcmV2aW91c05vZGUsCisgICAgICAgICAgICBtX2RlZmVycmVkTm9kZUFzc2lzdGFuY2VBcmd1
bWVudHMtPm1fY2hhbmdpbmdBY3Rpdml0eVN0YXRlLCBtX2RlZmVycmVkTm9kZUFzc2lzdGFuY2VB
cmd1bWVudHMtPm1fdXNlckRhdGEuZ2V0KCkpOwogICAgICAgICBtX2hhc0RlZmVycmVkU3RhcnRB
c3Npc3RpbmdOb2RlID0gZmFsc2U7CiAgICAgICAgIG1fZGVmZXJyZWROb2RlQXNzaXN0YW5jZUFy
Z3VtZW50cyA9IG51bGxwdHI7CiAgICAgfQpAQCAtODk3LDE2ICs4OTgsMTYgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OmRpZEdldFRhcEhpZ2hsaWdodEdlbwogICAgIG1fcGFnZUNsaWVudC5kaWRHZXRU
YXBIaWdobGlnaHRHZW9tZXRyaWVzKHJlcXVlc3RJRCwgY29sb3IsIGhpZ2hsaWdodGVkUXVhZHMs
IHRvcExlZnRSYWRpdXMsIHRvcFJpZ2h0UmFkaXVzLCBib3R0b21MZWZ0UmFkaXVzLCBib3R0b21S
aWdodFJhZGl1cyk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpzdGFydEFzc2lzdGluZ05vZGUo
Y29uc3QgQXNzaXN0ZWROb2RlSW5mb3JtYXRpb24mIGluZm9ybWF0aW9uLCBib29sIHVzZXJJc0lu
dGVyYWN0aW5nLCBib29sIGJsdXJQcmV2aW91c05vZGUsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0
YSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpzdGFydEFzc2lzdGluZ05vZGUoY29uc3QgQXNzaXN0ZWRO
b2RlSW5mb3JtYXRpb24mIGluZm9ybWF0aW9uLCBib29sIHVzZXJJc0ludGVyYWN0aW5nLCBib29s
IGJsdXJQcmV2aW91c05vZGUsIGJvb2wgY2hhbmdpbmdBY3Rpdml0eVN0YXRlLCBjb25zdCBVc2Vy
RGF0YSYgdXNlckRhdGEpCiB7CiAgICAgQVBJOjpPYmplY3QqIHVzZXJEYXRhT2JqZWN0ID0gcHJv
Y2VzcygpLnRyYW5zZm9ybUhhbmRsZXNUb09iamVjdHModXNlckRhdGEub2JqZWN0KCkpLmdldCgp
OwogICAgIGlmIChtX2VkaXRvclN0YXRlLmlzTWlzc2luZ1Bvc3RMYXlvdXREYXRhKSB7Ci0gICAg
ICAgIG1fZGVmZXJyZWROb2RlQXNzaXN0YW5jZUFyZ3VtZW50cyA9IHN0ZDo6bWFrZV91bmlxdWU8
Tm9kZUFzc2lzdGFuY2VBcmd1bWVudHM+KE5vZGVBc3Npc3RhbmNlQXJndW1lbnRzIHsgaW5mb3Jt
YXRpb24sIHVzZXJJc0ludGVyYWN0aW5nLCBibHVyUHJldmlvdXNOb2RlLCB1c2VyRGF0YU9iamVj
dCB9KTsKKyAgICAgICAgbV9kZWZlcnJlZE5vZGVBc3Npc3RhbmNlQXJndW1lbnRzID0gc3RkOjpt
YWtlX3VuaXF1ZTxOb2RlQXNzaXN0YW5jZUFyZ3VtZW50cz4oTm9kZUFzc2lzdGFuY2VBcmd1bWVu
dHMgeyBpbmZvcm1hdGlvbiwgdXNlcklzSW50ZXJhY3RpbmcsIGJsdXJQcmV2aW91c05vZGUsIGNo
YW5naW5nQWN0aXZpdHlTdGF0ZSwgdXNlckRhdGFPYmplY3QgfSk7CiAgICAgICAgIG1faGFzRGVm
ZXJyZWRTdGFydEFzc2lzdGluZ05vZGUgPSB0cnVlOwogICAgICAgICByZXR1cm47CiAgICAgfQog
Ci0gICAgbV9wYWdlQ2xpZW50LnN0YXJ0QXNzaXN0aW5nTm9kZShpbmZvcm1hdGlvbiwgdXNlcklz
SW50ZXJhY3RpbmcsIGJsdXJQcmV2aW91c05vZGUsIHVzZXJEYXRhT2JqZWN0KTsKKyAgICBtX3Bh
Z2VDbGllbnQuc3RhcnRBc3Npc3RpbmdOb2RlKGluZm9ybWF0aW9uLCB1c2VySXNJbnRlcmFjdGlu
ZywgYmx1clByZXZpb3VzTm9kZSwgY2hhbmdpbmdBY3Rpdml0eVN0YXRlLCB1c2VyRGF0YU9iamVj
dCk7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpzdG9wQXNzaXN0aW5nTm9kZSgpCkluZGV4OiBT
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkocmV2aXNpb24g
MjI2NDc0KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTI3MjMsNyArMjcyMywxMSBAQCB2b2lkIFdlYlBhZ2U6OnNldEFj
dGl2aXR5U3RhdGUoQWN0aXZpdHlTCiAgICAgaWYgKGNoYW5nZWQpCiAgICAgICAgIHVwZGF0ZVRo
cm90dGxlU3RhdGUoKTsKIAotICAgIG1fcGFnZS0+c2V0QWN0aXZpdHlTdGF0ZShhY3Rpdml0eVN0
YXRlKTsKKyAgICB7CisgICAgICAgIFNldEZvclNjb3BlPGJvb2w+IGNoYW5naW5nQWN0aXZpdHlT
dGF0ZUNoYW5nZSB7IG1fY2hhbmdpbmdBY3Rpdml0eVN0YXRlLCB0cnVlIH07CisgICAgICAgIG1f
cGFnZS0+c2V0QWN0aXZpdHlTdGF0ZShhY3Rpdml0eVN0YXRlKTsKKyAgICB9CisgICAgCiAgICAg
Zm9yIChhdXRvKiBwbHVnaW5WaWV3IDogbV9wbHVnaW5WaWV3cykKICAgICAgICAgcGx1Z2luVmll
dy0+YWN0aXZpdHlTdGF0ZURpZENoYW5nZShjaGFuZ2VkKTsKIApAQCAtNDg3NCw3ICs0ODc4LDcg
QEAgdm9pZCBXZWJQYWdlOjplbGVtZW50RGlkRm9jdXMoV2ViQ29yZTo6TgogCiAgICAgICAgIG1f
Zm9ybUNsaWVudC0+d2lsbEJlZ2luSW5wdXRTZXNzaW9uKHRoaXMsIGRvd25jYXN0PEVsZW1lbnQ+
KG5vZGUpLCBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZSgqbm9kZS0+ZG9jdW1lbnQoKS5mcmFtZSgp
KSwgbV91c2VySXNJbnRlcmFjdGluZywgdXNlckRhdGEpOwogCi0gICAgICAgIHNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6U3RhcnRBc3Npc3RpbmdOb2RlKGluZm9ybWF0aW9uLCBtX3VzZXJJ
c0ludGVyYWN0aW5nLCBtX2hhc1BlbmRpbmdCbHVyTm90aWZpY2F0aW9uLCBVc2VyRGF0YShXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS50cmFuc2Zvcm1PYmplY3RzVG9IYW5kbGVzKHVzZXJEYXRhLmdl
dCgpKS5nZXQoKSkpKTsKKyAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTdGFy
dEFzc2lzdGluZ05vZGUoaW5mb3JtYXRpb24sIG1fdXNlcklzSW50ZXJhY3RpbmcsIG1faGFzUGVu
ZGluZ0JsdXJOb3RpZmljYXRpb24sIG1fY2hhbmdpbmdBY3Rpdml0eVN0YXRlLCBVc2VyRGF0YShX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS50cmFuc2Zvcm1PYmplY3RzVG9IYW5kbGVzKHVzZXJEYXRh
LmdldCgpKS5nZXQoKSkpKTsKICNlbGlmIFBMQVRGT1JNKE1BQykKICAgICAgICAgaWYgKG5vZGUt
Pmhhc1RhZ05hbWUoV2ViQ29yZTo6SFRNTE5hbWVzOjpzZWxlY3RUYWcpKQogICAgICAgICAgICAg
c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTZXRFZGl0YWJsZUVsZW1lbnRJc0ZvY3VzZWQo
ZmFsc2UpKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmgJKHJldmlzaW9uIDIyNjQ3NCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtMTU2Nyw2ICsxNTY3LDcgQEAgcHJpdmF0ZToK
ICAgICBib29sIG1faGFzRXZlckZvY3VzZWRFbGVtZW50RHVlVG9Vc2VySW50ZXJhY3Rpb25TaW5j
ZVBhZ2VUcmFuc2l0aW9uIHsgZmFsc2UgfTsKICAgICBib29sIG1fbmVlZHNIaWRkZW5Db250ZW50
RWRpdGFibGVRdWlyayB7IGZhbHNlIH07CiAgICAgYm9vbCBtX25lZWRzUGxhaW5UZXh0UXVpcmsg
eyBmYWxzZSB9OworICAgIGJvb2wgbV9jaGFuZ2luZ0FjdGl2aXR5U3RhdGUgeyBmYWxzZSB9Owog
CiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiAgICAgYm9vbCBtX2lzU2hvd2luZ0NvbnRleHRN
ZW51IHsgZmFsc2UgfTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>330625</attachid>
            <date>2018-01-05 17:49:21 -0800</date>
            <delta_ts>2018-01-05 17:50:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-181353-20180105174921.patch</filename>
            <type>text/plain</type>
            <size>14609</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMjY0NzQpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBACisyMDE4LTAxLTA1ICBNZWdhbiBHYXJk
bmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgU2hvdyBLZXlib2FyZCB3
aGVuIHJlLWxhdW5jaGluZyBXS1dlYlZpZXcgd2l0aCBhIHByZXZpb3VzbHkgZm9jdXNlZCBlbGVt
ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODEz
NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVu
IHJlbGF1bmNoaW5nIGFuIGFwcCB3aXRoIGEgV0tXZWJWaWV3LCByZXN0b3JlIHRoZSBrZXlib2Fy
ZCBpZiB0aGVyZSB3YXMgYSBwcmV2aW91c2x5CisgICAgICAgIGZvY3VzZWQgZWxlbWVudCB0aGF0
IHdhcyBiZWluZyBhc3Npc3RlZC4gVGhlIGVsZW1lbnQgd2FzIGFscmVhZHkgYmVpbmcgdHJhY2tl
ZCwgd2UganVzdAorICAgICAgICBuZWVkZWQgdG8gbm90IGJhaWwgb24gc2hvd2luZyB0aGUga2V5
Ym9hcmQgZm9yIGluc3RhbmNlcyB3aGVyZSBpdCB3YXMgYSBzdGF0ZSBjaGFuZ2UgdGhhdAorICAg
ICAgICBjYXVzZWQgdGhlIGVsZW1lbnQgdG8gYmUgcmVmb2N1c2VkLgorCisgICAgICAgICogVUlQ
cm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAg
KiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmg6CisgICAgICAgICogVUlQcm9jZXNz
L2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudElt
cGw6OnN0YXJ0QXNzaXN0aW5nTm9kZSk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5t
bToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfc3RhcnRBc3Npc3RpbmdOb2RlOnVzZXJJc0lu
dGVyYWN0aW5nOmJsdXJQcmV2aW91c05vZGU6Y2hhbmdpbmdBY3Rpdml0eVN0YXRlOnVzZXJPYmpl
Y3Q6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX3N0YXJ0QXNzaXN0aW5nTm9kZTp1c2Vy
SXNJbnRlcmFjdGluZzpibHVyUHJldmlvdXNOb2RlOnVzZXJPYmplY3Q6XSk6IERlbGV0ZWQuCisg
ICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW06CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6c3RhcnRBdXRvc2Nyb2xsQXRQb3NpdGlvbik6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6c3RhcnRBc3Npc3RpbmdOb2RlKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNl
dEFjdGl2aXR5U3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjplbGVtZW50RGlkRm9j
dXMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisKIDIwMTgtMDEt
MDUgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAg
ICBSZXN0cmljdCBuYXZpZ2F0aW9uLXRpbWUgV0tXZWJzaXRlRGF0YVN0b3JlIHN3YXBwaW5nIHRv
IG1haW4gZnJhbWUgbmF2aWdhdGlvbnMKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Bh
Z2VDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xp
ZW50LmgJKHJldmlzaW9uIDIyNjQ3NCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VD
bGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjkwLDcgKzI5MCw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgcmVzdG9yZVBhZ2VTdGF0ZShzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0
UG9pbnQ+IHNjcm9sbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxP
cmlnaW4sIGNvbnN0IFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50JiBvYnNjdXJlZEluc2V0c09uU2F2
ZSwgZG91YmxlIHNjYWxlKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlc3RvcmVQYWdlQ2VudGVy
QW5kU2NhbGUoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGbG9hdFBvaW50PiBjZW50ZXIsIGRvdWJs
ZSBzY2FsZSkgPSAwOwogCi0gICAgdmlydHVhbCB2b2lkIHN0YXJ0QXNzaXN0aW5nTm9kZShjb25z
dCBBc3Npc3RlZE5vZGVJbmZvcm1hdGlvbiYsIGJvb2wgdXNlcklzSW50ZXJhY3RpbmcsIGJvb2wg
Ymx1clByZXZpb3VzTm9kZSwgQVBJOjpPYmplY3QqIHVzZXJEYXRhKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIHN0YXJ0QXNzaXN0aW5nTm9kZShjb25zdCBBc3Npc3RlZE5vZGVJbmZvcm1hdGlvbiYs
IGJvb2wgdXNlcklzSW50ZXJhY3RpbmcsIGJvb2wgYmx1clByZXZpb3VzTm9kZSwgYm9vbCBjaGFu
Z2luZ0FjdGl2aXR5U3RhdGUsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSkgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBzdG9wQXNzaXN0aW5nTm9kZSgpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgaXNBc3Np
c3RpbmdOb2RlKCkgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBpbnRlcnByZXRLZXlFdmVudChjb25z
dCBOYXRpdmVXZWJLZXlib2FyZEV2ZW50JiwgYm9vbCBpc0NoYXJFdmVudCkgPSAwOwpJbmRleDog
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgJKHJldmlzaW9uIDIyNjQ3NCkKKysr
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yODQsNiArMjg0LDcgQEAgc3RydWN0IE5vZGVBc3Npc3RhbmNlQXJndW1lbnRzIHsKICAgICBB
c3Npc3RlZE5vZGVJbmZvcm1hdGlvbiBtX25vZGVJbmZvcm1hdGlvbjsKICAgICBib29sIG1fdXNl
cklzSW50ZXJhY3Rpbmc7CiAgICAgYm9vbCBtX2JsdXJQcmV2aW91c05vZGU7CisgICAgYm9vbCBt
X2NoYW5naW5nQWN0aXZpdHlTdGF0ZTsKICAgICBSZWZQdHI8QVBJOjpPYmplY3Q+IG1fdXNlckRh
dGE7CiB9OwogCkBAIC0xNjAwLDcgKzE2MDEsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBkaWRH
ZXRUYXBIaWdobGlnaHRHZW9tZXRyaWVzKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgV2ViQ29y
ZTo6Q29sb3ImIGNvbG9yLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6RmxvYXRRdWFkPiYgZ2VvbWV0
cmllcywgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgdG9wTGVmdFJhZGl1cywgY29uc3QgV2ViQ29y
ZTo6SW50U2l6ZSYgdG9wUmlnaHRSYWRpdXMsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGJvdHRv
bUxlZnRSYWRpdXMsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGJvdHRvbVJpZ2h0UmFkaXVzKTsK
IAotICAgIHZvaWQgc3RhcnRBc3Npc3RpbmdOb2RlKGNvbnN0IEFzc2lzdGVkTm9kZUluZm9ybWF0
aW9uJiwgYm9vbCB1c2VySXNJbnRlcmFjdGluZywgYm9vbCBibHVyUHJldmlvdXNOb2RlLCBjb25z
dCBVc2VyRGF0YSYpOworICAgIHZvaWQgc3RhcnRBc3Npc3RpbmdOb2RlKGNvbnN0IEFzc2lzdGVk
Tm9kZUluZm9ybWF0aW9uJiwgYm9vbCB1c2VySXNJbnRlcmFjdGluZywgYm9vbCBibHVyUHJldmlv
dXNOb2RlLCBib29sIGNoYW5naW5nQWN0aXZpdHlTdGF0ZSwgY29uc3QgVXNlckRhdGEmKTsKICAg
ICB2b2lkIHN0b3BBc3Npc3RpbmdOb2RlKCk7CiAKICAgICB2b2lkIHNob3dJbnNwZWN0b3JIaWdo
bGlnaHQoY29uc3QgV2ViQ29yZTo6SGlnaGxpZ2h0Jik7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiAyMjY0NzQp
CisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4JKHdv
cmtpbmcgY29weSkKQEAgLTM5Miw3ICszOTIsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkg
ewogICAgIFJlc3RvcmVQYWdlQ2VudGVyQW5kU2NhbGUoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpG
bG9hdFBvaW50PiB1bm9ic2N1cmVkQ2VudGVyLCBkb3VibGUgc2NhbGUpCiAgICAgRGlkR2V0VGFw
SGlnaGxpZ2h0R2VvbWV0cmllcyh1aW50NjRfdCByZXF1ZXN0SUQsIFdlYkNvcmU6OkNvbG9yIGNv
bG9yLCBWZWN0b3I8V2ViQ29yZTo6RmxvYXRRdWFkPiBnZW9tZXRyaWVzLCBXZWJDb3JlOjpJbnRT
aXplIHRvcExlZnRSYWRpdXMsIFdlYkNvcmU6OkludFNpemUgdG9wUmlnaHRSYWRpdXMsIFdlYkNv
cmU6OkludFNpemUgYm90dG9tTGVmdFJhZGl1cywgV2ViQ29yZTo6SW50U2l6ZSBib3R0b21SaWdo
dFJhZGl1cykKIAotICAgIFN0YXJ0QXNzaXN0aW5nTm9kZShzdHJ1Y3QgV2ViS2l0OjpBc3Npc3Rl
ZE5vZGVJbmZvcm1hdGlvbiBpbmZvcm1hdGlvbiwgYm9vbCB1c2VySXNJbnRlcmFjdGluZywgYm9v
bCBibHVyUHJldmlvdXNOb2RlLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQorICAgIFN0YXJ0
QXNzaXN0aW5nTm9kZShzdHJ1Y3QgV2ViS2l0OjpBc3Npc3RlZE5vZGVJbmZvcm1hdGlvbiBpbmZv
cm1hdGlvbiwgYm9vbCB1c2VySXNJbnRlcmFjdGluZywgYm9vbCBibHVyUHJldmlvdXNOb2RlLCBi
b29sIGNoYW5naW5nQWN0aXZpdHlTdGF0ZSwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKICAg
ICBTdG9wQXNzaXN0aW5nTm9kZSgpCiAgICAgT3ZlcmZsb3dTY3JvbGxXaWxsU3RhcnRTY3JvbGwo
KQogICAgIE92ZXJmbG93U2Nyb2xsRGlkRW5kU2Nyb2xsKCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCShyZXZpc2lvbiAyMjY0NzQp
CisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAkod29y
a2luZyBjb3B5KQpAQCAtMTI1LDcgKzEyNSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZXN0b3Jl
UGFnZVN0YXRlKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRQb2ludD4sIGNvbnN0IFdlYkNv
cmU6OkZsb2F0UG9pbnQmLCBjb25zdCBXZWJDb3JlOjpGbG9hdEJveEV4dGVudCYsIGRvdWJsZSkg
b3ZlcnJpZGU7CiAgICAgdm9pZCByZXN0b3JlUGFnZUNlbnRlckFuZFNjYWxlKHN0ZDo6b3B0aW9u
YWw8V2ViQ29yZTo6RmxvYXRQb2ludD4sIGRvdWJsZSkgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIHN0
YXJ0QXNzaXN0aW5nTm9kZShjb25zdCBBc3Npc3RlZE5vZGVJbmZvcm1hdGlvbiYsIGJvb2wgdXNl
cklzSW50ZXJhY3RpbmcsIGJvb2wgYmx1clByZXZpb3VzTm9kZSwgQVBJOjpPYmplY3QqIHVzZXJE
YXRhKSBvdmVycmlkZTsKKyAgICB2b2lkIHN0YXJ0QXNzaXN0aW5nTm9kZShjb25zdCBBc3Npc3Rl
ZE5vZGVJbmZvcm1hdGlvbiYsIGJvb2wgdXNlcklzSW50ZXJhY3RpbmcsIGJvb2wgYmx1clByZXZp
b3VzTm9kZSwgYm9vbCBjaGFuZ2luZ0FjdGl2aXR5U3RhdGUsIEFQSTo6T2JqZWN0KiB1c2VyRGF0
YSkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdG9wQXNzaXN0aW5nTm9kZSgpIG92ZXJyaWRlOwogICAg
IGJvb2wgaXNBc3Npc3RpbmdOb2RlKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZWxlY3Rpb25EaWRD
aGFuZ2UoKSBvdmVycmlkZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdl
Q2xpZW50SW1wbElPUy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvUGFnZUNsaWVudEltcGxJT1MubW0JKHJldmlzaW9uIDIyNjQ3NCkKKysrIFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQkod29ya2luZyBjb3B5KQpAQCAt
NTM0LDcgKzUzNCw3IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OnJlc3RvcmVQYWdlQ2VudGVyQW4K
ICAgICBbbV93ZWJWaWV3IF9yZXN0b3JlUGFnZVN0YXRlVG9Vbm9ic2N1cmVkQ2VudGVyOmNlbnRl
ciBzY2FsZTpzY2FsZV07CiB9CiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OnN0YXJ0QXNzaXN0aW5n
Tm9kZShjb25zdCBBc3Npc3RlZE5vZGVJbmZvcm1hdGlvbiYgbm9kZUluZm9ybWF0aW9uLCBib29s
IHVzZXJJc0ludGVyYWN0aW5nLCBib29sIGJsdXJQcmV2aW91c05vZGUsIEFQSTo6T2JqZWN0KiB1
c2VyRGF0YSkKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnN0YXJ0QXNzaXN0aW5nTm9kZShjb25zdCBB
c3Npc3RlZE5vZGVJbmZvcm1hdGlvbiYgbm9kZUluZm9ybWF0aW9uLCBib29sIHVzZXJJc0ludGVy
YWN0aW5nLCBib29sIGJsdXJQcmV2aW91c05vZGUsIGJvb2wgY2hhbmdpbmdBY3Rpdml0eVN0YXRl
LCBBUEk6Ok9iamVjdCogdXNlckRhdGEpCiB7CiAgICAgTUVTU0FHRV9DSEVDSyghdXNlckRhdGEg
fHwgdXNlckRhdGEtPnR5cGUoKSA9PSBBUEk6Ok9iamVjdDo6VHlwZTo6RGF0YSk7CiAKQEAgLTU0
OSw3ICs1NDksNyBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpzdGFydEFzc2lzdGluZ05vZGUoCiAg
ICAgICAgIH0KICAgICB9CiAKLSAgICBbbV9jb250ZW50VmlldyBfc3RhcnRBc3Npc3RpbmdOb2Rl
Om5vZGVJbmZvcm1hdGlvbiB1c2VySXNJbnRlcmFjdGluZzp1c2VySXNJbnRlcmFjdGluZyBibHVy
UHJldmlvdXNOb2RlOmJsdXJQcmV2aW91c05vZGUgdXNlck9iamVjdDp1c2VyT2JqZWN0XTsKKyAg
ICBbbV9jb250ZW50VmlldyBfc3RhcnRBc3Npc3RpbmdOb2RlOm5vZGVJbmZvcm1hdGlvbiB1c2Vy
SXNJbnRlcmFjdGluZzp1c2VySXNJbnRlcmFjdGluZyBibHVyUHJldmlvdXNOb2RlOmJsdXJQcmV2
aW91c05vZGUgY2hhbmdpbmdBY3Rpdml0eVN0YXRlOmNoYW5naW5nQWN0aXZpdHlTdGF0ZSB1c2Vy
T2JqZWN0OnVzZXJPYmplY3RdOwogfQogCiBib29sIFBhZ2VDbGllbnRJbXBsOjppc0Fzc2lzdGlu
Z05vZGUoKQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAkocmV2aXNpb24gMjI2NDc0KQorKysgU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yODMsNyArMjgzLDcgQEAgRk9SX0VBQ0hfV0tDT05URU5UVklFV19BQ1RJT04oREVD
TEFSRV9XSwogCiAtIChCT09MKV9tYXlEaXNhYmxlRG91YmxlVGFwR2VzdHVyZXNEdXJpbmdTaW5n
bGVUYXA7CiAtICh2b2lkKV9kaXNhYmxlRG91YmxlVGFwR2VzdHVyZXNEdXJpbmdUYXBJZk5lY2Vz
c2FyeToodWludDY0X3QpcmVxdWVzdElEOwotLSAodm9pZClfc3RhcnRBc3Npc3RpbmdOb2RlOihj
b25zdCBXZWJLaXQ6OkFzc2lzdGVkTm9kZUluZm9ybWF0aW9uJilpbmZvcm1hdGlvbiB1c2VySXNJ
bnRlcmFjdGluZzooQk9PTCl1c2VySXNJbnRlcmFjdGluZyBibHVyUHJldmlvdXNOb2RlOihCT09M
KWJsdXJQcmV2aW91c05vZGUgdXNlck9iamVjdDooTlNPYmplY3QgPE5TU2VjdXJlQ29kaW5nPiAq
KXVzZXJPYmplY3Q7CistICh2b2lkKV9zdGFydEFzc2lzdGluZ05vZGU6KGNvbnN0IFdlYktpdDo6
QXNzaXN0ZWROb2RlSW5mb3JtYXRpb24mKWluZm9ybWF0aW9uIHVzZXJJc0ludGVyYWN0aW5nOihC
T09MKXVzZXJJc0ludGVyYWN0aW5nIGJsdXJQcmV2aW91c05vZGU6KEJPT0wpYmx1clByZXZpb3Vz
Tm9kZSBjaGFuZ2luZ0FjdGl2aXR5U3RhdGU6KGJvb2wpY2hhbmdpbmdBY3Rpdml0eVN0YXRlIHVz
ZXJPYmplY3Q6KE5TT2JqZWN0IDxOU1NlY3VyZUNvZGluZz4gKil1c2VyT2JqZWN0OwogLSAodm9p
ZClfc3RvcEFzc2lzdGluZ05vZGU7CiAtICh2b2lkKV9zZWxlY3Rpb25DaGFuZ2VkOwogLSAodm9p
ZClfdXBkYXRlQ2hhbmdlZFNlbGVjdGlvbjsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQkocmV2aXNpb24g
MjI2NDc0KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRl
cmFjdGlvbi5tbQkod29ya2luZyBjb3B5KQpAQCAtMzg2NSw3ICszODY1LDcgQEAgc3RhdGljIGJv
b2wgaXNBc3Npc3RhYmxlSW5wdXRUeXBlKElucHV0VAogICAgIHJldHVybiBmYWxzZTsKIH0KIAot
LSAodm9pZClfc3RhcnRBc3Npc3RpbmdOb2RlOihjb25zdCBBc3Npc3RlZE5vZGVJbmZvcm1hdGlv
biYpaW5mb3JtYXRpb24gdXNlcklzSW50ZXJhY3Rpbmc6KEJPT0wpdXNlcklzSW50ZXJhY3Rpbmcg
Ymx1clByZXZpb3VzTm9kZTooQk9PTClibHVyUHJldmlvdXNOb2RlIHVzZXJPYmplY3Q6KE5TT2Jq
ZWN0IDxOU1NlY3VyZUNvZGluZz4gKil1c2VyT2JqZWN0CistICh2b2lkKV9zdGFydEFzc2lzdGlu
Z05vZGU6KGNvbnN0IEFzc2lzdGVkTm9kZUluZm9ybWF0aW9uJilpbmZvcm1hdGlvbiB1c2VySXNJ
bnRlcmFjdGluZzooQk9PTCl1c2VySXNJbnRlcmFjdGluZyBibHVyUHJldmlvdXNOb2RlOihCT09M
KWJsdXJQcmV2aW91c05vZGUgY2hhbmdpbmdBY3Rpdml0eVN0YXRlOihCT09MKWNoYW5naW5nQWN0
aXZpdHlTdGF0ZSB1c2VyT2JqZWN0OihOU09iamVjdCA8TlNTZWN1cmVDb2Rpbmc+ICopdXNlck9i
amVjdAogewogICAgIF9pbnB1dFZpZXdVcGRhdGVEZWZlcnJlciA9IG51bGxwdHI7CiAKQEAgLTM4
NzcsNyArMzg3Nyw3IEBAIC0gKHZvaWQpX3N0YXJ0QXNzaXN0aW5nTm9kZTooY29uc3QgQXNzaXMK
ICAgICAgICAgc2hvdWxkU2hvd0tleWJvYXJkID0gW2lucHV0RGVsZWdhdGUgX3dlYlZpZXc6X3dl
YlZpZXcgZm9jdXNTaG91bGRTdGFydElucHV0U2Vzc2lvbjpmb2N1c2VkRWxlbWVudEluZm8uZ2V0
KCldOwogICAgIGVsc2UgewogICAgICAgICAvLyBUaGUgZGVmYXVsdCBiZWhhdmlvciBpcyB0byBh
bGxvdyBub2RlIGFzc2lzdGFuY2UgaWYgdGhlIHVzZXIgaXMgaW50ZXJhY3Rpbmcgb3IgdGhlIGtl
eWJvYXJkIGlzIGFscmVhZHkgYWN0aXZlLgotICAgICAgICBzaG91bGRTaG93S2V5Ym9hcmQgPSB1
c2VySXNJbnRlcmFjdGluZyB8fCBfdGV4dFNlbGVjdGlvbkFzc2lzdGFudDsKKyAgICAgICAgc2hv
dWxkU2hvd0tleWJvYXJkID0gdXNlcklzSW50ZXJhY3RpbmcgfHwgX3RleHRTZWxlY3Rpb25Bc3Np
c3RhbnQgfHwgY2hhbmdpbmdBY3Rpdml0eVN0YXRlOwogI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNU
SU9OKQogICAgICAgICBzaG91bGRTaG93S2V5Ym9hcmQgfD0gX2RyYWdEcm9wSW50ZXJhY3Rpb25T
dGF0ZS5pc1BlcmZvcm1pbmdEcm9wKCk7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQkocmV2aXNpb24gMjI2NDc0KQorKysg
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQkod29ya2luZyBj
b3B5KQpAQCAtMzk4LDcgKzM5OCw4IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRDb21taXRMYXll
clRyZWUoY28KICAgICB9CiAKICAgICBpZiAobV9oYXNEZWZlcnJlZFN0YXJ0QXNzaXN0aW5nTm9k
ZSkgewotICAgICAgICBtX3BhZ2VDbGllbnQuc3RhcnRBc3Npc3RpbmdOb2RlKG1fZGVmZXJyZWRO
b2RlQXNzaXN0YW5jZUFyZ3VtZW50cy0+bV9ub2RlSW5mb3JtYXRpb24sIG1fZGVmZXJyZWROb2Rl
QXNzaXN0YW5jZUFyZ3VtZW50cy0+bV91c2VySXNJbnRlcmFjdGluZywgbV9kZWZlcnJlZE5vZGVB
c3Npc3RhbmNlQXJndW1lbnRzLT5tX2JsdXJQcmV2aW91c05vZGUsIG1fZGVmZXJyZWROb2RlQXNz
aXN0YW5jZUFyZ3VtZW50cy0+bV91c2VyRGF0YS5nZXQoKSk7CisgICAgICAgIG1fcGFnZUNsaWVu
dC5zdGFydEFzc2lzdGluZ05vZGUobV9kZWZlcnJlZE5vZGVBc3Npc3RhbmNlQXJndW1lbnRzLT5t
X25vZGVJbmZvcm1hdGlvbiwgbV9kZWZlcnJlZE5vZGVBc3Npc3RhbmNlQXJndW1lbnRzLT5tX3Vz
ZXJJc0ludGVyYWN0aW5nLCBtX2RlZmVycmVkTm9kZUFzc2lzdGFuY2VBcmd1bWVudHMtPm1fYmx1
clByZXZpb3VzTm9kZSwKKyAgICAgICAgICAgIG1fZGVmZXJyZWROb2RlQXNzaXN0YW5jZUFyZ3Vt
ZW50cy0+bV9jaGFuZ2luZ0FjdGl2aXR5U3RhdGUsIG1fZGVmZXJyZWROb2RlQXNzaXN0YW5jZUFy
Z3VtZW50cy0+bV91c2VyRGF0YS5nZXQoKSk7CiAgICAgICAgIG1faGFzRGVmZXJyZWRTdGFydEFz
c2lzdGluZ05vZGUgPSBmYWxzZTsKICAgICAgICAgbV9kZWZlcnJlZE5vZGVBc3Npc3RhbmNlQXJn
dW1lbnRzID0gbnVsbHB0cjsKICAgICB9CkBAIC04OTcsMTYgKzg5OCwxNiBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6ZGlkR2V0VGFwSGlnaGxpZ2h0R2VvCiAgICAgbV9wYWdlQ2xpZW50LmRpZEdldFRh
cEhpZ2hsaWdodEdlb21ldHJpZXMocmVxdWVzdElELCBjb2xvciwgaGlnaGxpZ2h0ZWRRdWFkcywg
dG9wTGVmdFJhZGl1cywgdG9wUmlnaHRSYWRpdXMsIGJvdHRvbUxlZnRSYWRpdXMsIGJvdHRvbVJp
Z2h0UmFkaXVzKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnN0YXJ0QXNzaXN0aW5nTm9kZShj
b25zdCBBc3Npc3RlZE5vZGVJbmZvcm1hdGlvbiYgaW5mb3JtYXRpb24sIGJvb2wgdXNlcklzSW50
ZXJhY3RpbmcsIGJvb2wgYmx1clByZXZpb3VzTm9kZSwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRh
KQordm9pZCBXZWJQYWdlUHJveHk6OnN0YXJ0QXNzaXN0aW5nTm9kZShjb25zdCBBc3Npc3RlZE5v
ZGVJbmZvcm1hdGlvbiYgaW5mb3JtYXRpb24sIGJvb2wgdXNlcklzSW50ZXJhY3RpbmcsIGJvb2wg
Ymx1clByZXZpb3VzTm9kZSwgYm9vbCBjaGFuZ2luZ0FjdGl2aXR5U3RhdGUsIGNvbnN0IFVzZXJE
YXRhJiB1c2VyRGF0YSkKIHsKICAgICBBUEk6Ok9iamVjdCogdXNlckRhdGFPYmplY3QgPSBwcm9j
ZXNzKCkudHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyh1c2VyRGF0YS5vYmplY3QoKSkuZ2V0KCk7
CiAgICAgaWYgKG1fZWRpdG9yU3RhdGUuaXNNaXNzaW5nUG9zdExheW91dERhdGEpIHsKLSAgICAg
ICAgbV9kZWZlcnJlZE5vZGVBc3Npc3RhbmNlQXJndW1lbnRzID0gc3RkOjptYWtlX3VuaXF1ZTxO
b2RlQXNzaXN0YW5jZUFyZ3VtZW50cz4oTm9kZUFzc2lzdGFuY2VBcmd1bWVudHMgeyBpbmZvcm1h
dGlvbiwgdXNlcklzSW50ZXJhY3RpbmcsIGJsdXJQcmV2aW91c05vZGUsIHVzZXJEYXRhT2JqZWN0
IH0pOworICAgICAgICBtX2RlZmVycmVkTm9kZUFzc2lzdGFuY2VBcmd1bWVudHMgPSBzdGQ6Om1h
a2VfdW5pcXVlPE5vZGVBc3Npc3RhbmNlQXJndW1lbnRzPihOb2RlQXNzaXN0YW5jZUFyZ3VtZW50
cyB7IGluZm9ybWF0aW9uLCB1c2VySXNJbnRlcmFjdGluZywgYmx1clByZXZpb3VzTm9kZSwgY2hh
bmdpbmdBY3Rpdml0eVN0YXRlLCB1c2VyRGF0YU9iamVjdCB9KTsKICAgICAgICAgbV9oYXNEZWZl
cnJlZFN0YXJ0QXNzaXN0aW5nTm9kZSA9IHRydWU7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
LSAgICBtX3BhZ2VDbGllbnQuc3RhcnRBc3Npc3RpbmdOb2RlKGluZm9ybWF0aW9uLCB1c2VySXNJ
bnRlcmFjdGluZywgYmx1clByZXZpb3VzTm9kZSwgdXNlckRhdGFPYmplY3QpOworICAgIG1fcGFn
ZUNsaWVudC5zdGFydEFzc2lzdGluZ05vZGUoaW5mb3JtYXRpb24sIHVzZXJJc0ludGVyYWN0aW5n
LCBibHVyUHJldmlvdXNOb2RlLCBjaGFuZ2luZ0FjdGl2aXR5U3RhdGUsIHVzZXJEYXRhT2JqZWN0
KTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OnN0b3BBc3Npc3RpbmdOb2RlKCkKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCShyZXZpc2lvbiAy
MjY0NzQpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjcyMyw3ICsyNzIzLDExIEBAIHZvaWQgV2ViUGFnZTo6c2V0QWN0
aXZpdHlTdGF0ZShBY3Rpdml0eVMKICAgICBpZiAoY2hhbmdlZCkKICAgICAgICAgdXBkYXRlVGhy
b3R0bGVTdGF0ZSgpOwogCi0gICAgbV9wYWdlLT5zZXRBY3Rpdml0eVN0YXRlKGFjdGl2aXR5U3Rh
dGUpOworICAgIHsKKyAgICAgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gY3VycmVudGx5Q2hhbmdpbmdB
Y3Rpdml0eVN0YXRlIHsgbV9jaGFuZ2luZ0FjdGl2aXR5U3RhdGUsIHRydWUgfTsKKyAgICAgICAg
bV9wYWdlLT5zZXRBY3Rpdml0eVN0YXRlKGFjdGl2aXR5U3RhdGUpOworICAgIH0KKyAgICAKICAg
ICBmb3IgKGF1dG8qIHBsdWdpblZpZXcgOiBtX3BsdWdpblZpZXdzKQogICAgICAgICBwbHVnaW5W
aWV3LT5hY3Rpdml0eVN0YXRlRGlkQ2hhbmdlKGNoYW5nZWQpOwogCkBAIC00ODc0LDcgKzQ4Nzgs
NyBAQCB2b2lkIFdlYlBhZ2U6OmVsZW1lbnREaWRGb2N1cyhXZWJDb3JlOjpOCiAKICAgICAgICAg
bV9mb3JtQ2xpZW50LT53aWxsQmVnaW5JbnB1dFNlc3Npb24odGhpcywgZG93bmNhc3Q8RWxlbWVu
dD4obm9kZSksIFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKCpub2RlLT5kb2N1bWVudCgpLmZyYW1l
KCkpLCBtX3VzZXJJc0ludGVyYWN0aW5nLCB1c2VyRGF0YSk7CiAKLSAgICAgICAgc2VuZChNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpTdGFydEFzc2lzdGluZ05vZGUoaW5mb3JtYXRpb24sIG1fdXNl
cklzSW50ZXJhY3RpbmcsIG1faGFzUGVuZGluZ0JsdXJOb3RpZmljYXRpb24sIFVzZXJEYXRhKFdl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLnRyYW5zZm9ybU9iamVjdHNUb0hhbmRsZXModXNlckRhdGEu
Z2V0KCkpLmdldCgpKSkpOworICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlN0
YXJ0QXNzaXN0aW5nTm9kZShpbmZvcm1hdGlvbiwgbV91c2VySXNJbnRlcmFjdGluZywgbV9oYXNQ
ZW5kaW5nQmx1ck5vdGlmaWNhdGlvbiwgbV9jaGFuZ2luZ0FjdGl2aXR5U3RhdGUsIFVzZXJEYXRh
KFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnRyYW5zZm9ybU9iamVjdHNUb0hhbmRsZXModXNlckRh
dGEuZ2V0KCkpLmdldCgpKSkpOwogI2VsaWYgUExBVEZPUk0oTUFDKQogICAgICAgICBpZiAobm9k
ZS0+aGFzVGFnTmFtZShXZWJDb3JlOjpIVE1MTmFtZXM6OnNlbGVjdFRhZykpCiAgICAgICAgICAg
ICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNldEVkaXRhYmxlRWxlbWVudElzRm9jdXNl
ZChmYWxzZSkpOwpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaAkocmV2aXNpb24gMjI2NDc0KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNTY3LDYgKzE1NjcsNyBAQCBwcml2YXRl
OgogICAgIGJvb2wgbV9oYXNFdmVyRm9jdXNlZEVsZW1lbnREdWVUb1VzZXJJbnRlcmFjdGlvblNp
bmNlUGFnZVRyYW5zaXRpb24geyBmYWxzZSB9OwogICAgIGJvb2wgbV9uZWVkc0hpZGRlbkNvbnRl
bnRFZGl0YWJsZVF1aXJrIHsgZmFsc2UgfTsKICAgICBib29sIG1fbmVlZHNQbGFpblRleHRRdWly
ayB7IGZhbHNlIH07CisgICAgYm9vbCBtX2NoYW5naW5nQWN0aXZpdHlTdGF0ZSB7IGZhbHNlIH07
CiAKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKICAgICBib29sIG1faXNTaG93aW5nQ29udGV4
dE1lbnUgeyBmYWxzZSB9Owo=
</data>
<flag name="review"
          id="349640"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>