<?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>201153</bug_id>
          
          <creation_ts>2019-08-26 14:42:47 -0700</creation_ts>
          <short_desc>Introduce subclasses to RemoteObjectRegistry for the UIProcess and the WebProcess</short_desc>
          <delta_ts>2019-08-27 11:23:20 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1565103</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-08-26 14:42:47 -0700</bug_when>
    <thetext>Introduce subclasses to RemoteObjectRegistry for the UIProcess and the WebProcess. This improves clarity.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1565104</commentid>
    <comment_count>1</comment_count>
      <attachid>377271</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-08-26 14:45:17 -0700</bug_when>
    <thetext>Created attachment 377271
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1565135</commentid>
    <comment_count>2</comment_count>
      <attachid>377280</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-08-26 15:58:39 -0700</bug_when>
    <thetext>Created attachment 377280
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1565423</commentid>
    <comment_count>3</comment_count>
      <attachid>377280</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-27 11:22:18 -0700</bug_when>
    <thetext>Comment on attachment 377280
Patch

Clearing flags on attachment: 377280

Committed r249155: &lt;https://trac.webkit.org/changeset/249155&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1565424</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-27 11:22:20 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1565426</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-08-27 11:23:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/54756026&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377271</attachid>
            <date>2019-08-26 14:45:17 -0700</date>
            <delta_ts>2019-08-26 15:58:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201153-20190826144517.patch</filename>
            <type>text/plain</type>
            <size>31771</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5MTEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDVlYWFjMTkxMmJkNGMyMmU2
M2Y5Y2YzMTg5Mzk3M2U5NzA3MjY1MjguLjMyNzU5MTdlMGMwODk5MTI2ODRiNmE0MDJhYThlY2Y4
YzBmNjc2N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDUgQEAKKzIwMTktMDgtMjYgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBJbnRyb2R1Y2Ugc3ViY2xhc3NlcyB0
byBSZW1vdGVPYmplY3RSZWdpc3RyeSBmb3IgdGhlIFVJUHJvY2VzcyBhbmQgdGhlIFdlYlByb2Nl
c3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTE1
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMg
YmV0dGVyIGZhY3RvcmluZyBpbXByb3ZlcyBjb2RlIGNsYXJpdHkuCisKKyAgICAgICAgKiBQbGF0
Zm9ybU1hYy5jbWFrZToKKyAgICAgICAgKiBTaGFyZWQvQVBJL0NvY29hL1JlbW90ZU9iamVjdFJl
Z2lzdHJ5Lmg6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU9iamVjdFJlZ2lzdHJ5Ojp+UmVtb3Rl
T2JqZWN0UmVnaXN0cnkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVPYmplY3RSZWdpc3RyeTo6
dGFrZUJhY2tncm91bmRBY3Rpdml0eVRva2VuKToKKyAgICAgICAgKiBTaGFyZWQvQVBJL0NvY29h
L1JlbW90ZU9iamVjdFJlZ2lzdHJ5Lm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVPYmplY3RS
ZWdpc3RyeTo6UmVtb3RlT2JqZWN0UmVnaXN0cnkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVP
YmplY3RSZWdpc3RyeTo6c2VuZEludm9jYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVP
YmplY3RSZWdpc3RyeTo6c2VuZFJlcGx5QmxvY2spOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVP
YmplY3RSZWdpc3RyeTo6c2VuZFVudXNlZFJlcGx5KToKKyAgICAgICAgKiBTaGFyZWQvQVBJL0Nv
Y29hL19XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5Lm1tOgorICAgICAgICAoLVtfV0tSZW1vdGVPYmpl
Y3RSZWdpc3RyeSBfaW5pdFdpdGhXZWJQYWdlOl0pOgorICAgICAgICAoLVtfV0tSZW1vdGVPYmpl
Y3RSZWdpc3RyeSBfaW5pdFdpdGhXZWJQYWdlUHJveHk6XSk6CisgICAgICAgICogU291cmNlc0Nv
Y29hLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVUlSZW1vdGVPYmplY3RSZWdpc3Ry
eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpVSVJlbW90ZU9iamVjdFJlZ2lzdHJ5Ojp0
YWtlQmFja2dyb3VuZEFjdGl2aXR5VG9rZW4pOgorICAgICAgICAoV2ViS2l0OjpVSVJlbW90ZU9i
amVjdFJlZ2lzdHJ5OjpVSVJlbW90ZU9iamVjdFJlZ2lzdHJ5KToKKyAgICAgICAgKFdlYktpdDo6
VUlSZW1vdGVPYmplY3RSZWdpc3RyeTo6c2VuZEludm9jYXRpb24pOgorICAgICAgICAoV2ViS2l0
OjpVSVJlbW90ZU9iamVjdFJlZ2lzdHJ5OjptZXNzYWdlU2VuZGVyKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQ29jb2EvVUlSZW1vdGVPYmplY3RSZWdpc3RyeS5oOiBBZGRlZC4KKyAgICAgICAgKiBX
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvQ29jb2EvV2ViUGFnZUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpz
ZXRSZW1vdGVPYmplY3RSZWdpc3RyeSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnJlbW90
ZU9iamVjdFJlZ2lzdHJ5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2Vi
UmVtb3RlT2JqZWN0UmVnaXN0cnkuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUmVt
b3RlT2JqZWN0UmVnaXN0cnk6OldlYlJlbW90ZU9iamVjdFJlZ2lzdHJ5KToKKyAgICAgICAgKFdl
YktpdDo6V2ViUmVtb3RlT2JqZWN0UmVnaXN0cnk6On5XZWJSZW1vdGVPYmplY3RSZWdpc3RyeSk6
CisgICAgICAgIChXZWJLaXQ6OldlYlJlbW90ZU9iamVjdFJlZ2lzdHJ5OjpjbG9zZSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlJlbW90ZU9iamVjdFJlZ2lzdHJ5OjptZXNzYWdlU2VuZGVyKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2ViUmVtb3RlT2JqZWN0UmVnaXN0cnku
aDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjbG9zZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuaDoKKwogMjAxOS0wOC0yNiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVo
QGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChpT1MgMTMpOiBUZXN0cyB0aGF0IHNp
bXVsYXRlIG11bHRpcGxlIGJhY2stdG8tYmFjayBzaW5nbGUgdGFwcyBmYWlsIG9yIHRpbWUgb3V0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtTWFjLmNtYWtlIGIvU291cmNlL1dl
YktpdC9QbGF0Zm9ybU1hYy5jbWFrZQppbmRleCAwNWJjNTQxMjkyNTM4OWMzZDgxZTY0ZDU1MTY4
MDkxMjYxOWYyNmE1Li41OWNhNzEyNzRlYmY2MjU3MThkYjBjNjc4ZTFmODc5NDE3ZTRmMTllIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtTWFjLmNtYWtlCisrKyBiL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm1NYWMuY21ha2UKQEAgLTI1Miw2ICsyNTIsNyBAQCBsaXN0KEFQUEVORCBX
ZWJLaXRfU09VUkNFUwogICAgIFVJUHJvY2Vzcy9Db2NvYS9QYWdlQ2xpZW50SW1wbENvY29hLm1t
CiAgICAgVUlQcm9jZXNzL0NvY29hL1Nlc3Npb25TdGF0ZUNvZGluZy5tbQogICAgIFVJUHJvY2Vz
cy9Db2NvYS9VSURlbGVnYXRlLm1tCisgICAgVUlQcm9jZXNzL0NvY29hL1VJUmVtb3RlT2JqZWN0
UmVnaXN0cnkuY3BwCiAgICAgVUlQcm9jZXNzL0NvY29hL1ZlcnNpb25DaGVja3MubW0KICAgICBV
SVByb2Nlc3MvQ29jb2EvV0tGdWxsS2V5Ym9hcmRBY2Nlc3NXYXRjaGVyLm1tCiAgICAgVUlQcm9j
ZXNzL0NvY29hL1dLUmVsb2FkRnJhbWVFcnJvclJlY292ZXJ5QXR0ZW1wdGVyLm1tCkBAIC0zNjIs
NiArMzYzLDcgQEAgbGlzdChBUFBFTkQgV2ViS2l0X1NPVVJDRVMKICAgICBXZWJQcm9jZXNzL1dl
YlBhZ2UvVmlld0dlc3R1cmVHZW9tZXRyeUNvbGxlY3Rvci5jcHAKIAogICAgIFdlYlByb2Nlc3Mv
V2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29jb2EubW0KKyAgICBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29j
b2EvV2ViUmVtb3RlT2JqZWN0UmVnaXN0cnkuY3BwCiAKICAgICBXZWJQcm9jZXNzL1dlYlBhZ2Uv
bWFjL1BhZ2VCYW5uZXJNYWMubW0KICAgICBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29y
ZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9BUEkvQ29jb2EvUmVtb3RlT2JqZWN0UmVnaXN0cnkuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0FQSS9Db2NvYS9SZW1vdGVPYmplY3RSZWdpc3RyeS5oCmluZGV4IDQwNDA4MTc4MDAyYTk0Njcx
ZDM1MGRmMjYxZTA4Yzk1MGVlZjJiODIuLmExMTA1YzFmYzAyZDJkOTQ3NGFmNDdjZTFjNjFjZTNi
Mzk5MGMxZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9SZW1v
dGVPYmplY3RSZWdpc3RyeS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9S
ZW1vdGVPYmplY3RSZWdpc3RyeS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTMtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTI3LDggKzI3LDcgQEAKIAogI2luY2x1ZGUgIk1lc3NhZ2VS
ZWNlaXZlci5oIgogI2luY2x1ZGUgIlByb2Nlc3NUaHJvdHRsZXIuaCIKLSNpbmNsdWRlIDxXZWJD
b3JlL1BhZ2VJZGVudGlmaWVyLmg+Ci0jaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CisjaW5jbHVk
ZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvV2Vha09iakNQdHIuaD4KICNpbmNsdWRl
IDx3dGYvV2Vha1B0ci5oPgogCkBAIC00MiwyNCArNDEsMjMgQEAgbmFtZXNwYWNlIFdlYktpdCB7
CiAKIGNsYXNzIFJlbW90ZU9iamVjdEludm9jYXRpb247CiBjbGFzcyBVc2VyRGF0YTsKLWNsYXNz
IFdlYlBhZ2U7Ci1jbGFzcyBXZWJQYWdlUHJveHk7CiAKLWNsYXNzIFJlbW90ZU9iamVjdFJlZ2lz
dHJ5IGZpbmFsIDogcHVibGljIENhbk1ha2VXZWFrUHRyPFJlbW90ZU9iamVjdFJlZ2lzdHJ5Piwg
cHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKK2NsYXNzIFJlbW90ZU9iamVjdFJlZ2lzdHJ5
IDogcHVibGljIENhbk1ha2VXZWFrUHRyPFJlbW90ZU9iamVjdFJlZ2lzdHJ5PiwgcHVibGljIElQ
Qzo6TWVzc2FnZVJlY2VpdmVyIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1Ymxp
YzoKLSAgICBSZW1vdGVPYmplY3RSZWdpc3RyeShfV0tSZW1vdGVPYmplY3RSZWdpc3RyeSAqLCBX
ZWJQYWdlJik7Ci0gICAgUmVtb3RlT2JqZWN0UmVnaXN0cnkoX1dLUmVtb3RlT2JqZWN0UmVnaXN0
cnkgKiwgV2ViUGFnZVByb3h5Jik7CisgICAgdmlydHVhbCB+UmVtb3RlT2JqZWN0UmVnaXN0cnko
KSB7IH0KIAotICAgIH5SZW1vdGVPYmplY3RSZWdpc3RyeSgpOwotCi0gICAgdm9pZCBzZW5kSW52
b2NhdGlvbihjb25zdCBSZW1vdGVPYmplY3RJbnZvY2F0aW9uJik7CisgICAgdmlydHVhbCB2b2lk
IHNlbmRJbnZvY2F0aW9uKGNvbnN0IFJlbW90ZU9iamVjdEludm9jYXRpb24mKTsKICAgICB2b2lk
IHNlbmRSZXBseUJsb2NrKHVpbnQ2NF90IHJlcGx5SUQsIGNvbnN0IFVzZXJEYXRhJiBibG9ja0lu
dm9jYXRpb24pOwogICAgIHZvaWQgc2VuZFVudXNlZFJlcGx5KHVpbnQ2NF90IHJlcGx5SUQpOwog
Ci0gICAgdm9pZCBjbG9zZSgpOwotCitwcm90ZWN0ZWQ6CisgICAgZXhwbGljaXQgUmVtb3RlT2Jq
ZWN0UmVnaXN0cnkoX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkgKik7CisgICAgCiBwcml2YXRlOgor
ICAgIHZpcnR1YWwgUHJvY2Vzc1Rocm90dGxlcjo6QmFja2dyb3VuZEFjdGl2aXR5VG9rZW4gdGFr
ZUJhY2tncm91bmRBY3Rpdml0eVRva2VuKCkgeyByZXR1cm4gbnVsbHB0cjsgfQorICAgIHZpcnR1
YWwgSVBDOjpNZXNzYWdlU2VuZGVyJiBtZXNzYWdlU2VuZGVyKCkgPSAwOworCiAgICAgLy8gSVBD
OjpNZXNzYWdlUmVjZWl2ZXIKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOwogCkBAIC02OSwxMiArNjcsNyBAQCBwcml2
YXRlOgogICAgIHZvaWQgcmVsZWFzZVVudXNlZFJlcGx5QmxvY2sodWludDY0X3QgcmVwbHlJRCk7
CiAKICAgICBXZWFrT2JqQ1B0cjxfV0tSZW1vdGVPYmplY3RSZWdpc3RyeT4gbV9yZW1vdGVPYmpl
Y3RSZWdpc3RyeTsKLSAgICBJUEM6Ok1lc3NhZ2VTZW5kZXImIG1fbWVzc2FnZVNlbmRlcjsKLSAg
ICBGdW5jdGlvbjxQcm9jZXNzVGhyb3R0bGVyOjpCYWNrZ3JvdW5kQWN0aXZpdHlUb2tlbigpPiBt
X3Rha2VCYWNrZ3JvdW5kQWN0aXZpdHlUb2tlbjsKLSAgICBGdW5jdGlvbjx2b2lkKCk+IG1fbGF1
bmNoSW5pdGlhbFByb2Nlc3NJZk5lY2Vzc2FyeTsKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBQcm9j
ZXNzVGhyb3R0bGVyOjpCYWNrZ3JvdW5kQWN0aXZpdHlUb2tlbj4gbV9wZW5kaW5nUmVwbGllczsK
LSAgICBib29sIG1faXNSZWdpc3RlcmVkQXNNZXNzYWdlUmVjZWl2ZXIgeyBmYWxzZSB9OwotICAg
IFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIG1fbWVzc2FnZVJlY2VpdmVySUQ7CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9D
b2NvYS9SZW1vdGVPYmplY3RSZWdpc3RyeS5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9D
b2NvYS9SZW1vdGVPYmplY3RSZWdpc3RyeS5tbQppbmRleCAxY2I5ZTZjN2Q0MTUwZTk1ZGQ1YTU4
M2UzNzJkOTU2NWJiZjQ2MWI2Li5mNjIwNmNjZmI2ODMyYTgyMzk2OWU3MGVhMzVjY2M3OTgzMjU5
MzI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvUmVtb3RlT2Jq
ZWN0UmVnaXN0cnkubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL1JlbW90
ZU9iamVjdFJlZ2lzdHJ5Lm1tCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTMtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTI3LDcyICsyNywzNyBAQAogI2ltcG9ydCAiUmVtb3RlT2JqZWN0
UmVnaXN0cnkuaCIKIAogI2ltcG9ydCAiTWVzc2FnZVNlbmRlci5oIgotI2ltcG9ydCAiUHJvY2Vz
c1Rocm90dGxlci5oIgogI2ltcG9ydCAiUmVtb3RlT2JqZWN0SW52b2NhdGlvbi5oIgogI2ltcG9y
dCAiUmVtb3RlT2JqZWN0UmVnaXN0cnlNZXNzYWdlcy5oIgogI2ltcG9ydCAiVXNlckRhdGEuaCIK
LSNpbXBvcnQgIldlYlBhZ2UuaCIKLSNpbXBvcnQgIldlYlBhZ2VQcm94eS5oIgotI2ltcG9ydCAi
V2ViUHJvY2Vzcy5oIgotI2ltcG9ydCAiV2ViUHJvY2Vzc1Byb3h5LmgiCiAjaW1wb3J0ICJfV0tS
ZW1vdGVPYmplY3RSZWdpc3RyeUludGVybmFsLmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1S
ZW1vdGVPYmplY3RSZWdpc3RyeTo6UmVtb3RlT2JqZWN0UmVnaXN0cnkoX1dLUmVtb3RlT2JqZWN0
UmVnaXN0cnkgKnJlbW90ZU9iamVjdFJlZ2lzdHJ5LCBXZWJQYWdlJiBwYWdlKQorUmVtb3RlT2Jq
ZWN0UmVnaXN0cnk6OlJlbW90ZU9iamVjdFJlZ2lzdHJ5KF9XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5
ICpyZW1vdGVPYmplY3RSZWdpc3RyeSkKICAgICA6IG1fcmVtb3RlT2JqZWN0UmVnaXN0cnkocmVt
b3RlT2JqZWN0UmVnaXN0cnkpCi0gICAgLCBtX21lc3NhZ2VTZW5kZXIocGFnZSkKLSAgICAsIG1f
dGFrZUJhY2tncm91bmRBY3Rpdml0eVRva2VuKFtdIHsgcmV0dXJuIFByb2Nlc3NUaHJvdHRsZXI6
OkJhY2tncm91bmRBY3Rpdml0eVRva2VuKCk7IH0pCi0gICAgLCBtX2lzUmVnaXN0ZXJlZEFzTWVz
c2FnZVJlY2VpdmVyKHRydWUpCi0gICAgLCBtX21lc3NhZ2VSZWNlaXZlcklEKHBhZ2UucGFnZUlE
KCkpCiB7Ci0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1l
c3NhZ2VzOjpSZW1vdGVPYmplY3RSZWdpc3RyeTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX21l
c3NhZ2VSZWNlaXZlcklELCAqdGhpcyk7Ci0gICAgcGFnZS5zZXRSZW1vdGVPYmplY3RSZWdpc3Ry
eSgqdGhpcyk7Ci19Ci0KLVJlbW90ZU9iamVjdFJlZ2lzdHJ5OjpSZW1vdGVPYmplY3RSZWdpc3Ry
eShfV0tSZW1vdGVPYmplY3RSZWdpc3RyeSAqcmVtb3RlT2JqZWN0UmVnaXN0cnksIFdlYlBhZ2VQ
cm94eSYgcGFnZSkKLSAgICA6IG1fcmVtb3RlT2JqZWN0UmVnaXN0cnkocmVtb3RlT2JqZWN0UmVn
aXN0cnkpCi0gICAgLCBtX21lc3NhZ2VTZW5kZXIocGFnZSkKLSAgICAsIG1fdGFrZUJhY2tncm91
bmRBY3Rpdml0eVRva2VuKFsmcGFnZV0geyByZXR1cm4gcGFnZS5wcm9jZXNzKCkudGhyb3R0bGVy
KCkuYmFja2dyb3VuZEFjdGl2aXR5VG9rZW4oKTsgfSkKLSAgICAsIG1fbGF1bmNoSW5pdGlhbFBy
b2Nlc3NJZk5lY2Vzc2FyeShbJnBhZ2VdIHsgcGFnZS5sYXVuY2hJbml0aWFsUHJvY2Vzc0lmTmVj
ZXNzYXJ5KCk7IH0pCi17Ci19Ci0KLVJlbW90ZU9iamVjdFJlZ2lzdHJ5Ojp+UmVtb3RlT2JqZWN0
UmVnaXN0cnkoKQotewotICAgIGNsb3NlKCk7Ci19Ci0KLXZvaWQgUmVtb3RlT2JqZWN0UmVnaXN0
cnk6OmNsb3NlKCkKLXsKLSAgICBpZiAobV9pc1JlZ2lzdGVyZWRBc01lc3NhZ2VSZWNlaXZlcikg
ewotICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIo
TWVzc2FnZXM6OlJlbW90ZU9iamVjdFJlZ2lzdHJ5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1f
bWVzc2FnZVJlY2VpdmVySUQpOwotICAgICAgICBtX2lzUmVnaXN0ZXJlZEFzTWVzc2FnZVJlY2Vp
dmVyID0gZmFsc2U7Ci0gICAgfQogfQogCiB2b2lkIFJlbW90ZU9iamVjdFJlZ2lzdHJ5OjpzZW5k
SW52b2NhdGlvbihjb25zdCBSZW1vdGVPYmplY3RJbnZvY2F0aW9uJiBpbnZvY2F0aW9uKQogewot
ICAgIC8vIEZvciBiYWNrd2FyZC1jb21wYXRpYmlsaXR5LCBzdXBwb3J0IGludm9raW5nIGluamVj
dGVkIGJ1bmRsZSBtZXRob2RzIGJlZm9yZSBoYXZpbmcgZG9uZSBhbnkgbG9hZCBpbiB0aGUgV2Vi
Vmlldy4KLSAgICBpZiAobV9sYXVuY2hJbml0aWFsUHJvY2Vzc0lmTmVjZXNzYXJ5KQotICAgICAg
ICBtX2xhdW5jaEluaXRpYWxQcm9jZXNzSWZOZWNlc3NhcnkoKTsKIAogICAgIGlmIChhdXRvKiBy
ZXBseUluZm8gPSBpbnZvY2F0aW9uLnJlcGx5SW5mbygpKSB7CiAgICAgICAgIEFTU0VSVCghbV9w
ZW5kaW5nUmVwbGllcy5jb250YWlucyhyZXBseUluZm8tPnJlcGx5SUQpKTsKLSAgICAgICAgbV9w
ZW5kaW5nUmVwbGllcy5hZGQocmVwbHlJbmZvLT5yZXBseUlELCBtX3Rha2VCYWNrZ3JvdW5kQWN0
aXZpdHlUb2tlbigpKTsKKyAgICAgICAgbV9wZW5kaW5nUmVwbGllcy5hZGQocmVwbHlJbmZvLT5y
ZXBseUlELCB0YWtlQmFja2dyb3VuZEFjdGl2aXR5VG9rZW4oKSk7CiAgICAgfQogCi0gICAgbV9t
ZXNzYWdlU2VuZGVyLnNlbmQoTWVzc2FnZXM6OlJlbW90ZU9iamVjdFJlZ2lzdHJ5OjpJbnZva2VN
ZXRob2QoaW52b2NhdGlvbikpOworICAgIG1lc3NhZ2VTZW5kZXIoKS5zZW5kKE1lc3NhZ2VzOjpS
ZW1vdGVPYmplY3RSZWdpc3RyeTo6SW52b2tlTWV0aG9kKGludm9jYXRpb24pKTsKIH0KIAogdm9p
ZCBSZW1vdGVPYmplY3RSZWdpc3RyeTo6c2VuZFJlcGx5QmxvY2sodWludDY0X3QgcmVwbHlJRCwg
Y29uc3QgVXNlckRhdGEmIGJsb2NrSW52b2NhdGlvbikKIHsKLSAgICBtX21lc3NhZ2VTZW5kZXIu
c2VuZChNZXNzYWdlczo6UmVtb3RlT2JqZWN0UmVnaXN0cnk6OkNhbGxSZXBseUJsb2NrKHJlcGx5
SUQsIGJsb2NrSW52b2NhdGlvbikpOworICAgIG1lc3NhZ2VTZW5kZXIoKS5zZW5kKE1lc3NhZ2Vz
OjpSZW1vdGVPYmplY3RSZWdpc3RyeTo6Q2FsbFJlcGx5QmxvY2socmVwbHlJRCwgYmxvY2tJbnZv
Y2F0aW9uKSk7CiB9CiAKIHZvaWQgUmVtb3RlT2JqZWN0UmVnaXN0cnk6OnNlbmRVbnVzZWRSZXBs
eSh1aW50NjRfdCByZXBseUlEKQogewotICAgIG1fbWVzc2FnZVNlbmRlci5zZW5kKE1lc3NhZ2Vz
OjpSZW1vdGVPYmplY3RSZWdpc3RyeTo6UmVsZWFzZVVudXNlZFJlcGx5QmxvY2socmVwbHlJRCkp
OworICAgIG1lc3NhZ2VTZW5kZXIoKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVPYmplY3RSZWdpc3Ry
eTo6UmVsZWFzZVVudXNlZFJlcGx5QmxvY2socmVwbHlJRCkpOwogfQogCiB2b2lkIFJlbW90ZU9i
amVjdFJlZ2lzdHJ5OjppbnZva2VNZXRob2QoY29uc3QgUmVtb3RlT2JqZWN0SW52b2NhdGlvbiYg
aW52b2NhdGlvbikKQEAgLTExNSw0ICs4MCw1IEBAIHZvaWQgUmVtb3RlT2JqZWN0UmVnaXN0cnk6
OnJlbGVhc2VVbnVzZWRSZXBseUJsb2NrKHVpbnQ2NF90IHJlcGx5SUQpCiAKICAgICBbbV9yZW1v
dGVPYmplY3RSZWdpc3RyeSBfcmVsZWFzZVJlcGx5V2l0aElEOnJlcGx5SURdOwogfQorCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9D
b2NvYS9fV0tSZW1vdGVPYmplY3RSZWdpc3RyeS5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQ
SS9Db2NvYS9fV0tSZW1vdGVPYmplY3RSZWdpc3RyeS5tbQppbmRleCA0ODk5NzYyOTMyYjdhZjY5
MjIxZDA1MGFmNjc0NTgzNmZjMzg3YjAzLi45OGM3YTY0YmMyZWI3NmU3N2JjNDc0MjA5MjE0ZmRh
OGFmNThmYmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvX1dL
UmVtb3RlT2JqZWN0UmVnaXN0cnkubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0Nv
Y29hL19XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5Lm1tCkBAIC0zMCwxMyArMzAsMTQgQEAKICNpbXBv
cnQgIkJsb2NrU1BJLmgiCiAjaW1wb3J0ICJDb25uZWN0aW9uLmgiCiAjaW1wb3J0ICJSZW1vdGVP
YmplY3RJbnZvY2F0aW9uLmgiCi0jaW1wb3J0ICJSZW1vdGVPYmplY3RSZWdpc3RyeS5oIgorI2lt
cG9ydCAiVUlSZW1vdGVPYmplY3RSZWdpc3RyeS5oIgogI2ltcG9ydCAiVXNlckRhdGEuaCIKICNp
bXBvcnQgIldLQ29ubmVjdGlvblJlZi5oIgogI2ltcG9ydCAiV0tSZW1vdGVPYmplY3QuaCIKICNp
bXBvcnQgIldLUmVtb3RlT2JqZWN0Q29kZXIuaCIKICNpbXBvcnQgIldLU2hhcmVkQVBJQ2FzdC5o
IgogI2ltcG9ydCAiV2ViUGFnZS5oIgorI2ltcG9ydCAiV2ViUmVtb3RlT2JqZWN0UmVnaXN0cnku
aCIKICNpbXBvcnQgIl9XS1JlbW90ZU9iamVjdEludGVyZmFjZS5oIgogI2ltcG9ydCA8b2JqYy9y
dW50aW1lLmg+CiAKQEAgLTEwOSw3ICsxMTAsNyBAQCAtIChpZClfaW5pdFdpdGhXZWJQYWdlOihX
ZWJLaXQ6OldlYlBhZ2UmKXBhZ2UKICAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKICAg
ICAgICAgcmV0dXJuIG5pbDsKIAotICAgIF9yZW1vdGVPYmplY3RSZWdpc3RyeSA9IG1ha2VVbmlx
dWU8V2ViS2l0OjpSZW1vdGVPYmplY3RSZWdpc3RyeT4oc2VsZiwgcGFnZSk7CisgICAgX3JlbW90
ZU9iamVjdFJlZ2lzdHJ5ID0gbWFrZVVuaXF1ZTxXZWJLaXQ6OldlYlJlbW90ZU9iamVjdFJlZ2lz
dHJ5PihzZWxmLCBwYWdlKTsKIAogICAgIHJldHVybiBzZWxmOwogfQpAQCAtMTE5LDcgKzEyMCw3
IEBAIC0gKGlkKV9pbml0V2l0aFdlYlBhZ2VQcm94eTooV2ViS2l0OjpXZWJQYWdlUHJveHkmKXBh
Z2UKICAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKICAgICAgICAgcmV0dXJuIG5pbDsK
IAotICAgIF9yZW1vdGVPYmplY3RSZWdpc3RyeSA9IG1ha2VVbmlxdWU8V2ViS2l0OjpSZW1vdGVP
YmplY3RSZWdpc3RyeT4oc2VsZiwgcGFnZSk7CisgICAgX3JlbW90ZU9iamVjdFJlZ2lzdHJ5ID0g
bWFrZVVuaXF1ZTxXZWJLaXQ6OlVJUmVtb3RlT2JqZWN0UmVnaXN0cnk+KHNlbGYsIHBhZ2UpOwog
CiAgICAgcmV0dXJuIHNlbGY7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXND
b2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggMGY2Mzc4OTcy
ZjFiZjY3OWNjNDNjM2FiZjJhZDhlZjJiZjg2OTU5ZC4uYzY5OGI5NTNlNTAwMTMyMDMxNWZhODAz
NTY2OWY0NTE4YjBjYjA2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2Eu
dHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtMzU2LDYgKzM1Niw3
IEBAIFVJUHJvY2Vzcy9Db2NvYS9TZXNzaW9uU3RhdGVDb2RpbmcubW0KIFVJUHJvY2Vzcy9Db2Nv
YS9TeXN0ZW1QcmV2aWV3Q29udHJvbGxlckNvY29hLm1tCiBVSVByb2Nlc3MvQ29jb2EvVGV4dENo
ZWNraW5nQ29udHJvbGxlci5tbQogVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KK1VJUHJv
Y2Vzcy9Db2NvYS9VSVJlbW90ZU9iamVjdFJlZ2lzdHJ5LmNwcAogVUlQcm9jZXNzL0NvY29hL1Vz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCiBVSVByb2Nlc3MvQ29jb2EvVmVyc2lvbkNo
ZWNrcy5tbQogVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbQpA
QCAtNTc5LDYgKzU4MCw3IEBAIFdlYlByb2Nlc3MvV2ViUGFnZS9XS0FjY2Vzc2liaWxpdHlXZWJQ
YWdlT2JqZWN0SU9TLm1tCiAKIFdlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9UZXh0Q2hlY2tpbmdD
b250cm9sbGVyUHJveHkubW0KIFdlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29jb2Eu
bW0KK1dlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJSZW1vdGVPYmplY3RSZWdpc3RyeS5jcHAK
IAogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9GaW5kQ29udHJvbGxlcklPUy5tbQogV2ViUHJvY2Vz
cy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9VSVJlbW90ZU9iamVjdFJlZ2lzdHJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1VJUmVtb3RlT2JqZWN0UmVnaXN0cnkuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNk
MTI4MDI3MTI3YjM2Yzg3NWU2ZDEyOTdmZmMyZGQ3ZGNkMGMyYmQKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSVJlbW90ZU9iamVjdFJlZ2lzdHJ5LmNw
cApAQCAtMCwwICsxLDU4IEBACisvKgorKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxOSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisqCisqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyog
YXJlIG1ldDoKKyogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisqCisqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlVJUmVtb3RlT2Jq
ZWN0UmVnaXN0cnkuaCIKKworI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgorI2luY2x1ZGUgIldl
YlByb2Nlc3NQcm94eS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUHJvY2Vzc1Rocm90dGxl
cjo6QmFja2dyb3VuZEFjdGl2aXR5VG9rZW4gVUlSZW1vdGVPYmplY3RSZWdpc3RyeTo6dGFrZUJh
Y2tncm91bmRBY3Rpdml0eVRva2VuKCkKK3sKKyAgICByZXR1cm4gbV9wYWdlLnByb2Nlc3MoKS50
aHJvdHRsZXIoKS5iYWNrZ3JvdW5kQWN0aXZpdHlUb2tlbigpOworfQorCitVSVJlbW90ZU9iamVj
dFJlZ2lzdHJ5OjpVSVJlbW90ZU9iamVjdFJlZ2lzdHJ5KF9XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5
ICpyZW1vdGVPYmplY3RSZWdpc3RyeSwgV2ViUGFnZVByb3h5JiBwYWdlKQorICAgIDogUmVtb3Rl
T2JqZWN0UmVnaXN0cnkocmVtb3RlT2JqZWN0UmVnaXN0cnkpCisgICAgLCBtX3BhZ2UocGFnZSkK
K3sKK30KKwordm9pZCBVSVJlbW90ZU9iamVjdFJlZ2lzdHJ5OjpzZW5kSW52b2NhdGlvbihjb25z
dCBSZW1vdGVPYmplY3RJbnZvY2F0aW9uJiBpbnZvY2F0aW9uKQoreworICAgIC8vIEZvciBiYWNr
d2FyZC1jb21wYXRpYmlsaXR5LCBzdXBwb3J0IGludm9raW5nIGluamVjdGVkIGJ1bmRsZSBtZXRo
b2RzIGJlZm9yZSBoYXZpbmcgZG9uZSBhbnkgbG9hZCBpbiB0aGUgV2ViVmlldy4KKyAgICBtX3Bh
Z2UubGF1bmNoSW5pdGlhbFByb2Nlc3NJZk5lY2Vzc2FyeSgpOworCisgICAgUmVtb3RlT2JqZWN0
UmVnaXN0cnk6OnNlbmRJbnZvY2F0aW9uKGludm9jYXRpb24pOworfQorCitJUEM6Ok1lc3NhZ2VT
ZW5kZXImIFVJUmVtb3RlT2JqZWN0UmVnaXN0cnk6Om1lc3NhZ2VTZW5kZXIoKQoreworICAgIHJl
dHVybiBtX3BhZ2U7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlSZW1vdGVPYmplY3RSZWdpc3RyeS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlSZW1vdGVPYmplY3RSZWdpc3RyeS5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjk3YTdjODY5ODMzMTY1MjY0ZDNmY2EyMjg2NWI1N2ExNjViOTk5MGUKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSVJlbW90ZU9iamVjdFJl
Z2lzdHJ5LmgKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE5
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpbmNsdWRlICJSZW1vdGVPYmplY3RSZWdpc3RyeS5oIgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworY2xhc3MgV2ViUGFnZVByb3h5OworCitjbGFzcyBVSVJlbW90ZU9iamVjdFJlZ2lzdHJ5
IGZpbmFsIDogcHVibGljIFJlbW90ZU9iamVjdFJlZ2lzdHJ5IHsKK3B1YmxpYzoKKyAgICBVSVJl
bW90ZU9iamVjdFJlZ2lzdHJ5KF9XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5ICosIFdlYlBhZ2VQcm94
eSYpOworICAgIAorICAgIHZvaWQgc2VuZEludm9jYXRpb24oY29uc3QgUmVtb3RlT2JqZWN0SW52
b2NhdGlvbiYpIGZpbmFsOworCitwcml2YXRlOgorICAgIElQQzo6TWVzc2FnZVNlbmRlciYgbWVz
c2FnZVNlbmRlcigpIGZpbmFsOworICAgIFByb2Nlc3NUaHJvdHRsZXI6OkJhY2tncm91bmRBY3Rp
dml0eVRva2VuIHRha2VCYWNrZ3JvdW5kQWN0aXZpdHlUb2tlbigpIGZpbmFsOworCisgICAgV2Vi
UGFnZVByb3h5JiBtX3BhZ2U7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDdlNmY5NzQz
YjczMmI5NzM5OTg3NTk2ZjdlZDJmYjc2ODY0ZmY4ZDEuLjAyNmY4NTdhZmQzNDIzZDZmNzdkNzRk
MWFmYWY5YTE5ZmNkZmQ4ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtOTAyLDYgKzkwMiw4IEBACiAJCTQ0OUQ5MERBMjFGREMzMEIw
MEY2NzdDMCAvKiBMb2NhbEF1dGhlbnRpY2F0aW9uU29mdExpbmsubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDlEOTBEODIxRkQ2M0ZFMDBGNjc3QzAg
LyogTG9jYWxBdXRoZW50aWNhdGlvblNvZnRMaW5rLm1tICovOyB9OwogCQk0NjBGNDg4RjFGOTk2
RjcxMDBDRjRCODcgLyogV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDYw
RjQ4OEQxRjk5NkY2QzAwQ0Y0Qjg3IC8qIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uTWVz
c2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJNDYwRjQ4OTAxRjk5NkY3MTAwQ0Y0Qjg3IC8qIFdl
YlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2MEY0ODhFMUY5OTZGNkMwMENGNEI4NyAvKiBX
ZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbk1lc3NhZ2VzLmggKi87IH07CisJCTQ2MUNDQ0E1
MjMxNDg1QTcwMEI2NTlCOSAvKiBVSVJlbW90ZU9iamVjdFJlZ2lzdHJ5LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjMyMzY4NTIzMTQ4MzNGMDBBNDhG
QTcgLyogVUlSZW1vdGVPYmplY3RSZWdpc3RyeS5oICovOyB9OworCQk0NjFDQ0NBNjIzMTQ4NUFB
MDBCNjU5QjkgLyogV2ViUmVtb3RlT2JqZWN0UmVnaXN0cnkuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2MzIzNjgzMjMxNDgxRUYwMEE0OEZBNyAvKiBX
ZWJSZW1vdGVPYmplY3RSZWdpc3RyeS5oICovOyB9OwogCQk0NjNGRDQ4MDFFQjk0NTk2MDBBMjk4
MkMgLyogV0tQcm9jZXNzVGVybWluYXRpb25SZWFzb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2M0ZENDdGMUVCOTQ1ODQwMEEyOTgyQyAvKiBXS1By
b2Nlc3NUZXJtaW5hdGlvblJlYXNvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTQ2M0ZENDgyMUVCOTRFQzAwMEEyOTgyQyAvKiBQcm9jZXNzVGVy
bWluYXRpb25SZWFzb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQ2M0ZENDgxMUVCOTRFQUQwMEEyOTgyQyAvKiBQcm9jZXNzVGVybWluYXRpb25SZWFz
b24uaCAqLzsgfTsKIAkJNDY1N0Q4ODkyMjY2NEEyRDAwNURFODIzIC8qIFdLT3JpZW50YXRpb25B
Y2Nlc3NBbGVydC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDY1N0Q4ODcyMjY2NEExOTAwNURFODIzIC8qIFdLT3JpZW50YXRpb25BY2Nlc3NBbGVydC5o
ICovOyB9OwpAQCAtMzE5NSw2ICszMTk3LDEwIEBACiAJCTQ2MEY0ODhEMUY5OTZGNkMwMENGNEI4
NyAvKiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJTV0NvbnRleHRNYW5hZ2VyQ29u
bmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQy
L1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNl
VHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJNDYwRjQ4OEUxRjk5NkY2QzAwQ0Y0Qjg3
IC8qIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb25NZXNzYWdl
cy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJTV0NvbnRleHRNYW5hZ2VyQ29u
bmVjdGlvbk1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJ
CTQ2MjEwN0Q3MUYzOERCRDMwMERENzgxMCAvKiBQaW5nTG9hZC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQaW5nTG9hZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTQ2MzIzNjgzMjMxNDgxRUYwMEE0OEZBNyAvKiBXZWJSZW1vdGVPYmplY3RSZWdp
c3RyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJSZW1vdGVPYmplY3RSZWdpc3RyeS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk0NjMyMzY4NDIzMTQ4MjVDMDBBNDhGQTcgLyogV2ViUmVt
b3RlT2JqZWN0UmVnaXN0cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViUmVtb3RlT2JqZWN0
UmVnaXN0cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NjMyMzY4NTIzMTQ4
MzNGMDBBNDhGQTcgLyogVUlSZW1vdGVPYmplY3RSZWdpc3RyeS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBV
SVJlbW90ZU9iamVjdFJlZ2lzdHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2
MzIzNjg2MjMxNDgzM0YwMEE0OEZBNyAvKiBVSVJlbW90ZU9iamVjdFJlZ2lzdHJ5LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFVJUmVtb3RlT2JqZWN0UmVnaXN0cnkuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0NjNGRDQ3RjFFQjk0NTg0MDBBMjk4MkMgLyogV0tQcm9jZXNzVGVy
bWluYXRpb25SZWFzb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tQcm9j
ZXNzVGVybWluYXRpb25SZWFzb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDYz
RkQ0ODExRUI5NEVBRDAwQTI5ODJDIC8qIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbi5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcm9jZXNzVGVybWluYXRpb25SZWFzb24uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDY1MUVDRTYyMjE3OEE4NTAwNjdFQjk1IC8q
IFdlYlByb2Nlc3NDYWNoZUNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gV2ViUHJvY2Vzc0NhY2hlQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC01NTU2LDYgKzU1NjIsOCBAQAogCQkJCTJEMENGNjRCMjFGMkE4MDMwMDc4NzU2NiAv
KiBUZXh0Q2hlY2tpbmdDb250cm9sbGVyLm1tICovLAogCQkJCTFBRkU0MzY0MThCNkMwODEwMDlD
N0E0OCAvKiBVSURlbGVnYXRlLmggKi8sCiAJCQkJMUFGRTQzNjMxOEI2QzA4MTAwOUM3QTQ4IC8q
IFVJRGVsZWdhdGUubW0gKi8sCisJCQkJNDYzMjM2ODYyMzE0ODMzRjAwQTQ4RkE3IC8qIFVJUmVt
b3RlT2JqZWN0UmVnaXN0cnkuY3BwICovLAorCQkJCTQ2MzIzNjg1MjMxNDgzM0YwMEE0OEZBNyAv
KiBVSVJlbW90ZU9iamVjdFJlZ2lzdHJ5LmggKi8sCiAJCQkJRTRFODY0OEUxQjE2NzNGQjAwQzgy
RjQwIC8qIFZlcnNpb25DaGVja3MuaCAqLywKIAkJCQlFNEU4NjQ4RjFCMTY3M0ZCMDBDODJGNDAg
LyogVmVyc2lvbkNoZWNrcy5tbSAqLywKIAkJCQk1MkQ1QTFBQTFDNTc0OTRFMDBERTM0QTMgLyog
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmggKi8sCkBAIC01Nzk4LDYgKzU4MDYsOCBAQAog
CQkJCTJEOUNENUVCMjFGQTUwM0YwMDI5QUNGQSAvKiBUZXh0Q2hlY2tpbmdDb250cm9sbGVyUHJv
eHkubWVzc2FnZXMuaW4gKi8sCiAJCQkJMkQ5Q0Q1RUMyMUZBNTAzRjAwMjlBQ0ZBIC8qIFRleHRD
aGVja2luZ0NvbnRyb2xsZXJQcm94eS5tbSAqLywKIAkJCQkyREM0Q0Y3QTFEMkRFMjRCMDBFQ0ND
OTQgLyogV2ViUGFnZUNvY29hLm1tICovLAorCQkJCTQ2MzIzNjg0MjMxNDgyNUMwMEE0OEZBNyAv
KiBXZWJSZW1vdGVPYmplY3RSZWdpc3RyeS5jcHAgKi8sCisJCQkJNDYzMjM2ODMyMzE0ODFFRjAw
QTQ4RkE3IC8qIFdlYlJlbW90ZU9iamVjdFJlZ2lzdHJ5LmggKi8sCiAJCQkpOwogCQkJcGF0aCA9
IENvY29hOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTk3NjIsNiArOTc3Miw3IEBA
CiAJCQkJNTE1QkUxQTkxRDU1MjkzNDAwREQ3QzY4IC8qIFVJR2FtZXBhZFByb3ZpZGVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQlDRUU0QUUyQjFBNURDRjQzMDAwMkY0OUIgLyogVUlLaXRTUEkuaCBp
biBIZWFkZXJzICovLAogCQkJCTUxM0ZGQjhEMjAxNDU5QjAwMDI1OTZFQSAvKiBVSU1lc3NhZ2VQ
b3J0Q2hhbm5lbFByb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk0NjFDQ0NBNTIzMTQ4NUE3
MDBCNjU5QjkgLyogVUlSZW1vdGVPYmplY3RSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NUM0QjlEOEIyMTBBOENDRjAwOEYxNEQxIC8qIFVuZG9PclJlZG8uaCBpbiBIZWFkZXJzICovLAog
CQkJCTFBNjQyNDVFMTJERTI5QTEwMENBQUUyQyAvKiBVcGRhdGVJbmZvLmggaW4gSGVhZGVycyAq
LywKIAkJCQk1QzE5QTUyMDFGRDBCMjk1MDBFRUEzMjMgLyogVVJMU2NoZW1lVGFza1BhcmFtZXRl
cnMuaCBpbiBIZWFkZXJzICovLApAQCAtOTk1OCw2ICs5OTY5LDcgQEAKIAkJCQlCQ0UwRTQyNTE2
OEI3QTI4MDA1N0U2NkEgLyogV2ViUHJvY2Vzc1N1cHBsZW1lbnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTFBMUUwOTM0MTg4NjFEMzgwMEQyREM0OSAvKiBXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTUxMkY1ODlEMTJBODgzODgwMDYyOTUzMCAvKiBXZWJQcm90
ZWN0aW9uU3BhY2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ2MUNDQ0E2MjMxNDg1QUEwMEI2NTlC
OSAvKiBXZWJSZW1vdGVPYmplY3RSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzc5NDg0
MDQxNTBDMzUwNjAwRTUyQ0U5IC8qIFdlYlJlbmRlckxheWVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkzNzYwODgxRjE1MDQxM0U5MDBGQzgyQzcgLyogV2ViUmVuZGVyT2JqZWN0LmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1MTBBRkZCQTE2NTQyMDQ4MDAxQkEwNUUgLyogV2ViUmVzb3VyY2VMb2FkZXIu
aCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvQ29jb2EvV2ViUGFnZUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvQ29jb2EvV2ViUGFnZUNvY29hLm1tCmluZGV4IGQxMmI5OGE5NTg0MDFmMGMzZDlmMmNh
YWNjNTViNDBiMmE2MWI3NjQuLjg1YTQzYjU0NzljMTU5ZTQwZDhlZmZkOTMyY2IyNWI1NDNkYjI2
ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1dl
YlBhZ2VDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db2Nv
YS9XZWJQYWdlQ29jb2EubW0KQEAgLTI5LDEwICsyOSwxMCBAQAogI2ltcG9ydCAiQXR0cmlidXRl
ZFN0cmluZy5oIgogI2ltcG9ydCAiTG9hZFBhcmFtZXRlcnMuaCIKICNpbXBvcnQgIlBsdWdpblZp
ZXcuaCIKLSNpbXBvcnQgIlJlbW90ZU9iamVjdFJlZ2lzdHJ5LmgiCiAjaW1wb3J0ICJXS0FjY2Vz
c2liaWxpdHlXZWJQYWdlT2JqZWN0QmFzZS5oIgogI2ltcG9ydCAiV2ViUGFnZVByb3h5TWVzc2Fn
ZXMuaCIKICNpbXBvcnQgIldlYlBheW1lbnRDb29yZGluYXRvci5oIgorI2ltcG9ydCAiV2ViUmVt
b3RlT2JqZWN0UmVnaXN0cnkuaCIKICNpbXBvcnQgPFdlYkNvcmUvRGljdGlvbmFyeUxvb2t1cC5o
PgogI2ltcG9ydCA8V2ViQ29yZS9FZGl0b3IuaD4KICNpbXBvcnQgPFdlYkNvcmUvRXZlbnRIYW5k
bGVyLmg+CkBAIC0yMTcsMTEgKzIxNywxNiBAQCB2b2lkIFdlYlBhZ2U6OmdldENvbnRlbnRzQXNB
dHRyaWJ1dGVkU3RyaW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgQXR0cmlidQogICAg
IGNvbXBsZXRpb25IYW5kbGVyKHsgcmVzdWx0IH0pOwogfQogCi12b2lkIFdlYlBhZ2U6OnNldFJl
bW90ZU9iamVjdFJlZ2lzdHJ5KFJlbW90ZU9iamVjdFJlZ2lzdHJ5JiByZWdpc3RyeSkKK3ZvaWQg
V2ViUGFnZTo6c2V0UmVtb3RlT2JqZWN0UmVnaXN0cnkoV2ViUmVtb3RlT2JqZWN0UmVnaXN0cnkq
IHJlZ2lzdHJ5KQogewogICAgIG1fcmVtb3RlT2JqZWN0UmVnaXN0cnkgPSBtYWtlV2Vha1B0cihy
ZWdpc3RyeSk7CiB9CiAKK1dlYlJlbW90ZU9iamVjdFJlZ2lzdHJ5KiBXZWJQYWdlOjpyZW1vdGVP
YmplY3RSZWdpc3RyeSgpCit7CisgICAgcmV0dXJuIG1fcmVtb3RlT2JqZWN0UmVnaXN0cnkuZ2V0
KCk7Cit9CisKIHZvaWQgV2ViUGFnZTo6dXBkYXRlTW9ja0FjY2Vzc2liaWxpdHlFbGVtZW50QWZ0
ZXJDb21taXR0aW5nTG9hZCgpCiB7CiAgICAgYXV0byogZG9jdW1lbnQgPSBtYWluRnJhbWUoKS0+
ZG9jdW1lbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L0NvY29hL1dlYlJlbW90ZU9iamVjdFJlZ2lzdHJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0NvY29hL1dlYlJlbW90ZU9iamVjdFJlZ2lzdHJ5LmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li45MGZkZjBlNmU5MDkxNTVjNDE1NDJmNzE5OWNhZTdiNWIwNmUxNTRiCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2ViUmVtb3RlT2Jq
ZWN0UmVnaXN0cnkuY3BwCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisqIENvcHlyaWdodCAoQykgMjAx
My0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyoKKyogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworKiBhcmUgbWV0OgorKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyoKKyogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiV2ViUmVtb3RlT2JqZWN0UmVnaXN0cnkuaCIKKworI2luY2x1ZGUgIlJlbW90ZU9iamVjdFJl
Z2lzdHJ5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisKK25hbWVzcGFjZSBXZWJL
aXQgeworCitXZWJSZW1vdGVPYmplY3RSZWdpc3RyeTo6V2ViUmVtb3RlT2JqZWN0UmVnaXN0cnko
X1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkgKnJlbW90ZU9iamVjdFJlZ2lzdHJ5LCBXZWJQYWdlJiBw
YWdlKQorICAgIDogUmVtb3RlT2JqZWN0UmVnaXN0cnkocmVtb3RlT2JqZWN0UmVnaXN0cnkpCisg
ICAgLCBtX3BhZ2UocGFnZSkKK3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5hZGRNZXNz
YWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZU9iamVjdFJlZ2lzdHJ5OjptZXNzYWdlUmVjZWl2
ZXJOYW1lKCksIG1fcGFnZS5wYWdlSUQoKSwgKnRoaXMpOworICAgIHBhZ2Uuc2V0UmVtb3RlT2Jq
ZWN0UmVnaXN0cnkodGhpcyk7Cit9CisKK1dlYlJlbW90ZU9iamVjdFJlZ2lzdHJ5Ojp+V2ViUmVt
b3RlT2JqZWN0UmVnaXN0cnkoKQoreworICAgIGNsb3NlKCk7Cit9CisKK3ZvaWQgV2ViUmVtb3Rl
T2JqZWN0UmVnaXN0cnk6OmNsb3NlKCkKK3sKKyAgICBpZiAobV9wYWdlLnJlbW90ZU9iamVjdFJl
Z2lzdHJ5KCkgPT0gdGhpcykgeworICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5yZW1v
dmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZU9iamVjdFJlZ2lzdHJ5OjptZXNzYWdl
UmVjZWl2ZXJOYW1lKCksIG1fcGFnZS5wYWdlSUQoKSk7CisgICAgICAgIG1fcGFnZS5zZXRSZW1v
dGVPYmplY3RSZWdpc3RyeShudWxscHRyKTsKKyAgICB9Cit9CisKK0lQQzo6TWVzc2FnZVNlbmRl
ciYgV2ViUmVtb3RlT2JqZWN0UmVnaXN0cnk6Om1lc3NhZ2VTZW5kZXIoKQoreworICAgIHJldHVy
biBtX3BhZ2U7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2ViUmVtb3RlT2JqZWN0UmVnaXN0cnku
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1dlYlJlbW90ZU9iamVj
dFJlZ2lzdHJ5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjllOWJiYzhhN2FhNjNmYjViNjA5YjdmOGM2M2JhMTZl
NThhNjM4YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0NvY29hL1dlYlJlbW90ZU9iamVjdFJlZ2lzdHJ5LmgKQEAgLTAsMCArMSw0NyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJSZW1vdGVPYmplY3RSZWdp
c3RyeS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFnZTsKKworY2xhc3Mg
V2ViUmVtb3RlT2JqZWN0UmVnaXN0cnkgZmluYWwgOiBwdWJsaWMgUmVtb3RlT2JqZWN0UmVnaXN0
cnkgeworcHVibGljOgorICAgIFdlYlJlbW90ZU9iamVjdFJlZ2lzdHJ5KF9XS1JlbW90ZU9iamVj
dFJlZ2lzdHJ5ICosIFdlYlBhZ2UmKTsKKyAgICB+V2ViUmVtb3RlT2JqZWN0UmVnaXN0cnkoKTsK
KyAgICAKKyAgICB2b2lkIGNsb3NlKCk7CisgICAgCitwcml2YXRlOgorICAgIElQQzo6TWVzc2Fn
ZVNlbmRlciYgbWVzc2FnZVNlbmRlcigpIGZpbmFsOworCisgICAgV2ViUGFnZSYgbV9wYWdlOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGE1ZTQxYTVhNWQyNDBjMzJlYTA4MTFhNWQ2ZWZmOTQ5
MjlmOTlhZmMuLjcwODRmYzFlNzM2ODVmNWIxZDA1MjcyYjAxYjUyZDFlMTU4MmIxYWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0xMTksNiAr
MTE5LDcgQEAKICNpbmNsdWRlICJXZWJQcm9jZXNzUG9vbE1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAi
V2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQcm9ncmVzc1RyYWNrZXJD
bGllbnQuaCIKKyNpbmNsdWRlICJXZWJSZW1vdGVPYmplY3RSZWdpc3RyeS5oIgogI2luY2x1ZGUg
IldlYlNvY2tldFByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiV2ViU3BlZWNoU3ludGhlc2lzQ2xpZW50
LmgiCiAjaW5jbHVkZSAiV2ViU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyLmgiCkBAIC0xNDM0LDYg
KzE0MzUsNyBAQCB2b2lkIFdlYlBhZ2U6OmNsb3NlKCkKICNpZiBQTEFURk9STShDT0NPQSkKICAg
ICBpZiAobV9yZW1vdGVPYmplY3RSZWdpc3RyeSkKICAgICAgICAgbV9yZW1vdGVPYmplY3RSZWdp
c3RyeS0+Y2xvc2UoKTsKKyAgICBBU1NFUlQoIW1fcmVtb3RlT2JqZWN0UmVnaXN0cnkpOwogI2Vu
ZGlmCiAjaWYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKICAgICBpZiAobV91c2VBc3luY1Njcm9s
bGluZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCA1
ZjZiMjc2ZWEyMGVlNGRmYjBhNTQwZGU2MmQ5MGU4MjdjZjI5OWY5Li43ODEzNzBkYTRhMzU0N2E1
NGRkZDBiMDRiZWJhYWYxYWYyNTE0MThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oCkBAIC0yMTcsNyArMjE3LDYgQEAgY2xhc3MgTm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyOwogY2xhc3MgUERGUGx1Z2luOwogY2xhc3MgUGFnZUJhbm5l
cjsKIGNsYXNzIFBsdWdpblZpZXc7Ci1jbGFzcyBSZW1vdGVPYmplY3RSZWdpc3RyeTsKIGNsYXNz
IFJlbW90ZVdlYkluc3BlY3RvclVJOwogY2xhc3MgVGV4dENoZWNraW5nQ29udHJvbGxlclByb3h5
OwogY2xhc3MgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOwpAQCAtMjQ3LDYgKzI0
Niw3IEBAIGNsYXNzIFdlYlBhZ2VJbnNwZWN0b3JUYXJnZXRDb250cm9sbGVyOwogY2xhc3MgV2Vi
UGFnZU92ZXJsYXk7CiBjbGFzcyBXZWJQYXltZW50Q29vcmRpbmF0b3I7CiBjbGFzcyBXZWJQb3B1
cE1lbnU7CitjbGFzcyBXZWJSZW1vdGVPYmplY3RSZWdpc3RyeTsKIGNsYXNzIFdlYlRvdWNoRXZl
bnQ7CiBjbGFzcyBXZWJVUkxTY2hlbWVIYW5kbGVyUHJveHk7CiBjbGFzcyBXZWJVbmRvU3RlcDsK
QEAgLTExOTgsNyArMTE5OCwxMCBAQCBwdWJsaWM6CiAgICAgVGV4dENoZWNraW5nQ29udHJvbGxl
clByb3h5JiB0ZXh0Q2hlY2tpbmdDb250cm9sbGVyKCkgeyByZXR1cm4gbV90ZXh0Q2hlY2tpbmdD
b250cm9sbGVyUHJveHkuZ2V0KCk7IH0KICNlbmRpZgogCi0gICAgdm9pZCBzZXRSZW1vdGVPYmpl
Y3RSZWdpc3RyeShSZW1vdGVPYmplY3RSZWdpc3RyeSYpOworI2lmIFBMQVRGT1JNKENPQ09BKQor
ICAgIHZvaWQgc2V0UmVtb3RlT2JqZWN0UmVnaXN0cnkoV2ViUmVtb3RlT2JqZWN0UmVnaXN0cnkq
KTsKKyAgICBXZWJSZW1vdGVPYmplY3RSZWdpc3RyeSogcmVtb3RlT2JqZWN0UmVnaXN0cnkoKTsK
KyNlbmRpZgogCiAgICAgdm9pZCB1cGRhdGVJbnRyaW5zaWNDb250ZW50U2l6ZUlmTmVlZGVkKGNv
bnN0IFdlYkNvcmU6OkludFNpemUmKTsKICAgICB2b2lkIHNjaGVkdWxlRnVsbEVkaXRvclN0YXRl
VXBkYXRlKCk7CkBAIC0xOTUyLDcgKzE5NTUsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9uZWVk
c0ZvbnRBdHRyaWJ1dGVzIHsgZmFsc2UgfTsKICAgICBib29sIG1fZmlyc3RGbHVzaEFmdGVyQ29t
bWl0IHsgZmFsc2UgfTsKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBXZWFrUHRyPFJlbW90ZU9i
amVjdFJlZ2lzdHJ5PiBtX3JlbW90ZU9iamVjdFJlZ2lzdHJ5OworICAgIFdlYWtQdHI8V2ViUmVt
b3RlT2JqZWN0UmVnaXN0cnk+IG1fcmVtb3RlT2JqZWN0UmVnaXN0cnk7CiAjZW5kaWYKICAgICBX
ZWJDb3JlOjpJbnRTaXplIG1fbGFzdFNlbnRJbnRyaW5zaWNDb250ZW50U2l6ZTsKICNpZiBFTkFC
TEUoVklFV1BPUlRfUkVTSVpJTkcpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377280</attachid>
            <date>2019-08-26 15:58:39 -0700</date>
            <delta_ts>2019-08-27 11:22:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201153-20190826155838.patch</filename>
            <type>text/plain</type>
            <size>31998</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5MTEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDVlYWFjMTkxMmJkNGMyMmU2
M2Y5Y2YzMTg5Mzk3M2U5NzA3MjY1MjguLjMyNzU5MTdlMGMwODk5MTI2ODRiNmE0MDJhYThlY2Y4
YzBmNjc2N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDUgQEAKKzIwMTktMDgtMjYgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBJbnRyb2R1Y2Ugc3ViY2xhc3NlcyB0
byBSZW1vdGVPYmplY3RSZWdpc3RyeSBmb3IgdGhlIFVJUHJvY2VzcyBhbmQgdGhlIFdlYlByb2Nl
c3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTE1
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMg
YmV0dGVyIGZhY3RvcmluZyBpbXByb3ZlcyBjb2RlIGNsYXJpdHkuCisKKyAgICAgICAgKiBQbGF0
Zm9ybU1hYy5jbWFrZToKKyAgICAgICAgKiBTaGFyZWQvQVBJL0NvY29hL1JlbW90ZU9iamVjdFJl
Z2lzdHJ5Lmg6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU9iamVjdFJlZ2lzdHJ5Ojp+UmVtb3Rl
T2JqZWN0UmVnaXN0cnkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVPYmplY3RSZWdpc3RyeTo6
dGFrZUJhY2tncm91bmRBY3Rpdml0eVRva2VuKToKKyAgICAgICAgKiBTaGFyZWQvQVBJL0NvY29h
L1JlbW90ZU9iamVjdFJlZ2lzdHJ5Lm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVPYmplY3RS
ZWdpc3RyeTo6UmVtb3RlT2JqZWN0UmVnaXN0cnkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVP
YmplY3RSZWdpc3RyeTo6c2VuZEludm9jYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVP
YmplY3RSZWdpc3RyeTo6c2VuZFJlcGx5QmxvY2spOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVP
YmplY3RSZWdpc3RyeTo6c2VuZFVudXNlZFJlcGx5KToKKyAgICAgICAgKiBTaGFyZWQvQVBJL0Nv
Y29hL19XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5Lm1tOgorICAgICAgICAoLVtfV0tSZW1vdGVPYmpl
Y3RSZWdpc3RyeSBfaW5pdFdpdGhXZWJQYWdlOl0pOgorICAgICAgICAoLVtfV0tSZW1vdGVPYmpl
Y3RSZWdpc3RyeSBfaW5pdFdpdGhXZWJQYWdlUHJveHk6XSk6CisgICAgICAgICogU291cmNlc0Nv
Y29hLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVUlSZW1vdGVPYmplY3RSZWdpc3Ry
eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpVSVJlbW90ZU9iamVjdFJlZ2lzdHJ5Ojp0
YWtlQmFja2dyb3VuZEFjdGl2aXR5VG9rZW4pOgorICAgICAgICAoV2ViS2l0OjpVSVJlbW90ZU9i
amVjdFJlZ2lzdHJ5OjpVSVJlbW90ZU9iamVjdFJlZ2lzdHJ5KToKKyAgICAgICAgKFdlYktpdDo6
VUlSZW1vdGVPYmplY3RSZWdpc3RyeTo6c2VuZEludm9jYXRpb24pOgorICAgICAgICAoV2ViS2l0
OjpVSVJlbW90ZU9iamVjdFJlZ2lzdHJ5OjptZXNzYWdlU2VuZGVyKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQ29jb2EvVUlSZW1vdGVPYmplY3RSZWdpc3RyeS5oOiBBZGRlZC4KKyAgICAgICAgKiBX
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvQ29jb2EvV2ViUGFnZUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpz
ZXRSZW1vdGVPYmplY3RSZWdpc3RyeSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnJlbW90
ZU9iamVjdFJlZ2lzdHJ5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2Vi
UmVtb3RlT2JqZWN0UmVnaXN0cnkuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUmVt
b3RlT2JqZWN0UmVnaXN0cnk6OldlYlJlbW90ZU9iamVjdFJlZ2lzdHJ5KToKKyAgICAgICAgKFdl
YktpdDo6V2ViUmVtb3RlT2JqZWN0UmVnaXN0cnk6On5XZWJSZW1vdGVPYmplY3RSZWdpc3RyeSk6
CisgICAgICAgIChXZWJLaXQ6OldlYlJlbW90ZU9iamVjdFJlZ2lzdHJ5OjpjbG9zZSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlJlbW90ZU9iamVjdFJlZ2lzdHJ5OjptZXNzYWdlU2VuZGVyKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2ViUmVtb3RlT2JqZWN0UmVnaXN0cnku
aDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjbG9zZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuaDoKKwogMjAxOS0wOC0yNiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVo
QGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChpT1MgMTMpOiBUZXN0cyB0aGF0IHNp
bXVsYXRlIG11bHRpcGxlIGJhY2stdG8tYmFjayBzaW5nbGUgdGFwcyBmYWlsIG9yIHRpbWUgb3V0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtTWFjLmNtYWtlIGIvU291cmNlL1dl
YktpdC9QbGF0Zm9ybU1hYy5jbWFrZQppbmRleCAwNWJjNTQxMjkyNTM4OWMzZDgxZTY0ZDU1MTY4
MDkxMjYxOWYyNmE1Li41OWNhNzEyNzRlYmY2MjU3MThkYjBjNjc4ZTFmODc5NDE3ZTRmMTllIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtTWFjLmNtYWtlCisrKyBiL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm1NYWMuY21ha2UKQEAgLTI1Miw2ICsyNTIsNyBAQCBsaXN0KEFQUEVORCBX
ZWJLaXRfU09VUkNFUwogICAgIFVJUHJvY2Vzcy9Db2NvYS9QYWdlQ2xpZW50SW1wbENvY29hLm1t
CiAgICAgVUlQcm9jZXNzL0NvY29hL1Nlc3Npb25TdGF0ZUNvZGluZy5tbQogICAgIFVJUHJvY2Vz
cy9Db2NvYS9VSURlbGVnYXRlLm1tCisgICAgVUlQcm9jZXNzL0NvY29hL1VJUmVtb3RlT2JqZWN0
UmVnaXN0cnkuY3BwCiAgICAgVUlQcm9jZXNzL0NvY29hL1ZlcnNpb25DaGVja3MubW0KICAgICBV
SVByb2Nlc3MvQ29jb2EvV0tGdWxsS2V5Ym9hcmRBY2Nlc3NXYXRjaGVyLm1tCiAgICAgVUlQcm9j
ZXNzL0NvY29hL1dLUmVsb2FkRnJhbWVFcnJvclJlY292ZXJ5QXR0ZW1wdGVyLm1tCkBAIC0zNjIs
NiArMzYzLDcgQEAgbGlzdChBUFBFTkQgV2ViS2l0X1NPVVJDRVMKICAgICBXZWJQcm9jZXNzL1dl
YlBhZ2UvVmlld0dlc3R1cmVHZW9tZXRyeUNvbGxlY3Rvci5jcHAKIAogICAgIFdlYlByb2Nlc3Mv
V2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29jb2EubW0KKyAgICBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29j
b2EvV2ViUmVtb3RlT2JqZWN0UmVnaXN0cnkuY3BwCiAKICAgICBXZWJQcm9jZXNzL1dlYlBhZ2Uv
bWFjL1BhZ2VCYW5uZXJNYWMubW0KICAgICBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29y
ZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9BUEkvQ29jb2EvUmVtb3RlT2JqZWN0UmVnaXN0cnkuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0FQSS9Db2NvYS9SZW1vdGVPYmplY3RSZWdpc3RyeS5oCmluZGV4IDQwNDA4MTc4MDAyYTk0Njcx
ZDM1MGRmMjYxZTA4Yzk1MGVlZjJiODIuLmQ1ZmI1MDVhYjI1Yjc3Yjk0ZDBkMmY5OTU2YzNhMmZj
ZjVmZjYwNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9SZW1v
dGVPYmplY3RSZWdpc3RyeS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9S
ZW1vdGVPYmplY3RSZWdpc3RyeS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTMtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTI3LDggKzI3LDcgQEAKIAogI2luY2x1ZGUgIk1lc3NhZ2VS
ZWNlaXZlci5oIgogI2luY2x1ZGUgIlByb2Nlc3NUaHJvdHRsZXIuaCIKLSNpbmNsdWRlIDxXZWJD
b3JlL1BhZ2VJZGVudGlmaWVyLmg+Ci0jaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CisjaW5jbHVk
ZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvV2Vha09iakNQdHIuaD4KICNpbmNsdWRl
IDx3dGYvV2Vha1B0ci5oPgogCkBAIC00MiwyNCArNDEsMjMgQEAgbmFtZXNwYWNlIFdlYktpdCB7
CiAKIGNsYXNzIFJlbW90ZU9iamVjdEludm9jYXRpb247CiBjbGFzcyBVc2VyRGF0YTsKLWNsYXNz
IFdlYlBhZ2U7Ci1jbGFzcyBXZWJQYWdlUHJveHk7CiAKLWNsYXNzIFJlbW90ZU9iamVjdFJlZ2lz
dHJ5IGZpbmFsIDogcHVibGljIENhbk1ha2VXZWFrUHRyPFJlbW90ZU9iamVjdFJlZ2lzdHJ5Piwg
cHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKK2NsYXNzIFJlbW90ZU9iamVjdFJlZ2lzdHJ5
IDogcHVibGljIENhbk1ha2VXZWFrUHRyPFJlbW90ZU9iamVjdFJlZ2lzdHJ5PiwgcHVibGljIElQ
Qzo6TWVzc2FnZVJlY2VpdmVyIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1Ymxp
YzoKLSAgICBSZW1vdGVPYmplY3RSZWdpc3RyeShfV0tSZW1vdGVPYmplY3RSZWdpc3RyeSAqLCBX
ZWJQYWdlJik7Ci0gICAgUmVtb3RlT2JqZWN0UmVnaXN0cnkoX1dLUmVtb3RlT2JqZWN0UmVnaXN0
cnkgKiwgV2ViUGFnZVByb3h5Jik7CisgICAgdmlydHVhbCB+UmVtb3RlT2JqZWN0UmVnaXN0cnko
KTsKIAotICAgIH5SZW1vdGVPYmplY3RSZWdpc3RyeSgpOwotCi0gICAgdm9pZCBzZW5kSW52b2Nh
dGlvbihjb25zdCBSZW1vdGVPYmplY3RJbnZvY2F0aW9uJik7CisgICAgdmlydHVhbCB2b2lkIHNl
bmRJbnZvY2F0aW9uKGNvbnN0IFJlbW90ZU9iamVjdEludm9jYXRpb24mKTsKICAgICB2b2lkIHNl
bmRSZXBseUJsb2NrKHVpbnQ2NF90IHJlcGx5SUQsIGNvbnN0IFVzZXJEYXRhJiBibG9ja0ludm9j
YXRpb24pOwogICAgIHZvaWQgc2VuZFVudXNlZFJlcGx5KHVpbnQ2NF90IHJlcGx5SUQpOwogCi0g
ICAgdm9pZCBjbG9zZSgpOwotCitwcm90ZWN0ZWQ6CisgICAgZXhwbGljaXQgUmVtb3RlT2JqZWN0
UmVnaXN0cnkoX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkgKik7CisgICAgCiBwcml2YXRlOgorICAg
IHZpcnR1YWwgUHJvY2Vzc1Rocm90dGxlcjo6QmFja2dyb3VuZEFjdGl2aXR5VG9rZW4gdGFrZUJh
Y2tncm91bmRBY3Rpdml0eVRva2VuKCkgeyByZXR1cm4gbnVsbHB0cjsgfQorICAgIHZpcnR1YWwg
SVBDOjpNZXNzYWdlU2VuZGVyJiBtZXNzYWdlU2VuZGVyKCkgPSAwOworCiAgICAgLy8gSVBDOjpN
ZXNzYWdlUmVjZWl2ZXIKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlv
biYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOwogCkBAIC02OSwxMiArNjcsNyBAQCBwcml2YXRl
OgogICAgIHZvaWQgcmVsZWFzZVVudXNlZFJlcGx5QmxvY2sodWludDY0X3QgcmVwbHlJRCk7CiAK
ICAgICBXZWFrT2JqQ1B0cjxfV0tSZW1vdGVPYmplY3RSZWdpc3RyeT4gbV9yZW1vdGVPYmplY3RS
ZWdpc3RyeTsKLSAgICBJUEM6Ok1lc3NhZ2VTZW5kZXImIG1fbWVzc2FnZVNlbmRlcjsKLSAgICBG
dW5jdGlvbjxQcm9jZXNzVGhyb3R0bGVyOjpCYWNrZ3JvdW5kQWN0aXZpdHlUb2tlbigpPiBtX3Rh
a2VCYWNrZ3JvdW5kQWN0aXZpdHlUb2tlbjsKLSAgICBGdW5jdGlvbjx2b2lkKCk+IG1fbGF1bmNo
SW5pdGlhbFByb2Nlc3NJZk5lY2Vzc2FyeTsKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBQcm9jZXNz
VGhyb3R0bGVyOjpCYWNrZ3JvdW5kQWN0aXZpdHlUb2tlbj4gbV9wZW5kaW5nUmVwbGllczsKLSAg
ICBib29sIG1faXNSZWdpc3RlcmVkQXNNZXNzYWdlUmVjZWl2ZXIgeyBmYWxzZSB9OwotICAgIFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyIG1fbWVzc2FnZVJlY2VpdmVySUQ7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2Nv
YS9SZW1vdGVPYmplY3RSZWdpc3RyeS5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2Nv
YS9SZW1vdGVPYmplY3RSZWdpc3RyeS5tbQppbmRleCAxY2I5ZTZjN2Q0MTUwZTk1ZGQ1YTU4M2Uz
NzJkOTU2NWJiZjQ2MWI2Li4yZWFiM2UzMWNlMWIxYWI0YWYwY2YxNDg3ZTY0NzhjMWQzOGRkNTc1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvUmVtb3RlT2JqZWN0
UmVnaXN0cnkubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL1JlbW90ZU9i
amVjdFJlZ2lzdHJ5Lm1tCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMt
MjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTI3LDcyICsyNyw0MSBAQAogI2ltcG9ydCAiUmVtb3RlT2JqZWN0UmVn
aXN0cnkuaCIKIAogI2ltcG9ydCAiTWVzc2FnZVNlbmRlci5oIgotI2ltcG9ydCAiUHJvY2Vzc1Ro
cm90dGxlci5oIgogI2ltcG9ydCAiUmVtb3RlT2JqZWN0SW52b2NhdGlvbi5oIgogI2ltcG9ydCAi
UmVtb3RlT2JqZWN0UmVnaXN0cnlNZXNzYWdlcy5oIgogI2ltcG9ydCAiVXNlckRhdGEuaCIKLSNp
bXBvcnQgIldlYlBhZ2UuaCIKLSNpbXBvcnQgIldlYlBhZ2VQcm94eS5oIgotI2ltcG9ydCAiV2Vi
UHJvY2Vzcy5oIgotI2ltcG9ydCAiV2ViUHJvY2Vzc1Byb3h5LmgiCiAjaW1wb3J0ICJfV0tSZW1v
dGVPYmplY3RSZWdpc3RyeUludGVybmFsLmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1SZW1v
dGVPYmplY3RSZWdpc3RyeTo6UmVtb3RlT2JqZWN0UmVnaXN0cnkoX1dLUmVtb3RlT2JqZWN0UmVn
aXN0cnkgKnJlbW90ZU9iamVjdFJlZ2lzdHJ5LCBXZWJQYWdlJiBwYWdlKQorUmVtb3RlT2JqZWN0
UmVnaXN0cnk6OlJlbW90ZU9iamVjdFJlZ2lzdHJ5KF9XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5ICpy
ZW1vdGVPYmplY3RSZWdpc3RyeSkKICAgICA6IG1fcmVtb3RlT2JqZWN0UmVnaXN0cnkocmVtb3Rl
T2JqZWN0UmVnaXN0cnkpCi0gICAgLCBtX21lc3NhZ2VTZW5kZXIocGFnZSkKLSAgICAsIG1fdGFr
ZUJhY2tncm91bmRBY3Rpdml0eVRva2VuKFtdIHsgcmV0dXJuIFByb2Nlc3NUaHJvdHRsZXI6OkJh
Y2tncm91bmRBY3Rpdml0eVRva2VuKCk7IH0pCi0gICAgLCBtX2lzUmVnaXN0ZXJlZEFzTWVzc2Fn
ZVJlY2VpdmVyKHRydWUpCi0gICAgLCBtX21lc3NhZ2VSZWNlaXZlcklEKHBhZ2UucGFnZUlEKCkp
Ci17Ci0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3Nh
Z2VzOjpSZW1vdGVPYmplY3RSZWdpc3RyeTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX21lc3Nh
Z2VSZWNlaXZlcklELCAqdGhpcyk7Ci0gICAgcGFnZS5zZXRSZW1vdGVPYmplY3RSZWdpc3RyeSgq
dGhpcyk7Ci19Ci0KLVJlbW90ZU9iamVjdFJlZ2lzdHJ5OjpSZW1vdGVPYmplY3RSZWdpc3RyeShf
V0tSZW1vdGVPYmplY3RSZWdpc3RyeSAqcmVtb3RlT2JqZWN0UmVnaXN0cnksIFdlYlBhZ2VQcm94
eSYgcGFnZSkKLSAgICA6IG1fcmVtb3RlT2JqZWN0UmVnaXN0cnkocmVtb3RlT2JqZWN0UmVnaXN0
cnkpCi0gICAgLCBtX21lc3NhZ2VTZW5kZXIocGFnZSkKLSAgICAsIG1fdGFrZUJhY2tncm91bmRB
Y3Rpdml0eVRva2VuKFsmcGFnZV0geyByZXR1cm4gcGFnZS5wcm9jZXNzKCkudGhyb3R0bGVyKCku
YmFja2dyb3VuZEFjdGl2aXR5VG9rZW4oKTsgfSkKLSAgICAsIG1fbGF1bmNoSW5pdGlhbFByb2Nl
c3NJZk5lY2Vzc2FyeShbJnBhZ2VdIHsgcGFnZS5sYXVuY2hJbml0aWFsUHJvY2Vzc0lmTmVjZXNz
YXJ5KCk7IH0pCiB7CiB9CiAKIFJlbW90ZU9iamVjdFJlZ2lzdHJ5Ojp+UmVtb3RlT2JqZWN0UmVn
aXN0cnkoKQogewotICAgIGNsb3NlKCk7Ci19Ci0KLXZvaWQgUmVtb3RlT2JqZWN0UmVnaXN0cnk6
OmNsb3NlKCkKLXsKLSAgICBpZiAobV9pc1JlZ2lzdGVyZWRBc01lc3NhZ2VSZWNlaXZlcikgewot
ICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVz
c2FnZXM6OlJlbW90ZU9iamVjdFJlZ2lzdHJ5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fbWVz
c2FnZVJlY2VpdmVySUQpOwotICAgICAgICBtX2lzUmVnaXN0ZXJlZEFzTWVzc2FnZVJlY2VpdmVy
ID0gZmFsc2U7Ci0gICAgfQogfQogCiB2b2lkIFJlbW90ZU9iamVjdFJlZ2lzdHJ5OjpzZW5kSW52
b2NhdGlvbihjb25zdCBSZW1vdGVPYmplY3RJbnZvY2F0aW9uJiBpbnZvY2F0aW9uKQogewotICAg
IC8vIEZvciBiYWNrd2FyZC1jb21wYXRpYmlsaXR5LCBzdXBwb3J0IGludm9raW5nIGluamVjdGVk
IGJ1bmRsZSBtZXRob2RzIGJlZm9yZSBoYXZpbmcgZG9uZSBhbnkgbG9hZCBpbiB0aGUgV2ViVmll
dy4KLSAgICBpZiAobV9sYXVuY2hJbml0aWFsUHJvY2Vzc0lmTmVjZXNzYXJ5KQotICAgICAgICBt
X2xhdW5jaEluaXRpYWxQcm9jZXNzSWZOZWNlc3NhcnkoKTsKIAogICAgIGlmIChhdXRvKiByZXBs
eUluZm8gPSBpbnZvY2F0aW9uLnJlcGx5SW5mbygpKSB7CiAgICAgICAgIEFTU0VSVCghbV9wZW5k
aW5nUmVwbGllcy5jb250YWlucyhyZXBseUluZm8tPnJlcGx5SUQpKTsKLSAgICAgICAgbV9wZW5k
aW5nUmVwbGllcy5hZGQocmVwbHlJbmZvLT5yZXBseUlELCBtX3Rha2VCYWNrZ3JvdW5kQWN0aXZp
dHlUb2tlbigpKTsKKyAgICAgICAgbV9wZW5kaW5nUmVwbGllcy5hZGQocmVwbHlJbmZvLT5yZXBs
eUlELCB0YWtlQmFja2dyb3VuZEFjdGl2aXR5VG9rZW4oKSk7CiAgICAgfQogCi0gICAgbV9tZXNz
YWdlU2VuZGVyLnNlbmQoTWVzc2FnZXM6OlJlbW90ZU9iamVjdFJlZ2lzdHJ5OjpJbnZva2VNZXRo
b2QoaW52b2NhdGlvbikpOworICAgIG1lc3NhZ2VTZW5kZXIoKS5zZW5kKE1lc3NhZ2VzOjpSZW1v
dGVPYmplY3RSZWdpc3RyeTo6SW52b2tlTWV0aG9kKGludm9jYXRpb24pKTsKIH0KIAogdm9pZCBS
ZW1vdGVPYmplY3RSZWdpc3RyeTo6c2VuZFJlcGx5QmxvY2sodWludDY0X3QgcmVwbHlJRCwgY29u
c3QgVXNlckRhdGEmIGJsb2NrSW52b2NhdGlvbikKIHsKLSAgICBtX21lc3NhZ2VTZW5kZXIuc2Vu
ZChNZXNzYWdlczo6UmVtb3RlT2JqZWN0UmVnaXN0cnk6OkNhbGxSZXBseUJsb2NrKHJlcGx5SUQs
IGJsb2NrSW52b2NhdGlvbikpOworICAgIG1lc3NhZ2VTZW5kZXIoKS5zZW5kKE1lc3NhZ2VzOjpS
ZW1vdGVPYmplY3RSZWdpc3RyeTo6Q2FsbFJlcGx5QmxvY2socmVwbHlJRCwgYmxvY2tJbnZvY2F0
aW9uKSk7CiB9CiAKIHZvaWQgUmVtb3RlT2JqZWN0UmVnaXN0cnk6OnNlbmRVbnVzZWRSZXBseSh1
aW50NjRfdCByZXBseUlEKQogewotICAgIG1fbWVzc2FnZVNlbmRlci5zZW5kKE1lc3NhZ2VzOjpS
ZW1vdGVPYmplY3RSZWdpc3RyeTo6UmVsZWFzZVVudXNlZFJlcGx5QmxvY2socmVwbHlJRCkpOwor
ICAgIG1lc3NhZ2VTZW5kZXIoKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVPYmplY3RSZWdpc3RyeTo6
UmVsZWFzZVVudXNlZFJlcGx5QmxvY2socmVwbHlJRCkpOwogfQogCiB2b2lkIFJlbW90ZU9iamVj
dFJlZ2lzdHJ5OjppbnZva2VNZXRob2QoY29uc3QgUmVtb3RlT2JqZWN0SW52b2NhdGlvbiYgaW52
b2NhdGlvbikKQEAgLTExNSw0ICs4NCw1IEBAIHZvaWQgUmVtb3RlT2JqZWN0UmVnaXN0cnk6OnJl
bGVhc2VVbnVzZWRSZXBseUJsb2NrKHVpbnQ2NF90IHJlcGx5SUQpCiAKICAgICBbbV9yZW1vdGVP
YmplY3RSZWdpc3RyeSBfcmVsZWFzZVJlcGx5V2l0aElEOnJlcGx5SURdOwogfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2Nv
YS9fV0tSZW1vdGVPYmplY3RSZWdpc3RyeS5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9D
b2NvYS9fV0tSZW1vdGVPYmplY3RSZWdpc3RyeS5tbQppbmRleCA0ODk5NzYyOTMyYjdhZjY5MjIx
ZDA1MGFmNjc0NTgzNmZjMzg3YjAzLi45OGM3YTY0YmMyZWI3NmU3N2JjNDc0MjA5MjE0ZmRhOGFm
NThmYmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvX1dLUmVt
b3RlT2JqZWN0UmVnaXN0cnkubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29h
L19XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5Lm1tCkBAIC0zMCwxMyArMzAsMTQgQEAKICNpbXBvcnQg
IkJsb2NrU1BJLmgiCiAjaW1wb3J0ICJDb25uZWN0aW9uLmgiCiAjaW1wb3J0ICJSZW1vdGVPYmpl
Y3RJbnZvY2F0aW9uLmgiCi0jaW1wb3J0ICJSZW1vdGVPYmplY3RSZWdpc3RyeS5oIgorI2ltcG9y
dCAiVUlSZW1vdGVPYmplY3RSZWdpc3RyeS5oIgogI2ltcG9ydCAiVXNlckRhdGEuaCIKICNpbXBv
cnQgIldLQ29ubmVjdGlvblJlZi5oIgogI2ltcG9ydCAiV0tSZW1vdGVPYmplY3QuaCIKICNpbXBv
cnQgIldLUmVtb3RlT2JqZWN0Q29kZXIuaCIKICNpbXBvcnQgIldLU2hhcmVkQVBJQ2FzdC5oIgog
I2ltcG9ydCAiV2ViUGFnZS5oIgorI2ltcG9ydCAiV2ViUmVtb3RlT2JqZWN0UmVnaXN0cnkuaCIK
ICNpbXBvcnQgIl9XS1JlbW90ZU9iamVjdEludGVyZmFjZS5oIgogI2ltcG9ydCA8b2JqYy9ydW50
aW1lLmg+CiAKQEAgLTEwOSw3ICsxMTAsNyBAQCAtIChpZClfaW5pdFdpdGhXZWJQYWdlOihXZWJL
aXQ6OldlYlBhZ2UmKXBhZ2UKICAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKICAgICAg
ICAgcmV0dXJuIG5pbDsKIAotICAgIF9yZW1vdGVPYmplY3RSZWdpc3RyeSA9IG1ha2VVbmlxdWU8
V2ViS2l0OjpSZW1vdGVPYmplY3RSZWdpc3RyeT4oc2VsZiwgcGFnZSk7CisgICAgX3JlbW90ZU9i
amVjdFJlZ2lzdHJ5ID0gbWFrZVVuaXF1ZTxXZWJLaXQ6OldlYlJlbW90ZU9iamVjdFJlZ2lzdHJ5
PihzZWxmLCBwYWdlKTsKIAogICAgIHJldHVybiBzZWxmOwogfQpAQCAtMTE5LDcgKzEyMCw3IEBA
IC0gKGlkKV9pbml0V2l0aFdlYlBhZ2VQcm94eTooV2ViS2l0OjpXZWJQYWdlUHJveHkmKXBhZ2UK
ICAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKICAgICAgICAgcmV0dXJuIG5pbDsKIAot
ICAgIF9yZW1vdGVPYmplY3RSZWdpc3RyeSA9IG1ha2VVbmlxdWU8V2ViS2l0OjpSZW1vdGVPYmpl
Y3RSZWdpc3RyeT4oc2VsZiwgcGFnZSk7CisgICAgX3JlbW90ZU9iamVjdFJlZ2lzdHJ5ID0gbWFr
ZVVuaXF1ZTxXZWJLaXQ6OlVJUmVtb3RlT2JqZWN0UmVnaXN0cnk+KHNlbGYsIHBhZ2UpOwogCiAg
ICAgcmV0dXJuIHNlbGY7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2Nv
YS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggMGY2Mzc4OTcyZjFi
ZjY3OWNjNDNjM2FiZjJhZDhlZjJiZjg2OTU5ZC4uYzY5OGI5NTNlNTAwMTMyMDMxNWZhODAzNTY2
OWY0NTE4YjBjYjA2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0
CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtMzU2LDYgKzM1Niw3IEBA
IFVJUHJvY2Vzcy9Db2NvYS9TZXNzaW9uU3RhdGVDb2RpbmcubW0KIFVJUHJvY2Vzcy9Db2NvYS9T
eXN0ZW1QcmV2aWV3Q29udHJvbGxlckNvY29hLm1tCiBVSVByb2Nlc3MvQ29jb2EvVGV4dENoZWNr
aW5nQ29udHJvbGxlci5tbQogVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KK1VJUHJvY2Vz
cy9Db2NvYS9VSVJlbW90ZU9iamVjdFJlZ2lzdHJ5LmNwcAogVUlQcm9jZXNzL0NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCiBVSVByb2Nlc3MvQ29jb2EvVmVyc2lvbkNoZWNr
cy5tbQogVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbQpAQCAt
NTc5LDYgKzU4MCw3IEBAIFdlYlByb2Nlc3MvV2ViUGFnZS9XS0FjY2Vzc2liaWxpdHlXZWJQYWdl
T2JqZWN0SU9TLm1tCiAKIFdlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9UZXh0Q2hlY2tpbmdDb250
cm9sbGVyUHJveHkubW0KIFdlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29jb2EubW0K
K1dlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJSZW1vdGVPYmplY3RSZWdpc3RyeS5jcHAKIAog
V2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9GaW5kQ29udHJvbGxlcklPUy5tbQogV2ViUHJvY2Vzcy9X
ZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9VSVJlbW90ZU9iamVjdFJlZ2lzdHJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1VJUmVtb3RlT2JqZWN0UmVnaXN0cnkuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNkMTI4
MDI3MTI3YjM2Yzg3NWU2ZDEyOTdmZmMyZGQ3ZGNkMGMyYmQKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSVJlbW90ZU9iamVjdFJlZ2lzdHJ5LmNwcApA
QCAtMCwwICsxLDU4IEBACisvKgorKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxOSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisqCisqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyogYXJl
IG1ldDoKKyogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisqCisqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlVJUmVtb3RlT2JqZWN0
UmVnaXN0cnkuaCIKKworI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgorI2luY2x1ZGUgIldlYlBy
b2Nlc3NQcm94eS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUHJvY2Vzc1Rocm90dGxlcjo6
QmFja2dyb3VuZEFjdGl2aXR5VG9rZW4gVUlSZW1vdGVPYmplY3RSZWdpc3RyeTo6dGFrZUJhY2tn
cm91bmRBY3Rpdml0eVRva2VuKCkKK3sKKyAgICByZXR1cm4gbV9wYWdlLnByb2Nlc3MoKS50aHJv
dHRsZXIoKS5iYWNrZ3JvdW5kQWN0aXZpdHlUb2tlbigpOworfQorCitVSVJlbW90ZU9iamVjdFJl
Z2lzdHJ5OjpVSVJlbW90ZU9iamVjdFJlZ2lzdHJ5KF9XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5ICpy
ZW1vdGVPYmplY3RSZWdpc3RyeSwgV2ViUGFnZVByb3h5JiBwYWdlKQorICAgIDogUmVtb3RlT2Jq
ZWN0UmVnaXN0cnkocmVtb3RlT2JqZWN0UmVnaXN0cnkpCisgICAgLCBtX3BhZ2UocGFnZSkKK3sK
K30KKwordm9pZCBVSVJlbW90ZU9iamVjdFJlZ2lzdHJ5OjpzZW5kSW52b2NhdGlvbihjb25zdCBS
ZW1vdGVPYmplY3RJbnZvY2F0aW9uJiBpbnZvY2F0aW9uKQoreworICAgIC8vIEZvciBiYWNrd2Fy
ZC1jb21wYXRpYmlsaXR5LCBzdXBwb3J0IGludm9raW5nIGluamVjdGVkIGJ1bmRsZSBtZXRob2Rz
IGJlZm9yZSBoYXZpbmcgZG9uZSBhbnkgbG9hZCBpbiB0aGUgV2ViVmlldy4KKyAgICBtX3BhZ2Uu
bGF1bmNoSW5pdGlhbFByb2Nlc3NJZk5lY2Vzc2FyeSgpOworCisgICAgUmVtb3RlT2JqZWN0UmVn
aXN0cnk6OnNlbmRJbnZvY2F0aW9uKGludm9jYXRpb24pOworfQorCitJUEM6Ok1lc3NhZ2VTZW5k
ZXImIFVJUmVtb3RlT2JqZWN0UmVnaXN0cnk6Om1lc3NhZ2VTZW5kZXIoKQoreworICAgIHJldHVy
biBtX3BhZ2U7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlSZW1vdGVPYmplY3RSZWdpc3RyeS5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlSZW1vdGVPYmplY3RSZWdpc3RyeS5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjk3YTdjODY5ODMzMTY1MjY0ZDNmY2EyMjg2NWI1N2ExNjViOTk5MGUKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSVJlbW90ZU9iamVjdFJlZ2lz
dHJ5LmgKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpbmNsdWRlICJSZW1vdGVPYmplY3RSZWdpc3RyeS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsK
KworY2xhc3MgV2ViUGFnZVByb3h5OworCitjbGFzcyBVSVJlbW90ZU9iamVjdFJlZ2lzdHJ5IGZp
bmFsIDogcHVibGljIFJlbW90ZU9iamVjdFJlZ2lzdHJ5IHsKK3B1YmxpYzoKKyAgICBVSVJlbW90
ZU9iamVjdFJlZ2lzdHJ5KF9XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5ICosIFdlYlBhZ2VQcm94eSYp
OworICAgIAorICAgIHZvaWQgc2VuZEludm9jYXRpb24oY29uc3QgUmVtb3RlT2JqZWN0SW52b2Nh
dGlvbiYpIGZpbmFsOworCitwcml2YXRlOgorICAgIElQQzo6TWVzc2FnZVNlbmRlciYgbWVzc2Fn
ZVNlbmRlcigpIGZpbmFsOworICAgIFByb2Nlc3NUaHJvdHRsZXI6OkJhY2tncm91bmRBY3Rpdml0
eVRva2VuIHRha2VCYWNrZ3JvdW5kQWN0aXZpdHlUb2tlbigpIGZpbmFsOworCisgICAgV2ViUGFn
ZVByb3h5JiBtX3BhZ2U7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDdlNmY5NzQzYjcz
MmI5NzM5OTg3NTk2ZjdlZDJmYjc2ODY0ZmY4ZDEuLjAyNmY4NTdhZmQzNDIzZDZmNzdkNzRkMWFm
YWY5YTE5ZmNkZmQ4ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtOTAyLDYgKzkwMiw4IEBACiAJCTQ0OUQ5MERBMjFGREMzMEIwMEY2
NzdDMCAvKiBMb2NhbEF1dGhlbnRpY2F0aW9uU29mdExpbmsubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDlEOTBEODIxRkQ2M0ZFMDBGNjc3QzAgLyog
TG9jYWxBdXRoZW50aWNhdGlvblNvZnRMaW5rLm1tICovOyB9OwogCQk0NjBGNDg4RjFGOTk2Rjcx
MDBDRjRCODcgLyogV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDYwRjQ4
OEQxRjk5NkY2QzAwQ0Y0Qjg3IC8qIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uTWVzc2Fn
ZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJNDYwRjQ4OTAxRjk5NkY3MTAwQ0Y0Qjg3IC8qIFdlYlNX
Q29udGV4dE1hbmFnZXJDb25uZWN0aW9uTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2MEY0ODhFMUY5OTZGNkMwMENGNEI4NyAvKiBXZWJT
V0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbk1lc3NhZ2VzLmggKi87IH07CisJCTQ2MUNDQ0E1MjMx
NDg1QTcwMEI2NTlCOSAvKiBVSVJlbW90ZU9iamVjdFJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjMyMzY4NTIzMTQ4MzNGMDBBNDhGQTcg
LyogVUlSZW1vdGVPYmplY3RSZWdpc3RyeS5oICovOyB9OworCQk0NjFDQ0NBNjIzMTQ4NUFBMDBC
NjU5QjkgLyogV2ViUmVtb3RlT2JqZWN0UmVnaXN0cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2MzIzNjgzMjMxNDgxRUYwMEE0OEZBNyAvKiBXZWJS
ZW1vdGVPYmplY3RSZWdpc3RyeS5oICovOyB9OwogCQk0NjNGRDQ4MDFFQjk0NTk2MDBBMjk4MkMg
LyogV0tQcm9jZXNzVGVybWluYXRpb25SZWFzb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2M0ZENDdGMUVCOTQ1ODQwMEEyOTgyQyAvKiBXS1Byb2Nl
c3NUZXJtaW5hdGlvblJlYXNvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTQ2M0ZENDgyMUVCOTRFQzAwMEEyOTgyQyAvKiBQcm9jZXNzVGVybWlu
YXRpb25SZWFzb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQ2M0ZENDgxMUVCOTRFQUQwMEEyOTgyQyAvKiBQcm9jZXNzVGVybWluYXRpb25SZWFzb24u
aCAqLzsgfTsKIAkJNDY1N0Q4ODkyMjY2NEEyRDAwNURFODIzIC8qIFdLT3JpZW50YXRpb25BY2Nl
c3NBbGVydC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDY1N0Q4ODcyMjY2NEExOTAwNURFODIzIC8qIFdLT3JpZW50YXRpb25BY2Nlc3NBbGVydC5oICov
OyB9OwpAQCAtMzE5NSw2ICszMTk3LDEwIEBACiAJCTQ2MEY0ODhEMUY5OTZGNkMwMENGNEI4NyAv
KiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVj
dGlvbk1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dl
YlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJl
ZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJNDYwRjQ4OEUxRjk5NkY2QzAwQ0Y0Qjg3IC8q
IFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb25NZXNzYWdlcy5o
OyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVj
dGlvbk1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTQ2
MjEwN0Q3MUYzOERCRDMwMERENzgxMCAvKiBQaW5nTG9hZC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBQaW5nTG9hZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTQ2MzIzNjgzMjMxNDgxRUYwMEE0OEZBNyAvKiBXZWJSZW1vdGVPYmplY3RSZWdpc3Ry
eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJSZW1vdGVPYmplY3RSZWdpc3RyeS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk0NjMyMzY4NDIzMTQ4MjVDMDBBNDhGQTcgLyogV2ViUmVtb3Rl
T2JqZWN0UmVnaXN0cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViUmVtb3RlT2JqZWN0UmVn
aXN0cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NjMyMzY4NTIzMTQ4MzNG
MDBBNDhGQTcgLyogVUlSZW1vdGVPYmplY3RSZWdpc3RyeS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVSVJl
bW90ZU9iamVjdFJlZ2lzdHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2MzIz
Njg2MjMxNDgzM0YwMEE0OEZBNyAvKiBVSVJlbW90ZU9iamVjdFJlZ2lzdHJ5LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFVJUmVtb3RlT2JqZWN0UmVnaXN0cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0NjNGRDQ3RjFFQjk0NTg0MDBBMjk4MkMgLyogV0tQcm9jZXNzVGVybWlu
YXRpb25SZWFzb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tQcm9jZXNz
VGVybWluYXRpb25SZWFzb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDYzRkQ0
ODExRUI5NEVBRDAwQTI5ODJDIC8qIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbi5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcm9jZXNzVGVybWluYXRpb25SZWFzb24uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDY1MUVDRTYyMjE3OEE4NTAwNjdFQjk1IC8qIFdl
YlByb2Nlc3NDYWNoZUNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gV2ViUHJvY2Vzc0NhY2hlQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC01NTU2LDYgKzU1NjIsOCBAQAogCQkJCTJEMENGNjRCMjFGMkE4MDMwMDc4NzU2NiAvKiBU
ZXh0Q2hlY2tpbmdDb250cm9sbGVyLm1tICovLAogCQkJCTFBRkU0MzY0MThCNkMwODEwMDlDN0E0
OCAvKiBVSURlbGVnYXRlLmggKi8sCiAJCQkJMUFGRTQzNjMxOEI2QzA4MTAwOUM3QTQ4IC8qIFVJ
RGVsZWdhdGUubW0gKi8sCisJCQkJNDYzMjM2ODYyMzE0ODMzRjAwQTQ4RkE3IC8qIFVJUmVtb3Rl
T2JqZWN0UmVnaXN0cnkuY3BwICovLAorCQkJCTQ2MzIzNjg1MjMxNDgzM0YwMEE0OEZBNyAvKiBV
SVJlbW90ZU9iamVjdFJlZ2lzdHJ5LmggKi8sCiAJCQkJRTRFODY0OEUxQjE2NzNGQjAwQzgyRjQw
IC8qIFZlcnNpb25DaGVja3MuaCAqLywKIAkJCQlFNEU4NjQ4RjFCMTY3M0ZCMDBDODJGNDAgLyog
VmVyc2lvbkNoZWNrcy5tbSAqLywKIAkJCQk1MkQ1QTFBQTFDNTc0OTRFMDBERTM0QTMgLyogVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmggKi8sCkBAIC01Nzk4LDYgKzU4MDYsOCBAQAogCQkJ
CTJEOUNENUVCMjFGQTUwM0YwMDI5QUNGQSAvKiBUZXh0Q2hlY2tpbmdDb250cm9sbGVyUHJveHku
bWVzc2FnZXMuaW4gKi8sCiAJCQkJMkQ5Q0Q1RUMyMUZBNTAzRjAwMjlBQ0ZBIC8qIFRleHRDaGVj
a2luZ0NvbnRyb2xsZXJQcm94eS5tbSAqLywKIAkJCQkyREM0Q0Y3QTFEMkRFMjRCMDBFQ0NDOTQg
LyogV2ViUGFnZUNvY29hLm1tICovLAorCQkJCTQ2MzIzNjg0MjMxNDgyNUMwMEE0OEZBNyAvKiBX
ZWJSZW1vdGVPYmplY3RSZWdpc3RyeS5jcHAgKi8sCisJCQkJNDYzMjM2ODMyMzE0ODFFRjAwQTQ4
RkE3IC8qIFdlYlJlbW90ZU9iamVjdFJlZ2lzdHJ5LmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IENv
Y29hOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTk3NjIsNiArOTc3Miw3IEBACiAJ
CQkJNTE1QkUxQTkxRDU1MjkzNDAwREQ3QzY4IC8qIFVJR2FtZXBhZFByb3ZpZGVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlDRUU0QUUyQjFBNURDRjQzMDAwMkY0OUIgLyogVUlLaXRTUEkuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTUxM0ZGQjhEMjAxNDU5QjAwMDI1OTZFQSAvKiBVSU1lc3NhZ2VQb3J0
Q2hhbm5lbFByb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk0NjFDQ0NBNTIzMTQ4NUE3MDBC
NjU5QjkgLyogVUlSZW1vdGVPYmplY3RSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUM0
QjlEOEIyMTBBOENDRjAwOEYxNEQxIC8qIFVuZG9PclJlZG8uaCBpbiBIZWFkZXJzICovLAogCQkJ
CTFBNjQyNDVFMTJERTI5QTEwMENBQUUyQyAvKiBVcGRhdGVJbmZvLmggaW4gSGVhZGVycyAqLywK
IAkJCQk1QzE5QTUyMDFGRDBCMjk1MDBFRUEzMjMgLyogVVJMU2NoZW1lVGFza1BhcmFtZXRlcnMu
aCBpbiBIZWFkZXJzICovLApAQCAtOTk1OCw2ICs5OTY5LDcgQEAKIAkJCQlCQ0UwRTQyNTE2OEI3
QTI4MDA1N0U2NkEgLyogV2ViUHJvY2Vzc1N1cHBsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTFBMUUwOTM0MTg4NjFEMzgwMEQyREM0OSAvKiBXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCTUxMkY1ODlEMTJBODgzODgwMDYyOTUzMCAvKiBXZWJQcm90ZWN0
aW9uU3BhY2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ2MUNDQ0E2MjMxNDg1QUEwMEI2NTlCOSAv
KiBXZWJSZW1vdGVPYmplY3RSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzc5NDg0MDQx
NTBDMzUwNjAwRTUyQ0U5IC8qIFdlYlJlbmRlckxheWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkz
NzYwODgxRjE1MDQxM0U5MDBGQzgyQzcgLyogV2ViUmVuZGVyT2JqZWN0LmggaW4gSGVhZGVycyAq
LywKIAkJCQk1MTBBRkZCQTE2NTQyMDQ4MDAxQkEwNUUgLyogV2ViUmVzb3VyY2VMb2FkZXIuaCBp
biBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvQ29jb2EvV2ViUGFnZUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvQ29jb2EvV2ViUGFnZUNvY29hLm1tCmluZGV4IGQxMmI5OGE5NTg0MDFmMGMzZDlmMmNhYWNj
NTViNDBiMmE2MWI3NjQuLjg1YTQzYjU0NzljMTU5ZTQwZDhlZmZkOTMyY2IyNWI1NDNkYjI2ZWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1dlYlBh
Z2VDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9X
ZWJQYWdlQ29jb2EubW0KQEAgLTI5LDEwICsyOSwxMCBAQAogI2ltcG9ydCAiQXR0cmlidXRlZFN0
cmluZy5oIgogI2ltcG9ydCAiTG9hZFBhcmFtZXRlcnMuaCIKICNpbXBvcnQgIlBsdWdpblZpZXcu
aCIKLSNpbXBvcnQgIlJlbW90ZU9iamVjdFJlZ2lzdHJ5LmgiCiAjaW1wb3J0ICJXS0FjY2Vzc2li
aWxpdHlXZWJQYWdlT2JqZWN0QmFzZS5oIgogI2ltcG9ydCAiV2ViUGFnZVByb3h5TWVzc2FnZXMu
aCIKICNpbXBvcnQgIldlYlBheW1lbnRDb29yZGluYXRvci5oIgorI2ltcG9ydCAiV2ViUmVtb3Rl
T2JqZWN0UmVnaXN0cnkuaCIKICNpbXBvcnQgPFdlYkNvcmUvRGljdGlvbmFyeUxvb2t1cC5oPgog
I2ltcG9ydCA8V2ViQ29yZS9FZGl0b3IuaD4KICNpbXBvcnQgPFdlYkNvcmUvRXZlbnRIYW5kbGVy
Lmg+CkBAIC0yMTcsMTEgKzIxNywxNiBAQCB2b2lkIFdlYlBhZ2U6OmdldENvbnRlbnRzQXNBdHRy
aWJ1dGVkU3RyaW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgQXR0cmlidQogICAgIGNv
bXBsZXRpb25IYW5kbGVyKHsgcmVzdWx0IH0pOwogfQogCi12b2lkIFdlYlBhZ2U6OnNldFJlbW90
ZU9iamVjdFJlZ2lzdHJ5KFJlbW90ZU9iamVjdFJlZ2lzdHJ5JiByZWdpc3RyeSkKK3ZvaWQgV2Vi
UGFnZTo6c2V0UmVtb3RlT2JqZWN0UmVnaXN0cnkoV2ViUmVtb3RlT2JqZWN0UmVnaXN0cnkqIHJl
Z2lzdHJ5KQogewogICAgIG1fcmVtb3RlT2JqZWN0UmVnaXN0cnkgPSBtYWtlV2Vha1B0cihyZWdp
c3RyeSk7CiB9CiAKK1dlYlJlbW90ZU9iamVjdFJlZ2lzdHJ5KiBXZWJQYWdlOjpyZW1vdGVPYmpl
Y3RSZWdpc3RyeSgpCit7CisgICAgcmV0dXJuIG1fcmVtb3RlT2JqZWN0UmVnaXN0cnkuZ2V0KCk7
Cit9CisKIHZvaWQgV2ViUGFnZTo6dXBkYXRlTW9ja0FjY2Vzc2liaWxpdHlFbGVtZW50QWZ0ZXJD
b21taXR0aW5nTG9hZCgpCiB7CiAgICAgYXV0byogZG9jdW1lbnQgPSBtYWluRnJhbWUoKS0+ZG9j
dW1lbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nv
Y29hL1dlYlJlbW90ZU9iamVjdFJlZ2lzdHJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL0NvY29hL1dlYlJlbW90ZU9iamVjdFJlZ2lzdHJ5LmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45
MGZkZjBlNmU5MDkxNTVjNDE1NDJmNzE5OWNhZTdiNWIwNmUxNTRiCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2ViUmVtb3RlT2JqZWN0
UmVnaXN0cnkuY3BwCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisqIENvcHlyaWdodCAoQykgMjAxMy0y
MDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyoKKyogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworKiBhcmUgbWV0OgorKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyoKKyogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
V2ViUmVtb3RlT2JqZWN0UmVnaXN0cnkuaCIKKworI2luY2x1ZGUgIlJlbW90ZU9iamVjdFJlZ2lz
dHJ5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisKK25hbWVzcGFjZSBXZWJLaXQg
eworCitXZWJSZW1vdGVPYmplY3RSZWdpc3RyeTo6V2ViUmVtb3RlT2JqZWN0UmVnaXN0cnkoX1dL
UmVtb3RlT2JqZWN0UmVnaXN0cnkgKnJlbW90ZU9iamVjdFJlZ2lzdHJ5LCBXZWJQYWdlJiBwYWdl
KQorICAgIDogUmVtb3RlT2JqZWN0UmVnaXN0cnkocmVtb3RlT2JqZWN0UmVnaXN0cnkpCisgICAg
LCBtX3BhZ2UocGFnZSkKK3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5hZGRNZXNzYWdl
UmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZU9iamVjdFJlZ2lzdHJ5OjptZXNzYWdlUmVjZWl2ZXJO
YW1lKCksIG1fcGFnZS5wYWdlSUQoKSwgKnRoaXMpOworICAgIHBhZ2Uuc2V0UmVtb3RlT2JqZWN0
UmVnaXN0cnkodGhpcyk7Cit9CisKK1dlYlJlbW90ZU9iamVjdFJlZ2lzdHJ5Ojp+V2ViUmVtb3Rl
T2JqZWN0UmVnaXN0cnkoKQoreworICAgIGNsb3NlKCk7Cit9CisKK3ZvaWQgV2ViUmVtb3RlT2Jq
ZWN0UmVnaXN0cnk6OmNsb3NlKCkKK3sKKyAgICBpZiAobV9wYWdlLnJlbW90ZU9iamVjdFJlZ2lz
dHJ5KCkgPT0gdGhpcykgeworICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5yZW1vdmVN
ZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZU9iamVjdFJlZ2lzdHJ5OjptZXNzYWdlUmVj
ZWl2ZXJOYW1lKCksIG1fcGFnZS5wYWdlSUQoKSk7CisgICAgICAgIG1fcGFnZS5zZXRSZW1vdGVP
YmplY3RSZWdpc3RyeShudWxscHRyKTsKKyAgICB9Cit9CisKK0lQQzo6TWVzc2FnZVNlbmRlciYg
V2ViUmVtb3RlT2JqZWN0UmVnaXN0cnk6Om1lc3NhZ2VTZW5kZXIoKQoreworICAgIHJldHVybiBt
X3BhZ2U7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2ViUmVtb3RlT2JqZWN0UmVnaXN0cnkuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1dlYlJlbW90ZU9iamVjdFJl
Z2lzdHJ5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYjllOWJiYzhhN2FhNjNmYjViNjA5YjdmOGM2M2JhMTZlNThh
NjM4YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L0NvY29hL1dlYlJlbW90ZU9iamVjdFJlZ2lzdHJ5LmgKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMy0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJSZW1vdGVPYmplY3RSZWdpc3Ry
eS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFnZTsKKworY2xhc3MgV2Vi
UmVtb3RlT2JqZWN0UmVnaXN0cnkgZmluYWwgOiBwdWJsaWMgUmVtb3RlT2JqZWN0UmVnaXN0cnkg
eworcHVibGljOgorICAgIFdlYlJlbW90ZU9iamVjdFJlZ2lzdHJ5KF9XS1JlbW90ZU9iamVjdFJl
Z2lzdHJ5ICosIFdlYlBhZ2UmKTsKKyAgICB+V2ViUmVtb3RlT2JqZWN0UmVnaXN0cnkoKTsKKyAg
ICAKKyAgICB2b2lkIGNsb3NlKCk7CisgICAgCitwcml2YXRlOgorICAgIElQQzo6TWVzc2FnZVNl
bmRlciYgbWVzc2FnZVNlbmRlcigpIGZpbmFsOworCisgICAgV2ViUGFnZSYgbV9wYWdlOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwCmluZGV4IGE1ZTQxYTVhNWQyNDBjMzJlYTA4MTFhNWQ2ZWZmOTQ5Mjlm
OTlhZmMuLmNjN2JhYWNlODM1NWU4ZTUwNTJjMWQ4NjlkMGVmZTkzMWZjODMwMmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0yNTgsMTMgKzI1
OCwxMyBAQAogI2luY2x1ZGUgIlBERlBsdWdpbi5oIgogI2luY2x1ZGUgIlBsYXliYWNrU2Vzc2lv
bk1hbmFnZXIuaCIKICNpbmNsdWRlICJSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5oIgotI2lu
Y2x1ZGUgIlJlbW90ZU9iamVjdFJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiUmVtb3RlT2JqZWN0UmVn
aXN0cnlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlRleHRDaGVja2luZ0NvbnRyb2xsZXJQcm94eS5o
IgogI2luY2x1ZGUgIlRvdWNoQmFyTWVudURhdGEuaCIKICNpbmNsdWRlICJUb3VjaEJhck1lbnVJ
dGVtRGF0YS5oIgogI2luY2x1ZGUgIlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaCIKICNpbmNsdWRl
ICJXS1N0cmluZ0NGLmgiCisjaW5jbHVkZSAiV2ViUmVtb3RlT2JqZWN0UmVnaXN0cnkuaCIKICNp
bmNsdWRlIDxXZWJDb3JlL0xlZ2FjeVdlYkFyY2hpdmUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1VU
SVJlZ2lzdHJ5Lmg+CiAjaW5jbHVkZSA8d3RmL01hY2hTZW5kUmlnaHQuaD4KQEAgLTE0MzQsNiAr
MTQzNCw3IEBAIHZvaWQgV2ViUGFnZTo6Y2xvc2UoKQogI2lmIFBMQVRGT1JNKENPQ09BKQogICAg
IGlmIChtX3JlbW90ZU9iamVjdFJlZ2lzdHJ5KQogICAgICAgICBtX3JlbW90ZU9iamVjdFJlZ2lz
dHJ5LT5jbG9zZSgpOworICAgIEFTU0VSVCghbV9yZW1vdGVPYmplY3RSZWdpc3RyeSk7CiAjZW5k
aWYKICNpZiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQogICAgIGlmIChtX3VzZUFzeW5jU2Nyb2xs
aW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDVm
NmIyNzZlYTIwZWU0ZGZiMGE1NDBkZTYyZDkwZTgyN2NmMjk5ZjkuLjc4MTM3MGRhNGEzNTQ3YTU0
ZGRkMGIwNGJlYmFhZjFhZjI1MTQxOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmgKQEAgLTIxNyw3ICsyMTcsNiBAQCBjbGFzcyBOb3RpZmljYXRpb25QZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXI7CiBjbGFzcyBQREZQbHVnaW47CiBjbGFzcyBQYWdlQmFubmVy
OwogY2xhc3MgUGx1Z2luVmlldzsKLWNsYXNzIFJlbW90ZU9iamVjdFJlZ2lzdHJ5OwogY2xhc3Mg
UmVtb3RlV2ViSW5zcGVjdG9yVUk7CiBjbGFzcyBUZXh0Q2hlY2tpbmdDb250cm9sbGVyUHJveHk7
CiBjbGFzcyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7CkBAIC0yNDcsNiArMjQ2
LDcgQEAgY2xhc3MgV2ViUGFnZUluc3BlY3RvclRhcmdldENvbnRyb2xsZXI7CiBjbGFzcyBXZWJQ
YWdlT3ZlcmxheTsKIGNsYXNzIFdlYlBheW1lbnRDb29yZGluYXRvcjsKIGNsYXNzIFdlYlBvcHVw
TWVudTsKK2NsYXNzIFdlYlJlbW90ZU9iamVjdFJlZ2lzdHJ5OwogY2xhc3MgV2ViVG91Y2hFdmVu
dDsKIGNsYXNzIFdlYlVSTFNjaGVtZUhhbmRsZXJQcm94eTsKIGNsYXNzIFdlYlVuZG9TdGVwOwpA
QCAtMTE5OCw3ICsxMTk4LDEwIEBAIHB1YmxpYzoKICAgICBUZXh0Q2hlY2tpbmdDb250cm9sbGVy
UHJveHkmIHRleHRDaGVja2luZ0NvbnRyb2xsZXIoKSB7IHJldHVybiBtX3RleHRDaGVja2luZ0Nv
bnRyb2xsZXJQcm94eS5nZXQoKTsgfQogI2VuZGlmCiAKLSAgICB2b2lkIHNldFJlbW90ZU9iamVj
dFJlZ2lzdHJ5KFJlbW90ZU9iamVjdFJlZ2lzdHJ5Jik7CisjaWYgUExBVEZPUk0oQ09DT0EpCisg
ICAgdm9pZCBzZXRSZW1vdGVPYmplY3RSZWdpc3RyeShXZWJSZW1vdGVPYmplY3RSZWdpc3RyeSop
OworICAgIFdlYlJlbW90ZU9iamVjdFJlZ2lzdHJ5KiByZW1vdGVPYmplY3RSZWdpc3RyeSgpOwor
I2VuZGlmCiAKICAgICB2b2lkIHVwZGF0ZUludHJpbnNpY0NvbnRlbnRTaXplSWZOZWVkZWQoY29u
c3QgV2ViQ29yZTo6SW50U2l6ZSYpOwogICAgIHZvaWQgc2NoZWR1bGVGdWxsRWRpdG9yU3RhdGVV
cGRhdGUoKTsKQEAgLTE5NTIsNyArMTk1NSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX25lZWRz
Rm9udEF0dHJpYnV0ZXMgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9maXJzdEZsdXNoQWZ0ZXJDb21t
aXQgeyBmYWxzZSB9OwogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIFdlYWtQdHI8UmVtb3RlT2Jq
ZWN0UmVnaXN0cnk+IG1fcmVtb3RlT2JqZWN0UmVnaXN0cnk7CisgICAgV2Vha1B0cjxXZWJSZW1v
dGVPYmplY3RSZWdpc3RyeT4gbV9yZW1vdGVPYmplY3RSZWdpc3RyeTsKICNlbmRpZgogICAgIFdl
YkNvcmU6OkludFNpemUgbV9sYXN0U2VudEludHJpbnNpY0NvbnRlbnRTaXplOwogI2lmIEVOQUJM
RShWSUVXUE9SVF9SRVNJWklORykK
</data>

          </attachment>
      

    </bug>

</bugzilla>