<?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>171154</bug_id>
          
          <creation_ts>2017-04-21 18:19:48 -0700</creation_ts>
          <short_desc>Support writing link titles to the pasteboard when beginning data interaction on a link</short_desc>
          <delta_ts>2017-04-22 05:35:35 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>aestes</cc>
    
    <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1300048</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-04-21 18:19:48 -0700</bug_when>
    <thetext>Work towards &lt;rdar://problem/31356937&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1300056</commentid>
    <comment_count>1</comment_count>
      <attachid>307860</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-04-21 18:48:08 -0700</bug_when>
    <thetext>Created attachment 307860
Part (1/3)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1300086</commentid>
    <comment_count>2</comment_count>
      <attachid>307869</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-04-21 20:16:09 -0700</bug_when>
    <thetext>Created attachment 307869
Attempt to fix 32-bit iOS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1300096</commentid>
    <comment_count>3</comment_count>
      <attachid>307874</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-04-21 20:41:01 -0700</bug_when>
    <thetext>Created attachment 307874
Really fix iOS build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1300112</commentid>
    <comment_count>4</comment_count>
      <attachid>307874</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-04-21 21:43:29 -0700</bug_when>
    <thetext>Comment on attachment 307874
Really fix iOS build

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

&gt; Source/WebCore/platform/ios/PlatformPasteboardIOS.mm:42
&gt; +#if ENABLE(DATA_INTERACTION)
&gt; +#import &lt;UIKit/NSURL+UIItemProvider.h&gt;
&gt; +#endif

This is fine for now, but the build will break once we start building against the Public iOS 11 SDK because NSURL+UIItemProvider.h is a Private header. We&apos;ll need to make a SPI header for this.

&gt; Source/WebCore/platform/ios/PlatformPasteboardIOS.mm:296
&gt; +    RetainPtr&lt;NSMutableArray&gt; objectRepresentations = adoptNS([[NSMutableArray alloc] init]);

This is one of the cases where I prefer auto, since the type is clear from the right hand side.

&gt; Source/WebCore/platform/ios/PlatformPasteboardIOS.mm:299
&gt; +    NSURL *nsURL = (NSURL *)url.url;
&gt; +    if (nsURL) {

These two lines could be:

    if (NSURL *nsURL = (NSURL *)url.url) {

&gt; Source/WebCore/platform/ios/PlatformPasteboardIOS.mm:307
&gt; +    [m_pasteboard setItemsFromObjectRepresentations:@[[WebPasteboardItemData itemWithRepresentingObjects:objectRepresentations.get() additionalData:@{ }]]];

Can you use nil for the additionalData argument, or does it really need to be an empty NSDictionary?

&gt; Source/WebCore/platform/ios/WebItemProviderPasteboard.mm:176
&gt; +            [itemProvider registerDataRepresentationForTypeIdentifier:typeIdentifier visibility:UIItemProviderRepresentationOptionsVisibilityAll loadHandler:^NSProgress *(void (^completionHandler)(NSData *, NSError *))

Can you use the UIItemProviderDataLoadHandler typedef here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1300126</commentid>
    <comment_count>5</comment_count>
      <attachid>307874</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-04-21 22:28:55 -0700</bug_when>
    <thetext>Comment on attachment 307874
Really fix iOS build

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

Thanks for taking a look!

&gt;&gt; Source/WebCore/platform/ios/PlatformPasteboardIOS.mm:42
&gt;&gt; +#endif
&gt; 
&gt; This is fine for now, but the build will break once we start building against the Public iOS 11 SDK because NSURL+UIItemProvider.h is a Private header. We&apos;ll need to make a SPI header for this.

Good point. I think the intention is to make NSURL+UIItemProvider.h public at some point (I suppose that begs the question, where will _title be defined :|). But if PoR is for this to remain private, I&apos;ll roll this into UIKitSPI.h, defining _title in a private category on NSURL for non-internal SDKs.

&gt;&gt; Source/WebCore/platform/ios/PlatformPasteboardIOS.mm:296
&gt;&gt; +    RetainPtr&lt;NSMutableArray&gt; objectRepresentations = adoptNS([[NSMutableArray alloc] init]);
&gt; 
&gt; This is one of the cases where I prefer auto, since the type is clear from the right hand side.

Yep! Changed to use auto.

&gt;&gt; Source/WebCore/platform/ios/PlatformPasteboardIOS.mm:299
&gt;&gt; +    if (nsURL) {
&gt; 
&gt; These two lines could be:
&gt; 
&gt;     if (NSURL *nsURL = (NSURL *)url.url) {

True! (I can also drop the (NSURL *) as well, since the conversion is implicit). Fixed.

&gt;&gt; Source/WebCore/platform/ios/PlatformPasteboardIOS.mm:307
&gt;&gt; +    [m_pasteboard setItemsFromObjectRepresentations:@[[WebPasteboardItemData itemWithRepresentingObjects:objectRepresentations.get() additionalData:@{ }]]];
&gt; 
&gt; Can you use nil for the additionalData argument, or does it really need to be an empty NSDictionary?

Good point. I could use nil here, but I&apos;m actually going to refactor this in the next patch (not up yet :p) so that we don&apos;t have to use initialize WebPasteboardItemDatas in this way at all. I&apos;ll change it to nil here though.

&gt;&gt; Source/WebCore/platform/ios/WebItemProviderPasteboard.mm:176
&gt;&gt; +            [itemProvider registerDataRepresentationForTypeIdentifier:typeIdentifier visibility:UIItemProviderRepresentationOptionsVisibilityAll loadHandler:^NSProgress *(void (^completionHandler)(NSData *, NSError *))
&gt; 
&gt; Can you use the UIItemProviderDataLoadHandler typedef here?

I wanted to avoid using that, since it&apos;s marked as deprecated in the UIKit headers (UIItemProvider_Private.h). I agree it looks much cleaner using a typedef though -- I&apos;ll declare a typedef at the top of this file and use that here instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1300128</commentid>
    <comment_count>6</comment_count>
      <attachid>307887</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-04-21 22:37:37 -0700</bug_when>
    <thetext>Created attachment 307887
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1300140</commentid>
    <comment_count>7</comment_count>
      <attachid>307887</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-04-21 23:18:56 -0700</bug_when>
    <thetext>Comment on attachment 307887
Patch for landing

Clearing flags on attachment: 307887

Committed r215663: &lt;http://trac.webkit.org/changeset/215663&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>307860</attachid>
            <date>2017-04-21 18:48:08 -0700</date>
            <delta_ts>2017-04-21 20:16:08 -0700</delta_ts>
            <desc>Part (1/3)</desc>
            <filename>bug-171154-20170421184808.patch</filename>
            <type>text/plain</type>
            <size>24870</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1NjU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGMwNTM5OGZhNDY0OTg4
ZDM5MWQwOTFlNmYxNDQyYjYwY2I4NTIxMS4uMTQ3OWNmYmNjMjhhNzBhNjQ4NjM3M2Q1YjUxZWYw
NjllYWE4ZDZkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDE3LTA0LTIxICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgd3Jp
dGluZyBsaW5rIHRpdGxlcyB0byB0aGUgcGFzdGVib2FyZCB3aGVuIGJlZ2lubmluZyBkYXRhIGlu
dGVyYWN0aW9uIG9uIGEgbGluaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTcxMTU0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMTM1NjkzNz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDdXJyZW50bHks
IHdoZW4gd3JpdGluZyBOU1VSTHMgdG8gdGhlIHBhc3RlYm9hcmQsIHdlIG9ubHkgd3JpdGUgYSBT
dHJpbmcgdG8gdGhlIHBhc3RlYm9hcmQgY29ycmVzcG9uZGluZyB0bworICAgICAgICBrVVRUeXBl
VVJMLiBUaGlzIG1lYW5zIHJpY2hlciBkYXRhIGFzc29jaWF0ZWQgd2l0aCB0aGUgbGluayAoaW4g
dGhpcyBjYXNlLCB0aGUgdGl0bGUpIGFyZSBub3QgY2FwdHVyZWQgd2hlbgorICAgICAgICB3cml0
aW5nIHRvIHRoZSBwYXN0ZWJvYXJkLiBUbyBhZGRyZXNzIHRoaXMsIHdlIGludHJvZHVjZSBhIG5l
dyBjb2RlcGF0aCBmb3Igd3JpdGluZyBsaW5rcyB0byB0aGUgcGFzdGVib2FyZCB0aGF0CisgICAg
ICAgIG1pcnJvcnMgdGhlIHdheSBQYXN0ZWJvYXJkSW1hZ2UgYW5kIFBhc3RlYm9hcmRXZWJDb250
ZW50IGFyZSB3cml0dGVuIHRvIHRoZSBwYXN0ZWJvYXJkLgorCisgICAgICAgIFRlc3Q6IEF1Z21l
bnRlZCBEYXRhSW50ZXJhY3Rpb25UZXN0cy5MaW5rVG9JbnB1dC4KKworICAgICAgICAqIHBsYXRm
b3JtL1Bhc3RlYm9hcmRTdHJhdGVneS5oOgorICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtUGFz
dGVib2FyZC5oOgorCisgICAgICAgIEFkZCBwbHVtYmluZyBzdXBwb3J0IGZvciB3cml0aW5nIFBh
c3RlYm9hcmRVUkxzLgorCisgICAgICAgICogcGxhdGZvcm0vaW9zL1Bhc3RlYm9hcmRJT1MubW06
CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjp3cml0ZSk6CisgICAgICAgICogcGxhdGZv
cm0vaW9zL1BsYXRmb3JtUGFzdGVib2FyZElPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRm
b3JtUGFzdGVib2FyZDo6d3JpdGVPYmplY3RSZXByZXNlbnRhdGlvbnMpOgorCisgICAgICAgIFRl
YWNoIFBsYXRmb3JtUGFzdGVib2FyZCB0byBhbHNvIHNldCB0aGUgX3RpdGxlIGF0dHJpYnV0ZSBv
ZiB0aGUgTlNVUkwgd2hlbiBjcmVhdGluZyBhbiBOU1VSTCByZXByZXNlbnRhdGlvbgorICAgICAg
ICBmb3IgcmVnaXN0ZXJpbmcgd2l0aCB0aGUgc2hhcmVkIFdlYkl0ZW1Qcm92aWRlclBhc3RlYm9h
cmQuCisKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtUGFzdGVib2FyZDo6d3JpdGUpOgorICAg
ICAgICAqIHBsYXRmb3JtL2lvcy9XZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkLm1tOgorCisgICAg
ICAgIFJlbW92ZSBkZXByZWNhdGlvbiBndWFyZHMgYW5kIHJlcGxhY2UgZGVwcmVjYXRlZCBtZXRo
b2QgY2FsbHMgd2l0aCB0aGUgbGF0ZXN0IHVuZGVwcmVjYXRlZCB2ZXJzaW9ucy4KKworICAgICAg
ICAoLVtXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkIHNldEl0ZW1zRnJvbU9iamVjdFJlcHJlc2Vu
dGF0aW9uczpdKToKKyAgICAgICAgKiBwbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmg6CisKKyAg
ICAgICAgQWRkIHRoZSAtW05TVVJMIF90aXRsZV0gcHJvcGVydHkgYXMgU1BJLgorCiAyMDE3LTA0
LTIxICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFtN
ZWRpYVN0cmVhbSBpT1NdIFJlbGVhc2UgY2FwdHVyZSBzZXNzaW9uIHdoZW4gbm90IHByb2R1Y2lu
ZyBkYXRhCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggZDc0ODRiN2FhZjcwZjU5OWQ1NzI1OThiODViYmNi
MzZiMTlhYjQyZi4uZTc2Y2QwYzdmNTIyODYxN2QyNjA1NGE2ODY2NDUzMGIwNjdjNDNkNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
bWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE3LTA0LTIxICBXZW5zb24gSHNpZWgg
IDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgd3JpdGluZyBsaW5r
IHRpdGxlcyB0byB0aGUgcGFzdGVib2FyZCB3aGVuIGJlZ2lubmluZyBkYXRhIGludGVyYWN0aW9u
IG9uIGEgbGluaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTcxMTU0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMTM1NjkzNz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGp1c3QgZm9yIHNvbWUgY2hh
bmdlcyBpbiBXZWJDb3JlIHRvIGludHJvZHVjZSBhIHNlcGFyYXRlIGNvZGVwYXRoIGZvciB3cml0
aW5nIFBhc3RlYm9hcmRVUkxzLiBTZWUgV2ViQ29yZQorICAgICAgICBhbmQgV2ViS2l0MiBDaGFu
Z2VMb2dzIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXMuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9y
bVN0cmF0ZWdpZXMubW06CisgICAgICAgIChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OndyaXRlVG9Q
YXN0ZWJvYXJkKToKKwogMjAxNy0wNC0yMSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNl
bkB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlZHVjZSBjb3BpZXMgYW5kIGFsbG9jYXRpb25zIGlu
IFNoYXJlZEJ1ZmZlcjo6YXBwZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMjA1NDRjYmI4YWIxODc3ZjJlMzk0
YzBiZDJiM2ZjNzQzODNmYTkzMy4uMjcwZDVjY2UzNTdkMDQ1NjFjODU4ZmUzYzczY2E0NDRlZjc4
MjI5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM2IEBACiAyMDE3LTA0LTIxICBXZW5zb24gSHNp
ZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCisgICAgICAgIFN1cHBvcnQgd3JpdGluZyBs
aW5rIHRpdGxlcyB0byB0aGUgcGFzdGVib2FyZCB3aGVuIGJlZ2lubmluZyBkYXRhIGludGVyYWN0
aW9uIG9uIGEgbGluaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTcxMTU0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMTM1NjkzNz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRzIHN1cHBvcnQgZm9y
IHNldHRpbmcgdGhlIF90aXRsZSBhdHRyaWJ1dGUgb2YgTlNVUkxzIHdyaXR0ZW4gdG8gdGhlIHBh
c3RlYm9hcmQuIFNlZSBXZWJDb3JlIENoYW5nZUxvZyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAg
ICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAgICAgIChoZWFkZXJzX2Zvcl90
eXBlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAg
ICAgKElQQzo6QXJndW1lbnRDb2RlcjxQYXN0ZWJvYXJkVVJMPjo6ZW5jb2RlKToKKyAgICAgICAg
KElQQzo6QXJndW1lbnRDb2RlcjxQYXN0ZWJvYXJkVVJMPjo6ZGVjb2RlKToKKyAgICAgICAgKiBT
aGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmg6CisKKyAgICAgICAgVGVhY2ggUGFzdGVib2Fy
ZFVSTCB0byBiZSBzZXJpYWxpemVkIGluIElQQy4gRm9yIG5vdywgd2UganVzdCBzZW5kIGFjcm9z
cyB0aGUgYWJzb2x1dGUgc3RyaW5nIG9mIHRoZSBsaW5rIGFuZAorICAgICAgICBpdHMgdGl0bGUu
CisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUGFzdGVib2FyZFByb3h5Q29jb2EubW06
CisgICAgICAgIChXZWJLaXQ6OldlYlBhc3RlYm9hcmRQcm94eTo6d3JpdGVVUkxUb1Bhc3RlYm9h
cmQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHkuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUGFzdGVib2FyZFByb3h5Lm1lc3NhZ2VzLmluOgorCisgICAgICAgIEFk
ZCBJUEMgcGx1bWJpbmcgZm9yIHdyaXRpbmcgUGFzdGVib2FyVVJMcyB0byB0aGUgcGFzdGVib2Fy
ZC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJh
dGVnaWVzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjp3cml0
ZVRvUGFzdGVib2FyZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXMuaDoKKworMjAxNy0wNC0yMSAgV2Vuc29uIEhzaWVoICA8d2Vuc29u
X2hzaWVoQGFwcGxlLmNvbT4KKwogICAgICAgICBbV0syXSBBZGQgZGVsZWdhdGUgaG9va3MgZm9y
IG92ZXJyaWRpbmcgdW5oYW5kZWQgZGF0YSBpbnRlcmFjdGlvbiBvcGVyYXRpb25zCiAgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzEwMDUKICAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzMxNjY5NjQ2PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vUGFzdGVib2FyZFN0cmF0ZWd5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0
ZWJvYXJkU3RyYXRlZ3kuaAppbmRleCBlODhhNDg5MTE4MzY1NDk0NDhmZGNmNWY0YTQ1N2IyNDJk
N2Y3NjJjLi5jMmE2MzQ3NDk1ZjA4Y2NkMDFlOGU3YzBhZjYwMGMxZDYxMGIyOWE3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkU3RyYXRlZ3kuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkU3RyYXRlZ3kuaApAQCAtMzcsMTEgKzM3
LDEzIEBAIGNsYXNzIFNlbGVjdGlvbkRhdGE7CiBjbGFzcyBTaGFyZWRCdWZmZXI7CiBjbGFzcyBV
Ukw7CiBzdHJ1Y3QgUGFzdGVib2FyZEltYWdlOworc3RydWN0IFBhc3RlYm9hcmRVUkw7CiBzdHJ1
Y3QgUGFzdGVib2FyZFdlYkNvbnRlbnQ7CiAKIGNsYXNzIFBhc3RlYm9hcmRTdHJhdGVneSB7CiBw
dWJsaWM6CiAjaWYgUExBVEZPUk0oSU9TKQorICAgIHZpcnR1YWwgdm9pZCB3cml0ZVRvUGFzdGVi
b2FyZChjb25zdCBQYXN0ZWJvYXJkVVJMJiwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCB3cml0ZVRvUGFzdGVib2FyZChjb25zdCBQYXN0ZWJvYXJk
V2ViQ29udGVudCYsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgd3JpdGVUb1Bhc3RlYm9hcmQoY29uc3QgUGFzdGVib2FyZEltYWdlJiwgY29uc3Qg
U3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB3cml0ZVRvUGFz
dGVib2FyZChjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25z
dCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9QbGF0Zm9ybVBhc3RlYm9hcmQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1BsYXRmb3JtUGFzdGVib2FyZC5oCmluZGV4IDM3YTc5MTgzZjZjZjliNDFmODRmOGIwYTY3YWQ3
YmQ4YjAzYTQzNmEuLjc5MjNjMmY2Yjc1OWZhMjI5OTc1M2Q2ODFhOTMwYTlkZTQ0ODMwZjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtUGFzdGVib2FyZC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtUGFzdGVib2FyZC5oCkBAIC00Nyw2
ICs0Nyw3IEBAIGNsYXNzIFNlbGVjdGlvbkRhdGE7CiBjbGFzcyBTaGFyZWRCdWZmZXI7CiBjbGFz
cyBVUkw7CiBzdHJ1Y3QgUGFzdGVib2FyZEltYWdlOworc3RydWN0IFBhc3RlYm9hcmRVUkw7CiBz
dHJ1Y3QgUGFzdGVib2FyZFdlYkNvbnRlbnQ7CiAKIGNsYXNzIFBsYXRmb3JtUGFzdGVib2FyZCB7
CkBAIC03OCw2ICs3OSw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHdyaXRl
KGNvbnN0IFBhc3RlYm9hcmRXZWJDb250ZW50Jik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB3
cml0ZShjb25zdCBQYXN0ZWJvYXJkSW1hZ2UmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHdy
aXRlKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIGNvbnN0IFN0cmluZyYpOworICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgd3JpdGUoY29uc3QgUGFzdGVib2FyZFVSTCYpOwogICAgIFdFQkNP
UkVfRVhQT1JUIFJlZlB0cjxTaGFyZWRCdWZmZXI+IHJlYWRCdWZmZXIoaW50IGluZGV4LCBjb25z
dCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlKTsKICAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgcmVh
ZFN0cmluZyhpbnQgaW5kZXgsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUpOwogICAgIFdF
QkNPUkVfRVhQT1JUIFVSTCByZWFkVVJMKGludCBpbmRleCwgY29uc3QgU3RyaW5nJiBwYXN0ZWJv
YXJkVHlwZSk7CkBAIC05NCw2ICs5Niw3IEBAIHByaXZhdGU6CiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCB3cml0ZU9iamVjdFJlcHJlc2VudGF0aW9ucyhjb25zdCBQYXN0ZWJvYXJkV2ViQ29udGVu
dCYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgd3JpdGVPYmplY3RSZXByZXNlbnRhdGlvbnMo
Y29uc3QgUGFzdGVib2FyZEltYWdlJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB3cml0ZU9i
amVjdFJlcHJlc2VudGF0aW9ucyhjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBjb25zdCBT
dHJpbmcmIHRleHQpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgd3JpdGVPYmplY3RSZXByZXNl
bnRhdGlvbnMoY29uc3QgUGFzdGVib2FyZFVSTCYpOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShN
QUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGFzdGVib2FyZElP
Uy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QYXN0ZWJvYXJkSU9TLm1tCmluZGV4
IDcyOWIwZDVkNDkwYzkxMThjOWRmZmM5YjY3OWU3OWJhNmFkNGRmNmIuLjgxMzVlMjM4YjA5Mjcz
YmVlYWYxNzg2YTI1NzIwZTVmNzE3MDUyZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9QYXN0ZWJvYXJkSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9QYXN0ZWJvYXJkSU9TLm1tCkBAIC0xMjYsNyArMTI2LDcgQEAgdm9pZCBQYXN0ZWJvYXJk
Ojp3cml0ZVBsYWluVGV4dChjb25zdCBTdHJpbmcmIHRleHQsIFNtYXJ0UmVwbGFjZU9wdGlvbikK
IAogdm9pZCBQYXN0ZWJvYXJkOjp3cml0ZShjb25zdCBQYXN0ZWJvYXJkVVJMJiBwYXN0ZWJvYXJk
VVJMKQogewotICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+
d3JpdGVUb1Bhc3RlYm9hcmQoa1VUVHlwZVVSTCwgcGFzdGVib2FyZFVSTC51cmwuc3RyaW5nKCks
IG1fcGFzdGVib2FyZE5hbWUpOworICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJk
U3RyYXRlZ3koKS0+d3JpdGVUb1Bhc3RlYm9hcmQocGFzdGVib2FyZFVSTCwgbV9wYXN0ZWJvYXJk
TmFtZSk7CiB9CiAKIHZvaWQgUGFzdGVib2FyZDo6d3JpdGVUcnVzdHdvcnRoeVdlYlVSTHNQYm9h
cmRUeXBlKGNvbnN0IFBhc3RlYm9hcmRVUkwmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL1BsYXRmb3JtUGFzdGVib2FyZElPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9QbGF0Zm9ybVBhc3RlYm9hcmRJT1MubW0KaW5kZXggMzE3OGM0ZmE1NWY5YzBm
OGFmODZmYTNkZDcxMzY1NDcyNTZhMDJlMy4uMzk5NmQ1YjE4ZmYwYzUxZWJjOTg4Yjc5NzcxMjUx
ZjAxNWIzZDllNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXRm
b3JtUGFzdGVib2FyZElPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxh
dGZvcm1QYXN0ZWJvYXJkSU9TLm1tCkBAIC0zNCwyMSArMzQsMTMgQEAKICNpbXBvcnQgIlNvZnRM
aW5raW5nLmgiCiAjaW1wb3J0ICJXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkLmgiCiAjaW1wb3J0
IDxNb2JpbGVDb3JlU2VydmljZXMvTW9iaWxlQ29yZVNlcnZpY2VzLmg+CisjaW1wb3J0IDxVSUtp
dC9OU1VSTCtVSUl0ZW1Qcm92aWRlci5oPgogI2ltcG9ydCA8VUlLaXQvVUlJbWFnZS5oPgogCiBT
T0ZUX0xJTktfRlJBTUVXT1JLKFVJS2l0KQogU09GVF9MSU5LX0NMQVNTKFVJS2l0LCBVSUltYWdl
KQogU09GVF9MSU5LX0NMQVNTKFVJS2l0LCBVSVBhc3RlYm9hcmQpCiAKLUBpbnRlcmZhY2UgVUlQ
YXN0ZWJvYXJkCi0rIChVSVBhc3RlYm9hcmQgKilnZW5lcmFsUGFzdGVib2FyZDsKLS0gKHZvaWQp
c2V0SXRlbXM6KE5TQXJyYXkgKilpdGVtczsKLUBwcm9wZXJ0eShyZWFkb25seSxub25hdG9taWMp
IE5TSW50ZWdlciBudW1iZXJPZkl0ZW1zOwotLSAoTlNBcnJheSAqKWRhdGFGb3JQYXN0ZWJvYXJk
VHlwZTooTlNTdHJpbmcgKilwYXN0ZWJvYXJkVHlwZSBpbkl0ZW1TZXQ6KE5TSW5kZXhTZXQgKilp
dGVtU2V0OwotLSAoTlNBcnJheSAqKXZhbHVlc0ZvclBhc3RlYm9hcmRUeXBlOihOU1N0cmluZyAq
KXBhc3RlYm9hcmRUeXBlIGluSXRlbVNldDooTlNJbmRleFNldCAqKWl0ZW1TZXQ7Ci0tIChOU0lu
dGVnZXIpY2hhbmdlQ291bnQ7Ci1AZW5kCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUGxhdGZv
cm1QYXN0ZWJvYXJkOjpQbGF0Zm9ybVBhc3RlYm9hcmQoKQpAQCAtMjk1LDYgKzI4NywzMCBAQCB2
b2lkIFBsYXRmb3JtUGFzdGVib2FyZDo6d3JpdGUoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlw
ZSwgY29uc3QgU3RyaW5nJiB0ZXh0KQogICAgIFttX3Bhc3RlYm9hcmQgc2V0SXRlbXM6QFtyZXBy
ZXNlbnRhdGlvbnMuZ2V0KCldXTsKIH0KIAordm9pZCBQbGF0Zm9ybVBhc3RlYm9hcmQ6OndyaXRl
T2JqZWN0UmVwcmVzZW50YXRpb25zKGNvbnN0IFBhc3RlYm9hcmRVUkwmIHVybCkKK3sKKyAgICBS
ZXRhaW5QdHI8TlNNdXRhYmxlQXJyYXk+IG9iamVjdFJlcHJlc2VudGF0aW9ucyA9IGFkb3B0TlMo
W1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdF0pOworCisgICAgTlNVUkwgKm5zVVJMID0gKE5T
VVJMICopdXJsLnVybDsKKyAgICBpZiAobnNVUkwpIHsKKyAgICAgICAgW29iamVjdFJlcHJlc2Vu
dGF0aW9ucyBhZGRPYmplY3Q6bnNVUkxdOworICAgICAgICBpZiAoIXVybC50aXRsZS5pc0VtcHR5
KCkpCisgICAgICAgICAgICBuc1VSTC5fdGl0bGUgPSB1cmwudGl0bGU7CisgICAgfQorCisgICAg
W21fcGFzdGVib2FyZCBzZXRJdGVtc0Zyb21PYmplY3RSZXByZXNlbnRhdGlvbnM6QFtbV2ViUGFz
dGVib2FyZEl0ZW1EYXRhIGl0ZW1XaXRoUmVwcmVzZW50aW5nT2JqZWN0czpvYmplY3RSZXByZXNl
bnRhdGlvbnMuZ2V0KCkgYWRkaXRpb25hbERhdGE6QHsgfV1dXTsKK30KKwordm9pZCBQbGF0Zm9y
bVBhc3RlYm9hcmQ6OndyaXRlKGNvbnN0IFBhc3RlYm9hcmRVUkwmIHVybCkKK3sKKyAgICBpZiAo
W21fcGFzdGVib2FyZCByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHNldEl0ZW1zRnJvbU9i
amVjdFJlcHJlc2VudGF0aW9uczopXSkgeworICAgICAgICB3cml0ZU9iamVjdFJlcHJlc2VudGF0
aW9ucyh1cmwpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgd3JpdGUoa1VUVHlwZVVS
TCwgdXJsLnVybC5zdHJpbmcoKSk7Cit9CisKIGludCBQbGF0Zm9ybVBhc3RlYm9hcmQ6OmNvdW50
KCkKIHsKICAgICByZXR1cm4gW21fcGFzdGVib2FyZCBudW1iZXJPZkl0ZW1zXTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJk
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkl0ZW1Qcm92aWRlclBhc3RlYm9h
cmQubW0KaW5kZXggN2FiMTY0OThlZTcyMjBlOWVmZTM2YmI5NWVhMzExZTBkNmE4ZDJkMS4uZmEz
ZGQxMzJjMjUzOGRlOTYyMjUxODdjZTcyOWYxNjY2ZjEzZWQ4MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQubW0K
QEAgLTMyLDYgKzMyLDcgQEAKICNpbXBvcnQgIlVJS2l0U1BJLmgiCiAjaW1wb3J0IDxGb3VuZGF0
aW9uL05TUHJvZ3Jlc3MuaD4KICNpbXBvcnQgPE1vYmlsZUNvcmVTZXJ2aWNlcy9Nb2JpbGVDb3Jl
U2VydmljZXMuaD4KKyNpbXBvcnQgPFVJS2l0L05TVVJMK1VJSXRlbVByb3ZpZGVyLmg+CiAjaW1w
b3J0IDxVSUtpdC9VSUNvbG9yLmg+CiAjaW1wb3J0IDxVSUtpdC9VSUltYWdlLmg+CiAjaW1wb3J0
IDxVSUtpdC9VSUl0ZW1Qcm92aWRlcldyaXRpbmcuaD4KQEAgLTE1NywxNSArMTU4LDEzIEBAIHN0
YXRpYyBCT09MIGlzSW1hZ2VUeXBlKE5TU3RyaW5nICp0eXBlKQogICAgICAgICBpZiAoIWRhdGEu
cmVwcmVzZW50aW5nT2JqZWN0cy5jb3VudCAmJiAhZGF0YS5hZGRpdGlvbmFsRGF0YS5jb3VudCkK
ICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCiAgICAgICAgIFJldGFpblB0cjxVSUl0ZW1Qcm92aWRlcj4gaXRlbVByb3ZpZGVyID0gYWRv
cHROUyhbW2dldFVJSXRlbVByb3ZpZGVyQ2xhc3MoKSBhbGxvY10gaW5pdF0pOwogICAgICAgICAv
LyBGaXJzdCwgcmVnaXN0ZXIgYWxsIHBsYXRmb3JtIG9iamVjdHMsIHByaW9yaXRpemluZyBvYmpl
Y3RzIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGFycmF5LgogICAgICAgICBmb3IgKGlkIHJlcHJl
c2VudGluZ09iamVjdCBpbiBkYXRhLnJlcHJlc2VudGluZ09iamVjdHMpIHsKICAgICAgICAgICAg
IGlmICghW3JlcHJlc2VudGluZ09iamVjdCBjb25mb3Jtc1RvUHJvdG9jb2w6QHByb3RvY29sKFVJ
SXRlbVByb3ZpZGVyV3JpdGluZyldKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAg
ICAgICAgICBbaXRlbVByb3ZpZGVyIHJlZ2lzdGVyT2JqZWN0OihpZCA8VUlJdGVtUHJvdmlkZXJX
cml0aW5nPilyZXByZXNlbnRpbmdPYmplY3Qgb3B0aW9uczpuaWxdOworICAgICAgICAgICAgW2l0
ZW1Qcm92aWRlciByZWdpc3Rlck9iamVjdDooaWQgPFVJSXRlbVByb3ZpZGVyV3JpdGluZz4pcmVw
cmVzZW50aW5nT2JqZWN0IHZpc2liaWxpdHk6VUlJdGVtUHJvdmlkZXJSZXByZXNlbnRhdGlvbk9w
dGlvbnNWaXNpYmlsaXR5QWxsXTsKICAgICAgICAgfQogCiAgICAgICAgIC8vIE5leHQsIHJlZ2lz
dGVyIG90aGVyIGN1c3RvbSBkYXRhIHJlcHJlc2VudGF0aW9ucyBmb3IgdHlwZSBpZGVudGlmaWVy
cy4KQEAgLTE3NCwxNCArMTczLDEzIEBAIHN0YXRpYyBCT09MIGlzSW1hZ2VUeXBlKE5TU3RyaW5n
ICp0eXBlKQogICAgICAgICAgICAgaWYgKCFbYWRkaXRpb25hbERhdGFbdHlwZUlkZW50aWZpZXJd
IGlzS2luZE9mQ2xhc3M6W05TRGF0YSBjbGFzc11dKQogICAgICAgICAgICAgICAgIGNvbnRpbnVl
OwogCi0gICAgICAgICAgICBbaXRlbVByb3ZpZGVyIHJlZ2lzdGVyRGF0YVJlcHJlc2VudGF0aW9u
Rm9yVHlwZUlkZW50aWZpZXI6dHlwZUlkZW50aWZpZXIgb3B0aW9uczpuaWwgbG9hZEhhbmRsZXI6
Xk5TUHJvZ3Jlc3MgKihVSUl0ZW1Qcm92aWRlckRhdGFMb2FkQ29tcGxldGlvbkJsb2NrIGNvbXBs
ZXRpb25CbG9jaykKKyAgICAgICAgICAgIFtpdGVtUHJvdmlkZXIgcmVnaXN0ZXJEYXRhUmVwcmVz
ZW50YXRpb25Gb3JUeXBlSWRlbnRpZmllcjp0eXBlSWRlbnRpZmllciB2aXNpYmlsaXR5OlVJSXRl
bVByb3ZpZGVyUmVwcmVzZW50YXRpb25PcHRpb25zVmlzaWJpbGl0eUFsbCBsb2FkSGFuZGxlcjpe
TlNQcm9ncmVzcyAqKHZvaWQgKF5jb21wbGV0aW9uSGFuZGxlcikoTlNEYXRhICosIE5TRXJyb3Ig
KikpCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgY29tcGxldGlvbkJsb2NrKGFkZGl0
aW9uYWxEYXRhW3R5cGVJZGVudGlmaWVyXSwgbmlsKTsKKyAgICAgICAgICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihhZGRpdGlvbmFsRGF0YVt0eXBlSWRlbnRpZmllcl0sIG5pbCk7CiAgICAgICAg
ICAgICAgICAgcmV0dXJuIFtOU1Byb2dyZXNzIGRpc2NyZXRlUHJvZ3Jlc3NXaXRoVG90YWxVbml0
Q291bnQ6MTAwXTsKICAgICAgICAgICAgIH1dOwogICAgICAgICB9CiAgICAgICAgIFtwcm92aWRl
cnMgYWRkT2JqZWN0Oml0ZW1Qcm92aWRlci5nZXQoKV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCiAgICAgfQogCiAgICAgc2VsZi5pdGVtUHJvdmlkZXJzID0gcHJvdmlkZXJzOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oCmluZGV4IGYwYTRiNjhmODQ4
MjZhNDA3NjQ5NDAxYzQxN2RjOTIzNGRjZjEwZjIuLjg5MDEwNjE0Mjg5ZjUyMjI4NGRmY2NjMmRh
Nzc5MDQ0NzYwMDAwNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9p
b3MvVUlLaXRTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvaW9zL1VJS2l0
U1BJLmgKQEAgLTY2LDQgKzY2LDggQEAKICsgKFVJVmlld0NvbnRyb2xsZXIgKil2aWV3Q29udHJv
bGxlckZvclZpZXc6KFVJVmlldyAqKXZpZXc7CiBAZW5kCiAKK0BpbnRlcmZhY2UgTlNVUkwgKCkK
K0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5LCBzZXR0ZXI9X3NldFRpdGxlOikgTlNTdHJpbmcg
Kl90aXRsZTsKK0BlbmQKKwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCBiL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCmluZGV4IDA0ZmM3NDMwNjhi
Njk4ODVhYmNmOGQ5ZjIzZmQ5YmZlN2MyNjFkMzYuLjA0MzZiMzMyNWQ0ZGJkMWVkMzM5NDBiNWVm
NTYzOGM2Y2IxOGYzYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCkBAIC01OCw2ICs1OCw3IEBAIHByaXZh
dGU6CiAKICAgICAvLyBXZWJDb3JlOjpQYXN0ZWJvYXJkU3RyYXRlZ3kKICNpZiBQTEFURk9STShJ
T1MpCisgICAgdm9pZCB3cml0ZVRvUGFzdGVib2FyZChjb25zdCBXZWJDb3JlOjpQYXN0ZWJvYXJk
VVJMJiwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCB3
cml0ZVRvUGFzdGVib2FyZChjb25zdCBXZWJDb3JlOjpQYXN0ZWJvYXJkV2ViQ29udGVudCYsIGNv
bnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpIG92ZXJyaWRlOwogICAgIHZvaWQgd3JpdGVUb1Bh
c3RlYm9hcmQoY29uc3QgV2ViQ29yZTo6UGFzdGVib2FyZEltYWdlJiwgY29uc3QgU3RyaW5nJiBw
YXN0ZWJvYXJkTmFtZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCB3cml0ZVRvUGFzdGVib2FyZChjb25z
dCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmIHBh
c3RlYm9hcmROYW1lKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5tbQppbmRleCA3NWJiOGYwN2I1
YmUyYWM1YmI3NmZlZDQyMzI3NmU0MWI4NDQ0OTM5Li43ZTliYjQ0YjJmNTBhOGNhNzQ4MmY3MDVh
NmZhNTcwNjNiYjFkZDQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tCkBAIC0xODYsNiArMTg2LDExIEBA
IGludCBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmdldE51bWJlck9mRmlsZXMoY29uc3QgU3RyaW5n
JiBwYXN0ZWJvYXJkTmFtZSkKIH0KIAogI2lmIFBMQVRGT1JNKElPUykKK3ZvaWQgV2ViUGxhdGZv
cm1TdHJhdGVnaWVzOjp3cml0ZVRvUGFzdGVib2FyZChjb25zdCBQYXN0ZWJvYXJkVVJMJiB1cmws
IGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpCit7CisgICAgUGxhdGZvcm1QYXN0ZWJvYXJk
KHBhc3RlYm9hcmROYW1lKS53cml0ZSh1cmwpOworfQorCiB2b2lkIFdlYlBsYXRmb3JtU3RyYXRl
Z2llczo6d3JpdGVUb1Bhc3RlYm9hcmQoY29uc3QgV2ViQ29yZTo6UGFzdGVib2FyZFdlYkNvbnRl
bnQmIGNvbnRlbnQsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpCiB7CiAgICAgUGxhdGZv
cm1QYXN0ZWJvYXJkKHBhc3RlYm9hcmROYW1lKS53cml0ZShjb250ZW50KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktp
dDIvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggMWVjOGVmNzU5ZDE3YzBiMGZhZjVh
NGZkYzgwMjQ5MDVjNDc4YmM0Ny4uNmY4NmUwNTE4OTc4MmNlMTg2NWNiZjBiZWY5NGU0NjhmODA2
Yjg3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMu
cHkKKysrIGIvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAgLTM1
OCw2ICszNTgsNyBAQCBkZWYgaGVhZGVyc19mb3JfdHlwZSh0eXBlKToKICAgICAgICAgJ1dlYkNv
cmU6OktleXByZXNzQ29tbWFuZCc6IFsnPFdlYkNvcmUvS2V5Ym9hcmRFdmVudC5oPiddLAogICAg
ICAgICAnV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50c0RhdGEnOiBbJzxXZWJDb3JlL01lZGlhQ29u
c3RyYWludHNJbXBsLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpQYXN0ZWJvYXJkSW1hZ2UnOiBb
JzxXZWJDb3JlL1Bhc3RlYm9hcmQuaD4nXSwKKyAgICAgICAgJ1dlYkNvcmU6OlBhc3RlYm9hcmRV
UkwnOiBbJzxXZWJDb3JlL1Bhc3RlYm9hcmQuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlBhc3Rl
Ym9hcmRXZWJDb250ZW50JzogWyc8V2ViQ29yZS9QYXN0ZWJvYXJkLmg+J10sCiAgICAgICAgICdX
ZWJDb3JlOjpQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdCc6IFsnPFdlYkNvcmUvUGF5bWVudFJl
cXVlc3QuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlBheW1lbnRNZXRob2RVcGRhdGUnOiBbJzxX
ZWJDb3JlL1BheW1lbnRSZXF1ZXN0Lmg+J10sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4IDU4YWFlYzMxZmUzYzVjNDM4MDkyNmY5OGNh
M2YzNGU2OGRmNjA3NWIuLjA2MmNkNGMyNWQ0ZjdkODY4N2YyZjY1MTBjNTNlNmVmODdjYTk0NGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3Bw
CkBAIC0xNDA1LDYgKzE0MDUsMjMgQEAgc3RhdGljIGJvb2wgZGVjb2RlU2hhcmVkQnVmZmVyKERl
Y29kZXImIGRlY29kZXIsIFJlZlB0cjxTaGFyZWRCdWZmZXI+JiBidWZmZXIpCiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKK3ZvaWQgQXJndW1lbnRDb2RlcjxQYXN0ZWJvYXJkVVJMPjo6ZW5jb2RlKEVu
Y29kZXImIGVuY29kZXIsIGNvbnN0IFBhc3RlYm9hcmRVUkwmIGNvbnRlbnQpCit7CisgICAgZW5j
b2RlciA8PCBjb250ZW50LnVybDsKKyAgICBlbmNvZGVyIDw8IGNvbnRlbnQudGl0bGU7Cit9CisK
K2Jvb2wgQXJndW1lbnRDb2RlcjxQYXN0ZWJvYXJkVVJMPjo6ZGVjb2RlKERlY29kZXImIGRlY29k
ZXIsIFBhc3RlYm9hcmRVUkwmIGNvbnRlbnQpCit7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShj
b250ZW50LnVybCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUoY29udGVudC50aXRsZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVy
biB0cnVlOworfQorCiB2b2lkIEFyZ3VtZW50Q29kZXI8UGFzdGVib2FyZFdlYkNvbnRlbnQ+Ojpl
bmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgUGFzdGVib2FyZFdlYkNvbnRlbnQmIGNvbnRl
bnQpCiB7CiAgICAgZW5jb2RlciA8PCBjb250ZW50LmNhblNtYXJ0Q29weU9yRGVsZXRlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCmluZGV4IDRhNjM2
OWJhMjlmNmRhYTUxZmVjOGQ1NjM1ZmMxNGVjNTdjOTEwODUuLmVhZGNmZjBlY2VlZTFlYzUzN2Fl
NjdiOWFkYjI1MTFlMTdhNTU5MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJDb3JlQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmgKQEAgLTkzLDYgKzkzLDcgQEAgc3RydWN0IExlbmd0aDsKIHN0cnVj
dCBHcmFtbWFyRGV0YWlsOwogc3RydWN0IE1pbWVDbGFzc0luZm87CiBzdHJ1Y3QgUGFzdGVib2Fy
ZEltYWdlOworc3RydWN0IFBhc3RlYm9hcmRVUkw7CiBzdHJ1Y3QgUGFzdGVib2FyZFdlYkNvbnRl
bnQ7CiBzdHJ1Y3QgUGx1Z2luSW5mbzsKIHN0cnVjdCBSZWNlbnRTZWFyY2g7CkBAIC0zOTUsNiAr
Mzk2LDExIEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6UGFzdGVi
b2FyZFdlYkNvbnRlbnQ+IHsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNv
cmU6OlBhc3RlYm9hcmRXZWJDb250ZW50Jik7CiB9OwogCit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OlBhc3RlYm9hcmRVUkw+IHsKKyAgICBzdGF0aWMgdm9pZCBlbmNv
ZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlBhc3RlYm9hcmRVUkwmKTsKKyAgICBzdGF0aWMg
Ym9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OlBhc3RlYm9hcmRVUkwmKTsKK307CisKIHRl
bXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6UGFzdGVib2FyZEltYWdlPiB7
CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpQYXN0ZWJv
YXJkSW1hZ2UmKTsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OlBh
c3RlYm9hcmRJbWFnZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nv
Y29hL1dlYlBhc3RlYm9hcmRQcm94eUNvY29hLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0NvY29hL1dlYlBhc3RlYm9hcmRQcm94eUNvY29hLm1tCmluZGV4IDZhYWI5OTlkZDM5YjFiZDcz
MjNiNWI0YmY2NjM4OTcyMjdiYzY3MTQuLmI4MzY1MTY2ZmIzODI0NmM5OTFiYzY4NzdkY2MwOGZi
YTVlNGZjYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJQ
YXN0ZWJvYXJkUHJveHlDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29j
b2EvV2ViUGFzdGVib2FyZFByb3h5Q29jb2EubW0KQEAgLTE0MCw2ICsxNDAsMTEgQEAgdm9pZCBX
ZWJQYXN0ZWJvYXJkUHJveHk6OmdldE51bWJlck9mRmlsZXMoY29uc3QgU3RyaW5nJiBwYXN0ZWJv
YXJkTmFtZSwgdWludDY0X3QKIH0KIAogI2lmIFBMQVRGT1JNKElPUykKK3ZvaWQgV2ViUGFzdGVi
b2FyZFByb3h5Ojp3cml0ZVVSTFRvUGFzdGVib2FyZChjb25zdCBQYXN0ZWJvYXJkVVJMJiB1cmws
IGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpCit7CisgICAgUGxhdGZvcm1QYXN0ZWJvYXJk
KHBhc3RlYm9hcmROYW1lKS53cml0ZSh1cmwpOworfQorCiB2b2lkIFdlYlBhc3RlYm9hcmRQcm94
eTo6d3JpdGVXZWJDb250ZW50VG9QYXN0ZWJvYXJkKGNvbnN0IFdlYkNvcmU6OlBhc3RlYm9hcmRX
ZWJDb250ZW50JiBjb250ZW50LCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKQogewogICAg
IFBsYXRmb3JtUGFzdGVib2FyZChwYXN0ZWJvYXJkTmFtZSkud3JpdGUoY29udGVudCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFzdGVib2FyZFByb3h5LmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFzdGVib2FyZFByb3h5LmgKaW5kZXggMjY1NTcz
NjFmNTU4ZTk2NjQwODY0MGY1NDA5ZDY4ODJmMjVmZWM3MC4uODZiOTAyZGQ0NzhjMTY1MDFlZDMy
M2ExYzNhNTcxYjZhM2NjM2NlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhc3RlYm9hcmRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YXN0ZWJvYXJkUHJveHkuaApAQCAtMzYsNiArMzYsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Y2xhc3MgQ29sb3I7CiBzdHJ1Y3QgUGFzdGVib2FyZEltYWdlOworc3RydWN0IFBhc3RlYm9hcmRV
Ukw7CiBzdHJ1Y3QgUGFzdGVib2FyZFdlYkNvbnRlbnQ7CiB9CiAKQEAgLTY4LDYgKzY5LDcgQEAg
cHJpdmF0ZToKICAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
LCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIG92ZXJyaWRl
OwogCiAjaWYgUExBVEZPUk0oSU9TKQorICAgIHZvaWQgd3JpdGVVUkxUb1Bhc3RlYm9hcmQoY29u
c3QgV2ViQ29yZTo6UGFzdGVib2FyZFVSTCYsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUp
OwogICAgIHZvaWQgd3JpdGVXZWJDb250ZW50VG9QYXN0ZWJvYXJkKGNvbnN0IFdlYkNvcmU6OlBh
c3RlYm9hcmRXZWJDb250ZW50JiwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSk7CiAgICAg
dm9pZCB3cml0ZUltYWdlVG9QYXN0ZWJvYXJkKGNvbnN0IFdlYkNvcmU6OlBhc3RlYm9hcmRJbWFn
ZSYsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpOwogICAgIHZvaWQgd3JpdGVTdHJpbmdU
b1Bhc3RlYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiwg
Y29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFzdGVib2FyZFByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94eS5tZXNzYWdlcy5pbgppbmRleCA3MzZhMGFk
NDUxY2VjZTY0NGRkZTg2MzZhNjE1ZGY2MzU5ZWM5MWRhLi4yMTQwZjY0ZGVhNDZmNjNiY2QxNDEw
YTllYTNlMTVkZWFkMWUyNTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFzdGVib2FyZFByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHkubWVzc2FnZXMuaW4KQEAgLTIyLDYgKzIyLDcgQEAKIAog
bWVzc2FnZXMgLT4gV2ViUGFzdGVib2FyZFByb3h5IHsKICNpZiBQTEFURk9STShJT1MpCisgICAg
V3JpdGVVUkxUb1Bhc3RlYm9hcmQoc3RydWN0IFdlYkNvcmU6OlBhc3RlYm9hcmRVUkwgdXJsLCBT
dHJpbmcgcGFzdGVib2FyZE5hbWUpCiAgICAgV3JpdGVXZWJDb250ZW50VG9QYXN0ZWJvYXJkKHN0
cnVjdCBXZWJDb3JlOjpQYXN0ZWJvYXJkV2ViQ29udGVudCBjb250ZW50LCBTdHJpbmcgcGFzdGVi
b2FyZE5hbWUpCiAgICAgV3JpdGVJbWFnZVRvUGFzdGVib2FyZChzdHJ1Y3QgV2ViQ29yZTo6UGFz
dGVib2FyZEltYWdlIHBhc3RlYm9hcmRJbWFnZSwgU3RyaW5nIHBhc3RlYm9hcmROYW1lKQogICAg
IFdyaXRlU3RyaW5nVG9QYXN0ZWJvYXJkKFN0cmluZyBwYXN0ZWJvYXJkVHlwZSwgU3RyaW5nIHRl
eHQsIFN0cmluZyBwYXN0ZWJvYXJkTmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVz
LmNwcAppbmRleCAyZWRmNGI3NmQ1NDY0ZTFkYjU2NGQ4YmQwZDM2M2FkNzIwZTdjMmRjLi44YmE3
MzNhNWUzN2IxNjA4NTQ1MjlhMmMzNDIyN2E3ZjVlZWI3ZmIzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0
Zm9ybVN0cmF0ZWdpZXMuY3BwCkBAIC0yODcsNiArMjg3LDExIEBAIGludCBXZWJQbGF0Zm9ybVN0
cmF0ZWdpZXM6OmdldE51bWJlck9mRmlsZXMoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkK
IH0KIAogI2lmIFBMQVRGT1JNKElPUykKK3ZvaWQgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjp3cml0
ZVRvUGFzdGVib2FyZChjb25zdCBQYXN0ZWJvYXJkVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcGFz
dGVib2FyZE5hbWUpCit7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vz
c0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUGFzdGVib2FyZFByb3h5OjpXcml0ZVVS
TFRvUGFzdGVib2FyZCh1cmwsIHBhc3RlYm9hcmROYW1lKSwgMCk7Cit9CisKIHZvaWQgV2ViUGxh
dGZvcm1TdHJhdGVnaWVzOjp3cml0ZVRvUGFzdGVib2FyZChjb25zdCBXZWJDb3JlOjpQYXN0ZWJv
YXJkV2ViQ29udGVudCYgY29udGVudCwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkKIHsK
ICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5z
ZW5kKE1lc3NhZ2VzOjpXZWJQYXN0ZWJvYXJkUHJveHk6OldyaXRlV2ViQ29udGVudFRvUGFzdGVi
b2FyZChjb250ZW50LCBwYXN0ZWJvYXJkTmFtZSksIDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJh
dGVnaWVzLmgKaW5kZXggZTQzODdjOTMwMjE5ODRhODU1YjFhOGM3NGZlZmM4YjViZDc3ODVjMy4u
N2ZlMzQ5Mjg2Zjk1MTU3YjgwNGY1N2MyNmQ2NTFmNjhlMDAwNThjMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBs
YXRmb3JtU3RyYXRlZ2llcy5oCkBAIC02MCw2ICs2MCw3IEBAIHByaXZhdGU6CiAgICAgLy8gV2Vi
Q29yZTo6UGFzdGVib2FyZFN0cmF0ZWd5CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIHZvaWQgd3Jp
dGVUb1Bhc3RlYm9hcmQoY29uc3QgV2ViQ29yZTo6UGFzdGVib2FyZFdlYkNvbnRlbnQmLCBjb25z
dCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKSBvdmVycmlkZTsKKyAgICB2b2lkIHdyaXRlVG9QYXN0
ZWJvYXJkKGNvbnN0IFdlYkNvcmU6OiBQYXN0ZWJvYXJkVVJMJiwgY29uc3QgU3RyaW5nJiBwYXN0
ZWJvYXJkTmFtZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCB3cml0ZVRvUGFzdGVib2FyZChjb25zdCBX
ZWJDb3JlOjpQYXN0ZWJvYXJkSW1hZ2UmLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKSBv
dmVycmlkZTsKICAgICB2b2lkIHdyaXRlVG9QYXN0ZWJvYXJkKGNvbnN0IFN0cmluZyYgcGFzdGVi
b2FyZFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpIG92
ZXJyaWRlOwogICAgIGludCBnZXRQYXN0ZWJvYXJkSXRlbXNDb3VudChjb25zdCBTdHJpbmcmIHBh
c3RlYm9hcmROYW1lKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rv
b2xzL0NoYW5nZUxvZwppbmRleCBiYzEyZjFlYWQ1YTQ3ZDA3MjFmMWVjYjk0ZmM4MmM5MDM0MTMz
MjE1Li5jMGM4MjU1ZGY0MWE0YmQzZjM3MzczMTllZDUxZDY3MTY1ZGI1MzA2IDEwMDY0NAotLS0g
YS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjAgQEAK
IDIwMTctMDQtMjEgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKKyAg
ICAgICAgU3VwcG9ydCB3cml0aW5nIGxpbmsgdGl0bGVzIHRvIHRoZSBwYXN0ZWJvYXJkIHdoZW4g
YmVnaW5uaW5nIGRhdGEgaW50ZXJhY3Rpb24gb24gYSBsaW5rCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzExNTQKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzMxMzU2OTM3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEF1Z21lbnRzIGFuIGV4aXN0aW5nIHVuaXQgdGVzdCwgRGF0YUludGVyYWN0aW9uVGVz
dHMuTGlua1RvSW5wdXQsIHRvIGFsc28gY2hlY2sgdGhhdCB0aGUgZmV0Y2hpbmcgdGhlIE5TVVJM
IGZyb20KKyAgICAgICAgdGhlIHNvdXJjZSBVSUl0ZW1Qcm92aWRlciBnZW5lcmF0ZWQgYnkgcGVy
Zm9ybWluZyBkYXRhIGludGVyYWN0aW9uIHJlc3VsdHMgaW4gYW4gTlNVUkwgd2l0aCB0aGUgX3Rp
dGxlIGF0dHJpYnV0ZQorICAgICAgICBtYXRjaGluZyB0aGUgdGl0bGUgb2YgdGhlIGxpbmsuCisK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9EYXRhSW50ZXJhY3Rpb25UZXN0cy5t
bToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCisyMDE3LTA0LTIxICBXZW5zb24g
SHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCiAgICAgICAgIFtXSzJdIEFkZCBkZWxl
Z2F0ZSBob29rcyBmb3Igb3ZlcnJpZGluZyB1bmhhbmRlZCBkYXRhIGludGVyYWN0aW9uIG9wZXJh
dGlvbnMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3
MTAwNQogICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzE2Njk2NDY+CmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9EYXRhSW50ZXJhY3Rpb25UZXN0cy5tbSBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL0RhdGFJbnRlcmFjdGlvblRlc3RzLm1tCmluZGV4IDZm
YmI1NDI3OTA3MGQwZmQzYzlhMWU1ZDcyZTAwMjUwMGI1Yjc2NTYuLjcwY2NkN2VhMzVjZTUyMmZl
YjhhNWU2ZmQyOTc0MDY3ZjBkZmQ2ODAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvaW9zL0RhdGFJbnRlcmFjdGlvblRlc3RzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvaW9zL0RhdGFJbnRlcmFjdGlvblRlc3RzLm1tCkBAIC0zMiw2ICszMiw3IEBACiAj
aW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCiAjaW1wb3J0ICJXS1dlYlZpZXdDb25maWd1cmF0aW9u
RXh0cmFzLmgiCiAjaW1wb3J0IDxNb2JpbGVDb3JlU2VydmljZXMvTW9iaWxlQ29yZVNlcnZpY2Vz
Lmg+CisjaW1wb3J0IDxVSUtpdC9OU1VSTCtVSUl0ZW1Qcm92aWRlci5oPgogI2ltcG9ydCA8VUlL
aXQvVUlJdGVtUHJvdmlkZXJfUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLUHJlZmVyZW5j
ZXNQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZh
dGUuaD4KQEAgLTI0Nyw2ICsyNDgsMTQgQEAgVEVTVChEYXRhSW50ZXJhY3Rpb25UZXN0cywgTGlu
a1RvSW5wdXQpCiAKICAgICBFWFBFQ1RfV0tfU1RSRVEoImh0dHBzOi8vd3d3LmFwcGxlLmNvbS8i
LCBbd2ViVmlldyBlZGl0b3JWYWx1ZV0uVVRGOFN0cmluZyk7CiAKKyAgICBfX2Jsb2NrIGJvb2wg
ZG9uZUxvYWRpbmdVUkwgPSBmYWxzZTsKKyAgICBVSUl0ZW1Qcm92aWRlciAqc291cmNlSXRlbVBy
b3ZpZGVyID0gW2RhdGFJbnRlcmFjdGlvblNpbXVsYXRvciBzb3VyY2VJdGVtUHJvdmlkZXJzXS5m
aXJzdE9iamVjdDsKKyAgICBbc291cmNlSXRlbVByb3ZpZGVyIGxvYWRPYmplY3RPZkNsYXNzOltO
U1VSTCBjbGFzc10gY29tcGxldGlvbkhhbmRsZXI6XihOU1VSTCAqdXJsLCBOU0Vycm9yICplcnJv
cikgeworICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoIkhlbGxvIHdvcmxkIiwgdXJsLl90aXRsZS5V
VEY4U3RyaW5nID86ICIiKTsKKyAgICAgICAgZG9uZUxvYWRpbmdVUkwgPSB0cnVlOworICAgIH1d
OworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZUxvYWRpbmdVUkwpOworCiAgICAg
TlNBcnJheSAqb2JzZXJ2ZWRFdmVudE5hbWVzID0gW2RhdGFJbnRlcmFjdGlvblNpbXVsYXRvciBv
YnNlcnZlZEV2ZW50TmFtZXNdOwogICAgIEVYUEVDVF9UUlVFKFtvYnNlcnZlZEV2ZW50TmFtZXMg
Y29udGFpbnNPYmplY3Q6RGF0YUludGVyYWN0aW9uRW50ZXJFdmVudE5hbWVdKTsKICAgICBFWFBF
Q1RfVFJVRShbb2JzZXJ2ZWRFdmVudE5hbWVzIGNvbnRhaW5zT2JqZWN0OkRhdGFJbnRlcmFjdGlv
bk92ZXJFdmVudE5hbWVdKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>307869</attachid>
            <date>2017-04-21 20:16:09 -0700</date>
            <delta_ts>2017-04-21 20:41:00 -0700</delta_ts>
            <desc>Attempt to fix 32-bit iOS.</desc>
            <filename>bug-171154-20170421201605.patch</filename>
            <type>text/plain</type>
            <size>24340</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1NjU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGMwNTM5OGZhNDY0OTg4
ZDM5MWQwOTFlNmYxNDQyYjYwY2I4NTIxMS4uZDZjYzc1NDAwZTZhNDY2YTNhYjEwZTAyZTQ5ZDY3
MTZiNDBkNTJiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDE3LTA0LTIxICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgd3Jp
dGluZyBsaW5rIHRpdGxlcyB0byB0aGUgcGFzdGVib2FyZCB3aGVuIGJlZ2lubmluZyBkYXRhIGlu
dGVyYWN0aW9uIG9uIGEgbGluaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTcxMTU0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMTM1NjkzNz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDdXJyZW50bHks
IHdoZW4gd3JpdGluZyBOU1VSTHMgdG8gdGhlIHBhc3RlYm9hcmQsIHdlIG9ubHkgd3JpdGUgYSBT
dHJpbmcgdG8gdGhlIHBhc3RlYm9hcmQgY29ycmVzcG9uZGluZyB0bworICAgICAgICBrVVRUeXBl
VVJMLiBUaGlzIG1lYW5zIHJpY2hlciBkYXRhIGFzc29jaWF0ZWQgd2l0aCB0aGUgbGluayAoaW4g
dGhpcyBjYXNlLCB0aGUgdGl0bGUpIGFyZSBub3QgY2FwdHVyZWQgd2hlbgorICAgICAgICB3cml0
aW5nIHRvIHRoZSBwYXN0ZWJvYXJkLiBUbyBhZGRyZXNzIHRoaXMsIHdlIGludHJvZHVjZSBhIG5l
dyBjb2RlcGF0aCBmb3Igd3JpdGluZyBsaW5rcyB0byB0aGUgcGFzdGVib2FyZCB0aGF0CisgICAg
ICAgIG1pcnJvcnMgdGhlIHdheSBQYXN0ZWJvYXJkSW1hZ2UgYW5kIFBhc3RlYm9hcmRXZWJDb250
ZW50IGFyZSB3cml0dGVuIHRvIHRoZSBwYXN0ZWJvYXJkLgorCisgICAgICAgIFRlc3Q6IEF1Z21l
bnRlZCBEYXRhSW50ZXJhY3Rpb25UZXN0cy5MaW5rVG9JbnB1dC4KKworICAgICAgICAqIHBsYXRm
b3JtL1Bhc3RlYm9hcmRTdHJhdGVneS5oOgorICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtUGFz
dGVib2FyZC5oOgorCisgICAgICAgIEFkZCBwbHVtYmluZyBzdXBwb3J0IGZvciB3cml0aW5nIFBh
c3RlYm9hcmRVUkxzLgorCisgICAgICAgICogcGxhdGZvcm0vaW9zL1Bhc3RlYm9hcmRJT1MubW06
CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjp3cml0ZSk6CisgICAgICAgICogcGxhdGZv
cm0vaW9zL1BsYXRmb3JtUGFzdGVib2FyZElPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRm
b3JtUGFzdGVib2FyZDo6d3JpdGVPYmplY3RSZXByZXNlbnRhdGlvbnMpOgorCisgICAgICAgIFRl
YWNoIFBsYXRmb3JtUGFzdGVib2FyZCB0byBhbHNvIHNldCB0aGUgX3RpdGxlIGF0dHJpYnV0ZSBv
ZiB0aGUgTlNVUkwgd2hlbiBjcmVhdGluZyBhbiBOU1VSTCByZXByZXNlbnRhdGlvbgorICAgICAg
ICBmb3IgcmVnaXN0ZXJpbmcgd2l0aCB0aGUgc2hhcmVkIFdlYkl0ZW1Qcm92aWRlclBhc3RlYm9h
cmQuCisKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtUGFzdGVib2FyZDo6d3JpdGUpOgorICAg
ICAgICAqIHBsYXRmb3JtL2lvcy9XZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkLm1tOgorCisgICAg
ICAgIFJlbW92ZSBkZXByZWNhdGlvbiBndWFyZHMgYW5kIHJlcGxhY2UgZGVwcmVjYXRlZCBtZXRo
b2QgY2FsbHMgd2l0aCB0aGUgbGF0ZXN0IHVuZGVwcmVjYXRlZCB2ZXJzaW9ucy4KKworICAgICAg
ICAoLVtXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkIHNldEl0ZW1zRnJvbU9iamVjdFJlcHJlc2Vu
dGF0aW9uczpdKToKKwogMjAxNy0wNC0yMSAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFw
cGxlLmNvbT4KIAogICAgICAgICBbTWVkaWFTdHJlYW0gaU9TXSBSZWxlYXNlIGNhcHR1cmUgc2Vz
c2lvbiB3aGVuIG5vdCBwcm9kdWNpbmcgZGF0YQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9t
YWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IGQ3NDg0Yjdh
YWY3MGY1OTlkNTcyNTk4Yjg1YmJjYjM2YjE5YWI0MmYuLmU3NmNkMGM3ZjUyMjg2MTdkMjYwNTRh
Njg2NjQ1MzBiMDY3YzQzZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAx
Ny0wNC0yMSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAg
ICBTdXBwb3J0IHdyaXRpbmcgbGluayB0aXRsZXMgdG8gdGhlIHBhc3RlYm9hcmQgd2hlbiBiZWdp
bm5pbmcgZGF0YSBpbnRlcmFjdGlvbiBvbiBhIGxpbmsKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTE1NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
MzEzNTY5Mzc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRqdXN0IGZvciBzb21lIGNoYW5nZXMgaW4gV2ViQ29yZSB0byBpbnRyb2R1Y2UgYSBzZXBh
cmF0ZSBjb2RlcGF0aCBmb3Igd3JpdGluZyBQYXN0ZWJvYXJkVVJMcy4gU2VlIFdlYkNvcmUKKyAg
ICAgICAgYW5kIFdlYktpdDIgQ2hhbmdlTG9ncyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmg6CisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tOgorICAgICAgICAoV2ViUGxhdGZv
cm1TdHJhdGVnaWVzOjp3cml0ZVRvUGFzdGVib2FyZCk6CisKIDIwMTctMDQtMjEgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZWR1Y2UgY29w
aWVzIGFuZCBhbGxvY2F0aW9ucyBpbiBTaGFyZWRCdWZmZXI6OmFwcGVuZApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4
IDIwNTQ0Y2JiOGFiMTg3N2YyZTM5NGMwYmQyYjNmYzc0MzgzZmE5MzMuLjI3MGQ1Y2NlMzU3ZDA0
NTYxYzg1OGZlM2M3M2NhNDQ0ZWY3ODIyOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsNSArMSwzNiBAQAog
MjAxNy0wNC0yMSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAorICAg
ICAgICBTdXBwb3J0IHdyaXRpbmcgbGluayB0aXRsZXMgdG8gdGhlIHBhc3RlYm9hcmQgd2hlbiBi
ZWdpbm5pbmcgZGF0YSBpbnRlcmFjdGlvbiBvbiBhIGxpbmsKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTE1NAorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vMzEzNTY5Mzc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkcyBzdXBwb3J0IGZvciBzZXR0aW5nIHRoZSBfdGl0bGUgYXR0cmlidXRlIG9mIE5T
VVJMcyB3cml0dGVuIHRvIHRoZSBwYXN0ZWJvYXJkLiBTZWUgV2ViQ29yZSBDaGFuZ2VMb2cgZm9y
IG1vcmUgZGV0YWlscy4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5Ogor
ICAgICAgICAoaGVhZGVyc19mb3JfdHlwZSk6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5jcHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8UGFzdGVib2FyZFVS
TD46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8UGFzdGVib2FyZFVSTD46
OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgorCisg
ICAgICAgIFRlYWNoIFBhc3RlYm9hcmRVUkwgdG8gYmUgc2VyaWFsaXplZCBpbiBJUEMuIEZvciBu
b3csIHdlIGp1c3Qgc2VuZCBhY3Jvc3MgdGhlIGFic29sdXRlIHN0cmluZyBvZiB0aGUgbGluayBh
bmQKKyAgICAgICAgaXRzIHRpdGxlLgorCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlBh
c3RlYm9hcmRQcm94eUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYXN0ZWJvYXJkUHJv
eHk6OndyaXRlVVJMVG9QYXN0ZWJvYXJkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFzdGVi
b2FyZFByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94eS5tZXNz
YWdlcy5pbjoKKworICAgICAgICBBZGQgSVBDIHBsdW1iaW5nIGZvciB3cml0aW5nIFBhc3RlYm9h
clVSTHMgdG8gdGhlIHBhc3RlYm9hcmQuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBs
YXRmb3JtU3RyYXRlZ2llczo6d3JpdGVUb1Bhc3RlYm9hcmQpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmg6CisKKzIwMTctMDQtMjEg
IFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKICAgICAgICAgW1dLMl0g
QWRkIGRlbGVnYXRlIGhvb2tzIGZvciBvdmVycmlkaW5nIHVuaGFuZGVkIGRhdGEgaW50ZXJhY3Rp
b24gb3BlcmF0aW9ucwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTcxMDA1CiAgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMTY2OTY0Nj4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmRTdHJhdGVneS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZFN0cmF0ZWd5LmgKaW5kZXggZTg4YTQ4OTExODM2
NTQ5NDQ4ZmRjZjVmNGE0NTdiMjQyZDdmNzYyYy4uYzJhNjM0NzQ5NWYwOGNjZDAxZThlN2MwYWY2
MDBjMWQ2MTBiMjlhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVi
b2FyZFN0cmF0ZWd5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZFN0
cmF0ZWd5LmgKQEAgLTM3LDExICszNywxMyBAQCBjbGFzcyBTZWxlY3Rpb25EYXRhOwogY2xhc3Mg
U2hhcmVkQnVmZmVyOwogY2xhc3MgVVJMOwogc3RydWN0IFBhc3RlYm9hcmRJbWFnZTsKK3N0cnVj
dCBQYXN0ZWJvYXJkVVJMOwogc3RydWN0IFBhc3RlYm9hcmRXZWJDb250ZW50OwogCiBjbGFzcyBQ
YXN0ZWJvYXJkU3RyYXRlZ3kgewogcHVibGljOgogI2lmIFBMQVRGT1JNKElPUykKKyAgICB2aXJ0
dWFsIHZvaWQgd3JpdGVUb1Bhc3RlYm9hcmQoY29uc3QgUGFzdGVib2FyZFVSTCYsIGNvbnN0IFN0
cmluZyYgcGFzdGVib2FyZE5hbWUpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgd3JpdGVUb1Bhc3Rl
Ym9hcmQoY29uc3QgUGFzdGVib2FyZFdlYkNvbnRlbnQmLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9h
cmROYW1lKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHdyaXRlVG9QYXN0ZWJvYXJkKGNvbnN0IFBh
c3RlYm9hcmRJbWFnZSYsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgd3JpdGVUb1Bhc3RlYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlw
ZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkgPSAwOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1QYXN0ZWJvYXJkLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVBhc3RlYm9hcmQuaAppbmRleCAzN2E3OTE4
M2Y2Y2Y5YjQxZjg0ZjhiMGE2N2FkN2JkOGIwM2E0MzZhLi43OTIzYzJmNmI3NTlmYTIyOTk3NTNk
NjgxYTkzMGE5ZGU0NDgzMGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Q
bGF0Zm9ybVBhc3RlYm9hcmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9y
bVBhc3RlYm9hcmQuaApAQCAtNDcsNiArNDcsNyBAQCBjbGFzcyBTZWxlY3Rpb25EYXRhOwogY2xh
c3MgU2hhcmVkQnVmZmVyOwogY2xhc3MgVVJMOwogc3RydWN0IFBhc3RlYm9hcmRJbWFnZTsKK3N0
cnVjdCBQYXN0ZWJvYXJkVVJMOwogc3RydWN0IFBhc3RlYm9hcmRXZWJDb250ZW50OwogCiBjbGFz
cyBQbGF0Zm9ybVBhc3RlYm9hcmQgewpAQCAtNzgsNiArNzksNyBAQCBwdWJsaWM6CiAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCB3cml0ZShjb25zdCBQYXN0ZWJvYXJkV2ViQ29udGVudCYpOwogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgd3JpdGUoY29uc3QgUGFzdGVib2FyZEltYWdlJik7CiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCB3cml0ZShjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBj
b25zdCBTdHJpbmcmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHdyaXRlKGNvbnN0IFBhc3Rl
Ym9hcmRVUkwmKTsKICAgICBXRUJDT1JFX0VYUE9SVCBSZWZQdHI8U2hhcmVkQnVmZmVyPiByZWFk
QnVmZmVyKGludCBpbmRleCwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSk7CiAgICAgV0VC
Q09SRV9FWFBPUlQgU3RyaW5nIHJlYWRTdHJpbmcoaW50IGluZGV4LCBjb25zdCBTdHJpbmcmIHBh
c3RlYm9hcmRUeXBlKTsKICAgICBXRUJDT1JFX0VYUE9SVCBVUkwgcmVhZFVSTChpbnQgaW5kZXgs
IGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUpOwpAQCAtOTQsNiArOTYsNyBAQCBwcml2YXRl
OgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgd3JpdGVPYmplY3RSZXByZXNlbnRhdGlvbnMoY29u
c3QgUGFzdGVib2FyZFdlYkNvbnRlbnQmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHdyaXRl
T2JqZWN0UmVwcmVzZW50YXRpb25zKGNvbnN0IFBhc3RlYm9hcmRJbWFnZSYpOwogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgd3JpdGVPYmplY3RSZXByZXNlbnRhdGlvbnMoY29uc3QgU3RyaW5nJiBw
YXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHdyaXRlT2JqZWN0UmVwcmVzZW50YXRpb25zKGNvbnN0IFBhc3RlYm9hcmRVUkwmKTsKICNl
bmRpZgogCiAjaWYgUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL1Bhc3RlYm9hcmRJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
UGFzdGVib2FyZElPUy5tbQppbmRleCA3MjliMGQ1ZDQ5MGM5MTE4YzlkZmZjOWI2NzllNzliYTZh
ZDRkZjZiLi44MTM1ZTIzOGIwOTI3M2JlZWFmMTc4NmEyNTcyMGU1ZjcxNzA1MmYyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGFzdGVib2FyZElPUy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGFzdGVib2FyZElPUy5tbQpAQCAtMTI2LDcgKzEy
Niw3IEBAIHZvaWQgUGFzdGVib2FyZDo6d3JpdGVQbGFpblRleHQoY29uc3QgU3RyaW5nJiB0ZXh0
LCBTbWFydFJlcGxhY2VPcHRpb24pCiAKIHZvaWQgUGFzdGVib2FyZDo6d3JpdGUoY29uc3QgUGFz
dGVib2FyZFVSTCYgcGFzdGVib2FyZFVSTCkKIHsKLSAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+
cGFzdGVib2FyZFN0cmF0ZWd5KCktPndyaXRlVG9QYXN0ZWJvYXJkKGtVVFR5cGVVUkwsIHBhc3Rl
Ym9hcmRVUkwudXJsLnN0cmluZygpLCBtX3Bhc3RlYm9hcmROYW1lKTsKKyAgICBwbGF0Zm9ybVN0
cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPndyaXRlVG9QYXN0ZWJvYXJkKHBhc3Rl
Ym9hcmRVUkwsIG1fcGFzdGVib2FyZE5hbWUpOwogfQogCiB2b2lkIFBhc3RlYm9hcmQ6OndyaXRl
VHJ1c3R3b3J0aHlXZWJVUkxzUGJvYXJkVHlwZShjb25zdCBQYXN0ZWJvYXJkVVJMJikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybVBhc3RlYm9hcmRJT1Mu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1QYXN0ZWJvYXJkSU9TLm1t
CmluZGV4IDMxNzhjNGZhNTVmOWMwZjhhZjg2ZmEzZGQ3MTM2NTQ3MjU2YTAyZTMuLjU4YTdiYWUw
NTFlMmM3ZjM0M2JlNmVkOWZlMmQ3MzkyNmY1YWU0NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybVBhc3RlYm9hcmRJT1MubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW9zL1BsYXRmb3JtUGFzdGVib2FyZElPUy5tbQpAQCAtMzUsMjAgKzM1
LDE2IEBACiAjaW1wb3J0ICJXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkLmgiCiAjaW1wb3J0IDxN
b2JpbGVDb3JlU2VydmljZXMvTW9iaWxlQ29yZVNlcnZpY2VzLmg+CiAjaW1wb3J0IDxVSUtpdC9V
SUltYWdlLmg+CisjaW1wb3J0IDxVSUtpdC9VSVBhc3RlYm9hcmQuaD4KKworI2lmIEVOQUJMRShE
QVRBX0lOVEVSQUNUSU9OKQorI2ltcG9ydCA8VUlLaXQvTlNVUkwrVUlJdGVtUHJvdmlkZXIuaD4K
KyNlbmRpZgogCiBTT0ZUX0xJTktfRlJBTUVXT1JLKFVJS2l0KQogU09GVF9MSU5LX0NMQVNTKFVJ
S2l0LCBVSUltYWdlKQogU09GVF9MSU5LX0NMQVNTKFVJS2l0LCBVSVBhc3RlYm9hcmQpCiAKLUBp
bnRlcmZhY2UgVUlQYXN0ZWJvYXJkCi0rIChVSVBhc3RlYm9hcmQgKilnZW5lcmFsUGFzdGVib2Fy
ZDsKLS0gKHZvaWQpc2V0SXRlbXM6KE5TQXJyYXkgKilpdGVtczsKLUBwcm9wZXJ0eShyZWFkb25s
eSxub25hdG9taWMpIE5TSW50ZWdlciBudW1iZXJPZkl0ZW1zOwotLSAoTlNBcnJheSAqKWRhdGFG
b3JQYXN0ZWJvYXJkVHlwZTooTlNTdHJpbmcgKilwYXN0ZWJvYXJkVHlwZSBpbkl0ZW1TZXQ6KE5T
SW5kZXhTZXQgKilpdGVtU2V0OwotLSAoTlNBcnJheSAqKXZhbHVlc0ZvclBhc3RlYm9hcmRUeXBl
OihOU1N0cmluZyAqKXBhc3RlYm9hcmRUeXBlIGluSXRlbVNldDooTlNJbmRleFNldCAqKWl0ZW1T
ZXQ7Ci0tIChOU0ludGVnZXIpY2hhbmdlQ291bnQ7Ci1AZW5kCi0KIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogUGxhdGZvcm1QYXN0ZWJvYXJkOjpQbGF0Zm9ybVBhc3RlYm9hcmQoKQpAQCAtMjk1LDYg
KzI5MSwzMCBAQCB2b2lkIFBsYXRmb3JtUGFzdGVib2FyZDo6d3JpdGUoY29uc3QgU3RyaW5nJiBw
YXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0KQogICAgIFttX3Bhc3RlYm9hcmQgc2V0
SXRlbXM6QFtyZXByZXNlbnRhdGlvbnMuZ2V0KCldXTsKIH0KIAordm9pZCBQbGF0Zm9ybVBhc3Rl
Ym9hcmQ6OndyaXRlT2JqZWN0UmVwcmVzZW50YXRpb25zKGNvbnN0IFBhc3RlYm9hcmRVUkwmIHVy
bCkKK3sKKyAgICBSZXRhaW5QdHI8TlNNdXRhYmxlQXJyYXk+IG9iamVjdFJlcHJlc2VudGF0aW9u
cyA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdF0pOworCisgICAgTlNVUkwg
Km5zVVJMID0gKE5TVVJMICopdXJsLnVybDsKKyAgICBpZiAobnNVUkwpIHsKKyAgICAgICAgW29i
amVjdFJlcHJlc2VudGF0aW9ucyBhZGRPYmplY3Q6bnNVUkxdOworICAgICAgICBpZiAoIXVybC50
aXRsZS5pc0VtcHR5KCkpCisgICAgICAgICAgICBuc1VSTC5fdGl0bGUgPSB1cmwudGl0bGU7Cisg
ICAgfQorCisgICAgW21fcGFzdGVib2FyZCBzZXRJdGVtc0Zyb21PYmplY3RSZXByZXNlbnRhdGlv
bnM6QFtbV2ViUGFzdGVib2FyZEl0ZW1EYXRhIGl0ZW1XaXRoUmVwcmVzZW50aW5nT2JqZWN0czpv
YmplY3RSZXByZXNlbnRhdGlvbnMuZ2V0KCkgYWRkaXRpb25hbERhdGE6QHsgfV1dXTsKK30KKwor
dm9pZCBQbGF0Zm9ybVBhc3RlYm9hcmQ6OndyaXRlKGNvbnN0IFBhc3RlYm9hcmRVUkwmIHVybCkK
K3sKKyAgICBpZiAoW21fcGFzdGVib2FyZCByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHNl
dEl0ZW1zRnJvbU9iamVjdFJlcHJlc2VudGF0aW9uczopXSkgeworICAgICAgICB3cml0ZU9iamVj
dFJlcHJlc2VudGF0aW9ucyh1cmwpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgd3Jp
dGUoa1VUVHlwZVVSTCwgdXJsLnVybC5zdHJpbmcoKSk7Cit9CisKIGludCBQbGF0Zm9ybVBhc3Rl
Ym9hcmQ6OmNvdW50KCkKIHsKICAgICByZXR1cm4gW21fcGFzdGVib2FyZCBudW1iZXJPZkl0ZW1z
XTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJJdGVtUHJvdmlk
ZXJQYXN0ZWJvYXJkLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkl0ZW1Qcm92
aWRlclBhc3RlYm9hcmQubW0KaW5kZXggN2FiMTY0OThlZTcyMjBlOWVmZTM2YmI5NWVhMzExZTBk
NmE4ZDJkMS4uZmEzZGQxMzJjMjUzOGRlOTYyMjUxODdjZTcyOWYxNjY2ZjEzZWQ4MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkl0ZW1Qcm92aWRlclBhc3RlYm9h
cmQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkl0ZW1Qcm92aWRlclBh
c3RlYm9hcmQubW0KQEAgLTMyLDYgKzMyLDcgQEAKICNpbXBvcnQgIlVJS2l0U1BJLmgiCiAjaW1w
b3J0IDxGb3VuZGF0aW9uL05TUHJvZ3Jlc3MuaD4KICNpbXBvcnQgPE1vYmlsZUNvcmVTZXJ2aWNl
cy9Nb2JpbGVDb3JlU2VydmljZXMuaD4KKyNpbXBvcnQgPFVJS2l0L05TVVJMK1VJSXRlbVByb3Zp
ZGVyLmg+CiAjaW1wb3J0IDxVSUtpdC9VSUNvbG9yLmg+CiAjaW1wb3J0IDxVSUtpdC9VSUltYWdl
Lmg+CiAjaW1wb3J0IDxVSUtpdC9VSUl0ZW1Qcm92aWRlcldyaXRpbmcuaD4KQEAgLTE1NywxNSAr
MTU4LDEzIEBAIHN0YXRpYyBCT09MIGlzSW1hZ2VUeXBlKE5TU3RyaW5nICp0eXBlKQogICAgICAg
ICBpZiAoIWRhdGEucmVwcmVzZW50aW5nT2JqZWN0cy5jb3VudCAmJiAhZGF0YS5hZGRpdGlvbmFs
RGF0YS5jb3VudCkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCiAgICAgICAgIFJldGFpblB0cjxVSUl0ZW1Qcm92aWRlcj4gaXRlbVBy
b3ZpZGVyID0gYWRvcHROUyhbW2dldFVJSXRlbVByb3ZpZGVyQ2xhc3MoKSBhbGxvY10gaW5pdF0p
OwogICAgICAgICAvLyBGaXJzdCwgcmVnaXN0ZXIgYWxsIHBsYXRmb3JtIG9iamVjdHMsIHByaW9y
aXRpemluZyBvYmplY3RzIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGFycmF5LgogICAgICAgICBm
b3IgKGlkIHJlcHJlc2VudGluZ09iamVjdCBpbiBkYXRhLnJlcHJlc2VudGluZ09iamVjdHMpIHsK
ICAgICAgICAgICAgIGlmICghW3JlcHJlc2VudGluZ09iamVjdCBjb25mb3Jtc1RvUHJvdG9jb2w6
QHByb3RvY29sKFVJSXRlbVByb3ZpZGVyV3JpdGluZyldKQogICAgICAgICAgICAgICAgIGNvbnRp
bnVlOwogCi0gICAgICAgICAgICBbaXRlbVByb3ZpZGVyIHJlZ2lzdGVyT2JqZWN0OihpZCA8VUlJ
dGVtUHJvdmlkZXJXcml0aW5nPilyZXByZXNlbnRpbmdPYmplY3Qgb3B0aW9uczpuaWxdOworICAg
ICAgICAgICAgW2l0ZW1Qcm92aWRlciByZWdpc3Rlck9iamVjdDooaWQgPFVJSXRlbVByb3ZpZGVy
V3JpdGluZz4pcmVwcmVzZW50aW5nT2JqZWN0IHZpc2liaWxpdHk6VUlJdGVtUHJvdmlkZXJSZXBy
ZXNlbnRhdGlvbk9wdGlvbnNWaXNpYmlsaXR5QWxsXTsKICAgICAgICAgfQogCiAgICAgICAgIC8v
IE5leHQsIHJlZ2lzdGVyIG90aGVyIGN1c3RvbSBkYXRhIHJlcHJlc2VudGF0aW9ucyBmb3IgdHlw
ZSBpZGVudGlmaWVycy4KQEAgLTE3NCwxNCArMTczLDEzIEBAIHN0YXRpYyBCT09MIGlzSW1hZ2VU
eXBlKE5TU3RyaW5nICp0eXBlKQogICAgICAgICAgICAgaWYgKCFbYWRkaXRpb25hbERhdGFbdHlw
ZUlkZW50aWZpZXJdIGlzS2luZE9mQ2xhc3M6W05TRGF0YSBjbGFzc11dKQogICAgICAgICAgICAg
ICAgIGNvbnRpbnVlOwogCi0gICAgICAgICAgICBbaXRlbVByb3ZpZGVyIHJlZ2lzdGVyRGF0YVJl
cHJlc2VudGF0aW9uRm9yVHlwZUlkZW50aWZpZXI6dHlwZUlkZW50aWZpZXIgb3B0aW9uczpuaWwg
bG9hZEhhbmRsZXI6Xk5TUHJvZ3Jlc3MgKihVSUl0ZW1Qcm92aWRlckRhdGFMb2FkQ29tcGxldGlv
bkJsb2NrIGNvbXBsZXRpb25CbG9jaykKKyAgICAgICAgICAgIFtpdGVtUHJvdmlkZXIgcmVnaXN0
ZXJEYXRhUmVwcmVzZW50YXRpb25Gb3JUeXBlSWRlbnRpZmllcjp0eXBlSWRlbnRpZmllciB2aXNp
YmlsaXR5OlVJSXRlbVByb3ZpZGVyUmVwcmVzZW50YXRpb25PcHRpb25zVmlzaWJpbGl0eUFsbCBs
b2FkSGFuZGxlcjpeTlNQcm9ncmVzcyAqKHZvaWQgKF5jb21wbGV0aW9uSGFuZGxlcikoTlNEYXRh
ICosIE5TRXJyb3IgKikpCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgY29tcGxldGlv
bkJsb2NrKGFkZGl0aW9uYWxEYXRhW3R5cGVJZGVudGlmaWVyXSwgbmlsKTsKKyAgICAgICAgICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihhZGRpdGlvbmFsRGF0YVt0eXBlSWRlbnRpZmllcl0sIG5p
bCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFtOU1Byb2dyZXNzIGRpc2NyZXRlUHJvZ3Jlc3NX
aXRoVG90YWxVbml0Q291bnQ6MTAwXTsKICAgICAgICAgICAgIH1dOwogICAgICAgICB9CiAgICAg
ICAgIFtwcm92aWRlcnMgYWRkT2JqZWN0Oml0ZW1Qcm92aWRlci5nZXQoKV07Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCiAgICAgfQogCiAgICAgc2VsZi5pdGVtUHJvdmlkZXJzID0gcHJv
dmlkZXJzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
UGxhdGZvcm1TdHJhdGVnaWVzLmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAppbmRleCAwNGZjNzQzMDY4YjY5ODg1YWJjZjhkOWYyM2Zk
OWJmZTdjMjYxZDM2Li4wNDM2YjMzMjVkNGRiZDFlZDMzOTQwYjVlZjU2MzhjNmNiMThmM2MxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0
cmF0ZWdpZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0
Zm9ybVN0cmF0ZWdpZXMuaApAQCAtNTgsNiArNTgsNyBAQCBwcml2YXRlOgogCiAgICAgLy8gV2Vi
Q29yZTo6UGFzdGVib2FyZFN0cmF0ZWd5CiAjaWYgUExBVEZPUk0oSU9TKQorICAgIHZvaWQgd3Jp
dGVUb1Bhc3RlYm9hcmQoY29uc3QgV2ViQ29yZTo6UGFzdGVib2FyZFVSTCYsIGNvbnN0IFN0cmlu
ZyYgcGFzdGVib2FyZE5hbWUpIG92ZXJyaWRlOwogICAgIHZvaWQgd3JpdGVUb1Bhc3RlYm9hcmQo
Y29uc3QgV2ViQ29yZTo6UGFzdGVib2FyZFdlYkNvbnRlbnQmLCBjb25zdCBTdHJpbmcmIHBhc3Rl
Ym9hcmROYW1lKSBvdmVycmlkZTsKICAgICB2b2lkIHdyaXRlVG9QYXN0ZWJvYXJkKGNvbnN0IFdl
YkNvcmU6OlBhc3RlYm9hcmRJbWFnZSYsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpIG92
ZXJyaWRlOwogICAgIHZvaWQgd3JpdGVUb1Bhc3RlYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJv
YXJkVHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkgb3Zl
cnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXMubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0KaW5kZXggNzViYjhmMDdiNWJlMmFjNWJiNzZmZWQ0MjMy
NzZlNDFiODQ0NDkzOS4uN2U5YmI0NGIyZjUwYThjYTc0ODJmNzA1YTZmYTU3MDYzYmIxZGQ0NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1T
dHJhdGVnaWVzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBs
YXRmb3JtU3RyYXRlZ2llcy5tbQpAQCAtMTg2LDYgKzE4NiwxMSBAQCBpbnQgV2ViUGxhdGZvcm1T
dHJhdGVnaWVzOjpnZXROdW1iZXJPZkZpbGVzKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUp
CiB9CiAKICNpZiBQTEFURk9STShJT1MpCit2b2lkIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6d3Jp
dGVUb1Bhc3RlYm9hcmQoY29uc3QgUGFzdGVib2FyZFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHBh
c3RlYm9hcmROYW1lKQoreworICAgIFBsYXRmb3JtUGFzdGVib2FyZChwYXN0ZWJvYXJkTmFtZSku
d3JpdGUodXJsKTsKK30KKwogdm9pZCBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OndyaXRlVG9QYXN0
ZWJvYXJkKGNvbnN0IFdlYkNvcmU6OlBhc3RlYm9hcmRXZWJDb250ZW50JiBjb250ZW50LCBjb25z
dCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKQogewogICAgIFBsYXRmb3JtUGFzdGVib2FyZChwYXN0
ZWJvYXJkTmFtZSkud3JpdGUoY29udGVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
Y3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0
L21lc3NhZ2VzLnB5CmluZGV4IDFlYzhlZjc1OWQxN2MwYjBmYWY1YTRmZGM4MDI0OTA1YzQ3OGJj
NDcuLjZmODZlMDUxODk3ODJjZTE4NjVjYmYwYmVmOTRlNDY4ZjgwNmI4NzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC0zNTgsNiArMzU4LDcgQEAgZGVm
IGhlYWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAgICAgICdXZWJDb3JlOjpLZXlwcmVzc0NvbW1h
bmQnOiBbJzxXZWJDb3JlL0tleWJvYXJkRXZlbnQuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6Ok1l
ZGlhQ29uc3RyYWludHNEYXRhJzogWyc8V2ViQ29yZS9NZWRpYUNvbnN0cmFpbnRzSW1wbC5oPidd
LAogICAgICAgICAnV2ViQ29yZTo6UGFzdGVib2FyZEltYWdlJzogWyc8V2ViQ29yZS9QYXN0ZWJv
YXJkLmg+J10sCisgICAgICAgICdXZWJDb3JlOjpQYXN0ZWJvYXJkVVJMJzogWyc8V2ViQ29yZS9Q
YXN0ZWJvYXJkLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpQYXN0ZWJvYXJkV2ViQ29udGVudCc6
IFsnPFdlYkNvcmUvUGFzdGVib2FyZC5oPiddLAogICAgICAgICAnV2ViQ29yZTo6UGF5bWVudEF1
dGhvcml6YXRpb25SZXN1bHQnOiBbJzxXZWJDb3JlL1BheW1lbnRSZXF1ZXN0Lmg+J10sCiAgICAg
ICAgICdXZWJDb3JlOjpQYXltZW50TWV0aG9kVXBkYXRlJzogWyc8V2ViQ29yZS9QYXltZW50UmVx
dWVzdC5oPiddLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmNwcAppbmRleCA1OGFhZWMzMWZlM2M1YzQzODA5MjZmOThjYTNmMzRlNjhkZjYwNzViLi4w
NjJjZDRjMjVkNGY3ZDg2ODdmMmY2NTEwYzUzZTZlZjg3Y2E5NDRmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApAQCAtMTQwNSw2ICsxNDA1
LDIzIEBAIHN0YXRpYyBib29sIGRlY29kZVNoYXJlZEJ1ZmZlcihEZWNvZGVyJiBkZWNvZGVyLCBS
ZWZQdHI8U2hhcmVkQnVmZmVyPiYgYnVmZmVyKQogICAgIHJldHVybiB0cnVlOwogfQogCit2b2lk
IEFyZ3VtZW50Q29kZXI8UGFzdGVib2FyZFVSTD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBj
b25zdCBQYXN0ZWJvYXJkVVJMJiBjb250ZW50KQoreworICAgIGVuY29kZXIgPDwgY29udGVudC51
cmw7CisgICAgZW5jb2RlciA8PCBjb250ZW50LnRpdGxlOworfQorCitib29sIEFyZ3VtZW50Q29k
ZXI8UGFzdGVib2FyZFVSTD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBQYXN0ZWJvYXJkVVJM
JiBjb250ZW50KQoreworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoY29udGVudC51cmwpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGNvbnRlbnQudGl0
bGUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogdm9p
ZCBBcmd1bWVudENvZGVyPFBhc3RlYm9hcmRXZWJDb250ZW50Pjo6ZW5jb2RlKEVuY29kZXImIGVu
Y29kZXIsIGNvbnN0IFBhc3RlYm9hcmRXZWJDb250ZW50JiBjb250ZW50KQogewogICAgIGVuY29k
ZXIgPDwgY29udGVudC5jYW5TbWFydENvcHlPckRlbGV0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAppbmRleCA0YTYzNjliYTI5ZjZkYWE1MWZlYzhk
NTYzNWZjMTRlYzU3YzkxMDg1Li5lYWRjZmYwZWNlZWUxZWM1MzdhZTY3YjlhZGIyNTExZTE3YTU1
OTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5o
CkBAIC05Myw2ICs5Myw3IEBAIHN0cnVjdCBMZW5ndGg7CiBzdHJ1Y3QgR3JhbW1hckRldGFpbDsK
IHN0cnVjdCBNaW1lQ2xhc3NJbmZvOwogc3RydWN0IFBhc3RlYm9hcmRJbWFnZTsKK3N0cnVjdCBQ
YXN0ZWJvYXJkVVJMOwogc3RydWN0IFBhc3RlYm9hcmRXZWJDb250ZW50Owogc3RydWN0IFBsdWdp
bkluZm87CiBzdHJ1Y3QgUmVjZW50U2VhcmNoOwpAQCAtMzk1LDYgKzM5NiwxMSBAQCB0ZW1wbGF0
ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlBhc3RlYm9hcmRXZWJDb250ZW50PiB7
CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpQYXN0ZWJvYXJkV2Vi
Q29udGVudCYpOwogfTsKIAordGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3Jl
OjpQYXN0ZWJvYXJkVVJMPiB7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25z
dCBXZWJDb3JlOjpQYXN0ZWJvYXJkVVJMJik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29k
ZXImLCBXZWJDb3JlOjpQYXN0ZWJvYXJkVVJMJik7Cit9OworCiB0ZW1wbGF0ZTw+IHN0cnVjdCBB
cmd1bWVudENvZGVyPFdlYkNvcmU6OlBhc3RlYm9hcmRJbWFnZT4gewogICAgIHN0YXRpYyB2b2lk
IGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6UGFzdGVib2FyZEltYWdlJik7CiAgICAg
c3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpQYXN0ZWJvYXJkSW1hZ2UmKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJQYXN0ZWJvYXJk
UHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJQYXN0ZWJv
YXJkUHJveHlDb2NvYS5tbQppbmRleCA2YWFiOTk5ZGQzOWIxYmQ3MzIzYjViNGJmNjYzODk3MjI3
YmM2NzE0Li5iODM2NTE2NmZiMzgyNDZjOTkxYmM2ODc3ZGNjMDhmYmE1ZTRmY2ExIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViUGFzdGVib2FyZFByb3h5Q29j
b2EubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlBhc3RlYm9hcmRQ
cm94eUNvY29hLm1tCkBAIC0xNDAsNiArMTQwLDExIEBAIHZvaWQgV2ViUGFzdGVib2FyZFByb3h5
OjpnZXROdW1iZXJPZkZpbGVzKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUsIHVpbnQ2NF90
CiB9CiAKICNpZiBQTEFURk9STShJT1MpCit2b2lkIFdlYlBhc3RlYm9hcmRQcm94eTo6d3JpdGVV
UkxUb1Bhc3RlYm9hcmQoY29uc3QgUGFzdGVib2FyZFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHBh
c3RlYm9hcmROYW1lKQoreworICAgIFBsYXRmb3JtUGFzdGVib2FyZChwYXN0ZWJvYXJkTmFtZSku
d3JpdGUodXJsKTsKK30KKwogdm9pZCBXZWJQYXN0ZWJvYXJkUHJveHk6OndyaXRlV2ViQ29udGVu
dFRvUGFzdGVib2FyZChjb25zdCBXZWJDb3JlOjpQYXN0ZWJvYXJkV2ViQ29udGVudCYgY29udGVu
dCwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkKIHsKICAgICBQbGF0Zm9ybVBhc3RlYm9h
cmQocGFzdGVib2FyZE5hbWUpLndyaXRlKGNvbnRlbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94eS5oCmluZGV4IDI2NTU3MzYxZjU1OGU5NjY0MDg2NDBm
NTQwOWQ2ODgyZjI1ZmVjNzAuLjg2YjkwMmRkNDc4YzE2NTAxZWQzMjNhMWMzYTU3MWI2YTNjYzNj
ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJv
eHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFzdGVib2FyZFByb3h5LmgK
QEAgLTM2LDYgKzM2LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENvbG9yOwogc3Ry
dWN0IFBhc3RlYm9hcmRJbWFnZTsKK3N0cnVjdCBQYXN0ZWJvYXJkVVJMOwogc3RydWN0IFBhc3Rl
Ym9hcmRXZWJDb250ZW50OwogfQogCkBAIC02OCw2ICs2OSw3IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwg
c3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKSBvdmVycmlkZTsKIAogI2lmIFBMQVRGT1JN
KElPUykKKyAgICB2b2lkIHdyaXRlVVJMVG9QYXN0ZWJvYXJkKGNvbnN0IFdlYkNvcmU6OlBhc3Rl
Ym9hcmRVUkwmLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKTsKICAgICB2b2lkIHdyaXRl
V2ViQ29udGVudFRvUGFzdGVib2FyZChjb25zdCBXZWJDb3JlOjpQYXN0ZWJvYXJkV2ViQ29udGVu
dCYsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpOwogICAgIHZvaWQgd3JpdGVJbWFnZVRv
UGFzdGVib2FyZChjb25zdCBXZWJDb3JlOjpQYXN0ZWJvYXJkSW1hZ2UmLCBjb25zdCBTdHJpbmcm
IHBhc3RlYm9hcmROYW1lKTsKICAgICB2b2lkIHdyaXRlU3RyaW5nVG9QYXN0ZWJvYXJkKGNvbnN0
IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYgcGFz
dGVib2FyZE5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
c3RlYm9hcmRQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YXN0ZWJvYXJkUHJveHkubWVzc2FnZXMuaW4KaW5kZXggNzM2YTBhZDQ1MWNlY2U2NDRkZGU4NjM2
YTYxNWRmNjM1OWVjOTFkYS4uMjE0MGY2NGRlYTQ2ZjYzYmNkMTQxMGE5ZWEzZTE1ZGVhZDFlMjU2
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94
eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFzdGVib2Fy
ZFByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yMiw2ICsyMiw3IEBACiAKIG1lc3NhZ2VzIC0+IFdlYlBh
c3RlYm9hcmRQcm94eSB7CiAjaWYgUExBVEZPUk0oSU9TKQorICAgIFdyaXRlVVJMVG9QYXN0ZWJv
YXJkKHN0cnVjdCBXZWJDb3JlOjpQYXN0ZWJvYXJkVVJMIHVybCwgU3RyaW5nIHBhc3RlYm9hcmRO
YW1lKQogICAgIFdyaXRlV2ViQ29udGVudFRvUGFzdGVib2FyZChzdHJ1Y3QgV2ViQ29yZTo6UGFz
dGVib2FyZFdlYkNvbnRlbnQgY29udGVudCwgU3RyaW5nIHBhc3RlYm9hcmROYW1lKQogICAgIFdy
aXRlSW1hZ2VUb1Bhc3RlYm9hcmQoc3RydWN0IFdlYkNvcmU6OlBhc3RlYm9hcmRJbWFnZSBwYXN0
ZWJvYXJkSW1hZ2UsIFN0cmluZyBwYXN0ZWJvYXJkTmFtZSkKICAgICBXcml0ZVN0cmluZ1RvUGFz
dGVib2FyZChTdHJpbmcgcGFzdGVib2FyZFR5cGUsIFN0cmluZyB0ZXh0LCBTdHJpbmcgcGFzdGVi
b2FyZE5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKaW5kZXggMmVkZjRi
NzZkNTQ2NGUxZGI1NjRkOGJkMGQzNjNhZDcyMGU3YzJkYy4uOGJhNzMzYTVlMzdiMTYwODU0NTI5
YTJjMzQyMjdhN2Y1ZWViN2ZiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNw
cApAQCAtMjg3LDYgKzI4NywxMSBAQCBpbnQgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpnZXROdW1i
ZXJPZkZpbGVzKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpCiB9CiAKICNpZiBQTEFURk9S
TShJT1MpCit2b2lkIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6d3JpdGVUb1Bhc3RlYm9hcmQoY29u
c3QgUGFzdGVib2FyZFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKQorewor
ICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNl
bmQoTWVzc2FnZXM6OldlYlBhc3RlYm9hcmRQcm94eTo6V3JpdGVVUkxUb1Bhc3RlYm9hcmQodXJs
LCBwYXN0ZWJvYXJkTmFtZSksIDApOworfQorCiB2b2lkIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6
d3JpdGVUb1Bhc3RlYm9hcmQoY29uc3QgV2ViQ29yZTo6UGFzdGVib2FyZFdlYkNvbnRlbnQmIGNv
bnRlbnQsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpCiB7CiAgICAgV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2Vi
UGFzdGVib2FyZFByb3h5OjpXcml0ZVdlYkNvbnRlbnRUb1Bhc3RlYm9hcmQoY29udGVudCwgcGFz
dGVib2FyZE5hbWUpLCAwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmggYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCmluZGV4IGU0
Mzg3YzkzMDIxOTg0YTg1NWIxYThjNzRmZWZjOGI1YmQ3Nzg1YzMuLjdmZTM0OTI4NmY5NTE1N2I4
MDRmNTdjMjZkNjUxZjY4ZTAwMDU4YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMu
aApAQCAtNjAsNiArNjAsNyBAQCBwcml2YXRlOgogICAgIC8vIFdlYkNvcmU6OlBhc3RlYm9hcmRT
dHJhdGVneQogI2lmIFBMQVRGT1JNKElPUykKICAgICB2b2lkIHdyaXRlVG9QYXN0ZWJvYXJkKGNv
bnN0IFdlYkNvcmU6OlBhc3RlYm9hcmRXZWJDb250ZW50JiwgY29uc3QgU3RyaW5nJiBwYXN0ZWJv
YXJkTmFtZSkgb3ZlcnJpZGU7CisgICAgdm9pZCB3cml0ZVRvUGFzdGVib2FyZChjb25zdCBXZWJD
b3JlOjogUGFzdGVib2FyZFVSTCYsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpIG92ZXJy
aWRlOwogICAgIHZvaWQgd3JpdGVUb1Bhc3RlYm9hcmQoY29uc3QgV2ViQ29yZTo6UGFzdGVib2Fy
ZEltYWdlJiwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkgb3ZlcnJpZGU7CiAgICAgdm9p
ZCB3cml0ZVRvUGFzdGVib2FyZChjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBjb25zdCBT
dHJpbmcmLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKSBvdmVycmlkZTsKICAgICBpbnQg
Z2V0UGFzdGVib2FyZEl0ZW1zQ291bnQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkgb3Zl
cnJpZGU7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5k
ZXggYmMxMmYxZWFkNWE0N2QwNzIxZjFlY2I5NGZjODJjOTAzNDEzMzIxNS4uYzBjODI1NWRmNDFh
NGJkM2YzNzM3MzE5ZWQ1MWQ2NzE2NWRiNTMwNiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9n
CisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDIwIEBACiAyMDE3LTA0LTIxICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCisgICAgICAgIFN1cHBvcnQgd3Jp
dGluZyBsaW5rIHRpdGxlcyB0byB0aGUgcGFzdGVib2FyZCB3aGVuIGJlZ2lubmluZyBkYXRhIGlu
dGVyYWN0aW9uIG9uIGEgbGluaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTcxMTU0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMTM1NjkzNz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBdWdtZW50cyBh
biBleGlzdGluZyB1bml0IHRlc3QsIERhdGFJbnRlcmFjdGlvblRlc3RzLkxpbmtUb0lucHV0LCB0
byBhbHNvIGNoZWNrIHRoYXQgdGhlIGZldGNoaW5nIHRoZSBOU1VSTCBmcm9tCisgICAgICAgIHRo
ZSBzb3VyY2UgVUlJdGVtUHJvdmlkZXIgZ2VuZXJhdGVkIGJ5IHBlcmZvcm1pbmcgZGF0YSBpbnRl
cmFjdGlvbiByZXN1bHRzIGluIGFuIE5TVVJMIHdpdGggdGhlIF90aXRsZSBhdHRyaWJ1dGUKKyAg
ICAgICAgbWF0Y2hpbmcgdGhlIHRpdGxlIG9mIHRoZSBsaW5rLgorCisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9pb3MvRGF0YUludGVyYWN0aW9uVGVzdHMubW06CisgICAgICAgIChUZXN0
V2ViS2l0QVBJOjpURVNUKToKKworMjAxNy0wNC0yMSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hz
aWVoQGFwcGxlLmNvbT4KKwogICAgICAgICBbV0syXSBBZGQgZGVsZWdhdGUgaG9va3MgZm9yIG92
ZXJyaWRpbmcgdW5oYW5kZWQgZGF0YSBpbnRlcmFjdGlvbiBvcGVyYXRpb25zCiAgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzEwMDUKICAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzMxNjY5NjQ2PgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9pb3MvRGF0YUludGVyYWN0aW9uVGVzdHMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL2lvcy9EYXRhSW50ZXJhY3Rpb25UZXN0cy5tbQppbmRleCA2ZmJiNTQyNzkwNzBkMGZkM2M5
YTFlNWQ3MmUwMDI1MDBiNWI3NjU2Li43MGNjZDdlYTM1Y2U1MjJmZWI4YTVlNmZkMjk3NDA2N2Yw
ZGZkNjgwIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9EYXRhSW50
ZXJhY3Rpb25UZXN0cy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9EYXRh
SW50ZXJhY3Rpb25UZXN0cy5tbQpAQCAtMzIsNiArMzIsNyBAQAogI2ltcG9ydCAiVGVzdFdLV2Vi
Vmlldy5oIgogI2ltcG9ydCAiV0tXZWJWaWV3Q29uZmlndXJhdGlvbkV4dHJhcy5oIgogI2ltcG9y
dCA8TW9iaWxlQ29yZVNlcnZpY2VzL01vYmlsZUNvcmVTZXJ2aWNlcy5oPgorI2ltcG9ydCA8VUlL
aXQvTlNVUkwrVUlJdGVtUHJvdmlkZXIuaD4KICNpbXBvcnQgPFVJS2l0L1VJSXRlbVByb3ZpZGVy
X1ByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oPgogI2lt
cG9ydCA8V2ViS2l0L1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2YXRlLmg+CkBAIC0yNDcsNiAr
MjQ4LDE0IEBAIFRFU1QoRGF0YUludGVyYWN0aW9uVGVzdHMsIExpbmtUb0lucHV0KQogCiAgICAg
RVhQRUNUX1dLX1NUUkVRKCJodHRwczovL3d3dy5hcHBsZS5jb20vIiwgW3dlYlZpZXcgZWRpdG9y
VmFsdWVdLlVURjhTdHJpbmcpOwogCisgICAgX19ibG9jayBib29sIGRvbmVMb2FkaW5nVVJMID0g
ZmFsc2U7CisgICAgVUlJdGVtUHJvdmlkZXIgKnNvdXJjZUl0ZW1Qcm92aWRlciA9IFtkYXRhSW50
ZXJhY3Rpb25TaW11bGF0b3Igc291cmNlSXRlbVByb3ZpZGVyc10uZmlyc3RPYmplY3Q7CisgICAg
W3NvdXJjZUl0ZW1Qcm92aWRlciBsb2FkT2JqZWN0T2ZDbGFzczpbTlNVUkwgY2xhc3NdIGNvbXBs
ZXRpb25IYW5kbGVyOl4oTlNVUkwgKnVybCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgRVhQ
RUNUX1dLX1NUUkVRKCJIZWxsbyB3b3JsZCIsIHVybC5fdGl0bGUuVVRGOFN0cmluZyA/OiAiIik7
CisgICAgICAgIGRvbmVMb2FkaW5nVVJMID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJmRvbmVMb2FkaW5nVVJMKTsKKwogICAgIE5TQXJyYXkgKm9ic2VydmVk
RXZlbnROYW1lcyA9IFtkYXRhSW50ZXJhY3Rpb25TaW11bGF0b3Igb2JzZXJ2ZWRFdmVudE5hbWVz
XTsKICAgICBFWFBFQ1RfVFJVRShbb2JzZXJ2ZWRFdmVudE5hbWVzIGNvbnRhaW5zT2JqZWN0OkRh
dGFJbnRlcmFjdGlvbkVudGVyRXZlbnROYW1lXSk7CiAgICAgRVhQRUNUX1RSVUUoW29ic2VydmVk
RXZlbnROYW1lcyBjb250YWluc09iamVjdDpEYXRhSW50ZXJhY3Rpb25PdmVyRXZlbnROYW1lXSk7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>307874</attachid>
            <date>2017-04-21 20:41:01 -0700</date>
            <delta_ts>2017-04-21 21:43:29 -0700</delta_ts>
            <desc>Really fix iOS build</desc>
            <filename>bug-171154-20170421204058.patch</filename>
            <type>text/plain</type>
            <size>24378</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1NjU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGMwNTM5OGZhNDY0OTg4
ZDM5MWQwOTFlNmYxNDQyYjYwY2I4NTIxMS4uZDZjYzc1NDAwZTZhNDY2YTNhYjEwZTAyZTQ5ZDY3
MTZiNDBkNTJiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDE3LTA0LTIxICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgd3Jp
dGluZyBsaW5rIHRpdGxlcyB0byB0aGUgcGFzdGVib2FyZCB3aGVuIGJlZ2lubmluZyBkYXRhIGlu
dGVyYWN0aW9uIG9uIGEgbGluaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTcxMTU0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMTM1NjkzNz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDdXJyZW50bHks
IHdoZW4gd3JpdGluZyBOU1VSTHMgdG8gdGhlIHBhc3RlYm9hcmQsIHdlIG9ubHkgd3JpdGUgYSBT
dHJpbmcgdG8gdGhlIHBhc3RlYm9hcmQgY29ycmVzcG9uZGluZyB0bworICAgICAgICBrVVRUeXBl
VVJMLiBUaGlzIG1lYW5zIHJpY2hlciBkYXRhIGFzc29jaWF0ZWQgd2l0aCB0aGUgbGluayAoaW4g
dGhpcyBjYXNlLCB0aGUgdGl0bGUpIGFyZSBub3QgY2FwdHVyZWQgd2hlbgorICAgICAgICB3cml0
aW5nIHRvIHRoZSBwYXN0ZWJvYXJkLiBUbyBhZGRyZXNzIHRoaXMsIHdlIGludHJvZHVjZSBhIG5l
dyBjb2RlcGF0aCBmb3Igd3JpdGluZyBsaW5rcyB0byB0aGUgcGFzdGVib2FyZCB0aGF0CisgICAg
ICAgIG1pcnJvcnMgdGhlIHdheSBQYXN0ZWJvYXJkSW1hZ2UgYW5kIFBhc3RlYm9hcmRXZWJDb250
ZW50IGFyZSB3cml0dGVuIHRvIHRoZSBwYXN0ZWJvYXJkLgorCisgICAgICAgIFRlc3Q6IEF1Z21l
bnRlZCBEYXRhSW50ZXJhY3Rpb25UZXN0cy5MaW5rVG9JbnB1dC4KKworICAgICAgICAqIHBsYXRm
b3JtL1Bhc3RlYm9hcmRTdHJhdGVneS5oOgorICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtUGFz
dGVib2FyZC5oOgorCisgICAgICAgIEFkZCBwbHVtYmluZyBzdXBwb3J0IGZvciB3cml0aW5nIFBh
c3RlYm9hcmRVUkxzLgorCisgICAgICAgICogcGxhdGZvcm0vaW9zL1Bhc3RlYm9hcmRJT1MubW06
CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjp3cml0ZSk6CisgICAgICAgICogcGxhdGZv
cm0vaW9zL1BsYXRmb3JtUGFzdGVib2FyZElPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRm
b3JtUGFzdGVib2FyZDo6d3JpdGVPYmplY3RSZXByZXNlbnRhdGlvbnMpOgorCisgICAgICAgIFRl
YWNoIFBsYXRmb3JtUGFzdGVib2FyZCB0byBhbHNvIHNldCB0aGUgX3RpdGxlIGF0dHJpYnV0ZSBv
ZiB0aGUgTlNVUkwgd2hlbiBjcmVhdGluZyBhbiBOU1VSTCByZXByZXNlbnRhdGlvbgorICAgICAg
ICBmb3IgcmVnaXN0ZXJpbmcgd2l0aCB0aGUgc2hhcmVkIFdlYkl0ZW1Qcm92aWRlclBhc3RlYm9h
cmQuCisKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtUGFzdGVib2FyZDo6d3JpdGUpOgorICAg
ICAgICAqIHBsYXRmb3JtL2lvcy9XZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkLm1tOgorCisgICAg
ICAgIFJlbW92ZSBkZXByZWNhdGlvbiBndWFyZHMgYW5kIHJlcGxhY2UgZGVwcmVjYXRlZCBtZXRo
b2QgY2FsbHMgd2l0aCB0aGUgbGF0ZXN0IHVuZGVwcmVjYXRlZCB2ZXJzaW9ucy4KKworICAgICAg
ICAoLVtXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkIHNldEl0ZW1zRnJvbU9iamVjdFJlcHJlc2Vu
dGF0aW9uczpdKToKKwogMjAxNy0wNC0yMSAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFw
cGxlLmNvbT4KIAogICAgICAgICBbTWVkaWFTdHJlYW0gaU9TXSBSZWxlYXNlIGNhcHR1cmUgc2Vz
c2lvbiB3aGVuIG5vdCBwcm9kdWNpbmcgZGF0YQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9t
YWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IGQ3NDg0Yjdh
YWY3MGY1OTlkNTcyNTk4Yjg1YmJjYjM2YjE5YWI0MmYuLmU3NmNkMGM3ZjUyMjg2MTdkMjYwNTRh
Njg2NjQ1MzBiMDY3YzQzZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAx
Ny0wNC0yMSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAg
ICBTdXBwb3J0IHdyaXRpbmcgbGluayB0aXRsZXMgdG8gdGhlIHBhc3RlYm9hcmQgd2hlbiBiZWdp
bm5pbmcgZGF0YSBpbnRlcmFjdGlvbiBvbiBhIGxpbmsKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTE1NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
MzEzNTY5Mzc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRqdXN0IGZvciBzb21lIGNoYW5nZXMgaW4gV2ViQ29yZSB0byBpbnRyb2R1Y2UgYSBzZXBh
cmF0ZSBjb2RlcGF0aCBmb3Igd3JpdGluZyBQYXN0ZWJvYXJkVVJMcy4gU2VlIFdlYkNvcmUKKyAg
ICAgICAgYW5kIFdlYktpdDIgQ2hhbmdlTG9ncyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmg6CisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tOgorICAgICAgICAoV2ViUGxhdGZv
cm1TdHJhdGVnaWVzOjp3cml0ZVRvUGFzdGVib2FyZCk6CisKIDIwMTctMDQtMjEgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZWR1Y2UgY29w
aWVzIGFuZCBhbGxvY2F0aW9ucyBpbiBTaGFyZWRCdWZmZXI6OmFwcGVuZApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4
IDIwNTQ0Y2JiOGFiMTg3N2YyZTM5NGMwYmQyYjNmYzc0MzgzZmE5MzMuLjI3MGQ1Y2NlMzU3ZDA0
NTYxYzg1OGZlM2M3M2NhNDQ0ZWY3ODIyOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsNSArMSwzNiBAQAog
MjAxNy0wNC0yMSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAorICAg
ICAgICBTdXBwb3J0IHdyaXRpbmcgbGluayB0aXRsZXMgdG8gdGhlIHBhc3RlYm9hcmQgd2hlbiBi
ZWdpbm5pbmcgZGF0YSBpbnRlcmFjdGlvbiBvbiBhIGxpbmsKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTE1NAorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vMzEzNTY5Mzc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkcyBzdXBwb3J0IGZvciBzZXR0aW5nIHRoZSBfdGl0bGUgYXR0cmlidXRlIG9mIE5T
VVJMcyB3cml0dGVuIHRvIHRoZSBwYXN0ZWJvYXJkLiBTZWUgV2ViQ29yZSBDaGFuZ2VMb2cgZm9y
IG1vcmUgZGV0YWlscy4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5Ogor
ICAgICAgICAoaGVhZGVyc19mb3JfdHlwZSk6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5jcHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8UGFzdGVib2FyZFVS
TD46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8UGFzdGVib2FyZFVSTD46
OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgorCisg
ICAgICAgIFRlYWNoIFBhc3RlYm9hcmRVUkwgdG8gYmUgc2VyaWFsaXplZCBpbiBJUEMuIEZvciBu
b3csIHdlIGp1c3Qgc2VuZCBhY3Jvc3MgdGhlIGFic29sdXRlIHN0cmluZyBvZiB0aGUgbGluayBh
bmQKKyAgICAgICAgaXRzIHRpdGxlLgorCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlBh
c3RlYm9hcmRQcm94eUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYXN0ZWJvYXJkUHJv
eHk6OndyaXRlVVJMVG9QYXN0ZWJvYXJkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFzdGVi
b2FyZFByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94eS5tZXNz
YWdlcy5pbjoKKworICAgICAgICBBZGQgSVBDIHBsdW1iaW5nIGZvciB3cml0aW5nIFBhc3RlYm9h
clVSTHMgdG8gdGhlIHBhc3RlYm9hcmQuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBs
YXRmb3JtU3RyYXRlZ2llczo6d3JpdGVUb1Bhc3RlYm9hcmQpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmg6CisKKzIwMTctMDQtMjEg
IFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKICAgICAgICAgW1dLMl0g
QWRkIGRlbGVnYXRlIGhvb2tzIGZvciBvdmVycmlkaW5nIHVuaGFuZGVkIGRhdGEgaW50ZXJhY3Rp
b24gb3BlcmF0aW9ucwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTcxMDA1CiAgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMTY2OTY0Nj4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmRTdHJhdGVneS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZFN0cmF0ZWd5LmgKaW5kZXggZTg4YTQ4OTExODM2
NTQ5NDQ4ZmRjZjVmNGE0NTdiMjQyZDdmNzYyYy4uYzJhNjM0NzQ5NWYwOGNjZDAxZThlN2MwYWY2
MDBjMWQ2MTBiMjlhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVi
b2FyZFN0cmF0ZWd5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZFN0
cmF0ZWd5LmgKQEAgLTM3LDExICszNywxMyBAQCBjbGFzcyBTZWxlY3Rpb25EYXRhOwogY2xhc3Mg
U2hhcmVkQnVmZmVyOwogY2xhc3MgVVJMOwogc3RydWN0IFBhc3RlYm9hcmRJbWFnZTsKK3N0cnVj
dCBQYXN0ZWJvYXJkVVJMOwogc3RydWN0IFBhc3RlYm9hcmRXZWJDb250ZW50OwogCiBjbGFzcyBQ
YXN0ZWJvYXJkU3RyYXRlZ3kgewogcHVibGljOgogI2lmIFBMQVRGT1JNKElPUykKKyAgICB2aXJ0
dWFsIHZvaWQgd3JpdGVUb1Bhc3RlYm9hcmQoY29uc3QgUGFzdGVib2FyZFVSTCYsIGNvbnN0IFN0
cmluZyYgcGFzdGVib2FyZE5hbWUpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgd3JpdGVUb1Bhc3Rl
Ym9hcmQoY29uc3QgUGFzdGVib2FyZFdlYkNvbnRlbnQmLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9h
cmROYW1lKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHdyaXRlVG9QYXN0ZWJvYXJkKGNvbnN0IFBh
c3RlYm9hcmRJbWFnZSYsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgd3JpdGVUb1Bhc3RlYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlw
ZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkgPSAwOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1QYXN0ZWJvYXJkLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVBhc3RlYm9hcmQuaAppbmRleCAzN2E3OTE4
M2Y2Y2Y5YjQxZjg0ZjhiMGE2N2FkN2JkOGIwM2E0MzZhLi43OTIzYzJmNmI3NTlmYTIyOTk3NTNk
NjgxYTkzMGE5ZGU0NDgzMGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Q
bGF0Zm9ybVBhc3RlYm9hcmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9y
bVBhc3RlYm9hcmQuaApAQCAtNDcsNiArNDcsNyBAQCBjbGFzcyBTZWxlY3Rpb25EYXRhOwogY2xh
c3MgU2hhcmVkQnVmZmVyOwogY2xhc3MgVVJMOwogc3RydWN0IFBhc3RlYm9hcmRJbWFnZTsKK3N0
cnVjdCBQYXN0ZWJvYXJkVVJMOwogc3RydWN0IFBhc3RlYm9hcmRXZWJDb250ZW50OwogCiBjbGFz
cyBQbGF0Zm9ybVBhc3RlYm9hcmQgewpAQCAtNzgsNiArNzksNyBAQCBwdWJsaWM6CiAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCB3cml0ZShjb25zdCBQYXN0ZWJvYXJkV2ViQ29udGVudCYpOwogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgd3JpdGUoY29uc3QgUGFzdGVib2FyZEltYWdlJik7CiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCB3cml0ZShjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBj
b25zdCBTdHJpbmcmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHdyaXRlKGNvbnN0IFBhc3Rl
Ym9hcmRVUkwmKTsKICAgICBXRUJDT1JFX0VYUE9SVCBSZWZQdHI8U2hhcmVkQnVmZmVyPiByZWFk
QnVmZmVyKGludCBpbmRleCwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSk7CiAgICAgV0VC
Q09SRV9FWFBPUlQgU3RyaW5nIHJlYWRTdHJpbmcoaW50IGluZGV4LCBjb25zdCBTdHJpbmcmIHBh
c3RlYm9hcmRUeXBlKTsKICAgICBXRUJDT1JFX0VYUE9SVCBVUkwgcmVhZFVSTChpbnQgaW5kZXgs
IGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUpOwpAQCAtOTQsNiArOTYsNyBAQCBwcml2YXRl
OgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgd3JpdGVPYmplY3RSZXByZXNlbnRhdGlvbnMoY29u
c3QgUGFzdGVib2FyZFdlYkNvbnRlbnQmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHdyaXRl
T2JqZWN0UmVwcmVzZW50YXRpb25zKGNvbnN0IFBhc3RlYm9hcmRJbWFnZSYpOwogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgd3JpdGVPYmplY3RSZXByZXNlbnRhdGlvbnMoY29uc3QgU3RyaW5nJiBw
YXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHdyaXRlT2JqZWN0UmVwcmVzZW50YXRpb25zKGNvbnN0IFBhc3RlYm9hcmRVUkwmKTsKICNl
bmRpZgogCiAjaWYgUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL1Bhc3RlYm9hcmRJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
UGFzdGVib2FyZElPUy5tbQppbmRleCA3MjliMGQ1ZDQ5MGM5MTE4YzlkZmZjOWI2NzllNzliYTZh
ZDRkZjZiLi44MTM1ZTIzOGIwOTI3M2JlZWFmMTc4NmEyNTcyMGU1ZjcxNzA1MmYyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGFzdGVib2FyZElPUy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGFzdGVib2FyZElPUy5tbQpAQCAtMTI2LDcgKzEy
Niw3IEBAIHZvaWQgUGFzdGVib2FyZDo6d3JpdGVQbGFpblRleHQoY29uc3QgU3RyaW5nJiB0ZXh0
LCBTbWFydFJlcGxhY2VPcHRpb24pCiAKIHZvaWQgUGFzdGVib2FyZDo6d3JpdGUoY29uc3QgUGFz
dGVib2FyZFVSTCYgcGFzdGVib2FyZFVSTCkKIHsKLSAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+
cGFzdGVib2FyZFN0cmF0ZWd5KCktPndyaXRlVG9QYXN0ZWJvYXJkKGtVVFR5cGVVUkwsIHBhc3Rl
Ym9hcmRVUkwudXJsLnN0cmluZygpLCBtX3Bhc3RlYm9hcmROYW1lKTsKKyAgICBwbGF0Zm9ybVN0
cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPndyaXRlVG9QYXN0ZWJvYXJkKHBhc3Rl
Ym9hcmRVUkwsIG1fcGFzdGVib2FyZE5hbWUpOwogfQogCiB2b2lkIFBhc3RlYm9hcmQ6OndyaXRl
VHJ1c3R3b3J0aHlXZWJVUkxzUGJvYXJkVHlwZShjb25zdCBQYXN0ZWJvYXJkVVJMJikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybVBhc3RlYm9hcmRJT1Mu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1QYXN0ZWJvYXJkSU9TLm1t
CmluZGV4IDMxNzhjNGZhNTVmOWMwZjhhZjg2ZmEzZGQ3MTM2NTQ3MjU2YTAyZTMuLjMyZDJhNzEw
M2IwYWY1OGEzYzA2Y2UwNjI2ZmMyMDI1MzE2ODUwMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybVBhc3RlYm9hcmRJT1MubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW9zL1BsYXRmb3JtUGFzdGVib2FyZElPUy5tbQpAQCAtMzUsMjAgKzM1
LDE2IEBACiAjaW1wb3J0ICJXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkLmgiCiAjaW1wb3J0IDxN
b2JpbGVDb3JlU2VydmljZXMvTW9iaWxlQ29yZVNlcnZpY2VzLmg+CiAjaW1wb3J0IDxVSUtpdC9V
SUltYWdlLmg+CisjaW1wb3J0IDxVSUtpdC9VSVBhc3RlYm9hcmQuaD4KKworI2lmIEVOQUJMRShE
QVRBX0lOVEVSQUNUSU9OKQorI2ltcG9ydCA8VUlLaXQvTlNVUkwrVUlJdGVtUHJvdmlkZXIuaD4K
KyNlbmRpZgogCiBTT0ZUX0xJTktfRlJBTUVXT1JLKFVJS2l0KQogU09GVF9MSU5LX0NMQVNTKFVJ
S2l0LCBVSUltYWdlKQogU09GVF9MSU5LX0NMQVNTKFVJS2l0LCBVSVBhc3RlYm9hcmQpCiAKLUBp
bnRlcmZhY2UgVUlQYXN0ZWJvYXJkCi0rIChVSVBhc3RlYm9hcmQgKilnZW5lcmFsUGFzdGVib2Fy
ZDsKLS0gKHZvaWQpc2V0SXRlbXM6KE5TQXJyYXkgKilpdGVtczsKLUBwcm9wZXJ0eShyZWFkb25s
eSxub25hdG9taWMpIE5TSW50ZWdlciBudW1iZXJPZkl0ZW1zOwotLSAoTlNBcnJheSAqKWRhdGFG
b3JQYXN0ZWJvYXJkVHlwZTooTlNTdHJpbmcgKilwYXN0ZWJvYXJkVHlwZSBpbkl0ZW1TZXQ6KE5T
SW5kZXhTZXQgKilpdGVtU2V0OwotLSAoTlNBcnJheSAqKXZhbHVlc0ZvclBhc3RlYm9hcmRUeXBl
OihOU1N0cmluZyAqKXBhc3RlYm9hcmRUeXBlIGluSXRlbVNldDooTlNJbmRleFNldCAqKWl0ZW1T
ZXQ7Ci0tIChOU0ludGVnZXIpY2hhbmdlQ291bnQ7Ci1AZW5kCi0KIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogUGxhdGZvcm1QYXN0ZWJvYXJkOjpQbGF0Zm9ybVBhc3RlYm9hcmQoKQpAQCAtMjk1LDYg
KzI5MSwzMiBAQCB2b2lkIFBsYXRmb3JtUGFzdGVib2FyZDo6d3JpdGUoY29uc3QgU3RyaW5nJiBw
YXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0KQogICAgIFttX3Bhc3RlYm9hcmQgc2V0
SXRlbXM6QFtyZXByZXNlbnRhdGlvbnMuZ2V0KCldXTsKIH0KIAordm9pZCBQbGF0Zm9ybVBhc3Rl
Ym9hcmQ6OndyaXRlT2JqZWN0UmVwcmVzZW50YXRpb25zKGNvbnN0IFBhc3RlYm9hcmRVUkwmIHVy
bCkKK3sKKyAgICBSZXRhaW5QdHI8TlNNdXRhYmxlQXJyYXk+IG9iamVjdFJlcHJlc2VudGF0aW9u
cyA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdF0pOworCisgICAgTlNVUkwg
Km5zVVJMID0gKE5TVVJMICopdXJsLnVybDsKKyAgICBpZiAobnNVUkwpIHsKKyAgICAgICAgW29i
amVjdFJlcHJlc2VudGF0aW9ucyBhZGRPYmplY3Q6bnNVUkxdOworI2lmIEVOQUJMRShEQVRBX0lO
VEVSQUNUSU9OKQorICAgICAgICBpZiAoIXVybC50aXRsZS5pc0VtcHR5KCkpCisgICAgICAgICAg
ICBuc1VSTC5fdGl0bGUgPSB1cmwudGl0bGU7CisjZW5kaWYKKyAgICB9CisKKyAgICBbbV9wYXN0
ZWJvYXJkIHNldEl0ZW1zRnJvbU9iamVjdFJlcHJlc2VudGF0aW9uczpAW1tXZWJQYXN0ZWJvYXJk
SXRlbURhdGEgaXRlbVdpdGhSZXByZXNlbnRpbmdPYmplY3RzOm9iamVjdFJlcHJlc2VudGF0aW9u
cy5nZXQoKSBhZGRpdGlvbmFsRGF0YTpAeyB9XV1dOworfQorCit2b2lkIFBsYXRmb3JtUGFzdGVi
b2FyZDo6d3JpdGUoY29uc3QgUGFzdGVib2FyZFVSTCYgdXJsKQoreworICAgIGlmIChbbV9wYXN0
ZWJvYXJkIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Ioc2V0SXRlbXNGcm9tT2JqZWN0UmVw
cmVzZW50YXRpb25zOildKSB7CisgICAgICAgIHdyaXRlT2JqZWN0UmVwcmVzZW50YXRpb25zKHVy
bCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICB3cml0ZShrVVRUeXBlVVJMLCB1cmwu
dXJsLnN0cmluZygpKTsKK30KKwogaW50IFBsYXRmb3JtUGFzdGVib2FyZDo6Y291bnQoKQogewog
ICAgIHJldHVybiBbbV9wYXN0ZWJvYXJkIG51bWJlck9mSXRlbXNdOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZC5tbQpp
bmRleCA3YWIxNjQ5OGVlNzIyMGU5ZWZlMzZiYjk1ZWEzMTFlMGQ2YThkMmQxLi5mYTNkZDEzMmMy
NTM4ZGU5NjIyNTE4N2NlNzI5ZjE2NjZmMTNlZDgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZC5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZC5tbQpAQCAtMzIs
NiArMzIsNyBAQAogI2ltcG9ydCAiVUlLaXRTUEkuaCIKICNpbXBvcnQgPEZvdW5kYXRpb24vTlNQ
cm9ncmVzcy5oPgogI2ltcG9ydCA8TW9iaWxlQ29yZVNlcnZpY2VzL01vYmlsZUNvcmVTZXJ2aWNl
cy5oPgorI2ltcG9ydCA8VUlLaXQvTlNVUkwrVUlJdGVtUHJvdmlkZXIuaD4KICNpbXBvcnQgPFVJ
S2l0L1VJQ29sb3IuaD4KICNpbXBvcnQgPFVJS2l0L1VJSW1hZ2UuaD4KICNpbXBvcnQgPFVJS2l0
L1VJSXRlbVByb3ZpZGVyV3JpdGluZy5oPgpAQCAtMTU3LDE1ICsxNTgsMTMgQEAgc3RhdGljIEJP
T0wgaXNJbWFnZVR5cGUoTlNTdHJpbmcgKnR5cGUpCiAgICAgICAgIGlmICghZGF0YS5yZXByZXNl
bnRpbmdPYmplY3RzLmNvdW50ICYmICFkYXRhLmFkZGl0aW9uYWxEYXRhLmNvdW50KQogICAgICAg
ICAgICAgY29udGludWU7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAg
ICAgICAgUmV0YWluUHRyPFVJSXRlbVByb3ZpZGVyPiBpdGVtUHJvdmlkZXIgPSBhZG9wdE5TKFtb
Z2V0VUlJdGVtUHJvdmlkZXJDbGFzcygpIGFsbG9jXSBpbml0XSk7CiAgICAgICAgIC8vIEZpcnN0
LCByZWdpc3RlciBhbGwgcGxhdGZvcm0gb2JqZWN0cywgcHJpb3JpdGl6aW5nIG9iamVjdHMgYXQg
dGhlIGJlZ2lubmluZyBvZiB0aGUgYXJyYXkuCiAgICAgICAgIGZvciAoaWQgcmVwcmVzZW50aW5n
T2JqZWN0IGluIGRhdGEucmVwcmVzZW50aW5nT2JqZWN0cykgewogICAgICAgICAgICAgaWYgKCFb
cmVwcmVzZW50aW5nT2JqZWN0IGNvbmZvcm1zVG9Qcm90b2NvbDpAcHJvdG9jb2woVUlJdGVtUHJv
dmlkZXJXcml0aW5nKV0pCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgICAg
IFtpdGVtUHJvdmlkZXIgcmVnaXN0ZXJPYmplY3Q6KGlkIDxVSUl0ZW1Qcm92aWRlcldyaXRpbmc+
KXJlcHJlc2VudGluZ09iamVjdCBvcHRpb25zOm5pbF07CisgICAgICAgICAgICBbaXRlbVByb3Zp
ZGVyIHJlZ2lzdGVyT2JqZWN0OihpZCA8VUlJdGVtUHJvdmlkZXJXcml0aW5nPilyZXByZXNlbnRp
bmdPYmplY3QgdmlzaWJpbGl0eTpVSUl0ZW1Qcm92aWRlclJlcHJlc2VudGF0aW9uT3B0aW9uc1Zp
c2liaWxpdHlBbGxdOwogICAgICAgICB9CiAKICAgICAgICAgLy8gTmV4dCwgcmVnaXN0ZXIgb3Ro
ZXIgY3VzdG9tIGRhdGEgcmVwcmVzZW50YXRpb25zIGZvciB0eXBlIGlkZW50aWZpZXJzLgpAQCAt
MTc0LDE0ICsxNzMsMTMgQEAgc3RhdGljIEJPT0wgaXNJbWFnZVR5cGUoTlNTdHJpbmcgKnR5cGUp
CiAgICAgICAgICAgICBpZiAoIVthZGRpdGlvbmFsRGF0YVt0eXBlSWRlbnRpZmllcl0gaXNLaW5k
T2ZDbGFzczpbTlNEYXRhIGNsYXNzXV0pCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKLSAg
ICAgICAgICAgIFtpdGVtUHJvdmlkZXIgcmVnaXN0ZXJEYXRhUmVwcmVzZW50YXRpb25Gb3JUeXBl
SWRlbnRpZmllcjp0eXBlSWRlbnRpZmllciBvcHRpb25zOm5pbCBsb2FkSGFuZGxlcjpeTlNQcm9n
cmVzcyAqKFVJSXRlbVByb3ZpZGVyRGF0YUxvYWRDb21wbGV0aW9uQmxvY2sgY29tcGxldGlvbkJs
b2NrKQorICAgICAgICAgICAgW2l0ZW1Qcm92aWRlciByZWdpc3RlckRhdGFSZXByZXNlbnRhdGlv
bkZvclR5cGVJZGVudGlmaWVyOnR5cGVJZGVudGlmaWVyIHZpc2liaWxpdHk6VUlJdGVtUHJvdmlk
ZXJSZXByZXNlbnRhdGlvbk9wdGlvbnNWaXNpYmlsaXR5QWxsIGxvYWRIYW5kbGVyOl5OU1Byb2dy
ZXNzICoodm9pZCAoXmNvbXBsZXRpb25IYW5kbGVyKShOU0RhdGEgKiwgTlNFcnJvciAqKSkKICAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBjb21wbGV0aW9uQmxvY2soYWRkaXRpb25hbERh
dGFbdHlwZUlkZW50aWZpZXJdLCBuaWwpOworICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKGFkZGl0aW9uYWxEYXRhW3R5cGVJZGVudGlmaWVyXSwgbmlsKTsKICAgICAgICAgICAgICAg
ICByZXR1cm4gW05TUHJvZ3Jlc3MgZGlzY3JldGVQcm9ncmVzc1dpdGhUb3RhbFVuaXRDb3VudDox
MDBdOwogICAgICAgICAgICAgfV07CiAgICAgICAgIH0KICAgICAgICAgW3Byb3ZpZGVycyBhZGRP
YmplY3Q6aXRlbVByb3ZpZGVyLmdldCgpXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
ICAgICB9CiAKICAgICBzZWxmLml0ZW1Qcm92aWRlcnMgPSBwcm92aWRlcnM7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMu
aCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2ll
cy5oCmluZGV4IDA0ZmM3NDMwNjhiNjk4ODVhYmNmOGQ5ZjIzZmQ5YmZlN2MyNjFkMzYuLjA0MzZi
MzMyNWQ0ZGJkMWVkMzM5NDBiNWVmNTYzOGM2Y2IxOGYzYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCkBA
IC01OCw2ICs1OCw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBXZWJDb3JlOjpQYXN0ZWJvYXJkU3Ry
YXRlZ3kKICNpZiBQTEFURk9STShJT1MpCisgICAgdm9pZCB3cml0ZVRvUGFzdGVib2FyZChjb25z
dCBXZWJDb3JlOjpQYXN0ZWJvYXJkVVJMJiwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkg
b3ZlcnJpZGU7CiAgICAgdm9pZCB3cml0ZVRvUGFzdGVib2FyZChjb25zdCBXZWJDb3JlOjpQYXN0
ZWJvYXJkV2ViQ29udGVudCYsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpIG92ZXJyaWRl
OwogICAgIHZvaWQgd3JpdGVUb1Bhc3RlYm9hcmQoY29uc3QgV2ViQ29yZTo6UGFzdGVib2FyZElt
YWdlJiwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCB3
cml0ZVRvUGFzdGVib2FyZChjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBjb25zdCBTdHJp
bmcmLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5t
bSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2ll
cy5tbQppbmRleCA3NWJiOGYwN2I1YmUyYWM1YmI3NmZlZDQyMzI3NmU0MWI4NDQ0OTM5Li43ZTli
YjQ0YjJmNTBhOGNhNzQ4MmY3MDVhNmZhNTcwNjNiYjFkZDQ1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0KKysrIGIv
U291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1t
CkBAIC0xODYsNiArMTg2LDExIEBAIGludCBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmdldE51bWJl
ck9mRmlsZXMoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkKIH0KIAogI2lmIFBMQVRGT1JN
KElPUykKK3ZvaWQgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjp3cml0ZVRvUGFzdGVib2FyZChjb25z
dCBQYXN0ZWJvYXJkVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpCit7Cisg
ICAgUGxhdGZvcm1QYXN0ZWJvYXJkKHBhc3RlYm9hcmROYW1lKS53cml0ZSh1cmwpOworfQorCiB2
b2lkIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6d3JpdGVUb1Bhc3RlYm9hcmQoY29uc3QgV2ViQ29y
ZTo6UGFzdGVib2FyZFdlYkNvbnRlbnQmIGNvbnRlbnQsIGNvbnN0IFN0cmluZyYgcGFzdGVib2Fy
ZE5hbWUpCiB7CiAgICAgUGxhdGZvcm1QYXN0ZWJvYXJkKHBhc3RlYm9hcmROYW1lKS53cml0ZShj
b250ZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0L21lc3Nh
Z2VzLnB5IGIvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXgg
MWVjOGVmNzU5ZDE3YzBiMGZhZjVhNGZkYzgwMjQ5MDVjNDc4YmM0Ny4uNmY4NmUwNTE4OTc4MmNl
MTg2NWNiZjBiZWY5NGU0NjhmODA2Yjg3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2Ny
aXB0cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJr
aXQvbWVzc2FnZXMucHkKQEAgLTM1OCw2ICszNTgsNyBAQCBkZWYgaGVhZGVyc19mb3JfdHlwZSh0
eXBlKToKICAgICAgICAgJ1dlYkNvcmU6OktleXByZXNzQ29tbWFuZCc6IFsnPFdlYkNvcmUvS2V5
Ym9hcmRFdmVudC5oPiddLAogICAgICAgICAnV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50c0RhdGEn
OiBbJzxXZWJDb3JlL01lZGlhQ29uc3RyYWludHNJbXBsLmg+J10sCiAgICAgICAgICdXZWJDb3Jl
OjpQYXN0ZWJvYXJkSW1hZ2UnOiBbJzxXZWJDb3JlL1Bhc3RlYm9hcmQuaD4nXSwKKyAgICAgICAg
J1dlYkNvcmU6OlBhc3RlYm9hcmRVUkwnOiBbJzxXZWJDb3JlL1Bhc3RlYm9hcmQuaD4nXSwKICAg
ICAgICAgJ1dlYkNvcmU6OlBhc3RlYm9hcmRXZWJDb250ZW50JzogWyc8V2ViQ29yZS9QYXN0ZWJv
YXJkLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdCc6
IFsnPFdlYkNvcmUvUGF5bWVudFJlcXVlc3QuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlBheW1l
bnRNZXRob2RVcGRhdGUnOiBbJzxXZWJDb3JlL1BheW1lbnRSZXF1ZXN0Lmg+J10sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4IDU4YWFl
YzMxZmUzYzVjNDM4MDkyNmY5OGNhM2YzNGU2OGRmNjA3NWIuLjA2MmNkNGMyNWQ0ZjdkODY4N2Yy
ZjY1MTBjNTNlNmVmODdjYTk0NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJD
b3JlQXJndW1lbnRDb2RlcnMuY3BwCkBAIC0xNDA1LDYgKzE0MDUsMjMgQEAgc3RhdGljIGJvb2wg
ZGVjb2RlU2hhcmVkQnVmZmVyKERlY29kZXImIGRlY29kZXIsIFJlZlB0cjxTaGFyZWRCdWZmZXI+
JiBidWZmZXIpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3ZvaWQgQXJndW1lbnRDb2RlcjxQYXN0
ZWJvYXJkVVJMPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFBhc3RlYm9hcmRVUkwm
IGNvbnRlbnQpCit7CisgICAgZW5jb2RlciA8PCBjb250ZW50LnVybDsKKyAgICBlbmNvZGVyIDw8
IGNvbnRlbnQudGl0bGU7Cit9CisKK2Jvb2wgQXJndW1lbnRDb2RlcjxQYXN0ZWJvYXJkVVJMPjo6
ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFBhc3RlYm9hcmRVUkwmIGNvbnRlbnQpCit7CisgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShjb250ZW50LnVybCkpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoY29udGVudC50aXRsZSkpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIHJldHVybiB0cnVlOworfQorCiB2b2lkIEFyZ3VtZW50Q29kZXI8UGFz
dGVib2FyZFdlYkNvbnRlbnQ+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgUGFzdGVi
b2FyZFdlYkNvbnRlbnQmIGNvbnRlbnQpCiB7CiAgICAgZW5jb2RlciA8PCBjb250ZW50LmNhblNt
YXJ0Q29weU9yRGVsZXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNv
cmVBcmd1bWVudENvZGVycy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVu
dENvZGVycy5oCmluZGV4IDRhNjM2OWJhMjlmNmRhYTUxZmVjOGQ1NjM1ZmMxNGVjNTdjOTEwODUu
LmVhZGNmZjBlY2VlZTFlYzUzN2FlNjdiOWFkYjI1MTFlMTdhNTU5MjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKQEAgLTkzLDYgKzkzLDcgQEAg
c3RydWN0IExlbmd0aDsKIHN0cnVjdCBHcmFtbWFyRGV0YWlsOwogc3RydWN0IE1pbWVDbGFzc0lu
Zm87CiBzdHJ1Y3QgUGFzdGVib2FyZEltYWdlOworc3RydWN0IFBhc3RlYm9hcmRVUkw7CiBzdHJ1
Y3QgUGFzdGVib2FyZFdlYkNvbnRlbnQ7CiBzdHJ1Y3QgUGx1Z2luSW5mbzsKIHN0cnVjdCBSZWNl
bnRTZWFyY2g7CkBAIC0zOTUsNiArMzk2LDExIEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50
Q29kZXI8V2ViQ29yZTo6UGFzdGVib2FyZFdlYkNvbnRlbnQ+IHsKICAgICBzdGF0aWMgYm9vbCBk
ZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OlBhc3RlYm9hcmRXZWJDb250ZW50Jik7CiB9OwogCit0
ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlBhc3RlYm9hcmRVUkw+IHsK
KyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlBhc3RlYm9h
cmRVUkwmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OlBhc3Rl
Ym9hcmRVUkwmKTsKK307CisKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29y
ZTo6UGFzdGVib2FyZEltYWdlPiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBj
b25zdCBXZWJDb3JlOjpQYXN0ZWJvYXJkSW1hZ2UmKTsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUo
RGVjb2RlciYsIFdlYkNvcmU6OlBhc3RlYm9hcmRJbWFnZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlBhc3RlYm9hcmRQcm94eUNvY29hLm1tIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlBhc3RlYm9hcmRQcm94eUNvY29hLm1tCmlu
ZGV4IDZhYWI5OTlkZDM5YjFiZDczMjNiNWI0YmY2NjM4OTcyMjdiYzY3MTQuLmI4MzY1MTY2ZmIz
ODI0NmM5OTFiYzY4NzdkY2MwOGZiYTVlNGZjYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYXN0ZWJvYXJkUHJveHlDb2NvYS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViUGFzdGVib2FyZFByb3h5Q29jb2EubW0KQEAgLTE0
MCw2ICsxNDAsMTEgQEAgdm9pZCBXZWJQYXN0ZWJvYXJkUHJveHk6OmdldE51bWJlck9mRmlsZXMo
Y29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwgdWludDY0X3QKIH0KIAogI2lmIFBMQVRGT1JN
KElPUykKK3ZvaWQgV2ViUGFzdGVib2FyZFByb3h5Ojp3cml0ZVVSTFRvUGFzdGVib2FyZChjb25z
dCBQYXN0ZWJvYXJkVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpCit7Cisg
ICAgUGxhdGZvcm1QYXN0ZWJvYXJkKHBhc3RlYm9hcmROYW1lKS53cml0ZSh1cmwpOworfQorCiB2
b2lkIFdlYlBhc3RlYm9hcmRQcm94eTo6d3JpdGVXZWJDb250ZW50VG9QYXN0ZWJvYXJkKGNvbnN0
IFdlYkNvcmU6OlBhc3RlYm9hcmRXZWJDb250ZW50JiBjb250ZW50LCBjb25zdCBTdHJpbmcmIHBh
c3RlYm9hcmROYW1lKQogewogICAgIFBsYXRmb3JtUGFzdGVib2FyZChwYXN0ZWJvYXJkTmFtZSku
d3JpdGUoY29udGVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFzdGVib2FyZFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFzdGVib2Fy
ZFByb3h5LmgKaW5kZXggMjY1NTczNjFmNTU4ZTk2NjQwODY0MGY1NDA5ZDY4ODJmMjVmZWM3MC4u
ODZiOTAyZGQ0NzhjMTY1MDFlZDMyM2ExYzNhNTcxYjZhM2NjM2NlZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHkuaApAQCAtMzYsNiArMzYsNyBAQAog
bmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQ29sb3I7CiBzdHJ1Y3QgUGFzdGVib2FyZEltYWdl
Oworc3RydWN0IFBhc3RlYm9hcmRVUkw7CiBzdHJ1Y3QgUGFzdGVib2FyZFdlYkNvbnRlbnQ7CiB9
CiAKQEAgLTY4LDYgKzY5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBD
OjpFbmNvZGVyPiYpIG92ZXJyaWRlOwogCiAjaWYgUExBVEZPUk0oSU9TKQorICAgIHZvaWQgd3Jp
dGVVUkxUb1Bhc3RlYm9hcmQoY29uc3QgV2ViQ29yZTo6UGFzdGVib2FyZFVSTCYsIGNvbnN0IFN0
cmluZyYgcGFzdGVib2FyZE5hbWUpOwogICAgIHZvaWQgd3JpdGVXZWJDb250ZW50VG9QYXN0ZWJv
YXJkKGNvbnN0IFdlYkNvcmU6OlBhc3RlYm9hcmRXZWJDb250ZW50JiwgY29uc3QgU3RyaW5nJiBw
YXN0ZWJvYXJkTmFtZSk7CiAgICAgdm9pZCB3cml0ZUltYWdlVG9QYXN0ZWJvYXJkKGNvbnN0IFdl
YkNvcmU6OlBhc3RlYm9hcmRJbWFnZSYsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpOwog
ICAgIHZvaWQgd3JpdGVTdHJpbmdUb1Bhc3RlYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJk
VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFzdGVib2FyZFByb3h5Lm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94eS5tZXNz
YWdlcy5pbgppbmRleCA3MzZhMGFkNDUxY2VjZTY0NGRkZTg2MzZhNjE1ZGY2MzU5ZWM5MWRhLi4y
MTQwZjY0ZGVhNDZmNjNiY2QxNDEwYTllYTNlMTVkZWFkMWUyNTY2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFzdGVib2FyZFByb3h5Lm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHkubWVzc2FnZXMuaW4K
QEAgLTIyLDYgKzIyLDcgQEAKIAogbWVzc2FnZXMgLT4gV2ViUGFzdGVib2FyZFByb3h5IHsKICNp
ZiBQTEFURk9STShJT1MpCisgICAgV3JpdGVVUkxUb1Bhc3RlYm9hcmQoc3RydWN0IFdlYkNvcmU6
OlBhc3RlYm9hcmRVUkwgdXJsLCBTdHJpbmcgcGFzdGVib2FyZE5hbWUpCiAgICAgV3JpdGVXZWJD
b250ZW50VG9QYXN0ZWJvYXJkKHN0cnVjdCBXZWJDb3JlOjpQYXN0ZWJvYXJkV2ViQ29udGVudCBj
b250ZW50LCBTdHJpbmcgcGFzdGVib2FyZE5hbWUpCiAgICAgV3JpdGVJbWFnZVRvUGFzdGVib2Fy
ZChzdHJ1Y3QgV2ViQ29yZTo6UGFzdGVib2FyZEltYWdlIHBhc3RlYm9hcmRJbWFnZSwgU3RyaW5n
IHBhc3RlYm9hcmROYW1lKQogICAgIFdyaXRlU3RyaW5nVG9QYXN0ZWJvYXJkKFN0cmluZyBwYXN0
ZWJvYXJkVHlwZSwgU3RyaW5nIHRleHQsIFN0cmluZyBwYXN0ZWJvYXJkTmFtZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1T
dHJhdGVnaWVzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAppbmRleCAyZWRmNGI3NmQ1NDY0ZTFkYjU2NGQ4YmQw
ZDM2M2FkNzIwZTdjMmRjLi44YmE3MzNhNWUzN2IxNjA4NTQ1MjlhMmMzNDIyN2E3ZjVlZWI3ZmIz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCkBAIC0yODcsNiArMjg3LDEx
IEBAIGludCBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmdldE51bWJlck9mRmlsZXMoY29uc3QgU3Ry
aW5nJiBwYXN0ZWJvYXJkTmFtZSkKIH0KIAogI2lmIFBMQVRGT1JNKElPUykKK3ZvaWQgV2ViUGxh
dGZvcm1TdHJhdGVnaWVzOjp3cml0ZVRvUGFzdGVib2FyZChjb25zdCBQYXN0ZWJvYXJkVVJMJiB1
cmwsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpCit7CisgICAgV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUGFz
dGVib2FyZFByb3h5OjpXcml0ZVVSTFRvUGFzdGVib2FyZCh1cmwsIHBhc3RlYm9hcmROYW1lKSwg
MCk7Cit9CisKIHZvaWQgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjp3cml0ZVRvUGFzdGVib2FyZChj
b25zdCBXZWJDb3JlOjpQYXN0ZWJvYXJkV2ViQ29udGVudCYgY29udGVudCwgY29uc3QgU3RyaW5n
JiBwYXN0ZWJvYXJkTmFtZSkKIHsKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQ
cm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYXN0ZWJvYXJkUHJveHk6Oldy
aXRlV2ViQ29udGVudFRvUGFzdGVib2FyZChjb250ZW50LCBwYXN0ZWJvYXJkTmFtZSksIDApOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXMuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKaW5kZXggZTQzODdjOTMwMjE5ODRhODU1YjFh
OGM3NGZlZmM4YjViZDc3ODVjMy4uN2ZlMzQ5Mjg2Zjk1MTU3YjgwNGY1N2MyNmQ2NTFmNjhlMDAw
NThjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCkBAIC02MCw2ICs2MCw3IEBA
IHByaXZhdGU6CiAgICAgLy8gV2ViQ29yZTo6UGFzdGVib2FyZFN0cmF0ZWd5CiAjaWYgUExBVEZP
Uk0oSU9TKQogICAgIHZvaWQgd3JpdGVUb1Bhc3RlYm9hcmQoY29uc3QgV2ViQ29yZTo6UGFzdGVi
b2FyZFdlYkNvbnRlbnQmLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKSBvdmVycmlkZTsK
KyAgICB2b2lkIHdyaXRlVG9QYXN0ZWJvYXJkKGNvbnN0IFdlYkNvcmU6OiBQYXN0ZWJvYXJkVVJM
JiwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCB3cml0
ZVRvUGFzdGVib2FyZChjb25zdCBXZWJDb3JlOjpQYXN0ZWJvYXJkSW1hZ2UmLCBjb25zdCBTdHJp
bmcmIHBhc3RlYm9hcmROYW1lKSBvdmVycmlkZTsKICAgICB2b2lkIHdyaXRlVG9QYXN0ZWJvYXJk
KGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmlu
ZyYgcGFzdGVib2FyZE5hbWUpIG92ZXJyaWRlOwogICAgIGludCBnZXRQYXN0ZWJvYXJkSXRlbXND
b3VudChjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBh
L1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBiYzEyZjFlYWQ1YTQ3ZDA3
MjFmMWVjYjk0ZmM4MmM5MDM0MTMzMjE1Li5jMGM4MjU1ZGY0MWE0YmQzZjM3MzczMTllZDUxZDY3
MTY1ZGI1MzA2IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdl
TG9nCkBAIC0xLDUgKzEsMjAgQEAKIDIwMTctMDQtMjEgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9o
c2llaEBhcHBsZS5jb20+CiAKKyAgICAgICAgU3VwcG9ydCB3cml0aW5nIGxpbmsgdGl0bGVzIHRv
IHRoZSBwYXN0ZWJvYXJkIHdoZW4gYmVnaW5uaW5nIGRhdGEgaW50ZXJhY3Rpb24gb24gYSBsaW5r
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzExNTQK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMxMzU2OTM3PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEF1Z21lbnRzIGFuIGV4aXN0aW5nIHVuaXQgdGVz
dCwgRGF0YUludGVyYWN0aW9uVGVzdHMuTGlua1RvSW5wdXQsIHRvIGFsc28gY2hlY2sgdGhhdCB0
aGUgZmV0Y2hpbmcgdGhlIE5TVVJMIGZyb20KKyAgICAgICAgdGhlIHNvdXJjZSBVSUl0ZW1Qcm92
aWRlciBnZW5lcmF0ZWQgYnkgcGVyZm9ybWluZyBkYXRhIGludGVyYWN0aW9uIHJlc3VsdHMgaW4g
YW4gTlNVUkwgd2l0aCB0aGUgX3RpdGxlIGF0dHJpYnV0ZQorICAgICAgICBtYXRjaGluZyB0aGUg
dGl0bGUgb2YgdGhlIGxpbmsuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9E
YXRhSW50ZXJhY3Rpb25UZXN0cy5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgor
CisyMDE3LTA0LTIxICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCiAg
ICAgICAgIFtXSzJdIEFkZCBkZWxlZ2F0ZSBob29rcyBmb3Igb3ZlcnJpZGluZyB1bmhhbmRlZCBk
YXRhIGludGVyYWN0aW9uIG9wZXJhdGlvbnMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE3MTAwNQogICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzE2Njk2
NDY+CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9EYXRhSW50ZXJh
Y3Rpb25UZXN0cy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL0RhdGFJbnRlcmFj
dGlvblRlc3RzLm1tCmluZGV4IDZmYmI1NDI3OTA3MGQwZmQzYzlhMWU1ZDcyZTAwMjUwMGI1Yjc2
NTYuLjcwY2NkN2VhMzVjZTUyMmZlYjhhNWU2ZmQyOTc0MDY3ZjBkZmQ2ODAgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL0RhdGFJbnRlcmFjdGlvblRlc3RzLm1tCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL0RhdGFJbnRlcmFjdGlvblRlc3RzLm1t
CkBAIC0zMiw2ICszMiw3IEBACiAjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCiAjaW1wb3J0ICJX
S1dlYlZpZXdDb25maWd1cmF0aW9uRXh0cmFzLmgiCiAjaW1wb3J0IDxNb2JpbGVDb3JlU2Vydmlj
ZXMvTW9iaWxlQ29yZVNlcnZpY2VzLmg+CisjaW1wb3J0IDxVSUtpdC9OU1VSTCtVSUl0ZW1Qcm92
aWRlci5oPgogI2ltcG9ydCA8VUlLaXQvVUlJdGVtUHJvdmlkZXJfUHJpdmF0ZS5oPgogI2ltcG9y
dCA8V2ViS2l0L1dLUHJlZmVyZW5jZXNQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJW
aWV3Q29uZmlndXJhdGlvblByaXZhdGUuaD4KQEAgLTI0Nyw2ICsyNDgsMTQgQEAgVEVTVChEYXRh
SW50ZXJhY3Rpb25UZXN0cywgTGlua1RvSW5wdXQpCiAKICAgICBFWFBFQ1RfV0tfU1RSRVEoImh0
dHBzOi8vd3d3LmFwcGxlLmNvbS8iLCBbd2ViVmlldyBlZGl0b3JWYWx1ZV0uVVRGOFN0cmluZyk7
CiAKKyAgICBfX2Jsb2NrIGJvb2wgZG9uZUxvYWRpbmdVUkwgPSBmYWxzZTsKKyAgICBVSUl0ZW1Q
cm92aWRlciAqc291cmNlSXRlbVByb3ZpZGVyID0gW2RhdGFJbnRlcmFjdGlvblNpbXVsYXRvciBz
b3VyY2VJdGVtUHJvdmlkZXJzXS5maXJzdE9iamVjdDsKKyAgICBbc291cmNlSXRlbVByb3ZpZGVy
IGxvYWRPYmplY3RPZkNsYXNzOltOU1VSTCBjbGFzc10gY29tcGxldGlvbkhhbmRsZXI6XihOU1VS
TCAqdXJsLCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoIkhlbGxv
IHdvcmxkIiwgdXJsLl90aXRsZS5VVEY4U3RyaW5nID86ICIiKTsKKyAgICAgICAgZG9uZUxvYWRp
bmdVUkwgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9u
ZUxvYWRpbmdVUkwpOworCiAgICAgTlNBcnJheSAqb2JzZXJ2ZWRFdmVudE5hbWVzID0gW2RhdGFJ
bnRlcmFjdGlvblNpbXVsYXRvciBvYnNlcnZlZEV2ZW50TmFtZXNdOwogICAgIEVYUEVDVF9UUlVF
KFtvYnNlcnZlZEV2ZW50TmFtZXMgY29udGFpbnNPYmplY3Q6RGF0YUludGVyYWN0aW9uRW50ZXJF
dmVudE5hbWVdKTsKICAgICBFWFBFQ1RfVFJVRShbb2JzZXJ2ZWRFdmVudE5hbWVzIGNvbnRhaW5z
T2JqZWN0OkRhdGFJbnRlcmFjdGlvbk92ZXJFdmVudE5hbWVdKTsK
</data>
<flag name="review"
          id="329090"
          type_id="1"
          status="+"
          setter="aestes"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>307887</attachid>
            <date>2017-04-21 22:37:37 -0700</date>
            <delta_ts>2017-04-21 23:18:56 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-171154-20170421223734.patch</filename>
            <type>text/plain</type>
            <size>24733</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1NjU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGMwNTM5OGZhNDY0OTg4
ZDM5MWQwOTFlNmYxNDQyYjYwY2I4NTIxMS4uNzdiZDk0NWNhMjFiNjA3MmRmNTBlODNhOTkyMDE5
NzA0NDY5ZjY0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDE3LTA0LTIxICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgd3Jp
dGluZyBsaW5rIHRpdGxlcyB0byB0aGUgcGFzdGVib2FyZCB3aGVuIGJlZ2lubmluZyBkYXRhIGlu
dGVyYWN0aW9uIG9uIGEgbGluaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTcxMTU0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMTM1NjkzNz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBBbmR5IEVzdGVzLgorCisgICAgICAgIEN1cnJlbnRseSwgd2hl
biB3cml0aW5nIE5TVVJMcyB0byB0aGUgcGFzdGVib2FyZCwgd2Ugb25seSB3cml0ZSBhIFN0cmlu
ZyB0byB0aGUgcGFzdGVib2FyZCBjb3JyZXNwb25kaW5nIHRvCisgICAgICAgIGtVVFR5cGVVUkwu
IFRoaXMgbWVhbnMgcmljaGVyIGRhdGEgYXNzb2NpYXRlZCB3aXRoIHRoZSBsaW5rIChpbiB0aGlz
IGNhc2UsIHRoZSB0aXRsZSkgYXJlIG5vdCBjYXB0dXJlZCB3aGVuCisgICAgICAgIHdyaXRpbmcg
dG8gdGhlIHBhc3RlYm9hcmQuIFRvIGFkZHJlc3MgdGhpcywgd2UgaW50cm9kdWNlIGEgbmV3IGNv
ZGVwYXRoIGZvciB3cml0aW5nIGxpbmtzIHRvIHRoZSBwYXN0ZWJvYXJkIHRoYXQKKyAgICAgICAg
bWlycm9ycyB0aGUgd2F5IFBhc3RlYm9hcmRJbWFnZSBhbmQgUGFzdGVib2FyZFdlYkNvbnRlbnQg
YXJlIHdyaXR0ZW4gdG8gdGhlIHBhc3RlYm9hcmQuCisKKyAgICAgICAgVGVzdDogQXVnbWVudGVk
IERhdGFJbnRlcmFjdGlvblRlc3RzLkxpbmtUb0lucHV0LgorCisgICAgICAgICogcGxhdGZvcm0v
UGFzdGVib2FyZFN0cmF0ZWd5Lmg6CisgICAgICAgICogcGxhdGZvcm0vUGxhdGZvcm1QYXN0ZWJv
YXJkLmg6CisKKyAgICAgICAgQWRkIHBsdW1iaW5nIHN1cHBvcnQgZm9yIHdyaXRpbmcgUGFzdGVi
b2FyZFVSTHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvUGFzdGVib2FyZElPUy5tbToKKyAg
ICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OndyaXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9p
b3MvUGxhdGZvcm1QYXN0ZWJvYXJkSU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1Q
YXN0ZWJvYXJkOjp3cml0ZU9iamVjdFJlcHJlc2VudGF0aW9ucyk6CisKKyAgICAgICAgVGVhY2gg
UGxhdGZvcm1QYXN0ZWJvYXJkIHRvIGFsc28gc2V0IHRoZSBfdGl0bGUgYXR0cmlidXRlIG9mIHRo
ZSBOU1VSTCB3aGVuIGNyZWF0aW5nIGFuIE5TVVJMIHJlcHJlc2VudGF0aW9uCisgICAgICAgIGZv
ciByZWdpc3RlcmluZyB3aXRoIHRoZSBzaGFyZWQgV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZC4K
KworICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1QYXN0ZWJvYXJkOjp3cml0ZSk6CisgICAgICAg
ICogcGxhdGZvcm0vaW9zL1dlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQubW06CisKKyAgICAgICAg
UmVtb3ZlIGRlcHJlY2F0aW9uIGd1YXJkcyBhbmQgcmVwbGFjZSBkZXByZWNhdGVkIG1ldGhvZCBj
YWxscyB3aXRoIHRoZSBsYXRlc3QgdW5kZXByZWNhdGVkIHZlcnNpb25zLgorCisgICAgICAgICgt
W1dlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQgc2V0SXRlbXNGcm9tT2JqZWN0UmVwcmVzZW50YXRp
b25zOl0pOgorCiAyMDE3LTA0LTIxICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUu
Y29tPgogCiAgICAgICAgIFtNZWRpYVN0cmVhbSBpT1NdIFJlbGVhc2UgY2FwdHVyZSBzZXNzaW9u
IHdoZW4gbm90IHByb2R1Y2luZyBkYXRhCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggZDc0ODRiN2FhZjcw
ZjU5OWQ1NzI1OThiODViYmNiMzZiMTlhYjQyZi4uZTc3OGVkYjZjNTAwOTk4YTlkNDRkZWMxZjZk
NTUxZWU5OGVkMzAzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE3LTA0
LTIxICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFN1
cHBvcnQgd3JpdGluZyBsaW5rIHRpdGxlcyB0byB0aGUgcGFzdGVib2FyZCB3aGVuIGJlZ2lubmlu
ZyBkYXRhIGludGVyYWN0aW9uIG9uIGEgbGluaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxMTU0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMTM1
NjkzNz4KKworICAgICAgICBSZXZpZXdlZCBieSBBbmR5IEVzdGVzLgorCisgICAgICAgIEFkanVz
dCBmb3Igc29tZSBjaGFuZ2VzIGluIFdlYkNvcmUgdG8gaW50cm9kdWNlIGEgc2VwYXJhdGUgY29k
ZXBhdGggZm9yIHdyaXRpbmcgUGFzdGVib2FyZFVSTHMuIFNlZSBXZWJDb3JlCisgICAgICAgIGFu
ZCBXZWJLaXQyIENoYW5nZUxvZ3MgZm9yIG1vcmUgZGV0YWlscy4KKworICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oOgorICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5tbToKKyAgICAgICAgKFdlYlBsYXRmb3JtU3RyYXRl
Z2llczo6d3JpdGVUb1Bhc3RlYm9hcmQpOgorCiAyMDE3LTA0LTIxICBBbGV4IENocmlzdGVuc2Vu
ICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVkdWNlIGNvcGllcyBhbmQg
YWxsb2NhdGlvbnMgaW4gU2hhcmVkQnVmZmVyOjphcHBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAyMDU0NGNi
YjhhYjE4NzdmMmUzOTRjMGJkMmIzZmM3NDM4M2ZhOTMzLi4zNGQzZjNjMzBhYmEwMzJhMmQyYTg2
NWI5MmYxOTJlMjEyNWYwYzQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzYgQEAKIDIwMTctMDQt
MjEgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKKyAgICAgICAgU3Vw
cG9ydCB3cml0aW5nIGxpbmsgdGl0bGVzIHRvIHRoZSBwYXN0ZWJvYXJkIHdoZW4gYmVnaW5uaW5n
IGRhdGEgaW50ZXJhY3Rpb24gb24gYSBsaW5rCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNzExNTQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMxMzU2
OTM3PgorCisgICAgICAgIFJldmlld2VkIGJ5IEFuZHkgRXN0ZXMuCisKKyAgICAgICAgQWRkcyBz
dXBwb3J0IGZvciBzZXR0aW5nIHRoZSBfdGl0bGUgYXR0cmlidXRlIG9mIE5TVVJMcyB3cml0dGVu
IHRvIHRoZSBwYXN0ZWJvYXJkLiBTZWUgV2ViQ29yZSBDaGFuZ2VMb2cgZm9yIG1vcmUgZGV0YWls
cy4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAoaGVh
ZGVyc19mb3JfdHlwZSk6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5j
cHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8UGFzdGVib2FyZFVSTD46OmVuY29kZSk6
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8UGFzdGVib2FyZFVSTD46OmRlY29kZSk6Cisg
ICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgorCisgICAgICAgIFRlYWNo
IFBhc3RlYm9hcmRVUkwgdG8gYmUgc2VyaWFsaXplZCBpbiBJUEMuIEZvciBub3csIHdlIGp1c3Qg
c2VuZCBhY3Jvc3MgdGhlIGFic29sdXRlIHN0cmluZyBvZiB0aGUgbGluayBhbmQKKyAgICAgICAg
aXRzIHRpdGxlLgorCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlBhc3RlYm9hcmRQcm94
eUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYXN0ZWJvYXJkUHJveHk6OndyaXRlVVJM
VG9QYXN0ZWJvYXJkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFzdGVib2FyZFByb3h5Lmg6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94eS5tZXNzYWdlcy5pbjoKKwor
ICAgICAgICBBZGQgSVBDIHBsdW1iaW5nIGZvciB3cml0aW5nIFBhc3RlYm9hclVSTHMgdG8gdGhl
IHBhc3RlYm9hcmQuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBs
YXRmb3JtU3RyYXRlZ2llcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtU3RyYXRl
Z2llczo6d3JpdGVUb1Bhc3RlYm9hcmQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmg6CisKKzIwMTctMDQtMjEgIFdlbnNvbiBIc2ll
aCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKICAgICAgICAgW1dLMl0gQWRkIGRlbGVnYXRl
IGhvb2tzIGZvciBvdmVycmlkaW5nIHVuaGFuZGVkIGRhdGEgaW50ZXJhY3Rpb24gb3BlcmF0aW9u
cwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxMDA1
CiAgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMTY2OTY0Nj4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmRTdHJhdGVneS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vUGFzdGVib2FyZFN0cmF0ZWd5LmgKaW5kZXggZTg4YTQ4OTExODM2NTQ5NDQ4ZmRjZjVm
NGE0NTdiMjQyZDdmNzYyYy4uYzJhNjM0NzQ5NWYwOGNjZDAxZThlN2MwYWY2MDBjMWQ2MTBiMjlh
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZFN0cmF0ZWd5
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZFN0cmF0ZWd5LmgKQEAg
LTM3LDExICszNywxMyBAQCBjbGFzcyBTZWxlY3Rpb25EYXRhOwogY2xhc3MgU2hhcmVkQnVmZmVy
OwogY2xhc3MgVVJMOwogc3RydWN0IFBhc3RlYm9hcmRJbWFnZTsKK3N0cnVjdCBQYXN0ZWJvYXJk
VVJMOwogc3RydWN0IFBhc3RlYm9hcmRXZWJDb250ZW50OwogCiBjbGFzcyBQYXN0ZWJvYXJkU3Ry
YXRlZ3kgewogcHVibGljOgogI2lmIFBMQVRGT1JNKElPUykKKyAgICB2aXJ0dWFsIHZvaWQgd3Jp
dGVUb1Bhc3RlYm9hcmQoY29uc3QgUGFzdGVib2FyZFVSTCYsIGNvbnN0IFN0cmluZyYgcGFzdGVi
b2FyZE5hbWUpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgd3JpdGVUb1Bhc3RlYm9hcmQoY29uc3Qg
UGFzdGVib2FyZFdlYkNvbnRlbnQmLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKSA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIHdyaXRlVG9QYXN0ZWJvYXJkKGNvbnN0IFBhc3RlYm9hcmRJbWFn
ZSYsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
d3JpdGVUb1Bhc3RlYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3Ry
aW5nJiwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkgPSAwOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1QYXN0ZWJvYXJkLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9QbGF0Zm9ybVBhc3RlYm9hcmQuaAppbmRleCAzN2E3OTE4M2Y2Y2Y5YjQxZjg0
ZjhiMGE2N2FkN2JkOGIwM2E0MzZhLi43OTIzYzJmNmI3NTlmYTIyOTk3NTNkNjgxYTkzMGE5ZGU0
NDgzMGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVBhc3Rl
Ym9hcmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVBhc3RlYm9hcmQu
aApAQCAtNDcsNiArNDcsNyBAQCBjbGFzcyBTZWxlY3Rpb25EYXRhOwogY2xhc3MgU2hhcmVkQnVm
ZmVyOwogY2xhc3MgVVJMOwogc3RydWN0IFBhc3RlYm9hcmRJbWFnZTsKK3N0cnVjdCBQYXN0ZWJv
YXJkVVJMOwogc3RydWN0IFBhc3RlYm9hcmRXZWJDb250ZW50OwogCiBjbGFzcyBQbGF0Zm9ybVBh
c3RlYm9hcmQgewpAQCAtNzgsNiArNzksNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCB3cml0ZShjb25zdCBQYXN0ZWJvYXJkV2ViQ29udGVudCYpOwogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgd3JpdGUoY29uc3QgUGFzdGVib2FyZEltYWdlJik7CiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCB3cml0ZShjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBjb25zdCBTdHJpbmcm
KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHdyaXRlKGNvbnN0IFBhc3RlYm9hcmRVUkwmKTsK
ICAgICBXRUJDT1JFX0VYUE9SVCBSZWZQdHI8U2hhcmVkQnVmZmVyPiByZWFkQnVmZmVyKGludCBp
bmRleCwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSk7CiAgICAgV0VCQ09SRV9FWFBPUlQg
U3RyaW5nIHJlYWRTdHJpbmcoaW50IGluZGV4LCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBl
KTsKICAgICBXRUJDT1JFX0VYUE9SVCBVUkwgcmVhZFVSTChpbnQgaW5kZXgsIGNvbnN0IFN0cmlu
ZyYgcGFzdGVib2FyZFR5cGUpOwpAQCAtOTQsNiArOTYsNyBAQCBwcml2YXRlOgogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgd3JpdGVPYmplY3RSZXByZXNlbnRhdGlvbnMoY29uc3QgUGFzdGVib2Fy
ZFdlYkNvbnRlbnQmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHdyaXRlT2JqZWN0UmVwcmVz
ZW50YXRpb25zKGNvbnN0IFBhc3RlYm9hcmRJbWFnZSYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgd3JpdGVPYmplY3RSZXByZXNlbnRhdGlvbnMoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlw
ZSwgY29uc3QgU3RyaW5nJiB0ZXh0KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHdyaXRlT2Jq
ZWN0UmVwcmVzZW50YXRpb25zKGNvbnN0IFBhc3RlYm9hcmRVUkwmKTsKICNlbmRpZgogCiAjaWYg
UExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1Bh
c3RlYm9hcmRJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGFzdGVib2FyZElP
Uy5tbQppbmRleCA3MjliMGQ1ZDQ5MGM5MTE4YzlkZmZjOWI2NzllNzliYTZhZDRkZjZiLi44MTM1
ZTIzOGIwOTI3M2JlZWFmMTc4NmEyNTcyMGU1ZjcxNzA1MmYyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGFzdGVib2FyZElPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvUGFzdGVib2FyZElPUy5tbQpAQCAtMTI2LDcgKzEyNiw3IEBAIHZvaWQg
UGFzdGVib2FyZDo6d3JpdGVQbGFpblRleHQoY29uc3QgU3RyaW5nJiB0ZXh0LCBTbWFydFJlcGxh
Y2VPcHRpb24pCiAKIHZvaWQgUGFzdGVib2FyZDo6d3JpdGUoY29uc3QgUGFzdGVib2FyZFVSTCYg
cGFzdGVib2FyZFVSTCkKIHsKLSAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0
cmF0ZWd5KCktPndyaXRlVG9QYXN0ZWJvYXJkKGtVVFR5cGVVUkwsIHBhc3RlYm9hcmRVUkwudXJs
LnN0cmluZygpLCBtX3Bhc3RlYm9hcmROYW1lKTsKKyAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+
cGFzdGVib2FyZFN0cmF0ZWd5KCktPndyaXRlVG9QYXN0ZWJvYXJkKHBhc3RlYm9hcmRVUkwsIG1f
cGFzdGVib2FyZE5hbWUpOwogfQogCiB2b2lkIFBhc3RlYm9hcmQ6OndyaXRlVHJ1c3R3b3J0aHlX
ZWJVUkxzUGJvYXJkVHlwZShjb25zdCBQYXN0ZWJvYXJkVVJMJikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybVBhc3RlYm9hcmRJT1MubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1QYXN0ZWJvYXJkSU9TLm1tCmluZGV4IDMxNzhj
NGZhNTVmOWMwZjhhZjg2ZmEzZGQ3MTM2NTQ3MjU2YTAyZTMuLmFiMWJlODNjYjcwZWJhNGE3NTFi
NzdhNmRkNGU4MzhjMjIyMzE0MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9QbGF0Zm9ybVBhc3RlYm9hcmRJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL1BsYXRmb3JtUGFzdGVib2FyZElPUy5tbQpAQCAtMzUsMjAgKzM1LDE2IEBACiAjaW1w
b3J0ICJXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkLmgiCiAjaW1wb3J0IDxNb2JpbGVDb3JlU2Vy
dmljZXMvTW9iaWxlQ29yZVNlcnZpY2VzLmg+CiAjaW1wb3J0IDxVSUtpdC9VSUltYWdlLmg+Cisj
aW1wb3J0IDxVSUtpdC9VSVBhc3RlYm9hcmQuaD4KKworI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNU
SU9OKQorI2ltcG9ydCA8VUlLaXQvTlNVUkwrVUlJdGVtUHJvdmlkZXIuaD4KKyNlbmRpZgogCiBT
T0ZUX0xJTktfRlJBTUVXT1JLKFVJS2l0KQogU09GVF9MSU5LX0NMQVNTKFVJS2l0LCBVSUltYWdl
KQogU09GVF9MSU5LX0NMQVNTKFVJS2l0LCBVSVBhc3RlYm9hcmQpCiAKLUBpbnRlcmZhY2UgVUlQ
YXN0ZWJvYXJkCi0rIChVSVBhc3RlYm9hcmQgKilnZW5lcmFsUGFzdGVib2FyZDsKLS0gKHZvaWQp
c2V0SXRlbXM6KE5TQXJyYXkgKilpdGVtczsKLUBwcm9wZXJ0eShyZWFkb25seSxub25hdG9taWMp
IE5TSW50ZWdlciBudW1iZXJPZkl0ZW1zOwotLSAoTlNBcnJheSAqKWRhdGFGb3JQYXN0ZWJvYXJk
VHlwZTooTlNTdHJpbmcgKilwYXN0ZWJvYXJkVHlwZSBpbkl0ZW1TZXQ6KE5TSW5kZXhTZXQgKilp
dGVtU2V0OwotLSAoTlNBcnJheSAqKXZhbHVlc0ZvclBhc3RlYm9hcmRUeXBlOihOU1N0cmluZyAq
KXBhc3RlYm9hcmRUeXBlIGluSXRlbVNldDooTlNJbmRleFNldCAqKWl0ZW1TZXQ7Ci0tIChOU0lu
dGVnZXIpY2hhbmdlQ291bnQ7Ci1AZW5kCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUGxhdGZv
cm1QYXN0ZWJvYXJkOjpQbGF0Zm9ybVBhc3RlYm9hcmQoKQpAQCAtMjk1LDYgKzI5MSwzMSBAQCB2
b2lkIFBsYXRmb3JtUGFzdGVib2FyZDo6d3JpdGUoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlw
ZSwgY29uc3QgU3RyaW5nJiB0ZXh0KQogICAgIFttX3Bhc3RlYm9hcmQgc2V0SXRlbXM6QFtyZXBy
ZXNlbnRhdGlvbnMuZ2V0KCldXTsKIH0KIAordm9pZCBQbGF0Zm9ybVBhc3RlYm9hcmQ6OndyaXRl
T2JqZWN0UmVwcmVzZW50YXRpb25zKGNvbnN0IFBhc3RlYm9hcmRVUkwmIHVybCkKK3sKKyAgICBh
dXRvIG9iamVjdFJlcHJlc2VudGF0aW9ucyA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxv
Y10gaW5pdF0pOworCisgICAgaWYgKE5TVVJMICpuc1VSTCA9IHVybC51cmwpIHsKKyAgICAgICAg
W29iamVjdFJlcHJlc2VudGF0aW9ucyBhZGRPYmplY3Q6bnNVUkxdOworI2lmIEVOQUJMRShEQVRB
X0lOVEVSQUNUSU9OKQorICAgICAgICBpZiAoIXVybC50aXRsZS5pc0VtcHR5KCkpCisgICAgICAg
ICAgICBuc1VSTC5fdGl0bGUgPSB1cmwudGl0bGU7CisjZW5kaWYKKyAgICB9CisKKyAgICBbbV9w
YXN0ZWJvYXJkIHNldEl0ZW1zRnJvbU9iamVjdFJlcHJlc2VudGF0aW9uczpAW1tXZWJQYXN0ZWJv
YXJkSXRlbURhdGEgaXRlbVdpdGhSZXByZXNlbnRpbmdPYmplY3RzOm9iamVjdFJlcHJlc2VudGF0
aW9ucy5nZXQoKSBhZGRpdGlvbmFsRGF0YTpuaWxdXV07Cit9CisKK3ZvaWQgUGxhdGZvcm1QYXN0
ZWJvYXJkOjp3cml0ZShjb25zdCBQYXN0ZWJvYXJkVVJMJiB1cmwpCit7CisgICAgaWYgKFttX3Bh
c3RlYm9hcmQgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihzZXRJdGVtc0Zyb21PYmplY3RS
ZXByZXNlbnRhdGlvbnM6KV0pIHsKKyAgICAgICAgd3JpdGVPYmplY3RSZXByZXNlbnRhdGlvbnMo
dXJsKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHdyaXRlKGtVVFR5cGVVUkwsIHVy
bC51cmwuc3RyaW5nKCkpOworfQorCiBpbnQgUGxhdGZvcm1QYXN0ZWJvYXJkOjpjb3VudCgpCiB7
CiAgICAgcmV0dXJuIFttX3Bhc3RlYm9hcmQgbnVtYmVyT2ZJdGVtc107CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZC5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkLm1t
CmluZGV4IDdhYjE2NDk4ZWU3MjIwZTllZmUzNmJiOTVlYTMxMWUwZDZhOGQyZDEuLjA2MGY1MmMy
NGNhMjAxMGVhYmE3ZDlhMWZiYmEzZjk1MzIzOWI0OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2lvcy9XZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkLm1tCkBAIC0z
Miw2ICszMiw3IEBACiAjaW1wb3J0ICJVSUtpdFNQSS5oIgogI2ltcG9ydCA8Rm91bmRhdGlvbi9O
U1Byb2dyZXNzLmg+CiAjaW1wb3J0IDxNb2JpbGVDb3JlU2VydmljZXMvTW9iaWxlQ29yZVNlcnZp
Y2VzLmg+CisjaW1wb3J0IDxVSUtpdC9OU1VSTCtVSUl0ZW1Qcm92aWRlci5oPgogI2ltcG9ydCA8
VUlLaXQvVUlDb2xvci5oPgogI2ltcG9ydCA8VUlLaXQvVUlJbWFnZS5oPgogI2ltcG9ydCA8VUlL
aXQvVUlJdGVtUHJvdmlkZXJXcml0aW5nLmg+CkBAIC00NSw2ICs0Niw4IEBAIFNPRlRfTElOS19D
TEFTUyhVSUtpdCwgVUlDb2xvcikKIFNPRlRfTElOS19DTEFTUyhVSUtpdCwgVUlJbWFnZSkKIFNP
RlRfTElOS19DTEFTUyhVSUtpdCwgVUlJdGVtUHJvdmlkZXIpCiAKK3R5cGVkZWYgdm9pZCheSXRl
bVByb3ZpZGVyRGF0YUxvYWRDb21wbGV0aW9uSGFuZGxlcikoTlNEYXRhICosIE5TRXJyb3IgKik7
CisKICNkZWZpbmUgTUFUQ0hFU19VVElfVFlQRSh0eXBlLCBzdWZmaXgpIFt0eXBlIGlzRXF1YWxU
b1N0cmluZzooX19icmlkZ2UgTlNTdHJpbmcgKilrVVRUeXBlICMjIHN1ZmZpeF0KICNkZWZpbmUg
TUFUQ0hFU19VSUtJVF9UWVBFKHR5cGUsIHN1ZmZpeCkgW3R5cGUgaXNFcXVhbFRvU3RyaW5nOkAi
Y29tLmFwcGxlLnVpa2l0LiAjIyBzdWZmaXggIyMiXQogCkBAIC0xNTcsMTUgKzE2MCwxMyBAQCBz
dGF0aWMgQk9PTCBpc0ltYWdlVHlwZShOU1N0cmluZyAqdHlwZSkKICAgICAgICAgaWYgKCFkYXRh
LnJlcHJlc2VudGluZ09iamVjdHMuY291bnQgJiYgIWRhdGEuYWRkaXRpb25hbERhdGEuY291bnQp
CiAgICAgICAgICAgICBjb250aW51ZTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgogICAgICAgICBSZXRhaW5QdHI8VUlJdGVtUHJvdmlkZXI+IGl0ZW1Qcm92aWRlciA9IGFk
b3B0TlMoW1tnZXRVSUl0ZW1Qcm92aWRlckNsYXNzKCkgYWxsb2NdIGluaXRdKTsKICAgICAgICAg
Ly8gRmlyc3QsIHJlZ2lzdGVyIGFsbCBwbGF0Zm9ybSBvYmplY3RzLCBwcmlvcml0aXppbmcgb2Jq
ZWN0cyBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBhcnJheS4KICAgICAgICAgZm9yIChpZCByZXBy
ZXNlbnRpbmdPYmplY3QgaW4gZGF0YS5yZXByZXNlbnRpbmdPYmplY3RzKSB7CiAgICAgICAgICAg
ICBpZiAoIVtyZXByZXNlbnRpbmdPYmplY3QgY29uZm9ybXNUb1Byb3RvY29sOkBwcm90b2NvbChV
SUl0ZW1Qcm92aWRlcldyaXRpbmcpXSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAotICAg
ICAgICAgICAgW2l0ZW1Qcm92aWRlciByZWdpc3Rlck9iamVjdDooaWQgPFVJSXRlbVByb3ZpZGVy
V3JpdGluZz4pcmVwcmVzZW50aW5nT2JqZWN0IG9wdGlvbnM6bmlsXTsKKyAgICAgICAgICAgIFtp
dGVtUHJvdmlkZXIgcmVnaXN0ZXJPYmplY3Q6KGlkIDxVSUl0ZW1Qcm92aWRlcldyaXRpbmc+KXJl
cHJlc2VudGluZ09iamVjdCB2aXNpYmlsaXR5OlVJSXRlbVByb3ZpZGVyUmVwcmVzZW50YXRpb25P
cHRpb25zVmlzaWJpbGl0eUFsbF07CiAgICAgICAgIH0KIAogICAgICAgICAvLyBOZXh0LCByZWdp
c3RlciBvdGhlciBjdXN0b20gZGF0YSByZXByZXNlbnRhdGlvbnMgZm9yIHR5cGUgaWRlbnRpZmll
cnMuCkBAIC0xNzQsMTQgKzE3NSwxMyBAQCBzdGF0aWMgQk9PTCBpc0ltYWdlVHlwZShOU1N0cmlu
ZyAqdHlwZSkKICAgICAgICAgICAgIGlmICghW2FkZGl0aW9uYWxEYXRhW3R5cGVJZGVudGlmaWVy
XSBpc0tpbmRPZkNsYXNzOltOU0RhdGEgY2xhc3NdXSkKICAgICAgICAgICAgICAgICBjb250aW51
ZTsKIAotICAgICAgICAgICAgW2l0ZW1Qcm92aWRlciByZWdpc3RlckRhdGFSZXByZXNlbnRhdGlv
bkZvclR5cGVJZGVudGlmaWVyOnR5cGVJZGVudGlmaWVyIG9wdGlvbnM6bmlsIGxvYWRIYW5kbGVy
Ol5OU1Byb2dyZXNzICooVUlJdGVtUHJvdmlkZXJEYXRhTG9hZENvbXBsZXRpb25CbG9jayBjb21w
bGV0aW9uQmxvY2spCisgICAgICAgICAgICBbaXRlbVByb3ZpZGVyIHJlZ2lzdGVyRGF0YVJlcHJl
c2VudGF0aW9uRm9yVHlwZUlkZW50aWZpZXI6dHlwZUlkZW50aWZpZXIgdmlzaWJpbGl0eTpVSUl0
ZW1Qcm92aWRlclJlcHJlc2VudGF0aW9uT3B0aW9uc1Zpc2liaWxpdHlBbGwgbG9hZEhhbmRsZXI6
Xk5TUHJvZ3Jlc3MgKihJdGVtUHJvdmlkZXJEYXRhTG9hZENvbXBsZXRpb25IYW5kbGVyIGNvbXBs
ZXRpb25IYW5kbGVyKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGNvbXBsZXRpb25C
bG9jayhhZGRpdGlvbmFsRGF0YVt0eXBlSWRlbnRpZmllcl0sIG5pbCk7CisgICAgICAgICAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoYWRkaXRpb25hbERhdGFbdHlwZUlkZW50aWZpZXJdLCBuaWwp
OwogICAgICAgICAgICAgICAgIHJldHVybiBbTlNQcm9ncmVzcyBkaXNjcmV0ZVByb2dyZXNzV2l0
aFRvdGFsVW5pdENvdW50OjEwMF07CiAgICAgICAgICAgICB9XTsKICAgICAgICAgfQogICAgICAg
ICBbcHJvdmlkZXJzIGFkZE9iamVjdDppdGVtUHJvdmlkZXIuZ2V0KCldOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAogICAgIH0KIAogICAgIHNlbGYuaXRlbVByb3ZpZGVycyA9IHByb3Zp
ZGVyczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBs
YXRmb3JtU3RyYXRlZ2llcy5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
UGxhdGZvcm1TdHJhdGVnaWVzLmgKaW5kZXggMDRmYzc0MzA2OGI2OTg4NWFiY2Y4ZDlmMjNmZDli
ZmU3YzI2MWQzNi4uMDQzNmIzMzI1ZDRkYmQxZWQzMzk0MGI1ZWY1NjM4YzZjYjE4ZjNjMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJh
dGVnaWVzLmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZv
cm1TdHJhdGVnaWVzLmgKQEAgLTU4LDYgKzU4LDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIFdlYkNv
cmU6OlBhc3RlYm9hcmRTdHJhdGVneQogI2lmIFBMQVRGT1JNKElPUykKKyAgICB2b2lkIHdyaXRl
VG9QYXN0ZWJvYXJkKGNvbnN0IFdlYkNvcmU6OlBhc3RlYm9hcmRVUkwmLCBjb25zdCBTdHJpbmcm
IHBhc3RlYm9hcmROYW1lKSBvdmVycmlkZTsKICAgICB2b2lkIHdyaXRlVG9QYXN0ZWJvYXJkKGNv
bnN0IFdlYkNvcmU6OlBhc3RlYm9hcmRXZWJDb250ZW50JiwgY29uc3QgU3RyaW5nJiBwYXN0ZWJv
YXJkTmFtZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCB3cml0ZVRvUGFzdGVib2FyZChjb25zdCBXZWJD
b3JlOjpQYXN0ZWJvYXJkSW1hZ2UmLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKSBvdmVy
cmlkZTsKICAgICB2b2lkIHdyaXRlVG9QYXN0ZWJvYXJkKGNvbnN0IFN0cmluZyYgcGFzdGVib2Fy
ZFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpIG92ZXJy
aWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxh
dGZvcm1TdHJhdGVnaWVzLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
UGxhdGZvcm1TdHJhdGVnaWVzLm1tCmluZGV4IDc1YmI4ZjA3YjViZTJhYzViYjc2ZmVkNDIzMjc2
ZTQxYjg0NDQ5MzkuLjdlOWJiNDRiMmY1MGE4Y2E3NDgyZjcwNWE2ZmE1NzA2M2JiMWRkNDUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3Ry
YXRlZ2llcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0
Zm9ybVN0cmF0ZWdpZXMubW0KQEAgLTE4Niw2ICsxODYsMTEgQEAgaW50IFdlYlBsYXRmb3JtU3Ry
YXRlZ2llczo6Z2V0TnVtYmVyT2ZGaWxlcyhjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKQog
fQogCiAjaWYgUExBVEZPUk0oSU9TKQordm9pZCBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OndyaXRl
VG9QYXN0ZWJvYXJkKGNvbnN0IFBhc3RlYm9hcmRVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBwYXN0
ZWJvYXJkTmFtZSkKK3sKKyAgICBQbGF0Zm9ybVBhc3RlYm9hcmQocGFzdGVib2FyZE5hbWUpLndy
aXRlKHVybCk7Cit9CisKIHZvaWQgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjp3cml0ZVRvUGFzdGVi
b2FyZChjb25zdCBXZWJDb3JlOjpQYXN0ZWJvYXJkV2ViQ29udGVudCYgY29udGVudCwgY29uc3Qg
U3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkKIHsKICAgICBQbGF0Zm9ybVBhc3RlYm9hcmQocGFzdGVi
b2FyZE5hbWUpLndyaXRlKGNvbnRlbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2Ny
aXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdC9t
ZXNzYWdlcy5weQppbmRleCAxZWM4ZWY3NTlkMTdjMGIwZmFmNWE0ZmRjODAyNDkwNWM0NzhiYzQ3
Li42Zjg2ZTA1MTg5NzgyY2UxODY1Y2JmMGJlZjk0ZTQ2OGY4MDZiODcxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpAQCAtMzU4LDYgKzM1OCw3IEBAIGRlZiBo
ZWFkZXJzX2Zvcl90eXBlKHR5cGUpOgogICAgICAgICAnV2ViQ29yZTo6S2V5cHJlc3NDb21tYW5k
JzogWyc8V2ViQ29yZS9LZXlib2FyZEV2ZW50Lmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpNZWRp
YUNvbnN0cmFpbnRzRGF0YSc6IFsnPFdlYkNvcmUvTWVkaWFDb25zdHJhaW50c0ltcGwuaD4nXSwK
ICAgICAgICAgJ1dlYkNvcmU6OlBhc3RlYm9hcmRJbWFnZSc6IFsnPFdlYkNvcmUvUGFzdGVib2Fy
ZC5oPiddLAorICAgICAgICAnV2ViQ29yZTo6UGFzdGVib2FyZFVSTCc6IFsnPFdlYkNvcmUvUGFz
dGVib2FyZC5oPiddLAogICAgICAgICAnV2ViQ29yZTo6UGFzdGVib2FyZFdlYkNvbnRlbnQnOiBb
JzxXZWJDb3JlL1Bhc3RlYm9hcmQuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlBheW1lbnRBdXRo
b3JpemF0aW9uUmVzdWx0JzogWyc8V2ViQ29yZS9QYXltZW50UmVxdWVzdC5oPiddLAogICAgICAg
ICAnV2ViQ29yZTo6UGF5bWVudE1ldGhvZFVwZGF0ZSc6IFsnPFdlYkNvcmUvUGF5bWVudFJlcXVl
c3QuaD4nXSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1l
bnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5jcHAKaW5kZXggNThhYWVjMzFmZTNjNWM0MzgwOTI2Zjk4Y2EzZjM0ZTY4ZGY2MDc1Yi4uMDYy
Y2Q0YzI1ZDRmN2Q4Njg3ZjJmNjUxMGM1M2U2ZWY4N2NhOTQ0ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTE0MDUsNiArMTQwNSwy
MyBAQCBzdGF0aWMgYm9vbCBkZWNvZGVTaGFyZWRCdWZmZXIoRGVjb2RlciYgZGVjb2RlciwgUmVm
UHRyPFNoYXJlZEJ1ZmZlcj4mIGJ1ZmZlcikKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAordm9pZCBB
cmd1bWVudENvZGVyPFBhc3RlYm9hcmRVUkw+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29u
c3QgUGFzdGVib2FyZFVSTCYgY29udGVudCkKK3sKKyAgICBlbmNvZGVyIDw8IGNvbnRlbnQudXJs
OworICAgIGVuY29kZXIgPDwgY29udGVudC50aXRsZTsKK30KKworYm9vbCBBcmd1bWVudENvZGVy
PFBhc3RlYm9hcmRVUkw+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgUGFzdGVib2FyZFVSTCYg
Y29udGVudCkKK3sKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGNvbnRlbnQudXJsKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShjb250ZW50LnRpdGxl
KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKIHZvaWQg
QXJndW1lbnRDb2RlcjxQYXN0ZWJvYXJkV2ViQ29udGVudD46OmVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyLCBjb25zdCBQYXN0ZWJvYXJkV2ViQ29udGVudCYgY29udGVudCkKIHsKICAgICBlbmNvZGVy
IDw8IGNvbnRlbnQuY2FuU21hcnRDb3B5T3JEZWxldGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXggNGE2MzY5YmEyOWY2ZGFhNTFmZWM4ZDU2
MzVmYzE0ZWM1N2M5MTA4NS4uZWFkY2ZmMGVjZWVlMWVjNTM3YWU2N2I5YWRiMjUxMWUxN2E1NTky
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaApA
QCAtOTMsNiArOTMsNyBAQCBzdHJ1Y3QgTGVuZ3RoOwogc3RydWN0IEdyYW1tYXJEZXRhaWw7CiBz
dHJ1Y3QgTWltZUNsYXNzSW5mbzsKIHN0cnVjdCBQYXN0ZWJvYXJkSW1hZ2U7CitzdHJ1Y3QgUGFz
dGVib2FyZFVSTDsKIHN0cnVjdCBQYXN0ZWJvYXJkV2ViQ29udGVudDsKIHN0cnVjdCBQbHVnaW5J
bmZvOwogc3RydWN0IFJlY2VudFNlYXJjaDsKQEAgLTM5NSw2ICszOTYsMTEgQEAgdGVtcGxhdGU8
PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpQYXN0ZWJvYXJkV2ViQ29udGVudD4gewog
ICAgIHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6UGFzdGVib2FyZFdlYkNv
bnRlbnQmKTsKIH07CiAKK3RlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6
UGFzdGVib2FyZFVSTD4geworICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3Qg
V2ViQ29yZTo6UGFzdGVib2FyZFVSTCYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVy
JiwgV2ViQ29yZTo6UGFzdGVib2FyZFVSTCYpOworfTsKKwogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJn
dW1lbnRDb2RlcjxXZWJDb3JlOjpQYXN0ZWJvYXJkSW1hZ2U+IHsKICAgICBzdGF0aWMgdm9pZCBl
bmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlBhc3RlYm9hcmRJbWFnZSYpOwogICAgIHN0
YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6UGFzdGVib2FyZEltYWdlJik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViUGFzdGVib2FyZFBy
b3h5Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViUGFzdGVib2Fy
ZFByb3h5Q29jb2EubW0KaW5kZXggNmFhYjk5OWRkMzliMWJkNzMyM2I1YjRiZjY2Mzg5NzIyN2Jj
NjcxNC4uYjgzNjUxNjZmYjM4MjQ2Yzk5MWJjNjg3N2RjYzA4ZmJhNWU0ZmNhMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlBhc3RlYm9hcmRQcm94eUNvY29h
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJQYXN0ZWJvYXJkUHJv
eHlDb2NvYS5tbQpAQCAtMTQwLDYgKzE0MCwxMSBAQCB2b2lkIFdlYlBhc3RlYm9hcmRQcm94eTo6
Z2V0TnVtYmVyT2ZGaWxlcyhjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lLCB1aW50NjRfdAog
fQogCiAjaWYgUExBVEZPUk0oSU9TKQordm9pZCBXZWJQYXN0ZWJvYXJkUHJveHk6OndyaXRlVVJM
VG9QYXN0ZWJvYXJkKGNvbnN0IFBhc3RlYm9hcmRVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBwYXN0
ZWJvYXJkTmFtZSkKK3sKKyAgICBQbGF0Zm9ybVBhc3RlYm9hcmQocGFzdGVib2FyZE5hbWUpLndy
aXRlKHVybCk7Cit9CisKIHZvaWQgV2ViUGFzdGVib2FyZFByb3h5Ojp3cml0ZVdlYkNvbnRlbnRU
b1Bhc3RlYm9hcmQoY29uc3QgV2ViQ29yZTo6UGFzdGVib2FyZFdlYkNvbnRlbnQmIGNvbnRlbnQs
IGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpCiB7CiAgICAgUGxhdGZvcm1QYXN0ZWJvYXJk
KHBhc3RlYm9hcmROYW1lKS53cml0ZShjb250ZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHkuaAppbmRleCAyNjU1NzM2MWY1NThlOTY2NDA4NjQwZjU0
MDlkNjg4MmYyNWZlYzcwLi44NmI5MDJkZDQ3OGMxNjUwMWVkMzIzYTFjM2E1NzFiNmEzY2MzY2Vk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFzdGVib2FyZFByb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94eS5oCkBA
IC0zNiw2ICszNiw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDb2xvcjsKIHN0cnVj
dCBQYXN0ZWJvYXJkSW1hZ2U7CitzdHJ1Y3QgUGFzdGVib2FyZFVSTDsKIHN0cnVjdCBQYXN0ZWJv
YXJkV2ViQ29udGVudDsKIH0KIApAQCAtNjgsNiArNjksNyBAQCBwcml2YXRlOgogICAgIHZvaWQg
ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYsIHN0
ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+Jikgb3ZlcnJpZGU7CiAKICNpZiBQTEFURk9STShJ
T1MpCisgICAgdm9pZCB3cml0ZVVSTFRvUGFzdGVib2FyZChjb25zdCBXZWJDb3JlOjpQYXN0ZWJv
YXJkVVJMJiwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSk7CiAgICAgdm9pZCB3cml0ZVdl
YkNvbnRlbnRUb1Bhc3RlYm9hcmQoY29uc3QgV2ViQ29yZTo6UGFzdGVib2FyZFdlYkNvbnRlbnQm
LCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKTsKICAgICB2b2lkIHdyaXRlSW1hZ2VUb1Bh
c3RlYm9hcmQoY29uc3QgV2ViQ29yZTo6UGFzdGVib2FyZEltYWdlJiwgY29uc3QgU3RyaW5nJiBw
YXN0ZWJvYXJkTmFtZSk7CiAgICAgdm9pZCB3cml0ZVN0cmluZ1RvUGFzdGVib2FyZChjb25zdCBT
dHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmIHBhc3Rl
Ym9hcmROYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYXN0
ZWJvYXJkUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFz
dGVib2FyZFByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDczNmEwYWQ0NTFjZWNlNjQ0ZGRlODYzNmE2
MTVkZjYzNTllYzkxZGEuLjIxNDBmNjRkZWE0NmY2M2JjZDE0MTBhOWVhM2UxNWRlYWQxZTI1NjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHku
bWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQ
cm94eS5tZXNzYWdlcy5pbgpAQCAtMjIsNiArMjIsNyBAQAogCiBtZXNzYWdlcyAtPiBXZWJQYXN0
ZWJvYXJkUHJveHkgewogI2lmIFBMQVRGT1JNKElPUykKKyAgICBXcml0ZVVSTFRvUGFzdGVib2Fy
ZChzdHJ1Y3QgV2ViQ29yZTo6UGFzdGVib2FyZFVSTCB1cmwsIFN0cmluZyBwYXN0ZWJvYXJkTmFt
ZSkKICAgICBXcml0ZVdlYkNvbnRlbnRUb1Bhc3RlYm9hcmQoc3RydWN0IFdlYkNvcmU6OlBhc3Rl
Ym9hcmRXZWJDb250ZW50IGNvbnRlbnQsIFN0cmluZyBwYXN0ZWJvYXJkTmFtZSkKICAgICBXcml0
ZUltYWdlVG9QYXN0ZWJvYXJkKHN0cnVjdCBXZWJDb3JlOjpQYXN0ZWJvYXJkSW1hZ2UgcGFzdGVi
b2FyZEltYWdlLCBTdHJpbmcgcGFzdGVib2FyZE5hbWUpCiAgICAgV3JpdGVTdHJpbmdUb1Bhc3Rl
Ym9hcmQoU3RyaW5nIHBhc3RlYm9hcmRUeXBlLCBTdHJpbmcgdGV4dCwgU3RyaW5nIHBhc3RlYm9h
cmROYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCmluZGV4IDJlZGY0Yjc2
ZDU0NjRlMWRiNTY0ZDhiZDBkMzYzYWQ3MjBlN2MyZGMuLjhiYTczM2E1ZTM3YjE2MDg1NDUyOWEy
YzM0MjI3YTdmNWVlYjdmYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAK
QEAgLTI4Nyw2ICsyODcsMTEgQEAgaW50IFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Z2V0TnVtYmVy
T2ZGaWxlcyhjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKQogfQogCiAjaWYgUExBVEZPUk0o
SU9TKQordm9pZCBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OndyaXRlVG9QYXN0ZWJvYXJkKGNvbnN0
IFBhc3RlYm9hcmRVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkKK3sKKyAg
ICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5k
KE1lc3NhZ2VzOjpXZWJQYXN0ZWJvYXJkUHJveHk6OldyaXRlVVJMVG9QYXN0ZWJvYXJkKHVybCwg
cGFzdGVib2FyZE5hbWUpLCAwKTsKK30KKwogdm9pZCBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6Ondy
aXRlVG9QYXN0ZWJvYXJkKGNvbnN0IFdlYkNvcmU6OlBhc3RlYm9hcmRXZWJDb250ZW50JiBjb250
ZW50LCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKQogewogICAgIFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlBh
c3RlYm9hcmRQcm94eTo6V3JpdGVXZWJDb250ZW50VG9QYXN0ZWJvYXJkKGNvbnRlbnQsIHBhc3Rl
Ym9hcmROYW1lKSwgMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAppbmRleCBlNDM4
N2M5MzAyMTk4NGE4NTViMWE4Yzc0ZmVmYzhiNWJkNzc4NWMzLi43ZmUzNDkyODZmOTUxNTdiODA0
ZjU3YzI2ZDY1MWY2OGUwMDA1OGMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgK
QEAgLTYwLDYgKzYwLDcgQEAgcHJpdmF0ZToKICAgICAvLyBXZWJDb3JlOjpQYXN0ZWJvYXJkU3Ry
YXRlZ3kKICNpZiBQTEFURk9STShJT1MpCiAgICAgdm9pZCB3cml0ZVRvUGFzdGVib2FyZChjb25z
dCBXZWJDb3JlOjpQYXN0ZWJvYXJkV2ViQ29udGVudCYsIGNvbnN0IFN0cmluZyYgcGFzdGVib2Fy
ZE5hbWUpIG92ZXJyaWRlOworICAgIHZvaWQgd3JpdGVUb1Bhc3RlYm9hcmQoY29uc3QgV2ViQ29y
ZTo6IFBhc3RlYm9hcmRVUkwmLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKSBvdmVycmlk
ZTsKICAgICB2b2lkIHdyaXRlVG9QYXN0ZWJvYXJkKGNvbnN0IFdlYkNvcmU6OlBhc3RlYm9hcmRJ
bWFnZSYsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpIG92ZXJyaWRlOwogICAgIHZvaWQg
d3JpdGVUb1Bhc3RlYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3Ry
aW5nJiwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkgb3ZlcnJpZGU7CiAgICAgaW50IGdl
dFBhc3RlYm9hcmRJdGVtc0NvdW50KGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpIG92ZXJy
aWRlOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4
IGJjMTJmMWVhZDVhNDdkMDcyMWYxZWNiOTRmYzgyYzkwMzQxMzMyMTUuLjlkMzdmMjVlZDcyOTdl
NzQ3NmVlNTVmODQwYzQ0NmYzMzFjY2Y1YzYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZwor
KysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyMCBAQAogMjAxNy0wNC0yMSAgV2Vuc29u
IEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAorICAgICAgICBTdXBwb3J0IHdyaXRp
bmcgbGluayB0aXRsZXMgdG8gdGhlIHBhc3RlYm9hcmQgd2hlbiBiZWdpbm5pbmcgZGF0YSBpbnRl
cmFjdGlvbiBvbiBhIGxpbmsKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE3MTE1NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzEzNTY5Mzc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgQW5keSBFc3Rlcy4KKworICAgICAgICBBdWdtZW50cyBhbiBleGlz
dGluZyB1bml0IHRlc3QsIERhdGFJbnRlcmFjdGlvblRlc3RzLkxpbmtUb0lucHV0LCB0byBhbHNv
IGNoZWNrIHRoYXQgdGhlIGZldGNoaW5nIHRoZSBOU1VSTCBmcm9tCisgICAgICAgIHRoZSBzb3Vy
Y2UgVUlJdGVtUHJvdmlkZXIgZ2VuZXJhdGVkIGJ5IHBlcmZvcm1pbmcgZGF0YSBpbnRlcmFjdGlv
biByZXN1bHRzIGluIGFuIE5TVVJMIHdpdGggdGhlIF90aXRsZSBhdHRyaWJ1dGUKKyAgICAgICAg
bWF0Y2hpbmcgdGhlIHRpdGxlIG9mIHRoZSBsaW5rLgorCisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9pb3MvRGF0YUludGVyYWN0aW9uVGVzdHMubW06CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpURVNUKToKKworMjAxNy0wNC0yMSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFw
cGxlLmNvbT4KKwogICAgICAgICBbV0syXSBBZGQgZGVsZWdhdGUgaG9va3MgZm9yIG92ZXJyaWRp
bmcgdW5oYW5kZWQgZGF0YSBpbnRlcmFjdGlvbiBvcGVyYXRpb25zCiAgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzEwMDUKICAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzMxNjY5NjQ2PgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9p
b3MvRGF0YUludGVyYWN0aW9uVGVzdHMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lv
cy9EYXRhSW50ZXJhY3Rpb25UZXN0cy5tbQppbmRleCA2ZmJiNTQyNzkwNzBkMGZkM2M5YTFlNWQ3
MmUwMDI1MDBiNWI3NjU2Li43MGNjZDdlYTM1Y2U1MjJmZWI4YTVlNmZkMjk3NDA2N2YwZGZkNjgw
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9EYXRhSW50ZXJhY3Rp
b25UZXN0cy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9EYXRhSW50ZXJh
Y3Rpb25UZXN0cy5tbQpAQCAtMzIsNiArMzIsNyBAQAogI2ltcG9ydCAiVGVzdFdLV2ViVmlldy5o
IgogI2ltcG9ydCAiV0tXZWJWaWV3Q29uZmlndXJhdGlvbkV4dHJhcy5oIgogI2ltcG9ydCA8TW9i
aWxlQ29yZVNlcnZpY2VzL01vYmlsZUNvcmVTZXJ2aWNlcy5oPgorI2ltcG9ydCA8VUlLaXQvTlNV
UkwrVUlJdGVtUHJvdmlkZXIuaD4KICNpbXBvcnQgPFVJS2l0L1VJSXRlbVByb3ZpZGVyX1ByaXZh
dGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oPgogI2ltcG9ydCA8
V2ViS2l0L1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2YXRlLmg+CkBAIC0yNDcsNiArMjQ4LDE0
IEBAIFRFU1QoRGF0YUludGVyYWN0aW9uVGVzdHMsIExpbmtUb0lucHV0KQogCiAgICAgRVhQRUNU
X1dLX1NUUkVRKCJodHRwczovL3d3dy5hcHBsZS5jb20vIiwgW3dlYlZpZXcgZWRpdG9yVmFsdWVd
LlVURjhTdHJpbmcpOwogCisgICAgX19ibG9jayBib29sIGRvbmVMb2FkaW5nVVJMID0gZmFsc2U7
CisgICAgVUlJdGVtUHJvdmlkZXIgKnNvdXJjZUl0ZW1Qcm92aWRlciA9IFtkYXRhSW50ZXJhY3Rp
b25TaW11bGF0b3Igc291cmNlSXRlbVByb3ZpZGVyc10uZmlyc3RPYmplY3Q7CisgICAgW3NvdXJj
ZUl0ZW1Qcm92aWRlciBsb2FkT2JqZWN0T2ZDbGFzczpbTlNVUkwgY2xhc3NdIGNvbXBsZXRpb25I
YW5kbGVyOl4oTlNVUkwgKnVybCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgRVhQRUNUX1dL
X1NUUkVRKCJIZWxsbyB3b3JsZCIsIHVybC5fdGl0bGUuVVRGOFN0cmluZyA/OiAiIik7CisgICAg
ICAgIGRvbmVMb2FkaW5nVVJMID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmRvbmVMb2FkaW5nVVJMKTsKKwogICAgIE5TQXJyYXkgKm9ic2VydmVkRXZlbnRO
YW1lcyA9IFtkYXRhSW50ZXJhY3Rpb25TaW11bGF0b3Igb2JzZXJ2ZWRFdmVudE5hbWVzXTsKICAg
ICBFWFBFQ1RfVFJVRShbb2JzZXJ2ZWRFdmVudE5hbWVzIGNvbnRhaW5zT2JqZWN0OkRhdGFJbnRl
cmFjdGlvbkVudGVyRXZlbnROYW1lXSk7CiAgICAgRVhQRUNUX1RSVUUoW29ic2VydmVkRXZlbnRO
YW1lcyBjb250YWluc09iamVjdDpEYXRhSW50ZXJhY3Rpb25PdmVyRXZlbnROYW1lXSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>