<?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>221591</bug_id>
          
          <creation_ts>2021-02-08 19:19:29 -0800</creation_ts>
          <short_desc>Add API to disable HTTPS upgrade</short_desc>
          <delta_ts>2021-02-16 11:40:25 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>jer.noble</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>toyoshim</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>yutak</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1726928</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-02-08 19:19:29 -0800</bug_when>
    <thetext>Add API to disable HTTPS upgrade</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1726930</commentid>
    <comment_count>1</comment_count>
      <attachid>419669</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-02-08 19:28:12 -0800</bug_when>
    <thetext>Created attachment 419669
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1726942</commentid>
    <comment_count>2</comment_count>
      <attachid>419669</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2021-02-08 21:06:43 -0800</bug_when>
    <thetext>Comment on attachment 419669
Patch

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

r=me

&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebViewConfiguration.h:134
&gt; +/*! @abstract A Boolean value indicating whether HTTP requests to servers known to support HTTPS should be automatically upgraded to HTTPS requests.
&gt; + @discussion The default value is YES.
&gt; + */
&gt; +@property (nonatomic) BOOL upgradeCommonKnownRequestsToHTTPS WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA));

This property should probably go through API review.

I think &quot;upgradeKnownHostsToHTTPS&quot; might be a better name. I removed &quot;Common&quot; because common is not an clear threshold, and probably not the salient part of the feature. I changed &quot;Requests&quot; to &quot;Hosts&quot; because the feature is per-host.

This will get a little awkward if we ever offer API to disable HSTS. Oh well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728624</commentid>
    <comment_count>3</comment_count>
      <attachid>420141</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-02-12 10:11:21 -0800</bug_when>
    <thetext>Created attachment 420141
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1729523</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-02-15 19:20:16 -0800</bug_when>
    <thetext>&lt;rdar://problem/74375950&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1729833</commentid>
    <comment_count>5</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-02-16 11:40:25 -0800</bug_when>
    <thetext>http://trac.webkit.org/r272920</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419669</attachid>
            <date>2021-02-08 19:28:12 -0800</date>
            <delta_ts>2021-02-12 10:11:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221591-20210208192812.patch</filename>
            <type>text/plain</type>
            <size>29501</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyNDYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGQyMGQxZWJjMzE5NWFk
YzY0NzUxOTMzMDQ5ZTQxODczYmM2MmY5OS4uMjNmOTMzMTNhMzc1ZmExOGUxNDU1Y2FlNTMwNmM3
MmZkZGI1OWZhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDIxLTAyLTA4ICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIEFQ
SSB0byBkaXNhYmxlIEhUVFBTIHVwZ3JhZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIyMTU5MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTYyNTQ5
NDU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2Ug
YXJlIHVwZ3JhZGluZyByZXF1ZXN0cyBmcm9tIEhUVFAgdG8gSFRUUFMsIGJ1dCBhbiBhcHAgbWF5
IGhhdmUgYSByZWFzb24gdG8gd2FudCB0byBtYWtlIGEgcGxhaW50ZXh0IGNvbm5lY3Rpb24uCisg
ICAgICAgIE1ha2UgQVBJIG9uIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gdG8gZW5hYmxlIHRoYXQg
dG8gaGFwcGVuLCBhbmQgdXNlIG9wZW5zb3VyY2UuYXBwbGUuY29tIGFzIGEgdGVzdCBob3N0Lgor
CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVs
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjp2YWxp
ZGF0ZVVSTCk6CisgICAgICAgICogY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbnNC
YWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjptYWtlU2Vj
dXJlSWZOZWNlc3NhcnkpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OkNv
bnRlbnRFeHRlbnNpb25zQmFja2VuZDo6cHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNGb3JMb2FkKToK
KyAgICAgICAgKiBjb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uc0JhY2tlbmQuaDoK
KyAgICAgICAgKiBjc3MvU3R5bGVTaGVldENvbnRlbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlN0eWxlU2hlZXRDb250ZW50czo6c3VicmVzb3VyY2VzQWxsb3dSZXVzZSBjb25zdCk6CisgICAg
ICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxN
ZWRpYUVsZW1lbnQ6OmxvYWRSZXNvdXJjZSk6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkUmVzb3VyY2VTeW5jaHJv
bm91c2x5KToKKyAgICAgICAgKiBsb2FkZXIvUGluZ0xvYWRlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpwcm9jZXNzQ29udGVudFJ1bGVMaXN0c0ZvckxvYWQpOgorICAgICAgICAqIGxvYWRlci9S
ZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6d2ls
bFNlbmRSZXF1ZXN0SW50ZXJuYWwpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNv
dXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6
cmVxdWVzdFJlc291cmNlKToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpET01XaW5kb3c6Om9wZW4pOgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjptX2h0dHBzVXBncmFkZUVuYWJsZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6bV90ZXh0SW50ZXJhY3Rpb25FbmFibGVkKTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL1Bh
Z2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6Omh0dHBzVXBncmFkZUVuYWJsZWQgY29uc3Qp
OgorICAgICAgICAqIHBhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKiBwYWdlL1Vz
ZXJDb250ZW50UHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VXNlckNvbnRlbnRQcm92
aWRlcjo6cHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNGb3JMb2FkKToKKyAgICAgICAgKiBwYWdlL1Vz
ZXJDb250ZW50UHJvdmlkZXIuaDoKKwogMjAyMS0wMi0wNiAgWmFsYW4gQnVqdGFzICA8emFsYW5A
YXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW0lGQ11bUXVpcmtdIEtlZXAgdGhlIHJvb3QgaW5s
aW5lIGJveCBiYXNlbGluZSBhbmNob3JlZCBhdCAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDE2ZTE1YjEzN2M0YjIy
ZjE2ZGVmOTA3ZDE2M2ZkMjkwODAxMDMxN2YuLmMwYjc3ZDA4MWRhODc4MzdhNzliNGM0NGMwNjI2
NzU4ZjM1ZmMyYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMjEtMDItMDggIEFsZXgg
Q2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBBZGQgQVBJ
IHRvIGRpc2FibGUgSFRUUFMgdXBncmFkZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjIxNTkxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NjI1NDk0
NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNo
YXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJUGFn
ZUNvbmZpZ3VyYXRpb24uY3BwOgorICAgICAgICAoQVBJOjpQYWdlQ29uZmlndXJhdGlvbjo6Y29w
eSBjb25zdCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlvbi5o
OgorICAgICAgICAoQVBJOjpQYWdlQ29uZmlndXJhdGlvbjo6c2V0SFRUUFNVcGdyYWRlRW5hYmxl
ZCk6CisgICAgICAgIChBUEk6OlBhZ2VDb25maWd1cmF0aW9uOjpodHRwc1VwZ3JhZGVFbmFibGVk
IGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3Vy
YXRpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3Vy
YXRpb24ubW06CisgICAgICAgICgtW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gdXBncmFkZUNvbW1v
bktub3duUmVxdWVzdHNUb0hUVFBTXSk6CisgICAgICAgICgtW1dLV2ViVmlld0NvbmZpZ3VyYXRp
b24gc2V0VXBncmFkZUNvbW1vbktub3duUmVxdWVzdHNUb0hUVFBTOl0pOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OmNyZWF0aW9uUGFyYW1ldGVycyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwOgorICAgICAgICAoV2ViS2l0OjptX2xpbWl0c05hdmlnYXRpb25zVG9BcHBCb3VuZERv
bWFpbnMpOgorCiAyMDIxLTAyLTA1ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwZS5jb20+CiAK
ICAgICAgICAgUkVHUkVTU0lPTihyMjcyMzM3KTogY3Jhc2ggdW5kZXIgV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXplcjo6c2V0SW5hY3RpdmUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAK
aW5kZXggZTE3YTg5YjQwY2FlNzBiMWEwNWJmNDAxN2Y4ZDRhOTg5MmZiY2E0NC4uNWNlYjQwYzQ3
M2FhNmIyMzA1YjlkMDRlN2EwNTA3NDI3ZTM3NDU1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENo
YW5uZWwuY3BwCkBAIC05Myw3ICs5Myw3IEBAIE9wdGlvbmFsPFRocmVhZGFibGVXZWJTb2NrZXRD
aGFubmVsOjpWYWxpZGF0ZWRVUkw+IFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjp2CiAgICAg
ICAgICAgICByZXR1cm4geyB9OwogI2lmIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpCiAgICAg
ICAgIGlmIChhdXRvKiBkb2N1bWVudExvYWRlciA9IGRvY3VtZW50LmxvYWRlcigpKSB7Ci0gICAg
ICAgICAgICBhdXRvIHJlc3VsdHMgPSBwYWdlLT51c2VyQ29udGVudFByb3ZpZGVyKCkucHJvY2Vz
c0NvbnRlbnRSdWxlTGlzdHNGb3JMb2FkKHZhbGlkYXRlZFVSTC51cmwsIENvbnRlbnRFeHRlbnNp
b25zOjpSZXNvdXJjZVR5cGU6OlJhdywgKmRvY3VtZW50TG9hZGVyKTsKKyAgICAgICAgICAgIGF1
dG8gcmVzdWx0cyA9IHBhZ2UtPnVzZXJDb250ZW50UHJvdmlkZXIoKS5wcm9jZXNzQ29udGVudFJ1
bGVMaXN0c0ZvckxvYWQoKnBhZ2UsIHZhbGlkYXRlZFVSTC51cmwsIENvbnRlbnRFeHRlbnNpb25z
OjpSZXNvdXJjZVR5cGU6OlJhdywgKmRvY3VtZW50TG9hZGVyKTsKICAgICAgICAgICAgIGlmIChy
ZXN1bHRzLnN1bW1hcnkuYmxvY2tlZExvYWQpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHsgfTsK
ICAgICAgICAgICAgIGlmIChyZXN1bHRzLnN1bW1hcnkubWFkZUhUVFBTKSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uc0JhY2tl
bmQuY3BwIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lv
bnNCYWNrZW5kLmNwcAppbmRleCBkMWI4MTIwN2EzYTM3NTQ4ODk4MTNhZDQzYTQwMzEwNjM2ZWU4
Y2VlLi5lNTU0Mjg1ZjI0MDI4NDQzYzAwZGJhNGU0NjlhYjhmZTk2MDAzMDJjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uc0JhY2tl
bmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRl
bnNpb25zQmFja2VuZC5jcHAKQEAgLTU3LDggKzU3LDEwIEBAIG5hbWVzcGFjZSBDb250ZW50RXh0
ZW5zaW9ucyB7CiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKICNpbXBvcnQgPFdlYktpdEFk
ZGl0aW9ucy9Db250ZW50UnVsZUxpc3RBZGRpdGlvbnMubW0+CiAjZWxzZQotc3RhdGljIHZvaWQg
bWFrZVNlY3VyZUlmTmVjZXNzYXJ5KENvbnRlbnRSdWxlTGlzdFJlc3VsdHMmLCBjb25zdCBVUkwm
KQorc3RhdGljIHZvaWQgbWFrZVNlY3VyZUlmTmVjZXNzYXJ5KENvbnRlbnRSdWxlTGlzdFJlc3Vs
dHMmIHJlc3VsdHMsIGNvbnN0IFVSTCYgdXJsKQogeworICAgIGlmICh1cmwucHJvdG9jb2xJcygi
aHR0cCIpICYmIHVybC5ob3N0KCkgPT0gIm9wZW5zb3VyY2UuYXBwbGUuY29tIikKKyAgICAgICAg
cmVzdWx0cy5zdW1tYXJ5Lm1hZGVIVFRQUyA9IHRydWU7CiB9CiAjZW5kaWYKIApAQCAtMTYxLDcg
KzE2Myw3IEBAIFN0eWxlU2hlZXRDb250ZW50cyogQ29udGVudEV4dGVuc2lvbnNCYWNrZW5kOjpn
bG9iYWxEaXNwbGF5Tm9uZVN0eWxlU2hlZXQoY29uc3QKICAgICByZXR1cm4gY29udGVudEV4dGVu
c2lvbiA/IGNvbnRlbnRFeHRlbnNpb24tPmdsb2JhbERpc3BsYXlOb25lU3R5bGVTaGVldCgpIDog
bnVsbHB0cjsKIH0KIAotQ29udGVudFJ1bGVMaXN0UmVzdWx0cyBDb250ZW50RXh0ZW5zaW9uc0Jh
Y2tlbmQ6OnByb2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZChjb25zdCBVUkwmIHVybCwgT3B0
aW9uU2V0PFJlc291cmNlVHlwZT4gcmVzb3VyY2VUeXBlLCBEb2N1bWVudExvYWRlciYgaW5pdGlh
dGluZ0RvY3VtZW50TG9hZGVyKQorQ29udGVudFJ1bGVMaXN0UmVzdWx0cyBDb250ZW50RXh0ZW5z
aW9uc0JhY2tlbmQ6OnByb2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZChQYWdlJiBwYWdlLCBj
b25zdCBVUkwmIHVybCwgT3B0aW9uU2V0PFJlc291cmNlVHlwZT4gcmVzb3VyY2VUeXBlLCBEb2N1
bWVudExvYWRlciYgaW5pdGlhdGluZ0RvY3VtZW50TG9hZGVyKQogewogICAgIERvY3VtZW50KiBj
dXJyZW50RG9jdW1lbnQgPSBudWxscHRyOwogICAgIFVSTCBtYWluRG9jdW1lbnRVUkw7CkBAIC0x
ODEsNyArMTgzLDggQEAgQ29udGVudFJ1bGVMaXN0UmVzdWx0cyBDb250ZW50RXh0ZW5zaW9uc0Jh
Y2tlbmQ6OnByb2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZCgKICAgICBhdXRvIGFjdGlvbnMg
PSBhY3Rpb25zRm9yUmVzb3VyY2VMb2FkKHJlc291cmNlTG9hZEluZm8pOwogCiAgICAgQ29udGVu
dFJ1bGVMaXN0UmVzdWx0cyByZXN1bHRzOwotICAgIG1ha2VTZWN1cmVJZk5lY2Vzc2FyeShyZXN1
bHRzLCB1cmwpOworICAgIGlmIChwYWdlLmh0dHBzVXBncmFkZUVuYWJsZWQoKSkKKyAgICAgICAg
bWFrZVNlY3VyZUlmTmVjZXNzYXJ5KHJlc3VsdHMsIHVybCk7CiAgICAgcmVzdWx0cy5yZXN1bHRz
LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoYWN0aW9ucy5zaXplKCkpOwogICAgIGZvciAoY29uc3Qg
YXV0byYgYWN0aW9uc0Zyb21Db250ZW50UnVsZUxpc3QgOiBhY3Rpb25zKSB7CiAgICAgICAgIGNv
bnN0IFN0cmluZyYgY29udGVudFJ1bGVMaXN0SWRlbnRpZmllciA9IGFjdGlvbnNGcm9tQ29udGVu
dFJ1bGVMaXN0LmNvbnRlbnRSdWxlTGlzdElkZW50aWZpZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uc0JhY2tlbmQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25zQmFja2VuZC5o
CmluZGV4IDc3ZmViNjBjNTBiYzhhNGYyNGIyNzY5NmFkMTEwZDFlZGE3NDI4MDkuLmE2MzFmYzA3
NjBkODgyMzNhODc4NWE5M2ViYzA3NjdhYTUwNjQ1M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25zQmFja2VuZC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25zQmFja2VuZC5o
CkBAIC02Myw3ICs2Myw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBWZWN0b3I8QWN0
aW9uc0Zyb21Db250ZW50UnVsZUxpc3Q+IGFjdGlvbnNGb3JSZXNvdXJjZUxvYWQoY29uc3QgUmVz
b3VyY2VMb2FkSW5mbyYpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIFN0eWxlU2hlZXRDb250
ZW50cyogZ2xvYmFsRGlzcGxheU5vbmVTdHlsZVNoZWV0KGNvbnN0IFN0cmluZyYgaWRlbnRpZmll
cikgY29uc3Q7CiAKLSAgICBDb250ZW50UnVsZUxpc3RSZXN1bHRzIHByb2Nlc3NDb250ZW50UnVs
ZUxpc3RzRm9yTG9hZChjb25zdCBVUkwmLCBPcHRpb25TZXQ8UmVzb3VyY2VUeXBlPiwgRG9jdW1l
bnRMb2FkZXImIGluaXRpYXRpbmdEb2N1bWVudExvYWRlcik7CisgICAgQ29udGVudFJ1bGVMaXN0
UmVzdWx0cyBwcm9jZXNzQ29udGVudFJ1bGVMaXN0c0ZvckxvYWQoUGFnZSYsIGNvbnN0IFVSTCYs
IE9wdGlvblNldDxSZXNvdXJjZVR5cGU+LCBEb2N1bWVudExvYWRlciYgaW5pdGlhdGluZ0RvY3Vt
ZW50TG9hZGVyKTsKICAgICBXRUJDT1JFX0VYUE9SVCBDb250ZW50UnVsZUxpc3RSZXN1bHRzIHBy
b2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yUGluZ0xvYWQoY29uc3QgVVJMJiwgY29uc3QgVVJMJiBt
YWluRG9jdW1lbnRVUkwpOwogCiAgICAgc3RhdGljIGNvbnN0IFN0cmluZyYgZGlzcGxheU5vbmVD
U1NSdWxlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVTaGVldENvbnRl
bnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0Q29udGVudHMuY3BwCmluZGV4
IGU0YjA0NDliNTNmYTVkN2Q0MjRhNGY1NGZjZWJhMjUwNTYxZTNmZjAuLjQ0MjU0OGVkZDhiNDgz
YzI2ODZkM2Y2NTAyNGIyOTk1MzJhMmNiZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TdHlsZVNoZWV0Q29udGVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNo
ZWV0Q29udGVudHMuY3BwCkBAIC01MDgsNyArNTA4LDcgQEAgYm9vbCBTdHlsZVNoZWV0Q29udGVu
dHM6OnN1YnJlc291cmNlc0FsbG93UmV1c2UoQ2FjaGVQb2xpY3kgY2FjaGVQb2xpY3ksIEZyYW1l
TG8KICAgICAgICAgYXV0byogZG9jdW1lbnRMb2FkZXIgPSBsb2FkZXIuZG9jdW1lbnRMb2FkZXIo
KTsKICAgICAgICAgaWYgKHBhZ2UgJiYgZG9jdW1lbnRMb2FkZXIpIHsKICAgICAgICAgICAgIGNv
bnN0IGF1dG8mIHJlcXVlc3QgPSByZXNvdXJjZS5yZXNvdXJjZVJlcXVlc3QoKTsKLSAgICAgICAg
ICAgIGF1dG8gcmVzdWx0cyA9IHBhZ2UtPnVzZXJDb250ZW50UHJvdmlkZXIoKS5wcm9jZXNzQ29u
dGVudFJ1bGVMaXN0c0ZvckxvYWQocmVxdWVzdC51cmwoKSwgQ29udGVudEV4dGVuc2lvbnM6OnRv
UmVzb3VyY2VUeXBlKHJlc291cmNlLnR5cGUoKSksICpkb2N1bWVudExvYWRlcik7CisgICAgICAg
ICAgICBhdXRvIHJlc3VsdHMgPSBwYWdlLT51c2VyQ29udGVudFByb3ZpZGVyKCkucHJvY2Vzc0Nv
bnRlbnRSdWxlTGlzdHNGb3JMb2FkKCpwYWdlLCByZXF1ZXN0LnVybCgpLCBDb250ZW50RXh0ZW5z
aW9uczo6dG9SZXNvdXJjZVR5cGUocmVzb3VyY2UudHlwZSgpKSwgKmRvY3VtZW50TG9hZGVyKTsK
ICAgICAgICAgICAgIGlmIChyZXN1bHRzLnN1bW1hcnkuYmxvY2tlZExvYWQgfHwgcmVzdWx0cy5z
dW1tYXJ5Lm1hZGVIVFRQUykKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggNmI0YmViN2M2
ZDE0ZTVmMzliYmJlNWMxYjMwOTY2NDIyNWY3ZmFjNS4uMWMxZWZmMjdlYjk1ZWNmYTQzNTY5OTlh
NjU1ZTkxMzdlNjIwMDQzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
Y3BwCkBAIC0xNDM1LDcgKzE0MzUsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmxvYWRSZXNv
dXJjZShjb25zdCBVUkwmIGluaXRpYWxVUkwsIENvbnRlbnRUeXBlJiBjb250ZW50VAogCiAjaWYg
RU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykKICAgICBpZiAoYXV0byBkb2N1bWVudExvYWRlciA9
IG1ha2VSZWZQdHIoZnJhbWUtPmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCkpKSB7Ci0gICAgICAg
IGlmIChwYWdlLT51c2VyQ29udGVudFByb3ZpZGVyKCkucHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNG
b3JMb2FkKHVybCwgQ29udGVudEV4dGVuc2lvbnM6OlJlc291cmNlVHlwZTo6TWVkaWEsICpkb2N1
bWVudExvYWRlcikuc3VtbWFyeS5ibG9ja2VkTG9hZCkgeworICAgICAgICBpZiAocGFnZS0+dXNl
ckNvbnRlbnRQcm92aWRlcigpLnByb2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZCgqcGFnZSwg
dXJsLCBDb250ZW50RXh0ZW5zaW9uczo6UmVzb3VyY2VUeXBlOjpNZWRpYSwgKmRvY3VtZW50TG9h
ZGVyKS5zdW1tYXJ5LmJsb2NrZWRMb2FkKSB7CiAgICAgICAgICAgICBtZWRpYUxvYWRpbmdGYWls
ZWQoTWVkaWFQbGF5ZXI6Ok5ldHdvcmtTdGF0ZTo6Rm9ybWF0RXJyb3IpOwogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRl
eCAzYmZiOWE2ODFkNTZiMmE1MjQzNDZjYzU0YjdlYmJjMTZiMGRiMjU4Li5kZGQwNDNmYWNiOWE2
YzY4MzlhZmQxMGI2YmVjMzJlYTgzNjU0NzA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlci5jcHAKQEAgLTMwODEsNyArMzA4MSw3IEBAIHVuc2lnbmVkIGxvbmcgRnJhbWVMb2FkZXI6
OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1CiAg
ICAgaWYgKGVycm9yLmlzTnVsbCgpKSB7CiAgICAgICAgIGlmIChhdXRvKiBwYWdlID0gbV9mcmFt
ZS5wYWdlKCkpIHsKICAgICAgICAgICAgIGlmIChtX2RvY3VtZW50TG9hZGVyKSB7Ci0gICAgICAg
ICAgICAgICAgYXV0byByZXN1bHRzID0gcGFnZS0+dXNlckNvbnRlbnRQcm92aWRlcigpLnByb2Nl
c3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZChuZXdSZXF1ZXN0LnVybCgpLCBDb250ZW50RXh0ZW5z
aW9uczo6UmVzb3VyY2VUeXBlOjpSYXcsICptX2RvY3VtZW50TG9hZGVyKTsKKyAgICAgICAgICAg
ICAgICBhdXRvIHJlc3VsdHMgPSBwYWdlLT51c2VyQ29udGVudFByb3ZpZGVyKCkucHJvY2Vzc0Nv
bnRlbnRSdWxlTGlzdHNGb3JMb2FkKCpwYWdlLCBuZXdSZXF1ZXN0LnVybCgpLCBDb250ZW50RXh0
ZW5zaW9uczo6UmVzb3VyY2VUeXBlOjpSYXcsICptX2RvY3VtZW50TG9hZGVyKTsKICAgICAgICAg
ICAgICAgICBib29sIGJsb2NrZWRMb2FkID0gcmVzdWx0cy5zdW1tYXJ5LmJsb2NrZWRMb2FkOwog
ICAgICAgICAgICAgICAgIENvbnRlbnRFeHRlbnNpb25zOjphcHBseVJlc3VsdHNUb1JlcXVlc3Qo
V1RGTW92ZShyZXN1bHRzKSwgcGFnZSwgbmV3UmVxdWVzdCk7CiAgICAgICAgICAgICAgICAgaWYg
KGJsb2NrZWRMb2FkKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xv
YWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRlci5jcHAKaW5kZXggNGYy
YTYxMGJiMjI0YWIxNzY2OTI3NGQyYTAzY2JjNDJiMTU4OTc4Yy4uZmNjYWU3ZGUxMjk3YmYxY2Nh
ZTI0YTRmYjA5NjljMWZjM2NlYzBkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1BpbmdMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmNw
cApAQCAtNzIsNyArNzIsNyBAQCBzdGF0aWMgYm9vbCBwcm9jZXNzQ29udGVudFJ1bGVMaXN0c0Zv
ckxvYWQoY29uc3QgRnJhbWUmIGZyYW1lLCBSZXNvdXJjZVJlcXVlc3QmCiAgICAgYXV0byogcGFn
ZSA9IGZyYW1lLnBhZ2UoKTsKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICBhdXRvIHJlc3VsdHMgPSBwYWdlLT51c2VyQ29udGVudFByb3ZpZGVyKCkucHJvY2Vzc0Nv
bnRlbnRSdWxlTGlzdHNGb3JMb2FkKHJlcXVlc3QudXJsKCksIHJlc291cmNlVHlwZSwgKmRvY3Vt
ZW50TG9hZGVyKTsKKyAgICBhdXRvIHJlc3VsdHMgPSBwYWdlLT51c2VyQ29udGVudFByb3ZpZGVy
KCkucHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNGb3JMb2FkKCpwYWdlLCByZXF1ZXN0LnVybCgpLCBy
ZXNvdXJjZVR5cGUsICpkb2N1bWVudExvYWRlcik7CiAgICAgYm9vbCByZXN1bHQgPSByZXN1bHRz
LnN1bW1hcnkuYmxvY2tlZExvYWQ7CiAgICAgQ29udGVudEV4dGVuc2lvbnM6OmFwcGx5UmVzdWx0
c1RvUmVxdWVzdChXVEZNb3ZlKHJlc3VsdHMpLCBwYWdlLCByZXF1ZXN0KTsKICAgICByZXR1cm4g
cmVzdWx0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggOWQ1
YWM0ODVjYTg1YjU0NzdkNTM2YTg1OTQ3NGIwYjdmNTM1NDE3Ni4uY2M1YWM1YTI5NTA5MTY5MTEw
MjU4MjI4NWNjYzE0NDNmNDg2NWEyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1Jlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VM
b2FkZXIuY3BwCkBAIC0zNTUsNyArMzU1LDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRlcjo6d2lsbFNl
bmRSZXF1ZXN0SW50ZXJuYWwoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgY29uc3QgUmUKICAg
ICBpZiAoIXJlZGlyZWN0UmVzcG9uc2UuaXNOdWxsKCkgJiYgZnJhbWVMb2FkZXIoKSkgewogICAg
ICAgICBQYWdlKiBwYWdlID0gZnJhbWVMb2FkZXIoKS0+ZnJhbWUoKS5wYWdlKCk7CiAgICAgICAg
IGlmIChwYWdlICYmIG1fZG9jdW1lbnRMb2FkZXIpIHsKLSAgICAgICAgICAgIGF1dG8gcmVzdWx0
cyA9IHBhZ2UtPnVzZXJDb250ZW50UHJvdmlkZXIoKS5wcm9jZXNzQ29udGVudFJ1bGVMaXN0c0Zv
ckxvYWQocmVxdWVzdC51cmwoKSwgbV9yZXNvdXJjZVR5cGUsICptX2RvY3VtZW50TG9hZGVyKTsK
KyAgICAgICAgICAgIGF1dG8gcmVzdWx0cyA9IHBhZ2UtPnVzZXJDb250ZW50UHJvdmlkZXIoKS5w
cm9jZXNzQ29udGVudFJ1bGVMaXN0c0ZvckxvYWQoKnBhZ2UsIHJlcXVlc3QudXJsKCksIG1fcmVz
b3VyY2VUeXBlLCAqbV9kb2N1bWVudExvYWRlcik7CiAgICAgICAgICAgICBib29sIGJsb2NrZWRM
b2FkID0gcmVzdWx0cy5zdW1tYXJ5LmJsb2NrZWRMb2FkOwogICAgICAgICAgICAgQ29udGVudEV4
dGVuc2lvbnM6OmFwcGx5UmVzdWx0c1RvUmVxdWVzdChXVEZNb3ZlKHJlc3VsdHMpLCBwYWdlLCBy
ZXF1ZXN0KTsKICAgICAgICAgICAgIGlmIChibG9ja2VkTG9hZCkgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggMWZm
ZjAwMzA5NmZjNWJiNjgyYmQ4YjgyZDJhZGM3MWE5OTc5YjY3Ni4uMjYwMzY5MmY2NWM2MmE4OWIy
YjAyYmU0YmNmMmU0NGEwMWI3YTU1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC05MDAsNyArOTAwLDcgQEAgUmVz
b3VyY2VFcnJvck9yPENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPj4gQ2FjaGVk
UmVzb3VyY2VMb2FkZXI6OnJlcXUKICNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQogICAg
IGlmIChtX2RvY3VtZW50TG9hZGVyKSB7CiAgICAgICAgIGNvbnN0IGF1dG8mIHJlc291cmNlUmVx
dWVzdCA9IHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCk7Ci0gICAgICAgIGF1dG8gcmVzdWx0cyA9
IHBhZ2UudXNlckNvbnRlbnRQcm92aWRlcigpLnByb2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yTG9h
ZChyZXNvdXJjZVJlcXVlc3QudXJsKCksIENvbnRlbnRFeHRlbnNpb25zOjp0b1Jlc291cmNlVHlw
ZSh0eXBlKSwgKm1fZG9jdW1lbnRMb2FkZXIpOworICAgICAgICBhdXRvIHJlc3VsdHMgPSBwYWdl
LnVzZXJDb250ZW50UHJvdmlkZXIoKS5wcm9jZXNzQ29udGVudFJ1bGVMaXN0c0ZvckxvYWQocGFn
ZSwgcmVzb3VyY2VSZXF1ZXN0LnVybCgpLCBDb250ZW50RXh0ZW5zaW9uczo6dG9SZXNvdXJjZVR5
cGUodHlwZSksICptX2RvY3VtZW50TG9hZGVyKTsKICAgICAgICAgYm9vbCBibG9ja2VkTG9hZCA9
IHJlc3VsdHMuc3VtbWFyeS5ibG9ja2VkTG9hZDsKICAgICAgICAgYm9vbCBtYWRlSFRUUFMgPSBy
ZXN1bHRzLnN1bW1hcnkubWFkZUhUVFBTOwogICAgICAgICByZXF1ZXN0LmFwcGx5UmVzdWx0cyhX
VEZNb3ZlKHJlc3VsdHMpLCAmcGFnZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXgg
NjNkYjYyN2FhYjVjNzBjYzg4N2NjNjhmNzBmZTliOTAyNmI1NzEyYS4uMTBlNGVhNjI0YWRhOGRi
YjRkOTM0ZjE5MDVjYTM3MjUwNWNkODg3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApA
QCAtMjUyOSwxMSArMjUyOSwxMiBAQCBFeGNlcHRpb25PcjxSZWZQdHI8V2luZG93UHJveHk+PiBE
T01XaW5kb3c6Om9wZW4oRE9NV2luZG93JiBhY3RpdmVXaW5kb3csIERPTVdpbgogICAgICAgICB1
cmxTdHJpbmcgPSAiYWJvdXQ6YmxhbmsiX3M7CiAKICNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJ
T05TKQotICAgIGlmIChmaXJzdEZyYW1lLT5kb2N1bWVudCgpCi0gICAgICAgICYmIGZpcnN0RnJh
bWUtPnBhZ2UoKQotICAgICAgICAmJiBmaXJzdEZyYW1lLT5tYWluRnJhbWUoKS5kb2N1bWVudCgp
Ci0gICAgICAgICYmIGZpcnN0RnJhbWUtPm1haW5GcmFtZSgpLmRvY3VtZW50KCktPmxvYWRlcigp
KSB7Ci0gICAgICAgIGF1dG8gcmVzdWx0cyA9IGZpcnN0RnJhbWUtPnBhZ2UoKS0+dXNlckNvbnRl
bnRQcm92aWRlcigpLnByb2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZChmaXJzdEZyYW1lLT5k
b2N1bWVudCgpLT5jb21wbGV0ZVVSTCh1cmxTdHJpbmcpLCBDb250ZW50RXh0ZW5zaW9uczo6UmVz
b3VyY2VUeXBlOjpQb3B1cCwgKmZpcnN0RnJhbWUtPm1haW5GcmFtZSgpLmRvY3VtZW50KCktPmxv
YWRlcigpKTsKKyAgICBhdXRvKiBwYWdlID0gZmlyc3RGcmFtZS0+cGFnZSgpOworICAgIGF1dG8q
IGZpcnN0RnJhbWVEb2N1bWVudCA9IGZpcnN0RnJhbWUtPmRvY3VtZW50KCk7CisgICAgYXV0byog
bWFpbkZyYW1lRG9jdW1lbnQgPSBmaXJzdEZyYW1lLT5tYWluRnJhbWUoKS5kb2N1bWVudCgpOwor
ICAgIGF1dG8qIG1haW5GcmFtZURvY3VtZW50TG9hZGVyID0gbWFpbkZyYW1lRG9jdW1lbnQgPyBt
YWluRnJhbWVEb2N1bWVudC0+bG9hZGVyKCkgOiBudWxscHRyOworICAgIGlmIChmaXJzdEZyYW1l
RG9jdW1lbnQgJiYgcGFnZSAmJiBtYWluRnJhbWVEb2N1bWVudExvYWRlcikgeworICAgICAgICBh
dXRvIHJlc3VsdHMgPSBwYWdlLT51c2VyQ29udGVudFByb3ZpZGVyKCkucHJvY2Vzc0NvbnRlbnRS
dWxlTGlzdHNGb3JMb2FkKCpwYWdlLCBmaXJzdEZyYW1lRG9jdW1lbnQtPmNvbXBsZXRlVVJMKHVy
bFN0cmluZyksIENvbnRlbnRFeHRlbnNpb25zOjpSZXNvdXJjZVR5cGU6OlBvcHVwLCAqbWFpbkZy
YW1lRG9jdW1lbnRMb2FkZXIpOwogICAgICAgICBpZiAocmVzdWx0cy5zdW1tYXJ5LmJsb2NrZWRM
b2FkKQogICAgICAgICAgICAgcmV0dXJuIFJlZlB0cjxXaW5kb3dQcm94eT4geyBudWxscHRyIH07
CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggNzg1NDViNTZhZmQ4NjljMDY1YjE5NDk5MGZj
ZDRjMzkyYzZmODQzNS4uMzYwYzBjN2Q3ZTQ5YzZiZWVjNWQ0YjEwYTJjZWRmMDQ2MzEzNjcyNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0zMDUsNiArMzA1LDcgQEAgUGFnZTo6UGFnZShQYWdlQ29u
ZmlndXJhdGlvbiYmIHBhZ2VDb25maWd1cmF0aW9uKQogICAgICwgbV9sb2Fkc0Zyb21OZXR3b3Jr
KHBhZ2VDb25maWd1cmF0aW9uLmxvYWRzRnJvbU5ldHdvcmspCiAgICAgLCBtX3Nob3VsZFJlbGF4
VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nKHBhZ2VDb25maWd1cmF0aW9uLnNob3VsZFJlbGF4VGhp
cmRQYXJ0eUNvb2tpZUJsb2NraW5nKQogICAgICwgbV90ZXh0SW50ZXJhY3Rpb25FbmFibGVkKHBh
Z2VDb25maWd1cmF0aW9uLnRleHRJbnRlcmFjdGlvbkVuYWJsZWQpCisgICAgLCBtX2h0dHBzVXBn
cmFkZUVuYWJsZWQocGFnZUNvbmZpZ3VyYXRpb24uaHR0cHNVcGdyYWRlRW5hYmxlZCkKIHsKICAg
ICB1cGRhdGVUaW1lclRocm90dGxpbmdTdGF0ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IDY2NTdj
ZDNkMmMxYjc2OGUyODcxNWNjNTRjMTQyOWVjN2Q4OTExNjkuLmY5YmM0ZjRkOTJjNzRhNzQyZmUx
MGM0NDY5NWQxYjEzNzg0Yjg1ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC04MzUsNiArODM1LDggQEAg
cHVibGljOgogICAgIGJvb2wgdGV4dEludGVyYWN0aW9uRW5hYmxlZCgpIHsgcmV0dXJuIG1fdGV4
dEludGVyYWN0aW9uRW5hYmxlZDsgfQogICAgIHZvaWQgc2V0VGV4dEludGVyYWN0aW9uRW5hYmxl
ZChib29sIHZhbHVlKSB7IG1fdGV4dEludGVyYWN0aW9uRW5hYmxlZCA9IHZhbHVlOyB9CiAKKyAg
ICBib29sIGh0dHBzVXBncmFkZUVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2h0dHBzVXBncmFk
ZUVuYWJsZWQ7IH0KKwogICAgIExvYWRTY2hlZHVsaW5nTW9kZSBsb2FkU2NoZWR1bGluZ01vZGUo
KSBjb25zdCB7IHJldHVybiBtX2xvYWRTY2hlZHVsaW5nTW9kZTsgfQogICAgIHZvaWQgc2V0TG9h
ZFNjaGVkdWxpbmdNb2RlKExvYWRTY2hlZHVsaW5nTW9kZSk7CiAKQEAgLTExNDYsNiArMTE0OCw3
IEBAIHByaXZhdGU6CiAgICAgTW9ub3RvbmljVGltZSBtX2xhc3RSZW5kZXJpbmdVcGRhdGVUaW1l
c3RhbXA7CiAgICAgCiAgICAgYm9vbCBtX3RleHRJbnRlcmFjdGlvbkVuYWJsZWQgeyB0cnVlIH07
CisgICAgY29uc3QgYm9vbCBtX2h0dHBzVXBncmFkZUVuYWJsZWQgeyB0cnVlIH07CiAgICAgbXV0
YWJsZSBNZWRpYVNlc3Npb25Hcm91cElkZW50aWZpZXIgbV9tZWRpYVNlc3Npb25Hcm91cElkZW50
aWZpZXI7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1
cmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgKaW5kZXgg
NmYxNjgzMDEwYjdjZjNmNWZiZmIzMjQyMjhjODZkOTM5N2I4MDZjNy4uMWFjMmI1ZDY5ZDk4YTA2
NmIxZjRjZjBhMmJiOWExMmNjOWJmZTUzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlQ29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZp
Z3VyYXRpb24uaApAQCAtMTM0LDYgKzEzNCw3IEBAIHB1YmxpYzoKICAgICBib29sIHVzZXJTY3Jp
cHRzU2hvdWxkV2FpdFVudGlsTm90aWZpY2F0aW9uIHsgdHJ1ZSB9OwogICAgIFNob3VsZFJlbGF4
VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nIHNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2Nr
aW5nIHsgU2hvdWxkUmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmc6Ok5vIH07CiAgICAgYm9v
bCB0ZXh0SW50ZXJhY3Rpb25FbmFibGVkIHsgdHJ1ZSB9OworICAgIGJvb2wgaHR0cHNVcGdyYWRl
RW5hYmxlZCB7IHRydWUgfTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvVXNlckNvbnRlbnRQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1VzZXJDb250
ZW50UHJvdmlkZXIuY3BwCmluZGV4IDBmMjNiNmM1NWE0YjNkMGM3NjI3OWQ4NTFhMGRiYmEyYTYz
MmJkYTYuLjliNzBiYmUyNTYwMmM4YmI2NGRiNmQzZWM2OGEzNDA4YWRjNTZlY2QgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVXNlckNvbnRlbnRQcm92aWRlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9Vc2VyQ29udGVudFByb3ZpZGVyLmNwcApAQCAtMTAyLDEyICsxMDIs
MTIgQEAgc3RhdGljIGJvb2wgY29udGVudFJ1bGVMaXN0c0VuYWJsZWQoY29uc3QgRG9jdW1lbnRM
b2FkZXImIGRvY3VtZW50TG9hZGVyKQogICAgIHJldHVybiB0cnVlOwogfQogICAgIAotQ29udGVu
dFJ1bGVMaXN0UmVzdWx0cyBVc2VyQ29udGVudFByb3ZpZGVyOjpwcm9jZXNzQ29udGVudFJ1bGVM
aXN0c0ZvckxvYWQoY29uc3QgVVJMJiB1cmwsIE9wdGlvblNldDxDb250ZW50RXh0ZW5zaW9uczo6
UmVzb3VyY2VUeXBlPiByZXNvdXJjZVR5cGUsIERvY3VtZW50TG9hZGVyJiBpbml0aWF0aW5nRG9j
dW1lbnRMb2FkZXIpCitDb250ZW50UnVsZUxpc3RSZXN1bHRzIFVzZXJDb250ZW50UHJvdmlkZXI6
OnByb2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZChQYWdlJiBwYWdlLCBjb25zdCBVUkwmIHVy
bCwgT3B0aW9uU2V0PENvbnRlbnRFeHRlbnNpb25zOjpSZXNvdXJjZVR5cGU+IHJlc291cmNlVHlw
ZSwgRG9jdW1lbnRMb2FkZXImIGluaXRpYXRpbmdEb2N1bWVudExvYWRlcikKIHsKICAgICBpZiAo
IWNvbnRlbnRSdWxlTGlzdHNFbmFibGVkKGluaXRpYXRpbmdEb2N1bWVudExvYWRlcikpCiAgICAg
ICAgIHJldHVybiB7IH07CiAKLSAgICByZXR1cm4gdXNlckNvbnRlbnRFeHRlbnNpb25CYWNrZW5k
KCkucHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNGb3JMb2FkKHVybCwgcmVzb3VyY2VUeXBlLCBpbml0
aWF0aW5nRG9jdW1lbnRMb2FkZXIpOworICAgIHJldHVybiB1c2VyQ29udGVudEV4dGVuc2lvbkJh
Y2tlbmQoKS5wcm9jZXNzQ29udGVudFJ1bGVMaXN0c0ZvckxvYWQocGFnZSwgdXJsLCByZXNvdXJj
ZVR5cGUsIGluaXRpYXRpbmdEb2N1bWVudExvYWRlcik7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Vc2VyQ29udGVudFByb3ZpZGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1VzZXJDb250ZW50UHJvdmlkZXIuaAppbmRleCA4ZGE1NzQyNTBiYmRiYThhNjhl
NzE2YTU2NTI0MWY0NDY0YWIzMTQ3Li41NWVjMzg2YzUzMWMxZmRhZGY0MTE2MjI3NzgyNjlmMjZh
ZGZhMzgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1VzZXJDb250ZW50UHJvdmlk
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1VzZXJDb250ZW50UHJvdmlkZXIuaApAQCAt
ODgsNyArODgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZW1vdmVQYWdlKFBhZ2UmKTsKIAogI2lm
IEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpCi0gICAgQ29udGVudFJ1bGVMaXN0UmVzdWx0cyBw
cm9jZXNzQ29udGVudFJ1bGVMaXN0c0ZvckxvYWQoY29uc3QgVVJMJiwgT3B0aW9uU2V0PENvbnRl
bnRFeHRlbnNpb25zOjpSZXNvdXJjZVR5cGU+LCBEb2N1bWVudExvYWRlciYgaW5pdGlhdGluZ0Rv
Y3VtZW50TG9hZGVyKTsKKyAgICBDb250ZW50UnVsZUxpc3RSZXN1bHRzIHByb2Nlc3NDb250ZW50
UnVsZUxpc3RzRm9yTG9hZChQYWdlJiwgY29uc3QgVVJMJiwgT3B0aW9uU2V0PENvbnRlbnRFeHRl
bnNpb25zOjpSZXNvdXJjZVR5cGU+LCBEb2N1bWVudExvYWRlciYgaW5pdGlhdGluZ0RvY3VtZW50
TG9hZGVyKTsKICNlbmRpZgogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IGNhNWFhYzg4YTM1N2VhNjE2
YzUzMWUxNDQyZjUwNWQzMWFiMmU5ZDIuLjhhNjdmY2IyZjMxY2Q1MWQ5OTNkNGFjYTZkNTIyNTEw
NjI3ZmRhZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlv
blBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlv
blBhcmFtZXRlcnMuY3BwCkBAIC0xNzgsNiArMTc4LDcgQEAgdm9pZCBXZWJQYWdlQ3JlYXRpb25Q
YXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogI2VuZGlmCiAg
ICAgCiAgICAgZW5jb2RlciA8PCB0ZXh0SW50ZXJhY3Rpb25FbmFibGVkOworICAgIGVuY29kZXIg
PDwgaHR0cHNVcGdyYWRlRW5hYmxlZDsKIH0KIAogT3B0aW9uYWw8V2ViUGFnZUNyZWF0aW9uUGFy
YW1ldGVycz4gV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYg
ZGVjb2RlcikKQEAgLTU2Niw2ICs1NjcsOSBAQCBPcHRpb25hbDxXZWJQYWdlQ3JlYXRpb25QYXJh
bWV0ZXJzPiBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZAogICAg
IGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy50ZXh0SW50ZXJhY3Rpb25FbmFibGVkKSkK
ICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAorICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
cGFyYW1ldGVycy5odHRwc1VwZ3JhZGVFbmFibGVkKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKKwogICAgIHJldHVybiBwYXJhbWV0ZXJzOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggY2Q1ZDY1YzZmZTQ4Mzc2
NmIxYTlkN2NkYzIyMDIzZDhiN2U0M2IzZi4uYjAxZTZmNTExMjk0MzY2NmMyYjI3OWNjOGQyOTc0
Y2ZkODcyNmNlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0
aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlv
blBhcmFtZXRlcnMuaApAQCAtMjUwLDYgKzI1MCw3IEBAIHN0cnVjdCBXZWJQYWdlQ3JlYXRpb25Q
YXJhbWV0ZXJzIHsKICNlbmRpZgogCiAgICAgYm9vbCB0ZXh0SW50ZXJhY3Rpb25FbmFibGVkIHsg
dHJ1ZSB9OworICAgIGJvb2wgaHR0cHNVcGdyYWRlRW5hYmxlZCB7IHRydWUgfTsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0FQSVBhZ2VDb25maWd1cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9BUElQYWdlQ29uZmlndXJhdGlvbi5jcHAKaW5kZXggMzQyZjA1ZDdkMTEwODNmNzBlMzYxNjM5
MGVkYjQ2NDg2M2RjMWQyNy4uYTMzNTJlNmViOWM3OGY0NzY4MTkyMGIxYjljNmI4NTFlZGMyNzY4
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVBhZ2VDb25maWd1
cmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZp
Z3VyYXRpb24uY3BwCkBAIC05NCw2ICs5NCw3IEBAIFJlZjxQYWdlQ29uZmlndXJhdGlvbj4gUGFn
ZUNvbmZpZ3VyYXRpb246OmNvcHkoKSBjb25zdAogI2VuZGlmCiAKICAgICBjb3B5LT5tX21lZGlh
Q2FwdHVyZUVuYWJsZWQgPSB0aGlzLT5tX21lZGlhQ2FwdHVyZUVuYWJsZWQ7CisgICAgY29weS0+
bV9odHRwc1VwZ3JhZGVFbmFibGVkID0gdGhpcy0+bV9odHRwc1VwZ3JhZGVFbmFibGVkOwogCiAg
ICAgcmV0dXJuIGNvcHk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9B
UElQYWdlQ29uZmlndXJhdGlvbi5oCmluZGV4IGY2Yzc1OTUwNmFiZWE4NDMxMzE3NGExZmViZDVi
ZDE5NjliMGVlZGIuLjllODM5ZjQ0NTcwZTZhOGY4ZTE1Yjg1NGVmYTJmNTUyZDc5MjMxMzUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlv
bi5oCkBAIC0xNjEsNiArMTYxLDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0TWVkaWFDYXB0dXJl
RW5hYmxlZChib29sIHZhbHVlKSB7IG1fbWVkaWFDYXB0dXJlRW5hYmxlZCA9IHZhbHVlOyB9CiAg
ICAgYm9vbCBtZWRpYUNhcHR1cmVFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYUNhcHR1
cmVFbmFibGVkOyB9CiAKKyAgICB2b2lkIHNldEhUVFBTVXBncmFkZUVuYWJsZWQoYm9vbCBlbmFi
bGVkKSB7IG1faHR0cHNVcGdyYWRlRW5hYmxlZCA9IGVuYWJsZWQ7IH0KKyAgICBib29sIGh0dHBz
VXBncmFkZUVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2h0dHBzVXBncmFkZUVuYWJsZWQ7IH0K
KwogICAgIHZvaWQgc2V0U2hvdWxkUmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmcoV2ViQ29y
ZTo6U2hvdWxkUmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmcgdmFsdWUpIHsgbV9zaG91bGRS
ZWxheFRoaXJkUGFydHlDb29raWVCbG9ja2luZyA9IHZhbHVlOyB9CiAgICAgV2ViQ29yZTo6U2hv
dWxkUmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmcgc2hvdWxkUmVsYXhUaGlyZFBhcnR5Q29v
a2llQmxvY2tpbmcoKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tp
ZUJsb2NraW5nOyB9CiAgICAgCkBAIC0yMTEsNiArMjE0LDcgQEAgcHJpdmF0ZToKICNlbmRpZgog
CiAgICAgYm9vbCBtX21lZGlhQ2FwdHVyZUVuYWJsZWQgeyBmYWxzZSB9OworICAgIGJvb2wgbV9o
dHRwc1VwZ3JhZGVFbmFibGVkIHsgdHJ1ZSB9OwogCiAgICAgV2ViQ29yZTo6U2hvdWxkUmVsYXhU
aGlyZFBhcnR5Q29va2llQmxvY2tpbmcgbV9zaG91bGRSZWxheFRoaXJkUGFydHlDb29raWVCbG9j
a2luZyB7IFdlYkNvcmU6OlNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nOjpObyB9
OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXdDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Q29uZmlndXJhdGlvbi5oCmluZGV4IDhjY2NmNzM3ZDU5YmQ1YThhOWNmNzhmMjUy
Y2ZlODQ2NzMyZGM0MzYuLmUyZmM4MzNjNDY3NDc5ZTVjNjczYzlkMDYzZmMyMGVkOGNkZWMxZjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdD
b25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlld0NvbmZpZ3VyYXRpb24uaApAQCAtMTI4LDYgKzEyOCwxMSBAQCBXS19DTEFTU19BVkFJ
TEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4wKSkKICAqLwogQHByb3BlcnR5IChub25hdG9taWMp
IEJPT0wgYWxsb3dzQWlyUGxheUZvck1lZGlhUGxheWJhY2sgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMC4xMSksIGlvcyg5LjApKTsKIAorLyohIEBhYnN0cmFjdCBBIEJvb2xlYW4gdmFsdWUgaW5k
aWNhdGluZyB3aGV0aGVyIEhUVFAgcmVxdWVzdHMgdG8gc2VydmVycyBrbm93biB0byBzdXBwb3J0
IEhUVFBTIHNob3VsZCBiZSBhdXRvbWF0aWNhbGx5IHVwZ3JhZGVkIHRvIEhUVFBTIHJlcXVlc3Rz
LgorIEBkaXNjdXNzaW9uIFRoZSBkZWZhdWx0IHZhbHVlIGlzIFlFUy4KKyAqLworQHByb3BlcnR5
IChub25hdG9taWMpIEJPT0wgdXBncmFkZUNvbW1vbktub3duUmVxdWVzdHNUb0hUVFBTIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CisKIEBwcm9w
ZXJ0eSAobm9uYXRvbWljKSBXS0F1ZGlvdmlzdWFsTWVkaWFUeXBlcyBtZWRpYVR5cGVzUmVxdWly
aW5nVXNlckFjdGlvbkZvclBsYXliYWNrIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBp
b3MoMTAuMCkpOwogCiAvKiEgQGFic3RyYWN0IFRoZSBzZXQgb2YgZGVmYXVsdCB3ZWJwYWdlIHBy
ZWZlcmVuY2VzIHRvIHVzZSB3aGVuIGxvYWRpbmcgYW5kIHJlbmRlcmluZyBjb250ZW50LgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZp
Z3VyYXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
Q29uZmlndXJhdGlvbi5tbQppbmRleCA1ZGEyZmY2OWEyMGQ3NGE4MmUwMjAyMTNmYTRlNmI1YWU5
MWVkOGQ3Li43OWE1ODM2ZjgxZjRiODg5NjNmODk2ZmZhNjdjODg2Nzk3YzZlYTZkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJh
dGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
Q29uZmlndXJhdGlvbi5tbQpAQCAtNDc3LDYgKzQ3NywxNiBAQCBzdGF0aWMgYm9vbCBkZWZhdWx0
U2hvdWxkRGVjaWRlUG9saWN5QmVmb3JlTG9hZGluZ1F1aWNrTG9va1ByZXZpZXcoKQogICAgIF91
c2VyQ29udGVudENvbnRyb2xsZXIuc2V0KHVzZXJDb250ZW50Q29udHJvbGxlcik7CiB9CiAKKy0g
KEJPT0wpdXBncmFkZUNvbW1vbktub3duUmVxdWVzdHNUb0hUVFBTCit7CisgICAgcmV0dXJuIF9w
YWdlQ29uZmlndXJhdGlvbi0+aHR0cHNVcGdyYWRlRW5hYmxlZCgpOworfQorCistICh2b2lkKXNl
dFVwZ3JhZGVDb21tb25Lbm93blJlcXVlc3RzVG9IVFRQUzooQk9PTCl1cGdyYWRlCit7CisgICAg
X3BhZ2VDb25maWd1cmF0aW9uLT5zZXRIVFRQU1VwZ3JhZGVFbmFibGVkKHVwZ3JhZGUpOworfQor
CiAtIChXS1dlYnNpdGVEYXRhU3RvcmUgKil3ZWJzaXRlRGF0YVN0b3JlCiB7CiAgICAgcmV0dXJu
IF93ZWJzaXRlRGF0YVN0b3JlLmdldChbXSB7IHJldHVybiBbV0tXZWJzaXRlRGF0YVN0b3JlIGRl
ZmF1bHREYXRhU3RvcmVdOyB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCmluZGV4IGFlZjQ4NWUzYjBiN2E0ODlhNTFkOTQ4Nzk1OWVhZjNlODg0N2ViNDAuLmU4MDdi
NWNhZGM1MDIxNjM4ZDIxNDUxZjE1OWM2YzFlNWVmZGQyYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtODAzOCw2ICs4MDM4LDcgQEAgV2ViUGFnZUNyZWF0
aW9uUGFyYW1ldGVycyBXZWJQYWdlUHJveHk6OmNyZWF0aW9uUGFyYW1ldGVycyhXZWJQcm9jZXNz
UHJveHkmIHByb2MKICNlbmRpZgogICAgIAogICAgIHBhcmFtZXRlcnMudGV4dEludGVyYWN0aW9u
RW5hYmxlZCA9IHByZWZlcmVuY2VzKCkudGV4dEludGVyYWN0aW9uRW5hYmxlZCgpOworICAgIHBh
cmFtZXRlcnMuaHR0cHNVcGdyYWRlRW5hYmxlZCA9IG1fY29uZmlndXJhdGlvbi0+aHR0cHNVcGdy
YWRlRW5hYmxlZCgpOwogCiAgICAgcmV0dXJuIHBhcmFtZXRlcnM7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGMyOWQ4NTBkMGRhMzUyY2Rk
NzBiOTEzNmVmMjBlOTRiOGZkYjczZmQuLmRiOThlMTgxNmU3ZjlkYWI2Y2ZmNjQzNzc4YjM0YjAw
Yjk0MTg1NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCkBAIC01ODUsNiArNTg1LDcgQEAgV2ViUGFnZTo6V2ViUGFnZShQYWdlSWRlbnRpZmllciBw
YWdlSUQsIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogICAgIHBhZ2VD
b25maWd1cmF0aW9uLmxvYWRzU3VicmVzb3VyY2VzID0gcGFyYW1ldGVycy5sb2Fkc1N1YnJlc291
cmNlczsKICAgICBwYWdlQ29uZmlndXJhdGlvbi5sb2Fkc0Zyb21OZXR3b3JrID0gcGFyYW1ldGVy
cy5sb2Fkc0Zyb21OZXR3b3JrOwogICAgIHBhZ2VDb25maWd1cmF0aW9uLnNob3VsZFJlbGF4VGhp
cmRQYXJ0eUNvb2tpZUJsb2NraW5nID0gcGFyYW1ldGVycy5zaG91bGRSZWxheFRoaXJkUGFydHlD
b29raWVCbG9ja2luZzsKKyAgICBwYWdlQ29uZmlndXJhdGlvbi5odHRwc1VwZ3JhZGVFbmFibGVk
ID0gcGFyYW1ldGVycy5odHRwc1VwZ3JhZGVFbmFibGVkOwogCiAgICAgcGFnZUNvbmZpZ3VyYXRp
b24udGV4dEludGVyYWN0aW9uRW5hYmxlZCA9IHBhcmFtZXRlcnMudGV4dEludGVyYWN0aW9uRW5h
YmxlZDsKICAgICAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxv
ZwppbmRleCAwOGEwMjgxYzZjNjAyMzA3NWIzZDQyNDczYzc0OTgxMmE4NjhiNWUzLi5lNzg5NzRl
NGM1NDIzYzNlY2U4M2ZiMzBiM2NkYTNhODM2NjE3NzQ2IDEwMDY0NAotLS0gYS9Ub29scy9DaGFu
Z2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDItMDgg
IEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBB
ZGQgQVBJIHRvIGRpc2FibGUgSFRUUFMgdXBncmFkZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxNTkxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81
NjI1NDk0NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlv
bi5tbToKKyAgICAgICAgKFRFU1QpOgorCiAyMDIxLTAyLTA1ICBFcmljIENhcmxzb24gIDxlcmlj
LmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFtNYWNdIERpc2FibGUgTWVkaWFTZXNzaW9u
VGVzdCBBUEkgdGVzdHMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbQppbmRleCA2ZjI3Mzdh
MmQ5MzZhN2RmNjZiM2Y4NTIyOTQ2Mzk3Y2NmNTNkNTRlLi4wYjc0NmUzNmM5YmQ3ODM5ZTFhYTVk
YzI2ODhmZjliNGU5MjlmYjE1IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW0KKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tCkBAIC0y
NSwxMCArMjUsMTMgQEAKIAogI2ltcG9ydCAiY29uZmlnLmgiCiAKKyNpbXBvcnQgIkhUVFBTZXJ2
ZXIuaCIKICNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0ICJUZXN0TmF2aWdh
dGlvbkRlbGVnYXRlLmgiCiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3Lmg+CiAjaW1wb3J0IDxX
ZWJLaXQvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaD4KLSNpbXBvcnQgPFdlYktpdC9X
S1dlYnNpdGVEYXRhU3RvcmUuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1dlYnNpdGVEYXRhU3RvcmVQ
cml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRp
b24uaD4KICNpbXBvcnQgPHd0Zi9GdW5jdGlvbi5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5o
PgogCkBAIC05NSwzICs5OCw0OSBAQCBURVNUKFdlYktpdCwgRGVmYXVsdENvbmZpZ3VyYXRpb25F
TUUpCiAgICAgfV07CiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKIH0KKwor
VEVTVChXZWJLaXQsIENvbmZpZ3VyYXRpb25IVFRQU1VwZ3JhZGUpCit7CisgICAgdXNpbmcgbmFt
ZXNwYWNlIFRlc3RXZWJLaXRBUEk7CisgICAgYm9vbCBkb25lID0gZmFsc2U7CisgICAgVmVjdG9y
PGNoYXI+IHJlcXVlc3RCeXRlczsKKyAgICBIVFRQU2VydmVyIHNlcnZlcihbJl0gKENvbm5lY3Rp
b24gY29ubmVjdGlvbikgeworICAgICAgICBjb25uZWN0aW9uLnJlY2VpdmVIVFRQUmVxdWVzdChb
JiwgY29ubmVjdGlvbl0oVmVjdG9yPGNoYXI+JiYgYnl0ZXMpIG11dGFibGUgeworICAgICAgICAg
ICAgcmVxdWVzdEJ5dGVzID0gV1RGTW92ZShieXRlcyk7CisgICAgICAgICAgICBkb25lID0gdHJ1
ZTsKKyAgICAgICAgfSk7CisgICAgfSk7CisKKyAgICBhdXRvIHJ1blRlc3QgPSBbJl0gKGJvb2wg
dXBncmFkZSkgeworICAgICAgICBkb25lID0gZmFsc2U7CisgICAgICAgIGF1dG8gc3RvcmVDb25m
aWd1cmF0aW9uID0gW1tbX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gYWxsb2NdIGlu
aXROb25QZXJzaXN0ZW50Q29uZmlndXJhdGlvbl0gYXV0b3JlbGVhc2VdOworICAgICAgICBzdG9y
ZUNvbmZpZ3VyYXRpb24uYWxsb3dzU2VydmVyUHJlY29ubmVjdCA9IE5POworICAgICAgICBzdG9y
ZUNvbmZpZ3VyYXRpb24ucHJveHlDb25maWd1cmF0aW9uID0gQHsKKyAgICAgICAgICAgIChOU1N0
cmluZyAqKWtDRlN0cmVhbVByb3BlcnR5SFRUUFNQcm94eUhvc3Q6IEAiMTI3LjAuMC4xIiwKKyAg
ICAgICAgICAgIChOU1N0cmluZyAqKWtDRlN0cmVhbVByb3BlcnR5SFRUUFNQcm94eVBvcnQ6IEAo
c2VydmVyLnBvcnQoKSksCisgICAgICAgICAgICAoTlNTdHJpbmcgKilrQ0ZTdHJlYW1Qcm9wZXJ0
eUhUVFBQcm94eUhvc3Q6IEAiMTI3LjAuMC4xIiwKKyAgICAgICAgICAgIChOU1N0cmluZyAqKWtD
RlN0cmVhbVByb3BlcnR5SFRUUFByb3h5UG9ydDogQChzZXJ2ZXIucG9ydCgpKSwKKyAgICAgICAg
fTsKKyAgICAgICAgYXV0byBzdG9yZSA9IFtbW1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxvY10gX2lu
aXRXaXRoQ29uZmlndXJhdGlvbjpzdG9yZUNvbmZpZ3VyYXRpb25dIGF1dG9yZWxlYXNlXTsKKyAg
ICAgICAgYXV0byBjb25maWd1cmF0aW9uID0gW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIG5ld10g
YXV0b3JlbGVhc2VdOworICAgICAgICBjb25maWd1cmF0aW9uLndlYnNpdGVEYXRhU3RvcmUgPSBz
dG9yZTsKKyAgICAgICAgY29uZmlndXJhdGlvbi51cGdyYWRlQ29tbW9uS25vd25SZXF1ZXN0c1Rv
SFRUUFMgPSB1cGdyYWRlOworICAgICAgICBhdXRvIHdlYlZpZXcgPSBbW1tXS1dlYlZpZXcgYWxs
b2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0WmVybyBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25d
IGF1dG9yZWxlYXNlXTsKKyAgICAgICAgYXV0byByZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1
ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAImh0dHA6Ly9vcGVuc291cmNlLmFwcGxl
LmNvbS8iXV07CisgICAgICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOworICAgICAg
ICBVdGlsOjpydW4oJmRvbmUpOworICAgIH07CisKKyAgICBhdXRvIGNoZWNrUmVxdWVzdEJ5dGVz
U3RhcnRzV2l0aCA9IFsmXSAoY29uc3QgY2hhciogc3RyaW5nKSB7CisgICAgICAgIEVYUEVDVF9H
VChyZXF1ZXN0Qnl0ZXMuc2l6ZSgpLCBzdHJsZW4oc3RyaW5nKSk7CisgICAgICAgIGlmIChyZXF1
ZXN0Qnl0ZXMuc2l6ZSgpIDw9IHN0cmxlbihzdHJpbmcpKQorICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICByZXF1ZXN0Qnl0ZXNbc3RybGVuKHN0cmluZyldID0gMDsKKyAgICAgICAgRVhQRUNU
X1dLX1NUUkVRKHJlcXVlc3RCeXRlcy5kYXRhKCksIHN0cmluZyk7CisgICAgfTsKKworICAgIHJ1
blRlc3QodHJ1ZSk7CisgICAgY2hlY2tSZXF1ZXN0Qnl0ZXNTdGFydHNXaXRoKCJDT05ORUNUIG9w
ZW5zb3VyY2UuYXBwbGUuY29tOjQ0MyBIVFRQLzEuMVxyXG4iKTsKKyAgICBydW5UZXN0KGZhbHNl
KTsKKyAgICBjaGVja1JlcXVlc3RCeXRlc1N0YXJ0c1dpdGgoIkdFVCBodHRwOi8vb3BlbnNvdXJj
ZS5hcHBsZS5jb20vIEhUVFAvMS4xXHJcbiIpOworfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420141</attachid>
            <date>2021-02-12 10:11:21 -0800</date>
            <delta_ts>2021-02-13 07:37:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221591-20210212101120.patch</filename>
            <type>text/plain</type>
            <size>26947</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3Mjc4NCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ0IEBACisyMDIxLTAyLTEyICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIEFQSSB0
byBkaXNhYmxlIEhUVFBTIHVwZ3JhZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIyMTU5MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTYyNTQ5NDU+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgR2VvZmYgR2FyZW4uCisKKyAgICAgICAgV2UgYXJlIHVw
Z3JhZGluZyByZXF1ZXN0cyBmcm9tIEhUVFAgdG8gSFRUUFMsIGJ1dCBhbiBhcHAgbWF5IGhhdmUg
YSByZWFzb24gdG8gd2FudCB0byBtYWtlIGEgcGxhaW50ZXh0IGNvbm5lY3Rpb24uCisgICAgICAg
IE1ha2UgQVBJIG9uIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gdG8gZW5hYmxlIHRoYXQgdG8gaGFw
cGVuLCBhbmQgdXNlIG9wZW5zb3VyY2UuYXBwbGUuY29tIGFzIGEgdGVzdCBob3N0LgorCisgICAg
ICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjp2YWxpZGF0ZVVS
TCk6CisgICAgICAgICogY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbnNCYWNrZW5k
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjptYWtlU2VjdXJlSWZO
ZWNlc3NhcnkpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRF
eHRlbnNpb25zQmFja2VuZDo6cHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNGb3JMb2FkKToKKyAgICAg
ICAgKiBjb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uc0JhY2tlbmQuaDoKKyAgICAg
ICAgKiBjc3MvU3R5bGVTaGVldENvbnRlbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxl
U2hlZXRDb250ZW50czo6c3VicmVzb3VyY2VzQWxsb3dSZXVzZSBjb25zdCk6CisgICAgICAgICog
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVs
ZW1lbnQ6OmxvYWRSZXNvdXJjZSk6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5
KToKKyAgICAgICAgKiBsb2FkZXIvUGluZ0xvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpw
cm9jZXNzQ29udGVudFJ1bGVMaXN0c0ZvckxvYWQpOgorICAgICAgICAqIGxvYWRlci9SZXNvdXJj
ZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRS
ZXF1ZXN0SW50ZXJuYWwpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxv
YWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVz
dFJlc291cmNlKToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpET01XaW5kb3c6Om9wZW4pOgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjptX2h0dHBzVXBncmFkZUVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6bV90
ZXh0SW50ZXJhY3Rpb25FbmFibGVkKTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6Omh0dHBzVXBncmFkZUVuYWJsZWQgY29uc3QpOgorICAg
ICAgICAqIHBhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKiBwYWdlL1VzZXJDb250
ZW50UHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VXNlckNvbnRlbnRQcm92aWRlcjo6
cHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNGb3JMb2FkKToKKyAgICAgICAgKiBwYWdlL1VzZXJDb250
ZW50UHJvdmlkZXIuaDoKKwogMjAyMS0wMi0xMiAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4Zmll
bGRAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBXaW5kb3dzIGJ1aWxkIGFmdGVyIHIyNzI3NzIK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJz
b2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcAkocmV2aXNpb24gMjcyNzg0KQor
KysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRD
aGFubmVsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTMsNyArOTMsNyBAQCBPcHRpb25hbDxUaHJl
YWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6VmFsCiAgICAgICAgICAgICByZXR1cm4geyB9OwogI2lm
IEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpCiAgICAgICAgIGlmIChhdXRvKiBkb2N1bWVudExv
YWRlciA9IGRvY3VtZW50LmxvYWRlcigpKSB7Ci0gICAgICAgICAgICBhdXRvIHJlc3VsdHMgPSBw
YWdlLT51c2VyQ29udGVudFByb3ZpZGVyKCkucHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNGb3JMb2Fk
KHZhbGlkYXRlZFVSTC51cmwsIENvbnRlbnRFeHRlbnNpb25zOjpSZXNvdXJjZVR5cGU6OlJhdywg
KmRvY3VtZW50TG9hZGVyKTsKKyAgICAgICAgICAgIGF1dG8gcmVzdWx0cyA9IHBhZ2UtPnVzZXJD
b250ZW50UHJvdmlkZXIoKS5wcm9jZXNzQ29udGVudFJ1bGVMaXN0c0ZvckxvYWQoKnBhZ2UsIHZh
bGlkYXRlZFVSTC51cmwsIENvbnRlbnRFeHRlbnNpb25zOjpSZXNvdXJjZVR5cGU6OlJhdywgKmRv
Y3VtZW50TG9hZGVyKTsKICAgICAgICAgICAgIGlmIChyZXN1bHRzLnN1bW1hcnkuYmxvY2tlZExv
YWQpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAgICAgIGlmIChyZXN1bHRz
LnN1bW1hcnkubWFkZUhUVFBTKSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5z
aW9ucy9Db250ZW50RXh0ZW5zaW9uc0JhY2tlbmQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25zQmFja2VuZC5jcHAJKHJl
dmlzaW9uIDI3Mjc4NCkKKysrIFNvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRl
bnRFeHRlbnNpb25zQmFja2VuZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2Myw3ICsxNjMsNyBA
QCBTdHlsZVNoZWV0Q29udGVudHMqIENvbnRlbnRFeHRlbnNpb25zQmFjCiAgICAgcmV0dXJuIGNv
bnRlbnRFeHRlbnNpb24gPyBjb250ZW50RXh0ZW5zaW9uLT5nbG9iYWxEaXNwbGF5Tm9uZVN0eWxl
U2hlZXQoKSA6IG51bGxwdHI7CiB9CiAKLUNvbnRlbnRSdWxlTGlzdFJlc3VsdHMgQ29udGVudEV4
dGVuc2lvbnNCYWNrZW5kOjpwcm9jZXNzQ29udGVudFJ1bGVMaXN0c0ZvckxvYWQoY29uc3QgVVJM
JiB1cmwsIE9wdGlvblNldDxSZXNvdXJjZVR5cGU+IHJlc291cmNlVHlwZSwgRG9jdW1lbnRMb2Fk
ZXImIGluaXRpYXRpbmdEb2N1bWVudExvYWRlcikKK0NvbnRlbnRSdWxlTGlzdFJlc3VsdHMgQ29u
dGVudEV4dGVuc2lvbnNCYWNrZW5kOjpwcm9jZXNzQ29udGVudFJ1bGVMaXN0c0ZvckxvYWQoUGFn
ZSYgcGFnZSwgY29uc3QgVVJMJiB1cmwsIE9wdGlvblNldDxSZXNvdXJjZVR5cGU+IHJlc291cmNl
VHlwZSwgRG9jdW1lbnRMb2FkZXImIGluaXRpYXRpbmdEb2N1bWVudExvYWRlcikKIHsKICAgICBE
b2N1bWVudCogY3VycmVudERvY3VtZW50ID0gbnVsbHB0cjsKICAgICBVUkwgbWFpbkRvY3VtZW50
VVJMOwpAQCAtMTgzLDcgKzE4Myw4IEBAIENvbnRlbnRSdWxlTGlzdFJlc3VsdHMgQ29udGVudEV4
dGVuc2lvbnMKICAgICBhdXRvIGFjdGlvbnMgPSBhY3Rpb25zRm9yUmVzb3VyY2VMb2FkKHJlc291
cmNlTG9hZEluZm8pOwogCiAgICAgQ29udGVudFJ1bGVMaXN0UmVzdWx0cyByZXN1bHRzOwotICAg
IG1ha2VTZWN1cmVJZk5lY2Vzc2FyeShyZXN1bHRzLCB1cmwpOworICAgIGlmIChwYWdlLmh0dHBz
VXBncmFkZUVuYWJsZWQoKSkKKyAgICAgICAgbWFrZVNlY3VyZUlmTmVjZXNzYXJ5KHJlc3VsdHMs
IHVybCk7CiAgICAgcmVzdWx0cy5yZXN1bHRzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoYWN0aW9u
cy5zaXplKCkpOwogICAgIGZvciAoY29uc3QgYXV0byYgYWN0aW9uc0Zyb21Db250ZW50UnVsZUxp
c3QgOiBhY3Rpb25zKSB7CiAgICAgICAgIGNvbnN0IFN0cmluZyYgY29udGVudFJ1bGVMaXN0SWRl
bnRpZmllciA9IGFjdGlvbnNGcm9tQ29udGVudFJ1bGVMaXN0LmNvbnRlbnRSdWxlTGlzdElkZW50
aWZpZXI7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0
ZW5zaW9uc0JhY2tlbmQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0
ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uc0JhY2tlbmQuaAkocmV2aXNpb24gMjcyNzg0KQorKysg
U291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbnNCYWNrZW5k
LmgJKHdvcmtpbmcgY29weSkKQEAgLTYzLDcgKzYzLDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVf
RVhQT1JUIFZlY3RvcjxBY3Rpb25zRnJvbUNvbnRlbnRSdWxlTGlzdD4gYWN0aW9uc0ZvclJlc291
cmNlTG9hZChjb25zdCBSZXNvdXJjZUxvYWRJbmZvJikgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBP
UlQgU3R5bGVTaGVldENvbnRlbnRzKiBnbG9iYWxEaXNwbGF5Tm9uZVN0eWxlU2hlZXQoY29uc3Qg
U3RyaW5nJiBpZGVudGlmaWVyKSBjb25zdDsKIAotICAgIENvbnRlbnRSdWxlTGlzdFJlc3VsdHMg
cHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNGb3JMb2FkKGNvbnN0IFVSTCYsIE9wdGlvblNldDxSZXNv
dXJjZVR5cGU+LCBEb2N1bWVudExvYWRlciYgaW5pdGlhdGluZ0RvY3VtZW50TG9hZGVyKTsKKyAg
ICBDb250ZW50UnVsZUxpc3RSZXN1bHRzIHByb2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZChQ
YWdlJiwgY29uc3QgVVJMJiwgT3B0aW9uU2V0PFJlc291cmNlVHlwZT4sIERvY3VtZW50TG9hZGVy
JiBpbml0aWF0aW5nRG9jdW1lbnRMb2FkZXIpOwogICAgIFdFQkNPUkVfRVhQT1JUIENvbnRlbnRS
dWxlTGlzdFJlc3VsdHMgcHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNGb3JQaW5nTG9hZChjb25zdCBV
UkwmLCBjb25zdCBVUkwmIG1haW5Eb2N1bWVudFVSTCk7CiAKICAgICBzdGF0aWMgY29uc3QgU3Ry
aW5nJiBkaXNwbGF5Tm9uZUNTU1J1bGUoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHls
ZVNoZWV0Q29udGVudHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHls
ZVNoZWV0Q29udGVudHMuY3BwCShyZXZpc2lvbiAyNzI3ODQpCisrKyBTb3VyY2UvV2ViQ29yZS9j
c3MvU3R5bGVTaGVldENvbnRlbnRzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTA4LDcgKzUwOCw3
IEBAIGJvb2wgU3R5bGVTaGVldENvbnRlbnRzOjpzdWJyZXNvdXJjZXNBbGwKICAgICAgICAgYXV0
byogZG9jdW1lbnRMb2FkZXIgPSBsb2FkZXIuZG9jdW1lbnRMb2FkZXIoKTsKICAgICAgICAgaWYg
KHBhZ2UgJiYgZG9jdW1lbnRMb2FkZXIpIHsKICAgICAgICAgICAgIGNvbnN0IGF1dG8mIHJlcXVl
c3QgPSByZXNvdXJjZS5yZXNvdXJjZVJlcXVlc3QoKTsKLSAgICAgICAgICAgIGF1dG8gcmVzdWx0
cyA9IHBhZ2UtPnVzZXJDb250ZW50UHJvdmlkZXIoKS5wcm9jZXNzQ29udGVudFJ1bGVMaXN0c0Zv
ckxvYWQocmVxdWVzdC51cmwoKSwgQ29udGVudEV4dGVuc2lvbnM6OnRvUmVzb3VyY2VUeXBlKHJl
c291cmNlLnR5cGUoKSksICpkb2N1bWVudExvYWRlcik7CisgICAgICAgICAgICBhdXRvIHJlc3Vs
dHMgPSBwYWdlLT51c2VyQ29udGVudFByb3ZpZGVyKCkucHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNG
b3JMb2FkKCpwYWdlLCByZXF1ZXN0LnVybCgpLCBDb250ZW50RXh0ZW5zaW9uczo6dG9SZXNvdXJj
ZVR5cGUocmVzb3VyY2UudHlwZSgpKSwgKmRvY3VtZW50TG9hZGVyKTsKICAgICAgICAgICAgIGlm
IChyZXN1bHRzLnN1bW1hcnkuYmxvY2tlZExvYWQgfHwgcmVzdWx0cy5zdW1tYXJ5Lm1hZGVIVFRQ
UykKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQpJbmRleDogU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCShyZXZpc2lvbiAyNzI3ODQpCisrKyBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xNDM1LDcgKzE0MzUsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmxvYWRSZXNvdXJjZShj
b25zCiAKICNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQogICAgIGlmIChhdXRvIGRvY3Vt
ZW50TG9hZGVyID0gbWFrZVJlZlB0cihmcmFtZS0+bG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIoKSkp
IHsKLSAgICAgICAgaWYgKHBhZ2UtPnVzZXJDb250ZW50UHJvdmlkZXIoKS5wcm9jZXNzQ29udGVu
dFJ1bGVMaXN0c0ZvckxvYWQodXJsLCBDb250ZW50RXh0ZW5zaW9uczo6UmVzb3VyY2VUeXBlOjpN
ZWRpYSwgKmRvY3VtZW50TG9hZGVyKS5zdW1tYXJ5LmJsb2NrZWRMb2FkKSB7CisgICAgICAgIGlm
IChwYWdlLT51c2VyQ29udGVudFByb3ZpZGVyKCkucHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNGb3JM
b2FkKCpwYWdlLCB1cmwsIENvbnRlbnRFeHRlbnNpb25zOjpSZXNvdXJjZVR5cGU6Ok1lZGlhLCAq
ZG9jdW1lbnRMb2FkZXIpLnN1bW1hcnkuYmxvY2tlZExvYWQpIHsKICAgICAgICAgICAgIG1lZGlh
TG9hZGluZ0ZhaWxlZChNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlOjpGb3JtYXRFcnJvcik7CiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9GcmFtZUxvYWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyLmNwcAkocmV2aXNpb24gMjcyNzg0KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzA4MSw3ICszMDgxLDcgQEAgdW5z
aWduZWQgbG9uZyBGcmFtZUxvYWRlcjo6bG9hZFJlc291cmNlUwogICAgIGlmIChlcnJvci5pc051
bGwoKSkgewogICAgICAgICBpZiAoYXV0byogcGFnZSA9IG1fZnJhbWUucGFnZSgpKSB7CiAgICAg
ICAgICAgICBpZiAobV9kb2N1bWVudExvYWRlcikgewotICAgICAgICAgICAgICAgIGF1dG8gcmVz
dWx0cyA9IHBhZ2UtPnVzZXJDb250ZW50UHJvdmlkZXIoKS5wcm9jZXNzQ29udGVudFJ1bGVMaXN0
c0ZvckxvYWQobmV3UmVxdWVzdC51cmwoKSwgQ29udGVudEV4dGVuc2lvbnM6OlJlc291cmNlVHlw
ZTo6UmF3LCAqbV9kb2N1bWVudExvYWRlcik7CisgICAgICAgICAgICAgICAgYXV0byByZXN1bHRz
ID0gcGFnZS0+dXNlckNvbnRlbnRQcm92aWRlcigpLnByb2Nlc3NDb250ZW50UnVsZUxpc3RzRm9y
TG9hZCgqcGFnZSwgbmV3UmVxdWVzdC51cmwoKSwgQ29udGVudEV4dGVuc2lvbnM6OlJlc291cmNl
VHlwZTo6UmF3LCAqbV9kb2N1bWVudExvYWRlcik7CiAgICAgICAgICAgICAgICAgYm9vbCBibG9j
a2VkTG9hZCA9IHJlc3VsdHMuc3VtbWFyeS5ibG9ja2VkTG9hZDsKICAgICAgICAgICAgICAgICBD
b250ZW50RXh0ZW5zaW9uczo6YXBwbHlSZXN1bHRzVG9SZXF1ZXN0KFdURk1vdmUocmVzdWx0cyks
IHBhZ2UsIG5ld1JlcXVlc3QpOwogICAgICAgICAgICAgICAgIGlmIChibG9ja2VkTG9hZCkgewpJ
bmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmNwcAkocmV2aXNpb24gMjcyNzg0KQor
KysgU291cmNlL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC03Miw3ICs3Miw3IEBAIHN0YXRpYyBib29sIHByb2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yTG8K
ICAgICBhdXRvKiBwYWdlID0gZnJhbWUucGFnZSgpOwogICAgIGlmICghcGFnZSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIGF1dG8gcmVzdWx0cyA9IHBhZ2UtPnVzZXJDb250ZW50UHJvdmlk
ZXIoKS5wcm9jZXNzQ29udGVudFJ1bGVMaXN0c0ZvckxvYWQocmVxdWVzdC51cmwoKSwgcmVzb3Vy
Y2VUeXBlLCAqZG9jdW1lbnRMb2FkZXIpOworICAgIGF1dG8gcmVzdWx0cyA9IHBhZ2UtPnVzZXJD
b250ZW50UHJvdmlkZXIoKS5wcm9jZXNzQ29udGVudFJ1bGVMaXN0c0ZvckxvYWQoKnBhZ2UsIHJl
cXVlc3QudXJsKCksIHJlc291cmNlVHlwZSwgKmRvY3VtZW50TG9hZGVyKTsKICAgICBib29sIHJl
c3VsdCA9IHJlc3VsdHMuc3VtbWFyeS5ibG9ja2VkTG9hZDsKICAgICBDb250ZW50RXh0ZW5zaW9u
czo6YXBwbHlSZXN1bHRzVG9SZXF1ZXN0KFdURk1vdmUocmVzdWx0cyksIHBhZ2UsIHJlcXVlc3Qp
OwogICAgIHJldHVybiByZXN1bHQ7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3Vy
Y2VMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJj
ZUxvYWRlci5jcHAJKHJldmlzaW9uIDI3Mjc4NCkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9S
ZXNvdXJjZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1NSw3ICszNTUsNyBAQCB2b2lk
IFJlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVlc3RJbnRlCiAgICAgaWYgKCFyZWRpcmVjdFJl
c3BvbnNlLmlzTnVsbCgpICYmIGZyYW1lTG9hZGVyKCkpIHsKICAgICAgICAgUGFnZSogcGFnZSA9
IGZyYW1lTG9hZGVyKCktPmZyYW1lKCkucGFnZSgpOwogICAgICAgICBpZiAocGFnZSAmJiBtX2Rv
Y3VtZW50TG9hZGVyKSB7Ci0gICAgICAgICAgICBhdXRvIHJlc3VsdHMgPSBwYWdlLT51c2VyQ29u
dGVudFByb3ZpZGVyKCkucHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNGb3JMb2FkKHJlcXVlc3QudXJs
KCksIG1fcmVzb3VyY2VUeXBlLCAqbV9kb2N1bWVudExvYWRlcik7CisgICAgICAgICAgICBhdXRv
IHJlc3VsdHMgPSBwYWdlLT51c2VyQ29udGVudFByb3ZpZGVyKCkucHJvY2Vzc0NvbnRlbnRSdWxl
TGlzdHNGb3JMb2FkKCpwYWdlLCByZXF1ZXN0LnVybCgpLCBtX3Jlc291cmNlVHlwZSwgKm1fZG9j
dW1lbnRMb2FkZXIpOwogICAgICAgICAgICAgYm9vbCBibG9ja2VkTG9hZCA9IHJlc3VsdHMuc3Vt
bWFyeS5ibG9ja2VkTG9hZDsKICAgICAgICAgICAgIENvbnRlbnRFeHRlbnNpb25zOjphcHBseVJl
c3VsdHNUb1JlcXVlc3QoV1RGTW92ZShyZXN1bHRzKSwgcGFnZSwgcmVxdWVzdCk7CiAgICAgICAg
ICAgICBpZiAoYmxvY2tlZExvYWQpIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAkocmV2aXNpb24gMjcyNzg0KQor
KysgU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtOTAwLDcgKzkwMCw3IEBAIFJlc291cmNlRXJyb3JPcjxDYWNoZWRS
ZXNvdXJjZUhhbmRsZTxDYWMKICNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQogICAgIGlm
IChtX2RvY3VtZW50TG9hZGVyKSB7CiAgICAgICAgIGNvbnN0IGF1dG8mIHJlc291cmNlUmVxdWVz
dCA9IHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCk7Ci0gICAgICAgIGF1dG8gcmVzdWx0cyA9IHBh
Z2UudXNlckNvbnRlbnRQcm92aWRlcigpLnByb2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZChy
ZXNvdXJjZVJlcXVlc3QudXJsKCksIENvbnRlbnRFeHRlbnNpb25zOjp0b1Jlc291cmNlVHlwZSh0
eXBlKSwgKm1fZG9jdW1lbnRMb2FkZXIpOworICAgICAgICBhdXRvIHJlc3VsdHMgPSBwYWdlLnVz
ZXJDb250ZW50UHJvdmlkZXIoKS5wcm9jZXNzQ29udGVudFJ1bGVMaXN0c0ZvckxvYWQocGFnZSwg
cmVzb3VyY2VSZXF1ZXN0LnVybCgpLCBDb250ZW50RXh0ZW5zaW9uczo6dG9SZXNvdXJjZVR5cGUo
dHlwZSksICptX2RvY3VtZW50TG9hZGVyKTsKICAgICAgICAgYm9vbCBibG9ja2VkTG9hZCA9IHJl
c3VsdHMuc3VtbWFyeS5ibG9ja2VkTG9hZDsKICAgICAgICAgYm9vbCBtYWRlSFRUUFMgPSByZXN1
bHRzLnN1bW1hcnkubWFkZUhUVFBTOwogICAgICAgICByZXF1ZXN0LmFwcGx5UmVzdWx0cyhXVEZN
b3ZlKHJlc3VsdHMpLCAmcGFnZSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRv
dy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCShy
ZXZpc2lvbiAyNzI3ODQpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI1NDQsMTEgKzI1NDQsMTIgQEAgRXhjZXB0aW9uT3I8UmVmUHRyPFdp
bmRvd1Byb3h5Pj4gRE9NV2luZAogICAgICAgICB1cmxTdHJpbmcgPSAiYWJvdXQ6YmxhbmsiX3M7
CiAKICNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQotICAgIGlmIChmaXJzdEZyYW1lLT5k
b2N1bWVudCgpCi0gICAgICAgICYmIGZpcnN0RnJhbWUtPnBhZ2UoKQotICAgICAgICAmJiBmaXJz
dEZyYW1lLT5tYWluRnJhbWUoKS5kb2N1bWVudCgpCi0gICAgICAgICYmIGZpcnN0RnJhbWUtPm1h
aW5GcmFtZSgpLmRvY3VtZW50KCktPmxvYWRlcigpKSB7Ci0gICAgICAgIGF1dG8gcmVzdWx0cyA9
IGZpcnN0RnJhbWUtPnBhZ2UoKS0+dXNlckNvbnRlbnRQcm92aWRlcigpLnByb2Nlc3NDb250ZW50
UnVsZUxpc3RzRm9yTG9hZChmaXJzdEZyYW1lLT5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTCh1cmxT
dHJpbmcpLCBDb250ZW50RXh0ZW5zaW9uczo6UmVzb3VyY2VUeXBlOjpQb3B1cCwgKmZpcnN0RnJh
bWUtPm1haW5GcmFtZSgpLmRvY3VtZW50KCktPmxvYWRlcigpKTsKKyAgICBhdXRvKiBwYWdlID0g
Zmlyc3RGcmFtZS0+cGFnZSgpOworICAgIGF1dG8qIGZpcnN0RnJhbWVEb2N1bWVudCA9IGZpcnN0
RnJhbWUtPmRvY3VtZW50KCk7CisgICAgYXV0byogbWFpbkZyYW1lRG9jdW1lbnQgPSBmaXJzdEZy
YW1lLT5tYWluRnJhbWUoKS5kb2N1bWVudCgpOworICAgIGF1dG8qIG1haW5GcmFtZURvY3VtZW50
TG9hZGVyID0gbWFpbkZyYW1lRG9jdW1lbnQgPyBtYWluRnJhbWVEb2N1bWVudC0+bG9hZGVyKCkg
OiBudWxscHRyOworICAgIGlmIChmaXJzdEZyYW1lRG9jdW1lbnQgJiYgcGFnZSAmJiBtYWluRnJh
bWVEb2N1bWVudExvYWRlcikgeworICAgICAgICBhdXRvIHJlc3VsdHMgPSBwYWdlLT51c2VyQ29u
dGVudFByb3ZpZGVyKCkucHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNGb3JMb2FkKCpwYWdlLCBmaXJz
dEZyYW1lRG9jdW1lbnQtPmNvbXBsZXRlVVJMKHVybFN0cmluZyksIENvbnRlbnRFeHRlbnNpb25z
OjpSZXNvdXJjZVR5cGU6OlBvcHVwLCAqbWFpbkZyYW1lRG9jdW1lbnRMb2FkZXIpOwogICAgICAg
ICBpZiAocmVzdWx0cy5zdW1tYXJ5LmJsb2NrZWRMb2FkKQogICAgICAgICAgICAgcmV0dXJuIFJl
ZlB0cjxXaW5kb3dQcm94eT4geyBudWxscHRyIH07CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2Uu
Y3BwCShyZXZpc2lvbiAyNzI3ODQpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zMDUsNiArMzA1LDcgQEAgUGFnZTo6UGFnZShQYWdlQ29uZmlndXJh
dGlvbiYmIHBhZ2VDb25maQogICAgICwgbV9sb2Fkc0Zyb21OZXR3b3JrKHBhZ2VDb25maWd1cmF0
aW9uLmxvYWRzRnJvbU5ldHdvcmspCiAgICAgLCBtX3Nob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tp
ZUJsb2NraW5nKHBhZ2VDb25maWd1cmF0aW9uLnNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJs
b2NraW5nKQogICAgICwgbV90ZXh0SW50ZXJhY3Rpb25FbmFibGVkKHBhZ2VDb25maWd1cmF0aW9u
LnRleHRJbnRlcmFjdGlvbkVuYWJsZWQpCisgICAgLCBtX2h0dHBzVXBncmFkZUVuYWJsZWQocGFn
ZUNvbmZpZ3VyYXRpb24uaHR0cHNVcGdyYWRlRW5hYmxlZCkKIHsKICAgICB1cGRhdGVUaW1lclRo
cm90dGxpbmdTdGF0ZSgpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAkocmV2aXNpb24gMjcyNzg0KQor
KysgU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTgzNSw2ICs4
MzUsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCB0ZXh0SW50ZXJhY3Rpb25FbmFibGVkKCkgY29uc3Qg
eyByZXR1cm4gbV90ZXh0SW50ZXJhY3Rpb25FbmFibGVkOyB9CiAgICAgdm9pZCBzZXRUZXh0SW50
ZXJhY3Rpb25FbmFibGVkKGJvb2wgdmFsdWUpIHsgbV90ZXh0SW50ZXJhY3Rpb25FbmFibGVkID0g
dmFsdWU7IH0KIAorICAgIGJvb2wgaHR0cHNVcGdyYWRlRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJu
IG1faHR0cHNVcGdyYWRlRW5hYmxlZDsgfQorCiAgICAgTG9hZFNjaGVkdWxpbmdNb2RlIGxvYWRT
Y2hlZHVsaW5nTW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fbG9hZFNjaGVkdWxpbmdNb2RlOyB9CiAg
ICAgdm9pZCBzZXRMb2FkU2NoZWR1bGluZ01vZGUoTG9hZFNjaGVkdWxpbmdNb2RlKTsKIApAQCAt
MTE0Niw2ICsxMTQ4LDcgQEAgcHJpdmF0ZToKICAgICBNb25vdG9uaWNUaW1lIG1fbGFzdFJlbmRl
cmluZ1VwZGF0ZVRpbWVzdGFtcDsKICAgICAKICAgICBib29sIG1fdGV4dEludGVyYWN0aW9uRW5h
YmxlZCB7IHRydWUgfTsKKyAgICBjb25zdCBib29sIG1faHR0cHNVcGdyYWRlRW5hYmxlZCB7IHRy
dWUgfTsKICAgICBtdXRhYmxlIE1lZGlhU2Vzc2lvbkdyb3VwSWRlbnRpZmllciBtX21lZGlhU2Vz
c2lvbkdyb3VwSWRlbnRpZmllcjsKIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZUNvbmZpZ3VyYXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VD
b25maWd1cmF0aW9uLmgJKHJldmlzaW9uIDI3Mjc4NCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZUNvbmZpZ3VyYXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMTM0LDYgKzEzNCw3IEBAIHB1
YmxpYzoKICAgICBib29sIHVzZXJTY3JpcHRzU2hvdWxkV2FpdFVudGlsTm90aWZpY2F0aW9uIHsg
dHJ1ZSB9OwogICAgIFNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nIHNob3VsZFJl
bGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nIHsgU2hvdWxkUmVsYXhUaGlyZFBhcnR5Q29va2ll
QmxvY2tpbmc6Ok5vIH07CiAgICAgYm9vbCB0ZXh0SW50ZXJhY3Rpb25FbmFibGVkIHsgdHJ1ZSB9
OworICAgIGJvb2wgaHR0cHNVcGdyYWRlRW5hYmxlZCB7IHRydWUgfTsKIH07CiAKIH0KSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvVXNlckNvbnRlbnRQcm92aWRlci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGFnZS9Vc2VyQ29udGVudFByb3ZpZGVyLmNwcAkocmV2aXNpb24g
MjcyNzg0KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9Vc2VyQ29udGVudFByb3ZpZGVyLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTAyLDEyICsxMDIsMTIgQEAgc3RhdGljIGJvb2wgY29udGVudFJ1
bGVMaXN0c0VuYWJsZWQoY29ucwogICAgIHJldHVybiB0cnVlOwogfQogICAgIAotQ29udGVudFJ1
bGVMaXN0UmVzdWx0cyBVc2VyQ29udGVudFByb3ZpZGVyOjpwcm9jZXNzQ29udGVudFJ1bGVMaXN0
c0ZvckxvYWQoY29uc3QgVVJMJiB1cmwsIE9wdGlvblNldDxDb250ZW50RXh0ZW5zaW9uczo6UmVz
b3VyY2VUeXBlPiByZXNvdXJjZVR5cGUsIERvY3VtZW50TG9hZGVyJiBpbml0aWF0aW5nRG9jdW1l
bnRMb2FkZXIpCitDb250ZW50UnVsZUxpc3RSZXN1bHRzIFVzZXJDb250ZW50UHJvdmlkZXI6OnBy
b2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZChQYWdlJiBwYWdlLCBjb25zdCBVUkwmIHVybCwg
T3B0aW9uU2V0PENvbnRlbnRFeHRlbnNpb25zOjpSZXNvdXJjZVR5cGU+IHJlc291cmNlVHlwZSwg
RG9jdW1lbnRMb2FkZXImIGluaXRpYXRpbmdEb2N1bWVudExvYWRlcikKIHsKICAgICBpZiAoIWNv
bnRlbnRSdWxlTGlzdHNFbmFibGVkKGluaXRpYXRpbmdEb2N1bWVudExvYWRlcikpCiAgICAgICAg
IHJldHVybiB7IH07CiAKLSAgICByZXR1cm4gdXNlckNvbnRlbnRFeHRlbnNpb25CYWNrZW5kKCku
cHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNGb3JMb2FkKHVybCwgcmVzb3VyY2VUeXBlLCBpbml0aWF0
aW5nRG9jdW1lbnRMb2FkZXIpOworICAgIHJldHVybiB1c2VyQ29udGVudEV4dGVuc2lvbkJhY2tl
bmQoKS5wcm9jZXNzQ29udGVudFJ1bGVMaXN0c0ZvckxvYWQocGFnZSwgdXJsLCByZXNvdXJjZVR5
cGUsIGluaXRpYXRpbmdEb2N1bWVudExvYWRlcik7CiB9CiAjZW5kaWYKIApJbmRleDogU291cmNl
L1dlYkNvcmUvcGFnZS9Vc2VyQ29udGVudFByb3ZpZGVyLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGFnZS9Vc2VyQ29udGVudFByb3ZpZGVyLmgJKHJldmlzaW9uIDI3Mjc4NCkKKysr
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvVXNlckNvbnRlbnRQcm92aWRlci5oCSh3b3JraW5nIGNvcHkp
CkBAIC04OCw3ICs4OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbW92ZVBhZ2UoUGFnZSYpOwog
CiAjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykKLSAgICBDb250ZW50UnVsZUxpc3RSZXN1
bHRzIHByb2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZChjb25zdCBVUkwmLCBPcHRpb25TZXQ8
Q29udGVudEV4dGVuc2lvbnM6OlJlc291cmNlVHlwZT4sIERvY3VtZW50TG9hZGVyJiBpbml0aWF0
aW5nRG9jdW1lbnRMb2FkZXIpOworICAgIENvbnRlbnRSdWxlTGlzdFJlc3VsdHMgcHJvY2Vzc0Nv
bnRlbnRSdWxlTGlzdHNGb3JMb2FkKFBhZ2UmLCBjb25zdCBVUkwmLCBPcHRpb25TZXQ8Q29udGVu
dEV4dGVuc2lvbnM6OlJlc291cmNlVHlwZT4sIERvY3VtZW50TG9hZGVyJiBpbml0aWF0aW5nRG9j
dW1lbnRMb2FkZXIpOwogI2VuZGlmCiAKIHByb3RlY3RlZDoKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lv
biAyNzI3ODQpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDI5IEBACisyMDIxLTAyLTEyICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2Vu
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIEFQSSB0byBkaXNhYmxlIEhUVFBTIHVwZ3JhZGUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTU5MQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTYyNTQ5NDU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
R2VvZmYgR2FyZW4uCisKKyAgICAgICAgKiBTaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVy
cy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29k
ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmRl
Y29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVBhZ2VDb25maWd1cmF0aW9uLmNwcDoKKyAgICAgICAg
KEFQSTo6UGFnZUNvbmZpZ3VyYXRpb246OmNvcHkgY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKEFQSTo6UGFnZUNvbmZpZ3Vy
YXRpb246OnNldEhUVFBTVXBncmFkZUVuYWJsZWQpOgorICAgICAgICAoQVBJOjpQYWdlQ29uZmln
dXJhdGlvbjo6aHR0cHNVcGdyYWRlRW5hYmxlZCBjb25zdCk6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tOgorICAgICAgICAoLVtXS1dlYlZp
ZXdDb25maWd1cmF0aW9uIHVwZ3JhZGVDb21tb25Lbm93blJlcXVlc3RzVG9IVFRQU10pOgorICAg
ICAgICAoLVtXS1dlYlZpZXdDb25maWd1cmF0aW9uIHNldFVwZ3JhZGVDb21tb25Lbm93blJlcXVl
c3RzVG9IVFRQUzpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpjcmVhdGlvblBhcmFtZXRlcnMpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6bV9s
aW1pdHNOYXZpZ2F0aW9uc1RvQXBwQm91bmREb21haW5zKToKKwogMjAyMS0wMi0xMiAgQWxleCBD
aHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFN0b3AgdXNp
bmcgR2VuZXJpY0NhbGxiYWNrIGZyb20gV2ViUGFnZVByb3h5CkluZGV4OiBTb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAkocmV2aXNpb24g
MjcyNzg0KQorKysgU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVy
cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3OSw2ICsxNzksNyBAQCB2b2lkIFdlYlBhZ2VDcmVh
dGlvblBhcmFtZXRlcnM6OmVuY29kZShJCiAjZW5kaWYKICAgICAKICAgICBlbmNvZGVyIDw8IHRl
eHRJbnRlcmFjdGlvbkVuYWJsZWQ7CisgICAgZW5jb2RlciA8PCBodHRwc1VwZ3JhZGVFbmFibGVk
OwogfQogCiBPcHRpb25hbDxXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzPiBXZWJQYWdlQ3JlYXRp
b25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQpAQCAtNTczLDYgKzU3
NCw5IEBAIE9wdGlvbmFsPFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM+IFdlYlAKICAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMudGV4dEludGVyYWN0aW9uRW5hYmxlZCkpCiAgICAg
ICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFt
ZXRlcnMuaHR0cHNVcGdyYWRlRW5hYmxlZCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7
CisKICAgICByZXR1cm4gcGFyYW1ldGVyczsKIH0KIApJbmRleDogU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAkocmV2aXNpb24gMjcyNzg0KQor
KysgU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNTEsNiArMjUxLDcgQEAgc3RydWN0IFdlYlBhZ2VDcmVhdGlvblBhcmFt
ZXRlcnMgewogI2VuZGlmCiAKICAgICBib29sIHRleHRJbnRlcmFjdGlvbkVuYWJsZWQgeyB0cnVl
IH07CisgICAgYm9vbCBodHRwc1VwZ3JhZGVFbmFibGVkIHsgdHJ1ZSB9OwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAJKHJldmlzaW9uIDI3Mjc4NCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc4NzksNiArNzg3OSw3IEBAIFdlYlBhZ2VD
cmVhdGlvblBhcmFtZXRlcnMgV2ViUGFnZVByb3h5OjoKICNlbmRpZgogICAgIAogICAgIHBhcmFt
ZXRlcnMudGV4dEludGVyYWN0aW9uRW5hYmxlZCA9IHByZWZlcmVuY2VzKCkudGV4dEludGVyYWN0
aW9uRW5hYmxlZCgpOworICAgIHBhcmFtZXRlcnMuaHR0cHNVcGdyYWRlRW5hYmxlZCA9IG1fY29u
ZmlndXJhdGlvbi0+aHR0cHNVcGdyYWRlRW5hYmxlZCgpOwogCiAgICAgcmV0dXJuIHBhcmFtZXRl
cnM7CiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3Vy
YXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQ
YWdlQ29uZmlndXJhdGlvbi5jcHAJKHJldmlzaW9uIDI3Mjc4NCkKKysrIFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTk0LDYgKzk0LDcgQEAgUmVmPFBhZ2VDb25maWd1cmF0aW9uPiBQYWdlQ29uZmlndXJhdGlvbgog
I2VuZGlmCiAKICAgICBjb3B5LT5tX21lZGlhQ2FwdHVyZUVuYWJsZWQgPSB0aGlzLT5tX21lZGlh
Q2FwdHVyZUVuYWJsZWQ7CisgICAgY29weS0+bV9odHRwc1VwZ3JhZGVFbmFibGVkID0gdGhpcy0+
bV9odHRwc1VwZ3JhZGVFbmFibGVkOwogCiAgICAgcmV0dXJuIGNvcHk7CiB9CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uaAko
cmV2aXNpb24gMjcyNzg0KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVBhZ2VD
b25maWd1cmF0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTE2MSw2ICsxNjEsOSBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzZXRNZWRpYUNhcHR1cmVFbmFibGVkKGJvb2wgdmFsdWUpIHsgbV9tZWRpYUNh
cHR1cmVFbmFibGVkID0gdmFsdWU7IH0KICAgICBib29sIG1lZGlhQ2FwdHVyZUVuYWJsZWQoKSBj
b25zdCB7IHJldHVybiBtX21lZGlhQ2FwdHVyZUVuYWJsZWQ7IH0KIAorICAgIHZvaWQgc2V0SFRU
UFNVcGdyYWRlRW5hYmxlZChib29sIGVuYWJsZWQpIHsgbV9odHRwc1VwZ3JhZGVFbmFibGVkID0g
ZW5hYmxlZDsgfQorICAgIGJvb2wgaHR0cHNVcGdyYWRlRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJu
IG1faHR0cHNVcGdyYWRlRW5hYmxlZDsgfQorCiAgICAgdm9pZCBzZXRTaG91bGRSZWxheFRoaXJk
UGFydHlDb29raWVCbG9ja2luZyhXZWJDb3JlOjpTaG91bGRSZWxheFRoaXJkUGFydHlDb29raWVC
bG9ja2luZyB2YWx1ZSkgeyBtX3Nob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nID0g
dmFsdWU7IH0KICAgICBXZWJDb3JlOjpTaG91bGRSZWxheFRoaXJkUGFydHlDb29raWVCbG9ja2lu
ZyBzaG91bGRSZWxheFRoaXJkUGFydHlDb29raWVCbG9ja2luZygpIGNvbnN0IHsgcmV0dXJuIG1f
c2hvdWxkUmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmc7IH0KICAgICAKQEAgLTIxMSw2ICsy
MTQsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICBib29sIG1fbWVkaWFDYXB0dXJlRW5hYmxl
ZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX2h0dHBzVXBncmFkZUVuYWJsZWQgeyB0cnVlIH07CiAK
ICAgICBXZWJDb3JlOjpTaG91bGRSZWxheFRoaXJkUGFydHlDb29raWVCbG9ja2luZyBtX3Nob3Vs
ZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nIHsgV2ViQ29yZTo6U2hvdWxkUmVsYXhUaGly
ZFBhcnR5Q29va2llQmxvY2tpbmc6Ok5vIH07CiB9OwpJbmRleDogU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24uaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5o
CShyZXZpc2lvbiAyNzI3ODQpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Q29uZmlndXJhdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMjgsNiArMTI4LDEx
IEBAIFdLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4xMCksIGlvcyg4LjAKICAqLwogQHByb3Bl
cnR5IChub25hdG9taWMpIEJPT0wgYWxsb3dzQWlyUGxheUZvck1lZGlhUGxheWJhY2sgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMC4xMSksIGlvcyg5LjApKTsKIAorLyohIEBhYnN0cmFjdCBBIEJv
b2xlYW4gdmFsdWUgaW5kaWNhdGluZyB3aGV0aGVyIEhUVFAgcmVxdWVzdHMgdG8gc2VydmVycyBr
bm93biB0byBzdXBwb3J0IEhUVFBTIHNob3VsZCBiZSBhdXRvbWF0aWNhbGx5IHVwZ3JhZGVkIHRv
IEhUVFBTIHJlcXVlc3RzLgorIEBkaXNjdXNzaW9uIFRoZSBkZWZhdWx0IHZhbHVlIGlzIFlFUy4K
KyAqLworQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgdXBncmFkZUtub3duSG9zdHNUb0hUVFBT
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CisK
IEBwcm9wZXJ0eSAobm9uYXRvbWljKSBXS0F1ZGlvdmlzdWFsTWVkaWFUeXBlcyBtZWRpYVR5cGVz
UmVxdWlyaW5nVXNlckFjdGlvbkZvclBsYXliYWNrIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAu
MTIpLCBpb3MoMTAuMCkpOwogCiAvKiEgQGFic3RyYWN0IFRoZSBzZXQgb2YgZGVmYXVsdCB3ZWJw
YWdlIHByZWZlcmVuY2VzIHRvIHVzZSB3aGVuIGxvYWRpbmcgYW5kIHJlbmRlcmluZyBjb250ZW50
LgpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZp
Z3VyYXRpb24ubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW0JKHJldmlzaW9uIDI3Mjc4NCkKKysrIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tCSh3
b3JraW5nIGNvcHkpCkBAIC00NzcsNiArNDc3LDE2IEBAIC0gKHZvaWQpc2V0VXNlckNvbnRlbnRD
b250cm9sbGVyOihXS1VzZXIKICAgICBfdXNlckNvbnRlbnRDb250cm9sbGVyLnNldCh1c2VyQ29u
dGVudENvbnRyb2xsZXIpOwogfQogCistIChCT09MKXVwZ3JhZGVLbm93bkhvc3RzVG9IVFRQUwor
eworICAgIHJldHVybiBfcGFnZUNvbmZpZ3VyYXRpb24tPmh0dHBzVXBncmFkZUVuYWJsZWQoKTsK
K30KKworLSAodm9pZClzZXRVcGdyYWRlS25vd25Ib3N0c1RvSFRUUFM6KEJPT0wpdXBncmFkZQor
eworICAgIF9wYWdlQ29uZmlndXJhdGlvbi0+c2V0SFRUUFNVcGdyYWRlRW5hYmxlZCh1cGdyYWRl
KTsKK30KKwogLSAoV0tXZWJzaXRlRGF0YVN0b3JlICopd2Vic2l0ZURhdGFTdG9yZQogewogICAg
IHJldHVybiBfd2Vic2l0ZURhdGFTdG9yZS5nZXQoW10geyByZXR1cm4gW1dLV2Vic2l0ZURhdGFT
dG9yZSBkZWZhdWx0RGF0YVN0b3JlXTsgfSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkocmV2aXNpb24gMjcyNzg0KQorKysgU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU5
Myw2ICs1OTMsNyBAQCBXZWJQYWdlOjpXZWJQYWdlKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgCiAg
ICAgcGFnZUNvbmZpZ3VyYXRpb24ubG9hZHNTdWJyZXNvdXJjZXMgPSBwYXJhbWV0ZXJzLmxvYWRz
U3VicmVzb3VyY2VzOwogICAgIHBhZ2VDb25maWd1cmF0aW9uLmxvYWRzRnJvbU5ldHdvcmsgPSBw
YXJhbWV0ZXJzLmxvYWRzRnJvbU5ldHdvcms7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uc2hvdWxk
UmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmcgPSBwYXJhbWV0ZXJzLnNob3VsZFJlbGF4VGhp
cmRQYXJ0eUNvb2tpZUJsb2NraW5nOworICAgIHBhZ2VDb25maWd1cmF0aW9uLmh0dHBzVXBncmFk
ZUVuYWJsZWQgPSBwYXJhbWV0ZXJzLmh0dHBzVXBncmFkZUVuYWJsZWQ7CiAKICAgICBwYWdlQ29u
ZmlndXJhdGlvbi50ZXh0SW50ZXJhY3Rpb25FbmFibGVkID0gcGFyYW1ldGVycy50ZXh0SW50ZXJh
Y3Rpb25FbmFibGVkOwogICAgIApJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMjcyNzg0KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDItMTIgIEFsZXggQ2hyaXN0ZW5z
ZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBBZGQgQVBJIHRvIGRpc2Fi
bGUgSFRUUFMgdXBncmFkZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjIxNTkxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NjI1NDk0NT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBHZW9mZiBHYXJlbi4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbToKKyAgICAgICAgKFRF
U1QpOgorCiAyMDIxLTAyLTEyICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4K
IAogICAgICAgICBbd2Via2l0LXBhdGNoXSBVc2UgaWRlbnRpZmllcnMgd2hlbiBwb3N0aW5nIHRv
IGJ1Z3ppbGxhCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dL
V2ViVmlld0NvbmZpZ3VyYXRpb24ubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tCShyZXZpc2lvbiAy
NzI3ODQpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmll
d0NvbmZpZ3VyYXRpb24ubW0JKHdvcmtpbmcgY29weSkKQEAgLTI1LDEwICsyNSwxMyBAQAogCiAj
aW1wb3J0ICJjb25maWcuaCIKIAorI2ltcG9ydCAiSFRUUFNlcnZlci5oIgogI2ltcG9ydCAiUGxh
dGZvcm1VdGlsaXRpZXMuaCIKKyNpbXBvcnQgIlRlc3ROYXZpZ2F0aW9uRGVsZWdhdGUuaCIKICNp
bXBvcnQgPFdlYktpdC9XS1dlYlZpZXcuaD4KICNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdDb25m
aWd1cmF0aW9uUHJpdmF0ZS5oPgotI2ltcG9ydCA8V2ViS2l0L1dLV2Vic2l0ZURhdGFTdG9yZS5o
PgorI2ltcG9ydCA8V2ViS2l0L1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaD4KKyNpbXBvcnQg
PFdlYktpdC9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oPgogI2ltcG9ydCA8d3Rm
L0Z1bmN0aW9uLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAKQEAgLTk1LDMgKzk4LDQ5
IEBAIFRFU1QoV2ViS2l0LCBEZWZhdWx0Q29uZmlndXJhdGlvbkVNRSkKICAgICB9XTsKICAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwogfQorCitURVNUKFdlYktpdCwgQ29uZmln
dXJhdGlvbkhUVFBTVXBncmFkZSkKK3sKKyAgICB1c2luZyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQ
STsKKyAgICBib29sIGRvbmUgPSBmYWxzZTsKKyAgICBWZWN0b3I8Y2hhcj4gcmVxdWVzdEJ5dGVz
OworICAgIEhUVFBTZXJ2ZXIgc2VydmVyKFsmXSAoQ29ubmVjdGlvbiBjb25uZWN0aW9uKSB7Cisg
ICAgICAgIGNvbm5lY3Rpb24ucmVjZWl2ZUhUVFBSZXF1ZXN0KFsmLCBjb25uZWN0aW9uXShWZWN0
b3I8Y2hhcj4mJiBieXRlcykgbXV0YWJsZSB7CisgICAgICAgICAgICByZXF1ZXN0Qnl0ZXMgPSBX
VEZNb3ZlKGJ5dGVzKTsKKyAgICAgICAgICAgIGRvbmUgPSB0cnVlOworICAgICAgICB9KTsKKyAg
ICB9KTsKKworICAgIGF1dG8gcnVuVGVzdCA9IFsmXSAoYm9vbCB1cGdyYWRlKSB7CisgICAgICAg
IGRvbmUgPSBmYWxzZTsKKyAgICAgICAgYXV0byBzdG9yZUNvbmZpZ3VyYXRpb24gPSBbW1tfV0tX
ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiBhbGxvY10gaW5pdE5vblBlcnNpc3RlbnRDb25m
aWd1cmF0aW9uXSBhdXRvcmVsZWFzZV07CisgICAgICAgIHN0b3JlQ29uZmlndXJhdGlvbi5hbGxv
d3NTZXJ2ZXJQcmVjb25uZWN0ID0gTk87CisgICAgICAgIHN0b3JlQ29uZmlndXJhdGlvbi5wcm94
eUNvbmZpZ3VyYXRpb24gPSBAeworICAgICAgICAgICAgKE5TU3RyaW5nICopa0NGU3RyZWFtUHJv
cGVydHlIVFRQU1Byb3h5SG9zdDogQCIxMjcuMC4wLjEiLAorICAgICAgICAgICAgKE5TU3RyaW5n
ICopa0NGU3RyZWFtUHJvcGVydHlIVFRQU1Byb3h5UG9ydDogQChzZXJ2ZXIucG9ydCgpKSwKKyAg
ICAgICAgICAgIChOU1N0cmluZyAqKWtDRlN0cmVhbVByb3BlcnR5SFRUUFByb3h5SG9zdDogQCIx
MjcuMC4wLjEiLAorICAgICAgICAgICAgKE5TU3RyaW5nICopa0NGU3RyZWFtUHJvcGVydHlIVFRQ
UHJveHlQb3J0OiBAKHNlcnZlci5wb3J0KCkpLAorICAgICAgICB9OworICAgICAgICBhdXRvIHN0
b3JlID0gW1tbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9u
OnN0b3JlQ29uZmlndXJhdGlvbl0gYXV0b3JlbGVhc2VdOworICAgICAgICBhdXRvIGNvbmZpZ3Vy
YXRpb24gPSBbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gbmV3XSBhdXRvcmVsZWFzZV07CisgICAg
ICAgIGNvbmZpZ3VyYXRpb24ud2Vic2l0ZURhdGFTdG9yZSA9IHN0b3JlOworICAgICAgICBjb25m
aWd1cmF0aW9uLnVwZ3JhZGVLbm93bkhvc3RzVG9IVFRQUyA9IHVwZ3JhZGU7CisgICAgICAgIGF1
dG8gd2ViVmlldyA9IFtbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RaZXJv
IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0gYXV0b3JlbGVhc2VdOworICAgICAgICBhdXRv
IHJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3Ry
aW5nOkAiaHR0cDovL3d3dy5vcGVuZ2wub3JnLyJdXTsKKyAgICAgICAgW3dlYlZpZXcgbG9hZFJl
cXVlc3Q6cmVxdWVzdF07CisgICAgICAgIFV0aWw6OnJ1bigmZG9uZSk7CisgICAgfTsKKworICAg
IGF1dG8gY2hlY2tSZXF1ZXN0Qnl0ZXNTdGFydHNXaXRoID0gWyZdIChjb25zdCBjaGFyKiBzdHJp
bmcpIHsKKyAgICAgICAgRVhQRUNUX0dUKHJlcXVlc3RCeXRlcy5zaXplKCksIHN0cmxlbihzdHJp
bmcpKTsKKyAgICAgICAgaWYgKHJlcXVlc3RCeXRlcy5zaXplKCkgPD0gc3RybGVuKHN0cmluZykp
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIHJlcXVlc3RCeXRlc1tzdHJsZW4oc3RyaW5n
KV0gPSAwOworICAgICAgICBFWFBFQ1RfV0tfU1RSRVEocmVxdWVzdEJ5dGVzLmRhdGEoKSwgc3Ry
aW5nKTsKKyAgICB9OworCisgICAgcnVuVGVzdCh0cnVlKTsKKyAgICBjaGVja1JlcXVlc3RCeXRl
c1N0YXJ0c1dpdGgoIkNPTk5FQ1Qgd3d3Lm9wZW5nbC5vcmc6NDQzIEhUVFAvMS4xXHJcbiIpOwor
ICAgIHJ1blRlc3QoZmFsc2UpOworICAgIGNoZWNrUmVxdWVzdEJ5dGVzU3RhcnRzV2l0aCgiR0VU
IGh0dHA6Ly93d3cub3BlbmdsLm9yZy8gSFRUUC8xLjFcclxuIik7Cit9Cg==
</data>
<flag name="commit-queue"
          id="438665"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>